diff --git a/.github/actions/build-jtreg/action.yml b/.github/actions/build-jtreg/action.yml new file mode 100644 index 00000000000..3e5ced8a7f8 --- /dev/null +++ b/.github/actions/build-jtreg/action.yml @@ -0,0 +1,84 @@ +# +# Copyright (c) 2023, 2024, Oracle and/or its affiliates. All rights reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. Oracle designates this +# particular file as subject to the "Classpath" exception as provided +# by Oracle in the LICENSE file that accompanied this code. +# +# This code 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 +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# + +name: 'Build JTReg' +description: 'Build JTReg' + +runs: + using: composite + steps: + - name: 'Get JTReg version configuration' + id: version + uses: ./.github/actions/config + with: + var: JTREG_VERSION + + - name: 'Check cache for already built JTReg' + id: get-cached + uses: actions/cache@v4 + with: + path: jtreg/installed + key: jtreg-${{ steps.version.outputs.value }} + + - name: 'Checkout the JTReg source' + uses: actions/checkout@v4 + with: + repository: openjdk/jtreg + ref: jtreg-${{ steps.version.outputs.value }} + path: jtreg/src + if: (steps.get-cached.outputs.cache-hit != 'true') + + - name: 'Build JTReg' + run: | + # Try building JTReg several times, backing off exponentially on failure. + # ~500 seconds in total should be enough to capture most of the transient + # failures. + for I in `seq 0 8`; do + rm -rf build/images/jtreg + bash make/build.sh --jdk "$JAVA_HOME_17_X64" && break + S=$(( 2 ** $I )) + echo "Failure. Waiting $S seconds before retrying" + sleep $S + done + + # Check if build was successful + if [ ! -d build/images/jtreg ]; then + echo "Build failed" + exit 1; + fi + + # Move files to the proper locations + mkdir ../installed + mv build/images/jtreg/* ../installed + working-directory: jtreg/src + shell: bash + if: (steps.get-cached.outputs.cache-hit != 'true') + + - name: 'Upload JTReg artifact' + uses: actions/upload-artifact@v4 + with: + name: bundles-jtreg-${{ steps.version.outputs.value }} + path: jtreg/installed + retention-days: 1 diff --git a/.github/actions/get-jtreg/action.yml b/.github/actions/get-jtreg/action.yml index faedcc18807..78a3a4c9edd 100644 --- a/.github/actions/get-jtreg/action.yml +++ b/.github/actions/get-jtreg/action.yml @@ -24,7 +24,7 @@ # name: 'Get JTReg' -description: 'Download JTReg from cache or source location' +description: 'Get JTReg' outputs: path: description: 'Path to the installed JTReg' @@ -39,36 +39,12 @@ runs: with: var: JTREG_VERSION - - name: 'Check cache for JTReg' - id: get-cached-jtreg - uses: actions/cache@v4 + - name: 'Download JTReg artifact' + id: download-jtreg + uses: actions/download-artifact@v4 with: + name: bundles-jtreg-${{ steps.version.outputs.value }} path: jtreg/installed - key: jtreg-${{ steps.version.outputs.value }} - - - name: 'Checkout the JTReg source' - uses: actions/checkout@v4 - with: - repository: openjdk/jtreg - ref: jtreg-${{ steps.version.outputs.value }} - path: jtreg/src - if: steps.get-cached-jtreg.outputs.cache-hit != 'true' - - - name: 'Build JTReg' - run: | - # If runner architecture is x64 set JAVA_HOME_17_X64 otherwise set to JAVA_HOME_17_arm64 - if [[ '${{ runner.arch }}' == 'X64' ]]; then - JDK="$JAVA_HOME_17_X64" - else - JDK="$JAVA_HOME_17_arm64" - fi - # Build JTReg and move files to the proper locations - bash make/build.sh --jdk "$JDK" - mkdir ../installed - mv build/images/jtreg/* ../installed - working-directory: jtreg/src - shell: bash - if: steps.get-cached-jtreg.outputs.cache-hit != 'true' - name: 'Export path to where JTReg is installed' id: path-name diff --git a/.github/scripts/gen-build-failure-report.sh b/.github/scripts/gen-build-failure-report.sh index c8336a5f7a1..2dda69a3f33 100644 --- a/.github/scripts/gen-build-failure-report.sh +++ b/.github/scripts/gen-build-failure-report.sh @@ -25,7 +25,7 @@ # # Import common utils -. report-utils.sh +. .github/scripts/report-utils.sh GITHUB_STEP_SUMMARY="$1" BUILD_DIR="$(ls -d build/*)" diff --git a/.github/scripts/gen-test-results.sh b/.github/scripts/gen-test-results.sh index 6c6cbaa3740..bdf3eb3b9cb 100644 --- a/.github/scripts/gen-test-results.sh +++ b/.github/scripts/gen-test-results.sh @@ -25,7 +25,7 @@ # # Import common utils -. report-utils.sh +. .github/scripts/report-utils.sh GITHUB_STEP_SUMMARY="$1" diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index d5958853701..e3451e5d89a 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -54,8 +54,8 @@ jobs: ### Determine platforms to include ### - select: - name: 'Select platforms' + prepare: + name: 'Prepare the run' runs-on: ubuntu-22.04 env: # List of platforms to exclude by default @@ -73,7 +73,19 @@ jobs: docs: ${{ steps.include.outputs.docs }} steps: - # This function must be inlined in main.yml, or we'd be forced to checkout the repo + - name: 'Checkout the scripts' + uses: actions/checkout@v4 + with: + sparse-checkout: | + .github + make/conf/github-actions.conf + + - name: 'Build JTReg' + id: jtreg + uses: ./.github/actions/build-jtreg + + # TODO: Now that we are checking out the repo scripts, we can put the following code + # into a separate file - name: 'Check what jobs to run' id: include run: | @@ -149,18 +161,18 @@ jobs: build-linux-x64: name: linux-x64 - needs: select + needs: prepare uses: ./.github/workflows/build-linux.yml with: platform: linux-x64 gcc-major-version: '10' configure-arguments: ${{ github.event.inputs.configure-arguments }} make-arguments: ${{ github.event.inputs.make-arguments }} - if: needs.select.outputs.linux-x64 == 'true' + if: needs.prepare.outputs.linux-x64 == 'true' build-linux-x86-hs: name: linux-x86-hs - needs: select + needs: prepare uses: ./.github/workflows/build-linux.yml with: platform: linux-x86 @@ -174,11 +186,11 @@ jobs: extra-conf-options: '--with-target-bits=32 --enable-fallback-linker --enable-libffi-bundling' configure-arguments: ${{ github.event.inputs.configure-arguments }} make-arguments: ${{ github.event.inputs.make-arguments }} - if: needs.select.outputs.linux-x86-hs == 'true' + if: needs.prepare.outputs.linux-x86-hs == 'true' build-linux-x64-hs-nopch: name: linux-x64-hs-nopch - needs: select + needs: prepare uses: ./.github/workflows/build-linux.yml with: platform: linux-x64 @@ -188,11 +200,11 @@ jobs: extra-conf-options: '--disable-precompiled-headers' configure-arguments: ${{ github.event.inputs.configure-arguments }} make-arguments: ${{ github.event.inputs.make-arguments }} - if: needs.select.outputs.linux-x64-variants == 'true' + if: needs.prepare.outputs.linux-x64-variants == 'true' build-linux-x64-hs-zero: name: linux-x64-hs-zero - needs: select + needs: prepare uses: ./.github/workflows/build-linux.yml with: platform: linux-x64 @@ -202,11 +214,11 @@ jobs: extra-conf-options: '--with-jvm-variants=zero --disable-precompiled-headers' configure-arguments: ${{ github.event.inputs.configure-arguments }} make-arguments: ${{ github.event.inputs.make-arguments }} - if: needs.select.outputs.linux-x64-variants == 'true' + if: needs.prepare.outputs.linux-x64-variants == 'true' build-linux-x64-hs-minimal: name: linux-x64-hs-minimal - needs: select + needs: prepare uses: ./.github/workflows/build-linux.yml with: platform: linux-x64 @@ -216,11 +228,11 @@ jobs: extra-conf-options: '--with-jvm-variants=minimal --disable-precompiled-headers' configure-arguments: ${{ github.event.inputs.configure-arguments }} make-arguments: ${{ github.event.inputs.make-arguments }} - if: needs.select.outputs.linux-x64-variants == 'true' + if: needs.prepare.outputs.linux-x64-variants == 'true' build-linux-x64-hs-optimized: name: linux-x64-hs-optimized - needs: select + needs: prepare uses: ./.github/workflows/build-linux.yml with: platform: linux-x64 @@ -231,32 +243,31 @@ jobs: extra-conf-options: '--with-debug-level=optimized --disable-precompiled-headers' configure-arguments: ${{ github.event.inputs.configure-arguments }} make-arguments: ${{ github.event.inputs.make-arguments }} - if: needs.select.outputs.linux-x64-variants == 'true' + if: needs.prepare.outputs.linux-x64-variants == 'true' build-linux-cross-compile: name: linux-cross-compile - needs: - - select + needs: prepare uses: ./.github/workflows/build-cross-compile.yml with: gcc-major-version: '10' configure-arguments: ${{ github.event.inputs.configure-arguments }} make-arguments: ${{ github.event.inputs.make-arguments }} - if: needs.select.outputs.linux-cross-compile == 'true' + if: needs.prepare.outputs.linux-cross-compile == 'true' build-alpine-linux-x64: name: alpine-linux-x64 - needs: select + needs: prepare uses: ./.github/workflows/build-alpine-linux.yml with: platform: alpine-linux-x64 configure-arguments: ${{ github.event.inputs.configure-arguments }} make-arguments: ${{ github.event.inputs.make-arguments }} - if: needs.select.outputs.alpine-linux-x64 == 'true' + if: needs.prepare.outputs.alpine-linux-x64 == 'true' build-macos-x64: name: macos-x64 - needs: select + needs: prepare uses: ./.github/workflows/build-macos.yml with: platform: macos-x64 @@ -264,11 +275,11 @@ jobs: xcode-toolset-version: '14.3.1' configure-arguments: ${{ github.event.inputs.configure-arguments }} make-arguments: ${{ github.event.inputs.make-arguments }} - if: needs.select.outputs.macos-x64 == 'true' + if: needs.prepare.outputs.macos-x64 == 'true' build-macos-aarch64: name: macos-aarch64 - needs: select + needs: prepare uses: ./.github/workflows/build-macos.yml with: platform: macos-aarch64 @@ -276,11 +287,11 @@ jobs: xcode-toolset-version: '14.3.1' configure-arguments: ${{ github.event.inputs.configure-arguments }} make-arguments: ${{ github.event.inputs.make-arguments }} - if: needs.select.outputs.macos-aarch64 == 'true' + if: needs.prepare.outputs.macos-aarch64 == 'true' build-windows-x64: name: windows-x64 - needs: select + needs: prepare uses: ./.github/workflows/build-windows.yml with: platform: windows-x64 @@ -288,11 +299,11 @@ jobs: msvc-toolset-architecture: 'x86.x64' configure-arguments: ${{ github.event.inputs.configure-arguments }} make-arguments: ${{ github.event.inputs.make-arguments }} - if: needs.select.outputs.windows-x64 == 'true' + if: needs.prepare.outputs.windows-x64 == 'true' build-windows-aarch64: name: windows-aarch64 - needs: select + needs: prepare uses: ./.github/workflows/build-windows.yml with: platform: windows-aarch64 @@ -302,11 +313,11 @@ jobs: extra-conf-options: '--openjdk-target=aarch64-unknown-cygwin' configure-arguments: ${{ github.event.inputs.configure-arguments }} make-arguments: ${{ github.event.inputs.make-arguments }} - if: needs.select.outputs.windows-aarch64 == 'true' + if: needs.prepare.outputs.windows-aarch64 == 'true' build-docs: name: docs - needs: select + needs: prepare uses: ./.github/workflows/build-linux.yml with: platform: linux-x64 @@ -318,7 +329,7 @@ jobs: gcc-major-version: '10' configure-arguments: ${{ github.event.inputs.configure-arguments }} make-arguments: ${{ github.event.inputs.make-arguments }} - if: needs.select.outputs.docs == 'true' + if: needs.prepare.outputs.docs == 'true' ### ### Test jobs diff --git a/doc/building.html b/doc/building.html index c91d876246c..63af224584a 100644 --- a/doc/building.html +++ b/doc/building.html @@ -2016,10 +2016,18 @@

Spaces in Path

have short paths. You can run fsutil file setshortname in -cmd on certain directories, such as -Microsoft Visual Studio or Windows Kits, to -assign arbitrary short paths so configure can access -them.

+cmd on directories to assign arbitrary short paths so +configure can access them. If the result says "Access +denied", it may be that there are processes running in that directory; +in this case, you can reboot Windows in safe mode and run the command on +those directories again.

+

The only directories required to have short paths are +Microsoft Visual Studio and Windows Kits; the +rest of the "contains space" warnings from configure, such +as IntelliJ IDEA, can be ignored. You can choose any short +name; once it is set, configure's tools like +cygpath can convert the directory with spaces to your +chosen short name and pass it to the build system.

Getting Help

If none of the suggestions in this document helps you, or if you find what you believe is a bug in the build system, please contact the Build diff --git a/doc/building.md b/doc/building.md index 47ad9e7c72b..466e8d7edf8 100644 --- a/doc/building.md +++ b/doc/building.md @@ -1800,9 +1800,17 @@ temporarily. On Windows, when configuring, `fixpath.sh` may report that some directory names have spaces. Usually, it assumes those directories have [short paths](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/fsutil-8dot3name). -You can run `fsutil file setshortname` in `cmd` on certain directories, such as -`Microsoft Visual Studio` or `Windows Kits`, to assign arbitrary short paths so -`configure` can access them. +You can run `fsutil file setshortname` in `cmd` on directories to assign +arbitrary short paths so `configure` can access them. If the result says "Access +denied", it may be that there are processes running in that directory; in this +case, you can reboot Windows in safe mode and run the command on those directories +again. + +The only directories required to have short paths are `Microsoft Visual Studio` +and `Windows Kits`; the rest of the "contains space" warnings from `configure`, +such as `IntelliJ IDEA`, can be ignored. You can choose any short name; once it +is set, `configure`'s tools like `cygpath` can convert the directory with spaces +to your chosen short name and pass it to the build system. ### Getting Help diff --git a/doc/testing.html b/doc/testing.html index c56dfa31188..6285fab1682 100644 --- a/doc/testing.html +++ b/doc/testing.html @@ -72,6 +72,9 @@

Testing the JDK

  • Non-US locale
  • PKCS11 Tests
  • +
  • Testing with +alternative security providers
  • Client UI Tests
  • @@ -434,7 +437,7 @@

    FAILURE_HANDLER_TIMEOUT

    Sets the argument -timeoutHandlerTimeout for JTReg. The default value is 0. This is only valid if the failure handler is built.

    -

    JTREG_TEST_THREAD_FACTORY

    +

    TEST_THREAD_FACTORY

    Sets the -testThreadFactory for JTReg. It should be the fully qualified classname of a class which implements java.util.concurrent.ThreadFactory. One such implementation @@ -586,6 +589,18 @@

    PKCS11 Tests

    JTREG="JAVA_OPTIONS=-Djdk.test.lib.artifacts.nsslib-linux_aarch64=/path/to/NSS-libs"

    For more notes about the PKCS11 tests, please refer to test/jdk/sun/security/pkcs11/README.

    +

    Testing with +alternative security providers

    +

    Some security tests use a hardcoded provider for +KeyFactory, Cipher, +KeyPairGenerator, KeyGenerator, +AlgorithmParameterGenerator, KeyAgreement, +Mac, MessageDigest, SecureRandom, +Signature, AlgorithmParameters, +Configuration, Policy, or +SecretKeyFactory objects. Specify the +-Dtest.provider.name=NAME property to use a different +provider for the service(s).

    Client UI Tests

    System key shortcuts

    Some Client UI tests use key sequences which may be reserved by the diff --git a/doc/testing.md b/doc/testing.md index 351745c9293..351690c5e60 100644 --- a/doc/testing.md +++ b/doc/testing.md @@ -380,7 +380,7 @@ Defaults to 4. Sets the argument `-timeoutHandlerTimeout` for JTReg. The default value is 0. This is only valid if the failure handler is built. -#### JTREG_TEST_THREAD_FACTORY +#### TEST_THREAD_FACTORY Sets the `-testThreadFactory` for JTReg. It should be the fully qualified classname of a class which implements `java.util.concurrent.ThreadFactory`. One @@ -603,6 +603,15 @@ $ make test TEST="jtreg:sun/security/pkcs11/Secmod/AddTrustedCert.java" \ For more notes about the PKCS11 tests, please refer to test/jdk/sun/security/pkcs11/README. +### Testing with alternative security providers + +Some security tests use a hardcoded provider for `KeyFactory`, `Cipher`, +`KeyPairGenerator`, `KeyGenerator`, `AlgorithmParameterGenerator`, +`KeyAgreement`, `Mac`, `MessageDigest`, `SecureRandom`, `Signature`, +`AlgorithmParameters`, `Configuration`, `Policy`, or `SecretKeyFactory` objects. +Specify the `-Dtest.provider.name=NAME` property to use a different provider for +the service(s). + ### Client UI Tests #### System key shortcuts diff --git a/make/RunTests.gmk b/make/RunTests.gmk index 45494b859b7..bfd55394b2f 100644 --- a/make/RunTests.gmk +++ b/make/RunTests.gmk @@ -853,11 +853,7 @@ define SetupRunJtregTestBody endif ifneq ($$(findstring -XX:+UseZGC, $$(JTREG_ALL_OPTIONS)), ) - ifneq ($$(findstring -XX:-ZGenerational, $$(JTREG_ALL_OPTIONS)), ) - JTREG_AUTO_PROBLEM_LISTS += ProblemList-zgc.txt - else - JTREG_AUTO_PROBLEM_LISTS += ProblemList-generational-zgc.txt - endif + JTREG_AUTO_PROBLEM_LISTS += ProblemList-zgc.txt endif ifneq ($$(JTREG_EXTRA_PROBLEM_LISTS), ) diff --git a/make/autoconf/lib-hsdis.m4 b/make/autoconf/lib-hsdis.m4 index bd78768d03e..a4d2c5f81f3 100644 --- a/make/autoconf/lib-hsdis.m4 +++ b/make/autoconf/lib-hsdis.m4 @@ -266,8 +266,10 @@ AC_DEFUN([LIB_SETUP_HSDIS_BINUTILS], HSDIS_CFLAGS="-DLIBARCH_$OPENJDK_TARGET_CPU_LEGACY_LIB" elif test "x$BINUTILS_INSTALL_DIR" != x; then disasm_header="\"$BINUTILS_INSTALL_DIR/include/dis-asm.h\"" - if test -e $BINUTILS_INSTALL_DIR/lib/libbfd.a && \ - test -e $BINUTILS_INSTALL_DIR/lib/libopcodes.a && \ + if (test -e $BINUTILS_INSTALL_DIR/lib/libbfd.a || \ + test -e $BINUTILS_INSTALL_DIR/lib64/libbfd.a) && \ + (test -e $BINUTILS_INSTALL_DIR/lib/libopcodes.a || \ + test -e $BINUTILS_INSTALL_DIR/lib64/libopcodes.a) && \ (test -e $BINUTILS_INSTALL_DIR/lib/libiberty.a || \ test -e $BINUTILS_INSTALL_DIR/lib64/libiberty.a || \ test -e $BINUTILS_INSTALL_DIR/lib32/libiberty.a); then @@ -275,7 +277,19 @@ AC_DEFUN([LIB_SETUP_HSDIS_BINUTILS], # libiberty ignores --libdir and may be installed in $BINUTILS_INSTALL_DIR/lib, $BINUTILS_INSTALL_DIR/lib32 # or $BINUTILS_INSTALL_DIR/lib64, depending on system setup + LIBOPCODES_LIB="" + LIBBFD_LIB="" LIBIBERTY_LIB="" + if test -e $BINUTILS_INSTALL_DIR/lib/libbfd.a; then + LIBBFD_LIB="$BINUTILS_INSTALL_DIR/lib/libbfd.a" + else + LIBBFD_LIB="$BINUTILS_INSTALL_DIR/lib64/libbfd.a" + fi + if test -e $BINUTILS_INSTALL_DIR/lib/libopcodes.a; then + LIBOPCODES_LIB="$BINUTILS_INSTALL_DIR/lib/libopcodes.a" + else + LIBOPCODES_LIB="$BINUTILS_INSTALL_DIR/lib64/libopcodes.a" + fi if test -e $BINUTILS_INSTALL_DIR/lib/libiberty.a; then LIBIBERTY_LIB="$BINUTILS_INSTALL_DIR/lib/libiberty.a" elif test -e $BINUTILS_INSTALL_DIR/lib32/libiberty.a; then @@ -283,7 +297,7 @@ AC_DEFUN([LIB_SETUP_HSDIS_BINUTILS], else LIBIBERTY_LIB="$BINUTILS_INSTALL_DIR/lib64/libiberty.a" fi - HSDIS_LIBS="$BINUTILS_INSTALL_DIR/lib/libbfd.a $BINUTILS_INSTALL_DIR/lib/libopcodes.a $LIBIBERTY_LIB" + HSDIS_LIBS="$LIBBFD_LIB $LIBOPCODES_LIB $LIBIBERTY_LIB" # If we have libsframe add it. if test -e $BINUTILS_INSTALL_DIR/lib/libsframe.a; then HSDIS_LIBS="$HSDIS_LIBS $BINUTILS_INSTALL_DIR/lib/libsframe.a" diff --git a/make/common/FileUtils.gmk b/make/common/FileUtils.gmk index 89cbe872721..d3cc4872ebb 100644 --- a/make/common/FileUtils.gmk +++ b/make/common/FileUtils.gmk @@ -136,7 +136,7 @@ ifeq ($(call isTargetOs, macosx), true) $(CP) -fRP '$(call DecodeSpace, $<)' '$(call DecodeSpace, $@)'; \ fi if [ -n "`$(XATTR) -ls '$(call DecodeSpace, $@)'`" ]; then \ - $(CHMOD) u+w '$(call DecodeSpace, $@)'; \ + $(CHMOD) -h u+w '$(call DecodeSpace, $@)'; \ $(XATTR) -cs '$(call DecodeSpace, $@)'; \ fi endef diff --git a/make/hotspot/gensrc/GensrcAdlc.gmk b/make/hotspot/gensrc/GensrcAdlc.gmk index ddb2c3e33e5..ce3f2684026 100644 --- a/make/hotspot/gensrc/GensrcAdlc.gmk +++ b/make/hotspot/gensrc/GensrcAdlc.gmk @@ -193,8 +193,6 @@ ifeq ($(call check-jvm-feature, compiler2), true) ifeq ($(call check-jvm-feature, zgc), true) AD_SRC_FILES += $(call uniq, $(wildcard $(foreach d, $(AD_SRC_ROOTS), \ - $d/cpu/$(HOTSPOT_TARGET_CPU_ARCH)/gc/x/x_$(HOTSPOT_TARGET_CPU).ad \ - $d/cpu/$(HOTSPOT_TARGET_CPU_ARCH)/gc/x/x_$(HOTSPOT_TARGET_CPU_ARCH).ad \ $d/cpu/$(HOTSPOT_TARGET_CPU_ARCH)/gc/z/z_$(HOTSPOT_TARGET_CPU).ad \ $d/cpu/$(HOTSPOT_TARGET_CPU_ARCH)/gc/z/z_$(HOTSPOT_TARGET_CPU_ARCH).ad \ ))) diff --git a/make/hotspot/lib/JvmFeatures.gmk b/make/hotspot/lib/JvmFeatures.gmk index c4c030810fc..b94031515f7 100644 --- a/make/hotspot/lib/JvmFeatures.gmk +++ b/make/hotspot/lib/JvmFeatures.gmk @@ -150,7 +150,6 @@ endif ifneq ($(call check-jvm-feature, zgc), true) JVM_CFLAGS_FEATURES += -DINCLUDE_ZGC=0 JVM_EXCLUDE_PATTERNS += gc/z - JVM_EXCLUDE_PATTERNS += gc/x endif ifneq ($(call check-jvm-feature, shenandoahgc), true) diff --git a/src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp b/src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp index ebd83027151..3d1be91e9b2 100644 --- a/src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp +++ b/src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp @@ -990,10 +990,7 @@ void LIR_Assembler::mem2reg(LIR_Opr src, LIR_Opr dest, BasicType type, LIR_Patch __ decode_heap_oop(dest->as_register()); } - if (!(UseZGC && !ZGenerational)) { - // Load barrier has not yet been applied, so ZGC can't verify the oop here - __ verify_oop(dest->as_register()); - } + __ verify_oop(dest->as_register()); } } diff --git a/src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.cpp b/src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.cpp index 62831ee72ba..b29be7213ba 100644 --- a/src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.cpp +++ b/src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.cpp @@ -217,7 +217,7 @@ void C2_MacroAssembler::fast_unlock(Register objectReg, Register boxReg, Registe // StoreLoad achieves this. membar(StoreLoad); - // Check if the entry lists are empty. + // Check if the entry lists are empty (EntryList first - by convention). ldr(rscratch1, Address(tmp, ObjectMonitor::EntryList_offset())); ldr(tmpReg, Address(tmp, ObjectMonitor::cxq_offset())); orr(rscratch1, rscratch1, tmpReg); @@ -538,7 +538,7 @@ void C2_MacroAssembler::fast_unlock_lightweight(Register obj, Register box, Regi // StoreLoad achieves this. membar(StoreLoad); - // Check if the entry lists are empty. + // Check if the entry lists are empty (EntryList first - by convention). ldr(rscratch1, Address(t1_monitor, ObjectMonitor::EntryList_offset())); ldr(t3_t, Address(t1_monitor, ObjectMonitor::cxq_offset())); orr(rscratch1, rscratch1, t3_t); diff --git a/src/hotspot/cpu/aarch64/gc/x/xBarrierSetAssembler_aarch64.cpp b/src/hotspot/cpu/aarch64/gc/x/xBarrierSetAssembler_aarch64.cpp deleted file mode 100644 index 5c891e8c170..00000000000 --- a/src/hotspot/cpu/aarch64/gc/x/xBarrierSetAssembler_aarch64.cpp +++ /dev/null @@ -1,462 +0,0 @@ -/* - * Copyright (c) 2019, 2023, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "asm/macroAssembler.inline.hpp" -#include "code/codeBlob.hpp" -#include "code/vmreg.inline.hpp" -#include "gc/x/xBarrier.inline.hpp" -#include "gc/x/xBarrierSet.hpp" -#include "gc/x/xBarrierSetAssembler.hpp" -#include "gc/x/xBarrierSetRuntime.hpp" -#include "gc/x/xThreadLocalData.hpp" -#include "memory/resourceArea.hpp" -#include "runtime/sharedRuntime.hpp" -#include "utilities/macros.hpp" -#ifdef COMPILER1 -#include "c1/c1_LIRAssembler.hpp" -#include "c1/c1_MacroAssembler.hpp" -#include "gc/x/c1/xBarrierSetC1.hpp" -#endif // COMPILER1 -#ifdef COMPILER2 -#include "gc/x/c2/xBarrierSetC2.hpp" -#endif // COMPILER2 - -#ifdef PRODUCT -#define BLOCK_COMMENT(str) /* nothing */ -#else -#define BLOCK_COMMENT(str) __ block_comment(str) -#endif - -#undef __ -#define __ masm-> - -void XBarrierSetAssembler::load_at(MacroAssembler* masm, - DecoratorSet decorators, - BasicType type, - Register dst, - Address src, - Register tmp1, - Register tmp2) { - if (!XBarrierSet::barrier_needed(decorators, type)) { - // Barrier not needed - BarrierSetAssembler::load_at(masm, decorators, type, dst, src, tmp1, tmp2); - return; - } - - assert_different_registers(rscratch1, rscratch2, src.base()); - assert_different_registers(rscratch1, rscratch2, dst); - - Label done; - - // Load bad mask into scratch register. - __ ldr(rscratch1, address_bad_mask_from_thread(rthread)); - __ lea(rscratch2, src); - __ ldr(dst, src); - - // Test reference against bad mask. If mask bad, then we need to fix it up. - __ tst(dst, rscratch1); - __ br(Assembler::EQ, done); - - __ enter(/*strip_ret_addr*/true); - - __ push_call_clobbered_registers_except(RegSet::of(dst)); - - if (c_rarg0 != dst) { - __ mov(c_rarg0, dst); - } - __ mov(c_rarg1, rscratch2); - - __ call_VM_leaf(XBarrierSetRuntime::load_barrier_on_oop_field_preloaded_addr(decorators), 2); - - // Make sure dst has the return value. - if (dst != r0) { - __ mov(dst, r0); - } - - __ pop_call_clobbered_registers_except(RegSet::of(dst)); - __ leave(); - - __ bind(done); -} - -#ifdef ASSERT - -void XBarrierSetAssembler::store_at(MacroAssembler* masm, - DecoratorSet decorators, - BasicType type, - Address dst, - Register val, - Register tmp1, - Register tmp2, - Register tmp3) { - // Verify value - if (is_reference_type(type)) { - // Note that src could be noreg, which means we - // are storing null and can skip verification. - if (val != noreg) { - Label done; - - // tmp1, tmp2 and tmp3 are often set to noreg. - RegSet savedRegs = RegSet::of(rscratch1); - __ push(savedRegs, sp); - - __ ldr(rscratch1, address_bad_mask_from_thread(rthread)); - __ tst(val, rscratch1); - __ br(Assembler::EQ, done); - __ stop("Verify oop store failed"); - __ should_not_reach_here(); - __ bind(done); - __ pop(savedRegs, sp); - } - } - - // Store value - BarrierSetAssembler::store_at(masm, decorators, type, dst, val, tmp1, tmp2, noreg); -} - -#endif // ASSERT - -void XBarrierSetAssembler::arraycopy_prologue(MacroAssembler* masm, - DecoratorSet decorators, - bool is_oop, - Register src, - Register dst, - Register count, - RegSet saved_regs) { - if (!is_oop) { - // Barrier not needed - return; - } - - BLOCK_COMMENT("XBarrierSetAssembler::arraycopy_prologue {"); - - assert_different_registers(src, count, rscratch1); - - __ push(saved_regs, sp); - - if (count == c_rarg0) { - if (src == c_rarg1) { - // exactly backwards!! - __ mov(rscratch1, c_rarg0); - __ mov(c_rarg0, c_rarg1); - __ mov(c_rarg1, rscratch1); - } else { - __ mov(c_rarg1, count); - __ mov(c_rarg0, src); - } - } else { - __ mov(c_rarg0, src); - __ mov(c_rarg1, count); - } - - __ call_VM_leaf(XBarrierSetRuntime::load_barrier_on_oop_array_addr(), 2); - - __ pop(saved_regs, sp); - - BLOCK_COMMENT("} XBarrierSetAssembler::arraycopy_prologue"); -} - -void XBarrierSetAssembler::try_resolve_jobject_in_native(MacroAssembler* masm, - Register jni_env, - Register robj, - Register tmp, - Label& slowpath) { - BLOCK_COMMENT("XBarrierSetAssembler::try_resolve_jobject_in_native {"); - - assert_different_registers(jni_env, robj, tmp); - - // Resolve jobject - BarrierSetAssembler::try_resolve_jobject_in_native(masm, jni_env, robj, tmp, slowpath); - - // The Address offset is too large to direct load - -784. Our range is +127, -128. - __ mov(tmp, (int64_t)(in_bytes(XThreadLocalData::address_bad_mask_offset()) - - in_bytes(JavaThread::jni_environment_offset()))); - - // Load address bad mask - __ add(tmp, jni_env, tmp); - __ ldr(tmp, Address(tmp)); - - // Check address bad mask - __ tst(robj, tmp); - __ br(Assembler::NE, slowpath); - - BLOCK_COMMENT("} XBarrierSetAssembler::try_resolve_jobject_in_native"); -} - -#ifdef COMPILER1 - -#undef __ -#define __ ce->masm()-> - -void XBarrierSetAssembler::generate_c1_load_barrier_test(LIR_Assembler* ce, - LIR_Opr ref) const { - assert_different_registers(rscratch1, rthread, ref->as_register()); - - __ ldr(rscratch1, address_bad_mask_from_thread(rthread)); - __ tst(ref->as_register(), rscratch1); -} - -void XBarrierSetAssembler::generate_c1_load_barrier_stub(LIR_Assembler* ce, - XLoadBarrierStubC1* stub) const { - // Stub entry - __ bind(*stub->entry()); - - Register ref = stub->ref()->as_register(); - Register ref_addr = noreg; - Register tmp = noreg; - - if (stub->tmp()->is_valid()) { - // Load address into tmp register - ce->leal(stub->ref_addr(), stub->tmp()); - ref_addr = tmp = stub->tmp()->as_pointer_register(); - } else { - // Address already in register - ref_addr = stub->ref_addr()->as_address_ptr()->base()->as_pointer_register(); - } - - assert_different_registers(ref, ref_addr, noreg); - - // Save r0 unless it is the result or tmp register - // Set up SP to accommodate parameters and maybe r0.. - if (ref != r0 && tmp != r0) { - __ sub(sp, sp, 32); - __ str(r0, Address(sp, 16)); - } else { - __ sub(sp, sp, 16); - } - - // Setup arguments and call runtime stub - ce->store_parameter(ref_addr, 1); - ce->store_parameter(ref, 0); - - __ far_call(stub->runtime_stub()); - - // Verify result - __ verify_oop(r0); - - // Move result into place - if (ref != r0) { - __ mov(ref, r0); - } - - // Restore r0 unless it is the result or tmp register - if (ref != r0 && tmp != r0) { - __ ldr(r0, Address(sp, 16)); - __ add(sp, sp, 32); - } else { - __ add(sp, sp, 16); - } - - // Stub exit - __ b(*stub->continuation()); -} - -#undef __ -#define __ sasm-> - -void XBarrierSetAssembler::generate_c1_load_barrier_runtime_stub(StubAssembler* sasm, - DecoratorSet decorators) const { - __ prologue("zgc_load_barrier stub", false); - - __ push_call_clobbered_registers_except(RegSet::of(r0)); - - // Setup arguments - __ load_parameter(0, c_rarg0); - __ load_parameter(1, c_rarg1); - - __ call_VM_leaf(XBarrierSetRuntime::load_barrier_on_oop_field_preloaded_addr(decorators), 2); - - __ pop_call_clobbered_registers_except(RegSet::of(r0)); - - __ epilogue(); -} -#endif // COMPILER1 - -#ifdef COMPILER2 - -OptoReg::Name XBarrierSetAssembler::refine_register(const Node* node, OptoReg::Name opto_reg) { - if (!OptoReg::is_reg(opto_reg)) { - return OptoReg::Bad; - } - - const VMReg vm_reg = OptoReg::as_VMReg(opto_reg); - if (vm_reg->is_FloatRegister()) { - return opto_reg & ~1; - } - - return opto_reg; -} - -#undef __ -#define __ _masm-> - -class XSaveLiveRegisters { -private: - MacroAssembler* const _masm; - RegSet _gp_regs; - FloatRegSet _fp_regs; - PRegSet _p_regs; - -public: - void initialize(XLoadBarrierStubC2* stub) { - // Record registers that needs to be saved/restored - RegMaskIterator rmi(stub->live()); - while (rmi.has_next()) { - const OptoReg::Name opto_reg = rmi.next(); - if (OptoReg::is_reg(opto_reg)) { - const VMReg vm_reg = OptoReg::as_VMReg(opto_reg); - if (vm_reg->is_Register()) { - _gp_regs += RegSet::of(vm_reg->as_Register()); - } else if (vm_reg->is_FloatRegister()) { - _fp_regs += FloatRegSet::of(vm_reg->as_FloatRegister()); - } else if (vm_reg->is_PRegister()) { - _p_regs += PRegSet::of(vm_reg->as_PRegister()); - } else { - fatal("Unknown register type"); - } - } - } - - // Remove C-ABI SOE registers, scratch regs and _ref register that will be updated - _gp_regs -= RegSet::range(r19, r30) + RegSet::of(r8, r9, stub->ref()); - } - - XSaveLiveRegisters(MacroAssembler* masm, XLoadBarrierStubC2* stub) : - _masm(masm), - _gp_regs(), - _fp_regs(), - _p_regs() { - - // Figure out what registers to save/restore - initialize(stub); - - // Save registers - __ push(_gp_regs, sp); - __ push_fp(_fp_regs, sp); - __ push_p(_p_regs, sp); - } - - ~XSaveLiveRegisters() { - // Restore registers - __ pop_p(_p_regs, sp); - __ pop_fp(_fp_regs, sp); - - // External runtime call may clobber ptrue reg - __ reinitialize_ptrue(); - - __ pop(_gp_regs, sp); - } -}; - -#undef __ -#define __ _masm-> - -class XSetupArguments { -private: - MacroAssembler* const _masm; - const Register _ref; - const Address _ref_addr; - -public: - XSetupArguments(MacroAssembler* masm, XLoadBarrierStubC2* stub) : - _masm(masm), - _ref(stub->ref()), - _ref_addr(stub->ref_addr()) { - - // Setup arguments - if (_ref_addr.base() == noreg) { - // No self healing - if (_ref != c_rarg0) { - __ mov(c_rarg0, _ref); - } - __ mov(c_rarg1, 0); - } else { - // Self healing - if (_ref == c_rarg0) { - // _ref is already at correct place - __ lea(c_rarg1, _ref_addr); - } else if (_ref != c_rarg1) { - // _ref is in wrong place, but not in c_rarg1, so fix it first - __ lea(c_rarg1, _ref_addr); - __ mov(c_rarg0, _ref); - } else if (_ref_addr.base() != c_rarg0 && _ref_addr.index() != c_rarg0) { - assert(_ref == c_rarg1, "Mov ref first, vacating c_rarg0"); - __ mov(c_rarg0, _ref); - __ lea(c_rarg1, _ref_addr); - } else { - assert(_ref == c_rarg1, "Need to vacate c_rarg1 and _ref_addr is using c_rarg0"); - if (_ref_addr.base() == c_rarg0 || _ref_addr.index() == c_rarg0) { - __ mov(rscratch2, c_rarg1); - __ lea(c_rarg1, _ref_addr); - __ mov(c_rarg0, rscratch2); - } else { - ShouldNotReachHere(); - } - } - } - } - - ~XSetupArguments() { - // Transfer result - if (_ref != r0) { - __ mov(_ref, r0); - } - } -}; - -#undef __ -#define __ masm-> - -void XBarrierSetAssembler::generate_c2_load_barrier_stub(MacroAssembler* masm, XLoadBarrierStubC2* stub) const { - BLOCK_COMMENT("XLoadBarrierStubC2"); - - // Stub entry - __ bind(*stub->entry()); - - { - XSaveLiveRegisters save_live_registers(masm, stub); - XSetupArguments setup_arguments(masm, stub); - __ mov(rscratch1, stub->slow_path()); - __ blr(rscratch1); - } - // Stub exit - __ b(*stub->continuation()); -} - -#endif // COMPILER2 - -#undef __ -#define __ masm-> - -void XBarrierSetAssembler::check_oop(MacroAssembler* masm, Register obj, Register tmp1, Register tmp2, Label& error) { - // Check if mask is good. - // verifies that XAddressBadMask & r0 == 0 - __ ldr(tmp2, Address(rthread, XThreadLocalData::address_bad_mask_offset())); - __ andr(tmp1, obj, tmp2); - __ cbnz(tmp1, error); - - BarrierSetAssembler::check_oop(masm, obj, tmp1, tmp2, error); -} - -#undef __ diff --git a/src/hotspot/cpu/aarch64/gc/x/xBarrierSetAssembler_aarch64.hpp b/src/hotspot/cpu/aarch64/gc/x/xBarrierSetAssembler_aarch64.hpp deleted file mode 100644 index 8c1e9521757..00000000000 --- a/src/hotspot/cpu/aarch64/gc/x/xBarrierSetAssembler_aarch64.hpp +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Copyright (c) 2019, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef CPU_AARCH64_GC_X_XBARRIERSETASSEMBLER_AARCH64_HPP -#define CPU_AARCH64_GC_X_XBARRIERSETASSEMBLER_AARCH64_HPP - -#include "code/vmreg.hpp" -#include "oops/accessDecorators.hpp" -#ifdef COMPILER2 -#include "opto/optoreg.hpp" -#endif // COMPILER2 - -#ifdef COMPILER1 -class LIR_Assembler; -class LIR_Opr; -class StubAssembler; -#endif // COMPILER1 - -#ifdef COMPILER2 -class Node; -#endif // COMPILER2 - -#ifdef COMPILER1 -class XLoadBarrierStubC1; -#endif // COMPILER1 - -#ifdef COMPILER2 -class XLoadBarrierStubC2; -#endif // COMPILER2 - -class XBarrierSetAssembler : public XBarrierSetAssemblerBase { -public: - virtual void load_at(MacroAssembler* masm, - DecoratorSet decorators, - BasicType type, - Register dst, - Address src, - Register tmp1, - Register tmp2); - -#ifdef ASSERT - virtual void store_at(MacroAssembler* masm, - DecoratorSet decorators, - BasicType type, - Address dst, - Register val, - Register tmp1, - Register tmp2, - Register tmp3); -#endif // ASSERT - - virtual void arraycopy_prologue(MacroAssembler* masm, - DecoratorSet decorators, - bool is_oop, - Register src, - Register dst, - Register count, - RegSet saved_regs); - - virtual void try_resolve_jobject_in_native(MacroAssembler* masm, - Register jni_env, - Register robj, - Register tmp, - Label& slowpath); - - virtual NMethodPatchingType nmethod_patching_type() { return NMethodPatchingType::conc_data_patch; } - -#ifdef COMPILER1 - void generate_c1_load_barrier_test(LIR_Assembler* ce, - LIR_Opr ref) const; - - void generate_c1_load_barrier_stub(LIR_Assembler* ce, - XLoadBarrierStubC1* stub) const; - - void generate_c1_load_barrier_runtime_stub(StubAssembler* sasm, - DecoratorSet decorators) const; -#endif // COMPILER1 - -#ifdef COMPILER2 - OptoReg::Name refine_register(const Node* node, - OptoReg::Name opto_reg); - - void generate_c2_load_barrier_stub(MacroAssembler* masm, - XLoadBarrierStubC2* stub) const; -#endif // COMPILER2 - - void check_oop(MacroAssembler* masm, Register obj, Register tmp1, Register tmp2, Label& error); -}; - -#endif // CPU_AARCH64_GC_X_XBARRIERSETASSEMBLER_AARCH64_HPP diff --git a/src/hotspot/cpu/aarch64/gc/x/xGlobals_aarch64.cpp b/src/hotspot/cpu/aarch64/gc/x/xGlobals_aarch64.cpp deleted file mode 100644 index a9c53da3d01..00000000000 --- a/src/hotspot/cpu/aarch64/gc/x/xGlobals_aarch64.cpp +++ /dev/null @@ -1,212 +0,0 @@ -/* - * Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/shared/gcLogPrecious.hpp" -#include "gc/shared/gc_globals.hpp" -#include "gc/x/xGlobals.hpp" -#include "runtime/globals.hpp" -#include "runtime/os.hpp" -#include "utilities/globalDefinitions.hpp" -#include "utilities/powerOfTwo.hpp" - -#ifdef LINUX -#include -#endif // LINUX - -// -// The heap can have three different layouts, depending on the max heap size. -// -// Address Space & Pointer Layout 1 -// -------------------------------- -// -// +--------------------------------+ 0x00007FFFFFFFFFFF (127TB) -// . . -// . . -// . . -// +--------------------------------+ 0x0000014000000000 (20TB) -// | Remapped View | -// +--------------------------------+ 0x0000010000000000 (16TB) -// . . -// +--------------------------------+ 0x00000c0000000000 (12TB) -// | Marked1 View | -// +--------------------------------+ 0x0000080000000000 (8TB) -// | Marked0 View | -// +--------------------------------+ 0x0000040000000000 (4TB) -// . . -// +--------------------------------+ 0x0000000000000000 -// -// 6 4 4 4 4 -// 3 6 5 2 1 0 -// +--------------------+----+-----------------------------------------------+ -// |00000000 00000000 00|1111|11 11111111 11111111 11111111 11111111 11111111| -// +--------------------+----+-----------------------------------------------+ -// | | | -// | | * 41-0 Object Offset (42-bits, 4TB address space) -// | | -// | * 45-42 Metadata Bits (4-bits) 0001 = Marked0 (Address view 4-8TB) -// | 0010 = Marked1 (Address view 8-12TB) -// | 0100 = Remapped (Address view 16-20TB) -// | 1000 = Finalizable (Address view N/A) -// | -// * 63-46 Fixed (18-bits, always zero) -// -// -// Address Space & Pointer Layout 2 -// -------------------------------- -// -// +--------------------------------+ 0x00007FFFFFFFFFFF (127TB) -// . . -// . . -// . . -// +--------------------------------+ 0x0000280000000000 (40TB) -// | Remapped View | -// +--------------------------------+ 0x0000200000000000 (32TB) -// . . -// +--------------------------------+ 0x0000180000000000 (24TB) -// | Marked1 View | -// +--------------------------------+ 0x0000100000000000 (16TB) -// | Marked0 View | -// +--------------------------------+ 0x0000080000000000 (8TB) -// . . -// +--------------------------------+ 0x0000000000000000 -// -// 6 4 4 4 4 -// 3 7 6 3 2 0 -// +------------------+-----+------------------------------------------------+ -// |00000000 00000000 0|1111|111 11111111 11111111 11111111 11111111 11111111| -// +-------------------+----+------------------------------------------------+ -// | | | -// | | * 42-0 Object Offset (43-bits, 8TB address space) -// | | -// | * 46-43 Metadata Bits (4-bits) 0001 = Marked0 (Address view 8-16TB) -// | 0010 = Marked1 (Address view 16-24TB) -// | 0100 = Remapped (Address view 32-40TB) -// | 1000 = Finalizable (Address view N/A) -// | -// * 63-47 Fixed (17-bits, always zero) -// -// -// Address Space & Pointer Layout 3 -// -------------------------------- -// -// +--------------------------------+ 0x00007FFFFFFFFFFF (127TB) -// . . -// . . -// . . -// +--------------------------------+ 0x0000500000000000 (80TB) -// | Remapped View | -// +--------------------------------+ 0x0000400000000000 (64TB) -// . . -// +--------------------------------+ 0x0000300000000000 (48TB) -// | Marked1 View | -// +--------------------------------+ 0x0000200000000000 (32TB) -// | Marked0 View | -// +--------------------------------+ 0x0000100000000000 (16TB) -// . . -// +--------------------------------+ 0x0000000000000000 -// -// 6 4 4 4 4 -// 3 8 7 4 3 0 -// +------------------+----+-------------------------------------------------+ -// |00000000 00000000 |1111|1111 11111111 11111111 11111111 11111111 11111111| -// +------------------+----+-------------------------------------------------+ -// | | | -// | | * 43-0 Object Offset (44-bits, 16TB address space) -// | | -// | * 47-44 Metadata Bits (4-bits) 0001 = Marked0 (Address view 16-32TB) -// | 0010 = Marked1 (Address view 32-48TB) -// | 0100 = Remapped (Address view 64-80TB) -// | 1000 = Finalizable (Address view N/A) -// | -// * 63-48 Fixed (16-bits, always zero) -// - -// Default value if probing is not implemented for a certain platform -// Max address bit is restricted by implicit assumptions in the code, for instance -// the bit layout of XForwardingEntry or Partial array entry (see XMarkStackEntry) in mark stack -static const size_t DEFAULT_MAX_ADDRESS_BIT = 46; -// Minimum value returned, if probing fails -static const size_t MINIMUM_MAX_ADDRESS_BIT = 36; - -static size_t probe_valid_max_address_bit() { -#ifdef LINUX - size_t max_address_bit = 0; - const size_t page_size = os::vm_page_size(); - for (size_t i = DEFAULT_MAX_ADDRESS_BIT; i > MINIMUM_MAX_ADDRESS_BIT; --i) { - const uintptr_t base_addr = ((uintptr_t) 1U) << i; - if (msync((void*)base_addr, page_size, MS_ASYNC) == 0) { - // msync succeeded, the address is valid, and maybe even already mapped. - max_address_bit = i; - break; - } - if (errno != ENOMEM) { - // Some error occurred. This should never happen, but msync - // has some undefined behavior, hence ignore this bit. -#ifdef ASSERT - fatal("Received '%s' while probing the address space for the highest valid bit", os::errno_name(errno)); -#else // ASSERT - log_warning_p(gc)("Received '%s' while probing the address space for the highest valid bit", os::errno_name(errno)); -#endif // ASSERT - continue; - } - // Since msync failed with ENOMEM, the page might not be mapped. - // Try to map it, to see if the address is valid. - void* const result_addr = mmap((void*) base_addr, page_size, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0); - if (result_addr != MAP_FAILED) { - munmap(result_addr, page_size); - } - if ((uintptr_t) result_addr == base_addr) { - // address is valid - max_address_bit = i; - break; - } - } - if (max_address_bit == 0) { - // probing failed, allocate a very high page and take that bit as the maximum - const uintptr_t high_addr = ((uintptr_t) 1U) << DEFAULT_MAX_ADDRESS_BIT; - void* const result_addr = mmap((void*) high_addr, page_size, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0); - if (result_addr != MAP_FAILED) { - max_address_bit = BitsPerSize_t - count_leading_zeros((size_t) result_addr) - 1; - munmap(result_addr, page_size); - } - } - log_info_p(gc, init)("Probing address space for the highest valid bit: " SIZE_FORMAT, max_address_bit); - return MAX2(max_address_bit, MINIMUM_MAX_ADDRESS_BIT); -#else // LINUX - return DEFAULT_MAX_ADDRESS_BIT; -#endif // LINUX -} - -size_t XPlatformAddressOffsetBits() { - const static size_t valid_max_address_offset_bits = probe_valid_max_address_bit() + 1; - const size_t max_address_offset_bits = valid_max_address_offset_bits - 3; - const size_t min_address_offset_bits = max_address_offset_bits - 2; - const size_t address_offset = round_up_power_of_2(MaxHeapSize * XVirtualToPhysicalRatio); - const size_t address_offset_bits = log2i_exact(address_offset); - return clamp(address_offset_bits, min_address_offset_bits, max_address_offset_bits); -} - -size_t XPlatformAddressMetadataShift() { - return XPlatformAddressOffsetBits(); -} diff --git a/src/hotspot/cpu/aarch64/gc/x/xGlobals_aarch64.hpp b/src/hotspot/cpu/aarch64/gc/x/xGlobals_aarch64.hpp deleted file mode 100644 index 870b0d74d57..00000000000 --- a/src/hotspot/cpu/aarch64/gc/x/xGlobals_aarch64.hpp +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (c) 2015, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef CPU_AARCH64_GC_X_XGLOBALS_AARCH64_HPP -#define CPU_AARCH64_GC_X_XGLOBALS_AARCH64_HPP - -const size_t XPlatformHeapViews = 3; -const size_t XPlatformCacheLineSize = 64; - -size_t XPlatformAddressOffsetBits(); -size_t XPlatformAddressMetadataShift(); - -#endif // CPU_AARCH64_GC_X_XGLOBALS_AARCH64_HPP diff --git a/src/hotspot/cpu/aarch64/gc/x/x_aarch64.ad b/src/hotspot/cpu/aarch64/gc/x/x_aarch64.ad deleted file mode 100644 index 6e401724baa..00000000000 --- a/src/hotspot/cpu/aarch64/gc/x/x_aarch64.ad +++ /dev/null @@ -1,249 +0,0 @@ -// -// Copyright (c) 2019, 2024, Oracle and/or its affiliates. All rights reserved. -// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -// -// This code is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License version 2 only, as -// published by the Free Software Foundation. -// -// This code 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 -// version 2 for more details (a copy is included in the LICENSE file that -// accompanied this code). -// -// You should have received a copy of the GNU General Public License version -// 2 along with this work; if not, write to the Free Software Foundation, -// Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -// -// Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -// or visit www.oracle.com if you need additional information or have any -// questions. -// - -source_hpp %{ - -#include "gc/shared/gc_globals.hpp" -#include "gc/x/c2/xBarrierSetC2.hpp" -#include "gc/x/xThreadLocalData.hpp" - -%} - -source %{ - -static void x_load_barrier(MacroAssembler* masm, const MachNode* node, Address ref_addr, Register ref, Register tmp, uint8_t barrier_data) { - if (barrier_data == XLoadBarrierElided) { - return; - } - XLoadBarrierStubC2* const stub = XLoadBarrierStubC2::create(node, ref_addr, ref, tmp, barrier_data); - __ ldr(tmp, Address(rthread, XThreadLocalData::address_bad_mask_offset())); - __ andr(tmp, tmp, ref); - __ cbnz(tmp, *stub->entry()); - __ bind(*stub->continuation()); -} - -static void x_load_barrier_slow_path(MacroAssembler* masm, const MachNode* node, Address ref_addr, Register ref, Register tmp) { - XLoadBarrierStubC2* const stub = XLoadBarrierStubC2::create(node, ref_addr, ref, tmp, XLoadBarrierStrong); - __ b(*stub->entry()); - __ bind(*stub->continuation()); -} - -%} - -// Load Pointer -instruct xLoadP(iRegPNoSp dst, memory8 mem, rFlagsReg cr) -%{ - match(Set dst (LoadP mem)); - predicate(UseZGC && !ZGenerational && !needs_acquiring_load(n) && (n->as_Load()->barrier_data() != 0)); - effect(TEMP dst, KILL cr); - - ins_cost(4 * INSN_COST); - - format %{ "ldr $dst, $mem" %} - - ins_encode %{ - Address ref_addr = mem2address($mem->opcode(), as_Register($mem$$base), $mem$$index, $mem$$scale, $mem$$disp); - if (ref_addr.getMode() == Address::base_plus_offset) { - // Fix up any out-of-range offsets. - assert_different_registers(rscratch1, as_Register($mem$$base)); - assert_different_registers(rscratch1, $dst$$Register); - ref_addr = __ legitimize_address(ref_addr, 8, rscratch1); - } - __ ldr($dst$$Register, ref_addr); - x_load_barrier(masm, this, ref_addr, $dst$$Register, rscratch2 /* tmp */, barrier_data()); - %} - - ins_pipe(iload_reg_mem); -%} - -// Load Pointer Volatile -instruct xLoadPVolatile(iRegPNoSp dst, indirect mem /* sync_memory */, rFlagsReg cr) -%{ - match(Set dst (LoadP mem)); - predicate(UseZGC && !ZGenerational && needs_acquiring_load(n) && n->as_Load()->barrier_data() != 0); - effect(TEMP dst, KILL cr); - - ins_cost(VOLATILE_REF_COST); - - format %{ "ldar $dst, $mem\t" %} - - ins_encode %{ - __ ldar($dst$$Register, $mem$$Register); - x_load_barrier(masm, this, Address($mem$$Register), $dst$$Register, rscratch2 /* tmp */, barrier_data()); - %} - - ins_pipe(pipe_serial); -%} - -instruct xCompareAndSwapP(iRegINoSp res, indirect mem, iRegP oldval, iRegP newval, rFlagsReg cr) %{ - match(Set res (CompareAndSwapP mem (Binary oldval newval))); - match(Set res (WeakCompareAndSwapP mem (Binary oldval newval))); - predicate(UseZGC && !ZGenerational && !needs_acquiring_load_exclusive(n) && n->as_LoadStore()->barrier_data() == XLoadBarrierStrong); - effect(KILL cr, TEMP_DEF res); - - ins_cost(2 * VOLATILE_REF_COST); - - format %{ "cmpxchg $mem, $oldval, $newval\n\t" - "cset $res, EQ" %} - - ins_encode %{ - guarantee($mem$$index == -1 && $mem$$disp == 0, "impossible encoding"); - __ cmpxchg($mem$$Register, $oldval$$Register, $newval$$Register, Assembler::xword, - false /* acquire */, true /* release */, false /* weak */, rscratch2); - __ cset($res$$Register, Assembler::EQ); - if (barrier_data() != XLoadBarrierElided) { - Label good; - __ ldr(rscratch1, Address(rthread, XThreadLocalData::address_bad_mask_offset())); - __ andr(rscratch1, rscratch1, rscratch2); - __ cbz(rscratch1, good); - x_load_barrier_slow_path(masm, this, Address($mem$$Register), rscratch2 /* ref */, rscratch1 /* tmp */); - __ cmpxchg($mem$$Register, $oldval$$Register, $newval$$Register, Assembler::xword, - false /* acquire */, true /* release */, false /* weak */, rscratch2); - __ cset($res$$Register, Assembler::EQ); - __ bind(good); - } - %} - - ins_pipe(pipe_slow); -%} - -instruct xCompareAndSwapPAcq(iRegINoSp res, indirect mem, iRegP oldval, iRegP newval, rFlagsReg cr) %{ - match(Set res (CompareAndSwapP mem (Binary oldval newval))); - match(Set res (WeakCompareAndSwapP mem (Binary oldval newval))); - predicate(UseZGC && !ZGenerational && needs_acquiring_load_exclusive(n) && (n->as_LoadStore()->barrier_data() == XLoadBarrierStrong)); - effect(KILL cr, TEMP_DEF res); - - ins_cost(2 * VOLATILE_REF_COST); - - format %{ "cmpxchg $mem, $oldval, $newval\n\t" - "cset $res, EQ" %} - - ins_encode %{ - guarantee($mem$$index == -1 && $mem$$disp == 0, "impossible encoding"); - __ cmpxchg($mem$$Register, $oldval$$Register, $newval$$Register, Assembler::xword, - true /* acquire */, true /* release */, false /* weak */, rscratch2); - __ cset($res$$Register, Assembler::EQ); - if (barrier_data() != XLoadBarrierElided) { - Label good; - __ ldr(rscratch1, Address(rthread, XThreadLocalData::address_bad_mask_offset())); - __ andr(rscratch1, rscratch1, rscratch2); - __ cbz(rscratch1, good); - x_load_barrier_slow_path(masm, this, Address($mem$$Register), rscratch2 /* ref */, rscratch1 /* tmp */ ); - __ cmpxchg($mem$$Register, $oldval$$Register, $newval$$Register, Assembler::xword, - true /* acquire */, true /* release */, false /* weak */, rscratch2); - __ cset($res$$Register, Assembler::EQ); - __ bind(good); - } - %} - - ins_pipe(pipe_slow); -%} - -instruct xCompareAndExchangeP(iRegPNoSp res, indirect mem, iRegP oldval, iRegP newval, rFlagsReg cr) %{ - match(Set res (CompareAndExchangeP mem (Binary oldval newval))); - predicate(UseZGC && !ZGenerational && !needs_acquiring_load_exclusive(n) && n->as_LoadStore()->barrier_data() == XLoadBarrierStrong); - effect(TEMP_DEF res, KILL cr); - - ins_cost(2 * VOLATILE_REF_COST); - - format %{ "cmpxchg $res = $mem, $oldval, $newval" %} - - ins_encode %{ - guarantee($mem$$index == -1 && $mem$$disp == 0, "impossible encoding"); - __ cmpxchg($mem$$Register, $oldval$$Register, $newval$$Register, Assembler::xword, - false /* acquire */, true /* release */, false /* weak */, $res$$Register); - if (barrier_data() != XLoadBarrierElided) { - Label good; - __ ldr(rscratch1, Address(rthread, XThreadLocalData::address_bad_mask_offset())); - __ andr(rscratch1, rscratch1, $res$$Register); - __ cbz(rscratch1, good); - x_load_barrier_slow_path(masm, this, Address($mem$$Register), $res$$Register /* ref */, rscratch1 /* tmp */); - __ cmpxchg($mem$$Register, $oldval$$Register, $newval$$Register, Assembler::xword, - false /* acquire */, true /* release */, false /* weak */, $res$$Register); - __ bind(good); - } - %} - - ins_pipe(pipe_slow); -%} - -instruct xCompareAndExchangePAcq(iRegPNoSp res, indirect mem, iRegP oldval, iRegP newval, rFlagsReg cr) %{ - match(Set res (CompareAndExchangeP mem (Binary oldval newval))); - predicate(UseZGC && !ZGenerational && needs_acquiring_load_exclusive(n) && n->as_LoadStore()->barrier_data() == XLoadBarrierStrong); - effect(TEMP_DEF res, KILL cr); - - ins_cost(2 * VOLATILE_REF_COST); - - format %{ "cmpxchg $res = $mem, $oldval, $newval" %} - - ins_encode %{ - guarantee($mem$$index == -1 && $mem$$disp == 0, "impossible encoding"); - __ cmpxchg($mem$$Register, $oldval$$Register, $newval$$Register, Assembler::xword, - true /* acquire */, true /* release */, false /* weak */, $res$$Register); - if (barrier_data() != XLoadBarrierElided) { - Label good; - __ ldr(rscratch1, Address(rthread, XThreadLocalData::address_bad_mask_offset())); - __ andr(rscratch1, rscratch1, $res$$Register); - __ cbz(rscratch1, good); - x_load_barrier_slow_path(masm, this, Address($mem$$Register), $res$$Register /* ref */, rscratch1 /* tmp */); - __ cmpxchg($mem$$Register, $oldval$$Register, $newval$$Register, Assembler::xword, - true /* acquire */, true /* release */, false /* weak */, $res$$Register); - __ bind(good); - } - %} - - ins_pipe(pipe_slow); -%} - -instruct xGetAndSetP(indirect mem, iRegP newv, iRegPNoSp prev, rFlagsReg cr) %{ - match(Set prev (GetAndSetP mem newv)); - predicate(UseZGC && !ZGenerational && !needs_acquiring_load_exclusive(n) && n->as_LoadStore()->barrier_data() != 0); - effect(TEMP_DEF prev, KILL cr); - - ins_cost(2 * VOLATILE_REF_COST); - - format %{ "atomic_xchg $prev, $newv, [$mem]" %} - - ins_encode %{ - __ atomic_xchg($prev$$Register, $newv$$Register, $mem$$Register); - x_load_barrier(masm, this, Address(noreg, 0), $prev$$Register, rscratch2 /* tmp */, barrier_data()); - %} - - ins_pipe(pipe_serial); -%} - -instruct xGetAndSetPAcq(indirect mem, iRegP newv, iRegPNoSp prev, rFlagsReg cr) %{ - match(Set prev (GetAndSetP mem newv)); - predicate(UseZGC && !ZGenerational && needs_acquiring_load_exclusive(n) && (n->as_LoadStore()->barrier_data() != 0)); - effect(TEMP_DEF prev, KILL cr); - - ins_cost(VOLATILE_REF_COST); - - format %{ "atomic_xchg_acq $prev, $newv, [$mem]" %} - - ins_encode %{ - __ atomic_xchgal($prev$$Register, $newv$$Register, $mem$$Register); - x_load_barrier(masm, this, Address(noreg, 0), $prev$$Register, rscratch2 /* tmp */, barrier_data()); - %} - ins_pipe(pipe_serial); -%} diff --git a/src/hotspot/cpu/aarch64/gc/z/z_aarch64.ad b/src/hotspot/cpu/aarch64/gc/z/z_aarch64.ad index 088f92a0157..47abaae3d5b 100644 --- a/src/hotspot/cpu/aarch64/gc/z/z_aarch64.ad +++ b/src/hotspot/cpu/aarch64/gc/z/z_aarch64.ad @@ -104,7 +104,7 @@ static void z_store_barrier(MacroAssembler* masm, const MachNode* node, Address instruct zLoadP(iRegPNoSp dst, memory8 mem, rFlagsReg cr) %{ match(Set dst (LoadP mem)); - predicate(UseZGC && ZGenerational && !needs_acquiring_load(n) && n->as_Load()->barrier_data() != 0); + predicate(UseZGC && !needs_acquiring_load(n) && n->as_Load()->barrier_data() != 0); effect(TEMP dst, KILL cr); ins_cost(4 * INSN_COST); @@ -130,7 +130,7 @@ instruct zLoadP(iRegPNoSp dst, memory8 mem, rFlagsReg cr) instruct zLoadPVolatile(iRegPNoSp dst, indirect mem /* sync_memory */, rFlagsReg cr) %{ match(Set dst (LoadP mem)); - predicate(UseZGC && ZGenerational && needs_acquiring_load(n) && n->as_Load()->barrier_data() != 0); + predicate(UseZGC && needs_acquiring_load(n) && n->as_Load()->barrier_data() != 0); effect(TEMP dst, KILL cr); ins_cost(VOLATILE_REF_COST); @@ -149,7 +149,7 @@ instruct zLoadPVolatile(iRegPNoSp dst, indirect mem /* sync_memory */, rFlagsReg // Store Pointer instruct zStoreP(memory mem, iRegP src, iRegPNoSp tmp, rFlagsReg cr) %{ - predicate(UseZGC && ZGenerational && !needs_releasing_store(n) && n->as_Store()->barrier_data() != 0); + predicate(UseZGC && !needs_releasing_store(n) && n->as_Store()->barrier_data() != 0); match(Set mem (StoreP mem src)); effect(TEMP tmp, KILL cr); @@ -166,7 +166,7 @@ instruct zStoreP(memory mem, iRegP src, iRegPNoSp tmp, rFlagsReg cr) // Store Pointer Volatile instruct zStorePVolatile(indirect mem, iRegP src, iRegPNoSp tmp, rFlagsReg cr) %{ - predicate(UseZGC && ZGenerational && needs_releasing_store(n) && n->as_Store()->barrier_data() != 0); + predicate(UseZGC && needs_releasing_store(n) && n->as_Store()->barrier_data() != 0); match(Set mem (StoreP mem src)); effect(TEMP tmp, KILL cr); @@ -183,7 +183,7 @@ instruct zStorePVolatile(indirect mem, iRegP src, iRegPNoSp tmp, rFlagsReg cr) instruct zCompareAndSwapP(iRegINoSp res, indirect mem, iRegP oldval, iRegP newval, iRegPNoSp oldval_tmp, iRegPNoSp newval_tmp, rFlagsReg cr) %{ match(Set res (CompareAndSwapP mem (Binary oldval newval))); match(Set res (WeakCompareAndSwapP mem (Binary oldval newval))); - predicate(UseZGC && ZGenerational && !needs_acquiring_load_exclusive(n) && n->as_LoadStore()->barrier_data() != 0); + predicate(UseZGC && !needs_acquiring_load_exclusive(n) && n->as_LoadStore()->barrier_data() != 0); effect(TEMP oldval_tmp, TEMP newval_tmp, TEMP res, KILL cr); ins_cost(2 * VOLATILE_REF_COST); @@ -207,7 +207,7 @@ instruct zCompareAndSwapP(iRegINoSp res, indirect mem, iRegP oldval, iRegP newva instruct zCompareAndSwapPAcq(iRegINoSp res, indirect mem, iRegP oldval, iRegP newval, iRegPNoSp oldval_tmp, iRegPNoSp newval_tmp, rFlagsReg cr) %{ match(Set res (CompareAndSwapP mem (Binary oldval newval))); match(Set res (WeakCompareAndSwapP mem (Binary oldval newval))); - predicate(UseZGC && ZGenerational && needs_acquiring_load_exclusive(n) && n->as_LoadStore()->barrier_data() != 0); + predicate(UseZGC && needs_acquiring_load_exclusive(n) && n->as_LoadStore()->barrier_data() != 0); effect(TEMP oldval_tmp, TEMP newval_tmp, TEMP res, KILL cr); ins_cost(2 * VOLATILE_REF_COST); @@ -231,7 +231,7 @@ instruct zCompareAndSwapPAcq(iRegINoSp res, indirect mem, iRegP oldval, iRegP ne instruct zCompareAndExchangeP(iRegPNoSp res, indirect mem, iRegP oldval, iRegP newval, iRegPNoSp oldval_tmp, iRegPNoSp newval_tmp, rFlagsReg cr) %{ match(Set res (CompareAndExchangeP mem (Binary oldval newval))); - predicate(UseZGC && ZGenerational && !needs_acquiring_load_exclusive(n) && n->as_LoadStore()->barrier_data() != 0); + predicate(UseZGC && !needs_acquiring_load_exclusive(n) && n->as_LoadStore()->barrier_data() != 0); effect(TEMP oldval_tmp, TEMP newval_tmp, TEMP res, KILL cr); ins_cost(2 * VOLATILE_REF_COST); @@ -254,7 +254,7 @@ instruct zCompareAndExchangeP(iRegPNoSp res, indirect mem, iRegP oldval, iRegP n instruct zCompareAndExchangePAcq(iRegPNoSp res, indirect mem, iRegP oldval, iRegP newval, iRegPNoSp oldval_tmp, iRegPNoSp newval_tmp, rFlagsReg cr) %{ match(Set res (CompareAndExchangeP mem (Binary oldval newval))); - predicate(UseZGC && ZGenerational && needs_acquiring_load_exclusive(n) && n->as_LoadStore()->barrier_data() != 0); + predicate(UseZGC && needs_acquiring_load_exclusive(n) && n->as_LoadStore()->barrier_data() != 0); effect(TEMP oldval_tmp, TEMP newval_tmp, TEMP res, KILL cr); ins_cost(2 * VOLATILE_REF_COST); @@ -277,7 +277,7 @@ instruct zCompareAndExchangePAcq(iRegPNoSp res, indirect mem, iRegP oldval, iReg instruct zGetAndSetP(indirect mem, iRegP newv, iRegPNoSp prev, rFlagsReg cr) %{ match(Set prev (GetAndSetP mem newv)); - predicate(UseZGC && ZGenerational && !needs_acquiring_load_exclusive(n) && n->as_LoadStore()->barrier_data() != 0); + predicate(UseZGC && !needs_acquiring_load_exclusive(n) && n->as_LoadStore()->barrier_data() != 0); effect(TEMP prev, KILL cr); ins_cost(2 * VOLATILE_REF_COST); @@ -295,7 +295,7 @@ instruct zGetAndSetP(indirect mem, iRegP newv, iRegPNoSp prev, rFlagsReg cr) %{ instruct zGetAndSetPAcq(indirect mem, iRegP newv, iRegPNoSp prev, rFlagsReg cr) %{ match(Set prev (GetAndSetP mem newv)); - predicate(UseZGC && ZGenerational && needs_acquiring_load_exclusive(n) && n->as_LoadStore()->barrier_data() != 0); + predicate(UseZGC && needs_acquiring_load_exclusive(n) && n->as_LoadStore()->barrier_data() != 0); effect(TEMP prev, KILL cr); ins_cost(2 * VOLATILE_REF_COST); diff --git a/src/hotspot/cpu/aarch64/globals_aarch64.hpp b/src/hotspot/cpu/aarch64/globals_aarch64.hpp index 9c20e3737c8..800e7718921 100644 --- a/src/hotspot/cpu/aarch64/globals_aarch64.hpp +++ b/src/hotspot/cpu/aarch64/globals_aarch64.hpp @@ -38,7 +38,7 @@ define_pd_global(bool, UncommonNullCast, true); // Uncommon-trap nulls define_pd_global(bool, DelayCompilerStubsGeneration, COMPILER2_OR_JVMCI); -define_pd_global(uintx, CodeCacheSegmentSize, 64 COMPILER1_AND_COMPILER2_PRESENT(+64)); // Tiered compilation has large code-entry alignment. +define_pd_global(uintx, CodeCacheSegmentSize, 64); define_pd_global(intx, CodeEntryAlignment, 64); define_pd_global(intx, OptoLoopAlignment, 16); diff --git a/src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp b/src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp index 9835fb5aca1..252f4232115 100644 --- a/src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp +++ b/src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp @@ -4782,23 +4782,6 @@ void MacroAssembler::kernel_crc32_common_fold_using_crypto_pmull(Register crc, R mov(tmp1, v0, D, 1); } -SkipIfEqual::SkipIfEqual( - MacroAssembler* masm, const bool* flag_addr, bool value) { - _masm = masm; - uint64_t offset; - _masm->adrp(rscratch1, ExternalAddress((address)flag_addr), offset); - _masm->ldrb(rscratch1, Address(rscratch1, offset)); - if (value) { - _masm->cbnzw(rscratch1, _label); - } else { - _masm->cbzw(rscratch1, _label); - } -} - -SkipIfEqual::~SkipIfEqual() { - _masm->bind(_label); -} - void MacroAssembler::addptr(const Address &dst, int32_t src) { Address adr; switch(dst.getMode()) { diff --git a/src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp b/src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp index e49f0c49ef6..48fb3c2b071 100644 --- a/src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp +++ b/src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp @@ -1652,24 +1652,6 @@ class MacroAssembler: public Assembler { inline bool AbstractAssembler::pd_check_instruction_mark() { return false; } #endif -/** - * class SkipIfEqual: - * - * Instantiating this class will result in assembly code being output that will - * jump around any code emitted between the creation of the instance and it's - * automatic destruction at the end of a scope block, depending on the value of - * the flag passed to the constructor, which will be checked at run-time. - */ -class SkipIfEqual { - private: - MacroAssembler* _masm; - Label _label; - - public: - SkipIfEqual(MacroAssembler*, const bool* flag_addr, bool value); - ~SkipIfEqual(); -}; - struct tableswitch { Register _reg; int _insn_index; jint _first_key; jint _last_key; diff --git a/src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp b/src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp index 31116e006f0..de7fc5b281b 100644 --- a/src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp +++ b/src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp @@ -1374,7 +1374,9 @@ class StubGenerator: public StubCodeGenerator { // r15 is the byte adjustment needed to align s. __ cbz(r15, aligned); int shift = exact_log2(granularity); - if (shift) __ lsr(r15, r15, shift); + if (shift > 0) { + __ lsr(r15, r15, shift); + } __ sub(count, count, r15); #if 0 @@ -1402,9 +1404,15 @@ class StubGenerator: public StubCodeGenerator { // s is now 2-word-aligned. - // We have a count of units and some trailing bytes. Adjust the - // count and do a bulk copy of words. - __ lsr(r15, count, exact_log2(wordSize/granularity)); + // We have a count of units and some trailing bytes. Adjust the + // count and do a bulk copy of words. If the shift is zero + // perform a move instead to benefit from zero latency moves. + int shift = exact_log2(wordSize/granularity); + if (shift > 0) { + __ lsr(r15, count, shift); + } else { + __ mov(r15, count); + } if (direction == copy_forwards) { if (type != T_OBJECT) { __ bl(copy_f); diff --git a/src/hotspot/cpu/aarch64/vm_version_aarch64.cpp b/src/hotspot/cpu/aarch64/vm_version_aarch64.cpp index d71162ac568..f18cec16488 100644 --- a/src/hotspot/cpu/aarch64/vm_version_aarch64.cpp +++ b/src/hotspot/cpu/aarch64/vm_version_aarch64.cpp @@ -259,6 +259,9 @@ void VM_Version::initialize() { if (FLAG_IS_DEFAULT(UseCryptoPmullForCRC32)) { FLAG_SET_DEFAULT(UseCryptoPmullForCRC32, true); } + if (FLAG_IS_DEFAULT(CodeEntryAlignment)) { + FLAG_SET_DEFAULT(CodeEntryAlignment, 32); + } } if (UseCryptoPmullForCRC32 && (!VM_Version::supports_pmull() || !VM_Version::supports_sha3() || !VM_Version::supports_crc32())) { diff --git a/src/hotspot/cpu/arm/globals_arm.hpp b/src/hotspot/cpu/arm/globals_arm.hpp index 084d10beea1..9c4b8500e18 100644 --- a/src/hotspot/cpu/arm/globals_arm.hpp +++ b/src/hotspot/cpu/arm/globals_arm.hpp @@ -36,7 +36,7 @@ define_pd_global(bool, TrapBasedNullChecks, false); // Not needed define_pd_global(bool, DelayCompilerStubsGeneration, false); // No need - only few compiler's stubs -define_pd_global(uintx, CodeCacheSegmentSize, 64 COMPILER1_AND_COMPILER2_PRESENT(+64)); // Tiered compilation has large code-entry alignment. +define_pd_global(uintx, CodeCacheSegmentSize, 64); define_pd_global(intx, CodeEntryAlignment, 16); define_pd_global(intx, OptoLoopAlignment, 16); diff --git a/src/hotspot/cpu/ppc/assembler_ppc.hpp b/src/hotspot/cpu/ppc/assembler_ppc.hpp index d445108098b..b2711ac43b0 100644 --- a/src/hotspot/cpu/ppc/assembler_ppc.hpp +++ b/src/hotspot/cpu/ppc/assembler_ppc.hpp @@ -2502,19 +2502,19 @@ class Assembler : public AbstractAssembler { // load the constant are emitted beforehand. Store instructions need a // tmp reg if the constant is not encodable as immediate. // Size unpredictable. - void ld( Register d, RegisterOrConstant roc, Register s1 = noreg); - void lwa( Register d, RegisterOrConstant roc, Register s1 = noreg); - void lwz( Register d, RegisterOrConstant roc, Register s1 = noreg); - void lha( Register d, RegisterOrConstant roc, Register s1 = noreg); - void lhz( Register d, RegisterOrConstant roc, Register s1 = noreg); - void lbz( Register d, RegisterOrConstant roc, Register s1 = noreg); - void std( Register d, RegisterOrConstant roc, Register s1 = noreg, Register tmp = noreg); - void stw( Register d, RegisterOrConstant roc, Register s1 = noreg, Register tmp = noreg); - void sth( Register d, RegisterOrConstant roc, Register s1 = noreg, Register tmp = noreg); - void stb( Register d, RegisterOrConstant roc, Register s1 = noreg, Register tmp = noreg); - void add( Register d, Register s, RegisterOrConstant roc); - void add( Register d, RegisterOrConstant roc, Register s) { add(d, s, roc); } - void sub( Register d, Register s, RegisterOrConstant roc); + void ld( Register d, RegisterOrConstant roc, Register s1 = noreg); + void lwa(Register d, RegisterOrConstant roc, Register s1 = noreg); + void lwz(Register d, RegisterOrConstant roc, Register s1 = noreg); + void lha(Register d, RegisterOrConstant roc, Register s1 = noreg); + void lhz(Register d, RegisterOrConstant roc, Register s1 = noreg); + void lbz(Register d, RegisterOrConstant roc, Register s1 = noreg); + void std(Register d, RegisterOrConstant roc, Register s1 = noreg, Register tmp = noreg); + void stw(Register d, RegisterOrConstant roc, Register s1 = noreg, Register tmp = noreg); + void sth(Register d, RegisterOrConstant roc, Register s1 = noreg, Register tmp = noreg); + void stb(Register d, RegisterOrConstant roc, Register s1 = noreg, Register tmp = noreg); + void add(Register d, Register s, RegisterOrConstant roc); + void add(Register d, RegisterOrConstant roc, Register s) { add(d, s, roc); } + void sub(Register d, Register s, RegisterOrConstant roc); void xorr(Register d, Register s, RegisterOrConstant roc); void xorr(Register d, RegisterOrConstant roc, Register s) { xorr(d, s, roc); } void cmpw(ConditionRegister d, Register s, RegisterOrConstant roc); @@ -2522,6 +2522,17 @@ class Assembler : public AbstractAssembler { // Load pointer d from s1+roc. void ld_ptr(Register d, RegisterOrConstant roc, Register s1 = noreg) { ld(d, roc, s1); } + void ld( Register d, Address &a); + void lwa(Register d, Address &a); + void lwz(Register d, Address &a); + void lha(Register d, Address &a); + void lhz(Register d, Address &a); + void lbz(Register d, Address &a); + void std(Register d, Address &a, Register tmp = noreg); + void stw(Register d, Address &a, Register tmp = noreg); + void sth(Register d, Address &a, Register tmp = noreg); + void stb(Register d, Address &a, Register tmp = noreg); + // Emit several instructions to load a 64 bit constant. This issues a fixed // instruction pattern so that the constant can be patched later on. enum { diff --git a/src/hotspot/cpu/ppc/assembler_ppc.inline.hpp b/src/hotspot/cpu/ppc/assembler_ppc.inline.hpp index 98c8b629844..b0eaaccf0d0 100644 --- a/src/hotspot/cpu/ppc/assembler_ppc.inline.hpp +++ b/src/hotspot/cpu/ppc/assembler_ppc.inline.hpp @@ -338,28 +338,46 @@ inline void Assembler::insrwi( Register a, Register s, int n, int b) // PPC 1, section 3.3.2 Fixed-Point Load Instructions inline void Assembler::lwzx( Register d, Register s1, Register s2) { emit_int32(LWZX_OPCODE | rt(d) | ra0mem(s1) | rb(s2));} +inline void Assembler::lwz( Register d, Address &a) { + lwz(d, a.index() != noreg ? RegisterOrConstant(a.index()) : RegisterOrConstant(a.disp()), a.base()); +} inline void Assembler::lwz( Register d, int si16, Register s1) { emit_int32(LWZ_OPCODE | rt(d) | d1(si16) | ra0mem(s1));} inline void Assembler::lwzu( Register d, int si16, Register s1) { assert(d != s1, "according to ibm manual"); emit_int32(LWZU_OPCODE | rt(d) | d1(si16) | rta0mem(s1));} inline void Assembler::lwax( Register d, Register s1, Register s2) { emit_int32(LWAX_OPCODE | rt(d) | ra0mem(s1) | rb(s2));} +inline void Assembler::lwa( Register d, Address &a) { + lwa(d, a.index() != noreg ? RegisterOrConstant(a.index()) : RegisterOrConstant(a.disp()), a.base()); +} inline void Assembler::lwa( Register d, int si16, Register s1) { emit_int32(LWA_OPCODE | rt(d) | ds(si16) | ra0mem(s1));} inline void Assembler::lwbrx( Register d, Register s1, Register s2) { emit_int32(LWBRX_OPCODE | rt(d) | ra0mem(s1) | rb(s2));} inline void Assembler::lhzx( Register d, Register s1, Register s2) { emit_int32(LHZX_OPCODE | rt(d) | ra0mem(s1) | rb(s2));} +inline void Assembler::lhz( Register d, Address &a) { + lhz(d, a.index() != noreg ? RegisterOrConstant(a.index()) : RegisterOrConstant(a.disp()), a.base()); +} inline void Assembler::lhz( Register d, int si16, Register s1) { emit_int32(LHZ_OPCODE | rt(d) | d1(si16) | ra0mem(s1));} inline void Assembler::lhzu( Register d, int si16, Register s1) { assert(d != s1, "according to ibm manual"); emit_int32(LHZU_OPCODE | rt(d) | d1(si16) | rta0mem(s1));} inline void Assembler::lhbrx( Register d, Register s1, Register s2) { emit_int32(LHBRX_OPCODE | rt(d) | ra0mem(s1) | rb(s2));} inline void Assembler::lhax( Register d, Register s1, Register s2) { emit_int32(LHAX_OPCODE | rt(d) | ra0mem(s1) | rb(s2));} +inline void Assembler::lha( Register d, Address &a) { + lha(d, a.index() != noreg ? RegisterOrConstant(a.index()) : RegisterOrConstant(a.disp()), a.base()); +} inline void Assembler::lha( Register d, int si16, Register s1) { emit_int32(LHA_OPCODE | rt(d) | d1(si16) | ra0mem(s1));} inline void Assembler::lhau( Register d, int si16, Register s1) { assert(d != s1, "according to ibm manual"); emit_int32(LHAU_OPCODE | rt(d) | d1(si16) | rta0mem(s1));} inline void Assembler::lbzx( Register d, Register s1, Register s2) { emit_int32(LBZX_OPCODE | rt(d) | ra0mem(s1) | rb(s2));} +inline void Assembler::lbz( Register d, Address &a) { + lbz(d, a.index() != noreg ? RegisterOrConstant(a.index()) : RegisterOrConstant(a.disp()), a.base()); +} inline void Assembler::lbz( Register d, int si16, Register s1) { emit_int32(LBZ_OPCODE | rt(d) | d1(si16) | ra0mem(s1));} inline void Assembler::lbzu( Register d, int si16, Register s1) { assert(d != s1, "according to ibm manual"); emit_int32(LBZU_OPCODE | rt(d) | d1(si16) | rta0mem(s1));} +inline void Assembler::ld( Register d, Address &a) { + ld(d, a.index() != noreg ? RegisterOrConstant(a.index()) : RegisterOrConstant(a.disp()), a.base()); +} inline void Assembler::ld( Register d, int si16, Register s1) { emit_int32(LD_OPCODE | rt(d) | ds(si16) | ra0mem(s1));} inline void Assembler::ld( Register d, ByteSize si16, Register s1) { assert(in_bytes(si16) < 0x7fff, "overflow"); ld(d, in_bytes(si16), s1); } inline void Assembler::ldx( Register d, Register s1, Register s2) { emit_int32(LDX_OPCODE | rt(d) | ra0mem(s1) | rb(s2));} @@ -371,19 +389,31 @@ inline void Assembler::ld_ptr(Register d, ByteSize b, Register s1) { ld(d, in_by // PPC 1, section 3.3.3 Fixed-Point Store Instructions inline void Assembler::stwx( Register d, Register s1, Register s2) { emit_int32(STWX_OPCODE | rs(d) | ra0mem(s1) | rb(s2));} +inline void Assembler::stw( Register d, Address &a, Register tmp) { + stw(d, a.index() != noreg ? RegisterOrConstant(a.index()) : RegisterOrConstant(a.disp()), a.base(), tmp); +} inline void Assembler::stw( Register d, int si16, Register s1) { emit_int32(STW_OPCODE | rs(d) | d1(si16) | ra0mem(s1));} inline void Assembler::stwu( Register d, int si16, Register s1) { emit_int32(STWU_OPCODE | rs(d) | d1(si16) | rta0mem(s1));} inline void Assembler::stwbrx( Register d, Register s1, Register s2) { emit_int32(STWBRX_OPCODE | rs(d) | ra0mem(s1) | rb(s2));} inline void Assembler::sthx( Register d, Register s1, Register s2) { emit_int32(STHX_OPCODE | rs(d) | ra0mem(s1) | rb(s2));} +inline void Assembler::sth( Register d, Address &a, Register tmp) { + sth(d, a.index() != noreg ? RegisterOrConstant(a.index()) : RegisterOrConstant(a.disp()), a.base(), tmp); +} inline void Assembler::sth( Register d, int si16, Register s1) { emit_int32(STH_OPCODE | rs(d) | d1(si16) | ra0mem(s1));} inline void Assembler::sthu( Register d, int si16, Register s1) { emit_int32(STHU_OPCODE | rs(d) | d1(si16) | rta0mem(s1));} inline void Assembler::sthbrx( Register d, Register s1, Register s2) { emit_int32(STHBRX_OPCODE | rs(d) | ra0mem(s1) | rb(s2));} inline void Assembler::stbx( Register d, Register s1, Register s2) { emit_int32(STBX_OPCODE | rs(d) | ra0mem(s1) | rb(s2));} +inline void Assembler::stb( Register d, Address &a, Register tmp) { + stb(d, a.index() != noreg ? RegisterOrConstant(a.index()) : RegisterOrConstant(a.disp()), a.base(), tmp); +} inline void Assembler::stb( Register d, int si16, Register s1) { emit_int32(STB_OPCODE | rs(d) | d1(si16) | ra0mem(s1));} inline void Assembler::stbu( Register d, int si16, Register s1) { emit_int32(STBU_OPCODE | rs(d) | d1(si16) | rta0mem(s1));} +inline void Assembler::std( Register d, Address &a, Register tmp) { + std(d, a.index() != noreg ? RegisterOrConstant(a.index()) : RegisterOrConstant(a.disp()), a.base(), tmp); +} inline void Assembler::std( Register d, int si16, Register s1) { emit_int32(STD_OPCODE | rs(d) | ds(si16) | ra0mem(s1));} inline void Assembler::stdx( Register d, Register s1, Register s2) { emit_int32(STDX_OPCODE | rs(d) | ra0mem(s1) | rb(s2));} inline void Assembler::stdu( Register d, int si16, Register s1) { emit_int32(STDU_OPCODE | rs(d) | ds(si16) | rta0mem(s1));} diff --git a/src/hotspot/cpu/ppc/c1_LIRAssembler_ppc.cpp b/src/hotspot/cpu/ppc/c1_LIRAssembler_ppc.cpp index 92a39e6e356..36e1ac82334 100644 --- a/src/hotspot/cpu/ppc/c1_LIRAssembler_ppc.cpp +++ b/src/hotspot/cpu/ppc/c1_LIRAssembler_ppc.cpp @@ -133,9 +133,20 @@ void LIR_Assembler::osr_entry() { // copied into place by code emitted in the IR. Register OSR_buf = osrBufferPointer()->as_register(); - { assert(frame::interpreter_frame_monitor_size() == BasicObjectLock::size(), "adjust code below"); - int monitor_offset = BytesPerWord * method()->max_locals() + - (2 * BytesPerWord) * (number_of_locks - 1); + { + assert(frame::interpreter_frame_monitor_size() == BasicObjectLock::size(), "adjust code below"); + + const int locals_space = BytesPerWord * method()->max_locals(); + int monitor_offset = locals_space + (2 * BytesPerWord) * (number_of_locks - 1); + bool use_OSR_bias = false; + + if (!Assembler::is_simm16(monitor_offset + BytesPerWord) && number_of_locks > 0) { + // Offsets too large for ld instructions. Use bias. + __ add_const_optimized(OSR_buf, OSR_buf, locals_space); + monitor_offset -= locals_space; + use_OSR_bias = true; + } + // SharedRuntime::OSR_migration_begin() packs BasicObjectLocks in // the OSR buffer using 2 word entries: first the lock and then // the oop. @@ -157,9 +168,14 @@ void LIR_Assembler::osr_entry() { mo = frame_map()->address_for_monitor_object(i); assert(ml.index() == noreg && mo.index() == noreg, "sanity"); __ ld(R0, slot_offset + 0, OSR_buf); - __ std(R0, ml.disp(), ml.base()); + __ std(R0, ml); __ ld(R0, slot_offset + 1*BytesPerWord, OSR_buf); - __ std(R0, mo.disp(), mo.base()); + __ std(R0, mo); + } + + if (use_OSR_bias) { + // Restore. + __ sub_const_optimized(OSR_buf, OSR_buf, locals_space); } } } @@ -585,7 +601,7 @@ void LIR_Assembler::emit_opConvert(LIR_OpConvert* op) { __ fcmpu(CCR0, rsrc, rsrc); if (dst_in_memory) { __ li(R0, 0); // 0 in case of NAN - __ std(R0, addr.disp(), addr.base()); + __ std(R0, addr); } else { __ li(dst->as_register(), 0); } @@ -609,7 +625,7 @@ void LIR_Assembler::emit_opConvert(LIR_OpConvert* op) { __ fcmpu(CCR0, rsrc, rsrc); if (dst_in_memory) { __ li(R0, 0); // 0 in case of NAN - __ std(R0, addr.disp(), addr.base()); + __ std(R0, addr); } else { __ li(dst->as_register_lo(), 0); } @@ -877,20 +893,20 @@ void LIR_Assembler::const2stack(LIR_Opr src, LIR_Opr dest) { int value = c->as_jint_bits(); __ load_const_optimized(src_reg, value); Address addr = frame_map()->address_for_slot(dest->single_stack_ix()); - __ stw(src_reg, addr.disp(), addr.base()); + __ stw(src_reg, addr); break; } case T_ADDRESS: { int value = c->as_jint_bits(); __ load_const_optimized(src_reg, value); Address addr = frame_map()->address_for_slot(dest->single_stack_ix()); - __ std(src_reg, addr.disp(), addr.base()); + __ std(src_reg, addr); break; } case T_OBJECT: { jobject2reg(c->as_jobject(), src_reg); Address addr = frame_map()->address_for_slot(dest->single_stack_ix()); - __ std(src_reg, addr.disp(), addr.base()); + __ std(src_reg, addr); break; } case T_LONG: @@ -898,7 +914,7 @@ void LIR_Assembler::const2stack(LIR_Opr src, LIR_Opr dest) { int value = c->as_jlong_bits(); __ load_const_optimized(src_reg, value); Address addr = frame_map()->address_for_double_slot(dest->double_stack_ix()); - __ std(src_reg, addr.disp(), addr.base()); + __ std(src_reg, addr); break; } default: @@ -1074,24 +1090,24 @@ void LIR_Assembler::stack2stack(LIR_Opr src, LIR_Opr dest, BasicType type) { case T_FLOAT: { Address from = frame_map()->address_for_slot(src->single_stack_ix()); Address to = frame_map()->address_for_slot(dest->single_stack_ix()); - __ lwz(tmp, from.disp(), from.base()); - __ stw(tmp, to.disp(), to.base()); + __ lwz(tmp, from); + __ stw(tmp, to); break; } case T_ADDRESS: case T_OBJECT: { Address from = frame_map()->address_for_slot(src->single_stack_ix()); Address to = frame_map()->address_for_slot(dest->single_stack_ix()); - __ ld(tmp, from.disp(), from.base()); - __ std(tmp, to.disp(), to.base()); + __ ld(tmp, from); + __ std(tmp, to); break; } case T_LONG: case T_DOUBLE: { Address from = frame_map()->address_for_double_slot(src->double_stack_ix()); Address to = frame_map()->address_for_double_slot(dest->double_stack_ix()); - __ ld(tmp, from.disp(), from.base()); - __ std(tmp, to.disp(), to.base()); + __ ld(tmp, from); + __ std(tmp, to); break; } diff --git a/src/hotspot/cpu/ppc/gc/x/xBarrierSetAssembler_ppc.cpp b/src/hotspot/cpu/ppc/gc/x/xBarrierSetAssembler_ppc.cpp deleted file mode 100644 index ca826e47352..00000000000 --- a/src/hotspot/cpu/ppc/gc/x/xBarrierSetAssembler_ppc.cpp +++ /dev/null @@ -1,585 +0,0 @@ -/* - * Copyright (c) 2021, 2024, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2021, 2024 SAP SE. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "asm/register.hpp" -#include "asm/macroAssembler.inline.hpp" -#include "code/codeBlob.hpp" -#include "code/vmreg.inline.hpp" -#include "gc/x/xBarrier.inline.hpp" -#include "gc/x/xBarrierSet.hpp" -#include "gc/x/xBarrierSetAssembler.hpp" -#include "gc/x/xBarrierSetRuntime.hpp" -#include "gc/x/xThreadLocalData.hpp" -#include "memory/resourceArea.hpp" -#include "register_ppc.hpp" -#include "runtime/sharedRuntime.hpp" -#include "utilities/globalDefinitions.hpp" -#include "utilities/macros.hpp" -#ifdef COMPILER1 -#include "c1/c1_LIRAssembler.hpp" -#include "c1/c1_MacroAssembler.hpp" -#include "gc/x/c1/xBarrierSetC1.hpp" -#endif // COMPILER1 -#ifdef COMPILER2 -#include "gc/x/c2/xBarrierSetC2.hpp" -#endif // COMPILER2 - -#undef __ -#define __ masm-> - -void XBarrierSetAssembler::load_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type, - Register base, RegisterOrConstant ind_or_offs, Register dst, - Register tmp1, Register tmp2, - MacroAssembler::PreservationLevel preservation_level, Label *L_handle_null) { - __ block_comment("load_at (zgc) {"); - - // Check whether a special gc barrier is required for this particular load - // (e.g. whether it's a reference load or not) - if (!XBarrierSet::barrier_needed(decorators, type)) { - BarrierSetAssembler::load_at(masm, decorators, type, base, ind_or_offs, dst, - tmp1, tmp2, preservation_level, L_handle_null); - return; - } - - if (ind_or_offs.is_register()) { - assert_different_registers(base, ind_or_offs.as_register(), tmp1, tmp2, R0, noreg); - assert_different_registers(dst, ind_or_offs.as_register(), tmp1, tmp2, R0, noreg); - } else { - assert_different_registers(base, tmp1, tmp2, R0, noreg); - assert_different_registers(dst, tmp1, tmp2, R0, noreg); - } - - /* ==== Load the pointer using the standard implementation for the actual heap access - and the decompression of compressed pointers ==== */ - // Result of 'load_at' (standard implementation) will be written back to 'dst'. - // As 'base' is required for the C-call, it must be reserved in case of a register clash. - Register saved_base = base; - if (base == dst) { - __ mr(tmp2, base); - saved_base = tmp2; - } - - BarrierSetAssembler::load_at(masm, decorators, type, base, ind_or_offs, dst, - tmp1, noreg, preservation_level, L_handle_null); - - /* ==== Check whether pointer is dirty ==== */ - Label skip_barrier; - - // Load bad mask into scratch register. - __ ld(tmp1, (intptr_t) XThreadLocalData::address_bad_mask_offset(), R16_thread); - - // The color bits of the to-be-tested pointer do not have to be equivalent to the 'bad_mask' testing bits. - // A pointer is classified as dirty if any of the color bits that also match the bad mask is set. - // Conversely, it follows that the logical AND of the bad mask and the pointer must be zero - // if the pointer is not dirty. - // Only dirty pointers must be processed by this barrier, so we can skip it in case the latter condition holds true. - __ and_(tmp1, tmp1, dst); - __ beq(CCR0, skip_barrier); - - /* ==== Invoke barrier ==== */ - int nbytes_save = 0; - - const bool needs_frame = preservation_level >= MacroAssembler::PRESERVATION_FRAME_LR; - const bool preserve_gp_registers = preservation_level >= MacroAssembler::PRESERVATION_FRAME_LR_GP_REGS; - const bool preserve_fp_registers = preservation_level >= MacroAssembler::PRESERVATION_FRAME_LR_GP_FP_REGS; - - const bool preserve_R3 = dst != R3_ARG1; - - if (needs_frame) { - if (preserve_gp_registers) { - nbytes_save = (preserve_fp_registers - ? MacroAssembler::num_volatile_gp_regs + MacroAssembler::num_volatile_fp_regs - : MacroAssembler::num_volatile_gp_regs) * BytesPerWord; - nbytes_save -= preserve_R3 ? 0 : BytesPerWord; - __ save_volatile_gprs(R1_SP, -nbytes_save, preserve_fp_registers, preserve_R3); - } - - __ save_LR(tmp1); - __ push_frame_reg_args(nbytes_save, tmp1); - } - - // Setup arguments - if (saved_base != R3_ARG1) { - __ mr_if_needed(R3_ARG1, dst); - __ add(R4_ARG2, ind_or_offs, saved_base); - } else if (dst != R4_ARG2) { - __ add(R4_ARG2, ind_or_offs, saved_base); - __ mr(R3_ARG1, dst); - } else { - __ add(R0, ind_or_offs, saved_base); - __ mr(R3_ARG1, dst); - __ mr(R4_ARG2, R0); - } - - __ call_VM_leaf(XBarrierSetRuntime::load_barrier_on_oop_field_preloaded_addr(decorators)); - - Register result = R3_RET; - if (needs_frame) { - __ pop_frame(); - __ restore_LR(tmp1); - - if (preserve_R3) { - __ mr(R0, R3_RET); - result = R0; - } - - if (preserve_gp_registers) { - __ restore_volatile_gprs(R1_SP, -nbytes_save, preserve_fp_registers, preserve_R3); - } - } - __ mr_if_needed(dst, result); - - __ bind(skip_barrier); - __ block_comment("} load_at (zgc)"); -} - -#ifdef ASSERT -// The Z store barrier only verifies the pointers it is operating on and is thus a sole debugging measure. -void XBarrierSetAssembler::store_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type, - Register base, RegisterOrConstant ind_or_offs, Register val, - Register tmp1, Register tmp2, Register tmp3, - MacroAssembler::PreservationLevel preservation_level) { - __ block_comment("store_at (zgc) {"); - - // If the 'val' register is 'noreg', the to-be-stored value is a null pointer. - if (is_reference_type(type) && val != noreg) { - __ ld(tmp1, in_bytes(XThreadLocalData::address_bad_mask_offset()), R16_thread); - __ and_(tmp1, tmp1, val); - __ asm_assert_eq("Detected dirty pointer on the heap in Z store barrier"); - } - - // Store value - BarrierSetAssembler::store_at(masm, decorators, type, base, ind_or_offs, val, tmp1, tmp2, tmp3, preservation_level); - - __ block_comment("} store_at (zgc)"); -} -#endif // ASSERT - -void XBarrierSetAssembler::arraycopy_prologue(MacroAssembler *masm, DecoratorSet decorators, BasicType component_type, - Register src, Register dst, Register count, - Register preserve1, Register preserve2) { - __ block_comment("arraycopy_prologue (zgc) {"); - - /* ==== Check whether a special gc barrier is required for this particular load ==== */ - if (!is_reference_type(component_type)) { - return; - } - - Label skip_barrier; - - // Fast path: Array is of length zero - __ cmpdi(CCR0, count, 0); - __ beq(CCR0, skip_barrier); - - /* ==== Ensure register sanity ==== */ - Register tmp_R11 = R11_scratch1; - - assert_different_registers(src, dst, count, tmp_R11, noreg); - if (preserve1 != noreg) { - // Not technically required, but unlikely being intended. - assert_different_registers(preserve1, preserve2); - } - - /* ==== Invoke barrier (slowpath) ==== */ - int nbytes_save = 0; - - { - assert(!noreg->is_volatile(), "sanity"); - - if (preserve1->is_volatile()) { - __ std(preserve1, -BytesPerWord * ++nbytes_save, R1_SP); - } - - if (preserve2->is_volatile() && preserve1 != preserve2) { - __ std(preserve2, -BytesPerWord * ++nbytes_save, R1_SP); - } - - __ std(src, -BytesPerWord * ++nbytes_save, R1_SP); - __ std(dst, -BytesPerWord * ++nbytes_save, R1_SP); - __ std(count, -BytesPerWord * ++nbytes_save, R1_SP); - - __ save_LR(tmp_R11); - __ push_frame_reg_args(nbytes_save, tmp_R11); - } - - // XBarrierSetRuntime::load_barrier_on_oop_array_addr(src, count) - if (count == R3_ARG1) { - if (src == R4_ARG2) { - // Arguments are provided in reverse order - __ mr(tmp_R11, count); - __ mr(R3_ARG1, src); - __ mr(R4_ARG2, tmp_R11); - } else { - __ mr(R4_ARG2, count); - __ mr(R3_ARG1, src); - } - } else { - __ mr_if_needed(R3_ARG1, src); - __ mr_if_needed(R4_ARG2, count); - } - - __ call_VM_leaf(XBarrierSetRuntime::load_barrier_on_oop_array_addr()); - - __ pop_frame(); - __ restore_LR(tmp_R11); - - { - __ ld(count, -BytesPerWord * nbytes_save--, R1_SP); - __ ld(dst, -BytesPerWord * nbytes_save--, R1_SP); - __ ld(src, -BytesPerWord * nbytes_save--, R1_SP); - - if (preserve2->is_volatile() && preserve1 != preserve2) { - __ ld(preserve2, -BytesPerWord * nbytes_save--, R1_SP); - } - - if (preserve1->is_volatile()) { - __ ld(preserve1, -BytesPerWord * nbytes_save--, R1_SP); - } - } - - __ bind(skip_barrier); - - __ block_comment("} arraycopy_prologue (zgc)"); -} - -void XBarrierSetAssembler::try_resolve_jobject_in_native(MacroAssembler* masm, Register dst, Register jni_env, - Register obj, Register tmp, Label& slowpath) { - __ block_comment("try_resolve_jobject_in_native (zgc) {"); - - assert_different_registers(jni_env, obj, tmp); - - // Resolve the pointer using the standard implementation for weak tag handling and pointer verification. - BarrierSetAssembler::try_resolve_jobject_in_native(masm, dst, jni_env, obj, tmp, slowpath); - - // Check whether pointer is dirty. - __ ld(tmp, - in_bytes(XThreadLocalData::address_bad_mask_offset() - JavaThread::jni_environment_offset()), - jni_env); - - __ and_(tmp, obj, tmp); - __ bne(CCR0, slowpath); - - __ block_comment("} try_resolve_jobject_in_native (zgc)"); -} - -#undef __ - -#ifdef COMPILER1 -#define __ ce->masm()-> - -// Code emitted by LIR node "LIR_OpXLoadBarrierTest" which in turn is emitted by XBarrierSetC1::load_barrier. -// The actual compare and branch instructions are represented as stand-alone LIR nodes. -void XBarrierSetAssembler::generate_c1_load_barrier_test(LIR_Assembler* ce, - LIR_Opr ref) const { - __ block_comment("load_barrier_test (zgc) {"); - - __ ld(R0, in_bytes(XThreadLocalData::address_bad_mask_offset()), R16_thread); - __ andr(R0, R0, ref->as_pointer_register()); - __ cmpdi(CCR5 /* as mandated by LIR node */, R0, 0); - - __ block_comment("} load_barrier_test (zgc)"); -} - -// Code emitted by code stub "XLoadBarrierStubC1" which in turn is emitted by XBarrierSetC1::load_barrier. -// Invokes the runtime stub which is defined just below. -void XBarrierSetAssembler::generate_c1_load_barrier_stub(LIR_Assembler* ce, - XLoadBarrierStubC1* stub) const { - __ block_comment("c1_load_barrier_stub (zgc) {"); - - __ bind(*stub->entry()); - - /* ==== Determine relevant data registers and ensure register sanity ==== */ - Register ref = stub->ref()->as_register(); - Register ref_addr = noreg; - - // Determine reference address - if (stub->tmp()->is_valid()) { - // 'tmp' register is given, so address might have an index or a displacement. - ce->leal(stub->ref_addr(), stub->tmp()); - ref_addr = stub->tmp()->as_pointer_register(); - } else { - // 'tmp' register is not given, so address must have neither an index nor a displacement. - // The address' base register is thus usable as-is. - assert(stub->ref_addr()->as_address_ptr()->disp() == 0, "illegal displacement"); - assert(!stub->ref_addr()->as_address_ptr()->index()->is_valid(), "illegal index"); - - ref_addr = stub->ref_addr()->as_address_ptr()->base()->as_pointer_register(); - } - - assert_different_registers(ref, ref_addr, R0, noreg); - - /* ==== Invoke stub ==== */ - // Pass arguments via stack. The stack pointer will be bumped by the stub. - __ std(ref, (intptr_t) -1 * BytesPerWord, R1_SP); - __ std(ref_addr, (intptr_t) -2 * BytesPerWord, R1_SP); - - __ load_const_optimized(R0, stub->runtime_stub()); - __ call_stub(R0); - - // The runtime stub passes the result via the R0 register, overriding the previously-loaded stub address. - __ mr_if_needed(ref, R0); - __ b(*stub->continuation()); - - __ block_comment("} c1_load_barrier_stub (zgc)"); -} - -#undef __ -#define __ sasm-> - -// Code emitted by runtime code stub which in turn is emitted by XBarrierSetC1::generate_c1_runtime_stubs. -void XBarrierSetAssembler::generate_c1_load_barrier_runtime_stub(StubAssembler* sasm, - DecoratorSet decorators) const { - __ block_comment("c1_load_barrier_runtime_stub (zgc) {"); - - const int stack_parameters = 2; - const int nbytes_save = (MacroAssembler::num_volatile_regs + stack_parameters) * BytesPerWord; - - __ save_volatile_gprs(R1_SP, -nbytes_save); - __ save_LR(R0); - - // Load arguments back again from the stack. - __ ld(R3_ARG1, (intptr_t) -1 * BytesPerWord, R1_SP); // ref - __ ld(R4_ARG2, (intptr_t) -2 * BytesPerWord, R1_SP); // ref_addr - - __ push_frame_reg_args(nbytes_save, R0); - - __ call_VM_leaf(XBarrierSetRuntime::load_barrier_on_oop_field_preloaded_addr(decorators)); - - __ verify_oop(R3_RET, "Bad pointer after barrier invocation"); - __ mr(R0, R3_RET); - - __ pop_frame(); - __ restore_LR(R3_RET); - __ restore_volatile_gprs(R1_SP, -nbytes_save); - - __ blr(); - - __ block_comment("} c1_load_barrier_runtime_stub (zgc)"); -} - -#undef __ -#endif // COMPILER1 - -#ifdef COMPILER2 - -OptoReg::Name XBarrierSetAssembler::refine_register(const Node* node, OptoReg::Name opto_reg) const { - if (!OptoReg::is_reg(opto_reg)) { - return OptoReg::Bad; - } - - VMReg vm_reg = OptoReg::as_VMReg(opto_reg); - if ((vm_reg->is_Register() || vm_reg ->is_FloatRegister()) && (opto_reg & 1) != 0) { - return OptoReg::Bad; - } - - return opto_reg; -} - -#define __ _masm-> - -class XSaveLiveRegisters { - MacroAssembler* _masm; - RegMask _reg_mask; - Register _result_reg; - int _frame_size; - - public: - XSaveLiveRegisters(MacroAssembler *masm, XLoadBarrierStubC2 *stub) - : _masm(masm), _reg_mask(stub->live()), _result_reg(stub->ref()) { - - const int register_save_size = iterate_over_register_mask(ACTION_COUNT_ONLY) * BytesPerWord; - _frame_size = align_up(register_save_size, frame::alignment_in_bytes) - + frame::native_abi_reg_args_size; - - __ save_LR_CR(R0); - __ push_frame(_frame_size, R0); - - iterate_over_register_mask(ACTION_SAVE, _frame_size); - } - - ~XSaveLiveRegisters() { - iterate_over_register_mask(ACTION_RESTORE, _frame_size); - - __ addi(R1_SP, R1_SP, _frame_size); - __ restore_LR_CR(R0); - } - - private: - enum IterationAction : int { - ACTION_SAVE, - ACTION_RESTORE, - ACTION_COUNT_ONLY - }; - - int iterate_over_register_mask(IterationAction action, int offset = 0) { - int reg_save_index = 0; - RegMaskIterator live_regs_iterator(_reg_mask); - - while(live_regs_iterator.has_next()) { - const OptoReg::Name opto_reg = live_regs_iterator.next(); - - // Filter out stack slots (spilled registers, i.e., stack-allocated registers). - if (!OptoReg::is_reg(opto_reg)) { - continue; - } - - const VMReg vm_reg = OptoReg::as_VMReg(opto_reg); - if (vm_reg->is_Register()) { - Register std_reg = vm_reg->as_Register(); - - // '_result_reg' will hold the end result of the operation. Its content must thus not be preserved. - if (std_reg == _result_reg) { - continue; - } - - if (std_reg->encoding() >= R2->encoding() && std_reg->encoding() <= R12->encoding()) { - reg_save_index++; - - if (action == ACTION_SAVE) { - _masm->std(std_reg, offset - reg_save_index * BytesPerWord, R1_SP); - } else if (action == ACTION_RESTORE) { - _masm->ld(std_reg, offset - reg_save_index * BytesPerWord, R1_SP); - } else { - assert(action == ACTION_COUNT_ONLY, "Sanity"); - } - } - } else if (vm_reg->is_FloatRegister()) { - FloatRegister fp_reg = vm_reg->as_FloatRegister(); - if (fp_reg->encoding() >= F0->encoding() && fp_reg->encoding() <= F13->encoding()) { - reg_save_index++; - - if (action == ACTION_SAVE) { - _masm->stfd(fp_reg, offset - reg_save_index * BytesPerWord, R1_SP); - } else if (action == ACTION_RESTORE) { - _masm->lfd(fp_reg, offset - reg_save_index * BytesPerWord, R1_SP); - } else { - assert(action == ACTION_COUNT_ONLY, "Sanity"); - } - } - } else if (vm_reg->is_ConditionRegister()) { - // NOP. Conditions registers are covered by save_LR_CR - } else if (vm_reg->is_VectorSRegister()) { - assert(SuperwordUseVSX, "or should not reach here"); - VectorSRegister vs_reg = vm_reg->as_VectorSRegister(); - if (vs_reg->encoding() >= VSR32->encoding() && vs_reg->encoding() <= VSR51->encoding()) { - reg_save_index += 2; - - Register spill_addr = R0; - if (action == ACTION_SAVE) { - _masm->addi(spill_addr, R1_SP, offset - reg_save_index * BytesPerWord); - _masm->stxvd2x(vs_reg, spill_addr); - } else if (action == ACTION_RESTORE) { - _masm->addi(spill_addr, R1_SP, offset - reg_save_index * BytesPerWord); - _masm->lxvd2x(vs_reg, spill_addr); - } else { - assert(action == ACTION_COUNT_ONLY, "Sanity"); - } - } - } else { - if (vm_reg->is_SpecialRegister()) { - fatal("Special registers are unsupported. Found register %s", vm_reg->name()); - } else { - fatal("Register type is not known"); - } - } - } - - return reg_save_index; - } -}; - -#undef __ -#define __ _masm-> - -class XSetupArguments { - MacroAssembler* const _masm; - const Register _ref; - const Address _ref_addr; - - public: - XSetupArguments(MacroAssembler* masm, XLoadBarrierStubC2* stub) : - _masm(masm), - _ref(stub->ref()), - _ref_addr(stub->ref_addr()) { - - // Desired register/argument configuration: - // _ref: R3_ARG1 - // _ref_addr: R4_ARG2 - - // '_ref_addr' can be unspecified. In that case, the barrier will not heal the reference. - if (_ref_addr.base() == noreg) { - assert_different_registers(_ref, R0, noreg); - - __ mr_if_needed(R3_ARG1, _ref); - __ li(R4_ARG2, 0); - } else { - assert_different_registers(_ref, _ref_addr.base(), R0, noreg); - assert(!_ref_addr.index()->is_valid(), "reference addresses must not contain an index component"); - - if (_ref != R4_ARG2) { - // Calculate address first as the address' base register might clash with R4_ARG2 - __ addi(R4_ARG2, _ref_addr.base(), _ref_addr.disp()); - __ mr_if_needed(R3_ARG1, _ref); - } else if (_ref_addr.base() != R3_ARG1) { - __ mr(R3_ARG1, _ref); - __ addi(R4_ARG2, _ref_addr.base(), _ref_addr.disp()); // Clobbering _ref - } else { - // Arguments are provided in inverse order (i.e. _ref == R4_ARG2, _ref_addr == R3_ARG1) - __ mr(R0, _ref); - __ addi(R4_ARG2, _ref_addr.base(), _ref_addr.disp()); - __ mr(R3_ARG1, R0); - } - } - } -}; - -#undef __ -#define __ masm-> - -void XBarrierSetAssembler::generate_c2_load_barrier_stub(MacroAssembler* masm, XLoadBarrierStubC2* stub) const { - __ block_comment("generate_c2_load_barrier_stub (zgc) {"); - - __ bind(*stub->entry()); - - Register ref = stub->ref(); - Address ref_addr = stub->ref_addr(); - - assert_different_registers(ref, ref_addr.base()); - - { - XSaveLiveRegisters save_live_registers(masm, stub); - XSetupArguments setup_arguments(masm, stub); - - __ call_VM_leaf(stub->slow_path()); - __ mr_if_needed(ref, R3_RET); - } - - __ b(*stub->continuation()); - - __ block_comment("} generate_c2_load_barrier_stub (zgc)"); -} - -#undef __ -#endif // COMPILER2 diff --git a/src/hotspot/cpu/ppc/gc/x/xBarrierSetAssembler_ppc.hpp b/src/hotspot/cpu/ppc/gc/x/xBarrierSetAssembler_ppc.hpp deleted file mode 100644 index 8dfd4524dfe..00000000000 --- a/src/hotspot/cpu/ppc/gc/x/xBarrierSetAssembler_ppc.hpp +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Copyright (c) 2021, 2022, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2021, 2022 SAP SE. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef CPU_PPC_GC_X_XBARRIERSETASSEMBLER_PPC_HPP -#define CPU_PPC_GC_X_XBARRIERSETASSEMBLER_PPC_HPP - -#include "code/vmreg.hpp" -#include "oops/accessDecorators.hpp" -#ifdef COMPILER2 -#include "opto/optoreg.hpp" -#endif // COMPILER2 - -#ifdef COMPILER1 -class LIR_Assembler; -class LIR_Opr; -class StubAssembler; -#endif // COMPILER1 - -#ifdef COMPILER2 -class Node; -#endif // COMPILER2 - -#ifdef COMPILER1 -class XLoadBarrierStubC1; -#endif // COMPILER1 - -#ifdef COMPILER2 -class XLoadBarrierStubC2; -#endif // COMPILER2 - -class XBarrierSetAssembler : public XBarrierSetAssemblerBase { -public: - virtual void load_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type, - Register base, RegisterOrConstant ind_or_offs, Register dst, - Register tmp1, Register tmp2, - MacroAssembler::PreservationLevel preservation_level, Label *L_handle_null = nullptr); - -#ifdef ASSERT - virtual void store_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type, - Register base, RegisterOrConstant ind_or_offs, Register val, - Register tmp1, Register tmp2, Register tmp3, - MacroAssembler::PreservationLevel preservation_level); -#endif // ASSERT - - virtual void arraycopy_prologue(MacroAssembler* masm, DecoratorSet decorators, BasicType type, - Register src, Register dst, Register count, - Register preserve1, Register preserve2); - - virtual void try_resolve_jobject_in_native(MacroAssembler* masm, Register dst, Register jni_env, - Register obj, Register tmp, Label& slowpath); - - virtual NMethodPatchingType nmethod_patching_type() { return NMethodPatchingType::conc_data_patch; } - -#ifdef COMPILER1 - void generate_c1_load_barrier_test(LIR_Assembler* ce, - LIR_Opr ref) const; - - void generate_c1_load_barrier_stub(LIR_Assembler* ce, - XLoadBarrierStubC1* stub) const; - - void generate_c1_load_barrier_runtime_stub(StubAssembler* sasm, - DecoratorSet decorators) const; -#endif // COMPILER1 - -#ifdef COMPILER2 - OptoReg::Name refine_register(const Node* node, OptoReg::Name opto_reg) const; - - void generate_c2_load_barrier_stub(MacroAssembler* masm, XLoadBarrierStubC2* stub) const; -#endif // COMPILER2 -}; - -#endif // CPU_PPC_GC_X_XBARRIERSETASSEMBLER_PPC_HPP diff --git a/src/hotspot/cpu/ppc/gc/x/xGlobals_ppc.cpp b/src/hotspot/cpu/ppc/gc/x/xGlobals_ppc.cpp deleted file mode 100644 index 3218a765fc7..00000000000 --- a/src/hotspot/cpu/ppc/gc/x/xGlobals_ppc.cpp +++ /dev/null @@ -1,203 +0,0 @@ -/* - * Copyright (c) 2021, 2023, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2021 SAP SE. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/shared/gcLogPrecious.hpp" -#include "gc/shared/gc_globals.hpp" -#include "gc/x/xGlobals.hpp" -#include "runtime/globals.hpp" -#include "runtime/os.hpp" -#include "utilities/globalDefinitions.hpp" -#include "utilities/powerOfTwo.hpp" -#include - -#ifdef LINUX -#include -#endif // LINUX - -// -// The overall memory layouts across different power platforms are similar and only differ with regards to -// the position of the highest addressable bit; the position of the metadata bits and the size of the actual -// addressable heap address space are adjusted accordingly. -// -// The following memory schema shows an exemplary layout in which bit '45' is the highest addressable bit. -// It is assumed that this virtual memory address space layout is predominant on the power platform. -// -// Standard Address Space & Pointer Layout -// --------------------------------------- -// -// +--------------------------------+ 0x00007FFFFFFFFFFF (127 TiB - 1) -// . . -// . . -// . . -// +--------------------------------+ 0x0000140000000000 (20 TiB) -// | Remapped View | -// +--------------------------------+ 0x0000100000000000 (16 TiB) -// . . -// +--------------------------------+ 0x00000c0000000000 (12 TiB) -// | Marked1 View | -// +--------------------------------+ 0x0000080000000000 (8 TiB) -// | Marked0 View | -// +--------------------------------+ 0x0000040000000000 (4 TiB) -// . . -// +--------------------------------+ 0x0000000000000000 -// -// 6 4 4 4 4 -// 3 6 5 2 1 0 -// +--------------------+----+-----------------------------------------------+ -// |00000000 00000000 00|1111|11 11111111 11111111 11111111 11111111 11111111| -// +--------------------+----+-----------------------------------------------+ -// | | | -// | | * 41-0 Object Offset (42-bits, 4TB address space) -// | | -// | * 45-42 Metadata Bits (4-bits) 0001 = Marked0 (Address view 4-8TB) -// | 0010 = Marked1 (Address view 8-12TB) -// | 0100 = Remapped (Address view 16-20TB) -// | 1000 = Finalizable (Address view N/A) -// | -// * 63-46 Fixed (18-bits, always zero) -// - -// Maximum value as per spec (Power ISA v2.07): 2 ^ 60 bytes, i.e. 1 EiB (exbibyte) -static const unsigned int MAXIMUM_MAX_ADDRESS_BIT = 60; - -// Most modern power processors provide an address space with not more than 45 bit addressable bit, -// that is an address space of 32 TiB in size. -static const unsigned int DEFAULT_MAX_ADDRESS_BIT = 45; - -// Minimum value returned, if probing fails: 64 GiB -static const unsigned int MINIMUM_MAX_ADDRESS_BIT = 36; - -// Determines the highest addressable bit of the virtual address space (depends on platform) -// by trying to interact with memory in that address range, -// i.e. by syncing existing mappings (msync) or by temporarily mapping the memory area (mmap). -// If one of those operations succeeds, it is proven that the targeted memory area is within the virtual address space. -// -// To reduce the number of required system calls to a bare minimum, the DEFAULT_MAX_ADDRESS_BIT is intentionally set -// lower than what the ABI would theoretically permit. -// Such an avoidance strategy, however, might impose unnecessary limits on processors that exceed this limit. -// If DEFAULT_MAX_ADDRESS_BIT is addressable, the next higher bit will be tested as well to ensure that -// the made assumption does not artificially restrict the memory availability. -static unsigned int probe_valid_max_address_bit(size_t init_bit, size_t min_bit) { - assert(init_bit >= min_bit, "Sanity"); - assert(init_bit <= MAXIMUM_MAX_ADDRESS_BIT, "Test bit is outside the assumed address space range"); - -#ifdef LINUX - unsigned int max_valid_address_bit = 0; - void* last_allocatable_address = nullptr; - - const size_t page_size = os::vm_page_size(); - - for (size_t i = init_bit; i >= min_bit; --i) { - void* base_addr = (void*) (((unsigned long) 1U) << i); - - /* ==== Try msync-ing already mapped memory page ==== */ - if (msync(base_addr, page_size, MS_ASYNC) == 0) { - // The page of the given address was synced by the linux kernel and must thus be both, mapped and valid. - max_valid_address_bit = i; - break; - } - if (errno != ENOMEM) { - // An unexpected error occurred, i.e. an error not indicating that the targeted memory page is unmapped, - // but pointing out another type of issue. - // Even though this should never happen, those issues may come up due to undefined behavior. -#ifdef ASSERT - fatal("Received '%s' while probing the address space for the highest valid bit", os::errno_name(errno)); -#else // ASSERT - log_warning_p(gc)("Received '%s' while probing the address space for the highest valid bit", os::errno_name(errno)); -#endif // ASSERT - continue; - } - - /* ==== Try mapping memory page on our own ==== */ - last_allocatable_address = mmap(base_addr, page_size, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0); - if (last_allocatable_address != MAP_FAILED) { - munmap(last_allocatable_address, page_size); - } - - if (last_allocatable_address == base_addr) { - // As the linux kernel mapped exactly the page we have requested, the address must be valid. - max_valid_address_bit = i; - break; - } - - log_info_p(gc, init)("Probe failed for bit '%zu'", i); - } - - if (max_valid_address_bit == 0) { - // Probing did not bring up any usable address bit. - // As an alternative, the VM evaluates the address returned by mmap as it is expected that the reserved page - // will be close to the probed address that was out-of-range. - // As per mmap(2), "the kernel [will take] [the address] as a hint about where to - // place the mapping; on Linux, the mapping will be created at a nearby page boundary". - // It should thus be a "close enough" approximation to the real virtual memory address space limit. - // - // This recovery strategy is only applied in production builds. - // In debug builds, an assertion in 'XPlatformAddressOffsetBits' will bail out the VM to indicate that - // the assumed address space is no longer up-to-date. - if (last_allocatable_address != MAP_FAILED) { - const unsigned int bitpos = BitsPerSize_t - count_leading_zeros((size_t) last_allocatable_address) - 1; - log_info_p(gc, init)("Did not find any valid addresses within the range, using address '%u' instead", bitpos); - return bitpos; - } - -#ifdef ASSERT - fatal("Available address space can not be determined"); -#else // ASSERT - log_warning_p(gc)("Cannot determine available address space. Falling back to default value."); - return DEFAULT_MAX_ADDRESS_BIT; -#endif // ASSERT - } else { - if (max_valid_address_bit == init_bit) { - // An usable address bit has been found immediately. - // To ensure that the entire virtual address space is exploited, the next highest bit will be tested as well. - log_info_p(gc, init)("Hit valid address '%u' on first try, retrying with next higher bit", max_valid_address_bit); - return MAX2(max_valid_address_bit, probe_valid_max_address_bit(init_bit + 1, init_bit + 1)); - } - } - - log_info_p(gc, init)("Found valid address '%u'", max_valid_address_bit); - return max_valid_address_bit; -#else // LINUX - return DEFAULT_MAX_ADDRESS_BIT; -#endif // LINUX -} - -size_t XPlatformAddressOffsetBits() { - const static unsigned int valid_max_address_offset_bits = - probe_valid_max_address_bit(DEFAULT_MAX_ADDRESS_BIT, MINIMUM_MAX_ADDRESS_BIT) + 1; - assert(valid_max_address_offset_bits >= MINIMUM_MAX_ADDRESS_BIT, - "Highest addressable bit is outside the assumed address space range"); - - const size_t max_address_offset_bits = valid_max_address_offset_bits - 3; - const size_t min_address_offset_bits = max_address_offset_bits - 2; - const size_t address_offset = round_up_power_of_2(MaxHeapSize * XVirtualToPhysicalRatio); - const size_t address_offset_bits = log2i_exact(address_offset); - - return clamp(address_offset_bits, min_address_offset_bits, max_address_offset_bits); -} - -size_t XPlatformAddressMetadataShift() { - return XPlatformAddressOffsetBits(); -} diff --git a/src/hotspot/cpu/ppc/gc/x/xGlobals_ppc.hpp b/src/hotspot/cpu/ppc/gc/x/xGlobals_ppc.hpp deleted file mode 100644 index be88b05b02a..00000000000 --- a/src/hotspot/cpu/ppc/gc/x/xGlobals_ppc.hpp +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (c) 2021, 2022, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2021 SAP SE. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef CPU_PPC_GC_X_XGLOBALS_PPC_HPP -#define CPU_PPC_GC_X_XGLOBALS_PPC_HPP - -#include "globalDefinitions_ppc.hpp" - -const size_t XPlatformHeapViews = 3; -const size_t XPlatformCacheLineSize = DEFAULT_CACHE_LINE_SIZE; - -size_t XPlatformAddressOffsetBits(); -size_t XPlatformAddressMetadataShift(); - -#endif // CPU_PPC_GC_X_XGLOBALS_PPC_HPP diff --git a/src/hotspot/cpu/ppc/gc/x/x_ppc.ad b/src/hotspot/cpu/ppc/gc/x/x_ppc.ad deleted file mode 100644 index b206b6593fb..00000000000 --- a/src/hotspot/cpu/ppc/gc/x/x_ppc.ad +++ /dev/null @@ -1,298 +0,0 @@ -// -// Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved. -// Copyright (c) 2021 SAP SE. All rights reserved. -// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -// -// This code is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License version 2 only, as -// published by the Free Software Foundation. -// -// This code 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 -// version 2 for more details (a copy is included in the LICENSE file that -// accompanied this code). -// -// You should have received a copy of the GNU General Public License version -// 2 along with this work; if not, write to the Free Software Foundation, -// Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -// -// Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -// or visit www.oracle.com if you need additional information or have any -// questions. -// - -source_hpp %{ - -#include "gc/shared/gc_globals.hpp" -#include "gc/x/c2/xBarrierSetC2.hpp" -#include "gc/x/xThreadLocalData.hpp" - -%} - -source %{ - -static void x_load_barrier(MacroAssembler* masm, const MachNode* node, Address ref_addr, Register ref, - Register tmp, uint8_t barrier_data) { - if (barrier_data == XLoadBarrierElided) { - return; - } - - XLoadBarrierStubC2* const stub = XLoadBarrierStubC2::create(node, ref_addr, ref, tmp, barrier_data); - __ ld(tmp, in_bytes(XThreadLocalData::address_bad_mask_offset()), R16_thread); - __ and_(tmp, tmp, ref); - __ bne_far(CCR0, *stub->entry(), MacroAssembler::bc_far_optimize_on_relocate); - __ bind(*stub->continuation()); -} - -static void x_load_barrier_slow_path(MacroAssembler* masm, const MachNode* node, Address ref_addr, Register ref, - Register tmp) { - XLoadBarrierStubC2* const stub = XLoadBarrierStubC2::create(node, ref_addr, ref, tmp, XLoadBarrierStrong); - __ b(*stub->entry()); - __ bind(*stub->continuation()); -} - -static void x_compare_and_swap(MacroAssembler* masm, const MachNode* node, - Register res, Register mem, Register oldval, Register newval, - Register tmp_xchg, Register tmp_mask, - bool weak, bool acquire) { - // z-specific load barrier requires strong CAS operations. - // Weak CAS operations are thus only emitted if the barrier is elided. - __ cmpxchgd(CCR0, tmp_xchg, oldval, newval, mem, - MacroAssembler::MemBarNone, MacroAssembler::cmpxchgx_hint_atomic_update(), res, nullptr, true, - weak && node->barrier_data() == XLoadBarrierElided); - - if (node->barrier_data() != XLoadBarrierElided) { - Label skip_barrier; - - __ ld(tmp_mask, in_bytes(XThreadLocalData::address_bad_mask_offset()), R16_thread); - __ and_(tmp_mask, tmp_mask, tmp_xchg); - __ beq(CCR0, skip_barrier); - - // CAS must have failed because pointer in memory is bad. - x_load_barrier_slow_path(masm, node, Address(mem), tmp_xchg, res /* used as tmp */); - - __ cmpxchgd(CCR0, tmp_xchg, oldval, newval, mem, - MacroAssembler::MemBarNone, MacroAssembler::cmpxchgx_hint_atomic_update(), res, nullptr, true, weak); - - __ bind(skip_barrier); - } - - if (acquire) { - if (support_IRIW_for_not_multiple_copy_atomic_cpu) { - // Uses the isync instruction as an acquire barrier. - // This exploits the compare and the branch in the z load barrier (load, compare and branch, isync). - __ isync(); - } else { - __ sync(); - } - } -} - -static void x_compare_and_exchange(MacroAssembler* masm, const MachNode* node, - Register res, Register mem, Register oldval, Register newval, Register tmp, - bool weak, bool acquire) { - // z-specific load barrier requires strong CAS operations. - // Weak CAS operations are thus only emitted if the barrier is elided. - __ cmpxchgd(CCR0, res, oldval, newval, mem, - MacroAssembler::MemBarNone, MacroAssembler::cmpxchgx_hint_atomic_update(), noreg, nullptr, true, - weak && node->barrier_data() == XLoadBarrierElided); - - if (node->barrier_data() != XLoadBarrierElided) { - Label skip_barrier; - __ ld(tmp, in_bytes(XThreadLocalData::address_bad_mask_offset()), R16_thread); - __ and_(tmp, tmp, res); - __ beq(CCR0, skip_barrier); - - x_load_barrier_slow_path(masm, node, Address(mem), res, tmp); - - __ cmpxchgd(CCR0, res, oldval, newval, mem, - MacroAssembler::MemBarNone, MacroAssembler::cmpxchgx_hint_atomic_update(), noreg, nullptr, true, weak); - - __ bind(skip_barrier); - } - - if (acquire) { - if (support_IRIW_for_not_multiple_copy_atomic_cpu) { - // Uses the isync instruction as an acquire barrier. - // This exploits the compare and the branch in the z load barrier (load, compare and branch, isync). - __ isync(); - } else { - __ sync(); - } - } -} - -%} - -instruct xLoadP(iRegPdst dst, memoryAlg4 mem, iRegPdst tmp, flagsRegCR0 cr0) -%{ - match(Set dst (LoadP mem)); - effect(TEMP_DEF dst, TEMP tmp, KILL cr0); - ins_cost(MEMORY_REF_COST); - - predicate((UseZGC && !ZGenerational && n->as_Load()->barrier_data() != 0) - && (n->as_Load()->is_unordered() || followed_by_acquire(n))); - - format %{ "LD $dst, $mem" %} - ins_encode %{ - assert($mem$$index == 0, "sanity"); - __ ld($dst$$Register, $mem$$disp, $mem$$base$$Register); - x_load_barrier(masm, this, Address($mem$$base$$Register, $mem$$disp), $dst$$Register, $tmp$$Register, barrier_data()); - %} - ins_pipe(pipe_class_default); -%} - -// Load Pointer Volatile -instruct xLoadP_acq(iRegPdst dst, memoryAlg4 mem, iRegPdst tmp, flagsRegCR0 cr0) -%{ - match(Set dst (LoadP mem)); - effect(TEMP_DEF dst, TEMP tmp, KILL cr0); - ins_cost(3 * MEMORY_REF_COST); - - // Predicate on instruction order is implicitly present due to the predicate of the cheaper zLoadP operation - predicate(UseZGC && !ZGenerational && n->as_Load()->barrier_data() != 0); - - format %{ "LD acq $dst, $mem" %} - ins_encode %{ - __ ld($dst$$Register, $mem$$disp, $mem$$base$$Register); - x_load_barrier(masm, this, Address($mem$$base$$Register, $mem$$disp), $dst$$Register, $tmp$$Register, barrier_data()); - - // Uses the isync instruction as an acquire barrier. - // This exploits the compare and the branch in the z load barrier (load, compare and branch, isync). - __ isync(); - %} - ins_pipe(pipe_class_default); -%} - -instruct xCompareAndSwapP(iRegIdst res, iRegPdst mem, iRegPsrc oldval, iRegPsrc newval, - iRegPdst tmp_xchg, iRegPdst tmp_mask, flagsRegCR0 cr0) %{ - match(Set res (CompareAndSwapP mem (Binary oldval newval))); - effect(TEMP_DEF res, TEMP tmp_xchg, TEMP tmp_mask, KILL cr0); - - predicate((UseZGC && !ZGenerational && n->as_LoadStore()->barrier_data() == XLoadBarrierStrong) - && (((CompareAndSwapNode*)n)->order() != MemNode::acquire && ((CompareAndSwapNode*) n)->order() != MemNode::seqcst)); - - format %{ "CMPXCHG $res, $mem, $oldval, $newval; as bool; ptr" %} - ins_encode %{ - x_compare_and_swap(masm, this, - $res$$Register, $mem$$Register, $oldval$$Register, $newval$$Register, - $tmp_xchg$$Register, $tmp_mask$$Register, - false /* weak */, false /* acquire */); - %} - ins_pipe(pipe_class_default); -%} - -instruct xCompareAndSwapP_acq(iRegIdst res, iRegPdst mem, iRegPsrc oldval, iRegPsrc newval, - iRegPdst tmp_xchg, iRegPdst tmp_mask, flagsRegCR0 cr0) %{ - match(Set res (CompareAndSwapP mem (Binary oldval newval))); - effect(TEMP_DEF res, TEMP tmp_xchg, TEMP tmp_mask, KILL cr0); - - predicate((UseZGC && !ZGenerational && n->as_LoadStore()->barrier_data() == XLoadBarrierStrong) - && (((CompareAndSwapNode*)n)->order() == MemNode::acquire || ((CompareAndSwapNode*) n)->order() == MemNode::seqcst)); - - format %{ "CMPXCHG acq $res, $mem, $oldval, $newval; as bool; ptr" %} - ins_encode %{ - x_compare_and_swap(masm, this, - $res$$Register, $mem$$Register, $oldval$$Register, $newval$$Register, - $tmp_xchg$$Register, $tmp_mask$$Register, - false /* weak */, true /* acquire */); - %} - ins_pipe(pipe_class_default); -%} - -instruct xCompareAndSwapPWeak(iRegIdst res, iRegPdst mem, iRegPsrc oldval, iRegPsrc newval, - iRegPdst tmp_xchg, iRegPdst tmp_mask, flagsRegCR0 cr0) %{ - match(Set res (WeakCompareAndSwapP mem (Binary oldval newval))); - effect(TEMP_DEF res, TEMP tmp_xchg, TEMP tmp_mask, KILL cr0); - - predicate((UseZGC && !ZGenerational && n->as_LoadStore()->barrier_data() == XLoadBarrierStrong) - && ((CompareAndSwapNode*)n)->order() != MemNode::acquire && ((CompareAndSwapNode*) n)->order() != MemNode::seqcst); - - format %{ "weak CMPXCHG $res, $mem, $oldval, $newval; as bool; ptr" %} - ins_encode %{ - x_compare_and_swap(masm, this, - $res$$Register, $mem$$Register, $oldval$$Register, $newval$$Register, - $tmp_xchg$$Register, $tmp_mask$$Register, - true /* weak */, false /* acquire */); - %} - ins_pipe(pipe_class_default); -%} - -instruct xCompareAndSwapPWeak_acq(iRegIdst res, iRegPdst mem, iRegPsrc oldval, iRegPsrc newval, - iRegPdst tmp_xchg, iRegPdst tmp_mask, flagsRegCR0 cr0) %{ - match(Set res (WeakCompareAndSwapP mem (Binary oldval newval))); - effect(TEMP_DEF res, TEMP tmp_xchg, TEMP tmp_mask, KILL cr0); - - predicate((UseZGC && !ZGenerational && n->as_LoadStore()->barrier_data() == XLoadBarrierStrong) - && (((CompareAndSwapNode*)n)->order() == MemNode::acquire || ((CompareAndSwapNode*) n)->order() == MemNode::seqcst)); - - format %{ "weak CMPXCHG acq $res, $mem, $oldval, $newval; as bool; ptr" %} - ins_encode %{ - x_compare_and_swap(masm, this, - $res$$Register, $mem$$Register, $oldval$$Register, $newval$$Register, - $tmp_xchg$$Register, $tmp_mask$$Register, - true /* weak */, true /* acquire */); - %} - ins_pipe(pipe_class_default); -%} - -instruct xCompareAndExchangeP(iRegPdst res, iRegPdst mem, iRegPsrc oldval, iRegPsrc newval, - iRegPdst tmp, flagsRegCR0 cr0) %{ - match(Set res (CompareAndExchangeP mem (Binary oldval newval))); - effect(TEMP_DEF res, TEMP tmp, KILL cr0); - - predicate((UseZGC && !ZGenerational && n->as_LoadStore()->barrier_data() == XLoadBarrierStrong) - && ( - ((CompareAndSwapNode*)n)->order() != MemNode::acquire - && ((CompareAndSwapNode*)n)->order() != MemNode::seqcst - )); - - format %{ "CMPXCHG $res, $mem, $oldval, $newval; as ptr; ptr" %} - ins_encode %{ - x_compare_and_exchange(masm, this, - $res$$Register, $mem$$Register, $oldval$$Register, $newval$$Register, $tmp$$Register, - false /* weak */, false /* acquire */); - %} - ins_pipe(pipe_class_default); -%} - -instruct xCompareAndExchangeP_acq(iRegPdst res, iRegPdst mem, iRegPsrc oldval, iRegPsrc newval, - iRegPdst tmp, flagsRegCR0 cr0) %{ - match(Set res (CompareAndExchangeP mem (Binary oldval newval))); - effect(TEMP_DEF res, TEMP tmp, KILL cr0); - - predicate((UseZGC && !ZGenerational && n->as_LoadStore()->barrier_data() == XLoadBarrierStrong) - && ( - ((CompareAndSwapNode*)n)->order() == MemNode::acquire - || ((CompareAndSwapNode*)n)->order() == MemNode::seqcst - )); - - format %{ "CMPXCHG acq $res, $mem, $oldval, $newval; as ptr; ptr" %} - ins_encode %{ - x_compare_and_exchange(masm, this, - $res$$Register, $mem$$Register, $oldval$$Register, $newval$$Register, $tmp$$Register, - false /* weak */, true /* acquire */); - %} - ins_pipe(pipe_class_default); -%} - -instruct xGetAndSetP(iRegPdst res, iRegPdst mem, iRegPsrc newval, iRegPdst tmp, flagsRegCR0 cr0) %{ - match(Set res (GetAndSetP mem newval)); - effect(TEMP_DEF res, TEMP tmp, KILL cr0); - - predicate(UseZGC && !ZGenerational && n->as_LoadStore()->barrier_data() != 0); - - format %{ "GetAndSetP $res, $mem, $newval" %} - ins_encode %{ - __ getandsetd($res$$Register, $newval$$Register, $mem$$Register, MacroAssembler::cmpxchgx_hint_atomic_update()); - x_load_barrier(masm, this, Address(noreg, (intptr_t) 0), $res$$Register, $tmp$$Register, barrier_data()); - - if (support_IRIW_for_not_multiple_copy_atomic_cpu) { - __ isync(); - } else { - __ sync(); - } - %} - ins_pipe(pipe_class_default); -%} diff --git a/src/hotspot/cpu/ppc/gc/z/zBarrierSetAssembler_ppc.cpp b/src/hotspot/cpu/ppc/gc/z/zBarrierSetAssembler_ppc.cpp index 8a65022126e..b9ea67dabe3 100644 --- a/src/hotspot/cpu/ppc/gc/z/zBarrierSetAssembler_ppc.cpp +++ b/src/hotspot/cpu/ppc/gc/z/zBarrierSetAssembler_ppc.cpp @@ -610,14 +610,14 @@ void ZBarrierSetAssembler::try_resolve_jobject_in_native(MacroAssembler* masm, R // Resolve global handle __ ld(dst, 0, dst); - __ ld(tmp, load_bad_mask.disp(), load_bad_mask.base()); + __ ld(tmp, load_bad_mask); __ b(check_color); __ bind(weak_tagged); // Resolve weak handle __ ld(dst, 0, dst); - __ ld(tmp, mark_bad_mask.disp(), mark_bad_mask.base()); + __ ld(tmp, mark_bad_mask); __ bind(check_color); __ and_(tmp, tmp, dst); diff --git a/src/hotspot/cpu/ppc/gc/z/z_ppc.ad b/src/hotspot/cpu/ppc/gc/z/z_ppc.ad index bb696a4738f..97b49bc1b02 100644 --- a/src/hotspot/cpu/ppc/gc/z/z_ppc.ad +++ b/src/hotspot/cpu/ppc/gc/z/z_ppc.ad @@ -143,7 +143,7 @@ instruct zLoadP(iRegPdst dst, memoryAlg4 mem, flagsRegCR0 cr0) effect(TEMP_DEF dst, KILL cr0); ins_cost(MEMORY_REF_COST); - predicate((UseZGC && ZGenerational && n->as_Load()->barrier_data() != 0) + predicate((UseZGC && n->as_Load()->barrier_data() != 0) && (n->as_Load()->is_unordered() || followed_by_acquire(n))); format %{ "LD $dst, $mem" %} @@ -163,7 +163,7 @@ instruct zLoadP_acq(iRegPdst dst, memoryAlg4 mem, flagsRegCR0 cr0) ins_cost(3 * MEMORY_REF_COST); // Predicate on instruction order is implicitly present due to the predicate of the cheaper zLoadP operation - predicate(UseZGC && ZGenerational && n->as_Load()->barrier_data() != 0); + predicate(UseZGC && n->as_Load()->barrier_data() != 0); format %{ "LD acq $dst, $mem" %} ins_encode %{ @@ -181,7 +181,7 @@ instruct zLoadP_acq(iRegPdst dst, memoryAlg4 mem, flagsRegCR0 cr0) // Store Pointer instruct zStoreP(memoryAlg4 mem, iRegPsrc src, iRegPdst tmp, flagsRegCR0 cr0) %{ - predicate(UseZGC && ZGenerational && n->as_Store()->barrier_data() != 0); + predicate(UseZGC && n->as_Store()->barrier_data() != 0); match(Set mem (StoreP mem src)); effect(TEMP tmp, KILL cr0); ins_cost(2 * MEMORY_REF_COST); @@ -195,7 +195,7 @@ instruct zStoreP(memoryAlg4 mem, iRegPsrc src, iRegPdst tmp, flagsRegCR0 cr0) instruct zStorePNull(memoryAlg4 mem, immP_0 zero, iRegPdst tmp, flagsRegCR0 cr0) %{ - predicate(UseZGC && ZGenerational && n->as_Store()->barrier_data() != 0); + predicate(UseZGC && n->as_Store()->barrier_data() != 0); match(Set mem (StoreP mem zero)); effect(TEMP tmp, KILL cr0); ins_cost(MEMORY_REF_COST); @@ -213,7 +213,7 @@ instruct zCompareAndSwapP(iRegIdst res, iRegPdst mem, iRegPsrc oldval, iRegPsrc match(Set res (WeakCompareAndSwapP mem (Binary oldval newval))); effect(TEMP_DEF res, TEMP tmp1, TEMP tmp2, KILL cr0); - predicate((UseZGC && ZGenerational && n->as_LoadStore()->barrier_data() != 0) + predicate((UseZGC && n->as_LoadStore()->barrier_data() != 0) && (((CompareAndSwapNode*)n)->order() != MemNode::acquire && ((CompareAndSwapNode*) n)->order() != MemNode::seqcst)); format %{ "CMPXCHG $res, $mem, $oldval, $newval; as bool; ptr" %} @@ -232,7 +232,7 @@ instruct zCompareAndSwapP_acq(iRegIdst res, iRegPdst mem, iRegPsrc oldval, iRegP match(Set res (WeakCompareAndSwapP mem (Binary oldval newval))); effect(TEMP_DEF res, TEMP tmp1, TEMP tmp2, KILL cr0); - predicate((UseZGC && ZGenerational && n->as_LoadStore()->barrier_data() != 0) + predicate((UseZGC && n->as_LoadStore()->barrier_data() != 0) && (((CompareAndSwapNode*)n)->order() == MemNode::acquire || ((CompareAndSwapNode*) n)->order() == MemNode::seqcst)); format %{ "CMPXCHG acq $res, $mem, $oldval, $newval; as bool; ptr" %} @@ -250,7 +250,7 @@ instruct zCompareAndExchangeP(iRegPdst res, iRegPdst mem, iRegPsrc oldval, iRegP match(Set res (CompareAndExchangeP mem (Binary oldval newval))); effect(TEMP_DEF res, TEMP tmp, KILL cr0); - predicate((UseZGC && ZGenerational && n->as_LoadStore()->barrier_data() != 0) + predicate((UseZGC && n->as_LoadStore()->barrier_data() != 0) && ( ((CompareAndSwapNode*)n)->order() != MemNode::acquire && ((CompareAndSwapNode*)n)->order() != MemNode::seqcst @@ -270,7 +270,7 @@ instruct zCompareAndExchangeP_acq(iRegPdst res, iRegPdst mem, iRegPsrc oldval, i match(Set res (CompareAndExchangeP mem (Binary oldval newval))); effect(TEMP_DEF res, TEMP tmp, KILL cr0); - predicate((UseZGC && ZGenerational && n->as_LoadStore()->barrier_data() != 0) + predicate((UseZGC && n->as_LoadStore()->barrier_data() != 0) && ( ((CompareAndSwapNode*)n)->order() == MemNode::acquire || ((CompareAndSwapNode*)n)->order() == MemNode::seqcst @@ -289,7 +289,7 @@ instruct zGetAndSetP(iRegPdst res, iRegPdst mem, iRegPsrc newval, iRegPdst tmp, match(Set res (GetAndSetP mem newval)); effect(TEMP_DEF res, TEMP tmp, KILL cr0); - predicate(UseZGC && ZGenerational && n->as_LoadStore()->barrier_data() != 0); + predicate(UseZGC && n->as_LoadStore()->barrier_data() != 0); format %{ "GetAndSetP $res, $mem, $newval" %} ins_encode %{ diff --git a/src/hotspot/cpu/ppc/macroAssembler_ppc.cpp b/src/hotspot/cpu/ppc/macroAssembler_ppc.cpp index f036caa0675..c7adbfb52f0 100644 --- a/src/hotspot/cpu/ppc/macroAssembler_ppc.cpp +++ b/src/hotspot/cpu/ppc/macroAssembler_ppc.cpp @@ -2736,7 +2736,7 @@ void MacroAssembler::compiler_fast_unlock_object(ConditionRegister flag, Registe // StoreLoad achieves this. membar(StoreLoad); - // Check if the entry lists are empty. + // Check if the entry lists are empty (EntryList first - by convention). ld(temp, in_bytes(ObjectMonitor::EntryList_offset()), current_header); ld(displaced_header, in_bytes(ObjectMonitor::cxq_offset()), current_header); orr(temp, temp, displaced_header); // Will be 0 if both are 0. @@ -3083,7 +3083,7 @@ void MacroAssembler::compiler_fast_unlock_lightweight_object(ConditionRegister f // StoreLoad achieves this. membar(StoreLoad); - // Check if the entry lists are empty. + // Check if the entry lists are empty (EntryList first - by convention). ld(t, in_bytes(ObjectMonitor::EntryList_offset()), monitor); ld(t2, in_bytes(ObjectMonitor::cxq_offset()), monitor); orr(t, t, t2); @@ -4619,23 +4619,6 @@ void MacroAssembler::zap_from_to(Register low, int before, Register high, int af #endif // !PRODUCT -void SkipIfEqualZero::skip_to_label_if_equal_zero(MacroAssembler* masm, Register temp, - const bool* flag_addr, Label& label) { - int simm16_offset = masm->load_const_optimized(temp, (address)flag_addr, R0, true); - assert(sizeof(bool) == 1, "PowerPC ABI"); - masm->lbz(temp, simm16_offset, temp); - masm->cmpwi(CCR0, temp, 0); - masm->beq(CCR0, label); -} - -SkipIfEqualZero::SkipIfEqualZero(MacroAssembler* masm, Register temp, const bool* flag_addr) : _masm(masm), _label() { - skip_to_label_if_equal_zero(masm, temp, flag_addr, _label); -} - -SkipIfEqualZero::~SkipIfEqualZero() { - _masm->bind(_label); -} - void MacroAssembler::cache_wb(Address line) { assert(line.index() == noreg, "index should be noreg"); assert(line.disp() == 0, "displacement should be 0"); diff --git a/src/hotspot/cpu/ppc/macroAssembler_ppc.hpp b/src/hotspot/cpu/ppc/macroAssembler_ppc.hpp index 224e7bff995..f0e7c644535 100644 --- a/src/hotspot/cpu/ppc/macroAssembler_ppc.hpp +++ b/src/hotspot/cpu/ppc/macroAssembler_ppc.hpp @@ -960,23 +960,4 @@ class MacroAssembler: public Assembler { void zap_from_to(Register low, int before, Register high, int after, Register val, Register addr) PRODUCT_RETURN; }; -// class SkipIfEqualZero: -// -// Instantiating this class will result in assembly code being output that will -// jump around any code emitted between the creation of the instance and it's -// automatic destruction at the end of a scope block, depending on the value of -// the flag passed to the constructor, which will be checked at run-time. -class SkipIfEqualZero : public StackObj { - private: - MacroAssembler* _masm; - Label _label; - - public: - // 'Temp' is a temp register that this object can use (and trash). - explicit SkipIfEqualZero(MacroAssembler*, Register temp, const bool* flag_addr); - static void skip_to_label_if_equal_zero(MacroAssembler*, Register temp, - const bool* flag_addr, Label& label); - ~SkipIfEqualZero(); -}; - #endif // CPU_PPC_MACROASSEMBLER_PPC_HPP diff --git a/src/hotspot/cpu/ppc/ppc.ad b/src/hotspot/cpu/ppc/ppc.ad index f74dde0f97e..6d3daa025e8 100644 --- a/src/hotspot/cpu/ppc/ppc.ad +++ b/src/hotspot/cpu/ppc/ppc.ad @@ -12268,7 +12268,7 @@ instruct string_equalsL(rarg1RegP str1, rarg2RegP str2, rarg3RegI cnt, iRegIdst %} instruct array_equalsB(rarg1RegP ary1, rarg2RegP ary2, iRegIdst result, - iRegIdst tmp1, iRegIdst tmp2, regCTR ctr, flagsRegCR0 cr0, flagsRegCR0 cr1) %{ + iRegIdst tmp1, iRegIdst tmp2, regCTR ctr, flagsRegCR0 cr0, flagsRegCR1 cr1) %{ predicate(((AryEqNode*)n)->encoding() == StrIntrinsicNode::LL); match(Set result (AryEq ary1 ary2)); effect(TEMP_DEF result, USE_KILL ary1, USE_KILL ary2, TEMP tmp1, TEMP tmp2, KILL ctr, KILL cr0, KILL cr1); @@ -12283,7 +12283,7 @@ instruct array_equalsB(rarg1RegP ary1, rarg2RegP ary2, iRegIdst result, %} instruct array_equalsC(rarg1RegP ary1, rarg2RegP ary2, iRegIdst result, - iRegIdst tmp1, iRegIdst tmp2, regCTR ctr, flagsRegCR0 cr0, flagsRegCR0 cr1) %{ + iRegIdst tmp1, iRegIdst tmp2, regCTR ctr, flagsRegCR0 cr0, flagsRegCR1 cr1) %{ predicate(((AryEqNode*)n)->encoding() == StrIntrinsicNode::UU); match(Set result (AryEq ary1 ary2)); effect(TEMP_DEF result, USE_KILL ary1, USE_KILL ary2, TEMP tmp1, TEMP tmp2, KILL ctr, KILL cr0, KILL cr1); diff --git a/src/hotspot/cpu/ppc/stubGenerator_ppc.cpp b/src/hotspot/cpu/ppc/stubGenerator_ppc.cpp index 206c161287f..b3ace8898ad 100644 --- a/src/hotspot/cpu/ppc/stubGenerator_ppc.cpp +++ b/src/hotspot/cpu/ppc/stubGenerator_ppc.cpp @@ -49,7 +49,6 @@ #include "utilities/align.hpp" #include "utilities/powerOfTwo.hpp" #if INCLUDE_ZGC -#include "gc/x/xBarrierSetAssembler.hpp" #include "gc/z/zBarrierSetAssembler.hpp" #endif @@ -1976,7 +1975,7 @@ class StubGenerator: public StubCodeGenerator { generate_conjoint_int_copy_core(aligned); } else { #if INCLUDE_ZGC - if (UseZGC && ZGenerational) { + if (UseZGC) { ZBarrierSetAssembler *zbs = (ZBarrierSetAssembler*)bs; zbs->generate_conjoint_oop_copy(_masm, dest_uninitialized); } else @@ -2019,7 +2018,7 @@ class StubGenerator: public StubCodeGenerator { generate_disjoint_int_copy_core(aligned); } else { #if INCLUDE_ZGC - if (UseZGC && ZGenerational) { + if (UseZGC) { ZBarrierSetAssembler *zbs = (ZBarrierSetAssembler*)bs; zbs->generate_disjoint_oop_copy(_masm, dest_uninitialized); } else @@ -2137,7 +2136,7 @@ class StubGenerator: public StubCodeGenerator { } else { __ bind(store_null); #if INCLUDE_ZGC - if (UseZGC && ZGenerational) { + if (UseZGC) { __ store_heap_oop(R10_oop, R8_offset, R4_to, R11_scratch1, R12_tmp, noreg, MacroAssembler::PRESERVATION_FRAME_LR_GP_REGS, dest_uninitialized ? IS_DEST_UNINITIALIZED : 0); @@ -2153,7 +2152,7 @@ class StubGenerator: public StubCodeGenerator { // ======== loop entry is here ======== __ bind(load_element); #if INCLUDE_ZGC - if (UseZGC && ZGenerational) { + if (UseZGC) { __ load_heap_oop(R10_oop, R8_offset, R3_from, R11_scratch1, R12_tmp, MacroAssembler::PRESERVATION_FRAME_LR_GP_REGS, diff --git a/src/hotspot/cpu/riscv/c1_CodeStubs_riscv.cpp b/src/hotspot/cpu/riscv/c1_CodeStubs_riscv.cpp index c5764bcebf7..0be1252f57f 100644 --- a/src/hotspot/cpu/riscv/c1_CodeStubs_riscv.cpp +++ b/src/hotspot/cpu/riscv/c1_CodeStubs_riscv.cpp @@ -43,9 +43,7 @@ void C1SafepointPollStub::emit_code(LIR_Assembler* ce) { __ bind(_entry); InternalAddress safepoint_pc(__ pc() - __ offset() + safepoint_offset()); __ relocate(safepoint_pc.rspec(), [&] { - int32_t offset; - __ la(t0, safepoint_pc.target(), offset); - __ addi(t0, t0, offset); + __ la(t0, safepoint_pc.target()); }); __ sd(t0, Address(xthread, JavaThread::saved_exception_pc_offset())); diff --git a/src/hotspot/cpu/riscv/c1_LIRAssembler_riscv.cpp b/src/hotspot/cpu/riscv/c1_LIRAssembler_riscv.cpp index 828f70e4dec..21bf089118b 100644 --- a/src/hotspot/cpu/riscv/c1_LIRAssembler_riscv.cpp +++ b/src/hotspot/cpu/riscv/c1_LIRAssembler_riscv.cpp @@ -838,10 +838,7 @@ void LIR_Assembler::mem2reg(LIR_Opr src, LIR_Opr dest, BasicType type, LIR_Patch __ decode_heap_oop(dest->as_register()); } - if (!(UseZGC && !ZGenerational)) { - // Load barrier has not yet been applied, so ZGC can't verify the oop here - __ verify_oop(dest->as_register()); - } + __ verify_oop(dest->as_register()); } } @@ -1406,9 +1403,7 @@ void LIR_Assembler::throw_op(LIR_Opr exceptionPC, LIR_Opr exceptionOop, CodeEmit int pc_for_athrow_offset = __ offset(); InternalAddress pc_for_athrow(__ pc()); __ relocate(pc_for_athrow.rspec(), [&] { - int32_t offset; - __ la(exceptionPC->as_register(), pc_for_athrow.target(), offset); - __ addi(exceptionPC->as_register(), exceptionPC->as_register(), offset); + __ la(exceptionPC->as_register(), pc_for_athrow.target()); }); add_call_info(pc_for_athrow_offset, info); // for exception handler diff --git a/src/hotspot/cpu/riscv/c2_CodeStubs_riscv.cpp b/src/hotspot/cpu/riscv/c2_CodeStubs_riscv.cpp index db18525b89c..781f95ab73e 100644 --- a/src/hotspot/cpu/riscv/c2_CodeStubs_riscv.cpp +++ b/src/hotspot/cpu/riscv/c2_CodeStubs_riscv.cpp @@ -45,9 +45,7 @@ void C2SafepointPollStub::emit(C2_MacroAssembler& masm) { __ bind(entry()); InternalAddress safepoint_pc(__ pc() - __ offset() + _safepoint_offset); __ relocate(safepoint_pc.rspec(), [&] { - int32_t offset; - __ la(t0, safepoint_pc.target(), offset); - __ addi(t0, t0, offset); + __ la(t0, safepoint_pc.target()); }); __ sd(t0, Address(xthread, JavaThread::saved_exception_pc_offset())); __ far_jump(callback_addr); diff --git a/src/hotspot/cpu/riscv/c2_MacroAssembler_riscv.cpp b/src/hotspot/cpu/riscv/c2_MacroAssembler_riscv.cpp index 75f87e35adf..0ffdcbca723 100644 --- a/src/hotspot/cpu/riscv/c2_MacroAssembler_riscv.cpp +++ b/src/hotspot/cpu/riscv/c2_MacroAssembler_riscv.cpp @@ -234,7 +234,7 @@ void C2_MacroAssembler::fast_unlock(Register objectReg, Register boxReg, // StoreLoad achieves this. membar(StoreLoad); - // Check if the entry lists are empty. + // Check if the entry lists are empty (EntryList first - by convention). ld(t0, Address(tmp, ObjectMonitor::EntryList_offset())); ld(tmp1Reg, Address(tmp, ObjectMonitor::cxq_offset())); orr(t0, t0, tmp1Reg); @@ -566,7 +566,7 @@ void C2_MacroAssembler::fast_unlock_lightweight(Register obj, Register box, // StoreLoad achieves this. membar(StoreLoad); - // Check if the entry lists are empty. + // Check if the entry lists are empty (EntryList first - by convention). ld(t0, Address(tmp1_monitor, ObjectMonitor::EntryList_offset())); ld(tmp3_t, Address(tmp1_monitor, ObjectMonitor::cxq_offset())); orr(t0, t0, tmp3_t); diff --git a/src/hotspot/cpu/riscv/gc/x/xBarrierSetAssembler_riscv.cpp b/src/hotspot/cpu/riscv/gc/x/xBarrierSetAssembler_riscv.cpp deleted file mode 100644 index eb8d4c44b88..00000000000 --- a/src/hotspot/cpu/riscv/gc/x/xBarrierSetAssembler_riscv.cpp +++ /dev/null @@ -1,454 +0,0 @@ -/* - * Copyright (c) 2019, 2023, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2020, 2023, Huawei Technologies Co., Ltd. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -#include "precompiled.hpp" -#include "asm/macroAssembler.inline.hpp" -#include "code/codeBlob.hpp" -#include "code/vmreg.inline.hpp" -#include "gc/x/xBarrier.inline.hpp" -#include "gc/x/xBarrierSet.hpp" -#include "gc/x/xBarrierSetAssembler.hpp" -#include "gc/x/xBarrierSetRuntime.hpp" -#include "gc/x/xThreadLocalData.hpp" -#include "memory/resourceArea.hpp" -#include "runtime/sharedRuntime.hpp" -#include "utilities/macros.hpp" -#ifdef COMPILER1 -#include "c1/c1_LIRAssembler.hpp" -#include "c1/c1_MacroAssembler.hpp" -#include "gc/x/c1/xBarrierSetC1.hpp" -#endif // COMPILER1 -#ifdef COMPILER2 -#include "gc/x/c2/xBarrierSetC2.hpp" -#endif // COMPILER2 - -#ifdef PRODUCT -#define BLOCK_COMMENT(str) /* nothing */ -#else -#define BLOCK_COMMENT(str) __ block_comment(str) -#endif - -#undef __ -#define __ masm-> - -void XBarrierSetAssembler::load_at(MacroAssembler* masm, - DecoratorSet decorators, - BasicType type, - Register dst, - Address src, - Register tmp1, - Register tmp2) { - if (!XBarrierSet::barrier_needed(decorators, type)) { - // Barrier not needed - BarrierSetAssembler::load_at(masm, decorators, type, dst, src, tmp1, tmp2); - return; - } - - assert_different_registers(t1, src.base()); - assert_different_registers(t0, t1, dst); - - Label done; - - // Load bad mask into temp register. - __ la(t0, src); - __ ld(t1, address_bad_mask_from_thread(xthread)); - __ ld(dst, Address(t0)); - - // Test reference against bad mask. If mask bad, then we need to fix it up. - __ andr(t1, dst, t1); - __ beqz(t1, done); - - __ enter(); - - __ push_call_clobbered_registers_except(RegSet::of(dst)); - - if (c_rarg0 != dst) { - __ mv(c_rarg0, dst); - } - - __ mv(c_rarg1, t0); - - __ call_VM_leaf(XBarrierSetRuntime::load_barrier_on_oop_field_preloaded_addr(decorators), 2); - - // Make sure dst has the return value. - if (dst != x10) { - __ mv(dst, x10); - } - - __ pop_call_clobbered_registers_except(RegSet::of(dst)); - __ leave(); - - __ bind(done); -} - -#ifdef ASSERT - -void XBarrierSetAssembler::store_at(MacroAssembler* masm, - DecoratorSet decorators, - BasicType type, - Address dst, - Register val, - Register tmp1, - Register tmp2, - Register tmp3) { - // Verify value - if (is_reference_type(type)) { - // Note that src could be noreg, which means we - // are storing null and can skip verification. - if (val != noreg) { - Label done; - - // tmp1, tmp2 and tmp3 are often set to noreg. - RegSet savedRegs = RegSet::of(t0); - __ push_reg(savedRegs, sp); - - __ ld(t0, address_bad_mask_from_thread(xthread)); - __ andr(t0, val, t0); - __ beqz(t0, done); - __ stop("Verify oop store failed"); - __ should_not_reach_here(); - __ bind(done); - __ pop_reg(savedRegs, sp); - } - } - - // Store value - BarrierSetAssembler::store_at(masm, decorators, type, dst, val, tmp1, tmp2, noreg); -} - -#endif // ASSERT - -void XBarrierSetAssembler::arraycopy_prologue(MacroAssembler* masm, - DecoratorSet decorators, - bool is_oop, - Register src, - Register dst, - Register count, - RegSet saved_regs) { - if (!is_oop) { - // Barrier not needed - return; - } - - BLOCK_COMMENT("XBarrierSetAssembler::arraycopy_prologue {"); - - assert_different_registers(src, count, t0); - - __ push_reg(saved_regs, sp); - - if (count == c_rarg0 && src == c_rarg1) { - // exactly backwards!! - __ xorr(c_rarg0, c_rarg0, c_rarg1); - __ xorr(c_rarg1, c_rarg0, c_rarg1); - __ xorr(c_rarg0, c_rarg0, c_rarg1); - } else { - __ mv(c_rarg0, src); - __ mv(c_rarg1, count); - } - - __ call_VM_leaf(XBarrierSetRuntime::load_barrier_on_oop_array_addr(), 2); - - __ pop_reg(saved_regs, sp); - - BLOCK_COMMENT("} XBarrierSetAssembler::arraycopy_prologue"); -} - -void XBarrierSetAssembler::try_resolve_jobject_in_native(MacroAssembler* masm, - Register jni_env, - Register robj, - Register tmp, - Label& slowpath) { - BLOCK_COMMENT("XBarrierSetAssembler::try_resolve_jobject_in_native {"); - - assert_different_registers(jni_env, robj, tmp); - - // Resolve jobject - BarrierSetAssembler::try_resolve_jobject_in_native(masm, jni_env, robj, tmp, slowpath); - - // Compute the offset of address bad mask from the field of jni_environment - long int bad_mask_relative_offset = (long int) (in_bytes(XThreadLocalData::address_bad_mask_offset()) - - in_bytes(JavaThread::jni_environment_offset())); - - // Load the address bad mask - __ ld(tmp, Address(jni_env, bad_mask_relative_offset)); - - // Check address bad mask - __ andr(tmp, robj, tmp); - __ bnez(tmp, slowpath); - - BLOCK_COMMENT("} XBarrierSetAssembler::try_resolve_jobject_in_native"); -} - -#ifdef COMPILER2 - -OptoReg::Name XBarrierSetAssembler::refine_register(const Node* node, OptoReg::Name opto_reg) { - if (!OptoReg::is_reg(opto_reg)) { - return OptoReg::Bad; - } - - const VMReg vm_reg = OptoReg::as_VMReg(opto_reg); - if (vm_reg->is_FloatRegister()) { - return opto_reg & ~1; - } - - return opto_reg; -} - -#undef __ -#define __ _masm-> - -class XSaveLiveRegisters { -private: - MacroAssembler* const _masm; - RegSet _gp_regs; - FloatRegSet _fp_regs; - VectorRegSet _vp_regs; - -public: - void initialize(XLoadBarrierStubC2* stub) { - // Record registers that needs to be saved/restored - RegMaskIterator rmi(stub->live()); - while (rmi.has_next()) { - const OptoReg::Name opto_reg = rmi.next(); - if (OptoReg::is_reg(opto_reg)) { - const VMReg vm_reg = OptoReg::as_VMReg(opto_reg); - if (vm_reg->is_Register()) { - _gp_regs += RegSet::of(vm_reg->as_Register()); - } else if (vm_reg->is_FloatRegister()) { - _fp_regs += FloatRegSet::of(vm_reg->as_FloatRegister()); - } else if (vm_reg->is_VectorRegister()) { - const VMReg vm_reg_base = OptoReg::as_VMReg(opto_reg & ~(VectorRegister::max_slots_per_register - 1)); - _vp_regs += VectorRegSet::of(vm_reg_base->as_VectorRegister()); - } else { - fatal("Unknown register type"); - } - } - } - - // Remove C-ABI SOE registers, tmp regs and _ref register that will be updated - _gp_regs -= RegSet::range(x18, x27) + RegSet::of(x2) + RegSet::of(x8, x9) + RegSet::of(x5, stub->ref()); - } - - XSaveLiveRegisters(MacroAssembler* masm, XLoadBarrierStubC2* stub) : - _masm(masm), - _gp_regs(), - _fp_regs(), - _vp_regs() { - // Figure out what registers to save/restore - initialize(stub); - - // Save registers - __ push_reg(_gp_regs, sp); - __ push_fp(_fp_regs, sp); - __ push_v(_vp_regs, sp); - } - - ~XSaveLiveRegisters() { - // Restore registers - __ pop_v(_vp_regs, sp); - __ pop_fp(_fp_regs, sp); - __ pop_reg(_gp_regs, sp); - } -}; - -class XSetupArguments { -private: - MacroAssembler* const _masm; - const Register _ref; - const Address _ref_addr; - -public: - XSetupArguments(MacroAssembler* masm, XLoadBarrierStubC2* stub) : - _masm(masm), - _ref(stub->ref()), - _ref_addr(stub->ref_addr()) { - - // Setup arguments - if (_ref_addr.base() == noreg) { - // No self healing - if (_ref != c_rarg0) { - __ mv(c_rarg0, _ref); - } - __ mv(c_rarg1, zr); - } else { - // Self healing - if (_ref == c_rarg0) { - // _ref is already at correct place - __ la(c_rarg1, _ref_addr); - } else if (_ref != c_rarg1) { - // _ref is in wrong place, but not in c_rarg1, so fix it first - __ la(c_rarg1, _ref_addr); - __ mv(c_rarg0, _ref); - } else if (_ref_addr.base() != c_rarg0) { - assert(_ref == c_rarg1, "Mov ref first, vacating c_rarg0"); - __ mv(c_rarg0, _ref); - __ la(c_rarg1, _ref_addr); - } else { - assert(_ref == c_rarg1, "Need to vacate c_rarg1 and _ref_addr is using c_rarg0"); - if (_ref_addr.base() == c_rarg0) { - __ mv(t1, c_rarg1); - __ la(c_rarg1, _ref_addr); - __ mv(c_rarg0, t1); - } else { - ShouldNotReachHere(); - } - } - } - } - - ~XSetupArguments() { - // Transfer result - if (_ref != x10) { - __ mv(_ref, x10); - } - } -}; - -#undef __ -#define __ masm-> - -void XBarrierSetAssembler::generate_c2_load_barrier_stub(MacroAssembler* masm, XLoadBarrierStubC2* stub) const { - BLOCK_COMMENT("XLoadBarrierStubC2"); - - // Stub entry - __ bind(*stub->entry()); - - { - XSaveLiveRegisters save_live_registers(masm, stub); - XSetupArguments setup_arguments(masm, stub); - - __ mv(t1, stub->slow_path()); - __ jalr(t1); - } - - // Stub exit - __ j(*stub->continuation()); -} - -#endif // COMPILER2 - -#ifdef COMPILER1 -#undef __ -#define __ ce->masm()-> - -void XBarrierSetAssembler::generate_c1_load_barrier_test(LIR_Assembler* ce, - LIR_Opr ref) const { - assert_different_registers(xthread, ref->as_register(), t1); - __ ld(t1, address_bad_mask_from_thread(xthread)); - __ andr(t1, t1, ref->as_register()); -} - -void XBarrierSetAssembler::generate_c1_load_barrier_stub(LIR_Assembler* ce, - XLoadBarrierStubC1* stub) const { - // Stub entry - __ bind(*stub->entry()); - - Register ref = stub->ref()->as_register(); - Register ref_addr = noreg; - Register tmp = noreg; - - if (stub->tmp()->is_valid()) { - // Load address into tmp register - ce->leal(stub->ref_addr(), stub->tmp()); - ref_addr = tmp = stub->tmp()->as_pointer_register(); - } else { - // Address already in register - ref_addr = stub->ref_addr()->as_address_ptr()->base()->as_pointer_register(); - } - - assert_different_registers(ref, ref_addr, noreg); - - // Save x10 unless it is the result or tmp register - // Set up SP to accommodate parameters and maybe x10. - if (ref != x10 && tmp != x10) { - __ sub(sp, sp, 32); - __ sd(x10, Address(sp, 16)); - } else { - __ sub(sp, sp, 16); - } - - // Setup arguments and call runtime stub - ce->store_parameter(ref_addr, 1); - ce->store_parameter(ref, 0); - - __ far_call(stub->runtime_stub()); - - // Verify result - __ verify_oop(x10); - - - // Move result into place - if (ref != x10) { - __ mv(ref, x10); - } - - // Restore x10 unless it is the result or tmp register - if (ref != x10 && tmp != x10) { - __ ld(x10, Address(sp, 16)); - __ add(sp, sp, 32); - } else { - __ add(sp, sp, 16); - } - - // Stub exit - __ j(*stub->continuation()); -} - -#undef __ -#define __ sasm-> - -void XBarrierSetAssembler::generate_c1_load_barrier_runtime_stub(StubAssembler* sasm, - DecoratorSet decorators) const { - __ prologue("zgc_load_barrier stub", false); - - __ push_call_clobbered_registers_except(RegSet::of(x10)); - - // Setup arguments - __ load_parameter(0, c_rarg0); - __ load_parameter(1, c_rarg1); - - __ call_VM_leaf(XBarrierSetRuntime::load_barrier_on_oop_field_preloaded_addr(decorators), 2); - - __ pop_call_clobbered_registers_except(RegSet::of(x10)); - - __ epilogue(); -} - -#endif // COMPILER1 - -#undef __ -#define __ masm-> - -void XBarrierSetAssembler::check_oop(MacroAssembler* masm, Register obj, Register tmp1, Register tmp2, Label& error) { - // Check if mask is good. - // verifies that XAddressBadMask & obj == 0 - __ ld(tmp2, Address(xthread, XThreadLocalData::address_bad_mask_offset())); - __ andr(tmp1, obj, tmp2); - __ bnez(tmp1, error); - - BarrierSetAssembler::check_oop(masm, obj, tmp1, tmp2, error); -} - -#undef __ diff --git a/src/hotspot/cpu/riscv/gc/x/xBarrierSetAssembler_riscv.hpp b/src/hotspot/cpu/riscv/gc/x/xBarrierSetAssembler_riscv.hpp deleted file mode 100644 index cbf5077999b..00000000000 --- a/src/hotspot/cpu/riscv/gc/x/xBarrierSetAssembler_riscv.hpp +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2020, 2021, Huawei Technologies Co., Ltd. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -#ifndef CPU_RISCV_GC_X_XBARRIERSETASSEMBLER_RISCV_HPP -#define CPU_RISCV_GC_X_XBARRIERSETASSEMBLER_RISCV_HPP - -#include "code/vmreg.hpp" -#include "oops/accessDecorators.hpp" -#ifdef COMPILER2 -#include "opto/optoreg.hpp" -#endif // COMPILER2 - -#ifdef COMPILER1 -class LIR_Assembler; -class LIR_Opr; -class StubAssembler; -#endif // COMPILER1 - -#ifdef COMPILER2 -class Node; -#endif // COMPILER2 - -#ifdef COMPILER1 -class XLoadBarrierStubC1; -#endif // COMPILER1 - -#ifdef COMPILER2 -class XLoadBarrierStubC2; -#endif // COMPILER2 - -class XBarrierSetAssembler : public XBarrierSetAssemblerBase { -public: - virtual void load_at(MacroAssembler* masm, - DecoratorSet decorators, - BasicType type, - Register dst, - Address src, - Register tmp1, - Register tmp2); - -#ifdef ASSERT - virtual void store_at(MacroAssembler* masm, - DecoratorSet decorators, - BasicType type, - Address dst, - Register val, - Register tmp1, - Register tmp2, - Register tmp3); -#endif // ASSERT - - virtual void arraycopy_prologue(MacroAssembler* masm, - DecoratorSet decorators, - bool is_oop, - Register src, - Register dst, - Register count, - RegSet saved_regs); - - virtual void try_resolve_jobject_in_native(MacroAssembler* masm, - Register jni_env, - Register robj, - Register tmp, - Label& slowpath); - - virtual NMethodPatchingType nmethod_patching_type() { return NMethodPatchingType::conc_data_patch; } - -#ifdef COMPILER1 - void generate_c1_load_barrier_test(LIR_Assembler* ce, - LIR_Opr ref) const; - - void generate_c1_load_barrier_stub(LIR_Assembler* ce, - XLoadBarrierStubC1* stub) const; - - void generate_c1_load_barrier_runtime_stub(StubAssembler* sasm, - DecoratorSet decorators) const; -#endif // COMPILER1 - -#ifdef COMPILER2 - OptoReg::Name refine_register(const Node* node, - OptoReg::Name opto_reg); - - void generate_c2_load_barrier_stub(MacroAssembler* masm, - XLoadBarrierStubC2* stub) const; -#endif // COMPILER2 - - void check_oop(MacroAssembler* masm, Register obj, Register tmp1, Register tmp2, Label& error); -}; - -#endif // CPU_RISCV_GC_X_XBARRIERSETASSEMBLER_RISCV_HPP diff --git a/src/hotspot/cpu/riscv/gc/x/xGlobals_riscv.cpp b/src/hotspot/cpu/riscv/gc/x/xGlobals_riscv.cpp deleted file mode 100644 index 602dab56747..00000000000 --- a/src/hotspot/cpu/riscv/gc/x/xGlobals_riscv.cpp +++ /dev/null @@ -1,212 +0,0 @@ -/* - * Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2020, 2021, Huawei Technologies Co., Ltd. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -#include "precompiled.hpp" -#include "gc/shared/gcLogPrecious.hpp" -#include "gc/shared/gc_globals.hpp" -#include "gc/x/xGlobals.hpp" -#include "runtime/globals.hpp" -#include "runtime/os.hpp" -#include "utilities/globalDefinitions.hpp" -#include "utilities/powerOfTwo.hpp" - -#ifdef LINUX -#include -#endif // LINUX - -// -// The heap can have three different layouts, depending on the max heap size. -// -// Address Space & Pointer Layout 1 -// -------------------------------- -// -// +--------------------------------+ 0x00007FFFFFFFFFFF (127TB) -// . . -// . . -// . . -// +--------------------------------+ 0x0000014000000000 (20TB) -// | Remapped View | -// +--------------------------------+ 0x0000010000000000 (16TB) -// . . -// +--------------------------------+ 0x00000c0000000000 (12TB) -// | Marked1 View | -// +--------------------------------+ 0x0000080000000000 (8TB) -// | Marked0 View | -// +--------------------------------+ 0x0000040000000000 (4TB) -// . . -// +--------------------------------+ 0x0000000000000000 -// -// 6 4 4 4 4 -// 3 6 5 2 1 0 -// +--------------------+----+-----------------------------------------------+ -// |00000000 00000000 00|1111|11 11111111 11111111 11111111 11111111 11111111| -// +--------------------+----+-----------------------------------------------+ -// | | | -// | | * 41-0 Object Offset (42-bits, 4TB address space) -// | | -// | * 45-42 Metadata Bits (4-bits) 0001 = Marked0 (Address view 4-8TB) -// | 0010 = Marked1 (Address view 8-12TB) -// | 0100 = Remapped (Address view 16-20TB) -// | 1000 = Finalizable (Address view N/A) -// | -// * 63-46 Fixed (18-bits, always zero) -// -// -// Address Space & Pointer Layout 2 -// -------------------------------- -// -// +--------------------------------+ 0x00007FFFFFFFFFFF (127TB) -// . . -// . . -// . . -// +--------------------------------+ 0x0000280000000000 (40TB) -// | Remapped View | -// +--------------------------------+ 0x0000200000000000 (32TB) -// . . -// +--------------------------------+ 0x0000180000000000 (24TB) -// | Marked1 View | -// +--------------------------------+ 0x0000100000000000 (16TB) -// | Marked0 View | -// +--------------------------------+ 0x0000080000000000 (8TB) -// . . -// +--------------------------------+ 0x0000000000000000 -// -// 6 4 4 4 4 -// 3 7 6 3 2 0 -// +------------------+-----+------------------------------------------------+ -// |00000000 00000000 0|1111|111 11111111 11111111 11111111 11111111 11111111| -// +-------------------+----+------------------------------------------------+ -// | | | -// | | * 42-0 Object Offset (43-bits, 8TB address space) -// | | -// | * 46-43 Metadata Bits (4-bits) 0001 = Marked0 (Address view 8-16TB) -// | 0010 = Marked1 (Address view 16-24TB) -// | 0100 = Remapped (Address view 32-40TB) -// | 1000 = Finalizable (Address view N/A) -// | -// * 63-47 Fixed (17-bits, always zero) -// -// -// Address Space & Pointer Layout 3 -// -------------------------------- -// -// +--------------------------------+ 0x00007FFFFFFFFFFF (127TB) -// . . -// . . -// . . -// +--------------------------------+ 0x0000500000000000 (80TB) -// | Remapped View | -// +--------------------------------+ 0x0000400000000000 (64TB) -// . . -// +--------------------------------+ 0x0000300000000000 (48TB) -// | Marked1 View | -// +--------------------------------+ 0x0000200000000000 (32TB) -// | Marked0 View | -// +--------------------------------+ 0x0000100000000000 (16TB) -// . . -// +--------------------------------+ 0x0000000000000000 -// -// 6 4 4 4 4 -// 3 8 7 4 3 0 -// +------------------+----+-------------------------------------------------+ -// |00000000 00000000 |1111|1111 11111111 11111111 11111111 11111111 11111111| -// +------------------+----+-------------------------------------------------+ -// | | | -// | | * 43-0 Object Offset (44-bits, 16TB address space) -// | | -// | * 47-44 Metadata Bits (4-bits) 0001 = Marked0 (Address view 16-32TB) -// | 0010 = Marked1 (Address view 32-48TB) -// | 0100 = Remapped (Address view 64-80TB) -// | 1000 = Finalizable (Address view N/A) -// | -// * 63-48 Fixed (16-bits, always zero) -// - -// Default value if probing is not implemented for a certain platform: 128TB -static const size_t DEFAULT_MAX_ADDRESS_BIT = 47; -// Minimum value returned, if probing fails: 64GB -static const size_t MINIMUM_MAX_ADDRESS_BIT = 36; - -static size_t probe_valid_max_address_bit() { -#ifdef LINUX - size_t max_address_bit = 0; - const size_t page_size = os::vm_page_size(); - for (size_t i = DEFAULT_MAX_ADDRESS_BIT; i > MINIMUM_MAX_ADDRESS_BIT; --i) { - const uintptr_t base_addr = ((uintptr_t) 1U) << i; - if (msync((void*)base_addr, page_size, MS_ASYNC) == 0) { - // msync succeeded, the address is valid, and maybe even already mapped. - max_address_bit = i; - break; - } - if (errno != ENOMEM) { - // Some error occurred. This should never happen, but msync - // has some undefined behavior, hence ignore this bit. -#ifdef ASSERT - fatal("Received '%s' while probing the address space for the highest valid bit", os::errno_name(errno)); -#else // ASSERT - log_warning_p(gc)("Received '%s' while probing the address space for the highest valid bit", os::errno_name(errno)); -#endif // ASSERT - continue; - } - // Since msync failed with ENOMEM, the page might not be mapped. - // Try to map it, to see if the address is valid. - void* const result_addr = mmap((void*) base_addr, page_size, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0); - if (result_addr != MAP_FAILED) { - munmap(result_addr, page_size); - } - if ((uintptr_t) result_addr == base_addr) { - // address is valid - max_address_bit = i; - break; - } - } - if (max_address_bit == 0) { - // probing failed, allocate a very high page and take that bit as the maximum - const uintptr_t high_addr = ((uintptr_t) 1U) << DEFAULT_MAX_ADDRESS_BIT; - void* const result_addr = mmap((void*) high_addr, page_size, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0); - if (result_addr != MAP_FAILED) { - max_address_bit = BitsPerSize_t - count_leading_zeros((size_t) result_addr) - 1; - munmap(result_addr, page_size); - } - } - log_info_p(gc, init)("Probing address space for the highest valid bit: " SIZE_FORMAT, max_address_bit); - return MAX2(max_address_bit, MINIMUM_MAX_ADDRESS_BIT); -#else // LINUX - return DEFAULT_MAX_ADDRESS_BIT; -#endif // LINUX -} - -size_t XPlatformAddressOffsetBits() { - const static size_t valid_max_address_offset_bits = probe_valid_max_address_bit() + 1; - const size_t max_address_offset_bits = valid_max_address_offset_bits - 3; - const size_t min_address_offset_bits = max_address_offset_bits - 2; - const size_t address_offset = round_up_power_of_2(MaxHeapSize * XVirtualToPhysicalRatio); - const size_t address_offset_bits = log2i_exact(address_offset); - return clamp(address_offset_bits, min_address_offset_bits, max_address_offset_bits); -} - -size_t XPlatformAddressMetadataShift() { - return XPlatformAddressOffsetBits(); -} diff --git a/src/hotspot/cpu/riscv/gc/x/xGlobals_riscv.hpp b/src/hotspot/cpu/riscv/gc/x/xGlobals_riscv.hpp deleted file mode 100644 index 836dc7aac0d..00000000000 --- a/src/hotspot/cpu/riscv/gc/x/xGlobals_riscv.hpp +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (c) 2015, 2022, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2020, 2021, Huawei Technologies Co., Ltd. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -#ifndef CPU_RISCV_GC_X_XGLOBALS_RISCV_HPP -#define CPU_RISCV_GC_X_XGLOBALS_RISCV_HPP - -const size_t XPlatformHeapViews = 3; -const size_t XPlatformCacheLineSize = 64; - -size_t XPlatformAddressOffsetBits(); -size_t XPlatformAddressMetadataShift(); - -#endif // CPU_RISCV_GC_X_XGLOBALS_RISCV_HPP diff --git a/src/hotspot/cpu/riscv/gc/x/x_riscv.ad b/src/hotspot/cpu/riscv/gc/x/x_riscv.ad deleted file mode 100644 index b93b7066425..00000000000 --- a/src/hotspot/cpu/riscv/gc/x/x_riscv.ad +++ /dev/null @@ -1,229 +0,0 @@ -// -// Copyright (c) 2019, 2023, Oracle and/or its affiliates. All rights reserved. -// Copyright (c) 2020, 2021, Huawei Technologies Co., Ltd. All rights reserved. -// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -// -// This code is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License version 2 only, as -// published by the Free Software Foundation. -// -// This code 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 -// version 2 for more details (a copy is included in the LICENSE file that -// accompanied this code). -// -// You should have received a copy of the GNU General Public License version -// 2 along with this work; if not, write to the Free Software Foundation, -// Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -// -// Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -// or visit www.oracle.com if you need additional information or have any -// questions. -// - -source_hpp %{ - -#include "gc/shared/gc_globals.hpp" -#include "gc/x/c2/xBarrierSetC2.hpp" -#include "gc/x/xThreadLocalData.hpp" - -%} - -source %{ - -static void x_load_barrier(MacroAssembler* masm, const MachNode* node, Address ref_addr, Register ref, Register tmp, int barrier_data) { - if (barrier_data == XLoadBarrierElided) { - return; - } - XLoadBarrierStubC2* const stub = XLoadBarrierStubC2::create(node, ref_addr, ref, tmp, barrier_data); - __ ld(tmp, Address(xthread, XThreadLocalData::address_bad_mask_offset())); - __ andr(tmp, tmp, ref); - __ bnez(tmp, *stub->entry(), true /* far */); - __ bind(*stub->continuation()); -} - -static void x_load_barrier_slow_path(MacroAssembler* masm, const MachNode* node, Address ref_addr, Register ref, Register tmp) { - XLoadBarrierStubC2* const stub = XLoadBarrierStubC2::create(node, ref_addr, ref, tmp, XLoadBarrierStrong); - __ j(*stub->entry()); - __ bind(*stub->continuation()); -} - -%} - -// Load Pointer -instruct xLoadP(iRegPNoSp dst, memory mem, iRegPNoSp tmp, rFlagsReg cr) -%{ - match(Set dst (LoadP mem)); - predicate(UseZGC && !ZGenerational && (n->as_Load()->barrier_data() != 0)); - effect(TEMP dst, TEMP tmp, KILL cr); - - ins_cost(4 * DEFAULT_COST); - - format %{ "ld $dst, $mem, #@zLoadP" %} - - ins_encode %{ - const Address ref_addr (as_Register($mem$$base), $mem$$disp); - __ ld($dst$$Register, ref_addr); - x_load_barrier(masm, this, ref_addr, $dst$$Register, $tmp$$Register /* tmp */, barrier_data()); - %} - - ins_pipe(iload_reg_mem); -%} - -instruct xCompareAndSwapP(iRegINoSp res, indirect mem, iRegP oldval, iRegP newval, iRegPNoSp tmp, rFlagsReg cr) %{ - match(Set res (CompareAndSwapP mem (Binary oldval newval))); - match(Set res (WeakCompareAndSwapP mem (Binary oldval newval))); - predicate(UseZGC && !ZGenerational && !needs_acquiring_load_reserved(n) && n->as_LoadStore()->barrier_data() == XLoadBarrierStrong); - effect(TEMP_DEF res, TEMP tmp, KILL cr); - - ins_cost(2 * VOLATILE_REF_COST); - - format %{ "cmpxchg $mem, $oldval, $newval, #@zCompareAndSwapP\n\t" - "mv $res, $res == $oldval" %} - - ins_encode %{ - Label failed; - guarantee($mem$$index == -1 && $mem$$disp == 0, "impossible encoding"); - __ cmpxchg($mem$$Register, $oldval$$Register, $newval$$Register, Assembler::int64, - Assembler::relaxed /* acquire */, Assembler::rl /* release */, $tmp$$Register); - __ sub(t0, $tmp$$Register, $oldval$$Register); - __ seqz($res$$Register, t0); - if (barrier_data() != XLoadBarrierElided) { - Label good; - __ ld(t0, Address(xthread, XThreadLocalData::address_bad_mask_offset())); - __ andr(t0, t0, $tmp$$Register); - __ beqz(t0, good); - x_load_barrier_slow_path(masm, this, Address($mem$$Register), $tmp$$Register /* ref */, $res$$Register /* tmp */); - __ cmpxchg($mem$$Register, $oldval$$Register, $newval$$Register, Assembler::int64, - Assembler::relaxed /* acquire */, Assembler::rl /* release */, $res$$Register, - true /* result_as_bool */); - __ bind(good); - } - %} - - ins_pipe(pipe_slow); -%} - -instruct xCompareAndSwapPAcq(iRegINoSp res, indirect mem, iRegP oldval, iRegP newval, iRegPNoSp tmp, rFlagsReg cr) %{ - match(Set res (CompareAndSwapP mem (Binary oldval newval))); - match(Set res (WeakCompareAndSwapP mem (Binary oldval newval))); - predicate(UseZGC && !ZGenerational && needs_acquiring_load_reserved(n) && (n->as_LoadStore()->barrier_data() == XLoadBarrierStrong)); - effect(TEMP_DEF res, TEMP tmp, KILL cr); - - ins_cost(2 * VOLATILE_REF_COST); - - format %{ "cmpxchg $mem, $oldval, $newval, #@zCompareAndSwapPAcq\n\t" - "mv $res, $res == $oldval" %} - - ins_encode %{ - Label failed; - guarantee($mem$$index == -1 && $mem$$disp == 0, "impossible encoding"); - __ cmpxchg($mem$$Register, $oldval$$Register, $newval$$Register, Assembler::int64, - Assembler::aq /* acquire */, Assembler::rl /* release */, $tmp$$Register); - __ sub(t0, $tmp$$Register, $oldval$$Register); - __ seqz($res$$Register, t0); - if (barrier_data() != XLoadBarrierElided) { - Label good; - __ ld(t0, Address(xthread, XThreadLocalData::address_bad_mask_offset())); - __ andr(t0, t0, $tmp$$Register); - __ beqz(t0, good); - x_load_barrier_slow_path(masm, this, Address($mem$$Register), $tmp$$Register /* ref */, $res$$Register /* tmp */); - __ cmpxchg($mem$$Register, $oldval$$Register, $newval$$Register, Assembler::int64, - Assembler::aq /* acquire */, Assembler::rl /* release */, $res$$Register, - true /* result_as_bool */); - __ bind(good); - } - %} - - ins_pipe(pipe_slow); -%} - -instruct xCompareAndExchangeP(iRegPNoSp res, indirect mem, iRegP oldval, iRegP newval, iRegPNoSp tmp, rFlagsReg cr) %{ - match(Set res (CompareAndExchangeP mem (Binary oldval newval))); - predicate(UseZGC && !ZGenerational && !needs_acquiring_load_reserved(n) && n->as_LoadStore()->barrier_data() == XLoadBarrierStrong); - effect(TEMP_DEF res, TEMP tmp, KILL cr); - - ins_cost(2 * VOLATILE_REF_COST); - - format %{ "cmpxchg $res = $mem, $oldval, $newval, #@zCompareAndExchangeP" %} - - ins_encode %{ - guarantee($mem$$index == -1 && $mem$$disp == 0, "impossible encoding"); - __ cmpxchg($mem$$Register, $oldval$$Register, $newval$$Register, Assembler::int64, - Assembler::relaxed /* acquire */, Assembler::rl /* release */, $res$$Register); - if (barrier_data() != XLoadBarrierElided) { - Label good; - __ ld(t0, Address(xthread, XThreadLocalData::address_bad_mask_offset())); - __ andr(t0, t0, $res$$Register); - __ beqz(t0, good); - x_load_barrier_slow_path(masm, this, Address($mem$$Register), $res$$Register /* ref */, $tmp$$Register /* tmp */); - __ cmpxchg($mem$$Register, $oldval$$Register, $newval$$Register, Assembler::int64, - Assembler::relaxed /* acquire */, Assembler::rl /* release */, $res$$Register); - __ bind(good); - } - %} - - ins_pipe(pipe_slow); -%} - -instruct xCompareAndExchangePAcq(iRegPNoSp res, indirect mem, iRegP oldval, iRegP newval, iRegPNoSp tmp, rFlagsReg cr) %{ - match(Set res (CompareAndExchangeP mem (Binary oldval newval))); - predicate(UseZGC && !ZGenerational && needs_acquiring_load_reserved(n) && n->as_LoadStore()->barrier_data() == XLoadBarrierStrong); - effect(TEMP_DEF res, TEMP tmp, KILL cr); - - ins_cost(2 * VOLATILE_REF_COST); - - format %{ "cmpxchg $res = $mem, $oldval, $newval, #@zCompareAndExchangePAcq" %} - - ins_encode %{ - guarantee($mem$$index == -1 && $mem$$disp == 0, "impossible encoding"); - __ cmpxchg($mem$$Register, $oldval$$Register, $newval$$Register, Assembler::int64, - Assembler::aq /* acquire */, Assembler::rl /* release */, $res$$Register); - if (barrier_data() != XLoadBarrierElided) { - Label good; - __ ld(t0, Address(xthread, XThreadLocalData::address_bad_mask_offset())); - __ andr(t0, t0, $res$$Register); - __ beqz(t0, good); - x_load_barrier_slow_path(masm, this, Address($mem$$Register), $res$$Register /* ref */, $tmp$$Register /* tmp */); - __ cmpxchg($mem$$Register, $oldval$$Register, $newval$$Register, Assembler::int64, - Assembler::aq /* acquire */, Assembler::rl /* release */, $res$$Register); - __ bind(good); - } - %} - - ins_pipe(pipe_slow); -%} - -instruct xGetAndSetP(indirect mem, iRegP newv, iRegPNoSp prev, iRegPNoSp tmp, rFlagsReg cr) %{ - match(Set prev (GetAndSetP mem newv)); - predicate(UseZGC && !ZGenerational && !needs_acquiring_load_reserved(n) && n->as_LoadStore()->barrier_data() != 0); - effect(TEMP_DEF prev, TEMP tmp, KILL cr); - - ins_cost(2 * VOLATILE_REF_COST); - - format %{ "atomic_xchg $prev, $newv, [$mem], #@zGetAndSetP" %} - - ins_encode %{ - __ atomic_xchg($prev$$Register, $newv$$Register, as_Register($mem$$base)); - x_load_barrier(masm, this, Address(noreg, 0), $prev$$Register, $tmp$$Register /* tmp */, barrier_data()); - %} - - ins_pipe(pipe_serial); -%} - -instruct xGetAndSetPAcq(indirect mem, iRegP newv, iRegPNoSp prev, iRegPNoSp tmp, rFlagsReg cr) %{ - match(Set prev (GetAndSetP mem newv)); - predicate(UseZGC && !ZGenerational && needs_acquiring_load_reserved(n) && (n->as_LoadStore()->barrier_data() != 0)); - effect(TEMP_DEF prev, TEMP tmp, KILL cr); - - ins_cost(VOLATILE_REF_COST); - - format %{ "atomic_xchg_acq $prev, $newv, [$mem], #@zGetAndSetPAcq" %} - - ins_encode %{ - __ atomic_xchgal($prev$$Register, $newv$$Register, as_Register($mem$$base)); - x_load_barrier(masm, this, Address(noreg, 0), $prev$$Register, $tmp$$Register /* tmp */, barrier_data()); - %} - ins_pipe(pipe_serial); -%} diff --git a/src/hotspot/cpu/riscv/gc/z/zBarrierSetAssembler_riscv.cpp b/src/hotspot/cpu/riscv/gc/z/zBarrierSetAssembler_riscv.cpp index 4c307c28237..cd83eafcaeb 100644 --- a/src/hotspot/cpu/riscv/gc/z/zBarrierSetAssembler_riscv.cpp +++ b/src/hotspot/cpu/riscv/gc/z/zBarrierSetAssembler_riscv.cpp @@ -758,15 +758,14 @@ void ZBarrierSetAssembler::generate_c2_store_barrier_stub(MacroAssembler* masm, __ la(c_rarg0, stub->ref_addr()); if (stub->is_native()) { - __ la(t1, RuntimeAddress(ZBarrierSetRuntime::store_barrier_on_native_oop_field_without_healing_addr())); + __ rt_call(ZBarrierSetRuntime::store_barrier_on_native_oop_field_without_healing_addr()); } else if (stub->is_atomic()) { - __ la(t1, RuntimeAddress(ZBarrierSetRuntime::store_barrier_on_oop_field_with_healing_addr())); + __ rt_call(ZBarrierSetRuntime::store_barrier_on_oop_field_with_healing_addr()); } else if (stub->is_nokeepalive()) { - __ la(t1, RuntimeAddress(ZBarrierSetRuntime::no_keepalive_store_barrier_on_oop_field_without_healing_addr())); + __ rt_call(ZBarrierSetRuntime::no_keepalive_store_barrier_on_oop_field_without_healing_addr()); } else { - __ la(t1, RuntimeAddress(ZBarrierSetRuntime::store_barrier_on_oop_field_without_healing_addr())); + __ rt_call(ZBarrierSetRuntime::store_barrier_on_oop_field_without_healing_addr()); } - __ jalr(t1); } // Stub exit diff --git a/src/hotspot/cpu/riscv/gc/z/z_riscv.ad b/src/hotspot/cpu/riscv/gc/z/z_riscv.ad index 24669f45eb4..8e33d514f46 100644 --- a/src/hotspot/cpu/riscv/gc/z/z_riscv.ad +++ b/src/hotspot/cpu/riscv/gc/z/z_riscv.ad @@ -94,7 +94,7 @@ static void z_store_barrier(MacroAssembler* masm, const MachNode* node, Address instruct zLoadP(iRegPNoSp dst, memory mem, iRegPNoSp tmp, rFlagsReg cr) %{ match(Set dst (LoadP mem)); - predicate(UseZGC && ZGenerational && n->as_Load()->barrier_data() != 0); + predicate(UseZGC && n->as_Load()->barrier_data() != 0); effect(TEMP dst, TEMP tmp, KILL cr); ins_cost(4 * DEFAULT_COST); @@ -113,7 +113,7 @@ instruct zLoadP(iRegPNoSp dst, memory mem, iRegPNoSp tmp, rFlagsReg cr) // Store Pointer instruct zStoreP(memory mem, iRegP src, iRegPNoSp tmp1, iRegPNoSp tmp2, rFlagsReg cr) %{ - predicate(UseZGC && ZGenerational && n->as_Store()->barrier_data() != 0); + predicate(UseZGC && n->as_Store()->barrier_data() != 0); match(Set mem (StoreP mem src)); effect(TEMP tmp1, TEMP tmp2, KILL cr); @@ -131,7 +131,7 @@ instruct zCompareAndSwapP(iRegINoSp res, indirect mem, iRegP oldval, iRegP newva iRegPNoSp oldval_tmp, iRegPNoSp newval_tmp, iRegPNoSp tmp1, rFlagsReg cr) %{ match(Set res (CompareAndSwapP mem (Binary oldval newval))); match(Set res (WeakCompareAndSwapP mem (Binary oldval newval))); - predicate(UseZGC && ZGenerational && !needs_acquiring_load_reserved(n) && n->as_LoadStore()->barrier_data() != 0); + predicate(UseZGC && !needs_acquiring_load_reserved(n) && n->as_LoadStore()->barrier_data() != 0); effect(TEMP oldval_tmp, TEMP newval_tmp, TEMP tmp1, TEMP_DEF res, KILL cr); ins_cost(2 * VOLATILE_REF_COST); @@ -154,7 +154,7 @@ instruct zCompareAndSwapPAcq(iRegINoSp res, indirect mem, iRegP oldval, iRegP ne iRegPNoSp oldval_tmp, iRegPNoSp newval_tmp, iRegPNoSp tmp1, rFlagsReg cr) %{ match(Set res (CompareAndSwapP mem (Binary oldval newval))); match(Set res (WeakCompareAndSwapP mem (Binary oldval newval))); - predicate(UseZGC && ZGenerational && needs_acquiring_load_reserved(n) && n->as_LoadStore()->barrier_data() != 0); + predicate(UseZGC && needs_acquiring_load_reserved(n) && n->as_LoadStore()->barrier_data() != 0); effect(TEMP oldval_tmp, TEMP newval_tmp, TEMP tmp1, TEMP_DEF res, KILL cr); ins_cost(2 * VOLATILE_REF_COST); @@ -176,7 +176,7 @@ instruct zCompareAndSwapPAcq(iRegINoSp res, indirect mem, iRegP oldval, iRegP ne instruct zCompareAndExchangeP(iRegPNoSp res, indirect mem, iRegP oldval, iRegP newval, iRegPNoSp oldval_tmp, iRegPNoSp newval_tmp, iRegPNoSp tmp1, rFlagsReg cr) %{ match(Set res (CompareAndExchangeP mem (Binary oldval newval))); - predicate(UseZGC && ZGenerational && !needs_acquiring_load_reserved(n) && n->as_LoadStore()->barrier_data() != 0); + predicate(UseZGC && !needs_acquiring_load_reserved(n) && n->as_LoadStore()->barrier_data() != 0); effect(TEMP oldval_tmp, TEMP newval_tmp, TEMP tmp1, TEMP_DEF res, KILL cr); ins_cost(2 * VOLATILE_REF_COST); @@ -198,7 +198,7 @@ instruct zCompareAndExchangeP(iRegPNoSp res, indirect mem, iRegP oldval, iRegP n instruct zCompareAndExchangePAcq(iRegPNoSp res, indirect mem, iRegP oldval, iRegP newval, iRegPNoSp oldval_tmp, iRegPNoSp newval_tmp, iRegPNoSp tmp1, rFlagsReg cr) %{ match(Set res (CompareAndExchangeP mem (Binary oldval newval))); - predicate(UseZGC && ZGenerational && needs_acquiring_load_reserved(n) && n->as_LoadStore()->barrier_data() != 0); + predicate(UseZGC && needs_acquiring_load_reserved(n) && n->as_LoadStore()->barrier_data() != 0); effect(TEMP oldval_tmp, TEMP newval_tmp, TEMP tmp1, TEMP_DEF res, KILL cr); ins_cost(2 * VOLATILE_REF_COST); @@ -219,7 +219,7 @@ instruct zCompareAndExchangePAcq(iRegPNoSp res, indirect mem, iRegP oldval, iReg instruct zGetAndSetP(indirect mem, iRegP newv, iRegPNoSp prev, iRegPNoSp tmp, rFlagsReg cr) %{ match(Set prev (GetAndSetP mem newv)); - predicate(UseZGC && ZGenerational && !needs_acquiring_load_reserved(n) && n->as_LoadStore()->barrier_data() != 0); + predicate(UseZGC && !needs_acquiring_load_reserved(n) && n->as_LoadStore()->barrier_data() != 0); effect(TEMP_DEF prev, TEMP tmp, KILL cr); ins_cost(2 * VOLATILE_REF_COST); @@ -237,7 +237,7 @@ instruct zGetAndSetP(indirect mem, iRegP newv, iRegPNoSp prev, iRegPNoSp tmp, rF instruct zGetAndSetPAcq(indirect mem, iRegP newv, iRegPNoSp prev, iRegPNoSp tmp, rFlagsReg cr) %{ match(Set prev (GetAndSetP mem newv)); - predicate(UseZGC && ZGenerational && needs_acquiring_load_reserved(n) && n->as_LoadStore()->barrier_data() != 0); + predicate(UseZGC && needs_acquiring_load_reserved(n) && n->as_LoadStore()->barrier_data() != 0); effect(TEMP_DEF prev, TEMP tmp, KILL cr); ins_cost(2 * VOLATILE_REF_COST); diff --git a/src/hotspot/cpu/riscv/globals_riscv.hpp b/src/hotspot/cpu/riscv/globals_riscv.hpp index dd31de14704..7bd0200f118 100644 --- a/src/hotspot/cpu/riscv/globals_riscv.hpp +++ b/src/hotspot/cpu/riscv/globals_riscv.hpp @@ -112,11 +112,11 @@ define_pd_global(intx, InlineSmallCode, 1000); product(bool, UseZicbom, false, EXPERIMENTAL, "Use Zicbom instructions") \ product(bool, UseZicbop, false, EXPERIMENTAL, "Use Zicbop instructions") \ product(bool, UseZicboz, false, EXPERIMENTAL, "Use Zicboz instructions") \ - product(bool, UseZtso, false, EXPERIMENTAL, "Assume Ztso memory model") \ product(bool, UseZihintpause, false, EXPERIMENTAL, \ "Use Zihintpause instructions") \ + product(bool, UseZtso, false, EXPERIMENTAL, "Assume Ztso memory model") \ product(bool, UseZvbb, false, EXPERIMENTAL, "Use Zvbb instructions") \ - product(bool, UseZvfh, false, EXPERIMENTAL, "Use Zvfh instructions") \ + product(bool, UseZvfh, false, "Use Zvfh instructions") \ product(bool, UseZvkn, false, EXPERIMENTAL, \ "Use Zvkn group extension, Zvkned, Zvknhb, Zvkb, Zvkt") \ product(bool, UseRVVForBigIntegerShiftIntrinsics, true, \ diff --git a/src/hotspot/cpu/riscv/interp_masm_riscv.cpp b/src/hotspot/cpu/riscv/interp_masm_riscv.cpp index fd75bde7655..f383557e43f 100644 --- a/src/hotspot/cpu/riscv/interp_masm_riscv.cpp +++ b/src/hotspot/cpu/riscv/interp_masm_riscv.cpp @@ -193,9 +193,7 @@ void InterpreterMacroAssembler::get_unsigned_2_byte_index_at_bcp(Register reg, i void InterpreterMacroAssembler::get_dispatch() { ExternalAddress target((address)Interpreter::dispatch_table()); relocate(target.rspec(), [&] { - int32_t offset; - la(xdispatch, target.target(), offset); - addi(xdispatch, xdispatch, offset); + la(xdispatch, target.target()); }); } diff --git a/src/hotspot/cpu/riscv/jniFastGetField_riscv.cpp b/src/hotspot/cpu/riscv/jniFastGetField_riscv.cpp index f7d702c6310..2b4a8b87e54 100644 --- a/src/hotspot/cpu/riscv/jniFastGetField_riscv.cpp +++ b/src/hotspot/cpu/riscv/jniFastGetField_riscv.cpp @@ -75,9 +75,7 @@ address JNI_FastGetField::generate_fast_get_int_field0(BasicType type) { Address target(SafepointSynchronize::safepoint_counter_addr()); __ relocate(target.rspec(), [&] { - int32_t offset; - __ la(rcounter_addr, target.target(), offset); - __ addi(rcounter_addr, rcounter_addr, offset); + __ la(rcounter_addr, target.target()); }); Label slow; diff --git a/src/hotspot/cpu/riscv/macroAssembler_riscv.cpp b/src/hotspot/cpu/riscv/macroAssembler_riscv.cpp index 6137323d610..b58590e790f 100644 --- a/src/hotspot/cpu/riscv/macroAssembler_riscv.cpp +++ b/src/hotspot/cpu/riscv/macroAssembler_riscv.cpp @@ -454,12 +454,7 @@ void MacroAssembler::call_VM_base(Register oop_result, ld(t0, Address(java_thread, in_bytes(Thread::pending_exception_offset()))); Label ok; beqz(t0, ok); - RuntimeAddress target(StubRoutines::forward_exception_entry()); - relocate(target.rspec(), [&] { - int32_t offset; - la(t1, target.target(), offset); - jr(t1, offset); - }); + j(RuntimeAddress(StubRoutines::forward_exception_entry())); bind(ok); } @@ -535,7 +530,7 @@ void MacroAssembler::_verify_oop(Register reg, const char* s, const char* file, movptr(t0, (address) b); } - // call indirectly to solve generation ordering problem + // Call indirectly to solve generation ordering problem RuntimeAddress target(StubRoutines::verify_oop_subroutine_entry_address()); relocate(target.rspec(), [&] { int32_t offset; @@ -580,7 +575,7 @@ void MacroAssembler::_verify_oop_addr(Address addr, const char* s, const char* f movptr(t0, (address) b); } - // call indirectly to solve generation ordering problem + // Call indirectly to solve generation ordering problem RuntimeAddress target(StubRoutines::verify_oop_subroutine_entry_address()); relocate(target.rspec(), [&] { int32_t offset; @@ -977,17 +972,19 @@ void MacroAssembler::j(const address dest, Register temp) { } } -void MacroAssembler::j(const Address &adr, Register temp) { - switch (adr.getMode()) { +void MacroAssembler::j(const Address &dest, Register temp) { + switch (dest.getMode()) { case Address::literal: { - relocate(adr.rspec(), [&] { - j(adr.target(), temp); + relocate(dest.rspec(), [&] { + int32_t offset; + la(temp, dest.target(), offset); + jr(temp, offset); }); break; } case Address::base_plus_offset: { - int32_t offset = ((int32_t)adr.offset() << 20) >> 20; - la(temp, Address(adr.base(), adr.offset() - offset)); + int32_t offset = ((int32_t)dest.offset() << 20) >> 20; + la(temp, Address(dest.base(), dest.offset() - offset)); jr(temp, offset); break; } @@ -2572,27 +2569,6 @@ void MacroAssembler::bang_stack_size(Register size, Register tmp) { } } -SkipIfEqual::SkipIfEqual(MacroAssembler* masm, const bool* flag_addr, bool value) { - int32_t offset = 0; - _masm = masm; - ExternalAddress target((address)flag_addr); - _masm->relocate(target.rspec(), [&] { - int32_t offset; - _masm->la(t0, target.target(), offset); - _masm->lbu(t0, Address(t0, offset)); - }); - if (value) { - _masm->bnez(t0, _label); - } else { - _masm->beqz(t0, _label); - } -} - -SkipIfEqual::~SkipIfEqual() { - _masm->bind(_label); - _masm = nullptr; -} - void MacroAssembler::load_mirror(Register dst, Register method, Register tmp1, Register tmp2) { const int mirror_offset = in_bytes(Klass::java_mirror_offset()); ld(dst, Address(xmethod, Method::const_offset())); @@ -4194,8 +4170,7 @@ void MacroAssembler::reserved_stack_check() { // We have already removed our own frame. // throw_delayed_StackOverflowError will think that it's been // called by our caller. - la(t1, RuntimeAddress(SharedRuntime::throw_delayed_StackOverflowError_entry())); - jr(t1); + j(RuntimeAddress(SharedRuntime::throw_delayed_StackOverflowError_entry())); should_not_reach_here(); bind(no_reserved_zone_enabling); @@ -4214,7 +4189,7 @@ void MacroAssembler::read_polling_page(Register r, int32_t offset, relocInfo::re }); } -void MacroAssembler::set_narrow_oop(Register dst, jobject obj) { +void MacroAssembler::set_narrow_oop(Register dst, jobject obj) { #ifdef ASSERT { ThreadInVMfromUnknown tiv; @@ -4515,14 +4490,15 @@ void MacroAssembler::decrementw(const Address dst, int32_t value, Register tmp1, sw(tmp1, adr); } -void MacroAssembler::cmpptr(Register src1, Address src2, Label& equal) { - assert_different_registers(src1, t0); +void MacroAssembler::cmpptr(Register src1, const Address &src2, Label& equal, Register tmp) { + assert_different_registers(src1, tmp); + assert(src2.getMode() == Address::literal, "must be applied to a literal address"); relocate(src2.rspec(), [&] { int32_t offset; - la(t0, src2.target(), offset); - ld(t0, Address(t0, offset)); + la(tmp, src2.target(), offset); + ld(tmp, Address(tmp, offset)); }); - beq(src1, t0, equal); + beq(src1, tmp, equal); } void MacroAssembler::load_method_holder_cld(Register result, Register method) { diff --git a/src/hotspot/cpu/riscv/macroAssembler_riscv.hpp b/src/hotspot/cpu/riscv/macroAssembler_riscv.hpp index a2e44fc45dd..b248db39933 100644 --- a/src/hotspot/cpu/riscv/macroAssembler_riscv.hpp +++ b/src/hotspot/cpu/riscv/macroAssembler_riscv.hpp @@ -663,7 +663,7 @@ class MacroAssembler: public Assembler { // For long reach uses temp register for: // la + jr void j(const address dest, Register temp = t1); - void j(const Address &adr, Register temp = t1); + void j(const Address &dest, Register temp = t1); void j(Label &l, Register temp = noreg); // jump register: jalr x0, offset(rs) @@ -1327,7 +1327,7 @@ class MacroAssembler: public Assembler { void decrement(const Address dst, int64_t value = 1, Register tmp1 = t0, Register tmp2 = t1); void decrementw(const Address dst, int32_t value = 1, Register tmp1 = t0, Register tmp2 = t1); - void cmpptr(Register src1, Address src2, Label& equal); + void cmpptr(Register src1, const Address &src2, Label& equal, Register tmp = t0); void clinit_barrier(Register klass, Register tmp, Label* L_fast_path = nullptr, Label* L_slow_path = nullptr); void load_method_holder_cld(Register result, Register method); @@ -1794,22 +1794,4 @@ class MacroAssembler: public Assembler { inline bool AbstractAssembler::pd_check_instruction_mark() { return false; } #endif -/** - * class SkipIfEqual: - * - * Instantiating this class will result in assembly code being output that will - * jump around any code emitted between the creation of the instance and it's - * automatic destruction at the end of a scope block, depending on the value of - * the flag passed to the constructor, which will be checked at run-time. - */ -class SkipIfEqual { - private: - MacroAssembler* _masm; - Label _label; - - public: - SkipIfEqual(MacroAssembler*, const bool* flag_addr, bool value); - ~SkipIfEqual(); -}; - #endif // CPU_RISCV_MACROASSEMBLER_RISCV_HPP diff --git a/src/hotspot/cpu/riscv/sharedRuntime_riscv.cpp b/src/hotspot/cpu/riscv/sharedRuntime_riscv.cpp index 6932d7cf560..29c96112ead 100644 --- a/src/hotspot/cpu/riscv/sharedRuntime_riscv.cpp +++ b/src/hotspot/cpu/riscv/sharedRuntime_riscv.cpp @@ -1139,8 +1139,7 @@ static void gen_continuation_yield(MacroAssembler* masm, Label ok; __ beqz(t0, ok); __ leave(); - __ la(t1, RuntimeAddress(StubRoutines::forward_exception_entry())); - __ jr(t1); + __ j(RuntimeAddress(StubRoutines::forward_exception_entry())); __ bind(ok); __ leave(); @@ -2617,19 +2616,18 @@ RuntimeStub* SharedRuntime::generate_resolve_blob(SharedStubId id, address desti __ reset_last_Java_frame(false); // check for pending exceptions Label pending; - __ ld(t0, Address(xthread, Thread::pending_exception_offset())); - __ bnez(t0, pending); + __ ld(t1, Address(xthread, Thread::pending_exception_offset())); + __ bnez(t1, pending); // get the returned Method* __ get_vm_result_2(xmethod, xthread); __ sd(xmethod, Address(sp, reg_saver.reg_offset_in_bytes(xmethod))); - // x10 is where we want to jump, overwrite t0 which is saved and temporary - __ sd(x10, Address(sp, reg_saver.reg_offset_in_bytes(t0))); + // x10 is where we want to jump, overwrite t1 which is saved and temporary + __ sd(x10, Address(sp, reg_saver.reg_offset_in_bytes(t1))); reg_saver.restore_live_registers(masm); // We are back to the original state on entry and ready to go. - __ mv(t1, t0); __ jr(t1); // Pending exception after the safepoint diff --git a/src/hotspot/cpu/riscv/stubGenerator_riscv.cpp b/src/hotspot/cpu/riscv/stubGenerator_riscv.cpp index 3c0695aa381..77a2b794a7e 100644 --- a/src/hotspot/cpu/riscv/stubGenerator_riscv.cpp +++ b/src/hotspot/cpu/riscv/stubGenerator_riscv.cpp @@ -508,7 +508,7 @@ class StubGenerator: public StubCodeGenerator { // complete return to VM assert(StubRoutines::_call_stub_return_address != nullptr, "_call_stub_return_address must have been generated before"); - __ j(StubRoutines::_call_stub_return_address); + __ j(RuntimeAddress(StubRoutines::_call_stub_return_address)); return start; } @@ -946,7 +946,7 @@ class StubGenerator: public StubCodeGenerator { // The size of copy32_loop body increases significantly with ZGC GC barriers. // Need conditional far branches to reach a point beyond the loop in this case. - bool is_far = UseZGC && ZGenerational; + bool is_far = UseZGC; __ beqz(count, done, is_far); __ slli(cnt, count, exact_log2(granularity)); @@ -3782,8 +3782,7 @@ class StubGenerator: public StubCodeGenerator { Label thaw_success; // t1 contains the size of the frames to thaw, 0 if overflow or no more frames __ bnez(t1, thaw_success); - __ la(t1, RuntimeAddress(SharedRuntime::throw_StackOverflowError_entry())); - __ jr(t1); + __ j(RuntimeAddress(SharedRuntime::throw_StackOverflowError_entry())); __ bind(thaw_success); // make room for the thawed frames diff --git a/src/hotspot/cpu/riscv/templateInterpreterGenerator_riscv.cpp b/src/hotspot/cpu/riscv/templateInterpreterGenerator_riscv.cpp index 8e5f754fa1c..0281c66b97d 100644 --- a/src/hotspot/cpu/riscv/templateInterpreterGenerator_riscv.cpp +++ b/src/hotspot/cpu/riscv/templateInterpreterGenerator_riscv.cpp @@ -421,7 +421,7 @@ address TemplateInterpreterGenerator::generate_exception_handler_common( c_rarg1, c_rarg2); } // throw exception - __ j(address(Interpreter::throw_exception_entry())); + __ j(RuntimeAddress(Interpreter::throw_exception_entry())); return entry; } diff --git a/src/hotspot/cpu/riscv/templateTable_riscv.cpp b/src/hotspot/cpu/riscv/templateTable_riscv.cpp index 0b7616344c0..9f37774e297 100644 --- a/src/hotspot/cpu/riscv/templateTable_riscv.cpp +++ b/src/hotspot/cpu/riscv/templateTable_riscv.cpp @@ -1085,7 +1085,7 @@ void TemplateTable::aastore() { // Come here on failure // object is at TOS - __ j(Interpreter::_throw_ArrayStoreException_entry); + __ j(RuntimeAddress(Interpreter::_throw_ArrayStoreException_entry)); // Come here on success __ bind(ok_is_subtype); @@ -2465,7 +2465,7 @@ void TemplateTable::jvmti_post_field_access(Register cache, Register index, // take the time to call into the VM. Label L1; assert_different_registers(cache, index, x10); - ExternalAddress target((address) JvmtiExport::get_field_access_count_addr()); + ExternalAddress target(JvmtiExport::get_field_access_count_addr()); __ relocate(target.rspec(), [&] { int32_t offset; __ la(t0, target.target(), offset); @@ -2676,7 +2676,7 @@ void TemplateTable::jvmti_post_field_mod(Register cache, Register index, bool is // we take the time to call into the VM. Label L1; assert_different_registers(cache, index, x10); - ExternalAddress target((address)JvmtiExport::get_field_modification_count_addr()); + ExternalAddress target(JvmtiExport::get_field_modification_count_addr()); __ relocate(target.rspec(), [&] { int32_t offset; __ la(t0, target.target(), offset); @@ -2969,7 +2969,7 @@ void TemplateTable::jvmti_post_fast_field_mod() { // Check to see if a field modification watch has been set before // we take the time to call into the VM. Label L2; - ExternalAddress target((address)JvmtiExport::get_field_modification_count_addr()); + ExternalAddress target(JvmtiExport::get_field_modification_count_addr()); __ relocate(target.rspec(), [&] { int32_t offset; __ la(t0, target.target(), offset); @@ -3101,7 +3101,7 @@ void TemplateTable::fast_accessfield(TosState state) { // Check to see if a field access watch has been set before we // take the time to call into the VM. Label L1; - ExternalAddress target((address)JvmtiExport::get_field_access_count_addr()); + ExternalAddress target(JvmtiExport::get_field_access_count_addr()); __ relocate(target.rspec(), [&] { int32_t offset; __ la(t0, target.target(), offset); @@ -3672,7 +3672,7 @@ void TemplateTable::checkcast() { // Come here on failure __ push_reg(x13); // object is at TOS - __ j(Interpreter::_throw_ClassCastException_entry); + __ j(RuntimeAddress(Interpreter::_throw_ClassCastException_entry)); // Come here on success __ bind(ok_is_subtype); @@ -3779,7 +3779,7 @@ void TemplateTable::_breakpoint() { void TemplateTable::athrow() { transition(atos, vtos); __ null_check(x10); - __ j(Interpreter::throw_exception_entry()); + __ j(RuntimeAddress(Interpreter::throw_exception_entry())); } //----------------------------------------------------------------------------- diff --git a/src/hotspot/cpu/s390/c1_LIRAssembler_s390.cpp b/src/hotspot/cpu/s390/c1_LIRAssembler_s390.cpp index 8bf11816219..d2e860aa320 100644 --- a/src/hotspot/cpu/s390/c1_LIRAssembler_s390.cpp +++ b/src/hotspot/cpu/s390/c1_LIRAssembler_s390.cpp @@ -131,9 +131,19 @@ void LIR_Assembler::osr_entry() { // copied into place by code emitted in the IR. Register OSR_buf = osrBufferPointer()->as_register(); - { assert(frame::interpreter_frame_monitor_size() == BasicObjectLock::size(), "adjust code below"); - int monitor_offset = BytesPerWord * method()->max_locals() + - (2 * BytesPerWord) * (number_of_locks - 1); + { + assert(frame::interpreter_frame_monitor_size() == BasicObjectLock::size(), "adjust code below"); + + const int locals_space = BytesPerWord * method() -> max_locals(); + int monitor_offset = locals_space + (2 * BytesPerWord) * (number_of_locks - 1); + bool large_offset = !Immediate::is_simm20(monitor_offset + BytesPerWord) && number_of_locks > 0; + + if (large_offset) { + // z_lg can only handle displacement upto 20bit signed binary integer + __ z_algfi(OSR_buf, locals_space); + monitor_offset -= locals_space; + } + // SharedRuntime::OSR_migration_begin() packs BasicObjectLocks in // the OSR buffer using 2 word entries: first the lock and then // the oop. @@ -147,6 +157,10 @@ void LIR_Assembler::osr_entry() { __ z_lg(Z_R1_scratch, slot_offset + 1*BytesPerWord, OSR_buf); __ z_stg(Z_R1_scratch, frame_map()->address_for_monitor_object(i)); } + + if (large_offset) { + __ z_slgfi(OSR_buf, locals_space); + } } } diff --git a/src/hotspot/cpu/s390/interp_masm_s390.cpp b/src/hotspot/cpu/s390/interp_masm_s390.cpp index d00b6c3e2cc..5e80817aaba 100644 --- a/src/hotspot/cpu/s390/interp_masm_s390.cpp +++ b/src/hotspot/cpu/s390/interp_masm_s390.cpp @@ -2131,18 +2131,6 @@ void InterpreterMacroAssembler::notify_method_exit(bool native_method, if (!native_method) pop(state); bind(jvmti_post_done); } - -#if 0 - // Dtrace currently not supported on z/Architecture. - { - SkipIfEqual skip(this, &DTraceMethodProbes, false); - push(state); - get_method(c_rarg1); - call_VM_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::dtrace_method_exit), - r15_thread, c_rarg1); - pop(state); - } -#endif } void InterpreterMacroAssembler::skip_if_jvmti_mode(Label &Lskip, Register Rscratch) { diff --git a/src/hotspot/cpu/s390/macroAssembler_s390.cpp b/src/hotspot/cpu/s390/macroAssembler_s390.cpp index 6bfe5125959..6b739553b15 100644 --- a/src/hotspot/cpu/s390/macroAssembler_s390.cpp +++ b/src/hotspot/cpu/s390/macroAssembler_s390.cpp @@ -3667,7 +3667,7 @@ void MacroAssembler::compiler_fast_unlock_object(Register oop, Register box, Reg // We need a full fence after clearing owner to avoid stranding. z_fence(); - // Check if the entry lists are empty. + // Check if the entry lists are empty (EntryList first - by convention). load_and_test_long(temp, Address(currentHeader, OM_OFFSET_NO_MONITOR_VALUE_TAG(EntryList))); z_brne(check_succ); load_and_test_long(temp, Address(currentHeader, OM_OFFSET_NO_MONITOR_VALUE_TAG(cxq))); @@ -6016,21 +6016,6 @@ void MacroAssembler::zap_from_to(Register low, Register high, Register val, Regi } #endif // !PRODUCT -SkipIfEqual::SkipIfEqual(MacroAssembler* masm, const bool* flag_addr, bool value, Register _rscratch) { - _masm = masm; - _masm->load_absolute_address(_rscratch, (address)flag_addr); - _masm->load_and_test_int(_rscratch, Address(_rscratch)); - if (value) { - _masm->z_brne(_label); // Skip if true, i.e. != 0. - } else { - _masm->z_bre(_label); // Skip if false, i.e. == 0. - } -} - -SkipIfEqual::~SkipIfEqual() { - _masm->bind(_label); -} - // Implements lightweight-locking. // - obj: the object to be locked, contents preserved. // - temp1, temp2: temporary registers, contents destroyed. @@ -6510,7 +6495,7 @@ void MacroAssembler::compiler_fast_unlock_lightweight_object(Register obj, Regis // We need a full fence after clearing owner to avoid stranding. z_fence(); - // Check if the entry lists are empty. + // Check if the entry lists are empty (EntryList first - by convention). load_and_test_long(tmp2, EntryList_address); z_brne(check_succ); load_and_test_long(tmp2, cxq_address); diff --git a/src/hotspot/cpu/s390/macroAssembler_s390.hpp b/src/hotspot/cpu/s390/macroAssembler_s390.hpp index 5d3a4c29940..061817a1289 100644 --- a/src/hotspot/cpu/s390/macroAssembler_s390.hpp +++ b/src/hotspot/cpu/s390/macroAssembler_s390.hpp @@ -1064,24 +1064,6 @@ class MacroAssembler: public Assembler { }; -/** - * class SkipIfEqual: - * - * Instantiating this class will result in assembly code being output that will - * jump around any code emitted between the creation of the instance and it's - * automatic destruction at the end of a scope block, depending on the value of - * the flag passed to the constructor, which will be checked at run-time. - */ -class SkipIfEqual { - private: - MacroAssembler* _masm; - Label _label; - - public: - SkipIfEqual(MacroAssembler*, const bool* flag_addr, bool value, Register _rscratch); - ~SkipIfEqual(); -}; - #ifdef ASSERT // Return false (e.g. important for our impl. of virtual calls). inline bool AbstractAssembler::pd_check_instruction_mark() { return false; } diff --git a/src/hotspot/cpu/x86/assembler_x86.cpp b/src/hotspot/cpu/x86/assembler_x86.cpp index 0b021bbbf5e..e4ab99bf1c3 100644 --- a/src/hotspot/cpu/x86/assembler_x86.cpp +++ b/src/hotspot/cpu/x86/assembler_x86.cpp @@ -557,6 +557,14 @@ bool Assembler::needs_rex2(Register reg1, Register reg2, Register reg3) { return rex2; } +#ifndef PRODUCT +bool Assembler::needs_evex(XMMRegister reg1, XMMRegister reg2, XMMRegister reg3) { + return (reg1->is_valid() && reg1->encoding() >= 16) || + (reg2->is_valid() && reg2->encoding() >= 16) || + (reg3->is_valid() && reg3->encoding() >= 16); +} +#endif + bool Assembler::needs_eevex(Register reg1, Register reg2, Register reg3) { return needs_rex2(reg1, reg2, reg3); } @@ -3525,7 +3533,7 @@ void Assembler::vmaskmovpd(Address dst, XMMRegister src, XMMRegister mask, int v // Move Unaligned EVEX enabled Vector (programmable : 8,16,32,64) void Assembler::evmovdqub(XMMRegister dst, KRegister mask, XMMRegister src, bool merge, int vector_len) { - assert(VM_Version::supports_avx512vlbw(), ""); + assert(VM_Version::supports_avx512bw() && (vector_len == AVX_512bit || VM_Version::supports_avx512vl()), ""); InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ _legacy_mode_bw, /* no_mask_reg */ false, /* uses_vl */ true); attributes.set_embedded_opmask_register_specifier(mask); attributes.set_is_evex_instruction(); @@ -3542,7 +3550,7 @@ void Assembler::evmovdqub(XMMRegister dst, XMMRegister src, int vector_len) { } void Assembler::evmovdqub(XMMRegister dst, KRegister mask, Address src, bool merge, int vector_len) { - assert(VM_Version::supports_avx512vlbw(), ""); + assert(VM_Version::supports_avx512bw() && (vector_len == AVX_512bit || VM_Version::supports_avx512vl()), ""); InstructionMark im(this); InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ _legacy_mode_bw, /* no_mask_reg */ false, /* uses_vl */ true); attributes.set_address_attributes(/* tuple_type */ EVEX_FVM, /* input_size_in_bits */ EVEX_NObit); @@ -3562,7 +3570,7 @@ void Assembler::evmovdqub(XMMRegister dst, Address src, int vector_len) { } void Assembler::evmovdqub(Address dst, KRegister mask, XMMRegister src, bool merge, int vector_len) { - assert(VM_Version::supports_avx512vlbw(), ""); + assert(VM_Version::supports_avx512bw() && (vector_len == AVX_512bit || VM_Version::supports_avx512vl()), ""); assert(src != xnoreg, "sanity"); InstructionMark im(this); InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ _legacy_mode_bw, /* no_mask_reg */ false, /* uses_vl */ true); @@ -3577,13 +3585,18 @@ void Assembler::evmovdqub(Address dst, KRegister mask, XMMRegister src, bool mer emit_operand(src, dst, 0); } +void Assembler::evmovdquw(XMMRegister dst, XMMRegister src, int vector_len) { + // Unmasked instruction + evmovdquw(dst, k0, src, /*merge*/ false, vector_len); +} + void Assembler::evmovdquw(XMMRegister dst, Address src, int vector_len) { // Unmasked instruction evmovdquw(dst, k0, src, /*merge*/ false, vector_len); } void Assembler::evmovdquw(XMMRegister dst, KRegister mask, Address src, bool merge, int vector_len) { - assert(VM_Version::supports_avx512vlbw(), ""); + assert(VM_Version::supports_avx512bw() && (vector_len == AVX_512bit || VM_Version::supports_avx512vl()), ""); InstructionMark im(this); InstructionAttr attributes(vector_len, /* vex_w */ true, /* legacy_mode */ _legacy_mode_bw, /* no_mask_reg */ false, /* uses_vl */ true); attributes.set_address_attributes(/* tuple_type */ EVEX_FVM, /* input_size_in_bits */ EVEX_NObit); @@ -3603,7 +3616,7 @@ void Assembler::evmovdquw(Address dst, XMMRegister src, int vector_len) { } void Assembler::evmovdquw(Address dst, KRegister mask, XMMRegister src, bool merge, int vector_len) { - assert(VM_Version::supports_avx512vlbw(), ""); + assert(VM_Version::supports_avx512bw() && (vector_len == AVX_512bit || VM_Version::supports_avx512vl()), ""); assert(src != xnoreg, "sanity"); InstructionMark im(this); InstructionAttr attributes(vector_len, /* vex_w */ true, /* legacy_mode */ _legacy_mode_bw, /* no_mask_reg */ false, /* uses_vl */ true); @@ -3618,6 +3631,19 @@ void Assembler::evmovdquw(Address dst, KRegister mask, XMMRegister src, bool mer emit_operand(src, dst, 0); } +void Assembler::evmovdquw(XMMRegister dst, KRegister mask, XMMRegister src, bool merge, int vector_len) { + assert(VM_Version::supports_avx512bw() && (vector_len == AVX_512bit || VM_Version::supports_avx512vl()), ""); + InstructionAttr attributes(vector_len, /* vex_w */ true, /* legacy_mode */ _legacy_mode_bw, /* no_mask_reg */ false, /* uses_vl */ true); + attributes.set_embedded_opmask_register_specifier(mask); + attributes.set_is_evex_instruction(); + if (merge) { + attributes.reset_is_clear_context(); + } + int encode = vex_prefix_and_encode(dst->encoding(), 0, src->encoding(), VEX_SIMD_F2, VEX_OPCODE_0F, &attributes); + emit_int16(0x6F, (0xC0 | encode)); +} + + void Assembler::evmovdqul(XMMRegister dst, XMMRegister src, int vector_len) { // Unmasked instruction evmovdqul(dst, k0, src, /*merge*/ false, vector_len); @@ -4805,6 +4831,7 @@ void Assembler::vpcmpeqb(XMMRegister dst, XMMRegister src1, Address src2, int ve // In this context, kdst is written the mask used to process the equal components void Assembler::evpcmpeqb(KRegister kdst, XMMRegister nds, XMMRegister src, int vector_len) { assert(VM_Version::supports_avx512bw(), ""); + assert(vector_len == Assembler::AVX_512bit || VM_Version::supports_avx512vl(), ""); InstructionAttr attributes(vector_len, /* rex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ true, /* uses_vl */ true); attributes.set_is_evex_instruction(); int encode = vex_prefix_and_encode(kdst->encoding(), nds->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); @@ -4812,7 +4839,8 @@ void Assembler::evpcmpeqb(KRegister kdst, XMMRegister nds, XMMRegister src, int } void Assembler::evpcmpgtb(KRegister kdst, XMMRegister nds, Address src, int vector_len) { - assert(VM_Version::supports_avx512vlbw(), ""); + assert(VM_Version::supports_avx512bw(), ""); + assert(vector_len == Assembler::AVX_512bit || VM_Version::supports_avx512vl(), ""); InstructionMark im(this); InstructionAttr attributes(vector_len, /* rex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ true, /* uses_vl */ true); attributes.set_address_attributes(/* tuple_type */ EVEX_FVM, /* input_size_in_bits */ EVEX_NObit); @@ -4824,7 +4852,8 @@ void Assembler::evpcmpgtb(KRegister kdst, XMMRegister nds, Address src, int vect } void Assembler::evpcmpgtb(KRegister kdst, KRegister mask, XMMRegister nds, Address src, int vector_len) { - assert(VM_Version::supports_avx512vlbw(), ""); + assert(VM_Version::supports_avx512bw(), ""); + assert(vector_len == Assembler::AVX_512bit || VM_Version::supports_avx512vl(), ""); InstructionMark im(this); InstructionAttr attributes(vector_len, /* rex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ false, /* uses_vl */ true); attributes.set_address_attributes(/* tuple_type */ EVEX_FVM, /* input_size_in_bits */ EVEX_NObit); @@ -4837,16 +4866,34 @@ void Assembler::evpcmpgtb(KRegister kdst, KRegister mask, XMMRegister nds, Addre emit_operand(as_Register(dst_enc), src, 0); } +void Assembler::evpcmpub(KRegister kdst, XMMRegister nds, XMMRegister src, ComparisonPredicate vcc, int vector_len) { + assert(VM_Version::supports_avx512bw(), ""); + assert(vector_len == Assembler::AVX_512bit || VM_Version::supports_avx512vl(), ""); + InstructionAttr attributes(vector_len, /* rex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ true, /* uses_vl */ true); + attributes.set_is_evex_instruction(); + int encode = vex_prefix_and_encode(kdst->encoding(), nds->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F_3A, &attributes); + emit_int24(0x3E, (0xC0 | encode), vcc); +} + void Assembler::evpcmpuw(KRegister kdst, XMMRegister nds, XMMRegister src, ComparisonPredicate vcc, int vector_len) { - assert(VM_Version::supports_avx512vlbw(), ""); + assert(VM_Version::supports_avx512bw(), ""); + assert(vector_len == Assembler::AVX_512bit || VM_Version::supports_avx512vl(), ""); InstructionAttr attributes(vector_len, /* rex_w */ true, /* legacy_mode */ false, /* no_mask_reg */ true, /* uses_vl */ true); attributes.set_is_evex_instruction(); int encode = vex_prefix_and_encode(kdst->encoding(), nds->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F_3A, &attributes); emit_int24(0x3E, (0xC0 | encode), vcc); } +void Assembler::evpcmpud(KRegister kdst, XMMRegister nds, XMMRegister src, ComparisonPredicate vcc, int vector_len) { + assert(vector_len == Assembler::AVX_512bit || VM_Version::supports_avx512vl(), ""); + InstructionAttr attributes(vector_len, /* rex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ true, /* uses_vl */ true); + attributes.set_is_evex_instruction(); + int encode = vex_prefix_and_encode(kdst->encoding(), nds->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F_3A, &attributes); + emit_int24(0x1E, (0xC0 | encode), vcc); +} + void Assembler::evpcmpuq(KRegister kdst, XMMRegister nds, XMMRegister src, ComparisonPredicate vcc, int vector_len) { - assert(VM_Version::supports_avx512vl(), ""); + assert(vector_len == Assembler::AVX_512bit || VM_Version::supports_avx512vl(), ""); InstructionAttr attributes(vector_len, /* rex_w */ true, /* legacy_mode */ false, /* no_mask_reg */ true, /* uses_vl */ true); attributes.set_is_evex_instruction(); int encode = vex_prefix_and_encode(kdst->encoding(), nds->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F_3A, &attributes); @@ -4854,7 +4901,8 @@ void Assembler::evpcmpuq(KRegister kdst, XMMRegister nds, XMMRegister src, Compa } void Assembler::evpcmpuw(KRegister kdst, XMMRegister nds, Address src, ComparisonPredicate vcc, int vector_len) { - assert(VM_Version::supports_avx512vlbw(), ""); + assert(VM_Version::supports_avx512bw(), ""); + assert(vector_len == Assembler::AVX_512bit || VM_Version::supports_avx512vl(), ""); InstructionMark im(this); InstructionAttr attributes(vector_len, /* rex_w */ true, /* legacy_mode */ false, /* no_mask_reg */ true, /* uses_vl */ true); attributes.set_address_attributes(/* tuple_type */ EVEX_FVM, /* input_size_in_bits */ EVEX_NObit); @@ -4868,6 +4916,7 @@ void Assembler::evpcmpuw(KRegister kdst, XMMRegister nds, Address src, Compariso void Assembler::evpcmpeqb(KRegister kdst, XMMRegister nds, Address src, int vector_len) { assert(VM_Version::supports_avx512bw(), ""); + assert(vector_len == Assembler::AVX_512bit || VM_Version::supports_avx512vl(), ""); InstructionMark im(this); InstructionAttr attributes(vector_len, /* rex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ true, /* uses_vl */ true); attributes.set_is_evex_instruction(); @@ -4879,7 +4928,8 @@ void Assembler::evpcmpeqb(KRegister kdst, XMMRegister nds, Address src, int vect } void Assembler::evpcmpeqb(KRegister kdst, KRegister mask, XMMRegister nds, Address src, int vector_len) { - assert(VM_Version::supports_avx512vlbw(), ""); + assert(VM_Version::supports_avx512bw(), ""); + assert(vector_len == Assembler::AVX_512bit || VM_Version::supports_avx512vl(), ""); InstructionMark im(this); InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ false, /* uses_vl */ true); attributes.set_address_attributes(/* tuple_type */ EVEX_FVM, /* input_size_in_bits */ EVEX_NObit); @@ -8353,6 +8403,161 @@ void Assembler::vpaddq(XMMRegister dst, XMMRegister nds, Address src, int vector emit_operand(dst, src, 0); } +void Assembler::vpaddsb(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len) { + assert(UseAVX > 0 && (vector_len == Assembler::AVX_512bit || (!needs_evex(dst, nds, src) || VM_Version::supports_avx512vl())), ""); + assert(!needs_evex(dst, nds, src) || VM_Version::supports_avx512bw(), ""); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ _legacy_mode_bw, /* no_mask_reg */ true, /* uses_vl */ true); + int encode = vex_prefix_and_encode(dst->encoding(), nds->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int16((unsigned char)0xEC, (0xC0 | encode)); +} + +void Assembler::vpaddsb(XMMRegister dst, XMMRegister nds, Address src, int vector_len) { + assert(UseAVX > 0 && (vector_len == Assembler::AVX_512bit || (!needs_evex(dst, nds) || VM_Version::supports_avx512vl())), ""); + assert(!needs_evex(dst, nds) || VM_Version::supports_avx512bw(), ""); + InstructionMark im(this); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ _legacy_mode_bw, /* no_mask_reg */ true, /* uses_vl */ true); + attributes.set_address_attributes(/* tuple_type */ EVEX_FV, /* input_size_in_bits */ EVEX_NObit); + vex_prefix(src, nds->encoding(), dst->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int8((unsigned char)0xEC); + emit_operand(dst, src, 0); +} + +void Assembler::vpaddsw(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len) { + assert(UseAVX > 0 && (vector_len == Assembler::AVX_512bit || (!needs_evex(dst, nds, src) || VM_Version::supports_avx512vl())), ""); + assert(!needs_evex(dst, nds, src) || VM_Version::supports_avx512bw(), ""); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ _legacy_mode_bw, /* no_mask_reg */ true, /* uses_vl */ true); + int encode = vex_prefix_and_encode(dst->encoding(), nds->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int16((unsigned char)0xED, (0xC0 | encode)); +} + +void Assembler::vpaddsw(XMMRegister dst, XMMRegister nds, Address src, int vector_len) { + assert(UseAVX > 0 && (vector_len == Assembler::AVX_512bit || (!needs_evex(dst, nds) || VM_Version::supports_avx512vl())), ""); + assert(!needs_evex(dst, nds) || VM_Version::supports_avx512bw(), ""); + InstructionMark im(this); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ _legacy_mode_bw, /* no_mask_reg */ true, /* uses_vl */ true); + attributes.set_address_attributes(/* tuple_type */ EVEX_FV, /* input_size_in_bits */ EVEX_NObit); + vex_prefix(src, nds->encoding(), dst->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int8((unsigned char)0xED); + emit_operand(dst, src, 0); +} + +void Assembler::vpaddusb(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len) { + assert(UseAVX > 0 && (vector_len == Assembler::AVX_512bit || (!needs_evex(dst, nds, src) || VM_Version::supports_avx512vl())), ""); + assert(!needs_evex(dst, nds, src) || VM_Version::supports_avx512bw(), ""); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ _legacy_mode_bw, /* no_mask_reg */ true, /* uses_vl */ true); + int encode = vex_prefix_and_encode(dst->encoding(), nds->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int16((unsigned char)0xDC, (0xC0 | encode)); +} + +void Assembler::vpaddusb(XMMRegister dst, XMMRegister nds, Address src, int vector_len) { + assert(UseAVX > 0 && (vector_len == Assembler::AVX_512bit || (!needs_evex(dst, nds) || VM_Version::supports_avx512vl())), ""); + assert(!needs_evex(dst, nds) || VM_Version::supports_avx512bw(), ""); + InstructionMark im(this); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ _legacy_mode_bw, /* no_mask_reg */ true, /* uses_vl */ true); + attributes.set_address_attributes(/* tuple_type */ EVEX_FV, /* input_size_in_bits */ EVEX_NObit); + vex_prefix(src, nds->encoding(), dst->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int8((unsigned char)0xDC); + emit_operand(dst, src, 0); +} + + +void Assembler::vpaddusw(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len) { + assert(UseAVX > 0 && (vector_len == Assembler::AVX_512bit || (!needs_evex(dst, nds, src) || VM_Version::supports_avx512vl())), ""); + assert(!needs_evex(dst, nds, src) || VM_Version::supports_avx512bw(), ""); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ _legacy_mode_bw, /* no_mask_reg */ true, /* uses_vl */ true); + int encode = vex_prefix_and_encode(dst->encoding(), nds->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int16((unsigned char)0xDD, (0xC0 | encode)); +} + +void Assembler::vpaddusw(XMMRegister dst, XMMRegister nds, Address src, int vector_len) { + assert(UseAVX > 0 && (vector_len == Assembler::AVX_512bit || (!needs_evex(dst, nds) || VM_Version::supports_avx512vl())), ""); + assert(!needs_evex(dst, nds) || VM_Version::supports_avx512bw(), ""); + InstructionMark im(this); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ _legacy_mode_bw, /* no_mask_reg */ true, /* uses_vl */ true); + attributes.set_address_attributes(/* tuple_type */ EVEX_FV, /* input_size_in_bits */ EVEX_NObit); + vex_prefix(src, nds->encoding(), dst->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int8((unsigned char)0xDD); + emit_operand(dst, src, 0); +} + + +void Assembler::vpsubsb(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len) { + assert(UseAVX > 0 && (vector_len == Assembler::AVX_512bit || (!needs_evex(dst, nds, src) || VM_Version::supports_avx512vl())), ""); + assert(!needs_evex(dst, nds, src) || VM_Version::supports_avx512bw(), ""); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ _legacy_mode_bw, /* no_mask_reg */ true, /* uses_vl */ true); + int encode = vex_prefix_and_encode(dst->encoding(), nds->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int16((unsigned char)0xE8, (0xC0 | encode)); +} + +void Assembler::vpsubsb(XMMRegister dst, XMMRegister nds, Address src, int vector_len) { + assert(UseAVX > 0 && (vector_len == Assembler::AVX_512bit || (!needs_evex(dst, nds) || VM_Version::supports_avx512vl())), ""); + assert(!needs_evex(dst, nds) || VM_Version::supports_avx512bw(), ""); + InstructionMark im(this); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ _legacy_mode_bw, /* no_mask_reg */ true, /* uses_vl */ true); + attributes.set_address_attributes(/* tuple_type */ EVEX_FV, /* input_size_in_bits */ EVEX_NObit); + vex_prefix(src, nds->encoding(), dst->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int8((unsigned char)0xE8); + emit_operand(dst, src, 0); +} + +void Assembler::vpsubsw(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len) { + assert(UseAVX > 0 && (vector_len == Assembler::AVX_512bit || (!needs_evex(dst, nds, src) || VM_Version::supports_avx512vl())), ""); + assert(!needs_evex(dst, nds, src) || VM_Version::supports_avx512bw(), ""); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ _legacy_mode_bw, /* no_mask_reg */ true, /* uses_vl */ true); + int encode = vex_prefix_and_encode(dst->encoding(), nds->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int16((unsigned char)0xE9, (0xC0 | encode)); +} + +void Assembler::vpsubsw(XMMRegister dst, XMMRegister nds, Address src, int vector_len) { + assert(UseAVX > 0 && (vector_len == Assembler::AVX_512bit || (!needs_evex(dst, nds) || VM_Version::supports_avx512vl())), ""); + assert(!needs_evex(dst, nds) || VM_Version::supports_avx512bw(), ""); + InstructionMark im(this); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ _legacy_mode_bw, /* no_mask_reg */ true, /* uses_vl */ true); + attributes.set_address_attributes(/* tuple_type */ EVEX_FV, /* input_size_in_bits */ EVEX_NObit); + vex_prefix(src, nds->encoding(), dst->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int8((unsigned char)0xE9); + emit_operand(dst, src, 0); +} + +void Assembler::vpsubusb(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len) { + assert(UseAVX > 0 && (vector_len == Assembler::AVX_512bit || (!needs_evex(dst, nds, src) || VM_Version::supports_avx512vl())), ""); + assert(!needs_evex(dst, nds, src) || VM_Version::supports_avx512bw(), ""); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ _legacy_mode_bw, /* no_mask_reg */ true, /* uses_vl */ true); + int encode = vex_prefix_and_encode(dst->encoding(), nds->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int16((unsigned char)0xD8, (0xC0 | encode)); +} + +void Assembler::vpsubusb(XMMRegister dst, XMMRegister nds, Address src, int vector_len) { + assert(UseAVX > 0 && (vector_len == Assembler::AVX_512bit || (!needs_evex(dst, nds) || VM_Version::supports_avx512vl())), ""); + assert(!needs_evex(dst, nds) || VM_Version::supports_avx512bw(), ""); + InstructionMark im(this); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ _legacy_mode_bw, /* no_mask_reg */ true, /* uses_vl */ true); + attributes.set_address_attributes(/* tuple_type */ EVEX_FV, /* input_size_in_bits */ EVEX_NObit); + vex_prefix(src, nds->encoding(), dst->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int8((unsigned char)0xD8); + emit_operand(dst, src, 0); +} + +void Assembler::vpsubusw(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len) { + assert(UseAVX > 0 && (vector_len == Assembler::AVX_512bit || (!needs_evex(dst, nds, src) || VM_Version::supports_avx512vl())), ""); + assert(!needs_evex(dst, nds, src) || VM_Version::supports_avx512bw(), ""); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ true, /* uses_vl */ true); + int encode = vex_prefix_and_encode(dst->encoding(), nds->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int16((unsigned char)0xD9, (0xC0 | encode)); +} + +void Assembler::vpsubusw(XMMRegister dst, XMMRegister nds, Address src, int vector_len) { + assert(UseAVX > 0 && (vector_len == Assembler::AVX_512bit || (!needs_evex(dst, nds) || VM_Version::supports_avx512vl())), ""); + assert(!needs_evex(dst, nds) || VM_Version::supports_avx512bw(), ""); + InstructionMark im(this); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ _legacy_mode_bw, /* no_mask_reg */ true, /* uses_vl */ true); + attributes.set_address_attributes(/* tuple_type */ EVEX_FV, /* input_size_in_bits */ EVEX_NObit); + vex_prefix(src, nds->encoding(), dst->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int8((unsigned char)0xD9); + emit_operand(dst, src, 0); +} + + void Assembler::psubb(XMMRegister dst, XMMRegister src) { NOT_LP64(assert(VM_Version::supports_sse2(), "")); InstructionAttr attributes(AVX_128bit, /* rex_w */ false, /* legacy_mode */ _legacy_mode_bw, /* no_mask_reg */ true, /* uses_vl */ true); @@ -8382,13 +8587,6 @@ void Assembler::psubq(XMMRegister dst, XMMRegister src) { emit_int8((0xC0 | encode)); } -void Assembler::vpsubusb(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len) { - assert(UseAVX > 0, "requires some form of AVX"); - InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ _legacy_mode_bw, /* no_mask_reg */ true, /* uses_vl */ true); - int encode = vex_prefix_and_encode(dst->encoding(), nds->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); - emit_int16((unsigned char)0xD8, (0xC0 | encode)); -} - void Assembler::vpsubb(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len) { assert(UseAVX > 0, "requires some form of AVX"); InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ _legacy_mode_bw, /* no_mask_reg */ true, /* uses_vl */ true); @@ -8518,6 +8716,15 @@ void Assembler::vpmuludq(XMMRegister dst, XMMRegister nds, XMMRegister src, int emit_int16((unsigned char)0xF4, (0xC0 | encode)); } +void Assembler::vpmuldq(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len) { + assert(vector_len == AVX_128bit ? VM_Version::supports_avx() : + (vector_len == AVX_256bit ? VM_Version::supports_avx2() : VM_Version::supports_evex()), ""); + InstructionAttr attributes(vector_len, /* vex_w */ VM_Version::supports_evex(), /* legacy_mode */ false, /* no_mask_reg */ true, /* uses_vl */ true); + attributes.set_rex_vex_w_reverted(); + int encode = vex_prefix_and_encode(dst->encoding(), nds->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F_38, &attributes); + emit_int16(0x28, (0xC0 | encode)); +} + void Assembler::vpmullw(XMMRegister dst, XMMRegister nds, Address src, int vector_len) { assert(UseAVX > 0, "requires some form of AVX"); InstructionMark im(this); @@ -8565,14 +8772,6 @@ void Assembler::vpminsb(XMMRegister dst, XMMRegister nds, XMMRegister src, int v emit_int16(0x38, (0xC0 | encode)); } -void Assembler::vpminub(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len) { - assert(vector_len == AVX_128bit ? VM_Version::supports_avx() : - (vector_len == AVX_256bit ? VM_Version::supports_avx2() : VM_Version::supports_avx512bw()), ""); - InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ _legacy_mode_bw, /* no_mask_reg */ true, /* uses_vl */ true); - int encode = vex_prefix_and_encode(dst->encoding(), nds->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); - emit_int16(0xDA, (0xC0 | encode)); -} - void Assembler::pminsw(XMMRegister dst, XMMRegister src) { assert(VM_Version::supports_sse2(), ""); InstructionAttr attributes(AVX_128bit, /* rex_w */ false, /* legacy_mode */ _legacy_mode_bw, /* no_mask_reg */ true, /* uses_vl */ true); @@ -8718,66 +8917,406 @@ void Assembler::vmaxpd(XMMRegister dst, XMMRegister nds, XMMRegister src, int ve emit_int16(0x5F, (0xC0 | encode)); } -// Shift packed integers left by specified number of bits. -void Assembler::psllw(XMMRegister dst, int shift) { - NOT_LP64(assert(VM_Version::supports_sse2(), "")); - InstructionAttr attributes(AVX_128bit, /* rex_w */ false, /* legacy_mode */ _legacy_mode_bw, /* no_mask_reg */ true, /* uses_vl */ true); - // XMM6 is for /6 encoding: 66 0F 71 /6 ib - int encode = simd_prefix_and_encode(xmm6, dst, dst, VEX_SIMD_66, VEX_OPCODE_0F, &attributes); - emit_int24(0x71, (0xC0 | encode), shift & 0xFF); -} - -void Assembler::pslld(XMMRegister dst, int shift) { - NOT_LP64(assert(VM_Version::supports_sse2(), "")); - InstructionAttr attributes(AVX_128bit, /* rex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ true, /* uses_vl */ true); - // XMM6 is for /6 encoding: 66 0F 72 /6 ib - int encode = simd_prefix_and_encode(xmm6, dst, dst, VEX_SIMD_66, VEX_OPCODE_0F, &attributes); - emit_int24(0x72, (0xC0 | encode), shift & 0xFF); +void Assembler::vpminub(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len) { + assert(UseAVX > 0 && (vector_len == Assembler::AVX_512bit || (!needs_evex(dst, nds, src) || VM_Version::supports_avx512vl())), ""); + assert(!needs_evex(dst, nds, src) || VM_Version::supports_avx512bw(), ""); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ _legacy_mode_bw, /* no_mask_reg */ true, /* uses_vl */ true); + int encode = vex_prefix_and_encode(dst->encoding(), nds->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int16((unsigned char)0xDA, (0xC0 | encode)); } -void Assembler::psllq(XMMRegister dst, int shift) { - NOT_LP64(assert(VM_Version::supports_sse2(), "")); - InstructionAttr attributes(AVX_128bit, /* rex_w */ true, /* legacy_mode */ false, /* no_mask_reg */ true, /* uses_vl */ true); - // XMM6 is for /6 encoding: 66 0F 73 /6 ib - int encode = simd_prefix_and_encode(xmm6, dst, dst, VEX_SIMD_66, VEX_OPCODE_0F, &attributes); - emit_int24(0x73, (0xC0 | encode), shift & 0xFF); +void Assembler::vpminub(XMMRegister dst, XMMRegister nds, Address src, int vector_len) { + assert(UseAVX > 0 && (vector_len == Assembler::AVX_512bit || (!needs_evex(dst, nds) || VM_Version::supports_avx512vl())), ""); + assert(!needs_evex(dst, nds) || VM_Version::supports_avx512bw(), ""); + InstructionMark im(this); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ _legacy_mode_bw, /* no_mask_reg */ true, /* uses_vl */ true); + attributes.set_address_attributes(/* tuple_type */ EVEX_FV, /* input_size_in_bits */ EVEX_NObit); + vex_prefix(src, nds->encoding(), dst->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int8((unsigned char)0xDA); + emit_operand(dst, src, 0); } -void Assembler::psllw(XMMRegister dst, XMMRegister shift) { - NOT_LP64(assert(VM_Version::supports_sse2(), "")); - InstructionAttr attributes(AVX_128bit, /* rex_w */ false, /* legacy_mode */ _legacy_mode_bw, /* no_mask_reg */ true, /* uses_vl */ true); - int encode = simd_prefix_and_encode(dst, dst, shift, VEX_SIMD_66, VEX_OPCODE_0F, &attributes); - emit_int16((unsigned char)0xF1, (0xC0 | encode)); +void Assembler::evpminub(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len) { + assert(VM_Version::supports_avx512bw() && (vector_len == AVX_512bit || VM_Version::supports_avx512vl()), ""); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ false, /* uses_vl */ true); + attributes.set_is_evex_instruction(); + attributes.set_embedded_opmask_register_specifier(mask); + if (merge) { + attributes.reset_is_clear_context(); + } + int encode = vex_prefix_and_encode(dst->encoding(), nds->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int16((unsigned char)0xDA, (0xC0 | encode)); } -void Assembler::pslld(XMMRegister dst, XMMRegister shift) { - NOT_LP64(assert(VM_Version::supports_sse2(), "")); - InstructionAttr attributes(AVX_128bit, /* rex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ true, /* uses_vl */ true); - int encode = simd_prefix_and_encode(dst, dst, shift, VEX_SIMD_66, VEX_OPCODE_0F, &attributes); - emit_int16((unsigned char)0xF2, (0xC0 | encode)); +void Assembler::evpminub(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len) { + assert(VM_Version::supports_avx512bw() && (vector_len == AVX_512bit || VM_Version::supports_avx512vl()), ""); + InstructionMark im(this); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ false, /* uses_vl */ true); + attributes.set_is_evex_instruction(); + attributes.set_address_attributes(/* tuple_type */ EVEX_FV, /* input_size_in_bits */ EVEX_NObit); + attributes.set_embedded_opmask_register_specifier(mask); + if (merge) { + attributes.reset_is_clear_context(); + } + vex_prefix(src, nds->encoding(), dst->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int8((unsigned char)0xDA); + emit_operand(dst, src, 0); } -void Assembler::psllq(XMMRegister dst, XMMRegister shift) { - NOT_LP64(assert(VM_Version::supports_sse2(), "")); - InstructionAttr attributes(AVX_128bit, /* rex_w */ VM_Version::supports_evex(), /* legacy_mode */ false, /* no_mask_reg */ true, /* uses_vl */ true); - attributes.set_rex_vex_w_reverted(); - int encode = simd_prefix_and_encode(dst, dst, shift, VEX_SIMD_66, VEX_OPCODE_0F, &attributes); - emit_int16((unsigned char)0xF3, (0xC0 | encode)); +void Assembler::vpminuw(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len) { + assert(UseAVX > 0 && (vector_len == Assembler::AVX_512bit || (!needs_evex(dst, nds, src) || VM_Version::supports_avx512vl())), ""); + assert(!needs_evex(dst, nds) || VM_Version::supports_avx512bw(), ""); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ _legacy_mode_bw, /* no_mask_reg */ true, /* uses_vl */ true); + int encode = vex_prefix_and_encode(dst->encoding(), nds->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F_38, &attributes); + emit_int16(0x3A, (0xC0 | encode)); } -void Assembler::vpsllw(XMMRegister dst, XMMRegister src, int shift, int vector_len) { - assert(UseAVX > 0, "requires some form of AVX"); +void Assembler::vpminuw(XMMRegister dst, XMMRegister nds, Address src, int vector_len) { + assert(UseAVX > 0 && (vector_len == Assembler::AVX_512bit || (!needs_evex(dst, nds) || VM_Version::supports_avx512vl())), ""); + assert(!needs_evex(dst, nds) || VM_Version::supports_avx512bw(), ""); + InstructionMark im(this); InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ _legacy_mode_bw, /* no_mask_reg */ true, /* uses_vl */ true); - // XMM6 is for /6 encoding: 66 0F 71 /6 ib - int encode = vex_prefix_and_encode(xmm6->encoding(), dst->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); - emit_int24(0x71, (0xC0 | encode), shift & 0xFF); + attributes.set_address_attributes(/* tuple_type */ EVEX_FV, /* input_size_in_bits */ EVEX_NObit); + vex_prefix(src, nds->encoding(), dst->encoding(), VEX_SIMD_66, VEX_OPCODE_0F_38, &attributes); + emit_int8((unsigned char)0x3A); + emit_operand(dst, src, 0); } -void Assembler::vpslld(XMMRegister dst, XMMRegister src, int shift, int vector_len) { - assert(UseAVX > 0, "requires some form of AVX"); - NOT_LP64(assert(VM_Version::supports_sse2(), "")); - InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ true, /* uses_vl */ true); - // XMM6 is for /6 encoding: 66 0F 72 /6 ib +void Assembler::evpminuw(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len) { + assert(VM_Version::supports_avx512bw() && (vector_len == AVX_512bit || VM_Version::supports_avx512vl()), ""); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ false, /* uses_vl */ true); + attributes.set_is_evex_instruction(); + attributes.set_embedded_opmask_register_specifier(mask); + if (merge) { + attributes.reset_is_clear_context(); + } + int encode = vex_prefix_and_encode(dst->encoding(), nds->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F_38, &attributes); + emit_int16(0x3A, (0xC0 | encode)); +} + +void Assembler::evpminuw(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len) { + assert(VM_Version::supports_avx512bw() && (vector_len == AVX_512bit || VM_Version::supports_avx512vl()), ""); + InstructionMark im(this); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ false, /* uses_vl */ true); + attributes.set_is_evex_instruction(); + attributes.set_address_attributes(/* tuple_type */ EVEX_FV, /* input_size_in_bits */ EVEX_NObit); + attributes.set_embedded_opmask_register_specifier(mask); + if (merge) { + attributes.reset_is_clear_context(); + } + vex_prefix(src, nds->encoding(), dst->encoding(), VEX_SIMD_66, VEX_OPCODE_0F_38, &attributes); + emit_int8(0x3A); + emit_operand(dst, src, 0); +} + +void Assembler::vpminud(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len) { + assert(UseAVX > 0 && (vector_len == Assembler::AVX_512bit || (!needs_evex(dst, nds, src) || VM_Version::supports_avx512vl())), ""); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ true, /* uses_vl */ true); + int encode = vex_prefix_and_encode(dst->encoding(), nds->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F_38, &attributes); + emit_int16(0x3B, (0xC0 | encode)); +} + +void Assembler::vpminud(XMMRegister dst, XMMRegister nds, Address src, int vector_len) { + assert(UseAVX > 0 && (vector_len == Assembler::AVX_512bit || (!needs_evex(dst, nds) || VM_Version::supports_avx512vl())), ""); + InstructionMark im(this); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ true, /* uses_vl */ true); + attributes.set_address_attributes(/* tuple_type */ EVEX_FV, /* input_size_in_bits */ EVEX_NObit); + vex_prefix(src, nds->encoding(), dst->encoding(), VEX_SIMD_66, VEX_OPCODE_0F_38, &attributes); + emit_int8((unsigned char)0x3B); + emit_operand(dst, src, 0); +} + +void Assembler::evpminud(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len) { + assert(VM_Version::supports_evex(), ""); + assert(vector_len == AVX_512bit || VM_Version::supports_avx512vl(), ""); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ false, /* uses_vl */ true); + attributes.set_is_evex_instruction(); + attributes.set_embedded_opmask_register_specifier(mask); + if (merge) { + attributes.reset_is_clear_context(); + } + int encode = vex_prefix_and_encode(dst->encoding(), nds->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F_38, &attributes); + emit_int16(0x3B, (0xC0 | encode)); +} + +void Assembler::evpminud(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len) { + assert(VM_Version::supports_evex(), ""); + assert(vector_len == AVX_512bit || VM_Version::supports_avx512vl(), ""); + InstructionMark im(this); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ false, /* uses_vl */ true); + attributes.set_address_attributes(/* tuple_type */ EVEX_FV, /* input_size_in_bits */ EVEX_NObit); + attributes.set_is_evex_instruction(); + attributes.set_embedded_opmask_register_specifier(mask); + if (merge) { + attributes.reset_is_clear_context(); + } + vex_prefix(src, nds->encoding(), dst->encoding(), VEX_SIMD_66, VEX_OPCODE_0F_38, &attributes); + emit_int8(0x3B); + emit_operand(dst, src, 0); +} + +void Assembler::evpminuq(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len) { + assert(VM_Version::supports_evex(), ""); + assert(vector_len == AVX_512bit || VM_Version::supports_avx512vl(), ""); + InstructionAttr attributes(vector_len, /* vex_w */ true, /* legacy_mode */ false, /* no_mask_reg */ false, /* uses_vl */ true); + attributes.set_is_evex_instruction(); + attributes.set_embedded_opmask_register_specifier(mask); + if (merge) { + attributes.reset_is_clear_context(); + } + int encode = vex_prefix_and_encode(dst->encoding(), nds->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F_38, &attributes); + emit_int16(0x3B, (0xC0 | encode)); +} + +void Assembler::evpminuq(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len) { + assert(VM_Version::supports_evex(), ""); + assert(vector_len == AVX_512bit || VM_Version::supports_avx512vl(), ""); + InstructionMark im(this); + InstructionAttr attributes(vector_len, /* vex_w */ true, /* legacy_mode */ false, /* no_mask_reg */ false, /* uses_vl */ true); + attributes.set_is_evex_instruction(); + attributes.set_address_attributes(/* tuple_type */ EVEX_FV, /* input_size_in_bits */ EVEX_NObit); + attributes.set_embedded_opmask_register_specifier(mask); + if (merge) { + attributes.reset_is_clear_context(); + } + vex_prefix(src, nds->encoding(), dst->encoding(), VEX_SIMD_66, VEX_OPCODE_0F_38, &attributes); + emit_int8(0x3B); + emit_operand(dst, src, 0); +} + +void Assembler::vpmaxub(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len) { + assert(vector_len == AVX_128bit ? VM_Version::supports_avx() : + (vector_len == AVX_256bit ? VM_Version::supports_avx2() : VM_Version::supports_avx512bw()), ""); + assert(UseAVX > 0 && (vector_len == Assembler::AVX_512bit || (!needs_evex(dst, nds, src) || VM_Version::supports_avx512vl())), ""); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ _legacy_mode_bw, /* no_mask_reg */ true, /* uses_vl */ true); + int encode = vex_prefix_and_encode(dst->encoding(), nds->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int16((unsigned char)0xDE, (0xC0 | encode)); +} + +void Assembler::vpmaxub(XMMRegister dst, XMMRegister nds, Address src, int vector_len) { + assert(vector_len == AVX_128bit ? VM_Version::supports_avx() : + (vector_len == AVX_256bit ? VM_Version::supports_avx2() : VM_Version::supports_avx512bw()), ""); + assert(UseAVX > 0 && (vector_len == Assembler::AVX_512bit || (!needs_evex(dst, nds) || VM_Version::supports_avx512vl())), ""); + InstructionMark im(this); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ _legacy_mode_bw, /* no_mask_reg */ true, /* uses_vl */ true); + attributes.set_address_attributes(/* tuple_type */ EVEX_FV, /* input_size_in_bits */ EVEX_NObit); + vex_prefix(src, nds->encoding(), dst->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int8((unsigned char)0xDE); + emit_operand(dst, src, 0); +} + +void Assembler::evpmaxub(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len) { + assert(VM_Version::supports_avx512bw() && (vector_len == AVX_512bit || VM_Version::supports_avx512vl()), ""); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ false, /* uses_vl */ true); + attributes.set_is_evex_instruction(); + attributes.set_embedded_opmask_register_specifier(mask); + if (merge) { + attributes.reset_is_clear_context(); + } + int encode = vex_prefix_and_encode(dst->encoding(), nds->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int16((unsigned char)0xDE, (0xC0 | encode)); +} + +void Assembler::evpmaxub(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len) { + assert(VM_Version::supports_avx512bw() && (vector_len == AVX_512bit || VM_Version::supports_avx512vl()), ""); + InstructionMark im(this); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ false, /* uses_vl */ true); + attributes.set_is_evex_instruction(); + attributes.set_address_attributes(/* tuple_type */ EVEX_FV, /* input_size_in_bits */ EVEX_NObit); + attributes.set_embedded_opmask_register_specifier(mask); + if (merge) { + attributes.reset_is_clear_context(); + } + vex_prefix(src, nds->encoding(), dst->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int8((unsigned char)0xDE); + emit_operand(dst, src, 0); +} + +void Assembler::vpmaxuw(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len) { + assert(vector_len == AVX_128bit ? VM_Version::supports_avx() : + (vector_len == AVX_256bit ? VM_Version::supports_avx2() : VM_Version::supports_avx512bw()), ""); + assert(UseAVX > 0 && (vector_len == Assembler::AVX_512bit || (!needs_evex(dst, nds, src) || VM_Version::supports_avx512vl())), ""); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ _legacy_mode_bw, /* no_mask_reg */ true, /* uses_vl */ true); + int encode = vex_prefix_and_encode(dst->encoding(), nds->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F_38, &attributes); + emit_int16(0x3E, (0xC0 | encode)); +} + +void Assembler::vpmaxuw(XMMRegister dst, XMMRegister nds, Address src, int vector_len) { + assert(vector_len == AVX_128bit ? VM_Version::supports_avx() : + (vector_len == AVX_256bit ? VM_Version::supports_avx2() : VM_Version::supports_avx512bw()), ""); + assert(UseAVX > 0 && (vector_len == Assembler::AVX_512bit || (!needs_evex(dst, nds) || VM_Version::supports_avx512vl())), ""); + InstructionMark im(this); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ _legacy_mode_bw, /* no_mask_reg */ true, /* uses_vl */ true); + attributes.set_address_attributes(/* tuple_type */ EVEX_FV, /* input_size_in_bits */ EVEX_NObit); + vex_prefix(src, nds->encoding(), dst->encoding(), VEX_SIMD_66, VEX_OPCODE_0F_38, &attributes); + emit_int8((unsigned char)0x3E); + emit_operand(dst, src, 0); +} + +void Assembler::evpmaxuw(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len) { + assert(VM_Version::supports_avx512bw() && (vector_len == AVX_512bit || VM_Version::supports_avx512vl()), ""); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ false, /* uses_vl */ true); + attributes.set_is_evex_instruction(); + attributes.set_embedded_opmask_register_specifier(mask); + if (merge) { + attributes.reset_is_clear_context(); + } + int encode = vex_prefix_and_encode(dst->encoding(), nds->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F_38, &attributes); + emit_int16(0x3E, (0xC0 | encode)); +} + +void Assembler::evpmaxuw(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len) { + assert(VM_Version::supports_avx512bw() && (vector_len == AVX_512bit || VM_Version::supports_avx512vl()), ""); + InstructionMark im(this); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ false, /* uses_vl */ true); + attributes.set_is_evex_instruction(); + attributes.set_address_attributes(/* tuple_type */ EVEX_FV, /* input_size_in_bits */ EVEX_NObit); + attributes.set_embedded_opmask_register_specifier(mask); + if (merge) { + attributes.reset_is_clear_context(); + } + vex_prefix(src, nds->encoding(), dst->encoding(), VEX_SIMD_66, VEX_OPCODE_0F_38, &attributes); + emit_int8(0x3E); + emit_operand(dst, src, 0); +} + +void Assembler::vpmaxud(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len) { + assert(UseAVX > 0, ""); + assert((vector_len == Assembler::AVX_512bit || (!needs_evex(dst, nds, src) || VM_Version::supports_avx512vl())), ""); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ true, /* uses_vl */ true); + int encode = vex_prefix_and_encode(dst->encoding(), nds->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F_38, &attributes); + emit_int16(0x3F, (0xC0 | encode)); +} + +void Assembler::vpmaxud(XMMRegister dst, XMMRegister nds, Address src, int vector_len) { + assert(UseAVX > 0, ""); + assert((vector_len == Assembler::AVX_512bit || (!needs_evex(dst, nds) || VM_Version::supports_avx512vl())), ""); + InstructionMark im(this); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ true, /* uses_vl */ true); + attributes.set_address_attributes(/* tuple_type */ EVEX_FV, /* input_size_in_bits */ EVEX_NObit); + vex_prefix(src, nds->encoding(), dst->encoding(), VEX_SIMD_66, VEX_OPCODE_0F_38, &attributes); + emit_int8((unsigned char)0x3F); + emit_operand(dst, src, 0); +} + +void Assembler::evpmaxud(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len) { + assert(VM_Version::supports_evex(), ""); + assert(vector_len == AVX_512bit || VM_Version::supports_avx512vl(), ""); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ false, /* uses_vl */ true); + attributes.set_is_evex_instruction(); + attributes.set_embedded_opmask_register_specifier(mask); + if (merge) { + attributes.reset_is_clear_context(); + } + int encode = vex_prefix_and_encode(dst->encoding(), nds->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F_38, &attributes); + emit_int16(0x3F, (0xC0 | encode)); +} + +void Assembler::evpmaxud(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len) { + assert(VM_Version::supports_evex(), ""); + assert(vector_len == AVX_512bit || VM_Version::supports_avx512vl(), ""); + InstructionMark im(this); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ false, /* uses_vl */ true); + attributes.set_is_evex_instruction(); + attributes.set_address_attributes(/* tuple_type */ EVEX_FV, /* input_size_in_bits */ EVEX_NObit); + attributes.set_embedded_opmask_register_specifier(mask); + if (merge) { + attributes.reset_is_clear_context(); + } + vex_prefix(src, nds->encoding(), dst->encoding(), VEX_SIMD_66, VEX_OPCODE_0F_38, &attributes); + emit_int8(0x3F); + emit_operand(dst, src, 0); +} + +void Assembler::evpmaxuq(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len) { + assert(VM_Version::supports_evex(), ""); + assert(vector_len == AVX_512bit || VM_Version::supports_avx512vl(), ""); + InstructionAttr attributes(vector_len, /* vex_w */ true, /* legacy_mode */ false, /* no_mask_reg */ false, /* uses_vl */ true); + attributes.set_is_evex_instruction(); + attributes.set_embedded_opmask_register_specifier(mask); + if (merge) { + attributes.reset_is_clear_context(); + } + int encode = vex_prefix_and_encode(dst->encoding(), nds->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F_38, &attributes); + emit_int16(0x3F, (0xC0 | encode)); +} + +void Assembler::evpmaxuq(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len) { + assert(VM_Version::supports_evex(), ""); + assert(vector_len == AVX_512bit || VM_Version::supports_avx512vl(), ""); + InstructionMark im(this); + InstructionAttr attributes(vector_len, /* vex_w */ true, /* legacy_mode */ false, /* no_mask_reg */ false, /* uses_vl */ true); + attributes.set_is_evex_instruction(); + attributes.set_address_attributes(/* tuple_type */ EVEX_FV, /* input_size_in_bits */ EVEX_NObit); + attributes.set_embedded_opmask_register_specifier(mask); + if (merge) { + attributes.reset_is_clear_context(); + } + vex_prefix(src, nds->encoding(), dst->encoding(), VEX_SIMD_66, VEX_OPCODE_0F_38, &attributes); + emit_int8(0x3F); + emit_operand(dst, src, 0); +} + +// Shift packed integers left by specified number of bits. +void Assembler::psllw(XMMRegister dst, int shift) { + NOT_LP64(assert(VM_Version::supports_sse2(), "")); + InstructionAttr attributes(AVX_128bit, /* rex_w */ false, /* legacy_mode */ _legacy_mode_bw, /* no_mask_reg */ true, /* uses_vl */ true); + // XMM6 is for /6 encoding: 66 0F 71 /6 ib + int encode = simd_prefix_and_encode(xmm6, dst, dst, VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int24(0x71, (0xC0 | encode), shift & 0xFF); +} + +void Assembler::pslld(XMMRegister dst, int shift) { + NOT_LP64(assert(VM_Version::supports_sse2(), "")); + InstructionAttr attributes(AVX_128bit, /* rex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ true, /* uses_vl */ true); + // XMM6 is for /6 encoding: 66 0F 72 /6 ib + int encode = simd_prefix_and_encode(xmm6, dst, dst, VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int24(0x72, (0xC0 | encode), shift & 0xFF); +} + +void Assembler::psllq(XMMRegister dst, int shift) { + NOT_LP64(assert(VM_Version::supports_sse2(), "")); + InstructionAttr attributes(AVX_128bit, /* rex_w */ true, /* legacy_mode */ false, /* no_mask_reg */ true, /* uses_vl */ true); + // XMM6 is for /6 encoding: 66 0F 73 /6 ib + int encode = simd_prefix_and_encode(xmm6, dst, dst, VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int24(0x73, (0xC0 | encode), shift & 0xFF); +} + +void Assembler::psllw(XMMRegister dst, XMMRegister shift) { + NOT_LP64(assert(VM_Version::supports_sse2(), "")); + InstructionAttr attributes(AVX_128bit, /* rex_w */ false, /* legacy_mode */ _legacy_mode_bw, /* no_mask_reg */ true, /* uses_vl */ true); + int encode = simd_prefix_and_encode(dst, dst, shift, VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int16((unsigned char)0xF1, (0xC0 | encode)); +} + +void Assembler::pslld(XMMRegister dst, XMMRegister shift) { + NOT_LP64(assert(VM_Version::supports_sse2(), "")); + InstructionAttr attributes(AVX_128bit, /* rex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ true, /* uses_vl */ true); + int encode = simd_prefix_and_encode(dst, dst, shift, VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int16((unsigned char)0xF2, (0xC0 | encode)); +} + +void Assembler::psllq(XMMRegister dst, XMMRegister shift) { + NOT_LP64(assert(VM_Version::supports_sse2(), "")); + InstructionAttr attributes(AVX_128bit, /* rex_w */ VM_Version::supports_evex(), /* legacy_mode */ false, /* no_mask_reg */ true, /* uses_vl */ true); + attributes.set_rex_vex_w_reverted(); + int encode = simd_prefix_and_encode(dst, dst, shift, VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int16((unsigned char)0xF3, (0xC0 | encode)); +} + +void Assembler::vpsllw(XMMRegister dst, XMMRegister src, int shift, int vector_len) { + assert(UseAVX > 0, "requires some form of AVX"); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ _legacy_mode_bw, /* no_mask_reg */ true, /* uses_vl */ true); + // XMM6 is for /6 encoding: 66 0F 71 /6 ib + int encode = vex_prefix_and_encode(xmm6->encoding(), dst->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int24(0x71, (0xC0 | encode), shift & 0xFF); +} + +void Assembler::vpslld(XMMRegister dst, XMMRegister src, int shift, int vector_len) { + assert(UseAVX > 0, "requires some form of AVX"); + NOT_LP64(assert(VM_Version::supports_sse2(), "")); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ true, /* uses_vl */ true); + // XMM6 is for /6 encoding: 66 0F 72 /6 ib int encode = vex_prefix_and_encode(xmm6->encoding(), dst->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); emit_int24(0x72, (0xC0 | encode), shift & 0xFF); } @@ -10421,6 +10960,223 @@ void Assembler::evsubpd(XMMRegister dst, KRegister mask, XMMRegister nds, Addres emit_operand(dst, src, 0); } +void Assembler::evpaddsb(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len) { + assert(VM_Version::supports_avx512bw() && (vector_len == AVX_512bit || VM_Version::supports_avx512vl()), ""); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ false,/* uses_vl */ true); + attributes.set_is_evex_instruction(); + attributes.set_embedded_opmask_register_specifier(mask); + if (merge) { + attributes.reset_is_clear_context(); + } + int encode = vex_prefix_and_encode(dst->encoding(), nds->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int16((unsigned char)0xEC, (0xC0 | encode)); +} + +void Assembler::evpaddsb(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len) { + InstructionMark im(this); + assert(VM_Version::supports_avx512bw() && (vector_len == AVX_512bit || VM_Version::supports_avx512vl()), ""); + InstructionAttr attributes(vector_len, /* vex_w */ false,/* legacy_mode */ false, /* no_mask_reg */ false,/* uses_vl */ true); + attributes.set_address_attributes(/* tuple_type */ EVEX_FV,/* input_size_in_bits */ EVEX_NObit); + attributes.set_is_evex_instruction(); + attributes.set_embedded_opmask_register_specifier(mask); + if (merge) { + attributes.reset_is_clear_context(); + } + vex_prefix(src, nds->encoding(), dst->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int8((unsigned char)0xEC); + emit_operand(dst, src, 0); +} + +void Assembler::evpaddsw(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len) { + assert(VM_Version::supports_avx512bw() && (vector_len == AVX_512bit || VM_Version::supports_avx512vl()), ""); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ false,/* uses_vl */ true); + attributes.set_is_evex_instruction(); + attributes.set_embedded_opmask_register_specifier(mask); + if (merge) { + attributes.reset_is_clear_context(); + } + int encode = vex_prefix_and_encode(dst->encoding(), nds->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int16((unsigned char)0xED, (0xC0 | encode)); +} + +void Assembler::evpaddsw(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len) { + InstructionMark im(this); + assert(VM_Version::supports_avx512bw() && (vector_len == AVX_512bit || VM_Version::supports_avx512vl()), ""); + InstructionAttr attributes(vector_len, /* vex_w */ false,/* legacy_mode */ false, /* no_mask_reg */ false,/* uses_vl */ true); + attributes.set_address_attributes(/* tuple_type */ EVEX_FV,/* input_size_in_bits */ EVEX_NObit); + attributes.set_is_evex_instruction(); + attributes.set_embedded_opmask_register_specifier(mask); + if (merge) { + attributes.reset_is_clear_context(); + } + vex_prefix(src, nds->encoding(), dst->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int8((unsigned char)0xED); + emit_operand(dst, src, 0); +} + +void Assembler::evpaddusb(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len) { + assert(VM_Version::supports_avx512bw() && (vector_len == AVX_512bit || VM_Version::supports_avx512vl()), ""); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ false,/* uses_vl */ true); + attributes.set_is_evex_instruction(); + attributes.set_embedded_opmask_register_specifier(mask); + if (merge) { + attributes.reset_is_clear_context(); + } + int encode = vex_prefix_and_encode(dst->encoding(), nds->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int16((unsigned char)0xDC, (0xC0 | encode)); +} + +void Assembler::evpaddusb(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len) { + InstructionMark im(this); + assert(VM_Version::supports_avx512bw() && (vector_len == AVX_512bit || VM_Version::supports_avx512vl()), ""); + InstructionAttr attributes(vector_len, /* vex_w */ false,/* legacy_mode */ false, /* no_mask_reg */ false,/* uses_vl */ true); + attributes.set_address_attributes(/* tuple_type */ EVEX_FV,/* input_size_in_bits */ EVEX_NObit); + attributes.set_is_evex_instruction(); + attributes.set_embedded_opmask_register_specifier(mask); + if (merge) { + attributes.reset_is_clear_context(); + } + vex_prefix(src, nds->encoding(), dst->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int8((unsigned char)0xDC); + emit_operand(dst, src, 0); +} + +void Assembler::evpaddusw(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len) { + assert(VM_Version::supports_avx512bw() && (vector_len == AVX_512bit || VM_Version::supports_avx512vl()), ""); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ false,/* uses_vl */ true); + attributes.set_is_evex_instruction(); + attributes.set_embedded_opmask_register_specifier(mask); + if (merge) { + attributes.reset_is_clear_context(); + } + int encode = vex_prefix_and_encode(dst->encoding(), nds->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int16((unsigned char)0xDD, (0xC0 | encode)); +} + +void Assembler::evpaddusw(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len) { + InstructionMark im(this); + assert(VM_Version::supports_avx512bw() && (vector_len == AVX_512bit || VM_Version::supports_avx512vl()), ""); + InstructionAttr attributes(vector_len, /* vex_w */ false,/* legacy_mode */ false, /* no_mask_reg */ false,/* uses_vl */ true); + attributes.set_address_attributes(/* tuple_type */ EVEX_FV,/* input_size_in_bits */ EVEX_NObit); + attributes.set_is_evex_instruction(); + attributes.set_embedded_opmask_register_specifier(mask); + if (merge) { + attributes.reset_is_clear_context(); + } + vex_prefix(src, nds->encoding(), dst->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int8((unsigned char)0xDD); + emit_operand(dst, src, 0); +} + +void Assembler::evpsubsb(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len) { + assert(VM_Version::supports_avx512bw() && (vector_len == AVX_512bit || VM_Version::supports_avx512vl()), ""); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ false,/* uses_vl */ true); + attributes.set_is_evex_instruction(); + attributes.set_embedded_opmask_register_specifier(mask); + if (merge) { + attributes.reset_is_clear_context(); + } + int encode = vex_prefix_and_encode(dst->encoding(), nds->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int16((unsigned char)0xE8, (0xC0 | encode)); +} + +void Assembler::evpsubsb(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len) { + InstructionMark im(this); + assert(VM_Version::supports_avx512bw() && (vector_len == AVX_512bit || VM_Version::supports_avx512vl()), ""); + InstructionAttr attributes(vector_len, /* vex_w */ false,/* legacy_mode */ false, /* no_mask_reg */ false,/* uses_vl */ true); + attributes.set_address_attributes(/* tuple_type */ EVEX_FV,/* input_size_in_bits */ EVEX_NObit); + attributes.set_is_evex_instruction(); + attributes.set_embedded_opmask_register_specifier(mask); + if (merge) { + attributes.reset_is_clear_context(); + } + vex_prefix(src, nds->encoding(), dst->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int8((unsigned char)0xE8); + emit_operand(dst, src, 0); +} + +void Assembler::evpsubsw(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len) { + assert(VM_Version::supports_avx512bw() && (vector_len == AVX_512bit || VM_Version::supports_avx512vl()), ""); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ false,/* uses_vl */ true); + attributes.set_is_evex_instruction(); + attributes.set_embedded_opmask_register_specifier(mask); + if (merge) { + attributes.reset_is_clear_context(); + } + int encode = vex_prefix_and_encode(dst->encoding(), nds->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int16((unsigned char)0xE9, (0xC0 | encode)); +} + +void Assembler::evpsubsw(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len) { + InstructionMark im(this); + assert(VM_Version::supports_avx512bw() && (vector_len == AVX_512bit || VM_Version::supports_avx512vl()), ""); + InstructionAttr attributes(vector_len, /* vex_w */ false,/* legacy_mode */ false, /* no_mask_reg */ false,/* uses_vl */ true); + attributes.set_address_attributes(/* tuple_type */ EVEX_FV,/* input_size_in_bits */ EVEX_NObit); + attributes.set_is_evex_instruction(); + attributes.set_embedded_opmask_register_specifier(mask); + if (merge) { + attributes.reset_is_clear_context(); + } + vex_prefix(src, nds->encoding(), dst->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int8((unsigned char)0xE9); + emit_operand(dst, src, 0); +} + +void Assembler::evpsubusb(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len) { + assert(VM_Version::supports_avx512bw() && (vector_len == AVX_512bit || VM_Version::supports_avx512vl()), ""); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ false,/* uses_vl */ true); + attributes.set_is_evex_instruction(); + attributes.set_embedded_opmask_register_specifier(mask); + if (merge) { + attributes.reset_is_clear_context(); + } + int encode = vex_prefix_and_encode(dst->encoding(), nds->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int16((unsigned char)0xD8, (0xC0 | encode)); +} + +void Assembler::evpsubusb(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len) { + InstructionMark im(this); + assert(VM_Version::supports_avx512bw() && (vector_len == AVX_512bit || VM_Version::supports_avx512vl()), ""); + InstructionAttr attributes(vector_len, /* vex_w */ false,/* legacy_mode */ false, /* no_mask_reg */ false,/* uses_vl */ true); + attributes.set_address_attributes(/* tuple_type */ EVEX_FV,/* input_size_in_bits */ EVEX_NObit); + attributes.set_is_evex_instruction(); + attributes.set_embedded_opmask_register_specifier(mask); + if (merge) { + attributes.reset_is_clear_context(); + } + vex_prefix(src, nds->encoding(), dst->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int8((unsigned char)0xD8); + emit_operand(dst, src, 0); +} + +void Assembler::evpsubusw(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len) { + assert(VM_Version::supports_avx512bw() && (vector_len == AVX_512bit || VM_Version::supports_avx512vl()), ""); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ false,/* uses_vl */ true); + attributes.set_is_evex_instruction(); + attributes.set_embedded_opmask_register_specifier(mask); + if (merge) { + attributes.reset_is_clear_context(); + } + int encode = vex_prefix_and_encode(dst->encoding(), nds->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int16((unsigned char)0xD9, (0xC0 | encode)); +} + + +void Assembler::evpsubusw(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len) { + InstructionMark im(this); + assert(VM_Version::supports_avx512bw() && (vector_len == AVX_512bit || VM_Version::supports_avx512vl()), ""); + InstructionAttr attributes(vector_len, /* vex_w */ false,/* legacy_mode */ false, /* no_mask_reg */ false,/* uses_vl */ true); + attributes.set_address_attributes(/* tuple_type */ EVEX_FV,/* input_size_in_bits */ EVEX_NObit); + attributes.set_is_evex_instruction(); + attributes.set_embedded_opmask_register_specifier(mask); + if (merge) { + attributes.reset_is_clear_context(); + } + vex_prefix(src, nds->encoding(), dst->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int8((unsigned char)0xD9); + emit_operand(dst, src, 0); +} + void Assembler::evpmullw(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len) { assert(VM_Version::supports_avx512bw() && (vector_len == AVX_512bit || VM_Version::supports_avx512vl()), ""); InstructionAttr attributes(vector_len, /* vex_w */ false,/* legacy_mode */ false, /* no_mask_reg */ false,/* uses_vl */ true); @@ -10504,6 +11260,18 @@ void Assembler::evpmullq(XMMRegister dst, KRegister mask, XMMRegister nds, Addre emit_operand(dst, src, 0); } +void Assembler::evpmulhw(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len) { + assert(VM_Version::supports_avx512bw() && (vector_len == AVX_512bit || VM_Version::supports_avx512vl()), ""); + InstructionAttr attributes(vector_len, /* vex_w */ false,/* legacy_mode */ false, /* no_mask_reg */ false,/* uses_vl */ true); + attributes.set_is_evex_instruction(); + attributes.set_embedded_opmask_register_specifier(mask); + if (merge) { + attributes.reset_is_clear_context(); + } + int encode = vex_prefix_and_encode(dst->encoding(), nds->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F, &attributes); + emit_int16((unsigned char)0xE5, (0xC0 | encode)); +} + void Assembler::evmulps(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len) { assert(VM_Version::supports_evex(), ""); assert(vector_len == AVX_512bit || VM_Version::supports_avx512vl(), ""); @@ -16172,3 +16940,28 @@ void Assembler::evpermt2b(XMMRegister dst, XMMRegister nds, XMMRegister src, int int encode = vex_prefix_and_encode(dst->encoding(), nds->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F_38, &attributes); emit_int16(0x7D, (0xC0 | encode)); } + +void Assembler::evpermt2w(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len) { + assert(vector_len <= AVX_256bit ? VM_Version::supports_avx512vlbw() : VM_Version::supports_avx512bw(), ""); + InstructionAttr attributes(vector_len, /* vex_w */ true, /* legacy_mode */ false, /* no_mask_reg */ true, /* uses_vl */ true); + attributes.set_is_evex_instruction(); + int encode = vex_prefix_and_encode(dst->encoding(), nds->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F_38, &attributes); + emit_int16(0x7D, (0xC0 | encode)); +} + +void Assembler::evpermt2d(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len) { + assert(VM_Version::supports_evex() && (vector_len == Assembler::AVX_512bit || VM_Version::supports_avx512vl()), ""); + InstructionAttr attributes(vector_len, /* vex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ true, /* uses_vl */ true); + attributes.set_is_evex_instruction(); + int encode = vex_prefix_and_encode(dst->encoding(), nds->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F_38, &attributes); + emit_int16(0x7E, (0xC0 | encode)); +} + +void Assembler::evpermt2q(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len) { + assert(VM_Version::supports_evex() && (vector_len == Assembler::AVX_512bit || VM_Version::supports_avx512vl()), ""); + InstructionAttr attributes(vector_len, /* vex_w */ true, /* legacy_mode */ false, /* no_mask_reg */ true, /* uses_vl */ true); + attributes.set_is_evex_instruction(); + int encode = vex_prefix_and_encode(dst->encoding(), nds->encoding(), src->encoding(), VEX_SIMD_66, VEX_OPCODE_0F_38, &attributes); + emit_int16(0x7E, (0xC0 | encode)); +} + diff --git a/src/hotspot/cpu/x86/assembler_x86.hpp b/src/hotspot/cpu/x86/assembler_x86.hpp index 36dfafc8b5d..420c28254d5 100644 --- a/src/hotspot/cpu/x86/assembler_x86.hpp +++ b/src/hotspot/cpu/x86/assembler_x86.hpp @@ -780,6 +780,7 @@ class Assembler : public AbstractAssembler { bool needs_eevex(Register reg1, Register reg2 = noreg, Register reg3 = noreg); bool needs_eevex(int enc1, int enc2 = -1, int enc3 = -1); + NOT_PRODUCT(bool needs_evex(XMMRegister reg1, XMMRegister reg2 = xnoreg, XMMRegister reg3 = xnoreg);) void rex_prefix(Address adr, XMMRegister xreg, VexSimdPrefix pre, VexOpcode opc, bool rex_w); @@ -1756,6 +1757,7 @@ class Assembler : public AbstractAssembler { void evmovdqub(XMMRegister dst, KRegister mask, Address src, bool merge, int vector_len); void evmovdqub(Address dst, KRegister mask, XMMRegister src, bool merge, int vector_len); + void evmovdquw(XMMRegister dst, XMMRegister src, int vector_len); void evmovdquw(XMMRegister dst, Address src, int vector_len); void evmovdquw(Address dst, XMMRegister src, int vector_len); void evmovdquw(XMMRegister dst, KRegister mask, XMMRegister src, bool merge, int vector_len); @@ -1969,6 +1971,9 @@ class Assembler : public AbstractAssembler { void evpermi2ps(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len); void evpermi2pd(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len); void evpermt2b(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len); + void evpermt2w(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len); + void evpermt2d(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len); + void evpermt2q(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len); void pause(); @@ -1992,9 +1997,12 @@ class Assembler : public AbstractAssembler { void evpcmpgtb(KRegister kdst, XMMRegister nds, Address src, int vector_len); void evpcmpgtb(KRegister kdst, KRegister mask, XMMRegister nds, Address src, int vector_len); + void evpcmpub(KRegister kdst, XMMRegister nds, XMMRegister src, ComparisonPredicate vcc, int vector_len); + void evpcmpuw(KRegister kdst, XMMRegister nds, XMMRegister src, ComparisonPredicate vcc, int vector_len); void evpcmpuw(KRegister kdst, XMMRegister nds, Address src, ComparisonPredicate vcc, int vector_len); + void evpcmpud(KRegister kdst, XMMRegister nds, XMMRegister src, ComparisonPredicate vcc, int vector_len); void evpcmpuq(KRegister kdst, XMMRegister nds, XMMRegister src, ComparisonPredicate vcc, int vector_len); void pcmpeqw(XMMRegister dst, XMMRegister src); @@ -2678,6 +2686,40 @@ class Assembler : public AbstractAssembler { void vpaddd(XMMRegister dst, XMMRegister nds, Address src, int vector_len); void vpaddq(XMMRegister dst, XMMRegister nds, Address src, int vector_len); + // Saturating packed insturctions. + void vpaddsb(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len); + void vpaddsw(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len); + void vpaddusb(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len); + void vpaddusw(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len); + void evpaddsb(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len); + void evpaddsw(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len); + void evpaddusb(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len); + void evpaddusw(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len); + void vpsubsb(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len); + void vpsubsw(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len); + void vpsubusb(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len); + void vpsubusw(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len); + void evpsubsb(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len); + void evpsubsw(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len); + void evpsubusb(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len); + void evpsubusw(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len); + void vpaddsb(XMMRegister dst, XMMRegister nds, Address src, int vector_len); + void vpaddsw(XMMRegister dst, XMMRegister nds, Address src, int vector_len); + void vpaddusb(XMMRegister dst, XMMRegister nds, Address src, int vector_len); + void vpaddusw(XMMRegister dst, XMMRegister nds, Address src, int vector_len); + void evpaddsb(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len); + void evpaddsw(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len); + void evpaddusb(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len); + void evpaddusw(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len); + void vpsubsb(XMMRegister dst, XMMRegister nds, Address src, int vector_len); + void vpsubsw(XMMRegister dst, XMMRegister nds, Address src, int vector_len); + void vpsubusb(XMMRegister dst, XMMRegister nds, Address src, int vector_len); + void vpsubusw(XMMRegister dst, XMMRegister nds, Address src, int vector_len); + void evpsubsb(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len); + void evpsubsw(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len); + void evpsubusb(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len); + void evpsubusw(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len); + // Leaf level assembler routines for masked operations. void evpaddb(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len); void evpaddb(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len); @@ -2703,6 +2745,7 @@ class Assembler : public AbstractAssembler { void evsubps(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len); void evsubpd(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len); void evsubpd(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len); + void evpmulhw(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len); void evpmullw(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len); void evpmullw(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len); void evpmulld(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len); @@ -2821,7 +2864,6 @@ class Assembler : public AbstractAssembler { void psubw(XMMRegister dst, XMMRegister src); void psubd(XMMRegister dst, XMMRegister src); void psubq(XMMRegister dst, XMMRegister src); - void vpsubusb(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len); void vpsubb(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len); void vpsubw(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len); void vpsubd(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len); @@ -2839,6 +2881,7 @@ class Assembler : public AbstractAssembler { void vpmulld(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len); void evpmullq(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len); void vpmuludq(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len); + void vpmuldq(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len); void vpmullw(XMMRegister dst, XMMRegister nds, Address src, int vector_len); void vpmulld(XMMRegister dst, XMMRegister nds, Address src, int vector_len); void evpmullq(XMMRegister dst, XMMRegister nds, Address src, int vector_len); @@ -2847,7 +2890,6 @@ class Assembler : public AbstractAssembler { // Minimum of packed integers void pminsb(XMMRegister dst, XMMRegister src); void vpminsb(XMMRegister dst, XMMRegister src1, XMMRegister src2, int vector_len); - void vpminub(XMMRegister dst, XMMRegister src1, XMMRegister src2, int vector_len); void pminsw(XMMRegister dst, XMMRegister src); void vpminsw(XMMRegister dst, XMMRegister src1, XMMRegister src2, int vector_len); void pminsd(XMMRegister dst, XMMRegister src); @@ -2871,6 +2913,38 @@ class Assembler : public AbstractAssembler { void maxpd(XMMRegister dst, XMMRegister src); void vmaxpd(XMMRegister dst, XMMRegister src1, XMMRegister src2, int vector_len); + // Unsigned maximum packed integers. + void vpmaxub(XMMRegister dst, XMMRegister src1, XMMRegister src2, int vector_len); + void vpmaxuw(XMMRegister dst, XMMRegister src1, XMMRegister src2, int vector_len); + void vpmaxud(XMMRegister dst, XMMRegister src1, XMMRegister src2, int vector_len); + void vpmaxub(XMMRegister dst, XMMRegister src1, Address src2, int vector_len); + void vpmaxuw(XMMRegister dst, XMMRegister src1, Address src2, int vector_len); + void vpmaxud(XMMRegister dst, XMMRegister src1, Address src2, int vector_len); + void evpmaxub(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len); + void evpmaxuw(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len); + void evpmaxud(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len); + void evpmaxuq(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len); + void evpmaxub(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len); + void evpmaxuw(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len); + void evpmaxud(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len); + void evpmaxuq(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len); + + // Unsigned minimum packed integers. + void vpminub(XMMRegister dst, XMMRegister src1, XMMRegister src2, int vector_len); + void vpminuw(XMMRegister dst, XMMRegister src1, XMMRegister src2, int vector_len); + void vpminud(XMMRegister dst, XMMRegister src1, XMMRegister src2, int vector_len); + void vpminub(XMMRegister dst, XMMRegister src1, Address src2, int vector_len); + void vpminuw(XMMRegister dst, XMMRegister src1, Address src2, int vector_len); + void vpminud(XMMRegister dst, XMMRegister src1, Address src2, int vector_len); + void evpminub(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len); + void evpminuw(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len); + void evpminud(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len); + void evpminuq(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len); + void evpminub(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len); + void evpminuw(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len); + void evpminud(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len); + void evpminuq(XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len); + // Shift left packed integers void psllw(XMMRegister dst, int shift); void pslld(XMMRegister dst, int shift); diff --git a/src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp b/src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp index 6d9812c11ae..64265a96909 100644 --- a/src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp +++ b/src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp @@ -1333,10 +1333,7 @@ void LIR_Assembler::mem2reg(LIR_Opr src, LIR_Opr dest, BasicType type, LIR_Patch } #endif - if (!(UseZGC && !ZGenerational)) { - // Load barrier has not yet been applied, so ZGC can't verify the oop here - __ verify_oop(dest->as_register()); - } + __ verify_oop(dest->as_register()); } } diff --git a/src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp b/src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp index 0eab2de2c64..61c8036b1ce 100644 --- a/src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp +++ b/src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp @@ -477,9 +477,9 @@ void C2_MacroAssembler::fast_unlock(Register objReg, Register boxReg, Register t // StoreLoad achieves this. membar(StoreLoad); - // Check if the entry lists are empty. - movptr(boxReg, Address(tmpReg, OM_OFFSET_NO_MONITOR_VALUE_TAG(cxq))); - orptr(boxReg, Address(tmpReg, OM_OFFSET_NO_MONITOR_VALUE_TAG(EntryList))); + // Check if the entry lists are empty (EntryList first - by convention). + movptr(boxReg, Address(tmpReg, OM_OFFSET_NO_MONITOR_VALUE_TAG(EntryList))); + orptr(boxReg, Address(tmpReg, OM_OFFSET_NO_MONITOR_VALUE_TAG(cxq))); jccb(Assembler::zero, LSuccess); // If so we are done. // Check if there is a successor. @@ -806,9 +806,9 @@ void C2_MacroAssembler::fast_unlock_lightweight(Register obj, Register reg_rax, // StoreLoad achieves this. membar(StoreLoad); - // Check if the entry lists are empty. - movptr(reg_rax, cxq_address); - orptr(reg_rax, EntryList_address); + // Check if the entry lists are empty (EntryList first - by convention). + movptr(reg_rax, EntryList_address); + orptr(reg_rax, cxq_address); jccb(Assembler::zero, unlocked); // If so we are done. // Check if there is a successor. @@ -837,8 +837,9 @@ void C2_MacroAssembler::fast_unlock_lightweight(Register obj, Register reg_rax, #ifdef ASSERT // Check that unlocked label is reached with ZF set. Label zf_correct; + Label zf_bad_zero; jcc(Assembler::zero, zf_correct); - stop("Fast Unlock ZF != 1"); + jmp(zf_bad_zero); #endif bind(slow_path); @@ -847,8 +848,10 @@ void C2_MacroAssembler::fast_unlock_lightweight(Register obj, Register reg_rax, } #ifdef ASSERT // Check that stub->continuation() label is reached with ZF not set. - jccb(Assembler::notZero, zf_correct); + jcc(Assembler::notZero, zf_correct); stop("Fast Unlock ZF != 0"); + bind(zf_bad_zero); + stop("Fast Unlock ZF != 1"); bind(zf_correct); #endif // C2 uses the value of ZF to determine the continuation. @@ -936,6 +939,72 @@ void C2_MacroAssembler::pminmax(int opcode, BasicType elem_bt, XMMRegister dst, } } +void C2_MacroAssembler::vpuminmax(int opcode, BasicType elem_bt, XMMRegister dst, + XMMRegister src1, Address src2, int vlen_enc) { + assert(opcode == Op_UMinV || opcode == Op_UMaxV, "sanity"); + if (opcode == Op_UMinV) { + switch(elem_bt) { + case T_BYTE: vpminub(dst, src1, src2, vlen_enc); break; + case T_SHORT: vpminuw(dst, src1, src2, vlen_enc); break; + case T_INT: vpminud(dst, src1, src2, vlen_enc); break; + case T_LONG: evpminuq(dst, k0, src1, src2, false, vlen_enc); break; + default: fatal("Unsupported type %s", type2name(elem_bt)); break; + } + } else { + assert(opcode == Op_UMaxV, "required"); + switch(elem_bt) { + case T_BYTE: vpmaxub(dst, src1, src2, vlen_enc); break; + case T_SHORT: vpmaxuw(dst, src1, src2, vlen_enc); break; + case T_INT: vpmaxud(dst, src1, src2, vlen_enc); break; + case T_LONG: evpmaxuq(dst, k0, src1, src2, false, vlen_enc); break; + default: fatal("Unsupported type %s", type2name(elem_bt)); break; + } + } +} + +void C2_MacroAssembler::vpuminmaxq(int opcode, XMMRegister dst, XMMRegister src1, XMMRegister src2, XMMRegister xtmp1, XMMRegister xtmp2, int vlen_enc) { + // T1 = -1 + vpcmpeqq(xtmp1, xtmp1, xtmp1, vlen_enc); + // T1 = -1 << 63 + vpsllq(xtmp1, xtmp1, 63, vlen_enc); + // Convert SRC2 to signed value i.e. T2 = T1 + SRC2 + vpaddq(xtmp2, xtmp1, src2, vlen_enc); + // Convert SRC1 to signed value i.e. T1 = T1 + SRC1 + vpaddq(xtmp1, xtmp1, src1, vlen_enc); + // Mask = T2 > T1 + vpcmpgtq(xtmp1, xtmp2, xtmp1, vlen_enc); + if (opcode == Op_UMaxV) { + // Res = Mask ? Src2 : Src1 + vpblendvb(dst, src1, src2, xtmp1, vlen_enc); + } else { + // Res = Mask ? Src1 : Src2 + vpblendvb(dst, src2, src1, xtmp1, vlen_enc); + } +} + +void C2_MacroAssembler::vpuminmax(int opcode, BasicType elem_bt, XMMRegister dst, + XMMRegister src1, XMMRegister src2, int vlen_enc) { + assert(opcode == Op_UMinV || opcode == Op_UMaxV, "sanity"); + if (opcode == Op_UMinV) { + switch(elem_bt) { + case T_BYTE: vpminub(dst, src1, src2, vlen_enc); break; + case T_SHORT: vpminuw(dst, src1, src2, vlen_enc); break; + case T_INT: vpminud(dst, src1, src2, vlen_enc); break; + case T_LONG: evpminuq(dst, k0, src1, src2, false, vlen_enc); break; + default: fatal("Unsupported type %s", type2name(elem_bt)); break; + } + } else { + assert(opcode == Op_UMaxV, "required"); + switch(elem_bt) { + case T_BYTE: vpmaxub(dst, src1, src2, vlen_enc); break; + case T_SHORT: vpmaxuw(dst, src1, src2, vlen_enc); break; + case T_INT: vpmaxud(dst, src1, src2, vlen_enc); break; + case T_LONG: evpmaxuq(dst, k0, src1, src2, false, vlen_enc); break; + default: fatal("Unsupported type %s", type2name(elem_bt)); break; + } + } +} + void C2_MacroAssembler::vpminmax(int opcode, BasicType elem_bt, XMMRegister dst, XMMRegister src1, XMMRegister src2, int vlen_enc) { @@ -2359,6 +2428,10 @@ void C2_MacroAssembler::evmovdqu(BasicType type, KRegister kmask, Address dst, X MacroAssembler::evmovdqu(type, kmask, dst, src, merge, vector_len); } +void C2_MacroAssembler::evmovdqu(BasicType type, KRegister kmask, XMMRegister dst, XMMRegister src, bool merge, int vector_len) { + MacroAssembler::evmovdqu(type, kmask, dst, src, merge, vector_len); +} + void C2_MacroAssembler::vmovmask(BasicType elem_bt, XMMRegister dst, Address src, XMMRegister mask, int vec_enc) { switch(elem_bt) { @@ -2657,7 +2730,6 @@ void C2_MacroAssembler::vectortest(BasicType bt, XMMRegister src1, XMMRegister s } void C2_MacroAssembler::vpadd(BasicType elem_bt, XMMRegister dst, XMMRegister src1, XMMRegister src2, int vlen_enc) { - assert(UseAVX >= 2, "required"); #ifdef ASSERT bool is_bw = ((elem_bt == T_BYTE) || (elem_bt == T_SHORT)); bool is_bw_supported = VM_Version::supports_avx512bw(); @@ -4631,7 +4703,126 @@ void C2_MacroAssembler::evmasked_op(int ideal_opc, BasicType eType, KRegister ma case Op_RotateLeftV: evrold(eType, dst, mask, src1, imm8, merge, vlen_enc); break; default: - fatal("Unsupported masked operation"); break; + fatal("Unsupported operation %s", NodeClassNames[ideal_opc]); + break; + } +} + +void C2_MacroAssembler::evmasked_saturating_op(int ideal_opc, BasicType elem_bt, KRegister mask, XMMRegister dst, XMMRegister src1, + XMMRegister src2, bool is_unsigned, bool merge, int vlen_enc) { + if (is_unsigned) { + evmasked_saturating_unsigned_op(ideal_opc, elem_bt, mask, dst, src1, src2, merge, vlen_enc); + } else { + evmasked_saturating_signed_op(ideal_opc, elem_bt, mask, dst, src1, src2, merge, vlen_enc); + } +} + +void C2_MacroAssembler::evmasked_saturating_signed_op(int ideal_opc, BasicType elem_bt, KRegister mask, XMMRegister dst, + XMMRegister src1, XMMRegister src2, bool merge, int vlen_enc) { + switch (elem_bt) { + case T_BYTE: + if (ideal_opc == Op_SaturatingAddV) { + evpaddsb(dst, mask, src1, src2, merge, vlen_enc); + } else { + assert(ideal_opc == Op_SaturatingSubV, ""); + evpsubsb(dst, mask, src1, src2, merge, vlen_enc); + } + break; + case T_SHORT: + if (ideal_opc == Op_SaturatingAddV) { + evpaddsw(dst, mask, src1, src2, merge, vlen_enc); + } else { + assert(ideal_opc == Op_SaturatingSubV, ""); + evpsubsw(dst, mask, src1, src2, merge, vlen_enc); + } + break; + default: + fatal("Unsupported type %s", type2name(elem_bt)); + break; + } +} + +void C2_MacroAssembler::evmasked_saturating_unsigned_op(int ideal_opc, BasicType elem_bt, KRegister mask, XMMRegister dst, + XMMRegister src1, XMMRegister src2, bool merge, int vlen_enc) { + switch (elem_bt) { + case T_BYTE: + if (ideal_opc == Op_SaturatingAddV) { + evpaddusb(dst, mask, src1, src2, merge, vlen_enc); + } else { + assert(ideal_opc == Op_SaturatingSubV, ""); + evpsubusb(dst, mask, src1, src2, merge, vlen_enc); + } + break; + case T_SHORT: + if (ideal_opc == Op_SaturatingAddV) { + evpaddusw(dst, mask, src1, src2, merge, vlen_enc); + } else { + assert(ideal_opc == Op_SaturatingSubV, ""); + evpsubusw(dst, mask, src1, src2, merge, vlen_enc); + } + break; + default: + fatal("Unsupported type %s", type2name(elem_bt)); + break; + } +} + +void C2_MacroAssembler::evmasked_saturating_op(int ideal_opc, BasicType elem_bt, KRegister mask, XMMRegister dst, XMMRegister src1, + Address src2, bool is_unsigned, bool merge, int vlen_enc) { + if (is_unsigned) { + evmasked_saturating_unsigned_op(ideal_opc, elem_bt, mask, dst, src1, src2, merge, vlen_enc); + } else { + evmasked_saturating_signed_op(ideal_opc, elem_bt, mask, dst, src1, src2, merge, vlen_enc); + } +} + +void C2_MacroAssembler::evmasked_saturating_signed_op(int ideal_opc, BasicType elem_bt, KRegister mask, XMMRegister dst, + XMMRegister src1, Address src2, bool merge, int vlen_enc) { + switch (elem_bt) { + case T_BYTE: + if (ideal_opc == Op_SaturatingAddV) { + evpaddsb(dst, mask, src1, src2, merge, vlen_enc); + } else { + assert(ideal_opc == Op_SaturatingSubV, ""); + evpsubsb(dst, mask, src1, src2, merge, vlen_enc); + } + break; + case T_SHORT: + if (ideal_opc == Op_SaturatingAddV) { + evpaddsw(dst, mask, src1, src2, merge, vlen_enc); + } else { + assert(ideal_opc == Op_SaturatingSubV, ""); + evpsubsw(dst, mask, src1, src2, merge, vlen_enc); + } + break; + default: + fatal("Unsupported type %s", type2name(elem_bt)); + break; + } +} + +void C2_MacroAssembler::evmasked_saturating_unsigned_op(int ideal_opc, BasicType elem_bt, KRegister mask, XMMRegister dst, + XMMRegister src1, Address src2, bool merge, int vlen_enc) { + switch (elem_bt) { + case T_BYTE: + if (ideal_opc == Op_SaturatingAddV) { + evpaddusb(dst, mask, src1, src2, merge, vlen_enc); + } else { + assert(ideal_opc == Op_SaturatingSubV, ""); + evpsubusb(dst, mask, src1, src2, merge, vlen_enc); + } + break; + case T_SHORT: + if (ideal_opc == Op_SaturatingAddV) { + evpaddusw(dst, mask, src1, src2, merge, vlen_enc); + } else { + assert(ideal_opc == Op_SaturatingSubV, ""); + evpsubusw(dst, mask, src1, src2, merge, vlen_enc); + } + break; + default: + fatal("Unsupported type %s", type2name(elem_bt)); + break; } } @@ -4721,6 +4912,10 @@ void C2_MacroAssembler::evmasked_op(int ideal_opc, BasicType eType, KRegister ma evpmaxs(eType, dst, mask, src1, src2, merge, vlen_enc); break; case Op_MinV: evpmins(eType, dst, mask, src1, src2, merge, vlen_enc); break; + case Op_UMinV: + evpminu(eType, dst, mask, src1, src2, merge, vlen_enc); break; + case Op_UMaxV: + evpmaxu(eType, dst, mask, src1, src2, merge, vlen_enc); break; case Op_XorV: evxor(eType, dst, mask, src1, src2, merge, vlen_enc); break; case Op_OrV: @@ -4728,7 +4923,8 @@ void C2_MacroAssembler::evmasked_op(int ideal_opc, BasicType eType, KRegister ma case Op_AndV: evand(eType, dst, mask, src1, src2, merge, vlen_enc); break; default: - fatal("Unsupported masked operation"); break; + fatal("Unsupported operation %s", NodeClassNames[ideal_opc]); + break; } } @@ -4781,6 +4977,10 @@ void C2_MacroAssembler::evmasked_op(int ideal_opc, BasicType eType, KRegister ma evpmaxs(eType, dst, mask, src1, src2, merge, vlen_enc); break; case Op_MinV: evpmins(eType, dst, mask, src1, src2, merge, vlen_enc); break; + case Op_UMaxV: + evpmaxu(eType, dst, mask, src1, src2, merge, vlen_enc); break; + case Op_UMinV: + evpminu(eType, dst, mask, src1, src2, merge, vlen_enc); break; case Op_XorV: evxor(eType, dst, mask, src1, src2, merge, vlen_enc); break; case Op_OrV: @@ -4788,7 +4988,8 @@ void C2_MacroAssembler::evmasked_op(int ideal_opc, BasicType eType, KRegister ma case Op_AndV: evand(eType, dst, mask, src1, src2, merge, vlen_enc); break; default: - fatal("Unsupported masked operation"); break; + fatal("Unsupported operation %s", NodeClassNames[ideal_opc]); + break; } } @@ -6476,6 +6677,369 @@ void C2_MacroAssembler::vector_rearrange_int_float(BasicType bt, XMMRegister dst } } +void C2_MacroAssembler::vector_saturating_op(int ideal_opc, BasicType elem_bt, XMMRegister dst, XMMRegister src1, XMMRegister src2, int vlen_enc) { + switch(elem_bt) { + case T_BYTE: + if (ideal_opc == Op_SaturatingAddV) { + vpaddsb(dst, src1, src2, vlen_enc); + } else { + assert(ideal_opc == Op_SaturatingSubV, ""); + vpsubsb(dst, src1, src2, vlen_enc); + } + break; + case T_SHORT: + if (ideal_opc == Op_SaturatingAddV) { + vpaddsw(dst, src1, src2, vlen_enc); + } else { + assert(ideal_opc == Op_SaturatingSubV, ""); + vpsubsw(dst, src1, src2, vlen_enc); + } + break; + default: + fatal("Unsupported type %s", type2name(elem_bt)); + break; + } +} + +void C2_MacroAssembler::vector_saturating_unsigned_op(int ideal_opc, BasicType elem_bt, XMMRegister dst, XMMRegister src1, XMMRegister src2, int vlen_enc) { + switch(elem_bt) { + case T_BYTE: + if (ideal_opc == Op_SaturatingAddV) { + vpaddusb(dst, src1, src2, vlen_enc); + } else { + assert(ideal_opc == Op_SaturatingSubV, ""); + vpsubusb(dst, src1, src2, vlen_enc); + } + break; + case T_SHORT: + if (ideal_opc == Op_SaturatingAddV) { + vpaddusw(dst, src1, src2, vlen_enc); + } else { + assert(ideal_opc == Op_SaturatingSubV, ""); + vpsubusw(dst, src1, src2, vlen_enc); + } + break; + default: + fatal("Unsupported type %s", type2name(elem_bt)); + break; + } +} + +void C2_MacroAssembler::vector_sub_dq_saturating_unsigned_evex(BasicType elem_bt, XMMRegister dst, XMMRegister src1, + XMMRegister src2, KRegister ktmp, int vlen_enc) { + // For unsigned subtraction, overflow happens when magnitude of second input is greater than first input. + // overflow_mask = Inp1 Inp1 + MIN_VALUE < Inp2 + MIN_VALUE + vpgenmin_value(elem_bt, xtmp1, xtmp1, vlen_enc, true); + vpadd(elem_bt, xtmp2, src1, xtmp1, vlen_enc); + vpadd(elem_bt, xtmp1, src2, xtmp1, vlen_enc); + + vpcmpgt(elem_bt, xtmp2, xtmp1, xtmp2, vlen_enc); + + // Res = INP1 - INP2 (non-commutative and non-associative) + vpsub(elem_bt, dst, src1, src2, vlen_enc); + // Res = Mask ? Zero : Res + vpxor(xtmp1, xtmp1, xtmp1, vlen_enc); + vpblendvb(dst, dst, xtmp1, xtmp2, vlen_enc); +} + +void C2_MacroAssembler::vector_add_dq_saturating_unsigned_evex(BasicType elem_bt, XMMRegister dst, XMMRegister src1, XMMRegister src2, + XMMRegister xtmp1, XMMRegister xtmp2, KRegister ktmp, int vlen_enc) { + // Unsigned values ranges comprise of only +ve numbers, thus there exist only an upper bound saturation. + // overflow_mask = (SRC1 + SRC2) >> 31 == 1 +// +// We empirically determined its semantic equivalence to following reduced expression +// overflow_mask = (a + b) = Res + MIN_VALUE + vpadd(elem_bt, xtmp2, xtmp2, dst, vlen_enc); + // Compute overflow detection mask = Res<1> >> 31(I)/63(L)) == 1 + vpxor(xtmp1, dst, src1, vlen_enc); + vpxor(xtmp2, dst, src2, vlen_enc); + vpand(xtmp2, xtmp1, xtmp2, vlen_enc); + } else { + assert(ideal_opc == Op_SaturatingSubV, ""); + // res = src1 - src2 + vpsub(elem_bt, dst, src1, src2, vlen_enc); + // Overflow occurs when both inputs have opposite polarity and + // result polarity does not comply with first input polarity. + // overflow = ((src1 ^ src2) & (res ^ src1) >>> 31(I)/63(L)) == 1; + vpxor(xtmp1, src1, src2, vlen_enc); + vpxor(xtmp2, dst, src1, vlen_enc); + vpand(xtmp2, xtmp1, xtmp2, vlen_enc); + } + + // Compute overflow detection mask. + evpmov_vec_to_mask(elem_bt, ktmp1, xtmp2, xtmp2, xtmp1, vlen_enc); + // Note: xtmp1 hold -1 in all its lanes after above call. + + // Compute mask based on first input polarity. + evpmov_vec_to_mask(elem_bt, ktmp2, src1, xtmp2, xtmp1, vlen_enc, true); + + vpgenmax_value(elem_bt, xtmp2, xtmp1, vlen_enc, true); + vpgenmin_value(elem_bt, xtmp1, xtmp1, vlen_enc); + + // Compose a vector of saturating (MAX/MIN) values, where lanes corresponding to + // set bits in first input polarity mask holds a min value. + evpblend(elem_bt, xtmp2, ktmp2, xtmp2, xtmp1, true, vlen_enc); + // Blend destination lanes with saturated values using overflow detection mask. + evpblend(elem_bt, dst, ktmp1, dst, xtmp2, true, vlen_enc); +} + + +void C2_MacroAssembler::vector_addsub_dq_saturating_avx(int ideal_opc, BasicType elem_bt, XMMRegister dst, XMMRegister src1, + XMMRegister src2, XMMRegister xtmp1, XMMRegister xtmp2, + XMMRegister xtmp3, XMMRegister xtmp4, int vlen_enc) { + assert(elem_bt == T_INT || elem_bt == T_LONG, ""); + // Addition/Subtraction happens over two's compliment representation of numbers and is agnostic to signed'ness. + // Overflow detection based on Hacker's delight section 2-13. + if (ideal_opc == Op_SaturatingAddV) { + // res = src1 + src2 + vpadd(elem_bt, dst, src1, src2, vlen_enc); + // Overflow occurs if result polarity does not comply with equivalent polarity inputs. + // overflow = (((res ^ src1) & (res ^ src2)) >>> 31(I)/63(L)) == 1 + vpxor(xtmp1, dst, src1, vlen_enc); + vpxor(xtmp2, dst, src2, vlen_enc); + vpand(xtmp2, xtmp1, xtmp2, vlen_enc); + } else { + assert(ideal_opc == Op_SaturatingSubV, ""); + // res = src1 - src2 + vpsub(elem_bt, dst, src1, src2, vlen_enc); + // Overflow occurs when both inputs have opposite polarity and + // result polarity does not comply with first input polarity. + // overflow = ((src1 ^ src2) & (res ^ src1) >>> 31(I)/63(L)) == 1; + vpxor(xtmp1, src1, src2, vlen_enc); + vpxor(xtmp2, dst, src1, vlen_enc); + vpand(xtmp2, xtmp1, xtmp2, vlen_enc); + } + + // Sign-extend to compute overflow detection mask. + vpsign_extend_dq(elem_bt, xtmp3, xtmp2, vlen_enc); + + vpcmpeqd(xtmp1, xtmp1, xtmp1, vlen_enc); + vpgenmax_value(elem_bt, xtmp2, xtmp1, vlen_enc); + vpgenmin_value(elem_bt, xtmp1, xtmp1, vlen_enc); + + // Compose saturating min/max vector using first input polarity mask. + vpsign_extend_dq(elem_bt, xtmp4, src1, vlen_enc); + vpblendvb(xtmp1, xtmp2, xtmp1, xtmp4, vlen_enc); + + // Blend result with saturating vector using overflow detection mask. + vpblendvb(dst, dst, xtmp1, xtmp3, vlen_enc); +} + +void C2_MacroAssembler::vector_saturating_op(int ideal_opc, BasicType elem_bt, XMMRegister dst, XMMRegister src1, Address src2, int vlen_enc) { + switch(elem_bt) { + case T_BYTE: + if (ideal_opc == Op_SaturatingAddV) { + vpaddsb(dst, src1, src2, vlen_enc); + } else { + assert(ideal_opc == Op_SaturatingSubV, ""); + vpsubsb(dst, src1, src2, vlen_enc); + } + break; + case T_SHORT: + if (ideal_opc == Op_SaturatingAddV) { + vpaddsw(dst, src1, src2, vlen_enc); + } else { + assert(ideal_opc == Op_SaturatingSubV, ""); + vpsubsw(dst, src1, src2, vlen_enc); + } + break; + default: + fatal("Unsupported type %s", type2name(elem_bt)); + break; + } +} + +void C2_MacroAssembler::vector_saturating_unsigned_op(int ideal_opc, BasicType elem_bt, XMMRegister dst, XMMRegister src1, Address src2, int vlen_enc) { + switch(elem_bt) { + case T_BYTE: + if (ideal_opc == Op_SaturatingAddV) { + vpaddusb(dst, src1, src2, vlen_enc); + } else { + assert(ideal_opc == Op_SaturatingSubV, ""); + vpsubusb(dst, src1, src2, vlen_enc); + } + break; + case T_SHORT: + if (ideal_opc == Op_SaturatingAddV) { + vpaddusw(dst, src1, src2, vlen_enc); + } else { + assert(ideal_opc == Op_SaturatingSubV, ""); + vpsubusw(dst, src1, src2, vlen_enc); + } + break; + default: + fatal("Unsupported type %s", type2name(elem_bt)); + break; + } +} + void C2_MacroAssembler::select_from_two_vectors_evex(BasicType elem_bt, XMMRegister dst, XMMRegister src1, XMMRegister src2, int vlen_enc) { switch(elem_bt) { @@ -6502,3 +7066,19 @@ void C2_MacroAssembler::select_from_two_vectors_evex(BasicType elem_bt, XMMRegis break; } } + +void C2_MacroAssembler::vector_saturating_op(int ideal_opc, BasicType elem_bt, XMMRegister dst, XMMRegister src1, XMMRegister src2, bool is_unsigned, int vlen_enc) { + if (is_unsigned) { + vector_saturating_unsigned_op(ideal_opc, elem_bt, dst, src1, src2, vlen_enc); + } else { + vector_saturating_op(ideal_opc, elem_bt, dst, src1, src2, vlen_enc); + } +} + +void C2_MacroAssembler::vector_saturating_op(int ideal_opc, BasicType elem_bt, XMMRegister dst, XMMRegister src1, Address src2, bool is_unsigned, int vlen_enc) { + if (is_unsigned) { + vector_saturating_unsigned_op(ideal_opc, elem_bt, dst, src1, src2, vlen_enc); + } else { + vector_saturating_op(ideal_opc, elem_bt, dst, src1, src2, vlen_enc); + } +} diff --git a/src/hotspot/cpu/x86/c2_MacroAssembler_x86.hpp b/src/hotspot/cpu/x86/c2_MacroAssembler_x86.hpp index 5744fedcc64..3a36fd75e3f 100644 --- a/src/hotspot/cpu/x86/c2_MacroAssembler_x86.hpp +++ b/src/hotspot/cpu/x86/c2_MacroAssembler_x86.hpp @@ -56,10 +56,21 @@ XMMRegister dst, XMMRegister src1, XMMRegister src2, int vlen_enc); + void vpuminmax(int opcode, BasicType elem_bt, + XMMRegister dst, XMMRegister src1, XMMRegister src2, + int vlen_enc); + + void vpuminmax(int opcode, BasicType elem_bt, + XMMRegister dst, XMMRegister src1, Address src2, + int vlen_enc); + void vminmax_fp(int opcode, BasicType elem_bt, XMMRegister dst, XMMRegister a, XMMRegister b, XMMRegister tmp, XMMRegister atmp, XMMRegister btmp, int vlen_enc); + + void vpuminmaxq(int opcode, XMMRegister dst, XMMRegister src1, XMMRegister src2, XMMRegister xtmp1, XMMRegister xtmp2, int vlen_enc); + void evminmax_fp(int opcode, BasicType elem_bt, XMMRegister dst, XMMRegister a, XMMRegister b, KRegister ktmp, XMMRegister atmp, XMMRegister btmp, @@ -105,6 +116,7 @@ void evmovdqu(BasicType type, KRegister kmask, XMMRegister dst, Address src, bool merge, int vector_len); void evmovdqu(BasicType type, KRegister kmask, Address dst, XMMRegister src, bool merge, int vector_len); + void evmovdqu(BasicType type, KRegister kmask, XMMRegister dst, XMMRegister src, bool merge, int vector_len); // extract void extract(BasicType typ, Register dst, XMMRegister src, int idx); @@ -505,6 +517,70 @@ void vgather8b_offset(BasicType elem_bt, XMMRegister dst, Register base, Register idx_base, Register offset, Register rtmp, int vlen_enc); + void vector_saturating_op(int opc, BasicType elem_bt, XMMRegister dst, XMMRegister src1, XMMRegister src2, bool is_unsigned, int vlen_enc); + + void vector_saturating_op(int opc, BasicType elem_bt, XMMRegister dst, XMMRegister src1, Address src2, bool is_unsigned, int vlen_enc); + + void vector_saturating_op(int opc, BasicType elem_bt, XMMRegister dst, XMMRegister src1, XMMRegister src2, int vlen_enc); + + void vector_saturating_op(int opc, BasicType elem_bt, XMMRegister dst, XMMRegister src1, Address src2, int vlen_enc); + + void vector_saturating_unsigned_op(int opc, BasicType elem_bt, XMMRegister dst, XMMRegister src1, XMMRegister src2, int vlen_enc); + + void vector_saturating_unsigned_op(int opc, BasicType elem_bt, XMMRegister dst, XMMRegister src1, Address src2, int vlen_enc); + + void vector_sub_dq_saturating_unsigned_evex(BasicType elem_bt, XMMRegister dst, XMMRegister src1, XMMRegister src2, KRegister ktmp, int vlen_enc); + + void vector_sub_dq_saturating_unsigned_avx(BasicType elem_bt, XMMRegister dst, XMMRegister src1, XMMRegister src2, + XMMRegister xtmp1, XMMRegister xtmp2, int vlen_enc); + + void vector_add_dq_saturating_unsigned_evex(BasicType elem_bt, XMMRegister dst, XMMRegister src1, XMMRegister src2, + XMMRegister xtmp1, XMMRegister xtmp2, KRegister ktmp, int vlen_enc); + + void vector_add_dq_saturating_unsigned_avx(BasicType elem_bt, XMMRegister dst, XMMRegister src1, XMMRegister src2, + XMMRegister xtmp1, XMMRegister xtmp2, XMMRegister xtmp3, int vlen_enc); + + void vector_addsub_dq_saturating_avx(int opc, BasicType elem_bt, XMMRegister dst, XMMRegister src1, XMMRegister src2, + XMMRegister xtmp1, XMMRegister xtmp2, XMMRegister xtmp3, XMMRegister xtmp4, int vlen_enc); + + void vector_addsub_dq_saturating_evex(int opc, BasicType elem_bt, XMMRegister dst, XMMRegister src1, XMMRegister src2, + XMMRegister xtmp1, XMMRegister xtmp2, KRegister ktmp1, KRegister ktmp2, int vlen_enc); + + void evpmovd2m_emu(KRegister ktmp, XMMRegister src, XMMRegister xtmp1, XMMRegister xtmp2, int vlen_enc, bool xtmp2_hold_M1 = false); + + void evpmovq2m_emu(KRegister ktmp, XMMRegister src, XMMRegister xtmp1, XMMRegister xtmp2, int vlen_enc, bool xtmp2_hold_M1 = false); + + void vpsign_extend_dq(BasicType etype, XMMRegister dst, XMMRegister src, int vlen_enc); + + void vpgenmin_value(BasicType etype, XMMRegister dst, XMMRegister allones, int vlen_enc, bool compute_allones = false); + + void vpgenmax_value(BasicType etype, XMMRegister dst, XMMRegister allones, int vlen_enc, bool compute_allones = false); + + void evpcmpu(BasicType etype, KRegister kmask, XMMRegister src1, XMMRegister src2, Assembler::ComparisonPredicate cond, int vlen_enc); + + void vpcmpgt(BasicType etype, XMMRegister dst, XMMRegister src1, XMMRegister src2, int vlen_enc); + + void evpmov_vec_to_mask(BasicType etype, KRegister ktmp, XMMRegister src, XMMRegister xtmp1, XMMRegister xtmp2, + int vlen_enc, bool xtmp2_hold_M1 = false); + + void evmasked_saturating_op(int ideal_opc, BasicType elem_bt, KRegister mask, XMMRegister dst, XMMRegister src1, XMMRegister src2, + bool is_unsigned, bool merge, int vlen_enc); + + void evmasked_saturating_op(int ideal_opc, BasicType elem_bt, KRegister mask, XMMRegister dst, XMMRegister src1, Address src2, + bool is_unsigned, bool merge, int vlen_enc); + + void evmasked_saturating_signed_op(int ideal_opc, BasicType elem_bt, KRegister mask, XMMRegister dst, XMMRegister src1, XMMRegister src2, + bool merge, int vlen_enc); + + void evmasked_saturating_signed_op(int ideal_opc, BasicType elem_bt, KRegister mask, XMMRegister dst, XMMRegister src1, Address src2, + bool merge, int vlen_enc); + + void evmasked_saturating_unsigned_op(int ideal_opc, BasicType elem_bt, KRegister mask, XMMRegister dst, XMMRegister src1, + XMMRegister src2, bool merge, int vlen_enc); + + void evmasked_saturating_unsigned_op(int ideal_opc, BasicType elem_bt, KRegister mask, XMMRegister dst, XMMRegister src1, + Address src2, bool merge, int vlen_enc); + void select_from_two_vectors_evex(BasicType elem_bt, XMMRegister dst, XMMRegister src1, XMMRegister src2, int vlen_enc); #endif // CPU_X86_C2_MACROASSEMBLER_X86_HPP diff --git a/src/hotspot/cpu/x86/gc/x/xBarrierSetAssembler_x86.cpp b/src/hotspot/cpu/x86/gc/x/xBarrierSetAssembler_x86.cpp deleted file mode 100644 index a7dc34b17b1..00000000000 --- a/src/hotspot/cpu/x86/gc/x/xBarrierSetAssembler_x86.cpp +++ /dev/null @@ -1,734 +0,0 @@ -/* - * Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "asm/macroAssembler.inline.hpp" -#include "code/codeBlob.hpp" -#include "code/vmreg.inline.hpp" -#include "gc/x/xBarrier.inline.hpp" -#include "gc/x/xBarrierSet.hpp" -#include "gc/x/xBarrierSetAssembler.hpp" -#include "gc/x/xBarrierSetRuntime.hpp" -#include "gc/x/xThreadLocalData.hpp" -#include "memory/resourceArea.hpp" -#include "runtime/sharedRuntime.hpp" -#include "utilities/macros.hpp" -#ifdef COMPILER1 -#include "c1/c1_LIRAssembler.hpp" -#include "c1/c1_MacroAssembler.hpp" -#include "gc/x/c1/xBarrierSetC1.hpp" -#endif // COMPILER1 -#ifdef COMPILER2 -#include "gc/x/c2/xBarrierSetC2.hpp" -#endif // COMPILER2 - -#ifdef PRODUCT -#define BLOCK_COMMENT(str) /* nothing */ -#else -#define BLOCK_COMMENT(str) __ block_comment(str) -#endif - -#undef __ -#define __ masm-> - -static void call_vm(MacroAssembler* masm, - address entry_point, - Register arg0, - Register arg1) { - // Setup arguments - if (arg1 == c_rarg0) { - if (arg0 == c_rarg1) { - __ xchgptr(c_rarg1, c_rarg0); - } else { - __ movptr(c_rarg1, arg1); - __ movptr(c_rarg0, arg0); - } - } else { - if (arg0 != c_rarg0) { - __ movptr(c_rarg0, arg0); - } - if (arg1 != c_rarg1) { - __ movptr(c_rarg1, arg1); - } - } - - // Call VM - __ MacroAssembler::call_VM_leaf_base(entry_point, 2); -} - -void XBarrierSetAssembler::load_at(MacroAssembler* masm, - DecoratorSet decorators, - BasicType type, - Register dst, - Address src, - Register tmp1, - Register tmp_thread) { - if (!XBarrierSet::barrier_needed(decorators, type)) { - // Barrier not needed - BarrierSetAssembler::load_at(masm, decorators, type, dst, src, tmp1, tmp_thread); - return; - } - - BLOCK_COMMENT("XBarrierSetAssembler::load_at {"); - - // Allocate scratch register - Register scratch = tmp1; - if (tmp1 == noreg) { - scratch = r12; - __ push(scratch); - } - - assert_different_registers(dst, scratch); - - Label done; - - // - // Fast Path - // - - // Load address - __ lea(scratch, src); - - // Load oop at address - __ movptr(dst, Address(scratch, 0)); - - // Test address bad mask - __ testptr(dst, address_bad_mask_from_thread(r15_thread)); - __ jcc(Assembler::zero, done); - - // - // Slow path - // - - // Save registers - __ push(rax); - __ push(rcx); - __ push(rdx); - __ push(rdi); - __ push(rsi); - __ push(r8); - __ push(r9); - __ push(r10); - __ push(r11); - - // We may end up here from generate_native_wrapper, then the method may have - // floats as arguments, and we must spill them before calling the VM runtime - // leaf. From the interpreter all floats are passed on the stack. - assert(Argument::n_float_register_parameters_j == 8, "Assumption"); - const int xmm_size = wordSize * 2; - const int xmm_spill_size = xmm_size * Argument::n_float_register_parameters_j; - __ subptr(rsp, xmm_spill_size); - __ movdqu(Address(rsp, xmm_size * 7), xmm7); - __ movdqu(Address(rsp, xmm_size * 6), xmm6); - __ movdqu(Address(rsp, xmm_size * 5), xmm5); - __ movdqu(Address(rsp, xmm_size * 4), xmm4); - __ movdqu(Address(rsp, xmm_size * 3), xmm3); - __ movdqu(Address(rsp, xmm_size * 2), xmm2); - __ movdqu(Address(rsp, xmm_size * 1), xmm1); - __ movdqu(Address(rsp, xmm_size * 0), xmm0); - - // Call VM - call_vm(masm, XBarrierSetRuntime::load_barrier_on_oop_field_preloaded_addr(decorators), dst, scratch); - - __ movdqu(xmm0, Address(rsp, xmm_size * 0)); - __ movdqu(xmm1, Address(rsp, xmm_size * 1)); - __ movdqu(xmm2, Address(rsp, xmm_size * 2)); - __ movdqu(xmm3, Address(rsp, xmm_size * 3)); - __ movdqu(xmm4, Address(rsp, xmm_size * 4)); - __ movdqu(xmm5, Address(rsp, xmm_size * 5)); - __ movdqu(xmm6, Address(rsp, xmm_size * 6)); - __ movdqu(xmm7, Address(rsp, xmm_size * 7)); - __ addptr(rsp, xmm_spill_size); - - __ pop(r11); - __ pop(r10); - __ pop(r9); - __ pop(r8); - __ pop(rsi); - __ pop(rdi); - __ pop(rdx); - __ pop(rcx); - - if (dst == rax) { - __ addptr(rsp, wordSize); - } else { - __ movptr(dst, rax); - __ pop(rax); - } - - __ bind(done); - - // Restore scratch register - if (tmp1 == noreg) { - __ pop(scratch); - } - - BLOCK_COMMENT("} XBarrierSetAssembler::load_at"); -} - -#ifdef ASSERT - -void XBarrierSetAssembler::store_at(MacroAssembler* masm, - DecoratorSet decorators, - BasicType type, - Address dst, - Register src, - Register tmp1, - Register tmp2, - Register tmp3) { - BLOCK_COMMENT("XBarrierSetAssembler::store_at {"); - - // Verify oop store - if (is_reference_type(type)) { - // Note that src could be noreg, which means we - // are storing null and can skip verification. - if (src != noreg) { - Label done; - __ testptr(src, address_bad_mask_from_thread(r15_thread)); - __ jcc(Assembler::zero, done); - __ stop("Verify oop store failed"); - __ should_not_reach_here(); - __ bind(done); - } - } - - // Store value - BarrierSetAssembler::store_at(masm, decorators, type, dst, src, tmp1, tmp2, tmp3); - - BLOCK_COMMENT("} XBarrierSetAssembler::store_at"); -} - -#endif // ASSERT - -void XBarrierSetAssembler::arraycopy_prologue(MacroAssembler* masm, - DecoratorSet decorators, - BasicType type, - Register src, - Register dst, - Register count) { - if (!XBarrierSet::barrier_needed(decorators, type)) { - // Barrier not needed - return; - } - - BLOCK_COMMENT("XBarrierSetAssembler::arraycopy_prologue {"); - - // Save registers - __ pusha(); - - // Call VM - call_vm(masm, XBarrierSetRuntime::load_barrier_on_oop_array_addr(), src, count); - - // Restore registers - __ popa(); - - BLOCK_COMMENT("} XBarrierSetAssembler::arraycopy_prologue"); -} - -void XBarrierSetAssembler::try_resolve_jobject_in_native(MacroAssembler* masm, - Register jni_env, - Register obj, - Register tmp, - Label& slowpath) { - BLOCK_COMMENT("XBarrierSetAssembler::try_resolve_jobject_in_native {"); - - // Resolve jobject - BarrierSetAssembler::try_resolve_jobject_in_native(masm, jni_env, obj, tmp, slowpath); - - // Test address bad mask - __ testptr(obj, address_bad_mask_from_jni_env(jni_env)); - __ jcc(Assembler::notZero, slowpath); - - BLOCK_COMMENT("} XBarrierSetAssembler::try_resolve_jobject_in_native"); -} - -#ifdef COMPILER1 - -#undef __ -#define __ ce->masm()-> - -void XBarrierSetAssembler::generate_c1_load_barrier_test(LIR_Assembler* ce, - LIR_Opr ref) const { - __ testptr(ref->as_register(), address_bad_mask_from_thread(r15_thread)); -} - -void XBarrierSetAssembler::generate_c1_load_barrier_stub(LIR_Assembler* ce, - XLoadBarrierStubC1* stub) const { - // Stub entry - __ bind(*stub->entry()); - - Register ref = stub->ref()->as_register(); - Register ref_addr = noreg; - Register tmp = noreg; - - if (stub->tmp()->is_valid()) { - // Load address into tmp register - ce->leal(stub->ref_addr(), stub->tmp()); - ref_addr = tmp = stub->tmp()->as_pointer_register(); - } else { - // Address already in register - ref_addr = stub->ref_addr()->as_address_ptr()->base()->as_pointer_register(); - } - - assert_different_registers(ref, ref_addr, noreg); - - // Save rax unless it is the result or tmp register - if (ref != rax && tmp != rax) { - __ push(rax); - } - - // Setup arguments and call runtime stub - __ subptr(rsp, 2 * BytesPerWord); - ce->store_parameter(ref_addr, 1); - ce->store_parameter(ref, 0); - __ call(RuntimeAddress(stub->runtime_stub())); - __ addptr(rsp, 2 * BytesPerWord); - - // Verify result - __ verify_oop(rax); - - // Move result into place - if (ref != rax) { - __ movptr(ref, rax); - } - - // Restore rax unless it is the result or tmp register - if (ref != rax && tmp != rax) { - __ pop(rax); - } - - // Stub exit - __ jmp(*stub->continuation()); -} - -#undef __ -#define __ sasm-> - -void XBarrierSetAssembler::generate_c1_load_barrier_runtime_stub(StubAssembler* sasm, - DecoratorSet decorators) const { - // Enter and save registers - __ enter(); - __ save_live_registers_no_oop_map(true /* save_fpu_registers */); - - // Setup arguments - __ load_parameter(1, c_rarg1); - __ load_parameter(0, c_rarg0); - - // Call VM - __ call_VM_leaf(XBarrierSetRuntime::load_barrier_on_oop_field_preloaded_addr(decorators), c_rarg0, c_rarg1); - - // Restore registers and return - __ restore_live_registers_except_rax(true /* restore_fpu_registers */); - __ leave(); - __ ret(0); -} - -#endif // COMPILER1 - -#ifdef COMPILER2 - -OptoReg::Name XBarrierSetAssembler::refine_register(const Node* node, OptoReg::Name opto_reg) { - if (!OptoReg::is_reg(opto_reg)) { - return OptoReg::Bad; - } - - const VMReg vm_reg = OptoReg::as_VMReg(opto_reg); - if (vm_reg->is_XMMRegister()) { - opto_reg &= ~15; - switch (node->ideal_reg()) { - case Op_VecX: - opto_reg |= 2; - break; - case Op_VecY: - opto_reg |= 4; - break; - case Op_VecZ: - opto_reg |= 8; - break; - default: - opto_reg |= 1; - break; - } - } - - return opto_reg; -} - -// We use the vec_spill_helper from the x86.ad file to avoid reinventing this wheel -extern void vec_spill_helper(C2_MacroAssembler *masm, bool is_load, - int stack_offset, int reg, uint ireg, outputStream* st); - -#undef __ -#define __ _masm-> - -class XSaveLiveRegisters { -private: - struct XMMRegisterData { - XMMRegister _reg; - int _size; - - // Used by GrowableArray::find() - bool operator == (const XMMRegisterData& other) { - return _reg == other._reg; - } - }; - - MacroAssembler* const _masm; - GrowableArray _gp_registers; - GrowableArray _opmask_registers; - GrowableArray _xmm_registers; - int _spill_size; - int _spill_offset; - - static int xmm_compare_register_size(XMMRegisterData* left, XMMRegisterData* right) { - if (left->_size == right->_size) { - return 0; - } - - return (left->_size < right->_size) ? -1 : 1; - } - - static int xmm_slot_size(OptoReg::Name opto_reg) { - // The low order 4 bytes denote what size of the XMM register is live - return (opto_reg & 15) << 3; - } - - static uint xmm_ideal_reg_for_size(int reg_size) { - switch (reg_size) { - case 8: - return Op_VecD; - case 16: - return Op_VecX; - case 32: - return Op_VecY; - case 64: - return Op_VecZ; - default: - fatal("Invalid register size %d", reg_size); - return 0; - } - } - - bool xmm_needs_vzeroupper() const { - return _xmm_registers.is_nonempty() && _xmm_registers.at(0)._size > 16; - } - - void xmm_register_save(const XMMRegisterData& reg_data) { - const OptoReg::Name opto_reg = OptoReg::as_OptoReg(reg_data._reg->as_VMReg()); - const uint ideal_reg = xmm_ideal_reg_for_size(reg_data._size); - _spill_offset -= reg_data._size; - C2_MacroAssembler c2_masm(__ code()); - vec_spill_helper(&c2_masm, false /* is_load */, _spill_offset, opto_reg, ideal_reg, tty); - } - - void xmm_register_restore(const XMMRegisterData& reg_data) { - const OptoReg::Name opto_reg = OptoReg::as_OptoReg(reg_data._reg->as_VMReg()); - const uint ideal_reg = xmm_ideal_reg_for_size(reg_data._size); - C2_MacroAssembler c2_masm(__ code()); - vec_spill_helper(&c2_masm, true /* is_load */, _spill_offset, opto_reg, ideal_reg, tty); - _spill_offset += reg_data._size; - } - - void gp_register_save(Register reg) { - _spill_offset -= 8; - __ movq(Address(rsp, _spill_offset), reg); - } - - void opmask_register_save(KRegister reg) { - _spill_offset -= 8; - __ kmov(Address(rsp, _spill_offset), reg); - } - - void gp_register_restore(Register reg) { - __ movq(reg, Address(rsp, _spill_offset)); - _spill_offset += 8; - } - - void opmask_register_restore(KRegister reg) { - __ kmov(reg, Address(rsp, _spill_offset)); - _spill_offset += 8; - } - - void initialize(XLoadBarrierStubC2* stub) { - // Create mask of caller saved registers that need to - // be saved/restored if live - RegMask caller_saved; - caller_saved.Insert(OptoReg::as_OptoReg(rax->as_VMReg())); - caller_saved.Insert(OptoReg::as_OptoReg(rcx->as_VMReg())); - caller_saved.Insert(OptoReg::as_OptoReg(rdx->as_VMReg())); - caller_saved.Insert(OptoReg::as_OptoReg(rsi->as_VMReg())); - caller_saved.Insert(OptoReg::as_OptoReg(rdi->as_VMReg())); - caller_saved.Insert(OptoReg::as_OptoReg(r8->as_VMReg())); - caller_saved.Insert(OptoReg::as_OptoReg(r9->as_VMReg())); - caller_saved.Insert(OptoReg::as_OptoReg(r10->as_VMReg())); - caller_saved.Insert(OptoReg::as_OptoReg(r11->as_VMReg())); - caller_saved.Remove(OptoReg::as_OptoReg(stub->ref()->as_VMReg())); - - if (UseAPX) { - caller_saved.Insert(OptoReg::as_OptoReg(r16->as_VMReg())); - caller_saved.Insert(OptoReg::as_OptoReg(r17->as_VMReg())); - caller_saved.Insert(OptoReg::as_OptoReg(r18->as_VMReg())); - caller_saved.Insert(OptoReg::as_OptoReg(r19->as_VMReg())); - caller_saved.Insert(OptoReg::as_OptoReg(r20->as_VMReg())); - caller_saved.Insert(OptoReg::as_OptoReg(r21->as_VMReg())); - caller_saved.Insert(OptoReg::as_OptoReg(r22->as_VMReg())); - caller_saved.Insert(OptoReg::as_OptoReg(r23->as_VMReg())); - caller_saved.Insert(OptoReg::as_OptoReg(r24->as_VMReg())); - caller_saved.Insert(OptoReg::as_OptoReg(r25->as_VMReg())); - caller_saved.Insert(OptoReg::as_OptoReg(r26->as_VMReg())); - caller_saved.Insert(OptoReg::as_OptoReg(r27->as_VMReg())); - caller_saved.Insert(OptoReg::as_OptoReg(r28->as_VMReg())); - caller_saved.Insert(OptoReg::as_OptoReg(r29->as_VMReg())); - caller_saved.Insert(OptoReg::as_OptoReg(r30->as_VMReg())); - caller_saved.Insert(OptoReg::as_OptoReg(r31->as_VMReg())); - } - - // Create mask of live registers - RegMask live = stub->live(); - if (stub->tmp() != noreg) { - live.Insert(OptoReg::as_OptoReg(stub->tmp()->as_VMReg())); - } - - int gp_spill_size = 0; - int opmask_spill_size = 0; - int xmm_spill_size = 0; - - // Record registers that needs to be saved/restored - RegMaskIterator rmi(live); - while (rmi.has_next()) { - const OptoReg::Name opto_reg = rmi.next(); - const VMReg vm_reg = OptoReg::as_VMReg(opto_reg); - - if (vm_reg->is_Register()) { - if (caller_saved.Member(opto_reg)) { - _gp_registers.append(vm_reg->as_Register()); - gp_spill_size += 8; - } - } else if (vm_reg->is_KRegister()) { - // All opmask registers are caller saved, thus spill the ones - // which are live. - if (_opmask_registers.find(vm_reg->as_KRegister()) == -1) { - _opmask_registers.append(vm_reg->as_KRegister()); - opmask_spill_size += 8; - } - } else if (vm_reg->is_XMMRegister()) { - // We encode in the low order 4 bits of the opto_reg, how large part of the register is live - const VMReg vm_reg_base = OptoReg::as_VMReg(opto_reg & ~15); - const int reg_size = xmm_slot_size(opto_reg); - const XMMRegisterData reg_data = { vm_reg_base->as_XMMRegister(), reg_size }; - const int reg_index = _xmm_registers.find(reg_data); - if (reg_index == -1) { - // Not previously appended - _xmm_registers.append(reg_data); - xmm_spill_size += reg_size; - } else { - // Previously appended, update size - const int reg_size_prev = _xmm_registers.at(reg_index)._size; - if (reg_size > reg_size_prev) { - _xmm_registers.at_put(reg_index, reg_data); - xmm_spill_size += reg_size - reg_size_prev; - } - } - } else { - fatal("Unexpected register type"); - } - } - - // Sort by size, largest first - _xmm_registers.sort(xmm_compare_register_size); - - // On Windows, the caller reserves stack space for spilling register arguments - const int arg_spill_size = frame::arg_reg_save_area_bytes; - - // Stack pointer must be 16 bytes aligned for the call - _spill_offset = _spill_size = align_up(xmm_spill_size + gp_spill_size + opmask_spill_size + arg_spill_size, 16); - } - -public: - XSaveLiveRegisters(MacroAssembler* masm, XLoadBarrierStubC2* stub) : - _masm(masm), - _gp_registers(), - _opmask_registers(), - _xmm_registers(), - _spill_size(0), - _spill_offset(0) { - - // - // Stack layout after registers have been spilled: - // - // | ... | original rsp, 16 bytes aligned - // ------------------ - // | zmm0 high | - // | ... | - // | zmm0 low | 16 bytes aligned - // | ... | - // | ymm1 high | - // | ... | - // | ymm1 low | 16 bytes aligned - // | ... | - // | xmmN high | - // | ... | - // | xmmN low | 8 bytes aligned - // | reg0 | 8 bytes aligned - // | reg1 | - // | ... | - // | regN | new rsp, if 16 bytes aligned - // | | else new rsp, 16 bytes aligned - // ------------------ - // - - // Figure out what registers to save/restore - initialize(stub); - - // Allocate stack space - if (_spill_size > 0) { - __ subptr(rsp, _spill_size); - } - - // Save XMM/YMM/ZMM registers - for (int i = 0; i < _xmm_registers.length(); i++) { - xmm_register_save(_xmm_registers.at(i)); - } - - if (xmm_needs_vzeroupper()) { - __ vzeroupper(); - } - - // Save general purpose registers - for (int i = 0; i < _gp_registers.length(); i++) { - gp_register_save(_gp_registers.at(i)); - } - - // Save opmask registers - for (int i = 0; i < _opmask_registers.length(); i++) { - opmask_register_save(_opmask_registers.at(i)); - } - } - - ~XSaveLiveRegisters() { - // Restore opmask registers - for (int i = _opmask_registers.length() - 1; i >= 0; i--) { - opmask_register_restore(_opmask_registers.at(i)); - } - - // Restore general purpose registers - for (int i = _gp_registers.length() - 1; i >= 0; i--) { - gp_register_restore(_gp_registers.at(i)); - } - - __ vzeroupper(); - - // Restore XMM/YMM/ZMM registers - for (int i = _xmm_registers.length() - 1; i >= 0; i--) { - xmm_register_restore(_xmm_registers.at(i)); - } - - // Free stack space - if (_spill_size > 0) { - __ addptr(rsp, _spill_size); - } - } -}; - -class XSetupArguments { -private: - MacroAssembler* const _masm; - const Register _ref; - const Address _ref_addr; - -public: - XSetupArguments(MacroAssembler* masm, XLoadBarrierStubC2* stub) : - _masm(masm), - _ref(stub->ref()), - _ref_addr(stub->ref_addr()) { - - // Setup arguments - if (_ref_addr.base() == noreg) { - // No self healing - if (_ref != c_rarg0) { - __ movq(c_rarg0, _ref); - } - __ xorq(c_rarg1, c_rarg1); - } else { - // Self healing - if (_ref == c_rarg0) { - __ lea(c_rarg1, _ref_addr); - } else if (_ref != c_rarg1) { - __ lea(c_rarg1, _ref_addr); - __ movq(c_rarg0, _ref); - } else if (_ref_addr.base() != c_rarg0 && _ref_addr.index() != c_rarg0) { - __ movq(c_rarg0, _ref); - __ lea(c_rarg1, _ref_addr); - } else { - __ xchgq(c_rarg0, c_rarg1); - if (_ref_addr.base() == c_rarg0) { - __ lea(c_rarg1, Address(c_rarg1, _ref_addr.index(), _ref_addr.scale(), _ref_addr.disp())); - } else if (_ref_addr.index() == c_rarg0) { - __ lea(c_rarg1, Address(_ref_addr.base(), c_rarg1, _ref_addr.scale(), _ref_addr.disp())); - } else { - ShouldNotReachHere(); - } - } - } - } - - ~XSetupArguments() { - // Transfer result - if (_ref != rax) { - __ movq(_ref, rax); - } - } -}; - -#undef __ -#define __ masm-> - -void XBarrierSetAssembler::generate_c2_load_barrier_stub(MacroAssembler* masm, XLoadBarrierStubC2* stub) const { - BLOCK_COMMENT("XLoadBarrierStubC2"); - - // Stub entry - __ bind(*stub->entry()); - - { - XSaveLiveRegisters save_live_registers(masm, stub); - XSetupArguments setup_arguments(masm, stub); - __ call(RuntimeAddress(stub->slow_path())); - } - - // Stub exit - __ jmp(*stub->continuation()); -} - -#endif // COMPILER2 - -#undef __ -#define __ masm-> - -void XBarrierSetAssembler::check_oop(MacroAssembler* masm, Register obj, Register tmp1, Register tmp2, Label& error) { - // Check if metadata bits indicate a bad oop - __ testptr(obj, Address(r15_thread, XThreadLocalData::address_bad_mask_offset())); - __ jcc(Assembler::notZero, error); - BarrierSetAssembler::check_oop(masm, obj, tmp1, tmp2, error); -} - -#undef __ diff --git a/src/hotspot/cpu/x86/gc/x/xBarrierSetAssembler_x86.hpp b/src/hotspot/cpu/x86/gc/x/xBarrierSetAssembler_x86.hpp deleted file mode 100644 index 52034ab786e..00000000000 --- a/src/hotspot/cpu/x86/gc/x/xBarrierSetAssembler_x86.hpp +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Copyright (c) 2018, 2019, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef CPU_X86_GC_X_XBARRIERSETASSEMBLER_X86_HPP -#define CPU_X86_GC_X_XBARRIERSETASSEMBLER_X86_HPP - -#include "code/vmreg.hpp" -#include "oops/accessDecorators.hpp" -#ifdef COMPILER2 -#include "opto/optoreg.hpp" -#endif // COMPILER2 - -class MacroAssembler; - -#ifdef COMPILER1 -class LIR_Assembler; -class LIR_Opr; -class StubAssembler; -#endif // COMPILER1 - -#ifdef COMPILER2 -class Node; -#endif // COMPILER2 - -#ifdef COMPILER1 -class XLoadBarrierStubC1; -#endif // COMPILER1 - -#ifdef COMPILER2 -class XLoadBarrierStubC2; -#endif // COMPILER2 - -class XBarrierSetAssembler : public XBarrierSetAssemblerBase { -public: - virtual void load_at(MacroAssembler* masm, - DecoratorSet decorators, - BasicType type, - Register dst, - Address src, - Register tmp1, - Register tmp_thread); - -#ifdef ASSERT - virtual void store_at(MacroAssembler* masm, - DecoratorSet decorators, - BasicType type, - Address dst, - Register src, - Register tmp1, - Register tmp2, - Register tmp3); -#endif // ASSERT - - virtual void arraycopy_prologue(MacroAssembler* masm, - DecoratorSet decorators, - BasicType type, - Register src, - Register dst, - Register count); - - virtual void try_resolve_jobject_in_native(MacroAssembler* masm, - Register jni_env, - Register obj, - Register tmp, - Label& slowpath); - -#ifdef COMPILER1 - void generate_c1_load_barrier_test(LIR_Assembler* ce, - LIR_Opr ref) const; - - void generate_c1_load_barrier_stub(LIR_Assembler* ce, - XLoadBarrierStubC1* stub) const; - - void generate_c1_load_barrier_runtime_stub(StubAssembler* sasm, - DecoratorSet decorators) const; -#endif // COMPILER1 - -#ifdef COMPILER2 - OptoReg::Name refine_register(const Node* node, - OptoReg::Name opto_reg); - - void generate_c2_load_barrier_stub(MacroAssembler* masm, - XLoadBarrierStubC2* stub) const; -#endif // COMPILER2 - - void check_oop(MacroAssembler* masm, Register obj, Register tmp1, Register tmp2, Label& error); -}; - -#endif // CPU_X86_GC_X_XBARRIERSETASSEMBLER_X86_HPP diff --git a/src/hotspot/cpu/x86/gc/x/xGlobals_x86.cpp b/src/hotspot/cpu/x86/gc/x/xGlobals_x86.cpp deleted file mode 100644 index baa99ddd60d..00000000000 --- a/src/hotspot/cpu/x86/gc/x/xGlobals_x86.cpp +++ /dev/null @@ -1,149 +0,0 @@ -/* - * Copyright (c) 2017, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/shared/gc_globals.hpp" -#include "gc/x/xGlobals.hpp" -#include "runtime/globals.hpp" -#include "utilities/globalDefinitions.hpp" -#include "utilities/powerOfTwo.hpp" - -// -// The heap can have three different layouts, depending on the max heap size. -// -// Address Space & Pointer Layout 1 -// -------------------------------- -// -// +--------------------------------+ 0x00007FFFFFFFFFFF (127TB) -// . . -// . . -// . . -// +--------------------------------+ 0x0000014000000000 (20TB) -// | Remapped View | -// +--------------------------------+ 0x0000010000000000 (16TB) -// . . -// +--------------------------------+ 0x00000c0000000000 (12TB) -// | Marked1 View | -// +--------------------------------+ 0x0000080000000000 (8TB) -// | Marked0 View | -// +--------------------------------+ 0x0000040000000000 (4TB) -// . . -// +--------------------------------+ 0x0000000000000000 -// -// 6 4 4 4 4 -// 3 6 5 2 1 0 -// +--------------------+----+-----------------------------------------------+ -// |00000000 00000000 00|1111|11 11111111 11111111 11111111 11111111 11111111| -// +--------------------+----+-----------------------------------------------+ -// | | | -// | | * 41-0 Object Offset (42-bits, 4TB address space) -// | | -// | * 45-42 Metadata Bits (4-bits) 0001 = Marked0 (Address view 4-8TB) -// | 0010 = Marked1 (Address view 8-12TB) -// | 0100 = Remapped (Address view 16-20TB) -// | 1000 = Finalizable (Address view N/A) -// | -// * 63-46 Fixed (18-bits, always zero) -// -// -// Address Space & Pointer Layout 2 -// -------------------------------- -// -// +--------------------------------+ 0x00007FFFFFFFFFFF (127TB) -// . . -// . . -// . . -// +--------------------------------+ 0x0000280000000000 (40TB) -// | Remapped View | -// +--------------------------------+ 0x0000200000000000 (32TB) -// . . -// +--------------------------------+ 0x0000180000000000 (24TB) -// | Marked1 View | -// +--------------------------------+ 0x0000100000000000 (16TB) -// | Marked0 View | -// +--------------------------------+ 0x0000080000000000 (8TB) -// . . -// +--------------------------------+ 0x0000000000000000 -// -// 6 4 4 4 4 -// 3 7 6 3 2 0 -// +------------------+-----+------------------------------------------------+ -// |00000000 00000000 0|1111|111 11111111 11111111 11111111 11111111 11111111| -// +-------------------+----+------------------------------------------------+ -// | | | -// | | * 42-0 Object Offset (43-bits, 8TB address space) -// | | -// | * 46-43 Metadata Bits (4-bits) 0001 = Marked0 (Address view 8-16TB) -// | 0010 = Marked1 (Address view 16-24TB) -// | 0100 = Remapped (Address view 32-40TB) -// | 1000 = Finalizable (Address view N/A) -// | -// * 63-47 Fixed (17-bits, always zero) -// -// -// Address Space & Pointer Layout 3 -// -------------------------------- -// -// +--------------------------------+ 0x00007FFFFFFFFFFF (127TB) -// . . -// . . -// . . -// +--------------------------------+ 0x0000500000000000 (80TB) -// | Remapped View | -// +--------------------------------+ 0x0000400000000000 (64TB) -// . . -// +--------------------------------+ 0x0000300000000000 (48TB) -// | Marked1 View | -// +--------------------------------+ 0x0000200000000000 (32TB) -// | Marked0 View | -// +--------------------------------+ 0x0000100000000000 (16TB) -// . . -// +--------------------------------+ 0x0000000000000000 -// -// 6 4 4 4 4 -// 3 8 7 4 3 0 -// +------------------+----+-------------------------------------------------+ -// |00000000 00000000 |1111|1111 11111111 11111111 11111111 11111111 11111111| -// +------------------+----+-------------------------------------------------+ -// | | | -// | | * 43-0 Object Offset (44-bits, 16TB address space) -// | | -// | * 47-44 Metadata Bits (4-bits) 0001 = Marked0 (Address view 16-32TB) -// | 0010 = Marked1 (Address view 32-48TB) -// | 0100 = Remapped (Address view 64-80TB) -// | 1000 = Finalizable (Address view N/A) -// | -// * 63-48 Fixed (16-bits, always zero) -// - -size_t XPlatformAddressOffsetBits() { - const size_t min_address_offset_bits = 42; // 4TB - const size_t max_address_offset_bits = 44; // 16TB - const size_t address_offset = round_up_power_of_2(MaxHeapSize * XVirtualToPhysicalRatio); - const size_t address_offset_bits = log2i_exact(address_offset); - return clamp(address_offset_bits, min_address_offset_bits, max_address_offset_bits); -} - -size_t XPlatformAddressMetadataShift() { - return XPlatformAddressOffsetBits(); -} diff --git a/src/hotspot/cpu/x86/gc/x/xGlobals_x86.hpp b/src/hotspot/cpu/x86/gc/x/xGlobals_x86.hpp deleted file mode 100644 index dd00d4ddadc..00000000000 --- a/src/hotspot/cpu/x86/gc/x/xGlobals_x86.hpp +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (c) 2015, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef CPU_X86_GC_X_XGLOBALS_X86_HPP -#define CPU_X86_GC_X_XGLOBALS_X86_HPP - -const size_t XPlatformHeapViews = 3; -const size_t XPlatformCacheLineSize = 64; - -size_t XPlatformAddressOffsetBits(); -size_t XPlatformAddressMetadataShift(); - -#endif // CPU_X86_GC_X_XGLOBALS_X86_HPP diff --git a/src/hotspot/cpu/x86/gc/x/x_x86_64.ad b/src/hotspot/cpu/x86/gc/x/x_x86_64.ad deleted file mode 100644 index ba4b3cb6df0..00000000000 --- a/src/hotspot/cpu/x86/gc/x/x_x86_64.ad +++ /dev/null @@ -1,156 +0,0 @@ -// -// Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. -// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -// -// This code is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License version 2 only, as -// published by the Free Software Foundation. -// -// This code 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 -// version 2 for more details (a copy is included in the LICENSE file that -// accompanied this code). -// -// You should have received a copy of the GNU General Public License version -// 2 along with this work; if not, write to the Free Software Foundation, -// Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -// -// Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -// or visit www.oracle.com if you need additional information or have any -// questions. -// - -source_hpp %{ - -#include "gc/shared/gc_globals.hpp" -#include "gc/x/c2/xBarrierSetC2.hpp" -#include "gc/x/xThreadLocalData.hpp" - -%} - -source %{ - -#include "c2_intelJccErratum_x86.hpp" - -static void x_load_barrier(MacroAssembler* masm, const MachNode* node, Address ref_addr, Register ref, Register tmp, uint8_t barrier_data) { - if (barrier_data == XLoadBarrierElided) { - return; - } - XLoadBarrierStubC2* const stub = XLoadBarrierStubC2::create(node, ref_addr, ref, tmp, barrier_data); - { - IntelJccErratumAlignment intel_alignment(masm, 10 /* jcc_size */); - __ testptr(ref, Address(r15_thread, XThreadLocalData::address_bad_mask_offset())); - __ jcc(Assembler::notZero, *stub->entry()); - } - __ bind(*stub->continuation()); -} - -static void x_load_barrier_cmpxchg(MacroAssembler* masm, const MachNode* node, Address ref_addr, Register ref, Register tmp, Label& good) { - XLoadBarrierStubC2* const stub = XLoadBarrierStubC2::create(node, ref_addr, ref, tmp, XLoadBarrierStrong); - { - IntelJccErratumAlignment intel_alignment(masm, 10 /* jcc_size */); - __ testptr(ref, Address(r15_thread, XThreadLocalData::address_bad_mask_offset())); - __ jcc(Assembler::zero, good); - } - { - IntelJccErratumAlignment intel_alignment(masm, 5 /* jcc_size */); - __ jmp(*stub->entry()); - } - __ bind(*stub->continuation()); -} - -static void x_cmpxchg_common(MacroAssembler* masm, const MachNode* node, Register mem_reg, Register newval, Register tmp) { - // Compare value (oldval) is in rax - const Address mem = Address(mem_reg, 0); - - if (node->barrier_data() != XLoadBarrierElided) { - __ movptr(tmp, rax); - } - - __ lock(); - __ cmpxchgptr(newval, mem); - - if (node->barrier_data() != XLoadBarrierElided) { - Label good; - x_load_barrier_cmpxchg(masm, node, mem, rax, tmp, good); - __ movptr(rax, tmp); - __ lock(); - __ cmpxchgptr(newval, mem); - __ bind(good); - } -} - -%} - -// Load Pointer -instruct xLoadP(rRegP dst, memory mem, rFlagsReg cr) -%{ - predicate(UseZGC && !ZGenerational && n->as_Load()->barrier_data() != 0); - match(Set dst (LoadP mem)); - effect(KILL cr, TEMP dst); - - ins_cost(125); - - format %{ "movq $dst, $mem" %} - - ins_encode %{ - __ movptr($dst$$Register, $mem$$Address); - x_load_barrier(masm, this, $mem$$Address, $dst$$Register, noreg /* tmp */, barrier_data()); - %} - - ins_pipe(ialu_reg_mem); -%} - -instruct xCompareAndExchangeP(indirect mem, rax_RegP oldval, rRegP newval, rRegP tmp, rFlagsReg cr) %{ - match(Set oldval (CompareAndExchangeP mem (Binary oldval newval))); - predicate(UseZGC && !ZGenerational && n->as_LoadStore()->barrier_data() == XLoadBarrierStrong); - effect(KILL cr, TEMP tmp); - - format %{ "lock\n\t" - "cmpxchgq $newval, $mem" %} - - ins_encode %{ - precond($oldval$$Register == rax); - x_cmpxchg_common(masm, this, $mem$$Register, $newval$$Register, $tmp$$Register); - %} - - ins_pipe(pipe_cmpxchg); -%} - -instruct xCompareAndSwapP(rRegI res, indirect mem, rRegP newval, rRegP tmp, rFlagsReg cr, rax_RegP oldval) %{ - match(Set res (CompareAndSwapP mem (Binary oldval newval))); - match(Set res (WeakCompareAndSwapP mem (Binary oldval newval))); - predicate(UseZGC && !ZGenerational && n->as_LoadStore()->barrier_data() == XLoadBarrierStrong); - effect(KILL cr, KILL oldval, TEMP tmp); - - format %{ "lock\n\t" - "cmpxchgq $newval, $mem\n\t" - "setcc $res \t# emits sete + movzbl or setzue for APX" %} - - ins_encode %{ - precond($oldval$$Register == rax); - x_cmpxchg_common(masm, this, $mem$$Register, $newval$$Register, $tmp$$Register); - if (barrier_data() != XLoadBarrierElided) { - __ cmpptr($tmp$$Register, rax); - } - __ setcc(Assembler::equal, $res$$Register); - %} - - ins_pipe(pipe_cmpxchg); -%} - -instruct xXChgP(indirect mem, rRegP newval, rFlagsReg cr) %{ - match(Set newval (GetAndSetP mem newval)); - predicate(UseZGC && !ZGenerational && n->as_LoadStore()->barrier_data() != 0); - effect(KILL cr); - - format %{ "xchgq $newval, $mem" %} - - ins_encode %{ - __ xchgptr($newval$$Register, Address($mem$$Register, 0)); - x_load_barrier(masm, this, Address(noreg, 0), $newval$$Register, noreg /* tmp */, barrier_data()); - %} - - ins_pipe(pipe_cmpxchg); -%} diff --git a/src/hotspot/cpu/x86/gc/z/zBarrierSetAssembler_x86.cpp b/src/hotspot/cpu/x86/gc/z/zBarrierSetAssembler_x86.cpp index bc51a2b4468..3795b1fc176 100644 --- a/src/hotspot/cpu/x86/gc/z/zBarrierSetAssembler_x86.cpp +++ b/src/hotspot/cpu/x86/gc/z/zBarrierSetAssembler_x86.cpp @@ -363,8 +363,12 @@ static void emit_store_fast_path_check_c2(MacroAssembler* masm, Address ref_addr } static bool is_c2_compilation() { +#ifdef COMPILER2 CompileTask* task = ciEnv::current()->task(); return task != nullptr && is_c2_compile(task->comp_level()); +#else + return false; +#endif } void ZBarrierSetAssembler::store_barrier_fast(MacroAssembler* masm, diff --git a/src/hotspot/cpu/x86/gc/z/z_x86_64.ad b/src/hotspot/cpu/x86/gc/z/z_x86_64.ad index f55ad70e861..9555cadd022 100644 --- a/src/hotspot/cpu/x86/gc/z/z_x86_64.ad +++ b/src/hotspot/cpu/x86/gc/z/z_x86_64.ad @@ -115,7 +115,7 @@ operand no_rax_RegP() // Load Pointer instruct zLoadP(rRegP dst, memory mem, rFlagsReg cr) %{ - predicate(UseZGC && ZGenerational && n->as_Load()->barrier_data() != 0); + predicate(UseZGC && n->as_Load()->barrier_data() != 0); match(Set dst (LoadP mem)); effect(TEMP dst, KILL cr); @@ -134,7 +134,7 @@ instruct zLoadP(rRegP dst, memory mem, rFlagsReg cr) // Load Pointer and Null Check instruct zLoadPNullCheck(rFlagsReg cr, memory op, immP0 zero) %{ - predicate(UseZGC && ZGenerational && n->in(1)->as_Load()->barrier_data() != 0); + predicate(UseZGC && n->in(1)->as_Load()->barrier_data() != 0); match(Set cr (CmpP (LoadP op) zero)); ins_cost(500); // XXX @@ -150,7 +150,7 @@ instruct zLoadPNullCheck(rFlagsReg cr, memory op, immP0 zero) // Store Pointer instruct zStoreP(memory mem, any_RegP src, rRegP tmp, rFlagsReg cr) %{ - predicate(UseZGC && ZGenerational && n->as_Store()->barrier_data() != 0); + predicate(UseZGC && n->as_Store()->barrier_data() != 0); match(Set mem (StoreP mem src)); effect(TEMP tmp, KILL cr); @@ -166,7 +166,7 @@ instruct zStoreP(memory mem, any_RegP src, rRegP tmp, rFlagsReg cr) // Store Null Pointer instruct zStorePNull(memory mem, immP0 zero, rRegP tmp, rFlagsReg cr) %{ - predicate(UseZGC && ZGenerational && n->as_Store()->barrier_data() != 0); + predicate(UseZGC && n->as_Store()->barrier_data() != 0); match(Set mem (StoreP mem zero)); effect(TEMP tmp, KILL cr); @@ -185,7 +185,7 @@ instruct zStorePNull(memory mem, immP0 zero, rRegP tmp, rFlagsReg cr) instruct zCompareAndExchangeP(indirect mem, no_rax_RegP newval, rRegP tmp, rax_RegP oldval, rFlagsReg cr) %{ match(Set oldval (CompareAndExchangeP mem (Binary oldval newval))); - predicate(UseZGC && ZGenerational && n->as_LoadStore()->barrier_data() != 0); + predicate(UseZGC && n->as_LoadStore()->barrier_data() != 0); effect(TEMP tmp, KILL cr); format %{ "lock\n\t" @@ -208,7 +208,7 @@ instruct zCompareAndExchangeP(indirect mem, no_rax_RegP newval, rRegP tmp, rax_R instruct zCompareAndSwapP(rRegI res, indirect mem, rRegP newval, rRegP tmp, rax_RegP oldval, rFlagsReg cr) %{ match(Set res (CompareAndSwapP mem (Binary oldval newval))); match(Set res (WeakCompareAndSwapP mem (Binary oldval newval))); - predicate(UseZGC && ZGenerational && n->as_LoadStore()->barrier_data() != 0); + predicate(UseZGC && n->as_LoadStore()->barrier_data() != 0); effect(TEMP tmp, KILL oldval, KILL cr); format %{ "lock\n\t" @@ -230,7 +230,7 @@ instruct zCompareAndSwapP(rRegI res, indirect mem, rRegP newval, rRegP tmp, rax_ instruct zXChgP(indirect mem, rRegP newval, rRegP tmp, rFlagsReg cr) %{ match(Set newval (GetAndSetP mem newval)); - predicate(UseZGC && ZGenerational && n->as_LoadStore()->barrier_data() != 0); + predicate(UseZGC && n->as_LoadStore()->barrier_data() != 0); effect(TEMP tmp, KILL cr); format %{ "xchgq $newval, $mem" %} diff --git a/src/hotspot/cpu/x86/macroAssembler_x86.cpp b/src/hotspot/cpu/x86/macroAssembler_x86.cpp index 1a69b4c1ad7..55c4e29b8a3 100644 --- a/src/hotspot/cpu/x86/macroAssembler_x86.cpp +++ b/src/hotspot/cpu/x86/macroAssembler_x86.cpp @@ -9314,6 +9314,30 @@ void MacroAssembler::byte_array_inflate(Register src, Register dst, Register len bind(done); } +void MacroAssembler::evmovdqu(BasicType type, KRegister kmask, XMMRegister dst, XMMRegister src, bool merge, int vector_len) { + switch(type) { + case T_BYTE: + case T_BOOLEAN: + evmovdqub(dst, kmask, src, merge, vector_len); + break; + case T_CHAR: + case T_SHORT: + evmovdquw(dst, kmask, src, merge, vector_len); + break; + case T_INT: + case T_FLOAT: + evmovdqul(dst, kmask, src, merge, vector_len); + break; + case T_LONG: + case T_DOUBLE: + evmovdquq(dst, kmask, src, merge, vector_len); + break; + default: + fatal("Unexpected type argument %s", type2name(type)); + break; + } +} + void MacroAssembler::evmovdqu(BasicType type, KRegister kmask, XMMRegister dst, Address src, bool merge, int vector_len) { switch(type) { @@ -9505,6 +9529,66 @@ void MacroAssembler::evperm(BasicType type, XMMRegister dst, KRegister mask, XMM } } +void MacroAssembler::evpminu(BasicType type, XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len) { + switch(type) { + case T_BYTE: + evpminub(dst, mask, nds, src, merge, vector_len); break; + case T_SHORT: + evpminuw(dst, mask, nds, src, merge, vector_len); break; + case T_INT: + evpminud(dst, mask, nds, src, merge, vector_len); break; + case T_LONG: + evpminuq(dst, mask, nds, src, merge, vector_len); break; + default: + fatal("Unexpected type argument %s", type2name(type)); break; + } +} + +void MacroAssembler::evpmaxu(BasicType type, XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len) { + switch(type) { + case T_BYTE: + evpmaxub(dst, mask, nds, src, merge, vector_len); break; + case T_SHORT: + evpmaxuw(dst, mask, nds, src, merge, vector_len); break; + case T_INT: + evpmaxud(dst, mask, nds, src, merge, vector_len); break; + case T_LONG: + evpmaxuq(dst, mask, nds, src, merge, vector_len); break; + default: + fatal("Unexpected type argument %s", type2name(type)); break; + } +} + +void MacroAssembler::evpminu(BasicType type, XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len) { + switch(type) { + case T_BYTE: + evpminub(dst, mask, nds, src, merge, vector_len); break; + case T_SHORT: + evpminuw(dst, mask, nds, src, merge, vector_len); break; + case T_INT: + evpminud(dst, mask, nds, src, merge, vector_len); break; + case T_LONG: + evpminuq(dst, mask, nds, src, merge, vector_len); break; + default: + fatal("Unexpected type argument %s", type2name(type)); break; + } +} + +void MacroAssembler::evpmaxu(BasicType type, XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len) { + switch(type) { + case T_BYTE: + evpmaxub(dst, mask, nds, src, merge, vector_len); break; + case T_SHORT: + evpmaxuw(dst, mask, nds, src, merge, vector_len); break; + case T_INT: + evpmaxud(dst, mask, nds, src, merge, vector_len); break; + case T_LONG: + evpmaxuq(dst, mask, nds, src, merge, vector_len); break; + default: + fatal("Unexpected type argument %s", type2name(type)); break; + } +} + void MacroAssembler::evpmins(BasicType type, XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len) { switch(type) { case T_BYTE: @@ -10213,17 +10297,6 @@ Assembler::Condition MacroAssembler::negate_condition(Assembler::Condition cond) ShouldNotReachHere(); return Assembler::overflow; } -SkipIfEqual::SkipIfEqual( - MacroAssembler* masm, const bool* flag_addr, bool value, Register rscratch) { - _masm = masm; - _masm->cmp8(ExternalAddress((address)flag_addr), value, rscratch); - _masm->jcc(Assembler::equal, _label); -} - -SkipIfEqual::~SkipIfEqual() { - _masm->bind(_label); -} - // 32-bit Windows has its own fast-path implementation // of get_thread #if !defined(WIN32) || defined(_LP64) diff --git a/src/hotspot/cpu/x86/macroAssembler_x86.hpp b/src/hotspot/cpu/x86/macroAssembler_x86.hpp index e6de99eb207..d508feed93c 100644 --- a/src/hotspot/cpu/x86/macroAssembler_x86.hpp +++ b/src/hotspot/cpu/x86/macroAssembler_x86.hpp @@ -1282,6 +1282,7 @@ class MacroAssembler: public Assembler { // AVX512 Unaligned void evmovdqu(BasicType type, KRegister kmask, Address dst, XMMRegister src, bool merge, int vector_len); void evmovdqu(BasicType type, KRegister kmask, XMMRegister dst, Address src, bool merge, int vector_len); + void evmovdqu(BasicType type, KRegister kmask, XMMRegister dst, XMMRegister src, bool merge, int vector_len); void evmovdqub(XMMRegister dst, XMMRegister src, int vector_len) { Assembler::evmovdqub(dst, src, vector_len); } void evmovdqub(XMMRegister dst, Address src, int vector_len) { Assembler::evmovdqub(dst, src, vector_len); } @@ -1295,6 +1296,7 @@ class MacroAssembler: public Assembler { void evmovdqub(XMMRegister dst, KRegister mask, Address src, bool merge, int vector_len) { Assembler::evmovdqub(dst, mask, src, merge, vector_len); } void evmovdqub(XMMRegister dst, KRegister mask, AddressLiteral src, bool merge, int vector_len, Register rscratch = noreg); + void evmovdquw(XMMRegister dst, XMMRegister src, int vector_len) { Assembler::evmovdquw(dst, src, vector_len); } void evmovdquw(Address dst, XMMRegister src, int vector_len) { Assembler::evmovdquw(dst, src, vector_len); } void evmovdquw(XMMRegister dst, Address src, int vector_len) { Assembler::evmovdquw(dst, src, vector_len); } @@ -1505,6 +1507,8 @@ class MacroAssembler: public Assembler { void vpmulld(XMMRegister dst, XMMRegister nds, Address src, int vector_len) { Assembler::vpmulld(dst, nds, src, vector_len); } void vpmulld(XMMRegister dst, XMMRegister nds, AddressLiteral src, int vector_len, Register rscratch = noreg); + void vpmuldq(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len) { Assembler::vpmuldq(dst, nds, src, vector_len); } + void vpsubb(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len); void vpsubb(XMMRegister dst, XMMRegister nds, Address src, int vector_len); @@ -1514,9 +1518,13 @@ class MacroAssembler: public Assembler { void vpsraw(XMMRegister dst, XMMRegister nds, XMMRegister shift, int vector_len); void vpsraw(XMMRegister dst, XMMRegister nds, int shift, int vector_len); + void evpsrad(XMMRegister dst, XMMRegister nds, XMMRegister shift, int vector_len); + void evpsrad(XMMRegister dst, XMMRegister nds, int shift, int vector_len); + void evpsraq(XMMRegister dst, XMMRegister nds, XMMRegister shift, int vector_len); void evpsraq(XMMRegister dst, XMMRegister nds, int shift, int vector_len); + using Assembler::evpsllw; void evpsllw(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len, bool is_varshift) { if (!is_varshift) { Assembler::evpsllw(dst, mask, nds, src, merge, vector_len); @@ -1561,6 +1569,7 @@ class MacroAssembler: public Assembler { Assembler::evpsrlvq(dst, mask, nds, src, merge, vector_len); } } + using Assembler::evpsraw; void evpsraw(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len, bool is_varshift) { if (!is_varshift) { Assembler::evpsraw(dst, mask, nds, src, merge, vector_len); @@ -1568,6 +1577,7 @@ class MacroAssembler: public Assembler { Assembler::evpsravw(dst, mask, nds, src, merge, vector_len); } } + using Assembler::evpsrad; void evpsrad(XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len, bool is_varshift) { if (!is_varshift) { Assembler::evpsrad(dst, mask, nds, src, merge, vector_len); @@ -1589,6 +1599,11 @@ class MacroAssembler: public Assembler { void evpmins(BasicType type, XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len); void evpmaxs(BasicType type, XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len); + void evpminu(BasicType type, XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len); + void evpmaxu(BasicType type, XMMRegister dst, KRegister mask, XMMRegister nds, XMMRegister src, bool merge, int vector_len); + void evpminu(BasicType type, XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len); + void evpmaxu(BasicType type, XMMRegister dst, KRegister mask, XMMRegister nds, Address src, bool merge, int vector_len); + void vpsrlw(XMMRegister dst, XMMRegister nds, XMMRegister shift, int vector_len); void vpsrlw(XMMRegister dst, XMMRegister nds, int shift, int vector_len); @@ -2162,22 +2177,4 @@ class MacroAssembler: public Assembler { #endif }; -/** - * class SkipIfEqual: - * - * Instantiating this class will result in assembly code being output that will - * jump around any code emitted between the creation of the instance and it's - * automatic destruction at the end of a scope block, depending on the value of - * the flag passed to the constructor, which will be checked at run-time. - */ -class SkipIfEqual { - private: - MacroAssembler* _masm; - Label _label; - - public: - SkipIfEqual(MacroAssembler*, const bool* flag_addr, bool value, Register rscratch); - ~SkipIfEqual(); -}; - #endif // CPU_X86_MACROASSEMBLER_X86_HPP diff --git a/src/hotspot/cpu/x86/stubGenerator_x86_64.cpp b/src/hotspot/cpu/x86/stubGenerator_x86_64.cpp index e23c83ed197..93b1618024e 100644 --- a/src/hotspot/cpu/x86/stubGenerator_x86_64.cpp +++ b/src/hotspot/cpu/x86/stubGenerator_x86_64.cpp @@ -4032,6 +4032,8 @@ void StubGenerator::generate_compiler_stubs() { generate_chacha_stubs(); + generate_sha3_stubs(); + #ifdef COMPILER2 if ((UseAVX == 2) && EnableX86ECoreOpts) { generate_string_indexof(StubRoutines::_string_indexof_array); diff --git a/src/hotspot/cpu/x86/stubGenerator_x86_64.hpp b/src/hotspot/cpu/x86/stubGenerator_x86_64.hpp index 7280e9fbe95..c6fa31c5213 100644 --- a/src/hotspot/cpu/x86/stubGenerator_x86_64.hpp +++ b/src/hotspot/cpu/x86/stubGenerator_x86_64.hpp @@ -497,6 +497,10 @@ class StubGenerator: public StubCodeGenerator { address generate_intpoly_montgomeryMult_P256(); address generate_intpoly_assign(); + // SHA3 stubs + void generate_sha3_stubs(); + address generate_sha3_implCompress(bool multiBlock, const char *name); + // BASE64 stubs address base64_shuffle_addr(); diff --git a/src/hotspot/cpu/x86/stubGenerator_x86_64_sha3.cpp b/src/hotspot/cpu/x86/stubGenerator_x86_64_sha3.cpp new file mode 100644 index 00000000000..49c39226708 --- /dev/null +++ b/src/hotspot/cpu/x86/stubGenerator_x86_64_sha3.cpp @@ -0,0 +1,326 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "asm/assembler.inline.hpp" +#include "runtime/stubRoutines.hpp" +#include "macroAssembler_x86.hpp" +#include "stubGenerator_x86_64.hpp" + +#define __ _masm-> + +#ifdef PRODUCT +#define BLOCK_COMMENT(str) /* nothing */ +#else +#define BLOCK_COMMENT(str) __ block_comment(str) +#endif // PRODUCT + +#define BIND(label) bind(label); BLOCK_COMMENT(#label ":") + +// Constants +ATTRIBUTE_ALIGNED(64) static const uint64_t round_consts_arr[24] = { + 0x0000000000000001L, 0x0000000000008082L, 0x800000000000808AL, + 0x8000000080008000L, 0x000000000000808BL, 0x0000000080000001L, + 0x8000000080008081L, 0x8000000000008009L, 0x000000000000008AL, + 0x0000000000000088L, 0x0000000080008009L, 0x000000008000000AL, + 0x000000008000808BL, 0x800000000000008BL, 0x8000000000008089L, + 0x8000000000008003L, 0x8000000000008002L, 0x8000000000000080L, + 0x000000000000800AL, 0x800000008000000AL, 0x8000000080008081L, + 0x8000000000008080L, 0x0000000080000001L, 0x8000000080008008L + }; + +ATTRIBUTE_ALIGNED(64) static const uint64_t permsAndRots[] = { + // permutation in combined rho and pi + 9, 2, 11, 0, 1, 2, 3, 4, // step 1 and 3 + 8, 1, 9, 2, 11, 4, 12, 0, // step 2 + 9, 2, 10, 3, 11, 4, 12, 0, // step 4 + 8, 9, 2, 3, 4, 5, 6, 7, // step 5 + 0, 8, 9, 10, 15, 0, 0, 0, // step 6 + 4, 5, 8, 9, 6, 7, 10, 11, // step 7 and 8 + 0, 1, 2, 3, 13, 0, 0, 0, // step 9 + 2, 3, 0, 1, 11, 0, 0, 0, // step 10 + 4, 5, 6, 7, 14, 0, 0, 0, // step 11 + 14, 15, 12, 13, 4, 0, 0, 0, // step 12 + // size of rotations (after step 5) + 1, 6, 62, 55, 28, 20, 27, 36, + 3, 45, 10, 15, 25, 8, 39, 41, + 44, 43, 21, 18, 2, 61, 56, 14, + // rotation of row elements + 12, 8, 9, 10, 11, 5, 6, 7, + 9, 10, 11, 12, 8, 5, 6, 7 +}; + +static address round_constsAddr() { + return (address) round_consts_arr; +} + +static address permsAndRotsAddr() { + return (address) permsAndRots; +} + +void StubGenerator::generate_sha3_stubs() { + if (UseSHA3Intrinsics) { + StubRoutines::_sha3_implCompress = generate_sha3_implCompress(false,"sha3_implCompress"); + StubRoutines::_sha3_implCompressMB = generate_sha3_implCompress(true, "sha3_implCompressMB"); + } +} + +// Arguments: +// +// Inputs: +// c_rarg0 - byte[] source+offset +// c_rarg1 - long[] SHA3.state +// c_rarg2 - int block_size +// c_rarg3 - int offset +// c_rarg4 - int limit +// +address StubGenerator::generate_sha3_implCompress(bool multiBlock, const char *name) { + __ align(CodeEntryAlignment); + StubCodeMark mark(this, "StubRoutines", name); + address start = __ pc(); + + const Register buf = c_rarg0; + const Register state = c_rarg1; + const Register block_size = c_rarg2; + const Register ofs = c_rarg3; +#ifndef _WIN64 + const Register limit = c_rarg4; +#else + const Address limit_mem(rbp, 6 * wordSize); + const Register limit = r12; +#endif + + const Register permsAndRots = r10; + const Register round_consts = r11; + const Register constant2use = r13; + const Register roundsLeft = r14; + + Label sha3_loop; + Label rounds24_loop, block104, block136, block144, block168; + + __ enter(); + + __ push(r12); + __ push(r13); + __ push(r14); + +#ifdef _WIN64 + // on win64, fill limit from stack position + __ movptr(limit, limit_mem); +#endif + + __ lea(permsAndRots, ExternalAddress(permsAndRotsAddr())); + __ lea(round_consts, ExternalAddress(round_constsAddr())); + + // set up the masks + __ movl(rax, 0x1F); + __ kmovwl(k5, rax); + __ kshiftrwl(k4, k5, 1); + __ kshiftrwl(k3, k5, 2); + __ kshiftrwl(k2, k5, 3); + __ kshiftrwl(k1, k5, 4); + + // load the state + __ evmovdquq(xmm0, k5, Address(state, 0), false, Assembler::AVX_512bit); + __ evmovdquq(xmm1, k5, Address(state, 40), false, Assembler::AVX_512bit); + __ evmovdquq(xmm2, k5, Address(state, 80), false, Assembler::AVX_512bit); + __ evmovdquq(xmm3, k5, Address(state, 120), false, Assembler::AVX_512bit); + __ evmovdquq(xmm4, k5, Address(state, 160), false, Assembler::AVX_512bit); + + // load the permutation and rotation constants + __ evmovdquq(xmm17, Address(permsAndRots, 0), Assembler::AVX_512bit); + __ evmovdquq(xmm18, Address(permsAndRots, 64), Assembler::AVX_512bit); + __ evmovdquq(xmm19, Address(permsAndRots, 128), Assembler::AVX_512bit); + __ evmovdquq(xmm20, Address(permsAndRots, 192), Assembler::AVX_512bit); + __ evmovdquq(xmm21, Address(permsAndRots, 256), Assembler::AVX_512bit); + __ evmovdquq(xmm22, Address(permsAndRots, 320), Assembler::AVX_512bit); + __ evmovdquq(xmm23, Address(permsAndRots, 384), Assembler::AVX_512bit); + __ evmovdquq(xmm24, Address(permsAndRots, 448), Assembler::AVX_512bit); + __ evmovdquq(xmm25, Address(permsAndRots, 512), Assembler::AVX_512bit); + __ evmovdquq(xmm26, Address(permsAndRots, 576), Assembler::AVX_512bit); + __ evmovdquq(xmm27, Address(permsAndRots, 640), Assembler::AVX_512bit); + __ evmovdquq(xmm28, Address(permsAndRots, 704), Assembler::AVX_512bit); + __ evmovdquq(xmm29, Address(permsAndRots, 768), Assembler::AVX_512bit); + __ evmovdquq(xmm30, Address(permsAndRots, 832), Assembler::AVX_512bit); + __ evmovdquq(xmm31, Address(permsAndRots, 896), Assembler::AVX_512bit); + + __ BIND(sha3_loop); + + // there will be 24 keccak rounds + __ movl(roundsLeft, 24); + // load round_constants base + __ movptr(constant2use, round_consts); + + // load input: 72, 104, 136, 144 or 168 bytes + // i.e. 5+4, 2*5+3, 3*5+2, 3*5+3 or 4*5+1 longs + __ evpxorq(xmm0, k5, xmm0, Address(buf, 0), true, Assembler::AVX_512bit); + + // if(blockSize == 72) SHA3-512 + __ cmpl(block_size, 72); + __ jcc(Assembler::notEqual, block104); + __ evpxorq(xmm1, k4, xmm1, Address(buf, 40), true, Assembler::AVX_512bit); + __ jmp(rounds24_loop); + + // if(blockSize == 104) SHA3-384 + __ BIND(block104); + __ cmpl(block_size, 104); + __ jcc(Assembler::notEqual, block136); + __ evpxorq(xmm1, k5, xmm1, Address(buf, 40), true, Assembler::AVX_512bit); + __ evpxorq(xmm2, k3, xmm2, Address(buf, 80), true, Assembler::AVX_512bit); + __ jmp(rounds24_loop); + + // if(blockSize == 136) SHA3-256 and SHAKE256 + __ BIND(block136); + __ cmpl(block_size, 136); + __ jcc(Assembler::notEqual, block144); + __ evpxorq(xmm1, k5, xmm1, Address(buf, 40), true, Assembler::AVX_512bit); + __ evpxorq(xmm2, k5, xmm2, Address(buf, 80), true, Assembler::AVX_512bit); + __ evpxorq(xmm3, k2, xmm3, Address(buf, 120), true, Assembler::AVX_512bit); + __ jmp(rounds24_loop); + + // if(blockSize == 144) SHA3-224 + __ BIND(block144); + __ cmpl(block_size, 144); + __ jcc(Assembler::notEqual, block168); + __ evpxorq(xmm1, k5, xmm1, Address(buf, 40), true, Assembler::AVX_512bit); + __ evpxorq(xmm2, k5, xmm2, Address(buf, 80), true, Assembler::AVX_512bit); + __ evpxorq(xmm3, k3, xmm3, Address(buf, 120), true, Assembler::AVX_512bit); + __ jmp(rounds24_loop); + + // if(blockSize == 168) SHAKE128 + __ BIND(block168); + __ evpxorq(xmm1, k5, xmm1, Address(buf, 40), true, Assembler::AVX_512bit); + __ evpxorq(xmm2, k5, xmm2, Address(buf, 80), true, Assembler::AVX_512bit); + __ evpxorq(xmm3, k5, xmm3, Address(buf, 120), true, Assembler::AVX_512bit); + __ evpxorq(xmm4, k1, xmm4, Address(buf, 160), true, Assembler::AVX_512bit); + + // The 24 rounds of the keccak transformation. + // The implementation closely follows the Java version, with the state + // array "rows" in the lowest 5 64-bit slots of zmm0 - zmm4, i.e. + // each row of the SHA3 specification is located in one zmm register. + __ BIND(rounds24_loop); + __ subl(roundsLeft, 1); + + __ evmovdquw(xmm5, xmm0, Assembler::AVX_512bit); + // vpternlogq(x, 150, y, z) does x = x ^ y ^ z + __ vpternlogq(xmm5, 150, xmm1, xmm2, Assembler::AVX_512bit); + __ vpternlogq(xmm5, 150, xmm3, xmm4, Assembler::AVX_512bit); + // Now the "c row", i.e. c0-c4 are in zmm5. + // Rotate each element of the c row by one bit to zmm6, call the + // rotated version c'. + __ evprolq(xmm6, xmm5, 1, Assembler::AVX_512bit); + // Rotate elementwise the c row so that c4 becomes c0, + // c0 becomes c1, etc. + __ evpermt2q(xmm5, xmm30, xmm5, Assembler::AVX_512bit); + // rotate elementwise the c' row so that c'0 becomes c'4, + // c'1 becomes c'0, etc. + __ evpermt2q(xmm6, xmm31, xmm6, Assembler::AVX_512bit); + __ vpternlogq(xmm0, 150, xmm5, xmm6, Assembler::AVX_512bit); + __ vpternlogq(xmm1, 150, xmm5, xmm6, Assembler::AVX_512bit); + __ vpternlogq(xmm2, 150, xmm5, xmm6, Assembler::AVX_512bit); + __ vpternlogq(xmm3, 150, xmm5, xmm6, Assembler::AVX_512bit); + __ vpternlogq(xmm4, 150, xmm5, xmm6, Assembler::AVX_512bit); + // Now the theta mapping has been finished. + + // Do the cyclical permutation of the 24 moving state elements + // and the required rotations within each element (the combined + // rho and sigma steps). + __ evpermt2q(xmm4, xmm17, xmm3, Assembler::AVX_512bit); + __ evpermt2q(xmm3, xmm18, xmm2, Assembler::AVX_512bit); + __ evpermt2q(xmm2, xmm17, xmm1, Assembler::AVX_512bit); + __ evpermt2q(xmm1, xmm19, xmm0, Assembler::AVX_512bit); + __ evpermt2q(xmm4, xmm20, xmm2, Assembler::AVX_512bit); + // The 24 moving elements are now in zmm1, zmm3 and zmm4, + // do the rotations now. + __ evprolvq(xmm1, xmm1, xmm27, Assembler::AVX_512bit); + __ evprolvq(xmm3, xmm3, xmm28, Assembler::AVX_512bit); + __ evprolvq(xmm4, xmm4, xmm29, Assembler::AVX_512bit); + __ evmovdquw(xmm2, xmm1, Assembler::AVX_512bit); + __ evmovdquw(xmm5, xmm3, Assembler::AVX_512bit); + __ evpermt2q(xmm0, xmm21, xmm4, Assembler::AVX_512bit); + __ evpermt2q(xmm1, xmm22, xmm3, Assembler::AVX_512bit); + __ evpermt2q(xmm5, xmm22, xmm2, Assembler::AVX_512bit); + __ evmovdquw(xmm3, xmm1, Assembler::AVX_512bit); + __ evmovdquw(xmm2, xmm5, Assembler::AVX_512bit); + __ evpermt2q(xmm1, xmm23, xmm4, Assembler::AVX_512bit); + __ evpermt2q(xmm2, xmm24, xmm4, Assembler::AVX_512bit); + __ evpermt2q(xmm3, xmm25, xmm4, Assembler::AVX_512bit); + __ evpermt2q(xmm4, xmm26, xmm5, Assembler::AVX_512bit); + // The combined rho and sigma steps are done. + + // Do the chi step (the same operation on all 5 rows). + // vpternlogq(x, 180, y, z) does x = x ^ (y & ~z). + __ evpermt2q(xmm5, xmm31, xmm0, Assembler::AVX_512bit); + __ evpermt2q(xmm6, xmm31, xmm5, Assembler::AVX_512bit); + __ vpternlogq(xmm0, 180, xmm6, xmm5, Assembler::AVX_512bit); + + __ evpermt2q(xmm5, xmm31, xmm1, Assembler::AVX_512bit); + __ evpermt2q(xmm6, xmm31, xmm5, Assembler::AVX_512bit); + __ vpternlogq(xmm1, 180, xmm6, xmm5, Assembler::AVX_512bit); + + // xor the round constant into a0 (the lowest 64 bits of zmm0 + __ evpxorq(xmm0, k1, xmm0, Address(constant2use, 0), true, Assembler::AVX_512bit); + __ addptr(constant2use, 8); + + __ evpermt2q(xmm5, xmm31, xmm2, Assembler::AVX_512bit); + __ evpermt2q(xmm6, xmm31, xmm5, Assembler::AVX_512bit); + __ vpternlogq(xmm2, 180, xmm6, xmm5, Assembler::AVX_512bit); + + __ evpermt2q(xmm5, xmm31, xmm3, Assembler::AVX_512bit); + __ evpermt2q(xmm6, xmm31, xmm5, Assembler::AVX_512bit); + __ vpternlogq(xmm3, 180, xmm6, xmm5, Assembler::AVX_512bit); + + __ evpermt2q(xmm5, xmm31, xmm4, Assembler::AVX_512bit); + __ evpermt2q(xmm6, xmm31, xmm5, Assembler::AVX_512bit); + __ vpternlogq(xmm4, 180, xmm6, xmm5, Assembler::AVX_512bit); + __ cmpl(roundsLeft, 0); + __ jcc(Assembler::notEqual, rounds24_loop); + + if (multiBlock) { + __ addptr(buf, block_size); + __ addl(ofs, block_size); + __ cmpl(ofs, limit); + __ jcc(Assembler::lessEqual, sha3_loop); + __ movq(rax, ofs); // return ofs + } else { + __ xorq(rax, rax); // return 0 + } + + // store the state + __ evmovdquq(Address(state, 0), k5, xmm0, true, Assembler::AVX_512bit); + __ evmovdquq(Address(state, 40), k5, xmm1, true, Assembler::AVX_512bit); + __ evmovdquq(Address(state, 80), k5, xmm2, true, Assembler::AVX_512bit); + __ evmovdquq(Address(state, 120), k5, xmm3, true, Assembler::AVX_512bit); + __ evmovdquq(Address(state, 160), k5, xmm4, true, Assembler::AVX_512bit); + + __ pop(r14); + __ pop(r13); + __ pop(r12); + + __ leave(); // required for proper stackwalking of RuntimeStub frame + __ ret(0); + + return start; +} diff --git a/src/hotspot/cpu/x86/vm_version_x86.cpp b/src/hotspot/cpu/x86/vm_version_x86.cpp index 63347c51d60..f8c5de551cd 100644 --- a/src/hotspot/cpu/x86/vm_version_x86.cpp +++ b/src/hotspot/cpu/x86/vm_version_x86.cpp @@ -1316,9 +1316,16 @@ void VM_Version::get_processor_features() { FLAG_SET_DEFAULT(UseSHA512Intrinsics, false); } - if (UseSHA3Intrinsics) { - warning("Intrinsics for SHA3-224, SHA3-256, SHA3-384 and SHA3-512 crypto hash functions not available on this CPU."); - FLAG_SET_DEFAULT(UseSHA3Intrinsics, false); +#ifdef _LP64 + if (supports_evex() && supports_avx512bw()) { + if (FLAG_IS_DEFAULT(UseSHA3Intrinsics)) { + UseSHA3Intrinsics = true; + } + } else +#endif + if (UseSHA3Intrinsics) { + warning("Intrinsics for SHA3-224, SHA3-256, SHA3-384 and SHA3-512 crypto hash functions not available on this CPU."); + FLAG_SET_DEFAULT(UseSHA3Intrinsics, false); } if (!(UseSHA1Intrinsics || UseSHA256Intrinsics || UseSHA512Intrinsics)) { diff --git a/src/hotspot/cpu/x86/vm_version_x86.hpp b/src/hotspot/cpu/x86/vm_version_x86.hpp index beac8a0f2d7..791f4a1fec7 100644 --- a/src/hotspot/cpu/x86/vm_version_x86.hpp +++ b/src/hotspot/cpu/x86/vm_version_x86.hpp @@ -640,9 +640,10 @@ class VM_Version : public Abstract_VM_Version { LP64_ONLY(static void clear_apx_test_state()); static void clean_cpuFeatures() { _features = 0; } - static void set_avx_cpuFeatures() { _features = (CPU_SSE | CPU_SSE2 | CPU_AVX | CPU_VZEROUPPER ); } - static void set_evex_cpuFeatures() { _features = (CPU_AVX512F | CPU_SSE | CPU_SSE2 | CPU_VZEROUPPER ); } + static void set_avx_cpuFeatures() { _features |= (CPU_SSE | CPU_SSE2 | CPU_AVX | CPU_VZEROUPPER ); } + static void set_evex_cpuFeatures() { _features |= (CPU_AVX512F | CPU_SSE | CPU_SSE2 | CPU_VZEROUPPER ); } static void set_apx_cpuFeatures() { _features |= CPU_APX_F; } + static void set_bmi_cpuFeatures() { _features |= (CPU_BMI1 | CPU_BMI2 | CPU_LZCNT); } // Initialization static void initialize(); diff --git a/src/hotspot/cpu/x86/x86.ad b/src/hotspot/cpu/x86/x86.ad index 43c959bb917..cbe05429fc4 100644 --- a/src/hotspot/cpu/x86/x86.ad +++ b/src/hotspot/cpu/x86/x86.ad @@ -1765,6 +1765,12 @@ bool Matcher::match_rule_supported_vector(int opcode, int vlen, BasicType bt) { return false; } break; + case Op_UMinV: + case Op_UMaxV: + if (UseAVX == 0) { + return false; + } + break; case Op_MaxV: case Op_MinV: if (UseSSE < 4 && is_integral_type(bt)) { @@ -1935,6 +1941,15 @@ bool Matcher::match_rule_supported_vector(int opcode, int vlen, BasicType bt) { return false; } break; + case Op_SaturatingAddV: + case Op_SaturatingSubV: + if (UseAVX < 1) { + return false; // Implementation limitation + } + if (is_subword_type(bt) && size_in_bits == 512 && !VM_Version::supports_avx512bw()) { + return false; + } + break; case Op_SelectFromTwoVector: if (size_in_bits < 128 || (size_in_bits < 512 && !VM_Version::supports_avx512vl())) { return false; @@ -2125,6 +2140,8 @@ bool Matcher::match_rule_supported_vector_masked(int opcode, int vlen, BasicType case Op_MaxV: case Op_MinV: + case Op_UMinV: + case Op_UMaxV: if (is_subword_type(bt) && !VM_Version::supports_avx512bw()) { return false; // Implementation limitation } @@ -2132,6 +2149,15 @@ bool Matcher::match_rule_supported_vector_masked(int opcode, int vlen, BasicType return false; // Implementation limitation } return true; + case Op_SaturatingAddV: + case Op_SaturatingSubV: + if (!is_subword_type(bt)) { + return false; + } + if (size_in_bits < 128 || !VM_Version::supports_avx512bw()) { + return false; // Implementation limitation + } + return true; case Op_VectorMaskCmp: if (is_subword_type(bt) && !VM_Version::supports_avx512bw()) { @@ -6492,6 +6518,80 @@ instruct evminmaxFP_reg_eavx(vec dst, vec a, vec b, vec atmp, vec btmp, kReg ktm ins_pipe( pipe_slow ); %} +// ------------------------------ Unsigned vector Min/Max ---------------------- + +instruct vector_uminmax_reg(vec dst, vec a, vec b) %{ + predicate(VM_Version::supports_avx512vl() || Matcher::vector_element_basic_type(n) != T_LONG); + match(Set dst (UMinV a b)); + match(Set dst (UMaxV a b)); + format %{ "vector_uminmax $dst,$a,$b\t!" %} + ins_encode %{ + int opcode = this->ideal_Opcode(); + int vlen_enc = vector_length_encoding(this); + BasicType elem_bt = Matcher::vector_element_basic_type(this); + assert(is_integral_type(elem_bt), ""); + __ vpuminmax(opcode, elem_bt, $dst$$XMMRegister, $a$$XMMRegister, $b$$XMMRegister, vlen_enc); + %} + ins_pipe( pipe_slow ); +%} + +instruct vector_uminmax_mem(vec dst, vec a, memory b) %{ + predicate(VM_Version::supports_avx512vl() || Matcher::vector_element_basic_type(n) != T_LONG); + match(Set dst (UMinV a (LoadVector b))); + match(Set dst (UMaxV a (LoadVector b))); + format %{ "vector_uminmax $dst,$a,$b\t!" %} + ins_encode %{ + int opcode = this->ideal_Opcode(); + int vlen_enc = vector_length_encoding(this); + BasicType elem_bt = Matcher::vector_element_basic_type(this); + assert(is_integral_type(elem_bt), ""); + __ vpuminmax(opcode, elem_bt, $dst$$XMMRegister, $a$$XMMRegister, $b$$Address, vlen_enc); + %} + ins_pipe( pipe_slow ); +%} + +instruct vector_uminmaxq_reg(vec dst, vec a, vec b, vec xtmp1, vec xtmp2) %{ + predicate(!VM_Version::supports_avx512vl() && Matcher::vector_element_basic_type(n) == T_LONG); + match(Set dst (UMinV a b)); + match(Set dst (UMaxV a b)); + effect(TEMP xtmp1, TEMP xtmp2); + format %{ "vector_uminmaxq $dst,$a,$b\t! using xtmp1 and xtmp2 as TEMP" %} + ins_encode %{ + int opcode = this->ideal_Opcode(); + int vlen_enc = vector_length_encoding(this); + __ vpuminmaxq(opcode, $dst$$XMMRegister, $a$$XMMRegister, $b$$XMMRegister, $xtmp1$$XMMRegister, $xtmp2$$XMMRegister, vlen_enc); + %} + ins_pipe( pipe_slow ); +%} + +instruct vector_uminmax_reg_masked(vec dst, vec src1, vec src2, kReg mask) %{ + match(Set dst (UMinV (Binary src1 src2) mask)); + match(Set dst (UMaxV (Binary src1 src2) mask)); + format %{ "vector_uminmax_masked $dst, $src1, $src2, $mask\t! umin/max masked operation" %} + ins_encode %{ + int vlen_enc = vector_length_encoding(this); + BasicType bt = Matcher::vector_element_basic_type(this); + int opc = this->ideal_Opcode(); + __ evmasked_op(opc, bt, $mask$$KRegister, $dst$$XMMRegister, + $dst$$XMMRegister, $src2$$XMMRegister, true, vlen_enc); + %} + ins_pipe( pipe_slow ); +%} + +instruct vector_uminmax_mem_masked(vec dst, vec src1, memory src2, kReg mask) %{ + match(Set dst (UMinV (Binary src1 (LoadVector src2)) mask)); + match(Set dst (UMaxV (Binary src1 (LoadVector src2)) mask)); + format %{ "vector_uminmax_masked $dst, $dst, $src2, $mask\t! umin/max masked operation" %} + ins_encode %{ + int vlen_enc = vector_length_encoding(this); + BasicType bt = Matcher::vector_element_basic_type(this); + int opc = this->ideal_Opcode(); + __ evmasked_op(opc, bt, $mask$$KRegister, $dst$$XMMRegister, + $src1$$XMMRegister, $src2$$Address, true, vlen_enc); + %} + ins_pipe( pipe_slow ); +%} + // --------------------------------- Signum/CopySign --------------------------- instruct signumF_reg(regF dst, regF zero, regF one, rFlagsReg cr) %{ @@ -10484,6 +10584,236 @@ instruct DoubleClassCheck_reg_reg_vfpclass(rRegI dst, regD src, kReg ktmp, rFlag ins_pipe(pipe_slow); %} +instruct vector_addsub_saturating_subword_reg(vec dst, vec src1, vec src2) +%{ + predicate(is_subword_type(Matcher::vector_element_basic_type(n)) && + n->is_SaturatingVector() && !n->as_SaturatingVector()->is_unsigned()); + match(Set dst (SaturatingAddV src1 src2)); + match(Set dst (SaturatingSubV src1 src2)); + format %{ "vector_addsub_saturating_subword $dst, $src1, $src2" %} + ins_encode %{ + int vlen_enc = vector_length_encoding(this); + BasicType elem_bt = Matcher::vector_element_basic_type(this); + __ vector_saturating_op(this->ideal_Opcode(), elem_bt, $dst$$XMMRegister, + $src1$$XMMRegister, $src2$$XMMRegister, false, vlen_enc); + %} + ins_pipe(pipe_slow); +%} + +instruct vector_addsub_saturating_unsigned_subword_reg(vec dst, vec src1, vec src2) +%{ + predicate(is_subword_type(Matcher::vector_element_basic_type(n)) && + n->is_SaturatingVector() && n->as_SaturatingVector()->is_unsigned()); + match(Set dst (SaturatingAddV src1 src2)); + match(Set dst (SaturatingSubV src1 src2)); + format %{ "vector_addsub_saturating_unsigned_subword $dst, $src1, $src2" %} + ins_encode %{ + int vlen_enc = vector_length_encoding(this); + BasicType elem_bt = Matcher::vector_element_basic_type(this); + __ vector_saturating_op(this->ideal_Opcode(), elem_bt, $dst$$XMMRegister, + $src1$$XMMRegister, $src2$$XMMRegister, true, vlen_enc); + %} + ins_pipe(pipe_slow); +%} + +instruct vector_addsub_saturating_reg_evex(vec dst, vec src1, vec src2, vec xtmp1, vec xtmp2, kReg ktmp1, kReg ktmp2) +%{ + predicate(!is_subword_type(Matcher::vector_element_basic_type(n)) && + n->is_SaturatingVector() && !n->as_SaturatingVector()->is_unsigned() && + (Matcher::vector_length_in_bytes(n) == 64 || VM_Version::supports_avx512vl())); + match(Set dst (SaturatingAddV src1 src2)); + match(Set dst (SaturatingSubV src1 src2)); + effect(TEMP dst, TEMP xtmp1, TEMP xtmp2, TEMP ktmp1, TEMP ktmp2); + format %{ "vector_addsub_saturating_evex $dst, $src1, $src2 \t! using $xtmp1, $xtmp2, $ktmp1 and $ktmp2 as TEMP" %} + ins_encode %{ + int vlen_enc = vector_length_encoding(this); + BasicType elem_bt = Matcher::vector_element_basic_type(this); + __ vector_addsub_dq_saturating_evex(this->ideal_Opcode(), elem_bt, $dst$$XMMRegister, + $src1$$XMMRegister, $src2$$XMMRegister, + $xtmp1$$XMMRegister, $xtmp2$$XMMRegister, + $ktmp1$$KRegister, $ktmp2$$KRegister, vlen_enc); + %} + ins_pipe(pipe_slow); +%} + +instruct vector_addsub_saturating_reg_avx(vec dst, vec src1, vec src2, vec xtmp1, vec xtmp2, vec xtmp3, vec xtmp4) +%{ + predicate(!is_subword_type(Matcher::vector_element_basic_type(n)) && + n->is_SaturatingVector() && !n->as_SaturatingVector()->is_unsigned() && + Matcher::vector_length_in_bytes(n) <= 32 && !VM_Version::supports_avx512vl()); + match(Set dst (SaturatingAddV src1 src2)); + match(Set dst (SaturatingSubV src1 src2)); + effect(TEMP dst, TEMP xtmp1, TEMP xtmp2, TEMP xtmp3, TEMP xtmp4); + format %{ "vector_addsub_saturating_avx $dst, $src1, $src2 \t! using $xtmp1, $xtmp2, $xtmp3 and $xtmp4 as TEMP" %} + ins_encode %{ + int vlen_enc = vector_length_encoding(this); + BasicType elem_bt = Matcher::vector_element_basic_type(this); + __ vector_addsub_dq_saturating_avx(this->ideal_Opcode(), elem_bt, $dst$$XMMRegister, $src1$$XMMRegister, + $src2$$XMMRegister, $xtmp1$$XMMRegister, $xtmp2$$XMMRegister, + $xtmp3$$XMMRegister, $xtmp4$$XMMRegister, vlen_enc); + %} + ins_pipe(pipe_slow); +%} + +instruct vector_add_saturating_unsigned_reg_evex(vec dst, vec src1, vec src2, vec xtmp1, vec xtmp2, kReg ktmp) +%{ + predicate(!is_subword_type(Matcher::vector_element_basic_type(n)) && + n->is_SaturatingVector() && n->as_SaturatingVector()->is_unsigned() && + (Matcher::vector_length_in_bytes(n) == 64 || VM_Version::supports_avx512vl())); + match(Set dst (SaturatingAddV src1 src2)); + effect(TEMP dst, TEMP xtmp1, TEMP xtmp2, TEMP ktmp); + format %{ "vector_add_saturating_unsigned_evex $dst, $src1, $src2 \t! using $xtmp1, $xtmp2 and $ktmp as TEMP" %} + ins_encode %{ + int vlen_enc = vector_length_encoding(this); + BasicType elem_bt = Matcher::vector_element_basic_type(this); + __ vector_add_dq_saturating_unsigned_evex(elem_bt, $dst$$XMMRegister, $src1$$XMMRegister, $src2$$XMMRegister, + $xtmp1$$XMMRegister, $xtmp2$$XMMRegister, $ktmp$$KRegister, vlen_enc); + %} + ins_pipe(pipe_slow); +%} + +instruct vector_add_saturating_unsigned_reg_avx(vec dst, vec src1, vec src2, vec xtmp1, vec xtmp2, vec xtmp3) +%{ + predicate(!is_subword_type(Matcher::vector_element_basic_type(n)) && + n->is_SaturatingVector() && n->as_SaturatingVector()->is_unsigned() && + Matcher::vector_length_in_bytes(n) <= 32 && !VM_Version::supports_avx512vl()); + match(Set dst (SaturatingAddV src1 src2)); + effect(TEMP dst, TEMP xtmp1, TEMP xtmp2, TEMP xtmp3); + format %{ "vector_add_saturating_unsigned_avx $dst, $src1, $src2 \t! using $xtmp1, $xtmp2 and $xtmp3 as TEMP" %} + ins_encode %{ + int vlen_enc = vector_length_encoding(this); + BasicType elem_bt = Matcher::vector_element_basic_type(this); + __ vector_add_dq_saturating_unsigned_avx(elem_bt, $dst$$XMMRegister, $src1$$XMMRegister, $src2$$XMMRegister, + $xtmp1$$XMMRegister, $xtmp2$$XMMRegister, $xtmp3$$XMMRegister, vlen_enc); + %} + ins_pipe(pipe_slow); +%} + +instruct vector_sub_saturating_unsigned_reg_evex(vec dst, vec src1, vec src2, kReg ktmp) +%{ + predicate(!is_subword_type(Matcher::vector_element_basic_type(n)) && + n->is_SaturatingVector() && n->as_SaturatingVector()->is_unsigned() && + (Matcher::vector_length_in_bytes(n) == 64 || VM_Version::supports_avx512vl())); + match(Set dst (SaturatingSubV src1 src2)); + effect(TEMP ktmp); + format %{ "vector_sub_saturating_unsigned_evex $dst, $src1, $src2 \t! using $ktmp as TEMP" %} + ins_encode %{ + int vlen_enc = vector_length_encoding(this); + BasicType elem_bt = Matcher::vector_element_basic_type(this); + __ vector_sub_dq_saturating_unsigned_evex(elem_bt, $dst$$XMMRegister, $src1$$XMMRegister, + $src2$$XMMRegister, $ktmp$$KRegister, vlen_enc); + %} + ins_pipe(pipe_slow); +%} + +instruct vector_sub_saturating_unsigned_reg_avx(vec dst, vec src1, vec src2, vec xtmp1, vec xtmp2) +%{ + predicate(!is_subword_type(Matcher::vector_element_basic_type(n)) && + n->is_SaturatingVector() && n->as_SaturatingVector()->is_unsigned() && + Matcher::vector_length_in_bytes(n) <= 32 && !VM_Version::supports_avx512vl()); + match(Set dst (SaturatingSubV src1 src2)); + effect(TEMP dst, TEMP xtmp1, TEMP xtmp2); + format %{ "vector_sub_saturating_unsigned_avx $dst, $src1, $src2 \t! using $xtmp1 and $xtmp2 as TEMP" %} + ins_encode %{ + int vlen_enc = vector_length_encoding(this); + BasicType elem_bt = Matcher::vector_element_basic_type(this); + __ vector_sub_dq_saturating_unsigned_avx(elem_bt, $dst$$XMMRegister, $src1$$XMMRegister, $src2$$XMMRegister, + $xtmp1$$XMMRegister, $xtmp2$$XMMRegister, vlen_enc); + %} + ins_pipe(pipe_slow); +%} + +instruct vector_addsub_saturating_subword_mem(vec dst, vec src1, memory src2) +%{ + predicate(is_subword_type(Matcher::vector_element_basic_type(n)) && + n->is_SaturatingVector() && !n->as_SaturatingVector()->is_unsigned()); + match(Set dst (SaturatingAddV src1 (LoadVector src2))); + match(Set dst (SaturatingSubV src1 (LoadVector src2))); + format %{ "vector_addsub_saturating_subword $dst, $src1, $src2" %} + ins_encode %{ + int vlen_enc = vector_length_encoding(this); + BasicType elem_bt = Matcher::vector_element_basic_type(this); + __ vector_saturating_op(this->ideal_Opcode(), elem_bt, $dst$$XMMRegister, + $src1$$XMMRegister, $src2$$Address, false, vlen_enc); + %} + ins_pipe(pipe_slow); +%} + +instruct vector_addsub_saturating_unsigned_subword_mem(vec dst, vec src1, memory src2) +%{ + predicate(is_subword_type(Matcher::vector_element_basic_type(n)) && + n->is_SaturatingVector() && n->as_SaturatingVector()->is_unsigned()); + match(Set dst (SaturatingAddV src1 (LoadVector src2))); + match(Set dst (SaturatingSubV src1 (LoadVector src2))); + format %{ "vector_addsub_saturating_unsigned_subword $dst, $src1, $src2" %} + ins_encode %{ + int vlen_enc = vector_length_encoding(this); + BasicType elem_bt = Matcher::vector_element_basic_type(this); + __ vector_saturating_op(this->ideal_Opcode(), elem_bt, $dst$$XMMRegister, + $src1$$XMMRegister, $src2$$Address, true, vlen_enc); + %} + ins_pipe(pipe_slow); +%} + +instruct vector_addsub_saturating_subword_masked_reg(vec dst, vec src, kReg mask) %{ + predicate(is_subword_type(Matcher::vector_element_basic_type(n)) && + n->is_SaturatingVector() && !n->as_SaturatingVector()->is_unsigned()); + match(Set dst (SaturatingAddV (Binary dst src) mask)); + match(Set dst (SaturatingSubV (Binary dst src) mask)); + format %{ "vector_addsub_saturating_subword_masked $dst, $mask, $src" %} + ins_encode %{ + int vlen_enc = vector_length_encoding(this); + BasicType elem_bt = Matcher::vector_element_basic_type(this); + __ evmasked_saturating_op(this->ideal_Opcode(), elem_bt, $mask$$KRegister, $dst$$XMMRegister, + $dst$$XMMRegister, $src$$XMMRegister, false, true, vlen_enc); + %} + ins_pipe( pipe_slow ); +%} + +instruct vector_addsub_saturating_unsigned_subword_masked_reg(vec dst, vec src, kReg mask) %{ + predicate(is_subword_type(Matcher::vector_element_basic_type(n)) && + n->is_SaturatingVector() && n->as_SaturatingVector()->is_unsigned()); + match(Set dst (SaturatingAddV (Binary dst src) mask)); + match(Set dst (SaturatingSubV (Binary dst src) mask)); + format %{ "vector_addsub_saturating_unsigned_subword_masked $dst, $mask, $src" %} + ins_encode %{ + int vlen_enc = vector_length_encoding(this); + BasicType elem_bt = Matcher::vector_element_basic_type(this); + __ evmasked_saturating_op(this->ideal_Opcode(), elem_bt, $mask$$KRegister, $dst$$XMMRegister, + $dst$$XMMRegister, $src$$XMMRegister, true, true, vlen_enc); + %} + ins_pipe( pipe_slow ); +%} + +instruct vector_addsub_saturating_subword_masked_mem(vec dst, memory src, kReg mask) %{ + predicate(is_subword_type(Matcher::vector_element_basic_type(n)) && + n->is_SaturatingVector() && !n->as_SaturatingVector()->is_unsigned()); + match(Set dst (SaturatingAddV (Binary dst (LoadVector src)) mask)); + match(Set dst (SaturatingSubV (Binary dst (LoadVector src)) mask)); + format %{ "vector_addsub_saturating_subword_masked $dst, $mask, $src" %} + ins_encode %{ + int vlen_enc = vector_length_encoding(this); + BasicType elem_bt = Matcher::vector_element_basic_type(this); + __ evmasked_saturating_op(this->ideal_Opcode(), elem_bt, $mask$$KRegister, $dst$$XMMRegister, + $dst$$XMMRegister, $src$$Address, false, true, vlen_enc); + %} + ins_pipe( pipe_slow ); +%} + +instruct vector_addsub_saturating_unsigned_subword_masked_mem(vec dst, memory src, kReg mask) %{ + predicate(is_subword_type(Matcher::vector_element_basic_type(n)) && + n->is_SaturatingVector() && n->as_SaturatingVector()->is_unsigned()); + match(Set dst (SaturatingAddV (Binary dst (LoadVector src)) mask)); + match(Set dst (SaturatingSubV (Binary dst (LoadVector src)) mask)); + format %{ "vector_addsub_saturating_unsigned_subword_masked $dst, $mask, $src" %} + ins_encode %{ + int vlen_enc = vector_length_encoding(this); + BasicType elem_bt = Matcher::vector_element_basic_type(this); + __ evmasked_saturating_op(this->ideal_Opcode(), elem_bt, $mask$$KRegister, $dst$$XMMRegister, + $dst$$XMMRegister, $src$$Address, true, true, vlen_enc); + %} + ins_pipe( pipe_slow ); +%} instruct vector_selectfrom_twovectors_reg_evex(vec index, vec src1, vec src2) %{ diff --git a/src/hotspot/os/bsd/gc/x/xNUMA_bsd.cpp b/src/hotspot/os/bsd/gc/x/xNUMA_bsd.cpp deleted file mode 100644 index b0e23a1716a..00000000000 --- a/src/hotspot/os/bsd/gc/x/xNUMA_bsd.cpp +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xNUMA.hpp" -#include "utilities/globalDefinitions.hpp" - -void XNUMA::pd_initialize() { - _enabled = false; -} - -uint32_t XNUMA::count() { - return 1; -} - -uint32_t XNUMA::id() { - return 0; -} - -uint32_t XNUMA::memory_id(uintptr_t addr) { - // NUMA support not enabled, assume everything belongs to node zero - return 0; -} diff --git a/src/hotspot/os/bsd/gc/x/xPhysicalMemoryBacking_bsd.cpp b/src/hotspot/os/bsd/gc/x/xPhysicalMemoryBacking_bsd.cpp deleted file mode 100644 index 2c64c3788d3..00000000000 --- a/src/hotspot/os/bsd/gc/x/xPhysicalMemoryBacking_bsd.cpp +++ /dev/null @@ -1,181 +0,0 @@ -/* - * Copyright (c) 2019, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/shared/gcLogPrecious.hpp" -#include "gc/x/xErrno.hpp" -#include "gc/x/xGlobals.hpp" -#include "gc/x/xLargePages.inline.hpp" -#include "gc/x/xPhysicalMemory.inline.hpp" -#include "gc/x/xPhysicalMemoryBacking_bsd.hpp" -#include "logging/log.hpp" -#include "runtime/globals.hpp" -#include "runtime/os.hpp" -#include "utilities/align.hpp" -#include "utilities/debug.hpp" - -#include -#include -#include -#include - -// The backing is represented by a reserved virtual address space, in which -// we commit and uncommit physical memory. Multi-mapping the different heap -// views is done by simply remapping the backing memory using mach_vm_remap(). - -static int vm_flags_superpage() { - if (!XLargePages::is_explicit()) { - return 0; - } - - const int page_size_in_megabytes = XGranuleSize >> 20; - return page_size_in_megabytes << VM_FLAGS_SUPERPAGE_SHIFT; -} - -static XErrno mremap(uintptr_t from_addr, uintptr_t to_addr, size_t size) { - mach_vm_address_t remap_addr = to_addr; - vm_prot_t remap_cur_prot; - vm_prot_t remap_max_prot; - - // Remap memory to an additional location - const kern_return_t res = mach_vm_remap(mach_task_self(), - &remap_addr, - size, - 0 /* mask */, - VM_FLAGS_FIXED | VM_FLAGS_OVERWRITE | vm_flags_superpage(), - mach_task_self(), - from_addr, - FALSE /* copy */, - &remap_cur_prot, - &remap_max_prot, - VM_INHERIT_COPY); - - return (res == KERN_SUCCESS) ? XErrno(0) : XErrno(EINVAL); -} - -XPhysicalMemoryBacking::XPhysicalMemoryBacking(size_t max_capacity) : - _base(0), - _initialized(false) { - - // Reserve address space for backing memory - _base = (uintptr_t)os::reserve_memory(max_capacity); - if (_base == 0) { - // Failed - log_error_pd(gc)("Failed to reserve address space for backing memory"); - return; - } - - // Successfully initialized - _initialized = true; -} - -bool XPhysicalMemoryBacking::is_initialized() const { - return _initialized; -} - -void XPhysicalMemoryBacking::warn_commit_limits(size_t max_capacity) const { - // Does nothing -} - -bool XPhysicalMemoryBacking::commit_inner(size_t offset, size_t length) const { - assert(is_aligned(offset, os::vm_page_size()), "Invalid offset"); - assert(is_aligned(length, os::vm_page_size()), "Invalid length"); - - log_trace(gc, heap)("Committing memory: " SIZE_FORMAT "M-" SIZE_FORMAT "M (" SIZE_FORMAT "M)", - offset / M, (offset + length) / M, length / M); - - const uintptr_t addr = _base + offset; - const void* const res = mmap((void*)addr, length, PROT_READ | PROT_WRITE, MAP_FIXED | MAP_ANONYMOUS | MAP_PRIVATE, -1, 0); - if (res == MAP_FAILED) { - XErrno err; - log_error(gc)("Failed to commit memory (%s)", err.to_string()); - return false; - } - - // Success - return true; -} - -size_t XPhysicalMemoryBacking::commit(size_t offset, size_t length) const { - // Try to commit the whole region - if (commit_inner(offset, length)) { - // Success - return length; - } - - // Failed, try to commit as much as possible - size_t start = offset; - size_t end = offset + length; - - for (;;) { - length = align_down((end - start) / 2, XGranuleSize); - if (length == 0) { - // Done, don't commit more - return start - offset; - } - - if (commit_inner(start, length)) { - // Success, try commit more - start += length; - } else { - // Failed, try commit less - end -= length; - } - } -} - -size_t XPhysicalMemoryBacking::uncommit(size_t offset, size_t length) const { - assert(is_aligned(offset, os::vm_page_size()), "Invalid offset"); - assert(is_aligned(length, os::vm_page_size()), "Invalid length"); - - log_trace(gc, heap)("Uncommitting memory: " SIZE_FORMAT "M-" SIZE_FORMAT "M (" SIZE_FORMAT "M)", - offset / M, (offset + length) / M, length / M); - - const uintptr_t start = _base + offset; - const void* const res = mmap((void*)start, length, PROT_NONE, MAP_FIXED | MAP_ANONYMOUS | MAP_PRIVATE | MAP_NORESERVE, -1, 0); - if (res == MAP_FAILED) { - XErrno err; - log_error(gc)("Failed to uncommit memory (%s)", err.to_string()); - return 0; - } - - return length; -} - -void XPhysicalMemoryBacking::map(uintptr_t addr, size_t size, uintptr_t offset) const { - const XErrno err = mremap(_base + offset, addr, size); - if (err) { - fatal("Failed to remap memory (%s)", err.to_string()); - } -} - -void XPhysicalMemoryBacking::unmap(uintptr_t addr, size_t size) const { - // Note that we must keep the address space reservation intact and just detach - // the backing memory. For this reason we map a new anonymous, non-accessible - // and non-reserved page over the mapping instead of actually unmapping. - const void* const res = mmap((void*)addr, size, PROT_NONE, MAP_FIXED | MAP_ANONYMOUS | MAP_PRIVATE | MAP_NORESERVE, -1, 0); - if (res == MAP_FAILED) { - XErrno err; - fatal("Failed to map memory (%s)", err.to_string()); - } -} diff --git a/src/hotspot/os/bsd/gc/x/xPhysicalMemoryBacking_bsd.hpp b/src/hotspot/os/bsd/gc/x/xPhysicalMemoryBacking_bsd.hpp deleted file mode 100644 index 8b4747026ff..00000000000 --- a/src/hotspot/os/bsd/gc/x/xPhysicalMemoryBacking_bsd.hpp +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (c) 2019, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef OS_BSD_GC_X_XPHYSICALMEMORYBACKING_BSD_HPP -#define OS_BSD_GC_X_XPHYSICALMEMORYBACKING_BSD_HPP - -class XPhysicalMemoryBacking { -private: - uintptr_t _base; - bool _initialized; - - bool commit_inner(size_t offset, size_t length) const; - -public: - XPhysicalMemoryBacking(size_t max_capacity); - - bool is_initialized() const; - - void warn_commit_limits(size_t max_capacity) const; - - size_t commit(size_t offset, size_t length) const; - size_t uncommit(size_t offset, size_t length) const; - - void map(uintptr_t addr, size_t size, uintptr_t offset) const; - void unmap(uintptr_t addr, size_t size) const; -}; - -#endif // OS_BSD_GC_X_XPHYSICALMEMORYBACKING_BSD_HPP diff --git a/src/hotspot/os/linux/gc/x/xLargePages_linux.cpp b/src/hotspot/os/linux/gc/x/xLargePages_linux.cpp deleted file mode 100644 index 6ad956b1e63..00000000000 --- a/src/hotspot/os/linux/gc/x/xLargePages_linux.cpp +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xLargePages.hpp" -#include "runtime/globals.hpp" - -void XLargePages::pd_initialize() { - if (UseLargePages) { - if (UseTransparentHugePages) { - _state = Transparent; - } else { - _state = Explicit; - } - } else { - _state = Disabled; - } -} diff --git a/src/hotspot/os/linux/gc/x/xMountPoint_linux.cpp b/src/hotspot/os/linux/gc/x/xMountPoint_linux.cpp deleted file mode 100644 index 96c0f2f92db..00000000000 --- a/src/hotspot/os/linux/gc/x/xMountPoint_linux.cpp +++ /dev/null @@ -1,154 +0,0 @@ -/* - * Copyright (c) 2016, 2023, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/shared/gcLogPrecious.hpp" -#include "gc/x/xArray.inline.hpp" -#include "gc/x/xErrno.hpp" -#include "gc/x/xMountPoint_linux.hpp" -#include "runtime/globals.hpp" -#include "runtime/os.hpp" -#include "utilities/globalDefinitions.hpp" - -#include -#include - -// Mount information, see proc(5) for more details. -#define PROC_SELF_MOUNTINFO "/proc/self/mountinfo" - -XMountPoint::XMountPoint(const char* filesystem, const char** preferred_mountpoints) { - if (AllocateHeapAt != nullptr) { - // Use specified path - _path = os::strdup(AllocateHeapAt, mtGC); - } else { - // Find suitable path - _path = find_mountpoint(filesystem, preferred_mountpoints); - } -} - -XMountPoint::~XMountPoint() { - os::free(_path); - _path = nullptr; -} - -char* XMountPoint::get_mountpoint(const char* line, const char* filesystem) const { - char* line_mountpoint = nullptr; - char* line_filesystem = nullptr; - - // Parse line and return a newly allocated string containing the mount point if - // the line contains a matching filesystem and the mount point is accessible by - // the current user. - // sscanf, using %m, will return malloced memory. Need raw ::free, not os::free. - if (sscanf(line, "%*u %*u %*u:%*u %*s %ms %*[^-]- %ms", &line_mountpoint, &line_filesystem) != 2 || - strcmp(line_filesystem, filesystem) != 0 || - access(line_mountpoint, R_OK|W_OK|X_OK) != 0) { - // Not a matching or accessible filesystem - ALLOW_C_FUNCTION(::free, ::free(line_mountpoint);) - line_mountpoint = nullptr; - } - - ALLOW_C_FUNCTION(::free, ::free(line_filesystem);) - - return line_mountpoint; -} - -void XMountPoint::get_mountpoints(const char* filesystem, XArray* mountpoints) const { - FILE* fd = os::fopen(PROC_SELF_MOUNTINFO, "r"); - if (fd == nullptr) { - XErrno err; - log_error_p(gc)("Failed to open %s: %s", PROC_SELF_MOUNTINFO, err.to_string()); - return; - } - - char* line = nullptr; - size_t length = 0; - - while (getline(&line, &length, fd) != -1) { - char* const mountpoint = get_mountpoint(line, filesystem); - if (mountpoint != nullptr) { - mountpoints->append(mountpoint); - } - } - - // readline will return malloced memory. Need raw ::free, not os::free. - ALLOW_C_FUNCTION(::free, ::free(line);) - fclose(fd); -} - -void XMountPoint::free_mountpoints(XArray* mountpoints) const { - XArrayIterator iter(mountpoints); - for (char* mountpoint; iter.next(&mountpoint);) { - ALLOW_C_FUNCTION(::free, ::free(mountpoint);) // *not* os::free - } - mountpoints->clear(); -} - -char* XMountPoint::find_preferred_mountpoint(const char* filesystem, - XArray* mountpoints, - const char** preferred_mountpoints) const { - // Find preferred mount point - XArrayIterator iter1(mountpoints); - for (char* mountpoint; iter1.next(&mountpoint);) { - for (const char** preferred = preferred_mountpoints; *preferred != nullptr; preferred++) { - if (!strcmp(mountpoint, *preferred)) { - // Preferred mount point found - return os::strdup(mountpoint, mtGC); - } - } - } - - // Preferred mount point not found - log_error_p(gc)("More than one %s filesystem found:", filesystem); - XArrayIterator iter2(mountpoints); - for (char* mountpoint; iter2.next(&mountpoint);) { - log_error_p(gc)(" %s", mountpoint); - } - - return nullptr; -} - -char* XMountPoint::find_mountpoint(const char* filesystem, const char** preferred_mountpoints) const { - char* path = nullptr; - XArray mountpoints; - - get_mountpoints(filesystem, &mountpoints); - - if (mountpoints.length() == 0) { - // No mount point found - log_error_p(gc)("Failed to find an accessible %s filesystem", filesystem); - } else if (mountpoints.length() == 1) { - // One mount point found - path = os::strdup(mountpoints.at(0), mtGC); - } else { - // More than one mount point found - path = find_preferred_mountpoint(filesystem, &mountpoints, preferred_mountpoints); - } - - free_mountpoints(&mountpoints); - - return path; -} - -const char* XMountPoint::get() const { - return _path; -} diff --git a/src/hotspot/os/linux/gc/x/xMountPoint_linux.hpp b/src/hotspot/os/linux/gc/x/xMountPoint_linux.hpp deleted file mode 100644 index e0ca126e066..00000000000 --- a/src/hotspot/os/linux/gc/x/xMountPoint_linux.hpp +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (c) 2016, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef OS_LINUX_GC_X_XMOUNTPOINT_LINUX_HPP -#define OS_LINUX_GC_X_XMOUNTPOINT_LINUX_HPP - -#include "gc/x/xArray.hpp" -#include "memory/allocation.hpp" - -class XMountPoint : public StackObj { -private: - char* _path; - - char* get_mountpoint(const char* line, - const char* filesystem) const; - void get_mountpoints(const char* filesystem, - XArray* mountpoints) const; - void free_mountpoints(XArray* mountpoints) const; - char* find_preferred_mountpoint(const char* filesystem, - XArray* mountpoints, - const char** preferred_mountpoints) const; - char* find_mountpoint(const char* filesystem, - const char** preferred_mountpoints) const; - -public: - XMountPoint(const char* filesystem, const char** preferred_mountpoints); - ~XMountPoint(); - - const char* get() const; -}; - -#endif // OS_LINUX_GC_X_XMOUNTPOINT_LINUX_HPP diff --git a/src/hotspot/os/linux/gc/x/xNUMA_linux.cpp b/src/hotspot/os/linux/gc/x/xNUMA_linux.cpp deleted file mode 100644 index 0cc557dde6e..00000000000 --- a/src/hotspot/os/linux/gc/x/xNUMA_linux.cpp +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright (c) 2016, 2023, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "gc/x/xCPU.inline.hpp" -#include "gc/x/xErrno.hpp" -#include "gc/x/xNUMA.hpp" -#include "gc/x/xSyscall_linux.hpp" -#include "os_linux.hpp" -#include "runtime/globals.hpp" -#include "runtime/os.hpp" -#include "utilities/debug.hpp" - -void XNUMA::pd_initialize() { - _enabled = UseNUMA; -} - -uint32_t XNUMA::count() { - if (!_enabled) { - // NUMA support not enabled - return 1; - } - - return os::Linux::numa_max_node() + 1; -} - -uint32_t XNUMA::id() { - if (!_enabled) { - // NUMA support not enabled - return 0; - } - - return os::Linux::get_node_by_cpu(XCPU::id()); -} - -uint32_t XNUMA::memory_id(uintptr_t addr) { - if (!_enabled) { - // NUMA support not enabled, assume everything belongs to node zero - return 0; - } - - uint32_t id = (uint32_t)-1; - - if (XSyscall::get_mempolicy((int*)&id, nullptr, 0, (void*)addr, MPOL_F_NODE | MPOL_F_ADDR) == -1) { - XErrno err; - fatal("Failed to get NUMA id for memory at " PTR_FORMAT " (%s)", addr, err.to_string()); - } - - assert(id < count(), "Invalid NUMA id"); - - return id; -} diff --git a/src/hotspot/os/linux/gc/x/xPhysicalMemoryBacking_linux.cpp b/src/hotspot/os/linux/gc/x/xPhysicalMemoryBacking_linux.cpp deleted file mode 100644 index 35625f613d3..00000000000 --- a/src/hotspot/os/linux/gc/x/xPhysicalMemoryBacking_linux.cpp +++ /dev/null @@ -1,724 +0,0 @@ -/* - * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/shared/gcLogPrecious.hpp" -#include "gc/x/xArray.inline.hpp" -#include "gc/x/xErrno.hpp" -#include "gc/x/xGlobals.hpp" -#include "gc/x/xLargePages.inline.hpp" -#include "gc/x/xMountPoint_linux.hpp" -#include "gc/x/xNUMA.inline.hpp" -#include "gc/x/xPhysicalMemoryBacking_linux.hpp" -#include "gc/x/xSyscall_linux.hpp" -#include "logging/log.hpp" -#include "os_linux.hpp" -#include "runtime/init.hpp" -#include "runtime/os.hpp" -#include "runtime/safefetch.hpp" -#include "utilities/align.hpp" -#include "utilities/debug.hpp" -#include "utilities/growableArray.hpp" - -#include -#include -#include -#include -#include -#include -#include - -// -// Support for building on older Linux systems -// - -// memfd_create(2) flags -#ifndef MFD_CLOEXEC -#define MFD_CLOEXEC 0x0001U -#endif -#ifndef MFD_HUGETLB -#define MFD_HUGETLB 0x0004U -#endif -#ifndef MFD_HUGE_2MB -#define MFD_HUGE_2MB 0x54000000U -#endif - -// open(2) flags -#ifndef O_CLOEXEC -#define O_CLOEXEC 02000000 -#endif -#ifndef O_TMPFILE -#define O_TMPFILE (020000000 | O_DIRECTORY) -#endif - -// fallocate(2) flags -#ifndef FALLOC_FL_KEEP_SIZE -#define FALLOC_FL_KEEP_SIZE 0x01 -#endif -#ifndef FALLOC_FL_PUNCH_HOLE -#define FALLOC_FL_PUNCH_HOLE 0x02 -#endif - -// Filesystem types, see statfs(2) -#ifndef TMPFS_MAGIC -#define TMPFS_MAGIC 0x01021994 -#endif -#ifndef HUGETLBFS_MAGIC -#define HUGETLBFS_MAGIC 0x958458f6 -#endif - -// Filesystem names -#define XFILESYSTEM_TMPFS "tmpfs" -#define XFILESYSTEM_HUGETLBFS "hugetlbfs" - -// Proc file entry for max map mount -#define XFILENAME_PROC_MAX_MAP_COUNT "/proc/sys/vm/max_map_count" - -// Sysfs file for transparent huge page on tmpfs -#define XFILENAME_SHMEM_ENABLED "/sys/kernel/mm/transparent_hugepage/shmem_enabled" - -// Java heap filename -#define XFILENAME_HEAP "java_heap" - -// Preferred tmpfs mount points, ordered by priority -static const char* z_preferred_tmpfs_mountpoints[] = { - "/dev/shm", - "/run/shm", - nullptr -}; - -// Preferred hugetlbfs mount points, ordered by priority -static const char* z_preferred_hugetlbfs_mountpoints[] = { - "/dev/hugepages", - "/hugepages", - nullptr -}; - -static int z_fallocate_hugetlbfs_attempts = 3; -static bool z_fallocate_supported = true; - -XPhysicalMemoryBacking::XPhysicalMemoryBacking(size_t max_capacity) : - _fd(-1), - _filesystem(0), - _block_size(0), - _available(0), - _initialized(false) { - - // Create backing file - _fd = create_fd(XFILENAME_HEAP); - if (_fd == -1) { - return; - } - - // Truncate backing file - while (ftruncate(_fd, max_capacity) == -1) { - if (errno != EINTR) { - XErrno err; - log_error_p(gc)("Failed to truncate backing file (%s)", err.to_string()); - return; - } - } - - // Get filesystem statistics - struct statfs buf; - if (fstatfs(_fd, &buf) == -1) { - XErrno err; - log_error_p(gc)("Failed to determine filesystem type for backing file (%s)", err.to_string()); - return; - } - - _filesystem = buf.f_type; - _block_size = buf.f_bsize; - _available = buf.f_bavail * _block_size; - - log_info_p(gc, init)("Heap Backing Filesystem: %s (" UINT64_FORMAT_X ")", - is_tmpfs() ? XFILESYSTEM_TMPFS : is_hugetlbfs() ? XFILESYSTEM_HUGETLBFS : "other", _filesystem); - - // Make sure the filesystem type matches requested large page type - if (XLargePages::is_transparent() && !is_tmpfs()) { - log_error_p(gc)("-XX:+UseTransparentHugePages can only be enabled when using a %s filesystem", - XFILESYSTEM_TMPFS); - return; - } - - if (XLargePages::is_transparent() && !tmpfs_supports_transparent_huge_pages()) { - log_error_p(gc)("-XX:+UseTransparentHugePages on a %s filesystem not supported by kernel", - XFILESYSTEM_TMPFS); - return; - } - - if (XLargePages::is_explicit() && !is_hugetlbfs()) { - log_error_p(gc)("-XX:+UseLargePages (without -XX:+UseTransparentHugePages) can only be enabled " - "when using a %s filesystem", XFILESYSTEM_HUGETLBFS); - return; - } - - if (!XLargePages::is_explicit() && is_hugetlbfs()) { - log_error_p(gc)("-XX:+UseLargePages must be enabled when using a %s filesystem", - XFILESYSTEM_HUGETLBFS); - return; - } - - // Make sure the filesystem block size is compatible - if (XGranuleSize % _block_size != 0) { - log_error_p(gc)("Filesystem backing the heap has incompatible block size (" SIZE_FORMAT ")", - _block_size); - return; - } - - if (is_hugetlbfs() && _block_size != XGranuleSize) { - log_error_p(gc)("%s filesystem has unexpected block size " SIZE_FORMAT " (expected " SIZE_FORMAT ")", - XFILESYSTEM_HUGETLBFS, _block_size, XGranuleSize); - return; - } - - // Successfully initialized - _initialized = true; -} - -int XPhysicalMemoryBacking::create_mem_fd(const char* name) const { - assert(XGranuleSize == 2 * M, "Granule size must match MFD_HUGE_2MB"); - - // Create file name - char filename[PATH_MAX]; - snprintf(filename, sizeof(filename), "%s%s", name, XLargePages::is_explicit() ? ".hugetlb" : ""); - - // Create file - const int extra_flags = XLargePages::is_explicit() ? (MFD_HUGETLB | MFD_HUGE_2MB) : 0; - const int fd = XSyscall::memfd_create(filename, MFD_CLOEXEC | extra_flags); - if (fd == -1) { - XErrno err; - log_debug_p(gc, init)("Failed to create memfd file (%s)", - (XLargePages::is_explicit() && (err == EINVAL || err == ENODEV)) ? - "Hugepages (2M) not available" : err.to_string()); - return -1; - } - - log_info_p(gc, init)("Heap Backing File: /memfd:%s", filename); - - return fd; -} - -int XPhysicalMemoryBacking::create_file_fd(const char* name) const { - const char* const filesystem = XLargePages::is_explicit() - ? XFILESYSTEM_HUGETLBFS - : XFILESYSTEM_TMPFS; - const char** const preferred_mountpoints = XLargePages::is_explicit() - ? z_preferred_hugetlbfs_mountpoints - : z_preferred_tmpfs_mountpoints; - - // Find mountpoint - XMountPoint mountpoint(filesystem, preferred_mountpoints); - if (mountpoint.get() == nullptr) { - log_error_p(gc)("Use -XX:AllocateHeapAt to specify the path to a %s filesystem", filesystem); - return -1; - } - - // Try to create an anonymous file using the O_TMPFILE flag. Note that this - // flag requires kernel >= 3.11. If this fails we fall back to open/unlink. - const int fd_anon = os::open(mountpoint.get(), O_TMPFILE|O_EXCL|O_RDWR|O_CLOEXEC, S_IRUSR|S_IWUSR); - if (fd_anon == -1) { - XErrno err; - log_debug_p(gc, init)("Failed to create anonymous file in %s (%s)", mountpoint.get(), - (err == EINVAL ? "Not supported" : err.to_string())); - } else { - // Get inode number for anonymous file - struct stat stat_buf; - if (fstat(fd_anon, &stat_buf) == -1) { - XErrno err; - log_error_pd(gc)("Failed to determine inode number for anonymous file (%s)", err.to_string()); - return -1; - } - - log_info_p(gc, init)("Heap Backing File: %s/#" UINT64_FORMAT, mountpoint.get(), (uint64_t)stat_buf.st_ino); - - return fd_anon; - } - - log_debug_p(gc, init)("Falling back to open/unlink"); - - // Create file name - char filename[PATH_MAX]; - snprintf(filename, sizeof(filename), "%s/%s.%d", mountpoint.get(), name, os::current_process_id()); - - // Create file - const int fd = os::open(filename, O_CREAT|O_EXCL|O_RDWR|O_CLOEXEC, S_IRUSR|S_IWUSR); - if (fd == -1) { - XErrno err; - log_error_p(gc)("Failed to create file %s (%s)", filename, err.to_string()); - return -1; - } - - // Unlink file - if (unlink(filename) == -1) { - XErrno err; - log_error_p(gc)("Failed to unlink file %s (%s)", filename, err.to_string()); - return -1; - } - - log_info_p(gc, init)("Heap Backing File: %s", filename); - - return fd; -} - -int XPhysicalMemoryBacking::create_fd(const char* name) const { - if (AllocateHeapAt == nullptr) { - // If the path is not explicitly specified, then we first try to create a memfd file - // instead of looking for a tmpfd/hugetlbfs mount point. Note that memfd_create() might - // not be supported at all (requires kernel >= 3.17), or it might not support large - // pages (requires kernel >= 4.14). If memfd_create() fails, then we try to create a - // file on an accessible tmpfs or hugetlbfs mount point. - const int fd = create_mem_fd(name); - if (fd != -1) { - return fd; - } - - log_debug_p(gc)("Falling back to searching for an accessible mount point"); - } - - return create_file_fd(name); -} - -bool XPhysicalMemoryBacking::is_initialized() const { - return _initialized; -} - -void XPhysicalMemoryBacking::warn_available_space(size_t max_capacity) const { - // Note that the available space on a tmpfs or a hugetlbfs filesystem - // will be zero if no size limit was specified when it was mounted. - if (_available == 0) { - // No size limit set, skip check - log_info_p(gc, init)("Available space on backing filesystem: N/A"); - return; - } - - log_info_p(gc, init)("Available space on backing filesystem: " SIZE_FORMAT "M", _available / M); - - // Warn if the filesystem doesn't currently have enough space available to hold - // the max heap size. The max heap size will be capped if we later hit this limit - // when trying to expand the heap. - if (_available < max_capacity) { - log_warning_p(gc)("***** WARNING! INCORRECT SYSTEM CONFIGURATION DETECTED! *****"); - log_warning_p(gc)("Not enough space available on the backing filesystem to hold the current max Java heap"); - log_warning_p(gc)("size (" SIZE_FORMAT "M). Please adjust the size of the backing filesystem accordingly " - "(available", max_capacity / M); - log_warning_p(gc)("space is currently " SIZE_FORMAT "M). Continuing execution with the current filesystem " - "size could", _available / M); - log_warning_p(gc)("lead to a premature OutOfMemoryError being thrown, due to failure to commit memory."); - } -} - -void XPhysicalMemoryBacking::warn_max_map_count(size_t max_capacity) const { - const char* const filename = XFILENAME_PROC_MAX_MAP_COUNT; - FILE* const file = os::fopen(filename, "r"); - if (file == nullptr) { - // Failed to open file, skip check - log_debug_p(gc, init)("Failed to open %s", filename); - return; - } - - size_t actual_max_map_count = 0; - const int result = fscanf(file, SIZE_FORMAT, &actual_max_map_count); - fclose(file); - if (result != 1) { - // Failed to read file, skip check - log_debug_p(gc, init)("Failed to read %s", filename); - return; - } - - // The required max map count is impossible to calculate exactly since subsystems - // other than ZGC are also creating memory mappings, and we have no control over that. - // However, ZGC tends to create the most mappings and dominate the total count. - // In the worst cases, ZGC will map each granule three times, i.e. once per heap view. - // We speculate that we need another 20% to allow for non-ZGC subsystems to map memory. - const size_t required_max_map_count = (max_capacity / XGranuleSize) * 3 * 1.2; - if (actual_max_map_count < required_max_map_count) { - log_warning_p(gc)("***** WARNING! INCORRECT SYSTEM CONFIGURATION DETECTED! *****"); - log_warning_p(gc)("The system limit on number of memory mappings per process might be too low for the given"); - log_warning_p(gc)("max Java heap size (" SIZE_FORMAT "M). Please adjust %s to allow for at", - max_capacity / M, filename); - log_warning_p(gc)("least " SIZE_FORMAT " mappings (current limit is " SIZE_FORMAT "). Continuing execution " - "with the current", required_max_map_count, actual_max_map_count); - log_warning_p(gc)("limit could lead to a premature OutOfMemoryError being thrown, due to failure to map memory."); - } -} - -void XPhysicalMemoryBacking::warn_commit_limits(size_t max_capacity) const { - // Warn if available space is too low - warn_available_space(max_capacity); - - // Warn if max map count is too low - warn_max_map_count(max_capacity); -} - -bool XPhysicalMemoryBacking::is_tmpfs() const { - return _filesystem == TMPFS_MAGIC; -} - -bool XPhysicalMemoryBacking::is_hugetlbfs() const { - return _filesystem == HUGETLBFS_MAGIC; -} - -bool XPhysicalMemoryBacking::tmpfs_supports_transparent_huge_pages() const { - // If the shmem_enabled file exists and is readable then we - // know the kernel supports transparent huge pages for tmpfs. - return access(XFILENAME_SHMEM_ENABLED, R_OK) == 0; -} - -XErrno XPhysicalMemoryBacking::fallocate_compat_mmap_hugetlbfs(size_t offset, size_t length, bool touch) const { - // On hugetlbfs, mapping a file segment will fail immediately, without - // the need to touch the mapped pages first, if there aren't enough huge - // pages available to back the mapping. - void* const addr = mmap(nullptr, length, PROT_READ|PROT_WRITE, MAP_SHARED, _fd, offset); - if (addr == MAP_FAILED) { - // Failed - return errno; - } - - // Once mapped, the huge pages are only reserved. We need to touch them - // to associate them with the file segment. Note that we can not punch - // hole in file segments which only have reserved pages. - if (touch) { - char* const start = (char*)addr; - char* const end = start + length; - os::pretouch_memory(start, end, _block_size); - } - - // Unmap again. From now on, the huge pages that were mapped are allocated - // to this file. There's no risk of getting a SIGBUS when mapping and - // touching these pages again. - if (munmap(addr, length) == -1) { - // Failed - return errno; - } - - // Success - return 0; -} - -static bool safe_touch_mapping(void* addr, size_t length, size_t page_size) { - char* const start = (char*)addr; - char* const end = start + length; - - // Touching a mapping that can't be backed by memory will generate a - // SIGBUS. By using SafeFetch32 any SIGBUS will be safely caught and - // handled. On tmpfs, doing a fetch (rather than a store) is enough - // to cause backing pages to be allocated (there's no zero-page to - // worry about). - for (char *p = start; p < end; p += page_size) { - if (SafeFetch32((int*)p, -1) == -1) { - // Failed - return false; - } - } - - // Success - return true; -} - -XErrno XPhysicalMemoryBacking::fallocate_compat_mmap_tmpfs(size_t offset, size_t length) const { - // On tmpfs, we need to touch the mapped pages to figure out - // if there are enough pages available to back the mapping. - void* const addr = mmap(nullptr, length, PROT_READ|PROT_WRITE, MAP_SHARED, _fd, offset); - if (addr == MAP_FAILED) { - // Failed - return errno; - } - - // Advise mapping to use transparent huge pages - os::realign_memory((char*)addr, length, XGranuleSize); - - // Touch the mapping (safely) to make sure it's backed by memory - const bool backed = safe_touch_mapping(addr, length, _block_size); - - // Unmap again. If successfully touched, the backing memory will - // be allocated to this file. There's no risk of getting a SIGBUS - // when mapping and touching these pages again. - if (munmap(addr, length) == -1) { - // Failed - return errno; - } - - // Success - return backed ? 0 : ENOMEM; -} - -XErrno XPhysicalMemoryBacking::fallocate_compat_pwrite(size_t offset, size_t length) const { - uint8_t data = 0; - - // Allocate backing memory by writing to each block - for (size_t pos = offset; pos < offset + length; pos += _block_size) { - if (pwrite(_fd, &data, sizeof(data), pos) == -1) { - // Failed - return errno; - } - } - - // Success - return 0; -} - -XErrno XPhysicalMemoryBacking::fallocate_fill_hole_compat(size_t offset, size_t length) const { - // fallocate(2) is only supported by tmpfs since Linux 3.5, and by hugetlbfs - // since Linux 4.3. When fallocate(2) is not supported we emulate it using - // mmap/munmap (for hugetlbfs and tmpfs with transparent huge pages) or pwrite - // (for tmpfs without transparent huge pages and other filesystem types). - if (XLargePages::is_explicit()) { - return fallocate_compat_mmap_hugetlbfs(offset, length, false /* touch */); - } else if (XLargePages::is_transparent()) { - return fallocate_compat_mmap_tmpfs(offset, length); - } else { - return fallocate_compat_pwrite(offset, length); - } -} - -XErrno XPhysicalMemoryBacking::fallocate_fill_hole_syscall(size_t offset, size_t length) const { - const int mode = 0; // Allocate - const int res = XSyscall::fallocate(_fd, mode, offset, length); - if (res == -1) { - // Failed - return errno; - } - - // Success - return 0; -} - -XErrno XPhysicalMemoryBacking::fallocate_fill_hole(size_t offset, size_t length) const { - // Using compat mode is more efficient when allocating space on hugetlbfs. - // Note that allocating huge pages this way will only reserve them, and not - // associate them with segments of the file. We must guarantee that we at - // some point touch these segments, otherwise we can not punch hole in them. - // Also note that we need to use compat mode when using transparent huge pages, - // since we need to use madvise(2) on the mapping before the page is allocated. - if (z_fallocate_supported && !XLargePages::is_enabled()) { - const XErrno err = fallocate_fill_hole_syscall(offset, length); - if (!err) { - // Success - return 0; - } - - if (err != ENOSYS && err != EOPNOTSUPP) { - // Failed - return err; - } - - // Not supported - log_debug_p(gc)("Falling back to fallocate() compatibility mode"); - z_fallocate_supported = false; - } - - return fallocate_fill_hole_compat(offset, length); -} - -XErrno XPhysicalMemoryBacking::fallocate_punch_hole(size_t offset, size_t length) const { - if (XLargePages::is_explicit()) { - // We can only punch hole in pages that have been touched. Non-touched - // pages are only reserved, and not associated with any specific file - // segment. We don't know which pages have been previously touched, so - // we always touch them here to guarantee that we can punch hole. - const XErrno err = fallocate_compat_mmap_hugetlbfs(offset, length, true /* touch */); - if (err) { - // Failed - return err; - } - } - - const int mode = FALLOC_FL_PUNCH_HOLE|FALLOC_FL_KEEP_SIZE; - if (XSyscall::fallocate(_fd, mode, offset, length) == -1) { - // Failed - return errno; - } - - // Success - return 0; -} - -XErrno XPhysicalMemoryBacking::split_and_fallocate(bool punch_hole, size_t offset, size_t length) const { - // Try first half - const size_t offset0 = offset; - const size_t length0 = align_up(length / 2, _block_size); - const XErrno err0 = fallocate(punch_hole, offset0, length0); - if (err0) { - return err0; - } - - // Try second half - const size_t offset1 = offset0 + length0; - const size_t length1 = length - length0; - const XErrno err1 = fallocate(punch_hole, offset1, length1); - if (err1) { - return err1; - } - - // Success - return 0; -} - -XErrno XPhysicalMemoryBacking::fallocate(bool punch_hole, size_t offset, size_t length) const { - assert(is_aligned(offset, _block_size), "Invalid offset"); - assert(is_aligned(length, _block_size), "Invalid length"); - - const XErrno err = punch_hole ? fallocate_punch_hole(offset, length) : fallocate_fill_hole(offset, length); - if (err == EINTR && length > _block_size) { - // Calling fallocate(2) with a large length can take a long time to - // complete. When running profilers, such as VTune, this syscall will - // be constantly interrupted by signals. Expanding the file in smaller - // steps avoids this problem. - return split_and_fallocate(punch_hole, offset, length); - } - - return err; -} - -bool XPhysicalMemoryBacking::commit_inner(size_t offset, size_t length) const { - log_trace(gc, heap)("Committing memory: " SIZE_FORMAT "M-" SIZE_FORMAT "M (" SIZE_FORMAT "M)", - offset / M, (offset + length) / M, length / M); - -retry: - const XErrno err = fallocate(false /* punch_hole */, offset, length); - if (err) { - if (err == ENOSPC && !is_init_completed() && XLargePages::is_explicit() && z_fallocate_hugetlbfs_attempts-- > 0) { - // If we fail to allocate during initialization, due to lack of space on - // the hugetlbfs filesystem, then we wait and retry a few times before - // giving up. Otherwise there is a risk that running JVMs back-to-back - // will fail, since there is a delay between process termination and the - // huge pages owned by that process being returned to the huge page pool - // and made available for new allocations. - log_debug_p(gc, init)("Failed to commit memory (%s), retrying", err.to_string()); - - // Wait and retry in one second, in the hope that huge pages will be - // available by then. - sleep(1); - goto retry; - } - - // Failed - log_error_p(gc)("Failed to commit memory (%s)", err.to_string()); - return false; - } - - // Success - return true; -} - -static int offset_to_node(size_t offset) { - const GrowableArray* mapping = os::Linux::numa_nindex_to_node(); - const size_t nindex = (offset >> XGranuleSizeShift) % mapping->length(); - return mapping->at((int)nindex); -} - -size_t XPhysicalMemoryBacking::commit_numa_interleaved(size_t offset, size_t length) const { - size_t committed = 0; - - // Commit one granule at a time, so that each granule - // can be allocated from a different preferred node. - while (committed < length) { - const size_t granule_offset = offset + committed; - - // Setup NUMA policy to allocate memory from a preferred node - os::Linux::numa_set_preferred(offset_to_node(granule_offset)); - - if (!commit_inner(granule_offset, XGranuleSize)) { - // Failed - break; - } - - committed += XGranuleSize; - } - - // Restore NUMA policy - os::Linux::numa_set_preferred(-1); - - return committed; -} - -size_t XPhysicalMemoryBacking::commit_default(size_t offset, size_t length) const { - // Try to commit the whole region - if (commit_inner(offset, length)) { - // Success - return length; - } - - // Failed, try to commit as much as possible - size_t start = offset; - size_t end = offset + length; - - for (;;) { - length = align_down((end - start) / 2, XGranuleSize); - if (length < XGranuleSize) { - // Done, don't commit more - return start - offset; - } - - if (commit_inner(start, length)) { - // Success, try commit more - start += length; - } else { - // Failed, try commit less - end -= length; - } - } -} - -size_t XPhysicalMemoryBacking::commit(size_t offset, size_t length) const { - if (XNUMA::is_enabled() && !XLargePages::is_explicit()) { - // To get granule-level NUMA interleaving when using non-large pages, - // we must explicitly interleave the memory at commit/fallocate time. - return commit_numa_interleaved(offset, length); - } - - return commit_default(offset, length); -} - -size_t XPhysicalMemoryBacking::uncommit(size_t offset, size_t length) const { - log_trace(gc, heap)("Uncommitting memory: " SIZE_FORMAT "M-" SIZE_FORMAT "M (" SIZE_FORMAT "M)", - offset / M, (offset + length) / M, length / M); - - const XErrno err = fallocate(true /* punch_hole */, offset, length); - if (err) { - log_error(gc)("Failed to uncommit memory (%s)", err.to_string()); - return 0; - } - - return length; -} - -void XPhysicalMemoryBacking::map(uintptr_t addr, size_t size, uintptr_t offset) const { - const void* const res = mmap((void*)addr, size, PROT_READ|PROT_WRITE, MAP_FIXED|MAP_SHARED, _fd, offset); - if (res == MAP_FAILED) { - XErrno err; - fatal("Failed to map memory (%s)", err.to_string()); - } -} - -void XPhysicalMemoryBacking::unmap(uintptr_t addr, size_t size) const { - // Note that we must keep the address space reservation intact and just detach - // the backing memory. For this reason we map a new anonymous, non-accessible - // and non-reserved page over the mapping instead of actually unmapping. - const void* const res = mmap((void*)addr, size, PROT_NONE, MAP_FIXED | MAP_ANONYMOUS | MAP_PRIVATE | MAP_NORESERVE, -1, 0); - if (res == MAP_FAILED) { - XErrno err; - fatal("Failed to map memory (%s)", err.to_string()); - } -} diff --git a/src/hotspot/os/linux/gc/x/xPhysicalMemoryBacking_linux.hpp b/src/hotspot/os/linux/gc/x/xPhysicalMemoryBacking_linux.hpp deleted file mode 100644 index 253a3f87ef4..00000000000 --- a/src/hotspot/os/linux/gc/x/xPhysicalMemoryBacking_linux.hpp +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef OS_LINUX_GC_X_XPHYSICALMEMORYBACKING_LINUX_HPP -#define OS_LINUX_GC_X_XPHYSICALMEMORYBACKING_LINUX_HPP - -class XErrno; - -class XPhysicalMemoryBacking { -private: - int _fd; - size_t _size; - uint64_t _filesystem; - size_t _block_size; - size_t _available; - bool _initialized; - - void warn_available_space(size_t max_capacity) const; - void warn_max_map_count(size_t max_capacity) const; - - int create_mem_fd(const char* name) const; - int create_file_fd(const char* name) const; - int create_fd(const char* name) const; - - bool is_tmpfs() const; - bool is_hugetlbfs() const; - bool tmpfs_supports_transparent_huge_pages() const; - - XErrno fallocate_compat_mmap_hugetlbfs(size_t offset, size_t length, bool touch) const; - XErrno fallocate_compat_mmap_tmpfs(size_t offset, size_t length) const; - XErrno fallocate_compat_pwrite(size_t offset, size_t length) const; - XErrno fallocate_fill_hole_compat(size_t offset, size_t length) const; - XErrno fallocate_fill_hole_syscall(size_t offset, size_t length) const; - XErrno fallocate_fill_hole(size_t offset, size_t length) const; - XErrno fallocate_punch_hole(size_t offset, size_t length) const; - XErrno split_and_fallocate(bool punch_hole, size_t offset, size_t length) const; - XErrno fallocate(bool punch_hole, size_t offset, size_t length) const; - - bool commit_inner(size_t offset, size_t length) const; - size_t commit_numa_interleaved(size_t offset, size_t length) const; - size_t commit_default(size_t offset, size_t length) const; - -public: - XPhysicalMemoryBacking(size_t max_capacity); - - bool is_initialized() const; - - void warn_commit_limits(size_t max_capacity) const; - - size_t commit(size_t offset, size_t length) const; - size_t uncommit(size_t offset, size_t length) const; - - void map(uintptr_t addr, size_t size, uintptr_t offset) const; - void unmap(uintptr_t addr, size_t size) const; -}; - -#endif // OS_LINUX_GC_X_XPHYSICALMEMORYBACKING_LINUX_HPP diff --git a/src/hotspot/os/linux/gc/x/xSyscall_linux.cpp b/src/hotspot/os/linux/gc/x/xSyscall_linux.cpp deleted file mode 100644 index 6035eaae61b..00000000000 --- a/src/hotspot/os/linux/gc/x/xSyscall_linux.cpp +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (c) 2019, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xSyscall_linux.hpp" -#include OS_CPU_HEADER(gc/x/xSyscall) - -#include - -int XSyscall::memfd_create(const char *name, unsigned int flags) { - return syscall(SYS_memfd_create, name, flags); -} - -int XSyscall::fallocate(int fd, int mode, size_t offset, size_t length) { - return syscall(SYS_fallocate, fd, mode, offset, length); -} - -long XSyscall::get_mempolicy(int* mode, unsigned long* nodemask, unsigned long maxnode, void* addr, unsigned long flags) { - return syscall(SYS_get_mempolicy, mode, nodemask, maxnode, addr, flags); -} diff --git a/src/hotspot/os/linux/gc/x/xSyscall_linux.hpp b/src/hotspot/os/linux/gc/x/xSyscall_linux.hpp deleted file mode 100644 index f16d2b2ffdc..00000000000 --- a/src/hotspot/os/linux/gc/x/xSyscall_linux.hpp +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 2019, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef OS_LINUX_GC_X_XSYSCALL_LINUX_HPP -#define OS_LINUX_GC_X_XSYSCALL_LINUX_HPP - -#include "memory/allStatic.hpp" -#include "utilities/globalDefinitions.hpp" - -// Flags for get_mempolicy() -#ifndef MPOL_F_NODE -#define MPOL_F_NODE (1<<0) -#endif -#ifndef MPOL_F_ADDR -#define MPOL_F_ADDR (1<<1) -#endif - -class XSyscall : public AllStatic { -public: - static int memfd_create(const char* name, unsigned int flags); - static int fallocate(int fd, int mode, size_t offset, size_t length); - static long get_mempolicy(int* mode, unsigned long* nodemask, unsigned long maxnode, void* addr, unsigned long flags); -}; - -#endif // OS_LINUX_GC_X_XSYSCALL_LINUX_HPP diff --git a/src/hotspot/os/posix/gc/x/xArguments_posix.cpp b/src/hotspot/os/posix/gc/x/xArguments_posix.cpp deleted file mode 100644 index 6df0a9bd074..00000000000 --- a/src/hotspot/os/posix/gc/x/xArguments_posix.cpp +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xArguments.hpp" - -bool XArguments::is_os_supported() { - return true; -} diff --git a/src/hotspot/os/posix/gc/x/xInitialize_posix.cpp b/src/hotspot/os/posix/gc/x/xInitialize_posix.cpp deleted file mode 100644 index acf71e98901..00000000000 --- a/src/hotspot/os/posix/gc/x/xInitialize_posix.cpp +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xInitialize.hpp" - -void XInitialize::pd_initialize() { - // Does nothing -} diff --git a/src/hotspot/os/posix/gc/x/xUtils_posix.cpp b/src/hotspot/os/posix/gc/x/xUtils_posix.cpp deleted file mode 100644 index eee3e5cfbe6..00000000000 --- a/src/hotspot/os/posix/gc/x/xUtils_posix.cpp +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xUtils.hpp" -#include "utilities/debug.hpp" -#include "utilities/globalDefinitions.hpp" - -#include - -uintptr_t XUtils::alloc_aligned(size_t alignment, size_t size) { - void* res = nullptr; - - // Use raw posix_memalign as long as we have no wrapper for it - ALLOW_C_FUNCTION(::posix_memalign, int rc = posix_memalign(&res, alignment, size);) - if (rc != 0) { - fatal("posix_memalign() failed"); - } - - memset(res, 0, size); - - return (uintptr_t)res; -} diff --git a/src/hotspot/os/posix/gc/x/xVirtualMemory_posix.cpp b/src/hotspot/os/posix/gc/x/xVirtualMemory_posix.cpp deleted file mode 100644 index e2422eb0978..00000000000 --- a/src/hotspot/os/posix/gc/x/xVirtualMemory_posix.cpp +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xAddress.inline.hpp" -#include "gc/x/xVirtualMemory.hpp" -#include "logging/log.hpp" - -#include -#include - -void XVirtualMemoryManager::pd_initialize_before_reserve() { - // Does nothing -} - -void XVirtualMemoryManager::pd_initialize_after_reserve() { - // Does nothing -} - -bool XVirtualMemoryManager::pd_reserve(uintptr_t addr, size_t size) { - const uintptr_t res = (uintptr_t)mmap((void*)addr, size, PROT_NONE, MAP_ANONYMOUS|MAP_PRIVATE|MAP_NORESERVE, -1, 0); - if (res == (uintptr_t)MAP_FAILED) { - // Failed to reserve memory - return false; - } - - if (res != addr) { - // Failed to reserve memory at the requested address - munmap((void*)res, size); - return false; - } - - // Success - return true; -} - -void XVirtualMemoryManager::pd_unreserve(uintptr_t addr, size_t size) { - const int res = munmap((void*)addr, size); - assert(res == 0, "Failed to unmap memory"); -} diff --git a/src/hotspot/os/posix/perfMemory_posix.cpp b/src/hotspot/os/posix/perfMemory_posix.cpp index 4eb46169878..17bf63092c2 100644 --- a/src/hotspot/os/posix/perfMemory_posix.cpp +++ b/src/hotspot/os/posix/perfMemory_posix.cpp @@ -1086,7 +1086,7 @@ static char* mmap_create_shared(size_t size) { static void unmap_shared(char* addr, size_t bytes) { int res; if (MemTracker::enabled()) { - ThreadCritical tc; + NmtVirtualMemoryLocker ml; res = ::munmap(addr, bytes); if (res == 0) { MemTracker::record_virtual_memory_release((address)addr, bytes); diff --git a/src/hotspot/os/windows/attachListener_windows.cpp b/src/hotspot/os/windows/attachListener_windows.cpp index 3f6ca941c20..bfa377d52cf 100644 --- a/src/hotspot/os/windows/attachListener_windows.cpp +++ b/src/hotspot/os/windows/attachListener_windows.cpp @@ -32,17 +32,24 @@ #include // SIGBREAK #include -// The AttachListener thread services a queue of operations. It blocks in the dequeue -// function until an operation is enqueued. A client enqueues an operation by creating +// The AttachListener thread services a queue of operation requests. It blocks in the dequeue +// function until a request is enqueued. A client enqueues a request by creating // a thread in this process using the Win32 CreateRemoteThread function. That thread // executes a small stub generated by the client. The stub invokes the -// JVM_EnqueueOperation function which checks the operation parameters and enqueues -// the operation to the queue serviced by the attach listener. The thread created by +// JVM_EnqueueOperation or JVM_EnqueueOperation_v2 function which checks the operation parameters +// and enqueues the operation request to the queue. The thread created by // the client is a native thread and is restricted to a single page of stack. To keep -// it simple operations are pre-allocated at initialization time. An enqueue thus -// takes a preallocated operation, populates the operation parameters, adds it to +// it simple operation requests are pre-allocated at initialization time. An enqueue thus +// takes a preallocated request, populates the operation parameters, adds it to // queue and wakes up the attach listener. // +// Differences between Attach API v1 and v2: +// In v1 (jdk6+) client calls JVM_EnqueueOperation function and passes all operation parameters +// as arguments of the function. +// In v2 (jdk24+) client calls JVM_EnqueueOperation_v2 function and passes only pipe name. +// Attach listeners connects to the pipe (in read/write mode) and reads all operation parameters +// (the same way as other platform implementations read them using sockets). +// // When an operation has completed the attach listener is required to send the // operation result and any result data to the client. In this implementation the // client is a pipe server. In the enqueue operation it provides the name of pipe @@ -55,8 +62,154 @@ // this wasn't worth worrying about. -// forward reference -class Win32AttachOperation; +class PipeChannel : public AttachOperation::RequestReader, public AttachOperation::ReplyWriter { +private: + HANDLE _hPipe; +public: + PipeChannel() : _hPipe(INVALID_HANDLE_VALUE) {} + ~PipeChannel() { + close(); + } + + bool opened() const { + return _hPipe != INVALID_HANDLE_VALUE; + } + + bool open(const char* pipe, bool write_only) { + _hPipe = ::CreateFile(pipe, + GENERIC_WRITE | (write_only ? 0 : GENERIC_READ), + 0, // no sharing + nullptr, // default security attributes + OPEN_EXISTING, // opens existing pipe + 0, // default attributes + nullptr); // no template file + if (_hPipe == INVALID_HANDLE_VALUE) { + log_error(attach)("could not open (%d) pipe %s", GetLastError(), pipe); + return false; + } + return true; + } + + void close() { + if (opened()) { + CloseHandle(_hPipe); + _hPipe = INVALID_HANDLE_VALUE; + } + } + + // RequestReader + int read(void* buffer, int size) override { + assert(opened(), "must be"); + DWORD nread; + BOOL fSuccess = ReadFile(_hPipe, + buffer, + (DWORD)size, + &nread, + nullptr); // not overlapped + return fSuccess ? (int)nread : -1; + } + + // ReplyWriter + int write(const void* buffer, int size) override { + assert(opened(), "must be"); + DWORD written; + BOOL fSuccess = WriteFile(_hPipe, + buffer, + (DWORD)size, + &written, + nullptr); // not overlapped + return fSuccess ? (int)written : -1; + } + + void flush() override { + assert(opened(), "must be"); + FlushFileBuffers(_hPipe); + } +}; + +class Win32AttachOperation: public AttachOperation { +public: + enum { + pipe_name_max = 256 // maximum pipe name + }; + +private: + PipeChannel _pipe; + +public: + // for v1 pipe must be write-only + void open_pipe(const char* pipe_name, bool write_only) { + _pipe.open(pipe_name, write_only); + } + + bool read_request() { + return AttachOperation::read_request(&_pipe); + } + +public: + void complete(jint result, bufferedStream* result_stream) override; +}; + + +// Win32AttachOperationRequest is an element of AttachOperation request list. +class Win32AttachOperationRequest { +private: + AttachAPIVersion _ver; + char _name[AttachOperation::name_length_max + 1]; + char _arg[AttachOperation::arg_count_max][AttachOperation::arg_length_max + 1]; + char _pipe[Win32AttachOperation::pipe_name_max + 1]; + + Win32AttachOperationRequest* _next; + + void set_value(char* dst, const char* str, size_t dst_size) { + if (str != nullptr) { + assert(strlen(str) < dst_size, "exceeds maximum length"); + strncpy(dst, str, dst_size - 1); + dst[dst_size - 1] = '\0'; + } else { + strcpy(dst, ""); + } + } + +public: + void set(AttachAPIVersion ver, const char* pipename, + const char* cmd = nullptr, + const char* arg0 = nullptr, + const char* arg1 = nullptr, + const char* arg2 = nullptr) { + _ver = ver; + set_value(_name, cmd, sizeof(_name)); + set_value(_arg[0], arg0, sizeof(_arg[0])); + set_value(_arg[1], arg1, sizeof(_arg[1])); + set_value(_arg[2], arg2, sizeof(_arg[2])); + set_value(_pipe, pipename, sizeof(_pipe)); + } + AttachAPIVersion ver() const { + return _ver; + } + const char* cmd() const { + return _name; + } + const char* arg(int i) const { + return (i >= 0 && i < AttachOperation::arg_count_max) ? _arg[i] : nullptr; + } + const char* pipe() const { + return _pipe; + } + + Win32AttachOperationRequest* next() const { + return _next; + } + void set_next(Win32AttachOperationRequest* next) { + _next = next; + } + + // noarg constructor as operation is preallocated + Win32AttachOperationRequest() { + set(ATTACH_API_V1, ""); + set_next(nullptr); + } +}; class Win32AttachListener: AllStatic { @@ -69,18 +222,18 @@ class Win32AttachListener: AllStatic { static HANDLE _mutex; // head of preallocated operations list - static Win32AttachOperation* _avail; + static Win32AttachOperationRequest* _avail; // head and tail of enqueue operations list - static Win32AttachOperation* _head; - static Win32AttachOperation* _tail; + static Win32AttachOperationRequest* _head; + static Win32AttachOperationRequest* _tail; - static Win32AttachOperation* head() { return _head; } - static void set_head(Win32AttachOperation* head) { _head = head; } + static Win32AttachOperationRequest* head() { return _head; } + static void set_head(Win32AttachOperationRequest* head) { _head = head; } - static Win32AttachOperation* tail() { return _tail; } - static void set_tail(Win32AttachOperation* tail) { _tail = tail; } + static Win32AttachOperationRequest* tail() { return _tail; } + static void set_tail(Win32AttachOperationRequest* tail) { _tail = tail; } // A semaphore is used for communication about enqueued operations. @@ -101,11 +254,12 @@ class Win32AttachListener: AllStatic { static int init(); static HANDLE mutex() { return _mutex; } - static Win32AttachOperation* available() { return _avail; } - static void set_available(Win32AttachOperation* avail) { _avail = avail; } + static Win32AttachOperationRequest* available() { return _avail; } + static void set_available(Win32AttachOperationRequest* avail) { _avail = avail; } // enqueue an operation to the end of the list - static int enqueue(char* cmd, char* arg1, char* arg2, char* arg3, char* pipename); + static int enqueue(AttachAPIVersion ver, const char* cmd, + const char* arg1, const char* arg2, const char* arg3, const char* pipename); // dequeue an operation from from head of the list static Win32AttachOperation* dequeue(); @@ -114,48 +268,9 @@ class Win32AttachListener: AllStatic { // statics HANDLE Win32AttachListener::_mutex; HANDLE Win32AttachListener::_enqueued_ops_semaphore; -Win32AttachOperation* Win32AttachListener::_avail; -Win32AttachOperation* Win32AttachListener::_head; -Win32AttachOperation* Win32AttachListener::_tail; - - -// Win32AttachOperation is an AttachOperation that additionally encapsulates the name -// of a pipe which is used to send the operation reply/output to the client. -// Win32AttachOperation can also be linked in a list. - -class Win32AttachOperation: public AttachOperation { - private: - friend class Win32AttachListener; - - enum { - pipe_name_max = 256 // maximum pipe name - }; - - char _pipe[pipe_name_max + 1]; - - const char* pipe() const { return _pipe; } - void set_pipe(const char* pipe) { - assert(strlen(pipe) <= pipe_name_max, "exceeds maximum length of pipe name"); - os::snprintf(_pipe, sizeof(_pipe), "%s", pipe); - } - - HANDLE open_pipe(); - static BOOL write_pipe(HANDLE hPipe, char* buf, int len); - - Win32AttachOperation* _next; - - Win32AttachOperation* next() const { return _next; } - void set_next(Win32AttachOperation* next) { _next = next; } - - // noarg constructor as operation is preallocated - Win32AttachOperation() : AttachOperation("") { - set_pipe(""); - set_next(nullptr); - } - - public: - void complete(jint result, bufferedStream* result_stream); -}; +Win32AttachOperationRequest* Win32AttachListener::_avail; +Win32AttachOperationRequest* Win32AttachListener::_head; +Win32AttachOperationRequest* Win32AttachListener::_tail; // Preallocate the maximum number of operations that can be enqueued. @@ -171,18 +286,24 @@ int Win32AttachListener::init() { set_available(nullptr); for (int i=0; iset_next(available()); set_available(op); } + AttachListener::set_supported_version(ATTACH_API_V2); + return 0; } // Enqueue an operation. This is called from a native thread that is not attached to VM. // Also we need to be careful not to execute anything that results in more than a 4k stack. // -int Win32AttachListener::enqueue(char* cmd, char* arg0, char* arg1, char* arg2, char* pipename) { +int Win32AttachListener::enqueue(AttachAPIVersion ver, const char* cmd, + const char* arg0, const char* arg1, const char* arg2, const char* pipename) { + + log_debug(attach)("AttachListener::enqueue, ver = %d, cmd = %s", (int)ver, cmd); + // wait up to 10 seconds for listener to be up and running int sleep_count = 0; while (!AttachListener::is_initialized()) { @@ -210,7 +331,7 @@ int Win32AttachListener::enqueue(char* cmd, char* arg0, char* arg1, char* arg2, } // try to get an operation from the available list - Win32AttachOperation* op = available(); + Win32AttachOperationRequest* op = available(); if (op != nullptr) { set_available(op->next()); @@ -223,11 +344,7 @@ int Win32AttachListener::enqueue(char* cmd, char* arg0, char* arg1, char* arg2, } set_tail(op); - op->set_name(cmd); - op->set_arg(0, arg0); - op->set_arg(1, arg1); - op->set_arg(2, arg2); - op->set_pipe(pipename); + op->set(ver, pipename, cmd, arg0, arg1, arg2); // Increment number of enqueued operations. // Side effect: Semaphore will be signaled and will release @@ -236,6 +353,7 @@ int Win32AttachListener::enqueue(char* cmd, char* arg0, char* arg1, char* arg2, ::ReleaseSemaphore(enqueued_ops_semaphore(), 1, nullptr); guarantee(not_exceeding_semaphore_maximum_count, "invariant"); } + ::ReleaseMutex(mutex()); return (op != nullptr) ? 0 : ATTACH_ERROR_RESOURCE; @@ -255,107 +373,63 @@ Win32AttachOperation* Win32AttachListener::dequeue() { guarantee(res != WAIT_FAILED, "WaitForSingleObject failed with error code: %lu", GetLastError()); guarantee(res == WAIT_OBJECT_0, "WaitForSingleObject failed with return value: %lu", res); + Win32AttachOperation* op = nullptr; + Win32AttachOperationRequest* request = head(); + if (request != nullptr) { + log_debug(attach)("AttachListener::dequeue, got request, ver = %d, cmd = %s", request->ver(), request->cmd()); - Win32AttachOperation* op = head(); - if (op != nullptr) { - set_head(op->next()); + set_head(request->next()); if (head() == nullptr) { // list is empty set_tail(nullptr); } + + switch (request->ver()) { + case ATTACH_API_V1: + op = new Win32AttachOperation(); + op->set_name(request->cmd()); + for (int i = 0; i < AttachOperation::arg_count_max; i++) { + op->append_arg(request->arg(i)); + } + op->open_pipe(request->pipe(), true/*write-only*/); + break; + case ATTACH_API_V2: + op = new Win32AttachOperation(); + op->open_pipe(request->pipe(), false/*write-only*/); + if (!op->read_request()) { + log_error(attach)("AttachListener::dequeue, reading request ERROR"); + delete op; + op = nullptr; + } + break; + default: + log_error(attach)("AttachListener::dequeue, unsupported version: %d", request->ver(), request->cmd()); + break; + } } + // put the operation back on the available list + request->set_next(Win32AttachListener::available()); + Win32AttachListener::set_available(request); + ::ReleaseMutex(mutex()); if (op != nullptr) { + log_debug(attach)("AttachListener::dequeue, return op: %s", op->name()); return op; } } } - -// open the pipe to the client -HANDLE Win32AttachOperation::open_pipe() { - HANDLE hPipe = ::CreateFile( pipe(), // pipe name - GENERIC_WRITE, // write only - 0, // no sharing - nullptr, // default security attributes - OPEN_EXISTING, // opens existing pipe - 0, // default attributes - nullptr); // no template file - return hPipe; -} - -// write to the pipe -BOOL Win32AttachOperation::write_pipe(HANDLE hPipe, char* buf, int len) { - do { - DWORD nwrote; - - BOOL fSuccess = WriteFile( hPipe, // pipe handle - (LPCVOID)buf, // message - (DWORD)len, // message length - &nwrote, // bytes written - nullptr); // not overlapped - if (!fSuccess) { - return fSuccess; - } - buf += nwrote; - len -= nwrote; - } while (len > 0); - return TRUE; -} - -// Complete the operation: -// - open the pipe to the client -// - write the operation result (a jint) -// - write the operation output (the result stream) -// void Win32AttachOperation::complete(jint result, bufferedStream* result_stream) { JavaThread* thread = JavaThread::current(); ThreadBlockInVM tbivm(thread); - HANDLE hPipe = open_pipe(); - int lastError = (int)::GetLastError(); - if (hPipe != INVALID_HANDLE_VALUE) { - BOOL fSuccess; - - char msg[32]; - os::snprintf(msg, sizeof(msg), "%d\n", result); - msg[sizeof(msg) - 1] = '\0'; - - fSuccess = write_pipe(hPipe, msg, (int)strlen(msg)); - if (fSuccess) { - fSuccess = write_pipe(hPipe, (char*)result_stream->base(), (int)(result_stream->size())); - } - lastError = (int)::GetLastError(); - - // Need to flush buffers - FlushFileBuffers(hPipe); - CloseHandle(hPipe); + write_reply(&_pipe, result, result_stream); - if (fSuccess) { - log_debug(attach)("wrote result of attach operation %s to pipe %s", name(), pipe()); - } else { - log_error(attach)("failure (%d) writing result of operation %s to pipe %s", lastError, name(), pipe()); - } - } else { - log_error(attach)("could not open (%d) pipe %s to send result of operation %s", lastError, pipe(), name()); - } - - DWORD res = ::WaitForSingleObject(Win32AttachListener::mutex(), INFINITE); - assert(res != WAIT_FAILED, "WaitForSingleObject failed with error code: %lu", GetLastError()); - assert(res == WAIT_OBJECT_0, "WaitForSingleObject failed with return value: %lu", res); - - if (res == WAIT_OBJECT_0) { - - // put the operation back on the available list - set_next(Win32AttachListener::available()); - Win32AttachListener::set_available(this); - - ::ReleaseMutex(Win32AttachListener::mutex()); - } + delete this; } -// AttachOperation functions +// AttachListener functions AttachOperation* AttachListener::dequeue() { JavaThread* thread = JavaThread::current(); @@ -404,8 +478,12 @@ void AttachListener::pd_detachall() { // Native thread started by remote client executes this. extern "C" { JNIEXPORT jint JNICALL - JVM_EnqueueOperation(char* cmd, char* arg0, char* arg1, char* arg2, char* pipename) { - return (jint)Win32AttachListener::enqueue(cmd, arg0, arg1, arg2, pipename); - } + JVM_EnqueueOperation(char* cmd, char* arg0, char* arg1, char* arg2, char* pipename) { + return (jint)Win32AttachListener::enqueue(ATTACH_API_V1, cmd, arg0, arg1, arg2, pipename); + } + JNIEXPORT jint JNICALL + JVM_EnqueueOperation_v2(char* pipename) { + return (jint)Win32AttachListener::enqueue(ATTACH_API_V2, "", "", "", "", pipename); + } } // extern diff --git a/src/hotspot/os/windows/gc/x/xArguments_windows.cpp b/src/hotspot/os/windows/gc/x/xArguments_windows.cpp deleted file mode 100644 index fc5f7eccb91..00000000000 --- a/src/hotspot/os/windows/gc/x/xArguments_windows.cpp +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xArguments.hpp" -#include "gc/x/xSyscall_windows.hpp" - -bool XArguments::is_os_supported() { - return XSyscall::is_supported(); -} diff --git a/src/hotspot/os/windows/gc/x/xInitialize_windows.cpp b/src/hotspot/os/windows/gc/x/xInitialize_windows.cpp deleted file mode 100644 index 99f64328033..00000000000 --- a/src/hotspot/os/windows/gc/x/xInitialize_windows.cpp +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xInitialize.hpp" -#include "gc/x/xSyscall_windows.hpp" - -void XInitialize::pd_initialize() { - XSyscall::initialize(); -} diff --git a/src/hotspot/os/windows/gc/x/xLargePages_windows.cpp b/src/hotspot/os/windows/gc/x/xLargePages_windows.cpp deleted file mode 100644 index 20b3c4911fc..00000000000 --- a/src/hotspot/os/windows/gc/x/xLargePages_windows.cpp +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/shared/gcLogPrecious.hpp" -#include "gc/x/xLargePages.hpp" -#include "gc/x/xSyscall_windows.hpp" -#include "runtime/globals.hpp" - -void XLargePages::pd_initialize() { - if (UseLargePages) { - if (XSyscall::is_large_pages_supported()) { - _state = Explicit; - return; - } - log_info_p(gc, init)("Shared large pages not supported on this OS version"); - } - - _state = Disabled; -} diff --git a/src/hotspot/os/windows/gc/x/xMapper_windows.cpp b/src/hotspot/os/windows/gc/x/xMapper_windows.cpp deleted file mode 100644 index e69b6ec56e2..00000000000 --- a/src/hotspot/os/windows/gc/x/xMapper_windows.cpp +++ /dev/null @@ -1,310 +0,0 @@ -/* - * Copyright (c) 2019, 2023, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xMapper_windows.hpp" -#include "gc/x/xSyscall_windows.hpp" -#include "logging/log.hpp" -#include "utilities/debug.hpp" - -#include - -// Memory reservation, commit, views, and placeholders. -// -// To be able to up-front reserve address space for the heap views, and later -// multi-map the heap views to the same physical memory, without ever losing the -// reservation of the reserved address space, we use "placeholders". -// -// These placeholders block out the address space from being used by other parts -// of the process. To commit memory in this address space, the placeholder must -// be replaced by anonymous memory, or replaced by mapping a view against a -// paging file mapping. We use the later to support multi-mapping. -// -// We want to be able to dynamically commit and uncommit the physical memory of -// the heap (and also unmap ZPages), in granules of ZGranuleSize bytes. There is -// no way to grow and shrink the committed memory of a paging file mapping. -// Therefore, we create multiple granule-sized page file mappings. The memory is -// committed by creating a page file mapping, map a view against it, commit the -// memory, unmap the view. The memory will stay committed until all views are -// unmapped, and the paging file mapping handle is closed. -// -// When replacing a placeholder address space reservation with a mapped view -// against a paging file mapping, the virtual address space must exactly match -// an existing placeholder's address and size. Therefore we only deal with -// granule-sized placeholders at this layer. Higher layers that keep track of -// reserved available address space can (and will) coalesce placeholders, but -// they will be split before being used. - -#define fatal_error(msg, addr, size) \ - fatal(msg ": " PTR_FORMAT " " SIZE_FORMAT "M (%d)", \ - (addr), (size) / M, GetLastError()) - -uintptr_t XMapper::reserve(uintptr_t addr, size_t size) { - void* const res = XSyscall::VirtualAlloc2( - GetCurrentProcess(), // Process - (void*)addr, // BaseAddress - size, // Size - MEM_RESERVE | MEM_RESERVE_PLACEHOLDER, // AllocationType - PAGE_NOACCESS, // PageProtection - nullptr, // ExtendedParameters - 0 // ParameterCount - ); - - // Caller responsible for error handling - return (uintptr_t)res; -} - -void XMapper::unreserve(uintptr_t addr, size_t size) { - const bool res = XSyscall::VirtualFreeEx( - GetCurrentProcess(), // hProcess - (void*)addr, // lpAddress - size, // dwSize - MEM_RELEASE // dwFreeType - ); - - if (!res) { - fatal_error("Failed to unreserve memory", addr, size); - } -} - -HANDLE XMapper::create_paging_file_mapping(size_t size) { - // Create mapping with SEC_RESERVE instead of SEC_COMMIT. - // - // We use MapViewOfFile3 for two different reasons: - // 1) When committing memory for the created paging file - // 2) When mapping a view of the memory created in (2) - // - // The non-platform code is only setup to deal with out-of-memory - // errors in (1). By using SEC_RESERVE, we prevent MapViewOfFile3 - // from failing because of "commit limit" checks. To actually commit - // memory in (1), a call to VirtualAlloc2 is done. - - HANDLE const res = XSyscall::CreateFileMappingW( - INVALID_HANDLE_VALUE, // hFile - nullptr, // lpFileMappingAttribute - PAGE_READWRITE | SEC_RESERVE, // flProtect - size >> 32, // dwMaximumSizeHigh - size & 0xFFFFFFFF, // dwMaximumSizeLow - nullptr // lpName - ); - - // Caller responsible for error handling - return res; -} - -bool XMapper::commit_paging_file_mapping(HANDLE file_handle, uintptr_t file_offset, size_t size) { - const uintptr_t addr = map_view_no_placeholder(file_handle, file_offset, size); - if (addr == 0) { - log_error(gc)("Failed to map view of paging file mapping (%d)", GetLastError()); - return false; - } - - const uintptr_t res = commit(addr, size); - if (res != addr) { - log_error(gc)("Failed to commit memory (%d)", GetLastError()); - } - - unmap_view_no_placeholder(addr, size); - - return res == addr; -} - -uintptr_t XMapper::map_view_no_placeholder(HANDLE file_handle, uintptr_t file_offset, size_t size) { - void* const res = XSyscall::MapViewOfFile3( - file_handle, // FileMapping - GetCurrentProcess(), // ProcessHandle - nullptr, // BaseAddress - file_offset, // Offset - size, // ViewSize - 0, // AllocationType - PAGE_NOACCESS, // PageProtection - nullptr, // ExtendedParameters - 0 // ParameterCount - ); - - // Caller responsible for error handling - return (uintptr_t)res; -} - -void XMapper::unmap_view_no_placeholder(uintptr_t addr, size_t size) { - const bool res = XSyscall::UnmapViewOfFile2( - GetCurrentProcess(), // ProcessHandle - (void*)addr, // BaseAddress - 0 // UnmapFlags - ); - - if (!res) { - fatal_error("Failed to unmap memory", addr, size); - } -} - -uintptr_t XMapper::commit(uintptr_t addr, size_t size) { - void* const res = XSyscall::VirtualAlloc2( - GetCurrentProcess(), // Process - (void*)addr, // BaseAddress - size, // Size - MEM_COMMIT, // AllocationType - PAGE_NOACCESS, // PageProtection - nullptr, // ExtendedParameters - 0 // ParameterCount - ); - - // Caller responsible for error handling - return (uintptr_t)res; -} - -HANDLE XMapper::create_and_commit_paging_file_mapping(size_t size) { - HANDLE const file_handle = create_paging_file_mapping(size); - if (file_handle == 0) { - log_error(gc)("Failed to create paging file mapping (%d)", GetLastError()); - return 0; - } - - const bool res = commit_paging_file_mapping(file_handle, 0 /* file_offset */, size); - if (!res) { - close_paging_file_mapping(file_handle); - return 0; - } - - return file_handle; -} - -void XMapper::close_paging_file_mapping(HANDLE file_handle) { - const bool res = CloseHandle( - file_handle // hObject - ); - - if (!res) { - fatal("Failed to close paging file handle (%d)", GetLastError()); - } -} - -HANDLE XMapper::create_shared_awe_section() { - MEM_EXTENDED_PARAMETER parameter = { 0 }; - parameter.Type = MemSectionExtendedParameterUserPhysicalFlags; - parameter.ULong64 = 0; - - HANDLE section = XSyscall::CreateFileMapping2( - INVALID_HANDLE_VALUE, // File - nullptr, // SecurityAttributes - SECTION_MAP_READ | SECTION_MAP_WRITE, // DesiredAccess - PAGE_READWRITE, // PageProtection - SEC_RESERVE | SEC_LARGE_PAGES, // AllocationAttributes - 0, // MaximumSize - nullptr, // Name - ¶meter, // ExtendedParameters - 1 // ParameterCount - ); - - if (section == nullptr) { - fatal("Could not create shared AWE section (%d)", GetLastError()); - } - - return section; -} - -uintptr_t XMapper::reserve_for_shared_awe(HANDLE awe_section, uintptr_t addr, size_t size) { - MEM_EXTENDED_PARAMETER parameter = { 0 }; - parameter.Type = MemExtendedParameterUserPhysicalHandle; - parameter.Handle = awe_section; - - void* const res = XSyscall::VirtualAlloc2( - GetCurrentProcess(), // Process - (void*)addr, // BaseAddress - size, // Size - MEM_RESERVE | MEM_PHYSICAL, // AllocationType - PAGE_READWRITE, // PageProtection - ¶meter, // ExtendedParameters - 1 // ParameterCount - ); - - // Caller responsible for error handling - return (uintptr_t)res; -} - -void XMapper::unreserve_for_shared_awe(uintptr_t addr, size_t size) { - bool res = VirtualFree( - (void*)addr, // lpAddress - 0, // dwSize - MEM_RELEASE // dwFreeType - ); - - if (!res) { - fatal("Failed to unreserve memory: " PTR_FORMAT " " SIZE_FORMAT "M (%d)", - addr, size / M, GetLastError()); - } -} - -void XMapper::split_placeholder(uintptr_t addr, size_t size) { - const bool res = VirtualFree( - (void*)addr, // lpAddress - size, // dwSize - MEM_RELEASE | MEM_PRESERVE_PLACEHOLDER // dwFreeType - ); - - if (!res) { - fatal_error("Failed to split placeholder", addr, size); - } -} - -void XMapper::coalesce_placeholders(uintptr_t addr, size_t size) { - const bool res = VirtualFree( - (void*)addr, // lpAddress - size, // dwSize - MEM_RELEASE | MEM_COALESCE_PLACEHOLDERS // dwFreeType - ); - - if (!res) { - fatal_error("Failed to coalesce placeholders", addr, size); - } -} - -void XMapper::map_view_replace_placeholder(HANDLE file_handle, uintptr_t file_offset, uintptr_t addr, size_t size) { - void* const res = XSyscall::MapViewOfFile3( - file_handle, // FileMapping - GetCurrentProcess(), // ProcessHandle - (void*)addr, // BaseAddress - file_offset, // Offset - size, // ViewSize - MEM_REPLACE_PLACEHOLDER, // AllocationType - PAGE_READWRITE, // PageProtection - nullptr, // ExtendedParameters - 0 // ParameterCount - ); - - if (res == nullptr) { - fatal_error("Failed to map memory", addr, size); - } -} - -void XMapper::unmap_view_preserve_placeholder(uintptr_t addr, size_t size) { - const bool res = XSyscall::UnmapViewOfFile2( - GetCurrentProcess(), // ProcessHandle - (void*)addr, // BaseAddress - MEM_PRESERVE_PLACEHOLDER // UnmapFlags - ); - - if (!res) { - fatal_error("Failed to unmap memory", addr, size); - } -} diff --git a/src/hotspot/os/windows/gc/x/xMapper_windows.hpp b/src/hotspot/os/windows/gc/x/xMapper_windows.hpp deleted file mode 100644 index 0f266d3fab7..00000000000 --- a/src/hotspot/os/windows/gc/x/xMapper_windows.hpp +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef OS_WINDOWS_GC_X_XMAPPER_WINDOWS_HPP -#define OS_WINDOWS_GC_X_XMAPPER_WINDOWS_HPP - -#include "memory/allStatic.hpp" -#include "utilities/globalDefinitions.hpp" - -#include - -class XMapper : public AllStatic { -private: - // Create paging file mapping - static HANDLE create_paging_file_mapping(size_t size); - - // Commit paging file mapping - static bool commit_paging_file_mapping(HANDLE file_handle, uintptr_t file_offset, size_t size); - - // Map a view anywhere without a placeholder - static uintptr_t map_view_no_placeholder(HANDLE file_handle, uintptr_t file_offset, size_t size); - - // Unmap a view without preserving a placeholder - static void unmap_view_no_placeholder(uintptr_t addr, size_t size); - - // Commit memory covering the given virtual address range - static uintptr_t commit(uintptr_t addr, size_t size); - -public: - // Reserve memory with a placeholder - static uintptr_t reserve(uintptr_t addr, size_t size); - - // Unreserve memory - static void unreserve(uintptr_t addr, size_t size); - - // Create and commit paging file mapping - static HANDLE create_and_commit_paging_file_mapping(size_t size); - - // Close paging file mapping - static void close_paging_file_mapping(HANDLE file_handle); - - // Create a shared AWE section - static HANDLE create_shared_awe_section(); - - // Reserve memory attached to the shared AWE section - static uintptr_t reserve_for_shared_awe(HANDLE awe_section, uintptr_t addr, size_t size); - - // Unreserve memory attached to a shared AWE section - static void unreserve_for_shared_awe(uintptr_t addr, size_t size); - - // Split a placeholder - // - // A view can only replace an entire placeholder, so placeholders need to be - // split and coalesced to be the exact size of the new views. - // [addr, addr + size) needs to be a proper sub-placeholder of an existing - // placeholder. - static void split_placeholder(uintptr_t addr, size_t size); - - // Coalesce a placeholder - // - // [addr, addr + size) is the new placeholder. A sub-placeholder needs to - // exist within that range. - static void coalesce_placeholders(uintptr_t addr, size_t size); - - // Map a view of the file handle and replace the placeholder covering the - // given virtual address range - static void map_view_replace_placeholder(HANDLE file_handle, uintptr_t file_offset, uintptr_t addr, size_t size); - - // Unmap the view and reinstate a placeholder covering the given virtual - // address range - static void unmap_view_preserve_placeholder(uintptr_t addr, size_t size); -}; - -#endif // OS_WINDOWS_GC_X_XMAPPER_WINDOWS_HPP diff --git a/src/hotspot/os/windows/gc/x/xNUMA_windows.cpp b/src/hotspot/os/windows/gc/x/xNUMA_windows.cpp deleted file mode 100644 index 47a84df962e..00000000000 --- a/src/hotspot/os/windows/gc/x/xNUMA_windows.cpp +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xNUMA.hpp" - -void XNUMA::pd_initialize() { - _enabled = false; -} - -uint32_t XNUMA::count() { - return 1; -} - -uint32_t XNUMA::id() { - return 0; -} - -uint32_t XNUMA::memory_id(uintptr_t addr) { - // NUMA support not enabled, assume everything belongs to node zero - return 0; -} diff --git a/src/hotspot/os/windows/gc/x/xPhysicalMemoryBacking_windows.cpp b/src/hotspot/os/windows/gc/x/xPhysicalMemoryBacking_windows.cpp deleted file mode 100644 index 92d47dfb7c8..00000000000 --- a/src/hotspot/os/windows/gc/x/xPhysicalMemoryBacking_windows.cpp +++ /dev/null @@ -1,252 +0,0 @@ -/* - * Copyright (c) 2019, 2023, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xGlobals.hpp" -#include "gc/x/xGranuleMap.inline.hpp" -#include "gc/x/xLargePages.inline.hpp" -#include "gc/x/xMapper_windows.hpp" -#include "gc/x/xPhysicalMemoryBacking_windows.hpp" -#include "logging/log.hpp" -#include "runtime/globals.hpp" -#include "utilities/debug.hpp" - -class XPhysicalMemoryBackingImpl : public CHeapObj { -public: - virtual size_t commit(size_t offset, size_t size) = 0; - virtual size_t uncommit(size_t offset, size_t size) = 0; - virtual void map(uintptr_t addr, size_t size, size_t offset) const = 0; - virtual void unmap(uintptr_t addr, size_t size) const = 0; -}; - -// Implements small pages (paged) support using placeholder reservation. -// -// The backing commits and uncommits physical memory, that can be -// multi-mapped into the virtual address space. To support fine-graned -// committing and uncommitting, each XGranuleSize'd chunk is mapped to -// a separate paging file mapping. - -class XPhysicalMemoryBackingSmallPages : public XPhysicalMemoryBackingImpl { -private: - XGranuleMap _handles; - - HANDLE get_handle(uintptr_t offset) const { - HANDLE const handle = _handles.get(offset); - assert(handle != 0, "Should be set"); - return handle; - } - - void put_handle(uintptr_t offset, HANDLE handle) { - assert(handle != INVALID_HANDLE_VALUE, "Invalid handle"); - assert(_handles.get(offset) == 0, "Should be cleared"); - _handles.put(offset, handle); - } - - void clear_handle(uintptr_t offset) { - assert(_handles.get(offset) != 0, "Should be set"); - _handles.put(offset, 0); - } - -public: - XPhysicalMemoryBackingSmallPages(size_t max_capacity) : - XPhysicalMemoryBackingImpl(), - _handles(max_capacity) {} - - size_t commit(size_t offset, size_t size) { - for (size_t i = 0; i < size; i += XGranuleSize) { - HANDLE const handle = XMapper::create_and_commit_paging_file_mapping(XGranuleSize); - if (handle == 0) { - return i; - } - - put_handle(offset + i, handle); - } - - return size; - } - - size_t uncommit(size_t offset, size_t size) { - for (size_t i = 0; i < size; i += XGranuleSize) { - HANDLE const handle = get_handle(offset + i); - clear_handle(offset + i); - XMapper::close_paging_file_mapping(handle); - } - - return size; - } - - void map(uintptr_t addr, size_t size, size_t offset) const { - assert(is_aligned(offset, XGranuleSize), "Misaligned"); - assert(is_aligned(addr, XGranuleSize), "Misaligned"); - assert(is_aligned(size, XGranuleSize), "Misaligned"); - - for (size_t i = 0; i < size; i += XGranuleSize) { - HANDLE const handle = get_handle(offset + i); - XMapper::map_view_replace_placeholder(handle, 0 /* offset */, addr + i, XGranuleSize); - } - } - - void unmap(uintptr_t addr, size_t size) const { - assert(is_aligned(addr, XGranuleSize), "Misaligned"); - assert(is_aligned(size, XGranuleSize), "Misaligned"); - - for (size_t i = 0; i < size; i += XGranuleSize) { - XMapper::unmap_view_preserve_placeholder(addr + i, XGranuleSize); - } - } -}; - -// Implements Large Pages (locked) support using shared AWE physical memory. -// -// Shared AWE physical memory also works with small pages, but it has -// a few drawbacks that makes it a no-go to use it at this point: -// -// 1) It seems to use 8 bytes of committed memory per *reserved* memory. -// Given our scheme to use a large address space range this turns out to -// use too much memory. -// -// 2) It requires memory locking privileges, even for small pages. This -// has always been a requirement for large pages, and would be an extra -// restriction for usage with small pages. -// -// Note: The large pages size is tied to our XGranuleSize. - -extern HANDLE XAWESection; - -class XPhysicalMemoryBackingLargePages : public XPhysicalMemoryBackingImpl { -private: - ULONG_PTR* const _page_array; - - static ULONG_PTR* alloc_page_array(size_t max_capacity) { - const size_t npages = max_capacity / XGranuleSize; - const size_t array_size = npages * sizeof(ULONG_PTR); - - return (ULONG_PTR*)os::malloc(array_size, mtGC); - } - -public: - XPhysicalMemoryBackingLargePages(size_t max_capacity) : - XPhysicalMemoryBackingImpl(), - _page_array(alloc_page_array(max_capacity)) {} - - size_t commit(size_t offset, size_t size) { - const size_t index = offset >> XGranuleSizeShift; - const size_t npages = size >> XGranuleSizeShift; - - size_t npages_res = npages; - const bool res = AllocateUserPhysicalPages(XAWESection, &npages_res, &_page_array[index]); - if (!res) { - fatal("Failed to allocate physical memory " SIZE_FORMAT "M @ " PTR_FORMAT " (%d)", - size / M, offset, GetLastError()); - } else { - log_debug(gc)("Allocated physical memory: " SIZE_FORMAT "M @ " PTR_FORMAT, size / M, offset); - } - - // AllocateUserPhysicalPages might not be able to allocate the requested amount of memory. - // The allocated number of pages are written in npages_res. - return npages_res << XGranuleSizeShift; - } - - size_t uncommit(size_t offset, size_t size) { - const size_t index = offset >> XGranuleSizeShift; - const size_t npages = size >> XGranuleSizeShift; - - size_t npages_res = npages; - const bool res = FreeUserPhysicalPages(XAWESection, &npages_res, &_page_array[index]); - if (!res) { - fatal("Failed to uncommit physical memory " SIZE_FORMAT "M @ " PTR_FORMAT " (%d)", - size, offset, GetLastError()); - } - - return npages_res << XGranuleSizeShift; - } - - void map(uintptr_t addr, size_t size, size_t offset) const { - const size_t npages = size >> XGranuleSizeShift; - const size_t index = offset >> XGranuleSizeShift; - - const bool res = MapUserPhysicalPages((char*)addr, npages, &_page_array[index]); - if (!res) { - fatal("Failed to map view " PTR_FORMAT " " SIZE_FORMAT "M @ " PTR_FORMAT " (%d)", - addr, size / M, offset, GetLastError()); - } - } - - void unmap(uintptr_t addr, size_t size) const { - const size_t npages = size >> XGranuleSizeShift; - - const bool res = MapUserPhysicalPages((char*)addr, npages, nullptr); - if (!res) { - fatal("Failed to unmap view " PTR_FORMAT " " SIZE_FORMAT "M (%d)", - addr, size / M, GetLastError()); - } - } -}; - -static XPhysicalMemoryBackingImpl* select_impl(size_t max_capacity) { - if (XLargePages::is_enabled()) { - return new XPhysicalMemoryBackingLargePages(max_capacity); - } - - return new XPhysicalMemoryBackingSmallPages(max_capacity); -} - -XPhysicalMemoryBacking::XPhysicalMemoryBacking(size_t max_capacity) : - _impl(select_impl(max_capacity)) {} - -bool XPhysicalMemoryBacking::is_initialized() const { - return true; -} - -void XPhysicalMemoryBacking::warn_commit_limits(size_t max_capacity) const { - // Does nothing -} - -size_t XPhysicalMemoryBacking::commit(size_t offset, size_t length) { - log_trace(gc, heap)("Committing memory: " SIZE_FORMAT "M-" SIZE_FORMAT "M (" SIZE_FORMAT "M)", - offset / M, (offset + length) / M, length / M); - - return _impl->commit(offset, length); -} - -size_t XPhysicalMemoryBacking::uncommit(size_t offset, size_t length) { - log_trace(gc, heap)("Uncommitting memory: " SIZE_FORMAT "M-" SIZE_FORMAT "M (" SIZE_FORMAT "M)", - offset / M, (offset + length) / M, length / M); - - return _impl->uncommit(offset, length); -} - -void XPhysicalMemoryBacking::map(uintptr_t addr, size_t size, size_t offset) const { - assert(is_aligned(offset, XGranuleSize), "Misaligned: " PTR_FORMAT, offset); - assert(is_aligned(addr, XGranuleSize), "Misaligned: " PTR_FORMAT, addr); - assert(is_aligned(size, XGranuleSize), "Misaligned: " PTR_FORMAT, size); - - _impl->map(addr, size, offset); -} - -void XPhysicalMemoryBacking::unmap(uintptr_t addr, size_t size) const { - assert(is_aligned(addr, XGranuleSize), "Misaligned"); - assert(is_aligned(size, XGranuleSize), "Misaligned"); - - _impl->unmap(addr, size); -} diff --git a/src/hotspot/os/windows/gc/x/xPhysicalMemoryBacking_windows.hpp b/src/hotspot/os/windows/gc/x/xPhysicalMemoryBacking_windows.hpp deleted file mode 100644 index d6e123f21e5..00000000000 --- a/src/hotspot/os/windows/gc/x/xPhysicalMemoryBacking_windows.hpp +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) 2019, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef OS_WINDOWS_GC_X_XPHYSICALMEMORYBACKING_WINDOWS_HPP -#define OS_WINDOWS_GC_X_XPHYSICALMEMORYBACKING_WINDOWS_HPP - -#include "utilities/globalDefinitions.hpp" - -#include - -class XPhysicalMemoryBackingImpl; - -class XPhysicalMemoryBacking { -private: - XPhysicalMemoryBackingImpl* _impl; - -public: - XPhysicalMemoryBacking(size_t max_capacity); - - bool is_initialized() const; - - void warn_commit_limits(size_t max_capacity) const; - - size_t commit(size_t offset, size_t length); - size_t uncommit(size_t offset, size_t length); - - void map(uintptr_t addr, size_t size, size_t offset) const; - void unmap(uintptr_t addr, size_t size) const; -}; - -#endif // OS_WINDOWS_GC_X_XPHYSICALMEMORYBACKING_WINDOWS_HPP diff --git a/src/hotspot/os/windows/gc/x/xSyscall_windows.cpp b/src/hotspot/os/windows/gc/x/xSyscall_windows.cpp deleted file mode 100644 index f22966a5489..00000000000 --- a/src/hotspot/os/windows/gc/x/xSyscall_windows.cpp +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Copyright (c) 2019, 2023, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/shared/gcLogPrecious.hpp" -#include "gc/x/xSyscall_windows.hpp" -#include "runtime/java.hpp" -#include "runtime/os.hpp" - -XSyscall::CreateFileMappingWFn XSyscall::CreateFileMappingW; -XSyscall::CreateFileMapping2Fn XSyscall::CreateFileMapping2; -XSyscall::VirtualAlloc2Fn XSyscall::VirtualAlloc2; -XSyscall::VirtualFreeExFn XSyscall::VirtualFreeEx; -XSyscall::MapViewOfFile3Fn XSyscall::MapViewOfFile3; -XSyscall::UnmapViewOfFile2Fn XSyscall::UnmapViewOfFile2; - -static void* lookup_kernelbase_library() { - const char* const name = "KernelBase"; - char ebuf[1024]; - void* const handle = os::dll_load(name, ebuf, sizeof(ebuf)); - if (handle == nullptr) { - log_error_p(gc)("Failed to load library: %s", name); - } - return handle; -} - -static void* lookup_kernelbase_symbol(const char* name) { - static void* const handle = lookup_kernelbase_library(); - if (handle == nullptr) { - return nullptr; - } - return os::dll_lookup(handle, name); -} - -static bool has_kernelbase_symbol(const char* name) { - return lookup_kernelbase_symbol(name) != nullptr; -} - -template -static void install_kernelbase_symbol(Fn*& fn, const char* name) { - fn = reinterpret_cast(lookup_kernelbase_symbol(name)); -} - -template -static void install_kernelbase_1803_symbol_or_exit(Fn*& fn, const char* name) { - install_kernelbase_symbol(fn, name); - if (fn == nullptr) { - log_error_p(gc)("Failed to lookup symbol: %s", name); - vm_exit_during_initialization("ZGC requires Windows version 1803 or later"); - } -} - -void XSyscall::initialize() { - // Required - install_kernelbase_1803_symbol_or_exit(CreateFileMappingW, "CreateFileMappingW"); - install_kernelbase_1803_symbol_or_exit(VirtualAlloc2, "VirtualAlloc2"); - install_kernelbase_1803_symbol_or_exit(VirtualFreeEx, "VirtualFreeEx"); - install_kernelbase_1803_symbol_or_exit(MapViewOfFile3, "MapViewOfFile3"); - install_kernelbase_1803_symbol_or_exit(UnmapViewOfFile2, "UnmapViewOfFile2"); - - // Optional - for large pages support - install_kernelbase_symbol(CreateFileMapping2, "CreateFileMapping2"); -} - -bool XSyscall::is_supported() { - // Available in Windows version 1803 and later - return has_kernelbase_symbol("VirtualAlloc2"); -} - -bool XSyscall::is_large_pages_supported() { - // Available in Windows version 1809 and later - return has_kernelbase_symbol("CreateFileMapping2"); -} diff --git a/src/hotspot/os/windows/gc/x/xSyscall_windows.hpp b/src/hotspot/os/windows/gc/x/xSyscall_windows.hpp deleted file mode 100644 index 89ba2573b10..00000000000 --- a/src/hotspot/os/windows/gc/x/xSyscall_windows.hpp +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef OS_WINDOWS_GC_X_XSYSCALL_WINDOWS_HPP -#define OS_WINDOWS_GC_X_XSYSCALL_WINDOWS_HPP - -#include "utilities/globalDefinitions.hpp" - -#include -#include - -class XSyscall { -private: - typedef HANDLE (*CreateFileMappingWFn)(HANDLE, LPSECURITY_ATTRIBUTES, DWORD, DWORD, DWORD, LPCWSTR); - typedef HANDLE (*CreateFileMapping2Fn)(HANDLE, LPSECURITY_ATTRIBUTES, ULONG, ULONG, ULONG, ULONG64, PCWSTR, PMEM_EXTENDED_PARAMETER, ULONG); - typedef PVOID (*VirtualAlloc2Fn)(HANDLE, PVOID, SIZE_T, ULONG, ULONG, MEM_EXTENDED_PARAMETER*, ULONG); - typedef BOOL (*VirtualFreeExFn)(HANDLE, LPVOID, SIZE_T, DWORD); - typedef PVOID (*MapViewOfFile3Fn)(HANDLE, HANDLE, PVOID, ULONG64, SIZE_T, ULONG, ULONG, MEM_EXTENDED_PARAMETER*, ULONG); - typedef BOOL (*UnmapViewOfFile2Fn)(HANDLE, PVOID, ULONG); - -public: - static CreateFileMappingWFn CreateFileMappingW; - static CreateFileMapping2Fn CreateFileMapping2; - static VirtualAlloc2Fn VirtualAlloc2; - static VirtualFreeExFn VirtualFreeEx; - static MapViewOfFile3Fn MapViewOfFile3; - static UnmapViewOfFile2Fn UnmapViewOfFile2; - - static void initialize(); - - static bool is_supported(); - static bool is_large_pages_supported(); -}; - -#endif // OS_WINDOWS_GC_X_XSYSCALL_WINDOWS_HPP diff --git a/src/hotspot/os/windows/gc/x/xUtils_windows.cpp b/src/hotspot/os/windows/gc/x/xUtils_windows.cpp deleted file mode 100644 index 788da80834a..00000000000 --- a/src/hotspot/os/windows/gc/x/xUtils_windows.cpp +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (c) 2019, 2023, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xUtils.hpp" -#include "utilities/debug.hpp" - -#include - -uintptr_t XUtils::alloc_aligned(size_t alignment, size_t size) { - void* const res = _aligned_malloc(size, alignment); - - if (res == nullptr) { - fatal("_aligned_malloc failed"); - } - - memset(res, 0, size); - - return (uintptr_t)res; -} diff --git a/src/hotspot/os/windows/gc/x/xVirtualMemory_windows.cpp b/src/hotspot/os/windows/gc/x/xVirtualMemory_windows.cpp deleted file mode 100644 index a54f1e3cbae..00000000000 --- a/src/hotspot/os/windows/gc/x/xVirtualMemory_windows.cpp +++ /dev/null @@ -1,195 +0,0 @@ -/* - * Copyright (c) 2019, 2023, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xAddress.inline.hpp" -#include "gc/x/xGlobals.hpp" -#include "gc/x/xLargePages.inline.hpp" -#include "gc/x/xMapper_windows.hpp" -#include "gc/x/xSyscall_windows.hpp" -#include "gc/x/xVirtualMemory.inline.hpp" -#include "utilities/align.hpp" -#include "utilities/debug.hpp" - -class XVirtualMemoryManagerImpl : public CHeapObj { -public: - virtual void initialize_before_reserve() {} - virtual void initialize_after_reserve(XMemoryManager* manager) {} - virtual bool reserve(uintptr_t addr, size_t size) = 0; - virtual void unreserve(uintptr_t addr, size_t size) = 0; -}; - -// Implements small pages (paged) support using placeholder reservation. -class XVirtualMemoryManagerSmallPages : public XVirtualMemoryManagerImpl { -private: - class PlaceholderCallbacks : public AllStatic { - public: - static void split_placeholder(uintptr_t start, size_t size) { - XMapper::split_placeholder(XAddress::marked0(start), size); - XMapper::split_placeholder(XAddress::marked1(start), size); - XMapper::split_placeholder(XAddress::remapped(start), size); - } - - static void coalesce_placeholders(uintptr_t start, size_t size) { - XMapper::coalesce_placeholders(XAddress::marked0(start), size); - XMapper::coalesce_placeholders(XAddress::marked1(start), size); - XMapper::coalesce_placeholders(XAddress::remapped(start), size); - } - - static void split_into_placeholder_granules(uintptr_t start, size_t size) { - for (uintptr_t addr = start; addr < start + size; addr += XGranuleSize) { - split_placeholder(addr, XGranuleSize); - } - } - - static void coalesce_into_one_placeholder(uintptr_t start, size_t size) { - assert(is_aligned(size, XGranuleSize), "Must be granule aligned"); - - if (size > XGranuleSize) { - coalesce_placeholders(start, size); - } - } - - static void create_callback(const XMemory* area) { - assert(is_aligned(area->size(), XGranuleSize), "Must be granule aligned"); - coalesce_into_one_placeholder(area->start(), area->size()); - } - - static void destroy_callback(const XMemory* area) { - assert(is_aligned(area->size(), XGranuleSize), "Must be granule aligned"); - // Don't try split the last granule - VirtualFree will fail - split_into_placeholder_granules(area->start(), area->size() - XGranuleSize); - } - - static void shrink_from_front_callback(const XMemory* area, size_t size) { - assert(is_aligned(size, XGranuleSize), "Must be granule aligned"); - split_into_placeholder_granules(area->start(), size); - } - - static void shrink_from_back_callback(const XMemory* area, size_t size) { - assert(is_aligned(size, XGranuleSize), "Must be granule aligned"); - // Don't try split the last granule - VirtualFree will fail - split_into_placeholder_granules(area->end() - size, size - XGranuleSize); - } - - static void grow_from_front_callback(const XMemory* area, size_t size) { - assert(is_aligned(area->size(), XGranuleSize), "Must be granule aligned"); - coalesce_into_one_placeholder(area->start() - size, area->size() + size); - } - - static void grow_from_back_callback(const XMemory* area, size_t size) { - assert(is_aligned(area->size(), XGranuleSize), "Must be granule aligned"); - coalesce_into_one_placeholder(area->start(), area->size() + size); - } - - static void register_with(XMemoryManager* manager) { - // Each reserved virtual memory address area registered in _manager is - // exactly covered by a single placeholder. Callbacks are installed so - // that whenever a memory area changes, the corresponding placeholder - // is adjusted. - // - // The create and grow callbacks are called when virtual memory is - // returned to the memory manager. The new memory area is then covered - // by a new single placeholder. - // - // The destroy and shrink callbacks are called when virtual memory is - // allocated from the memory manager. The memory area is then is split - // into granule-sized placeholders. - // - // See comment in zMapper_windows.cpp explaining why placeholders are - // split into XGranuleSize sized placeholders. - - XMemoryManager::Callbacks callbacks; - - callbacks._create = &create_callback; - callbacks._destroy = &destroy_callback; - callbacks._shrink_from_front = &shrink_from_front_callback; - callbacks._shrink_from_back = &shrink_from_back_callback; - callbacks._grow_from_front = &grow_from_front_callback; - callbacks._grow_from_back = &grow_from_back_callback; - - manager->register_callbacks(callbacks); - } - }; - - virtual void initialize_after_reserve(XMemoryManager* manager) { - PlaceholderCallbacks::register_with(manager); - } - - virtual bool reserve(uintptr_t addr, size_t size) { - const uintptr_t res = XMapper::reserve(addr, size); - - assert(res == addr || res == 0, "Should not reserve other memory than requested"); - return res == addr; - } - - virtual void unreserve(uintptr_t addr, size_t size) { - XMapper::unreserve(addr, size); - } -}; - -// Implements Large Pages (locked) support using shared AWE physical memory. - -// XPhysicalMemory layer needs access to the section -HANDLE XAWESection; - -class XVirtualMemoryManagerLargePages : public XVirtualMemoryManagerImpl { -private: - virtual void initialize_before_reserve() { - XAWESection = XMapper::create_shared_awe_section(); - } - - virtual bool reserve(uintptr_t addr, size_t size) { - const uintptr_t res = XMapper::reserve_for_shared_awe(XAWESection, addr, size); - - assert(res == addr || res == 0, "Should not reserve other memory than requested"); - return res == addr; - } - - virtual void unreserve(uintptr_t addr, size_t size) { - XMapper::unreserve_for_shared_awe(addr, size); - } -}; - -static XVirtualMemoryManagerImpl* _impl = nullptr; - -void XVirtualMemoryManager::pd_initialize_before_reserve() { - if (XLargePages::is_enabled()) { - _impl = new XVirtualMemoryManagerLargePages(); - } else { - _impl = new XVirtualMemoryManagerSmallPages(); - } - _impl->initialize_before_reserve(); -} - -void XVirtualMemoryManager::pd_initialize_after_reserve() { - _impl->initialize_after_reserve(&_manager); -} - -bool XVirtualMemoryManager::pd_reserve(uintptr_t addr, size_t size) { - return _impl->reserve(addr, size); -} - -void XVirtualMemoryManager::pd_unreserve(uintptr_t addr, size_t size) { - _impl->unreserve(addr, size); -} diff --git a/src/hotspot/os/windows/os_windows.cpp b/src/hotspot/os/windows/os_windows.cpp index 66a6a92f5e0..71efb57e0f2 100644 --- a/src/hotspot/os/windows/os_windows.cpp +++ b/src/hotspot/os/windows/os_windows.cpp @@ -3825,7 +3825,8 @@ bool os::pd_release_memory(char* addr, size_t bytes) { if (err != nullptr) { log_warning(os)("bad release: [" PTR_FORMAT "-" PTR_FORMAT "): %s", p2i(start), p2i(end), err); #ifdef ASSERT - os::print_memory_mappings((char*)start, bytes, tty); + fileStream fs(stdout); + os::print_memory_mappings((char*)start, bytes, &fs); assert(false, "bad release: [" PTR_FORMAT "-" PTR_FORMAT "): %s", p2i(start), p2i(end), err); #endif return false; @@ -5753,7 +5754,15 @@ void PlatformEvent::park() { // TODO: consider a brief spin here, gated on the success of recent // spin attempts by this thread. while (_Event < 0) { + // The following code is only here to maintain the + // characteristics/performance from when an ObjectMonitor + // "responsible" thread used to issue timed parks. + HighResolutionInterval *phri = nullptr; + if (!ForceTimeHighResolution) { + phri = new HighResolutionInterval((jlong)1); + } DWORD rv = ::WaitForSingleObject(_ParkHandle, INFINITE); + delete phri; // if it is null, harmless assert(rv != WAIT_FAILED, "WaitForSingleObject failed with error code: %lu", GetLastError()); assert(rv == WAIT_OBJECT_0, "WaitForSingleObject failed with return value: %lu", rv); } diff --git a/src/hotspot/os/windows/perfMemory_windows.cpp b/src/hotspot/os/windows/perfMemory_windows.cpp index 06b057315cb..959be982fab 100644 --- a/src/hotspot/os/windows/perfMemory_windows.cpp +++ b/src/hotspot/os/windows/perfMemory_windows.cpp @@ -1803,7 +1803,7 @@ void PerfMemory::detach(char* addr, size_t bytes) { if (MemTracker::enabled()) { // it does not go through os api, the operation has to record from here - ThreadCritical tc; + NmtVirtualMemoryLocker ml; remove_file_mapping(addr); MemTracker::record_virtual_memory_release((address)addr, bytes); } else { diff --git a/src/hotspot/os_cpu/aix_ppc/os_aix_ppc.cpp b/src/hotspot/os_cpu/aix_ppc/os_aix_ppc.cpp index b45d38650c0..f83aa603062 100644 --- a/src/hotspot/os_cpu/aix_ppc/os_aix_ppc.cpp +++ b/src/hotspot/os_cpu/aix_ppc/os_aix_ppc.cpp @@ -462,12 +462,6 @@ void os::print_tos_pc(outputStream *st, const void *context) { address pc = os::Posix::ucontext_get_pc(uc); print_instructions(st, pc); st->cr(); - - // Try to decode the instructions. - st->print_cr("Decoded instructions: (pc=" PTR_FORMAT ")", p2i(pc)); - st->print(""); - // TODO: PPC port Disassembler::decode(pc, 16, 16, st); - st->cr(); } void os::print_register_info(outputStream *st, const void *context, int& continuation) { diff --git a/src/hotspot/os_cpu/linux_aarch64/gc/x/xSyscall_linux_aarch64.hpp b/src/hotspot/os_cpu/linux_aarch64/gc/x/xSyscall_linux_aarch64.hpp deleted file mode 100644 index b4c49f477a6..00000000000 --- a/src/hotspot/os_cpu/linux_aarch64/gc/x/xSyscall_linux_aarch64.hpp +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef OS_CPU_LINUX_AARCH64_GC_X_XSYSCALL_LINUX_AARCH64_HPP -#define OS_CPU_LINUX_AARCH64_GC_X_XSYSCALL_LINUX_AARCH64_HPP - -#include - -// -// Support for building on older Linux systems -// - -#ifndef SYS_memfd_create -#define SYS_memfd_create 279 -#endif -#ifndef SYS_fallocate -#define SYS_fallocate 47 -#endif - -#endif // OS_CPU_LINUX_AARCH64_GC_X_XSYSCALL_LINUX_AARCH64_HPP diff --git a/src/hotspot/os_cpu/linux_ppc/gc/x/xSyscall_linux_ppc.hpp b/src/hotspot/os_cpu/linux_ppc/gc/x/xSyscall_linux_ppc.hpp deleted file mode 100644 index 22d51cd58f5..00000000000 --- a/src/hotspot/os_cpu/linux_ppc/gc/x/xSyscall_linux_ppc.hpp +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2021 SAP SE. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef OS_CPU_LINUX_PPC_GC_X_XSYSCALL_LINUX_PPC_HPP -#define OS_CPU_LINUX_PPC_GC_X_XSYSCALL_LINUX_PPC_HPP - -#include - -// -// Support for building on older Linux systems -// - - -#ifndef SYS_memfd_create -#define SYS_memfd_create 360 -#endif -#ifndef SYS_fallocate -#define SYS_fallocate 309 -#endif - -#endif // OS_CPU_LINUX_PPC_GC_X_XSYSCALL_LINUX_PPC_HPP diff --git a/src/hotspot/os_cpu/linux_riscv/gc/x/xSyscall_linux_riscv.hpp b/src/hotspot/os_cpu/linux_riscv/gc/x/xSyscall_linux_riscv.hpp deleted file mode 100644 index bfd49b0bf4e..00000000000 --- a/src/hotspot/os_cpu/linux_riscv/gc/x/xSyscall_linux_riscv.hpp +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2020, 2021, Huawei Technologies Co., Ltd. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -#ifndef OS_CPU_LINUX_RISCV_GC_X_XSYSCALL_LINUX_RISCV_HPP -#define OS_CPU_LINUX_RISCV_GC_X_XSYSCALL_LINUX_RISCV_HPP - -#include - -// -// Support for building on older Linux systems -// - -#ifndef SYS_memfd_create -#define SYS_memfd_create 279 -#endif -#ifndef SYS_fallocate -#define SYS_fallocate 47 -#endif - -#endif // OS_CPU_LINUX_RISCV_GC_X_XSYSCALL_LINUX_RISCV_HPP diff --git a/src/hotspot/os_cpu/linux_riscv/riscv_hwprobe.cpp b/src/hotspot/os_cpu/linux_riscv/riscv_hwprobe.cpp index df4a2e347cc..2020e2fdb24 100644 --- a/src/hotspot/os_cpu/linux_riscv/riscv_hwprobe.cpp +++ b/src/hotspot/os_cpu/linux_riscv/riscv_hwprobe.cpp @@ -74,7 +74,7 @@ #define RISCV_HWPROBE_EXT_ZFHMIN (1 << 28) #define RISCV_HWPROBE_EXT_ZIHINTNTL (1 << 29) #define RISCV_HWPROBE_EXT_ZVFH (1 << 30) -#define RISCV_HWPROBE_EXT_ZVFHMIN (1 << 31) +#define RISCV_HWPROBE_EXT_ZVFHMIN (1ULL << 31) #define RISCV_HWPROBE_EXT_ZFA (1ULL << 32) #define RISCV_HWPROBE_EXT_ZTSO (1ULL << 33) #define RISCV_HWPROBE_EXT_ZACAS (1ULL << 34) @@ -178,6 +178,9 @@ void RiscvHwprobe::add_features_from_query_result() { if (is_set(RISCV_HWPROBE_KEY_IMA_EXT_0, RISCV_HWPROBE_EXT_ZFH)) { VM_Version::ext_Zfh.enable_feature(); } + if (is_set(RISCV_HWPROBE_KEY_IMA_EXT_0, RISCV_HWPROBE_EXT_ZVFH)) { + VM_Version::ext_Zvfh.enable_feature(); + } if (is_valid(RISCV_HWPROBE_KEY_CPUPERF_0)) { VM_Version::unaligned_access.enable_feature( query[RISCV_HWPROBE_KEY_CPUPERF_0].value & RISCV_HWPROBE_MISALIGNED_MASK); diff --git a/src/hotspot/os_cpu/linux_x86/gc/x/xSyscall_linux_x86.hpp b/src/hotspot/os_cpu/linux_x86/gc/x/xSyscall_linux_x86.hpp deleted file mode 100644 index 2709b373b28..00000000000 --- a/src/hotspot/os_cpu/linux_x86/gc/x/xSyscall_linux_x86.hpp +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef OS_CPU_LINUX_X86_GC_X_XSYSCALL_LINUX_X86_HPP -#define OS_CPU_LINUX_X86_GC_X_XSYSCALL_LINUX_X86_HPP - -#include - -// -// Support for building on older Linux systems -// - -#ifndef SYS_memfd_create -#define SYS_memfd_create 319 -#endif -#ifndef SYS_fallocate -#define SYS_fallocate 285 -#endif - -#endif // OS_CPU_LINUX_X86_GC_X_XSYSCALL_LINUX_X86_HPP diff --git a/src/hotspot/os_cpu/linux_x86/os_linux_x86.cpp b/src/hotspot/os_cpu/linux_x86/os_linux_x86.cpp index 0d5d07fc8a8..8fdcbe63c7e 100644 --- a/src/hotspot/os_cpu/linux_x86/os_linux_x86.cpp +++ b/src/hotspot/os_cpu/linux_x86/os_linux_x86.cpp @@ -544,6 +544,21 @@ void os::print_context(outputStream *st, const void *context) { st->print(", ERR=" INTPTR_FORMAT, (intptr_t)uc->uc_mcontext.gregs[REG_ERR]); st->cr(); st->print(" TRAPNO=" INTPTR_FORMAT, (intptr_t)uc->uc_mcontext.gregs[REG_TRAPNO]); + // Add XMM registers + MXCSR. Note that C2 uses XMM to spill GPR values including pointers. + st->cr(); + st->cr(); + // Sanity check: fpregs should point into the context. + if ((address)uc->uc_mcontext.fpregs < (address)uc || + pointer_delta(uc->uc_mcontext.fpregs, uc, 1) >= sizeof(ucontext_t)) { + st->print_cr("bad uc->uc_mcontext.fpregs: " INTPTR_FORMAT " (uc: " INTPTR_FORMAT ")", + p2i(uc->uc_mcontext.fpregs), p2i(uc)); + } else { + for (int i = 0; i < 16; ++i) { + const int64_t* xmm_val_addr = (int64_t*)&(uc->uc_mcontext.fpregs->_xmm[i]); + st->print_cr("XMM[%d]=" INTPTR_FORMAT " " INTPTR_FORMAT, i, xmm_val_addr[1], xmm_val_addr[0]); + } + st->print(" MXCSR=" UINT32_FORMAT_X_0, uc->uc_mcontext.fpregs->mxcsr); + } #else st->print( "EAX=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_EAX]); st->print(", EBX=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_EBX]); diff --git a/src/hotspot/os_cpu/windows_x86/os_windows_x86.cpp b/src/hotspot/os_cpu/windows_x86/os_windows_x86.cpp index 62022d780a2..de59a74cc24 100644 --- a/src/hotspot/os_cpu/windows_x86/os_windows_x86.cpp +++ b/src/hotspot/os_cpu/windows_x86/os_windows_x86.cpp @@ -437,6 +437,15 @@ void os::print_context(outputStream *st, const void *context) { st->cr(); st->print( "RIP=" INTPTR_FORMAT, uc->Rip); st->print(", EFLAGS=" INTPTR_FORMAT, uc->EFlags); + // Add XMM registers + MXCSR. Note that C2 uses XMM to spill GPR values including pointers. + st->cr(); + st->cr(); + for (int i = 0; i < 16; ++i) { + const uint64_t *xmm = ((const uint64_t*)&(uc->Xmm0)) + 2 * i; + st->print_cr("XMM[%d]=" INTPTR_FORMAT " " INTPTR_FORMAT, + i, xmm[1], xmm[0]); + } + st->print(" MXCSR=" UINT32_FORMAT_X_0, uc->MxCsr); #else st->print( "EAX=" INTPTR_FORMAT, uc->Eax); st->print(", EBX=" INTPTR_FORMAT, uc->Ebx); diff --git a/src/hotspot/share/adlc/formsopt.cpp b/src/hotspot/share/adlc/formsopt.cpp index e1e4ed96c2e..5de8974e2c0 100644 --- a/src/hotspot/share/adlc/formsopt.cpp +++ b/src/hotspot/share/adlc/formsopt.cpp @@ -171,9 +171,13 @@ int RegisterForm::RegMask_Size() { // on the stack (stack registers) up to some interesting limit. Methods // that need more parameters will NOT be compiled. On Intel, the limit // is something like 90+ parameters. - // Add a few (3 words == 96 bits) for incoming & outgoing arguments to calls. - // Round up to the next doubleword size. - return (words_for_regs + 3 + 1) & ~1; + // - Add a few (3 words == 96 bits) for incoming & outgoing arguments to + // calls. + // - Round up to the next doubleword size. + // - Add one more word to accommodate a reasonable number of stack locations + // in the register mask regardless of how much slack is created by rounding. + // This was found necessary after adding 16 new registers for APX. + return (words_for_regs + 3 + 1 + 1) & ~1; } void RegisterForm::dump() { // Debug printer diff --git a/src/hotspot/share/adlc/formssel.cpp b/src/hotspot/share/adlc/formssel.cpp index e7dd00fa390..dfa414ef564 100644 --- a/src/hotspot/share/adlc/formssel.cpp +++ b/src/hotspot/share/adlc/formssel.cpp @@ -3957,15 +3957,15 @@ void MatchNode::count_commutative_op(int& count) { "AndI","AndL", "MaxI","MinI","MaxF","MinF","MaxD","MinD", "MulI","MulL","MulF","MulD", - "OrI","OrL", - "XorI","XorL" + "OrI","OrL", "XorI","XorL", + "UMax","UMin" }; static const char *commut_vector_op_list[] = { "AddVB", "AddVS", "AddVI", "AddVL", "AddVF", "AddVD", "MulVB", "MulVS", "MulVI", "MulVL", "MulVF", "MulVD", "AndV", "OrV", "XorV", - "MaxV", "MinV" + "MaxV", "MinV", "UMax","UMin" }; if (_lChild && _rChild && (_lChild->_lChild || _rChild->_lChild)) { @@ -4339,7 +4339,7 @@ bool MatchRule::is_vector() const { "NegVF","NegVD","NegVI","NegVL", "SqrtVD","SqrtVF", "AndV" ,"XorV" ,"OrV", - "MaxV", "MinV", + "MaxV", "MinV", "UMinV", "UMaxV", "CompressV", "ExpandV", "CompressM", "CompressBitsV", "ExpandBitsV", "AddReductionVI", "AddReductionVL", "AddReductionVF", "AddReductionVD", @@ -4362,7 +4362,7 @@ bool MatchRule::is_vector() const { "VectorUCastB2X", "VectorUCastS2X", "VectorUCastI2X", "VectorMaskWrapper","VectorMaskCmp","VectorReinterpret","LoadVectorMasked","StoreVectorMasked", "FmaVD","FmaVF","PopCountVI","PopCountVL","PopulateIndex","VectorLongToMask", - "CountLeadingZerosV", "CountTrailingZerosV", "SignumVF", "SignumVD", + "CountLeadingZerosV", "CountTrailingZerosV", "SignumVF", "SignumVD", "SaturatingAddV", "SaturatingSubV", // Next are vector mask ops. "MaskAll", "AndVMask", "OrVMask", "XorVMask", "VectorMaskCast", "RoundVF", "RoundVD", diff --git a/src/hotspot/share/cds/archiveHeapLoader.cpp b/src/hotspot/share/cds/archiveHeapLoader.cpp index 0e7ef08064c..01831cf0f3e 100644 --- a/src/hotspot/share/cds/archiveHeapLoader.cpp +++ b/src/hotspot/share/cds/archiveHeapLoader.cpp @@ -142,15 +142,22 @@ class PatchCompressedEmbeddedPointersQuick: public BitMapClosure { class PatchUncompressedEmbeddedPointers: public BitMapClosure { oop* _start; + intptr_t _delta; public: - PatchUncompressedEmbeddedPointers(oop* start) : _start(start) {} + PatchUncompressedEmbeddedPointers(oop* start, intx runtime_offset) : + _start(start), + _delta(runtime_offset) {} + + PatchUncompressedEmbeddedPointers(oop* start) : + _start(start), + _delta(ArchiveHeapLoader::mapped_heap_delta()) {} bool do_bit(size_t offset) { oop* p = _start + offset; intptr_t dumptime_oop = (intptr_t)((void*)*p); assert(dumptime_oop != 0, "null oops should have been filtered out at dump time"); - intptr_t runtime_oop = dumptime_oop + ArchiveHeapLoader::mapped_heap_delta(); + intptr_t runtime_oop = dumptime_oop + _delta; RawAccess::oop_store(p, cast_to_oop(runtime_oop)); return true; } @@ -221,10 +228,6 @@ void ArchiveHeapLoader::init_loaded_heap_relocation(LoadedArchiveHeapRegion* loa } bool ArchiveHeapLoader::can_load() { - if (!UseCompressedOops) { - // Pointer relocation for uncompressed oops is unimplemented. - return false; - } return Universe::heap()->can_load_archived_objects(); } @@ -312,13 +315,18 @@ bool ArchiveHeapLoader::load_heap_region_impl(FileMapInfo* mapinfo, LoadedArchiv uintptr_t oopmap = bitmap_base + r->oopmap_offset(); BitMapView bm((BitMap::bm_word_t*)oopmap, r->oopmap_size_in_bits()); - PatchLoadedRegionPointers patcher((narrowOop*)load_address + FileMapInfo::current_info()->heap_oopmap_start_pos(), loaded_region); - bm.iterate(&patcher); + if (UseCompressedOops) { + PatchLoadedRegionPointers patcher((narrowOop*)load_address + FileMapInfo::current_info()->heap_oopmap_start_pos(), loaded_region); + bm.iterate(&patcher); + } else { + PatchUncompressedEmbeddedPointers patcher((oop*)load_address + FileMapInfo::current_info()->heap_oopmap_start_pos(), loaded_region->_runtime_offset); + bm.iterate(&patcher); + } return true; } bool ArchiveHeapLoader::load_heap_region(FileMapInfo* mapinfo) { - assert(UseCompressedOops, "loaded heap for !UseCompressedOops is unimplemented"); + assert(can_load(), "loaded heap for must be supported"); init_narrow_oop_decoding(mapinfo->narrow_oop_base(), mapinfo->narrow_oop_shift()); LoadedArchiveHeapRegion loaded_region; @@ -358,8 +366,12 @@ class VerifyLoadedHeapEmbeddedPointers: public BasicOopIterateClosure { } } virtual void do_oop(oop* p) { - // Uncompressed oops are not supported by loaded heaps. - Unimplemented(); + oop v = *p; + if(v != nullptr) { + uintptr_t u = cast_from_oop(v); + ArchiveHeapLoader::assert_in_loaded_heap(u); + guarantee(_table->contains(u), "must point to beginning of object in loaded archived region"); + } } }; diff --git a/src/hotspot/share/cds/archiveHeapLoader.hpp b/src/hotspot/share/cds/archiveHeapLoader.hpp index 700135a3816..8b9fab91aa3 100644 --- a/src/hotspot/share/cds/archiveHeapLoader.hpp +++ b/src/hotspot/share/cds/archiveHeapLoader.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -146,6 +146,7 @@ class ArchiveHeapLoader : AllStatic { inline static oop decode_from_archive_impl(narrowOop v) NOT_CDS_JAVA_HEAP_RETURN_(nullptr); class PatchLoadedRegionPointers; + class PatchUncompressedLoadedRegionPointers; public: diff --git a/src/hotspot/share/cds/filemap.cpp b/src/hotspot/share/cds/filemap.cpp index 715fce5f3fc..e9e576a83f6 100644 --- a/src/hotspot/share/cds/filemap.cpp +++ b/src/hotspot/share/cds/filemap.cpp @@ -2054,8 +2054,7 @@ void FileMapInfo::map_or_load_heap_region() { success = ArchiveHeapLoader::load_heap_region(this); } else { if (!UseCompressedOops && !ArchiveHeapLoader::can_map()) { - // TODO - remove implicit knowledge of G1 - log_info(cds)("Cannot use CDS heap data. UseG1GC is required for -XX:-UseCompressedOops"); + log_info(cds)("Cannot use CDS heap data. Selected GC not compatible -XX:-UseCompressedOops"); } else { log_info(cds)("Cannot use CDS heap data. UseEpsilonGC, UseG1GC, UseSerialGC, UseParallelGC, or UseShenandoahGC are required."); } @@ -2135,7 +2134,7 @@ address FileMapInfo::heap_region_requested_address() { assert(CDSConfig::is_using_archive(), "runtime only"); FileMapRegion* r = region_at(MetaspaceShared::hp); assert(is_aligned(r->mapping_offset(), sizeof(HeapWord)), "must be"); - assert(ArchiveHeapLoader::can_map(), "cannot be used by ArchiveHeapLoader::can_load() mode"); + assert(ArchiveHeapLoader::can_use(), "GC must support mapping or loading"); if (UseCompressedOops) { // We can avoid relocation if each region's offset from the runtime CompressedOops::base() // is the same as its offset from the CompressedOops::base() during dumptime. diff --git a/src/hotspot/share/cds/heapShared.hpp b/src/hotspot/share/cds/heapShared.hpp index 01d664945ee..317b791f5d3 100644 --- a/src/hotspot/share/cds/heapShared.hpp +++ b/src/hotspot/share/cds/heapShared.hpp @@ -143,13 +143,18 @@ class HeapShared: AllStatic { friend class VerifySharedOopClosure; public: - // Can this VM write a heap region into the CDS archive? Currently only {G1|Parallel|Serial}+compressed_cp + // Can this VM write a heap region into the CDS archive? static bool can_write() { CDS_JAVA_HEAP_ONLY( if (_disable_writing) { return false; } - return (UseG1GC || UseParallelGC || UseSerialGC) && UseCompressedClassPointers; + // Need compressed class pointers for heap region dump. + if (!UseCompressedClassPointers) { + return false; + } + // Almost all GCs support heap region dump, except ZGC (so far). + return !UseZGC; ) NOT_CDS_JAVA_HEAP(return false;) } diff --git a/src/hotspot/share/ci/ciEnv.cpp b/src/hotspot/share/ci/ciEnv.cpp index 155ce032400..6bf8f44553d 100644 --- a/src/hotspot/share/ci/ciEnv.cpp +++ b/src/hotspot/share/ci/ciEnv.cpp @@ -1597,6 +1597,8 @@ void ciEnv::dump_replay_data_helper(outputStream* out) { NoSafepointVerifier no_safepoint; ResourceMark rm; + assert(this->task() != nullptr, "task must not be null"); + dump_replay_data_version(out); #if INCLUDE_JVMTI out->print_cr("JvmtiExport can_access_local_variables %d", _jvmti_can_access_local_variables); @@ -1617,9 +1619,7 @@ void ciEnv::dump_replay_data_helper(outputStream* out) { objects->at(i)->dump_replay_data(out); } - if (this->task() != nullptr) { - dump_compile_data(out); - } + dump_compile_data(out); out->flush(); } diff --git a/src/hotspot/share/classfile/classFileParser.cpp b/src/hotspot/share/classfile/classFileParser.cpp index c8e95149b7c..93dd0af65e7 100644 --- a/src/hotspot/share/classfile/classFileParser.cpp +++ b/src/hotspot/share/classfile/classFileParser.cpp @@ -411,23 +411,6 @@ static inline Symbol* check_symbol_at(const ConstantPool* cp, int index) { return nullptr; } -#ifdef ASSERT -PRAGMA_DIAG_PUSH -PRAGMA_FORMAT_NONLITERAL_IGNORED -void ClassFileParser::report_assert_property_failure(const char* msg, TRAPS) const { - ResourceMark rm(THREAD); - fatal(msg, _class_name->as_C_string()); -} - -void ClassFileParser::report_assert_property_failure(const char* msg, - int index, - TRAPS) const { - ResourceMark rm(THREAD); - fatal(msg, index, _class_name->as_C_string()); -} -PRAGMA_DIAG_POP -#endif - void ClassFileParser::parse_constant_pool(const ClassFileStream* const stream, ConstantPool* const cp, const int length, @@ -462,10 +445,10 @@ void ClassFileParser::parse_constant_pool(const ClassFileStream* const stream, if (!_need_verify) break; const int klass_ref_index = cp->uncached_klass_ref_index_at(index); const int name_and_type_ref_index = cp->uncached_name_and_type_ref_index_at(index); - check_property(valid_klass_reference_at(klass_ref_index), + guarantee_property(valid_klass_reference_at(klass_ref_index), "Invalid constant pool index %u in class file %s", klass_ref_index, CHECK); - check_property(valid_cp_range(name_and_type_ref_index, length) && + guarantee_property(valid_cp_range(name_and_type_ref_index, length) && cp->tag_at(name_and_type_ref_index).is_name_and_type(), "Invalid constant pool index %u in class file %s", name_and_type_ref_index, CHECK); @@ -482,7 +465,7 @@ void ClassFileParser::parse_constant_pool(const ClassFileStream* const stream, case JVM_CONSTANT_Long: case JVM_CONSTANT_Double: { index++; - check_property( + guarantee_property( (index < length && cp->tag_at(index).is_invalid()), "Improper constant pool long/double index %u in class file %s", index, CHECK); @@ -492,10 +475,10 @@ void ClassFileParser::parse_constant_pool(const ClassFileStream* const stream, if (!_need_verify) break; const int name_ref_index = cp->name_ref_index_at(index); const int signature_ref_index = cp->signature_ref_index_at(index); - check_property(valid_symbol_at(name_ref_index), + guarantee_property(valid_symbol_at(name_ref_index), "Invalid constant pool index %u in class file %s", name_ref_index, CHECK); - check_property(valid_symbol_at(signature_ref_index), + guarantee_property(valid_symbol_at(signature_ref_index), "Invalid constant pool index %u in class file %s", signature_ref_index, CHECK); break; @@ -509,7 +492,7 @@ void ClassFileParser::parse_constant_pool(const ClassFileStream* const stream, } case JVM_CONSTANT_ClassIndex: { const int class_index = cp->klass_index_at(index); - check_property(valid_symbol_at(class_index), + guarantee_property(valid_symbol_at(class_index), "Invalid constant pool index %u in class file %s", class_index, CHECK); cp->unresolved_klass_at_put(index, class_index, num_klasses++); @@ -517,7 +500,7 @@ void ClassFileParser::parse_constant_pool(const ClassFileStream* const stream, } case JVM_CONSTANT_StringIndex: { const int string_index = cp->string_index_at(index); - check_property(valid_symbol_at(string_index), + guarantee_property(valid_symbol_at(string_index), "Invalid constant pool index %u in class file %s", string_index, CHECK); Symbol* const sym = cp->symbol_at(string_index); @@ -526,7 +509,7 @@ void ClassFileParser::parse_constant_pool(const ClassFileStream* const stream, } case JVM_CONSTANT_MethodHandle: { const int ref_index = cp->method_handle_index_at(index); - check_property(valid_cp_range(ref_index, length), + guarantee_property(valid_cp_range(ref_index, length), "Invalid constant pool index %u in class file %s", ref_index, CHECK); const constantTag tag = cp->tag_at(ref_index); @@ -537,7 +520,7 @@ void ClassFileParser::parse_constant_pool(const ClassFileStream* const stream, case JVM_REF_getStatic: case JVM_REF_putField: case JVM_REF_putStatic: { - check_property( + guarantee_property( tag.is_field(), "Invalid constant pool index %u in class file %s (not a field)", ref_index, CHECK); @@ -545,7 +528,7 @@ void ClassFileParser::parse_constant_pool(const ClassFileStream* const stream, } case JVM_REF_invokeVirtual: case JVM_REF_newInvokeSpecial: { - check_property( + guarantee_property( tag.is_method(), "Invalid constant pool index %u in class file %s (not a method)", ref_index, CHECK); @@ -553,7 +536,7 @@ void ClassFileParser::parse_constant_pool(const ClassFileStream* const stream, } case JVM_REF_invokeStatic: case JVM_REF_invokeSpecial: { - check_property( + guarantee_property( tag.is_method() || ((_major_version >= JAVA_8_VERSION) && tag.is_interface_method()), "Invalid constant pool index %u in class file %s (not a method)", @@ -561,7 +544,7 @@ void ClassFileParser::parse_constant_pool(const ClassFileStream* const stream, break; } case JVM_REF_invokeInterface: { - check_property( + guarantee_property( tag.is_interface_method(), "Invalid constant pool index %u in class file %s (not an interface method)", ref_index, CHECK); @@ -579,7 +562,7 @@ void ClassFileParser::parse_constant_pool(const ClassFileStream* const stream, } // case MethodHandle case JVM_CONSTANT_MethodType: { const int ref_index = cp->method_type_index_at(index); - check_property(valid_symbol_at(ref_index), + guarantee_property(valid_symbol_at(ref_index), "Invalid constant pool index %u in class file %s", ref_index, CHECK); break; @@ -588,7 +571,7 @@ void ClassFileParser::parse_constant_pool(const ClassFileStream* const stream, const int name_and_type_ref_index = cp->bootstrap_name_and_type_ref_index_at(index); - check_property(valid_cp_range(name_and_type_ref_index, length) && + guarantee_property(valid_cp_range(name_and_type_ref_index, length) && cp->tag_at(name_and_type_ref_index).is_name_and_type(), "Invalid constant pool index %u in class file %s", name_and_type_ref_index, CHECK); @@ -603,7 +586,7 @@ void ClassFileParser::parse_constant_pool(const ClassFileStream* const stream, const int name_and_type_ref_index = cp->bootstrap_name_and_type_ref_index_at(index); - check_property(valid_cp_range(name_and_type_ref_index, length) && + guarantee_property(valid_cp_range(name_and_type_ref_index, length) && cp->tag_at(name_and_type_ref_index).is_name_and_type(), "Invalid constant pool index %u in class file %s", name_and_type_ref_index, CHECK); @@ -821,7 +804,7 @@ void ClassFileParser::parse_interfaces(const ClassFileStream* const stream, for (index = 0; index < itfs_len; index++) { const u2 interface_index = stream->get_u2(CHECK); Klass* interf; - check_property( + guarantee_property( valid_klass_reference_at(interface_index), "Interface name has bad constant pool index %u in class file %s", interface_index, CHECK); @@ -943,6 +926,7 @@ class AnnotationCollector : public ResourceObj{ _method_ForceInline, _method_DontInline, _method_ChangesCurrentThread, + _method_JvmtiHideEvents, _method_JvmtiMountTransition, _method_InjectedProfile, _method_LambdaForm_Compiled, @@ -1255,10 +1239,10 @@ void ClassFileParser::parse_field_attributes(const ClassFileStream* const cfs, cfs->guarantee_more(6, CHECK); // attribute_name_index, attribute_length const u2 attribute_name_index = cfs->get_u2_fast(); const u4 attribute_length = cfs->get_u4_fast(); - check_property(valid_symbol_at(attribute_name_index), - "Invalid field attribute index %u in class file %s", - attribute_name_index, - CHECK); + guarantee_property(valid_symbol_at(attribute_name_index), + "Invalid field attribute index %u in class file %s", + attribute_name_index, + CHECK); const Symbol* const attribute_name = cp->symbol_at(attribute_name_index); if (is_static && attribute_name == vmSymbols::tag_constant_value()) { @@ -1267,7 +1251,7 @@ void ClassFileParser::parse_field_attributes(const ClassFileStream* const cfs, classfile_parse_error("Duplicate ConstantValue attribute in class file %s", THREAD); return; } - check_property( + guarantee_property( attribute_length == 2, "Invalid ConstantValue field attribute length %u in class file %s", attribute_length, CHECK); @@ -1413,14 +1397,14 @@ void ClassFileParser::parse_fields(const ClassFileStream* const cfs, FieldInfo::FieldFlags fieldFlags(0); const u2 name_index = cfs->get_u2_fast(); - check_property(valid_symbol_at(name_index), + guarantee_property(valid_symbol_at(name_index), "Invalid constant pool index %u for field name in class file %s", name_index, CHECK); const Symbol* const name = cp->symbol_at(name_index); verify_legal_field_name(name, CHECK); const u2 signature_index = cfs->get_u2_fast(); - check_property(valid_symbol_at(signature_index), + guarantee_property(valid_symbol_at(signature_index), "Invalid constant pool index %u for field signature in class file %s", signature_index, CHECK); const Symbol* const sig = cp->symbol_at(signature_index); @@ -1598,7 +1582,7 @@ void ClassFileParser::parse_linenumber_table(u4 code_attribute_length, const unsigned int length_in_bytes = num_entries * (sizeof(u2) * 2); // Verify line number attribute and table length - check_property( + guarantee_property( code_attribute_length == sizeof(u2) + length_in_bytes, "LineNumberTable attribute has wrong length in class file %s", CHECK); @@ -1788,7 +1772,7 @@ const ClassFileParser::unsafe_u2* ClassFileParser::parse_checked_exceptions(cons cfs->guarantee_more(2 * len, CHECK_NULL); for (int i = 0; i < len; i++) { checked_exception = cfs->get_u2_fast(); - check_property( + guarantee_property( valid_klass_reference_at(checked_exception), "Exception name has bad type at constant pool %u in class file %s", checked_exception, CHECK_NULL); @@ -1847,6 +1831,11 @@ AnnotationCollector::annotation_index(const ClassLoaderData* loader_data, if (!privileged) break; // only allow in privileged code return _method_ChangesCurrentThread; } + case VM_SYMBOL_ENUM_NAME(jdk_internal_vm_annotation_JvmtiHideEvents_signature): { + if (_location != _in_method) break; // only allow for methods + if (!privileged) break; // only allow in privileged code + return _method_JvmtiHideEvents; + } case VM_SYMBOL_ENUM_NAME(jdk_internal_vm_annotation_JvmtiMountTransition_signature): { if (_location != _in_method) break; // only allow for methods if (!privileged) break; // only allow in privileged code @@ -1934,6 +1923,8 @@ void MethodAnnotationCollector::apply_to(const methodHandle& m) { m->set_dont_inline(); if (has_annotation(_method_ChangesCurrentThread)) m->set_changes_current_thread(); + if (has_annotation(_method_JvmtiHideEvents)) + m->set_jvmti_hide_events(); if (has_annotation(_method_JvmtiMountTransition)) m->set_jvmti_mount_transition(); if (has_annotation(_method_InjectedProfile)) @@ -2137,7 +2128,7 @@ Method* ClassFileParser::parse_method(const ClassFileStream* const cfs, int flags = cfs->get_u2_fast(); const u2 name_index = cfs->get_u2_fast(); const int cp_size = cp->length(); - check_property( + guarantee_property( valid_symbol_at(name_index), "Illegal constant pool index %u for method name in class file %s", name_index, CHECK_NULL); @@ -2235,7 +2226,7 @@ Method* ClassFileParser::parse_method(const ClassFileStream* const cfs, cfs->guarantee_more(6, CHECK_NULL); // method_attribute_name_index, method_attribute_length const u2 method_attribute_name_index = cfs->get_u2_fast(); const u4 method_attribute_length = cfs->get_u4_fast(); - check_property( + guarantee_property( valid_symbol_at(method_attribute_name_index), "Invalid method attribute name index %u in class file %s", method_attribute_name_index, CHECK_NULL); @@ -2310,10 +2301,10 @@ Method* ClassFileParser::parse_method(const ClassFileStream* const cfs, calculated_attribute_length += code_attribute_length + (unsigned)sizeof(code_attribute_name_index) + (unsigned)sizeof(code_attribute_length); - check_property(valid_symbol_at(code_attribute_name_index), - "Invalid code attribute name index %u in class file %s", - code_attribute_name_index, - CHECK_NULL); + guarantee_property(valid_symbol_at(code_attribute_name_index), + "Invalid code attribute name index %u in class file %s", + code_attribute_name_index, + CHECK_NULL); if (LoadLineNumberTables && cp->symbol_at(code_attribute_name_index) == vmSymbols::tag_line_number_table()) { // Parse and compress line number table @@ -2798,7 +2789,7 @@ u2 ClassFileParser::parse_generic_signature_attribute(const ClassFileStream* con cfs->guarantee_more(2, CHECK_0); // generic_signature_index const u2 generic_signature_index = cfs->get_u2_fast(); - check_property( + guarantee_property( valid_symbol_at(generic_signature_index), "Invalid Signature attribute at constant pool index %u in class file %s", generic_signature_index, CHECK_0); @@ -2812,7 +2803,7 @@ void ClassFileParser::parse_classfile_sourcefile_attribute(const ClassFileStream cfs->guarantee_more(2, CHECK); // sourcefile_index const u2 sourcefile_index = cfs->get_u2_fast(); - check_property( + guarantee_property( valid_symbol_at(sourcefile_index), "Invalid SourceFile attribute at constant pool index %u in class file %s", sourcefile_index, CHECK); @@ -2959,13 +2950,13 @@ u2 ClassFileParser::parse_classfile_inner_classes_attribute(const ClassFileStrea for (int n = 0; n < length; n++) { // Inner class index const u2 inner_class_info_index = cfs->get_u2_fast(); - check_property( + guarantee_property( valid_klass_reference_at(inner_class_info_index), "inner_class_info_index %u has bad constant type in class file %s", inner_class_info_index, CHECK_0); // Outer class index const u2 outer_class_info_index = cfs->get_u2_fast(); - check_property( + guarantee_property( outer_class_info_index == 0 || valid_klass_reference_at(outer_class_info_index), "outer_class_info_index %u has bad constant type in class file %s", @@ -2979,7 +2970,7 @@ u2 ClassFileParser::parse_classfile_inner_classes_attribute(const ClassFileStrea } // Inner class name const u2 inner_name_index = cfs->get_u2_fast(); - check_property( + guarantee_property( inner_name_index == 0 || valid_symbol_at(inner_name_index), "inner_name_index %u has bad constant type in class file %s", inner_name_index, CHECK_0); @@ -3055,7 +3046,7 @@ u2 ClassFileParser::parse_classfile_nest_members_attribute(const ClassFileStream cfs->guarantee_more(2 * length, CHECK_0); for (int n = 0; n < length; n++) { const u2 class_info_index = cfs->get_u2_fast(); - check_property( + guarantee_property( valid_klass_reference_at(class_info_index), "Nest member class_info_index %u has bad constant type in class file %s", class_info_index, CHECK_0); @@ -3088,7 +3079,7 @@ u2 ClassFileParser::parse_classfile_permitted_subclasses_attribute(const ClassFi cfs->guarantee_more(2 * length, CHECK_0); for (int n = 0; n < length; n++) { const u2 class_info_index = cfs->get_u2_fast(); - check_property( + guarantee_property( valid_klass_reference_at(class_info_index), "Permitted subclass class_info_index %u has bad constant type in class file %s", class_info_index, CHECK_0); @@ -3137,14 +3128,14 @@ u4 ClassFileParser::parse_classfile_record_attribute(const ClassFileStream* cons cfs->guarantee_more(6, CHECK_0); // name_index, descriptor_index, attributes_count const u2 name_index = cfs->get_u2_fast(); - check_property(valid_symbol_at(name_index), + guarantee_property(valid_symbol_at(name_index), "Invalid constant pool index %u for name in Record attribute in class file %s", name_index, CHECK_0); const Symbol* const name = cp->symbol_at(name_index); verify_legal_field_name(name, CHECK_0); const u2 descriptor_index = cfs->get_u2_fast(); - check_property(valid_symbol_at(descriptor_index), + guarantee_property(valid_symbol_at(descriptor_index), "Invalid constant pool index %u for descriptor in Record attribute in class file %s", descriptor_index, CHECK_0); const Symbol* const descr = cp->symbol_at(descriptor_index); @@ -3167,7 +3158,7 @@ u4 ClassFileParser::parse_classfile_record_attribute(const ClassFileStream* cons const u2 attribute_name_index = cfs->get_u2_fast(); const u4 attribute_length = cfs->get_u4_fast(); calculate_attr_size += 6; - check_property( + guarantee_property( valid_symbol_at(attribute_name_index), "Invalid Record attribute name index %u in class file %s", attribute_name_index, CHECK_0); @@ -3265,7 +3256,7 @@ void ClassFileParser::parse_classfile_signature_attribute(const ClassFileStream* assert(cfs != nullptr, "invariant"); const u2 signature_index = cfs->get_u2(CHECK); - check_property( + guarantee_property( valid_symbol_at(signature_index), "Invalid constant pool index %u in Signature attribute in class file %s", signature_index, CHECK); @@ -3323,7 +3314,7 @@ void ClassFileParser::parse_classfile_bootstrap_methods_attribute(const ClassFil cfs->guarantee_more(sizeof(u2) * 2, CHECK); // bsm, argc const u2 bootstrap_method_index = cfs->get_u2_fast(); const u2 argument_count = cfs->get_u2_fast(); - check_property( + guarantee_property( valid_cp_range(bootstrap_method_index, cp_size) && cp->tag_at(bootstrap_method_index).is_method_handle(), "bootstrap_method_index %u has bad constant type in class file %s", @@ -3340,7 +3331,7 @@ void ClassFileParser::parse_classfile_bootstrap_methods_attribute(const ClassFil cfs->guarantee_more(sizeof(u2) * argument_count, CHECK); // argv[argc] for (int j = 0; j < argument_count; j++) { const u2 argument_index = cfs->get_u2_fast(); - check_property( + guarantee_property( valid_cp_range(argument_index, cp_size) && cp->tag_at(argument_index).is_loadable_constant(), "argument_index %u has bad constant type in class file %s", @@ -3401,7 +3392,7 @@ void ClassFileParser::parse_classfile_attributes(const ClassFileStream* const cf cfs->guarantee_more(6, CHECK); // attribute_name_index, attribute_length const u2 attribute_name_index = cfs->get_u2_fast(); const u4 attribute_length = cfs->get_u4_fast(); - check_property( + guarantee_property( valid_symbol_at(attribute_name_index), "Attribute name has bad constant pool index %u in class file %s", attribute_name_index, CHECK); @@ -3513,7 +3504,7 @@ void ClassFileParser::parse_classfile_attributes(const ClassFileStream* const cf return; } // Validate the constant pool indices and types - check_property(valid_klass_reference_at(enclosing_method_class_index), + guarantee_property(valid_klass_reference_at(enclosing_method_class_index), "Invalid or out-of-bounds class index in EnclosingMethod attribute in class file %s", CHECK); if (enclosing_method_method_index != 0 && (!cp->is_within_bounds(enclosing_method_method_index) || @@ -3580,7 +3571,7 @@ void ClassFileParser::parse_classfile_attributes(const ClassFileStream* const cf } cfs->guarantee_more(2, CHECK); u2 class_info_index = cfs->get_u2_fast(); - check_property( + guarantee_property( valid_klass_reference_at(class_info_index), "Nest-host class_info_index %u has bad constant type in class file %s", class_info_index, CHECK); @@ -3789,15 +3780,15 @@ const InstanceKlass* ClassFileParser::parse_super_class(ConstantPool* const cp, const InstanceKlass* super_klass = nullptr; if (super_class_index == 0) { - check_property(_class_name == vmSymbols::java_lang_Object(), - "Invalid superclass index %u in class file %s", - super_class_index, - CHECK_NULL); + guarantee_property(_class_name == vmSymbols::java_lang_Object(), + "Invalid superclass index %u in class file %s", + super_class_index, + CHECK_NULL); } else { - check_property(valid_klass_reference_at(super_class_index), - "Invalid superclass index %u in class file %s", - super_class_index, - CHECK_NULL); + guarantee_property(valid_klass_reference_at(super_class_index), + "Invalid superclass index %u in class file %s", + super_class_index, + CHECK_NULL); // The class name should be legal because it is checked when parsing constant pool. // However, make sure it is not an array type. bool is_array = false; @@ -4076,26 +4067,6 @@ void ClassFileParser::check_super_class_access(const InstanceKlass* this_klass, return; } - // If the loader is not the boot loader then throw an exception if its - // superclass is in package jdk.internal.reflect and its loader is not a - // special reflection class loader - if (!this_klass->class_loader_data()->is_the_null_class_loader_data()) { - PackageEntry* super_package = super->package(); - if (super_package != nullptr && - super_package->name()->fast_compare(vmSymbols::jdk_internal_reflect()) == 0 && - !java_lang_ClassLoader::is_reflection_class_loader(this_klass->class_loader())) { - ResourceMark rm(THREAD); - Exceptions::fthrow( - THREAD_AND_LOCATION, - vmSymbols::java_lang_IllegalAccessError(), - "class %s loaded by %s cannot access jdk/internal/reflect superclass %s", - this_klass->external_name(), - this_klass->class_loader_data()->loader_name_and_id(), - super->external_name()); - return; - } - } - Reflection::VerifyClassAccessResults vca_result = Reflection::verify_class_access(this_klass, InstanceKlass::cast(super), false); if (vca_result != Reflection::ACCESS_OK) { @@ -5106,7 +5077,7 @@ void ClassFileParser::fill_instance_klass(InstanceKlass* ik, // Set PackageEntry for this_klass oop cl = ik->class_loader(); - Handle clh = Handle(THREAD, java_lang_ClassLoader::non_reflection_class_loader(cl)); + Handle clh = Handle(THREAD, cl); ClassLoaderData* cld = ClassLoaderData::class_loader_data_or_null(clh()); ik->set_package(cld, nullptr, CHECK); @@ -5543,7 +5514,7 @@ void ClassFileParser::parse_stream(const ClassFileStream* const stream, // This class and superclass _this_class_index = stream->get_u2_fast(); - check_property( + guarantee_property( valid_cp_range(_this_class_index, cp_size) && cp->tag_at(_this_class_index).is_unresolved_klass(), "Invalid this class index %u in constant pool in class file %s", @@ -5724,9 +5695,9 @@ void ClassFileParser::post_process_parsed_stream(const ClassFileStream* const st assert(_loader_data != nullptr, "invariant"); if (_class_name == vmSymbols::java_lang_Object()) { - check_property(_local_interfaces == Universe::the_empty_instance_klass_array(), - "java.lang.Object cannot implement an interface in class file %s", - CHECK); + guarantee_property(_local_interfaces == Universe::the_empty_instance_klass_array(), + "java.lang.Object cannot implement an interface in class file %s", + CHECK); } // We check super class after class file is parsed and format is checked if (_super_class_index > 0 && nullptr == _super_klass) { diff --git a/src/hotspot/share/classfile/classFileParser.hpp b/src/hotspot/share/classfile/classFileParser.hpp index d32dd6d5f78..a8a388f8ded 100644 --- a/src/hotspot/share/classfile/classFileParser.hpp +++ b/src/hotspot/share/classfile/classFileParser.hpp @@ -378,44 +378,6 @@ class ClassFileParser { if (!b) { classfile_parse_error(msg, THREAD); return; } } - void report_assert_property_failure(const char* msg, TRAPS) const PRODUCT_RETURN; - void report_assert_property_failure(const char* msg, int index, TRAPS) const PRODUCT_RETURN; - - inline void assert_property(bool b, const char* msg, TRAPS) const { -#ifdef ASSERT - if (!b) { - report_assert_property_failure(msg, THREAD); - } -#endif - } - - inline void assert_property(bool b, const char* msg, int index, TRAPS) const { -#ifdef ASSERT - if (!b) { - report_assert_property_failure(msg, index, THREAD); - } -#endif - } - - inline void check_property(bool property, - const char* msg, - int index, - TRAPS) const { - if (_need_verify) { - guarantee_property(property, msg, index, CHECK); - } else { - assert_property(property, msg, index, CHECK); - } - } - - inline void check_property(bool property, const char* msg, TRAPS) const { - if (_need_verify) { - guarantee_property(property, msg, CHECK); - } else { - assert_property(property, msg, CHECK); - } - } - inline void guarantee_property(bool b, const char* msg, int index, diff --git a/src/hotspot/share/classfile/classLoaderData.cpp b/src/hotspot/share/classfile/classLoaderData.cpp index fab012456d9..de0b16a907a 100644 --- a/src/hotspot/share/classfile/classLoaderData.cpp +++ b/src/hotspot/share/classfile/classLoaderData.cpp @@ -644,8 +644,6 @@ Dictionary* ClassLoaderData::create_dictionary() { int size; if (_the_null_class_loader_data == nullptr) { size = _boot_loader_dictionary_size; - } else if (class_loader()->is_a(vmClasses::reflect_DelegatingClassLoader_klass())) { - size = 1; // there's only one class in relection class loader and no initiated classes } else if (is_system_class_loader_data()) { size = _boot_loader_dictionary_size; } else { @@ -815,8 +813,6 @@ ClassLoaderMetaspace* ClassLoaderData::metaspace_non_null() { metaspace = new ClassLoaderMetaspace(_metaspace_lock, Metaspace::BootMetaspaceType); } else if (has_class_mirror_holder()) { metaspace = new ClassLoaderMetaspace(_metaspace_lock, Metaspace::ClassMirrorHolderMetaspaceType); - } else if (class_loader()->is_a(vmClasses::reflect_DelegatingClassLoader_klass())) { - metaspace = new ClassLoaderMetaspace(_metaspace_lock, Metaspace::ReflectionMetaspaceType); } else { metaspace = new ClassLoaderMetaspace(_metaspace_lock, Metaspace::StandardMetaspaceType); } diff --git a/src/hotspot/share/classfile/javaClasses.cpp b/src/hotspot/share/classfile/javaClasses.cpp index 0ad36cd21db..3dce1a343d8 100644 --- a/src/hotspot/share/classfile/javaClasses.cpp +++ b/src/hotspot/share/classfile/javaClasses.cpp @@ -4763,9 +4763,6 @@ bool java_lang_ClassLoader::parallelCapable(oop class_loader) { } bool java_lang_ClassLoader::is_trusted_loader(oop loader) { - // Fix for 4474172; see evaluation for more details - loader = non_reflection_class_loader(loader); - oop cl = SystemDictionary::java_system_loader(); while(cl != nullptr) { if (cl == loader) return true; @@ -4774,29 +4771,6 @@ bool java_lang_ClassLoader::is_trusted_loader(oop loader) { return false; } -// Return true if this is one of the class loaders associated with -// the generated bytecodes for serialization constructor returned -// by sun.reflect.ReflectionFactory::newConstructorForSerialization -bool java_lang_ClassLoader::is_reflection_class_loader(oop loader) { - if (loader != nullptr) { - Klass* delegating_cl_class = vmClasses::reflect_DelegatingClassLoader_klass(); - // This might be null in non-1.4 JDKs - return (delegating_cl_class != nullptr && loader->is_a(delegating_cl_class)); - } - return false; -} - -oop java_lang_ClassLoader::non_reflection_class_loader(oop loader) { - // See whether this is one of the class loaders associated with - // the generated bytecodes for reflection, and if so, "magically" - // delegate to its parent to prevent class loading from occurring - // in places where applications using reflection didn't expect it. - if (is_reflection_class_loader(loader)) { - return parent(loader); - } - return loader; -} - oop java_lang_ClassLoader::unnamedModule(oop loader) { assert(is_instance(loader), "loader must be oop"); return loader->obj_field(_unnamedModule_offset); diff --git a/src/hotspot/share/classfile/javaClasses.hpp b/src/hotspot/share/classfile/javaClasses.hpp index 6f82a75e8ff..6ab73b161f4 100644 --- a/src/hotspot/share/classfile/javaClasses.hpp +++ b/src/hotspot/share/classfile/javaClasses.hpp @@ -1502,14 +1502,6 @@ class java_lang_ClassLoader : AllStatic { static bool is_trusted_loader(oop loader); - // Return true if this is one of the class loaders associated with - // the generated bytecodes for serialization constructor returned - // by sun.reflect.ReflectionFactory::newConstructorForSerialization - static bool is_reflection_class_loader(oop loader); - - // Fix for 4474172 - static oop non_reflection_class_loader(oop loader); - // Testers static bool is_subclass(Klass* klass) { return klass->is_subclass_of(vmClasses::ClassLoader_klass()); diff --git a/src/hotspot/share/classfile/modules.cpp b/src/hotspot/share/classfile/modules.cpp index 14e730f7a33..dee67ce1dde 100644 --- a/src/hotspot/share/classfile/modules.cpp +++ b/src/hotspot/share/classfile/modules.cpp @@ -309,11 +309,6 @@ void Modules::define_module(Handle module, jboolean is_open, jstring version, } oop loader = java_lang_Module::loader(module()); - // Make sure loader is not the jdk.internal.reflect.DelegatingClassLoader. - if (loader != java_lang_ClassLoader::non_reflection_class_loader(loader)) { - THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), - "Class loader is an invalid delegating class loader"); - } Handle h_loader = Handle(THREAD, loader); // define_module can be called during start-up, before the class loader's ClassLoaderData // has been created. SystemDictionary::register_loader ensures creation, if needed. diff --git a/src/hotspot/share/classfile/systemDictionary.cpp b/src/hotspot/share/classfile/systemDictionary.cpp index 7b307a0b8a3..2338a179324 100644 --- a/src/hotspot/share/classfile/systemDictionary.cpp +++ b/src/hotspot/share/classfile/systemDictionary.cpp @@ -598,8 +598,6 @@ InstanceKlass* SystemDictionary::resolve_instance_class_or_null(Symbol* name, HandleMark hm(THREAD); - // Fix for 4474172; see evaluation for more details - class_loader = Handle(THREAD, java_lang_ClassLoader::non_reflection_class_loader(class_loader())); ClassLoaderData* loader_data = register_loader(class_loader); Dictionary* dictionary = loader_data->dictionary(); @@ -765,12 +763,7 @@ InstanceKlass* SystemDictionary::find_instance_klass(Thread* current, Handle class_loader, Handle protection_domain) { - // The result of this call should be consistent with the result - // of the call to resolve_instance_class_or_null(). - // See evaluation 6790209 and 4474172 for more details. - oop class_loader_oop = java_lang_ClassLoader::non_reflection_class_loader(class_loader()); - ClassLoaderData* loader_data = ClassLoaderData::class_loader_data_or_null(class_loader_oop); - + ClassLoaderData* loader_data = ClassLoaderData::class_loader_data_or_null(class_loader()); if (loader_data == nullptr) { // If the ClassLoaderData has not been setup, // then the class loader has no entries in the dictionary. diff --git a/src/hotspot/share/classfile/systemDictionaryShared.cpp b/src/hotspot/share/classfile/systemDictionaryShared.cpp index ce7f862a7b6..05f6ace9b8a 100644 --- a/src/hotspot/share/classfile/systemDictionaryShared.cpp +++ b/src/hotspot/share/classfile/systemDictionaryShared.cpp @@ -403,9 +403,6 @@ InstanceKlass* SystemDictionaryShared::find_or_load_shared_class( if (SystemDictionary::is_system_class_loader(class_loader()) || SystemDictionary::is_platform_class_loader(class_loader())) { - // Fix for 4474172; see evaluation for more details - class_loader = Handle( - THREAD, java_lang_ClassLoader::non_reflection_class_loader(class_loader())); ClassLoaderData *loader_data = register_loader(class_loader); Dictionary* dictionary = loader_data->dictionary(); diff --git a/src/hotspot/share/classfile/verifier.cpp b/src/hotspot/share/classfile/verifier.cpp index 375570cf196..b34cde4c63a 100644 --- a/src/hotspot/share/classfile/verifier.cpp +++ b/src/hotspot/share/classfile/verifier.cpp @@ -275,10 +275,6 @@ bool Verifier::verify(InstanceKlass* klass, bool should_verify_class, TRAPS) { bool Verifier::is_eligible_for_verification(InstanceKlass* klass, bool should_verify_class) { Symbol* name = klass->name(); - Klass* refl_serialization_ctor_klass = vmClasses::reflect_SerializationConstructorAccessorImpl_klass(); - - bool is_reflect_accessor = refl_serialization_ctor_klass != nullptr && - klass->is_subtype_of(refl_serialization_ctor_klass); return (should_verify_for(klass->class_loader(), should_verify_class) && // return if the class is a bootstrapping class @@ -295,12 +291,7 @@ bool Verifier::is_eligible_for_verification(InstanceKlass* klass, bool should_ve // Shared classes shouldn't have stackmaps either. // However, bytecodes for shared old classes can be verified because // they have not been rewritten. - !(klass->is_shared() && klass->is_rewritten()) && - - // As of the fix for 4486457 we disable verification for all of the - // dynamically-generated bytecodes associated with - // jdk/internal/reflect/SerializationConstructorAccessor. - (!is_reflect_accessor)); + !(klass->is_shared() && klass->is_rewritten())); } Symbol* Verifier::inference_verify( diff --git a/src/hotspot/share/classfile/vmClassMacros.hpp b/src/hotspot/share/classfile/vmClassMacros.hpp index 10fa8900795..395e718c55d 100644 --- a/src/hotspot/share/classfile/vmClassMacros.hpp +++ b/src/hotspot/share/classfile/vmClassMacros.hpp @@ -107,11 +107,9 @@ do_klass(StackChunk_klass, jdk_internal_vm_StackChunk ) \ \ do_klass(reflect_MethodAccessorImpl_klass, reflect_MethodAccessorImpl ) \ - do_klass(reflect_DelegatingClassLoader_klass, reflect_DelegatingClassLoader ) \ do_klass(reflect_ConstantPool_klass, reflect_ConstantPool ) \ do_klass(reflect_CallerSensitive_klass, reflect_CallerSensitive ) \ do_klass(reflect_DirectConstructorHandleAccessor_NativeAccessor_klass, reflect_DirectConstructorHandleAccessor_NativeAccessor) \ - do_klass(reflect_SerializationConstructorAccessorImpl_klass, reflect_SerializationConstructorAccessorImpl ) \ \ /* support for dynamic typing */ \ do_klass(DirectMethodHandle_klass, java_lang_invoke_DirectMethodHandle ) \ diff --git a/src/hotspot/share/classfile/vmSymbols.hpp b/src/hotspot/share/classfile/vmSymbols.hpp index 3de6d81f106..014a8a00c7b 100644 --- a/src/hotspot/share/classfile/vmSymbols.hpp +++ b/src/hotspot/share/classfile/vmSymbols.hpp @@ -262,12 +262,10 @@ class SerializeClosure; \ template(jdk_internal_reflect, "jdk/internal/reflect") \ template(reflect_MethodAccessorImpl, "jdk/internal/reflect/MethodAccessorImpl") \ - template(reflect_DelegatingClassLoader, "jdk/internal/reflect/DelegatingClassLoader") \ template(reflect_Reflection, "jdk/internal/reflect/Reflection") \ template(reflect_CallerSensitive, "jdk/internal/reflect/CallerSensitive") \ template(reflect_CallerSensitive_signature, "Ljdk/internal/reflect/CallerSensitive;") \ template(reflect_DirectConstructorHandleAccessor_NativeAccessor, "jdk/internal/reflect/DirectConstructorHandleAccessor$NativeAccessor") \ - template(reflect_SerializationConstructorAccessorImpl, "jdk/internal/reflect/SerializationConstructorAccessorImpl") \ template(clazz_name, "clazz") \ template(exceptionTypes_name, "exceptionTypes") \ template(modifiers_name, "modifiers") \ @@ -308,6 +306,7 @@ class SerializeClosure; template(jdk_internal_vm_annotation_Stable_signature, "Ljdk/internal/vm/annotation/Stable;") \ \ template(jdk_internal_vm_annotation_ChangesCurrentThread_signature, "Ljdk/internal/vm/annotation/ChangesCurrentThread;") \ + template(jdk_internal_vm_annotation_JvmtiHideEvents_signature, "Ljdk/internal/vm/annotation/JvmtiHideEvents;") \ template(jdk_internal_vm_annotation_JvmtiMountTransition_signature, "Ljdk/internal/vm/annotation/JvmtiMountTransition;") \ \ /* Support for JSR 292 & invokedynamic (JDK 1.7 and above) */ \ diff --git a/src/hotspot/share/gc/epsilon/epsilonHeap.hpp b/src/hotspot/share/gc/epsilon/epsilonHeap.hpp index f22d1c22ac8..b2b522c1435 100644 --- a/src/hotspot/share/gc/epsilon/epsilonHeap.hpp +++ b/src/hotspot/share/gc/epsilon/epsilonHeap.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2023, 2024, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2017, 2022, Red Hat, Inc. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -128,7 +128,7 @@ class EpsilonHeap : public CollectedHeap { bool is_in_reserved(const void* addr) const { return _reserved.contains(addr); } // Support for loading objects from CDS archive into the heap - bool can_load_archived_objects() const override { return UseCompressedOops; } + bool can_load_archived_objects() const override { return true; } HeapWord* allocate_loaded_archive_space(size_t size) override; void print_on(outputStream* st) const override; diff --git a/src/hotspot/share/gc/g1/g1CollectedHeap.cpp b/src/hotspot/share/gc/g1/g1CollectedHeap.cpp index fd73b725a12..57236d6f6db 100644 --- a/src/hotspot/share/gc/g1/g1CollectedHeap.cpp +++ b/src/hotspot/share/gc/g1/g1CollectedHeap.cpp @@ -2595,8 +2595,9 @@ void G1CollectedHeap::set_young_gen_card_set_stats(const G1MonotonicArenaMemoryS } void G1CollectedHeap::record_obj_copy_mem_stats() { + size_t total_old_allocated = _old_evac_stats.allocated() + _old_evac_stats.direct_allocated(); policy()->old_gen_alloc_tracker()-> - add_allocated_bytes_since_last_gc(_old_evac_stats.allocated() * HeapWordSize); + add_allocated_bytes_since_last_gc(total_old_allocated * HeapWordSize); _gc_tracer_stw->report_evacuation_statistics(create_g1_evac_summary(&_survivor_evac_stats), create_g1_evac_summary(&_old_evac_stats)); diff --git a/src/hotspot/share/gc/g1/g1IHOPControl.cpp b/src/hotspot/share/gc/g1/g1IHOPControl.cpp index 25915cdd356..d1bfcf0d095 100644 --- a/src/hotspot/share/gc/g1/g1IHOPControl.cpp +++ b/src/hotspot/share/gc/g1/g1IHOPControl.cpp @@ -151,7 +151,7 @@ double G1AdaptiveIHOPControl::last_mutator_period_old_allocation_rate() const { assert(_last_allocation_time_s > 0, "This should not be called when the last GC is full"); return _old_gen_alloc_tracker->last_period_old_gen_growth() / _last_allocation_time_s; - } +} void G1AdaptiveIHOPControl::update_allocation_info(double allocation_time_s, size_t additional_buffer_size) { diff --git a/src/hotspot/share/gc/g1/g1OldGenAllocationTracker.hpp b/src/hotspot/share/gc/g1/g1OldGenAllocationTracker.hpp index eb86b81d2ab..265c7029e14 100644 --- a/src/hotspot/share/gc/g1/g1OldGenAllocationTracker.hpp +++ b/src/hotspot/share/gc/g1/g1OldGenAllocationTracker.hpp @@ -32,17 +32,17 @@ class G1AdaptiveIHOPControl; // Track allocation details in the old generation. class G1OldGenAllocationTracker : public CHeapObj { - // Total number of bytes allocated in the old generation during - // last mutator period. + // Total number of bytes allocated in the old generation at the end + // of the last gc. size_t _last_period_old_gen_bytes; - // Total growth of the old geneneration for last mutator period, - // taking eager reclaim into consideration. + // Total growth of the old geneneration since the last gc, + // taking eager-reclaim into consideration. size_t _last_period_old_gen_growth; // Total size of humongous objects for last gc. size_t _humongous_bytes_after_last_gc; - // Non-humongous old generation allocations during last mutator period. + // Non-humongous old generation allocations since the last gc. size_t _allocated_bytes_since_last_gc; // Humongous allocations during last mutator period. size_t _allocated_humongous_bytes_since_last_gc; diff --git a/src/hotspot/share/gc/parallel/mutableSpace.cpp b/src/hotspot/share/gc/parallel/mutableSpace.cpp index d90121b0eaf..01d4e6bb04d 100644 --- a/src/hotspot/share/gc/parallel/mutableSpace.cpp +++ b/src/hotspot/share/gc/parallel/mutableSpace.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -25,6 +25,7 @@ #include "precompiled.hpp" #include "gc/parallel/mutableSpace.hpp" #include "gc/shared/pretouchTask.hpp" +#include "gc/shared/spaceDecorator.hpp" #include "memory/iterator.inline.hpp" #include "memory/universe.hpp" #include "oops/oop.inline.hpp" diff --git a/src/hotspot/share/gc/parallel/parallelScavengeHeap.hpp b/src/hotspot/share/gc/parallel/parallelScavengeHeap.hpp index a6601611c9b..22d1296507d 100644 --- a/src/hotspot/share/gc/parallel/parallelScavengeHeap.hpp +++ b/src/hotspot/share/gc/parallel/parallelScavengeHeap.hpp @@ -246,7 +246,7 @@ class ParallelScavengeHeap : public CollectedHeap { } // Support for loading objects from CDS archive into the heap - bool can_load_archived_objects() const override { return UseCompressedOops; } + bool can_load_archived_objects() const override { return true; } HeapWord* allocate_loaded_archive_space(size_t size) override; void complete_loaded_archive_space(MemRegion archive_space) override; diff --git a/src/hotspot/share/gc/parallel/psOldGen.cpp b/src/hotspot/share/gc/parallel/psOldGen.cpp index 2715ab90768..52ea4dc042c 100644 --- a/src/hotspot/share/gc/parallel/psOldGen.cpp +++ b/src/hotspot/share/gc/parallel/psOldGen.cpp @@ -31,6 +31,7 @@ #include "gc/parallel/psOldGen.hpp" #include "gc/shared/cardTableBarrierSet.hpp" #include "gc/shared/gcLocker.hpp" +#include "gc/shared/spaceDecorator.hpp" #include "logging/log.hpp" #include "oops/oop.inline.hpp" #include "runtime/java.hpp" diff --git a/src/hotspot/share/gc/parallel/psParallelCompact.cpp b/src/hotspot/share/gc/parallel/psParallelCompact.cpp index 1ab7b2af7ed..66ce20295f5 100644 --- a/src/hotspot/share/gc/parallel/psParallelCompact.cpp +++ b/src/hotspot/share/gc/parallel/psParallelCompact.cpp @@ -60,6 +60,7 @@ #include "gc/shared/referencePolicy.hpp" #include "gc/shared/referenceProcessor.hpp" #include "gc/shared/referenceProcessorPhaseTimes.hpp" +#include "gc/shared/spaceDecorator.hpp" #include "gc/shared/strongRootsScope.hpp" #include "gc/shared/taskTerminator.hpp" #include "gc/shared/weakProcessor.inline.hpp" diff --git a/src/hotspot/share/gc/parallel/psScavenge.cpp b/src/hotspot/share/gc/parallel/psScavenge.cpp index 7df2143ccbb..7701cea313b 100644 --- a/src/hotspot/share/gc/parallel/psScavenge.cpp +++ b/src/hotspot/share/gc/parallel/psScavenge.cpp @@ -51,6 +51,7 @@ #include "gc/shared/referenceProcessor.hpp" #include "gc/shared/referenceProcessorPhaseTimes.hpp" #include "gc/shared/scavengableNMethods.hpp" +#include "gc/shared/spaceDecorator.hpp" #include "gc/shared/strongRootsScope.hpp" #include "gc/shared/taskTerminator.hpp" #include "gc/shared/weakProcessor.inline.hpp" diff --git a/src/hotspot/share/gc/parallel/psYoungGen.cpp b/src/hotspot/share/gc/parallel/psYoungGen.cpp index 7b0d3b21507..dd9619e4546 100644 --- a/src/hotspot/share/gc/parallel/psYoungGen.cpp +++ b/src/hotspot/share/gc/parallel/psYoungGen.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -29,6 +29,7 @@ #include "gc/parallel/psYoungGen.hpp" #include "gc/shared/gcUtil.hpp" #include "gc/shared/genArguments.hpp" +#include "gc/shared/spaceDecorator.hpp" #include "logging/log.hpp" #include "oops/oop.inline.hpp" #include "runtime/java.hpp" diff --git a/src/hotspot/share/gc/serial/serialHeap.hpp b/src/hotspot/share/gc/serial/serialHeap.hpp index 750bb322b2a..d787d216e37 100644 --- a/src/hotspot/share/gc/serial/serialHeap.hpp +++ b/src/hotspot/share/gc/serial/serialHeap.hpp @@ -291,7 +291,7 @@ class SerialHeap : public CollectedHeap { void safepoint_synchronize_end() override; // Support for loading objects from CDS archive into the heap - bool can_load_archived_objects() const override { return UseCompressedOops; } + bool can_load_archived_objects() const override { return true; } HeapWord* allocate_loaded_archive_space(size_t size) override; void complete_loaded_archive_space(MemRegion archive_space) override; diff --git a/src/hotspot/share/gc/shared/barrierSetConfig.hpp b/src/hotspot/share/gc/shared/barrierSetConfig.hpp index 76681aa8986..368312af06b 100644 --- a/src/hotspot/share/gc/shared/barrierSetConfig.hpp +++ b/src/hotspot/share/gc/shared/barrierSetConfig.hpp @@ -33,7 +33,6 @@ EPSILONGC_ONLY(f(EpsilonBarrierSet)) \ G1GC_ONLY(f(G1BarrierSet)) \ SHENANDOAHGC_ONLY(f(ShenandoahBarrierSet)) \ - ZGC_ONLY(f(XBarrierSet)) \ ZGC_ONLY(f(ZBarrierSet)) #define FOR_EACH_ABSTRACT_BARRIER_SET_DO(f) \ diff --git a/src/hotspot/share/gc/shared/barrierSetConfig.inline.hpp b/src/hotspot/share/gc/shared/barrierSetConfig.inline.hpp index 9523428821b..001b5b00372 100644 --- a/src/hotspot/share/gc/shared/barrierSetConfig.inline.hpp +++ b/src/hotspot/share/gc/shared/barrierSetConfig.inline.hpp @@ -40,7 +40,6 @@ #include "gc/shenandoah/shenandoahBarrierSet.inline.hpp" #endif #if INCLUDE_ZGC -#include "gc/x/xBarrierSet.inline.hpp" #include "gc/z/zBarrierSet.inline.hpp" #endif diff --git a/src/hotspot/share/gc/shared/gcConfig.cpp b/src/hotspot/share/gc/shared/gcConfig.cpp index 506b368d6cf..8eb265b54d9 100644 --- a/src/hotspot/share/gc/shared/gcConfig.cpp +++ b/src/hotspot/share/gc/shared/gcConfig.cpp @@ -44,7 +44,7 @@ #include "gc/shenandoah/shenandoahArguments.hpp" #endif #if INCLUDE_ZGC -#include "gc/z/shared/zSharedArguments.hpp" +#include "gc/z/zArguments.hpp" #endif struct IncludedGC { @@ -62,7 +62,7 @@ struct IncludedGC { PARALLELGC_ONLY(static ParallelArguments parallelArguments;) SERIALGC_ONLY(static SerialArguments serialArguments;) SHENANDOAHGC_ONLY(static ShenandoahArguments shenandoahArguments;) - ZGC_ONLY(static ZSharedArguments zArguments;) + ZGC_ONLY(static ZArguments zArguments;) // Table of included GCs, for translating between command // line flag, CollectedHeap::Name and GCArguments instance. diff --git a/src/hotspot/share/gc/shared/gcConfiguration.cpp b/src/hotspot/share/gc/shared/gcConfiguration.cpp index 2e8d3eb2a51..824e119e696 100644 --- a/src/hotspot/share/gc/shared/gcConfiguration.cpp +++ b/src/hotspot/share/gc/shared/gcConfiguration.cpp @@ -43,11 +43,7 @@ GCName GCConfiguration::young_collector() const { } if (UseZGC) { - if (ZGenerational) { - return ZMinor; - } else { - return NA; - } + return ZMinor; } if (UseShenandoahGC) { @@ -66,12 +62,8 @@ GCName GCConfiguration::old_collector() const { return ParallelOld; } - if (UseZGC) { - if (ZGenerational) { - return ZMajor; - } else { - return Z; - } +if (UseZGC) { + return ZMajor; } if (UseShenandoahGC) { diff --git a/src/hotspot/share/gc/shared/gcName.hpp b/src/hotspot/share/gc/shared/gcName.hpp index 3d2dd350ac1..b9b87c231ca 100644 --- a/src/hotspot/share/gc/shared/gcName.hpp +++ b/src/hotspot/share/gc/shared/gcName.hpp @@ -37,7 +37,6 @@ enum GCName { G1Full, ZMinor, ZMajor, - Z, // Support for the legacy, single-gen mode Shenandoah, NA, GCNameEndSentinel @@ -56,7 +55,6 @@ class GCNameHelper { case G1Full: return "G1Full"; case ZMinor: return "ZGC Minor"; case ZMajor: return "ZGC Major"; - case Z: return "Z"; case Shenandoah: return "Shenandoah"; case NA: return "N/A"; default: ShouldNotReachHere(); return nullptr; diff --git a/src/hotspot/share/gc/shared/gc_globals.hpp b/src/hotspot/share/gc/shared/gc_globals.hpp index 34bc638c9ba..9086c25ee48 100644 --- a/src/hotspot/share/gc/shared/gc_globals.hpp +++ b/src/hotspot/share/gc/shared/gc_globals.hpp @@ -43,7 +43,7 @@ #include "gc/shenandoah/shenandoah_globals.hpp" #endif #if INCLUDE_ZGC -#include "gc/z/shared/z_shared_globals.hpp" +#include "gc/z/z_globals.hpp" #endif #define GC_FLAGS(develop, \ @@ -93,7 +93,7 @@ range, \ constraint)) \ \ - ZGC_ONLY(GC_Z_SHARED_FLAGS( \ + ZGC_ONLY(GC_Z_FLAGS( \ develop, \ develop_pd, \ product, \ @@ -118,9 +118,6 @@ product(bool, UseZGC, false, \ "Use the Z garbage collector") \ \ - product(bool, ZGenerational, true, \ - "Use the generational version of ZGC") \ - \ product(bool, UseShenandoahGC, false, \ "Use the Shenandoah garbage collector") \ \ diff --git a/src/hotspot/share/gc/shared/vmStructs_gc.hpp b/src/hotspot/share/gc/shared/vmStructs_gc.hpp index c4acb0b1ed6..bba9c9e099f 100644 --- a/src/hotspot/share/gc/shared/vmStructs_gc.hpp +++ b/src/hotspot/share/gc/shared/vmStructs_gc.hpp @@ -46,7 +46,7 @@ #include "gc/shenandoah/vmStructs_shenandoah.hpp" #endif #if INCLUDE_ZGC -#include "gc/z/shared/vmStructs_z_shared.hpp" +#include "gc/z/vmStructs_z.hpp" #endif #define VM_STRUCTS_GC(nonstatic_field, \ @@ -69,7 +69,7 @@ SHENANDOAHGC_ONLY(VM_STRUCTS_SHENANDOAH(nonstatic_field, \ volatile_nonstatic_field, \ static_field)) \ - ZGC_ONLY(VM_STRUCTS_Z_SHARED(nonstatic_field, \ + ZGC_ONLY(VM_STRUCTS_Z(nonstatic_field, \ volatile_nonstatic_field, \ static_field)) \ \ @@ -91,6 +91,7 @@ nonstatic_field(CardTableBarrierSet, _defer_initial_card_mark, bool) \ nonstatic_field(CardTableBarrierSet, _card_table, CardTable*) \ \ + static_field(CollectedHeap, _lab_alignment_reserve, size_t) \ nonstatic_field(CollectedHeap, _reserved, MemRegion) \ nonstatic_field(CollectedHeap, _is_stw_gc_active, bool) \ nonstatic_field(CollectedHeap, _total_collections, unsigned int) \ @@ -120,7 +121,7 @@ SHENANDOAHGC_ONLY(VM_TYPES_SHENANDOAH(declare_type, \ declare_toplevel_type, \ declare_integer_type)) \ - ZGC_ONLY(VM_TYPES_Z_SHARED(declare_type, \ + ZGC_ONLY(VM_TYPES_Z(declare_type, \ declare_toplevel_type, \ declare_integer_type)) \ \ @@ -174,7 +175,7 @@ declare_constant_with_value)) \ SHENANDOAHGC_ONLY(VM_INT_CONSTANTS_SHENANDOAH(declare_constant, \ declare_constant_with_value)) \ - ZGC_ONLY(VM_INT_CONSTANTS_Z_SHARED(declare_constant, \ + ZGC_ONLY(VM_INT_CONSTANTS_Z(declare_constant, \ declare_constant_with_value)) \ \ /********************************************/ \ @@ -198,6 +199,6 @@ declare_constant(CollectedHeap::G1) \ #define VM_LONG_CONSTANTS_GC(declare_constant) \ - ZGC_ONLY(VM_LONG_CONSTANTS_Z_SHARED(declare_constant)) + ZGC_ONLY(VM_LONG_CONSTANTS_Z(declare_constant)) #endif // SHARE_GC_SHARED_VMSTRUCTS_GC_HPP diff --git a/src/hotspot/share/gc/shenandoah/shenandoahClosures.hpp b/src/hotspot/share/gc/shenandoah/shenandoahClosures.hpp index 2291015edc6..58527e808e4 100644 --- a/src/hotspot/share/gc/shenandoah/shenandoahClosures.hpp +++ b/src/hotspot/share/gc/shenandoah/shenandoahClosures.hpp @@ -25,18 +25,78 @@ #define SHARE_GC_SHENANDOAH_SHENANDOAHCLOSURES_HPP #include "code/nmethod.hpp" +#include "gc/shared/stringdedup/stringDedup.hpp" +#include "gc/shenandoah/shenandoahGenerationType.hpp" +#include "gc/shenandoah/shenandoahTaskqueue.hpp" #include "memory/iterator.hpp" -#include "oops/accessDecorators.hpp" -#include "runtime/handshake.hpp" +#include "runtime/javaThread.hpp" class BarrierSetNMethod; class ShenandoahBarrierSet; class ShenandoahHeap; class ShenandoahMarkingContext; -class ShenandoahHeapRegionSet; -class Thread; +class ShenandoahReferenceProcessor; -class ShenandoahForwardedIsAliveClosure: public BoolObjectClosure { +// +// ========= Super +// + +class ShenandoahSuperClosure : public MetadataVisitingOopIterateClosure { +protected: + ShenandoahHeap* const _heap; + +public: + inline ShenandoahSuperClosure(); + inline ShenandoahSuperClosure(ShenandoahReferenceProcessor* rp); + inline void do_nmethod(nmethod* nm); +}; + +// +// ========= Marking +// + +class ShenandoahMarkRefsSuperClosure : public ShenandoahSuperClosure { +private: + ShenandoahObjToScanQueue* _queue; + ShenandoahMarkingContext* const _mark_context; + bool _weak; + +protected: + template + void work(T *p); + +public: + inline ShenandoahMarkRefsSuperClosure(ShenandoahObjToScanQueue* q, ShenandoahReferenceProcessor* rp); + + bool is_weak() const { + return _weak; + } + + void set_weak(bool weak) { + _weak = weak; + } + + virtual void do_nmethod(nmethod* nm) { + assert(!is_weak(), "Can't handle weak marking of nmethods"); + ShenandoahSuperClosure::do_nmethod(nm); + } +}; + +template +class ShenandoahMarkRefsClosure : public ShenandoahMarkRefsSuperClosure { +private: + template + inline void do_oop_work(T* p) { work(p); } + +public: + ShenandoahMarkRefsClosure(ShenandoahObjToScanQueue* q, ShenandoahReferenceProcessor* rp) : + ShenandoahMarkRefsSuperClosure(q, rp) {}; + + virtual void do_oop(narrowOop* p) { do_oop_work(p); } + virtual void do_oop(oop* p) { do_oop_work(p); } +}; + +class ShenandoahForwardedIsAliveClosure : public BoolObjectClosure { private: ShenandoahMarkingContext* const _mark_context; public: @@ -44,7 +104,7 @@ class ShenandoahForwardedIsAliveClosure: public BoolObjectClosure { inline bool do_object_b(oop obj); }; -class ShenandoahIsAliveClosure: public BoolObjectClosure { +class ShenandoahIsAliveClosure : public BoolObjectClosure { private: ShenandoahMarkingContext* const _mark_context; public: @@ -63,27 +123,29 @@ class ShenandoahIsAliveSelector : public StackObj { class ShenandoahKeepAliveClosure : public OopClosure { private: ShenandoahBarrierSet* const _bs; -public: - inline ShenandoahKeepAliveClosure(); - inline void do_oop(oop* p); - inline void do_oop(narrowOop* p); -private: template void do_oop_work(T* p); -}; -class ShenandoahOopClosureBase : public MetadataVisitingOopIterateClosure { public: - inline void do_nmethod(nmethod* nm); + inline ShenandoahKeepAliveClosure(); + inline void do_oop(oop* p) { do_oop_work(p); } + inline void do_oop(narrowOop* p) { do_oop_work(p); } }; -template -class ShenandoahEvacuateUpdateRootClosureBase : public ShenandoahOopClosureBase { + +// +// ========= Evacuating + Roots +// + +template +class ShenandoahEvacuateUpdateRootClosureBase : public ShenandoahSuperClosure { protected: - ShenandoahHeap* const _heap; Thread* const _thread; public: - inline ShenandoahEvacuateUpdateRootClosureBase(); + inline ShenandoahEvacuateUpdateRootClosureBase() : + ShenandoahSuperClosure(), + _thread(STABLE_THREAD ? Thread::current() : nullptr) {} + inline void do_oop(oop* p); inline void do_oop(narrowOop* p); protected: @@ -91,10 +153,11 @@ class ShenandoahEvacuateUpdateRootClosureBase : public ShenandoahOopClosureBase inline void do_oop_work(T* p); }; -using ShenandoahEvacuateUpdateMetadataClosure = ShenandoahEvacuateUpdateRootClosureBase; -using ShenandoahEvacuateUpdateRootsClosure = ShenandoahEvacuateUpdateRootClosureBase; +using ShenandoahEvacuateUpdateMetadataClosure = ShenandoahEvacuateUpdateRootClosureBase; +using ShenandoahEvacuateUpdateRootsClosure = ShenandoahEvacuateUpdateRootClosureBase; using ShenandoahContextEvacuateUpdateRootsClosure = ShenandoahEvacuateUpdateRootClosureBase; + template class ShenandoahCleanUpdateWeakOopsClosure : public OopClosure { private: @@ -107,7 +170,7 @@ class ShenandoahCleanUpdateWeakOopsClosure : public OopClosure { inline void do_oop(narrowOop* p); }; -class ShenandoahNMethodAndDisarmClosure: public NMethodToOopClosure { +class ShenandoahNMethodAndDisarmClosure : public NMethodToOopClosure { private: BarrierSetNMethod* const _bs; @@ -116,6 +179,51 @@ class ShenandoahNMethodAndDisarmClosure: public NMethodToOopClosure { inline void do_nmethod(nmethod* nm); }; + +// +// ========= Update References +// + +template +class ShenandoahMarkUpdateRefsClosure : public ShenandoahMarkRefsSuperClosure { +private: + template + inline void work(T* p); + +public: + ShenandoahMarkUpdateRefsClosure(ShenandoahObjToScanQueue* q, ShenandoahReferenceProcessor* rp); + + virtual void do_oop(narrowOop* p) { work(p); } + virtual void do_oop(oop* p) { work(p); } +}; + +class ShenandoahUpdateRefsSuperClosure : public ShenandoahSuperClosure {}; + +class ShenandoahNonConcUpdateRefsClosure : public ShenandoahUpdateRefsSuperClosure { +private: + template + inline void work(T* p); + +public: + virtual void do_oop(narrowOop* p) { work(p); } + virtual void do_oop(oop* p) { work(p); } +}; + +class ShenandoahConcUpdateRefsClosure : public ShenandoahUpdateRefsSuperClosure { +private: + template + inline void work(T* p); + +public: + virtual void do_oop(narrowOop* p) { work(p); } + virtual void do_oop(oop* p) { work(p); } +}; + + +// +// ========= Utilities +// + #ifdef ASSERT class ShenandoahAssertNotForwardedClosure : public OopClosure { private: diff --git a/src/hotspot/share/gc/shenandoah/shenandoahClosures.inline.hpp b/src/hotspot/share/gc/shenandoah/shenandoahClosures.inline.hpp index 53921be8d20..edfb62b4046 100644 --- a/src/hotspot/share/gc/shenandoah/shenandoahClosures.inline.hpp +++ b/src/hotspot/share/gc/shenandoah/shenandoahClosures.inline.hpp @@ -33,15 +33,46 @@ #include "gc/shenandoah/shenandoahMarkingContext.inline.hpp" #include "gc/shenandoah/shenandoahHeap.inline.hpp" #include "gc/shenandoah/shenandoahNMethod.inline.hpp" +#include "gc/shenandoah/shenandoahMark.inline.hpp" +#include "gc/shenandoah/shenandoahReferenceProcessor.hpp" +#include "gc/shenandoah/shenandoahTaskqueue.inline.hpp" #include "memory/iterator.inline.hpp" #include "oops/compressedOops.inline.hpp" #include "runtime/atomic.hpp" #include "runtime/javaThread.hpp" -ShenandoahForwardedIsAliveClosure::ShenandoahForwardedIsAliveClosure() : - _mark_context(ShenandoahHeap::heap()->marking_context()) { +// +// ========= Super +// + +ShenandoahSuperClosure::ShenandoahSuperClosure() : + MetadataVisitingOopIterateClosure(), _heap(ShenandoahHeap::heap()) {} + +ShenandoahSuperClosure::ShenandoahSuperClosure(ShenandoahReferenceProcessor* rp) : + MetadataVisitingOopIterateClosure(rp), _heap(ShenandoahHeap::heap()) {} + +void ShenandoahSuperClosure::do_nmethod(nmethod* nm) { + nm->run_nmethod_entry_barrier(); +} + +// +// ========= Marking +// + +ShenandoahMarkRefsSuperClosure::ShenandoahMarkRefsSuperClosure(ShenandoahObjToScanQueue* q, ShenandoahReferenceProcessor* rp) : + ShenandoahSuperClosure(rp), + _queue(q), + _mark_context(ShenandoahHeap::heap()->marking_context()), + _weak(false) {} + +template +inline void ShenandoahMarkRefsSuperClosure::work(T* p) { + ShenandoahMark::mark_through_ref(p, _queue, _mark_context, _weak); } +ShenandoahForwardedIsAliveClosure::ShenandoahForwardedIsAliveClosure() : + _mark_context(ShenandoahHeap::heap()->marking_context()) {} + bool ShenandoahForwardedIsAliveClosure::do_object_b(oop obj) { if (CompressedOops::is_null(obj)) { return false; @@ -52,8 +83,7 @@ bool ShenandoahForwardedIsAliveClosure::do_object_b(oop obj) { } ShenandoahIsAliveClosure::ShenandoahIsAliveClosure() : - _mark_context(ShenandoahHeap::heap()->marking_context()) { -} + _mark_context(ShenandoahHeap::heap()->marking_context()) {} bool ShenandoahIsAliveClosure::do_object_b(oop obj) { if (CompressedOops::is_null(obj)) { @@ -69,21 +99,8 @@ BoolObjectClosure* ShenandoahIsAliveSelector::is_alive_closure() { reinterpret_cast(&_alive_cl); } -void ShenandoahOopClosureBase::do_nmethod(nmethod* nm) { - nm->run_nmethod_entry_barrier(); -} - ShenandoahKeepAliveClosure::ShenandoahKeepAliveClosure() : - _bs(ShenandoahBarrierSet::barrier_set()) { -} - -void ShenandoahKeepAliveClosure::do_oop(oop* p) { - do_oop_work(p); -} - -void ShenandoahKeepAliveClosure::do_oop(narrowOop* p) { - do_oop_work(p); -} + _bs(ShenandoahBarrierSet::barrier_set()) {} template void ShenandoahKeepAliveClosure::do_oop_work(T* p) { @@ -97,14 +114,14 @@ void ShenandoahKeepAliveClosure::do_oop_work(T* p) { } } -template -ShenandoahEvacuateUpdateRootClosureBase::ShenandoahEvacuateUpdateRootClosureBase() : - _heap(ShenandoahHeap::heap()), _thread(stable_thread ? Thread::current() : nullptr) { -} -template -void ShenandoahEvacuateUpdateRootClosureBase::do_oop(oop* p) { - if (concurrent) { +// +// ========= Evacuating + Roots +// + +template +void ShenandoahEvacuateUpdateRootClosureBase::do_oop(oop* p) { + if (CONCURRENT) { ShenandoahEvacOOMScope scope; do_oop_work(p); } else { @@ -112,9 +129,9 @@ void ShenandoahEvacuateUpdateRootClosureBase::do_oop( } } -template -void ShenandoahEvacuateUpdateRootClosureBase::do_oop(narrowOop* p) { - if (concurrent) { +template +void ShenandoahEvacuateUpdateRootClosureBase::do_oop(narrowOop* p) { + if (CONCURRENT) { ShenandoahEvacOOMScope scope; do_oop_work(p); } else { @@ -122,9 +139,9 @@ void ShenandoahEvacuateUpdateRootClosureBase::do_oop( } } -template +template template -void ShenandoahEvacuateUpdateRootClosureBase::do_oop_work(T* p) { +void ShenandoahEvacuateUpdateRootClosureBase::do_oop_work(T* p) { assert(_heap->is_concurrent_weak_root_in_progress() || _heap->is_concurrent_strong_root_in_progress(), "Only do this in root processing phase"); @@ -137,12 +154,12 @@ void ShenandoahEvacuateUpdateRootClosureBase::do_oop_work shenandoah_assert_marked(p, obj); oop resolved = ShenandoahBarrierSet::resolve_forwarded_not_null(obj); if (resolved == obj) { - Thread* thr = stable_thread ? _thread : Thread::current(); + Thread* thr = STABLE_THREAD ? _thread : Thread::current(); assert(thr == Thread::current(), "Wrong thread"); resolved = _heap->evacuate_object(obj, thr); } - if (atomic) { + if (CONCURRENT) { ShenandoahHeap::atomic_update_oop(resolved, p, o); } else { RawAccess::oop_store(p, resolved); @@ -192,6 +209,42 @@ void ShenandoahNMethodAndDisarmClosure::do_nmethod(nmethod* nm) { _bs->disarm(nm); } + +// +// ========= Update References +// + +template +ShenandoahMarkUpdateRefsClosure::ShenandoahMarkUpdateRefsClosure(ShenandoahObjToScanQueue* q, ShenandoahReferenceProcessor* rp) : + ShenandoahMarkRefsSuperClosure(q, rp) { + assert(_heap->is_stw_gc_in_progress(), "Can only be used for STW GC"); +} + +template +template +inline void ShenandoahMarkUpdateRefsClosure::work(T* p) { + // Update the location + _heap->non_conc_update_with_forwarded(p); + + // ...then do the usual thing + ShenandoahMarkRefsSuperClosure::work(p); +} + +template +inline void ShenandoahNonConcUpdateRefsClosure::work(T* p) { + _heap->non_conc_update_with_forwarded(p); +} + +template +inline void ShenandoahConcUpdateRefsClosure::work(T* p) { + _heap->conc_update_with_forwarded(p); +} + + +// +// ========= Utilities +// + #ifdef ASSERT template void ShenandoahAssertNotForwardedClosure::do_oop_work(T* p) { diff --git a/src/hotspot/share/gc/shenandoah/shenandoahConcurrentGC.cpp b/src/hotspot/share/gc/shenandoah/shenandoahConcurrentGC.cpp index 6da2d2e83f7..d801dda372e 100644 --- a/src/hotspot/share/gc/shenandoah/shenandoahConcurrentGC.cpp +++ b/src/hotspot/share/gc/shenandoah/shenandoahConcurrentGC.cpp @@ -29,13 +29,13 @@ #include "gc/shared/collectorCounters.hpp" #include "gc/shared/continuationGCSupport.inline.hpp" #include "gc/shenandoah/shenandoahBreakpoint.hpp" +#include "gc/shenandoah/shenandoahClosures.inline.hpp" #include "gc/shenandoah/shenandoahCollectorPolicy.hpp" #include "gc/shenandoah/shenandoahConcurrentGC.hpp" #include "gc/shenandoah/shenandoahFreeSet.hpp" #include "gc/shenandoah/shenandoahLock.hpp" #include "gc/shenandoah/shenandoahMark.inline.hpp" #include "gc/shenandoah/shenandoahMonitoringSupport.hpp" -#include "gc/shenandoah/shenandoahOopClosures.inline.hpp" #include "gc/shenandoah/shenandoahPhaseTimings.hpp" #include "gc/shenandoah/shenandoahReferenceProcessor.hpp" #include "gc/shenandoah/shenandoahRootProcessor.inline.hpp" diff --git a/src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp b/src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp index 75cdb99e177..0e2ef4144ad 100644 --- a/src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp +++ b/src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp @@ -34,7 +34,6 @@ #include "gc/shenandoah/shenandoahMark.inline.hpp" #include "gc/shenandoah/shenandoahReferenceProcessor.hpp" #include "gc/shenandoah/shenandoahRootProcessor.inline.hpp" -#include "gc/shenandoah/shenandoahOopClosures.inline.hpp" #include "gc/shenandoah/shenandoahPhaseTimings.hpp" #include "gc/shenandoah/shenandoahStringDedup.hpp" #include "gc/shenandoah/shenandoahTaskqueue.inline.hpp" diff --git a/src/hotspot/share/gc/shenandoah/shenandoahDegeneratedGC.cpp b/src/hotspot/share/gc/shenandoah/shenandoahDegeneratedGC.cpp index 81d07a414cd..2249c38455f 100644 --- a/src/hotspot/share/gc/shenandoah/shenandoahDegeneratedGC.cpp +++ b/src/hotspot/share/gc/shenandoah/shenandoahDegeneratedGC.cpp @@ -32,7 +32,6 @@ #include "gc/shenandoah/shenandoahHeap.inline.hpp" #include "gc/shenandoah/shenandoahMetrics.hpp" #include "gc/shenandoah/shenandoahMonitoringSupport.hpp" -#include "gc/shenandoah/shenandoahOopClosures.inline.hpp" #include "gc/shenandoah/shenandoahRootProcessor.inline.hpp" #include "gc/shenandoah/shenandoahSTWMark.hpp" #include "gc/shenandoah/shenandoahUtils.hpp" diff --git a/src/hotspot/share/gc/shenandoah/shenandoahFullGC.cpp b/src/hotspot/share/gc/shenandoah/shenandoahFullGC.cpp index de7d81d0f43..c2d94353d54 100644 --- a/src/hotspot/share/gc/shenandoah/shenandoahFullGC.cpp +++ b/src/hotspot/share/gc/shenandoah/shenandoahFullGC.cpp @@ -31,6 +31,7 @@ #include "gc/shared/tlab_globals.hpp" #include "gc/shared/workerThread.hpp" #include "gc/shenandoah/heuristics/shenandoahHeuristics.hpp" +#include "gc/shenandoah/shenandoahClosures.inline.hpp" #include "gc/shenandoah/shenandoahCollectorPolicy.hpp" #include "gc/shenandoah/shenandoahConcurrentGC.hpp" #include "gc/shenandoah/shenandoahCollectionSet.hpp" @@ -44,7 +45,6 @@ #include "gc/shenandoah/shenandoahHeapRegion.inline.hpp" #include "gc/shenandoah/shenandoahMarkingContext.inline.hpp" #include "gc/shenandoah/shenandoahMetrics.hpp" -#include "gc/shenandoah/shenandoahOopClosures.inline.hpp" #include "gc/shenandoah/shenandoahReferenceProcessor.hpp" #include "gc/shenandoah/shenandoahRootProcessor.inline.hpp" #include "gc/shenandoah/shenandoahSTWMark.hpp" diff --git a/src/hotspot/share/gc/shenandoah/shenandoahGC.cpp b/src/hotspot/share/gc/shenandoah/shenandoahGC.cpp index 6195f445f7b..719abde4b16 100644 --- a/src/hotspot/share/gc/shenandoah/shenandoahGC.cpp +++ b/src/hotspot/share/gc/shenandoah/shenandoahGC.cpp @@ -29,7 +29,6 @@ #include "gc/shenandoah/shenandoahClosures.inline.hpp" #include "gc/shenandoah/shenandoahGC.hpp" #include "gc/shenandoah/shenandoahHeap.hpp" -#include "gc/shenandoah/shenandoahOopClosures.inline.hpp" #include "gc/shenandoah/shenandoahPhaseTimings.hpp" #include "gc/shenandoah/shenandoahRootProcessor.inline.hpp" #include "gc/shenandoah/shenandoahUtils.hpp" diff --git a/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp b/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp index e94f43b8886..07914947ead 100644 --- a/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp +++ b/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp @@ -53,7 +53,6 @@ #include "gc/shenandoah/shenandoahMemoryPool.hpp" #include "gc/shenandoah/shenandoahMetrics.hpp" #include "gc/shenandoah/shenandoahMonitoringSupport.hpp" -#include "gc/shenandoah/shenandoahOopClosures.inline.hpp" #include "gc/shenandoah/shenandoahPacer.inline.hpp" #include "gc/shenandoah/shenandoahPadding.hpp" #include "gc/shenandoah/shenandoahParallelCleaning.inline.hpp" diff --git a/src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp b/src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp index a3e0b9397da..7e616f925d0 100644 --- a/src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp +++ b/src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp @@ -543,7 +543,7 @@ class ShenandoahHeap : public CollectedHeap, public ShenandoahSpaceInfo { // ---------- CDS archive support - bool can_load_archived_objects() const override { return UseCompressedOops; } + bool can_load_archived_objects() const override { return true; } HeapWord* allocate_loaded_archive_space(size_t size) override; void complete_loaded_archive_space(MemRegion archive_space) override; diff --git a/src/hotspot/share/gc/shenandoah/shenandoahMark.cpp b/src/hotspot/share/gc/shenandoah/shenandoahMark.cpp index 4c45f4a7659..775b84a8966 100644 --- a/src/hotspot/share/gc/shenandoah/shenandoahMark.cpp +++ b/src/hotspot/share/gc/shenandoah/shenandoahMark.cpp @@ -28,19 +28,11 @@ #include "gc/shenandoah/shenandoahBarrierSet.hpp" #include "gc/shenandoah/shenandoahClosures.inline.hpp" #include "gc/shenandoah/shenandoahMark.inline.hpp" -#include "gc/shenandoah/shenandoahOopClosures.inline.hpp" #include "gc/shenandoah/shenandoahReferenceProcessor.hpp" #include "gc/shenandoah/shenandoahTaskqueue.inline.hpp" #include "gc/shenandoah/shenandoahUtils.hpp" #include "gc/shenandoah/shenandoahVerifier.hpp" -ShenandoahMarkRefsSuperClosure::ShenandoahMarkRefsSuperClosure(ShenandoahObjToScanQueue* q, ShenandoahReferenceProcessor* rp) : - MetadataVisitingOopIterateClosure(rp), - _queue(q), - _mark_context(ShenandoahHeap::heap()->marking_context()), - _weak(false) -{ } - ShenandoahMark::ShenandoahMark() : _task_queues(ShenandoahHeap::heap()->marking_context()->task_queues()) { } diff --git a/src/hotspot/share/gc/shenandoah/shenandoahMark.inline.hpp b/src/hotspot/share/gc/shenandoah/shenandoahMark.inline.hpp index 99995c469eb..2eca17bde27 100644 --- a/src/hotspot/share/gc/shenandoah/shenandoahMark.inline.hpp +++ b/src/hotspot/share/gc/shenandoah/shenandoahMark.inline.hpp @@ -30,9 +30,9 @@ #include "gc/shared/continuationGCSupport.inline.hpp" #include "gc/shenandoah/shenandoahAsserts.hpp" #include "gc/shenandoah/shenandoahBarrierSet.inline.hpp" +#include "gc/shenandoah/shenandoahClosures.inline.hpp" #include "gc/shenandoah/shenandoahHeap.inline.hpp" #include "gc/shenandoah/shenandoahMarkingContext.inline.hpp" -#include "gc/shenandoah/shenandoahOopClosures.inline.hpp" #include "gc/shenandoah/shenandoahStringDedup.inline.hpp" #include "gc/shenandoah/shenandoahTaskqueue.inline.hpp" #include "gc/shenandoah/shenandoahUtils.hpp" diff --git a/src/hotspot/share/gc/shenandoah/shenandoahNMethod.cpp b/src/hotspot/share/gc/shenandoah/shenandoahNMethod.cpp index 5eb0b277b5e..75687302ca5 100644 --- a/src/hotspot/share/gc/shenandoah/shenandoahNMethod.cpp +++ b/src/hotspot/share/gc/shenandoah/shenandoahNMethod.cpp @@ -28,7 +28,6 @@ #include "gc/shenandoah/shenandoahClosures.inline.hpp" #include "gc/shenandoah/shenandoahHeap.inline.hpp" #include "gc/shenandoah/shenandoahNMethod.inline.hpp" -#include "gc/shenandoah/shenandoahOopClosures.inline.hpp" #include "memory/resourceArea.hpp" #include "runtime/continuation.hpp" #include "runtime/safepointVerifiers.hpp" diff --git a/src/hotspot/share/gc/shenandoah/shenandoahOopClosures.hpp b/src/hotspot/share/gc/shenandoah/shenandoahOopClosures.hpp deleted file mode 100644 index a2869b6ead6..00000000000 --- a/src/hotspot/share/gc/shenandoah/shenandoahOopClosures.hpp +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Copyright (c) 2015, 2022, Red Hat, Inc. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHOOPCLOSURES_HPP -#define SHARE_GC_SHENANDOAH_SHENANDOAHOOPCLOSURES_HPP - -#include "gc/shared/stringdedup/stringDedup.hpp" -#include "gc/shenandoah/shenandoahClosures.inline.hpp" -#include "gc/shenandoah/shenandoahGenerationType.hpp" -#include "gc/shenandoah/shenandoahHeap.inline.hpp" -#include "gc/shenandoah/shenandoahTaskqueue.hpp" -#include "gc/shenandoah/shenandoahUtils.hpp" -#include "memory/iterator.hpp" -#include "runtime/javaThread.hpp" - -class ShenandoahMarkRefsSuperClosure : public MetadataVisitingOopIterateClosure { -private: - ShenandoahObjToScanQueue* _queue; - ShenandoahMarkingContext* const _mark_context; - bool _weak; - -protected: - template - void work(T *p); - -public: - ShenandoahMarkRefsSuperClosure(ShenandoahObjToScanQueue* q, ShenandoahReferenceProcessor* rp); - - bool is_weak() const { - return _weak; - } - - void set_weak(bool weak) { - _weak = weak; - } - - virtual void do_nmethod(nmethod* nm) { - assert(!is_weak(), "Can't handle weak marking of nmethods"); - nm->run_nmethod_entry_barrier(); - } -}; - -template -class ShenandoahMarkUpdateRefsClosure : public ShenandoahMarkRefsSuperClosure { -private: - ShenandoahHeap* const _heap; - - template - inline void work(T* p); - -public: - ShenandoahMarkUpdateRefsClosure(ShenandoahObjToScanQueue* q, ShenandoahReferenceProcessor* rp) : - ShenandoahMarkRefsSuperClosure(q, rp), - _heap(ShenandoahHeap::heap()) { - assert(_heap->is_stw_gc_in_progress(), "Can only be used for STW GC"); - } - - virtual void do_oop(narrowOop* p) { work(p); } - virtual void do_oop(oop* p) { work(p); } -}; - -template -class ShenandoahMarkRefsClosure : public ShenandoahMarkRefsSuperClosure { -private: - template - inline void do_oop_work(T* p) { work(p); } - -public: - ShenandoahMarkRefsClosure(ShenandoahObjToScanQueue* q, ShenandoahReferenceProcessor* rp) : - ShenandoahMarkRefsSuperClosure(q, rp) {}; - - virtual void do_oop(narrowOop* p) { do_oop_work(p); } - virtual void do_oop(oop* p) { do_oop_work(p); } -}; - -class ShenandoahUpdateRefsSuperClosure : public ShenandoahOopClosureBase { -protected: - ShenandoahHeap* _heap; - -public: - ShenandoahUpdateRefsSuperClosure() : _heap(ShenandoahHeap::heap()) {} -}; - -class ShenandoahNonConcUpdateRefsClosure : public ShenandoahUpdateRefsSuperClosure { -private: - template - inline void work(T* p); - -public: - ShenandoahNonConcUpdateRefsClosure() : ShenandoahUpdateRefsSuperClosure() {} - - virtual void do_oop(narrowOop* p) { work(p); } - virtual void do_oop(oop* p) { work(p); } -}; - -class ShenandoahConcUpdateRefsClosure : public ShenandoahUpdateRefsSuperClosure { -private: - template - inline void work(T* p); - -public: - ShenandoahConcUpdateRefsClosure() : ShenandoahUpdateRefsSuperClosure() {} - - virtual void do_oop(narrowOop* p) { work(p); } - virtual void do_oop(oop* p) { work(p); } -}; - -#endif // SHARE_GC_SHENANDOAH_SHENANDOAHOOPCLOSURES_HPP diff --git a/src/hotspot/share/gc/shenandoah/shenandoahOopClosures.inline.hpp b/src/hotspot/share/gc/shenandoah/shenandoahOopClosures.inline.hpp deleted file mode 100644 index e614893aab9..00000000000 --- a/src/hotspot/share/gc/shenandoah/shenandoahOopClosures.inline.hpp +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (c) 2015, 2021, Red Hat, Inc. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHOOPCLOSURES_INLINE_HPP -#define SHARE_GC_SHENANDOAH_SHENANDOAHOOPCLOSURES_INLINE_HPP - -#include "gc/shenandoah/shenandoahOopClosures.hpp" - -#include "gc/shenandoah/shenandoahHeap.inline.hpp" -#include "gc/shenandoah/shenandoahMark.inline.hpp" - -template -inline void ShenandoahMarkRefsSuperClosure::work(T* p) { - ShenandoahMark::mark_through_ref(p, _queue, _mark_context, _weak); -} - -template -template -inline void ShenandoahMarkUpdateRefsClosure::work(T* p) { - // Update the location - _heap->non_conc_update_with_forwarded(p); - - // ...then do the usual thing - ShenandoahMarkRefsSuperClosure::work(p); -} - -template -inline void ShenandoahNonConcUpdateRefsClosure::work(T* p) { - _heap->non_conc_update_with_forwarded(p); -} - -template -inline void ShenandoahConcUpdateRefsClosure::work(T* p) { - _heap->conc_update_with_forwarded(p); -} - -#endif // SHARE_GC_SHENANDOAH_SHENANDOAHOOPCLOSURES_INLINE_HPP diff --git a/src/hotspot/share/gc/shenandoah/shenandoahReferenceProcessor.cpp b/src/hotspot/share/gc/shenandoah/shenandoahReferenceProcessor.cpp index 42c8d0ad271..fe1d6d69bd8 100644 --- a/src/hotspot/share/gc/shenandoah/shenandoahReferenceProcessor.cpp +++ b/src/hotspot/share/gc/shenandoah/shenandoahReferenceProcessor.cpp @@ -26,7 +26,7 @@ #include "precompiled.hpp" #include "classfile/javaClasses.hpp" #include "gc/shared/workerThread.hpp" -#include "gc/shenandoah/shenandoahOopClosures.inline.hpp" +#include "gc/shenandoah/shenandoahClosures.inline.hpp" #include "gc/shenandoah/shenandoahReferenceProcessor.hpp" #include "gc/shenandoah/shenandoahThreadLocalData.hpp" #include "gc/shenandoah/shenandoahUtils.hpp" diff --git a/src/hotspot/share/gc/shenandoah/shenandoahSTWMark.cpp b/src/hotspot/share/gc/shenandoah/shenandoahSTWMark.cpp index 83e897994cb..2e581d918d4 100644 --- a/src/hotspot/share/gc/shenandoah/shenandoahSTWMark.cpp +++ b/src/hotspot/share/gc/shenandoah/shenandoahSTWMark.cpp @@ -31,7 +31,6 @@ #include "gc/shenandoah/shenandoahClosures.inline.hpp" #include "gc/shenandoah/shenandoahGenerationType.hpp" #include "gc/shenandoah/shenandoahMark.inline.hpp" -#include "gc/shenandoah/shenandoahOopClosures.inline.hpp" #include "gc/shenandoah/shenandoahReferenceProcessor.hpp" #include "gc/shenandoah/shenandoahRootProcessor.inline.hpp" #include "gc/shenandoah/shenandoahSTWMark.hpp" diff --git a/src/hotspot/share/gc/shenandoah/shenandoahVMOperations.cpp b/src/hotspot/share/gc/shenandoah/shenandoahVMOperations.cpp index 9d2782502fe..2dd6018ecd4 100644 --- a/src/hotspot/share/gc/shenandoah/shenandoahVMOperations.cpp +++ b/src/hotspot/share/gc/shenandoah/shenandoahVMOperations.cpp @@ -28,8 +28,6 @@ #include "gc/shenandoah/shenandoahDegeneratedGC.hpp" #include "gc/shenandoah/shenandoahFullGC.hpp" #include "gc/shenandoah/shenandoahHeap.inline.hpp" -#include "gc/shenandoah/shenandoahMark.inline.hpp" -#include "gc/shenandoah/shenandoahOopClosures.inline.hpp" #include "gc/shenandoah/shenandoahUtils.hpp" #include "gc/shenandoah/shenandoahVMOperations.hpp" #include "interpreter/oopMapCache.hpp" diff --git a/src/hotspot/share/gc/x/c1/xBarrierSetC1.cpp b/src/hotspot/share/gc/x/c1/xBarrierSetC1.cpp deleted file mode 100644 index 6f64392cefc..00000000000 --- a/src/hotspot/share/gc/x/c1/xBarrierSetC1.cpp +++ /dev/null @@ -1,237 +0,0 @@ -/* - * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "c1/c1_LIR.hpp" -#include "c1/c1_LIRGenerator.hpp" -#include "c1/c1_CodeStubs.hpp" -#include "gc/x/c1/xBarrierSetC1.hpp" -#include "gc/x/xBarrierSet.hpp" -#include "gc/x/xBarrierSetAssembler.hpp" -#include "gc/x/xThreadLocalData.hpp" -#include "utilities/macros.hpp" - -XLoadBarrierStubC1::XLoadBarrierStubC1(LIRAccess& access, LIR_Opr ref, address runtime_stub) : - _decorators(access.decorators()), - _ref_addr(access.resolved_addr()), - _ref(ref), - _tmp(LIR_OprFact::illegalOpr), - _runtime_stub(runtime_stub) { - - assert(_ref_addr->is_address(), "Must be an address"); - assert(_ref->is_register(), "Must be a register"); - - // Allocate tmp register if needed - if (_ref_addr->as_address_ptr()->index()->is_valid() || - _ref_addr->as_address_ptr()->disp() != 0) { - // Has index or displacement, need tmp register to load address into - _tmp = access.gen()->new_pointer_register(); - } - - FrameMap* f = Compilation::current()->frame_map(); - f->update_reserved_argument_area_size(2 * BytesPerWord); -} - -DecoratorSet XLoadBarrierStubC1::decorators() const { - return _decorators; -} - -LIR_Opr XLoadBarrierStubC1::ref() const { - return _ref; -} - -LIR_Opr XLoadBarrierStubC1::ref_addr() const { - return _ref_addr; -} - -LIR_Opr XLoadBarrierStubC1::tmp() const { - return _tmp; -} - -address XLoadBarrierStubC1::runtime_stub() const { - return _runtime_stub; -} - -void XLoadBarrierStubC1::visit(LIR_OpVisitState* visitor) { - visitor->do_slow_case(); - visitor->do_input(_ref_addr); - visitor->do_output(_ref); - if (_tmp->is_valid()) { - visitor->do_temp(_tmp); - } -} - -void XLoadBarrierStubC1::emit_code(LIR_Assembler* ce) { - XBarrierSet::assembler()->generate_c1_load_barrier_stub(ce, this); -} - -#ifndef PRODUCT -void XLoadBarrierStubC1::print_name(outputStream* out) const { - out->print("XLoadBarrierStubC1"); -} -#endif // PRODUCT - -class LIR_OpXLoadBarrierTest : public LIR_Op { -private: - LIR_Opr _opr; - -public: - LIR_OpXLoadBarrierTest(LIR_Opr opr) : - LIR_Op(lir_xloadbarrier_test, LIR_OprFact::illegalOpr, nullptr), - _opr(opr) {} - - virtual void visit(LIR_OpVisitState* state) { - state->do_input(_opr); - } - - virtual void emit_code(LIR_Assembler* ce) { - XBarrierSet::assembler()->generate_c1_load_barrier_test(ce, _opr); - } - - virtual void print_instr(outputStream* out) const { - _opr->print(out); - out->print(" "); - } - -#ifndef PRODUCT - virtual const char* name() const { - return "lir_z_load_barrier_test"; - } -#endif // PRODUCT -}; - -static bool barrier_needed(LIRAccess& access) { - return XBarrierSet::barrier_needed(access.decorators(), access.type()); -} - -XBarrierSetC1::XBarrierSetC1() : - _load_barrier_on_oop_field_preloaded_runtime_stub(nullptr), - _load_barrier_on_weak_oop_field_preloaded_runtime_stub(nullptr) {} - -address XBarrierSetC1::load_barrier_on_oop_field_preloaded_runtime_stub(DecoratorSet decorators) const { - assert((decorators & ON_PHANTOM_OOP_REF) == 0, "Unsupported decorator"); - //assert((decorators & ON_UNKNOWN_OOP_REF) == 0, "Unsupported decorator"); - - if ((decorators & ON_WEAK_OOP_REF) != 0) { - return _load_barrier_on_weak_oop_field_preloaded_runtime_stub; - } else { - return _load_barrier_on_oop_field_preloaded_runtime_stub; - } -} - -#ifdef ASSERT -#define __ access.gen()->lir(__FILE__, __LINE__)-> -#else -#define __ access.gen()->lir()-> -#endif - -void XBarrierSetC1::load_barrier(LIRAccess& access, LIR_Opr result) const { - // Fast path - __ append(new LIR_OpXLoadBarrierTest(result)); - - // Slow path - const address runtime_stub = load_barrier_on_oop_field_preloaded_runtime_stub(access.decorators()); - CodeStub* const stub = new XLoadBarrierStubC1(access, result, runtime_stub); - __ branch(lir_cond_notEqual, stub); - __ branch_destination(stub->continuation()); -} - -LIR_Opr XBarrierSetC1::resolve_address(LIRAccess& access, bool resolve_in_register) { - // We must resolve in register when patching. This is to avoid - // having a patch area in the load barrier stub, since the call - // into the runtime to patch will not have the proper oop map. - const bool patch_before_barrier = barrier_needed(access) && (access.decorators() & C1_NEEDS_PATCHING) != 0; - return BarrierSetC1::resolve_address(access, resolve_in_register || patch_before_barrier); -} - -#undef __ - -void XBarrierSetC1::load_at_resolved(LIRAccess& access, LIR_Opr result) { - BarrierSetC1::load_at_resolved(access, result); - - if (barrier_needed(access)) { - load_barrier(access, result); - } -} - -static void pre_load_barrier(LIRAccess& access) { - DecoratorSet decorators = access.decorators(); - - // Downgrade access to MO_UNORDERED - decorators = (decorators & ~MO_DECORATOR_MASK) | MO_UNORDERED; - - // Remove ACCESS_WRITE - decorators = (decorators & ~ACCESS_WRITE); - - // Generate synthetic load at - access.gen()->access_load_at(decorators, - access.type(), - access.base().item(), - access.offset().opr(), - access.gen()->new_register(access.type()), - nullptr /* patch_emit_info */, - nullptr /* load_emit_info */); -} - -LIR_Opr XBarrierSetC1::atomic_xchg_at_resolved(LIRAccess& access, LIRItem& value) { - if (barrier_needed(access)) { - pre_load_barrier(access); - } - - return BarrierSetC1::atomic_xchg_at_resolved(access, value); -} - -LIR_Opr XBarrierSetC1::atomic_cmpxchg_at_resolved(LIRAccess& access, LIRItem& cmp_value, LIRItem& new_value) { - if (barrier_needed(access)) { - pre_load_barrier(access); - } - - return BarrierSetC1::atomic_cmpxchg_at_resolved(access, cmp_value, new_value); -} - -class XLoadBarrierRuntimeStubCodeGenClosure : public StubAssemblerCodeGenClosure { -private: - const DecoratorSet _decorators; - -public: - XLoadBarrierRuntimeStubCodeGenClosure(DecoratorSet decorators) : - _decorators(decorators) {} - - virtual OopMapSet* generate_code(StubAssembler* sasm) { - XBarrierSet::assembler()->generate_c1_load_barrier_runtime_stub(sasm, _decorators); - return nullptr; - } -}; - -static address generate_c1_runtime_stub(BufferBlob* blob, DecoratorSet decorators, const char* name) { - XLoadBarrierRuntimeStubCodeGenClosure cl(decorators); - CodeBlob* const code_blob = Runtime1::generate_blob(blob, C1StubId::NO_STUBID /* stub_id */, name, false /* expect_oop_map*/, &cl); - return code_blob->code_begin(); -} - -void XBarrierSetC1::generate_c1_runtime_stubs(BufferBlob* blob) { - _load_barrier_on_oop_field_preloaded_runtime_stub = - generate_c1_runtime_stub(blob, ON_STRONG_OOP_REF, "load_barrier_on_oop_field_preloaded_runtime_stub"); - _load_barrier_on_weak_oop_field_preloaded_runtime_stub = - generate_c1_runtime_stub(blob, ON_WEAK_OOP_REF, "load_barrier_on_weak_oop_field_preloaded_runtime_stub"); -} diff --git a/src/hotspot/share/gc/x/c1/xBarrierSetC1.hpp b/src/hotspot/share/gc/x/c1/xBarrierSetC1.hpp deleted file mode 100644 index 26c2e142cdf..00000000000 --- a/src/hotspot/share/gc/x/c1/xBarrierSetC1.hpp +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_C1_XBARRIERSETC1_HPP -#define SHARE_GC_X_C1_XBARRIERSETC1_HPP - -#include "c1/c1_CodeStubs.hpp" -#include "c1/c1_IR.hpp" -#include "c1/c1_LIR.hpp" -#include "gc/shared/c1/barrierSetC1.hpp" -#include "oops/accessDecorators.hpp" - -class XLoadBarrierStubC1 : public CodeStub { -private: - DecoratorSet _decorators; - LIR_Opr _ref_addr; - LIR_Opr _ref; - LIR_Opr _tmp; - address _runtime_stub; - -public: - XLoadBarrierStubC1(LIRAccess& access, LIR_Opr ref, address runtime_stub); - - DecoratorSet decorators() const; - LIR_Opr ref() const; - LIR_Opr ref_addr() const; - LIR_Opr tmp() const; - address runtime_stub() const; - - virtual void emit_code(LIR_Assembler* ce); - virtual void visit(LIR_OpVisitState* visitor); - -#ifndef PRODUCT - virtual void print_name(outputStream* out) const; -#endif // PRODUCT -}; - -class XBarrierSetC1 : public BarrierSetC1 { -private: - address _load_barrier_on_oop_field_preloaded_runtime_stub; - address _load_barrier_on_weak_oop_field_preloaded_runtime_stub; - - address load_barrier_on_oop_field_preloaded_runtime_stub(DecoratorSet decorators) const; - void load_barrier(LIRAccess& access, LIR_Opr result) const; - -protected: - virtual LIR_Opr resolve_address(LIRAccess& access, bool resolve_in_register); - virtual void load_at_resolved(LIRAccess& access, LIR_Opr result); - virtual LIR_Opr atomic_xchg_at_resolved(LIRAccess& access, LIRItem& value); - virtual LIR_Opr atomic_cmpxchg_at_resolved(LIRAccess& access, LIRItem& cmp_value, LIRItem& new_value); - -public: - XBarrierSetC1(); - - virtual void generate_c1_runtime_stubs(BufferBlob* blob); -}; - -#endif // SHARE_GC_X_C1_XBARRIERSETC1_HPP diff --git a/src/hotspot/share/gc/x/c2/xBarrierSetC2.cpp b/src/hotspot/share/gc/x/c2/xBarrierSetC2.cpp deleted file mode 100644 index d006b37e7d2..00000000000 --- a/src/hotspot/share/gc/x/c2/xBarrierSetC2.cpp +++ /dev/null @@ -1,583 +0,0 @@ -/* - * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "classfile/javaClasses.hpp" -#include "gc/x/c2/xBarrierSetC2.hpp" -#include "gc/x/xBarrierSet.hpp" -#include "gc/x/xBarrierSetAssembler.hpp" -#include "gc/x/xBarrierSetRuntime.hpp" -#include "opto/arraycopynode.hpp" -#include "opto/addnode.hpp" -#include "opto/block.hpp" -#include "opto/compile.hpp" -#include "opto/graphKit.hpp" -#include "opto/machnode.hpp" -#include "opto/macro.hpp" -#include "opto/memnode.hpp" -#include "opto/node.hpp" -#include "opto/output.hpp" -#include "opto/regalloc.hpp" -#include "opto/rootnode.hpp" -#include "opto/runtime.hpp" -#include "opto/type.hpp" -#include "utilities/growableArray.hpp" -#include "utilities/macros.hpp" - -class XBarrierSetC2State : public ArenaObj { -private: - GrowableArray* _stubs; - Node_Array _live; - -public: - XBarrierSetC2State(Arena* arena) : - _stubs(new (arena) GrowableArray(arena, 8, 0, nullptr)), - _live(arena) {} - - GrowableArray* stubs() { - return _stubs; - } - - RegMask* live(const Node* node) { - if (!node->is_Mach()) { - // Don't need liveness for non-MachNodes - return nullptr; - } - - const MachNode* const mach = node->as_Mach(); - if (mach->barrier_data() == XLoadBarrierElided) { - // Don't need liveness data for nodes without barriers - return nullptr; - } - - RegMask* live = (RegMask*)_live[node->_idx]; - if (live == nullptr) { - live = new (Compile::current()->comp_arena()->AmallocWords(sizeof(RegMask))) RegMask(); - _live.map(node->_idx, (Node*)live); - } - - return live; - } -}; - -static XBarrierSetC2State* barrier_set_state() { - return reinterpret_cast(Compile::current()->barrier_set_state()); -} - -XLoadBarrierStubC2* XLoadBarrierStubC2::create(const MachNode* node, Address ref_addr, Register ref, Register tmp, uint8_t barrier_data) { - XLoadBarrierStubC2* const stub = new (Compile::current()->comp_arena()) XLoadBarrierStubC2(node, ref_addr, ref, tmp, barrier_data); - if (!Compile::current()->output()->in_scratch_emit_size()) { - barrier_set_state()->stubs()->append(stub); - } - - return stub; -} - -XLoadBarrierStubC2::XLoadBarrierStubC2(const MachNode* node, Address ref_addr, Register ref, Register tmp, uint8_t barrier_data) : - _node(node), - _ref_addr(ref_addr), - _ref(ref), - _tmp(tmp), - _barrier_data(barrier_data), - _entry(), - _continuation() { - assert_different_registers(ref, ref_addr.base()); - assert_different_registers(ref, ref_addr.index()); -} - -Address XLoadBarrierStubC2::ref_addr() const { - return _ref_addr; -} - -Register XLoadBarrierStubC2::ref() const { - return _ref; -} - -Register XLoadBarrierStubC2::tmp() const { - return _tmp; -} - -address XLoadBarrierStubC2::slow_path() const { - DecoratorSet decorators = DECORATORS_NONE; - if (_barrier_data & XLoadBarrierStrong) { - decorators |= ON_STRONG_OOP_REF; - } - if (_barrier_data & XLoadBarrierWeak) { - decorators |= ON_WEAK_OOP_REF; - } - if (_barrier_data & XLoadBarrierPhantom) { - decorators |= ON_PHANTOM_OOP_REF; - } - if (_barrier_data & XLoadBarrierNoKeepalive) { - decorators |= AS_NO_KEEPALIVE; - } - return XBarrierSetRuntime::load_barrier_on_oop_field_preloaded_addr(decorators); -} - -RegMask& XLoadBarrierStubC2::live() const { - RegMask* mask = barrier_set_state()->live(_node); - assert(mask != nullptr, "must be mach-node with barrier"); - return *mask; -} - -Label* XLoadBarrierStubC2::entry() { - // The _entry will never be bound when in_scratch_emit_size() is true. - // However, we still need to return a label that is not bound now, but - // will eventually be bound. Any label will do, as it will only act as - // a placeholder, so we return the _continuation label. - return Compile::current()->output()->in_scratch_emit_size() ? &_continuation : &_entry; -} - -Label* XLoadBarrierStubC2::continuation() { - return &_continuation; -} - -void* XBarrierSetC2::create_barrier_state(Arena* comp_arena) const { - return new (comp_arena) XBarrierSetC2State(comp_arena); -} - -void XBarrierSetC2::late_barrier_analysis() const { - analyze_dominating_barriers(); - compute_liveness_at_stubs(); -} - -void XBarrierSetC2::emit_stubs(CodeBuffer& cb) const { - MacroAssembler masm(&cb); - GrowableArray* const stubs = barrier_set_state()->stubs(); - - for (int i = 0; i < stubs->length(); i++) { - // Make sure there is enough space in the code buffer - if (cb.insts()->maybe_expand_to_ensure_remaining(PhaseOutput::MAX_inst_size) && cb.blob() == nullptr) { - ciEnv::current()->record_failure("CodeCache is full"); - return; - } - - XBarrierSet::assembler()->generate_c2_load_barrier_stub(&masm, stubs->at(i)); - } - - masm.flush(); -} - -int XBarrierSetC2::estimate_stub_size() const { - Compile* const C = Compile::current(); - BufferBlob* const blob = C->output()->scratch_buffer_blob(); - GrowableArray* const stubs = barrier_set_state()->stubs(); - int size = 0; - - for (int i = 0; i < stubs->length(); i++) { - CodeBuffer cb(blob->content_begin(), (address)C->output()->scratch_locs_memory() - blob->content_begin()); - MacroAssembler masm(&cb); - XBarrierSet::assembler()->generate_c2_load_barrier_stub(&masm, stubs->at(i)); - size += cb.insts_size(); - } - - return size; -} - -static void set_barrier_data(C2Access& access) { - if (XBarrierSet::barrier_needed(access.decorators(), access.type())) { - uint8_t barrier_data = 0; - - if (access.decorators() & ON_PHANTOM_OOP_REF) { - barrier_data |= XLoadBarrierPhantom; - } else if (access.decorators() & ON_WEAK_OOP_REF) { - barrier_data |= XLoadBarrierWeak; - } else { - barrier_data |= XLoadBarrierStrong; - } - - if (access.decorators() & AS_NO_KEEPALIVE) { - barrier_data |= XLoadBarrierNoKeepalive; - } - - access.set_barrier_data(barrier_data); - } -} - -Node* XBarrierSetC2::load_at_resolved(C2Access& access, const Type* val_type) const { - set_barrier_data(access); - return BarrierSetC2::load_at_resolved(access, val_type); -} - -Node* XBarrierSetC2::atomic_cmpxchg_val_at_resolved(C2AtomicParseAccess& access, Node* expected_val, - Node* new_val, const Type* val_type) const { - set_barrier_data(access); - return BarrierSetC2::atomic_cmpxchg_val_at_resolved(access, expected_val, new_val, val_type); -} - -Node* XBarrierSetC2::atomic_cmpxchg_bool_at_resolved(C2AtomicParseAccess& access, Node* expected_val, - Node* new_val, const Type* value_type) const { - set_barrier_data(access); - return BarrierSetC2::atomic_cmpxchg_bool_at_resolved(access, expected_val, new_val, value_type); -} - -Node* XBarrierSetC2::atomic_xchg_at_resolved(C2AtomicParseAccess& access, Node* new_val, const Type* val_type) const { - set_barrier_data(access); - return BarrierSetC2::atomic_xchg_at_resolved(access, new_val, val_type); -} - -bool XBarrierSetC2::array_copy_requires_gc_barriers(bool tightly_coupled_alloc, BasicType type, - bool is_clone, bool is_clone_instance, - ArrayCopyPhase phase) const { - if (phase == ArrayCopyPhase::Parsing) { - return false; - } - if (phase == ArrayCopyPhase::Optimization) { - return is_clone_instance; - } - // else ArrayCopyPhase::Expansion - return type == T_OBJECT || type == T_ARRAY; -} - -// This TypeFunc assumes a 64bit system -static const TypeFunc* clone_type() { - // Create input type (domain) - const Type** domain_fields = TypeTuple::fields(4); - domain_fields[TypeFunc::Parms + 0] = TypeInstPtr::NOTNULL; // src - domain_fields[TypeFunc::Parms + 1] = TypeInstPtr::NOTNULL; // dst - domain_fields[TypeFunc::Parms + 2] = TypeLong::LONG; // size lower - domain_fields[TypeFunc::Parms + 3] = Type::HALF; // size upper - const TypeTuple* domain = TypeTuple::make(TypeFunc::Parms + 4, domain_fields); - - // Create result type (range) - const Type** range_fields = TypeTuple::fields(0); - const TypeTuple* range = TypeTuple::make(TypeFunc::Parms + 0, range_fields); - - return TypeFunc::make(domain, range); -} - -#define XTOP LP64_ONLY(COMMA phase->top()) - -void XBarrierSetC2::clone_at_expansion(PhaseMacroExpand* phase, ArrayCopyNode* ac) const { - Node* const src = ac->in(ArrayCopyNode::Src); - const TypeAryPtr* ary_ptr = src->get_ptr_type()->isa_aryptr(); - - if (ac->is_clone_array() && ary_ptr != nullptr) { - BasicType bt = ary_ptr->elem()->array_element_basic_type(); - if (is_reference_type(bt)) { - // Clone object array - bt = T_OBJECT; - } else { - // Clone primitive array - bt = T_LONG; - } - - Node* ctrl = ac->in(TypeFunc::Control); - Node* mem = ac->in(TypeFunc::Memory); - Node* src = ac->in(ArrayCopyNode::Src); - Node* src_offset = ac->in(ArrayCopyNode::SrcPos); - Node* dest = ac->in(ArrayCopyNode::Dest); - Node* dest_offset = ac->in(ArrayCopyNode::DestPos); - Node* length = ac->in(ArrayCopyNode::Length); - - if (bt == T_OBJECT) { - // BarrierSetC2::clone sets the offsets via BarrierSetC2::arraycopy_payload_base_offset - // which 8-byte aligns them to allow for word size copies. Make sure the offsets point - // to the first element in the array when cloning object arrays. Otherwise, load - // barriers are applied to parts of the header. Also adjust the length accordingly. - assert(src_offset == dest_offset, "should be equal"); - jlong offset = src_offset->get_long(); - if (offset != arrayOopDesc::base_offset_in_bytes(T_OBJECT)) { - assert(!UseCompressedClassPointers, "should only happen without compressed class pointers"); - assert((arrayOopDesc::base_offset_in_bytes(T_OBJECT) - offset) == BytesPerLong, "unexpected offset"); - length = phase->transform_later(new SubLNode(length, phase->longcon(1))); // Size is in longs - src_offset = phase->longcon(arrayOopDesc::base_offset_in_bytes(T_OBJECT)); - dest_offset = src_offset; - } - } - Node* payload_src = phase->basic_plus_adr(src, src_offset); - Node* payload_dst = phase->basic_plus_adr(dest, dest_offset); - - const char* copyfunc_name = "arraycopy"; - address copyfunc_addr = phase->basictype2arraycopy(bt, nullptr, nullptr, true, copyfunc_name, true); - - const TypePtr* raw_adr_type = TypeRawPtr::BOTTOM; - const TypeFunc* call_type = OptoRuntime::fast_arraycopy_Type(); - - Node* call = phase->make_leaf_call(ctrl, mem, call_type, copyfunc_addr, copyfunc_name, raw_adr_type, payload_src, payload_dst, length XTOP); - phase->transform_later(call); - - phase->igvn().replace_node(ac, call); - return; - } - - // Clone instance - Node* const ctrl = ac->in(TypeFunc::Control); - Node* const mem = ac->in(TypeFunc::Memory); - Node* const dst = ac->in(ArrayCopyNode::Dest); - Node* const size = ac->in(ArrayCopyNode::Length); - - assert(size->bottom_type()->is_long(), "Should be long"); - - // The native clone we are calling here expects the instance size in words - // Add header/offset size to payload size to get instance size. - Node* const base_offset = phase->longcon(arraycopy_payload_base_offset(ac->is_clone_array()) >> LogBytesPerLong); - Node* const full_size = phase->transform_later(new AddLNode(size, base_offset)); - - Node* const call = phase->make_leaf_call(ctrl, - mem, - clone_type(), - XBarrierSetRuntime::clone_addr(), - "XBarrierSetRuntime::clone", - TypeRawPtr::BOTTOM, - src, - dst, - full_size, - phase->top()); - phase->transform_later(call); - phase->igvn().replace_node(ac, call); -} - -#undef XTOP - -// == Dominating barrier elision == - -static bool block_has_safepoint(const Block* block, uint from, uint to) { - for (uint i = from; i < to; i++) { - if (block->get_node(i)->is_MachSafePoint()) { - // Safepoint found - return true; - } - } - - // Safepoint not found - return false; -} - -static bool block_has_safepoint(const Block* block) { - return block_has_safepoint(block, 0, block->number_of_nodes()); -} - -static uint block_index(const Block* block, const Node* node) { - for (uint j = 0; j < block->number_of_nodes(); ++j) { - if (block->get_node(j) == node) { - return j; - } - } - ShouldNotReachHere(); - return 0; -} - -void XBarrierSetC2::analyze_dominating_barriers() const { - ResourceMark rm; - Compile* const C = Compile::current(); - PhaseCFG* const cfg = C->cfg(); - Block_List worklist; - Node_List mem_ops; - Node_List barrier_loads; - - // Step 1 - Find accesses, and track them in lists - for (uint i = 0; i < cfg->number_of_blocks(); ++i) { - const Block* const block = cfg->get_block(i); - for (uint j = 0; j < block->number_of_nodes(); ++j) { - const Node* const node = block->get_node(j); - if (!node->is_Mach()) { - continue; - } - - MachNode* const mach = node->as_Mach(); - switch (mach->ideal_Opcode()) { - case Op_LoadP: - if ((mach->barrier_data() & XLoadBarrierStrong) != 0) { - barrier_loads.push(mach); - } - if ((mach->barrier_data() & (XLoadBarrierStrong | XLoadBarrierNoKeepalive)) == - XLoadBarrierStrong) { - mem_ops.push(mach); - } - break; - case Op_CompareAndExchangeP: - case Op_CompareAndSwapP: - case Op_GetAndSetP: - if ((mach->barrier_data() & XLoadBarrierStrong) != 0) { - barrier_loads.push(mach); - } - case Op_StoreP: - mem_ops.push(mach); - break; - - default: - break; - } - } - } - - // Step 2 - Find dominating accesses for each load - for (uint i = 0; i < barrier_loads.size(); i++) { - MachNode* const load = barrier_loads.at(i)->as_Mach(); - const TypePtr* load_adr_type = nullptr; - intptr_t load_offset = 0; - const Node* const load_obj = load->get_base_and_disp(load_offset, load_adr_type); - Block* const load_block = cfg->get_block_for_node(load); - const uint load_index = block_index(load_block, load); - - for (uint j = 0; j < mem_ops.size(); j++) { - MachNode* mem = mem_ops.at(j)->as_Mach(); - const TypePtr* mem_adr_type = nullptr; - intptr_t mem_offset = 0; - const Node* mem_obj = mem->get_base_and_disp(mem_offset, mem_adr_type); - Block* mem_block = cfg->get_block_for_node(mem); - uint mem_index = block_index(mem_block, mem); - - if (load_obj == NodeSentinel || mem_obj == NodeSentinel || - load_obj == nullptr || mem_obj == nullptr || - load_offset < 0 || mem_offset < 0) { - continue; - } - - if (mem_obj != load_obj || mem_offset != load_offset) { - // Not the same addresses, not a candidate - continue; - } - - if (load_block == mem_block) { - // Earlier accesses in the same block - if (mem_index < load_index && !block_has_safepoint(mem_block, mem_index + 1, load_index)) { - load->set_barrier_data(XLoadBarrierElided); - } - } else if (mem_block->dominates(load_block)) { - // Dominating block? Look around for safepoints - ResourceMark rm; - Block_List stack; - VectorSet visited; - stack.push(load_block); - bool safepoint_found = block_has_safepoint(load_block); - while (!safepoint_found && stack.size() > 0) { - Block* block = stack.pop(); - if (visited.test_set(block->_pre_order)) { - continue; - } - if (block_has_safepoint(block)) { - safepoint_found = true; - break; - } - if (block == mem_block) { - continue; - } - - // Push predecessor blocks - for (uint p = 1; p < block->num_preds(); ++p) { - Block* pred = cfg->get_block_for_node(block->pred(p)); - stack.push(pred); - } - } - - if (!safepoint_found) { - load->set_barrier_data(XLoadBarrierElided); - } - } - } - } -} - -// == Reduced spilling optimization == - -void XBarrierSetC2::compute_liveness_at_stubs() const { - ResourceMark rm; - Compile* const C = Compile::current(); - Arena* const A = Thread::current()->resource_area(); - PhaseCFG* const cfg = C->cfg(); - PhaseRegAlloc* const regalloc = C->regalloc(); - RegMask* const live = NEW_ARENA_ARRAY(A, RegMask, cfg->number_of_blocks() * sizeof(RegMask)); - XBarrierSetAssembler* const bs = XBarrierSet::assembler(); - Block_List worklist; - - for (uint i = 0; i < cfg->number_of_blocks(); ++i) { - new ((void*)(live + i)) RegMask(); - worklist.push(cfg->get_block(i)); - } - - while (worklist.size() > 0) { - const Block* const block = worklist.pop(); - RegMask& old_live = live[block->_pre_order]; - RegMask new_live; - - // Initialize to union of successors - for (uint i = 0; i < block->_num_succs; i++) { - const uint succ_id = block->_succs[i]->_pre_order; - new_live.OR(live[succ_id]); - } - - // Walk block backwards, computing liveness - for (int i = block->number_of_nodes() - 1; i >= 0; --i) { - const Node* const node = block->get_node(i); - - // Remove def bits - const OptoReg::Name first = bs->refine_register(node, regalloc->get_reg_first(node)); - const OptoReg::Name second = bs->refine_register(node, regalloc->get_reg_second(node)); - if (first != OptoReg::Bad) { - new_live.Remove(first); - } - if (second != OptoReg::Bad) { - new_live.Remove(second); - } - - // Add use bits - for (uint j = 1; j < node->req(); ++j) { - const Node* const use = node->in(j); - const OptoReg::Name first = bs->refine_register(use, regalloc->get_reg_first(use)); - const OptoReg::Name second = bs->refine_register(use, regalloc->get_reg_second(use)); - if (first != OptoReg::Bad) { - new_live.Insert(first); - } - if (second != OptoReg::Bad) { - new_live.Insert(second); - } - } - - // If this node tracks liveness, update it - RegMask* const regs = barrier_set_state()->live(node); - if (regs != nullptr) { - regs->OR(new_live); - } - } - - // Now at block top, see if we have any changes - new_live.SUBTRACT(old_live); - if (new_live.is_NotEmpty()) { - // Liveness has refined, update and propagate to prior blocks - old_live.OR(new_live); - for (uint i = 1; i < block->num_preds(); ++i) { - Block* const pred = cfg->get_block_for_node(block->pred(i)); - worklist.push(pred); - } - } - } -} - -#ifndef PRODUCT -void XBarrierSetC2::dump_barrier_data(const MachNode* mach, outputStream* st) const { - if ((mach->barrier_data() & XLoadBarrierStrong) != 0) { - st->print("strong "); - } - if ((mach->barrier_data() & XLoadBarrierWeak) != 0) { - st->print("weak "); - } - if ((mach->barrier_data() & XLoadBarrierPhantom) != 0) { - st->print("phantom "); - } - if ((mach->barrier_data() & XLoadBarrierNoKeepalive) != 0) { - st->print("nokeepalive "); - } -} -#endif // !PRODUCT diff --git a/src/hotspot/share/gc/x/c2/xBarrierSetC2.hpp b/src/hotspot/share/gc/x/c2/xBarrierSetC2.hpp deleted file mode 100644 index 91835338fd7..00000000000 --- a/src/hotspot/share/gc/x/c2/xBarrierSetC2.hpp +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_C2_XBARRIERSETC2_HPP -#define SHARE_GC_X_C2_XBARRIERSETC2_HPP - -#include "gc/shared/c2/barrierSetC2.hpp" -#include "memory/allocation.hpp" -#include "opto/node.hpp" -#include "utilities/growableArray.hpp" - -const uint8_t XLoadBarrierElided = 0; -const uint8_t XLoadBarrierStrong = 1; -const uint8_t XLoadBarrierWeak = 2; -const uint8_t XLoadBarrierPhantom = 4; -const uint8_t XLoadBarrierNoKeepalive = 8; - -class XLoadBarrierStubC2 : public ArenaObj { -private: - const MachNode* _node; - const Address _ref_addr; - const Register _ref; - const Register _tmp; - const uint8_t _barrier_data; - Label _entry; - Label _continuation; - - XLoadBarrierStubC2(const MachNode* node, Address ref_addr, Register ref, Register tmp, uint8_t barrier_data); - -public: - static XLoadBarrierStubC2* create(const MachNode* node, Address ref_addr, Register ref, Register tmp, uint8_t barrier_data); - - Address ref_addr() const; - Register ref() const; - Register tmp() const; - address slow_path() const; - RegMask& live() const; - Label* entry(); - Label* continuation(); -}; - -class XBarrierSetC2 : public BarrierSetC2 { -private: - void compute_liveness_at_stubs() const; - void analyze_dominating_barriers() const; - -protected: - virtual Node* load_at_resolved(C2Access& access, const Type* val_type) const; - virtual Node* atomic_cmpxchg_val_at_resolved(C2AtomicParseAccess& access, - Node* expected_val, - Node* new_val, - const Type* val_type) const; - virtual Node* atomic_cmpxchg_bool_at_resolved(C2AtomicParseAccess& access, - Node* expected_val, - Node* new_val, - const Type* value_type) const; - virtual Node* atomic_xchg_at_resolved(C2AtomicParseAccess& access, - Node* new_val, - const Type* val_type) const; - -public: - virtual void* create_barrier_state(Arena* comp_arena) const; - virtual bool array_copy_requires_gc_barriers(bool tightly_coupled_alloc, - BasicType type, - bool is_clone, - bool is_clone_instance, - ArrayCopyPhase phase) const; - virtual void clone_at_expansion(PhaseMacroExpand* phase, - ArrayCopyNode* ac) const; - - virtual void late_barrier_analysis() const; - virtual int estimate_stub_size() const; - virtual void emit_stubs(CodeBuffer& cb) const; - -#ifndef PRODUCT - virtual void dump_barrier_data(const MachNode* mach, outputStream* st) const; -#endif -}; - -#endif // SHARE_GC_X_C2_XBARRIERSETC2_HPP diff --git a/src/hotspot/share/gc/x/vmStructs_x.cpp b/src/hotspot/share/gc/x/vmStructs_x.cpp deleted file mode 100644 index 4c7d63f41b4..00000000000 --- a/src/hotspot/share/gc/x/vmStructs_x.cpp +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) 2018, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/vmStructs_x.hpp" - -XGlobalsForVMStructs::XGlobalsForVMStructs() : - _XGlobalPhase(&XGlobalPhase), - _XGlobalSeqNum(&XGlobalSeqNum), - _XAddressOffsetMask(&XAddressOffsetMask), - _XAddressMetadataMask(&XAddressMetadataMask), - _XAddressMetadataFinalizable(&XAddressMetadataFinalizable), - _XAddressGoodMask(&XAddressGoodMask), - _XAddressBadMask(&XAddressBadMask), - _XAddressWeakBadMask(&XAddressWeakBadMask), - _XObjectAlignmentSmallShift(&XObjectAlignmentSmallShift), - _XObjectAlignmentSmall(&XObjectAlignmentSmall) { -} - -XGlobalsForVMStructs XGlobalsForVMStructs::_instance; -XGlobalsForVMStructs* XGlobalsForVMStructs::_instance_p = &XGlobalsForVMStructs::_instance; diff --git a/src/hotspot/share/gc/x/vmStructs_x.hpp b/src/hotspot/share/gc/x/vmStructs_x.hpp deleted file mode 100644 index b911c21be23..00000000000 --- a/src/hotspot/share/gc/x/vmStructs_x.hpp +++ /dev/null @@ -1,143 +0,0 @@ -/* - * Copyright (c) 2017, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_VMSTRUCTS_X_HPP -#define SHARE_GC_X_VMSTRUCTS_X_HPP - -#include "gc/x/xAttachedArray.hpp" -#include "gc/x/xCollectedHeap.hpp" -#include "gc/x/xForwarding.hpp" -#include "gc/x/xGranuleMap.hpp" -#include "gc/x/xHeap.hpp" -#include "gc/x/xPageAllocator.hpp" -#include "utilities/macros.hpp" - -// Expose some ZGC globals to the SA agent. -class XGlobalsForVMStructs { - static XGlobalsForVMStructs _instance; - -public: - static XGlobalsForVMStructs* _instance_p; - - XGlobalsForVMStructs(); - - uint32_t* _XGlobalPhase; - - uint32_t* _XGlobalSeqNum; - - uintptr_t* _XAddressOffsetMask; - uintptr_t* _XAddressMetadataMask; - uintptr_t* _XAddressMetadataFinalizable; - uintptr_t* _XAddressGoodMask; - uintptr_t* _XAddressBadMask; - uintptr_t* _XAddressWeakBadMask; - - const int* _XObjectAlignmentSmallShift; - const int* _XObjectAlignmentSmall; -}; - -typedef XGranuleMap XGranuleMapForPageTable; -typedef XGranuleMap XGranuleMapForForwarding; -typedef XAttachedArray XAttachedArrayForForwarding; - -#define VM_STRUCTS_X(nonstatic_field, volatile_nonstatic_field, static_field) \ - static_field(XGlobalsForVMStructs, _instance_p, XGlobalsForVMStructs*) \ - nonstatic_field(XGlobalsForVMStructs, _XGlobalPhase, uint32_t*) \ - nonstatic_field(XGlobalsForVMStructs, _XGlobalSeqNum, uint32_t*) \ - nonstatic_field(XGlobalsForVMStructs, _XAddressOffsetMask, uintptr_t*) \ - nonstatic_field(XGlobalsForVMStructs, _XAddressMetadataMask, uintptr_t*) \ - nonstatic_field(XGlobalsForVMStructs, _XAddressMetadataFinalizable, uintptr_t*) \ - nonstatic_field(XGlobalsForVMStructs, _XAddressGoodMask, uintptr_t*) \ - nonstatic_field(XGlobalsForVMStructs, _XAddressBadMask, uintptr_t*) \ - nonstatic_field(XGlobalsForVMStructs, _XAddressWeakBadMask, uintptr_t*) \ - nonstatic_field(XGlobalsForVMStructs, _XObjectAlignmentSmallShift, const int*) \ - nonstatic_field(XGlobalsForVMStructs, _XObjectAlignmentSmall, const int*) \ - \ - nonstatic_field(XCollectedHeap, _heap, XHeap) \ - \ - nonstatic_field(XHeap, _page_allocator, XPageAllocator) \ - nonstatic_field(XHeap, _page_table, XPageTable) \ - nonstatic_field(XHeap, _forwarding_table, XForwardingTable) \ - nonstatic_field(XHeap, _relocate, XRelocate) \ - \ - nonstatic_field(XPage, _type, const uint8_t) \ - nonstatic_field(XPage, _seqnum, uint32_t) \ - nonstatic_field(XPage, _virtual, const XVirtualMemory) \ - volatile_nonstatic_field(XPage, _top, uintptr_t) \ - \ - nonstatic_field(XPageAllocator, _max_capacity, const size_t) \ - volatile_nonstatic_field(XPageAllocator, _capacity, size_t) \ - volatile_nonstatic_field(XPageAllocator, _used, size_t) \ - \ - nonstatic_field(XPageTable, _map, XGranuleMapForPageTable) \ - \ - nonstatic_field(XGranuleMapForPageTable, _map, XPage** const) \ - nonstatic_field(XGranuleMapForForwarding, _map, XForwarding** const) \ - \ - nonstatic_field(XForwardingTable, _map, XGranuleMapForForwarding) \ - \ - nonstatic_field(XVirtualMemory, _start, const uintptr_t) \ - nonstatic_field(XVirtualMemory, _end, const uintptr_t) \ - \ - nonstatic_field(XForwarding, _virtual, const XVirtualMemory) \ - nonstatic_field(XForwarding, _object_alignment_shift, const size_t) \ - volatile_nonstatic_field(XForwarding, _ref_count, int) \ - nonstatic_field(XForwarding, _entries, const XAttachedArrayForForwarding) \ - nonstatic_field(XForwardingEntry, _entry, uint64_t) \ - nonstatic_field(XAttachedArrayForForwarding, _length, const size_t) - -#define VM_INT_CONSTANTS_X(declare_constant, declare_constant_with_value) \ - declare_constant(XPhaseRelocate) \ - declare_constant(XPageTypeSmall) \ - declare_constant(XPageTypeMedium) \ - declare_constant(XPageTypeLarge) \ - declare_constant(XObjectAlignmentMediumShift) \ - declare_constant(XObjectAlignmentLargeShift) - -#define VM_LONG_CONSTANTS_X(declare_constant) \ - declare_constant(XGranuleSizeShift) \ - declare_constant(XPageSizeSmallShift) \ - declare_constant(XPageSizeMediumShift) \ - declare_constant(XAddressOffsetShift) \ - declare_constant(XAddressOffsetBits) \ - declare_constant(XAddressOffsetMask) \ - declare_constant(XAddressOffsetMax) - -#define VM_TYPES_X(declare_type, declare_toplevel_type, declare_integer_type) \ - declare_toplevel_type(XGlobalsForVMStructs) \ - declare_type(XCollectedHeap, CollectedHeap) \ - declare_toplevel_type(XHeap) \ - declare_toplevel_type(XRelocate) \ - declare_toplevel_type(XPage) \ - declare_toplevel_type(XPageAllocator) \ - declare_toplevel_type(XPageTable) \ - declare_toplevel_type(XAttachedArrayForForwarding) \ - declare_toplevel_type(XGranuleMapForPageTable) \ - declare_toplevel_type(XGranuleMapForForwarding) \ - declare_toplevel_type(XVirtualMemory) \ - declare_toplevel_type(XForwardingTable) \ - declare_toplevel_type(XForwarding) \ - declare_toplevel_type(XForwardingEntry) \ - declare_toplevel_type(XPhysicalMemoryManager) - -#endif // SHARE_GC_X_VMSTRUCTS_X_HPP diff --git a/src/hotspot/share/gc/x/xAbort.cpp b/src/hotspot/share/gc/x/xAbort.cpp deleted file mode 100644 index 11b8d840d22..00000000000 --- a/src/hotspot/share/gc/x/xAbort.cpp +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xAbort.hpp" -#include "runtime/atomic.hpp" - -volatile bool XAbort::_should_abort = false; - -void XAbort::abort() { - Atomic::release_store_fence(&_should_abort, true); -} diff --git a/src/hotspot/share/gc/x/xAbort.hpp b/src/hotspot/share/gc/x/xAbort.hpp deleted file mode 100644 index 808a350584b..00000000000 --- a/src/hotspot/share/gc/x/xAbort.hpp +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright (c) 2021, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XABORT_HPP -#define SHARE_GC_X_XABORT_HPP - -#include "memory/allStatic.hpp" - -class XAbort : public AllStatic { -private: - static volatile bool _should_abort; - -public: - static bool should_abort(); - static void abort(); -}; - -#endif // SHARE_GC_X_XABORT_HPP diff --git a/src/hotspot/share/gc/x/xAbort.inline.hpp b/src/hotspot/share/gc/x/xAbort.inline.hpp deleted file mode 100644 index 8ef1219330a..00000000000 --- a/src/hotspot/share/gc/x/xAbort.inline.hpp +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XABORT_INLINE_HPP -#define SHARE_GC_X_XABORT_INLINE_HPP - -#include "gc/x/xAbort.hpp" - -#include "runtime/atomic.hpp" - -inline bool XAbort::should_abort() { - return Atomic::load_acquire(&_should_abort); -} - -#endif // SHARE_GC_X_XABORT_INLINE_HPP diff --git a/src/hotspot/share/gc/x/xAddress.cpp b/src/hotspot/share/gc/x/xAddress.cpp deleted file mode 100644 index 33dffc662f1..00000000000 --- a/src/hotspot/share/gc/x/xAddress.cpp +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xAddress.hpp" -#include "gc/x/xGlobals.hpp" - -void XAddress::set_good_mask(uintptr_t mask) { - XAddressGoodMask = mask; - XAddressBadMask = XAddressGoodMask ^ XAddressMetadataMask; - XAddressWeakBadMask = (XAddressGoodMask | XAddressMetadataRemapped | XAddressMetadataFinalizable) ^ XAddressMetadataMask; -} - -void XAddress::initialize() { - XAddressOffsetBits = XPlatformAddressOffsetBits(); - XAddressOffsetMask = (((uintptr_t)1 << XAddressOffsetBits) - 1) << XAddressOffsetShift; - XAddressOffsetMax = (uintptr_t)1 << XAddressOffsetBits; - - XAddressMetadataShift = XPlatformAddressMetadataShift(); - XAddressMetadataMask = (((uintptr_t)1 << XAddressMetadataBits) - 1) << XAddressMetadataShift; - - XAddressMetadataMarked0 = (uintptr_t)1 << (XAddressMetadataShift + 0); - XAddressMetadataMarked1 = (uintptr_t)1 << (XAddressMetadataShift + 1); - XAddressMetadataRemapped = (uintptr_t)1 << (XAddressMetadataShift + 2); - XAddressMetadataFinalizable = (uintptr_t)1 << (XAddressMetadataShift + 3); - - XAddressMetadataMarked = XAddressMetadataMarked0; - set_good_mask(XAddressMetadataRemapped); -} - -void XAddress::flip_to_marked() { - XAddressMetadataMarked ^= (XAddressMetadataMarked0 | XAddressMetadataMarked1); - set_good_mask(XAddressMetadataMarked); -} - -void XAddress::flip_to_remapped() { - set_good_mask(XAddressMetadataRemapped); -} diff --git a/src/hotspot/share/gc/x/xAddress.hpp b/src/hotspot/share/gc/x/xAddress.hpp deleted file mode 100644 index ff9d548f1af..00000000000 --- a/src/hotspot/share/gc/x/xAddress.hpp +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright (c) 2015, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XADDRESS_HPP -#define SHARE_GC_X_XADDRESS_HPP - -#include "memory/allStatic.hpp" -#include "utilities/globalDefinitions.hpp" - -class XAddress : public AllStatic { - friend class XAddressTest; - -private: - static void set_good_mask(uintptr_t mask); - -public: - static void initialize(); - - static void flip_to_marked(); - static void flip_to_remapped(); - - static bool is_null(uintptr_t value); - static bool is_bad(uintptr_t value); - static bool is_good(uintptr_t value); - static bool is_good_or_null(uintptr_t value); - static bool is_weak_bad(uintptr_t value); - static bool is_weak_good(uintptr_t value); - static bool is_weak_good_or_null(uintptr_t value); - static bool is_marked(uintptr_t value); - static bool is_marked_or_null(uintptr_t value); - static bool is_finalizable(uintptr_t value); - static bool is_finalizable_good(uintptr_t value); - static bool is_remapped(uintptr_t value); - static bool is_in(uintptr_t value); - - static uintptr_t offset(uintptr_t value); - static uintptr_t good(uintptr_t value); - static uintptr_t good_or_null(uintptr_t value); - static uintptr_t finalizable_good(uintptr_t value); - static uintptr_t marked(uintptr_t value); - static uintptr_t marked0(uintptr_t value); - static uintptr_t marked1(uintptr_t value); - static uintptr_t remapped(uintptr_t value); - static uintptr_t remapped_or_null(uintptr_t value); -}; - -#endif // SHARE_GC_X_XADDRESS_HPP diff --git a/src/hotspot/share/gc/x/xAddress.inline.hpp b/src/hotspot/share/gc/x/xAddress.inline.hpp deleted file mode 100644 index 046ee10af00..00000000000 --- a/src/hotspot/share/gc/x/xAddress.inline.hpp +++ /dev/null @@ -1,137 +0,0 @@ -/* - * Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XADDRESS_INLINE_HPP -#define SHARE_GC_X_XADDRESS_INLINE_HPP - -#include "gc/x/xAddress.hpp" - -#include "gc/x/xGlobals.hpp" -#include "utilities/globalDefinitions.hpp" -#include "utilities/macros.hpp" -#include "utilities/powerOfTwo.hpp" - -inline bool XAddress::is_null(uintptr_t value) { - return value == 0; -} - -inline bool XAddress::is_bad(uintptr_t value) { - return value & XAddressBadMask; -} - -inline bool XAddress::is_good(uintptr_t value) { - return !is_bad(value) && !is_null(value); -} - -inline bool XAddress::is_good_or_null(uintptr_t value) { - // Checking if an address is "not bad" is an optimized version of - // checking if it's "good or null", which eliminates an explicit - // null check. However, the implicit null check only checks that - // the mask bits are zero, not that the entire address is zero. - // This means that an address without mask bits would pass through - // the barrier as if it was null. This should be harmless as such - // addresses should ever be passed through the barrier. - const bool result = !is_bad(value); - assert((is_good(value) || is_null(value)) == result, "Bad address"); - return result; -} - -inline bool XAddress::is_weak_bad(uintptr_t value) { - return value & XAddressWeakBadMask; -} - -inline bool XAddress::is_weak_good(uintptr_t value) { - return !is_weak_bad(value) && !is_null(value); -} - -inline bool XAddress::is_weak_good_or_null(uintptr_t value) { - return !is_weak_bad(value); -} - -inline bool XAddress::is_marked(uintptr_t value) { - return value & XAddressMetadataMarked; -} - -inline bool XAddress::is_marked_or_null(uintptr_t value) { - return is_marked(value) || is_null(value); -} - -inline bool XAddress::is_finalizable(uintptr_t value) { - return value & XAddressMetadataFinalizable; -} - -inline bool XAddress::is_finalizable_good(uintptr_t value) { - return is_finalizable(value) && is_good(value ^ XAddressMetadataFinalizable); -} - -inline bool XAddress::is_remapped(uintptr_t value) { - return value & XAddressMetadataRemapped; -} - -inline bool XAddress::is_in(uintptr_t value) { - // Check that exactly one non-offset bit is set - if (!is_power_of_2(value & ~XAddressOffsetMask)) { - return false; - } - - // Check that one of the non-finalizable metadata is set - return value & (XAddressMetadataMask & ~XAddressMetadataFinalizable); -} - -inline uintptr_t XAddress::offset(uintptr_t value) { - return value & XAddressOffsetMask; -} - -inline uintptr_t XAddress::good(uintptr_t value) { - return offset(value) | XAddressGoodMask; -} - -inline uintptr_t XAddress::good_or_null(uintptr_t value) { - return is_null(value) ? 0 : good(value); -} - -inline uintptr_t XAddress::finalizable_good(uintptr_t value) { - return offset(value) | XAddressMetadataFinalizable | XAddressGoodMask; -} - -inline uintptr_t XAddress::marked(uintptr_t value) { - return offset(value) | XAddressMetadataMarked; -} - -inline uintptr_t XAddress::marked0(uintptr_t value) { - return offset(value) | XAddressMetadataMarked0; -} - -inline uintptr_t XAddress::marked1(uintptr_t value) { - return offset(value) | XAddressMetadataMarked1; -} - -inline uintptr_t XAddress::remapped(uintptr_t value) { - return offset(value) | XAddressMetadataRemapped; -} - -inline uintptr_t XAddress::remapped_or_null(uintptr_t value) { - return is_null(value) ? 0 : remapped(value); -} - -#endif // SHARE_GC_X_XADDRESS_INLINE_HPP diff --git a/src/hotspot/share/gc/x/xAddressSpaceLimit.cpp b/src/hotspot/share/gc/x/xAddressSpaceLimit.cpp deleted file mode 100644 index 6d3c7a295df..00000000000 --- a/src/hotspot/share/gc/x/xAddressSpaceLimit.cpp +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (c) 2019, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/shared/gc_globals.hpp" -#include "gc/x/xAddressSpaceLimit.hpp" -#include "gc/x/xGlobals.hpp" -#include "runtime/globals.hpp" -#include "runtime/os.hpp" -#include "utilities/align.hpp" - -static size_t address_space_limit() { - size_t limit = 0; - - if (os::has_allocatable_memory_limit(&limit)) { - return limit; - } - - // No limit - return SIZE_MAX; -} - -size_t XAddressSpaceLimit::mark_stack() { - // Allow mark stacks to occupy 10% of the address space - const size_t limit = address_space_limit() / 10; - return align_up(limit, XMarkStackSpaceExpandSize); -} - -size_t XAddressSpaceLimit::heap_view() { - // Allow all heap views to occupy 50% of the address space - const size_t limit = address_space_limit() / MaxVirtMemFraction / XHeapViews; - return align_up(limit, XGranuleSize); -} diff --git a/src/hotspot/share/gc/x/xAddressSpaceLimit.hpp b/src/hotspot/share/gc/x/xAddressSpaceLimit.hpp deleted file mode 100644 index 9a3fcc27a29..00000000000 --- a/src/hotspot/share/gc/x/xAddressSpaceLimit.hpp +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (c) 2019, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XADDRESSSPACELIMIT_HPP -#define SHARE_GC_X_XADDRESSSPACELIMIT_HPP - -#include "memory/allStatic.hpp" -#include "utilities/globalDefinitions.hpp" - -class XAddressSpaceLimit : public AllStatic { -public: - static size_t mark_stack(); - static size_t heap_view(); -}; - -#endif // SHARE_GC_X_XADDRESSSPACELIMIT_HPP diff --git a/src/hotspot/share/gc/x/xAllocationFlags.hpp b/src/hotspot/share/gc/x/xAllocationFlags.hpp deleted file mode 100644 index 307d68c65ac..00000000000 --- a/src/hotspot/share/gc/x/xAllocationFlags.hpp +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright (c) 2017, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XALLOCATIONFLAGS_HPP -#define SHARE_GC_X_XALLOCATIONFLAGS_HPP - -#include "gc/x/xBitField.hpp" -#include "memory/allocation.hpp" - -// -// Allocation flags layout -// ----------------------- -// -// 7 2 1 0 -// +-----+-+-+-+ -// |00000|1|1|1| -// +-----+-+-+-+ -// | | | | -// | | | * 0-0 Non-Blocking Flag (1-bit) -// | | | -// | | * 1-1 Worker Relocation Flag (1-bit) -// | | -// | * 2-2 Low Address Flag (1-bit) -// | -// * 7-3 Unused (5-bits) -// - -class XAllocationFlags { -private: - typedef XBitField field_non_blocking; - typedef XBitField field_worker_relocation; - typedef XBitField field_low_address; - - uint8_t _flags; - -public: - XAllocationFlags() : - _flags(0) {} - - void set_non_blocking() { - _flags |= field_non_blocking::encode(true); - } - - void set_worker_relocation() { - _flags |= field_worker_relocation::encode(true); - } - - void set_low_address() { - _flags |= field_low_address::encode(true); - } - - bool non_blocking() const { - return field_non_blocking::decode(_flags); - } - - bool worker_relocation() const { - return field_worker_relocation::decode(_flags); - } - - bool low_address() const { - return field_low_address::decode(_flags); - } -}; - -#endif // SHARE_GC_X_XALLOCATIONFLAGS_HPP diff --git a/src/hotspot/share/gc/x/xArguments.cpp b/src/hotspot/share/gc/x/xArguments.cpp deleted file mode 100644 index 13cb302d14a..00000000000 --- a/src/hotspot/share/gc/x/xArguments.cpp +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Copyright (c) 2017, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xAddressSpaceLimit.hpp" -#include "gc/x/xArguments.hpp" -#include "gc/x/xCollectedHeap.hpp" -#include "gc/x/xGlobals.hpp" -#include "gc/x/xHeuristics.hpp" -#include "gc/shared/gcArguments.hpp" -#include "runtime/globals.hpp" -#include "runtime/globals_extension.hpp" -#include "runtime/java.hpp" - -void XArguments::initialize_alignments() { - SpaceAlignment = XGranuleSize; - HeapAlignment = SpaceAlignment; -} - -void XArguments::initialize_heap_flags_and_sizes() { - // Nothing extra to do -} - -void XArguments::initialize() { - warning("Non-generational ZGC is deprecated."); - - // Check mark stack size - const size_t mark_stack_space_limit = XAddressSpaceLimit::mark_stack(); - if (ZMarkStackSpaceLimit > mark_stack_space_limit) { - if (!FLAG_IS_DEFAULT(ZMarkStackSpaceLimit)) { - vm_exit_during_initialization("ZMarkStackSpaceLimit too large for limited address space"); - } - FLAG_SET_DEFAULT(ZMarkStackSpaceLimit, mark_stack_space_limit); - } - - // Enable NUMA by default - if (FLAG_IS_DEFAULT(UseNUMA)) { - FLAG_SET_DEFAULT(UseNUMA, true); - } - - if (FLAG_IS_DEFAULT(ZFragmentationLimit)) { - FLAG_SET_DEFAULT(ZFragmentationLimit, 25.0); - } - - // Select number of parallel threads - if (FLAG_IS_DEFAULT(ParallelGCThreads)) { - FLAG_SET_DEFAULT(ParallelGCThreads, XHeuristics::nparallel_workers()); - } - - if (ParallelGCThreads == 0) { - vm_exit_during_initialization("The flag -XX:+UseZGC can not be combined with -XX:ParallelGCThreads=0"); - } - - // Select number of concurrent threads - if (FLAG_IS_DEFAULT(ConcGCThreads)) { - FLAG_SET_DEFAULT(ConcGCThreads, XHeuristics::nconcurrent_workers()); - } - - if (ConcGCThreads == 0) { - vm_exit_during_initialization("The flag -XX:+UseZGC can not be combined with -XX:ConcGCThreads=0"); - } - - // Large page size must match granule size - if (!FLAG_IS_DEFAULT(LargePageSizeInBytes) && LargePageSizeInBytes != XGranuleSize) { - vm_exit_during_initialization(err_msg("Incompatible -XX:LargePageSizeInBytes, only " - SIZE_FORMAT "M large pages are supported by ZGC", - XGranuleSize / M)); - } - - // The heuristics used when UseDynamicNumberOfGCThreads is - // enabled defaults to using a ZAllocationSpikeTolerance of 1. - if (UseDynamicNumberOfGCThreads && FLAG_IS_DEFAULT(ZAllocationSpikeTolerance)) { - FLAG_SET_DEFAULT(ZAllocationSpikeTolerance, 1); - } - -#ifdef COMPILER2 - // Enable loop strip mining by default - if (FLAG_IS_DEFAULT(UseCountedLoopSafepoints)) { - FLAG_SET_DEFAULT(UseCountedLoopSafepoints, true); - if (FLAG_IS_DEFAULT(LoopStripMiningIter)) { - FLAG_SET_DEFAULT(LoopStripMiningIter, 1000); - } - } -#endif - - // CompressedOops not supported - FLAG_SET_DEFAULT(UseCompressedOops, false); - - // Verification before startup and after exit not (yet) supported - FLAG_SET_DEFAULT(VerifyDuringStartup, false); - FLAG_SET_DEFAULT(VerifyBeforeExit, false); - - if (VerifyBeforeGC || VerifyDuringGC || VerifyAfterGC) { - FLAG_SET_DEFAULT(ZVerifyRoots, true); - FLAG_SET_DEFAULT(ZVerifyObjects, true); - } -} - -size_t XArguments::heap_virtual_to_physical_ratio() { - return XHeapViews * XVirtualToPhysicalRatio; -} - -CollectedHeap* XArguments::create_heap() { - return new XCollectedHeap(); -} - -bool XArguments::is_supported() { - return is_os_supported(); -} diff --git a/src/hotspot/share/gc/x/xArguments.hpp b/src/hotspot/share/gc/x/xArguments.hpp deleted file mode 100644 index 196dd994cad..00000000000 --- a/src/hotspot/share/gc/x/xArguments.hpp +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2017, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XARGUMENTS_HPP -#define SHARE_GC_X_XARGUMENTS_HPP - -#include "gc/shared/gcArguments.hpp" - -class CollectedHeap; - -class XArguments : AllStatic { -public: - static void initialize_alignments(); - static void initialize_heap_flags_and_sizes(); - static void initialize(); - static size_t heap_virtual_to_physical_ratio(); - static CollectedHeap* create_heap(); - - static bool is_supported(); - - static bool is_os_supported(); -}; - -#endif // SHARE_GC_X_XARGUMENTS_HPP diff --git a/src/hotspot/share/gc/x/xArray.hpp b/src/hotspot/share/gc/x/xArray.hpp deleted file mode 100644 index b0b4b5bd81e..00000000000 --- a/src/hotspot/share/gc/x/xArray.hpp +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XARRAY_HPP -#define SHARE_GC_X_XARRAY_HPP - -#include "memory/allocation.hpp" -#include "utilities/growableArray.hpp" - -template using XArray = GrowableArrayCHeap; - -template -class XArrayIteratorImpl : public StackObj { -private: - const T* _next; - const T* const _end; - - bool next_serial(T* elem); - bool next_parallel(T* elem); - -public: - XArrayIteratorImpl(const T* array, size_t length); - XArrayIteratorImpl(const XArray* array); - - bool next(T* elem); -}; - -template using XArrayIterator = XArrayIteratorImpl; -template using XArrayParallelIterator = XArrayIteratorImpl; - -#endif // SHARE_GC_X_XARRAY_HPP diff --git a/src/hotspot/share/gc/x/xArray.inline.hpp b/src/hotspot/share/gc/x/xArray.inline.hpp deleted file mode 100644 index 721e3130095..00000000000 --- a/src/hotspot/share/gc/x/xArray.inline.hpp +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XARRAY_INLINE_HPP -#define SHARE_GC_X_XARRAY_INLINE_HPP - -#include "gc/x/xArray.hpp" - -#include "runtime/atomic.hpp" - -template -inline bool XArrayIteratorImpl::next_serial(T* elem) { - if (_next == _end) { - return false; - } - - *elem = *_next; - _next++; - - return true; -} - -template -inline bool XArrayIteratorImpl::next_parallel(T* elem) { - const T* old_next = Atomic::load(&_next); - - for (;;) { - if (old_next == _end) { - return false; - } - - const T* const new_next = old_next + 1; - const T* const prev_next = Atomic::cmpxchg(&_next, old_next, new_next); - if (prev_next == old_next) { - *elem = *old_next; - return true; - } - - old_next = prev_next; - } -} - -template -inline XArrayIteratorImpl::XArrayIteratorImpl(const T* array, size_t length) : - _next(array), - _end(array + length) {} - -template -inline XArrayIteratorImpl::XArrayIteratorImpl(const XArray* array) : - XArrayIteratorImpl(array->is_empty() ? nullptr : array->adr_at(0), array->length()) {} - -template -inline bool XArrayIteratorImpl::next(T* elem) { - if (Parallel) { - return next_parallel(elem); - } else { - return next_serial(elem); - } -} - -#endif // SHARE_GC_X_XARRAY_INLINE_HPP diff --git a/src/hotspot/share/gc/x/xAttachedArray.hpp b/src/hotspot/share/gc/x/xAttachedArray.hpp deleted file mode 100644 index f039f602aab..00000000000 --- a/src/hotspot/share/gc/x/xAttachedArray.hpp +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (c) 2019, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XATTACHEDARRAY_HPP -#define SHARE_GC_X_XATTACHEDARRAY_HPP - -#include "utilities/globalDefinitions.hpp" - -class VMStructs; - -template -class XAttachedArray { - friend class ::VMStructs; - -private: - const size_t _length; - - static size_t object_size(); - static size_t array_size(size_t length); - -public: - template - static void* alloc(Allocator* allocator, size_t length); - - static void* alloc(size_t length); - static void free(ObjectT* obj); - - XAttachedArray(size_t length); - - size_t length() const; - ArrayT* operator()(const ObjectT* obj) const; -}; - -#endif // SHARE_GC_X_XATTACHEDARRAY_HPP diff --git a/src/hotspot/share/gc/x/xAttachedArray.inline.hpp b/src/hotspot/share/gc/x/xAttachedArray.inline.hpp deleted file mode 100644 index ba10de99673..00000000000 --- a/src/hotspot/share/gc/x/xAttachedArray.inline.hpp +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright (c) 2019, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XATTACHEDARRAY_INLINE_HPP -#define SHARE_GC_X_XATTACHEDARRAY_INLINE_HPP - -#include "gc/x/xAttachedArray.hpp" - -#include "memory/allocation.hpp" -#include "utilities/align.hpp" - -template -inline size_t XAttachedArray::object_size() { - return align_up(sizeof(ObjectT), sizeof(ArrayT)); -} - -template -inline size_t XAttachedArray::array_size(size_t length) { - return sizeof(ArrayT) * length; -} - -template -template -inline void* XAttachedArray::alloc(Allocator* allocator, size_t length) { - // Allocate memory for object and array - const size_t size = object_size() + array_size(length); - void* const addr = allocator->alloc(size); - - // Placement new array - void* const array_addr = reinterpret_cast(addr) + object_size(); - ::new (array_addr) ArrayT[length]; - - // Return pointer to object - return addr; -} - -template -inline void* XAttachedArray::alloc(size_t length) { - struct Allocator { - void* alloc(size_t size) const { - return AllocateHeap(size, mtGC); - } - } allocator; - return alloc(&allocator, length); -} - -template -inline void XAttachedArray::free(ObjectT* obj) { - FreeHeap(obj); -} - -template -inline XAttachedArray::XAttachedArray(size_t length) : - _length(length) {} - -template -inline size_t XAttachedArray::length() const { - return _length; -} - -template -inline ArrayT* XAttachedArray::operator()(const ObjectT* obj) const { - return reinterpret_cast(reinterpret_cast(obj) + object_size()); -} - -#endif // SHARE_GC_X_XATTACHEDARRAY_INLINE_HPP diff --git a/src/hotspot/share/gc/x/xBarrier.cpp b/src/hotspot/share/gc/x/xBarrier.cpp deleted file mode 100644 index 726950092b2..00000000000 --- a/src/hotspot/share/gc/x/xBarrier.cpp +++ /dev/null @@ -1,275 +0,0 @@ -/* - * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "classfile/javaClasses.hpp" -#include "gc/x/xBarrier.inline.hpp" -#include "gc/x/xHeap.inline.hpp" -#include "gc/x/xOop.inline.hpp" -#include "gc/x/xThread.inline.hpp" -#include "memory/iterator.inline.hpp" -#include "oops/oop.inline.hpp" -#include "runtime/safepoint.hpp" -#include "utilities/debug.hpp" - -template -bool XBarrier::should_mark_through(uintptr_t addr) { - // Finalizable marked oops can still exists on the heap after marking - // has completed, in which case we just want to convert this into a - // good oop and not push it on the mark stack. - if (!during_mark()) { - assert(XAddress::is_marked(addr), "Should be marked"); - assert(XAddress::is_finalizable(addr), "Should be finalizable"); - return false; - } - - // During marking, we mark through already marked oops to avoid having - // some large part of the object graph hidden behind a pushed, but not - // yet flushed, entry on a mutator mark stack. Always marking through - // allows the GC workers to proceed through the object graph even if a - // mutator touched an oop first, which in turn will reduce the risk of - // having to flush mark stacks multiple times to terminate marking. - // - // However, when doing finalizable marking we don't always want to mark - // through. First, marking through an already strongly marked oop would - // be wasteful, since we will then proceed to do finalizable marking on - // an object which is, or will be, marked strongly. Second, marking - // through an already finalizable marked oop would also be wasteful, - // since such oops can never end up on a mutator mark stack and can - // therefore not hide some part of the object graph from GC workers. - if (finalizable) { - return !XAddress::is_marked(addr); - } - - // Mark through - return true; -} - -template -uintptr_t XBarrier::mark(uintptr_t addr) { - uintptr_t good_addr; - - if (XAddress::is_marked(addr)) { - // Already marked, but try to mark though anyway - good_addr = XAddress::good(addr); - } else if (XAddress::is_remapped(addr)) { - // Already remapped, but also needs to be marked - good_addr = XAddress::good(addr); - } else { - // Needs to be both remapped and marked - good_addr = remap(addr); - } - - // Mark - if (should_mark_through(addr)) { - XHeap::heap()->mark_object(good_addr); - } - - if (finalizable) { - // Make the oop finalizable marked/good, instead of normal marked/good. - // This is needed because an object might first becomes finalizable - // marked by the GC, and then loaded by a mutator thread. In this case, - // the mutator thread must be able to tell that the object needs to be - // strongly marked. The finalizable bit in the oop exists to make sure - // that a load of a finalizable marked oop will fall into the barrier - // slow path so that we can mark the object as strongly reachable. - return XAddress::finalizable_good(good_addr); - } - - return good_addr; -} - -uintptr_t XBarrier::remap(uintptr_t addr) { - assert(!XAddress::is_good(addr), "Should not be good"); - assert(!XAddress::is_weak_good(addr), "Should not be weak good"); - return XHeap::heap()->remap_object(addr); -} - -uintptr_t XBarrier::relocate(uintptr_t addr) { - assert(!XAddress::is_good(addr), "Should not be good"); - assert(!XAddress::is_weak_good(addr), "Should not be weak good"); - return XHeap::heap()->relocate_object(addr); -} - -uintptr_t XBarrier::relocate_or_mark(uintptr_t addr) { - return during_relocate() ? relocate(addr) : mark(addr); -} - -uintptr_t XBarrier::relocate_or_mark_no_follow(uintptr_t addr) { - return during_relocate() ? relocate(addr) : mark(addr); -} - -uintptr_t XBarrier::relocate_or_remap(uintptr_t addr) { - return during_relocate() ? relocate(addr) : remap(addr); -} - -// -// Load barrier -// -uintptr_t XBarrier::load_barrier_on_oop_slow_path(uintptr_t addr) { - return relocate_or_mark(addr); -} - -uintptr_t XBarrier::load_barrier_on_invisible_root_oop_slow_path(uintptr_t addr) { - return relocate_or_mark_no_follow(addr); -} - -void XBarrier::load_barrier_on_oop_fields(oop o) { - assert(XAddress::is_good(XOop::to_address(o)), "Should be good"); - XLoadBarrierOopClosure cl; - o->oop_iterate(&cl); -} - -// -// Weak load barrier -// -uintptr_t XBarrier::weak_load_barrier_on_oop_slow_path(uintptr_t addr) { - return XAddress::is_weak_good(addr) ? XAddress::good(addr) : relocate_or_remap(addr); -} - -uintptr_t XBarrier::weak_load_barrier_on_weak_oop_slow_path(uintptr_t addr) { - const uintptr_t good_addr = weak_load_barrier_on_oop_slow_path(addr); - if (XHeap::heap()->is_object_strongly_live(good_addr)) { - return good_addr; - } - - // Not strongly live - return 0; -} - -uintptr_t XBarrier::weak_load_barrier_on_phantom_oop_slow_path(uintptr_t addr) { - const uintptr_t good_addr = weak_load_barrier_on_oop_slow_path(addr); - if (XHeap::heap()->is_object_live(good_addr)) { - return good_addr; - } - - // Not live - return 0; -} - -// -// Keep alive barrier -// -uintptr_t XBarrier::keep_alive_barrier_on_oop_slow_path(uintptr_t addr) { - assert(during_mark(), "Invalid phase"); - - // Mark - return mark(addr); -} - -uintptr_t XBarrier::keep_alive_barrier_on_weak_oop_slow_path(uintptr_t addr) { - assert(XResurrection::is_blocked(), "This operation is only valid when resurrection is blocked"); - const uintptr_t good_addr = weak_load_barrier_on_oop_slow_path(addr); - assert(XHeap::heap()->is_object_strongly_live(good_addr), "Should be live"); - return good_addr; -} - -uintptr_t XBarrier::keep_alive_barrier_on_phantom_oop_slow_path(uintptr_t addr) { - assert(XResurrection::is_blocked(), "This operation is only valid when resurrection is blocked"); - const uintptr_t good_addr = weak_load_barrier_on_oop_slow_path(addr); - assert(XHeap::heap()->is_object_live(good_addr), "Should be live"); - return good_addr; -} - -// -// Mark barrier -// -uintptr_t XBarrier::mark_barrier_on_oop_slow_path(uintptr_t addr) { - assert(during_mark(), "Invalid phase"); - assert(XThread::is_worker(), "Invalid thread"); - - // Mark - return mark(addr); -} - -uintptr_t XBarrier::mark_barrier_on_finalizable_oop_slow_path(uintptr_t addr) { - assert(during_mark(), "Invalid phase"); - assert(XThread::is_worker(), "Invalid thread"); - - // Mark - return mark(addr); -} - -// -// Narrow oop variants, never used. -// -oop XBarrier::load_barrier_on_oop_field(volatile narrowOop* p) { - ShouldNotReachHere(); - return nullptr; -} - -oop XBarrier::load_barrier_on_oop_field_preloaded(volatile narrowOop* p, oop o) { - ShouldNotReachHere(); - return nullptr; -} - -void XBarrier::load_barrier_on_oop_array(volatile narrowOop* p, size_t length) { - ShouldNotReachHere(); -} - -oop XBarrier::load_barrier_on_weak_oop_field_preloaded(volatile narrowOop* p, oop o) { - ShouldNotReachHere(); - return nullptr; -} - -oop XBarrier::load_barrier_on_phantom_oop_field_preloaded(volatile narrowOop* p, oop o) { - ShouldNotReachHere(); - return nullptr; -} - -oop XBarrier::weak_load_barrier_on_oop_field_preloaded(volatile narrowOop* p, oop o) { - ShouldNotReachHere(); - return nullptr; -} - -oop XBarrier::weak_load_barrier_on_weak_oop_field_preloaded(volatile narrowOop* p, oop o) { - ShouldNotReachHere(); - return nullptr; -} - -oop XBarrier::weak_load_barrier_on_phantom_oop_field_preloaded(volatile narrowOop* p, oop o) { - ShouldNotReachHere(); - return nullptr; -} - -#ifdef ASSERT - -// ON_WEAK barriers should only ever be applied to j.l.r.Reference.referents. -void XBarrier::verify_on_weak(volatile oop* referent_addr) { - if (referent_addr != nullptr) { - uintptr_t base = (uintptr_t)referent_addr - java_lang_ref_Reference::referent_offset(); - oop obj = cast_to_oop(base); - assert(oopDesc::is_oop(obj), "Verification failed for: ref " PTR_FORMAT " obj: " PTR_FORMAT, (uintptr_t)referent_addr, base); - assert(java_lang_ref_Reference::is_referent_field(obj, java_lang_ref_Reference::referent_offset()), "Sanity"); - } -} - -#endif - -void XLoadBarrierOopClosure::do_oop(oop* p) { - XBarrier::load_barrier_on_oop_field(p); -} - -void XLoadBarrierOopClosure::do_oop(narrowOop* p) { - ShouldNotReachHere(); -} diff --git a/src/hotspot/share/gc/x/xBarrier.hpp b/src/hotspot/share/gc/x/xBarrier.hpp deleted file mode 100644 index e2ef210d7d2..00000000000 --- a/src/hotspot/share/gc/x/xBarrier.hpp +++ /dev/null @@ -1,135 +0,0 @@ -/* - * Copyright (c) 2015, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XBARRIER_HPP -#define SHARE_GC_X_XBARRIER_HPP - -#include "memory/allStatic.hpp" -#include "memory/iterator.hpp" -#include "oops/oop.hpp" - -typedef bool (*XBarrierFastPath)(uintptr_t); -typedef uintptr_t (*XBarrierSlowPath)(uintptr_t); - -class XBarrier : public AllStatic { -private: - static const bool GCThread = true; - static const bool AnyThread = false; - - static const bool Follow = true; - static const bool DontFollow = false; - - static const bool Strong = false; - static const bool Finalizable = true; - - static const bool Publish = true; - static const bool Overflow = false; - - template static void self_heal(volatile oop* p, uintptr_t addr, uintptr_t heal_addr); - - template static oop barrier(volatile oop* p, oop o); - template static oop weak_barrier(volatile oop* p, oop o); - template static void root_barrier(oop* p, oop o); - - static bool is_good_or_null_fast_path(uintptr_t addr); - static bool is_weak_good_or_null_fast_path(uintptr_t addr); - static bool is_marked_or_null_fast_path(uintptr_t addr); - - static bool during_mark(); - static bool during_relocate(); - template static bool should_mark_through(uintptr_t addr); - template static uintptr_t mark(uintptr_t addr); - static uintptr_t remap(uintptr_t addr); - static uintptr_t relocate(uintptr_t addr); - static uintptr_t relocate_or_mark(uintptr_t addr); - static uintptr_t relocate_or_mark_no_follow(uintptr_t addr); - static uintptr_t relocate_or_remap(uintptr_t addr); - - static uintptr_t load_barrier_on_oop_slow_path(uintptr_t addr); - static uintptr_t load_barrier_on_invisible_root_oop_slow_path(uintptr_t addr); - - static uintptr_t weak_load_barrier_on_oop_slow_path(uintptr_t addr); - static uintptr_t weak_load_barrier_on_weak_oop_slow_path(uintptr_t addr); - static uintptr_t weak_load_barrier_on_phantom_oop_slow_path(uintptr_t addr); - - static uintptr_t keep_alive_barrier_on_oop_slow_path(uintptr_t addr); - static uintptr_t keep_alive_barrier_on_weak_oop_slow_path(uintptr_t addr); - static uintptr_t keep_alive_barrier_on_phantom_oop_slow_path(uintptr_t addr); - - static uintptr_t mark_barrier_on_oop_slow_path(uintptr_t addr); - static uintptr_t mark_barrier_on_finalizable_oop_slow_path(uintptr_t addr); - - static void verify_on_weak(volatile oop* referent_addr) NOT_DEBUG_RETURN; - -public: - // Load barrier - static oop load_barrier_on_oop(oop o); - static oop load_barrier_on_oop_field(volatile oop* p); - static oop load_barrier_on_oop_field_preloaded(volatile oop* p, oop o); - static void load_barrier_on_oop_array(volatile oop* p, size_t length); - static void load_barrier_on_oop_fields(oop o); - static oop load_barrier_on_weak_oop_field_preloaded(volatile oop* p, oop o); - static oop load_barrier_on_phantom_oop_field_preloaded(volatile oop* p, oop o); - static void load_barrier_on_root_oop_field(oop* p); - static void load_barrier_on_invisible_root_oop_field(oop* p); - - // Weak load barrier - static oop weak_load_barrier_on_oop_field(volatile oop* p); - static oop weak_load_barrier_on_oop_field_preloaded(volatile oop* p, oop o); - static oop weak_load_barrier_on_weak_oop(oop o); - static oop weak_load_barrier_on_weak_oop_field_preloaded(volatile oop* p, oop o); - static oop weak_load_barrier_on_phantom_oop(oop o); - static oop weak_load_barrier_on_phantom_oop_field_preloaded(volatile oop* p, oop o); - - // Is alive barrier - static bool is_alive_barrier_on_weak_oop(oop o); - static bool is_alive_barrier_on_phantom_oop(oop o); - - // Keep alive barrier - static void keep_alive_barrier_on_oop(oop o); - static void keep_alive_barrier_on_weak_oop_field(volatile oop* p); - static void keep_alive_barrier_on_phantom_oop_field(volatile oop* p); - static void keep_alive_barrier_on_phantom_root_oop_field(oop* p); - - // Mark barrier - static void mark_barrier_on_oop_field(volatile oop* p, bool finalizable); - static void mark_barrier_on_oop_array(volatile oop* p, size_t length, bool finalizable); - - // Narrow oop variants, never used. - static oop load_barrier_on_oop_field(volatile narrowOop* p); - static oop load_barrier_on_oop_field_preloaded(volatile narrowOop* p, oop o); - static void load_barrier_on_oop_array(volatile narrowOop* p, size_t length); - static oop load_barrier_on_weak_oop_field_preloaded(volatile narrowOop* p, oop o); - static oop load_barrier_on_phantom_oop_field_preloaded(volatile narrowOop* p, oop o); - static oop weak_load_barrier_on_oop_field_preloaded(volatile narrowOop* p, oop o); - static oop weak_load_barrier_on_weak_oop_field_preloaded(volatile narrowOop* p, oop o); - static oop weak_load_barrier_on_phantom_oop_field_preloaded(volatile narrowOop* p, oop o); -}; - -class XLoadBarrierOopClosure : public BasicOopIterateClosure { -public: - virtual void do_oop(oop* p); - virtual void do_oop(narrowOop* p); -}; - -#endif // SHARE_GC_X_XBARRIER_HPP diff --git a/src/hotspot/share/gc/x/xBarrier.inline.hpp b/src/hotspot/share/gc/x/xBarrier.inline.hpp deleted file mode 100644 index 2319bda4d74..00000000000 --- a/src/hotspot/share/gc/x/xBarrier.inline.hpp +++ /dev/null @@ -1,394 +0,0 @@ -/* - * Copyright (c) 2015, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XBARRIER_INLINE_HPP -#define SHARE_GC_X_XBARRIER_INLINE_HPP - -#include "gc/x/xBarrier.hpp" - -#include "code/codeCache.hpp" -#include "gc/x/xAddress.inline.hpp" -#include "gc/x/xOop.inline.hpp" -#include "gc/x/xResurrection.inline.hpp" -#include "oops/oop.hpp" -#include "runtime/atomic.hpp" -#include "runtime/continuation.hpp" - -// A self heal must always "upgrade" the address metadata bits in -// accordance with the metadata bits state machine, which has the -// valid state transitions as described below (where N is the GC -// cycle). -// -// Note the subtleness of overlapping GC cycles. Specifically that -// oops are colored Remapped(N) starting at relocation N and ending -// at marking N + 1. -// -// +--- Mark Start -// | +--- Mark End -// | | +--- Relocate Start -// | | | +--- Relocate End -// | | | | -// Marked |---N---|--N+1--|--N+2--|---- -// Finalizable |---N---|--N+1--|--N+2--|---- -// Remapped ----|---N---|--N+1--|--N+2--| -// -// VALID STATE TRANSITIONS -// -// Marked(N) -> Remapped(N) -// -> Marked(N + 1) -// -> Finalizable(N + 1) -// -// Finalizable(N) -> Marked(N) -// -> Remapped(N) -// -> Marked(N + 1) -// -> Finalizable(N + 1) -// -// Remapped(N) -> Marked(N + 1) -// -> Finalizable(N + 1) -// -// PHASE VIEW -// -// XPhaseMark -// Load & Mark -// Marked(N) <- Marked(N - 1) -// <- Finalizable(N - 1) -// <- Remapped(N - 1) -// <- Finalizable(N) -// -// Mark(Finalizable) -// Finalizable(N) <- Marked(N - 1) -// <- Finalizable(N - 1) -// <- Remapped(N - 1) -// -// Load(AS_NO_KEEPALIVE) -// Remapped(N - 1) <- Marked(N - 1) -// <- Finalizable(N - 1) -// -// XPhaseMarkCompleted (Resurrection blocked) -// Load & Load(ON_WEAK/PHANTOM_OOP_REF | AS_NO_KEEPALIVE) & KeepAlive -// Marked(N) <- Marked(N - 1) -// <- Finalizable(N - 1) -// <- Remapped(N - 1) -// <- Finalizable(N) -// -// Load(ON_STRONG_OOP_REF | AS_NO_KEEPALIVE) -// Remapped(N - 1) <- Marked(N - 1) -// <- Finalizable(N - 1) -// -// XPhaseMarkCompleted (Resurrection unblocked) -// Load -// Marked(N) <- Finalizable(N) -// -// XPhaseRelocate -// Load & Load(AS_NO_KEEPALIVE) -// Remapped(N) <- Marked(N) -// <- Finalizable(N) - -template -inline void XBarrier::self_heal(volatile oop* p, uintptr_t addr, uintptr_t heal_addr) { - if (heal_addr == 0) { - // Never heal with null since it interacts badly with reference processing. - // A mutator clearing an oop would be similar to calling Reference.clear(), - // which would make the reference non-discoverable or silently dropped - // by the reference processor. - return; - } - - assert(!fast_path(addr), "Invalid self heal"); - assert(fast_path(heal_addr), "Invalid self heal"); - - for (;;) { - // Heal - const uintptr_t prev_addr = Atomic::cmpxchg((volatile uintptr_t*)p, addr, heal_addr, memory_order_relaxed); - if (prev_addr == addr) { - // Success - return; - } - - if (fast_path(prev_addr)) { - // Must not self heal - return; - } - - // The oop location was healed by another barrier, but still needs upgrading. - // Re-apply healing to make sure the oop is not left with weaker (remapped or - // finalizable) metadata bits than what this barrier tried to apply. - assert(XAddress::offset(prev_addr) == XAddress::offset(heal_addr), "Invalid offset"); - addr = prev_addr; - } -} - -template -inline oop XBarrier::barrier(volatile oop* p, oop o) { - const uintptr_t addr = XOop::to_address(o); - - // Fast path - if (fast_path(addr)) { - return XOop::from_address(addr); - } - - // Slow path - const uintptr_t good_addr = slow_path(addr); - - if (p != nullptr) { - self_heal(p, addr, good_addr); - } - - return XOop::from_address(good_addr); -} - -template -inline oop XBarrier::weak_barrier(volatile oop* p, oop o) { - const uintptr_t addr = XOop::to_address(o); - - // Fast path - if (fast_path(addr)) { - // Return the good address instead of the weak good address - // to ensure that the currently active heap view is used. - return XOop::from_address(XAddress::good_or_null(addr)); - } - - // Slow path - const uintptr_t good_addr = slow_path(addr); - - if (p != nullptr) { - // The slow path returns a good/marked address or null, but we never mark - // oops in a weak load barrier so we always heal with the remapped address. - self_heal(p, addr, XAddress::remapped_or_null(good_addr)); - } - - return XOop::from_address(good_addr); -} - -template -inline void XBarrier::root_barrier(oop* p, oop o) { - const uintptr_t addr = XOop::to_address(o); - - // Fast path - if (fast_path(addr)) { - return; - } - - // Slow path - const uintptr_t good_addr = slow_path(addr); - - // Non-atomic healing helps speed up root scanning. This is safe to do - // since we are always healing roots in a safepoint, or under a lock, - // which ensures we are never racing with mutators modifying roots while - // we are healing them. It's also safe in case multiple GC threads try - // to heal the same root if it is aligned, since they would always heal - // the root in the same way and it does not matter in which order it - // happens. For misaligned oops, there needs to be mutual exclusion. - *p = XOop::from_address(good_addr); -} - -inline bool XBarrier::is_good_or_null_fast_path(uintptr_t addr) { - return XAddress::is_good_or_null(addr); -} - -inline bool XBarrier::is_weak_good_or_null_fast_path(uintptr_t addr) { - return XAddress::is_weak_good_or_null(addr); -} - -inline bool XBarrier::is_marked_or_null_fast_path(uintptr_t addr) { - return XAddress::is_marked_or_null(addr); -} - -inline bool XBarrier::during_mark() { - return XGlobalPhase == XPhaseMark; -} - -inline bool XBarrier::during_relocate() { - return XGlobalPhase == XPhaseRelocate; -} - -// -// Load barrier -// -inline oop XBarrier::load_barrier_on_oop(oop o) { - return load_barrier_on_oop_field_preloaded((oop*)nullptr, o); -} - -inline oop XBarrier::load_barrier_on_oop_field(volatile oop* p) { - const oop o = Atomic::load(p); - return load_barrier_on_oop_field_preloaded(p, o); -} - -inline oop XBarrier::load_barrier_on_oop_field_preloaded(volatile oop* p, oop o) { - return barrier(p, o); -} - -inline void XBarrier::load_barrier_on_oop_array(volatile oop* p, size_t length) { - for (volatile const oop* const end = p + length; p < end; p++) { - load_barrier_on_oop_field(p); - } -} - -inline oop XBarrier::load_barrier_on_weak_oop_field_preloaded(volatile oop* p, oop o) { - verify_on_weak(p); - - if (XResurrection::is_blocked()) { - return barrier(p, o); - } - - return load_barrier_on_oop_field_preloaded(p, o); -} - -inline oop XBarrier::load_barrier_on_phantom_oop_field_preloaded(volatile oop* p, oop o) { - if (XResurrection::is_blocked()) { - return barrier(p, o); - } - - return load_barrier_on_oop_field_preloaded(p, o); -} - -inline void XBarrier::load_barrier_on_root_oop_field(oop* p) { - const oop o = *p; - root_barrier(p, o); -} - -inline void XBarrier::load_barrier_on_invisible_root_oop_field(oop* p) { - const oop o = *p; - root_barrier(p, o); -} - -// -// Weak load barrier -// -inline oop XBarrier::weak_load_barrier_on_oop_field(volatile oop* p) { - assert(!XResurrection::is_blocked(), "Should not be called during resurrection blocked phase"); - const oop o = Atomic::load(p); - return weak_load_barrier_on_oop_field_preloaded(p, o); -} - -inline oop XBarrier::weak_load_barrier_on_oop_field_preloaded(volatile oop* p, oop o) { - return weak_barrier(p, o); -} - -inline oop XBarrier::weak_load_barrier_on_weak_oop(oop o) { - return weak_load_barrier_on_weak_oop_field_preloaded((oop*)nullptr, o); -} - -inline oop XBarrier::weak_load_barrier_on_weak_oop_field_preloaded(volatile oop* p, oop o) { - verify_on_weak(p); - - if (XResurrection::is_blocked()) { - return barrier(p, o); - } - - return weak_load_barrier_on_oop_field_preloaded(p, o); -} - -inline oop XBarrier::weak_load_barrier_on_phantom_oop(oop o) { - return weak_load_barrier_on_phantom_oop_field_preloaded((oop*)nullptr, o); -} - -inline oop XBarrier::weak_load_barrier_on_phantom_oop_field_preloaded(volatile oop* p, oop o) { - if (XResurrection::is_blocked()) { - return barrier(p, o); - } - - return weak_load_barrier_on_oop_field_preloaded(p, o); -} - -// -// Is alive barrier -// -inline bool XBarrier::is_alive_barrier_on_weak_oop(oop o) { - // Check if oop is logically non-null. This operation - // is only valid when resurrection is blocked. - assert(XResurrection::is_blocked(), "Invalid phase"); - return weak_load_barrier_on_weak_oop(o) != nullptr; -} - -inline bool XBarrier::is_alive_barrier_on_phantom_oop(oop o) { - // Check if oop is logically non-null. This operation - // is only valid when resurrection is blocked. - assert(XResurrection::is_blocked(), "Invalid phase"); - return weak_load_barrier_on_phantom_oop(o) != nullptr; -} - -// -// Keep alive barrier -// -inline void XBarrier::keep_alive_barrier_on_weak_oop_field(volatile oop* p) { - assert(XResurrection::is_blocked(), "This operation is only valid when resurrection is blocked"); - const oop o = Atomic::load(p); - barrier(p, o); -} - -inline void XBarrier::keep_alive_barrier_on_phantom_oop_field(volatile oop* p) { - assert(XResurrection::is_blocked(), "This operation is only valid when resurrection is blocked"); - const oop o = Atomic::load(p); - barrier(p, o); -} - -inline void XBarrier::keep_alive_barrier_on_phantom_root_oop_field(oop* p) { - // The keep alive operation is only valid when resurrection is blocked. - // - // Except with Loom, where we intentionally trigger arms nmethods after - // unlinking, to get a sense of what nmethods are alive. This will trigger - // the keep alive barriers, but the oops are healed and the slow-paths - // will not trigger. We have stronger checks in the slow-paths. - assert(XResurrection::is_blocked() || (CodeCache::contains((void*)p)), - "This operation is only valid when resurrection is blocked"); - const oop o = *p; - root_barrier(p, o); -} - -inline void XBarrier::keep_alive_barrier_on_oop(oop o) { - const uintptr_t addr = XOop::to_address(o); - assert(XAddress::is_good(addr), "Invalid address"); - - if (during_mark()) { - keep_alive_barrier_on_oop_slow_path(addr); - } -} - -// -// Mark barrier -// -inline void XBarrier::mark_barrier_on_oop_field(volatile oop* p, bool finalizable) { - const oop o = Atomic::load(p); - - if (finalizable) { - barrier(p, o); - } else { - const uintptr_t addr = XOop::to_address(o); - if (XAddress::is_good(addr)) { - // Mark through good oop - mark_barrier_on_oop_slow_path(addr); - } else { - // Mark through bad oop - barrier(p, o); - } - } -} - -inline void XBarrier::mark_barrier_on_oop_array(volatile oop* p, size_t length, bool finalizable) { - for (volatile const oop* const end = p + length; p < end; p++) { - mark_barrier_on_oop_field(p, finalizable); - } -} - -#endif // SHARE_GC_X_XBARRIER_INLINE_HPP diff --git a/src/hotspot/share/gc/x/xBarrierSet.cpp b/src/hotspot/share/gc/x/xBarrierSet.cpp deleted file mode 100644 index cee53e8c3fa..00000000000 --- a/src/hotspot/share/gc/x/xBarrierSet.cpp +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Copyright (c) 2018, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xBarrierSet.hpp" -#include "gc/x/xBarrierSetAssembler.hpp" -#include "gc/x/xBarrierSetNMethod.hpp" -#include "gc/x/xBarrierSetStackChunk.hpp" -#include "gc/x/xGlobals.hpp" -#include "gc/x/xHeap.inline.hpp" -#include "gc/x/xStackWatermark.hpp" -#include "gc/x/xThreadLocalData.hpp" -#include "runtime/javaThread.hpp" -#include "utilities/macros.hpp" -#ifdef COMPILER1 -#include "gc/x/c1/xBarrierSetC1.hpp" -#endif -#ifdef COMPILER2 -#include "gc/x/c2/xBarrierSetC2.hpp" -#endif - -class XBarrierSetC1; -class XBarrierSetC2; - -XBarrierSet::XBarrierSet() : - BarrierSet(make_barrier_set_assembler(), - make_barrier_set_c1(), - make_barrier_set_c2(), - new XBarrierSetNMethod(), - new XBarrierSetStackChunk(), - BarrierSet::FakeRtti(BarrierSet::XBarrierSet)) {} - -XBarrierSetAssembler* XBarrierSet::assembler() { - BarrierSetAssembler* const bsa = BarrierSet::barrier_set()->barrier_set_assembler(); - return reinterpret_cast(bsa); -} - -bool XBarrierSet::barrier_needed(DecoratorSet decorators, BasicType type) { - assert((decorators & AS_RAW) == 0, "Unexpected decorator"); - //assert((decorators & ON_UNKNOWN_OOP_REF) == 0, "Unexpected decorator"); - - if (is_reference_type(type)) { - assert((decorators & (IN_HEAP | IN_NATIVE)) != 0, "Where is reference?"); - // Barrier needed even when IN_NATIVE, to allow concurrent scanning. - return true; - } - - // Barrier not needed - return false; -} - -void XBarrierSet::on_thread_create(Thread* thread) { - // Create thread local data - XThreadLocalData::create(thread); -} - -void XBarrierSet::on_thread_destroy(Thread* thread) { - // Destroy thread local data - XThreadLocalData::destroy(thread); -} - -void XBarrierSet::on_thread_attach(Thread* thread) { - // Set thread local address bad mask - XThreadLocalData::set_address_bad_mask(thread, XAddressBadMask); - if (thread->is_Java_thread()) { - JavaThread* const jt = JavaThread::cast(thread); - StackWatermark* const watermark = new XStackWatermark(jt); - StackWatermarkSet::add_watermark(jt, watermark); - } -} - -void XBarrierSet::on_thread_detach(Thread* thread) { - // Flush and free any remaining mark stacks - XHeap::heap()->mark_flush_and_free(thread); -} - -void XBarrierSet::print_on(outputStream* st) const { - st->print_cr("XBarrierSet"); -} diff --git a/src/hotspot/share/gc/x/xBarrierSet.hpp b/src/hotspot/share/gc/x/xBarrierSet.hpp deleted file mode 100644 index 3f1eb760033..00000000000 --- a/src/hotspot/share/gc/x/xBarrierSet.hpp +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XBARRIERSET_HPP -#define SHARE_GC_X_XBARRIERSET_HPP - -#include "gc/shared/barrierSet.hpp" - -class XBarrierSetAssembler; - -class XBarrierSet : public BarrierSet { -public: - XBarrierSet(); - - static XBarrierSetAssembler* assembler(); - static bool barrier_needed(DecoratorSet decorators, BasicType type); - - virtual void on_thread_create(Thread* thread); - virtual void on_thread_destroy(Thread* thread); - virtual void on_thread_attach(Thread* thread); - virtual void on_thread_detach(Thread* thread); - - virtual void print_on(outputStream* st) const; - - template - class AccessBarrier : public BarrierSet::AccessBarrier { - private: - typedef BarrierSet::AccessBarrier Raw; - - template - static void verify_decorators_present(); - - template - static void verify_decorators_absent(); - - static oop* field_addr(oop base, ptrdiff_t offset); - - template - static oop load_barrier_on_oop_field_preloaded(T* addr, oop o); - - template - static oop load_barrier_on_unknown_oop_field_preloaded(oop base, ptrdiff_t offset, T* addr, oop o); - - public: - // - // In heap - // - template - static oop oop_load_in_heap(T* addr); - static oop oop_load_in_heap_at(oop base, ptrdiff_t offset); - - template - static oop oop_atomic_cmpxchg_in_heap(T* addr, oop compare_value, oop new_value); - static oop oop_atomic_cmpxchg_in_heap_at(oop base, ptrdiff_t offset, oop compare_value, oop new_value); - - template - static oop oop_atomic_xchg_in_heap(T* addr, oop new_value); - static oop oop_atomic_xchg_in_heap_at(oop base, ptrdiff_t offset, oop new_value); - - template - static bool oop_arraycopy_in_heap(arrayOop src_obj, size_t src_offset_in_bytes, T* src_raw, - arrayOop dst_obj, size_t dst_offset_in_bytes, T* dst_raw, - size_t length); - - static void clone_in_heap(oop src, oop dst, size_t size); - - // - // Not in heap - // - template - static oop oop_load_not_in_heap(T* addr); - - template - static oop oop_atomic_cmpxchg_not_in_heap(T* addr, oop compare_value, oop new_value); - - template - static oop oop_atomic_xchg_not_in_heap(T* addr, oop new_value); - }; -}; - -template<> struct BarrierSet::GetName { - static const BarrierSet::Name value = BarrierSet::XBarrierSet; -}; - -template<> struct BarrierSet::GetType { - typedef ::XBarrierSet type; -}; - -#endif // SHARE_GC_X_XBARRIERSET_HPP diff --git a/src/hotspot/share/gc/x/xBarrierSet.inline.hpp b/src/hotspot/share/gc/x/xBarrierSet.inline.hpp deleted file mode 100644 index 3d92c38647d..00000000000 --- a/src/hotspot/share/gc/x/xBarrierSet.inline.hpp +++ /dev/null @@ -1,242 +0,0 @@ -/* - * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XBARRIERSET_INLINE_HPP -#define SHARE_GC_X_XBARRIERSET_INLINE_HPP - -#include "gc/x/xBarrierSet.hpp" - -#include "gc/shared/accessBarrierSupport.inline.hpp" -#include "gc/x/xBarrier.inline.hpp" -#include "utilities/debug.hpp" - -template -template -inline void XBarrierSet::AccessBarrier::verify_decorators_present() { - if ((decorators & expected) == 0) { - fatal("Using unsupported access decorators"); - } -} - -template -template -inline void XBarrierSet::AccessBarrier::verify_decorators_absent() { - if ((decorators & expected) != 0) { - fatal("Using unsupported access decorators"); - } -} - -template -inline oop* XBarrierSet::AccessBarrier::field_addr(oop base, ptrdiff_t offset) { - assert(base != nullptr, "Invalid base"); - return reinterpret_cast(reinterpret_cast((void*)base) + offset); -} - -template -template -inline oop XBarrierSet::AccessBarrier::load_barrier_on_oop_field_preloaded(T* addr, oop o) { - verify_decorators_absent(); - - if (HasDecorator::value) { - if (HasDecorator::value) { - return XBarrier::weak_load_barrier_on_oop_field_preloaded(addr, o); - } else if (HasDecorator::value) { - return XBarrier::weak_load_barrier_on_weak_oop_field_preloaded(addr, o); - } else { - assert((HasDecorator::value), "Must be"); - return XBarrier::weak_load_barrier_on_phantom_oop_field_preloaded(addr, o); - } - } else { - if (HasDecorator::value) { - return XBarrier::load_barrier_on_oop_field_preloaded(addr, o); - } else if (HasDecorator::value) { - return XBarrier::load_barrier_on_weak_oop_field_preloaded(addr, o); - } else { - assert((HasDecorator::value), "Must be"); - return XBarrier::load_barrier_on_phantom_oop_field_preloaded(addr, o); - } - } -} - -template -template -inline oop XBarrierSet::AccessBarrier::load_barrier_on_unknown_oop_field_preloaded(oop base, ptrdiff_t offset, T* addr, oop o) { - verify_decorators_present(); - - const DecoratorSet decorators_known_strength = - AccessBarrierSupport::resolve_possibly_unknown_oop_ref_strength(base, offset); - - if (HasDecorator::value) { - if (decorators_known_strength & ON_STRONG_OOP_REF) { - return XBarrier::weak_load_barrier_on_oop_field_preloaded(addr, o); - } else if (decorators_known_strength & ON_WEAK_OOP_REF) { - return XBarrier::weak_load_barrier_on_weak_oop_field_preloaded(addr, o); - } else { - assert(decorators_known_strength & ON_PHANTOM_OOP_REF, "Must be"); - return XBarrier::weak_load_barrier_on_phantom_oop_field_preloaded(addr, o); - } - } else { - if (decorators_known_strength & ON_STRONG_OOP_REF) { - return XBarrier::load_barrier_on_oop_field_preloaded(addr, o); - } else if (decorators_known_strength & ON_WEAK_OOP_REF) { - return XBarrier::load_barrier_on_weak_oop_field_preloaded(addr, o); - } else { - assert(decorators_known_strength & ON_PHANTOM_OOP_REF, "Must be"); - return XBarrier::load_barrier_on_phantom_oop_field_preloaded(addr, o); - } - } -} - -// -// In heap -// -template -template -inline oop XBarrierSet::AccessBarrier::oop_load_in_heap(T* addr) { - verify_decorators_absent(); - - const oop o = Raw::oop_load_in_heap(addr); - return load_barrier_on_oop_field_preloaded(addr, o); -} - -template -inline oop XBarrierSet::AccessBarrier::oop_load_in_heap_at(oop base, ptrdiff_t offset) { - oop* const addr = field_addr(base, offset); - const oop o = Raw::oop_load_in_heap(addr); - - if (HasDecorator::value) { - return load_barrier_on_unknown_oop_field_preloaded(base, offset, addr, o); - } - - return load_barrier_on_oop_field_preloaded(addr, o); -} - -template -template -inline oop XBarrierSet::AccessBarrier::oop_atomic_cmpxchg_in_heap(T* addr, oop compare_value, oop new_value) { - verify_decorators_present(); - verify_decorators_absent(); - - XBarrier::load_barrier_on_oop_field(addr); - return Raw::oop_atomic_cmpxchg_in_heap(addr, compare_value, new_value); -} - -template -inline oop XBarrierSet::AccessBarrier::oop_atomic_cmpxchg_in_heap_at(oop base, ptrdiff_t offset, oop compare_value, oop new_value) { - verify_decorators_present(); - verify_decorators_absent(); - - // Through Unsafe.CompareAndExchangeObject()/CompareAndSetObject() we can receive - // calls with ON_UNKNOWN_OOP_REF set. However, we treat these as ON_STRONG_OOP_REF, - // with the motivation that if you're doing Unsafe operations on a Reference.referent - // field, then you're on your own anyway. - XBarrier::load_barrier_on_oop_field(field_addr(base, offset)); - return Raw::oop_atomic_cmpxchg_in_heap_at(base, offset, compare_value, new_value); -} - -template -template -inline oop XBarrierSet::AccessBarrier::oop_atomic_xchg_in_heap(T* addr, oop new_value) { - verify_decorators_present(); - verify_decorators_absent(); - - const oop o = Raw::oop_atomic_xchg_in_heap(addr, new_value); - return XBarrier::load_barrier_on_oop(o); -} - -template -inline oop XBarrierSet::AccessBarrier::oop_atomic_xchg_in_heap_at(oop base, ptrdiff_t offset, oop new_value) { - verify_decorators_present(); - verify_decorators_absent(); - - const oop o = Raw::oop_atomic_xchg_in_heap_at(base, offset, new_value); - return XBarrier::load_barrier_on_oop(o); -} - -template -template -inline bool XBarrierSet::AccessBarrier::oop_arraycopy_in_heap(arrayOop src_obj, size_t src_offset_in_bytes, T* src_raw, - arrayOop dst_obj, size_t dst_offset_in_bytes, T* dst_raw, - size_t length) { - T* src = arrayOopDesc::obj_offset_to_raw(src_obj, src_offset_in_bytes, src_raw); - T* dst = arrayOopDesc::obj_offset_to_raw(dst_obj, dst_offset_in_bytes, dst_raw); - - if (!HasDecorator::value) { - // No check cast, bulk barrier and bulk copy - XBarrier::load_barrier_on_oop_array(src, length); - return Raw::oop_arraycopy_in_heap(nullptr, 0, src, nullptr, 0, dst, length); - } - - // Check cast and copy each elements - Klass* const dst_klass = objArrayOop(dst_obj)->element_klass(); - for (const T* const end = src + length; src < end; src++, dst++) { - const oop elem = XBarrier::load_barrier_on_oop_field(src); - if (!oopDesc::is_instanceof_or_null(elem, dst_klass)) { - // Check cast failed - return false; - } - - // Cast is safe, since we know it's never a narrowOop - *(oop*)dst = elem; - } - - return true; -} - -template -inline void XBarrierSet::AccessBarrier::clone_in_heap(oop src, oop dst, size_t size) { - XBarrier::load_barrier_on_oop_fields(src); - Raw::clone_in_heap(src, dst, size); -} - -// -// Not in heap -// -template -template -inline oop XBarrierSet::AccessBarrier::oop_load_not_in_heap(T* addr) { - verify_decorators_absent(); - - const oop o = Raw::oop_load_not_in_heap(addr); - return load_barrier_on_oop_field_preloaded(addr, o); -} - -template -template -inline oop XBarrierSet::AccessBarrier::oop_atomic_cmpxchg_not_in_heap(T* addr, oop compare_value, oop new_value) { - verify_decorators_present(); - verify_decorators_absent(); - - return Raw::oop_atomic_cmpxchg_not_in_heap(addr, compare_value, new_value); -} - -template -template -inline oop XBarrierSet::AccessBarrier::oop_atomic_xchg_not_in_heap(T* addr, oop new_value) { - verify_decorators_present(); - verify_decorators_absent(); - - return Raw::oop_atomic_xchg_not_in_heap(addr, new_value); -} - -#endif // SHARE_GC_X_XBARRIERSET_INLINE_HPP diff --git a/src/hotspot/share/gc/x/xBarrierSetAssembler.cpp b/src/hotspot/share/gc/x/xBarrierSetAssembler.cpp deleted file mode 100644 index d00c12ed291..00000000000 --- a/src/hotspot/share/gc/x/xBarrierSetAssembler.cpp +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xBarrierSetAssembler.hpp" -#include "gc/x/xThreadLocalData.hpp" -#include "runtime/javaThread.hpp" - -Address XBarrierSetAssemblerBase::address_bad_mask_from_thread(Register thread) { - return Address(thread, XThreadLocalData::address_bad_mask_offset()); -} - -Address XBarrierSetAssemblerBase::address_bad_mask_from_jni_env(Register env) { - return Address(env, XThreadLocalData::address_bad_mask_offset() - JavaThread::jni_environment_offset()); -} diff --git a/src/hotspot/share/gc/x/xBarrierSetAssembler.hpp b/src/hotspot/share/gc/x/xBarrierSetAssembler.hpp deleted file mode 100644 index 2f733465bfb..00000000000 --- a/src/hotspot/share/gc/x/xBarrierSetAssembler.hpp +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (c) 2018, 2019, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XBARRIERSETASSEMBLER_HPP -#define SHARE_GC_X_XBARRIERSETASSEMBLER_HPP - -#include "gc/shared/barrierSetAssembler.hpp" -#include "utilities/macros.hpp" - -class XBarrierSetAssemblerBase : public BarrierSetAssembler { -public: - static Address address_bad_mask_from_thread(Register thread); - static Address address_bad_mask_from_jni_env(Register env); -}; - -// Needs to be included after definition of XBarrierSetAssemblerBase -#include CPU_HEADER(gc/x/xBarrierSetAssembler) - -#endif // SHARE_GC_X_XBARRIERSETASSEMBLER_HPP diff --git a/src/hotspot/share/gc/x/xBarrierSetNMethod.cpp b/src/hotspot/share/gc/x/xBarrierSetNMethod.cpp deleted file mode 100644 index 3dc76463028..00000000000 --- a/src/hotspot/share/gc/x/xBarrierSetNMethod.cpp +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright (c) 2018, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "code/nmethod.hpp" -#include "gc/x/xBarrierSetNMethod.hpp" -#include "gc/x/xGlobals.hpp" -#include "gc/x/xLock.inline.hpp" -#include "gc/x/xNMethod.hpp" -#include "gc/x/xThreadLocalData.hpp" -#include "logging/log.hpp" -#include "runtime/threadWXSetters.inline.hpp" - -bool XBarrierSetNMethod::nmethod_entry_barrier(nmethod* nm) { - if (!is_armed(nm)) { - // Some other thread got here first and healed the oops - // and disarmed the nmethod. No need to continue. - return true; - } - - XLocker locker(XNMethod::lock_for_nmethod(nm)); - log_trace(nmethod, barrier)("Entered critical zone for %p", nm); - - if (!is_armed(nm)) { - // Some other thread managed to complete while we were - // waiting for lock. No need to continue. - return true; - } - - MACOS_AARCH64_ONLY(ThreadWXEnable wx(WXWrite, Thread::current())); - - if (nm->is_unloading()) { - // We don't need to take the lock when unlinking nmethods from - // the Method, because it is only concurrently unlinked by - // the entry barrier, which acquires the per nmethod lock. - nm->unlink_from_method(); - - // We can end up calling nmethods that are unloading - // since we clear compiled ICs lazily. Returning false - // will re-resovle the call and update the compiled IC. - return false; - } - - // Heal oops - XNMethod::nmethod_oops_barrier(nm); - - - // CodeCache unloading support - nm->mark_as_maybe_on_stack(); - - // Disarm - disarm(nm); - - return true; -} - -int* XBarrierSetNMethod::disarmed_guard_value_address() const { - return (int*)XAddressBadMaskHighOrderBitsAddr; -} - -ByteSize XBarrierSetNMethod::thread_disarmed_guard_value_offset() const { - return XThreadLocalData::nmethod_disarmed_offset(); -} diff --git a/src/hotspot/share/gc/x/xBarrierSetNMethod.hpp b/src/hotspot/share/gc/x/xBarrierSetNMethod.hpp deleted file mode 100644 index db1ee8c4e8f..00000000000 --- a/src/hotspot/share/gc/x/xBarrierSetNMethod.hpp +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XBARRIERSETNMETHOD_HPP -#define SHARE_GC_X_XBARRIERSETNMETHOD_HPP - -#include "gc/shared/barrierSetNMethod.hpp" -#include "memory/allocation.hpp" - -class nmethod; - -class XBarrierSetNMethod : public BarrierSetNMethod { -protected: - virtual bool nmethod_entry_barrier(nmethod* nm); - -public: - virtual ByteSize thread_disarmed_guard_value_offset() const; - virtual int* disarmed_guard_value_address() const; -}; - -#endif // SHARE_GC_X_XBARRIERSETNMETHOD_HPP diff --git a/src/hotspot/share/gc/x/xBarrierSetRuntime.cpp b/src/hotspot/share/gc/x/xBarrierSetRuntime.cpp deleted file mode 100644 index d87df24b9d8..00000000000 --- a/src/hotspot/share/gc/x/xBarrierSetRuntime.cpp +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Copyright (c) 2018, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xBarrier.inline.hpp" -#include "gc/x/xBarrierSetRuntime.hpp" -#include "oops/access.hpp" -#include "runtime/interfaceSupport.inline.hpp" - -JRT_LEAF(oopDesc*, XBarrierSetRuntime::load_barrier_on_oop_field_preloaded(oopDesc* o, oop* p)) - return XBarrier::load_barrier_on_oop_field_preloaded(p, o); -JRT_END - -JRT_LEAF(oopDesc*, XBarrierSetRuntime::weak_load_barrier_on_oop_field_preloaded(oopDesc* o, oop* p)) - return XBarrier::weak_load_barrier_on_oop_field_preloaded(p, o); -JRT_END - -JRT_LEAF(oopDesc*, XBarrierSetRuntime::weak_load_barrier_on_weak_oop_field_preloaded(oopDesc* o, oop* p)) - return XBarrier::weak_load_barrier_on_weak_oop_field_preloaded(p, o); -JRT_END - -JRT_LEAF(oopDesc*, XBarrierSetRuntime::weak_load_barrier_on_phantom_oop_field_preloaded(oopDesc* o, oop* p)) - return XBarrier::weak_load_barrier_on_phantom_oop_field_preloaded(p, o); -JRT_END - -JRT_LEAF(oopDesc*, XBarrierSetRuntime::load_barrier_on_weak_oop_field_preloaded(oopDesc* o, oop* p)) - return XBarrier::load_barrier_on_weak_oop_field_preloaded(p, o); -JRT_END - -JRT_LEAF(oopDesc*, XBarrierSetRuntime::load_barrier_on_phantom_oop_field_preloaded(oopDesc* o, oop* p)) - return XBarrier::load_barrier_on_phantom_oop_field_preloaded(p, o); -JRT_END - -JRT_LEAF(void, XBarrierSetRuntime::load_barrier_on_oop_array(oop* p, size_t length)) - XBarrier::load_barrier_on_oop_array(p, length); -JRT_END - -JRT_LEAF(void, XBarrierSetRuntime::clone(oopDesc* src, oopDesc* dst, size_t size)) - HeapAccess<>::clone(src, dst, size); -JRT_END - -address XBarrierSetRuntime::load_barrier_on_oop_field_preloaded_addr(DecoratorSet decorators) { - if (decorators & ON_PHANTOM_OOP_REF) { - if (decorators & AS_NO_KEEPALIVE) { - return weak_load_barrier_on_phantom_oop_field_preloaded_addr(); - } else { - return load_barrier_on_phantom_oop_field_preloaded_addr(); - } - } else if (decorators & ON_WEAK_OOP_REF) { - if (decorators & AS_NO_KEEPALIVE) { - return weak_load_barrier_on_weak_oop_field_preloaded_addr(); - } else { - return load_barrier_on_weak_oop_field_preloaded_addr(); - } - } else { - if (decorators & AS_NO_KEEPALIVE) { - return weak_load_barrier_on_oop_field_preloaded_addr(); - } else { - return load_barrier_on_oop_field_preloaded_addr(); - } - } -} - -address XBarrierSetRuntime::load_barrier_on_oop_field_preloaded_addr() { - return reinterpret_cast

    (load_barrier_on_oop_field_preloaded); -} - -address XBarrierSetRuntime::load_barrier_on_weak_oop_field_preloaded_addr() { - return reinterpret_cast
    (load_barrier_on_weak_oop_field_preloaded); -} - -address XBarrierSetRuntime::load_barrier_on_phantom_oop_field_preloaded_addr() { - return reinterpret_cast
    (load_barrier_on_phantom_oop_field_preloaded); -} - -address XBarrierSetRuntime::weak_load_barrier_on_oop_field_preloaded_addr() { - return reinterpret_cast
    (weak_load_barrier_on_oop_field_preloaded); -} - -address XBarrierSetRuntime::weak_load_barrier_on_weak_oop_field_preloaded_addr() { - return reinterpret_cast
    (weak_load_barrier_on_weak_oop_field_preloaded); -} - -address XBarrierSetRuntime::weak_load_barrier_on_phantom_oop_field_preloaded_addr() { - return reinterpret_cast
    (weak_load_barrier_on_phantom_oop_field_preloaded); -} - -address XBarrierSetRuntime::load_barrier_on_oop_array_addr() { - return reinterpret_cast
    (load_barrier_on_oop_array); -} - -address XBarrierSetRuntime::clone_addr() { - return reinterpret_cast
    (clone); -} diff --git a/src/hotspot/share/gc/x/xBarrierSetRuntime.hpp b/src/hotspot/share/gc/x/xBarrierSetRuntime.hpp deleted file mode 100644 index 6302f1ce36d..00000000000 --- a/src/hotspot/share/gc/x/xBarrierSetRuntime.hpp +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XBARRIERSETRUNTIME_HPP -#define SHARE_GC_X_XBARRIERSETRUNTIME_HPP - -#include "memory/allStatic.hpp" -#include "oops/accessDecorators.hpp" -#include "utilities/globalDefinitions.hpp" - -class oopDesc; - -class XBarrierSetRuntime : public AllStatic { -private: - static oopDesc* load_barrier_on_oop_field_preloaded(oopDesc* o, oop* p); - static oopDesc* load_barrier_on_weak_oop_field_preloaded(oopDesc* o, oop* p); - static oopDesc* load_barrier_on_phantom_oop_field_preloaded(oopDesc* o, oop* p); - static oopDesc* weak_load_barrier_on_oop_field_preloaded(oopDesc* o, oop* p); - static oopDesc* weak_load_barrier_on_weak_oop_field_preloaded(oopDesc* o, oop* p); - static oopDesc* weak_load_barrier_on_phantom_oop_field_preloaded(oopDesc* o, oop* p); - static void load_barrier_on_oop_array(oop* p, size_t length); - static void clone(oopDesc* src, oopDesc* dst, size_t size); - -public: - static address load_barrier_on_oop_field_preloaded_addr(DecoratorSet decorators); - static address load_barrier_on_oop_field_preloaded_addr(); - static address load_barrier_on_weak_oop_field_preloaded_addr(); - static address load_barrier_on_phantom_oop_field_preloaded_addr(); - static address weak_load_barrier_on_oop_field_preloaded_addr(); - static address weak_load_barrier_on_weak_oop_field_preloaded_addr(); - static address weak_load_barrier_on_phantom_oop_field_preloaded_addr(); - static address load_barrier_on_oop_array_addr(); - static address clone_addr(); -}; - -#endif // SHARE_GC_X_XBARRIERSETRUNTIME_HPP diff --git a/src/hotspot/share/gc/x/xBarrierSetStackChunk.cpp b/src/hotspot/share/gc/x/xBarrierSetStackChunk.cpp deleted file mode 100644 index 1670a00434f..00000000000 --- a/src/hotspot/share/gc/x/xBarrierSetStackChunk.cpp +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -#include "precompiled.hpp" -#include "gc/x/xBarrier.inline.hpp" -#include "gc/x/xBarrierSetStackChunk.hpp" -#include "runtime/atomic.hpp" -#include "utilities/debug.hpp" - -void XBarrierSetStackChunk::encode_gc_mode(stackChunkOop chunk, OopIterator* iterator) { - // Do nothing -} - -void XBarrierSetStackChunk::decode_gc_mode(stackChunkOop chunk, OopIterator* iterator) { - // Do nothing -} - -oop XBarrierSetStackChunk::load_oop(stackChunkOop chunk, oop* addr) { - oop obj = Atomic::load(addr); - return XBarrier::load_barrier_on_oop_field_preloaded((volatile oop*)nullptr, obj); -} - -oop XBarrierSetStackChunk::load_oop(stackChunkOop chunk, narrowOop* addr) { - ShouldNotReachHere(); - return nullptr; -} diff --git a/src/hotspot/share/gc/x/xBarrierSetStackChunk.hpp b/src/hotspot/share/gc/x/xBarrierSetStackChunk.hpp deleted file mode 100644 index 36180db7b8c..00000000000 --- a/src/hotspot/share/gc/x/xBarrierSetStackChunk.hpp +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -#ifndef SHARE_GC_X_XBARRIERSETSTACKCHUNK_HPP -#define SHARE_GC_X_XBARRIERSETSTACKCHUNK_HPP - -#include "gc/shared/barrierSetStackChunk.hpp" -#include "memory/iterator.hpp" -#include "oops/oopsHierarchy.hpp" -#include "utilities/globalDefinitions.hpp" - -class OopClosure; - -class XBarrierSetStackChunk : public BarrierSetStackChunk { -public: - virtual void encode_gc_mode(stackChunkOop chunk, OopIterator* iterator) override; - virtual void decode_gc_mode(stackChunkOop chunk, OopIterator* iterator) override; - - virtual oop load_oop(stackChunkOop chunk, oop* addr) override; - virtual oop load_oop(stackChunkOop chunk, narrowOop* addr) override; -}; - -#endif // SHARE_GC_X_XBARRIERSETSTACKCHUNK_HPP diff --git a/src/hotspot/share/gc/x/xBitField.hpp b/src/hotspot/share/gc/x/xBitField.hpp deleted file mode 100644 index f11d7cf7ef7..00000000000 --- a/src/hotspot/share/gc/x/xBitField.hpp +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XBITFIELD_HPP -#define SHARE_GC_X_XBITFIELD_HPP - -#include "memory/allStatic.hpp" -#include "utilities/debug.hpp" -#include "utilities/globalDefinitions.hpp" - -// -// Example -// ------- -// -// typedef XBitField field_word_aligned_size; -// typedef XBitField field_length; -// -// -// 6 3 3 -// 3 2 1 2 10 -// +-----------------------------------+---------------------------------+--+ -// |11111111 11111111 11111111 11111111|11111111 11111111 11111111 111111|11| -// +-----------------------------------+---------------------------------+--+ -// | | | -// | 31-2 field_length (30-bits) * | -// | | -// | 1-0 field_word_aligned_size (2-bits) * -// | -// * 63-32 Unused (32-bits) -// -// -// field_word_aligned_size::encode(16) = 2 -// field_length::encode(2342) = 9368 -// -// field_word_aligned_size::decode(9368 | 2) = 16 -// field_length::decode(9368 | 2) = 2342 -// - -template -class XBitField : public AllStatic { -private: - static const int ContainerBits = sizeof(ContainerType) * BitsPerByte; - - static_assert(FieldBits < ContainerBits, "Field too large"); - static_assert(FieldShift + FieldBits <= ContainerBits, "Field too large"); - static_assert(ValueShift + FieldBits <= ContainerBits, "Field too large"); - - static const ContainerType FieldMask = (((ContainerType)1 << FieldBits) - 1); - -public: - static ValueType decode(ContainerType container) { - return (ValueType)(((container >> FieldShift) & FieldMask) << ValueShift); - } - - static ContainerType encode(ValueType value) { - assert(((ContainerType)value & (FieldMask << ValueShift)) == (ContainerType)value, "Invalid value"); - return ((ContainerType)value >> ValueShift) << FieldShift; - } -}; - -#endif // SHARE_GC_X_XBITFIELD_HPP diff --git a/src/hotspot/share/gc/x/xBitMap.hpp b/src/hotspot/share/gc/x/xBitMap.hpp deleted file mode 100644 index c96f63b4c89..00000000000 --- a/src/hotspot/share/gc/x/xBitMap.hpp +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XBITMAP_HPP -#define SHARE_GC_X_XBITMAP_HPP - -#include "utilities/bitMap.hpp" - -class XBitMap : public CHeapBitMap { -private: - static bm_word_t bit_mask_pair(idx_t bit); - - bool par_set_bit_pair_finalizable(idx_t bit, bool& inc_live); - bool par_set_bit_pair_strong(idx_t bit, bool& inc_live); - -public: - XBitMap(idx_t size_in_bits); - - bool par_set_bit_pair(idx_t bit, bool finalizable, bool& inc_live); -}; - -#endif // SHARE_GC_X_XBITMAP_HPP diff --git a/src/hotspot/share/gc/x/xBitMap.inline.hpp b/src/hotspot/share/gc/x/xBitMap.inline.hpp deleted file mode 100644 index e35f59eeb88..00000000000 --- a/src/hotspot/share/gc/x/xBitMap.inline.hpp +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XBITMAP_INLINE_HPP -#define SHARE_GC_X_XBITMAP_INLINE_HPP - -#include "gc/x/xBitMap.hpp" - -#include "runtime/atomic.hpp" -#include "utilities/bitMap.inline.hpp" -#include "utilities/debug.hpp" - -inline XBitMap::XBitMap(idx_t size_in_bits) : - CHeapBitMap(size_in_bits, mtGC, false /* clear */) {} - -inline BitMap::bm_word_t XBitMap::bit_mask_pair(idx_t bit) { - assert(bit_in_word(bit) < BitsPerWord - 1, "Invalid bit index"); - return (bm_word_t)3 << bit_in_word(bit); -} - -inline bool XBitMap::par_set_bit_pair_finalizable(idx_t bit, bool& inc_live) { - inc_live = par_set_bit(bit); - return inc_live; -} - -inline bool XBitMap::par_set_bit_pair_strong(idx_t bit, bool& inc_live) { - verify_index(bit); - volatile bm_word_t* const addr = word_addr(bit); - const bm_word_t pair_mask = bit_mask_pair(bit); - bm_word_t old_val = *addr; - - do { - const bm_word_t new_val = old_val | pair_mask; - if (new_val == old_val) { - // Someone else beat us to it - inc_live = false; - return false; - } - const bm_word_t cur_val = Atomic::cmpxchg(addr, old_val, new_val); - if (cur_val == old_val) { - // Success - const bm_word_t marked_mask = bit_mask(bit); - inc_live = !(old_val & marked_mask); - return true; - } - - // The value changed, retry - old_val = cur_val; - } while (true); -} - -inline bool XBitMap::par_set_bit_pair(idx_t bit, bool finalizable, bool& inc_live) { - if (finalizable) { - return par_set_bit_pair_finalizable(bit, inc_live); - } else { - return par_set_bit_pair_strong(bit, inc_live); - } -} - -#endif // SHARE_GC_X_XBITMAP_INLINE_HPP diff --git a/src/hotspot/share/gc/x/xBreakpoint.cpp b/src/hotspot/share/gc/x/xBreakpoint.cpp deleted file mode 100644 index e053ceaedb9..00000000000 --- a/src/hotspot/share/gc/x/xBreakpoint.cpp +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/shared/concurrentGCBreakpoints.hpp" -#include "gc/x/xBreakpoint.hpp" -#include "runtime/mutexLocker.hpp" -#include "utilities/debug.hpp" - -bool XBreakpoint::_start_gc = false; - -void XBreakpoint::start_gc() { - MonitorLocker ml(ConcurrentGCBreakpoints::monitor()); - assert(ConcurrentGCBreakpoints::is_controlled(), "Invalid state"); - assert(!_start_gc, "Invalid state"); - _start_gc = true; - ml.notify_all(); -} - -void XBreakpoint::at_before_gc() { - MonitorLocker ml(ConcurrentGCBreakpoints::monitor(), Mutex::_no_safepoint_check_flag); - while (ConcurrentGCBreakpoints::is_controlled() && !_start_gc) { - ml.wait(); - } - _start_gc = false; - ConcurrentGCBreakpoints::notify_idle_to_active(); -} - -void XBreakpoint::at_after_gc() { - ConcurrentGCBreakpoints::notify_active_to_idle(); -} - -void XBreakpoint::at_after_marking_started() { - ConcurrentGCBreakpoints::at("AFTER MARKING STARTED"); -} - -void XBreakpoint::at_before_marking_completed() { - ConcurrentGCBreakpoints::at("BEFORE MARKING COMPLETED"); -} - -void XBreakpoint::at_after_reference_processing_started() { - ConcurrentGCBreakpoints::at("AFTER CONCURRENT REFERENCE PROCESSING STARTED"); -} diff --git a/src/hotspot/share/gc/x/xBreakpoint.hpp b/src/hotspot/share/gc/x/xBreakpoint.hpp deleted file mode 100644 index 0c0b9d3c90f..00000000000 --- a/src/hotspot/share/gc/x/xBreakpoint.hpp +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (c) 2020, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XBREAKPOINT_HPP -#define SHARE_GC_X_XBREAKPOINT_HPP - -#include "memory/allStatic.hpp" - -class XBreakpoint : public AllStatic { -private: - static bool _start_gc; - -public: - static void start_gc(); - - static void at_before_gc(); - static void at_after_gc(); - static void at_after_marking_started(); - static void at_before_marking_completed(); - static void at_after_reference_processing_started(); -}; - -#endif // SHARE_GC_X_XBREAKPOINT_HPP diff --git a/src/hotspot/share/gc/x/xCPU.cpp b/src/hotspot/share/gc/x/xCPU.cpp deleted file mode 100644 index d21d32aeb35..00000000000 --- a/src/hotspot/share/gc/x/xCPU.cpp +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/shared/gcLogPrecious.hpp" -#include "gc/x/xCPU.inline.hpp" -#include "memory/padded.inline.hpp" -#include "runtime/javaThread.hpp" -#include "runtime/os.hpp" -#include "utilities/debug.hpp" - -#define XCPU_UNKNOWN_AFFINITY ((Thread*)-1) -#define XCPU_UNKNOWN_SELF ((Thread*)-2) - -PaddedEnd* XCPU::_affinity = nullptr; -THREAD_LOCAL Thread* XCPU::_self = XCPU_UNKNOWN_SELF; -THREAD_LOCAL uint32_t XCPU::_cpu = 0; - -void XCPU::initialize() { - assert(_affinity == nullptr, "Already initialized"); - const uint32_t ncpus = count(); - - _affinity = PaddedArray::create_unfreeable(ncpus); - - for (uint32_t i = 0; i < ncpus; i++) { - _affinity[i]._thread = XCPU_UNKNOWN_AFFINITY; - } - - log_info_p(gc, init)("CPUs: %u total, %u available", - os::processor_count(), - os::initial_active_processor_count()); -} - -uint32_t XCPU::id_slow() { - // Set current thread - if (_self == XCPU_UNKNOWN_SELF) { - _self = Thread::current(); - } - - // Set current CPU - _cpu = os::processor_id(); - - // Update affinity table - _affinity[_cpu]._thread = _self; - - return _cpu; -} diff --git a/src/hotspot/share/gc/x/xCPU.hpp b/src/hotspot/share/gc/x/xCPU.hpp deleted file mode 100644 index fd931956c4b..00000000000 --- a/src/hotspot/share/gc/x/xCPU.hpp +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (c) 2015, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XCPU_HPP -#define SHARE_GC_X_XCPU_HPP - -#include "memory/allStatic.hpp" -#include "memory/padded.hpp" -#include "utilities/globalDefinitions.hpp" - -class Thread; - -class XCPU : public AllStatic { -private: - struct XCPUAffinity { - Thread* _thread; - }; - - static PaddedEnd* _affinity; - static THREAD_LOCAL Thread* _self; - static THREAD_LOCAL uint32_t _cpu; - - static uint32_t id_slow(); - -public: - static void initialize(); - - static uint32_t count(); - static uint32_t id(); -}; - -#endif // SHARE_GC_X_XCPU_HPP diff --git a/src/hotspot/share/gc/x/xCPU.inline.hpp b/src/hotspot/share/gc/x/xCPU.inline.hpp deleted file mode 100644 index 3cf5bfa96e0..00000000000 --- a/src/hotspot/share/gc/x/xCPU.inline.hpp +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XCPU_INLINE_HPP -#define SHARE_GC_X_XCPU_INLINE_HPP - -#include "gc/x/xCPU.hpp" - -#include "runtime/os.hpp" -#include "utilities/debug.hpp" - -inline uint32_t XCPU::count() { - return os::processor_count(); -} - -inline uint32_t XCPU::id() { - assert(_affinity != nullptr, "Not initialized"); - - // Fast path - if (_affinity[_cpu]._thread == _self) { - return _cpu; - } - - // Slow path - return id_slow(); -} - -#endif // SHARE_GC_X_XCPU_INLINE_HPP diff --git a/src/hotspot/share/gc/x/xCollectedHeap.cpp b/src/hotspot/share/gc/x/xCollectedHeap.cpp deleted file mode 100644 index d03b6312a67..00000000000 --- a/src/hotspot/share/gc/x/xCollectedHeap.cpp +++ /dev/null @@ -1,344 +0,0 @@ -/* - * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "classfile/classLoaderData.hpp" -#include "gc/shared/gcHeapSummary.hpp" -#include "gc/shared/gcLocker.inline.hpp" -#include "gc/shared/suspendibleThreadSet.hpp" -#include "gc/x/xCollectedHeap.hpp" -#include "gc/x/xDirector.hpp" -#include "gc/x/xDriver.hpp" -#include "gc/x/xGlobals.hpp" -#include "gc/x/xHeap.inline.hpp" -#include "gc/x/xNMethod.hpp" -#include "gc/x/xObjArrayAllocator.hpp" -#include "gc/x/xOop.inline.hpp" -#include "gc/x/xServiceability.hpp" -#include "gc/x/xStat.hpp" -#include "gc/x/xUtils.inline.hpp" -#include "memory/classLoaderMetaspace.hpp" -#include "memory/iterator.hpp" -#include "memory/metaspaceCriticalAllocation.hpp" -#include "memory/universe.hpp" -#include "oops/stackChunkOop.hpp" -#include "runtime/continuationJavaClasses.hpp" -#include "runtime/stackWatermarkSet.hpp" -#include "utilities/align.hpp" - -XCollectedHeap* XCollectedHeap::heap() { - return named_heap(CollectedHeap::Z); -} - -XCollectedHeap::XCollectedHeap() : - _barrier_set(), - _initialize(&_barrier_set), - _heap(), - _driver(new XDriver()), - _director(new XDirector(_driver)), - _stat(new XStat()), - _runtime_workers() {} - -CollectedHeap::Name XCollectedHeap::kind() const { - return CollectedHeap::Z; -} - -const char* XCollectedHeap::name() const { - return XName; -} - -jint XCollectedHeap::initialize() { - if (!_heap.is_initialized()) { - return JNI_ENOMEM; - } - - Universe::calculate_verify_data((HeapWord*)0, (HeapWord*)UINTPTR_MAX); - - return JNI_OK; -} - -void XCollectedHeap::initialize_serviceability() { - _heap.serviceability_initialize(); -} - -class XStopConcurrentGCThreadClosure : public ThreadClosure { -public: - virtual void do_thread(Thread* thread) { - if (thread->is_ConcurrentGC_thread()) { - ConcurrentGCThread::cast(thread)->stop(); - } - } -}; - -void XCollectedHeap::stop() { - XStopConcurrentGCThreadClosure cl; - gc_threads_do(&cl); -} - -size_t XCollectedHeap::max_capacity() const { - return _heap.max_capacity(); -} - -size_t XCollectedHeap::capacity() const { - return _heap.capacity(); -} - -size_t XCollectedHeap::used() const { - return _heap.used(); -} - -size_t XCollectedHeap::unused() const { - return _heap.unused(); -} - -bool XCollectedHeap::is_maximal_no_gc() const { - // Not supported - ShouldNotReachHere(); - return false; -} - -bool XCollectedHeap::is_in(const void* p) const { - return _heap.is_in((uintptr_t)p); -} - -bool XCollectedHeap::requires_barriers(stackChunkOop obj) const { - uintptr_t* cont_addr = obj->field_addr(jdk_internal_vm_StackChunk::cont_offset()); - - if (!_heap.is_allocating(cast_from_oop(obj))) { - // An object that isn't allocating, is visible from GC tracing. Such - // stack chunks require barriers. - return true; - } - - if (!XAddress::is_good_or_null(*cont_addr)) { - // If a chunk is allocated after a GC started, but before relocate start - // we can have an allocating chunk that isn't deeply good. That means that - // the contained oops might be bad and require GC barriers. - return true; - } - - // The chunk is allocating and its pointers are good. This chunk needs no - // GC barriers - return false; -} - -HeapWord* XCollectedHeap::allocate_new_tlab(size_t min_size, size_t requested_size, size_t* actual_size) { - const size_t size_in_bytes = XUtils::words_to_bytes(align_object_size(requested_size)); - const uintptr_t addr = _heap.alloc_tlab(size_in_bytes); - - if (addr != 0) { - *actual_size = requested_size; - } - - return (HeapWord*)addr; -} - -oop XCollectedHeap::array_allocate(Klass* klass, size_t size, int length, bool do_zero, TRAPS) { - XObjArrayAllocator allocator(klass, size, length, do_zero, THREAD); - return allocator.allocate(); -} - -HeapWord* XCollectedHeap::mem_allocate(size_t size, bool* gc_overhead_limit_was_exceeded) { - const size_t size_in_bytes = XUtils::words_to_bytes(align_object_size(size)); - return (HeapWord*)_heap.alloc_object(size_in_bytes); -} - -MetaWord* XCollectedHeap::satisfy_failed_metadata_allocation(ClassLoaderData* loader_data, - size_t size, - Metaspace::MetadataType mdtype) { - // Start asynchronous GC - collect(GCCause::_metadata_GC_threshold); - - // Expand and retry allocation - MetaWord* const result = loader_data->metaspace_non_null()->expand_and_allocate(size, mdtype); - if (result != nullptr) { - return result; - } - - // As a last resort, try a critical allocation, riding on a synchronous full GC - return MetaspaceCriticalAllocation::allocate(loader_data, size, mdtype); -} - -void XCollectedHeap::collect(GCCause::Cause cause) { - _driver->collect(cause); -} - -void XCollectedHeap::collect_as_vm_thread(GCCause::Cause cause) { - // These collection requests are ignored since ZGC can't run a synchronous - // GC cycle from within the VM thread. This is considered benign, since the - // only GC causes coming in here should be heap dumper and heap inspector. - // If the heap dumper or heap inspector explicitly requests a gc and the - // caller is not the VM thread a synchronous GC cycle is performed from the - // caller thread in the prologue. - assert(Thread::current()->is_VM_thread(), "Should be the VM thread"); - guarantee(cause == GCCause::_heap_dump || - cause == GCCause::_heap_inspection, "Invalid cause"); -} - -void XCollectedHeap::do_full_collection(bool clear_all_soft_refs) { - // Not supported - ShouldNotReachHere(); -} - -size_t XCollectedHeap::tlab_capacity(Thread* ignored) const { - return _heap.tlab_capacity(); -} - -size_t XCollectedHeap::tlab_used(Thread* ignored) const { - return _heap.tlab_used(); -} - -size_t XCollectedHeap::max_tlab_size() const { - return _heap.max_tlab_size(); -} - -size_t XCollectedHeap::unsafe_max_tlab_alloc(Thread* ignored) const { - return _heap.unsafe_max_tlab_alloc(); -} - -MemoryUsage XCollectedHeap::memory_usage() { - return _heap.serviceability_memory_pool()->get_memory_usage(); -} - -GrowableArray XCollectedHeap::memory_managers() { - GrowableArray memory_managers(2); - memory_managers.append(_heap.serviceability_cycle_memory_manager()); - memory_managers.append(_heap.serviceability_pause_memory_manager()); - return memory_managers; -} - -GrowableArray XCollectedHeap::memory_pools() { - GrowableArray memory_pools(1); - memory_pools.append(_heap.serviceability_memory_pool()); - return memory_pools; -} - -void XCollectedHeap::object_iterate(ObjectClosure* cl) { - _heap.object_iterate(cl, true /* visit_weaks */); -} - -ParallelObjectIteratorImpl* XCollectedHeap::parallel_object_iterator(uint nworkers) { - return _heap.parallel_object_iterator(nworkers, true /* visit_weaks */); -} - -void XCollectedHeap::keep_alive(oop obj) { - _heap.keep_alive(obj); -} - -void XCollectedHeap::register_nmethod(nmethod* nm) { - XNMethod::register_nmethod(nm); -} - -void XCollectedHeap::unregister_nmethod(nmethod* nm) { - XNMethod::unregister_nmethod(nm); -} - -void XCollectedHeap::verify_nmethod(nmethod* nm) { - // Does nothing -} - -WorkerThreads* XCollectedHeap::safepoint_workers() { - return _runtime_workers.workers(); -} - -void XCollectedHeap::gc_threads_do(ThreadClosure* tc) const { - tc->do_thread(_director); - tc->do_thread(_driver); - tc->do_thread(_stat); - _heap.threads_do(tc); - _runtime_workers.threads_do(tc); -} - -VirtualSpaceSummary XCollectedHeap::create_heap_space_summary() { - return VirtualSpaceSummary((HeapWord*)0, (HeapWord*)capacity(), (HeapWord*)max_capacity()); -} - -void XCollectedHeap::safepoint_synchronize_begin() { - StackWatermarkSet::safepoint_synchronize_begin(); - SuspendibleThreadSet::synchronize(); -} - -void XCollectedHeap::safepoint_synchronize_end() { - SuspendibleThreadSet::desynchronize(); -} - -void XCollectedHeap::pin_object(JavaThread* thread, oop obj) { - GCLocker::lock_critical(thread); -} - -void XCollectedHeap::unpin_object(JavaThread* thread, oop obj) { - GCLocker::unlock_critical(thread); -} - -void XCollectedHeap::prepare_for_verify() { - // Does nothing -} - -void XCollectedHeap::print_on(outputStream* st) const { - _heap.print_on(st); -} - -void XCollectedHeap::print_on_error(outputStream* st) const { - st->print_cr("ZGC Globals:"); - st->print_cr(" GlobalPhase: %u (%s)", XGlobalPhase, XGlobalPhaseToString()); - st->print_cr(" GlobalSeqNum: %u", XGlobalSeqNum); - st->print_cr(" Offset Max: " SIZE_FORMAT "%s (" PTR_FORMAT ")", - byte_size_in_exact_unit(XAddressOffsetMax), - exact_unit_for_byte_size(XAddressOffsetMax), - XAddressOffsetMax); - st->print_cr(" Page Size Small: " SIZE_FORMAT "M", XPageSizeSmall / M); - st->print_cr(" Page Size Medium: " SIZE_FORMAT "M", XPageSizeMedium / M); - st->cr(); - st->print_cr("ZGC Metadata Bits:"); - st->print_cr(" Good: " PTR_FORMAT, XAddressGoodMask); - st->print_cr(" Bad: " PTR_FORMAT, XAddressBadMask); - st->print_cr(" WeakBad: " PTR_FORMAT, XAddressWeakBadMask); - st->print_cr(" Marked: " PTR_FORMAT, XAddressMetadataMarked); - st->print_cr(" Remapped: " PTR_FORMAT, XAddressMetadataRemapped); - st->cr(); - CollectedHeap::print_on_error(st); -} - -void XCollectedHeap::print_extended_on(outputStream* st) const { - _heap.print_extended_on(st); -} - -void XCollectedHeap::print_tracing_info() const { - // Does nothing -} - -bool XCollectedHeap::print_location(outputStream* st, void* addr) const { - return _heap.print_location(st, (uintptr_t)addr); -} - -void XCollectedHeap::verify(VerifyOption option /* ignored */) { - _heap.verify(); -} - -bool XCollectedHeap::is_oop(oop object) const { - return _heap.is_oop(XOop::to_address(object)); -} - -bool XCollectedHeap::supports_concurrent_gc_breakpoints() const { - return true; -} diff --git a/src/hotspot/share/gc/x/xCollectedHeap.hpp b/src/hotspot/share/gc/x/xCollectedHeap.hpp deleted file mode 100644 index 250c882d15e..00000000000 --- a/src/hotspot/share/gc/x/xCollectedHeap.hpp +++ /dev/null @@ -1,127 +0,0 @@ -/* - * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XCOLLECTEDHEAP_HPP -#define SHARE_GC_X_XCOLLECTEDHEAP_HPP - -#include "gc/shared/collectedHeap.hpp" -#include "gc/shared/softRefPolicy.hpp" -#include "gc/x/xBarrierSet.hpp" -#include "gc/x/xHeap.hpp" -#include "gc/x/xInitialize.hpp" -#include "gc/x/xRuntimeWorkers.hpp" -#include "memory/metaspace.hpp" -#include "services/memoryUsage.hpp" - -class VMStructs; -class XDirector; -class XDriver; -class XStat; - -class XCollectedHeap : public CollectedHeap { - friend class ::VMStructs; - -private: - XBarrierSet _barrier_set; - XInitialize _initialize; - XHeap _heap; - XDriver* _driver; - XDirector* _director; - XStat* _stat; - XRuntimeWorkers _runtime_workers; - - HeapWord* allocate_new_tlab(size_t min_size, - size_t requested_size, - size_t* actual_size) override; - -public: - static XCollectedHeap* heap(); - - XCollectedHeap(); - Name kind() const override; - const char* name() const override; - jint initialize() override; - void initialize_serviceability() override; - void stop() override; - - size_t max_capacity() const override; - size_t capacity() const override; - size_t used() const override; - size_t unused() const override; - - bool is_maximal_no_gc() const override; - bool is_in(const void* p) const override; - bool requires_barriers(stackChunkOop obj) const override; - - oop array_allocate(Klass* klass, size_t size, int length, bool do_zero, TRAPS) override; - HeapWord* mem_allocate(size_t size, bool* gc_overhead_limit_was_exceeded) override; - MetaWord* satisfy_failed_metadata_allocation(ClassLoaderData* loader_data, - size_t size, - Metaspace::MetadataType mdtype) override; - void collect(GCCause::Cause cause) override; - void collect_as_vm_thread(GCCause::Cause cause) override; - void do_full_collection(bool clear_all_soft_refs) override; - - size_t tlab_capacity(Thread* thr) const override; - size_t tlab_used(Thread* thr) const override; - size_t max_tlab_size() const override; - size_t unsafe_max_tlab_alloc(Thread* thr) const override; - - MemoryUsage memory_usage() override; - GrowableArray memory_managers() override; - GrowableArray memory_pools() override; - - void object_iterate(ObjectClosure* cl) override; - ParallelObjectIteratorImpl* parallel_object_iterator(uint nworkers) override; - - void keep_alive(oop obj) override; - - void register_nmethod(nmethod* nm) override; - void unregister_nmethod(nmethod* nm) override; - void verify_nmethod(nmethod* nmethod) override; - - WorkerThreads* safepoint_workers() override; - - void gc_threads_do(ThreadClosure* tc) const override; - - VirtualSpaceSummary create_heap_space_summary() override; - - void safepoint_synchronize_begin() override; - void safepoint_synchronize_end() override; - - void pin_object(JavaThread* thread, oop obj) override; - void unpin_object(JavaThread* thread, oop obj) override; - - void print_on(outputStream* st) const override; - void print_on_error(outputStream* st) const override; - void print_extended_on(outputStream* st) const override; - void print_tracing_info() const override; - bool print_location(outputStream* st, void* addr) const override; - - void prepare_for_verify() override; - void verify(VerifyOption option /* ignored */) override; - bool is_oop(oop object) const override; - bool supports_concurrent_gc_breakpoints() const override; -}; - -#endif // SHARE_GC_X_XCOLLECTEDHEAP_HPP diff --git a/src/hotspot/share/gc/x/xDebug.gdb b/src/hotspot/share/gc/x/xDebug.gdb deleted file mode 100644 index 2dbf578b07b..00000000000 --- a/src/hotspot/share/gc/x/xDebug.gdb +++ /dev/null @@ -1,148 +0,0 @@ -# -# GDB functions for debugging the Z Garbage Collector -# - -printf "Loading zDebug.gdb\n" - -# Print Klass* -define zpk - printf "Klass: %s\n", (char*)((Klass*)($arg0))->_name->_body -end - -# Print oop -define zpo - set $obj = (oopDesc*)($arg0) - - printf "Oop: 0x%016llx\tState: ", (uintptr_t)$obj - if ((uintptr_t)$obj & (uintptr_t)XAddressGoodMask) - printf "Good " - if ((uintptr_t)$obj & (uintptr_t)XAddressMetadataRemapped) - printf "(Remapped)" - else - if ((uintptr_t)$obj & (uintptr_t)XAddressMetadataMarked) - printf "(Marked)" - else - printf "(Unknown)" - end - end - else - printf "Bad " - if ((uintptr_t)XAddressGoodMask & (uintptr_t)XAddressMetadataMarked) - # Should be marked - if ((uintptr_t)$obj & (uintptr_t)XAddressMetadataRemapped) - printf "(Not Marked, Remapped)" - else - printf "(Not Marked, Not Remapped)" - end - else - if ((uintptr_t)XAddressGoodMask & (uintptr_t)XAddressMetadataRemapped) - # Should be remapped - if ((uintptr_t)$obj & (uintptr_t)XAddressMetadataMarked) - printf "(Marked, Not Remapped)" - else - printf "(Not Marked, Not Remapped)" - end - else - # Unknown - printf "(Unknown)" - end - end - end - printf "\t Page: %llu\n", ((uintptr_t)$obj & XAddressOffsetMask) >> XGranuleSizeShift - x/16gx $obj - if (UseCompressedClassPointers) - set $klass = (Klass*)(void*)((uintptr_t)CompressedKlassPointers::_base +((uintptr_t)$obj->_metadata->_compressed_klass << CompressedKlassPointers::_shift)) - else - set $klass = $obj->_metadata->_klass - end - printf "Mark: 0x%016llx\tKlass: %s\n", (uintptr_t)$obj->_mark, (char*)$klass->_name->_body -end - -# Print heap page by page table index -define zpp - set $page = (XPage*)((uintptr_t)XHeap::_heap._page_table._map._map[($arg0)] & ~1) - printf "Page %p\n", $page - print *$page -end - -# Print page_table -define zpt - printf "Pagetable (first 128 slots)\n" - x/128gx XHeap::_heap._page_table._map._map -end - -# Print live map -define __zmarked - set $livemap = $arg0 - set $bit = $arg1 - set $size = $livemap._bitmap._size - set $segment = $size / XLiveMap::nsegments - set $segment_bit = 1 << $segment - - printf "Segment is " - if !($livemap._segment_live_bits & $segment_bit) - printf "NOT " - end - printf "live (segment %d)\n", $segment - - if $bit >= $size - print "Error: Bit %z out of bounds (bitmap size %z)\n", $bit, $size - else - set $word_index = $bit / 64 - set $bit_index = $bit % 64 - set $word = $livemap._bitmap._map[$word_index] - set $live_bit = $word & (1 << $bit_index) - - printf "Object is " - if $live_bit == 0 - printf "NOT " - end - printf "live (word index %d, bit index %d)\n", $word_index, $bit_index - end -end - -define zmarked - set $addr = $arg0 - set $obj = ((uintptr_t)$addr & XAddressOffsetMask) - set $page_index = $obj >> XGranuleSizeShift - set $page_entry = (uintptr_t)XHeap::_heap._page_table._map._map[$page_index] - set $page = (XPage*)($page_entry & ~1) - set $page_start = (uintptr_t)$page._virtual._start - set $page_end = (uintptr_t)$page._virtual._end - set $page_seqnum = $page._livemap._seqnum - set $global_seqnum = XGlobalSeqNum - - if $obj < $page_start || $obj >= $page_end - printf "Error: %p not in page %p (start %p, end %p)\n", $obj, $page, $page_start, $page_end - else - printf "Page is " - if $page_seqnum != $global_seqnum - printf "NOT " - end - printf "live (page %p, page seqnum %d, global seqnum %d)\n", $page, $page_seqnum, $global_seqnum - - #if $page_seqnum == $global_seqnum - set $offset = $obj - $page_start - set $bit = $offset / 8 - __zmarked $page._livemap $bit - #end - end -end - -# Print heap information -define zph - printf "Heap\n" - printf " GlobalPhase: %u\n", XGlobalPhase - printf " GlobalSeqNum: %u\n", XGlobalSeqNum - printf " Offset Max: %-15llu (0x%llx)\n", XAddressOffsetMax, XAddressOffsetMax - printf " Page Size Small: %-15llu (0x%llx)\n", XPageSizeSmall, XPageSizeSmall - printf " Page Size Medium: %-15llu (0x%llx)\n", XPageSizeMedium, XPageSizeMedium - printf "Metadata Bits\n" - printf " Good: 0x%016llx\n", XAddressGoodMask - printf " Bad: 0x%016llx\n", XAddressBadMask - printf " WeakBad: 0x%016llx\n", XAddressWeakBadMask - printf " Marked: 0x%016llx\n", XAddressMetadataMarked - printf " Remapped: 0x%016llx\n", XAddressMetadataRemapped -end - -# End of file diff --git a/src/hotspot/share/gc/x/xDirector.cpp b/src/hotspot/share/gc/x/xDirector.cpp deleted file mode 100644 index e1c69bd05b7..00000000000 --- a/src/hotspot/share/gc/x/xDirector.cpp +++ /dev/null @@ -1,406 +0,0 @@ -/* - * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/shared/gc_globals.hpp" -#include "gc/x/xDirector.hpp" -#include "gc/x/xDriver.hpp" -#include "gc/x/xHeap.inline.hpp" -#include "gc/x/xHeuristics.hpp" -#include "gc/x/xStat.hpp" -#include "logging/log.hpp" - -constexpr double one_in_1000 = 3.290527; -constexpr double sample_interval = 1.0 / XStatAllocRate::sample_hz; - -XDirector::XDirector(XDriver* driver) : - _driver(driver), - _metronome(XStatAllocRate::sample_hz) { - set_name("XDirector"); - create_and_start(); -} - -static void sample_allocation_rate() { - // Sample allocation rate. This is needed by rule_allocation_rate() - // below to estimate the time we have until we run out of memory. - const double bytes_per_second = XStatAllocRate::sample_and_reset(); - - log_debug(gc, alloc)("Allocation Rate: %.1fMB/s, Predicted: %.1fMB/s, Avg: %.1f(+/-%.1f)MB/s", - bytes_per_second / M, - XStatAllocRate::predict() / M, - XStatAllocRate::avg() / M, - XStatAllocRate::sd() / M); -} - -static XDriverRequest rule_allocation_stall() { - // Perform GC if we've observed at least one allocation stall since - // the last GC started. - if (!XHeap::heap()->has_alloc_stalled()) { - return GCCause::_no_gc; - } - - log_debug(gc, director)("Rule: Allocation Stall Observed"); - - return GCCause::_z_allocation_stall; -} - -static XDriverRequest rule_warmup() { - if (XStatCycle::is_warm()) { - // Rule disabled - return GCCause::_no_gc; - } - - // Perform GC if heap usage passes 10/20/30% and no other GC has been - // performed yet. This allows us to get some early samples of the GC - // duration, which is needed by the other rules. - const size_t soft_max_capacity = XHeap::heap()->soft_max_capacity(); - const size_t used = XHeap::heap()->used(); - const double used_threshold_percent = (XStatCycle::nwarmup_cycles() + 1) * 0.1; - const size_t used_threshold = soft_max_capacity * used_threshold_percent; - - log_debug(gc, director)("Rule: Warmup %.0f%%, Used: " SIZE_FORMAT "MB, UsedThreshold: " SIZE_FORMAT "MB", - used_threshold_percent * 100, used / M, used_threshold / M); - - if (used < used_threshold) { - return GCCause::_no_gc; - } - - return GCCause::_z_warmup; -} - -static XDriverRequest rule_timer() { - if (ZCollectionInterval <= 0) { - // Rule disabled - return GCCause::_no_gc; - } - - // Perform GC if timer has expired. - const double time_since_last_gc = XStatCycle::time_since_last(); - const double time_until_gc = ZCollectionInterval - time_since_last_gc; - - log_debug(gc, director)("Rule: Timer, Interval: %.3fs, TimeUntilGC: %.3fs", - ZCollectionInterval, time_until_gc); - - if (time_until_gc > 0) { - return GCCause::_no_gc; - } - - return GCCause::_z_timer; -} - -static double estimated_gc_workers(double serial_gc_time, double parallelizable_gc_time, double time_until_deadline) { - const double parallelizable_time_until_deadline = MAX2(time_until_deadline - serial_gc_time, 0.001); - return parallelizable_gc_time / parallelizable_time_until_deadline; -} - -static uint discrete_gc_workers(double gc_workers) { - return clamp(ceil(gc_workers), 1, ConcGCThreads); -} - -static double select_gc_workers(double serial_gc_time, double parallelizable_gc_time, double alloc_rate_sd_percent, double time_until_oom) { - // Use all workers until we're warm - if (!XStatCycle::is_warm()) { - const double not_warm_gc_workers = ConcGCThreads; - log_debug(gc, director)("Select GC Workers (Not Warm), GCWorkers: %.3f", not_warm_gc_workers); - return not_warm_gc_workers; - } - - // Calculate number of GC workers needed to avoid a long GC cycle and to avoid OOM. - const double avoid_long_gc_workers = estimated_gc_workers(serial_gc_time, parallelizable_gc_time, 10 /* seconds */); - const double avoid_oom_gc_workers = estimated_gc_workers(serial_gc_time, parallelizable_gc_time, time_until_oom); - - const double gc_workers = MAX2(avoid_long_gc_workers, avoid_oom_gc_workers); - const uint actual_gc_workers = discrete_gc_workers(gc_workers); - const uint last_gc_workers = XStatCycle::last_active_workers(); - - // More than 15% division from the average is considered unsteady - if (alloc_rate_sd_percent >= 0.15) { - const double half_gc_workers = ConcGCThreads / 2.0; - const double unsteady_gc_workers = MAX3(gc_workers, last_gc_workers, half_gc_workers); - log_debug(gc, director)("Select GC Workers (Unsteady), " - "AvoidLongGCWorkers: %.3f, AvoidOOMGCWorkers: %.3f, LastGCWorkers: %.3f, HalfGCWorkers: %.3f, GCWorkers: %.3f", - avoid_long_gc_workers, avoid_oom_gc_workers, (double)last_gc_workers, half_gc_workers, unsteady_gc_workers); - return unsteady_gc_workers; - } - - if (actual_gc_workers < last_gc_workers) { - // Before decreasing number of GC workers compared to the previous GC cycle, check if the - // next GC cycle will need to increase it again. If so, use the same number of GC workers - // that will be needed in the next cycle. - const double gc_duration_delta = (parallelizable_gc_time / actual_gc_workers) - (parallelizable_gc_time / last_gc_workers); - const double additional_time_for_allocations = XStatCycle::time_since_last() - gc_duration_delta - sample_interval; - const double next_time_until_oom = time_until_oom + additional_time_for_allocations; - const double next_avoid_oom_gc_workers = estimated_gc_workers(serial_gc_time, parallelizable_gc_time, next_time_until_oom); - - // Add 0.5 to increase friction and avoid lowering too eagerly - const double next_gc_workers = next_avoid_oom_gc_workers + 0.5; - const double try_lowering_gc_workers = clamp(next_gc_workers, actual_gc_workers, last_gc_workers); - - log_debug(gc, director)("Select GC Workers (Try Lowering), " - "AvoidLongGCWorkers: %.3f, AvoidOOMGCWorkers: %.3f, NextAvoidOOMGCWorkers: %.3f, LastGCWorkers: %.3f, GCWorkers: %.3f", - avoid_long_gc_workers, avoid_oom_gc_workers, next_avoid_oom_gc_workers, (double)last_gc_workers, try_lowering_gc_workers); - return try_lowering_gc_workers; - } - - log_debug(gc, director)("Select GC Workers (Normal), " - "AvoidLongGCWorkers: %.3f, AvoidOOMGCWorkers: %.3f, LastGCWorkers: %.3f, GCWorkers: %.3f", - avoid_long_gc_workers, avoid_oom_gc_workers, (double)last_gc_workers, gc_workers); - return gc_workers; -} - -static XDriverRequest rule_allocation_rate_dynamic() { - if (!XStatCycle::is_time_trustable()) { - // Rule disabled - return GCCause::_no_gc; - } - - // Calculate amount of free memory available. Note that we take the - // relocation headroom into account to avoid in-place relocation. - const size_t soft_max_capacity = XHeap::heap()->soft_max_capacity(); - const size_t used = XHeap::heap()->used(); - const size_t free_including_headroom = soft_max_capacity - MIN2(soft_max_capacity, used); - const size_t free = free_including_headroom - MIN2(free_including_headroom, XHeuristics::relocation_headroom()); - - // Calculate time until OOM given the max allocation rate and the amount - // of free memory. The allocation rate is a moving average and we multiply - // that with an allocation spike tolerance factor to guard against unforeseen - // phase changes in the allocate rate. We then add ~3.3 sigma to account for - // the allocation rate variance, which means the probability is 1 in 1000 - // that a sample is outside of the confidence interval. - const double alloc_rate_predict = XStatAllocRate::predict(); - const double alloc_rate_avg = XStatAllocRate::avg(); - const double alloc_rate_sd = XStatAllocRate::sd(); - const double alloc_rate_sd_percent = alloc_rate_sd / (alloc_rate_avg + 1.0); - const double alloc_rate = (MAX2(alloc_rate_predict, alloc_rate_avg) * ZAllocationSpikeTolerance) + (alloc_rate_sd * one_in_1000) + 1.0; - const double time_until_oom = (free / alloc_rate) / (1.0 + alloc_rate_sd_percent); - - // Calculate max serial/parallel times of a GC cycle. The times are - // moving averages, we add ~3.3 sigma to account for the variance. - const double serial_gc_time = XStatCycle::serial_time().davg() + (XStatCycle::serial_time().dsd() * one_in_1000); - const double parallelizable_gc_time = XStatCycle::parallelizable_time().davg() + (XStatCycle::parallelizable_time().dsd() * one_in_1000); - - // Calculate number of GC workers needed to avoid OOM. - const double gc_workers = select_gc_workers(serial_gc_time, parallelizable_gc_time, alloc_rate_sd_percent, time_until_oom); - - // Convert to a discrete number of GC workers within limits. - const uint actual_gc_workers = discrete_gc_workers(gc_workers); - - // Calculate GC duration given number of GC workers needed. - const double actual_gc_duration = serial_gc_time + (parallelizable_gc_time / actual_gc_workers); - const uint last_gc_workers = XStatCycle::last_active_workers(); - - // Calculate time until GC given the time until OOM and GC duration. - // We also subtract the sample interval, so that we don't overshoot the - // target time and end up starting the GC too late in the next interval. - const double time_until_gc = time_until_oom - actual_gc_duration - sample_interval; - - log_debug(gc, director)("Rule: Allocation Rate (Dynamic GC Workers), " - "MaxAllocRate: %.1fMB/s (+/-%.1f%%), Free: " SIZE_FORMAT "MB, GCCPUTime: %.3f, " - "GCDuration: %.3fs, TimeUntilOOM: %.3fs, TimeUntilGC: %.3fs, GCWorkers: %u -> %u", - alloc_rate / M, - alloc_rate_sd_percent * 100, - free / M, - serial_gc_time + parallelizable_gc_time, - serial_gc_time + (parallelizable_gc_time / actual_gc_workers), - time_until_oom, - time_until_gc, - last_gc_workers, - actual_gc_workers); - - if (actual_gc_workers <= last_gc_workers && time_until_gc > 0) { - return XDriverRequest(GCCause::_no_gc, actual_gc_workers); - } - - return XDriverRequest(GCCause::_z_allocation_rate, actual_gc_workers); -} - -static XDriverRequest rule_allocation_rate_static() { - if (!XStatCycle::is_time_trustable()) { - // Rule disabled - return GCCause::_no_gc; - } - - // Perform GC if the estimated max allocation rate indicates that we - // will run out of memory. The estimated max allocation rate is based - // on the moving average of the sampled allocation rate plus a safety - // margin based on variations in the allocation rate and unforeseen - // allocation spikes. - - // Calculate amount of free memory available. Note that we take the - // relocation headroom into account to avoid in-place relocation. - const size_t soft_max_capacity = XHeap::heap()->soft_max_capacity(); - const size_t used = XHeap::heap()->used(); - const size_t free_including_headroom = soft_max_capacity - MIN2(soft_max_capacity, used); - const size_t free = free_including_headroom - MIN2(free_including_headroom, XHeuristics::relocation_headroom()); - - // Calculate time until OOM given the max allocation rate and the amount - // of free memory. The allocation rate is a moving average and we multiply - // that with an allocation spike tolerance factor to guard against unforeseen - // phase changes in the allocate rate. We then add ~3.3 sigma to account for - // the allocation rate variance, which means the probability is 1 in 1000 - // that a sample is outside of the confidence interval. - const double max_alloc_rate = (XStatAllocRate::avg() * ZAllocationSpikeTolerance) + (XStatAllocRate::sd() * one_in_1000); - const double time_until_oom = free / (max_alloc_rate + 1.0); // Plus 1.0B/s to avoid division by zero - - // Calculate max serial/parallel times of a GC cycle. The times are - // moving averages, we add ~3.3 sigma to account for the variance. - const double serial_gc_time = XStatCycle::serial_time().davg() + (XStatCycle::serial_time().dsd() * one_in_1000); - const double parallelizable_gc_time = XStatCycle::parallelizable_time().davg() + (XStatCycle::parallelizable_time().dsd() * one_in_1000); - - // Calculate GC duration given number of GC workers needed. - const double gc_duration = serial_gc_time + (parallelizable_gc_time / ConcGCThreads); - - // Calculate time until GC given the time until OOM and max duration of GC. - // We also deduct the sample interval, so that we don't overshoot the target - // time and end up starting the GC too late in the next interval. - const double time_until_gc = time_until_oom - gc_duration - sample_interval; - - log_debug(gc, director)("Rule: Allocation Rate (Static GC Workers), MaxAllocRate: %.1fMB/s, Free: " SIZE_FORMAT "MB, GCDuration: %.3fs, TimeUntilGC: %.3fs", - max_alloc_rate / M, free / M, gc_duration, time_until_gc); - - if (time_until_gc > 0) { - return GCCause::_no_gc; - } - - return GCCause::_z_allocation_rate; -} - -static XDriverRequest rule_allocation_rate() { - if (UseDynamicNumberOfGCThreads) { - return rule_allocation_rate_dynamic(); - } else { - return rule_allocation_rate_static(); - } -} - -static XDriverRequest rule_high_usage() { - // Perform GC if the amount of free memory is 5% or less. This is a preventive - // meassure in the case where the application has a very low allocation rate, - // such that the allocation rate rule doesn't trigger, but the amount of free - // memory is still slowly but surely heading towards zero. In this situation, - // we start a GC cycle to avoid a potential allocation stall later. - - // Calculate amount of free memory available. Note that we take the - // relocation headroom into account to avoid in-place relocation. - const size_t soft_max_capacity = XHeap::heap()->soft_max_capacity(); - const size_t used = XHeap::heap()->used(); - const size_t free_including_headroom = soft_max_capacity - MIN2(soft_max_capacity, used); - const size_t free = free_including_headroom - MIN2(free_including_headroom, XHeuristics::relocation_headroom()); - const double free_percent = percent_of(free, soft_max_capacity); - - log_debug(gc, director)("Rule: High Usage, Free: " SIZE_FORMAT "MB(%.1f%%)", - free / M, free_percent); - - if (free_percent > 5.0) { - return GCCause::_no_gc; - } - - return GCCause::_z_high_usage; -} - -static XDriverRequest rule_proactive() { - if (!ZProactive || !XStatCycle::is_warm()) { - // Rule disabled - return GCCause::_no_gc; - } - - // Perform GC if the impact of doing so, in terms of application throughput - // reduction, is considered acceptable. This rule allows us to keep the heap - // size down and allow reference processing to happen even when we have a lot - // of free space on the heap. - - // Only consider doing a proactive GC if the heap usage has grown by at least - // 10% of the max capacity since the previous GC, or more than 5 minutes has - // passed since the previous GC. This helps avoid superfluous GCs when running - // applications with very low allocation rate. - const size_t used_after_last_gc = XStatHeap::used_at_relocate_end(); - const size_t used_increase_threshold = XHeap::heap()->soft_max_capacity() * 0.10; // 10% - const size_t used_threshold = used_after_last_gc + used_increase_threshold; - const size_t used = XHeap::heap()->used(); - const double time_since_last_gc = XStatCycle::time_since_last(); - const double time_since_last_gc_threshold = 5 * 60; // 5 minutes - if (used < used_threshold && time_since_last_gc < time_since_last_gc_threshold) { - // Don't even consider doing a proactive GC - log_debug(gc, director)("Rule: Proactive, UsedUntilEnabled: " SIZE_FORMAT "MB, TimeUntilEnabled: %.3fs", - (used_threshold - used) / M, - time_since_last_gc_threshold - time_since_last_gc); - return GCCause::_no_gc; - } - - const double assumed_throughput_drop_during_gc = 0.50; // 50% - const double acceptable_throughput_drop = 0.01; // 1% - const double serial_gc_time = XStatCycle::serial_time().davg() + (XStatCycle::serial_time().dsd() * one_in_1000); - const double parallelizable_gc_time = XStatCycle::parallelizable_time().davg() + (XStatCycle::parallelizable_time().dsd() * one_in_1000); - const double gc_duration = serial_gc_time + (parallelizable_gc_time / ConcGCThreads); - const double acceptable_gc_interval = gc_duration * ((assumed_throughput_drop_during_gc / acceptable_throughput_drop) - 1.0); - const double time_until_gc = acceptable_gc_interval - time_since_last_gc; - - log_debug(gc, director)("Rule: Proactive, AcceptableGCInterval: %.3fs, TimeSinceLastGC: %.3fs, TimeUntilGC: %.3fs", - acceptable_gc_interval, time_since_last_gc, time_until_gc); - - if (time_until_gc > 0) { - return GCCause::_no_gc; - } - - return GCCause::_z_proactive; -} - -static XDriverRequest make_gc_decision() { - // List of rules - using XDirectorRule = XDriverRequest (*)(); - const XDirectorRule rules[] = { - rule_allocation_stall, - rule_warmup, - rule_timer, - rule_allocation_rate, - rule_high_usage, - rule_proactive, - }; - - // Execute rules - for (size_t i = 0; i < ARRAY_SIZE(rules); i++) { - const XDriverRequest request = rules[i](); - if (request.cause() != GCCause::_no_gc) { - return request; - } - } - - return GCCause::_no_gc; -} - -void XDirector::run_service() { - // Main loop - while (_metronome.wait_for_tick()) { - sample_allocation_rate(); - if (!_driver->is_busy()) { - const XDriverRequest request = make_gc_decision(); - if (request.cause() != GCCause::_no_gc) { - _driver->collect(request); - } - } - } -} - -void XDirector::stop_service() { - _metronome.stop(); -} diff --git a/src/hotspot/share/gc/x/xDirector.hpp b/src/hotspot/share/gc/x/xDirector.hpp deleted file mode 100644 index eacce20e8c9..00000000000 --- a/src/hotspot/share/gc/x/xDirector.hpp +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XDIRECTOR_HPP -#define SHARE_GC_X_XDIRECTOR_HPP - -#include "gc/shared/concurrentGCThread.hpp" -#include "gc/x/xMetronome.hpp" - -class XDriver; - -class XDirector : public ConcurrentGCThread { -private: - XDriver* const _driver; - XMetronome _metronome; - -protected: - virtual void run_service(); - virtual void stop_service(); - -public: - XDirector(XDriver* driver); -}; - -#endif // SHARE_GC_X_XDIRECTOR_HPP diff --git a/src/hotspot/share/gc/x/xDriver.cpp b/src/hotspot/share/gc/x/xDriver.cpp deleted file mode 100644 index 3e6fd03134e..00000000000 --- a/src/hotspot/share/gc/x/xDriver.cpp +++ /dev/null @@ -1,518 +0,0 @@ -/* - * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/shared/gcId.hpp" -#include "gc/shared/gcLocker.hpp" -#include "gc/shared/gcVMOperations.hpp" -#include "gc/shared/isGCActiveMark.hpp" -#include "gc/x/xAbort.inline.hpp" -#include "gc/x/xBreakpoint.hpp" -#include "gc/x/xCollectedHeap.hpp" -#include "gc/x/xDriver.hpp" -#include "gc/x/xHeap.inline.hpp" -#include "gc/x/xMessagePort.inline.hpp" -#include "gc/x/xServiceability.hpp" -#include "gc/x/xStat.hpp" -#include "gc/x/xVerify.hpp" -#include "interpreter/oopMapCache.hpp" -#include "logging/log.hpp" -#include "memory/universe.hpp" -#include "runtime/threads.hpp" -#include "runtime/vmOperations.hpp" -#include "runtime/vmThread.hpp" - -static const XStatPhaseCycle XPhaseCycle("Garbage Collection Cycle"); -static const XStatPhasePause XPhasePauseMarkStart("Pause Mark Start"); -static const XStatPhaseConcurrent XPhaseConcurrentMark("Concurrent Mark"); -static const XStatPhaseConcurrent XPhaseConcurrentMarkContinue("Concurrent Mark Continue"); -static const XStatPhaseConcurrent XPhaseConcurrentMarkFree("Concurrent Mark Free"); -static const XStatPhasePause XPhasePauseMarkEnd("Pause Mark End"); -static const XStatPhaseConcurrent XPhaseConcurrentProcessNonStrongReferences("Concurrent Process Non-Strong References"); -static const XStatPhaseConcurrent XPhaseConcurrentResetRelocationSet("Concurrent Reset Relocation Set"); -static const XStatPhaseConcurrent XPhaseConcurrentSelectRelocationSet("Concurrent Select Relocation Set"); -static const XStatPhasePause XPhasePauseRelocateStart("Pause Relocate Start"); -static const XStatPhaseConcurrent XPhaseConcurrentRelocated("Concurrent Relocate"); -static const XStatCriticalPhase XCriticalPhaseGCLockerStall("GC Locker Stall", false /* verbose */); -static const XStatSampler XSamplerJavaThreads("System", "Java Threads", XStatUnitThreads); - -XDriverRequest::XDriverRequest() : - XDriverRequest(GCCause::_no_gc) {} - -XDriverRequest::XDriverRequest(GCCause::Cause cause) : - XDriverRequest(cause, ConcGCThreads) {} - -XDriverRequest::XDriverRequest(GCCause::Cause cause, uint nworkers) : - _cause(cause), - _nworkers(nworkers) {} - -bool XDriverRequest::operator==(const XDriverRequest& other) const { - return _cause == other._cause; -} - -GCCause::Cause XDriverRequest::cause() const { - return _cause; -} - -uint XDriverRequest::nworkers() const { - return _nworkers; -} - -class VM_XOperation : public VM_Operation { -private: - const uint _gc_id; - bool _gc_locked; - bool _success; - -public: - VM_XOperation() : - _gc_id(GCId::current()), - _gc_locked(false), - _success(false) {} - - virtual bool needs_inactive_gc_locker() const { - // An inactive GC locker is needed in operations where we change the bad - // mask or move objects. Changing the bad mask will invalidate all oops, - // which makes it conceptually the same thing as moving all objects. - return false; - } - - virtual bool skip_thread_oop_barriers() const { - return true; - } - - virtual bool do_operation() = 0; - - virtual bool doit_prologue() { - Heap_lock->lock(); - return true; - } - - virtual void doit() { - // Abort if GC locker state is incompatible - if (needs_inactive_gc_locker() && GCLocker::check_active_before_gc()) { - _gc_locked = true; - return; - } - - // Setup GC id and active marker - GCIdMark gc_id_mark(_gc_id); - IsSTWGCActiveMark gc_active_mark; - - // Verify before operation - XVerify::before_zoperation(); - - // Execute operation - _success = do_operation(); - - // Update statistics - XStatSample(XSamplerJavaThreads, Threads::number_of_threads()); - } - - virtual void doit_epilogue() { - Heap_lock->unlock(); - - // GC thread root traversal likely used OopMapCache a lot, which - // might have created lots of old entries. Trigger the cleanup now. - OopMapCache::try_trigger_cleanup(); - } - - bool gc_locked() const { - return _gc_locked; - } - - bool success() const { - return _success; - } -}; - -class VM_XMarkStart : public VM_XOperation { -public: - virtual VMOp_Type type() const { - return VMOp_XMarkStart; - } - - virtual bool needs_inactive_gc_locker() const { - return true; - } - - virtual bool do_operation() { - XStatTimer timer(XPhasePauseMarkStart); - XServiceabilityPauseTracer tracer; - - XCollectedHeap::heap()->increment_total_collections(true /* full */); - - XHeap::heap()->mark_start(); - return true; - } -}; - -class VM_XMarkEnd : public VM_XOperation { -public: - virtual VMOp_Type type() const { - return VMOp_XMarkEnd; - } - - virtual bool do_operation() { - XStatTimer timer(XPhasePauseMarkEnd); - XServiceabilityPauseTracer tracer; - return XHeap::heap()->mark_end(); - } -}; - -class VM_XRelocateStart : public VM_XOperation { -public: - virtual VMOp_Type type() const { - return VMOp_XRelocateStart; - } - - virtual bool needs_inactive_gc_locker() const { - return true; - } - - virtual bool do_operation() { - XStatTimer timer(XPhasePauseRelocateStart); - XServiceabilityPauseTracer tracer; - XHeap::heap()->relocate_start(); - return true; - } -}; - -class VM_XVerify : public VM_Operation { -public: - virtual VMOp_Type type() const { - return VMOp_XVerify; - } - - virtual bool skip_thread_oop_barriers() const { - return true; - } - - virtual void doit() { - XVerify::after_weak_processing(); - } -}; - -XDriver::XDriver() : - _gc_cycle_port(), - _gc_locker_port() { - set_name("XDriver"); - create_and_start(); -} - -bool XDriver::is_busy() const { - return _gc_cycle_port.is_busy(); -} - -void XDriver::collect(const XDriverRequest& request) { - switch (request.cause()) { - case GCCause::_heap_dump: - case GCCause::_heap_inspection: - case GCCause::_wb_young_gc: - case GCCause::_wb_full_gc: - case GCCause::_dcmd_gc_run: - case GCCause::_java_lang_system_gc: - case GCCause::_full_gc_alot: - case GCCause::_scavenge_alot: - case GCCause::_jvmti_force_gc: - case GCCause::_metadata_GC_clear_soft_refs: - case GCCause::_codecache_GC_aggressive: - // Start synchronous GC - _gc_cycle_port.send_sync(request); - break; - - case GCCause::_z_timer: - case GCCause::_z_warmup: - case GCCause::_z_allocation_rate: - case GCCause::_z_allocation_stall: - case GCCause::_z_proactive: - case GCCause::_z_high_usage: - case GCCause::_codecache_GC_threshold: - case GCCause::_metadata_GC_threshold: - // Start asynchronous GC - _gc_cycle_port.send_async(request); - break; - - case GCCause::_gc_locker: - // Restart VM operation previously blocked by the GC locker - _gc_locker_port.signal(); - break; - - case GCCause::_wb_breakpoint: - XBreakpoint::start_gc(); - _gc_cycle_port.send_async(request); - break; - - default: - // Other causes not supported - fatal("Unsupported GC cause (%s)", GCCause::to_string(request.cause())); - break; - } -} - -template -bool XDriver::pause() { - for (;;) { - T op; - VMThread::execute(&op); - if (op.gc_locked()) { - // Wait for GC to become unlocked and restart the VM operation - XStatTimer timer(XCriticalPhaseGCLockerStall); - _gc_locker_port.wait(); - continue; - } - - // Notify VM operation completed - _gc_locker_port.ack(); - - return op.success(); - } -} - -void XDriver::pause_mark_start() { - pause(); -} - -void XDriver::concurrent_mark() { - XStatTimer timer(XPhaseConcurrentMark); - XBreakpoint::at_after_marking_started(); - XHeap::heap()->mark(true /* initial */); - XBreakpoint::at_before_marking_completed(); -} - -bool XDriver::pause_mark_end() { - return pause(); -} - -void XDriver::concurrent_mark_continue() { - XStatTimer timer(XPhaseConcurrentMarkContinue); - XHeap::heap()->mark(false /* initial */); -} - -void XDriver::concurrent_mark_free() { - XStatTimer timer(XPhaseConcurrentMarkFree); - XHeap::heap()->mark_free(); -} - -void XDriver::concurrent_process_non_strong_references() { - XStatTimer timer(XPhaseConcurrentProcessNonStrongReferences); - XBreakpoint::at_after_reference_processing_started(); - XHeap::heap()->process_non_strong_references(); -} - -void XDriver::concurrent_reset_relocation_set() { - XStatTimer timer(XPhaseConcurrentResetRelocationSet); - XHeap::heap()->reset_relocation_set(); -} - -void XDriver::pause_verify() { - if (ZVerifyRoots || ZVerifyObjects) { - VM_XVerify op; - VMThread::execute(&op); - } -} - -void XDriver::concurrent_select_relocation_set() { - XStatTimer timer(XPhaseConcurrentSelectRelocationSet); - XHeap::heap()->select_relocation_set(); -} - -void XDriver::pause_relocate_start() { - pause(); -} - -void XDriver::concurrent_relocate() { - XStatTimer timer(XPhaseConcurrentRelocated); - XHeap::heap()->relocate(); -} - -void XDriver::check_out_of_memory() { - XHeap::heap()->check_out_of_memory(); -} - -static bool should_clear_soft_references(const XDriverRequest& request) { - // Clear soft references if implied by the GC cause - if (request.cause() == GCCause::_wb_full_gc || - request.cause() == GCCause::_metadata_GC_clear_soft_refs || - request.cause() == GCCause::_z_allocation_stall) { - // Clear - return true; - } - - // Don't clear - return false; -} - -static uint select_active_worker_threads_dynamic(const XDriverRequest& request) { - // Use requested number of worker threads - return request.nworkers(); -} - -static uint select_active_worker_threads_static(const XDriverRequest& request) { - const GCCause::Cause cause = request.cause(); - const uint nworkers = request.nworkers(); - - // Boost number of worker threads if implied by the GC cause - if (cause == GCCause::_wb_full_gc || - cause == GCCause::_java_lang_system_gc || - cause == GCCause::_metadata_GC_clear_soft_refs || - cause == GCCause::_z_allocation_stall) { - // Boost - const uint boosted_nworkers = MAX2(nworkers, ParallelGCThreads); - return boosted_nworkers; - } - - // Use requested number of worker threads - return nworkers; -} - -static uint select_active_worker_threads(const XDriverRequest& request) { - if (UseDynamicNumberOfGCThreads) { - return select_active_worker_threads_dynamic(request); - } else { - return select_active_worker_threads_static(request); - } -} - -class XDriverGCScope : public StackObj { -private: - GCIdMark _gc_id; - GCCause::Cause _gc_cause; - GCCauseSetter _gc_cause_setter; - XStatTimer _timer; - XServiceabilityCycleTracer _tracer; - -public: - XDriverGCScope(const XDriverRequest& request) : - _gc_id(), - _gc_cause(request.cause()), - _gc_cause_setter(XCollectedHeap::heap(), _gc_cause), - _timer(XPhaseCycle), - _tracer() { - // Update statistics - XStatCycle::at_start(); - - // Set up soft reference policy - const bool clear = should_clear_soft_references(request); - XHeap::heap()->set_soft_reference_policy(clear); - - // Select number of worker threads to use - const uint nworkers = select_active_worker_threads(request); - XHeap::heap()->set_active_workers(nworkers); - } - - ~XDriverGCScope() { - // Update statistics - XStatCycle::at_end(_gc_cause, XHeap::heap()->active_workers()); - - // Update data used by soft reference policy - Universe::heap()->update_capacity_and_used_at_gc(); - - // Signal that we have completed a visit to all live objects - Universe::heap()->record_whole_heap_examined_timestamp(); - } -}; - -// Macro to execute a termination check after a concurrent phase. Note -// that it's important that the termination check comes after the call -// to the function f, since we can't abort between pause_relocate_start() -// and concurrent_relocate(). We need to let concurrent_relocate() call -// abort_page() on the remaining entries in the relocation set. -#define concurrent(f) \ - do { \ - concurrent_##f(); \ - if (should_terminate()) { \ - return; \ - } \ - } while (false) - -void XDriver::gc(const XDriverRequest& request) { - XDriverGCScope scope(request); - - // Phase 1: Pause Mark Start - pause_mark_start(); - - // Phase 2: Concurrent Mark - concurrent(mark); - - // Phase 3: Pause Mark End - while (!pause_mark_end()) { - // Phase 3.5: Concurrent Mark Continue - concurrent(mark_continue); - } - - // Phase 4: Concurrent Mark Free - concurrent(mark_free); - - // Phase 5: Concurrent Process Non-Strong References - concurrent(process_non_strong_references); - - // Phase 6: Concurrent Reset Relocation Set - concurrent(reset_relocation_set); - - // Phase 7: Pause Verify - pause_verify(); - - // Phase 8: Concurrent Select Relocation Set - concurrent(select_relocation_set); - - // Phase 9: Pause Relocate Start - pause_relocate_start(); - - // Phase 10: Concurrent Relocate - concurrent(relocate); -} - -void XDriver::run_service() { - // Main loop - while (!should_terminate()) { - // Wait for GC request - const XDriverRequest request = _gc_cycle_port.receive(); - if (request.cause() == GCCause::_no_gc) { - continue; - } - - XBreakpoint::at_before_gc(); - - // Run GC - gc(request); - - if (should_terminate()) { - // Abort - break; - } - - // Notify GC completed - _gc_cycle_port.ack(); - - // Check for out of memory condition - check_out_of_memory(); - - XBreakpoint::at_after_gc(); - } -} - -void XDriver::stop_service() { - XAbort::abort(); - _gc_cycle_port.send_async(GCCause::_no_gc); -} diff --git a/src/hotspot/share/gc/x/xDriver.hpp b/src/hotspot/share/gc/x/xDriver.hpp deleted file mode 100644 index 3803b699b85..00000000000 --- a/src/hotspot/share/gc/x/xDriver.hpp +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XDRIVER_HPP -#define SHARE_GC_X_XDRIVER_HPP - -#include "gc/shared/concurrentGCThread.hpp" -#include "gc/shared/gcCause.hpp" -#include "gc/x/xMessagePort.hpp" - -class VM_XOperation; - -class XDriverRequest { -private: - GCCause::Cause _cause; - uint _nworkers; - -public: - XDriverRequest(); - XDriverRequest(GCCause::Cause cause); - XDriverRequest(GCCause::Cause cause, uint nworkers); - - bool operator==(const XDriverRequest& other) const; - - GCCause::Cause cause() const; - uint nworkers() const; -}; - -class XDriver : public ConcurrentGCThread { -private: - XMessagePort _gc_cycle_port; - XRendezvousPort _gc_locker_port; - - template bool pause(); - - void pause_mark_start(); - void concurrent_mark(); - bool pause_mark_end(); - void concurrent_mark_continue(); - void concurrent_mark_free(); - void concurrent_process_non_strong_references(); - void concurrent_reset_relocation_set(); - void pause_verify(); - void concurrent_select_relocation_set(); - void pause_relocate_start(); - void concurrent_relocate(); - - void check_out_of_memory(); - - void gc(const XDriverRequest& request); - -protected: - virtual void run_service(); - virtual void stop_service(); - -public: - XDriver(); - - bool is_busy() const; - - void collect(const XDriverRequest& request); -}; - -#endif // SHARE_GC_X_XDRIVER_HPP diff --git a/src/hotspot/share/gc/x/xErrno.cpp b/src/hotspot/share/gc/x/xErrno.cpp deleted file mode 100644 index 64951bc47ab..00000000000 --- a/src/hotspot/share/gc/x/xErrno.cpp +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xErrno.hpp" -#include "runtime/os.hpp" - -#include -#include - -XErrno::XErrno() : - _error(errno) {} - -XErrno::XErrno(int error) : - _error(error) {} - -XErrno::operator bool() const { - return _error != 0; -} - -bool XErrno::operator==(int error) const { - return _error == error; -} - -bool XErrno::operator!=(int error) const { - return _error != error; -} - -const char* XErrno::to_string() const { - return os::strerror(_error); -} diff --git a/src/hotspot/share/gc/x/xErrno.hpp b/src/hotspot/share/gc/x/xErrno.hpp deleted file mode 100644 index eb72d43da3f..00000000000 --- a/src/hotspot/share/gc/x/xErrno.hpp +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XERRNO_HPP -#define SHARE_GC_X_XERRNO_HPP - -#include "memory/allocation.hpp" - -class XErrno : public StackObj { -private: - const int _error; - -public: - XErrno(); - XErrno(int error); - - operator bool() const; - bool operator==(int error) const; - bool operator!=(int error) const; - const char* to_string() const; -}; - -#endif // SHARE_GC_X_XERRNO_HPP diff --git a/src/hotspot/share/gc/x/xForwarding.cpp b/src/hotspot/share/gc/x/xForwarding.cpp deleted file mode 100644 index aa0cd4dff0b..00000000000 --- a/src/hotspot/share/gc/x/xForwarding.cpp +++ /dev/null @@ -1,210 +0,0 @@ -/* - * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xAddress.inline.hpp" -#include "gc/x/xForwarding.inline.hpp" -#include "gc/x/xStat.hpp" -#include "gc/x/xUtils.inline.hpp" -#include "utilities/align.hpp" - -// -// Reference count states: -// -// * If the reference count is zero, it will never change again. -// -// * If the reference count is positive, it can be both retained -// (increased) and released (decreased). -// -// * If the reference count is negative, is can only be released -// (increased). A negative reference count means that one or more -// threads are waiting for one or more other threads to release -// their references. -// -// The reference lock is used for waiting until the reference -// count has become zero (released) or negative one (claimed). -// - -static const XStatCriticalPhase XCriticalPhaseRelocationStall("Relocation Stall"); - -bool XForwarding::retain_page() { - for (;;) { - const int32_t ref_count = Atomic::load_acquire(&_ref_count); - - if (ref_count == 0) { - // Released - return false; - } - - if (ref_count < 0) { - // Claimed - const bool success = wait_page_released(); - assert(success, "Should always succeed"); - return false; - } - - if (Atomic::cmpxchg(&_ref_count, ref_count, ref_count + 1) == ref_count) { - // Retained - return true; - } - } -} - -XPage* XForwarding::claim_page() { - for (;;) { - const int32_t ref_count = Atomic::load(&_ref_count); - assert(ref_count > 0, "Invalid state"); - - // Invert reference count - if (Atomic::cmpxchg(&_ref_count, ref_count, -ref_count) != ref_count) { - continue; - } - - // If the previous reference count was 1, then we just changed it to -1, - // and we have now claimed the page. Otherwise we wait until it is claimed. - if (ref_count != 1) { - XLocker locker(&_ref_lock); - while (Atomic::load_acquire(&_ref_count) != -1) { - _ref_lock.wait(); - } - } - - return _page; - } -} - -void XForwarding::release_page() { - for (;;) { - const int32_t ref_count = Atomic::load(&_ref_count); - assert(ref_count != 0, "Invalid state"); - - if (ref_count > 0) { - // Decrement reference count - if (Atomic::cmpxchg(&_ref_count, ref_count, ref_count - 1) != ref_count) { - continue; - } - - // If the previous reference count was 1, then we just decremented - // it to 0 and we should signal that the page is now released. - if (ref_count == 1) { - // Notify released - XLocker locker(&_ref_lock); - _ref_lock.notify_all(); - } - } else { - // Increment reference count - if (Atomic::cmpxchg(&_ref_count, ref_count, ref_count + 1) != ref_count) { - continue; - } - - // If the previous reference count was -2 or -1, then we just incremented it - // to -1 or 0, and we should signal the that page is now claimed or released. - if (ref_count == -2 || ref_count == -1) { - // Notify claimed or released - XLocker locker(&_ref_lock); - _ref_lock.notify_all(); - } - } - - return; - } -} - -bool XForwarding::wait_page_released() const { - if (Atomic::load_acquire(&_ref_count) != 0) { - XStatTimer timer(XCriticalPhaseRelocationStall); - XLocker locker(&_ref_lock); - while (Atomic::load_acquire(&_ref_count) != 0) { - if (_ref_abort) { - return false; - } - - _ref_lock.wait(); - } - } - - return true; -} - -XPage* XForwarding::detach_page() { - // Wait until released - if (Atomic::load_acquire(&_ref_count) != 0) { - XLocker locker(&_ref_lock); - while (Atomic::load_acquire(&_ref_count) != 0) { - _ref_lock.wait(); - } - } - - // Detach and return page - XPage* const page = _page; - _page = nullptr; - return page; -} - -void XForwarding::abort_page() { - XLocker locker(&_ref_lock); - assert(Atomic::load(&_ref_count) > 0, "Invalid state"); - assert(!_ref_abort, "Invalid state"); - _ref_abort = true; - _ref_lock.notify_all(); -} - -void XForwarding::verify() const { - guarantee(_ref_count != 0, "Invalid reference count"); - guarantee(_page != nullptr, "Invalid page"); - - uint32_t live_objects = 0; - size_t live_bytes = 0; - - for (XForwardingCursor i = 0; i < _entries.length(); i++) { - const XForwardingEntry entry = at(&i); - if (!entry.populated()) { - // Skip empty entries - continue; - } - - // Check from index - guarantee(entry.from_index() < _page->object_max_count(), "Invalid from index"); - - // Check for duplicates - for (XForwardingCursor j = i + 1; j < _entries.length(); j++) { - const XForwardingEntry other = at(&j); - if (!other.populated()) { - // Skip empty entries - continue; - } - - guarantee(entry.from_index() != other.from_index(), "Duplicate from"); - guarantee(entry.to_offset() != other.to_offset(), "Duplicate to"); - } - - const uintptr_t to_addr = XAddress::good(entry.to_offset()); - const size_t size = XUtils::object_size(to_addr); - const size_t aligned_size = align_up(size, _page->object_alignment()); - live_bytes += aligned_size; - live_objects++; - } - - // Verify number of live objects and bytes - _page->verify_live(live_objects, live_bytes); -} diff --git a/src/hotspot/share/gc/x/xForwarding.hpp b/src/hotspot/share/gc/x/xForwarding.hpp deleted file mode 100644 index a6185e23ced..00000000000 --- a/src/hotspot/share/gc/x/xForwarding.hpp +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XFORWARDING_HPP -#define SHARE_GC_X_XFORWARDING_HPP - -#include "gc/x/xAttachedArray.hpp" -#include "gc/x/xForwardingEntry.hpp" -#include "gc/x/xLock.hpp" -#include "gc/x/xVirtualMemory.hpp" - -class ObjectClosure; -class VMStructs; -class XForwardingAllocator; -class XPage; - -typedef size_t XForwardingCursor; - -class XForwarding { - friend class ::VMStructs; - friend class XForwardingTest; - -private: - typedef XAttachedArray AttachedArray; - - const XVirtualMemory _virtual; - const size_t _object_alignment_shift; - const AttachedArray _entries; - XPage* _page; - mutable XConditionLock _ref_lock; - volatile int32_t _ref_count; - bool _ref_abort; - bool _in_place; - - XForwardingEntry* entries() const; - XForwardingEntry at(XForwardingCursor* cursor) const; - XForwardingEntry first(uintptr_t from_index, XForwardingCursor* cursor) const; - XForwardingEntry next(XForwardingCursor* cursor) const; - - XForwarding(XPage* page, size_t nentries); - -public: - static uint32_t nentries(const XPage* page); - static XForwarding* alloc(XForwardingAllocator* allocator, XPage* page); - - uint8_t type() const; - uintptr_t start() const; - size_t size() const; - size_t object_alignment_shift() const; - void object_iterate(ObjectClosure *cl); - - bool retain_page(); - XPage* claim_page(); - void release_page(); - bool wait_page_released() const; - XPage* detach_page(); - void abort_page(); - - void set_in_place(); - bool in_place() const; - - XForwardingEntry find(uintptr_t from_index, XForwardingCursor* cursor) const; - uintptr_t insert(uintptr_t from_index, uintptr_t to_offset, XForwardingCursor* cursor); - - void verify() const; -}; - -#endif // SHARE_GC_X_XFORWARDING_HPP diff --git a/src/hotspot/share/gc/x/xForwarding.inline.hpp b/src/hotspot/share/gc/x/xForwarding.inline.hpp deleted file mode 100644 index 257109f3de9..00000000000 --- a/src/hotspot/share/gc/x/xForwarding.inline.hpp +++ /dev/null @@ -1,163 +0,0 @@ -/* - * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XFORWARDING_INLINE_HPP -#define SHARE_GC_X_XFORWARDING_INLINE_HPP - -#include "gc/x/xForwarding.hpp" - -#include "gc/x/xAttachedArray.inline.hpp" -#include "gc/x/xForwardingAllocator.inline.hpp" -#include "gc/x/xHash.inline.hpp" -#include "gc/x/xHeap.hpp" -#include "gc/x/xLock.inline.hpp" -#include "gc/x/xPage.inline.hpp" -#include "gc/x/xVirtualMemory.inline.hpp" -#include "runtime/atomic.hpp" -#include "utilities/debug.hpp" -#include "utilities/powerOfTwo.hpp" - -inline uint32_t XForwarding::nentries(const XPage* page) { - // The number returned by the function is used to size the hash table of - // forwarding entries for this page. This hash table uses linear probing. - // The size of the table must be a power of two to allow for quick and - // inexpensive indexing/masking. The table is also sized to have a load - // factor of 50%, i.e. sized to have double the number of entries actually - // inserted, to allow for good lookup/insert performance. - return round_up_power_of_2(page->live_objects() * 2); -} - -inline XForwarding* XForwarding::alloc(XForwardingAllocator* allocator, XPage* page) { - const size_t nentries = XForwarding::nentries(page); - void* const addr = AttachedArray::alloc(allocator, nentries); - return ::new (addr) XForwarding(page, nentries); -} - -inline XForwarding::XForwarding(XPage* page, size_t nentries) : - _virtual(page->virtual_memory()), - _object_alignment_shift(page->object_alignment_shift()), - _entries(nentries), - _page(page), - _ref_lock(), - _ref_count(1), - _ref_abort(false), - _in_place(false) {} - -inline uint8_t XForwarding::type() const { - return _page->type(); -} - -inline uintptr_t XForwarding::start() const { - return _virtual.start(); -} - -inline size_t XForwarding::size() const { - return _virtual.size(); -} - -inline size_t XForwarding::object_alignment_shift() const { - return _object_alignment_shift; -} - -inline void XForwarding::object_iterate(ObjectClosure *cl) { - return _page->object_iterate(cl); -} - -inline void XForwarding::set_in_place() { - _in_place = true; -} - -inline bool XForwarding::in_place() const { - return _in_place; -} - -inline XForwardingEntry* XForwarding::entries() const { - return _entries(this); -} - -inline XForwardingEntry XForwarding::at(XForwardingCursor* cursor) const { - // Load acquire for correctness with regards to - // accesses to the contents of the forwarded object. - return Atomic::load_acquire(entries() + *cursor); -} - -inline XForwardingEntry XForwarding::first(uintptr_t from_index, XForwardingCursor* cursor) const { - const size_t mask = _entries.length() - 1; - const size_t hash = XHash::uint32_to_uint32((uint32_t)from_index); - *cursor = hash & mask; - return at(cursor); -} - -inline XForwardingEntry XForwarding::next(XForwardingCursor* cursor) const { - const size_t mask = _entries.length() - 1; - *cursor = (*cursor + 1) & mask; - return at(cursor); -} - -inline XForwardingEntry XForwarding::find(uintptr_t from_index, XForwardingCursor* cursor) const { - // Reading entries in the table races with the atomic CAS done for - // insertion into the table. This is safe because each entry is at - // most updated once (from zero to something else). - XForwardingEntry entry = first(from_index, cursor); - while (entry.populated()) { - if (entry.from_index() == from_index) { - // Match found, return matching entry - return entry; - } - - entry = next(cursor); - } - - // Match not found, return empty entry - return entry; -} - -inline uintptr_t XForwarding::insert(uintptr_t from_index, uintptr_t to_offset, XForwardingCursor* cursor) { - const XForwardingEntry new_entry(from_index, to_offset); - const XForwardingEntry old_entry; // Empty - - // Make sure that object copy is finished - // before forwarding table installation - OrderAccess::release(); - - for (;;) { - const XForwardingEntry prev_entry = Atomic::cmpxchg(entries() + *cursor, old_entry, new_entry, memory_order_relaxed); - if (!prev_entry.populated()) { - // Success - return to_offset; - } - - // Find next empty or matching entry - XForwardingEntry entry = at(cursor); - while (entry.populated()) { - if (entry.from_index() == from_index) { - // Match found, return already inserted address - return entry.to_offset(); - } - - entry = next(cursor); - } - } -} - -#endif // SHARE_GC_X_XFORWARDING_INLINE_HPP diff --git a/src/hotspot/share/gc/x/xForwardingAllocator.cpp b/src/hotspot/share/gc/x/xForwardingAllocator.cpp deleted file mode 100644 index c8368fde5f5..00000000000 --- a/src/hotspot/share/gc/x/xForwardingAllocator.cpp +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xForwardingAllocator.hpp" -#include "memory/allocation.inline.hpp" - -XForwardingAllocator::XForwardingAllocator() : - _start(nullptr), - _end(nullptr), - _top(nullptr) {} - -XForwardingAllocator::~XForwardingAllocator() { - FREE_C_HEAP_ARRAY(char, _start); -} - -void XForwardingAllocator::reset(size_t size) { - _start = _top = REALLOC_C_HEAP_ARRAY(char, _start, size, mtGC); - _end = _start + size; -} diff --git a/src/hotspot/share/gc/x/xForwardingAllocator.hpp b/src/hotspot/share/gc/x/xForwardingAllocator.hpp deleted file mode 100644 index 75495944e8a..00000000000 --- a/src/hotspot/share/gc/x/xForwardingAllocator.hpp +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XFORWARDINGALLOCATOR_HPP -#define SHARE_GC_X_XFORWARDINGALLOCATOR_HPP - -#include "utilities/globalDefinitions.hpp" - -class XForwardingAllocator { -private: - char* _start; - char* _end; - char* _top; - -public: - XForwardingAllocator(); - ~XForwardingAllocator(); - - void reset(size_t size); - size_t size() const; - bool is_full() const; - - void* alloc(size_t size); -}; - -#endif // SHARE_GC_X_XFORWARDINGALLOCATOR_HPP diff --git a/src/hotspot/share/gc/x/xForwardingAllocator.inline.hpp b/src/hotspot/share/gc/x/xForwardingAllocator.inline.hpp deleted file mode 100644 index e70986f5206..00000000000 --- a/src/hotspot/share/gc/x/xForwardingAllocator.inline.hpp +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (c) 2020, 2023, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XFORWARDINGALLOCATOR_INLINE_HPP -#define SHARE_GC_X_XFORWARDINGALLOCATOR_INLINE_HPP - -#include "gc/x/xForwardingAllocator.hpp" - -#include "runtime/atomic.hpp" -#include "utilities/debug.hpp" - -inline size_t XForwardingAllocator::size() const { - return _end - _start; -} - -inline bool XForwardingAllocator::is_full() const { - return _top == _end; -} - -inline void* XForwardingAllocator::alloc(size_t size) { - char* const addr = Atomic::fetch_then_add(&_top, size); - assert(addr + size <= _end, "Allocation should never fail"); - return addr; -} - -#endif // SHARE_GC_X_XFORWARDINGALLOCATOR_INLINE_HPP diff --git a/src/hotspot/share/gc/x/xForwardingEntry.hpp b/src/hotspot/share/gc/x/xForwardingEntry.hpp deleted file mode 100644 index 3f8846abbaa..00000000000 --- a/src/hotspot/share/gc/x/xForwardingEntry.hpp +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright (c) 2017, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XFORWARDINGENTRY_HPP -#define SHARE_GC_X_XFORWARDINGENTRY_HPP - -#include "gc/x/xBitField.hpp" -#include "memory/allocation.hpp" -#include "metaprogramming/primitiveConversions.hpp" - -#include - -class VMStructs; - -// -// Forwarding entry layout -// ----------------------- -// -// 6 4 4 -// 3 6 5 1 0 -// +--------------------+--------------------------------------------------+-+ -// |11111111 11111111 11|111111 11111111 11111111 11111111 11111111 1111111|1| -// +--------------------+--------------------------------------------------+-+ -// | | | -// | | 0-0 Populated Flag (1-bits) * -// | | -// | * 45-1 To Object Offset (45-bits) -// | -// * 63-46 From Object Index (18-bits) -// - -class XForwardingEntry { - friend struct PrimitiveConversions::Translate; - friend class ::VMStructs; - -private: - typedef XBitField field_populated; - typedef XBitField field_to_offset; - typedef XBitField field_from_index; - - uint64_t _entry; - -public: - XForwardingEntry() : - _entry(0) {} - - XForwardingEntry(size_t from_index, size_t to_offset) : - _entry(field_populated::encode(true) | - field_to_offset::encode(to_offset) | - field_from_index::encode(from_index)) {} - - bool populated() const { - return field_populated::decode(_entry); - } - - size_t to_offset() const { - return field_to_offset::decode(_entry); - } - - size_t from_index() const { - return field_from_index::decode(_entry); - } -}; - -// Needed to allow atomic operations on XForwardingEntry -template <> -struct PrimitiveConversions::Translate : public std::true_type { - typedef XForwardingEntry Value; - typedef uint64_t Decayed; - - static Decayed decay(Value v) { - return v._entry; - } - - static Value recover(Decayed d) { - XForwardingEntry entry; - entry._entry = d; - return entry; - } -}; - -#endif // SHARE_GC_X_XFORWARDINGENTRY_HPP diff --git a/src/hotspot/share/gc/x/xForwardingTable.hpp b/src/hotspot/share/gc/x/xForwardingTable.hpp deleted file mode 100644 index 1f110292be5..00000000000 --- a/src/hotspot/share/gc/x/xForwardingTable.hpp +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XFORWARDINGTABLE_HPP -#define SHARE_GC_X_XFORWARDINGTABLE_HPP - -#include "gc/x/xGranuleMap.hpp" - -class VMStructs; -class XForwarding; - -class XForwardingTable { - friend class ::VMStructs; - -private: - XGranuleMap _map; - -public: - XForwardingTable(); - - XForwarding* get(uintptr_t addr) const; - - void insert(XForwarding* forwarding); - void remove(XForwarding* forwarding); -}; - -#endif // SHARE_GC_X_XFORWARDINGTABLE_HPP diff --git a/src/hotspot/share/gc/x/xForwardingTable.inline.hpp b/src/hotspot/share/gc/x/xForwardingTable.inline.hpp deleted file mode 100644 index b65b68da4e2..00000000000 --- a/src/hotspot/share/gc/x/xForwardingTable.inline.hpp +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (c) 2019, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XFORWARDINGTABLE_INLINE_HPP -#define SHARE_GC_X_XFORWARDINGTABLE_INLINE_HPP - -#include "gc/x/xForwardingTable.hpp" - -#include "gc/x/xAddress.inline.hpp" -#include "gc/x/xForwarding.inline.hpp" -#include "gc/x/xGlobals.hpp" -#include "gc/x/xGranuleMap.inline.hpp" -#include "utilities/debug.hpp" - -inline XForwardingTable::XForwardingTable() : - _map(XAddressOffsetMax) {} - -inline XForwarding* XForwardingTable::get(uintptr_t addr) const { - assert(!XAddress::is_null(addr), "Invalid address"); - return _map.get(XAddress::offset(addr)); -} - -inline void XForwardingTable::insert(XForwarding* forwarding) { - const uintptr_t offset = forwarding->start(); - const size_t size = forwarding->size(); - - assert(_map.get(offset) == nullptr, "Invalid entry"); - _map.put(offset, size, forwarding); -} - -inline void XForwardingTable::remove(XForwarding* forwarding) { - const uintptr_t offset = forwarding->start(); - const size_t size = forwarding->size(); - - assert(_map.get(offset) == forwarding, "Invalid entry"); - _map.put(offset, size, nullptr); -} - -#endif // SHARE_GC_X_XFORWARDINGTABLE_INLINE_HPP diff --git a/src/hotspot/share/gc/x/xFuture.hpp b/src/hotspot/share/gc/x/xFuture.hpp deleted file mode 100644 index 931f4b58f12..00000000000 --- a/src/hotspot/share/gc/x/xFuture.hpp +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XFUTURE_HPP -#define SHARE_GC_X_XFUTURE_HPP - -#include "memory/allocation.hpp" -#include "runtime/semaphore.hpp" - -template -class XFuture { -private: - Semaphore _sema; - T _value; - -public: - XFuture(); - - void set(T value); - T get(); -}; - -#endif // SHARE_GC_X_XFUTURE_HPP diff --git a/src/hotspot/share/gc/x/xFuture.inline.hpp b/src/hotspot/share/gc/x/xFuture.inline.hpp deleted file mode 100644 index d3dba3b7151..00000000000 --- a/src/hotspot/share/gc/x/xFuture.inline.hpp +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XFUTURE_INLINE_HPP -#define SHARE_GC_X_XFUTURE_INLINE_HPP - -#include "gc/x/xFuture.hpp" - -#include "runtime/javaThread.hpp" -#include "runtime/semaphore.inline.hpp" - -template -inline XFuture::XFuture() : - _value() {} - -template -inline void XFuture::set(T value) { - // Set value - _value = value; - - // Notify waiter - _sema.signal(); -} - -template -inline T XFuture::get() { - // Wait for notification - Thread* const thread = Thread::current(); - if (thread->is_Java_thread()) { - _sema.wait_with_safepoint_check(JavaThread::cast(thread)); - } else { - _sema.wait(); - } - - // Return value - return _value; -} - -#endif // SHARE_GC_X_XFUTURE_INLINE_HPP diff --git a/src/hotspot/share/gc/x/xGlobals.cpp b/src/hotspot/share/gc/x/xGlobals.cpp deleted file mode 100644 index b247565bc01..00000000000 --- a/src/hotspot/share/gc/x/xGlobals.cpp +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xGlobals.hpp" - -uint32_t XGlobalPhase = XPhaseRelocate; -uint32_t XGlobalSeqNum = 1; - -size_t XPageSizeMediumShift; -size_t XPageSizeMedium; - -size_t XObjectSizeLimitMedium; - -const int& XObjectAlignmentSmallShift = LogMinObjAlignmentInBytes; -int XObjectAlignmentMediumShift; - -const int& XObjectAlignmentSmall = MinObjAlignmentInBytes; -int XObjectAlignmentMedium; - -uintptr_t XAddressGoodMask; -uintptr_t XAddressBadMask; -uintptr_t XAddressWeakBadMask; - -static uint32_t* XAddressCalculateBadMaskHighOrderBitsAddr() { - const uintptr_t addr = reinterpret_cast(&XAddressBadMask); - return reinterpret_cast(addr + XAddressBadMaskHighOrderBitsOffset); -} - -uint32_t* XAddressBadMaskHighOrderBitsAddr = XAddressCalculateBadMaskHighOrderBitsAddr(); - -size_t XAddressOffsetBits; -uintptr_t XAddressOffsetMask; -size_t XAddressOffsetMax; - -size_t XAddressMetadataShift; -uintptr_t XAddressMetadataMask; - -uintptr_t XAddressMetadataMarked; -uintptr_t XAddressMetadataMarked0; -uintptr_t XAddressMetadataMarked1; -uintptr_t XAddressMetadataRemapped; -uintptr_t XAddressMetadataFinalizable; - -const char* XGlobalPhaseToString() { - switch (XGlobalPhase) { - case XPhaseMark: - return "Mark"; - - case XPhaseMarkCompleted: - return "MarkCompleted"; - - case XPhaseRelocate: - return "Relocate"; - - default: - return "Unknown"; - } -} diff --git a/src/hotspot/share/gc/x/xGlobals.hpp b/src/hotspot/share/gc/x/xGlobals.hpp deleted file mode 100644 index 662a502a79f..00000000000 --- a/src/hotspot/share/gc/x/xGlobals.hpp +++ /dev/null @@ -1,158 +0,0 @@ -/* - * Copyright (c) 2015, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XGLOBALS_HPP -#define SHARE_GC_X_XGLOBALS_HPP - -#include "utilities/globalDefinitions.hpp" -#include "utilities/macros.hpp" -#include CPU_HEADER(gc/x/xGlobals) - -// Collector name -const char* const XName = "The Z Garbage Collector"; - -// Global phase state -extern uint32_t XGlobalPhase; -const uint32_t XPhaseMark = 0; -const uint32_t XPhaseMarkCompleted = 1; -const uint32_t XPhaseRelocate = 2; -const char* XGlobalPhaseToString(); - -// Global sequence number -extern uint32_t XGlobalSeqNum; - -// Granule shift/size -const size_t XGranuleSizeShift = 21; // 2MB -const size_t XGranuleSize = (size_t)1 << XGranuleSizeShift; - -// Number of heap views -const size_t XHeapViews = XPlatformHeapViews; - -// Virtual memory to physical memory ratio -const size_t XVirtualToPhysicalRatio = 16; // 16:1 - -// Page types -const uint8_t XPageTypeSmall = 0; -const uint8_t XPageTypeMedium = 1; -const uint8_t XPageTypeLarge = 2; - -// Page size shifts -const size_t XPageSizeSmallShift = XGranuleSizeShift; -extern size_t XPageSizeMediumShift; - -// Page sizes -const size_t XPageSizeSmall = (size_t)1 << XPageSizeSmallShift; -extern size_t XPageSizeMedium; - -// Object size limits -const size_t XObjectSizeLimitSmall = XPageSizeSmall / 8; // 12.5% max waste -extern size_t XObjectSizeLimitMedium; - -// Object alignment shifts -extern const int& XObjectAlignmentSmallShift; -extern int XObjectAlignmentMediumShift; -const int XObjectAlignmentLargeShift = XGranuleSizeShift; - -// Object alignments -extern const int& XObjectAlignmentSmall; -extern int XObjectAlignmentMedium; -const int XObjectAlignmentLarge = 1 << XObjectAlignmentLargeShift; - -// -// Good/Bad mask states -// -------------------- -// -// GoodMask BadMask WeakGoodMask WeakBadMask -// -------------------------------------------------------------- -// Marked0 001 110 101 010 -// Marked1 010 101 110 001 -// Remapped 100 011 100 011 -// - -// Good/bad masks -extern uintptr_t XAddressGoodMask; -extern uintptr_t XAddressBadMask; -extern uintptr_t XAddressWeakBadMask; - -// The bad mask is 64 bit. Its high order 32 bits contain all possible value combinations -// that this mask will have. Therefore, the memory where the 32 high order bits are stored, -// can be used as a 32 bit GC epoch counter, that has a different bit pattern every time -// the bad mask is flipped. This provides a pointer to said 32 bits. -extern uint32_t* XAddressBadMaskHighOrderBitsAddr; -const int XAddressBadMaskHighOrderBitsOffset = LITTLE_ENDIAN_ONLY(4) BIG_ENDIAN_ONLY(0); - -// Pointer part of address -extern size_t XAddressOffsetBits; -const size_t XAddressOffsetShift = 0; -extern uintptr_t XAddressOffsetMask; -extern size_t XAddressOffsetMax; - -// Metadata part of address -const size_t XAddressMetadataBits = 4; -extern size_t XAddressMetadataShift; -extern uintptr_t XAddressMetadataMask; - -// Metadata types -extern uintptr_t XAddressMetadataMarked; -extern uintptr_t XAddressMetadataMarked0; -extern uintptr_t XAddressMetadataMarked1; -extern uintptr_t XAddressMetadataRemapped; -extern uintptr_t XAddressMetadataFinalizable; - -// Cache line size -const size_t XCacheLineSize = XPlatformCacheLineSize; -#define XCACHE_ALIGNED ATTRIBUTE_ALIGNED(XCacheLineSize) - -// Mark stack space -extern uintptr_t XMarkStackSpaceStart; -const size_t XMarkStackSpaceExpandSize = (size_t)1 << 25; // 32M - -// Mark stack and magazine sizes -const size_t XMarkStackSizeShift = 11; // 2K -const size_t XMarkStackSize = (size_t)1 << XMarkStackSizeShift; -const size_t XMarkStackHeaderSize = (size_t)1 << 4; // 16B -const size_t XMarkStackSlots = (XMarkStackSize - XMarkStackHeaderSize) / sizeof(uintptr_t); -const size_t XMarkStackMagazineSize = (size_t)1 << 15; // 32K -const size_t XMarkStackMagazineSlots = (XMarkStackMagazineSize / XMarkStackSize) - 1; - -// Mark stripe size -const size_t XMarkStripeShift = XGranuleSizeShift; - -// Max number of mark stripes -const size_t XMarkStripesMax = 16; // Must be a power of two - -// Mark cache size -const size_t XMarkCacheSize = 1024; // Must be a power of two - -// Partial array minimum size -const size_t XMarkPartialArrayMinSizeShift = 12; // 4K -const size_t XMarkPartialArrayMinSize = (size_t)1 << XMarkPartialArrayMinSizeShift; - -// Max number of proactive/terminate flush attempts -const size_t XMarkProactiveFlushMax = 10; -const size_t XMarkTerminateFlushMax = 3; - -// Try complete mark timeout -const uint64_t XMarkCompleteTimeout = 200; // us - -#endif // SHARE_GC_X_XGLOBALS_HPP diff --git a/src/hotspot/share/gc/x/xGranuleMap.hpp b/src/hotspot/share/gc/x/xGranuleMap.hpp deleted file mode 100644 index a9447e1469c..00000000000 --- a/src/hotspot/share/gc/x/xGranuleMap.hpp +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright (c) 2017, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XGRANULEMAP_HPP -#define SHARE_GC_X_XGRANULEMAP_HPP - -#include "gc/x/xArray.hpp" -#include "memory/allocation.hpp" - -class VMStructs; - -template -class XGranuleMap { - friend class ::VMStructs; - template friend class XGranuleMapIterator; - -private: - const size_t _size; - T* const _map; - - size_t index_for_offset(uintptr_t offset) const; - -public: - XGranuleMap(size_t max_offset); - ~XGranuleMap(); - - T get(uintptr_t offset) const; - void put(uintptr_t offset, T value); - void put(uintptr_t offset, size_t size, T value); - - T get_acquire(uintptr_t offset) const; - void release_put(uintptr_t offset, T value); -}; - -template -class XGranuleMapIterator : public XArrayIteratorImpl { -public: - XGranuleMapIterator(const XGranuleMap* granule_map); -}; - -#endif // SHARE_GC_X_XGRANULEMAP_HPP diff --git a/src/hotspot/share/gc/x/xGranuleMap.inline.hpp b/src/hotspot/share/gc/x/xGranuleMap.inline.hpp deleted file mode 100644 index 95ef5ee2b2d..00000000000 --- a/src/hotspot/share/gc/x/xGranuleMap.inline.hpp +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright (c) 2017, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XGRANULEMAP_INLINE_HPP -#define SHARE_GC_X_XGRANULEMAP_INLINE_HPP - -#include "gc/x/xGranuleMap.hpp" - -#include "gc/x/xArray.inline.hpp" -#include "gc/x/xGlobals.hpp" -#include "memory/allocation.inline.hpp" -#include "runtime/atomic.hpp" -#include "utilities/align.hpp" -#include "utilities/debug.hpp" - -template -inline XGranuleMap::XGranuleMap(size_t max_offset) : - _size(max_offset >> XGranuleSizeShift), - _map(MmapArrayAllocator::allocate(_size, mtGC)) { - assert(is_aligned(max_offset, XGranuleSize), "Misaligned"); -} - -template -inline XGranuleMap::~XGranuleMap() { - MmapArrayAllocator::free(_map, _size); -} - -template -inline size_t XGranuleMap::index_for_offset(uintptr_t offset) const { - const size_t index = offset >> XGranuleSizeShift; - assert(index < _size, "Invalid index"); - return index; -} - -template -inline T XGranuleMap::get(uintptr_t offset) const { - const size_t index = index_for_offset(offset); - return _map[index]; -} - -template -inline void XGranuleMap::put(uintptr_t offset, T value) { - const size_t index = index_for_offset(offset); - _map[index] = value; -} - -template -inline void XGranuleMap::put(uintptr_t offset, size_t size, T value) { - assert(is_aligned(size, XGranuleSize), "Misaligned"); - - const size_t start_index = index_for_offset(offset); - const size_t end_index = start_index + (size >> XGranuleSizeShift); - for (size_t index = start_index; index < end_index; index++) { - _map[index] = value; - } -} - -template -inline T XGranuleMap::get_acquire(uintptr_t offset) const { - const size_t index = index_for_offset(offset); - return Atomic::load_acquire(_map + index); -} - -template -inline void XGranuleMap::release_put(uintptr_t offset, T value) { - const size_t index = index_for_offset(offset); - Atomic::release_store(_map + index, value); -} - -template -inline XGranuleMapIterator::XGranuleMapIterator(const XGranuleMap* granule_map) : - XArrayIteratorImpl(granule_map->_map, granule_map->_size) {} - -#endif // SHARE_GC_X_XGRANULEMAP_INLINE_HPP diff --git a/src/hotspot/share/gc/x/xHash.hpp b/src/hotspot/share/gc/x/xHash.hpp deleted file mode 100644 index 253f4d231c1..00000000000 --- a/src/hotspot/share/gc/x/xHash.hpp +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (c) 2015, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XHASH_HPP -#define SHARE_GC_X_XHASH_HPP - -#include "memory/allStatic.hpp" -#include "utilities/globalDefinitions.hpp" - -class XHash : public AllStatic { -public: - static uint32_t uint32_to_uint32(uint32_t key); - static uint32_t address_to_uint32(uintptr_t key); -}; - -#endif // SHARE_GC_X_XHASH_HPP diff --git a/src/hotspot/share/gc/x/xHash.inline.hpp b/src/hotspot/share/gc/x/xHash.inline.hpp deleted file mode 100644 index 5ff5f540821..00000000000 --- a/src/hotspot/share/gc/x/xHash.inline.hpp +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -/* - * This file is available under and governed by the GNU General Public - * License version 2 only, as published by the Free Software Foundation. - * However, the following notice accompanied the original version of this - * file: - * - * (C) 2009 by Remo Dentato (rdentato@gmail.com) - * - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * * 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. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * http://opensource.org/licenses/bsd-license.php - */ - -#ifndef SHARE_GC_X_XHASH_INLINE_HPP -#define SHARE_GC_X_XHASH_INLINE_HPP - -#include "gc/x/xHash.hpp" - -#include "gc/x/xAddress.inline.hpp" - -inline uint32_t XHash::uint32_to_uint32(uint32_t key) { - key = ~key + (key << 15); - key = key ^ (key >> 12); - key = key + (key << 2); - key = key ^ (key >> 4); - key = key * 2057; - key = key ^ (key >> 16); - return key; -} - -inline uint32_t XHash::address_to_uint32(uintptr_t key) { - return uint32_to_uint32((uint32_t)(key >> 3)); -} - -#endif // SHARE_GC_X_XHASH_INLINE_HPP diff --git a/src/hotspot/share/gc/x/xHeap.cpp b/src/hotspot/share/gc/x/xHeap.cpp deleted file mode 100644 index 3872db785f3..00000000000 --- a/src/hotspot/share/gc/x/xHeap.cpp +++ /dev/null @@ -1,541 +0,0 @@ -/* - * Copyright (c) 2015, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "classfile/classLoaderDataGraph.hpp" -#include "gc/shared/gc_globals.hpp" -#include "gc/shared/classUnloadingContext.hpp" -#include "gc/shared/locationPrinter.hpp" -#include "gc/shared/tlab_globals.hpp" -#include "gc/x/xAddress.inline.hpp" -#include "gc/x/xArray.inline.hpp" -#include "gc/x/xGlobals.hpp" -#include "gc/x/xHeap.inline.hpp" -#include "gc/x/xHeapIterator.hpp" -#include "gc/x/xHeuristics.hpp" -#include "gc/x/xMark.inline.hpp" -#include "gc/x/xPage.inline.hpp" -#include "gc/x/xPageTable.inline.hpp" -#include "gc/x/xRelocationSet.inline.hpp" -#include "gc/x/xRelocationSetSelector.inline.hpp" -#include "gc/x/xResurrection.hpp" -#include "gc/x/xStat.hpp" -#include "gc/x/xThread.inline.hpp" -#include "gc/x/xVerify.hpp" -#include "gc/x/xWorkers.hpp" -#include "logging/log.hpp" -#include "memory/iterator.hpp" -#include "memory/metaspaceUtils.hpp" -#include "memory/resourceArea.hpp" -#include "prims/jvmtiTagMap.hpp" -#include "runtime/handshake.hpp" -#include "runtime/javaThread.hpp" -#include "runtime/safepoint.hpp" -#include "utilities/debug.hpp" - -static const XStatCounter XCounterUndoPageAllocation("Memory", "Undo Page Allocation", XStatUnitOpsPerSecond); -static const XStatCounter XCounterOutOfMemory("Memory", "Out Of Memory", XStatUnitOpsPerSecond); - -XHeap* XHeap::_heap = nullptr; - -XHeap::XHeap() : - _workers(), - _object_allocator(), - _page_allocator(&_workers, MinHeapSize, InitialHeapSize, MaxHeapSize), - _page_table(), - _forwarding_table(), - _mark(&_workers, &_page_table), - _reference_processor(&_workers), - _weak_roots_processor(&_workers), - _relocate(&_workers), - _relocation_set(&_workers), - _unload(&_workers), - _serviceability(min_capacity(), max_capacity()) { - // Install global heap instance - assert(_heap == nullptr, "Already initialized"); - _heap = this; - - // Update statistics - XStatHeap::set_at_initialize(_page_allocator.stats()); -} - -bool XHeap::is_initialized() const { - return _page_allocator.is_initialized() && _mark.is_initialized(); -} - -size_t XHeap::min_capacity() const { - return _page_allocator.min_capacity(); -} - -size_t XHeap::max_capacity() const { - return _page_allocator.max_capacity(); -} - -size_t XHeap::soft_max_capacity() const { - return _page_allocator.soft_max_capacity(); -} - -size_t XHeap::capacity() const { - return _page_allocator.capacity(); -} - -size_t XHeap::used() const { - return _page_allocator.used(); -} - -size_t XHeap::unused() const { - return _page_allocator.unused(); -} - -size_t XHeap::tlab_capacity() const { - return capacity(); -} - -size_t XHeap::tlab_used() const { - return _object_allocator.used(); -} - -size_t XHeap::max_tlab_size() const { - return XObjectSizeLimitSmall; -} - -size_t XHeap::unsafe_max_tlab_alloc() const { - size_t size = _object_allocator.remaining(); - - if (size < MinTLABSize) { - // The remaining space in the allocator is not enough to - // fit the smallest possible TLAB. This means that the next - // TLAB allocation will force the allocator to get a new - // backing page anyway, which in turn means that we can then - // fit the largest possible TLAB. - size = max_tlab_size(); - } - - return MIN2(size, max_tlab_size()); -} - -bool XHeap::is_in(uintptr_t addr) const { - // An address is considered to be "in the heap" if it points into - // the allocated part of a page, regardless of which heap view is - // used. Note that an address with the finalizable metadata bit set - // is not pointing into a heap view, and therefore not considered - // to be "in the heap". - - if (XAddress::is_in(addr)) { - const XPage* const page = _page_table.get(addr); - if (page != nullptr) { - return page->is_in(addr); - } - } - - return false; -} - -uint XHeap::active_workers() const { - return _workers.active_workers(); -} - -void XHeap::set_active_workers(uint nworkers) { - _workers.set_active_workers(nworkers); -} - -void XHeap::threads_do(ThreadClosure* tc) const { - _page_allocator.threads_do(tc); - _workers.threads_do(tc); -} - -void XHeap::out_of_memory() { - ResourceMark rm; - - XStatInc(XCounterOutOfMemory); - log_info(gc)("Out Of Memory (%s)", Thread::current()->name()); -} - -XPage* XHeap::alloc_page(uint8_t type, size_t size, XAllocationFlags flags) { - XPage* const page = _page_allocator.alloc_page(type, size, flags); - if (page != nullptr) { - // Insert page table entry - _page_table.insert(page); - } - - return page; -} - -void XHeap::undo_alloc_page(XPage* page) { - assert(page->is_allocating(), "Invalid page state"); - - XStatInc(XCounterUndoPageAllocation); - log_trace(gc)("Undo page allocation, thread: " PTR_FORMAT " (%s), page: " PTR_FORMAT ", size: " SIZE_FORMAT, - XThread::id(), XThread::name(), p2i(page), page->size()); - - free_page(page, false /* reclaimed */); -} - -void XHeap::free_page(XPage* page, bool reclaimed) { - // Remove page table entry - _page_table.remove(page); - - // Free page - _page_allocator.free_page(page, reclaimed); -} - -void XHeap::free_pages(const XArray* pages, bool reclaimed) { - // Remove page table entries - XArrayIterator iter(pages); - for (XPage* page; iter.next(&page);) { - _page_table.remove(page); - } - - // Free pages - _page_allocator.free_pages(pages, reclaimed); -} - -void XHeap::flip_to_marked() { - XVerifyViewsFlip flip(&_page_allocator); - XAddress::flip_to_marked(); -} - -void XHeap::flip_to_remapped() { - XVerifyViewsFlip flip(&_page_allocator); - XAddress::flip_to_remapped(); -} - -void XHeap::mark_start() { - assert(SafepointSynchronize::is_at_safepoint(), "Should be at safepoint"); - - // Verification - ClassLoaderDataGraph::verify_claimed_marks_cleared(ClassLoaderData::_claim_strong); - - if (XHeap::heap()->has_alloc_stalled()) { - // If there are stalled allocations, ensure that regardless of the - // cause of the GC, we have to clear soft references, as we are just - // about to increment the sequence number, and all previous allocations - // will throw if not presented with enough memory. - XHeap::heap()->set_soft_reference_policy(true); - } - - // Flip address view - flip_to_marked(); - - // Retire allocating pages - _object_allocator.retire_pages(); - - // Reset allocated/reclaimed/used statistics - _page_allocator.reset_statistics(); - - // Reset encountered/dropped/enqueued statistics - _reference_processor.reset_statistics(); - - // Enter mark phase - XGlobalPhase = XPhaseMark; - - // Reset marking information - _mark.start(); - - // Update statistics - XStatHeap::set_at_mark_start(_page_allocator.stats()); -} - -void XHeap::mark(bool initial) { - _mark.mark(initial); -} - -void XHeap::mark_flush_and_free(Thread* thread) { - _mark.flush_and_free(thread); -} - -bool XHeap::mark_end() { - assert(SafepointSynchronize::is_at_safepoint(), "Should be at safepoint"); - - // Try end marking - if (!_mark.end()) { - // Marking not completed, continue concurrent mark - return false; - } - - // Enter mark completed phase - XGlobalPhase = XPhaseMarkCompleted; - - // Verify after mark - XVerify::after_mark(); - - // Update statistics - XStatHeap::set_at_mark_end(_page_allocator.stats()); - - // Block resurrection of weak/phantom references - XResurrection::block(); - - // Prepare to unload stale metadata and nmethods - _unload.prepare(); - - // Notify JVMTI that some tagmap entry objects may have died. - JvmtiTagMap::set_needs_cleaning(); - - return true; -} - -void XHeap::mark_free() { - _mark.free(); -} - -void XHeap::keep_alive(oop obj) { - XBarrier::keep_alive_barrier_on_oop(obj); -} - -void XHeap::set_soft_reference_policy(bool clear) { - _reference_processor.set_soft_reference_policy(clear); -} - -class XRendezvousClosure : public HandshakeClosure { -public: - XRendezvousClosure() : - HandshakeClosure("XRendezvous") {} - - void do_thread(Thread* thread) {} -}; - -void XHeap::process_non_strong_references() { - // Process Soft/Weak/Final/PhantomReferences - _reference_processor.process_references(); - - // Process weak roots - _weak_roots_processor.process_weak_roots(); - - ClassUnloadingContext ctx(_workers.active_workers(), - true /* unregister_nmethods_during_purge */, - true /* lock_nmethod_free_separately */); - - // Unlink stale metadata and nmethods - _unload.unlink(); - - // Perform a handshake. This is needed 1) to make sure that stale - // metadata and nmethods are no longer observable. And 2), to - // prevent the race where a mutator first loads an oop, which is - // logically null but not yet cleared. Then this oop gets cleared - // by the reference processor and resurrection is unblocked. At - // this point the mutator could see the unblocked state and pass - // this invalid oop through the normal barrier path, which would - // incorrectly try to mark the oop. - XRendezvousClosure cl; - Handshake::execute(&cl); - - // Unblock resurrection of weak/phantom references - XResurrection::unblock(); - - // Purge stale metadata and nmethods that were unlinked - _unload.purge(); - - // Enqueue Soft/Weak/Final/PhantomReferences. Note that this - // must be done after unblocking resurrection. Otherwise the - // Finalizer thread could call Reference.get() on the Finalizers - // that were just enqueued, which would incorrectly return null - // during the resurrection block window, since such referents - // are only Finalizable marked. - _reference_processor.enqueue_references(); - - // Clear old markings claim bits. - // Note: Clearing _claim_strong also clears _claim_finalizable. - ClassLoaderDataGraph::clear_claimed_marks(ClassLoaderData::_claim_strong); -} - -void XHeap::free_empty_pages(XRelocationSetSelector* selector, int bulk) { - // Freeing empty pages in bulk is an optimization to avoid grabbing - // the page allocator lock, and trying to satisfy stalled allocations - // too frequently. - if (selector->should_free_empty_pages(bulk)) { - free_pages(selector->empty_pages(), true /* reclaimed */); - selector->clear_empty_pages(); - } -} - -void XHeap::select_relocation_set() { - // Do not allow pages to be deleted - _page_allocator.enable_deferred_delete(); - - // Register relocatable pages with selector - XRelocationSetSelector selector; - XPageTableIterator pt_iter(&_page_table); - for (XPage* page; pt_iter.next(&page);) { - if (!page->is_relocatable()) { - // Not relocatable, don't register - continue; - } - - if (page->is_marked()) { - // Register live page - selector.register_live_page(page); - } else { - // Register empty page - selector.register_empty_page(page); - - // Reclaim empty pages in bulk - free_empty_pages(&selector, 64 /* bulk */); - } - } - - // Reclaim remaining empty pages - free_empty_pages(&selector, 0 /* bulk */); - - // Allow pages to be deleted - _page_allocator.disable_deferred_delete(); - - // Select relocation set - selector.select(); - - // Install relocation set - _relocation_set.install(&selector); - - // Setup forwarding table - XRelocationSetIterator rs_iter(&_relocation_set); - for (XForwarding* forwarding; rs_iter.next(&forwarding);) { - _forwarding_table.insert(forwarding); - } - - // Update statistics - XStatRelocation::set_at_select_relocation_set(selector.stats()); - XStatHeap::set_at_select_relocation_set(selector.stats()); -} - -void XHeap::reset_relocation_set() { - // Reset forwarding table - XRelocationSetIterator iter(&_relocation_set); - for (XForwarding* forwarding; iter.next(&forwarding);) { - _forwarding_table.remove(forwarding); - } - - // Reset relocation set - _relocation_set.reset(); -} - -void XHeap::relocate_start() { - assert(SafepointSynchronize::is_at_safepoint(), "Should be at safepoint"); - - // Finish unloading stale metadata and nmethods - _unload.finish(); - - // Flip address view - flip_to_remapped(); - - // Enter relocate phase - XGlobalPhase = XPhaseRelocate; - - // Update statistics - XStatHeap::set_at_relocate_start(_page_allocator.stats()); -} - -void XHeap::relocate() { - // Relocate relocation set - _relocate.relocate(&_relocation_set); - - // Update statistics - XStatHeap::set_at_relocate_end(_page_allocator.stats(), _object_allocator.relocated()); -} - -bool XHeap::is_allocating(uintptr_t addr) const { - const XPage* const page = _page_table.get(addr); - return page->is_allocating(); -} - -void XHeap::object_iterate(ObjectClosure* cl, bool visit_weaks) { - assert(SafepointSynchronize::is_at_safepoint(), "Should be at safepoint"); - XHeapIterator iter(1 /* nworkers */, visit_weaks); - iter.object_iterate(cl, 0 /* worker_id */); -} - -ParallelObjectIteratorImpl* XHeap::parallel_object_iterator(uint nworkers, bool visit_weaks) { - assert(SafepointSynchronize::is_at_safepoint(), "Should be at safepoint"); - return new XHeapIterator(nworkers, visit_weaks); -} - -void XHeap::pages_do(XPageClosure* cl) { - XPageTableIterator iter(&_page_table); - for (XPage* page; iter.next(&page);) { - cl->do_page(page); - } - _page_allocator.pages_do(cl); -} - -void XHeap::serviceability_initialize() { - _serviceability.initialize(); -} - -GCMemoryManager* XHeap::serviceability_cycle_memory_manager() { - return _serviceability.cycle_memory_manager(); -} - -GCMemoryManager* XHeap::serviceability_pause_memory_manager() { - return _serviceability.pause_memory_manager(); -} - -MemoryPool* XHeap::serviceability_memory_pool() { - return _serviceability.memory_pool(); -} - -XServiceabilityCounters* XHeap::serviceability_counters() { - return _serviceability.counters(); -} - -void XHeap::print_on(outputStream* st) const { - st->print_cr(" ZHeap used " SIZE_FORMAT "M, capacity " SIZE_FORMAT "M, max capacity " SIZE_FORMAT "M", - used() / M, - capacity() / M, - max_capacity() / M); - MetaspaceUtils::print_on(st); -} - -void XHeap::print_extended_on(outputStream* st) const { - print_on(st); - st->cr(); - - // Do not allow pages to be deleted - _page_allocator.enable_deferred_delete(); - - // Print all pages - st->print_cr("ZGC Page Table:"); - XPageTableIterator iter(&_page_table); - for (XPage* page; iter.next(&page);) { - page->print_on(st); - } - - // Allow pages to be deleted - _page_allocator.disable_deferred_delete(); -} - -bool XHeap::print_location(outputStream* st, uintptr_t addr) const { - if (LocationPrinter::is_valid_obj((void*)addr)) { - st->print(PTR_FORMAT " is a %s oop: ", addr, XAddress::is_good(addr) ? "good" : "bad"); - XOop::from_address(addr)->print_on(st); - return true; - } - - return false; -} - -void XHeap::verify() { - // Heap verification can only be done between mark end and - // relocate start. This is the only window where all oop are - // good and the whole heap is in a consistent state. - guarantee(XGlobalPhase == XPhaseMarkCompleted, "Invalid phase"); - - XVerify::after_weak_processing(); -} diff --git a/src/hotspot/share/gc/x/xHeap.hpp b/src/hotspot/share/gc/x/xHeap.hpp deleted file mode 100644 index af2c73180d9..00000000000 --- a/src/hotspot/share/gc/x/xHeap.hpp +++ /dev/null @@ -1,167 +0,0 @@ -/* - * Copyright (c) 2015, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XHEAP_HPP -#define SHARE_GC_X_XHEAP_HPP - -#include "gc/x/xAllocationFlags.hpp" -#include "gc/x/xArray.hpp" -#include "gc/x/xForwardingTable.hpp" -#include "gc/x/xMark.hpp" -#include "gc/x/xObjectAllocator.hpp" -#include "gc/x/xPageAllocator.hpp" -#include "gc/x/xPageTable.hpp" -#include "gc/x/xReferenceProcessor.hpp" -#include "gc/x/xRelocate.hpp" -#include "gc/x/xRelocationSet.hpp" -#include "gc/x/xWeakRootsProcessor.hpp" -#include "gc/x/xServiceability.hpp" -#include "gc/x/xUnload.hpp" -#include "gc/x/xWorkers.hpp" - -class ThreadClosure; -class VMStructs; -class XPage; -class XRelocationSetSelector; - -class XHeap { - friend class ::VMStructs; - -private: - static XHeap* _heap; - - XWorkers _workers; - XObjectAllocator _object_allocator; - XPageAllocator _page_allocator; - XPageTable _page_table; - XForwardingTable _forwarding_table; - XMark _mark; - XReferenceProcessor _reference_processor; - XWeakRootsProcessor _weak_roots_processor; - XRelocate _relocate; - XRelocationSet _relocation_set; - XUnload _unload; - XServiceability _serviceability; - - void flip_to_marked(); - void flip_to_remapped(); - - void free_empty_pages(XRelocationSetSelector* selector, int bulk); - - void out_of_memory(); - -public: - static XHeap* heap(); - - XHeap(); - - bool is_initialized() const; - - // Heap metrics - size_t min_capacity() const; - size_t max_capacity() const; - size_t soft_max_capacity() const; - size_t capacity() const; - size_t used() const; - size_t unused() const; - - size_t tlab_capacity() const; - size_t tlab_used() const; - size_t max_tlab_size() const; - size_t unsafe_max_tlab_alloc() const; - - bool is_in(uintptr_t addr) const; - - // Threads - uint active_workers() const; - void set_active_workers(uint nworkers); - void threads_do(ThreadClosure* tc) const; - - // Reference processing - ReferenceDiscoverer* reference_discoverer(); - void set_soft_reference_policy(bool clear); - - // Non-strong reference processing - void process_non_strong_references(); - - // Page allocation - XPage* alloc_page(uint8_t type, size_t size, XAllocationFlags flags); - void undo_alloc_page(XPage* page); - void free_page(XPage* page, bool reclaimed); - void free_pages(const XArray* pages, bool reclaimed); - - // Object allocation - uintptr_t alloc_tlab(size_t size); - uintptr_t alloc_object(size_t size); - uintptr_t alloc_object_for_relocation(size_t size); - void undo_alloc_object_for_relocation(uintptr_t addr, size_t size); - bool has_alloc_stalled() const; - void check_out_of_memory(); - - // Marking - bool is_object_live(uintptr_t addr) const; - bool is_object_strongly_live(uintptr_t addr) const; - template void mark_object(uintptr_t addr); - void mark_start(); - void mark(bool initial); - void mark_flush_and_free(Thread* thread); - bool mark_end(); - void mark_free(); - void keep_alive(oop obj); - - // Relocation set - void select_relocation_set(); - void reset_relocation_set(); - - // Relocation - void relocate_start(); - uintptr_t relocate_object(uintptr_t addr); - uintptr_t remap_object(uintptr_t addr); - void relocate(); - - // Continuations - bool is_allocating(uintptr_t addr) const; - - // Iteration - void object_iterate(ObjectClosure* cl, bool visit_weaks); - ParallelObjectIteratorImpl* parallel_object_iterator(uint nworkers, bool visit_weaks); - void pages_do(XPageClosure* cl); - - // Serviceability - void serviceability_initialize(); - GCMemoryManager* serviceability_cycle_memory_manager(); - GCMemoryManager* serviceability_pause_memory_manager(); - MemoryPool* serviceability_memory_pool(); - XServiceabilityCounters* serviceability_counters(); - - // Printing - void print_on(outputStream* st) const; - void print_extended_on(outputStream* st) const; - bool print_location(outputStream* st, uintptr_t addr) const; - - // Verification - bool is_oop(uintptr_t addr) const; - void verify(); -}; - -#endif // SHARE_GC_X_XHEAP_HPP diff --git a/src/hotspot/share/gc/x/xHeap.inline.hpp b/src/hotspot/share/gc/x/xHeap.inline.hpp deleted file mode 100644 index 793a7200177..00000000000 --- a/src/hotspot/share/gc/x/xHeap.inline.hpp +++ /dev/null @@ -1,127 +0,0 @@ -/* - * Copyright (c) 2015, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XHEAP_INLINE_HPP -#define SHARE_GC_X_XHEAP_INLINE_HPP - -#include "gc/x/xHeap.hpp" - -#include "gc/x/xAddress.inline.hpp" -#include "gc/x/xForwardingTable.inline.hpp" -#include "gc/x/xMark.inline.hpp" -#include "gc/x/xPage.inline.hpp" -#include "gc/x/xPageTable.inline.hpp" -#include "utilities/debug.hpp" - -inline XHeap* XHeap::heap() { - assert(_heap != nullptr, "Not initialized"); - return _heap; -} - -inline ReferenceDiscoverer* XHeap::reference_discoverer() { - return &_reference_processor; -} - -inline bool XHeap::is_object_live(uintptr_t addr) const { - XPage* page = _page_table.get(addr); - return page->is_object_live(addr); -} - -inline bool XHeap::is_object_strongly_live(uintptr_t addr) const { - XPage* page = _page_table.get(addr); - return page->is_object_strongly_live(addr); -} - -template -inline void XHeap::mark_object(uintptr_t addr) { - assert(XGlobalPhase == XPhaseMark, "Mark not allowed"); - _mark.mark_object(addr); -} - -inline uintptr_t XHeap::alloc_tlab(size_t size) { - guarantee(size <= max_tlab_size(), "TLAB too large"); - return _object_allocator.alloc_object(size); -} - -inline uintptr_t XHeap::alloc_object(size_t size) { - uintptr_t addr = _object_allocator.alloc_object(size); - assert(XAddress::is_good_or_null(addr), "Bad address"); - - if (addr == 0) { - out_of_memory(); - } - - return addr; -} - -inline uintptr_t XHeap::alloc_object_for_relocation(size_t size) { - const uintptr_t addr = _object_allocator.alloc_object_for_relocation(&_page_table, size); - assert(XAddress::is_good_or_null(addr), "Bad address"); - return addr; -} - -inline void XHeap::undo_alloc_object_for_relocation(uintptr_t addr, size_t size) { - XPage* const page = _page_table.get(addr); - _object_allocator.undo_alloc_object_for_relocation(page, addr, size); -} - -inline uintptr_t XHeap::relocate_object(uintptr_t addr) { - assert(XGlobalPhase == XPhaseRelocate, "Relocate not allowed"); - - XForwarding* const forwarding = _forwarding_table.get(addr); - if (forwarding == nullptr) { - // Not forwarding - return XAddress::good(addr); - } - - // Relocate object - return _relocate.relocate_object(forwarding, XAddress::good(addr)); -} - -inline uintptr_t XHeap::remap_object(uintptr_t addr) { - assert(XGlobalPhase == XPhaseMark || - XGlobalPhase == XPhaseMarkCompleted, "Forward not allowed"); - - XForwarding* const forwarding = _forwarding_table.get(addr); - if (forwarding == nullptr) { - // Not forwarding - return XAddress::good(addr); - } - - // Forward object - return _relocate.forward_object(forwarding, XAddress::good(addr)); -} - -inline bool XHeap::has_alloc_stalled() const { - return _page_allocator.has_alloc_stalled(); -} - -inline void XHeap::check_out_of_memory() { - _page_allocator.check_out_of_memory(); -} - -inline bool XHeap::is_oop(uintptr_t addr) const { - return XAddress::is_good(addr) && is_object_aligned(addr) && is_in(addr); -} - -#endif // SHARE_GC_X_XHEAP_INLINE_HPP diff --git a/src/hotspot/share/gc/x/xHeapIterator.cpp b/src/hotspot/share/gc/x/xHeapIterator.cpp deleted file mode 100644 index 47a6db26f69..00000000000 --- a/src/hotspot/share/gc/x/xHeapIterator.cpp +++ /dev/null @@ -1,439 +0,0 @@ -/* - * Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "classfile/classLoaderDataGraph.hpp" -#include "gc/shared/barrierSetNMethod.hpp" -#include "gc/shared/gc_globals.hpp" -#include "gc/shared/taskqueue.inline.hpp" -#include "gc/x/xAddress.inline.hpp" -#include "gc/x/xCollectedHeap.hpp" -#include "gc/x/xGlobals.hpp" -#include "gc/x/xGranuleMap.inline.hpp" -#include "gc/x/xHeapIterator.hpp" -#include "gc/x/xLock.inline.hpp" -#include "gc/x/xNMethod.hpp" -#include "gc/x/xOop.inline.hpp" -#include "memory/iterator.inline.hpp" -#include "utilities/bitMap.inline.hpp" - -class XHeapIteratorBitMap : public CHeapObj { -private: - CHeapBitMap _bitmap; - -public: - XHeapIteratorBitMap(size_t size_in_bits) : - _bitmap(size_in_bits, mtGC) {} - - bool try_set_bit(size_t index) { - return _bitmap.par_set_bit(index); - } -}; - -class XHeapIteratorContext { -private: - XHeapIterator* const _iter; - XHeapIteratorQueue* const _queue; - XHeapIteratorArrayQueue* const _array_queue; - const uint _worker_id; - XStatTimerDisable _timer_disable; - -public: - XHeapIteratorContext(XHeapIterator* iter, uint worker_id) : - _iter(iter), - _queue(_iter->_queues.queue(worker_id)), - _array_queue(_iter->_array_queues.queue(worker_id)), - _worker_id(worker_id) {} - - void mark_and_push(oop obj) const { - if (_iter->mark_object(obj)) { - _queue->push(obj); - } - } - - void push_array(const ObjArrayTask& array) const { - _array_queue->push(array); - } - - bool pop(oop& obj) const { - return _queue->pop_overflow(obj) || _queue->pop_local(obj); - } - - bool pop_array(ObjArrayTask& array) const { - return _array_queue->pop_overflow(array) || _array_queue->pop_local(array); - } - - bool steal(oop& obj) const { - return _iter->_queues.steal(_worker_id, obj); - } - - bool steal_array(ObjArrayTask& array) const { - return _iter->_array_queues.steal(_worker_id, array); - } - - bool is_drained() const { - return _queue->is_empty() && _array_queue->is_empty(); - } -}; - -template -class XHeapIteratorRootOopClosure : public OopClosure { -private: - const XHeapIteratorContext& _context; - - oop load_oop(oop* p) { - if (Weak) { - return NativeAccess::oop_load(p); - } - - return NativeAccess::oop_load(p); - } - -public: - XHeapIteratorRootOopClosure(const XHeapIteratorContext& context) : - _context(context) {} - - virtual void do_oop(oop* p) { - const oop obj = load_oop(p); - _context.mark_and_push(obj); - } - - virtual void do_oop(narrowOop* p) { - ShouldNotReachHere(); - } -}; - -template -class XHeapIteratorOopClosure : public OopIterateClosure { -private: - const XHeapIteratorContext& _context; - const oop _base; - - oop load_oop(oop* p) { - assert(XCollectedHeap::heap()->is_in(p), "Should be in heap"); - - if (VisitReferents) { - return HeapAccess::oop_load_at(_base, _base->field_offset(p)); - } - - return HeapAccess::oop_load(p); - } - -public: - XHeapIteratorOopClosure(const XHeapIteratorContext& context, oop base) : - OopIterateClosure(), - _context(context), - _base(base) {} - - virtual ReferenceIterationMode reference_iteration_mode() { - return VisitReferents ? DO_FIELDS : DO_FIELDS_EXCEPT_REFERENT; - } - - virtual void do_oop(oop* p) { - const oop obj = load_oop(p); - _context.mark_and_push(obj); - } - - virtual void do_oop(narrowOop* p) { - ShouldNotReachHere(); - } - - virtual bool do_metadata() { - return true; - } - - virtual void do_klass(Klass* k) { - ClassLoaderData* const cld = k->class_loader_data(); - XHeapIteratorOopClosure::do_cld(cld); - } - - virtual void do_cld(ClassLoaderData* cld) { - class NativeAccessClosure : public OopClosure { - private: - const XHeapIteratorContext& _context; - - public: - explicit NativeAccessClosure(const XHeapIteratorContext& context) : - _context(context) {} - - virtual void do_oop(oop* p) { - assert(!XCollectedHeap::heap()->is_in(p), "Should not be in heap"); - const oop obj = NativeAccess::oop_load(p); - _context.mark_and_push(obj); - } - - virtual void do_oop(narrowOop* p) { - ShouldNotReachHere(); - } - }; - - NativeAccessClosure cl(_context); - cld->oops_do(&cl, ClassLoaderData::_claim_other); - } - - // Don't follow loom stack metadata; it's already followed in other ways through CLDs - virtual void do_nmethod(nmethod* nm) {} - virtual void do_method(Method* m) {} -}; - -XHeapIterator::XHeapIterator(uint nworkers, bool visit_weaks) : - _visit_weaks(visit_weaks), - _timer_disable(), - _bitmaps(XAddressOffsetMax), - _bitmaps_lock(), - _queues(nworkers), - _array_queues(nworkers), - _roots(ClassLoaderData::_claim_other), - _weak_roots(), - _terminator(nworkers, &_queues) { - - // Create queues - for (uint i = 0; i < _queues.size(); i++) { - XHeapIteratorQueue* const queue = new XHeapIteratorQueue(); - _queues.register_queue(i, queue); - } - - // Create array queues - for (uint i = 0; i < _array_queues.size(); i++) { - XHeapIteratorArrayQueue* const array_queue = new XHeapIteratorArrayQueue(); - _array_queues.register_queue(i, array_queue); - } -} - -XHeapIterator::~XHeapIterator() { - // Destroy bitmaps - XHeapIteratorBitMapsIterator iter(&_bitmaps); - for (XHeapIteratorBitMap* bitmap; iter.next(&bitmap);) { - delete bitmap; - } - - // Destroy array queues - for (uint i = 0; i < _array_queues.size(); i++) { - delete _array_queues.queue(i); - } - - // Destroy queues - for (uint i = 0; i < _queues.size(); i++) { - delete _queues.queue(i); - } - - // Clear claimed CLD bits - ClassLoaderDataGraph::clear_claimed_marks(ClassLoaderData::_claim_other); -} - -static size_t object_index_max() { - return XGranuleSize >> XObjectAlignmentSmallShift; -} - -static size_t object_index(oop obj) { - const uintptr_t addr = XOop::to_address(obj); - const uintptr_t offset = XAddress::offset(addr); - const uintptr_t mask = XGranuleSize - 1; - return (offset & mask) >> XObjectAlignmentSmallShift; -} - -XHeapIteratorBitMap* XHeapIterator::object_bitmap(oop obj) { - const uintptr_t offset = XAddress::offset(XOop::to_address(obj)); - XHeapIteratorBitMap* bitmap = _bitmaps.get_acquire(offset); - if (bitmap == nullptr) { - XLocker locker(&_bitmaps_lock); - bitmap = _bitmaps.get(offset); - if (bitmap == nullptr) { - // Install new bitmap - bitmap = new XHeapIteratorBitMap(object_index_max()); - _bitmaps.release_put(offset, bitmap); - } - } - - return bitmap; -} - -bool XHeapIterator::mark_object(oop obj) { - if (obj == nullptr) { - return false; - } - - XHeapIteratorBitMap* const bitmap = object_bitmap(obj); - const size_t index = object_index(obj); - return bitmap->try_set_bit(index); -} - -typedef ClaimingCLDToOopClosure XHeapIteratorCLDCLosure; - -class XHeapIteratorNMethodClosure : public NMethodClosure { -private: - OopClosure* const _cl; - BarrierSetNMethod* const _bs_nm; - -public: - XHeapIteratorNMethodClosure(OopClosure* cl) : - _cl(cl), - _bs_nm(BarrierSet::barrier_set()->barrier_set_nmethod()) {} - - virtual void do_nmethod(nmethod* nm) { - // If ClassUnloading is turned off, all nmethods are considered strong, - // not only those on the call stacks. The heap iteration might happen - // before the concurrent processign of the code cache, make sure that - // all nmethods have been processed before visiting the oops. - _bs_nm->nmethod_entry_barrier(nm); - - XNMethod::nmethod_oops_do(nm, _cl); - } -}; - -class XHeapIteratorThreadClosure : public ThreadClosure { -private: - OopClosure* const _cl; - NMethodClosure* const _nm_cl; - -public: - XHeapIteratorThreadClosure(OopClosure* cl, NMethodClosure* nm_cl) : - _cl(cl), - _nm_cl(nm_cl) {} - - void do_thread(Thread* thread) { - thread->oops_do(_cl, _nm_cl); - } -}; - -void XHeapIterator::push_strong_roots(const XHeapIteratorContext& context) { - XHeapIteratorRootOopClosure cl(context); - XHeapIteratorCLDCLosure cld_cl(&cl); - XHeapIteratorNMethodClosure nm_cl(&cl); - XHeapIteratorThreadClosure thread_cl(&cl, &nm_cl); - - _roots.apply(&cl, - &cld_cl, - &thread_cl, - &nm_cl); -} - -void XHeapIterator::push_weak_roots(const XHeapIteratorContext& context) { - XHeapIteratorRootOopClosure cl(context); - _weak_roots.apply(&cl); -} - -template -void XHeapIterator::push_roots(const XHeapIteratorContext& context) { - push_strong_roots(context); - if (VisitWeaks) { - push_weak_roots(context); - } -} - -template -void XHeapIterator::follow_object(const XHeapIteratorContext& context, oop obj) { - XHeapIteratorOopClosure cl(context, obj); - obj->oop_iterate(&cl); -} - -void XHeapIterator::follow_array(const XHeapIteratorContext& context, oop obj) { - // Follow klass - XHeapIteratorOopClosure cl(context, obj); - cl.do_klass(obj->klass()); - - // Push array chunk - context.push_array(ObjArrayTask(obj, 0 /* index */)); -} - -void XHeapIterator::follow_array_chunk(const XHeapIteratorContext& context, const ObjArrayTask& array) { - const objArrayOop obj = objArrayOop(array.obj()); - const int length = obj->length(); - const int start = array.index(); - const int stride = MIN2(length - start, ObjArrayMarkingStride); - const int end = start + stride; - - // Push remaining array chunk first - if (end < length) { - context.push_array(ObjArrayTask(obj, end)); - } - - // Follow array chunk - XHeapIteratorOopClosure cl(context, obj); - obj->oop_iterate_range(&cl, start, end); -} - -template -void XHeapIterator::visit_and_follow(const XHeapIteratorContext& context, ObjectClosure* cl, oop obj) { - // Visit - cl->do_object(obj); - - // Follow - if (obj->is_objArray()) { - follow_array(context, obj); - } else { - follow_object(context, obj); - } -} - -template -void XHeapIterator::drain(const XHeapIteratorContext& context, ObjectClosure* cl) { - ObjArrayTask array; - oop obj; - - do { - while (context.pop(obj)) { - visit_and_follow(context, cl, obj); - } - - if (context.pop_array(array)) { - follow_array_chunk(context, array); - } - } while (!context.is_drained()); -} - -template -void XHeapIterator::steal(const XHeapIteratorContext& context, ObjectClosure* cl) { - ObjArrayTask array; - oop obj; - - if (context.steal_array(array)) { - follow_array_chunk(context, array); - } else if (context.steal(obj)) { - visit_and_follow(context, cl, obj); - } -} - -template -void XHeapIterator::drain_and_steal(const XHeapIteratorContext& context, ObjectClosure* cl) { - do { - drain(context, cl); - steal(context, cl); - } while (!context.is_drained() || !_terminator.offer_termination()); -} - -template -void XHeapIterator::object_iterate_inner(const XHeapIteratorContext& context, ObjectClosure* object_cl) { - push_roots(context); - drain_and_steal(context, object_cl); -} - -void XHeapIterator::object_iterate(ObjectClosure* cl, uint worker_id) { - XHeapIteratorContext context(this, worker_id); - - if (_visit_weaks) { - object_iterate_inner(context, cl); - } else { - object_iterate_inner(context, cl); - } -} diff --git a/src/hotspot/share/gc/x/xHeapIterator.hpp b/src/hotspot/share/gc/x/xHeapIterator.hpp deleted file mode 100644 index 0d990a616f8..00000000000 --- a/src/hotspot/share/gc/x/xHeapIterator.hpp +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright (c) 2017, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XHEAPITERATOR_HPP -#define SHARE_GC_X_XHEAPITERATOR_HPP - -#include "gc/shared/collectedHeap.hpp" -#include "gc/shared/taskTerminator.hpp" -#include "gc/shared/taskqueue.hpp" -#include "gc/x/xGranuleMap.hpp" -#include "gc/x/xLock.hpp" -#include "gc/x/xRootsIterator.hpp" -#include "gc/x/xStat.hpp" - -class XHeapIteratorBitMap; -class XHeapIteratorContext; - -using XHeapIteratorBitMaps = XGranuleMap; -using XHeapIteratorBitMapsIterator = XGranuleMapIterator; -using XHeapIteratorQueue = OverflowTaskQueue; -using XHeapIteratorQueues = GenericTaskQueueSet; -using XHeapIteratorArrayQueue = OverflowTaskQueue; -using XHeapIteratorArrayQueues = GenericTaskQueueSet; - -class XHeapIterator : public ParallelObjectIteratorImpl { - friend class XHeapIteratorContext; - -private: - const bool _visit_weaks; - XStatTimerDisable _timer_disable; - XHeapIteratorBitMaps _bitmaps; - XLock _bitmaps_lock; - XHeapIteratorQueues _queues; - XHeapIteratorArrayQueues _array_queues; - XRootsIterator _roots; - XWeakRootsIterator _weak_roots; - TaskTerminator _terminator; - - XHeapIteratorBitMap* object_bitmap(oop obj); - - bool mark_object(oop obj); - - void push_strong_roots(const XHeapIteratorContext& context); - void push_weak_roots(const XHeapIteratorContext& context); - - template - void push_roots(const XHeapIteratorContext& context); - - template - void follow_object(const XHeapIteratorContext& context, oop obj); - - void follow_array(const XHeapIteratorContext& context, oop obj); - void follow_array_chunk(const XHeapIteratorContext& context, const ObjArrayTask& array); - - template - void visit_and_follow(const XHeapIteratorContext& context, ObjectClosure* cl, oop obj); - - template - void drain(const XHeapIteratorContext& context, ObjectClosure* cl); - - template - void steal(const XHeapIteratorContext& context, ObjectClosure* cl); - - template - void drain_and_steal(const XHeapIteratorContext& context, ObjectClosure* cl); - - template - void object_iterate_inner(const XHeapIteratorContext& context, ObjectClosure* cl); - -public: - XHeapIterator(uint nworkers, bool visit_weaks); - virtual ~XHeapIterator(); - - virtual void object_iterate(ObjectClosure* cl, uint worker_id); -}; - -#endif // SHARE_GC_X_XHEAPITERATOR_HPP diff --git a/src/hotspot/share/gc/x/xHeuristics.cpp b/src/hotspot/share/gc/x/xHeuristics.cpp deleted file mode 100644 index ec89fa41919..00000000000 --- a/src/hotspot/share/gc/x/xHeuristics.cpp +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Copyright (c) 2019, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/shared/gcLogPrecious.hpp" -#include "gc/shared/gc_globals.hpp" -#include "gc/x/xCPU.inline.hpp" -#include "gc/x/xGlobals.hpp" -#include "gc/x/xHeuristics.hpp" -#include "runtime/globals.hpp" -#include "runtime/os.hpp" -#include "utilities/globalDefinitions.hpp" -#include "utilities/powerOfTwo.hpp" - -void XHeuristics::set_medium_page_size() { - // Set XPageSizeMedium so that a medium page occupies at most 3.125% of the - // max heap size. XPageSizeMedium is initially set to 0, which means medium - // pages are effectively disabled. It is adjusted only if XPageSizeMedium - // becomes larger than XPageSizeSmall. - const size_t min = XGranuleSize; - const size_t max = XGranuleSize * 16; - const size_t unclamped = MaxHeapSize * 0.03125; - const size_t clamped = clamp(unclamped, min, max); - const size_t size = round_down_power_of_2(clamped); - - if (size > XPageSizeSmall) { - // Enable medium pages - XPageSizeMedium = size; - XPageSizeMediumShift = log2i_exact(XPageSizeMedium); - XObjectSizeLimitMedium = XPageSizeMedium / 8; - XObjectAlignmentMediumShift = (int)XPageSizeMediumShift - 13; - XObjectAlignmentMedium = 1 << XObjectAlignmentMediumShift; - } -} - -size_t XHeuristics::relocation_headroom() { - // Calculate headroom needed to avoid in-place relocation. Each worker will try - // to allocate a small page, and all workers will share a single medium page. - const uint nworkers = UseDynamicNumberOfGCThreads ? ConcGCThreads : MAX2(ConcGCThreads, ParallelGCThreads); - return (nworkers * XPageSizeSmall) + XPageSizeMedium; -} - -bool XHeuristics::use_per_cpu_shared_small_pages() { - // Use per-CPU shared small pages only if these pages occupy at most 3.125% - // of the max heap size. Otherwise fall back to using a single shared small - // page. This is useful when using small heaps on large machines. - const size_t per_cpu_share = (MaxHeapSize * 0.03125) / XCPU::count(); - return per_cpu_share >= XPageSizeSmall; -} - -static uint nworkers_based_on_ncpus(double cpu_share_in_percent) { - return ceil(os::initial_active_processor_count() * cpu_share_in_percent / 100.0); -} - -static uint nworkers_based_on_heap_size(double heap_share_in_percent) { - const int nworkers = (MaxHeapSize * (heap_share_in_percent / 100.0)) / XPageSizeSmall; - return MAX2(nworkers, 1); -} - -static uint nworkers(double cpu_share_in_percent) { - // Cap number of workers so that they don't use more than 2% of the max heap - // during relocation. This is useful when using small heaps on large machines. - return MIN2(nworkers_based_on_ncpus(cpu_share_in_percent), - nworkers_based_on_heap_size(2.0)); -} - -uint XHeuristics::nparallel_workers() { - // Use 60% of the CPUs, rounded up. We would like to use as many threads as - // possible to increase parallelism. However, using a thread count that is - // close to the number of processors tends to lead to over-provisioning and - // scheduling latency issues. Using 60% of the active processors appears to - // be a fairly good balance. - return nworkers(60.0); -} - -uint XHeuristics::nconcurrent_workers() { - // The number of concurrent threads we would like to use heavily depends - // on the type of workload we are running. Using too many threads will have - // a negative impact on the application throughput, while using too few - // threads will prolong the GC-cycle and we then risk being out-run by the - // application. When in dynamic mode, use up to 25% of the active processors. - // When in non-dynamic mode, use 12.5% of the active processors. - return nworkers(UseDynamicNumberOfGCThreads ? 25.0 : 12.5); -} diff --git a/src/hotspot/share/gc/x/xHeuristics.hpp b/src/hotspot/share/gc/x/xHeuristics.hpp deleted file mode 100644 index 2ca798257b2..00000000000 --- a/src/hotspot/share/gc/x/xHeuristics.hpp +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) 2019, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XHEURISTICS_HPP -#define SHARE_GC_X_XHEURISTICS_HPP - -#include "memory/allStatic.hpp" - -class XHeuristics : public AllStatic { -public: - static void set_medium_page_size(); - - static size_t relocation_headroom(); - - static bool use_per_cpu_shared_small_pages(); - - static uint nparallel_workers(); - static uint nconcurrent_workers(); -}; - -#endif // SHARE_GC_X_XHEURISTICS_HPP diff --git a/src/hotspot/share/gc/x/xInitialize.cpp b/src/hotspot/share/gc/x/xInitialize.cpp deleted file mode 100644 index 156be17971f..00000000000 --- a/src/hotspot/share/gc/x/xInitialize.cpp +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (c) 2016, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xAddress.hpp" -#include "gc/x/xBarrierSet.hpp" -#include "gc/x/xCPU.hpp" -#include "gc/x/xGlobals.hpp" -#include "gc/x/xHeuristics.hpp" -#include "gc/x/xInitialize.hpp" -#include "gc/x/xLargePages.hpp" -#include "gc/x/xNUMA.hpp" -#include "gc/x/xStat.hpp" -#include "gc/x/xThreadLocalAllocBuffer.hpp" -#include "gc/x/xTracer.hpp" -#include "logging/log.hpp" -#include "runtime/vm_version.hpp" - -XInitialize::XInitialize(XBarrierSet* barrier_set) { - log_info(gc, init)("Initializing %s", XName); - log_info(gc, init)("Version: %s (%s)", - VM_Version::vm_release(), - VM_Version::jdk_debug_level()); - log_info(gc, init)("Using deprecated non-generational mode"); - - // Early initialization - XAddress::initialize(); - XNUMA::initialize(); - XCPU::initialize(); - XStatValue::initialize(); - XThreadLocalAllocBuffer::initialize(); - XTracer::initialize(); - XLargePages::initialize(); - XHeuristics::set_medium_page_size(); - XBarrierSet::set_barrier_set(barrier_set); - - pd_initialize(); -} diff --git a/src/hotspot/share/gc/x/xInitialize.hpp b/src/hotspot/share/gc/x/xInitialize.hpp deleted file mode 100644 index 30e7b65293e..00000000000 --- a/src/hotspot/share/gc/x/xInitialize.hpp +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XINITIALIZE_HPP -#define SHARE_GC_X_XINITIALIZE_HPP - -#include "memory/allocation.hpp" - -class XBarrierSet; - -class XInitialize { -private: - void pd_initialize(); - -public: - XInitialize(XBarrierSet* barrier_set); -}; - -#endif // SHARE_GC_X_XINITIALIZE_HPP diff --git a/src/hotspot/share/gc/x/xLargePages.cpp b/src/hotspot/share/gc/x/xLargePages.cpp deleted file mode 100644 index 13da763c6a3..00000000000 --- a/src/hotspot/share/gc/x/xLargePages.cpp +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/shared/gcLogPrecious.hpp" -#include "gc/x/xLargePages.hpp" -#include "runtime/os.hpp" - -XLargePages::State XLargePages::_state; - -void XLargePages::initialize() { - pd_initialize(); - - log_info_p(gc, init)("Memory: " JULONG_FORMAT "M", os::physical_memory() / M); - log_info_p(gc, init)("Large Page Support: %s", to_string()); -} - -const char* XLargePages::to_string() { - switch (_state) { - case Explicit: - return "Enabled (Explicit)"; - - case Transparent: - return "Enabled (Transparent)"; - - default: - return "Disabled"; - } -} diff --git a/src/hotspot/share/gc/x/xLargePages.hpp b/src/hotspot/share/gc/x/xLargePages.hpp deleted file mode 100644 index 562e83ffbd0..00000000000 --- a/src/hotspot/share/gc/x/xLargePages.hpp +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XLARGEPAGES_HPP -#define SHARE_GC_X_XLARGEPAGES_HPP - -#include "memory/allStatic.hpp" - -class XLargePages : public AllStatic { -private: - enum State { - Disabled, - Explicit, - Transparent - }; - - static State _state; - - static void pd_initialize(); - -public: - static void initialize(); - - static bool is_enabled(); - static bool is_explicit(); - static bool is_transparent(); - - static const char* to_string(); -}; - -#endif // SHARE_GC_X_XLARGEPAGES_HPP diff --git a/src/hotspot/share/gc/x/xLargePages.inline.hpp b/src/hotspot/share/gc/x/xLargePages.inline.hpp deleted file mode 100644 index 2f027c3b176..00000000000 --- a/src/hotspot/share/gc/x/xLargePages.inline.hpp +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XLARGEPAGES_INLINE_HPP -#define SHARE_GC_X_XLARGEPAGES_INLINE_HPP - -#include "gc/x/xLargePages.hpp" - -inline bool XLargePages::is_enabled() { - return _state != Disabled; -} - -inline bool XLargePages::is_explicit() { - return _state == Explicit; -} - -inline bool XLargePages::is_transparent() { - return _state == Transparent; -} - -#endif // SHARE_GC_X_XLARGEPAGES_INLINE_HPP diff --git a/src/hotspot/share/gc/x/xList.hpp b/src/hotspot/share/gc/x/xList.hpp deleted file mode 100644 index d689704d653..00000000000 --- a/src/hotspot/share/gc/x/xList.hpp +++ /dev/null @@ -1,116 +0,0 @@ -/* - * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XLIST_HPP -#define SHARE_GC_X_XLIST_HPP - -#include "memory/allocation.hpp" -#include "utilities/globalDefinitions.hpp" - -template class XList; - -// Element in a doubly linked list -template -class XListNode { - friend class XList; - -private: - XListNode* _next; - XListNode* _prev; - - NONCOPYABLE(XListNode); - - void verify_links() const; - void verify_links_linked() const; - void verify_links_unlinked() const; - -public: - XListNode(); - ~XListNode(); -}; - -// Doubly linked list -template -class XList { -private: - XListNode _head; - size_t _size; - - NONCOPYABLE(XList); - - void verify_head() const; - - void insert(XListNode* before, XListNode* node); - - XListNode* cast_to_inner(T* elem) const; - T* cast_to_outer(XListNode* node) const; - -public: - XList(); - - size_t size() const; - bool is_empty() const; - - T* first() const; - T* last() const; - T* next(T* elem) const; - T* prev(T* elem) const; - - void insert_first(T* elem); - void insert_last(T* elem); - void insert_before(T* before, T* elem); - void insert_after(T* after, T* elem); - - void remove(T* elem); - T* remove_first(); - T* remove_last(); -}; - -template -class XListIteratorImpl : public StackObj { -private: - const XList* const _list; - T* _next; - -public: - XListIteratorImpl(const XList* list); - - bool next(T** elem); -}; - -template -class XListRemoveIteratorImpl : public StackObj { -private: - XList* const _list; - -public: - XListRemoveIteratorImpl(XList* list); - - bool next(T** elem); -}; - -template using XListIterator = XListIteratorImpl; -template using XListReverseIterator = XListIteratorImpl; -template using XListRemoveIterator = XListRemoveIteratorImpl; - -#endif // SHARE_GC_X_XLIST_HPP diff --git a/src/hotspot/share/gc/x/xList.inline.hpp b/src/hotspot/share/gc/x/xList.inline.hpp deleted file mode 100644 index 22ca5b82059..00000000000 --- a/src/hotspot/share/gc/x/xList.inline.hpp +++ /dev/null @@ -1,238 +0,0 @@ -/* - * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XLIST_INLINE_HPP -#define SHARE_GC_X_XLIST_INLINE_HPP - -#include "gc/x/xList.hpp" - -#include "utilities/debug.hpp" - -template -inline XListNode::XListNode() : - _next(this), - _prev(this) {} - -template -inline XListNode::~XListNode() { - verify_links_unlinked(); -} - -template -inline void XListNode::verify_links() const { - assert(_next->_prev == this, "Corrupt list node"); - assert(_prev->_next == this, "Corrupt list node"); -} - -template -inline void XListNode::verify_links_linked() const { - assert(_next != this, "Should be in a list"); - assert(_prev != this, "Should be in a list"); - verify_links(); -} - -template -inline void XListNode::verify_links_unlinked() const { - assert(_next == this, "Should not be in a list"); - assert(_prev == this, "Should not be in a list"); -} - -template -inline void XList::verify_head() const { - _head.verify_links(); -} - -template -inline void XList::insert(XListNode* before, XListNode* node) { - verify_head(); - - before->verify_links(); - node->verify_links_unlinked(); - - node->_prev = before; - node->_next = before->_next; - before->_next = node; - node->_next->_prev = node; - - before->verify_links_linked(); - node->verify_links_linked(); - - _size++; -} - -template -inline XListNode* XList::cast_to_inner(T* elem) const { - return &elem->_node; -} - -template -inline T* XList::cast_to_outer(XListNode* node) const { - return (T*)((uintptr_t)node - offset_of(T, _node)); -} - -template -inline XList::XList() : - _head(), - _size(0) { - verify_head(); -} - -template -inline size_t XList::size() const { - verify_head(); - return _size; -} - -template -inline bool XList::is_empty() const { - return size() == 0; -} - -template -inline T* XList::first() const { - return is_empty() ? nullptr : cast_to_outer(_head._next); -} - -template -inline T* XList::last() const { - return is_empty() ? nullptr : cast_to_outer(_head._prev); -} - -template -inline T* XList::next(T* elem) const { - verify_head(); - - XListNode* const node = cast_to_inner(elem); - node->verify_links_linked(); - - XListNode* const next = node->_next; - next->verify_links_linked(); - - return (next == &_head) ? nullptr : cast_to_outer(next); -} - -template -inline T* XList::prev(T* elem) const { - verify_head(); - - XListNode* const node = cast_to_inner(elem); - node->verify_links_linked(); - - XListNode* const prev = node->_prev; - prev->verify_links_linked(); - - return (prev == &_head) ? nullptr : cast_to_outer(prev); -} - -template -inline void XList::insert_first(T* elem) { - insert(&_head, cast_to_inner(elem)); -} - -template -inline void XList::insert_last(T* elem) { - insert(_head._prev, cast_to_inner(elem)); -} - -template -inline void XList::insert_before(T* before, T* elem) { - insert(cast_to_inner(before)->_prev, cast_to_inner(elem)); -} - -template -inline void XList::insert_after(T* after, T* elem) { - insert(cast_to_inner(after), cast_to_inner(elem)); -} - -template -inline void XList::remove(T* elem) { - verify_head(); - - XListNode* const node = cast_to_inner(elem); - node->verify_links_linked(); - - XListNode* const next = node->_next; - XListNode* const prev = node->_prev; - next->verify_links_linked(); - prev->verify_links_linked(); - - node->_next = prev->_next; - node->_prev = next->_prev; - node->verify_links_unlinked(); - - next->_prev = prev; - prev->_next = next; - next->verify_links(); - prev->verify_links(); - - _size--; -} - -template -inline T* XList::remove_first() { - T* elem = first(); - if (elem != nullptr) { - remove(elem); - } - - return elem; -} - -template -inline T* XList::remove_last() { - T* elem = last(); - if (elem != nullptr) { - remove(elem); - } - - return elem; -} - -template -inline XListIteratorImpl::XListIteratorImpl(const XList* list) : - _list(list), - _next(Forward ? list->first() : list->last()) {} - -template -inline bool XListIteratorImpl::next(T** elem) { - if (_next != nullptr) { - *elem = _next; - _next = Forward ? _list->next(_next) : _list->prev(_next); - return true; - } - - // No more elements - return false; -} - -template -inline XListRemoveIteratorImpl::XListRemoveIteratorImpl(XList* list) : - _list(list) {} - -template -inline bool XListRemoveIteratorImpl::next(T** elem) { - *elem = Forward ? _list->remove_first() : _list->remove_last(); - return *elem != nullptr; -} - -#endif // SHARE_GC_X_XLIST_INLINE_HPP diff --git a/src/hotspot/share/gc/x/xLiveMap.cpp b/src/hotspot/share/gc/x/xLiveMap.cpp deleted file mode 100644 index 91ef99754f7..00000000000 --- a/src/hotspot/share/gc/x/xLiveMap.cpp +++ /dev/null @@ -1,133 +0,0 @@ -/* - * Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xHeap.inline.hpp" -#include "gc/x/xLiveMap.inline.hpp" -#include "gc/x/xStat.hpp" -#include "gc/x/xThread.inline.hpp" -#include "logging/log.hpp" -#include "runtime/atomic.hpp" -#include "utilities/debug.hpp" -#include "utilities/powerOfTwo.hpp" - -static const XStatCounter XCounterMarkSeqNumResetContention("Contention", "Mark SeqNum Reset Contention", XStatUnitOpsPerSecond); -static const XStatCounter XCounterMarkSegmentResetContention("Contention", "Mark Segment Reset Contention", XStatUnitOpsPerSecond); - -static size_t bitmap_size(uint32_t size, size_t nsegments) { - // We need at least one bit per segment - return MAX2(size, nsegments) * 2; -} - -XLiveMap::XLiveMap(uint32_t size) : - _seqnum(0), - _live_objects(0), - _live_bytes(0), - _segment_live_bits(0), - _segment_claim_bits(0), - _bitmap(bitmap_size(size, nsegments)), - _segment_shift(exact_log2(segment_size())) {} - -void XLiveMap::reset(size_t index) { - const uint32_t seqnum_initializing = (uint32_t)-1; - bool contention = false; - - // Multiple threads can enter here, make sure only one of them - // resets the marking information while the others busy wait. - for (uint32_t seqnum = Atomic::load_acquire(&_seqnum); - seqnum != XGlobalSeqNum; - seqnum = Atomic::load_acquire(&_seqnum)) { - if ((seqnum != seqnum_initializing) && - (Atomic::cmpxchg(&_seqnum, seqnum, seqnum_initializing) == seqnum)) { - // Reset marking information - _live_bytes = 0; - _live_objects = 0; - - // Clear segment claimed/live bits - segment_live_bits().clear(); - segment_claim_bits().clear(); - - assert(_seqnum == seqnum_initializing, "Invalid"); - - // Make sure the newly reset marking information is ordered - // before the update of the page seqnum, such that when the - // up-to-date seqnum is load acquired, the bit maps will not - // contain stale information. - Atomic::release_store(&_seqnum, XGlobalSeqNum); - break; - } - - // Mark reset contention - if (!contention) { - // Count contention once - XStatInc(XCounterMarkSeqNumResetContention); - contention = true; - - log_trace(gc)("Mark seqnum reset contention, thread: " PTR_FORMAT " (%s), map: " PTR_FORMAT ", bit: " SIZE_FORMAT, - XThread::id(), XThread::name(), p2i(this), index); - } - } -} - -void XLiveMap::reset_segment(BitMap::idx_t segment) { - bool contention = false; - - if (!claim_segment(segment)) { - // Already claimed, wait for live bit to be set - while (!is_segment_live(segment)) { - // Mark reset contention - if (!contention) { - // Count contention once - XStatInc(XCounterMarkSegmentResetContention); - contention = true; - - log_trace(gc)("Mark segment reset contention, thread: " PTR_FORMAT " (%s), map: " PTR_FORMAT ", segment: " SIZE_FORMAT, - XThread::id(), XThread::name(), p2i(this), segment); - } - } - - // Segment is live - return; - } - - // Segment claimed, clear it - const BitMap::idx_t start_index = segment_start(segment); - const BitMap::idx_t end_index = segment_end(segment); - if (segment_size() / BitsPerWord >= 32) { - _bitmap.clear_large_range(start_index, end_index); - } else { - _bitmap.clear_range(start_index, end_index); - } - - // Set live bit - const bool success = set_segment_live(segment); - assert(success, "Should never fail"); -} - -void XLiveMap::resize(uint32_t size) { - const size_t new_bitmap_size = bitmap_size(size, nsegments); - if (_bitmap.size() != new_bitmap_size) { - _bitmap.reinitialize(new_bitmap_size, false /* clear */); - _segment_shift = exact_log2(segment_size()); - } -} diff --git a/src/hotspot/share/gc/x/xLiveMap.hpp b/src/hotspot/share/gc/x/xLiveMap.hpp deleted file mode 100644 index 7bad774c6c6..00000000000 --- a/src/hotspot/share/gc/x/xLiveMap.hpp +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XLIVEMAP_HPP -#define SHARE_GC_X_XLIVEMAP_HPP - -#include "gc/x/xBitMap.hpp" -#include "memory/allocation.hpp" - -class ObjectClosure; - -class XLiveMap { - friend class XLiveMapTest; - -private: - static const size_t nsegments = 64; - - volatile uint32_t _seqnum; - volatile uint32_t _live_objects; - volatile size_t _live_bytes; - BitMap::bm_word_t _segment_live_bits; - BitMap::bm_word_t _segment_claim_bits; - XBitMap _bitmap; - size_t _segment_shift; - - const BitMapView segment_live_bits() const; - const BitMapView segment_claim_bits() const; - - BitMapView segment_live_bits(); - BitMapView segment_claim_bits(); - - BitMap::idx_t segment_size() const; - - BitMap::idx_t segment_start(BitMap::idx_t segment) const; - BitMap::idx_t segment_end(BitMap::idx_t segment) const; - - bool is_segment_live(BitMap::idx_t segment) const; - bool set_segment_live(BitMap::idx_t segment); - - BitMap::idx_t first_live_segment() const; - BitMap::idx_t next_live_segment(BitMap::idx_t segment) const; - BitMap::idx_t index_to_segment(BitMap::idx_t index) const; - - bool claim_segment(BitMap::idx_t segment); - - void reset(size_t index); - void reset_segment(BitMap::idx_t segment); - - void iterate_segment(ObjectClosure* cl, BitMap::idx_t segment, uintptr_t page_start, size_t page_object_alignment_shift); - -public: - XLiveMap(uint32_t size); - - void reset(); - void resize(uint32_t size); - - bool is_marked() const; - - uint32_t live_objects() const; - size_t live_bytes() const; - - bool get(size_t index) const; - bool set(size_t index, bool finalizable, bool& inc_live); - - void inc_live(uint32_t objects, size_t bytes); - - void iterate(ObjectClosure* cl, uintptr_t page_start, size_t page_object_alignment_shift); -}; - -#endif // SHARE_GC_X_XLIVEMAP_HPP diff --git a/src/hotspot/share/gc/x/xLiveMap.inline.hpp b/src/hotspot/share/gc/x/xLiveMap.inline.hpp deleted file mode 100644 index f836f9ab4c2..00000000000 --- a/src/hotspot/share/gc/x/xLiveMap.inline.hpp +++ /dev/null @@ -1,175 +0,0 @@ -/* - * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XLIVEMAP_INLINE_HPP -#define SHARE_GC_X_XLIVEMAP_INLINE_HPP - -#include "gc/x/xLiveMap.hpp" - -#include "gc/x/xBitMap.inline.hpp" -#include "gc/x/xMark.hpp" -#include "gc/x/xOop.inline.hpp" -#include "gc/x/xUtils.inline.hpp" -#include "runtime/atomic.hpp" -#include "utilities/bitMap.inline.hpp" -#include "utilities/debug.hpp" - -inline void XLiveMap::reset() { - _seqnum = 0; -} - -inline bool XLiveMap::is_marked() const { - return Atomic::load_acquire(&_seqnum) == XGlobalSeqNum; -} - -inline uint32_t XLiveMap::live_objects() const { - assert(XGlobalPhase != XPhaseMark, "Invalid phase"); - return _live_objects; -} - -inline size_t XLiveMap::live_bytes() const { - assert(XGlobalPhase != XPhaseMark, "Invalid phase"); - return _live_bytes; -} - -inline const BitMapView XLiveMap::segment_live_bits() const { - return BitMapView(const_cast(&_segment_live_bits), nsegments); -} - -inline const BitMapView XLiveMap::segment_claim_bits() const { - return BitMapView(const_cast(&_segment_claim_bits), nsegments); -} - -inline BitMapView XLiveMap::segment_live_bits() { - return BitMapView(&_segment_live_bits, nsegments); -} - -inline BitMapView XLiveMap::segment_claim_bits() { - return BitMapView(&_segment_claim_bits, nsegments); -} - -inline bool XLiveMap::is_segment_live(BitMap::idx_t segment) const { - return segment_live_bits().par_at(segment); -} - -inline bool XLiveMap::set_segment_live(BitMap::idx_t segment) { - return segment_live_bits().par_set_bit(segment, memory_order_release); -} - -inline bool XLiveMap::claim_segment(BitMap::idx_t segment) { - return segment_claim_bits().par_set_bit(segment, memory_order_acq_rel); -} - -inline BitMap::idx_t XLiveMap::first_live_segment() const { - return segment_live_bits().find_first_set_bit(0, nsegments); -} - -inline BitMap::idx_t XLiveMap::next_live_segment(BitMap::idx_t segment) const { - return segment_live_bits().find_first_set_bit(segment + 1, nsegments); -} - -inline BitMap::idx_t XLiveMap::segment_size() const { - return _bitmap.size() / nsegments; -} - -inline BitMap::idx_t XLiveMap::index_to_segment(BitMap::idx_t index) const { - return index >> _segment_shift; -} - -inline bool XLiveMap::get(size_t index) const { - BitMap::idx_t segment = index_to_segment(index); - return is_marked() && // Page is marked - is_segment_live(segment) && // Segment is marked - _bitmap.par_at(index, memory_order_relaxed); // Object is marked -} - -inline bool XLiveMap::set(size_t index, bool finalizable, bool& inc_live) { - if (!is_marked()) { - // First object to be marked during this - // cycle, reset marking information. - reset(index); - } - - const BitMap::idx_t segment = index_to_segment(index); - if (!is_segment_live(segment)) { - // First object to be marked in this segment during - // this cycle, reset segment bitmap. - reset_segment(segment); - } - - return _bitmap.par_set_bit_pair(index, finalizable, inc_live); -} - -inline void XLiveMap::inc_live(uint32_t objects, size_t bytes) { - Atomic::add(&_live_objects, objects); - Atomic::add(&_live_bytes, bytes); -} - -inline BitMap::idx_t XLiveMap::segment_start(BitMap::idx_t segment) const { - return segment_size() * segment; -} - -inline BitMap::idx_t XLiveMap::segment_end(BitMap::idx_t segment) const { - return segment_start(segment) + segment_size(); -} - -inline void XLiveMap::iterate_segment(ObjectClosure* cl, BitMap::idx_t segment, uintptr_t page_start, size_t page_object_alignment_shift) { - assert(is_segment_live(segment), "Must be"); - - const BitMap::idx_t start_index = segment_start(segment); - const BitMap::idx_t end_index = segment_end(segment); - BitMap::idx_t index = _bitmap.find_first_set_bit(start_index, end_index); - - while (index < end_index) { - // Calculate object address - const uintptr_t addr = page_start + ((index / 2) << page_object_alignment_shift); - - // Get the size of the object before calling the closure, which - // might overwrite the object in case we are relocating in-place. - const size_t size = XUtils::object_size(addr); - - // Apply closure - cl->do_object(XOop::from_address(addr)); - - // Find next bit after this object - const uintptr_t next_addr = align_up(addr + size, 1 << page_object_alignment_shift); - const BitMap::idx_t next_index = ((next_addr - page_start) >> page_object_alignment_shift) * 2; - if (next_index >= end_index) { - // End of live map - break; - } - - index = _bitmap.find_first_set_bit(next_index, end_index); - } -} - -inline void XLiveMap::iterate(ObjectClosure* cl, uintptr_t page_start, size_t page_object_alignment_shift) { - if (is_marked()) { - for (BitMap::idx_t segment = first_live_segment(); segment < nsegments; segment = next_live_segment(segment)) { - // For each live segment - iterate_segment(cl, segment, page_start, page_object_alignment_shift); - } - } -} - -#endif // SHARE_GC_X_XLIVEMAP_INLINE_HPP diff --git a/src/hotspot/share/gc/x/xLock.hpp b/src/hotspot/share/gc/x/xLock.hpp deleted file mode 100644 index 2ba612d033c..00000000000 --- a/src/hotspot/share/gc/x/xLock.hpp +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright (c) 2015, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XLOCK_HPP -#define SHARE_GC_X_XLOCK_HPP - -#include "memory/allocation.hpp" -#include "runtime/mutex.hpp" - -class XLock { -private: - PlatformMutex _lock; - -public: - void lock(); - bool try_lock(); - void unlock(); -}; - -class XReentrantLock { -private: - XLock _lock; - Thread* volatile _owner; - uint64_t _count; - -public: - XReentrantLock(); - - void lock(); - void unlock(); - - bool is_owned() const; -}; - -class XConditionLock { -private: - PlatformMonitor _lock; - -public: - void lock(); - bool try_lock(); - void unlock(); - - bool wait(uint64_t millis = 0); - void notify(); - void notify_all(); -}; - -template -class XLocker : public StackObj { -private: - T* const _lock; - -public: - XLocker(T* lock); - ~XLocker(); -}; - -#endif // SHARE_GC_X_XLOCK_HPP diff --git a/src/hotspot/share/gc/x/xLock.inline.hpp b/src/hotspot/share/gc/x/xLock.inline.hpp deleted file mode 100644 index a72b65aa228..00000000000 --- a/src/hotspot/share/gc/x/xLock.inline.hpp +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XLOCK_INLINE_HPP -#define SHARE_GC_X_XLOCK_INLINE_HPP - -#include "gc/x/xLock.hpp" - -#include "runtime/atomic.hpp" -#include "runtime/javaThread.hpp" -#include "runtime/os.inline.hpp" -#include "utilities/debug.hpp" - -inline void XLock::lock() { - _lock.lock(); -} - -inline bool XLock::try_lock() { - return _lock.try_lock(); -} - -inline void XLock::unlock() { - _lock.unlock(); -} - -inline XReentrantLock::XReentrantLock() : - _lock(), - _owner(nullptr), - _count(0) {} - -inline void XReentrantLock::lock() { - Thread* const thread = Thread::current(); - Thread* const owner = Atomic::load(&_owner); - - if (owner != thread) { - _lock.lock(); - Atomic::store(&_owner, thread); - } - - _count++; -} - -inline void XReentrantLock::unlock() { - assert(is_owned(), "Invalid owner"); - assert(_count > 0, "Invalid count"); - - _count--; - - if (_count == 0) { - Atomic::store(&_owner, (Thread*)nullptr); - _lock.unlock(); - } -} - -inline bool XReentrantLock::is_owned() const { - Thread* const thread = Thread::current(); - Thread* const owner = Atomic::load(&_owner); - return owner == thread; -} - -inline void XConditionLock::lock() { - _lock.lock(); -} - -inline bool XConditionLock::try_lock() { - return _lock.try_lock(); -} - -inline void XConditionLock::unlock() { - _lock.unlock(); -} - -inline bool XConditionLock::wait(uint64_t millis) { - return _lock.wait(millis) == OS_OK; -} - -inline void XConditionLock::notify() { - _lock.notify(); -} - -inline void XConditionLock::notify_all() { - _lock.notify_all(); -} - -template -inline XLocker::XLocker(T* lock) : - _lock(lock) { - if (_lock != nullptr) { - _lock->lock(); - } -} - -template -inline XLocker::~XLocker() { - if (_lock != nullptr) { - _lock->unlock(); - } -} - -#endif // SHARE_GC_X_XLOCK_INLINE_HPP diff --git a/src/hotspot/share/gc/x/xMark.cpp b/src/hotspot/share/gc/x/xMark.cpp deleted file mode 100644 index 016c5702615..00000000000 --- a/src/hotspot/share/gc/x/xMark.cpp +++ /dev/null @@ -1,877 +0,0 @@ -/* - * Copyright (c) 2015, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "classfile/classLoaderData.hpp" -#include "classfile/classLoaderDataGraph.hpp" -#include "classfile/javaClasses.inline.hpp" -#include "code/nmethod.hpp" -#include "gc/shared/continuationGCSupport.inline.hpp" -#include "gc/shared/gc_globals.hpp" -#include "gc/shared/stringdedup/stringDedup.hpp" -#include "gc/shared/suspendibleThreadSet.hpp" -#include "gc/x/xAbort.inline.hpp" -#include "gc/x/xBarrier.inline.hpp" -#include "gc/x/xHeap.inline.hpp" -#include "gc/x/xLock.inline.hpp" -#include "gc/x/xMark.inline.hpp" -#include "gc/x/xMarkCache.inline.hpp" -#include "gc/x/xMarkContext.inline.hpp" -#include "gc/x/xMarkStack.inline.hpp" -#include "gc/x/xMarkTerminate.inline.hpp" -#include "gc/x/xNMethod.hpp" -#include "gc/x/xOop.inline.hpp" -#include "gc/x/xPage.hpp" -#include "gc/x/xPageTable.inline.hpp" -#include "gc/x/xRootsIterator.hpp" -#include "gc/x/xStackWatermark.hpp" -#include "gc/x/xStat.hpp" -#include "gc/x/xTask.hpp" -#include "gc/x/xThread.inline.hpp" -#include "gc/x/xThreadLocalAllocBuffer.hpp" -#include "gc/x/xUtils.inline.hpp" -#include "gc/x/xWorkers.hpp" -#include "logging/log.hpp" -#include "memory/iterator.inline.hpp" -#include "oops/objArrayOop.inline.hpp" -#include "oops/oop.inline.hpp" -#include "runtime/atomic.hpp" -#include "runtime/continuation.hpp" -#include "runtime/handshake.hpp" -#include "runtime/javaThread.hpp" -#include "runtime/prefetch.inline.hpp" -#include "runtime/safepointMechanism.hpp" -#include "runtime/stackWatermark.hpp" -#include "runtime/stackWatermarkSet.inline.hpp" -#include "runtime/threads.hpp" -#include "utilities/align.hpp" -#include "utilities/globalDefinitions.hpp" -#include "utilities/powerOfTwo.hpp" -#include "utilities/ticks.hpp" - -static const XStatSubPhase XSubPhaseConcurrentMark("Concurrent Mark"); -static const XStatSubPhase XSubPhaseConcurrentMarkTryFlush("Concurrent Mark Try Flush"); -static const XStatSubPhase XSubPhaseConcurrentMarkTryTerminate("Concurrent Mark Try Terminate"); -static const XStatSubPhase XSubPhaseMarkTryComplete("Pause Mark Try Complete"); - -XMark::XMark(XWorkers* workers, XPageTable* page_table) : - _workers(workers), - _page_table(page_table), - _allocator(), - _stripes(), - _terminate(), - _work_terminateflush(true), - _work_nproactiveflush(0), - _work_nterminateflush(0), - _nproactiveflush(0), - _nterminateflush(0), - _ntrycomplete(0), - _ncontinue(0), - _nworkers(0) {} - -bool XMark::is_initialized() const { - return _allocator.is_initialized(); -} - -size_t XMark::calculate_nstripes(uint nworkers) const { - // Calculate the number of stripes from the number of workers we use, - // where the number of stripes must be a power of two and we want to - // have at least one worker per stripe. - const size_t nstripes = round_down_power_of_2(nworkers); - return MIN2(nstripes, XMarkStripesMax); -} - -void XMark::start() { - // Verification - if (ZVerifyMarking) { - verify_all_stacks_empty(); - } - - // Increment global sequence number to invalidate - // marking information for all pages. - XGlobalSeqNum++; - - // Note that we start a marking cycle. - // Unlike other GCs, the color switch implicitly changes the nmethods - // to be armed, and the thread-local disarm values are lazily updated - // when JavaThreads wake up from safepoints. - CodeCache::on_gc_marking_cycle_start(); - - // Reset flush/continue counters - _nproactiveflush = 0; - _nterminateflush = 0; - _ntrycomplete = 0; - _ncontinue = 0; - - // Set number of workers to use - _nworkers = _workers->active_workers(); - - // Set number of mark stripes to use, based on number - // of workers we will use in the concurrent mark phase. - const size_t nstripes = calculate_nstripes(_nworkers); - _stripes.set_nstripes(nstripes); - - // Update statistics - XStatMark::set_at_mark_start(nstripes); - - // Print worker/stripe distribution - LogTarget(Debug, gc, marking) log; - if (log.is_enabled()) { - log.print("Mark Worker/Stripe Distribution"); - for (uint worker_id = 0; worker_id < _nworkers; worker_id++) { - const XMarkStripe* const stripe = _stripes.stripe_for_worker(_nworkers, worker_id); - const size_t stripe_id = _stripes.stripe_id(stripe); - log.print(" Worker %u(%u) -> Stripe " SIZE_FORMAT "(" SIZE_FORMAT ")", - worker_id, _nworkers, stripe_id, nstripes); - } - } -} - -void XMark::prepare_work() { - assert(_nworkers == _workers->active_workers(), "Invalid number of workers"); - - // Set number of active workers - _terminate.reset(_nworkers); - - // Reset flush counters - _work_nproactiveflush = _work_nterminateflush = 0; - _work_terminateflush = true; -} - -void XMark::finish_work() { - // Accumulate proactive/terminate flush counters - _nproactiveflush += _work_nproactiveflush; - _nterminateflush += _work_nterminateflush; -} - -bool XMark::is_array(uintptr_t addr) const { - return XOop::from_address(addr)->is_objArray(); -} - -void XMark::push_partial_array(uintptr_t addr, size_t size, bool finalizable) { - assert(is_aligned(addr, XMarkPartialArrayMinSize), "Address misaligned"); - XMarkThreadLocalStacks* const stacks = XThreadLocalData::stacks(Thread::current()); - XMarkStripe* const stripe = _stripes.stripe_for_addr(addr); - const uintptr_t offset = XAddress::offset(addr) >> XMarkPartialArrayMinSizeShift; - const uintptr_t length = size / oopSize; - const XMarkStackEntry entry(offset, length, finalizable); - - log_develop_trace(gc, marking)("Array push partial: " PTR_FORMAT " (" SIZE_FORMAT "), stripe: " SIZE_FORMAT, - addr, size, _stripes.stripe_id(stripe)); - - stacks->push(&_allocator, &_stripes, stripe, entry, false /* publish */); -} - -void XMark::follow_small_array(uintptr_t addr, size_t size, bool finalizable) { - assert(size <= XMarkPartialArrayMinSize, "Too large, should be split"); - const size_t length = size / oopSize; - - log_develop_trace(gc, marking)("Array follow small: " PTR_FORMAT " (" SIZE_FORMAT ")", addr, size); - - XBarrier::mark_barrier_on_oop_array((oop*)addr, length, finalizable); -} - -void XMark::follow_large_array(uintptr_t addr, size_t size, bool finalizable) { - assert(size <= (size_t)arrayOopDesc::max_array_length(T_OBJECT) * oopSize, "Too large"); - assert(size > XMarkPartialArrayMinSize, "Too small, should not be split"); - const uintptr_t start = addr; - const uintptr_t end = start + size; - - // Calculate the aligned middle start/end/size, where the middle start - // should always be greater than the start (hence the +1 below) to make - // sure we always do some follow work, not just split the array into pieces. - const uintptr_t middle_start = align_up(start + 1, XMarkPartialArrayMinSize); - const size_t middle_size = align_down(end - middle_start, XMarkPartialArrayMinSize); - const uintptr_t middle_end = middle_start + middle_size; - - log_develop_trace(gc, marking)("Array follow large: " PTR_FORMAT "-" PTR_FORMAT" (" SIZE_FORMAT "), " - "middle: " PTR_FORMAT "-" PTR_FORMAT " (" SIZE_FORMAT ")", - start, end, size, middle_start, middle_end, middle_size); - - // Push unaligned trailing part - if (end > middle_end) { - const uintptr_t trailing_addr = middle_end; - const size_t trailing_size = end - middle_end; - push_partial_array(trailing_addr, trailing_size, finalizable); - } - - // Push aligned middle part(s) - uintptr_t partial_addr = middle_end; - while (partial_addr > middle_start) { - const size_t parts = 2; - const size_t partial_size = align_up((partial_addr - middle_start) / parts, XMarkPartialArrayMinSize); - partial_addr -= partial_size; - push_partial_array(partial_addr, partial_size, finalizable); - } - - // Follow leading part - assert(start < middle_start, "Miscalculated middle start"); - const uintptr_t leading_addr = start; - const size_t leading_size = middle_start - start; - follow_small_array(leading_addr, leading_size, finalizable); -} - -void XMark::follow_array(uintptr_t addr, size_t size, bool finalizable) { - if (size <= XMarkPartialArrayMinSize) { - follow_small_array(addr, size, finalizable); - } else { - follow_large_array(addr, size, finalizable); - } -} - -void XMark::follow_partial_array(XMarkStackEntry entry, bool finalizable) { - const uintptr_t addr = XAddress::good(entry.partial_array_offset() << XMarkPartialArrayMinSizeShift); - const size_t size = entry.partial_array_length() * oopSize; - - follow_array(addr, size, finalizable); -} - -template -class XMarkBarrierOopClosure : public ClaimMetadataVisitingOopIterateClosure { -public: - XMarkBarrierOopClosure() : - ClaimMetadataVisitingOopIterateClosure(finalizable - ? ClassLoaderData::_claim_finalizable - : ClassLoaderData::_claim_strong, - finalizable - ? nullptr - : XHeap::heap()->reference_discoverer()) {} - - virtual void do_oop(oop* p) { - XBarrier::mark_barrier_on_oop_field(p, finalizable); - } - - virtual void do_oop(narrowOop* p) { - ShouldNotReachHere(); - } - - virtual void do_nmethod(nmethod* nm) { - assert(!finalizable, "Can't handle finalizable marking of nmethods"); - nm->run_nmethod_entry_barrier(); - } -}; - -void XMark::follow_array_object(objArrayOop obj, bool finalizable) { - if (finalizable) { - XMarkBarrierOopClosure cl; - cl.do_klass(obj->klass()); - } else { - XMarkBarrierOopClosure cl; - cl.do_klass(obj->klass()); - } - - const uintptr_t addr = (uintptr_t)obj->base(); - const size_t size = (size_t)obj->length() * oopSize; - - follow_array(addr, size, finalizable); -} - -void XMark::follow_object(oop obj, bool finalizable) { - if (ContinuationGCSupport::relativize_stack_chunk(obj)) { - // Loom doesn't support mixing of finalizable marking and strong marking of - // stack chunks. See: RelativizeDerivedOopClosure. - XMarkBarrierOopClosure cl; - obj->oop_iterate(&cl); - return; - } - - if (finalizable) { - XMarkBarrierOopClosure cl; - obj->oop_iterate(&cl); - } else { - XMarkBarrierOopClosure cl; - obj->oop_iterate(&cl); - } -} - -static void try_deduplicate(XMarkContext* context, oop obj) { - if (!StringDedup::is_enabled()) { - // Not enabled - return; - } - - if (!java_lang_String::is_instance(obj)) { - // Not a String object - return; - } - - if (java_lang_String::test_and_set_deduplication_requested(obj)) { - // Already requested deduplication - return; - } - - // Request deduplication - context->string_dedup_requests()->add(obj); -} - -void XMark::mark_and_follow(XMarkContext* context, XMarkStackEntry entry) { - // Decode flags - const bool finalizable = entry.finalizable(); - const bool partial_array = entry.partial_array(); - - if (partial_array) { - follow_partial_array(entry, finalizable); - return; - } - - // Decode object address and additional flags - const uintptr_t addr = entry.object_address(); - const bool mark = entry.mark(); - bool inc_live = entry.inc_live(); - const bool follow = entry.follow(); - - XPage* const page = _page_table->get(addr); - assert(page->is_relocatable(), "Invalid page state"); - - // Mark - if (mark && !page->mark_object(addr, finalizable, inc_live)) { - // Already marked - return; - } - - // Increment live - if (inc_live) { - // Update live objects/bytes for page. We use the aligned object - // size since that is the actual number of bytes used on the page - // and alignment paddings can never be reclaimed. - const size_t size = XUtils::object_size(addr); - const size_t aligned_size = align_up(size, page->object_alignment()); - context->cache()->inc_live(page, aligned_size); - } - - // Follow - if (follow) { - if (is_array(addr)) { - follow_array_object(objArrayOop(XOop::from_address(addr)), finalizable); - } else { - const oop obj = XOop::from_address(addr); - follow_object(obj, finalizable); - - if (!finalizable) { - // Try deduplicate - try_deduplicate(context, obj); - } - } - } -} - -template -bool XMark::drain(XMarkContext* context, T* timeout) { - XMarkStripe* const stripe = context->stripe(); - XMarkThreadLocalStacks* const stacks = context->stacks(); - XMarkStackEntry entry; - - // Drain stripe stacks - while (stacks->pop(&_allocator, &_stripes, stripe, entry)) { - mark_and_follow(context, entry); - - // Check timeout - if (timeout->has_expired()) { - // Timeout - return false; - } - } - - // Success - return !timeout->has_expired(); -} - -bool XMark::try_steal_local(XMarkContext* context) { - XMarkStripe* const stripe = context->stripe(); - XMarkThreadLocalStacks* const stacks = context->stacks(); - - // Try to steal a local stack from another stripe - for (XMarkStripe* victim_stripe = _stripes.stripe_next(stripe); - victim_stripe != stripe; - victim_stripe = _stripes.stripe_next(victim_stripe)) { - XMarkStack* const stack = stacks->steal(&_stripes, victim_stripe); - if (stack != nullptr) { - // Success, install the stolen stack - stacks->install(&_stripes, stripe, stack); - return true; - } - } - - // Nothing to steal - return false; -} - -bool XMark::try_steal_global(XMarkContext* context) { - XMarkStripe* const stripe = context->stripe(); - XMarkThreadLocalStacks* const stacks = context->stacks(); - - // Try to steal a stack from another stripe - for (XMarkStripe* victim_stripe = _stripes.stripe_next(stripe); - victim_stripe != stripe; - victim_stripe = _stripes.stripe_next(victim_stripe)) { - XMarkStack* const stack = victim_stripe->steal_stack(); - if (stack != nullptr) { - // Success, install the stolen stack - stacks->install(&_stripes, stripe, stack); - return true; - } - } - - // Nothing to steal - return false; -} - -bool XMark::try_steal(XMarkContext* context) { - return try_steal_local(context) || try_steal_global(context); -} - -void XMark::idle() const { - os::naked_short_sleep(1); -} - -class XMarkFlushAndFreeStacksClosure : public HandshakeClosure { -private: - XMark* const _mark; - bool _flushed; - -public: - XMarkFlushAndFreeStacksClosure(XMark* mark) : - HandshakeClosure("XMarkFlushAndFreeStacks"), - _mark(mark), - _flushed(false) {} - - void do_thread(Thread* thread) { - if (_mark->flush_and_free(thread)) { - _flushed = true; - } - } - - bool flushed() const { - return _flushed; - } -}; - -bool XMark::flush(bool at_safepoint) { - XMarkFlushAndFreeStacksClosure cl(this); - if (at_safepoint) { - Threads::threads_do(&cl); - } else { - Handshake::execute(&cl); - } - - // Returns true if more work is available - return cl.flushed() || !_stripes.is_empty(); -} - -bool XMark::try_flush(volatile size_t* nflush) { - Atomic::inc(nflush); - - XStatTimer timer(XSubPhaseConcurrentMarkTryFlush); - return flush(false /* at_safepoint */); -} - -bool XMark::try_proactive_flush() { - // Only do proactive flushes from worker 0 - if (XThread::worker_id() != 0) { - return false; - } - - if (Atomic::load(&_work_nproactiveflush) == XMarkProactiveFlushMax || - Atomic::load(&_work_nterminateflush) != 0) { - // Limit reached or we're trying to terminate - return false; - } - - return try_flush(&_work_nproactiveflush); -} - -bool XMark::try_terminate() { - XStatTimer timer(XSubPhaseConcurrentMarkTryTerminate); - - if (_terminate.enter_stage0()) { - // Last thread entered stage 0, flush - if (Atomic::load(&_work_terminateflush) && - Atomic::load(&_work_nterminateflush) != XMarkTerminateFlushMax) { - // Exit stage 0 to allow other threads to continue marking - _terminate.exit_stage0(); - - // Flush before termination - if (!try_flush(&_work_nterminateflush)) { - // No more work available, skip further flush attempts - Atomic::store(&_work_terminateflush, false); - } - - // Don't terminate, regardless of whether we successfully - // flushed out more work or not. We've already exited - // termination stage 0, to allow other threads to continue - // marking, so this thread has to return false and also - // make another round of attempted marking. - return false; - } - } - - for (;;) { - if (_terminate.enter_stage1()) { - // Last thread entered stage 1, terminate - return true; - } - - // Idle to give the other threads - // a chance to enter termination. - idle(); - - if (!_terminate.try_exit_stage1()) { - // All workers in stage 1, terminate - return true; - } - - if (_terminate.try_exit_stage0()) { - // More work available, don't terminate - return false; - } - } -} - -class XMarkNoTimeout : public StackObj { -public: - bool has_expired() { - // No timeout, but check for signal to abort - return XAbort::should_abort(); - } -}; - -void XMark::work_without_timeout(XMarkContext* context) { - XStatTimer timer(XSubPhaseConcurrentMark); - XMarkNoTimeout no_timeout; - - for (;;) { - if (!drain(context, &no_timeout)) { - // Abort - break; - } - - if (try_steal(context)) { - // Stole work - continue; - } - - if (try_proactive_flush()) { - // Work available - continue; - } - - if (try_terminate()) { - // Terminate - break; - } - } -} - -class XMarkTimeout : public StackObj { -private: - const Ticks _start; - const uint64_t _timeout; - const uint64_t _check_interval; - uint64_t _check_at; - uint64_t _check_count; - bool _expired; - -public: - XMarkTimeout(uint64_t timeout_in_micros) : - _start(Ticks::now()), - _timeout(_start.value() + TimeHelper::micros_to_counter(timeout_in_micros)), - _check_interval(200), - _check_at(_check_interval), - _check_count(0), - _expired(false) {} - - ~XMarkTimeout() { - const Tickspan duration = Ticks::now() - _start; - log_debug(gc, marking)("Mark With Timeout (%s): %s, " UINT64_FORMAT " oops, %.3fms", - XThread::name(), _expired ? "Expired" : "Completed", - _check_count, TimeHelper::counter_to_millis(duration.value())); - } - - bool has_expired() { - if (++_check_count == _check_at) { - _check_at += _check_interval; - if ((uint64_t)Ticks::now().value() >= _timeout) { - // Timeout - _expired = true; - } - } - - return _expired; - } -}; - -void XMark::work_with_timeout(XMarkContext* context, uint64_t timeout_in_micros) { - XStatTimer timer(XSubPhaseMarkTryComplete); - XMarkTimeout timeout(timeout_in_micros); - - for (;;) { - if (!drain(context, &timeout)) { - // Timed out - break; - } - - if (try_steal(context)) { - // Stole work - continue; - } - - // Terminate - break; - } -} - -void XMark::work(uint64_t timeout_in_micros) { - XMarkStripe* const stripe = _stripes.stripe_for_worker(_nworkers, XThread::worker_id()); - XMarkThreadLocalStacks* const stacks = XThreadLocalData::stacks(Thread::current()); - XMarkContext context(_stripes.nstripes(), stripe, stacks); - - if (timeout_in_micros == 0) { - work_without_timeout(&context); - } else { - work_with_timeout(&context, timeout_in_micros); - } - - // Flush and publish stacks - stacks->flush(&_allocator, &_stripes); - - // Free remaining stacks - stacks->free(&_allocator); -} - -class XMarkOopClosure : public OopClosure { - virtual void do_oop(oop* p) { - XBarrier::mark_barrier_on_oop_field(p, false /* finalizable */); - } - - virtual void do_oop(narrowOop* p) { - ShouldNotReachHere(); - } -}; - -class XMarkThreadClosure : public ThreadClosure { -private: - OopClosure* const _cl; - -public: - XMarkThreadClosure(OopClosure* cl) : - _cl(cl) { - XThreadLocalAllocBuffer::reset_statistics(); - } - ~XMarkThreadClosure() { - XThreadLocalAllocBuffer::publish_statistics(); - } - virtual void do_thread(Thread* thread) { - JavaThread* const jt = JavaThread::cast(thread); - StackWatermarkSet::finish_processing(jt, _cl, StackWatermarkKind::gc); - XThreadLocalAllocBuffer::update_stats(jt); - } -}; - -class XMarkNMethodClosure : public NMethodClosure { -private: - OopClosure* const _cl; - -public: - XMarkNMethodClosure(OopClosure* cl) : - _cl(cl) {} - - virtual void do_nmethod(nmethod* nm) { - XLocker locker(XNMethod::lock_for_nmethod(nm)); - if (XNMethod::is_armed(nm)) { - XNMethod::nmethod_oops_do_inner(nm, _cl); - - // CodeCache unloading support - nm->mark_as_maybe_on_stack(); - - XNMethod::disarm(nm); - } - } -}; - -typedef ClaimingCLDToOopClosure XMarkCLDClosure; - -class XMarkRootsTask : public XTask { -private: - XMark* const _mark; - SuspendibleThreadSetJoiner _sts_joiner; - XRootsIterator _roots; - - XMarkOopClosure _cl; - XMarkCLDClosure _cld_cl; - XMarkThreadClosure _thread_cl; - XMarkNMethodClosure _nm_cl; - -public: - XMarkRootsTask(XMark* mark) : - XTask("XMarkRootsTask"), - _mark(mark), - _sts_joiner(), - _roots(ClassLoaderData::_claim_strong), - _cl(), - _cld_cl(&_cl), - _thread_cl(&_cl), - _nm_cl(&_cl) { - ClassLoaderDataGraph_lock->lock(); - } - - ~XMarkRootsTask() { - ClassLoaderDataGraph_lock->unlock(); - } - - virtual void work() { - _roots.apply(&_cl, - &_cld_cl, - &_thread_cl, - &_nm_cl); - - // Flush and free worker stacks. Needed here since - // the set of workers executing during root scanning - // can be different from the set of workers executing - // during mark. - _mark->flush_and_free(); - } -}; - -class XMarkTask : public XTask { -private: - XMark* const _mark; - const uint64_t _timeout_in_micros; - -public: - XMarkTask(XMark* mark, uint64_t timeout_in_micros = 0) : - XTask("XMarkTask"), - _mark(mark), - _timeout_in_micros(timeout_in_micros) { - _mark->prepare_work(); - } - - ~XMarkTask() { - _mark->finish_work(); - } - - virtual void work() { - _mark->work(_timeout_in_micros); - } -}; - -void XMark::mark(bool initial) { - if (initial) { - XMarkRootsTask task(this); - _workers->run(&task); - } - - XMarkTask task(this); - _workers->run(&task); -} - -bool XMark::try_complete() { - _ntrycomplete++; - - // Use nconcurrent number of worker threads to maintain the - // worker/stripe distribution used during concurrent mark. - XMarkTask task(this, XMarkCompleteTimeout); - _workers->run(&task); - - // Successful if all stripes are empty - return _stripes.is_empty(); -} - -bool XMark::try_end() { - // Flush all mark stacks - if (!flush(true /* at_safepoint */)) { - // Mark completed - return true; - } - - // Try complete marking by doing a limited - // amount of mark work in this phase. - return try_complete(); -} - -bool XMark::end() { - // Try end marking - if (!try_end()) { - // Mark not completed - _ncontinue++; - return false; - } - - // Verification - if (ZVerifyMarking) { - verify_all_stacks_empty(); - } - - // Update statistics - XStatMark::set_at_mark_end(_nproactiveflush, _nterminateflush, _ntrycomplete, _ncontinue); - - // Note that we finished a marking cycle. - // Unlike other GCs, we do not arm the nmethods - // when marking terminates. - CodeCache::on_gc_marking_cycle_finish(); - - // Mark completed - return true; -} - -void XMark::free() { - // Free any unused mark stack space - _allocator.free(); - - // Update statistics - XStatMark::set_at_mark_free(_allocator.size()); -} - -void XMark::flush_and_free() { - Thread* const thread = Thread::current(); - flush_and_free(thread); -} - -bool XMark::flush_and_free(Thread* thread) { - XMarkThreadLocalStacks* const stacks = XThreadLocalData::stacks(thread); - const bool flushed = stacks->flush(&_allocator, &_stripes); - stacks->free(&_allocator); - return flushed; -} - -class XVerifyMarkStacksEmptyClosure : public ThreadClosure { -private: - const XMarkStripeSet* const _stripes; - -public: - XVerifyMarkStacksEmptyClosure(const XMarkStripeSet* stripes) : - _stripes(stripes) {} - - void do_thread(Thread* thread) { - XMarkThreadLocalStacks* const stacks = XThreadLocalData::stacks(thread); - guarantee(stacks->is_empty(_stripes), "Should be empty"); - } -}; - -void XMark::verify_all_stacks_empty() const { - // Verify thread stacks - XVerifyMarkStacksEmptyClosure cl(&_stripes); - Threads::threads_do(&cl); - - // Verify stripe stacks - guarantee(_stripes.is_empty(), "Should be empty"); -} diff --git a/src/hotspot/share/gc/x/xMark.hpp b/src/hotspot/share/gc/x/xMark.hpp deleted file mode 100644 index 5e40b79f02e..00000000000 --- a/src/hotspot/share/gc/x/xMark.hpp +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XMARK_HPP -#define SHARE_GC_X_XMARK_HPP - -#include "gc/x/xMarkStack.hpp" -#include "gc/x/xMarkStackAllocator.hpp" -#include "gc/x/xMarkStackEntry.hpp" -#include "gc/x/xMarkTerminate.hpp" -#include "oops/oopsHierarchy.hpp" -#include "utilities/globalDefinitions.hpp" - -class Thread; -class XMarkContext; -class XPageTable; -class XWorkers; - -class XMark { - friend class XMarkTask; - -private: - XWorkers* const _workers; - XPageTable* const _page_table; - XMarkStackAllocator _allocator; - XMarkStripeSet _stripes; - XMarkTerminate _terminate; - volatile bool _work_terminateflush; - volatile size_t _work_nproactiveflush; - volatile size_t _work_nterminateflush; - size_t _nproactiveflush; - size_t _nterminateflush; - size_t _ntrycomplete; - size_t _ncontinue; - uint _nworkers; - - size_t calculate_nstripes(uint nworkers) const; - - bool is_array(uintptr_t addr) const; - void push_partial_array(uintptr_t addr, size_t size, bool finalizable); - void follow_small_array(uintptr_t addr, size_t size, bool finalizable); - void follow_large_array(uintptr_t addr, size_t size, bool finalizable); - void follow_array(uintptr_t addr, size_t size, bool finalizable); - void follow_partial_array(XMarkStackEntry entry, bool finalizable); - void follow_array_object(objArrayOop obj, bool finalizable); - void follow_object(oop obj, bool finalizable); - void mark_and_follow(XMarkContext* context, XMarkStackEntry entry); - - template bool drain(XMarkContext* context, T* timeout); - bool try_steal_local(XMarkContext* context); - bool try_steal_global(XMarkContext* context); - bool try_steal(XMarkContext* context); - void idle() const; - bool flush(bool at_safepoint); - bool try_proactive_flush(); - bool try_flush(volatile size_t* nflush); - bool try_terminate(); - bool try_complete(); - bool try_end(); - - void prepare_work(); - void finish_work(); - - void work_without_timeout(XMarkContext* context); - void work_with_timeout(XMarkContext* context, uint64_t timeout_in_micros); - void work(uint64_t timeout_in_micros); - - void verify_all_stacks_empty() const; - -public: - XMark(XWorkers* workers, XPageTable* page_table); - - bool is_initialized() const; - - template void mark_object(uintptr_t addr); - - void start(); - void mark(bool initial); - bool end(); - void free(); - - void flush_and_free(); - bool flush_and_free(Thread* thread); -}; - -#endif // SHARE_GC_X_XMARK_HPP diff --git a/src/hotspot/share/gc/x/xMark.inline.hpp b/src/hotspot/share/gc/x/xMark.inline.hpp deleted file mode 100644 index 1f8fc81f525..00000000000 --- a/src/hotspot/share/gc/x/xMark.inline.hpp +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XMARK_INLINE_HPP -#define SHARE_GC_X_XMARK_INLINE_HPP - -#include "gc/x/xMark.hpp" - -#include "gc/x/xAddress.inline.hpp" -#include "gc/x/xMarkStack.inline.hpp" -#include "gc/x/xPage.inline.hpp" -#include "gc/x/xPageTable.inline.hpp" -#include "gc/x/xThreadLocalData.hpp" -#include "runtime/javaThread.hpp" -#include "utilities/debug.hpp" - -// Marking before pushing helps reduce mark stack memory usage. However, -// we only mark before pushing in GC threads to avoid burdening Java threads -// with writing to, and potentially first having to clear, mark bitmaps. -// -// It's also worth noting that while marking an object can be done at any -// time in the marking phase, following an object can only be done after -// root processing has called ClassLoaderDataGraph::clear_claimed_marks(), -// since it otherwise would interact badly with claiming of CLDs. - -template -inline void XMark::mark_object(uintptr_t addr) { - assert(XAddress::is_marked(addr), "Should be marked"); - - XPage* const page = _page_table->get(addr); - if (page->is_allocating()) { - // Already implicitly marked - return; - } - - const bool mark_before_push = gc_thread; - bool inc_live = false; - - if (mark_before_push) { - // Try mark object - if (!page->mark_object(addr, finalizable, inc_live)) { - // Already marked - return; - } - } else { - // Don't push if already marked - if (page->is_object_marked(addr)) { - // Already marked - return; - } - } - - // Push - XMarkThreadLocalStacks* const stacks = XThreadLocalData::stacks(Thread::current()); - XMarkStripe* const stripe = _stripes.stripe_for_addr(addr); - XMarkStackEntry entry(addr, !mark_before_push, inc_live, follow, finalizable); - stacks->push(&_allocator, &_stripes, stripe, entry, publish); -} - -#endif // SHARE_GC_X_XMARK_INLINE_HPP diff --git a/src/hotspot/share/gc/x/xMarkCache.cpp b/src/hotspot/share/gc/x/xMarkCache.cpp deleted file mode 100644 index c7e580ed883..00000000000 --- a/src/hotspot/share/gc/x/xMarkCache.cpp +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xMarkCache.inline.hpp" -#include "utilities/globalDefinitions.hpp" -#include "utilities/powerOfTwo.hpp" - -XMarkCacheEntry::XMarkCacheEntry() : - _page(nullptr), - _objects(0), - _bytes(0) {} - -XMarkCache::XMarkCache(size_t nstripes) : - _shift(XMarkStripeShift + exact_log2(nstripes)) {} - -XMarkCache::~XMarkCache() { - // Evict all entries - for (size_t i = 0; i < XMarkCacheSize; i++) { - _cache[i].evict(); - } -} diff --git a/src/hotspot/share/gc/x/xMarkCache.hpp b/src/hotspot/share/gc/x/xMarkCache.hpp deleted file mode 100644 index 8fbdc873522..00000000000 --- a/src/hotspot/share/gc/x/xMarkCache.hpp +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XMARKCACHE_HPP -#define SHARE_GC_X_XMARKCACHE_HPP - -#include "gc/x/xGlobals.hpp" -#include "memory/allocation.hpp" - -class XPage; - -class XMarkCacheEntry { -private: - XPage* _page; - uint32_t _objects; - size_t _bytes; - -public: - XMarkCacheEntry(); - - void inc_live(XPage* page, size_t bytes); - void evict(); -}; - -class XMarkCache : public StackObj { -private: - const size_t _shift; - XMarkCacheEntry _cache[XMarkCacheSize]; - -public: - XMarkCache(size_t nstripes); - ~XMarkCache(); - - void inc_live(XPage* page, size_t bytes); -}; - -#endif // SHARE_GC_X_XMARKCACHE_HPP diff --git a/src/hotspot/share/gc/x/xMarkCache.inline.hpp b/src/hotspot/share/gc/x/xMarkCache.inline.hpp deleted file mode 100644 index 27dd1b93339..00000000000 --- a/src/hotspot/share/gc/x/xMarkCache.inline.hpp +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XMARKCACHE_INLINE_HPP -#define SHARE_GC_X_XMARKCACHE_INLINE_HPP - -#include "gc/x/xMarkCache.hpp" - -#include "gc/x/xPage.inline.hpp" - -inline void XMarkCacheEntry::inc_live(XPage* page, size_t bytes) { - if (_page == page) { - // Cache hit - _objects++; - _bytes += bytes; - } else { - // Cache miss - evict(); - _page = page; - _objects = 1; - _bytes = bytes; - } -} - -inline void XMarkCacheEntry::evict() { - if (_page != nullptr) { - // Write cached data out to page - _page->inc_live(_objects, _bytes); - _page = nullptr; - } -} - -inline void XMarkCache::inc_live(XPage* page, size_t bytes) { - const size_t mask = XMarkCacheSize - 1; - const size_t index = (page->start() >> _shift) & mask; - _cache[index].inc_live(page, bytes); -} - -#endif // SHARE_GC_X_XMARKCACHE_INLINE_HPP diff --git a/src/hotspot/share/gc/x/xMarkContext.hpp b/src/hotspot/share/gc/x/xMarkContext.hpp deleted file mode 100644 index 246822931b7..00000000000 --- a/src/hotspot/share/gc/x/xMarkContext.hpp +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XMARKCONTEXT_HPP -#define SHARE_GC_X_XMARKCONTEXT_HPP - -#include "gc/x/xMarkCache.hpp" -#include "gc/shared/stringdedup/stringDedup.hpp" -#include "memory/allocation.hpp" - -class XMarkStripe; -class XMarkThreadLocalStacks; - -class XMarkContext : public StackObj { -private: - XMarkCache _cache; - XMarkStripe* const _stripe; - XMarkThreadLocalStacks* const _stacks; - StringDedup::Requests _string_dedup_requests; - -public: - XMarkContext(size_t nstripes, - XMarkStripe* stripe, - XMarkThreadLocalStacks* stacks); - - XMarkCache* cache(); - XMarkStripe* stripe(); - XMarkThreadLocalStacks* stacks(); - StringDedup::Requests* string_dedup_requests(); -}; - -#endif // SHARE_GC_X_XMARKCONTEXT_HPP diff --git a/src/hotspot/share/gc/x/xMarkContext.inline.hpp b/src/hotspot/share/gc/x/xMarkContext.inline.hpp deleted file mode 100644 index 74a182b67c3..00000000000 --- a/src/hotspot/share/gc/x/xMarkContext.inline.hpp +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XMARKCONTEXT_INLINE_HPP -#define SHARE_GC_X_XMARKCONTEXT_INLINE_HPP - -#include "gc/x/xMarkContext.hpp" - -inline XMarkContext::XMarkContext(size_t nstripes, - XMarkStripe* stripe, - XMarkThreadLocalStacks* stacks) : - _cache(nstripes), - _stripe(stripe), - _stacks(stacks), - _string_dedup_requests() {} - -inline XMarkCache* XMarkContext::cache() { - return &_cache; -} - -inline XMarkStripe* XMarkContext::stripe() { - return _stripe; -} - -inline XMarkThreadLocalStacks* XMarkContext::stacks() { - return _stacks; -} - -inline StringDedup::Requests* XMarkContext::string_dedup_requests() { - return &_string_dedup_requests; -} - -#endif // SHARE_GC_X_XMARKCACHE_INLINE_HPP diff --git a/src/hotspot/share/gc/x/xMarkStack.cpp b/src/hotspot/share/gc/x/xMarkStack.cpp deleted file mode 100644 index 6f7619c9a35..00000000000 --- a/src/hotspot/share/gc/x/xMarkStack.cpp +++ /dev/null @@ -1,226 +0,0 @@ -/* - * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xMarkStack.inline.hpp" -#include "gc/x/xMarkStackAllocator.hpp" -#include "logging/log.hpp" -#include "utilities/debug.hpp" -#include "utilities/powerOfTwo.hpp" - -XMarkStripe::XMarkStripe() : - _published(), - _overflowed() {} - -XMarkStripeSet::XMarkStripeSet() : - _nstripes(0), - _nstripes_mask(0), - _stripes() {} - -void XMarkStripeSet::set_nstripes(size_t nstripes) { - assert(is_power_of_2(nstripes), "Must be a power of two"); - assert(is_power_of_2(XMarkStripesMax), "Must be a power of two"); - assert(nstripes >= 1, "Invalid number of stripes"); - assert(nstripes <= XMarkStripesMax, "Invalid number of stripes"); - - _nstripes = nstripes; - _nstripes_mask = nstripes - 1; - - log_debug(gc, marking)("Using " SIZE_FORMAT " mark stripes", _nstripes); -} - -bool XMarkStripeSet::is_empty() const { - for (size_t i = 0; i < _nstripes; i++) { - if (!_stripes[i].is_empty()) { - return false; - } - } - - return true; -} - -XMarkStripe* XMarkStripeSet::stripe_for_worker(uint nworkers, uint worker_id) { - const size_t spillover_limit = (nworkers / _nstripes) * _nstripes; - size_t index; - - if (worker_id < spillover_limit) { - // Not a spillover worker, use natural stripe - index = worker_id & _nstripes_mask; - } else { - // Distribute spillover workers evenly across stripes - const size_t spillover_nworkers = nworkers - spillover_limit; - const size_t spillover_worker_id = worker_id - spillover_limit; - const double spillover_chunk = (double)_nstripes / (double)spillover_nworkers; - index = spillover_worker_id * spillover_chunk; - } - - assert(index < _nstripes, "Invalid index"); - return &_stripes[index]; -} - -XMarkThreadLocalStacks::XMarkThreadLocalStacks() : - _magazine(nullptr) { - for (size_t i = 0; i < XMarkStripesMax; i++) { - _stacks[i] = nullptr; - } -} - -bool XMarkThreadLocalStacks::is_empty(const XMarkStripeSet* stripes) const { - for (size_t i = 0; i < stripes->nstripes(); i++) { - XMarkStack* const stack = _stacks[i]; - if (stack != nullptr) { - return false; - } - } - - return true; -} - -XMarkStack* XMarkThreadLocalStacks::allocate_stack(XMarkStackAllocator* allocator) { - if (_magazine == nullptr) { - // Allocate new magazine - _magazine = allocator->alloc_magazine(); - if (_magazine == nullptr) { - return nullptr; - } - } - - XMarkStack* stack = nullptr; - - if (!_magazine->pop(stack)) { - // Magazine is empty, convert magazine into a new stack - _magazine->~XMarkStackMagazine(); - stack = new ((void*)_magazine) XMarkStack(); - _magazine = nullptr; - } - - return stack; -} - -void XMarkThreadLocalStacks::free_stack(XMarkStackAllocator* allocator, XMarkStack* stack) { - for (;;) { - if (_magazine == nullptr) { - // Convert stack into a new magazine - stack->~XMarkStack(); - _magazine = new ((void*)stack) XMarkStackMagazine(); - return; - } - - if (_magazine->push(stack)) { - // Success - return; - } - - // Free and uninstall full magazine - allocator->free_magazine(_magazine); - _magazine = nullptr; - } -} - -bool XMarkThreadLocalStacks::push_slow(XMarkStackAllocator* allocator, - XMarkStripe* stripe, - XMarkStack** stackp, - XMarkStackEntry entry, - bool publish) { - XMarkStack* stack = *stackp; - - for (;;) { - if (stack == nullptr) { - // Allocate and install new stack - *stackp = stack = allocate_stack(allocator); - if (stack == nullptr) { - // Out of mark stack memory - return false; - } - } - - if (stack->push(entry)) { - // Success - return true; - } - - // Publish/Overflow and uninstall stack - stripe->publish_stack(stack, publish); - *stackp = stack = nullptr; - } -} - -bool XMarkThreadLocalStacks::pop_slow(XMarkStackAllocator* allocator, - XMarkStripe* stripe, - XMarkStack** stackp, - XMarkStackEntry& entry) { - XMarkStack* stack = *stackp; - - for (;;) { - if (stack == nullptr) { - // Try steal and install stack - *stackp = stack = stripe->steal_stack(); - if (stack == nullptr) { - // Nothing to steal - return false; - } - } - - if (stack->pop(entry)) { - // Success - return true; - } - - // Free and uninstall stack - free_stack(allocator, stack); - *stackp = stack = nullptr; - } -} - -bool XMarkThreadLocalStacks::flush(XMarkStackAllocator* allocator, XMarkStripeSet* stripes) { - bool flushed = false; - - // Flush all stacks - for (size_t i = 0; i < stripes->nstripes(); i++) { - XMarkStripe* const stripe = stripes->stripe_at(i); - XMarkStack** const stackp = &_stacks[i]; - XMarkStack* const stack = *stackp; - if (stack == nullptr) { - continue; - } - - // Free/Publish and uninstall stack - if (stack->is_empty()) { - free_stack(allocator, stack); - } else { - stripe->publish_stack(stack); - flushed = true; - } - *stackp = nullptr; - } - - return flushed; -} - -void XMarkThreadLocalStacks::free(XMarkStackAllocator* allocator) { - // Free and uninstall magazine - if (_magazine != nullptr) { - allocator->free_magazine(_magazine); - _magazine = nullptr; - } -} diff --git a/src/hotspot/share/gc/x/xMarkStack.hpp b/src/hotspot/share/gc/x/xMarkStack.hpp deleted file mode 100644 index e012b89749d..00000000000 --- a/src/hotspot/share/gc/x/xMarkStack.hpp +++ /dev/null @@ -1,164 +0,0 @@ -/* - * Copyright (c) 2016, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XMARKSTACK_HPP -#define SHARE_GC_X_XMARKSTACK_HPP - -#include "gc/x/xGlobals.hpp" -#include "gc/x/xMarkStackEntry.hpp" -#include "utilities/globalDefinitions.hpp" - -template -class XStack { -private: - size_t _top; - XStack* _next; - T _slots[S]; - - bool is_full() const; - -public: - XStack(); - - bool is_empty() const; - - bool push(T value); - bool pop(T& value); - - XStack* next() const; - XStack** next_addr(); -}; - -template -class XStackList { -private: - T* volatile _head; - - T* encode_versioned_pointer(const T* stack, uint32_t version) const; - void decode_versioned_pointer(const T* vstack, T** stack, uint32_t* version) const; - -public: - XStackList(); - - bool is_empty() const; - - void push(T* stack); - T* pop(); - - void clear(); -}; - -using XMarkStack = XStack; -using XMarkStackList = XStackList; -using XMarkStackMagazine = XStack; -using XMarkStackMagazineList = XStackList; - -static_assert(sizeof(XMarkStack) == XMarkStackSize, "XMarkStack size mismatch"); -static_assert(sizeof(XMarkStackMagazine) <= XMarkStackSize, "XMarkStackMagazine size too large"); - -class XMarkStripe { -private: - XCACHE_ALIGNED XMarkStackList _published; - XCACHE_ALIGNED XMarkStackList _overflowed; - -public: - XMarkStripe(); - - bool is_empty() const; - - void publish_stack(XMarkStack* stack, bool publish = true); - XMarkStack* steal_stack(); -}; - -class XMarkStripeSet { -private: - size_t _nstripes; - size_t _nstripes_mask; - XMarkStripe _stripes[XMarkStripesMax]; - -public: - XMarkStripeSet(); - - size_t nstripes() const; - void set_nstripes(size_t nstripes); - - bool is_empty() const; - - size_t stripe_id(const XMarkStripe* stripe) const; - XMarkStripe* stripe_at(size_t index); - XMarkStripe* stripe_next(XMarkStripe* stripe); - XMarkStripe* stripe_for_worker(uint nworkers, uint worker_id); - XMarkStripe* stripe_for_addr(uintptr_t addr); -}; - -class XMarkStackAllocator; - -class XMarkThreadLocalStacks { -private: - XMarkStackMagazine* _magazine; - XMarkStack* _stacks[XMarkStripesMax]; - - XMarkStack* allocate_stack(XMarkStackAllocator* allocator); - void free_stack(XMarkStackAllocator* allocator, XMarkStack* stack); - - bool push_slow(XMarkStackAllocator* allocator, - XMarkStripe* stripe, - XMarkStack** stackp, - XMarkStackEntry entry, - bool publish); - - bool pop_slow(XMarkStackAllocator* allocator, - XMarkStripe* stripe, - XMarkStack** stackp, - XMarkStackEntry& entry); - -public: - XMarkThreadLocalStacks(); - - bool is_empty(const XMarkStripeSet* stripes) const; - - void install(XMarkStripeSet* stripes, - XMarkStripe* stripe, - XMarkStack* stack); - - XMarkStack* steal(XMarkStripeSet* stripes, - XMarkStripe* stripe); - - bool push(XMarkStackAllocator* allocator, - XMarkStripeSet* stripes, - XMarkStripe* stripe, - XMarkStackEntry entry, - bool publish); - - bool pop(XMarkStackAllocator* allocator, - XMarkStripeSet* stripes, - XMarkStripe* stripe, - XMarkStackEntry& entry); - - bool flush(XMarkStackAllocator* allocator, - XMarkStripeSet* stripes); - - void free(XMarkStackAllocator* allocator); -}; - -#endif // SHARE_GC_X_XMARKSTACK_HPP diff --git a/src/hotspot/share/gc/x/xMarkStack.inline.hpp b/src/hotspot/share/gc/x/xMarkStack.inline.hpp deleted file mode 100644 index e643c1e3224..00000000000 --- a/src/hotspot/share/gc/x/xMarkStack.inline.hpp +++ /dev/null @@ -1,266 +0,0 @@ -/* - * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XMARKSTACK_INLINE_HPP -#define SHARE_GC_X_XMARKSTACK_INLINE_HPP - -#include "gc/x/xMarkStack.hpp" - -#include "utilities/debug.hpp" -#include "runtime/atomic.hpp" - -template -inline XStack::XStack() : - _top(0), - _next(nullptr) {} - -template -inline bool XStack::is_empty() const { - return _top == 0; -} - -template -inline bool XStack::is_full() const { - return _top == S; -} - -template -inline bool XStack::push(T value) { - if (is_full()) { - return false; - } - - _slots[_top++] = value; - return true; -} - -template -inline bool XStack::pop(T& value) { - if (is_empty()) { - return false; - } - - value = _slots[--_top]; - return true; -} - -template -inline XStack* XStack::next() const { - return _next; -} - -template -inline XStack** XStack::next_addr() { - return &_next; -} - -template -inline XStackList::XStackList() : - _head(encode_versioned_pointer(nullptr, 0)) {} - -template -inline T* XStackList::encode_versioned_pointer(const T* stack, uint32_t version) const { - uint64_t addr; - - if (stack == nullptr) { - addr = (uint32_t)-1; - } else { - addr = ((uint64_t)stack - XMarkStackSpaceStart) >> XMarkStackSizeShift; - } - - return (T*)((addr << 32) | (uint64_t)version); -} - -template -inline void XStackList::decode_versioned_pointer(const T* vstack, T** stack, uint32_t* version) const { - const uint64_t addr = (uint64_t)vstack >> 32; - - if (addr == (uint32_t)-1) { - *stack = nullptr; - } else { - *stack = (T*)((addr << XMarkStackSizeShift) + XMarkStackSpaceStart); - } - - *version = (uint32_t)(uint64_t)vstack; -} - -template -inline bool XStackList::is_empty() const { - const T* vstack = _head; - T* stack = nullptr; - uint32_t version = 0; - - decode_versioned_pointer(vstack, &stack, &version); - return stack == nullptr; -} - -template -inline void XStackList::push(T* stack) { - T* vstack = _head; - uint32_t version = 0; - - for (;;) { - decode_versioned_pointer(vstack, stack->next_addr(), &version); - T* const new_vstack = encode_versioned_pointer(stack, version + 1); - T* const prev_vstack = Atomic::cmpxchg(&_head, vstack, new_vstack); - if (prev_vstack == vstack) { - // Success - break; - } - - // Retry - vstack = prev_vstack; - } -} - -template -inline T* XStackList::pop() { - T* vstack = _head; - T* stack = nullptr; - uint32_t version = 0; - - for (;;) { - decode_versioned_pointer(vstack, &stack, &version); - if (stack == nullptr) { - return nullptr; - } - - T* const new_vstack = encode_versioned_pointer(stack->next(), version + 1); - T* const prev_vstack = Atomic::cmpxchg(&_head, vstack, new_vstack); - if (prev_vstack == vstack) { - // Success - return stack; - } - - // Retry - vstack = prev_vstack; - } -} - -template -inline void XStackList::clear() { - _head = encode_versioned_pointer(nullptr, 0); -} - -inline bool XMarkStripe::is_empty() const { - return _published.is_empty() && _overflowed.is_empty(); -} - -inline void XMarkStripe::publish_stack(XMarkStack* stack, bool publish) { - // A stack is published either on the published list or the overflowed - // list. The published list is used by mutators publishing stacks for GC - // workers to work on, while the overflowed list is used by GC workers - // to publish stacks that overflowed. The intention here is to avoid - // contention between mutators and GC workers as much as possible, while - // still allowing GC workers to help out and steal work from each other. - if (publish) { - _published.push(stack); - } else { - _overflowed.push(stack); - } -} - -inline XMarkStack* XMarkStripe::steal_stack() { - // Steal overflowed stacks first, then published stacks - XMarkStack* const stack = _overflowed.pop(); - if (stack != nullptr) { - return stack; - } - - return _published.pop(); -} - -inline size_t XMarkStripeSet::nstripes() const { - return _nstripes; -} - -inline size_t XMarkStripeSet::stripe_id(const XMarkStripe* stripe) const { - const size_t index = ((uintptr_t)stripe - (uintptr_t)_stripes) / sizeof(XMarkStripe); - assert(index < _nstripes, "Invalid index"); - return index; -} - -inline XMarkStripe* XMarkStripeSet::stripe_at(size_t index) { - assert(index < _nstripes, "Invalid index"); - return &_stripes[index]; -} - -inline XMarkStripe* XMarkStripeSet::stripe_next(XMarkStripe* stripe) { - const size_t index = (stripe_id(stripe) + 1) & _nstripes_mask; - assert(index < _nstripes, "Invalid index"); - return &_stripes[index]; -} - -inline XMarkStripe* XMarkStripeSet::stripe_for_addr(uintptr_t addr) { - const size_t index = (addr >> XMarkStripeShift) & _nstripes_mask; - assert(index < _nstripes, "Invalid index"); - return &_stripes[index]; -} - -inline void XMarkThreadLocalStacks::install(XMarkStripeSet* stripes, - XMarkStripe* stripe, - XMarkStack* stack) { - XMarkStack** const stackp = &_stacks[stripes->stripe_id(stripe)]; - assert(*stackp == nullptr, "Should be empty"); - *stackp = stack; -} - -inline XMarkStack* XMarkThreadLocalStacks::steal(XMarkStripeSet* stripes, - XMarkStripe* stripe) { - XMarkStack** const stackp = &_stacks[stripes->stripe_id(stripe)]; - XMarkStack* const stack = *stackp; - if (stack != nullptr) { - *stackp = nullptr; - } - - return stack; -} - -inline bool XMarkThreadLocalStacks::push(XMarkStackAllocator* allocator, - XMarkStripeSet* stripes, - XMarkStripe* stripe, - XMarkStackEntry entry, - bool publish) { - XMarkStack** const stackp = &_stacks[stripes->stripe_id(stripe)]; - XMarkStack* const stack = *stackp; - if (stack != nullptr && stack->push(entry)) { - return true; - } - - return push_slow(allocator, stripe, stackp, entry, publish); -} - -inline bool XMarkThreadLocalStacks::pop(XMarkStackAllocator* allocator, - XMarkStripeSet* stripes, - XMarkStripe* stripe, - XMarkStackEntry& entry) { - XMarkStack** const stackp = &_stacks[stripes->stripe_id(stripe)]; - XMarkStack* const stack = *stackp; - if (stack != nullptr && stack->pop(entry)) { - return true; - } - - return pop_slow(allocator, stripe, stackp, entry); -} - -#endif // SHARE_GC_X_XMARKSTACK_INLINE_HPP diff --git a/src/hotspot/share/gc/x/xMarkStackAllocator.cpp b/src/hotspot/share/gc/x/xMarkStackAllocator.cpp deleted file mode 100644 index b5cc3ad641a..00000000000 --- a/src/hotspot/share/gc/x/xMarkStackAllocator.cpp +++ /dev/null @@ -1,221 +0,0 @@ -/* - * Copyright (c) 2016, 2023, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/shared/gcLogPrecious.hpp" -#include "gc/shared/gc_globals.hpp" -#include "gc/x/xLock.inline.hpp" -#include "gc/x/xMarkStack.inline.hpp" -#include "gc/x/xMarkStackAllocator.hpp" -#include "logging/log.hpp" -#include "runtime/atomic.hpp" -#include "runtime/os.hpp" -#include "utilities/debug.hpp" - -uintptr_t XMarkStackSpaceStart; - -XMarkStackSpace::XMarkStackSpace() : - _expand_lock(), - _start(0), - _top(0), - _end(0) { - assert(ZMarkStackSpaceLimit >= XMarkStackSpaceExpandSize, "ZMarkStackSpaceLimit too small"); - - // Reserve address space - const size_t size = ZMarkStackSpaceLimit; - const uintptr_t addr = (uintptr_t)os::reserve_memory(size, !ExecMem, mtGC); - if (addr == 0) { - log_error_pd(gc, marking)("Failed to reserve address space for mark stacks"); - return; - } - - // Successfully initialized - _start = _top = _end = addr; - - // Register mark stack space start - XMarkStackSpaceStart = _start; - - // Prime space - _end += expand_space(); -} - -bool XMarkStackSpace::is_initialized() const { - return _start != 0; -} - -size_t XMarkStackSpace::size() const { - return _end - _start; -} - -size_t XMarkStackSpace::used() const { - return _top - _start; -} - -size_t XMarkStackSpace::expand_space() { - const size_t expand_size = XMarkStackSpaceExpandSize; - const size_t old_size = size(); - const size_t new_size = old_size + expand_size; - - if (new_size > ZMarkStackSpaceLimit) { - // Expansion limit reached. This is a fatal error since we - // currently can't recover from running out of mark stack space. - fatal("Mark stack space exhausted. Use -XX:ZMarkStackSpaceLimit= to increase the " - "maximum number of bytes allocated for mark stacks. Current limit is " SIZE_FORMAT "M.", - ZMarkStackSpaceLimit / M); - } - - log_debug(gc, marking)("Expanding mark stack space: " SIZE_FORMAT "M->" SIZE_FORMAT "M", - old_size / M, new_size / M); - - // Expand - os::commit_memory_or_exit((char*)_end, expand_size, false /* executable */, "Mark stack space"); - - return expand_size; -} - -size_t XMarkStackSpace::shrink_space() { - // Shrink to what is currently used - const size_t old_size = size(); - const size_t new_size = align_up(used(), XMarkStackSpaceExpandSize); - const size_t shrink_size = old_size - new_size; - - if (shrink_size > 0) { - // Shrink - log_debug(gc, marking)("Shrinking mark stack space: " SIZE_FORMAT "M->" SIZE_FORMAT "M", - old_size / M, new_size / M); - - const uintptr_t shrink_start = _end - shrink_size; - os::uncommit_memory((char*)shrink_start, shrink_size, false /* executable */); - } - - return shrink_size; -} - -uintptr_t XMarkStackSpace::alloc_space(size_t size) { - uintptr_t top = Atomic::load(&_top); - - for (;;) { - const uintptr_t end = Atomic::load(&_end); - const uintptr_t new_top = top + size; - if (new_top > end) { - // Not enough space left - return 0; - } - - const uintptr_t prev_top = Atomic::cmpxchg(&_top, top, new_top); - if (prev_top == top) { - // Success - return top; - } - - // Retry - top = prev_top; - } -} - -uintptr_t XMarkStackSpace::expand_and_alloc_space(size_t size) { - XLocker locker(&_expand_lock); - - // Retry allocation before expanding - uintptr_t addr = alloc_space(size); - if (addr != 0) { - return addr; - } - - // Expand - const size_t expand_size = expand_space(); - - // Increment top before end to make sure another - // thread can't steal out newly expanded space. - addr = Atomic::fetch_then_add(&_top, size); - Atomic::add(&_end, expand_size); - - return addr; -} - -uintptr_t XMarkStackSpace::alloc(size_t size) { - assert(size <= XMarkStackSpaceExpandSize, "Invalid size"); - - const uintptr_t addr = alloc_space(size); - if (addr != 0) { - return addr; - } - - return expand_and_alloc_space(size); -} - -void XMarkStackSpace::free() { - _end -= shrink_space(); - _top = _start; -} - -XMarkStackAllocator::XMarkStackAllocator() : - _freelist(), - _space() {} - -bool XMarkStackAllocator::is_initialized() const { - return _space.is_initialized(); -} - -size_t XMarkStackAllocator::size() const { - return _space.size(); -} - -XMarkStackMagazine* XMarkStackAllocator::create_magazine_from_space(uintptr_t addr, size_t size) { - assert(is_aligned(size, XMarkStackSize), "Invalid size"); - - // Use first stack as magazine - XMarkStackMagazine* const magazine = new ((void*)addr) XMarkStackMagazine(); - for (size_t i = XMarkStackSize; i < size; i += XMarkStackSize) { - XMarkStack* const stack = new ((void*)(addr + i)) XMarkStack(); - const bool success = magazine->push(stack); - assert(success, "Magazine should never get full"); - } - - return magazine; -} - -XMarkStackMagazine* XMarkStackAllocator::alloc_magazine() { - // Try allocating from the free list first - XMarkStackMagazine* const magazine = _freelist.pop(); - if (magazine != nullptr) { - return magazine; - } - - // Allocate new magazine - const uintptr_t addr = _space.alloc(XMarkStackMagazineSize); - if (addr == 0) { - return nullptr; - } - - return create_magazine_from_space(addr, XMarkStackMagazineSize); -} - -void XMarkStackAllocator::free_magazine(XMarkStackMagazine* magazine) { - _freelist.push(magazine); -} - -void XMarkStackAllocator::free() { - _freelist.clear(); - _space.free(); -} diff --git a/src/hotspot/share/gc/x/xMarkStackAllocator.hpp b/src/hotspot/share/gc/x/xMarkStackAllocator.hpp deleted file mode 100644 index 5e81ae284cf..00000000000 --- a/src/hotspot/share/gc/x/xMarkStackAllocator.hpp +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright (c) 2016, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XMARKSTACKALLOCATOR_HPP -#define SHARE_GC_X_XMARKSTACKALLOCATOR_HPP - -#include "gc/x/xGlobals.hpp" -#include "gc/x/xLock.hpp" -#include "utilities/globalDefinitions.hpp" - -class XMarkStackSpace { -private: - XLock _expand_lock; - uintptr_t _start; - volatile uintptr_t _top; - volatile uintptr_t _end; - - size_t used() const; - - size_t expand_space(); - size_t shrink_space(); - - uintptr_t alloc_space(size_t size); - uintptr_t expand_and_alloc_space(size_t size); - -public: - XMarkStackSpace(); - - bool is_initialized() const; - - size_t size() const; - - uintptr_t alloc(size_t size); - void free(); -}; - -class XMarkStackAllocator { -private: - XCACHE_ALIGNED XMarkStackMagazineList _freelist; - XCACHE_ALIGNED XMarkStackSpace _space; - - XMarkStackMagazine* create_magazine_from_space(uintptr_t addr, size_t size); - -public: - XMarkStackAllocator(); - - bool is_initialized() const; - - size_t size() const; - - XMarkStackMagazine* alloc_magazine(); - void free_magazine(XMarkStackMagazine* magazine); - - void free(); -}; - -#endif // SHARE_GC_X_XMARKSTACKALLOCATOR_HPP diff --git a/src/hotspot/share/gc/x/xMarkStackEntry.hpp b/src/hotspot/share/gc/x/xMarkStackEntry.hpp deleted file mode 100644 index 61df1798df2..00000000000 --- a/src/hotspot/share/gc/x/xMarkStackEntry.hpp +++ /dev/null @@ -1,142 +0,0 @@ -/* - * Copyright (c) 2017, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XMARKSTACKENTRY_HPP -#define SHARE_GC_X_XMARKSTACKENTRY_HPP - -#include "gc/x/xBitField.hpp" -#include "memory/allocation.hpp" - -// -// Mark stack entry layout -// ----------------------- -// -// Object entry -// ------------ -// -// 6 -// 3 5 4 3 2 1 0 -// +------------------------------------------------------------------+-+-+-+-+-+ -// |11111111 11111111 11111111 11111111 11111111 11111111 11111111 111|1|1|1|1|1| -// +------------------------------------------------------------------+-+-+-+-+-+ -// | | | | | | -// | 4-4 Mark Flag (1-bit) * | | | | -// | | | | | -// | 3-3 Increment Live Flag (1-bit) * | | | -// | | | | -// | 2-2 Follow Flag (1-bit) * | | -// | | | -// | 1-1 Partial Array Flag (1-bit) * | -// | | -// | 0-0 Final Flag (1-bit) * -// | -// * 63-5 Object Address (59-bits) -// -// -// Partial array entry -// ------------------- -// -// 6 3 3 -// 3 2 1 2 1 0 -// +------------------------------------+---------------------------------+-+-+ -// |11111111 11111111 11111111 11111111 |11111111 11111111 11111111 111111|1|1| -// +------------------------------------+---------------------------------+-+-+ -// | | | | -// | | 1-1 Partial Array Flag (1-bit) * | -// | | | -// | | 0-0 Final Flag (1-bit) * -// | | -// | * 31-2 Partial Array Length (30-bits) -// | -// * 63-32 Partial Array Address Offset (32-bits) -// - -class XMarkStackEntry { -private: - typedef XBitField field_finalizable; - typedef XBitField field_partial_array; - typedef XBitField field_follow; - typedef XBitField field_inc_live; - typedef XBitField field_mark; - typedef XBitField field_object_address; - typedef XBitField field_partial_array_length; - typedef XBitField field_partial_array_offset; - - uint64_t _entry; - -public: - XMarkStackEntry() { - // This constructor is intentionally left empty and does not initialize - // _entry to allow it to be optimized out when instantiating XMarkStack, - // which has a long array of XMarkStackEntry elements, but doesn't care - // what _entry is initialized to. - } - - XMarkStackEntry(uintptr_t object_address, bool mark, bool inc_live, bool follow, bool finalizable) : - _entry(field_object_address::encode(object_address) | - field_mark::encode(mark) | - field_inc_live::encode(inc_live) | - field_follow::encode(follow) | - field_partial_array::encode(false) | - field_finalizable::encode(finalizable)) {} - - XMarkStackEntry(size_t partial_array_offset, size_t partial_array_length, bool finalizable) : - _entry(field_partial_array_offset::encode(partial_array_offset) | - field_partial_array_length::encode(partial_array_length) | - field_partial_array::encode(true) | - field_finalizable::encode(finalizable)) {} - - bool finalizable() const { - return field_finalizable::decode(_entry); - } - - bool partial_array() const { - return field_partial_array::decode(_entry); - } - - size_t partial_array_offset() const { - return field_partial_array_offset::decode(_entry); - } - - size_t partial_array_length() const { - return field_partial_array_length::decode(_entry); - } - - bool follow() const { - return field_follow::decode(_entry); - } - - bool inc_live() const { - return field_inc_live::decode(_entry); - } - - bool mark() const { - return field_mark::decode(_entry); - } - - uintptr_t object_address() const { - return field_object_address::decode(_entry); - } -}; - -#endif // SHARE_GC_X_XMARKSTACKENTRY_HPP diff --git a/src/hotspot/share/gc/x/xMarkTerminate.hpp b/src/hotspot/share/gc/x/xMarkTerminate.hpp deleted file mode 100644 index 28f18f6e1cb..00000000000 --- a/src/hotspot/share/gc/x/xMarkTerminate.hpp +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XMARKTERMINATE_HPP -#define SHARE_GC_X_XMARKTERMINATE_HPP - -#include "gc/x/xGlobals.hpp" -#include "memory/allocation.hpp" -#include "utilities/globalDefinitions.hpp" - -class XMarkTerminate { -private: - uint _nworkers; - XCACHE_ALIGNED volatile uint _nworking_stage0; - volatile uint _nworking_stage1; - - bool enter_stage(volatile uint* nworking_stage); - void exit_stage(volatile uint* nworking_stage); - bool try_exit_stage(volatile uint* nworking_stage); - -public: - XMarkTerminate(); - - void reset(uint nworkers); - - bool enter_stage0(); - void exit_stage0(); - bool try_exit_stage0(); - - bool enter_stage1(); - bool try_exit_stage1(); -}; - -#endif // SHARE_GC_X_XMARKTERMINATE_HPP diff --git a/src/hotspot/share/gc/x/xMarkTerminate.inline.hpp b/src/hotspot/share/gc/x/xMarkTerminate.inline.hpp deleted file mode 100644 index e4b9256ba6b..00000000000 --- a/src/hotspot/share/gc/x/xMarkTerminate.inline.hpp +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XMARKTERMINATE_INLINE_HPP -#define SHARE_GC_X_XMARKTERMINATE_INLINE_HPP - -#include "gc/x/xMarkTerminate.hpp" - -#include "runtime/atomic.hpp" - -inline XMarkTerminate::XMarkTerminate() : - _nworkers(0), - _nworking_stage0(0), - _nworking_stage1(0) {} - -inline bool XMarkTerminate::enter_stage(volatile uint* nworking_stage) { - return Atomic::sub(nworking_stage, 1u) == 0; -} - -inline void XMarkTerminate::exit_stage(volatile uint* nworking_stage) { - Atomic::add(nworking_stage, 1u); -} - -inline bool XMarkTerminate::try_exit_stage(volatile uint* nworking_stage) { - uint nworking = Atomic::load(nworking_stage); - - for (;;) { - if (nworking == 0) { - return false; - } - - const uint new_nworking = nworking + 1; - const uint prev_nworking = Atomic::cmpxchg(nworking_stage, nworking, new_nworking); - if (prev_nworking == nworking) { - // Success - return true; - } - - // Retry - nworking = prev_nworking; - } -} - -inline void XMarkTerminate::reset(uint nworkers) { - _nworkers = _nworking_stage0 = _nworking_stage1 = nworkers; -} - -inline bool XMarkTerminate::enter_stage0() { - return enter_stage(&_nworking_stage0); -} - -inline void XMarkTerminate::exit_stage0() { - exit_stage(&_nworking_stage0); -} - -inline bool XMarkTerminate::try_exit_stage0() { - return try_exit_stage(&_nworking_stage0); -} - -inline bool XMarkTerminate::enter_stage1() { - return enter_stage(&_nworking_stage1); -} - -inline bool XMarkTerminate::try_exit_stage1() { - return try_exit_stage(&_nworking_stage1); -} - -#endif // SHARE_GC_X_XMARKTERMINATE_INLINE_HPP diff --git a/src/hotspot/share/gc/x/xMemory.cpp b/src/hotspot/share/gc/x/xMemory.cpp deleted file mode 100644 index e394f580ab9..00000000000 --- a/src/hotspot/share/gc/x/xMemory.cpp +++ /dev/null @@ -1,220 +0,0 @@ -/* - * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xList.inline.hpp" -#include "gc/x/xLock.inline.hpp" -#include "gc/x/xMemory.inline.hpp" - -XMemory* XMemoryManager::create(uintptr_t start, size_t size) { - XMemory* const area = new XMemory(start, size); - if (_callbacks._create != nullptr) { - _callbacks._create(area); - } - return area; -} - -void XMemoryManager::destroy(XMemory* area) { - if (_callbacks._destroy != nullptr) { - _callbacks._destroy(area); - } - delete area; -} - -void XMemoryManager::shrink_from_front(XMemory* area, size_t size) { - if (_callbacks._shrink_from_front != nullptr) { - _callbacks._shrink_from_front(area, size); - } - area->shrink_from_front(size); -} - -void XMemoryManager::shrink_from_back(XMemory* area, size_t size) { - if (_callbacks._shrink_from_back != nullptr) { - _callbacks._shrink_from_back(area, size); - } - area->shrink_from_back(size); -} - -void XMemoryManager::grow_from_front(XMemory* area, size_t size) { - if (_callbacks._grow_from_front != nullptr) { - _callbacks._grow_from_front(area, size); - } - area->grow_from_front(size); -} - -void XMemoryManager::grow_from_back(XMemory* area, size_t size) { - if (_callbacks._grow_from_back != nullptr) { - _callbacks._grow_from_back(area, size); - } - area->grow_from_back(size); -} - -XMemoryManager::Callbacks::Callbacks() : - _create(nullptr), - _destroy(nullptr), - _shrink_from_front(nullptr), - _shrink_from_back(nullptr), - _grow_from_front(nullptr), - _grow_from_back(nullptr) {} - -XMemoryManager::XMemoryManager() : - _freelist(), - _callbacks() {} - -void XMemoryManager::register_callbacks(const Callbacks& callbacks) { - _callbacks = callbacks; -} - -uintptr_t XMemoryManager::peek_low_address() const { - XLocker locker(&_lock); - - const XMemory* const area = _freelist.first(); - if (area != nullptr) { - return area->start(); - } - - // Out of memory - return UINTPTR_MAX; -} - -uintptr_t XMemoryManager::alloc_low_address(size_t size) { - XLocker locker(&_lock); - - XListIterator iter(&_freelist); - for (XMemory* area; iter.next(&area);) { - if (area->size() >= size) { - if (area->size() == size) { - // Exact match, remove area - const uintptr_t start = area->start(); - _freelist.remove(area); - destroy(area); - return start; - } else { - // Larger than requested, shrink area - const uintptr_t start = area->start(); - shrink_from_front(area, size); - return start; - } - } - } - - // Out of memory - return UINTPTR_MAX; -} - -uintptr_t XMemoryManager::alloc_low_address_at_most(size_t size, size_t* allocated) { - XLocker locker(&_lock); - - XMemory* area = _freelist.first(); - if (area != nullptr) { - if (area->size() <= size) { - // Smaller than or equal to requested, remove area - const uintptr_t start = area->start(); - *allocated = area->size(); - _freelist.remove(area); - destroy(area); - return start; - } else { - // Larger than requested, shrink area - const uintptr_t start = area->start(); - shrink_from_front(area, size); - *allocated = size; - return start; - } - } - - // Out of memory - *allocated = 0; - return UINTPTR_MAX; -} - -uintptr_t XMemoryManager::alloc_high_address(size_t size) { - XLocker locker(&_lock); - - XListReverseIterator iter(&_freelist); - for (XMemory* area; iter.next(&area);) { - if (area->size() >= size) { - if (area->size() == size) { - // Exact match, remove area - const uintptr_t start = area->start(); - _freelist.remove(area); - destroy(area); - return start; - } else { - // Larger than requested, shrink area - shrink_from_back(area, size); - return area->end(); - } - } - } - - // Out of memory - return UINTPTR_MAX; -} - -void XMemoryManager::free(uintptr_t start, size_t size) { - assert(start != UINTPTR_MAX, "Invalid address"); - const uintptr_t end = start + size; - - XLocker locker(&_lock); - - XListIterator iter(&_freelist); - for (XMemory* area; iter.next(&area);) { - if (start < area->start()) { - XMemory* const prev = _freelist.prev(area); - if (prev != nullptr && start == prev->end()) { - if (end == area->start()) { - // Merge with prev and current area - grow_from_back(prev, size + area->size()); - _freelist.remove(area); - delete area; - } else { - // Merge with prev area - grow_from_back(prev, size); - } - } else if (end == area->start()) { - // Merge with current area - grow_from_front(area, size); - } else { - // Insert new area before current area - assert(end < area->start(), "Areas must not overlap"); - XMemory* const new_area = create(start, size); - _freelist.insert_before(area, new_area); - } - - // Done - return; - } - } - - // Insert last - XMemory* const last = _freelist.last(); - if (last != nullptr && start == last->end()) { - // Merge with last area - grow_from_back(last, size); - } else { - // Insert new area last - XMemory* const new_area = create(start, size); - _freelist.insert_last(new_area); - } -} diff --git a/src/hotspot/share/gc/x/xMemory.hpp b/src/hotspot/share/gc/x/xMemory.hpp deleted file mode 100644 index 2c3739cb44a..00000000000 --- a/src/hotspot/share/gc/x/xMemory.hpp +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XMEMORY_HPP -#define SHARE_GC_X_XMEMORY_HPP - -#include "gc/x/xList.hpp" -#include "gc/x/xLock.hpp" -#include "memory/allocation.hpp" - -class XMemory : public CHeapObj { - friend class XList; - -private: - uintptr_t _start; - uintptr_t _end; - XListNode _node; - -public: - XMemory(uintptr_t start, size_t size); - - uintptr_t start() const; - uintptr_t end() const; - size_t size() const; - - void shrink_from_front(size_t size); - void shrink_from_back(size_t size); - void grow_from_front(size_t size); - void grow_from_back(size_t size); -}; - -class XMemoryManager { -public: - typedef void (*CreateDestroyCallback)(const XMemory* area); - typedef void (*ResizeCallback)(const XMemory* area, size_t size); - - struct Callbacks { - CreateDestroyCallback _create; - CreateDestroyCallback _destroy; - ResizeCallback _shrink_from_front; - ResizeCallback _shrink_from_back; - ResizeCallback _grow_from_front; - ResizeCallback _grow_from_back; - - Callbacks(); - }; - -private: - mutable XLock _lock; - XList _freelist; - Callbacks _callbacks; - - XMemory* create(uintptr_t start, size_t size); - void destroy(XMemory* area); - void shrink_from_front(XMemory* area, size_t size); - void shrink_from_back(XMemory* area, size_t size); - void grow_from_front(XMemory* area, size_t size); - void grow_from_back(XMemory* area, size_t size); - -public: - XMemoryManager(); - - void register_callbacks(const Callbacks& callbacks); - - uintptr_t peek_low_address() const; - uintptr_t alloc_low_address(size_t size); - uintptr_t alloc_low_address_at_most(size_t size, size_t* allocated); - uintptr_t alloc_high_address(size_t size); - - void free(uintptr_t start, size_t size); -}; - -#endif // SHARE_GC_X_XMEMORY_HPP diff --git a/src/hotspot/share/gc/x/xMemory.inline.hpp b/src/hotspot/share/gc/x/xMemory.inline.hpp deleted file mode 100644 index 332cdae9160..00000000000 --- a/src/hotspot/share/gc/x/xMemory.inline.hpp +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XMEMORY_INLINE_HPP -#define SHARE_GC_X_XMEMORY_INLINE_HPP - -#include "gc/x/xMemory.hpp" - -#include "gc/x/xList.inline.hpp" -#include "utilities/debug.hpp" - -inline XMemory::XMemory(uintptr_t start, size_t size) : - _start(start), - _end(start + size) {} - -inline uintptr_t XMemory::start() const { - return _start; -} - -inline uintptr_t XMemory::end() const { - return _end; -} - -inline size_t XMemory::size() const { - return end() - start(); -} - -inline void XMemory::shrink_from_front(size_t size) { - assert(this->size() > size, "Too small"); - _start += size; -} - -inline void XMemory::shrink_from_back(size_t size) { - assert(this->size() > size, "Too small"); - _end -= size; -} - -inline void XMemory::grow_from_front(size_t size) { - assert(start() >= size, "Too big"); - _start -= size; -} - -inline void XMemory::grow_from_back(size_t size) { - _end += size; -} - -#endif // SHARE_GC_X_XMEMORY_INLINE_HPP diff --git a/src/hotspot/share/gc/x/xMessagePort.hpp b/src/hotspot/share/gc/x/xMessagePort.hpp deleted file mode 100644 index 20565253796..00000000000 --- a/src/hotspot/share/gc/x/xMessagePort.hpp +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XMESSAGEPORT_HPP -#define SHARE_GC_X_XMESSAGEPORT_HPP - -#include "gc/x/xFuture.hpp" -#include "gc/x/xList.hpp" -#include "runtime/mutex.hpp" - -template class XMessageRequest; - -template -class XMessagePort { -private: - typedef XMessageRequest Request; - - mutable Monitor _monitor; - bool _has_message; - T _message; - uint64_t _seqnum; - XList _queue; - -public: - XMessagePort(); - - bool is_busy() const; - - void send_sync(const T& message); - void send_async(const T& message); - - T receive(); - void ack(); -}; - -class XRendezvousPort { -private: - XMessagePort _port; - -public: - void signal(); - void wait(); - void ack(); -}; - -#endif // SHARE_GC_X_XMESSAGEPORT_HPP diff --git a/src/hotspot/share/gc/x/xMessagePort.inline.hpp b/src/hotspot/share/gc/x/xMessagePort.inline.hpp deleted file mode 100644 index 8007a80eacd..00000000000 --- a/src/hotspot/share/gc/x/xMessagePort.inline.hpp +++ /dev/null @@ -1,181 +0,0 @@ -/* - * Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XMESSAGEPORT_INLINE_HPP -#define SHARE_GC_X_XMESSAGEPORT_INLINE_HPP - -#include "gc/x/xMessagePort.hpp" - -#include "gc/x/xFuture.inline.hpp" -#include "gc/x/xList.inline.hpp" -#include "runtime/mutexLocker.hpp" - -template -class XMessageRequest : public StackObj { - friend class XList; - -private: - T _message; - uint64_t _seqnum; - XFuture _result; - XListNode _node; - -public: - void initialize(T message, uint64_t seqnum) { - _message = message; - _seqnum = seqnum; - } - - T message() const { - return _message; - } - - uint64_t seqnum() const { - return _seqnum; - } - - void wait() { - const T message = _result.get(); - assert(message == _message, "Message mismatch"); - } - - void satisfy(T message) { - _result.set(message); - } -}; - -template -inline XMessagePort::XMessagePort() : - _monitor(Monitor::nosafepoint, "XMessagePort_lock"), - _has_message(false), - _seqnum(0), - _queue() {} - -template -inline bool XMessagePort::is_busy() const { - MonitorLocker ml(&_monitor, Monitor::_no_safepoint_check_flag); - return _has_message; -} - -template -inline void XMessagePort::send_sync(const T& message) { - Request request; - - { - // Enqueue message - MonitorLocker ml(&_monitor, Monitor::_no_safepoint_check_flag); - request.initialize(message, _seqnum); - _queue.insert_last(&request); - ml.notify(); - } - - // Wait for completion - request.wait(); - - { - // Guard deletion of underlying semaphore. This is a workaround for a - // bug in sem_post() in glibc < 2.21, where it's not safe to destroy - // the semaphore immediately after returning from sem_wait(). The - // reason is that sem_post() can touch the semaphore after a waiting - // thread have returned from sem_wait(). To avoid this race we are - // forcing the waiting thread to acquire/release the lock held by the - // posting thread. https://sourceware.org/bugzilla/show_bug.cgi?id=12674 - MonitorLocker ml(&_monitor, Monitor::_no_safepoint_check_flag); - } -} - -template -inline void XMessagePort::send_async(const T& message) { - MonitorLocker ml(&_monitor, Monitor::_no_safepoint_check_flag); - if (!_has_message) { - // Post message - _message = message; - _has_message = true; - ml.notify(); - } -} - -template -inline T XMessagePort::receive() { - MonitorLocker ml(&_monitor, Monitor::_no_safepoint_check_flag); - - // Wait for message - while (!_has_message && _queue.is_empty()) { - ml.wait(); - } - - // Increment request sequence number - _seqnum++; - - if (!_has_message) { - // Message available in the queue - _message = _queue.first()->message(); - _has_message = true; - } - - return _message; -} - -template -inline void XMessagePort::ack() { - MonitorLocker ml(&_monitor, Monitor::_no_safepoint_check_flag); - - if (!_has_message) { - // Nothing to ack - return; - } - - // Satisfy requests (and duplicates) in queue - XListIterator iter(&_queue); - for (Request* request; iter.next(&request);) { - if (request->message() == _message && request->seqnum() < _seqnum) { - // Dequeue and satisfy request. Note that the dequeue operation must - // happen first, since the request will immediately be deallocated - // once it has been satisfied. - _queue.remove(request); - request->satisfy(_message); - } - } - - if (_queue.is_empty()) { - // Queue is empty - _has_message = false; - } else { - // Post first message in queue - _message = _queue.first()->message(); - } -} - -inline void XRendezvousPort::signal() { - _port.send_sync(true /* ignored */); -} - -inline void XRendezvousPort::wait() { - _port.receive(); -} - -inline void XRendezvousPort::ack() { - _port.ack(); -} - -#endif // SHARE_GC_X_XMESSAGEPORT_INLINE_HPP diff --git a/src/hotspot/share/gc/x/xMetronome.cpp b/src/hotspot/share/gc/x/xMetronome.cpp deleted file mode 100644 index 7f0b649deb4..00000000000 --- a/src/hotspot/share/gc/x/xMetronome.cpp +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xMetronome.hpp" -#include "runtime/mutexLocker.hpp" -#include "runtime/timer.hpp" -#include "utilities/ticks.hpp" - -XMetronome::XMetronome(uint64_t hz) : - _monitor(Monitor::nosafepoint, "XMetronome_lock"), - _interval_ms(MILLIUNITS / hz), - _start_ms(0), - _nticks(0), - _stopped(false) {} - -bool XMetronome::wait_for_tick() { - if (_nticks++ == 0) { - // First tick, set start time - const Ticks now = Ticks::now(); - _start_ms = TimeHelper::counter_to_millis(now.value()); - } - - MonitorLocker ml(&_monitor, Monitor::_no_safepoint_check_flag); - - while (!_stopped) { - // We might wake up spuriously from wait, so always recalculate - // the timeout after a wakeup to see if we need to wait again. - const Ticks now = Ticks::now(); - const uint64_t now_ms = TimeHelper::counter_to_millis(now.value()); - const uint64_t next_ms = _start_ms + (_interval_ms * _nticks); - const int64_t timeout_ms = next_ms - now_ms; - - if (timeout_ms > 0) { - // Wait - ml.wait(timeout_ms); - } else { - // Tick - if (timeout_ms < 0) { - const uint64_t overslept = -timeout_ms; - if (overslept > _interval_ms) { - // Missed one or more ticks. Bump _nticks accordingly to - // avoid firing a string of immediate ticks to make up - // for the ones we missed. - _nticks += overslept / _interval_ms; - } - } - - return true; - } - } - - // Stopped - return false; -} - -void XMetronome::stop() { - MonitorLocker ml(&_monitor, Monitor::_no_safepoint_check_flag); - _stopped = true; - ml.notify(); -} diff --git a/src/hotspot/share/gc/x/xMetronome.hpp b/src/hotspot/share/gc/x/xMetronome.hpp deleted file mode 100644 index 8a0f27061c3..00000000000 --- a/src/hotspot/share/gc/x/xMetronome.hpp +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XMETRONOME_HPP -#define SHARE_GC_X_XMETRONOME_HPP - -#include "memory/allocation.hpp" -#include "runtime/mutex.hpp" - -class XMetronome : public StackObj { -private: - Monitor _monitor; - const uint64_t _interval_ms; - uint64_t _start_ms; - uint64_t _nticks; - bool _stopped; - -public: - XMetronome(uint64_t hz); - - bool wait_for_tick(); - void stop(); -}; - -#endif // SHARE_GC_X_XMETRONOME_HPP diff --git a/src/hotspot/share/gc/x/xNMethod.cpp b/src/hotspot/share/gc/x/xNMethod.cpp deleted file mode 100644 index 24b02b83280..00000000000 --- a/src/hotspot/share/gc/x/xNMethod.cpp +++ /dev/null @@ -1,349 +0,0 @@ -/* - * Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "code/relocInfo.hpp" -#include "code/nmethod.hpp" -#include "gc/shared/barrierSet.hpp" -#include "gc/shared/barrierSetNMethod.hpp" -#include "gc/shared/classUnloadingContext.hpp" -#include "gc/shared/suspendibleThreadSet.hpp" -#include "gc/x/xBarrier.inline.hpp" -#include "gc/x/xGlobals.hpp" -#include "gc/x/xLock.inline.hpp" -#include "gc/x/xNMethod.hpp" -#include "gc/x/xNMethodData.hpp" -#include "gc/x/xNMethodTable.hpp" -#include "gc/x/xTask.hpp" -#include "gc/x/xWorkers.hpp" -#include "logging/log.hpp" -#include "memory/allocation.inline.hpp" -#include "memory/iterator.hpp" -#include "memory/resourceArea.hpp" -#include "memory/universe.hpp" -#include "oops/oop.inline.hpp" -#include "runtime/atomic.hpp" -#include "runtime/continuation.hpp" -#include "utilities/debug.hpp" - -static XNMethodData* gc_data(const nmethod* nm) { - return nm->gc_data(); -} - -static void set_gc_data(nmethod* nm, XNMethodData* data) { - return nm->set_gc_data(data); -} - -void XNMethod::attach_gc_data(nmethod* nm) { - GrowableArray immediate_oops; - bool non_immediate_oops = false; - - // Find all oop relocations - RelocIterator iter(nm); - while (iter.next()) { - if (iter.type() != relocInfo::oop_type) { - // Not an oop - continue; - } - - oop_Relocation* r = iter.oop_reloc(); - - if (!r->oop_is_immediate()) { - // Non-immediate oop found - non_immediate_oops = true; - continue; - } - - if (r->oop_value() != nullptr) { - // Non-null immediate oop found. Null oops can safely be - // ignored since the method will be re-registered if they - // are later patched to be non-null. - immediate_oops.push(r->oop_addr()); - } - } - - // Attach GC data to nmethod - XNMethodData* data = gc_data(nm); - if (data == nullptr) { - data = new XNMethodData(); - set_gc_data(nm, data); - } - - // Attach oops in GC data - XNMethodDataOops* const new_oops = XNMethodDataOops::create(immediate_oops, non_immediate_oops); - XNMethodDataOops* const old_oops = data->swap_oops(new_oops); - XNMethodDataOops::destroy(old_oops); -} - -XReentrantLock* XNMethod::lock_for_nmethod(nmethod* nm) { - return gc_data(nm)->lock(); -} - -XReentrantLock* XNMethod::ic_lock_for_nmethod(nmethod* nm) { - return gc_data(nm)->ic_lock(); -} - -void XNMethod::log_register(const nmethod* nm) { - LogTarget(Trace, gc, nmethod) log; - if (!log.is_enabled()) { - return; - } - - const XNMethodDataOops* const oops = gc_data(nm)->oops(); - - log.print("Register NMethod: %s.%s (" PTR_FORMAT "), " - "Compiler: %s, Oops: %d, ImmediateOops: " SIZE_FORMAT ", NonImmediateOops: %s", - nm->method()->method_holder()->external_name(), - nm->method()->name()->as_C_string(), - p2i(nm), - nm->compiler_name(), - nm->oops_count() - 1, - oops->immediates_count(), - oops->has_non_immediates() ? "Yes" : "No"); - - LogTarget(Trace, gc, nmethod, oops) log_oops; - if (!log_oops.is_enabled()) { - return; - } - - // Print nmethod oops table - { - oop* const begin = nm->oops_begin(); - oop* const end = nm->oops_end(); - for (oop* p = begin; p < end; p++) { - const oop o = Atomic::load(p); // C1 PatchingStub may replace it concurrently. - const char* external_name = (o == nullptr) ? "N/A" : o->klass()->external_name(); - log_oops.print(" Oop[" SIZE_FORMAT "] " PTR_FORMAT " (%s)", - (p - begin), p2i(o), external_name); - } - } - - // Print nmethod immediate oops - { - oop** const begin = oops->immediates_begin(); - oop** const end = oops->immediates_end(); - for (oop** p = begin; p < end; p++) { - log_oops.print(" ImmediateOop[" SIZE_FORMAT "] " PTR_FORMAT " @ " PTR_FORMAT " (%s)", - (p - begin), p2i(**p), p2i(*p), (**p)->klass()->external_name()); - } - } -} - -void XNMethod::log_unregister(const nmethod* nm) { - LogTarget(Debug, gc, nmethod) log; - if (!log.is_enabled()) { - return; - } - - log.print("Unregister NMethod: %s.%s (" PTR_FORMAT ")", - nm->method()->method_holder()->external_name(), - nm->method()->name()->as_C_string(), - p2i(nm)); -} - -void XNMethod::register_nmethod(nmethod* nm) { - ResourceMark rm; - - // Create and attach gc data - attach_gc_data(nm); - - log_register(nm); - - XNMethodTable::register_nmethod(nm); - - // Disarm nmethod entry barrier - disarm(nm); -} - -void XNMethod::unregister_nmethod(nmethod* nm) { - ResourceMark rm; - - log_unregister(nm); - - XNMethodTable::unregister_nmethod(nm); - - // Destroy GC data - delete gc_data(nm); -} - -bool XNMethod::supports_entry_barrier(nmethod* nm) { - BarrierSetNMethod* const bs = BarrierSet::barrier_set()->barrier_set_nmethod(); - return bs->supports_entry_barrier(nm); -} - -bool XNMethod::is_armed(nmethod* nm) { - BarrierSetNMethod* const bs = BarrierSet::barrier_set()->barrier_set_nmethod(); - return bs->is_armed(nm); -} - -void XNMethod::disarm(nmethod* nm) { - BarrierSetNMethod* const bs = BarrierSet::barrier_set()->barrier_set_nmethod(); - bs->disarm(nm); -} - -void XNMethod::set_guard_value(nmethod* nm, int value) { - BarrierSetNMethod* const bs = BarrierSet::barrier_set()->barrier_set_nmethod(); - bs->set_guard_value(nm, value); -} - -void XNMethod::nmethod_oops_do(nmethod* nm, OopClosure* cl) { - XLocker locker(XNMethod::lock_for_nmethod(nm)); - XNMethod::nmethod_oops_do_inner(nm, cl); -} - -void XNMethod::nmethod_oops_do_inner(nmethod* nm, OopClosure* cl) { - // Process oops table - { - oop* const begin = nm->oops_begin(); - oop* const end = nm->oops_end(); - for (oop* p = begin; p < end; p++) { - if (!Universe::contains_non_oop_word(p)) { - cl->do_oop(p); - } - } - } - - XNMethodDataOops* const oops = gc_data(nm)->oops(); - - // Process immediate oops - { - oop** const begin = oops->immediates_begin(); - oop** const end = oops->immediates_end(); - for (oop** p = begin; p < end; p++) { - if (*p != Universe::non_oop_word()) { - cl->do_oop(*p); - } - } - } - - // Process non-immediate oops - if (oops->has_non_immediates()) { - nm->fix_oop_relocations(); - } -} - -class XNMethodOopClosure : public OopClosure { -public: - virtual void do_oop(oop* p) { - if (XResurrection::is_blocked()) { - XBarrier::keep_alive_barrier_on_phantom_root_oop_field(p); - } else { - XBarrier::load_barrier_on_root_oop_field(p); - } - } - - virtual void do_oop(narrowOop* p) { - ShouldNotReachHere(); - } -}; - -void XNMethod::nmethod_oops_barrier(nmethod* nm) { - XNMethodOopClosure cl; - nmethod_oops_do_inner(nm, &cl); -} - -void XNMethod::nmethods_do_begin() { - XNMethodTable::nmethods_do_begin(); -} - -void XNMethod::nmethods_do_end() { - XNMethodTable::nmethods_do_end(); -} - -void XNMethod::nmethods_do(NMethodClosure* cl) { - XNMethodTable::nmethods_do(cl); -} - -class XNMethodUnlinkClosure : public NMethodClosure { -private: - bool _unloading_occurred; - volatile bool _failed; - - void set_failed() { - Atomic::store(&_failed, true); - } - -public: - XNMethodUnlinkClosure(bool unloading_occurred) : - _unloading_occurred(unloading_occurred), - _failed(false) {} - - virtual void do_nmethod(nmethod* nm) { - if (failed()) { - return; - } - - if (nm->is_unloading()) { - XLocker locker(XNMethod::lock_for_nmethod(nm)); - nm->unlink(); - return; - } - - { - XLocker locker(XNMethod::lock_for_nmethod(nm)); - - if (XNMethod::is_armed(nm)) { - // Heal oops and arm phase invariantly - XNMethod::nmethod_oops_barrier(nm); - XNMethod::set_guard_value(nm, 0); - } - } - - // Clear compiled ICs and exception caches - XLocker locker(XNMethod::ic_lock_for_nmethod(nm)); - nm->unload_nmethod_caches(_unloading_occurred); - } - - bool failed() const { - return Atomic::load(&_failed); - } -}; - -class XNMethodUnlinkTask : public XTask { -private: - XNMethodUnlinkClosure _cl; - -public: - XNMethodUnlinkTask(bool unloading_occurred) : - XTask("XNMethodUnlinkTask"), - _cl(unloading_occurred) { - XNMethodTable::nmethods_do_begin(); - } - - ~XNMethodUnlinkTask() { - XNMethodTable::nmethods_do_end(); - } - - virtual void work() { - XNMethodTable::nmethods_do(&_cl); - } -}; - -void XNMethod::unlink(XWorkers* workers, bool unloading_occurred) { - XNMethodUnlinkTask task(unloading_occurred); - workers->run(&task); -} - -void XNMethod::purge() { - ClassUnloadingContext::context()->purge_and_free_nmethods(); -} diff --git a/src/hotspot/share/gc/x/xNMethod.hpp b/src/hotspot/share/gc/x/xNMethod.hpp deleted file mode 100644 index 49fdecf584d..00000000000 --- a/src/hotspot/share/gc/x/xNMethod.hpp +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XNMETHOD_HPP -#define SHARE_GC_X_XNMETHOD_HPP - -#include "memory/allStatic.hpp" - -class nmethod; -class NMethodClosure; -class XReentrantLock; -class XWorkers; - -class XNMethod : public AllStatic { -private: - static void attach_gc_data(nmethod* nm); - - static void log_register(const nmethod* nm); - static void log_unregister(const nmethod* nm); - -public: - static void register_nmethod(nmethod* nm); - static void unregister_nmethod(nmethod* nm); - - static bool supports_entry_barrier(nmethod* nm); - - static bool is_armed(nmethod* nm); - static void disarm(nmethod* nm); - static void set_guard_value(nmethod* nm, int value); - - static void nmethod_oops_do(nmethod* nm, OopClosure* cl); - static void nmethod_oops_do_inner(nmethod* nm, OopClosure* cl); - - static void nmethod_oops_barrier(nmethod* nm); - - static void nmethods_do_begin(); - static void nmethods_do_end(); - static void nmethods_do(NMethodClosure* cl); - - static XReentrantLock* lock_for_nmethod(nmethod* nm); - static XReentrantLock* ic_lock_for_nmethod(nmethod* nm); - - static void unlink(XWorkers* workers, bool unloading_occurred); - static void purge(); -}; - -#endif // SHARE_GC_X_XNMETHOD_HPP diff --git a/src/hotspot/share/gc/x/xNMethodData.cpp b/src/hotspot/share/gc/x/xNMethodData.cpp deleted file mode 100644 index 63fbfda99e2..00000000000 --- a/src/hotspot/share/gc/x/xNMethodData.cpp +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xAttachedArray.inline.hpp" -#include "gc/x/xLock.inline.hpp" -#include "gc/x/xNMethodData.hpp" -#include "memory/allocation.hpp" -#include "runtime/atomic.hpp" -#include "utilities/align.hpp" -#include "utilities/debug.hpp" -#include "utilities/growableArray.hpp" - -XNMethodDataOops* XNMethodDataOops::create(const GrowableArray& immediates, bool has_non_immediates) { - return ::new (AttachedArray::alloc(immediates.length())) XNMethodDataOops(immediates, has_non_immediates); -} - -void XNMethodDataOops::destroy(XNMethodDataOops* oops) { - AttachedArray::free(oops); -} - -XNMethodDataOops::XNMethodDataOops(const GrowableArray& immediates, bool has_non_immediates) : - _immediates(immediates.length()), - _has_non_immediates(has_non_immediates) { - // Save all immediate oops - for (size_t i = 0; i < immediates_count(); i++) { - immediates_begin()[i] = immediates.at(int(i)); - } -} - -size_t XNMethodDataOops::immediates_count() const { - return _immediates.length(); -} - -oop** XNMethodDataOops::immediates_begin() const { - return _immediates(this); -} - -oop** XNMethodDataOops::immediates_end() const { - return immediates_begin() + immediates_count(); -} - -bool XNMethodDataOops::has_non_immediates() const { - return _has_non_immediates; -} - -XNMethodData::XNMethodData() : - _lock(), - _ic_lock(), - _oops(nullptr) {} - -XNMethodData::~XNMethodData() { - XNMethodDataOops::destroy(_oops); -} - -XReentrantLock* XNMethodData::lock() { - return &_lock; -} - -XReentrantLock* XNMethodData::ic_lock() { - return &_ic_lock; -} - -XNMethodDataOops* XNMethodData::oops() const { - return Atomic::load_acquire(&_oops); -} - -XNMethodDataOops* XNMethodData::swap_oops(XNMethodDataOops* new_oops) { - XLocker locker(&_lock); - XNMethodDataOops* const old_oops = _oops; - _oops = new_oops; - return old_oops; -} diff --git a/src/hotspot/share/gc/x/xNMethodData.hpp b/src/hotspot/share/gc/x/xNMethodData.hpp deleted file mode 100644 index 14549f41342..00000000000 --- a/src/hotspot/share/gc/x/xNMethodData.hpp +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XNMETHODDATA_HPP -#define SHARE_GC_X_XNMETHODDATA_HPP - -#include "gc/x/xAttachedArray.hpp" -#include "gc/x/xLock.hpp" -#include "memory/allocation.hpp" -#include "oops/oopsHierarchy.hpp" -#include "utilities/globalDefinitions.hpp" - -class nmethod; -template class GrowableArray; - -class XNMethodDataOops { -private: - typedef XAttachedArray AttachedArray; - - const AttachedArray _immediates; - const bool _has_non_immediates; - - XNMethodDataOops(const GrowableArray& immediates, bool has_non_immediates); - -public: - static XNMethodDataOops* create(const GrowableArray& immediates, bool has_non_immediates); - static void destroy(XNMethodDataOops* oops); - - size_t immediates_count() const; - oop** immediates_begin() const; - oop** immediates_end() const; - - bool has_non_immediates() const; -}; - -class XNMethodData : public CHeapObj { -private: - XReentrantLock _lock; - XReentrantLock _ic_lock; - XNMethodDataOops* volatile _oops; - -public: - XNMethodData(); - ~XNMethodData(); - - XReentrantLock* lock(); - XReentrantLock* ic_lock(); - - XNMethodDataOops* oops() const; - XNMethodDataOops* swap_oops(XNMethodDataOops* oops); -}; - -#endif // SHARE_GC_X_XNMETHODDATA_HPP diff --git a/src/hotspot/share/gc/x/xNMethodTable.cpp b/src/hotspot/share/gc/x/xNMethodTable.cpp deleted file mode 100644 index 52fcba755a7..00000000000 --- a/src/hotspot/share/gc/x/xNMethodTable.cpp +++ /dev/null @@ -1,234 +0,0 @@ -/* - * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "code/relocInfo.hpp" -#include "code/nmethod.hpp" -#include "gc/shared/barrierSet.hpp" -#include "gc/shared/barrierSetNMethod.hpp" -#include "gc/x/xGlobals.hpp" -#include "gc/x/xHash.inline.hpp" -#include "gc/x/xLock.inline.hpp" -#include "gc/x/xNMethodData.hpp" -#include "gc/x/xNMethodTable.hpp" -#include "gc/x/xNMethodTableEntry.hpp" -#include "gc/x/xNMethodTableIteration.hpp" -#include "gc/x/xSafeDelete.inline.hpp" -#include "gc/x/xTask.hpp" -#include "gc/x/xWorkers.hpp" -#include "logging/log.hpp" -#include "memory/allocation.hpp" -#include "memory/iterator.hpp" -#include "memory/resourceArea.hpp" -#include "runtime/mutexLocker.hpp" -#include "utilities/debug.hpp" -#include "utilities/powerOfTwo.hpp" - -XNMethodTableEntry* XNMethodTable::_table = nullptr; -size_t XNMethodTable::_size = 0; -size_t XNMethodTable::_nregistered = 0; -size_t XNMethodTable::_nunregistered = 0; -XNMethodTableIteration XNMethodTable::_iteration; -XSafeDeleteNoLock XNMethodTable::_safe_delete; - -size_t XNMethodTable::first_index(const nmethod* nm, size_t size) { - assert(is_power_of_2(size), "Invalid size"); - const size_t mask = size - 1; - const size_t hash = XHash::address_to_uint32((uintptr_t)nm); - return hash & mask; -} - -size_t XNMethodTable::next_index(size_t prev_index, size_t size) { - assert(is_power_of_2(size), "Invalid size"); - const size_t mask = size - 1; - return (prev_index + 1) & mask; -} - -bool XNMethodTable::register_entry(XNMethodTableEntry* table, size_t size, nmethod* nm) { - const XNMethodTableEntry entry(nm); - size_t index = first_index(nm, size); - - for (;;) { - const XNMethodTableEntry table_entry = table[index]; - - if (!table_entry.registered() && !table_entry.unregistered()) { - // Insert new entry - table[index] = entry; - return true; - } - - if (table_entry.registered() && table_entry.method() == nm) { - // Replace existing entry - table[index] = entry; - return false; - } - - index = next_index(index, size); - } -} - -void XNMethodTable::unregister_entry(XNMethodTableEntry* table, size_t size, nmethod* nm) { - size_t index = first_index(nm, size); - - for (;;) { - const XNMethodTableEntry table_entry = table[index]; - assert(table_entry.registered() || table_entry.unregistered(), "Entry not found"); - - if (table_entry.registered() && table_entry.method() == nm) { - // Remove entry - table[index] = XNMethodTableEntry(true /* unregistered */); - return; - } - - index = next_index(index, size); - } -} - -void XNMethodTable::rebuild(size_t new_size) { - assert(CodeCache_lock->owned_by_self(), "Lock must be held"); - - assert(is_power_of_2(new_size), "Invalid size"); - - log_debug(gc, nmethod)("Rebuilding NMethod Table: " - SIZE_FORMAT "->" SIZE_FORMAT " entries, " - SIZE_FORMAT "(%.0f%%->%.0f%%) registered, " - SIZE_FORMAT "(%.0f%%->%.0f%%) unregistered", - _size, new_size, - _nregistered, percent_of(_nregistered, _size), percent_of(_nregistered, new_size), - _nunregistered, percent_of(_nunregistered, _size), 0.0); - - // Allocate new table - XNMethodTableEntry* const new_table = new XNMethodTableEntry[new_size]; - - // Transfer all registered entries - for (size_t i = 0; i < _size; i++) { - const XNMethodTableEntry entry = _table[i]; - if (entry.registered()) { - register_entry(new_table, new_size, entry.method()); - } - } - - // Free old table - _safe_delete(_table); - - // Install new table - _table = new_table; - _size = new_size; - _nunregistered = 0; -} - -void XNMethodTable::rebuild_if_needed() { - // The hash table uses linear probing. To avoid wasting memory while - // at the same time maintaining good hash collision behavior we want - // to keep the table occupancy between 30% and 70%. The table always - // grows/shrinks by doubling/halving its size. Pruning of unregistered - // entries is done by rebuilding the table with or without resizing it. - const size_t min_size = 1024; - const size_t shrink_threshold = _size * 0.30; - const size_t prune_threshold = _size * 0.65; - const size_t grow_threshold = _size * 0.70; - - if (_size == 0) { - // Initialize table - rebuild(min_size); - } else if (_nregistered < shrink_threshold && _size > min_size) { - // Shrink table - rebuild(_size / 2); - } else if (_nregistered + _nunregistered > grow_threshold) { - // Prune or grow table - if (_nregistered < prune_threshold) { - // Prune table - rebuild(_size); - } else { - // Grow table - rebuild(_size * 2); - } - } -} - -size_t XNMethodTable::registered_nmethods() { - return _nregistered; -} - -size_t XNMethodTable::unregistered_nmethods() { - return _nunregistered; -} - -void XNMethodTable::register_nmethod(nmethod* nm) { - assert(CodeCache_lock->owned_by_self(), "Lock must be held"); - - // Grow/Shrink/Prune table if needed - rebuild_if_needed(); - - // Insert new entry - if (register_entry(_table, _size, nm)) { - // New entry registered. When register_entry() instead returns - // false the nmethod was already in the table so we do not want - // to increase number of registered entries in that case. - _nregistered++; - } -} - -void XNMethodTable::wait_until_iteration_done() { - assert(CodeCache_lock->owned_by_self(), "Lock must be held"); - - while (_iteration.in_progress()) { - CodeCache_lock->wait_without_safepoint_check(); - } -} - -void XNMethodTable::unregister_nmethod(nmethod* nm) { - assert(CodeCache_lock->owned_by_self(), "Lock must be held"); - - // Remove entry - unregister_entry(_table, _size, nm); - _nunregistered++; - _nregistered--; -} - -void XNMethodTable::nmethods_do_begin() { - MutexLocker mu(CodeCache_lock, Mutex::_no_safepoint_check_flag); - - // Do not allow the table to be deleted while iterating - _safe_delete.enable_deferred_delete(); - - // Prepare iteration - _iteration.nmethods_do_begin(_table, _size); -} - -void XNMethodTable::nmethods_do_end() { - MutexLocker mu(CodeCache_lock, Mutex::_no_safepoint_check_flag); - - // Finish iteration - _iteration.nmethods_do_end(); - - // Allow the table to be deleted - _safe_delete.disable_deferred_delete(); - - // Notify iteration done - CodeCache_lock->notify_all(); -} - -void XNMethodTable::nmethods_do(NMethodClosure* cl) { - _iteration.nmethods_do(cl); -} diff --git a/src/hotspot/share/gc/x/xNMethodTable.hpp b/src/hotspot/share/gc/x/xNMethodTable.hpp deleted file mode 100644 index ebb7803a083..00000000000 --- a/src/hotspot/share/gc/x/xNMethodTable.hpp +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XNMETHODTABLE_HPP -#define SHARE_GC_X_XNMETHODTABLE_HPP - -#include "gc/x/xNMethodTableIteration.hpp" -#include "gc/x/xSafeDelete.hpp" -#include "memory/allStatic.hpp" - -class nmethod; -class NMethodClosure; -class XNMethodTableEntry; -class XWorkers; - -class XNMethodTable : public AllStatic { -private: - static XNMethodTableEntry* _table; - static size_t _size; - static size_t _nregistered; - static size_t _nunregistered; - static XNMethodTableIteration _iteration; - static XSafeDeleteNoLock _safe_delete; - - static XNMethodTableEntry* create(size_t size); - static void destroy(XNMethodTableEntry* table); - - static size_t first_index(const nmethod* nm, size_t size); - static size_t next_index(size_t prev_index, size_t size); - - static bool register_entry(XNMethodTableEntry* table, size_t size, nmethod* nm); - static void unregister_entry(XNMethodTableEntry* table, size_t size, nmethod* nm); - - static void rebuild(size_t new_size); - static void rebuild_if_needed(); - -public: - static size_t registered_nmethods(); - static size_t unregistered_nmethods(); - - static void register_nmethod(nmethod* nm); - static void unregister_nmethod(nmethod* nm); - - static void wait_until_iteration_done(); - - static void nmethods_do_begin(); - static void nmethods_do_end(); - static void nmethods_do(NMethodClosure* cl); - - static void unlink(XWorkers* workers, bool unloading_occurred); - static void purge(XWorkers* workers); -}; - -#endif // SHARE_GC_X_XNMETHODTABLE_HPP diff --git a/src/hotspot/share/gc/x/xNMethodTableEntry.hpp b/src/hotspot/share/gc/x/xNMethodTableEntry.hpp deleted file mode 100644 index 9f06abb0bdb..00000000000 --- a/src/hotspot/share/gc/x/xNMethodTableEntry.hpp +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XNMETHODTABLEENTRY_HPP -#define SHARE_GC_X_XNMETHODTABLEENTRY_HPP - -#include "gc/x/xBitField.hpp" -#include "memory/allocation.hpp" - -class nmethod; - -// -// NMethod table entry layout -// -------------------------- -// -// 6 -// 3 2 1 0 -// +---------------------------------------------------------------------+-+-+ -// |11111111 11111111 11111111 11111111 11111111 11111111 11111111 111111|1|1| -// +---------------------------------------------------------------------+-+-+ -// | | | -// | 1-1 Unregistered Flag (1-bits) * | -// | | -// | 0-0 Registered Flag (1-bits) * -// | -// * 63-2 NMethod Address (62-bits) -// - -class XNMethodTableEntry : public CHeapObj { -private: - typedef XBitField field_registered; - typedef XBitField field_unregistered; - typedef XBitField field_method; - - uint64_t _entry; - -public: - explicit XNMethodTableEntry(bool unregistered = false) : - _entry(field_registered::encode(false) | - field_unregistered::encode(unregistered) | - field_method::encode(nullptr)) {} - - explicit XNMethodTableEntry(nmethod* method) : - _entry(field_registered::encode(true) | - field_unregistered::encode(false) | - field_method::encode(method)) {} - - bool registered() const { - return field_registered::decode(_entry); - } - - bool unregistered() const { - return field_unregistered::decode(_entry); - } - - nmethod* method() const { - return field_method::decode(_entry); - } -}; - -#endif // SHARE_GC_X_XNMETHODTABLEENTRY_HPP diff --git a/src/hotspot/share/gc/x/xNMethodTableIteration.cpp b/src/hotspot/share/gc/x/xNMethodTableIteration.cpp deleted file mode 100644 index c9248e63420..00000000000 --- a/src/hotspot/share/gc/x/xNMethodTableIteration.cpp +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xNMethodTableEntry.hpp" -#include "gc/x/xNMethodTableIteration.hpp" -#include "memory/iterator.hpp" -#include "runtime/atomic.hpp" -#include "utilities/debug.hpp" -#include "utilities/globalDefinitions.hpp" - -XNMethodTableIteration::XNMethodTableIteration() : - _table(nullptr), - _size(0), - _claimed(0) {} - -bool XNMethodTableIteration::in_progress() const { - return _table != nullptr; -} - -void XNMethodTableIteration::nmethods_do_begin(XNMethodTableEntry* table, size_t size) { - assert(!in_progress(), "precondition"); - - _table = table; - _size = size; - _claimed = 0; -} - -void XNMethodTableIteration::nmethods_do_end() { - assert(_claimed >= _size, "Failed to claim all table entries"); - - // Finish iteration - _table = nullptr; -} - -void XNMethodTableIteration::nmethods_do(NMethodClosure* cl) { - for (;;) { - // Claim table partition. Each partition is currently sized to span - // two cache lines. This number is just a guess, but seems to work well. - const size_t partition_size = (XCacheLineSize * 2) / sizeof(XNMethodTableEntry); - const size_t partition_start = MIN2(Atomic::fetch_then_add(&_claimed, partition_size), _size); - const size_t partition_end = MIN2(partition_start + partition_size, _size); - if (partition_start == partition_end) { - // End of table - break; - } - - // Process table partition - for (size_t i = partition_start; i < partition_end; i++) { - const XNMethodTableEntry entry = _table[i]; - if (entry.registered()) { - cl->do_nmethod(entry.method()); - } - } - } -} diff --git a/src/hotspot/share/gc/x/xNMethodTableIteration.hpp b/src/hotspot/share/gc/x/xNMethodTableIteration.hpp deleted file mode 100644 index 1677b334490..00000000000 --- a/src/hotspot/share/gc/x/xNMethodTableIteration.hpp +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XNMETHODTABLEITERATION_HPP -#define SHARE_GC_X_XNMETHODTABLEITERATION_HPP - -#include "gc/x/xGlobals.hpp" - -class NMethodClosure; -class XNMethodTableEntry; - -class XNMethodTableIteration { -private: - XNMethodTableEntry* _table; - size_t _size; - XCACHE_ALIGNED volatile size_t _claimed; - -public: - XNMethodTableIteration(); - - bool in_progress() const; - - void nmethods_do_begin(XNMethodTableEntry* table, size_t size); - void nmethods_do_end(); - void nmethods_do(NMethodClosure* cl); -}; - -#endif // SHARE_GC_X_XNMETHODTABLEITERATION_HPP diff --git a/src/hotspot/share/gc/x/xNUMA.cpp b/src/hotspot/share/gc/x/xNUMA.cpp deleted file mode 100644 index fb99878b200..00000000000 --- a/src/hotspot/share/gc/x/xNUMA.cpp +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) 2016, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/shared/gcLogPrecious.hpp" -#include "gc/x/xNUMA.hpp" - -bool XNUMA::_enabled; - -void XNUMA::initialize() { - pd_initialize(); - - log_info_p(gc, init)("NUMA Support: %s", to_string()); - if (_enabled) { - log_info_p(gc, init)("NUMA Nodes: %u", count()); - } -} - -const char* XNUMA::to_string() { - return _enabled ? "Enabled" : "Disabled"; -} diff --git a/src/hotspot/share/gc/x/xNUMA.hpp b/src/hotspot/share/gc/x/xNUMA.hpp deleted file mode 100644 index 6331a62c042..00000000000 --- a/src/hotspot/share/gc/x/xNUMA.hpp +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (c) 2016, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XNUMA_HPP -#define SHARE_GC_X_XNUMA_HPP - -#include "memory/allStatic.hpp" -#include "utilities/globalDefinitions.hpp" - -class XNUMA : public AllStatic { -private: - static bool _enabled; - - static void pd_initialize(); - -public: - static void initialize(); - static bool is_enabled(); - - static uint32_t count(); - static uint32_t id(); - - static uint32_t memory_id(uintptr_t addr); - - static const char* to_string(); -}; - -#endif // SHARE_GC_X_XNUMA_HPP diff --git a/src/hotspot/share/gc/x/xNUMA.inline.hpp b/src/hotspot/share/gc/x/xNUMA.inline.hpp deleted file mode 100644 index 17f5b831a31..00000000000 --- a/src/hotspot/share/gc/x/xNUMA.inline.hpp +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (c) 2019, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XNUMA_INLINE_HPP -#define SHARE_GC_X_XNUMA_INLINE_HPP - -#include "gc/x/xNUMA.hpp" - -inline bool XNUMA::is_enabled() { - return _enabled; -} - -#endif // SHARE_GC_X_XNUMA_INLINE_HPP diff --git a/src/hotspot/share/gc/x/xObjArrayAllocator.cpp b/src/hotspot/share/gc/x/xObjArrayAllocator.cpp deleted file mode 100644 index 0950b886a9b..00000000000 --- a/src/hotspot/share/gc/x/xObjArrayAllocator.cpp +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Copyright (c) 2019, 2024, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xThreadLocalData.hpp" -#include "gc/x/xObjArrayAllocator.hpp" -#include "gc/x/xUtils.inline.hpp" -#include "oops/arrayKlass.hpp" -#include "runtime/interfaceSupport.inline.hpp" -#include "utilities/debug.hpp" - -XObjArrayAllocator::XObjArrayAllocator(Klass* klass, size_t word_size, int length, bool do_zero, Thread* thread) : - ObjArrayAllocator(klass, word_size, length, do_zero, thread) {} - -void XObjArrayAllocator::yield_for_safepoint() const { - ThreadBlockInVM tbivm(JavaThread::cast(_thread)); -} - -oop XObjArrayAllocator::initialize(HeapWord* mem) const { - // ZGC specializes the initialization by performing segmented clearing - // to allow shorter time-to-safepoints. - - if (!_do_zero) { - // No need for ZGC specialization - return ObjArrayAllocator::initialize(mem); - } - - // A max segment size of 64K was chosen because microbenchmarking - // suggested that it offered a good trade-off between allocation - // time and time-to-safepoint - const size_t segment_max = XUtils::bytes_to_words(64 * K); - const BasicType element_type = ArrayKlass::cast(_klass)->element_type(); - - // Clear leading 32 bits, if necessary. - int base_offset = arrayOopDesc::base_offset_in_bytes(element_type); - if (!is_aligned(base_offset, HeapWordSize)) { - assert(is_aligned(base_offset, BytesPerInt), "array base must be 32 bit aligned"); - *reinterpret_cast(reinterpret_cast(mem) + base_offset) = 0; - base_offset += BytesPerInt; - } - assert(is_aligned(base_offset, HeapWordSize), "remaining array base must be 64 bit aligned"); - - const size_t header = heap_word_size(base_offset); - const size_t payload_size = _word_size - header; - - if (payload_size <= segment_max) { - // To small to use segmented clearing - return ObjArrayAllocator::initialize(mem); - } - - // Segmented clearing - - // The array is going to be exposed before it has been completely - // cleared, therefore we can't expose the header at the end of this - // function. Instead explicitly initialize it according to our needs. - arrayOopDesc::set_mark(mem, markWord::prototype()); - arrayOopDesc::release_set_klass(mem, _klass); - assert(_length >= 0, "length should be non-negative"); - arrayOopDesc::set_length(mem, _length); - - // Keep the array alive across safepoints through an invisible - // root. Invisible roots are not visited by the heap itarator - // and the marking logic will not attempt to follow its elements. - // Relocation knows how to dodge iterating over such objects. - XThreadLocalData::set_invisible_root(_thread, (oop*)&mem); - - for (size_t processed = 0; processed < payload_size; processed += segment_max) { - // Calculate segment - HeapWord* const start = (HeapWord*)(mem + header + processed); - const size_t remaining = payload_size - processed; - const size_t segment_size = MIN2(remaining, segment_max); - - // Clear segment - Copy::zero_to_words(start, segment_size); - - // Safepoint - yield_for_safepoint(); - } - - XThreadLocalData::clear_invisible_root(_thread); - - return cast_to_oop(mem); -} diff --git a/src/hotspot/share/gc/x/xObjArrayAllocator.hpp b/src/hotspot/share/gc/x/xObjArrayAllocator.hpp deleted file mode 100644 index 4a084da3279..00000000000 --- a/src/hotspot/share/gc/x/xObjArrayAllocator.hpp +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XOBJARRAYALLOCATOR_HPP -#define SHARE_GC_X_XOBJARRAYALLOCATOR_HPP - -#include "gc/shared/memAllocator.hpp" - -class XObjArrayAllocator : public ObjArrayAllocator { -private: - virtual oop initialize(HeapWord* mem) const override; - - void yield_for_safepoint() const; - -public: - XObjArrayAllocator(Klass* klass, size_t word_size, int length, bool do_zero, Thread* thread); -}; - -#endif // SHARE_GC_X_XOBJARRAYALLOCATOR_HPP diff --git a/src/hotspot/share/gc/x/xObjectAllocator.cpp b/src/hotspot/share/gc/x/xObjectAllocator.cpp deleted file mode 100644 index 26981ce9131..00000000000 --- a/src/hotspot/share/gc/x/xObjectAllocator.cpp +++ /dev/null @@ -1,267 +0,0 @@ -/* - * Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xGlobals.hpp" -#include "gc/x/xHeap.inline.hpp" -#include "gc/x/xHeuristics.hpp" -#include "gc/x/xObjectAllocator.hpp" -#include "gc/x/xPage.inline.hpp" -#include "gc/x/xPageTable.inline.hpp" -#include "gc/x/xStat.hpp" -#include "gc/x/xThread.inline.hpp" -#include "gc/x/xValue.inline.hpp" -#include "logging/log.hpp" -#include "runtime/atomic.hpp" -#include "runtime/safepoint.hpp" -#include "utilities/align.hpp" -#include "utilities/debug.hpp" - -static const XStatCounter XCounterUndoObjectAllocationSucceeded("Memory", "Undo Object Allocation Succeeded", XStatUnitOpsPerSecond); -static const XStatCounter XCounterUndoObjectAllocationFailed("Memory", "Undo Object Allocation Failed", XStatUnitOpsPerSecond); - -XObjectAllocator::XObjectAllocator() : - _use_per_cpu_shared_small_pages(XHeuristics::use_per_cpu_shared_small_pages()), - _used(0), - _undone(0), - _alloc_for_relocation(0), - _undo_alloc_for_relocation(0), - _shared_medium_page(nullptr), - _shared_small_page(nullptr) {} - -XPage** XObjectAllocator::shared_small_page_addr() { - return _use_per_cpu_shared_small_pages ? _shared_small_page.addr() : _shared_small_page.addr(0); -} - -XPage* const* XObjectAllocator::shared_small_page_addr() const { - return _use_per_cpu_shared_small_pages ? _shared_small_page.addr() : _shared_small_page.addr(0); -} - -void XObjectAllocator::register_alloc_for_relocation(const XPageTable* page_table, uintptr_t addr, size_t size) { - const XPage* const page = page_table->get(addr); - const size_t aligned_size = align_up(size, page->object_alignment()); - Atomic::add(_alloc_for_relocation.addr(), aligned_size); -} - -void XObjectAllocator::register_undo_alloc_for_relocation(const XPage* page, size_t size) { - const size_t aligned_size = align_up(size, page->object_alignment()); - Atomic::add(_undo_alloc_for_relocation.addr(), aligned_size); -} - -XPage* XObjectAllocator::alloc_page(uint8_t type, size_t size, XAllocationFlags flags) { - XPage* const page = XHeap::heap()->alloc_page(type, size, flags); - if (page != nullptr) { - // Increment used bytes - Atomic::add(_used.addr(), size); - } - - return page; -} - -void XObjectAllocator::undo_alloc_page(XPage* page) { - // Increment undone bytes - Atomic::add(_undone.addr(), page->size()); - - XHeap::heap()->undo_alloc_page(page); -} - -uintptr_t XObjectAllocator::alloc_object_in_shared_page(XPage** shared_page, - uint8_t page_type, - size_t page_size, - size_t size, - XAllocationFlags flags) { - uintptr_t addr = 0; - XPage* page = Atomic::load_acquire(shared_page); - - if (page != nullptr) { - addr = page->alloc_object_atomic(size); - } - - if (addr == 0) { - // Allocate new page - XPage* const new_page = alloc_page(page_type, page_size, flags); - if (new_page != nullptr) { - // Allocate object before installing the new page - addr = new_page->alloc_object(size); - - retry: - // Install new page - XPage* const prev_page = Atomic::cmpxchg(shared_page, page, new_page); - if (prev_page != page) { - if (prev_page == nullptr) { - // Previous page was retired, retry installing the new page - page = prev_page; - goto retry; - } - - // Another page already installed, try allocation there first - const uintptr_t prev_addr = prev_page->alloc_object_atomic(size); - if (prev_addr == 0) { - // Allocation failed, retry installing the new page - page = prev_page; - goto retry; - } - - // Allocation succeeded in already installed page - addr = prev_addr; - - // Undo new page allocation - undo_alloc_page(new_page); - } - } - } - - return addr; -} - -uintptr_t XObjectAllocator::alloc_large_object(size_t size, XAllocationFlags flags) { - uintptr_t addr = 0; - - // Allocate new large page - const size_t page_size = align_up(size, XGranuleSize); - XPage* const page = alloc_page(XPageTypeLarge, page_size, flags); - if (page != nullptr) { - // Allocate the object - addr = page->alloc_object(size); - } - - return addr; -} - -uintptr_t XObjectAllocator::alloc_medium_object(size_t size, XAllocationFlags flags) { - return alloc_object_in_shared_page(_shared_medium_page.addr(), XPageTypeMedium, XPageSizeMedium, size, flags); -} - -uintptr_t XObjectAllocator::alloc_small_object(size_t size, XAllocationFlags flags) { - return alloc_object_in_shared_page(shared_small_page_addr(), XPageTypeSmall, XPageSizeSmall, size, flags); -} - -uintptr_t XObjectAllocator::alloc_object(size_t size, XAllocationFlags flags) { - if (size <= XObjectSizeLimitSmall) { - // Small - return alloc_small_object(size, flags); - } else if (size <= XObjectSizeLimitMedium) { - // Medium - return alloc_medium_object(size, flags); - } else { - // Large - return alloc_large_object(size, flags); - } -} - -uintptr_t XObjectAllocator::alloc_object(size_t size) { - XAllocationFlags flags; - return alloc_object(size, flags); -} - -uintptr_t XObjectAllocator::alloc_object_for_relocation(const XPageTable* page_table, size_t size) { - XAllocationFlags flags; - flags.set_non_blocking(); - - const uintptr_t addr = alloc_object(size, flags); - if (addr != 0) { - register_alloc_for_relocation(page_table, addr, size); - } - - return addr; -} - -void XObjectAllocator::undo_alloc_object_for_relocation(XPage* page, uintptr_t addr, size_t size) { - const uint8_t type = page->type(); - - if (type == XPageTypeLarge) { - register_undo_alloc_for_relocation(page, size); - undo_alloc_page(page); - XStatInc(XCounterUndoObjectAllocationSucceeded); - } else { - if (page->undo_alloc_object_atomic(addr, size)) { - register_undo_alloc_for_relocation(page, size); - XStatInc(XCounterUndoObjectAllocationSucceeded); - } else { - XStatInc(XCounterUndoObjectAllocationFailed); - } - } -} - -size_t XObjectAllocator::used() const { - size_t total_used = 0; - size_t total_undone = 0; - - XPerCPUConstIterator iter_used(&_used); - for (const size_t* cpu_used; iter_used.next(&cpu_used);) { - total_used += *cpu_used; - } - - XPerCPUConstIterator iter_undone(&_undone); - for (const size_t* cpu_undone; iter_undone.next(&cpu_undone);) { - total_undone += *cpu_undone; - } - - return total_used - total_undone; -} - -size_t XObjectAllocator::remaining() const { - assert(XThread::is_java(), "Should be a Java thread"); - - const XPage* const page = Atomic::load_acquire(shared_small_page_addr()); - if (page != nullptr) { - return page->remaining(); - } - - return 0; -} - -size_t XObjectAllocator::relocated() const { - size_t total_alloc = 0; - size_t total_undo_alloc = 0; - - XPerCPUConstIterator iter_alloc(&_alloc_for_relocation); - for (const size_t* alloc; iter_alloc.next(&alloc);) { - total_alloc += Atomic::load(alloc); - } - - XPerCPUConstIterator iter_undo_alloc(&_undo_alloc_for_relocation); - for (const size_t* undo_alloc; iter_undo_alloc.next(&undo_alloc);) { - total_undo_alloc += Atomic::load(undo_alloc); - } - - assert(total_alloc >= total_undo_alloc, "Mismatch"); - - return total_alloc - total_undo_alloc; -} - -void XObjectAllocator::retire_pages() { - assert(SafepointSynchronize::is_at_safepoint(), "Should be at safepoint"); - - // Reset used and undone bytes - _used.set_all(0); - _undone.set_all(0); - - // Reset relocated bytes - _alloc_for_relocation.set_all(0); - _undo_alloc_for_relocation.set_all(0); - - // Reset allocation pages - _shared_medium_page.set(nullptr); - _shared_small_page.set_all(nullptr); -} diff --git a/src/hotspot/share/gc/x/xObjectAllocator.hpp b/src/hotspot/share/gc/x/xObjectAllocator.hpp deleted file mode 100644 index 8880c41f3d5..00000000000 --- a/src/hotspot/share/gc/x/xObjectAllocator.hpp +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XOBJECTALLOCATOR_HPP -#define SHARE_GC_X_XOBJECTALLOCATOR_HPP - -#include "gc/x/xAllocationFlags.hpp" -#include "gc/x/xValue.hpp" - -class XPage; -class XPageTable; - -class XObjectAllocator { -private: - const bool _use_per_cpu_shared_small_pages; - XPerCPU _used; - XPerCPU _undone; - XPerCPU _alloc_for_relocation; - XPerCPU _undo_alloc_for_relocation; - XContended _shared_medium_page; - XPerCPU _shared_small_page; - - XPage** shared_small_page_addr(); - XPage* const* shared_small_page_addr() const; - - void register_alloc_for_relocation(const XPageTable* page_table, uintptr_t addr, size_t size); - void register_undo_alloc_for_relocation(const XPage* page, size_t size); - - XPage* alloc_page(uint8_t type, size_t size, XAllocationFlags flags); - void undo_alloc_page(XPage* page); - - // Allocate an object in a shared page. Allocate and - // atomically install a new page if necessary. - uintptr_t alloc_object_in_shared_page(XPage** shared_page, - uint8_t page_type, - size_t page_size, - size_t size, - XAllocationFlags flags); - - uintptr_t alloc_large_object(size_t size, XAllocationFlags flags); - uintptr_t alloc_medium_object(size_t size, XAllocationFlags flags); - uintptr_t alloc_small_object(size_t size, XAllocationFlags flags); - uintptr_t alloc_object(size_t size, XAllocationFlags flags); - -public: - XObjectAllocator(); - - uintptr_t alloc_object(size_t size); - uintptr_t alloc_object_for_relocation(const XPageTable* page_table, size_t size); - void undo_alloc_object_for_relocation(XPage* page, uintptr_t addr, size_t size); - - size_t used() const; - size_t remaining() const; - size_t relocated() const; - - void retire_pages(); -}; - -#endif // SHARE_GC_X_XOBJECTALLOCATOR_HPP diff --git a/src/hotspot/share/gc/x/xOop.hpp b/src/hotspot/share/gc/x/xOop.hpp deleted file mode 100644 index 92cc7a225fe..00000000000 --- a/src/hotspot/share/gc/x/xOop.hpp +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (c) 2016, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XOOP_HPP -#define SHARE_GC_X_XOOP_HPP - -#include "memory/allStatic.hpp" -#include "oops/oopsHierarchy.hpp" - -class XOop : public AllStatic { -public: - static oop from_address(uintptr_t addr); - static uintptr_t to_address(oop o); -}; - -#endif // SHARE_GC_X_XOOP_HPP diff --git a/src/hotspot/share/gc/x/xOop.inline.hpp b/src/hotspot/share/gc/x/xOop.inline.hpp deleted file mode 100644 index 933987577d1..00000000000 --- a/src/hotspot/share/gc/x/xOop.inline.hpp +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XOOP_INLINE_HPP -#define SHARE_GC_X_XOOP_INLINE_HPP - -#include "gc/x/xOop.hpp" - -inline oop XOop::from_address(uintptr_t addr) { - return cast_to_oop(addr); -} - -inline uintptr_t XOop::to_address(oop o) { - return cast_from_oop(o); -} - -#endif // SHARE_GC_X_XOOP_INLINE_HPP diff --git a/src/hotspot/share/gc/x/xPage.cpp b/src/hotspot/share/gc/x/xPage.cpp deleted file mode 100644 index b48500ab96e..00000000000 --- a/src/hotspot/share/gc/x/xPage.cpp +++ /dev/null @@ -1,135 +0,0 @@ -/* - * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xList.inline.hpp" -#include "gc/x/xPage.inline.hpp" -#include "gc/x/xPhysicalMemory.inline.hpp" -#include "gc/x/xVirtualMemory.inline.hpp" -#include "utilities/align.hpp" -#include "utilities/debug.hpp" - -XPage::XPage(const XVirtualMemory& vmem, const XPhysicalMemory& pmem) : - XPage(type_from_size(vmem.size()), vmem, pmem) {} - -XPage::XPage(uint8_t type, const XVirtualMemory& vmem, const XPhysicalMemory& pmem) : - _type(type), - _numa_id((uint8_t)-1), - _seqnum(0), - _virtual(vmem), - _top(start()), - _livemap(object_max_count()), - _last_used(0), - _physical(pmem), - _node() { - assert_initialized(); -} - -XPage::~XPage() {} - -void XPage::assert_initialized() const { - assert(!_virtual.is_null(), "Should not be null"); - assert(!_physical.is_null(), "Should not be null"); - assert(_virtual.size() == _physical.size(), "Virtual/Physical size mismatch"); - assert((_type == XPageTypeSmall && size() == XPageSizeSmall) || - (_type == XPageTypeMedium && size() == XPageSizeMedium) || - (_type == XPageTypeLarge && is_aligned(size(), XGranuleSize)), - "Page type/size mismatch"); -} - -void XPage::reset() { - _seqnum = XGlobalSeqNum; - _top = start(); - _livemap.reset(); - _last_used = 0; -} - -void XPage::reset_for_in_place_relocation() { - _seqnum = XGlobalSeqNum; - _top = start(); -} - -XPage* XPage::retype(uint8_t type) { - assert(_type != type, "Invalid retype"); - _type = type; - _livemap.resize(object_max_count()); - return this; -} - -XPage* XPage::split(size_t size) { - return split(type_from_size(size), size); -} - -XPage* XPage::split(uint8_t type, size_t size) { - assert(_virtual.size() > size, "Invalid split"); - - // Resize this page, keep _numa_id, _seqnum, and _last_used - const XVirtualMemory vmem = _virtual.split(size); - const XPhysicalMemory pmem = _physical.split(size); - _type = type_from_size(_virtual.size()); - _top = start(); - _livemap.resize(object_max_count()); - - // Create new page, inherit _seqnum and _last_used - XPage* const page = new XPage(type, vmem, pmem); - page->_seqnum = _seqnum; - page->_last_used = _last_used; - return page; -} - -XPage* XPage::split_committed() { - // Split any committed part of this page into a separate page, - // leaving this page with only uncommitted physical memory. - const XPhysicalMemory pmem = _physical.split_committed(); - if (pmem.is_null()) { - // Nothing committed - return nullptr; - } - - assert(!_physical.is_null(), "Should not be null"); - - // Resize this page - const XVirtualMemory vmem = _virtual.split(pmem.size()); - _type = type_from_size(_virtual.size()); - _top = start(); - _livemap.resize(object_max_count()); - - // Create new page - return new XPage(vmem, pmem); -} - -void XPage::print_on(outputStream* out) const { - out->print_cr(" %-6s " PTR_FORMAT " " PTR_FORMAT " " PTR_FORMAT " %s%s", - type_to_string(), start(), top(), end(), - is_allocating() ? " Allocating" : "", - is_relocatable() ? " Relocatable" : ""); -} - -void XPage::print() const { - print_on(tty); -} - -void XPage::verify_live(uint32_t live_objects, size_t live_bytes) const { - guarantee(live_objects == _livemap.live_objects(), "Invalid number of live objects"); - guarantee(live_bytes == _livemap.live_bytes(), "Invalid number of live bytes"); -} diff --git a/src/hotspot/share/gc/x/xPage.hpp b/src/hotspot/share/gc/x/xPage.hpp deleted file mode 100644 index c1040e034bd..00000000000 --- a/src/hotspot/share/gc/x/xPage.hpp +++ /dev/null @@ -1,125 +0,0 @@ -/* - * Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XPAGE_HPP -#define SHARE_GC_X_XPAGE_HPP - -#include "gc/x/xList.hpp" -#include "gc/x/xLiveMap.hpp" -#include "gc/x/xPhysicalMemory.hpp" -#include "gc/x/xVirtualMemory.hpp" -#include "memory/allocation.hpp" - -class VMStructs; - -class XPage : public CHeapObj { - friend class ::VMStructs; - friend class XList; - -private: - uint8_t _type; - uint8_t _numa_id; - uint32_t _seqnum; - XVirtualMemory _virtual; - volatile uintptr_t _top; - XLiveMap _livemap; - uint64_t _last_used; - XPhysicalMemory _physical; - XListNode _node; - - void assert_initialized() const; - - uint8_t type_from_size(size_t size) const; - const char* type_to_string() const; - - bool is_object_marked(uintptr_t addr) const; - bool is_object_strongly_marked(uintptr_t addr) const; - -public: - XPage(const XVirtualMemory& vmem, const XPhysicalMemory& pmem); - XPage(uint8_t type, const XVirtualMemory& vmem, const XPhysicalMemory& pmem); - ~XPage(); - - uint32_t object_max_count() const; - size_t object_alignment_shift() const; - size_t object_alignment() const; - - uint8_t type() const; - uintptr_t start() const; - uintptr_t end() const; - size_t size() const; - uintptr_t top() const; - size_t remaining() const; - - const XVirtualMemory& virtual_memory() const; - const XPhysicalMemory& physical_memory() const; - XPhysicalMemory& physical_memory(); - - uint8_t numa_id(); - - bool is_allocating() const; - bool is_relocatable() const; - - uint64_t last_used() const; - void set_last_used(); - - void reset(); - void reset_for_in_place_relocation(); - - XPage* retype(uint8_t type); - XPage* split(size_t size); - XPage* split(uint8_t type, size_t size); - XPage* split_committed(); - - bool is_in(uintptr_t addr) const; - - bool is_marked() const; - template bool is_object_marked(uintptr_t addr) const; - bool is_object_live(uintptr_t addr) const; - bool is_object_strongly_live(uintptr_t addr) const; - bool mark_object(uintptr_t addr, bool finalizable, bool& inc_live); - - void inc_live(uint32_t objects, size_t bytes); - uint32_t live_objects() const; - size_t live_bytes() const; - - void object_iterate(ObjectClosure* cl); - - uintptr_t alloc_object(size_t size); - uintptr_t alloc_object_atomic(size_t size); - - bool undo_alloc_object(uintptr_t addr, size_t size); - bool undo_alloc_object_atomic(uintptr_t addr, size_t size); - - void print_on(outputStream* out) const; - void print() const; - - void verify_live(uint32_t live_objects, size_t live_bytes) const; -}; - -class XPageClosure { -public: - virtual void do_page(const XPage* page) = 0; -}; - -#endif // SHARE_GC_X_XPAGE_HPP diff --git a/src/hotspot/share/gc/x/xPage.inline.hpp b/src/hotspot/share/gc/x/xPage.inline.hpp deleted file mode 100644 index d9b0fd2039d..00000000000 --- a/src/hotspot/share/gc/x/xPage.inline.hpp +++ /dev/null @@ -1,313 +0,0 @@ -/* - * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XPAGE_INLINE_HPP -#define SHARE_GC_X_XPAGE_INLINE_HPP - -#include "gc/x/xPage.hpp" - -#include "gc/x/xAddress.inline.hpp" -#include "gc/x/xGlobals.hpp" -#include "gc/x/xLiveMap.inline.hpp" -#include "gc/x/xNUMA.hpp" -#include "gc/x/xPhysicalMemory.inline.hpp" -#include "gc/x/xVirtualMemory.inline.hpp" -#include "runtime/atomic.hpp" -#include "runtime/os.hpp" -#include "utilities/align.hpp" -#include "utilities/checkedCast.hpp" -#include "utilities/debug.hpp" - -inline uint8_t XPage::type_from_size(size_t size) const { - if (size == XPageSizeSmall) { - return XPageTypeSmall; - } else if (size == XPageSizeMedium) { - return XPageTypeMedium; - } else { - return XPageTypeLarge; - } -} - -inline const char* XPage::type_to_string() const { - switch (type()) { - case XPageTypeSmall: - return "Small"; - - case XPageTypeMedium: - return "Medium"; - - default: - assert(type() == XPageTypeLarge, "Invalid page type"); - return "Large"; - } -} - -inline uint32_t XPage::object_max_count() const { - switch (type()) { - case XPageTypeLarge: - // A large page can only contain a single - // object aligned to the start of the page. - return 1; - - default: - return (uint32_t)(size() >> object_alignment_shift()); - } -} - -inline size_t XPage::object_alignment_shift() const { - switch (type()) { - case XPageTypeSmall: - return XObjectAlignmentSmallShift; - - case XPageTypeMedium: - return XObjectAlignmentMediumShift; - - default: - assert(type() == XPageTypeLarge, "Invalid page type"); - return XObjectAlignmentLargeShift; - } -} - -inline size_t XPage::object_alignment() const { - switch (type()) { - case XPageTypeSmall: - return XObjectAlignmentSmall; - - case XPageTypeMedium: - return XObjectAlignmentMedium; - - default: - assert(type() == XPageTypeLarge, "Invalid page type"); - return XObjectAlignmentLarge; - } -} - -inline uint8_t XPage::type() const { - return _type; -} - -inline uintptr_t XPage::start() const { - return _virtual.start(); -} - -inline uintptr_t XPage::end() const { - return _virtual.end(); -} - -inline size_t XPage::size() const { - return _virtual.size(); -} - -inline uintptr_t XPage::top() const { - return _top; -} - -inline size_t XPage::remaining() const { - return end() - top(); -} - -inline const XVirtualMemory& XPage::virtual_memory() const { - return _virtual; -} - -inline const XPhysicalMemory& XPage::physical_memory() const { - return _physical; -} - -inline XPhysicalMemory& XPage::physical_memory() { - return _physical; -} - -inline uint8_t XPage::numa_id() { - if (_numa_id == (uint8_t)-1) { - _numa_id = checked_cast(XNUMA::memory_id(XAddress::good(start()))); - } - - return _numa_id; -} - -inline bool XPage::is_allocating() const { - return _seqnum == XGlobalSeqNum; -} - -inline bool XPage::is_relocatable() const { - return _seqnum < XGlobalSeqNum; -} - -inline uint64_t XPage::last_used() const { - return _last_used; -} - -inline void XPage::set_last_used() { - _last_used = (uint64_t)ceil(os::elapsedTime()); -} - -inline bool XPage::is_in(uintptr_t addr) const { - const uintptr_t offset = XAddress::offset(addr); - return offset >= start() && offset < top(); -} - -inline bool XPage::is_marked() const { - assert(is_relocatable(), "Invalid page state"); - return _livemap.is_marked(); -} - -inline bool XPage::is_object_marked(uintptr_t addr) const { - assert(is_relocatable(), "Invalid page state"); - const size_t index = ((XAddress::offset(addr) - start()) >> object_alignment_shift()) * 2; - return _livemap.get(index); -} - -inline bool XPage::is_object_strongly_marked(uintptr_t addr) const { - assert(is_relocatable(), "Invalid page state"); - const size_t index = ((XAddress::offset(addr) - start()) >> object_alignment_shift()) * 2; - return _livemap.get(index + 1); -} - -template -inline bool XPage::is_object_marked(uintptr_t addr) const { - return finalizable ? is_object_marked(addr) : is_object_strongly_marked(addr); -} - -inline bool XPage::is_object_live(uintptr_t addr) const { - return is_allocating() || is_object_marked(addr); -} - -inline bool XPage::is_object_strongly_live(uintptr_t addr) const { - return is_allocating() || is_object_strongly_marked(addr); -} - -inline bool XPage::mark_object(uintptr_t addr, bool finalizable, bool& inc_live) { - assert(XAddress::is_marked(addr), "Invalid address"); - assert(is_relocatable(), "Invalid page state"); - assert(is_in(addr), "Invalid address"); - - // Set mark bit - const size_t index = ((XAddress::offset(addr) - start()) >> object_alignment_shift()) * 2; - return _livemap.set(index, finalizable, inc_live); -} - -inline void XPage::inc_live(uint32_t objects, size_t bytes) { - _livemap.inc_live(objects, bytes); -} - -inline uint32_t XPage::live_objects() const { - assert(is_marked(), "Should be marked"); - return _livemap.live_objects(); -} - -inline size_t XPage::live_bytes() const { - assert(is_marked(), "Should be marked"); - return _livemap.live_bytes(); -} - -inline void XPage::object_iterate(ObjectClosure* cl) { - _livemap.iterate(cl, XAddress::good(start()), object_alignment_shift()); -} - -inline uintptr_t XPage::alloc_object(size_t size) { - assert(is_allocating(), "Invalid state"); - - const size_t aligned_size = align_up(size, object_alignment()); - const uintptr_t addr = top(); - const uintptr_t new_top = addr + aligned_size; - - if (new_top > end()) { - // Not enough space left - return 0; - } - - _top = new_top; - - return XAddress::good(addr); -} - -inline uintptr_t XPage::alloc_object_atomic(size_t size) { - assert(is_allocating(), "Invalid state"); - - const size_t aligned_size = align_up(size, object_alignment()); - uintptr_t addr = top(); - - for (;;) { - const uintptr_t new_top = addr + aligned_size; - if (new_top > end()) { - // Not enough space left - return 0; - } - - const uintptr_t prev_top = Atomic::cmpxchg(&_top, addr, new_top); - if (prev_top == addr) { - // Success - return XAddress::good(addr); - } - - // Retry - addr = prev_top; - } -} - -inline bool XPage::undo_alloc_object(uintptr_t addr, size_t size) { - assert(is_allocating(), "Invalid state"); - - const uintptr_t offset = XAddress::offset(addr); - const size_t aligned_size = align_up(size, object_alignment()); - const uintptr_t old_top = top(); - const uintptr_t new_top = old_top - aligned_size; - - if (new_top != offset) { - // Failed to undo allocation, not the last allocated object - return false; - } - - _top = new_top; - - // Success - return true; -} - -inline bool XPage::undo_alloc_object_atomic(uintptr_t addr, size_t size) { - assert(is_allocating(), "Invalid state"); - - const uintptr_t offset = XAddress::offset(addr); - const size_t aligned_size = align_up(size, object_alignment()); - uintptr_t old_top = top(); - - for (;;) { - const uintptr_t new_top = old_top - aligned_size; - if (new_top != offset) { - // Failed to undo allocation, not the last allocated object - return false; - } - - const uintptr_t prev_top = Atomic::cmpxchg(&_top, old_top, new_top); - if (prev_top == old_top) { - // Success - return true; - } - - // Retry - old_top = prev_top; - } -} - -#endif // SHARE_GC_X_XPAGE_INLINE_HPP diff --git a/src/hotspot/share/gc/x/xPageAllocator.cpp b/src/hotspot/share/gc/x/xPageAllocator.cpp deleted file mode 100644 index ccc715682c0..00000000000 --- a/src/hotspot/share/gc/x/xPageAllocator.cpp +++ /dev/null @@ -1,870 +0,0 @@ -/* - * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/shared/gcLogPrecious.hpp" -#include "gc/shared/suspendibleThreadSet.hpp" -#include "gc/x/xArray.inline.hpp" -#include "gc/x/xCollectedHeap.hpp" -#include "gc/x/xFuture.inline.hpp" -#include "gc/x/xGlobals.hpp" -#include "gc/x/xLock.inline.hpp" -#include "gc/x/xPage.inline.hpp" -#include "gc/x/xPageAllocator.inline.hpp" -#include "gc/x/xPageCache.hpp" -#include "gc/x/xSafeDelete.inline.hpp" -#include "gc/x/xStat.hpp" -#include "gc/x/xTask.hpp" -#include "gc/x/xUncommitter.hpp" -#include "gc/x/xUnmapper.hpp" -#include "gc/x/xWorkers.hpp" -#include "jfr/jfrEvents.hpp" -#include "logging/log.hpp" -#include "runtime/globals.hpp" -#include "runtime/init.hpp" -#include "runtime/java.hpp" -#include "utilities/debug.hpp" -#include "utilities/globalDefinitions.hpp" - -static const XStatCounter XCounterAllocationRate("Memory", "Allocation Rate", XStatUnitBytesPerSecond); -static const XStatCounter XCounterPageCacheFlush("Memory", "Page Cache Flush", XStatUnitBytesPerSecond); -static const XStatCounter XCounterDefragment("Memory", "Defragment", XStatUnitOpsPerSecond); -static const XStatCriticalPhase XCriticalPhaseAllocationStall("Allocation Stall"); - -enum XPageAllocationStall { - XPageAllocationStallSuccess, - XPageAllocationStallFailed, - XPageAllocationStallStartGC -}; - -class XPageAllocation : public StackObj { - friend class XList; - -private: - const uint8_t _type; - const size_t _size; - const XAllocationFlags _flags; - const uint32_t _seqnum; - size_t _flushed; - size_t _committed; - XList _pages; - XListNode _node; - XFuture _stall_result; - -public: - XPageAllocation(uint8_t type, size_t size, XAllocationFlags flags) : - _type(type), - _size(size), - _flags(flags), - _seqnum(XGlobalSeqNum), - _flushed(0), - _committed(0), - _pages(), - _node(), - _stall_result() {} - - uint8_t type() const { - return _type; - } - - size_t size() const { - return _size; - } - - XAllocationFlags flags() const { - return _flags; - } - - uint32_t seqnum() const { - return _seqnum; - } - - size_t flushed() const { - return _flushed; - } - - void set_flushed(size_t flushed) { - _flushed = flushed; - } - - size_t committed() const { - return _committed; - } - - void set_committed(size_t committed) { - _committed = committed; - } - - XPageAllocationStall wait() { - return _stall_result.get(); - } - - XList* pages() { - return &_pages; - } - - void satisfy(XPageAllocationStall result) { - _stall_result.set(result); - } -}; - -XPageAllocator::XPageAllocator(XWorkers* workers, - size_t min_capacity, - size_t initial_capacity, - size_t max_capacity) : - _lock(), - _cache(), - _virtual(max_capacity), - _physical(max_capacity), - _min_capacity(min_capacity), - _max_capacity(max_capacity), - _current_max_capacity(max_capacity), - _capacity(0), - _claimed(0), - _used(0), - _used_high(0), - _used_low(0), - _reclaimed(0), - _stalled(), - _nstalled(0), - _satisfied(), - _unmapper(new XUnmapper(this)), - _uncommitter(new XUncommitter(this)), - _safe_delete(), - _initialized(false) { - - if (!_virtual.is_initialized() || !_physical.is_initialized()) { - return; - } - - log_info_p(gc, init)("Min Capacity: " SIZE_FORMAT "M", min_capacity / M); - log_info_p(gc, init)("Initial Capacity: " SIZE_FORMAT "M", initial_capacity / M); - log_info_p(gc, init)("Max Capacity: " SIZE_FORMAT "M", max_capacity / M); - if (XPageSizeMedium > 0) { - log_info_p(gc, init)("Medium Page Size: " SIZE_FORMAT "M", XPageSizeMedium / M); - } else { - log_info_p(gc, init)("Medium Page Size: N/A"); - } - log_info_p(gc, init)("Pre-touch: %s", AlwaysPreTouch ? "Enabled" : "Disabled"); - - // Warn if system limits could stop us from reaching max capacity - _physical.warn_commit_limits(max_capacity); - - // Check if uncommit should and can be enabled - _physical.try_enable_uncommit(min_capacity, max_capacity); - - // Pre-map initial capacity - if (!prime_cache(workers, initial_capacity)) { - log_error_p(gc)("Failed to allocate initial Java heap (" SIZE_FORMAT "M)", initial_capacity / M); - return; - } - - // Successfully initialized - _initialized = true; -} - -class XPreTouchTask : public XTask { -private: - const XPhysicalMemoryManager* const _physical; - volatile uintptr_t _start; - const uintptr_t _end; - -public: - XPreTouchTask(const XPhysicalMemoryManager* physical, uintptr_t start, uintptr_t end) : - XTask("XPreTouchTask"), - _physical(physical), - _start(start), - _end(end) {} - - virtual void work() { - for (;;) { - // Get granule offset - const size_t size = XGranuleSize; - const uintptr_t offset = Atomic::fetch_then_add(&_start, size); - if (offset >= _end) { - // Done - break; - } - - // Pre-touch granule - _physical->pretouch(offset, size); - } - } -}; - -bool XPageAllocator::prime_cache(XWorkers* workers, size_t size) { - XAllocationFlags flags; - - flags.set_non_blocking(); - flags.set_low_address(); - - XPage* const page = alloc_page(XPageTypeLarge, size, flags); - if (page == nullptr) { - return false; - } - - if (AlwaysPreTouch) { - // Pre-touch page - XPreTouchTask task(&_physical, page->start(), page->end()); - workers->run_all(&task); - } - - free_page(page, false /* reclaimed */); - - return true; -} - -bool XPageAllocator::is_initialized() const { - return _initialized; -} - -size_t XPageAllocator::min_capacity() const { - return _min_capacity; -} - -size_t XPageAllocator::max_capacity() const { - return _max_capacity; -} - -size_t XPageAllocator::soft_max_capacity() const { - // Note that SoftMaxHeapSize is a manageable flag - const size_t soft_max_capacity = Atomic::load(&SoftMaxHeapSize); - const size_t current_max_capacity = Atomic::load(&_current_max_capacity); - return MIN2(soft_max_capacity, current_max_capacity); -} - -size_t XPageAllocator::capacity() const { - return Atomic::load(&_capacity); -} - -size_t XPageAllocator::used() const { - return Atomic::load(&_used); -} - -size_t XPageAllocator::unused() const { - const ssize_t capacity = (ssize_t)Atomic::load(&_capacity); - const ssize_t used = (ssize_t)Atomic::load(&_used); - const ssize_t claimed = (ssize_t)Atomic::load(&_claimed); - const ssize_t unused = capacity - used - claimed; - return unused > 0 ? (size_t)unused : 0; -} - -XPageAllocatorStats XPageAllocator::stats() const { - XLocker locker(&_lock); - return XPageAllocatorStats(_min_capacity, - _max_capacity, - soft_max_capacity(), - _capacity, - _used, - _used_high, - _used_low, - _reclaimed); -} - -void XPageAllocator::reset_statistics() { - assert(SafepointSynchronize::is_at_safepoint(), "Should be at safepoint"); - _reclaimed = 0; - _used_high = _used_low = _used; - _nstalled = 0; -} - -size_t XPageAllocator::increase_capacity(size_t size) { - const size_t increased = MIN2(size, _current_max_capacity - _capacity); - - if (increased > 0) { - // Update atomically since we have concurrent readers - Atomic::add(&_capacity, increased); - - // Record time of last commit. When allocation, we prefer increasing - // the capacity over flushing the cache. That means there could be - // expired pages in the cache at this time. However, since we are - // increasing the capacity we are obviously in need of committed - // memory and should therefore not be uncommitting memory. - _cache.set_last_commit(); - } - - return increased; -} - -void XPageAllocator::decrease_capacity(size_t size, bool set_max_capacity) { - // Update atomically since we have concurrent readers - Atomic::sub(&_capacity, size); - - if (set_max_capacity) { - // Adjust current max capacity to avoid further attempts to increase capacity - log_error_p(gc)("Forced to lower max Java heap size from " - SIZE_FORMAT "M(%.0f%%) to " SIZE_FORMAT "M(%.0f%%)", - _current_max_capacity / M, percent_of(_current_max_capacity, _max_capacity), - _capacity / M, percent_of(_capacity, _max_capacity)); - - // Update atomically since we have concurrent readers - Atomic::store(&_current_max_capacity, _capacity); - } -} - -void XPageAllocator::increase_used(size_t size, bool worker_relocation) { - if (worker_relocation) { - // Allocating a page for the purpose of worker relocation has - // a negative contribution to the number of reclaimed bytes. - _reclaimed -= size; - } - - // Update atomically since we have concurrent readers - const size_t used = Atomic::add(&_used, size); - if (used > _used_high) { - _used_high = used; - } -} - -void XPageAllocator::decrease_used(size_t size, bool reclaimed) { - // Only pages explicitly released with the reclaimed flag set - // counts as reclaimed bytes. This flag is true when we release - // a page after relocation, and is false when we release a page - // to undo an allocation. - if (reclaimed) { - _reclaimed += size; - } - - // Update atomically since we have concurrent readers - const size_t used = Atomic::sub(&_used, size); - if (used < _used_low) { - _used_low = used; - } -} - -bool XPageAllocator::commit_page(XPage* page) { - // Commit physical memory - return _physical.commit(page->physical_memory()); -} - -void XPageAllocator::uncommit_page(XPage* page) { - if (!ZUncommit) { - return; - } - - // Uncommit physical memory - _physical.uncommit(page->physical_memory()); -} - -void XPageAllocator::map_page(const XPage* page) const { - // Map physical memory - _physical.map(page->start(), page->physical_memory()); -} - -void XPageAllocator::unmap_page(const XPage* page) const { - // Unmap physical memory - _physical.unmap(page->start(), page->size()); -} - -void XPageAllocator::destroy_page(XPage* page) { - // Free virtual memory - _virtual.free(page->virtual_memory()); - - // Free physical memory - _physical.free(page->physical_memory()); - - // Delete page safely - _safe_delete(page); -} - -bool XPageAllocator::is_alloc_allowed(size_t size) const { - const size_t available = _current_max_capacity - _used - _claimed; - return available >= size; -} - -bool XPageAllocator::alloc_page_common_inner(uint8_t type, size_t size, XList* pages) { - if (!is_alloc_allowed(size)) { - // Out of memory - return false; - } - - // Try allocate from the page cache - XPage* const page = _cache.alloc_page(type, size); - if (page != nullptr) { - // Success - pages->insert_last(page); - return true; - } - - // Try increase capacity - const size_t increased = increase_capacity(size); - if (increased < size) { - // Could not increase capacity enough to satisfy the allocation - // completely. Flush the page cache to satisfy the remainder. - const size_t remaining = size - increased; - _cache.flush_for_allocation(remaining, pages); - } - - // Success - return true; -} - -bool XPageAllocator::alloc_page_common(XPageAllocation* allocation) { - const uint8_t type = allocation->type(); - const size_t size = allocation->size(); - const XAllocationFlags flags = allocation->flags(); - XList* const pages = allocation->pages(); - - if (!alloc_page_common_inner(type, size, pages)) { - // Out of memory - return false; - } - - // Updated used statistics - increase_used(size, flags.worker_relocation()); - - // Success - return true; -} - -static void check_out_of_memory_during_initialization() { - if (!is_init_completed()) { - vm_exit_during_initialization("java.lang.OutOfMemoryError", "Java heap too small"); - } -} - -bool XPageAllocator::alloc_page_stall(XPageAllocation* allocation) { - XStatTimer timer(XCriticalPhaseAllocationStall); - EventZAllocationStall event; - XPageAllocationStall result; - - // We can only block if the VM is fully initialized - check_out_of_memory_during_initialization(); - - // Increment stalled counter - Atomic::inc(&_nstalled); - - do { - // Start asynchronous GC - XCollectedHeap::heap()->collect(GCCause::_z_allocation_stall); - - // Wait for allocation to complete, fail or request a GC - result = allocation->wait(); - } while (result == XPageAllocationStallStartGC); - - { - // - // We grab the lock here for two different reasons: - // - // 1) Guard deletion of underlying semaphore. This is a workaround for - // a bug in sem_post() in glibc < 2.21, where it's not safe to destroy - // the semaphore immediately after returning from sem_wait(). The - // reason is that sem_post() can touch the semaphore after a waiting - // thread have returned from sem_wait(). To avoid this race we are - // forcing the waiting thread to acquire/release the lock held by the - // posting thread. https://sourceware.org/bugzilla/show_bug.cgi?id=12674 - // - // 2) Guard the list of satisfied pages. - // - XLocker locker(&_lock); - _satisfied.remove(allocation); - } - - // Send event - event.commit(allocation->type(), allocation->size()); - - return (result == XPageAllocationStallSuccess); -} - -bool XPageAllocator::alloc_page_or_stall(XPageAllocation* allocation) { - { - XLocker locker(&_lock); - - if (alloc_page_common(allocation)) { - // Success - return true; - } - - // Failed - if (allocation->flags().non_blocking()) { - // Don't stall - return false; - } - - // Enqueue allocation request - _stalled.insert_last(allocation); - } - - // Stall - return alloc_page_stall(allocation); -} - -XPage* XPageAllocator::alloc_page_create(XPageAllocation* allocation) { - const size_t size = allocation->size(); - - // Allocate virtual memory. To make error handling a lot more straight - // forward, we allocate virtual memory before destroying flushed pages. - // Flushed pages are also unmapped and destroyed asynchronously, so we - // can't immediately reuse that part of the address space anyway. - const XVirtualMemory vmem = _virtual.alloc(size, allocation->flags().low_address()); - if (vmem.is_null()) { - log_error(gc)("Out of address space"); - return nullptr; - } - - XPhysicalMemory pmem; - size_t flushed = 0; - - // Harvest physical memory from flushed pages - XListRemoveIterator iter(allocation->pages()); - for (XPage* page; iter.next(&page);) { - flushed += page->size(); - - // Harvest flushed physical memory - XPhysicalMemory& fmem = page->physical_memory(); - pmem.add_segments(fmem); - fmem.remove_segments(); - - // Unmap and destroy page - _unmapper->unmap_and_destroy_page(page); - } - - if (flushed > 0) { - allocation->set_flushed(flushed); - - // Update statistics - XStatInc(XCounterPageCacheFlush, flushed); - log_debug(gc, heap)("Page Cache Flushed: " SIZE_FORMAT "M", flushed / M); - } - - // Allocate any remaining physical memory. Capacity and used has - // already been adjusted, we just need to fetch the memory, which - // is guaranteed to succeed. - if (flushed < size) { - const size_t remaining = size - flushed; - allocation->set_committed(remaining); - _physical.alloc(pmem, remaining); - } - - // Create new page - return new XPage(allocation->type(), vmem, pmem); -} - -bool XPageAllocator::should_defragment(const XPage* page) const { - // A small page can end up at a high address (second half of the address space) - // if we've split a larger page or we have a constrained address space. To help - // fight address space fragmentation we remap such pages to a lower address, if - // a lower address is available. - return page->type() == XPageTypeSmall && - page->start() >= _virtual.reserved() / 2 && - page->start() > _virtual.lowest_available_address(); -} - -bool XPageAllocator::is_alloc_satisfied(XPageAllocation* allocation) const { - // The allocation is immediately satisfied if the list of pages contains - // exactly one page, with the type and size that was requested. However, - // even if the allocation is immediately satisfied we might still want to - // return false here to force the page to be remapped to fight address - // space fragmentation. - - if (allocation->pages()->size() != 1) { - // Not a single page - return false; - } - - const XPage* const page = allocation->pages()->first(); - if (page->type() != allocation->type() || - page->size() != allocation->size()) { - // Wrong type or size - return false; - } - - if (should_defragment(page)) { - // Defragment address space - XStatInc(XCounterDefragment); - return false; - } - - // Allocation immediately satisfied - return true; -} - -XPage* XPageAllocator::alloc_page_finalize(XPageAllocation* allocation) { - // Fast path - if (is_alloc_satisfied(allocation)) { - return allocation->pages()->remove_first(); - } - - // Slow path - XPage* const page = alloc_page_create(allocation); - if (page == nullptr) { - // Out of address space - return nullptr; - } - - // Commit page - if (commit_page(page)) { - // Success - map_page(page); - return page; - } - - // Failed or partially failed. Split of any successfully committed - // part of the page into a new page and insert it into list of pages, - // so that it will be re-inserted into the page cache. - XPage* const committed_page = page->split_committed(); - destroy_page(page); - - if (committed_page != nullptr) { - map_page(committed_page); - allocation->pages()->insert_last(committed_page); - } - - return nullptr; -} - -void XPageAllocator::alloc_page_failed(XPageAllocation* allocation) { - XLocker locker(&_lock); - - size_t freed = 0; - - // Free any allocated/flushed pages - XListRemoveIterator iter(allocation->pages()); - for (XPage* page; iter.next(&page);) { - freed += page->size(); - free_page_inner(page, false /* reclaimed */); - } - - // Adjust capacity and used to reflect the failed capacity increase - const size_t remaining = allocation->size() - freed; - decrease_used(remaining, false /* reclaimed */); - decrease_capacity(remaining, true /* set_max_capacity */); - - // Try satisfy stalled allocations - satisfy_stalled(); -} - -XPage* XPageAllocator::alloc_page(uint8_t type, size_t size, XAllocationFlags flags) { - EventZPageAllocation event; - -retry: - XPageAllocation allocation(type, size, flags); - - // Allocate one or more pages from the page cache. If the allocation - // succeeds but the returned pages don't cover the complete allocation, - // then finalize phase is allowed to allocate the remaining memory - // directly from the physical memory manager. Note that this call might - // block in a safepoint if the non-blocking flag is not set. - if (!alloc_page_or_stall(&allocation)) { - // Out of memory - return nullptr; - } - - XPage* const page = alloc_page_finalize(&allocation); - if (page == nullptr) { - // Failed to commit or map. Clean up and retry, in the hope that - // we can still allocate by flushing the page cache (more aggressively). - alloc_page_failed(&allocation); - goto retry; - } - - // Reset page. This updates the page's sequence number and must - // be done after we potentially blocked in a safepoint (stalled) - // where the global sequence number was updated. - page->reset(); - - // Update allocation statistics. Exclude worker relocations to avoid - // artificial inflation of the allocation rate during relocation. - if (!flags.worker_relocation() && is_init_completed()) { - // Note that there are two allocation rate counters, which have - // different purposes and are sampled at different frequencies. - const size_t bytes = page->size(); - XStatInc(XCounterAllocationRate, bytes); - XStatInc(XStatAllocRate::counter(), bytes); - } - - // Send event - event.commit(type, size, allocation.flushed(), allocation.committed(), - page->physical_memory().nsegments(), flags.non_blocking()); - - return page; -} - -void XPageAllocator::satisfy_stalled() { - for (;;) { - XPageAllocation* const allocation = _stalled.first(); - if (allocation == nullptr) { - // Allocation queue is empty - return; - } - - if (!alloc_page_common(allocation)) { - // Allocation could not be satisfied, give up - return; - } - - // Allocation succeeded, dequeue and satisfy allocation request. - // Note that we must dequeue the allocation request first, since - // it will immediately be deallocated once it has been satisfied. - _stalled.remove(allocation); - _satisfied.insert_last(allocation); - allocation->satisfy(XPageAllocationStallSuccess); - } -} - -void XPageAllocator::free_page_inner(XPage* page, bool reclaimed) { - // Update used statistics - decrease_used(page->size(), reclaimed); - - // Set time when last used - page->set_last_used(); - - // Cache page - _cache.free_page(page); -} - -void XPageAllocator::free_page(XPage* page, bool reclaimed) { - XLocker locker(&_lock); - - // Free page - free_page_inner(page, reclaimed); - - // Try satisfy stalled allocations - satisfy_stalled(); -} - -void XPageAllocator::free_pages(const XArray* pages, bool reclaimed) { - XLocker locker(&_lock); - - // Free pages - XArrayIterator iter(pages); - for (XPage* page; iter.next(&page);) { - free_page_inner(page, reclaimed); - } - - // Try satisfy stalled allocations - satisfy_stalled(); -} - -size_t XPageAllocator::uncommit(uint64_t* timeout) { - // We need to join the suspendible thread set while manipulating capacity and - // used, to make sure GC safepoints will have a consistent view. However, when - // ZVerifyViews is enabled we need to join at a broader scope to also make sure - // we don't change the address good mask after pages have been flushed, and - // thereby made invisible to pages_do(), but before they have been unmapped. - SuspendibleThreadSetJoiner joiner(ZVerifyViews); - XList pages; - size_t flushed; - - { - SuspendibleThreadSetJoiner joiner(!ZVerifyViews); - XLocker locker(&_lock); - - // Never uncommit below min capacity. We flush out and uncommit chunks at - // a time (~0.8% of the max capacity, but at least one granule and at most - // 256M), in case demand for memory increases while we are uncommitting. - const size_t retain = MAX2(_used, _min_capacity); - const size_t release = _capacity - retain; - const size_t limit = MIN2(align_up(_current_max_capacity >> 7, XGranuleSize), 256 * M); - const size_t flush = MIN2(release, limit); - - // Flush pages to uncommit - flushed = _cache.flush_for_uncommit(flush, &pages, timeout); - if (flushed == 0) { - // Nothing flushed - return 0; - } - - // Record flushed pages as claimed - Atomic::add(&_claimed, flushed); - } - - // Unmap, uncommit, and destroy flushed pages - XListRemoveIterator iter(&pages); - for (XPage* page; iter.next(&page);) { - unmap_page(page); - uncommit_page(page); - destroy_page(page); - } - - { - SuspendibleThreadSetJoiner joiner(!ZVerifyViews); - XLocker locker(&_lock); - - // Adjust claimed and capacity to reflect the uncommit - Atomic::sub(&_claimed, flushed); - decrease_capacity(flushed, false /* set_max_capacity */); - } - - return flushed; -} - -void XPageAllocator::enable_deferred_delete() const { - _safe_delete.enable_deferred_delete(); -} - -void XPageAllocator::disable_deferred_delete() const { - _safe_delete.disable_deferred_delete(); -} - -void XPageAllocator::debug_map_page(const XPage* page) const { - assert(SafepointSynchronize::is_at_safepoint(), "Should be at safepoint"); - _physical.debug_map(page->start(), page->physical_memory()); -} - -void XPageAllocator::debug_unmap_page(const XPage* page) const { - assert(SafepointSynchronize::is_at_safepoint(), "Should be at safepoint"); - _physical.debug_unmap(page->start(), page->size()); -} - -void XPageAllocator::pages_do(XPageClosure* cl) const { - assert(SafepointSynchronize::is_at_safepoint(), "Should be at safepoint"); - - XListIterator iter_satisfied(&_satisfied); - for (XPageAllocation* allocation; iter_satisfied.next(&allocation);) { - XListIterator iter_pages(allocation->pages()); - for (XPage* page; iter_pages.next(&page);) { - cl->do_page(page); - } - } - - _cache.pages_do(cl); -} - -bool XPageAllocator::has_alloc_stalled() const { - return Atomic::load(&_nstalled) != 0; -} - -void XPageAllocator::check_out_of_memory() { - XLocker locker(&_lock); - - // Fail allocation requests that were enqueued before the - // last GC cycle started, otherwise start a new GC cycle. - for (XPageAllocation* allocation = _stalled.first(); allocation != nullptr; allocation = _stalled.first()) { - if (allocation->seqnum() == XGlobalSeqNum) { - // Start a new GC cycle, keep allocation requests enqueued - allocation->satisfy(XPageAllocationStallStartGC); - return; - } - - // Out of memory, fail allocation request - _stalled.remove(allocation); - _satisfied.insert_last(allocation); - allocation->satisfy(XPageAllocationStallFailed); - } -} - -void XPageAllocator::threads_do(ThreadClosure* tc) const { - tc->do_thread(_unmapper); - tc->do_thread(_uncommitter); -} diff --git a/src/hotspot/share/gc/x/xPageAllocator.hpp b/src/hotspot/share/gc/x/xPageAllocator.hpp deleted file mode 100644 index b907e50043d..00000000000 --- a/src/hotspot/share/gc/x/xPageAllocator.hpp +++ /dev/null @@ -1,174 +0,0 @@ -/* - * Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XPAGEALLOCATOR_HPP -#define SHARE_GC_X_XPAGEALLOCATOR_HPP - -#include "gc/x/xAllocationFlags.hpp" -#include "gc/x/xArray.hpp" -#include "gc/x/xList.hpp" -#include "gc/x/xLock.hpp" -#include "gc/x/xPageCache.hpp" -#include "gc/x/xPhysicalMemory.hpp" -#include "gc/x/xSafeDelete.hpp" -#include "gc/x/xVirtualMemory.hpp" - -class ThreadClosure; -class VMStructs; -class XPageAllocation; -class XPageAllocatorStats; -class XWorkers; -class XUncommitter; -class XUnmapper; - -class XPageAllocator { - friend class ::VMStructs; - friend class XUnmapper; - friend class XUncommitter; - -private: - mutable XLock _lock; - XPageCache _cache; - XVirtualMemoryManager _virtual; - XPhysicalMemoryManager _physical; - const size_t _min_capacity; - const size_t _max_capacity; - volatile size_t _current_max_capacity; - volatile size_t _capacity; - volatile size_t _claimed; - volatile size_t _used; - size_t _used_high; - size_t _used_low; - ssize_t _reclaimed; - XList _stalled; - volatile uint64_t _nstalled; - XList _satisfied; - XUnmapper* _unmapper; - XUncommitter* _uncommitter; - mutable XSafeDelete _safe_delete; - bool _initialized; - - bool prime_cache(XWorkers* workers, size_t size); - - size_t increase_capacity(size_t size); - void decrease_capacity(size_t size, bool set_max_capacity); - - void increase_used(size_t size, bool relocation); - void decrease_used(size_t size, bool reclaimed); - - bool commit_page(XPage* page); - void uncommit_page(XPage* page); - - void map_page(const XPage* page) const; - void unmap_page(const XPage* page) const; - - void destroy_page(XPage* page); - - bool is_alloc_allowed(size_t size) const; - - bool alloc_page_common_inner(uint8_t type, size_t size, XList* pages); - bool alloc_page_common(XPageAllocation* allocation); - bool alloc_page_stall(XPageAllocation* allocation); - bool alloc_page_or_stall(XPageAllocation* allocation); - bool should_defragment(const XPage* page) const; - bool is_alloc_satisfied(XPageAllocation* allocation) const; - XPage* alloc_page_create(XPageAllocation* allocation); - XPage* alloc_page_finalize(XPageAllocation* allocation); - void alloc_page_failed(XPageAllocation* allocation); - - void satisfy_stalled(); - - void free_page_inner(XPage* page, bool reclaimed); - - size_t uncommit(uint64_t* timeout); - -public: - XPageAllocator(XWorkers* workers, - size_t min_capacity, - size_t initial_capacity, - size_t max_capacity); - - bool is_initialized() const; - - size_t min_capacity() const; - size_t max_capacity() const; - size_t soft_max_capacity() const; - size_t capacity() const; - size_t used() const; - size_t unused() const; - - XPageAllocatorStats stats() const; - - void reset_statistics(); - - XPage* alloc_page(uint8_t type, size_t size, XAllocationFlags flags); - void free_page(XPage* page, bool reclaimed); - void free_pages(const XArray* pages, bool reclaimed); - - void enable_deferred_delete() const; - void disable_deferred_delete() const; - - void debug_map_page(const XPage* page) const; - void debug_unmap_page(const XPage* page) const; - - bool has_alloc_stalled() const; - void check_out_of_memory(); - - void pages_do(XPageClosure* cl) const; - - void threads_do(ThreadClosure* tc) const; -}; - -class XPageAllocatorStats { -private: - size_t _min_capacity; - size_t _max_capacity; - size_t _soft_max_capacity; - size_t _current_max_capacity; - size_t _capacity; - size_t _used; - size_t _used_high; - size_t _used_low; - size_t _reclaimed; - -public: - XPageAllocatorStats(size_t min_capacity, - size_t max_capacity, - size_t soft_max_capacity, - size_t capacity, - size_t used, - size_t used_high, - size_t used_low, - size_t reclaimed); - - size_t min_capacity() const; - size_t max_capacity() const; - size_t soft_max_capacity() const; - size_t capacity() const; - size_t used() const; - size_t used_high() const; - size_t used_low() const; - size_t reclaimed() const; -}; - -#endif // SHARE_GC_X_XPAGEALLOCATOR_HPP diff --git a/src/hotspot/share/gc/x/xPageAllocator.inline.hpp b/src/hotspot/share/gc/x/xPageAllocator.inline.hpp deleted file mode 100644 index dbaf77f56a0..00000000000 --- a/src/hotspot/share/gc/x/xPageAllocator.inline.hpp +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XPAGEALLOCATOR_INLINE_HPP -#define SHARE_GC_X_XPAGEALLOCATOR_INLINE_HPP - -#include "gc/x/xPageAllocator.hpp" - -inline XPageAllocatorStats::XPageAllocatorStats(size_t min_capacity, - size_t max_capacity, - size_t soft_max_capacity, - size_t capacity, - size_t used, - size_t used_high, - size_t used_low, - size_t reclaimed) : - _min_capacity(min_capacity), - _max_capacity(max_capacity), - _soft_max_capacity(soft_max_capacity), - _capacity(capacity), - _used(used), - _used_high(used_high), - _used_low(used_low), - _reclaimed(reclaimed) {} - -inline size_t XPageAllocatorStats::min_capacity() const { - return _min_capacity; -} - -inline size_t XPageAllocatorStats::max_capacity() const { - return _max_capacity; -} - -inline size_t XPageAllocatorStats::soft_max_capacity() const { - return _soft_max_capacity; -} - -inline size_t XPageAllocatorStats::capacity() const { - return _capacity; -} - -inline size_t XPageAllocatorStats::used() const { - return _used; -} - -inline size_t XPageAllocatorStats::used_high() const { - return _used_high; -} - -inline size_t XPageAllocatorStats::used_low() const { - return _used_low; -} - -inline size_t XPageAllocatorStats::reclaimed() const { - return _reclaimed; -} - -#endif // SHARE_GC_X_XPAGEALLOCATOR_INLINE_HPP diff --git a/src/hotspot/share/gc/x/xPageCache.cpp b/src/hotspot/share/gc/x/xPageCache.cpp deleted file mode 100644 index d38b0646a8a..00000000000 --- a/src/hotspot/share/gc/x/xPageCache.cpp +++ /dev/null @@ -1,356 +0,0 @@ -/* - * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xGlobals.hpp" -#include "gc/x/xList.inline.hpp" -#include "gc/x/xNUMA.hpp" -#include "gc/x/xPage.inline.hpp" -#include "gc/x/xPageCache.hpp" -#include "gc/x/xStat.hpp" -#include "gc/x/xValue.inline.hpp" -#include "memory/allocation.hpp" -#include "runtime/globals.hpp" -#include "runtime/os.hpp" - -static const XStatCounter XCounterPageCacheHitL1("Memory", "Page Cache Hit L1", XStatUnitOpsPerSecond); -static const XStatCounter XCounterPageCacheHitL2("Memory", "Page Cache Hit L2", XStatUnitOpsPerSecond); -static const XStatCounter XCounterPageCacheHitL3("Memory", "Page Cache Hit L3", XStatUnitOpsPerSecond); -static const XStatCounter XCounterPageCacheMiss("Memory", "Page Cache Miss", XStatUnitOpsPerSecond); - -class XPageCacheFlushClosure : public StackObj { - friend class XPageCache; - -protected: - const size_t _requested; - size_t _flushed; - -public: - XPageCacheFlushClosure(size_t requested); - virtual bool do_page(const XPage* page) = 0; -}; - -XPageCacheFlushClosure::XPageCacheFlushClosure(size_t requested) : - _requested(requested), - _flushed(0) {} - -XPageCache::XPageCache() : - _small(), - _medium(), - _large(), - _last_commit(0) {} - -XPage* XPageCache::alloc_small_page() { - const uint32_t numa_id = XNUMA::id(); - const uint32_t numa_count = XNUMA::count(); - - // Try NUMA local page cache - XPage* const l1_page = _small.get(numa_id).remove_first(); - if (l1_page != nullptr) { - XStatInc(XCounterPageCacheHitL1); - return l1_page; - } - - // Try NUMA remote page cache(s) - uint32_t remote_numa_id = numa_id + 1; - const uint32_t remote_numa_count = numa_count - 1; - for (uint32_t i = 0; i < remote_numa_count; i++) { - if (remote_numa_id == numa_count) { - remote_numa_id = 0; - } - - XPage* const l2_page = _small.get(remote_numa_id).remove_first(); - if (l2_page != nullptr) { - XStatInc(XCounterPageCacheHitL2); - return l2_page; - } - - remote_numa_id++; - } - - return nullptr; -} - -XPage* XPageCache::alloc_medium_page() { - XPage* const page = _medium.remove_first(); - if (page != nullptr) { - XStatInc(XCounterPageCacheHitL1); - return page; - } - - return nullptr; -} - -XPage* XPageCache::alloc_large_page(size_t size) { - // Find a page with the right size - XListIterator iter(&_large); - for (XPage* page; iter.next(&page);) { - if (size == page->size()) { - // Page found - _large.remove(page); - XStatInc(XCounterPageCacheHitL1); - return page; - } - } - - return nullptr; -} - -XPage* XPageCache::alloc_oversized_medium_page(size_t size) { - if (size <= XPageSizeMedium) { - return _medium.remove_first(); - } - - return nullptr; -} - -XPage* XPageCache::alloc_oversized_large_page(size_t size) { - // Find a page that is large enough - XListIterator iter(&_large); - for (XPage* page; iter.next(&page);) { - if (size <= page->size()) { - // Page found - _large.remove(page); - return page; - } - } - - return nullptr; -} - -XPage* XPageCache::alloc_oversized_page(size_t size) { - XPage* page = alloc_oversized_large_page(size); - if (page == nullptr) { - page = alloc_oversized_medium_page(size); - } - - if (page != nullptr) { - XStatInc(XCounterPageCacheHitL3); - } - - return page; -} - -XPage* XPageCache::alloc_page(uint8_t type, size_t size) { - XPage* page; - - // Try allocate exact page - if (type == XPageTypeSmall) { - page = alloc_small_page(); - } else if (type == XPageTypeMedium) { - page = alloc_medium_page(); - } else { - page = alloc_large_page(size); - } - - if (page == nullptr) { - // Try allocate potentially oversized page - XPage* const oversized = alloc_oversized_page(size); - if (oversized != nullptr) { - if (size < oversized->size()) { - // Split oversized page - page = oversized->split(type, size); - - // Cache remainder - free_page(oversized); - } else { - // Re-type correctly sized page - page = oversized->retype(type); - } - } - } - - if (page == nullptr) { - XStatInc(XCounterPageCacheMiss); - } - - return page; -} - -void XPageCache::free_page(XPage* page) { - const uint8_t type = page->type(); - if (type == XPageTypeSmall) { - _small.get(page->numa_id()).insert_first(page); - } else if (type == XPageTypeMedium) { - _medium.insert_first(page); - } else { - _large.insert_first(page); - } -} - -bool XPageCache::flush_list_inner(XPageCacheFlushClosure* cl, XList* from, XList* to) { - XPage* const page = from->last(); - if (page == nullptr || !cl->do_page(page)) { - // Don't flush page - return false; - } - - // Flush page - from->remove(page); - to->insert_last(page); - return true; -} - -void XPageCache::flush_list(XPageCacheFlushClosure* cl, XList* from, XList* to) { - while (flush_list_inner(cl, from, to)); -} - -void XPageCache::flush_per_numa_lists(XPageCacheFlushClosure* cl, XPerNUMA >* from, XList* to) { - const uint32_t numa_count = XNUMA::count(); - uint32_t numa_done = 0; - uint32_t numa_next = 0; - - // Flush lists round-robin - while (numa_done < numa_count) { - XList* numa_list = from->addr(numa_next); - if (++numa_next == numa_count) { - numa_next = 0; - } - - if (flush_list_inner(cl, numa_list, to)) { - // Not done - numa_done = 0; - } else { - // Done - numa_done++; - } - } -} - -void XPageCache::flush(XPageCacheFlushClosure* cl, XList* to) { - // Prefer flushing large, then medium and last small pages - flush_list(cl, &_large, to); - flush_list(cl, &_medium, to); - flush_per_numa_lists(cl, &_small, to); - - if (cl->_flushed > cl->_requested) { - // Overflushed, re-insert part of last page into the cache - const size_t overflushed = cl->_flushed - cl->_requested; - XPage* const reinsert = to->last()->split(overflushed); - free_page(reinsert); - cl->_flushed -= overflushed; - } -} - -class XPageCacheFlushForAllocationClosure : public XPageCacheFlushClosure { -public: - XPageCacheFlushForAllocationClosure(size_t requested) : - XPageCacheFlushClosure(requested) {} - - virtual bool do_page(const XPage* page) { - if (_flushed < _requested) { - // Flush page - _flushed += page->size(); - return true; - } - - // Don't flush page - return false; - } -}; - -void XPageCache::flush_for_allocation(size_t requested, XList* to) { - XPageCacheFlushForAllocationClosure cl(requested); - flush(&cl, to); -} - -class XPageCacheFlushForUncommitClosure : public XPageCacheFlushClosure { -private: - const uint64_t _now; - uint64_t* _timeout; - -public: - XPageCacheFlushForUncommitClosure(size_t requested, uint64_t now, uint64_t* timeout) : - XPageCacheFlushClosure(requested), - _now(now), - _timeout(timeout) { - // Set initial timeout - *_timeout = ZUncommitDelay; - } - - virtual bool do_page(const XPage* page) { - const uint64_t expires = page->last_used() + ZUncommitDelay; - if (expires > _now) { - // Don't flush page, record shortest non-expired timeout - *_timeout = MIN2(*_timeout, expires - _now); - return false; - } - - if (_flushed >= _requested) { - // Don't flush page, requested amount flushed - return false; - } - - // Flush page - _flushed += page->size(); - return true; - } -}; - -size_t XPageCache::flush_for_uncommit(size_t requested, XList* to, uint64_t* timeout) { - const uint64_t now = os::elapsedTime(); - const uint64_t expires = _last_commit + ZUncommitDelay; - if (expires > now) { - // Delay uncommit, set next timeout - *timeout = expires - now; - return 0; - } - - if (requested == 0) { - // Nothing to flush, set next timeout - *timeout = ZUncommitDelay; - return 0; - } - - XPageCacheFlushForUncommitClosure cl(requested, now, timeout); - flush(&cl, to); - - return cl._flushed; -} - -void XPageCache::set_last_commit() { - _last_commit = ceil(os::elapsedTime()); -} - -void XPageCache::pages_do(XPageClosure* cl) const { - // Small - XPerNUMAConstIterator > iter_numa(&_small); - for (const XList* list; iter_numa.next(&list);) { - XListIterator iter_small(list); - for (XPage* page; iter_small.next(&page);) { - cl->do_page(page); - } - } - - // Medium - XListIterator iter_medium(&_medium); - for (XPage* page; iter_medium.next(&page);) { - cl->do_page(page); - } - - // Large - XListIterator iter_large(&_large); - for (XPage* page; iter_large.next(&page);) { - cl->do_page(page); - } -} diff --git a/src/hotspot/share/gc/x/xPageCache.hpp b/src/hotspot/share/gc/x/xPageCache.hpp deleted file mode 100644 index 9ed80a933f4..00000000000 --- a/src/hotspot/share/gc/x/xPageCache.hpp +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XPAGECACHE_HPP -#define SHARE_GC_X_XPAGECACHE_HPP - -#include "gc/x/xList.hpp" -#include "gc/x/xPage.hpp" -#include "gc/x/xValue.hpp" - -class XPageCacheFlushClosure; - -class XPageCache { -private: - XPerNUMA > _small; - XList _medium; - XList _large; - uint64_t _last_commit; - - XPage* alloc_small_page(); - XPage* alloc_medium_page(); - XPage* alloc_large_page(size_t size); - - XPage* alloc_oversized_medium_page(size_t size); - XPage* alloc_oversized_large_page(size_t size); - XPage* alloc_oversized_page(size_t size); - - bool flush_list_inner(XPageCacheFlushClosure* cl, XList* from, XList* to); - void flush_list(XPageCacheFlushClosure* cl, XList* from, XList* to); - void flush_per_numa_lists(XPageCacheFlushClosure* cl, XPerNUMA >* from, XList* to); - void flush(XPageCacheFlushClosure* cl, XList* to); - -public: - XPageCache(); - - XPage* alloc_page(uint8_t type, size_t size); - void free_page(XPage* page); - - void flush_for_allocation(size_t requested, XList* to); - size_t flush_for_uncommit(size_t requested, XList* to, uint64_t* timeout); - - void set_last_commit(); - - void pages_do(XPageClosure* cl) const; -}; - -#endif // SHARE_GC_X_XPAGECACHE_HPP diff --git a/src/hotspot/share/gc/x/xPageTable.cpp b/src/hotspot/share/gc/x/xPageTable.cpp deleted file mode 100644 index c3103e808ca..00000000000 --- a/src/hotspot/share/gc/x/xPageTable.cpp +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xGlobals.hpp" -#include "gc/x/xGranuleMap.inline.hpp" -#include "gc/x/xPage.inline.hpp" -#include "gc/x/xPageTable.inline.hpp" -#include "runtime/orderAccess.hpp" -#include "utilities/debug.hpp" - -XPageTable::XPageTable() : - _map(XAddressOffsetMax) {} - -void XPageTable::insert(XPage* page) { - const uintptr_t offset = page->start(); - const size_t size = page->size(); - - // Make sure a newly created page is - // visible before updating the page table. - OrderAccess::storestore(); - - assert(_map.get(offset) == nullptr, "Invalid entry"); - _map.put(offset, size, page); -} - -void XPageTable::remove(XPage* page) { - const uintptr_t offset = page->start(); - const size_t size = page->size(); - - assert(_map.get(offset) == page, "Invalid entry"); - _map.put(offset, size, nullptr); -} diff --git a/src/hotspot/share/gc/x/xPageTable.hpp b/src/hotspot/share/gc/x/xPageTable.hpp deleted file mode 100644 index 958dd735557..00000000000 --- a/src/hotspot/share/gc/x/xPageTable.hpp +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XPAGETABLE_HPP -#define SHARE_GC_X_XPAGETABLE_HPP - -#include "gc/x/xGranuleMap.hpp" -#include "memory/allocation.hpp" - -class VMStructs; -class XPage; -class XPageTableIterator; - -class XPageTable { - friend class ::VMStructs; - friend class XPageTableIterator; - -private: - XGranuleMap _map; - -public: - XPageTable(); - - XPage* get(uintptr_t addr) const; - - void insert(XPage* page); - void remove(XPage* page); -}; - -class XPageTableIterator : public StackObj { -private: - XGranuleMapIterator _iter; - XPage* _prev; - -public: - XPageTableIterator(const XPageTable* page_table); - - bool next(XPage** page); -}; - -#endif // SHARE_GC_X_XPAGETABLE_HPP diff --git a/src/hotspot/share/gc/x/xPageTable.inline.hpp b/src/hotspot/share/gc/x/xPageTable.inline.hpp deleted file mode 100644 index 65ad223e334..00000000000 --- a/src/hotspot/share/gc/x/xPageTable.inline.hpp +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XPAGETABLE_INLINE_HPP -#define SHARE_GC_X_XPAGETABLE_INLINE_HPP - -#include "gc/x/xPageTable.hpp" - -#include "gc/x/xAddress.inline.hpp" -#include "gc/x/xGranuleMap.inline.hpp" - -inline XPage* XPageTable::get(uintptr_t addr) const { - assert(!XAddress::is_null(addr), "Invalid address"); - return _map.get(XAddress::offset(addr)); -} - -inline XPageTableIterator::XPageTableIterator(const XPageTable* page_table) : - _iter(&page_table->_map), - _prev(nullptr) {} - -inline bool XPageTableIterator::next(XPage** page) { - for (XPage* entry; _iter.next(&entry);) { - if (entry != nullptr && entry != _prev) { - // Next page found - *page = _prev = entry; - return true; - } - } - - // No more pages - return false; -} - -#endif // SHARE_GC_X_XPAGETABLE_INLINE_HPP diff --git a/src/hotspot/share/gc/x/xPhysicalMemory.cpp b/src/hotspot/share/gc/x/xPhysicalMemory.cpp deleted file mode 100644 index 0269c64f0f1..00000000000 --- a/src/hotspot/share/gc/x/xPhysicalMemory.cpp +++ /dev/null @@ -1,434 +0,0 @@ -/* - * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/shared/gcLogPrecious.hpp" -#include "gc/x/xAddress.inline.hpp" -#include "gc/x/xArray.inline.hpp" -#include "gc/x/xGlobals.hpp" -#include "gc/x/xLargePages.inline.hpp" -#include "gc/x/xList.inline.hpp" -#include "gc/x/xNUMA.inline.hpp" -#include "gc/x/xPhysicalMemory.inline.hpp" -#include "logging/log.hpp" -#include "nmt/memTracker.hpp" -#include "runtime/globals.hpp" -#include "runtime/globals_extension.hpp" -#include "runtime/init.hpp" -#include "runtime/os.hpp" -#include "utilities/align.hpp" -#include "utilities/debug.hpp" -#include "utilities/globalDefinitions.hpp" -#include "utilities/powerOfTwo.hpp" - -XPhysicalMemory::XPhysicalMemory() : - _segments() {} - -XPhysicalMemory::XPhysicalMemory(const XPhysicalMemorySegment& segment) : - _segments() { - add_segment(segment); -} - -XPhysicalMemory::XPhysicalMemory(const XPhysicalMemory& pmem) : - _segments() { - add_segments(pmem); -} - -const XPhysicalMemory& XPhysicalMemory::operator=(const XPhysicalMemory& pmem) { - // Free segments - _segments.clear_and_deallocate(); - - // Copy segments - add_segments(pmem); - - return *this; -} - -size_t XPhysicalMemory::size() const { - size_t size = 0; - - for (int i = 0; i < _segments.length(); i++) { - size += _segments.at(i).size(); - } - - return size; -} - -void XPhysicalMemory::insert_segment(int index, uintptr_t start, size_t size, bool committed) { - _segments.insert_before(index, XPhysicalMemorySegment(start, size, committed)); -} - -void XPhysicalMemory::replace_segment(int index, uintptr_t start, size_t size, bool committed) { - _segments.at_put(index, XPhysicalMemorySegment(start, size, committed)); -} - -void XPhysicalMemory::remove_segment(int index) { - _segments.remove_at(index); -} - -void XPhysicalMemory::add_segments(const XPhysicalMemory& pmem) { - for (int i = 0; i < pmem.nsegments(); i++) { - add_segment(pmem.segment(i)); - } -} - -void XPhysicalMemory::remove_segments() { - _segments.clear_and_deallocate(); -} - -static bool is_mergable(const XPhysicalMemorySegment& before, const XPhysicalMemorySegment& after) { - return before.end() == after.start() && before.is_committed() == after.is_committed(); -} - -void XPhysicalMemory::add_segment(const XPhysicalMemorySegment& segment) { - // Insert segments in address order, merge segments when possible - for (int i = _segments.length(); i > 0; i--) { - const int current = i - 1; - - if (_segments.at(current).end() <= segment.start()) { - if (is_mergable(_segments.at(current), segment)) { - if (current + 1 < _segments.length() && is_mergable(segment, _segments.at(current + 1))) { - // Merge with end of current segment and start of next segment - const size_t start = _segments.at(current).start(); - const size_t size = _segments.at(current).size() + segment.size() + _segments.at(current + 1).size(); - replace_segment(current, start, size, segment.is_committed()); - remove_segment(current + 1); - return; - } - - // Merge with end of current segment - const size_t start = _segments.at(current).start(); - const size_t size = _segments.at(current).size() + segment.size(); - replace_segment(current, start, size, segment.is_committed()); - return; - } else if (current + 1 < _segments.length() && is_mergable(segment, _segments.at(current + 1))) { - // Merge with start of next segment - const size_t start = segment.start(); - const size_t size = segment.size() + _segments.at(current + 1).size(); - replace_segment(current + 1, start, size, segment.is_committed()); - return; - } - - // Insert after current segment - insert_segment(current + 1, segment.start(), segment.size(), segment.is_committed()); - return; - } - } - - if (_segments.length() > 0 && is_mergable(segment, _segments.at(0))) { - // Merge with start of first segment - const size_t start = segment.start(); - const size_t size = segment.size() + _segments.at(0).size(); - replace_segment(0, start, size, segment.is_committed()); - return; - } - - // Insert before first segment - insert_segment(0, segment.start(), segment.size(), segment.is_committed()); -} - -bool XPhysicalMemory::commit_segment(int index, size_t size) { - assert(size <= _segments.at(index).size(), "Invalid size"); - assert(!_segments.at(index).is_committed(), "Invalid state"); - - if (size == _segments.at(index).size()) { - // Completely committed - _segments.at(index).set_committed(true); - return true; - } - - if (size > 0) { - // Partially committed, split segment - insert_segment(index + 1, _segments.at(index).start() + size, _segments.at(index).size() - size, false /* committed */); - replace_segment(index, _segments.at(index).start(), size, true /* committed */); - } - - return false; -} - -bool XPhysicalMemory::uncommit_segment(int index, size_t size) { - assert(size <= _segments.at(index).size(), "Invalid size"); - assert(_segments.at(index).is_committed(), "Invalid state"); - - if (size == _segments.at(index).size()) { - // Completely uncommitted - _segments.at(index).set_committed(false); - return true; - } - - if (size > 0) { - // Partially uncommitted, split segment - insert_segment(index + 1, _segments.at(index).start() + size, _segments.at(index).size() - size, true /* committed */); - replace_segment(index, _segments.at(index).start(), size, false /* committed */); - } - - return false; -} - -XPhysicalMemory XPhysicalMemory::split(size_t size) { - XPhysicalMemory pmem; - int nsegments = 0; - - for (int i = 0; i < _segments.length(); i++) { - const XPhysicalMemorySegment& segment = _segments.at(i); - if (pmem.size() < size) { - if (pmem.size() + segment.size() <= size) { - // Transfer segment - pmem.add_segment(segment); - } else { - // Split segment - const size_t split_size = size - pmem.size(); - pmem.add_segment(XPhysicalMemorySegment(segment.start(), split_size, segment.is_committed())); - _segments.at_put(nsegments++, XPhysicalMemorySegment(segment.start() + split_size, segment.size() - split_size, segment.is_committed())); - } - } else { - // Keep segment - _segments.at_put(nsegments++, segment); - } - } - - _segments.trunc_to(nsegments); - - return pmem; -} - -XPhysicalMemory XPhysicalMemory::split_committed() { - XPhysicalMemory pmem; - int nsegments = 0; - - for (int i = 0; i < _segments.length(); i++) { - const XPhysicalMemorySegment& segment = _segments.at(i); - if (segment.is_committed()) { - // Transfer segment - pmem.add_segment(segment); - } else { - // Keep segment - _segments.at_put(nsegments++, segment); - } - } - - _segments.trunc_to(nsegments); - - return pmem; -} - -XPhysicalMemoryManager::XPhysicalMemoryManager(size_t max_capacity) : - _backing(max_capacity) { - // Make the whole range free - _manager.free(0, max_capacity); -} - -bool XPhysicalMemoryManager::is_initialized() const { - return _backing.is_initialized(); -} - -void XPhysicalMemoryManager::warn_commit_limits(size_t max_capacity) const { - _backing.warn_commit_limits(max_capacity); -} - -void XPhysicalMemoryManager::try_enable_uncommit(size_t min_capacity, size_t max_capacity) { - assert(!is_init_completed(), "Invalid state"); - - // If uncommit is not explicitly disabled, max capacity is greater than - // min capacity, and uncommit is supported by the platform, then uncommit - // will be enabled. - if (!ZUncommit) { - log_info_p(gc, init)("Uncommit: Disabled"); - return; - } - - if (max_capacity == min_capacity) { - log_info_p(gc, init)("Uncommit: Implicitly Disabled (-Xms equals -Xmx)"); - FLAG_SET_ERGO(ZUncommit, false); - return; - } - - // Test if uncommit is supported by the operating system by committing - // and then uncommitting a granule. - XPhysicalMemory pmem(XPhysicalMemorySegment(0, XGranuleSize, false /* committed */)); - if (!commit(pmem) || !uncommit(pmem)) { - log_info_p(gc, init)("Uncommit: Implicitly Disabled (Not supported by operating system)"); - FLAG_SET_ERGO(ZUncommit, false); - return; - } - - log_info_p(gc, init)("Uncommit: Enabled"); - log_info_p(gc, init)("Uncommit Delay: " UINTX_FORMAT "s", ZUncommitDelay); -} - -void XPhysicalMemoryManager::nmt_commit(uintptr_t offset, size_t size) const { - // From an NMT point of view we treat the first heap view (marked0) as committed - const uintptr_t addr = XAddress::marked0(offset); - MemTracker::record_virtual_memory_commit((void*)addr, size, CALLER_PC); -} - -void XPhysicalMemoryManager::nmt_uncommit(uintptr_t offset, size_t size) const { - const uintptr_t addr = XAddress::marked0(offset); - ThreadCritical tc; - MemTracker::record_virtual_memory_uncommit((address)addr, size); -} - -void XPhysicalMemoryManager::alloc(XPhysicalMemory& pmem, size_t size) { - assert(is_aligned(size, XGranuleSize), "Invalid size"); - - // Allocate segments - while (size > 0) { - size_t allocated = 0; - const uintptr_t start = _manager.alloc_low_address_at_most(size, &allocated); - assert(start != UINTPTR_MAX, "Allocation should never fail"); - pmem.add_segment(XPhysicalMemorySegment(start, allocated, false /* committed */)); - size -= allocated; - } -} - -void XPhysicalMemoryManager::free(const XPhysicalMemory& pmem) { - // Free segments - for (int i = 0; i < pmem.nsegments(); i++) { - const XPhysicalMemorySegment& segment = pmem.segment(i); - _manager.free(segment.start(), segment.size()); - } -} - -bool XPhysicalMemoryManager::commit(XPhysicalMemory& pmem) { - // Commit segments - for (int i = 0; i < pmem.nsegments(); i++) { - const XPhysicalMemorySegment& segment = pmem.segment(i); - if (segment.is_committed()) { - // Segment already committed - continue; - } - - // Commit segment - const size_t committed = _backing.commit(segment.start(), segment.size()); - if (!pmem.commit_segment(i, committed)) { - // Failed or partially failed - return false; - } - } - - // Success - return true; -} - -bool XPhysicalMemoryManager::uncommit(XPhysicalMemory& pmem) { - // Commit segments - for (int i = 0; i < pmem.nsegments(); i++) { - const XPhysicalMemorySegment& segment = pmem.segment(i); - if (!segment.is_committed()) { - // Segment already uncommitted - continue; - } - - // Uncommit segment - const size_t uncommitted = _backing.uncommit(segment.start(), segment.size()); - if (!pmem.uncommit_segment(i, uncommitted)) { - // Failed or partially failed - return false; - } - } - - // Success - return true; -} - -void XPhysicalMemoryManager::pretouch_view(uintptr_t addr, size_t size) const { - const size_t page_size = XLargePages::is_explicit() ? XGranuleSize : os::vm_page_size(); - os::pretouch_memory((void*)addr, (void*)(addr + size), page_size); -} - -void XPhysicalMemoryManager::map_view(uintptr_t addr, const XPhysicalMemory& pmem) const { - size_t size = 0; - - // Map segments - for (int i = 0; i < pmem.nsegments(); i++) { - const XPhysicalMemorySegment& segment = pmem.segment(i); - _backing.map(addr + size, segment.size(), segment.start()); - size += segment.size(); - } - - // Setup NUMA interleaving for large pages - if (XNUMA::is_enabled() && XLargePages::is_explicit()) { - // To get granule-level NUMA interleaving when using large pages, - // we simply let the kernel interleave the memory for us at page - // fault time. - os::numa_make_global((char*)addr, size); - } -} - -void XPhysicalMemoryManager::unmap_view(uintptr_t addr, size_t size) const { - _backing.unmap(addr, size); -} - -void XPhysicalMemoryManager::pretouch(uintptr_t offset, size_t size) const { - if (ZVerifyViews) { - // Pre-touch good view - pretouch_view(XAddress::good(offset), size); - } else { - // Pre-touch all views - pretouch_view(XAddress::marked0(offset), size); - pretouch_view(XAddress::marked1(offset), size); - pretouch_view(XAddress::remapped(offset), size); - } -} - -void XPhysicalMemoryManager::map(uintptr_t offset, const XPhysicalMemory& pmem) const { - const size_t size = pmem.size(); - - if (ZVerifyViews) { - // Map good view - map_view(XAddress::good(offset), pmem); - } else { - // Map all views - map_view(XAddress::marked0(offset), pmem); - map_view(XAddress::marked1(offset), pmem); - map_view(XAddress::remapped(offset), pmem); - } - - nmt_commit(offset, size); -} - -void XPhysicalMemoryManager::unmap(uintptr_t offset, size_t size) const { - nmt_uncommit(offset, size); - - if (ZVerifyViews) { - // Unmap good view - unmap_view(XAddress::good(offset), size); - } else { - // Unmap all views - unmap_view(XAddress::marked0(offset), size); - unmap_view(XAddress::marked1(offset), size); - unmap_view(XAddress::remapped(offset), size); - } -} - -void XPhysicalMemoryManager::debug_map(uintptr_t offset, const XPhysicalMemory& pmem) const { - // Map good view - assert(ZVerifyViews, "Should be enabled"); - map_view(XAddress::good(offset), pmem); -} - -void XPhysicalMemoryManager::debug_unmap(uintptr_t offset, size_t size) const { - // Unmap good view - assert(ZVerifyViews, "Should be enabled"); - unmap_view(XAddress::good(offset), size); -} diff --git a/src/hotspot/share/gc/x/xPhysicalMemory.hpp b/src/hotspot/share/gc/x/xPhysicalMemory.hpp deleted file mode 100644 index 26d8ed9bb96..00000000000 --- a/src/hotspot/share/gc/x/xPhysicalMemory.hpp +++ /dev/null @@ -1,116 +0,0 @@ -/* - * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XPHYSICALMEMORY_HPP -#define SHARE_GC_X_XPHYSICALMEMORY_HPP - -#include "gc/x/xArray.hpp" -#include "gc/x/xMemory.hpp" -#include "memory/allocation.hpp" -#include OS_HEADER(gc/x/xPhysicalMemoryBacking) - -class XPhysicalMemorySegment : public CHeapObj { -private: - uintptr_t _start; - uintptr_t _end; - bool _committed; - -public: - XPhysicalMemorySegment(); - XPhysicalMemorySegment(uintptr_t start, size_t size, bool committed); - - uintptr_t start() const; - uintptr_t end() const; - size_t size() const; - - bool is_committed() const; - void set_committed(bool committed); -}; - -class XPhysicalMemory { -private: - XArray _segments; - - void insert_segment(int index, uintptr_t start, size_t size, bool committed); - void replace_segment(int index, uintptr_t start, size_t size, bool committed); - void remove_segment(int index); - -public: - XPhysicalMemory(); - XPhysicalMemory(const XPhysicalMemorySegment& segment); - XPhysicalMemory(const XPhysicalMemory& pmem); - const XPhysicalMemory& operator=(const XPhysicalMemory& pmem); - - bool is_null() const; - size_t size() const; - - int nsegments() const; - const XPhysicalMemorySegment& segment(int index) const; - - void add_segments(const XPhysicalMemory& pmem); - void remove_segments(); - - void add_segment(const XPhysicalMemorySegment& segment); - bool commit_segment(int index, size_t size); - bool uncommit_segment(int index, size_t size); - - XPhysicalMemory split(size_t size); - XPhysicalMemory split_committed(); -}; - -class XPhysicalMemoryManager { -private: - XPhysicalMemoryBacking _backing; - XMemoryManager _manager; - - void nmt_commit(uintptr_t offset, size_t size) const; - void nmt_uncommit(uintptr_t offset, size_t size) const; - - void pretouch_view(uintptr_t addr, size_t size) const; - void map_view(uintptr_t addr, const XPhysicalMemory& pmem) const; - void unmap_view(uintptr_t addr, size_t size) const; - -public: - XPhysicalMemoryManager(size_t max_capacity); - - bool is_initialized() const; - - void warn_commit_limits(size_t max_capacity) const; - void try_enable_uncommit(size_t min_capacity, size_t max_capacity); - - void alloc(XPhysicalMemory& pmem, size_t size); - void free(const XPhysicalMemory& pmem); - - bool commit(XPhysicalMemory& pmem); - bool uncommit(XPhysicalMemory& pmem); - - void pretouch(uintptr_t offset, size_t size) const; - - void map(uintptr_t offset, const XPhysicalMemory& pmem) const; - void unmap(uintptr_t offset, size_t size) const; - - void debug_map(uintptr_t offset, const XPhysicalMemory& pmem) const; - void debug_unmap(uintptr_t offset, size_t size) const; -}; - -#endif // SHARE_GC_X_XPHYSICALMEMORY_HPP diff --git a/src/hotspot/share/gc/x/xPhysicalMemory.inline.hpp b/src/hotspot/share/gc/x/xPhysicalMemory.inline.hpp deleted file mode 100644 index 70f38e2abdb..00000000000 --- a/src/hotspot/share/gc/x/xPhysicalMemory.inline.hpp +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XPHYSICALMEMORY_INLINE_HPP -#define SHARE_GC_X_XPHYSICALMEMORY_INLINE_HPP - -#include "gc/x/xPhysicalMemory.hpp" - -#include "gc/x/xAddress.inline.hpp" -#include "utilities/debug.hpp" - -inline XPhysicalMemorySegment::XPhysicalMemorySegment() : - _start(UINTPTR_MAX), - _end(UINTPTR_MAX), - _committed(false) {} - -inline XPhysicalMemorySegment::XPhysicalMemorySegment(uintptr_t start, size_t size, bool committed) : - _start(start), - _end(start + size), - _committed(committed) {} - -inline uintptr_t XPhysicalMemorySegment::start() const { - return _start; -} - -inline uintptr_t XPhysicalMemorySegment::end() const { - return _end; -} - -inline size_t XPhysicalMemorySegment::size() const { - return _end - _start; -} - -inline bool XPhysicalMemorySegment::is_committed() const { - return _committed; -} - -inline void XPhysicalMemorySegment::set_committed(bool committed) { - _committed = committed; -} - -inline bool XPhysicalMemory::is_null() const { - return _segments.length() == 0; -} - -inline int XPhysicalMemory::nsegments() const { - return _segments.length(); -} - -inline const XPhysicalMemorySegment& XPhysicalMemory::segment(int index) const { - return _segments.at(index); -} - -#endif // SHARE_GC_X_XPHYSICALMEMORY_INLINE_HPP diff --git a/src/hotspot/share/gc/x/xReferenceProcessor.cpp b/src/hotspot/share/gc/x/xReferenceProcessor.cpp deleted file mode 100644 index acbb96eaf41..00000000000 --- a/src/hotspot/share/gc/x/xReferenceProcessor.cpp +++ /dev/null @@ -1,459 +0,0 @@ -/* - * Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "classfile/javaClasses.inline.hpp" -#include "gc/shared/referencePolicy.hpp" -#include "gc/shared/referenceProcessorStats.hpp" -#include "gc/x/xHeap.inline.hpp" -#include "gc/x/xReferenceProcessor.hpp" -#include "gc/x/xStat.hpp" -#include "gc/x/xTask.hpp" -#include "gc/x/xTracer.inline.hpp" -#include "gc/x/xValue.inline.hpp" -#include "memory/universe.hpp" -#include "runtime/atomic.hpp" -#include "runtime/mutexLocker.hpp" -#include "runtime/os.hpp" - -static const XStatSubPhase XSubPhaseConcurrentReferencesProcess("Concurrent References Process"); -static const XStatSubPhase XSubPhaseConcurrentReferencesEnqueue("Concurrent References Enqueue"); - -static ReferenceType reference_type(oop reference) { - return InstanceKlass::cast(reference->klass())->reference_type(); -} - -static const char* reference_type_name(ReferenceType type) { - switch (type) { - case REF_SOFT: - return "Soft"; - - case REF_WEAK: - return "Weak"; - - case REF_FINAL: - return "Final"; - - case REF_PHANTOM: - return "Phantom"; - - default: - ShouldNotReachHere(); - return "Unknown"; - } -} - -static volatile oop* reference_referent_addr(oop reference) { - return (volatile oop*)java_lang_ref_Reference::referent_addr_raw(reference); -} - -static oop reference_referent(oop reference) { - return Atomic::load(reference_referent_addr(reference)); -} - -static void reference_clear_referent(oop reference) { - java_lang_ref_Reference::clear_referent_raw(reference); -} - -static oop* reference_discovered_addr(oop reference) { - return (oop*)java_lang_ref_Reference::discovered_addr_raw(reference); -} - -static oop reference_discovered(oop reference) { - return *reference_discovered_addr(reference); -} - -static void reference_set_discovered(oop reference, oop discovered) { - java_lang_ref_Reference::set_discovered_raw(reference, discovered); -} - -static oop* reference_next_addr(oop reference) { - return (oop*)java_lang_ref_Reference::next_addr_raw(reference); -} - -static oop reference_next(oop reference) { - return *reference_next_addr(reference); -} - -static void reference_set_next(oop reference, oop next) { - java_lang_ref_Reference::set_next_raw(reference, next); -} - -static void soft_reference_update_clock() { - const jlong now = os::javaTimeNanos() / NANOSECS_PER_MILLISEC; - java_lang_ref_SoftReference::set_clock(now); -} - -XReferenceProcessor::XReferenceProcessor(XWorkers* workers) : - _workers(workers), - _soft_reference_policy(nullptr), - _encountered_count(), - _discovered_count(), - _enqueued_count(), - _discovered_list(nullptr), - _pending_list(nullptr), - _pending_list_tail(_pending_list.addr()) {} - -void XReferenceProcessor::set_soft_reference_policy(bool clear) { - static AlwaysClearPolicy always_clear_policy; - static LRUMaxHeapPolicy lru_max_heap_policy; - - if (clear) { - log_info(gc, ref)("Clearing All SoftReferences"); - _soft_reference_policy = &always_clear_policy; - } else { - _soft_reference_policy = &lru_max_heap_policy; - } - - _soft_reference_policy->setup(); -} - -bool XReferenceProcessor::is_inactive(oop reference, oop referent, ReferenceType type) const { - if (type == REF_FINAL) { - // A FinalReference is inactive if its next field is non-null. An application can't - // call enqueue() or clear() on a FinalReference. - return reference_next(reference) != nullptr; - } else { - // A non-FinalReference is inactive if the referent is null. The referent can only - // be null if the application called Reference.enqueue() or Reference.clear(). - return referent == nullptr; - } -} - -bool XReferenceProcessor::is_strongly_live(oop referent) const { - return XHeap::heap()->is_object_strongly_live(XOop::to_address(referent)); -} - -bool XReferenceProcessor::is_softly_live(oop reference, ReferenceType type) const { - if (type != REF_SOFT) { - // Not a SoftReference - return false; - } - - // Ask SoftReference policy - const jlong clock = java_lang_ref_SoftReference::clock(); - assert(clock != 0, "Clock not initialized"); - assert(_soft_reference_policy != nullptr, "Policy not initialized"); - return !_soft_reference_policy->should_clear_reference(reference, clock); -} - -bool XReferenceProcessor::should_discover(oop reference, ReferenceType type) const { - volatile oop* const referent_addr = reference_referent_addr(reference); - const oop referent = XBarrier::weak_load_barrier_on_oop_field(referent_addr); - - if (is_inactive(reference, referent, type)) { - return false; - } - - if (is_strongly_live(referent)) { - return false; - } - - if (is_softly_live(reference, type)) { - return false; - } - - // PhantomReferences with finalizable marked referents should technically not have - // to be discovered. However, InstanceRefKlass::oop_oop_iterate_ref_processing() - // does not know about the finalizable mark concept, and will therefore mark - // referents in non-discovered PhantomReferences as strongly live. To prevent - // this, we always discover PhantomReferences with finalizable marked referents. - // They will automatically be dropped during the reference processing phase. - return true; -} - -bool XReferenceProcessor::should_drop(oop reference, ReferenceType type) const { - const oop referent = reference_referent(reference); - if (referent == nullptr) { - // Reference has been cleared, by a call to Reference.enqueue() - // or Reference.clear() from the application, which means we - // should drop the reference. - return true; - } - - // Check if the referent is still alive, in which case we should - // drop the reference. - if (type == REF_PHANTOM) { - return XBarrier::is_alive_barrier_on_phantom_oop(referent); - } else { - return XBarrier::is_alive_barrier_on_weak_oop(referent); - } -} - -void XReferenceProcessor::keep_alive(oop reference, ReferenceType type) const { - volatile oop* const p = reference_referent_addr(reference); - if (type == REF_PHANTOM) { - XBarrier::keep_alive_barrier_on_phantom_oop_field(p); - } else { - XBarrier::keep_alive_barrier_on_weak_oop_field(p); - } -} - -void XReferenceProcessor::make_inactive(oop reference, ReferenceType type) const { - if (type == REF_FINAL) { - // Don't clear referent. It is needed by the Finalizer thread to make the call - // to finalize(). A FinalReference is instead made inactive by self-looping the - // next field. An application can't call FinalReference.enqueue(), so there is - // no race to worry about when setting the next field. - assert(reference_next(reference) == nullptr, "Already inactive"); - reference_set_next(reference, reference); - } else { - // Clear referent - reference_clear_referent(reference); - } -} - -void XReferenceProcessor::discover(oop reference, ReferenceType type) { - log_trace(gc, ref)("Discovered Reference: " PTR_FORMAT " (%s)", p2i(reference), reference_type_name(type)); - - // Update statistics - _discovered_count.get()[type]++; - - if (type == REF_FINAL) { - // Mark referent (and its reachable subgraph) finalizable. This avoids - // the problem of later having to mark those objects if the referent is - // still final reachable during processing. - volatile oop* const referent_addr = reference_referent_addr(reference); - XBarrier::mark_barrier_on_oop_field(referent_addr, true /* finalizable */); - } - - // Add reference to discovered list - assert(reference_discovered(reference) == nullptr, "Already discovered"); - oop* const list = _discovered_list.addr(); - reference_set_discovered(reference, *list); - *list = reference; -} - -bool XReferenceProcessor::discover_reference(oop reference, ReferenceType type) { - if (!RegisterReferences) { - // Reference processing disabled - return false; - } - - log_trace(gc, ref)("Encountered Reference: " PTR_FORMAT " (%s)", p2i(reference), reference_type_name(type)); - - // Update statistics - _encountered_count.get()[type]++; - - if (!should_discover(reference, type)) { - // Not discovered - return false; - } - - discover(reference, type); - - // Discovered - return true; -} - -oop XReferenceProcessor::drop(oop reference, ReferenceType type) { - log_trace(gc, ref)("Dropped Reference: " PTR_FORMAT " (%s)", p2i(reference), reference_type_name(type)); - - // Keep referent alive - keep_alive(reference, type); - - // Unlink and return next in list - const oop next = reference_discovered(reference); - reference_set_discovered(reference, nullptr); - return next; -} - -oop* XReferenceProcessor::keep(oop reference, ReferenceType type) { - log_trace(gc, ref)("Enqueued Reference: " PTR_FORMAT " (%s)", p2i(reference), reference_type_name(type)); - - // Update statistics - _enqueued_count.get()[type]++; - - // Make reference inactive - make_inactive(reference, type); - - // Return next in list - return reference_discovered_addr(reference); -} - -void XReferenceProcessor::work() { - // Process discovered references - oop* const list = _discovered_list.addr(); - oop* p = list; - - while (*p != nullptr) { - const oop reference = *p; - const ReferenceType type = reference_type(reference); - - if (should_drop(reference, type)) { - *p = drop(reference, type); - } else { - p = keep(reference, type); - } - } - - // Prepend discovered references to internal pending list - if (*list != nullptr) { - *p = Atomic::xchg(_pending_list.addr(), *list); - if (*p == nullptr) { - // First to prepend to list, record tail - _pending_list_tail = p; - } - - // Clear discovered list - *list = nullptr; - } -} - -bool XReferenceProcessor::is_empty() const { - XPerWorkerConstIterator iter(&_discovered_list); - for (const oop* list; iter.next(&list);) { - if (*list != nullptr) { - return false; - } - } - - if (_pending_list.get() != nullptr) { - return false; - } - - return true; -} - -void XReferenceProcessor::reset_statistics() { - assert(is_empty(), "Should be empty"); - - // Reset encountered - XPerWorkerIterator iter_encountered(&_encountered_count); - for (Counters* counters; iter_encountered.next(&counters);) { - for (int i = REF_SOFT; i <= REF_PHANTOM; i++) { - (*counters)[i] = 0; - } - } - - // Reset discovered - XPerWorkerIterator iter_discovered(&_discovered_count); - for (Counters* counters; iter_discovered.next(&counters);) { - for (int i = REF_SOFT; i <= REF_PHANTOM; i++) { - (*counters)[i] = 0; - } - } - - // Reset enqueued - XPerWorkerIterator iter_enqueued(&_enqueued_count); - for (Counters* counters; iter_enqueued.next(&counters);) { - for (int i = REF_SOFT; i <= REF_PHANTOM; i++) { - (*counters)[i] = 0; - } - } -} - -void XReferenceProcessor::collect_statistics() { - Counters encountered = {}; - Counters discovered = {}; - Counters enqueued = {}; - - // Sum encountered - XPerWorkerConstIterator iter_encountered(&_encountered_count); - for (const Counters* counters; iter_encountered.next(&counters);) { - for (int i = REF_SOFT; i <= REF_PHANTOM; i++) { - encountered[i] += (*counters)[i]; - } - } - - // Sum discovered - XPerWorkerConstIterator iter_discovered(&_discovered_count); - for (const Counters* counters; iter_discovered.next(&counters);) { - for (int i = REF_SOFT; i <= REF_PHANTOM; i++) { - discovered[i] += (*counters)[i]; - } - } - - // Sum enqueued - XPerWorkerConstIterator iter_enqueued(&_enqueued_count); - for (const Counters* counters; iter_enqueued.next(&counters);) { - for (int i = REF_SOFT; i <= REF_PHANTOM; i++) { - enqueued[i] += (*counters)[i]; - } - } - - // Update statistics - XStatReferences::set_soft(encountered[REF_SOFT], discovered[REF_SOFT], enqueued[REF_SOFT]); - XStatReferences::set_weak(encountered[REF_WEAK], discovered[REF_WEAK], enqueued[REF_WEAK]); - XStatReferences::set_final(encountered[REF_FINAL], discovered[REF_FINAL], enqueued[REF_FINAL]); - XStatReferences::set_phantom(encountered[REF_PHANTOM], discovered[REF_PHANTOM], enqueued[REF_PHANTOM]); - - // Trace statistics - const ReferenceProcessorStats stats(discovered[REF_SOFT], - discovered[REF_WEAK], - discovered[REF_FINAL], - discovered[REF_PHANTOM]); - XTracer::tracer()->report_gc_reference_stats(stats); -} - -class XReferenceProcessorTask : public XTask { -private: - XReferenceProcessor* const _reference_processor; - -public: - XReferenceProcessorTask(XReferenceProcessor* reference_processor) : - XTask("XReferenceProcessorTask"), - _reference_processor(reference_processor) {} - - virtual void work() { - _reference_processor->work(); - } -}; - -void XReferenceProcessor::process_references() { - XStatTimer timer(XSubPhaseConcurrentReferencesProcess); - - // Process discovered lists - XReferenceProcessorTask task(this); - _workers->run(&task); - - // Update SoftReference clock - soft_reference_update_clock(); - - // Collect, log and trace statistics - collect_statistics(); -} - -void XReferenceProcessor::enqueue_references() { - XStatTimer timer(XSubPhaseConcurrentReferencesEnqueue); - - if (_pending_list.get() == nullptr) { - // Nothing to enqueue - return; - } - - { - // Heap_lock protects external pending list - MonitorLocker ml(Heap_lock); - - // Prepend internal pending list to external pending list - *_pending_list_tail = Universe::swap_reference_pending_list(_pending_list.get()); - - // Notify ReferenceHandler thread - ml.notify_all(); - } - - // Reset internal pending list - _pending_list.set(nullptr); - _pending_list_tail = _pending_list.addr(); -} diff --git a/src/hotspot/share/gc/x/xReferenceProcessor.hpp b/src/hotspot/share/gc/x/xReferenceProcessor.hpp deleted file mode 100644 index 1ff7b14e868..00000000000 --- a/src/hotspot/share/gc/x/xReferenceProcessor.hpp +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XREFERENCEPROCESSOR_HPP -#define SHARE_GC_X_XREFERENCEPROCESSOR_HPP - -#include "gc/shared/referenceDiscoverer.hpp" -#include "gc/x/xValue.hpp" - -class ReferencePolicy; -class XWorkers; - -class XReferenceProcessor : public ReferenceDiscoverer { - friend class XReferenceProcessorTask; - -private: - static const size_t reference_type_count = REF_PHANTOM + 1; - typedef size_t Counters[reference_type_count]; - - XWorkers* const _workers; - ReferencePolicy* _soft_reference_policy; - XPerWorker _encountered_count; - XPerWorker _discovered_count; - XPerWorker _enqueued_count; - XPerWorker _discovered_list; - XContended _pending_list; - oop* _pending_list_tail; - - bool is_inactive(oop reference, oop referent, ReferenceType type) const; - bool is_strongly_live(oop referent) const; - bool is_softly_live(oop reference, ReferenceType type) const; - - bool should_discover(oop reference, ReferenceType type) const; - bool should_drop(oop reference, ReferenceType type) const; - void keep_alive(oop reference, ReferenceType type) const; - void make_inactive(oop reference, ReferenceType type) const; - - void discover(oop reference, ReferenceType type); - - oop drop(oop reference, ReferenceType type); - oop* keep(oop reference, ReferenceType type); - - bool is_empty() const; - - void work(); - void collect_statistics(); - -public: - XReferenceProcessor(XWorkers* workers); - - void set_soft_reference_policy(bool clear); - void reset_statistics(); - - virtual bool discover_reference(oop reference, ReferenceType type); - void process_references(); - void enqueue_references(); -}; - -#endif // SHARE_GC_X_XREFERENCEPROCESSOR_HPP diff --git a/src/hotspot/share/gc/x/xRelocate.cpp b/src/hotspot/share/gc/x/xRelocate.cpp deleted file mode 100644 index 645989eaba3..00000000000 --- a/src/hotspot/share/gc/x/xRelocate.cpp +++ /dev/null @@ -1,419 +0,0 @@ -/* - * Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/shared/gc_globals.hpp" -#include "gc/x/xAbort.inline.hpp" -#include "gc/x/xAddress.inline.hpp" -#include "gc/x/xBarrier.inline.hpp" -#include "gc/x/xForwarding.inline.hpp" -#include "gc/x/xHeap.inline.hpp" -#include "gc/x/xPage.inline.hpp" -#include "gc/x/xRelocate.hpp" -#include "gc/x/xRelocationSet.inline.hpp" -#include "gc/x/xStat.hpp" -#include "gc/x/xTask.hpp" -#include "gc/x/xThread.inline.hpp" -#include "gc/x/xWorkers.hpp" -#include "prims/jvmtiTagMap.hpp" -#include "runtime/atomic.hpp" -#include "utilities/debug.hpp" - -XRelocate::XRelocate(XWorkers* workers) : - _workers(workers) {} - -static uintptr_t forwarding_index(XForwarding* forwarding, uintptr_t from_addr) { - const uintptr_t from_offset = XAddress::offset(from_addr); - return (from_offset - forwarding->start()) >> forwarding->object_alignment_shift(); -} - -static uintptr_t forwarding_find(XForwarding* forwarding, uintptr_t from_addr, XForwardingCursor* cursor) { - const uintptr_t from_index = forwarding_index(forwarding, from_addr); - const XForwardingEntry entry = forwarding->find(from_index, cursor); - return entry.populated() ? XAddress::good(entry.to_offset()) : 0; -} - -static uintptr_t forwarding_insert(XForwarding* forwarding, uintptr_t from_addr, uintptr_t to_addr, XForwardingCursor* cursor) { - const uintptr_t from_index = forwarding_index(forwarding, from_addr); - const uintptr_t to_offset = XAddress::offset(to_addr); - const uintptr_t to_offset_final = forwarding->insert(from_index, to_offset, cursor); - return XAddress::good(to_offset_final); -} - -static uintptr_t relocate_object_inner(XForwarding* forwarding, uintptr_t from_addr, XForwardingCursor* cursor) { - assert(XHeap::heap()->is_object_live(from_addr), "Should be live"); - - // Allocate object - const size_t size = XUtils::object_size(from_addr); - const uintptr_t to_addr = XHeap::heap()->alloc_object_for_relocation(size); - if (to_addr == 0) { - // Allocation failed - return 0; - } - - // Copy object - XUtils::object_copy_disjoint(from_addr, to_addr, size); - - // Insert forwarding - const uintptr_t to_addr_final = forwarding_insert(forwarding, from_addr, to_addr, cursor); - if (to_addr_final != to_addr) { - // Already relocated, try undo allocation - XHeap::heap()->undo_alloc_object_for_relocation(to_addr, size); - } - - return to_addr_final; -} - -uintptr_t XRelocate::relocate_object(XForwarding* forwarding, uintptr_t from_addr) const { - XForwardingCursor cursor; - - // Lookup forwarding - uintptr_t to_addr = forwarding_find(forwarding, from_addr, &cursor); - if (to_addr != 0) { - // Already relocated - return to_addr; - } - - // Relocate object - if (forwarding->retain_page()) { - to_addr = relocate_object_inner(forwarding, from_addr, &cursor); - forwarding->release_page(); - - if (to_addr != 0) { - // Success - return to_addr; - } - - // Failed to relocate object. Wait for a worker thread to complete - // relocation of this page, and then forward the object. If the GC - // aborts the relocation phase before the page has been relocated, - // then wait return false and we just forward the object in-place. - if (!forwarding->wait_page_released()) { - // Forward object in-place - return forwarding_insert(forwarding, from_addr, from_addr, &cursor); - } - } - - // Forward object - return forward_object(forwarding, from_addr); -} - -uintptr_t XRelocate::forward_object(XForwarding* forwarding, uintptr_t from_addr) const { - XForwardingCursor cursor; - const uintptr_t to_addr = forwarding_find(forwarding, from_addr, &cursor); - assert(to_addr != 0, "Should be forwarded"); - return to_addr; -} - -static XPage* alloc_page(const XForwarding* forwarding) { - if (ZStressRelocateInPlace) { - // Simulate failure to allocate a new page. This will - // cause the page being relocated to be relocated in-place. - return nullptr; - } - - XAllocationFlags flags; - flags.set_non_blocking(); - flags.set_worker_relocation(); - return XHeap::heap()->alloc_page(forwarding->type(), forwarding->size(), flags); -} - -static void free_page(XPage* page) { - XHeap::heap()->free_page(page, true /* reclaimed */); -} - -static bool should_free_target_page(XPage* page) { - // Free target page if it is empty. We can end up with an empty target - // page if we allocated a new target page, and then lost the race to - // relocate the remaining objects, leaving the target page empty when - // relocation completed. - return page != nullptr && page->top() == page->start(); -} - -class XRelocateSmallAllocator { -private: - volatile size_t _in_place_count; - -public: - XRelocateSmallAllocator() : - _in_place_count(0) {} - - XPage* alloc_target_page(XForwarding* forwarding, XPage* target) { - XPage* const page = alloc_page(forwarding); - if (page == nullptr) { - Atomic::inc(&_in_place_count); - } - - return page; - } - - void share_target_page(XPage* page) { - // Does nothing - } - - void free_target_page(XPage* page) { - if (should_free_target_page(page)) { - free_page(page); - } - } - - void free_relocated_page(XPage* page) { - free_page(page); - } - - uintptr_t alloc_object(XPage* page, size_t size) const { - return (page != nullptr) ? page->alloc_object(size) : 0; - } - - void undo_alloc_object(XPage* page, uintptr_t addr, size_t size) const { - page->undo_alloc_object(addr, size); - } - - size_t in_place_count() const { - return _in_place_count; - } -}; - -class XRelocateMediumAllocator { -private: - XConditionLock _lock; - XPage* _shared; - bool _in_place; - volatile size_t _in_place_count; - -public: - XRelocateMediumAllocator() : - _lock(), - _shared(nullptr), - _in_place(false), - _in_place_count(0) {} - - ~XRelocateMediumAllocator() { - if (should_free_target_page(_shared)) { - free_page(_shared); - } - } - - XPage* alloc_target_page(XForwarding* forwarding, XPage* target) { - XLocker locker(&_lock); - - // Wait for any ongoing in-place relocation to complete - while (_in_place) { - _lock.wait(); - } - - // Allocate a new page only if the shared page is the same as the - // current target page. The shared page will be different from the - // current target page if another thread shared a page, or allocated - // a new page. - if (_shared == target) { - _shared = alloc_page(forwarding); - if (_shared == nullptr) { - Atomic::inc(&_in_place_count); - _in_place = true; - } - } - - return _shared; - } - - void share_target_page(XPage* page) { - XLocker locker(&_lock); - - assert(_in_place, "Invalid state"); - assert(_shared == nullptr, "Invalid state"); - assert(page != nullptr, "Invalid page"); - - _shared = page; - _in_place = false; - - _lock.notify_all(); - } - - void free_target_page(XPage* page) { - // Does nothing - } - - void free_relocated_page(XPage* page) { - free_page(page); - } - - uintptr_t alloc_object(XPage* page, size_t size) const { - return (page != nullptr) ? page->alloc_object_atomic(size) : 0; - } - - void undo_alloc_object(XPage* page, uintptr_t addr, size_t size) const { - page->undo_alloc_object_atomic(addr, size); - } - - size_t in_place_count() const { - return _in_place_count; - } -}; - -template -class XRelocateClosure : public ObjectClosure { -private: - Allocator* const _allocator; - XForwarding* _forwarding; - XPage* _target; - - bool relocate_object(uintptr_t from_addr) const { - XForwardingCursor cursor; - - // Lookup forwarding - if (forwarding_find(_forwarding, from_addr, &cursor) != 0) { - // Already relocated - return true; - } - - // Allocate object - const size_t size = XUtils::object_size(from_addr); - const uintptr_t to_addr = _allocator->alloc_object(_target, size); - if (to_addr == 0) { - // Allocation failed - return false; - } - - // Copy object. Use conjoint copying if we are relocating - // in-place and the new object overlapps with the old object. - if (_forwarding->in_place() && to_addr + size > from_addr) { - XUtils::object_copy_conjoint(from_addr, to_addr, size); - } else { - XUtils::object_copy_disjoint(from_addr, to_addr, size); - } - - // Insert forwarding - if (forwarding_insert(_forwarding, from_addr, to_addr, &cursor) != to_addr) { - // Already relocated, undo allocation - _allocator->undo_alloc_object(_target, to_addr, size); - } - - return true; - } - - virtual void do_object(oop obj) { - const uintptr_t addr = XOop::to_address(obj); - assert(XHeap::heap()->is_object_live(addr), "Should be live"); - - while (!relocate_object(addr)) { - // Allocate a new target page, or if that fails, use the page being - // relocated as the new target, which will cause it to be relocated - // in-place. - _target = _allocator->alloc_target_page(_forwarding, _target); - if (_target != nullptr) { - continue; - } - - // Claim the page being relocated to block other threads from accessing - // it, or its forwarding table, until it has been released (relocation - // completed). - _target = _forwarding->claim_page(); - _target->reset_for_in_place_relocation(); - _forwarding->set_in_place(); - } - } - -public: - XRelocateClosure(Allocator* allocator) : - _allocator(allocator), - _forwarding(nullptr), - _target(nullptr) {} - - ~XRelocateClosure() { - _allocator->free_target_page(_target); - } - - void do_forwarding(XForwarding* forwarding) { - _forwarding = forwarding; - - // Check if we should abort - if (XAbort::should_abort()) { - _forwarding->abort_page(); - return; - } - - // Relocate objects - _forwarding->object_iterate(this); - - // Verify - if (ZVerifyForwarding) { - _forwarding->verify(); - } - - // Release relocated page - _forwarding->release_page(); - - if (_forwarding->in_place()) { - // The relocated page has been relocated in-place and should not - // be freed. Keep it as target page until it is full, and offer to - // share it with other worker threads. - _allocator->share_target_page(_target); - } else { - // Detach and free relocated page - XPage* const page = _forwarding->detach_page(); - _allocator->free_relocated_page(page); - } - } -}; - -class XRelocateTask : public XTask { -private: - XRelocationSetParallelIterator _iter; - XRelocateSmallAllocator _small_allocator; - XRelocateMediumAllocator _medium_allocator; - - static bool is_small(XForwarding* forwarding) { - return forwarding->type() == XPageTypeSmall; - } - -public: - XRelocateTask(XRelocationSet* relocation_set) : - XTask("XRelocateTask"), - _iter(relocation_set), - _small_allocator(), - _medium_allocator() {} - - ~XRelocateTask() { - XStatRelocation::set_at_relocate_end(_small_allocator.in_place_count(), - _medium_allocator.in_place_count()); - } - - virtual void work() { - XRelocateClosure small(&_small_allocator); - XRelocateClosure medium(&_medium_allocator); - - for (XForwarding* forwarding; _iter.next(&forwarding);) { - if (is_small(forwarding)) { - small.do_forwarding(forwarding); - } else { - medium.do_forwarding(forwarding); - } - } - } -}; - -void XRelocate::relocate(XRelocationSet* relocation_set) { - XRelocateTask task(relocation_set); - _workers->run(&task); -} diff --git a/src/hotspot/share/gc/x/xRelocate.hpp b/src/hotspot/share/gc/x/xRelocate.hpp deleted file mode 100644 index 46ab39240f6..00000000000 --- a/src/hotspot/share/gc/x/xRelocate.hpp +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XRELOCATE_HPP -#define SHARE_GC_X_XRELOCATE_HPP - -#include "gc/x/xRelocationSet.hpp" - -class XForwarding; -class XWorkers; - -class XRelocate { - friend class XRelocateTask; - -private: - XWorkers* const _workers; - - void work(XRelocationSetParallelIterator* iter); - -public: - XRelocate(XWorkers* workers); - - uintptr_t relocate_object(XForwarding* forwarding, uintptr_t from_addr) const; - uintptr_t forward_object(XForwarding* forwarding, uintptr_t from_addr) const; - - void relocate(XRelocationSet* relocation_set); -}; - -#endif // SHARE_GC_X_XRELOCATE_HPP diff --git a/src/hotspot/share/gc/x/xRelocationSet.cpp b/src/hotspot/share/gc/x/xRelocationSet.cpp deleted file mode 100644 index eeb42c4bf32..00000000000 --- a/src/hotspot/share/gc/x/xRelocationSet.cpp +++ /dev/null @@ -1,135 +0,0 @@ -/* - * Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xArray.inline.hpp" -#include "gc/x/xForwarding.inline.hpp" -#include "gc/x/xForwardingAllocator.inline.hpp" -#include "gc/x/xRelocationSet.inline.hpp" -#include "gc/x/xRelocationSetSelector.inline.hpp" -#include "gc/x/xStat.hpp" -#include "gc/x/xTask.hpp" -#include "gc/x/xWorkers.hpp" -#include "runtime/atomic.hpp" -#include "utilities/debug.hpp" - -class XRelocationSetInstallTask : public XTask { -private: - XForwardingAllocator* const _allocator; - XForwarding** _forwardings; - const size_t _nforwardings; - XArrayParallelIterator _small_iter; - XArrayParallelIterator _medium_iter; - volatile size_t _small_next; - volatile size_t _medium_next; - - void install(XForwarding* forwarding, volatile size_t* next) { - const size_t index = Atomic::fetch_then_add(next, 1u); - assert(index < _nforwardings, "Invalid index"); - _forwardings[index] = forwarding; - } - - void install_small(XForwarding* forwarding) { - install(forwarding, &_small_next); - } - - void install_medium(XForwarding* forwarding) { - install(forwarding, &_medium_next); - } - -public: - XRelocationSetInstallTask(XForwardingAllocator* allocator, const XRelocationSetSelector* selector) : - XTask("XRelocationSetInstallTask"), - _allocator(allocator), - _forwardings(nullptr), - _nforwardings(selector->small()->length() + selector->medium()->length()), - _small_iter(selector->small()), - _medium_iter(selector->medium()), - _small_next(selector->medium()->length()), - _medium_next(0) { - - // Reset the allocator to have room for the relocation - // set, all forwardings, and all forwarding entries. - const size_t relocation_set_size = _nforwardings * sizeof(XForwarding*); - const size_t forwardings_size = _nforwardings * sizeof(XForwarding); - const size_t forwarding_entries_size = selector->forwarding_entries() * sizeof(XForwardingEntry); - _allocator->reset(relocation_set_size + forwardings_size + forwarding_entries_size); - - // Allocate relocation set - _forwardings = new (_allocator->alloc(relocation_set_size)) XForwarding*[_nforwardings]; - } - - ~XRelocationSetInstallTask() { - assert(_allocator->is_full(), "Should be full"); - } - - virtual void work() { - // Allocate and install forwardings for small pages - for (XPage* page; _small_iter.next(&page);) { - XForwarding* const forwarding = XForwarding::alloc(_allocator, page); - install_small(forwarding); - } - - // Allocate and install forwardings for medium pages - for (XPage* page; _medium_iter.next(&page);) { - XForwarding* const forwarding = XForwarding::alloc(_allocator, page); - install_medium(forwarding); - } - } - - XForwarding** forwardings() const { - return _forwardings; - } - - size_t nforwardings() const { - return _nforwardings; - } -}; - -XRelocationSet::XRelocationSet(XWorkers* workers) : - _workers(workers), - _allocator(), - _forwardings(nullptr), - _nforwardings(0) {} - -void XRelocationSet::install(const XRelocationSetSelector* selector) { - // Install relocation set - XRelocationSetInstallTask task(&_allocator, selector); - _workers->run(&task); - - _forwardings = task.forwardings(); - _nforwardings = task.nforwardings(); - - // Update statistics - XStatRelocation::set_at_install_relocation_set(_allocator.size()); -} - -void XRelocationSet::reset() { - // Destroy forwardings - XRelocationSetIterator iter(this); - for (XForwarding* forwarding; iter.next(&forwarding);) { - forwarding->~XForwarding(); - } - - _nforwardings = 0; -} diff --git a/src/hotspot/share/gc/x/xRelocationSet.hpp b/src/hotspot/share/gc/x/xRelocationSet.hpp deleted file mode 100644 index bbbb3770516..00000000000 --- a/src/hotspot/share/gc/x/xRelocationSet.hpp +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (c) 2017, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XRELOCATIONSET_HPP -#define SHARE_GC_X_XRELOCATIONSET_HPP - -#include "gc/x/xArray.hpp" -#include "gc/x/xForwardingAllocator.hpp" - -class XForwarding; -class XRelocationSetSelector; -class XWorkers; - -class XRelocationSet { - template friend class XRelocationSetIteratorImpl; - -private: - XWorkers* _workers; - XForwardingAllocator _allocator; - XForwarding** _forwardings; - size_t _nforwardings; - -public: - XRelocationSet(XWorkers* workers); - - void install(const XRelocationSetSelector* selector); - void reset(); -}; - -template -class XRelocationSetIteratorImpl : public XArrayIteratorImpl { -public: - XRelocationSetIteratorImpl(XRelocationSet* relocation_set); -}; - -using XRelocationSetIterator = XRelocationSetIteratorImpl; -using XRelocationSetParallelIterator = XRelocationSetIteratorImpl; - -#endif // SHARE_GC_X_XRELOCATIONSET_HPP diff --git a/src/hotspot/share/gc/x/xRelocationSet.inline.hpp b/src/hotspot/share/gc/x/xRelocationSet.inline.hpp deleted file mode 100644 index 3b76fbce46a..00000000000 --- a/src/hotspot/share/gc/x/xRelocationSet.inline.hpp +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (c) 2017, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XRELOCATIONSET_INLINE_HPP -#define SHARE_GC_X_XRELOCATIONSET_INLINE_HPP - -#include "gc/x/xRelocationSet.hpp" - -#include "gc/x/xArray.inline.hpp" - -template -inline XRelocationSetIteratorImpl::XRelocationSetIteratorImpl(XRelocationSet* relocation_set) : - XArrayIteratorImpl(relocation_set->_forwardings, relocation_set->_nforwardings) {} - -#endif // SHARE_GC_X_XRELOCATIONSET_INLINE_HPP diff --git a/src/hotspot/share/gc/x/xRelocationSetSelector.cpp b/src/hotspot/share/gc/x/xRelocationSetSelector.cpp deleted file mode 100644 index 514e70b8743..00000000000 --- a/src/hotspot/share/gc/x/xRelocationSetSelector.cpp +++ /dev/null @@ -1,213 +0,0 @@ -/* - * Copyright (c) 2017, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/shared/gc_globals.hpp" -#include "gc/x/xArray.inline.hpp" -#include "gc/x/xForwarding.inline.hpp" -#include "gc/x/xPage.inline.hpp" -#include "gc/x/xRelocationSetSelector.inline.hpp" -#include "jfr/jfrEvents.hpp" -#include "logging/log.hpp" -#include "runtime/globals.hpp" -#include "utilities/debug.hpp" -#include "utilities/powerOfTwo.hpp" - -XRelocationSetSelectorGroupStats::XRelocationSetSelectorGroupStats() : - _npages_candidates(0), - _total(0), - _live(0), - _empty(0), - _npages_selected(0), - _relocate(0) {} - -XRelocationSetSelectorGroup::XRelocationSetSelectorGroup(const char* name, - uint8_t page_type, - size_t page_size, - size_t object_size_limit) : - _name(name), - _page_type(page_type), - _page_size(page_size), - _object_size_limit(object_size_limit), - _fragmentation_limit(page_size * (ZFragmentationLimit / 100)), - _live_pages(), - _forwarding_entries(0), - _stats() {} - -bool XRelocationSetSelectorGroup::is_disabled() { - // Medium pages are disabled when their page size is zero - return _page_type == XPageTypeMedium && _page_size == 0; -} - -bool XRelocationSetSelectorGroup::is_selectable() { - // Large pages are not selectable - return _page_type != XPageTypeLarge; -} - -void XRelocationSetSelectorGroup::semi_sort() { - // Semi-sort live pages by number of live bytes in ascending order - const size_t npartitions_shift = 11; - const size_t npartitions = (size_t)1 << npartitions_shift; - const size_t partition_size = _page_size >> npartitions_shift; - const size_t partition_size_shift = exact_log2(partition_size); - - // Partition slots/fingers - int partitions[npartitions] = { /* zero initialize */ }; - - // Calculate partition slots - XArrayIterator iter1(&_live_pages); - for (XPage* page; iter1.next(&page);) { - const size_t index = page->live_bytes() >> partition_size_shift; - partitions[index]++; - } - - // Calculate partition fingers - int finger = 0; - for (size_t i = 0; i < npartitions; i++) { - const int slots = partitions[i]; - partitions[i] = finger; - finger += slots; - } - - // Allocate destination array - const int npages = _live_pages.length(); - XArray sorted_live_pages(npages, npages, nullptr); - - // Sort pages into partitions - XArrayIterator iter2(&_live_pages); - for (XPage* page; iter2.next(&page);) { - const size_t index = page->live_bytes() >> partition_size_shift; - const int finger = partitions[index]++; - assert(sorted_live_pages.at(finger) == nullptr, "Invalid finger"); - sorted_live_pages.at_put(finger, page); - } - - _live_pages.swap(&sorted_live_pages); -} - -void XRelocationSetSelectorGroup::select_inner() { - // Calculate the number of pages to relocate by successively including pages in - // a candidate relocation set and calculate the maximum space requirement for - // their live objects. - const int npages = _live_pages.length(); - int selected_from = 0; - int selected_to = 0; - size_t npages_selected = 0; - size_t selected_live_bytes = 0; - size_t selected_forwarding_entries = 0; - size_t from_live_bytes = 0; - size_t from_forwarding_entries = 0; - - semi_sort(); - - for (int from = 1; from <= npages; from++) { - // Add page to the candidate relocation set - XPage* const page = _live_pages.at(from - 1); - from_live_bytes += page->live_bytes(); - from_forwarding_entries += XForwarding::nentries(page); - - // Calculate the maximum number of pages needed by the candidate relocation set. - // By subtracting the object size limit from the pages size we get the maximum - // number of pages that the relocation set is guaranteed to fit in, regardless - // of in which order the objects are relocated. - const int to = ceil((double)(from_live_bytes) / (double)(_page_size - _object_size_limit)); - - // Calculate the relative difference in reclaimable space compared to our - // currently selected final relocation set. If this number is larger than the - // acceptable fragmentation limit, then the current candidate relocation set - // becomes our new final relocation set. - const int diff_from = from - selected_from; - const int diff_to = to - selected_to; - const double diff_reclaimable = 100 - percent_of(diff_to, diff_from); - if (diff_reclaimable > ZFragmentationLimit) { - selected_from = from; - selected_to = to; - selected_live_bytes = from_live_bytes; - npages_selected += 1; - selected_forwarding_entries = from_forwarding_entries; - } - - log_trace(gc, reloc)("Candidate Relocation Set (%s Pages): %d->%d, " - "%.1f%% relative defragmentation, " SIZE_FORMAT " forwarding entries, %s", - _name, from, to, diff_reclaimable, from_forwarding_entries, - (selected_from == from) ? "Selected" : "Rejected"); - } - - // Finalize selection - _live_pages.trunc_to(selected_from); - _forwarding_entries = selected_forwarding_entries; - - // Update statistics - _stats._relocate = selected_live_bytes; - _stats._npages_selected = npages_selected; - - log_trace(gc, reloc)("Relocation Set (%s Pages): %d->%d, %d skipped, " SIZE_FORMAT " forwarding entries", - _name, selected_from, selected_to, npages - selected_from, selected_forwarding_entries); -} - -void XRelocationSetSelectorGroup::select() { - if (is_disabled()) { - return; - } - - EventZRelocationSetGroup event; - - if (is_selectable()) { - select_inner(); - } - - // Send event - event.commit(_page_type, _stats.npages_candidates(), _stats.total(), _stats.empty(), _stats.npages_selected(), _stats.relocate()); -} - -XRelocationSetSelector::XRelocationSetSelector() : - _small("Small", XPageTypeSmall, XPageSizeSmall, XObjectSizeLimitSmall), - _medium("Medium", XPageTypeMedium, XPageSizeMedium, XObjectSizeLimitMedium), - _large("Large", XPageTypeLarge, 0 /* page_size */, 0 /* object_size_limit */), - _empty_pages() {} - -void XRelocationSetSelector::select() { - // Select pages to relocate. The resulting relocation set will be - // sorted such that medium pages comes first, followed by small - // pages. Pages within each page group will be semi-sorted by live - // bytes in ascending order. Relocating pages in this order allows - // us to start reclaiming memory more quickly. - - EventZRelocationSet event; - - // Select pages from each group - _large.select(); - _medium.select(); - _small.select(); - - // Send event - event.commit(total(), empty(), relocate()); -} - -XRelocationSetSelectorStats XRelocationSetSelector::stats() const { - XRelocationSetSelectorStats stats; - stats._small = _small.stats(); - stats._medium = _medium.stats(); - stats._large = _large.stats(); - return stats; -} diff --git a/src/hotspot/share/gc/x/xRelocationSetSelector.hpp b/src/hotspot/share/gc/x/xRelocationSetSelector.hpp deleted file mode 100644 index 75e40eeea8c..00000000000 --- a/src/hotspot/share/gc/x/xRelocationSetSelector.hpp +++ /dev/null @@ -1,134 +0,0 @@ -/* - * Copyright (c) 2017, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XRELOCATIONSETSELECTOR_HPP -#define SHARE_GC_X_XRELOCATIONSETSELECTOR_HPP - -#include "gc/x/xArray.hpp" -#include "memory/allocation.hpp" - -class XPage; - -class XRelocationSetSelectorGroupStats { - friend class XRelocationSetSelectorGroup; - -private: - // Candidate set - size_t _npages_candidates; - size_t _total; - size_t _live; - size_t _empty; - - // Selected set - size_t _npages_selected; - size_t _relocate; - -public: - XRelocationSetSelectorGroupStats(); - - size_t npages_candidates() const; - size_t total() const; - size_t live() const; - size_t empty() const; - - size_t npages_selected() const; - size_t relocate() const; -}; - -class XRelocationSetSelectorStats { - friend class XRelocationSetSelector; - -private: - XRelocationSetSelectorGroupStats _small; - XRelocationSetSelectorGroupStats _medium; - XRelocationSetSelectorGroupStats _large; - -public: - const XRelocationSetSelectorGroupStats& small() const; - const XRelocationSetSelectorGroupStats& medium() const; - const XRelocationSetSelectorGroupStats& large() const; -}; - -class XRelocationSetSelectorGroup { -private: - const char* const _name; - const uint8_t _page_type; - const size_t _page_size; - const size_t _object_size_limit; - const size_t _fragmentation_limit; - XArray _live_pages; - size_t _forwarding_entries; - XRelocationSetSelectorGroupStats _stats; - - bool is_disabled(); - bool is_selectable(); - void semi_sort(); - void select_inner(); - -public: - XRelocationSetSelectorGroup(const char* name, - uint8_t page_type, - size_t page_size, - size_t object_size_limit); - - void register_live_page(XPage* page); - void register_empty_page(XPage* page); - void select(); - - const XArray* selected() const; - size_t forwarding_entries() const; - - const XRelocationSetSelectorGroupStats& stats() const; -}; - -class XRelocationSetSelector : public StackObj { -private: - XRelocationSetSelectorGroup _small; - XRelocationSetSelectorGroup _medium; - XRelocationSetSelectorGroup _large; - XArray _empty_pages; - - size_t total() const; - size_t empty() const; - size_t relocate() const; - -public: - XRelocationSetSelector(); - - void register_live_page(XPage* page); - void register_empty_page(XPage* page); - - bool should_free_empty_pages(int bulk) const; - const XArray* empty_pages() const; - void clear_empty_pages(); - - void select(); - - const XArray* small() const; - const XArray* medium() const; - size_t forwarding_entries() const; - - XRelocationSetSelectorStats stats() const; -}; - -#endif // SHARE_GC_X_XRELOCATIONSETSELECTOR_HPP diff --git a/src/hotspot/share/gc/x/xRelocationSetSelector.inline.hpp b/src/hotspot/share/gc/x/xRelocationSetSelector.inline.hpp deleted file mode 100644 index 25e0ede835d..00000000000 --- a/src/hotspot/share/gc/x/xRelocationSetSelector.inline.hpp +++ /dev/null @@ -1,165 +0,0 @@ -/* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XRELOCATIONSETSELECTOR_INLINE_HPP -#define SHARE_GC_X_XRELOCATIONSETSELECTOR_INLINE_HPP - -#include "gc/x/xRelocationSetSelector.hpp" - -#include "gc/x/xArray.inline.hpp" -#include "gc/x/xPage.inline.hpp" - -inline size_t XRelocationSetSelectorGroupStats::npages_candidates() const { - return _npages_candidates; -} - -inline size_t XRelocationSetSelectorGroupStats::total() const { - return _total; -} - -inline size_t XRelocationSetSelectorGroupStats::live() const { - return _live; -} - -inline size_t XRelocationSetSelectorGroupStats::empty() const { - return _empty; -} - -inline size_t XRelocationSetSelectorGroupStats::npages_selected() const { - return _npages_selected; -} - -inline size_t XRelocationSetSelectorGroupStats::relocate() const { - return _relocate; -} - -inline const XRelocationSetSelectorGroupStats& XRelocationSetSelectorStats::small() const { - return _small; -} - -inline const XRelocationSetSelectorGroupStats& XRelocationSetSelectorStats::medium() const { - return _medium; -} - -inline const XRelocationSetSelectorGroupStats& XRelocationSetSelectorStats::large() const { - return _large; -} - -inline void XRelocationSetSelectorGroup::register_live_page(XPage* page) { - const uint8_t type = page->type(); - const size_t size = page->size(); - const size_t live = page->live_bytes(); - const size_t garbage = size - live; - - if (garbage > _fragmentation_limit) { - _live_pages.append(page); - } - - _stats._npages_candidates++; - _stats._total += size; - _stats._live += live; -} - -inline void XRelocationSetSelectorGroup::register_empty_page(XPage* page) { - const size_t size = page->size(); - - _stats._npages_candidates++; - _stats._total += size; - _stats._empty += size; -} - -inline const XArray* XRelocationSetSelectorGroup::selected() const { - return &_live_pages; -} - -inline size_t XRelocationSetSelectorGroup::forwarding_entries() const { - return _forwarding_entries; -} - -inline const XRelocationSetSelectorGroupStats& XRelocationSetSelectorGroup::stats() const { - return _stats; -} - -inline void XRelocationSetSelector::register_live_page(XPage* page) { - const uint8_t type = page->type(); - - if (type == XPageTypeSmall) { - _small.register_live_page(page); - } else if (type == XPageTypeMedium) { - _medium.register_live_page(page); - } else { - _large.register_live_page(page); - } -} - -inline void XRelocationSetSelector::register_empty_page(XPage* page) { - const uint8_t type = page->type(); - - if (type == XPageTypeSmall) { - _small.register_empty_page(page); - } else if (type == XPageTypeMedium) { - _medium.register_empty_page(page); - } else { - _large.register_empty_page(page); - } - - _empty_pages.append(page); -} - -inline bool XRelocationSetSelector::should_free_empty_pages(int bulk) const { - return _empty_pages.length() >= bulk && _empty_pages.is_nonempty(); -} - -inline const XArray* XRelocationSetSelector::empty_pages() const { - return &_empty_pages; -} - -inline void XRelocationSetSelector::clear_empty_pages() { - return _empty_pages.clear(); -} - -inline size_t XRelocationSetSelector::total() const { - return _small.stats().total() + _medium.stats().total() + _large.stats().total(); -} - -inline size_t XRelocationSetSelector::empty() const { - return _small.stats().empty() + _medium.stats().empty() + _large.stats().empty(); -} - -inline size_t XRelocationSetSelector::relocate() const { - return _small.stats().relocate() + _medium.stats().relocate() + _large.stats().relocate(); -} - -inline const XArray* XRelocationSetSelector::small() const { - return _small.selected(); -} - -inline const XArray* XRelocationSetSelector::medium() const { - return _medium.selected(); -} - -inline size_t XRelocationSetSelector::forwarding_entries() const { - return _small.forwarding_entries() + _medium.forwarding_entries(); -} - -#endif // SHARE_GC_X_XRELOCATIONSETSELECTOR_INLINE_HPP diff --git a/src/hotspot/share/gc/x/xResurrection.cpp b/src/hotspot/share/gc/x/xResurrection.cpp deleted file mode 100644 index 486f1f8db82..00000000000 --- a/src/hotspot/share/gc/x/xResurrection.cpp +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) 2016, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xResurrection.hpp" -#include "runtime/atomic.hpp" -#include "runtime/safepoint.hpp" -#include "utilities/debug.hpp" - -volatile bool XResurrection::_blocked = false; - -void XResurrection::block() { - assert(SafepointSynchronize::is_at_safepoint(), "Should be at safepoint"); - _blocked = true; -} - -void XResurrection::unblock() { - // No need for anything stronger than a relaxed store here. - // The preceding handshake makes sure that all non-strong - // oops have already been healed at this point. - Atomic::store(&_blocked, false); -} diff --git a/src/hotspot/share/gc/x/xResurrection.hpp b/src/hotspot/share/gc/x/xResurrection.hpp deleted file mode 100644 index d6ce9820e02..00000000000 --- a/src/hotspot/share/gc/x/xResurrection.hpp +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (c) 2016, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XRESURRECTION_HPP -#define SHARE_GC_X_XRESURRECTION_HPP - -#include "memory/allStatic.hpp" - -class XResurrection : public AllStatic { -private: - static volatile bool _blocked; - -public: - static bool is_blocked(); - static void block(); - static void unblock(); -}; - -#endif // SHARE_GC_X_XRESURRECTION_HPP diff --git a/src/hotspot/share/gc/x/xResurrection.inline.hpp b/src/hotspot/share/gc/x/xResurrection.inline.hpp deleted file mode 100644 index af1993945cc..00000000000 --- a/src/hotspot/share/gc/x/xResurrection.inline.hpp +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XRESURRECTION_INLINE_HPP -#define SHARE_GC_X_XRESURRECTION_INLINE_HPP - -#include "gc/x/xResurrection.hpp" - -#include "runtime/atomic.hpp" - -inline bool XResurrection::is_blocked() { - return Atomic::load(&_blocked); -} - -#endif // SHARE_GC_X_XRESURRECTION_INLINE_HPP diff --git a/src/hotspot/share/gc/x/xRootsIterator.cpp b/src/hotspot/share/gc/x/xRootsIterator.cpp deleted file mode 100644 index 4eaeb8e77c2..00000000000 --- a/src/hotspot/share/gc/x/xRootsIterator.cpp +++ /dev/null @@ -1,142 +0,0 @@ -/* - * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "classfile/classLoaderDataGraph.hpp" -#include "gc/shared/oopStorageSetParState.inline.hpp" -#include "gc/x/xNMethod.hpp" -#include "gc/x/xNMethodTable.hpp" -#include "gc/x/xRootsIterator.hpp" -#include "gc/x/xStat.hpp" -#include "memory/resourceArea.hpp" -#include "prims/jvmtiTagMap.hpp" -#include "runtime/atomic.hpp" -#include "runtime/globals.hpp" -#include "runtime/safepoint.hpp" -#include "utilities/debug.hpp" - -static const XStatSubPhase XSubPhaseConcurrentRootsOopStorageSet("Concurrent Roots OopStorageSet"); -static const XStatSubPhase XSubPhaseConcurrentRootsClassLoaderDataGraph("Concurrent Roots ClassLoaderDataGraph"); -static const XStatSubPhase XSubPhaseConcurrentRootsJavaThreads("Concurrent Roots JavaThreads"); -static const XStatSubPhase XSubPhaseConcurrentRootsCodeCache("Concurrent Roots CodeCache"); -static const XStatSubPhase XSubPhaseConcurrentWeakRootsOopStorageSet("Concurrent Weak Roots OopStorageSet"); - -template -template -void XParallelApply::apply(ClosureType* cl) { - if (!Atomic::load(&_completed)) { - _iter.apply(cl); - if (!Atomic::load(&_completed)) { - Atomic::store(&_completed, true); - } - } -} - -XStrongOopStorageSetIterator::XStrongOopStorageSetIterator() : - _iter() {} - -void XStrongOopStorageSetIterator::apply(OopClosure* cl) { - XStatTimer timer(XSubPhaseConcurrentRootsOopStorageSet); - _iter.oops_do(cl); -} - -void XStrongCLDsIterator::apply(CLDClosure* cl) { - XStatTimer timer(XSubPhaseConcurrentRootsClassLoaderDataGraph); - ClassLoaderDataGraph::always_strong_cld_do(cl); -} - -XJavaThreadsIterator::XJavaThreadsIterator() : - _threads(), - _claimed(0) {} - -uint XJavaThreadsIterator::claim() { - return Atomic::fetch_then_add(&_claimed, 1u); -} - -void XJavaThreadsIterator::apply(ThreadClosure* cl) { - XStatTimer timer(XSubPhaseConcurrentRootsJavaThreads); - - // The resource mark is needed because interpreter oop maps are - // not reused in concurrent mode. Instead, they are temporary and - // resource allocated. - ResourceMark _rm; - - for (uint i = claim(); i < _threads.length(); i = claim()) { - cl->do_thread(_threads.thread_at(i)); - } -} - -XNMethodsIterator::XNMethodsIterator() { - if (!ClassUnloading) { - XNMethod::nmethods_do_begin(); - } -} - -XNMethodsIterator::~XNMethodsIterator() { - if (!ClassUnloading) { - XNMethod::nmethods_do_end(); - } -} - -void XNMethodsIterator::apply(NMethodClosure* cl) { - XStatTimer timer(XSubPhaseConcurrentRootsCodeCache); - XNMethod::nmethods_do(cl); -} - -XRootsIterator::XRootsIterator(int cld_claim) { - if (cld_claim != ClassLoaderData::_claim_none) { - ClassLoaderDataGraph::verify_claimed_marks_cleared(cld_claim); - } -} - -void XRootsIterator::apply(OopClosure* cl, - CLDClosure* cld_cl, - ThreadClosure* thread_cl, - NMethodClosure* nm_cl) { - _oop_storage_set.apply(cl); - _class_loader_data_graph.apply(cld_cl); - _java_threads.apply(thread_cl); - if (!ClassUnloading) { - _nmethods.apply(nm_cl); - } -} - -XWeakOopStorageSetIterator::XWeakOopStorageSetIterator() : - _iter() {} - -void XWeakOopStorageSetIterator::apply(OopClosure* cl) { - XStatTimer timer(XSubPhaseConcurrentWeakRootsOopStorageSet); - _iter.oops_do(cl); -} - -void XWeakOopStorageSetIterator::report_num_dead() { - _iter.report_num_dead(); -} - -void XWeakRootsIterator::report_num_dead() { - _oop_storage_set.iter().report_num_dead(); -} - -void XWeakRootsIterator::apply(OopClosure* cl) { - _oop_storage_set.apply(cl); -} diff --git a/src/hotspot/share/gc/x/xRootsIterator.hpp b/src/hotspot/share/gc/x/xRootsIterator.hpp deleted file mode 100644 index 9adc4c02938..00000000000 --- a/src/hotspot/share/gc/x/xRootsIterator.hpp +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XROOTSITERATOR_HPP -#define SHARE_GC_X_XROOTSITERATOR_HPP - -#include "gc/shared/oopStorageSetParState.hpp" -#include "logging/log.hpp" -#include "memory/iterator.hpp" -#include "runtime/threadSMR.hpp" - -template -class XParallelApply { -private: - Iterator _iter; - volatile bool _completed; - -public: - XParallelApply() : - _iter(), - _completed(false) {} - - template - void apply(ClosureType* cl); - - Iterator& iter() { - return _iter; - } -}; - -class XStrongOopStorageSetIterator { - OopStorageSetStrongParState _iter; - -public: - XStrongOopStorageSetIterator(); - - void apply(OopClosure* cl); -}; - -class XStrongCLDsIterator { -public: - void apply(CLDClosure* cl); -}; - -class XJavaThreadsIterator { -private: - ThreadsListHandle _threads; - volatile uint _claimed; - - uint claim(); - -public: - XJavaThreadsIterator(); - - void apply(ThreadClosure* cl); -}; - -class XNMethodsIterator { -public: - XNMethodsIterator(); - ~XNMethodsIterator(); - - void apply(NMethodClosure* cl); -}; - -class XRootsIterator { -private: - XParallelApply _oop_storage_set; - XParallelApply _class_loader_data_graph; - XParallelApply _java_threads; - XParallelApply _nmethods; - -public: - XRootsIterator(int cld_claim); - - void apply(OopClosure* cl, - CLDClosure* cld_cl, - ThreadClosure* thread_cl, - NMethodClosure* nm_cl); -}; - -class XWeakOopStorageSetIterator { -private: - OopStorageSetWeakParState _iter; - -public: - XWeakOopStorageSetIterator(); - - void apply(OopClosure* cl); - - void report_num_dead(); -}; - -class XWeakRootsIterator { -private: - XParallelApply _oop_storage_set; - -public: - void apply(OopClosure* cl); - - void report_num_dead(); -}; - -#endif // SHARE_GC_X_XROOTSITERATOR_HPP diff --git a/src/hotspot/share/gc/x/xRuntimeWorkers.cpp b/src/hotspot/share/gc/x/xRuntimeWorkers.cpp deleted file mode 100644 index d7e4a1262fc..00000000000 --- a/src/hotspot/share/gc/x/xRuntimeWorkers.cpp +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright (c) 2018, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/shared/gcLogPrecious.hpp" -#include "gc/shared/gc_globals.hpp" -#include "gc/x/xLock.inline.hpp" -#include "gc/x/xRuntimeWorkers.hpp" -#include "gc/x/xTask.hpp" -#include "gc/x/xThread.hpp" -#include "runtime/java.hpp" - -class XRuntimeWorkersInitializeTask : public WorkerTask { -private: - const uint _nworkers; - uint _started; - XConditionLock _lock; - -public: - XRuntimeWorkersInitializeTask(uint nworkers) : - WorkerTask("XRuntimeWorkersInitializeTask"), - _nworkers(nworkers), - _started(0), - _lock() {} - - virtual void work(uint worker_id) { - // Wait for all threads to start - XLocker locker(&_lock); - if (++_started == _nworkers) { - // All threads started - _lock.notify_all(); - } else { - while (_started != _nworkers) { - _lock.wait(); - } - } - } -}; - -XRuntimeWorkers::XRuntimeWorkers() : - _workers("RuntimeWorker", - ParallelGCThreads) { - - log_info_p(gc, init)("Runtime Workers: %u", _workers.max_workers()); - - // Initialize worker threads - _workers.initialize_workers(); - _workers.set_active_workers(_workers.max_workers()); - if (_workers.active_workers() != _workers.max_workers()) { - vm_exit_during_initialization("Failed to create XRuntimeWorkers"); - } - - // Execute task to reduce latency in early safepoints, - // which otherwise would have to take on any warmup costs. - XRuntimeWorkersInitializeTask task(_workers.max_workers()); - _workers.run_task(&task); -} - -WorkerThreads* XRuntimeWorkers::workers() { - return &_workers; -} - -void XRuntimeWorkers::threads_do(ThreadClosure* tc) const { - _workers.threads_do(tc); -} diff --git a/src/hotspot/share/gc/x/xRuntimeWorkers.hpp b/src/hotspot/share/gc/x/xRuntimeWorkers.hpp deleted file mode 100644 index 114521d6506..00000000000 --- a/src/hotspot/share/gc/x/xRuntimeWorkers.hpp +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (c) 2018, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XRUNTIMEWORKERS_HPP -#define SHARE_GC_X_XRUNTIMEWORKERS_HPP - -#include "gc/shared/workerThread.hpp" - -class ThreadClosure; - -class XRuntimeWorkers { -private: - WorkerThreads _workers; - -public: - XRuntimeWorkers(); - - WorkerThreads* workers(); - - void threads_do(ThreadClosure* tc) const; -}; - -#endif // SHARE_GC_X_XRUNTIMEWORKERS_HPP diff --git a/src/hotspot/share/gc/x/xSafeDelete.hpp b/src/hotspot/share/gc/x/xSafeDelete.hpp deleted file mode 100644 index c41a38ce187..00000000000 --- a/src/hotspot/share/gc/x/xSafeDelete.hpp +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XSAFEDELETE_HPP -#define SHARE_GC_X_XSAFEDELETE_HPP - -#include "gc/x/xArray.hpp" -#include "gc/x/xLock.hpp" - -#include - -template -class XSafeDeleteImpl { -private: - using ItemT = std::remove_extent_t; - - XLock* _lock; - uint64_t _enabled; - XArray _deferred; - - bool deferred_delete(ItemT* item); - void immediate_delete(ItemT* item); - -public: - XSafeDeleteImpl(XLock* lock); - - void enable_deferred_delete(); - void disable_deferred_delete(); - - void operator()(ItemT* item); -}; - -template -class XSafeDelete : public XSafeDeleteImpl { -private: - XLock _lock; - -public: - XSafeDelete(); -}; - -template -class XSafeDeleteNoLock : public XSafeDeleteImpl { -public: - XSafeDeleteNoLock(); -}; - -#endif // SHARE_GC_X_XSAFEDELETE_HPP diff --git a/src/hotspot/share/gc/x/xSafeDelete.inline.hpp b/src/hotspot/share/gc/x/xSafeDelete.inline.hpp deleted file mode 100644 index 7e428c710e8..00000000000 --- a/src/hotspot/share/gc/x/xSafeDelete.inline.hpp +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XSAFEDELETE_INLINE_HPP -#define SHARE_GC_X_XSAFEDELETE_INLINE_HPP - -#include "gc/x/xSafeDelete.hpp" - -#include "gc/x/xArray.inline.hpp" -#include "utilities/debug.hpp" - -#include - -template -XSafeDeleteImpl::XSafeDeleteImpl(XLock* lock) : - _lock(lock), - _enabled(0), - _deferred() {} - -template -bool XSafeDeleteImpl::deferred_delete(ItemT* item) { - XLocker locker(_lock); - if (_enabled > 0) { - _deferred.append(item); - return true; - } - - return false; -} - -template -void XSafeDeleteImpl::immediate_delete(ItemT* item) { - if (std::is_array::value) { - delete [] item; - } else { - delete item; - } -} - -template -void XSafeDeleteImpl::enable_deferred_delete() { - XLocker locker(_lock); - _enabled++; -} - -template -void XSafeDeleteImpl::disable_deferred_delete() { - XArray deferred; - - { - XLocker locker(_lock); - assert(_enabled > 0, "Invalid state"); - if (--_enabled == 0) { - deferred.swap(&_deferred); - } - } - - XArrayIterator iter(&deferred); - for (ItemT* item; iter.next(&item);) { - immediate_delete(item); - } -} - -template -void XSafeDeleteImpl::operator()(ItemT* item) { - if (!deferred_delete(item)) { - immediate_delete(item); - } -} - -template -XSafeDelete::XSafeDelete() : - XSafeDeleteImpl(&_lock), - _lock() {} - -template -XSafeDeleteNoLock::XSafeDeleteNoLock() : - XSafeDeleteImpl(nullptr) {} - -#endif // SHARE_GC_X_XSAFEDELETE_INLINE_HPP diff --git a/src/hotspot/share/gc/x/xServiceability.cpp b/src/hotspot/share/gc/x/xServiceability.cpp deleted file mode 100644 index f3b51b6bb4a..00000000000 --- a/src/hotspot/share/gc/x/xServiceability.cpp +++ /dev/null @@ -1,177 +0,0 @@ -/* - * Copyright (c) 2017, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/shared/generationCounters.hpp" -#include "gc/shared/hSpaceCounters.hpp" -#include "gc/x/xCollectedHeap.hpp" -#include "gc/x/xHeap.inline.hpp" -#include "gc/x/xServiceability.hpp" -#include "memory/metaspaceCounters.hpp" -#include "runtime/perfData.hpp" - -class XGenerationCounters : public GenerationCounters { -public: - XGenerationCounters(const char* name, int ordinal, int spaces, - size_t min_capacity, size_t max_capacity, size_t curr_capacity) : - GenerationCounters(name, ordinal, spaces, - min_capacity, max_capacity, curr_capacity) {} - - void update_capacity(size_t capacity) { - _current_size->set_value(capacity); - } -}; - -// Class to expose perf counters used by jstat. -class XServiceabilityCounters : public CHeapObj { -private: - XGenerationCounters _generation_counters; - HSpaceCounters _space_counters; - CollectorCounters _collector_counters; - -public: - XServiceabilityCounters(size_t min_capacity, size_t max_capacity); - - CollectorCounters* collector_counters(); - - void update_sizes(); -}; - -XServiceabilityCounters::XServiceabilityCounters(size_t min_capacity, size_t max_capacity) : - // generation.1 - _generation_counters("old" /* name */, - 1 /* ordinal */, - 1 /* spaces */, - min_capacity /* min_capacity */, - max_capacity /* max_capacity */, - min_capacity /* curr_capacity */), - // generation.1.space.0 - _space_counters(_generation_counters.name_space(), - "space" /* name */, - 0 /* ordinal */, - max_capacity /* max_capacity */, - min_capacity /* init_capacity */), - // gc.collector.2 - _collector_counters("Z concurrent cycle pauses" /* name */, - 2 /* ordinal */) {} - -CollectorCounters* XServiceabilityCounters::collector_counters() { - return &_collector_counters; -} - -void XServiceabilityCounters::update_sizes() { - if (UsePerfData) { - const size_t capacity = XHeap::heap()->capacity(); - const size_t used = MIN2(XHeap::heap()->used(), capacity); - - _generation_counters.update_capacity(capacity); - _space_counters.update_capacity(capacity); - _space_counters.update_used(used); - - MetaspaceCounters::update_performance_counters(); - } -} - -XServiceabilityMemoryPool::XServiceabilityMemoryPool(size_t min_capacity, size_t max_capacity) : - CollectedMemoryPool("ZHeap", - min_capacity, - max_capacity, - true /* support_usage_threshold */) {} - -size_t XServiceabilityMemoryPool::used_in_bytes() { - return XHeap::heap()->used(); -} - -MemoryUsage XServiceabilityMemoryPool::get_memory_usage() { - const size_t committed = XHeap::heap()->capacity(); - const size_t used = MIN2(XHeap::heap()->used(), committed); - - return MemoryUsage(initial_size(), used, committed, max_size()); -} - -XServiceabilityMemoryManager::XServiceabilityMemoryManager(const char* name, - XServiceabilityMemoryPool* pool) : - GCMemoryManager(name) { - add_pool(pool); -} - -XServiceability::XServiceability(size_t min_capacity, size_t max_capacity) : - _min_capacity(min_capacity), - _max_capacity(max_capacity), - _memory_pool(_min_capacity, _max_capacity), - _cycle_memory_manager("ZGC Cycles", &_memory_pool), - _pause_memory_manager("ZGC Pauses", &_memory_pool), - _counters(nullptr) {} - -void XServiceability::initialize() { - _counters = new XServiceabilityCounters(_min_capacity, _max_capacity); -} - -MemoryPool* XServiceability::memory_pool() { - return &_memory_pool; -} - -GCMemoryManager* XServiceability::cycle_memory_manager() { - return &_cycle_memory_manager; -} - -GCMemoryManager* XServiceability::pause_memory_manager() { - return &_pause_memory_manager; -} - -XServiceabilityCounters* XServiceability::counters() { - return _counters; -} - -XServiceabilityCycleTracer::XServiceabilityCycleTracer() : - _memory_manager_stats(XHeap::heap()->serviceability_cycle_memory_manager(), - XCollectedHeap::heap()->gc_cause(), - "end of GC cycle", - true /* allMemoryPoolsAffected */, - true /* recordGCBeginTime */, - true /* recordPreGCUsage */, - true /* recordPeakUsage */, - true /* recordPostGCUsage */, - true /* recordAccumulatedGCTime */, - true /* recordGCEndTime */, - true /* countCollection */) {} - -XServiceabilityPauseTracer::XServiceabilityPauseTracer() : - _svc_gc_marker(SvcGCMarker::CONCURRENT), - _counters_stats(XHeap::heap()->serviceability_counters()->collector_counters()), - _memory_manager_stats(XHeap::heap()->serviceability_pause_memory_manager(), - XCollectedHeap::heap()->gc_cause(), - "end of GC pause", - true /* allMemoryPoolsAffected */, - true /* recordGCBeginTime */, - false /* recordPreGCUsage */, - false /* recordPeakUsage */, - false /* recordPostGCUsage */, - true /* recordAccumulatedGCTime */, - true /* recordGCEndTime */, - true /* countCollection */) {} - -XServiceabilityPauseTracer::~XServiceabilityPauseTracer() { - XHeap::heap()->serviceability_counters()->update_sizes(); - MemoryService::track_memory_usage(); -} diff --git a/src/hotspot/share/gc/x/xServiceability.hpp b/src/hotspot/share/gc/x/xServiceability.hpp deleted file mode 100644 index d8e2fc9ba79..00000000000 --- a/src/hotspot/share/gc/x/xServiceability.hpp +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright (c) 2017, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XSERVICEABILITY_HPP -#define SHARE_GC_X_XSERVICEABILITY_HPP - -#include "gc/shared/collectorCounters.hpp" -#include "gc/shared/gcVMOperations.hpp" -#include "memory/allocation.hpp" -#include "services/memoryManager.hpp" -#include "services/memoryPool.hpp" -#include "services/memoryService.hpp" - -class XServiceabilityCounters; - -class XServiceabilityMemoryPool : public CollectedMemoryPool { -public: - XServiceabilityMemoryPool(size_t min_capacity, size_t max_capacity); - - virtual size_t used_in_bytes(); - virtual MemoryUsage get_memory_usage(); -}; - -class XServiceabilityMemoryManager : public GCMemoryManager { -public: - XServiceabilityMemoryManager(const char* name, - XServiceabilityMemoryPool* pool); -}; - -class XServiceability { -private: - const size_t _min_capacity; - const size_t _max_capacity; - XServiceabilityMemoryPool _memory_pool; - XServiceabilityMemoryManager _cycle_memory_manager; - XServiceabilityMemoryManager _pause_memory_manager; - XServiceabilityCounters* _counters; - -public: - XServiceability(size_t min_capacity, size_t max_capacity); - - void initialize(); - - MemoryPool* memory_pool(); - GCMemoryManager* cycle_memory_manager(); - GCMemoryManager* pause_memory_manager(); - XServiceabilityCounters* counters(); -}; - -class XServiceabilityCycleTracer : public StackObj { -private: - TraceMemoryManagerStats _memory_manager_stats; - -public: - XServiceabilityCycleTracer(); -}; - -class XServiceabilityPauseTracer : public StackObj { -private: - SvcGCMarker _svc_gc_marker; - TraceCollectorStats _counters_stats; - TraceMemoryManagerStats _memory_manager_stats; - -public: - XServiceabilityPauseTracer(); - ~XServiceabilityPauseTracer(); -}; - -#endif // SHARE_GC_X_XSERVICEABILITY_HPP diff --git a/src/hotspot/share/gc/x/xStackWatermark.cpp b/src/hotspot/share/gc/x/xStackWatermark.cpp deleted file mode 100644 index b75113a7529..00000000000 --- a/src/hotspot/share/gc/x/xStackWatermark.cpp +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xAddress.hpp" -#include "gc/x/xBarrier.inline.hpp" -#include "gc/x/xStackWatermark.hpp" -#include "gc/x/xThread.inline.hpp" -#include "gc/x/xThreadLocalAllocBuffer.hpp" -#include "gc/x/xThreadLocalData.hpp" -#include "gc/x/xVerify.hpp" -#include "memory/resourceArea.inline.hpp" -#include "runtime/frame.inline.hpp" -#include "utilities/preserveException.hpp" - -XOnStackNMethodClosure::XOnStackNMethodClosure() : - _bs_nm(BarrierSet::barrier_set()->barrier_set_nmethod()) {} - -void XOnStackNMethodClosure::do_nmethod(nmethod* nm) { - const bool result = _bs_nm->nmethod_entry_barrier(nm); - assert(result, "NMethod on-stack must be alive"); -} - -ThreadLocalAllocStats& XStackWatermark::stats() { - return _stats; -} - -uint32_t XStackWatermark::epoch_id() const { - return *XAddressBadMaskHighOrderBitsAddr; -} - -XStackWatermark::XStackWatermark(JavaThread* jt) : - StackWatermark(jt, StackWatermarkKind::gc, *XAddressBadMaskHighOrderBitsAddr), - _jt_cl(), - _nm_cl(), - _stats() {} - -OopClosure* XStackWatermark::closure_from_context(void* context) { - if (context != nullptr) { - assert(XThread::is_worker(), "Unexpected thread passing in context: " PTR_FORMAT, p2i(context)); - return reinterpret_cast(context); - } else { - return &_jt_cl; - } -} - -void XStackWatermark::start_processing_impl(void* context) { - // Verify the head (no_frames) of the thread is bad before fixing it. - XVerify::verify_thread_head_bad(_jt); - - // Process the non-frame part of the thread - _jt->oops_do_no_frames(closure_from_context(context), &_nm_cl); - XThreadLocalData::do_invisible_root(_jt, XBarrier::load_barrier_on_invisible_root_oop_field); - - // Verification of frames is done after processing of the "head" (no_frames). - // The reason is that the exception oop is fiddled with during frame processing. - XVerify::verify_thread_frames_bad(_jt); - - // Update thread local address bad mask - XThreadLocalData::set_address_bad_mask(_jt, XAddressBadMask); - - // Retire TLAB - if (XGlobalPhase == XPhaseMark) { - XThreadLocalAllocBuffer::retire(_jt, &_stats); - } else { - XThreadLocalAllocBuffer::remap(_jt); - } - - // Publishes the processing start to concurrent threads - StackWatermark::start_processing_impl(context); -} - -void XStackWatermark::process(const frame& fr, RegisterMap& register_map, void* context) { - XVerify::verify_frame_bad(fr, register_map); - fr.oops_do(closure_from_context(context), &_nm_cl, ®ister_map, DerivedPointerIterationMode::_directly); -} diff --git a/src/hotspot/share/gc/x/xStackWatermark.hpp b/src/hotspot/share/gc/x/xStackWatermark.hpp deleted file mode 100644 index 9b73860bed0..00000000000 --- a/src/hotspot/share/gc/x/xStackWatermark.hpp +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XSTACKWATERMARK_HPP -#define SHARE_GC_X_XSTACKWATERMARK_HPP - -#include "gc/shared/barrierSet.hpp" -#include "gc/shared/barrierSetNMethod.hpp" -#include "gc/shared/threadLocalAllocBuffer.hpp" -#include "gc/x/xBarrier.hpp" -#include "memory/allocation.hpp" -#include "memory/iterator.hpp" -#include "oops/oopsHierarchy.hpp" -#include "runtime/stackWatermark.hpp" -#include "utilities/globalDefinitions.hpp" - -class frame; -class JavaThread; - -class XOnStackNMethodClosure : public NMethodClosure { -private: - BarrierSetNMethod* _bs_nm; - - virtual void do_nmethod(nmethod* nm); - -public: - XOnStackNMethodClosure(); -}; - -class XStackWatermark : public StackWatermark { -private: - XLoadBarrierOopClosure _jt_cl; - XOnStackNMethodClosure _nm_cl; - ThreadLocalAllocStats _stats; - - OopClosure* closure_from_context(void* context); - - virtual uint32_t epoch_id() const; - virtual void start_processing_impl(void* context); - virtual void process(const frame& fr, RegisterMap& register_map, void* context); - -public: - XStackWatermark(JavaThread* jt); - - ThreadLocalAllocStats& stats(); -}; - -#endif // SHARE_GC_X_XSTACKWATERMARK_HPP diff --git a/src/hotspot/share/gc/x/xStat.cpp b/src/hotspot/share/gc/x/xStat.cpp deleted file mode 100644 index c445e951397..00000000000 --- a/src/hotspot/share/gc/x/xStat.cpp +++ /dev/null @@ -1,1513 +0,0 @@ -/* - * Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/shared/gc_globals.hpp" -#include "gc/x/xAbort.inline.hpp" -#include "gc/x/xCollectedHeap.hpp" -#include "gc/x/xCPU.inline.hpp" -#include "gc/x/xGlobals.hpp" -#include "gc/x/xNMethodTable.hpp" -#include "gc/x/xPageAllocator.inline.hpp" -#include "gc/x/xRelocationSetSelector.inline.hpp" -#include "gc/x/xStat.hpp" -#include "gc/x/xThread.inline.hpp" -#include "gc/x/xTracer.inline.hpp" -#include "gc/x/xUtils.hpp" -#include "memory/metaspaceUtils.hpp" -#include "memory/resourceArea.hpp" -#include "runtime/atomic.hpp" -#include "runtime/os.hpp" -#include "runtime/timer.hpp" -#include "utilities/align.hpp" -#include "utilities/debug.hpp" -#include "utilities/ticks.hpp" - -#define XSIZE_FMT SIZE_FORMAT "M(%.0f%%)" -#define XSIZE_ARGS_WITH_MAX(size, max) ((size) / M), (percent_of(size, max)) -#define XSIZE_ARGS(size) XSIZE_ARGS_WITH_MAX(size, XStatHeap::max_capacity()) - -#define XTABLE_ARGS_NA "%9s", "-" -#define XTABLE_ARGS(size) SIZE_FORMAT_W(8) "M (%.0f%%)", \ - ((size) / M), (percent_of(size, XStatHeap::max_capacity())) - -// -// Stat sampler/counter data -// -struct XStatSamplerData { - uint64_t _nsamples; - uint64_t _sum; - uint64_t _max; - - XStatSamplerData() : - _nsamples(0), - _sum(0), - _max(0) {} - - void add(const XStatSamplerData& new_sample) { - _nsamples += new_sample._nsamples; - _sum += new_sample._sum; - _max = MAX2(_max, new_sample._max); - } -}; - -struct XStatCounterData { - uint64_t _counter; - - XStatCounterData() : - _counter(0) {} -}; - -// -// Stat sampler history -// -template -class XStatSamplerHistoryInterval { -private: - size_t _next; - XStatSamplerData _samples[size]; - XStatSamplerData _accumulated; - XStatSamplerData _total; - -public: - XStatSamplerHistoryInterval() : - _next(0), - _samples(), - _accumulated(), - _total() {} - - bool add(const XStatSamplerData& new_sample) { - // Insert sample - const XStatSamplerData old_sample = _samples[_next]; - _samples[_next] = new_sample; - - // Adjust accumulated - _accumulated._nsamples += new_sample._nsamples; - _accumulated._sum += new_sample._sum; - _accumulated._max = MAX2(_accumulated._max, new_sample._max); - - // Adjust total - _total._nsamples -= old_sample._nsamples; - _total._sum -= old_sample._sum; - _total._nsamples += new_sample._nsamples; - _total._sum += new_sample._sum; - if (_total._max < new_sample._max) { - // Found new max - _total._max = new_sample._max; - } else if (_total._max == old_sample._max) { - // Removed old max, reset and find new max - _total._max = 0; - for (size_t i = 0; i < size; i++) { - if (_total._max < _samples[i]._max) { - _total._max = _samples[i]._max; - } - } - } - - // Adjust next - if (++_next == size) { - _next = 0; - - // Clear accumulated - const XStatSamplerData zero; - _accumulated = zero; - - // Became full - return true; - } - - // Not yet full - return false; - } - - const XStatSamplerData& total() const { - return _total; - } - - const XStatSamplerData& accumulated() const { - return _accumulated; - } -}; - -class XStatSamplerHistory : public CHeapObj { -private: - XStatSamplerHistoryInterval<10> _10seconds; - XStatSamplerHistoryInterval<60> _10minutes; - XStatSamplerHistoryInterval<60> _10hours; - XStatSamplerData _total; - - uint64_t avg(uint64_t sum, uint64_t nsamples) const { - return (nsamples > 0) ? sum / nsamples : 0; - } - -public: - XStatSamplerHistory() : - _10seconds(), - _10minutes(), - _10hours(), - _total() {} - - void add(const XStatSamplerData& new_sample) { - if (_10seconds.add(new_sample)) { - if (_10minutes.add(_10seconds.total())) { - if (_10hours.add(_10minutes.total())) { - _total.add(_10hours.total()); - } - } - } - } - - uint64_t avg_10_seconds() const { - const uint64_t sum = _10seconds.total()._sum; - const uint64_t nsamples = _10seconds.total()._nsamples; - return avg(sum, nsamples); - } - - uint64_t avg_10_minutes() const { - const uint64_t sum = _10seconds.accumulated()._sum + - _10minutes.total()._sum; - const uint64_t nsamples = _10seconds.accumulated()._nsamples + - _10minutes.total()._nsamples; - return avg(sum, nsamples); - } - - uint64_t avg_10_hours() const { - const uint64_t sum = _10seconds.accumulated()._sum + - _10minutes.accumulated()._sum + - _10hours.total()._sum; - const uint64_t nsamples = _10seconds.accumulated()._nsamples + - _10minutes.accumulated()._nsamples + - _10hours.total()._nsamples; - return avg(sum, nsamples); - } - - uint64_t avg_total() const { - const uint64_t sum = _10seconds.accumulated()._sum + - _10minutes.accumulated()._sum + - _10hours.accumulated()._sum + - _total._sum; - const uint64_t nsamples = _10seconds.accumulated()._nsamples + - _10minutes.accumulated()._nsamples + - _10hours.accumulated()._nsamples + - _total._nsamples; - return avg(sum, nsamples); - } - - uint64_t max_10_seconds() const { - return _10seconds.total()._max; - } - - uint64_t max_10_minutes() const { - return MAX2(_10seconds.accumulated()._max, - _10minutes.total()._max); - } - - uint64_t max_10_hours() const { - return MAX3(_10seconds.accumulated()._max, - _10minutes.accumulated()._max, - _10hours.total()._max); - } - - uint64_t max_total() const { - return MAX4(_10seconds.accumulated()._max, - _10minutes.accumulated()._max, - _10hours.accumulated()._max, - _total._max); - } -}; - -// -// Stat unit printers -// -void XStatUnitTime(LogTargetHandle log, const XStatSampler& sampler, const XStatSamplerHistory& history) { - log.print(" %10s: %-41s " - "%9.3f / %-9.3f " - "%9.3f / %-9.3f " - "%9.3f / %-9.3f " - "%9.3f / %-9.3f ms", - sampler.group(), - sampler.name(), - TimeHelper::counter_to_millis(history.avg_10_seconds()), - TimeHelper::counter_to_millis(history.max_10_seconds()), - TimeHelper::counter_to_millis(history.avg_10_minutes()), - TimeHelper::counter_to_millis(history.max_10_minutes()), - TimeHelper::counter_to_millis(history.avg_10_hours()), - TimeHelper::counter_to_millis(history.max_10_hours()), - TimeHelper::counter_to_millis(history.avg_total()), - TimeHelper::counter_to_millis(history.max_total())); -} - -void XStatUnitBytes(LogTargetHandle log, const XStatSampler& sampler, const XStatSamplerHistory& history) { - log.print(" %10s: %-41s " - UINT64_FORMAT_W(9) " / " UINT64_FORMAT_W(-9) " " - UINT64_FORMAT_W(9) " / " UINT64_FORMAT_W(-9) " " - UINT64_FORMAT_W(9) " / " UINT64_FORMAT_W(-9) " " - UINT64_FORMAT_W(9) " / " UINT64_FORMAT_W(-9) " MB", - sampler.group(), - sampler.name(), - history.avg_10_seconds() / M, - history.max_10_seconds() / M, - history.avg_10_minutes() / M, - history.max_10_minutes() / M, - history.avg_10_hours() / M, - history.max_10_hours() / M, - history.avg_total() / M, - history.max_total() / M); -} - -void XStatUnitThreads(LogTargetHandle log, const XStatSampler& sampler, const XStatSamplerHistory& history) { - log.print(" %10s: %-41s " - UINT64_FORMAT_W(9) " / " UINT64_FORMAT_W(-9) " " - UINT64_FORMAT_W(9) " / " UINT64_FORMAT_W(-9) " " - UINT64_FORMAT_W(9) " / " UINT64_FORMAT_W(-9) " " - UINT64_FORMAT_W(9) " / " UINT64_FORMAT_W(-9) " threads", - sampler.group(), - sampler.name(), - history.avg_10_seconds(), - history.max_10_seconds(), - history.avg_10_minutes(), - history.max_10_minutes(), - history.avg_10_hours(), - history.max_10_hours(), - history.avg_total(), - history.max_total()); -} - -void XStatUnitBytesPerSecond(LogTargetHandle log, const XStatSampler& sampler, const XStatSamplerHistory& history) { - log.print(" %10s: %-41s " - UINT64_FORMAT_W(9) " / " UINT64_FORMAT_W(-9) " " - UINT64_FORMAT_W(9) " / " UINT64_FORMAT_W(-9) " " - UINT64_FORMAT_W(9) " / " UINT64_FORMAT_W(-9) " " - UINT64_FORMAT_W(9) " / " UINT64_FORMAT_W(-9) " MB/s", - sampler.group(), - sampler.name(), - history.avg_10_seconds() / M, - history.max_10_seconds() / M, - history.avg_10_minutes() / M, - history.max_10_minutes() / M, - history.avg_10_hours() / M, - history.max_10_hours() / M, - history.avg_total() / M, - history.max_total() / M); -} - -void XStatUnitOpsPerSecond(LogTargetHandle log, const XStatSampler& sampler, const XStatSamplerHistory& history) { - log.print(" %10s: %-41s " - UINT64_FORMAT_W(9) " / " UINT64_FORMAT_W(-9) " " - UINT64_FORMAT_W(9) " / " UINT64_FORMAT_W(-9) " " - UINT64_FORMAT_W(9) " / " UINT64_FORMAT_W(-9) " " - UINT64_FORMAT_W(9) " / " UINT64_FORMAT_W(-9) " ops/s", - sampler.group(), - sampler.name(), - history.avg_10_seconds(), - history.max_10_seconds(), - history.avg_10_minutes(), - history.max_10_minutes(), - history.avg_10_hours(), - history.max_10_hours(), - history.avg_total(), - history.max_total()); -} - -// -// Stat value -// -uintptr_t XStatValue::_base = 0; -uint32_t XStatValue::_cpu_offset = 0; - -XStatValue::XStatValue(const char* group, - const char* name, - uint32_t id, - uint32_t size) : - _group(group), - _name(name), - _id(id), - _offset(_cpu_offset) { - assert(_base == 0, "Already initialized"); - _cpu_offset += size; -} - -template -T* XStatValue::get_cpu_local(uint32_t cpu) const { - assert(_base != 0, "Not initialized"); - const uintptr_t cpu_base = _base + (_cpu_offset * cpu); - const uintptr_t value_addr = cpu_base + _offset; - return (T*)value_addr; -} - -void XStatValue::initialize() { - // Finalize and align CPU offset - _cpu_offset = align_up(_cpu_offset, (uint32_t)XCacheLineSize); - - // Allocation aligned memory - const size_t size = _cpu_offset * XCPU::count(); - _base = XUtils::alloc_aligned(XCacheLineSize, size); -} - -const char* XStatValue::group() const { - return _group; -} - -const char* XStatValue::name() const { - return _name; -} - -uint32_t XStatValue::id() const { - return _id; -} - -// -// Stat iterable value -// - -template -XStatIterableValue::XStatIterableValue(const char* group, - const char* name, - uint32_t size) : - XStatValue(group, name, _count++, size), - _next(insert()) {} - -template -T* XStatIterableValue::insert() const { - T* const next = _first; - _first = (T*)this; - return next; -} - -template -void XStatIterableValue::sort() { - T* first_unsorted = _first; - _first = nullptr; - - while (first_unsorted != nullptr) { - T* const value = first_unsorted; - first_unsorted = value->_next; - value->_next = nullptr; - - T** current = &_first; - - while (*current != nullptr) { - // First sort by group, then by name - const int group_cmp = strcmp((*current)->group(), value->group()); - if ((group_cmp > 0) || (group_cmp == 0 && strcmp((*current)->name(), value->name()) > 0)) { - break; - } - - current = &(*current)->_next; - } - value->_next = *current; - *current = value; - } -} - -// -// Stat sampler -// -XStatSampler::XStatSampler(const char* group, const char* name, XStatUnitPrinter printer) : - XStatIterableValue(group, name, sizeof(XStatSamplerData)), - _printer(printer) {} - -XStatSamplerData* XStatSampler::get() const { - return get_cpu_local(XCPU::id()); -} - -XStatSamplerData XStatSampler::collect_and_reset() const { - XStatSamplerData all; - - const uint32_t ncpus = XCPU::count(); - for (uint32_t i = 0; i < ncpus; i++) { - XStatSamplerData* const cpu_data = get_cpu_local(i); - if (cpu_data->_nsamples > 0) { - const uint64_t nsamples = Atomic::xchg(&cpu_data->_nsamples, (uint64_t)0); - const uint64_t sum = Atomic::xchg(&cpu_data->_sum, (uint64_t)0); - const uint64_t max = Atomic::xchg(&cpu_data->_max, (uint64_t)0); - all._nsamples += nsamples; - all._sum += sum; - if (all._max < max) { - all._max = max; - } - } - } - - return all; -} - -XStatUnitPrinter XStatSampler::printer() const { - return _printer; -} - -// -// Stat counter -// -XStatCounter::XStatCounter(const char* group, const char* name, XStatUnitPrinter printer) : - XStatIterableValue(group, name, sizeof(XStatCounterData)), - _sampler(group, name, printer) {} - -XStatCounterData* XStatCounter::get() const { - return get_cpu_local(XCPU::id()); -} - -void XStatCounter::sample_and_reset() const { - uint64_t counter = 0; - - const uint32_t ncpus = XCPU::count(); - for (uint32_t i = 0; i < ncpus; i++) { - XStatCounterData* const cpu_data = get_cpu_local(i); - counter += Atomic::xchg(&cpu_data->_counter, (uint64_t)0); - } - - XStatSample(_sampler, counter); -} - -// -// Stat unsampled counter -// -XStatUnsampledCounter::XStatUnsampledCounter(const char* name) : - XStatIterableValue("Unsampled", name, sizeof(XStatCounterData)) {} - -XStatCounterData* XStatUnsampledCounter::get() const { - return get_cpu_local(XCPU::id()); -} - -XStatCounterData XStatUnsampledCounter::collect_and_reset() const { - XStatCounterData all; - - const uint32_t ncpus = XCPU::count(); - for (uint32_t i = 0; i < ncpus; i++) { - XStatCounterData* const cpu_data = get_cpu_local(i); - all._counter += Atomic::xchg(&cpu_data->_counter, (uint64_t)0); - } - - return all; -} - -// -// Stat MMU (Minimum Mutator Utilization) -// -XStatMMUPause::XStatMMUPause() : - _start(0.0), - _end(0.0) {} - -XStatMMUPause::XStatMMUPause(const Ticks& start, const Ticks& end) : - _start(TimeHelper::counter_to_millis(start.value())), - _end(TimeHelper::counter_to_millis(end.value())) {} - -double XStatMMUPause::end() const { - return _end; -} - -double XStatMMUPause::overlap(double start, double end) const { - const double start_max = MAX2(start, _start); - const double end_min = MIN2(end, _end); - - if (end_min > start_max) { - // Overlap found - return end_min - start_max; - } - - // No overlap - return 0.0; -} - -size_t XStatMMU::_next = 0; -size_t XStatMMU::_npauses = 0; -XStatMMUPause XStatMMU::_pauses[200]; -double XStatMMU::_mmu_2ms = 100.0; -double XStatMMU::_mmu_5ms = 100.0; -double XStatMMU::_mmu_10ms = 100.0; -double XStatMMU::_mmu_20ms = 100.0; -double XStatMMU::_mmu_50ms = 100.0; -double XStatMMU::_mmu_100ms = 100.0; - -const XStatMMUPause& XStatMMU::pause(size_t index) { - return _pauses[(_next - index - 1) % ARRAY_SIZE(_pauses)]; -} - -double XStatMMU::calculate_mmu(double time_slice) { - const double end = pause(0).end(); - const double start = end - time_slice; - double time_paused = 0.0; - - // Find all overlapping pauses - for (size_t i = 0; i < _npauses; i++) { - const double overlap = pause(i).overlap(start, end); - if (overlap == 0.0) { - // No overlap - break; - } - - time_paused += overlap; - } - - // Calculate MMU - const double time_mutator = time_slice - time_paused; - return percent_of(time_mutator, time_slice); -} - -void XStatMMU::register_pause(const Ticks& start, const Ticks& end) { - // Add pause - const size_t index = _next++ % ARRAY_SIZE(_pauses); - _pauses[index] = XStatMMUPause(start, end); - _npauses = MIN2(_npauses + 1, ARRAY_SIZE(_pauses)); - - // Recalculate MMUs - _mmu_2ms = MIN2(_mmu_2ms, calculate_mmu(2)); - _mmu_5ms = MIN2(_mmu_5ms, calculate_mmu(5)); - _mmu_10ms = MIN2(_mmu_10ms, calculate_mmu(10)); - _mmu_20ms = MIN2(_mmu_20ms, calculate_mmu(20)); - _mmu_50ms = MIN2(_mmu_50ms, calculate_mmu(50)); - _mmu_100ms = MIN2(_mmu_100ms, calculate_mmu(100)); -} - -void XStatMMU::print() { - log_info(gc, mmu)("MMU: 2ms/%.1f%%, 5ms/%.1f%%, 10ms/%.1f%%, 20ms/%.1f%%, 50ms/%.1f%%, 100ms/%.1f%%", - _mmu_2ms, _mmu_5ms, _mmu_10ms, _mmu_20ms, _mmu_50ms, _mmu_100ms); -} - -// -// Stat phases -// -ConcurrentGCTimer XStatPhase::_timer; - -XStatPhase::XStatPhase(const char* group, const char* name) : - _sampler(group, name, XStatUnitTime) {} - -void XStatPhase::log_start(LogTargetHandle log, bool thread) const { - if (!log.is_enabled()) { - return; - } - - if (thread) { - ResourceMark rm; - log.print("%s (%s)", name(), Thread::current()->name()); - } else { - log.print("%s", name()); - } -} - -void XStatPhase::log_end(LogTargetHandle log, const Tickspan& duration, bool thread) const { - if (!log.is_enabled()) { - return; - } - - if (thread) { - ResourceMark rm; - log.print("%s (%s) %.3fms", name(), Thread::current()->name(), TimeHelper::counter_to_millis(duration.value())); - } else { - log.print("%s %.3fms", name(), TimeHelper::counter_to_millis(duration.value())); - } -} - -ConcurrentGCTimer* XStatPhase::timer() { - return &_timer; -} - -const char* XStatPhase::name() const { - return _sampler.name(); -} - -XStatPhaseCycle::XStatPhaseCycle(const char* name) : - XStatPhase("Collector", name) {} - -void XStatPhaseCycle::register_start(const Ticks& start) const { - timer()->register_gc_start(start); - - XTracer::tracer()->report_gc_start(XCollectedHeap::heap()->gc_cause(), start); - - XCollectedHeap::heap()->print_heap_before_gc(); - XCollectedHeap::heap()->trace_heap_before_gc(XTracer::tracer()); - - log_info(gc, start)("Garbage Collection (%s)", - GCCause::to_string(XCollectedHeap::heap()->gc_cause())); -} - -void XStatPhaseCycle::register_end(const Ticks& start, const Ticks& end) const { - if (XAbort::should_abort()) { - log_info(gc)("Garbage Collection (%s) Aborted", - GCCause::to_string(XCollectedHeap::heap()->gc_cause())); - return; - } - - timer()->register_gc_end(end); - - XCollectedHeap::heap()->print_heap_after_gc(); - XCollectedHeap::heap()->trace_heap_after_gc(XTracer::tracer()); - - XTracer::tracer()->report_gc_end(end, timer()->time_partitions()); - - const Tickspan duration = end - start; - XStatSample(_sampler, duration.value()); - - XStatLoad::print(); - XStatMMU::print(); - XStatMark::print(); - XStatNMethods::print(); - XStatMetaspace::print(); - XStatReferences::print(); - XStatRelocation::print(); - XStatHeap::print(); - - log_info(gc)("Garbage Collection (%s) " XSIZE_FMT "->" XSIZE_FMT, - GCCause::to_string(XCollectedHeap::heap()->gc_cause()), - XSIZE_ARGS(XStatHeap::used_at_mark_start()), - XSIZE_ARGS(XStatHeap::used_at_relocate_end())); -} - -Tickspan XStatPhasePause::_max; - -XStatPhasePause::XStatPhasePause(const char* name) : - XStatPhase("Phase", name) {} - -const Tickspan& XStatPhasePause::max() { - return _max; -} - -void XStatPhasePause::register_start(const Ticks& start) const { - timer()->register_gc_pause_start(name(), start); - - LogTarget(Debug, gc, phases, start) log; - log_start(log); -} - -void XStatPhasePause::register_end(const Ticks& start, const Ticks& end) const { - timer()->register_gc_pause_end(end); - - const Tickspan duration = end - start; - XStatSample(_sampler, duration.value()); - - // Track max pause time - if (_max < duration) { - _max = duration; - } - - // Track minimum mutator utilization - XStatMMU::register_pause(start, end); - - LogTarget(Info, gc, phases) log; - log_end(log, duration); -} - -XStatPhaseConcurrent::XStatPhaseConcurrent(const char* name) : - XStatPhase("Phase", name) {} - -void XStatPhaseConcurrent::register_start(const Ticks& start) const { - timer()->register_gc_concurrent_start(name(), start); - - LogTarget(Debug, gc, phases, start) log; - log_start(log); -} - -void XStatPhaseConcurrent::register_end(const Ticks& start, const Ticks& end) const { - if (XAbort::should_abort()) { - return; - } - - timer()->register_gc_concurrent_end(end); - - const Tickspan duration = end - start; - XStatSample(_sampler, duration.value()); - - LogTarget(Info, gc, phases) log; - log_end(log, duration); -} - -XStatSubPhase::XStatSubPhase(const char* name) : - XStatPhase("Subphase", name) {} - -void XStatSubPhase::register_start(const Ticks& start) const { - if (XThread::is_worker()) { - LogTarget(Trace, gc, phases, start) log; - log_start(log, true /* thread */); - } else { - LogTarget(Debug, gc, phases, start) log; - log_start(log, false /* thread */); - } -} - -void XStatSubPhase::register_end(const Ticks& start, const Ticks& end) const { - if (XAbort::should_abort()) { - return; - } - - XTracer::tracer()->report_thread_phase(name(), start, end); - - const Tickspan duration = end - start; - XStatSample(_sampler, duration.value()); - - if (XThread::is_worker()) { - LogTarget(Trace, gc, phases) log; - log_end(log, duration, true /* thread */); - } else { - LogTarget(Debug, gc, phases) log; - log_end(log, duration, false /* thread */); - } -} - -XStatCriticalPhase::XStatCriticalPhase(const char* name, bool verbose) : - XStatPhase("Critical", name), - _counter("Critical", name, XStatUnitOpsPerSecond), - _verbose(verbose) {} - -void XStatCriticalPhase::register_start(const Ticks& start) const { - // This is called from sensitive contexts, for example before an allocation stall - // has been resolved. This means we must not access any oops in here since that - // could lead to infinite recursion. Without access to the thread name we can't - // really log anything useful here. -} - -void XStatCriticalPhase::register_end(const Ticks& start, const Ticks& end) const { - XTracer::tracer()->report_thread_phase(name(), start, end); - - const Tickspan duration = end - start; - XStatSample(_sampler, duration.value()); - XStatInc(_counter); - - if (_verbose) { - LogTarget(Info, gc) log; - log_end(log, duration, true /* thread */); - } else { - LogTarget(Debug, gc) log; - log_end(log, duration, true /* thread */); - } -} - -// -// Stat timer -// -THREAD_LOCAL uint32_t XStatTimerDisable::_active = 0; - -// -// Stat sample/inc -// -void XStatSample(const XStatSampler& sampler, uint64_t value) { - XStatSamplerData* const cpu_data = sampler.get(); - Atomic::add(&cpu_data->_nsamples, 1u); - Atomic::add(&cpu_data->_sum, value); - - uint64_t max = cpu_data->_max; - for (;;) { - if (max >= value) { - // Not max - break; - } - - const uint64_t new_max = value; - const uint64_t prev_max = Atomic::cmpxchg(&cpu_data->_max, max, new_max); - if (prev_max == max) { - // Success - break; - } - - // Retry - max = prev_max; - } - - XTracer::tracer()->report_stat_sampler(sampler, value); -} - -void XStatInc(const XStatCounter& counter, uint64_t increment) { - XStatCounterData* const cpu_data = counter.get(); - const uint64_t value = Atomic::add(&cpu_data->_counter, increment); - - XTracer::tracer()->report_stat_counter(counter, increment, value); -} - -void XStatInc(const XStatUnsampledCounter& counter, uint64_t increment) { - XStatCounterData* const cpu_data = counter.get(); - Atomic::add(&cpu_data->_counter, increment); -} - -// -// Stat allocation rate -// -const XStatUnsampledCounter XStatAllocRate::_counter("Allocation Rate"); -TruncatedSeq XStatAllocRate::_samples(XStatAllocRate::sample_hz); -TruncatedSeq XStatAllocRate::_rate(XStatAllocRate::sample_hz); - -const XStatUnsampledCounter& XStatAllocRate::counter() { - return _counter; -} - -uint64_t XStatAllocRate::sample_and_reset() { - const XStatCounterData bytes_per_sample = _counter.collect_and_reset(); - _samples.add(bytes_per_sample._counter); - - const uint64_t bytes_per_second = _samples.sum(); - _rate.add(bytes_per_second); - - return bytes_per_second; -} - -double XStatAllocRate::predict() { - return _rate.predict_next(); -} - -double XStatAllocRate::avg() { - return _rate.avg(); -} - -double XStatAllocRate::sd() { - return _rate.sd(); -} - -// -// Stat thread -// -XStat::XStat() : - _metronome(sample_hz) { - set_name("XStat"); - create_and_start(); -} - -void XStat::sample_and_collect(XStatSamplerHistory* history) const { - // Sample counters - for (const XStatCounter* counter = XStatCounter::first(); counter != nullptr; counter = counter->next()) { - counter->sample_and_reset(); - } - - // Collect samples - for (const XStatSampler* sampler = XStatSampler::first(); sampler != nullptr; sampler = sampler->next()) { - XStatSamplerHistory& sampler_history = history[sampler->id()]; - sampler_history.add(sampler->collect_and_reset()); - } -} - -bool XStat::should_print(LogTargetHandle log) const { - static uint64_t print_at = ZStatisticsInterval; - const uint64_t now = os::elapsedTime(); - - if (now < print_at) { - return false; - } - - print_at = ((now / ZStatisticsInterval) * ZStatisticsInterval) + ZStatisticsInterval; - - return log.is_enabled(); -} - -void XStat::print(LogTargetHandle log, const XStatSamplerHistory* history) const { - // Print - log.print("=== Garbage Collection Statistics ======================================================================================================================="); - log.print(" Last 10s Last 10m Last 10h Total"); - log.print(" Avg / Max Avg / Max Avg / Max Avg / Max"); - - for (const XStatSampler* sampler = XStatSampler::first(); sampler != nullptr; sampler = sampler->next()) { - const XStatSamplerHistory& sampler_history = history[sampler->id()]; - const XStatUnitPrinter printer = sampler->printer(); - printer(log, *sampler, sampler_history); - } - - log.print("========================================================================================================================================================="); -} - -void XStat::run_service() { - XStatSamplerHistory* const history = new XStatSamplerHistory[XStatSampler::count()]; - LogTarget(Info, gc, stats) log; - - XStatSampler::sort(); - - // Main loop - while (_metronome.wait_for_tick()) { - sample_and_collect(history); - if (should_print(log)) { - print(log, history); - } - } - - delete [] history; -} - -void XStat::stop_service() { - _metronome.stop(); -} - -// -// Stat table -// -class XStatTablePrinter { -private: - static const size_t _buffer_size = 256; - - const size_t _column0_width; - const size_t _columnN_width; - char _buffer[_buffer_size]; - -public: - class XColumn { - private: - char* const _buffer; - const size_t _position; - const size_t _width; - const size_t _width_next; - - XColumn next() const { - // Insert space between columns - _buffer[_position + _width] = ' '; - return XColumn(_buffer, _position + _width + 1, _width_next, _width_next); - } - - size_t print(size_t position, const char* fmt, va_list va) { - const int res = jio_vsnprintf(_buffer + position, _buffer_size - position, fmt, va); - if (res < 0) { - return 0; - } - - return (size_t)res; - } - - public: - XColumn(char* buffer, size_t position, size_t width, size_t width_next) : - _buffer(buffer), - _position(position), - _width(width), - _width_next(width_next) {} - - XColumn left(const char* fmt, ...) ATTRIBUTE_PRINTF(2, 3) { - va_list va; - - va_start(va, fmt); - const size_t written = print(_position, fmt, va); - va_end(va); - - if (written < _width) { - // Fill empty space - memset(_buffer + _position + written, ' ', _width - written); - } - - return next(); - } - - XColumn right(const char* fmt, ...) ATTRIBUTE_PRINTF(2, 3) { - va_list va; - - va_start(va, fmt); - const size_t written = print(_position, fmt, va); - va_end(va); - - if (written > _width) { - // Line too long - return fill('?'); - } - - if (written < _width) { - // Short line, move all to right - memmove(_buffer + _position + _width - written, _buffer + _position, written); - - // Fill empty space - memset(_buffer + _position, ' ', _width - written); - } - - return next(); - } - - XColumn center(const char* fmt, ...) ATTRIBUTE_PRINTF(2, 3) { - va_list va; - - va_start(va, fmt); - const size_t written = print(_position, fmt, va); - va_end(va); - - if (written > _width) { - // Line too long - return fill('?'); - } - - if (written < _width) { - // Short line, move all to center - const size_t start_space = (_width - written) / 2; - const size_t end_space = _width - written - start_space; - memmove(_buffer + _position + start_space, _buffer + _position, written); - - // Fill empty spaces - memset(_buffer + _position, ' ', start_space); - memset(_buffer + _position + start_space + written, ' ', end_space); - } - - return next(); - } - - XColumn fill(char filler = ' ') { - memset(_buffer + _position, filler, _width); - return next(); - } - - const char* end() { - _buffer[_position] = '\0'; - return _buffer; - } - }; - -public: - XStatTablePrinter(size_t column0_width, size_t columnN_width) : - _column0_width(column0_width), - _columnN_width(columnN_width) {} - - XColumn operator()() { - return XColumn(_buffer, 0, _column0_width, _columnN_width); - } -}; - -// -// Stat cycle -// -uint64_t XStatCycle::_nwarmup_cycles = 0; -Ticks XStatCycle::_start_of_last; -Ticks XStatCycle::_end_of_last; -NumberSeq XStatCycle::_serial_time(0.7 /* alpha */); -NumberSeq XStatCycle::_parallelizable_time(0.7 /* alpha */); -uint XStatCycle::_last_active_workers = 0; - -void XStatCycle::at_start() { - _start_of_last = Ticks::now(); -} - -void XStatCycle::at_end(GCCause::Cause cause, uint active_workers) { - _end_of_last = Ticks::now(); - - if (cause == GCCause::_z_warmup) { - _nwarmup_cycles++; - } - - _last_active_workers = active_workers; - - // Calculate serial and parallelizable GC cycle times - const double duration = (_end_of_last - _start_of_last).seconds(); - const double workers_duration = XStatWorkers::get_and_reset_duration(); - const double serial_time = duration - workers_duration; - const double parallelizable_time = workers_duration * active_workers; - _serial_time.add(serial_time); - _parallelizable_time.add(parallelizable_time); -} - -bool XStatCycle::is_warm() { - return _nwarmup_cycles >= 3; -} - -uint64_t XStatCycle::nwarmup_cycles() { - return _nwarmup_cycles; -} - -bool XStatCycle::is_time_trustable() { - // The times are considered trustable if we - // have completed at least one warmup cycle. - return _nwarmup_cycles > 0; -} - -const AbsSeq& XStatCycle::serial_time() { - return _serial_time; -} - -const AbsSeq& XStatCycle::parallelizable_time() { - return _parallelizable_time; -} - -uint XStatCycle::last_active_workers() { - return _last_active_workers; -} - -double XStatCycle::time_since_last() { - if (_end_of_last.value() == 0) { - // No end recorded yet, return time since VM start - return os::elapsedTime(); - } - - const Ticks now = Ticks::now(); - const Tickspan time_since_last = now - _end_of_last; - return time_since_last.seconds(); -} - -// -// Stat workers -// -Ticks XStatWorkers::_start_of_last; -Tickspan XStatWorkers::_accumulated_duration; - -void XStatWorkers::at_start() { - _start_of_last = Ticks::now(); -} - -void XStatWorkers::at_end() { - const Ticks now = Ticks::now(); - const Tickspan duration = now - _start_of_last; - _accumulated_duration += duration; -} - -double XStatWorkers::get_and_reset_duration() { - const double duration = _accumulated_duration.seconds(); - const Ticks now = Ticks::now(); - _accumulated_duration = now - now; - return duration; -} - -// -// Stat load -// -void XStatLoad::print() { - double loadavg[3] = {}; - os::loadavg(loadavg, ARRAY_SIZE(loadavg)); - log_info(gc, load)("Load: %.2f/%.2f/%.2f", loadavg[0], loadavg[1], loadavg[2]); -} - -// -// Stat mark -// -size_t XStatMark::_nstripes; -size_t XStatMark::_nproactiveflush; -size_t XStatMark::_nterminateflush; -size_t XStatMark::_ntrycomplete; -size_t XStatMark::_ncontinue; -size_t XStatMark::_mark_stack_usage; - -void XStatMark::set_at_mark_start(size_t nstripes) { - _nstripes = nstripes; -} - -void XStatMark::set_at_mark_end(size_t nproactiveflush, - size_t nterminateflush, - size_t ntrycomplete, - size_t ncontinue) { - _nproactiveflush = nproactiveflush; - _nterminateflush = nterminateflush; - _ntrycomplete = ntrycomplete; - _ncontinue = ncontinue; -} - -void XStatMark::set_at_mark_free(size_t mark_stack_usage) { - _mark_stack_usage = mark_stack_usage; -} - -void XStatMark::print() { - log_info(gc, marking)("Mark: " - SIZE_FORMAT " stripe(s), " - SIZE_FORMAT " proactive flush(es), " - SIZE_FORMAT " terminate flush(es), " - SIZE_FORMAT " completion(s), " - SIZE_FORMAT " continuation(s) ", - _nstripes, - _nproactiveflush, - _nterminateflush, - _ntrycomplete, - _ncontinue); - - log_info(gc, marking)("Mark Stack Usage: " SIZE_FORMAT "M", _mark_stack_usage / M); -} - -// -// Stat relocation -// -XRelocationSetSelectorStats XStatRelocation::_selector_stats; -size_t XStatRelocation::_forwarding_usage; -size_t XStatRelocation::_small_in_place_count; -size_t XStatRelocation::_medium_in_place_count; - -void XStatRelocation::set_at_select_relocation_set(const XRelocationSetSelectorStats& selector_stats) { - _selector_stats = selector_stats; -} - -void XStatRelocation::set_at_install_relocation_set(size_t forwarding_usage) { - _forwarding_usage = forwarding_usage; -} - -void XStatRelocation::set_at_relocate_end(size_t small_in_place_count, size_t medium_in_place_count) { - _small_in_place_count = small_in_place_count; - _medium_in_place_count = medium_in_place_count; -} - -void XStatRelocation::print(const char* name, - const XRelocationSetSelectorGroupStats& selector_group, - size_t in_place_count) { - log_info(gc, reloc)("%s Pages: " SIZE_FORMAT " / " SIZE_FORMAT "M, Empty: " SIZE_FORMAT "M, " - "Relocated: " SIZE_FORMAT "M, In-Place: " SIZE_FORMAT, - name, - selector_group.npages_candidates(), - selector_group.total() / M, - selector_group.empty() / M, - selector_group.relocate() / M, - in_place_count); -} - -void XStatRelocation::print() { - print("Small", _selector_stats.small(), _small_in_place_count); - if (XPageSizeMedium != 0) { - print("Medium", _selector_stats.medium(), _medium_in_place_count); - } - print("Large", _selector_stats.large(), 0 /* in_place_count */); - - log_info(gc, reloc)("Forwarding Usage: " SIZE_FORMAT "M", _forwarding_usage / M); -} - -// -// Stat nmethods -// -void XStatNMethods::print() { - log_info(gc, nmethod)("NMethods: " SIZE_FORMAT " registered, " SIZE_FORMAT " unregistered", - XNMethodTable::registered_nmethods(), - XNMethodTable::unregistered_nmethods()); -} - -// -// Stat metaspace -// -void XStatMetaspace::print() { - MetaspaceCombinedStats stats = MetaspaceUtils::get_combined_statistics(); - log_info(gc, metaspace)("Metaspace: " - SIZE_FORMAT "M used, " - SIZE_FORMAT "M committed, " SIZE_FORMAT "M reserved", - stats.used() / M, - stats.committed() / M, - stats.reserved() / M); -} - -// -// Stat references -// -XStatReferences::XCount XStatReferences::_soft; -XStatReferences::XCount XStatReferences::_weak; -XStatReferences::XCount XStatReferences::_final; -XStatReferences::XCount XStatReferences::_phantom; - -void XStatReferences::set(XCount* count, size_t encountered, size_t discovered, size_t enqueued) { - count->encountered = encountered; - count->discovered = discovered; - count->enqueued = enqueued; -} - -void XStatReferences::set_soft(size_t encountered, size_t discovered, size_t enqueued) { - set(&_soft, encountered, discovered, enqueued); -} - -void XStatReferences::set_weak(size_t encountered, size_t discovered, size_t enqueued) { - set(&_weak, encountered, discovered, enqueued); -} - -void XStatReferences::set_final(size_t encountered, size_t discovered, size_t enqueued) { - set(&_final, encountered, discovered, enqueued); -} - -void XStatReferences::set_phantom(size_t encountered, size_t discovered, size_t enqueued) { - set(&_phantom, encountered, discovered, enqueued); -} - -void XStatReferences::print(const char* name, const XStatReferences::XCount& ref) { - log_info(gc, ref)("%s: " - SIZE_FORMAT " encountered, " - SIZE_FORMAT " discovered, " - SIZE_FORMAT " enqueued", - name, - ref.encountered, - ref.discovered, - ref.enqueued); -} - -void XStatReferences::print() { - print("Soft", _soft); - print("Weak", _weak); - print("Final", _final); - print("Phantom", _phantom); -} - -// -// Stat heap -// -XStatHeap::XAtInitialize XStatHeap::_at_initialize; -XStatHeap::XAtMarkStart XStatHeap::_at_mark_start; -XStatHeap::XAtMarkEnd XStatHeap::_at_mark_end; -XStatHeap::XAtRelocateStart XStatHeap::_at_relocate_start; -XStatHeap::XAtRelocateEnd XStatHeap::_at_relocate_end; - -size_t XStatHeap::capacity_high() { - return MAX4(_at_mark_start.capacity, - _at_mark_end.capacity, - _at_relocate_start.capacity, - _at_relocate_end.capacity); -} - -size_t XStatHeap::capacity_low() { - return MIN4(_at_mark_start.capacity, - _at_mark_end.capacity, - _at_relocate_start.capacity, - _at_relocate_end.capacity); -} - -size_t XStatHeap::free(size_t used) { - return _at_initialize.max_capacity - used; -} - -size_t XStatHeap::allocated(size_t used, size_t reclaimed) { - // The amount of allocated memory between point A and B is used(B) - used(A). - // However, we might also have reclaimed memory between point A and B. This - // means the current amount of used memory must be incremented by the amount - // reclaimed, so that used(B) represents the amount of used memory we would - // have had if we had not reclaimed anything. - return (used + reclaimed) - _at_mark_start.used; -} - -size_t XStatHeap::garbage(size_t reclaimed) { - return _at_mark_end.garbage - reclaimed; -} - -void XStatHeap::set_at_initialize(const XPageAllocatorStats& stats) { - _at_initialize.min_capacity = stats.min_capacity(); - _at_initialize.max_capacity = stats.max_capacity(); -} - -void XStatHeap::set_at_mark_start(const XPageAllocatorStats& stats) { - _at_mark_start.soft_max_capacity = stats.soft_max_capacity(); - _at_mark_start.capacity = stats.capacity(); - _at_mark_start.free = free(stats.used()); - _at_mark_start.used = stats.used(); -} - -void XStatHeap::set_at_mark_end(const XPageAllocatorStats& stats) { - _at_mark_end.capacity = stats.capacity(); - _at_mark_end.free = free(stats.used()); - _at_mark_end.used = stats.used(); - _at_mark_end.allocated = allocated(stats.used(), 0 /* reclaimed */); -} - -void XStatHeap::set_at_select_relocation_set(const XRelocationSetSelectorStats& stats) { - const size_t live = stats.small().live() + stats.medium().live() + stats.large().live(); - _at_mark_end.live = live; - _at_mark_end.garbage = _at_mark_start.used - live; -} - -void XStatHeap::set_at_relocate_start(const XPageAllocatorStats& stats) { - _at_relocate_start.capacity = stats.capacity(); - _at_relocate_start.free = free(stats.used()); - _at_relocate_start.used = stats.used(); - _at_relocate_start.allocated = allocated(stats.used(), stats.reclaimed()); - _at_relocate_start.garbage = garbage(stats.reclaimed()); - _at_relocate_start.reclaimed = stats.reclaimed(); -} - -void XStatHeap::set_at_relocate_end(const XPageAllocatorStats& stats, size_t non_worker_relocated) { - const size_t reclaimed = stats.reclaimed() - MIN2(non_worker_relocated, stats.reclaimed()); - - _at_relocate_end.capacity = stats.capacity(); - _at_relocate_end.capacity_high = capacity_high(); - _at_relocate_end.capacity_low = capacity_low(); - _at_relocate_end.free = free(stats.used()); - _at_relocate_end.free_high = free(stats.used_low()); - _at_relocate_end.free_low = free(stats.used_high()); - _at_relocate_end.used = stats.used(); - _at_relocate_end.used_high = stats.used_high(); - _at_relocate_end.used_low = stats.used_low(); - _at_relocate_end.allocated = allocated(stats.used(), reclaimed); - _at_relocate_end.garbage = garbage(reclaimed); - _at_relocate_end.reclaimed = reclaimed; -} - -size_t XStatHeap::max_capacity() { - return _at_initialize.max_capacity; -} - -size_t XStatHeap::used_at_mark_start() { - return _at_mark_start.used; -} - -size_t XStatHeap::used_at_relocate_end() { - return _at_relocate_end.used; -} - -void XStatHeap::print() { - log_info(gc, heap)("Min Capacity: " - XSIZE_FMT, XSIZE_ARGS(_at_initialize.min_capacity)); - log_info(gc, heap)("Max Capacity: " - XSIZE_FMT, XSIZE_ARGS(_at_initialize.max_capacity)); - log_info(gc, heap)("Soft Max Capacity: " - XSIZE_FMT, XSIZE_ARGS(_at_mark_start.soft_max_capacity)); - - XStatTablePrinter table(10, 18); - log_info(gc, heap)("%s", table() - .fill() - .center("Mark Start") - .center("Mark End") - .center("Relocate Start") - .center("Relocate End") - .center("High") - .center("Low") - .end()); - log_info(gc, heap)("%s", table() - .right("Capacity:") - .left(XTABLE_ARGS(_at_mark_start.capacity)) - .left(XTABLE_ARGS(_at_mark_end.capacity)) - .left(XTABLE_ARGS(_at_relocate_start.capacity)) - .left(XTABLE_ARGS(_at_relocate_end.capacity)) - .left(XTABLE_ARGS(_at_relocate_end.capacity_high)) - .left(XTABLE_ARGS(_at_relocate_end.capacity_low)) - .end()); - log_info(gc, heap)("%s", table() - .right("Free:") - .left(XTABLE_ARGS(_at_mark_start.free)) - .left(XTABLE_ARGS(_at_mark_end.free)) - .left(XTABLE_ARGS(_at_relocate_start.free)) - .left(XTABLE_ARGS(_at_relocate_end.free)) - .left(XTABLE_ARGS(_at_relocate_end.free_high)) - .left(XTABLE_ARGS(_at_relocate_end.free_low)) - .end()); - log_info(gc, heap)("%s", table() - .right("Used:") - .left(XTABLE_ARGS(_at_mark_start.used)) - .left(XTABLE_ARGS(_at_mark_end.used)) - .left(XTABLE_ARGS(_at_relocate_start.used)) - .left(XTABLE_ARGS(_at_relocate_end.used)) - .left(XTABLE_ARGS(_at_relocate_end.used_high)) - .left(XTABLE_ARGS(_at_relocate_end.used_low)) - .end()); - log_info(gc, heap)("%s", table() - .right("Live:") - .left(XTABLE_ARGS_NA) - .left(XTABLE_ARGS(_at_mark_end.live)) - .left(XTABLE_ARGS(_at_mark_end.live /* Same as at mark end */)) - .left(XTABLE_ARGS(_at_mark_end.live /* Same as at mark end */)) - .left(XTABLE_ARGS_NA) - .left(XTABLE_ARGS_NA) - .end()); - log_info(gc, heap)("%s", table() - .right("Allocated:") - .left(XTABLE_ARGS_NA) - .left(XTABLE_ARGS(_at_mark_end.allocated)) - .left(XTABLE_ARGS(_at_relocate_start.allocated)) - .left(XTABLE_ARGS(_at_relocate_end.allocated)) - .left(XTABLE_ARGS_NA) - .left(XTABLE_ARGS_NA) - .end()); - log_info(gc, heap)("%s", table() - .right("Garbage:") - .left(XTABLE_ARGS_NA) - .left(XTABLE_ARGS(_at_mark_end.garbage)) - .left(XTABLE_ARGS(_at_relocate_start.garbage)) - .left(XTABLE_ARGS(_at_relocate_end.garbage)) - .left(XTABLE_ARGS_NA) - .left(XTABLE_ARGS_NA) - .end()); - log_info(gc, heap)("%s", table() - .right("Reclaimed:") - .left(XTABLE_ARGS_NA) - .left(XTABLE_ARGS_NA) - .left(XTABLE_ARGS(_at_relocate_start.reclaimed)) - .left(XTABLE_ARGS(_at_relocate_end.reclaimed)) - .left(XTABLE_ARGS_NA) - .left(XTABLE_ARGS_NA) - .end()); -} diff --git a/src/hotspot/share/gc/x/xStat.hpp b/src/hotspot/share/gc/x/xStat.hpp deleted file mode 100644 index 4983e5fcab6..00000000000 --- a/src/hotspot/share/gc/x/xStat.hpp +++ /dev/null @@ -1,578 +0,0 @@ -/* - * Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XSTAT_HPP -#define SHARE_GC_X_XSTAT_HPP - -#include "gc/shared/concurrentGCThread.hpp" -#include "gc/shared/gcCause.hpp" -#include "gc/shared/gcTimer.hpp" -#include "gc/x/xMetronome.hpp" -#include "logging/logHandle.hpp" -#include "memory/allocation.hpp" -#include "utilities/globalDefinitions.hpp" -#include "utilities/numberSeq.hpp" -#include "utilities/ticks.hpp" - -class XPage; -class XPageAllocatorStats; -class XRelocationSetSelectorGroupStats; -class XRelocationSetSelectorStats; -class XStatSampler; -class XStatSamplerHistory; -struct XStatCounterData; -struct XStatSamplerData; - -// -// Stat unit printers -// -typedef void (*XStatUnitPrinter)(LogTargetHandle log, const XStatSampler&, const XStatSamplerHistory&); - -void XStatUnitTime(LogTargetHandle log, const XStatSampler& sampler, const XStatSamplerHistory& history); -void XStatUnitBytes(LogTargetHandle log, const XStatSampler& sampler, const XStatSamplerHistory& history); -void XStatUnitThreads(LogTargetHandle log, const XStatSampler& sampler, const XStatSamplerHistory& history); -void XStatUnitBytesPerSecond(LogTargetHandle log, const XStatSampler& sampler, const XStatSamplerHistory& history); -void XStatUnitOpsPerSecond(LogTargetHandle log, const XStatSampler& sampler, const XStatSamplerHistory& history); - -// -// Stat value -// -class XStatValue { -private: - static uintptr_t _base; - static uint32_t _cpu_offset; - - const char* const _group; - const char* const _name; - const uint32_t _id; - const uint32_t _offset; - -protected: - XStatValue(const char* group, - const char* name, - uint32_t id, - uint32_t size); - - template T* get_cpu_local(uint32_t cpu) const; - -public: - static void initialize(); - - const char* group() const; - const char* name() const; - uint32_t id() const; -}; - -// -// Stat iterable value -// -template -class XStatIterableValue : public XStatValue { -private: - static uint32_t _count; - static T* _first; - - T* _next; - - T* insert() const; - -protected: - XStatIterableValue(const char* group, - const char* name, - uint32_t size); - -public: - static void sort(); - - static uint32_t count() { - return _count; - } - - static T* first() { - return _first; - } - - T* next() const { - return _next; - } -}; - -template uint32_t XStatIterableValue::_count = 0; -template T* XStatIterableValue::_first = nullptr; - -// -// Stat sampler -// -class XStatSampler : public XStatIterableValue { -private: - const XStatUnitPrinter _printer; - -public: - XStatSampler(const char* group, - const char* name, - XStatUnitPrinter printer); - - XStatSamplerData* get() const; - XStatSamplerData collect_and_reset() const; - - XStatUnitPrinter printer() const; -}; - -// -// Stat counter -// -class XStatCounter : public XStatIterableValue { -private: - const XStatSampler _sampler; - -public: - XStatCounter(const char* group, - const char* name, - XStatUnitPrinter printer); - - XStatCounterData* get() const; - void sample_and_reset() const; -}; - -// -// Stat unsampled counter -// -class XStatUnsampledCounter : public XStatIterableValue { -public: - XStatUnsampledCounter(const char* name); - - XStatCounterData* get() const; - XStatCounterData collect_and_reset() const; -}; - -// -// Stat MMU (Minimum Mutator Utilization) -// -class XStatMMUPause { -private: - double _start; - double _end; - -public: - XStatMMUPause(); - XStatMMUPause(const Ticks& start, const Ticks& end); - - double end() const; - double overlap(double start, double end) const; -}; - -class XStatMMU { -private: - static size_t _next; - static size_t _npauses; - static XStatMMUPause _pauses[200]; // Record the last 200 pauses - - static double _mmu_2ms; - static double _mmu_5ms; - static double _mmu_10ms; - static double _mmu_20ms; - static double _mmu_50ms; - static double _mmu_100ms; - - static const XStatMMUPause& pause(size_t index); - static double calculate_mmu(double time_slice); - -public: - static void register_pause(const Ticks& start, const Ticks& end); - - static void print(); -}; - -// -// Stat phases -// -class XStatPhase { -private: - static ConcurrentGCTimer _timer; - -protected: - const XStatSampler _sampler; - - XStatPhase(const char* group, const char* name); - - void log_start(LogTargetHandle log, bool thread = false) const; - void log_end(LogTargetHandle log, const Tickspan& duration, bool thread = false) const; - -public: - static ConcurrentGCTimer* timer(); - - const char* name() const; - - virtual void register_start(const Ticks& start) const = 0; - virtual void register_end(const Ticks& start, const Ticks& end) const = 0; -}; - -class XStatPhaseCycle : public XStatPhase { -public: - XStatPhaseCycle(const char* name); - - virtual void register_start(const Ticks& start) const; - virtual void register_end(const Ticks& start, const Ticks& end) const; -}; - -class XStatPhasePause : public XStatPhase { -private: - static Tickspan _max; // Max pause time - -public: - XStatPhasePause(const char* name); - - static const Tickspan& max(); - - virtual void register_start(const Ticks& start) const; - virtual void register_end(const Ticks& start, const Ticks& end) const; -}; - -class XStatPhaseConcurrent : public XStatPhase { -public: - XStatPhaseConcurrent(const char* name); - - virtual void register_start(const Ticks& start) const; - virtual void register_end(const Ticks& start, const Ticks& end) const; -}; - -class XStatSubPhase : public XStatPhase { -public: - XStatSubPhase(const char* name); - - virtual void register_start(const Ticks& start) const; - virtual void register_end(const Ticks& start, const Ticks& end) const; -}; - -class XStatCriticalPhase : public XStatPhase { -private: - const XStatCounter _counter; - const bool _verbose; - -public: - XStatCriticalPhase(const char* name, bool verbose = true); - - virtual void register_start(const Ticks& start) const; - virtual void register_end(const Ticks& start, const Ticks& end) const; -}; - -// -// Stat timer -// -class XStatTimerDisable : public StackObj { -private: - static THREAD_LOCAL uint32_t _active; - -public: - XStatTimerDisable() { - _active++; - } - - ~XStatTimerDisable() { - _active--; - } - - static bool is_active() { - return _active > 0; - } -}; - -class XStatTimer : public StackObj { -private: - const bool _enabled; - const XStatPhase& _phase; - const Ticks _start; - -public: - XStatTimer(const XStatPhase& phase) : - _enabled(!XStatTimerDisable::is_active()), - _phase(phase), - _start(Ticks::now()) { - if (_enabled) { - _phase.register_start(_start); - } - } - - ~XStatTimer() { - if (_enabled) { - const Ticks end = Ticks::now(); - _phase.register_end(_start, end); - } - } -}; - -// -// Stat sample/increment -// -void XStatSample(const XStatSampler& sampler, uint64_t value); -void XStatInc(const XStatCounter& counter, uint64_t increment = 1); -void XStatInc(const XStatUnsampledCounter& counter, uint64_t increment = 1); - -// -// Stat allocation rate -// -class XStatAllocRate : public AllStatic { -private: - static const XStatUnsampledCounter _counter; - static TruncatedSeq _samples; - static TruncatedSeq _rate; - -public: - static const uint64_t sample_hz = 10; - - static const XStatUnsampledCounter& counter(); - static uint64_t sample_and_reset(); - - static double predict(); - static double avg(); - static double sd(); -}; - -// -// Stat thread -// -class XStat : public ConcurrentGCThread { -private: - static const uint64_t sample_hz = 1; - - XMetronome _metronome; - - void sample_and_collect(XStatSamplerHistory* history) const; - bool should_print(LogTargetHandle log) const; - void print(LogTargetHandle log, const XStatSamplerHistory* history) const; - -protected: - virtual void run_service(); - virtual void stop_service(); - -public: - XStat(); -}; - -// -// Stat cycle -// -class XStatCycle : public AllStatic { -private: - static uint64_t _nwarmup_cycles; - static Ticks _start_of_last; - static Ticks _end_of_last; - static NumberSeq _serial_time; - static NumberSeq _parallelizable_time; - static uint _last_active_workers; - -public: - static void at_start(); - static void at_end(GCCause::Cause cause, uint active_workers); - - static bool is_warm(); - static uint64_t nwarmup_cycles(); - - static bool is_time_trustable(); - static const AbsSeq& serial_time(); - static const AbsSeq& parallelizable_time(); - - static uint last_active_workers(); - - static double time_since_last(); -}; - -// -// Stat workers -// -class XStatWorkers : public AllStatic { -private: - static Ticks _start_of_last; - static Tickspan _accumulated_duration; - -public: - static void at_start(); - static void at_end(); - - static double get_and_reset_duration(); -}; - -// -// Stat load -// -class XStatLoad : public AllStatic { -public: - static void print(); -}; - -// -// Stat mark -// -class XStatMark : public AllStatic { -private: - static size_t _nstripes; - static size_t _nproactiveflush; - static size_t _nterminateflush; - static size_t _ntrycomplete; - static size_t _ncontinue; - static size_t _mark_stack_usage; - -public: - static void set_at_mark_start(size_t nstripes); - static void set_at_mark_end(size_t nproactiveflush, - size_t nterminateflush, - size_t ntrycomplete, - size_t ncontinue); - static void set_at_mark_free(size_t mark_stack_usage); - - static void print(); -}; - -// -// Stat relocation -// -class XStatRelocation : public AllStatic { -private: - static XRelocationSetSelectorStats _selector_stats; - static size_t _forwarding_usage; - static size_t _small_in_place_count; - static size_t _medium_in_place_count; - - static void print(const char* name, - const XRelocationSetSelectorGroupStats& selector_group, - size_t in_place_count); - -public: - static void set_at_select_relocation_set(const XRelocationSetSelectorStats& selector_stats); - static void set_at_install_relocation_set(size_t forwarding_usage); - static void set_at_relocate_end(size_t small_in_place_count, size_t medium_in_place_count); - - static void print(); -}; - -// -// Stat nmethods -// -class XStatNMethods : public AllStatic { -public: - static void print(); -}; - -// -// Stat metaspace -// -class XStatMetaspace : public AllStatic { -public: - static void print(); -}; - -// -// Stat references -// -class XStatReferences : public AllStatic { -private: - static struct XCount { - size_t encountered; - size_t discovered; - size_t enqueued; - } _soft, _weak, _final, _phantom; - - static void set(XCount* count, size_t encountered, size_t discovered, size_t enqueued); - static void print(const char* name, const XCount& ref); - -public: - static void set_soft(size_t encountered, size_t discovered, size_t enqueued); - static void set_weak(size_t encountered, size_t discovered, size_t enqueued); - static void set_final(size_t encountered, size_t discovered, size_t enqueued); - static void set_phantom(size_t encountered, size_t discovered, size_t enqueued); - - static void print(); -}; - -// -// Stat heap -// -class XStatHeap : public AllStatic { -private: - static struct XAtInitialize { - size_t min_capacity; - size_t max_capacity; - } _at_initialize; - - static struct XAtMarkStart { - size_t soft_max_capacity; - size_t capacity; - size_t free; - size_t used; - } _at_mark_start; - - static struct XAtMarkEnd { - size_t capacity; - size_t free; - size_t used; - size_t live; - size_t allocated; - size_t garbage; - } _at_mark_end; - - static struct XAtRelocateStart { - size_t capacity; - size_t free; - size_t used; - size_t allocated; - size_t garbage; - size_t reclaimed; - } _at_relocate_start; - - static struct XAtRelocateEnd { - size_t capacity; - size_t capacity_high; - size_t capacity_low; - size_t free; - size_t free_high; - size_t free_low; - size_t used; - size_t used_high; - size_t used_low; - size_t allocated; - size_t garbage; - size_t reclaimed; - } _at_relocate_end; - - static size_t capacity_high(); - static size_t capacity_low(); - static size_t free(size_t used); - static size_t allocated(size_t used, size_t reclaimed); - static size_t garbage(size_t reclaimed); - -public: - static void set_at_initialize(const XPageAllocatorStats& stats); - static void set_at_mark_start(const XPageAllocatorStats& stats); - static void set_at_mark_end(const XPageAllocatorStats& stats); - static void set_at_select_relocation_set(const XRelocationSetSelectorStats& stats); - static void set_at_relocate_start(const XPageAllocatorStats& stats); - static void set_at_relocate_end(const XPageAllocatorStats& stats, size_t non_worker_relocated); - - static size_t max_capacity(); - static size_t used_at_mark_start(); - static size_t used_at_relocate_end(); - - static void print(); -}; - -#endif // SHARE_GC_X_XSTAT_HPP diff --git a/src/hotspot/share/gc/x/xTask.cpp b/src/hotspot/share/gc/x/xTask.cpp deleted file mode 100644 index 25f6d12f33d..00000000000 --- a/src/hotspot/share/gc/x/xTask.cpp +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xTask.hpp" -#include "gc/x/xThread.hpp" - -XTask::Task::Task(XTask* task, const char* name) : - WorkerTask(name), - _task(task) {} - -void XTask::Task::work(uint worker_id) { - XThread::set_worker_id(worker_id); - _task->work(); - XThread::clear_worker_id(); -} - -XTask::XTask(const char* name) : - _worker_task(this, name) {} - -const char* XTask::name() const { - return _worker_task.name(); -} - -WorkerTask* XTask::worker_task() { - return &_worker_task; -} diff --git a/src/hotspot/share/gc/x/xTask.hpp b/src/hotspot/share/gc/x/xTask.hpp deleted file mode 100644 index 08adaed83e5..00000000000 --- a/src/hotspot/share/gc/x/xTask.hpp +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XTASK_HPP -#define SHARE_GC_X_XTASK_HPP - -#include "gc/shared/workerThread.hpp" -#include "memory/allocation.hpp" - -class XTask : public StackObj { -private: - class Task : public WorkerTask { - private: - XTask* const _task; - - public: - Task(XTask* task, const char* name); - - virtual void work(uint worker_id); - }; - - Task _worker_task; - -public: - XTask(const char* name); - - const char* name() const; - WorkerTask* worker_task(); - - virtual void work() = 0; -}; - -#endif // SHARE_GC_X_XTASK_HPP diff --git a/src/hotspot/share/gc/x/xThread.cpp b/src/hotspot/share/gc/x/xThread.cpp deleted file mode 100644 index fb9785690cf..00000000000 --- a/src/hotspot/share/gc/x/xThread.cpp +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xThread.inline.hpp" -#include "runtime/javaThread.hpp" -#include "runtime/nonJavaThread.hpp" -#include "utilities/debug.hpp" - -THREAD_LOCAL bool XThread::_initialized; -THREAD_LOCAL uintptr_t XThread::_id; -THREAD_LOCAL bool XThread::_is_vm; -THREAD_LOCAL bool XThread::_is_java; -THREAD_LOCAL bool XThread::_is_worker; -THREAD_LOCAL uint XThread::_worker_id; - -void XThread::initialize() { - assert(!_initialized, "Already initialized"); - const Thread* const thread = Thread::current(); - _initialized = true; - _id = (uintptr_t)thread; - _is_vm = thread->is_VM_thread(); - _is_java = thread->is_Java_thread(); - _is_worker = false; - _worker_id = (uint)-1; -} - -const char* XThread::name() { - const Thread* const thread = Thread::current(); - if (thread->is_Named_thread()) { - const NamedThread* const named = (const NamedThread*)thread; - return named->name(); - } else if (thread->is_Java_thread()) { - return "Java"; - } - - return "Unknown"; -} - -void XThread::set_worker() { - ensure_initialized(); - _is_worker = true; -} - -bool XThread::has_worker_id() { - return _initialized && - _is_worker && - _worker_id != (uint)-1; -} - -void XThread::set_worker_id(uint worker_id) { - ensure_initialized(); - assert(!has_worker_id(), "Worker id already initialized"); - _worker_id = worker_id; -} - -void XThread::clear_worker_id() { - assert(has_worker_id(), "Worker id not initialized"); - _worker_id = (uint)-1; -} diff --git a/src/hotspot/share/gc/x/xThread.hpp b/src/hotspot/share/gc/x/xThread.hpp deleted file mode 100644 index 24df6ce1ca2..00000000000 --- a/src/hotspot/share/gc/x/xThread.hpp +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright (c) 2015, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XTHREAD_HPP -#define SHARE_GC_X_XTHREAD_HPP - -#include "memory/allStatic.hpp" -#include "utilities/globalDefinitions.hpp" - -class XThread : public AllStatic { - friend class XTask; - friend class XWorkersInitializeTask; - friend class XRuntimeWorkersInitializeTask; - -private: - static THREAD_LOCAL bool _initialized; - static THREAD_LOCAL uintptr_t _id; - static THREAD_LOCAL bool _is_vm; - static THREAD_LOCAL bool _is_java; - static THREAD_LOCAL bool _is_worker; - static THREAD_LOCAL uint _worker_id; - - static void initialize(); - static void ensure_initialized(); - - static void set_worker(); - - static bool has_worker_id(); - static void set_worker_id(uint worker_id); - static void clear_worker_id(); - -public: - static const char* name(); - static uintptr_t id(); - static bool is_vm(); - static bool is_java(); - static bool is_worker(); - static uint worker_id(); -}; - -#endif // SHARE_GC_X_XTHREAD_HPP diff --git a/src/hotspot/share/gc/x/xThread.inline.hpp b/src/hotspot/share/gc/x/xThread.inline.hpp deleted file mode 100644 index eb6ff63e5f7..00000000000 --- a/src/hotspot/share/gc/x/xThread.inline.hpp +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XTHREAD_INLINE_HPP -#define SHARE_GC_X_XTHREAD_INLINE_HPP - -#include "gc/x/xThread.hpp" - -#include "utilities/debug.hpp" - -inline void XThread::ensure_initialized() { - if (!_initialized) { - initialize(); - } -} - -inline uintptr_t XThread::id() { - ensure_initialized(); - return _id; -} - -inline bool XThread::is_vm() { - ensure_initialized(); - return _is_vm; -} - -inline bool XThread::is_java() { - ensure_initialized(); - return _is_java; -} - -inline bool XThread::is_worker() { - ensure_initialized(); - return _is_worker; -} - -inline uint XThread::worker_id() { - assert(has_worker_id(), "Worker id not initialized"); - return _worker_id; -} - -#endif // SHARE_GC_X_XTHREAD_INLINE_HPP diff --git a/src/hotspot/share/gc/x/xThreadLocalAllocBuffer.cpp b/src/hotspot/share/gc/x/xThreadLocalAllocBuffer.cpp deleted file mode 100644 index 7dc0a128b64..00000000000 --- a/src/hotspot/share/gc/x/xThreadLocalAllocBuffer.cpp +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright (c) 2018, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/shared/tlab_globals.hpp" -#include "gc/x/xAddress.inline.hpp" -#include "gc/x/xStackWatermark.hpp" -#include "gc/x/xThreadLocalAllocBuffer.hpp" -#include "gc/x/xValue.inline.hpp" -#include "runtime/globals.hpp" -#include "runtime/javaThread.hpp" -#include "runtime/stackWatermarkSet.inline.hpp" - -XPerWorker* XThreadLocalAllocBuffer::_stats = nullptr; - -void XThreadLocalAllocBuffer::initialize() { - if (UseTLAB) { - assert(_stats == nullptr, "Already initialized"); - _stats = new XPerWorker(); - reset_statistics(); - } -} - -void XThreadLocalAllocBuffer::reset_statistics() { - if (UseTLAB) { - XPerWorkerIterator iter(_stats); - for (ThreadLocalAllocStats* stats; iter.next(&stats);) { - stats->reset(); - } - } -} - -void XThreadLocalAllocBuffer::publish_statistics() { - if (UseTLAB) { - ThreadLocalAllocStats total; - - XPerWorkerIterator iter(_stats); - for (ThreadLocalAllocStats* stats; iter.next(&stats);) { - total.update(*stats); - } - - total.publish(); - } -} - -static void fixup_address(HeapWord** p) { - *p = (HeapWord*)XAddress::good_or_null((uintptr_t)*p); -} - -void XThreadLocalAllocBuffer::retire(JavaThread* thread, ThreadLocalAllocStats* stats) { - if (UseTLAB) { - stats->reset(); - thread->tlab().addresses_do(fixup_address); - thread->tlab().retire(stats); - if (ResizeTLAB) { - thread->tlab().resize(); - } - } -} - -void XThreadLocalAllocBuffer::remap(JavaThread* thread) { - if (UseTLAB) { - thread->tlab().addresses_do(fixup_address); - } -} - -void XThreadLocalAllocBuffer::update_stats(JavaThread* thread) { - if (UseTLAB) { - XStackWatermark* const watermark = StackWatermarkSet::get(thread, StackWatermarkKind::gc); - _stats->addr()->update(watermark->stats()); - } -} diff --git a/src/hotspot/share/gc/x/xThreadLocalAllocBuffer.hpp b/src/hotspot/share/gc/x/xThreadLocalAllocBuffer.hpp deleted file mode 100644 index 521f4da1909..00000000000 --- a/src/hotspot/share/gc/x/xThreadLocalAllocBuffer.hpp +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (c) 2018, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XTHREADLOCALALLOCBUFFER_HPP -#define SHARE_GC_X_XTHREADLOCALALLOCBUFFER_HPP - -#include "gc/shared/threadLocalAllocBuffer.hpp" -#include "gc/x/xValue.hpp" -#include "memory/allStatic.hpp" - -class JavaThread; - -class XThreadLocalAllocBuffer : public AllStatic { -private: - static XPerWorker* _stats; - -public: - static void initialize(); - - static void reset_statistics(); - static void publish_statistics(); - - static void retire(JavaThread* thread, ThreadLocalAllocStats* stats); - static void remap(JavaThread* thread); - static void update_stats(JavaThread* thread); -}; - -#endif // SHARE_GC_X_XTHREADLOCALALLOCBUFFER_HPP diff --git a/src/hotspot/share/gc/x/xThreadLocalData.hpp b/src/hotspot/share/gc/x/xThreadLocalData.hpp deleted file mode 100644 index adc72f6ca76..00000000000 --- a/src/hotspot/share/gc/x/xThreadLocalData.hpp +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XTHREADLOCALDATA_HPP -#define SHARE_GC_X_XTHREADLOCALDATA_HPP - -#include "gc/x/xMarkStack.hpp" -#include "gc/x/xGlobals.hpp" -#include "runtime/javaThread.hpp" -#include "utilities/debug.hpp" -#include "utilities/sizes.hpp" - -class XThreadLocalData { -private: - uintptr_t _address_bad_mask; - XMarkThreadLocalStacks _stacks; - oop* _invisible_root; - - XThreadLocalData() : - _address_bad_mask(0), - _stacks(), - _invisible_root(nullptr) {} - - static XThreadLocalData* data(Thread* thread) { - return thread->gc_data(); - } - -public: - static void create(Thread* thread) { - new (data(thread)) XThreadLocalData(); - } - - static void destroy(Thread* thread) { - data(thread)->~XThreadLocalData(); - } - - static void set_address_bad_mask(Thread* thread, uintptr_t mask) { - data(thread)->_address_bad_mask = mask; - } - - static XMarkThreadLocalStacks* stacks(Thread* thread) { - return &data(thread)->_stacks; - } - - static void set_invisible_root(Thread* thread, oop* root) { - assert(data(thread)->_invisible_root == nullptr, "Already set"); - data(thread)->_invisible_root = root; - } - - static void clear_invisible_root(Thread* thread) { - assert(data(thread)->_invisible_root != nullptr, "Should be set"); - data(thread)->_invisible_root = nullptr; - } - - template - static void do_invisible_root(Thread* thread, T f) { - if (data(thread)->_invisible_root != nullptr) { - f(data(thread)->_invisible_root); - } - } - - static ByteSize address_bad_mask_offset() { - return Thread::gc_data_offset() + byte_offset_of(XThreadLocalData, _address_bad_mask); - } - - static ByteSize nmethod_disarmed_offset() { - return address_bad_mask_offset() + in_ByteSize(XAddressBadMaskHighOrderBitsOffset); - } -}; - -#endif // SHARE_GC_X_XTHREADLOCALDATA_HPP diff --git a/src/hotspot/share/gc/x/xTracer.cpp b/src/hotspot/share/gc/x/xTracer.cpp deleted file mode 100644 index 3a0bd2b00e3..00000000000 --- a/src/hotspot/share/gc/x/xTracer.cpp +++ /dev/null @@ -1,146 +0,0 @@ -/* - * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/shared/gcId.hpp" -#include "gc/x/xGlobals.hpp" -#include "gc/x/xStat.hpp" -#include "gc/x/xTracer.hpp" -#include "jfr/jfrEvents.hpp" -#include "runtime/safepointVerifiers.hpp" -#include "utilities/debug.hpp" -#include "utilities/macros.hpp" -#if INCLUDE_JFR -#include "jfr/metadata/jfrSerializer.hpp" -#endif - -#if INCLUDE_JFR - -class XPageTypeConstant : public JfrSerializer { -public: - virtual void serialize(JfrCheckpointWriter& writer) { - writer.write_count(3); - writer.write_key(XPageTypeSmall); - writer.write("Small"); - writer.write_key(XPageTypeMedium); - writer.write("Medium"); - writer.write_key(XPageTypeLarge); - writer.write("Large"); - } -}; - -class XStatisticsCounterTypeConstant : public JfrSerializer { -public: - virtual void serialize(JfrCheckpointWriter& writer) { - writer.write_count(XStatCounter::count()); - for (XStatCounter* counter = XStatCounter::first(); counter != nullptr; counter = counter->next()) { - writer.write_key(counter->id()); - writer.write(counter->name()); - } - } -}; - -class XStatisticsSamplerTypeConstant : public JfrSerializer { -public: - virtual void serialize(JfrCheckpointWriter& writer) { - writer.write_count(XStatSampler::count()); - for (XStatSampler* sampler = XStatSampler::first(); sampler != nullptr; sampler = sampler->next()) { - writer.write_key(sampler->id()); - writer.write(sampler->name()); - } - } -}; - -static void register_jfr_type_serializers() { - JfrSerializer::register_serializer(TYPE_ZPAGETYPETYPE, - true /* permit_cache */, - new XPageTypeConstant()); - JfrSerializer::register_serializer(TYPE_ZSTATISTICSCOUNTERTYPE, - true /* permit_cache */, - new XStatisticsCounterTypeConstant()); - JfrSerializer::register_serializer(TYPE_ZSTATISTICSSAMPLERTYPE, - true /* permit_cache */, - new XStatisticsSamplerTypeConstant()); -} - -#endif // INCLUDE_JFR - -XTracer* XTracer::_tracer = nullptr; - -XTracer::XTracer() : - GCTracer(Z) {} - -void XTracer::initialize() { - assert(_tracer == nullptr, "Already initialized"); - _tracer = new XTracer(); - JFR_ONLY(register_jfr_type_serializers();) -} - -void XTracer::send_stat_counter(const XStatCounter& counter, uint64_t increment, uint64_t value) { - NoSafepointVerifier nsv; - - EventZStatisticsCounter e; - if (e.should_commit()) { - e.set_id(counter.id()); - e.set_increment(increment); - e.set_value(value); - e.commit(); - } -} - -void XTracer::send_stat_sampler(const XStatSampler& sampler, uint64_t value) { - NoSafepointVerifier nsv; - - EventZStatisticsSampler e; - if (e.should_commit()) { - e.set_id(sampler.id()); - e.set_value(value); - e.commit(); - } -} - -void XTracer::send_thread_phase(const char* name, const Ticks& start, const Ticks& end) { - NoSafepointVerifier nsv; - - EventZThreadPhase e(UNTIMED); - if (e.should_commit()) { - e.set_gcId(GCId::current_or_undefined()); - e.set_name(name); - e.set_starttime(start); - e.set_endtime(end); - e.commit(); - } -} - -void XTracer::send_thread_debug(const char* name, const Ticks& start, const Ticks& end) { - NoSafepointVerifier nsv; - - EventZThreadDebug e(UNTIMED); - if (e.should_commit()) { - e.set_gcId(GCId::current_or_undefined()); - e.set_name(name); - e.set_starttime(start); - e.set_endtime(end); - e.commit(); - } -} diff --git a/src/hotspot/share/gc/x/xTracer.hpp b/src/hotspot/share/gc/x/xTracer.hpp deleted file mode 100644 index d9219d79c51..00000000000 --- a/src/hotspot/share/gc/x/xTracer.hpp +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright (c) 2016, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XTRACER_HPP -#define SHARE_GC_X_XTRACER_HPP - -#include "gc/shared/gcTrace.hpp" - -class XStatCounter; -class XStatPhase; -class XStatSampler; - -class XTracer : public GCTracer, public CHeapObj { -private: - static XTracer* _tracer; - - XTracer(); - - void send_stat_counter(const XStatCounter& counter, uint64_t increment, uint64_t value); - void send_stat_sampler(const XStatSampler& sampler, uint64_t value); - void send_thread_phase(const char* name, const Ticks& start, const Ticks& end); - void send_thread_debug(const char* name, const Ticks& start, const Ticks& end); - -public: - static XTracer* tracer(); - static void initialize(); - - void report_stat_counter(const XStatCounter& counter, uint64_t increment, uint64_t value); - void report_stat_sampler(const XStatSampler& sampler, uint64_t value); - void report_thread_phase(const char* name, const Ticks& start, const Ticks& end); - void report_thread_debug(const char* name, const Ticks& start, const Ticks& end); -}; - -// For temporary latency measurements during development and debugging -class XTraceThreadDebug : public StackObj { -private: - const Ticks _start; - const char* const _name; - -public: - XTraceThreadDebug(const char* name); - ~XTraceThreadDebug(); -}; - -#endif // SHARE_GC_X_XTRACER_HPP diff --git a/src/hotspot/share/gc/x/xTracer.inline.hpp b/src/hotspot/share/gc/x/xTracer.inline.hpp deleted file mode 100644 index 22dd2e2b6fb..00000000000 --- a/src/hotspot/share/gc/x/xTracer.inline.hpp +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright (c) 2016, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XTRACER_INLINE_HPP -#define SHARE_GC_X_XTRACER_INLINE_HPP - -#include "gc/x/xTracer.hpp" - -#include "jfr/jfrEvents.hpp" - -inline XTracer* XTracer::tracer() { - return _tracer; -} - -inline void XTracer::report_stat_counter(const XStatCounter& counter, uint64_t increment, uint64_t value) { - if (EventZStatisticsCounter::is_enabled()) { - send_stat_counter(counter, increment, value); - } -} - -inline void XTracer::report_stat_sampler(const XStatSampler& sampler, uint64_t value) { - if (EventZStatisticsSampler::is_enabled()) { - send_stat_sampler(sampler, value); - } -} - -inline void XTracer::report_thread_phase(const char* name, const Ticks& start, const Ticks& end) { - if (EventZThreadPhase::is_enabled()) { - send_thread_phase(name, start, end); - } -} - -inline void XTracer::report_thread_debug(const char* name, const Ticks& start, const Ticks& end) { - if (EventZThreadDebug::is_enabled()) { - send_thread_debug(name, start, end); - } -} - -inline XTraceThreadDebug::XTraceThreadDebug(const char* name) : - _start(Ticks::now()), - _name(name) {} - -inline XTraceThreadDebug::~XTraceThreadDebug() { - XTracer::tracer()->report_thread_debug(_name, _start, Ticks::now()); -} - -#endif // SHARE_GC_X_XTRACER_INLINE_HPP diff --git a/src/hotspot/share/gc/x/xUncommitter.cpp b/src/hotspot/share/gc/x/xUncommitter.cpp deleted file mode 100644 index ffd57b8c2a8..00000000000 --- a/src/hotspot/share/gc/x/xUncommitter.cpp +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright (c) 2019, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/shared/gc_globals.hpp" -#include "gc/x/xHeap.inline.hpp" -#include "gc/x/xLock.inline.hpp" -#include "gc/x/xStat.hpp" -#include "gc/x/xUncommitter.hpp" -#include "jfr/jfrEvents.hpp" -#include "logging/log.hpp" - -static const XStatCounter XCounterUncommit("Memory", "Uncommit", XStatUnitBytesPerSecond); - -XUncommitter::XUncommitter(XPageAllocator* page_allocator) : - _page_allocator(page_allocator), - _lock(), - _stop(false) { - set_name("XUncommitter"); - create_and_start(); -} - -bool XUncommitter::wait(uint64_t timeout) const { - XLocker locker(&_lock); - while (!ZUncommit && !_stop) { - _lock.wait(); - } - - if (!_stop && timeout > 0) { - log_debug(gc, heap)("Uncommit Timeout: " UINT64_FORMAT "s", timeout); - _lock.wait(timeout * MILLIUNITS); - } - - return !_stop; -} - -bool XUncommitter::should_continue() const { - XLocker locker(&_lock); - return !_stop; -} - -void XUncommitter::run_service() { - uint64_t timeout = 0; - - while (wait(timeout)) { - EventZUncommit event; - size_t uncommitted = 0; - - while (should_continue()) { - // Uncommit chunk - const size_t flushed = _page_allocator->uncommit(&timeout); - if (flushed == 0) { - // Done - break; - } - - uncommitted += flushed; - } - - if (uncommitted > 0) { - // Update statistics - XStatInc(XCounterUncommit, uncommitted); - log_info(gc, heap)("Uncommitted: " SIZE_FORMAT "M(%.0f%%)", - uncommitted / M, percent_of(uncommitted, XHeap::heap()->max_capacity())); - - // Send event - event.commit(uncommitted); - } - } -} - -void XUncommitter::stop_service() { - XLocker locker(&_lock); - _stop = true; - _lock.notify_all(); -} diff --git a/src/hotspot/share/gc/x/xUncommitter.hpp b/src/hotspot/share/gc/x/xUncommitter.hpp deleted file mode 100644 index 9f6212fa98d..00000000000 --- a/src/hotspot/share/gc/x/xUncommitter.hpp +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (c) 2019, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XUNCOMMITTER_HPP -#define SHARE_GC_X_XUNCOMMITTER_HPP - -#include "gc/shared/concurrentGCThread.hpp" -#include "gc/x/xLock.hpp" - -class XPageAllocation; - -class XUncommitter : public ConcurrentGCThread { -private: - XPageAllocator* const _page_allocator; - mutable XConditionLock _lock; - bool _stop; - - bool wait(uint64_t timeout) const; - bool should_continue() const; - -protected: - virtual void run_service(); - virtual void stop_service(); - -public: - XUncommitter(XPageAllocator* page_allocator); -}; - -#endif // SHARE_GC_X_XUNCOMMITTER_HPP diff --git a/src/hotspot/share/gc/x/xUnload.cpp b/src/hotspot/share/gc/x/xUnload.cpp deleted file mode 100644 index c501ace7d14..00000000000 --- a/src/hotspot/share/gc/x/xUnload.cpp +++ /dev/null @@ -1,172 +0,0 @@ -/* - * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "classfile/classLoaderDataGraph.hpp" -#include "classfile/systemDictionary.hpp" -#include "code/codeBehaviours.hpp" -#include "code/codeCache.hpp" -#include "code/dependencyContext.hpp" -#include "gc/shared/gcBehaviours.hpp" -#include "gc/shared/suspendibleThreadSet.hpp" -#include "gc/x/xBarrier.inline.hpp" -#include "gc/x/xLock.inline.hpp" -#include "gc/x/xNMethod.hpp" -#include "gc/x/xStat.hpp" -#include "gc/x/xUnload.hpp" -#include "memory/metaspaceUtils.hpp" -#include "oops/access.inline.hpp" - -static const XStatSubPhase XSubPhaseConcurrentClassesUnlink("Concurrent Classes Unlink"); -static const XStatSubPhase XSubPhaseConcurrentClassesPurge("Concurrent Classes Purge"); - -class XPhantomIsAliveObjectClosure : public BoolObjectClosure { -public: - virtual bool do_object_b(oop o) { - return XBarrier::is_alive_barrier_on_phantom_oop(o); - } -}; - -class XIsUnloadingOopClosure : public OopClosure { -private: - XPhantomIsAliveObjectClosure _is_alive; - bool _is_unloading; - -public: - XIsUnloadingOopClosure() : - _is_alive(), - _is_unloading(false) {} - - virtual void do_oop(oop* p) { - const oop o = RawAccess<>::oop_load(p); - if (o != nullptr && !_is_alive.do_object_b(o)) { - _is_unloading = true; - } - } - - virtual void do_oop(narrowOop* p) { - ShouldNotReachHere(); - } - - bool is_unloading() const { - return _is_unloading; - } -}; - -class XIsUnloadingBehaviour : public IsUnloadingBehaviour { -public: - virtual bool has_dead_oop(nmethod* nm) const { - XReentrantLock* const lock = XNMethod::lock_for_nmethod(nm); - XLocker locker(lock); - XIsUnloadingOopClosure cl; - XNMethod::nmethod_oops_do_inner(nm, &cl); - return cl.is_unloading(); - } -}; - -class XCompiledICProtectionBehaviour : public CompiledICProtectionBehaviour { -public: - virtual bool lock(nmethod* nm) { - XReentrantLock* const lock = XNMethod::ic_lock_for_nmethod(nm); - lock->lock(); - return true; - } - - virtual void unlock(nmethod* nm) { - XReentrantLock* const lock = XNMethod::ic_lock_for_nmethod(nm); - lock->unlock(); - } - - virtual bool is_safe(nmethod* nm) { - if (SafepointSynchronize::is_at_safepoint() || nm->is_unloading()) { - return true; - } - - XReentrantLock* const lock = XNMethod::ic_lock_for_nmethod(nm); - return lock->is_owned(); - } -}; - -XUnload::XUnload(XWorkers* workers) : - _workers(workers) { - - if (!ClassUnloading) { - return; - } - - static XIsUnloadingBehaviour is_unloading_behaviour; - IsUnloadingBehaviour::set_current(&is_unloading_behaviour); - - static XCompiledICProtectionBehaviour ic_protection_behaviour; - CompiledICProtectionBehaviour::set_current(&ic_protection_behaviour); -} - -void XUnload::prepare() { - if (!ClassUnloading) { - return; - } - - CodeCache::increment_unloading_cycle(); - DependencyContext::cleaning_start(); -} - -void XUnload::unlink() { - if (!ClassUnloading) { - return; - } - - XStatTimer timer(XSubPhaseConcurrentClassesUnlink); - SuspendibleThreadSetJoiner sts; - bool unloading_occurred; - - { - MutexLocker ml(ClassLoaderDataGraph_lock); - unloading_occurred = SystemDictionary::do_unloading(XStatPhase::timer()); - } - - Klass::clean_weak_klass_links(unloading_occurred); - XNMethod::unlink(_workers, unloading_occurred); - DependencyContext::cleaning_end(); -} - -void XUnload::purge() { - if (!ClassUnloading) { - return; - } - - XStatTimer timer(XSubPhaseConcurrentClassesPurge); - - { - SuspendibleThreadSetJoiner sts; - XNMethod::purge(); - } - - ClassLoaderDataGraph::purge(/*at_safepoint*/false); - CodeCache::purge_exception_caches(); -} - -void XUnload::finish() { - // Resize and verify metaspace - MetaspaceGC::compute_new_size(); - DEBUG_ONLY(MetaspaceUtils::verify();) -} diff --git a/src/hotspot/share/gc/x/xUnload.hpp b/src/hotspot/share/gc/x/xUnload.hpp deleted file mode 100644 index df6ba7ed2eb..00000000000 --- a/src/hotspot/share/gc/x/xUnload.hpp +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) 2018, 2019, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XUNLOAD_HPP -#define SHARE_GC_X_XUNLOAD_HPP - -class XWorkers; - -class XUnload { -private: - XWorkers* const _workers; - -public: - XUnload(XWorkers* workers); - - void prepare(); - void unlink(); - void purge(); - void finish(); -}; - -#endif // SHARE_GC_X_XUNLOAD_HPP diff --git a/src/hotspot/share/gc/x/xUnmapper.cpp b/src/hotspot/share/gc/x/xUnmapper.cpp deleted file mode 100644 index 17371cf1394..00000000000 --- a/src/hotspot/share/gc/x/xUnmapper.cpp +++ /dev/null @@ -1,135 +0,0 @@ -/* - * Copyright (c) 2020, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/shared/gc_globals.hpp" -#include "gc/shared/gcLogPrecious.hpp" -#include "gc/x/xList.inline.hpp" -#include "gc/x/xLock.inline.hpp" -#include "gc/x/xPage.inline.hpp" -#include "gc/x/xPageAllocator.hpp" -#include "gc/x/xUnmapper.hpp" -#include "jfr/jfrEvents.hpp" -#include "runtime/globals.hpp" - -XUnmapper::XUnmapper(XPageAllocator* page_allocator) : - _page_allocator(page_allocator), - _lock(), - _queue(), - _enqueued_bytes(0), - _warned_sync_unmapping(false), - _stop(false) { - set_name("XUnmapper"); - create_and_start(); -} - -XPage* XUnmapper::dequeue() { - XLocker locker(&_lock); - - for (;;) { - if (_stop) { - return nullptr; - } - - XPage* const page = _queue.remove_first(); - if (page != nullptr) { - _enqueued_bytes -= page->size(); - return page; - } - - _lock.wait(); - } -} - -bool XUnmapper::try_enqueue(XPage* page) { - if (ZVerifyViews) { - // Asynchronous unmap and destroy is not supported with ZVerifyViews - return false; - } - - // Enqueue for asynchronous unmap and destroy - XLocker locker(&_lock); - if (is_saturated()) { - // The unmapper thread is lagging behind and is unable to unmap memory fast enough - if (!_warned_sync_unmapping) { - _warned_sync_unmapping = true; - log_warning_p(gc)("WARNING: Encountered synchronous unmapping because asynchronous unmapping could not keep up"); - } - log_debug(gc, unmap)("Synchronous unmapping " SIZE_FORMAT "M page", page->size() / M); - return false; - } - - log_trace(gc, unmap)("Asynchronous unmapping " SIZE_FORMAT "M page (" SIZE_FORMAT "M / " SIZE_FORMAT "M enqueued)", - page->size() / M, _enqueued_bytes / M, queue_capacity() / M); - - _queue.insert_last(page); - _enqueued_bytes += page->size(); - _lock.notify_all(); - - return true; -} - -size_t XUnmapper::queue_capacity() const { - return align_up(_page_allocator->max_capacity() * ZAsyncUnmappingLimit / 100.0, XGranuleSize); -} - -bool XUnmapper::is_saturated() const { - return _enqueued_bytes >= queue_capacity(); -} - -void XUnmapper::do_unmap_and_destroy_page(XPage* page) const { - EventZUnmap event; - const size_t unmapped = page->size(); - - // Unmap and destroy - _page_allocator->unmap_page(page); - _page_allocator->destroy_page(page); - - // Send event - event.commit(unmapped); -} - -void XUnmapper::unmap_and_destroy_page(XPage* page) { - if (!try_enqueue(page)) { - // Synchronously unmap and destroy - do_unmap_and_destroy_page(page); - } -} - -void XUnmapper::run_service() { - for (;;) { - XPage* const page = dequeue(); - if (page == nullptr) { - // Stop - return; - } - - do_unmap_and_destroy_page(page); - } -} - -void XUnmapper::stop_service() { - XLocker locker(&_lock); - _stop = true; - _lock.notify_all(); -} diff --git a/src/hotspot/share/gc/x/xUnmapper.hpp b/src/hotspot/share/gc/x/xUnmapper.hpp deleted file mode 100644 index 811588f14d6..00000000000 --- a/src/hotspot/share/gc/x/xUnmapper.hpp +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XUNMAPPER_HPP -#define SHARE_GC_X_XUNMAPPER_HPP - -#include "gc/shared/concurrentGCThread.hpp" -#include "gc/x/xList.hpp" -#include "gc/x/xLock.hpp" - -class XPage; -class XPageAllocator; - -class XUnmapper : public ConcurrentGCThread { -private: - XPageAllocator* const _page_allocator; - XConditionLock _lock; - XList _queue; - size_t _enqueued_bytes; - bool _warned_sync_unmapping; - bool _stop; - - XPage* dequeue(); - bool try_enqueue(XPage* page); - size_t queue_capacity() const; - bool is_saturated() const; - void do_unmap_and_destroy_page(XPage* page) const; - -protected: - virtual void run_service(); - virtual void stop_service(); - -public: - XUnmapper(XPageAllocator* page_allocator); - - void unmap_and_destroy_page(XPage* page); -}; - -#endif // SHARE_GC_X_XUNMAPPER_HPP diff --git a/src/hotspot/share/gc/x/xUtils.hpp b/src/hotspot/share/gc/x/xUtils.hpp deleted file mode 100644 index 26f14c0e98f..00000000000 --- a/src/hotspot/share/gc/x/xUtils.hpp +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 2015, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XUTILS_HPP -#define SHARE_GC_X_XUTILS_HPP - -#include "memory/allStatic.hpp" -#include "utilities/globalDefinitions.hpp" - -class XUtils : public AllStatic { -public: - // Allocation - static uintptr_t alloc_aligned(size_t alignment, size_t size); - - // Size conversion - static size_t bytes_to_words(size_t size_in_words); - static size_t words_to_bytes(size_t size_in_words); - - // Object - static size_t object_size(uintptr_t addr); - static void object_copy_disjoint(uintptr_t from, uintptr_t to, size_t size); - static void object_copy_conjoint(uintptr_t from, uintptr_t to, size_t size); -}; - -#endif // SHARE_GC_X_XUTILS_HPP diff --git a/src/hotspot/share/gc/x/xUtils.inline.hpp b/src/hotspot/share/gc/x/xUtils.inline.hpp deleted file mode 100644 index 09180959311..00000000000 --- a/src/hotspot/share/gc/x/xUtils.inline.hpp +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XUTILS_INLINE_HPP -#define SHARE_GC_X_XUTILS_INLINE_HPP - -#include "gc/x/xUtils.hpp" - -#include "gc/x/xOop.inline.hpp" -#include "oops/oop.inline.hpp" -#include "utilities/align.hpp" -#include "utilities/copy.hpp" -#include "utilities/debug.hpp" -#include "utilities/globalDefinitions.hpp" - -inline size_t XUtils::bytes_to_words(size_t size_in_bytes) { - assert(is_aligned(size_in_bytes, BytesPerWord), "Size not word aligned"); - return size_in_bytes >> LogBytesPerWord; -} - -inline size_t XUtils::words_to_bytes(size_t size_in_words) { - return size_in_words << LogBytesPerWord; -} - -inline size_t XUtils::object_size(uintptr_t addr) { - return words_to_bytes(XOop::from_address(addr)->size()); -} - -inline void XUtils::object_copy_disjoint(uintptr_t from, uintptr_t to, size_t size) { - Copy::aligned_disjoint_words((HeapWord*)from, (HeapWord*)to, bytes_to_words(size)); -} - -inline void XUtils::object_copy_conjoint(uintptr_t from, uintptr_t to, size_t size) { - if (from != to) { - Copy::aligned_conjoint_words((HeapWord*)from, (HeapWord*)to, bytes_to_words(size)); - } -} - -#endif // SHARE_GC_X_XUTILS_INLINE_HPP diff --git a/src/hotspot/share/gc/x/xValue.hpp b/src/hotspot/share/gc/x/xValue.hpp deleted file mode 100644 index 4b2838c8a2c..00000000000 --- a/src/hotspot/share/gc/x/xValue.hpp +++ /dev/null @@ -1,140 +0,0 @@ -/* - * Copyright (c) 2015, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XVALUE_HPP -#define SHARE_GC_X_XVALUE_HPP - -#include "memory/allStatic.hpp" -#include "utilities/globalDefinitions.hpp" - -// -// Storage -// - -template -class XValueStorage : public AllStatic { -private: - static uintptr_t _top; - static uintptr_t _end; - -public: - static const size_t offset = 4 * K; - - static uintptr_t alloc(size_t size); -}; - -class XContendedStorage : public XValueStorage { -public: - static size_t alignment(); - static uint32_t count(); - static uint32_t id(); -}; - -class XPerCPUStorage : public XValueStorage { -public: - static size_t alignment(); - static uint32_t count(); - static uint32_t id(); -}; - -class XPerNUMAStorage : public XValueStorage { -public: - static size_t alignment(); - static uint32_t count(); - static uint32_t id(); -}; - -class XPerWorkerStorage : public XValueStorage { -public: - static size_t alignment(); - static uint32_t count(); - static uint32_t id(); -}; - -// -// Value -// - -template -class XValue : public CHeapObj { -private: - const uintptr_t _addr; - - uintptr_t value_addr(uint32_t value_id) const; - -public: - XValue(); - XValue(const T& value); - - const T* addr(uint32_t value_id = S::id()) const; - T* addr(uint32_t value_id = S::id()); - - const T& get(uint32_t value_id = S::id()) const; - T& get(uint32_t value_id = S::id()); - - void set(const T& value, uint32_t value_id = S::id()); - void set_all(const T& value); -}; - -template using XContended = XValue; -template using XPerCPU = XValue; -template using XPerNUMA = XValue; -template using XPerWorker = XValue; - -// -// Iterator -// - -template -class XValueIterator { -private: - XValue* const _value; - uint32_t _value_id; - -public: - XValueIterator(XValue* value); - - bool next(T** value); -}; - -template using XPerCPUIterator = XValueIterator; -template using XPerNUMAIterator = XValueIterator; -template using XPerWorkerIterator = XValueIterator; - -template -class XValueConstIterator { -private: - const XValue* const _value; - uint32_t _value_id; - -public: - XValueConstIterator(const XValue* value); - - bool next(const T** value); -}; - -template using XPerCPUConstIterator = XValueConstIterator; -template using XPerNUMAConstIterator = XValueConstIterator; -template using XPerWorkerConstIterator = XValueConstIterator; - -#endif // SHARE_GC_X_XVALUE_HPP diff --git a/src/hotspot/share/gc/x/xValue.inline.hpp b/src/hotspot/share/gc/x/xValue.inline.hpp deleted file mode 100644 index 1b12eb7d555..00000000000 --- a/src/hotspot/share/gc/x/xValue.inline.hpp +++ /dev/null @@ -1,210 +0,0 @@ -/* - * Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XVALUE_INLINE_HPP -#define SHARE_GC_X_XVALUE_INLINE_HPP - -#include "gc/x/xValue.hpp" - -#include "gc/shared/gc_globals.hpp" -#include "gc/x/xCPU.inline.hpp" -#include "gc/x/xGlobals.hpp" -#include "gc/x/xNUMA.hpp" -#include "gc/x/xThread.inline.hpp" -#include "gc/x/xUtils.hpp" -#include "runtime/globals.hpp" -#include "utilities/align.hpp" - -// -// Storage -// - -template uintptr_t XValueStorage::_end = 0; -template uintptr_t XValueStorage::_top = 0; - -template -uintptr_t XValueStorage::alloc(size_t size) { - assert(size <= offset, "Allocation too large"); - - // Allocate entry in existing memory block - const uintptr_t addr = align_up(_top, S::alignment()); - _top = addr + size; - - if (_top < _end) { - // Success - return addr; - } - - // Allocate new block of memory - const size_t block_alignment = offset; - const size_t block_size = offset * S::count(); - _top = XUtils::alloc_aligned(block_alignment, block_size); - _end = _top + offset; - - // Retry allocation - return alloc(size); -} - -inline size_t XContendedStorage::alignment() { - return XCacheLineSize; -} - -inline uint32_t XContendedStorage::count() { - return 1; -} - -inline uint32_t XContendedStorage::id() { - return 0; -} - -inline size_t XPerCPUStorage::alignment() { - return sizeof(uintptr_t); -} - -inline uint32_t XPerCPUStorage::count() { - return XCPU::count(); -} - -inline uint32_t XPerCPUStorage::id() { - return XCPU::id(); -} - -inline size_t XPerNUMAStorage::alignment() { - return sizeof(uintptr_t); -} - -inline uint32_t XPerNUMAStorage::count() { - return XNUMA::count(); -} - -inline uint32_t XPerNUMAStorage::id() { - return XNUMA::id(); -} - -inline size_t XPerWorkerStorage::alignment() { - return sizeof(uintptr_t); -} - -inline uint32_t XPerWorkerStorage::count() { - return UseDynamicNumberOfGCThreads ? ConcGCThreads : MAX2(ConcGCThreads, ParallelGCThreads); -} - -inline uint32_t XPerWorkerStorage::id() { - return XThread::worker_id(); -} - -// -// Value -// - -template -inline uintptr_t XValue::value_addr(uint32_t value_id) const { - return _addr + (value_id * S::offset); -} - -template -inline XValue::XValue() : - _addr(S::alloc(sizeof(T))) { - // Initialize all instances - XValueIterator iter(this); - for (T* addr; iter.next(&addr);) { - ::new (addr) T; - } -} - -template -inline XValue::XValue(const T& value) : - _addr(S::alloc(sizeof(T))) { - // Initialize all instances - XValueIterator iter(this); - for (T* addr; iter.next(&addr);) { - ::new (addr) T(value); - } -} - -template -inline const T* XValue::addr(uint32_t value_id) const { - return reinterpret_cast(value_addr(value_id)); -} - -template -inline T* XValue::addr(uint32_t value_id) { - return reinterpret_cast(value_addr(value_id)); -} - -template -inline const T& XValue::get(uint32_t value_id) const { - return *addr(value_id); -} - -template -inline T& XValue::get(uint32_t value_id) { - return *addr(value_id); -} - -template -inline void XValue::set(const T& value, uint32_t value_id) { - get(value_id) = value; -} - -template -inline void XValue::set_all(const T& value) { - XValueIterator iter(this); - for (T* addr; iter.next(&addr);) { - *addr = value; - } -} - -// -// Iterator -// - -template -inline XValueIterator::XValueIterator(XValue* value) : - _value(value), - _value_id(0) {} - -template -inline bool XValueIterator::next(T** value) { - if (_value_id < S::count()) { - *value = _value->addr(_value_id++); - return true; - } - return false; -} - -template -inline XValueConstIterator::XValueConstIterator(const XValue* value) : - _value(value), - _value_id(0) {} - -template -inline bool XValueConstIterator::next(const T** value) { - if (_value_id < S::count()) { - *value = _value->addr(_value_id++); - return true; - } - return false; -} - -#endif // SHARE_GC_X_XVALUE_INLINE_HPP diff --git a/src/hotspot/share/gc/x/xVerify.cpp b/src/hotspot/share/gc/x/xVerify.cpp deleted file mode 100644 index ac6e8ee65d0..00000000000 --- a/src/hotspot/share/gc/x/xVerify.cpp +++ /dev/null @@ -1,405 +0,0 @@ -/* - * Copyright (c) 2019, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "classfile/classLoaderData.hpp" -#include "gc/shared/gc_globals.hpp" -#include "gc/x/xAddress.inline.hpp" -#include "gc/x/xHeap.inline.hpp" -#include "gc/x/xNMethod.hpp" -#include "gc/x/xOop.hpp" -#include "gc/x/xPageAllocator.hpp" -#include "gc/x/xResurrection.hpp" -#include "gc/x/xRootsIterator.hpp" -#include "gc/x/xStackWatermark.hpp" -#include "gc/x/xStat.hpp" -#include "gc/x/xVerify.hpp" -#include "memory/iterator.inline.hpp" -#include "memory/resourceArea.hpp" -#include "oops/oop.hpp" -#include "runtime/frame.inline.hpp" -#include "runtime/globals.hpp" -#include "runtime/handles.hpp" -#include "runtime/javaThread.hpp" -#include "runtime/safepoint.hpp" -#include "runtime/stackFrameStream.inline.hpp" -#include "runtime/stackWatermark.inline.hpp" -#include "runtime/stackWatermarkSet.inline.hpp" -#include "utilities/debug.hpp" -#include "utilities/globalDefinitions.hpp" -#include "utilities/preserveException.hpp" - -#define BAD_OOP_ARG(o, p) "Bad oop " PTR_FORMAT " found at " PTR_FORMAT, p2i(o), p2i(p) - -static void z_verify_oop(oop* p) { - const oop o = RawAccess<>::oop_load(p); - if (o != nullptr) { - const uintptr_t addr = XOop::to_address(o); - guarantee(XAddress::is_good(addr), BAD_OOP_ARG(o, p)); - guarantee(oopDesc::is_oop(XOop::from_address(addr)), BAD_OOP_ARG(o, p)); - } -} - -static void z_verify_possibly_weak_oop(oop* p) { - const oop o = RawAccess<>::oop_load(p); - if (o != nullptr) { - const uintptr_t addr = XOop::to_address(o); - guarantee(XAddress::is_good(addr) || XAddress::is_finalizable_good(addr), BAD_OOP_ARG(o, p)); - guarantee(oopDesc::is_oop(XOop::from_address(XAddress::good(addr))), BAD_OOP_ARG(o, p)); - } -} - -class XVerifyRootClosure : public OopClosure { -private: - const bool _verify_fixed; - -public: - XVerifyRootClosure(bool verify_fixed) : - _verify_fixed(verify_fixed) {} - - virtual void do_oop(oop* p) { - if (_verify_fixed) { - z_verify_oop(p); - } else { - // Don't know the state of the oop. - oop obj = *p; - obj = NativeAccess::oop_load(&obj); - z_verify_oop(&obj); - } - } - - virtual void do_oop(narrowOop*) { - ShouldNotReachHere(); - } - - bool verify_fixed() const { - return _verify_fixed; - } -}; - -class XVerifyStack : public OopClosure { -private: - XVerifyRootClosure* const _cl; - JavaThread* const _jt; - uint64_t _last_good; - bool _verifying_bad_frames; - -public: - XVerifyStack(XVerifyRootClosure* cl, JavaThread* jt) : - _cl(cl), - _jt(jt), - _last_good(0), - _verifying_bad_frames(false) { - XStackWatermark* const stack_watermark = StackWatermarkSet::get(jt, StackWatermarkKind::gc); - - if (_cl->verify_fixed()) { - assert(stack_watermark->processing_started(), "Should already have been fixed"); - assert(stack_watermark->processing_completed(), "Should already have been fixed"); - } else { - // We don't really know the state of the stack, verify watermark. - if (!stack_watermark->processing_started()) { - _verifying_bad_frames = true; - } else { - // Not time yet to verify bad frames - _last_good = stack_watermark->last_processed(); - } - } - } - - void do_oop(oop* p) { - if (_verifying_bad_frames) { - const oop obj = *p; - guarantee(!XAddress::is_good(XOop::to_address(obj)), BAD_OOP_ARG(obj, p)); - } - _cl->do_oop(p); - } - - void do_oop(narrowOop* p) { - ShouldNotReachHere(); - } - - void prepare_next_frame(frame& frame) { - if (_cl->verify_fixed()) { - // All frames need to be good - return; - } - - // The verification has two modes, depending on whether we have reached the - // last processed frame or not. Before it is reached, we expect everything to - // be good. After reaching it, we expect everything to be bad. - const uintptr_t sp = reinterpret_cast(frame.sp()); - - if (!_verifying_bad_frames && sp == _last_good) { - // Found the last good frame, now verify the bad ones - _verifying_bad_frames = true; - } - } - - void verify_frames() { - NMethodToOopClosure nm_cl(_cl, false /* fix_relocations */); - for (StackFrameStream frames(_jt, true /* update */, false /* process_frames */); - !frames.is_done(); - frames.next()) { - frame& frame = *frames.current(); - frame.oops_do(this, &nm_cl, frames.register_map(), DerivedPointerIterationMode::_ignore); - prepare_next_frame(frame); - } - } -}; - -class XVerifyOopClosure : public ClaimMetadataVisitingOopIterateClosure { -private: - const bool _verify_weaks; - -public: - XVerifyOopClosure(bool verify_weaks) : - ClaimMetadataVisitingOopIterateClosure(ClassLoaderData::_claim_other), - _verify_weaks(verify_weaks) {} - - virtual void do_oop(oop* p) { - if (_verify_weaks) { - z_verify_possibly_weak_oop(p); - } else { - // We should never encounter finalizable oops through strong - // paths. This assumes we have only visited strong roots. - z_verify_oop(p); - } - } - - virtual void do_oop(narrowOop* p) { - ShouldNotReachHere(); - } - - virtual ReferenceIterationMode reference_iteration_mode() { - return _verify_weaks ? DO_FIELDS : DO_FIELDS_EXCEPT_REFERENT; - } - - // Don't follow this metadata when verifying oops - virtual void do_method(Method* m) {} - virtual void do_nmethod(nmethod* nm) {} -}; - -typedef ClaimingCLDToOopClosure XVerifyCLDClosure; - -class XVerifyThreadClosure : public ThreadClosure { -private: - XVerifyRootClosure* const _cl; - -public: - XVerifyThreadClosure(XVerifyRootClosure* cl) : - _cl(cl) {} - - virtual void do_thread(Thread* thread) { - thread->oops_do_no_frames(_cl, nullptr); - - JavaThread* const jt = JavaThread::cast(thread); - if (!jt->has_last_Java_frame()) { - return; - } - - XVerifyStack verify_stack(_cl, jt); - verify_stack.verify_frames(); - } -}; - -class XVerifyNMethodClosure : public NMethodClosure { -private: - OopClosure* const _cl; - BarrierSetNMethod* const _bs_nm; - const bool _verify_fixed; - - bool trust_nmethod_state() const { - // The root iterator will visit non-processed - // nmethods class unloading is turned off. - return ClassUnloading || _verify_fixed; - } - -public: - XVerifyNMethodClosure(OopClosure* cl, bool verify_fixed) : - _cl(cl), - _bs_nm(BarrierSet::barrier_set()->barrier_set_nmethod()), - _verify_fixed(verify_fixed) {} - - virtual void do_nmethod(nmethod* nm) { - assert(!trust_nmethod_state() || !_bs_nm->is_armed(nm), "Should not encounter any armed nmethods"); - - XNMethod::nmethod_oops_do(nm, _cl); - } -}; - -void XVerify::roots_strong(bool verify_fixed) { - assert(SafepointSynchronize::is_at_safepoint(), "Must be at a safepoint"); - assert(!XResurrection::is_blocked(), "Invalid phase"); - - XVerifyRootClosure cl(verify_fixed); - XVerifyCLDClosure cld_cl(&cl); - XVerifyThreadClosure thread_cl(&cl); - XVerifyNMethodClosure nm_cl(&cl, verify_fixed); - - XRootsIterator iter(ClassLoaderData::_claim_none); - iter.apply(&cl, - &cld_cl, - &thread_cl, - &nm_cl); -} - -void XVerify::roots_weak() { - assert(SafepointSynchronize::is_at_safepoint(), "Must be at a safepoint"); - assert(!XResurrection::is_blocked(), "Invalid phase"); - - XVerifyRootClosure cl(true /* verify_fixed */); - XWeakRootsIterator iter; - iter.apply(&cl); -} - -void XVerify::objects(bool verify_weaks) { - assert(SafepointSynchronize::is_at_safepoint(), "Must be at a safepoint"); - assert(XGlobalPhase == XPhaseMarkCompleted, "Invalid phase"); - assert(!XResurrection::is_blocked(), "Invalid phase"); - - XVerifyOopClosure cl(verify_weaks); - ObjectToOopClosure object_cl(&cl); - XHeap::heap()->object_iterate(&object_cl, verify_weaks); -} - -void XVerify::before_zoperation() { - // Verify strong roots - XStatTimerDisable disable; - if (ZVerifyRoots) { - roots_strong(false /* verify_fixed */); - } -} - -void XVerify::after_mark() { - // Verify all strong roots and strong references - XStatTimerDisable disable; - if (ZVerifyRoots) { - roots_strong(true /* verify_fixed */); - } - if (ZVerifyObjects) { - objects(false /* verify_weaks */); - } -} - -void XVerify::after_weak_processing() { - // Verify all roots and all references - XStatTimerDisable disable; - if (ZVerifyRoots) { - roots_strong(true /* verify_fixed */); - roots_weak(); - } - if (ZVerifyObjects) { - objects(true /* verify_weaks */); - } -} - -template -class XPageDebugMapOrUnmapClosure : public XPageClosure { -private: - const XPageAllocator* const _allocator; - -public: - XPageDebugMapOrUnmapClosure(const XPageAllocator* allocator) : - _allocator(allocator) {} - - void do_page(const XPage* page) { - if (Map) { - _allocator->debug_map_page(page); - } else { - _allocator->debug_unmap_page(page); - } - } -}; - -XVerifyViewsFlip::XVerifyViewsFlip(const XPageAllocator* allocator) : - _allocator(allocator) { - if (ZVerifyViews) { - // Unmap all pages - XPageDebugMapOrUnmapClosure cl(_allocator); - XHeap::heap()->pages_do(&cl); - } -} - -XVerifyViewsFlip::~XVerifyViewsFlip() { - if (ZVerifyViews) { - // Map all pages - XPageDebugMapOrUnmapClosure cl(_allocator); - XHeap::heap()->pages_do(&cl); - } -} - -#ifdef ASSERT - -class XVerifyBadOopClosure : public OopClosure { -public: - virtual void do_oop(oop* p) { - const oop o = *p; - assert(!XAddress::is_good(XOop::to_address(o)), "Should not be good: " PTR_FORMAT, p2i(o)); - } - - virtual void do_oop(narrowOop* p) { - ShouldNotReachHere(); - } -}; - -// This class encapsulates various marks we need to deal with calling the -// frame iteration code from arbitrary points in the runtime. It is mostly -// due to problems that we might want to eventually clean up inside of the -// frame iteration code, such as creating random handles even though there -// is no safepoint to protect against, and fiddling around with exceptions. -class StackWatermarkProcessingMark { - ResetNoHandleMark _rnhm; - HandleMark _hm; - PreserveExceptionMark _pem; - ResourceMark _rm; - -public: - StackWatermarkProcessingMark(Thread* thread) : - _rnhm(), - _hm(thread), - _pem(thread), - _rm(thread) {} -}; - -void XVerify::verify_frame_bad(const frame& fr, RegisterMap& register_map) { - XVerifyBadOopClosure verify_cl; - fr.oops_do(&verify_cl, nullptr, ®ister_map, DerivedPointerIterationMode::_ignore); -} - -void XVerify::verify_thread_head_bad(JavaThread* jt) { - XVerifyBadOopClosure verify_cl; - jt->oops_do_no_frames(&verify_cl, nullptr); -} - -void XVerify::verify_thread_frames_bad(JavaThread* jt) { - if (jt->has_last_Java_frame()) { - XVerifyBadOopClosure verify_cl; - StackWatermarkProcessingMark swpm(Thread::current()); - // Traverse the execution stack - for (StackFrameStream fst(jt, true /* update */, false /* process_frames */); !fst.is_done(); fst.next()) { - fst.current()->oops_do(&verify_cl, nullptr /* code_cl */, fst.register_map(), DerivedPointerIterationMode::_ignore); - } - } -} - -#endif // ASSERT diff --git a/src/hotspot/share/gc/x/xVerify.hpp b/src/hotspot/share/gc/x/xVerify.hpp deleted file mode 100644 index bbe10f376fa..00000000000 --- a/src/hotspot/share/gc/x/xVerify.hpp +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (c) 2019, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XVERIFY_HPP -#define SHARE_GC_X_XVERIFY_HPP - -#include "memory/allStatic.hpp" - -class frame; -class XPageAllocator; - -class XVerify : public AllStatic { -private: - static void roots_strong(bool verify_fixed); - static void roots_weak(); - - static void objects(bool verify_weaks); - -public: - static void before_zoperation(); - static void after_mark(); - static void after_weak_processing(); - - static void verify_thread_head_bad(JavaThread* thread) NOT_DEBUG_RETURN; - static void verify_thread_frames_bad(JavaThread* thread) NOT_DEBUG_RETURN; - static void verify_frame_bad(const frame& fr, RegisterMap& register_map) NOT_DEBUG_RETURN; -}; - -class XVerifyViewsFlip { -private: - const XPageAllocator* const _allocator; - -public: - XVerifyViewsFlip(const XPageAllocator* allocator); - ~XVerifyViewsFlip(); -}; - -#endif // SHARE_GC_X_XVERIFY_HPP diff --git a/src/hotspot/share/gc/x/xVirtualMemory.cpp b/src/hotspot/share/gc/x/xVirtualMemory.cpp deleted file mode 100644 index 63cb789d8de..00000000000 --- a/src/hotspot/share/gc/x/xVirtualMemory.cpp +++ /dev/null @@ -1,208 +0,0 @@ -/* - * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/shared/gcLogPrecious.hpp" -#include "gc/x/xAddress.inline.hpp" -#include "gc/x/xAddressSpaceLimit.hpp" -#include "gc/x/xGlobals.hpp" -#include "gc/x/xVirtualMemory.inline.hpp" -#include "nmt/memTracker.hpp" -#include "utilities/align.hpp" -#include "utilities/debug.hpp" - -XVirtualMemoryManager::XVirtualMemoryManager(size_t max_capacity) : - _manager(), - _reserved(0), - _initialized(false) { - - // Check max supported heap size - if (max_capacity > XAddressOffsetMax) { - log_error_p(gc)("Java heap too large (max supported heap size is " SIZE_FORMAT "G)", - XAddressOffsetMax / G); - return; - } - - // Initialize platform specific parts before reserving address space - pd_initialize_before_reserve(); - - // Reserve address space - if (!reserve(max_capacity)) { - log_error_pd(gc)("Failed to reserve enough address space for Java heap"); - return; - } - - // Initialize platform specific parts after reserving address space - pd_initialize_after_reserve(); - - // Successfully initialized - _initialized = true; -} - -size_t XVirtualMemoryManager::reserve_discontiguous(uintptr_t start, size_t size, size_t min_range) { - if (size < min_range) { - // Too small - return 0; - } - - assert(is_aligned(size, XGranuleSize), "Misaligned"); - - if (reserve_contiguous(start, size)) { - return size; - } - - const size_t half = size / 2; - if (half < min_range) { - // Too small - return 0; - } - - // Divide and conquer - const size_t first_part = align_down(half, XGranuleSize); - const size_t second_part = size - first_part; - return reserve_discontiguous(start, first_part, min_range) + - reserve_discontiguous(start + first_part, second_part, min_range); -} - -size_t XVirtualMemoryManager::reserve_discontiguous(size_t size) { - // Don't try to reserve address ranges smaller than 1% of the requested size. - // This avoids an explosion of reservation attempts in case large parts of the - // address space is already occupied. - const size_t min_range = align_up(size / 100, XGranuleSize); - size_t start = 0; - size_t reserved = 0; - - // Reserve size somewhere between [0, XAddressOffsetMax) - while (reserved < size && start < XAddressOffsetMax) { - const size_t remaining = MIN2(size - reserved, XAddressOffsetMax - start); - reserved += reserve_discontiguous(start, remaining, min_range); - start += remaining; - } - - return reserved; -} - -bool XVirtualMemoryManager::reserve_contiguous(uintptr_t start, size_t size) { - assert(is_aligned(size, XGranuleSize), "Must be granule aligned"); - - // Reserve address views - const uintptr_t marked0 = XAddress::marked0(start); - const uintptr_t marked1 = XAddress::marked1(start); - const uintptr_t remapped = XAddress::remapped(start); - - // Reserve address space - if (!pd_reserve(marked0, size)) { - return false; - } - - if (!pd_reserve(marked1, size)) { - pd_unreserve(marked0, size); - return false; - } - - if (!pd_reserve(remapped, size)) { - pd_unreserve(marked0, size); - pd_unreserve(marked1, size); - return false; - } - - // Register address views with native memory tracker - nmt_reserve(marked0, size); - nmt_reserve(marked1, size); - nmt_reserve(remapped, size); - - // Make the address range free - _manager.free(start, size); - - return true; -} - -bool XVirtualMemoryManager::reserve_contiguous(size_t size) { - // Allow at most 8192 attempts spread evenly across [0, XAddressOffsetMax) - const size_t unused = XAddressOffsetMax - size; - const size_t increment = MAX2(align_up(unused / 8192, XGranuleSize), XGranuleSize); - - for (size_t start = 0; start + size <= XAddressOffsetMax; start += increment) { - if (reserve_contiguous(start, size)) { - // Success - return true; - } - } - - // Failed - return false; -} - -bool XVirtualMemoryManager::reserve(size_t max_capacity) { - const size_t limit = MIN2(XAddressOffsetMax, XAddressSpaceLimit::heap_view()); - const size_t size = MIN2(max_capacity * XVirtualToPhysicalRatio, limit); - - size_t reserved = size; - bool contiguous = true; - - // Prefer a contiguous address space - if (!reserve_contiguous(size)) { - // Fall back to a discontiguous address space - reserved = reserve_discontiguous(size); - contiguous = false; - } - - log_info_p(gc, init)("Address Space Type: %s/%s/%s", - (contiguous ? "Contiguous" : "Discontiguous"), - (limit == XAddressOffsetMax ? "Unrestricted" : "Restricted"), - (reserved == size ? "Complete" : "Degraded")); - log_info_p(gc, init)("Address Space Size: " SIZE_FORMAT "M x " SIZE_FORMAT " = " SIZE_FORMAT "M", - reserved / M, XHeapViews, (reserved * XHeapViews) / M); - - // Record reserved - _reserved = reserved; - - return reserved >= max_capacity; -} - -void XVirtualMemoryManager::nmt_reserve(uintptr_t start, size_t size) { - MemTracker::record_virtual_memory_reserve((void*)start, size, CALLER_PC); - MemTracker::record_virtual_memory_tag((void*)start, mtJavaHeap); -} - -bool XVirtualMemoryManager::is_initialized() const { - return _initialized; -} - -XVirtualMemory XVirtualMemoryManager::alloc(size_t size, bool force_low_address) { - uintptr_t start; - - // Small pages are allocated at low addresses, while medium/large pages - // are allocated at high addresses (unless forced to be at a low address). - if (force_low_address || size <= XPageSizeSmall) { - start = _manager.alloc_low_address(size); - } else { - start = _manager.alloc_high_address(size); - } - - return XVirtualMemory(start, size); -} - -void XVirtualMemoryManager::free(const XVirtualMemory& vmem) { - _manager.free(vmem.start(), vmem.size()); -} diff --git a/src/hotspot/share/gc/x/xVirtualMemory.hpp b/src/hotspot/share/gc/x/xVirtualMemory.hpp deleted file mode 100644 index c9e5c67ea57..00000000000 --- a/src/hotspot/share/gc/x/xVirtualMemory.hpp +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XVIRTUALMEMORY_HPP -#define SHARE_GC_X_XVIRTUALMEMORY_HPP - -#include "gc/x/xMemory.hpp" - -class VMStructs; - -class XVirtualMemory { - friend class ::VMStructs; - -private: - uintptr_t _start; - uintptr_t _end; - -public: - XVirtualMemory(); - XVirtualMemory(uintptr_t start, size_t size); - - bool is_null() const; - uintptr_t start() const; - uintptr_t end() const; - size_t size() const; - - XVirtualMemory split(size_t size); -}; - -class XVirtualMemoryManager { -private: - XMemoryManager _manager; - uintptr_t _reserved; - bool _initialized; - - // Platform specific implementation - void pd_initialize_before_reserve(); - void pd_initialize_after_reserve(); - bool pd_reserve(uintptr_t addr, size_t size); - void pd_unreserve(uintptr_t addr, size_t size); - - bool reserve_contiguous(uintptr_t start, size_t size); - bool reserve_contiguous(size_t size); - size_t reserve_discontiguous(uintptr_t start, size_t size, size_t min_range); - size_t reserve_discontiguous(size_t size); - bool reserve(size_t max_capacity); - - void nmt_reserve(uintptr_t start, size_t size); - -public: - XVirtualMemoryManager(size_t max_capacity); - - bool is_initialized() const; - - size_t reserved() const; - uintptr_t lowest_available_address() const; - - XVirtualMemory alloc(size_t size, bool force_low_address); - void free(const XVirtualMemory& vmem); -}; - -#endif // SHARE_GC_X_XVIRTUALMEMORY_HPP diff --git a/src/hotspot/share/gc/x/xVirtualMemory.inline.hpp b/src/hotspot/share/gc/x/xVirtualMemory.inline.hpp deleted file mode 100644 index 8c834b42c7f..00000000000 --- a/src/hotspot/share/gc/x/xVirtualMemory.inline.hpp +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XVIRTUALMEMORY_INLINE_HPP -#define SHARE_GC_X_XVIRTUALMEMORY_INLINE_HPP - -#include "gc/x/xVirtualMemory.hpp" - -#include "gc/x/xMemory.inline.hpp" - -inline XVirtualMemory::XVirtualMemory() : - _start(UINTPTR_MAX), - _end(UINTPTR_MAX) {} - -inline XVirtualMemory::XVirtualMemory(uintptr_t start, size_t size) : - _start(start), - _end(start + size) {} - -inline bool XVirtualMemory::is_null() const { - return _start == UINTPTR_MAX; -} - -inline uintptr_t XVirtualMemory::start() const { - return _start; -} - -inline uintptr_t XVirtualMemory::end() const { - return _end; -} - -inline size_t XVirtualMemory::size() const { - return _end - _start; -} - -inline XVirtualMemory XVirtualMemory::split(size_t size) { - _start += size; - return XVirtualMemory(_start - size, size); -} - -inline size_t XVirtualMemoryManager::reserved() const { - return _reserved; -} - -inline uintptr_t XVirtualMemoryManager::lowest_available_address() const { - return _manager.peek_low_address(); -} - -#endif // SHARE_GC_X_XVIRTUALMEMORY_INLINE_HPP diff --git a/src/hotspot/share/gc/x/xWeakRootsProcessor.cpp b/src/hotspot/share/gc/x/xWeakRootsProcessor.cpp deleted file mode 100644 index 0271fcd8c3d..00000000000 --- a/src/hotspot/share/gc/x/xWeakRootsProcessor.cpp +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xBarrier.inline.hpp" -#include "gc/x/xRootsIterator.hpp" -#include "gc/x/xTask.hpp" -#include "gc/x/xWeakRootsProcessor.hpp" -#include "gc/x/xWorkers.hpp" - -class XPhantomCleanOopClosure : public OopClosure { -public: - virtual void do_oop(oop* p) { - // Read the oop once, to make sure the liveness check - // and the later clearing uses the same value. - const oop obj = Atomic::load(p); - if (XBarrier::is_alive_barrier_on_phantom_oop(obj)) { - XBarrier::keep_alive_barrier_on_phantom_oop_field(p); - } else { - // The destination could have been modified/reused, in which case - // we don't want to clear it. However, no one could write the same - // oop here again (the object would be strongly live and we would - // not consider clearing such oops), so therefore we don't have an - // ABA problem here. - Atomic::cmpxchg(p, obj, oop(nullptr)); - } - } - - virtual void do_oop(narrowOop* p) { - ShouldNotReachHere(); - } -}; - -XWeakRootsProcessor::XWeakRootsProcessor(XWorkers* workers) : - _workers(workers) {} - -class XProcessWeakRootsTask : public XTask { -private: - XWeakRootsIterator _weak_roots; - -public: - XProcessWeakRootsTask() : - XTask("XProcessWeakRootsTask"), - _weak_roots() {} - - ~XProcessWeakRootsTask() { - _weak_roots.report_num_dead(); - } - - virtual void work() { - XPhantomCleanOopClosure cl; - _weak_roots.apply(&cl); - } -}; - -void XWeakRootsProcessor::process_weak_roots() { - XProcessWeakRootsTask task; - _workers->run(&task); -} diff --git a/src/hotspot/share/gc/x/xWeakRootsProcessor.hpp b/src/hotspot/share/gc/x/xWeakRootsProcessor.hpp deleted file mode 100644 index c63b2702374..00000000000 --- a/src/hotspot/share/gc/x/xWeakRootsProcessor.hpp +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (c) 2017, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XWEAKROOTSPROCESSOR_HPP -#define SHARE_GC_X_XWEAKROOTSPROCESSOR_HPP - -class XWorkers; - -class XWeakRootsProcessor { -private: - XWorkers* const _workers; - -public: - XWeakRootsProcessor(XWorkers* workers); - - void process_weak_roots(); -}; - -#endif // SHARE_GC_X_XWEAKROOTSPROCESSOR_HPP diff --git a/src/hotspot/share/gc/x/xWorkers.cpp b/src/hotspot/share/gc/x/xWorkers.cpp deleted file mode 100644 index 642c63f0531..00000000000 --- a/src/hotspot/share/gc/x/xWorkers.cpp +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/shared/gc_globals.hpp" -#include "gc/shared/gcLogPrecious.hpp" -#include "gc/x/xLock.inline.hpp" -#include "gc/x/xStat.hpp" -#include "gc/x/xTask.hpp" -#include "gc/x/xThread.hpp" -#include "gc/x/xWorkers.hpp" -#include "runtime/java.hpp" - -class XWorkersInitializeTask : public WorkerTask { -private: - const uint _nworkers; - uint _started; - XConditionLock _lock; - -public: - XWorkersInitializeTask(uint nworkers) : - WorkerTask("XWorkersInitializeTask"), - _nworkers(nworkers), - _started(0), - _lock() {} - - virtual void work(uint worker_id) { - // Register as worker - XThread::set_worker(); - - // Wait for all threads to start - XLocker locker(&_lock); - if (++_started == _nworkers) { - // All threads started - _lock.notify_all(); - } else { - while (_started != _nworkers) { - _lock.wait(); - } - } - } -}; - -XWorkers::XWorkers() : - _workers("XWorker", - UseDynamicNumberOfGCThreads ? ConcGCThreads : MAX2(ConcGCThreads, ParallelGCThreads)) { - - if (UseDynamicNumberOfGCThreads) { - log_info_p(gc, init)("GC Workers: %u (dynamic)", _workers.max_workers()); - } else { - log_info_p(gc, init)("GC Workers: %u/%u (static)", ConcGCThreads, _workers.max_workers()); - } - - // Initialize worker threads - _workers.initialize_workers(); - _workers.set_active_workers(_workers.max_workers()); - if (_workers.active_workers() != _workers.max_workers()) { - vm_exit_during_initialization("Failed to create XWorkers"); - } - - // Execute task to register threads as workers - XWorkersInitializeTask task(_workers.max_workers()); - _workers.run_task(&task); -} - -uint XWorkers::active_workers() const { - return _workers.active_workers(); -} - -void XWorkers::set_active_workers(uint nworkers) { - log_info(gc, task)("Using %u workers", nworkers); - _workers.set_active_workers(nworkers); -} - -void XWorkers::run(XTask* task) { - log_debug(gc, task)("Executing Task: %s, Active Workers: %u", task->name(), active_workers()); - XStatWorkers::at_start(); - _workers.run_task(task->worker_task()); - XStatWorkers::at_end(); -} - -void XWorkers::run_all(XTask* task) { - // Save number of active workers - const uint prev_active_workers = _workers.active_workers(); - - // Execute task using all workers - _workers.set_active_workers(_workers.max_workers()); - log_debug(gc, task)("Executing Task: %s, Active Workers: %u", task->name(), active_workers()); - _workers.run_task(task->worker_task()); - - // Restore number of active workers - _workers.set_active_workers(prev_active_workers); -} - -void XWorkers::threads_do(ThreadClosure* tc) const { - _workers.threads_do(tc); -} diff --git a/src/hotspot/share/gc/x/xWorkers.hpp b/src/hotspot/share/gc/x/xWorkers.hpp deleted file mode 100644 index 33c49bb7fef..00000000000 --- a/src/hotspot/share/gc/x/xWorkers.hpp +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_XWORKERS_HPP -#define SHARE_GC_X_XWORKERS_HPP - -#include "gc/shared/workerThread.hpp" - -class ThreadClosure; -class XTask; - -class XWorkers { -private: - WorkerThreads _workers; - -public: - XWorkers(); - - uint active_workers() const; - void set_active_workers(uint nworkers); - - void run(XTask* task); - void run_all(XTask* task); - - void threads_do(ThreadClosure* tc) const; -}; - -#endif // SHARE_GC_X_XWORKERS_HPP diff --git a/src/hotspot/share/gc/x/x_globals.hpp b/src/hotspot/share/gc/x/x_globals.hpp deleted file mode 100644 index ab47d7ba9c8..00000000000 --- a/src/hotspot/share/gc/x/x_globals.hpp +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_X_X_GLOBALS_HPP -#define SHARE_GC_X_X_GLOBALS_HPP - -#define GC_X_FLAGS(develop, \ - develop_pd, \ - product, \ - product_pd, \ - range, \ - constraint) \ - \ - product(bool, ZVerifyViews, false, DIAGNOSTIC, \ - "Verify heap view accesses") \ - \ -// end of GC_X_FLAGS - -#endif // SHARE_GC_X_X_GLOBALS_HPP diff --git a/src/hotspot/share/gc/z/shared/vmStructs_z_shared.hpp b/src/hotspot/share/gc/z/shared/vmStructs_z_shared.hpp deleted file mode 100644 index f0c03abbf7a..00000000000 --- a/src/hotspot/share/gc/z/shared/vmStructs_z_shared.hpp +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_Z_SHARED_VMSTRUCTS_Z_SHARED_HPP -#define SHARE_GC_Z_SHARED_VMSTRUCTS_Z_SHARED_HPP - -#include "gc/x/vmStructs_x.hpp" -#include "gc/z/vmStructs_z.hpp" - -#define VM_STRUCTS_Z_SHARED(nonstatic_field, volatile_nonstatic_field, static_field) \ - VM_STRUCTS_X( \ - nonstatic_field, \ - volatile_nonstatic_field, \ - static_field) \ - \ - VM_STRUCTS_Z( \ - nonstatic_field, \ - volatile_nonstatic_field, \ - static_field) - -#define VM_INT_CONSTANTS_Z_SHARED(declare_constant, declare_constant_with_value) \ - VM_INT_CONSTANTS_X( \ - declare_constant, \ - declare_constant_with_value) \ - \ - VM_INT_CONSTANTS_Z( \ - declare_constant, \ - declare_constant_with_value) - -#define VM_LONG_CONSTANTS_Z_SHARED(declare_constant) \ - VM_LONG_CONSTANTS_X( \ - declare_constant) \ - \ - VM_LONG_CONSTANTS_Z( \ - declare_constant) - -#define VM_TYPES_Z_SHARED(declare_type, declare_toplevel_type, declare_integer_type) \ - VM_TYPES_X( \ - declare_type, \ - declare_toplevel_type, \ - declare_integer_type) \ - \ - VM_TYPES_Z( \ - declare_type, \ - declare_toplevel_type, \ - declare_integer_type) - -#endif // SHARE_GC_Z_SHARED_VMSTRUCTS_Z_SHARED_HPP diff --git a/src/hotspot/share/gc/z/shared/zSharedArguments.cpp b/src/hotspot/share/gc/z/shared/zSharedArguments.cpp deleted file mode 100644 index 4d7e9827f18..00000000000 --- a/src/hotspot/share/gc/z/shared/zSharedArguments.cpp +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/shared/gcArguments.hpp" -#include "gc/x/xArguments.hpp" -#include "gc/z/shared/zSharedArguments.hpp" -#include "gc/z/zArguments.hpp" -#include "runtime/globals.hpp" -#include "runtime/globals_extension.hpp" -#include "runtime/java.hpp" - -void ZSharedArguments::initialize_alignments() { - if (ZGenerational) { - ZArguments::initialize_alignments(); - } else { - XArguments::initialize_alignments(); - } -} - -void ZSharedArguments::initialize_heap_flags_and_sizes() { - GCArguments::initialize_heap_flags_and_sizes(); - - if (ZGenerational) { - ZArguments::initialize_heap_flags_and_sizes(); - } else { - XArguments::initialize_heap_flags_and_sizes(); - } -} - -void ZSharedArguments::initialize() { - GCArguments::initialize(); - - if (ZGenerational) { - ZArguments::initialize(); - } else { - XArguments::initialize(); - } -} - -size_t ZSharedArguments::heap_virtual_to_physical_ratio() { - if (ZGenerational) { - return ZArguments::heap_virtual_to_physical_ratio(); - } else { - return XArguments::heap_virtual_to_physical_ratio(); - } -} - -size_t ZSharedArguments::conservative_max_heap_alignment() { - return 0; -} - -CollectedHeap* ZSharedArguments::create_heap() { - if (ZGenerational) { - return ZArguments::create_heap(); - } else { - return XArguments::create_heap(); - } -} - -bool ZSharedArguments::is_supported() const { - if (ZGenerational) { - return ZArguments::is_os_supported(); - } else { - return XArguments::is_os_supported(); - } -} diff --git a/src/hotspot/share/gc/z/shared/zSharedArguments.hpp b/src/hotspot/share/gc/z/shared/zSharedArguments.hpp deleted file mode 100644 index c53f28ee0f9..00000000000 --- a/src/hotspot/share/gc/z/shared/zSharedArguments.hpp +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_Z_SHARED_ZSHAREDARGUMENTS_HPP -#define SHARE_GC_Z_SHARED_ZSHAREDARGUMENTS_HPP - -#include "gc/shared/gcArguments.hpp" - -class CollectedHeap; - -class ZSharedArguments : public GCArguments { -private: - virtual void initialize_alignments(); - virtual void initialize_heap_flags_and_sizes(); - - virtual void initialize(); - virtual size_t conservative_max_heap_alignment(); - virtual size_t heap_virtual_to_physical_ratio(); - virtual CollectedHeap* create_heap(); - - virtual bool is_supported() const; - - bool is_os_supported() const; -}; - -#endif // SHARE_GC_Z_SHARED_ZSHAREDARGUMENTS_HPP diff --git a/src/hotspot/share/gc/z/shared/z_shared_globals.hpp b/src/hotspot/share/gc/z/shared/z_shared_globals.hpp deleted file mode 100644 index 4421d3fb0c3..00000000000 --- a/src/hotspot/share/gc/z/shared/z_shared_globals.hpp +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#ifndef SHARE_GC_Z_SHARED_Z_SHARED_GLOBALS_HPP -#define SHARE_GC_Z_SHARED_Z_SHARED_GLOBALS_HPP - -#include "gc/x/x_globals.hpp" -#include "gc/z/z_globals.hpp" - -#define GC_Z_SHARED_FLAGS(develop, \ - develop_pd, \ - product, \ - product_pd, \ - range, \ - constraint) \ - \ - product(double, ZAllocationSpikeTolerance, 2.0, \ - "Allocation spike tolerance factor") \ - \ - /* Updated in arguments parsing to ZGenerational ? 5.0 : 25.0 */ \ - product(double, ZFragmentationLimit, 0 /* ignored */, \ - "Maximum allowed heap fragmentation") \ - range(0, 100) \ - \ - product(size_t, ZMarkStackSpaceLimit, 8*G, \ - "Maximum number of bytes allocated for mark stacks") \ - range(32*M, 1024*G) \ - \ - product(double, ZCollectionInterval, 0, \ - "Force GC at a fixed time interval (in seconds). " \ - "Backwards compatible alias for ZCollectionIntervalMajor") \ - \ - product(bool, ZProactive, true, \ - "Enable proactive GC cycles") \ - \ - product(bool, ZUncommit, true, \ - "Uncommit unused memory") \ - \ - product(uintx, ZUncommitDelay, 5 * 60, \ - "Uncommit memory if it has been unused for the specified " \ - "amount of time (in seconds)") \ - \ - product(double, ZAsyncUnmappingLimit, 100.0, DIAGNOSTIC, \ - "Specify the max amount (percentage of max heap size) of async " \ - "unmapping that can be in-flight before unmapping requests are " \ - "temporarily forced to be synchronous instead. " \ - "The default means after an amount of pages proportional to the " \ - "max capacity is enqueued, we resort to synchronous unmapping.") \ - \ - product(uint, ZStatisticsInterval, 10, DIAGNOSTIC, \ - "Time between statistics print outs (in seconds)") \ - range(1, (uint)-1) \ - \ - product(bool, ZStressRelocateInPlace, false, DIAGNOSTIC, \ - "Always relocate pages in-place") \ - \ - product(bool, ZVerifyRoots, trueInDebug, DIAGNOSTIC, \ - "Verify roots") \ - \ - product(bool, ZVerifyObjects, false, DIAGNOSTIC, \ - "Verify objects") \ - \ - product(bool, ZVerifyMarking, trueInDebug, DIAGNOSTIC, \ - "Verify marking stacks") \ - \ - product(bool, ZVerifyForwarding, false, DIAGNOSTIC, \ - "Verify forwarding tables") \ - \ - GC_X_FLAGS( \ - develop, \ - develop_pd, \ - product, \ - product_pd, \ - range, \ - constraint) \ - \ - GC_Z_FLAGS( \ - develop, \ - develop_pd, \ - product, \ - product_pd, \ - range, \ - constraint) - -// end of GC_Z_SHARED_FLAGS - -#endif // SHARE_GC_Z_SHARED_Z_SHARED_GLOBALS_HPP diff --git a/src/hotspot/share/gc/z/zArguments.cpp b/src/hotspot/share/gc/z/zArguments.cpp index f3ff568c64d..331ca9f7c94 100644 --- a/src/hotspot/share/gc/z/zArguments.cpp +++ b/src/hotspot/share/gc/z/zArguments.cpp @@ -38,6 +38,8 @@ void ZArguments::initialize_alignments() { } void ZArguments::initialize_heap_flags_and_sizes() { + GCArguments::initialize_heap_flags_and_sizes(); + if (!FLAG_IS_CMDLINE(MaxHeapSize) && !FLAG_IS_CMDLINE(MaxRAMPercentage) && !FLAG_IS_CMDLINE(SoftMaxHeapSize)) { @@ -117,6 +119,8 @@ void ZArguments::select_max_gc_threads() { } void ZArguments::initialize() { + GCArguments::initialize(); + // Check mark stack size const size_t mark_stack_space_limit = ZAddressSpaceLimit::mark_stack(); if (ZMarkStackSpaceLimit > mark_stack_space_limit) { @@ -220,6 +224,10 @@ void ZArguments::initialize() { #endif } +size_t ZArguments::conservative_max_heap_alignment() { + return 0; +} + size_t ZArguments::heap_virtual_to_physical_ratio() { return ZVirtualToPhysicalRatio; } @@ -228,6 +236,6 @@ CollectedHeap* ZArguments::create_heap() { return new ZCollectedHeap(); } -bool ZArguments::is_supported() { +bool ZArguments::is_supported() const { return is_os_supported(); } diff --git a/src/hotspot/share/gc/z/zArguments.hpp b/src/hotspot/share/gc/z/zArguments.hpp index 7d1c00d30d1..b51eb116dbf 100644 --- a/src/hotspot/share/gc/z/zArguments.hpp +++ b/src/hotspot/share/gc/z/zArguments.hpp @@ -28,20 +28,21 @@ class CollectedHeap; -class ZArguments : AllStatic { +class ZArguments : public GCArguments { private: static void select_max_gc_threads(); -public: - static void initialize_alignments(); - static void initialize_heap_flags_and_sizes(); - static void initialize(); - static size_t heap_virtual_to_physical_ratio(); - static CollectedHeap* create_heap(); - - static bool is_supported(); - static bool is_os_supported(); + +public: + virtual void initialize_alignments(); + virtual void initialize_heap_flags_and_sizes(); + virtual void initialize(); + virtual size_t conservative_max_heap_alignment(); + virtual size_t heap_virtual_to_physical_ratio(); + virtual CollectedHeap* create_heap(); + + virtual bool is_supported() const; }; #endif // SHARE_GC_Z_ZARGUMENTS_HPP diff --git a/src/hotspot/share/gc/z/zPageAllocator.cpp b/src/hotspot/share/gc/z/zPageAllocator.cpp index 010241294a7..12c17468bfb 100644 --- a/src/hotspot/share/gc/z/zPageAllocator.cpp +++ b/src/hotspot/share/gc/z/zPageAllocator.cpp @@ -30,6 +30,7 @@ #include "gc/z/zGeneration.inline.hpp" #include "gc/z/zGenerationId.hpp" #include "gc/z/zGlobals.hpp" +#include "gc/z/zLargePages.inline.hpp" #include "gc/z/zLock.inline.hpp" #include "gc/z/zPage.inline.hpp" #include "gc/z/zPageAge.hpp" @@ -46,6 +47,7 @@ #include "runtime/globals.hpp" #include "runtime/init.hpp" #include "runtime/java.hpp" +#include "runtime/os.hpp" #include "utilities/debug.hpp" #include "utilities/globalDefinitions.hpp" @@ -232,29 +234,38 @@ bool ZPageAllocator::is_initialized() const { class ZPreTouchTask : public ZTask { private: - const ZPhysicalMemoryManager* const _physical; - volatile zoffset _start; - const zoffset_end _end; + volatile uintptr_t _current; + const uintptr_t _end; + + static void pretouch(zaddress zaddr, size_t size) { + const uintptr_t addr = untype(zaddr); + const size_t page_size = ZLargePages::is_explicit() ? ZGranuleSize : os::vm_page_size(); + os::pretouch_memory((void*)addr, (void*)(addr + size), page_size); + } public: - ZPreTouchTask(const ZPhysicalMemoryManager* physical, zoffset start, zoffset_end end) + ZPreTouchTask(zoffset start, zoffset_end end) : ZTask("ZPreTouchTask"), - _physical(physical), - _start(start), - _end(end) {} + _current(untype(start)), + _end(untype(end)) {} virtual void work() { + const size_t size = ZGranuleSize; + for (;;) { - // Get granule offset - const size_t size = ZGranuleSize; - const zoffset offset = to_zoffset(Atomic::fetch_then_add((uintptr_t*)&_start, size)); - if (offset >= _end) { + // Claim an offset for this thread + const uintptr_t claimed = Atomic::fetch_then_add(&_current, size); + if (claimed >= _end) { // Done break; } - // Pre-touch granule - _physical->pretouch(offset, size); + // At this point we know that we have a valid zoffset / zaddress. + const zoffset offset = to_zoffset(claimed); + const zaddress addr = ZOffset::address(offset); + + // Pre-touch the granule + pretouch(addr, size); } } }; @@ -271,7 +282,7 @@ bool ZPageAllocator::prime_cache(ZWorkers* workers, size_t size) { if (AlwaysPreTouch) { // Pre-touch page - ZPreTouchTask task(&_physical, page->start(), page->end()); + ZPreTouchTask task(page->start(), page->end()); workers->run_all(&task); } diff --git a/src/hotspot/share/gc/z/zPhysicalMemory.cpp b/src/hotspot/share/gc/z/zPhysicalMemory.cpp index 357099ebec3..a04fce2d9a9 100644 --- a/src/hotspot/share/gc/z/zPhysicalMemory.cpp +++ b/src/hotspot/share/gc/z/zPhysicalMemory.cpp @@ -357,12 +357,6 @@ bool ZPhysicalMemoryManager::uncommit(ZPhysicalMemory& pmem) { return true; } -void ZPhysicalMemoryManager::pretouch(zoffset offset, size_t size) const { - const uintptr_t addr = untype(ZOffset::address(offset)); - const size_t page_size = ZLargePages::is_explicit() ? ZGranuleSize : os::vm_page_size(); - os::pretouch_memory((void*)addr, (void*)(addr + size), page_size); -} - // Map virtual memory to physcial memory void ZPhysicalMemoryManager::map(zoffset offset, const ZPhysicalMemory& pmem) const { const zaddress_unsafe addr = ZOffset::address_unsafe(offset); diff --git a/src/hotspot/share/gc/z/zPhysicalMemory.hpp b/src/hotspot/share/gc/z/zPhysicalMemory.hpp index e5e0a19d1c5..b22179987a2 100644 --- a/src/hotspot/share/gc/z/zPhysicalMemory.hpp +++ b/src/hotspot/share/gc/z/zPhysicalMemory.hpp @@ -84,10 +84,6 @@ class ZPhysicalMemoryManager { ZPhysicalMemoryBacking _backing; ZMemoryManager _manager; - void pretouch_view(zaddress addr, size_t size) const; - void map_view(zaddress_unsafe addr, const ZPhysicalMemory& pmem) const; - void unmap_view(zaddress_unsafe addr, size_t size) const; - public: ZPhysicalMemoryManager(size_t max_capacity); @@ -102,8 +98,6 @@ class ZPhysicalMemoryManager { bool commit(ZPhysicalMemory& pmem); bool uncommit(ZPhysicalMemory& pmem); - void pretouch(zoffset offset, size_t size) const; - void map(zoffset offset, const ZPhysicalMemory& pmem) const; void unmap(zoffset offset, size_t size) const; }; diff --git a/src/hotspot/share/gc/z/z_globals.hpp b/src/hotspot/share/gc/z/z_globals.hpp index c3e4bde73e4..4e307632969 100644 --- a/src/hotspot/share/gc/z/z_globals.hpp +++ b/src/hotspot/share/gc/z/z_globals.hpp @@ -34,6 +34,31 @@ range, \ constraint) \ \ + product(double, ZAllocationSpikeTolerance, 2.0, \ + "Allocation spike tolerance factor") \ + \ + product(double, ZFragmentationLimit, 5.0, \ + "Maximum allowed heap fragmentation") \ + range(0, 100) \ + \ + product(size_t, ZMarkStackSpaceLimit, 8*G, \ + "Maximum number of bytes allocated for mark stacks") \ + range(32*M, 1024*G) \ + \ + product(double, ZCollectionInterval, 0, \ + "Force GC at a fixed time interval (in seconds). " \ + "Backwards compatible alias for ZCollectionIntervalMajor") \ + \ + product(bool, ZProactive, true, \ + "Enable proactive GC cycles") \ + \ + product(bool, ZUncommit, true, \ + "Uncommit unused memory") \ + \ + product(uintx, ZUncommitDelay, 5 * 60, \ + "Uncommit memory if it has been unused for the specified " \ + "amount of time (in seconds)") \ + \ product(double, ZYoungCompactionLimit, 25.0, \ "Maximum allowed garbage in young pages") \ range(0, 100) \ @@ -47,6 +72,32 @@ product(bool, ZCollectionIntervalOnly, false, \ "Only use timers for GC heuristics") \ \ + product(double, ZAsyncUnmappingLimit, 100.0, DIAGNOSTIC, \ + "Specify the max amount (percentage of max heap size) of async " \ + "unmapping that can be in-flight before unmapping requests are " \ + "temporarily forced to be synchronous instead. " \ + "The default means after an amount of pages proportional to the " \ + "max capacity is enqueued, we resort to synchronous unmapping.") \ + \ + product(uint, ZStatisticsInterval, 10, DIAGNOSTIC, \ + "Time between statistics print outs (in seconds)") \ + range(1, (uint)-1) \ + \ + product(bool, ZStressRelocateInPlace, false, DIAGNOSTIC, \ + "Always relocate pages in-place") \ + \ + product(bool, ZVerifyRoots, trueInDebug, DIAGNOSTIC, \ + "Verify roots") \ + \ + product(bool, ZVerifyObjects, false, DIAGNOSTIC, \ + "Verify objects") \ + \ + product(bool, ZVerifyMarking, trueInDebug, DIAGNOSTIC, \ + "Verify marking stacks") \ + \ + product(bool, ZVerifyForwarding, false, DIAGNOSTIC, \ + "Verify forwarding tables") \ + \ product(bool, ZBufferStoreBarriers, true, DIAGNOSTIC, \ "Buffer store barriers") \ \ @@ -64,13 +115,13 @@ product(bool, ZVerifyRemembered, trueInDebug, DIAGNOSTIC, \ "Verify remembered sets") \ \ - develop(bool, ZVerifyOops, false, \ - "Verify accessed oops") \ - \ product(int, ZTenuringThreshold, -1, DIAGNOSTIC, \ "Young generation tenuring threshold, -1 for dynamic computation")\ range(-1, static_cast(ZPageAgeMax)) \ \ + develop(bool, ZVerifyOops, false, \ + "Verify accessed oops") \ + \ develop(size_t, ZForceDiscontiguousHeapReservations, 0, \ "The gc will attempt to split the heap reservation into this " \ "many reservations, subject to available virtual address space " \ diff --git a/src/hotspot/share/interpreter/linkResolver.cpp b/src/hotspot/share/interpreter/linkResolver.cpp index 36847580d9c..92d95b43e40 100644 --- a/src/hotspot/share/interpreter/linkResolver.cpp +++ b/src/hotspot/share/interpreter/linkResolver.cpp @@ -1200,13 +1200,7 @@ Method* LinkResolver::linktime_resolve_special_method(const LinkInfo& link_info, Klass* current_klass = link_info.current_klass(); if (current_klass != nullptr && resolved_klass->is_interface()) { InstanceKlass* klass_to_check = InstanceKlass::cast(current_klass); - // Disable verification for the dynamically-generated reflection bytecodes - // for serialization constructor accessor. - bool is_reflect = klass_to_check->is_subclass_of( - vmClasses::reflect_SerializationConstructorAccessorImpl_klass()); - - if (!is_reflect && - !klass_to_check->is_same_or_direct_interface(resolved_klass)) { + if (!klass_to_check->is_same_or_direct_interface(resolved_klass)) { ResourceMark rm(THREAD); stringStream ss; ss.print("Interface method reference: '"); diff --git a/src/hotspot/share/jfr/instrumentation/jfrJvmtiAgent.cpp b/src/hotspot/share/jfr/instrumentation/jfrJvmtiAgent.cpp index 882d468a4a3..f8f975528cb 100644 --- a/src/hotspot/share/jfr/instrumentation/jfrJvmtiAgent.cpp +++ b/src/hotspot/share/jfr/instrumentation/jfrJvmtiAgent.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -133,7 +133,7 @@ static void log_and_throw(jvmtiError error, TRAPS) { static void check_exception_and_log(JNIEnv* env, TRAPS) { assert(env != nullptr, "invariant"); - if (env->ExceptionOccurred()) { + if (env->ExceptionCheck()) { // array index out of bound DEBUG_ONLY(JfrJavaSupport::check_java_thread_in_native(THREAD)); ThreadInVMfromNative tvmfn(THREAD); diff --git a/src/hotspot/share/jvmci/jvmci.cpp b/src/hotspot/share/jvmci/jvmci.cpp index 447792b6fca..48d286e91ed 100644 --- a/src/hotspot/share/jvmci/jvmci.cpp +++ b/src/hotspot/share/jvmci/jvmci.cpp @@ -50,7 +50,7 @@ char* JVMCI::_shared_library_path = nullptr; volatile bool JVMCI::_in_shutdown = false; StringEventLog* JVMCI::_events = nullptr; StringEventLog* JVMCI::_verbose_events = nullptr; -volatile intx JVMCI::_fatal_log_init_thread = -1; +volatile intx JVMCI::_first_error_tid = -1; volatile int JVMCI::_fatal_log_fd = -1; const char* JVMCI::_fatal_log_filename = nullptr; @@ -354,7 +354,7 @@ void JVMCI::fatal_log(const char* buf, size_t count) { intx current_thread_id = os::current_thread_id(); intx invalid_id = -1; int log_fd; - if (_fatal_log_init_thread == invalid_id && Atomic::cmpxchg(&_fatal_log_init_thread, invalid_id, current_thread_id) == invalid_id) { + if (_first_error_tid == invalid_id && Atomic::cmpxchg(&_first_error_tid, invalid_id, current_thread_id) == invalid_id) { if (ErrorFileToStdout) { log_fd = 1; } else if (ErrorFileToStderr) { @@ -375,14 +375,13 @@ void JVMCI::fatal_log(const char* buf, size_t count) { } } _fatal_log_fd = log_fd; - } else { - // Another thread won the race to initialize the stream. Give it time - // to complete initialization. VM locks cannot be used as the current - // thread might not be attached to the VM (e.g. a native thread started - // within libjvmci). - while (_fatal_log_fd == -1) { - os::naked_short_sleep(50); - } + } else if (_first_error_tid != current_thread_id) { + // This is not the first thread reporting a libjvmci error + tty->print_cr("[thread " INTX_FORMAT " also had an error in the JVMCI native library]", + current_thread_id); + + // Fatal error reporting is single threaded so just block this thread. + os::infinite_sleep(); } fdStream log(_fatal_log_fd); log.write(buf, count); diff --git a/src/hotspot/share/jvmci/jvmci.hpp b/src/hotspot/share/jvmci/jvmci.hpp index 1e9fa08898f..4c1d828004e 100644 --- a/src/hotspot/share/jvmci/jvmci.hpp +++ b/src/hotspot/share/jvmci/jvmci.hpp @@ -117,8 +117,8 @@ class JVMCI : public AllStatic { // The path of the file underlying _fatal_log_fd if it is a normal file. static const char* _fatal_log_filename; - // Native thread id of thread that will initialize _fatal_log_fd. - static volatile intx _fatal_log_init_thread; + // Thread id of the first thread reporting a libjvmci error. + static volatile intx _first_error_tid; // JVMCI event log (shows up in hs_err crash logs). static StringEventLog* _events; diff --git a/src/hotspot/share/jvmci/jvmciCodeInstaller.cpp b/src/hotspot/share/jvmci/jvmciCodeInstaller.cpp index 6bca2aa644e..dc3eecd5791 100644 --- a/src/hotspot/share/jvmci/jvmciCodeInstaller.cpp +++ b/src/hotspot/share/jvmci/jvmciCodeInstaller.cpp @@ -343,6 +343,7 @@ narrowKlass CodeInstaller::record_narrow_metadata_reference(CodeSection* section int index = _oop_recorder->find_index(klass); section->relocate(dest, metadata_Relocation::spec(index)); JVMCI_event_3("narrowKlass[%d of %d] = %s", index, _oop_recorder->metadata_count(), klass->name()->as_C_string()); + guarantee(CompressedKlassPointers::is_encodable(klass), "klass cannot be compressed: %s", klass->external_name()); return CompressedKlassPointers::encode(klass); } #endif diff --git a/src/hotspot/share/jvmci/jvmciCompilerToVMInit.cpp b/src/hotspot/share/jvmci/jvmciCompilerToVMInit.cpp index 1612038008a..ab536a81e6e 100644 --- a/src/hotspot/share/jvmci/jvmciCompilerToVMInit.cpp +++ b/src/hotspot/share/jvmci/jvmciCompilerToVMInit.cpp @@ -36,8 +36,6 @@ #include "gc/shared/gc_globals.hpp" #include "gc/shared/tlab_globals.hpp" #if INCLUDE_ZGC -#include "gc/x/xBarrierSetRuntime.hpp" -#include "gc/x/xThreadLocalData.hpp" #include "gc/z/zBarrierSetRuntime.hpp" #include "gc/z/zThreadLocalData.hpp" #endif @@ -173,23 +171,9 @@ void CompilerToVM::Data::initialize(JVMCI_TRAPS) { #if INCLUDE_ZGC if (UseZGC) { - if (ZGenerational) { - ZPointerVectorLoadBadMask_address = (address) &ZPointerVectorLoadBadMask; - ZPointerVectorStoreBadMask_address = (address) &ZPointerVectorStoreBadMask; - ZPointerVectorStoreGoodMask_address = (address) &ZPointerVectorStoreGoodMask; - } else { - thread_address_bad_mask_offset = in_bytes(XThreadLocalData::address_bad_mask_offset()); - // Initialize the old names for compatibility. The proper XBarrierSetRuntime names are - // exported as addresses in vmStructs_jvmci.cpp as are the new ZBarrierSetRuntime names. - ZBarrierSetRuntime_load_barrier_on_oop_field_preloaded = XBarrierSetRuntime::load_barrier_on_oop_field_preloaded_addr(); - ZBarrierSetRuntime_load_barrier_on_weak_oop_field_preloaded = XBarrierSetRuntime::load_barrier_on_weak_oop_field_preloaded_addr(); - ZBarrierSetRuntime_load_barrier_on_phantom_oop_field_preloaded = XBarrierSetRuntime::load_barrier_on_phantom_oop_field_preloaded_addr(); - ZBarrierSetRuntime_weak_load_barrier_on_oop_field_preloaded = XBarrierSetRuntime::weak_load_barrier_on_oop_field_preloaded_addr(); - ZBarrierSetRuntime_weak_load_barrier_on_weak_oop_field_preloaded = XBarrierSetRuntime::weak_load_barrier_on_weak_oop_field_preloaded_addr(); - ZBarrierSetRuntime_weak_load_barrier_on_phantom_oop_field_preloaded = XBarrierSetRuntime::weak_load_barrier_on_phantom_oop_field_preloaded_addr(); - ZBarrierSetRuntime_load_barrier_on_oop_array = XBarrierSetRuntime::load_barrier_on_oop_array_addr(); - ZBarrierSetRuntime_clone = XBarrierSetRuntime::clone_addr(); - } + ZPointerVectorLoadBadMask_address = (address) &ZPointerVectorLoadBadMask; + ZPointerVectorStoreBadMask_address = (address) &ZPointerVectorStoreBadMask; + ZPointerVectorStoreGoodMask_address = (address) &ZPointerVectorStoreGoodMask; } #endif diff --git a/src/hotspot/share/jvmci/vmStructs_jvmci.cpp b/src/hotspot/share/jvmci/vmStructs_jvmci.cpp index 02e6eaf40f3..530b02db46a 100644 --- a/src/hotspot/share/jvmci/vmStructs_jvmci.cpp +++ b/src/hotspot/share/jvmci/vmStructs_jvmci.cpp @@ -50,7 +50,6 @@ #include "gc/g1/g1ThreadLocalData.hpp" #endif #if INCLUDE_ZGC -#include "gc/x/xBarrierSetRuntime.hpp" #include "gc/z/zBarrierSetAssembler.hpp" #include "gc/z/zBarrierSetRuntime.hpp" #include "gc/z/zThreadLocalData.hpp" @@ -833,15 +832,6 @@ declare_function(os::javaTimeMillis) \ declare_function(os::javaTimeNanos) \ \ - ZGC_ONLY(DECLARE_FUNCTION_FROM_ADDR(declare_function_with_value, XBarrierSetRuntime::load_barrier_on_oop_field_preloaded)) \ - ZGC_ONLY(DECLARE_FUNCTION_FROM_ADDR(declare_function_with_value, XBarrierSetRuntime::load_barrier_on_weak_oop_field_preloaded)) \ - ZGC_ONLY(DECLARE_FUNCTION_FROM_ADDR(declare_function_with_value, XBarrierSetRuntime::load_barrier_on_phantom_oop_field_preloaded)) \ - ZGC_ONLY(DECLARE_FUNCTION_FROM_ADDR(declare_function_with_value, XBarrierSetRuntime::weak_load_barrier_on_oop_field_preloaded)) \ - ZGC_ONLY(DECLARE_FUNCTION_FROM_ADDR(declare_function_with_value, XBarrierSetRuntime::weak_load_barrier_on_weak_oop_field_preloaded)) \ - ZGC_ONLY(DECLARE_FUNCTION_FROM_ADDR(declare_function_with_value, XBarrierSetRuntime::weak_load_barrier_on_phantom_oop_field_preloaded)) \ - ZGC_ONLY(DECLARE_FUNCTION_FROM_ADDR(declare_function_with_value, XBarrierSetRuntime::load_barrier_on_oop_array)) \ - ZGC_ONLY(DECLARE_FUNCTION_FROM_ADDR(declare_function_with_value, XBarrierSetRuntime::clone)) \ - \ ZGC_ONLY(DECLARE_FUNCTION_FROM_ADDR(declare_function_with_value, ZBarrierSetRuntime::load_barrier_on_oop_field_preloaded)) \ ZGC_ONLY(DECLARE_FUNCTION_FROM_ADDR(declare_function_with_value, ZBarrierSetRuntime::load_barrier_on_weak_oop_field_preloaded)) \ ZGC_ONLY(DECLARE_FUNCTION_FROM_ADDR(declare_function_with_value, ZBarrierSetRuntime::load_barrier_on_phantom_oop_field_preloaded)) \ diff --git a/src/hotspot/share/libadt/vectset.cpp b/src/hotspot/share/libadt/vectset.cpp index b0d5d100400..e2eb08b1a34 100644 --- a/src/hotspot/share/libadt/vectset.cpp +++ b/src/hotspot/share/libadt/vectset.cpp @@ -49,9 +49,7 @@ void VectorSet::init(Arena* arena) { // Expand the existing set to a bigger size void VectorSet::grow(uint new_word_capacity) { _nesting.check(_set_arena); // Check if a potential reallocation in the arena is safe - if (new_word_capacity < _size) { - return; // No need to grow - } + assert(new_word_capacity >= _size, "Should have been checked before, use maybe_grow?"); assert(new_word_capacity < (1U << 30), ""); uint x = next_power_of_2(new_word_capacity); if (x > _data_size) { @@ -66,9 +64,7 @@ void VectorSet::grow(uint new_word_capacity) { void VectorSet::insert(uint elem) { uint32_t word = elem >> word_bits; uint32_t mask = 1U << (elem & bit_mask); - if (word >= _size) { - grow(word); - } + maybe_grow(word); _data[word] |= mask; } diff --git a/src/hotspot/share/libadt/vectset.hpp b/src/hotspot/share/libadt/vectset.hpp index eafa60db1fe..fee15566f24 100644 --- a/src/hotspot/share/libadt/vectset.hpp +++ b/src/hotspot/share/libadt/vectset.hpp @@ -49,8 +49,15 @@ class VectorSet : public AnyObj { ReallocMark _nesting; // Safety checks for arena reallocation void init(Arena* arena); + // Grow vector to required word capacity + void maybe_grow(uint new_word_capacity) { + if (new_word_capacity >= _size) { + grow(new_word_capacity); + } + } void grow(uint new_word_capacity); + public: VectorSet(); VectorSet(Arena* arena); @@ -78,7 +85,7 @@ class VectorSet : public AnyObj { // bool test_set(uint elem) { uint32_t word = elem >> word_bits; - grow(word); + maybe_grow(word); uint32_t mask = 1U << (elem & bit_mask); uint32_t data = _data[word]; _data[word] = data | mask; @@ -107,7 +114,7 @@ class VectorSet : public AnyObj { // Fast inlined set void set(uint elem) { uint32_t word = elem >> word_bits; - grow(word); + maybe_grow(word); uint32_t mask = 1U << (elem & bit_mask); _data[word] |= mask; } diff --git a/src/hotspot/share/memory/metaspace.hpp b/src/hotspot/share/memory/metaspace.hpp index fc405a389ee..7076a6a09bb 100644 --- a/src/hotspot/share/memory/metaspace.hpp +++ b/src/hotspot/share/memory/metaspace.hpp @@ -56,7 +56,6 @@ class Metaspace : public AllStatic { StandardMetaspaceType = ZeroMetaspaceType, BootMetaspaceType = StandardMetaspaceType + 1, ClassMirrorHolderMetaspaceType = BootMetaspaceType + 1, - ReflectionMetaspaceType = ClassMirrorHolderMetaspaceType + 1, MetaspaceTypeCount }; diff --git a/src/hotspot/share/memory/metaspace/metaspaceArenaGrowthPolicy.cpp b/src/hotspot/share/memory/metaspace/metaspaceArenaGrowthPolicy.cpp index 592624c25f0..0698c1509cf 100644 --- a/src/hotspot/share/memory/metaspace/metaspaceArenaGrowthPolicy.cpp +++ b/src/hotspot/share/memory/metaspace/metaspaceArenaGrowthPolicy.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2020 SAP SE. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -61,17 +61,6 @@ static const chunklevel_t g_sequ_anon_class[] = { // .. repeat last }; -static const chunklevel_t g_sequ_refl_non_class[] = { - chunklevel::CHUNK_LEVEL_2K, - chunklevel::CHUNK_LEVEL_1K - // .. repeat last -}; - -static const chunklevel_t g_sequ_refl_class[] = { - chunklevel::CHUNK_LEVEL_1K, - // .. repeat last -}; - // Boot class loader: give it large chunks: beyond commit granule size // (typically 64K) the costs for large chunks largely diminishes since // they are committed on the fly. @@ -95,15 +84,12 @@ const ArenaGrowthPolicy* ArenaGrowthPolicy::policy_for_space_type(Metaspace::Met DEFINE_CLASS_FOR_ARRAY(standard_class) DEFINE_CLASS_FOR_ARRAY(anon_non_class) DEFINE_CLASS_FOR_ARRAY(anon_class) - DEFINE_CLASS_FOR_ARRAY(refl_non_class) - DEFINE_CLASS_FOR_ARRAY(refl_class) DEFINE_CLASS_FOR_ARRAY(boot_non_class) DEFINE_CLASS_FOR_ARRAY(boot_class) if (is_class) { switch(space_type) { case Metaspace::StandardMetaspaceType: return &chunk_alloc_sequence_standard_class; - case Metaspace::ReflectionMetaspaceType: return &chunk_alloc_sequence_refl_class; case Metaspace::ClassMirrorHolderMetaspaceType: return &chunk_alloc_sequence_anon_class; case Metaspace::BootMetaspaceType: return &chunk_alloc_sequence_boot_class; default: ShouldNotReachHere(); @@ -111,7 +97,6 @@ const ArenaGrowthPolicy* ArenaGrowthPolicy::policy_for_space_type(Metaspace::Met } else { switch(space_type) { case Metaspace::StandardMetaspaceType: return &chunk_alloc_sequence_standard_non_class; - case Metaspace::ReflectionMetaspaceType: return &chunk_alloc_sequence_refl_non_class; case Metaspace::ClassMirrorHolderMetaspaceType: return &chunk_alloc_sequence_anon_non_class; case Metaspace::BootMetaspaceType: return &chunk_alloc_sequence_boot_non_class; default: ShouldNotReachHere(); diff --git a/src/hotspot/share/memory/metaspace/metaspaceReporter.cpp b/src/hotspot/share/memory/metaspace/metaspaceReporter.cpp index c154fd1db25..3cd9ba5ab87 100644 --- a/src/hotspot/share/memory/metaspace/metaspaceReporter.cpp +++ b/src/hotspot/share/memory/metaspace/metaspaceReporter.cpp @@ -49,7 +49,6 @@ static const char* describe_spacetype(Metaspace::MetaspaceType st) { case Metaspace::StandardMetaspaceType: s = "Standard"; break; case Metaspace::BootMetaspaceType: s = "Boot"; break; case Metaspace::ClassMirrorHolderMetaspaceType: s = "ClassMirrorHolder"; break; - case Metaspace::ReflectionMetaspaceType: s = "Reflection"; break; default: ShouldNotReachHere(); } return s; diff --git a/src/hotspot/share/nmt/memBaseline.cpp b/src/hotspot/share/nmt/memBaseline.cpp index 6f82b2de9f1..270601e9c05 100644 --- a/src/hotspot/share/nmt/memBaseline.cpp +++ b/src/hotspot/share/nmt/memBaseline.cpp @@ -141,7 +141,7 @@ void MemBaseline::baseline_summary() { MallocMemorySummary::snapshot(&_malloc_memory_snapshot); VirtualMemorySummary::snapshot(&_virtual_memory_snapshot); { - MemoryFileTracker::Instance::Locker lock; + NmtVirtualMemoryLocker ml; MemoryFileTracker::Instance::summary_snapshot(&_virtual_memory_snapshot); } diff --git a/src/hotspot/share/nmt/memReporter.cpp b/src/hotspot/share/nmt/memReporter.cpp index 6ce6206ebcc..15767da276c 100644 --- a/src/hotspot/share/nmt/memReporter.cpp +++ b/src/hotspot/share/nmt/memReporter.cpp @@ -465,7 +465,7 @@ void MemDetailReporter::report_virtual_memory_region(const ReservedMemoryRegion* void MemDetailReporter::report_memory_file_allocations() { stringStream st; { - MemoryFileTracker::Instance::Locker lock; + NmtVirtualMemoryLocker ml; MemoryFileTracker::Instance::print_all_reports_on(&st, scale()); } output()->print_raw(st.freeze()); diff --git a/src/hotspot/share/nmt/memTracker.hpp b/src/hotspot/share/nmt/memTracker.hpp index 6ba1db2e7ff..92640430e1c 100644 --- a/src/hotspot/share/nmt/memTracker.hpp +++ b/src/hotspot/share/nmt/memTracker.hpp @@ -31,7 +31,6 @@ #include "nmt/threadStackTracker.hpp" #include "nmt/virtualMemoryTracker.hpp" #include "runtime/mutexLocker.hpp" -#include "runtime/threadCritical.hpp" #include "utilities/debug.hpp" #include "utilities/nativeCallStack.hpp" @@ -125,7 +124,7 @@ class MemTracker : AllStatic { assert_post_init(); if (!enabled()) return; if (addr != nullptr) { - ThreadCritical tc; + NmtVirtualMemoryLocker ml; VirtualMemoryTracker::add_reserved_region((address)addr, size, stack, mem_tag); } } @@ -151,7 +150,7 @@ class MemTracker : AllStatic { assert_post_init(); if (!enabled()) return; if (addr != nullptr) { - ThreadCritical tc; + NmtVirtualMemoryLocker ml; VirtualMemoryTracker::add_reserved_region((address)addr, size, stack, mem_tag); VirtualMemoryTracker::add_committed_region((address)addr, size, stack); } @@ -162,7 +161,7 @@ class MemTracker : AllStatic { assert_post_init(); if (!enabled()) return; if (addr != nullptr) { - ThreadCritical tc; + NmtVirtualMemoryLocker ml; VirtualMemoryTracker::add_committed_region((address)addr, size, stack); } } @@ -170,7 +169,7 @@ class MemTracker : AllStatic { static inline MemoryFileTracker::MemoryFile* register_file(const char* descriptive_name) { assert_post_init(); if (!enabled()) return nullptr; - MemoryFileTracker::Instance::Locker lock; + NmtVirtualMemoryLocker ml; return MemoryFileTracker::Instance::make_file(descriptive_name); } @@ -178,7 +177,7 @@ class MemTracker : AllStatic { assert_post_init(); if (!enabled()) return; assert(file != nullptr, "must be"); - MemoryFileTracker::Instance::Locker lock; + NmtVirtualMemoryLocker ml; MemoryFileTracker::Instance::free_file(file); } @@ -187,7 +186,7 @@ class MemTracker : AllStatic { assert_post_init(); if (!enabled()) return; assert(file != nullptr, "must be"); - MemoryFileTracker::Instance::Locker lock; + NmtVirtualMemoryLocker ml; MemoryFileTracker::Instance::allocate_memory(file, offset, size, stack, mem_tag); } @@ -196,7 +195,7 @@ class MemTracker : AllStatic { assert_post_init(); if (!enabled()) return; assert(file != nullptr, "must be"); - MemoryFileTracker::Instance::Locker lock; + NmtVirtualMemoryLocker ml; MemoryFileTracker::Instance::free_memory(file, offset, size); } @@ -210,7 +209,7 @@ class MemTracker : AllStatic { assert_post_init(); if (!enabled()) return; if (addr != nullptr) { - ThreadCritical tc; + NmtVirtualMemoryLocker ml; VirtualMemoryTracker::split_reserved_region((address)addr, size, split, mem_tag, split_tag); } } @@ -219,7 +218,7 @@ class MemTracker : AllStatic { assert_post_init(); if (!enabled()) return; if (addr != nullptr) { - ThreadCritical tc; + NmtVirtualMemoryLocker ml; VirtualMemoryTracker::set_reserved_region_type((address)addr, mem_tag); } } diff --git a/src/hotspot/share/nmt/memoryFileTracker.cpp b/src/hotspot/share/nmt/memoryFileTracker.cpp index ede483ed337..ab4f8b6d1f3 100644 --- a/src/hotspot/share/nmt/memoryFileTracker.cpp +++ b/src/hotspot/share/nmt/memoryFileTracker.cpp @@ -29,13 +29,11 @@ #include "nmt/nmtCommon.hpp" #include "nmt/nmtNativeCallStackStorage.hpp" #include "nmt/vmatree.hpp" -#include "runtime/mutex.hpp" #include "utilities/growableArray.hpp" #include "utilities/nativeCallStack.hpp" #include "utilities/ostream.hpp" MemoryFileTracker* MemoryFileTracker::Instance::_tracker = nullptr; -PlatformMutex* MemoryFileTracker::Instance::_mutex = nullptr; MemoryFileTracker::MemoryFileTracker(bool is_detailed_mode) : _stack_storage(is_detailed_mode), _files() {} @@ -132,7 +130,6 @@ bool MemoryFileTracker::Instance::initialize(NMT_TrackingLevel tracking_level) { _tracker = static_cast(os::malloc(sizeof(MemoryFileTracker), mtNMT)); if (_tracker == nullptr) return false; new (_tracker) MemoryFileTracker(tracking_level == NMT_TrackingLevel::NMT_detail); - _mutex = new PlatformMutex(); return true; } @@ -193,11 +190,3 @@ void MemoryFileTracker::summary_snapshot(VirtualMemorySnapshot* snapshot) const void MemoryFileTracker::Instance::summary_snapshot(VirtualMemorySnapshot* snapshot) { _tracker->summary_snapshot(snapshot); } - -MemoryFileTracker::Instance::Locker::Locker() { - MemoryFileTracker::Instance::_mutex->lock(); -} - -MemoryFileTracker::Instance::Locker::~Locker() { - MemoryFileTracker::Instance::_mutex->unlock(); -} diff --git a/src/hotspot/share/nmt/memoryFileTracker.hpp b/src/hotspot/share/nmt/memoryFileTracker.hpp index 42902701a16..911f10baf98 100644 --- a/src/hotspot/share/nmt/memoryFileTracker.hpp +++ b/src/hotspot/share/nmt/memoryFileTracker.hpp @@ -30,7 +30,6 @@ #include "nmt/nmtNativeCallStackStorage.hpp" #include "nmt/virtualMemoryTracker.hpp" #include "nmt/vmatree.hpp" -#include "runtime/mutex.hpp" #include "runtime/os.inline.hpp" #include "utilities/growableArray.hpp" #include "utilities/nativeCallStack.hpp" @@ -81,14 +80,8 @@ class MemoryFileTracker { class Instance : public AllStatic { static MemoryFileTracker* _tracker; - static PlatformMutex* _mutex; public: - class Locker : public StackObj { - public: - Locker(); - ~Locker(); - }; static bool initialize(NMT_TrackingLevel tracking_level); diff --git a/src/hotspot/share/nmt/nmtCommon.hpp b/src/hotspot/share/nmt/nmtCommon.hpp index 3f72960f21f..4422d340634 100644 --- a/src/hotspot/share/nmt/nmtCommon.hpp +++ b/src/hotspot/share/nmt/nmtCommon.hpp @@ -29,6 +29,7 @@ #include "memory/allStatic.hpp" #include "nmt/memTag.hpp" +#include "runtime/mutexLocker.hpp" #include "utilities/align.hpp" #include "utilities/globalDefinitions.hpp" @@ -137,5 +138,13 @@ class NMTUtil : AllStatic { static S _strings[mt_number_of_tags]; }; +// Same as MutexLocker but can be used during VM init. +// Performs no action if given a null mutex or with detached threads. +class NmtVirtualMemoryLocker: public ConditionalMutexLocker { +public: + NmtVirtualMemoryLocker() : + ConditionalMutexLocker(NmtVirtualMemory_lock, Thread::current_or_null_safe() != nullptr, Mutex::_no_safepoint_check_flag) { + } +}; #endif // SHARE_NMT_NMTCOMMON_HPP diff --git a/src/hotspot/share/nmt/threadStackTracker.cpp b/src/hotspot/share/nmt/threadStackTracker.cpp index 6f112fa8fc5..42af67d6464 100644 --- a/src/hotspot/share/nmt/threadStackTracker.cpp +++ b/src/hotspot/share/nmt/threadStackTracker.cpp @@ -29,7 +29,6 @@ #include "nmt/threadStackTracker.hpp" #include "nmt/virtualMemoryTracker.hpp" #include "runtime/os.hpp" -#include "runtime/threadCritical.hpp" #include "utilities/align.hpp" #include "utilities/debug.hpp" #include "utilities/globalDefinitions.hpp" @@ -53,7 +52,7 @@ void ThreadStackTracker::new_thread_stack(void* base, size_t size, const NativeC assert(base != nullptr, "Should have been filtered"); align_thread_stack_boundaries_inward(base, size); - ThreadCritical tc; + NmtVirtualMemoryLocker ml; VirtualMemoryTracker::add_reserved_region((address)base, size, stack, mtThreadStack); _thread_count++; } @@ -63,7 +62,7 @@ void ThreadStackTracker::delete_thread_stack(void* base, size_t size) { assert(base != nullptr, "Should have been filtered"); align_thread_stack_boundaries_inward(base, size); - ThreadCritical tc; + NmtVirtualMemoryLocker ml; VirtualMemoryTracker::remove_released_region((address)base, size); _thread_count--; } diff --git a/src/hotspot/share/nmt/virtualMemoryTracker.cpp b/src/hotspot/share/nmt/virtualMemoryTracker.cpp index d298381f103..8b0f2f4d7a4 100644 --- a/src/hotspot/share/nmt/virtualMemoryTracker.cpp +++ b/src/hotspot/share/nmt/virtualMemoryTracker.cpp @@ -30,7 +30,6 @@ #include "nmt/threadStackTracker.hpp" #include "nmt/virtualMemoryTracker.hpp" #include "runtime/os.hpp" -#include "runtime/threadCritical.hpp" #include "utilities/ostream.hpp" VirtualMemorySnapshot VirtualMemorySummary::_snapshot; @@ -621,6 +620,7 @@ class SnapshotThreadStackWalker : public VirtualMemoryWalker { SnapshotThreadStackWalker() {} bool do_allocation_site(const ReservedMemoryRegion* rgn) { + assert_lock_strong(NmtVirtualMemory_lock); if (rgn->mem_tag() == mtThreadStack) { address stack_bottom = rgn->thread_stack_uncommitted_bottom(); address committed_start; @@ -661,7 +661,7 @@ void VirtualMemoryTracker::snapshot_thread_stacks() { bool VirtualMemoryTracker::walk_virtual_memory(VirtualMemoryWalker* walker) { assert(_reserved_regions != nullptr, "Sanity check"); - ThreadCritical tc; + NmtVirtualMemoryLocker ml; // Check that the _reserved_regions haven't been deleted. if (_reserved_regions != nullptr) { LinkedListNode* head = _reserved_regions->head(); diff --git a/src/hotspot/share/oops/constMethodFlags.hpp b/src/hotspot/share/oops/constMethodFlags.hpp index 236f25ea746..031ebe44a96 100644 --- a/src/hotspot/share/oops/constMethodFlags.hpp +++ b/src/hotspot/share/oops/constMethodFlags.hpp @@ -60,6 +60,7 @@ class ConstMethodFlags { flag(jvmti_mount_transition , 1 << 18) \ flag(deprecated , 1 << 19) \ flag(deprecated_for_removal , 1 << 20) \ + flag(jvmti_hide_events , 1 << 21) \ /* end of list */ #define CM_FLAGS_ENUM_NAME(name, value) _misc_##name = value, diff --git a/src/hotspot/share/oops/method.hpp b/src/hotspot/share/oops/method.hpp index 6ffaebcdfda..d42089d3a5c 100644 --- a/src/hotspot/share/oops/method.hpp +++ b/src/hotspot/share/oops/method.hpp @@ -746,6 +746,9 @@ class Method : public Metadata { bool changes_current_thread() const { return constMethod()->changes_current_thread(); } void set_changes_current_thread() { constMethod()->set_changes_current_thread(); } + bool jvmti_hide_events() const { return constMethod()->jvmti_hide_events(); } + void set_jvmti_hide_events() { constMethod()->set_jvmti_hide_events(); } + bool jvmti_mount_transition() const { return constMethod()->jvmti_mount_transition(); } void set_jvmti_mount_transition() { constMethod()->set_jvmti_mount_transition(); } diff --git a/src/hotspot/share/oops/oop.cpp b/src/hotspot/share/oops/oop.cpp index 38dee491a10..acb47d4c7cf 100644 --- a/src/hotspot/share/oops/oop.cpp +++ b/src/hotspot/share/oops/oop.cpp @@ -178,7 +178,7 @@ void* oopDesc::load_oop_raw(oop obj, int offset) { oop oopDesc::obj_field_acquire(int offset) const { return HeapAccess::oop_load_at(as_oop(), offset); } -void oopDesc::obj_field_put_raw(int offset, oop value) { assert(!(UseZGC && ZGenerational), "Generational ZGC must use store barriers"); +void oopDesc::obj_field_put_raw(int offset, oop value) { assert(!UseZGC, "ZGC must use store barriers"); RawAccess<>::oop_store_at(as_oop(), offset, value); } void oopDesc::release_obj_field_put(int offset, oop value) { HeapAccess::oop_store_at(as_oop(), offset, value); } void oopDesc::obj_field_put_volatile(int offset, oop value) { HeapAccess::oop_store_at(as_oop(), offset, value); } diff --git a/src/hotspot/share/oops/stackChunkOop.inline.hpp b/src/hotspot/share/oops/stackChunkOop.inline.hpp index a54b8159e7e..7b955d551d7 100644 --- a/src/hotspot/share/oops/stackChunkOop.inline.hpp +++ b/src/hotspot/share/oops/stackChunkOop.inline.hpp @@ -88,20 +88,7 @@ inline void stackChunkOopDesc::set_max_thawing_size(int value) { jdk_internal_vm_StackChunk::set_maxThawingSize(this, (jint)value); } -inline oop stackChunkOopDesc::cont() const { - if (UseZGC && !ZGenerational) { - assert(!UseCompressedOops, "Non-generational ZGC does not support compressed oops"); - // The state of the cont oop is used by XCollectedHeap::requires_barriers, - // to determine the age of the stackChunkOopDesc. For that to work, it is - // only the GC that is allowed to perform a load barrier on the oop. - // This function is used by non-GC code and therfore create a stack-local - // copy on the oop and perform the load barrier on that copy instead. - oop obj = jdk_internal_vm_StackChunk::cont_raw(as_oop()); - obj = (oop)NativeAccess<>::oop_load(&obj); - return obj; - } - return jdk_internal_vm_StackChunk::cont(as_oop()); -} +inline oop stackChunkOopDesc::cont() const { return jdk_internal_vm_StackChunk::cont(as_oop()); } inline void stackChunkOopDesc::set_cont(oop value) { jdk_internal_vm_StackChunk::set_cont(this, value); } template inline void stackChunkOopDesc::set_cont_raw(oop value) { jdk_internal_vm_StackChunk::set_cont_raw

    (this, value); } diff --git a/src/hotspot/share/opto/classes.hpp b/src/hotspot/share/opto/classes.hpp index de6d48ebdf9..60ee3e01137 100644 --- a/src/hotspot/share/opto/classes.hpp +++ b/src/hotspot/share/opto/classes.hpp @@ -270,8 +270,9 @@ macro(Opaque1) macro(OpaqueLoopInit) macro(OpaqueLoopStride) macro(OpaqueZeroTripGuard) -macro(Opaque4) +macro(OpaqueNotNull) macro(OpaqueInitializedAssertionPredicate) +macro(OpaqueTemplateAssertionPredicate) macro(ProfileBoolean) macro(OrI) macro(OrL) @@ -329,6 +330,8 @@ shmacro(ShenandoahLoadReferenceBarrier) macro(SCMemProj) macro(CopySignD) macro(CopySignF) +macro(SaturatingAddV) +macro(SaturatingSubV) macro(SignumD) macro(SignumF) macro(SignumVF) @@ -435,6 +438,8 @@ macro(XorV) macro(XorReductionV) macro(MinV) macro(MaxV) +macro(UMinV) +macro(UMaxV) macro(MinReductionV) macro(MaxReductionV) macro(CompressV) diff --git a/src/hotspot/share/opto/compile.cpp b/src/hotspot/share/opto/compile.cpp index c6b316e5277..a452d439a54 100644 --- a/src/hotspot/share/opto/compile.cpp +++ b/src/hotspot/share/opto/compile.cpp @@ -393,7 +393,7 @@ void Compile::remove_useless_node(Node* dead) { if (dead->is_expensive()) { remove_expensive_node(dead); } - if (dead->Opcode() == Op_Opaque4) { + if (dead->is_OpaqueTemplateAssertionPredicate()) { remove_template_assertion_predicate_opaq(dead); } if (dead->is_ParsePredicate()) { diff --git a/src/hotspot/share/opto/compile.hpp b/src/hotspot/share/opto/compile.hpp index 6568828125f..05e24bf3f6e 100644 --- a/src/hotspot/share/opto/compile.hpp +++ b/src/hotspot/share/opto/compile.hpp @@ -370,7 +370,8 @@ class Compile : public Phase { GrowableArray _intrinsics; // List of intrinsics. GrowableArray _macro_nodes; // List of nodes which need to be expanded before matching. GrowableArray _parse_predicates; // List of Parse Predicates. - GrowableArray _template_assertion_predicate_opaqs; // List of Opaque4 nodes for Template Assertion Predicates. + // List of OpaqueTemplateAssertionPredicateNode nodes for Template Assertion Predicates. + GrowableArray _template_assertion_predicate_opaqs; GrowableArray _expensive_nodes; // List of nodes that are expensive to compute and that we'd better not let the GVN freely common GrowableArray _for_post_loop_igvn; // List of nodes for IGVN after loop opts are over GrowableArray _unstable_if_traps; // List of ifnodes after IGVN @@ -770,7 +771,7 @@ class Compile : public Phase { void add_template_assertion_predicate_opaq(Node* n) { assert(!_template_assertion_predicate_opaqs.contains(n), - "duplicate entry in template assertion predicate opaque4 list"); + "Duplicate entry in Template Assertion Predicate OpaqueTemplateAssertionPredicate list"); _template_assertion_predicate_opaqs.append(n); } diff --git a/src/hotspot/share/opto/domgraph.cpp b/src/hotspot/share/opto/domgraph.cpp index 84f83ef131b..6bed1b1a2bd 100644 --- a/src/hotspot/share/opto/domgraph.cpp +++ b/src/hotspot/share/opto/domgraph.cpp @@ -410,10 +410,9 @@ void PhaseIdealLoop::Dominators() { // Setup mappings from my Graph to Tarjan's stuff and back // Note: Tarjan uses 1-based arrays NTarjan *ntarjan = NEW_RESOURCE_ARRAY(NTarjan,C->unique()+1); - // Initialize _control field for fast reference - int i; - for( i= C->unique()-1; i>=0; i-- ) - ntarjan[i]._control = nullptr; + // Initialize all fields at once for safety and extra performance. + // Among other things, this initializes _control field for fast reference. + memset(ntarjan, 0, (C->unique() + 1)*sizeof(NTarjan)); // Store the DFS order for the main loop const uint fill_value = max_juint; @@ -429,6 +428,7 @@ void PhaseIdealLoop::Dominators() { ntarjan[0]._size = ntarjan[0]._semi = 0; ntarjan[0]._label = &ntarjan[0]; + int i; for( i = dfsnum-1; i>1; i-- ) { // For all nodes in reverse DFS order NTarjan *w = &ntarjan[i]; // Get Node from DFS assert(w->_control != nullptr,"bad DFS walk"); diff --git a/src/hotspot/share/opto/escape.cpp b/src/hotspot/share/opto/escape.cpp index b26480ba9b3..11c21636024 100644 --- a/src/hotspot/share/opto/escape.cpp +++ b/src/hotspot/share/opto/escape.cpp @@ -574,14 +574,14 @@ bool ConnectionGraph::can_reduce_check_users(Node* n, uint nesting) const { // CmpP/N used by the If controlling the cast. if (use->in(0)->is_IfTrue() || use->in(0)->is_IfFalse()) { Node* iff = use->in(0)->in(0); - // We may have Opaque4 node between If and Bool nodes. - // Bail out in such case - we need to preserve Opaque4 for correct - // processing predicates after loop opts. + // We may have an OpaqueNotNull node between If and Bool nodes. Bail out in such case. bool can_reduce = (iff->Opcode() == Op_If) && iff->in(1)->is_Bool() && iff->in(1)->in(1)->is_Cmp(); if (can_reduce) { Node* iff_cmp = iff->in(1)->in(1); int opc = iff_cmp->Opcode(); can_reduce = (opc == Op_CmpP || opc == Op_CmpN) && can_reduce_cmp(n, iff_cmp); + } else { + assert(iff->in(1)->is_OpaqueNotNull(), "must be OpaqueNotNull"); } if (!can_reduce) { #ifndef PRODUCT diff --git a/src/hotspot/share/opto/graphKit.cpp b/src/hotspot/share/opto/graphKit.cpp index fe8ca76e318..ac74abd7e55 100644 --- a/src/hotspot/share/opto/graphKit.cpp +++ b/src/hotspot/share/opto/graphKit.cpp @@ -1458,7 +1458,7 @@ Node* GraphKit::cast_not_null(Node* obj, bool do_replace_in_map) { // In that case that data path will die and we need the control path // to become dead as well to keep the graph consistent. So we have to // add a check for null for which one branch can't be taken. It uses -// an Opaque4 node that will cause the check to be removed after loop +// an OpaqueNotNull node that will cause the check to be removed after loop // opts so the test goes away and the compiled code doesn't execute a // useless check. Node* GraphKit::must_be_not_null(Node* value, bool do_replace_in_map) { @@ -1466,9 +1466,9 @@ Node* GraphKit::must_be_not_null(Node* value, bool do_replace_in_map) { return value; } Node* chk = _gvn.transform(new CmpPNode(value, null())); - Node *tst = _gvn.transform(new BoolNode(chk, BoolTest::ne)); - Node* opaq = _gvn.transform(new Opaque4Node(C, tst, intcon(1))); - IfNode *iff = new IfNode(control(), opaq, PROB_MAX, COUNT_UNKNOWN); + Node* tst = _gvn.transform(new BoolNode(chk, BoolTest::ne)); + Node* opaq = _gvn.transform(new OpaqueNotNullNode(C, tst)); + IfNode* iff = new IfNode(control(), opaq, PROB_MAX, COUNT_UNKNOWN); _gvn.set_type(iff, iff->Value(&_gvn)); if (!tst->is_Con()) { record_for_igvn(iff); diff --git a/src/hotspot/share/opto/loopPredicate.cpp b/src/hotspot/share/opto/loopPredicate.cpp index 92f4e3582e9..d1de9c98101 100644 --- a/src/hotspot/share/opto/loopPredicate.cpp +++ b/src/hotspot/share/opto/loopPredicate.cpp @@ -338,7 +338,8 @@ void PhaseIdealLoop::clone_assertion_predicates_to_unswitched_loop(IdealLoopTree } // Put all Assertion Predicate projections on a list, starting at 'predicate' and going up in the tree. If 'get_opaque' -// is set, then the Opaque4 nodes of the Assertion Predicates are put on the list instead of the projections. +// is set, then the OpaqueTemplateAssertionPredicate nodes of the Assertion Predicates are put on the list instead of +// the projections. void PhaseIdealLoop::get_assertion_predicates(Node* predicate, Unique_Node_List& list, bool get_opaque) { ParsePredicateNode* parse_predicate = predicate->in(0)->as_ParsePredicate(); ProjNode* uncommon_proj = parse_predicate->proj_out(1 - predicate->as_Proj()->_con); @@ -353,10 +354,10 @@ void PhaseIdealLoop::get_assertion_predicates(Node* predicate, Unique_Node_List& } Node* bol = iff->in(1); assert(!bol->is_OpaqueInitializedAssertionPredicate(), "should not find an Initialized Assertion Predicate"); - if (bol->is_Opaque4()) { + if (bol->is_OpaqueTemplateAssertionPredicate()) { assert(assertion_predicate_has_loop_opaque_node(iff), "must find OpaqueLoop* nodes"); if (get_opaque) { - // Collect the predicate Opaque4 node. + // Collect the OpaqueTemplateAssertionPredicateNode. list.push(bol); } else { // Collect the predicate projection. @@ -374,11 +375,11 @@ IfProjNode* PhaseIdealLoop::clone_assertion_predicate_for_unswitched_loops(IfNod IfProjNode* predicate, Deoptimization::DeoptReason reason, ParsePredicateSuccessProj* parse_predicate_proj) { - TemplateAssertionExpression template_assertion_expression(template_assertion_predicate->in(1)->as_Opaque4()); - Opaque4Node* cloned_opaque4_node = template_assertion_expression.clone(parse_predicate_proj->in(0)->in(0), this); + TemplateAssertionExpression template_assertion_expression(template_assertion_predicate->in(1)->as_OpaqueTemplateAssertionPredicate()); + OpaqueTemplateAssertionPredicateNode* cloned_opaque_node = template_assertion_expression.clone(parse_predicate_proj->in(0)->in(0), this); IfProjNode* if_proj = create_new_if_for_predicate(parse_predicate_proj, nullptr, reason, template_assertion_predicate->Opcode(), false); - _igvn.replace_input_of(if_proj->in(0), 1, cloned_opaque4_node); + _igvn.replace_input_of(if_proj->in(0), 1, cloned_opaque_node); _igvn.replace_input_of(parse_predicate_proj->in(0), 0, if_proj); set_idom(parse_predicate_proj->in(0), if_proj, dom_depth(if_proj)); return if_proj; diff --git a/src/hotspot/share/opto/loopTransform.cpp b/src/hotspot/share/opto/loopTransform.cpp index 453622b4473..f5a7ffcf92a 100644 --- a/src/hotspot/share/opto/loopTransform.cpp +++ b/src/hotspot/share/opto/loopTransform.cpp @@ -762,7 +762,7 @@ void PhaseIdealLoop::do_peeling(IdealLoopTree *loop, Node_List &old_new) { // Step 1: Clone the loop body. The clone becomes the peeled iteration. // The pre-loop illegally has 2 control users (old & new loops). - const uint idx_before_clone = Compile::current()->unique(); + const uint first_node_index_in_cloned_loop_body = Compile::current()->unique(); LoopNode* outer_loop_head = head->skip_strip_mined(); clone_loop(loop, old_new, dom_depth(outer_loop_head), ControlAroundStripMined); @@ -815,19 +815,8 @@ void PhaseIdealLoop::do_peeling(IdealLoopTree *loop, Node_List &old_new) { // Step 5: Assertion Predicates initialization if (counted_loop && UseLoopPredicate) { - CountedLoopNode *cl_head = head->as_CountedLoop(); - Node* init = cl_head->init_trip(); - Node* stride = cl_head->stride(); - IdealLoopTree* outer_loop = get_loop(outer_loop_head); - const Predicates predicates(new_head->in(LoopNode::EntryControl)); - initialize_assertion_predicates_for_peeled_loop(predicates.loop_predicate_block(), - outer_loop_head, dd_outer_loop_head, - init, stride, outer_loop, - idx_before_clone, old_new); - initialize_assertion_predicates_for_peeled_loop(predicates.profiled_loop_predicate_block(), - outer_loop_head, dd_outer_loop_head, - init, stride, outer_loop, - idx_before_clone, old_new); + initialize_assertion_predicates_for_peeled_loop(new_head->as_CountedLoop(), head->as_CountedLoop(), + first_node_index_in_cloned_loop_body, old_new); } // Now force out all loop-invariant dominating tests. The optimizer @@ -1189,8 +1178,10 @@ bool IdealLoopTree::policy_range_check(PhaseIdealLoop* phase, bool provisional, continue; } if (!bol->is_Bool()) { - assert(bol->is_Opaque4() || bol->is_OpaqueInitializedAssertionPredicate(), - "Opaque node of non-null-check or of Initialized Assertion Predicate"); + assert(bol->is_OpaqueNotNull() || + bol->is_OpaqueTemplateAssertionPredicate() || + bol->is_OpaqueInitializedAssertionPredicate(), + "Opaque node of a non-null-check or an Assertion Predicate"); continue; } if (bol->as_Bool()->_test._test == BoolTest::ne) { @@ -1359,7 +1350,7 @@ void PhaseIdealLoop::copy_assertion_predicates_to_main_loop_helper(const Predica break; Node* bol = iff->in(1); assert(!bol->is_OpaqueInitializedAssertionPredicate(), "should not find an Initialized Assertion Predicate"); - if (bol->is_Opaque4()) { + if (bol->is_OpaqueTemplateAssertionPredicate()) { // Clone the Assertion Predicate twice and initialize one with the initial // value of the loop induction variable. Leave the other predicate // to be initialized when increasing the stride during loop unrolling. @@ -1399,11 +1390,11 @@ void PhaseIdealLoop::copy_assertion_predicates_to_main_loop_helper(const Predica } } +#ifdef ASSERT bool PhaseIdealLoop::assertion_predicate_has_loop_opaque_node(IfNode* iff) { uint init; uint stride; count_opaque_loop_nodes(iff->in(1)->in(1), init, stride); -#ifdef ASSERT ResourceMark rm; Unique_Node_List wq; wq.clear(); @@ -1429,7 +1420,6 @@ bool PhaseIdealLoop::assertion_predicate_has_loop_opaque_node(IfNode* iff) { } } assert(init == verif_init && stride == verif_stride, "missed opaque node"); -#endif assert(stride == 0 || init != 0, "init should be there every time stride is"); return init != 0; } @@ -1458,6 +1448,7 @@ void PhaseIdealLoop::count_opaque_loop_nodes(Node* n, uint& init, uint& stride) } } } +#endif // ASSERT // Create an Initialized Assertion Predicate from the template_assertion_predicate IfTrueNode* PhaseIdealLoop::create_initialized_assertion_predicate(IfNode* template_assertion_predicate, Node* new_init, @@ -1475,14 +1466,15 @@ IfTrueNode* PhaseIdealLoop::create_initialized_assertion_predicate(IfNode* templ // Clone the Template Assertion Predicate and set a new OpaqueLoopInitNode to create a new Template Assertion Predicate. // This is done when creating a new Template Assertion Predicate for the main loop which requires a new init node. -// We keep the Opaque4 node since it's still a template. Since the templates are eventually removed after loop opts, -// these are never executed. We therefore insert a Halt node instead of an uncommon trap. +// We keep the OpaqueTemplateAssertionPredicate node since it's still a template. Since the templates are eventually +// removed after loop opts, these are never executed. We therefore insert a Halt node instead of an uncommon trap. Node* PhaseIdealLoop::clone_template_assertion_predicate(IfNode* iff, Node* new_init, Node* predicate, Node* uncommon_proj, Node* control, IdealLoopTree* outer_loop, Node* new_control) { assert(assertion_predicate_has_loop_opaque_node(iff), "must find OpaqueLoop* nodes for Template Assertion Predicate"); - TemplateAssertionExpression template_assertion_expression(iff->in(1)->as_Opaque4()); + TemplateAssertionExpression template_assertion_expression(iff->in(1)->as_OpaqueTemplateAssertionPredicate()); assert(new_init->is_OpaqueLoopInit(), "only for creating new Template Assertion Predicates"); - Opaque4Node* new_opaque_node = template_assertion_expression.clone_and_replace_init(new_init, control, this); + OpaqueTemplateAssertionPredicateNode* new_opaque_node = + template_assertion_expression.clone_and_replace_init(new_init, control, this); AssertionPredicateIfCreator assertion_predicate_if_creator(this); IfTrueNode* success_proj = assertion_predicate_if_creator.create_for_template(new_control, iff->Opcode(), new_opaque_node @@ -1922,18 +1914,13 @@ void PhaseIdealLoop::update_main_loop_assertion_predicates(Node* ctrl, CountedLo break; } Node* bol = iff->in(1); - if (bol->is_Opaque4()) { - if (assertion_predicate_has_loop_opaque_node(iff)) { - // This is a Template Assertion Predicate for the initial or last access. - // Create an Initialized Assertion Predicates for it accordingly: - // - For the initial access a[init] (same as before) - // - For the last access a[init+new_stride-orig_stride] (with the new unroll stride) - prev_proj = create_initialized_assertion_predicate(iff, init, max_value, prev_proj); - } else { - // Ignore Opaque4 from a non-null-check for an intrinsic or unsafe access. This could happen when we maximally - // unroll a non-main loop with such an If with an Opaque4 node directly above the loop entry. - assert(!loop_head->is_main_loop(), "Opaque4 node from a non-null check - should not be at main loop"); - } + if (bol->is_OpaqueTemplateAssertionPredicate()) { + assert(assertion_predicate_has_loop_opaque_node(iff), "must find OpaqueLoop* nodes"); + // This is a Template Assertion Predicate for the initial or last access. + // Create an Initialized Assertion Predicates for it accordingly: + // - For the initial access a[init] (same as before) + // - For the last access a[init+new_stride-orig_stride] (with the new unroll stride) + prev_proj = create_initialized_assertion_predicate(iff, init, max_value, prev_proj); } else if (bol->is_OpaqueInitializedAssertionPredicate()) { // This is one of the two Initialized Assertion Predicates: // - For the initial access a[init] @@ -1941,6 +1928,7 @@ void PhaseIdealLoop::update_main_loop_assertion_predicates(Node* ctrl, CountedLo // We could keep the one for the initial access but we do not know which one we currently have here. Just kill both. _igvn.replace_input_of(iff, 1, _igvn.intcon(1)); } + assert(!bol->is_OpaqueNotNull() || !loop_head->is_main_loop(), "OpaqueNotNull should not be at main loop"); entry = entry->in(0)->in(0); } if (prev_proj != ctrl) { @@ -1967,7 +1955,7 @@ void PhaseIdealLoop::copy_assertion_predicates_to_post_loop(LoopNode* main_loop_ if (!proj->unique_ctrl_out()->is_Halt()) { break; } - if (iff->in(1)->is_Opaque4()) { + if (iff->in(1)->is_OpaqueTemplateAssertionPredicate()) { // Initialize from Template Assertion Predicate. prev_proj = create_initialized_assertion_predicate(iff, init, stride, prev_proj); } @@ -1979,55 +1967,32 @@ void PhaseIdealLoop::copy_assertion_predicates_to_post_loop(LoopNode* main_loop_ } } -void PhaseIdealLoop::initialize_assertion_predicates_for_peeled_loop(const PredicateBlock* predicate_block, - LoopNode* outer_loop_head, - const int dd_outer_loop_head, Node* init, - Node* stride, IdealLoopTree* outer_loop, - const uint idx_before_clone, - const Node_List &old_new) { - if (!predicate_block->has_parse_predicate()) { - return; - } - Node* input_proj = outer_loop_head->in(LoopNode::EntryControl); - const Node* parse_predicate_uncommon_trap = predicate_block->parse_predicate()->uncommon_trap(); - Node* next_regular_predicate_proj = predicate_block->skip_parse_predicate(); - while (next_regular_predicate_proj->is_IfProj()) { - IfNode* iff = next_regular_predicate_proj->in(0)->as_If(); - ProjNode* uncommon_proj = iff->proj_out(1 - next_regular_predicate_proj->as_Proj()->_con); - if (uncommon_proj->unique_ctrl_out() != parse_predicate_uncommon_trap) { - // Does not belong to this Predicate Block anymore. - break; - } - Node* bol = iff->in(1); - assert(!bol->is_OpaqueInitializedAssertionPredicate(), "should not find an Initialized Assertion Predicate"); - if (bol->is_Opaque4()) { - // Initialize from Template Assertion Predicate. - input_proj = create_initialized_assertion_predicate(iff, init, stride, input_proj); - - // Rewire any control inputs from the old Assertion Predicates above the peeled iteration down to the initialized - // Assertion Predicates above the peeled loop. - for (DUIterator i = next_regular_predicate_proj->outs(); next_regular_predicate_proj->has_out(i); i++) { - Node* dependent = next_regular_predicate_proj->out(i); - Node* new_node = old_new[dependent->_idx]; - - if (!dependent->is_CFG() && - dependent->_idx < idx_before_clone && // old node - new_node != nullptr && // cloned - new_node->_idx >= idx_before_clone) { // for peeling - // The old nodes from the peeled loop still point to the predicate above the peeled loop. - // We need to rewire the dependencies to the newly Initialized Assertion Predicates. - _igvn.replace_input_of(dependent, 0, input_proj); - --i; // correct for just deleted predicate->out(i) - } - } - } - next_regular_predicate_proj = iff->in(0); - } - - _igvn.replace_input_of(outer_loop_head, LoopNode::EntryControl, input_proj); - set_idom(outer_loop_head, input_proj, dd_outer_loop_head); +void PhaseIdealLoop::initialize_assertion_predicates_for_peeled_loop(CountedLoopNode* peeled_loop_head, + CountedLoopNode* remaining_loop_head, + const uint first_node_index_in_cloned_loop_body, + const Node_List& old_new) { + const NodeInOriginalLoopBody node_in_original_loop_body(first_node_index_in_cloned_loop_body, old_new); + create_assertion_predicates_at_loop(peeled_loop_head, remaining_loop_head, node_in_original_loop_body); } +void PhaseIdealLoop::create_assertion_predicates_at_loop(CountedLoopNode* source_loop_head, + CountedLoopNode* target_loop_head, + const NodeInLoopBody& _node_in_loop_body) { + Node* init = target_loop_head->init_trip(); + Node* stride = target_loop_head->stride(); + LoopNode* target_outer_loop_head = target_loop_head->skip_strip_mined(); + Node* target_loop_entry = target_outer_loop_head->in(LoopNode::EntryControl); + CreateAssertionPredicatesVisitor create_assertion_predicates_visitor(init, stride, target_loop_entry, this, + _node_in_loop_body); + Node* source_loop_entry = source_loop_head->skip_strip_mined()->in(LoopNode::EntryControl); + PredicateIterator predicate_iterator(source_loop_entry); + predicate_iterator.for_each(create_assertion_predicates_visitor); + if (create_assertion_predicates_visitor.has_created_predicates()) { + IfTrueNode* last_created_predicate_success_proj = create_assertion_predicates_visitor.last_created_success_proj(); + _igvn.replace_input_of(target_outer_loop_head, LoopNode::EntryControl, last_created_predicate_success_proj); + set_idom(target_outer_loop_head, last_created_predicate_success_proj, dom_depth(target_outer_loop_head)); + } +} //------------------------------do_unroll-------------------------------------- // Unroll the loop body one step - make each trip do 2 iterations. void PhaseIdealLoop::do_unroll(IdealLoopTree *loop, Node_List &old_new, bool adjust_min_trip) { diff --git a/src/hotspot/share/opto/loopnode.cpp b/src/hotspot/share/opto/loopnode.cpp index cadc6047397..e2db179676d 100644 --- a/src/hotspot/share/opto/loopnode.cpp +++ b/src/hotspot/share/opto/loopnode.cpp @@ -4443,7 +4443,8 @@ void PhaseIdealLoop::add_useless_parse_predicates_to_igvn_worklist() { // Eliminate all Template Assertion Predicates that do not belong to their originally associated loop anymore by -// replacing the Opaque4 node of the If node with true. These nodes will be removed during the next round of IGVN. +// replacing the OpaqueTemplateAssertionPredicate node of the If node with true. These nodes will be removed during the +// next round of IGVN. void PhaseIdealLoop::eliminate_useless_template_assertion_predicates() { Unique_Node_List useful_predicates; if (C->has_loops()) { @@ -4484,9 +4485,12 @@ void PhaseIdealLoop::collect_useful_template_assertion_predicates_for_loop(Ideal void PhaseIdealLoop::eliminate_useless_template_assertion_predicates(Unique_Node_List& useful_predicates) { for (int i = C->template_assertion_predicate_count(); i > 0; i--) { - Opaque4Node* opaque4_node = C->template_assertion_predicate_opaq_node(i - 1)->as_Opaque4(); - if (!useful_predicates.member(opaque4_node)) { // not in the useful list - _igvn.replace_node(opaque4_node, opaque4_node->in(2)); + OpaqueTemplateAssertionPredicateNode* opaque_node = + C->template_assertion_predicate_opaq_node(i - 1)->as_OpaqueTemplateAssertionPredicate(); + if (!useful_predicates.member(opaque_node)) { // not in the useful list + ConINode* one = _igvn.intcon(1); + set_ctrl(one, C->root()); + _igvn.replace_node(opaque_node, one); } } } diff --git a/src/hotspot/share/opto/loopnode.hpp b/src/hotspot/share/opto/loopnode.hpp index af32e2366e8..fc0f1b4d53c 100644 --- a/src/hotspot/share/opto/loopnode.hpp +++ b/src/hotspot/share/opto/loopnode.hpp @@ -952,18 +952,22 @@ class PhaseIdealLoop : public PhaseTransform { Node* zero_trip_guard_proj_post, const Node_List& old_new); Node* clone_template_assertion_predicate(IfNode* iff, Node* new_init, Node* predicate, Node* uncommon_proj, Node* control, IdealLoopTree* outer_loop, Node* new_control); + public: IfTrueNode* create_initialized_assertion_predicate(IfNode* template_assertion_predicate, Node* new_init, Node* new_stride, Node* control); - static void count_opaque_loop_nodes(Node* n, uint& init, uint& stride); - static bool assertion_predicate_has_loop_opaque_node(IfNode* iff); + private: + DEBUG_ONLY(static void count_opaque_loop_nodes(Node* n, uint& init, uint& stride);) + DEBUG_ONLY(static bool assertion_predicate_has_loop_opaque_node(IfNode* iff);) static void get_assertion_predicates(Node* predicate, Unique_Node_List& list, bool get_opaque = false); void update_main_loop_assertion_predicates(Node* ctrl, CountedLoopNode* loop_head, Node* init, int stride_con); void copy_assertion_predicates_to_post_loop(LoopNode* main_loop_head, CountedLoopNode* post_loop_head, Node* stride); - void initialize_assertion_predicates_for_peeled_loop(const PredicateBlock* predicate_block, LoopNode* outer_loop_head, - int dd_outer_loop_head, Node* init, Node* stride, - IdealLoopTree* outer_loop, uint idx_before_clone, + void initialize_assertion_predicates_for_peeled_loop(CountedLoopNode* peeled_loop_head, + CountedLoopNode* remaining_loop_head, + uint first_node_index_in_cloned_loop_body, const Node_List& old_new); + void create_assertion_predicates_at_loop(CountedLoopNode* source_loop_head, CountedLoopNode* target_loop_head, + const NodeInLoopBody& _node_in_loop_body); void insert_loop_limit_check_predicate(ParsePredicateSuccessProj* loop_limit_check_parse_proj, Node* cmp_limit, Node* bol); void log_loop_tree(); diff --git a/src/hotspot/share/opto/loopopts.cpp b/src/hotspot/share/opto/loopopts.cpp index 654262d21cb..9c4385000fb 100644 --- a/src/hotspot/share/opto/loopopts.cpp +++ b/src/hotspot/share/opto/loopopts.cpp @@ -787,10 +787,9 @@ Node *PhaseIdealLoop::conditional_move( Node *region ) { }//for Node* bol = iff->in(1); assert(!bol->is_OpaqueInitializedAssertionPredicate(), "Initialized Assertion Predicates cannot form a diamond with Halt"); - if (bol->is_Opaque4()) { - // Ignore Template Assertion Predicates with Opaque4 nodes. - assert(assertion_predicate_has_loop_opaque_node(iff), - "must be Template Assertion Predicate, non-null-check with Opaque4 cannot form a diamond with Halt"); + if (bol->is_OpaqueTemplateAssertionPredicate()) { + // Ignore Template Assertion Predicates with OpaqueTemplateAssertionPredicate nodes. + assert(assertion_predicate_has_loop_opaque_node(iff), "must find OpaqueLoop* nodes"); return nullptr; } assert(bol->Opcode() == Op_Bool, "Unexpected node"); @@ -1702,8 +1701,9 @@ void PhaseIdealLoop::try_sink_out_of_loop(Node* n) { !n->is_Proj() && !n->is_MergeMem() && !n->is_CMove() && - !n->is_Opaque4() && + !n->is_OpaqueNotNull() && !n->is_OpaqueInitializedAssertionPredicate() && + !n->is_OpaqueTemplateAssertionPredicate() && !n->is_Type()) { Node *n_ctrl = get_ctrl(n); IdealLoopTree *n_loop = get_loop(n_ctrl); @@ -1945,10 +1945,11 @@ bool PhaseIdealLoop::ctrl_of_use_out_of_loop(const Node* n, Node* n_ctrl, IdealL // Sinking a node from a pre loop to its main loop pins the node between the pre and main loops. If that node is input // to a check that's eliminated by range check elimination, it becomes input to an expression that feeds into the exit // test of the pre loop above the point in the graph where it's pinned. - if (n_loop->_head->is_CountedLoop() && n_loop->_head->as_CountedLoop()->is_pre_loop() && - u_loop->_head->is_CountedLoop() && u_loop->_head->as_CountedLoop()->is_main_loop() && - n_loop->_next == get_loop(u_loop->_head->as_CountedLoop()->skip_strip_mined())) { - return false; + if (n_loop->_head->is_CountedLoop() && n_loop->_head->as_CountedLoop()->is_pre_loop()) { + CountedLoopNode* pre_loop = n_loop->_head->as_CountedLoop(); + if (is_dominator(pre_loop->loopexit(), ctrl)) { + return false; + } } return true; } @@ -2020,14 +2021,14 @@ Node* PhaseIdealLoop::clone_iff(PhiNode* phi) { if (b->is_Phi()) { _igvn.replace_input_of(phi, i, clone_iff(b->as_Phi())); } else { - assert(b->is_Bool() || b->is_Opaque4() || b->is_OpaqueInitializedAssertionPredicate(), - "bool, non-null check with Opaque4 node or Initialized Assertion Predicate with its Opaque node"); + assert(b->is_Bool() || b->is_OpaqueNotNull() || b->is_OpaqueInitializedAssertionPredicate(), + "bool, non-null check with OpaqueNotNull or Initialized Assertion Predicate with its Opaque node"); } } Node* n = phi->in(1); Node* sample_opaque = nullptr; Node *sample_bool = nullptr; - if (n->is_Opaque4() || n->is_OpaqueInitializedAssertionPredicate()) { + if (n->is_OpaqueNotNull() || n->is_OpaqueInitializedAssertionPredicate()) { sample_opaque = n; sample_bool = n->in(1); assert(sample_bool->is_Bool(), "wrong type"); @@ -2201,7 +2202,9 @@ void PhaseIdealLoop::clone_loop_handle_data_uses(Node* old, Node_List &old_new, // For example, it is unexpected that there is a Phi between an // AllocateArray node and its ValidLengthTest input that could cause // split if to break. - if (use->is_If() || use->is_CMove() || use->is_Opaque4() || use->is_OpaqueInitializedAssertionPredicate() || + assert(!use->is_OpaqueTemplateAssertionPredicate(), + "should not clone a Template Assertion Predicate which should be removed once it's useless"); + if (use->is_If() || use->is_CMove() || use->is_OpaqueNotNull() || use->is_OpaqueInitializedAssertionPredicate() || (use->Opcode() == Op_AllocateArray && use->in(AllocateNode::ValidLengthTest) == old)) { // Since this code is highly unlikely, we lazily build the worklist // of such Nodes to go split. diff --git a/src/hotspot/share/opto/macro.cpp b/src/hotspot/share/opto/macro.cpp index de804457a26..31a453c9093 100644 --- a/src/hotspot/share/opto/macro.cpp +++ b/src/hotspot/share/opto/macro.cpp @@ -2428,7 +2428,7 @@ void PhaseMacroExpand::eliminate_macro_nodes() { break; default: assert(n->Opcode() == Op_LoopLimit || - n->is_Opaque4() || + n->is_OpaqueNotNull() || n->is_OpaqueInitializedAssertionPredicate() || n->Opcode() == Op_MaxL || n->Opcode() == Op_MinL || @@ -2480,17 +2480,14 @@ bool PhaseMacroExpand::expand_macro_nodes() { } else if (n->is_Opaque1()) { _igvn.replace_node(n, n->in(1)); success = true; - } else if (n->is_Opaque4()) { - // With Opaque4 nodes, the expectation is that the test of input 1 - // is always equal to the constant value of input 2. So we can - // remove the Opaque4 and replace it by input 2. In debug builds, - // leave the non constant test in instead to sanity check that it - // never fails (if it does, that subgraph was constructed so, at - // runtime, a Halt node is executed). + } else if (n->is_OpaqueNotNull()) { + // Tests with OpaqueNotNull nodes are implicitly known to be true. Replace the node with true. In debug builds, + // we leave the test in the graph to have an additional sanity check at runtime. If the test fails (i.e. a bug), + // we will execute a Halt node. #ifdef ASSERT _igvn.replace_node(n, n->in(1)); #else - _igvn.replace_node(n, n->in(2)); + _igvn.replace_node(n, _igvn.intcon(1)); #endif success = true; } else if (n->is_OpaqueInitializedAssertionPredicate()) { diff --git a/src/hotspot/share/opto/node.cpp b/src/hotspot/share/opto/node.cpp index 2e586de33a3..3f82c472163 100644 --- a/src/hotspot/share/opto/node.cpp +++ b/src/hotspot/share/opto/node.cpp @@ -611,7 +611,7 @@ void Node::destruct(PhaseValues* phase) { if (is_expensive()) { compile->remove_expensive_node(this); } - if (is_Opaque4()) { + if (is_OpaqueTemplateAssertionPredicate()) { compile->remove_template_assertion_predicate_opaq(this); } if (is_ParsePredicate()) { @@ -2770,9 +2770,7 @@ const RegMask &Node::in_RegMask(uint) const { void Node_Array::grow(uint i) { _nesting.check(_a); // Check if a potential reallocation in the arena is safe - if (i < _max) { - return; // No need to grow - } + assert(i >= _max, "Should have been checked before, use maybe_grow?"); assert(_max > 0, "invariant"); uint old = _max; _max = next_power_of_2(i); diff --git a/src/hotspot/share/opto/node.hpp b/src/hotspot/share/opto/node.hpp index 07a623e2f93..db8b00c0bda 100644 --- a/src/hotspot/share/opto/node.hpp +++ b/src/hotspot/share/opto/node.hpp @@ -138,8 +138,9 @@ class NeverBranchNode; class Opaque1Node; class OpaqueLoopInitNode; class OpaqueLoopStrideNode; -class Opaque4Node; +class OpaqueNotNullNode; class OpaqueInitializedAssertionPredicateNode; +class OpaqueTemplateAssertionPredicateNode; class OuterStripMinedLoopNode; class OuterStripMinedLoopEndNode; class Node; @@ -168,6 +169,7 @@ class RootNode; class SafePointNode; class SafePointScalarObjectNode; class SafePointScalarMergeNode; +class SaturatingVectorNode; class StartNode; class State; class StoreNode; @@ -740,6 +742,7 @@ class Node { DEFINE_CLASS_ID(CompressM, Vector, 6) DEFINE_CLASS_ID(Reduction, Vector, 7) DEFINE_CLASS_ID(NegV, Vector, 8) + DEFINE_CLASS_ID(SaturatingVector, Vector, 9) DEFINE_CLASS_ID(Con, Type, 8) DEFINE_CLASS_ID(ConI, Con, 0) DEFINE_CLASS_ID(SafePointScalarMerge, Type, 9) @@ -796,11 +799,12 @@ class Node { DEFINE_CLASS_ID(Opaque1, Node, 16) DEFINE_CLASS_ID(OpaqueLoopInit, Opaque1, 0) DEFINE_CLASS_ID(OpaqueLoopStride, Opaque1, 1) - DEFINE_CLASS_ID(Opaque4, Node, 17) + DEFINE_CLASS_ID(OpaqueNotNull, Node, 17) DEFINE_CLASS_ID(OpaqueInitializedAssertionPredicate, Node, 18) - DEFINE_CLASS_ID(Move, Node, 19) - DEFINE_CLASS_ID(LShift, Node, 20) - DEFINE_CLASS_ID(Neg, Node, 21) + DEFINE_CLASS_ID(OpaqueTemplateAssertionPredicate, Node, 19) + DEFINE_CLASS_ID(Move, Node, 20) + DEFINE_CLASS_ID(LShift, Node, 21) + DEFINE_CLASS_ID(Neg, Node, 22) _max_classes = ClassMask_Neg }; @@ -970,8 +974,9 @@ class Node { DEFINE_CLASS_QUERY(NegV) DEFINE_CLASS_QUERY(NeverBranch) DEFINE_CLASS_QUERY(Opaque1) - DEFINE_CLASS_QUERY(Opaque4) + DEFINE_CLASS_QUERY(OpaqueNotNull) DEFINE_CLASS_QUERY(OpaqueInitializedAssertionPredicate) + DEFINE_CLASS_QUERY(OpaqueTemplateAssertionPredicate) DEFINE_CLASS_QUERY(OpaqueLoopInit) DEFINE_CLASS_QUERY(OpaqueLoopStride) DEFINE_CLASS_QUERY(OuterStripMinedLoop) @@ -1007,6 +1012,7 @@ class Node { DEFINE_CLASS_QUERY(StoreVectorScatter) DEFINE_CLASS_QUERY(StoreVectorMasked) DEFINE_CLASS_QUERY(StoreVectorScatterMasked) + DEFINE_CLASS_QUERY(SaturatingVector) DEFINE_CLASS_QUERY(ShiftV) DEFINE_CLASS_QUERY(Unlock) @@ -1607,7 +1613,14 @@ class Node_Array : public AnyObj { Node** _nodes; ReallocMark _nesting; // Safety checks for arena reallocation - void grow( uint i ); // Grow array node to fit + // Grow array to required capacity + void maybe_grow(uint i) { + if (i >= _max) { + grow(i); + } + } + void grow(uint i); + public: Node_Array(Arena* a, uint max = OptoNodeListSize) : _a(a), _max(max) { _nodes = NEW_ARENA_ARRAY(a, Node*, max); @@ -1625,7 +1638,7 @@ class Node_Array : public AnyObj { Node* at(uint i) const { assert(i<_max,"oob"); return _nodes[i]; } Node** adr() { return _nodes; } // Extend the mapping: index i maps to Node *n. - void map( uint i, Node *n ) { grow(i); _nodes[i] = n; } + void map( uint i, Node *n ) { maybe_grow(i); _nodes[i] = n; } void insert( uint i, Node *n ); void remove( uint i ); // Remove, preserving order // Clear all entries in _nodes to null but keep storage diff --git a/src/hotspot/share/opto/opaquenode.cpp b/src/hotspot/share/opto/opaquenode.cpp index 14fd0d5f1a7..8a8eea51db6 100644 --- a/src/hotspot/share/opto/opaquenode.cpp +++ b/src/hotspot/share/opto/opaquenode.cpp @@ -82,7 +82,24 @@ IfNode* OpaqueZeroTripGuardNode::if_node() const { return iff->as_If(); } -const Type* Opaque4Node::Value(PhaseGVN* phase) const { +const Type* OpaqueNotNullNode::Value(PhaseGVN* phase) const { + return phase->type(in(1)); +} + +Node* OpaqueTemplateAssertionPredicateNode::Identity(PhaseGVN* phase) { + if (phase->C->post_loop_opts_phase()) { + // Template Assertion Predicates only serve as templates to create Initialized Assertion Predicates when splitting + // a loop during loop opts. They are not used anymore once loop opts are over and can then be removed. They feed + // into the bool input of an If node and can thus be replaced by true to let the Template Assertion Predicate be + // folded away (the success path is always the true path by design). + return phase->intcon(1); + } else { + phase->C->record_for_post_loop_opts_igvn(this); + } + return this; +} + +const Type* OpaqueTemplateAssertionPredicateNode::Value(PhaseGVN* phase) const { return phase->type(in(1)); } diff --git a/src/hotspot/share/opto/opaquenode.hpp b/src/hotspot/share/opto/opaquenode.hpp index 9c775408cc0..c1686d846f9 100644 --- a/src/hotspot/share/opto/opaquenode.hpp +++ b/src/hotspot/share/opto/opaquenode.hpp @@ -91,18 +91,18 @@ class OpaqueZeroTripGuardNode : public Opaque1Node { IfNode* if_node() const; }; -// Input 1 is a check that we know implicitly is always true or false -// but the compiler has no way to prove. If during optimizations, that -// check becomes true or false, the Opaque4 node is replaced by that -// constant true or false. Input 2 is the constant value we know the -// test takes. After loop optimizations, we replace input 1 by input 2 -// so the control that depends on that test can be removed and there's -// no overhead at runtime. Used for instance by +// This node is used in the context of intrinsics. We sometimes implicitly know that an object is non-null even though +// the compiler cannot prove it. We therefore add a corresponding cast to propagate this implicit knowledge. However, +// this cast could become top during optimizations (input to cast becomes null) and the data path is folded. To ensure +// that the control path is also properly folded, we insert an If node with a OpaqueNotNullNode as condition. During +// macro expansion, we replace the OpaqueNotNullNodes with true in product builds such that the actually unneeded checks +// are folded and do not end up in the emitted code. In debug builds, we keep the actual checks as additional +// verification code (i.e. removing OpaqueNotNullNodes and use the BoolNode inputs instead). For more details, also see // GraphKit::must_be_not_null(). -class Opaque4Node : public Node { - public: - Opaque4Node(Compile* C, Node* tst, Node* final_tst) : Node(nullptr, tst, final_tst) { - init_class_id(Class_Opaque4); +class OpaqueNotNullNode : public Node { + public: + OpaqueNotNullNode(Compile* C, Node* tst) : Node(nullptr, tst) { + init_class_id(Class_OpaqueNotNull); init_flags(Flag_is_macro); C->add_macro_node(this); } @@ -112,9 +112,26 @@ class Opaque4Node : public Node { virtual const Type* bottom_type() const { return TypeInt::BOOL; } }; +// This node is used for Template Assertion Predicate BoolNodes. A Template Assertion Predicate is always removed +// after loop opts and thus is never converted to actual code. In the post loop opts IGVN phase, the +// OpaqueTemplateAssertionPredicateNode is replaced by true in order to fold the Template Assertion Predicate away. +class OpaqueTemplateAssertionPredicateNode : public Node { + public: + OpaqueTemplateAssertionPredicateNode(BoolNode* bol) : Node(nullptr, bol) { + init_class_id(Class_OpaqueTemplateAssertionPredicate); + } + + virtual int Opcode() const; + virtual Node* Identity(PhaseGVN* phase); + virtual const Type* Value(PhaseGVN* phase) const; + virtual const Type* bottom_type() const { return TypeInt::BOOL; } +}; + // This node is used for Initialized Assertion Predicate BoolNodes. Initialized Assertion Predicates must always evaluate -// to true. Therefore, we get rid of them in product builds during macro expansion as they are useless. In debug builds -// we keep them as additional verification code (i.e. removing this node and use the BoolNode input instead). +// to true. During macro expansion, we replace the OpaqueInitializedAssertionPredicateNodes with true in product builds +// such that the actually unneeded checks are folded and do not end up in the emitted code. In debug builds, we keep the +// actual checks as additional verification code (i.e. removing OpaqueInitializedAssertionPredicateNodes and use the +// BoolNode inputs instead). class OpaqueInitializedAssertionPredicateNode : public Node { public: OpaqueInitializedAssertionPredicateNode(BoolNode* bol, Compile* C) : Node(nullptr, bol) { diff --git a/src/hotspot/share/opto/predicates.cpp b/src/hotspot/share/opto/predicates.cpp index 153a2bcd442..54a17376f18 100644 --- a/src/hotspot/share/opto/predicates.cpp +++ b/src/hotspot/share/opto/predicates.cpp @@ -55,12 +55,12 @@ bool AssertionPredicateWithHalt::is_predicate(const Node* maybe_success_proj) { return has_assertion_predicate_opaque(maybe_success_proj) && has_halt(maybe_success_proj); } -// Check if the If node of `predicate_proj` has an Opaque4 (Template Assertion Predicate) or an -// OpaqueInitializedAssertionPredicate (Initialized Assertion Predicate) node as input. +// Check if the If node of `predicate_proj` has an OpaqueTemplateAssertionPredicate (Template Assertion Predicate) or +// an OpaqueInitializedAssertionPredicate (Initialized Assertion Predicate) node as input. bool AssertionPredicateWithHalt::has_assertion_predicate_opaque(const Node* predicate_proj) { IfNode* iff = predicate_proj->in(0)->as_If(); Node* bol = iff->in(1); - return bol->is_Opaque4() || bol->is_OpaqueInitializedAssertionPredicate(); + return bol->is_OpaqueTemplateAssertionPredicate() || bol->is_OpaqueInitializedAssertionPredicate(); } // Check if the other projection (UCT projection) of `success_proj` has a Halt node as output. @@ -115,8 +115,9 @@ bool RegularPredicateWithUCT::is_predicate(const Node* node, Deoptimization::Deo } // A Regular Predicate must have an If or a RangeCheck node, while the If should not be a zero trip guard check. +// Note that this method can be called during IGVN, so we also need to check that the If is not top. bool RegularPredicate::may_be_predicate_if(const Node* node) { - if (node->is_IfProj()) { + if (node->is_IfProj() && node->in(0)->is_If()) { const IfNode* if_node = node->in(0)->as_If(); const int opcode_if = if_node->Opcode(); if ((opcode_if == Op_If && !if_node->is_zero_trip_guard()) @@ -137,22 +138,34 @@ bool RuntimePredicate::is_predicate(Node* node, Deoptimization::DeoptReason deop return RegularPredicateWithUCT::is_predicate(node, deopt_reason); } -// A Template Assertion Predicate has an If/RangeCheckNode and either an UCT or a halt node depending on where it -// was created. +// Rewire any non-CFG nodes dependent on this Template Assertion Predicate (i.e. with a control input to this +// Template Assertion Predicate) to the 'target_predicate' based on the 'data_in_loop_body' check. +void TemplateAssertionPredicate::rewire_loop_data_dependencies(IfTrueNode* target_predicate, + const NodeInLoopBody& data_in_loop_body, + PhaseIdealLoop* phase) const { + for (DUIterator i = _success_proj->outs(); _success_proj->has_out(i); i++) { + Node* output = _success_proj->out(i); + if (!output->is_CFG() && data_in_loop_body.check(output)) { + phase->igvn().replace_input_of(output, 0, target_predicate); + --i; // account for the just deleted output + } + } +} + + +// Template Assertion Predicates always have the dedicated OpaqueTemplateAssertionPredicate to identify them. bool TemplateAssertionPredicate::is_predicate(Node* node) { if (!may_be_assertion_predicate_if(node)) { return false; } IfNode* if_node = node->in(0)->as_If(); - if (if_node->in(1)->is_Opaque4()) { - return RegularPredicateWithUCT::has_valid_uncommon_trap(node) || AssertionPredicateWithHalt::has_halt(node); - } - return false; + return if_node->in(1)->is_OpaqueTemplateAssertionPredicate(); } -// Initialized Assertion Predicates always have the dedicated opaque node and a halt node. +// Initialized Assertion Predicates always have the dedicated OpaqueInitiailizedAssertionPredicate node to identify +// them. bool InitializedAssertionPredicate::is_predicate(Node* node) { - if (!AssertionPredicateWithHalt::is_predicate(node)) { + if (!may_be_assertion_predicate_if(node)) { return false; } IfNode* if_node = node->in(0)->as_If(); @@ -238,27 +251,27 @@ class ReplaceInitAndStrideStrategy : public TransformStrategyForOpaqueLoopNodes } }; -// Creates an identical clone of this Template Assertion Expression (i.e.cloning all nodes from the Opaque4Node to and -// including the OpaqueLoop* nodes). The cloned nodes are rewired to reflect the same graph structure as found for this -// Template Assertion Expression. The cloned nodes get 'new_ctrl' as ctrl. There is no other update done for the cloned -// nodes. Return the newly cloned Opaque4Node. -Opaque4Node* TemplateAssertionExpression::clone(Node* new_ctrl, PhaseIdealLoop* phase) { +// Creates an identical clone of this Template Assertion Expression (i.e.cloning all nodes from the +// OpaqueTemplateAssertionPredicate to and including the OpaqueLoop* nodes). The cloned nodes are rewired to reflect the +// same graph structure as found for this Template Assertion Expression. The cloned nodes get 'new_ctrl' as ctrl. There +// is no other update done for the cloned nodes. Return the newly cloned OpaqueTemplateAssertionPredicate. +OpaqueTemplateAssertionPredicateNode* TemplateAssertionExpression::clone(Node* new_ctrl, PhaseIdealLoop* phase) { CloneStrategy clone_init_and_stride_strategy(phase, new_ctrl); return clone(clone_init_and_stride_strategy, new_ctrl, phase); } // Same as clone() but instead of cloning the OpaqueLoopInitNode, we replace it with the provided 'new_init' node. -Opaque4Node* TemplateAssertionExpression::clone_and_replace_init(Node* new_init, Node* new_ctrl, - PhaseIdealLoop* phase) { +OpaqueTemplateAssertionPredicateNode* +TemplateAssertionExpression::clone_and_replace_init(Node* new_init, Node* new_ctrl, PhaseIdealLoop* phase) { ReplaceInitAndCloneStrideStrategy replace_init_and_clone_stride_strategy(new_init, new_ctrl, phase); return clone(replace_init_and_clone_stride_strategy, new_ctrl, phase); } // Same as clone() but instead of cloning the OpaqueLoopInit and OpaqueLoopStride node, we replace them with the provided // 'new_init' and 'new_stride' nodes, respectively. -Opaque4Node* TemplateAssertionExpression::clone_and_replace_init_and_stride(Node* new_control, Node* new_init, - Node* new_stride, - PhaseIdealLoop* phase) { +OpaqueTemplateAssertionPredicateNode* +TemplateAssertionExpression::clone_and_replace_init_and_stride(Node* new_control, Node* new_init, Node* new_stride, + PhaseIdealLoop* phase) { ReplaceInitAndStrideStrategy replace_init_and_stride_strategy(new_init, new_stride); return clone(replace_init_and_stride_strategy, new_control, phase); } @@ -341,20 +354,21 @@ class DataNodesOnPathsToTargets : public StackObj { }; // Clones this Template Assertion Expression and applies the given strategy to transform the OpaqueLoop* nodes. -Opaque4Node* TemplateAssertionExpression::clone(const TransformStrategyForOpaqueLoopNodes& transform_strategy, - Node* new_ctrl, PhaseIdealLoop* phase) { +OpaqueTemplateAssertionPredicateNode* +TemplateAssertionExpression::clone(const TransformStrategyForOpaqueLoopNodes& transform_strategy, Node* new_ctrl, + PhaseIdealLoop* phase) { ResourceMark rm; auto is_opaque_loop_node = [](const Node* node) { return node->is_Opaque1(); }; DataNodesOnPathsToTargets data_nodes_on_path_to_targets(TemplateAssertionExpressionNode::is_maybe_in_expression, is_opaque_loop_node); - const Unique_Node_List& collected_nodes = data_nodes_on_path_to_targets.collect(_opaque4_node); + const Unique_Node_List& collected_nodes = data_nodes_on_path_to_targets.collect(_opaque_node); DataNodeGraph data_node_graph(collected_nodes, phase); const OrigToNewHashtable& orig_to_new = data_node_graph.clone_with_opaque_loop_transform_strategy(transform_strategy, new_ctrl); - assert(orig_to_new.contains(_opaque4_node), "must exist"); - Node* opaque4_clone = *orig_to_new.get(_opaque4_node); - return opaque4_clone->as_Opaque4(); + assert(orig_to_new.contains(_opaque_node), "must exist"); + Node* opaque_node_clone = *orig_to_new.get(_opaque_node); + return opaque_node_clone->as_OpaqueTemplateAssertionPredicate(); } // Check if this node belongs a Template Assertion Expression (including OpaqueLoop* nodes). @@ -376,7 +390,7 @@ bool TemplateAssertionExpressionNode::is_in_expression(Node* node) { } bool TemplateAssertionExpressionNode::is_template_assertion_predicate(Node* node) { - return node->is_If() && node->in(1)->is_Opaque4(); + return node->is_If() && node->in(1)->is_OpaqueTemplateAssertionPredicate(); } // This class creates the Assertion Predicate expression to be used for a Template or Initialized Assertion Predicate. @@ -398,18 +412,17 @@ class AssertionPredicateExpressionCreator : public StackObj { _range(range), _upper((_stride > 0) != (_scale > 0)) {} // Make sure rc_predicate() chooses the "scale*init + offset" case. - // Create the expression for a Template Assertion Predicate with an Opaque4 node. - Opaque4Node* create_for_template(Node* new_control, Node* operand, bool& does_overflow) const { + // Create the expression for a Template Assertion Predicate with an OpaqueTemplateAssertionPredicate node. + OpaqueTemplateAssertionPredicateNode* create_for_template(Node* new_control, Node* operand, bool& does_overflow) const { BoolNode* bool_for_expression = _phase->rc_predicate(new_control, _scale, _offset, operand, nullptr, _stride, _range, _upper, does_overflow); - return create_opaque4_node(new_control, bool_for_expression); + return create_opaque_node(new_control, bool_for_expression); } private: - Opaque4Node* create_opaque4_node(Node* new_control, BoolNode* bool_for_expression) const { - Compile* C = _phase->C; - Opaque4Node* new_expression = new Opaque4Node(C, bool_for_expression, _phase->igvn().intcon(1)); - C->add_template_assertion_predicate_opaq(new_expression); + OpaqueTemplateAssertionPredicateNode* create_opaque_node(Node* new_control, BoolNode* bool_for_expression) const { + OpaqueTemplateAssertionPredicateNode* new_expression = new OpaqueTemplateAssertionPredicateNode(bool_for_expression); + _phase->C->add_template_assertion_predicate_opaq(new_expression); _phase->register_new_node(new_expression, new_control); return new_expression; } @@ -463,8 +476,8 @@ IfTrueNode* AssertionPredicateIfCreator::create_for_initialized(Node* new_contro IfTrueNode* AssertionPredicateIfCreator::create(Node* new_control, const int if_opcode, Node* assertion_expression, const char* halt_message NOT_PRODUCT(COMMA const AssertionPredicateType assertion_predicate_type)) { - assert(assertion_expression->is_Opaque4() || assertion_expression->is_OpaqueInitializedAssertionPredicate(), - "not a valid assertion expression"); + assert(assertion_expression->is_OpaqueTemplateAssertionPredicate() || + assertion_expression->is_OpaqueInitializedAssertionPredicate(), "not a valid assertion expression"); IdealLoopTree* loop = _phase->get_loop(new_control); IfNode* if_node = create_if_node(new_control, if_opcode, assertion_expression, loop NOT_PRODUCT(COMMA assertion_predicate_type)); @@ -517,8 +530,8 @@ IfTrueNode* TemplateAssertionPredicateCreator::create_with_uncommon_trap( const Deoptimization::DeoptReason deopt_reason, const int if_opcode) { OpaqueLoopInitNode* opaque_init = create_opaque_init(new_control); bool does_overflow; - Opaque4Node* template_assertion_predicate_expression = create_for_init_value(new_control, opaque_init, - does_overflow); + OpaqueTemplateAssertionPredicateNode* template_assertion_predicate_expression = + create_for_init_value(new_control, opaque_init, does_overflow); IfTrueNode* template_predicate_success_proj = create_if_node_with_uncommon_trap(template_assertion_predicate_expression, parse_predicate_success_proj, deopt_reason, if_opcode, does_overflow @@ -536,15 +549,17 @@ OpaqueLoopInitNode* TemplateAssertionPredicateCreator::create_opaque_init(Node* return opaque_init; } -Opaque4Node* TemplateAssertionPredicateCreator::create_for_init_value(Node* new_control, OpaqueLoopInitNode* opaque_init, - bool& does_overflow) const { +OpaqueTemplateAssertionPredicateNode* +TemplateAssertionPredicateCreator::create_for_init_value(Node* new_control, OpaqueLoopInitNode* opaque_init, + bool& does_overflow) const { AssertionPredicateExpressionCreator expression_creator(_loop_head->stride_con(), _scale, _offset, _range, _phase); return expression_creator.create_for_template(new_control, opaque_init, does_overflow); } IfTrueNode* TemplateAssertionPredicateCreator::create_if_node_with_uncommon_trap( - Opaque4Node* template_assertion_predicate_expression, ParsePredicateSuccessProj* parse_predicate_success_proj, - const Deoptimization::DeoptReason deopt_reason, const int if_opcode, const bool does_overflow + OpaqueTemplateAssertionPredicateNode* template_assertion_predicate_expression, + ParsePredicateSuccessProj* parse_predicate_success_proj, const Deoptimization::DeoptReason deopt_reason, + const int if_opcode, const bool does_overflow NOT_PRODUCT(COMMA AssertionPredicateType assertion_predicate_type)) { IfTrueNode* success_proj = _phase->create_new_if_for_predicate(parse_predicate_success_proj, nullptr, deopt_reason, does_overflow ? Op_If : if_opcode, false @@ -553,8 +568,9 @@ IfTrueNode* TemplateAssertionPredicateCreator::create_if_node_with_uncommon_trap return success_proj; } -Opaque4Node* TemplateAssertionPredicateCreator::create_for_last_value(Node* new_control, OpaqueLoopInitNode* opaque_init, - bool& does_overflow) const { +OpaqueTemplateAssertionPredicateNode* +TemplateAssertionPredicateCreator::create_for_last_value(Node* new_control, OpaqueLoopInitNode* opaque_init, + bool& does_overflow) const { Node* last_value = create_last_value(new_control, opaque_init); AssertionPredicateExpressionCreator expression_creator(_loop_head->stride_con(), _scale, _offset, _range, _phase); return expression_creator.create_for_template(new_control, last_value, does_overflow); @@ -575,7 +591,7 @@ Node* TemplateAssertionPredicateCreator::create_last_value(Node* new_control, Op } IfTrueNode* TemplateAssertionPredicateCreator::create_if_node_with_halt( - Node* new_control, Opaque4Node* template_assertion_predicate_expression, bool does_overflow + Node* new_control, OpaqueTemplateAssertionPredicateNode* template_assertion_predicate_expression, bool does_overflow NOT_PRODUCT(COMMA AssertionPredicateType assertion_predicate_type)) { AssertionPredicateIfCreator assertion_predicate_if_creator(_phase); return assertion_predicate_if_creator.create_for_template(new_control, does_overflow ? Op_If : Op_RangeCheck, @@ -588,8 +604,8 @@ IfTrueNode* TemplateAssertionPredicateCreator::create_if_node_with_halt( IfTrueNode* TemplateAssertionPredicateCreator::create_with_halt(Node* new_control) { OpaqueLoopInitNode* opaque_init = create_opaque_init(new_control); bool does_overflow; - Opaque4Node* template_assertion_predicate_expression = create_for_init_value(new_control, opaque_init, - does_overflow); + OpaqueTemplateAssertionPredicateNode* template_assertion_predicate_expression = + create_for_init_value(new_control, opaque_init, does_overflow); IfTrueNode* template_predicate_success_proj = create_if_node_with_halt(new_control, template_assertion_predicate_expression, does_overflow NOT_PRODUCT(COMMA AssertionPredicateType::InitValue)); @@ -604,23 +620,23 @@ InitializedAssertionPredicateCreator::InitializedAssertionPredicateCreator(Phase // Create an Initialized Assertion Predicate from the provided template_assertion_predicate at 'new_control'. // We clone the Template Assertion Expression and replace: -// - Opaque4 with OpaqueInitializedAssertionPredicate +// - OpaqueTemplateAssertionPredicateNode with OpaqueInitializedAssertionPredicate // - OpaqueLoop*Nodes with new_init and _ew_stride, respectively. // // / init stride // | | | -// | OpaqueLoopInitNode OpaqueLoopStrideNode / new_init new_stride -// Template | \ / | \ / -// Assertion | ... Assertion | ... -// Expression | | Expression | | -// | Bool | new Bool -// | | | | -// \ Opaque4 ======> new_control \ OpaqueInitializedAssertionPredicate -// | \ / -// If new If -// / \ / \ -// success fail path new success new Halt -// proj (Halt or UCT) proj +// | OpaqueLoopInitNode OpaqueLoopStrideNode / new_init new_stride +// Template | \ / | \ / +// Assertion | ... Assertion | ... +// Expression | | Expression | | +// | Bool | new Bool +// | | | | +// \ OpaqueTemplateAssertionPredicate ===> new_control \ OpaqueInitializedAssertionPredicate +// | \ / +// If new If +// / \ / \ +// success fail path new success new Halt +// proj (Halt or UCT) proj // IfTrueNode* InitializedAssertionPredicateCreator::create_from_template(IfNode* template_assertion_predicate, Node* new_control, Node* new_init, @@ -658,11 +674,11 @@ OpaqueInitializedAssertionPredicateNode* InitializedAssertionPredicateCreator::create_assertion_expression_from_template(IfNode* template_assertion_predicate, Node* new_control, Node* new_init, Node* new_stride) { - Opaque4Node* template_opaque = template_assertion_predicate->in(1)->as_Opaque4(); + OpaqueTemplateAssertionPredicateNode* template_opaque = + template_assertion_predicate->in(1)->as_OpaqueTemplateAssertionPredicate(); TemplateAssertionExpression template_assertion_expression(template_opaque); - Opaque4Node* tmp_opaque = template_assertion_expression.clone_and_replace_init_and_stride(new_control, new_init, - new_stride, - _phase); + OpaqueTemplateAssertionPredicateNode* tmp_opaque = + template_assertion_expression.clone_and_replace_init_and_stride(new_control, new_init, new_stride, _phase); OpaqueInitializedAssertionPredicateNode* assertion_expression = new OpaqueInitializedAssertionPredicateNode(tmp_opaque->in(1)->as_Bool(), _phase->C); _phase->register_new_node(assertion_expression, new_control); @@ -711,3 +727,25 @@ void Predicates::dump_for_loop(LoopNode* loop_node) { dump_at(loop_node->skip_strip_mined()->in(LoopNode::EntryControl)); } #endif // NOT PRODUCT + +// Keep track of whether we are in the correct Predicate Block where Template Assertion Predicates can be found. +// The PredicateIterator will always start at the loop entry and first visits the Loop Limit Check Predicate Block. +void CreateAssertionPredicatesVisitor::visit(const ParsePredicate& parse_predicate) { + Deoptimization::DeoptReason deopt_reason = parse_predicate.head()->deopt_reason(); + if (deopt_reason == Deoptimization::Reason_predicate || + deopt_reason == Deoptimization::Reason_profile_predicate) { + _has_hoisted_check_parse_predicates = true; + } +} + +void CreateAssertionPredicatesVisitor::visit(const TemplateAssertionPredicate& template_assertion_predicate) { + if (!_has_hoisted_check_parse_predicates) { + // Only process if we are in the correct Predicate Block. + return; + } + IfNode* template_head = template_assertion_predicate.head(); + IfTrueNode* initialized_predicate = _phase->create_initialized_assertion_predicate(template_head, _init, _stride, + _new_control); + template_assertion_predicate.rewire_loop_data_dependencies(initialized_predicate, _node_in_loop_body, _phase); + _new_control = initialized_predicate; +} diff --git a/src/hotspot/share/opto/predicates.hpp b/src/hotspot/share/opto/predicates.hpp index 4df56673035..5eb0cfc9b35 100644 --- a/src/hotspot/share/opto/predicates.hpp +++ b/src/hotspot/share/opto/predicates.hpp @@ -82,8 +82,8 @@ class TemplateAssertionPredicate; * actually dead. Assertion Predicates come to the rescue to fold such seemingly dead sub loops * away to avoid a broken graph. Assertion Predicates are left in the graph as a sanity checks in * debug builds (they must never fail at runtime) while they are being removed in product builds. - * We use special Opaque4 nodes to block some optimizations and replace the Assertion Predicates - * later in product builds. + * We use special OpaqueTemplateAssertionPredicateNode nodes to block some optimizations and replace + * the Assertion Predicates later in product builds. * * There are two kinds of Assertion Predicates: * - Template Assertion Predicate: A template for an Assertion Predicate that uses OpaqueLoop* @@ -248,6 +248,12 @@ class PredicateVisitor : StackObj { } }; +// Interface to check whether a node is in a loop body or not. +class NodeInLoopBody : public StackObj { + public: + virtual bool check(Node* node) const = 0; +}; + // Class to represent Assertion Predicates with a HaltNode instead of an UCT (i.e. either an Initialized Assertion // Predicate or a Template Assertion Predicate created after the initial one at Loop Predication). class AssertionPredicatesWithHalt : public StackObj { @@ -393,6 +399,8 @@ class TemplateAssertionPredicate : public Predicate { return _success_proj; } + void rewire_loop_data_dependencies(IfTrueNode* target_predicate, const NodeInLoopBody& data_in_loop_body, + PhaseIdealLoop* phase) const; static bool is_predicate(Node* node); }; @@ -431,22 +439,23 @@ class TransformStrategyForOpaqueLoopNodes : public StackObj { virtual Node* transform_opaque_stride(OpaqueLoopStrideNode* opaque_stride) const = 0; }; -// A Template Assertion Predicate represents the Opaque4Node for the initial value or the last value of a -// Template Assertion Predicate and all the nodes up to and including the OpaqueLoop* nodes. +// A Template Assertion Predicate represents the OpaqueTemplateAssertionPredicateNode for the initial value or the last +// value of a Template Assertion Predicate and all the nodes up to and including the OpaqueLoop* nodes. class TemplateAssertionExpression : public StackObj { - Opaque4Node* _opaque4_node; + OpaqueTemplateAssertionPredicateNode* _opaque_node; public: - explicit TemplateAssertionExpression(Opaque4Node* opaque4_node) : _opaque4_node(opaque4_node) {} + explicit TemplateAssertionExpression(OpaqueTemplateAssertionPredicateNode* opaque_node) : _opaque_node(opaque_node) {} private: - Opaque4Node* clone(const TransformStrategyForOpaqueLoopNodes& transform_strategy, Node* new_ctrl, PhaseIdealLoop* phase); + OpaqueTemplateAssertionPredicateNode* clone(const TransformStrategyForOpaqueLoopNodes& transform_strategy, + Node* new_ctrl, PhaseIdealLoop* phase); public: - Opaque4Node* clone(Node* new_ctrl, PhaseIdealLoop* phase); - Opaque4Node* clone_and_replace_init(Node* new_init, Node* new_ctrl, PhaseIdealLoop* phase); - Opaque4Node* clone_and_replace_init_and_stride(Node* new_control, Node* new_init, Node* new_stride, - PhaseIdealLoop* phase); + OpaqueTemplateAssertionPredicateNode* clone(Node* new_ctrl, PhaseIdealLoop* phase); + OpaqueTemplateAssertionPredicateNode* clone_and_replace_init(Node* new_init, Node* new_ctrl, PhaseIdealLoop* phase); + OpaqueTemplateAssertionPredicateNode* clone_and_replace_init_and_stride(Node* new_control, Node* new_init, + Node* new_stride, PhaseIdealLoop* phase); }; // Class to represent a node being part of a Template Assertion Expression. Note that this is not an IR node. @@ -554,15 +563,18 @@ class TemplateAssertionPredicateCreator : public StackObj { PhaseIdealLoop* const _phase; OpaqueLoopInitNode* create_opaque_init(Node* new_control); - Opaque4Node* create_for_init_value(Node* new_control, OpaqueLoopInitNode* opaque_init, bool& does_overflow) const; - Opaque4Node* create_for_last_value(Node* new_control, OpaqueLoopInitNode* opaque_init, bool& does_overflow) const; + OpaqueTemplateAssertionPredicateNode* create_for_init_value(Node* new_control, OpaqueLoopInitNode* opaque_init, + bool& does_overflow) const; + OpaqueTemplateAssertionPredicateNode* create_for_last_value(Node* new_control, OpaqueLoopInitNode* opaque_init, + bool& does_overflow) const; Node* create_last_value(Node* new_control, OpaqueLoopInitNode* opaque_init) const; - IfTrueNode* create_if_node_with_uncommon_trap(Opaque4Node* template_assertion_predicate_expression, + IfTrueNode* create_if_node_with_uncommon_trap(OpaqueTemplateAssertionPredicateNode* template_assertion_predicate_expression, ParsePredicateSuccessProj* parse_predicate_success_proj, Deoptimization::DeoptReason deopt_reason, int if_opcode, bool does_overflow NOT_PRODUCT(COMMA AssertionPredicateType assertion_predicate_type)); - IfTrueNode* create_if_node_with_halt(Node* new_control, Opaque4Node* template_assertion_predicate_expression, + IfTrueNode* create_if_node_with_halt(Node* new_control, + OpaqueTemplateAssertionPredicateNode* template_assertion_predicate_expression, bool does_overflow NOT_PRODUCT(COMMA AssertionPredicateType assertion_predicate_type)); @@ -906,4 +918,70 @@ class Predicates : public StackObj { #endif // NOT PRODUCT }; +// This class checks whether a node is in the original loop body and not the cloned one. +class NodeInOriginalLoopBody : public NodeInLoopBody { + const uint _first_node_index_in_cloned_loop_body; + const Node_List& _old_new; + + public: + NodeInOriginalLoopBody(const uint first_node_index_in_cloned_loop_body, const Node_List& old_new) + : _first_node_index_in_cloned_loop_body(first_node_index_in_cloned_loop_body), + _old_new(old_new) {} + NONCOPYABLE(NodeInOriginalLoopBody); + + // Check if 'node' is not a cloned node (i.e. "< _first_node_index_in_cloned_loop_body") and if we've created a + // clone from 'node' (i.e. _old_new entry is non-null). Then we know that 'node' belongs to the original loop body. + bool check(Node* node) const override { + if (node->_idx < _first_node_index_in_cloned_loop_body) { + Node* cloned_node = _old_new[node->_idx]; + return cloned_node != nullptr && cloned_node->_idx >= _first_node_index_in_cloned_loop_body; + } else { + return false; + } + } +}; + +// Visitor to create Initialized Assertion Predicates at a target loop from Template Assertion Predicates from a source +// loop. This visitor can be used in combination with a PredicateIterator. +class CreateAssertionPredicatesVisitor : public PredicateVisitor { + Node* const _init; + Node* const _stride; + Node* const _old_target_loop_entry; + Node* _new_control; + PhaseIdealLoop* const _phase; + bool _has_hoisted_check_parse_predicates; + const NodeInLoopBody& _node_in_loop_body; + + public: + CreateAssertionPredicatesVisitor(Node* init, Node* stride, Node* new_control, PhaseIdealLoop* phase, + const NodeInLoopBody& node_in_loop_body) + : _init(init), + _stride(stride), + _old_target_loop_entry(new_control), + _new_control(new_control), + _phase(phase), + _has_hoisted_check_parse_predicates(false), + _node_in_loop_body(node_in_loop_body) {} + NONCOPYABLE(CreateAssertionPredicatesVisitor); + + using PredicateVisitor::visit; + + void visit(const ParsePredicate& parse_predicate) override; + void visit(const TemplateAssertionPredicate& template_assertion_predicate) override; + + // Did we create any new Initialized Assertion Predicates? + bool has_created_predicates() const { + return _new_control != _old_target_loop_entry; + } + + // Return the last created node by this visitor or the originally provided 'new_control' to the visitor if there was + // no new node created (i.e. no Template Assertion Predicates found). + IfTrueNode* last_created_success_proj() const { + assert(has_created_predicates(), "should only be queried if new nodes have been created"); + assert(_new_control->unique_ctrl_out_or_null() == nullptr, "no control outputs, yet"); + assert(_new_control->is_IfTrue(), "Assertion Predicates only have IfTrue on success proj"); + return _new_control->as_IfTrue(); + } +}; + #endif // SHARE_OPTO_PREDICATES_HPP diff --git a/src/hotspot/share/opto/split_if.cpp b/src/hotspot/share/opto/split_if.cpp index 1eff44ab783..fea8c9f6ffb 100644 --- a/src/hotspot/share/opto/split_if.cpp +++ b/src/hotspot/share/opto/split_if.cpp @@ -322,7 +322,8 @@ bool PhaseIdealLoop::clone_cmp_down(Node* n, const Node* blk1, const Node* blk2) assert( bol->is_Bool(), "" ); if (bol->outcnt() == 1) { Node* use = bol->unique_out(); - if (use->is_Opaque4() || use->is_OpaqueInitializedAssertionPredicate()) { + if (use->is_OpaqueNotNull() || use->is_OpaqueTemplateAssertionPredicate() || + use->is_OpaqueInitializedAssertionPredicate()) { if (use->outcnt() == 1) { Node* iff = use->unique_out(); assert(iff->is_If(), "unexpected node type"); @@ -351,8 +352,9 @@ bool PhaseIdealLoop::clone_cmp_down(Node* n, const Node* blk1, const Node* blk2) #endif for (DUIterator j = bol->outs(); bol->has_out(j); j++) { Node* u = bol->out(j); - // Uses are either IfNodes, CMoves, Opaque4, or OpaqueInitializedAssertionPredicates - if (u->is_Opaque4() || u->is_OpaqueInitializedAssertionPredicate()) { + // Uses are either IfNodes, CMoves, OpaqueNotNull, or Opaque*AssertionPredicate + if (u->is_OpaqueNotNull() || u->is_OpaqueTemplateAssertionPredicate() || + u->is_OpaqueInitializedAssertionPredicate()) { assert(u->in(1) == bol, "bad input"); for (DUIterator_Last kmin, k = u->last_outs(kmin); k >= kmin; --k) { Node* iff = u->last_out(k); @@ -421,11 +423,12 @@ void PhaseIdealLoop::clone_template_assertion_expression_down(Node* node) { TemplateAssertionExpressionNode template_assertion_expression_node(node); auto clone_expression = [&](IfNode* template_assertion_predicate) { - Opaque4Node* opaque4_node = template_assertion_predicate->in(1)->as_Opaque4(); - TemplateAssertionExpression template_assertion_expression(opaque4_node); + OpaqueTemplateAssertionPredicateNode* opaque_node = + template_assertion_predicate->in(1)->as_OpaqueTemplateAssertionPredicate(); + TemplateAssertionExpression template_assertion_expression(opaque_node); Node* new_ctrl = template_assertion_predicate->in(0); - Opaque4Node* cloned_opaque4_node = template_assertion_expression.clone(new_ctrl, this); - igvn().replace_input_of(template_assertion_predicate, 1, cloned_opaque4_node); + OpaqueTemplateAssertionPredicateNode* cloned_opaque_node = template_assertion_expression.clone(new_ctrl, this); + igvn().replace_input_of(template_assertion_predicate, 1, cloned_opaque_node); }; template_assertion_expression_node.for_each_template_assertion_predicate(clone_expression); } diff --git a/src/hotspot/share/opto/vectorIntrinsics.cpp b/src/hotspot/share/opto/vectorIntrinsics.cpp index 6b7483b131f..3d20b22a175 100644 --- a/src/hotspot/share/opto/vectorIntrinsics.cpp +++ b/src/hotspot/share/opto/vectorIntrinsics.cpp @@ -365,9 +365,12 @@ bool LibraryCallKit::inline_vector_nary_operation(int n) { } BasicType elem_bt = elem_type->basic_type(); + bool has_scalar_op = VectorSupport::has_scalar_op(opr->get_con()); + bool is_unsigned = VectorSupport::is_unsigned_op(opr->get_con()); + int num_elem = vlen->get_con(); int opc = VectorSupport::vop2ideal(opr->get_con(), elem_bt); - int sopc = VectorNode::opcode(opc, elem_bt); + int sopc = has_scalar_op ? VectorNode::opcode(opc, elem_bt) : opc; if ((opc != Op_CallLeafVector) && (sopc == 0)) { log_if_needed(" ** operation not supported: opc=%s bt=%s", NodeClassNames[opc], type2name(elem_bt)); return false; // operation not supported @@ -481,7 +484,7 @@ bool LibraryCallKit::inline_vector_nary_operation(int n) { switch (n) { case 1: case 2: { - operation = VectorNode::make(sopc, opd1, opd2, vt, is_vector_mask(vbox_klass), VectorNode::is_shift_opcode(opc)); + operation = VectorNode::make(sopc, opd1, opd2, vt, is_vector_mask(vbox_klass), VectorNode::is_shift_opcode(opc), is_unsigned); break; } case 3: { diff --git a/src/hotspot/share/opto/vectornode.cpp b/src/hotspot/share/opto/vectornode.cpp index fc1c951cfbd..cc2fff23acc 100644 --- a/src/hotspot/share/opto/vectornode.cpp +++ b/src/hotspot/share/opto/vectornode.cpp @@ -667,7 +667,7 @@ VectorNode* VectorNode::make_mask_node(int vopc, Node* n1, Node* n2, uint vlen, } // Make a vector node for binary operation -VectorNode* VectorNode::make(int vopc, Node* n1, Node* n2, const TypeVect* vt, bool is_mask, bool is_var_shift) { +VectorNode* VectorNode::make(int vopc, Node* n1, Node* n2, const TypeVect* vt, bool is_mask, bool is_var_shift, bool is_unsigned) { // This method should not be called for unimplemented vectors. guarantee(vopc > 0, "vopc must be > 0"); @@ -739,6 +739,9 @@ VectorNode* VectorNode::make(int vopc, Node* n1, Node* n2, const TypeVect* vt, b case Op_RShiftVI: return new RShiftVINode(n1, n2, vt, is_var_shift); case Op_RShiftVL: return new RShiftVLNode(n1, n2, vt, is_var_shift); + case Op_UMinV: return new UMinVNode(n1, n2, vt); + case Op_UMaxV: return new UMaxVNode(n1, n2, vt); + case Op_URShiftVB: return new URShiftVBNode(n1, n2, vt, is_var_shift); case Op_URShiftVS: return new URShiftVSNode(n1, n2, vt, is_var_shift); case Op_URShiftVI: return new URShiftVINode(n1, n2, vt, is_var_shift); @@ -759,6 +762,10 @@ VectorNode* VectorNode::make(int vopc, Node* n1, Node* n2, const TypeVect* vt, b case Op_ExpandBitsV: return new ExpandBitsVNode(n1, n2, vt); case Op_CountLeadingZerosV: return new CountLeadingZerosVNode(n1, vt); case Op_CountTrailingZerosV: return new CountTrailingZerosVNode(n1, vt); + + case Op_SaturatingAddV: return new SaturatingAddVNode(n1, n2, vt, is_unsigned); + case Op_SaturatingSubV: return new SaturatingSubVNode(n1, n2, vt, is_unsigned); + default: fatal("Missed vector creation for '%s'", NodeClassNames[vopc]); return nullptr; @@ -2079,10 +2086,8 @@ Node* VectorBlendNode::Identity(PhaseGVN* phase) { return this; } - #ifndef PRODUCT void VectorBoxAllocateNode::dump_spec(outputStream *st) const { CallStaticJavaNode::dump_spec(st); } - #endif // !PRODUCT diff --git a/src/hotspot/share/opto/vectornode.hpp b/src/hotspot/share/opto/vectornode.hpp index 256664983ff..25a381408ca 100644 --- a/src/hotspot/share/opto/vectornode.hpp +++ b/src/hotspot/share/opto/vectornode.hpp @@ -78,7 +78,7 @@ class VectorNode : public TypeNode { static VectorNode* scalar2vector(Node* s, uint vlen, BasicType bt, bool is_mask = false); static VectorNode* shift_count(int opc, Node* cnt, uint vlen, BasicType bt); static VectorNode* make(int opc, Node* n1, Node* n2, uint vlen, BasicType bt, bool is_var_shift = false); - static VectorNode* make(int vopc, Node* n1, Node* n2, const TypeVect* vt, bool is_mask = false, bool is_var_shift = false); + static VectorNode* make(int vopc, Node* n1, Node* n2, const TypeVect* vt, bool is_mask = false, bool is_var_shift = false, bool is_unsigned = false); static VectorNode* make(int opc, Node* n1, Node* n2, Node* n3, uint vlen, BasicType bt); static VectorNode* make(int vopc, Node* n1, Node* n2, Node* n3, const TypeVect* vt); static VectorNode* make_mask_node(int vopc, Node* n1, Node* n2, uint vlen, BasicType bt); @@ -144,6 +144,32 @@ class VectorNode : public TypeNode { }; //===========================Vector=ALU=Operations============================= +// Base IR node for saturating signed / unsigned operations. +// Saturating operation prevents wrapping result value in over/underflowing +// scenarios, instead returns delimiting MAX/MIN value of result type. +class SaturatingVectorNode : public VectorNode { + private: + const bool _is_unsigned; + + public: + SaturatingVectorNode(Node* in1, Node* in2, const TypeVect* vt, bool is_unsigned) : VectorNode(in1, in2, vt), _is_unsigned(is_unsigned) { + init_class_id(Class_SaturatingVector); + } + + // Needed for proper cloning. + virtual uint size_of() const { return sizeof(*this); } + +#ifndef PRODUCT + // Print node specific info + virtual void dump_spec(outputStream *st) const { + TypeNode::dump_spec(st); + st->print("%s", _is_unsigned ? "{unsigned_vector_node}" : "{signed_vector_node}"); + } +#endif + virtual uint hash() const { return Node::hash() + _is_unsigned; } + + bool is_unsigned() { return _is_unsigned; } +}; //------------------------------AddVBNode-------------------------------------- // Vector add byte @@ -355,6 +381,22 @@ class SubVLNode : public VectorNode { virtual int Opcode() const; }; +//------------------------------SaturatingAddVNode----------------------------- +// Vector saturating addition. +class SaturatingAddVNode : public SaturatingVectorNode { + public: + SaturatingAddVNode(Node* in1, Node* in2, const TypeVect* vt, bool is_unsigned) : SaturatingVectorNode(in1, in2, vt, is_unsigned) {} + virtual int Opcode() const; +}; + +//------------------------------SaturatingSubVNode----------------------------- +// Vector saturating subtraction. +class SaturatingSubVNode : public SaturatingVectorNode { + public: + SaturatingSubVNode(Node* in1, Node* in2, const TypeVect* vt, bool is_unsigned) : SaturatingVectorNode(in1, in2, vt, is_unsigned) {} + virtual int Opcode() const; +}; + //------------------------------SubVFNode-------------------------------------- // Vector subtract float class SubVFNode : public VectorNode { @@ -561,6 +603,14 @@ class MinVNode : public VectorNode { virtual int Opcode() const; }; +class UMinVNode : public VectorNode { + public: + UMinVNode(Node* in1, Node* in2, const TypeVect* vt) : VectorNode(in1, in2 ,vt) { + assert(is_integral_type(vt->element_basic_type()), ""); + } + virtual int Opcode() const; +}; + //------------------------------MaxVNode-------------------------------------- // Vector Max class MaxVNode : public VectorNode { @@ -569,6 +619,14 @@ class MaxVNode : public VectorNode { virtual int Opcode() const; }; +class UMaxVNode : public VectorNode { + public: + UMaxVNode(Node* in1, Node* in2, const TypeVect* vt) : VectorNode(in1, in2, vt) { + assert(is_integral_type(vt->element_basic_type()), ""); + } + virtual int Opcode() const; +}; + //------------------------------AbsVINode-------------------------------------- // Vector Abs int class AbsVINode : public VectorNode { diff --git a/src/hotspot/share/prims/jvm.cpp b/src/hotspot/share/prims/jvm.cpp index 5d5d8aa7df9..20dc842eded 100644 --- a/src/hotspot/share/prims/jvm.cpp +++ b/src/hotspot/share/prims/jvm.cpp @@ -3278,10 +3278,7 @@ JVM_ENTRY(jobject, JVM_LatestUserDefinedLoader(JNIEnv *env)) InstanceKlass* ik = vfst.method()->method_holder(); oop loader = ik->class_loader(); if (loader != nullptr && !SystemDictionary::is_platform_class_loader(loader)) { - // Skip reflection related frames - if (!ik->is_subclass_of(vmClasses::reflect_SerializationConstructorAccessorImpl_klass())) { - return JNIHandles::make_local(THREAD, loader); - } + return JNIHandles::make_local(THREAD, loader); } } return nullptr; diff --git a/src/hotspot/share/prims/jvmtiEnvBase.cpp b/src/hotspot/share/prims/jvmtiEnvBase.cpp index 20f48eee673..c28afbb1c51 100644 --- a/src/hotspot/share/prims/jvmtiEnvBase.cpp +++ b/src/hotspot/share/prims/jvmtiEnvBase.cpp @@ -584,7 +584,6 @@ JvmtiEnvBase::jvf_for_thread_and_depth(JavaThread* java_thread, jint depth) { javaVFrame *jvf = java_thread->last_java_vframe(®_map); jvf = JvmtiEnvBase::check_and_skip_hidden_frames(java_thread, jvf); - for (int d = 0; jvf != nullptr && d < depth; d++) { jvf = jvf->java_sender(); } @@ -652,22 +651,42 @@ JavaThread* JvmtiEnvBase::get_JavaThread_or_null(oop vthread) { return Continuation::is_continuation_mounted(java_thread, cont) ? java_thread : nullptr; } +// An unmounted vthread may have an empty stack. +// Otherwise, it always has the yield0() and yield() frames we need to hide. +// The methods yield0() and yield() are annotated with the @JvmtiHideEvents. +javaVFrame* +JvmtiEnvBase::skip_yield_frames_for_unmounted_vthread(javaVFrame* jvf) { + if (jvf == nullptr) { + return jvf; // empty stack is possible + } + assert(jvf->method()->jvmti_hide_events(), "sanity check"); + assert(jvf->method()->method_holder() == vmClasses::Continuation_klass(), "expected Continuation class"); + jvf = jvf->java_sender(); // skip yield0 frame + + assert(jvf != nullptr && jvf->method()->jvmti_hide_events(), "sanity check"); + assert(jvf->method()->method_holder() == vmClasses::Continuation_klass(), "expected Continuation class"); + jvf = jvf->java_sender(); // skip yield frame + return jvf; +} + +// A thread may have an empty stack. +// Otherwise, some top frames may heed to be hidden. +// Two cases are processed below: +// - top frame is annotated with @JvmtiMountTransition: just skip top frames with annotated methods +// - JavaThread is in VTMS transition: skip top frames until a frame annotated with @ChangesCurrentThread is found javaVFrame* JvmtiEnvBase::check_and_skip_hidden_frames(bool is_in_VTMS_transition, javaVFrame* jvf) { - // The second condition is needed to hide notification methods. - if (!is_in_VTMS_transition && (jvf == nullptr || !jvf->method()->jvmti_mount_transition())) { - return jvf; // No frames to skip. + if (jvf == nullptr) { + return jvf; // empty stack is possible } - // Find jvf with a method annotated with @JvmtiMountTransition. - for ( ; jvf != nullptr; jvf = jvf->java_sender()) { - if (jvf->method()->jvmti_mount_transition()) { // Cannot actually appear in an unmounted continuation; they're never frozen. - jvf = jvf->java_sender(); // Skip annotated method. - break; + if (jvf->method()->jvmti_mount_transition()) { + // Skip frames annotated with @JvmtiMountTransition. + for ( ; jvf != nullptr && jvf->method()->jvmti_mount_transition(); jvf = jvf->java_sender()) { } - if (jvf->method()->changes_current_thread()) { - break; + } else if (is_in_VTMS_transition) { + // Skip frames above the frame annotated with @ChangesCurrentThread. + for ( ; jvf != nullptr && !jvf->method()->changes_current_thread(); jvf = jvf->java_sender()) { } - // Skip frame above annotated method. } return jvf; } @@ -678,17 +697,6 @@ JvmtiEnvBase::check_and_skip_hidden_frames(JavaThread* jt, javaVFrame* jvf) { return jvf; } -javaVFrame* -JvmtiEnvBase::check_and_skip_hidden_frames(oop vthread, javaVFrame* jvf) { - JvmtiThreadState* state = java_lang_Thread::jvmti_thread_state(vthread); - if (state == nullptr) { - // nothing to skip - return jvf; - } - jvf = check_and_skip_hidden_frames(java_lang_Thread::is_in_VTMS_transition(vthread), jvf); - return jvf; -} - javaVFrame* JvmtiEnvBase::get_vthread_jvf(oop vthread) { assert(java_lang_VirtualThread::state(vthread) != java_lang_VirtualThread::NEW, "sanity check"); @@ -707,12 +715,13 @@ JvmtiEnvBase::get_vthread_jvf(oop vthread) { return nullptr; } vframeStream vfs(java_thread); + assert(!java_thread->is_in_VTMS_transition(), "invariant"); jvf = vfs.at_end() ? nullptr : vfs.asJavaVFrame(); - jvf = check_and_skip_hidden_frames(java_thread, jvf); + jvf = check_and_skip_hidden_frames(false, jvf); } else { vframeStream vfs(cont); jvf = vfs.at_end() ? nullptr : vfs.asJavaVFrame(); - jvf = check_and_skip_hidden_frames(vthread, jvf); + jvf = skip_yield_frames_for_unmounted_vthread(jvf); } return jvf; } @@ -725,11 +734,9 @@ JvmtiEnvBase::get_cthread_last_java_vframe(JavaThread* jt, RegisterMap* reg_map_ bool cthread_with_cont = JvmtiEnvBase::is_cthread_with_continuation(jt); javaVFrame *jvf = cthread_with_cont ? jt->carrier_last_java_vframe(reg_map_p) : jt->last_java_vframe(reg_map_p); - // Skip hidden frames only for carrier threads - // which are in non-temporary VTMS transition. - if (jt->is_in_VTMS_transition()) { - jvf = check_and_skip_hidden_frames(jt, jvf); - } + + // Skip hidden frames for carrier threads only. + jvf = check_and_skip_hidden_frames(jt, jvf); return jvf; } @@ -1332,7 +1339,9 @@ JvmtiEnvBase::set_frame_pop(JvmtiThreadState* state, javaVFrame* jvf, jint depth if (jvf == nullptr) { return JVMTI_ERROR_NO_MORE_FRAMES; } - if (jvf->method()->is_native() || (depth == 0 && state->top_frame_is_exiting())) { + if (jvf->method()->is_native() || + (depth == 0 && state->top_frame_is_exiting()) || + (state->is_virtual() && jvf->method()->jvmti_hide_events())) { return JVMTI_ERROR_OPAQUE_FRAME; } assert(jvf->frame_pointer() != nullptr, "frame pointer mustn't be null"); @@ -1989,7 +1998,6 @@ void JvmtiHandshake::execute(JvmtiUnitedHandshakeClosure* hs_cl, jthread target) { JavaThread* current = JavaThread::current(); HandleMark hm(current); - JvmtiVTMSTransitionDisabler disabler(target); ThreadsListHandle tlh(current); JavaThread* java_thread = nullptr; diff --git a/src/hotspot/share/prims/jvmtiEnvBase.hpp b/src/hotspot/share/prims/jvmtiEnvBase.hpp index c6891fdeb1f..e8769d423c5 100644 --- a/src/hotspot/share/prims/jvmtiEnvBase.hpp +++ b/src/hotspot/share/prims/jvmtiEnvBase.hpp @@ -366,9 +366,9 @@ class JvmtiEnvBase : public CHeapObj { static bool get_field_descriptor(Klass* k, jfieldID field, fieldDescriptor* fd); // check and skip frames hidden in mount/unmount transitions + static javaVFrame* skip_yield_frames_for_unmounted_vthread(javaVFrame* jvf); static javaVFrame* check_and_skip_hidden_frames(bool is_in_VTMS_transition, javaVFrame* jvf); static javaVFrame* check_and_skip_hidden_frames(JavaThread* jt, javaVFrame* jvf); - static javaVFrame* check_and_skip_hidden_frames(oop vthread, javaVFrame* jvf); // check if virtual thread is not terminated (alive) static bool is_vthread_alive(oop vt); diff --git a/src/hotspot/share/prims/jvmtiImpl.cpp b/src/hotspot/share/prims/jvmtiImpl.cpp index 7b9821fe28a..ac7143e02b8 100644 --- a/src/hotspot/share/prims/jvmtiImpl.cpp +++ b/src/hotspot/share/prims/jvmtiImpl.cpp @@ -833,11 +833,6 @@ VM_VirtualThreadGetOrSetLocal::VM_VirtualThreadGetOrSetLocal(JvmtiEnv* env, Hand } javaVFrame *VM_VirtualThreadGetOrSetLocal::get_java_vframe() { - Thread* cur_thread = Thread::current(); - oop cont = java_lang_VirtualThread::continuation(_vthread_h()); - assert(cont != nullptr, "vthread contintuation must not be null"); - - javaVFrame* jvf = nullptr; JavaThread* java_thread = JvmtiEnvBase::get_JavaThread_or_null(_vthread_h()); bool is_cont_mounted = (java_thread != nullptr); @@ -845,22 +840,8 @@ javaVFrame *VM_VirtualThreadGetOrSetLocal::get_java_vframe() { _result = JVMTI_ERROR_THREAD_NOT_SUSPENDED; return nullptr; } + javaVFrame* jvf = JvmtiEnvBase::get_vthread_jvf(_vthread_h()); - if (is_cont_mounted) { - vframeStream vfs(java_thread); - - if (!vfs.at_end()) { - jvf = vfs.asJavaVFrame(); - jvf = JvmtiEnvBase::check_and_skip_hidden_frames(java_thread, jvf); - } - } else { - vframeStream vfs(cont); - - if (!vfs.at_end()) { - jvf = vfs.asJavaVFrame(); - jvf = JvmtiEnvBase::check_and_skip_hidden_frames(_vthread_h(), jvf); - } - } int d = 0; while ((jvf != nullptr) && (d < _depth)) { jvf = jvf->java_sender(); diff --git a/src/hotspot/share/prims/jvmtiThreadState.cpp b/src/hotspot/share/prims/jvmtiThreadState.cpp index b8d5cb4cdb5..743f112b9b6 100644 --- a/src/hotspot/share/prims/jvmtiThreadState.cpp +++ b/src/hotspot/share/prims/jvmtiThreadState.cpp @@ -253,7 +253,7 @@ JvmtiVTMSTransitionDisabler::print_info() { #endif // disable VTMS transitions for one virtual thread -// no-op if thread is non-null and not a virtual thread +// disable VTMS transitions for all threads if thread is nullptr or a platform thread JvmtiVTMSTransitionDisabler::JvmtiVTMSTransitionDisabler(jthread thread) : _is_SR(false), _thread(thread) { @@ -266,6 +266,17 @@ JvmtiVTMSTransitionDisabler::JvmtiVTMSTransitionDisabler(jthread thread) if (!sync_protocol_enabled_permanently()) { JvmtiVTMSTransitionDisabler::inc_sync_protocol_enabled_count(); } + oop thread_oop = JNIHandles::resolve_external_guard(thread); + + // Target can be virtual or platform thread. + // If target is a platform thread then we have to disable VTMS transitions for all threads. + // It is by several reasons: + // - carrier threads can mount virtual threads which may cause incorrect behavior + // - there is no mechanism to disable transitions for a specific carrier thread yet + if (!java_lang_VirtualThread::is_instance(thread_oop)) { + _thread = nullptr; // target is a platform thread, switch to disabling VTMS transitions for all threads + } + if (_thread != nullptr) { VTMS_transition_disable_for_one(); // disable VTMS transitions for one virtual thread } else { @@ -316,9 +327,8 @@ JvmtiVTMSTransitionDisabler::VTMS_transition_disable_for_one() { JavaThread* thread = JavaThread::current(); HandleMark hm(thread); Handle vth = Handle(thread, JNIHandles::resolve_external_guard(_thread)); - if (!java_lang_VirtualThread::is_instance(vth())) { - return; // no-op if _thread is not a virtual thread - } + assert(java_lang_VirtualThread::is_instance(vth()), "sanity check"); + MonitorLocker ml(JvmtiVTMSTransition_lock); while (_SR_mode) { // suspender or resumer is a JvmtiVTMSTransitionDisabler monopolist @@ -468,7 +478,7 @@ JvmtiVTMSTransitionDisabler::start_VTMS_transition(jthread vthread, bool is_moun JvmtiVTSuspender::is_vthread_suspended(thread_id) ) { // Block while transitions are disabled or there are suspend requests. - if (ml.wait(10)) { + if (ml.wait(200)) { attempts--; } DEBUG_ONLY(if (attempts == 0) break;) @@ -525,7 +535,7 @@ JvmtiVTMSTransitionDisabler::finish_VTMS_transition(jthread vthread, bool is_mou (is_mount && JvmtiVTSuspender::is_vthread_suspended(thread_id)) ) { // Block while there are suspend requests. - if (ml.wait(10)) { + if (ml.wait(200)) { attempts--; } DEBUG_ONLY(if (attempts == 0) break;) diff --git a/src/hotspot/share/prims/methodHandles.cpp b/src/hotspot/share/prims/methodHandles.cpp index 498da559cf5..1e44ea95731 100644 --- a/src/hotspot/share/prims/methodHandles.cpp +++ b/src/hotspot/share/prims/methodHandles.cpp @@ -1464,15 +1464,15 @@ JVM_ENTRY(void, JVM_RegisterMethodHandleMethods(JNIEnv *env, jclass MHN_class)) ThreadToNativeFromVM ttnfv(thread); int status = env->RegisterNatives(MHN_class, MHN_methods, sizeof(MHN_methods)/sizeof(JNINativeMethod)); - guarantee(status == JNI_OK && !env->ExceptionOccurred(), + guarantee(status == JNI_OK && !env->ExceptionCheck(), "register java.lang.invoke.MethodHandleNative natives"); status = env->RegisterNatives(MH_class, MH_methods, sizeof(MH_methods)/sizeof(JNINativeMethod)); - guarantee(status == JNI_OK && !env->ExceptionOccurred(), + guarantee(status == JNI_OK && !env->ExceptionCheck(), "register java.lang.invoke.MethodHandle natives"); status = env->RegisterNatives(VH_class, VH_methods, sizeof(VH_methods)/sizeof(JNINativeMethod)); - guarantee(status == JNI_OK && !env->ExceptionOccurred(), + guarantee(status == JNI_OK && !env->ExceptionCheck(), "register java.lang.invoke.VarHandle natives"); } diff --git a/src/hotspot/share/prims/nativeEntryPoint.cpp b/src/hotspot/share/prims/nativeEntryPoint.cpp index 2dbff08a7cb..81c6058c11b 100644 --- a/src/hotspot/share/prims/nativeEntryPoint.cpp +++ b/src/hotspot/share/prims/nativeEntryPoint.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -116,6 +116,6 @@ static JNINativeMethod NEP_methods[] = { JNI_ENTRY(void, JVM_RegisterNativeEntryPointMethods(JNIEnv *env, jclass NEP_class)) ThreadToNativeFromVM ttnfv(thread); int status = env->RegisterNatives(NEP_class, NEP_methods, sizeof(NEP_methods)/sizeof(JNINativeMethod)); - guarantee(status == JNI_OK && !env->ExceptionOccurred(), + guarantee(status == JNI_OK && !env->ExceptionCheck(), "register jdk.internal.foreign.abi.NativeEntryPoint natives"); JNI_END diff --git a/src/hotspot/share/prims/unsafe.cpp b/src/hotspot/share/prims/unsafe.cpp index 239ae480030..46f9bfc3ef9 100644 --- a/src/hotspot/share/prims/unsafe.cpp +++ b/src/hotspot/share/prims/unsafe.cpp @@ -669,7 +669,7 @@ static jclass Unsafe_DefineClass_impl(JNIEnv *env, jstring name, jbyteArray data } env->GetByteArrayRegion(data, offset, length, body); - if (env->ExceptionOccurred()) { + if (env->ExceptionCheck()) { goto free_body; } diff --git a/src/hotspot/share/prims/upcallLinker.cpp b/src/hotspot/share/prims/upcallLinker.cpp index 1abce57652a..7511e278c69 100644 --- a/src/hotspot/share/prims/upcallLinker.cpp +++ b/src/hotspot/share/prims/upcallLinker.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -187,6 +187,6 @@ static JNINativeMethod UL_methods[] = { JNI_ENTRY(void, JVM_RegisterUpcallLinkerMethods(JNIEnv *env, jclass UL_class)) ThreadToNativeFromVM ttnfv(thread); int status = env->RegisterNatives(UL_class, UL_methods, sizeof(UL_methods)/sizeof(JNINativeMethod)); - guarantee(status == JNI_OK && !env->ExceptionOccurred(), + guarantee(status == JNI_OK && !env->ExceptionCheck(), "register jdk.internal.foreign.abi.UpcallLinker natives"); JNI_END diff --git a/src/hotspot/share/prims/upcallStubs.cpp b/src/hotspot/share/prims/upcallStubs.cpp index 19737575fcd..3c70b671c9d 100644 --- a/src/hotspot/share/prims/upcallStubs.cpp +++ b/src/hotspot/share/prims/upcallStubs.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -50,7 +50,7 @@ static JNINativeMethod UH_methods[] = { */ JVM_LEAF(void, JVM_RegisterUpcallHandlerMethods(JNIEnv *env, jclass UH_class)) int status = env->RegisterNatives(UH_class, UH_methods, sizeof(UH_methods)/sizeof(JNINativeMethod)); - guarantee(status == JNI_OK && !env->ExceptionOccurred(), + guarantee(status == JNI_OK && !env->ExceptionCheck(), "register jdk.internal.foreign.abi.UpcallStubs natives"); JVM_END diff --git a/src/hotspot/share/prims/vectorSupport.cpp b/src/hotspot/share/prims/vectorSupport.cpp index 65bc6c48fee..9eb0b46131b 100644 --- a/src/hotspot/share/prims/vectorSupport.cpp +++ b/src/hotspot/share/prims/vectorSupport.cpp @@ -199,6 +199,36 @@ instanceOop VectorSupport::allocate_vector(InstanceKlass* ik, frame* fr, Registe } #ifdef COMPILER2 +bool VectorSupport::has_scalar_op(jint id) { + VectorOperation vop = (VectorOperation)id; + switch (vop) { + case VECTOR_OP_COMPRESS: + case VECTOR_OP_EXPAND: + case VECTOR_OP_SADD: + case VECTOR_OP_SUADD: + case VECTOR_OP_SSUB: + case VECTOR_OP_SUSUB: + case VECTOR_OP_UMIN: + case VECTOR_OP_UMAX: + return false; + default: + return true; + } +} + +bool VectorSupport::is_unsigned_op(jint id) { + VectorOperation vop = (VectorOperation)id; + switch (vop) { + case VECTOR_OP_SUADD: + case VECTOR_OP_SUSUB: + case VECTOR_OP_UMIN: + case VECTOR_OP_UMAX: + return true; + default: + return false; + } +} + int VectorSupport::vop2ideal(jint id, BasicType bt) { VectorOperation vop = (VectorOperation)id; switch (vop) { @@ -274,6 +304,26 @@ int VectorSupport::vop2ideal(jint id, BasicType bt) { } break; } + case VECTOR_OP_UMIN: { + switch (bt) { + case T_BYTE: + case T_SHORT: + case T_INT: + case T_LONG: return Op_UMinV; + default: fatal("MIN: %s", type2name(bt)); + } + break; + } + case VECTOR_OP_UMAX: { + switch (bt) { + case T_BYTE: + case T_SHORT: + case T_INT: + case T_LONG: return Op_UMaxV; + default: fatal("MAX: %s", type2name(bt)); + } + break; + } case VECTOR_OP_ABS: { switch (bt) { case T_BYTE: // fall-through @@ -533,6 +583,28 @@ int VectorSupport::vop2ideal(jint id, BasicType bt) { } break; } + case VECTOR_OP_SADD: + case VECTOR_OP_SUADD: { + switch(bt) { + case T_BYTE: // fall-through + case T_SHORT: // fall-through + case T_INT: // fall-through + case T_LONG: return Op_SaturatingAddV; + default: fatal("S[U]ADD: %s", type2name(bt)); + } + break; + } + case VECTOR_OP_SSUB: + case VECTOR_OP_SUSUB: { + switch(bt) { + case T_BYTE: // fall-through + case T_SHORT: // fall-through + case T_INT: // fall-through + case T_LONG: return Op_SaturatingSubV; + default: fatal("S[U}SUB: %s", type2name(bt)); + } + break; + } case VECTOR_OP_COMPRESS_BITS: { switch (bt) { case T_INT: diff --git a/src/hotspot/share/prims/vectorSupport.hpp b/src/hotspot/share/prims/vectorSupport.hpp index 6f8e52e9ec0..001484874e2 100644 --- a/src/hotspot/share/prims/vectorSupport.hpp +++ b/src/hotspot/share/prims/vectorSupport.hpp @@ -121,6 +121,13 @@ class VectorSupport : AllStatic { VECTOR_OP_EXPM1 = 117, VECTOR_OP_HYPOT = 118, + VECTOR_OP_SADD = 119, + VECTOR_OP_SSUB = 120, + VECTOR_OP_SUADD = 121, + VECTOR_OP_SUSUB = 122, + VECTOR_OP_UMIN = 123, + VECTOR_OP_UMAX = 124, + VECTOR_OP_MATH_START = VECTOR_OP_TAN, VECTOR_OP_MATH_END = VECTOR_OP_HYPOT, NUM_VECTOR_OP_MATH = VECTOR_OP_MATH_END - VECTOR_OP_MATH_START + 1 @@ -143,6 +150,8 @@ class VectorSupport : AllStatic { static const char* mathname[VectorSupport::NUM_VECTOR_OP_MATH]; static int vop2ideal(jint vop, BasicType bt); + static bool has_scalar_op(jint id); + static bool is_unsigned_op(jint id); static instanceOop allocate_vector(InstanceKlass* holder, frame* fr, RegisterMap* reg_map, ObjectValue* sv, TRAPS); diff --git a/src/hotspot/share/prims/whitebox.cpp b/src/hotspot/share/prims/whitebox.cpp index 24f6156224d..54c5279512e 100644 --- a/src/hotspot/share/prims/whitebox.cpp +++ b/src/hotspot/share/prims/whitebox.cpp @@ -424,11 +424,7 @@ WB_ENTRY(jboolean, WB_isObjectInOldGen(JNIEnv* env, jobject o, jobject obj)) #endif #if INCLUDE_ZGC if (UseZGC) { - if (ZGenerational) { - return ZHeap::heap()->is_old(to_zaddress(p)); - } else { - return Universe::heap()->is_in(p); - } + return ZHeap::heap()->is_old(to_zaddress(p)); } #endif #if INCLUDE_SHENANDOAHGC @@ -1751,7 +1747,7 @@ WB_ENTRY(jlong, WB_GetTotalUsedWordsInMetaspaceTestContext(JNIEnv* env, jobject WB_END WB_ENTRY(jlong, WB_CreateArenaInTestContext(JNIEnv* env, jobject wb, jlong context, jboolean is_micro)) - const Metaspace::MetaspaceType type = is_micro ? Metaspace::ReflectionMetaspaceType : Metaspace::StandardMetaspaceType; + const Metaspace::MetaspaceType type = is_micro ? Metaspace::ClassMirrorHolderMetaspaceType : Metaspace::StandardMetaspaceType; metaspace::MetaspaceTestContext* context0 = (metaspace::MetaspaceTestContext*) context; return (jlong)p2i(context0->create_arena(type)); WB_END @@ -2159,8 +2155,7 @@ WB_ENTRY(jboolean, WB_IsJVMCISupportedByGC(JNIEnv* env)) WB_END WB_ENTRY(jboolean, WB_CanWriteJavaHeapArchive(JNIEnv* env)) - return HeapShared::can_write() - && ArchiveHeapLoader::can_use(); // work-around JDK-8341371 + return HeapShared::can_write(); WB_END diff --git a/src/hotspot/share/runtime/arguments.cpp b/src/hotspot/share/runtime/arguments.cpp index fe9641063b3..ce854a258a7 100644 --- a/src/hotspot/share/runtime/arguments.cpp +++ b/src/hotspot/share/runtime/arguments.cpp @@ -505,7 +505,6 @@ static SpecialFlag const special_jvm_flags[] = { // --- Non-alias flags - sorted by obsolete_in then expired_in: { "AllowRedefinitionToAddDeleteMethods", JDK_Version::jdk(13), JDK_Version::undefined(), JDK_Version::undefined() }, { "FlightRecorder", JDK_Version::jdk(13), JDK_Version::undefined(), JDK_Version::undefined() }, - { "ZGenerational", JDK_Version::jdk(23), JDK_Version::undefined(), JDK_Version::undefined() }, { "DumpSharedSpaces", JDK_Version::jdk(18), JDK_Version::jdk(19), JDK_Version::undefined() }, { "DynamicDumpSharedSpaces", JDK_Version::jdk(18), JDK_Version::jdk(19), JDK_Version::undefined() }, { "RequireSharedSpaces", JDK_Version::jdk(18), JDK_Version::jdk(19), JDK_Version::undefined() }, @@ -521,7 +520,7 @@ static SpecialFlag const special_jvm_flags[] = { // -------------- Obsolete Flags - sorted by expired_in -------------- { "MetaspaceReclaimPolicy", JDK_Version::undefined(), JDK_Version::jdk(21), JDK_Version::undefined() }, - + { "ZGenerational", JDK_Version::jdk(23), JDK_Version::jdk(24), JDK_Version::undefined() }, { "UseNotificationThread", JDK_Version::jdk(23), JDK_Version::jdk(24), JDK_Version::jdk(25) }, { "PreserveAllAnnotations", JDK_Version::jdk(23), JDK_Version::jdk(24), JDK_Version::jdk(25) }, { "UseEmptySlotsInSupers", JDK_Version::jdk(23), JDK_Version::jdk(24), JDK_Version::jdk(25) }, diff --git a/src/hotspot/share/runtime/continuation.cpp b/src/hotspot/share/runtime/continuation.cpp index cd55b4a9cff..fb697dd4920 100644 --- a/src/hotspot/share/runtime/continuation.cpp +++ b/src/hotspot/share/runtime/continuation.cpp @@ -428,5 +428,5 @@ void CONT_RegisterNativeMethods(JNIEnv *env, jclass cls) { ThreadToNativeFromVM trans(thread); int status = env->RegisterNatives(cls, CONT_methods, sizeof(CONT_methods)/sizeof(JNINativeMethod)); guarantee(status == JNI_OK, "register jdk.internal.vm.Continuation natives"); - guarantee(!env->ExceptionOccurred(), "register jdk.internal.vm.Continuation natives"); + guarantee(!env->ExceptionCheck(), "register jdk.internal.vm.Continuation natives"); } diff --git a/src/hotspot/share/runtime/continuationFreezeThaw.cpp b/src/hotspot/share/runtime/continuationFreezeThaw.cpp index e36b252362b..ce2e2bdb9ff 100644 --- a/src/hotspot/share/runtime/continuationFreezeThaw.cpp +++ b/src/hotspot/share/runtime/continuationFreezeThaw.cpp @@ -1442,9 +1442,7 @@ stackChunkOop Freeze::allocate_chunk(size_t stack_size, int argsize_md) #if INCLUDE_ZGC if (UseZGC) { - if (ZGenerational) { - ZStackChunkGCData::initialize(chunk); - } + ZStackChunkGCData::initialize(chunk); assert(!chunk->requires_barriers(), "ZGC always allocates in the young generation"); _barriers = false; } else diff --git a/src/hotspot/share/runtime/mutexLocker.cpp b/src/hotspot/share/runtime/mutexLocker.cpp index a0a6e5626e4..76d0674e8c6 100644 --- a/src/hotspot/share/runtime/mutexLocker.cpp +++ b/src/hotspot/share/runtime/mutexLocker.cpp @@ -135,6 +135,7 @@ Mutex* SharedDecoder_lock = nullptr; Mutex* DCmdFactory_lock = nullptr; Mutex* NMTQuery_lock = nullptr; Mutex* NMTCompilationCostHistory_lock = nullptr; +Mutex* NmtVirtualMemory_lock = nullptr; #if INCLUDE_CDS #if INCLUDE_JVMTI @@ -293,10 +294,11 @@ void mutex_init() { MUTEX_DEFN(CodeHeapStateAnalytics_lock , PaddedMutex , safepoint); MUTEX_DEFN(ThreadsSMRDelete_lock , PaddedMonitor, service-2); // Holds ConcurrentHashTableResize_lock MUTEX_DEFN(ThreadIdTableCreate_lock , PaddedMutex , safepoint); - MUTEX_DEFN(SharedDecoder_lock , PaddedMutex , tty-1); + MUTEX_DEFN(SharedDecoder_lock , PaddedMutex , service-5); // Must be lower than NmtVirtualMemory_lock due to MemTracker::print_containing_region MUTEX_DEFN(DCmdFactory_lock , PaddedMutex , nosafepoint); MUTEX_DEFN(NMTQuery_lock , PaddedMutex , safepoint); MUTEX_DEFN(NMTCompilationCostHistory_lock , PaddedMutex , nosafepoint); + MUTEX_DEFN(NmtVirtualMemory_lock , PaddedMutex , service-4); #if INCLUDE_CDS #if INCLUDE_JVMTI MUTEX_DEFN(CDSClassFileStream_lock , PaddedMutex , safepoint); diff --git a/src/hotspot/share/runtime/mutexLocker.hpp b/src/hotspot/share/runtime/mutexLocker.hpp index 932ca5fce82..07bea6b614d 100644 --- a/src/hotspot/share/runtime/mutexLocker.hpp +++ b/src/hotspot/share/runtime/mutexLocker.hpp @@ -28,6 +28,7 @@ #include "memory/allocation.hpp" #include "runtime/flags/flagSetting.hpp" #include "runtime/mutex.hpp" +#include "runtime/thread.hpp" // Mutexes used in the VM. @@ -115,6 +116,7 @@ extern Mutex* SharedDecoder_lock; // serializes access to the dec extern Mutex* DCmdFactory_lock; // serialize access to DCmdFactory information extern Mutex* NMTQuery_lock; // serialize NMT Dcmd queries extern Mutex* NMTCompilationCostHistory_lock; // guards NMT compilation cost history +extern Mutex* NmtVirtualMemory_lock; // guards NMT virtual memory updates #if INCLUDE_CDS #if INCLUDE_JVMTI extern Mutex* CDSClassFileStream_lock; // FileMapInfo::open_stream_for_jvmti diff --git a/src/hotspot/share/runtime/objectMonitor.cpp b/src/hotspot/share/runtime/objectMonitor.cpp index 755d49d2c6c..3ea987801db 100644 --- a/src/hotspot/share/runtime/objectMonitor.cpp +++ b/src/hotspot/share/runtime/objectMonitor.cpp @@ -1133,6 +1133,14 @@ void ObjectMonitor::UnlinkAfterAcquire(JavaThread* current, ObjectWaiter* curren // or drain _cxq, we need to reacquire the lock before we can wake up // (unpark) a waiting thread. // +// Note that we read the EntryList and then the cxq after dropping the +// lock, so the values need not form a stable snapshot. In particular, +// after reading the (empty) EntryList, another thread could acquire +// and release the lock, moving any entries in the cxq to the +// EntryList, causing the current thread to see an empty cxq and +// conclude there are no waiters. But this is okay as the thread that +// moved the cxq is responsible for waking the successor. +// // The CAS() in enter provides for safety and exclusion, while the // MEMBAR in exit provides for progress and avoids stranding. // diff --git a/src/hotspot/share/runtime/os.cpp b/src/hotspot/share/runtime/os.cpp index 5dc5a1af8cc..2395510f27f 100644 --- a/src/hotspot/share/runtime/os.cpp +++ b/src/hotspot/share/runtime/os.cpp @@ -2166,7 +2166,7 @@ bool os::uncommit_memory(char* addr, size_t bytes, bool executable) { assert_nonempty_range(addr, bytes); bool res; if (MemTracker::enabled()) { - ThreadCritical tc; + NmtVirtualMemoryLocker ml; res = pd_uncommit_memory(addr, bytes, executable); if (res) { MemTracker::record_virtual_memory_uncommit((address)addr, bytes); @@ -2188,7 +2188,7 @@ bool os::release_memory(char* addr, size_t bytes) { assert_nonempty_range(addr, bytes); bool res; if (MemTracker::enabled()) { - ThreadCritical tc; + NmtVirtualMemoryLocker ml; res = pd_release_memory(addr, bytes); if (res) { MemTracker::record_virtual_memory_release((address)addr, bytes); @@ -2273,7 +2273,7 @@ char* os::map_memory(int fd, const char* file_name, size_t file_offset, bool os::unmap_memory(char *addr, size_t bytes) { bool result; if (MemTracker::enabled()) { - ThreadCritical tc; + NmtVirtualMemoryLocker ml; result = pd_unmap_memory(addr, bytes); if (result) { MemTracker::record_virtual_memory_release((address)addr, bytes); @@ -2312,7 +2312,7 @@ char* os::reserve_memory_special(size_t size, size_t alignment, size_t page_size bool os::release_memory_special(char* addr, size_t bytes) { bool res; if (MemTracker::enabled()) { - ThreadCritical tc; + NmtVirtualMemoryLocker ml; res = pd_release_memory_special(addr, bytes); if (res) { MemTracker::record_virtual_memory_release((address)addr, bytes); diff --git a/src/hotspot/share/runtime/reflection.cpp b/src/hotspot/share/runtime/reflection.cpp index 15172b7f4c3..97fc26a599f 100644 --- a/src/hotspot/share/runtime/reflection.cpp +++ b/src/hotspot/share/runtime/reflection.cpp @@ -448,12 +448,6 @@ Reflection::VerifyClassAccessResults Reflection::verify_class_access( is_same_class_package(current_class, new_class)) { return ACCESS_OK; } - // Allow all accesses from jdk/internal/reflect/SerializationConstructorAccessorImpl subclasses to - // succeed trivially. - if (vmClasses::reflect_SerializationConstructorAccessorImpl_klass_is_loaded() && - current_class->is_subclass_of(vmClasses::reflect_SerializationConstructorAccessorImpl_klass())) { - return ACCESS_OK; - } // module boundaries if (new_class->is_public()) { @@ -658,12 +652,6 @@ bool Reflection::verify_member_access(const Klass* current_class, } } - // Allow all accesses from jdk/internal/reflect/SerializationConstructorAccessorImpl subclasses to - // succeed trivially. - if (current_class->is_subclass_of(vmClasses::reflect_SerializationConstructorAccessorImpl_klass())) { - return true; - } - // Check for special relaxations return can_relax_access_check_for(current_class, member_class, classloader_only); } diff --git a/src/hotspot/share/runtime/sharedRuntimeTrans.cpp b/src/hotspot/share/runtime/sharedRuntimeTrans.cpp index 491705d8d7f..5285819ee96 100644 --- a/src/hotspot/share/runtime/sharedRuntimeTrans.cpp +++ b/src/hotspot/share/runtime/sharedRuntimeTrans.cpp @@ -26,6 +26,9 @@ #include "jni.h" #include "runtime/interfaceSupport.inline.hpp" #include "runtime/sharedRuntime.hpp" +#include "sanitizers/ub.hpp" + +#include // This file contains copies of the fdlibm routines used by // StrictMath. It turns out that it is almost always required to use @@ -110,11 +113,14 @@ ln2_hi = 6.93147180369123816490e-01, /* 3fe62e42 fee00000 */ static double zero = 0.0; +ATTRIBUTE_NO_UBSAN static double __ieee754_log(double x) { double hfsq,f,s,z,R,w,t1,t2,dk; int k,hx,i,j; unsigned lx; + static_assert(std::numeric_limits::is_iec559, "IEEE 754 required"); + hx = high(x); /* high word of x */ lx = low(x); /* low word of x */ @@ -204,11 +210,14 @@ ivln10 = 4.34294481903251816668e-01, /* 0x3FDBCB7B, 0x1526E50E */ log10_2hi = 3.01029995663611771306e-01, /* 0x3FD34413, 0x509F6000 */ log10_2lo = 3.69423907715893078616e-13; /* 0x3D59FEF3, 0x11F12B36 */ +ATTRIBUTE_NO_UBSAN static double __ieee754_log10(double x) { double y,z; int i,k,hx; unsigned lx; + static_assert(std::numeric_limits::is_iec559, "IEEE 754 required"); + hx = high(x); /* high word of x */ lx = low(x); /* low word of x */ @@ -440,6 +449,7 @@ bp[] = {1.0, 1.5,}, ivln2_h = 1.44269502162933349609e+00, /* 0x3FF71547, 0x60000000 =24b 1/ln2*/ ivln2_l = 1.92596299112661746887e-08; /* 0x3E54AE0B, 0xF85DDF44 =1/ln2 tail*/ +ATTRIBUTE_NO_UBSAN static double __ieee754_pow(double x, double y) { double z,ax,z_h,z_l,p_h,p_l; double y1,t1,t2,r,s,t,u,v,w; @@ -447,6 +457,8 @@ static double __ieee754_pow(double x, double y) { int hx,hy,ix,iy; unsigned lx,ly; + static_assert(std::numeric_limits::is_iec559, "IEEE 754 required"); + i0 = ((*(int*)&one)>>29)^1; i1=1-i0; hx = high(x); lx = low(x); hy = high(y); ly = low(y); diff --git a/src/hotspot/share/services/attachListener.cpp b/src/hotspot/share/services/attachListener.cpp index 36931531a4e..90f5930cce0 100644 --- a/src/hotspot/share/services/attachListener.cpp +++ b/src/hotspot/share/services/attachListener.cpp @@ -50,6 +50,38 @@ volatile AttachListenerState AttachListener::_state = AL_NOT_INITIALIZED; +AttachAPIVersion AttachListener::_supported_version = ATTACH_API_V1; + +static bool get_bool_sys_prop(const char* name, bool default_value, TRAPS) { + ResourceMark rm(THREAD); + HandleMark hm(THREAD); + + // setup the arguments to getProperty + Handle key_str = java_lang_String::create_from_str(name, CHECK_(default_value)); + // return value + JavaValue result(T_OBJECT); + // public static String getProperty(String key, String def); + JavaCalls::call_static(&result, + vmClasses::System_klass(), + vmSymbols::getProperty_name(), + vmSymbols::string_string_signature(), + key_str, + CHECK_(default_value)); + oop value_oop = result.get_oop(); + if (value_oop != nullptr) { + // convert Java String to utf8 string + char* value = java_lang_String::as_utf8_string(value_oop); + if (strcasecmp(value, "true") == 0) { + return true; + } + if (strcasecmp(value, "false") == 0) { + return false; + } + } + return default_value; +} + + // Implementation of "properties" command. // // Invokes VMSupport.serializePropertiesToByteArray to serialize @@ -351,6 +383,12 @@ static jint print_flag(AttachOperation* op, outputStream* out) { return JNI_OK; } +// Implementation of "getversion" command +static jint get_version(AttachOperation* op, outputStream* out) { + out->print("%d", (int)AttachListener::get_supported_version()); + return JNI_OK; +} + // Table to map operation names to functions. // names must be of length <= AttachOperation::name_length_max @@ -365,6 +403,7 @@ static AttachOperationFunctionInfo funcs[] = { { "setflag", set_flag }, { "printflag", print_flag }, { "jcmd", jcmd }, + { "getversion", get_version }, { nullptr, nullptr } }; @@ -472,3 +511,175 @@ void AttachListener::detachall() { // call the platform dependent clean-up pd_detachall(); } + +void AttachListener::set_supported_version(AttachAPIVersion version) { +// _supported_version = version; + const char* prop_name = "jdk.attach.compat"; + if (!get_bool_sys_prop(prop_name, false, JavaThread::current())) { + _supported_version = version; + } +} + +AttachAPIVersion AttachListener::get_supported_version() { + return _supported_version; +} + + +int AttachOperation::RequestReader::read_uint() { + const int MAX_VALUE = INT_MAX / 20; + char ch; + int value = 0; + while (true) { + int n = read(&ch, 1); + if (n != 1) { + // IO errors (n < 0) are logged by read(). + if (n == 0) { // EOF + log_error(attach)("Failed to read int value: EOF"); + } + return -1; + } + if (ch == '\0') { + return value; + } + if (ch < '0' || ch > '9') { + log_error(attach)("Failed to read int value: unexpected symbol: %c", ch); + return -1; + } + // Ensure there is no integer overflow. + if (value >= MAX_VALUE) { + log_error(attach)("Failed to read int value: too big"); + return -1; + } + value = value * 10 + (ch - '0'); + } +} + +// Reads operation name and arguments. +// buffer_size: maximum data size; +// min_str_count: minimum number of strings in the request (name + arguments); +// min_read_size: minimum data size. +bool AttachOperation::read_request_data(AttachOperation::RequestReader* reader, + int buffer_size, int min_str_count, int min_read_size) { + char* buffer = (char*)os::malloc(buffer_size, mtServiceability); + int str_count = 0; + int off = 0; + int left = buffer_size; + + // Read until all (expected) strings or expected bytes have been read, the buffer is full, or EOF. + do { + int n = reader->read(buffer + off, left); + if (n < 0) { + os::free(buffer); + return false; + } + if (n == 0) { // EOF + break; + } + if (min_str_count > 0) { // need to count arguments + for (int i = 0; i < n; i++) { + if (buffer[off + i] == '\0') { + str_count++; + } + } + } + off += n; + left -= n; + } while (left > 0 && (off < min_read_size || str_count < min_str_count)); + + if (off < min_read_size || str_count < min_str_count) { // unexpected EOF + log_error(attach)("Failed to read request: incomplete request"); + os::free(buffer); + return false; + } + // Request must ends with '\0'. + if (buffer[off - 1] != '\0') { + log_error(attach)("Failed to read request: not terminated"); + os::free(buffer); + return false; + } + + // Parse request. + // Command name is the 1st string. + set_name(buffer); + log_debug(attach)("read request: cmd = %s", buffer); + + // Arguments. + char* end = buffer + off; + for (char* cur = strchr(buffer, '\0') + 1; cur < end; cur = strchr(cur, '\0') + 1) { + log_debug(attach)("read request: arg = %s", cur); + append_arg(cur); + } + + os::free(buffer); + + return true; +} + +bool AttachOperation::read_request(RequestReader* reader) { + uint ver = reader->read_uint(); + int buffer_size = 0; + // Read conditions: + int min_str_count = 0; // expected number of strings in the request + int min_read_size = 1; // expected size of the request data (by default 1 symbol for terminating '\0') + switch (ver) { + case ATTACH_API_V1: // 00000 + // Always contain a command (up to name_length_max chars) + // and arg_count_max(3) arguments (each up to arg_length_max chars). + buffer_size = (name_length_max + 1) + arg_count_max * (arg_length_max + 1); + min_str_count = 1 /*name*/ + arg_count_max; + break; + case ATTACH_API_V2: // 000000 + if (AttachListener::get_supported_version() < 2) { + log_error(attach)("Failed to read request: v2 is unsupported ot disabled"); + return false; + } + + // read size of the data + buffer_size = reader->read_uint(); + if (buffer_size < 0) { + return false; + } + log_debug(attach)("v2 request, data size = %d", buffer_size); + + // Sanity check: max request size is 256K. + if (buffer_size > 256 * 1024) { + log_error(attach)("Failed to read request: too big"); + return false; + } + // Must contain exact 'buffer_size' bytes. + min_read_size = buffer_size; + break; + default: + log_error(attach)("Failed to read request: unknown version (%d)", ver); + return false; + } + + return read_request_data(reader, buffer_size, min_str_count, min_read_size); +} + +bool AttachOperation::ReplyWriter::write_fully(const void* buffer, int size) { + const char* buf = (const char*)buffer; + do { + int n = write(buf, size); + if (n < 0) { + return false; + } + buf += n; + size -= n; + } while (size > 0); + return true; +} + +bool AttachOperation::write_reply(ReplyWriter* writer, jint result, bufferedStream* result_stream) { + char msg[32]; + os::snprintf_checked(msg, sizeof(msg), "%d\n", result); + if (!writer->write_fully(msg, (int)strlen(msg))) { + return false; + } + if (!writer->write_fully(result_stream->base(), (int)result_stream->size())) { + return false; + } + writer->flush(); + return true; +} + diff --git a/src/hotspot/share/services/attachListener.hpp b/src/hotspot/share/services/attachListener.hpp index c49f996cdb4..093fa410d12 100644 --- a/src/hotspot/share/services/attachListener.hpp +++ b/src/hotspot/share/services/attachListener.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -32,6 +32,7 @@ #include "utilities/debug.hpp" #include "utilities/exceptions.hpp" #include "utilities/globalDefinitions.hpp" +#include "utilities/growableArray.hpp" #include "utilities/macros.hpp" #include "utilities/ostream.hpp" @@ -59,6 +60,20 @@ enum AttachListenerState { AL_INITIALIZED }; +/* +Version 1 (since jdk6): attach operations always have 3 (AttachOperation::arg_count_max) + arguments, each up to 1024 (AttachOperation::arg_length_max) chars. +Version 2 (since jdk24): attach operations may have any number of arguments of any length; + for safety default implementation restricts attach operation request size by 256KB. + To detect if target VM supports version 2, client sends "getversion" command. + Old VM reports "Operation not recognized" error, newer VM reports version supported by the implementation. + If the target VM does not support version 2, client uses version 1 to enqueue operations. +*/ +enum AttachAPIVersion: int { + ATTACH_API_V1 = 1, + ATTACH_API_V2 = 2 +}; + class AttachListenerThread : public JavaThread { private: static void thread_entry(JavaThread* thread, TRAPS); @@ -93,7 +108,12 @@ class AttachListener: AllStatic { private: static volatile AttachListenerState _state; + static AttachAPIVersion _supported_version; + public: + static void set_supported_version(AttachAPIVersion version); + static AttachAPIVersion get_supported_version(); + static void set_state(AttachListenerState new_state) { Atomic::store(&_state, new_state); } @@ -136,8 +156,9 @@ class AttachListener: AllStatic { }; #if INCLUDE_SERVICES -class AttachOperation: public CHeapObj { - public: +class AttachOperation: public CHeapObj { +public: + // v1 constants enum { name_length_max = 16, // maximum length of name arg_length_max = 1024, // maximum length of argument @@ -148,51 +169,100 @@ class AttachOperation: public CHeapObj { // clients detach static char* detachall_operation_name() { return (char*)"detachall"; } - private: - char _name[name_length_max+1]; - char _arg[arg_count_max][arg_length_max+1]; +private: + char* _name; + GrowableArrayCHeap _args; - public: - const char* name() const { return _name; } + static char* copy_str(const char* value) { + return value == nullptr ? nullptr : os::strdup(value, mtServiceability); + } + +public: + const char* name() const { return _name; } // set the operation name void set_name(const char* name) { - assert(strlen(name) <= name_length_max, "exceeds maximum name length"); - size_t len = MIN2(strlen(name), (size_t)name_length_max); - memcpy(_name, name, len); - _name[len] = '\0'; + os::free(_name); + _name = copy_str(name); + } + + int arg_count() const { + return _args.length(); } // get an argument value const char* arg(int i) const { - assert(i>=0 && i= _args.length() || _args.at(i) == nullptr) { + static char empty_str[] = ""; + return empty_str; + } + return _args.at(i); + } + + // appends an argument + void append_arg(const char* arg) { + _args.append(copy_str(arg)); } // set an argument value - void set_arg(int i, char* arg) { - assert(i>=0 && i it = _args.begin(); it != _args.end(); ++it) { + os::free(*it); + } + } + // complete operation by sending result code and any result data to the client virtual void complete(jint result, bufferedStream* result_stream) = 0; + + // Helper classes/methods for platform-specific implementations. + class RequestReader { + public: + // Returns number of bytes read, + // 0 on EOF, negative value on error. + virtual int read(void* buffer, int size) = 0; + + // Reads unsigned value, returns -1 on error. + int read_uint(); + }; + + // Reads standard operation request (v1 or v2). + bool read_request(RequestReader* reader); + + class ReplyWriter { + public: + // Returns number of bytes written, negative value on error. + virtual int write(const void* buffer, int size) = 0; + + virtual void flush() {} + + bool write_fully(const void* buffer, int size); + }; + + // Writes standard operation reply (to be called from 'complete' method). + bool write_reply(ReplyWriter* writer, jint result, bufferedStream* result_stream); + +private: + bool read_request_data(AttachOperation::RequestReader* reader, int buffer_size, int min_str_count, int min_read_size); + }; + #endif // INCLUDE_SERVICES #endif // SHARE_SERVICES_ATTACHLISTENER_HPP diff --git a/src/hotspot/share/utilities/debug.cpp b/src/hotspot/share/utilities/debug.cpp index 119d1cf17fd..88730c1e6ec 100644 --- a/src/hotspot/share/utilities/debug.cpp +++ b/src/hotspot/share/utilities/debug.cpp @@ -725,10 +725,22 @@ void disarm_assert_poison() { static void store_context(const void* context) { memcpy(&g_stored_assertion_context, context, sizeof(ucontext_t)); -#if defined(LINUX) && defined(PPC64) +#if defined(LINUX) // on Linux ppc64, ucontext_t contains pointers into itself which have to be patched up // after copying the context (see comment in sys/ucontext.h): +#if defined(PPC64) *((void**) &g_stored_assertion_context.uc_mcontext.regs) = &(g_stored_assertion_context.uc_mcontext.gp_regs); +#elif defined(AMD64) + // In the copied version, fpregs should point to the copied contents. + // Sanity check: fpregs should point into the context. + if ((address)((const ucontext_t*)context)->uc_mcontext.fpregs > (address)context) { + size_t fpregs_offset = pointer_delta(((const ucontext_t*)context)->uc_mcontext.fpregs, context, 1); + if (fpregs_offset < sizeof(ucontext_t)) { + // Preserve the offset. + *((void**) &g_stored_assertion_context.uc_mcontext.fpregs) = (void*)((address)(void*)&g_stored_assertion_context + fpregs_offset); + } + } +#endif #endif } diff --git a/src/hotspot/share/utilities/vmError.cpp b/src/hotspot/share/utilities/vmError.cpp index 7bbb978b806..0df77689a04 100644 --- a/src/hotspot/share/utilities/vmError.cpp +++ b/src/hotspot/share/utilities/vmError.cpp @@ -717,6 +717,10 @@ void VMError::report(outputStream* st, bool _verbose) { address lastpc = nullptr; BEGIN + if (MemTracker::enabled() && NmtVirtualMemory_lock != nullptr && NmtVirtualMemory_lock->owned_by_self()) { + // Manually unlock to avoid reentrancy due to mallocs in detailed mode. + NmtVirtualMemory_lock->unlock(); + } STEP("printing fatal error message") st->print_cr("#"); @@ -1862,7 +1866,7 @@ void VMError::report_and_die(int id, const char* message, const char* detail_fmt if (DumpReplayDataOnError && _thread && _thread->is_Compiler_thread() && !skip_replay) { skip_replay = true; ciEnv* env = ciEnv::current(); - if (env != nullptr) { + if (env != nullptr && env->task() != nullptr) { const bool overwrite = false; // We do not overwrite an existing replay file. int fd = prepare_log_file(ReplayDataFile, "replay_pid%p.log", overwrite, buffer, sizeof(buffer)); if (fd != -1) { diff --git a/src/java.base/macosx/native/libjli/java_md_macosx.m b/src/java.base/macosx/native/libjli/java_md_macosx.m index 7aeb32be859..354efc69769 100644 --- a/src/java.base/macosx/native/libjli/java_md_macosx.m +++ b/src/java.base/macosx/native/libjli/java_md_macosx.m @@ -149,7 +149,7 @@ /* * Exports the JNI interface from libjli * - * This allows client code to link against the .jre/.jdk bundles, + * This allows client code to link against the JDK bundles, * and not worry about trying to pick a HotSpot to link against. * * Switching architectures is unsupported, since client code has @@ -162,10 +162,10 @@ static InvocationFunctions *GetExportedJNIFunctions() { if (sExportedJNIFunctions != NULL) return sExportedJNIFunctions; - char jrePath[PATH_MAX]; - jboolean gotJREPath = GetJREPath(jrePath, sizeof(jrePath), JNI_FALSE); - if (!gotJREPath) { - JLI_ReportErrorMessage("Failed to GetJREPath()"); + char jdkRoot[PATH_MAX]; + jboolean got = GetJDKInstallRoot(jdkRoot, sizeof(jdkRoot), JNI_FALSE); + if (!got) { + JLI_ReportErrorMessage("Failed to determine JDK installation root"); return NULL; } @@ -183,7 +183,7 @@ } char jvmPath[PATH_MAX]; - jboolean gotJVMPath = GetJVMPath(jrePath, preferredJVM, jvmPath, sizeof(jvmPath)); + jboolean gotJVMPath = GetJVMPath(jdkRoot, preferredJVM, jvmPath, sizeof(jvmPath)); if (!gotJVMPath) { JLI_ReportErrorMessage("Failed to GetJVMPath()"); return NULL; @@ -326,9 +326,9 @@ static void MacOSXStartup(int argc, char *argv[]) { void CreateExecutionEnvironment(int *pargc, char ***pargv, - char jrepath[], jint so_jrepath, + char jdkroot[], jint so_jdkroot, char jvmpath[], jint so_jvmpath, - char jvmcfg[], jint so_jvmcfg) { + char jvmcfg[], jint so_jvmcfg) { /* Compute/set the name of the executable */ SetExecname(*pargv); @@ -336,13 +336,13 @@ static void MacOSXStartup(int argc, char *argv[]) { int argc = *pargc; char **argv = *pargv; - /* Find out where the JRE is that we will be using. */ - if (!GetJREPath(jrepath, so_jrepath, JNI_FALSE) ) { - JLI_ReportErrorMessage(JRE_ERROR1); + /* Find out where the JDK is that we will be using. */ + if (!GetJDKInstallRoot(jdkroot, so_jdkroot, JNI_FALSE) ) { + JLI_ReportErrorMessage(LAUNCHER_ERROR1); exit(2); } JLI_Snprintf(jvmcfg, so_jvmcfg, "%s%slib%sjvm.cfg", - jrepath, FILESEP, FILESEP); + jdkroot, FILESEP, FILESEP); /* Find the specified JVM type */ if (ReadKnownVMs(jvmcfg, JNI_FALSE) < 1) { JLI_ReportErrorMessage(CFG_ERROR7); @@ -356,7 +356,7 @@ static void MacOSXStartup(int argc, char *argv[]) { exit(4); } - if (!GetJVMPath(jrepath, jvmtype, jvmpath, so_jvmpath)) { + if (!GetJVMPath(jdkroot, jvmtype, jvmpath, so_jvmpath)) { JLI_ReportErrorMessage(CFG_ERROR8, jvmtype, jvmpath); exit(4); } @@ -378,7 +378,7 @@ static void MacOSXStartup(int argc, char *argv[]) { * VM choosing is done by the launcher (java.c). */ static jboolean -GetJVMPath(const char *jrepath, const char *jvmtype, +GetJVMPath(const char *jdkroot, const char *jvmtype, char *jvmpath, jint jvmpathsize) { struct stat s; @@ -390,7 +390,7 @@ static void MacOSXStartup(int argc, char *argv[]) { * macosx client library is built thin, i386 only. * 64 bit client requests must load server library */ - JLI_Snprintf(jvmpath, jvmpathsize, "%s/lib/%s/" JVM_DLL, jrepath, jvmtype); + JLI_Snprintf(jvmpath, jvmpathsize, "%s/lib/%s/" JVM_DLL, jdkroot, jvmtype); } JLI_TraceLauncher("Does `%s' exist ... ", jvmpath); @@ -408,15 +408,15 @@ static void MacOSXStartup(int argc, char *argv[]) { } /* - * Find path to JRE based on .exe's location or registry settings. + * Find path to the JDK installation root */ static jboolean -GetJREPath(char *path, jint pathsize, jboolean speculative) +GetJDKInstallRoot(char *path, jint pathsize, jboolean speculative) { char libjava[MAXPATHLEN]; if (GetApplicationHome(path, pathsize)) { - /* Is JRE co-located with the application? */ + /* Is the JDK co-located with the application? */ if (JLI_IsStaticallyLinked()) { char jvm_cfg[MAXPATHLEN]; JLI_Snprintf(jvm_cfg, sizeof(jvm_cfg), "%s/lib/jvm.cfg", path); @@ -445,7 +445,7 @@ static void MacOSXStartup(int argc, char *argv[]) { /* try to find ourselves instead */ Dl_info selfInfo; - dladdr(&GetJREPath, &selfInfo); + dladdr(&GetJDKInstallRoot, &selfInfo); if (JLI_IsStaticallyLinked()) { char jvm_cfg[MAXPATHLEN]; @@ -488,8 +488,8 @@ static void MacOSXStartup(int argc, char *argv[]) { return JNI_TRUE; } - // If libjli.dylib is loaded from a macos bundle MacOS dir, find the JRE dir - // in ../Home. + // If libjli.dylib is loaded from a macos bundle MacOS dir, find the JDK + // install root at ../Home. const char altLastPathComponent[] = "/MacOS/libjli.dylib"; size_t sizeOfAltLastPathComponent = sizeof(altLastPathComponent) - 1; if (pathLen < sizeOfLastPathComponent) { @@ -505,7 +505,7 @@ static void MacOSXStartup(int argc, char *argv[]) { } if (!speculative) - JLI_ReportErrorMessage(JRE_ERROR8 JAVA_DLL); + JLI_ReportErrorMessage(LAUNCHER_ERROR2 JAVA_DLL); return JNI_FALSE; } @@ -642,27 +642,27 @@ static void MacOSXStartup(int argc, char *argv[]) { void* SplashProcAddress(const char* name) { if (!hSplashLib) { - char jrePath[PATH_MAX]; - if (!GetJREPath(jrePath, sizeof(jrePath), JNI_FALSE)) { - JLI_ReportErrorMessage(JRE_ERROR1); + char jdkRoot[PATH_MAX]; + if (!GetJDKInstallRoot(jdkRoot, sizeof(jdkRoot), JNI_FALSE)) { + JLI_ReportErrorMessage(LAUNCHER_ERROR1); return NULL; } char splashPath[PATH_MAX]; const int ret = JLI_Snprintf(splashPath, sizeof(splashPath), - "%s/lib/%s", jrePath, SPLASHSCREEN_SO); + "%s/lib/%s", jdkRoot, SPLASHSCREEN_SO); if (ret >= (int)sizeof(splashPath)) { - JLI_ReportErrorMessage(JRE_ERROR11); + JLI_ReportErrorMessage(LAUNCHER_ERROR3); return NULL; } if (ret < 0) { - JLI_ReportErrorMessage(JRE_ERROR13); + JLI_ReportErrorMessage(LAUNCHER_ERROR5); return NULL; } hSplashLib = dlopen(splashPath, RTLD_LAZY | RTLD_GLOBAL); // It's OK if dlopen() fails. The splash screen library binary file - // might have been stripped out from the JRE image to reduce its size + // might have been stripped out from the JDK image to reduce its size // (e.g. on embedded platforms). if (hSplashLib) { diff --git a/src/java.base/share/classes/com/sun/crypto/provider/AESKeyWrap.java b/src/java.base/share/classes/com/sun/crypto/provider/AESKeyWrap.java index 7fad0b84d07..7ba4420f973 100644 --- a/src/java.base/share/classes/com/sun/crypto/provider/AESKeyWrap.java +++ b/src/java.base/share/classes/com/sun/crypto/provider/AESKeyWrap.java @@ -37,6 +37,9 @@ * * "Recommendation for Block Cipher Modes of Operation: Methods for Key Wrapping" * and represents AES cipher in KW mode. + * + * @spec https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-38F.pdf + * Recommendation for Block Cipher Modes of Operation: Methods for Key Wrapping */ class AESKeyWrap extends FeedbackCipher { diff --git a/src/java.base/share/classes/com/sun/crypto/provider/AESKeyWrapPadded.java b/src/java.base/share/classes/com/sun/crypto/provider/AESKeyWrapPadded.java index 1e4e7236c8c..4f25849d850 100644 --- a/src/java.base/share/classes/com/sun/crypto/provider/AESKeyWrapPadded.java +++ b/src/java.base/share/classes/com/sun/crypto/provider/AESKeyWrapPadded.java @@ -39,6 +39,9 @@ * * "Recommendation for Block Cipher Modes of Operation: Methods for Key Wrapping" * and represents AES cipher in KWP mode. + * + * @spec https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-38F.pdf + * Recommendation for Block Cipher Modes of Operation: Methods for Key Wrapping */ class AESKeyWrapPadded extends FeedbackCipher { diff --git a/src/java.base/share/classes/com/sun/crypto/provider/KWUtil.java b/src/java.base/share/classes/com/sun/crypto/provider/KWUtil.java index e5dc8920326..5dda6379d03 100644 --- a/src/java.base/share/classes/com/sun/crypto/provider/KWUtil.java +++ b/src/java.base/share/classes/com/sun/crypto/provider/KWUtil.java @@ -31,6 +31,9 @@ * This class acts as the base class for AES KeyWrap algorithms as defined * in * "Recommendation for Block Cipher Modes of Operation: Methods for Key Wrapping" + * + * @spec https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-38F.pdf + * Recommendation for Block Cipher Modes of Operation: Methods for Key Wrapping */ class KWUtil { diff --git a/src/java.base/share/classes/com/sun/crypto/provider/KeyWrapCipher.java b/src/java.base/share/classes/com/sun/crypto/provider/KeyWrapCipher.java index fb69a27c62d..ba2825fa36c 100644 --- a/src/java.base/share/classes/com/sun/crypto/provider/KeyWrapCipher.java +++ b/src/java.base/share/classes/com/sun/crypto/provider/KeyWrapCipher.java @@ -36,6 +36,9 @@ * This class is the impl class for AES KeyWrap algorithms as defined in * * "Recommendation for Block Cipher Modes of Operation: Methods for Key Wrapping" + * + * @spec https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-38F.pdf + * Recommendation for Block Cipher Modes of Operation: Methods for Key Wrapping */ abstract class KeyWrapCipher extends CipherSpi { diff --git a/src/java.base/share/classes/java/io/Console.java b/src/java.base/share/classes/java/io/Console.java index 0aa12bdf4c8..8ae4fc00773 100644 --- a/src/java.base/share/classes/java/io/Console.java +++ b/src/java.base/share/classes/java/io/Console.java @@ -34,7 +34,7 @@ import jdk.internal.io.JdkConsoleImpl; import jdk.internal.io.JdkConsoleProvider; import jdk.internal.javac.PreviewFeature; -import jdk.internal.util.StaticProperty; +import sun.nio.cs.UTF_8; import sun.security.action.GetPropertyAction; /** @@ -580,7 +580,8 @@ public void flush() { * the {@code Console}. *

    * The returned charset corresponds to the input and output source - * (e.g., keyboard and/or display) specified by the host environment or user. + * (e.g., keyboard and/or display) specified by the host environment or user, + * which defaults to the one based on {@link System##stdout.encoding stdout.encoding}. * It may not necessarily be the same as the default charset returned from * {@link java.nio.charset.Charset#defaultCharset() Charset.defaultCharset()}. * @@ -614,30 +615,11 @@ private static UnsupportedOperationException newUnsupportedOperationException() "Console class itself does not provide implementation"); } - private static native String encoding(); private static final boolean istty = istty(); - static final Charset CHARSET; + static final Charset CHARSET = + Charset.forName(GetPropertyAction.privilegedGetProperty("stdout.encoding"), UTF_8.INSTANCE); + private static final Console cons = instantiateConsole(); static { - Charset cs = null; - - if (istty) { - String csname = encoding(); - if (csname == null) { - csname = GetPropertyAction.privilegedGetProperty("stdout.encoding"); - } - if (csname != null) { - cs = Charset.forName(csname, null); - } - } - if (cs == null) { - cs = Charset.forName(StaticProperty.nativeEncoding(), - Charset.defaultCharset()); - } - - CHARSET = cs; - - cons = instantiateConsole(); - // Set up JavaIOAccess in SharedSecrets SharedSecrets.setJavaIOAccess(new JavaIOAccess() { public Console console() { @@ -689,6 +671,5 @@ public Console run() { return c; } - private static final Console cons; private static native boolean istty(); } diff --git a/src/java.base/share/classes/java/io/FileInputStream.java b/src/java.base/share/classes/java/io/FileInputStream.java index 180b2e416a9..4210a0f56b6 100644 --- a/src/java.base/share/classes/java/io/FileInputStream.java +++ b/src/java.base/share/classes/java/io/FileInputStream.java @@ -29,6 +29,7 @@ import java.util.Arrays; import jdk.internal.util.ArraysSupport; import jdk.internal.event.FileReadEvent; +import jdk.internal.vm.annotation.Stable; import sun.nio.ch.FileChannelImpl; /** @@ -81,6 +82,10 @@ public class FileInputStream extends InputStream private volatile boolean closed; + // This field indicates whether the file is a regular file as some + // operations need the current position which requires seeking + private @Stable Boolean isRegularFile; + /** * Creates a {@code FileInputStream} to read from an existing file * named by the path name {@code name}. @@ -331,6 +336,9 @@ public int read(byte[] b, int off, int len) throws IOException { @Override public byte[] readAllBytes() throws IOException { + if (!isRegularFile()) + return super.readAllBytes(); + long length = length(); long position = position(); long size = length - position; @@ -382,6 +390,9 @@ public byte[] readNBytes(int len) throws IOException { if (len == 0) return new byte[0]; + if (!isRegularFile()) + return super.readNBytes(len); + long length = length(); long position = position(); long size = length - position; @@ -418,7 +429,7 @@ public byte[] readNBytes(int len) throws IOException { @Override public long transferTo(OutputStream out) throws IOException { long transferred = 0L; - if (out instanceof FileOutputStream fos) { + if (out instanceof FileOutputStream fos && isRegularFile()) { FileChannel fc = getChannel(); long pos = fc.position(); transferred = fc.transferTo(pos, Long.MAX_VALUE, fos.getChannel()); @@ -471,7 +482,10 @@ private long position() throws IOException { */ @Override public long skip(long n) throws IOException { - return skip0(n); + if (isRegularFile()) + return skip0(n); + + return super.skip(n); } private native long skip0(long n) throws IOException; @@ -603,6 +617,18 @@ public FileChannel getChannel() { return fc; } + /** + * Determine whether the file is a regular file. + */ + private boolean isRegularFile() { + Boolean isRegularFile = this.isRegularFile; + if (isRegularFile == null) { + this.isRegularFile = isRegularFile = isRegularFile0(fd); + } + return isRegularFile; + } + private native boolean isRegularFile0(FileDescriptor fd); + private static native void initIDs(); static { diff --git a/src/java.base/share/classes/java/io/Reader.java b/src/java.base/share/classes/java/io/Reader.java index 5dbe4ab5fae..9fca28a3a96 100644 --- a/src/java.base/share/classes/java/io/Reader.java +++ b/src/java.base/share/classes/java/io/Reader.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -140,6 +140,119 @@ public void close() { }; } + /** + * Returns a {@code Reader} that reads characters from a + * {@code CharSequence}. The reader is initially open and reading starts at + * the first character in the sequence. + * + *

    The returned reader supports the {@link #mark mark()} and + * {@link #reset reset()} operations. + * + *

    The resulting reader is not safe for use by multiple + * concurrent threads. If the reader is to be used by more than one + * thread it should be controlled by appropriate synchronization. + * + *

    If the sequence changes while the reader is open, e.g. the length + * changes, the behavior is undefined. + * + * @param cs {@code CharSequence} providing the character stream. + * @return a {@code Reader} which reads characters from {@code cs} + * @throws NullPointerException if {@code cs} is {@code null} + * + * @since 24 + */ + public static Reader of(final CharSequence cs) { + Objects.requireNonNull(cs); + + return new Reader() { + private boolean isClosed; + private int next = 0; + private int mark = 0; + + /** Check to make sure that the stream has not been closed */ + private void ensureOpen() throws IOException { + if (isClosed) + throw new IOException("Stream closed"); + } + + @Override + public int read() throws IOException { + ensureOpen(); + if (next >= cs.length()) + return -1; + return cs.charAt(next++); + } + + @Override + public int read(char[] cbuf, int off, int len) throws IOException { + ensureOpen(); + Objects.checkFromIndexSize(off, len, cbuf.length); + if (len == 0) { + return 0; + } + int length = cs.length(); + if (next >= length) + return -1; + int n = Math.min(length - next, len); + switch (cs) { + case String s -> s.getChars(next, next + n, cbuf, off); + case StringBuilder sb -> sb.getChars(next, next + n, cbuf, off); + case StringBuffer sb -> sb.getChars(next, next + n, cbuf, off); + case CharBuffer cb -> cb.get(next, cbuf, off, n); + default -> { + for (int i = 0; i < n; i++) + cbuf[off + i] = cs.charAt(next + i); + } + } + next += n; + return n; + } + + @Override + public long skip(long n) throws IOException { + ensureOpen(); + if (next >= cs.length()) + return 0; + // Bound skip by beginning and end of the source + long r = Math.min(cs.length() - next, n); + r = Math.max(-next, r); + next += (int)r; + return r; + } + + @Override + public boolean ready() throws IOException { + ensureOpen(); + return true; + } + + @Override + public boolean markSupported() { + return true; + } + + @Override + public void mark(int readAheadLimit) throws IOException { + if (readAheadLimit < 0){ + throw new IllegalArgumentException("Read-ahead limit < 0"); + } + ensureOpen(); + mark = next; + } + + @Override + public void reset() throws IOException { + ensureOpen(); + next = mark; + } + + @Override + public void close() { + isClosed = true; + } + }; + } + /** * The object used to synchronize operations on this stream. For * efficiency, a character-stream object may use an object other than diff --git a/src/java.base/share/classes/java/io/StringReader.java b/src/java.base/share/classes/java/io/StringReader.java index 2023aadf6c8..719e3246adf 100644 --- a/src/java.base/share/classes/java/io/StringReader.java +++ b/src/java.base/share/classes/java/io/StringReader.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -30,16 +30,17 @@ /** * A character stream whose source is a string. * + * @apiNote + * {@link Reader#of(CharSequence)} provides a method to read from any + * {@link CharSequence} that may be more efficient than {@code StringReader}. + * * @author Mark Reinhold * @since 1.1 */ public class StringReader extends Reader { - private final int length; - private String str; - private int next = 0; - private int mark = 0; + private final Reader r; /** * Creates a new string reader. @@ -47,14 +48,7 @@ public class StringReader extends Reader { * @param s String providing the character stream. */ public StringReader(String s) { - this.length = s.length(); - this.str = s; - } - - /** Check to make sure that the stream has not been closed */ - private void ensureOpen() throws IOException { - if (str == null) - throw new IOException("Stream closed"); + r = Reader.of(s); } /** @@ -67,10 +61,7 @@ private void ensureOpen() throws IOException { */ public int read() throws IOException { synchronized (lock) { - ensureOpen(); - if (next >= length) - return -1; - return str.charAt(next++); + return r.read(); } } @@ -94,17 +85,7 @@ public int read() throws IOException { */ public int read(char[] cbuf, int off, int len) throws IOException { synchronized (lock) { - ensureOpen(); - Objects.checkFromIndexSize(off, len, cbuf.length); - if (len == 0) { - return 0; - } - if (next >= length) - return -1; - int n = Math.min(length - next, len); - str.getChars(next, next + n, cbuf, off); - next += n; - return n; + return r.read(cbuf, off, len); } } @@ -130,14 +111,7 @@ public int read(char[] cbuf, int off, int len) throws IOException { */ public long skip(long n) throws IOException { synchronized (lock) { - ensureOpen(); - if (next >= length) - return 0; - // Bound skip by beginning and end of the source - long r = Math.min(length - next, n); - r = Math.max(-next, r); - next += (int)r; - return r; + return r.skip(n); } } @@ -150,8 +124,7 @@ public long skip(long n) throws IOException { */ public boolean ready() throws IOException { synchronized (lock) { - ensureOpen(); - return true; + return r.ready(); } } @@ -176,12 +149,8 @@ public boolean markSupported() { * @throws IOException If an I/O error occurs */ public void mark(int readAheadLimit) throws IOException { - if (readAheadLimit < 0){ - throw new IllegalArgumentException("Read-ahead limit < 0"); - } synchronized (lock) { - ensureOpen(); - mark = next; + r.mark(readAheadLimit); } } @@ -193,8 +162,7 @@ public void mark(int readAheadLimit) throws IOException { */ public void reset() throws IOException { synchronized (lock) { - ensureOpen(); - next = mark; + r.reset(); } } @@ -207,7 +175,11 @@ public void reset() throws IOException { */ public void close() { synchronized (lock) { - str = null; + try { + r.close(); + } catch (IOException e) { + throw new UncheckedIOException(e); + } } } } diff --git a/src/java.base/share/classes/java/lang/Boolean.java b/src/java.base/share/classes/java/lang/Boolean.java index 2c0925a9790..31507f60e37 100644 --- a/src/java.base/share/classes/java/lang/Boolean.java +++ b/src/java.base/share/classes/java/lang/Boolean.java @@ -78,8 +78,7 @@ public final class Boolean implements java.io.Serializable, * * @since 1.1 */ - @SuppressWarnings("unchecked") - public static final Class TYPE = (Class) Class.getPrimitiveClass("boolean"); + public static final Class TYPE = Class.getPrimitiveClass("boolean"); /** * The value of the Boolean. @@ -255,8 +254,8 @@ public static int hashCode(boolean value) { * same value; {@code false} otherwise. */ public boolean equals(Object obj) { - if (obj instanceof Boolean) { - return value == ((Boolean)obj).booleanValue(); + if (obj instanceof Boolean b) { + return value == b.booleanValue(); } return false; } diff --git a/src/java.base/share/classes/java/lang/Byte.java b/src/java.base/share/classes/java/lang/Byte.java index ade75a7a99e..c78e11ae067 100644 --- a/src/java.base/share/classes/java/lang/Byte.java +++ b/src/java.base/share/classes/java/lang/Byte.java @@ -79,8 +79,7 @@ public final class Byte extends Number implements Comparable, Constable { * The {@code Class} instance representing the primitive type * {@code byte}. */ - @SuppressWarnings("unchecked") - public static final Class TYPE = (Class) Class.getPrimitiveClass("byte"); + public static final Class TYPE = Class.getPrimitiveClass("byte"); /** * Returns a new {@code String} object representing the @@ -477,8 +476,8 @@ public static int hashCode(byte value) { * {@code false} otherwise. */ public boolean equals(Object obj) { - if (obj instanceof Byte) { - return value == ((Byte)obj).byteValue(); + if (obj instanceof Byte b) { + return value == b.byteValue(); } return false; } diff --git a/src/java.base/share/classes/java/lang/Character.java b/src/java.base/share/classes/java/lang/Character.java index 84db550d7cc..101eabcbcc0 100644 --- a/src/java.base/share/classes/java/lang/Character.java +++ b/src/java.base/share/classes/java/lang/Character.java @@ -232,8 +232,7 @@ class Character implements java.io.Serializable, Comparable, Constabl * * @since 1.1 */ - @SuppressWarnings("unchecked") - public static final Class TYPE = (Class) Class.getPrimitiveClass("char"); + public static final Class TYPE = Class.getPrimitiveClass("char"); /* * Normative general types @@ -9066,8 +9065,8 @@ public static int hashCode(char value) { * {@code false} otherwise. */ public boolean equals(Object obj) { - if (obj instanceof Character) { - return value == ((Character)obj).charValue(); + if (obj instanceof Character c) { + return value == c.charValue(); } return false; } diff --git a/src/java.base/share/classes/java/lang/Class.java b/src/java.base/share/classes/java/lang/Class.java index 79cd57011b0..93a675c83a4 100644 --- a/src/java.base/share/classes/java/lang/Class.java +++ b/src/java.base/share/classes/java/lang/Class.java @@ -3278,10 +3278,10 @@ ProtectionDomain protectionDomain() { private native ProtectionDomain getProtectionDomain0(); /* - * Return the Virtual Machine's Class object for the named - * primitive type. + * Returns the Class object for the named primitive type. Type parameter T + * avoids redundant casts for trusted code. */ - static native Class getPrimitiveClass(String name); + static native Class getPrimitiveClass(String name); /* * Check if client is allowed to access members. If access is denied, diff --git a/src/java.base/share/classes/java/lang/Double.java b/src/java.base/share/classes/java/lang/Double.java index 68fff6a2fbd..ed23f7d39c9 100644 --- a/src/java.base/share/classes/java/lang/Double.java +++ b/src/java.base/share/classes/java/lang/Double.java @@ -459,8 +459,7 @@ public final class Double extends Number * * @since 1.1 */ - @SuppressWarnings("unchecked") - public static final Class TYPE = (Class) Class.getPrimitiveClass("double"); + public static final Class TYPE = Class.getPrimitiveClass("double"); /** * Returns a string representation of the {@code double} @@ -1257,9 +1256,8 @@ public static int hashCode(double value) { * @jls 15.21.1 Numerical Equality Operators == and != */ public boolean equals(Object obj) { - return (obj instanceof Double) - && (doubleToLongBits(((Double)obj).value) == - doubleToLongBits(value)); + return (obj instanceof Double d) && + (doubleToLongBits(d.value) == doubleToLongBits(value)); } /** diff --git a/src/java.base/share/classes/java/lang/Float.java b/src/java.base/share/classes/java/lang/Float.java index 470eb71cf70..821a05fa00a 100644 --- a/src/java.base/share/classes/java/lang/Float.java +++ b/src/java.base/share/classes/java/lang/Float.java @@ -175,8 +175,7 @@ public final class Float extends Number * * @since 1.1 */ - @SuppressWarnings("unchecked") - public static final Class TYPE = (Class) Class.getPrimitiveClass("float"); + public static final Class TYPE = Class.getPrimitiveClass("float"); /** * Returns a string representation of the {@code float} @@ -889,8 +888,8 @@ public static int hashCode(float value) { * @jls 15.21.1 Numerical Equality Operators == and != */ public boolean equals(Object obj) { - return (obj instanceof Float) - && (floatToIntBits(((Float)obj).value) == floatToIntBits(value)); + return (obj instanceof Float f) && + (floatToIntBits(f.value) == floatToIntBits(value)); } /** diff --git a/src/java.base/share/classes/java/lang/Integer.java b/src/java.base/share/classes/java/lang/Integer.java index eab0a942d9a..84fa5303ac7 100644 --- a/src/java.base/share/classes/java/lang/Integer.java +++ b/src/java.base/share/classes/java/lang/Integer.java @@ -95,8 +95,7 @@ public final class Integer extends Number * * @since 1.1 */ - @SuppressWarnings("unchecked") - public static final Class TYPE = (Class) Class.getPrimitiveClass("int"); + public static final Class TYPE = Class.getPrimitiveClass("int"); /** * All possible chars for representing a number as a String @@ -1147,8 +1146,8 @@ public static int hashCode(int value) { * {@code false} otherwise. */ public boolean equals(Object obj) { - if (obj instanceof Integer) { - return value == ((Integer)obj).intValue(); + if (obj instanceof Integer i) { + return value == i.intValue(); } return false; } diff --git a/src/java.base/share/classes/java/lang/Long.java b/src/java.base/share/classes/java/lang/Long.java index f86e1622b38..78a2402ba0e 100644 --- a/src/java.base/share/classes/java/lang/Long.java +++ b/src/java.base/share/classes/java/lang/Long.java @@ -95,8 +95,7 @@ public final class Long extends Number * * @since 1.1 */ - @SuppressWarnings("unchecked") - public static final Class TYPE = (Class) Class.getPrimitiveClass("long"); + public static final Class TYPE = Class.getPrimitiveClass("long"); /** * Returns a string representation of the first argument in the @@ -1245,8 +1244,8 @@ public static int hashCode(long value) { * {@code false} otherwise. */ public boolean equals(Object obj) { - if (obj instanceof Long) { - return value == ((Long)obj).longValue(); + if (obj instanceof Long ell) { + return value == ell.longValue(); } return false; } diff --git a/src/java.base/share/classes/java/lang/Short.java b/src/java.base/share/classes/java/lang/Short.java index ec792de47e2..a2d31ee07c3 100644 --- a/src/java.base/share/classes/java/lang/Short.java +++ b/src/java.base/share/classes/java/lang/Short.java @@ -79,8 +79,7 @@ public final class Short extends Number implements Comparable, Constable * The {@code Class} instance representing the primitive type * {@code short}. */ - @SuppressWarnings("unchecked") - public static final Class TYPE = (Class) Class.getPrimitiveClass("short"); + public static final Class TYPE = Class.getPrimitiveClass("short"); /** * Returns a new {@code String} object representing the @@ -483,8 +482,8 @@ public static int hashCode(short value) { * {@code false} otherwise. */ public boolean equals(Object obj) { - if (obj instanceof Short) { - return value == ((Short)obj).shortValue(); + if (obj instanceof Short s) { + return value == s.shortValue(); } return false; } diff --git a/src/java.base/share/classes/java/lang/System.java b/src/java.base/share/classes/java/lang/System.java index 930b6b7f611..5b04bca4f44 100644 --- a/src/java.base/share/classes/java/lang/System.java +++ b/src/java.base/share/classes/java/lang/System.java @@ -147,8 +147,7 @@ private System() { * corresponds to display output or another output destination * specified by the host environment or user. The encoding used * in the conversion from characters to bytes is equivalent to - * {@link Console#charset()} if the {@code Console} exists, - * stdout.encoding otherwise. + * {@link ##stdout.encoding stdout.encoding}. *

    * For simple stand-alone Java applications, a typical way to write * a line of output data is: @@ -168,8 +167,7 @@ private System() { * @see java.io.PrintStream#println(long) * @see java.io.PrintStream#println(java.lang.Object) * @see java.io.PrintStream#println(java.lang.String) - * @see Console#charset() - * @see stdout.encoding + * @see ##stdout.encoding stdout.encoding */ public static final PrintStream out = null; @@ -185,11 +183,9 @@ private System() { * variable {@code out}, has been redirected to a file or other * destination that is typically not continuously monitored. * The encoding used in the conversion from characters to bytes is - * equivalent to {@link Console#charset()} if the {@code Console} - * exists, stderr.encoding otherwise. + * equivalent to {@link ##stderr.encoding stderr.encoding}. * - * @see Console#charset() - * @see stderr.encoding + * @see ##stderr.encoding stderr.encoding */ public static final PrintStream err = null; @@ -788,7 +784,8 @@ public static native void arraycopy(Object src, int srcPos, * Character encoding name derived from the host environment and/or * the user's settings. Setting this system property has no effect. * {@systemProperty stdout.encoding} - * Character encoding name for {@link System#out System.out}. + * Character encoding name for {@link System#out System.out} and + * {@link System#console() System.console()}. * The Java runtime can be started with the system property set to {@code UTF-8}, * starting it with the property set to another value leads to undefined behavior. * {@systemProperty stderr.encoding} diff --git a/src/java.base/share/classes/java/lang/VirtualThread.java b/src/java.base/share/classes/java/lang/VirtualThread.java index 6eb20fa9e2e..8f389906f2a 100644 --- a/src/java.base/share/classes/java/lang/VirtualThread.java +++ b/src/java.base/share/classes/java/lang/VirtualThread.java @@ -56,6 +56,7 @@ import jdk.internal.vm.annotation.ChangesCurrentThread; import jdk.internal.vm.annotation.Hidden; import jdk.internal.vm.annotation.IntrinsicCandidate; +import jdk.internal.vm.annotation.JvmtiHideEvents; import jdk.internal.vm.annotation.JvmtiMountTransition; import jdk.internal.vm.annotation.ReservedStackAccess; import sun.nio.ch.Interruptible; @@ -213,8 +214,14 @@ protected void onPinned(Continuation.Pinned reason) { private static Runnable wrap(VirtualThread vthread, Runnable task) { return new Runnable() { @Hidden + @JvmtiHideEvents public void run() { - vthread.run(task); + vthread.notifyJvmtiStart(); // notify JVMTI + try { + vthread.run(task); + } finally { + vthread.notifyJvmtiEnd(); // notify JVMTI + } } }; } @@ -389,9 +396,6 @@ private void submitFailed(RejectedExecutionException ree) { private void run(Runnable task) { assert Thread.currentThread() == this && state == RUNNING; - // notify JVMTI, may post VirtualThreadStart event - notifyJvmtiStart(); - // emit JFR event if enabled if (VirtualThreadStartEvent.isTurnedOn()) { var event = new VirtualThreadStartEvent(); @@ -405,20 +409,14 @@ private void run(Runnable task) { } catch (Throwable exc) { dispatchUncaughtException(exc); } finally { - try { - // pop any remaining scopes from the stack, this may block - StackableScope.popAll(); - - // emit JFR event if enabled - if (VirtualThreadEndEvent.isTurnedOn()) { - var event = new VirtualThreadEndEvent(); - event.javaThreadId = threadId(); - event.commit(); - } + // pop any remaining scopes from the stack, this may block + StackableScope.popAll(); - } finally { - // notify JVMTI, may post VirtualThreadEnd event - notifyJvmtiEnd(); + // emit JFR event if enabled + if (VirtualThreadEndEvent.isTurnedOn()) { + var event = new VirtualThreadEndEvent(); + event.javaThreadId = threadId(); + event.commit(); } } } diff --git a/src/java.base/share/classes/java/lang/Void.java b/src/java.base/share/classes/java/lang/Void.java index 3ea0e79e61c..9a3adafec33 100644 --- a/src/java.base/share/classes/java/lang/Void.java +++ b/src/java.base/share/classes/java/lang/Void.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -39,8 +39,7 @@ class Void { * The {@code Class} object representing the pseudo-type corresponding to * the keyword {@code void}. */ - @SuppressWarnings("unchecked") - public static final Class TYPE = (Class) Class.getPrimitiveClass("void"); + public static final Class TYPE = Class.getPrimitiveClass("void"); /* * The Void class cannot be instantiated. diff --git a/src/java.base/share/classes/java/lang/constant/ClassDesc.java b/src/java.base/share/classes/java/lang/constant/ClassDesc.java index b93d9522352..9f58a4f94da 100644 --- a/src/java.base/share/classes/java/lang/constant/ClassDesc.java +++ b/src/java.base/share/classes/java/lang/constant/ClassDesc.java @@ -26,22 +26,13 @@ import java.lang.invoke.MethodHandles; import java.lang.invoke.TypeDescriptor; -import java.util.stream.Stream; +import jdk.internal.constant.ArrayClassDescImpl; +import jdk.internal.constant.ConstantUtils; import jdk.internal.constant.PrimitiveClassDescImpl; -import jdk.internal.constant.ReferenceClassDescImpl; -import sun.invoke.util.Wrapper; +import jdk.internal.constant.ClassOrInterfaceDescImpl; -import static java.util.stream.Collectors.joining; -import static jdk.internal.constant.ConstantUtils.MAX_ARRAY_TYPE_DESC_DIMENSIONS; -import static jdk.internal.constant.ConstantUtils.arrayDepth; -import static jdk.internal.constant.ConstantUtils.binaryToInternal; -import static jdk.internal.constant.ConstantUtils.concat; -import static jdk.internal.constant.ConstantUtils.forPrimitiveType; -import static jdk.internal.constant.ConstantUtils.internalToBinary; -import static jdk.internal.constant.ConstantUtils.validateBinaryClassName; -import static jdk.internal.constant.ConstantUtils.validateInternalClassName; -import static jdk.internal.constant.ConstantUtils.validateMemberName; +import static jdk.internal.constant.ConstantUtils.*; /** * A nominal descriptor for a @@ -64,7 +55,8 @@ public sealed interface ClassDesc extends ConstantDesc, TypeDescriptor.OfField permits PrimitiveClassDescImpl, - ReferenceClassDescImpl { + ClassOrInterfaceDescImpl, + ArrayClassDescImpl { /** * Returns a {@linkplain ClassDesc} for a class or interface type, @@ -84,7 +76,7 @@ public sealed interface ClassDesc */ static ClassDesc of(String name) { validateBinaryClassName(name); - return ClassDesc.ofDescriptor(concat("L", binaryToInternal(name), ";")); + return ConstantUtils.binaryNameToDesc(name); } /** @@ -110,7 +102,7 @@ static ClassDesc of(String name) { */ static ClassDesc ofInternalName(String name) { validateInternalClassName(name); - return ClassDesc.ofDescriptor(concat("L", name, ";")); + return ConstantUtils.internalNameToDesc(name); } /** @@ -129,11 +121,11 @@ static ClassDesc ofInternalName(String name) { */ static ClassDesc of(String packageName, String className) { validateBinaryClassName(packageName); + validateMemberName(className, false); if (packageName.isEmpty()) { - return of(className); + return internalNameToDesc(className); } - validateMemberName(className, false); - return ofDescriptor('L' + binaryToInternal(packageName) + + return ClassOrInterfaceDescImpl.ofValidated('L' + binaryToInternal(packageName) + '/' + className + ';'); } @@ -168,7 +160,7 @@ static ClassDesc ofDescriptor(String descriptor) { return (descriptor.length() == 1) ? forPrimitiveType(descriptor, 0) // will throw IAE on descriptor.length == 0 or if array dimensions too long - : ReferenceClassDescImpl.of(descriptor); + : parseReferenceTypeDesc(descriptor); } /** @@ -180,20 +172,7 @@ static ClassDesc ofDescriptor(String descriptor) { * ClassDesc} would have an array rank of greater than 255 * @jvms 4.4.1 The CONSTANT_Class_info Structure */ - default ClassDesc arrayType() { - String desc = descriptorString(); - int depth = arrayDepth(desc); - if (depth >= MAX_ARRAY_TYPE_DESC_DIMENSIONS) { - throw new IllegalStateException( - "Cannot create an array type descriptor with more than " + - MAX_ARRAY_TYPE_DESC_DIMENSIONS + " dimensions"); - } - String newDesc = "[".concat(desc); - if (desc.length() == 1 && desc.charAt(0) == 'V') { - throw new IllegalArgumentException("not a valid reference type descriptor: " + newDesc); - } - return ReferenceClassDescImpl.ofValidated(newDesc); - } + ClassDesc arrayType(); /** * Returns a {@linkplain ClassDesc} for an array type of the specified rank, @@ -206,24 +185,7 @@ default ClassDesc arrayType() { * greater than 255 * @jvms 4.4.1 The CONSTANT_Class_info Structure */ - default ClassDesc arrayType(int rank) { - if (rank <= 0) { - throw new IllegalArgumentException("rank " + rank + " is not a positive value"); - } - String desc = descriptorString(); - long currentDepth = arrayDepth(desc); - long netRank = currentDepth + rank; - if (netRank > MAX_ARRAY_TYPE_DESC_DIMENSIONS) { - throw new IllegalArgumentException("rank: " + netRank + - " exceeds maximum supported dimension of " + - MAX_ARRAY_TYPE_DESC_DIMENSIONS); - } - String newDesc = new StringBuilder(desc.length() + rank).repeat('[', rank).append(desc).toString(); - if (desc.length() == 1 && desc.charAt(0) == 'V') { - throw new IllegalArgumentException("not a valid reference type descriptor: " + newDesc); - } - return ReferenceClassDescImpl.ofValidated(newDesc); - } + ClassDesc arrayType(int rank); /** * Returns a {@linkplain ClassDesc} for a nested class of the class or @@ -243,13 +205,7 @@ default ClassDesc arrayType(int rank) { * @throws IllegalArgumentException if the nested class name is invalid */ default ClassDesc nested(String nestedName) { - validateMemberName(nestedName, false); - if (!isClassOrInterface()) - throw new IllegalStateException("Outer class is not a class or interface type"); - String desc = descriptorString(); - StringBuilder sb = new StringBuilder(desc.length() + nestedName.length() + 1); - sb.append(desc, 0, desc.length() - 1).append('$').append(nestedName).append(';'); - return ReferenceClassDescImpl.ofValidated(sb.toString()); + throw new IllegalStateException("Outer class is not a class or interface type"); } /** @@ -266,16 +222,7 @@ default ClassDesc nested(String nestedName) { * @throws IllegalArgumentException if the nested class name is invalid */ default ClassDesc nested(String firstNestedName, String... moreNestedNames) { - if (!isClassOrInterface()) - throw new IllegalStateException("Outer class is not a class or interface type"); - validateMemberName(firstNestedName, false); - // implicit null-check - for (String addNestedNames : moreNestedNames) { - validateMemberName(addNestedNames, false); - } - return moreNestedNames.length == 0 - ? nested(firstNestedName) - : nested(firstNestedName + Stream.of(moreNestedNames).collect(joining("$", "$", ""))); + throw new IllegalStateException("Outer class is not a class or interface type"); } /** @@ -284,7 +231,7 @@ default ClassDesc nested(String firstNestedName, String... moreNestedNames) { * @return whether this {@linkplain ClassDesc} describes an array type */ default boolean isArray() { - return descriptorString().charAt(0) == '['; + return false; } /** @@ -293,7 +240,7 @@ default boolean isArray() { * @return whether this {@linkplain ClassDesc} describes a primitive type */ default boolean isPrimitive() { - return descriptorString().length() == 1; + return false; } /** @@ -302,7 +249,7 @@ default boolean isPrimitive() { * @return whether this {@linkplain ClassDesc} describes a class or interface type */ default boolean isClassOrInterface() { - return descriptorString().charAt(0) == 'L'; + return false; } /** @@ -313,14 +260,6 @@ default boolean isClassOrInterface() { * if this descriptor does not describe an array type */ default ClassDesc componentType() { - if (isArray()) { - String desc = descriptorString(); - if (desc.length() == 2) { - return Wrapper.forBasicType(desc.charAt(1)).basicClassDescriptor(); - } else { - return ReferenceClassDescImpl.ofValidated(desc.substring(1)); - } - } return null; } @@ -332,41 +271,17 @@ default ClassDesc componentType() { * default package, or this {@linkplain ClassDesc} does not describe a class or interface type */ default String packageName() { - if (!isClassOrInterface()) - return ""; - String desc = descriptorString(); - int index = desc.lastIndexOf('/'); - return (index == -1) ? "" : internalToBinary(desc.substring(1, index)); + return ""; } /** - * Returns a human-readable name for the type described by this descriptor. - * - * @implSpec - *

    The default implementation returns the simple name - * (e.g., {@code int}) for primitive types, the unqualified class name - * for class or interface types, or the display name of the component type - * suffixed with the appropriate number of {@code []} pairs for array types. - * - * @return the human-readable name + * {@return a human-readable name for this {@code ClassDesc}} + * For primitive types, this method returns the simple name (such as {@code int}). + * For class or interface types, this method returns the unqualified class name. + * For array types, this method returns the human-readable name of the component + * type suffixed with the appropriate number of {@code []} pairs. */ - default String displayName() { - if (isPrimitive()) - return Wrapper.forBasicType(descriptorString().charAt(0)).primitiveSimpleName(); - else if (isClassOrInterface()) { - String desc = descriptorString(); - return desc.substring(Math.max(1, desc.lastIndexOf('/') + 1), desc.length() - 1); - } - else if (isArray()) { - int depth = arrayDepth(descriptorString()); - ClassDesc c = this; - for (int i=0; i.SpeciesData> { - private static final ClassDesc CD_LambdaForm = ReferenceClassDescImpl.ofValidated("Ljava/lang/invoke/LambdaForm;"); - private static final ClassDesc CD_BoundMethodHandle = ReferenceClassDescImpl.ofValidated("Ljava/lang/invoke/BoundMethodHandle;"); + private static final ClassDesc CD_LambdaForm = ClassOrInterfaceDescImpl.ofValidated("Ljava/lang/invoke/LambdaForm;"); + private static final ClassDesc CD_BoundMethodHandle = ClassOrInterfaceDescImpl.ofValidated("Ljava/lang/invoke/BoundMethodHandle;"); private final Class topClass; private final Class keyType; @@ -974,7 +975,7 @@ static ClassDesc classDesc(Class cls) { : cls == MethodType.class ? CD_MethodType : cls == LambdaForm.class ? CD_LambdaForm : cls == BoundMethodHandle.class ? CD_BoundMethodHandle - : ReferenceClassDescImpl.ofValidated(cls.descriptorString()); + : ConstantUtils.referenceClassDesc(cls.descriptorString()); } static MethodTypeDesc methodDesc(MethodType mt) { diff --git a/src/java.base/share/classes/java/lang/invoke/InnerClassLambdaMetafactory.java b/src/java.base/share/classes/java/lang/invoke/InnerClassLambdaMetafactory.java index 10f282065fd..93784004994 100644 --- a/src/java.base/share/classes/java/lang/invoke/InnerClassLambdaMetafactory.java +++ b/src/java.base/share/classes/java/lang/invoke/InnerClassLambdaMetafactory.java @@ -25,6 +25,7 @@ package java.lang.invoke; +import jdk.internal.constant.ClassOrInterfaceDescImpl; import jdk.internal.misc.CDS; import jdk.internal.util.ClassFileDumper; import sun.invoke.util.VerifyAccess; @@ -53,10 +54,8 @@ import static java.lang.constant.ConstantDescs.*; import static java.lang.invoke.MethodHandleNatives.Constants.NESTMATE_CLASS; import static java.lang.invoke.MethodHandleNatives.Constants.STRONG_LOADER_LINK; -import static java.lang.invoke.MethodType.methodType; import jdk.internal.constant.ConstantUtils; import jdk.internal.constant.MethodTypeDescImpl; -import jdk.internal.constant.ReferenceClassDescImpl; import jdk.internal.vm.annotation.Stable; import sun.invoke.util.Wrapper; @@ -157,7 +156,7 @@ public InnerClassLambdaMetafactory(MethodHandles.Lookup caller, implMethodDesc = methodDesc(implInfo.getMethodType()); constructorType = factoryType.changeReturnType(Void.TYPE); lambdaClassName = lambdaClassName(targetClass); - lambdaClassEntry = pool.classEntry(ReferenceClassDescImpl.ofValidated(ConstantUtils.concat("L", lambdaClassName, ";"))); + lambdaClassEntry = pool.classEntry(ConstantUtils.internalNameToDesc(lambdaClassName)); // If the target class invokes a protected method inherited from a // superclass in a different package, or does 'invokespecial', the // lambda class has no access to the resolved method, or does @@ -407,9 +406,9 @@ public void accept(CodeBuilder cob) { private static class SerializationSupport { // Serialization support - private static final ClassDesc CD_SerializedLambda = ReferenceClassDescImpl.ofValidated("Ljava/lang/invoke/SerializedLambda;"); - private static final ClassDesc CD_ObjectOutputStream = ReferenceClassDescImpl.ofValidated("Ljava/io/ObjectOutputStream;"); - private static final ClassDesc CD_ObjectInputStream = ReferenceClassDescImpl.ofValidated("Ljava/io/ObjectInputStream;"); + private static final ClassDesc CD_SerializedLambda = ClassOrInterfaceDescImpl.ofValidated("Ljava/lang/invoke/SerializedLambda;"); + private static final ClassDesc CD_ObjectOutputStream = ClassOrInterfaceDescImpl.ofValidated("Ljava/io/ObjectOutputStream;"); + private static final ClassDesc CD_ObjectInputStream = ClassOrInterfaceDescImpl.ofValidated("Ljava/io/ObjectInputStream;"); private static final MethodTypeDesc MTD_Object = MethodTypeDescImpl.ofValidated(CD_Object); private static final MethodTypeDesc MTD_void_ObjectOutputStream = MethodTypeDescImpl.ofValidated(CD_void, CD_ObjectOutputStream); private static final MethodTypeDesc MTD_void_ObjectInputStream = MethodTypeDescImpl.ofValidated(CD_void, CD_ObjectInputStream); @@ -418,10 +417,10 @@ private static class SerializationSupport { private static final String NAME_METHOD_READ_OBJECT = "readObject"; private static final String NAME_METHOD_WRITE_OBJECT = "writeObject"; - static final ClassDesc CD_NotSerializableException = ReferenceClassDescImpl.ofValidated("Ljava/io/NotSerializableException;"); + static final ClassDesc CD_NotSerializableException = ClassOrInterfaceDescImpl.ofValidated("Ljava/io/NotSerializableException;"); static final MethodTypeDesc MTD_CTOR_NOT_SERIALIZABLE_EXCEPTION = MethodTypeDescImpl.ofValidated(CD_void, CD_String); static final MethodTypeDesc MTD_CTOR_SERIALIZED_LAMBDA = MethodTypeDescImpl.ofValidated(CD_void, - CD_Class, CD_String, CD_String, CD_String, CD_int, CD_String, CD_String, CD_String, CD_String, ReferenceClassDescImpl.ofValidated("[Ljava/lang/Object;")); + CD_Class, CD_String, CD_String, CD_String, CD_int, CD_String, CD_String, CD_String, CD_String, ConstantUtils.CD_Object_array); } @@ -557,12 +556,12 @@ private Opcode invocationOpcode() throws InternalError { } static ClassDesc implClassDesc(Class cls) { - return cls.isHidden() ? null : ReferenceClassDescImpl.ofValidated(cls.descriptorString()); + return cls.isHidden() ? null : ConstantUtils.referenceClassDesc(cls.descriptorString()); } static ClassDesc classDesc(Class cls) { return cls.isPrimitive() ? Wrapper.forPrimitiveType(cls).basicClassDescriptor() - : ReferenceClassDescImpl.ofValidated(cls.descriptorString()); + : ConstantUtils.referenceClassDesc(cls.descriptorString()); } static MethodTypeDesc methodDesc(MethodType mt) { diff --git a/src/java.base/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java b/src/java.base/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java index 5d307a9ff04..ec131d67f2b 100644 --- a/src/java.base/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java +++ b/src/java.base/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java @@ -25,6 +25,8 @@ package java.lang.invoke; +import jdk.internal.constant.ClassOrInterfaceDescImpl; +import jdk.internal.constant.ConstantUtils; import sun.invoke.util.VerifyAccess; import sun.invoke.util.VerifyType; import sun.invoke.util.Wrapper; @@ -50,7 +52,6 @@ import java.util.function.Consumer; import java.util.stream.Stream; import jdk.internal.constant.MethodTypeDescImpl; -import jdk.internal.constant.ReferenceClassDescImpl; import static java.lang.classfile.ClassFile.*; import static java.lang.constant.ConstantDescs.*; @@ -59,7 +60,6 @@ import static java.lang.invoke.MethodHandleNatives.Constants.*; import static java.lang.invoke.MethodHandleStatics.*; import static java.lang.invoke.MethodHandles.Lookup.IMPL_LOOKUP; -import static jdk.internal.constant.ConstantUtils.concat; import static jdk.internal.constant.ConstantUtils.validateInternalClassName; /** @@ -69,16 +69,16 @@ */ class InvokerBytecodeGenerator { /** Define class names for convenience. */ - private static final ClassDesc CD_CasesHolder = ReferenceClassDescImpl.ofValidated("Ljava/lang/invoke/MethodHandleImpl$CasesHolder;"); - private static final ClassDesc CD_DirectMethodHandle = ReferenceClassDescImpl.ofValidated("Ljava/lang/invoke/DirectMethodHandle;"); - private static final ClassDesc CD_MemberName = ReferenceClassDescImpl.ofValidated("Ljava/lang/invoke/MemberName;"); - private static final ClassDesc CD_MethodHandleImpl = ReferenceClassDescImpl.ofValidated("Ljava/lang/invoke/MethodHandleImpl;"); - private static final ClassDesc CD_LambdaForm = ReferenceClassDescImpl.ofValidated("Ljava/lang/invoke/LambdaForm;"); - private static final ClassDesc CD_LambdaForm_Name = ReferenceClassDescImpl.ofValidated("Ljava/lang/invoke/LambdaForm$Name;"); - private static final ClassDesc CD_LoopClauses = ReferenceClassDescImpl.ofValidated("Ljava/lang/invoke/MethodHandleImpl$LoopClauses;"); - private static final ClassDesc CD_Object_array = ReferenceClassDescImpl.ofValidated("[Ljava/lang/Object;"); - private static final ClassDesc CD_MethodHandle_array = ReferenceClassDescImpl.ofValidated("[Ljava/lang/invoke/MethodHandle;"); - private static final ClassDesc CD_MethodHandle_array2 = ReferenceClassDescImpl.ofValidated("[[Ljava/lang/invoke/MethodHandle;"); + private static final ClassDesc CD_CasesHolder = ClassOrInterfaceDescImpl.ofValidated("Ljava/lang/invoke/MethodHandleImpl$CasesHolder;"); + private static final ClassDesc CD_DirectMethodHandle = ClassOrInterfaceDescImpl.ofValidated("Ljava/lang/invoke/DirectMethodHandle;"); + private static final ClassDesc CD_MemberName = ClassOrInterfaceDescImpl.ofValidated("Ljava/lang/invoke/MemberName;"); + private static final ClassDesc CD_MethodHandleImpl = ClassOrInterfaceDescImpl.ofValidated("Ljava/lang/invoke/MethodHandleImpl;"); + private static final ClassDesc CD_LambdaForm = ClassOrInterfaceDescImpl.ofValidated("Ljava/lang/invoke/LambdaForm;"); + private static final ClassDesc CD_LambdaForm_Name = ClassOrInterfaceDescImpl.ofValidated("Ljava/lang/invoke/LambdaForm$Name;"); + private static final ClassDesc CD_LoopClauses = ClassOrInterfaceDescImpl.ofValidated("Ljava/lang/invoke/MethodHandleImpl$LoopClauses;"); + private static final ClassDesc CD_Object_array = ConstantUtils.CD_Object_array; + private static final ClassDesc CD_MethodHandle_array = CD_MethodHandle.arrayType(); + private static final ClassDesc CD_MethodHandle_array2 = CD_MethodHandle_array.arrayType(); private static final MethodTypeDesc MTD_boolean_Object = MethodTypeDescImpl.ofValidated(CD_boolean, CD_Object); private static final MethodTypeDesc MTD_Object_int = MethodTypeDescImpl.ofValidated(CD_Object, CD_int); @@ -133,7 +133,7 @@ private InvokerBytecodeGenerator(LambdaForm lambdaForm, int localsMapSize, this.name = name; this.className = CLASS_PREFIX.concat(name); validateInternalClassName(name); - this.classEntry = pool.classEntry(ReferenceClassDescImpl.ofValidated(concat("L", className, ";"))); + this.classEntry = pool.classEntry(ConstantUtils.internalNameToDesc(className)); this.lambdaForm = lambdaForm; this.invokerName = invokerName; this.invokerType = invokerType; @@ -517,11 +517,11 @@ private boolean checkActualReceiver(CodeBuilder cob) { return true; } - static final Annotation DONTINLINE = Annotation.of(ReferenceClassDescImpl.ofValidated("Ljdk/internal/vm/annotation/DontInline;")); - static final Annotation FORCEINLINE = Annotation.of(ReferenceClassDescImpl.ofValidated("Ljdk/internal/vm/annotation/ForceInline;")); - static final Annotation HIDDEN = Annotation.of(ReferenceClassDescImpl.ofValidated("Ljdk/internal/vm/annotation/Hidden;")); - static final Annotation INJECTEDPROFILE = Annotation.of(ReferenceClassDescImpl.ofValidated("Ljava/lang/invoke/InjectedProfile;")); - static final Annotation LF_COMPILED = Annotation.of(ReferenceClassDescImpl.ofValidated("Ljava/lang/invoke/LambdaForm$Compiled;")); + static final Annotation DONTINLINE = Annotation.of(ClassOrInterfaceDescImpl.ofValidated("Ljdk/internal/vm/annotation/DontInline;")); + static final Annotation FORCEINLINE = Annotation.of(ClassOrInterfaceDescImpl.ofValidated("Ljdk/internal/vm/annotation/ForceInline;")); + static final Annotation HIDDEN = Annotation.of(ClassOrInterfaceDescImpl.ofValidated("Ljdk/internal/vm/annotation/Hidden;")); + static final Annotation INJECTEDPROFILE = Annotation.of(ClassOrInterfaceDescImpl.ofValidated("Ljava/lang/invoke/InjectedProfile;")); + static final Annotation LF_COMPILED = Annotation.of(ClassOrInterfaceDescImpl.ofValidated("Ljava/lang/invoke/LambdaForm$Compiled;")); // Suppress method in backtraces displayed to the user, mark this method as // a compiled LambdaForm, then either force or prohibit inlining. @@ -1649,7 +1649,7 @@ static ClassDesc classDesc(Class cls) { : cls == MemberName.class ? CD_MemberName : cls == MethodType.class ? CD_MethodType : cls.isPrimitive() ? Wrapper.forPrimitiveType(cls).basicClassDescriptor() - : ReferenceClassDescImpl.ofValidated(cls.descriptorString()); + : ConstantUtils.referenceClassDesc(cls.descriptorString()); } static MethodTypeDesc methodDesc(MethodType mt) { diff --git a/src/java.base/share/classes/java/lang/invoke/LambdaForm.java b/src/java.base/share/classes/java/lang/invoke/LambdaForm.java index 7109f35f069..b3983b8bd7e 100644 --- a/src/java.base/share/classes/java/lang/invoke/LambdaForm.java +++ b/src/java.base/share/classes/java/lang/invoke/LambdaForm.java @@ -301,12 +301,8 @@ enum Kind { PUT_DOUBLE_VOLATILE("putDoubleVolatile"), TRY_FINALLY("tryFinally"), TABLE_SWITCH("tableSwitch"), - COLLECT("collect"), COLLECTOR("collector"), - CONVERT("convert"), - SPREAD("spread"), LOOP("loop"), - FIELD("field"), GUARD("guard"), GUARD_WITH_CATCH("guardWithCatch"), VARHANDLE_EXACT_INVOKER("VH.exactInvoker"), diff --git a/src/java.base/share/classes/java/lang/invoke/MethodHandleImpl.java b/src/java.base/share/classes/java/lang/invoke/MethodHandleImpl.java index 992ef387684..fd3e20a524e 100644 --- a/src/java.base/share/classes/java/lang/invoke/MethodHandleImpl.java +++ b/src/java.base/share/classes/java/lang/invoke/MethodHandleImpl.java @@ -27,8 +27,9 @@ import jdk.internal.access.JavaLangInvokeAccess; import jdk.internal.access.SharedSecrets; +import jdk.internal.constant.ClassOrInterfaceDescImpl; +import jdk.internal.constant.ConstantUtils; import jdk.internal.constant.MethodTypeDescImpl; -import jdk.internal.constant.ReferenceClassDescImpl; import jdk.internal.foreign.abi.NativeEntryPoint; import jdk.internal.reflect.CallerSensitive; import jdk.internal.reflect.Reflection; @@ -54,7 +55,6 @@ import java.util.List; import java.util.Map; import java.util.Objects; -import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Function; import java.util.stream.Stream; @@ -67,7 +67,6 @@ import static java.lang.invoke.MethodHandleNatives.Constants.NESTMATE_CLASS; import static java.lang.invoke.MethodHandleStatics.*; import static java.lang.invoke.MethodHandles.Lookup.IMPL_LOOKUP; -import static java.lang.invoke.MethodHandles.Lookup.ClassOption.NESTMATE; /** * Trusted implementation code for MethodHandle. @@ -1038,7 +1037,7 @@ static MethodHandle bindCaller(MethodHandle mh, Class hostClass) { // That way we can lazily load the code and set up the constants. private static class BindCaller { - private static final ClassDesc CD_Object_array = ReferenceClassDescImpl.ofValidated("[Ljava/lang/Object;"); + private static final ClassDesc CD_Object_array = ConstantUtils.CD_Object_array; private static final MethodType INVOKER_MT = MethodType.methodType(Object.class, MethodHandle.class, Object[].class); private static final MethodType REFLECT_INVOKER_MT = MethodType.methodType(Object.class, MethodHandle.class, Object.class, Object[].class); @@ -1267,7 +1266,7 @@ private static byte[] generateInvokerTemplate() { // } // } // } - return ClassFile.of().build(ReferenceClassDescImpl.ofValidated("LInjectedInvoker;"), clb -> clb + return ClassFile.of().build(ClassOrInterfaceDescImpl.ofValidated("LInjectedInvoker;"), clb -> clb .withFlags(ACC_PRIVATE | ACC_SUPER) .withMethodBody( "invoke_V", diff --git a/src/java.base/share/classes/java/lang/invoke/StringConcatFactory.java b/src/java.base/share/classes/java/lang/invoke/StringConcatFactory.java index 97848e1fcb3..cca16a18580 100644 --- a/src/java.base/share/classes/java/lang/invoke/StringConcatFactory.java +++ b/src/java.base/share/classes/java/lang/invoke/StringConcatFactory.java @@ -28,9 +28,9 @@ import jdk.internal.access.JavaLangAccess; import jdk.internal.access.SharedSecrets; +import jdk.internal.constant.ClassOrInterfaceDescImpl; import jdk.internal.constant.ConstantUtils; import jdk.internal.constant.MethodTypeDescImpl; -import jdk.internal.constant.ReferenceClassDescImpl; import jdk.internal.misc.VM; import jdk.internal.util.ClassFileDumper; import jdk.internal.util.ReferenceKey; @@ -1088,10 +1088,10 @@ private static final class InlineHiddenClassStrategy { static final MethodHandles.Lookup STR_LOOKUP = new MethodHandles.Lookup(String.class); static final ClassDesc CD_CONCAT = ConstantUtils.binaryNameToDesc(CLASS_NAME); - static final ClassDesc CD_StringConcatHelper = ReferenceClassDescImpl.ofValidated("Ljava/lang/StringConcatHelper;"); - static final ClassDesc CD_StringConcatBase = ReferenceClassDescImpl.ofValidated("Ljava/lang/StringConcatHelper$StringConcatBase;"); - static final ClassDesc CD_Array_byte = ReferenceClassDescImpl.ofValidated("[B"); - static final ClassDesc CD_Array_String = ReferenceClassDescImpl.ofValidated("[Ljava/lang/String;"); + static final ClassDesc CD_StringConcatHelper = ClassOrInterfaceDescImpl.ofValidated("Ljava/lang/StringConcatHelper;"); + static final ClassDesc CD_StringConcatBase = ClassOrInterfaceDescImpl.ofValidated("Ljava/lang/StringConcatHelper$StringConcatBase;"); + static final ClassDesc CD_Array_byte = CD_byte.arrayType(); + static final ClassDesc CD_Array_String = CD_String.arrayType(); static final MethodTypeDesc MTD_byte_char = MethodTypeDescImpl.ofValidated(CD_byte, CD_char); static final MethodTypeDesc MTD_byte = MethodTypeDescImpl.ofValidated(CD_byte); diff --git a/src/java.base/share/classes/java/lang/invoke/TypeConvertingMethodAdapter.java b/src/java.base/share/classes/java/lang/invoke/TypeConvertingMethodAdapter.java index 83fefe07d51..f372e053260 100644 --- a/src/java.base/share/classes/java/lang/invoke/TypeConvertingMethodAdapter.java +++ b/src/java.base/share/classes/java/lang/invoke/TypeConvertingMethodAdapter.java @@ -30,8 +30,9 @@ import java.lang.classfile.TypeKind; import java.lang.classfile.constantpool.ConstantPoolBuilder; import java.lang.classfile.constantpool.MethodRefEntry; + +import jdk.internal.constant.ConstantUtils; import jdk.internal.constant.MethodTypeDescImpl; -import jdk.internal.constant.ReferenceClassDescImpl; import sun.invoke.util.Wrapper; import static java.lang.constant.ConstantDescs.*; @@ -202,6 +203,6 @@ static ClassDesc classDesc(Class cls) { return cls.isPrimitive() ? Wrapper.forPrimitiveType(cls).basicClassDescriptor() : cls == Object.class ? CD_Object : cls == String.class ? CD_String - : ReferenceClassDescImpl.ofValidated(cls.descriptorString()); + : ConstantUtils.referenceClassDesc(cls.descriptorString()); } } diff --git a/src/java.base/share/classes/java/lang/reflect/ParameterizedType.java b/src/java.base/share/classes/java/lang/reflect/ParameterizedType.java index 99016623a3e..c78af9ef2ec 100644 --- a/src/java.base/share/classes/java/lang/reflect/ParameterizedType.java +++ b/src/java.base/share/classes/java/lang/reflect/ParameterizedType.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -66,11 +66,15 @@ public interface ParameterizedType extends Type { Type[] getActualTypeArguments(); /** - * Returns the {@code Type} object representing the class or interface - * that declared this type. + * {@return the {@code Type} object representing the class or interface + * that declared this type} + * + * @apiNote + * All {@code ParameterizedType} objects from core reflection return a + * {@link Class}. The static {@code Type} return type allows other + * implementations to represent classes and interfaces not in the current + * runtime. * - * @return the {@code Type} object representing the class or interface - * that declared this type * @since 1.5 */ Type getRawType(); diff --git a/src/java.base/share/classes/java/lang/reflect/ProxyGenerator.java b/src/java.base/share/classes/java/lang/reflect/ProxyGenerator.java index abdcaf5ae1f..efbb3919ef5 100644 --- a/src/java.base/share/classes/java/lang/reflect/ProxyGenerator.java +++ b/src/java.base/share/classes/java/lang/reflect/ProxyGenerator.java @@ -39,9 +39,10 @@ import java.util.ListIterator; import java.util.Map; import java.util.Objects; + +import jdk.internal.constant.ClassOrInterfaceDescImpl; import jdk.internal.constant.ConstantUtils; import jdk.internal.constant.MethodTypeDescImpl; -import jdk.internal.constant.ReferenceClassDescImpl; import sun.security.action.GetBooleanAction; import static java.lang.classfile.ClassFile.*; @@ -64,18 +65,18 @@ final class ProxyGenerator { ClassFile.of(ClassFile.StackMapsOption.DROP_STACK_MAPS); private static final ClassDesc - CD_ClassLoader = ReferenceClassDescImpl.ofValidated("Ljava/lang/ClassLoader;"), - CD_Class_array = ReferenceClassDescImpl.ofValidated("[Ljava/lang/Class;"), - CD_ClassNotFoundException = ReferenceClassDescImpl.ofValidated("Ljava/lang/ClassNotFoundException;"), - CD_NoClassDefFoundError = ReferenceClassDescImpl.ofValidated("Ljava/lang/NoClassDefFoundError;"), - CD_IllegalAccessException = ReferenceClassDescImpl.ofValidated("Ljava/lang/IllegalAccessException;"), - CD_InvocationHandler = ReferenceClassDescImpl.ofValidated("Ljava/lang/reflect/InvocationHandler;"), - CD_Method = ReferenceClassDescImpl.ofValidated("Ljava/lang/reflect/Method;"), - CD_NoSuchMethodError = ReferenceClassDescImpl.ofValidated("Ljava/lang/NoSuchMethodError;"), - CD_NoSuchMethodException = ReferenceClassDescImpl.ofValidated("Ljava/lang/NoSuchMethodException;"), - CD_Object_array = ReferenceClassDescImpl.ofValidated("[Ljava/lang/Object;"), - CD_Proxy = ReferenceClassDescImpl.ofValidated("Ljava/lang/reflect/Proxy;"), - CD_UndeclaredThrowableException = ReferenceClassDescImpl.ofValidated("Ljava/lang/reflect/UndeclaredThrowableException;"); + CD_ClassLoader = ClassOrInterfaceDescImpl.ofValidated("Ljava/lang/ClassLoader;"), + CD_Class_array = CD_Class.arrayType(), + CD_ClassNotFoundException = ClassOrInterfaceDescImpl.ofValidated("Ljava/lang/ClassNotFoundException;"), + CD_NoClassDefFoundError = ClassOrInterfaceDescImpl.ofValidated("Ljava/lang/NoClassDefFoundError;"), + CD_IllegalAccessException = ClassOrInterfaceDescImpl.ofValidated("Ljava/lang/IllegalAccessException;"), + CD_InvocationHandler = ClassOrInterfaceDescImpl.ofValidated("Ljava/lang/reflect/InvocationHandler;"), + CD_Method = ClassOrInterfaceDescImpl.ofValidated("Ljava/lang/reflect/Method;"), + CD_NoSuchMethodError = ClassOrInterfaceDescImpl.ofValidated("Ljava/lang/NoSuchMethodError;"), + CD_NoSuchMethodException = ClassOrInterfaceDescImpl.ofValidated("Ljava/lang/NoSuchMethodException;"), + CD_Object_array = ConstantUtils.CD_Object_array, + CD_Proxy = ClassOrInterfaceDescImpl.ofValidated("Ljava/lang/reflect/Proxy;"), + CD_UndeclaredThrowableException = ClassOrInterfaceDescImpl.ofValidated("Ljava/lang/reflect/UndeclaredThrowableException;"); private static final MethodTypeDesc MTD_boolean = MethodTypeDescImpl.ofValidated(CD_boolean), diff --git a/src/java.base/share/classes/java/lang/runtime/SwitchBootstraps.java b/src/java.base/share/classes/java/lang/runtime/SwitchBootstraps.java index 0c0144b24db..53f1572fa74 100644 --- a/src/java.base/share/classes/java/lang/runtime/SwitchBootstraps.java +++ b/src/java.base/share/classes/java/lang/runtime/SwitchBootstraps.java @@ -48,9 +48,9 @@ import java.lang.classfile.Label; import java.lang.classfile.instruction.SwitchCase; +import jdk.internal.constant.ClassOrInterfaceDescImpl; import jdk.internal.constant.ConstantUtils; import jdk.internal.constant.MethodTypeDescImpl; -import jdk.internal.constant.ReferenceClassDescImpl; import jdk.internal.misc.PreviewFeatures; import jdk.internal.vm.annotation.Stable; @@ -82,8 +82,8 @@ private SwitchBootstraps() {} private static final MethodHandles.Lookup LOOKUP = MethodHandles.lookup(); private static final boolean previewEnabled = PreviewFeatures.isEnabled(); - private static final ClassDesc CD_BiPredicate = ReferenceClassDescImpl.ofValidated("Ljava/util/function/BiPredicate;"); - private static final ClassDesc CD_Objects = ReferenceClassDescImpl.ofValidated("Ljava/util/Objects;"); + private static final ClassDesc CD_BiPredicate = ClassOrInterfaceDescImpl.ofValidated("Ljava/util/function/BiPredicate;"); + private static final ClassDesc CD_Objects = ClassOrInterfaceDescImpl.ofValidated("Ljava/util/Objects;"); private static final MethodTypeDesc CHECK_INDEX_DESCRIPTOR = MethodTypeDescImpl.ofValidated(CD_int, CD_int, CD_int); @@ -584,7 +584,7 @@ private static Consumer generateTypeSwitchSkeleton(Class selecto TypePairs typePair = TypePairs.of(Wrapper.asPrimitiveType(selectorType), classLabel); String methodName = TypePairs.typePairToName.get(typePair); - cb.invokestatic(referenceClassDesc(ExactConversionsSupport.class), + cb.invokestatic(ConstantUtils.referenceClassDesc(ExactConversionsSupport.class), methodName, MethodTypeDesc.of(CD_boolean, classDesc(typePair.from))) .ifeq(next); diff --git a/src/java.base/share/classes/java/security/DrbgParameters.java b/src/java.base/share/classes/java/security/DrbgParameters.java index ecf8d50aab1..d979aba9531 100644 --- a/src/java.base/share/classes/java/security/DrbgParameters.java +++ b/src/java.base/share/classes/java/security/DrbgParameters.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -227,6 +227,9 @@ * Calling {@link SecureRandom#generateSeed(int)} will directly read * from this system default entropy source. * + * @spec https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-90Ar1.pdf + * Recommendation for Random Number Generation Using Deterministic Random Bit Generators + * * @since 9 */ public class DrbgParameters { diff --git a/src/java.base/share/classes/java/security/Key.java b/src/java.base/share/classes/java/security/Key.java index 4ba26bf1034..28c0098c064 100644 --- a/src/java.base/share/classes/java/security/Key.java +++ b/src/java.base/share/classes/java/security/Key.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -86,6 +86,10 @@ * Security Appendix * of the Java Object Serialization Specification for more information. * + * @spec serialization/index.html Java Object Serialization Specification + * @spec https://www.rfc-editor.org/info/rfc5280 + * RFC 5280: Internet X.509 Public Key Infrastructure Certificate + * and Certificate Revocation List (CRL) Profile * @see PublicKey * @see PrivateKey * @see KeyPair @@ -124,6 +128,7 @@ public interface Key extends java.io.Serializable { * Java Security Standard Algorithm Names Specification * for information about standard key algorithm names. * + * @spec security/standard-names.html Java Security Standard Algorithm Names * @return the name of the algorithm associated with this key. */ String getAlgorithm(); diff --git a/src/java.base/share/classes/java/security/KeyRep.java b/src/java.base/share/classes/java/security/KeyRep.java index 0a82bf82ae0..2a887750036 100644 --- a/src/java.base/share/classes/java/security/KeyRep.java +++ b/src/java.base/share/classes/java/security/KeyRep.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -44,6 +44,7 @@ * Security Appendix * of the Java Object Serialization Specification for more information. * + * @spec serialization/index.html Java Object Serialization Specification * @see Key * @see KeyFactory * @see javax.crypto.spec.SecretKeySpec diff --git a/src/java.base/share/classes/java/security/SecureRandom.java b/src/java.base/share/classes/java/security/SecureRandom.java index fac7f6b9383..734f25e6615 100644 --- a/src/java.base/share/classes/java/security/SecureRandom.java +++ b/src/java.base/share/classes/java/security/SecureRandom.java @@ -140,6 +140,11 @@ *

  • {@link SecureRandomSpi#engineReseed(SecureRandomParameters)} * * + * @spec https://www.rfc-editor.org/info/rfc4086 + * RFC 4086: Randomness Requirements for Security + * @spec https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.140-2.pdf + * Security Requirements for Cryptographic Modules + * * @see java.security.SecureRandomSpi * @see java.util.Random * diff --git a/src/java.base/share/classes/java/security/Security.java b/src/java.base/share/classes/java/security/Security.java index 6628b717eb0..322605ef5ed 100644 --- a/src/java.base/share/classes/java/security/Security.java +++ b/src/java.base/share/classes/java/security/Security.java @@ -423,6 +423,7 @@ private static String getProviderProperty(String key, Provider provider) { * * @return the value of the specified property. * + * @spec security/standard-names.html Java Security Standard Algorithm Names * @deprecated This method used to return the value of a proprietary * property in the master file of the "SUN" Cryptographic Service * Provider in order to determine how to parse algorithm-specific @@ -657,6 +658,7 @@ public static Provider getProvider(String name) { * if the filter is not in the required format * @throws NullPointerException if filter is {@code null} * + * @spec security/standard-names.html Java Security Standard Algorithm Names * @see #getProviders(java.util.Map) * @since 1.3 */ @@ -734,6 +736,7 @@ public static Provider[] getProviders(String filter) { * if the filter is not in the required format * @throws NullPointerException if filter is {@code null} * + * @spec security/standard-names.html Java Security Standard Algorithm Names * @see #getProviders(java.lang.String) * @since 1.3 */ diff --git a/src/java.base/share/classes/java/security/cert/CRL.java b/src/java.base/share/classes/java/security/cert/CRL.java index fec267de051..fee08c3c2ed 100644 --- a/src/java.base/share/classes/java/security/cert/CRL.java +++ b/src/java.base/share/classes/java/security/cert/CRL.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -56,6 +56,8 @@ public abstract class CRL { * "{@docRoot}/../specs/security/standard-names.html"> * Java Security Standard Algorithm Names document * for information about standard CRL types. + * + * @spec security/standard-names.html Java Security Standard Algorithm Names */ protected CRL(String type) { this.type = type; diff --git a/src/java.base/share/classes/java/security/cert/CRLReason.java b/src/java.base/share/classes/java/security/cert/CRLReason.java index 2bc83f3356b..c2b19136c43 100644 --- a/src/java.base/share/classes/java/security/cert/CRLReason.java +++ b/src/java.base/share/classes/java/security/cert/CRLReason.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -31,6 +31,9 @@ * RFC 5280: Internet X.509 Public Key Infrastructure Certificate and CRL * Profile. * + * @spec https://www.rfc-editor.org/info/rfc5280 + * RFC 5280: Internet X.509 Public Key Infrastructure Certificate + * and Certificate Revocation List (CRL) Profile * @author Sean Mullan * @since 1.7 * @see X509CRLEntry#getRevocationReason diff --git a/src/java.base/share/classes/java/security/cert/PKIXRevocationChecker.java b/src/java.base/share/classes/java/security/cert/PKIXRevocationChecker.java index d36fcafd3e0..387b5ed8185 100644 --- a/src/java.base/share/classes/java/security/cert/PKIXRevocationChecker.java +++ b/src/java.base/share/classes/java/security/cert/PKIXRevocationChecker.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -81,14 +81,13 @@ * necessary locking. Multiple threads each manipulating separate objects * need not synchronize. * + * @spec https://www.rfc-editor.org/info/rfc2560 + * RFC 2560: X.509 Internet Public Key Infrastructure Online Certificate + * Status Protocol - OCSP + * @spec https://www.rfc-editor.org/info/rfc5280 + * RFC 5280: Internet X.509 Public Key Infrastructure Certificate + * and Certificate Revocation List (CRL) Profile * @since 1.8 - * - * @see RFC 2560: X.509 - * Internet Public Key Infrastructure Online Certificate Status Protocol - - * OCSP - * @see RFC 5280: - * Internet X.509 Public Key Infrastructure Certificate and Certificate - * Revocation List (CRL) Profile */ public abstract class PKIXRevocationChecker extends PKIXCertPathChecker { private URI ocspResponder; diff --git a/src/java.base/share/classes/java/security/cert/TrustAnchor.java b/src/java.base/share/classes/java/security/cert/TrustAnchor.java index 2626bcf3c2d..33d1e5fb433 100644 --- a/src/java.base/share/classes/java/security/cert/TrustAnchor.java +++ b/src/java.base/share/classes/java/security/cert/TrustAnchor.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -125,6 +125,10 @@ public class TrustAnchor { * decoded * @throws NullPointerException if the specified * {@code X509Certificate} is {@code null} + * + * @spec https://www.rfc-editor.org/info/rfc5280 + * RFC 5280: Internet X.509 Public Key Infrastructure Certificate + * and Certificate Revocation List (CRL) Profile */ public TrustAnchor(X509Certificate trustedCert, byte[] nameConstraints) { @@ -207,6 +211,10 @@ public TrustAnchor(X500Principal caPrincipal, PublicKey pubKey, * or incorrectly formatted or the name constraints cannot be decoded * @throws NullPointerException if the specified {@code caName} or * {@code pubKey} parameter is {@code null} + * + * @spec https://www.rfc-editor.org/info/rfc2253 + * RFC 2253: Lightweight Directory Access Protocol (v3): + * UTF-8 String Representation of Distinguished Names */ public TrustAnchor(String caName, PublicKey pubKey, byte[] nameConstraints) { diff --git a/src/java.base/share/classes/java/security/cert/X509CRL.java b/src/java.base/share/classes/java/security/cert/X509CRL.java index ddb622af1fe..111de1daf0e 100644 --- a/src/java.base/share/classes/java/security/cert/X509CRL.java +++ b/src/java.base/share/classes/java/security/cert/X509CRL.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -95,6 +95,9 @@ * } * } * + * @spec https://www.rfc-editor.org/info/rfc5280 + * RFC 5280: Internet X.509 Public Key Infrastructure Certificate + * and Certificate Revocation List (CRL) Profile * @author Hemma Prafullchandra * @since 1.2 * @@ -457,6 +460,11 @@ public X509CRLEntry getRevokedCertificate(X509Certificate certificate) { * relevant ASN.1 definitions. * * @return the signature algorithm OID string. + * + * @spec https://www.rfc-editor.org/info/rfc3279 + * RFC 3279: Algorithms and Identifiers for the Internet X.509 + * Public Key Infrastructure Certificate and Certificate + * Revocation List (CRL) Profile */ public abstract String getSigAlgOID(); diff --git a/src/java.base/share/classes/java/security/cert/X509CRLSelector.java b/src/java.base/share/classes/java/security/cert/X509CRLSelector.java index 337dcc6342d..5660749884a 100644 --- a/src/java.base/share/classes/java/security/cert/X509CRLSelector.java +++ b/src/java.base/share/classes/java/security/cert/X509CRLSelector.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -65,6 +65,9 @@ * provide the necessary locking. Multiple threads each manipulating * separate objects need not synchronize. * + * @spec https://www.rfc-editor.org/info/rfc5280 + * RFC 5280: Internet X.509 Public Key Infrastructure Certificate + * and Certificate Revocation List (CRL) Profile * @see CRLSelector * @see X509CRL * @@ -193,6 +196,10 @@ public void setIssuers(Collection issuers) { * * @param names a {@code Collection} of names (or {@code null}) * @throws IOException if a parsing error occurs + * + * @spec https://www.rfc-editor.org/info/rfc2253 + * RFC 2253: Lightweight Directory Access Protocol (v3): + * UTF-8 String Representation of Distinguished Names * @see #getIssuerNames */ public void setIssuerNames(Collection names) throws IOException { @@ -238,6 +245,9 @@ public void addIssuer(X500Principal issuer) { * RFC 2253 form * @throws IOException if a parsing error occurs * + * @spec https://www.rfc-editor.org/info/rfc2253 + * RFC 2253: Lightweight Directory Access Protocol (v3): + * UTF-8 String Representation of Distinguished Names * @deprecated Use {@link #addIssuer(X500Principal)} or * {@link #addIssuerName(byte[])} instead. This method should not be * relied on as it can fail to match some CRLs because of a loss of @@ -493,6 +503,10 @@ public Collection getIssuers() { * protect against subsequent modifications. * * @return a {@code Collection} of names (or {@code null}) + * + * @spec https://www.rfc-editor.org/info/rfc2253 + * RFC 2253: Lightweight Directory Access Protocol (v3): + * UTF-8 String Representation of Distinguished Names * @see #setIssuerNames */ public Collection getIssuerNames() { diff --git a/src/java.base/share/classes/java/security/cert/X509CertSelector.java b/src/java.base/share/classes/java/security/cert/X509CertSelector.java index 42f036b8518..7860fd528d5 100644 --- a/src/java.base/share/classes/java/security/cert/X509CertSelector.java +++ b/src/java.base/share/classes/java/security/cert/X509CertSelector.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -74,6 +74,9 @@ * provide the necessary locking. Multiple threads each manipulating * separate objects need not synchronize. * + * @spec https://www.rfc-editor.org/info/rfc5280 + * RFC 5280: Internet X.509 Public Key Infrastructure Certificate + * and Certificate Revocation List (CRL) Profile * @see CertSelector * @see X509Certificate * @@ -194,6 +197,9 @@ public void setIssuer(X500Principal issuer) { * (or {@code null}) * @throws IOException if a parsing error occurs (incorrect form for DN) * + * @spec https://www.rfc-editor.org/info/rfc2253 + * RFC 2253: Lightweight Directory Access Protocol (v3): + * UTF-8 String Representation of Distinguished Names * @deprecated Use {@link #setIssuer(X500Principal)} or * {@link #setIssuer(byte[])} instead. This method should not be relied on * as it can fail to match some certificates because of a loss of encoding @@ -286,6 +292,9 @@ public void setSubject(X500Principal subject) { * (or {@code null}) * @throws IOException if a parsing error occurs (incorrect form for DN) * + * @spec https://www.rfc-editor.org/info/rfc2253 + * RFC 2253: Lightweight Directory Access Protocol (v3): + * UTF-8 String Representation of Distinguished Names * @deprecated Use {@link #setSubject(X500Principal)} or * {@link #setSubject(byte[])} instead. This method should not be relied * on as it can fail to match some certificates because of a loss of @@ -728,6 +737,12 @@ public void setSubjectAlternativeNames(Collection> names) * RFC 5280, section 4.2.1.6) * @param name the name in string form (not {@code null}) * @throws IOException if a parsing error occurs + * + * @spec https://www.rfc-editor.org/info/rfc2253 + * RFC 2253: Lightweight Directory Access Protocol (v3): + * UTF-8 String Representation of Distinguished Names + * @spec https://www.rfc-editor.org/info/rfc822 + * RFC 822: STANDARD FOR THE FORMAT OF ARPA INTERNET TEXT MESSAGES */ public void addSubjectAlternativeName(int type, String name) throws IOException { @@ -1269,6 +1284,9 @@ public X500Principal getIssuer() { * @return the required issuer distinguished name in RFC 2253 format * (or {@code null}) * + * @spec https://www.rfc-editor.org/info/rfc2253 + * RFC 2253: Lightweight Directory Access Protocol (v3): + * UTF-8 String Representation of Distinguished Names * @deprecated Use {@link #getIssuer()} or {@link #getIssuerAsBytes()} * instead. This method should not be relied on as it can fail to match * some certificates because of a loss of encoding information in the @@ -1328,6 +1346,9 @@ public X500Principal getSubject() { * @return the required subject distinguished name in RFC 2253 format * (or {@code null}) * + * @spec https://www.rfc-editor.org/info/rfc2253 + * RFC 2253: Lightweight Directory Access Protocol (v3): + * UTF-8 String Representation of Distinguished Names * @deprecated Use {@link #getSubject()} or {@link #getSubjectAsBytes()} * instead. This method should not be relied on as it can fail to match * some certificates because of a loss of encoding information in the diff --git a/src/java.base/share/classes/java/security/cert/X509Certificate.java b/src/java.base/share/classes/java/security/cert/X509Certificate.java index 22f2423145d..79f37a82d47 100644 --- a/src/java.base/share/classes/java/security/cert/X509Certificate.java +++ b/src/java.base/share/classes/java/security/cert/X509Certificate.java @@ -95,6 +95,9 @@ * } * * + * @spec https://www.rfc-editor.org/info/rfc5280 + * RFC 5280: Internet X.509 Public Key Infrastructure Certificate + * and Certificate Revocation List (CRL) Profile * @author Hemma Prafullchandra * @since 1.2 * @@ -386,6 +389,11 @@ public abstract byte[] getTBSCertificate() * relevant ASN.1 definitions. * * @return the signature algorithm OID string. + * + * @spec https://www.rfc-editor.org/info/rfc3279 + * RFC 3279: Algorithms and Identifiers for the Internet X.509 + * Public Key Infrastructure Certificate and Certificate + * Revocation List (CRL) Profile */ public abstract String getSigAlgOID(); @@ -614,6 +622,12 @@ public List getExtendedKeyUsage() throws CertificateParsingException { * @return an immutable {@code Collection} of subject alternative * names (or {@code null}) * @throws CertificateParsingException if the extension cannot be decoded + * + * @spec https://www.rfc-editor.org/info/rfc2253 + * RFC 2253: Lightweight Directory Access Protocol (v3): + * UTF-8 String Representation of Distinguished Names + * @spec https://www.rfc-editor.org/info/rfc822 + * RFC 822: STANDARD FOR THE FORMAT OF ARPA INTERNET TEXT MESSAGES * @since 1.4 */ public Collection> getSubjectAlternativeNames() diff --git a/src/java.base/share/classes/java/security/cert/package-info.java b/src/java.base/share/classes/java/security/cert/package-info.java index 0a5f0b7b532..e0c5b76cfd8 100644 --- a/src/java.base/share/classes/java/security/cert/package-info.java +++ b/src/java.base/share/classes/java/security/cert/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -52,6 +52,13 @@ *
  • {@extLink security_guide_pki Java PKI Programmer's Guide} * * + * @spec security/standard-names.html Java Security Standard Algorithm Names + * @spec https://www.rfc-editor.org/info/rfc2560 + * RFC 2560: X.509 Internet Public Key Infrastructure Online Certificate + * Status Protocol - OCSP + * @spec https://www.rfc-editor.org/info/rfc5280 + * RFC 5280: Internet X.509 Public Key Infrastructure Certificate + * and Certificate Revocation List (CRL) Profile * @since 1.2 */ package java.security.cert; diff --git a/src/java.base/share/classes/java/security/interfaces/EdECKey.java b/src/java.base/share/classes/java/security/interfaces/EdECKey.java index bec29eeed8e..ae00dd0678d 100644 --- a/src/java.base/share/classes/java/security/interfaces/EdECKey.java +++ b/src/java.base/share/classes/java/security/interfaces/EdECKey.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -35,6 +35,8 @@ * This interface allows access to the algorithm parameters associated with * the key. * + * @spec https://www.rfc-editor.org/info/rfc8032 + * RFC 8032: Edwards-Curve Digital Signature Algorithm (EdDSA) * @since 15 */ public interface EdECKey { diff --git a/src/java.base/share/classes/java/security/interfaces/EdECPrivateKey.java b/src/java.base/share/classes/java/security/interfaces/EdECPrivateKey.java index 2a1b194a90a..df193891ce1 100644 --- a/src/java.base/share/classes/java/security/interfaces/EdECPrivateKey.java +++ b/src/java.base/share/classes/java/security/interfaces/EdECPrivateKey.java @@ -40,6 +40,8 @@ * string lengths that are a multiple of 8, and the key is represented using * a byte array. * + * @spec https://www.rfc-editor.org/info/rfc8032 + * RFC 8032: Edwards-Curve Digital Signature Algorithm (EdDSA) * @since 15 */ public interface EdECPrivateKey extends EdECKey, PrivateKey { diff --git a/src/java.base/share/classes/java/security/interfaces/EdECPublicKey.java b/src/java.base/share/classes/java/security/interfaces/EdECPublicKey.java index f5a0f3c3194..5f3462164ef 100644 --- a/src/java.base/share/classes/java/security/interfaces/EdECPublicKey.java +++ b/src/java.base/share/classes/java/security/interfaces/EdECPublicKey.java @@ -38,6 +38,8 @@ * An Edwards-Curve public key is a point on the curve, which is represented using an * EdECPoint. * + * @spec https://www.rfc-editor.org/info/rfc8032 + * RFC 8032: Edwards-Curve Digital Signature Algorithm (EdDSA) * @since 15 */ public interface EdECPublicKey extends EdECKey, PublicKey { diff --git a/src/java.base/share/classes/java/security/interfaces/RSAKey.java b/src/java.base/share/classes/java/security/interfaces/RSAKey.java index f28a76869db..1d023e58ebb 100644 --- a/src/java.base/share/classes/java/security/interfaces/RSAKey.java +++ b/src/java.base/share/classes/java/security/interfaces/RSAKey.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -33,6 +33,8 @@ * PKCS#1 v2.2 standard, * such as those for RSA, or RSASSA-PSS algorithms. * + * @spec https://www.rfc-editor.org/info/rfc8017 + * RFC 8017: PKCS #1: RSA Cryptography Specifications Version 2.2 * @author Jan Luehe * * @see RSAPublicKey diff --git a/src/java.base/share/classes/java/security/interfaces/RSAMultiPrimePrivateCrtKey.java b/src/java.base/share/classes/java/security/interfaces/RSAMultiPrimePrivateCrtKey.java index 079130e5fb5..a523d36ac70 100644 --- a/src/java.base/share/classes/java/security/interfaces/RSAMultiPrimePrivateCrtKey.java +++ b/src/java.base/share/classes/java/security/interfaces/RSAMultiPrimePrivateCrtKey.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -33,6 +33,8 @@ * PKCS#1 v2.2 standard, * using the Chinese Remainder Theorem (CRT) information values. * + * @spec https://www.rfc-editor.org/info/rfc8017 + * RFC 8017: PKCS #1: RSA Cryptography Specifications Version 2.2 * @author Valerie Peng * * diff --git a/src/java.base/share/classes/java/security/interfaces/RSAPrivateCrtKey.java b/src/java.base/share/classes/java/security/interfaces/RSAPrivateCrtKey.java index 1b2bed7f9c1..7a8bea29e7e 100644 --- a/src/java.base/share/classes/java/security/interfaces/RSAPrivateCrtKey.java +++ b/src/java.base/share/classes/java/security/interfaces/RSAPrivateCrtKey.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -32,6 +32,8 @@ * PKCS#1 v2.2 standard, * using the Chinese Remainder Theorem (CRT) information values. * + * @spec https://www.rfc-editor.org/info/rfc8017 + * RFC 8017: PKCS #1: RSA Cryptography Specifications Version 2.2 * @author Jan Luehe * @since 1.2 * diff --git a/src/java.base/share/classes/java/security/package-info.java b/src/java.base/share/classes/java/security/package-info.java index ecbf629cbd9..349a895922f 100644 --- a/src/java.base/share/classes/java/security/package-info.java +++ b/src/java.base/share/classes/java/security/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -79,6 +79,7 @@ * * * + * @spec security/standard-names.html Java Security Standard Algorithm Names * @since 1.1 */ package java.security; diff --git a/src/java.base/share/classes/java/security/spec/DSAGenParameterSpec.java b/src/java.base/share/classes/java/security/spec/DSAGenParameterSpec.java index b51f1f54904..3292d6b2bf7 100644 --- a/src/java.base/share/classes/java/security/spec/DSAGenParameterSpec.java +++ b/src/java.base/share/classes/java/security/spec/DSAGenParameterSpec.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2019, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -29,6 +29,9 @@ * generating DSA parameters as specified in * FIPS 186-3 Digital Signature Standard (DSS). * + * @spec https://csrc.nist.gov/publications/fips/fips186-3/fips_186-3.pdf + * FIPS 186-3 Digital Signature Standard (DSS) + * * @see AlgorithmParameterSpec * * @since 1.8 diff --git a/src/java.base/share/classes/java/security/spec/EdDSAParameterSpec.java b/src/java.base/share/classes/java/security/spec/EdDSAParameterSpec.java index 673e9377b14..df81d4d94d3 100644 --- a/src/java.base/share/classes/java/security/spec/EdDSAParameterSpec.java +++ b/src/java.base/share/classes/java/security/spec/EdDSAParameterSpec.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2022, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -41,6 +41,8 @@ *
  • Otherwise, the mode is Ed25519 or Ed448
  • * * + * @spec https://www.rfc-editor.org/info/rfc8032 + * RFC 8032: Edwards-Curve Digital Signature Algorithm (EdDSA) * @since 15 */ diff --git a/src/java.base/share/classes/java/security/spec/EdECPoint.java b/src/java.base/share/classes/java/security/spec/EdECPoint.java index cb080f8557d..81fd9bc5543 100644 --- a/src/java.base/share/classes/java/security/spec/EdECPoint.java +++ b/src/java.base/share/classes/java/security/spec/EdECPoint.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -42,6 +42,8 @@ * {@code BigInteger}, and implementations that consume objects of this class * may reject integer values which are not in the range [0, p). * + * @spec https://www.rfc-editor.org/info/rfc8032 + * RFC 8032: Edwards-Curve Digital Signature Algorithm (EdDSA) * @since 15 */ diff --git a/src/java.base/share/classes/java/security/spec/EdECPrivateKeySpec.java b/src/java.base/share/classes/java/security/spec/EdECPrivateKeySpec.java index 370dfc92e59..74f453aac08 100644 --- a/src/java.base/share/classes/java/security/spec/EdECPrivateKeySpec.java +++ b/src/java.base/share/classes/java/security/spec/EdECPrivateKeySpec.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -34,6 +34,8 @@ * a byte array. This class only supports bit string lengths that are a * multiple of 8. * + * @spec https://www.rfc-editor.org/info/rfc8032 + * RFC 8032: Edwards-Curve Digital Signature Algorithm (EdDSA) * @since 15 */ public final class EdECPrivateKeySpec implements KeySpec { diff --git a/src/java.base/share/classes/java/security/spec/EdECPublicKeySpec.java b/src/java.base/share/classes/java/security/spec/EdECPublicKeySpec.java index fc52b3b7968..f884983acf6 100644 --- a/src/java.base/share/classes/java/security/spec/EdECPublicKeySpec.java +++ b/src/java.base/share/classes/java/security/spec/EdECPublicKeySpec.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -33,6 +33,8 @@ * algorithm parameters. The public key is a point on the curve, which is * represented using an {@code EdECPoint}. * + * @spec https://www.rfc-editor.org/info/rfc8032 + * RFC 8032: Edwards-Curve Digital Signature Algorithm (EdDSA) * @since 15 */ public final class EdECPublicKeySpec implements KeySpec { diff --git a/src/java.base/share/classes/java/security/spec/MGF1ParameterSpec.java b/src/java.base/share/classes/java/security/spec/MGF1ParameterSpec.java index 64e88015015..2a26adb7e4e 100644 --- a/src/java.base/share/classes/java/security/spec/MGF1ParameterSpec.java +++ b/src/java.base/share/classes/java/security/spec/MGF1ParameterSpec.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -55,6 +55,8 @@ * ... -- Allows for future expansion -- * } * + * @spec https://www.rfc-editor.org/info/rfc8017 + * RFC 8017: PKCS #1: RSA Cryptography Specifications Version 2.2 * @see PSSParameterSpec * @see javax.crypto.spec.OAEPParameterSpec * diff --git a/src/java.base/share/classes/java/security/spec/PSSParameterSpec.java b/src/java.base/share/classes/java/security/spec/PSSParameterSpec.java index 5c77089f1ca..a05ce1b4b7a 100644 --- a/src/java.base/share/classes/java/security/spec/PSSParameterSpec.java +++ b/src/java.base/share/classes/java/security/spec/PSSParameterSpec.java @@ -65,6 +65,8 @@ * } * * + * @spec https://www.rfc-editor.org/info/rfc8017 + * RFC 8017: PKCS #1: RSA Cryptography Specifications Version 2.2 * @see MGF1ParameterSpec * @see AlgorithmParameterSpec * @see java.security.Signature @@ -96,6 +98,8 @@ public class PSSParameterSpec implements AlgorithmParameterSpec { /** * The PSS parameter set with all default values. + * @spec https://www.rfc-editor.org/info/rfc8017 + * RFC 8017: PKCS #1: RSA Cryptography Specifications Version 2.2 * @deprecated This field uses the default values defined in the PKCS #1 * standard. Some of these defaults are no longer recommended due * to advances in cryptanalysis -- see the @@ -170,6 +174,8 @@ public PSSParameterSpec(String mdName, String mgfName, * @param saltLen the length of salt in bytes * @throws IllegalArgumentException if {@code saltLen} is * less than 0 + * @spec https://www.rfc-editor.org/info/rfc8017 + * RFC 8017: PKCS #1: RSA Cryptography Specifications Version 2.2 * @deprecated This constructor uses the default values defined in * the PKCS #1 standard except for the salt length. Some of these * defaults are no longer recommended due to advances in diff --git a/src/java.base/share/classes/java/security/spec/RSAMultiPrimePrivateCrtKeySpec.java b/src/java.base/share/classes/java/security/spec/RSAMultiPrimePrivateCrtKeySpec.java index cdb55b97418..a3a08739a9b 100644 --- a/src/java.base/share/classes/java/security/spec/RSAMultiPrimePrivateCrtKeySpec.java +++ b/src/java.base/share/classes/java/security/spec/RSAMultiPrimePrivateCrtKeySpec.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -34,6 +34,8 @@ * using the Chinese Remainder Theorem (CRT) information values * for efficiency. * + * @spec https://www.rfc-editor.org/info/rfc8017 + * RFC 8017: PKCS #1: RSA Cryptography Specifications Version 2.2 * @author Valerie Peng * * diff --git a/src/java.base/share/classes/java/security/spec/RSAOtherPrimeInfo.java b/src/java.base/share/classes/java/security/spec/RSAOtherPrimeInfo.java index b434075c683..140c44e309e 100644 --- a/src/java.base/share/classes/java/security/spec/RSAOtherPrimeInfo.java +++ b/src/java.base/share/classes/java/security/spec/RSAOtherPrimeInfo.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -42,6 +42,8 @@ * * * + * @spec https://www.rfc-editor.org/info/rfc8017 + * RFC 8017: PKCS #1: RSA Cryptography Specifications Version 2.2 * @author Valerie Peng * * diff --git a/src/java.base/share/classes/java/security/spec/RSAPrivateCrtKeySpec.java b/src/java.base/share/classes/java/security/spec/RSAPrivateCrtKeySpec.java index c8bed964b0e..70639cf7867 100644 --- a/src/java.base/share/classes/java/security/spec/RSAPrivateCrtKeySpec.java +++ b/src/java.base/share/classes/java/security/spec/RSAPrivateCrtKeySpec.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -32,6 +32,8 @@ * PKCS#1 v2.2 standard, * using the Chinese Remainder Theorem (CRT) information values for efficiency. * + * @spec https://www.rfc-editor.org/info/rfc8017 + * RFC 8017: PKCS #1: RSA Cryptography Specifications Version 2.2 * @author Jan Luehe * @since 1.2 * diff --git a/src/java.base/share/classes/java/text/DecimalFormatSymbols.java b/src/java.base/share/classes/java/text/DecimalFormatSymbols.java index 1a968170a30..54e045e0a85 100644 --- a/src/java.base/share/classes/java/text/DecimalFormatSymbols.java +++ b/src/java.base/share/classes/java/text/DecimalFormatSymbols.java @@ -349,10 +349,11 @@ public String getInfinity() { * unchanged. * * @param infinity the string representing infinity + * @throws NullPointerException if {@code infinity} is {@code null} */ public void setInfinity(String infinity) { + this.infinity = Objects.requireNonNull(infinity); hashCode = 0; - this.infinity = infinity; } /** @@ -370,10 +371,11 @@ public String getNaN() { * unchanged. * * @param NaN the string representing "not a number" + * @throws NullPointerException if {@code NaN} is {@code null} */ public void setNaN(String NaN) { + this.NaN = Objects.requireNonNull(NaN); hashCode = 0; - this.NaN = NaN; } /** @@ -414,14 +416,18 @@ public String getCurrencySymbol() } /** - * Sets the currency symbol for the currency of these - * DecimalFormatSymbols in their locale. + * Sets the currency symbol for the currency of this + * {@code DecimalFormatSymbols} in their locale. Unlike {@link + * #setInternationalCurrencySymbol(String)}, this method does not update + * the currency attribute nor the international currency symbol attribute. * * @param currency the currency symbol + * @throws NullPointerException if {@code currency} is {@code null} * @since 1.2 */ public void setCurrencySymbol(String currency) { + Objects.requireNonNull(currency); initializeCurrency(locale); hashCode = 0; currencySymbol = currency; @@ -448,35 +454,29 @@ public String getInternationalCurrencySymbol() * this also sets the currency attribute to the corresponding Currency * instance and the currency symbol attribute to the currency's symbol * in the DecimalFormatSymbols' locale. If the currency code is not valid, - * then the currency attribute is set to null and the currency symbol - * attribute is not modified. + * then the currency attribute and the currency symbol attribute are not modified. * * @param currencyCode the currency code + * @throws NullPointerException if {@code currencyCode} is {@code null} * @see #setCurrency * @see #setCurrencySymbol * @since 1.2 */ - public void setInternationalCurrencySymbol(String currencyCode) - { + public void setInternationalCurrencySymbol(String currencyCode) { + Objects.requireNonNull(currencyCode); + // init over setting currencyInit flag as true so that currency has + // fallback if code is not valid initializeCurrency(locale); hashCode = 0; intlCurrencySymbol = currencyCode; - currency = null; - if (currencyCode != null) { - try { - currency = Currency.getInstance(currencyCode); - currencySymbol = currency.getSymbol(); - } catch (IllegalArgumentException e) { - } - } + try { + currency = Currency.getInstance(currencyCode); + currencySymbol = currency.getSymbol(locale); + } catch (IllegalArgumentException _) {} // Simply ignore if not valid } /** - * Gets the currency of these DecimalFormatSymbols. May be null if the - * currency symbol attribute was previously set to a value that's not - * a valid ISO 4217 currency code. - * - * @return the currency used, or null + * {@return the {@code Currency} of this {@code DecimalFormatSymbols}} * @since 1.4 */ public Currency getCurrency() { @@ -485,7 +485,7 @@ public Currency getCurrency() { } /** - * Sets the currency of these DecimalFormatSymbols. + * Sets the currency of this {@code DecimalFormatSymbols}. * This also sets the currency symbol attribute to the currency's symbol * in the DecimalFormatSymbols' locale, and the international currency * symbol attribute to the currency's ISO 4217 currency code. @@ -497,9 +497,7 @@ public Currency getCurrency() { * @see #setInternationalCurrencySymbol */ public void setCurrency(Currency currency) { - if (currency == null) { - throw new NullPointerException(); - } + Objects.requireNonNull(currency); initializeCurrency(locale); hashCode = 0; this.currency = currency; @@ -555,9 +553,7 @@ public String getExponentSeparator() */ public void setExponentSeparator(String exp) { - if (exp == null) { - throw new NullPointerException(); - } + Objects.requireNonNull(exp); hashCode = 0; exponentialSeparator = exp; } @@ -767,7 +763,8 @@ public boolean equals(Object obj) { patternSeparator == other.patternSeparator && infinity.equals(other.infinity) && NaN.equals(other.NaN) && - getCurrencySymbol().equals(other.getCurrencySymbol()) && // possible currency init occurs here + // Currency fields are lazy. Init via get call to ensure non-null + getCurrencySymbol().equals(other.getCurrencySymbol()) && intlCurrencySymbol.equals(other.intlCurrencySymbol) && currency == other.currency && monetarySeparator == other.monetarySeparator && @@ -800,7 +797,8 @@ public int hashCode() { patternSeparator, infinity, NaN, - getCurrencySymbol(), // possible currency init occurs here + // Currency fields are lazy. Init via get call to ensure non-null + getCurrencySymbol(), intlCurrencySymbol, currency, monetarySeparator, diff --git a/src/java.base/share/classes/java/text/MessageFormat.java b/src/java.base/share/classes/java/text/MessageFormat.java index 4a3ca0b2dcb..dbe312e8583 100644 --- a/src/java.base/share/classes/java/text/MessageFormat.java +++ b/src/java.base/share/classes/java/text/MessageFormat.java @@ -2041,7 +2041,7 @@ private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundE // Check the correctness of arguments and offsets if (isValid) { - int lastOffset = patt.length() + 1; + int lastOffset = patt.length(); for (int i = maxOff; i >= 0; --i) { if (argNums[i] < 0 || argNums[i] >= MAX_ARGUMENT_INDEX || offs[i] < 0 || offs[i] > lastOffset) { diff --git a/src/java.base/share/classes/java/util/Locale.java b/src/java.base/share/classes/java/util/Locale.java index 5550d399a7f..4d59fe73efe 100644 --- a/src/java.base/share/classes/java/util/Locale.java +++ b/src/java.base/share/classes/java/util/Locale.java @@ -1126,28 +1126,11 @@ private static synchronized Locale getFormatLocale() { } private static Locale initDefault() { - String language, region, script, country, variant; - language = StaticProperty.USER_LANGUAGE; - // for compatibility, check for old user.region property - region = StaticProperty.USER_REGION; - if (!region.isEmpty()) { - // region can be of form country, country_variant, or _variant - int i = region.indexOf('_'); - if (i >= 0) { - country = region.substring(0, i); - variant = region.substring(i + 1); - } else { - country = region; - variant = ""; - } - script = ""; - } else { - script = StaticProperty.USER_SCRIPT; - country = StaticProperty.USER_COUNTRY; - variant = StaticProperty.USER_VARIANT; - } - - return getInstance(language, script, country, variant, + return getInstance( + StaticProperty.USER_LANGUAGE, + StaticProperty.USER_SCRIPT, + StaticProperty.USER_COUNTRY, + StaticProperty.USER_VARIANT, getDefaultExtensions(StaticProperty.USER_EXTENSIONS) .orElse(null)); } diff --git a/src/java.base/share/classes/java/util/jar/JarFile.java b/src/java.base/share/classes/java/util/jar/JarFile.java index 3dc3a49dc77..3a1f412e9c7 100644 --- a/src/java.base/share/classes/java/util/jar/JarFile.java +++ b/src/java.base/share/classes/java/util/jar/JarFile.java @@ -40,6 +40,7 @@ import java.lang.ref.SoftReference; import java.security.CodeSigner; import java.security.cert.Certificate; +import java.util.BitSet; import java.util.Enumeration; import java.util.List; import java.util.Objects; @@ -597,26 +598,16 @@ private String getBasename(String name) { } private JarEntry getVersionedEntry(String name, JarEntry defaultEntry) { - if (!name.startsWith(META_INF)) { - int[] versions = JUZFA.getMetaInfVersions(this); - if (BASE_VERSION_FEATURE < versionFeature && versions.length > 0) { - // search for versioned entry - for (int i = versions.length - 1; i >= 0; i--) { - int version = versions[i]; - // skip versions above versionFeature - if (version > versionFeature) { - continue; - } - // skip versions below base version - if (version < BASE_VERSION_FEATURE) { - break; - } - JarFileEntry vje = (JarFileEntry)super.getEntry( - META_INF_VERSIONS + version + "/" + name); - if (vje != null) { - return vje.withBasename(name); - } + if (BASE_VERSION_FEATURE < versionFeature && !name.startsWith(META_INF)) { + BitSet versions = JUZFA.getMetaInfVersions(this, name); + int version = versions.previousSetBit(versionFeature); + while (version >= BASE_VERSION_FEATURE) { + JarFileEntry vje = (JarFileEntry)super.getEntry( + META_INF_VERSIONS + version + "/" + name); + if (vje != null) { + return vje.withBasename(name); } + version = versions.previousSetBit(version - 1); } } return defaultEntry; diff --git a/src/java.base/share/classes/java/util/zip/ZipFile.java b/src/java.base/share/classes/java/util/zip/ZipFile.java index 21b9593c017..792b317a006 100644 --- a/src/java.base/share/classes/java/util/zip/ZipFile.java +++ b/src/java.base/share/classes/java/util/zip/ZipFile.java @@ -37,23 +37,7 @@ import java.nio.file.InvalidPathException; import java.nio.file.attribute.BasicFileAttributes; import java.nio.file.Files; -import java.util.ArrayDeque; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.Deque; -import java.util.Enumeration; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Locale; -import java.util.Objects; -import java.util.NoSuchElementException; -import java.util.Set; -import java.util.Spliterator; -import java.util.Spliterators; -import java.util.TreeSet; -import java.util.WeakHashMap; +import java.util.*; import java.util.function.Consumer; import java.util.function.IntFunction; import java.util.jar.JarEntry; @@ -64,6 +48,7 @@ import jdk.internal.access.JavaUtilJarAccess; import jdk.internal.access.SharedSecrets; import jdk.internal.util.ArraysSupport; +import jdk.internal.util.DecimalDigits; import jdk.internal.util.OperatingSystem; import jdk.internal.perf.PerfCounter; import jdk.internal.ref.CleanerFactory; @@ -1090,19 +1075,23 @@ private String getManifestName(boolean onlyIfSignatureRelatedFiles) { } /** - * Returns the versions for which there exists a non-directory - * entry that begin with "META-INF/versions/" (case ignored). + * Returns a BitSet where the set bits represents versions found for + * the given entry name. For performance reasons, the name is looked + * up only by hashcode, meaning the result is an over-approximation. * This method is used in JarFile, via SharedSecrets, as an * optimization when looking up potentially versioned entries. - * Returns an empty array if no versioned entries exist. + * Returns an empty BitSet if no versioned entries exist for this + * name. */ - private int[] getMetaInfVersions() { + private BitSet getMetaInfVersions(String name) { synchronized (this) { ensureOpen(); - return res.zsrc.metaVersions; + return res.zsrc.metaVersions.getOrDefault(ZipCoder.hash(name), EMPTY_VERSIONS); } } + private static final BitSet EMPTY_VERSIONS = new BitSet(); + /** * Returns the value of the System property which indicates whether the * Extra ZIP64 validation should be disabled. @@ -1139,8 +1128,8 @@ public String getManifestName(JarFile jar, boolean onlyIfHasSignatureRelatedFile return ((ZipFile)jar).getManifestName(onlyIfHasSignatureRelatedFiles); } @Override - public int[] getMetaInfVersions(JarFile jar) { - return ((ZipFile)jar).getMetaInfVersions(); + public BitSet getMetaInfVersions(JarFile jar, String name) { + return ((ZipFile)jar).getMetaInfVersions(name); } @Override public Enumeration entries(ZipFile zip) { @@ -1175,7 +1164,8 @@ private static class Source { private static final JavaUtilJarAccess JUJA = SharedSecrets.javaUtilJarAccess(); // "META-INF/".length() private static final int META_INF_LEN = 9; - private static final int[] EMPTY_META_VERSIONS = new int[0]; + // "META-INF/versions//".length() + private static final int META_INF_VERSIONS_LEN = 19; // CEN size is limited to the maximum array size in the JDK private static final int MAX_CEN_SIZE = ArraysSupport.SOFT_MAX_ARRAY_LENGTH; @@ -1192,7 +1182,7 @@ private static class Source { private int manifestPos = -1; // position of the META-INF/MANIFEST.MF, if exists private int manifestNum = 0; // number of META-INF/MANIFEST.MF, case insensitive private int[] signatureMetaNames; // positions of signature related entries, if such exist - private int[] metaVersions; // list of unique versions found in META-INF/versions/ + private Map metaVersions; // Versions found in META-INF/versions/, by entry name hash private final boolean startsWithLoc; // true, if ZIP file starts with LOCSIG (usually true) // A Hashmap for all entries. @@ -1574,7 +1564,7 @@ private void close() throws IOException { manifestPos = -1; manifestNum = 0; signatureMetaNames = null; - metaVersions = EMPTY_META_VERSIONS; + metaVersions = null; } private static final int BUF_SIZE = 8192; @@ -1759,8 +1749,6 @@ private void initCEN(int knownTotal) throws IOException { // list for all meta entries ArrayList signatureNames = null; - // Set of all version numbers seen in META-INF/versions/ - Set metaVersionsSet = null; // Iterate through the entries in the central directory int idx = 0; // Index into the entries array @@ -1799,9 +1787,19 @@ private void initCEN(int knownTotal) throws IOException { // performance in multi-release jar files int version = getMetaVersion(entryPos + META_INF_LEN, nlen - META_INF_LEN); if (version > 0) { - if (metaVersionsSet == null) - metaVersionsSet = new TreeSet<>(); - metaVersionsSet.add(version); + try { + // Compute hash code of name from "META-INF/versions/{version)/{name} + int prefixLen = META_INF_VERSIONS_LEN + DecimalDigits.stringSize(version); + int hashCode = zipCoderForPos(pos).checkedHash(cen, + entryPos + prefixLen, + nlen - prefixLen); + // Register version for this hash code + if (metaVersions == null) + metaVersions = new HashMap<>(); + metaVersions.computeIfAbsent(hashCode, _ -> new BitSet()).set(version); + } catch (Exception e) { + throw new IllegalArgumentException(e); + } } } } @@ -1819,14 +1817,8 @@ private void initCEN(int knownTotal) throws IOException { signatureMetaNames[j] = signatureNames.get(j); } } - if (metaVersionsSet != null) { - metaVersions = new int[metaVersionsSet.size()]; - int c = 0; - for (Integer version : metaVersionsSet) { - metaVersions[c++] = version; - } - } else { - metaVersions = EMPTY_META_VERSIONS; + if (metaVersions == null) { + metaVersions = Map.of(); } if (pos != cen.length) { zerror("invalid CEN header (bad header size)"); diff --git a/src/java.base/share/classes/javax/crypto/Cipher.java b/src/java.base/share/classes/javax/crypto/Cipher.java index 89b0fe7b288..2cfdcf55823 100644 --- a/src/java.base/share/classes/javax/crypto/Cipher.java +++ b/src/java.base/share/classes/javax/crypto/Cipher.java @@ -164,6 +164,10 @@ * Consult the release documentation for your implementation to see if any * other transformations are supported. * + * @spec https://www.rfc-editor.org/info/rfc5116 + * RFC 5116: An Interface and Algorithms for Authenticated Encryption + * @spec https://www.rfc-editor.org/info/rfc7539 + * RFC 7539: ChaCha20 and Poly1305 for IETF Protocols * @author Jan Luehe * @see KeyGenerator * @see SecretKey diff --git a/src/java.base/share/classes/javax/crypto/EncryptedPrivateKeyInfo.java b/src/java.base/share/classes/javax/crypto/EncryptedPrivateKeyInfo.java index e08f9945450..698548d373f 100644 --- a/src/java.base/share/classes/javax/crypto/EncryptedPrivateKeyInfo.java +++ b/src/java.base/share/classes/javax/crypto/EncryptedPrivateKeyInfo.java @@ -137,6 +137,8 @@ public EncryptedPrivateKeyInfo(byte[] encoded) throws IOException { * is empty, i.e. 0-length. * @exception NoSuchAlgorithmException if the specified algName is * not supported. + * + * @spec security/standard-names.html Java Security Standard Algorithm Names */ public EncryptedPrivateKeyInfo(String algName, byte[] encryptedData) throws NoSuchAlgorithmException { @@ -226,6 +228,8 @@ public EncryptedPrivateKeyInfo(AlgorithmParameters algParams, * for information about standard Cipher algorithm names. * * @return the encryption algorithm name. + * + * @spec security/standard-names.html Java Security Standard Algorithm Names */ public String getAlgName() { return algid == null ? params.getAlgorithm() : algid.getName(); diff --git a/src/java.base/share/classes/javax/crypto/package-info.java b/src/java.base/share/classes/javax/crypto/package-info.java index 159823f0fa7..6ab28f9d545 100644 --- a/src/java.base/share/classes/javax/crypto/package-info.java +++ b/src/java.base/share/classes/javax/crypto/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -59,6 +59,7 @@ * How to Implement a Provider in the Java Cryptography Architecture} * * + * @spec security/standard-names.html Java Security Standard Algorithm Names * @since 1.4 */ package javax.crypto; diff --git a/src/java.base/share/classes/javax/crypto/spec/ChaCha20ParameterSpec.java b/src/java.base/share/classes/javax/crypto/spec/ChaCha20ParameterSpec.java index 75c05269460..b1752ef940d 100644 --- a/src/java.base/share/classes/javax/crypto/spec/ChaCha20ParameterSpec.java +++ b/src/java.base/share/classes/javax/crypto/spec/ChaCha20ParameterSpec.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -39,6 +39,8 @@ *

    This class can be used to initialize a {@code Cipher} object that * implements the ChaCha20 algorithm. * + * @spec https://www.rfc-editor.org/info/rfc7539 + * RFC 7539: ChaCha20 and Poly1305 for IETF Protocols * @since 11 */ public final class ChaCha20ParameterSpec implements AlgorithmParameterSpec { diff --git a/src/java.base/share/classes/javax/crypto/spec/GCMParameterSpec.java b/src/java.base/share/classes/javax/crypto/spec/GCMParameterSpec.java index 879d729c2ca..bb5fe5cdd5c 100644 --- a/src/java.base/share/classes/javax/crypto/spec/GCMParameterSpec.java +++ b/src/java.base/share/classes/javax/crypto/spec/GCMParameterSpec.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -56,6 +56,12 @@ * applications. Other values can be specified for this class, but not * all CSP implementations will support them. * + * @spec https://www.rfc-editor.org/info/rfc5116 + * RFC 5116: An Interface and Algorithms for Authenticated Encryption + * @spec https://csrc.nist.gov/publications/nistpubs/800-38D/SP-800-38D.pdf + * Recommendation for Block Cipher Modes of Operation: Galois/Counter + * Mode (GCM) and GMAC + * * @see javax.crypto.Cipher * * @since 1.7 diff --git a/src/java.base/share/classes/javax/crypto/spec/OAEPParameterSpec.java b/src/java.base/share/classes/javax/crypto/spec/OAEPParameterSpec.java index efc8f370877..ba46399f044 100644 --- a/src/java.base/share/classes/javax/crypto/spec/OAEPParameterSpec.java +++ b/src/java.base/share/classes/javax/crypto/spec/OAEPParameterSpec.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -72,6 +72,8 @@ * EncodingParameters ::= OCTET STRING(SIZE(0..MAX)) * * + * @spec https://www.rfc-editor.org/info/rfc8017 + * RFC 8017: PKCS #1: RSA Cryptography Specifications Version 2.2 * @see java.security.spec.MGF1ParameterSpec * @see PSource * diff --git a/src/java.base/share/classes/javax/crypto/spec/PBEKeySpec.java b/src/java.base/share/classes/javax/crypto/spec/PBEKeySpec.java index b21b610e780..e47deab6fbe 100644 --- a/src/java.base/share/classes/javax/crypto/spec/PBEKeySpec.java +++ b/src/java.base/share/classes/javax/crypto/spec/PBEKeySpec.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -54,6 +54,8 @@ * this class requests the password as a char array, so it can be overwritten * when done. * + * @spec https://www.rfc-editor.org/info/rfc2898 + * RFC 2898: PKCS #5: Password-Based Cryptography Specification Version 2.0 * @author Jan Luehe * @author Valerie Peng * diff --git a/src/java.base/share/classes/javax/crypto/spec/PBEParameterSpec.java b/src/java.base/share/classes/javax/crypto/spec/PBEParameterSpec.java index 84d175dfd9f..a44822bafec 100644 --- a/src/java.base/share/classes/javax/crypto/spec/PBEParameterSpec.java +++ b/src/java.base/share/classes/javax/crypto/spec/PBEParameterSpec.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -33,6 +33,8 @@ * PKCS #5 * standard. * + * @spec https://www.rfc-editor.org/info/rfc2898 + * RFC 2898: PKCS #5: Password-Based Cryptography Specification Version 2.0 * @author Jan Luehe * * @since 1.4 diff --git a/src/java.base/share/classes/javax/crypto/spec/PSource.java b/src/java.base/share/classes/javax/crypto/spec/PSource.java index 1cd57c6f03b..19546a630de 100644 --- a/src/java.base/share/classes/javax/crypto/spec/PSource.java +++ b/src/java.base/share/classes/javax/crypto/spec/PSource.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -42,6 +42,9 @@ * } * EncodingParameters ::= OCTET STRING(SIZE(0..MAX)) * + * + * @spec https://www.rfc-editor.org/info/rfc8017 + * RFC 8017: PKCS #1: RSA Cryptography Specifications Version 2.2 * @author Valerie Peng * * @since 1.5 diff --git a/src/java.base/share/classes/javax/crypto/spec/RC2ParameterSpec.java b/src/java.base/share/classes/javax/crypto/spec/RC2ParameterSpec.java index 6c32ee119c5..3c2e5a57da6 100644 --- a/src/java.base/share/classes/javax/crypto/spec/RC2ParameterSpec.java +++ b/src/java.base/share/classes/javax/crypto/spec/RC2ParameterSpec.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -39,6 +39,8 @@ *

    This class can be used to initialize a {@code Cipher} object that * implements the RC2 algorithm. * + * @spec https://www.rfc-editor.org/info/rfc2268 + * RFC 2268: A Description of the RC2(r) Encryption Algorithm * @author Jan Luehe * * @since 1.4 diff --git a/src/java.base/share/classes/javax/crypto/spec/RC5ParameterSpec.java b/src/java.base/share/classes/javax/crypto/spec/RC5ParameterSpec.java index 67daf8bb19a..86d128afbf8 100644 --- a/src/java.base/share/classes/javax/crypto/spec/RC5ParameterSpec.java +++ b/src/java.base/share/classes/javax/crypto/spec/RC5ParameterSpec.java @@ -39,6 +39,8 @@ *

    This class can be used to initialize a {@code Cipher} object that * implements the RC5 algorithm. * + * @spec https://www.rfc-editor.org/info/rfc2040 + * RFC 2040: The RC5, RC5-CBC, RC5-CBC-Pad, and RC5-CTS Algorithms * @author Jan Luehe * * @since 1.4 diff --git a/src/java.base/share/classes/javax/crypto/spec/SecretKeySpec.java b/src/java.base/share/classes/javax/crypto/spec/SecretKeySpec.java index 2ad9a7748f2..d36510a21a8 100644 --- a/src/java.base/share/classes/javax/crypto/spec/SecretKeySpec.java +++ b/src/java.base/share/classes/javax/crypto/spec/SecretKeySpec.java @@ -98,6 +98,8 @@ public class SecretKeySpec implements KeySpec, SecretKey { * for information about standard algorithm names. * @exception IllegalArgumentException if algorithm * is null or key is null or empty. + * + * @spec security/standard-names.html Java Security Standard Algorithm Names */ public SecretKeySpec(byte[] key, String algorithm) { String errMsg = doSanityCheck(key, algorithm); @@ -144,6 +146,8 @@ public SecretKeySpec(byte[] key, String algorithm) { * @exception ArrayIndexOutOfBoundsException is thrown if * offset or len index bytes outside the * key. + * + * @spec security/standard-names.html Java Security Standard Algorithm Names */ public SecretKeySpec(byte[] key, int offset, int len, String algorithm) { if (key == null || algorithm == null) { diff --git a/src/java.base/share/classes/javax/net/ssl/ExtendedSSLSession.java b/src/java.base/share/classes/javax/net/ssl/ExtendedSSLSession.java index c1ddf221ab5..2b98f4845cf 100644 --- a/src/java.base/share/classes/javax/net/ssl/ExtendedSSLSession.java +++ b/src/java.base/share/classes/javax/net/ssl/ExtendedSSLSession.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -63,6 +63,7 @@ public ExtendedSSLSession() {} * order of preference. The return value is an empty array if * no signature algorithm is supported. * + * @spec security/standard-names.html Java Security Standard Algorithm Names * @see SSLParameters#getAlgorithmConstraints */ public abstract String[] getLocalSupportedSignatureAlgorithms(); @@ -86,6 +87,7 @@ public ExtendedSSLSession() {} * order of preference. The return value is an empty array if * the peer has not sent the supported signature algorithms. * + * @spec security/standard-names.html Java Security Standard Algorithm Names * @see X509KeyManager * @see X509ExtendedKeyManager */ diff --git a/src/java.base/share/classes/javax/net/ssl/SNIHostName.java b/src/java.base/share/classes/javax/net/ssl/SNIHostName.java index 5abb9df1200..039ee41aab0 100644 --- a/src/java.base/share/classes/javax/net/ssl/SNIHostName.java +++ b/src/java.base/share/classes/javax/net/ssl/SNIHostName.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -53,6 +53,11 @@ *

    * Note that {@code SNIHostName} objects are immutable. * + * @spec https://www.rfc-editor.org/info/rfc5890 + * RFC 5890: Internationalized Domain Names for Applications (IDNA): + * Definitions and Document Framework + * @spec https://www.rfc-editor.org/info/rfc6066 + * RFC 6066: Transport Layer Security (TLS) Extensions: Extension Definitions * @see SNIServerName * @see StandardConstants#SNI_HOST_NAME * @@ -92,6 +97,15 @@ public final class SNIHostName extends SNIServerName { * * @throws NullPointerException if {@code hostname} is {@code null} * @throws IllegalArgumentException if {@code hostname} is illegal + * + * @spec https://www.rfc-editor.org/info/rfc1122 + * RFC 1122: Requirements for Internet Hosts - Communication Layers + * @spec https://www.rfc-editor.org/info/rfc1123 + * RFC 1123: Requirements for Internet Hosts - Application and Support + * @spec https://www.rfc-editor.org/info/rfc3490 + * RFC 3490: Internationalizing Domain Names in Applications (IDNA) + * @spec https://www.rfc-editor.org/info/rfc6066 + * RFC 6066: Transport Layer Security (TLS) Extensions: Extension Definitions */ public SNIHostName(String hostname) { // IllegalArgumentException will be thrown if {@code hostname} is @@ -159,6 +173,17 @@ public SNIHostName(String hostname) { * * @throws NullPointerException if {@code encoded} is {@code null} * @throws IllegalArgumentException if {@code encoded} is illegal + * + * @spec https://www.rfc-editor.org/info/rfc1122 + * RFC 1122: Requirements for Internet Hosts - Communication Layers + * @spec https://www.rfc-editor.org/info/rfc1123 + * RFC 1123: Requirements for Internet Hosts - Application and Support + * @spec https://www.rfc-editor.org/info/rfc3490 + * RFC 3490: Internationalizing Domain Names in Applications (IDNA) + * @spec https://www.rfc-editor.org/info/rfc4366 + * RFC 4366: Transport Layer Security (TLS) Extensions + * @spec https://www.rfc-editor.org/info/rfc6066 + * RFC 6066: Transport Layer Security (TLS) Extensions: Extension Definitions */ public SNIHostName(byte[] encoded) { // NullPointerException will be thrown if {@code encoded} is null @@ -198,6 +223,11 @@ public SNIHostName(byte[] encoded) { * * @return the {@link StandardCharsets#US_ASCII}-compliant hostname * of this {@code SNIHostName} object + * + * @spec https://www.rfc-editor.org/info/rfc5890 + * RFC 5890: Internationalized Domain Names for Applications (IDNA): Definitions and Document Framework + * @spec https://www.rfc-editor.org/info/rfc6066 + * RFC 6066: Transport Layer Security (TLS) Extensions: Extension Definitions */ public String getAsciiName() { return hostname; @@ -215,6 +245,9 @@ public String getAsciiName() { * the other server name object to compare with. * @return true if, and only if, the {@code other} is considered * equal to this instance + * + * @spec https://www.rfc-editor.org/info/rfc6066 + * RFC 6066: Transport Layer Security (TLS) Extensions: Extension Definitions */ @Override public boolean equals(Object other) { diff --git a/src/java.base/share/classes/javax/net/ssl/SNIServerName.java b/src/java.base/share/classes/javax/net/ssl/SNIServerName.java index 142bb33de8e..85eab316664 100644 --- a/src/java.base/share/classes/javax/net/ssl/SNIServerName.java +++ b/src/java.base/share/classes/javax/net/ssl/SNIServerName.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -41,6 +41,8 @@ * {@code SNIServerName} objects are immutable. Subclasses should not provide * methods that can change the state of an instance once it has been created. * + * @spec https://www.rfc-editor.org/info/rfc6066 + * RFC 6066: Transport Layer Security (TLS) Extensions: Extension Definitions * @see SSLParameters#getServerNames() * @see SSLParameters#setServerNames(List) * diff --git a/src/java.base/share/classes/javax/net/ssl/SSLEngine.java b/src/java.base/share/classes/javax/net/ssl/SSLEngine.java index 9a74c69f9f5..27f3c31e0e9 100644 --- a/src/java.base/share/classes/javax/net/ssl/SSLEngine.java +++ b/src/java.base/share/classes/javax/net/ssl/SSLEngine.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -413,6 +413,8 @@ * because there is no way to guarantee the eventual packet ordering. * * + * @spec https://www.rfc-editor.org/info/rfc2246 + * RFC 2246: The TLS Protocol Version 1.0 * @see SSLContext * @see SSLSocket * @see SSLServerSocket @@ -859,6 +861,8 @@ public abstract SSLEngineResult unwrap(ByteBuffer src, * if this engine has not received the proper SSL/TLS/DTLS close * notification message from the peer. * + * @spec https://www.rfc-editor.org/info/rfc2246 + * RFC 2246: The TLS Protocol Version 1.0 * @see #isInboundDone() * @see #isOutboundDone() */ @@ -1351,6 +1355,8 @@ public void setSSLParameters(SSLParameters params) { * Application-Layer Protocol Negotiation (ALPN), can negotiate * application-level values between peers. * + * @spec https://www.rfc-editor.org/info/rfc7301 + * RFC 7301: Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension * @implSpec * The implementation in this class throws * {@code UnsupportedOperationException} and performs no other action. diff --git a/src/java.base/share/classes/javax/net/ssl/SSLParameters.java b/src/java.base/share/classes/javax/net/ssl/SSLParameters.java index eabf0a13f67..e1f43994064 100644 --- a/src/java.base/share/classes/javax/net/ssl/SSLParameters.java +++ b/src/java.base/share/classes/javax/net/ssl/SSLParameters.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -300,6 +300,7 @@ public String getEndpointIdentificationAlgorithm() { * Java Security Standard Algorithm Names document * for information about standard algorithm names. * + * @spec security/standard-names.html Java Security Standard Algorithm Names * @see X509ExtendedTrustManager * * @since 1.7 @@ -674,6 +675,9 @@ public String[] getApplicationProtocols() { * @throws IllegalArgumentException if protocols is null, or if * any element in a non-empty array is null or an * empty (zero-length) string + * + * @spec https://www.rfc-editor.org/info/rfc7301 + * RFC 7301: Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension * @see #getApplicationProtocols * @since 9 */ diff --git a/src/java.base/share/classes/javax/net/ssl/SSLSocket.java b/src/java.base/share/classes/javax/net/ssl/SSLSocket.java index d0c3c9ac2dd..25d572a5616 100644 --- a/src/java.base/share/classes/javax/net/ssl/SSLSocket.java +++ b/src/java.base/share/classes/javax/net/ssl/SSLSocket.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -770,6 +770,9 @@ public void setSSLParameters(SSLParameters params) { * if a value was successfully negotiated. * @throws UnsupportedOperationException if the underlying provider * does not implement the operation. + * + * @spec https://www.rfc-editor.org/info/rfc7301 + * RFC 7301: Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension * @since 9 */ public String getApplicationProtocol() { diff --git a/src/java.base/share/classes/javax/net/ssl/SSLSocketFactory.java b/src/java.base/share/classes/javax/net/ssl/SSLSocketFactory.java index bd7c3d0157a..cb5e3318052 100644 --- a/src/java.base/share/classes/javax/net/ssl/SSLSocketFactory.java +++ b/src/java.base/share/classes/javax/net/ssl/SSLSocketFactory.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -198,6 +198,8 @@ public abstract Socket createSocket(Socket s, String host, * does not implement the operation * @throws NullPointerException if {@code s} is {@code null} * + * @spec https://www.rfc-editor.org/info/rfc6066 + * RFC 6066: Transport Layer Security (TLS) Extensions: Extension Definitions * @since 1.8 */ public Socket createSocket(Socket s, InputStream consumed, diff --git a/src/java.base/share/classes/javax/net/ssl/StandardConstants.java b/src/java.base/share/classes/javax/net/ssl/StandardConstants.java index 8e1df977b97..ca560390cb1 100644 --- a/src/java.base/share/classes/javax/net/ssl/StandardConstants.java +++ b/src/java.base/share/classes/javax/net/ssl/StandardConstants.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -49,6 +49,8 @@ private StandardConstants() { *

    * The value of this constant is {@value}. * + * @spec https://www.rfc-editor.org/info/rfc6066 + * RFC 6066: Transport Layer Security (TLS) Extensions: Extension Definitions * @see SNIServerName * @see SNIHostName */ diff --git a/src/java.base/share/classes/javax/net/ssl/package-info.java b/src/java.base/share/classes/javax/net/ssl/package-info.java index f41b3b7f19a..cdf3b2246f6 100644 --- a/src/java.base/share/classes/javax/net/ssl/package-info.java +++ b/src/java.base/share/classes/javax/net/ssl/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -36,6 +36,7 @@ * * * + * @spec security/standard-names.html Java Security Standard Algorithm Names * @since 1.4 */ package javax.net.ssl; diff --git a/src/java.base/share/classes/javax/security/auth/login/package-info.java b/src/java.base/share/classes/javax/security/auth/login/package-info.java index 70d25f1acaa..658f219f20b 100644 --- a/src/java.base/share/classes/javax/security/auth/login/package-info.java +++ b/src/java.base/share/classes/javax/security/auth/login/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -33,6 +33,7 @@ * * * + * @spec security/standard-names.html Java Security Standard Algorithm Names * @since 1.4 */ package javax.security.auth.login; diff --git a/src/java.base/share/classes/javax/security/auth/x500/X500Principal.java b/src/java.base/share/classes/javax/security/auth/x500/X500Principal.java index efc5b7891b8..93e34ad65ef 100644 --- a/src/java.base/share/classes/javax/security/auth/x500/X500Principal.java +++ b/src/java.base/share/classes/javax/security/auth/x500/X500Principal.java @@ -60,6 +60,14 @@ * {@code X509Certificate} return X500Principals representing the * issuer and subject fields of the certificate. * + * @spec https://www.rfc-editor.org/info/rfc1779 + * RFC 1779: A String Representation of Distinguished Names + * @spec https://www.rfc-editor.org/info/rfc2253 + * RFC 2253: Lightweight Directory Access Protocol (v3): + * UTF-8 String Representation of Distinguished Names + * @spec https://www.rfc-editor.org/info/rfc5280 + * RFC 5280: Internet X.509 Public Key Infrastructure Certificate + * and Certificate Revocation List (CRL) Profile * @see java.security.cert.X509Certificate * @since 1.4 */ @@ -141,6 +149,10 @@ public X500Principal asX500Principal(X500Name name) { * is {@code null} * @exception IllegalArgumentException if the {@code name} * is improperly specified + * + * @spec https://www.rfc-editor.org/info/rfc4512 + * RFC 4512: Lightweight Directory Access Protocol (LDAP): + * Directory Information Models */ public X500Principal(String name) { this(name, Collections.emptyMap()); @@ -181,6 +193,10 @@ public X500Principal(String name) { * @exception IllegalArgumentException if the {@code name} is * improperly specified or a keyword in the {@code name} maps to an * OID that is not in the correct form + * + * @spec https://www.rfc-editor.org/info/rfc4512 + * RFC 4512: Lightweight Directory Access Protocol (LDAP): + * Directory Information Models * @since 1.6 */ public X500Principal(String name, Map keywordMap) { diff --git a/src/java.base/share/classes/javax/security/auth/x500/package-info.java b/src/java.base/share/classes/javax/security/auth/x500/package-info.java index 45859a79bed..b2afa89d251 100644 --- a/src/java.base/share/classes/javax/security/auth/x500/package-info.java +++ b/src/java.base/share/classes/javax/security/auth/x500/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -44,6 +44,17 @@ * Directory Information Models * * + * @spec https://www.rfc-editor.org/info/rfc1779 + * RFC 1779: A String Representation of Distinguished Names + * @spec https://www.rfc-editor.org/info/rfc2253 + * RFC 2253: Lightweight Directory Access Protocol (v3): + * UTF-8 String Representation of Distinguished Names + * @spec https://www.rfc-editor.org/info/rfc4512 + * RFC 4512: Lightweight Directory Access Protocol (LDAP): + * Directory Information Models + * @spec https://www.rfc-editor.org/info/rfc5280 + * RFC 5280: Internet X.509 Public Key Infrastructure Certificate + * and Certificate Revocation List (CRL) Profile * @since 1.4 */ package javax.security.auth.x500; diff --git a/src/java.base/share/classes/jdk/internal/access/JavaUtilZipFileAccess.java b/src/java.base/share/classes/jdk/internal/access/JavaUtilZipFileAccess.java index 2c9d904005d..9ff0f2e8b92 100644 --- a/src/java.base/share/classes/jdk/internal/access/JavaUtilZipFileAccess.java +++ b/src/java.base/share/classes/jdk/internal/access/JavaUtilZipFileAccess.java @@ -25,6 +25,7 @@ package jdk.internal.access; +import java.util.BitSet; import java.util.Enumeration; import java.util.List; import java.util.jar.JarEntry; @@ -38,7 +39,7 @@ public interface JavaUtilZipFileAccess { public List getManifestAndSignatureRelatedFiles(JarFile zip); public String getManifestName(JarFile zip, boolean onlyIfSignatureRelatedFiles); public int getManifestNum(JarFile zip); - public int[] getMetaInfVersions(JarFile zip); + public BitSet getMetaInfVersions(JarFile zip, String name); public Enumeration entries(ZipFile zip); public Stream stream(ZipFile zip); public Stream entryNameStream(ZipFile zip); diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/SplitConstantPool.java b/src/java.base/share/classes/jdk/internal/classfile/impl/SplitConstantPool.java index f0e0047f57d..0e26a8941e0 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/SplitConstantPool.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/SplitConstantPool.java @@ -34,8 +34,6 @@ import java.util.Arrays; import java.util.List; -import jdk.internal.constant.ConstantUtils; - import static java.lang.classfile.constantpool.PoolEntry.*; import static java.util.Objects.requireNonNull; diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/StackMapGenerator.java b/src/java.base/share/classes/jdk/internal/classfile/impl/StackMapGenerator.java index 85ee77b1720..d4bff1bfe80 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/StackMapGenerator.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/StackMapGenerator.java @@ -43,11 +43,10 @@ import java.util.Objects; import java.util.stream.Collectors; -import jdk.internal.constant.PrimitiveClassDescImpl; -import jdk.internal.constant.ReferenceClassDescImpl; +import jdk.internal.constant.ClassOrInterfaceDescImpl; import jdk.internal.util.Preconditions; -import static java.lang.classfile.ClassFile.ACC_STATIC; +import static java.lang.classfile.ClassFile.*; import static java.lang.classfile.constantpool.PoolEntry.*; import static java.lang.constant.ConstantDescs.*; import static jdk.internal.classfile.impl.RawBytecodeHelper.*; @@ -1059,7 +1058,7 @@ Frame pushStack(ClassDesc desc) { if (desc == CD_double) return pushStack(Type.DOUBLE_TYPE, Type.DOUBLE2_TYPE); return desc == CD_void ? this : pushStack( - desc instanceof PrimitiveClassDescImpl + desc.isPrimitive() ? (desc == CD_float ? Type.FLOAT_TYPE : Type.INTEGER_TYPE) : Type.referenceType(desc)); } @@ -1069,7 +1068,7 @@ Frame dec1PushStack(ClassDesc desc) { if (desc == CD_double) return decStack1PushStack(Type.DOUBLE_TYPE, Type.DOUBLE2_TYPE); return desc == CD_void ? this : decStack1PushStack( - desc instanceof PrimitiveClassDescImpl + desc.isPrimitive() ? (desc == CD_float ? Type.FLOAT_TYPE : Type.INTEGER_TYPE) : Type.referenceType(desc)); } @@ -1274,7 +1273,7 @@ void setLocalsFromArg(String name, MethodTypeDesc methodDesc, boolean isStatic, locals[localsSize + 1] = Type.DOUBLE2_TYPE; localsSize += 2; } else { - if (desc instanceof ReferenceClassDescImpl) { + if (!desc.isPrimitive()) { type = Type.referenceType(desc); } else if (desc == CD_float) { type = Type.FLOAT_TYPE; @@ -1459,14 +1458,14 @@ private static record Type(int tag, ClassDesc sym, int bci) { //frequently used types to reduce footprint static final Type OBJECT_TYPE = referenceType(CD_Object), THROWABLE_TYPE = referenceType(CD_Throwable), - INT_ARRAY_TYPE = referenceType(ReferenceClassDescImpl.ofValidated("[I")), - BOOLEAN_ARRAY_TYPE = referenceType(ReferenceClassDescImpl.ofValidated("[Z")), - BYTE_ARRAY_TYPE = referenceType(ReferenceClassDescImpl.ofValidated("[B")), - CHAR_ARRAY_TYPE = referenceType(ReferenceClassDescImpl.ofValidated("[C")), - SHORT_ARRAY_TYPE = referenceType(ReferenceClassDescImpl.ofValidated("[S")), - LONG_ARRAY_TYPE = referenceType(ReferenceClassDescImpl.ofValidated("[J")), - DOUBLE_ARRAY_TYPE = referenceType(ReferenceClassDescImpl.ofValidated("[D")), - FLOAT_ARRAY_TYPE = referenceType(ReferenceClassDescImpl.ofValidated("[F")), + INT_ARRAY_TYPE = referenceType(CD_int.arrayType()), + BOOLEAN_ARRAY_TYPE = referenceType(CD_boolean.arrayType()), + BYTE_ARRAY_TYPE = referenceType(CD_byte.arrayType()), + CHAR_ARRAY_TYPE = referenceType(CD_char.arrayType()), + SHORT_ARRAY_TYPE = referenceType(CD_short.arrayType()), + LONG_ARRAY_TYPE = referenceType(CD_long.arrayType()), + DOUBLE_ARRAY_TYPE = referenceType(CD_double.arrayType()), + FLOAT_ARRAY_TYPE = referenceType(CD_float.arrayType()), STRING_TYPE = referenceType(CD_String), CLASS_TYPE = referenceType(CD_Class), METHOD_HANDLE_TYPE = referenceType(CD_MethodHandle), @@ -1531,8 +1530,8 @@ Type mergeComponentFrom(Type from, ClassHierarchyImpl context) { } } - private static final ClassDesc CD_Cloneable = ReferenceClassDescImpl.ofValidated("Ljava/lang/Cloneable;"); - private static final ClassDesc CD_Serializable = ReferenceClassDescImpl.ofValidated("Ljava/io/Serializable;"); + private static final ClassDesc CD_Cloneable = ClassOrInterfaceDescImpl.ofValidated("Ljava/lang/Cloneable;"); + private static final ClassDesc CD_Serializable = ClassOrInterfaceDescImpl.ofValidated("Ljava/io/Serializable;"); private Type mergeReferenceFrom(Type from, ClassHierarchyImpl context) { if (from == NULL_TYPE) { diff --git a/src/java.base/share/classes/jdk/internal/classfile/impl/Util.java b/src/java.base/share/classes/jdk/internal/classfile/impl/Util.java index 848d153c24b..1088724d8b4 100644 --- a/src/java.base/share/classes/jdk/internal/classfile/impl/Util.java +++ b/src/java.base/share/classes/jdk/internal/classfile/impl/Util.java @@ -42,7 +42,7 @@ import java.util.function.Function; import jdk.internal.access.SharedSecrets; -import jdk.internal.constant.ReferenceClassDescImpl; +import jdk.internal.constant.ClassOrInterfaceDescImpl; import jdk.internal.vm.annotation.ForceInline; import jdk.internal.vm.annotation.Stable; @@ -134,8 +134,8 @@ public static String toBinaryName(ClassDesc cd) { } public static String toInternalName(ClassDesc cd) { - if (cd instanceof ReferenceClassDescImpl rcd) { - return rcd.internalName(); + if (cd instanceof ClassOrInterfaceDescImpl coi) { + return coi.internalName(); } throw new IllegalArgumentException(cd.descriptorString()); } diff --git a/src/java.base/share/classes/jdk/internal/constant/ArrayClassDescImpl.java b/src/java.base/share/classes/jdk/internal/constant/ArrayClassDescImpl.java new file mode 100644 index 00000000000..763975cb76b --- /dev/null +++ b/src/java.base/share/classes/jdk/internal/constant/ArrayClassDescImpl.java @@ -0,0 +1,155 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package jdk.internal.constant; + +import java.lang.constant.ClassDesc; +import java.lang.invoke.MethodHandles; + +import jdk.internal.vm.annotation.Stable; +import sun.invoke.util.Wrapper; + +import static java.lang.constant.ConstantDescs.CD_void; +import static jdk.internal.constant.ConstantUtils.MAX_ARRAY_TYPE_DESC_DIMENSIONS; + +/** + * An array class descriptor. + * Restrictions:

      + *
    • {@code rank} must be in {@code [1, 255]} + *
    • {@code element} must not be void or array + *
    + */ +public final class ArrayClassDescImpl implements ClassDesc { + private final ClassDesc elementType; + private final int rank; + private @Stable String cachedDescriptorString; + + public static ArrayClassDescImpl ofValidatedDescriptor(String desc) { + assert desc.charAt(0) == '['; + var lastChar = desc.charAt(desc.length() - 1); + ArrayClassDescImpl ret; + if (lastChar != ';') { + // Primitive element arrays + ret = ofValidated(Wrapper.forBasicType(lastChar).basicClassDescriptor(), desc.length() - 1); + } else { + int level = ConstantUtils.arrayDepth(desc, 0); + ret = ofValidated(ClassOrInterfaceDescImpl.ofValidated(desc.substring(level)), level); + } + ret.cachedDescriptorString = desc; + return ret; + } + + public static ArrayClassDescImpl ofValidated(ClassDesc elementType, int rank) { + assert !elementType.isArray() && elementType != CD_void; + assert rank > 0 && rank <= MAX_ARRAY_TYPE_DESC_DIMENSIONS; + + return new ArrayClassDescImpl(elementType, rank); + } + + private ArrayClassDescImpl(ClassDesc elementType, int rank) { + this.elementType = elementType; + this.rank = rank; + } + + @Override + public ClassDesc arrayType() { + int rank = this.rank + 1; + if (rank > MAX_ARRAY_TYPE_DESC_DIMENSIONS) + throw new IllegalStateException(ConstantUtils.invalidArrayRankMessage(rank)); + return new ArrayClassDescImpl(elementType, rank); + } + + @Override + public ClassDesc arrayType(int rank) { + if (rank <= 0) { + throw new IllegalArgumentException("rank " + rank + " is not a positive value"); + } + rank += this.rank; + ConstantUtils.validateArrayRank(rank); + return new ArrayClassDescImpl(elementType, rank); + } + + @Override + public boolean isArray() { + return true; + } + + @Override + public ClassDesc componentType() { + return rank == 1 ? elementType : new ArrayClassDescImpl(elementType, rank - 1); + } + + @Override + public String displayName() { + return elementType.displayName() + "[]".repeat(rank); + } + + @Override + public String descriptorString() { + var desc = cachedDescriptorString; + if (desc != null) + return desc; + + return cachedDescriptorString = computeDescriptor(); + } + + private String computeDescriptor() { + var componentDesc = elementType.descriptorString(); + StringBuilder sb = new StringBuilder(rank + componentDesc.length()); + sb.repeat('[', rank); + sb.append(componentDesc); + return sb.toString(); + } + + @Override + public Class resolveConstantDesc(MethodHandles.Lookup lookup) throws ReflectiveOperationException { + if (elementType.isPrimitive()) { + return lookup.findClass(descriptorString()); + } + // Class.forName is slow on class or interface arrays + Class clazz = elementType.resolveConstantDesc(lookup); + for (int i = 0; i < rank; i++) + clazz = clazz.arrayType(); + return clazz; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o instanceof ArrayClassDescImpl constant) { + return elementType.equals(constant.elementType) && rank == constant.rank; + } + return false; + } + + @Override + public int hashCode() { + return descriptorString().hashCode(); + } + + @Override + public String toString() { + return String.format("ArrayClassDesc[%s, %d]", elementType.displayName(), rank); + } +} diff --git a/src/java.base/share/classes/jdk/internal/constant/ClassOrInterfaceDescImpl.java b/src/java.base/share/classes/jdk/internal/constant/ClassOrInterfaceDescImpl.java new file mode 100644 index 00000000000..dcdb2cff8b5 --- /dev/null +++ b/src/java.base/share/classes/jdk/internal/constant/ClassOrInterfaceDescImpl.java @@ -0,0 +1,162 @@ +/* + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package jdk.internal.constant; + +import java.lang.constant.ClassDesc; +import java.lang.invoke.MethodHandles; + +import jdk.internal.vm.annotation.Stable; + +import static jdk.internal.constant.ConstantUtils.*; + +/** + * A class or interface descriptor. + * Restrictions: + *
      + *
    • Starts with 'L' + *
    • Ends with ';' + *
    • No '.' or '[' or ';' in the middle + *
    • No leading/trailing/consecutive '/' + *
    + */ +public final class ClassOrInterfaceDescImpl implements ClassDesc { + private final String descriptor; + private @Stable String internalName; + + /** + * Creates a {@linkplain ClassOrInterfaceDescImpl} from a pre-validated descriptor string + * for a class or interface. + */ + public static ClassOrInterfaceDescImpl ofValidated(String descriptor) { + assert ConstantUtils.skipOverFieldSignature(descriptor, 0, descriptor.length()) + == descriptor.length() : descriptor; + assert descriptor.charAt(0) == 'L'; + return new ClassOrInterfaceDescImpl(descriptor); + } + + ClassOrInterfaceDescImpl(String descriptor) { + this.descriptor = descriptor; + } + + public String internalName() { + var internalName = this.internalName; + if (internalName == null) { + this.internalName = internalName = dropFirstAndLastChar(descriptor); + } + return internalName; + } + + @Override + public ClassDesc arrayType(int rank) { + ConstantUtils.validateArrayRank(rank); + return ArrayClassDescImpl.ofValidated(this, rank); + } + + @Override + public ClassDesc arrayType() { + return ArrayClassDescImpl.ofValidated(this, 1); + } + + @Override + public ClassDesc nested(String nestedName) { + validateMemberName(nestedName, false); + String desc = descriptorString(); + StringBuilder sb = new StringBuilder(desc.length() + nestedName.length() + 1); + sb.append(desc, 0, desc.length() - 1).append('$').append(nestedName).append(';'); + return ofValidated(sb.toString()); + } + + @Override + public ClassDesc nested(String firstNestedName, String... moreNestedNames) { + validateMemberName(firstNestedName, false); + // implicit null-check + for (String addNestedNames : moreNestedNames) { + validateMemberName(addNestedNames, false); + } + return moreNestedNames.length == 0 + ? nested(firstNestedName) + : nested(firstNestedName + "$" + String.join("$", moreNestedNames)); + + } + + @Override + public boolean isClassOrInterface() { + return true; + } + + @Override + public String packageName() { + String desc = descriptorString(); + int index = desc.lastIndexOf('/'); + return (index == -1) ? "" : internalToBinary(desc.substring(1, index)); + } + + @Override + public String displayName() { + String desc = descriptorString(); + return desc.substring(Math.max(1, desc.lastIndexOf('/') + 1), desc.length() - 1); + } + + @Override + public String descriptorString() { + return descriptor; + } + + @Override + public Class resolveConstantDesc(MethodHandles.Lookup lookup) + throws ReflectiveOperationException { + return lookup.findClass(internalToBinary(internalName())); + } + + /** + * Returns {@code true} if this {@linkplain ClassOrInterfaceDescImpl} is + * equal to another {@linkplain ClassOrInterfaceDescImpl}. Equality is + * determined by the two class descriptors having equal class descriptor + * strings. + * + * @param o the {@code ClassDesc} to compare to this + * {@code ClassDesc} + * @return {@code true} if the specified {@code ClassDesc} + * is equal to this {@code ClassDesc}. + */ + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o instanceof ClassOrInterfaceDescImpl constant) { + return descriptor.equals(constant.descriptor); + } + return false; + } + + @Override + public int hashCode() { + return descriptor.hashCode(); + } + + @Override + public String toString() { + return String.format("ClassOrInterfaceDesc[%s]", displayName()); + } +} diff --git a/src/java.base/share/classes/jdk/internal/constant/ConstantUtils.java b/src/java.base/share/classes/jdk/internal/constant/ConstantUtils.java index 5640f849ab6..21791937649 100644 --- a/src/java.base/share/classes/jdk/internal/constant/ConstantUtils.java +++ b/src/java.base/share/classes/jdk/internal/constant/ConstantUtils.java @@ -24,6 +24,7 @@ */ package jdk.internal.constant; +import jdk.internal.vm.annotation.Stable; import sun.invoke.util.Wrapper; import java.lang.constant.ClassDesc; @@ -31,8 +32,6 @@ import java.lang.constant.ConstantDescs; import java.lang.constant.MethodTypeDesc; import java.lang.invoke.MethodType; -import java.util.ArrayList; -import java.util.List; import java.util.Set; import jdk.internal.access.JavaLangAccess; @@ -50,6 +49,7 @@ public final class ConstantUtils { public static final ClassDesc[] EMPTY_CLASSDESC = new ClassDesc[0]; public static final int MAX_ARRAY_TYPE_DESC_DIMENSIONS = 255; public static final ClassDesc CD_module_info = binaryNameToDesc("module-info"); + public static @Stable ClassDesc CD_Object_array; // set from ConstantDescs, avoid circular initialization private static final Set pointyNames = Set.of(ConstantDescs.INIT_NAME, ConstantDescs.CLASS_INIT_NAME); @@ -70,7 +70,18 @@ private ConstantUtils() {} * @param binaryName a binary name */ public static ClassDesc binaryNameToDesc(String binaryName) { - return ReferenceClassDescImpl.ofValidated(concat("L", binaryToInternal(binaryName), ";")); + return internalNameToDesc(binaryToInternal(binaryName)); + } + + /** + * Creates a {@linkplain ClassDesc} from a pre-validated internal name + * for a class or interface type. Validated version of {@link + * ClassDesc#ofInternalName(String)}. + * + * @param internalName a binary name + */ + public static ClassDesc internalNameToDesc(String internalName) { + return ClassOrInterfaceDescImpl.ofValidated(concat("L", internalName, ";")); } /** @@ -91,7 +102,21 @@ public static ClassDesc classDesc(Class type) { * class or interface or an array type with a non-hidden component type. */ public static ClassDesc referenceClassDesc(Class type) { - return ReferenceClassDescImpl.ofValidated(type.descriptorString()); + return referenceClassDesc(type.descriptorString()); + } + + /** + * Creates a {@linkplain ClassDesc} from a pre-validated descriptor string + * for a class or interface type or an array type. + * + * @param descriptor a field descriptor string for a class or interface type + * @jvms 4.3.2 Field Descriptors + */ + public static ClassDesc referenceClassDesc(String descriptor) { + if (descriptor.charAt(0) == '[') { + return ArrayClassDescImpl.ofValidatedDescriptor(descriptor); + } + return ClassOrInterfaceDescImpl.ofValidated(descriptor); } /** @@ -128,6 +153,26 @@ public static MethodTypeDesc methodTypeDesc(Class returnType, Class[] para return MethodTypeDescImpl.ofValidated(returnDesc, paramDescs); } + /** + * Creates a {@linkplain ClassDesc} from a descriptor string for a class or + * interface type or an array type. + * + * @param descriptor a field descriptor string for a class or interface type + * @throws IllegalArgumentException if the descriptor string is not a valid + * field descriptor string, or does not describe a class or interface type + * @jvms 4.3.2 Field Descriptors + */ + public static ClassDesc parseReferenceTypeDesc(String descriptor) { + int dLen = descriptor.length(); + int len = ConstantUtils.skipOverFieldSignature(descriptor, 0, dLen); + if (len <= 1 || len != dLen) + throw new IllegalArgumentException(String.format("not a valid reference type descriptor: %s", descriptor)); + if (descriptor.charAt(0) == '[') { + return ArrayClassDescImpl.ofValidatedDescriptor(descriptor); + } + return ClassOrInterfaceDescImpl.ofValidated(descriptor); + } + /** * Validates the correctness of a binary class name. In particular checks for the presence of * invalid characters in the name. @@ -140,8 +185,9 @@ public static MethodTypeDesc methodTypeDesc(Class returnType, Class[] para public static String validateBinaryClassName(String name) { for (int i = 0; i < name.length(); i++) { char ch = name.charAt(i); - if (ch == ';' || ch == '[' || ch == '/') - throw new IllegalArgumentException("Invalid class name: " + name); + if (ch == ';' || ch == '[' || ch == '/' + || ch == '.' && (i == 0 || i + 1 == name.length() || name.charAt(i - 1) == '.')) + throw invalidClassName(name); } return name; } @@ -158,8 +204,9 @@ public static String validateBinaryClassName(String name) { public static String validateInternalClassName(String name) { for (int i = 0; i < name.length(); i++) { char ch = name.charAt(i); - if (ch == ';' || ch == '[' || ch == '.') - throw new IllegalArgumentException("Invalid class name: " + name); + if (ch == ';' || ch == '[' || ch == '.' + || ch == '/' && (i == 0 || i + 1 == name.length() || name.charAt(i - 1) == '/')) + throw invalidClassName(name); } return name; } @@ -256,10 +303,24 @@ public static void validateClassOrInterface(ClassDesc classDesc) { throw new IllegalArgumentException("not a class or interface type: " + classDesc); } - public static int arrayDepth(String descriptorString) { + public static void validateArrayRank(int rank) { + // array rank must be representable with u1 and nonzero + if (rank == 0 || (rank & ~0xFF) != 0) { + throw new IllegalArgumentException(invalidArrayRankMessage(rank)); + } + } + + /** + * Retrieves the array depth on a trusted descriptor. + * Uses a simple loop with the assumption that most descriptors have + * 0 or very low array depths. + */ + public static int arrayDepth(String descriptorString, int off) { int depth = 0; - while (descriptorString.charAt(depth) == '[') + while (descriptorString.charAt(off) == '[') { depth++; + off++; + } return depth; } @@ -296,7 +357,22 @@ static ClassDesc resolveClassDesc(String descriptor, int start, int len) { } // Pre-verified in MethodTypeDescImpl#ofDescriptor; avoid redundant verification - return ReferenceClassDescImpl.ofValidated(descriptor.substring(start, start + len)); + int arrayDepth = arrayDepth(descriptor, start); + if (arrayDepth == 0) { + return ClassOrInterfaceDescImpl.ofValidated(descriptor.substring(start, start + len)); + } else if (arrayDepth + 1 == len) { + return ArrayClassDescImpl.ofValidated(forPrimitiveType(descriptor, start + arrayDepth), arrayDepth); + } else { + return ArrayClassDescImpl.ofValidated(ClassOrInterfaceDescImpl.ofValidated(descriptor.substring(start + arrayDepth, start + len)), arrayDepth); + } + } + + static String invalidArrayRankMessage(int rank) { + return "Array rank must be within [1, 255]: " + rank; + } + + static IllegalArgumentException invalidClassName(String className) { + return new IllegalArgumentException("Invalid class name: ".concat(className)); } static IllegalArgumentException badMethodDescriptor(String descriptor) { diff --git a/src/java.base/share/classes/jdk/internal/constant/MethodTypeDescImpl.java b/src/java.base/share/classes/jdk/internal/constant/MethodTypeDescImpl.java index 6f59c476a6b..826fc095bbd 100644 --- a/src/java.base/share/classes/jdk/internal/constant/MethodTypeDescImpl.java +++ b/src/java.base/share/classes/jdk/internal/constant/MethodTypeDescImpl.java @@ -39,13 +39,13 @@ import java.util.List; import java.util.Objects; +import static java.lang.constant.ConstantDescs.CD_void; import static java.util.Objects.requireNonNull; import static jdk.internal.constant.ConstantUtils.badMethodDescriptor; import static jdk.internal.constant.ConstantUtils.resolveClassDesc; import static jdk.internal.constant.ConstantUtils.skipOverFieldSignature; import static jdk.internal.constant.ConstantUtils.EMPTY_CLASSDESC; -import static jdk.internal.constant.PrimitiveClassDescImpl.CD_void; /** * A nominal descriptor for a @@ -86,7 +86,7 @@ public static MethodTypeDescImpl ofTrusted(ClassDesc returnType, ClassDesc[] tru } private static ClassDesc validateArgument(ClassDesc arg) { - if (arg.descriptorString().charAt(0) == 'V') // implicit null check + if (requireNonNull(arg) == CD_void) throw new IllegalArgumentException("Void parameters not permitted"); return arg; } diff --git a/src/java.base/share/classes/jdk/internal/constant/PrimitiveClassDescImpl.java b/src/java.base/share/classes/jdk/internal/constant/PrimitiveClassDescImpl.java index 35aa4007816..31ad92a2736 100644 --- a/src/java.base/share/classes/jdk/internal/constant/PrimitiveClassDescImpl.java +++ b/src/java.base/share/classes/jdk/internal/constant/PrimitiveClassDescImpl.java @@ -93,6 +93,31 @@ public Wrapper wrapper() { return this.lazyWrapper = Wrapper.forBasicType(descriptorString().charAt(0)); } + @Override + public boolean isPrimitive() { + return true; + } + + @Override + public ClassDesc arrayType(int rank) { + ConstantUtils.validateArrayRank(rank); + if (this == CD_void) + throw new IllegalArgumentException("not a valid reference type descriptor: " + "[".repeat(rank) + "V"); + return ArrayClassDescImpl.ofValidated(this, rank); + } + + @Override + public ClassDesc arrayType() { + if (this == CD_void) + throw new IllegalArgumentException("not a valid reference type descriptor: [V"); + return ArrayClassDescImpl.ofValidated(this, 1); + } + + @Override + public String displayName() { + return wrapper().primitiveSimpleName(); + } + @Override public String descriptorString() { return descriptor; diff --git a/src/java.base/share/classes/jdk/internal/constant/ReferenceClassDescImpl.java b/src/java.base/share/classes/jdk/internal/constant/ReferenceClassDescImpl.java deleted file mode 100644 index 8124abc6b75..00000000000 --- a/src/java.base/share/classes/jdk/internal/constant/ReferenceClassDescImpl.java +++ /dev/null @@ -1,147 +0,0 @@ -/* - * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ -package jdk.internal.constant; - -import java.lang.constant.ClassDesc; -import java.lang.invoke.MethodHandles; - -import jdk.internal.vm.annotation.Stable; -import static jdk.internal.constant.ConstantUtils.*; - -/** - * A nominal descriptor for a class, - * interface, or array type. A {@linkplain ReferenceClassDescImpl} corresponds to a - * {@code Constant_Class_info} entry in the constant pool of a classfile. - */ -public final class ReferenceClassDescImpl implements ClassDesc { - private final String descriptor; - private @Stable String internalName; - - private ReferenceClassDescImpl(String descriptor) { - this.descriptor = descriptor; - } - - /** - * Creates a {@linkplain ClassDesc} from a descriptor string for a class or - * interface type or an array type. - * - * @param descriptor a field descriptor string for a class or interface type - * @throws IllegalArgumentException if the descriptor string is not a valid - * field descriptor string, or does not describe a class or interface type - * @jvms 4.3.2 Field Descriptors - */ - public static ReferenceClassDescImpl of(String descriptor) { - int dLen = descriptor.length(); - int len = ConstantUtils.skipOverFieldSignature(descriptor, 0, dLen); - if (len <= 1 || len != dLen) - throw new IllegalArgumentException(String.format("not a valid reference type descriptor: %s", descriptor)); - return new ReferenceClassDescImpl(descriptor); - } - - /** - * Creates a {@linkplain ClassDesc} from a pre-validated descriptor string - * for a class or interface type or an array type. - * - * @param descriptor a field descriptor string for a class or interface type - * @jvms 4.3.2 Field Descriptors - */ - public static ReferenceClassDescImpl ofValidated(String descriptor) { - assert ConstantUtils.skipOverFieldSignature(descriptor, 0, descriptor.length()) - == descriptor.length() : descriptor; - return new ReferenceClassDescImpl(descriptor); - } - - @Override - public String descriptorString() { - return descriptor; - } - - public String internalName() { - var internalName = this.internalName; - if (internalName == null) { - var desc = this.descriptor; - this.internalName = internalName = desc.charAt(0) == 'L' ? dropFirstAndLastChar(desc) : desc; - } - - return internalName; - } - - @Override - public Class resolveConstantDesc(MethodHandles.Lookup lookup) - throws ReflectiveOperationException { - if (isArray()) { - if (isPrimitiveArray()) { - return lookup.findClass(descriptor); - } - // Class.forName is slow on class or interface arrays - int depth = ConstantUtils.arrayDepth(descriptor); - Class clazz = lookup.findClass(internalToBinary(descriptor.substring(depth + 1, descriptor.length() - 1))); - for (int i = 0; i < depth; i++) - clazz = clazz.arrayType(); - return clazz; - } - return lookup.findClass(internalToBinary(internalName())); - } - - /** - * Whether the descriptor is one of a primitive array, given this is - * already a valid reference type descriptor. - */ - private boolean isPrimitiveArray() { - // All L-type descriptors must end with a semicolon; same for reference - // arrays, leaving primitive arrays the only ones without a final semicolon - return descriptor.charAt(descriptor.length() - 1) != ';'; - } - - /** - * Returns {@code true} if this {@linkplain ReferenceClassDescImpl} is - * equal to another {@linkplain ReferenceClassDescImpl}. Equality is - * determined by the two class descriptors having equal class descriptor - * strings. - * - * @param o the {@code ClassDesc} to compare to this - * {@code ClassDesc} - * @return {@code true} if the specified {@code ClassDesc} - * is equal to this {@code ClassDesc}. - */ - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o instanceof ReferenceClassDescImpl constant) { - return descriptor.equals(constant.descriptor); - } - return false; - } - - @Override - public int hashCode() { - return descriptor.hashCode(); - } - - @Override - public String toString() { - return String.format("ClassDesc[%s]", displayName()); - } -} diff --git a/src/java.base/share/classes/jdk/internal/foreign/abi/BindingSpecializer.java b/src/java.base/share/classes/jdk/internal/foreign/abi/BindingSpecializer.java index f1e1d1728d8..41d7e3339d5 100644 --- a/src/java.base/share/classes/jdk/internal/foreign/abi/BindingSpecializer.java +++ b/src/java.base/share/classes/jdk/internal/foreign/abi/BindingSpecializer.java @@ -24,6 +24,7 @@ */ package jdk.internal.foreign.abi; +import java.lang.classfile.Annotation; import java.lang.classfile.ClassFile; import java.lang.classfile.CodeBuilder; import java.lang.classfile.Label; @@ -46,10 +47,13 @@ import jdk.internal.foreign.abi.Binding.ShiftRight; import jdk.internal.foreign.abi.Binding.VMLoad; import jdk.internal.foreign.abi.Binding.VMStore; +import jdk.internal.vm.annotation.ForceInline; import sun.security.action.GetBooleanAction; +import sun.security.action.GetIntegerAction; import sun.security.action.GetPropertyAction; import java.io.IOException; +import java.lang.classfile.attribute.RuntimeVisibleAnnotationsAttribute; import java.lang.constant.ClassDesc; import java.lang.constant.ConstantDesc; import java.lang.constant.DynamicConstantDesc; @@ -77,6 +81,8 @@ public class BindingSpecializer { = GetPropertyAction.privilegedGetProperty("jdk.internal.foreign.abi.Specializer.DUMP_CLASSES_DIR"); private static final boolean PERFORM_VERIFICATION = GetBooleanAction.privilegedGetProperty("jdk.internal.foreign.abi.Specializer.PERFORM_VERIFICATION"); + private static final int SCOPE_DEDUP_DEPTH + = GetIntegerAction.privilegedGetProperty("jdk.internal.foreign.abi.Specializer.SCOPE_DEDUP_DEPTH", 2); // Bunch of helper constants private static final int CLASSFILE_VERSION = ClassFileFormatVersion.latest().major(); @@ -99,6 +105,7 @@ public class BindingSpecializer { private static final ClassDesc CD_ValueLayout_OfFloat = referenceClassDesc(ValueLayout.OfFloat.class); private static final ClassDesc CD_ValueLayout_OfDouble = referenceClassDesc(ValueLayout.OfDouble.class); private static final ClassDesc CD_AddressLayout = referenceClassDesc(AddressLayout.class); + private static final ClassDesc CD_ForceInline = referenceClassDesc(ForceInline.class); private static final MethodTypeDesc MTD_NEW_BOUNDED_ARENA = MethodTypeDesc.of(CD_Arena, CD_long); private static final MethodTypeDesc MTD_NEW_EMPTY_ARENA = MethodTypeDesc.of(CD_Arena); @@ -196,8 +203,9 @@ private static byte[] specializeHelper(MethodType leafType, MethodType callerMet clb.withFlags(ACC_PUBLIC + ACC_FINAL + ACC_SUPER) .withSuperclass(CD_Object) .withVersion(CLASSFILE_VERSION, 0) - .withMethodBody(METHOD_NAME, methodTypeDesc(callerMethodType), ACC_PUBLIC | ACC_STATIC, - cb -> new BindingSpecializer(cb, callerMethodType, callingSequence, abi, leafType).specialize()); + .withMethod(METHOD_NAME, methodTypeDesc(callerMethodType), ACC_PUBLIC | ACC_STATIC, + mb -> mb.with(RuntimeVisibleAnnotationsAttribute.of(Annotation.of(CD_ForceInline))) + .withCode(cb -> new BindingSpecializer(cb, callerMethodType, callingSequence, abi, leafType).specialize())); }); if (DUMP_CLASSES_DIR != null) { @@ -502,11 +510,19 @@ private void emitAcquireScope() { // start with 1 scope to maybe acquire on the stack assert curScopeLocalIdx != -1; - boolean hasOtherScopes = curScopeLocalIdx != 0; - for (int i = 0; i < curScopeLocalIdx; i++) { + boolean hasLookup = false; + + // Here we check if the current scope has not been already acquired. + // To do that, we generate many comparisons (one per cached scope). + // Note that we always skip comparisons against the very first cached scope + // (as that is the function address, which typically belongs to another scope). + // We also stop the comparisons at SCOPE_DEDUP_DEPTH, to keep a lid on the size + // of the generated code. + for (int i = 1; i < curScopeLocalIdx && i <= SCOPE_DEDUP_DEPTH; i++) { cb.dup() // dup for comparison .aload(scopeSlots[i]) .if_acmpeq(skipAcquire); + hasLookup = true; } // 1 scope to acquire on the stack @@ -516,10 +532,10 @@ private void emitAcquireScope() { cb.invokevirtual(CD_MemorySessionImpl, "acquire0", MTD_ACQUIRE0) // call acquire on the other .astore(nextScopeLocal); // store off one to release later - if (hasOtherScopes) { // avoid ASM generating a bunch of nops for the dead code + if (hasLookup) { // avoid ASM generating a bunch of nops for the dead code cb.goto_(end) - .labelBinding(skipAcquire) - .pop(); // drop scope + .labelBinding(skipAcquire) + .pop(); // drop scope } cb.labelBinding(end); diff --git a/src/java.base/share/classes/jdk/internal/javac/PreviewFeature.java b/src/java.base/share/classes/jdk/internal/javac/PreviewFeature.java index 05049effef8..c6ae5b13787 100644 --- a/src/java.base/share/classes/jdk/internal/javac/PreviewFeature.java +++ b/src/java.base/share/classes/jdk/internal/javac/PreviewFeature.java @@ -64,11 +64,10 @@ * Values should be annotated with the feature's {@code JEP}. */ public enum Feature { - // not used, but required for interim javac to not warn. - VIRTUAL_THREADS, - FOREIGN, - @JEP(number=459, title="String Templates", status="Second Preview") - STRING_TEMPLATES, + // while building the interim javac, the ClassReader will produce a warning when loading a class + // keeping the constant of a feature that has been integrated or dropped, serves the purpose of muting such warnings. + + //--- @JEP(number=477, title="Implicitly Declared Classes and Instance Main Methods", status="Third Preview") IMPLICIT_CLASSES, @JEP(number=481, title="Scoped Values", status="Third Preview") diff --git a/src/java.base/share/classes/jdk/internal/module/ModuleLoaderMap.java b/src/java.base/share/classes/jdk/internal/module/ModuleLoaderMap.java index a8b5eda709e..e48624bc524 100644 --- a/src/java.base/share/classes/jdk/internal/module/ModuleLoaderMap.java +++ b/src/java.base/share/classes/jdk/internal/module/ModuleLoaderMap.java @@ -51,32 +51,31 @@ private static final class Mapper implements Function { private static final ClassLoader APP_CLASSLOADER = ClassLoaders.appClassLoader(); - private static final Integer PLATFORM_LOADER_INDEX = 1; - private static final Integer APP_LOADER_INDEX = 2; + private static final String PLATFORM_LOADER_NAME = "PLATFORM"; + private static final String APP_LOADER_NAME = "APP"; /** - * Map from module to a class loader index. The index is resolved to the + * Map from module name to class loader name. The name is resolved to the * actual class loader in {@code apply}. */ - private final Map map; + private final Map map; /** * Creates a Mapper to map module names in the given Configuration to * built-in classloaders. * * As a proxy for the actual classloader, we store an easily archiveable - * index value in the internal map. The index is stored as a boxed value - * so that we can cheaply do identity comparisons during bootstrap. + * loader name in the internal map. */ Mapper(Configuration cf) { - var map = new HashMap(); + var map = new HashMap(); for (ResolvedModule resolvedModule : cf.modules()) { String mn = resolvedModule.name(); if (!Modules.bootModules.contains(mn)) { if (Modules.platformModules.contains(mn)) { - map.put(mn, PLATFORM_LOADER_INDEX); + map.put(mn, PLATFORM_LOADER_NAME); } else { - map.put(mn, APP_LOADER_INDEX); + map.put(mn, APP_LOADER_NAME); } } } @@ -85,12 +84,12 @@ private static final class Mapper implements Function { @Override public ClassLoader apply(String name) { - Integer loader = map.get(name); - if (loader == APP_LOADER_INDEX) { + String loader = map.get(name); + if (APP_LOADER_NAME.equals(loader)) { return APP_CLASSLOADER; - } else if (loader == PLATFORM_LOADER_INDEX) { + } else if (PLATFORM_LOADER_NAME.equals(loader)) { return PLATFORM_CLASSLOADER; - } else { // BOOT_LOADER_INDEX + } else { return null; } } diff --git a/src/java.base/share/classes/jdk/internal/reflect/AccessorGenerator.java b/src/java.base/share/classes/jdk/internal/reflect/AccessorGenerator.java deleted file mode 100644 index d87e0fd167f..00000000000 --- a/src/java.base/share/classes/jdk/internal/reflect/AccessorGenerator.java +++ /dev/null @@ -1,722 +0,0 @@ -/* - * Copyright (c) 2001, 2023, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package jdk.internal.reflect; - -import java.lang.reflect.*; -import jdk.internal.misc.Unsafe; - -/** Shared functionality for all accessor generators */ - -class AccessorGenerator implements ClassFileConstants { - static final Unsafe unsafe = Unsafe.getUnsafe(); - - // Constants because there's no way to say "short integer constant", - // i.e., "1S" - protected static final short S0 = (short) 0; - protected static final short S1 = (short) 1; - protected static final short S2 = (short) 2; - protected static final short S3 = (short) 3; - protected static final short S4 = (short) 4; - protected static final short S5 = (short) 5; - protected static final short S6 = (short) 6; - - // Instance variables for shared functionality - protected ClassFileAssembler asm; - protected int modifiers; - protected short thisClass; - protected short superClass; - protected short targetClass; - // Common constant pool entries to FieldAccessor and MethodAccessor - protected short throwableClass; - protected short classCastClass; - protected short nullPointerClass; - protected short illegalArgumentClass; - protected short invocationTargetClass; - protected short initIdx; - protected short initNameAndTypeIdx; - protected short initStringNameAndTypeIdx; - protected short nullPointerCtorIdx; - protected short illegalArgumentCtorIdx; - protected short illegalArgumentStringCtorIdx; - protected short invocationTargetCtorIdx; - protected short superCtorIdx; - protected short objectClass; - protected short toStringIdx; - protected short codeIdx; - protected short exceptionsIdx; - // Boxing - protected short valueOfIdx; - protected short booleanIdx; - protected short booleanBoxIdx; - protected short booleanUnboxIdx; - protected short byteIdx; - protected short byteBoxIdx; - protected short byteUnboxIdx; - protected short characterIdx; - protected short characterBoxIdx; - protected short characterUnboxIdx; - protected short doubleIdx; - protected short doubleBoxIdx; - protected short doubleUnboxIdx; - protected short floatIdx; - protected short floatBoxIdx; - protected short floatUnboxIdx; - protected short integerIdx; - protected short integerBoxIdx; - protected short integerUnboxIdx; - protected short longIdx; - protected short longBoxIdx; - protected short longUnboxIdx; - protected short shortIdx; - protected short shortBoxIdx; - protected short shortUnboxIdx; - - protected final short NUM_COMMON_CPOOL_ENTRIES = (short) 30; - protected final short NUM_BOXING_CPOOL_ENTRIES = (short) 73; - - // Requires that superClass has been set up - protected void emitCommonConstantPoolEntries() { - // + [UTF-8] "java/lang/Throwable" - // + [CONSTANT_Class_info] for above - // + [UTF-8] "java/lang/ClassCastException" - // + [CONSTANT_Class_info] for above - // + [UTF-8] "java/lang/NullPointerException" - // + [CONSTANT_Class_info] for above - // + [UTF-8] "java/lang/IllegalArgumentException" - // + [CONSTANT_Class_info] for above - // + [UTF-8] "java/lang/InvocationTargetException" - // + [CONSTANT_Class_info] for above - // + [UTF-8] "" - // + [UTF-8] "()V" - // + [CONSTANT_NameAndType_info] for above - // + [CONSTANT_Methodref_info] for NullPointerException's constructor - // + [CONSTANT_Methodref_info] for IllegalArgumentException's constructor - // + [UTF-8] "(Ljava/lang/String;)V" - // + [CONSTANT_NameAndType_info] for "(Ljava/lang/String;)V" - // + [CONSTANT_Methodref_info] for IllegalArgumentException's constructor taking a String - // + [UTF-8] "(Ljava/lang/Throwable;)V" - // + [CONSTANT_NameAndType_info] for "(Ljava/lang/Throwable;)V" - // + [CONSTANT_Methodref_info] for InvocationTargetException's constructor - // + [CONSTANT_Methodref_info] for "super()" - // + [UTF-8] "java/lang/Object" - // + [CONSTANT_Class_info] for above - // + [UTF-8] "toString" - // + [UTF-8] "()Ljava/lang/String;" - // + [CONSTANT_NameAndType_info] for "toString()Ljava/lang/String;" - // + [CONSTANT_Methodref_info] for Object's toString method - // + [UTF-8] "Code" - // + [UTF-8] "Exceptions" - asm.emitConstantPoolUTF8("java/lang/Throwable"); - asm.emitConstantPoolClass(asm.cpi()); - throwableClass = asm.cpi(); - asm.emitConstantPoolUTF8("java/lang/ClassCastException"); - asm.emitConstantPoolClass(asm.cpi()); - classCastClass = asm.cpi(); - asm.emitConstantPoolUTF8("java/lang/NullPointerException"); - asm.emitConstantPoolClass(asm.cpi()); - nullPointerClass = asm.cpi(); - asm.emitConstantPoolUTF8("java/lang/IllegalArgumentException"); - asm.emitConstantPoolClass(asm.cpi()); - illegalArgumentClass = asm.cpi(); - asm.emitConstantPoolUTF8("java/lang/reflect/InvocationTargetException"); - asm.emitConstantPoolClass(asm.cpi()); - invocationTargetClass = asm.cpi(); - asm.emitConstantPoolUTF8(""); - initIdx = asm.cpi(); - asm.emitConstantPoolUTF8("()V"); - asm.emitConstantPoolNameAndType(initIdx, asm.cpi()); - initNameAndTypeIdx = asm.cpi(); - asm.emitConstantPoolMethodref(nullPointerClass, initNameAndTypeIdx); - nullPointerCtorIdx = asm.cpi(); - asm.emitConstantPoolMethodref(illegalArgumentClass, initNameAndTypeIdx); - illegalArgumentCtorIdx = asm.cpi(); - asm.emitConstantPoolUTF8("(Ljava/lang/String;)V"); - asm.emitConstantPoolNameAndType(initIdx, asm.cpi()); - initStringNameAndTypeIdx = asm.cpi(); - asm.emitConstantPoolMethodref(illegalArgumentClass, initStringNameAndTypeIdx); - illegalArgumentStringCtorIdx = asm.cpi(); - asm.emitConstantPoolUTF8("(Ljava/lang/Throwable;)V"); - asm.emitConstantPoolNameAndType(initIdx, asm.cpi()); - asm.emitConstantPoolMethodref(invocationTargetClass, asm.cpi()); - invocationTargetCtorIdx = asm.cpi(); - asm.emitConstantPoolMethodref(superClass, initNameAndTypeIdx); - superCtorIdx = asm.cpi(); - asm.emitConstantPoolUTF8("java/lang/Object"); - asm.emitConstantPoolClass(asm.cpi()); - objectClass = asm.cpi(); - asm.emitConstantPoolUTF8("toString"); - asm.emitConstantPoolUTF8("()Ljava/lang/String;"); - asm.emitConstantPoolNameAndType(sub(asm.cpi(), S1), asm.cpi()); - asm.emitConstantPoolMethodref(objectClass, asm.cpi()); - toStringIdx = asm.cpi(); - asm.emitConstantPoolUTF8("Code"); - codeIdx = asm.cpi(); - asm.emitConstantPoolUTF8("Exceptions"); - exceptionsIdx = asm.cpi(); - } - - /** Constant pool entries required to be able to box/unbox primitive - types. Note that we don't emit these if we don't need them. */ - protected void emitBoxingContantPoolEntries() { - // * [UTF-8] "valueOf" - // * [UTF-8] "java/lang/Boolean" - // * [CONSTANT_Class_info] for above - // * [UTF-8] "(Z)Ljava/lang/Boolean;" - // * [CONSTANT_NameAndType_info] for above - // * [CONSTANT_Methodref_info] for above - // * [UTF-8] "booleanValue" - // * [UTF-8] "()Z" - // * [CONSTANT_NameAndType_info] for above - // * [CONSTANT_Methodref_info] for above - // * [UTF-8] "java/lang/Byte" - // * [CONSTANT_Class_info] for above - // * [UTF-8] "(B)Ljava/lang/Byte;" - // * [CONSTANT_NameAndType_info] for above - // * [CONSTANT_Methodref_info] for above - // * [UTF-8] "byteValue" - // * [UTF-8] "()B" - // * [CONSTANT_NameAndType_info] for above - // * [CONSTANT_Methodref_info] for above - // * [UTF-8] "java/lang/Character" - // * [CONSTANT_Class_info] for above - // * [UTF-8] "(C)Ljava/lang/Character;" - // * [CONSTANT_NameAndType_info] for above - // * [CONSTANT_Methodref_info] for above - // * [UTF-8] "charValue" - // * [UTF-8] "()C" - // * [CONSTANT_NameAndType_info] for above - // * [CONSTANT_Methodref_info] for above - // * [UTF-8] "java/lang/Double" - // * [CONSTANT_Class_info] for above - // * [UTF-8] "(D)Ljava/lang/Double;" - // * [CONSTANT_NameAndType_info] for above - // * [CONSTANT_Methodref_info] for above - // * [UTF-8] "doubleValue" - // * [UTF-8] "()D" - // * [CONSTANT_NameAndType_info] for above - // * [CONSTANT_Methodref_info] for above - // * [UTF-8] "java/lang/Float" - // * [CONSTANT_Class_info] for above - // * [UTF-8] "(F)Ljava/lang/Float;" - // * [CONSTANT_NameAndType_info] for above - // * [CONSTANT_Methodref_info] for above - // * [UTF-8] "floatValue" - // * [UTF-8] "()F" - // * [CONSTANT_NameAndType_info] for above - // * [CONSTANT_Methodref_info] for above - // * [UTF-8] "java/lang/Integer" - // * [CONSTANT_Class_info] for above - // * [UTF-8] "(I)Ljava/lang/Integer;" - // * [CONSTANT_NameAndType_info] for above - // * [CONSTANT_Methodref_info] for above - // * [UTF-8] "intValue" - // * [UTF-8] "()I" - // * [CONSTANT_NameAndType_info] for above - // * [CONSTANT_Methodref_info] for above - // * [UTF-8] "java/lang/Long" - // * [CONSTANT_Class_info] for above - // * [UTF-8] "(J)Ljava/lang/Long;" - // * [CONSTANT_NameAndType_info] for above - // * [CONSTANT_Methodref_info] for above - // * [UTF-8] "longValue" - // * [UTF-8] "()J" - // * [CONSTANT_NameAndType_info] for above - // * [CONSTANT_Methodref_info] for above - // * [UTF-8] "java/lang/Short" - // * [CONSTANT_Class_info] for above - // * [UTF-8] "(S)Ljava/lang/Short;" - // * [CONSTANT_NameAndType_info] for above - // * [CONSTANT_Methodref_info] for above - // * [UTF-8] "shortValue" - // * [UTF-8] "()S" - // * [CONSTANT_NameAndType_info] for above - // * [CONSTANT_Methodref_info] for above - - // valueOf-method name - asm.emitConstantPoolUTF8("valueOf"); - valueOfIdx = asm.cpi(); - - // Boolean - asm.emitConstantPoolUTF8("java/lang/Boolean"); - asm.emitConstantPoolClass(asm.cpi()); - booleanIdx = asm.cpi(); - asm.emitConstantPoolUTF8("(Z)Ljava/lang/Boolean;"); - asm.emitConstantPoolNameAndType(valueOfIdx, asm.cpi()); - asm.emitConstantPoolMethodref(sub(asm.cpi(), S2), asm.cpi()); - booleanBoxIdx = asm.cpi(); - asm.emitConstantPoolUTF8("booleanValue"); - asm.emitConstantPoolUTF8("()Z"); - asm.emitConstantPoolNameAndType(sub(asm.cpi(), S1), asm.cpi()); - asm.emitConstantPoolMethodref(sub(asm.cpi(), S6), asm.cpi()); - booleanUnboxIdx = asm.cpi(); - - // Byte - asm.emitConstantPoolUTF8("java/lang/Byte"); - asm.emitConstantPoolClass(asm.cpi()); - byteIdx = asm.cpi(); - asm.emitConstantPoolUTF8("(B)Ljava/lang/Byte;"); - asm.emitConstantPoolNameAndType(valueOfIdx, asm.cpi()); - asm.emitConstantPoolMethodref(sub(asm.cpi(), S2), asm.cpi()); - byteBoxIdx = asm.cpi(); - asm.emitConstantPoolUTF8("byteValue"); - asm.emitConstantPoolUTF8("()B"); - asm.emitConstantPoolNameAndType(sub(asm.cpi(), S1), asm.cpi()); - asm.emitConstantPoolMethodref(sub(asm.cpi(), S6), asm.cpi()); - byteUnboxIdx = asm.cpi(); - - // Character - asm.emitConstantPoolUTF8("java/lang/Character"); - asm.emitConstantPoolClass(asm.cpi()); - characterIdx = asm.cpi(); - asm.emitConstantPoolUTF8("(C)Ljava/lang/Character;"); - asm.emitConstantPoolNameAndType(valueOfIdx, asm.cpi()); - asm.emitConstantPoolMethodref(sub(asm.cpi(), S2), asm.cpi()); - characterBoxIdx = asm.cpi(); - asm.emitConstantPoolUTF8("charValue"); - asm.emitConstantPoolUTF8("()C"); - asm.emitConstantPoolNameAndType(sub(asm.cpi(), S1), asm.cpi()); - asm.emitConstantPoolMethodref(sub(asm.cpi(), S6), asm.cpi()); - characterUnboxIdx = asm.cpi(); - - // Double - asm.emitConstantPoolUTF8("java/lang/Double"); - asm.emitConstantPoolClass(asm.cpi()); - doubleIdx = asm.cpi(); - asm.emitConstantPoolUTF8("(D)Ljava/lang/Double;"); - asm.emitConstantPoolNameAndType(valueOfIdx, asm.cpi()); - asm.emitConstantPoolMethodref(sub(asm.cpi(), S2), asm.cpi()); - doubleBoxIdx = asm.cpi(); - asm.emitConstantPoolUTF8("doubleValue"); - asm.emitConstantPoolUTF8("()D"); - asm.emitConstantPoolNameAndType(sub(asm.cpi(), S1), asm.cpi()); - asm.emitConstantPoolMethodref(sub(asm.cpi(), S6), asm.cpi()); - doubleUnboxIdx = asm.cpi(); - - // Float - asm.emitConstantPoolUTF8("java/lang/Float"); - asm.emitConstantPoolClass(asm.cpi()); - floatIdx = asm.cpi(); - asm.emitConstantPoolUTF8("(F)Ljava/lang/Float;"); - asm.emitConstantPoolNameAndType(valueOfIdx, asm.cpi()); - asm.emitConstantPoolMethodref(sub(asm.cpi(), S2), asm.cpi()); - floatBoxIdx = asm.cpi(); - asm.emitConstantPoolUTF8("floatValue"); - asm.emitConstantPoolUTF8("()F"); - asm.emitConstantPoolNameAndType(sub(asm.cpi(), S1), asm.cpi()); - asm.emitConstantPoolMethodref(sub(asm.cpi(), S6), asm.cpi()); - floatUnboxIdx = asm.cpi(); - - // Integer - asm.emitConstantPoolUTF8("java/lang/Integer"); - asm.emitConstantPoolClass(asm.cpi()); - integerIdx = asm.cpi(); - asm.emitConstantPoolUTF8("(I)Ljava/lang/Integer;"); - asm.emitConstantPoolNameAndType(valueOfIdx, asm.cpi()); - asm.emitConstantPoolMethodref(sub(asm.cpi(), S2), asm.cpi()); - integerBoxIdx = asm.cpi(); - asm.emitConstantPoolUTF8("intValue"); - asm.emitConstantPoolUTF8("()I"); - asm.emitConstantPoolNameAndType(sub(asm.cpi(), S1), asm.cpi()); - asm.emitConstantPoolMethodref(sub(asm.cpi(), S6), asm.cpi()); - integerUnboxIdx = asm.cpi(); - - // Long - asm.emitConstantPoolUTF8("java/lang/Long"); - asm.emitConstantPoolClass(asm.cpi()); - longIdx = asm.cpi(); - asm.emitConstantPoolUTF8("(J)Ljava/lang/Long;"); - asm.emitConstantPoolNameAndType(valueOfIdx, asm.cpi()); - asm.emitConstantPoolMethodref(sub(asm.cpi(), S2), asm.cpi()); - longBoxIdx = asm.cpi(); - asm.emitConstantPoolUTF8("longValue"); - asm.emitConstantPoolUTF8("()J"); - asm.emitConstantPoolNameAndType(sub(asm.cpi(), S1), asm.cpi()); - asm.emitConstantPoolMethodref(sub(asm.cpi(), S6), asm.cpi()); - longUnboxIdx = asm.cpi(); - - // Short - asm.emitConstantPoolUTF8("java/lang/Short"); - asm.emitConstantPoolClass(asm.cpi()); - shortIdx = asm.cpi(); - asm.emitConstantPoolUTF8("(S)Ljava/lang/Short;"); - asm.emitConstantPoolNameAndType(valueOfIdx, asm.cpi()); - asm.emitConstantPoolMethodref(sub(asm.cpi(), S2), asm.cpi()); - shortBoxIdx = asm.cpi(); - asm.emitConstantPoolUTF8("shortValue"); - asm.emitConstantPoolUTF8("()S"); - asm.emitConstantPoolNameAndType(sub(asm.cpi(), S1), asm.cpi()); - asm.emitConstantPoolMethodref(sub(asm.cpi(), S6), asm.cpi()); - shortUnboxIdx = asm.cpi(); - } - - // Necessary because of Java's annoying promotion rules - protected static short add(short s1, short s2) { - return (short) (s1 + s2); - } - - protected static short sub(short s1, short s2) { - return (short) (s1 - s2); - } - - protected boolean isStatic() { - return Modifier.isStatic(modifiers); - } - - protected boolean isPrivate() { - return Modifier.isPrivate(modifiers); - } - - /** Returns class name in "internal" form (i.e., '/' separators - instead of '.') */ - protected static String getClassName - (Class c, boolean addPrefixAndSuffixForNonPrimitiveTypes) - { - if (c.isPrimitive()) { - if (c == Boolean.TYPE) { - return "Z"; - } else if (c == Byte.TYPE) { - return "B"; - } else if (c == Character.TYPE) { - return "C"; - } else if (c == Double.TYPE) { - return "D"; - } else if (c == Float.TYPE) { - return "F"; - } else if (c == Integer.TYPE) { - return "I"; - } else if (c == Long.TYPE) { - return "J"; - } else if (c == Short.TYPE) { - return "S"; - } else if (c == Void.TYPE) { - return "V"; - } - throw new InternalError("Should have found primitive type"); - } else if (c.isArray()) { - return "[" + getClassName(c.getComponentType(), true); - } else { - if (addPrefixAndSuffixForNonPrimitiveTypes) { - return internalize("L" + c.getName() + ";"); - } else { - return internalize(c.getName()); - } - } - } - - private static String internalize(String className) { - return className.replace('.', '/'); - } - - protected void emitConstructor() { - // Generate code into fresh code buffer - ClassFileAssembler cb = new ClassFileAssembler(); - // 0 incoming arguments - cb.setMaxLocals(1); - cb.opc_aload_0(); - cb.opc_invokespecial(superCtorIdx, 0, 0); - cb.opc_return(); - - // Emit method - emitMethod(initIdx, cb.getMaxLocals(), cb, null, null); - } - - // The descriptor's index in the constant pool must be (1 + - // nameIdx). "numArgs" must indicate ALL arguments, including the - // implicit "this" argument; double and long arguments each count - // as 2 in this count. The code buffer must NOT contain the code - // length. The exception table may be null, but if non-null must - // NOT contain the exception table's length. The checked exception - // indices may be null. - protected void emitMethod(short nameIdx, - int numArgs, - ClassFileAssembler code, - ClassFileAssembler exceptionTable, - short[] checkedExceptionIndices) - { - int codeLen = code.getLength(); - int excLen = 0; - if (exceptionTable != null) { - excLen = exceptionTable.getLength(); - if ((excLen % 8) != 0) { - throw new IllegalArgumentException("Illegal exception table"); - } - } - int attrLen = 12 + codeLen + excLen; - excLen = excLen / 8; // No-op if no exception table - - asm.emitShort(ACC_PUBLIC); - asm.emitShort(nameIdx); - asm.emitShort(add(nameIdx, S1)); - if (checkedExceptionIndices == null) { - // Code attribute only - asm.emitShort(S1); - } else { - // Code and Exceptions attributes - asm.emitShort(S2); - } - // Code attribute - asm.emitShort(codeIdx); - asm.emitInt(attrLen); - asm.emitShort(code.getMaxStack()); - asm.emitShort((short) Math.max(numArgs, code.getMaxLocals())); - asm.emitInt(codeLen); - asm.append(code); - asm.emitShort((short) excLen); - if (exceptionTable != null) { - asm.append(exceptionTable); - } - asm.emitShort(S0); // No additional attributes for Code attribute - if (checkedExceptionIndices != null) { - // Exceptions attribute - asm.emitShort(exceptionsIdx); - asm.emitInt(2 + 2 * checkedExceptionIndices.length); - asm.emitShort((short) checkedExceptionIndices.length); - for (int i = 0; i < checkedExceptionIndices.length; i++) { - asm.emitShort(checkedExceptionIndices[i]); - } - } - } - - protected short indexForPrimitiveType(Class type) { - if (type == Boolean.TYPE) { - return booleanIdx; - } else if (type == Byte.TYPE) { - return byteIdx; - } else if (type == Character.TYPE) { - return characterIdx; - } else if (type == Double.TYPE) { - return doubleIdx; - } else if (type == Float.TYPE) { - return floatIdx; - } else if (type == Integer.TYPE) { - return integerIdx; - } else if (type == Long.TYPE) { - return longIdx; - } else if (type == Short.TYPE) { - return shortIdx; - } - throw new InternalError("Should have found primitive type"); - } - - protected short boxingMethodForPrimitiveType(Class type) { - if (type == Boolean.TYPE) { - return booleanBoxIdx; - } else if (type == Byte.TYPE) { - return byteBoxIdx; - } else if (type == Character.TYPE) { - return characterBoxIdx; - } else if (type == Double.TYPE) { - return doubleBoxIdx; - } else if (type == Float.TYPE) { - return floatBoxIdx; - } else if (type == Integer.TYPE) { - return integerBoxIdx; - } else if (type == Long.TYPE) { - return longBoxIdx; - } else if (type == Short.TYPE) { - return shortBoxIdx; - } - throw new InternalError("Should have found primitive type"); - } - - /** Returns true for widening or identity conversions for primitive - types only */ - protected static boolean canWidenTo(Class type, Class otherType) { - if (!type.isPrimitive()) { - return false; - } - - // Widening conversions (from JVM spec): - // byte to short, int, long, float, or double - // short to int, long, float, or double - // char to int, long, float, or double - // int to long, float, or double - // long to float or double - // float to double - - if (type == Boolean.TYPE) { - if (otherType == Boolean.TYPE) { - return true; - } - } else if (type == Byte.TYPE) { - if ( otherType == Byte.TYPE - || otherType == Short.TYPE - || otherType == Integer.TYPE - || otherType == Long.TYPE - || otherType == Float.TYPE - || otherType == Double.TYPE) { - return true; - } - } else if (type == Short.TYPE) { - if ( otherType == Short.TYPE - || otherType == Integer.TYPE - || otherType == Long.TYPE - || otherType == Float.TYPE - || otherType == Double.TYPE) { - return true; - } - } else if (type == Character.TYPE) { - if ( otherType == Character.TYPE - || otherType == Integer.TYPE - || otherType == Long.TYPE - || otherType == Float.TYPE - || otherType == Double.TYPE) { - return true; - } - } else if (type == Integer.TYPE) { - if ( otherType == Integer.TYPE - || otherType == Long.TYPE - || otherType == Float.TYPE - || otherType == Double.TYPE) { - return true; - } - } else if (type == Long.TYPE) { - if ( otherType == Long.TYPE - || otherType == Float.TYPE - || otherType == Double.TYPE) { - return true; - } - } else if (type == Float.TYPE) { - if ( otherType == Float.TYPE - || otherType == Double.TYPE) { - return true; - } - } else if (type == Double.TYPE) { - if (otherType == Double.TYPE) { - return true; - } - } - - return false; - } - - /** Emits the widening bytecode for the given primitive conversion - (or none if the identity conversion). Requires that a primitive - conversion exists; i.e., canWidenTo must have already been - called and returned true. */ - protected static void emitWideningBytecodeForPrimitiveConversion - (ClassFileAssembler cb, - Class fromType, - Class toType) - { - // Note that widening conversions for integral types (i.e., "b2s", - // "s2i") are no-ops since values on the Java stack are - // sign-extended. - - // Widening conversions (from JVM spec): - // byte to short, int, long, float, or double - // short to int, long, float, or double - // char to int, long, float, or double - // int to long, float, or double - // long to float or double - // float to double - - if ( fromType == Byte.TYPE - || fromType == Short.TYPE - || fromType == Character.TYPE - || fromType == Integer.TYPE) { - if (toType == Long.TYPE) { - cb.opc_i2l(); - } else if (toType == Float.TYPE) { - cb.opc_i2f(); - } else if (toType == Double.TYPE) { - cb.opc_i2d(); - } - } else if (fromType == Long.TYPE) { - if (toType == Float.TYPE) { - cb.opc_l2f(); - } else if (toType == Double.TYPE) { - cb.opc_l2d(); - } - } else if (fromType == Float.TYPE) { - if (toType == Double.TYPE) { - cb.opc_f2d(); - } - } - - // Otherwise, was identity or no-op conversion. Fall through. - } - - protected short unboxingMethodForPrimitiveType(Class primType) { - if (primType == Boolean.TYPE) { - return booleanUnboxIdx; - } else if (primType == Byte.TYPE) { - return byteUnboxIdx; - } else if (primType == Character.TYPE) { - return characterUnboxIdx; - } else if (primType == Short.TYPE) { - return shortUnboxIdx; - } else if (primType == Integer.TYPE) { - return integerUnboxIdx; - } else if (primType == Long.TYPE) { - return longUnboxIdx; - } else if (primType == Float.TYPE) { - return floatUnboxIdx; - } else if (primType == Double.TYPE) { - return doubleUnboxIdx; - } - throw new InternalError("Illegal primitive type " + primType.getName()); - } - - protected static final Class[] primitiveTypes = new Class[] { - Boolean.TYPE, - Byte.TYPE, - Character.TYPE, - Short.TYPE, - Integer.TYPE, - Long.TYPE, - Float.TYPE, - Double.TYPE - }; - - /** We don't consider "Void" to be a primitive type */ - protected static boolean isPrimitive(Class c) { - return (c.isPrimitive() && c != Void.TYPE); - } - - protected int typeSizeInStackSlots(Class c) { - if (c == Void.TYPE) { - return 0; - } - if (c == Long.TYPE || c == Double.TYPE) { - return 2; - } - return 1; - } - - private ClassFileAssembler illegalArgumentCodeBuffer; - protected ClassFileAssembler illegalArgumentCodeBuffer() { - if (illegalArgumentCodeBuffer == null) { - illegalArgumentCodeBuffer = new ClassFileAssembler(); - illegalArgumentCodeBuffer.opc_new(illegalArgumentClass); - illegalArgumentCodeBuffer.opc_dup(); - illegalArgumentCodeBuffer.opc_invokespecial(illegalArgumentCtorIdx, 0, 0); - illegalArgumentCodeBuffer.opc_athrow(); - } - - return illegalArgumentCodeBuffer; - } -} diff --git a/src/java.base/share/classes/jdk/internal/reflect/ByteVectorFactory.java b/src/java.base/share/classes/jdk/internal/reflect/ByteVectorFactory.java deleted file mode 100644 index 3557bd5c515..00000000000 --- a/src/java.base/share/classes/jdk/internal/reflect/ByteVectorFactory.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package jdk.internal.reflect; - -class ByteVectorFactory { - static ByteVector create() { - return new ByteVectorImpl(); - } - - static ByteVector create(int sz) { - return new ByteVectorImpl(sz); - } -} diff --git a/src/java.base/share/classes/jdk/internal/reflect/ByteVectorImpl.java b/src/java.base/share/classes/jdk/internal/reflect/ByteVectorImpl.java deleted file mode 100644 index b0f9d81f7cf..00000000000 --- a/src/java.base/share/classes/jdk/internal/reflect/ByteVectorImpl.java +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package jdk.internal.reflect; - -class ByteVectorImpl implements ByteVector { - private byte[] data; - private int pos; - - public ByteVectorImpl() { - this(100); - } - - public ByteVectorImpl(int sz) { - data = new byte[sz]; - pos = -1; - } - - public int getLength() { - return pos + 1; - } - - public byte get(int index) { - if (index >= data.length) { - resize(index); - pos = index; - } - return data[index]; - } - - public void put(int index, byte value) { - if (index >= data.length) { - resize(index); - pos = index; - } - data[index] = value; - } - - public void add(byte value) { - if (++pos >= data.length) { - resize(pos); - } - data[pos] = value; - } - - public void trim() { - if (pos != data.length - 1) { - byte[] newData = new byte[pos + 1]; - System.arraycopy(data, 0, newData, 0, pos + 1); - data = newData; - } - } - - public byte[] getData() { - return data; - } - - private void resize(int minSize) { - if (minSize <= 2 * data.length) { - minSize = 2 * data.length; - } - byte[] newData = new byte[minSize]; - System.arraycopy(data, 0, newData, 0, data.length); - data = newData; - } -} diff --git a/src/java.base/share/classes/jdk/internal/reflect/ClassDefiner.java b/src/java.base/share/classes/jdk/internal/reflect/ClassDefiner.java deleted file mode 100644 index 185f61b9ba1..00000000000 --- a/src/java.base/share/classes/jdk/internal/reflect/ClassDefiner.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (c) 2001, 2023, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package jdk.internal.reflect; - -import java.security.AccessController; -import java.security.PrivilegedAction; - -import jdk.internal.access.JavaLangAccess; -import jdk.internal.access.SharedSecrets; - -/** Utility class which assists in calling defineClass() by - * creating a new class loader which delegates to the one needed in - * order for proper resolution of the given bytecodes to occur. - * - * This is only used to define SerializationConstructorAccessor. - */ - -class ClassDefiner { - static final JavaLangAccess JLA = SharedSecrets.getJavaLangAccess(); - - /**

    We define generated code into a new class loader which - delegates to the defining loader of the target class. It is - necessary for the VM to be able to resolve references to the - target class from the generated bytecodes, which could not occur - if the generated code was loaded into the bootstrap class - loader.

    - -

    There are two primary reasons for creating a new loader - instead of defining these bytecodes directly into the defining - loader of the target class: first, it avoids any possible - security risk of having these bytecodes in the same loader. - Second, it allows the generated bytecodes to be unloaded earlier - than would otherwise be possible, decreasing run-time - footprint.

    - */ - static Class defineClass(String name, byte[] bytes, int off, int len, - final ClassLoader parentClassLoader) - { - @SuppressWarnings("removal") - ClassLoader newLoader = AccessController.doPrivileged( - new PrivilegedAction() { - public ClassLoader run() { - return new DelegatingClassLoader(parentClassLoader); - } - }); - return JLA.defineClass(newLoader, name, bytes, null, "__ClassDefiner__"); - } -} - - -// NOTE: this class's name and presence are known to the virtual -// machine as of the fix for 4474172. -class DelegatingClassLoader extends ClassLoader { - DelegatingClassLoader(ClassLoader parent) { - super(parent); - } -} diff --git a/src/java.base/share/classes/jdk/internal/reflect/ClassFileAssembler.java b/src/java.base/share/classes/jdk/internal/reflect/ClassFileAssembler.java deleted file mode 100644 index 31ddb675667..00000000000 --- a/src/java.base/share/classes/jdk/internal/reflect/ClassFileAssembler.java +++ /dev/null @@ -1,671 +0,0 @@ -/* - * Copyright (c) 2001, 2004, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package jdk.internal.reflect; - -import sun.nio.cs.UTF_8; - -class ClassFileAssembler implements ClassFileConstants { - private ByteVector vec; - private short cpIdx = 0; - - public ClassFileAssembler() { - this(ByteVectorFactory.create()); - } - - public ClassFileAssembler(ByteVector vec) { - this.vec = vec; - } - - public ByteVector getData() { - return vec; - } - - /** Length in bytes */ - public short getLength() { - return (short) vec.getLength(); - } - - public void emitMagicAndVersion() { - emitInt(0xCAFEBABE); - emitShort((short) 0); - emitShort((short) 49); - } - - public void emitInt(int val) { - emitByte((byte) (val >> 24)); - emitByte((byte) ((val >> 16) & 0xFF)); - emitByte((byte) ((val >> 8) & 0xFF)); - emitByte((byte) (val & 0xFF)); - } - - public void emitShort(short val) { - emitByte((byte) ((val >> 8) & 0xFF)); - emitByte((byte) (val & 0xFF)); - } - - // Support for labels; package-private - void emitShort(short bci, short val) { - vec.put(bci, (byte) ((val >> 8) & 0xFF)); - vec.put(bci + 1, (byte) (val & 0xFF)); - } - - public void emitByte(byte val) { - vec.add(val); - } - - public void append(ClassFileAssembler asm) { - append(asm.vec); - } - - public void append(ByteVector vec) { - for (int i = 0; i < vec.getLength(); i++) { - emitByte(vec.get(i)); - } - } - - /** Keeps track of the current (one-based) constant pool index; - incremented after emitting one of the following constant pool - entries. Can fetch the current constant pool index for use in - later entries. Index points at the last valid constant pool - entry; initially invalid. It is illegal to fetch the constant - pool index before emitting at least one constant pool entry. */ - public short cpi() { - if (cpIdx == 0) { - throw new RuntimeException("Illegal use of ClassFileAssembler"); - } - return cpIdx; - } - - public void emitConstantPoolUTF8(String str) { - byte[] bytes = str.getBytes(UTF_8.INSTANCE); - emitByte(CONSTANT_Utf8); - emitShort((short) bytes.length); - for (int i = 0; i < bytes.length; i++) { - emitByte(bytes[i]); - } - cpIdx++; - } - - public void emitConstantPoolClass(short index) { - emitByte(CONSTANT_Class); - emitShort(index); - cpIdx++; - } - - public void emitConstantPoolNameAndType(short nameIndex, short typeIndex) { - emitByte(CONSTANT_NameAndType); - emitShort(nameIndex); - emitShort(typeIndex); - cpIdx++; - } - - public void emitConstantPoolFieldref - (short classIndex, short nameAndTypeIndex) - { - emitByte(CONSTANT_Fieldref); - emitShort(classIndex); - emitShort(nameAndTypeIndex); - cpIdx++; - } - - public void emitConstantPoolMethodref - (short classIndex, short nameAndTypeIndex) - { - emitByte(CONSTANT_Methodref); - emitShort(classIndex); - emitShort(nameAndTypeIndex); - cpIdx++; - } - - public void emitConstantPoolInterfaceMethodref - (short classIndex, short nameAndTypeIndex) - { - emitByte(CONSTANT_InterfaceMethodref); - emitShort(classIndex); - emitShort(nameAndTypeIndex); - cpIdx++; - } - - public void emitConstantPoolString(short utf8Index) { - emitByte(CONSTANT_String); - emitShort(utf8Index); - cpIdx++; - } - - //---------------------------------------------------------------------- - // Opcodes. Keeps track of maximum stack and locals. Make a new - // assembler for each piece of assembled code, then append the - // result to the previous assembler's class file. - // - - private int stack = 0; - private int maxStack = 0; - private int maxLocals = 0; - - private void incStack() { - setStack(stack + 1); - } - - private void decStack() { - --stack; - } - - public short getMaxStack() { - return (short) maxStack; - } - - public short getMaxLocals() { - return (short) maxLocals; - } - - /** It's necessary to be able to specify the number of arguments at - the beginning of the method (which translates to the initial - value of max locals) */ - public void setMaxLocals(int maxLocals) { - this.maxLocals = maxLocals; - } - - /** Needed to do flow control. Returns current stack depth. */ - public int getStack() { - return stack; - } - - /** Needed to do flow control. */ - public void setStack(int value) { - stack = value; - if (stack > maxStack) { - maxStack = stack; - } - } - - //-----------// - // Constants // - //-----------// - - public void opc_aconst_null() { - emitByte(opc_aconst_null); - incStack(); - } - - public void opc_sipush(short constant) { - emitByte(opc_sipush); - emitShort(constant); - incStack(); - } - - public void opc_ldc(byte cpIdx) { - emitByte(opc_ldc); - emitByte(cpIdx); - incStack(); - } - - //---------------------------------// - // Local variable loads and stores // - //---------------------------------// - - public void opc_iload_0() { - emitByte(opc_iload_0); - if (maxLocals < 1) maxLocals = 1; - incStack(); - } - - public void opc_iload_1() { - emitByte(opc_iload_1); - if (maxLocals < 2) maxLocals = 2; - incStack(); - } - - public void opc_iload_2() { - emitByte(opc_iload_2); - if (maxLocals < 3) maxLocals = 3; - incStack(); - } - - public void opc_iload_3() { - emitByte(opc_iload_3); - if (maxLocals < 4) maxLocals = 4; - incStack(); - } - - public void opc_lload_0() { - emitByte(opc_lload_0); - if (maxLocals < 2) maxLocals = 2; - incStack(); - incStack(); - } - - public void opc_lload_1() { - emitByte(opc_lload_1); - if (maxLocals < 3) maxLocals = 3; - incStack(); - incStack(); - } - - public void opc_lload_2() { - emitByte(opc_lload_2); - if (maxLocals < 4) maxLocals = 4; - incStack(); - incStack(); - } - - public void opc_lload_3() { - emitByte(opc_lload_3); - if (maxLocals < 5) maxLocals = 5; - incStack(); - incStack(); - } - - public void opc_fload_0() { - emitByte(opc_fload_0); - if (maxLocals < 1) maxLocals = 1; - incStack(); - } - - public void opc_fload_1() { - emitByte(opc_fload_1); - if (maxLocals < 2) maxLocals = 2; - incStack(); - } - - public void opc_fload_2() { - emitByte(opc_fload_2); - if (maxLocals < 3) maxLocals = 3; - incStack(); - } - - public void opc_fload_3() { - emitByte(opc_fload_3); - if (maxLocals < 4) maxLocals = 4; - incStack(); - } - - public void opc_dload_0() { - emitByte(opc_dload_0); - if (maxLocals < 2) maxLocals = 2; - incStack(); - incStack(); - } - - public void opc_dload_1() { - emitByte(opc_dload_1); - if (maxLocals < 3) maxLocals = 3; - incStack(); - incStack(); - } - - public void opc_dload_2() { - emitByte(opc_dload_2); - if (maxLocals < 4) maxLocals = 4; - incStack(); - incStack(); - } - - public void opc_dload_3() { - emitByte(opc_dload_3); - if (maxLocals < 5) maxLocals = 5; - incStack(); - incStack(); - } - - public void opc_aload_0() { - emitByte(opc_aload_0); - if (maxLocals < 1) maxLocals = 1; - incStack(); - } - - public void opc_aload_1() { - emitByte(opc_aload_1); - if (maxLocals < 2) maxLocals = 2; - incStack(); - } - - public void opc_aload_2() { - emitByte(opc_aload_2); - if (maxLocals < 3) maxLocals = 3; - incStack(); - } - - public void opc_aload_3() { - emitByte(opc_aload_3); - if (maxLocals < 4) maxLocals = 4; - incStack(); - } - - public void opc_aaload() { - emitByte(opc_aaload); - decStack(); - } - - public void opc_astore_0() { - emitByte(opc_astore_0); - if (maxLocals < 1) maxLocals = 1; - decStack(); - } - - public void opc_astore_1() { - emitByte(opc_astore_1); - if (maxLocals < 2) maxLocals = 2; - decStack(); - } - - public void opc_astore_2() { - emitByte(opc_astore_2); - if (maxLocals < 3) maxLocals = 3; - decStack(); - } - - public void opc_astore_3() { - emitByte(opc_astore_3); - if (maxLocals < 4) maxLocals = 4; - decStack(); - } - - //--------------------// - // Stack manipulation // - //--------------------// - - public void opc_pop() { - emitByte(opc_pop); - decStack(); - } - - public void opc_dup() { - emitByte(opc_dup); - incStack(); - } - - public void opc_dup_x1() { - emitByte(opc_dup_x1); - incStack(); - } - - public void opc_swap() { - emitByte(opc_swap); - } - - //---------------------------// - // Widening conversions only // - //---------------------------// - - public void opc_i2l() { - emitByte(opc_i2l); - } - - public void opc_i2f() { - emitByte(opc_i2f); - } - - public void opc_i2d() { - emitByte(opc_i2d); - } - - public void opc_l2f() { - emitByte(opc_l2f); - } - - public void opc_l2d() { - emitByte(opc_l2d); - } - - public void opc_f2d() { - emitByte(opc_f2d); - } - - //--------------// - // Control flow // - //--------------// - - public void opc_ifeq(short bciOffset) { - emitByte(opc_ifeq); - emitShort(bciOffset); - decStack(); - } - - /** Control flow with forward-reference BCI. Stack assumes - straight-through control flow. */ - public void opc_ifeq(Label l) { - short instrBCI = getLength(); - emitByte(opc_ifeq); - l.add(this, instrBCI, getLength(), getStack() - 1); - emitShort((short) -1); // Must be patched later - } - - public void opc_if_icmpeq(short bciOffset) { - emitByte(opc_if_icmpeq); - emitShort(bciOffset); - setStack(getStack() - 2); - } - - /** Control flow with forward-reference BCI. Stack assumes straight - control flow. */ - public void opc_if_icmpeq(Label l) { - short instrBCI = getLength(); - emitByte(opc_if_icmpeq); - l.add(this, instrBCI, getLength(), getStack() - 2); - emitShort((short) -1); // Must be patched later - } - - public void opc_goto(short bciOffset) { - emitByte(opc_goto); - emitShort(bciOffset); - } - - /** Control flow with forward-reference BCI. Stack assumes straight - control flow. */ - public void opc_goto(Label l) { - short instrBCI = getLength(); - emitByte(opc_goto); - l.add(this, instrBCI, getLength(), getStack()); - emitShort((short) -1); // Must be patched later - } - - public void opc_ifnull(short bciOffset) { - emitByte(opc_ifnull); - emitShort(bciOffset); - decStack(); - } - - /** Control flow with forward-reference BCI. Stack assumes straight - control flow. */ - public void opc_ifnull(Label l) { - short instrBCI = getLength(); - emitByte(opc_ifnull); - l.add(this, instrBCI, getLength(), getStack() - 1); - emitShort((short) -1); // Must be patched later - decStack(); - } - - public void opc_ifnonnull(short bciOffset) { - emitByte(opc_ifnonnull); - emitShort(bciOffset); - decStack(); - } - - /** Control flow with forward-reference BCI. Stack assumes straight - control flow. */ - public void opc_ifnonnull(Label l) { - short instrBCI = getLength(); - emitByte(opc_ifnonnull); - l.add(this, instrBCI, getLength(), getStack() - 1); - emitShort((short) -1); // Must be patched later - decStack(); - } - - //---------------------// - // Return instructions // - //---------------------// - - public void opc_ireturn() { - emitByte(opc_ireturn); - setStack(0); - } - - public void opc_lreturn() { - emitByte(opc_lreturn); - setStack(0); - } - - public void opc_freturn() { - emitByte(opc_freturn); - setStack(0); - } - - public void opc_dreturn() { - emitByte(opc_dreturn); - setStack(0); - } - - public void opc_areturn() { - emitByte(opc_areturn); - setStack(0); - } - - public void opc_return() { - emitByte(opc_return); - setStack(0); - } - - //------------------// - // Field operations // - //------------------// - - public void opc_getstatic(short fieldIndex, int fieldSizeInStackSlots) { - emitByte(opc_getstatic); - emitShort(fieldIndex); - setStack(getStack() + fieldSizeInStackSlots); - } - - public void opc_putstatic(short fieldIndex, int fieldSizeInStackSlots) { - emitByte(opc_putstatic); - emitShort(fieldIndex); - setStack(getStack() - fieldSizeInStackSlots); - } - - public void opc_getfield(short fieldIndex, int fieldSizeInStackSlots) { - emitByte(opc_getfield); - emitShort(fieldIndex); - setStack(getStack() + fieldSizeInStackSlots - 1); - } - - public void opc_putfield(short fieldIndex, int fieldSizeInStackSlots) { - emitByte(opc_putfield); - emitShort(fieldIndex); - setStack(getStack() - fieldSizeInStackSlots - 1); - } - - //--------------------// - // Method invocations // - //--------------------// - - /** Long and double arguments and return types count as 2 arguments; - other values count as 1. */ - public void opc_invokevirtual(short methodIndex, - int numArgs, - int numReturnValues) - { - emitByte(opc_invokevirtual); - emitShort(methodIndex); - setStack(getStack() - numArgs - 1 + numReturnValues); - } - - /** Long and double arguments and return types count as 2 arguments; - other values count as 1. */ - public void opc_invokespecial(short methodIndex, - int numArgs, - int numReturnValues) - { - emitByte(opc_invokespecial); - emitShort(methodIndex); - setStack(getStack() - numArgs - 1 + numReturnValues); - } - - /** Long and double arguments and return types count as 2 arguments; - other values count as 1. */ - public void opc_invokestatic(short methodIndex, - int numArgs, - int numReturnValues) - { - emitByte(opc_invokestatic); - emitShort(methodIndex); - setStack(getStack() - numArgs + numReturnValues); - } - - /** Long and double arguments and return types count as 2 arguments; - other values count as 1. */ - public void opc_invokeinterface(short methodIndex, - int numArgs, - byte count, - int numReturnValues) - { - emitByte(opc_invokeinterface); - emitShort(methodIndex); - emitByte(count); - emitByte((byte) 0); - setStack(getStack() - numArgs - 1 + numReturnValues); - } - - //--------------// - // Array length // - //--------------// - - public void opc_arraylength() { - emitByte(opc_arraylength); - } - - //-----// - // New // - //-----// - - public void opc_new(short classIndex) { - emitByte(opc_new); - emitShort(classIndex); - incStack(); - } - - //--------// - // Athrow // - //--------// - - public void opc_athrow() { - emitByte(opc_athrow); - setStack(1); - } - - //--------------------------// - // Checkcast and instanceof // - //--------------------------// - - /** Assumes the checkcast succeeds */ - public void opc_checkcast(short classIndex) { - emitByte(opc_checkcast); - emitShort(classIndex); - } - - public void opc_instanceof(short classIndex) { - emitByte(opc_instanceof); - emitShort(classIndex); - } -} diff --git a/src/java.base/share/classes/jdk/internal/reflect/ClassFileConstants.java b/src/java.base/share/classes/jdk/internal/reflect/ClassFileConstants.java deleted file mode 100644 index 3562a8d5c72..00000000000 --- a/src/java.base/share/classes/jdk/internal/reflect/ClassFileConstants.java +++ /dev/null @@ -1,140 +0,0 @@ -/* - * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package jdk.internal.reflect; - -/** Minimal set of class file constants for assembly of field and - method accessors. */ - -interface ClassFileConstants { - // Constants - public static final byte opc_aconst_null = (byte) 0x1; - public static final byte opc_sipush = (byte) 0x11; - public static final byte opc_ldc = (byte) 0x12; - - // Local variable loads and stores - public static final byte opc_iload_0 = (byte) 0x1a; - public static final byte opc_iload_1 = (byte) 0x1b; - public static final byte opc_iload_2 = (byte) 0x1c; - public static final byte opc_iload_3 = (byte) 0x1d; - public static final byte opc_lload_0 = (byte) 0x1e; - public static final byte opc_lload_1 = (byte) 0x1f; - public static final byte opc_lload_2 = (byte) 0x20; - public static final byte opc_lload_3 = (byte) 0x21; - public static final byte opc_fload_0 = (byte) 0x22; - public static final byte opc_fload_1 = (byte) 0x23; - public static final byte opc_fload_2 = (byte) 0x24; - public static final byte opc_fload_3 = (byte) 0x25; - public static final byte opc_dload_0 = (byte) 0x26; - public static final byte opc_dload_1 = (byte) 0x27; - public static final byte opc_dload_2 = (byte) 0x28; - public static final byte opc_dload_3 = (byte) 0x29; - public static final byte opc_aload_0 = (byte) 0x2a; - public static final byte opc_aload_1 = (byte) 0x2b; - public static final byte opc_aload_2 = (byte) 0x2c; - public static final byte opc_aload_3 = (byte) 0x2d; - public static final byte opc_aaload = (byte) 0x32; - public static final byte opc_astore_0 = (byte) 0x4b; - public static final byte opc_astore_1 = (byte) 0x4c; - public static final byte opc_astore_2 = (byte) 0x4d; - public static final byte opc_astore_3 = (byte) 0x4e; - - // Stack manipulation - public static final byte opc_pop = (byte) 0x57; - public static final byte opc_dup = (byte) 0x59; - public static final byte opc_dup_x1 = (byte) 0x5a; - public static final byte opc_swap = (byte) 0x5f; - - // Conversions - public static final byte opc_i2l = (byte) 0x85; - public static final byte opc_i2f = (byte) 0x86; - public static final byte opc_i2d = (byte) 0x87; - public static final byte opc_l2i = (byte) 0x88; - public static final byte opc_l2f = (byte) 0x89; - public static final byte opc_l2d = (byte) 0x8a; - public static final byte opc_f2i = (byte) 0x8b; - public static final byte opc_f2l = (byte) 0x8c; - public static final byte opc_f2d = (byte) 0x8d; - public static final byte opc_d2i = (byte) 0x8e; - public static final byte opc_d2l = (byte) 0x8f; - public static final byte opc_d2f = (byte) 0x90; - public static final byte opc_i2b = (byte) 0x91; - public static final byte opc_i2c = (byte) 0x92; - public static final byte opc_i2s = (byte) 0x93; - - // Control flow - public static final byte opc_ifeq = (byte) 0x99; - public static final byte opc_if_icmpeq = (byte) 0x9f; - public static final byte opc_goto = (byte) 0xa7; - - // Return instructions - public static final byte opc_ireturn = (byte) 0xac; - public static final byte opc_lreturn = (byte) 0xad; - public static final byte opc_freturn = (byte) 0xae; - public static final byte opc_dreturn = (byte) 0xaf; - public static final byte opc_areturn = (byte) 0xb0; - public static final byte opc_return = (byte) 0xb1; - - // Field operations - public static final byte opc_getstatic = (byte) 0xb2; - public static final byte opc_putstatic = (byte) 0xb3; - public static final byte opc_getfield = (byte) 0xb4; - public static final byte opc_putfield = (byte) 0xb5; - - // Method invocations - public static final byte opc_invokevirtual = (byte) 0xb6; - public static final byte opc_invokespecial = (byte) 0xb7; - public static final byte opc_invokestatic = (byte) 0xb8; - public static final byte opc_invokeinterface = (byte) 0xb9; - - // Array length - public static final byte opc_arraylength = (byte) 0xbe; - - // New - public static final byte opc_new = (byte) 0xbb; - - // Athrow - public static final byte opc_athrow = (byte) 0xbf; - - // Checkcast and instanceof - public static final byte opc_checkcast = (byte) 0xc0; - public static final byte opc_instanceof = (byte) 0xc1; - - // Ifnull and ifnonnull - public static final byte opc_ifnull = (byte) 0xc6; - public static final byte opc_ifnonnull = (byte) 0xc7; - - // Constant pool tags - public static final byte CONSTANT_Class = (byte) 7; - public static final byte CONSTANT_Fieldref = (byte) 9; - public static final byte CONSTANT_Methodref = (byte) 10; - public static final byte CONSTANT_InterfaceMethodref = (byte) 11; - public static final byte CONSTANT_NameAndType = (byte) 12; - public static final byte CONSTANT_String = (byte) 8; - public static final byte CONSTANT_Utf8 = (byte) 1; - - // Access flags - public static final short ACC_PUBLIC = (short) 0x0001; -} diff --git a/src/java.base/share/classes/jdk/internal/reflect/ConstructorAccessorImpl.java b/src/java.base/share/classes/jdk/internal/reflect/ConstructorAccessorImpl.java index 36f73b29cc3..18e69439ac7 100644 --- a/src/java.base/share/classes/jdk/internal/reflect/ConstructorAccessorImpl.java +++ b/src/java.base/share/classes/jdk/internal/reflect/ConstructorAccessorImpl.java @@ -27,12 +27,7 @@ import java.lang.reflect.InvocationTargetException; -/** Package-private implementation of the ConstructorAccessor - interface which has access to all classes and all fields, - regardless of language restrictions. See MagicAccessorImpl. */ - -abstract class ConstructorAccessorImpl extends MagicAccessorImpl - implements ConstructorAccessor { +abstract class ConstructorAccessorImpl implements ConstructorAccessor { /** Matches specification in {@link java.lang.reflect.Constructor} */ public abstract Object newInstance(Object[] args) throws InstantiationException, diff --git a/src/java.base/share/classes/jdk/internal/reflect/FieldAccessorImpl.java b/src/java.base/share/classes/jdk/internal/reflect/FieldAccessorImpl.java index baeb6bf8956..be832f2e393 100644 --- a/src/java.base/share/classes/jdk/internal/reflect/FieldAccessorImpl.java +++ b/src/java.base/share/classes/jdk/internal/reflect/FieldAccessorImpl.java @@ -28,12 +28,7 @@ import java.lang.reflect.Field; import java.lang.reflect.Modifier; -/** Package-private implementation of the FieldAccessor interface - which has access to all classes and all fields, regardless of - language restrictions. See MagicAccessorImpl. */ - -abstract class FieldAccessorImpl extends MagicAccessorImpl - implements FieldAccessor { +abstract class FieldAccessorImpl implements FieldAccessor { protected final Field field; FieldAccessorImpl(Field field) { diff --git a/src/java.base/share/classes/jdk/internal/reflect/Label.java b/src/java.base/share/classes/jdk/internal/reflect/Label.java deleted file mode 100644 index eb531530f4a..00000000000 --- a/src/java.base/share/classes/jdk/internal/reflect/Label.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package jdk.internal.reflect; - -import java.util.List; -import java.util.ArrayList; - -/** Allows forward references in bytecode streams emitted by - ClassFileAssembler. Assumes that the start of the method body is - the first byte in the assembler's buffer. May be used at more than - one branch site. */ - -class Label { - static class PatchInfo { - PatchInfo(ClassFileAssembler asm, - short instrBCI, - short patchBCI, - int stackDepth) - { - this.asm = asm; - this.instrBCI = instrBCI; - this.patchBCI = patchBCI; - this.stackDepth = stackDepth; - } - // This won't work for more than one assembler anyway, so this is - // unnecessary - final ClassFileAssembler asm; - final short instrBCI; - final short patchBCI; - final int stackDepth; - } - private final List patches = new ArrayList<>(); - - public Label() { - } - - void add(ClassFileAssembler asm, - short instrBCI, - short patchBCI, - int stackDepth) - { - patches.add(new PatchInfo(asm, instrBCI, patchBCI, stackDepth)); - } - - public void bind() { - for (PatchInfo patch : patches){ - short curBCI = patch.asm.getLength(); - short offset = (short) (curBCI - patch.instrBCI); - patch.asm.emitShort(patch.patchBCI, offset); - patch.asm.setStack(patch.stackDepth); - } - } -} diff --git a/src/java.base/share/classes/jdk/internal/reflect/MagicAccessorImpl.java b/src/java.base/share/classes/jdk/internal/reflect/MagicAccessorImpl.java deleted file mode 100644 index e464e3b6584..00000000000 --- a/src/java.base/share/classes/jdk/internal/reflect/MagicAccessorImpl.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package jdk.internal.reflect; - -/**

    MagicAccessorImpl (named for parity with FieldAccessorImpl and - others, not because it actually implements an interface) is a - marker class in the hierarchy. All subclasses of this class are - "magically" granted access by the VM to otherwise inaccessible - fields and methods of other classes. It is used to hold the code - for dynamically-generated FieldAccessorImpl and MethodAccessorImpl - subclasses. (Use of the word "unsafe" was avoided in this class's - name to avoid confusion with {@link jdk.internal.misc.Unsafe}.)

    - -

    The bug fix for 4486457 also necessitated disabling - verification for this class and all subclasses, as opposed to just - SerializationConstructorAccessorImpl and subclasses, to avoid - having to indicate to the VM which of these dynamically-generated - stub classes were known to be able to pass the verifier.

    - -

    Do not change the name of this class without also changing the - VM's code.

    */ - -class MagicAccessorImpl { -} diff --git a/src/java.base/share/classes/jdk/internal/reflect/MethodAccessorImpl.java b/src/java.base/share/classes/jdk/internal/reflect/MethodAccessorImpl.java index 1ef40d207f0..a8d324d413c 100644 --- a/src/java.base/share/classes/jdk/internal/reflect/MethodAccessorImpl.java +++ b/src/java.base/share/classes/jdk/internal/reflect/MethodAccessorImpl.java @@ -27,11 +27,7 @@ import java.lang.reflect.InvocationTargetException; -/**

    Package-private implementation of the MethodAccessor interface - which has access to all classes and all fields, regardless of - language restrictions. See MagicAccessor.

    - -

    This class is known to the VM; do not change its name without +/**

    This class is known to the VM; do not change its name without also changing the VM's code.

    NOTE: ALL methods of subclasses are skipped during security @@ -40,8 +36,7 @@ methods for java.lang.reflect.Method.invoke().

    */ -abstract class MethodAccessorImpl extends MagicAccessorImpl - implements MethodAccessor { +abstract class MethodAccessorImpl implements MethodAccessor { /** Matches specification in {@link java.lang.reflect.Method} */ public abstract Object invoke(Object obj, Object[] args) throws IllegalArgumentException, InvocationTargetException; diff --git a/src/java.base/share/classes/jdk/internal/reflect/ReflectionFactory.java b/src/java.base/share/classes/jdk/internal/reflect/ReflectionFactory.java index 9a31c5402d4..b0d9c7154cd 100644 --- a/src/java.base/share/classes/jdk/internal/reflect/ReflectionFactory.java +++ b/src/java.base/share/classes/jdk/internal/reflect/ReflectionFactory.java @@ -334,16 +334,8 @@ public final Constructor newConstructorForSerialization(Class cl) { private final Constructor generateConstructor(Class cl, Constructor constructorToCall) { - ConstructorAccessor acc; - if (useOldSerializableConstructor()) { - acc = new SerializationConstructorAccessorGenerator(). - generateSerializationConstructor(cl, - constructorToCall.getParameterTypes(), - constructorToCall.getModifiers(), - constructorToCall.getDeclaringClass()); - } else { - acc = MethodHandleAccessorFactory.newSerializableConstructorAccessor(cl, constructorToCall); - } + ConstructorAccessor acc = MethodHandleAccessorFactory + .newSerializableConstructorAccessor(cl, constructorToCall); // Unlike other root constructors, this constructor is not copied for mutation // but directly mutated, as it is not cached. To cache this constructor, // setAccessible call must be done on a copy and return that copy instead. @@ -507,10 +499,6 @@ static boolean useNativeAccessorOnly() { return config().useNativeAccessorOnly; } - static boolean useOldSerializableConstructor() { - return config().useOldSerializableConstructor; - } - private static boolean disableSerialConstructorChecks() { return config().disableSerialConstructorChecks; } @@ -527,7 +515,6 @@ private static boolean disableSerialConstructorChecks() { private static @Stable Config config; private static final Config DEFAULT_CONFIG = new Config(false, // useNativeAccessorOnly - false, // useOldSerializeableConstructor false); // disableSerialConstructorChecks /** @@ -542,7 +529,6 @@ private static boolean disableSerialConstructorChecks() { * is to override them. */ private record Config(boolean useNativeAccessorOnly, - boolean useOldSerializableConstructor, boolean disableSerialConstructorChecks) { } @@ -566,12 +552,10 @@ private static Config loadConfig() { Properties props = GetPropertyAction.privilegedGetProperties(); boolean useNativeAccessorOnly = "true".equals(props.getProperty("jdk.reflect.useNativeAccessorOnly")); - boolean useOldSerializableConstructor = - "true".equals(props.getProperty("jdk.reflect.useOldSerializableConstructor")); boolean disableSerialConstructorChecks = "true".equals(props.getProperty("jdk.disableSerialConstructorChecks")); - return new Config(useNativeAccessorOnly, useOldSerializableConstructor, disableSerialConstructorChecks); + return new Config(useNativeAccessorOnly, disableSerialConstructorChecks); } /** diff --git a/src/java.base/share/classes/jdk/internal/reflect/SerializationConstructorAccessorGenerator.java b/src/java.base/share/classes/jdk/internal/reflect/SerializationConstructorAccessorGenerator.java deleted file mode 100644 index 1f9645a3e72..00000000000 --- a/src/java.base/share/classes/jdk/internal/reflect/SerializationConstructorAccessorGenerator.java +++ /dev/null @@ -1,725 +0,0 @@ -/* - * Copyright (c) 2001, 2023, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package jdk.internal.reflect; - -import java.security.AccessController; -import java.security.PrivilegedAction; - - -/** Generator for jdk.internal.reflect.SerializationConstructorAccessorImpl - objects using bytecodes to implement a constructor for serialization - returned by ReflectionFactory::newConstructorForSerialization. */ - -class SerializationConstructorAccessorGenerator extends AccessorGenerator { - - private static final short NUM_BASE_CPOOL_ENTRIES = (short) 12; - // One for invoke() plus one for constructor - private static final short NUM_METHODS = (short) 2; - // Only used if forSerialization is true - private static final short NUM_SERIALIZATION_CPOOL_ENTRIES = (short) 2; - - private static volatile int methodSymnum; - private static volatile int constructorSymnum; - private static volatile int serializationConstructorSymnum; - - private Class declaringClass; - private Class[] parameterTypes; - private Class returnType; - private boolean isConstructor; - private boolean forSerialization; - - private short targetMethodRef; - private short invokeIdx; - private short invokeDescriptorIdx; - // Constant pool index of CONSTANT_Class_info for first - // non-primitive parameter type. Should be incremented by 2. - private short nonPrimitiveParametersBaseIdx; - - SerializationConstructorAccessorGenerator() { - } - - /** This routine is not thread-safe */ - public SerializationConstructorAccessorImpl - generateSerializationConstructor(Class declaringClass, - Class[] parameterTypes, - int modifiers, - Class targetConstructorClass) - { - return (SerializationConstructorAccessorImpl) - generate(declaringClass, - "", - parameterTypes, - Void.TYPE, - modifiers, - true, - true, - targetConstructorClass); - } - - /** This routine is not thread-safe */ - @SuppressWarnings("removal") - private MagicAccessorImpl generate(final Class declaringClass, - String name, - Class[] parameterTypes, - Class returnType, - int modifiers, - boolean isConstructor, - boolean forSerialization, - Class serializationTargetClass) - { - ByteVector vec = ByteVectorFactory.create(); - asm = new ClassFileAssembler(vec); - this.declaringClass = declaringClass; - this.parameterTypes = parameterTypes; - this.returnType = returnType; - this.modifiers = modifiers; - this.isConstructor = isConstructor; - this.forSerialization = forSerialization; - - asm.emitMagicAndVersion(); - - // Constant pool entries: - // ( * = Boxing information: optional) - // (+ = Shared entries provided by AccessorGenerator) - // (^ = Only present if generating SerializationConstructorAccessor) - // [UTF-8] [This class's name] - // [CONSTANT_Class_info] for above - // [UTF-8] "jdk/internal/reflect/{MethodAccessorImpl,ConstructorAccessorImpl,SerializationConstructorAccessorImpl}" - // [CONSTANT_Class_info] for above - // [UTF-8] [Target class's name] - // [CONSTANT_Class_info] for above - // ^ [UTF-8] [Serialization: Class's name in which to invoke constructor] - // ^ [CONSTANT_Class_info] for above - // [UTF-8] target method or constructor name - // [UTF-8] target method or constructor signature - // [CONSTANT_NameAndType_info] for above - // [CONSTANT_Methodref_info or CONSTANT_InterfaceMethodref_info] for target method - // [UTF-8] "invoke" or "newInstance" - // [UTF-8] invoke or newInstance descriptor - // [UTF-8] descriptor for type of non-primitive parameter 1 - // [CONSTANT_Class_info] for type of non-primitive parameter 1 - // ... - // [UTF-8] descriptor for type of non-primitive parameter n - // [CONSTANT_Class_info] for type of non-primitive parameter n - // + [UTF-8] "java/lang/Exception" - // + [CONSTANT_Class_info] for above - // + [UTF-8] "java/lang/ClassCastException" - // + [CONSTANT_Class_info] for above - // + [UTF-8] "java/lang/NullPointerException" - // + [CONSTANT_Class_info] for above - // + [UTF-8] "java/lang/IllegalArgumentException" - // + [CONSTANT_Class_info] for above - // + [UTF-8] "java/lang/InvocationTargetException" - // + [CONSTANT_Class_info] for above - // + [UTF-8] "" - // + [UTF-8] "()V" - // + [CONSTANT_NameAndType_info] for above - // + [CONSTANT_Methodref_info] for NullPointerException's constructor - // + [CONSTANT_Methodref_info] for IllegalArgumentException's constructor - // + [UTF-8] "(Ljava/lang/String;)V" - // + [CONSTANT_NameAndType_info] for "(Ljava/lang/String;)V" - // + [CONSTANT_Methodref_info] for IllegalArgumentException's constructor taking a String - // + [UTF-8] "(Ljava/lang/Throwable;)V" - // + [CONSTANT_NameAndType_info] for "(Ljava/lang/Throwable;)V" - // + [CONSTANT_Methodref_info] for InvocationTargetException's constructor - // + [CONSTANT_Methodref_info] for "super()" - // + [UTF-8] "java/lang/Object" - // + [CONSTANT_Class_info] for above - // + [UTF-8] "toString" - // + [UTF-8] "()Ljava/lang/String;" - // + [CONSTANT_NameAndType_info] for "toString()Ljava/lang/String;" - // + [CONSTANT_Methodref_info] for Object's toString method - // + [UTF-8] "Code" - // + [UTF-8] "Exceptions" - // * [UTF-8] "java/lang/Boolean" - // * [CONSTANT_Class_info] for above - // * [UTF-8] "(Z)V" - // * [CONSTANT_NameAndType_info] for above - // * [CONSTANT_Methodref_info] for above - // * [UTF-8] "booleanValue" - // * [UTF-8] "()Z" - // * [CONSTANT_NameAndType_info] for above - // * [CONSTANT_Methodref_info] for above - // * [UTF-8] "java/lang/Byte" - // * [CONSTANT_Class_info] for above - // * [UTF-8] "(B)V" - // * [CONSTANT_NameAndType_info] for above - // * [CONSTANT_Methodref_info] for above - // * [UTF-8] "byteValue" - // * [UTF-8] "()B" - // * [CONSTANT_NameAndType_info] for above - // * [CONSTANT_Methodref_info] for above - // * [UTF-8] "java/lang/Character" - // * [CONSTANT_Class_info] for above - // * [UTF-8] "(C)V" - // * [CONSTANT_NameAndType_info] for above - // * [CONSTANT_Methodref_info] for above - // * [UTF-8] "charValue" - // * [UTF-8] "()C" - // * [CONSTANT_NameAndType_info] for above - // * [CONSTANT_Methodref_info] for above - // * [UTF-8] "java/lang/Double" - // * [CONSTANT_Class_info] for above - // * [UTF-8] "(D)V" - // * [CONSTANT_NameAndType_info] for above - // * [CONSTANT_Methodref_info] for above - // * [UTF-8] "doubleValue" - // * [UTF-8] "()D" - // * [CONSTANT_NameAndType_info] for above - // * [CONSTANT_Methodref_info] for above - // * [UTF-8] "java/lang/Float" - // * [CONSTANT_Class_info] for above - // * [UTF-8] "(F)V" - // * [CONSTANT_NameAndType_info] for above - // * [CONSTANT_Methodref_info] for above - // * [UTF-8] "floatValue" - // * [UTF-8] "()F" - // * [CONSTANT_NameAndType_info] for above - // * [CONSTANT_Methodref_info] for above - // * [UTF-8] "java/lang/Integer" - // * [CONSTANT_Class_info] for above - // * [UTF-8] "(I)V" - // * [CONSTANT_NameAndType_info] for above - // * [CONSTANT_Methodref_info] for above - // * [UTF-8] "intValue" - // * [UTF-8] "()I" - // * [CONSTANT_NameAndType_info] for above - // * [CONSTANT_Methodref_info] for above - // * [UTF-8] "java/lang/Long" - // * [CONSTANT_Class_info] for above - // * [UTF-8] "(J)V" - // * [CONSTANT_NameAndType_info] for above - // * [CONSTANT_Methodref_info] for above - // * [UTF-8] "longValue" - // * [UTF-8] "()J" - // * [CONSTANT_NameAndType_info] for above - // * [CONSTANT_Methodref_info] for above - // * [UTF-8] "java/lang/Short" - // * [CONSTANT_Class_info] for above - // * [UTF-8] "(S)V" - // * [CONSTANT_NameAndType_info] for above - // * [CONSTANT_Methodref_info] for above - // * [UTF-8] "shortValue" - // * [UTF-8] "()S" - // * [CONSTANT_NameAndType_info] for above - // * [CONSTANT_Methodref_info] for above - - short numCPEntries = NUM_BASE_CPOOL_ENTRIES + NUM_COMMON_CPOOL_ENTRIES; - boolean usesPrimitives = usesPrimitiveTypes(); - if (usesPrimitives) { - numCPEntries += NUM_BOXING_CPOOL_ENTRIES; - } - if (forSerialization) { - numCPEntries += NUM_SERIALIZATION_CPOOL_ENTRIES; - } - - // Add in variable-length number of entries to be able to describe - // non-primitive parameter types and checked exceptions. - numCPEntries += (short) (2 * numNonPrimitiveParameterTypes()); - - asm.emitShort(add(numCPEntries, S1)); - - final String generatedName = generateName(isConstructor, forSerialization); - asm.emitConstantPoolUTF8(generatedName); - asm.emitConstantPoolClass(asm.cpi()); - thisClass = asm.cpi(); - if (isConstructor) { - if (forSerialization) { - asm.emitConstantPoolUTF8 - ("jdk/internal/reflect/SerializationConstructorAccessorImpl"); - } else { - asm.emitConstantPoolUTF8("jdk/internal/reflect/ConstructorAccessorImpl"); - } - } else { - asm.emitConstantPoolUTF8("jdk/internal/reflect/MethodAccessorImpl"); - } - asm.emitConstantPoolClass(asm.cpi()); - superClass = asm.cpi(); - asm.emitConstantPoolUTF8(getClassName(declaringClass, false)); - asm.emitConstantPoolClass(asm.cpi()); - targetClass = asm.cpi(); - short serializationTargetClassIdx = (short) 0; - if (forSerialization) { - asm.emitConstantPoolUTF8(getClassName(serializationTargetClass, false)); - asm.emitConstantPoolClass(asm.cpi()); - serializationTargetClassIdx = asm.cpi(); - } - asm.emitConstantPoolUTF8(name); - asm.emitConstantPoolUTF8(buildInternalSignature()); - asm.emitConstantPoolNameAndType(sub(asm.cpi(), S1), asm.cpi()); - if (isInterface()) { - asm.emitConstantPoolInterfaceMethodref(targetClass, asm.cpi()); - } else { - if (forSerialization) { - asm.emitConstantPoolMethodref(serializationTargetClassIdx, asm.cpi()); - } else { - asm.emitConstantPoolMethodref(targetClass, asm.cpi()); - } - } - targetMethodRef = asm.cpi(); - if (isConstructor) { - asm.emitConstantPoolUTF8("newInstance"); - } else { - asm.emitConstantPoolUTF8("invoke"); - } - invokeIdx = asm.cpi(); - if (isConstructor) { - asm.emitConstantPoolUTF8("([Ljava/lang/Object;)Ljava/lang/Object;"); - } else { - asm.emitConstantPoolUTF8 - ("(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;"); - } - invokeDescriptorIdx = asm.cpi(); - - // Output class information for non-primitive parameter types - nonPrimitiveParametersBaseIdx = add(asm.cpi(), S2); - for (int i = 0; i < parameterTypes.length; i++) { - Class c = parameterTypes[i]; - if (!isPrimitive(c)) { - asm.emitConstantPoolUTF8(getClassName(c, false)); - asm.emitConstantPoolClass(asm.cpi()); - } - } - - // Entries common to FieldAccessor, MethodAccessor and ConstructorAccessor - emitCommonConstantPoolEntries(); - - // Boxing entries - if (usesPrimitives) { - emitBoxingContantPoolEntries(); - } - - if (asm.cpi() != numCPEntries) { - throw new InternalError("Adjust this code (cpi = " + asm.cpi() + - ", numCPEntries = " + numCPEntries + ")"); - } - - // Access flags - asm.emitShort(ACC_PUBLIC); - - // This class - asm.emitShort(thisClass); - - // Superclass - asm.emitShort(superClass); - - // Interfaces count and interfaces - asm.emitShort(S0); - - // Fields count and fields - asm.emitShort(S0); - - // Methods count and methods - asm.emitShort(NUM_METHODS); - - emitConstructor(); - emitInvoke(); - - // Additional attributes (none) - asm.emitShort(S0); - - // Load class - vec.trim(); - final byte[] bytes = vec.getData(); - // Note: the class loader is the only thing that really matters - // here -- it's important to get the generated code into the - // same namespace as the target class. Since the generated code - // is privileged anyway, the protection domain probably doesn't - // matter. - return AccessController.doPrivileged( - new PrivilegedAction() { - @SuppressWarnings("deprecation") // Class.newInstance - public MagicAccessorImpl run() { - try { - return (MagicAccessorImpl) - ClassDefiner.defineClass - (generatedName, - bytes, - 0, - bytes.length, - declaringClass.getClassLoader()).newInstance(); - } catch (InstantiationException | IllegalAccessException e) { - throw new InternalError(e); - } - } - }); - } - - /** This emits the code for either invoke() or newInstance() */ - private void emitInvoke() { - // NOTE that this code will only handle 65535 parameters since we - // use the sipush instruction to get the array index on the - // operand stack. - if (parameterTypes.length > 65535) { - throw new InternalError("Can't handle more than 65535 parameters"); - } - - // Generate code into fresh code buffer - ClassFileAssembler cb = new ClassFileAssembler(); - if (isConstructor) { - // 1 incoming argument - cb.setMaxLocals(2); - } else { - // 2 incoming arguments - cb.setMaxLocals(3); - } - - short illegalArgStartPC = 0; - - if (isConstructor) { - // Instantiate target class before continuing - // new - // dup - cb.opc_new(targetClass); - cb.opc_dup(); - } else { - // Get target object on operand stack if necessary. - - // We need to do an explicit null check here; we won't see - // NullPointerExceptions from the invoke bytecode, since it's - // covered by an exception handler. - if (!isStatic()) { - // aload_1 - // ifnonnull - // new - // dup - // invokespecial - // athrow - // - // aload_1 - // checkcast - cb.opc_aload_1(); - Label l = new Label(); - cb.opc_ifnonnull(l); - cb.opc_new(nullPointerClass); - cb.opc_dup(); - cb.opc_invokespecial(nullPointerCtorIdx, 0, 0); - cb.opc_athrow(); - l.bind(); - illegalArgStartPC = cb.getLength(); - cb.opc_aload_1(); - cb.opc_checkcast(targetClass); - } - } - - // Have to check length of incoming array and throw - // IllegalArgumentException if not correct. A concession to the - // JCK (isn't clearly specified in the spec): we allow null in the - // case where the argument list is zero length. - // if no-arg: - // aload_2 | aload_1 (Method | Constructor) - // ifnull - // aload_2 | aload_1 - // arraylength - // sipush - // if_icmpeq - // new - // dup - // invokespecial - // athrow - // - Label successLabel = new Label(); - if (parameterTypes.length == 0) { - if (isConstructor) { - cb.opc_aload_1(); - } else { - cb.opc_aload_2(); - } - cb.opc_ifnull(successLabel); - } - if (isConstructor) { - cb.opc_aload_1(); - } else { - cb.opc_aload_2(); - } - cb.opc_arraylength(); - cb.opc_sipush((short) parameterTypes.length); - cb.opc_if_icmpeq(successLabel); - cb.opc_new(illegalArgumentClass); - cb.opc_dup(); - cb.opc_invokespecial(illegalArgumentCtorIdx, 0, 0); - cb.opc_athrow(); - successLabel.bind(); - - // Iterate through incoming actual parameters, ensuring that each - // is compatible with the formal parameter type, and pushing the - // actual on the operand stack (unboxing and widening if necessary). - - short paramTypeCPIdx = nonPrimitiveParametersBaseIdx; - Label nextParamLabel = null; - byte count = 1; // both invokeinterface opcode's "count" as well as - // num args of other invoke bytecodes - for (int i = 0; i < parameterTypes.length; i++) { - Class paramType = parameterTypes[i]; - count += (byte) typeSizeInStackSlots(paramType); - if (nextParamLabel != null) { - nextParamLabel.bind(); - nextParamLabel = null; - } - // aload_2 | aload_1 - // sipush - // aaload - if (isConstructor) { - cb.opc_aload_1(); - } else { - cb.opc_aload_2(); - } - cb.opc_sipush((short) i); - cb.opc_aaload(); - if (isPrimitive(paramType)) { - // Unboxing code. - // Put parameter into temporary local variable - // astore_3 | astore_2 - if (isConstructor) { - cb.opc_astore_2(); - } else { - cb.opc_astore_3(); - } - - // repeat for all possible widening conversions: - // aload_3 | aload_2 - // instanceof - // ifeq - // aload_3 | aload_2 - // checkcast // Note: this is "redundant", - // // but necessary for the verifier - // invokevirtual - // - // goto - // ... - // last unboxing label: - // new - // dup - // invokespecial - // athrow - - Label l = null; // unboxing label - nextParamLabel = new Label(); - - for (int j = 0; j < primitiveTypes.length; j++) { - Class c = primitiveTypes[j]; - if (canWidenTo(c, paramType)) { - if (l != null) { - l.bind(); - } - // Emit checking and unboxing code for this type - if (isConstructor) { - cb.opc_aload_2(); - } else { - cb.opc_aload_3(); - } - cb.opc_instanceof(indexForPrimitiveType(c)); - l = new Label(); - cb.opc_ifeq(l); - if (isConstructor) { - cb.opc_aload_2(); - } else { - cb.opc_aload_3(); - } - cb.opc_checkcast(indexForPrimitiveType(c)); - cb.opc_invokevirtual(unboxingMethodForPrimitiveType(c), - 0, - typeSizeInStackSlots(c)); - emitWideningBytecodeForPrimitiveConversion(cb, - c, - paramType); - cb.opc_goto(nextParamLabel); - } - } - - if (l == null) { - throw new InternalError - ("Must have found at least identity conversion"); - } - - // Fell through; given object is null or invalid. According to - // the spec, we can throw IllegalArgumentException for both of - // these cases. - - l.bind(); - cb.opc_new(illegalArgumentClass); - cb.opc_dup(); - cb.opc_invokespecial(illegalArgumentCtorIdx, 0, 0); - cb.opc_athrow(); - } else { - // Emit appropriate checkcast - cb.opc_checkcast(paramTypeCPIdx); - paramTypeCPIdx = add(paramTypeCPIdx, S2); - // Fall through to next argument - } - } - // Bind last goto if present - if (nextParamLabel != null) { - nextParamLabel.bind(); - } - - short invokeStartPC = cb.getLength(); - - // OK, ready to perform the invocation. - if (isConstructor) { - cb.opc_invokespecial(targetMethodRef, count, 0); - } else { - if (isStatic()) { - cb.opc_invokestatic(targetMethodRef, - count, - typeSizeInStackSlots(returnType)); - } else { - if (isInterface()) { - cb.opc_invokeinterface(targetMethodRef, - count, - count, - typeSizeInStackSlots(returnType)); - } else { - cb.opc_invokevirtual(targetMethodRef, - count, - typeSizeInStackSlots(returnType)); - } - } - } - - short invokeEndPC = cb.getLength(); - - if (!isConstructor) { - // Box return value if necessary - if (isPrimitive(returnType)) { - cb.opc_invokestatic(boxingMethodForPrimitiveType(returnType), - typeSizeInStackSlots(returnType), - 0); - } else if (returnType == Void.TYPE) { - cb.opc_aconst_null(); - } - } - cb.opc_areturn(); - - // We generate two exception handlers; one which is responsible - // for catching ClassCastException and NullPointerException and - // throwing IllegalArgumentException, and the other which catches - // all java/lang/Throwable objects thrown from the target method - // and wraps them in InvocationTargetExceptions. - - short classCastHandler = cb.getLength(); - - // ClassCast, etc. exception handler - cb.setStack(1); - cb.opc_invokespecial(toStringIdx, 0, 1); - cb.opc_new(illegalArgumentClass); - cb.opc_dup_x1(); - cb.opc_swap(); - cb.opc_invokespecial(illegalArgumentStringCtorIdx, 1, 0); - cb.opc_athrow(); - - short invocationTargetHandler = cb.getLength(); - - // InvocationTargetException exception handler - cb.setStack(1); - cb.opc_new(invocationTargetClass); - cb.opc_dup_x1(); - cb.opc_swap(); - cb.opc_invokespecial(invocationTargetCtorIdx, 1, 0); - cb.opc_athrow(); - - // Generate exception table. We cover the entire code sequence - // with an exception handler which catches ClassCastException and - // converts it into an IllegalArgumentException. - - ClassFileAssembler exc = new ClassFileAssembler(); - - exc.emitShort(illegalArgStartPC); // start PC - exc.emitShort(invokeStartPC); // end PC - exc.emitShort(classCastHandler); // handler PC - exc.emitShort(classCastClass); // catch type - - exc.emitShort(illegalArgStartPC); // start PC - exc.emitShort(invokeStartPC); // end PC - exc.emitShort(classCastHandler); // handler PC - exc.emitShort(nullPointerClass); // catch type - - exc.emitShort(invokeStartPC); // start PC - exc.emitShort(invokeEndPC); // end PC - exc.emitShort(invocationTargetHandler); // handler PC - exc.emitShort(throwableClass); // catch type - - emitMethod(invokeIdx, cb.getMaxLocals(), cb, exc, - new short[] { invocationTargetClass }); - } - - private boolean usesPrimitiveTypes() { - // We need to emit boxing/unboxing constant pool information if - // the method takes a primitive type for any of its parameters or - // returns a primitive value (except void) - if (returnType.isPrimitive()) { - return true; - } - for (int i = 0; i < parameterTypes.length; i++) { - if (parameterTypes[i].isPrimitive()) { - return true; - } - } - return false; - } - - private int numNonPrimitiveParameterTypes() { - int num = 0; - for (int i = 0; i < parameterTypes.length; i++) { - if (!parameterTypes[i].isPrimitive()) { - ++num; - } - } - return num; - } - - private boolean isInterface() { - return declaringClass.isInterface(); - } - - private String buildInternalSignature() { - StringBuilder sb = new StringBuilder(); - sb.append("("); - for (int i = 0; i < parameterTypes.length; i++) { - sb.append(getClassName(parameterTypes[i], true)); - } - sb.append(")"); - sb.append(getClassName(returnType, true)); - return sb.toString(); - } - - private static synchronized String generateName(boolean isConstructor, - boolean forSerialization) - { - if (isConstructor) { - if (forSerialization) { - int num = ++serializationConstructorSymnum; - return "jdk/internal/reflect/GeneratedSerializationConstructorAccessor" + num; - } else { - int num = ++constructorSymnum; - return "jdk/internal/reflect/GeneratedConstructorAccessor" + num; - } - } else { - int num = ++methodSymnum; - return "jdk/internal/reflect/GeneratedMethodAccessor" + num; - } - } -} diff --git a/src/java.base/share/classes/jdk/internal/reflect/SerializationConstructorAccessorImpl.java b/src/java.base/share/classes/jdk/internal/reflect/SerializationConstructorAccessorImpl.java deleted file mode 100644 index 9dbbf0d2c77..00000000000 --- a/src/java.base/share/classes/jdk/internal/reflect/SerializationConstructorAccessorImpl.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package jdk.internal.reflect; - -/**

    Java serialization (in java.io) expects to be able to - instantiate a class and invoke a no-arg constructor of that - class's first non-Serializable superclass. This is not a valid - operation according to the VM specification; one can not (for - classes A and B, where B is a subclass of A) write "new B; - invokespecial A()" without getting a verification error.

    - -

    In all other respects, the bytecode-based reflection framework - can be reused for this purpose. This marker class was originally - known to the VM and verification disabled for it and all - subclasses, but the bug fix for 4486457 necessitated disabling - verification for all of the dynamically-generated bytecodes - associated with reflection. This class has been left in place to - make future debugging easier.

    */ - -abstract class SerializationConstructorAccessorImpl - extends ConstructorAccessorImpl { -} diff --git a/src/java.base/share/classes/jdk/internal/util/StaticProperty.java b/src/java.base/share/classes/jdk/internal/util/StaticProperty.java index da06bf07a65..9dcebeca470 100644 --- a/src/java.base/share/classes/jdk/internal/util/StaticProperty.java +++ b/src/java.base/share/classes/jdk/internal/util/StaticProperty.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -98,19 +98,33 @@ private StaticProperty() {} USER_LANGUAGE = getProperty(props, "user.language", "en"); USER_LANGUAGE_DISPLAY = getProperty(props, "user.language.display", USER_LANGUAGE); USER_LANGUAGE_FORMAT = getProperty(props, "user.language.format", USER_LANGUAGE); - USER_SCRIPT = getProperty(props, "user.script", ""); + // for compatibility, check for old user.region property + USER_REGION = getProperty(props, "user.region", ""); + if (!USER_REGION.isEmpty()) { + // region can be of form country, country_variant, or _variant + int i = USER_REGION.indexOf('_'); + if (i >= 0) { + USER_COUNTRY = USER_REGION.substring(0, i); + USER_VARIANT = USER_REGION.substring(i + 1); + } else { + USER_COUNTRY = USER_REGION; + USER_VARIANT = ""; + } + USER_SCRIPT = ""; + } else { + USER_SCRIPT = getProperty(props, "user.script", ""); + USER_COUNTRY = getProperty(props, "user.country", ""); + USER_VARIANT = getProperty(props, "user.variant", ""); + } USER_SCRIPT_DISPLAY = getProperty(props, "user.script.display", USER_SCRIPT); USER_SCRIPT_FORMAT = getProperty(props, "user.script.format", USER_SCRIPT); - USER_COUNTRY = getProperty(props, "user.country", ""); USER_COUNTRY_DISPLAY = getProperty(props, "user.country.display", USER_COUNTRY); USER_COUNTRY_FORMAT = getProperty(props, "user.country.format", USER_COUNTRY); - USER_VARIANT = getProperty(props, "user.variant", ""); USER_VARIANT_DISPLAY = getProperty(props, "user.variant.display", USER_VARIANT); USER_VARIANT_FORMAT = getProperty(props, "user.variant.format", USER_VARIANT); USER_EXTENSIONS = getProperty(props, "user.extensions", ""); USER_EXTENSIONS_DISPLAY = getProperty(props, "user.extensions.display", USER_EXTENSIONS); USER_EXTENSIONS_FORMAT = getProperty(props, "user.extensions.format", USER_EXTENSIONS); - USER_REGION = getProperty(props, "user.region", ""); } private static String getProperty(Properties props, String key) { diff --git a/src/java.base/share/classes/jdk/internal/vm/Continuation.java b/src/java.base/share/classes/jdk/internal/vm/Continuation.java index 99d0c62aaec..b863def8e6a 100644 --- a/src/java.base/share/classes/jdk/internal/vm/Continuation.java +++ b/src/java.base/share/classes/jdk/internal/vm/Continuation.java @@ -36,6 +36,7 @@ import jdk.internal.access.JavaLangAccess; import jdk.internal.access.SharedSecrets; import jdk.internal.vm.annotation.Hidden; +import jdk.internal.vm.annotation.JvmtiHideEvents; /** * A one-shot delimited continuation. @@ -305,6 +306,7 @@ private void finish() { @Hidden @DontInline @IntrinsicCandidate + @JvmtiHideEvents private static void enter(Continuation c, boolean isContinue) { // This method runs in the "entry frame". // A yield jumps to this method's caller as if returning from this method. @@ -316,6 +318,7 @@ private static void enter(Continuation c, boolean isContinue) { } @Hidden + @JvmtiHideEvents private void enter0() { target.run(); } @@ -340,6 +343,7 @@ private boolean isEmpty() { * @throws IllegalStateException if not currently in the given {@code scope}, */ @Hidden + @JvmtiHideEvents public static boolean yield(ContinuationScope scope) { Continuation cont = JLA.getContinuation(currentCarrierThread()); Continuation c; @@ -352,6 +356,7 @@ public static boolean yield(ContinuationScope scope) { } @Hidden + @JvmtiHideEvents private boolean yield0(ContinuationScope scope, Continuation child) { preempted = false; diff --git a/src/java.base/share/classes/jdk/internal/reflect/ByteVector.java b/src/java.base/share/classes/jdk/internal/vm/annotation/JvmtiHideEvents.java similarity index 70% rename from src/java.base/share/classes/jdk/internal/reflect/ByteVector.java rename to src/java.base/share/classes/jdk/internal/vm/annotation/JvmtiHideEvents.java index 2a07b072982..06572e64546 100644 --- a/src/java.base/share/classes/jdk/internal/reflect/ByteVector.java +++ b/src/java.base/share/classes/jdk/internal/vm/annotation/JvmtiHideEvents.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,15 +23,18 @@ * questions. */ -package jdk.internal.reflect; +package jdk.internal.vm.annotation; -/** A growable array of bytes. */ +import java.lang.annotation.*; -interface ByteVector { - public int getLength(); - public byte get(int index); - public void put(int index, byte value); - public void add(byte value); - public void trim(); - public byte[] getData(); +/** + * A method may be annotated with JvmtiHideEvents to hint that JVMTI events + * should not be generated in context of the annotated method. + * + * @implNote + * This annotation is only used for some VirtualThread and Continuation methods. + */ +@Target({ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +public @interface JvmtiHideEvents { } diff --git a/src/java.base/share/classes/jdk/internal/vm/annotation/JvmtiMountTransition.java b/src/java.base/share/classes/jdk/internal/vm/annotation/JvmtiMountTransition.java index df0545e46b1..ff9f5d8bbbf 100644 --- a/src/java.base/share/classes/jdk/internal/vm/annotation/JvmtiMountTransition.java +++ b/src/java.base/share/classes/jdk/internal/vm/annotation/JvmtiMountTransition.java @@ -28,8 +28,11 @@ import java.lang.annotation.*; /** - * A method is annotated as "jvmti mount transition" if it starts - * or ends virtual thread mount state transition (VTMS transition). + * A method may be annotated with JvmtiMountTransition to hint + * it is desirable to omit it from JVMTI stack traces. + * Normally, a method is annotated with @JvmtiMountTransition if it starts + * or ends Virtual Thread Mount State (VTMS) transition, so the thread + * identity is undefined or different at method entry and exit. * * @implNote * This annotation is only used for VirtualThread methods. diff --git a/src/java.base/share/classes/jdk/internal/vm/vector/VectorSupport.java b/src/java.base/share/classes/jdk/internal/vm/vector/VectorSupport.java index 63cab418d46..afd6cc62ce5 100644 --- a/src/java.base/share/classes/jdk/internal/vm/vector/VectorSupport.java +++ b/src/java.base/share/classes/jdk/internal/vm/vector/VectorSupport.java @@ -114,6 +114,13 @@ public class VectorSupport { public static final int VECTOR_OP_EXPM1 = 117; public static final int VECTOR_OP_HYPOT = 118; + public static final int VECTOR_OP_SADD = 119; + public static final int VECTOR_OP_SSUB = 120; + public static final int VECTOR_OP_SUADD = 121; + public static final int VECTOR_OP_SUSUB = 122; + public static final int VECTOR_OP_UMIN = 123; + public static final int VECTOR_OP_UMAX = 124; + // See src/hotspot/share/opto/subnode.hpp // struct BoolTest, and enclosed enum mask public static final int BT_eq = 0; // 0000 diff --git a/src/java.base/share/classes/sun/nio/ch/ChannelInputStream.java b/src/java.base/share/classes/sun/nio/ch/ChannelInputStream.java index 8cf5c720b8d..14b2058d28d 100644 --- a/src/java.base/share/classes/sun/nio/ch/ChannelInputStream.java +++ b/src/java.base/share/classes/sun/nio/ch/ChannelInputStream.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -38,6 +38,7 @@ import java.util.Arrays; import java.util.Objects; import jdk.internal.util.ArraysSupport; +import jdk.internal.vm.annotation.Stable; /** * An InputStream that reads bytes from a channel. @@ -53,6 +54,10 @@ class ChannelInputStream extends InputStream { private byte[] bs; // Invoker's previous array private byte[] b1; + // if isOther is true, then the file being read is not a regular file, + // nor a directory, nor a symbolic link, hence possibly not seekable + private @Stable Boolean isOther; + /** * Initialize a ChannelInputStream that reads from the given channel. */ @@ -60,6 +65,17 @@ class ChannelInputStream extends InputStream { this.ch = ch; } + private boolean isOther() throws IOException { + Boolean isOther = this.isOther; + if (isOther == null) { + if (ch instanceof FileChannelImpl fci) + this.isOther = isOther = fci.isOther(); + else + this.isOther = isOther = Boolean.FALSE; + } + return isOther; + } + /** * Reads a sequence of bytes from the channel into the given buffer. */ @@ -105,7 +121,8 @@ public synchronized int read(byte[] bs, int off, int len) @Override public byte[] readAllBytes() throws IOException { - if (!(ch instanceof SeekableByteChannel sbc)) + if (!(ch instanceof SeekableByteChannel sbc) || + (ch instanceof FileChannelImpl fci && isOther())) return super.readAllBytes(); long length = sbc.size(); @@ -156,7 +173,8 @@ public byte[] readNBytes(int len) throws IOException { if (len == 0) return new byte[0]; - if (!(ch instanceof SeekableByteChannel sbc)) + if (!(ch instanceof SeekableByteChannel sbc) || + (ch instanceof FileChannelImpl fci && isOther())) return super.readNBytes(len); long length = sbc.size(); @@ -192,7 +210,9 @@ public byte[] readNBytes(int len) throws IOException { @Override public int available() throws IOException { // special case where the channel is to a file - if (ch instanceof SeekableByteChannel sbc) { + if (ch instanceof FileChannelImpl fci) { + return fci.available(); + } else if (ch instanceof SeekableByteChannel sbc) { long rem = Math.max(0, sbc.size() - sbc.position()); return (rem > Integer.MAX_VALUE) ? Integer.MAX_VALUE : (int)rem; } @@ -202,7 +222,8 @@ public int available() throws IOException { @Override public synchronized long skip(long n) throws IOException { // special case where the channel is to a file - if (ch instanceof SeekableByteChannel sbc) { + if (ch instanceof SeekableByteChannel sbc && + !(ch instanceof FileChannelImpl fci && isOther())) { long pos = sbc.position(); long newPos; if (n > 0) { @@ -224,7 +245,8 @@ public synchronized long skip(long n) throws IOException { public long transferTo(OutputStream out) throws IOException { Objects.requireNonNull(out, "out"); - if (ch instanceof FileChannel fc) { + if (ch instanceof FileChannel fc && + !(fc instanceof FileChannelImpl fci && isOther())) { // FileChannel -> SocketChannel if (out instanceof SocketOutputStream sos) { SocketChannelImpl sc = sos.channel(); diff --git a/src/java.base/share/classes/sun/nio/ch/FileChannelImpl.java b/src/java.base/share/classes/sun/nio/ch/FileChannelImpl.java index f65a3900740..72de217a83c 100644 --- a/src/java.base/share/classes/sun/nio/ch/FileChannelImpl.java +++ b/src/java.base/share/classes/sun/nio/ch/FileChannelImpl.java @@ -454,6 +454,7 @@ private long traceImplWrite(ByteBuffer[] srcs, int offset, int length) throws IO } return bytesWritten; } + // -- Other operations -- @Override @@ -529,6 +530,49 @@ public long size() throws IOException { } } + /** + * Returns an estimate of the number of remaining bytes that can be read + * from this channel without blocking. + */ + int available() throws IOException { + ensureOpen(); + synchronized (positionLock) { + int a = -1; + int ti = -1; + try { + beginBlocking(); + ti = threads.add(); + if (!isOpen()) + return -1; + a = nd.available(fd); + } finally { + threads.remove(ti); + endBlocking(a > -1); + } + return a; + } + } + + /** + * Tells whether the channel represents something other than a regular + * file, directory, or symbolic link. + */ + boolean isOther() throws IOException { + ensureOpen(); + int ti = -1; + Boolean isOther = null; + try { + beginBlocking(); + ti = threads.add(); + if (!isOpen()) + return false; + return isOther = nd.isOther(fd); + } finally { + threads.remove(ti); + endBlocking(isOther != null); + } + } + @Override public FileChannel truncate(long newSize) throws IOException { ensureOpen(); diff --git a/src/java.base/share/classes/sun/nio/ch/FileDispatcher.java b/src/java.base/share/classes/sun/nio/ch/FileDispatcher.java index f13f6324951..35ecef64baf 100644 --- a/src/java.base/share/classes/sun/nio/ch/FileDispatcher.java +++ b/src/java.base/share/classes/sun/nio/ch/FileDispatcher.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -49,6 +49,10 @@ abstract class FileDispatcher extends NativeDispatcher { abstract long size(FileDescriptor fd) throws IOException; + abstract int available(FileDescriptor fd) throws IOException; + + abstract boolean isOther(FileDescriptor fd) throws IOException; + abstract int lock(FileDescriptor fd, boolean blocking, long pos, long size, boolean shared) throws IOException; diff --git a/src/java.base/share/classes/sun/security/provider/SHA3.java b/src/java.base/share/classes/sun/security/provider/SHA3.java index 75430c63916..5f974bc6ea6 100644 --- a/src/java.base/share/classes/sun/security/provider/SHA3.java +++ b/src/java.base/share/classes/sun/security/provider/SHA3.java @@ -32,6 +32,7 @@ import java.util.Arrays; import java.util.Objects; +import jdk.internal.util.Preconditions; import jdk.internal.vm.annotation.IntrinsicCandidate; import static java.lang.Math.min; @@ -99,6 +100,7 @@ private SHA3(String name, int digestLength, byte suffix, int c) { private void implCompressCheck(byte[] b, int ofs) { Objects.requireNonNull(b); + Preconditions.checkIndex(ofs + blockSize - 1, b.length, Preconditions.AIOOBE_FORMATTER); } /** diff --git a/src/java.base/share/classes/sun/security/x509/X509CRLImpl.java b/src/java.base/share/classes/sun/security/x509/X509CRLImpl.java index 9f72a6c5540..c5421114f7d 100644 --- a/src/java.base/share/classes/sun/security/x509/X509CRLImpl.java +++ b/src/java.base/share/classes/sun/security/x509/X509CRLImpl.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -280,14 +280,20 @@ public X500Principal getIssuerX500Principal() { * prevCertIssuer if it does not exist */ private X500Principal getCertIssuer(X509CRLEntryImpl entry, - X500Principal prevCertIssuer) { + X500Principal prevCertIssuer) throws CRLException { CertificateIssuerExtension ciExt = entry.getCertificateIssuerExtension(); if (ciExt != null) { GeneralNames names = ciExt.getNames(); - X500Name issuerDN = (X500Name) names.get(0).getName(); - return issuerDN.asX500Principal(); + Iterator itr = names.iterator(); + while (itr.hasNext()) { + if (itr.next().getName() instanceof X500Name issuerDN) { + return issuerDN.asX500Principal(); + } + } + throw new CRLException("Parsing error: CertificateIssuer " + + "field does not contain an X.500 DN"); } else { return prevCertIssuer; } diff --git a/src/java.base/share/native/libjava/FileInputStream.c b/src/java.base/share/native/libjava/FileInputStream.c index e22499828f5..7db2ec4c208 100644 --- a/src/java.base/share/native/libjava/FileInputStream.c +++ b/src/java.base/share/native/libjava/FileInputStream.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -141,3 +141,9 @@ Java_java_io_FileInputStream_available0(JNIEnv *env, jobject this) { JNU_ThrowIOExceptionWithLastError(env, NULL); return 0; } + +JNIEXPORT jboolean JNICALL +Java_java_io_FileInputStream_isRegularFile0(JNIEnv *env, jobject this, jobject fdo) { + FD fd = getFD(env, this, fis_fd); + return IO_IsRegularFile(env, fd); +} diff --git a/src/java.base/share/native/libjli/emessages.h b/src/java.base/share/native/libjli/emessages.h index 342b116bfc7..6fb7cf4ce90 100644 --- a/src/java.base/share/native/libjli/emessages.h +++ b/src/java.base/share/native/libjli/emessages.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -62,60 +62,33 @@ #define JVM_ERROR1 "Error: Could not create the Java Virtual Machine.\n" GEN_ERROR #define JVM_ERROR2 "Error: Could not detach main thread.\n" JNI_ERROR -#define JAR_ERROR1 "Error: Failed to load Main-Class manifest attribute from\n%s\n%s" #define JAR_ERROR2 "Error: Unable to access jarfile %s" #define JAR_ERROR3 "Error: Invalid or corrupt jarfile %s" -#define CLS_ERROR1 "Error: Could not find the main class %s.\n" JNI_ERROR -#define CLS_ERROR2 "Error: Failed to load Main Class: %s\n%s" -#define CLS_ERROR3 "Error: No main method found in specified class.\n" GEN_ERROR -#define CLS_ERROR4 "Error: Main method not public\n" GEN_ERROR -#define CLS_ERROR5 "Error: main-class: attribute exceeds system limits of %d bytes\n" GEN_ERROR - #define CFG_WARN1 "Warning: %s VM not supported; %s VM will be used" #define CFG_WARN2 "Warning: No leading - on line %d of `%s'" #define CFG_WARN3 "Warning: Missing VM type on line %d of `%s'" -#define CFG_WARN4 "Warning: Missing server class VM on line %d of `%s'" #define CFG_WARN5 "Warning: Unknown VM type on line %d of `%s'" #define CFG_ERROR1 "Error: Corrupt jvm.cfg file; cycle in alias list." #define CFG_ERROR2 "Error: Unable to resolve VM alias %s" #define CFG_ERROR3 "Error: %s VM not supported" -#define CFG_ERROR4 "Error: Unable to locate JRE meeting specification \"%s\"" #define CFG_ERROR5 "Error: Could not determine application home." #define CFG_ERROR6 "Error: could not open `%s'" #define CFG_ERROR7 "Error: no known VMs. (check for corrupt jvm.cfg file)" -#define CFG_ERROR8 "Error: missing `%s' JVM at `%s'.\nPlease install or use the JRE or JDK that contains these missing components." +#define CFG_ERROR8 "Error: missing `%s' JVM at `%s'.\nPlease install a JDK that contains these missing components." #define CFG_ERROR9 "Error: could not determine JVM type." #define CFG_ERROR10 "Error: Argument file size should not be larger than %lu." -#define JRE_ERROR1 "Error: Could not find Java SE Runtime Environment." -#define JRE_ERROR2 "Error: This Java instance does not support a %d-bit JVM.\nPlease install the desired version." -#define JRE_ERROR3 "Error: Improper value at line %d." -#define JRE_ERROR4 "Error: trying to exec %s.\nCheck if file exists and permissions are set correctly." -#define JRE_ERROR5 "Error: Failed to start a %d-bit JVM process from a %d-bit JVM." -#define JRE_ERROR6 "Error: Verify all necessary Java SE components have been installed." -#define JRE_ERROR7 "Error: Either 64-bit processes are not supported by this platform\nor the 64-bit components have not been installed." -#define JRE_ERROR8 "Error: could not find " -#define JRE_ERROR9 "Error: Unable to resolve %s" -#define JRE_ERROR10 "Error: Unable to resolve current executable" -#define JRE_ERROR11 "Error: Path length exceeds maximum length (PATH_MAX)" -#define JRE_ERROR12 "Error: Exec of %s failed" -#define JRE_ERROR13 "Error: String processing operation failed" +#define LAUNCHER_ERROR1 "Error: Could not find Java SE Runtime Environment." +#define LAUNCHER_ERROR2 "Error: could not find " +#define LAUNCHER_ERROR3 "Error: Path length exceeds maximum length (PATH_MAX)" +#define LAUNCHER_ERROR4 "Error: trying to exec %s.\nCheck if file exists and permissions are set correctly." +#define LAUNCHER_ERROR5 "Error: String processing operation failed" #define DLL_ERROR1 "Error: dl failure on line %d" #define DLL_ERROR2 "Error: failed %s, because %s" #define DLL_ERROR3 "Error: could not find executable %s" #define DLL_ERROR4 "Error: Failed to load %s" -#define REG_ERROR1 "Error: opening registry key '%s'" -#define REG_ERROR2 "Error: Failed reading value of registry key:\n\t%s\\CurrentVersion" -#define REG_ERROR3 "Error: Registry key '%s'\\CurrentVersion'\nhas value '%s', but '%s' is required." -#define REG_ERROR4 "Failed reading value of registry key:\n\t%s\\%s\\JavaHome" - -#define SYS_ERROR1 "Error: CreateProcess(%s, ...) failed:" -#define SYS_ERROR2 "Error: WaitForSingleObject() failed." - - - #endif /* _EMESSAGES_H */ diff --git a/src/java.base/share/native/libjli/java.c b/src/java.base/share/native/libjli/java.c index 355ac4b9e28..0bb1daed28a 100644 --- a/src/java.base/share/native/libjli/java.c +++ b/src/java.base/share/native/libjli/java.c @@ -236,7 +236,7 @@ JLI_Launch(int argc, char ** argv, /* main argc, argv */ InvocationFunctions ifn; jlong start = 0, end = 0; char jvmpath[MAXPATHLEN]; - char jrepath[MAXPATHLEN]; + char jdkroot[MAXPATHLEN]; char jvmcfg[MAXPATHLEN]; _fVersion = fullversion; @@ -265,9 +265,9 @@ JLI_Launch(int argc, char ** argv, /* main argc, argv */ } CreateExecutionEnvironment(&argc, &argv, - jrepath, sizeof(jrepath), + jdkroot, sizeof(jdkroot), jvmpath, sizeof(jvmpath), - jvmcfg, sizeof(jvmcfg)); + jvmcfg, sizeof(jvmcfg)); ifn.CreateJavaVM = 0; ifn.GetDefaultJavaVMInitArgs = 0; @@ -2023,7 +2023,7 @@ PrintUsage(JNIEnv* env, jboolean doXUsage) * JVM on the command line. * * The intent of the jvm.cfg file is to allow several JVM libraries to - * be installed in different subdirectories of a single JRE installation, + * be installed in different subdirectories of a single JDK installation, * for space-savings and convenience in testing. * The intent is explicitly not to provide a full aliasing or predicate * mechanism. diff --git a/src/java.base/share/native/libjli/java.h b/src/java.base/share/native/libjli/java.h index 19493fedaae..f39e923cab8 100644 --- a/src/java.base/share/native/libjli/java.h +++ b/src/java.base/share/native/libjli/java.h @@ -111,15 +111,15 @@ GetApplicationHomeFromDll(char *buf, jint bufsize); * Different platforms will implement this, here * pargc is a pointer to the original argc, * pargv is a pointer to the original argv, - * jrepath is an accessible path to the jre as determined by the call - * so_jrepath is the length of the buffer jrepath + * jdkroot is an accessible path to the JDK installation root as determined by the call + * so_jdkroot is the length of the buffer jdkroot * jvmpath is an accessible path to the jvm as determined by the call * so_jvmpath is the length of the buffer jvmpath */ void CreateExecutionEnvironment(int *argc, char ***argv, - char *jrepath, jint so_jrepath, + char *jdkroot, jint so_jdkroot, char *jvmpath, jint so_jvmpath, - char *jvmcfg, jint so_jvmcfg); + char *jvmcfg, jint so_jvmcfg); /* Reports an error message to stderr or a window as appropriate. */ JNIEXPORT void JNICALL diff --git a/src/java.base/unix/classes/sun/nio/ch/UnixFileDispatcherImpl.java b/src/java.base/unix/classes/sun/nio/ch/UnixFileDispatcherImpl.java index 15295bbd35c..e9f8cb637fb 100644 --- a/src/java.base/unix/classes/sun/nio/ch/UnixFileDispatcherImpl.java +++ b/src/java.base/unix/classes/sun/nio/ch/UnixFileDispatcherImpl.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -93,6 +93,14 @@ long size(FileDescriptor fd) throws IOException { return size0(fd); } + int available(FileDescriptor fd) throws IOException { + return available0(fd); + } + + boolean isOther(FileDescriptor fd) throws IOException { + return isOther0(fd); + } + int lock(FileDescriptor fd, boolean blocking, long pos, long size, boolean shared) throws IOException { @@ -196,6 +204,10 @@ static native int truncate0(FileDescriptor fd, long size) static native long size0(FileDescriptor fd) throws IOException; + static native int available0(FileDescriptor fd) throws IOException; + + static native boolean isOther0(FileDescriptor fd) throws IOException; + static native int lock0(FileDescriptor fd, boolean blocking, long pos, long size, boolean shared) throws IOException; diff --git a/src/java.base/unix/classes/sun/nio/fs/UnixNativeDispatcher.java b/src/java.base/unix/classes/sun/nio/fs/UnixNativeDispatcher.java index a069a9a04ba..ab8975c6d12 100644 --- a/src/java.base/unix/classes/sun/nio/fs/UnixNativeDispatcher.java +++ b/src/java.base/unix/classes/sun/nio/fs/UnixNativeDispatcher.java @@ -569,7 +569,7 @@ static boolean openatSupported() { } /** - * Supports futimes or futimesat + * Supports futimes */ static boolean futimesSupported() { return (capabilities & SUPPORTS_FUTIMES) != 0; diff --git a/src/java.base/unix/native/libjava/Console_md.c b/src/java.base/unix/native/libjava/Console_md.c index e5b760a1499..1e71ab3a6b2 100644 --- a/src/java.base/unix/native/libjava/Console_md.c +++ b/src/java.base/unix/native/libjava/Console_md.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -36,9 +36,3 @@ Java_java_io_Console_istty(JNIEnv *env, jclass cls) { return isatty(fileno(stdin)) && isatty(fileno(stdout)); } - -JNIEXPORT jstring JNICALL -Java_java_io_Console_encoding(JNIEnv *env, jclass cls) -{ - return NULL; -} diff --git a/src/java.base/unix/native/libjava/io_util_md.c b/src/java.base/unix/native/libjava/io_util_md.c index 9895ac3b73f..2e81cbd05c2 100644 --- a/src/java.base/unix/native/libjava/io_util_md.c +++ b/src/java.base/unix/native/libjava/io_util_md.c @@ -264,3 +264,13 @@ handleGetLength(FD fd) #endif return sb.st_size; } + +jboolean +handleIsRegularFile(JNIEnv* env, FD fd) +{ + struct stat fbuf; + if (fstat(fd, &fbuf) == -1) + JNU_ThrowIOExceptionWithLastError(env, "fstat failed"); + + return S_ISREG(fbuf.st_mode) ? JNI_TRUE : JNI_FALSE; +} diff --git a/src/java.base/unix/native/libjava/io_util_md.h b/src/java.base/unix/native/libjava/io_util_md.h index 84e97b4ace5..5a8cb8655ef 100644 --- a/src/java.base/unix/native/libjava/io_util_md.h +++ b/src/java.base/unix/native/libjava/io_util_md.h @@ -41,6 +41,7 @@ jint handleAvailable(FD fd, jlong *pbytes); jint handleSetLength(FD fd, jlong length); jlong handleGetLength(FD fd); FD handleOpen(const char *path, int oflag, int mode); +jboolean handleIsRegularFile(JNIEnv* env, FD fd); /* * Functions to get fd from the java.io.FileDescriptor field @@ -66,6 +67,7 @@ FD getFD(JNIEnv *env, jobject cur, jfieldID fid); #define IO_Available handleAvailable #define IO_SetLength handleSetLength #define IO_GetLength handleGetLength +#define IO_IsRegularFile handleIsRegularFile /* * On Solaris, the handle field is unused diff --git a/src/java.base/unix/native/libjli/java_md.c b/src/java.base/unix/native/libjli/java_md.c index 7f2f5638a6b..c2d2ac93f36 100644 --- a/src/java.base/unix/native/libjli/java_md.c +++ b/src/java.base/unix/native/libjli/java_md.c @@ -253,8 +253,8 @@ RequiresSetenv(const char *jvmpath) { /* * Prevent recursions. Since LD_LIBRARY_PATH is the one which will be set by - * previous versions of the JRE, thus it is the only path that matters here. - * So we check to see if the desired JRE is set. + * previous versions of the JDK, thus it is the only path that matters here. + * So we check to see if the desired JDK is set. */ JLI_StrNCpy(jpath, jvmpath, PATH_MAX); p = JLI_StrRChr(jpath, '/'); @@ -273,7 +273,7 @@ RequiresSetenv(const char *jvmpath) { void CreateExecutionEnvironment(int *pargc, char ***pargv, - char jrepath[], jint so_jrepath, + char jdkroot[], jint so_jdkroot, char jvmpath[], jint so_jvmpath, char jvmcfg[], jint so_jvmcfg) { @@ -294,13 +294,13 @@ CreateExecutionEnvironment(int *pargc, char ***pargv, SetExecname(*pargv); /* Check to see if the jvmpath exists */ - /* Find out where the JRE is that we will be using. */ - if (!GetJREPath(jrepath, so_jrepath, JNI_FALSE)) { - JLI_ReportErrorMessage(JRE_ERROR1); + /* Find out where the JDK is that we will be using. */ + if (!GetJDKInstallRoot(jdkroot, so_jdkroot, JNI_FALSE)) { + JLI_ReportErrorMessage(LAUNCHER_ERROR1); exit(2); } JLI_Snprintf(jvmcfg, so_jvmcfg, "%s%slib%sjvm.cfg", - jrepath, FILESEP, FILESEP); + jdkroot, FILESEP, FILESEP); /* Find the specified JVM type */ if (ReadKnownVMs(jvmcfg, JNI_FALSE) < 1) { JLI_ReportErrorMessage(CFG_ERROR7); @@ -314,7 +314,7 @@ CreateExecutionEnvironment(int *pargc, char ***pargv, exit(4); } - if (!GetJVMPath(jrepath, jvmtype, jvmpath, so_jvmpath)) { + if (!GetJVMPath(jdkroot, jvmtype, jvmpath, so_jvmpath)) { JLI_ReportErrorMessage(CFG_ERROR8, jvmtype, jvmpath); exit(4); } @@ -339,8 +339,8 @@ CreateExecutionEnvironment(int *pargc, char ***pargv, * We will set the LD_LIBRARY_PATH as follows: * * o $JVMPATH (directory portion only) - * o $JRE/lib - * o $JRE/../lib + * o $JDK/lib + * o $JDK/../lib * * followed by the user's previous effective LD_LIBRARY_PATH, if * any. @@ -352,7 +352,7 @@ CreateExecutionEnvironment(int *pargc, char ***pargv, { /* New scope to declare local variable */ char *new_jvmpath = JLI_StringDup(jvmpath); new_runpath_size = ((runpath != NULL) ? JLI_StrLen(runpath) : 0) + - 2 * JLI_StrLen(jrepath) + + 2 * JLI_StrLen(jdkroot) + JLI_StrLen(new_jvmpath) + 52; new_runpath = JLI_MemAlloc(new_runpath_size); newpath = new_runpath + JLI_StrLen(LD_LIBRARY_PATH "="); @@ -372,8 +372,8 @@ CreateExecutionEnvironment(int *pargc, char ***pargv, "%s/lib:" "%s/../lib", new_jvmpath, - jrepath, - jrepath + jdkroot, + jdkroot ); JLI_MemFree(new_jvmpath); @@ -402,7 +402,7 @@ CreateExecutionEnvironment(int *pargc, char ***pargv, if (runpath != 0) { /* ensure storage for runpath + colon + NULL */ if ((JLI_StrLen(runpath) + 1 + 1) > new_runpath_size) { - JLI_ReportErrorMessageSys(JRE_ERROR11); + JLI_ReportErrorMessageSys(LAUNCHER_ERROR3); exit(1); } JLI_StrCat(new_runpath, ":"); @@ -437,14 +437,14 @@ CreateExecutionEnvironment(int *pargc, char ***pargv, #else /* !SETENV_REQUIRED */ execv(newexec, argv); #endif /* SETENV_REQUIRED */ - JLI_ReportErrorMessageSys(JRE_ERROR4, newexec); + JLI_ReportErrorMessageSys(LAUNCHER_ERROR4, newexec); } exit(1); } static jboolean -GetJVMPath(const char *jrepath, const char *jvmtype, +GetJVMPath(const char *jdkroot, const char *jvmtype, char *jvmpath, jint jvmpathsize) { struct stat s; @@ -452,7 +452,7 @@ GetJVMPath(const char *jrepath, const char *jvmtype, if (JLI_StrChr(jvmtype, '/')) { JLI_Snprintf(jvmpath, jvmpathsize, "%s/" JVM_DLL, jvmtype); } else { - JLI_Snprintf(jvmpath, jvmpathsize, "%s/lib/%s/" JVM_DLL, jrepath, jvmtype); + JLI_Snprintf(jvmpath, jvmpathsize, "%s/lib/%s/" JVM_DLL, jdkroot, jvmtype); } JLI_TraceLauncher("Does `%s' exist ... ", jvmpath); @@ -467,31 +467,31 @@ GetJVMPath(const char *jrepath, const char *jvmtype, } /* - * Find path to JRE based on .exe's location or registry settings. + * Find path to the JDK installation root */ static jboolean -GetJREPath(char *path, jint pathsize, jboolean speculative) +GetJDKInstallRoot(char *path, jint pathsize, jboolean speculative) { char libjava[MAXPATHLEN]; struct stat s; - JLI_TraceLauncher("Attempt to get JRE path from launcher executable path\n"); + JLI_TraceLauncher("Attempt to get JDK installation root from launcher executable path\n"); if (GetApplicationHome(path, pathsize)) { - /* Is JRE co-located with the application? */ + /* Is JDK co-located with the application? */ JLI_Snprintf(libjava, sizeof(libjava), "%s/lib/" JAVA_DLL, path); if (access(libjava, F_OK) == 0) { - JLI_TraceLauncher("JRE path is %s\n", path); + JLI_TraceLauncher("JDK installation root path is %s\n", path); return JNI_TRUE; } } - JLI_TraceLauncher("Attempt to get JRE path from shared lib of the image\n"); + JLI_TraceLauncher("Attempt to get JDK installation root path from shared lib of the image\n"); if (GetApplicationHomeFromDll(path, pathsize)) { JLI_Snprintf(libjava, sizeof(libjava), "%s/lib/" JAVA_DLL, path); if (stat(libjava, &s) == 0) { - JLI_TraceLauncher("JRE path is %s\n", path); + JLI_TraceLauncher("JDK installation root path is %s\n", path); return JNI_TRUE; } } @@ -501,14 +501,14 @@ GetJREPath(char *path, jint pathsize, jboolean speculative) if (GetApplicationHomeFromLibpath(path, pathsize)) { JLI_Snprintf(libjava, sizeof(libjava), "%s/lib/" JAVA_DLL, path); if (stat(libjava, &s) == 0) { - JLI_TraceLauncher("JRE path is %s\n", path); + JLI_TraceLauncher("JDK installation root path is %s\n", path); return JNI_TRUE; } } #endif if (!speculative) - JLI_ReportErrorMessage(JRE_ERROR8 JAVA_DLL); + JLI_ReportErrorMessage(LAUNCHER_ERROR2 JAVA_DLL); return JNI_FALSE; } @@ -597,22 +597,22 @@ static void* hSplashLib = NULL; void* SplashProcAddress(const char* name) { if (!hSplashLib) { int ret; - char jrePath[MAXPATHLEN]; + char jdkRoot[MAXPATHLEN]; char splashPath[MAXPATHLEN]; - if (!GetJREPath(jrePath, sizeof(jrePath), JNI_FALSE)) { - JLI_ReportErrorMessage(JRE_ERROR1); + if (!GetJDKInstallRoot(jdkRoot, sizeof(jdkRoot), JNI_FALSE)) { + JLI_ReportErrorMessage(LAUNCHER_ERROR1); return NULL; } ret = JLI_Snprintf(splashPath, sizeof(splashPath), "%s/lib/%s", - jrePath, SPLASHSCREEN_SO); + jdkRoot, SPLASHSCREEN_SO); if (ret >= (int) sizeof(splashPath)) { - JLI_ReportErrorMessage(JRE_ERROR11); + JLI_ReportErrorMessage(LAUNCHER_ERROR3); return NULL; } if (ret < 0) { - JLI_ReportErrorMessage(JRE_ERROR13); + JLI_ReportErrorMessage(LAUNCHER_ERROR5); return NULL; } hSplashLib = dlopen(splashPath, RTLD_LAZY | RTLD_GLOBAL); diff --git a/src/java.base/unix/native/libjli/java_md.h b/src/java.base/unix/native/libjli/java_md.h index acc75ab091d..ef0740b18f0 100644 --- a/src/java.base/unix/native/libjli/java_md.h +++ b/src/java.base/unix/native/libjli/java_md.h @@ -55,9 +55,9 @@ int UnsetEnv(char *name); char *FindExecName(char *program); const char *SetExecname(char **argv); const char *GetExecName(); -static jboolean GetJVMPath(const char *jrepath, const char *jvmtype, +static jboolean GetJVMPath(const char *jdkroot, const char *jvmtype, char *jvmpath, jint jvmpathsize); -static jboolean GetJREPath(char *path, jint pathsize, jboolean speculative); +static jboolean GetJDKInstallRoot(char *path, jint pathsize, jboolean speculative); #if defined(_AIX) jboolean GetApplicationHomeFromLibpath(char *buf, jint bufsize); diff --git a/src/java.base/unix/native/libjli/java_md_common.c b/src/java.base/unix/native/libjli/java_md_common.c index 453d605f710..f67a50304d0 100644 --- a/src/java.base/unix/native/libjli/java_md_common.c +++ b/src/java.base/unix/native/libjli/java_md_common.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -76,7 +76,7 @@ TruncatePath(char *buf, jboolean pathisdll) } /* - * Retrieves the path to the JRE home by locating the executable file + * Retrieves the path to the JDK home by locating the executable file * of the current process and then truncating the path to the executable */ jboolean @@ -93,7 +93,7 @@ GetApplicationHome(char *buf, jint bufsize) } /* - * Retrieves the path to the JRE home by locating the + * Retrieves the path to the JDK home by locating the * shared library and then truncating the path to it. */ jboolean @@ -124,7 +124,7 @@ LibjavaExists(const char *path) } /* - * Retrieves the path to the JRE home by locating libjava.so in + * Retrieves the path to the JDK home by locating libjava.so in * LIBPATH and then truncating the path to it. */ jboolean @@ -262,7 +262,7 @@ JLI_ReportExceptionDescription(JNIEnv * env) { /* * Since using the file system as a registry is a bit risky, perform * additional sanity checks on the identified directory to validate - * it as a valid jre/sdk. + * it as a valid JDK. * * Return 0 if the tests fail; otherwise return non-zero (true). * diff --git a/src/java.base/unix/native/libnio/ch/UnixFileDispatcherImpl.c b/src/java.base/unix/native/libnio/ch/UnixFileDispatcherImpl.c index 918d76bfc53..0c6328c5690 100644 --- a/src/java.base/unix/native/libnio/ch/UnixFileDispatcherImpl.c +++ b/src/java.base/unix/native/libnio/ch/UnixFileDispatcherImpl.c @@ -23,6 +23,7 @@ * questions. */ +#include #include #include #include @@ -41,8 +42,10 @@ #include "nio.h" #include "nio_util.h" #include "sun_nio_ch_UnixFileDispatcherImpl.h" +#include "java_lang_Integer.h" #include "java_lang_Long.h" #include +#include "io_util_md.h" #if defined(_AIX) #define statvfs statvfs64 @@ -178,6 +181,57 @@ Java_sun_nio_ch_UnixFileDispatcherImpl_size0(JNIEnv *env, jobject this, jobject return fbuf.st_size; } +JNIEXPORT jint JNICALL +Java_sun_nio_ch_UnixFileDispatcherImpl_available0(JNIEnv *env, jobject this, jobject fdo) +{ + jint fd = fdval(env, fdo); + struct stat fbuf; + jlong size = -1; + + if (fstat(fd, &fbuf) != -1) { + int mode = fbuf.st_mode; + if (S_ISCHR(mode) || S_ISFIFO(mode) || S_ISSOCK(mode)) { + int n = ioctl(fd, FIONREAD, &n); + if (n >= 0) { + return n; + } + } else if (S_ISREG(mode)) { + size = fbuf.st_size; + } + } + + jlong position; + if ((position = lseek(fd, 0, SEEK_CUR)) == -1) { + return 0; + } + + if (size < position) { + if ((size = lseek(fd, 0, SEEK_END)) == -1) + return 0; + else if (lseek(fd, position, SEEK_SET) == -1) + return 0; + } + + jlong available = size - position; + return available > java_lang_Integer_MAX_VALUE ? + java_lang_Integer_MAX_VALUE : (jint)available; +} + +JNIEXPORT jboolean JNICALL +Java_sun_nio_ch_UnixFileDispatcherImpl_isOther0(JNIEnv *env, jobject this, jobject fdo) +{ + jint fd = fdval(env, fdo); + struct stat fbuf; + + if (fstat(fd, &fbuf) == -1) + handle(env, -1, "isOther failed"); + + if (S_ISREG(fbuf.st_mode) || S_ISDIR(fbuf.st_mode) || S_ISLNK(fbuf.st_mode)) + return JNI_FALSE; + + return JNI_TRUE; +} + JNIEXPORT jint JNICALL Java_sun_nio_ch_UnixFileDispatcherImpl_lock0(JNIEnv *env, jobject this, jobject fdo, jboolean block, jlong pos, jlong size, diff --git a/src/java.base/unix/native/libnio/fs/UnixNativeDispatcher.c b/src/java.base/unix/native/libnio/fs/UnixNativeDispatcher.c index 61e9215471a..9a68a12c219 100644 --- a/src/java.base/unix/native/libnio/fs/UnixNativeDispatcher.c +++ b/src/java.base/unix/native/libnio/fs/UnixNativeDispatcher.c @@ -204,7 +204,7 @@ typedef int openat_func(int, const char *, int, ...); typedef int fstatat_func(int, const char *, struct stat *, int); typedef int unlinkat_func(int, const char*, int); typedef int renameat_func(int, const char*, int, const char*); -typedef int futimesat_func(int, const char *, const struct timeval *); +typedef int futimes_func(int, const struct timeval *); typedef int futimens_func(int, const struct timespec *); typedef int lutimes_func(const char *, const struct timeval *); typedef DIR* fdopendir_func(int); @@ -217,7 +217,7 @@ static openat_func* my_openat_func = NULL; static fstatat_func* my_fstatat_func = NULL; static unlinkat_func* my_unlinkat_func = NULL; static renameat_func* my_renameat_func = NULL; -static futimesat_func* my_futimesat_func = NULL; +static futimes_func* my_futimes_func = NULL; static futimens_func* my_futimens_func = NULL; static lutimes_func* my_lutimes_func = NULL; static fdopendir_func* my_fdopendir_func = NULL; @@ -363,8 +363,8 @@ Java_sun_nio_fs_UnixNativeDispatcher_init(JNIEnv* env, jclass this) /* system calls that might not be available at run time */ #if defined(_ALLBSD_SOURCE) - my_openat_func = (openat_func*)dlsym(RTLD_DEFAULT, "openat"); - my_fstatat_func = (fstatat_func*)dlsym(RTLD_DEFAULT, "fstatat"); + my_openat_func = (openat_func*) openat; + my_fstatat_func = (fstatat_func*) fstatat; #else // Make sure we link to the 64-bit version of the functions my_openat_func = (openat_func*) dlsym(RTLD_DEFAULT, "openat64"); @@ -373,22 +373,22 @@ Java_sun_nio_fs_UnixNativeDispatcher_init(JNIEnv* env, jclass this) my_unlinkat_func = (unlinkat_func*) dlsym(RTLD_DEFAULT, "unlinkat"); my_renameat_func = (renameat_func*) dlsym(RTLD_DEFAULT, "renameat"); #if defined(__linux__) && defined(__arm__) - my_futimesat_func = (futimesat_func*) lookup_time_t_function("futimesat", - "__futimesat64"); + my_futimes_func = (futimes_func*) lookup_time_t_function("futimes", + "__futimes64"); my_lutimes_func = (lutimes_func*) lookup_time_t_function("lutimes", "__lutimes64"); my_futimens_func = (futimens_func*) lookup_time_t_function("futimens", "__futimens64"); #else -#ifndef _ALLBSD_SOURCE - my_futimesat_func = (futimesat_func*) dlsym(RTLD_DEFAULT, "futimesat"); + my_futimes_func = (futimes_func*) dlsym(RTLD_DEFAULT, "futimes"); my_lutimes_func = (lutimes_func*) dlsym(RTLD_DEFAULT, "lutimes"); -#endif my_futimens_func = (futimens_func*) dlsym(RTLD_DEFAULT, "futimens"); #endif #if defined(_AIX) // Make sure we link to the 64-bit version of the function my_fdopendir_func = (fdopendir_func*) dlsym(RTLD_DEFAULT, "fdopendir64"); +#elif defined(_ALLBSD_SOURCE) + my_fdopendir_func = (fdopendir_func*) fdopendir; #else my_fdopendir_func = (fdopendir_func*) dlsym(RTLD_DEFAULT, "fdopendir"); #endif @@ -399,13 +399,13 @@ Java_sun_nio_fs_UnixNativeDispatcher_init(JNIEnv* env, jclass this) my_fstatat_func = (fstatat_func*)&fstatat_wrapper; #endif - /* supports futimes or futimesat, futimens, and/or lutimes */ + /* supports futimes, futimens, and/or lutimes */ #ifdef _ALLBSD_SOURCE capabilities |= sun_nio_fs_UnixNativeDispatcher_SUPPORTS_FUTIMES; capabilities |= sun_nio_fs_UnixNativeDispatcher_SUPPORTS_LUTIMES; #else - if (my_futimesat_func != NULL) + if (my_futimes_func != NULL) capabilities |= sun_nio_fs_UnixNativeDispatcher_SUPPORTS_FUTIMES; if (my_lutimes_func != NULL) capabilities |= sun_nio_fs_UnixNativeDispatcher_SUPPORTS_LUTIMES; @@ -417,7 +417,7 @@ Java_sun_nio_fs_UnixNativeDispatcher_init(JNIEnv* env, jclass this) if (my_openat_func != NULL && my_fstatat_func != NULL && my_unlinkat_func != NULL && my_renameat_func != NULL && - my_futimesat_func != NULL && my_fdopendir_func != NULL) + my_futimes_func != NULL && my_fdopendir_func != NULL) { capabilities |= sun_nio_fs_UnixNativeDispatcher_SUPPORTS_OPENAT; } @@ -914,11 +914,11 @@ Java_sun_nio_fs_UnixNativeDispatcher_futimes0(JNIEnv* env, jclass this, jint fil #ifdef _ALLBSD_SOURCE RESTARTABLE(futimes(filedes, ×[0]), err); #else - if (my_futimesat_func == NULL) { - JNU_ThrowInternalError(env, "my_futimesat_func is NULL"); + if (my_futimes_func == NULL) { + JNU_ThrowInternalError(env, "my_futimes_func is NULL"); return; } - RESTARTABLE((*my_futimesat_func)(filedes, NULL, ×[0]), err); + RESTARTABLE((*my_futimes_func)(filedes, ×[0]), err); #endif if (err == -1) { throwUnixException(env, errno); diff --git a/src/java.base/windows/classes/sun/nio/ch/FileDispatcherImpl.java b/src/java.base/windows/classes/sun/nio/ch/FileDispatcherImpl.java index d53d9eb9e4b..6b7a81c2e85 100644 --- a/src/java.base/windows/classes/sun/nio/ch/FileDispatcherImpl.java +++ b/src/java.base/windows/classes/sun/nio/ch/FileDispatcherImpl.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -101,6 +101,14 @@ long size(FileDescriptor fd) throws IOException { return size0(fd); } + int available(FileDescriptor fd) throws IOException { + return available0(fd); + } + + boolean isOther(FileDescriptor fd) throws IOException { + return isOther0(fd); + } + int lock(FileDescriptor fd, boolean blocking, long pos, long size, boolean shared) throws IOException { @@ -223,6 +231,10 @@ static native int truncate0(FileDescriptor fd, long size) static native long size0(FileDescriptor fd) throws IOException; + static native int available0(FileDescriptor fd) throws IOException; + + static native boolean isOther0(FileDescriptor fd) throws IOException; + static native int lock0(FileDescriptor fd, boolean blocking, long pos, long size, boolean shared) throws IOException; diff --git a/src/java.base/windows/native/libjava/Console_md.c b/src/java.base/windows/native/libjava/Console_md.c index 9423f7d9e31..f73e62f8e26 100644 --- a/src/java.base/windows/native/libjava/Console_md.c +++ b/src/java.base/windows/native/libjava/Console_md.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -49,17 +49,3 @@ Java_java_io_Console_istty(JNIEnv *env, jclass cls) return JNI_TRUE; } - -JNIEXPORT jstring JNICALL -Java_java_io_Console_encoding(JNIEnv *env, jclass cls) -{ - char buf[64]; - int cp = GetConsoleCP(); - if (cp >= 874 && cp <= 950) - snprintf(buf, sizeof(buf), "ms%d", cp); - else if (cp == 65001) - snprintf(buf, sizeof(buf), "UTF-8"); - else - snprintf(buf, sizeof(buf), "cp%d", cp); - return JNU_NewStringPlatform(env, buf); -} diff --git a/src/java.base/windows/native/libjava/io_util_md.c b/src/java.base/windows/native/libjava/io_util_md.c index a5f1ced36c5..6a8bd434280 100644 --- a/src/java.base/windows/native/libjava/io_util_md.c +++ b/src/java.base/windows/native/libjava/io_util_md.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -595,3 +595,9 @@ handleGetLength(FD fd) { return -1; } } + +jboolean +handleIsRegularFile(JNIEnv* env, FD fd) +{ + return JNI_TRUE; +} diff --git a/src/java.base/windows/native/libjava/io_util_md.h b/src/java.base/windows/native/libjava/io_util_md.h index d9f239a25c5..82615cc8222 100644 --- a/src/java.base/windows/native/libjava/io_util_md.h +++ b/src/java.base/windows/native/libjava/io_util_md.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -51,6 +51,7 @@ jint handleAppend(FD fd, const void *buf, jint len); void fileDescriptorClose(JNIEnv *env, jobject this); JNIEXPORT jlong JNICALL handleLseek(FD fd, jlong offset, jint whence); +jboolean handleIsRegularFile(JNIEnv* env, FD fd); /* * Returns an opaque handle to file named by "path". If an error occurs, @@ -82,6 +83,7 @@ FD getFD(JNIEnv *env, jobject cur, jfieldID fid); #define IO_Available handleAvailable #define IO_SetLength handleSetLength #define IO_GetLength handleGetLength +#define IO_IsRegularFile handleIsRegularFile /* * Setting the handle field in Java_java_io_FileDescriptor_set for diff --git a/src/java.base/windows/native/libjli/java_md.c b/src/java.base/windows/native/libjli/java_md.c index 6ff155bcb9b..a1012bcc4f9 100644 --- a/src/java.base/windows/native/libjli/java_md.c +++ b/src/java.base/windows/native/libjli/java_md.c @@ -45,9 +45,9 @@ /* * Prototypes. */ -static jboolean GetJVMPath(const char *jrepath, const char *jvmtype, +static jboolean GetJVMPath(const char *jdkroot, const char *jvmtype, char *jvmpath, jint jvmpathsize); -static jboolean GetJREPath(char *path, jint pathsize); +static jboolean GetJDKInstallRoot(char *path, jint pathsize); /* We supports warmup for UI stack that is performed in parallel * to VM initialization. @@ -152,7 +152,7 @@ IsJavaw() */ void CreateExecutionEnvironment(int *pargc, char ***pargv, - char *jrepath, jint so_jrepath, + char *jdkroot, jint so_jdkroot, char *jvmpath, jint so_jvmpath, char *jvmcfg, jint so_jvmcfg) { @@ -160,14 +160,14 @@ CreateExecutionEnvironment(int *pargc, char ***pargv, int i = 0; char** argv = *pargv; - /* Find out where the JRE is that we will be using. */ - if (!GetJREPath(jrepath, so_jrepath)) { - JLI_ReportErrorMessage(JRE_ERROR1); + /* Find out where the JDK is that we will be using. */ + if (!GetJDKInstallRoot(jdkroot, so_jdkroot)) { + JLI_ReportErrorMessage(LAUNCHER_ERROR1); exit(2); } JLI_Snprintf(jvmcfg, so_jvmcfg, "%s%slib%sjvm.cfg", - jrepath, FILESEP, FILESEP); + jdkroot, FILESEP, FILESEP); /* Find the specified JVM type */ if (ReadKnownVMs(jvmcfg, JNI_FALSE) < 1) { @@ -182,7 +182,7 @@ CreateExecutionEnvironment(int *pargc, char ***pargv, } jvmpath[0] = '\0'; - if (!GetJVMPath(jrepath, jvmtype, jvmpath, so_jvmpath)) { + if (!GetJVMPath(jdkroot, jvmtype, jvmpath, so_jvmpath)) { JLI_ReportErrorMessage(CFG_ERROR8, jvmtype, jvmpath); exit(4); } @@ -223,18 +223,18 @@ LoadMSVCRT() if (!loaded) { /* - * The Microsoft C Runtime Library needs to be loaded first. A copy is - * assumed to be present in the "JRE path" directory. If it is not found - * there (or "JRE path" fails to resolve), skip the explicit load and let - * nature take its course, which is likely to be a failure to execute. - * The makefiles will provide the correct lib contained in quotes in the - * macro MSVCR_DLL_NAME. + * The Microsoft C Runtime Library needs to be loaded first. A copy is + * assumed to be present in the "bin" directory of the JDK installation root. + * If it is not found there (or the JDK installation root fails to resolve), + * skip the explicit load and let nature take its course, which is likely to + * be a failure to execute. The makefiles will provide the correct lib contained + * in quotes in the macro MSVCR_DLL_NAME. */ #ifdef MSVCR_DLL_NAME - if (GetJREPath(crtpath, MAXPATHLEN)) { + if (GetJDKInstallRoot(crtpath, MAXPATHLEN)) { if (JLI_StrLen(crtpath) + JLI_StrLen("\\bin\\") + JLI_StrLen(MSVCR_DLL_NAME) >= MAXPATHLEN) { - JLI_ReportErrorMessage(JRE_ERROR11); + JLI_ReportErrorMessage(LAUNCHER_ERROR3); return JNI_FALSE; } (void)JLI_StrCat(crtpath, "\\bin\\" MSVCR_DLL_NAME); /* Add crt dll */ @@ -248,10 +248,10 @@ LoadMSVCRT() } #endif /* MSVCR_DLL_NAME */ #ifdef VCRUNTIME_1_DLL_NAME - if (GetJREPath(crtpath, MAXPATHLEN)) { + if (GetJDKInstallRoot(crtpath, MAXPATHLEN)) { if (JLI_StrLen(crtpath) + JLI_StrLen("\\bin\\") + JLI_StrLen(VCRUNTIME_1_DLL_NAME) >= MAXPATHLEN) { - JLI_ReportErrorMessage(JRE_ERROR11); + JLI_ReportErrorMessage(LAUNCHER_ERROR3); return JNI_FALSE; } (void)JLI_StrCat(crtpath, "\\bin\\" VCRUNTIME_1_DLL_NAME); /* Add crt dll */ @@ -265,10 +265,10 @@ LoadMSVCRT() } #endif /* VCRUNTIME_1_DLL_NAME */ #ifdef MSVCP_DLL_NAME - if (GetJREPath(crtpath, MAXPATHLEN)) { + if (GetJDKInstallRoot(crtpath, MAXPATHLEN)) { if (JLI_StrLen(crtpath) + JLI_StrLen("\\bin\\") + JLI_StrLen(MSVCP_DLL_NAME) >= MAXPATHLEN) { - JLI_ReportErrorMessage(JRE_ERROR11); + JLI_ReportErrorMessage(LAUNCHER_ERROR3); return JNI_FALSE; } (void)JLI_StrCat(crtpath, "\\bin\\" MSVCP_DLL_NAME); /* Add prt dll */ @@ -288,47 +288,47 @@ LoadMSVCRT() /* - * Find path to JRE based on .exe's location or registry settings. + * Find path to JDK installation root based on .exe's location */ jboolean -GetJREPath(char *path, jint pathsize) +GetJDKInstallRoot(char *path, jint pathsize) { char javadll[MAXPATHLEN]; struct stat s; - JLI_TraceLauncher("Attempt to get JRE path from launcher executable path\n"); + JLI_TraceLauncher("Attempt to get JDK installation root path from launcher executable path\n"); if (GetApplicationHome(path, pathsize)) { - /* Is JRE co-located with the application? */ + /* Is the JDK co-located with the application? */ JLI_Snprintf(javadll, sizeof(javadll), "%s\\bin\\" JAVA_DLL, path); if (stat(javadll, &s) == 0) { - JLI_TraceLauncher("JRE path is %s\n", path); + JLI_TraceLauncher("JDK installation root path is %s\n", path); return JNI_TRUE; } } - JLI_TraceLauncher("Attempt to get JRE path from shared lib of the image\n"); + JLI_TraceLauncher("Attempt to get JDK installation root path from shared lib of the image\n"); - /* Try getting path to JRE from path to JLI.DLL */ + /* Try getting path to JDK from path to JLI.DLL */ if (GetApplicationHomeFromDll(path, pathsize)) { JLI_Snprintf(javadll, sizeof(javadll), "%s\\bin\\" JAVA_DLL, path); if (stat(javadll, &s) == 0) { - JLI_TraceLauncher("JRE path is %s\n", path); + JLI_TraceLauncher("JDK installation root path is %s\n", path); return JNI_TRUE; } } - JLI_ReportErrorMessage(JRE_ERROR8 JAVA_DLL); + JLI_ReportErrorMessage(LAUNCHER_ERROR2 JAVA_DLL); return JNI_FALSE; } /* - * Given a JRE location and a JVM type, construct what the name the + * Given a JDK installation location and a JVM type, construct what the name the * JVM shared library will be. Return true, if such a library * exists, false otherwise. */ static jboolean -GetJVMPath(const char *jrepath, const char *jvmtype, +GetJVMPath(const char *jdkroot, const char *jvmtype, char *jvmpath, jint jvmpathsize) { struct stat s; @@ -336,7 +336,7 @@ GetJVMPath(const char *jrepath, const char *jvmtype, JLI_Snprintf(jvmpath, jvmpathsize, "%s\\" JVM_DLL, jvmtype); } else { JLI_Snprintf(jvmpath, jvmpathsize, "%s\\bin\\%s\\" JVM_DLL, - jrepath, jvmtype); + jdkroot, jvmtype); } if (stat(jvmpath, &s) == 0) { return JNI_TRUE; @@ -356,10 +356,11 @@ LoadJavaVM(const char *jvmpath, InvocationFunctions *ifn) JLI_TraceLauncher("JVM path is %s\n", jvmpath); /* - * The Microsoft C Runtime Library needs to be loaded first. A copy is - * assumed to be present in the "JRE path" directory. If it is not found - * there (or "JRE path" fails to resolve), skip the explicit load and let - * nature take its course, which is likely to be a failure to execute. + * The Microsoft C Runtime Library needs to be loaded first. A copy is + * assumed to be present within the JDK. If it is not found there + * (or the JDK installation root fails to resolve), skip the explicit + * load and let nature take its course, which is likely to be a failure + * to execute. * */ LoadMSVCRT(); @@ -403,7 +404,7 @@ TruncatePath(char *buf) } /* - * Retrieves the path to the JRE home by locating the executable file + * Retrieves the path to the JDK home by locating the executable file * of the current process and then truncating the path to the executable */ jboolean @@ -414,7 +415,7 @@ GetApplicationHome(char *buf, jint bufsize) } /* - * Retrieves the path to the JRE home by locating JLI.DLL and + * Retrieves the path to the JDK home by locating JLI.DLL and * then truncating the path to JLI.DLL */ jboolean @@ -424,7 +425,7 @@ GetApplicationHomeFromDll(char *buf, jint bufsize) DWORD flags = GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS | GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT; - if (GetModuleHandleEx(flags, (LPCSTR)&GetJREPath, &module) != 0) { + if (GetModuleHandleEx(flags, (LPCSTR)&GetJDKInstallRoot, &module) != 0) { if (GetModuleFileName(module, buf, bufsize) != 0) { return TruncatePath(buf); } @@ -659,7 +660,7 @@ static HMODULE hSplashLib = NULL; void* SplashProcAddress(const char* name) { char libraryPath[MAXPATHLEN]; /* some extra space for JLI_StrCat'ing SPLASHSCREEN_SO */ - if (!GetJREPath(libraryPath, MAXPATHLEN)) { + if (!GetJDKInstallRoot(libraryPath, MAXPATHLEN)) { return NULL; } if (JLI_StrLen(libraryPath)+JLI_StrLen(SPLASHSCREEN_SO) >= MAXPATHLEN) { @@ -830,7 +831,7 @@ int AWTPreload(const char *funcName) if (hPreloadAwt == NULL) { /* awt.dll is not loaded yet */ char libraryPath[MAXPATHLEN]; - size_t jrePathLen = 0; + size_t jdkRootPathLen = 0; HMODULE hJava = NULL; HMODULE hVerify = NULL; @@ -839,18 +840,18 @@ int AWTPreload(const char *funcName) * jvm.dll is already loaded, so we need only java.dll; * java.dll depends on MSVCRT lib & verify.dll. */ - if (!GetJREPath(libraryPath, MAXPATHLEN)) { + if (!GetJDKInstallRoot(libraryPath, MAXPATHLEN)) { break; } /* save path length */ - jrePathLen = JLI_StrLen(libraryPath); + jdkRootPathLen = JLI_StrLen(libraryPath); - if (jrePathLen + JLI_StrLen("\\bin\\verify.dll") >= MAXPATHLEN) { - /* jre path is too long, the library path will not fit there; + if (jdkRootPathLen + JLI_StrLen("\\bin\\verify.dll") >= MAXPATHLEN) { + /* path is too long, the library path will not fit there; * report and abort preloading */ - JLI_ReportErrorMessage(JRE_ERROR11); + JLI_ReportErrorMessage(LAUNCHER_ERROR3); break; } @@ -864,8 +865,8 @@ int AWTPreload(const char *funcName) break; } - /* restore jrePath */ - libraryPath[jrePathLen] = 0; + /* restore libraryPath */ + libraryPath[jdkRootPathLen] = 0; /* load java.dll */ JLI_StrCat(libraryPath, "\\bin\\" JAVA_DLL); hJava = LoadLibrary(libraryPath); @@ -873,8 +874,8 @@ int AWTPreload(const char *funcName) break; } - /* restore jrePath */ - libraryPath[jrePathLen] = 0; + /* restore libraryPath */ + libraryPath[jdkRootPathLen] = 0; /* load awt.dll */ JLI_StrCat(libraryPath, "\\bin\\awt.dll"); hPreloadAwt = LoadLibrary(libraryPath); diff --git a/src/java.base/windows/native/libnio/ch/FileDispatcherImpl.c b/src/java.base/windows/native/libnio/ch/FileDispatcherImpl.c index 91effcf0bd0..ef5c3e07929 100644 --- a/src/java.base/windows/native/libnio/ch/FileDispatcherImpl.c +++ b/src/java.base/windows/native/libnio/ch/FileDispatcherImpl.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,6 +24,7 @@ */ #include +#include #include "jni.h" #include "jni_util.h" #include "jvm.h" @@ -33,6 +34,7 @@ #include "nio_util.h" #include "java_lang_Integer.h" #include "sun_nio_ch_FileDispatcherImpl.h" +#include "io_util_md.h" #include // Requires Mswsock.lib @@ -392,6 +394,75 @@ Java_sun_nio_ch_FileDispatcherImpl_size0(JNIEnv *env, jobject this, jobject fdo) return (jlong)size.QuadPart; } +JNIEXPORT jint JNICALL +Java_sun_nio_ch_FileDispatcherImpl_available0(JNIEnv *env, jobject this, jobject fdo) +{ + HANDLE handle = (HANDLE)(handleval(env, fdo)); + DWORD type = GetFileType(handle); + jlong available = 0; + + // Calculate the number of bytes available for a regular file, + // and return the default (zero) for other types. + if (type == FILE_TYPE_DISK) { + jlong current, end; + LARGE_INTEGER distance, pos, filesize; + distance.QuadPart = 0; + if (SetFilePointerEx(handle, distance, &pos, FILE_CURRENT) == 0) { + JNU_ThrowIOExceptionWithLastError(env, "Available failed"); + return IOS_THROWN; + } + current = (jlong)pos.QuadPart; + if (GetFileSizeEx(handle, &filesize) == 0) { + JNU_ThrowIOExceptionWithLastError(env, "Available failed"); + return IOS_THROWN; + } + end = (jlong)filesize.QuadPart; + available = end - current; + if (available > java_lang_Integer_MAX_VALUE) { + available = java_lang_Integer_MAX_VALUE; + } else if (available < 0) { + available = 0; + } + } + + return (jint)available; +} + + +JNIEXPORT jboolean JNICALL +Java_sun_nio_ch_FileDispatcherImpl_isOther0(JNIEnv *env, jobject this, jobject fdo) +{ + HANDLE handle = (HANDLE)(handleval(env, fdo)); + + BY_HANDLE_FILE_INFORMATION finfo; + if (!GetFileInformationByHandle(handle, &finfo)) + JNU_ThrowIOExceptionWithLastError(env, "isOther failed"); + DWORD fattr = finfo.dwFileAttributes; + + if ((fattr & FILE_ATTRIBUTE_DEVICE) != 0) + return (jboolean)JNI_TRUE; + + if ((fattr & FILE_ATTRIBUTE_REPARSE_POINT) != 0) { + int size = MAXIMUM_REPARSE_DATA_BUFFER_SIZE; + void* lpOutBuffer = (void*)malloc(size*sizeof(char)); + if (lpOutBuffer == NULL) + JNU_ThrowOutOfMemoryError(env, "isOther failed"); + + DWORD bytesReturned; + if (!DeviceIoControl(handle, FSCTL_GET_REPARSE_POINT, NULL, 0, + lpOutBuffer, (DWORD)size, &bytesReturned, NULL)) { + free(lpOutBuffer); + JNU_ThrowIOExceptionWithLastError(env, "isOther failed"); + } + ULONG reparseTag = (*((PULONG)lpOutBuffer)); + free(lpOutBuffer); + return reparseTag == IO_REPARSE_TAG_SYMLINK ? + (jboolean)JNI_FALSE : (jboolean)JNI_TRUE; + } + + return (jboolean)JNI_FALSE; +} + JNIEXPORT jint JNICALL Java_sun_nio_ch_FileDispatcherImpl_lock0(JNIEnv *env, jobject this, jobject fdo, jboolean block, jlong pos, jlong size, diff --git a/src/java.compiler/share/classes/javax/lang/model/util/Elements.java b/src/java.compiler/share/classes/javax/lang/model/util/Elements.java index 5159ac26e3b..7f0b493572e 100644 --- a/src/java.compiler/share/classes/javax/lang/model/util/Elements.java +++ b/src/java.compiler/share/classes/javax/lang/model/util/Elements.java @@ -81,8 +81,8 @@ public interface Elements { * @implSpec The default implementation of this method returns * {@code null}. * - * @param name fully qualified package name, or an empty string for an unnamed package * @param module module relative to which the lookup should happen + * @param name fully qualified package name, or an empty string for an unnamed package * @return the specified package, or {@code null} if it cannot be found * @see #getAllPackageElements * @since 9 @@ -167,8 +167,8 @@ default Set getAllPackageElements(CharSequence name) { * @implSpec The default implementation of this method returns * {@code null}. * - * @param name the canonical name * @param module module relative to which the lookup should happen + * @param name the canonical name * @return the named type element, or {@code null} if it cannot be found * @see #getAllTypeElements * @since 9 diff --git a/src/java.desktop/share/classes/java/awt/BorderLayout.java b/src/java.desktop/share/classes/java/awt/BorderLayout.java index e3b92a7996a..c5bb016b944 100644 --- a/src/java.desktop/share/classes/java/awt/BorderLayout.java +++ b/src/java.desktop/share/classes/java/awt/BorderLayout.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1995, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1995, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -554,12 +554,12 @@ public Component getLayoutComponent(Object constraints) { * The {@code Container}'s component orientation is used to determine the location of components * added with {@code LINE_START} and {@code LINE_END}. * - * @param constraints the desired absolute position, one of {@code CENTER}, - * {@code NORTH}, {@code SOUTH}, - * {@code EAST}, {@code WEST} * @param target the {@code Container} used to obtain * the constraint location based on the target * {@code Container}'s component orientation. + * @param constraints the desired absolute position, one of {@code CENTER}, + * {@code NORTH}, {@code SOUTH}, + * {@code EAST}, {@code WEST} * @return the component at the given location, or {@code null} if * the location is empty * @throws IllegalArgumentException if the constraint object is diff --git a/src/java.desktop/share/classes/java/awt/Graphics2D.java b/src/java.desktop/share/classes/java/awt/Graphics2D.java index 93d4fe2c9bc..0f06fa48ad6 100644 --- a/src/java.desktop/share/classes/java/awt/Graphics2D.java +++ b/src/java.desktop/share/classes/java/awt/Graphics2D.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -564,9 +564,9 @@ public abstract boolean drawImage(Image img, * img1 = op.filter(img, null); * drawImage(img1, new AffineTransform(1f,0f,0f,1f,x,y), null); * - * @param op the filter to be applied to the image before rendering * @param img the specified {@code BufferedImage} to be rendered. * This method does nothing if {@code img} is null. + * @param op the filter to be applied to the image before rendering * @param x the x coordinate of the location in user space where * the upper left corner of the image is rendered * @param y the y coordinate of the location in user space where diff --git a/src/java.desktop/share/classes/java/awt/dnd/DragSource.java b/src/java.desktop/share/classes/java/awt/dnd/DragSource.java index e7c3840e206..01945662e46 100644 --- a/src/java.desktop/share/classes/java/awt/dnd/DragSource.java +++ b/src/java.desktop/share/classes/java/awt/dnd/DragSource.java @@ -499,8 +499,8 @@ protected DragSourceContext createDragSourceContext(DragGestureEvent dgl, * * @param the type of {@code DragGestureRecognizer} to create * @param recognizerAbstractClass the requested abstract type - * @param actions the permitted source drag actions * @param c the {@code Component} target + * @param actions the permitted source drag actions * @param dgl the {@code DragGestureListener} to notify * * @return the new {@code DragGestureRecognizer} or {@code null} diff --git a/src/java.desktop/share/classes/java/awt/event/ActionEvent.java b/src/java.desktop/share/classes/java/awt/event/ActionEvent.java index 1a6707cbfe7..e9a4ad0ce59 100644 --- a/src/java.desktop/share/classes/java/awt/event/ActionEvent.java +++ b/src/java.desktop/share/classes/java/awt/event/ActionEvent.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -206,13 +206,13 @@ public ActionEvent(Object source, int id, String command, int modifiers) { * the class description for {@link ActionEvent} * @param command A string that may specify a command (possibly one * of several) associated with the event + * @param when A long that gives the time the event occurred. + * Passing negative or zero value + * is not recommended * @param modifiers The modifier keys down during event * (shift, ctrl, alt, meta). * Passing negative parameter is not recommended. * Zero value means that no modifiers were passed - * @param when A long that gives the time the event occurred. - * Passing negative or zero value - * is not recommended * @throws IllegalArgumentException if {@code source} is null * @see #getSource() * @see #getID() diff --git a/src/java.desktop/share/classes/java/awt/geom/AffineTransform.java b/src/java.desktop/share/classes/java/awt/geom/AffineTransform.java index fde67ba06a4..9abc55d8e6f 100644 --- a/src/java.desktop/share/classes/java/awt/geom/AffineTransform.java +++ b/src/java.desktop/share/classes/java/awt/geom/AffineTransform.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -2964,10 +2964,10 @@ public Point2D transform(Point2D ptSrc, Point2D ptDst) { * the original coordinates in that point are overwritten before * they can be converted. * @param ptSrc the array containing the source point objects - * @param ptDst the array into which the transform point objects are - * returned * @param srcOff the offset to the first point object to be * transformed in the source array + * @param ptDst the array into which the transform point objects are + * returned * @param dstOff the offset to the location of the first * transformed point object that is stored in the destination array * @param numPts the number of point objects to be transformed @@ -3038,11 +3038,11 @@ public void transform(Point2D[] ptSrc, int srcOff, * offset in the order {@code [x0, y0, x1, y1, ..., xn, yn]}. * @param srcPts the array containing the source point coordinates. * Each point is stored as a pair of x, y coordinates. + * @param srcOff the offset to the first point to be transformed + * in the source array * @param dstPts the array into which the transformed point coordinates * are returned. Each point is stored as a pair of x, y * coordinates. - * @param srcOff the offset to the first point to be transformed - * in the source array * @param dstOff the offset to the location of the first * transformed point that is stored in the destination array * @param numPts the number of points to be transformed @@ -3153,11 +3153,11 @@ public void transform(float[] srcPts, int srcOff, * offset in the order {@code [x0, y0, x1, y1, ..., xn, yn]}. * @param srcPts the array containing the source point coordinates. * Each point is stored as a pair of x, y coordinates. + * @param srcOff the offset to the first point to be transformed + * in the source array * @param dstPts the array into which the transformed point * coordinates are returned. Each point is stored as a pair of * x, y coordinates. - * @param srcOff the offset to the first point to be transformed - * in the source array * @param dstOff the offset to the location of the first * transformed point that is stored in the destination array * @param numPts the number of point objects to be transformed @@ -3264,11 +3264,11 @@ public void transform(double[] srcPts, int srcOff, * offset in the order {@code [x0, y0, x1, y1, ..., xn, yn]}. * @param srcPts the array containing the source point coordinates. * Each point is stored as a pair of x, y coordinates. + * @param srcOff the offset to the first point to be transformed + * in the source array * @param dstPts the array into which the transformed point coordinates * are returned. Each point is stored as a pair of x, y * coordinates. - * @param srcOff the offset to the first point to be transformed - * in the source array * @param dstOff the offset to the location of the first * transformed point that is stored in the destination array * @param numPts the number of points to be transformed @@ -3360,11 +3360,11 @@ public void transform(float[] srcPts, int srcOff, * offset in the order {@code [x0, y0, x1, y1, ..., xn, yn]}. * @param srcPts the array containing the source point coordinates. * Each point is stored as a pair of x, y coordinates. + * @param srcOff the offset to the first point to be transformed + * in the source array * @param dstPts the array into which the transformed point * coordinates are returned. Each point is stored as a pair of * x, y coordinates. - * @param srcOff the offset to the first point to be transformed - * in the source array * @param dstOff the offset to the location of the first * transformed point that is stored in the destination array * @param numPts the number of point objects to be transformed @@ -3542,11 +3542,11 @@ public Point2D inverseTransform(Point2D ptSrc, Point2D ptDst) * offset in the order {@code [x0, y0, x1, y1, ..., xn, yn]}. * @param srcPts the array containing the source point coordinates. * Each point is stored as a pair of x, y coordinates. + * @param srcOff the offset to the first point to be transformed + * in the source array * @param dstPts the array into which the transformed point * coordinates are returned. Each point is stored as a pair of * x, y coordinates. - * @param srcOff the offset to the first point to be transformed - * in the source array * @param dstOff the offset to the location of the first * transformed point that is stored in the destination array * @param numPts the number of point objects to be transformed @@ -3755,11 +3755,11 @@ public Point2D deltaTransform(Point2D ptSrc, Point2D ptDst) { * offset in the order {@code [x0, y0, x1, y1, ..., xn, yn]}. * @param srcPts the array containing the source distance vectors. * Each vector is stored as a pair of relative x, y coordinates. + * @param srcOff the offset to the first vector to be transformed + * in the source array * @param dstPts the array into which the transformed distance vectors * are returned. Each vector is stored as a pair of relative * x, y coordinates. - * @param srcOff the offset to the first vector to be transformed - * in the source array * @param dstOff the offset to the location of the first * transformed vector that is stored in the destination array * @param numPts the number of vector coordinate pairs to be diff --git a/src/java.desktop/share/classes/javax/imageio/metadata/IIOMetadataFormatImpl.java b/src/java.desktop/share/classes/javax/imageio/metadata/IIOMetadataFormatImpl.java index d81b0df3c87..ed9444b83af 100644 --- a/src/java.desktop/share/classes/javax/imageio/metadata/IIOMetadataFormatImpl.java +++ b/src/java.desktop/share/classes/javax/imageio/metadata/IIOMetadataFormatImpl.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -378,10 +378,10 @@ protected void addElement(String elementName, * Adds an existing element to the list of legal children for a * given parent node type. * - * @param parentName the name of the element that will be the - * new parent of the element. * @param elementName the name of the element to be added as a * child. + * @param parentName the name of the element that will be the + * new parent of the element. * * @throws IllegalArgumentException if {@code elementName} * is {@code null}, or is not a legal element name for this diff --git a/src/java.desktop/share/classes/javax/swing/GroupLayout.java b/src/java.desktop/share/classes/javax/swing/GroupLayout.java index 3a4a6d78ca6..2207a1ae877 100644 --- a/src/java.desktop/share/classes/javax/swing/GroupLayout.java +++ b/src/java.desktop/share/classes/javax/swing/GroupLayout.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -1777,9 +1777,9 @@ public SequentialGroup addGroup(Group group) { /** * Adds a {@code Group} to this {@code Group}. * - * @param group the {@code Group} to add * @param useAsBaseline whether the specified {@code Group} should * be used to calculate the baseline for this {@code Group} + * @param group the {@code Group} to add * @return this {@code Group} */ public SequentialGroup addGroup(boolean useAsBaseline, Group group) { @@ -2528,8 +2528,8 @@ public ParallelGroup addGroup(Alignment alignment, Group group) { * Adds a {@code Component} to this {@code ParallelGroup} with * the specified alignment. * - * @param alignment the alignment * @param component the {@code Component} to add + * @param alignment the alignment * @return this {@code Group} * @throws IllegalArgumentException if {@code alignment} is * {@code null} @@ -2544,8 +2544,8 @@ public ParallelGroup addComponent(Component component, * Adds a {@code Component} to this {@code ParallelGroup} with the * specified alignment and size. * - * @param alignment the alignment * @param component the {@code Component} to add + * @param alignment the alignment * @param min the minimum size * @param pref the preferred size * @param max the maximum size diff --git a/src/java.desktop/share/classes/javax/swing/JColorChooser.java b/src/java.desktop/share/classes/javax/swing/JColorChooser.java index 945c6f60697..62c4fe8b083 100644 --- a/src/java.desktop/share/classes/javax/swing/JColorChooser.java +++ b/src/java.desktop/share/classes/javax/swing/JColorChooser.java @@ -175,7 +175,9 @@ public static Color showDialog(Component component, * @return the selected color or null if the user opted out * @throws HeadlessException if GraphicsEnvironment.isHeadless() * returns true. + * * @see java.awt.GraphicsEnvironment#isHeadless + * @since 9 */ @SuppressWarnings("deprecation") public static Color showDialog(Component component, String title, diff --git a/src/java.desktop/share/classes/javax/swing/LayoutStyle.java b/src/java.desktop/share/classes/javax/swing/LayoutStyle.java index e45777565a8..f1c384db6e2 100644 --- a/src/java.desktop/share/classes/javax/swing/LayoutStyle.java +++ b/src/java.desktop/share/classes/javax/swing/LayoutStyle.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -165,13 +165,13 @@ public LayoutStyle() { * @param component1 the JComponent * component2 is being placed relative to * @param component2 the JComponent being placed + * @param type how the two components are being placed * @param position the position component2 is being placed * relative to component1; one of * SwingConstants.NORTH, * SwingConstants.SOUTH, * SwingConstants.EAST or * SwingConstants.WEST - * @param type how the two components are being placed * @param parent the parent of component2; this may differ * from the actual parent and it may be null * @return the amount of space to place between the two components diff --git a/src/java.desktop/share/classes/javax/swing/ProgressMonitorInputStream.java b/src/java.desktop/share/classes/javax/swing/ProgressMonitorInputStream.java index d82e2999b8b..33e71d7bf51 100644 --- a/src/java.desktop/share/classes/javax/swing/ProgressMonitorInputStream.java +++ b/src/java.desktop/share/classes/javax/swing/ProgressMonitorInputStream.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -73,10 +73,10 @@ public class ProgressMonitorInputStream extends FilterInputStream /** * Constructs an object to monitor the progress of an input stream. * - * @param message Descriptive text to be placed in the dialog box - * if one is popped up. * @param parentComponent The component triggering the operation * being monitored. + * @param message Descriptive text to be placed in the dialog box + * if one is popped up. * @param in The input stream to be monitored. */ public ProgressMonitorInputStream(Component parentComponent, diff --git a/src/java.desktop/share/classes/javax/swing/colorchooser/AbstractColorChooserPanel.java b/src/java.desktop/share/classes/javax/swing/colorchooser/AbstractColorChooserPanel.java index 9a428492512..5664051cf6b 100644 --- a/src/java.desktop/share/classes/javax/swing/colorchooser/AbstractColorChooserPanel.java +++ b/src/java.desktop/share/classes/javax/swing/colorchooser/AbstractColorChooserPanel.java @@ -229,6 +229,7 @@ void setSelectedColor(Color color) { * * @param b true if the transparency of a color can be selected * @see #isColorTransparencySelectionEnabled() + * @since 9 */ @BeanProperty(description = "Sets the transparency of a color selection on or off.") @@ -241,6 +242,7 @@ public void setColorTransparencySelectionEnabled(boolean b){ * * @return true if the transparency of a color can be selected * @see #setColorTransparencySelectionEnabled(boolean) + * @since 9 */ public boolean isColorTransparencySelectionEnabled(){ return true; diff --git a/src/java.desktop/share/classes/javax/swing/text/PlainView.java b/src/java.desktop/share/classes/javax/swing/text/PlainView.java index 0c245196d99..6697ca4e2a3 100644 --- a/src/java.desktop/share/classes/javax/swing/text/PlainView.java +++ b/src/java.desktop/share/classes/javax/swing/text/PlainView.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -724,12 +724,12 @@ protected void updateDamage(DocumentEvent changes, Shape a, ViewFactory f) { /** * Repaint the given line range. * - * @param host the component hosting the view (used to call repaint) - * @param a the region allocated for the view to render into * @param line0 the starting line number to repaint. This must * be a valid line number in the model. * @param line1 the ending line number to repaint. This must * be a valid line number in the model. + * @param a the region allocated for the view to render into + * @param host the component hosting the view (used to call repaint) * @since 1.4 */ protected void damageLineRange(int line0, int line1, Shape a, Component host) { diff --git a/src/java.desktop/share/classes/javax/swing/text/TableView.java b/src/java.desktop/share/classes/javax/swing/text/TableView.java index 8573c9afe59..702e79dd8fc 100644 --- a/src/java.desktop/share/classes/javax/swing/text/TableView.java +++ b/src/java.desktop/share/classes/javax/swing/text/TableView.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -292,13 +292,13 @@ void addFill(int row, int col) { * * @param targetSpan the given span for total of all the table * columns + * @param offsets the return value of the offset from the + * origin for each column + * @param spans the return value of how much to allocated to + * each column * @param reqs the requirements desired for each column. This * is the column maximum of the cells minimum, preferred, and * maximum requested span - * @param spans the return value of how much to allocated to - * each column - * @param offsets the return value of the offset from the - * origin for each column */ protected void layoutColumns(int targetSpan, int[] offsets, int[] spans, SizeRequirements[] reqs) { diff --git a/src/java.desktop/share/classes/javax/swing/text/html/HTMLEditorKit.java b/src/java.desktop/share/classes/javax/swing/text/html/HTMLEditorKit.java index 71a1096cfd5..f17804e624d 100644 --- a/src/java.desktop/share/classes/javax/swing/text/html/HTMLEditorKit.java +++ b/src/java.desktop/share/classes/javax/swing/text/html/HTMLEditorKit.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -328,9 +328,9 @@ public void read(Reader in, Document doc, int pos) throws IOException, BadLocati * * @param doc the document to insert into * @param offset the offset to insert HTML at + * @param html the HTML string * @param popDepth the number of ElementSpec.EndTagTypes to generate * before inserting - * @param html the HTML string * @param pushDepth the number of ElementSpec.StartTagTypes with a direction * of ElementSpec.JoinNextDirection that should be generated * before inserting, but after the end tags have been generated diff --git a/src/java.desktop/share/native/libfontmanager/HBShaper_Panama.c b/src/java.desktop/share/native/libfontmanager/HBShaper_Panama.c index 699df947462..de067736c8c 100644 --- a/src/java.desktop/share/native/libfontmanager/HBShaper_Panama.c +++ b/src/java.desktop/share/native/libfontmanager/HBShaper_Panama.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2023, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -97,7 +97,6 @@ JDKEXPORT void jdk_hb_shape( float devScale = 1.0f; if (getenv("HB_NODEVTX") != NULL) { float xPtSize = euclidianDistance(matrix[0], matrix[1]); - float yPtSize = euclidianDistance(matrix[2], matrix[3]); devScale = xPtSize / ptSize; } diff --git a/src/java.desktop/share/native/libfontmanager/freetypeScaler.c b/src/java.desktop/share/native/libfontmanager/freetypeScaler.c index f9ebacad66b..37c6dba2a78 100644 --- a/src/java.desktop/share/native/libfontmanager/freetypeScaler.c +++ b/src/java.desktop/share/native/libfontmanager/freetypeScaler.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -513,8 +513,6 @@ Java_sun_font_FreetypeFontScaler_createScalerContextNative( double dmat[4], ptsz; FTScalerContext *context = (FTScalerContext*) calloc(1, sizeof(FTScalerContext)); - FTScalerInfo *scalerInfo = - (FTScalerInfo*) jlong_to_ptr(pScaler); if (context == NULL) { free(context); @@ -1652,7 +1650,6 @@ Java_sun_font_FreetypeFontScaler_getGlyphPointNative( jlong pScaler, jint glyphCode, jint pointNumber) { FT_Outline* outline; - jobject point = NULL; jfloat x=0, y=0; FTScalerContext *context = (FTScalerContext*) jlong_to_ptr(pScalerContext); diff --git a/src/java.desktop/unix/native/libfontmanager/X11FontScaler.c b/src/java.desktop/unix/native/libfontmanager/X11FontScaler.c index e705321e006..6e836fa111c 100644 --- a/src/java.desktop/unix/native/libfontmanager/X11FontScaler.c +++ b/src/java.desktop/unix/native/libfontmanager/X11FontScaler.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -267,7 +267,6 @@ Java_sun_font_NativeFont_getGlyphAdvance xcs = AWTFontPerChar(xFont, glyphCode - context->minGlyph); advance = AWTCharAdvance(xcs); } else { - int direction, ascent, descent; AWTChar2b xChar; xChar.byte1 = (unsigned char) (glyphCode >> 8); diff --git a/src/java.management/share/classes/javax/management/AttributeList.java b/src/java.management/share/classes/javax/management/AttributeList.java index 74c9b860f91..932c4974244 100644 --- a/src/java.management/share/classes/javax/management/AttributeList.java +++ b/src/java.management/share/classes/javax/management/AttributeList.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -182,9 +182,9 @@ public void add(Attribute object) { * size())} a RuntimeOperationsException should be raised, wrapping the * java.lang.IndexOutOfBoundsException thrown. * - * @param object The Attribute object to be inserted. * @param index The position in the list where the new {@code Attribute} * object is to be inserted. + * @param object The Attribute object to be inserted. */ public void add(int index, Attribute object) { try { @@ -202,8 +202,8 @@ public void add(int index, Attribute object) { * out of range {@literal (index < 0 || index > size())} a RuntimeOperationsException * should be raised, wrapping the java.lang.IndexOutOfBoundsException thrown. * - * @param object The value to which the attribute element should be set. * @param index The position specified. + * @param object The value to which the attribute element should be set. */ public void set(int index, Attribute object) { try { @@ -238,9 +238,9 @@ public boolean addAll(AttributeList list) { * RuntimeOperationsException should be raised, wrapping the * java.lang.IndexOutOfBoundsException thrown. * - * @param list Elements to be inserted into the list. * @param index Position at which to insert the first element from the * AttributeList specified. + * @param list Elements to be inserted into the list. * * @return true if this list changed as a result of the call. * diff --git a/src/java.management/share/classes/javax/management/DefaultLoaderRepository.java b/src/java.management/share/classes/javax/management/DefaultLoaderRepository.java index 461ab1ec3c4..6e846287027 100644 --- a/src/java.management/share/classes/javax/management/DefaultLoaderRepository.java +++ b/src/java.management/share/classes/javax/management/DefaultLoaderRepository.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -80,8 +80,8 @@ public static Class loadClass(String className) * is not found the method will throw a ClassNotFoundException * exception. * - * @param className The name of the class to be loaded. * @param loader The class loader to be excluded. + * @param className The name of the class to be loaded. * * @return the loaded class. * diff --git a/src/java.management/share/classes/javax/management/MBeanConstructorInfo.java b/src/java.management/share/classes/javax/management/MBeanConstructorInfo.java index f327920d7d9..5803b306bab 100644 --- a/src/java.management/share/classes/javax/management/MBeanConstructorInfo.java +++ b/src/java.management/share/classes/javax/management/MBeanConstructorInfo.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -75,10 +75,10 @@ public MBeanConstructorInfo(String description, Constructor constructor) { * Constructs an {@code MBeanConstructorInfo} object. * * @param name The name of the constructor. + * @param description A human readable description of the constructor. * @param signature {@code MBeanParameterInfo} objects * describing the parameters(arguments) of the constructor. This * may be null with the same effect as a zero-length array. - * @param description A human readable description of the constructor. */ public MBeanConstructorInfo(String name, String description, @@ -90,10 +90,10 @@ public MBeanConstructorInfo(String name, * Constructs an {@code MBeanConstructorInfo} object. * * @param name The name of the constructor. + * @param description A human readable description of the constructor. * @param signature {@code MBeanParameterInfo} objects * describing the parameters(arguments) of the constructor. This * may be null with the same effect as a zero-length array. - * @param description A human readable description of the constructor. * @param descriptor The descriptor for the constructor. This may be null * which is equivalent to an empty descriptor. * diff --git a/src/java.management/share/classes/javax/management/MBeanOperationInfo.java b/src/java.management/share/classes/javax/management/MBeanOperationInfo.java index 5069737edef..a0c6b76a79d 100644 --- a/src/java.management/share/classes/javax/management/MBeanOperationInfo.java +++ b/src/java.management/share/classes/javax/management/MBeanOperationInfo.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -97,9 +97,9 @@ public class MBeanOperationInfo extends MBeanFeatureInfo implements Cloneable { * fields contributed by any annotations on the {@code Method} * object that contain the {@link DescriptorKey} meta-annotation. * + * @param description A human readable description of the operation. * @param method The {@code java.lang.reflect.Method} object * describing the MBean operation. - * @param description A human readable description of the operation. */ public MBeanOperationInfo(String description, Method method) { this(method.getName(), diff --git a/src/java.management/share/classes/javax/management/MBeanServer.java b/src/java.management/share/classes/javax/management/MBeanServer.java index 8bf68ef35bf..488c9615515 100644 --- a/src/java.management/share/classes/javax/management/MBeanServer.java +++ b/src/java.management/share/classes/javax/management/MBeanServer.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -622,11 +622,11 @@ public Object instantiate(String className, Object params[], * newly created object is not registered in the MBean server.

    * * @param className The class name of the object to be instantiated. + * @param loaderName The object name of the class loader to be used. * @param params An array containing the parameters of the * constructor to be invoked. * @param signature An array containing the signature of the * constructor to be invoked. - * @param loaderName The object name of the class loader to be used. * * @return The newly instantiated object. * @@ -711,10 +711,10 @@ default public ObjectInputStream deserialize(String className, byte[] data) * * @param className The name of the class whose class loader should be * used for the de-serialization. - * @param data The byte array to be de-sererialized. * @param loaderName The name of the class loader to be used for * loading the specified class. If null, the MBean Server's class * loader will be used. + * @param data The byte array to be de-sererialized. * * @implSpec This method throws {@link UnsupportedOperationException} by default. * diff --git a/src/java.management/share/classes/javax/management/MBeanServerConnection.java b/src/java.management/share/classes/javax/management/MBeanServerConnection.java index 87764b81c91..22b68f19123 100644 --- a/src/java.management/share/classes/javax/management/MBeanServerConnection.java +++ b/src/java.management/share/classes/javax/management/MBeanServerConnection.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -278,11 +278,11 @@ public ObjectInstance createMBean(String className, ObjectName name, * * @param className The class name of the MBean to be instantiated. * @param name The object name of the MBean. May be null. + * @param loaderName The object name of the class loader to be used. * @param params An array containing the parameters of the * constructor to be invoked. * @param signature An array containing the signature of the * constructor to be invoked. - * @param loaderName The object name of the class loader to be used. * * @return An ObjectInstance, containing the * ObjectName and the Java class name of the newly diff --git a/src/java.management/share/classes/javax/management/loading/ClassLoaderRepository.java b/src/java.management/share/classes/javax/management/loading/ClassLoaderRepository.java index 3512f51238c..ecd46e8a66d 100644 --- a/src/java.management/share/classes/javax/management/loading/ClassLoaderRepository.java +++ b/src/java.management/share/classes/javax/management/loading/ClassLoaderRepository.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -100,10 +100,10 @@ public Class loadClass(String className) * the same time. The {@link #loadClassBefore} method is * recommended to avoid the risk of deadlock.

    * - * @param className The name of the class to be loaded. * @param exclude The class loader to be excluded. May be null, * in which case this method is equivalent to {@link #loadClass * loadClass(className)}. + * @param className The name of the class to be loaded. * * @return the loaded class. * @@ -133,10 +133,10 @@ public Class loadClassWithout(ClassLoader exclude, * search as soon as stop is reached, a potential * deadlock with concurrent class loading is avoided.

    * - * @param className The name of the class to be loaded. * @param stop The class loader at which to stop. May be null, in * which case this method is equivalent to {@link #loadClass(String) * loadClass(className)}. + * @param className The name of the class to be loaded. * * @return the loaded class. * diff --git a/src/java.management/share/classes/javax/management/loading/DefaultLoaderRepository.java b/src/java.management/share/classes/javax/management/loading/DefaultLoaderRepository.java index 014ed0fccf6..6277c6d1317 100644 --- a/src/java.management/share/classes/javax/management/loading/DefaultLoaderRepository.java +++ b/src/java.management/share/classes/javax/management/loading/DefaultLoaderRepository.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -88,8 +88,8 @@ public static Class loadClass(String className) * is not found the method will throw a ClassNotFoundException * exception. * - * @param className The name of the class to be loaded. * @param loader The class loader to be excluded. + * @param className The name of the class to be loaded. * * @return the loaded class. * diff --git a/src/java.management/share/classes/javax/management/modelmbean/ModelMBeanOperationInfo.java b/src/java.management/share/classes/javax/management/modelmbean/ModelMBeanOperationInfo.java index 1d22b41b1e8..4120bc2cd2d 100644 --- a/src/java.management/share/classes/javax/management/modelmbean/ModelMBeanOperationInfo.java +++ b/src/java.management/share/classes/javax/management/modelmbean/ModelMBeanOperationInfo.java @@ -136,9 +136,9 @@ public class ModelMBeanOperationInfo extends MBeanOperationInfo * on the {@code Method} object that contain the {@link * DescriptorKey} meta-annotation. * + * @param description A human readable description of the operation. * @param operationMethod The java.lang.reflect.Method object * describing the MBean operation. - * @param description A human readable description of the operation. */ public ModelMBeanOperationInfo(String description, @@ -160,10 +160,10 @@ public ModelMBeanOperationInfo(String description, * contributed by any annotations on the {@code Method} object * that contain the {@link DescriptorKey} meta-annotation. * - * @param operationMethod The java.lang.reflect.Method object - * describing the MBean operation. * @param description A human readable description of the * operation. + * @param operationMethod The java.lang.reflect.Method object + * describing the MBean operation. * @param descriptor An instance of Descriptor containing the * appropriate metadata for this instance of the * ModelMBeanOperationInfo. If it is null a default diff --git a/src/java.naming/share/classes/javax/naming/CompositeName.java b/src/java.naming/share/classes/javax/naming/CompositeName.java index d731c20facc..021a2f59044 100644 --- a/src/java.naming/share/classes/javax/naming/CompositeName.java +++ b/src/java.naming/share/classes/javax/naming/CompositeName.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -485,9 +485,9 @@ public Name addAll(Name suffix) * new component are shifted up (away from index 0) * to accommodate the new components. * - * @param n The non-null components to add. * @param posn The index in this name at which to add the new * components. Must be in the range [0,size()]. + * @param n The non-null components to add. * @return The updated CompositeName, not a new one. Cannot be null. * @throws InvalidNameException If n is not a composite name. * @throws ArrayIndexOutOfBoundsException @@ -525,9 +525,9 @@ public Name add(String comp) throws InvalidNameException { * component are shifted up by one (away from index 0) to accommodate * the new component. * - * @param comp The non-null component to add. * @param posn The index at which to add the new component. * Must be in the range [0,size()]. + * @param comp The non-null component to add. * @return The updated CompositeName, not a new one. Cannot be null. * @throws ArrayIndexOutOfBoundsException * If posn is outside the specified range. diff --git a/src/java.naming/share/classes/javax/naming/CompoundName.java b/src/java.naming/share/classes/javax/naming/CompoundName.java index ec570acbb34..e66d9d1b434 100644 --- a/src/java.naming/share/classes/javax/naming/CompoundName.java +++ b/src/java.naming/share/classes/javax/naming/CompoundName.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -472,9 +472,9 @@ public Name addAll(Name suffix) throws InvalidNameException { * Implementation note: Currently the syntax properties of suffix * is not used or checked. They might be in the future. * - * @param n The non-null components to add. * @param posn The index in this name at which to add the new * components. Must be in the range [0,size()]. + * @param n The non-null components to add. * @return The updated CompoundName, not a new one. Cannot be null. * @throws ArrayIndexOutOfBoundsException * If posn is outside the specified range. @@ -512,9 +512,9 @@ public Name add(String comp) throws InvalidNameException{ * component are shifted up by one (away from index 0) * to accommodate the new component. * - * @param comp The non-null component to add. * @param posn The index at which to add the new component. * Must be in the range [0,size()]. + * @param comp The non-null component to add. * @throws ArrayIndexOutOfBoundsException * If posn is outside the specified range. * @return The updated CompoundName, not a new one. Cannot be null. diff --git a/src/java.naming/share/classes/javax/naming/Name.java b/src/java.naming/share/classes/javax/naming/Name.java index 163b9507176..24865fb64e4 100644 --- a/src/java.naming/share/classes/javax/naming/Name.java +++ b/src/java.naming/share/classes/javax/naming/Name.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -215,11 +215,11 @@ public interface Name * component are shifted up (away from 0) to accommodate the new * components. * - * @param n - * the components to add * @param posn * the index in this name at which to add the new * components. Must be in the range [0,size()]. + * @param n + * the components to add * @return the updated name (not a new one) * * @throws ArrayIndexOutOfBoundsException @@ -248,11 +248,11 @@ public interface Name * are shifted up by one (away from index 0) to accommodate the new * component. * - * @param comp - * the component to add * @param posn * the index at which to add the new component. * Must be in the range [0,size()]. + * @param comp + * the component to add * @return the updated name (not a new one) * * @throws ArrayIndexOutOfBoundsException diff --git a/src/java.naming/share/classes/javax/naming/Reference.java b/src/java.naming/share/classes/javax/naming/Reference.java index 789ddb95195..3d096f4b84f 100644 --- a/src/java.naming/share/classes/javax/naming/Reference.java +++ b/src/java.naming/share/classes/javax/naming/Reference.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -164,10 +164,10 @@ public Reference(String className, String factory, String factoryLocation) { * * @param className The non-null class name of the object to * which this reference refers. + * @param addr The non-null address of the object. * @param factory The possibly null class name of the object's factory. * @param factoryLocation The possibly null location from which * to load the factory (e.g. URL) - * @param addr The non-null address of the object. * @see javax.naming.spi.ObjectFactory * @see javax.naming.spi.NamingManager#getObjectInstance */ diff --git a/src/java.naming/share/classes/javax/naming/directory/SearchControls.java b/src/java.naming/share/classes/javax/naming/directory/SearchControls.java index 6d7cc4bb6cd..8d1f04e06ff 100644 --- a/src/java.naming/share/classes/javax/naming/directory/SearchControls.java +++ b/src/java.naming/share/classes/javax/naming/directory/SearchControls.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2000, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -163,16 +163,16 @@ public SearchControls() { * Constructs a search constraints using arguments. * @param scope The search scope. One of: * OBJECT_SCOPE, ONELEVEL_SCOPE, SUBTREE_SCOPE. - * @param timelim The number of milliseconds to wait before returning. - * If 0, wait indefinitely. - * @param deref If true, dereference links during search. * @param countlim The maximum number of entries to return. If 0, return * all entries that satisfy filter. - * @param retobj If true, return the object bound to the name of the - * entry; if false, do not return object. + * @param timelim The number of milliseconds to wait before returning. + * If 0, wait indefinitely. * @param attrs The identifiers of the attributes to return along with * the entry. If null, return all attributes. If empty * return no attributes. + * @param retobj If true, return the object bound to the name of the + * entry; if false, do not return object. + * @param deref If true, dereference links during search. */ public SearchControls(int scope, long countlim, diff --git a/src/java.naming/share/classes/javax/naming/ldap/LdapName.java b/src/java.naming/share/classes/javax/naming/ldap/LdapName.java index 773f3b534b4..bca85cbc11c 100644 --- a/src/java.naming/share/classes/javax/naming/ldap/LdapName.java +++ b/src/java.naming/share/classes/javax/naming/ldap/LdapName.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -436,9 +436,9 @@ public Name addAll(List suffixRdns) { * index (if any) of the first new component are shifted up * (away from index 0) to accommodate the new components. * - * @param suffix The non-null components to add. * @param posn The index at which to add the new component. * Must be in the range [0,size()]. + * @param suffix The non-null components to add. * * @return The updated name (not a new instance). * @@ -471,9 +471,9 @@ public Name addAll(int posn, Name suffix) * index (if any) of the first new RDN are shifted up (away from index 0) to * accommodate the new RDNs. * - * @param suffixRdns The non-null suffix {@code Rdn}s to add. * @param posn The index at which to add the suffix RDNs. * Must be in the range [0,size()]. + * @param suffixRdns The non-null suffix {@code Rdn}s to add. * * @return The updated name (not a new instance). * @throws IndexOutOfBoundsException @@ -524,9 +524,9 @@ public Name add(Rdn comp) { * component are shifted up by one (away from index 0) to accommodate * the new component. * - * @param comp The non-null component to add. * @param posn The index at which to add the new component. * Must be in the range [0,size()]. + * @param comp The non-null component to add. * @return The updated LdapName, not a new instance. * Cannot be null. * @exception IndexOutOfBoundsException @@ -548,9 +548,9 @@ public Name add(int posn, String comp) throws InvalidNameException { * RDN are shifted up by one (away from index 0) to accommodate * the new RDN. * - * @param comp The non-null RDN to add. * @param posn The index at which to add the new RDN. * Must be in the range [0,size()]. + * @param comp The non-null RDN to add. * @return The updated LdapName, not a new instance. * Cannot be null. * @exception IndexOutOfBoundsException diff --git a/src/java.naming/share/classes/javax/naming/ldap/LdapReferralException.java b/src/java.naming/share/classes/javax/naming/ldap/LdapReferralException.java index 95a1ca7df0e..70009333f10 100644 --- a/src/java.naming/share/classes/javax/naming/ldap/LdapReferralException.java +++ b/src/java.naming/share/classes/javax/naming/ldap/LdapReferralException.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -143,11 +143,11 @@ protected LdapReferralException() { * Service provider implementors should read the "Service Provider" section * in the {@code LdapContext} class description for implementation details. * - * @param reqCtls The possibly null request controls to use for the new context. - * If null or the empty array means use no request controls. * @param env The possibly null environment properties to use when * for the new context. If null, the context is initialized with no environment * properties. + * @param reqCtls The possibly null request controls to use for the new context. + * If null or the empty array means use no request controls. * @return The non-null context at which to continue the method. * @throws NamingException If a naming exception was encountered. * Call either {@code retryReferral()} or {@code skipReferral()} diff --git a/src/java.net.http/share/classes/java/net/http/HttpClient.java b/src/java.net.http/share/classes/java/net/http/HttpClient.java index 82090bb9698..fbe8010e806 100644 --- a/src/java.net.http/share/classes/java/net/http/HttpClient.java +++ b/src/java.net.http/share/classes/java/net/http/HttpClient.java @@ -410,6 +410,14 @@ public interface Builder { /** * Sets an authenticator to use for HTTP authentication. * + * @implNote + * In the JDK built-in implementation of the {@code HttpClient}, + * if a {@link HttpRequest} has an {@code Authorization} or {@code + * Proxy-Authorization} header set then its value is used and + * the {@link Authenticator} is not invoked for the corresponding + * authentication. In this case, any authentication errors are returned + * to the user and requests are not automatically retried. + * * @param authenticator the Authenticator * @return this builder */ diff --git a/src/java.net.http/share/classes/jdk/internal/net/http/AuthenticationFilter.java b/src/java.net.http/share/classes/jdk/internal/net/http/AuthenticationFilter.java index 81acd83c423..278e2bf23b1 100644 --- a/src/java.net.http/share/classes/jdk/internal/net/http/AuthenticationFilter.java +++ b/src/java.net.http/share/classes/jdk/internal/net/http/AuthenticationFilter.java @@ -244,6 +244,14 @@ public HttpRequestImpl response(Response r) throws IOException { HttpHeaders hdrs = r.headers(); HttpRequestImpl req = r.request(); + if (req.getUserSetAuthFlag(SERVER) && status == UNAUTHORIZED) { + // return the response. We don't handle it. + return null; + } else if (req.getUserSetAuthFlag(PROXY) && status == PROXY_UNAUTHORIZED) { + // same + return null; + } + if (status != PROXY_UNAUTHORIZED) { if (exchange.proxyauth != null && !exchange.proxyauth.fromcache) { AuthInfo au = exchange.proxyauth; diff --git a/src/java.net.http/share/classes/jdk/internal/net/http/Http1Request.java b/src/java.net.http/share/classes/jdk/internal/net/http/Http1Request.java index 689690d8931..1cfc658c8da 100644 --- a/src/java.net.http/share/classes/jdk/internal/net/http/Http1Request.java +++ b/src/java.net.http/share/classes/jdk/internal/net/http/Http1Request.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -45,6 +45,8 @@ import jdk.internal.net.http.common.Utils; import static java.lang.String.format; +import static java.net.Authenticator.RequestorType.PROXY; +import static java.net.Authenticator.RequestorType.SERVER; import static java.nio.charset.StandardCharsets.US_ASCII; /** @@ -91,7 +93,6 @@ private void logHeaders(String completeHeaders) { } } - public void collectHeaders0(StringBuilder sb) { BiPredicate filter = connection.headerFilter(request); @@ -104,7 +105,9 @@ public void collectHeaders0(StringBuilder sb) { // Filter overridable headers from userHeaders userHeaders = HttpHeaders.of(userHeaders.map(), - connection.contextRestricted(request, client)); + connection.contextRestricted(request)); + + Utils.setUserAuthFlags(request, userHeaders); final HttpHeaders uh = userHeaders; diff --git a/src/java.net.http/share/classes/jdk/internal/net/http/Http2ClientImpl.java b/src/java.net.http/share/classes/jdk/internal/net/http/Http2ClientImpl.java index 022442b5371..92a48d901ff 100644 --- a/src/java.net.http/share/classes/jdk/internal/net/http/Http2ClientImpl.java +++ b/src/java.net.http/share/classes/jdk/internal/net/http/Http2ClientImpl.java @@ -40,6 +40,8 @@ import jdk.internal.net.http.common.MinimalFuture; import jdk.internal.net.http.common.Utils; import jdk.internal.net.http.frame.SettingsFrame; + +import static jdk.internal.net.http.frame.SettingsFrame.INITIAL_CONNECTION_WINDOW_SIZE; import static jdk.internal.net.http.frame.SettingsFrame.INITIAL_WINDOW_SIZE; import static jdk.internal.net.http.frame.SettingsFrame.ENABLE_PUSH; import static jdk.internal.net.http.frame.SettingsFrame.HEADER_TABLE_SIZE; @@ -291,9 +293,13 @@ int getConnectionWindowSize(SettingsFrame clientSettings) { // and the connection window size. int defaultValue = Math.max(streamWindow, K*K*32); + // The min value is the max between the streamWindow and + // the initial connection window size + int minValue = Math.max(INITIAL_CONNECTION_WINDOW_SIZE, streamWindow); + return getParameter( "jdk.httpclient.connectionWindowSize", - streamWindow, Integer.MAX_VALUE, defaultValue); + minValue, Integer.MAX_VALUE, defaultValue); } /** diff --git a/src/java.net.http/share/classes/jdk/internal/net/http/Http2Connection.java b/src/java.net.http/share/classes/jdk/internal/net/http/Http2Connection.java index 080905222c3..2e6b4204984 100644 --- a/src/java.net.http/share/classes/jdk/internal/net/http/Http2Connection.java +++ b/src/java.net.http/share/classes/jdk/internal/net/http/Http2Connection.java @@ -92,6 +92,7 @@ import static jdk.internal.net.http.frame.SettingsFrame.DEFAULT_INITIAL_WINDOW_SIZE; import static jdk.internal.net.http.frame.SettingsFrame.ENABLE_PUSH; import static jdk.internal.net.http.frame.SettingsFrame.HEADER_TABLE_SIZE; +import static jdk.internal.net.http.frame.SettingsFrame.INITIAL_CONNECTION_WINDOW_SIZE; import static jdk.internal.net.http.frame.SettingsFrame.INITIAL_WINDOW_SIZE; import static jdk.internal.net.http.frame.SettingsFrame.MAX_CONCURRENT_STREAMS; import static jdk.internal.net.http.frame.SettingsFrame.MAX_FRAME_SIZE; @@ -1080,6 +1081,34 @@ private String checkMaxOrphanedHeadersExceeded(HeaderFrame hf) { return null; } + // This method is called when a DataFrame that was added + // to a Stream::inputQ is later dropped from the queue + // without being consumed. + // + // Before adding a frame to the queue, the Stream calls + // connection.windowUpdater.canBufferUnprocessedBytes(), which + // increases the count of unprocessed bytes in the connection. + // After consuming the frame, it calls connection.windowUpdater::processed, + // which decrements the count of unprocessed bytes, and possibly + // sends a window update to the peer. + // + // This method is called when connection.windowUpdater::processed + // will not be called, which can happen when consuming the frame + // fails, or when an empty DataFrame terminates the stream, + // or when the stream is cancelled while data is still + // sitting in its inputQ. In the later case, it is called for + // each frame that is dropped from the queue. + final void releaseUnconsumed(DataFrame df) { + windowUpdater.released(df.payloadLength()); + dropDataFrame(df); + } + + // This method can be called directly when a DataFrame is dropped + // before/without having been added to any Stream::inputQ. + // In that case, the number of unprocessed bytes hasn't been incremented + // by the stream, and does not need to be decremented. + // Otherwise, if the frame is dropped after having been added to the + // inputQ, releaseUnconsumed above should be called. final void dropDataFrame(DataFrame df) { if (isMarked(closedState, SHUTDOWN_REQUESTED)) return; if (debug.on()) { @@ -1465,11 +1494,12 @@ private void sendConnectionPreface() throws IOException { // Note that the default initial window size, not to be confused // with the initial window size, is defined by RFC 7540 as // 64K -1. - final int len = windowUpdater.initialWindowSize - DEFAULT_INITIAL_WINDOW_SIZE; - if (len != 0) { + final int len = windowUpdater.initialWindowSize - INITIAL_CONNECTION_WINDOW_SIZE; + assert len >= 0; + if (len > 0) { if (Log.channel()) { Log.logChannel("Sending initial connection window update frame: {0} ({1} - {2})", - len, windowUpdater.initialWindowSize, DEFAULT_INITIAL_WINDOW_SIZE); + len, windowUpdater.initialWindowSize, INITIAL_CONNECTION_WINDOW_SIZE); } windowUpdater.sendWindowUpdate(len); } @@ -1924,6 +1954,19 @@ public ConnectionWindowUpdateSender(Http2Connection connection, int getStreamId() { return 0; } + + @Override + protected boolean windowSizeExceeded(long received) { + if (connection.isOpen()) { + try { + connection.protocolError(ErrorFrame.FLOW_CONTROL_ERROR, + "connection window exceeded"); + } catch (IOException io) { + connection.shutdown(io); + } + } + return true; + } } /** diff --git a/src/java.net.http/share/classes/jdk/internal/net/http/HttpConnection.java b/src/java.net.http/share/classes/jdk/internal/net/http/HttpConnection.java index 8fbf27ddc46..d9dd533c0f0 100644 --- a/src/java.net.http/share/classes/jdk/internal/net/http/HttpConnection.java +++ b/src/java.net.http/share/classes/jdk/internal/net/http/HttpConnection.java @@ -356,13 +356,13 @@ BiPredicate headerFilter(HttpRequestImpl request) { } } - BiPredicate contextRestricted(HttpRequestImpl request, HttpClient client) { + BiPredicate contextRestricted(HttpRequestImpl request) { if (!isTunnel() && request.isConnect()) { // establishing a proxy tunnel assert request.proxy() == null; - return Utils.PROXY_TUNNEL_RESTRICTED(client); + return Utils.PROXY_TUNNEL_RESTRICTED(); } else { - return Utils.CONTEXT_RESTRICTED(client); + return Utils.ACCEPT_ALL; } } diff --git a/src/java.net.http/share/classes/jdk/internal/net/http/HttpRequestImpl.java b/src/java.net.http/share/classes/jdk/internal/net/http/HttpRequestImpl.java index f5b5ed54bf3..839b6a6185d 100644 --- a/src/java.net.http/share/classes/jdk/internal/net/http/HttpRequestImpl.java +++ b/src/java.net.http/share/classes/jdk/internal/net/http/HttpRequestImpl.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -26,6 +26,7 @@ package jdk.internal.net.http; import java.io.IOException; +import java.net.Authenticator; import java.net.InetSocketAddress; import java.net.Proxy; import java.net.ProxySelector; @@ -47,6 +48,8 @@ import jdk.internal.net.http.common.Utils; import jdk.internal.net.http.websocket.WebSocketRequest; +import static java.net.Authenticator.RequestorType.PROXY; +import static java.net.Authenticator.RequestorType.SERVER; import static jdk.internal.net.http.common.Utils.ALLOWED_HEADERS; import static jdk.internal.net.http.common.Utils.ProxyHeaders; @@ -66,6 +69,8 @@ public class HttpRequestImpl extends HttpRequest implements WebSocketRequest { private volatile AccessControlContext acc; private final Duration timeout; // may be null private final Optional version; + private volatile boolean userSetAuthorization; + private volatile boolean userSetProxyAuthorization; private static String userAgent() { PrivilegedAction pa = () -> System.getProperty("java.version"); @@ -333,6 +338,30 @@ boolean isWebSocket() { return isWebSocket; } + /** + * These flags are set if the user set an Authorization or Proxy-Authorization header + * overriding headers produced by an Authenticator that was also set + * + * The values are checked in the AuthenticationFilter which tells the library + * to return whatever response received to the user instead of causing request + * to be resent, in case of error. + */ + public void setUserSetAuthFlag(Authenticator.RequestorType type, boolean value) { + if (type == SERVER) { + userSetAuthorization = value; + } else { + userSetProxyAuthorization = value; + } + } + + public boolean getUserSetAuthFlag(Authenticator.RequestorType type) { + if (type == SERVER) { + return userSetAuthorization; + } else { + return userSetProxyAuthorization; + } + } + @Override public Optional bodyPublisher() { return requestPublisher == null ? Optional.empty() diff --git a/src/java.net.http/share/classes/jdk/internal/net/http/Stream.java b/src/java.net.http/share/classes/jdk/internal/net/http/Stream.java index 84187678f94..bbb63718dc6 100644 --- a/src/java.net.http/share/classes/jdk/internal/net/http/Stream.java +++ b/src/java.net.http/share/classes/jdk/internal/net/http/Stream.java @@ -160,14 +160,13 @@ class Stream extends ExchangeImpl { // send lock: prevent sending DataFrames after reset occurred. private final Lock sendLock = new ReentrantLock(); private final Lock stateLock = new ReentrantLock(); - /** * A reference to this Stream's connection Send Window controller. The * stream MUST acquire the appropriate amount of Send Window before * sending any data. Will be null for PushStreams, as they cannot send data. */ private final WindowController windowController; - private final WindowUpdateSender windowUpdater; + private final WindowUpdateSender streamWindowUpdater; // Only accessed in all method calls from incoming(), no need for volatile private boolean endStreamSeen; @@ -217,7 +216,8 @@ private void schedule() { int size = Utils.remaining(dsts, Integer.MAX_VALUE); if (size == 0 && finished) { inputQ.remove(); - connection.ensureWindowUpdated(df); // must update connection window + // consumed will not be called + connection.releaseUnconsumed(df); // must update connection window Log.logTrace("responseSubscriber.onComplete"); if (debug.on()) debug.log("incoming: onComplete"); connection.decrementStreamsCount(streamid); @@ -232,7 +232,11 @@ private void schedule() { try { subscriber.onNext(dsts); } catch (Throwable t) { - connection.dropDataFrame(df); // must update connection window + // Data frames that have been added to the inputQ + // must be released using releaseUnconsumed() to + // account for the amount of unprocessed bytes + // tracked by the connection.windowUpdater. + connection.releaseUnconsumed(df); throw t; } if (consumed(df)) { @@ -283,8 +287,12 @@ private void schedule() { private void drainInputQueue() { Http2Frame frame; while ((frame = inputQ.poll()) != null) { - if (frame instanceof DataFrame) { - connection.dropDataFrame((DataFrame)frame); + if (frame instanceof DataFrame df) { + // Data frames that have been added to the inputQ + // must be released using releaseUnconsumed() to + // account for the amount of unprocessed bytes + // tracked by the connection.windowUpdater. + connection.releaseUnconsumed(df); } } } @@ -310,12 +318,13 @@ private boolean consumed(DataFrame df) { boolean endStream = df.getFlag(DataFrame.END_STREAM); if (len == 0) return endStream; - connection.windowUpdater.update(len); - + connection.windowUpdater.processed(len); if (!endStream) { + streamWindowUpdater.processed(len); + } else { // Don't send window update on a stream which is // closed or half closed. - windowUpdater.update(len); + streamWindowUpdater.released(len); } // true: end of stream; false: more data coming @@ -385,8 +394,21 @@ public String toString() { } private void receiveDataFrame(DataFrame df) { - inputQ.add(df); - sched.runOrSchedule(); + try { + int len = df.payloadLength(); + if (len > 0) { + // we return from here if the connection is being closed. + if (!connection.windowUpdater.canBufferUnprocessedBytes(len)) return; + // we return from here if the stream is being closed. + if (closed || !streamWindowUpdater.canBufferUnprocessedBytes(len)) { + connection.releaseUnconsumed(df); + return; + } + } + inputQ.add(df); + } finally { + sched.runOrSchedule(); + } } /** Handles a RESET frame. RESET is always handled inline in the queue. */ @@ -470,7 +492,7 @@ CompletableFuture> sendBodyAsync() { this.responseHeadersBuilder = new HttpHeadersBuilder(); this.rspHeadersConsumer = new HeadersConsumer(); this.requestPseudoHeaders = createPseudoHeaders(request); - this.windowUpdater = new StreamWindowUpdateSender(connection); + this.streamWindowUpdater = new StreamWindowUpdateSender(connection); } private boolean checkRequestCancelled() { @@ -506,6 +528,8 @@ void incoming(Http2Frame frame) throws IOException { if (debug.on()) { debug.log("request cancelled or stream closed: dropping data frame"); } + // Data frames that have not been added to the inputQ + // can be released using dropDataFrame connection.dropDataFrame(df); } else { receiveDataFrame(df); @@ -825,7 +849,8 @@ private OutgoingHeaders> headerFrame(long contentLength) { HttpHeaders sysh = filterHeaders(h.build()); HttpHeaders userh = filterHeaders(request.getUserHeaders()); // Filter context restricted from userHeaders - userh = HttpHeaders.of(userh.map(), Utils.CONTEXT_RESTRICTED(client())); + userh = HttpHeaders.of(userh.map(), Utils.ACCEPT_ALL); + Utils.setUserAuthFlags(request, userh); // Don't override Cookie values that have been set by the CookieHandler. final HttpHeaders uh = userh; @@ -1426,12 +1451,18 @@ void cancel(IOException cause) { @Override void onProtocolError(final IOException cause) { + onProtocolError(cause, ResetFrame.PROTOCOL_ERROR); + } + + void onProtocolError(final IOException cause, int code) { if (debug.on()) { - debug.log("cancelling exchange on stream %d due to protocol error: %s", streamid, cause.getMessage()); + debug.log("cancelling exchange on stream %d due to protocol error [%s]: %s", + streamid, ErrorFrame.stringForCode(code), + cause.getMessage()); } Log.logError("cancelling exchange on stream {0} due to protocol error: {1}\n", streamid, cause); // send a RESET frame and close the stream - cancelImpl(cause, ResetFrame.PROTOCOL_ERROR); + cancelImpl(cause, code); } void connectionClosing(Throwable cause) { @@ -1735,6 +1766,13 @@ String dbgString() { return dbgString = dbg; } } + + @Override + protected boolean windowSizeExceeded(long received) { + onProtocolError(new ProtocolException("stream %s flow control window exceeded" + .formatted(streamid)), ResetFrame.FLOW_CONTROL_ERROR); + return true; + } } /** diff --git a/src/java.net.http/share/classes/jdk/internal/net/http/WindowUpdateSender.java b/src/java.net.http/share/classes/jdk/internal/net/http/WindowUpdateSender.java index 0bccc24e498..0affadddf15 100644 --- a/src/java.net.http/share/classes/jdk/internal/net/http/WindowUpdateSender.java +++ b/src/java.net.http/share/classes/jdk/internal/net/http/WindowUpdateSender.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -31,16 +31,31 @@ import jdk.internal.net.http.frame.WindowUpdateFrame; import jdk.internal.net.http.common.Utils; import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.locks.ReentrantLock; +/** + * A class that tracks the amount of flow controlled + * data received on an HTTP/2 connection + */ abstract class WindowUpdateSender { final Logger debug = Utils.getDebugLogger(this::dbgString, Utils.DEBUG); + // The threshold at which window updates are sent in bytes final int limit; + // The flow control window in bytes + final int windowSize; final Http2Connection connection; - final AtomicInteger received = new AtomicInteger(); + // The amount of flow controlled data received and processed, in bytes, + // since the start of the window. + // The window is exhausted when received + unprocessed >= windowSize + final AtomicLong received = new AtomicLong(); + // The amount of flow controlled data received and unprocessed, in bytes, + // since the start of the window. + // The window is exhausted when received + unprocessed >= windowSize + final AtomicLong unprocessed = new AtomicLong(); final ReentrantLock sendLock = new ReentrantLock(); WindowUpdateSender(Http2Connection connection) { @@ -53,6 +68,7 @@ abstract class WindowUpdateSender { WindowUpdateSender(Http2Connection connection, int maxFrameSize, int initWindowSize) { this.connection = connection; + this.windowSize = initWindowSize; int v0 = Math.max(0, initWindowSize - maxFrameSize); int v1 = (initWindowSize + (maxFrameSize - 1)) / maxFrameSize; v1 = v1 * maxFrameSize / 2; @@ -66,16 +82,119 @@ abstract class WindowUpdateSender { maxFrameSize, initWindowSize, limit); } + // O for the connection window, > 0 for a stream window abstract int getStreamId(); + + /** + * {@return {@code true} if buffering the given amount of + * flow controlled data would not exceed the flow control + * window} + *

    + * This method is called before buffering and processing + * a DataFrame. The count of unprocessed bytes is incremented + * by the given amount, and checked against the number of + * available bytes in the flow control window. + *

    + * This method returns {@code true} if the bytes can be buffered + * without exceeding the flow control window, {@code false} + * if the flow control window is exceeded and corrective + * action (close/reset) has been taken. + *

    + * When this method returns true, either {@link #processed(int)} + * or {@link #released(int)} must eventually be called to release + * the bytes from the flow control window. + * + * @implSpec + * an HTTP/2 endpoint may disable its own flow control + * (see + * RFC 9113, section 5.2.1), in which case this + * method may return true even if the flow control window would + * be exceeded: that is, the flow control window is exceeded but + * the endpoint decided to take no corrective action. + * + * @param len a number of unprocessed bytes, which + * the caller wants to buffer. + */ + boolean canBufferUnprocessedBytes(int len) { + return !checkWindowSizeExceeded(unprocessed.addAndGet(len)); + } + + // adds the provided amount to the amount of already + // received and processed bytes and checks whether the + // flow control window is exceeded. If so, take + // corrective actions and return true. + private boolean checkWindowSizeExceeded(long len) { + // because windowSize is bound by Integer.MAX_VALUE + // we will never reach the point where received.get() + len + // could overflow + long rcv = received.get() + len; + return rcv > windowSize && windowSizeExceeded(rcv); + } + + /** + * Called after unprocessed buffered bytes have been + * processed, to release part of the flow control window + * + * @apiNote this method is called only when releasing bytes + * that where buffered after calling + * {@link #canBufferUnprocessedBytes(int)}. + * + * @param delta the amount of processed bytes to release + */ + void processed(int delta) { + long rest = unprocessed.addAndGet(-delta); + assert rest >= 0; + update(delta); + } + + /** + * Called when it is desired to release unprocessed bytes + * without processing them, or without triggering the + * sending of a window update. This method can be called + * instead of calling {@link #processed(int)}. + * When this method is called instead of calling {@link #processed(int)}, + * it should generally be followed by a call to {@link #update(int)}, + * unless the stream or connection is being closed. + * + * @apiNote this method should only be called to release bytes that + * have been buffered after calling {@link + * #canBufferUnprocessedBytes(int)}. + * + * @param delta the amount of bytes to release from the window + * + * @return the amount of remaining unprocessed bytes + */ + long released(int delta) { + long rest = unprocessed.addAndGet(-delta); + assert rest >= 0; + return rest; + } + + /** + * This method is called to update the flow control window, + * and possibly send a window update + * + * @apiNote this method can be called directly if a frame is + * dropped before calling {@link #canBufferUnprocessedBytes(int)}. + * Otherwise, either {@link #processed(int)} or {@link #released(int)} + * should be called, depending on whether sending a window update + * is desired or not. It is typically not desired to send an update + * if the stream or connection is being closed. + * + * @param delta the amount of bytes released from the window. + */ void update(int delta) { - int rcv = received.addAndGet(delta); + long rcv = received.addAndGet(delta); if (debug.on()) debug.log("update: %d, received: %d, limit: %d", delta, rcv, limit); + if (rcv > windowSize && windowSizeExceeded(rcv)) { + return; + } if (rcv > limit) { sendLock.lock(); try { - int tosend = received.get(); - if( tosend > limit) { + int tosend = (int)Math.min(received.get(), Integer.MAX_VALUE); + if (tosend > limit) { received.getAndAdd(-tosend); sendWindowUpdate(tosend); } @@ -87,6 +206,7 @@ void update(int delta) { void sendWindowUpdate(int delta) { if (debug.on()) debug.log("sending window update: %d", delta); + assert delta > 0 : "illegal window update delta: " + delta; connection.sendUnorderedFrame(new WindowUpdateFrame(getStreamId(), delta)); } @@ -104,4 +224,16 @@ String dbgString() { } } + /** + * Called when the flow control window size is exceeded + * This method may return false if flow control is disabled + * in this endpoint. + * + * @param received the amount of data received, which is greater + * than {@code windowSize} + * @return {@code true} if the error was reported to the peer + * and no further window update should be sent. + */ + protected abstract boolean windowSizeExceeded(long received); + } diff --git a/src/java.net.http/share/classes/jdk/internal/net/http/common/Utils.java b/src/java.net.http/share/classes/jdk/internal/net/http/common/Utils.java index 49e669e5add..ef5af764e76 100644 --- a/src/java.net.http/share/classes/jdk/internal/net/http/common/Utils.java +++ b/src/java.net.http/share/classes/jdk/internal/net/http/common/Utils.java @@ -82,6 +82,8 @@ import static java.lang.String.format; import static java.nio.charset.StandardCharsets.US_ASCII; import static java.util.stream.Collectors.joining; +import static java.net.Authenticator.RequestorType.PROXY; +import static java.net.Authenticator.RequestorType.SERVER; /** * Miscellaneous utilities @@ -210,24 +212,10 @@ private static Set getDisallowedHeaders() { return true; }; - // Headers that are not generally restricted, and can therefore be set by users, - // but can in some contexts be overridden by the implementation. - // Currently, only contains "Authorization" which will - // be overridden, when an Authenticator is set on the HttpClient. - // Needs to be BiPred to fit with general form of predicates - // used by caller. - - public static final BiPredicate CONTEXT_RESTRICTED(HttpClient client) { - return (k, v) -> client.authenticator().isEmpty() || - (!k.equalsIgnoreCase("Authorization") - && !k.equalsIgnoreCase("Proxy-Authorization")); - } - public record ProxyHeaders(HttpHeaders userHeaders, HttpHeaders systemHeaders) {} - private static final BiPredicate HOST_RESTRICTED = (k,v) -> !"host".equalsIgnoreCase(k); - public static final BiPredicate PROXY_TUNNEL_RESTRICTED(HttpClient client) { - return CONTEXT_RESTRICTED(client).and(HOST_RESTRICTED); + public static final BiPredicate PROXY_TUNNEL_RESTRICTED() { + return (k,v) -> !"host".equalsIgnoreCase(k); } private static final Predicate IS_HOST = "host"::equalsIgnoreCase; @@ -310,6 +298,19 @@ private static final boolean isAllowedForProxy(String name, public static final BiPredicate NO_PROXY_HEADERS_FILTER = (n,v) -> Utils.NO_PROXY_HEADER.test(n); + /** + * Check the user headers to see if the Authorization or ProxyAuthorization + * were set. We need to set special flags in the request if so. Otherwise + * we can't distinguish user set from Authenticator set headers + */ + public static void setUserAuthFlags(HttpRequestImpl request, HttpHeaders userHeaders) { + if (userHeaders.firstValue("Authorization").isPresent()) { + request.setUserSetAuthFlag(SERVER, true); + } + if (userHeaders.firstValue("Proxy-Authorization").isPresent()) { + request.setUserSetAuthFlag(PROXY, true); + } + } public static boolean proxyHasDisabledSchemes(boolean tunnel) { return tunnel ? ! PROXY_AUTH_TUNNEL_DISABLED_SCHEMES.isEmpty() diff --git a/src/java.net.http/share/classes/jdk/internal/net/http/frame/FramesDecoder.java b/src/java.net.http/share/classes/jdk/internal/net/http/frame/FramesDecoder.java index 72c7750eb43..7ebfa090830 100644 --- a/src/java.net.http/share/classes/jdk/internal/net/http/frame/FramesDecoder.java +++ b/src/java.net.http/share/classes/jdk/internal/net/http/frame/FramesDecoder.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -463,6 +463,16 @@ private Http2Frame parseSettingsFrame(int frameLength, int streamid, int flags) int val = getInt(); if (id > 0 && id <= SettingsFrame.MAX_PARAM) { // a known parameter. Ignore otherwise + if (id == SettingsFrame.INITIAL_WINDOW_SIZE && val < 0) { + return new MalformedFrame(ErrorFrame.FLOW_CONTROL_ERROR, + "SettingsFrame with INITIAL_WINDOW_SIZE > 2^31 -1: " + + (val & 0xffffffffL)); + } + if (id == SettingsFrame.MAX_FRAME_SIZE && (val < 16384 || val > 16777215)) { + return new MalformedFrame(ErrorFrame.PROTOCOL_ERROR, + "SettingsFrame with MAX_FRAME_SIZE out of range: " + + (val & 0xffffffffL)); + } sf.setParameter(id, val); // TODO parameters validation } } @@ -530,7 +540,12 @@ private Http2Frame parseWindowUpdateFrame(int frameLength, int streamid, int fla return new MalformedFrame(ErrorFrame.FRAME_SIZE_ERROR, "WindowUpdateFrame length is "+ frameLength+", expected 4"); } - return new WindowUpdateFrame(streamid, getInt() & 0x7fffffff); + int update = getInt(); + if (update < 0) { + return new MalformedFrame(ErrorFrame.FLOW_CONTROL_ERROR, + "WindowUpdateFrame with value > 2^31 -1 " + (update & 0xffffffffL)); + } + return new WindowUpdateFrame(streamid, update & 0x7fffffff); } private Http2Frame parseContinuationFrame(int frameLength, int streamid, int flags) { diff --git a/src/java.net.http/share/classes/jdk/internal/net/http/frame/SettingsFrame.java b/src/java.net.http/share/classes/jdk/internal/net/http/frame/SettingsFrame.java index 8a011959417..b3b8164598f 100644 --- a/src/java.net.http/share/classes/jdk/internal/net/http/frame/SettingsFrame.java +++ b/src/java.net.http/share/classes/jdk/internal/net/http/frame/SettingsFrame.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -166,6 +166,11 @@ public synchronized void update(SettingsFrame updated) { // The initial value is 2^14 (16,384) octets. public static final int DEFAULT_MAX_FRAME_SIZE = 16 * K; + // Initial connection window size. This cannot be updated using the + // SETTINGS frame. + public static final int INITIAL_CONNECTION_WINDOW_SIZE = DEFAULT_INITIAL_WINDOW_SIZE; + + public static SettingsFrame defaultRFCSettings() { SettingsFrame f = new SettingsFrame(); f.setParameter(ENABLE_PUSH, DEFAULT_ENABLE_PUSH); diff --git a/src/java.net.http/share/classes/module-info.java b/src/java.net.http/share/classes/module-info.java index 5303e818866..c95d80657b8 100644 --- a/src/java.net.http/share/classes/module-info.java +++ b/src/java.net.http/share/classes/module-info.java @@ -57,9 +57,11 @@ * means that the cache is unbounded. * *

  • {@systemProperty jdk.httpclient.connectionWindowSize} (default: 2^26)
    - * The HTTP/2 client connection window size in bytes. The maximum size is 2^31-1. This value - * cannot be smaller than the stream window size, which can be configured through the - * {@code jdk.httpclient.windowsize} system property. + * The HTTP/2 client connection window size in bytes. Valid values are in the range + * [2^16-1, 2^31-1]. If an invalid value is provided, the default value is used. + * The implementation guarantees that the actual value will be no smaller than the stream + * window size, which can be configured through the {@code jdk.httpclient.windowsize} + * system property. *

  • *
  • {@systemProperty jdk.httpclient.disableRetryConnect} (default: false)
    * Whether automatic retry of connection failures is disabled. If false, then retries are @@ -150,7 +152,8 @@ * or 16kB)
    The buffer size used by the web socket implementation for socket writes. *

  • *
  • {@systemProperty jdk.httpclient.windowsize} (default: 16777216 or 16 MB)
    - * The HTTP/2 client stream window size in bytes. + * The HTTP/2 client stream window size in bytes. Valid values are in the range [2^14, 2^31-1]. + * If an invalid value is provided, the default value is used. *

  • *
  • {@systemProperty jdk.httpclient.auth.retrylimit} (default: 3)
    * The number of attempts the Basic authentication filter will attempt to retry a failed diff --git a/src/java.prefs/unix/classes/java/util/prefs/FileSystemPreferences.java b/src/java.prefs/unix/classes/java/util/prefs/FileSystemPreferences.java index 5f0531c0ff7..756eedade72 100644 --- a/src/java.prefs/unix/classes/java/util/prefs/FileSystemPreferences.java +++ b/src/java.prefs/unix/classes/java/util/prefs/FileSystemPreferences.java @@ -450,7 +450,7 @@ private void replayChanges() { changeLog.get(i).replay(); } - private static Timer syncTimer = new Timer(true); // Daemon Thread + private static final Timer syncTimer = new Timer(true); // Daemon Thread static { addShutdownHook(); @@ -540,7 +540,7 @@ public Void run() { } }); if (newNode) { - // These 2 things guarantee node will get wrtten at next flush/sync + // These 2 things guarantee node will get written at next flush/sync prefsCache = new TreeMap<>(); nodeCreate = new NodeCreate(); changeLog.add(nodeCreate); @@ -1008,12 +1008,12 @@ private void checkLockFile0ErrorCode (int errorCode) * Initial time between lock attempts, in ms. The time is doubled * after each failing attempt (except the first). */ - private static int INIT_SLEEP_TIME = 50; + private static final int INIT_SLEEP_TIME = 50; /** * Maximum number of lock attempts. */ - private static int MAX_ATTEMPTS = 5; + private static final int MAX_ATTEMPTS = 5; /** * Release the appropriate file lock (user or system). diff --git a/src/java.scripting/share/classes/javax/script/Invocable.java b/src/java.scripting/share/classes/javax/script/Invocable.java index 1fda248a521..87a9624fecd 100644 --- a/src/java.scripting/share/classes/javax/script/Invocable.java +++ b/src/java.scripting/share/classes/javax/script/Invocable.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -38,13 +38,13 @@ public interface Invocable { * Calls a method on a script object compiled during a previous script execution, * which is retained in the state of the ScriptEngine. * - * @param name The name of the procedure to be called. - * * @param thiz If the procedure is a member of a class * defined in the script and thiz is an instance of that class * returned by a previous execution or invocation, the named method is * called through that instance. * + * @param name The name of the procedure to be called. + * * @param args Arguments to pass to the procedure. The rules for converting * the arguments to scripting variables are implementation-specific. * diff --git a/src/java.smartcardio/unix/legal/pcsclite.md b/src/java.smartcardio/unix/legal/pcsclite.md index 99a9936a477..66cdf62ee15 100644 --- a/src/java.smartcardio/unix/legal/pcsclite.md +++ b/src/java.smartcardio/unix/legal/pcsclite.md @@ -1,4 +1,4 @@ -## PC/SC Lite v1.9.9 +## PC/SC Lite v2.3.0 ### PC/SC Lite Notice ``` @@ -9,19 +9,19 @@ Only 3 header files are included in this distribution: winscard.h, wintypes.h, p Copyright for winscard.h: * Copyright (C) 1999-2003 * David Corcoran - * Copyright (C) 2002-2009 + * Copyright (C) 2002-2018 * Ludovic Rousseau Copyright for wintypes.h: * Copyright (C) 1999 * David Corcoran - * Copyright (C) 2002-2011 + * Copyright (C) 2002-2018 * Ludovic Rousseau Copyright for pcsclite.h: * Copyright (C) 1999-2004 * David Corcoran - * Copyright (C) 2002-2011 + * Copyright (C) 2002-2024 * Ludovic Rousseau * Copyright (C) 2005 * Martin Paljak diff --git a/src/java.smartcardio/unix/native/libj2pcsc/MUSCLE/pcsclite.h b/src/java.smartcardio/unix/native/libj2pcsc/MUSCLE/pcsclite.h index e722b13a730..f589868a7ba 100644 --- a/src/java.smartcardio/unix/native/libj2pcsc/MUSCLE/pcsclite.h +++ b/src/java.smartcardio/unix/native/libj2pcsc/MUSCLE/pcsclite.h @@ -3,7 +3,7 @@ * * Copyright (C) 1999-2004 * David Corcoran - * Copyright (C) 2002-2011 + * Copyright (C) 2002-2024 * Ludovic Rousseau * Copyright (C) 2005 * Martin Paljak @@ -192,7 +192,8 @@ extern const SCARD_IO_REQUEST g_rgSCardT0Pci, g_rgSCardT1Pci, g_rgSCardRawPci; /** @ingroup ErrorCodes */ #define SCARD_E_INVALID_CHV ((LONG)0x8010002A) /**< The supplied PIN is incorrect. */ /** @ingroup ErrorCodes */ -#define SCARD_E_UNKNOWN_RES_MNG ((LONG)0x8010002B) /**< An unrecognized error code was returned from a layered component. */ +#define SCARD_E_UNKNOWN_RES_MSG ((LONG)0x8010002B) /**< An unrecognized error code was returned from a layered component. */ +#define SCARD_E_UNKNOWN_RES_MNG SCARD_E_UNKNOWN_RES_MSG /** @ingroup ErrorCodes */ #define SCARD_E_NO_SUCH_CERTIFICATE ((LONG)0x8010002C) /**< The requested certificate does not exist. */ /** @ingroup ErrorCodes */ @@ -279,7 +280,7 @@ extern const SCARD_IO_REQUEST g_rgSCardT0Pci, g_rgSCardT1Pci, g_rgSCardRawPci; #define INFINITE 0xFFFFFFFF /**< Infinite timeout */ #endif -#define PCSCLITE_VERSION_NUMBER "1.9.9" /**< Current version */ +#define PCSCLITE_VERSION_NUMBER "2.3.0" /**< Current version */ /** Maximum readers context (a slot is count as a reader) */ #define PCSCLITE_MAX_READERS_CONTEXTS 16 diff --git a/src/java.smartcardio/unix/native/libj2pcsc/MUSCLE/winscard.h b/src/java.smartcardio/unix/native/libj2pcsc/MUSCLE/winscard.h index d2c5a5758b5..f9a4265de85 100644 --- a/src/java.smartcardio/unix/native/libj2pcsc/MUSCLE/winscard.h +++ b/src/java.smartcardio/unix/native/libj2pcsc/MUSCLE/winscard.h @@ -3,7 +3,7 @@ * * Copyright (C) 1999-2003 * David Corcoran - * Copyright (C) 2002-2009 + * Copyright (C) 2002-2018 * Ludovic Rousseau * Redistribution and use in source and binary forms, with or without diff --git a/src/java.smartcardio/unix/native/libj2pcsc/MUSCLE/wintypes.h b/src/java.smartcardio/unix/native/libj2pcsc/MUSCLE/wintypes.h index 3770de20909..5e8973a0993 100644 --- a/src/java.smartcardio/unix/native/libj2pcsc/MUSCLE/wintypes.h +++ b/src/java.smartcardio/unix/native/libj2pcsc/MUSCLE/wintypes.h @@ -3,7 +3,7 @@ * * Copyright (C) 1999 * David Corcoran - * Copyright (C) 2002-2011 + * Copyright (C) 2002-2018 * Ludovic Rousseau * Redistribution and use in source and binary forms, with or without diff --git a/src/java.sql.rowset/share/classes/javax/sql/rowset/CachedRowSet.java b/src/java.sql.rowset/share/classes/javax/sql/rowset/CachedRowSet.java index c10cefef290..e9efa2c7118 100644 --- a/src/java.sql.rowset/share/classes/javax/sql/rowset/CachedRowSet.java +++ b/src/java.sql.rowset/share/classes/javax/sql/rowset/CachedRowSet.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -1561,10 +1561,10 @@ public interface CachedRowSet extends RowSet, Joinable { * method is more a matter of convenience when compared to using the version * of execute that takes a ResultSet object. * - * @param startRow the position in the ResultSet from where to start - * populating the records in this CachedRowSet * @param rs the ResultSet object containing the data * to be read into this CachedRowSet object + * @param startRow the position in the ResultSet from where to start + * populating the records in this CachedRowSet * @throws SQLException if a null ResultSet object is supplied * or this CachedRowSet object cannot * retrieve the associated ResultSetMetaData object diff --git a/src/java.xml/share/classes/javax/xml/stream/XMLEventFactory.java b/src/java.xml/share/classes/javax/xml/stream/XMLEventFactory.java index 6ca9768915c..d47f4d0e122 100644 --- a/src/java.xml/share/classes/javax/xml/stream/XMLEventFactory.java +++ b/src/java.xml/share/classes/javax/xml/stream/XMLEventFactory.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2009, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -258,9 +258,9 @@ public abstract StartElement createStartElement(QName name, * an empty NamespaceContext. Querying this event for its namespaces or * attributes will result in an empty iterator being returned. * + * @param prefix the prefix of the QName of the new StartElement * @param namespaceUri the uri of the QName of the new StartElement * @param localName the local name of the QName of the new StartElement - * @param prefix the prefix of the QName of the new StartElement * @return an instance of the requested StartElement */ public abstract StartElement createStartElement(String prefix, @@ -272,9 +272,9 @@ public abstract StartElement createStartElement(String prefix, * Attributes can be added to this StartElement by passing an iterator * that walks over a set of Attribute interfaces. * + * @param prefix the prefix of the QName of the new StartElement * @param namespaceUri the uri of the QName of the new StartElement * @param localName the local name of the QName of the new StartElement - * @param prefix the prefix of the QName of the new StartElement * @param attributes an unordered set of objects that implement * Attribute to add to the new StartElement * @param namespaces an unordered set of objects that implement @@ -293,9 +293,9 @@ public abstract StartElement createStartElement(String prefix, * Attributes can be added to this StartElement by passing an iterator * that walks over a set of Attribute interfaces. * + * @param prefix the prefix of the QName of the new StartElement * @param namespaceUri the uri of the QName of the new StartElement * @param localName the local name of the QName of the new StartElement - * @param prefix the prefix of the QName of the new StartElement * @param attributes an unordered set of objects that implement * Attribute to add to the new StartElement, may be null * @param namespaces an unordered set of objects that implement @@ -323,9 +323,9 @@ public abstract EndElement createEndElement(QName name, /** * Create a new EndElement + * @param prefix the prefix of the QName of the new StartElement * @param namespaceUri the uri of the QName of the new StartElement * @param localName the local name of the QName of the new StartElement - * @param prefix the prefix of the QName of the new StartElement * @return an instance of the requested EndElement */ public abstract EndElement createEndElement(String prefix, @@ -333,9 +333,9 @@ public abstract EndElement createEndElement(String prefix, String localName); /** * Create a new EndElement + * @param prefix the prefix of the QName of the new StartElement * @param namespaceUri the uri of the QName of the new StartElement * @param localName the local name of the QName of the new StartElement - * @param prefix the prefix of the QName of the new StartElement * @param namespaces an unordered set of objects that implement * Namespace that have gone out of scope, may be null * @return an instance of the requested EndElement diff --git a/src/java.xml/share/classes/javax/xml/stream/XMLStreamException.java b/src/java.xml/share/classes/javax/xml/stream/XMLStreamException.java index 47ef2e437c9..a6bac73e528 100644 --- a/src/java.xml/share/classes/javax/xml/stream/XMLStreamException.java +++ b/src/java.xml/share/classes/javax/xml/stream/XMLStreamException.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2009, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -77,8 +77,8 @@ public XMLStreamException(Throwable th) { /** * Construct an exception with the associated message and exception * - * @param th a nested exception * @param msg the message to report + * @param th a nested exception */ public XMLStreamException(String msg, Throwable th) { super(msg, th); @@ -88,9 +88,9 @@ public XMLStreamException(String msg, Throwable th) { /** * Construct an exception with the associated message, exception and location. * - * @param th a nested exception * @param msg the message to report * @param location the location of the error + * @param th a nested exception */ public XMLStreamException(String msg, Location location, Throwable th) { super("ParseError at [row,col]:["+location.getLineNumber()+","+ diff --git a/src/java.xml/share/classes/javax/xml/stream/XMLStreamWriter.java b/src/java.xml/share/classes/javax/xml/stream/XMLStreamWriter.java index 7cd383245a8..9f0f49776e5 100644 --- a/src/java.xml/share/classes/javax/xml/stream/XMLStreamWriter.java +++ b/src/java.xml/share/classes/javax/xml/stream/XMLStreamWriter.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2009, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -209,8 +209,8 @@ public void writeStartElement(String namespaceURI, String localName) /** * Writes a start tag to the output - * @param localName local name of the tag, may not be null * @param prefix the prefix of the tag, may not be null + * @param localName local name of the tag, may not be null * @param namespaceURI the uri to bind the prefix to, may not be null * @throws XMLStreamException if an error occurs */ diff --git a/src/java.xml/share/classes/javax/xml/transform/TransformerConfigurationException.java b/src/java.xml/share/classes/javax/xml/transform/TransformerConfigurationException.java index a90e29121a8..9c0b9a4be5b 100644 --- a/src/java.xml/share/classes/javax/xml/transform/TransformerConfigurationException.java +++ b/src/java.xml/share/classes/javax/xml/transform/TransformerConfigurationException.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -67,9 +67,9 @@ public TransformerConfigurationException(Throwable e) { * Create a new TransformerConfigurationException with the * given Exception base cause and detail message. * + * @param msg The detail message. * @param e The exception to be encapsulated in a * TransformerConfigurationException - * @param msg The detail message. */ public TransformerConfigurationException(String msg, Throwable e) { super(msg, e); diff --git a/src/java.xml/share/classes/javax/xml/validation/SchemaFactoryConfigurationError.java b/src/java.xml/share/classes/javax/xml/validation/SchemaFactoryConfigurationError.java index 47c4dda1ee6..b61060b7404 100644 --- a/src/java.xml/share/classes/javax/xml/validation/SchemaFactoryConfigurationError.java +++ b/src/java.xml/share/classes/javax/xml/validation/SchemaFactoryConfigurationError.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -69,9 +69,9 @@ public SchemaFactoryConfigurationError(Throwable cause) { * Create a new SchemaFactoryConfigurationError with the * given Throwable base cause and detail message. * + * @param message The detail message. * @param cause The exception or error to be encapsulated in a * SchemaFactoryConfigurationError. - * @param message The detail message. */ public SchemaFactoryConfigurationError(String message, Throwable cause) { super(message, cause); diff --git a/src/jdk.attach/share/classes/sun/tools/attach/HotSpotVirtualMachine.java b/src/jdk.attach/share/classes/sun/tools/attach/HotSpotVirtualMachine.java index 93656cdf513..10d23f33535 100644 --- a/src/jdk.attach/share/classes/sun/tools/attach/HotSpotVirtualMachine.java +++ b/src/jdk.attach/share/classes/sun/tools/attach/HotSpotVirtualMachine.java @@ -42,6 +42,8 @@ import java.util.Properties; import java.util.stream.Collectors; +import java.nio.charset.StandardCharsets; + /* * The HotSpot implementation of com.sun.tools.attach.VirtualMachine. */ @@ -102,7 +104,7 @@ private void loadAgentLibrary(String agentLibrary, boolean isAbsolute, String op agentLibrary, isAbsolute ? "true" : "false", options); - String result = readErrorMessage(in); + String result = readMessage(in); if (result.isEmpty()) { throw new AgentLoadException("Target VM did not respond"); } else if (result.startsWith(msgPrefix)) { @@ -327,6 +329,45 @@ public InputStream executeCommand(String cmd, Object ... args) throws IOExceptio } } + // Attach API version support + protected static final int VERSION_1 = 1; + protected static final int VERSION_2 = 2; + + /* + * Detects Attach API version supported by target VM. + */ + protected int detectVersion() throws IOException { + try { + InputStream reply = execute("getversion"); + String message = readMessage(reply); + reply.close(); + try { + int supportedVersion = Integer.parseUnsignedInt(message); + // we expect only VERSION_2 + if (supportedVersion == VERSION_2) { + return VERSION_2; + } + } catch (NumberFormatException nfe) { + // bad reply - fallback to VERSION_1 + } + } catch (AttachOperationFailedException | AgentLoadException ex) { + // the command is not supported, the VM supports VERSION_1 only + } + return VERSION_1; + } + + /* + * For testing purposes Attach API v2 may be disabled. + */ + protected boolean isAPIv2Enabled() { + // if "jdk.attach.compat" property is set, only v1 is enabled. + try { + String value = System.getProperty("jdk.attach.compat"); + return !("true".equalsIgnoreCase(value)); + } catch (SecurityException se) { + } + return true; + } /* * Utility method to read an 'int' from the input stream. Ideally @@ -367,7 +408,7 @@ int readInt(InputStream in) throws IOException { /* * Utility method to read data into a String. */ - String readErrorMessage(InputStream in) throws IOException { + String readMessage(InputStream in) throws IOException { String s; StringBuilder message = new StringBuilder(); BufferedReader br = new BufferedReader(new InputStreamReader(in)); @@ -400,7 +441,7 @@ void processCompletionStatus(IOException ioe, String cmd, InputStream sis) throw } if (completionStatus != 0) { // read from the stream and use that as the error message - String message = readErrorMessage(sis); + String message = readMessage(sis); sis.close(); // In the event of a protocol mismatch then the target VM @@ -417,6 +458,51 @@ void processCompletionStatus(IOException ioe, String cmd, InputStream sis) throw } } + /* + * Helper writer interface to send commands to the target VM. + */ + public static interface AttachOutputStream { + abstract void write(byte[] buffer, int offset, int length) throws IOException; + } + + private int dataSize(Object obj) { + return (obj == null ? 0 : obj.toString().getBytes(StandardCharsets.UTF_8).length) + 1; + } + + /* + * Writes object (usually String or Integer) to the attach writer. + */ + private void writeString(AttachOutputStream writer, Object obj) throws IOException { + if (obj != null) { + String s = obj.toString(); + if (s.length() > 0) { + byte[] b = s.getBytes(StandardCharsets.UTF_8); + writer.write(b, 0, b.length); + } + } + byte b[] = new byte[1]; + b[0] = 0; + writer.write(b, 0, 1); + } + + protected void writeCommand(AttachOutputStream writer, int ver, String cmd, Object ... args) throws IOException { + writeString(writer, ver); + if (ver == VERSION_2) { + // for v2 write size of the data + int size = dataSize(cmd); + for (Object arg: args) { + size += dataSize(arg); + } + writeString(writer, size); + } + writeString(writer, cmd); + // v1 commands always write 3 arguments + int argNumber = ver == VERSION_1 ? 3 : args.length; + for (int i = 0; i < argNumber; i++) { + writeString(writer, i < args.length ? args[i] : null); + } + } + /* * InputStream for the socket connection to get target VM */ diff --git a/src/jdk.attach/windows/classes/sun/tools/attach/VirtualMachineImpl.java b/src/jdk.attach/windows/classes/sun/tools/attach/VirtualMachineImpl.java index 9c30f5618d6..23c15ad06e1 100644 --- a/src/jdk.attach/windows/classes/sun/tools/attach/VirtualMachineImpl.java +++ b/src/jdk.attach/windows/classes/sun/tools/attach/VirtualMachineImpl.java @@ -26,6 +26,7 @@ import com.sun.tools.attach.AgentLoadException; import com.sun.tools.attach.AttachNotSupportedException; +import com.sun.tools.attach.AttachOperationFailedException; import com.sun.tools.attach.spi.AttachProvider; import java.io.IOException; @@ -42,6 +43,7 @@ public class VirtualMachineImpl extends HotSpotVirtualMachine { private static byte[] stub; private volatile long hProcess; // handle to the process + private int ver = VERSION_1; // updated in ctor depending on detectVersion result VirtualMachineImpl(AttachProvider provider, String id) throws AttachNotSupportedException, IOException @@ -51,11 +53,15 @@ public class VirtualMachineImpl extends HotSpotVirtualMachine { int pid = Integer.parseInt(id); hProcess = openProcess(pid); - // The target VM might be a pre-6.0 VM so we enqueue a "null" command - // which minimally tests that the enqueue function exists in the target - // VM. try { - enqueue(hProcess, stub, null, null); + if (isAPIv2Enabled()) { + ver = detectVersion(); + } else { + // The target VM might be a pre-6.0 VM so we enqueue a "null" command + // which minimally tests that the enqueue function exists in the target + // VM. + enqueue(hProcess, stub, VERSION_1, null, null); + } } catch (IOException x) { throw new AttachNotSupportedException(x.getMessage()); } @@ -73,7 +79,6 @@ public void detach() throws IOException { InputStream execute(String cmd, Object ... args) throws AgentLoadException, IOException { - assert args.length <= 3; // includes null checkNulls(args); // create a pipe using a random name @@ -83,12 +88,12 @@ InputStream execute(String cmd, Object ... args) String pipename = pipeprefix + r; long hPipe; try { - hPipe = createPipe(pipename); + hPipe = createPipe(ver, pipename); } catch (IOException ce) { // Retry with another random pipe name. r = rnd.nextInt(); pipename = pipeprefix + r; - hPipe = createPipe(pipename); + hPipe = createPipe(ver, pipename); } // check if we are detached - in theory it's possible that detach is invoked @@ -99,18 +104,34 @@ InputStream execute(String cmd, Object ... args) } try { - // enqueue the command to the process - enqueue(hProcess, stub, cmd, pipename, args); + // enqueue the command to the process. + if (ver == VERSION_1) { + enqueue(hProcess, stub, ver, cmd, pipename, args); + } else { + // for v2 operations request contains only pipe name. + enqueue(hProcess, stub, ver, null, pipename); + } - // wait for command to complete - process will connect with the - // completion status + // wait for the target VM to connect to the pipe. connectPipe(hPipe); + IOException ioe = null; + + if (ver == VERSION_2) { + PipeOutputStream writer = new PipeOutputStream(hPipe); + + try { + writeCommand(writer, ver, cmd, args); + } catch (IOException x) { + ioe = x; + } + } + // create an input stream for the pipe SocketInputStreamImpl in = new SocketInputStreamImpl(hPipe); // Process the command completion status - processCompletionStatus(null, cmd, in); + processCompletionStatus(ioe, cmd, in); // return the input stream return in; @@ -121,6 +142,17 @@ InputStream execute(String cmd, Object ... args) } } + private static class PipeOutputStream implements AttachOutputStream { + private long hPipe; + public PipeOutputStream(long hPipe) { + this.hPipe = hPipe; + } + @Override + public void write(byte[] buffer, int offset, int length) throws IOException { + VirtualMachineImpl.writePipe(hPipe, buffer, offset, length); + } + } + // An InputStream based on a pipe to the target VM private static class SocketInputStreamImpl extends SocketInputStream { public SocketInputStreamImpl(long fd) { @@ -149,7 +181,7 @@ protected void close(long fd) throws IOException { static native void closeProcess(long hProcess) throws IOException; - static native long createPipe(String name) throws IOException; + static native long createPipe(int ver, String name) throws IOException; static native void closePipe(long hPipe) throws IOException; @@ -157,7 +189,9 @@ protected void close(long fd) throws IOException { static native int readPipe(long hPipe, byte buf[], int off, int buflen) throws IOException; - static native void enqueue(long hProcess, byte[] stub, + static native void writePipe(long hPipe, byte buf[], int off, int buflen) throws IOException; + + static native void enqueue(long hProcess, byte[] stub, int ver, String cmd, String pipename, Object ... args) throws IOException; static { diff --git a/src/jdk.attach/windows/native/libattach/VirtualMachineImpl.c b/src/jdk.attach/windows/native/libattach/VirtualMachineImpl.c index 74d0e7bf7d5..7a436ef85c2 100644 --- a/src/jdk.attach/windows/native/libattach/VirtualMachineImpl.c +++ b/src/jdk.attach/windows/native/libattach/VirtualMachineImpl.c @@ -46,9 +46,11 @@ static IsWow64ProcessFunc _IsWow64Process; typedef BOOL (WINAPI *EnumProcessModulesFunc) (HANDLE, HMODULE *, DWORD, LPDWORD ); typedef DWORD (WINAPI *GetModuleFileNameExFunc) ( HANDLE, HMODULE, LPTSTR, DWORD ); -/* exported function in target VM */ +/* exported functions in target VM */ typedef jint (WINAPI* EnqueueOperationFunc) (const char* cmd, const char* arg1, const char* arg2, const char* arg3, const char* pipename); +typedef jint (WINAPI* EnqueueOperationFunc_v2) + (const char* pipename); /* OpenProcess with SE_DEBUG_NAME privilege */ static HANDLE @@ -70,11 +72,13 @@ static jboolean jstring_to_cstring(JNIEnv* env, jstring jstr, char* cstr, size_t #define MAX_PIPE_NAME_LENGTH 256 typedef struct { + jint version; GetModuleHandleFunc _GetModuleHandle; GetProcAddressFunc _GetProcAddress; char jvmLib[MAX_LIBNAME_LENGTH]; /* "jvm.dll" */ char func1[MAX_FUNC_LENGTH]; char func2[MAX_FUNC_LENGTH]; + char func_v2[MAX_FUNC_LENGTH]; char cmd[MAX_CMD_LENGTH + 1]; /* "load", "dump", ... */ char arg[MAX_ARGS][MAX_ARG_LENGTH + 1]; /* arguments to command */ char pipename[MAX_PIPE_NAME_LENGTH + 1]; @@ -102,27 +106,36 @@ DEF_STATIC_JNI_OnLoad DWORD WINAPI jvm_attach_thread_func(DataBlock *pData) { HINSTANCE h; - EnqueueOperationFunc addr; h = pData->_GetModuleHandle(pData->jvmLib); if (h == NULL) { return ERR_OPEN_JVM_FAIL; } - addr = (EnqueueOperationFunc)(pData->_GetProcAddress(h, pData->func1)); - if (addr == NULL) { - addr = (EnqueueOperationFunc)(pData->_GetProcAddress(h, pData->func2)); - } - if (addr == NULL) { + if (pData->version == 1) { + EnqueueOperationFunc addr = (EnqueueOperationFunc)(pData->_GetProcAddress(h, pData->func1)); + if (addr == NULL) { + addr = (EnqueueOperationFunc)(pData->_GetProcAddress(h, pData->func2)); + } + if (addr == NULL) { + return ERR_GET_ENQUEUE_FUNC_FAIL; + } + /* "null" command - does nothing in the target VM */ + if (pData->cmd[0] == '\0') { + return 0; + } else { + return (*addr)(pData->cmd, pData->arg[0], pData->arg[1], pData->arg[2], pData->pipename); + } + } else if (pData->version == 2) { + EnqueueOperationFunc_v2 addr = (EnqueueOperationFunc_v2)(pData->_GetProcAddress(h, pData->func_v2)); + if (addr == NULL) { + return ERR_GET_ENQUEUE_FUNC_FAIL; + } + return (*addr)(pData->pipename); + } else { return ERR_GET_ENQUEUE_FUNC_FAIL; } - /* "null" command - does nothing in the target VM */ - if (pData->cmd[0] == '\0') { - return 0; - } else { - return (*addr)(pData->cmd, pData->arg[0], pData->arg[1], pData->arg[2], pData->pipename); - } } /* This function marks the end of jvm_attach_thread_func. */ @@ -261,7 +274,7 @@ JNIEXPORT void JNICALL Java_sun_tools_attach_VirtualMachineImpl_closeProcess * Signature: (Ljava/lang/String;)J */ JNIEXPORT jlong JNICALL Java_sun_tools_attach_VirtualMachineImpl_createPipe - (JNIEnv *env, jclass cls, jstring pipename) + (JNIEnv *env, jclass cls, jint ver, jstring pipename) { HANDLE hPipe; char name[MAX_PIPE_NAME_LENGTH]; @@ -289,7 +302,8 @@ JNIEXPORT jlong JNICALL Java_sun_tools_attach_VirtualMachineImpl_createPipe hPipe = CreateNamedPipe( name, // pipe name - PIPE_ACCESS_INBOUND, // read access + ver == 1 ? PIPE_ACCESS_INBOUND // read access + : PIPE_ACCESS_DUPLEX, // read-write access PIPE_TYPE_BYTE | // byte mode PIPE_READMODE_BYTE | PIPE_WAIT, // blocking mode @@ -377,14 +391,46 @@ JNIEXPORT jint JNICALL Java_sun_tools_attach_VirtualMachineImpl_readPipe return (jint)nread; } +/* + * Class: sun_tools_attach_VirtualMachineImpl + * Method: writePipe + * Signature: (J[BII)V + */ +JNIEXPORT void JNICALL Java_sun_tools_attach_VirtualMachineImpl_writePipe + (JNIEnv *env, jclass cls, jlong hPipe, jbyteArray buffer, jint offset, jint length) +{ + jsize remaining = length; + do { + jbyte buf[128]; + jsize len = sizeof(buf); + DWORD written; + + if (len > remaining) { + len = remaining; + } + (*env)->GetByteArrayRegion(env, buffer, offset, len, buf); + + BOOL fSuccess = WriteFile((HANDLE)hPipe, buf, len, &written, NULL); + + if (!fSuccess) { + JNU_ThrowIOExceptionWithLastError(env, "WriteFile"); + return; + } + + offset += written; + remaining -= written; + + } while (remaining > 0); +} + /* * Class: sun_tools_attach_VirtualMachineImpl * Method: enqueue * Signature: (JZLjava/lang/String;[Ljava/lang/Object;)V */ JNIEXPORT void JNICALL Java_sun_tools_attach_VirtualMachineImpl_enqueue - (JNIEnv *env, jclass cls, jlong handle, jbyteArray stub, jstring cmd, - jstring pipename, jobjectArray args) + (JNIEnv *env, jclass cls, jlong handle, jbyteArray stub, jint ver, + jstring cmd, jstring pipename, jobjectArray args) { DataBlock data; DataBlock* pData; @@ -399,12 +445,15 @@ JNIEXPORT void JNICALL Java_sun_tools_attach_VirtualMachineImpl_enqueue * Setup data to copy to target process */ memset(&data, 0, sizeof(data)); + data.version = ver; + data._GetModuleHandle = _GetModuleHandle; data._GetProcAddress = _GetProcAddress; strcpy(data.jvmLib, "jvm"); strcpy(data.func1, "JVM_EnqueueOperation"); strcpy(data.func2, "_JVM_EnqueueOperation@20"); + strcpy(data.func_v2, "JVM_EnqueueOperation_v2"); /* * Command and arguments diff --git a/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symtab.java b/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symtab.java index cee6a16a10f..cfe4ef662e5 100644 --- a/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symtab.java +++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symtab.java @@ -51,7 +51,6 @@ import com.sun.tools.javac.code.Type.JCPrimitiveType; import com.sun.tools.javac.code.Type.JCVoidType; import com.sun.tools.javac.code.Type.MethodType; -import com.sun.tools.javac.code.Type.UnknownType; import com.sun.tools.javac.code.Types.UniqueType; import com.sun.tools.javac.comp.Modules; import com.sun.tools.javac.jvm.Target; @@ -408,9 +407,6 @@ protected Symtab(Context context) throws CompletionFailure { names = Names.instance(context); - // Create the unknown type - unknownType = new UnknownType(); - messages = JavacMessages.instance(context); MissingInfoHandler missingInfoHandler = MissingInfoHandler.instance(context); @@ -483,8 +479,8 @@ public R accept(ElementVisitor v, P p) { errType = new ErrorType(errSymbol, Type.noType); unknownSymbol = new ClassSymbol(PUBLIC|STATIC|ACYCLIC, names.fromString(""), null, rootPackage); - unknownSymbol.members_field = new Scope.ErrorScope(unknownSymbol); - unknownSymbol.type = unknownType; + // Create the unknown type + unknownType = new ErrorType(unknownSymbol, Type.noType); // initialize builtin types initType(byteType, "byte", "Byte"); diff --git a/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Type.java b/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Type.java index 151c39fae40..7bcef30a3f9 100644 --- a/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Type.java +++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Type.java @@ -500,7 +500,7 @@ protected void appendAnnotationsString(StringBuilder sb, if (prefix) { sb.append(" "); } - sb.append(getAnnotationMirrors()); + sb.append(getAnnotationMirrors().toString(" ")); sb.append(" "); } } @@ -2408,30 +2408,6 @@ public R accept(TypeVisitor v, P p) { } } - public static class UnknownType extends Type { - - public UnknownType() { - // Unknown is a synthesized internal type, so it cannot be - // annotated. - super(null, List.nil()); - } - - @Override - public TypeTag getTag() { - return UNKNOWN; - } - - @Override @DefinedBy(Api.LANGUAGE_MODEL) - public R accept(TypeVisitor v, P p) { - return v.visitUnknown(this, p); - } - - @Override - public boolean isPartial() { - return true; - } - } - /** * A visitor for types. A visitor is used to implement operations * (or relations) on types. Most common operations on types are diff --git a/src/jdk.compiler/share/classes/com/sun/tools/javac/code/TypeTag.java b/src/jdk.compiler/share/classes/com/sun/tools/javac/code/TypeTag.java index 94449476071..51d3deec88b 100644 --- a/src/jdk.compiler/share/classes/com/sun/tools/javac/code/TypeTag.java +++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/code/TypeTag.java @@ -121,10 +121,6 @@ public enum TypeTag { */ ERROR, - /** The tag of an unknown type - */ - UNKNOWN, - /** The tag of all instantiatable type variables. */ UNDETVAR, diff --git a/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java b/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java index 8576d8cfb2f..e35ecbdc956 100644 --- a/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java +++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java @@ -1216,7 +1216,7 @@ public Boolean visitArrayType(ArrayType t, Type s) { @Override public Boolean visitUndetVar(UndetVar t, Type s) { //todo: test against origin needed? or replace with substitution? - if (t == s || t.qtype == s || s.hasTag(ERROR) || s.hasTag(UNKNOWN)) { + if (t == s || t.qtype == s || s.hasTag(ERROR)) { return true; } else if (s.hasTag(BOT)) { //if 's' is 'null' there's no instantiated type U for which @@ -1466,7 +1466,7 @@ public Boolean visitUndetVar(UndetVar t, Type s) { return false; } - if (t == s || t.qtype == s || s.hasTag(ERROR) || s.hasTag(UNKNOWN)) { + if (t == s || t.qtype == s || s.hasTag(ERROR)) { return true; } @@ -2422,7 +2422,7 @@ private Type combineMetadata(final Type s, ARRAY, MODULE, TYPEVAR, WILDCARD, BOT: return s.dropMetadata(Annotations.class); case VOID, METHOD, PACKAGE, FORALL, DEFERRED, - NONE, ERROR, UNKNOWN, UNDETVAR, UNINITIALIZED_THIS, + NONE, ERROR, UNDETVAR, UNINITIALIZED_THIS, UNINITIALIZED_OBJECT: return s; default: @@ -3328,6 +3328,10 @@ public Type subst(Type t, List from, List to) { return t.map(new Subst(from, to)); } + /* this class won't substitute all types for example UndetVars are never substituted, this is + * by design as UndetVars are used locally during inference and shouldn't escape from inference routines, + * some specialized applications could need a tailored solution + */ private class Subst extends StructuralTypeMapping { List from; List to; diff --git a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Infer.java b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Infer.java index f5df6adddf3..81e07277bfb 100644 --- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Infer.java +++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Infer.java @@ -801,15 +801,15 @@ public abstract class IncorporationAction { /** * Helper function: perform subtyping through incorporation cache. */ - boolean isSubtype(Type s, Type t, Warner warn) { - return doIncorporationOp(IncorporationBinaryOpKind.IS_SUBTYPE, s, t, warn); + boolean isSubtype(Type s, Type t, Warner warn, InferenceContext ic) { + return doIncorporationOp(IncorporationBinaryOpKind.IS_SUBTYPE, s, t, warn, ic); } /** * Helper function: perform type-equivalence through incorporation cache. */ - boolean isSameType(Type s, Type t) { - return doIncorporationOp(IncorporationBinaryOpKind.IS_SAME_TYPE, s, t, null); + boolean isSameType(Type s, Type t, InferenceContext ic) { + return doIncorporationOp(IncorporationBinaryOpKind.IS_SAME_TYPE, s, t, null, ic); } @Override @@ -853,7 +853,7 @@ void apply(InferenceContext inferenceContext, Warner warn) { for (Type b : uv.getBounds(to)) { b = typeFunc.apply(inferenceContext, b); if (optFilter != null && optFilter.test(inferenceContext, b)) continue; - boolean success = checkBound(t, b, from, to, warn); + boolean success = checkBound(t, b, from, to, warn, inferenceContext); if (!success) { report(from, to); } @@ -873,13 +873,13 @@ EnumSet boundsToCheck() { /** * Is source type 's' compatible with target type 't' given source and target bound kinds? */ - boolean checkBound(Type s, Type t, InferenceBound ib_s, InferenceBound ib_t, Warner warn) { + boolean checkBound(Type s, Type t, InferenceBound ib_s, InferenceBound ib_t, Warner warn, InferenceContext ic) { if (ib_s.lessThan(ib_t)) { - return isSubtype(s, t, warn); + return isSubtype(s, t, warn, ic); } else if (ib_t.lessThan(ib_s)) { - return isSubtype(t, s, warn); + return isSubtype(t, s, warn, ic); } else { - return isSameType(s, t); + return isSameType(s, t, ic); } } @@ -1010,7 +1010,7 @@ void apply(InferenceContext inferenceContext, Warner warn) { if (!allParamsSuperBound1.head.hasTag(WILDCARD) && !allParamsSuperBound2.head.hasTag(WILDCARD)) { if (!isSameType(inferenceContext.asUndetVar(allParamsSuperBound1.head), - inferenceContext.asUndetVar(allParamsSuperBound2.head))) { + inferenceContext.asUndetVar(allParamsSuperBound2.head), inferenceContext)) { reportBoundError(uv, InferenceBound.UPPER); } } @@ -1194,11 +1194,11 @@ private Type asSuper(Type t, Type sup) { types.asSuper(t, sup.tsym); } - boolean doIncorporationOp(IncorporationBinaryOpKind opKind, Type op1, Type op2, Warner warn) { - IncorporationBinaryOp newOp = new IncorporationBinaryOp(opKind, op1, op2); + boolean doIncorporationOp(IncorporationBinaryOpKind opKind, Type op1, Type op2, Warner warn, InferenceContext ic) { + IncorporationBinaryOpKey newOp = new IncorporationBinaryOpKey(opKind, ic.asTypeVar(op1), ic.asTypeVar(op2), types); Boolean res = incorporationCache.get(newOp); if (res == null) { - incorporationCache.put(newOp, res = newOp.apply(warn)); + incorporationCache.put(newOp, res = opKind.apply(op1, op2, warn, types)); } return res; } @@ -1232,26 +1232,14 @@ boolean apply(Type op1, Type op2, Warner warn, Types types) { * are not executed unnecessarily (which would potentially lead to adding * same bounds over and over). */ - class IncorporationBinaryOp { - - IncorporationBinaryOpKind opKind; - Type op1; - Type op2; - - IncorporationBinaryOp(IncorporationBinaryOpKind opKind, Type op1, Type op2) { - this.opKind = opKind; - this.op1 = op1; - this.op2 = op2; - } - + record IncorporationBinaryOpKey(IncorporationBinaryOpKind opKind, Type op1, Type op2, Types types) { @Override public boolean equals(Object o) { - return (o instanceof IncorporationBinaryOp incorporationBinaryOp) - && opKind == incorporationBinaryOp.opKind - && types.isSameType(op1, incorporationBinaryOp.op1) - && types.isSameType(op2, incorporationBinaryOp.op2); + return (o instanceof IncorporationBinaryOpKey anotherKey) + && opKind == anotherKey.opKind + && types.isSameType(op1, anotherKey.op1) + && types.isSameType(op2, anotherKey.op2); } - @Override public int hashCode() { int result = opKind.hashCode(); @@ -1261,14 +1249,10 @@ public int hashCode() { result += types.hashCode(op2); return result; } - - boolean apply(Warner warn) { - return opKind.apply(op1, op2, warn, types); - } } /** an incorporation cache keeps track of all executed incorporation-related operations */ - Map incorporationCache = new LinkedHashMap<>(); + Map incorporationCache = new LinkedHashMap<>(); protected static class BoundFilter implements Predicate { diff --git a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/InferenceContext.java b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/InferenceContext.java index 2fec365aff5..35cd9a25ae4 100644 --- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/InferenceContext.java +++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/InferenceContext.java @@ -214,6 +214,20 @@ final List asUndetVars(List ts) { return buf.toList(); } + /** + * Replace all undet vars in a given type with corresponding free variables + */ + public final Type asTypeVar(Type t) { + return asTypeVarFun.apply(t); + } + + Types.TypeMapping asTypeVarFun = new Type.StructuralTypeMapping<>() { + @Override + public Type visitUndetVar(UndetVar uv, Void aVoid) { + return uv.qtype; + } + }; + List instTypes() { ListBuffer buf = new ListBuffer<>(); for (Type t : undetvars) { diff --git a/src/jdk.compiler/share/classes/com/sun/tools/javac/util/StringNameTable.java b/src/jdk.compiler/share/classes/com/sun/tools/javac/util/StringNameTable.java index b8106a43b7c..81d67b24148 100644 --- a/src/jdk.compiler/share/classes/com/sun/tools/javac/util/StringNameTable.java +++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/util/StringNameTable.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2023, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -62,7 +62,15 @@ public StringNameTable(Names names, int initialCapacity, boolean intern) { @Override public Name fromString(String string) { - return this.nameMap.computeIfAbsent(string, s -> new NameImpl(this, intern ? s.intern() : s)); + Name name = nameMap.get(string); + if (name == null) { + if (intern) { + string = string.intern(); + } + name = new NameImpl(this, string); + nameMap.put(string, name); + } + return name; } @Override diff --git a/src/jdk.dynalink/share/classes/jdk/dynalink/linker/GuardedInvocation.java b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/GuardedInvocation.java index 174e63bff26..ff59ddf8268 100644 --- a/src/jdk.dynalink/share/classes/jdk/dynalink/linker/GuardedInvocation.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/GuardedInvocation.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -431,10 +431,10 @@ public MethodHandle compose(final MethodHandle fallback) { * Composes the invocation, guard, switch points, and the exception into a * composite method handle that knows how to fall back when the guard fails * or the invocation is invalidated. - * @param switchpointFallback the fallback method handle in case a switch - * point is invalidated. * @param guardFallback the fallback method handle in case guard returns * false. + * @param switchpointFallback the fallback method handle in case a switch + * point is invalidated. * @param catchFallback the fallback method in case the exception handler * triggers. * @return a composite method handle. diff --git a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/HSDB.java b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/HSDB.java index 870621421c8..d8c4d1a781e 100644 --- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/HSDB.java +++ b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/HSDB.java @@ -39,7 +39,6 @@ import sun.jvm.hotspot.gc.shared.*; import sun.jvm.hotspot.gc.shenandoah.*; import sun.jvm.hotspot.gc.g1.*; -import sun.jvm.hotspot.gc.x.*; import sun.jvm.hotspot.gc.z.*; import sun.jvm.hotspot.interpreter.*; import sun.jvm.hotspot.oops.*; @@ -1124,10 +1123,6 @@ public void addAnnotation(Address addr, OopHandle handle) { ShenandoahHeap heap = (ShenandoahHeap) collHeap; anno = "ShenandoahHeap "; bad = false; - } else if (collHeap instanceof XCollectedHeap) { - XCollectedHeap heap = (XCollectedHeap) collHeap; - anno = "ZHeap "; - bad = false; } else if (collHeap instanceof ZCollectedHeap) { ZCollectedHeap heap = (ZCollectedHeap) collHeap; anno = "ZHeap "; diff --git a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XAddress.java b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XAddress.java deleted file mode 100644 index fbd15110890..00000000000 --- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XAddress.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright (c) 2018, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -package sun.jvm.hotspot.gc.x; - -import sun.jvm.hotspot.debugger.Address; -import sun.jvm.hotspot.runtime.VM; - -class XAddress { - static long as_long(Address value) { - if (value == null) { - return 0; - } - return value.asLongValue(); - }; - - static boolean is_null(Address value) { - return value == null; - } - - static boolean is_weak_bad(Address value) { - return (as_long(value) & XGlobals.XAddressWeakBadMask()) != 0L; - } - - static boolean is_weak_good(Address value) { - return !is_weak_bad(value) && !is_null(value); - } - - static boolean is_weak_good_or_null(Address value) { - return !is_weak_bad(value); - } - - static long offset(Address address) { - return as_long(address) & XGlobals.XAddressOffsetMask(); - } - - static Address good(Address value) { - return VM.getVM().getDebugger().newAddress(offset(value) | XGlobals.XAddressGoodMask()); - } - - static Address good_or_null(Address value) { - return is_null(value) ? value : good(value); - } - - private static boolean isPowerOf2(long value) { - return (value != 0L) && ((value & (value - 1)) == 0L); - } - - static boolean isIn(Address addr) { - long value = as_long(addr); - if (!isPowerOf2(value & ~XGlobals.XAddressOffsetMask())) { - return false; - } - return (value & (XGlobals.XAddressMetadataMask() & ~XGlobals.XAddressMetadataFinalizable())) != 0L; - } -} diff --git a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XAttachedArrayForForwarding.java b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XAttachedArrayForForwarding.java deleted file mode 100644 index 0c8bb38a776..00000000000 --- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XAttachedArrayForForwarding.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2021, NTT DATA. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -package sun.jvm.hotspot.gc.x; - -import sun.jvm.hotspot.debugger.Address; -import sun.jvm.hotspot.runtime.VM; -import sun.jvm.hotspot.runtime.VMObject; -import sun.jvm.hotspot.runtime.VMObjectFactory; -import sun.jvm.hotspot.types.CIntegerField; -import sun.jvm.hotspot.types.Type; -import sun.jvm.hotspot.types.TypeDataBase; - -public class XAttachedArrayForForwarding extends VMObject { - private static CIntegerField lengthField; - - static { - VM.registerVMInitializedObserver((o, d) -> initialize(VM.getVM().getTypeDataBase())); - } - - private static synchronized void initialize(TypeDataBase db) { - Type type = db.lookupType("XAttachedArrayForForwarding"); - - lengthField = type.getCIntegerField("_length"); - } - - public XAttachedArrayForForwarding(Address addr) { - super(addr); - } - - public long length() { - return lengthField.getValue(addr); - } - - // ObjectT: XForwarding - // ArrayT: XForwardingEntry - // - // template - // inline size_t XAttachedArray::object_size() - private long objectSize() { - return XUtils.alignUp(XForwarding.getSize(), XForwardingEntry.getSize()); - } - - // ArrayT* operator()(const ObjectT* obj) const - public XForwardingEntry get(XForwarding obj) { - Address o = obj.getAddress().addOffsetTo(objectSize()); - return VMObjectFactory.newObject(XForwardingEntry.class, o); - } -} diff --git a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XBarrier.java b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XBarrier.java deleted file mode 100644 index 54f9323a4e6..00000000000 --- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XBarrier.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright (c) 2018, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -package sun.jvm.hotspot.gc.x; - -import sun.jvm.hotspot.debugger.Address; -import sun.jvm.hotspot.runtime.VM; - -class XBarrier { - private static boolean is_weak_good_or_null_fast_path(Address addr) { - return XAddress.is_weak_good_or_null(addr); - } - - private static Address weak_load_barrier_on_oop_slow_path(Address addr) { - return XAddress.is_weak_good(addr) ? XAddress.good(addr) : relocate_or_remap(addr); - } - - private static boolean during_relocate() { - return XGlobals.XGlobalPhase() == XGlobals.XPhaseRelocate; - } - - private static Address relocate(Address addr) { - return zheap().relocate_object(addr); - } - - private static XHeap zheap() { - XCollectedHeap zCollectedHeap = (XCollectedHeap)VM.getVM().getUniverse().heap(); - return zCollectedHeap.heap(); - } - - private static Address remap(Address addr) { - return zheap().remapObject(addr); - } - - private static Address relocate_or_remap(Address addr) { - return during_relocate() ? relocate(addr) : remap(addr); - } - - static Address weak_barrier(Address o) { - // Fast path - if (is_weak_good_or_null_fast_path(o)) { - // Return the good address instead of the weak good address - // to ensure that the currently active heap view is used. - return XAddress.good_or_null(o); - } - - // Slow path - return weak_load_barrier_on_oop_slow_path(o); - } -} diff --git a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XCollectedHeap.java b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XCollectedHeap.java deleted file mode 100644 index 5455a841fab..00000000000 --- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XCollectedHeap.java +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -package sun.jvm.hotspot.gc.x; - -import java.io.PrintStream; -import java.util.Iterator; - -import sun.jvm.hotspot.debugger.Address; -import sun.jvm.hotspot.debugger.OopHandle; -import sun.jvm.hotspot.gc.shared.CollectedHeap; -import sun.jvm.hotspot.gc.shared.CollectedHeapName; -import sun.jvm.hotspot.gc.shared.LiveRegionsClosure; -import sun.jvm.hotspot.runtime.VM; -import sun.jvm.hotspot.runtime.VMObjectFactory; -import sun.jvm.hotspot.types.Type; -import sun.jvm.hotspot.types.TypeDataBase; -import sun.jvm.hotspot.utilities.BitMapInterface; - -// Mirror class for XCollectedHeap. - -public class XCollectedHeap extends CollectedHeap { - private static long zHeapFieldOffset; - - static { - VM.registerVMInitializedObserver((o, d) -> initialize(VM.getVM().getTypeDataBase())); - } - - private static synchronized void initialize(TypeDataBase db) { - Type type = db.lookupType("XCollectedHeap"); - - zHeapFieldOffset = type.getAddressField("_heap").getOffset(); - } - - public XHeap heap() { - Address heapAddr = addr.addOffsetTo(zHeapFieldOffset); - return VMObjectFactory.newObject(XHeap.class, heapAddr); - } - - @Override - public CollectedHeapName kind() { - return CollectedHeapName.Z; - } - - @Override - public void printOn(PrintStream tty) { - heap().printOn(tty); - } - - public XCollectedHeap(Address addr) { - super(addr); - } - - @Override - public long capacity() { - return heap().capacity(); - } - - @Override - public long used() { - return heap().used(); - } - - @Override - public boolean isInReserved(Address a) { - return heap().isIn(a); - } - - private OopHandle oop_load_barrier(Address oopAddress) { - oopAddress = XBarrier.weak_barrier(oopAddress); - if (oopAddress == null) { - return null; - } - - return oopAddress.addOffsetToAsOopHandle(0); - } - - @Override - public OopHandle oop_load_at(OopHandle handle, long offset) { - assert(!VM.getVM().isCompressedOopsEnabled()); - - Address oopAddress = handle.getAddressAt(offset); - - return oop_load_barrier(oopAddress); - } - - // addr can be either in heap or in native - @Override - public OopHandle oop_load_in_native(Address addr) { - Address oopAddress = addr.getAddressAt(0); - return oop_load_barrier(oopAddress); - } - - public String oopAddressDescription(OopHandle handle) { - Address origOop = XOop.to_address(handle); - Address loadBarrieredOop = XBarrier.weak_barrier(origOop); - if (!origOop.equals(loadBarrieredOop)) { - return origOop + " (" + loadBarrieredOop.toString() + ")"; - } else { - return handle.toString(); - } - } - - @Override - public void liveRegionsIterate(LiveRegionsClosure closure) { - Iterator iter = heap().pageTable().activePagesIterator(); - while (iter.hasNext()) { - XPage page = iter.next(); - closure.doLiveRegions(page); - } - } - - @Override - public BitMapInterface createBitMap(long size) { - // Ignores the size - return new XExternalBitMap(this); - } -} diff --git a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XExternalBitMap.java b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XExternalBitMap.java deleted file mode 100644 index 5a2f033e6a1..00000000000 --- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XExternalBitMap.java +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Copyright (c) 2019, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -package sun.jvm.hotspot.gc.x; - -import java.util.HashMap; - -import sun.jvm.hotspot.runtime.VM; -import sun.jvm.hotspot.utilities.BitMap; -import sun.jvm.hotspot.utilities.BitMapInterface; - -/** Discontiguous bitmap for ZGC. */ -public class XExternalBitMap implements BitMapInterface { - private XPageTable pageTable; - private final long oopSize; - - private HashMap pageToBitMap = new HashMap(); - - public XExternalBitMap(XCollectedHeap collectedHeap) { - pageTable = collectedHeap.heap().pageTable(); - oopSize = VM.getVM().getOopSize(); - } - - private XPage getPage(long zOffset) { - if (zOffset > XGlobals.XAddressOffsetMask()) { - throw new RuntimeException("Not a Z offset: " + zOffset); - } - - XPage page = pageTable.get(XUtils.longToAddress(zOffset)); - if (page == null) { - throw new RuntimeException("Address not in pageTable: " + zOffset); - } - return page; - } - - private BitMap getOrAddBitMap(XPage page) { - BitMap bitMap = pageToBitMap.get(page); - if (bitMap == null) { - long size = page.size(); - - long maxNumObjects = size >>> page.object_alignment_shift(); - if (maxNumObjects > Integer.MAX_VALUE) { - throw new RuntimeException("int overflow"); - } - int intMaxNumObjects = (int)maxNumObjects; - - bitMap = new BitMap(intMaxNumObjects); - pageToBitMap.put(page, bitMap); - } - - return bitMap; - } - - private int pageLocalBitMapIndex(XPage page, long zOffset) { - long pageLocalZOffset = zOffset - page.start(); - return (int)(pageLocalZOffset >>> page.object_alignment_shift()); - } - - private long convertToZOffset(long offset) { - long addr = oopSize * offset; - return addr & XGlobals.XAddressOffsetMask(); - } - - @Override - public boolean at(long offset) { - long zOffset = convertToZOffset(offset); - XPage page = getPage(zOffset); - BitMap bitMap = getOrAddBitMap(page); - int index = pageLocalBitMapIndex(page, zOffset); - - return bitMap.at(index); - } - - @Override - public void atPut(long offset, boolean value) { - long zOffset = convertToZOffset(offset); - XPage page = getPage(zOffset); - BitMap bitMap = getOrAddBitMap(page); - int index = pageLocalBitMapIndex(page, zOffset); - - bitMap.atPut(index, value); - } - - @Override - public void clear() { - for (BitMap bitMap : pageToBitMap.values()) { - bitMap.clear(); - } - } -} diff --git a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XForwarding.java b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XForwarding.java deleted file mode 100644 index 727014a8479..00000000000 --- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XForwarding.java +++ /dev/null @@ -1,136 +0,0 @@ -/* - * Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2021, NTT DATA. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -package sun.jvm.hotspot.gc.x; - -import java.util.Iterator; - -import sun.jvm.hotspot.debugger.Address; -import sun.jvm.hotspot.runtime.VM; -import sun.jvm.hotspot.runtime.VMObject; -import sun.jvm.hotspot.runtime.VMObjectFactory; -import sun.jvm.hotspot.types.CIntegerField; -import sun.jvm.hotspot.types.Type; -import sun.jvm.hotspot.types.TypeDataBase; - -public class XForwarding extends VMObject { - private static Type type; - private static long virtualFieldOffset; - private static long entriesFieldOffset; - private static CIntegerField objectAlignmentShiftField; - private static CIntegerField refCountField; - - static { - VM.registerVMInitializedObserver((o, d) -> initialize(VM.getVM().getTypeDataBase())); - } - - private static synchronized void initialize(TypeDataBase db) { - type = db.lookupType("XForwarding"); - - virtualFieldOffset = type.getField("_virtual").getOffset(); - entriesFieldOffset = type.getField("_entries").getOffset(); - objectAlignmentShiftField = type.getCIntegerField("_object_alignment_shift"); - refCountField = type.getCIntegerField("_ref_count"); - } - - public XForwarding(Address addr) { - super(addr); - } - - public static long getSize() { - return type.getSize(); - } - - private XVirtualMemory virtual() { - return VMObjectFactory.newObject(XVirtualMemory.class, addr.addOffsetTo(virtualFieldOffset)); - } - - private XAttachedArrayForForwarding entries() { - return VMObjectFactory.newObject(XAttachedArrayForForwarding.class, addr.addOffsetTo(entriesFieldOffset)); - } - - public long start() { - return virtual().start(); - } - - public int objectAlignmentShift() { - return (int)objectAlignmentShiftField.getValue(addr); - } - - public boolean retainPage() { - return refCountField.getValue(addr) > 0; - } - - private XForwardingEntry at(long cursor) { - long offset = XForwardingEntry.getSize() * cursor; - Address entryAddress = entries().get(this).getAddress().addOffsetTo(offset); - return VMObjectFactory.newObject(XForwardingEntry.class, entryAddress); - } - - private class XForwardEntryIterator implements Iterator { - - private long cursor; - - private XForwardingEntry nextEntry; - - public XForwardEntryIterator(long fromIndex) { - long mask = entries().length() - 1; - long hash = XHash.uint32_to_uint32(fromIndex); - cursor = hash & mask; - nextEntry = at(cursor); - } - - @Override - public boolean hasNext() { - return nextEntry.populated(); - } - - @Override - public XForwardingEntry next() { - XForwardingEntry entry = nextEntry; - - long mask = entries().length() - 1; - cursor = (cursor + 1) & mask; - nextEntry = at(cursor); - - return entry; - } - - public XForwardingEntry peak() { - return nextEntry; - } - } - - public XForwardingEntry find(long fromIndex) { - XForwardEntryIterator itr = new XForwardEntryIterator(fromIndex); - while (itr.hasNext()) { - XForwardingEntry entry = itr.next(); - if (entry.fromIndex() == fromIndex) { - return entry; - } - } - return itr.peak(); - } -} diff --git a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XForwardingEntry.java b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XForwardingEntry.java deleted file mode 100644 index aa4b55775ec..00000000000 --- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XForwardingEntry.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2021, NTT DATA. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -package sun.jvm.hotspot.gc.x; - -import sun.jvm.hotspot.debugger.Address; -import sun.jvm.hotspot.runtime.VM; -import sun.jvm.hotspot.runtime.VMObject; -import sun.jvm.hotspot.runtime.VMObjectFactory; -import sun.jvm.hotspot.types.CIntegerField; -import sun.jvm.hotspot.types.Type; -import sun.jvm.hotspot.types.TypeDataBase; - -public class XForwardingEntry extends VMObject { - private static Type type; - private static CIntegerField entryField; - - static { - VM.registerVMInitializedObserver((o, d) -> initialize(VM.getVM().getTypeDataBase())); - } - - private static synchronized void initialize(TypeDataBase db) { - type = db.lookupType("XForwardingEntry"); - - entryField = type.getCIntegerField("_entry"); - } - - public static long getSize() { - return type.getSize(); - } - - public XForwardingEntry(Address addr) { - super(addr); - } - - public long entry() { - return entryField.getValue(addr); - } - - // typedef XBitField field_populated - private boolean fieldPopulatedDecode(long value) { - long FieldMask = (1L << 1) - 1; - int FieldShift = 1; - int ValueShift = 0; - return (((value >>> FieldShift) & FieldMask) << ValueShift) != 0L; - } - - // typedef XBitField field_to_offset; - private long fieldToOffsetDecode(long value) { - long FieldMask = (1L << 45) - 1; - int FieldShift = 1; - int ValueShift = 0; - return ((value >>> FieldShift) & FieldMask) << ValueShift; - } - - // typedef XBitField field_from_index; - private long fieldFromIndexDecode(long value) { - long FieldMask = (1L << 18) - 1; - int FieldShift = 46; - int ValueShift = 0; - return ((value >>> FieldShift) & FieldMask) << ValueShift; - } - - public boolean populated() { - return fieldPopulatedDecode(entry()); - } - - public long toOffset() { - return fieldToOffsetDecode(entry()); - } - - public long fromIndex() { - return fieldFromIndexDecode(entry()); - } -} diff --git a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XForwardingTable.java b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XForwardingTable.java deleted file mode 100644 index 259f48a37b6..00000000000 --- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XForwardingTable.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (c) 2018, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -package sun.jvm.hotspot.gc.x; - -import sun.jvm.hotspot.debugger.Address; -import sun.jvm.hotspot.runtime.VM; -import sun.jvm.hotspot.runtime.VMObject; -import sun.jvm.hotspot.runtime.VMObjectFactory; -import sun.jvm.hotspot.types.AddressField; -import sun.jvm.hotspot.types.CIntegerField; -import sun.jvm.hotspot.types.Type; -import sun.jvm.hotspot.types.TypeDataBase; - -public class XForwardingTable extends VMObject { - private static long mapFieldOffset; - - static { - VM.registerVMInitializedObserver((o, d) -> initialize(VM.getVM().getTypeDataBase())); - } - - private static synchronized void initialize(TypeDataBase db) { - Type type = db.lookupType("XForwardingTable"); - - mapFieldOffset = type.getAddressField("_map").getOffset(); - } - - public XForwardingTable(Address addr) { - super(addr); - } - - private XGranuleMapForForwarding map() { - return VMObjectFactory.newObject(XGranuleMapForForwarding.class, addr.addOffsetTo(mapFieldOffset)); - } - - public XForwarding get(Address o) { - return VMObjectFactory.newObject(XForwarding.class, map().get(XAddress.offset(o))); - } -} diff --git a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XForwardingTableCursor.java b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XForwardingTableCursor.java deleted file mode 100644 index 40103cd1e43..00000000000 --- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XForwardingTableCursor.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -package sun.jvm.hotspot.gc.x; - -class XForwardingTableCursor { - long _value; -} diff --git a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XForwardingTableEntry.java b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XForwardingTableEntry.java deleted file mode 100644 index 7c629f7c5cf..00000000000 --- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XForwardingTableEntry.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -package sun.jvm.hotspot.gc.x; - -import sun.jvm.hotspot.debugger.Address; - -class XForwardingTableEntry { - private Address entry; - - XForwardingTableEntry(Address addr) { - entry = addr; - } - - private static long empty() { - return ~0L; - } - - boolean is_empty() { - return entry.asLongValue() == empty(); - } - - Address to_offset() { - return entry.andWithMask((1L << 42) - 1); - } - - long from_index() { - return entry.asLongValue() >>> 42; - } - - public String toString() { - return entry + " - from_index: " + from_index() + " to_offset: " + to_offset(); - } -} diff --git a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XGlobals.java b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XGlobals.java deleted file mode 100644 index 1cfc6dd7663..00000000000 --- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XGlobals.java +++ /dev/null @@ -1,132 +0,0 @@ -/* - * Copyright (c) 2018, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -package sun.jvm.hotspot.gc.x; - -import sun.jvm.hotspot.runtime.VM; -import sun.jvm.hotspot.types.Field; -import sun.jvm.hotspot.types.Type; -import sun.jvm.hotspot.types.TypeDataBase; - -public class XGlobals { - private static Field instanceField; - - // Global phase state - public static int XPhaseRelocate; - - public static byte XPageTypeSmall; - public static byte XPageTypeMedium; - public static byte XPageTypeLarge; - - // Granule size shift - public static long XGranuleSizeShift; - - // Page size shifts - public static long XPageSizeSmallShift; - public static long XPageSizeMediumShift; - - // Object alignment shifts - public static int XObjectAlignmentMediumShift; - public static int XObjectAlignmentLargeShift; - - // Pointer part of address - public static long XAddressOffsetShift; - - // Pointer part of address - public static long XAddressOffsetBits; - public static long XAddressOffsetMax; - - static { - VM.registerVMInitializedObserver((o, d) -> initialize(VM.getVM().getTypeDataBase())); - } - - private static synchronized void initialize(TypeDataBase db) { - Type type = db.lookupType("XGlobalsForVMStructs"); - - instanceField = type.getField("_instance_p"); - - XPhaseRelocate = db.lookupIntConstant("XPhaseRelocate").intValue(); - - XPageTypeSmall = db.lookupIntConstant("XPageTypeSmall").byteValue(); - XPageTypeMedium = db.lookupIntConstant("XPageTypeMedium").byteValue(); - XPageTypeLarge = db.lookupIntConstant("XPageTypeLarge").byteValue(); - - XGranuleSizeShift = db.lookupLongConstant("XGranuleSizeShift").longValue(); - - XPageSizeSmallShift = db.lookupLongConstant("XPageSizeSmallShift").longValue(); - XPageSizeMediumShift = db.lookupLongConstant("XPageSizeMediumShift").longValue(); - - XObjectAlignmentMediumShift = db.lookupIntConstant("XObjectAlignmentMediumShift").intValue(); - XObjectAlignmentLargeShift = db.lookupIntConstant("XObjectAlignmentLargeShift").intValue(); - - XAddressOffsetShift = db.lookupLongConstant("XAddressOffsetShift").longValue(); - - XAddressOffsetBits = db.lookupLongConstant("XAddressOffsetBits").longValue(); - XAddressOffsetMax = db.lookupLongConstant("XAddressOffsetMax").longValue(); - } - - private static XGlobalsForVMStructs instance() { - return new XGlobalsForVMStructs(instanceField.getAddress()); - } - - public static int XGlobalPhase() { - return instance().XGlobalPhase(); - } - - public static int XGlobalSeqNum() { - return instance().XGlobalSeqNum(); - } - - public static long XAddressOffsetMask() { - return instance().XAddressOffsetMask(); - } - - public static long XAddressMetadataMask() { - return instance().XAddressMetadataMask(); - } - - public static long XAddressMetadataFinalizable() { - return instance().XAddressMetadataFinalizable(); - } - - public static long XAddressGoodMask() { - return instance().XAddressGoodMask(); - } - - public static long XAddressBadMask() { - return instance().XAddressBadMask(); - } - - public static long XAddressWeakBadMask() { - return instance().XAddressWeakBadMask(); - } - - public static int XObjectAlignmentSmallShift() { - return instance().XObjectAlignmentSmallShift(); - } - - public static int XObjectAlignmentSmall() { - return instance().XObjectAlignmentSmall(); - } -} diff --git a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XGlobalsForVMStructs.java b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XGlobalsForVMStructs.java deleted file mode 100644 index d4930dcd5dc..00000000000 --- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XGlobalsForVMStructs.java +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright (c) 2018, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -package sun.jvm.hotspot.gc.x; - -import sun.jvm.hotspot.debugger.Address; -import sun.jvm.hotspot.runtime.VM; -import sun.jvm.hotspot.runtime.VMObject; -import sun.jvm.hotspot.types.AddressField; -import sun.jvm.hotspot.types.Type; -import sun.jvm.hotspot.types.TypeDataBase; - -class XGlobalsForVMStructs extends VMObject { - private static AddressField XGlobalPhaseField; - private static AddressField XGlobalSeqNumField; - private static AddressField XAddressOffsetMaskField; - private static AddressField XAddressMetadataMaskField; - private static AddressField XAddressMetadataFinalizableField; - private static AddressField XAddressGoodMaskField; - private static AddressField XAddressBadMaskField; - private static AddressField XAddressWeakBadMaskField; - private static AddressField XObjectAlignmentSmallShiftField; - private static AddressField XObjectAlignmentSmallField; - - static { - VM.registerVMInitializedObserver((o, d) -> initialize(VM.getVM().getTypeDataBase())); - } - - private static synchronized void initialize(TypeDataBase db) { - Type type = db.lookupType("XGlobalsForVMStructs"); - - XGlobalPhaseField = type.getAddressField("_XGlobalPhase"); - XGlobalSeqNumField = type.getAddressField("_XGlobalSeqNum"); - XAddressOffsetMaskField = type.getAddressField("_XAddressOffsetMask"); - XAddressMetadataMaskField = type.getAddressField("_XAddressMetadataMask"); - XAddressMetadataFinalizableField = type.getAddressField("_XAddressMetadataFinalizable"); - XAddressGoodMaskField = type.getAddressField("_XAddressGoodMask"); - XAddressBadMaskField = type.getAddressField("_XAddressBadMask"); - XAddressWeakBadMaskField = type.getAddressField("_XAddressWeakBadMask"); - XObjectAlignmentSmallShiftField = type.getAddressField("_XObjectAlignmentSmallShift"); - XObjectAlignmentSmallField = type.getAddressField("_XObjectAlignmentSmall"); - } - - XGlobalsForVMStructs(Address addr) { - super(addr); - } - - int XGlobalPhase() { - return XGlobalPhaseField.getValue(addr).getJIntAt(0); - } - - int XGlobalSeqNum() { - return XGlobalSeqNumField.getValue(addr).getJIntAt(0); - } - - long XAddressOffsetMask() { - return XAddressOffsetMaskField.getValue(addr).getJLongAt(0); - } - - long XAddressMetadataMask() { - return XAddressMetadataMaskField.getValue(addr).getJLongAt(0); - } - - long XAddressMetadataFinalizable() { - return XAddressMetadataFinalizableField.getValue(addr).getJLongAt(0); - } - - long XAddressGoodMask() { - return XAddressGoodMaskField.getValue(addr).getJLongAt(0); - } - - long XAddressBadMask() { - return XAddressBadMaskField.getValue(addr).getJLongAt(0); - } - - long XAddressWeakBadMask() { - return XAddressWeakBadMaskField.getValue(addr).getJLongAt(0); - } - - int XObjectAlignmentSmallShift() { - return XObjectAlignmentSmallShiftField.getValue(addr).getJIntAt(0); - } - - int XObjectAlignmentSmall() { - return XObjectAlignmentSmallField.getValue(addr).getJIntAt(0); - } -} diff --git a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XGranuleMapForForwarding.java b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XGranuleMapForForwarding.java deleted file mode 100644 index 347f1405729..00000000000 --- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XGranuleMapForForwarding.java +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2021, NTT DATA. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -package sun.jvm.hotspot.gc.x; - -import sun.jvm.hotspot.debugger.Address; -import sun.jvm.hotspot.runtime.VM; -import sun.jvm.hotspot.runtime.VMObject; -import sun.jvm.hotspot.types.AddressField; -import sun.jvm.hotspot.types.Type; -import sun.jvm.hotspot.types.TypeDataBase; - -public class XGranuleMapForForwarding extends VMObject { - private static AddressField mapField; - - static { - VM.registerVMInitializedObserver((o, d) -> initialize(VM.getVM().getTypeDataBase())); - } - - private static synchronized void initialize(TypeDataBase db) { - Type type = db.lookupType("XGranuleMapForForwarding"); - - mapField = type.getAddressField("_map"); - } - - public XGranuleMapForForwarding(Address addr) { - super(addr); - } - - private Address map() { - return mapField.getValue(addr); - } - - public long size() { - return XGlobals.XAddressOffsetMax >> XGlobals.XGranuleSizeShift; - } - - private long index_for_offset(long offset) { - long index = offset >>> XGlobals.XGranuleSizeShift; - - return index; - } - - Address at(long index) { - return map().getAddressAt(index * VM.getVM().getAddressSize()); - } - - Address get(long offset) { - long index = index_for_offset(offset); - return at(index); - } - - public class Iterator { - private long next = 0; - - boolean hasNext() { - return next < size(); - } - - Address next() { - if (next >= size()) { - throw new RuntimeException("OOIBE"); - } - - return at(next++); - } - } -} diff --git a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XGranuleMapForPageTable.java b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XGranuleMapForPageTable.java deleted file mode 100644 index 468a3e2457d..00000000000 --- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XGranuleMapForPageTable.java +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright (c) 2018, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -package sun.jvm.hotspot.gc.x; - -import sun.jvm.hotspot.debugger.Address; -import sun.jvm.hotspot.runtime.VM; -import sun.jvm.hotspot.runtime.VMObject; -import sun.jvm.hotspot.types.AddressField; -import sun.jvm.hotspot.types.Type; -import sun.jvm.hotspot.types.TypeDataBase; - -public class XGranuleMapForPageTable extends VMObject { - private static AddressField mapField; - - static { - VM.registerVMInitializedObserver((o, d) -> initialize(VM.getVM().getTypeDataBase())); - } - - private static synchronized void initialize(TypeDataBase db) { - Type type = db.lookupType("XGranuleMapForPageTable"); - - mapField = type.getAddressField("_map"); - } - - public XGranuleMapForPageTable(Address addr) { - super(addr); - } - - private Address map() { - return mapField.getValue(addr); - } - - public long size() { - return XGlobals.XAddressOffsetMax >> XGlobals.XGranuleSizeShift; - } - - private long index_for_addr(Address addr) { - long index = XAddress.offset(addr) >> XGlobals.XGranuleSizeShift; - - return index; - } - - Address at(long index) { - return map().getAddressAt(index * VM.getVM().getBytesPerLong()); - } - - Address get(Address addr) { - long index = index_for_addr(addr); - return at(index); - } - - public class Iterator { - private long next = 0; - - boolean hasNext() { - return next < size(); - } - - Address next() { - if (next >= size()) { - throw new RuntimeException("OOIBE"); - } - - return at(next++); - } - } -} diff --git a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XHash.java b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XHash.java deleted file mode 100644 index 79b1f5c2e70..00000000000 --- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XHash.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -package sun.jvm.hotspot.gc.x; - -class XHash { - private static long uint32(long value) { - return value & 0xFFFFFFFFL; - } - - static long uint32_to_uint32(long key) { - key = uint32(~key + (key << 15)); - key = uint32(key ^ (key >>> 12)); - key = uint32(key + (key << 2)); - key = uint32(key ^ (key >>> 4)); - key = uint32(key * 2057); - key = uint32(key ^ (key >>> 16)); - return key; - } -} diff --git a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XHeap.java b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XHeap.java deleted file mode 100644 index c309ce21944..00000000000 --- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XHeap.java +++ /dev/null @@ -1,127 +0,0 @@ -/* - * Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -package sun.jvm.hotspot.gc.x; - -import java.io.PrintStream; - -import sun.jvm.hotspot.debugger.Address; -import sun.jvm.hotspot.runtime.VM; -import sun.jvm.hotspot.runtime.VMObject; -import sun.jvm.hotspot.runtime.VMObjectFactory; -import sun.jvm.hotspot.types.Type; -import sun.jvm.hotspot.types.TypeDataBase; - -// Mirror class for XHeap - -public class XHeap extends VMObject { - - private static long pageAllocatorFieldOffset; - private static long pageTableFieldOffset; - private static long forwardingTableFieldOffset; - private static long relocateFieldOffset; - - static { - VM.registerVMInitializedObserver((o, d) -> initialize(VM.getVM().getTypeDataBase())); - } - - private static synchronized void initialize(TypeDataBase db) { - Type type = db.lookupType("XHeap"); - - pageAllocatorFieldOffset = type.getAddressField("_page_allocator").getOffset(); - pageTableFieldOffset = type.getAddressField("_page_table").getOffset(); - forwardingTableFieldOffset = type.getAddressField("_forwarding_table").getOffset(); - relocateFieldOffset = type.getAddressField("_relocate").getOffset(); - } - - public XHeap(Address addr) { - super(addr); - } - - private XPageAllocator pageAllocator() { - Address pageAllocatorAddr = addr.addOffsetTo(pageAllocatorFieldOffset); - return VMObjectFactory.newObject(XPageAllocator.class, pageAllocatorAddr); - } - - XPageTable pageTable() { - return VMObjectFactory.newObject(XPageTable.class, addr.addOffsetTo(pageTableFieldOffset)); - } - - XForwardingTable forwardingTable() { - return VMObjectFactory.newObject(XForwardingTable.class, addr.addOffsetTo(forwardingTableFieldOffset)); - } - - XRelocate relocate() { - return VMObjectFactory.newObject(XRelocate.class, addr.addOffsetTo(relocateFieldOffset)); - } - - public long maxCapacity() { - return pageAllocator().maxCapacity(); - } - - public long capacity() { - return pageAllocator().capacity(); - } - - public long used() { - return pageAllocator().used(); - } - - boolean is_relocating(Address o) { - return pageTable().is_relocating(o); - } - - Address relocate_object(Address addr) { - XForwarding forwarding = forwardingTable().get(addr); - if (forwarding == null) { - return XAddress.good(addr); - } - return relocate().relocateObject(forwarding, XAddress.good(addr)); - } - - public boolean isIn(Address addr) { - if (XAddress.isIn(addr)) { - XPage page = pageTable().get(addr); - if (page != null) { - return page.isIn(addr); - } - } - return false; - } - - public Address remapObject(Address o) { - XForwarding forwarding = forwardingTable().get(addr); - if (forwarding == null) { - return XAddress.good(o); - } - return relocate().forwardObject(forwarding, XAddress.good(o)); - } - - public void printOn(PrintStream tty) { - tty.print(" ZHeap "); - tty.print("used " + (used() / 1024 / 1024) + "M, "); - tty.print("capacity " + (capacity() / 1024 / 1024) + "M, "); - tty.println("max capacity " + (maxCapacity() / 1024 / 1024) + "M"); - } -} diff --git a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XOop.java b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XOop.java deleted file mode 100644 index bbe296f658b..00000000000 --- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XOop.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (c) 2018, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -package sun.jvm.hotspot.gc.x; - -import sun.jvm.hotspot.debugger.Address; -import sun.jvm.hotspot.debugger.OopHandle; - -class XOop { - static Address to_address(OopHandle oop) { - return oop; - } -} diff --git a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XPage.java b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XPage.java deleted file mode 100644 index a6315f10130..00000000000 --- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XPage.java +++ /dev/null @@ -1,141 +0,0 @@ -/* - * Copyright (c) 2018, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -package sun.jvm.hotspot.gc.x; - -import java.util.ArrayList; -import java.util.List; - -import sun.jvm.hotspot.debugger.Address; -import sun.jvm.hotspot.debugger.OopHandle; -import sun.jvm.hotspot.gc.shared.LiveRegionsProvider; -import sun.jvm.hotspot.memory.MemRegion; -import sun.jvm.hotspot.oops.Oop; -import sun.jvm.hotspot.oops.UnknownOopException; -import sun.jvm.hotspot.runtime.VM; -import sun.jvm.hotspot.runtime.VMObject; -import sun.jvm.hotspot.runtime.VMObjectFactory; -import sun.jvm.hotspot.types.AddressField; -import sun.jvm.hotspot.types.CIntegerField; -import sun.jvm.hotspot.types.Type; -import sun.jvm.hotspot.types.TypeDataBase; - -public class XPage extends VMObject implements LiveRegionsProvider { - private static CIntegerField typeField; - private static CIntegerField seqnumField; - private static long virtualFieldOffset; - private static AddressField topField; - - static { - VM.registerVMInitializedObserver((o, d) -> initialize(VM.getVM().getTypeDataBase())); - } - - private static synchronized void initialize(TypeDataBase db) { - Type type = db.lookupType("XPage"); - - typeField = type.getCIntegerField("_type"); - seqnumField = type.getCIntegerField("_seqnum"); - virtualFieldOffset = type.getField("_virtual").getOffset(); - topField = type.getAddressField("_top"); - } - - public XPage(Address addr) { - super(addr); - } - - private byte type() { - return typeField.getJByte(addr); - } - - private int seqnum() { - return seqnumField.getJInt(addr); - } - - private XVirtualMemory virtual() { - return VMObjectFactory.newObject(XVirtualMemory.class, addr.addOffsetTo(virtualFieldOffset)); - } - - private Address top() { - return topField.getValue(addr); - } - - private boolean is_relocatable() { - return seqnum() < XGlobals.XGlobalSeqNum(); - } - - long start() { - return virtual().start(); - } - - long size() { - return virtual().end() - virtual().start(); - } - - long object_alignment_shift() { - if (type() == XGlobals.XPageTypeSmall) { - return XGlobals.XObjectAlignmentSmallShift(); - } else if (type() == XGlobals.XPageTypeMedium) { - return XGlobals.XObjectAlignmentMediumShift; - } else { - assert(type() == XGlobals.XPageTypeLarge); - return XGlobals.XObjectAlignmentLargeShift; - } - } - - long objectAlignmentSize() { - return 1 << object_alignment_shift(); - } - - public boolean isIn(Address addr) { - long offset = XAddress.offset(addr); - // FIXME: it does not consider the sign. - return (offset >= start()) && (offset < top().asLongValue()); - } - - private long getObjectSize(Address good) { - OopHandle handle = good.addOffsetToAsOopHandle(0); - Oop obj = null; - - try { - obj = VM.getVM().getObjectHeap().newOop(handle); - } catch (UnknownOopException exp) { - throw new RuntimeException(" UnknownOopException " + exp); - } - - return VM.getVM().alignUp(obj.getObjectSize(), objectAlignmentSize()); - } - - public List getLiveRegions() { - Address start = XAddress.good(XUtils.longToAddress(start())); - - // Can't convert top() to a "good" address because it might - // be at the top of the "offset" range, and therefore also - // looks like one of the color bits. Instead use the "good" - // address and add the size. - long size = top().asLongValue() - start(); - Address end = start.addOffsetTo(size); - - return List.of(new MemRegion(start, end)); - } -} diff --git a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XPageAllocator.java b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XPageAllocator.java deleted file mode 100644 index 1af19ea875f..00000000000 --- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XPageAllocator.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright (c) 2017, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -package sun.jvm.hotspot.gc.x; - -import sun.jvm.hotspot.debugger.Address; -import sun.jvm.hotspot.runtime.VM; -import sun.jvm.hotspot.runtime.VMObject; -import sun.jvm.hotspot.types.CIntegerField; -import sun.jvm.hotspot.types.Type; -import sun.jvm.hotspot.types.TypeDataBase; - -// Mirror class for XPageAllocator - -public class XPageAllocator extends VMObject { - - private static CIntegerField maxCapacityField; - private static CIntegerField capacityField; - private static CIntegerField usedField; - - static { - VM.registerVMInitializedObserver((o, d) -> initialize(VM.getVM().getTypeDataBase())); - } - - private static synchronized void initialize(TypeDataBase db) { - Type type = db.lookupType("XPageAllocator"); - - maxCapacityField = type.getCIntegerField("_max_capacity"); - capacityField = type.getCIntegerField("_capacity"); - usedField = type.getCIntegerField("_used"); - } - - public long maxCapacity() { - return maxCapacityField.getValue(addr); - } - - public long capacity() { - return capacityField.getValue(addr); - } - - public long used() { - return usedField.getValue(addr); - } - - public XPageAllocator(Address addr) { - super(addr); - } -} diff --git a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XPageTable.java b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XPageTable.java deleted file mode 100644 index c2aba43b912..00000000000 --- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XPageTable.java +++ /dev/null @@ -1,176 +0,0 @@ -/* - * Copyright (c) 2018, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -package sun.jvm.hotspot.gc.x; - -import java.util.Iterator; - -import sun.jvm.hotspot.debugger.Address; -import sun.jvm.hotspot.runtime.VM; -import sun.jvm.hotspot.runtime.VMObject; -import sun.jvm.hotspot.runtime.VMObjectFactory; -import sun.jvm.hotspot.types.Type; -import sun.jvm.hotspot.types.TypeDataBase; - -public class XPageTable extends VMObject { - private static long mapFieldOffset; - - static { - VM.registerVMInitializedObserver((o, d) -> initialize(VM.getVM().getTypeDataBase())); - } - - private static synchronized void initialize(TypeDataBase db) { - Type type = db.lookupType("XPageTable"); - - mapFieldOffset = type.getAddressField("_map").getOffset(); - } - - public XPageTable(Address addr) { - super(addr); - } - - private XGranuleMapForPageTable map() { - return VMObjectFactory.newObject(XGranuleMapForPageTable.class, addr.addOffsetTo(mapFieldOffset)); - } - - private XPageTableEntry getEntry(Address o) { - return new XPageTableEntry(map().get(o)); - } - - XPage get(Address o) { - return VMObjectFactory.newObject(XPage.class, map().get(VM.getVM().getDebugger().newAddress(XAddress.offset(o)))); - } - - boolean is_relocating(Address o) { - return getEntry(o).relocating(); - } - - private class XPagesIterator implements Iterator { - private XGranuleMapForPageTable.Iterator mapIter; - private XPage next; - - XPagesIterator() { - mapIter = map().new Iterator(); - positionToNext(); - } - - private XPage positionToNext() { - XPage current = next; - - // Find next - XPage found = null; - while (mapIter.hasNext()) { - XPageTableEntry entry = new XPageTableEntry(mapIter.next()); - if (!entry.isEmpty()) { - XPage page = entry.page(); - // Medium pages have repeated entries for all covered slots, - // therefore we need to compare against the current page. - if (page != null && !page.equals(current)) { - found = page; - break; - } - } - } - - next = found; - - return current; - } - - @Override - public boolean hasNext() { - return next != null; - } - - @Override - public XPage next() { - return positionToNext(); - } - - @Override - public void remove() { - /* not supported */ - } - } - - abstract class XPageFilter { - public abstract boolean accept(XPage page); - } - - class XPagesFilteredIterator implements Iterator { - private XPage next; - private XPagesIterator iter = new XPagesIterator(); - private XPageFilter filter; - - XPagesFilteredIterator(XPageFilter filter) { - this.filter = filter; - positionToNext(); - } - - public XPage positionToNext() { - XPage current = next; - - // Find next - XPage found = null; - while (iter.hasNext()) { - XPage page = iter.next(); - if (filter.accept(page)) { - found = page; - break; - } - } - - next = found; - - return current; - } - - @Override - public boolean hasNext() { - return next != null; - } - - @Override - public XPage next() { - return positionToNext(); - } - - @Override - public void remove() { - /* not supported */ - } - } - - public Iterator iterator() { - return new XPagesIterator(); - } - - public Iterator activePagesIterator() { - return new XPagesFilteredIterator(new XPageFilter() { - public boolean accept(XPage page) { - return page != null; - } - }); - } -} diff --git a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XPageTableEntry.java b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XPageTableEntry.java deleted file mode 100644 index 42a29878ecc..00000000000 --- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XPageTableEntry.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (c) 2018, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -package sun.jvm.hotspot.gc.x; - -import sun.jvm.hotspot.debugger.Address; -import sun.jvm.hotspot.runtime.VMObjectFactory; - -class XPageTableEntry { - Address entry; - - XPageTableEntry(Address address) { - entry = address; - } - - XPage page() { - return VMObjectFactory.newObject(XPage.class, zPageBits()); - } - - private Address zPageBits() { - return entry.andWithMask(~1L); - } - - boolean relocating() { - return (entry.asLongValue() & 1) == 1; - } - - boolean isEmpty() { - return entry == null || zPageBits() == null; - } -} diff --git a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XRelocate.java b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XRelocate.java deleted file mode 100644 index a4b0dc1c992..00000000000 --- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XRelocate.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2021, NTT DATA. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -package sun.jvm.hotspot.gc.x; - -import sun.jvm.hotspot.debugger.Address; -import sun.jvm.hotspot.runtime.VM; -import sun.jvm.hotspot.runtime.VMObject; -import sun.jvm.hotspot.types.AddressField; -import sun.jvm.hotspot.types.Type; -import sun.jvm.hotspot.types.TypeDataBase; - -public class XRelocate extends VMObject { - - static { - VM.registerVMInitializedObserver((o, d) -> initialize(VM.getVM().getTypeDataBase())); - } - - private static synchronized void initialize(TypeDataBase db) { - Type type = db.lookupType("XRelocate"); - } - - public XRelocate(Address addr) { - super(addr); - } - - private long forwardingIndex(XForwarding forwarding, Address from) { - long fromOffset = XAddress.offset(from); - return (fromOffset - forwarding.start()) >>> forwarding.objectAlignmentShift(); - } - - private Address forwardingFind(XForwarding forwarding, Address from) { - long fromIndex = forwardingIndex(forwarding, from); - XForwardingEntry entry = forwarding.find(fromIndex); - return entry.populated() ? XAddress.good(VM.getVM().getDebugger().newAddress(entry.toOffset())) : null; - } - - public Address forwardObject(XForwarding forwarding, Address from) { - return forwardingFind(forwarding, from); - } - - public Address relocateObject(XForwarding forwarding, Address o) { - Address toAddr = forwardingFind(forwarding, o); - if (toAddr != null) { - // Already relocated. - return toAddr; - } else { - // Return original address because it is not yet relocated. - return o; - } - } -} diff --git a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XUtils.java b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XUtils.java deleted file mode 100644 index a5c9ffde371..00000000000 --- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XUtils.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (c) 2018, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -package sun.jvm.hotspot.gc.x; - -import sun.jvm.hotspot.debugger.Address; -import sun.jvm.hotspot.runtime.VM; - -class XUtils { - static Address longToAddress(long value) { - return VM.getVM().getDebugger().newAddress(value); - } - - static long alignUp(long size, long alignment) { - long mask = alignment - 1; - long adjusted = size + mask; - return adjusted & ~mask; - } -} diff --git a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XVirtualMemory.java b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XVirtualMemory.java deleted file mode 100644 index de225ccdcbd..00000000000 --- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/x/XVirtualMemory.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (c) 2018, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -package sun.jvm.hotspot.gc.x; - -import sun.jvm.hotspot.debugger.Address; -import sun.jvm.hotspot.runtime.VM; -import sun.jvm.hotspot.runtime.VMObject; -import sun.jvm.hotspot.types.CIntegerField; -import sun.jvm.hotspot.types.Type; -import sun.jvm.hotspot.types.TypeDataBase; - -public class XVirtualMemory extends VMObject { - private static CIntegerField startField; - private static CIntegerField endField; - - static { - VM.registerVMInitializedObserver((o, d) -> initialize(VM.getVM().getTypeDataBase())); - } - - private static synchronized void initialize(TypeDataBase db) { - Type type = db.lookupType("XVirtualMemory"); - - startField = type.getCIntegerField("_start"); - endField = type.getCIntegerField("_end"); - } - - public XVirtualMemory(Address addr) { - super(addr); - } - - long start() { - return startField.getJLong(addr); - } - - long end() { - return endField.getJLong(addr); - } -} diff --git a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/memory/Universe.java b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/memory/Universe.java index c4ab8e32c0b..01fd0f7430a 100644 --- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/memory/Universe.java +++ b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/memory/Universe.java @@ -36,7 +36,6 @@ import sun.jvm.hotspot.gc.serial.SerialHeap; import sun.jvm.hotspot.gc.shared.CollectedHeap; import sun.jvm.hotspot.gc.shenandoah.ShenandoahHeap; -import sun.jvm.hotspot.gc.x.XCollectedHeap; import sun.jvm.hotspot.gc.z.ZCollectedHeap; import sun.jvm.hotspot.oops.Oop; import sun.jvm.hotspot.runtime.BasicType; @@ -87,7 +86,6 @@ private static synchronized void initialize(TypeDataBase db) { addHeapTypeIfInDB(db, ParallelScavengeHeap.class); addHeapTypeIfInDB(db, G1CollectedHeap.class); addHeapTypeIfInDB(db, EpsilonHeap.class); - addHeapTypeIfInDB(db, XCollectedHeap.class); addHeapTypeIfInDB(db, ZCollectedHeap.class); addHeapTypeIfInDB(db, ShenandoahHeap.class); diff --git a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/oops/ObjectHeap.java b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/oops/ObjectHeap.java index 2c1ad426b6a..be6c8522fc5 100644 --- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/oops/ObjectHeap.java +++ b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/oops/ObjectHeap.java @@ -37,7 +37,6 @@ import sun.jvm.hotspot.gc.g1.*; import sun.jvm.hotspot.gc.shenandoah.*; import sun.jvm.hotspot.gc.parallel.*; -import sun.jvm.hotspot.gc.x.*; import sun.jvm.hotspot.memory.*; import sun.jvm.hotspot.runtime.*; import sun.jvm.hotspot.types.*; diff --git a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/ThreadLocalAllocBuffer.java b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/ThreadLocalAllocBuffer.java index cb5e2add580..1dc67330d3d 100644 --- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/ThreadLocalAllocBuffer.java +++ b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/ThreadLocalAllocBuffer.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -75,11 +75,11 @@ private long alignmentReserve() { } private long endReserve() { - long minFillerArraySize = Array.baseOffsetInBytes(BasicType.T_INT); + long labAlignmentReserve = VM.getVM().getLabAlignmentReserve(); long reserveForAllocationPrefetch = VM.getVM().getReserveForAllocationPrefetch(); long heapWordSize = VM.getVM().getHeapWordSize(); - return Math.max(minFillerArraySize, reserveForAllocationPrefetch * heapWordSize); + return Math.max(labAlignmentReserve, reserveForAllocationPrefetch) * heapWordSize; } /** Support for iteration over heap -- not sure how this will diff --git a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/VM.java b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/VM.java index 232f3e864a3..da900884045 100644 --- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/VM.java +++ b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/VM.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -127,6 +127,7 @@ public class VM { private ReversePtrs revPtrs; private VMRegImpl vmregImpl; private int reserveForAllocationPrefetch; + private int labAlignmentReserve; // System.getProperties from debuggee VM private Properties sysProps; @@ -138,12 +139,12 @@ public class VM { private Flag[] commandLineFlags; private Map flagsMap; - private static Type intType; - private static Type uintType; - private static Type intxType; - private static Type uintxType; - private static Type sizetType; - private static Type uint64tType; + private static CIntegerType intType; + private static CIntegerType uintType; + private static CIntegerType intxType; + private static CIntegerType uintxType; + private static CIntegerType sizetType; + private static CIntegerType uint64tType; private static CIntegerType boolType; private Boolean sharingEnabled; private Boolean compressedOopsEnabled; @@ -432,17 +433,29 @@ private VM(TypeDataBase db, JVMDebugger debugger, boolean isBigEndian) { vmRelease = CStringUtilities.getString(releaseAddr); Address vmInternalInfoAddr = vmVersion.getAddressField("_s_internal_vm_info_string").getValue(); vmInternalInfo = CStringUtilities.getString(vmInternalInfoAddr); - - Type threadLocalAllocBuffer = db.lookupType("ThreadLocalAllocBuffer"); - CIntegerType intType = (CIntegerType) db.lookupType("int"); - CIntegerField reserveForAllocationPrefetchField = threadLocalAllocBuffer.getCIntegerField("_reserve_for_allocation_prefetch"); - reserveForAllocationPrefetch = (int)reserveForAllocationPrefetchField.getCInteger(intType); } catch (Exception exp) { throw new RuntimeException("can't determine target's VM version : " + exp.getMessage()); } checkVMVersion(vmRelease); + // Initialize common primitive types + intType = (CIntegerType) db.lookupType("int"); + uintType = (CIntegerType) db.lookupType("uint"); + intxType = (CIntegerType) db.lookupType("intx"); + uintxType = (CIntegerType) db.lookupType("uintx"); + sizetType = (CIntegerType) db.lookupType("size_t"); + uint64tType = (CIntegerType) db.lookupType("uint64_t"); + boolType = (CIntegerType) db.lookupType("bool"); + + Type threadLocalAllocBuffer = db.lookupType("ThreadLocalAllocBuffer"); + CIntegerField reserveForAllocationPrefetchField = threadLocalAllocBuffer.getCIntegerField("_reserve_for_allocation_prefetch"); + reserveForAllocationPrefetch = (int)reserveForAllocationPrefetchField.getCInteger(intType); + + Type collectedHeap = db.lookupType("CollectedHeap"); + CIntegerField labAlignmentReserveField = collectedHeap.getCIntegerField("_lab_alignment_reserve"); + labAlignmentReserve = (int)labAlignmentReserveField.getCInteger(sizetType); + invocationEntryBCI = db.lookupIntConstant("InvocationEntryBci").intValue(); // We infer the presence of JVMTI from the presence of the InstanceKlass::_breakpoints field. @@ -493,14 +506,6 @@ private VM(TypeDataBase db, JVMDebugger debugger, boolean isBigEndian) { Flags_WAS_SET_ON_COMMAND_LINE = db.lookupIntConstant("JVMFlag::WAS_SET_ON_COMMAND_LINE").intValue(); oopSize = db.lookupIntConstant("oopSize").intValue(); - intType = db.lookupType("int"); - uintType = db.lookupType("uint"); - intxType = db.lookupType("intx"); - uintxType = db.lookupType("uintx"); - sizetType = db.lookupType("size_t"); - uint64tType = db.lookupType("uint64_t"); - boolType = (CIntegerType) db.lookupType("bool"); - minObjAlignmentInBytes = getObjectAlignmentInBytes(); if ((minObjAlignmentInBytes & (minObjAlignmentInBytes - 1)) != 0) { throw new RuntimeException("Object alignment " + minObjAlignmentInBytes + " is not power of two"); @@ -929,6 +934,10 @@ public int getReserveForAllocationPrefetch() { return reserveForAllocationPrefetch; } + public int getLabAlignmentReserve() { + return labAlignmentReserve; + } + public boolean isSharingEnabled() { if (sharingEnabled == null) { Address address = VM.getVM().getDebugger().lookup(null, "UseSharedSpaces"); diff --git a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/tools/HeapSummary.java b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/tools/HeapSummary.java index 86a1216bbd3..58a9c1b4519 100644 --- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/tools/HeapSummary.java +++ b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/tools/HeapSummary.java @@ -32,7 +32,6 @@ import sun.jvm.hotspot.gc.serial.*; import sun.jvm.hotspot.gc.shenandoah.*; import sun.jvm.hotspot.gc.shared.*; -import sun.jvm.hotspot.gc.x.*; import sun.jvm.hotspot.gc.z.*; import sun.jvm.hotspot.debugger.JVMDebugger; import sun.jvm.hotspot.memory.*; @@ -145,9 +144,6 @@ public void run() { } else if (heap instanceof EpsilonHeap) { EpsilonHeap eh = (EpsilonHeap) heap; printSpace(eh.space()); - } else if (heap instanceof XCollectedHeap) { - XCollectedHeap zheap = (XCollectedHeap) heap; - zheap.printOn(System.out); } else if (heap instanceof ZCollectedHeap) { ZCollectedHeap zheap = (ZCollectedHeap) heap; zheap.printOn(System.out); diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ByteVector.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ByteVector.java index 11c0fda80a4..f36215ffe12 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ByteVector.java +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ByteVector.java @@ -884,6 +884,18 @@ private static BinaryOperation> binaryOperations(in v0.bOp(v1, vm, (i, a, n) -> rotateLeft(a, (int)n)); case VECTOR_OP_RROTATE: return (v0, v1, vm) -> v0.bOp(v1, vm, (i, a, n) -> rotateRight(a, (int)n)); + case VECTOR_OP_UMAX: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (byte)VectorMath.maxUnsigned(a, b)); + case VECTOR_OP_UMIN: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (byte)VectorMath.minUnsigned(a, b)); + case VECTOR_OP_SADD: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (byte)(VectorMath.addSaturating(a, b))); + case VECTOR_OP_SSUB: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (byte)(VectorMath.subSaturating(a, b))); + case VECTOR_OP_SUADD: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (byte)(VectorMath.addSaturatingUnsigned(a, b))); + case VECTOR_OP_SUSUB: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (byte)(VectorMath.subSaturatingUnsigned(a, b))); default: return null; } } diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/IntVector.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/IntVector.java index b61e2fc991e..6cb81767cdd 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/IntVector.java +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/IntVector.java @@ -884,6 +884,18 @@ private static BinaryOperation> binaryOperations( v0.bOp(v1, vm, (i, a, n) -> rotateLeft(a, (int)n)); case VECTOR_OP_RROTATE: return (v0, v1, vm) -> v0.bOp(v1, vm, (i, a, n) -> rotateRight(a, (int)n)); + case VECTOR_OP_UMAX: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (int)VectorMath.maxUnsigned(a, b)); + case VECTOR_OP_UMIN: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (int)VectorMath.minUnsigned(a, b)); + case VECTOR_OP_SADD: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (int)(VectorMath.addSaturating(a, b))); + case VECTOR_OP_SSUB: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (int)(VectorMath.subSaturating(a, b))); + case VECTOR_OP_SUADD: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (int)(VectorMath.addSaturatingUnsigned(a, b))); + case VECTOR_OP_SUSUB: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (int)(VectorMath.subSaturatingUnsigned(a, b))); case VECTOR_OP_COMPRESS_BITS: return (v0, v1, vm) -> v0.bOp(v1, vm, (i, a, n) -> Integer.compress(a, n)); case VECTOR_OP_EXPAND_BITS: return (v0, v1, vm) -> diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/LongVector.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/LongVector.java index 68166bd9852..a740c9d49cf 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/LongVector.java +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/LongVector.java @@ -842,6 +842,18 @@ private static BinaryOperation> binaryOperations(in v0.bOp(v1, vm, (i, a, n) -> rotateLeft(a, (int)n)); case VECTOR_OP_RROTATE: return (v0, v1, vm) -> v0.bOp(v1, vm, (i, a, n) -> rotateRight(a, (int)n)); + case VECTOR_OP_UMAX: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (long)VectorMath.maxUnsigned(a, b)); + case VECTOR_OP_UMIN: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (long)VectorMath.minUnsigned(a, b)); + case VECTOR_OP_SADD: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (long)(VectorMath.addSaturating(a, b))); + case VECTOR_OP_SSUB: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (long)(VectorMath.subSaturating(a, b))); + case VECTOR_OP_SUADD: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (long)(VectorMath.addSaturatingUnsigned(a, b))); + case VECTOR_OP_SUSUB: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (long)(VectorMath.subSaturatingUnsigned(a, b))); case VECTOR_OP_COMPRESS_BITS: return (v0, v1, vm) -> v0.bOp(v1, vm, (i, a, n) -> Long.compress(a, n)); case VECTOR_OP_EXPAND_BITS: return (v0, v1, vm) -> diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ShortVector.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ShortVector.java index 2f1ea210b90..0e3ff9aaa87 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ShortVector.java +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ShortVector.java @@ -884,6 +884,18 @@ private static BinaryOperation> binaryOperations( v0.bOp(v1, vm, (i, a, n) -> rotateLeft(a, (int)n)); case VECTOR_OP_RROTATE: return (v0, v1, vm) -> v0.bOp(v1, vm, (i, a, n) -> rotateRight(a, (int)n)); + case VECTOR_OP_UMAX: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (short)VectorMath.maxUnsigned(a, b)); + case VECTOR_OP_UMIN: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (short)VectorMath.minUnsigned(a, b)); + case VECTOR_OP_SADD: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (short)(VectorMath.addSaturating(a, b))); + case VECTOR_OP_SSUB: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (short)(VectorMath.subSaturating(a, b))); + case VECTOR_OP_SUADD: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (short)(VectorMath.addSaturatingUnsigned(a, b))); + case VECTOR_OP_SUSUB: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> (short)(VectorMath.subSaturatingUnsigned(a, b))); default: return null; } } diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/VectorMath.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/VectorMath.java new file mode 100644 index 00000000000..0d590d2d49a --- /dev/null +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/VectorMath.java @@ -0,0 +1,586 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package jdk.incubator.vector; + +/** + * The class {@code VectorMath} contains methods for performing + * scalar numeric operations in support of vector numeric operations. + * @since 24 + */ +public final class VectorMath { + + private VectorMath() { + } + + /** + * Returns the smaller of two {@code long} values numerically treating + * the values as unsigned. That is, the result is the operand closer + * to the value of the expression {@code 0L}. If the operands have the + * same value, the result is that same value. + * + * @param a the first operand. + * @param b the second operand. + * @return the smaller of {@code a} and {@code b}. + * @see VectorOperators#UMIN + */ + public static long minUnsigned(long a, long b) { + return Long.compareUnsigned(a, b) < 0 ? a : b; + } + + /** + * Returns the greater of two {@code long} values numerically treating + * the values as unsigned. That is, the result is the operand closer + * to the value of the expression {@code 0xFFFFFFFF_FFFFFFFFL} numerically + * treating it as unsigned. If the operands have the same value, + * the result is that same value. + * + * @param a the first operand. + * @param b the second operand. + * @return the larger of {@code a} and {@code b}. + * @see VectorOperators#UMAX + */ + public static long maxUnsigned(long a, long b) { + return Long.compareUnsigned(a, b) > 0 ? a : b; + } + + /** + * Adds two {@code long} values using saturation + * arithemetic. The lower and upper (inclusive) bounds are + * {@code Long.MIN_VALUE} and {@code Long.MAX_VALUE}, respectively. + *

    + * If the result of the addition would otherwise overflow from + * a positive value to a negative value then the result is clamped + * to the upper bound {@code Long.MAX_VALUE}. + * If the result of the addition would otherwise underflow from + * a negative value to a positive value then the result is clamped + * to lower bound {@code Long.MIN_VALUE}. + * + * @param a the first operand. + * @param b the second operand. + * @return the saturating addition of the operands. + * @see VectorOperators#SADD + */ + public static long addSaturating(long a, long b) { + long res = a + b; + // HD 2-12 Overflow iff both arguments have the opposite sign of the result + if (((a ^ res) & (b ^ res)) < 0) { + return res < 0 ? Long.MAX_VALUE : Long.MIN_VALUE; + } else { + return res; + } + } + + /** + * Subtracts two {@code long} values using saturation + * arithemetic. The lower and upper (inclusive) bounds are + * {@code Long.MIN_VALUE} and {@code Long.MAX_VALUE}, respectively. + *

    + * If the result of the subtraction would otherwise overflow from + * a positive value to a negative value then the result is clamped + * to the upper bound {@code Long.MAX_VALUE}. + * If the result of the subtraction would otherwise underflow from + * a negative value to a positive value then the result is clamped + * to lower bound {@code Long.MIN_VALUE}. + * + * @param a the first operand. + * @param b the second operand. + * @return the saturating difference of the operands. + * @see VectorOperators#SSUB + */ + public static long subSaturating(long a, long b) { + long res = a - b; + // HD 2-12 Overflow iff the arguments have different signs and + // the sign of the result is different from the sign of a + if (((a ^ b) & (a ^ res)) < 0) { + return a < 0 ? Long.MIN_VALUE : Long.MAX_VALUE; + } else { + return res; + } + } + + /** + * Adds two {@code long} values using saturation + * arithemetic and numerically treating the values + * as unsigned. The lower and upper (inclusive) bounds + * are {@code 0L} and {@code 0xFFFFFFFF_FFFFFFFFL}, respectively, + * numerically treating them as unsigned. + *

    + * If the result of the unsigned addition would otherwise overflow + * from the greater of the two operands to a lesser value then the + * result is clamped to the upper bound {@code 0xFFFFFFFF_FFFFFFFFL}. + * + * @param a the first operand. + * @param b the second operand. + * @return the saturating addition of the operands. + * @see VectorOperators#SUADD + */ + public static long addSaturatingUnsigned(long a, long b) { + long res = a + b; + boolean overflow = Long.compareUnsigned(res, (a | b)) < 0; + if (overflow) { + return -1L; + } else { + return res; + } + } + + /** + * Subtracts two {@code long} values using saturation + * arithemetic and numerically treating the values + * as unsigned. The lower and upper (inclusive) bounds + * are {@code 0L} and {@code 0xFFFFFFFF_FFFFFFFFL}, respectively, + * numerically treating them as unsigned. + *

    + * If the result of the unsigned subtraction would otherwise underflow + * from the lesser of the two operands to a greater value then the + * result is clamped to the lower bound {@code 0L}. + * + * @param a the first operand. + * @param b the second operand. + * @return the saturating difference of the operands. + * @see VectorOperators#SUSUB + */ + public static long subSaturatingUnsigned(long a, long b) { + if (Long.compareUnsigned(b, a) < 0) { + return a - b; + } else { + return 0; + } + } + + + /** + * Returns the smaller of two {@code int} values numerically treating + * the values as unsigned. That is, the result is the operand closer + * to the value of the expression {@code 0}. If the operands have the + * same value, the result is that same value. + * + * @param a the first operand. + * @param b the second operand. + * @return the smaller of {@code a} and {@code b}. + * @see VectorOperators#UMIN + */ + public static int minUnsigned(int a, int b) { + return Integer.compareUnsigned(a, b) < 0 ? a : b; + } + + /** + * Returns the greater of two {@code int} values numerically treating + * the values as unsigned. That is, the result is the operand closer + * to the value of the expression {@code 0xFFFFFFFF} numerically + * treating it as unsigned. If the operands have the same value, + * the result is that same value. + * + * @param a the first operand. + * @param b the second operand. + * @return the larger of {@code a} and {@code b}. + * @see VectorOperators#UMAX + */ + public static int maxUnsigned(int a, int b) { + return Integer.compareUnsigned(a, b) > 0 ? a : b; + } + + /** + * Adds two {@code int} values using saturation + * arithemetic. The lower and upper (inclusive) bounds are + * {@code Integer.MIN_VALUE} and {@code Integer.MAX_VALUE}, respectively. + *

    + * If the result of the addition would otherwise overflow from + * a positive value to a negative value then the result is clamped + * to the upper bound {@code Integer.MAX_VALUE}. + * If the result of the addition would otherwise underflow from + * a negative value to a positive value then the result is clamped + * to lower bound {@code Integer.MIN_VALUE}. + * + * @param a the first operand. + * @param b the second operand. + * @return the saturating addition of the operands. + * @see VectorOperators#SADD + */ + public static int addSaturating(int a, int b) { + long res = (long)a + (long)b; + if (res > Integer.MAX_VALUE) { + return Integer.MAX_VALUE; + } else if (res < Integer.MIN_VALUE) { + return Integer.MIN_VALUE; + } else { + return (int)res; + } + } + + /** + * Subtracts two {@code int} values using saturation + * arithemetic. The lower and upper (inclusive) bounds are + * {@code Integer.MIN_VALUE} and {@code Integer.MAX_VALUE}, respectively. + *

    + * If the result of the subtraction would otherwise overflow from + * a positive value to a negative value then the result is clamped + * to the upper bound {@code Integer.MAX_VALUE}. + * If the result of the subtraction would otherwise underflow from + * a negative value to a positive value then the result is clamped + * to lower bound {@code Integer.MIN_VALUE}. + * + * @param a the first operand. + * @param b the second operand. + * @return the saturating difference of the operands. + * @see VectorOperators#SSUB + */ + public static int subSaturating(int a, int b) { + long res = (long)a - (long)b; + if (res > Integer.MAX_VALUE) { + return Integer.MAX_VALUE; + } else if (res < Integer.MIN_VALUE) { + return Integer.MIN_VALUE; + } else { + return (int)res; + } + } + + /** + * Adds two {@code int} values using saturation + * arithemetic and numerically treating the values + * as unsigned. The lower and upper (inclusive) bounds + * are {@code 0} and {@code 0xFFFFFFFF}, respectively, + * numerically treating them as unsigned. + *

    + * If the result of the unsigned addition would otherwise overflow + * from the greater of the two operands to a lesser value then the + * result is clamped to the upper bound {@code 0xFFFFFFFF}. + * + * @param a the first operand. + * @param b the second operand. + * @return the saturating addition of the operands. + * @see VectorOperators#SUADD + */ + public static int addSaturatingUnsigned(int a, int b) { + int res = a + b; + boolean overflow = Integer.compareUnsigned(res, (a | b)) < 0; + if (overflow) { + return -1; + } else { + return res; + } + } + + /** + * Subtracts two {@code int} values using saturation + * arithemetic and numerically treating the values + * as unsigned. The lower and upper (inclusive) bounds + * are {@code 0} and {@code -0xFFFFFFFF}, respectively, + * numerically treating them as unsigned. + *

    + * If the result of the unsigned subtraction would otherwise underflow + * from the lesser of the two operands to a greater value then the + * result is clamped to the lower bound {@code 0}. + * + * @param a the first operand. + * @param b the second operand. + * @return the saturating difference of the operands. + * @see VectorOperators#SUSUB + */ + public static int subSaturatingUnsigned(int a, int b) { + if (Integer.compareUnsigned(b, a) < 0) { + return a - b; + } else { + return 0; + } + } + + + /** + * Returns the smaller of two {@code short} values numerically treating + * the values as unsigned. That is, the result is the operand closer + * to the value of the expression {@code 0}. If the operands have the + * same value, the result is that same value. + * + * @param a the first operand. + * @param b the second operand. + * @return the smaller of {@code a} and {@code b}. + * @see VectorOperators#UMIN + */ + public static short minUnsigned(short a, short b) { + return Short.compareUnsigned(a, b) < 0 ? a : b; + } + + /** + * Returns the greater of two {@code short} values numerically treating + * the values as unsigned. That is, the result is the operand closer + * to the value of the expression {@code 0xFFFF} numerically + * treating it as unsigned. If the operands have the same value, + * the result is that same value. + * + * @param a the first operand. + * @param b the second operand. + * @return the larger of {@code a} and {@code b}. + * @see VectorOperators#UMAX + */ + public static short maxUnsigned(short a, short b) { + return Short.compareUnsigned(a, b) > 0 ? a : b; + } + + /** + * Adds two {@code short} values using saturation + * arithemetic. The lower and upper (inclusive) bounds are + * {@code Short.MIN_VALUE} and {@code Short.MAX_VALUE}, respectively. + *

    + * If the result of the addition would otherwise overflow from + * a positive value to a negative value then the result is clamped + * to the upper bound {@code Short.MAX_VALUE}. + * If the result of the addition would otherwise underflow from + * a negative value to a positive value then the result is clamped + * to lower bound {@code Short.MIN_VALUE}. + * + * @param a the first operand. + * @param b the second operand. + * @return the saturating addition of the operands. + * @see VectorOperators#SADD + */ + public static short addSaturating(short a, short b) { + int res = a + b; + if (res > Short.MAX_VALUE) { + return Short.MAX_VALUE; + } else if (res < Short.MIN_VALUE) { + return Short.MIN_VALUE; + } else { + return (short)res; + } + } + + /** + * Subtracts two {@code short} values using saturation + * arithemetic. The lower and upper (inclusive) bounds are + * {@code Short.MIN_VALUE} and {@code Short.MAX_VALUE}, respectively. + *

    + * If the result of the subtraction would otherwise overflow from + * a positive value to a negative value then the result is clamped + * to the upper bound {@code Short.MAX_VALUE}. + * If the result of the subtraction would otherwise underflow from + * a negative value to a positive value then the result is clamped + * to lower bound {@code Short.MIN_VALUE}. + * + * @param a the first operand. + * @param b the second operand. + * @return the saturating difference of the operands. + * @see VectorOperators#SSUB + */ + public static short subSaturating(short a, short b) { + int res = a - b; + if (res > Short.MAX_VALUE) { + return Short.MAX_VALUE; + } else if (res < Short.MIN_VALUE) { + return Short.MIN_VALUE; + } else { + return (short)res; + } + } + + /** + * Adds two {@code short} values using saturation + * arithemetic and numerically treating the values + * as unsigned. The lower and upper (inclusive) bounds + * are {@code 0} and {@code 0xFFFF}, respectively, + * numerically treating them as unsigned. + *

    + * If the result of the unsigned addition would otherwise overflow + * from the greater of the two operands to a lesser value then the + * result is clamped to the upper bound {@code 0xFFFF}. + * + * @param a the first operand. + * @param b the second operand. + * @return the saturating addition of the operands. + * @see VectorOperators#SUADD + */ + public static short addSaturatingUnsigned(short a, short b) { + short res = (short)(a + b); + boolean overflow = Short.compareUnsigned(res, (short)(a | b)) < 0; + if (overflow) { + return (short)(-1); + } else { + return res; + } + } + + /** + * Subtracts two {@code short} values using saturation + * arithemetic and numerically treating the values + * as unsigned. The lower and upper (inclusive) bounds + * are {@code 0} and {@code 0xFFFF}, respectively, + * numerically treating them as unsigned. + *

    + * If the result of the unsigned subtraction would otherwise underflow + * from the lesser of the two operands to a greater value then the + * result is clamped to the lower bound {@code 0}. + * + * @param a the first operand. + * @param b the second operand. + * @return the saturating difference of the operands. + * @see VectorOperators#SUSUB + */ + public static short subSaturatingUnsigned(short a, short b) { + if (Short.compareUnsigned(b, a) < 0) { + return (short)(a - b); + } else { + return 0; + } + } + + + /** + * Returns the smaller of two {@code byte} values numerically treating + * the values as unsigned. That is, the result is the operand closer + * to the value of the expression {@code 0}. If the operands have the + * same value, the result is that same value. + * + * @param a the first operand. + * @param b the second operand. + * @return the smaller of {@code a} and {@code b}. + * @see VectorOperators#UMIN + */ + public static byte minUnsigned(byte a, byte b) { + return Byte.compareUnsigned(a, b) < 0 ? a : b; + } + + /** + * Returns the greater of two {@code byte} values numerically treating + * the values as unsigned. That is, the result is the operand closer + * to the value of the expression {@code 0xFF} numerically + * treating it as unsigned. If the operands have the same value, + * the result is that same value. + * + * @param a the first operand. + * @param b the second operand. + * @return the larger of {@code a} and {@code b}. + * @see VectorOperators#UMAX + */ + public static byte maxUnsigned(byte a, byte b) { + return Byte.compareUnsigned(a, b) > 0 ? a : b; + } + + /** + * Adds two {@code byte} values using saturation + * arithemetic. The lower and upper (inclusive) bounds are + * {@code Byte.MIN_VALUE} and {@code Byte.MAX_VALUE}, respectively. + *

    + * If the result of the addition would otherwise overflow from + * a positive value to a negative value then the result is clamped + * to the upper bound {@code Byte.MAX_VALUE}. + * If the result of the addition would otherwise underflow from + * a negative value to a positive value then the result is clamped + * to lower bound {@code Byte.MIN_VALUE}. + * + * @param a the first operand. + * @param b the second operand. + * @return the saturating addition of the operands. + * @see VectorOperators#SADD + */ + public static byte addSaturating(byte a, byte b) { + int res = a + b; + if (res > Byte.MAX_VALUE) { + return Byte.MAX_VALUE; + } else if (res < Byte.MIN_VALUE) { + return Byte.MIN_VALUE; + } else { + return (byte)res; + } + } + + /** + * Subtracts two {@code byte} values using saturation + * arithemetic. The lower and upper (inclusive) bounds are + * {@code Byte.MIN_VALUE} and {@code Byte.MAX_VALUE}, respectively. + *

    + * If the result of the subtraction would otherwise overflow from + * a positive value to a negative value then the result is clamped + * to the upper bound {@code Byte.MAX_VALUE}. + * If the result of the subtraction would otherwise underflow from + * a negative value to a positive value then the result is clamped + * to lower bound {@code Byte.MIN_VALUE}. + * + * @param a the first operand. + * @param b the second operand. + * @return the saturating difference of the operands. + * @see VectorOperators#SSUB + */ + public static byte subSaturating(byte a, byte b) { + int res = a - b; + if (res > Byte.MAX_VALUE) { + return Byte.MAX_VALUE; + } else if (res < Byte.MIN_VALUE) { + return Byte.MIN_VALUE; + } else { + return (byte)res; + } + } + + /** + * Adds two {@code byte} values using saturation + * arithemetic and numerically treating the values + * as unsigned. The lower and upper (inclusive) bounds + * are {@code 0} and {@code 0xFF}, respectively, + * numerically treating them as unsigned. + *

    + * If the result of the unsigned addition would otherwise overflow + * from the greater of the two operands to a lesser value then the + * result is clamped to the upper bound {@code 0xFF}. + * + * @param a the first operand. + * @param b the second operand. + * @return the saturating addition of the operands. + * @see VectorOperators#SUADD + */ + public static byte addSaturatingUnsigned(byte a, byte b) { + byte res = (byte)(a + b); + boolean overflow = Byte.compareUnsigned(res, (byte)(a | b)) < 0; + if (overflow) { + return (byte)(-1); + } else { + return res; + } + } + + /** + * Subtracts two {@code byte} values using saturation + * arithemetic and numerically treating the values + * as unsigned. The lower and upper (inclusive) bounds + * are {@code 0} and {@code 0xFF}, respectively, + * numerically treating them as unsigned. + *

    + * If the result of the unsigned subtraction would otherwise underflow + * from the lesser of the two operands to a greater value then the + * result is clamped to the lower bound {@code 0}. + * + * @param a the first operand. + * @param b the second operand. + * @return the saturating difference of the operands. + * @see VectorOperators#SUSUB + */ + public static byte subSaturatingUnsigned(byte a, byte b) { + if (Byte.compareUnsigned(b, a) < 0) { + return (byte)(a - b); + } else { + return 0; + } + } +} diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/VectorOperators.java b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/VectorOperators.java index 38c4b1c94fe..fa70d65c742 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/VectorOperators.java +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/VectorOperators.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2019, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -567,6 +567,32 @@ static boolean opKind(Operator op, int bit) { /** Produce {@code a^b}. Integral only. */ public static final /*bitwise*/ Associative XOR = assoc("XOR", "^", VectorSupport.VECTOR_OP_XOR, VO_NOFP+VO_ASSOC); + /** Produce saturating {@code a+b}. Integral only. + * @see VectorMath#addSaturating(int, int) + */ + public static final Binary SADD = binary("SADD", "+", VectorSupport.VECTOR_OP_SADD, VO_NOFP); + /** Produce saturating unsigned {@code a+b}. Integral only. + * @see VectorMath#addSaturatingUnsigned(int, int) + */ + public static final Binary SUADD = binary("SUADD", "+", VectorSupport.VECTOR_OP_SUADD, VO_NOFP); + /** Produce saturating {@code a-b}. Integral only. + * @see VectorMath#subSaturating(int, int) + */ + public static final Binary SSUB = binary("SSUB", "-", VectorSupport.VECTOR_OP_SSUB, VO_NOFP); + /** Produce saturating unsigned {@code a-b}. Integral only. + * @see VectorMath#subSaturatingUnsigned(int, int) + */ + public static final Binary SUSUB = binary("SUSUB", "-", VectorSupport.VECTOR_OP_SUSUB, VO_NOFP); + /** Produce unsigned {@code min(a,b)}. Integral only. + * @see VectorMath#minUnsigned(int, int) (int, int) + */ + public static final Associative UMIN = assoc("UMIN", "umin", VectorSupport.VECTOR_OP_UMIN, VO_NOFP+VO_ASSOC); + /** Produce unsigned {@code max(a,b)}. Integral only. + * @see VectorMath#maxUnsigned(int, int) (int, int) + */ + public static final Associative UMAX = assoc("UMAX", "umax", VectorSupport.VECTOR_OP_UMAX, VO_NOFP+VO_ASSOC); + + /** Produce {@code a<<(n&(ESIZE*8-1))}. Integral only. */ public static final /*bitwise*/ Binary LSHL = binary("LSHL", "<<", VectorSupport.VECTOR_OP_LSHIFT, VO_SHIFT); /** Produce {@code a>>(n&(ESIZE*8-1))}. Integral only. */ @@ -636,22 +662,22 @@ static boolean opKind(Operator op, int bit) { * @see java.lang.Integer#compareUnsigned * @see java.lang.Long#compareUnsigned */ - public static final Comparison UNSIGNED_LT = compare("UNSIGNED_LT", "<", VectorSupport.BT_ult, VO_NOFP); + public static final Comparison ULT = compare("ULT", "<", VectorSupport.BT_ult, VO_NOFP); /** Unsigned compare {@code a<=b}. Integral only. * @see java.lang.Integer#compareUnsigned * @see java.lang.Long#compareUnsigned */ - public static final Comparison UNSIGNED_LE = compare("UNSIGNED_LE", "<=", VectorSupport.BT_ule, VO_NOFP); + public static final Comparison ULE = compare("ULE", "<=", VectorSupport.BT_ule, VO_NOFP); /** Unsigned compare {@code a>b}. Integral only. * @see java.lang.Integer#compareUnsigned * @see java.lang.Long#compareUnsigned */ - public static final Comparison UNSIGNED_GT = compare("UNSIGNED_GT", ">", VectorSupport.BT_ugt, VO_NOFP); + public static final Comparison UGT = compare("UGT", ">", VectorSupport.BT_ugt, VO_NOFP); /** Unsigned compare {@code a>=b}. Integral only. * @see java.lang.Integer#compareUnsigned * @see java.lang.Long#compareUnsigned */ - public static final Comparison UNSIGNED_GE = compare("UNSIGNED_GE", ">=", VectorSupport.BT_uge, VO_NOFP); + public static final Comparison UGE = compare("UGE", ">=", VectorSupport.BT_uge, VO_NOFP); // Conversion operators diff --git a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/X-Vector.java.template b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/X-Vector.java.template index b9a48005ccf..b5f3a4b7d87 100644 --- a/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/X-Vector.java.template +++ b/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/X-Vector.java.template @@ -980,6 +980,18 @@ public abstract class $abstractvectortype$ extends AbstractVector<$Boxtype$> { v0.bOp(v1, vm, (i, a, n) -> rotateLeft(a, (int)n)); case VECTOR_OP_RROTATE: return (v0, v1, vm) -> v0.bOp(v1, vm, (i, a, n) -> rotateRight(a, (int)n)); + case VECTOR_OP_UMAX: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> ($type$)VectorMath.maxUnsigned(a, b)); + case VECTOR_OP_UMIN: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> ($type$)VectorMath.minUnsigned(a, b)); + case VECTOR_OP_SADD: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> ($type$)(VectorMath.addSaturating(a, b))); + case VECTOR_OP_SSUB: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> ($type$)(VectorMath.subSaturating(a, b))); + case VECTOR_OP_SUADD: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> ($type$)(VectorMath.addSaturatingUnsigned(a, b))); + case VECTOR_OP_SUSUB: return (v0, v1, vm) -> + v0.bOp(v1, vm, (i, a, b) -> ($type$)(VectorMath.subSaturatingUnsigned(a, b))); #if[intOrLong] case VECTOR_OP_COMPRESS_BITS: return (v0, v1, vm) -> v0.bOp(v1, vm, (i, a, n) -> $Boxtype$.compress(a, n)); diff --git a/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/DirectHotSpotObjectConstantImpl.java b/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/DirectHotSpotObjectConstantImpl.java index cc553a39f89..8385aaa6560 100644 --- a/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/DirectHotSpotObjectConstantImpl.java +++ b/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/DirectHotSpotObjectConstantImpl.java @@ -51,13 +51,17 @@ private DirectHotSpotObjectConstantImpl(Object object, boolean compressed) { @Override public JavaConstant compress() { - assert !compressed; + if (compressed) { + throw new IllegalArgumentException("already compressed: " + this); + } return new DirectHotSpotObjectConstantImpl(object, true); } @Override public JavaConstant uncompress() { - assert compressed; + if (!compressed) { + throw new IllegalArgumentException("not compressed: " + this); + } return new DirectHotSpotObjectConstantImpl(object, false); } diff --git a/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotCompressedNullConstant.java b/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotCompressedNullConstant.java index 7c6d94bba99..0becdf29976 100644 --- a/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotCompressedNullConstant.java +++ b/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotCompressedNullConstant.java @@ -51,9 +51,14 @@ public boolean isCompressed() { return true; } + @Override + public boolean isCompressible() { + return false; + } + @Override public Constant compress() { - throw new IllegalArgumentException(); + throw new IllegalArgumentException("not compressible"); } @Override diff --git a/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotConstant.java b/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotConstant.java index ee4cb7bb397..e0ae6b4c881 100644 --- a/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotConstant.java +++ b/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotConstant.java @@ -25,13 +25,34 @@ import jdk.vm.ci.meta.Constant; /** - * Marker interface for hotspot specific constants. + * A value in a space managed by Hotspot (e.g. heap or metaspace). + * Some of these values can be referenced with a compressed pointer + * instead of a full word-sized pointer. */ public interface HotSpotConstant extends Constant { + /** + * Determines if this constant is compressed. + */ boolean isCompressed(); + /** + * Determines if this constant is compressible. + */ + boolean isCompressible(); + + /** + * Gets a compressed version of this uncompressed constant. + * + * @throws IllegalArgumentException if this constant is not compressible + */ Constant compress(); + /** + * Gets an uncompressed version of this compressed constant. + * + * @throws IllegalArgumentException if this is an uncompressed constant + * or this constant is not compressible + */ Constant uncompress(); } diff --git a/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotMetaspaceConstantImpl.java b/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotMetaspaceConstantImpl.java index b819eaf7484..358441d0b22 100644 --- a/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotMetaspaceConstantImpl.java +++ b/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotMetaspaceConstantImpl.java @@ -43,6 +43,9 @@ static MetaspaceObject getMetaspaceObject(Constant constant) { private HotSpotMetaspaceConstantImpl(MetaspaceObject metaspaceObject, boolean compressed) { this.metaspaceObject = metaspaceObject; this.compressed = compressed; + if (compressed && !canBeStoredInCompressibleMetaSpace()) { + throw new IllegalArgumentException("constant cannot be compressed: " + metaspaceObject); + } } @Override @@ -83,9 +86,28 @@ public boolean isCompressed() { return compressed; } + @Override + public boolean isCompressible() { + if (compressed) { + return false; + } + return canBeStoredInCompressibleMetaSpace(); + } + + private boolean canBeStoredInCompressibleMetaSpace() { + if (metaspaceObject instanceof HotSpotResolvedJavaType t && !t.isArray()) { + // As of JDK-8338526, interface and abstract types are not stored + // in compressible metaspace. + return !t.isInterface() && !t.isAbstract(); + } + return true; + } + @Override public Constant compress() { - assert !isCompressed(); + if (compressed) { + throw new IllegalArgumentException("already compressed: " + this); + } HotSpotMetaspaceConstantImpl res = HotSpotMetaspaceConstantImpl.forMetaspaceObject(metaspaceObject, true); assert res.isCompressed(); return res; @@ -93,7 +115,9 @@ public Constant compress() { @Override public Constant uncompress() { - assert isCompressed(); + if (!compressed) { + throw new IllegalArgumentException("not compressed: " + this); + } HotSpotMetaspaceConstantImpl res = HotSpotMetaspaceConstantImpl.forMetaspaceObject(metaspaceObject, false); assert !res.isCompressed(); return res; diff --git a/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotObjectConstantImpl.java b/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotObjectConstantImpl.java index 443673a8783..e4a77daf0d4 100644 --- a/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotObjectConstantImpl.java +++ b/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/HotSpotObjectConstantImpl.java @@ -52,6 +52,11 @@ public boolean isCompressed() { return compressed; } + @Override + public boolean isCompressible() { + return !compressed; + } + @Override public abstract JavaConstant compress(); diff --git a/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/IndirectHotSpotObjectConstantImpl.java b/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/IndirectHotSpotObjectConstantImpl.java index 33c6fde3b18..fe268e90476 100644 --- a/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/IndirectHotSpotObjectConstantImpl.java +++ b/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/IndirectHotSpotObjectConstantImpl.java @@ -164,13 +164,17 @@ static void clearHandle(long handle) { @Override public JavaConstant compress() { - assert !compressed; + if (compressed) { + throw new IllegalArgumentException("already compressed: " + this); + } return new IndirectHotSpotObjectConstantImpl(this, true); } @Override public JavaConstant uncompress() { - assert compressed; + if (!compressed) { + throw new IllegalArgumentException("not compressed: " + this); + } return new IndirectHotSpotObjectConstantImpl(this, false); } diff --git a/src/jdk.jartool/share/classes/sun/tools/jar/GNUStyleOptions.java b/src/jdk.jartool/share/classes/sun/tools/jar/GNUStyleOptions.java index 6bb06cee9ba..28f6fccdc3a 100644 --- a/src/jdk.jartool/share/classes/sun/tools/jar/GNUStyleOptions.java +++ b/src/jdk.jartool/share/classes/sun/tools/jar/GNUStyleOptions.java @@ -214,6 +214,13 @@ void process(Main jartool, String opt, String arg) throws BadArgs { } }, + // Extract options + new Option(false, OptionType.EXTRACT, "--keep-old-files", "-k") { + void process(Main jartool, String opt, String arg) { + jartool.kflag = true; + } + }, + // Hidden options new Option(false, OptionType.OTHER, "-P") { void process(Main jartool, String opt, String arg) { diff --git a/src/jdk.jartool/share/classes/sun/tools/jar/Main.java b/src/jdk.jartool/share/classes/sun/tools/jar/Main.java index 61cd863218b..d6cc2dbcdde 100644 --- a/src/jdk.jartool/share/classes/sun/tools/jar/Main.java +++ b/src/jdk.jartool/share/classes/sun/tools/jar/Main.java @@ -155,8 +155,9 @@ public int hashCode() { * nflag: Perform jar normalization at the end * pflag: preserve/don't strip leading slash and .. component from file name * dflag: print module descriptor + * kflag: keep existing file */ - boolean cflag, uflag, xflag, tflag, vflag, flag0, Mflag, iflag, pflag, dflag, validate; + boolean cflag, uflag, xflag, tflag, vflag, flag0, Mflag, iflag, pflag, dflag, kflag, validate; boolean suppressDeprecateMsg = false; @@ -594,6 +595,9 @@ boolean parseArgs(String[] args) { case '0': flag0 = true; break; + case 'k': + kflag = true; + break; case 'i': if (cflag || uflag || xflag || tflag) { usageError(getMsg("error.multiple.main.operations")); @@ -624,6 +628,9 @@ boolean parseArgs(String[] args) { usageError(getMsg("error.bad.option")); return false; } + if (kflag && !xflag) { + warn(formatMsg("warn.option.is.ignored", "--keep-old-files/-k/k")); + } /* parse file arguments */ int n = args.length - count; @@ -1493,6 +1500,12 @@ ZipEntry extractFile(InputStream is, ZipEntry e) throws IOException { output(formatMsg("out.create", name)); } } else { + if (f.exists() && kflag) { + if (vflag) { + output(formatMsg("out.kept", name)); + } + return rc; + } if (f.getParent() != null) { File d = new File(f.getParent()); if (!d.exists() && !d.mkdirs() || !d.isDirectory()) { diff --git a/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar.properties b/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar.properties index 7d7ec89c899..c7b34abb340 100644 --- a/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar.properties +++ b/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar.properties @@ -147,6 +147,8 @@ warn.index.is.ignored=\ The JAR index (META-INF/INDEX.LIST) is ignored at run-time since JDK 18 warn.flag.is.deprecated=\ Warning: The {0} option is deprecated, and may be ignored or removed in a future release\n +warn.option.is.ignored=\ + Warning: The {0} option is not valid with current usage, will be ignored. out.added.manifest=\ added manifest out.added.module-info=\ @@ -169,6 +171,8 @@ out.create=\ \ \ created: {0} out.extracted=\ extracted: {0} +out.kept=\ + \ \ skipped: {0} exists out.inflated=\ \ inflated: {0} out.size=\ @@ -252,7 +256,10 @@ main.help.opt.main.list=\ main.help.opt.main.update=\ \ -u, --update Update an existing jar archive main.help.opt.main.extract=\ -\ -x, --extract Extract named (or all) files from the archive +\ -x, --extract Extract named (or all) files from the archive.\n\ +\ If a file with the same name appears more than once in\n\ +\ the archive, each copy will be extracted, with later copies\n\ +\ overwriting (replacing) earlier copies unless -k is specified. main.help.opt.main.describe-module=\ \ -d, --describe-module Print the module descriptor, or automatic module name main.help.opt.main.validate=\ @@ -315,6 +322,15 @@ main.help.opt.create.update.index.date=\ \ --date=TIMESTAMP The timestamp in ISO-8601 extended offset date-time with\n\ \ optional time-zone format, to use for the timestamps of\n\ \ entries, e.g. "2022-02-12T12:30:00-05:00" +main.help.opt.extract=\ +\ Operation modifiers valid only in extract mode:\n +main.help.opt.extract.keep-old-files=\ +\ -k, --keep-old-files Do not overwrite existing files.\n\ +\ If a Jar file entry with the same name exists in the target\n\ +\ directory, the existing file will not be overwritten.\n\ +\ As a result, if a file appears more than once in an\n\ +\ archive, later copies will not overwrite earlier copies.\n\ +\ Also note that some file system can be case insensitive. main.help.opt.other=\ \ Other options:\n main.help.opt.other.help=\ diff --git a/src/jdk.jartool/share/man/jar.1 b/src/jdk.jartool/share/man/jar.1 index 865925cd075..a88653753ee 100644 --- a/src/jdk.jartool/share/man/jar.1 +++ b/src/jdk.jartool/share/man/jar.1 @@ -118,6 +118,9 @@ Updates an existing JAR file. .TP \f[V]-x\f[R] or \f[V]--extract\f[R] Extracts the named (or all) files from the archive. +If a file with the same name appears more than once in the archive, each +copy will be extracted, with later copies overwriting (replacing) +earlier copies unless -k is specified. .TP \f[V]-d\f[R] or \f[V]--describe-module\f[R] Prints the module descriptor or automatic module name. @@ -212,6 +215,14 @@ time-zone format, to use for the timestamp of the entries, e.g. .TP \f[V]--dir\f[R] \f[I]DIR\f[R] Directory into which the JAR file will be extracted. +.TP +\f[V]-k\f[R] or \f[V]--keep-old-files\f[R] +Do not overwrite existing files. +If a Jar file entry with the same name exists in the target directory, +the existing file will not be overwritten. +As a result, if a file appears more than once in an archive, later +copies will not overwrite earlier copies. +Also note that some file system can be case insensitive. .SH OTHER OPTIONS .PP The following options are recognized by the \f[V]jar\f[R] command and diff --git a/src/jdk.jcmd/share/man/jcmd.1 b/src/jdk.jcmd/share/man/jcmd.1 index a639dab16e1..495b629089d 100644 --- a/src/jdk.jcmd/share/man/jcmd.1 +++ b/src/jdk.jcmd/share/man/jcmd.1 @@ -65,13 +65,6 @@ selected JVM. The list of available commands for \f[V]jcmd\f[R] is obtained by running the \f[V]help\f[R] command (\f[V]jcmd\f[R] \f[I]pid\f[R] \f[V]help\f[R]) where \f[I]pid\f[R] is the process ID for the running Java process. -If the \f[I]pid\f[R] is \f[V]0\f[R], commands will be sent to all Java -processes. -The main class argument will be used to match, either partially or -fully, the class used to start Java. -If no options are given, it lists the running Java process identifiers -with the main class and command-line arguments that were used to launch -the process (the same as using \f[V]-l\f[R]). .TP \f[V]Perfcounter.print\f[R] Prints the performance counters exposed by the specified Java process. @@ -102,9 +95,10 @@ to the JVM. It must be used on the same machine on which the JVM is running, and have the same effective user and group identifiers that were used to launch the JVM. -Each diagnostic command has its own set of arguments. -To display the description, syntax, and a list of available arguments -for a diagnostic command, use the name of the command as the argument. +Each diagnostic command has its own set of options and arguments. +To display the description, syntax, and a list of available options and +arguments for a diagnostic command, use the name of the command as the +argument. For example: .RS .PP @@ -143,6 +137,11 @@ that are not in separate docker processes along with the main class and command-line arguments that were used to launch the process (the same as using \f[V]-l\f[R]). .PP +\f[V]jcmd\f[R] \f[I]commands\f[R] may take options and arguments. +\f[I]Options\f[R] are specified using either \f[I]key\f[R] or +\f[I]key\f[R]\f[V]=\f[R]\f[I]value\f[R] syntax. +\f[I]Arguments\f[R] are given as just a value, never name=value. +.PP The following commands are available: .TP \f[V]help\f[R] [\f[I]options\f[R]] [\f[I]arguments\f[R]] @@ -254,13 +253,9 @@ Impact: Low .PP \f[I]arguments\f[R]: .IP \[bu] 2 -\f[I]filename\f[R]: (Optional) The name of the map file (STRING, -/tmp/perf-.map) -.PP -If \f[V]filename\f[R] is not specified, a default file name is chosen -using the pid of the target JVM process. -For example, if the pid is \f[V]12345\f[R], then the default -\f[V]filename\f[R] will be \f[V]/tmp/perf-12345.map\f[R]. +\f[I]filename\f[R]: (Optional) The name of the map file. +If %p is specified in the filename, it is expanded to the JVM\[aq]s PID. +(FILE, \[dq]/tmp/perf-%p.map\[dq]) .RE .TP \f[V]Compiler.queue\f[R] @@ -302,7 +297,7 @@ Provides information about the Java finalization queue. Impact: Medium .RE .TP -\f[V]GC.heap_dump\f[R] [\f[I]options\f[R]] [\f[I]arguments\f[R]] +\f[V]GC.heap_dump\f[R] [\f[I]options\f[R]] \f[I]filename\f[R] Generates a HPROF format dump of the Java heap. .RS .PP @@ -335,7 +330,9 @@ fewer. .PP \f[I]arguments\f[R]: .IP \[bu] 2 -\f[I]filename\f[R]: The name of the dump file (STRING, no default value) +\f[I]filename\f[R]: The name of the dump file. +If %p is specified in the filename, it is expanded to the JVM\[aq]s PID. +(FILE, no default value) .RE .TP \f[V]GC.heap_info\f[R] @@ -511,7 +508,7 @@ The filename may also be a directory in which case, the filename is generated from the PID and the current date in the specified directory. If %p and/or %t is specified in the filename, it expands to the JVM\[aq]s PID and the current timestamp, respectively. -(STRING, no default value) +(FILE, no default value) .IP \[bu] 2 \f[V]maxage\f[R]: (Optional) Length of time for dumping the flight recording data to a file. @@ -581,7 +578,7 @@ The filename may also be a directory in which case, the filename is generated from the PID and the current date in the specified directory. If %p and/or %t is specified in the filename, it expands to the JVM\[aq]s PID and the current timestamp, respectively. -(STRING, no default value) +(FILE, no default value) .IP \[bu] 2 \f[V]maxage\f[R]: (Optional) Maximum time to keep the recorded data on disk. @@ -675,7 +672,7 @@ is written when the recording is stopped. If %p and/or %t is specified in the filename, it expands to the JVM\[aq]s PID and the current timestamp, respectively. If no path is provided, the data from the recording is discarded. -(STRING, no default value) +(FILE, no default value) .IP \[bu] 2 \f[V]name\f[R]: (Optional) Name of the recording (STRING, no default value) @@ -877,8 +874,9 @@ The following \f[I]options\f[R] must be specified using either .IP \[bu] 2 \f[V]-H\f[R]: (Optional) Human readable format (BOOLEAN, false) .IP \[bu] 2 -\f[V]-F\f[R]: (Optional) File path (STRING, -\[dq]vm_memory_map_.txt\[dq]) +\f[V]-F\f[R]: (Optional) File path. +If %p is specified in the filename, it is expanded to the JVM\[aq]s PID. +(FILE, \[dq]vm_memory_map_%p.txt\[dq]) .RE .TP \f[V]System.map\f[R] [\f[I]options\f[R]] (Linux only) @@ -934,8 +932,9 @@ false) .PP \f[I]arguments\f[R]: .IP \[bu] 2 -\f[I]filepath\f[R]: The file path to the output file (STRING, no default -value) +\f[I]filepath\f[R]: The file path to the output file. +If %p is specified in the filename, it is expanded to the JVM\[aq]s PID. +(FILE, no default value) .RE .TP \f[V]Thread.print\f[R] [\f[I]options\f[R]] @@ -970,16 +969,9 @@ Impact: Medium --- pause time depends on number of loaded classes \f[I]subcmd\f[R]: must be either \f[V]static_dump\f[R] or \f[V]dynamic_dump\f[R] (STRING, no default value) .IP \[bu] 2 -\f[I]filename\f[R]: (Optional) Name of the shared archive to be dumped -(STRING, java_pid_.jsa) -.PP -If \f[V]filename\f[R] is not specified, a default file name is chosen -using the pid of the target JVM process. -For example, java_pid1234_static.jsa, java_pid5678_dynamic.jsa, etc. -.PP -If \f[V]filename\f[R] is not specified as an absolute path, the archive -file is created in a directory relative to the current directory of the -target JVM process. +\f[I]filename\f[R]: (Optional) Name of the shared archive to be dumped. +If %p is specified in the filename, it is expanded to the JVM\[aq]s PID. +(FILE, \[dq]java_pid%p_.jsa\[dq]) .PP If \f[V]dynamic_dump\f[R] is specified, the target JVM must be started with the JVM option \f[V]-XX:+RecordDynamicDumpInfo\f[R]. diff --git a/src/jdk.jdeps/share/classes/com/sun/tools/javap/ClassWriter.java b/src/jdk.jdeps/share/classes/com/sun/tools/javap/ClassWriter.java index 77fbce8839e..92a0c06c1c3 100644 --- a/src/jdk.jdeps/share/classes/com/sun/tools/javap/ClassWriter.java +++ b/src/jdk.jdeps/share/classes/com/sun/tools/javap/ClassWriter.java @@ -576,9 +576,7 @@ protected void writeMethod(MethodModel m) { attrWriter.write(m.attributes()); } else if (code != null) { if (options.showDisassembled) { - println("Code:"); - codeWriter.writeInstrs(code); - codeWriter.writeExceptionTable(code); + codeWriter.writeMinimal(code); } if (options.showLineAndLocalVariableTables) { diff --git a/src/jdk.jdeps/share/classes/com/sun/tools/javap/CodeWriter.java b/src/jdk.jdeps/share/classes/com/sun/tools/javap/CodeWriter.java index 8f6b9b1d2ed..cb401c9f197 100644 --- a/src/jdk.jdeps/share/classes/com/sun/tools/javap/CodeWriter.java +++ b/src/jdk.jdeps/share/classes/com/sun/tools/javap/CodeWriter.java @@ -70,13 +70,11 @@ protected CodeWriter(Context context) { } void write(CodeAttribute attr) { - println("Code:"); - indent(+1); - writeVerboseHeader(attr); - writeInstrs(attr); - writeExceptionTable(attr); - attrWriter.write(attr.attributes(), attr); - indent(-1); + writeInternal(attr, false); + } + + void writeMinimal(CodeAttribute attr) { + writeInternal(attr, true); } public void writeVerboseHeader(CodeAttribute attr) { @@ -259,6 +257,20 @@ private List getDetailWriters(CodeAttribute attr) { return detailWriters; } + private void writeInternal(CodeAttribute attr, boolean minimal) { + println("Code:"); + indent(+1); + if (!minimal) { + writeVerboseHeader(attr); + } + writeInstrs(attr); + writeExceptionTable(attr); + if (!minimal) { + attrWriter.write(attr.attributes(), attr); + } + indent(-1); + } + private AttributeWriter attrWriter; private ClassWriter classWriter; private ConstantWriter constantWriter; diff --git a/src/jdk.jdi/share/classes/com/sun/jdi/ArrayReference.java b/src/jdk.jdi/share/classes/com/sun/jdi/ArrayReference.java index 11b5bdbcf70..7f445f7c05a 100644 --- a/src/jdk.jdi/share/classes/com/sun/jdi/ArrayReference.java +++ b/src/jdk.jdi/share/classes/com/sun/jdi/ArrayReference.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -108,8 +108,8 @@ public interface ArrayReference extends ObjectReference { * See JLS section 5.2 for more information on assignment * compatibility. * - * @param value the new value * @param index the index of the component to set + * @param value the new value * @throws java.lang.IndexOutOfBoundsException if * index is outside the range of this array, * that is, if either of the following are true: diff --git a/src/jdk.jdi/share/classes/com/sun/jdi/request/EventRequestManager.java b/src/jdk.jdi/share/classes/com/sun/jdi/request/EventRequestManager.java index 2ffa7008ee4..3bd363af56e 100644 --- a/src/jdk.jdi/share/classes/com/sun/jdi/request/EventRequestManager.java +++ b/src/jdk.jdi/share/classes/com/sun/jdi/request/EventRequestManager.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -261,8 +261,8 @@ ExceptionRequest createExceptionRequest(ReferenceType refType, * } * * @param thread the thread in which to step - * @param depth the step depth * @param size the step size + * @param depth the step depth * @return the created {@link StepRequest} * @throws DuplicateRequestException if there is already a pending * step request for the specified thread. diff --git a/src/jdk.jfr/share/classes/jdk/jfr/internal/Type.java b/src/jdk.jfr/share/classes/jdk/jfr/internal/Type.java index 0306541b4f7..7ede3de9d15 100644 --- a/src/jdk.jfr/share/classes/jdk/jfr/internal/Type.java +++ b/src/jdk.jfr/share/classes/jdk/jfr/internal/Type.java @@ -38,6 +38,7 @@ import jdk.jfr.Event; import jdk.jfr.SettingControl; import jdk.jfr.ValueDescriptor; +import jdk.jfr.internal.util.Utils; /** * Internal data structure that describes a type, @@ -185,14 +186,9 @@ public ValueDescriptor getField(String name) { Type type = PrivateAccess.getInstance().getType(subField); return type.getField(post); } - } else { - for (ValueDescriptor v : getFields()) { - if (name.equals(v.getName())) { - return v; - } - } + return null; } - return null; + return Utils.findField(getFields(), name); } public List getFields() { diff --git a/src/jdk.jfr/share/classes/jdk/jfr/internal/query/FieldBuilder.java b/src/jdk.jfr/share/classes/jdk/jfr/internal/query/FieldBuilder.java index d91fa62b368..c6916bc52ef 100644 --- a/src/jdk.jfr/share/classes/jdk/jfr/internal/query/FieldBuilder.java +++ b/src/jdk.jfr/share/classes/jdk/jfr/internal/query/FieldBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2023, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -49,6 +49,9 @@ import jdk.jfr.consumer.RecordedEvent; import jdk.jfr.consumer.RecordedFrame; import jdk.jfr.consumer.RecordedStackTrace; +import jdk.jfr.internal.PrivateAccess; +import jdk.jfr.internal.Type; +import jdk.jfr.internal.util.Utils; /** * This is a helper class to QueryResolver. It handles the creation of fields @@ -60,9 +63,9 @@ final class FieldBuilder { private static final Set KNOWN_TYPES = createKnownTypes(); private final List eventTypes; - private final ValueDescriptor descriptor; private final Field field; private final String fieldName; + private ValueDescriptor descriptor; public FieldBuilder(List eventTypes, FilteredType type, String fieldName) { this.eventTypes = eventTypes; @@ -77,12 +80,15 @@ public List build() { return List.of(field); } + configureAliases(); if (descriptor != null) { field.fixedWidth = !descriptor.getTypeName().equals("java.lang.String"); field.dataType = descriptor.getTypeName(); field.label = makeLabel(descriptor, hasDuration()); field.alignLeft = true; - field.valueGetter = valueGetter(field.name); + if (field.valueGetter == null) { + field.valueGetter = valueGetter(field.name); + } configureNumericTypes(); configureTime(); @@ -113,22 +119,6 @@ private boolean hasDuration() { } private boolean configureSyntheticFields() { - if (fieldName.equals("stackTrace.topApplicationFrame")) { - configureTopApplicationFrameField(); - return true; - } - if (fieldName.equals("stackTrace.notInit")) { - configureNotInitFrameField(); - return true; - } - if (fieldName.equals("stackTrace.topFrame.class")) { - configureTopFrameClassField(); - return true; - } - if (fieldName.equals("stackTrace.topFrame")) { - configureTopFrameField(); - return true; - } if (fieldName.equals("id") && field.type.getName().equals("jdk.ActiveSetting")) { configureEventTypeIdField(); return true; @@ -144,6 +134,73 @@ private boolean configureSyntheticFields() { return false; } + private void configureAliases() { + configureFrame("topFrame", FieldBuilder::topFrame); + configureFrame("topApplicationFrame", FieldBuilder::topApplicationFrame); + configureFrame("topNotInitFrame", FieldBuilder::topNotInitFrame); + } + + private void configureFrame(String frameName, Function getter) { + String name = "stackTrace." + frameName; + if (!fieldName.startsWith(name)) { + return; + } + ValueDescriptor stackTrace = Utils.findField(field.type.getFields(), "stackTrace"); + if (stackTrace == null) { + return; + } + ValueDescriptor frames = Utils.findField(stackTrace.getFields(), "frames"); + if (frames == null) { + return; + } + int length = name.length(); + if (fieldName.length() == length) { + descriptor = frames; // Use array descriptor for now + field.valueGetter = getter; + return; + } + String subName = fieldName.substring(length + 1); + Type type = PrivateAccess.getInstance().getType(frames); + ValueDescriptor subField = type.getField(subName); + if (subField != null) { + descriptor = subField; + field.valueGetter = e -> { + if (getter.apply(e) instanceof RecordedFrame frame) { + return frame.getValue(subName); + } + return null; + }; + } + } + + private static RecordedFrame topFrame(RecordedEvent event) { + return findJavaFrame(event, x -> true); + } + + private static RecordedFrame topApplicationFrame(RecordedEvent event) { + return findJavaFrame(event, frame -> { + RecordedClass cl = frame.getMethod().getType(); + RecordedClassLoader classLoader = cl.getClassLoader(); + return classLoader != null && !"bootstrap".equals(classLoader.getName()); + }); + } + + private static Object topNotInitFrame(RecordedEvent event) { + return findJavaFrame(event, frame -> !frame.getMethod().getName().equals("")); + } + + private static RecordedFrame findJavaFrame(RecordedEvent event, Predicate condition) { + RecordedStackTrace st = event.getStackTrace(); + if (st != null) { + for (RecordedFrame frame : st.getFrames()) { + if (frame.isJavaFrame() && condition.test(frame)) { + return frame; + } + } + } + return null; + } + private void configureEventTypeIdField() { Map eventTypes = createEventTypeLookup(); field.alignLeft = true; @@ -166,65 +223,6 @@ private Map createEventTypeLookup() { return map; } - private void configureTopFrameField() { - field.alignLeft = true; - field.label = "Method"; - field.dataType = "jdk.types.Method"; - field.valueGetter = e -> { - RecordedStackTrace t = e.getStackTrace(); - return t != null ? t.getFrames().getFirst() : null; - }; - field.lexicalSort = true; - } - - private void configureTopFrameClassField() { - field.alignLeft = true; - field.label = "Class"; - field.dataType = "java.lang.Class"; - field.valueGetter = e -> { - RecordedStackTrace t = e.getStackTrace(); - if (t == null) { - return null; - } - return t.getFrames().getFirst().getMethod().getType(); - }; - field.lexicalSort = true; - } - - private void configureCustomFrame(Predicate condition) { - field.alignLeft = true; - field.dataType = "jdk.types.Frame"; - field.label = "Method"; - field.lexicalSort = true; - field.valueGetter = e -> { - RecordedStackTrace t = e.getStackTrace(); - if (t != null) { - for (RecordedFrame f : t.getFrames()) { - if (f.isJavaFrame()) { - if (condition.test(f)) { - return f; - } - } - } - } - return null; - }; - } - - private void configureNotInitFrameField() { - configureCustomFrame(frame -> { - return !frame.getMethod().getName().equals(""); - }); - } - - private void configureTopApplicationFrameField() { - configureCustomFrame(frame -> { - RecordedClass cl = frame.getMethod().getType(); - RecordedClassLoader classLoader = cl.getClassLoader(); - return classLoader != null && !"bootstrap".equals(classLoader.getName()); - }); - } - private void configureEventType(Function retriever) { field.alignLeft = true; field.dataType = String.class.getName(); @@ -234,6 +232,9 @@ private void configureEventType(Function retriever) { } private static String makeLabel(ValueDescriptor v, boolean hasDuration) { + if (v.getTypeName().equals("jdk.types.StackFrame")) { + return "Method"; + } String label = v.getLabel(); if (label == null) { return v.getName(); diff --git a/src/jdk.jfr/share/classes/jdk/jfr/internal/query/view.ini b/src/jdk.jfr/share/classes/jdk/jfr/internal/query/view.ini index 8db19fdc239..b21b99e2dad 100644 --- a/src/jdk.jfr/share/classes/jdk/jfr/internal/query/view.ini +++ b/src/jdk.jfr/share/classes/jdk/jfr/internal/query/view.ini @@ -186,7 +186,7 @@ table = "COLUMN 'Monitor Address', 'Class', 'Threads', 'Max Duration' label = "Deprecated Methods for Removal" table = "COLUMN 'Deprecated Method', 'Called from Class' FORMAT truncate-beginning, cell-height:10000;truncate-beginning - SELECT method AS m, SET(stackTrace.topFrame.class) + SELECT method AS m, SET(stackTrace.topFrame.method.type) FROM DeprecatedInvocation WHERE forRemoval = 'true' GROUP BY m @@ -266,7 +266,7 @@ table = "COLUMN 'Message', 'Count' [application.exception-by-site] label ="Exceptions by Site" table = "COLUMN 'Method', 'Count' - SELECT stackTrace.notInit AS S, COUNT(startTime) AS C + SELECT stackTrace.topNotInitFrame AS S, COUNT(startTime) AS C FROM JavaErrorThrow, JavaExceptionThrow GROUP BY S ORDER BY C DESC" [application.file-reads-by-path] diff --git a/src/jdk.jfr/share/classes/jdk/jfr/internal/util/Utils.java b/src/jdk.jfr/share/classes/jdk/jfr/internal/util/Utils.java index b5ae906c71c..c15e87709c5 100644 --- a/src/jdk.jfr/share/classes/jdk/jfr/internal/util/Utils.java +++ b/src/jdk.jfr/share/classes/jdk/jfr/internal/util/Utils.java @@ -48,6 +48,7 @@ import jdk.jfr.Event; import jdk.jfr.EventType; import jdk.jfr.RecordingState; +import jdk.jfr.ValueDescriptor; import jdk.jfr.internal.LogLevel; import jdk.jfr.internal.LogTag; import jdk.jfr.internal.Logger; @@ -438,4 +439,13 @@ public static long multiplyOverflow(long a, long b, long defaultValue) { return defaultValue; } } + + public static ValueDescriptor findField(List fields, String name) { + for (ValueDescriptor v : fields) { + if (v.getName().equals(name)) { + return v; + } + } + return null; + } } diff --git a/src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacAppBundler.java b/src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacAppBundler.java index 06796db9884..ff772ce74b0 100644 --- a/src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacAppBundler.java +++ b/src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacAppBundler.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -25,7 +25,6 @@ package jdk.jpackage.internal; -import java.io.IOException; import java.text.MessageFormat; import java.util.Map; import java.util.Optional; @@ -148,20 +147,6 @@ private static void doValidate(Map params) // No need to validate --mac-app-image-sign-identity, since it is // pass through option. - - // Signing will not work without Xcode with command line developer tools - try { - ProcessBuilder pb = new ProcessBuilder("/usr/bin/xcrun", "--help"); - Process p = pb.start(); - int code = p.waitFor(); - if (code != 0) { - throw new ConfigException( - I18N.getString("error.no.xcode.signing"), - I18N.getString("error.no.xcode.signing.advice")); - } - } catch (IOException | InterruptedException ex) { - throw new ConfigException(ex); - } } } } diff --git a/src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacAppImageBuilder.java b/src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacAppImageBuilder.java index 472e58cd1a2..4b2920391a6 100644 --- a/src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacAppImageBuilder.java +++ b/src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacAppImageBuilder.java @@ -57,7 +57,6 @@ import static jdk.jpackage.internal.MacAppBundler.DEVELOPER_ID_APP_SIGNING_KEY; import static jdk.jpackage.internal.MacAppBundler.APP_IMAGE_SIGN_IDENTITY; import static jdk.jpackage.internal.MacBaseInstallerBundler.SIGNING_KEYCHAIN; -import static jdk.jpackage.internal.MacBaseInstallerBundler.SIGNING_KEY_USER; import static jdk.jpackage.internal.MacBaseInstallerBundler.INSTALLER_SIGN_IDENTITY; import static jdk.jpackage.internal.OverridableResource.createResource; import static jdk.jpackage.internal.StandardBundlerParam.APP_NAME; @@ -76,8 +75,6 @@ import static jdk.jpackage.internal.StandardBundlerParam.SIGN_BUNDLE; import static jdk.jpackage.internal.StandardBundlerParam.APP_STORE; import static jdk.jpackage.internal.StandardBundlerParam.APP_CONTENT; -import static jdk.jpackage.internal.StandardBundlerParam.getPredefinedAppImage; -import static jdk.jpackage.internal.StandardBundlerParam.hasPredefinedAppImage; public class MacAppImageBuilder extends AbstractAppImageBuilder { @@ -754,6 +751,14 @@ private static void runCodesign( "message.codesign.failed.reason.app.content")); } + // Signing might not work without Xcode with command line + // developer tools. Show user if Xcode is missing as possible + // reason. + if (!isXcodeDevToolsInstalled()) { + Log.info(I18N.getString( + "message.codesign.failed.reason.xcode.tools")); + } + // Log "codesign" output Log.info(MessageFormat.format(I18N.getString( "error.tool.failed.with.output"), "codesign")); @@ -764,6 +769,16 @@ private static void runCodesign( } } + private static boolean isXcodeDevToolsInstalled() { + try { + Executor.of("/usr/bin/xcrun", "--help").executeExpectSuccess(); + } catch (IOException e) { + return false; + } + + return true; + } + static void signAppBundle( Map params, Path appLocation, String signingIdentity, String identifierPrefix, Path entitlements) diff --git a/src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/resources/MacResources.properties b/src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/resources/MacResources.properties index 04a454b03d5..e0a555b3698 100644 --- a/src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/resources/MacResources.properties +++ b/src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/resources/MacResources.properties @@ -39,8 +39,6 @@ error.no-app-signing-key.advice=Install your app signing keys into your Mac Keyc error.no-pkg-signing-key=No Mac App Store Installer Signing Key error.no-pkg-signing-key.advice=Install your app signing keys into your Mac Keychain using XCode. error.certificate.expired=Error: Certificate expired {0} -error.no.xcode.signing=Xcode with command line developer tools is required for signing -error.no.xcode.signing.advice=Install Xcode with command line developer tools. error.cert.not.found=No certificate found matching [{0}] using keychain [{1}] error.multiple.certs.found=WARNING: Multiple certificates found matching [{0}] using keychain [{1}], using first one error.app-image.mac-sign.required=Error: --mac-sign option is required with predefined application image and with type [app-image] @@ -95,5 +93,6 @@ message.signing.pkg=Warning: For signing PKG, you might need to set "Always Trus message.setfile.dmg=Setting custom icon on DMG file skipped because 'SetFile' utility was not found. Installing Xcode with Command Line Tools should resolve this issue. message.install-dir-ignored=Warning: "--install-dir" is not supported by DMG and will be default to /Applications. message.codesign.failed.reason.app.content="codesign" failed and additional application content was supplied via the "--app-content" parameter. Probably the additional content broke the integrity of the application bundle and caused the failure. Ensure content supplied via the "--app-content" parameter does not break the integrity of the application bundle, or add it in the post-processing step. +message.codesign.failed.reason.xcode.tools=Possible reason for "codesign" failure is missing Xcode with command line developer tools. Install Xcode with command line developer tools to see if it resolves the problem. warning.unsigned.app.image=Warning: Using unsigned app-image to build signed {0}. warning.per.user.app.image.signed=Warning: Support for per-user configuration of the installed application will not be supported due to missing "{0}" in predefined signed application image. diff --git a/src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/resources/MacResources_de.properties b/src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/resources/MacResources_de.properties index 0d2cfb5b6c0..c0aece573e0 100644 --- a/src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/resources/MacResources_de.properties +++ b/src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/resources/MacResources_de.properties @@ -39,8 +39,6 @@ error.no-app-signing-key.advice=Installieren Sie Ihre App-Signaturschlüssel mit error.no-pkg-signing-key=Kein Signaturschlüssel für Mac App Store-Installationsprogramm error.no-pkg-signing-key.advice=Installieren Sie Ihre App-Signaturschlüssel mit XCode in Ihrem Mac-Schlüsselbund. error.certificate.expired=Fehler: Zertifikat abgelaufen {0} -error.no.xcode.signing=Für die Signatur ist Xcode mit Befehlszeilen-Entwicklertools erforderlich -error.no.xcode.signing.advice=Installieren Sie Xcode mit Befehlszeilen-Entwicklertools. error.cert.not.found=Kein Zertifikat gefunden, das [{0}] mit Schlüsselbund [{1}] entspricht error.multiple.certs.found=WARNUNG: Mehrere Zertifikate gefunden, die [{0}] mit Schlüsselbund [{1}] entsprechen. Es wird das erste Zertifikat verwendet error.app-image.mac-sign.required=Fehler: Die Option "--mac-sign" ist mit einem vordefinierten Anwendungsimage und Typ [app-image] erforderlich @@ -95,5 +93,6 @@ message.signing.pkg=Warnung: Zum Signieren von PKG müssen Sie möglicherweise m message.setfile.dmg=Das Festlegen des benutzerdefinierten Symbols für die DMG-Datei wurde übersprungen, weil das Utility "SetFile" nicht gefunden wurde. Durch Installieren von Xcode mit Befehlszeilentools sollte dieses Problem behoben werden. message.install-dir-ignored=Warnung: "--install-dir" wird von DMG nicht unterstützt. Stattdessen wird standardmäßig /Applications verwendet. message.codesign.failed.reason.app.content="codesign" war nicht erfolgreich, und zusätzlicher Anwendungsinhalt wurde über den Parameter "--app-content" angegeben. Wahrscheinlich hat der zusätzliche Inhalt die Integrität des Anwendungs-Bundles beeinträchtigt und den Fehler verursacht. Stellen Sie sicher, das der über den Parameter "--app-content" angegebene Inhalt nicht die Integrität des Anwendungs-Bundles beeinträchtigt, oder fügen Sie ihn im Nachverarbeitungsschritt hinzu. +message.codesign.failed.reason.xcode.tools=Possible reason for "codesign" failure is missing Xcode with command line developer tools. Install Xcode with command line developer tools to see if it resolves the problem. warning.unsigned.app.image=Warnung: Nicht signiertes app-image wird zum Erstellen von signiertem {0} verwendet. warning.per.user.app.image.signed=Warnung: Konfiguration der installierten Anwendung pro Benutzer wird nicht unterstützt, da "{0}" im vordefinierten signierten Anwendungsimage fehlt. diff --git a/src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/resources/MacResources_ja.properties b/src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/resources/MacResources_ja.properties index 08e6dd2b4e8..166e7ffb670 100644 --- a/src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/resources/MacResources_ja.properties +++ b/src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/resources/MacResources_ja.properties @@ -39,8 +39,6 @@ error.no-app-signing-key.advice=XCodeを使用してアプリケーションの error.no-pkg-signing-key=Mac App Storeインストーラの署名キーがありません error.no-pkg-signing-key.advice=XCodeを使用してアプリケーションの署名キーをMacキーチェーンにインストールします。 error.certificate.expired=エラー: 証明書は{0}に期限が切れました -error.no.xcode.signing=署名には、Xcodeとコマンドライン・デベロッパ・ツールが必要です -error.no.xcode.signing.advice=Xcodeとコマンドライン・デベロッパ・ツールをインストールしてください。 error.cert.not.found=キーチェーン[{1}]を使用する[{0}]と一致する証明書が見つかりません error.multiple.certs.found=警告: キーチェーン[{1}]を使用する[{0}]と一致する複数の証明書が見つかりました。最初のものを使用します error.app-image.mac-sign.required=エラー: --mac-signオプションは、事前定義済アプリケーション・イメージおよびタイプ[app-image]で必要です @@ -95,5 +93,6 @@ message.signing.pkg=警告: PKGへの署名の場合、「キーチェーン・ message.setfile.dmg='SetFile'ユーティリティが見つからないため、DMGファイルでのカスタム・アイコンの設定がスキップされました。Xcodeとコマンド・ライン・ツールをインストールすると、この問題は解決されます。 message.install-dir-ignored=警告: "--install-dir"はDMGでサポートされていません。/Applicationsにデフォルト設定されます。 message.codesign.failed.reason.app.content="codesign"が失敗したため、追加のアプリケーション・コンテンツが、"--app-content"パラメータを介して提供されました。追加のコンテンツにより、アプリケーション・バンドルの整合性が損われ、失敗の原因になった可能性があります。"--app-content"パラメータを介して提供されたコンテンツによって、アプリケーション・バンドルの整合性が損われていないことを確認するか、処理後のステップで追加してください。 +message.codesign.failed.reason.xcode.tools=Possible reason for "codesign" failure is missing Xcode with command line developer tools. Install Xcode with command line developer tools to see if it resolves the problem. warning.unsigned.app.image=警告: 署名されていないapp-imageを使用して署名された{0}を作成します。 warning.per.user.app.image.signed=警告: 事前定義済の署名付きアプリケーション・イメージに"{0}"がないため、インストール済アプリケーションのユーザーごとの構成はサポートされません。 diff --git a/src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/resources/MacResources_zh_CN.properties b/src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/resources/MacResources_zh_CN.properties index f4e75caa1ef..a620e8dacdd 100644 --- a/src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/resources/MacResources_zh_CN.properties +++ b/src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/resources/MacResources_zh_CN.properties @@ -39,8 +39,6 @@ error.no-app-signing-key.advice=使用 XCode 将应用程序签名密钥安装 error.no-pkg-signing-key=无 Mac App Store 安装程序签名密钥 error.no-pkg-signing-key.advice=使用 XCode 将应用程序签名密钥安装到 Mac 密钥链中。 error.certificate.expired=错误: 证书已失效 {0} -error.no.xcode.signing=需要使用带命令行开发人员工具的 Xcode 进行签名 -error.no.xcode.signing.advice=安装带命令行开发人员工具的 Xcode。 error.cert.not.found=使用密钥链 [{1}] 找不到与 [{0}] 匹配的证书 error.multiple.certs.found=警告:使用密钥链 [{1}] 找到多个与 [{0}] 匹配的证书,将使用第一个证书 error.app-image.mac-sign.required=错误:预定义的应用程序映像和类型 [app image] 需要 --mac-sign 选项 @@ -95,5 +93,6 @@ message.signing.pkg=警告:要对 PKG 进行签名,可能需要使用“密 message.setfile.dmg=由于未找到 'SetFile' 实用程序,跳过了针对 DMG 文件设置定制图标的操作。安装带命令行工具的 Xcode 应能解决此问题。 message.install-dir-ignored=警告:"--install-dir" 不受 DMG 支持,将默认为 /Applications。 message.codesign.failed.reason.app.content="codesign" 失败,并通过 "--app-content" 参数提供了附加应用程序内容。可能是附加内容破坏了应用程序包的完整性,导致了故障。请确保通过 "--app-content" 参数提供的内容不会破坏应用程序包的完整性,或者在后处理步骤中添加该内容。 +message.codesign.failed.reason.xcode.tools=Possible reason for "codesign" failure is missing Xcode with command line developer tools. Install Xcode with command line developer tools to see if it resolves the problem. warning.unsigned.app.image=警告:使用未签名的 app-image 生成已签名的 {0}。 warning.per.user.app.image.signed=警告:由于预定义的已签名应用程序映像中缺少 "{0}",不支持对已安装应用程序的每用户配置提供支持。 diff --git a/src/jdk.sctp/share/classes/com/sun/nio/sctp/SctpMultiChannel.java b/src/jdk.sctp/share/classes/com/sun/nio/sctp/SctpMultiChannel.java index b9069173938..290838755cd 100644 --- a/src/jdk.sctp/share/classes/com/sun/nio/sctp/SctpMultiChannel.java +++ b/src/jdk.sctp/share/classes/com/sun/nio/sctp/SctpMultiChannel.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2009, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -481,14 +481,14 @@ public abstract T getOption(SctpSocketOption name, * @param name * The socket option * - * @param association - * The association whose option should be set, or {@code null} - * if this option should be set at the channel's socket level. - * * @param value * The value of the socket option. A value of {@code null} may be * a valid value for some socket options. * + * @param association + * The association whose option should be set, or {@code null} + * if this option should be set at the channel's socket level. + * * @return This channel * * @throws UnsupportedOperationException diff --git a/test/hotspot/gtest/gc/x/test_xAddress.cpp b/test/hotspot/gtest/gc/x/test_xAddress.cpp deleted file mode 100644 index 3f769dc7eea..00000000000 --- a/test/hotspot/gtest/gc/x/test_xAddress.cpp +++ /dev/null @@ -1,135 +0,0 @@ -/* - * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xAddress.inline.hpp" -#include "gc/x/xGlobals.hpp" -#include "unittest.hpp" - -class XAddressTest : public ::testing::Test { -protected: - static void is_good_bit(uintptr_t bit_mask) { - // Setup - XAddress::initialize(); - XAddress::set_good_mask(bit_mask); - - // Test that a pointer with only the given bit is considered good. - EXPECT_EQ(XAddress::is_good(XAddressMetadataMarked0), (bit_mask == XAddressMetadataMarked0)); - EXPECT_EQ(XAddress::is_good(XAddressMetadataMarked1), (bit_mask == XAddressMetadataMarked1)); - EXPECT_EQ(XAddress::is_good(XAddressMetadataRemapped), (bit_mask == XAddressMetadataRemapped)); - - // Test that a pointer with the given bit and some extra bits is considered good. - EXPECT_EQ(XAddress::is_good(XAddressMetadataMarked0 | 0x8),(bit_mask == XAddressMetadataMarked0)); - EXPECT_EQ(XAddress::is_good(XAddressMetadataMarked1 | 0x8), (bit_mask == XAddressMetadataMarked1)); - EXPECT_EQ(XAddress::is_good(XAddressMetadataRemapped | 0x8), (bit_mask == XAddressMetadataRemapped)); - - // Test that null is not considered good. - EXPECT_FALSE(XAddress::is_good(0)); - } - - static void is_good_or_null_bit(uintptr_t bit_mask) { - // Setup - XAddress::initialize(); - XAddress::set_good_mask(bit_mask); - - // Test that a pointer with only the given bit is considered good. - EXPECT_EQ(XAddress::is_good_or_null(XAddressMetadataMarked0), (bit_mask == XAddressMetadataMarked0)); - EXPECT_EQ(XAddress::is_good_or_null(XAddressMetadataMarked1), (bit_mask == XAddressMetadataMarked1)); - EXPECT_EQ(XAddress::is_good_or_null(XAddressMetadataRemapped), (bit_mask == XAddressMetadataRemapped)); - - // Test that a pointer with the given bit and some extra bits is considered good. - EXPECT_EQ(XAddress::is_good_or_null(XAddressMetadataMarked0 | 0x8), (bit_mask == XAddressMetadataMarked0)); - EXPECT_EQ(XAddress::is_good_or_null(XAddressMetadataMarked1 | 0x8), (bit_mask == XAddressMetadataMarked1)); - EXPECT_EQ(XAddress::is_good_or_null(XAddressMetadataRemapped | 0x8), (bit_mask == XAddressMetadataRemapped)); - - // Test that null is considered good_or_null. - EXPECT_TRUE(XAddress::is_good_or_null(0)); - } - - static void finalizable() { - // Setup - XAddress::initialize(); - XAddress::flip_to_marked(); - - // Test that a normal good pointer is good and weak good, but not finalizable - const uintptr_t addr1 = XAddress::good(1); - EXPECT_FALSE(XAddress::is_finalizable(addr1)); - EXPECT_TRUE(XAddress::is_marked(addr1)); - EXPECT_FALSE(XAddress::is_remapped(addr1)); - EXPECT_TRUE(XAddress::is_weak_good(addr1)); - EXPECT_TRUE(XAddress::is_weak_good_or_null(addr1)); - EXPECT_TRUE(XAddress::is_good(addr1)); - EXPECT_TRUE(XAddress::is_good_or_null(addr1)); - - // Test that a finalizable good pointer is finalizable and weak good, but not good - const uintptr_t addr2 = XAddress::finalizable_good(1); - EXPECT_TRUE(XAddress::is_finalizable(addr2)); - EXPECT_TRUE(XAddress::is_marked(addr2)); - EXPECT_FALSE(XAddress::is_remapped(addr2)); - EXPECT_TRUE(XAddress::is_weak_good(addr2)); - EXPECT_TRUE(XAddress::is_weak_good_or_null(addr2)); - EXPECT_FALSE(XAddress::is_good(addr2)); - EXPECT_FALSE(XAddress::is_good_or_null(addr2)); - - // Flip to remapped and test that it's no longer weak good - XAddress::flip_to_remapped(); - EXPECT_TRUE(XAddress::is_finalizable(addr2)); - EXPECT_TRUE(XAddress::is_marked(addr2)); - EXPECT_FALSE(XAddress::is_remapped(addr2)); - EXPECT_FALSE(XAddress::is_weak_good(addr2)); - EXPECT_FALSE(XAddress::is_weak_good_or_null(addr2)); - EXPECT_FALSE(XAddress::is_good(addr2)); - EXPECT_FALSE(XAddress::is_good_or_null(addr2)); - } -}; - -TEST_F(XAddressTest, is_good) { - is_good_bit(XAddressMetadataMarked0); - is_good_bit(XAddressMetadataMarked1); - is_good_bit(XAddressMetadataRemapped); -} - -TEST_F(XAddressTest, is_good_or_null) { - is_good_or_null_bit(XAddressMetadataMarked0); - is_good_or_null_bit(XAddressMetadataMarked1); - is_good_or_null_bit(XAddressMetadataRemapped); -} - -TEST_F(XAddressTest, is_weak_good_or_null) { -#define check_is_weak_good_or_null(value) \ - EXPECT_EQ(XAddress::is_weak_good_or_null(value), \ - (XAddress::is_good_or_null(value) || XAddress::is_remapped(value))) \ - << "is_good_or_null: " << XAddress::is_good_or_null(value) \ - << " is_remaped: " << XAddress::is_remapped(value) \ - << " is_good_or_null_or_remapped: " << XAddress::is_weak_good_or_null(value) - - check_is_weak_good_or_null((uintptr_t)nullptr); - check_is_weak_good_or_null(XAddressMetadataMarked0); - check_is_weak_good_or_null(XAddressMetadataMarked1); - check_is_weak_good_or_null(XAddressMetadataRemapped); - check_is_weak_good_or_null((uintptr_t)0x123); -} - -TEST_F(XAddressTest, finalizable) { - finalizable(); -} diff --git a/test/hotspot/gtest/gc/x/test_xArray.cpp b/test/hotspot/gtest/gc/x/test_xArray.cpp deleted file mode 100644 index 36c0b73ad6f..00000000000 --- a/test/hotspot/gtest/gc/x/test_xArray.cpp +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright (c) 2017, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xArray.inline.hpp" -#include "unittest.hpp" - -TEST(XArray, sanity) { - XArray a; - - // Add elements - for (int i = 0; i < 10; i++) { - a.append(i); - } - - XArray b; - - b.swap(&a); - - // Check size - ASSERT_EQ(a.length(), 0); - ASSERT_EQ(a.capacity(), 0); - ASSERT_EQ(a.is_empty(), true); - - ASSERT_EQ(b.length(), 10); - ASSERT_GE(b.capacity(), 10); - ASSERT_EQ(b.is_empty(), false); - - // Clear elements - a.clear(); - - // Check that b is unaffected - ASSERT_EQ(b.length(), 10); - ASSERT_GE(b.capacity(), 10); - ASSERT_EQ(b.is_empty(), false); - - a.append(1); - - // Check that b is unaffected - ASSERT_EQ(b.length(), 10); - ASSERT_GE(b.capacity(), 10); - ASSERT_EQ(b.is_empty(), false); -} - -TEST(XArray, iterator) { - XArray a; - - // Add elements - for (int i = 0; i < 10; i++) { - a.append(i); - } - - // Iterate - int count = 0; - XArrayIterator iter(&a); - for (int value; iter.next(&value);) { - ASSERT_EQ(a.at(count), count); - count++; - } - - // Check count - ASSERT_EQ(count, 10); -} diff --git a/test/hotspot/gtest/gc/x/test_xBitField.cpp b/test/hotspot/gtest/gc/x/test_xBitField.cpp deleted file mode 100644 index 248322b2a07..00000000000 --- a/test/hotspot/gtest/gc/x/test_xBitField.cpp +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xBitField.hpp" -#include "unittest.hpp" - -TEST(XBitFieldTest, test) { - typedef XBitField field_bool; - typedef XBitField field_uint8; - typedef XBitField field_uint16; - typedef XBitField field_uint32; - typedef XBitField field_uint64; - typedef XBitField field_pointer; - - uint64_t entry; - - { - const bool value = false; - entry = field_bool::encode(value); - EXPECT_EQ(field_bool::decode(entry), value) << "Should be equal"; - } - - { - const bool value = true; - entry = field_bool::encode(value); - EXPECT_EQ(field_bool::decode(entry), value) << "Should be equal"; - } - - { - const uint8_t value = ~(uint8_t)0; - entry = field_uint8::encode(value); - EXPECT_EQ(field_uint8::decode(entry), value) << "Should be equal"; - } - - { - const uint16_t value = ~(uint16_t)0; - entry = field_uint16::encode(value); - EXPECT_EQ(field_uint16::decode(entry), value) << "Should be equal"; - } - - { - const uint32_t value = ~(uint32_t)0; - entry = field_uint32::encode(value); - EXPECT_EQ(field_uint32::decode(entry), value) << "Should be equal"; - } - - { - const uint64_t value = ~(uint64_t)0 >> 1; - entry = field_uint64::encode(value); - EXPECT_EQ(field_uint64::decode(entry), value) << "Should be equal"; - } - - { - void* const value = (void*)(~(uintptr_t)0 << 3); - entry = field_pointer::encode(value); - EXPECT_EQ(field_pointer::decode(entry), value) << "Should be equal"; - } -} diff --git a/test/hotspot/gtest/gc/x/test_xBitMap.cpp b/test/hotspot/gtest/gc/x/test_xBitMap.cpp deleted file mode 100644 index 2d3cb09c7ed..00000000000 --- a/test/hotspot/gtest/gc/x/test_xBitMap.cpp +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xBitMap.inline.hpp" -#include "unittest.hpp" - -class XBitMapTest : public ::testing::Test { -protected: - static void test_set_pair_unset(size_t size, bool finalizable) { - XBitMap bitmap(size); - - for (BitMap::idx_t i = 0; i < size - 1; i++) { - if ((i + 1) % BitsPerWord == 0) { - // Can't set pairs of bits in different words. - continue; - } - - // XBitMaps are not cleared when constructed. - bitmap.clear(); - - bool inc_live = false; - - bool ret = bitmap.par_set_bit_pair(i, finalizable, inc_live); - EXPECT_TRUE(ret) << "Failed to set bit"; - EXPECT_TRUE(inc_live) << "Should have set inc_live"; - - // First bit should always be set - EXPECT_TRUE(bitmap.at(i)) << "Should be set"; - - // Second bit should only be set when marking strong - EXPECT_NE(bitmap.at(i + 1), finalizable); - } - } - - static void test_set_pair_set(size_t size, bool finalizable) { - XBitMap bitmap(size); - - for (BitMap::idx_t i = 0; i < size - 1; i++) { - if ((i + 1) % BitsPerWord == 0) { - // Can't set pairs of bits in different words. - continue; - } - - // Fill the bitmap with ones. - bitmap.set_range(0, size); - - bool inc_live = false; - - bool ret = bitmap.par_set_bit_pair(i, finalizable, inc_live); - EXPECT_FALSE(ret) << "Should not succeed setting bit"; - EXPECT_FALSE(inc_live) << "Should not have set inc_live"; - - // Both bits were pre-set. - EXPECT_TRUE(bitmap.at(i)) << "Should be set"; - EXPECT_TRUE(bitmap.at(i + 1)) << "Should be set"; - } - } - - static void test_set_pair_set(bool finalizable) { - test_set_pair_set(2, finalizable); - test_set_pair_set(62, finalizable); - test_set_pair_set(64, finalizable); - test_set_pair_set(66, finalizable); - test_set_pair_set(126, finalizable); - test_set_pair_set(128, finalizable); - } - - static void test_set_pair_unset(bool finalizable) { - test_set_pair_unset(2, finalizable); - test_set_pair_unset(62, finalizable); - test_set_pair_unset(64, finalizable); - test_set_pair_unset(66, finalizable); - test_set_pair_unset(126, finalizable); - test_set_pair_unset(128, finalizable); - } - -}; - -TEST_F(XBitMapTest, test_set_pair_set) { - test_set_pair_set(false); - test_set_pair_set(true); -} - -TEST_F(XBitMapTest, test_set_pair_unset) { - test_set_pair_unset(false); - test_set_pair_unset(true); -} diff --git a/test/hotspot/gtest/gc/x/test_xForwarding.cpp b/test/hotspot/gtest/gc/x/test_xForwarding.cpp deleted file mode 100644 index de850304ebb..00000000000 --- a/test/hotspot/gtest/gc/x/test_xForwarding.cpp +++ /dev/null @@ -1,205 +0,0 @@ -/* - * Copyright (c) 2016, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xAddress.inline.hpp" -#include "gc/x/xForwarding.inline.hpp" -#include "gc/x/xForwardingAllocator.inline.hpp" -#include "gc/x/xGlobals.hpp" -#include "gc/x/xPage.inline.hpp" -#include "unittest.hpp" - -using namespace testing; - -#define CAPTURE_DELIM "\n" -#define CAPTURE1(expression) #expression << " evaluates to " << expression -#define CAPTURE2(e0, e1) CAPTURE1(e0) << CAPTURE_DELIM << CAPTURE1(e1) - -#define CAPTURE(expression) CAPTURE1(expression) - -class XForwardingTest : public Test { -public: - // Helper functions - - class SequenceToFromIndex : AllStatic { - public: - static uintptr_t even(size_t sequence_number) { - return sequence_number * 2; - } - static uintptr_t odd(size_t sequence_number) { - return even(sequence_number) + 1; - } - static uintptr_t one_to_one(size_t sequence_number) { - return sequence_number; - } - }; - - // Test functions - - static void setup(XForwarding* forwarding) { - EXPECT_PRED1(is_power_of_2, forwarding->_entries.length()) << CAPTURE(forwarding->_entries.length()); - } - - static void find_empty(XForwarding* forwarding) { - size_t size = forwarding->_entries.length(); - size_t entries_to_check = size * 2; - - for (size_t i = 0; i < entries_to_check; i++) { - uintptr_t from_index = SequenceToFromIndex::one_to_one(i); - - XForwardingCursor cursor; - XForwardingEntry entry = forwarding->find(from_index, &cursor); - EXPECT_FALSE(entry.populated()) << CAPTURE2(from_index, size); - } - } - - static void find_full(XForwarding* forwarding) { - size_t size = forwarding->_entries.length(); - size_t entries_to_populate = size; - - // Populate - for (size_t i = 0; i < entries_to_populate; i++) { - uintptr_t from_index = SequenceToFromIndex::one_to_one(i); - - XForwardingCursor cursor; - XForwardingEntry entry = forwarding->find(from_index, &cursor); - ASSERT_FALSE(entry.populated()) << CAPTURE2(from_index, size); - - forwarding->insert(from_index, from_index, &cursor); - } - - // Verify - for (size_t i = 0; i < entries_to_populate; i++) { - uintptr_t from_index = SequenceToFromIndex::one_to_one(i); - - XForwardingCursor cursor; - XForwardingEntry entry = forwarding->find(from_index, &cursor); - ASSERT_TRUE(entry.populated()) << CAPTURE2(from_index, size); - - ASSERT_EQ(entry.from_index(), from_index) << CAPTURE(size); - ASSERT_EQ(entry.to_offset(), from_index) << CAPTURE(size); - } - } - - static void find_every_other(XForwarding* forwarding) { - size_t size = forwarding->_entries.length(); - size_t entries_to_populate = size / 2; - - // Populate even from indices - for (size_t i = 0; i < entries_to_populate; i++) { - uintptr_t from_index = SequenceToFromIndex::even(i); - - XForwardingCursor cursor; - XForwardingEntry entry = forwarding->find(from_index, &cursor); - ASSERT_FALSE(entry.populated()) << CAPTURE2(from_index, size); - - forwarding->insert(from_index, from_index, &cursor); - } - - // Verify populated even indices - for (size_t i = 0; i < entries_to_populate; i++) { - uintptr_t from_index = SequenceToFromIndex::even(i); - - XForwardingCursor cursor; - XForwardingEntry entry = forwarding->find(from_index, &cursor); - ASSERT_TRUE(entry.populated()) << CAPTURE2(from_index, size); - - ASSERT_EQ(entry.from_index(), from_index) << CAPTURE(size); - ASSERT_EQ(entry.to_offset(), from_index) << CAPTURE(size); - } - - // Verify empty odd indices - // - // This check could be done on a larger range of sequence numbers, - // but currently entries_to_populate is used. - for (size_t i = 0; i < entries_to_populate; i++) { - uintptr_t from_index = SequenceToFromIndex::odd(i); - - XForwardingCursor cursor; - XForwardingEntry entry = forwarding->find(from_index, &cursor); - - ASSERT_FALSE(entry.populated()) << CAPTURE2(from_index, size); - } - } - - static void test(void (*function)(XForwarding*), uint32_t size) { - // Create page - const XVirtualMemory vmem(0, XPageSizeSmall); - const XPhysicalMemory pmem(XPhysicalMemorySegment(0, XPageSizeSmall, true)); - XPage page(XPageTypeSmall, vmem, pmem); - - page.reset(); - - const size_t object_size = 16; - const uintptr_t object = page.alloc_object(object_size); - - XGlobalSeqNum++; - - bool dummy = false; - page.mark_object(XAddress::marked(object), dummy, dummy); - - const uint32_t live_objects = size; - const size_t live_bytes = live_objects * object_size; - page.inc_live(live_objects, live_bytes); - - // Setup allocator - XForwardingAllocator allocator; - const uint32_t nentries = XForwarding::nentries(&page); - allocator.reset((sizeof(XForwarding)) + (nentries * sizeof(XForwardingEntry))); - - // Setup forwarding - XForwarding* const forwarding = XForwarding::alloc(&allocator, &page); - - // Actual test function - (*function)(forwarding); - } - - // Run the given function with a few different input values. - static void test(void (*function)(XForwarding*)) { - test(function, 1); - test(function, 2); - test(function, 3); - test(function, 4); - test(function, 7); - test(function, 8); - test(function, 1023); - test(function, 1024); - test(function, 1025); - } -}; - -TEST_F(XForwardingTest, setup) { - test(&XForwardingTest::setup); -} - -TEST_F(XForwardingTest, find_empty) { - test(&XForwardingTest::find_empty); -} - -TEST_F(XForwardingTest, find_full) { - test(&XForwardingTest::find_full); -} - -TEST_F(XForwardingTest, find_every_other) { - test(&XForwardingTest::find_every_other); -} diff --git a/test/hotspot/gtest/gc/x/test_xList.cpp b/test/hotspot/gtest/gc/x/test_xList.cpp deleted file mode 100644 index f4766ce99e2..00000000000 --- a/test/hotspot/gtest/gc/x/test_xList.cpp +++ /dev/null @@ -1,155 +0,0 @@ -/* - * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xList.inline.hpp" -#include "unittest.hpp" - -#ifndef PRODUCT - -class XTestEntry { - friend class XList; - -private: - const int _id; - XListNode _node; - -public: - XTestEntry(int id) : - _id(id), - _node() {} - - int id() const { - return _id; - } -}; - -class XListTest : public ::testing::Test { -protected: - static void assert_sorted(XList* list) { - // Iterate forward - { - int count = list->first()->id(); - XListIterator iter(list); - for (XTestEntry* entry; iter.next(&entry);) { - ASSERT_EQ(entry->id(), count); - count++; - } - } - - // Iterate backward - { - int count = list->last()->id(); - XListReverseIterator iter(list); - for (XTestEntry* entry; iter.next(&entry);) { - EXPECT_EQ(entry->id(), count); - count--; - } - } - } -}; - -TEST_F(XListTest, test_insert) { - XList list; - XTestEntry e0(0); - XTestEntry e1(1); - XTestEntry e2(2); - XTestEntry e3(3); - XTestEntry e4(4); - XTestEntry e5(5); - - list.insert_first(&e2); - list.insert_before(&e2, &e1); - list.insert_after(&e2, &e3); - list.insert_last(&e4); - list.insert_first(&e0); - list.insert_last(&e5); - - EXPECT_EQ(list.size(), 6u); - assert_sorted(&list); - - for (int i = 0; i < 6; i++) { - XTestEntry* e = list.remove_first(); - EXPECT_EQ(e->id(), i); - } - - EXPECT_EQ(list.size(), 0u); -} - -TEST_F(XListTest, test_remove) { - // Remove first - { - XList list; - XTestEntry e0(0); - XTestEntry e1(1); - XTestEntry e2(2); - XTestEntry e3(3); - XTestEntry e4(4); - XTestEntry e5(5); - - list.insert_last(&e0); - list.insert_last(&e1); - list.insert_last(&e2); - list.insert_last(&e3); - list.insert_last(&e4); - list.insert_last(&e5); - - EXPECT_EQ(list.size(), 6u); - - for (int i = 0; i < 6; i++) { - XTestEntry* e = list.remove_first(); - EXPECT_EQ(e->id(), i); - } - - EXPECT_EQ(list.size(), 0u); - } - - // Remove last - { - XList list; - XTestEntry e0(0); - XTestEntry e1(1); - XTestEntry e2(2); - XTestEntry e3(3); - XTestEntry e4(4); - XTestEntry e5(5); - - list.insert_last(&e0); - list.insert_last(&e1); - list.insert_last(&e2); - list.insert_last(&e3); - list.insert_last(&e4); - list.insert_last(&e5); - - EXPECT_EQ(list.size(), 6u); - - for (int i = 5; i >= 0; i--) { - XTestEntry* e = list.remove_last(); - EXPECT_EQ(e->id(), i); - } - - EXPECT_EQ(list.size(), 0u); - } -} - -#endif // PRODUCT diff --git a/test/hotspot/gtest/gc/x/test_xLiveMap.cpp b/test/hotspot/gtest/gc/x/test_xLiveMap.cpp deleted file mode 100644 index d57790e9dab..00000000000 --- a/test/hotspot/gtest/gc/x/test_xLiveMap.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xLiveMap.inline.hpp" -#include "unittest.hpp" - -class XLiveMapTest : public ::testing::Test { -protected: - static void strongly_live_for_large_xpage() { - // Large XPages only have room for one object. - XLiveMap livemap(1); - - bool inc_live; - uintptr_t object = 0u; - - // Mark the object strong. - livemap.set(object, false /* finalizable */, inc_live); - - // Check that both bits are in the same segment. - ASSERT_EQ(livemap.index_to_segment(0), livemap.index_to_segment(1)); - - // Check that the object was marked. - ASSERT_TRUE(livemap.get(0)); - - // Check that the object was strongly marked. - ASSERT_TRUE(livemap.get(1)); - - ASSERT_TRUE(inc_live); - } -}; - -TEST_F(XLiveMapTest, strongly_live_for_large_xpage) { - strongly_live_for_large_xpage(); -} diff --git a/test/hotspot/gtest/gc/x/test_xPhysicalMemory.cpp b/test/hotspot/gtest/gc/x/test_xPhysicalMemory.cpp deleted file mode 100644 index f22032632e9..00000000000 --- a/test/hotspot/gtest/gc/x/test_xPhysicalMemory.cpp +++ /dev/null @@ -1,174 +0,0 @@ -/* - * Copyright (c) 2016, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xPhysicalMemory.inline.hpp" -#include "unittest.hpp" - -TEST(XPhysicalMemoryTest, copy) { - const XPhysicalMemorySegment seg0(0, 100, true); - const XPhysicalMemorySegment seg1(200, 100, true); - - XPhysicalMemory pmem0; - pmem0.add_segment(seg0); - EXPECT_EQ(pmem0.nsegments(), 1); - EXPECT_EQ(pmem0.segment(0).size(), 100u); - - XPhysicalMemory pmem1; - pmem1.add_segment(seg0); - pmem1.add_segment(seg1); - EXPECT_EQ(pmem1.nsegments(), 2); - EXPECT_EQ(pmem1.segment(0).size(), 100u); - EXPECT_EQ(pmem1.segment(1).size(), 100u); - - XPhysicalMemory pmem2(pmem0); - EXPECT_EQ(pmem2.nsegments(), 1); - EXPECT_EQ(pmem2.segment(0).size(), 100u); - - pmem2 = pmem1; - EXPECT_EQ(pmem2.nsegments(), 2); - EXPECT_EQ(pmem2.segment(0).size(), 100u); - EXPECT_EQ(pmem2.segment(1).size(), 100u); -} - -TEST(XPhysicalMemoryTest, add) { - const XPhysicalMemorySegment seg0(0, 1, true); - const XPhysicalMemorySegment seg1(1, 1, true); - const XPhysicalMemorySegment seg2(2, 1, true); - const XPhysicalMemorySegment seg3(3, 1, true); - const XPhysicalMemorySegment seg4(4, 1, true); - const XPhysicalMemorySegment seg5(5, 1, true); - const XPhysicalMemorySegment seg6(6, 1, true); - - XPhysicalMemory pmem0; - EXPECT_EQ(pmem0.nsegments(), 0); - EXPECT_EQ(pmem0.is_null(), true); - - XPhysicalMemory pmem1; - pmem1.add_segment(seg0); - pmem1.add_segment(seg1); - pmem1.add_segment(seg2); - pmem1.add_segment(seg3); - pmem1.add_segment(seg4); - pmem1.add_segment(seg5); - pmem1.add_segment(seg6); - EXPECT_EQ(pmem1.nsegments(), 1); - EXPECT_EQ(pmem1.segment(0).size(), 7u); - EXPECT_EQ(pmem1.is_null(), false); - - XPhysicalMemory pmem2; - pmem2.add_segment(seg0); - pmem2.add_segment(seg1); - pmem2.add_segment(seg2); - pmem2.add_segment(seg4); - pmem2.add_segment(seg5); - pmem2.add_segment(seg6); - EXPECT_EQ(pmem2.nsegments(), 2); - EXPECT_EQ(pmem2.segment(0).size(), 3u); - EXPECT_EQ(pmem2.segment(1).size(), 3u); - EXPECT_EQ(pmem2.is_null(), false); - - XPhysicalMemory pmem3; - pmem3.add_segment(seg0); - pmem3.add_segment(seg2); - pmem3.add_segment(seg3); - pmem3.add_segment(seg4); - pmem3.add_segment(seg6); - EXPECT_EQ(pmem3.nsegments(), 3); - EXPECT_EQ(pmem3.segment(0).size(), 1u); - EXPECT_EQ(pmem3.segment(1).size(), 3u); - EXPECT_EQ(pmem3.segment(2).size(), 1u); - EXPECT_EQ(pmem3.is_null(), false); - - XPhysicalMemory pmem4; - pmem4.add_segment(seg0); - pmem4.add_segment(seg2); - pmem4.add_segment(seg4); - pmem4.add_segment(seg6); - EXPECT_EQ(pmem4.nsegments(), 4); - EXPECT_EQ(pmem4.segment(0).size(), 1u); - EXPECT_EQ(pmem4.segment(1).size(), 1u); - EXPECT_EQ(pmem4.segment(2).size(), 1u); - EXPECT_EQ(pmem4.segment(3).size(), 1u); - EXPECT_EQ(pmem4.is_null(), false); -} - -TEST(XPhysicalMemoryTest, remove) { - XPhysicalMemory pmem; - - pmem.add_segment(XPhysicalMemorySegment(10, 10, true)); - pmem.add_segment(XPhysicalMemorySegment(30, 10, true)); - pmem.add_segment(XPhysicalMemorySegment(50, 10, true)); - EXPECT_EQ(pmem.nsegments(), 3); - EXPECT_EQ(pmem.size(), 30u); - EXPECT_FALSE(pmem.is_null()); - - pmem.remove_segments(); - EXPECT_EQ(pmem.nsegments(), 0); - EXPECT_EQ(pmem.size(), 0u); - EXPECT_TRUE(pmem.is_null()); -} - -TEST(XPhysicalMemoryTest, split) { - XPhysicalMemory pmem; - - pmem.add_segment(XPhysicalMemorySegment(0, 10, true)); - pmem.add_segment(XPhysicalMemorySegment(10, 10, true)); - pmem.add_segment(XPhysicalMemorySegment(30, 10, true)); - EXPECT_EQ(pmem.nsegments(), 2); - EXPECT_EQ(pmem.size(), 30u); - - XPhysicalMemory pmem0 = pmem.split(1); - EXPECT_EQ(pmem0.nsegments(), 1); - EXPECT_EQ(pmem0.size(), 1u); - EXPECT_EQ(pmem.nsegments(), 2); - EXPECT_EQ(pmem.size(), 29u); - - XPhysicalMemory pmem1 = pmem.split(25); - EXPECT_EQ(pmem1.nsegments(), 2); - EXPECT_EQ(pmem1.size(), 25u); - EXPECT_EQ(pmem.nsegments(), 1); - EXPECT_EQ(pmem.size(), 4u); - - XPhysicalMemory pmem2 = pmem.split(4); - EXPECT_EQ(pmem2.nsegments(), 1); - EXPECT_EQ(pmem2.size(), 4u); - EXPECT_EQ(pmem.nsegments(), 0); - EXPECT_EQ(pmem.size(), 0u); -} - -TEST(XPhysicalMemoryTest, split_committed) { - XPhysicalMemory pmem0; - pmem0.add_segment(XPhysicalMemorySegment(0, 10, true)); - pmem0.add_segment(XPhysicalMemorySegment(10, 10, false)); - pmem0.add_segment(XPhysicalMemorySegment(20, 10, true)); - pmem0.add_segment(XPhysicalMemorySegment(30, 10, false)); - EXPECT_EQ(pmem0.nsegments(), 4); - EXPECT_EQ(pmem0.size(), 40u); - - XPhysicalMemory pmem1 = pmem0.split_committed(); - EXPECT_EQ(pmem0.nsegments(), 2); - EXPECT_EQ(pmem0.size(), 20u); - EXPECT_EQ(pmem1.nsegments(), 2); - EXPECT_EQ(pmem1.size(), 20u); -} diff --git a/test/hotspot/gtest/gc/x/test_xVirtualMemory.cpp b/test/hotspot/gtest/gc/x/test_xVirtualMemory.cpp deleted file mode 100644 index 6698ccfa045..00000000000 --- a/test/hotspot/gtest/gc/x/test_xVirtualMemory.cpp +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -#include "precompiled.hpp" -#include "gc/x/xVirtualMemory.inline.hpp" -#include "unittest.hpp" - -TEST(XVirtualMemory, split) { - XVirtualMemory vmem(0, 10); - - XVirtualMemory vmem0 = vmem.split(0); - EXPECT_EQ(vmem0.size(), 0u); - EXPECT_EQ(vmem.size(), 10u); - - XVirtualMemory vmem1 = vmem.split(5); - EXPECT_EQ(vmem1.size(), 5u); - EXPECT_EQ(vmem.size(), 5u); - - XVirtualMemory vmem2 = vmem.split(5); - EXPECT_EQ(vmem2.size(), 5u); - EXPECT_EQ(vmem.size(), 0u); - - XVirtualMemory vmem3 = vmem.split(0); - EXPECT_EQ(vmem3.size(), 0u); -} diff --git a/test/hotspot/gtest/metaspace/test_arenagrowthpolicy.cpp b/test/hotspot/gtest/metaspace/test_arenagrowthpolicy.cpp index a37af058e09..80e6c1d77da 100644 --- a/test/hotspot/gtest/metaspace/test_arenagrowthpolicy.cpp +++ b/test/hotspot/gtest/metaspace/test_arenagrowthpolicy.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2020 SAP SE. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -61,8 +61,6 @@ TEST_VM(metaspace, arena_growth_policy_##spacetype##_##is_class) { \ test_arena_growth_policy(Metaspace::spacetype, is_class); \ } -DEFINE_GROWTH_POLICY_TEST(ReflectionMetaspaceType, true) -DEFINE_GROWTH_POLICY_TEST(ReflectionMetaspaceType, false) DEFINE_GROWTH_POLICY_TEST(ClassMirrorHolderMetaspaceType, true) DEFINE_GROWTH_POLICY_TEST(ClassMirrorHolderMetaspaceType, false) DEFINE_GROWTH_POLICY_TEST(StandardMetaspaceType, true) diff --git a/test/hotspot/gtest/metaspace/test_metaspacearena.cpp b/test/hotspot/gtest/metaspace/test_metaspacearena.cpp index aee53ea32aa..2e5a6d40ce7 100644 --- a/test/hotspot/gtest/metaspace/test_metaspacearena.cpp +++ b/test/hotspot/gtest/metaspace/test_metaspacearena.cpp @@ -218,7 +218,8 @@ class MetaspaceArenaTestHelper { static void test_basics(size_t commit_limit, bool is_micro) { MetaspaceGtestContext context(commit_limit); - MetaspaceArenaTestHelper helper(context, is_micro ? Metaspace::ReflectionMetaspaceType : Metaspace::StandardMetaspaceType, false); + const Metaspace::MetaspaceType type = is_micro ? Metaspace::ClassMirrorHolderMetaspaceType : Metaspace::StandardMetaspaceType; + MetaspaceArenaTestHelper helper(context, type, false); helper.allocate_from_arena_with_tests(1); helper.allocate_from_arena_with_tests(128); @@ -278,11 +279,11 @@ TEST_VM(metaspace, MetaspaceArena_test_enlarge_in_place_standard_nc) { } TEST_VM(metaspace, MetaspaceArena_test_enlarge_in_place_micro_c) { - test_chunk_enlargment_simple(Metaspace::ReflectionMetaspaceType, true); + test_chunk_enlargment_simple(Metaspace::ClassMirrorHolderMetaspaceType, true); } TEST_VM(metaspace, MetaspaceArena_test_enlarge_in_place_micro_nc) { - test_chunk_enlargment_simple(Metaspace::ReflectionMetaspaceType, false); + test_chunk_enlargment_simple(Metaspace::ClassMirrorHolderMetaspaceType, false); } // Test chunk enlargement: @@ -434,8 +435,8 @@ static void test_recover_from_commit_limit_hit() { // The first MetaspaceArena mimicks a micro loader. This will fill the free // chunk list with very small chunks. We allocate from them in an interleaved // way to cause fragmentation. - MetaspaceArenaTestHelper helper1(context, Metaspace::ReflectionMetaspaceType, false); - MetaspaceArenaTestHelper helper2(context, Metaspace::ReflectionMetaspaceType, false); + MetaspaceArenaTestHelper helper1(context, Metaspace::ClassMirrorHolderMetaspaceType, false); + MetaspaceArenaTestHelper helper2(context, Metaspace::ClassMirrorHolderMetaspaceType, false); // This MetaspaceArena should hit the limit. We use BootMetaspaceType here since // it gets a large initial chunk which is committed @@ -495,7 +496,9 @@ static void test_controlled_growth(Metaspace::MetaspaceType type, bool is_class, MetaspaceGtestContext context; MetaspaceArenaTestHelper smhelper(context, type, is_class, "Grower"); - MetaspaceArenaTestHelper smhelper_harrasser(context, Metaspace::ReflectionMetaspaceType, true, "Harasser"); + const Metaspace::MetaspaceType other_type = + (type == Metaspace::StandardMetaspaceType) ? Metaspace::ClassMirrorHolderMetaspaceType : Metaspace::StandardMetaspaceType; + MetaspaceArenaTestHelper smhelper_harrasser(context, other_type, true, "Harasser"); size_t used = 0, committed = 0, capacity = 0; const size_t alloc_words = 16; @@ -617,16 +620,6 @@ static void test_controlled_growth(Metaspace::MetaspaceType type, bool is_class, } // these numbers have to be in sync with arena policy numbers (see memory/metaspace/arenaGrowthPolicy.cpp) -TEST_VM(metaspace, MetaspaceArena_growth_refl_c_inplace) { - test_controlled_growth(Metaspace::ReflectionMetaspaceType, true, - word_size_for_level(CHUNK_LEVEL_1K), true); -} - -TEST_VM(metaspace, MetaspaceArena_growth_refl_c_not_inplace) { - test_controlled_growth(Metaspace::ReflectionMetaspaceType, true, - word_size_for_level(CHUNK_LEVEL_1K), false); -} - TEST_VM(metaspace, MetaspaceArena_growth_anon_c_inplace) { test_controlled_growth(Metaspace::ClassMirrorHolderMetaspaceType, true, word_size_for_level(CHUNK_LEVEL_1K), true); @@ -660,16 +653,6 @@ TEST_VM(metaspace, MetaspaceArena_growth_boot_c_not_inplace) { } */ -TEST_VM(metaspace, MetaspaceArena_growth_refl_nc_inplace) { - test_controlled_growth(Metaspace::ReflectionMetaspaceType, false, - word_size_for_level(CHUNK_LEVEL_2K), true); -} - -TEST_VM(metaspace, MetaspaceArena_growth_refl_nc_not_inplace) { - test_controlled_growth(Metaspace::ReflectionMetaspaceType, false, - word_size_for_level(CHUNK_LEVEL_2K), false); -} - TEST_VM(metaspace, MetaspaceArena_growth_anon_nc_inplace) { test_controlled_growth(Metaspace::ClassMirrorHolderMetaspaceType, false, word_size_for_level(CHUNK_LEVEL_1K), true); diff --git a/test/hotspot/gtest/metaspace/test_metaspacearena_stress.cpp b/test/hotspot/gtest/metaspace/test_metaspacearena_stress.cpp index e94f733e45b..bb536dfd0e2 100644 --- a/test/hotspot/gtest/metaspace/test_metaspacearena_stress.cpp +++ b/test/hotspot/gtest/metaspace/test_metaspacearena_stress.cpp @@ -227,7 +227,7 @@ class MetaspaceArenaTest { void create_random_test_bed_at(int slotindex) { SizeRange allocation_range(1, 100); // randomize too? const ArenaGrowthPolicy* growth_policy = ArenaGrowthPolicy::policy_for_space_type( - (fifty_fifty() ? Metaspace::StandardMetaspaceType : Metaspace::ReflectionMetaspaceType), + (fifty_fifty() ? Metaspace::StandardMetaspaceType : Metaspace::ClassMirrorHolderMetaspaceType), fifty_fifty()); create_new_test_bed_at(slotindex, growth_policy, allocation_range); } diff --git a/test/hotspot/gtest/x86/asmtest.out.h b/test/hotspot/gtest/x86/asmtest.out.h index 0ddda80c30d..5c59f0b8d76 100644 --- a/test/hotspot/gtest/x86/asmtest.out.h +++ b/test/hotspot/gtest/x86/asmtest.out.h @@ -1,84097 +1,1293 @@ // BEGIN Generated code -- do not edit // Generated by x86-asmtest.py - __ shldl(rcx, rdx); // {load}shld ecx, edx IID0 - __ shldl(rdx, rbx); // {load}shld edx, ebx IID1 #ifdef _LP64 - __ shldl(rbx, r8); // {load}shld ebx, r8d IID2 - __ shldl(r8, r9); // {load}shld r8d, r9d IID3 - __ shldl(r9, r10); // {load}shld r9d, r10d IID4 - __ shldl(r10, r11); // {load}shld r10d, r11d IID5 - __ shldl(r11, r12); // {load}shld r11d, r12d IID6 - __ shldl(r12, r13); // {load}shld r12d, r13d IID7 - __ shldl(r13, r14); // {load}shld r13d, r14d IID8 - __ shldl(r14, r15); // {load}shld r14d, r15d IID9 - __ shldl(r15, r16); // {load}shld r15d, r16d IID10 - __ shldl(r16, r17); // {load}shld r16d, r17d IID11 - __ shldl(r17, r18); // {load}shld r17d, r18d IID12 - __ shldl(r18, r19); // {load}shld r18d, r19d IID13 - __ shldl(r19, r20); // {load}shld r19d, r20d IID14 - __ shldl(r20, r21); // {load}shld r20d, r21d IID15 - __ shldl(r21, r22); // {load}shld r21d, r22d IID16 - __ shldl(r22, r23); // {load}shld r22d, r23d IID17 - __ shldl(r23, r24); // {load}shld r23d, r24d IID18 - __ shldl(r24, r25); // {load}shld r24d, r25d IID19 - __ shldl(r25, r26); // {load}shld r25d, r26d IID20 - __ shldl(r26, r27); // {load}shld r26d, r27d IID21 - __ shldl(r27, r28); // {load}shld r27d, r28d IID22 - __ shldl(r28, r29); // {load}shld r28d, r29d IID23 - __ shldl(r29, r30); // {load}shld r29d, r30d IID24 - __ shldl(r30, r31); // {load}shld r30d, r31d IID25 - __ shldl(r31, rcx); // {load}shld r31d, ecx IID26 + __ shldl(r22, r14); // {load}shld r22d, r14d IID0 +#endif // _LP64 + __ shrdl(rcx, rbx); // {load}shrd ecx, ebx IID1 +#ifdef _LP64 + __ adcl(r24, r18); // {load}adc r24d, r18d IID2 + __ cmpl(r8, r19); // {load}cmp r8d, r19d IID3 + __ imull(r25, r19); // {load}imul r25d, r19d IID4 + __ popcntl(r19, r15); // {load}popcnt r19d, r15d IID5 + __ sbbl(r21, r19); // {load}sbb r21d, r19d IID6 + __ subl(r17, r29); // {load}sub r17d, r29d IID7 + __ tzcntl(r21, rdx); // {load}tzcnt r21d, edx IID8 + __ lzcntl(rcx, r23); // {load}lzcnt ecx, r23d IID9 + __ addl(r10, r11); // {load}add r10d, r11d IID10 + __ andl(r21, r14); // {load}and r21d, r14d IID11 + __ orl(r12, r30); // {load}or r12d, r30d IID12 + __ xorl(r19, r30); // {load}xor r19d, r30d IID13 + __ movl(r27, r11); // {load}mov r27d, r11d IID14 + __ bsfl(r10, r12); // {load}bsf r10d, r12d IID15 + __ bsrl(r16, r10); // {load}bsr r16d, r10d IID16 + __ xchgl(r16, r28); // {load}xchg r16d, r28d IID17 + __ testl(r25, r16); // {load}test r25d, r16d IID18 + __ addb(Address(r27, rdx, (Address::ScaleFactor)1, +0x6f304723), rcx); // add byte ptr [r27+rdx*2+0x6f304723], cl IID19 + __ addw(Address(r19, rcx, (Address::ScaleFactor)2, +0x17244c57), r17); // add word ptr [r19+rcx*4+0x17244c57], r17w IID20 + __ addl(Address(r23, r16, (Address::ScaleFactor)1, +0x138df419), r19); // add dword ptr [r23+r16*2+0x138df419], r19d IID21 + __ adcl(Address(r8, r11, (Address::ScaleFactor)3, -0x164f7a73), rcx); // adc dword ptr [r8+r11*8-0x164f7a73], ecx IID22 + __ andb(Address(rdx, r17, (Address::ScaleFactor)3, +0x4df7f181), r22); // and byte ptr [rdx+r17*8+0x4df7f181], r22b IID23 + __ andl(Address(r15, -0x41884769), r23); // and dword ptr [r15-0x41884769], r23d IID24 + __ cmpb(Address(r20, r18, (Address::ScaleFactor)0, -0x1b827588), r8); // cmp byte ptr [r20+r18*1-0x1b827588], r8b IID25 + __ cmpw(Address(r9, r22, (Address::ScaleFactor)3, +0x564ead70), r31); // cmp word ptr [r9+r22*8+0x564ead70], r31w IID26 + __ cmpl(Address(r10, r24, (Address::ScaleFactor)2, +0xf08ffec), rcx); // cmp dword ptr [r10+r24*4+0xf08ffec], ecx IID27 + __ orb(Address(r27, r15, (Address::ScaleFactor)0, +0xf18eac7), r19); // or byte ptr [r27+r15*1+0xf18eac7], r19b IID28 + __ orl(Address(r16, r31, (Address::ScaleFactor)2, +0x3a452790), r12); // or dword ptr [r16+r31*4+0x3a452790], r12d IID29 + __ xorb(Address(r20, r13, (Address::ScaleFactor)0, +0x61dde6b7), r10); // xor byte ptr [r20+r13*1+0x61dde6b7], r10b IID30 + __ xorl(Address(r27, -0x77a99463), rbx); // xor dword ptr [r27-0x77a99463], ebx IID31 + __ subl(Address(r9, r11, (Address::ScaleFactor)0, +0x4e20f145), r10); // sub dword ptr [r9+r11*1+0x4e20f145], r10d IID32 + __ movb(Address(r23, r23, (Address::ScaleFactor)0, -0x3f51b77), r10); // mov byte ptr [r23+r23*1-0x3f51b77], r10b IID33 + __ movl(Address(r31, r22, (Address::ScaleFactor)0, +0xfac5466), r30); // mov dword ptr [r31+r22*1+0xfac5466], r30d IID34 + __ xaddb(Address(rbx, -0x70025991), r31); // xadd byte ptr [rbx-0x70025991], r31b IID35 + __ xaddw(Address(r17, r26, (Address::ScaleFactor)1, -0x530c0221), r29); // xadd word ptr [r17+r26*2-0x530c0221], r29w IID36 + __ xaddl(Address(r9, r21, (Address::ScaleFactor)0, -0x7b7336bf), r17); // xadd dword ptr [r9+r21*1-0x7b7336bf], r17d IID37 + __ adcl(Address(r24, r12, (Address::ScaleFactor)2, +0x691b07e5), 65536); // adc dword ptr [r24+r12*4+0x691b07e5], 65536 IID38 + __ andl(Address(r14, r9, (Address::ScaleFactor)0, -0x115d5957), 16); // and dword ptr [r14+r9*1-0x115d5957], 16 IID39 + __ addb(Address(r21, -0x1d3e83ad), 64); // add byte ptr [r21-0x1d3e83ad], 64 IID40 + __ addw(Address(r12, +0x3a7acf9a), 4096); // add word ptr [r12+0x3a7acf9a], 4096 IID41 + __ addl(Address(r30, r14, (Address::ScaleFactor)1, -0x2073ed16), 256); // add dword ptr [r30+r14*2-0x2073ed16], 256 IID42 + __ cmpb(Address(r28, r18, (Address::ScaleFactor)0, +0x6fd326d5), 16); // cmp byte ptr [r28+r18*1+0x6fd326d5], 16 IID43 + __ cmpw(Address(r12, r14, (Address::ScaleFactor)1, +0x2ae6568f), 256); // cmp word ptr [r12+r14*2+0x2ae6568f], 256 IID44 + __ cmpl(Address(r24, r30, (Address::ScaleFactor)3, -0x11b9aeac), 1048576); // cmp dword ptr [r24+r30*8-0x11b9aeac], 1048576 IID45 + __ sarl(Address(r22, r30, (Address::ScaleFactor)2, +0x60cb9115), 1); // sar dword ptr [r22+r30*4+0x60cb9115], 1 IID46 + __ sall(Address(r31, r8, (Address::ScaleFactor)1, +0x236d8ab9), 16); // sal dword ptr [r31+r8*2+0x236d8ab9], 16 IID47 + __ sbbl(Address(r21, r12, (Address::ScaleFactor)1, -0x7d9b9f18), 16777216); // sbb dword ptr [r21+r12*2-0x7d9b9f18], 16777216 IID48 + __ shrl(Address(r29, r17, (Address::ScaleFactor)0, -0x7c54f216), 8); // shr dword ptr [r29+r17*1-0x7c54f216], 8 IID49 + __ subl(Address(r8, r27, (Address::ScaleFactor)2, -0x1190e2c6), 16); // sub dword ptr [r8+r27*4-0x1190e2c6], 16 IID50 + __ xorl(Address(rdx, +0x50dd3396), 1048576); // xor dword ptr [rdx+0x50dd3396], 1048576 IID51 + __ orb(Address(r20, -0x7dd1f614), 64); // or byte ptr [r20-0x7dd1f614], 64 IID52 + __ orl(Address(r18, +0x6f852a9f), 16); // or dword ptr [r18+0x6f852a9f], 16 IID53 + __ movb(Address(r20, r8, (Address::ScaleFactor)2, +0x436e2aa), 1); // mov byte ptr [r20+r8*4+0x436e2aa], 1 IID54 + __ movl(Address(rcx, r14, (Address::ScaleFactor)1, +0x883df84), 16); // mov dword ptr [rcx+r14*2+0x883df84], 16 IID55 + __ testb(Address(r11, r10, (Address::ScaleFactor)1, -0x1fc2039b), 16); // test byte ptr [r11+r10*2-0x1fc2039b], 16 IID56 + __ testl(Address(r29, +0x73b9f003), 67108864); // test dword ptr [r29+0x73b9f003], 67108864 IID57 + __ cmpl_imm32(Address(r29, rcx, (Address::ScaleFactor)2, +0x4ca2b092), 4194304); // cmp dword ptr [r29+rcx*4+0x4ca2b092], 4194304 IID58 + __ addl(r8, Address(rdx, r24, (Address::ScaleFactor)2, -0x1e1524dc)); // add r8d, dword ptr [rdx+r24*4-0x1e1524dc] IID59 + __ andl(r19, Address(r20, r20, (Address::ScaleFactor)1, +0x6286892)); // and r19d, dword ptr [r20+r20*2+0x6286892] IID60 + __ cmpb(r11, Address(r13, -0x42e0bf9e)); // cmp r11b, byte ptr [r13-0x42e0bf9e] IID61 + __ cmpl(r20, Address(rbx, r30, (Address::ScaleFactor)3, -0x30497735)); // cmp r20d, dword ptr [rbx+r30*8-0x30497735] IID62 + __ lzcntl(r8, Address(rdx, r9, (Address::ScaleFactor)1, +0xe2e99e)); // lzcnt r8d, dword ptr [rdx+r9*2+0xe2e99e] IID63 + __ orl(r9, Address(r29, r25, (Address::ScaleFactor)1, +0x50169f63)); // or r9d, dword ptr [r29+r25*2+0x50169f63] IID64 + __ adcl(r17, Address(r31, r21, (Address::ScaleFactor)3, +0x79efd170)); // adc r17d, dword ptr [r31+r21*8+0x79efd170] IID65 + __ imull(r23, Address(r8, -0xa521f73)); // imul r23d, dword ptr [r8-0xa521f73] IID66 + __ popcntl(r30, Address(r10, +0x44352901)); // popcnt r30d, dword ptr [r10+0x44352901] IID67 + __ sbbl(r16, Address(r18, r14, (Address::ScaleFactor)1, -0xda8278a)); // sbb r16d, dword ptr [r18+r14*2-0xda8278a] IID68 + __ subl(r17, Address(r22, +0x2d63aab3)); // sub r17d, dword ptr [r22+0x2d63aab3] IID69 + __ tzcntl(r23, Address(r21, r11, (Address::ScaleFactor)0, -0x18bc7469)); // tzcnt r23d, dword ptr [r21+r11*1-0x18bc7469] IID70 + __ xorb(r9, Address(r19, rdx, (Address::ScaleFactor)0, -0x5f6207ed)); // xor r9b, byte ptr [r19+rdx*1-0x5f6207ed] IID71 + __ xorw(r11, Address(r21, r10, (Address::ScaleFactor)2, -0x63c79f2b)); // xor r11w, word ptr [r21+r10*4-0x63c79f2b] IID72 + __ xorl(r29, Address(r31, rcx, (Address::ScaleFactor)3, +0x34d93c0f)); // xor r29d, dword ptr [r31+rcx*8+0x34d93c0f] IID73 + __ movb(r17, Address(r8, r18, (Address::ScaleFactor)2, -0x38ff3ad7)); // mov r17b, byte ptr [r8+r18*4-0x38ff3ad7] IID74 + __ movl(r31, Address(r20, r11, (Address::ScaleFactor)2, -0x1d23470c)); // mov r31d, dword ptr [r20+r11*4-0x1d23470c] IID75 + __ leal(r31, Address(rbx, r12, (Address::ScaleFactor)2, -0x3b4a4215)); // lea r31d, dword ptr [rbx+r12*4-0x3b4a4215] IID76 + __ xchgb(r20, Address(r30, r24, (Address::ScaleFactor)0, -0x5c4e82bc)); // xchg r20b, byte ptr [r30+r24*1-0x5c4e82bc] IID77 + __ xchgw(r13, Address(r10, r21, (Address::ScaleFactor)3, +0x19bd4a03)); // xchg r13w, word ptr [r10+r21*8+0x19bd4a03] IID78 + __ xchgl(r23, Address(r16, r13, (Address::ScaleFactor)2, -0x6a0293d6)); // xchg r23d, dword ptr [r16+r13*4-0x6a0293d6] IID79 + __ testl(r13, Address(r9, +0x34a6ff61)); // test r13d, dword ptr [r9+0x34a6ff61] IID80 + __ addb(r23, 4); // add r23b, 4 IID81 + __ addl(r28, 65536); // add r28d, 65536 IID82 +#endif // _LP64 + __ andl(rdx, 65536); // and edx, 65536 IID83 +#ifdef _LP64 + __ adcl(r27, 1048576); // adc r27d, 1048576 IID84 + __ cmpb(r13, 4); // cmp r13b, 4 IID85 + __ cmpl(r29, 268435456); // cmp r29d, 268435456 IID86 + __ rcll(r20, 16); // rcl r20d, 16 IID87 + __ roll(r25, 2); // rol r25d, 2 IID88 +#endif // _LP64 + __ rorl(rdx, 4); // ror edx, 4 IID89 + __ sarl(rcx, 1); // sar ecx, 1 IID90 +#ifdef _LP64 + __ sall(r19, 16); // sal r19d, 16 IID91 + __ sbbl(r9, 1); // sbb r9d, 1 IID92 + __ shll(r20, 8); // shl r20d, 8 IID93 +#endif // _LP64 + __ shrl(rcx, 1); // shr ecx, 1 IID94 +#ifdef _LP64 + __ subl(r19, 16777216); // sub r19d, 16777216 IID95 + __ xorl(r16, 4096); // xor r16d, 4096 IID96 + __ movl(r24, 65536); // mov r24d, 65536 IID97 + __ testb(r20, 64); // test r20b, 64 IID98 + __ testl(r28, 16777216); // test r28d, 16777216 IID99 + __ subl_imm32(r29, 262144); // sub r29d, 262144 IID100 + __ cmovl(Assembler::Condition::overflow, r8, Address(r26, r28, (Address::ScaleFactor)1, +0x210f06d)); // cmovo r8d, dword ptr [r26+r28*2+0x210f06d] IID101 + __ cmovl(Assembler::Condition::noOverflow, rbx, Address(r18, rbx, (Address::ScaleFactor)0, -0x264fce2a)); // cmovno ebx, dword ptr [r18+rbx*1-0x264fce2a] IID102 + __ cmovl(Assembler::Condition::below, r29, Address(r17, r24, (Address::ScaleFactor)0, +0x46c06acb)); // cmovb r29d, dword ptr [r17+r24*1+0x46c06acb] IID103 + __ cmovl(Assembler::Condition::aboveEqual, r17, Address(r25, r11, (Address::ScaleFactor)3, -0x3b21f455)); // cmovae r17d, dword ptr [r25+r11*8-0x3b21f455] IID104 + __ cmovl(Assembler::Condition::zero, r23, Address(r20, r31, (Address::ScaleFactor)0, -0x5a03317b)); // cmovz r23d, dword ptr [r20+r31*1-0x5a03317b] IID105 + __ cmovl(Assembler::Condition::notZero, r31, Address(r31, r15, (Address::ScaleFactor)2, -0x53fc2e65)); // cmovnz r31d, dword ptr [r31+r15*4-0x53fc2e65] IID106 + __ cmovl(Assembler::Condition::belowEqual, r28, Address(rdx, rcx, (Address::ScaleFactor)3, -0x3bc9229f)); // cmovbe r28d, dword ptr [rdx+rcx*8-0x3bc9229f] IID107 + __ cmovl(Assembler::Condition::above, r31, Address(rdx, r19, (Address::ScaleFactor)3, +0x7bf1761c)); // cmova r31d, dword ptr [rdx+r19*8+0x7bf1761c] IID108 + __ cmovl(Assembler::Condition::negative, rdx, Address(r17, r18, (Address::ScaleFactor)0, -0x1da2fc03)); // cmovs edx, dword ptr [r17+r18*1-0x1da2fc03] IID109 + __ cmovl(Assembler::Condition::positive, r9, Address(r21, r23, (Address::ScaleFactor)2, -0x2799454a)); // cmovns r9d, dword ptr [r21+r23*4-0x2799454a] IID110 + __ cmovl(Assembler::Condition::parity, r27, Address(r13, -0x654c249c)); // cmovp r27d, dword ptr [r13-0x654c249c] IID111 + __ cmovl(Assembler::Condition::noParity, rdx, Address(r24, r10, (Address::ScaleFactor)3, +0x6c96beb2)); // cmovnp edx, dword ptr [r24+r10*8+0x6c96beb2] IID112 + __ cmovl(Assembler::Condition::less, r9, Address(rcx, r8, (Address::ScaleFactor)3, +0x573e1892)); // cmovl r9d, dword ptr [rcx+r8*8+0x573e1892] IID113 + __ cmovl(Assembler::Condition::greaterEqual, r31, Address(r26, r14, (Address::ScaleFactor)2, +0x717110b1)); // cmovge r31d, dword ptr [r26+r14*4+0x717110b1] IID114 + __ cmovl(Assembler::Condition::lessEqual, r24, Address(r19, r14, (Address::ScaleFactor)2, +0x119faad7)); // cmovle r24d, dword ptr [r19+r14*4+0x119faad7] IID115 + __ cmovl(Assembler::Condition::greater, r12, Address(r13, r12, (Address::ScaleFactor)0, +0xd537805)); // cmovg r12d, dword ptr [r13+r12*1+0xd537805] IID116 + __ setb(Assembler::Condition::overflow, r10); // seto r10b IID117 +#endif // _LP64 + __ setb(Assembler::Condition::noOverflow, rbx); // setno bl IID118 +#ifdef _LP64 + __ setb(Assembler::Condition::below, r13); // setb r13b IID119 + __ setb(Assembler::Condition::aboveEqual, r23); // setae r23b IID120 + __ setb(Assembler::Condition::zero, r24); // setz r24b IID121 + __ setb(Assembler::Condition::notZero, r15); // setnz r15b IID122 + __ setb(Assembler::Condition::belowEqual, r21); // setbe r21b IID123 + __ setb(Assembler::Condition::above, r17); // seta r17b IID124 + __ setb(Assembler::Condition::negative, r10); // sets r10b IID125 + __ setb(Assembler::Condition::positive, r24); // setns r24b IID126 + __ setb(Assembler::Condition::parity, r16); // setp r16b IID127 + __ setb(Assembler::Condition::noParity, r28); // setnp r28b IID128 + __ setb(Assembler::Condition::less, r11); // setl r11b IID129 + __ setb(Assembler::Condition::greaterEqual, r25); // setge r25b IID130 + __ setb(Assembler::Condition::lessEqual, r18); // setle r18b IID131 + __ setb(Assembler::Condition::greater, r14); // setg r14b IID132 + __ divl(r30); // div r30d IID133 + __ idivl(r23); // idiv r23d IID134 + __ imull(r28); // imul r28d IID135 + __ mull(r31); // mul r31d IID136 + __ negl(r27); // neg r27d IID137 + __ notl(r16); // not r16d IID138 +#endif // _LP64 + __ roll(rdx); // rol edx, cl IID139 +#ifdef _LP64 + __ rorl(r12); // ror r12d, cl IID140 + __ sarl(r14); // sar r14d, cl IID141 + __ sall(r19); // sal r19d, cl IID142 + __ shll(r10); // shl r10d, cl IID143 + __ shrl(r20); // shr r20d, cl IID144 +#endif // _LP64 + __ incrementl(rbx); // inc ebx IID145 +#ifdef _LP64 + __ decrementl(r14); // dec r14d IID146 + __ mull(Address(r12, -0x57a4fa5e)); // mul dword ptr [r12-0x57a4fa5e] IID147 + __ negl(Address(rbx, -0x3db4cfc7)); // neg dword ptr [rbx-0x3db4cfc7] IID148 + __ sarl(Address(r21, -0x7e70ad30)); // sar dword ptr [r21-0x7e70ad30], cl IID149 + __ sall(Address(r21, r28, (Address::ScaleFactor)3, -0x23456bc9)); // sal dword ptr [r21+r28*8-0x23456bc9], cl IID150 + __ shrl(Address(r11, r13, (Address::ScaleFactor)1, -0xe00fc44)); // shr dword ptr [r11+r13*2-0xe00fc44], cl IID151 + __ incrementl(Address(r19, -0x5e6ad56a)); // inc dword ptr [r19-0x5e6ad56a] IID152 + __ decrementl(Address(rcx, r20, (Address::ScaleFactor)0, -0x2530b9c4)); // dec dword ptr [rcx+r20*1-0x2530b9c4] IID153 + __ imull(r17, Address(r8, r24, (Address::ScaleFactor)1, +0x2efecf26), 1048576); // imul r17d, dword ptr [r8+r24*2+0x2efecf26], 1048576 IID154 + __ imull(r9, r8, 268435456); // imul r9d, r8d, 268435456 IID155 + __ shldl(r10, r15, 8); // shld r10d, r15d, 8 IID156 + __ shrdl(r29, r22, 2); // shrd r29d, r22d, 2 IID157 + __ movzbl(r14, Address(r19, -0x6c33584)); // movzx r14d, byte ptr [r19-0x6c33584] IID158 + __ movzwl(r25, Address(r12, r27, (Address::ScaleFactor)0, +0x2d05fa44)); // movzx r25d, word ptr [r12+r27*1+0x2d05fa44] IID159 + __ movsbl(r12, Address(r30, r15, (Address::ScaleFactor)0, +0x65bccac1)); // movsx r12d, byte ptr [r30+r15*1+0x65bccac1] IID160 + __ movswl(r26, Address(r10, r24, (Address::ScaleFactor)0, +0x1d707459)); // movsx r26d, word ptr [r10+r24*1+0x1d707459] IID161 + __ movzbl(r18, r8); // movzx r18d, r8b IID162 + __ movzwl(r31, r9); // movzx r31d, r9w IID163 + __ movsbl(r15, r22); // movsx r15d, r22b IID164 + __ movswl(r24, r24); // movsx r24d, r24w IID165 + __ cmpxchgb(r18, Address(r12, r28, (Address::ScaleFactor)1, -0x4855a65f)); // cmpxchg byte ptr [r12+r28*2-0x4855a65f], r18b IID166 + __ cmpxchgw(r28, Address(rdx, r14, (Address::ScaleFactor)3, +0x16f5a558)); // cmpxchg word ptr [rdx+r14*8+0x16f5a558], r28w IID167 + __ cmpxchgl(rdx, Address(r18, rdx, (Address::ScaleFactor)1, +0x50258d9c)); // cmpxchg dword ptr [r18+rdx*2+0x50258d9c], edx IID168 +#endif // _LP64 +#ifdef _LP64 + __ adcq(r9, rbx); // {load}adc r9, rbx IID169 + __ cmpq(r26, r24); // {load}cmp r26, r24 IID170 + __ imulq(r14, rdx); // {load}imul r14, rdx IID171 + __ popcntq(r25, r30); // {load}popcnt r25, r30 IID172 + __ sbbq(r24, r19); // {load}sbb r24, r19 IID173 + __ subq(r15, r11); // {load}sub r15, r11 IID174 + __ tzcntq(r18, r21); // {load}tzcnt r18, r21 IID175 + __ lzcntq(r15, r27); // {load}lzcnt r15, r27 IID176 + __ addq(r21, r20); // {load}add r21, r20 IID177 + __ andq(r11, r26); // {load}and r11, r26 IID178 + __ orq(r29, r15); // {load}or r29, r15 IID179 + __ xorq(r24, r21); // {load}xor r24, r21 IID180 + __ movq(r14, r13); // {load}mov r14, r13 IID181 + __ bsfq(r11, r22); // {load}bsf r11, r22 IID182 + __ bsrq(r14, r23); // {load}bsr r14, r23 IID183 + __ btq(r22, rcx); // {load}bt r22, rcx IID184 + __ xchgq(r25, r29); // {load}xchg r25, r29 IID185 + __ testq(r15, r8); // {load}test r15, r8 IID186 + __ addq(Address(r14, r10, (Address::ScaleFactor)3, -0x36e6fa02), r16); // add qword ptr [r14+r10*8-0x36e6fa02], r16 IID187 + __ andq(Address(rbx, r8, (Address::ScaleFactor)3, -0x279a21b8), r18); // and qword ptr [rbx+r8*8-0x279a21b8], r18 IID188 + __ cmpq(Address(r24, +0x62c3c9ef), r13); // cmp qword ptr [r24+0x62c3c9ef], r13 IID189 + __ orq(Address(r11, r22, (Address::ScaleFactor)2, +0x419fb378), r11); // or qword ptr [r11+r22*4+0x419fb378], r11 IID190 + __ xorq(Address(r25, r14, (Address::ScaleFactor)2, -0x32b449dd), r13); // xor qword ptr [r25+r14*4-0x32b449dd], r13 IID191 + __ subq(Address(r28, r31, (Address::ScaleFactor)3, +0x6ce1d361), r19); // sub qword ptr [r28+r31*8+0x6ce1d361], r19 IID192 + __ movq(Address(r25, r25, (Address::ScaleFactor)2, -0x3f5767c), r11); // mov qword ptr [r25+r25*4-0x3f5767c], r11 IID193 + __ xaddq(Address(r19, r17, (Address::ScaleFactor)3, +0x1febf06c), r20); // xadd qword ptr [r19+r17*8+0x1febf06c], r20 IID194 + __ andq(Address(r26, r17, (Address::ScaleFactor)1, -0x6b865f05), 65536); // and qword ptr [r26+r17*2-0x6b865f05], 65536 IID195 + __ addq(Address(r27, -0x6ec95d87), 65536); // add qword ptr [r27-0x6ec95d87], 65536 IID196 + __ cmpq(Address(rbx, r26, (Address::ScaleFactor)2, -0x1eabea4), 1048576); // cmp qword ptr [rbx+r26*4-0x1eabea4], 1048576 IID197 + __ sarq(Address(rbx, r19, (Address::ScaleFactor)0, +0x3c3c3de8), 8); // sar qword ptr [rbx+r19*1+0x3c3c3de8], 8 IID198 + __ salq(Address(r20, r23, (Address::ScaleFactor)1, +0x68519b6d), 8); // sal qword ptr [r20+r23*2+0x68519b6d], 8 IID199 + __ sbbq(Address(r31, r22, (Address::ScaleFactor)0, -0x7b3d1e85), 16); // sbb qword ptr [r31+r22*1-0x7b3d1e85], 16 IID200 + __ shrq(Address(r15, r18, (Address::ScaleFactor)3, +0x4d9d824), 4); // shr qword ptr [r15+r18*8+0x4d9d824], 4 IID201 + __ subq(Address(rdx, r29, (Address::ScaleFactor)2, +0x7e4aea85), 1); // sub qword ptr [rdx+r29*4+0x7e4aea85], 1 IID202 + __ xorq(Address(r23, r10, (Address::ScaleFactor)1, +0x2895c620), 16777216); // xor qword ptr [r23+r10*2+0x2895c620], 16777216 IID203 + __ orq(Address(r14, r13, (Address::ScaleFactor)0, -0x771b399b), 1); // or qword ptr [r14+r13*1-0x771b399b], 1 IID204 + __ movq(Address(r22, -0x63459b5a), 256); // mov qword ptr [r22-0x63459b5a], 256 IID205 + __ testq(Address(r13, -0xb9691c5), -1); // test qword ptr [r13-0xb9691c5], -1 IID206 + __ addq(r17, Address(r15, -0x51b64b0d)); // add r17, qword ptr [r15-0x51b64b0d] IID207 + __ andq(rcx, Address(r16, rcx, (Address::ScaleFactor)3, -0x1c8e4b54)); // and rcx, qword ptr [r16+rcx*8-0x1c8e4b54] IID208 + __ cmpq(r23, Address(r17, rcx, (Address::ScaleFactor)3, -0x44705560)); // cmp r23, qword ptr [r17+rcx*8-0x44705560] IID209 + __ lzcntq(r19, Address(r19, +0x487fe792)); // lzcnt r19, qword ptr [r19+0x487fe792] IID210 + __ orq(r11, Address(r17, -0x65de4329)); // or r11, qword ptr [r17-0x65de4329] IID211 + __ adcq(r29, Address(r9, -0x7092dc03)); // adc r29, qword ptr [r9-0x7092dc03] IID212 + __ imulq(r9, Address(r26, r26, (Address::ScaleFactor)3, -0x118287f7)); // imul r9, qword ptr [r26+r26*8-0x118287f7] IID213 + __ popcntq(r19, Address(r15, r19, (Address::ScaleFactor)1, -0x6e31ef95)); // popcnt r19, qword ptr [r15+r19*2-0x6e31ef95] IID214 + __ sbbq(r30, Address(r23, -0x46545c5e)); // sbb r30, qword ptr [r23-0x46545c5e] IID215 + __ subq(r23, Address(r31, r18, (Address::ScaleFactor)3, +0x663c37d8)); // sub r23, qword ptr [r31+r18*8+0x663c37d8] IID216 + __ tzcntq(r24, Address(r24, r25, (Address::ScaleFactor)3, -0x465a78f1)); // tzcnt r24, qword ptr [r24+r25*8-0x465a78f1] IID217 + __ xorq(r14, Address(r15, r19, (Address::ScaleFactor)1, +0x4196affa)); // xor r14, qword ptr [r15+r19*2+0x4196affa] IID218 + __ movq(rdx, Address(r25, r29, (Address::ScaleFactor)1, +0x115a6157)); // mov rdx, qword ptr [r25+r29*2+0x115a6157] IID219 + __ leaq(r19, Address(r28, r31, (Address::ScaleFactor)2, +0x6b82f933)); // lea r19, qword ptr [r28+r31*4+0x6b82f933] IID220 + __ cvttsd2siq(rcx, Address(r24, r21, (Address::ScaleFactor)3, -0x39dc99eb)); // cvttsd2si rcx, qword ptr [r24+r21*8-0x39dc99eb] IID221 + __ xchgq(r29, Address(r17, r24, (Address::ScaleFactor)3, +0x5902f01d)); // xchg r29, qword ptr [r17+r24*8+0x5902f01d] IID222 + __ testq(r12, Address(r24, r29, (Address::ScaleFactor)2, +0x8865bfc)); // test r12, qword ptr [r24+r29*4+0x8865bfc] IID223 + __ addq(r10, 16); // add r10, 16 IID224 + __ andq(r26, 256); // and r26, 256 IID225 + __ adcq(rcx, 1); // adc rcx, 1 IID226 + __ cmpq(r21, 65536); // cmp r21, 65536 IID227 + __ rclq(r28, 4); // rcl r28, 4 IID228 + __ rcrq(r28, 16); // rcr r28, 16 IID229 + __ rolq(r18, 1); // rol r18, 1 IID230 + __ rorq(r26, 2); // ror r26, 2 IID231 + __ sarq(r19, 2); // sar r19, 2 IID232 + __ salq(r14, 8); // sal r14, 8 IID233 + __ sbbq(r10, 65536); // sbb r10, 65536 IID234 + __ shlq(r30, 1); // shl r30, 1 IID235 + __ shrq(r15, 8); // shr r15, 8 IID236 + __ subq(r21, 1048576); // sub r21, 1048576 IID237 + __ xorq(rbx, 268435456); // xor rbx, 268435456 IID238 + __ movq(r19, 16); // mov r19, 16 IID239 + __ mov64(r19, 17179869184); // mov r19, 17179869184 IID240 + __ btq(r21, 1); // bt r21, 1 IID241 + __ testq(r15, -65536); // test r15, -65536 IID242 + __ orq_imm32(r21, 1073741824); // or r21, 1073741824 IID243 + __ subq_imm32(r19, 65536); // sub r19, 65536 IID244 + __ cmovq(Assembler::Condition::overflow, r15, Address(r29, -0x5c98219a)); // cmovo r15, qword ptr [r29-0x5c98219a] IID245 + __ cmovq(Assembler::Condition::noOverflow, rcx, Address(r21, +0x22cc581)); // cmovno rcx, qword ptr [r21+0x22cc581] IID246 + __ cmovq(Assembler::Condition::below, r15, Address(r29, r13, (Address::ScaleFactor)2, -0x5e968fb9)); // cmovb r15, qword ptr [r29+r13*4-0x5e968fb9] IID247 + __ cmovq(Assembler::Condition::aboveEqual, r26, Address(r24, +0x440c6894)); // cmovae r26, qword ptr [r24+0x440c6894] IID248 + __ cmovq(Assembler::Condition::zero, r17, Address(r23, r26, (Address::ScaleFactor)3, +0x23558b4e)); // cmovz r17, qword ptr [r23+r26*8+0x23558b4e] IID249 + __ cmovq(Assembler::Condition::notZero, r9, Address(r16, r29, (Address::ScaleFactor)3, -0x1289a3c9)); // cmovnz r9, qword ptr [r16+r29*8-0x1289a3c9] IID250 + __ cmovq(Assembler::Condition::belowEqual, r8, Address(r11, -0x49e134cc)); // cmovbe r8, qword ptr [r11-0x49e134cc] IID251 + __ cmovq(Assembler::Condition::above, r26, Address(r11, r20, (Address::ScaleFactor)1, -0x3ef9057a)); // cmova r26, qword ptr [r11+r20*2-0x3ef9057a] IID252 + __ cmovq(Assembler::Condition::negative, r11, Address(r26, r13, (Address::ScaleFactor)2, +0x4bd18f9f)); // cmovs r11, qword ptr [r26+r13*4+0x4bd18f9f] IID253 + __ cmovq(Assembler::Condition::positive, r8, Address(r9, r11, (Address::ScaleFactor)3, +0x4b42a528)); // cmovns r8, qword ptr [r9+r11*8+0x4b42a528] IID254 + __ cmovq(Assembler::Condition::parity, r12, Address(r19, r9, (Address::ScaleFactor)1, +0x68559a1c)); // cmovp r12, qword ptr [r19+r9*2+0x68559a1c] IID255 + __ cmovq(Assembler::Condition::noParity, r22, Address(r18, r17, (Address::ScaleFactor)1, +0x2c4d8e80)); // cmovnp r22, qword ptr [r18+r17*2+0x2c4d8e80] IID256 + __ cmovq(Assembler::Condition::less, r26, Address(r18, r30, (Address::ScaleFactor)0, -0x2ae8896e)); // cmovl r26, qword ptr [r18+r30*1-0x2ae8896e] IID257 + __ cmovq(Assembler::Condition::greaterEqual, r22, Address(r11, +0x4fefa622)); // cmovge r22, qword ptr [r11+0x4fefa622] IID258 + __ cmovq(Assembler::Condition::lessEqual, r28, Address(r18, r27, (Address::ScaleFactor)1, +0x6b7a8c34)); // cmovle r28, qword ptr [r18+r27*2+0x6b7a8c34] IID259 + __ cmovq(Assembler::Condition::greater, r20, Address(r23, r20, (Address::ScaleFactor)0, -0x12e725c5)); // cmovg r20, qword ptr [r23+r20*1-0x12e725c5] IID260 + __ call(r9); // call r9 IID261 + __ divq(r22); // div r22 IID262 + __ idivq(r29); // idiv r29 IID263 + __ imulq(rbx); // imul rbx IID264 + __ mulq(r27); // mul r27 IID265 + __ negq(rbx); // neg rbx IID266 + __ notq(r17); // not r17 IID267 + __ rolq(r25); // rol r25, cl IID268 + __ rorq(rbx); // ror rbx, cl IID269 + __ sarq(r17); // sar r17, cl IID270 + __ salq(r28); // sal r28, cl IID271 + __ shlq(r28); // shl r28, cl IID272 + __ shrq(r30); // shr r30, cl IID273 + __ incrementq(r27); // inc r27 IID274 + __ decrementq(rdx); // dec rdx IID275 + __ pushp(r27); // pushp r27 IID276 + __ popp(r10); // popp r10 IID277 + __ call(Address(r27, -0x22db8705)); // call qword ptr [r27-0x22db8705] IID278 + __ mulq(Address(r27, r21, (Address::ScaleFactor)0, -0x1f59ff9c)); // mul qword ptr [r27+r21*1-0x1f59ff9c] IID279 + __ negq(Address(r19, rcx, (Address::ScaleFactor)3, +0x7a47b812)); // neg qword ptr [r19+rcx*8+0x7a47b812] IID280 + __ sarq(Address(r18, r21, (Address::ScaleFactor)1, -0x48857a46)); // sar qword ptr [r18+r21*2-0x48857a46], cl IID281 + __ salq(Address(r24, -0x7a2bda2c)); // sal qword ptr [r24-0x7a2bda2c], cl IID282 + __ shrq(Address(r24, +0x1abd92f)); // shr qword ptr [r24+0x1abd92f], cl IID283 + __ incrementq(Address(r9, r9, (Address::ScaleFactor)3, +0x31a92520)); // inc qword ptr [r9+r9*8+0x31a92520] IID284 + __ decrementq(Address(r9, r8, (Address::ScaleFactor)0, +0x7f14b4bd)); // dec qword ptr [r9+r8*1+0x7f14b4bd] IID285 + __ imulq(r14, Address(r29, r15, (Address::ScaleFactor)1, +0x5281cf9c), 256); // imul r14, qword ptr [r29+r15*2+0x5281cf9c], 256 IID286 + __ imulq(r16, r28, 1048576); // imul r16, r28, 1048576 IID287 + __ shldq(r17, r24, 2); // shld r17, r24, 2 IID288 + __ shrdq(r16, r11, 2); // shrd r16, r11, 2 IID289 + __ pop2(r10, r11); // {load}pop2 r11, r10 IID290 + __ pop2p(r15, r24); // {load}pop2p r24, r15 IID291 + __ push2(r28, r11); // {load}push2 r11, r28 IID292 + __ push2p(r12, r31); // {load}push2p r31, r12 IID293 + __ movzbq(r24, Address(r22, r16, (Address::ScaleFactor)0, +0x511be837)); // movzx r24, byte ptr [r22+r16*1+0x511be837] IID294 + __ movzwq(r15, Address(r15, r26, (Address::ScaleFactor)2, -0x38794ee)); // movzx r15, word ptr [r15+r26*4-0x38794ee] IID295 + __ movsbq(r15, Address(r25, r16, (Address::ScaleFactor)3, -0x7a092741)); // movsx r15, byte ptr [r25+r16*8-0x7a092741] IID296 + __ movswq(rdx, Address(r28, r19, (Address::ScaleFactor)2, +0x79da6a)); // movsx rdx, word ptr [r28+r19*4+0x79da6a] IID297 + __ movzbq(r27, r9); // movzx r27, r9b IID298 + __ movzwq(r25, r21); // movzx r25, r21w IID299 + __ movsbq(r14, r12); // movsx r14, r12b IID300 + __ movswq(r23, r11); // movsx r23, r11w IID301 + __ cmpxchgq(r30, Address(r12, -0x65a974df)); // cmpxchg qword ptr [r12-0x65a974df], r30 IID302 #endif // _LP64 - __ shrdl(rcx, rdx); // {load}shrd ecx, edx IID27 - __ shrdl(rdx, rbx); // {load}shrd edx, ebx IID28 -#ifdef _LP64 - __ shrdl(rbx, r8); // {load}shrd ebx, r8d IID29 - __ shrdl(r8, r9); // {load}shrd r8d, r9d IID30 - __ shrdl(r9, r10); // {load}shrd r9d, r10d IID31 - __ shrdl(r10, r11); // {load}shrd r10d, r11d IID32 - __ shrdl(r11, r12); // {load}shrd r11d, r12d IID33 - __ shrdl(r12, r13); // {load}shrd r12d, r13d IID34 - __ shrdl(r13, r14); // {load}shrd r13d, r14d IID35 - __ shrdl(r14, r15); // {load}shrd r14d, r15d IID36 - __ shrdl(r15, r16); // {load}shrd r15d, r16d IID37 - __ shrdl(r16, r17); // {load}shrd r16d, r17d IID38 - __ shrdl(r17, r18); // {load}shrd r17d, r18d IID39 - __ shrdl(r18, r19); // {load}shrd r18d, r19d IID40 - __ shrdl(r19, r20); // {load}shrd r19d, r20d IID41 - __ shrdl(r20, r21); // {load}shrd r20d, r21d IID42 - __ shrdl(r21, r22); // {load}shrd r21d, r22d IID43 - __ shrdl(r22, r23); // {load}shrd r22d, r23d IID44 - __ shrdl(r23, r24); // {load}shrd r23d, r24d IID45 - __ shrdl(r24, r25); // {load}shrd r24d, r25d IID46 - __ shrdl(r25, r26); // {load}shrd r25d, r26d IID47 - __ shrdl(r26, r27); // {load}shrd r26d, r27d IID48 - __ shrdl(r27, r28); // {load}shrd r27d, r28d IID49 - __ shrdl(r28, r29); // {load}shrd r28d, r29d IID50 - __ shrdl(r29, r30); // {load}shrd r29d, r30d IID51 - __ shrdl(r30, r31); // {load}shrd r30d, r31d IID52 - __ shrdl(r31, rcx); // {load}shrd r31d, ecx IID53 -#endif // _LP64 - __ adcl(rcx, rdx); // {load}adc ecx, edx IID54 - __ adcl(rdx, rbx); // {load}adc edx, ebx IID55 -#ifdef _LP64 - __ adcl(rbx, r8); // {load}adc ebx, r8d IID56 - __ adcl(r8, r9); // {load}adc r8d, r9d IID57 - __ adcl(r9, r10); // {load}adc r9d, r10d IID58 - __ adcl(r10, r11); // {load}adc r10d, r11d IID59 - __ adcl(r11, r12); // {load}adc r11d, r12d IID60 - __ adcl(r12, r13); // {load}adc r12d, r13d IID61 - __ adcl(r13, r14); // {load}adc r13d, r14d IID62 - __ adcl(r14, r15); // {load}adc r14d, r15d IID63 - __ adcl(r15, r16); // {load}adc r15d, r16d IID64 - __ adcl(r16, r17); // {load}adc r16d, r17d IID65 - __ adcl(r17, r18); // {load}adc r17d, r18d IID66 - __ adcl(r18, r19); // {load}adc r18d, r19d IID67 - __ adcl(r19, r20); // {load}adc r19d, r20d IID68 - __ adcl(r20, r21); // {load}adc r20d, r21d IID69 - __ adcl(r21, r22); // {load}adc r21d, r22d IID70 - __ adcl(r22, r23); // {load}adc r22d, r23d IID71 - __ adcl(r23, r24); // {load}adc r23d, r24d IID72 - __ adcl(r24, r25); // {load}adc r24d, r25d IID73 - __ adcl(r25, r26); // {load}adc r25d, r26d IID74 - __ adcl(r26, r27); // {load}adc r26d, r27d IID75 - __ adcl(r27, r28); // {load}adc r27d, r28d IID76 - __ adcl(r28, r29); // {load}adc r28d, r29d IID77 - __ adcl(r29, r30); // {load}adc r29d, r30d IID78 - __ adcl(r30, r31); // {load}adc r30d, r31d IID79 - __ adcl(r31, rcx); // {load}adc r31d, ecx IID80 -#endif // _LP64 - __ cmpl(rcx, rdx); // {load}cmp ecx, edx IID81 - __ cmpl(rdx, rbx); // {load}cmp edx, ebx IID82 -#ifdef _LP64 - __ cmpl(rbx, r8); // {load}cmp ebx, r8d IID83 - __ cmpl(r8, r9); // {load}cmp r8d, r9d IID84 - __ cmpl(r9, r10); // {load}cmp r9d, r10d IID85 - __ cmpl(r10, r11); // {load}cmp r10d, r11d IID86 - __ cmpl(r11, r12); // {load}cmp r11d, r12d IID87 - __ cmpl(r12, r13); // {load}cmp r12d, r13d IID88 - __ cmpl(r13, r14); // {load}cmp r13d, r14d IID89 - __ cmpl(r14, r15); // {load}cmp r14d, r15d IID90 - __ cmpl(r15, r16); // {load}cmp r15d, r16d IID91 - __ cmpl(r16, r17); // {load}cmp r16d, r17d IID92 - __ cmpl(r17, r18); // {load}cmp r17d, r18d IID93 - __ cmpl(r18, r19); // {load}cmp r18d, r19d IID94 - __ cmpl(r19, r20); // {load}cmp r19d, r20d IID95 - __ cmpl(r20, r21); // {load}cmp r20d, r21d IID96 - __ cmpl(r21, r22); // {load}cmp r21d, r22d IID97 - __ cmpl(r22, r23); // {load}cmp r22d, r23d IID98 - __ cmpl(r23, r24); // {load}cmp r23d, r24d IID99 - __ cmpl(r24, r25); // {load}cmp r24d, r25d IID100 - __ cmpl(r25, r26); // {load}cmp r25d, r26d IID101 - __ cmpl(r26, r27); // {load}cmp r26d, r27d IID102 - __ cmpl(r27, r28); // {load}cmp r27d, r28d IID103 - __ cmpl(r28, r29); // {load}cmp r28d, r29d IID104 - __ cmpl(r29, r30); // {load}cmp r29d, r30d IID105 - __ cmpl(r30, r31); // {load}cmp r30d, r31d IID106 - __ cmpl(r31, rcx); // {load}cmp r31d, ecx IID107 -#endif // _LP64 - __ imull(rcx, rdx); // {load}imul ecx, edx IID108 - __ imull(rdx, rbx); // {load}imul edx, ebx IID109 -#ifdef _LP64 - __ imull(rbx, r8); // {load}imul ebx, r8d IID110 - __ imull(r8, r9); // {load}imul r8d, r9d IID111 - __ imull(r9, r10); // {load}imul r9d, r10d IID112 - __ imull(r10, r11); // {load}imul r10d, r11d IID113 - __ imull(r11, r12); // {load}imul r11d, r12d IID114 - __ imull(r12, r13); // {load}imul r12d, r13d IID115 - __ imull(r13, r14); // {load}imul r13d, r14d IID116 - __ imull(r14, r15); // {load}imul r14d, r15d IID117 - __ imull(r15, r16); // {load}imul r15d, r16d IID118 - __ imull(r16, r17); // {load}imul r16d, r17d IID119 - __ imull(r17, r18); // {load}imul r17d, r18d IID120 - __ imull(r18, r19); // {load}imul r18d, r19d IID121 - __ imull(r19, r20); // {load}imul r19d, r20d IID122 - __ imull(r20, r21); // {load}imul r20d, r21d IID123 - __ imull(r21, r22); // {load}imul r21d, r22d IID124 - __ imull(r22, r23); // {load}imul r22d, r23d IID125 - __ imull(r23, r24); // {load}imul r23d, r24d IID126 - __ imull(r24, r25); // {load}imul r24d, r25d IID127 - __ imull(r25, r26); // {load}imul r25d, r26d IID128 - __ imull(r26, r27); // {load}imul r26d, r27d IID129 - __ imull(r27, r28); // {load}imul r27d, r28d IID130 - __ imull(r28, r29); // {load}imul r28d, r29d IID131 - __ imull(r29, r30); // {load}imul r29d, r30d IID132 - __ imull(r30, r31); // {load}imul r30d, r31d IID133 - __ imull(r31, rcx); // {load}imul r31d, ecx IID134 -#endif // _LP64 - __ popcntl(rcx, rdx); // {load}popcnt ecx, edx IID135 - __ popcntl(rdx, rbx); // {load}popcnt edx, ebx IID136 -#ifdef _LP64 - __ popcntl(rbx, r8); // {load}popcnt ebx, r8d IID137 - __ popcntl(r8, r9); // {load}popcnt r8d, r9d IID138 - __ popcntl(r9, r10); // {load}popcnt r9d, r10d IID139 - __ popcntl(r10, r11); // {load}popcnt r10d, r11d IID140 - __ popcntl(r11, r12); // {load}popcnt r11d, r12d IID141 - __ popcntl(r12, r13); // {load}popcnt r12d, r13d IID142 - __ popcntl(r13, r14); // {load}popcnt r13d, r14d IID143 - __ popcntl(r14, r15); // {load}popcnt r14d, r15d IID144 - __ popcntl(r15, r16); // {load}popcnt r15d, r16d IID145 - __ popcntl(r16, r17); // {load}popcnt r16d, r17d IID146 - __ popcntl(r17, r18); // {load}popcnt r17d, r18d IID147 - __ popcntl(r18, r19); // {load}popcnt r18d, r19d IID148 - __ popcntl(r19, r20); // {load}popcnt r19d, r20d IID149 - __ popcntl(r20, r21); // {load}popcnt r20d, r21d IID150 - __ popcntl(r21, r22); // {load}popcnt r21d, r22d IID151 - __ popcntl(r22, r23); // {load}popcnt r22d, r23d IID152 - __ popcntl(r23, r24); // {load}popcnt r23d, r24d IID153 - __ popcntl(r24, r25); // {load}popcnt r24d, r25d IID154 - __ popcntl(r25, r26); // {load}popcnt r25d, r26d IID155 - __ popcntl(r26, r27); // {load}popcnt r26d, r27d IID156 - __ popcntl(r27, r28); // {load}popcnt r27d, r28d IID157 - __ popcntl(r28, r29); // {load}popcnt r28d, r29d IID158 - __ popcntl(r29, r30); // {load}popcnt r29d, r30d IID159 - __ popcntl(r30, r31); // {load}popcnt r30d, r31d IID160 - __ popcntl(r31, rcx); // {load}popcnt r31d, ecx IID161 -#endif // _LP64 - __ sbbl(rcx, rdx); // {load}sbb ecx, edx IID162 - __ sbbl(rdx, rbx); // {load}sbb edx, ebx IID163 -#ifdef _LP64 - __ sbbl(rbx, r8); // {load}sbb ebx, r8d IID164 - __ sbbl(r8, r9); // {load}sbb r8d, r9d IID165 - __ sbbl(r9, r10); // {load}sbb r9d, r10d IID166 - __ sbbl(r10, r11); // {load}sbb r10d, r11d IID167 - __ sbbl(r11, r12); // {load}sbb r11d, r12d IID168 - __ sbbl(r12, r13); // {load}sbb r12d, r13d IID169 - __ sbbl(r13, r14); // {load}sbb r13d, r14d IID170 - __ sbbl(r14, r15); // {load}sbb r14d, r15d IID171 - __ sbbl(r15, r16); // {load}sbb r15d, r16d IID172 - __ sbbl(r16, r17); // {load}sbb r16d, r17d IID173 - __ sbbl(r17, r18); // {load}sbb r17d, r18d IID174 - __ sbbl(r18, r19); // {load}sbb r18d, r19d IID175 - __ sbbl(r19, r20); // {load}sbb r19d, r20d IID176 - __ sbbl(r20, r21); // {load}sbb r20d, r21d IID177 - __ sbbl(r21, r22); // {load}sbb r21d, r22d IID178 - __ sbbl(r22, r23); // {load}sbb r22d, r23d IID179 - __ sbbl(r23, r24); // {load}sbb r23d, r24d IID180 - __ sbbl(r24, r25); // {load}sbb r24d, r25d IID181 - __ sbbl(r25, r26); // {load}sbb r25d, r26d IID182 - __ sbbl(r26, r27); // {load}sbb r26d, r27d IID183 - __ sbbl(r27, r28); // {load}sbb r27d, r28d IID184 - __ sbbl(r28, r29); // {load}sbb r28d, r29d IID185 - __ sbbl(r29, r30); // {load}sbb r29d, r30d IID186 - __ sbbl(r30, r31); // {load}sbb r30d, r31d IID187 - __ sbbl(r31, rcx); // {load}sbb r31d, ecx IID188 -#endif // _LP64 - __ subl(rcx, rdx); // {load}sub ecx, edx IID189 - __ subl(rdx, rbx); // {load}sub edx, ebx IID190 -#ifdef _LP64 - __ subl(rbx, r8); // {load}sub ebx, r8d IID191 - __ subl(r8, r9); // {load}sub r8d, r9d IID192 - __ subl(r9, r10); // {load}sub r9d, r10d IID193 - __ subl(r10, r11); // {load}sub r10d, r11d IID194 - __ subl(r11, r12); // {load}sub r11d, r12d IID195 - __ subl(r12, r13); // {load}sub r12d, r13d IID196 - __ subl(r13, r14); // {load}sub r13d, r14d IID197 - __ subl(r14, r15); // {load}sub r14d, r15d IID198 - __ subl(r15, r16); // {load}sub r15d, r16d IID199 - __ subl(r16, r17); // {load}sub r16d, r17d IID200 - __ subl(r17, r18); // {load}sub r17d, r18d IID201 - __ subl(r18, r19); // {load}sub r18d, r19d IID202 - __ subl(r19, r20); // {load}sub r19d, r20d IID203 - __ subl(r20, r21); // {load}sub r20d, r21d IID204 - __ subl(r21, r22); // {load}sub r21d, r22d IID205 - __ subl(r22, r23); // {load}sub r22d, r23d IID206 - __ subl(r23, r24); // {load}sub r23d, r24d IID207 - __ subl(r24, r25); // {load}sub r24d, r25d IID208 - __ subl(r25, r26); // {load}sub r25d, r26d IID209 - __ subl(r26, r27); // {load}sub r26d, r27d IID210 - __ subl(r27, r28); // {load}sub r27d, r28d IID211 - __ subl(r28, r29); // {load}sub r28d, r29d IID212 - __ subl(r29, r30); // {load}sub r29d, r30d IID213 - __ subl(r30, r31); // {load}sub r30d, r31d IID214 - __ subl(r31, rcx); // {load}sub r31d, ecx IID215 -#endif // _LP64 - __ tzcntl(rcx, rdx); // {load}tzcnt ecx, edx IID216 - __ tzcntl(rdx, rbx); // {load}tzcnt edx, ebx IID217 -#ifdef _LP64 - __ tzcntl(rbx, r8); // {load}tzcnt ebx, r8d IID218 - __ tzcntl(r8, r9); // {load}tzcnt r8d, r9d IID219 - __ tzcntl(r9, r10); // {load}tzcnt r9d, r10d IID220 - __ tzcntl(r10, r11); // {load}tzcnt r10d, r11d IID221 - __ tzcntl(r11, r12); // {load}tzcnt r11d, r12d IID222 - __ tzcntl(r12, r13); // {load}tzcnt r12d, r13d IID223 - __ tzcntl(r13, r14); // {load}tzcnt r13d, r14d IID224 - __ tzcntl(r14, r15); // {load}tzcnt r14d, r15d IID225 - __ tzcntl(r15, r16); // {load}tzcnt r15d, r16d IID226 - __ tzcntl(r16, r17); // {load}tzcnt r16d, r17d IID227 - __ tzcntl(r17, r18); // {load}tzcnt r17d, r18d IID228 - __ tzcntl(r18, r19); // {load}tzcnt r18d, r19d IID229 - __ tzcntl(r19, r20); // {load}tzcnt r19d, r20d IID230 - __ tzcntl(r20, r21); // {load}tzcnt r20d, r21d IID231 - __ tzcntl(r21, r22); // {load}tzcnt r21d, r22d IID232 - __ tzcntl(r22, r23); // {load}tzcnt r22d, r23d IID233 - __ tzcntl(r23, r24); // {load}tzcnt r23d, r24d IID234 - __ tzcntl(r24, r25); // {load}tzcnt r24d, r25d IID235 - __ tzcntl(r25, r26); // {load}tzcnt r25d, r26d IID236 - __ tzcntl(r26, r27); // {load}tzcnt r26d, r27d IID237 - __ tzcntl(r27, r28); // {load}tzcnt r27d, r28d IID238 - __ tzcntl(r28, r29); // {load}tzcnt r28d, r29d IID239 - __ tzcntl(r29, r30); // {load}tzcnt r29d, r30d IID240 - __ tzcntl(r30, r31); // {load}tzcnt r30d, r31d IID241 - __ tzcntl(r31, rcx); // {load}tzcnt r31d, ecx IID242 -#endif // _LP64 - __ lzcntl(rcx, rdx); // {load}lzcnt ecx, edx IID243 - __ lzcntl(rdx, rbx); // {load}lzcnt edx, ebx IID244 -#ifdef _LP64 - __ lzcntl(rbx, r8); // {load}lzcnt ebx, r8d IID245 - __ lzcntl(r8, r9); // {load}lzcnt r8d, r9d IID246 - __ lzcntl(r9, r10); // {load}lzcnt r9d, r10d IID247 - __ lzcntl(r10, r11); // {load}lzcnt r10d, r11d IID248 - __ lzcntl(r11, r12); // {load}lzcnt r11d, r12d IID249 - __ lzcntl(r12, r13); // {load}lzcnt r12d, r13d IID250 - __ lzcntl(r13, r14); // {load}lzcnt r13d, r14d IID251 - __ lzcntl(r14, r15); // {load}lzcnt r14d, r15d IID252 - __ lzcntl(r15, r16); // {load}lzcnt r15d, r16d IID253 - __ lzcntl(r16, r17); // {load}lzcnt r16d, r17d IID254 - __ lzcntl(r17, r18); // {load}lzcnt r17d, r18d IID255 - __ lzcntl(r18, r19); // {load}lzcnt r18d, r19d IID256 - __ lzcntl(r19, r20); // {load}lzcnt r19d, r20d IID257 - __ lzcntl(r20, r21); // {load}lzcnt r20d, r21d IID258 - __ lzcntl(r21, r22); // {load}lzcnt r21d, r22d IID259 - __ lzcntl(r22, r23); // {load}lzcnt r22d, r23d IID260 - __ lzcntl(r23, r24); // {load}lzcnt r23d, r24d IID261 - __ lzcntl(r24, r25); // {load}lzcnt r24d, r25d IID262 - __ lzcntl(r25, r26); // {load}lzcnt r25d, r26d IID263 - __ lzcntl(r26, r27); // {load}lzcnt r26d, r27d IID264 - __ lzcntl(r27, r28); // {load}lzcnt r27d, r28d IID265 - __ lzcntl(r28, r29); // {load}lzcnt r28d, r29d IID266 - __ lzcntl(r29, r30); // {load}lzcnt r29d, r30d IID267 - __ lzcntl(r30, r31); // {load}lzcnt r30d, r31d IID268 - __ lzcntl(r31, rcx); // {load}lzcnt r31d, ecx IID269 -#endif // _LP64 - __ addl(rcx, rdx); // {load}add ecx, edx IID270 - __ addl(rdx, rbx); // {load}add edx, ebx IID271 -#ifdef _LP64 - __ addl(rbx, r8); // {load}add ebx, r8d IID272 - __ addl(r8, r9); // {load}add r8d, r9d IID273 - __ addl(r9, r10); // {load}add r9d, r10d IID274 - __ addl(r10, r11); // {load}add r10d, r11d IID275 - __ addl(r11, r12); // {load}add r11d, r12d IID276 - __ addl(r12, r13); // {load}add r12d, r13d IID277 - __ addl(r13, r14); // {load}add r13d, r14d IID278 - __ addl(r14, r15); // {load}add r14d, r15d IID279 - __ addl(r15, r16); // {load}add r15d, r16d IID280 - __ addl(r16, r17); // {load}add r16d, r17d IID281 - __ addl(r17, r18); // {load}add r17d, r18d IID282 - __ addl(r18, r19); // {load}add r18d, r19d IID283 - __ addl(r19, r20); // {load}add r19d, r20d IID284 - __ addl(r20, r21); // {load}add r20d, r21d IID285 - __ addl(r21, r22); // {load}add r21d, r22d IID286 - __ addl(r22, r23); // {load}add r22d, r23d IID287 - __ addl(r23, r24); // {load}add r23d, r24d IID288 - __ addl(r24, r25); // {load}add r24d, r25d IID289 - __ addl(r25, r26); // {load}add r25d, r26d IID290 - __ addl(r26, r27); // {load}add r26d, r27d IID291 - __ addl(r27, r28); // {load}add r27d, r28d IID292 - __ addl(r28, r29); // {load}add r28d, r29d IID293 - __ addl(r29, r30); // {load}add r29d, r30d IID294 - __ addl(r30, r31); // {load}add r30d, r31d IID295 - __ addl(r31, rcx); // {load}add r31d, ecx IID296 -#endif // _LP64 - __ andl(rcx, rdx); // {load}and ecx, edx IID297 - __ andl(rdx, rbx); // {load}and edx, ebx IID298 -#ifdef _LP64 - __ andl(rbx, r8); // {load}and ebx, r8d IID299 - __ andl(r8, r9); // {load}and r8d, r9d IID300 - __ andl(r9, r10); // {load}and r9d, r10d IID301 - __ andl(r10, r11); // {load}and r10d, r11d IID302 - __ andl(r11, r12); // {load}and r11d, r12d IID303 - __ andl(r12, r13); // {load}and r12d, r13d IID304 - __ andl(r13, r14); // {load}and r13d, r14d IID305 - __ andl(r14, r15); // {load}and r14d, r15d IID306 - __ andl(r15, r16); // {load}and r15d, r16d IID307 - __ andl(r16, r17); // {load}and r16d, r17d IID308 - __ andl(r17, r18); // {load}and r17d, r18d IID309 - __ andl(r18, r19); // {load}and r18d, r19d IID310 - __ andl(r19, r20); // {load}and r19d, r20d IID311 - __ andl(r20, r21); // {load}and r20d, r21d IID312 - __ andl(r21, r22); // {load}and r21d, r22d IID313 - __ andl(r22, r23); // {load}and r22d, r23d IID314 - __ andl(r23, r24); // {load}and r23d, r24d IID315 - __ andl(r24, r25); // {load}and r24d, r25d IID316 - __ andl(r25, r26); // {load}and r25d, r26d IID317 - __ andl(r26, r27); // {load}and r26d, r27d IID318 - __ andl(r27, r28); // {load}and r27d, r28d IID319 - __ andl(r28, r29); // {load}and r28d, r29d IID320 - __ andl(r29, r30); // {load}and r29d, r30d IID321 - __ andl(r30, r31); // {load}and r30d, r31d IID322 - __ andl(r31, rcx); // {load}and r31d, ecx IID323 -#endif // _LP64 - __ orl(rcx, rdx); // {load}or ecx, edx IID324 - __ orl(rdx, rbx); // {load}or edx, ebx IID325 -#ifdef _LP64 - __ orl(rbx, r8); // {load}or ebx, r8d IID326 - __ orl(r8, r9); // {load}or r8d, r9d IID327 - __ orl(r9, r10); // {load}or r9d, r10d IID328 - __ orl(r10, r11); // {load}or r10d, r11d IID329 - __ orl(r11, r12); // {load}or r11d, r12d IID330 - __ orl(r12, r13); // {load}or r12d, r13d IID331 - __ orl(r13, r14); // {load}or r13d, r14d IID332 - __ orl(r14, r15); // {load}or r14d, r15d IID333 - __ orl(r15, r16); // {load}or r15d, r16d IID334 - __ orl(r16, r17); // {load}or r16d, r17d IID335 - __ orl(r17, r18); // {load}or r17d, r18d IID336 - __ orl(r18, r19); // {load}or r18d, r19d IID337 - __ orl(r19, r20); // {load}or r19d, r20d IID338 - __ orl(r20, r21); // {load}or r20d, r21d IID339 - __ orl(r21, r22); // {load}or r21d, r22d IID340 - __ orl(r22, r23); // {load}or r22d, r23d IID341 - __ orl(r23, r24); // {load}or r23d, r24d IID342 - __ orl(r24, r25); // {load}or r24d, r25d IID343 - __ orl(r25, r26); // {load}or r25d, r26d IID344 - __ orl(r26, r27); // {load}or r26d, r27d IID345 - __ orl(r27, r28); // {load}or r27d, r28d IID346 - __ orl(r28, r29); // {load}or r28d, r29d IID347 - __ orl(r29, r30); // {load}or r29d, r30d IID348 - __ orl(r30, r31); // {load}or r30d, r31d IID349 - __ orl(r31, rcx); // {load}or r31d, ecx IID350 -#endif // _LP64 - __ xorl(rcx, rdx); // {load}xor ecx, edx IID351 - __ xorl(rdx, rbx); // {load}xor edx, ebx IID352 -#ifdef _LP64 - __ xorl(rbx, r8); // {load}xor ebx, r8d IID353 - __ xorl(r8, r9); // {load}xor r8d, r9d IID354 - __ xorl(r9, r10); // {load}xor r9d, r10d IID355 - __ xorl(r10, r11); // {load}xor r10d, r11d IID356 - __ xorl(r11, r12); // {load}xor r11d, r12d IID357 - __ xorl(r12, r13); // {load}xor r12d, r13d IID358 - __ xorl(r13, r14); // {load}xor r13d, r14d IID359 - __ xorl(r14, r15); // {load}xor r14d, r15d IID360 - __ xorl(r15, r16); // {load}xor r15d, r16d IID361 - __ xorl(r16, r17); // {load}xor r16d, r17d IID362 - __ xorl(r17, r18); // {load}xor r17d, r18d IID363 - __ xorl(r18, r19); // {load}xor r18d, r19d IID364 - __ xorl(r19, r20); // {load}xor r19d, r20d IID365 - __ xorl(r20, r21); // {load}xor r20d, r21d IID366 - __ xorl(r21, r22); // {load}xor r21d, r22d IID367 - __ xorl(r22, r23); // {load}xor r22d, r23d IID368 - __ xorl(r23, r24); // {load}xor r23d, r24d IID369 - __ xorl(r24, r25); // {load}xor r24d, r25d IID370 - __ xorl(r25, r26); // {load}xor r25d, r26d IID371 - __ xorl(r26, r27); // {load}xor r26d, r27d IID372 - __ xorl(r27, r28); // {load}xor r27d, r28d IID373 - __ xorl(r28, r29); // {load}xor r28d, r29d IID374 - __ xorl(r29, r30); // {load}xor r29d, r30d IID375 - __ xorl(r30, r31); // {load}xor r30d, r31d IID376 - __ xorl(r31, rcx); // {load}xor r31d, ecx IID377 -#endif // _LP64 - __ movl(rcx, rdx); // {load}mov ecx, edx IID378 - __ movl(rdx, rbx); // {load}mov edx, ebx IID379 -#ifdef _LP64 - __ movl(rbx, r8); // {load}mov ebx, r8d IID380 - __ movl(r8, r9); // {load}mov r8d, r9d IID381 - __ movl(r9, r10); // {load}mov r9d, r10d IID382 - __ movl(r10, r11); // {load}mov r10d, r11d IID383 - __ movl(r11, r12); // {load}mov r11d, r12d IID384 - __ movl(r12, r13); // {load}mov r12d, r13d IID385 - __ movl(r13, r14); // {load}mov r13d, r14d IID386 - __ movl(r14, r15); // {load}mov r14d, r15d IID387 - __ movl(r15, r16); // {load}mov r15d, r16d IID388 - __ movl(r16, r17); // {load}mov r16d, r17d IID389 - __ movl(r17, r18); // {load}mov r17d, r18d IID390 - __ movl(r18, r19); // {load}mov r18d, r19d IID391 - __ movl(r19, r20); // {load}mov r19d, r20d IID392 - __ movl(r20, r21); // {load}mov r20d, r21d IID393 - __ movl(r21, r22); // {load}mov r21d, r22d IID394 - __ movl(r22, r23); // {load}mov r22d, r23d IID395 - __ movl(r23, r24); // {load}mov r23d, r24d IID396 - __ movl(r24, r25); // {load}mov r24d, r25d IID397 - __ movl(r25, r26); // {load}mov r25d, r26d IID398 - __ movl(r26, r27); // {load}mov r26d, r27d IID399 - __ movl(r27, r28); // {load}mov r27d, r28d IID400 - __ movl(r28, r29); // {load}mov r28d, r29d IID401 - __ movl(r29, r30); // {load}mov r29d, r30d IID402 - __ movl(r30, r31); // {load}mov r30d, r31d IID403 - __ movl(r31, rcx); // {load}mov r31d, ecx IID404 -#endif // _LP64 - __ bsfl(rcx, rdx); // {load}bsf ecx, edx IID405 - __ bsfl(rdx, rbx); // {load}bsf edx, ebx IID406 -#ifdef _LP64 - __ bsfl(rbx, r8); // {load}bsf ebx, r8d IID407 - __ bsfl(r8, r9); // {load}bsf r8d, r9d IID408 - __ bsfl(r9, r10); // {load}bsf r9d, r10d IID409 - __ bsfl(r10, r11); // {load}bsf r10d, r11d IID410 - __ bsfl(r11, r12); // {load}bsf r11d, r12d IID411 - __ bsfl(r12, r13); // {load}bsf r12d, r13d IID412 - __ bsfl(r13, r14); // {load}bsf r13d, r14d IID413 - __ bsfl(r14, r15); // {load}bsf r14d, r15d IID414 - __ bsfl(r15, r16); // {load}bsf r15d, r16d IID415 - __ bsfl(r16, r17); // {load}bsf r16d, r17d IID416 - __ bsfl(r17, r18); // {load}bsf r17d, r18d IID417 - __ bsfl(r18, r19); // {load}bsf r18d, r19d IID418 - __ bsfl(r19, r20); // {load}bsf r19d, r20d IID419 - __ bsfl(r20, r21); // {load}bsf r20d, r21d IID420 - __ bsfl(r21, r22); // {load}bsf r21d, r22d IID421 - __ bsfl(r22, r23); // {load}bsf r22d, r23d IID422 - __ bsfl(r23, r24); // {load}bsf r23d, r24d IID423 - __ bsfl(r24, r25); // {load}bsf r24d, r25d IID424 - __ bsfl(r25, r26); // {load}bsf r25d, r26d IID425 - __ bsfl(r26, r27); // {load}bsf r26d, r27d IID426 - __ bsfl(r27, r28); // {load}bsf r27d, r28d IID427 - __ bsfl(r28, r29); // {load}bsf r28d, r29d IID428 - __ bsfl(r29, r30); // {load}bsf r29d, r30d IID429 - __ bsfl(r30, r31); // {load}bsf r30d, r31d IID430 - __ bsfl(r31, rcx); // {load}bsf r31d, ecx IID431 -#endif // _LP64 - __ bsrl(rcx, rdx); // {load}bsr ecx, edx IID432 - __ bsrl(rdx, rbx); // {load}bsr edx, ebx IID433 -#ifdef _LP64 - __ bsrl(rbx, r8); // {load}bsr ebx, r8d IID434 - __ bsrl(r8, r9); // {load}bsr r8d, r9d IID435 - __ bsrl(r9, r10); // {load}bsr r9d, r10d IID436 - __ bsrl(r10, r11); // {load}bsr r10d, r11d IID437 - __ bsrl(r11, r12); // {load}bsr r11d, r12d IID438 - __ bsrl(r12, r13); // {load}bsr r12d, r13d IID439 - __ bsrl(r13, r14); // {load}bsr r13d, r14d IID440 - __ bsrl(r14, r15); // {load}bsr r14d, r15d IID441 - __ bsrl(r15, r16); // {load}bsr r15d, r16d IID442 - __ bsrl(r16, r17); // {load}bsr r16d, r17d IID443 - __ bsrl(r17, r18); // {load}bsr r17d, r18d IID444 - __ bsrl(r18, r19); // {load}bsr r18d, r19d IID445 - __ bsrl(r19, r20); // {load}bsr r19d, r20d IID446 - __ bsrl(r20, r21); // {load}bsr r20d, r21d IID447 - __ bsrl(r21, r22); // {load}bsr r21d, r22d IID448 - __ bsrl(r22, r23); // {load}bsr r22d, r23d IID449 - __ bsrl(r23, r24); // {load}bsr r23d, r24d IID450 - __ bsrl(r24, r25); // {load}bsr r24d, r25d IID451 - __ bsrl(r25, r26); // {load}bsr r25d, r26d IID452 - __ bsrl(r26, r27); // {load}bsr r26d, r27d IID453 - __ bsrl(r27, r28); // {load}bsr r27d, r28d IID454 - __ bsrl(r28, r29); // {load}bsr r28d, r29d IID455 - __ bsrl(r29, r30); // {load}bsr r29d, r30d IID456 - __ bsrl(r30, r31); // {load}bsr r30d, r31d IID457 - __ bsrl(r31, rcx); // {load}bsr r31d, ecx IID458 -#endif // _LP64 - __ xchgl(rcx, rdx); // {load}xchg ecx, edx IID459 - __ xchgl(rdx, rbx); // {load}xchg edx, ebx IID460 -#ifdef _LP64 - __ xchgl(rbx, r8); // {load}xchg ebx, r8d IID461 - __ xchgl(r8, r9); // {load}xchg r8d, r9d IID462 - __ xchgl(r9, r10); // {load}xchg r9d, r10d IID463 - __ xchgl(r10, r11); // {load}xchg r10d, r11d IID464 - __ xchgl(r11, r12); // {load}xchg r11d, r12d IID465 - __ xchgl(r12, r13); // {load}xchg r12d, r13d IID466 - __ xchgl(r13, r14); // {load}xchg r13d, r14d IID467 - __ xchgl(r14, r15); // {load}xchg r14d, r15d IID468 - __ xchgl(r15, r16); // {load}xchg r15d, r16d IID469 - __ xchgl(r16, r17); // {load}xchg r16d, r17d IID470 - __ xchgl(r17, r18); // {load}xchg r17d, r18d IID471 - __ xchgl(r18, r19); // {load}xchg r18d, r19d IID472 - __ xchgl(r19, r20); // {load}xchg r19d, r20d IID473 - __ xchgl(r20, r21); // {load}xchg r20d, r21d IID474 - __ xchgl(r21, r22); // {load}xchg r21d, r22d IID475 - __ xchgl(r22, r23); // {load}xchg r22d, r23d IID476 - __ xchgl(r23, r24); // {load}xchg r23d, r24d IID477 - __ xchgl(r24, r25); // {load}xchg r24d, r25d IID478 - __ xchgl(r25, r26); // {load}xchg r25d, r26d IID479 - __ xchgl(r26, r27); // {load}xchg r26d, r27d IID480 - __ xchgl(r27, r28); // {load}xchg r27d, r28d IID481 - __ xchgl(r28, r29); // {load}xchg r28d, r29d IID482 - __ xchgl(r29, r30); // {load}xchg r29d, r30d IID483 - __ xchgl(r30, r31); // {load}xchg r30d, r31d IID484 - __ xchgl(r31, rcx); // {load}xchg r31d, ecx IID485 -#endif // _LP64 - __ testl(rcx, rdx); // {load}test ecx, edx IID486 - __ testl(rdx, rbx); // {load}test edx, ebx IID487 -#ifdef _LP64 - __ testl(rbx, r8); // {load}test ebx, r8d IID488 - __ testl(r8, r9); // {load}test r8d, r9d IID489 - __ testl(r9, r10); // {load}test r9d, r10d IID490 - __ testl(r10, r11); // {load}test r10d, r11d IID491 - __ testl(r11, r12); // {load}test r11d, r12d IID492 - __ testl(r12, r13); // {load}test r12d, r13d IID493 - __ testl(r13, r14); // {load}test r13d, r14d IID494 - __ testl(r14, r15); // {load}test r14d, r15d IID495 - __ testl(r15, r16); // {load}test r15d, r16d IID496 - __ testl(r16, r17); // {load}test r16d, r17d IID497 - __ testl(r17, r18); // {load}test r17d, r18d IID498 - __ testl(r18, r19); // {load}test r18d, r19d IID499 - __ testl(r19, r20); // {load}test r19d, r20d IID500 - __ testl(r20, r21); // {load}test r20d, r21d IID501 - __ testl(r21, r22); // {load}test r21d, r22d IID502 - __ testl(r22, r23); // {load}test r22d, r23d IID503 - __ testl(r23, r24); // {load}test r23d, r24d IID504 - __ testl(r24, r25); // {load}test r24d, r25d IID505 - __ testl(r25, r26); // {load}test r25d, r26d IID506 - __ testl(r26, r27); // {load}test r26d, r27d IID507 - __ testl(r27, r28); // {load}test r27d, r28d IID508 - __ testl(r28, r29); // {load}test r28d, r29d IID509 - __ testl(r29, r30); // {load}test r29d, r30d IID510 - __ testl(r30, r31); // {load}test r30d, r31d IID511 - __ testl(r31, rcx); // {load}test r31d, ecx IID512 -#endif // _LP64 - __ addb(Address(rdx, rbx, (Address::ScaleFactor)3, -0x201ba425), rcx); // add byte ptr [rdx+rbx*8-0x201ba425], cl IID513 -#ifdef _LP64 - __ addb(Address(rbx, +0x743fca75), rdx); // add byte ptr [rbx+0x743fca75], dl IID514 - __ addb(Address(r8, -0x48b15bca), rbx); // add byte ptr [r8-0x48b15bca], bl IID515 - __ addb(Address(r9, r10, (Address::ScaleFactor)1, +0x4bf33f60), r8); // add byte ptr [r9+r10*2+0x4bf33f60], r8b IID516 - __ addb(Address(r10, r11, (Address::ScaleFactor)0, -0x75adf4b9), r9); // add byte ptr [r10+r11*1-0x75adf4b9], r9b IID517 - __ addb(Address(r11, r12, (Address::ScaleFactor)1, +0x77126d08), r10); // add byte ptr [r11+r12*2+0x77126d08], r10b IID518 - __ addb(Address(r12, -0x4f0a4661), r11); // add byte ptr [r12-0x4f0a4661], r11b IID519 - __ addb(Address(r13, +0x2e2edf6a), r12); // add byte ptr [r13+0x2e2edf6a], r12b IID520 - __ addb(Address(r14, +0x497db108), r13); // add byte ptr [r14+0x497db108], r13b IID521 - __ addb(Address(r15, r16, (Address::ScaleFactor)2, +0x2353424c), r14); // add byte ptr [r15+r16*4+0x2353424c], r14b IID522 - __ addb(Address(r16, r17, (Address::ScaleFactor)3, -0x36611541), r15); // add byte ptr [r16+r17*8-0x36611541], r15b IID523 - __ addb(Address(r17, r18, (Address::ScaleFactor)2, -0x6547062c), r16); // add byte ptr [r17+r18*4-0x6547062c], r16b IID524 - __ addb(Address(r18, r19, (Address::ScaleFactor)1, -0x1475f3c1), r17); // add byte ptr [r18+r19*2-0x1475f3c1], r17b IID525 - __ addb(Address(r19, r20, (Address::ScaleFactor)2, -0x6efcf54b), r18); // add byte ptr [r19+r20*4-0x6efcf54b], r18b IID526 - __ addb(Address(r20, r21, (Address::ScaleFactor)2, -0x2655e247), r19); // add byte ptr [r20+r21*4-0x2655e247], r19b IID527 - __ addb(Address(r21, r22, (Address::ScaleFactor)3, -0x151b7d21), r20); // add byte ptr [r21+r22*8-0x151b7d21], r20b IID528 - __ addb(Address(r22, -0x75ee80e4), r21); // add byte ptr [r22-0x75ee80e4], r21b IID529 - __ addb(Address(r23, r24, (Address::ScaleFactor)0, -0x6edca128), r22); // add byte ptr [r23+r24*1-0x6edca128], r22b IID530 - __ addb(Address(r24, r25, (Address::ScaleFactor)2, +0x323056a1), r23); // add byte ptr [r24+r25*4+0x323056a1], r23b IID531 - __ addb(Address(r25, +0x476b28ea), r24); // add byte ptr [r25+0x476b28ea], r24b IID532 - __ addb(Address(r26, r27, (Address::ScaleFactor)3, -0x7e99a8c3), r25); // add byte ptr [r26+r27*8-0x7e99a8c3], r25b IID533 - __ addb(Address(r27, r28, (Address::ScaleFactor)0, +0x64d43106), r26); // add byte ptr [r27+r28*1+0x64d43106], r26b IID534 - __ addb(Address(r28, +0x30d3bc8), r27); // add byte ptr [r28+0x30d3bc8], r27b IID535 - __ addb(Address(r29, r30, (Address::ScaleFactor)0, +0x6910ce54), r28); // add byte ptr [r29+r30*1+0x6910ce54], r28b IID536 - __ addb(Address(r30, r31, (Address::ScaleFactor)1, -0x14157bee), r29); // add byte ptr [r30+r31*2-0x14157bee], r29b IID537 - __ addb(Address(r31, rcx, (Address::ScaleFactor)1, -0x7bac9aa2), r30); // add byte ptr [r31+rcx*2-0x7bac9aa2], r30b IID538 - __ addb(Address(rcx, rdx, (Address::ScaleFactor)2, +0x6adc3a8d), r31); // add byte ptr [rcx+rdx*4+0x6adc3a8d], r31b IID539 -#endif // _LP64 - __ addw(Address(rdx, +0x661e59ef), rcx); // add word ptr [rdx+0x661e59ef], cx IID540 -#ifdef _LP64 - __ addw(Address(rbx, r8, (Address::ScaleFactor)2, -0x54ef3336), rdx); // add word ptr [rbx+r8*4-0x54ef3336], dx IID541 - __ addw(Address(r8, r9, (Address::ScaleFactor)3, +0x21a4f9be), rbx); // add word ptr [r8+r9*8+0x21a4f9be], bx IID542 - __ addw(Address(r9, r10, (Address::ScaleFactor)1, +0x7e9eebd7), r8); // add word ptr [r9+r10*2+0x7e9eebd7], r8w IID543 - __ addw(Address(r10, r11, (Address::ScaleFactor)1, -0x76903be7), r9); // add word ptr [r10+r11*2-0x76903be7], r9w IID544 - __ addw(Address(r11, -0x1a2c463b), r10); // add word ptr [r11-0x1a2c463b], r10w IID545 - __ addw(Address(r12, r13, (Address::ScaleFactor)1, +0x3dbac18c), r11); // add word ptr [r12+r13*2+0x3dbac18c], r11w IID546 - __ addw(Address(r13, r14, (Address::ScaleFactor)3, -0x349b6757), r12); // add word ptr [r13+r14*8-0x349b6757], r12w IID547 - __ addw(Address(r14, r15, (Address::ScaleFactor)1, +0x7493130d), r13); // add word ptr [r14+r15*2+0x7493130d], r13w IID548 - __ addw(Address(r15, r16, (Address::ScaleFactor)2, -0x7851f0ea), r14); // add word ptr [r15+r16*4-0x7851f0ea], r14w IID549 - __ addw(Address(r16, r17, (Address::ScaleFactor)0, -0x6127367c), r15); // add word ptr [r16+r17*1-0x6127367c], r15w IID550 - __ addw(Address(r17, +0x61159c48), r16); // add word ptr [r17+0x61159c48], r16w IID551 - __ addw(Address(r18, r19, (Address::ScaleFactor)3, -0x615b8795), r17); // add word ptr [r18+r19*8-0x615b8795], r17w IID552 - __ addw(Address(r19, r20, (Address::ScaleFactor)2, -0x2e718fa5), r18); // add word ptr [r19+r20*4-0x2e718fa5], r18w IID553 - __ addw(Address(r20, r21, (Address::ScaleFactor)0, -0x63ff67d7), r19); // add word ptr [r20+r21*1-0x63ff67d7], r19w IID554 - __ addw(Address(r21, r22, (Address::ScaleFactor)2, -0x74240885), r20); // add word ptr [r21+r22*4-0x74240885], r20w IID555 - __ addw(Address(r22, r23, (Address::ScaleFactor)3, -0xd1a2d3), r21); // add word ptr [r22+r23*8-0xd1a2d3], r21w IID556 - __ addw(Address(r23, -0x571dc6b8), r22); // add word ptr [r23-0x571dc6b8], r22w IID557 - __ addw(Address(r24, r25, (Address::ScaleFactor)2, -0x7d05c9), r23); // add word ptr [r24+r25*4-0x7d05c9], r23w IID558 - __ addw(Address(r25, +0x1badfa88), r24); // add word ptr [r25+0x1badfa88], r24w IID559 - __ addw(Address(r26, r27, (Address::ScaleFactor)2, +0x1add8f55), r25); // add word ptr [r26+r27*4+0x1add8f55], r25w IID560 - __ addw(Address(r27, r28, (Address::ScaleFactor)2, +0x5eacade7), r26); // add word ptr [r27+r28*4+0x5eacade7], r26w IID561 - __ addw(Address(r28, r29, (Address::ScaleFactor)0, -0x72b0da6b), r27); // add word ptr [r28+r29*1-0x72b0da6b], r27w IID562 - __ addw(Address(r29, r30, (Address::ScaleFactor)2, +0x5f491f21), r28); // add word ptr [r29+r30*4+0x5f491f21], r28w IID563 - __ addw(Address(r30, +0x13073e15), r29); // add word ptr [r30+0x13073e15], r29w IID564 - __ addw(Address(r31, rcx, (Address::ScaleFactor)1, -0x17bb9f95), r30); // add word ptr [r31+rcx*2-0x17bb9f95], r30w IID565 - __ addw(Address(rcx, rdx, (Address::ScaleFactor)2, +0x65c7e031), r31); // add word ptr [rcx+rdx*4+0x65c7e031], r31w IID566 -#endif // _LP64 - __ addl(Address(rdx, -0x3b0e6c6f), rcx); // add dword ptr [rdx-0x3b0e6c6f], ecx IID567 -#ifdef _LP64 - __ addl(Address(rbx, -0x7e8bdf1b), rdx); // add dword ptr [rbx-0x7e8bdf1b], edx IID568 - __ addl(Address(r8, r9, (Address::ScaleFactor)2, -0x56348423), rbx); // add dword ptr [r8+r9*4-0x56348423], ebx IID569 - __ addl(Address(r9, r10, (Address::ScaleFactor)0, +0x4e7250fd), r8); // add dword ptr [r9+r10*1+0x4e7250fd], r8d IID570 - __ addl(Address(r10, r11, (Address::ScaleFactor)0, -0x365d5a47), r9); // add dword ptr [r10+r11*1-0x365d5a47], r9d IID571 - __ addl(Address(r11, r12, (Address::ScaleFactor)3, -0x692fa7a3), r10); // add dword ptr [r11+r12*8-0x692fa7a3], r10d IID572 - __ addl(Address(r12, r13, (Address::ScaleFactor)0, +0x2a758b49), r11); // add dword ptr [r12+r13*1+0x2a758b49], r11d IID573 - __ addl(Address(r13, r14, (Address::ScaleFactor)2, -0x51df9228), r12); // add dword ptr [r13+r14*4-0x51df9228], r12d IID574 - __ addl(Address(r14, r15, (Address::ScaleFactor)2, +0x71cfec81), r13); // add dword ptr [r14+r15*4+0x71cfec81], r13d IID575 - __ addl(Address(r15, -0x6ea9e882), r14); // add dword ptr [r15-0x6ea9e882], r14d IID576 - __ addl(Address(r16, r17, (Address::ScaleFactor)1, +0x5a2b7d02), r15); // add dword ptr [r16+r17*2+0x5a2b7d02], r15d IID577 - __ addl(Address(r17, r18, (Address::ScaleFactor)0, -0xa6bfb75), r16); // add dword ptr [r17+r18*1-0xa6bfb75], r16d IID578 - __ addl(Address(r18, r19, (Address::ScaleFactor)3, +0x5aa34e82), r17); // add dword ptr [r18+r19*8+0x5aa34e82], r17d IID579 - __ addl(Address(r19, -0x10a5c445), r18); // add dword ptr [r19-0x10a5c445], r18d IID580 - __ addl(Address(r20, r21, (Address::ScaleFactor)0, -0x6d9309da), r19); // add dword ptr [r20+r21*1-0x6d9309da], r19d IID581 - __ addl(Address(r21, r22, (Address::ScaleFactor)3, +0x52ac37d1), r20); // add dword ptr [r21+r22*8+0x52ac37d1], r20d IID582 - __ addl(Address(r22, r23, (Address::ScaleFactor)0, -0x103e86ee), r21); // add dword ptr [r22+r23*1-0x103e86ee], r21d IID583 - __ addl(Address(r23, r24, (Address::ScaleFactor)3, +0x7061274b), r22); // add dword ptr [r23+r24*8+0x7061274b], r22d IID584 - __ addl(Address(r24, r25, (Address::ScaleFactor)2, +0x7c45981c), r23); // add dword ptr [r24+r25*4+0x7c45981c], r23d IID585 - __ addl(Address(r25, r26, (Address::ScaleFactor)0, +0x24f00f6e), r24); // add dword ptr [r25+r26*1+0x24f00f6e], r24d IID586 - __ addl(Address(r26, r27, (Address::ScaleFactor)0, -0x71a5e74), r25); // add dword ptr [r26+r27*1-0x71a5e74], r25d IID587 - __ addl(Address(r27, r28, (Address::ScaleFactor)1, +0x355f4c09), r26); // add dword ptr [r27+r28*2+0x355f4c09], r26d IID588 - __ addl(Address(r28, r29, (Address::ScaleFactor)3, +0x43c4885c), r27); // add dword ptr [r28+r29*8+0x43c4885c], r27d IID589 - __ addl(Address(r29, r30, (Address::ScaleFactor)2, -0x79841854), r28); // add dword ptr [r29+r30*4-0x79841854], r28d IID590 - __ addl(Address(r30, r31, (Address::ScaleFactor)3, -0x7f7b53ca), r29); // add dword ptr [r30+r31*8-0x7f7b53ca], r29d IID591 - __ addl(Address(r31, rcx, (Address::ScaleFactor)1, +0x29627da4), r30); // add dword ptr [r31+rcx*2+0x29627da4], r30d IID592 - __ addl(Address(rcx, -0x354f35e4), r31); // add dword ptr [rcx-0x354f35e4], r31d IID593 -#endif // _LP64 - __ adcl(Address(rdx, rbx, (Address::ScaleFactor)1, -0x60957bc1), rcx); // adc dword ptr [rdx+rbx*2-0x60957bc1], ecx IID594 -#ifdef _LP64 - __ adcl(Address(rbx, r8, (Address::ScaleFactor)2, +0x3313418d), rdx); // adc dword ptr [rbx+r8*4+0x3313418d], edx IID595 - __ adcl(Address(r8, r9, (Address::ScaleFactor)2, -0x767e3c3c), rbx); // adc dword ptr [r8+r9*4-0x767e3c3c], ebx IID596 - __ adcl(Address(r9, r10, (Address::ScaleFactor)0, -0x182c6f23), r8); // adc dword ptr [r9+r10*1-0x182c6f23], r8d IID597 - __ adcl(Address(r10, r11, (Address::ScaleFactor)3, +0x718f60cb), r9); // adc dword ptr [r10+r11*8+0x718f60cb], r9d IID598 - __ adcl(Address(r11, r12, (Address::ScaleFactor)3, +0x12c70295), r10); // adc dword ptr [r11+r12*8+0x12c70295], r10d IID599 - __ adcl(Address(r12, -0x53aeec50), r11); // adc dword ptr [r12-0x53aeec50], r11d IID600 - __ adcl(Address(r13, r14, (Address::ScaleFactor)3, -0x330242c8), r12); // adc dword ptr [r13+r14*8-0x330242c8], r12d IID601 - __ adcl(Address(r14, r15, (Address::ScaleFactor)2, +0x2fb4f0c1), r13); // adc dword ptr [r14+r15*4+0x2fb4f0c1], r13d IID602 - __ adcl(Address(r15, r16, (Address::ScaleFactor)2, -0x1de8f040), r14); // adc dword ptr [r15+r16*4-0x1de8f040], r14d IID603 - __ adcl(Address(r16, r17, (Address::ScaleFactor)1, +0xb5d60b2), r15); // adc dword ptr [r16+r17*2+0xb5d60b2], r15d IID604 - __ adcl(Address(r17, r18, (Address::ScaleFactor)1, -0x38be2377), r16); // adc dword ptr [r17+r18*2-0x38be2377], r16d IID605 - __ adcl(Address(r18, r19, (Address::ScaleFactor)2, -0xdbc3e9e), r17); // adc dword ptr [r18+r19*4-0xdbc3e9e], r17d IID606 - __ adcl(Address(r19, r20, (Address::ScaleFactor)0, +0x7ef5e39e), r18); // adc dword ptr [r19+r20*1+0x7ef5e39e], r18d IID607 - __ adcl(Address(r20, r21, (Address::ScaleFactor)2, -0x5f194072), r19); // adc dword ptr [r20+r21*4-0x5f194072], r19d IID608 - __ adcl(Address(r21, r22, (Address::ScaleFactor)1, -0x5df7b575), r20); // adc dword ptr [r21+r22*2-0x5df7b575], r20d IID609 - __ adcl(Address(r22, r23, (Address::ScaleFactor)3, +0x63c7aa89), r21); // adc dword ptr [r22+r23*8+0x63c7aa89], r21d IID610 - __ adcl(Address(r23, r24, (Address::ScaleFactor)1, -0x5d9aef78), r22); // adc dword ptr [r23+r24*2-0x5d9aef78], r22d IID611 - __ adcl(Address(r24, r25, (Address::ScaleFactor)2, -0x44c56382), r23); // adc dword ptr [r24+r25*4-0x44c56382], r23d IID612 - __ adcl(Address(r25, r26, (Address::ScaleFactor)3, -0x56cb247a), r24); // adc dword ptr [r25+r26*8-0x56cb247a], r24d IID613 - __ adcl(Address(r26, r27, (Address::ScaleFactor)3, +0x407d1ff3), r25); // adc dword ptr [r26+r27*8+0x407d1ff3], r25d IID614 - __ adcl(Address(r27, r28, (Address::ScaleFactor)0, -0x40d8db6a), r26); // adc dword ptr [r27+r28*1-0x40d8db6a], r26d IID615 - __ adcl(Address(r28, r29, (Address::ScaleFactor)3, +0x7ddf364e), r27); // adc dword ptr [r28+r29*8+0x7ddf364e], r27d IID616 - __ adcl(Address(r29, r30, (Address::ScaleFactor)2, +0x4f7fc906), r28); // adc dword ptr [r29+r30*4+0x4f7fc906], r28d IID617 - __ adcl(Address(r30, r31, (Address::ScaleFactor)1, +0x627bed2), r29); // adc dword ptr [r30+r31*2+0x627bed2], r29d IID618 - __ adcl(Address(r31, rcx, (Address::ScaleFactor)1, -0x6bcb79ab), r30); // adc dword ptr [r31+rcx*2-0x6bcb79ab], r30d IID619 - __ adcl(Address(rcx, rdx, (Address::ScaleFactor)3, -0x1dec5d6d), r31); // adc dword ptr [rcx+rdx*8-0x1dec5d6d], r31d IID620 -#endif // _LP64 - __ andb(Address(rdx, rbx, (Address::ScaleFactor)3, -0x3f87e32a), rcx); // and byte ptr [rdx+rbx*8-0x3f87e32a], cl IID621 -#ifdef _LP64 - __ andb(Address(rbx, r8, (Address::ScaleFactor)2, +0x2441994b), rdx); // and byte ptr [rbx+r8*4+0x2441994b], dl IID622 - __ andb(Address(r8, -0x7f520d27), rbx); // and byte ptr [r8-0x7f520d27], bl IID623 - __ andb(Address(r9, r10, (Address::ScaleFactor)1, +0x7dceab3), r8); // and byte ptr [r9+r10*2+0x7dceab3], r8b IID624 - __ andb(Address(r10, r11, (Address::ScaleFactor)0, -0x6fa75be3), r9); // and byte ptr [r10+r11*1-0x6fa75be3], r9b IID625 - __ andb(Address(r11, -0x5c5bc46f), r10); // and byte ptr [r11-0x5c5bc46f], r10b IID626 - __ andb(Address(r12, +0x3f2b28be), r11); // and byte ptr [r12+0x3f2b28be], r11b IID627 - __ andb(Address(r13, r14, (Address::ScaleFactor)1, +0x2b10501b), r12); // and byte ptr [r13+r14*2+0x2b10501b], r12b IID628 - __ andb(Address(r14, r15, (Address::ScaleFactor)1, +0x1cea1d37), r13); // and byte ptr [r14+r15*2+0x1cea1d37], r13b IID629 - __ andb(Address(r15, r16, (Address::ScaleFactor)0, -0x66a2034), r14); // and byte ptr [r15+r16*1-0x66a2034], r14b IID630 - __ andb(Address(r16, +0x226b1d05), r15); // and byte ptr [r16+0x226b1d05], r15b IID631 - __ andb(Address(r17, r18, (Address::ScaleFactor)0, +0x17e73d7c), r16); // and byte ptr [r17+r18*1+0x17e73d7c], r16b IID632 - __ andb(Address(r18, r19, (Address::ScaleFactor)0, +0x5e15afe9), r17); // and byte ptr [r18+r19*1+0x5e15afe9], r17b IID633 - __ andb(Address(r19, -0x54fedf58), r18); // and byte ptr [r19-0x54fedf58], r18b IID634 - __ andb(Address(r20, r21, (Address::ScaleFactor)0, +0x29284d73), r19); // and byte ptr [r20+r21*1+0x29284d73], r19b IID635 - __ andb(Address(r21, r22, (Address::ScaleFactor)0, -0x1be6fb2a), r20); // and byte ptr [r21+r22*1-0x1be6fb2a], r20b IID636 - __ andb(Address(r22, r23, (Address::ScaleFactor)1, -0x1eeb6ee), r21); // and byte ptr [r22+r23*2-0x1eeb6ee], r21b IID637 - __ andb(Address(r23, r24, (Address::ScaleFactor)2, -0x60c3e869), r22); // and byte ptr [r23+r24*4-0x60c3e869], r22b IID638 - __ andb(Address(r24, r25, (Address::ScaleFactor)3, -0x5dd67eb), r23); // and byte ptr [r24+r25*8-0x5dd67eb], r23b IID639 - __ andb(Address(r25, +0x36711286), r24); // and byte ptr [r25+0x36711286], r24b IID640 - __ andb(Address(r26, r27, (Address::ScaleFactor)0, +0x438c0fe8), r25); // and byte ptr [r26+r27*1+0x438c0fe8], r25b IID641 - __ andb(Address(r27, +0x5433b66c), r26); // and byte ptr [r27+0x5433b66c], r26b IID642 - __ andb(Address(r28, r29, (Address::ScaleFactor)3, +0x26a5e3f0), r27); // and byte ptr [r28+r29*8+0x26a5e3f0], r27b IID643 - __ andb(Address(r29, r30, (Address::ScaleFactor)3, -0x106670dd), r28); // and byte ptr [r29+r30*8-0x106670dd], r28b IID644 - __ andb(Address(r30, r31, (Address::ScaleFactor)3, -0x792146ef), r29); // and byte ptr [r30+r31*8-0x792146ef], r29b IID645 - __ andb(Address(r31, +0x237e8d36), r30); // and byte ptr [r31+0x237e8d36], r30b IID646 - __ andb(Address(rcx, rdx, (Address::ScaleFactor)1, -0x228bcc32), r31); // and byte ptr [rcx+rdx*2-0x228bcc32], r31b IID647 -#endif // _LP64 - __ andl(Address(rdx, +0x62aa990f), rcx); // and dword ptr [rdx+0x62aa990f], ecx IID648 -#ifdef _LP64 - __ andl(Address(rbx, r8, (Address::ScaleFactor)1, -0x6f250a6f), rdx); // and dword ptr [rbx+r8*2-0x6f250a6f], edx IID649 - __ andl(Address(r8, r9, (Address::ScaleFactor)0, -0x4bd299ef), rbx); // and dword ptr [r8+r9*1-0x4bd299ef], ebx IID650 - __ andl(Address(r9, r10, (Address::ScaleFactor)1, +0x27f735da), r8); // and dword ptr [r9+r10*2+0x27f735da], r8d IID651 - __ andl(Address(r10, r11, (Address::ScaleFactor)2, +0x747a089d), r9); // and dword ptr [r10+r11*4+0x747a089d], r9d IID652 - __ andl(Address(r11, r12, (Address::ScaleFactor)0, -0x147809d0), r10); // and dword ptr [r11+r12*1-0x147809d0], r10d IID653 - __ andl(Address(r12, r13, (Address::ScaleFactor)1, +0x5490e713), r11); // and dword ptr [r12+r13*2+0x5490e713], r11d IID654 - __ andl(Address(r13, r14, (Address::ScaleFactor)0, +0x1b02eccb), r12); // and dword ptr [r13+r14*1+0x1b02eccb], r12d IID655 - __ andl(Address(r14, r15, (Address::ScaleFactor)3, +0x770ebe79), r13); // and dword ptr [r14+r15*8+0x770ebe79], r13d IID656 - __ andl(Address(r15, r16, (Address::ScaleFactor)2, +0x6c7cc52a), r14); // and dword ptr [r15+r16*4+0x6c7cc52a], r14d IID657 - __ andl(Address(r16, -0x3e6d76f), r15); // and dword ptr [r16-0x3e6d76f], r15d IID658 - __ andl(Address(r17, +0x189e3244), r16); // and dword ptr [r17+0x189e3244], r16d IID659 - __ andl(Address(r18, r19, (Address::ScaleFactor)3, +0x3fdd2b91), r17); // and dword ptr [r18+r19*8+0x3fdd2b91], r17d IID660 - __ andl(Address(r19, r20, (Address::ScaleFactor)3, -0x7e2e056a), r18); // and dword ptr [r19+r20*8-0x7e2e056a], r18d IID661 - __ andl(Address(r20, r21, (Address::ScaleFactor)0, -0x29a29f85), r19); // and dword ptr [r20+r21*1-0x29a29f85], r19d IID662 - __ andl(Address(r21, r22, (Address::ScaleFactor)1, -0x25b3d068), r20); // and dword ptr [r21+r22*2-0x25b3d068], r20d IID663 - __ andl(Address(r22, r23, (Address::ScaleFactor)1, -0x417d609), r21); // and dword ptr [r22+r23*2-0x417d609], r21d IID664 - __ andl(Address(r23, r24, (Address::ScaleFactor)1, +0x21560ab1), r22); // and dword ptr [r23+r24*2+0x21560ab1], r22d IID665 - __ andl(Address(r24, +0x5a917c55), r23); // and dword ptr [r24+0x5a917c55], r23d IID666 - __ andl(Address(r25, -0x2ec00c4), r24); // and dword ptr [r25-0x2ec00c4], r24d IID667 - __ andl(Address(r26, -0x46f0d0c8), r25); // and dword ptr [r26-0x46f0d0c8], r25d IID668 - __ andl(Address(r27, -0x3801dc89), r26); // and dword ptr [r27-0x3801dc89], r26d IID669 - __ andl(Address(r28, +0x5c495da1), r27); // and dword ptr [r28+0x5c495da1], r27d IID670 - __ andl(Address(r29, r30, (Address::ScaleFactor)2, -0x23401bec), r28); // and dword ptr [r29+r30*4-0x23401bec], r28d IID671 - __ andl(Address(r30, r31, (Address::ScaleFactor)3, -0xcd44863), r29); // and dword ptr [r30+r31*8-0xcd44863], r29d IID672 - __ andl(Address(r31, rcx, (Address::ScaleFactor)3, +0x3735ed6b), r30); // and dword ptr [r31+rcx*8+0x3735ed6b], r30d IID673 - __ andl(Address(rcx, rdx, (Address::ScaleFactor)1, -0x75b44cb2), r31); // and dword ptr [rcx+rdx*2-0x75b44cb2], r31d IID674 -#endif // _LP64 - __ cmpb(Address(rdx, -0x2a4bcf39), rcx); // cmp byte ptr [rdx-0x2a4bcf39], cl IID675 -#ifdef _LP64 - __ cmpb(Address(rbx, r8, (Address::ScaleFactor)1, +0x1310b275), rdx); // cmp byte ptr [rbx+r8*2+0x1310b275], dl IID676 - __ cmpb(Address(r8, r9, (Address::ScaleFactor)3, +0x17c28930), rbx); // cmp byte ptr [r8+r9*8+0x17c28930], bl IID677 - __ cmpb(Address(r9, -0x1f966804), r8); // cmp byte ptr [r9-0x1f966804], r8b IID678 - __ cmpb(Address(r10, r11, (Address::ScaleFactor)0, -0x79cd2a13), r9); // cmp byte ptr [r10+r11*1-0x79cd2a13], r9b IID679 - __ cmpb(Address(r11, r12, (Address::ScaleFactor)3, +0x3e8c7622), r10); // cmp byte ptr [r11+r12*8+0x3e8c7622], r10b IID680 - __ cmpb(Address(r12, r13, (Address::ScaleFactor)1, -0x781ff7ba), r11); // cmp byte ptr [r12+r13*2-0x781ff7ba], r11b IID681 - __ cmpb(Address(r13, r14, (Address::ScaleFactor)0, -0x11b0c288), r12); // cmp byte ptr [r13+r14*1-0x11b0c288], r12b IID682 - __ cmpb(Address(r14, +0x79d5f27c), r13); // cmp byte ptr [r14+0x79d5f27c], r13b IID683 - __ cmpb(Address(r15, r16, (Address::ScaleFactor)0, -0x62aa433f), r14); // cmp byte ptr [r15+r16*1-0x62aa433f], r14b IID684 - __ cmpb(Address(r16, r17, (Address::ScaleFactor)3, -0x24b3f06a), r15); // cmp byte ptr [r16+r17*8-0x24b3f06a], r15b IID685 - __ cmpb(Address(r17, -0x18e84ea4), r16); // cmp byte ptr [r17-0x18e84ea4], r16b IID686 - __ cmpb(Address(r18, r19, (Address::ScaleFactor)2, -0x28fd47c4), r17); // cmp byte ptr [r18+r19*4-0x28fd47c4], r17b IID687 - __ cmpb(Address(r19, r20, (Address::ScaleFactor)2, -0x45262ee3), r18); // cmp byte ptr [r19+r20*4-0x45262ee3], r18b IID688 - __ cmpb(Address(r20, r21, (Address::ScaleFactor)3, -0x5b0b6ec8), r19); // cmp byte ptr [r20+r21*8-0x5b0b6ec8], r19b IID689 - __ cmpb(Address(r21, r22, (Address::ScaleFactor)0, -0xca70c04), r20); // cmp byte ptr [r21+r22*1-0xca70c04], r20b IID690 - __ cmpb(Address(r22, r23, (Address::ScaleFactor)2, +0x4c01298b), r21); // cmp byte ptr [r22+r23*4+0x4c01298b], r21b IID691 - __ cmpb(Address(r23, r24, (Address::ScaleFactor)3, +0x53f20546), r22); // cmp byte ptr [r23+r24*8+0x53f20546], r22b IID692 - __ cmpb(Address(r24, r25, (Address::ScaleFactor)1, -0x38cef61f), r23); // cmp byte ptr [r24+r25*2-0x38cef61f], r23b IID693 - __ cmpb(Address(r25, r26, (Address::ScaleFactor)3, -0x3f885db6), r24); // cmp byte ptr [r25+r26*8-0x3f885db6], r24b IID694 - __ cmpb(Address(r26, -0x645f2e4d), r25); // cmp byte ptr [r26-0x645f2e4d], r25b IID695 - __ cmpb(Address(r27, r28, (Address::ScaleFactor)1, +0x77a9b6b1), r26); // cmp byte ptr [r27+r28*2+0x77a9b6b1], r26b IID696 - __ cmpb(Address(r28, r29, (Address::ScaleFactor)2, -0x76cb252c), r27); // cmp byte ptr [r28+r29*4-0x76cb252c], r27b IID697 - __ cmpb(Address(r29, r30, (Address::ScaleFactor)3, +0x432d2840), r28); // cmp byte ptr [r29+r30*8+0x432d2840], r28b IID698 - __ cmpb(Address(r30, r31, (Address::ScaleFactor)1, -0x79b90662), r29); // cmp byte ptr [r30+r31*2-0x79b90662], r29b IID699 - __ cmpb(Address(r31, rcx, (Address::ScaleFactor)1, -0x5c302e8d), r30); // cmp byte ptr [r31+rcx*2-0x5c302e8d], r30b IID700 - __ cmpb(Address(rcx, -0x77158cb9), r31); // cmp byte ptr [rcx-0x77158cb9], r31b IID701 -#endif // _LP64 - __ cmpw(Address(rdx, +0x295012ca), rcx); // cmp word ptr [rdx+0x295012ca], cx IID702 -#ifdef _LP64 - __ cmpw(Address(rbx, r8, (Address::ScaleFactor)2, +0x11d7cec3), rdx); // cmp word ptr [rbx+r8*4+0x11d7cec3], dx IID703 - __ cmpw(Address(r8, r9, (Address::ScaleFactor)2, +0x3e72fda3), rbx); // cmp word ptr [r8+r9*4+0x3e72fda3], bx IID704 - __ cmpw(Address(r9, r10, (Address::ScaleFactor)1, +0x532aee98), r8); // cmp word ptr [r9+r10*2+0x532aee98], r8w IID705 - __ cmpw(Address(r10, r11, (Address::ScaleFactor)1, +0x2f9d1b67), r9); // cmp word ptr [r10+r11*2+0x2f9d1b67], r9w IID706 - __ cmpw(Address(r11, r12, (Address::ScaleFactor)3, -0x3f6a0048), r10); // cmp word ptr [r11+r12*8-0x3f6a0048], r10w IID707 - __ cmpw(Address(r12, r13, (Address::ScaleFactor)2, +0x749d1fa4), r11); // cmp word ptr [r12+r13*4+0x749d1fa4], r11w IID708 - __ cmpw(Address(r13, r14, (Address::ScaleFactor)1, +0x1d043538), r12); // cmp word ptr [r13+r14*2+0x1d043538], r12w IID709 - __ cmpw(Address(r14, r15, (Address::ScaleFactor)3, -0x748bd37a), r13); // cmp word ptr [r14+r15*8-0x748bd37a], r13w IID710 - __ cmpw(Address(r15, r16, (Address::ScaleFactor)3, +0x6bb762ff), r14); // cmp word ptr [r15+r16*8+0x6bb762ff], r14w IID711 - __ cmpw(Address(r16, r17, (Address::ScaleFactor)3, -0x54b414d4), r15); // cmp word ptr [r16+r17*8-0x54b414d4], r15w IID712 - __ cmpw(Address(r17, r18, (Address::ScaleFactor)2, +0x2c7a6b5b), r16); // cmp word ptr [r17+r18*4+0x2c7a6b5b], r16w IID713 - __ cmpw(Address(r18, r19, (Address::ScaleFactor)0, +0x4d05004b), r17); // cmp word ptr [r18+r19*1+0x4d05004b], r17w IID714 - __ cmpw(Address(r19, r20, (Address::ScaleFactor)1, -0x5ace0d3e), r18); // cmp word ptr [r19+r20*2-0x5ace0d3e], r18w IID715 - __ cmpw(Address(r20, r21, (Address::ScaleFactor)3, +0x71b9366f), r19); // cmp word ptr [r20+r21*8+0x71b9366f], r19w IID716 - __ cmpw(Address(r21, r22, (Address::ScaleFactor)1, +0x5f95c215), r20); // cmp word ptr [r21+r22*2+0x5f95c215], r20w IID717 - __ cmpw(Address(r22, r23, (Address::ScaleFactor)0, +0x378cb8c4), r21); // cmp word ptr [r22+r23*1+0x378cb8c4], r21w IID718 - __ cmpw(Address(r23, r24, (Address::ScaleFactor)1, -0x292daa4f), r22); // cmp word ptr [r23+r24*2-0x292daa4f], r22w IID719 - __ cmpw(Address(r24, r25, (Address::ScaleFactor)0, +0x3bb7c4bb), r23); // cmp word ptr [r24+r25*1+0x3bb7c4bb], r23w IID720 - __ cmpw(Address(r25, r26, (Address::ScaleFactor)1, -0x2c4ef637), r24); // cmp word ptr [r25+r26*2-0x2c4ef637], r24w IID721 - __ cmpw(Address(r26, r27, (Address::ScaleFactor)3, -0x6a5ee6f1), r25); // cmp word ptr [r26+r27*8-0x6a5ee6f1], r25w IID722 - __ cmpw(Address(r27, r28, (Address::ScaleFactor)2, -0x2d2319af), r26); // cmp word ptr [r27+r28*4-0x2d2319af], r26w IID723 - __ cmpw(Address(r28, r29, (Address::ScaleFactor)3, +0x58fed4f), r27); // cmp word ptr [r28+r29*8+0x58fed4f], r27w IID724 - __ cmpw(Address(r29, r30, (Address::ScaleFactor)0, -0x47a0cd26), r28); // cmp word ptr [r29+r30*1-0x47a0cd26], r28w IID725 - __ cmpw(Address(r30, r31, (Address::ScaleFactor)0, -0xc931317), r29); // cmp word ptr [r30+r31*1-0xc931317], r29w IID726 - __ cmpw(Address(r31, rcx, (Address::ScaleFactor)1, +0xbd30b0b), r30); // cmp word ptr [r31+rcx*2+0xbd30b0b], r30w IID727 - __ cmpw(Address(rcx, rdx, (Address::ScaleFactor)3, -0x5a5b1c1f), r31); // cmp word ptr [rcx+rdx*8-0x5a5b1c1f], r31w IID728 -#endif // _LP64 - __ cmpl(Address(rdx, rbx, (Address::ScaleFactor)3, -0x258d7eec), rcx); // cmp dword ptr [rdx+rbx*8-0x258d7eec], ecx IID729 -#ifdef _LP64 - __ cmpl(Address(rbx, r8, (Address::ScaleFactor)1, +0x6ab7efc4), rdx); // cmp dword ptr [rbx+r8*2+0x6ab7efc4], edx IID730 - __ cmpl(Address(r8, -0x4572b667), rbx); // cmp dword ptr [r8-0x4572b667], ebx IID731 - __ cmpl(Address(r9, r10, (Address::ScaleFactor)3, +0x2e5dbcda), r8); // cmp dword ptr [r9+r10*8+0x2e5dbcda], r8d IID732 - __ cmpl(Address(r10, r11, (Address::ScaleFactor)3, +0x50a8c594), r9); // cmp dword ptr [r10+r11*8+0x50a8c594], r9d IID733 - __ cmpl(Address(r11, r12, (Address::ScaleFactor)2, -0xc1be1ec), r10); // cmp dword ptr [r11+r12*4-0xc1be1ec], r10d IID734 - __ cmpl(Address(r12, r13, (Address::ScaleFactor)0, +0xbe389df), r11); // cmp dword ptr [r12+r13*1+0xbe389df], r11d IID735 - __ cmpl(Address(r13, r14, (Address::ScaleFactor)1, -0x1edb30e8), r12); // cmp dword ptr [r13+r14*2-0x1edb30e8], r12d IID736 - __ cmpl(Address(r14, r15, (Address::ScaleFactor)1, -0x206c1606), r13); // cmp dword ptr [r14+r15*2-0x206c1606], r13d IID737 - __ cmpl(Address(r15, r16, (Address::ScaleFactor)0, +0x7dab5488), r14); // cmp dword ptr [r15+r16*1+0x7dab5488], r14d IID738 - __ cmpl(Address(r16, r17, (Address::ScaleFactor)1, +0x5be3fb1), r15); // cmp dword ptr [r16+r17*2+0x5be3fb1], r15d IID739 - __ cmpl(Address(r17, r18, (Address::ScaleFactor)2, +0x6ae8537a), r16); // cmp dword ptr [r17+r18*4+0x6ae8537a], r16d IID740 - __ cmpl(Address(r18, r19, (Address::ScaleFactor)1, +0x30ace87d), r17); // cmp dword ptr [r18+r19*2+0x30ace87d], r17d IID741 - __ cmpl(Address(r19, r20, (Address::ScaleFactor)3, -0x1252a00f), r18); // cmp dword ptr [r19+r20*8-0x1252a00f], r18d IID742 - __ cmpl(Address(r20, r21, (Address::ScaleFactor)3, +0x3bed4220), r19); // cmp dword ptr [r20+r21*8+0x3bed4220], r19d IID743 - __ cmpl(Address(r21, -0x772d5538), r20); // cmp dword ptr [r21-0x772d5538], r20d IID744 - __ cmpl(Address(r22, r23, (Address::ScaleFactor)3, -0x1af11faa), r21); // cmp dword ptr [r22+r23*8-0x1af11faa], r21d IID745 - __ cmpl(Address(r23, r24, (Address::ScaleFactor)3, +0x53e55261), r22); // cmp dword ptr [r23+r24*8+0x53e55261], r22d IID746 - __ cmpl(Address(r24, r25, (Address::ScaleFactor)1, -0x4a99bcce), r23); // cmp dword ptr [r24+r25*2-0x4a99bcce], r23d IID747 - __ cmpl(Address(r25, +0x37b632fd), r24); // cmp dword ptr [r25+0x37b632fd], r24d IID748 - __ cmpl(Address(r26, r27, (Address::ScaleFactor)3, +0x177c052e), r25); // cmp dword ptr [r26+r27*8+0x177c052e], r25d IID749 - __ cmpl(Address(r27, -0x24c4baaf), r26); // cmp dword ptr [r27-0x24c4baaf], r26d IID750 - __ cmpl(Address(r28, +0x3e3992dd), r27); // cmp dword ptr [r28+0x3e3992dd], r27d IID751 - __ cmpl(Address(r29, r30, (Address::ScaleFactor)2, -0x7ea8e0db), r28); // cmp dword ptr [r29+r30*4-0x7ea8e0db], r28d IID752 - __ cmpl(Address(r30, +0x36f2b387), r29); // cmp dword ptr [r30+0x36f2b387], r29d IID753 - __ cmpl(Address(r31, rcx, (Address::ScaleFactor)0, +0x1fcbf38d), r30); // cmp dword ptr [r31+rcx*1+0x1fcbf38d], r30d IID754 - __ cmpl(Address(rcx, rdx, (Address::ScaleFactor)2, -0x7f9699f2), r31); // cmp dword ptr [rcx+rdx*4-0x7f9699f2], r31d IID755 -#endif // _LP64 - __ orb(Address(rdx, -0x75849247), rcx); // or byte ptr [rdx-0x75849247], cl IID756 -#ifdef _LP64 - __ orb(Address(rbx, +0xd8c88df), rdx); // or byte ptr [rbx+0xd8c88df], dl IID757 - __ orb(Address(r8, r9, (Address::ScaleFactor)1, +0x568f95d2), rbx); // or byte ptr [r8+r9*2+0x568f95d2], bl IID758 - __ orb(Address(r9, r10, (Address::ScaleFactor)3, -0x464ff34e), r8); // or byte ptr [r9+r10*8-0x464ff34e], r8b IID759 - __ orb(Address(r10, r11, (Address::ScaleFactor)2, +0x37d7a014), r9); // or byte ptr [r10+r11*4+0x37d7a014], r9b IID760 - __ orb(Address(r11, r12, (Address::ScaleFactor)3, -0x420ecffc), r10); // or byte ptr [r11+r12*8-0x420ecffc], r10b IID761 - __ orb(Address(r12, r13, (Address::ScaleFactor)3, -0x48201474), r11); // or byte ptr [r12+r13*8-0x48201474], r11b IID762 - __ orb(Address(r13, r14, (Address::ScaleFactor)1, +0x1b0e7f54), r12); // or byte ptr [r13+r14*2+0x1b0e7f54], r12b IID763 - __ orb(Address(r14, r15, (Address::ScaleFactor)2, -0x39e9ad74), r13); // or byte ptr [r14+r15*4-0x39e9ad74], r13b IID764 - __ orb(Address(r15, r16, (Address::ScaleFactor)1, +0x2d3e81a3), r14); // or byte ptr [r15+r16*2+0x2d3e81a3], r14b IID765 - __ orb(Address(r16, +0x79de6658), r15); // or byte ptr [r16+0x79de6658], r15b IID766 - __ orb(Address(r17, r18, (Address::ScaleFactor)2, -0x5365d860), r16); // or byte ptr [r17+r18*4-0x5365d860], r16b IID767 - __ orb(Address(r18, r19, (Address::ScaleFactor)1, -0x376a1bd7), r17); // or byte ptr [r18+r19*2-0x376a1bd7], r17b IID768 - __ orb(Address(r19, r20, (Address::ScaleFactor)0, -0x351adcfb), r18); // or byte ptr [r19+r20*1-0x351adcfb], r18b IID769 - __ orb(Address(r20, -0x4e380faa), r19); // or byte ptr [r20-0x4e380faa], r19b IID770 - __ orb(Address(r21, r22, (Address::ScaleFactor)0, -0x1053b4de), r20); // or byte ptr [r21+r22*1-0x1053b4de], r20b IID771 - __ orb(Address(r22, r23, (Address::ScaleFactor)2, +0x7fa3e7fd), r21); // or byte ptr [r22+r23*4+0x7fa3e7fd], r21b IID772 - __ orb(Address(r23, r24, (Address::ScaleFactor)1, -0xce46f86), r22); // or byte ptr [r23+r24*2-0xce46f86], r22b IID773 - __ orb(Address(r24, +0x1c4a3fc7), r23); // or byte ptr [r24+0x1c4a3fc7], r23b IID774 - __ orb(Address(r25, -0x763a2e75), r24); // or byte ptr [r25-0x763a2e75], r24b IID775 - __ orb(Address(r26, r27, (Address::ScaleFactor)0, +0x5f020960), r25); // or byte ptr [r26+r27*1+0x5f020960], r25b IID776 - __ orb(Address(r27, r28, (Address::ScaleFactor)1, +0x56df203b), r26); // or byte ptr [r27+r28*2+0x56df203b], r26b IID777 - __ orb(Address(r28, r29, (Address::ScaleFactor)1, -0x2a22ea08), r27); // or byte ptr [r28+r29*2-0x2a22ea08], r27b IID778 - __ orb(Address(r29, r30, (Address::ScaleFactor)3, -0x73dde63a), r28); // or byte ptr [r29+r30*8-0x73dde63a], r28b IID779 - __ orb(Address(r30, r31, (Address::ScaleFactor)0, +0x44cd4981), r29); // or byte ptr [r30+r31*1+0x44cd4981], r29b IID780 - __ orb(Address(r31, rcx, (Address::ScaleFactor)0, -0x6423b190), r30); // or byte ptr [r31+rcx*1-0x6423b190], r30b IID781 - __ orb(Address(rcx, rdx, (Address::ScaleFactor)1, +0x7e3f0b47), r31); // or byte ptr [rcx+rdx*2+0x7e3f0b47], r31b IID782 -#endif // _LP64 - __ orl(Address(rdx, rbx, (Address::ScaleFactor)3, -0x7f936592), rcx); // or dword ptr [rdx+rbx*8-0x7f936592], ecx IID783 -#ifdef _LP64 - __ orl(Address(rbx, r8, (Address::ScaleFactor)1, +0x157f4546), rdx); // or dword ptr [rbx+r8*2+0x157f4546], edx IID784 - __ orl(Address(r8, r9, (Address::ScaleFactor)3, -0x42b1278c), rbx); // or dword ptr [r8+r9*8-0x42b1278c], ebx IID785 - __ orl(Address(r9, +0x7ea147bf), r8); // or dword ptr [r9+0x7ea147bf], r8d IID786 - __ orl(Address(r10, r11, (Address::ScaleFactor)3, -0x483ae909), r9); // or dword ptr [r10+r11*8-0x483ae909], r9d IID787 - __ orl(Address(r11, +0x557bcfed), r10); // or dword ptr [r11+0x557bcfed], r10d IID788 - __ orl(Address(r12, r13, (Address::ScaleFactor)1, +0x5d667755), r11); // or dword ptr [r12+r13*2+0x5d667755], r11d IID789 - __ orl(Address(r13, r14, (Address::ScaleFactor)3, -0x96c08d3), r12); // or dword ptr [r13+r14*8-0x96c08d3], r12d IID790 - __ orl(Address(r14, -0x414e30eb), r13); // or dword ptr [r14-0x414e30eb], r13d IID791 - __ orl(Address(r15, r16, (Address::ScaleFactor)1, +0x1f8b1dc2), r14); // or dword ptr [r15+r16*2+0x1f8b1dc2], r14d IID792 - __ orl(Address(r16, r17, (Address::ScaleFactor)2, -0x642cdf60), r15); // or dword ptr [r16+r17*4-0x642cdf60], r15d IID793 - __ orl(Address(r17, r18, (Address::ScaleFactor)1, -0x1f493ee2), r16); // or dword ptr [r17+r18*2-0x1f493ee2], r16d IID794 - __ orl(Address(r18, -0x712bf777), r17); // or dword ptr [r18-0x712bf777], r17d IID795 - __ orl(Address(r19, r20, (Address::ScaleFactor)2, -0x651c04c), r18); // or dword ptr [r19+r20*4-0x651c04c], r18d IID796 - __ orl(Address(r20, r21, (Address::ScaleFactor)0, -0x625fac03), r19); // or dword ptr [r20+r21*1-0x625fac03], r19d IID797 - __ orl(Address(r21, r22, (Address::ScaleFactor)3, -0x3312d783), r20); // or dword ptr [r21+r22*8-0x3312d783], r20d IID798 - __ orl(Address(r22, r23, (Address::ScaleFactor)1, +0x5a205b3e), r21); // or dword ptr [r22+r23*2+0x5a205b3e], r21d IID799 - __ orl(Address(r23, r24, (Address::ScaleFactor)3, +0x6e3f5666), r22); // or dword ptr [r23+r24*8+0x6e3f5666], r22d IID800 - __ orl(Address(r24, r25, (Address::ScaleFactor)1, -0x36c8e71), r23); // or dword ptr [r24+r25*2-0x36c8e71], r23d IID801 - __ orl(Address(r25, +0x6b6942c4), r24); // or dword ptr [r25+0x6b6942c4], r24d IID802 - __ orl(Address(r26, +0x70cac7ce), r25); // or dword ptr [r26+0x70cac7ce], r25d IID803 - __ orl(Address(r27, -0x3ce8855f), r26); // or dword ptr [r27-0x3ce8855f], r26d IID804 - __ orl(Address(r28, r29, (Address::ScaleFactor)3, +0x64c68ec1), r27); // or dword ptr [r28+r29*8+0x64c68ec1], r27d IID805 - __ orl(Address(r29, r30, (Address::ScaleFactor)3, +0x1459cf0d), r28); // or dword ptr [r29+r30*8+0x1459cf0d], r28d IID806 - __ orl(Address(r30, r31, (Address::ScaleFactor)1, +0x47ba2ce6), r29); // or dword ptr [r30+r31*2+0x47ba2ce6], r29d IID807 - __ orl(Address(r31, rcx, (Address::ScaleFactor)0, +0x35c7882e), r30); // or dword ptr [r31+rcx*1+0x35c7882e], r30d IID808 - __ orl(Address(rcx, rdx, (Address::ScaleFactor)2, +0x45b0d5fc), r31); // or dword ptr [rcx+rdx*4+0x45b0d5fc], r31d IID809 -#endif // _LP64 - __ xorb(Address(rdx, rbx, (Address::ScaleFactor)0, +0x7ad0a9f8), rcx); // xor byte ptr [rdx+rbx*1+0x7ad0a9f8], cl IID810 -#ifdef _LP64 - __ xorb(Address(rbx, -0x59ea7841), rdx); // xor byte ptr [rbx-0x59ea7841], dl IID811 - __ xorb(Address(r8, r9, (Address::ScaleFactor)2, +0xfddef8), rbx); // xor byte ptr [r8+r9*4+0xfddef8], bl IID812 - __ xorb(Address(r9, r10, (Address::ScaleFactor)3, +0x57a3b7cd), r8); // xor byte ptr [r9+r10*8+0x57a3b7cd], r8b IID813 - __ xorb(Address(r10, r11, (Address::ScaleFactor)3, -0x53e3b4e7), r9); // xor byte ptr [r10+r11*8-0x53e3b4e7], r9b IID814 - __ xorb(Address(r11, r12, (Address::ScaleFactor)2, -0x461ac049), r10); // xor byte ptr [r11+r12*4-0x461ac049], r10b IID815 - __ xorb(Address(r12, r13, (Address::ScaleFactor)3, +0x1b00bcfc), r11); // xor byte ptr [r12+r13*8+0x1b00bcfc], r11b IID816 - __ xorb(Address(r13, r14, (Address::ScaleFactor)3, -0x7f3e0313), r12); // xor byte ptr [r13+r14*8-0x7f3e0313], r12b IID817 - __ xorb(Address(r14, r15, (Address::ScaleFactor)1, -0x4eadf1c2), r13); // xor byte ptr [r14+r15*2-0x4eadf1c2], r13b IID818 - __ xorb(Address(r15, r16, (Address::ScaleFactor)1, -0x76071c0b), r14); // xor byte ptr [r15+r16*2-0x76071c0b], r14b IID819 - __ xorb(Address(r16, r17, (Address::ScaleFactor)3, +0x15d0c757), r15); // xor byte ptr [r16+r17*8+0x15d0c757], r15b IID820 - __ xorb(Address(r17, r18, (Address::ScaleFactor)2, +0x44a21258), r16); // xor byte ptr [r17+r18*4+0x44a21258], r16b IID821 - __ xorb(Address(r18, r19, (Address::ScaleFactor)0, +0x779097ec), r17); // xor byte ptr [r18+r19*1+0x779097ec], r17b IID822 - __ xorb(Address(r19, r20, (Address::ScaleFactor)1, +0x621b3b57), r18); // xor byte ptr [r19+r20*2+0x621b3b57], r18b IID823 - __ xorb(Address(r20, -0x22b0dc93), r19); // xor byte ptr [r20-0x22b0dc93], r19b IID824 - __ xorb(Address(r21, r22, (Address::ScaleFactor)3, +0x2591820c), r20); // xor byte ptr [r21+r22*8+0x2591820c], r20b IID825 - __ xorb(Address(r22, r23, (Address::ScaleFactor)1, -0x3ad4605a), r21); // xor byte ptr [r22+r23*2-0x3ad4605a], r21b IID826 - __ xorb(Address(r23, -0x7e007bb8), r22); // xor byte ptr [r23-0x7e007bb8], r22b IID827 - __ xorb(Address(r24, r25, (Address::ScaleFactor)0, -0x3c74dfc6), r23); // xor byte ptr [r24+r25*1-0x3c74dfc6], r23b IID828 - __ xorb(Address(r25, r26, (Address::ScaleFactor)3, +0x53d66e6e), r24); // xor byte ptr [r25+r26*8+0x53d66e6e], r24b IID829 - __ xorb(Address(r26, r27, (Address::ScaleFactor)2, -0xfd51a61), r25); // xor byte ptr [r26+r27*4-0xfd51a61], r25b IID830 - __ xorb(Address(r27, r28, (Address::ScaleFactor)0, +0x2e073413), r26); // xor byte ptr [r27+r28*1+0x2e073413], r26b IID831 - __ xorb(Address(r28, r29, (Address::ScaleFactor)2, +0x2389d01f), r27); // xor byte ptr [r28+r29*4+0x2389d01f], r27b IID832 - __ xorb(Address(r29, r30, (Address::ScaleFactor)0, -0x50a921f3), r28); // xor byte ptr [r29+r30*1-0x50a921f3], r28b IID833 - __ xorb(Address(r30, r31, (Address::ScaleFactor)1, -0x7abd78e6), r29); // xor byte ptr [r30+r31*2-0x7abd78e6], r29b IID834 - __ xorb(Address(r31, -0x36ac932f), r30); // xor byte ptr [r31-0x36ac932f], r30b IID835 - __ xorb(Address(rcx, rdx, (Address::ScaleFactor)1, +0x1f38cf22), r31); // xor byte ptr [rcx+rdx*2+0x1f38cf22], r31b IID836 -#endif // _LP64 - __ xorl(Address(rdx, -0xd279df9), rcx); // xor dword ptr [rdx-0xd279df9], ecx IID837 -#ifdef _LP64 - __ xorl(Address(rbx, r8, (Address::ScaleFactor)2, -0x15837a6), rdx); // xor dword ptr [rbx+r8*4-0x15837a6], edx IID838 - __ xorl(Address(r8, r9, (Address::ScaleFactor)0, +0x4821e403), rbx); // xor dword ptr [r8+r9*1+0x4821e403], ebx IID839 - __ xorl(Address(r9, +0x44a54072), r8); // xor dword ptr [r9+0x44a54072], r8d IID840 - __ xorl(Address(r10, -0x57def33), r9); // xor dword ptr [r10-0x57def33], r9d IID841 - __ xorl(Address(r11, r12, (Address::ScaleFactor)3, +0x392a23d5), r10); // xor dword ptr [r11+r12*8+0x392a23d5], r10d IID842 - __ xorl(Address(r12, r13, (Address::ScaleFactor)1, -0x2fcad07b), r11); // xor dword ptr [r12+r13*2-0x2fcad07b], r11d IID843 - __ xorl(Address(r13, r14, (Address::ScaleFactor)2, -0x7703fe1a), r12); // xor dword ptr [r13+r14*4-0x7703fe1a], r12d IID844 - __ xorl(Address(r14, r15, (Address::ScaleFactor)2, -0xec09260), r13); // xor dword ptr [r14+r15*4-0xec09260], r13d IID845 - __ xorl(Address(r15, r16, (Address::ScaleFactor)0, +0x7cf0b78), r14); // xor dword ptr [r15+r16*1+0x7cf0b78], r14d IID846 - __ xorl(Address(r16, r17, (Address::ScaleFactor)0, -0x3071b27d), r15); // xor dword ptr [r16+r17*1-0x3071b27d], r15d IID847 - __ xorl(Address(r17, r18, (Address::ScaleFactor)2, +0xc14ae14), r16); // xor dword ptr [r17+r18*4+0xc14ae14], r16d IID848 - __ xorl(Address(r18, +0x1203c546), r17); // xor dword ptr [r18+0x1203c546], r17d IID849 - __ xorl(Address(r19, r20, (Address::ScaleFactor)0, -0x91bc49b), r18); // xor dword ptr [r19+r20*1-0x91bc49b], r18d IID850 - __ xorl(Address(r20, r21, (Address::ScaleFactor)0, -0x707de87c), r19); // xor dword ptr [r20+r21*1-0x707de87c], r19d IID851 - __ xorl(Address(r21, r22, (Address::ScaleFactor)2, +0x53e6305), r20); // xor dword ptr [r21+r22*4+0x53e6305], r20d IID852 - __ xorl(Address(r22, r23, (Address::ScaleFactor)2, -0x72f66f4a), r21); // xor dword ptr [r22+r23*4-0x72f66f4a], r21d IID853 - __ xorl(Address(r23, r24, (Address::ScaleFactor)2, -0x2c5a7ec), r22); // xor dword ptr [r23+r24*4-0x2c5a7ec], r22d IID854 - __ xorl(Address(r24, r25, (Address::ScaleFactor)2, -0x21466b0a), r23); // xor dword ptr [r24+r25*4-0x21466b0a], r23d IID855 - __ xorl(Address(r25, r26, (Address::ScaleFactor)3, -0x12974427), r24); // xor dword ptr [r25+r26*8-0x12974427], r24d IID856 - __ xorl(Address(r26, r27, (Address::ScaleFactor)0, -0x2a75e8bc), r25); // xor dword ptr [r26+r27*1-0x2a75e8bc], r25d IID857 - __ xorl(Address(r27, r28, (Address::ScaleFactor)3, +0x48de2b4), r26); // xor dword ptr [r27+r28*8+0x48de2b4], r26d IID858 - __ xorl(Address(r28, r29, (Address::ScaleFactor)3, +0x7054aa47), r27); // xor dword ptr [r28+r29*8+0x7054aa47], r27d IID859 - __ xorl(Address(r29, -0x1996eef6), r28); // xor dword ptr [r29-0x1996eef6], r28d IID860 - __ xorl(Address(r30, r31, (Address::ScaleFactor)2, +0x227ff79e), r29); // xor dword ptr [r30+r31*4+0x227ff79e], r29d IID861 - __ xorl(Address(r31, +0xca3fd88), r30); // xor dword ptr [r31+0xca3fd88], r30d IID862 - __ xorl(Address(rcx, rdx, (Address::ScaleFactor)0, -0x633362c6), r31); // xor dword ptr [rcx+rdx*1-0x633362c6], r31d IID863 -#endif // _LP64 - __ subl(Address(rdx, rbx, (Address::ScaleFactor)0, -0x3be908ba), rcx); // sub dword ptr [rdx+rbx*1-0x3be908ba], ecx IID864 -#ifdef _LP64 - __ subl(Address(rbx, r8, (Address::ScaleFactor)3, +0x4fd240d9), rdx); // sub dword ptr [rbx+r8*8+0x4fd240d9], edx IID865 - __ subl(Address(r8, r9, (Address::ScaleFactor)0, -0x2dd625e8), rbx); // sub dword ptr [r8+r9*1-0x2dd625e8], ebx IID866 - __ subl(Address(r9, r10, (Address::ScaleFactor)0, -0xca1173c), r8); // sub dword ptr [r9+r10*1-0xca1173c], r8d IID867 - __ subl(Address(r10, r11, (Address::ScaleFactor)2, +0x263e4813), r9); // sub dword ptr [r10+r11*4+0x263e4813], r9d IID868 - __ subl(Address(r11, r12, (Address::ScaleFactor)2, -0x59215224), r10); // sub dword ptr [r11+r12*4-0x59215224], r10d IID869 - __ subl(Address(r12, r13, (Address::ScaleFactor)0, +0x6913e49b), r11); // sub dword ptr [r12+r13*1+0x6913e49b], r11d IID870 - __ subl(Address(r13, r14, (Address::ScaleFactor)0, +0x13da90b2), r12); // sub dword ptr [r13+r14*1+0x13da90b2], r12d IID871 - __ subl(Address(r14, r15, (Address::ScaleFactor)0, -0x69c46b61), r13); // sub dword ptr [r14+r15*1-0x69c46b61], r13d IID872 - __ subl(Address(r15, r16, (Address::ScaleFactor)3, -0x6f763212), r14); // sub dword ptr [r15+r16*8-0x6f763212], r14d IID873 - __ subl(Address(r16, +0x51f14a71), r15); // sub dword ptr [r16+0x51f14a71], r15d IID874 - __ subl(Address(r17, r18, (Address::ScaleFactor)1, +0x4aadbeec), r16); // sub dword ptr [r17+r18*2+0x4aadbeec], r16d IID875 - __ subl(Address(r18, +0x665fe0aa), r17); // sub dword ptr [r18+0x665fe0aa], r17d IID876 - __ subl(Address(r19, r20, (Address::ScaleFactor)0, +0x12ccd802), r18); // sub dword ptr [r19+r20*1+0x12ccd802], r18d IID877 - __ subl(Address(r20, r21, (Address::ScaleFactor)3, +0x174d2ff2), r19); // sub dword ptr [r20+r21*8+0x174d2ff2], r19d IID878 - __ subl(Address(r21, r22, (Address::ScaleFactor)2, -0x78f54f06), r20); // sub dword ptr [r21+r22*4-0x78f54f06], r20d IID879 - __ subl(Address(r22, r23, (Address::ScaleFactor)0, +0x10fbf943), r21); // sub dword ptr [r22+r23*1+0x10fbf943], r21d IID880 - __ subl(Address(r23, +0x10edb59f), r22); // sub dword ptr [r23+0x10edb59f], r22d IID881 - __ subl(Address(r24, r25, (Address::ScaleFactor)1, -0x5b8c9d77), r23); // sub dword ptr [r24+r25*2-0x5b8c9d77], r23d IID882 - __ subl(Address(r25, r26, (Address::ScaleFactor)1, +0x8f43be2), r24); // sub dword ptr [r25+r26*2+0x8f43be2], r24d IID883 - __ subl(Address(r26, r27, (Address::ScaleFactor)2, -0x6351ada7), r25); // sub dword ptr [r26+r27*4-0x6351ada7], r25d IID884 - __ subl(Address(r27, r28, (Address::ScaleFactor)3, +0x57ea370e), r26); // sub dword ptr [r27+r28*8+0x57ea370e], r26d IID885 - __ subl(Address(r28, r29, (Address::ScaleFactor)3, +0x33f32b94), r27); // sub dword ptr [r28+r29*8+0x33f32b94], r27d IID886 - __ subl(Address(r29, r30, (Address::ScaleFactor)3, -0x14e7918e), r28); // sub dword ptr [r29+r30*8-0x14e7918e], r28d IID887 - __ subl(Address(r30, r31, (Address::ScaleFactor)3, -0x7ef2e5c0), r29); // sub dword ptr [r30+r31*8-0x7ef2e5c0], r29d IID888 - __ subl(Address(r31, rcx, (Address::ScaleFactor)0, +0x71a113b8), r30); // sub dword ptr [r31+rcx*1+0x71a113b8], r30d IID889 - __ subl(Address(rcx, +0x5609d37), r31); // sub dword ptr [rcx+0x5609d37], r31d IID890 -#endif // _LP64 - __ movb(Address(rdx, +0x2899fc60), rcx); // mov byte ptr [rdx+0x2899fc60], cl IID891 -#ifdef _LP64 - __ movb(Address(rbx, r8, (Address::ScaleFactor)2, -0x6c7ff8a7), rdx); // mov byte ptr [rbx+r8*4-0x6c7ff8a7], dl IID892 - __ movb(Address(r8, r9, (Address::ScaleFactor)1, -0x5c4944a8), rbx); // mov byte ptr [r8+r9*2-0x5c4944a8], bl IID893 - __ movb(Address(r9, r10, (Address::ScaleFactor)3, +0x156ca8e2), r8); // mov byte ptr [r9+r10*8+0x156ca8e2], r8b IID894 - __ movb(Address(r10, r11, (Address::ScaleFactor)0, +0x59da9ff8), r9); // mov byte ptr [r10+r11*1+0x59da9ff8], r9b IID895 - __ movb(Address(r11, r12, (Address::ScaleFactor)0, +0x6ae7bf27), r10); // mov byte ptr [r11+r12*1+0x6ae7bf27], r10b IID896 - __ movb(Address(r12, +0x195a68f), r11); // mov byte ptr [r12+0x195a68f], r11b IID897 - __ movb(Address(r13, +0x1774dcd0), r12); // mov byte ptr [r13+0x1774dcd0], r12b IID898 - __ movb(Address(r14, r15, (Address::ScaleFactor)1, -0x6d011eef), r13); // mov byte ptr [r14+r15*2-0x6d011eef], r13b IID899 - __ movb(Address(r15, r16, (Address::ScaleFactor)3, +0x260f5afa), r14); // mov byte ptr [r15+r16*8+0x260f5afa], r14b IID900 - __ movb(Address(r16, +0x630ee80), r15); // mov byte ptr [r16+0x630ee80], r15b IID901 - __ movb(Address(r17, r18, (Address::ScaleFactor)1, +0x2dfcc201), r16); // mov byte ptr [r17+r18*2+0x2dfcc201], r16b IID902 - __ movb(Address(r18, r19, (Address::ScaleFactor)0, +0x5a5b7576), r17); // mov byte ptr [r18+r19*1+0x5a5b7576], r17b IID903 - __ movb(Address(r19, +0x2f6e76e9), r18); // mov byte ptr [r19+0x2f6e76e9], r18b IID904 - __ movb(Address(r20, r21, (Address::ScaleFactor)2, -0x383f23f5), r19); // mov byte ptr [r20+r21*4-0x383f23f5], r19b IID905 - __ movb(Address(r21, r22, (Address::ScaleFactor)3, -0x10d40adf), r20); // mov byte ptr [r21+r22*8-0x10d40adf], r20b IID906 - __ movb(Address(r22, r23, (Address::ScaleFactor)2, +0x8df3057), r21); // mov byte ptr [r22+r23*4+0x8df3057], r21b IID907 - __ movb(Address(r23, r24, (Address::ScaleFactor)2, -0x2004ef1c), r22); // mov byte ptr [r23+r24*4-0x2004ef1c], r22b IID908 - __ movb(Address(r24, r25, (Address::ScaleFactor)1, -0x1f88b255), r23); // mov byte ptr [r24+r25*2-0x1f88b255], r23b IID909 - __ movb(Address(r25, r26, (Address::ScaleFactor)2, +0x568aa945), r24); // mov byte ptr [r25+r26*4+0x568aa945], r24b IID910 - __ movb(Address(r26, +0x21f2f8b2), r25); // mov byte ptr [r26+0x21f2f8b2], r25b IID911 - __ movb(Address(r27, r28, (Address::ScaleFactor)3, +0xd7248e5), r26); // mov byte ptr [r27+r28*8+0xd7248e5], r26b IID912 - __ movb(Address(r28, r29, (Address::ScaleFactor)1, +0x11d0196b), r27); // mov byte ptr [r28+r29*2+0x11d0196b], r27b IID913 - __ movb(Address(r29, r30, (Address::ScaleFactor)1, -0x68dd97be), r28); // mov byte ptr [r29+r30*2-0x68dd97be], r28b IID914 - __ movb(Address(r30, r31, (Address::ScaleFactor)3, +0x62241504), r29); // mov byte ptr [r30+r31*8+0x62241504], r29b IID915 - __ movb(Address(r31, rcx, (Address::ScaleFactor)1, +0x74351d49), r30); // mov byte ptr [r31+rcx*2+0x74351d49], r30b IID916 - __ movb(Address(rcx, -0x109c0f66), r31); // mov byte ptr [rcx-0x109c0f66], r31b IID917 -#endif // _LP64 - __ movl(Address(rdx, -0x3ffb94c9), rcx); // mov dword ptr [rdx-0x3ffb94c9], ecx IID918 -#ifdef _LP64 - __ movl(Address(rbx, r8, (Address::ScaleFactor)1, -0x2ec81927), rdx); // mov dword ptr [rbx+r8*2-0x2ec81927], edx IID919 - __ movl(Address(r8, -0x430aa6e8), rbx); // mov dword ptr [r8-0x430aa6e8], ebx IID920 - __ movl(Address(r9, r10, (Address::ScaleFactor)1, -0x35beb335), r8); // mov dword ptr [r9+r10*2-0x35beb335], r8d IID921 - __ movl(Address(r10, r11, (Address::ScaleFactor)2, +0x432edd3d), r9); // mov dword ptr [r10+r11*4+0x432edd3d], r9d IID922 - __ movl(Address(r11, +0x99a62c), r10); // mov dword ptr [r11+0x99a62c], r10d IID923 - __ movl(Address(r12, r13, (Address::ScaleFactor)3, -0x62e1905), r11); // mov dword ptr [r12+r13*8-0x62e1905], r11d IID924 - __ movl(Address(r13, r14, (Address::ScaleFactor)3, +0x4d60e579), r12); // mov dword ptr [r13+r14*8+0x4d60e579], r12d IID925 - __ movl(Address(r14, r15, (Address::ScaleFactor)1, -0x31767c10), r13); // mov dword ptr [r14+r15*2-0x31767c10], r13d IID926 - __ movl(Address(r15, r16, (Address::ScaleFactor)3, -0x487ba491), r14); // mov dword ptr [r15+r16*8-0x487ba491], r14d IID927 - __ movl(Address(r16, r17, (Address::ScaleFactor)1, -0x3150d005), r15); // mov dword ptr [r16+r17*2-0x3150d005], r15d IID928 - __ movl(Address(r17, r18, (Address::ScaleFactor)3, -0x27bbc6a), r16); // mov dword ptr [r17+r18*8-0x27bbc6a], r16d IID929 - __ movl(Address(r18, r19, (Address::ScaleFactor)3, +0x37ff20a0), r17); // mov dword ptr [r18+r19*8+0x37ff20a0], r17d IID930 - __ movl(Address(r19, r20, (Address::ScaleFactor)3, -0x7c5eb8ad), r18); // mov dword ptr [r19+r20*8-0x7c5eb8ad], r18d IID931 - __ movl(Address(r20, r21, (Address::ScaleFactor)1, -0x582e9d6a), r19); // mov dword ptr [r20+r21*2-0x582e9d6a], r19d IID932 - __ movl(Address(r21, -0x10358dbf), r20); // mov dword ptr [r21-0x10358dbf], r20d IID933 - __ movl(Address(r22, -0x11698931), r21); // mov dword ptr [r22-0x11698931], r21d IID934 - __ movl(Address(r23, r24, (Address::ScaleFactor)0, -0x6dc6b79d), r22); // mov dword ptr [r23+r24*1-0x6dc6b79d], r22d IID935 - __ movl(Address(r24, r25, (Address::ScaleFactor)2, +0x43dda2a5), r23); // mov dword ptr [r24+r25*4+0x43dda2a5], r23d IID936 - __ movl(Address(r25, r26, (Address::ScaleFactor)1, -0x63ee960b), r24); // mov dword ptr [r25+r26*2-0x63ee960b], r24d IID937 - __ movl(Address(r26, r27, (Address::ScaleFactor)3, -0x85a467d), r25); // mov dword ptr [r26+r27*8-0x85a467d], r25d IID938 - __ movl(Address(r27, r28, (Address::ScaleFactor)1, -0x59dc267b), r26); // mov dword ptr [r27+r28*2-0x59dc267b], r26d IID939 - __ movl(Address(r28, r29, (Address::ScaleFactor)3, +0x1899e440), r27); // mov dword ptr [r28+r29*8+0x1899e440], r27d IID940 - __ movl(Address(r29, r30, (Address::ScaleFactor)3, -0x5bfd25e9), r28); // mov dword ptr [r29+r30*8-0x5bfd25e9], r28d IID941 - __ movl(Address(r30, r31, (Address::ScaleFactor)0, +0x3b7167b7), r29); // mov dword ptr [r30+r31*1+0x3b7167b7], r29d IID942 - __ movl(Address(r31, rcx, (Address::ScaleFactor)3, +0x4faeaf91), r30); // mov dword ptr [r31+rcx*8+0x4faeaf91], r30d IID943 - __ movl(Address(rcx, rdx, (Address::ScaleFactor)0, -0x69d3ce71), r31); // mov dword ptr [rcx+rdx*1-0x69d3ce71], r31d IID944 -#endif // _LP64 - __ xaddb(Address(rdx, +0x502efa46), rcx); // xadd byte ptr [rdx+0x502efa46], cl IID945 -#ifdef _LP64 - __ xaddb(Address(rbx, r8, (Address::ScaleFactor)0, +0x9897189), rdx); // xadd byte ptr [rbx+r8*1+0x9897189], dl IID946 - __ xaddb(Address(r8, r9, (Address::ScaleFactor)3, -0x7bfb7872), rbx); // xadd byte ptr [r8+r9*8-0x7bfb7872], bl IID947 - __ xaddb(Address(r9, -0x3a1b7bec), r8); // xadd byte ptr [r9-0x3a1b7bec], r8b IID948 - __ xaddb(Address(r10, r11, (Address::ScaleFactor)2, -0x32f807a0), r9); // xadd byte ptr [r10+r11*4-0x32f807a0], r9b IID949 - __ xaddb(Address(r11, r12, (Address::ScaleFactor)3, -0x4e468909), r10); // xadd byte ptr [r11+r12*8-0x4e468909], r10b IID950 - __ xaddb(Address(r12, -0x4fb2949b), r11); // xadd byte ptr [r12-0x4fb2949b], r11b IID951 - __ xaddb(Address(r13, r14, (Address::ScaleFactor)3, -0x36a64193), r12); // xadd byte ptr [r13+r14*8-0x36a64193], r12b IID952 - __ xaddb(Address(r14, r15, (Address::ScaleFactor)0, +0x5f8c77d8), r13); // xadd byte ptr [r14+r15*1+0x5f8c77d8], r13b IID953 - __ xaddb(Address(r15, r16, (Address::ScaleFactor)2, +0x456e9f36), r14); // xadd byte ptr [r15+r16*4+0x456e9f36], r14b IID954 - __ xaddb(Address(r16, r17, (Address::ScaleFactor)1, +0x5e4fa69), r15); // xadd byte ptr [r16+r17*2+0x5e4fa69], r15b IID955 - __ xaddb(Address(r17, r18, (Address::ScaleFactor)0, -0x25c56e6), r16); // xadd byte ptr [r17+r18*1-0x25c56e6], r16b IID956 - __ xaddb(Address(r18, r19, (Address::ScaleFactor)0, -0x53593b7), r17); // xadd byte ptr [r18+r19*1-0x53593b7], r17b IID957 - __ xaddb(Address(r19, r20, (Address::ScaleFactor)2, +0x3586b152), r18); // xadd byte ptr [r19+r20*4+0x3586b152], r18b IID958 - __ xaddb(Address(r20, -0x12ddf677), r19); // xadd byte ptr [r20-0x12ddf677], r19b IID959 - __ xaddb(Address(r21, r22, (Address::ScaleFactor)0, +0x3e91e6e1), r20); // xadd byte ptr [r21+r22*1+0x3e91e6e1], r20b IID960 - __ xaddb(Address(r22, r23, (Address::ScaleFactor)3, +0x5326f784), r21); // xadd byte ptr [r22+r23*8+0x5326f784], r21b IID961 - __ xaddb(Address(r23, r24, (Address::ScaleFactor)2, +0x38ae4f46), r22); // xadd byte ptr [r23+r24*4+0x38ae4f46], r22b IID962 - __ xaddb(Address(r24, r25, (Address::ScaleFactor)2, -0x26a3b517), r23); // xadd byte ptr [r24+r25*4-0x26a3b517], r23b IID963 - __ xaddb(Address(r25, r26, (Address::ScaleFactor)3, +0x6416ebe7), r24); // xadd byte ptr [r25+r26*8+0x6416ebe7], r24b IID964 - __ xaddb(Address(r26, r27, (Address::ScaleFactor)0, +0x74164293), r25); // xadd byte ptr [r26+r27*1+0x74164293], r25b IID965 - __ xaddb(Address(r27, r28, (Address::ScaleFactor)0, +0x114e745e), r26); // xadd byte ptr [r27+r28*1+0x114e745e], r26b IID966 - __ xaddb(Address(r28, r29, (Address::ScaleFactor)3, -0x4f28edb9), r27); // xadd byte ptr [r28+r29*8-0x4f28edb9], r27b IID967 - __ xaddb(Address(r29, r30, (Address::ScaleFactor)0, +0x257830e5), r28); // xadd byte ptr [r29+r30*1+0x257830e5], r28b IID968 - __ xaddb(Address(r30, r31, (Address::ScaleFactor)0, -0x63e81eda), r29); // xadd byte ptr [r30+r31*1-0x63e81eda], r29b IID969 - __ xaddb(Address(r31, rcx, (Address::ScaleFactor)1, -0x1c40fea9), r30); // xadd byte ptr [r31+rcx*2-0x1c40fea9], r30b IID970 - __ xaddb(Address(rcx, rdx, (Address::ScaleFactor)3, -0x3e1f0bed), r31); // xadd byte ptr [rcx+rdx*8-0x3e1f0bed], r31b IID971 -#endif // _LP64 - __ xaddw(Address(rdx, rbx, (Address::ScaleFactor)3, -0xf4c2c24), rcx); // xadd word ptr [rdx+rbx*8-0xf4c2c24], cx IID972 -#ifdef _LP64 - __ xaddw(Address(rbx, r8, (Address::ScaleFactor)3, +0x52adc112), rdx); // xadd word ptr [rbx+r8*8+0x52adc112], dx IID973 - __ xaddw(Address(r8, -0x136e9c8c), rbx); // xadd word ptr [r8-0x136e9c8c], bx IID974 - __ xaddw(Address(r9, r10, (Address::ScaleFactor)0, +0x68f45686), r8); // xadd word ptr [r9+r10*1+0x68f45686], r8w IID975 - __ xaddw(Address(r10, r11, (Address::ScaleFactor)2, -0x109d415d), r9); // xadd word ptr [r10+r11*4-0x109d415d], r9w IID976 - __ xaddw(Address(r11, r12, (Address::ScaleFactor)1, +0x751c25bb), r10); // xadd word ptr [r11+r12*2+0x751c25bb], r10w IID977 - __ xaddw(Address(r12, r13, (Address::ScaleFactor)2, +0x56fbde08), r11); // xadd word ptr [r12+r13*4+0x56fbde08], r11w IID978 - __ xaddw(Address(r13, r14, (Address::ScaleFactor)3, +0x7ec2df5d), r12); // xadd word ptr [r13+r14*8+0x7ec2df5d], r12w IID979 - __ xaddw(Address(r14, r15, (Address::ScaleFactor)0, -0x15234ced), r13); // xadd word ptr [r14+r15*1-0x15234ced], r13w IID980 - __ xaddw(Address(r15, r16, (Address::ScaleFactor)2, +0x7c6b4340), r14); // xadd word ptr [r15+r16*4+0x7c6b4340], r14w IID981 - __ xaddw(Address(r16, r17, (Address::ScaleFactor)1, -0x23d658fa), r15); // xadd word ptr [r16+r17*2-0x23d658fa], r15w IID982 - __ xaddw(Address(r17, r18, (Address::ScaleFactor)2, -0x94e760d), r16); // xadd word ptr [r17+r18*4-0x94e760d], r16w IID983 - __ xaddw(Address(r18, r19, (Address::ScaleFactor)2, +0x5fbb0a7e), r17); // xadd word ptr [r18+r19*4+0x5fbb0a7e], r17w IID984 - __ xaddw(Address(r19, r20, (Address::ScaleFactor)3, +0x53111632), r18); // xadd word ptr [r19+r20*8+0x53111632], r18w IID985 - __ xaddw(Address(r20, r21, (Address::ScaleFactor)2, +0x1f96a4ae), r19); // xadd word ptr [r20+r21*4+0x1f96a4ae], r19w IID986 - __ xaddw(Address(r21, r22, (Address::ScaleFactor)0, -0x2b8217f), r20); // xadd word ptr [r21+r22*1-0x2b8217f], r20w IID987 - __ xaddw(Address(r22, r23, (Address::ScaleFactor)3, +0x7b499e08), r21); // xadd word ptr [r22+r23*8+0x7b499e08], r21w IID988 - __ xaddw(Address(r23, r24, (Address::ScaleFactor)2, +0x562ee161), r22); // xadd word ptr [r23+r24*4+0x562ee161], r22w IID989 - __ xaddw(Address(r24, r25, (Address::ScaleFactor)0, +0x5fc359a6), r23); // xadd word ptr [r24+r25*1+0x5fc359a6], r23w IID990 - __ xaddw(Address(r25, r26, (Address::ScaleFactor)1, +0x6bff816c), r24); // xadd word ptr [r25+r26*2+0x6bff816c], r24w IID991 - __ xaddw(Address(r26, r27, (Address::ScaleFactor)1, -0x4bcd5e59), r25); // xadd word ptr [r26+r27*2-0x4bcd5e59], r25w IID992 - __ xaddw(Address(r27, r28, (Address::ScaleFactor)2, -0x23a4d8a8), r26); // xadd word ptr [r27+r28*4-0x23a4d8a8], r26w IID993 - __ xaddw(Address(r28, r29, (Address::ScaleFactor)0, +0x52182f0f), r27); // xadd word ptr [r28+r29*1+0x52182f0f], r27w IID994 - __ xaddw(Address(r29, r30, (Address::ScaleFactor)1, -0x7c6578c8), r28); // xadd word ptr [r29+r30*2-0x7c6578c8], r28w IID995 - __ xaddw(Address(r30, r31, (Address::ScaleFactor)1, +0x6bfd1a40), r29); // xadd word ptr [r30+r31*2+0x6bfd1a40], r29w IID996 - __ xaddw(Address(r31, rcx, (Address::ScaleFactor)1, -0x2c144e79), r30); // xadd word ptr [r31+rcx*2-0x2c144e79], r30w IID997 - __ xaddw(Address(rcx, rdx, (Address::ScaleFactor)2, -0x1ae5aff8), r31); // xadd word ptr [rcx+rdx*4-0x1ae5aff8], r31w IID998 -#endif // _LP64 - __ xaddl(Address(rdx, rbx, (Address::ScaleFactor)2, +0x3d7b838d), rcx); // xadd dword ptr [rdx+rbx*4+0x3d7b838d], ecx IID999 -#ifdef _LP64 - __ xaddl(Address(rbx, r8, (Address::ScaleFactor)3, -0x174b7ffc), rdx); // xadd dword ptr [rbx+r8*8-0x174b7ffc], edx IID1000 - __ xaddl(Address(r8, r9, (Address::ScaleFactor)0, +0x29431add), rbx); // xadd dword ptr [r8+r9*1+0x29431add], ebx IID1001 - __ xaddl(Address(r9, r10, (Address::ScaleFactor)0, -0x394cc353), r8); // xadd dword ptr [r9+r10*1-0x394cc353], r8d IID1002 - __ xaddl(Address(r10, r11, (Address::ScaleFactor)0, -0x463c6a76), r9); // xadd dword ptr [r10+r11*1-0x463c6a76], r9d IID1003 - __ xaddl(Address(r11, r12, (Address::ScaleFactor)3, +0x54d2cb28), r10); // xadd dword ptr [r11+r12*8+0x54d2cb28], r10d IID1004 - __ xaddl(Address(r12, r13, (Address::ScaleFactor)0, -0x54cd730), r11); // xadd dword ptr [r12+r13*1-0x54cd730], r11d IID1005 - __ xaddl(Address(r13, r14, (Address::ScaleFactor)3, -0x637ce395), r12); // xadd dword ptr [r13+r14*8-0x637ce395], r12d IID1006 - __ xaddl(Address(r14, r15, (Address::ScaleFactor)2, -0x48f66777), r13); // xadd dword ptr [r14+r15*4-0x48f66777], r13d IID1007 - __ xaddl(Address(r15, r16, (Address::ScaleFactor)2, +0x6ad4cd7a), r14); // xadd dword ptr [r15+r16*4+0x6ad4cd7a], r14d IID1008 - __ xaddl(Address(r16, -0x20129707), r15); // xadd dword ptr [r16-0x20129707], r15d IID1009 - __ xaddl(Address(r17, +0x5a7c7f1b), r16); // xadd dword ptr [r17+0x5a7c7f1b], r16d IID1010 - __ xaddl(Address(r18, r19, (Address::ScaleFactor)2, +0x7f21e995), r17); // xadd dword ptr [r18+r19*4+0x7f21e995], r17d IID1011 - __ xaddl(Address(r19, -0x14750607), r18); // xadd dword ptr [r19-0x14750607], r18d IID1012 - __ xaddl(Address(r20, r21, (Address::ScaleFactor)0, -0x1dd7a8b8), r19); // xadd dword ptr [r20+r21*1-0x1dd7a8b8], r19d IID1013 - __ xaddl(Address(r21, r22, (Address::ScaleFactor)2, +0x2203447), r20); // xadd dword ptr [r21+r22*4+0x2203447], r20d IID1014 - __ xaddl(Address(r22, -0x156d418a), r21); // xadd dword ptr [r22-0x156d418a], r21d IID1015 - __ xaddl(Address(r23, r24, (Address::ScaleFactor)3, -0x435dafc7), r22); // xadd dword ptr [r23+r24*8-0x435dafc7], r22d IID1016 - __ xaddl(Address(r24, +0x1f574faf), r23); // xadd dword ptr [r24+0x1f574faf], r23d IID1017 - __ xaddl(Address(r25, +0x6ceb8a99), r24); // xadd dword ptr [r25+0x6ceb8a99], r24d IID1018 - __ xaddl(Address(r26, r27, (Address::ScaleFactor)0, +0xe266f09), r25); // xadd dword ptr [r26+r27*1+0xe266f09], r25d IID1019 - __ xaddl(Address(r27, +0x70eb5221), r26); // xadd dword ptr [r27+0x70eb5221], r26d IID1020 - __ xaddl(Address(r28, r29, (Address::ScaleFactor)1, +0xcf1613b), r27); // xadd dword ptr [r28+r29*2+0xcf1613b], r27d IID1021 - __ xaddl(Address(r29, r30, (Address::ScaleFactor)2, -0x5466d765), r28); // xadd dword ptr [r29+r30*4-0x5466d765], r28d IID1022 - __ xaddl(Address(r30, r31, (Address::ScaleFactor)1, +0x5924d2fd), r29); // xadd dword ptr [r30+r31*2+0x5924d2fd], r29d IID1023 - __ xaddl(Address(r31, rcx, (Address::ScaleFactor)3, +0x5b472ea8), r30); // xadd dword ptr [r31+rcx*8+0x5b472ea8], r30d IID1024 - __ xaddl(Address(rcx, rdx, (Address::ScaleFactor)2, +0x74780797), r31); // xadd dword ptr [rcx+rdx*4+0x74780797], r31d IID1025 -#endif // _LP64 - __ adcl(Address(rcx, rdx, (Address::ScaleFactor)2, +0x2ee0db62), 1); // adc dword ptr [rcx+rdx*4+0x2ee0db62], 1 IID1026 - __ adcl(Address(rdx, rbx, (Address::ScaleFactor)1, +0x2ee19667), 1); // adc dword ptr [rdx+rbx*2+0x2ee19667], 1 IID1027 -#ifdef _LP64 - __ adcl(Address(rbx, -0x5e81ddb4), 1); // adc dword ptr [rbx-0x5e81ddb4], 1 IID1028 - __ adcl(Address(r8, r9, (Address::ScaleFactor)3, -0x409e5e85), 1); // adc dword ptr [r8+r9*8-0x409e5e85], 1 IID1029 - __ adcl(Address(r9, r10, (Address::ScaleFactor)3, +0x697a482b), 1); // adc dword ptr [r9+r10*8+0x697a482b], 1 IID1030 - __ adcl(Address(r10, +0x7d5bbd58), 1); // adc dword ptr [r10+0x7d5bbd58], 1 IID1031 - __ adcl(Address(r11, r12, (Address::ScaleFactor)2, -0xb39f4e1), 1); // adc dword ptr [r11+r12*4-0xb39f4e1], 1 IID1032 - __ adcl(Address(r12, r13, (Address::ScaleFactor)1, +0x27642631), 1); // adc dword ptr [r12+r13*2+0x27642631], 1 IID1033 - __ adcl(Address(r13, -0xa99680e), 1); // adc dword ptr [r13-0xa99680e], 1 IID1034 - __ adcl(Address(r14, r15, (Address::ScaleFactor)0, -0x4b00891c), 1); // adc dword ptr [r14+r15*1-0x4b00891c], 1 IID1035 - __ adcl(Address(r15, r16, (Address::ScaleFactor)0, -0x56c51eff), 1); // adc dword ptr [r15+r16*1-0x56c51eff], 1 IID1036 - __ adcl(Address(r16, r17, (Address::ScaleFactor)2, +0x53d3de24), 1); // adc dword ptr [r16+r17*4+0x53d3de24], 1 IID1037 - __ adcl(Address(r17, r18, (Address::ScaleFactor)0, +0x481c1324), 1); // adc dword ptr [r17+r18*1+0x481c1324], 1 IID1038 - __ adcl(Address(r18, r19, (Address::ScaleFactor)3, -0x66dc9132), 1); // adc dword ptr [r18+r19*8-0x66dc9132], 1 IID1039 - __ adcl(Address(r19, r20, (Address::ScaleFactor)2, -0x2dd1de6b), 1); // adc dword ptr [r19+r20*4-0x2dd1de6b], 1 IID1040 - __ adcl(Address(r20, r21, (Address::ScaleFactor)1, -0x69300b50), 1); // adc dword ptr [r20+r21*2-0x69300b50], 1 IID1041 - __ adcl(Address(r21, r22, (Address::ScaleFactor)3, +0x4a2e5370), 1); // adc dword ptr [r21+r22*8+0x4a2e5370], 1 IID1042 - __ adcl(Address(r22, r23, (Address::ScaleFactor)2, -0x5e3f28e6), 1); // adc dword ptr [r22+r23*4-0x5e3f28e6], 1 IID1043 - __ adcl(Address(r23, r24, (Address::ScaleFactor)3, -0x7687534), 1); // adc dword ptr [r23+r24*8-0x7687534], 1 IID1044 - __ adcl(Address(r24, -0x6631bcde), 1); // adc dword ptr [r24-0x6631bcde], 1 IID1045 - __ adcl(Address(r25, r26, (Address::ScaleFactor)0, +0x5479e63b), 1); // adc dword ptr [r25+r26*1+0x5479e63b], 1 IID1046 - __ adcl(Address(r26, +0x2e3d2562), 1); // adc dword ptr [r26+0x2e3d2562], 1 IID1047 - __ adcl(Address(r27, +0x5dc20fa8), 1); // adc dword ptr [r27+0x5dc20fa8], 1 IID1048 - __ adcl(Address(r28, r29, (Address::ScaleFactor)1, +0x406b84ba), 1); // adc dword ptr [r28+r29*2+0x406b84ba], 1 IID1049 - __ adcl(Address(r29, -0x2ea6ae78), 1); // adc dword ptr [r29-0x2ea6ae78], 1 IID1050 - __ adcl(Address(r30, r31, (Address::ScaleFactor)2, -0x450889bb), 1); // adc dword ptr [r30+r31*4-0x450889bb], 1 IID1051 - __ adcl(Address(r31, rcx, (Address::ScaleFactor)1, +0x7b1074f1), 1); // adc dword ptr [r31+rcx*2+0x7b1074f1], 1 IID1052 - __ adcl(Address(rcx, rdx, (Address::ScaleFactor)1, +0x4192d5b8), 16); // adc dword ptr [rcx+rdx*2+0x4192d5b8], 16 IID1053 - __ adcl(Address(rdx, rbx, (Address::ScaleFactor)2, -0x248684b0), 16); // adc dword ptr [rdx+rbx*4-0x248684b0], 16 IID1054 - __ adcl(Address(rbx, r8, (Address::ScaleFactor)0, -0x66a9b233), 16); // adc dword ptr [rbx+r8*1-0x66a9b233], 16 IID1055 - __ adcl(Address(r8, r9, (Address::ScaleFactor)0, +0x41e9a8b3), 16); // adc dword ptr [r8+r9*1+0x41e9a8b3], 16 IID1056 - __ adcl(Address(r9, r10, (Address::ScaleFactor)2, +0x1b4f7b95), 16); // adc dword ptr [r9+r10*4+0x1b4f7b95], 16 IID1057 - __ adcl(Address(r10, r11, (Address::ScaleFactor)1, +0x67c20913), 16); // adc dword ptr [r10+r11*2+0x67c20913], 16 IID1058 - __ adcl(Address(r11, -0x4b66d786), 16); // adc dword ptr [r11-0x4b66d786], 16 IID1059 - __ adcl(Address(r12, +0x3e60fffd), 16); // adc dword ptr [r12+0x3e60fffd], 16 IID1060 - __ adcl(Address(r13, r14, (Address::ScaleFactor)3, +0x26587590), 16); // adc dword ptr [r13+r14*8+0x26587590], 16 IID1061 - __ adcl(Address(r14, r15, (Address::ScaleFactor)2, +0x25fda305), 16); // adc dword ptr [r14+r15*4+0x25fda305], 16 IID1062 - __ adcl(Address(r15, r16, (Address::ScaleFactor)0, -0x1fdacc44), 16); // adc dword ptr [r15+r16*1-0x1fdacc44], 16 IID1063 - __ adcl(Address(r16, r17, (Address::ScaleFactor)3, -0x4971f0ed), 16); // adc dword ptr [r16+r17*8-0x4971f0ed], 16 IID1064 - __ adcl(Address(r17, r18, (Address::ScaleFactor)1, -0x34cfc717), 16); // adc dword ptr [r17+r18*2-0x34cfc717], 16 IID1065 - __ adcl(Address(r18, r19, (Address::ScaleFactor)2, -0x3078c409), 16); // adc dword ptr [r18+r19*4-0x3078c409], 16 IID1066 - __ adcl(Address(r19, r20, (Address::ScaleFactor)2, -0x1fe0b887), 16); // adc dword ptr [r19+r20*4-0x1fe0b887], 16 IID1067 - __ adcl(Address(r20, r21, (Address::ScaleFactor)0, -0x3c181cb6), 16); // adc dword ptr [r20+r21*1-0x3c181cb6], 16 IID1068 - __ adcl(Address(r21, r22, (Address::ScaleFactor)2, +0x30ea4a21), 16); // adc dword ptr [r21+r22*4+0x30ea4a21], 16 IID1069 - __ adcl(Address(r22, r23, (Address::ScaleFactor)0, +0x63b2504), 16); // adc dword ptr [r22+r23*1+0x63b2504], 16 IID1070 - __ adcl(Address(r23, r24, (Address::ScaleFactor)0, +0x8329f0b), 16); // adc dword ptr [r23+r24*1+0x8329f0b], 16 IID1071 - __ adcl(Address(r24, +0x125b7677), 16); // adc dword ptr [r24+0x125b7677], 16 IID1072 - __ adcl(Address(r25, r26, (Address::ScaleFactor)1, +0x77cca61e), 16); // adc dword ptr [r25+r26*2+0x77cca61e], 16 IID1073 - __ adcl(Address(r26, +0x4231125f), 16); // adc dword ptr [r26+0x4231125f], 16 IID1074 - __ adcl(Address(r27, r28, (Address::ScaleFactor)0, +0x6d8e918a), 16); // adc dword ptr [r27+r28*1+0x6d8e918a], 16 IID1075 - __ adcl(Address(r28, r29, (Address::ScaleFactor)3, +0x77e8eab2), 16); // adc dword ptr [r28+r29*8+0x77e8eab2], 16 IID1076 - __ adcl(Address(r29, r30, (Address::ScaleFactor)0, +0x7d3f7447), 16); // adc dword ptr [r29+r30*1+0x7d3f7447], 16 IID1077 - __ adcl(Address(r30, r31, (Address::ScaleFactor)1, +0x744cb418), 16); // adc dword ptr [r30+r31*2+0x744cb418], 16 IID1078 - __ adcl(Address(r31, rcx, (Address::ScaleFactor)2, +0x7de657be), 16); // adc dword ptr [r31+rcx*4+0x7de657be], 16 IID1079 - __ adcl(Address(rcx, rdx, (Address::ScaleFactor)0, -0x4e3cbfea), 256); // adc dword ptr [rcx+rdx*1-0x4e3cbfea], 256 IID1080 - __ adcl(Address(rdx, +0x2962a551), 256); // adc dword ptr [rdx+0x2962a551], 256 IID1081 - __ adcl(Address(rbx, r8, (Address::ScaleFactor)2, +0x7754a996), 256); // adc dword ptr [rbx+r8*4+0x7754a996], 256 IID1082 - __ adcl(Address(r8, r9, (Address::ScaleFactor)1, -0x771aec2a), 256); // adc dword ptr [r8+r9*2-0x771aec2a], 256 IID1083 - __ adcl(Address(r9, r10, (Address::ScaleFactor)0, -0x79944e9b), 256); // adc dword ptr [r9+r10*1-0x79944e9b], 256 IID1084 - __ adcl(Address(r10, r11, (Address::ScaleFactor)2, +0x69f67cb0), 256); // adc dword ptr [r10+r11*4+0x69f67cb0], 256 IID1085 - __ adcl(Address(r11, r12, (Address::ScaleFactor)1, +0x3696efe3), 256); // adc dword ptr [r11+r12*2+0x3696efe3], 256 IID1086 - __ adcl(Address(r12, r13, (Address::ScaleFactor)3, -0x80d26a4), 256); // adc dword ptr [r12+r13*8-0x80d26a4], 256 IID1087 - __ adcl(Address(r13, +0x53ea986a), 256); // adc dword ptr [r13+0x53ea986a], 256 IID1088 - __ adcl(Address(r14, r15, (Address::ScaleFactor)2, -0x779dafb4), 256); // adc dword ptr [r14+r15*4-0x779dafb4], 256 IID1089 - __ adcl(Address(r15, r16, (Address::ScaleFactor)1, -0x6761dce4), 256); // adc dword ptr [r15+r16*2-0x6761dce4], 256 IID1090 - __ adcl(Address(r16, r17, (Address::ScaleFactor)1, +0x2086863), 256); // adc dword ptr [r16+r17*2+0x2086863], 256 IID1091 - __ adcl(Address(r17, r18, (Address::ScaleFactor)2, -0x75d4e7cb), 256); // adc dword ptr [r17+r18*4-0x75d4e7cb], 256 IID1092 - __ adcl(Address(r18, r19, (Address::ScaleFactor)3, -0x480358ac), 256); // adc dword ptr [r18+r19*8-0x480358ac], 256 IID1093 - __ adcl(Address(r19, r20, (Address::ScaleFactor)0, -0x2f26eb56), 256); // adc dword ptr [r19+r20*1-0x2f26eb56], 256 IID1094 - __ adcl(Address(r20, r21, (Address::ScaleFactor)0, -0x3cec57eb), 256); // adc dword ptr [r20+r21*1-0x3cec57eb], 256 IID1095 - __ adcl(Address(r21, r22, (Address::ScaleFactor)1, +0xb147139), 256); // adc dword ptr [r21+r22*2+0xb147139], 256 IID1096 - __ adcl(Address(r22, r23, (Address::ScaleFactor)1, -0x718c61e1), 256); // adc dword ptr [r22+r23*2-0x718c61e1], 256 IID1097 - __ adcl(Address(r23, +0x3f7d6577), 256); // adc dword ptr [r23+0x3f7d6577], 256 IID1098 - __ adcl(Address(r24, r25, (Address::ScaleFactor)3, +0x372dc031), 256); // adc dword ptr [r24+r25*8+0x372dc031], 256 IID1099 - __ adcl(Address(r25, -0x245e267f), 256); // adc dword ptr [r25-0x245e267f], 256 IID1100 - __ adcl(Address(r26, r27, (Address::ScaleFactor)1, +0x4757ffd5), 256); // adc dword ptr [r26+r27*2+0x4757ffd5], 256 IID1101 - __ adcl(Address(r27, r28, (Address::ScaleFactor)0, +0x4a744193), 256); // adc dword ptr [r27+r28*1+0x4a744193], 256 IID1102 - __ adcl(Address(r28, r29, (Address::ScaleFactor)0, -0x424575e5), 256); // adc dword ptr [r28+r29*1-0x424575e5], 256 IID1103 - __ adcl(Address(r29, r30, (Address::ScaleFactor)0, +0x4e178d48), 256); // adc dword ptr [r29+r30*1+0x4e178d48], 256 IID1104 - __ adcl(Address(r30, r31, (Address::ScaleFactor)1, -0x5e34ca92), 256); // adc dword ptr [r30+r31*2-0x5e34ca92], 256 IID1105 - __ adcl(Address(r31, rcx, (Address::ScaleFactor)0, -0x4d8f4a94), 256); // adc dword ptr [r31+rcx*1-0x4d8f4a94], 256 IID1106 - __ adcl(Address(rcx, rdx, (Address::ScaleFactor)1, +0x534d0637), 4096); // adc dword ptr [rcx+rdx*2+0x534d0637], 4096 IID1107 - __ adcl(Address(rdx, rbx, (Address::ScaleFactor)0, +0x3fb1e1d7), 4096); // adc dword ptr [rdx+rbx*1+0x3fb1e1d7], 4096 IID1108 - __ adcl(Address(rbx, r8, (Address::ScaleFactor)0, -0x2d21fe2), 4096); // adc dword ptr [rbx+r8*1-0x2d21fe2], 4096 IID1109 - __ adcl(Address(r8, r9, (Address::ScaleFactor)0, +0x3c194775), 4096); // adc dword ptr [r8+r9*1+0x3c194775], 4096 IID1110 - __ adcl(Address(r9, r10, (Address::ScaleFactor)3, +0x58481466), 4096); // adc dword ptr [r9+r10*8+0x58481466], 4096 IID1111 - __ adcl(Address(r10, r11, (Address::ScaleFactor)0, -0x5508652d), 4096); // adc dword ptr [r10+r11*1-0x5508652d], 4096 IID1112 - __ adcl(Address(r11, -0x37389499), 4096); // adc dword ptr [r11-0x37389499], 4096 IID1113 - __ adcl(Address(r12, r13, (Address::ScaleFactor)3, -0x4b65498c), 4096); // adc dword ptr [r12+r13*8-0x4b65498c], 4096 IID1114 - __ adcl(Address(r13, r14, (Address::ScaleFactor)3, +0x34a91d3e), 4096); // adc dword ptr [r13+r14*8+0x34a91d3e], 4096 IID1115 - __ adcl(Address(r14, +0x5e64608d), 4096); // adc dword ptr [r14+0x5e64608d], 4096 IID1116 - __ adcl(Address(r15, r16, (Address::ScaleFactor)0, +0x5f5b4d40), 4096); // adc dword ptr [r15+r16*1+0x5f5b4d40], 4096 IID1117 - __ adcl(Address(r16, -0x1c5bcd45), 4096); // adc dword ptr [r16-0x1c5bcd45], 4096 IID1118 - __ adcl(Address(r17, r18, (Address::ScaleFactor)3, +0x4f4411c1), 4096); // adc dword ptr [r17+r18*8+0x4f4411c1], 4096 IID1119 - __ adcl(Address(r18, r19, (Address::ScaleFactor)0, -0x6165eea3), 4096); // adc dword ptr [r18+r19*1-0x6165eea3], 4096 IID1120 - __ adcl(Address(r19, r20, (Address::ScaleFactor)3, -0x78b51bfc), 4096); // adc dword ptr [r19+r20*8-0x78b51bfc], 4096 IID1121 - __ adcl(Address(r20, -0x1c7bc4b8), 4096); // adc dword ptr [r20-0x1c7bc4b8], 4096 IID1122 - __ adcl(Address(r21, -0x7158c161), 4096); // adc dword ptr [r21-0x7158c161], 4096 IID1123 - __ adcl(Address(r22, r23, (Address::ScaleFactor)2, +0x70db10d), 4096); // adc dword ptr [r22+r23*4+0x70db10d], 4096 IID1124 - __ adcl(Address(r23, r24, (Address::ScaleFactor)2, -0x35f0f12e), 4096); // adc dword ptr [r23+r24*4-0x35f0f12e], 4096 IID1125 - __ adcl(Address(r24, r25, (Address::ScaleFactor)2, +0x49240fbd), 4096); // adc dword ptr [r24+r25*4+0x49240fbd], 4096 IID1126 - __ adcl(Address(r25, r26, (Address::ScaleFactor)3, +0x7f994ae7), 4096); // adc dword ptr [r25+r26*8+0x7f994ae7], 4096 IID1127 - __ adcl(Address(r26, r27, (Address::ScaleFactor)1, -0x2b7640bd), 4096); // adc dword ptr [r26+r27*2-0x2b7640bd], 4096 IID1128 - __ adcl(Address(r27, r28, (Address::ScaleFactor)0, -0x72436c78), 4096); // adc dword ptr [r27+r28*1-0x72436c78], 4096 IID1129 - __ adcl(Address(r28, r29, (Address::ScaleFactor)0, -0x4562ab27), 4096); // adc dword ptr [r28+r29*1-0x4562ab27], 4096 IID1130 - __ adcl(Address(r29, -0x6d672379), 4096); // adc dword ptr [r29-0x6d672379], 4096 IID1131 - __ adcl(Address(r30, +0x37ebd2bb), 4096); // adc dword ptr [r30+0x37ebd2bb], 4096 IID1132 - __ adcl(Address(r31, rcx, (Address::ScaleFactor)1, +0x5c19945), 4096); // adc dword ptr [r31+rcx*2+0x5c19945], 4096 IID1133 - __ adcl(Address(rcx, rdx, (Address::ScaleFactor)0, -0x2d6d5fac), 65536); // adc dword ptr [rcx+rdx*1-0x2d6d5fac], 65536 IID1134 - __ adcl(Address(rdx, rbx, (Address::ScaleFactor)1, -0x3db43174), 65536); // adc dword ptr [rdx+rbx*2-0x3db43174], 65536 IID1135 - __ adcl(Address(rbx, r8, (Address::ScaleFactor)3, -0x1fac6e33), 65536); // adc dword ptr [rbx+r8*8-0x1fac6e33], 65536 IID1136 - __ adcl(Address(r8, r9, (Address::ScaleFactor)0, +0x25642d10), 65536); // adc dword ptr [r8+r9*1+0x25642d10], 65536 IID1137 - __ adcl(Address(r9, r10, (Address::ScaleFactor)1, -0x703c2714), 65536); // adc dword ptr [r9+r10*2-0x703c2714], 65536 IID1138 - __ adcl(Address(r10, r11, (Address::ScaleFactor)0, +0x4aa7de49), 65536); // adc dword ptr [r10+r11*1+0x4aa7de49], 65536 IID1139 - __ adcl(Address(r11, r12, (Address::ScaleFactor)3, +0x26a1ed2f), 65536); // adc dword ptr [r11+r12*8+0x26a1ed2f], 65536 IID1140 - __ adcl(Address(r12, r13, (Address::ScaleFactor)3, -0x36ebc2e7), 65536); // adc dword ptr [r12+r13*8-0x36ebc2e7], 65536 IID1141 - __ adcl(Address(r13, -0x2081fe1d), 65536); // adc dword ptr [r13-0x2081fe1d], 65536 IID1142 - __ adcl(Address(r14, r15, (Address::ScaleFactor)2, -0x232c7bf6), 65536); // adc dword ptr [r14+r15*4-0x232c7bf6], 65536 IID1143 - __ adcl(Address(r15, r16, (Address::ScaleFactor)3, +0x2f8a6e95), 65536); // adc dword ptr [r15+r16*8+0x2f8a6e95], 65536 IID1144 - __ adcl(Address(r16, r17, (Address::ScaleFactor)0, -0x2a09e509), 65536); // adc dword ptr [r16+r17*1-0x2a09e509], 65536 IID1145 - __ adcl(Address(r17, r18, (Address::ScaleFactor)0, +0x6483714d), 65536); // adc dword ptr [r17+r18*1+0x6483714d], 65536 IID1146 - __ adcl(Address(r18, r19, (Address::ScaleFactor)0, +0x71f159ac), 65536); // adc dword ptr [r18+r19*1+0x71f159ac], 65536 IID1147 - __ adcl(Address(r19, r20, (Address::ScaleFactor)0, -0x63454cb6), 65536); // adc dword ptr [r19+r20*1-0x63454cb6], 65536 IID1148 - __ adcl(Address(r20, r21, (Address::ScaleFactor)3, +0x2dddaf24), 65536); // adc dword ptr [r20+r21*8+0x2dddaf24], 65536 IID1149 - __ adcl(Address(r21, r22, (Address::ScaleFactor)1, +0x38c66a24), 65536); // adc dword ptr [r21+r22*2+0x38c66a24], 65536 IID1150 - __ adcl(Address(r22, r23, (Address::ScaleFactor)1, -0x7133415c), 65536); // adc dword ptr [r22+r23*2-0x7133415c], 65536 IID1151 - __ adcl(Address(r23, r24, (Address::ScaleFactor)2, +0x1e8a18c), 65536); // adc dword ptr [r23+r24*4+0x1e8a18c], 65536 IID1152 - __ adcl(Address(r24, r25, (Address::ScaleFactor)2, +0x69cf613b), 65536); // adc dword ptr [r24+r25*4+0x69cf613b], 65536 IID1153 - __ adcl(Address(r25, r26, (Address::ScaleFactor)3, -0x3fe6a8e0), 65536); // adc dword ptr [r25+r26*8-0x3fe6a8e0], 65536 IID1154 - __ adcl(Address(r26, r27, (Address::ScaleFactor)1, +0x3670e7ff), 65536); // adc dword ptr [r26+r27*2+0x3670e7ff], 65536 IID1155 - __ adcl(Address(r27, r28, (Address::ScaleFactor)3, +0x2bfa301f), 65536); // adc dword ptr [r27+r28*8+0x2bfa301f], 65536 IID1156 - __ adcl(Address(r28, r29, (Address::ScaleFactor)2, +0x40c6fc63), 65536); // adc dword ptr [r28+r29*4+0x40c6fc63], 65536 IID1157 - __ adcl(Address(r29, r30, (Address::ScaleFactor)1, +0x34afa3b0), 65536); // adc dword ptr [r29+r30*2+0x34afa3b0], 65536 IID1158 - __ adcl(Address(r30, r31, (Address::ScaleFactor)2, -0x5c913af4), 65536); // adc dword ptr [r30+r31*4-0x5c913af4], 65536 IID1159 - __ adcl(Address(r31, +0x28bc53ba), 65536); // adc dword ptr [r31+0x28bc53ba], 65536 IID1160 - __ adcl(Address(rcx, rdx, (Address::ScaleFactor)0, -0x4536fad1), 1048576); // adc dword ptr [rcx+rdx*1-0x4536fad1], 1048576 IID1161 - __ adcl(Address(rdx, rbx, (Address::ScaleFactor)1, -0x2c9fb8c9), 1048576); // adc dword ptr [rdx+rbx*2-0x2c9fb8c9], 1048576 IID1162 - __ adcl(Address(rbx, r8, (Address::ScaleFactor)1, -0x50fcf745), 1048576); // adc dword ptr [rbx+r8*2-0x50fcf745], 1048576 IID1163 - __ adcl(Address(r8, r9, (Address::ScaleFactor)0, -0x6f2313c2), 1048576); // adc dword ptr [r8+r9*1-0x6f2313c2], 1048576 IID1164 - __ adcl(Address(r9, r10, (Address::ScaleFactor)2, -0x6ea1ed89), 1048576); // adc dword ptr [r9+r10*4-0x6ea1ed89], 1048576 IID1165 - __ adcl(Address(r10, -0x4b8389a3), 1048576); // adc dword ptr [r10-0x4b8389a3], 1048576 IID1166 - __ adcl(Address(r11, r12, (Address::ScaleFactor)3, -0x5428f1d7), 1048576); // adc dword ptr [r11+r12*8-0x5428f1d7], 1048576 IID1167 - __ adcl(Address(r12, +0x66523bad), 1048576); // adc dword ptr [r12+0x66523bad], 1048576 IID1168 - __ adcl(Address(r13, r14, (Address::ScaleFactor)3, +0x19ca699d), 1048576); // adc dword ptr [r13+r14*8+0x19ca699d], 1048576 IID1169 - __ adcl(Address(r14, r15, (Address::ScaleFactor)2, +0x36658716), 1048576); // adc dword ptr [r14+r15*4+0x36658716], 1048576 IID1170 - __ adcl(Address(r15, r16, (Address::ScaleFactor)0, +0x47145274), 1048576); // adc dword ptr [r15+r16*1+0x47145274], 1048576 IID1171 - __ adcl(Address(r16, r17, (Address::ScaleFactor)1, +0x6e7fc99a), 1048576); // adc dword ptr [r16+r17*2+0x6e7fc99a], 1048576 IID1172 - __ adcl(Address(r17, r18, (Address::ScaleFactor)2, -0x428f9a7c), 1048576); // adc dword ptr [r17+r18*4-0x428f9a7c], 1048576 IID1173 - __ adcl(Address(r18, -0x2b3500b), 1048576); // adc dword ptr [r18-0x2b3500b], 1048576 IID1174 - __ adcl(Address(r19, r20, (Address::ScaleFactor)2, +0x6891da33), 1048576); // adc dword ptr [r19+r20*4+0x6891da33], 1048576 IID1175 - __ adcl(Address(r20, r21, (Address::ScaleFactor)3, -0x160888aa), 1048576); // adc dword ptr [r20+r21*8-0x160888aa], 1048576 IID1176 - __ adcl(Address(r21, -0x2f3e099d), 1048576); // adc dword ptr [r21-0x2f3e099d], 1048576 IID1177 - __ adcl(Address(r22, r23, (Address::ScaleFactor)0, +0x203bd357), 1048576); // adc dword ptr [r22+r23*1+0x203bd357], 1048576 IID1178 - __ adcl(Address(r23, r24, (Address::ScaleFactor)2, +0x799b6e83), 1048576); // adc dword ptr [r23+r24*4+0x799b6e83], 1048576 IID1179 - __ adcl(Address(r24, -0x64b29106), 1048576); // adc dword ptr [r24-0x64b29106], 1048576 IID1180 - __ adcl(Address(r25, r26, (Address::ScaleFactor)0, +0x549145c6), 1048576); // adc dword ptr [r25+r26*1+0x549145c6], 1048576 IID1181 - __ adcl(Address(r26, -0x3bfb800a), 1048576); // adc dword ptr [r26-0x3bfb800a], 1048576 IID1182 - __ adcl(Address(r27, r28, (Address::ScaleFactor)3, -0x179ffd0), 1048576); // adc dword ptr [r27+r28*8-0x179ffd0], 1048576 IID1183 - __ adcl(Address(r28, +0x6901ea3c), 1048576); // adc dword ptr [r28+0x6901ea3c], 1048576 IID1184 - __ adcl(Address(r29, r30, (Address::ScaleFactor)1, +0x40b131a), 1048576); // adc dword ptr [r29+r30*2+0x40b131a], 1048576 IID1185 - __ adcl(Address(r30, r31, (Address::ScaleFactor)0, +0x48d005c8), 1048576); // adc dword ptr [r30+r31*1+0x48d005c8], 1048576 IID1186 - __ adcl(Address(r31, rcx, (Address::ScaleFactor)3, -0x160028f8), 1048576); // adc dword ptr [r31+rcx*8-0x160028f8], 1048576 IID1187 - __ adcl(Address(rcx, -0x723ce289), 16777216); // adc dword ptr [rcx-0x723ce289], 16777216 IID1188 - __ adcl(Address(rdx, +0x48f44d49), 16777216); // adc dword ptr [rdx+0x48f44d49], 16777216 IID1189 - __ adcl(Address(rbx, r8, (Address::ScaleFactor)2, +0x5b434548), 16777216); // adc dword ptr [rbx+r8*4+0x5b434548], 16777216 IID1190 - __ adcl(Address(r8, r9, (Address::ScaleFactor)3, -0x5d358cfd), 16777216); // adc dword ptr [r8+r9*8-0x5d358cfd], 16777216 IID1191 - __ adcl(Address(r9, +0x582ed869), 16777216); // adc dword ptr [r9+0x582ed869], 16777216 IID1192 - __ adcl(Address(r10, +0x7d8a5db9), 16777216); // adc dword ptr [r10+0x7d8a5db9], 16777216 IID1193 - __ adcl(Address(r11, r12, (Address::ScaleFactor)2, +0x2cf76d55), 16777216); // adc dword ptr [r11+r12*4+0x2cf76d55], 16777216 IID1194 - __ adcl(Address(r12, -0x67564965), 16777216); // adc dword ptr [r12-0x67564965], 16777216 IID1195 - __ adcl(Address(r13, r14, (Address::ScaleFactor)0, -0x877c800), 16777216); // adc dword ptr [r13+r14*1-0x877c800], 16777216 IID1196 - __ adcl(Address(r14, r15, (Address::ScaleFactor)1, +0x7ed6cc43), 16777216); // adc dword ptr [r14+r15*2+0x7ed6cc43], 16777216 IID1197 - __ adcl(Address(r15, r16, (Address::ScaleFactor)1, -0x2ef89492), 16777216); // adc dword ptr [r15+r16*2-0x2ef89492], 16777216 IID1198 - __ adcl(Address(r16, r17, (Address::ScaleFactor)1, +0x3c7e292c), 16777216); // adc dword ptr [r16+r17*2+0x3c7e292c], 16777216 IID1199 - __ adcl(Address(r17, r18, (Address::ScaleFactor)1, +0x5c5d66ef), 16777216); // adc dword ptr [r17+r18*2+0x5c5d66ef], 16777216 IID1200 - __ adcl(Address(r18, r19, (Address::ScaleFactor)1, -0x73932ab4), 16777216); // adc dword ptr [r18+r19*2-0x73932ab4], 16777216 IID1201 - __ adcl(Address(r19, r20, (Address::ScaleFactor)3, +0x7b8c6e0), 16777216); // adc dword ptr [r19+r20*8+0x7b8c6e0], 16777216 IID1202 - __ adcl(Address(r20, r21, (Address::ScaleFactor)1, -0x1ea2a996), 16777216); // adc dword ptr [r20+r21*2-0x1ea2a996], 16777216 IID1203 - __ adcl(Address(r21, r22, (Address::ScaleFactor)0, -0x446499dd), 16777216); // adc dword ptr [r21+r22*1-0x446499dd], 16777216 IID1204 - __ adcl(Address(r22, +0x8e3be96), 16777216); // adc dword ptr [r22+0x8e3be96], 16777216 IID1205 - __ adcl(Address(r23, r24, (Address::ScaleFactor)0, +0x6dd35da), 16777216); // adc dword ptr [r23+r24*1+0x6dd35da], 16777216 IID1206 - __ adcl(Address(r24, -0x6cf3b479), 16777216); // adc dword ptr [r24-0x6cf3b479], 16777216 IID1207 - __ adcl(Address(r25, r26, (Address::ScaleFactor)1, +0x1b4a2871), 16777216); // adc dword ptr [r25+r26*2+0x1b4a2871], 16777216 IID1208 - __ adcl(Address(r26, r27, (Address::ScaleFactor)1, +0x53bdaaea), 16777216); // adc dword ptr [r26+r27*2+0x53bdaaea], 16777216 IID1209 - __ adcl(Address(r27, -0x3870c8ed), 16777216); // adc dword ptr [r27-0x3870c8ed], 16777216 IID1210 - __ adcl(Address(r28, -0x116c7f0e), 16777216); // adc dword ptr [r28-0x116c7f0e], 16777216 IID1211 - __ adcl(Address(r29, r30, (Address::ScaleFactor)3, -0x21f87486), 16777216); // adc dword ptr [r29+r30*8-0x21f87486], 16777216 IID1212 - __ adcl(Address(r30, r31, (Address::ScaleFactor)0, -0x74cef949), 16777216); // adc dword ptr [r30+r31*1-0x74cef949], 16777216 IID1213 - __ adcl(Address(r31, rcx, (Address::ScaleFactor)0, -0x63879059), 16777216); // adc dword ptr [r31+rcx*1-0x63879059], 16777216 IID1214 - __ adcl(Address(rcx, rdx, (Address::ScaleFactor)1, -0x4f1a1218), 268435456); // adc dword ptr [rcx+rdx*2-0x4f1a1218], 268435456 IID1215 - __ adcl(Address(rdx, rbx, (Address::ScaleFactor)3, +0x58d89dd9), 268435456); // adc dword ptr [rdx+rbx*8+0x58d89dd9], 268435456 IID1216 - __ adcl(Address(rbx, r8, (Address::ScaleFactor)1, -0x771f0ce9), 268435456); // adc dword ptr [rbx+r8*2-0x771f0ce9], 268435456 IID1217 - __ adcl(Address(r8, r9, (Address::ScaleFactor)1, +0x703b029a), 268435456); // adc dword ptr [r8+r9*2+0x703b029a], 268435456 IID1218 - __ adcl(Address(r9, r10, (Address::ScaleFactor)2, -0x1b0cb4b0), 268435456); // adc dword ptr [r9+r10*4-0x1b0cb4b0], 268435456 IID1219 - __ adcl(Address(r10, r11, (Address::ScaleFactor)3, -0x5e766377), 268435456); // adc dword ptr [r10+r11*8-0x5e766377], 268435456 IID1220 - __ adcl(Address(r11, r12, (Address::ScaleFactor)1, +0x55503d62), 268435456); // adc dword ptr [r11+r12*2+0x55503d62], 268435456 IID1221 - __ adcl(Address(r12, r13, (Address::ScaleFactor)2, +0xc499123), 268435456); // adc dword ptr [r12+r13*4+0xc499123], 268435456 IID1222 - __ adcl(Address(r13, r14, (Address::ScaleFactor)2, +0x2ce4c452), 268435456); // adc dword ptr [r13+r14*4+0x2ce4c452], 268435456 IID1223 - __ adcl(Address(r14, r15, (Address::ScaleFactor)0, -0x1c9cbeb2), 268435456); // adc dword ptr [r14+r15*1-0x1c9cbeb2], 268435456 IID1224 - __ adcl(Address(r15, r16, (Address::ScaleFactor)0, -0x335b421), 268435456); // adc dword ptr [r15+r16*1-0x335b421], 268435456 IID1225 - __ adcl(Address(r16, r17, (Address::ScaleFactor)0, +0x130c7301), 268435456); // adc dword ptr [r16+r17*1+0x130c7301], 268435456 IID1226 - __ adcl(Address(r17, r18, (Address::ScaleFactor)0, -0x4699336b), 268435456); // adc dword ptr [r17+r18*1-0x4699336b], 268435456 IID1227 - __ adcl(Address(r18, r19, (Address::ScaleFactor)2, +0x3ae0feb4), 268435456); // adc dword ptr [r18+r19*4+0x3ae0feb4], 268435456 IID1228 - __ adcl(Address(r19, +0x5188a91c), 268435456); // adc dword ptr [r19+0x5188a91c], 268435456 IID1229 - __ adcl(Address(r20, r21, (Address::ScaleFactor)3, -0x217378dc), 268435456); // adc dword ptr [r20+r21*8-0x217378dc], 268435456 IID1230 - __ adcl(Address(r21, r22, (Address::ScaleFactor)1, -0xdbf4f65), 268435456); // adc dword ptr [r21+r22*2-0xdbf4f65], 268435456 IID1231 - __ adcl(Address(r22, r23, (Address::ScaleFactor)3, +0xd91a8ec), 268435456); // adc dword ptr [r22+r23*8+0xd91a8ec], 268435456 IID1232 - __ adcl(Address(r23, r24, (Address::ScaleFactor)1, -0x46de7a0e), 268435456); // adc dword ptr [r23+r24*2-0x46de7a0e], 268435456 IID1233 - __ adcl(Address(r24, r25, (Address::ScaleFactor)3, +0x6e4112c0), 268435456); // adc dword ptr [r24+r25*8+0x6e4112c0], 268435456 IID1234 - __ adcl(Address(r25, r26, (Address::ScaleFactor)0, +0x21dd102d), 268435456); // adc dword ptr [r25+r26*1+0x21dd102d], 268435456 IID1235 - __ adcl(Address(r26, r27, (Address::ScaleFactor)0, +0xf528aee), 268435456); // adc dword ptr [r26+r27*1+0xf528aee], 268435456 IID1236 - __ adcl(Address(r27, r28, (Address::ScaleFactor)3, -0x3f8969f2), 268435456); // adc dword ptr [r27+r28*8-0x3f8969f2], 268435456 IID1237 - __ adcl(Address(r28, +0x71807a0b), 268435456); // adc dword ptr [r28+0x71807a0b], 268435456 IID1238 - __ adcl(Address(r29, r30, (Address::ScaleFactor)2, +0x1bf2c7e2), 268435456); // adc dword ptr [r29+r30*4+0x1bf2c7e2], 268435456 IID1239 - __ adcl(Address(r30, r31, (Address::ScaleFactor)3, +0x1b2e50ca), 268435456); // adc dword ptr [r30+r31*8+0x1b2e50ca], 268435456 IID1240 - __ adcl(Address(r31, rcx, (Address::ScaleFactor)0, -0x4ec611a0), 268435456); // adc dword ptr [r31+rcx*1-0x4ec611a0], 268435456 IID1241 -#endif // _LP64 - __ andl(Address(rcx, rdx, (Address::ScaleFactor)1, -0x730cfc64), 1); // and dword ptr [rcx+rdx*2-0x730cfc64], 1 IID1242 - __ andl(Address(rdx, rbx, (Address::ScaleFactor)3, +0x4457e821), 1); // and dword ptr [rdx+rbx*8+0x4457e821], 1 IID1243 -#ifdef _LP64 - __ andl(Address(rbx, r8, (Address::ScaleFactor)1, +0x51dceca4), 1); // and dword ptr [rbx+r8*2+0x51dceca4], 1 IID1244 - __ andl(Address(r8, r9, (Address::ScaleFactor)0, +0x7ab8c466), 1); // and dword ptr [r8+r9*1+0x7ab8c466], 1 IID1245 - __ andl(Address(r9, r10, (Address::ScaleFactor)2, +0xe2ebbcd), 1); // and dword ptr [r9+r10*4+0xe2ebbcd], 1 IID1246 - __ andl(Address(r10, r11, (Address::ScaleFactor)0, +0x4fcf3880), 1); // and dword ptr [r10+r11*1+0x4fcf3880], 1 IID1247 - __ andl(Address(r11, r12, (Address::ScaleFactor)0, +0x5181f5ff), 1); // and dword ptr [r11+r12*1+0x5181f5ff], 1 IID1248 - __ andl(Address(r12, r13, (Address::ScaleFactor)2, +0x38eb64f1), 1); // and dword ptr [r12+r13*4+0x38eb64f1], 1 IID1249 - __ andl(Address(r13, r14, (Address::ScaleFactor)3, +0x1e956e2), 1); // and dword ptr [r13+r14*8+0x1e956e2], 1 IID1250 - __ andl(Address(r14, r15, (Address::ScaleFactor)1, -0x42494ba3), 1); // and dword ptr [r14+r15*2-0x42494ba3], 1 IID1251 - __ andl(Address(r15, r16, (Address::ScaleFactor)3, +0x640c7bf0), 1); // and dword ptr [r15+r16*8+0x640c7bf0], 1 IID1252 - __ andl(Address(r16, +0x4b052b2e), 1); // and dword ptr [r16+0x4b052b2e], 1 IID1253 - __ andl(Address(r17, r18, (Address::ScaleFactor)3, +0x6dd7a95f), 1); // and dword ptr [r17+r18*8+0x6dd7a95f], 1 IID1254 - __ andl(Address(r18, r19, (Address::ScaleFactor)0, +0x68b34b46), 1); // and dword ptr [r18+r19*1+0x68b34b46], 1 IID1255 - __ andl(Address(r19, r20, (Address::ScaleFactor)2, -0x49099915), 1); // and dword ptr [r19+r20*4-0x49099915], 1 IID1256 - __ andl(Address(r20, r21, (Address::ScaleFactor)1, -0x47524fe0), 1); // and dword ptr [r20+r21*2-0x47524fe0], 1 IID1257 - __ andl(Address(r21, r22, (Address::ScaleFactor)1, +0x5d26d11a), 1); // and dword ptr [r21+r22*2+0x5d26d11a], 1 IID1258 - __ andl(Address(r22, r23, (Address::ScaleFactor)2, -0x24d14f56), 1); // and dword ptr [r22+r23*4-0x24d14f56], 1 IID1259 - __ andl(Address(r23, r24, (Address::ScaleFactor)0, +0x3c22b54f), 1); // and dword ptr [r23+r24*1+0x3c22b54f], 1 IID1260 - __ andl(Address(r24, +0x53a34323), 1); // and dword ptr [r24+0x53a34323], 1 IID1261 - __ andl(Address(r25, r26, (Address::ScaleFactor)2, +0x33c75e81), 1); // and dword ptr [r25+r26*4+0x33c75e81], 1 IID1262 - __ andl(Address(r26, r27, (Address::ScaleFactor)2, -0x5eb6c4bb), 1); // and dword ptr [r26+r27*4-0x5eb6c4bb], 1 IID1263 - __ andl(Address(r27, -0x13c67c3b), 1); // and dword ptr [r27-0x13c67c3b], 1 IID1264 - __ andl(Address(r28, r29, (Address::ScaleFactor)3, -0x6c290356), 1); // and dword ptr [r28+r29*8-0x6c290356], 1 IID1265 - __ andl(Address(r29, r30, (Address::ScaleFactor)2, -0x1b2eebcf), 1); // and dword ptr [r29+r30*4-0x1b2eebcf], 1 IID1266 - __ andl(Address(r30, r31, (Address::ScaleFactor)3, +0x5cd8197e), 1); // and dword ptr [r30+r31*8+0x5cd8197e], 1 IID1267 - __ andl(Address(r31, -0xbdba296), 1); // and dword ptr [r31-0xbdba296], 1 IID1268 - __ andl(Address(rcx, -0x5e02d29b), 16); // and dword ptr [rcx-0x5e02d29b], 16 IID1269 - __ andl(Address(rdx, +0x5ab161), 16); // and dword ptr [rdx+0x5ab161], 16 IID1270 - __ andl(Address(rbx, r8, (Address::ScaleFactor)1, -0x17b2d6fa), 16); // and dword ptr [rbx+r8*2-0x17b2d6fa], 16 IID1271 - __ andl(Address(r8, r9, (Address::ScaleFactor)2, -0x65a07e5a), 16); // and dword ptr [r8+r9*4-0x65a07e5a], 16 IID1272 - __ andl(Address(r9, r10, (Address::ScaleFactor)3, +0x1e469f22), 16); // and dword ptr [r9+r10*8+0x1e469f22], 16 IID1273 - __ andl(Address(r10, r11, (Address::ScaleFactor)1, -0x1e83db3d), 16); // and dword ptr [r10+r11*2-0x1e83db3d], 16 IID1274 - __ andl(Address(r11, r12, (Address::ScaleFactor)0, -0x1deb4643), 16); // and dword ptr [r11+r12*1-0x1deb4643], 16 IID1275 - __ andl(Address(r12, r13, (Address::ScaleFactor)1, +0x32083d39), 16); // and dword ptr [r12+r13*2+0x32083d39], 16 IID1276 - __ andl(Address(r13, r14, (Address::ScaleFactor)1, -0x1227f66d), 16); // and dword ptr [r13+r14*2-0x1227f66d], 16 IID1277 - __ andl(Address(r14, -0x5349236d), 16); // and dword ptr [r14-0x5349236d], 16 IID1278 - __ andl(Address(r15, r16, (Address::ScaleFactor)1, -0x3d4b66f7), 16); // and dword ptr [r15+r16*2-0x3d4b66f7], 16 IID1279 - __ andl(Address(r16, r17, (Address::ScaleFactor)1, +0x5cbcfe8b), 16); // and dword ptr [r16+r17*2+0x5cbcfe8b], 16 IID1280 - __ andl(Address(r17, r18, (Address::ScaleFactor)1, +0x6ea39860), 16); // and dword ptr [r17+r18*2+0x6ea39860], 16 IID1281 - __ andl(Address(r18, r19, (Address::ScaleFactor)3, -0x6cb66592), 16); // and dword ptr [r18+r19*8-0x6cb66592], 16 IID1282 - __ andl(Address(r19, r20, (Address::ScaleFactor)0, -0x552ef29a), 16); // and dword ptr [r19+r20*1-0x552ef29a], 16 IID1283 - __ andl(Address(r20, r21, (Address::ScaleFactor)2, -0x40d3942a), 16); // and dword ptr [r20+r21*4-0x40d3942a], 16 IID1284 - __ andl(Address(r21, r22, (Address::ScaleFactor)1, +0x3b06d985), 16); // and dword ptr [r21+r22*2+0x3b06d985], 16 IID1285 - __ andl(Address(r22, r23, (Address::ScaleFactor)0, -0x3e4c614a), 16); // and dword ptr [r22+r23*1-0x3e4c614a], 16 IID1286 - __ andl(Address(r23, -0xd5002b5), 16); // and dword ptr [r23-0xd5002b5], 16 IID1287 - __ andl(Address(r24, r25, (Address::ScaleFactor)0, -0x4597f904), 16); // and dword ptr [r24+r25*1-0x4597f904], 16 IID1288 - __ andl(Address(r25, r26, (Address::ScaleFactor)0, +0x5dbd5205), 16); // and dword ptr [r25+r26*1+0x5dbd5205], 16 IID1289 - __ andl(Address(r26, +0x54c23f20), 16); // and dword ptr [r26+0x54c23f20], 16 IID1290 - __ andl(Address(r27, r28, (Address::ScaleFactor)2, +0x4757c7b5), 16); // and dword ptr [r27+r28*4+0x4757c7b5], 16 IID1291 - __ andl(Address(r28, -0x177123d7), 16); // and dword ptr [r28-0x177123d7], 16 IID1292 - __ andl(Address(r29, r30, (Address::ScaleFactor)1, -0xb3b12fb), 16); // and dword ptr [r29+r30*2-0xb3b12fb], 16 IID1293 - __ andl(Address(r30, r31, (Address::ScaleFactor)0, -0x7d737bc0), 16); // and dword ptr [r30+r31*1-0x7d737bc0], 16 IID1294 - __ andl(Address(r31, rcx, (Address::ScaleFactor)0, -0x5db6c166), 16); // and dword ptr [r31+rcx*1-0x5db6c166], 16 IID1295 - __ andl(Address(rcx, rdx, (Address::ScaleFactor)2, -0x33f8d452), 256); // and dword ptr [rcx+rdx*4-0x33f8d452], 256 IID1296 - __ andl(Address(rdx, -0x7175846a), 256); // and dword ptr [rdx-0x7175846a], 256 IID1297 - __ andl(Address(rbx, r8, (Address::ScaleFactor)3, +0x6d37a581), 256); // and dword ptr [rbx+r8*8+0x6d37a581], 256 IID1298 - __ andl(Address(r8, r9, (Address::ScaleFactor)1, -0x7da3df3a), 256); // and dword ptr [r8+r9*2-0x7da3df3a], 256 IID1299 - __ andl(Address(r9, r10, (Address::ScaleFactor)1, +0x1202daa1), 256); // and dword ptr [r9+r10*2+0x1202daa1], 256 IID1300 - __ andl(Address(r10, r11, (Address::ScaleFactor)3, -0x2dec1338), 256); // and dword ptr [r10+r11*8-0x2dec1338], 256 IID1301 - __ andl(Address(r11, r12, (Address::ScaleFactor)1, +0x433d6da5), 256); // and dword ptr [r11+r12*2+0x433d6da5], 256 IID1302 - __ andl(Address(r12, r13, (Address::ScaleFactor)1, -0x39eac35), 256); // and dword ptr [r12+r13*2-0x39eac35], 256 IID1303 - __ andl(Address(r13, r14, (Address::ScaleFactor)3, +0x63dd5b25), 256); // and dword ptr [r13+r14*8+0x63dd5b25], 256 IID1304 - __ andl(Address(r14, r15, (Address::ScaleFactor)1, -0x2ba4e02f), 256); // and dword ptr [r14+r15*2-0x2ba4e02f], 256 IID1305 - __ andl(Address(r15, r16, (Address::ScaleFactor)0, +0x57492e05), 256); // and dword ptr [r15+r16*1+0x57492e05], 256 IID1306 - __ andl(Address(r16, r17, (Address::ScaleFactor)0, +0x4dae0bf5), 256); // and dword ptr [r16+r17*1+0x4dae0bf5], 256 IID1307 - __ andl(Address(r17, r18, (Address::ScaleFactor)3, +0x6e888dad), 256); // and dword ptr [r17+r18*8+0x6e888dad], 256 IID1308 - __ andl(Address(r18, r19, (Address::ScaleFactor)0, +0x2060cc3e), 256); // and dword ptr [r18+r19*1+0x2060cc3e], 256 IID1309 - __ andl(Address(r19, r20, (Address::ScaleFactor)1, +0x22a85180), 256); // and dword ptr [r19+r20*2+0x22a85180], 256 IID1310 - __ andl(Address(r20, r21, (Address::ScaleFactor)0, +0x1126982d), 256); // and dword ptr [r20+r21*1+0x1126982d], 256 IID1311 - __ andl(Address(r21, +0x4d3b0417), 256); // and dword ptr [r21+0x4d3b0417], 256 IID1312 - __ andl(Address(r22, r23, (Address::ScaleFactor)3, -0x2f5cca28), 256); // and dword ptr [r22+r23*8-0x2f5cca28], 256 IID1313 - __ andl(Address(r23, r24, (Address::ScaleFactor)3, +0x5a02a8c), 256); // and dword ptr [r23+r24*8+0x5a02a8c], 256 IID1314 - __ andl(Address(r24, r25, (Address::ScaleFactor)3, +0x56121615), 256); // and dword ptr [r24+r25*8+0x56121615], 256 IID1315 - __ andl(Address(r25, +0x6ba1f478), 256); // and dword ptr [r25+0x6ba1f478], 256 IID1316 - __ andl(Address(r26, r27, (Address::ScaleFactor)3, +0x64e62383), 256); // and dword ptr [r26+r27*8+0x64e62383], 256 IID1317 - __ andl(Address(r27, r28, (Address::ScaleFactor)1, +0x5ed31e14), 256); // and dword ptr [r27+r28*2+0x5ed31e14], 256 IID1318 - __ andl(Address(r28, r29, (Address::ScaleFactor)1, -0xdc38e66), 256); // and dword ptr [r28+r29*2-0xdc38e66], 256 IID1319 - __ andl(Address(r29, r30, (Address::ScaleFactor)1, +0x14ba88bd), 256); // and dword ptr [r29+r30*2+0x14ba88bd], 256 IID1320 - __ andl(Address(r30, r31, (Address::ScaleFactor)0, +0x4e9add0c), 256); // and dword ptr [r30+r31*1+0x4e9add0c], 256 IID1321 - __ andl(Address(r31, rcx, (Address::ScaleFactor)0, -0xcbf95d2), 256); // and dword ptr [r31+rcx*1-0xcbf95d2], 256 IID1322 - __ andl(Address(rcx, rdx, (Address::ScaleFactor)1, +0x55459478), 4096); // and dword ptr [rcx+rdx*2+0x55459478], 4096 IID1323 - __ andl(Address(rdx, rbx, (Address::ScaleFactor)0, -0x779b62ec), 4096); // and dword ptr [rdx+rbx*1-0x779b62ec], 4096 IID1324 - __ andl(Address(rbx, r8, (Address::ScaleFactor)3, -0x29665ac7), 4096); // and dword ptr [rbx+r8*8-0x29665ac7], 4096 IID1325 - __ andl(Address(r8, r9, (Address::ScaleFactor)2, +0x361052a7), 4096); // and dword ptr [r8+r9*4+0x361052a7], 4096 IID1326 - __ andl(Address(r9, -0x22d3e758), 4096); // and dword ptr [r9-0x22d3e758], 4096 IID1327 - __ andl(Address(r10, r11, (Address::ScaleFactor)1, +0x5e6e0409), 4096); // and dword ptr [r10+r11*2+0x5e6e0409], 4096 IID1328 - __ andl(Address(r11, r12, (Address::ScaleFactor)0, +0x38e8e552), 4096); // and dword ptr [r11+r12*1+0x38e8e552], 4096 IID1329 - __ andl(Address(r12, r13, (Address::ScaleFactor)3, -0x2df79f28), 4096); // and dword ptr [r12+r13*8-0x2df79f28], 4096 IID1330 - __ andl(Address(r13, r14, (Address::ScaleFactor)3, -0x571f673), 4096); // and dword ptr [r13+r14*8-0x571f673], 4096 IID1331 - __ andl(Address(r14, r15, (Address::ScaleFactor)1, +0x25cd9b7a), 4096); // and dword ptr [r14+r15*2+0x25cd9b7a], 4096 IID1332 - __ andl(Address(r15, r16, (Address::ScaleFactor)0, -0x3b649c56), 4096); // and dword ptr [r15+r16*1-0x3b649c56], 4096 IID1333 - __ andl(Address(r16, r17, (Address::ScaleFactor)0, +0x2106941e), 4096); // and dword ptr [r16+r17*1+0x2106941e], 4096 IID1334 - __ andl(Address(r17, r18, (Address::ScaleFactor)1, +0x170ebb04), 4096); // and dword ptr [r17+r18*2+0x170ebb04], 4096 IID1335 - __ andl(Address(r18, r19, (Address::ScaleFactor)1, +0x1f2b6a1f), 4096); // and dword ptr [r18+r19*2+0x1f2b6a1f], 4096 IID1336 - __ andl(Address(r19, r20, (Address::ScaleFactor)2, -0x5f61fd40), 4096); // and dword ptr [r19+r20*4-0x5f61fd40], 4096 IID1337 - __ andl(Address(r20, r21, (Address::ScaleFactor)2, -0x64be6c3d), 4096); // and dword ptr [r20+r21*4-0x64be6c3d], 4096 IID1338 - __ andl(Address(r21, r22, (Address::ScaleFactor)2, -0x7600b075), 4096); // and dword ptr [r21+r22*4-0x7600b075], 4096 IID1339 - __ andl(Address(r22, -0x482cdf71), 4096); // and dword ptr [r22-0x482cdf71], 4096 IID1340 - __ andl(Address(r23, +0x49409c9), 4096); // and dword ptr [r23+0x49409c9], 4096 IID1341 - __ andl(Address(r24, r25, (Address::ScaleFactor)2, -0x5d14bf37), 4096); // and dword ptr [r24+r25*4-0x5d14bf37], 4096 IID1342 - __ andl(Address(r25, r26, (Address::ScaleFactor)1, +0x20a5f29c), 4096); // and dword ptr [r25+r26*2+0x20a5f29c], 4096 IID1343 - __ andl(Address(r26, r27, (Address::ScaleFactor)2, +0x76f7e4b6), 4096); // and dword ptr [r26+r27*4+0x76f7e4b6], 4096 IID1344 - __ andl(Address(r27, r28, (Address::ScaleFactor)3, -0x45ed8977), 4096); // and dword ptr [r27+r28*8-0x45ed8977], 4096 IID1345 - __ andl(Address(r28, -0x10ebb171), 4096); // and dword ptr [r28-0x10ebb171], 4096 IID1346 - __ andl(Address(r29, r30, (Address::ScaleFactor)0, -0x7104c8ff), 4096); // and dword ptr [r29+r30*1-0x7104c8ff], 4096 IID1347 - __ andl(Address(r30, r31, (Address::ScaleFactor)1, -0x67ed6e39), 4096); // and dword ptr [r30+r31*2-0x67ed6e39], 4096 IID1348 - __ andl(Address(r31, rcx, (Address::ScaleFactor)2, +0x7f8f8d69), 4096); // and dword ptr [r31+rcx*4+0x7f8f8d69], 4096 IID1349 - __ andl(Address(rcx, rdx, (Address::ScaleFactor)0, -0x7f22b972), 65536); // and dword ptr [rcx+rdx*1-0x7f22b972], 65536 IID1350 - __ andl(Address(rdx, rbx, (Address::ScaleFactor)3, +0x498aa030), 65536); // and dword ptr [rdx+rbx*8+0x498aa030], 65536 IID1351 - __ andl(Address(rbx, r8, (Address::ScaleFactor)2, -0x9982656), 65536); // and dword ptr [rbx+r8*4-0x9982656], 65536 IID1352 - __ andl(Address(r8, r9, (Address::ScaleFactor)1, +0x41c36bb5), 65536); // and dword ptr [r8+r9*2+0x41c36bb5], 65536 IID1353 - __ andl(Address(r9, r10, (Address::ScaleFactor)2, -0x4c87f13d), 65536); // and dword ptr [r9+r10*4-0x4c87f13d], 65536 IID1354 - __ andl(Address(r10, -0x6928f05), 65536); // and dword ptr [r10-0x6928f05], 65536 IID1355 - __ andl(Address(r11, r12, (Address::ScaleFactor)3, -0x984948b), 65536); // and dword ptr [r11+r12*8-0x984948b], 65536 IID1356 - __ andl(Address(r12, r13, (Address::ScaleFactor)0, -0x21ac451f), 65536); // and dword ptr [r12+r13*1-0x21ac451f], 65536 IID1357 - __ andl(Address(r13, r14, (Address::ScaleFactor)3, -0x1b0c688d), 65536); // and dword ptr [r13+r14*8-0x1b0c688d], 65536 IID1358 - __ andl(Address(r14, r15, (Address::ScaleFactor)3, -0x10a66afe), 65536); // and dword ptr [r14+r15*8-0x10a66afe], 65536 IID1359 - __ andl(Address(r15, r16, (Address::ScaleFactor)2, -0x847e488), 65536); // and dword ptr [r15+r16*4-0x847e488], 65536 IID1360 - __ andl(Address(r16, r17, (Address::ScaleFactor)1, -0x4e11b891), 65536); // and dword ptr [r16+r17*2-0x4e11b891], 65536 IID1361 - __ andl(Address(r17, +0x7acc33d6), 65536); // and dword ptr [r17+0x7acc33d6], 65536 IID1362 - __ andl(Address(r18, r19, (Address::ScaleFactor)1, -0x70e3419), 65536); // and dword ptr [r18+r19*2-0x70e3419], 65536 IID1363 - __ andl(Address(r19, -0x15d7bfb7), 65536); // and dword ptr [r19-0x15d7bfb7], 65536 IID1364 - __ andl(Address(r20, +0x5279c0c2), 65536); // and dword ptr [r20+0x5279c0c2], 65536 IID1365 - __ andl(Address(r21, -0x2eb16704), 65536); // and dword ptr [r21-0x2eb16704], 65536 IID1366 - __ andl(Address(r22, +0x4558b389), 65536); // and dword ptr [r22+0x4558b389], 65536 IID1367 - __ andl(Address(r23, r24, (Address::ScaleFactor)1, -0xf9a4a93), 65536); // and dword ptr [r23+r24*2-0xf9a4a93], 65536 IID1368 - __ andl(Address(r24, -0x77300c16), 65536); // and dword ptr [r24-0x77300c16], 65536 IID1369 - __ andl(Address(r25, r26, (Address::ScaleFactor)3, -0x192745e4), 65536); // and dword ptr [r25+r26*8-0x192745e4], 65536 IID1370 - __ andl(Address(r26, r27, (Address::ScaleFactor)0, -0x1511e59a), 65536); // and dword ptr [r26+r27*1-0x1511e59a], 65536 IID1371 - __ andl(Address(r27, -0x490de89c), 65536); // and dword ptr [r27-0x490de89c], 65536 IID1372 - __ andl(Address(r28, r29, (Address::ScaleFactor)3, -0x6253cd69), 65536); // and dword ptr [r28+r29*8-0x6253cd69], 65536 IID1373 - __ andl(Address(r29, r30, (Address::ScaleFactor)0, +0x7023b99), 65536); // and dword ptr [r29+r30*1+0x7023b99], 65536 IID1374 - __ andl(Address(r30, r31, (Address::ScaleFactor)1, -0x59f86ff1), 65536); // and dword ptr [r30+r31*2-0x59f86ff1], 65536 IID1375 - __ andl(Address(r31, rcx, (Address::ScaleFactor)0, +0x1307111d), 65536); // and dword ptr [r31+rcx*1+0x1307111d], 65536 IID1376 - __ andl(Address(rcx, rdx, (Address::ScaleFactor)3, +0x443b5f8d), 1048576); // and dword ptr [rcx+rdx*8+0x443b5f8d], 1048576 IID1377 - __ andl(Address(rdx, rbx, (Address::ScaleFactor)2, -0x5761c7e), 1048576); // and dword ptr [rdx+rbx*4-0x5761c7e], 1048576 IID1378 - __ andl(Address(rbx, r8, (Address::ScaleFactor)2, -0x5ad0d7f1), 1048576); // and dword ptr [rbx+r8*4-0x5ad0d7f1], 1048576 IID1379 - __ andl(Address(r8, r9, (Address::ScaleFactor)2, +0x64f4b78), 1048576); // and dword ptr [r8+r9*4+0x64f4b78], 1048576 IID1380 - __ andl(Address(r9, r10, (Address::ScaleFactor)0, +0x45db5f86), 1048576); // and dword ptr [r9+r10*1+0x45db5f86], 1048576 IID1381 - __ andl(Address(r10, r11, (Address::ScaleFactor)0, +0x7a8ea60d), 1048576); // and dword ptr [r10+r11*1+0x7a8ea60d], 1048576 IID1382 - __ andl(Address(r11, r12, (Address::ScaleFactor)0, -0x6df7c958), 1048576); // and dword ptr [r11+r12*1-0x6df7c958], 1048576 IID1383 - __ andl(Address(r12, r13, (Address::ScaleFactor)3, +0x62a59f31), 1048576); // and dword ptr [r12+r13*8+0x62a59f31], 1048576 IID1384 - __ andl(Address(r13, r14, (Address::ScaleFactor)0, +0x514c9868), 1048576); // and dword ptr [r13+r14*1+0x514c9868], 1048576 IID1385 - __ andl(Address(r14, +0x5db88392), 1048576); // and dword ptr [r14+0x5db88392], 1048576 IID1386 - __ andl(Address(r15, r16, (Address::ScaleFactor)1, +0x689c379a), 1048576); // and dword ptr [r15+r16*2+0x689c379a], 1048576 IID1387 - __ andl(Address(r16, r17, (Address::ScaleFactor)3, -0x41c80a83), 1048576); // and dword ptr [r16+r17*8-0x41c80a83], 1048576 IID1388 - __ andl(Address(r17, -0x15f68f59), 1048576); // and dword ptr [r17-0x15f68f59], 1048576 IID1389 - __ andl(Address(r18, r19, (Address::ScaleFactor)1, -0x21dba491), 1048576); // and dword ptr [r18+r19*2-0x21dba491], 1048576 IID1390 - __ andl(Address(r19, -0x53edce1), 1048576); // and dword ptr [r19-0x53edce1], 1048576 IID1391 - __ andl(Address(r20, r21, (Address::ScaleFactor)2, -0x5f124ace), 1048576); // and dword ptr [r20+r21*4-0x5f124ace], 1048576 IID1392 - __ andl(Address(r21, r22, (Address::ScaleFactor)1, -0x5c9a39c4), 1048576); // and dword ptr [r21+r22*2-0x5c9a39c4], 1048576 IID1393 - __ andl(Address(r22, r23, (Address::ScaleFactor)3, +0x329b72db), 1048576); // and dword ptr [r22+r23*8+0x329b72db], 1048576 IID1394 - __ andl(Address(r23, r24, (Address::ScaleFactor)2, +0x4bede843), 1048576); // and dword ptr [r23+r24*4+0x4bede843], 1048576 IID1395 - __ andl(Address(r24, -0x22ebbd2b), 1048576); // and dword ptr [r24-0x22ebbd2b], 1048576 IID1396 - __ andl(Address(r25, r26, (Address::ScaleFactor)3, +0x16920a9), 1048576); // and dword ptr [r25+r26*8+0x16920a9], 1048576 IID1397 - __ andl(Address(r26, r27, (Address::ScaleFactor)3, +0x67a36b92), 1048576); // and dword ptr [r26+r27*8+0x67a36b92], 1048576 IID1398 - __ andl(Address(r27, -0x7715b9f1), 1048576); // and dword ptr [r27-0x7715b9f1], 1048576 IID1399 - __ andl(Address(r28, r29, (Address::ScaleFactor)1, -0x49084699), 1048576); // and dword ptr [r28+r29*2-0x49084699], 1048576 IID1400 - __ andl(Address(r29, r30, (Address::ScaleFactor)2, -0x58e74f52), 1048576); // and dword ptr [r29+r30*4-0x58e74f52], 1048576 IID1401 - __ andl(Address(r30, r31, (Address::ScaleFactor)1, -0xb6511b7), 1048576); // and dword ptr [r30+r31*2-0xb6511b7], 1048576 IID1402 - __ andl(Address(r31, rcx, (Address::ScaleFactor)2, -0x76c8baa9), 1048576); // and dword ptr [r31+rcx*4-0x76c8baa9], 1048576 IID1403 - __ andl(Address(rcx, rdx, (Address::ScaleFactor)3, -0x55d3df5b), 16777216); // and dword ptr [rcx+rdx*8-0x55d3df5b], 16777216 IID1404 - __ andl(Address(rdx, rbx, (Address::ScaleFactor)2, -0x6b333458), 16777216); // and dword ptr [rdx+rbx*4-0x6b333458], 16777216 IID1405 - __ andl(Address(rbx, r8, (Address::ScaleFactor)3, +0x4b05f010), 16777216); // and dword ptr [rbx+r8*8+0x4b05f010], 16777216 IID1406 - __ andl(Address(r8, -0x452bda6a), 16777216); // and dword ptr [r8-0x452bda6a], 16777216 IID1407 - __ andl(Address(r9, -0x1a4d5966), 16777216); // and dword ptr [r9-0x1a4d5966], 16777216 IID1408 - __ andl(Address(r10, r11, (Address::ScaleFactor)1, -0x54992c7f), 16777216); // and dword ptr [r10+r11*2-0x54992c7f], 16777216 IID1409 - __ andl(Address(r11, r12, (Address::ScaleFactor)3, +0x79909bab), 16777216); // and dword ptr [r11+r12*8+0x79909bab], 16777216 IID1410 - __ andl(Address(r12, -0x4b9d18ec), 16777216); // and dword ptr [r12-0x4b9d18ec], 16777216 IID1411 - __ andl(Address(r13, r14, (Address::ScaleFactor)1, -0x504c8ec9), 16777216); // and dword ptr [r13+r14*2-0x504c8ec9], 16777216 IID1412 - __ andl(Address(r14, r15, (Address::ScaleFactor)3, +0x46584f16), 16777216); // and dword ptr [r14+r15*8+0x46584f16], 16777216 IID1413 - __ andl(Address(r15, r16, (Address::ScaleFactor)0, -0x7cd6cd98), 16777216); // and dword ptr [r15+r16*1-0x7cd6cd98], 16777216 IID1414 - __ andl(Address(r16, r17, (Address::ScaleFactor)0, -0x3aac21e9), 16777216); // and dword ptr [r16+r17*1-0x3aac21e9], 16777216 IID1415 - __ andl(Address(r17, r18, (Address::ScaleFactor)2, -0x45fe1ea0), 16777216); // and dword ptr [r17+r18*4-0x45fe1ea0], 16777216 IID1416 - __ andl(Address(r18, r19, (Address::ScaleFactor)3, +0x29f3d1ff), 16777216); // and dword ptr [r18+r19*8+0x29f3d1ff], 16777216 IID1417 - __ andl(Address(r19, r20, (Address::ScaleFactor)1, -0x341d60f0), 16777216); // and dword ptr [r19+r20*2-0x341d60f0], 16777216 IID1418 - __ andl(Address(r20, r21, (Address::ScaleFactor)3, +0x285c53a4), 16777216); // and dword ptr [r20+r21*8+0x285c53a4], 16777216 IID1419 - __ andl(Address(r21, -0x4743a5b0), 16777216); // and dword ptr [r21-0x4743a5b0], 16777216 IID1420 - __ andl(Address(r22, r23, (Address::ScaleFactor)3, +0x5f5f5b7e), 16777216); // and dword ptr [r22+r23*8+0x5f5f5b7e], 16777216 IID1421 - __ andl(Address(r23, r24, (Address::ScaleFactor)3, +0x1538fc14), 16777216); // and dword ptr [r23+r24*8+0x1538fc14], 16777216 IID1422 - __ andl(Address(r24, r25, (Address::ScaleFactor)1, +0x219f93c4), 16777216); // and dword ptr [r24+r25*2+0x219f93c4], 16777216 IID1423 - __ andl(Address(r25, +0x2c6013f1), 16777216); // and dword ptr [r25+0x2c6013f1], 16777216 IID1424 - __ andl(Address(r26, r27, (Address::ScaleFactor)1, +0x7ea27e1a), 16777216); // and dword ptr [r26+r27*2+0x7ea27e1a], 16777216 IID1425 - __ andl(Address(r27, -0xa7ce9a0), 16777216); // and dword ptr [r27-0xa7ce9a0], 16777216 IID1426 - __ andl(Address(r28, r29, (Address::ScaleFactor)0, +0x1877dc76), 16777216); // and dword ptr [r28+r29*1+0x1877dc76], 16777216 IID1427 - __ andl(Address(r29, +0x7eaac152), 16777216); // and dword ptr [r29+0x7eaac152], 16777216 IID1428 - __ andl(Address(r30, r31, (Address::ScaleFactor)1, +0x5ba7387c), 16777216); // and dword ptr [r30+r31*2+0x5ba7387c], 16777216 IID1429 - __ andl(Address(r31, rcx, (Address::ScaleFactor)3, -0x4389c54b), 16777216); // and dword ptr [r31+rcx*8-0x4389c54b], 16777216 IID1430 - __ andl(Address(rcx, rdx, (Address::ScaleFactor)2, +0x49de7ded), 268435456); // and dword ptr [rcx+rdx*4+0x49de7ded], 268435456 IID1431 - __ andl(Address(rdx, rbx, (Address::ScaleFactor)1, -0x29dc6faa), 268435456); // and dword ptr [rdx+rbx*2-0x29dc6faa], 268435456 IID1432 - __ andl(Address(rbx, r8, (Address::ScaleFactor)2, -0x55f6d65d), 268435456); // and dword ptr [rbx+r8*4-0x55f6d65d], 268435456 IID1433 - __ andl(Address(r8, r9, (Address::ScaleFactor)1, -0x751cf24f), 268435456); // and dword ptr [r8+r9*2-0x751cf24f], 268435456 IID1434 - __ andl(Address(r9, r10, (Address::ScaleFactor)3, -0x18617431), 268435456); // and dword ptr [r9+r10*8-0x18617431], 268435456 IID1435 - __ andl(Address(r10, r11, (Address::ScaleFactor)1, -0x61b1c7d5), 268435456); // and dword ptr [r10+r11*2-0x61b1c7d5], 268435456 IID1436 - __ andl(Address(r11, r12, (Address::ScaleFactor)2, +0x65738d49), 268435456); // and dword ptr [r11+r12*4+0x65738d49], 268435456 IID1437 - __ andl(Address(r12, r13, (Address::ScaleFactor)1, -0x42f1b310), 268435456); // and dword ptr [r12+r13*2-0x42f1b310], 268435456 IID1438 - __ andl(Address(r13, r14, (Address::ScaleFactor)3, -0x60ebf55f), 268435456); // and dword ptr [r13+r14*8-0x60ebf55f], 268435456 IID1439 - __ andl(Address(r14, +0x5fc32f34), 268435456); // and dword ptr [r14+0x5fc32f34], 268435456 IID1440 - __ andl(Address(r15, r16, (Address::ScaleFactor)2, +0x25a158ff), 268435456); // and dword ptr [r15+r16*4+0x25a158ff], 268435456 IID1441 - __ andl(Address(r16, r17, (Address::ScaleFactor)3, -0x4c32596f), 268435456); // and dword ptr [r16+r17*8-0x4c32596f], 268435456 IID1442 - __ andl(Address(r17, r18, (Address::ScaleFactor)3, -0x43e5307d), 268435456); // and dword ptr [r17+r18*8-0x43e5307d], 268435456 IID1443 - __ andl(Address(r18, r19, (Address::ScaleFactor)2, +0x46cea795), 268435456); // and dword ptr [r18+r19*4+0x46cea795], 268435456 IID1444 - __ andl(Address(r19, r20, (Address::ScaleFactor)0, +0x1be1e0b3), 268435456); // and dword ptr [r19+r20*1+0x1be1e0b3], 268435456 IID1445 - __ andl(Address(r20, r21, (Address::ScaleFactor)3, -0x7440989c), 268435456); // and dword ptr [r20+r21*8-0x7440989c], 268435456 IID1446 - __ andl(Address(r21, r22, (Address::ScaleFactor)0, +0x33a05290), 268435456); // and dword ptr [r21+r22*1+0x33a05290], 268435456 IID1447 - __ andl(Address(r22, r23, (Address::ScaleFactor)2, -0x4764c946), 268435456); // and dword ptr [r22+r23*4-0x4764c946], 268435456 IID1448 - __ andl(Address(r23, +0x6aa3c967), 268435456); // and dword ptr [r23+0x6aa3c967], 268435456 IID1449 - __ andl(Address(r24, r25, (Address::ScaleFactor)2, -0x7901cc60), 268435456); // and dword ptr [r24+r25*4-0x7901cc60], 268435456 IID1450 - __ andl(Address(r25, r26, (Address::ScaleFactor)2, +0x6dce6387), 268435456); // and dword ptr [r25+r26*4+0x6dce6387], 268435456 IID1451 - __ andl(Address(r26, -0x72aef3d3), 268435456); // and dword ptr [r26-0x72aef3d3], 268435456 IID1452 - __ andl(Address(r27, r28, (Address::ScaleFactor)0, +0x4ab10c0a), 268435456); // and dword ptr [r27+r28*1+0x4ab10c0a], 268435456 IID1453 - __ andl(Address(r28, r29, (Address::ScaleFactor)3, -0x282d601c), 268435456); // and dword ptr [r28+r29*8-0x282d601c], 268435456 IID1454 - __ andl(Address(r29, r30, (Address::ScaleFactor)1, +0x39cd6dde), 268435456); // and dword ptr [r29+r30*2+0x39cd6dde], 268435456 IID1455 - __ andl(Address(r30, r31, (Address::ScaleFactor)3, -0x7fd0f3cd), 268435456); // and dword ptr [r30+r31*8-0x7fd0f3cd], 268435456 IID1456 - __ andl(Address(r31, rcx, (Address::ScaleFactor)2, -0x6707785d), 268435456); // and dword ptr [r31+rcx*4-0x6707785d], 268435456 IID1457 -#endif // _LP64 - __ addb(Address(rcx, rdx, (Address::ScaleFactor)2, -0xcca301a), 1); // add byte ptr [rcx+rdx*4-0xcca301a], 1 IID1458 - __ addb(Address(rdx, rbx, (Address::ScaleFactor)3, +0x109fc2b8), 1); // add byte ptr [rdx+rbx*8+0x109fc2b8], 1 IID1459 -#ifdef _LP64 - __ addb(Address(rbx, r8, (Address::ScaleFactor)0, -0x570138c4), 1); // add byte ptr [rbx+r8*1-0x570138c4], 1 IID1460 - __ addb(Address(r8, r9, (Address::ScaleFactor)2, -0x28738ade), 1); // add byte ptr [r8+r9*4-0x28738ade], 1 IID1461 - __ addb(Address(r9, r10, (Address::ScaleFactor)1, +0x578036a6), 1); // add byte ptr [r9+r10*2+0x578036a6], 1 IID1462 - __ addb(Address(r10, r11, (Address::ScaleFactor)3, -0x6e202fb7), 1); // add byte ptr [r10+r11*8-0x6e202fb7], 1 IID1463 - __ addb(Address(r11, r12, (Address::ScaleFactor)1, -0x3fb39eed), 1); // add byte ptr [r11+r12*2-0x3fb39eed], 1 IID1464 - __ addb(Address(r12, r13, (Address::ScaleFactor)1, +0x610033e3), 1); // add byte ptr [r12+r13*2+0x610033e3], 1 IID1465 - __ addb(Address(r13, r14, (Address::ScaleFactor)1, +0x1bb2db79), 1); // add byte ptr [r13+r14*2+0x1bb2db79], 1 IID1466 - __ addb(Address(r14, +0x6c532ca5), 1); // add byte ptr [r14+0x6c532ca5], 1 IID1467 - __ addb(Address(r15, -0x29d2f16b), 1); // add byte ptr [r15-0x29d2f16b], 1 IID1468 - __ addb(Address(r16, r17, (Address::ScaleFactor)2, +0x4e63e0f3), 1); // add byte ptr [r16+r17*4+0x4e63e0f3], 1 IID1469 - __ addb(Address(r17, r18, (Address::ScaleFactor)1, -0x2ad8046), 1); // add byte ptr [r17+r18*2-0x2ad8046], 1 IID1470 - __ addb(Address(r18, r19, (Address::ScaleFactor)1, +0x4490daf2), 1); // add byte ptr [r18+r19*2+0x4490daf2], 1 IID1471 - __ addb(Address(r19, r20, (Address::ScaleFactor)1, +0x68a4b83d), 1); // add byte ptr [r19+r20*2+0x68a4b83d], 1 IID1472 - __ addb(Address(r20, r21, (Address::ScaleFactor)1, -0x4e5c577c), 1); // add byte ptr [r20+r21*2-0x4e5c577c], 1 IID1473 - __ addb(Address(r21, r22, (Address::ScaleFactor)2, +0x272c409c), 1); // add byte ptr [r21+r22*4+0x272c409c], 1 IID1474 - __ addb(Address(r22, r23, (Address::ScaleFactor)2, -0x36dab49e), 1); // add byte ptr [r22+r23*4-0x36dab49e], 1 IID1475 - __ addb(Address(r23, r24, (Address::ScaleFactor)3, +0x36e9eaad), 1); // add byte ptr [r23+r24*8+0x36e9eaad], 1 IID1476 - __ addb(Address(r24, r25, (Address::ScaleFactor)1, +0x38b0020c), 1); // add byte ptr [r24+r25*2+0x38b0020c], 1 IID1477 - __ addb(Address(r25, +0x3e76222b), 1); // add byte ptr [r25+0x3e76222b], 1 IID1478 - __ addb(Address(r26, +0x231c22fd), 1); // add byte ptr [r26+0x231c22fd], 1 IID1479 - __ addb(Address(r27, r28, (Address::ScaleFactor)3, -0x315fdb16), 1); // add byte ptr [r27+r28*8-0x315fdb16], 1 IID1480 - __ addb(Address(r28, r29, (Address::ScaleFactor)2, +0x3e5dc24a), 1); // add byte ptr [r28+r29*4+0x3e5dc24a], 1 IID1481 - __ addb(Address(r29, r30, (Address::ScaleFactor)2, -0x79c07174), 1); // add byte ptr [r29+r30*4-0x79c07174], 1 IID1482 - __ addb(Address(r30, -0x59d05e9f), 1); // add byte ptr [r30-0x59d05e9f], 1 IID1483 - __ addb(Address(r31, rcx, (Address::ScaleFactor)0, -0x30a179a6), 1); // add byte ptr [r31+rcx*1-0x30a179a6], 1 IID1484 - __ addb(Address(rcx, rdx, (Address::ScaleFactor)1, -0x5b246acf), 4); // add byte ptr [rcx+rdx*2-0x5b246acf], 4 IID1485 - __ addb(Address(rdx, rbx, (Address::ScaleFactor)0, -0x32e292f1), 4); // add byte ptr [rdx+rbx*1-0x32e292f1], 4 IID1486 - __ addb(Address(rbx, r8, (Address::ScaleFactor)0, -0x6484fa20), 4); // add byte ptr [rbx+r8*1-0x6484fa20], 4 IID1487 - __ addb(Address(r8, -0x71cedc73), 4); // add byte ptr [r8-0x71cedc73], 4 IID1488 - __ addb(Address(r9, r10, (Address::ScaleFactor)3, +0x7c1d0ce9), 4); // add byte ptr [r9+r10*8+0x7c1d0ce9], 4 IID1489 - __ addb(Address(r10, r11, (Address::ScaleFactor)3, +0x2532d99), 4); // add byte ptr [r10+r11*8+0x2532d99], 4 IID1490 - __ addb(Address(r11, +0x3e67cdcb), 4); // add byte ptr [r11+0x3e67cdcb], 4 IID1491 - __ addb(Address(r12, r13, (Address::ScaleFactor)2, -0x41a70d27), 4); // add byte ptr [r12+r13*4-0x41a70d27], 4 IID1492 - __ addb(Address(r13, +0x6678f3d9), 4); // add byte ptr [r13+0x6678f3d9], 4 IID1493 - __ addb(Address(r14, r15, (Address::ScaleFactor)0, +0x2c7219ed), 4); // add byte ptr [r14+r15*1+0x2c7219ed], 4 IID1494 - __ addb(Address(r15, +0x44e298c0), 4); // add byte ptr [r15+0x44e298c0], 4 IID1495 - __ addb(Address(r16, r17, (Address::ScaleFactor)0, +0x6e388f1b), 4); // add byte ptr [r16+r17*1+0x6e388f1b], 4 IID1496 - __ addb(Address(r17, r18, (Address::ScaleFactor)2, -0x6eab9fb), 4); // add byte ptr [r17+r18*4-0x6eab9fb], 4 IID1497 - __ addb(Address(r18, r19, (Address::ScaleFactor)1, +0x50eac1a6), 4); // add byte ptr [r18+r19*2+0x50eac1a6], 4 IID1498 - __ addb(Address(r19, r20, (Address::ScaleFactor)3, -0x3e431bbd), 4); // add byte ptr [r19+r20*8-0x3e431bbd], 4 IID1499 - __ addb(Address(r20, r21, (Address::ScaleFactor)2, -0x262e37e1), 4); // add byte ptr [r20+r21*4-0x262e37e1], 4 IID1500 - __ addb(Address(r21, +0x71d757a0), 4); // add byte ptr [r21+0x71d757a0], 4 IID1501 - __ addb(Address(r22, r23, (Address::ScaleFactor)1, +0x2696aa1d), 4); // add byte ptr [r22+r23*2+0x2696aa1d], 4 IID1502 - __ addb(Address(r23, r24, (Address::ScaleFactor)2, -0x8d03b1c), 4); // add byte ptr [r23+r24*4-0x8d03b1c], 4 IID1503 - __ addb(Address(r24, r25, (Address::ScaleFactor)2, +0x337ed2ef), 4); // add byte ptr [r24+r25*4+0x337ed2ef], 4 IID1504 - __ addb(Address(r25, r26, (Address::ScaleFactor)3, -0x34ca397), 4); // add byte ptr [r25+r26*8-0x34ca397], 4 IID1505 - __ addb(Address(r26, r27, (Address::ScaleFactor)0, -0x5282fdcd), 4); // add byte ptr [r26+r27*1-0x5282fdcd], 4 IID1506 - __ addb(Address(r27, r28, (Address::ScaleFactor)2, -0x32c01fd), 4); // add byte ptr [r27+r28*4-0x32c01fd], 4 IID1507 - __ addb(Address(r28, r29, (Address::ScaleFactor)3, +0x75859f15), 4); // add byte ptr [r28+r29*8+0x75859f15], 4 IID1508 - __ addb(Address(r29, r30, (Address::ScaleFactor)2, +0x4e0f3b1b), 4); // add byte ptr [r29+r30*4+0x4e0f3b1b], 4 IID1509 - __ addb(Address(r30, r31, (Address::ScaleFactor)2, -0x26cc959f), 4); // add byte ptr [r30+r31*4-0x26cc959f], 4 IID1510 - __ addb(Address(r31, rcx, (Address::ScaleFactor)2, -0x6fa5b791), 4); // add byte ptr [r31+rcx*4-0x6fa5b791], 4 IID1511 - __ addb(Address(rcx, +0xd7d2776), 16); // add byte ptr [rcx+0xd7d2776], 16 IID1512 - __ addb(Address(rdx, rbx, (Address::ScaleFactor)2, -0x15fad602), 16); // add byte ptr [rdx+rbx*4-0x15fad602], 16 IID1513 - __ addb(Address(rbx, r8, (Address::ScaleFactor)3, +0xc649a54), 16); // add byte ptr [rbx+r8*8+0xc649a54], 16 IID1514 - __ addb(Address(r8, r9, (Address::ScaleFactor)2, +0x48054b3b), 16); // add byte ptr [r8+r9*4+0x48054b3b], 16 IID1515 - __ addb(Address(r9, r10, (Address::ScaleFactor)3, -0x1f44482c), 16); // add byte ptr [r9+r10*8-0x1f44482c], 16 IID1516 - __ addb(Address(r10, +0x2667d4c7), 16); // add byte ptr [r10+0x2667d4c7], 16 IID1517 - __ addb(Address(r11, +0x66df331e), 16); // add byte ptr [r11+0x66df331e], 16 IID1518 - __ addb(Address(r12, r13, (Address::ScaleFactor)3, -0x4ffe0cd1), 16); // add byte ptr [r12+r13*8-0x4ffe0cd1], 16 IID1519 - __ addb(Address(r13, r14, (Address::ScaleFactor)0, -0x4e4e9c9c), 16); // add byte ptr [r13+r14*1-0x4e4e9c9c], 16 IID1520 - __ addb(Address(r14, r15, (Address::ScaleFactor)3, -0x38c63ca1), 16); // add byte ptr [r14+r15*8-0x38c63ca1], 16 IID1521 - __ addb(Address(r15, -0x79609fb4), 16); // add byte ptr [r15-0x79609fb4], 16 IID1522 - __ addb(Address(r16, r17, (Address::ScaleFactor)0, +0x6133d17c), 16); // add byte ptr [r16+r17*1+0x6133d17c], 16 IID1523 - __ addb(Address(r17, r18, (Address::ScaleFactor)3, -0x526e75c7), 16); // add byte ptr [r17+r18*8-0x526e75c7], 16 IID1524 - __ addb(Address(r18, r19, (Address::ScaleFactor)0, -0x153d70c5), 16); // add byte ptr [r18+r19*1-0x153d70c5], 16 IID1525 - __ addb(Address(r19, r20, (Address::ScaleFactor)0, -0x1af6c6d1), 16); // add byte ptr [r19+r20*1-0x1af6c6d1], 16 IID1526 - __ addb(Address(r20, r21, (Address::ScaleFactor)1, -0xd42c6c1), 16); // add byte ptr [r20+r21*2-0xd42c6c1], 16 IID1527 - __ addb(Address(r21, -0x2cccd430), 16); // add byte ptr [r21-0x2cccd430], 16 IID1528 - __ addb(Address(r22, r23, (Address::ScaleFactor)0, +0x1b11bd48), 16); // add byte ptr [r22+r23*1+0x1b11bd48], 16 IID1529 - __ addb(Address(r23, -0x459f9716), 16); // add byte ptr [r23-0x459f9716], 16 IID1530 - __ addb(Address(r24, r25, (Address::ScaleFactor)0, +0x609d5f5f), 16); // add byte ptr [r24+r25*1+0x609d5f5f], 16 IID1531 - __ addb(Address(r25, r26, (Address::ScaleFactor)3, -0x2f92e5e9), 16); // add byte ptr [r25+r26*8-0x2f92e5e9], 16 IID1532 - __ addb(Address(r26, r27, (Address::ScaleFactor)3, -0x3dab079f), 16); // add byte ptr [r26+r27*8-0x3dab079f], 16 IID1533 - __ addb(Address(r27, r28, (Address::ScaleFactor)2, -0x54ac693d), 16); // add byte ptr [r27+r28*4-0x54ac693d], 16 IID1534 - __ addb(Address(r28, -0x542c16de), 16); // add byte ptr [r28-0x542c16de], 16 IID1535 - __ addb(Address(r29, r30, (Address::ScaleFactor)0, -0x2a692af3), 16); // add byte ptr [r29+r30*1-0x2a692af3], 16 IID1536 - __ addb(Address(r30, r31, (Address::ScaleFactor)3, -0x2160e49c), 16); // add byte ptr [r30+r31*8-0x2160e49c], 16 IID1537 - __ addb(Address(r31, rcx, (Address::ScaleFactor)0, +0x4ba8c9c7), 16); // add byte ptr [r31+rcx*1+0x4ba8c9c7], 16 IID1538 - __ addb(Address(rcx, rdx, (Address::ScaleFactor)3, -0x75e68049), 64); // add byte ptr [rcx+rdx*8-0x75e68049], 64 IID1539 - __ addb(Address(rdx, rbx, (Address::ScaleFactor)2, -0x527c5d6e), 64); // add byte ptr [rdx+rbx*4-0x527c5d6e], 64 IID1540 - __ addb(Address(rbx, r8, (Address::ScaleFactor)1, +0xd401927), 64); // add byte ptr [rbx+r8*2+0xd401927], 64 IID1541 - __ addb(Address(r8, r9, (Address::ScaleFactor)2, -0x2c487b45), 64); // add byte ptr [r8+r9*4-0x2c487b45], 64 IID1542 - __ addb(Address(r9, r10, (Address::ScaleFactor)1, -0x5d697a22), 64); // add byte ptr [r9+r10*2-0x5d697a22], 64 IID1543 - __ addb(Address(r10, -0x650877df), 64); // add byte ptr [r10-0x650877df], 64 IID1544 - __ addb(Address(r11, -0x4bfa2076), 64); // add byte ptr [r11-0x4bfa2076], 64 IID1545 - __ addb(Address(r12, r13, (Address::ScaleFactor)2, +0x1a45dff1), 64); // add byte ptr [r12+r13*4+0x1a45dff1], 64 IID1546 - __ addb(Address(r13, r14, (Address::ScaleFactor)3, -0x46a2317), 64); // add byte ptr [r13+r14*8-0x46a2317], 64 IID1547 - __ addb(Address(r14, r15, (Address::ScaleFactor)0, +0x2d11e832), 64); // add byte ptr [r14+r15*1+0x2d11e832], 64 IID1548 - __ addb(Address(r15, r16, (Address::ScaleFactor)1, +0x22e07bf6), 64); // add byte ptr [r15+r16*2+0x22e07bf6], 64 IID1549 - __ addb(Address(r16, r17, (Address::ScaleFactor)1, -0x2ac028b2), 64); // add byte ptr [r16+r17*2-0x2ac028b2], 64 IID1550 - __ addb(Address(r17, r18, (Address::ScaleFactor)2, +0x56cf70af), 64); // add byte ptr [r17+r18*4+0x56cf70af], 64 IID1551 - __ addb(Address(r18, +0x203e562f), 64); // add byte ptr [r18+0x203e562f], 64 IID1552 - __ addb(Address(r19, -0x1caeafb5), 64); // add byte ptr [r19-0x1caeafb5], 64 IID1553 - __ addb(Address(r20, r21, (Address::ScaleFactor)1, -0x67b1d7e3), 64); // add byte ptr [r20+r21*2-0x67b1d7e3], 64 IID1554 - __ addb(Address(r21, r22, (Address::ScaleFactor)3, +0x6ec356ae), 64); // add byte ptr [r21+r22*8+0x6ec356ae], 64 IID1555 - __ addb(Address(r22, r23, (Address::ScaleFactor)1, -0x21723942), 64); // add byte ptr [r22+r23*2-0x21723942], 64 IID1556 - __ addb(Address(r23, r24, (Address::ScaleFactor)2, +0x4b4b1e8d), 64); // add byte ptr [r23+r24*4+0x4b4b1e8d], 64 IID1557 - __ addb(Address(r24, +0x22e7a267), 64); // add byte ptr [r24+0x22e7a267], 64 IID1558 - __ addb(Address(r25, r26, (Address::ScaleFactor)0, -0x2bf12159), 64); // add byte ptr [r25+r26*1-0x2bf12159], 64 IID1559 - __ addb(Address(r26, r27, (Address::ScaleFactor)2, +0x4db7a137), 64); // add byte ptr [r26+r27*4+0x4db7a137], 64 IID1560 - __ addb(Address(r27, r28, (Address::ScaleFactor)0, +0x1c55f10c), 64); // add byte ptr [r27+r28*1+0x1c55f10c], 64 IID1561 - __ addb(Address(r28, r29, (Address::ScaleFactor)0, -0x74e818f6), 64); // add byte ptr [r28+r29*1-0x74e818f6], 64 IID1562 - __ addb(Address(r29, r30, (Address::ScaleFactor)3, -0x5edeb769), 64); // add byte ptr [r29+r30*8-0x5edeb769], 64 IID1563 - __ addb(Address(r30, +0x4bb5eae6), 64); // add byte ptr [r30+0x4bb5eae6], 64 IID1564 - __ addb(Address(r31, rcx, (Address::ScaleFactor)0, +0x14c1ff51), 64); // add byte ptr [r31+rcx*1+0x14c1ff51], 64 IID1565 -#endif // _LP64 - __ addw(Address(rcx, rdx, (Address::ScaleFactor)1, +0x17061d49), 256); // add word ptr [rcx+rdx*2+0x17061d49], 256 IID1566 - __ addw(Address(rdx, rbx, (Address::ScaleFactor)0, +0x767db662), 256); // add word ptr [rdx+rbx*1+0x767db662], 256 IID1567 -#ifdef _LP64 - __ addw(Address(rbx, r8, (Address::ScaleFactor)0, -0x74576671), 256); // add word ptr [rbx+r8*1-0x74576671], 256 IID1568 - __ addw(Address(r8, +0x7767bd6d), 256); // add word ptr [r8+0x7767bd6d], 256 IID1569 - __ addw(Address(r9, +0x5dc03997), 256); // add word ptr [r9+0x5dc03997], 256 IID1570 - __ addw(Address(r10, r11, (Address::ScaleFactor)1, +0x7c5a701), 256); // add word ptr [r10+r11*2+0x7c5a701], 256 IID1571 - __ addw(Address(r11, r12, (Address::ScaleFactor)0, -0x6ee289ca), 256); // add word ptr [r11+r12*1-0x6ee289ca], 256 IID1572 - __ addw(Address(r12, r13, (Address::ScaleFactor)1, +0x5d662c23), 256); // add word ptr [r12+r13*2+0x5d662c23], 256 IID1573 - __ addw(Address(r13, r14, (Address::ScaleFactor)1, -0x5d85dc5b), 256); // add word ptr [r13+r14*2-0x5d85dc5b], 256 IID1574 - __ addw(Address(r14, r15, (Address::ScaleFactor)2, -0x19b2c41d), 256); // add word ptr [r14+r15*4-0x19b2c41d], 256 IID1575 - __ addw(Address(r15, r16, (Address::ScaleFactor)3, +0x6e9c49f7), 256); // add word ptr [r15+r16*8+0x6e9c49f7], 256 IID1576 - __ addw(Address(r16, r17, (Address::ScaleFactor)0, +0x566b49c6), 256); // add word ptr [r16+r17*1+0x566b49c6], 256 IID1577 - __ addw(Address(r17, r18, (Address::ScaleFactor)0, -0x2401cfb9), 256); // add word ptr [r17+r18*1-0x2401cfb9], 256 IID1578 - __ addw(Address(r18, r19, (Address::ScaleFactor)0, +0x1f8f2bd0), 256); // add word ptr [r18+r19*1+0x1f8f2bd0], 256 IID1579 - __ addw(Address(r19, +0x562d6f78), 256); // add word ptr [r19+0x562d6f78], 256 IID1580 - __ addw(Address(r20, r21, (Address::ScaleFactor)2, +0x4cec2dd8), 256); // add word ptr [r20+r21*4+0x4cec2dd8], 256 IID1581 - __ addw(Address(r21, r22, (Address::ScaleFactor)2, +0x38804a4d), 256); // add word ptr [r21+r22*4+0x38804a4d], 256 IID1582 - __ addw(Address(r22, r23, (Address::ScaleFactor)3, -0x677aef96), 256); // add word ptr [r22+r23*8-0x677aef96], 256 IID1583 - __ addw(Address(r23, r24, (Address::ScaleFactor)0, +0x2b96bb86), 256); // add word ptr [r23+r24*1+0x2b96bb86], 256 IID1584 - __ addw(Address(r24, r25, (Address::ScaleFactor)2, +0x71335142), 256); // add word ptr [r24+r25*4+0x71335142], 256 IID1585 - __ addw(Address(r25, r26, (Address::ScaleFactor)1, +0x4f322a53), 256); // add word ptr [r25+r26*2+0x4f322a53], 256 IID1586 - __ addw(Address(r26, r27, (Address::ScaleFactor)2, +0x3622d355), 256); // add word ptr [r26+r27*4+0x3622d355], 256 IID1587 - __ addw(Address(r27, +0x5d3773e7), 256); // add word ptr [r27+0x5d3773e7], 256 IID1588 - __ addw(Address(r28, r29, (Address::ScaleFactor)1, -0x11a5d69c), 256); // add word ptr [r28+r29*2-0x11a5d69c], 256 IID1589 - __ addw(Address(r29, r30, (Address::ScaleFactor)1, +0x39fc027c), 256); // add word ptr [r29+r30*2+0x39fc027c], 256 IID1590 - __ addw(Address(r30, r31, (Address::ScaleFactor)2, -0x2f85247f), 256); // add word ptr [r30+r31*4-0x2f85247f], 256 IID1591 - __ addw(Address(r31, rcx, (Address::ScaleFactor)1, +0x1ef98fb1), 256); // add word ptr [r31+rcx*2+0x1ef98fb1], 256 IID1592 - __ addw(Address(rcx, rdx, (Address::ScaleFactor)2, -0x4dd35777), 1024); // add word ptr [rcx+rdx*4-0x4dd35777], 1024 IID1593 - __ addw(Address(rdx, rbx, (Address::ScaleFactor)2, +0x3bba04a9), 1024); // add word ptr [rdx+rbx*4+0x3bba04a9], 1024 IID1594 - __ addw(Address(rbx, r8, (Address::ScaleFactor)0, -0x2a5ff153), 1024); // add word ptr [rbx+r8*1-0x2a5ff153], 1024 IID1595 - __ addw(Address(r8, r9, (Address::ScaleFactor)3, -0x4f577352), 1024); // add word ptr [r8+r9*8-0x4f577352], 1024 IID1596 - __ addw(Address(r9, r10, (Address::ScaleFactor)2, -0x197accc2), 1024); // add word ptr [r9+r10*4-0x197accc2], 1024 IID1597 - __ addw(Address(r10, r11, (Address::ScaleFactor)0, +0x10e73105), 1024); // add word ptr [r10+r11*1+0x10e73105], 1024 IID1598 - __ addw(Address(r11, r12, (Address::ScaleFactor)2, +0x13ae2c97), 1024); // add word ptr [r11+r12*4+0x13ae2c97], 1024 IID1599 - __ addw(Address(r12, r13, (Address::ScaleFactor)3, -0x6ad8b07c), 1024); // add word ptr [r12+r13*8-0x6ad8b07c], 1024 IID1600 - __ addw(Address(r13, r14, (Address::ScaleFactor)1, -0x375c1e), 1024); // add word ptr [r13+r14*2-0x375c1e], 1024 IID1601 - __ addw(Address(r14, r15, (Address::ScaleFactor)2, +0x68595c51), 1024); // add word ptr [r14+r15*4+0x68595c51], 1024 IID1602 - __ addw(Address(r15, r16, (Address::ScaleFactor)1, -0x13ba1681), 1024); // add word ptr [r15+r16*2-0x13ba1681], 1024 IID1603 - __ addw(Address(r16, r17, (Address::ScaleFactor)0, -0x7ecee8f7), 1024); // add word ptr [r16+r17*1-0x7ecee8f7], 1024 IID1604 - __ addw(Address(r17, +0x4c9a300d), 1024); // add word ptr [r17+0x4c9a300d], 1024 IID1605 - __ addw(Address(r18, -0x2bc6601e), 1024); // add word ptr [r18-0x2bc6601e], 1024 IID1606 - __ addw(Address(r19, r20, (Address::ScaleFactor)2, -0x78435f53), 1024); // add word ptr [r19+r20*4-0x78435f53], 1024 IID1607 - __ addw(Address(r20, -0xb97c311), 1024); // add word ptr [r20-0xb97c311], 1024 IID1608 - __ addw(Address(r21, r22, (Address::ScaleFactor)1, -0x2c00a764), 1024); // add word ptr [r21+r22*2-0x2c00a764], 1024 IID1609 - __ addw(Address(r22, +0x475639d1), 1024); // add word ptr [r22+0x475639d1], 1024 IID1610 - __ addw(Address(r23, r24, (Address::ScaleFactor)3, -0x28bd49c1), 1024); // add word ptr [r23+r24*8-0x28bd49c1], 1024 IID1611 - __ addw(Address(r24, r25, (Address::ScaleFactor)0, +0x7f4c1c4a), 1024); // add word ptr [r24+r25*1+0x7f4c1c4a], 1024 IID1612 - __ addw(Address(r25, r26, (Address::ScaleFactor)1, -0x424cdd47), 1024); // add word ptr [r25+r26*2-0x424cdd47], 1024 IID1613 - __ addw(Address(r26, r27, (Address::ScaleFactor)0, +0x601a1ca2), 1024); // add word ptr [r26+r27*1+0x601a1ca2], 1024 IID1614 - __ addw(Address(r27, r28, (Address::ScaleFactor)1, +0x69a3f232), 1024); // add word ptr [r27+r28*2+0x69a3f232], 1024 IID1615 - __ addw(Address(r28, r29, (Address::ScaleFactor)0, +0x4d70248f), 1024); // add word ptr [r28+r29*1+0x4d70248f], 1024 IID1616 - __ addw(Address(r29, r30, (Address::ScaleFactor)0, +0x30a7c8ec), 1024); // add word ptr [r29+r30*1+0x30a7c8ec], 1024 IID1617 - __ addw(Address(r30, -0x2707cfa7), 1024); // add word ptr [r30-0x2707cfa7], 1024 IID1618 - __ addw(Address(r31, rcx, (Address::ScaleFactor)1, -0x2bf4e75f), 1024); // add word ptr [r31+rcx*2-0x2bf4e75f], 1024 IID1619 - __ addw(Address(rcx, rdx, (Address::ScaleFactor)2, +0xb4566f5), 4096); // add word ptr [rcx+rdx*4+0xb4566f5], 4096 IID1620 - __ addw(Address(rdx, -0x62cf1bd3), 4096); // add word ptr [rdx-0x62cf1bd3], 4096 IID1621 - __ addw(Address(rbx, r8, (Address::ScaleFactor)3, +0x485039ec), 4096); // add word ptr [rbx+r8*8+0x485039ec], 4096 IID1622 - __ addw(Address(r8, -0x5561f589), 4096); // add word ptr [r8-0x5561f589], 4096 IID1623 - __ addw(Address(r9, r10, (Address::ScaleFactor)1, +0x26bebb2f), 4096); // add word ptr [r9+r10*2+0x26bebb2f], 4096 IID1624 - __ addw(Address(r10, r11, (Address::ScaleFactor)1, -0x1e52d0ff), 4096); // add word ptr [r10+r11*2-0x1e52d0ff], 4096 IID1625 - __ addw(Address(r11, r12, (Address::ScaleFactor)0, -0xa80ec3f), 4096); // add word ptr [r11+r12*1-0xa80ec3f], 4096 IID1626 - __ addw(Address(r12, r13, (Address::ScaleFactor)3, -0x21d18ae8), 4096); // add word ptr [r12+r13*8-0x21d18ae8], 4096 IID1627 - __ addw(Address(r13, r14, (Address::ScaleFactor)3, -0x1ebf1bc4), 4096); // add word ptr [r13+r14*8-0x1ebf1bc4], 4096 IID1628 - __ addw(Address(r14, -0x42839e1f), 4096); // add word ptr [r14-0x42839e1f], 4096 IID1629 - __ addw(Address(r15, r16, (Address::ScaleFactor)2, +0x1ee34abe), 4096); // add word ptr [r15+r16*4+0x1ee34abe], 4096 IID1630 - __ addw(Address(r16, r17, (Address::ScaleFactor)2, +0x199ad2eb), 4096); // add word ptr [r16+r17*4+0x199ad2eb], 4096 IID1631 - __ addw(Address(r17, r18, (Address::ScaleFactor)3, -0x724c2853), 4096); // add word ptr [r17+r18*8-0x724c2853], 4096 IID1632 - __ addw(Address(r18, r19, (Address::ScaleFactor)1, +0x1eb2437c), 4096); // add word ptr [r18+r19*2+0x1eb2437c], 4096 IID1633 - __ addw(Address(r19, r20, (Address::ScaleFactor)0, +0x35ee7de), 4096); // add word ptr [r19+r20*1+0x35ee7de], 4096 IID1634 - __ addw(Address(r20, r21, (Address::ScaleFactor)0, -0x14568388), 4096); // add word ptr [r20+r21*1-0x14568388], 4096 IID1635 - __ addw(Address(r21, -0x5f124b4d), 4096); // add word ptr [r21-0x5f124b4d], 4096 IID1636 - __ addw(Address(r22, r23, (Address::ScaleFactor)3, +0x43e2bf83), 4096); // add word ptr [r22+r23*8+0x43e2bf83], 4096 IID1637 - __ addw(Address(r23, r24, (Address::ScaleFactor)1, +0x70af9b11), 4096); // add word ptr [r23+r24*2+0x70af9b11], 4096 IID1638 - __ addw(Address(r24, r25, (Address::ScaleFactor)0, -0x38e3886b), 4096); // add word ptr [r24+r25*1-0x38e3886b], 4096 IID1639 - __ addw(Address(r25, r26, (Address::ScaleFactor)1, -0x1bb3401f), 4096); // add word ptr [r25+r26*2-0x1bb3401f], 4096 IID1640 - __ addw(Address(r26, r27, (Address::ScaleFactor)3, -0x4bcb5eeb), 4096); // add word ptr [r26+r27*8-0x4bcb5eeb], 4096 IID1641 - __ addw(Address(r27, +0x7a3576c3), 4096); // add word ptr [r27+0x7a3576c3], 4096 IID1642 - __ addw(Address(r28, r29, (Address::ScaleFactor)2, +0x382e91d5), 4096); // add word ptr [r28+r29*4+0x382e91d5], 4096 IID1643 - __ addw(Address(r29, r30, (Address::ScaleFactor)2, +0x3feefa8c), 4096); // add word ptr [r29+r30*4+0x3feefa8c], 4096 IID1644 - __ addw(Address(r30, -0x2bcf5a12), 4096); // add word ptr [r30-0x2bcf5a12], 4096 IID1645 - __ addw(Address(r31, -0x65854292), 4096); // add word ptr [r31-0x65854292], 4096 IID1646 - __ addw(Address(rcx, rdx, (Address::ScaleFactor)0, +0x65cfb1f9), 16384); // add word ptr [rcx+rdx*1+0x65cfb1f9], 16384 IID1647 - __ addw(Address(rdx, rbx, (Address::ScaleFactor)1, +0xc7c1c33), 16384); // add word ptr [rdx+rbx*2+0xc7c1c33], 16384 IID1648 - __ addw(Address(rbx, -0x31d3e87b), 16384); // add word ptr [rbx-0x31d3e87b], 16384 IID1649 - __ addw(Address(r8, r9, (Address::ScaleFactor)0, -0x3f4915fa), 16384); // add word ptr [r8+r9*1-0x3f4915fa], 16384 IID1650 - __ addw(Address(r9, r10, (Address::ScaleFactor)1, +0x46495af8), 16384); // add word ptr [r9+r10*2+0x46495af8], 16384 IID1651 - __ addw(Address(r10, -0x59a5dffa), 16384); // add word ptr [r10-0x59a5dffa], 16384 IID1652 - __ addw(Address(r11, r12, (Address::ScaleFactor)0, -0x403071ec), 16384); // add word ptr [r11+r12*1-0x403071ec], 16384 IID1653 - __ addw(Address(r12, r13, (Address::ScaleFactor)3, +0x66d63562), 16384); // add word ptr [r12+r13*8+0x66d63562], 16384 IID1654 - __ addw(Address(r13, -0x5ff24c30), 16384); // add word ptr [r13-0x5ff24c30], 16384 IID1655 - __ addw(Address(r14, r15, (Address::ScaleFactor)3, -0x12167cf4), 16384); // add word ptr [r14+r15*8-0x12167cf4], 16384 IID1656 - __ addw(Address(r15, r16, (Address::ScaleFactor)2, +0x6ea1d7f6), 16384); // add word ptr [r15+r16*4+0x6ea1d7f6], 16384 IID1657 - __ addw(Address(r16, +0x1770caad), 16384); // add word ptr [r16+0x1770caad], 16384 IID1658 - __ addw(Address(r17, -0x55798dad), 16384); // add word ptr [r17-0x55798dad], 16384 IID1659 - __ addw(Address(r18, r19, (Address::ScaleFactor)1, +0x2468c0ee), 16384); // add word ptr [r18+r19*2+0x2468c0ee], 16384 IID1660 - __ addw(Address(r19, r20, (Address::ScaleFactor)3, +0x647497f9), 16384); // add word ptr [r19+r20*8+0x647497f9], 16384 IID1661 - __ addw(Address(r20, r21, (Address::ScaleFactor)0, +0x195c103e), 16384); // add word ptr [r20+r21*1+0x195c103e], 16384 IID1662 - __ addw(Address(r21, r22, (Address::ScaleFactor)1, -0x5174eb0e), 16384); // add word ptr [r21+r22*2-0x5174eb0e], 16384 IID1663 - __ addw(Address(r22, r23, (Address::ScaleFactor)0, -0x6854e3c0), 16384); // add word ptr [r22+r23*1-0x6854e3c0], 16384 IID1664 - __ addw(Address(r23, r24, (Address::ScaleFactor)0, +0x404ce0be), 16384); // add word ptr [r23+r24*1+0x404ce0be], 16384 IID1665 - __ addw(Address(r24, r25, (Address::ScaleFactor)1, +0x37d6f5a8), 16384); // add word ptr [r24+r25*2+0x37d6f5a8], 16384 IID1666 - __ addw(Address(r25, r26, (Address::ScaleFactor)2, +0x3582a0f5), 16384); // add word ptr [r25+r26*4+0x3582a0f5], 16384 IID1667 - __ addw(Address(r26, r27, (Address::ScaleFactor)0, -0x398512db), 16384); // add word ptr [r26+r27*1-0x398512db], 16384 IID1668 - __ addw(Address(r27, r28, (Address::ScaleFactor)0, -0x5af0a992), 16384); // add word ptr [r27+r28*1-0x5af0a992], 16384 IID1669 - __ addw(Address(r28, r29, (Address::ScaleFactor)2, -0x4260ce50), 16384); // add word ptr [r28+r29*4-0x4260ce50], 16384 IID1670 - __ addw(Address(r29, r30, (Address::ScaleFactor)3, +0x629cbb2d), 16384); // add word ptr [r29+r30*8+0x629cbb2d], 16384 IID1671 - __ addw(Address(r30, r31, (Address::ScaleFactor)3, +0x7a240463), 16384); // add word ptr [r30+r31*8+0x7a240463], 16384 IID1672 - __ addw(Address(r31, rcx, (Address::ScaleFactor)0, +0x576c91ab), 16384); // add word ptr [r31+rcx*1+0x576c91ab], 16384 IID1673 -#endif // _LP64 - __ addl(Address(rcx, rdx, (Address::ScaleFactor)0, +0x1074939c), 1); // add dword ptr [rcx+rdx*1+0x1074939c], 1 IID1674 - __ addl(Address(rdx, rbx, (Address::ScaleFactor)2, -0x5a2889c8), 1); // add dword ptr [rdx+rbx*4-0x5a2889c8], 1 IID1675 -#ifdef _LP64 - __ addl(Address(rbx, r8, (Address::ScaleFactor)2, +0x1d1d0ec6), 1); // add dword ptr [rbx+r8*4+0x1d1d0ec6], 1 IID1676 - __ addl(Address(r8, r9, (Address::ScaleFactor)0, -0x3b318252), 1); // add dword ptr [r8+r9*1-0x3b318252], 1 IID1677 - __ addl(Address(r9, r10, (Address::ScaleFactor)3, +0x12948b1e), 1); // add dword ptr [r9+r10*8+0x12948b1e], 1 IID1678 - __ addl(Address(r10, r11, (Address::ScaleFactor)3, +0x43f1b401), 1); // add dword ptr [r10+r11*8+0x43f1b401], 1 IID1679 - __ addl(Address(r11, +0x69c84019), 1); // add dword ptr [r11+0x69c84019], 1 IID1680 - __ addl(Address(r12, r13, (Address::ScaleFactor)0, -0x6aa59fc), 1); // add dword ptr [r12+r13*1-0x6aa59fc], 1 IID1681 - __ addl(Address(r13, r14, (Address::ScaleFactor)2, -0x25f1a8bf), 1); // add dword ptr [r13+r14*4-0x25f1a8bf], 1 IID1682 - __ addl(Address(r14, r15, (Address::ScaleFactor)3, +0x5d8fc78a), 1); // add dword ptr [r14+r15*8+0x5d8fc78a], 1 IID1683 - __ addl(Address(r15, r16, (Address::ScaleFactor)1, +0x7e138525), 1); // add dword ptr [r15+r16*2+0x7e138525], 1 IID1684 - __ addl(Address(r16, r17, (Address::ScaleFactor)2, -0x52055e58), 1); // add dword ptr [r16+r17*4-0x52055e58], 1 IID1685 - __ addl(Address(r17, r18, (Address::ScaleFactor)3, -0x46f9523f), 1); // add dword ptr [r17+r18*8-0x46f9523f], 1 IID1686 - __ addl(Address(r18, r19, (Address::ScaleFactor)1, +0x2af952f8), 1); // add dword ptr [r18+r19*2+0x2af952f8], 1 IID1687 - __ addl(Address(r19, -0xcef821f), 1); // add dword ptr [r19-0xcef821f], 1 IID1688 - __ addl(Address(r20, r21, (Address::ScaleFactor)1, -0x59feb167), 1); // add dword ptr [r20+r21*2-0x59feb167], 1 IID1689 - __ addl(Address(r21, r22, (Address::ScaleFactor)2, +0x4a9c6ed6), 1); // add dword ptr [r21+r22*4+0x4a9c6ed6], 1 IID1690 - __ addl(Address(r22, r23, (Address::ScaleFactor)3, -0x48bffa3c), 1); // add dword ptr [r22+r23*8-0x48bffa3c], 1 IID1691 - __ addl(Address(r23, +0x74855bec), 1); // add dword ptr [r23+0x74855bec], 1 IID1692 - __ addl(Address(r24, -0x3e5a63f4), 1); // add dword ptr [r24-0x3e5a63f4], 1 IID1693 - __ addl(Address(r25, r26, (Address::ScaleFactor)2, +0x62d34b7a), 1); // add dword ptr [r25+r26*4+0x62d34b7a], 1 IID1694 - __ addl(Address(r26, r27, (Address::ScaleFactor)3, +0x3ee34450), 1); // add dword ptr [r26+r27*8+0x3ee34450], 1 IID1695 - __ addl(Address(r27, r28, (Address::ScaleFactor)1, -0x5ece33f4), 1); // add dword ptr [r27+r28*2-0x5ece33f4], 1 IID1696 - __ addl(Address(r28, -0x53face57), 1); // add dword ptr [r28-0x53face57], 1 IID1697 - __ addl(Address(r29, -0x74bad3d3), 1); // add dword ptr [r29-0x74bad3d3], 1 IID1698 - __ addl(Address(r30, r31, (Address::ScaleFactor)3, +0x188cd3d), 1); // add dword ptr [r30+r31*8+0x188cd3d], 1 IID1699 - __ addl(Address(r31, rcx, (Address::ScaleFactor)1, -0x2773595), 1); // add dword ptr [r31+rcx*2-0x2773595], 1 IID1700 - __ addl(Address(rcx, rdx, (Address::ScaleFactor)2, +0x1729818), 16); // add dword ptr [rcx+rdx*4+0x1729818], 16 IID1701 - __ addl(Address(rdx, rbx, (Address::ScaleFactor)3, -0x427897f8), 16); // add dword ptr [rdx+rbx*8-0x427897f8], 16 IID1702 - __ addl(Address(rbx, r8, (Address::ScaleFactor)1, +0xc540ac4), 16); // add dword ptr [rbx+r8*2+0xc540ac4], 16 IID1703 - __ addl(Address(r8, r9, (Address::ScaleFactor)1, +0x59c9872f), 16); // add dword ptr [r8+r9*2+0x59c9872f], 16 IID1704 - __ addl(Address(r9, -0x7fdae2e8), 16); // add dword ptr [r9-0x7fdae2e8], 16 IID1705 - __ addl(Address(r10, r11, (Address::ScaleFactor)0, +0x1d1b31de), 16); // add dword ptr [r10+r11*1+0x1d1b31de], 16 IID1706 - __ addl(Address(r11, -0x300366a9), 16); // add dword ptr [r11-0x300366a9], 16 IID1707 - __ addl(Address(r12, r13, (Address::ScaleFactor)0, -0x9b3cd50), 16); // add dword ptr [r12+r13*1-0x9b3cd50], 16 IID1708 - __ addl(Address(r13, r14, (Address::ScaleFactor)2, +0x4fcc51a2), 16); // add dword ptr [r13+r14*4+0x4fcc51a2], 16 IID1709 - __ addl(Address(r14, -0x6ae1db97), 16); // add dword ptr [r14-0x6ae1db97], 16 IID1710 - __ addl(Address(r15, r16, (Address::ScaleFactor)0, +0x5cf04945), 16); // add dword ptr [r15+r16*1+0x5cf04945], 16 IID1711 - __ addl(Address(r16, r17, (Address::ScaleFactor)1, +0x3de4635d), 16); // add dword ptr [r16+r17*2+0x3de4635d], 16 IID1712 - __ addl(Address(r17, r18, (Address::ScaleFactor)0, +0x51a4744), 16); // add dword ptr [r17+r18*1+0x51a4744], 16 IID1713 - __ addl(Address(r18, r19, (Address::ScaleFactor)0, +0x31b6b4f7), 16); // add dword ptr [r18+r19*1+0x31b6b4f7], 16 IID1714 - __ addl(Address(r19, -0x3ff7c817), 16); // add dword ptr [r19-0x3ff7c817], 16 IID1715 - __ addl(Address(r20, r21, (Address::ScaleFactor)2, +0x6af19f28), 16); // add dword ptr [r20+r21*4+0x6af19f28], 16 IID1716 - __ addl(Address(r21, r22, (Address::ScaleFactor)3, +0x237bf0dd), 16); // add dword ptr [r21+r22*8+0x237bf0dd], 16 IID1717 - __ addl(Address(r22, r23, (Address::ScaleFactor)1, +0x4675b663), 16); // add dword ptr [r22+r23*2+0x4675b663], 16 IID1718 - __ addl(Address(r23, r24, (Address::ScaleFactor)3, -0x2d1293e3), 16); // add dword ptr [r23+r24*8-0x2d1293e3], 16 IID1719 - __ addl(Address(r24, r25, (Address::ScaleFactor)1, +0x75f4ece4), 16); // add dword ptr [r24+r25*2+0x75f4ece4], 16 IID1720 - __ addl(Address(r25, +0x6e832aad), 16); // add dword ptr [r25+0x6e832aad], 16 IID1721 - __ addl(Address(r26, r27, (Address::ScaleFactor)2, -0x76bb9897), 16); // add dword ptr [r26+r27*4-0x76bb9897], 16 IID1722 - __ addl(Address(r27, r28, (Address::ScaleFactor)3, +0x203dbae2), 16); // add dword ptr [r27+r28*8+0x203dbae2], 16 IID1723 - __ addl(Address(r28, r29, (Address::ScaleFactor)1, -0x21a5cf2), 16); // add dword ptr [r28+r29*2-0x21a5cf2], 16 IID1724 - __ addl(Address(r29, r30, (Address::ScaleFactor)2, +0x762d191), 16); // add dword ptr [r29+r30*4+0x762d191], 16 IID1725 - __ addl(Address(r30, +0x6035f3e7), 16); // add dword ptr [r30+0x6035f3e7], 16 IID1726 - __ addl(Address(r31, rcx, (Address::ScaleFactor)2, -0x5ecbb55a), 16); // add dword ptr [r31+rcx*4-0x5ecbb55a], 16 IID1727 - __ addl(Address(rcx, +0x961ea3e), 256); // add dword ptr [rcx+0x961ea3e], 256 IID1728 - __ addl(Address(rdx, rbx, (Address::ScaleFactor)2, +0x7135f631), 256); // add dword ptr [rdx+rbx*4+0x7135f631], 256 IID1729 - __ addl(Address(rbx, r8, (Address::ScaleFactor)3, +0x1bf7099b), 256); // add dword ptr [rbx+r8*8+0x1bf7099b], 256 IID1730 - __ addl(Address(r8, +0x78934325), 256); // add dword ptr [r8+0x78934325], 256 IID1731 - __ addl(Address(r9, r10, (Address::ScaleFactor)1, +0x6b0ed1eb), 256); // add dword ptr [r9+r10*2+0x6b0ed1eb], 256 IID1732 - __ addl(Address(r10, r11, (Address::ScaleFactor)0, -0xc0edcf9), 256); // add dword ptr [r10+r11*1-0xc0edcf9], 256 IID1733 - __ addl(Address(r11, r12, (Address::ScaleFactor)1, +0x5492b7bf), 256); // add dword ptr [r11+r12*2+0x5492b7bf], 256 IID1734 - __ addl(Address(r12, r13, (Address::ScaleFactor)3, +0x1e913003), 256); // add dword ptr [r12+r13*8+0x1e913003], 256 IID1735 - __ addl(Address(r13, r14, (Address::ScaleFactor)0, -0x2bfc9731), 256); // add dword ptr [r13+r14*1-0x2bfc9731], 256 IID1736 - __ addl(Address(r14, r15, (Address::ScaleFactor)3, +0x16fd8b23), 256); // add dword ptr [r14+r15*8+0x16fd8b23], 256 IID1737 - __ addl(Address(r15, r16, (Address::ScaleFactor)3, +0x536f7645), 256); // add dword ptr [r15+r16*8+0x536f7645], 256 IID1738 - __ addl(Address(r16, r17, (Address::ScaleFactor)0, -0x40650983), 256); // add dword ptr [r16+r17*1-0x40650983], 256 IID1739 - __ addl(Address(r17, r18, (Address::ScaleFactor)1, -0x640769c5), 256); // add dword ptr [r17+r18*2-0x640769c5], 256 IID1740 - __ addl(Address(r18, r19, (Address::ScaleFactor)2, -0x2e6fa86e), 256); // add dword ptr [r18+r19*4-0x2e6fa86e], 256 IID1741 - __ addl(Address(r19, +0x6603657c), 256); // add dword ptr [r19+0x6603657c], 256 IID1742 - __ addl(Address(r20, r21, (Address::ScaleFactor)1, +0x39ff54e4), 256); // add dword ptr [r20+r21*2+0x39ff54e4], 256 IID1743 - __ addl(Address(r21, r22, (Address::ScaleFactor)0, +0x66261b87), 256); // add dword ptr [r21+r22*1+0x66261b87], 256 IID1744 - __ addl(Address(r22, -0x2792e7f8), 256); // add dword ptr [r22-0x2792e7f8], 256 IID1745 - __ addl(Address(r23, r24, (Address::ScaleFactor)3, -0x28790bd4), 256); // add dword ptr [r23+r24*8-0x28790bd4], 256 IID1746 - __ addl(Address(r24, r25, (Address::ScaleFactor)1, -0x747315d4), 256); // add dword ptr [r24+r25*2-0x747315d4], 256 IID1747 - __ addl(Address(r25, r26, (Address::ScaleFactor)2, -0x69a29190), 256); // add dword ptr [r25+r26*4-0x69a29190], 256 IID1748 - __ addl(Address(r26, r27, (Address::ScaleFactor)2, -0x4ece0e05), 256); // add dword ptr [r26+r27*4-0x4ece0e05], 256 IID1749 - __ addl(Address(r27, r28, (Address::ScaleFactor)0, -0xbd64b3d), 256); // add dword ptr [r27+r28*1-0xbd64b3d], 256 IID1750 - __ addl(Address(r28, r29, (Address::ScaleFactor)0, +0x6f5a2e13), 256); // add dword ptr [r28+r29*1+0x6f5a2e13], 256 IID1751 - __ addl(Address(r29, r30, (Address::ScaleFactor)1, +0x1b1ca76b), 256); // add dword ptr [r29+r30*2+0x1b1ca76b], 256 IID1752 - __ addl(Address(r30, r31, (Address::ScaleFactor)1, +0x6c3b7bc2), 256); // add dword ptr [r30+r31*2+0x6c3b7bc2], 256 IID1753 - __ addl(Address(r31, rcx, (Address::ScaleFactor)3, +0x3c1aef04), 256); // add dword ptr [r31+rcx*8+0x3c1aef04], 256 IID1754 - __ addl(Address(rcx, rdx, (Address::ScaleFactor)2, -0x4b8e9e40), 4096); // add dword ptr [rcx+rdx*4-0x4b8e9e40], 4096 IID1755 - __ addl(Address(rdx, rbx, (Address::ScaleFactor)0, -0x470a4e9c), 4096); // add dword ptr [rdx+rbx*1-0x470a4e9c], 4096 IID1756 - __ addl(Address(rbx, +0xea80bc1), 4096); // add dword ptr [rbx+0xea80bc1], 4096 IID1757 - __ addl(Address(r8, +0x33e61c5b), 4096); // add dword ptr [r8+0x33e61c5b], 4096 IID1758 - __ addl(Address(r9, r10, (Address::ScaleFactor)2, +0x2c6df919), 4096); // add dword ptr [r9+r10*4+0x2c6df919], 4096 IID1759 - __ addl(Address(r10, r11, (Address::ScaleFactor)0, +0x44671dd3), 4096); // add dword ptr [r10+r11*1+0x44671dd3], 4096 IID1760 - __ addl(Address(r11, r12, (Address::ScaleFactor)0, -0x1b5cdef3), 4096); // add dword ptr [r11+r12*1-0x1b5cdef3], 4096 IID1761 - __ addl(Address(r12, r13, (Address::ScaleFactor)0, -0x79a79542), 4096); // add dword ptr [r12+r13*1-0x79a79542], 4096 IID1762 - __ addl(Address(r13, +0x7ebb97cc), 4096); // add dword ptr [r13+0x7ebb97cc], 4096 IID1763 - __ addl(Address(r14, r15, (Address::ScaleFactor)1, -0x54ebe04), 4096); // add dword ptr [r14+r15*2-0x54ebe04], 4096 IID1764 - __ addl(Address(r15, r16, (Address::ScaleFactor)2, +0x1e0d9358), 4096); // add dword ptr [r15+r16*4+0x1e0d9358], 4096 IID1765 - __ addl(Address(r16, r17, (Address::ScaleFactor)0, -0x4ed0cab4), 4096); // add dword ptr [r16+r17*1-0x4ed0cab4], 4096 IID1766 - __ addl(Address(r17, +0x4052c3f), 4096); // add dword ptr [r17+0x4052c3f], 4096 IID1767 - __ addl(Address(r18, -0x2bac8c3d), 4096); // add dword ptr [r18-0x2bac8c3d], 4096 IID1768 - __ addl(Address(r19, r20, (Address::ScaleFactor)2, -0x1ef81834), 4096); // add dword ptr [r19+r20*4-0x1ef81834], 4096 IID1769 - __ addl(Address(r20, r21, (Address::ScaleFactor)3, -0x7d631770), 4096); // add dword ptr [r20+r21*8-0x7d631770], 4096 IID1770 - __ addl(Address(r21, r22, (Address::ScaleFactor)1, -0x15394cbf), 4096); // add dword ptr [r21+r22*2-0x15394cbf], 4096 IID1771 - __ addl(Address(r22, r23, (Address::ScaleFactor)3, -0x2a685761), 4096); // add dword ptr [r22+r23*8-0x2a685761], 4096 IID1772 - __ addl(Address(r23, r24, (Address::ScaleFactor)2, -0x52de2a84), 4096); // add dword ptr [r23+r24*4-0x52de2a84], 4096 IID1773 - __ addl(Address(r24, r25, (Address::ScaleFactor)3, +0x7e0acaaf), 4096); // add dword ptr [r24+r25*8+0x7e0acaaf], 4096 IID1774 - __ addl(Address(r25, r26, (Address::ScaleFactor)0, -0x675a86f0), 4096); // add dword ptr [r25+r26*1-0x675a86f0], 4096 IID1775 - __ addl(Address(r26, +0x12fb8849), 4096); // add dword ptr [r26+0x12fb8849], 4096 IID1776 - __ addl(Address(r27, -0x22da69c9), 4096); // add dword ptr [r27-0x22da69c9], 4096 IID1777 - __ addl(Address(r28, r29, (Address::ScaleFactor)0, -0x4960aab), 4096); // add dword ptr [r28+r29*1-0x4960aab], 4096 IID1778 - __ addl(Address(r29, r30, (Address::ScaleFactor)0, -0x5b73cc62), 4096); // add dword ptr [r29+r30*1-0x5b73cc62], 4096 IID1779 - __ addl(Address(r30, r31, (Address::ScaleFactor)2, +0x36f46440), 4096); // add dword ptr [r30+r31*4+0x36f46440], 4096 IID1780 - __ addl(Address(r31, rcx, (Address::ScaleFactor)0, -0xf6a5879), 4096); // add dword ptr [r31+rcx*1-0xf6a5879], 4096 IID1781 - __ addl(Address(rcx, rdx, (Address::ScaleFactor)0, -0x58b83619), 65536); // add dword ptr [rcx+rdx*1-0x58b83619], 65536 IID1782 - __ addl(Address(rdx, rbx, (Address::ScaleFactor)0, +0x506c853d), 65536); // add dword ptr [rdx+rbx*1+0x506c853d], 65536 IID1783 - __ addl(Address(rbx, r8, (Address::ScaleFactor)1, -0xa90d95a), 65536); // add dword ptr [rbx+r8*2-0xa90d95a], 65536 IID1784 - __ addl(Address(r8, -0x16a9d5dd), 65536); // add dword ptr [r8-0x16a9d5dd], 65536 IID1785 - __ addl(Address(r9, r10, (Address::ScaleFactor)2, +0x5a2d3e13), 65536); // add dword ptr [r9+r10*4+0x5a2d3e13], 65536 IID1786 - __ addl(Address(r10, r11, (Address::ScaleFactor)3, +0x3cf1a507), 65536); // add dword ptr [r10+r11*8+0x3cf1a507], 65536 IID1787 - __ addl(Address(r11, +0x64082880), 65536); // add dword ptr [r11+0x64082880], 65536 IID1788 - __ addl(Address(r12, r13, (Address::ScaleFactor)1, -0x782894ed), 65536); // add dword ptr [r12+r13*2-0x782894ed], 65536 IID1789 - __ addl(Address(r13, +0x75a18ce6), 65536); // add dword ptr [r13+0x75a18ce6], 65536 IID1790 - __ addl(Address(r14, +0x588f4f38), 65536); // add dword ptr [r14+0x588f4f38], 65536 IID1791 - __ addl(Address(r15, r16, (Address::ScaleFactor)3, -0x52edb12a), 65536); // add dword ptr [r15+r16*8-0x52edb12a], 65536 IID1792 - __ addl(Address(r16, +0x6c666df6), 65536); // add dword ptr [r16+0x6c666df6], 65536 IID1793 - __ addl(Address(r17, r18, (Address::ScaleFactor)3, +0x176180e), 65536); // add dword ptr [r17+r18*8+0x176180e], 65536 IID1794 - __ addl(Address(r18, r19, (Address::ScaleFactor)1, +0x4c47baea), 65536); // add dword ptr [r18+r19*2+0x4c47baea], 65536 IID1795 - __ addl(Address(r19, r20, (Address::ScaleFactor)3, -0x778f94ec), 65536); // add dword ptr [r19+r20*8-0x778f94ec], 65536 IID1796 - __ addl(Address(r20, r21, (Address::ScaleFactor)1, +0x426226a1), 65536); // add dword ptr [r20+r21*2+0x426226a1], 65536 IID1797 - __ addl(Address(r21, r22, (Address::ScaleFactor)2, -0x3282f7d5), 65536); // add dword ptr [r21+r22*4-0x3282f7d5], 65536 IID1798 - __ addl(Address(r22, r23, (Address::ScaleFactor)0, -0x7a4a53b4), 65536); // add dword ptr [r22+r23*1-0x7a4a53b4], 65536 IID1799 - __ addl(Address(r23, r24, (Address::ScaleFactor)2, -0x2a309522), 65536); // add dword ptr [r23+r24*4-0x2a309522], 65536 IID1800 - __ addl(Address(r24, r25, (Address::ScaleFactor)0, +0x3e8fc7e8), 65536); // add dword ptr [r24+r25*1+0x3e8fc7e8], 65536 IID1801 - __ addl(Address(r25, +0x5a1b3bf5), 65536); // add dword ptr [r25+0x5a1b3bf5], 65536 IID1802 - __ addl(Address(r26, r27, (Address::ScaleFactor)0, +0x25831525), 65536); // add dword ptr [r26+r27*1+0x25831525], 65536 IID1803 - __ addl(Address(r27, +0x27251e66), 65536); // add dword ptr [r27+0x27251e66], 65536 IID1804 - __ addl(Address(r28, r29, (Address::ScaleFactor)2, -0x51295309), 65536); // add dword ptr [r28+r29*4-0x51295309], 65536 IID1805 - __ addl(Address(r29, r30, (Address::ScaleFactor)2, -0x2eaece82), 65536); // add dword ptr [r29+r30*4-0x2eaece82], 65536 IID1806 - __ addl(Address(r30, r31, (Address::ScaleFactor)1, -0x359caed5), 65536); // add dword ptr [r30+r31*2-0x359caed5], 65536 IID1807 - __ addl(Address(r31, -0x7859aee4), 65536); // add dword ptr [r31-0x7859aee4], 65536 IID1808 - __ addl(Address(rcx, rdx, (Address::ScaleFactor)3, +0x4d0b2880), 1048576); // add dword ptr [rcx+rdx*8+0x4d0b2880], 1048576 IID1809 - __ addl(Address(rdx, rbx, (Address::ScaleFactor)1, +0x731c4d6f), 1048576); // add dword ptr [rdx+rbx*2+0x731c4d6f], 1048576 IID1810 - __ addl(Address(rbx, +0x8b90620), 1048576); // add dword ptr [rbx+0x8b90620], 1048576 IID1811 - __ addl(Address(r8, r9, (Address::ScaleFactor)1, +0x77994688), 1048576); // add dword ptr [r8+r9*2+0x77994688], 1048576 IID1812 - __ addl(Address(r9, r10, (Address::ScaleFactor)2, +0x15b6a009), 1048576); // add dword ptr [r9+r10*4+0x15b6a009], 1048576 IID1813 - __ addl(Address(r10, r11, (Address::ScaleFactor)2, +0x57ff9054), 1048576); // add dword ptr [r10+r11*4+0x57ff9054], 1048576 IID1814 - __ addl(Address(r11, r12, (Address::ScaleFactor)1, -0x1c460e93), 1048576); // add dword ptr [r11+r12*2-0x1c460e93], 1048576 IID1815 - __ addl(Address(r12, +0x1ce8d49c), 1048576); // add dword ptr [r12+0x1ce8d49c], 1048576 IID1816 - __ addl(Address(r13, r14, (Address::ScaleFactor)0, +0x1c4b7e98), 1048576); // add dword ptr [r13+r14*1+0x1c4b7e98], 1048576 IID1817 - __ addl(Address(r14, r15, (Address::ScaleFactor)3, -0x68adc971), 1048576); // add dword ptr [r14+r15*8-0x68adc971], 1048576 IID1818 - __ addl(Address(r15, r16, (Address::ScaleFactor)3, +0x4c2f19c2), 1048576); // add dword ptr [r15+r16*8+0x4c2f19c2], 1048576 IID1819 - __ addl(Address(r16, r17, (Address::ScaleFactor)1, +0x5b243075), 1048576); // add dword ptr [r16+r17*2+0x5b243075], 1048576 IID1820 - __ addl(Address(r17, r18, (Address::ScaleFactor)3, -0x36f948e1), 1048576); // add dword ptr [r17+r18*8-0x36f948e1], 1048576 IID1821 - __ addl(Address(r18, r19, (Address::ScaleFactor)2, +0x71c8998d), 1048576); // add dword ptr [r18+r19*4+0x71c8998d], 1048576 IID1822 - __ addl(Address(r19, r20, (Address::ScaleFactor)1, -0x7fe7e8d5), 1048576); // add dword ptr [r19+r20*2-0x7fe7e8d5], 1048576 IID1823 - __ addl(Address(r20, r21, (Address::ScaleFactor)0, -0x68788b6d), 1048576); // add dword ptr [r20+r21*1-0x68788b6d], 1048576 IID1824 - __ addl(Address(r21, r22, (Address::ScaleFactor)1, +0x47e62ac4), 1048576); // add dword ptr [r21+r22*2+0x47e62ac4], 1048576 IID1825 - __ addl(Address(r22, r23, (Address::ScaleFactor)0, +0x337ad95e), 1048576); // add dword ptr [r22+r23*1+0x337ad95e], 1048576 IID1826 - __ addl(Address(r23, -0x26596e31), 1048576); // add dword ptr [r23-0x26596e31], 1048576 IID1827 - __ addl(Address(r24, r25, (Address::ScaleFactor)3, -0x6a9b120f), 1048576); // add dword ptr [r24+r25*8-0x6a9b120f], 1048576 IID1828 - __ addl(Address(r25, r26, (Address::ScaleFactor)1, -0x69f66cf6), 1048576); // add dword ptr [r25+r26*2-0x69f66cf6], 1048576 IID1829 - __ addl(Address(r26, r27, (Address::ScaleFactor)2, +0x166b43b7), 1048576); // add dword ptr [r26+r27*4+0x166b43b7], 1048576 IID1830 - __ addl(Address(r27, r28, (Address::ScaleFactor)1, +0x3b13cc70), 1048576); // add dword ptr [r27+r28*2+0x3b13cc70], 1048576 IID1831 - __ addl(Address(r28, +0x7541bf8f), 1048576); // add dword ptr [r28+0x7541bf8f], 1048576 IID1832 - __ addl(Address(r29, r30, (Address::ScaleFactor)3, -0x4ce9160c), 1048576); // add dword ptr [r29+r30*8-0x4ce9160c], 1048576 IID1833 - __ addl(Address(r30, r31, (Address::ScaleFactor)3, +0x7dc309b5), 1048576); // add dword ptr [r30+r31*8+0x7dc309b5], 1048576 IID1834 - __ addl(Address(r31, rcx, (Address::ScaleFactor)1, -0x1d761a1d), 1048576); // add dword ptr [r31+rcx*2-0x1d761a1d], 1048576 IID1835 - __ addl(Address(rcx, rdx, (Address::ScaleFactor)1, +0x18330950), 16777216); // add dword ptr [rcx+rdx*2+0x18330950], 16777216 IID1836 - __ addl(Address(rdx, rbx, (Address::ScaleFactor)0, -0x14b31279), 16777216); // add dword ptr [rdx+rbx*1-0x14b31279], 16777216 IID1837 - __ addl(Address(rbx, r8, (Address::ScaleFactor)2, -0x7268ef7a), 16777216); // add dword ptr [rbx+r8*4-0x7268ef7a], 16777216 IID1838 - __ addl(Address(r8, r9, (Address::ScaleFactor)1, +0x3fef065b), 16777216); // add dword ptr [r8+r9*2+0x3fef065b], 16777216 IID1839 - __ addl(Address(r9, r10, (Address::ScaleFactor)3, -0x374242df), 16777216); // add dword ptr [r9+r10*8-0x374242df], 16777216 IID1840 - __ addl(Address(r10, r11, (Address::ScaleFactor)0, -0x6358e81b), 16777216); // add dword ptr [r10+r11*1-0x6358e81b], 16777216 IID1841 - __ addl(Address(r11, +0x432943b8), 16777216); // add dword ptr [r11+0x432943b8], 16777216 IID1842 - __ addl(Address(r12, r13, (Address::ScaleFactor)0, +0x5aa0de65), 16777216); // add dword ptr [r12+r13*1+0x5aa0de65], 16777216 IID1843 - __ addl(Address(r13, r14, (Address::ScaleFactor)0, -0x495e8e48), 16777216); // add dword ptr [r13+r14*1-0x495e8e48], 16777216 IID1844 - __ addl(Address(r14, r15, (Address::ScaleFactor)3, -0x4668780a), 16777216); // add dword ptr [r14+r15*8-0x4668780a], 16777216 IID1845 - __ addl(Address(r15, r16, (Address::ScaleFactor)1, +0x4326e30d), 16777216); // add dword ptr [r15+r16*2+0x4326e30d], 16777216 IID1846 - __ addl(Address(r16, r17, (Address::ScaleFactor)1, -0x5f48b9d4), 16777216); // add dword ptr [r16+r17*2-0x5f48b9d4], 16777216 IID1847 - __ addl(Address(r17, r18, (Address::ScaleFactor)1, -0x48e6acfd), 16777216); // add dword ptr [r17+r18*2-0x48e6acfd], 16777216 IID1848 - __ addl(Address(r18, r19, (Address::ScaleFactor)2, -0x78396262), 16777216); // add dword ptr [r18+r19*4-0x78396262], 16777216 IID1849 - __ addl(Address(r19, r20, (Address::ScaleFactor)1, +0x1323d59f), 16777216); // add dword ptr [r19+r20*2+0x1323d59f], 16777216 IID1850 - __ addl(Address(r20, r21, (Address::ScaleFactor)2, +0x7c431d91), 16777216); // add dword ptr [r20+r21*4+0x7c431d91], 16777216 IID1851 - __ addl(Address(r21, +0x2c943f3b), 16777216); // add dword ptr [r21+0x2c943f3b], 16777216 IID1852 - __ addl(Address(r22, r23, (Address::ScaleFactor)2, +0x704aab25), 16777216); // add dword ptr [r22+r23*4+0x704aab25], 16777216 IID1853 - __ addl(Address(r23, r24, (Address::ScaleFactor)3, -0x75b421fe), 16777216); // add dword ptr [r23+r24*8-0x75b421fe], 16777216 IID1854 - __ addl(Address(r24, r25, (Address::ScaleFactor)1, +0x2352b21d), 16777216); // add dword ptr [r24+r25*2+0x2352b21d], 16777216 IID1855 - __ addl(Address(r25, r26, (Address::ScaleFactor)1, -0x3c186622), 16777216); // add dword ptr [r25+r26*2-0x3c186622], 16777216 IID1856 - __ addl(Address(r26, +0x430d2910), 16777216); // add dword ptr [r26+0x430d2910], 16777216 IID1857 - __ addl(Address(r27, r28, (Address::ScaleFactor)3, -0x1ef2e367), 16777216); // add dword ptr [r27+r28*8-0x1ef2e367], 16777216 IID1858 - __ addl(Address(r28, +0x2c26be32), 16777216); // add dword ptr [r28+0x2c26be32], 16777216 IID1859 - __ addl(Address(r29, r30, (Address::ScaleFactor)2, +0x42bc02f7), 16777216); // add dword ptr [r29+r30*4+0x42bc02f7], 16777216 IID1860 - __ addl(Address(r30, r31, (Address::ScaleFactor)3, +0x5e820b84), 16777216); // add dword ptr [r30+r31*8+0x5e820b84], 16777216 IID1861 - __ addl(Address(r31, rcx, (Address::ScaleFactor)0, -0x463446c), 16777216); // add dword ptr [r31+rcx*1-0x463446c], 16777216 IID1862 - __ addl(Address(rcx, +0x75eb44df), 268435456); // add dword ptr [rcx+0x75eb44df], 268435456 IID1863 - __ addl(Address(rdx, rbx, (Address::ScaleFactor)3, +0x2ffae108), 268435456); // add dword ptr [rdx+rbx*8+0x2ffae108], 268435456 IID1864 - __ addl(Address(rbx, r8, (Address::ScaleFactor)0, -0x2d1e902d), 268435456); // add dword ptr [rbx+r8*1-0x2d1e902d], 268435456 IID1865 - __ addl(Address(r8, +0x716dc2f7), 268435456); // add dword ptr [r8+0x716dc2f7], 268435456 IID1866 - __ addl(Address(r9, -0x6b1bcddd), 268435456); // add dword ptr [r9-0x6b1bcddd], 268435456 IID1867 - __ addl(Address(r10, +0x3f89f422), 268435456); // add dword ptr [r10+0x3f89f422], 268435456 IID1868 - __ addl(Address(r11, r12, (Address::ScaleFactor)0, -0x5ce4d25), 268435456); // add dword ptr [r11+r12*1-0x5ce4d25], 268435456 IID1869 - __ addl(Address(r12, r13, (Address::ScaleFactor)2, -0x285fde6f), 268435456); // add dword ptr [r12+r13*4-0x285fde6f], 268435456 IID1870 - __ addl(Address(r13, r14, (Address::ScaleFactor)1, +0x3d29e902), 268435456); // add dword ptr [r13+r14*2+0x3d29e902], 268435456 IID1871 - __ addl(Address(r14, r15, (Address::ScaleFactor)2, -0x5b1fc87b), 268435456); // add dword ptr [r14+r15*4-0x5b1fc87b], 268435456 IID1872 - __ addl(Address(r15, r16, (Address::ScaleFactor)0, +0x78d131e7), 268435456); // add dword ptr [r15+r16*1+0x78d131e7], 268435456 IID1873 - __ addl(Address(r16, r17, (Address::ScaleFactor)1, -0x1c56f2c1), 268435456); // add dword ptr [r16+r17*2-0x1c56f2c1], 268435456 IID1874 - __ addl(Address(r17, r18, (Address::ScaleFactor)1, -0x3b93c01b), 268435456); // add dword ptr [r17+r18*2-0x3b93c01b], 268435456 IID1875 - __ addl(Address(r18, r19, (Address::ScaleFactor)0, +0x42a47273), 268435456); // add dword ptr [r18+r19*1+0x42a47273], 268435456 IID1876 - __ addl(Address(r19, r20, (Address::ScaleFactor)3, -0x7a4a7408), 268435456); // add dword ptr [r19+r20*8-0x7a4a7408], 268435456 IID1877 - __ addl(Address(r20, r21, (Address::ScaleFactor)0, +0x3042255a), 268435456); // add dword ptr [r20+r21*1+0x3042255a], 268435456 IID1878 - __ addl(Address(r21, r22, (Address::ScaleFactor)3, +0x19ca69db), 268435456); // add dword ptr [r21+r22*8+0x19ca69db], 268435456 IID1879 - __ addl(Address(r22, r23, (Address::ScaleFactor)0, +0x19111553), 268435456); // add dword ptr [r22+r23*1+0x19111553], 268435456 IID1880 - __ addl(Address(r23, r24, (Address::ScaleFactor)1, -0x70107e8f), 268435456); // add dword ptr [r23+r24*2-0x70107e8f], 268435456 IID1881 - __ addl(Address(r24, r25, (Address::ScaleFactor)2, +0x696f86f), 268435456); // add dword ptr [r24+r25*4+0x696f86f], 268435456 IID1882 - __ addl(Address(r25, +0x1cce9844), 268435456); // add dword ptr [r25+0x1cce9844], 268435456 IID1883 - __ addl(Address(r26, r27, (Address::ScaleFactor)1, +0x76fb2d1a), 268435456); // add dword ptr [r26+r27*2+0x76fb2d1a], 268435456 IID1884 - __ addl(Address(r27, r28, (Address::ScaleFactor)2, -0x4234004), 268435456); // add dword ptr [r27+r28*4-0x4234004], 268435456 IID1885 - __ addl(Address(r28, r29, (Address::ScaleFactor)3, +0x657a58e9), 268435456); // add dword ptr [r28+r29*8+0x657a58e9], 268435456 IID1886 - __ addl(Address(r29, +0x1b084016), 268435456); // add dword ptr [r29+0x1b084016], 268435456 IID1887 - __ addl(Address(r30, r31, (Address::ScaleFactor)1, +0x733ccb6b), 268435456); // add dword ptr [r30+r31*2+0x733ccb6b], 268435456 IID1888 - __ addl(Address(r31, rcx, (Address::ScaleFactor)1, +0x7471f498), 268435456); // add dword ptr [r31+rcx*2+0x7471f498], 268435456 IID1889 -#endif // _LP64 - __ cmpb(Address(rcx, rdx, (Address::ScaleFactor)3, +0x517b0a26), 1); // cmp byte ptr [rcx+rdx*8+0x517b0a26], 1 IID1890 - __ cmpb(Address(rdx, rbx, (Address::ScaleFactor)0, +0x385bed1f), 1); // cmp byte ptr [rdx+rbx*1+0x385bed1f], 1 IID1891 -#ifdef _LP64 - __ cmpb(Address(rbx, r8, (Address::ScaleFactor)1, +0x43ca8177), 1); // cmp byte ptr [rbx+r8*2+0x43ca8177], 1 IID1892 - __ cmpb(Address(r8, r9, (Address::ScaleFactor)2, +0x6d5bdd87), 1); // cmp byte ptr [r8+r9*4+0x6d5bdd87], 1 IID1893 - __ cmpb(Address(r9, r10, (Address::ScaleFactor)3, +0x633b10a4), 1); // cmp byte ptr [r9+r10*8+0x633b10a4], 1 IID1894 - __ cmpb(Address(r10, r11, (Address::ScaleFactor)1, -0x431426f8), 1); // cmp byte ptr [r10+r11*2-0x431426f8], 1 IID1895 - __ cmpb(Address(r11, r12, (Address::ScaleFactor)2, -0x4cde473a), 1); // cmp byte ptr [r11+r12*4-0x4cde473a], 1 IID1896 - __ cmpb(Address(r12, r13, (Address::ScaleFactor)3, +0x7708eb66), 1); // cmp byte ptr [r12+r13*8+0x7708eb66], 1 IID1897 - __ cmpb(Address(r13, r14, (Address::ScaleFactor)2, +0x2863b686), 1); // cmp byte ptr [r13+r14*4+0x2863b686], 1 IID1898 - __ cmpb(Address(r14, r15, (Address::ScaleFactor)0, -0x457323da), 1); // cmp byte ptr [r14+r15*1-0x457323da], 1 IID1899 - __ cmpb(Address(r15, r16, (Address::ScaleFactor)3, +0x50328034), 1); // cmp byte ptr [r15+r16*8+0x50328034], 1 IID1900 - __ cmpb(Address(r16, r17, (Address::ScaleFactor)1, +0x2171c1a), 1); // cmp byte ptr [r16+r17*2+0x2171c1a], 1 IID1901 - __ cmpb(Address(r17, r18, (Address::ScaleFactor)2, +0x2aeba926), 1); // cmp byte ptr [r17+r18*4+0x2aeba926], 1 IID1902 - __ cmpb(Address(r18, r19, (Address::ScaleFactor)2, +0x5282fa05), 1); // cmp byte ptr [r18+r19*4+0x5282fa05], 1 IID1903 - __ cmpb(Address(r19, r20, (Address::ScaleFactor)0, -0x62071cf0), 1); // cmp byte ptr [r19+r20*1-0x62071cf0], 1 IID1904 - __ cmpb(Address(r20, r21, (Address::ScaleFactor)1, -0x60081d1), 1); // cmp byte ptr [r20+r21*2-0x60081d1], 1 IID1905 - __ cmpb(Address(r21, r22, (Address::ScaleFactor)3, +0x5f75b68e), 1); // cmp byte ptr [r21+r22*8+0x5f75b68e], 1 IID1906 - __ cmpb(Address(r22, r23, (Address::ScaleFactor)3, +0x44305835), 1); // cmp byte ptr [r22+r23*8+0x44305835], 1 IID1907 - __ cmpb(Address(r23, r24, (Address::ScaleFactor)1, -0xf4b4303), 1); // cmp byte ptr [r23+r24*2-0xf4b4303], 1 IID1908 - __ cmpb(Address(r24, r25, (Address::ScaleFactor)3, +0x56013f84), 1); // cmp byte ptr [r24+r25*8+0x56013f84], 1 IID1909 - __ cmpb(Address(r25, r26, (Address::ScaleFactor)3, +0x3c6593e7), 1); // cmp byte ptr [r25+r26*8+0x3c6593e7], 1 IID1910 - __ cmpb(Address(r26, r27, (Address::ScaleFactor)2, +0x69a6484e), 1); // cmp byte ptr [r26+r27*4+0x69a6484e], 1 IID1911 - __ cmpb(Address(r27, r28, (Address::ScaleFactor)0, +0x62012d31), 1); // cmp byte ptr [r27+r28*1+0x62012d31], 1 IID1912 - __ cmpb(Address(r28, r29, (Address::ScaleFactor)3, +0x1e5aea4d), 1); // cmp byte ptr [r28+r29*8+0x1e5aea4d], 1 IID1913 - __ cmpb(Address(r29, r30, (Address::ScaleFactor)2, -0x4b82de58), 1); // cmp byte ptr [r29+r30*4-0x4b82de58], 1 IID1914 - __ cmpb(Address(r30, +0x6b9bcd65), 1); // cmp byte ptr [r30+0x6b9bcd65], 1 IID1915 - __ cmpb(Address(r31, rcx, (Address::ScaleFactor)3, -0x6f577ebe), 1); // cmp byte ptr [r31+rcx*8-0x6f577ebe], 1 IID1916 - __ cmpb(Address(rcx, +0x1faeab01), 4); // cmp byte ptr [rcx+0x1faeab01], 4 IID1917 - __ cmpb(Address(rdx, +0x691c8a67), 4); // cmp byte ptr [rdx+0x691c8a67], 4 IID1918 - __ cmpb(Address(rbx, -0xa94a4b8), 4); // cmp byte ptr [rbx-0xa94a4b8], 4 IID1919 - __ cmpb(Address(r8, -0x2f541f4d), 4); // cmp byte ptr [r8-0x2f541f4d], 4 IID1920 - __ cmpb(Address(r9, r10, (Address::ScaleFactor)2, +0x483290e6), 4); // cmp byte ptr [r9+r10*4+0x483290e6], 4 IID1921 - __ cmpb(Address(r10, r11, (Address::ScaleFactor)3, -0x3cc50b79), 4); // cmp byte ptr [r10+r11*8-0x3cc50b79], 4 IID1922 - __ cmpb(Address(r11, r12, (Address::ScaleFactor)3, +0x4e2b3555), 4); // cmp byte ptr [r11+r12*8+0x4e2b3555], 4 IID1923 - __ cmpb(Address(r12, r13, (Address::ScaleFactor)3, +0x3b1231a2), 4); // cmp byte ptr [r12+r13*8+0x3b1231a2], 4 IID1924 - __ cmpb(Address(r13, r14, (Address::ScaleFactor)0, +0xe30d431), 4); // cmp byte ptr [r13+r14*1+0xe30d431], 4 IID1925 - __ cmpb(Address(r14, r15, (Address::ScaleFactor)0, +0x44f4b700), 4); // cmp byte ptr [r14+r15*1+0x44f4b700], 4 IID1926 - __ cmpb(Address(r15, r16, (Address::ScaleFactor)2, +0x58a2c775), 4); // cmp byte ptr [r15+r16*4+0x58a2c775], 4 IID1927 - __ cmpb(Address(r16, r17, (Address::ScaleFactor)3, +0x1fdf78f4), 4); // cmp byte ptr [r16+r17*8+0x1fdf78f4], 4 IID1928 - __ cmpb(Address(r17, -0x7f92249c), 4); // cmp byte ptr [r17-0x7f92249c], 4 IID1929 - __ cmpb(Address(r18, r19, (Address::ScaleFactor)3, -0x55029ed6), 4); // cmp byte ptr [r18+r19*8-0x55029ed6], 4 IID1930 - __ cmpb(Address(r19, -0x29029cd9), 4); // cmp byte ptr [r19-0x29029cd9], 4 IID1931 - __ cmpb(Address(r20, +0x176bd1a8), 4); // cmp byte ptr [r20+0x176bd1a8], 4 IID1932 - __ cmpb(Address(r21, +0x2a92aa89), 4); // cmp byte ptr [r21+0x2a92aa89], 4 IID1933 - __ cmpb(Address(r22, r23, (Address::ScaleFactor)3, -0x62c125e1), 4); // cmp byte ptr [r22+r23*8-0x62c125e1], 4 IID1934 - __ cmpb(Address(r23, r24, (Address::ScaleFactor)2, -0x5df6b040), 4); // cmp byte ptr [r23+r24*4-0x5df6b040], 4 IID1935 - __ cmpb(Address(r24, +0x4ef2b8d5), 4); // cmp byte ptr [r24+0x4ef2b8d5], 4 IID1936 - __ cmpb(Address(r25, r26, (Address::ScaleFactor)2, -0x79ae1a0b), 4); // cmp byte ptr [r25+r26*4-0x79ae1a0b], 4 IID1937 - __ cmpb(Address(r26, r27, (Address::ScaleFactor)0, +0x57580df3), 4); // cmp byte ptr [r26+r27*1+0x57580df3], 4 IID1938 - __ cmpb(Address(r27, r28, (Address::ScaleFactor)1, +0x524123f7), 4); // cmp byte ptr [r27+r28*2+0x524123f7], 4 IID1939 - __ cmpb(Address(r28, -0x3c14d9ec), 4); // cmp byte ptr [r28-0x3c14d9ec], 4 IID1940 - __ cmpb(Address(r29, r30, (Address::ScaleFactor)1, +0x4df650f9), 4); // cmp byte ptr [r29+r30*2+0x4df650f9], 4 IID1941 - __ cmpb(Address(r30, r31, (Address::ScaleFactor)2, +0x6179d2b7), 4); // cmp byte ptr [r30+r31*4+0x6179d2b7], 4 IID1942 - __ cmpb(Address(r31, rcx, (Address::ScaleFactor)0, +0x17801655), 4); // cmp byte ptr [r31+rcx*1+0x17801655], 4 IID1943 - __ cmpb(Address(rcx, rdx, (Address::ScaleFactor)0, +0x63ca7e52), 16); // cmp byte ptr [rcx+rdx*1+0x63ca7e52], 16 IID1944 - __ cmpb(Address(rdx, rbx, (Address::ScaleFactor)3, -0x1de6b586), 16); // cmp byte ptr [rdx+rbx*8-0x1de6b586], 16 IID1945 - __ cmpb(Address(rbx, r8, (Address::ScaleFactor)0, +0x3d184881), 16); // cmp byte ptr [rbx+r8*1+0x3d184881], 16 IID1946 - __ cmpb(Address(r8, r9, (Address::ScaleFactor)2, +0x3a106fee), 16); // cmp byte ptr [r8+r9*4+0x3a106fee], 16 IID1947 - __ cmpb(Address(r9, r10, (Address::ScaleFactor)2, +0x2cc4e336), 16); // cmp byte ptr [r9+r10*4+0x2cc4e336], 16 IID1948 - __ cmpb(Address(r10, +0x683b10e1), 16); // cmp byte ptr [r10+0x683b10e1], 16 IID1949 - __ cmpb(Address(r11, r12, (Address::ScaleFactor)2, -0x6e91a9b4), 16); // cmp byte ptr [r11+r12*4-0x6e91a9b4], 16 IID1950 - __ cmpb(Address(r12, r13, (Address::ScaleFactor)0, -0x2f36977a), 16); // cmp byte ptr [r12+r13*1-0x2f36977a], 16 IID1951 - __ cmpb(Address(r13, r14, (Address::ScaleFactor)1, +0x59962fd4), 16); // cmp byte ptr [r13+r14*2+0x59962fd4], 16 IID1952 - __ cmpb(Address(r14, r15, (Address::ScaleFactor)3, -0x593334b2), 16); // cmp byte ptr [r14+r15*8-0x593334b2], 16 IID1953 - __ cmpb(Address(r15, r16, (Address::ScaleFactor)0, +0x326bbc6c), 16); // cmp byte ptr [r15+r16*1+0x326bbc6c], 16 IID1954 - __ cmpb(Address(r16, r17, (Address::ScaleFactor)0, +0x48d8487f), 16); // cmp byte ptr [r16+r17*1+0x48d8487f], 16 IID1955 - __ cmpb(Address(r17, r18, (Address::ScaleFactor)1, -0x57c5b915), 16); // cmp byte ptr [r17+r18*2-0x57c5b915], 16 IID1956 - __ cmpb(Address(r18, r19, (Address::ScaleFactor)1, -0x40076d3), 16); // cmp byte ptr [r18+r19*2-0x40076d3], 16 IID1957 - __ cmpb(Address(r19, r20, (Address::ScaleFactor)2, +0x5edbbb12), 16); // cmp byte ptr [r19+r20*4+0x5edbbb12], 16 IID1958 - __ cmpb(Address(r20, r21, (Address::ScaleFactor)3, -0x343b5e52), 16); // cmp byte ptr [r20+r21*8-0x343b5e52], 16 IID1959 - __ cmpb(Address(r21, r22, (Address::ScaleFactor)3, +0x696d21b0), 16); // cmp byte ptr [r21+r22*8+0x696d21b0], 16 IID1960 - __ cmpb(Address(r22, r23, (Address::ScaleFactor)0, +0x3b59f00c), 16); // cmp byte ptr [r22+r23*1+0x3b59f00c], 16 IID1961 - __ cmpb(Address(r23, r24, (Address::ScaleFactor)1, +0x4f34ea67), 16); // cmp byte ptr [r23+r24*2+0x4f34ea67], 16 IID1962 - __ cmpb(Address(r24, -0x5e20bf1e), 16); // cmp byte ptr [r24-0x5e20bf1e], 16 IID1963 - __ cmpb(Address(r25, -0x3129c09d), 16); // cmp byte ptr [r25-0x3129c09d], 16 IID1964 - __ cmpb(Address(r26, r27, (Address::ScaleFactor)2, +0x3b4dd26c), 16); // cmp byte ptr [r26+r27*4+0x3b4dd26c], 16 IID1965 - __ cmpb(Address(r27, r28, (Address::ScaleFactor)0, -0x3115e2f3), 16); // cmp byte ptr [r27+r28*1-0x3115e2f3], 16 IID1966 - __ cmpb(Address(r28, r29, (Address::ScaleFactor)3, -0x1c5192bc), 16); // cmp byte ptr [r28+r29*8-0x1c5192bc], 16 IID1967 - __ cmpb(Address(r29, r30, (Address::ScaleFactor)2, -0x714a1a72), 16); // cmp byte ptr [r29+r30*4-0x714a1a72], 16 IID1968 - __ cmpb(Address(r30, -0x5e52a070), 16); // cmp byte ptr [r30-0x5e52a070], 16 IID1969 - __ cmpb(Address(r31, rcx, (Address::ScaleFactor)3, -0x236aac15), 16); // cmp byte ptr [r31+rcx*8-0x236aac15], 16 IID1970 - __ cmpb(Address(rcx, rdx, (Address::ScaleFactor)3, -0xd96be1), 64); // cmp byte ptr [rcx+rdx*8-0xd96be1], 64 IID1971 - __ cmpb(Address(rdx, rbx, (Address::ScaleFactor)2, +0x2cb5b962), 64); // cmp byte ptr [rdx+rbx*4+0x2cb5b962], 64 IID1972 - __ cmpb(Address(rbx, r8, (Address::ScaleFactor)2, -0x5df7f587), 64); // cmp byte ptr [rbx+r8*4-0x5df7f587], 64 IID1973 - __ cmpb(Address(r8, r9, (Address::ScaleFactor)0, -0x181ae285), 64); // cmp byte ptr [r8+r9*1-0x181ae285], 64 IID1974 - __ cmpb(Address(r9, r10, (Address::ScaleFactor)2, -0x67b710d3), 64); // cmp byte ptr [r9+r10*4-0x67b710d3], 64 IID1975 - __ cmpb(Address(r10, r11, (Address::ScaleFactor)1, +0x34102ee7), 64); // cmp byte ptr [r10+r11*2+0x34102ee7], 64 IID1976 - __ cmpb(Address(r11, r12, (Address::ScaleFactor)1, +0x70663bc9), 64); // cmp byte ptr [r11+r12*2+0x70663bc9], 64 IID1977 - __ cmpb(Address(r12, r13, (Address::ScaleFactor)3, +0x282a1a23), 64); // cmp byte ptr [r12+r13*8+0x282a1a23], 64 IID1978 - __ cmpb(Address(r13, r14, (Address::ScaleFactor)3, +0x534e1a97), 64); // cmp byte ptr [r13+r14*8+0x534e1a97], 64 IID1979 - __ cmpb(Address(r14, r15, (Address::ScaleFactor)1, -0x2d5832d0), 64); // cmp byte ptr [r14+r15*2-0x2d5832d0], 64 IID1980 - __ cmpb(Address(r15, r16, (Address::ScaleFactor)0, -0x1244eb95), 64); // cmp byte ptr [r15+r16*1-0x1244eb95], 64 IID1981 - __ cmpb(Address(r16, r17, (Address::ScaleFactor)0, -0x7a15c9ee), 64); // cmp byte ptr [r16+r17*1-0x7a15c9ee], 64 IID1982 - __ cmpb(Address(r17, r18, (Address::ScaleFactor)0, -0x9d813cc), 64); // cmp byte ptr [r17+r18*1-0x9d813cc], 64 IID1983 - __ cmpb(Address(r18, r19, (Address::ScaleFactor)2, -0x112f078), 64); // cmp byte ptr [r18+r19*4-0x112f078], 64 IID1984 - __ cmpb(Address(r19, r20, (Address::ScaleFactor)1, -0x21a4f1d1), 64); // cmp byte ptr [r19+r20*2-0x21a4f1d1], 64 IID1985 - __ cmpb(Address(r20, r21, (Address::ScaleFactor)3, +0x780bd422), 64); // cmp byte ptr [r20+r21*8+0x780bd422], 64 IID1986 - __ cmpb(Address(r21, r22, (Address::ScaleFactor)1, +0x1aa7301d), 64); // cmp byte ptr [r21+r22*2+0x1aa7301d], 64 IID1987 - __ cmpb(Address(r22, r23, (Address::ScaleFactor)3, +0x70ec8d82), 64); // cmp byte ptr [r22+r23*8+0x70ec8d82], 64 IID1988 - __ cmpb(Address(r23, r24, (Address::ScaleFactor)0, -0x55e94195), 64); // cmp byte ptr [r23+r24*1-0x55e94195], 64 IID1989 - __ cmpb(Address(r24, r25, (Address::ScaleFactor)2, -0x58d2bb78), 64); // cmp byte ptr [r24+r25*4-0x58d2bb78], 64 IID1990 - __ cmpb(Address(r25, r26, (Address::ScaleFactor)2, -0x51f824a4), 64); // cmp byte ptr [r25+r26*4-0x51f824a4], 64 IID1991 - __ cmpb(Address(r26, r27, (Address::ScaleFactor)3, -0x5407a0a0), 64); // cmp byte ptr [r26+r27*8-0x5407a0a0], 64 IID1992 - __ cmpb(Address(r27, r28, (Address::ScaleFactor)3, +0x6cab9820), 64); // cmp byte ptr [r27+r28*8+0x6cab9820], 64 IID1993 - __ cmpb(Address(r28, r29, (Address::ScaleFactor)3, -0x7679b6fa), 64); // cmp byte ptr [r28+r29*8-0x7679b6fa], 64 IID1994 - __ cmpb(Address(r29, r30, (Address::ScaleFactor)0, +0x583f662a), 64); // cmp byte ptr [r29+r30*1+0x583f662a], 64 IID1995 - __ cmpb(Address(r30, +0x572c7355), 64); // cmp byte ptr [r30+0x572c7355], 64 IID1996 - __ cmpb(Address(r31, rcx, (Address::ScaleFactor)0, +0x5a6ab218), 64); // cmp byte ptr [r31+rcx*1+0x5a6ab218], 64 IID1997 -#endif // _LP64 - __ cmpw(Address(rcx, -0xebb816f), 256); // cmp word ptr [rcx-0xebb816f], 256 IID1998 - __ cmpw(Address(rdx, rbx, (Address::ScaleFactor)0, +0x60a7cb70), 256); // cmp word ptr [rdx+rbx*1+0x60a7cb70], 256 IID1999 -#ifdef _LP64 - __ cmpw(Address(rbx, +0x33fa8045), 256); // cmp word ptr [rbx+0x33fa8045], 256 IID2000 - __ cmpw(Address(r8, r9, (Address::ScaleFactor)3, +0x748a0edd), 256); // cmp word ptr [r8+r9*8+0x748a0edd], 256 IID2001 - __ cmpw(Address(r9, r10, (Address::ScaleFactor)0, +0x38830eca), 256); // cmp word ptr [r9+r10*1+0x38830eca], 256 IID2002 - __ cmpw(Address(r10, r11, (Address::ScaleFactor)3, -0x63d989d9), 256); // cmp word ptr [r10+r11*8-0x63d989d9], 256 IID2003 - __ cmpw(Address(r11, r12, (Address::ScaleFactor)1, -0x1e4a7318), 256); // cmp word ptr [r11+r12*2-0x1e4a7318], 256 IID2004 - __ cmpw(Address(r12, r13, (Address::ScaleFactor)2, -0x93fb8b4), 256); // cmp word ptr [r12+r13*4-0x93fb8b4], 256 IID2005 - __ cmpw(Address(r13, r14, (Address::ScaleFactor)3, +0x165ad89d), 256); // cmp word ptr [r13+r14*8+0x165ad89d], 256 IID2006 - __ cmpw(Address(r14, r15, (Address::ScaleFactor)0, -0x29acc7dc), 256); // cmp word ptr [r14+r15*1-0x29acc7dc], 256 IID2007 - __ cmpw(Address(r15, -0x61d2d31f), 256); // cmp word ptr [r15-0x61d2d31f], 256 IID2008 - __ cmpw(Address(r16, r17, (Address::ScaleFactor)3, -0x2513192), 256); // cmp word ptr [r16+r17*8-0x2513192], 256 IID2009 - __ cmpw(Address(r17, r18, (Address::ScaleFactor)3, -0x3088c90d), 256); // cmp word ptr [r17+r18*8-0x3088c90d], 256 IID2010 - __ cmpw(Address(r18, r19, (Address::ScaleFactor)3, -0x5700a61d), 256); // cmp word ptr [r18+r19*8-0x5700a61d], 256 IID2011 - __ cmpw(Address(r19, r20, (Address::ScaleFactor)3, -0x130dfb41), 256); // cmp word ptr [r19+r20*8-0x130dfb41], 256 IID2012 - __ cmpw(Address(r20, +0x5736e4bb), 256); // cmp word ptr [r20+0x5736e4bb], 256 IID2013 - __ cmpw(Address(r21, r22, (Address::ScaleFactor)2, +0x42228b44), 256); // cmp word ptr [r21+r22*4+0x42228b44], 256 IID2014 - __ cmpw(Address(r22, r23, (Address::ScaleFactor)0, +0x2ed645c4), 256); // cmp word ptr [r22+r23*1+0x2ed645c4], 256 IID2015 - __ cmpw(Address(r23, r24, (Address::ScaleFactor)0, +0x15c40fc2), 256); // cmp word ptr [r23+r24*1+0x15c40fc2], 256 IID2016 - __ cmpw(Address(r24, r25, (Address::ScaleFactor)2, -0x76ce6b9f), 256); // cmp word ptr [r24+r25*4-0x76ce6b9f], 256 IID2017 - __ cmpw(Address(r25, +0x414e047c), 256); // cmp word ptr [r25+0x414e047c], 256 IID2018 - __ cmpw(Address(r26, r27, (Address::ScaleFactor)2, +0xf823afb), 256); // cmp word ptr [r26+r27*4+0xf823afb], 256 IID2019 - __ cmpw(Address(r27, r28, (Address::ScaleFactor)1, -0x5bbdcd3d), 256); // cmp word ptr [r27+r28*2-0x5bbdcd3d], 256 IID2020 - __ cmpw(Address(r28, r29, (Address::ScaleFactor)2, +0x2ece646f), 256); // cmp word ptr [r28+r29*4+0x2ece646f], 256 IID2021 - __ cmpw(Address(r29, r30, (Address::ScaleFactor)2, +0x537a22bc), 256); // cmp word ptr [r29+r30*4+0x537a22bc], 256 IID2022 - __ cmpw(Address(r30, r31, (Address::ScaleFactor)0, +0x1124a748), 256); // cmp word ptr [r30+r31*1+0x1124a748], 256 IID2023 - __ cmpw(Address(r31, rcx, (Address::ScaleFactor)0, +0x7950d761), 256); // cmp word ptr [r31+rcx*1+0x7950d761], 256 IID2024 - __ cmpw(Address(rcx, rdx, (Address::ScaleFactor)3, -0x3bddc7c1), 1024); // cmp word ptr [rcx+rdx*8-0x3bddc7c1], 1024 IID2025 - __ cmpw(Address(rdx, rbx, (Address::ScaleFactor)1, -0x6d204c22), 1024); // cmp word ptr [rdx+rbx*2-0x6d204c22], 1024 IID2026 - __ cmpw(Address(rbx, r8, (Address::ScaleFactor)0, +0xbab6e0d), 1024); // cmp word ptr [rbx+r8*1+0xbab6e0d], 1024 IID2027 - __ cmpw(Address(r8, r9, (Address::ScaleFactor)1, -0x8c08b47), 1024); // cmp word ptr [r8+r9*2-0x8c08b47], 1024 IID2028 - __ cmpw(Address(r9, r10, (Address::ScaleFactor)3, +0x48683ca7), 1024); // cmp word ptr [r9+r10*8+0x48683ca7], 1024 IID2029 - __ cmpw(Address(r10, r11, (Address::ScaleFactor)1, -0x541f19db), 1024); // cmp word ptr [r10+r11*2-0x541f19db], 1024 IID2030 - __ cmpw(Address(r11, r12, (Address::ScaleFactor)3, -0x1d826f95), 1024); // cmp word ptr [r11+r12*8-0x1d826f95], 1024 IID2031 - __ cmpw(Address(r12, r13, (Address::ScaleFactor)3, +0x17788323), 1024); // cmp word ptr [r12+r13*8+0x17788323], 1024 IID2032 - __ cmpw(Address(r13, +0x7a4f7262), 1024); // cmp word ptr [r13+0x7a4f7262], 1024 IID2033 - __ cmpw(Address(r14, r15, (Address::ScaleFactor)0, +0x5f6ef0e0), 1024); // cmp word ptr [r14+r15*1+0x5f6ef0e0], 1024 IID2034 - __ cmpw(Address(r15, r16, (Address::ScaleFactor)1, +0x3bc796ff), 1024); // cmp word ptr [r15+r16*2+0x3bc796ff], 1024 IID2035 - __ cmpw(Address(r16, r17, (Address::ScaleFactor)3, -0x1615c488), 1024); // cmp word ptr [r16+r17*8-0x1615c488], 1024 IID2036 - __ cmpw(Address(r17, r18, (Address::ScaleFactor)3, +0x324da99f), 1024); // cmp word ptr [r17+r18*8+0x324da99f], 1024 IID2037 - __ cmpw(Address(r18, r19, (Address::ScaleFactor)1, -0x77fc73f0), 1024); // cmp word ptr [r18+r19*2-0x77fc73f0], 1024 IID2038 - __ cmpw(Address(r19, r20, (Address::ScaleFactor)1, +0x71d28355), 1024); // cmp word ptr [r19+r20*2+0x71d28355], 1024 IID2039 - __ cmpw(Address(r20, r21, (Address::ScaleFactor)1, -0x65d7afbe), 1024); // cmp word ptr [r20+r21*2-0x65d7afbe], 1024 IID2040 - __ cmpw(Address(r21, r22, (Address::ScaleFactor)3, -0x437ffcd5), 1024); // cmp word ptr [r21+r22*8-0x437ffcd5], 1024 IID2041 - __ cmpw(Address(r22, r23, (Address::ScaleFactor)3, -0x14428066), 1024); // cmp word ptr [r22+r23*8-0x14428066], 1024 IID2042 - __ cmpw(Address(r23, r24, (Address::ScaleFactor)2, -0x78d472e5), 1024); // cmp word ptr [r23+r24*4-0x78d472e5], 1024 IID2043 - __ cmpw(Address(r24, r25, (Address::ScaleFactor)1, +0x5a679e8b), 1024); // cmp word ptr [r24+r25*2+0x5a679e8b], 1024 IID2044 - __ cmpw(Address(r25, r26, (Address::ScaleFactor)0, -0x14c7fae1), 1024); // cmp word ptr [r25+r26*1-0x14c7fae1], 1024 IID2045 - __ cmpw(Address(r26, r27, (Address::ScaleFactor)3, -0x3d92c019), 1024); // cmp word ptr [r26+r27*8-0x3d92c019], 1024 IID2046 - __ cmpw(Address(r27, r28, (Address::ScaleFactor)3, +0x16b9c472), 1024); // cmp word ptr [r27+r28*8+0x16b9c472], 1024 IID2047 - __ cmpw(Address(r28, r29, (Address::ScaleFactor)2, +0x3ceebcbe), 1024); // cmp word ptr [r28+r29*4+0x3ceebcbe], 1024 IID2048 - __ cmpw(Address(r29, r30, (Address::ScaleFactor)2, +0x685769a4), 1024); // cmp word ptr [r29+r30*4+0x685769a4], 1024 IID2049 - __ cmpw(Address(r30, r31, (Address::ScaleFactor)3, +0x21a8282e), 1024); // cmp word ptr [r30+r31*8+0x21a8282e], 1024 IID2050 - __ cmpw(Address(r31, rcx, (Address::ScaleFactor)0, +0x7be7d8f9), 1024); // cmp word ptr [r31+rcx*1+0x7be7d8f9], 1024 IID2051 - __ cmpw(Address(rcx, rdx, (Address::ScaleFactor)3, -0x57127cf5), 4096); // cmp word ptr [rcx+rdx*8-0x57127cf5], 4096 IID2052 - __ cmpw(Address(rdx, rbx, (Address::ScaleFactor)2, +0x70387b1a), 4096); // cmp word ptr [rdx+rbx*4+0x70387b1a], 4096 IID2053 - __ cmpw(Address(rbx, r8, (Address::ScaleFactor)3, -0x502ac885), 4096); // cmp word ptr [rbx+r8*8-0x502ac885], 4096 IID2054 - __ cmpw(Address(r8, r9, (Address::ScaleFactor)0, +0x1efa1e06), 4096); // cmp word ptr [r8+r9*1+0x1efa1e06], 4096 IID2055 - __ cmpw(Address(r9, r10, (Address::ScaleFactor)0, +0x4931dcd7), 4096); // cmp word ptr [r9+r10*1+0x4931dcd7], 4096 IID2056 - __ cmpw(Address(r10, -0x4b3dc08b), 4096); // cmp word ptr [r10-0x4b3dc08b], 4096 IID2057 - __ cmpw(Address(r11, r12, (Address::ScaleFactor)3, -0x7db8dc6c), 4096); // cmp word ptr [r11+r12*8-0x7db8dc6c], 4096 IID2058 - __ cmpw(Address(r12, r13, (Address::ScaleFactor)3, +0x1b46d171), 4096); // cmp word ptr [r12+r13*8+0x1b46d171], 4096 IID2059 - __ cmpw(Address(r13, r14, (Address::ScaleFactor)3, -0x35b438bb), 4096); // cmp word ptr [r13+r14*8-0x35b438bb], 4096 IID2060 - __ cmpw(Address(r14, r15, (Address::ScaleFactor)2, -0x16280cf), 4096); // cmp word ptr [r14+r15*4-0x16280cf], 4096 IID2061 - __ cmpw(Address(r15, r16, (Address::ScaleFactor)3, +0x538a55c7), 4096); // cmp word ptr [r15+r16*8+0x538a55c7], 4096 IID2062 - __ cmpw(Address(r16, r17, (Address::ScaleFactor)0, +0x41ffd682), 4096); // cmp word ptr [r16+r17*1+0x41ffd682], 4096 IID2063 - __ cmpw(Address(r17, +0x66c22f6), 4096); // cmp word ptr [r17+0x66c22f6], 4096 IID2064 - __ cmpw(Address(r18, r19, (Address::ScaleFactor)2, -0x74a7d8d6), 4096); // cmp word ptr [r18+r19*4-0x74a7d8d6], 4096 IID2065 - __ cmpw(Address(r19, -0x6d868b81), 4096); // cmp word ptr [r19-0x6d868b81], 4096 IID2066 - __ cmpw(Address(r20, r21, (Address::ScaleFactor)1, +0x3198a97b), 4096); // cmp word ptr [r20+r21*2+0x3198a97b], 4096 IID2067 - __ cmpw(Address(r21, r22, (Address::ScaleFactor)1, +0x76ddb696), 4096); // cmp word ptr [r21+r22*2+0x76ddb696], 4096 IID2068 - __ cmpw(Address(r22, r23, (Address::ScaleFactor)0, -0x3e5923fb), 4096); // cmp word ptr [r22+r23*1-0x3e5923fb], 4096 IID2069 - __ cmpw(Address(r23, r24, (Address::ScaleFactor)1, -0x329573fd), 4096); // cmp word ptr [r23+r24*2-0x329573fd], 4096 IID2070 - __ cmpw(Address(r24, r25, (Address::ScaleFactor)2, -0x3ac16e54), 4096); // cmp word ptr [r24+r25*4-0x3ac16e54], 4096 IID2071 - __ cmpw(Address(r25, -0xb6dcd1c), 4096); // cmp word ptr [r25-0xb6dcd1c], 4096 IID2072 - __ cmpw(Address(r26, r27, (Address::ScaleFactor)2, -0x1a7cb8bd), 4096); // cmp word ptr [r26+r27*4-0x1a7cb8bd], 4096 IID2073 - __ cmpw(Address(r27, +0x5c5194b2), 4096); // cmp word ptr [r27+0x5c5194b2], 4096 IID2074 - __ cmpw(Address(r28, r29, (Address::ScaleFactor)2, +0x5f693fd8), 4096); // cmp word ptr [r28+r29*4+0x5f693fd8], 4096 IID2075 - __ cmpw(Address(r29, r30, (Address::ScaleFactor)3, +0xcfd3537), 4096); // cmp word ptr [r29+r30*8+0xcfd3537], 4096 IID2076 - __ cmpw(Address(r30, r31, (Address::ScaleFactor)1, +0x2c47f77d), 4096); // cmp word ptr [r30+r31*2+0x2c47f77d], 4096 IID2077 - __ cmpw(Address(r31, rcx, (Address::ScaleFactor)1, -0x210a8f63), 4096); // cmp word ptr [r31+rcx*2-0x210a8f63], 4096 IID2078 - __ cmpw(Address(rcx, -0x743e288), 16384); // cmp word ptr [rcx-0x743e288], 16384 IID2079 - __ cmpw(Address(rdx, rbx, (Address::ScaleFactor)1, -0x42d68569), 16384); // cmp word ptr [rdx+rbx*2-0x42d68569], 16384 IID2080 - __ cmpw(Address(rbx, r8, (Address::ScaleFactor)0, +0x5b1bbdb0), 16384); // cmp word ptr [rbx+r8*1+0x5b1bbdb0], 16384 IID2081 - __ cmpw(Address(r8, +0xa2c6361), 16384); // cmp word ptr [r8+0xa2c6361], 16384 IID2082 - __ cmpw(Address(r9, r10, (Address::ScaleFactor)3, +0x62d4fc5c), 16384); // cmp word ptr [r9+r10*8+0x62d4fc5c], 16384 IID2083 - __ cmpw(Address(r10, r11, (Address::ScaleFactor)2, -0x326c0efa), 16384); // cmp word ptr [r10+r11*4-0x326c0efa], 16384 IID2084 - __ cmpw(Address(r11, +0xe56069f), 16384); // cmp word ptr [r11+0xe56069f], 16384 IID2085 - __ cmpw(Address(r12, r13, (Address::ScaleFactor)2, +0x1c81f661), 16384); // cmp word ptr [r12+r13*4+0x1c81f661], 16384 IID2086 - __ cmpw(Address(r13, r14, (Address::ScaleFactor)0, +0xa42dc0a), 16384); // cmp word ptr [r13+r14*1+0xa42dc0a], 16384 IID2087 - __ cmpw(Address(r14, r15, (Address::ScaleFactor)3, +0x4eb12ddd), 16384); // cmp word ptr [r14+r15*8+0x4eb12ddd], 16384 IID2088 - __ cmpw(Address(r15, r16, (Address::ScaleFactor)2, -0x2bbf9c7c), 16384); // cmp word ptr [r15+r16*4-0x2bbf9c7c], 16384 IID2089 - __ cmpw(Address(r16, r17, (Address::ScaleFactor)2, -0x49e9fe90), 16384); // cmp word ptr [r16+r17*4-0x49e9fe90], 16384 IID2090 - __ cmpw(Address(r17, +0xa3e8b91), 16384); // cmp word ptr [r17+0xa3e8b91], 16384 IID2091 - __ cmpw(Address(r18, -0x6ad8fc11), 16384); // cmp word ptr [r18-0x6ad8fc11], 16384 IID2092 - __ cmpw(Address(r19, r20, (Address::ScaleFactor)3, -0x4a7285e8), 16384); // cmp word ptr [r19+r20*8-0x4a7285e8], 16384 IID2093 - __ cmpw(Address(r20, r21, (Address::ScaleFactor)3, +0x48ca88ea), 16384); // cmp word ptr [r20+r21*8+0x48ca88ea], 16384 IID2094 - __ cmpw(Address(r21, r22, (Address::ScaleFactor)3, +0x33504242), 16384); // cmp word ptr [r21+r22*8+0x33504242], 16384 IID2095 - __ cmpw(Address(r22, r23, (Address::ScaleFactor)1, +0x4bbc662b), 16384); // cmp word ptr [r22+r23*2+0x4bbc662b], 16384 IID2096 - __ cmpw(Address(r23, r24, (Address::ScaleFactor)2, +0x11fa8a23), 16384); // cmp word ptr [r23+r24*4+0x11fa8a23], 16384 IID2097 - __ cmpw(Address(r24, r25, (Address::ScaleFactor)2, +0x2052a6f2), 16384); // cmp word ptr [r24+r25*4+0x2052a6f2], 16384 IID2098 - __ cmpw(Address(r25, r26, (Address::ScaleFactor)3, -0x353faf72), 16384); // cmp word ptr [r25+r26*8-0x353faf72], 16384 IID2099 - __ cmpw(Address(r26, r27, (Address::ScaleFactor)0, +0x54bff160), 16384); // cmp word ptr [r26+r27*1+0x54bff160], 16384 IID2100 - __ cmpw(Address(r27, r28, (Address::ScaleFactor)3, +0x993323a), 16384); // cmp word ptr [r27+r28*8+0x993323a], 16384 IID2101 - __ cmpw(Address(r28, r29, (Address::ScaleFactor)3, -0x114f955e), 16384); // cmp word ptr [r28+r29*8-0x114f955e], 16384 IID2102 - __ cmpw(Address(r29, +0x513b3041), 16384); // cmp word ptr [r29+0x513b3041], 16384 IID2103 - __ cmpw(Address(r30, r31, (Address::ScaleFactor)0, +0x7673ac3a), 16384); // cmp word ptr [r30+r31*1+0x7673ac3a], 16384 IID2104 - __ cmpw(Address(r31, -0x23a8ac95), 16384); // cmp word ptr [r31-0x23a8ac95], 16384 IID2105 -#endif // _LP64 - __ cmpl(Address(rcx, rdx, (Address::ScaleFactor)3, -0x564a54b), 1); // cmp dword ptr [rcx+rdx*8-0x564a54b], 1 IID2106 - __ cmpl(Address(rdx, rbx, (Address::ScaleFactor)3, -0xdb37d6b), 1); // cmp dword ptr [rdx+rbx*8-0xdb37d6b], 1 IID2107 -#ifdef _LP64 - __ cmpl(Address(rbx, r8, (Address::ScaleFactor)2, +0x4f7c6736), 1); // cmp dword ptr [rbx+r8*4+0x4f7c6736], 1 IID2108 - __ cmpl(Address(r8, r9, (Address::ScaleFactor)1, +0x7073bf8f), 1); // cmp dword ptr [r8+r9*2+0x7073bf8f], 1 IID2109 - __ cmpl(Address(r9, r10, (Address::ScaleFactor)1, -0x132203d9), 1); // cmp dword ptr [r9+r10*2-0x132203d9], 1 IID2110 - __ cmpl(Address(r10, r11, (Address::ScaleFactor)0, +0x55e0b447), 1); // cmp dword ptr [r10+r11*1+0x55e0b447], 1 IID2111 - __ cmpl(Address(r11, r12, (Address::ScaleFactor)1, -0xc5a4b18), 1); // cmp dword ptr [r11+r12*2-0xc5a4b18], 1 IID2112 - __ cmpl(Address(r12, -0x6c08105d), 1); // cmp dword ptr [r12-0x6c08105d], 1 IID2113 - __ cmpl(Address(r13, -0x4bce0fe9), 1); // cmp dword ptr [r13-0x4bce0fe9], 1 IID2114 - __ cmpl(Address(r14, r15, (Address::ScaleFactor)2, +0x6239c38d), 1); // cmp dword ptr [r14+r15*4+0x6239c38d], 1 IID2115 - __ cmpl(Address(r15, r16, (Address::ScaleFactor)3, -0x15eac4f7), 1); // cmp dword ptr [r15+r16*8-0x15eac4f7], 1 IID2116 - __ cmpl(Address(r16, r17, (Address::ScaleFactor)0, -0x6aaf2e63), 1); // cmp dword ptr [r16+r17*1-0x6aaf2e63], 1 IID2117 - __ cmpl(Address(r17, r18, (Address::ScaleFactor)1, +0x744297a7), 1); // cmp dword ptr [r17+r18*2+0x744297a7], 1 IID2118 - __ cmpl(Address(r18, r19, (Address::ScaleFactor)2, +0x3832a1af), 1); // cmp dword ptr [r18+r19*4+0x3832a1af], 1 IID2119 - __ cmpl(Address(r19, +0x4bb34bbd), 1); // cmp dword ptr [r19+0x4bb34bbd], 1 IID2120 - __ cmpl(Address(r20, r21, (Address::ScaleFactor)2, +0x15294745), 1); // cmp dword ptr [r20+r21*4+0x15294745], 1 IID2121 - __ cmpl(Address(r21, r22, (Address::ScaleFactor)2, +0x32665852), 1); // cmp dword ptr [r21+r22*4+0x32665852], 1 IID2122 - __ cmpl(Address(r22, +0x2eed6edd), 1); // cmp dword ptr [r22+0x2eed6edd], 1 IID2123 - __ cmpl(Address(r23, r24, (Address::ScaleFactor)1, -0x60dc0dc0), 1); // cmp dword ptr [r23+r24*2-0x60dc0dc0], 1 IID2124 - __ cmpl(Address(r24, -0x14c9689d), 1); // cmp dword ptr [r24-0x14c9689d], 1 IID2125 - __ cmpl(Address(r25, r26, (Address::ScaleFactor)0, -0x6bfac951), 1); // cmp dword ptr [r25+r26*1-0x6bfac951], 1 IID2126 - __ cmpl(Address(r26, r27, (Address::ScaleFactor)2, -0x5e75a12c), 1); // cmp dword ptr [r26+r27*4-0x5e75a12c], 1 IID2127 - __ cmpl(Address(r27, r28, (Address::ScaleFactor)0, -0xfa6d46a), 1); // cmp dword ptr [r27+r28*1-0xfa6d46a], 1 IID2128 - __ cmpl(Address(r28, r29, (Address::ScaleFactor)0, -0x1ea32a30), 1); // cmp dword ptr [r28+r29*1-0x1ea32a30], 1 IID2129 - __ cmpl(Address(r29, r30, (Address::ScaleFactor)0, +0x525780d0), 1); // cmp dword ptr [r29+r30*1+0x525780d0], 1 IID2130 - __ cmpl(Address(r30, r31, (Address::ScaleFactor)2, +0x29b6c38b), 1); // cmp dword ptr [r30+r31*4+0x29b6c38b], 1 IID2131 - __ cmpl(Address(r31, +0x12b3df5c), 1); // cmp dword ptr [r31+0x12b3df5c], 1 IID2132 - __ cmpl(Address(rcx, rdx, (Address::ScaleFactor)3, -0x62ba9c73), 16); // cmp dword ptr [rcx+rdx*8-0x62ba9c73], 16 IID2133 - __ cmpl(Address(rdx, rbx, (Address::ScaleFactor)1, -0x62e533e3), 16); // cmp dword ptr [rdx+rbx*2-0x62e533e3], 16 IID2134 - __ cmpl(Address(rbx, -0x6f36745c), 16); // cmp dword ptr [rbx-0x6f36745c], 16 IID2135 - __ cmpl(Address(r8, +0x24fb9554), 16); // cmp dword ptr [r8+0x24fb9554], 16 IID2136 - __ cmpl(Address(r9, +0x623f00ba), 16); // cmp dword ptr [r9+0x623f00ba], 16 IID2137 - __ cmpl(Address(r10, r11, (Address::ScaleFactor)3, -0x38190d79), 16); // cmp dword ptr [r10+r11*8-0x38190d79], 16 IID2138 - __ cmpl(Address(r11, r12, (Address::ScaleFactor)0, -0x6ee49c), 16); // cmp dword ptr [r11+r12*1-0x6ee49c], 16 IID2139 - __ cmpl(Address(r12, r13, (Address::ScaleFactor)0, -0x265d0438), 16); // cmp dword ptr [r12+r13*1-0x265d0438], 16 IID2140 - __ cmpl(Address(r13, r14, (Address::ScaleFactor)2, +0x7fe4a20), 16); // cmp dword ptr [r13+r14*4+0x7fe4a20], 16 IID2141 - __ cmpl(Address(r14, r15, (Address::ScaleFactor)1, -0x158f95e1), 16); // cmp dword ptr [r14+r15*2-0x158f95e1], 16 IID2142 - __ cmpl(Address(r15, r16, (Address::ScaleFactor)0, -0x30dd9625), 16); // cmp dword ptr [r15+r16*1-0x30dd9625], 16 IID2143 - __ cmpl(Address(r16, r17, (Address::ScaleFactor)0, +0x22a10fd5), 16); // cmp dword ptr [r16+r17*1+0x22a10fd5], 16 IID2144 - __ cmpl(Address(r17, r18, (Address::ScaleFactor)1, -0x3e92b2ed), 16); // cmp dword ptr [r17+r18*2-0x3e92b2ed], 16 IID2145 - __ cmpl(Address(r18, -0x574744e2), 16); // cmp dword ptr [r18-0x574744e2], 16 IID2146 - __ cmpl(Address(r19, r20, (Address::ScaleFactor)0, -0x3fb87a6c), 16); // cmp dword ptr [r19+r20*1-0x3fb87a6c], 16 IID2147 - __ cmpl(Address(r20, r21, (Address::ScaleFactor)0, -0x67b32207), 16); // cmp dword ptr [r20+r21*1-0x67b32207], 16 IID2148 - __ cmpl(Address(r21, -0x1133bb7d), 16); // cmp dword ptr [r21-0x1133bb7d], 16 IID2149 - __ cmpl(Address(r22, r23, (Address::ScaleFactor)3, +0x4c41c5a0), 16); // cmp dword ptr [r22+r23*8+0x4c41c5a0], 16 IID2150 - __ cmpl(Address(r23, r24, (Address::ScaleFactor)1, -0x64dc482e), 16); // cmp dword ptr [r23+r24*2-0x64dc482e], 16 IID2151 - __ cmpl(Address(r24, r25, (Address::ScaleFactor)3, -0x17468001), 16); // cmp dword ptr [r24+r25*8-0x17468001], 16 IID2152 - __ cmpl(Address(r25, r26, (Address::ScaleFactor)2, +0x245e124d), 16); // cmp dword ptr [r25+r26*4+0x245e124d], 16 IID2153 - __ cmpl(Address(r26, r27, (Address::ScaleFactor)0, +0x260a7326), 16); // cmp dword ptr [r26+r27*1+0x260a7326], 16 IID2154 - __ cmpl(Address(r27, r28, (Address::ScaleFactor)0, +0x289dc4ef), 16); // cmp dword ptr [r27+r28*1+0x289dc4ef], 16 IID2155 - __ cmpl(Address(r28, -0x4a58721f), 16); // cmp dword ptr [r28-0x4a58721f], 16 IID2156 - __ cmpl(Address(r29, r30, (Address::ScaleFactor)1, -0x5b9d8103), 16); // cmp dword ptr [r29+r30*2-0x5b9d8103], 16 IID2157 - __ cmpl(Address(r30, r31, (Address::ScaleFactor)3, +0xfd56c49), 16); // cmp dword ptr [r30+r31*8+0xfd56c49], 16 IID2158 - __ cmpl(Address(r31, rcx, (Address::ScaleFactor)1, +0x608c0e93), 16); // cmp dword ptr [r31+rcx*2+0x608c0e93], 16 IID2159 - __ cmpl(Address(rcx, rdx, (Address::ScaleFactor)2, -0x2cf7eab), 256); // cmp dword ptr [rcx+rdx*4-0x2cf7eab], 256 IID2160 - __ cmpl(Address(rdx, rbx, (Address::ScaleFactor)0, +0x37c9f36e), 256); // cmp dword ptr [rdx+rbx*1+0x37c9f36e], 256 IID2161 - __ cmpl(Address(rbx, r8, (Address::ScaleFactor)0, -0x48b21641), 256); // cmp dword ptr [rbx+r8*1-0x48b21641], 256 IID2162 - __ cmpl(Address(r8, r9, (Address::ScaleFactor)0, +0x113d2aa7), 256); // cmp dword ptr [r8+r9*1+0x113d2aa7], 256 IID2163 - __ cmpl(Address(r9, r10, (Address::ScaleFactor)1, +0x71729a98), 256); // cmp dword ptr [r9+r10*2+0x71729a98], 256 IID2164 - __ cmpl(Address(r10, +0x5e83b6b4), 256); // cmp dword ptr [r10+0x5e83b6b4], 256 IID2165 - __ cmpl(Address(r11, r12, (Address::ScaleFactor)3, -0x5dd8b9f6), 256); // cmp dword ptr [r11+r12*8-0x5dd8b9f6], 256 IID2166 - __ cmpl(Address(r12, r13, (Address::ScaleFactor)1, +0x5150d3e6), 256); // cmp dword ptr [r12+r13*2+0x5150d3e6], 256 IID2167 - __ cmpl(Address(r13, +0x66e05532), 256); // cmp dword ptr [r13+0x66e05532], 256 IID2168 - __ cmpl(Address(r14, r15, (Address::ScaleFactor)3, -0x75e95bdb), 256); // cmp dword ptr [r14+r15*8-0x75e95bdb], 256 IID2169 - __ cmpl(Address(r15, r16, (Address::ScaleFactor)3, -0x7af7a44d), 256); // cmp dword ptr [r15+r16*8-0x7af7a44d], 256 IID2170 - __ cmpl(Address(r16, r17, (Address::ScaleFactor)2, -0x530fabb9), 256); // cmp dword ptr [r16+r17*4-0x530fabb9], 256 IID2171 - __ cmpl(Address(r17, r18, (Address::ScaleFactor)0, +0x29846e56), 256); // cmp dword ptr [r17+r18*1+0x29846e56], 256 IID2172 - __ cmpl(Address(r18, r19, (Address::ScaleFactor)3, +0x3148108a), 256); // cmp dword ptr [r18+r19*8+0x3148108a], 256 IID2173 - __ cmpl(Address(r19, r20, (Address::ScaleFactor)1, -0x391298a1), 256); // cmp dword ptr [r19+r20*2-0x391298a1], 256 IID2174 - __ cmpl(Address(r20, r21, (Address::ScaleFactor)2, -0xdb50696), 256); // cmp dword ptr [r20+r21*4-0xdb50696], 256 IID2175 - __ cmpl(Address(r21, r22, (Address::ScaleFactor)0, -0x656b1bea), 256); // cmp dword ptr [r21+r22*1-0x656b1bea], 256 IID2176 - __ cmpl(Address(r22, r23, (Address::ScaleFactor)2, +0x6afabac), 256); // cmp dword ptr [r22+r23*4+0x6afabac], 256 IID2177 - __ cmpl(Address(r23, +0x5f7ffbd9), 256); // cmp dword ptr [r23+0x5f7ffbd9], 256 IID2178 - __ cmpl(Address(r24, r25, (Address::ScaleFactor)2, -0x5033eedc), 256); // cmp dword ptr [r24+r25*4-0x5033eedc], 256 IID2179 - __ cmpl(Address(r25, r26, (Address::ScaleFactor)3, +0x5777cb4f), 256); // cmp dword ptr [r25+r26*8+0x5777cb4f], 256 IID2180 - __ cmpl(Address(r26, r27, (Address::ScaleFactor)2, -0x7f6f6684), 256); // cmp dword ptr [r26+r27*4-0x7f6f6684], 256 IID2181 - __ cmpl(Address(r27, r28, (Address::ScaleFactor)0, +0x4a3f5205), 256); // cmp dword ptr [r27+r28*1+0x4a3f5205], 256 IID2182 - __ cmpl(Address(r28, r29, (Address::ScaleFactor)2, +0x34ce4973), 256); // cmp dword ptr [r28+r29*4+0x34ce4973], 256 IID2183 - __ cmpl(Address(r29, +0x38cb5e41), 256); // cmp dword ptr [r29+0x38cb5e41], 256 IID2184 - __ cmpl(Address(r30, +0x2ed9b57d), 256); // cmp dword ptr [r30+0x2ed9b57d], 256 IID2185 - __ cmpl(Address(r31, rcx, (Address::ScaleFactor)3, -0x4b1db2dc), 256); // cmp dword ptr [r31+rcx*8-0x4b1db2dc], 256 IID2186 - __ cmpl(Address(rcx, rdx, (Address::ScaleFactor)1, +0x10a7a38e), 4096); // cmp dword ptr [rcx+rdx*2+0x10a7a38e], 4096 IID2187 - __ cmpl(Address(rdx, rbx, (Address::ScaleFactor)2, -0x7eb9584e), 4096); // cmp dword ptr [rdx+rbx*4-0x7eb9584e], 4096 IID2188 - __ cmpl(Address(rbx, r8, (Address::ScaleFactor)0, -0x70b1c863), 4096); // cmp dword ptr [rbx+r8*1-0x70b1c863], 4096 IID2189 - __ cmpl(Address(r8, r9, (Address::ScaleFactor)1, -0x47b85ce7), 4096); // cmp dword ptr [r8+r9*2-0x47b85ce7], 4096 IID2190 - __ cmpl(Address(r9, -0x7deed99f), 4096); // cmp dword ptr [r9-0x7deed99f], 4096 IID2191 - __ cmpl(Address(r10, -0x3ef6d15d), 4096); // cmp dword ptr [r10-0x3ef6d15d], 4096 IID2192 - __ cmpl(Address(r11, r12, (Address::ScaleFactor)3, +0x48c47edf), 4096); // cmp dword ptr [r11+r12*8+0x48c47edf], 4096 IID2193 - __ cmpl(Address(r12, r13, (Address::ScaleFactor)0, -0x35106c16), 4096); // cmp dword ptr [r12+r13*1-0x35106c16], 4096 IID2194 - __ cmpl(Address(r13, r14, (Address::ScaleFactor)1, +0x73ba2544), 4096); // cmp dword ptr [r13+r14*2+0x73ba2544], 4096 IID2195 - __ cmpl(Address(r14, +0x375ae1cb), 4096); // cmp dword ptr [r14+0x375ae1cb], 4096 IID2196 - __ cmpl(Address(r15, +0x55f3fbff), 4096); // cmp dword ptr [r15+0x55f3fbff], 4096 IID2197 - __ cmpl(Address(r16, r17, (Address::ScaleFactor)0, +0x25ae33b1), 4096); // cmp dword ptr [r16+r17*1+0x25ae33b1], 4096 IID2198 - __ cmpl(Address(r17, r18, (Address::ScaleFactor)1, -0x5a3207e8), 4096); // cmp dword ptr [r17+r18*2-0x5a3207e8], 4096 IID2199 - __ cmpl(Address(r18, +0x71609311), 4096); // cmp dword ptr [r18+0x71609311], 4096 IID2200 - __ cmpl(Address(r19, r20, (Address::ScaleFactor)2, +0x4635630a), 4096); // cmp dword ptr [r19+r20*4+0x4635630a], 4096 IID2201 - __ cmpl(Address(r20, r21, (Address::ScaleFactor)1, +0x6ebb1128), 4096); // cmp dword ptr [r20+r21*2+0x6ebb1128], 4096 IID2202 - __ cmpl(Address(r21, +0x37f88894), 4096); // cmp dword ptr [r21+0x37f88894], 4096 IID2203 - __ cmpl(Address(r22, r23, (Address::ScaleFactor)1, +0x63064393), 4096); // cmp dword ptr [r22+r23*2+0x63064393], 4096 IID2204 - __ cmpl(Address(r23, r24, (Address::ScaleFactor)0, -0x19b5875e), 4096); // cmp dword ptr [r23+r24*1-0x19b5875e], 4096 IID2205 - __ cmpl(Address(r24, r25, (Address::ScaleFactor)0, -0x64454066), 4096); // cmp dword ptr [r24+r25*1-0x64454066], 4096 IID2206 - __ cmpl(Address(r25, r26, (Address::ScaleFactor)0, +0x189cf83f), 4096); // cmp dword ptr [r25+r26*1+0x189cf83f], 4096 IID2207 - __ cmpl(Address(r26, -0x24905457), 4096); // cmp dword ptr [r26-0x24905457], 4096 IID2208 - __ cmpl(Address(r27, r28, (Address::ScaleFactor)3, -0x6343469e), 4096); // cmp dword ptr [r27+r28*8-0x6343469e], 4096 IID2209 - __ cmpl(Address(r28, r29, (Address::ScaleFactor)3, +0x76e73f86), 4096); // cmp dword ptr [r28+r29*8+0x76e73f86], 4096 IID2210 - __ cmpl(Address(r29, r30, (Address::ScaleFactor)1, -0x6bd9b104), 4096); // cmp dword ptr [r29+r30*2-0x6bd9b104], 4096 IID2211 - __ cmpl(Address(r30, r31, (Address::ScaleFactor)2, +0x31806d61), 4096); // cmp dword ptr [r30+r31*4+0x31806d61], 4096 IID2212 - __ cmpl(Address(r31, -0x50d581fe), 4096); // cmp dword ptr [r31-0x50d581fe], 4096 IID2213 - __ cmpl(Address(rcx, rdx, (Address::ScaleFactor)1, +0x4317bc92), 65536); // cmp dword ptr [rcx+rdx*2+0x4317bc92], 65536 IID2214 - __ cmpl(Address(rdx, rbx, (Address::ScaleFactor)0, +0x3376cb4c), 65536); // cmp dword ptr [rdx+rbx*1+0x3376cb4c], 65536 IID2215 - __ cmpl(Address(rbx, r8, (Address::ScaleFactor)1, -0x6add4201), 65536); // cmp dword ptr [rbx+r8*2-0x6add4201], 65536 IID2216 - __ cmpl(Address(r8, r9, (Address::ScaleFactor)0, -0x410bdda3), 65536); // cmp dword ptr [r8+r9*1-0x410bdda3], 65536 IID2217 - __ cmpl(Address(r9, r10, (Address::ScaleFactor)3, +0x22804704), 65536); // cmp dword ptr [r9+r10*8+0x22804704], 65536 IID2218 - __ cmpl(Address(r10, r11, (Address::ScaleFactor)2, +0x303dfd1), 65536); // cmp dword ptr [r10+r11*4+0x303dfd1], 65536 IID2219 - __ cmpl(Address(r11, r12, (Address::ScaleFactor)2, +0x27afced9), 65536); // cmp dword ptr [r11+r12*4+0x27afced9], 65536 IID2220 - __ cmpl(Address(r12, r13, (Address::ScaleFactor)0, -0x1a6402d4), 65536); // cmp dword ptr [r12+r13*1-0x1a6402d4], 65536 IID2221 - __ cmpl(Address(r13, r14, (Address::ScaleFactor)0, +0x19e4550b), 65536); // cmp dword ptr [r13+r14*1+0x19e4550b], 65536 IID2222 - __ cmpl(Address(r14, r15, (Address::ScaleFactor)0, -0x30b53ce4), 65536); // cmp dword ptr [r14+r15*1-0x30b53ce4], 65536 IID2223 - __ cmpl(Address(r15, r16, (Address::ScaleFactor)2, -0x3ad97eb7), 65536); // cmp dword ptr [r15+r16*4-0x3ad97eb7], 65536 IID2224 - __ cmpl(Address(r16, r17, (Address::ScaleFactor)2, -0xfe59504), 65536); // cmp dword ptr [r16+r17*4-0xfe59504], 65536 IID2225 - __ cmpl(Address(r17, -0x1d95091), 65536); // cmp dword ptr [r17-0x1d95091], 65536 IID2226 - __ cmpl(Address(r18, r19, (Address::ScaleFactor)2, -0x44e89663), 65536); // cmp dword ptr [r18+r19*4-0x44e89663], 65536 IID2227 - __ cmpl(Address(r19, r20, (Address::ScaleFactor)0, -0x661c768b), 65536); // cmp dword ptr [r19+r20*1-0x661c768b], 65536 IID2228 - __ cmpl(Address(r20, r21, (Address::ScaleFactor)0, +0x451e598c), 65536); // cmp dword ptr [r20+r21*1+0x451e598c], 65536 IID2229 - __ cmpl(Address(r21, -0x20c234a3), 65536); // cmp dword ptr [r21-0x20c234a3], 65536 IID2230 - __ cmpl(Address(r22, r23, (Address::ScaleFactor)1, +0x18305ffb), 65536); // cmp dword ptr [r22+r23*2+0x18305ffb], 65536 IID2231 - __ cmpl(Address(r23, r24, (Address::ScaleFactor)2, +0x752c5542), 65536); // cmp dword ptr [r23+r24*4+0x752c5542], 65536 IID2232 - __ cmpl(Address(r24, r25, (Address::ScaleFactor)1, -0x15db4dae), 65536); // cmp dword ptr [r24+r25*2-0x15db4dae], 65536 IID2233 - __ cmpl(Address(r25, -0x61998bf), 65536); // cmp dword ptr [r25-0x61998bf], 65536 IID2234 - __ cmpl(Address(r26, r27, (Address::ScaleFactor)2, -0x1eae9330), 65536); // cmp dword ptr [r26+r27*4-0x1eae9330], 65536 IID2235 - __ cmpl(Address(r27, r28, (Address::ScaleFactor)3, -0x639c9ea), 65536); // cmp dword ptr [r27+r28*8-0x639c9ea], 65536 IID2236 - __ cmpl(Address(r28, r29, (Address::ScaleFactor)3, +0x47027d68), 65536); // cmp dword ptr [r28+r29*8+0x47027d68], 65536 IID2237 - __ cmpl(Address(r29, r30, (Address::ScaleFactor)3, -0x39ba9100), 65536); // cmp dword ptr [r29+r30*8-0x39ba9100], 65536 IID2238 - __ cmpl(Address(r30, +0x521a1332), 65536); // cmp dword ptr [r30+0x521a1332], 65536 IID2239 - __ cmpl(Address(r31, rcx, (Address::ScaleFactor)0, +0x10dc436f), 65536); // cmp dword ptr [r31+rcx*1+0x10dc436f], 65536 IID2240 - __ cmpl(Address(rcx, rdx, (Address::ScaleFactor)2, -0xba9a101), 1048576); // cmp dword ptr [rcx+rdx*4-0xba9a101], 1048576 IID2241 - __ cmpl(Address(rdx, rbx, (Address::ScaleFactor)2, -0x57ec3b85), 1048576); // cmp dword ptr [rdx+rbx*4-0x57ec3b85], 1048576 IID2242 - __ cmpl(Address(rbx, +0x4ab73d0e), 1048576); // cmp dword ptr [rbx+0x4ab73d0e], 1048576 IID2243 - __ cmpl(Address(r8, r9, (Address::ScaleFactor)3, -0x70f8eaa7), 1048576); // cmp dword ptr [r8+r9*8-0x70f8eaa7], 1048576 IID2244 - __ cmpl(Address(r9, -0x54edaff7), 1048576); // cmp dword ptr [r9-0x54edaff7], 1048576 IID2245 - __ cmpl(Address(r10, r11, (Address::ScaleFactor)0, -0x10b483c1), 1048576); // cmp dword ptr [r10+r11*1-0x10b483c1], 1048576 IID2246 - __ cmpl(Address(r11, r12, (Address::ScaleFactor)2, +0x5590cb95), 1048576); // cmp dword ptr [r11+r12*4+0x5590cb95], 1048576 IID2247 - __ cmpl(Address(r12, +0x7f4939d3), 1048576); // cmp dword ptr [r12+0x7f4939d3], 1048576 IID2248 - __ cmpl(Address(r13, r14, (Address::ScaleFactor)2, +0x310d6adc), 1048576); // cmp dword ptr [r13+r14*4+0x310d6adc], 1048576 IID2249 - __ cmpl(Address(r14, r15, (Address::ScaleFactor)1, +0x4e438aca), 1048576); // cmp dword ptr [r14+r15*2+0x4e438aca], 1048576 IID2250 - __ cmpl(Address(r15, -0x7cfe46fa), 1048576); // cmp dword ptr [r15-0x7cfe46fa], 1048576 IID2251 - __ cmpl(Address(r16, r17, (Address::ScaleFactor)3, +0x4b0467a7), 1048576); // cmp dword ptr [r16+r17*8+0x4b0467a7], 1048576 IID2252 - __ cmpl(Address(r17, r18, (Address::ScaleFactor)3, -0x5241db4c), 1048576); // cmp dword ptr [r17+r18*8-0x5241db4c], 1048576 IID2253 - __ cmpl(Address(r18, r19, (Address::ScaleFactor)3, -0x34c417ba), 1048576); // cmp dword ptr [r18+r19*8-0x34c417ba], 1048576 IID2254 - __ cmpl(Address(r19, r20, (Address::ScaleFactor)3, +0x7cd6f75c), 1048576); // cmp dword ptr [r19+r20*8+0x7cd6f75c], 1048576 IID2255 - __ cmpl(Address(r20, r21, (Address::ScaleFactor)1, +0x6a9e053), 1048576); // cmp dword ptr [r20+r21*2+0x6a9e053], 1048576 IID2256 - __ cmpl(Address(r21, r22, (Address::ScaleFactor)1, +0x2915fa08), 1048576); // cmp dword ptr [r21+r22*2+0x2915fa08], 1048576 IID2257 - __ cmpl(Address(r22, r23, (Address::ScaleFactor)2, -0x4a88de09), 1048576); // cmp dword ptr [r22+r23*4-0x4a88de09], 1048576 IID2258 - __ cmpl(Address(r23, r24, (Address::ScaleFactor)3, +0x15de1213), 1048576); // cmp dword ptr [r23+r24*8+0x15de1213], 1048576 IID2259 - __ cmpl(Address(r24, r25, (Address::ScaleFactor)1, -0x43bd0e41), 1048576); // cmp dword ptr [r24+r25*2-0x43bd0e41], 1048576 IID2260 - __ cmpl(Address(r25, r26, (Address::ScaleFactor)0, +0x6c8c6547), 1048576); // cmp dword ptr [r25+r26*1+0x6c8c6547], 1048576 IID2261 - __ cmpl(Address(r26, r27, (Address::ScaleFactor)3, -0x3bafaa0e), 1048576); // cmp dword ptr [r26+r27*8-0x3bafaa0e], 1048576 IID2262 - __ cmpl(Address(r27, r28, (Address::ScaleFactor)1, -0x77358563), 1048576); // cmp dword ptr [r27+r28*2-0x77358563], 1048576 IID2263 - __ cmpl(Address(r28, r29, (Address::ScaleFactor)0, -0x5a7adf6b), 1048576); // cmp dword ptr [r28+r29*1-0x5a7adf6b], 1048576 IID2264 - __ cmpl(Address(r29, +0x39523480), 1048576); // cmp dword ptr [r29+0x39523480], 1048576 IID2265 - __ cmpl(Address(r30, r31, (Address::ScaleFactor)1, +0x54e2f8cd), 1048576); // cmp dword ptr [r30+r31*2+0x54e2f8cd], 1048576 IID2266 - __ cmpl(Address(r31, rcx, (Address::ScaleFactor)0, +0x2117934c), 1048576); // cmp dword ptr [r31+rcx*1+0x2117934c], 1048576 IID2267 - __ cmpl(Address(rcx, rdx, (Address::ScaleFactor)3, -0x4987d228), 16777216); // cmp dword ptr [rcx+rdx*8-0x4987d228], 16777216 IID2268 - __ cmpl(Address(rdx, +0x2b781157), 16777216); // cmp dword ptr [rdx+0x2b781157], 16777216 IID2269 - __ cmpl(Address(rbx, r8, (Address::ScaleFactor)1, -0xc961f9), 16777216); // cmp dword ptr [rbx+r8*2-0xc961f9], 16777216 IID2270 - __ cmpl(Address(r8, r9, (Address::ScaleFactor)0, +0xe77d064), 16777216); // cmp dword ptr [r8+r9*1+0xe77d064], 16777216 IID2271 - __ cmpl(Address(r9, r10, (Address::ScaleFactor)3, +0x75e4f85c), 16777216); // cmp dword ptr [r9+r10*8+0x75e4f85c], 16777216 IID2272 - __ cmpl(Address(r10, r11, (Address::ScaleFactor)1, +0x23633c7c), 16777216); // cmp dword ptr [r10+r11*2+0x23633c7c], 16777216 IID2273 - __ cmpl(Address(r11, r12, (Address::ScaleFactor)0, -0x410863eb), 16777216); // cmp dword ptr [r11+r12*1-0x410863eb], 16777216 IID2274 - __ cmpl(Address(r12, +0x6ed7b4bd), 16777216); // cmp dword ptr [r12+0x6ed7b4bd], 16777216 IID2275 - __ cmpl(Address(r13, r14, (Address::ScaleFactor)3, -0x4a431d5c), 16777216); // cmp dword ptr [r13+r14*8-0x4a431d5c], 16777216 IID2276 - __ cmpl(Address(r14, r15, (Address::ScaleFactor)3, -0x103891bf), 16777216); // cmp dword ptr [r14+r15*8-0x103891bf], 16777216 IID2277 - __ cmpl(Address(r15, r16, (Address::ScaleFactor)3, -0x646ffea0), 16777216); // cmp dword ptr [r15+r16*8-0x646ffea0], 16777216 IID2278 - __ cmpl(Address(r16, r17, (Address::ScaleFactor)1, -0x2625aa2c), 16777216); // cmp dword ptr [r16+r17*2-0x2625aa2c], 16777216 IID2279 - __ cmpl(Address(r17, r18, (Address::ScaleFactor)0, -0x42c1ab9), 16777216); // cmp dword ptr [r17+r18*1-0x42c1ab9], 16777216 IID2280 - __ cmpl(Address(r18, r19, (Address::ScaleFactor)1, +0x55861fd7), 16777216); // cmp dword ptr [r18+r19*2+0x55861fd7], 16777216 IID2281 - __ cmpl(Address(r19, r20, (Address::ScaleFactor)2, -0x72d830b7), 16777216); // cmp dword ptr [r19+r20*4-0x72d830b7], 16777216 IID2282 - __ cmpl(Address(r20, r21, (Address::ScaleFactor)0, +0x6a2ba3b0), 16777216); // cmp dword ptr [r20+r21*1+0x6a2ba3b0], 16777216 IID2283 - __ cmpl(Address(r21, r22, (Address::ScaleFactor)0, +0x5d5d3fc1), 16777216); // cmp dword ptr [r21+r22*1+0x5d5d3fc1], 16777216 IID2284 - __ cmpl(Address(r22, r23, (Address::ScaleFactor)2, -0x421d8a84), 16777216); // cmp dword ptr [r22+r23*4-0x421d8a84], 16777216 IID2285 - __ cmpl(Address(r23, r24, (Address::ScaleFactor)2, +0x35db8a4f), 16777216); // cmp dword ptr [r23+r24*4+0x35db8a4f], 16777216 IID2286 - __ cmpl(Address(r24, +0x4a0f02f4), 16777216); // cmp dword ptr [r24+0x4a0f02f4], 16777216 IID2287 - __ cmpl(Address(r25, r26, (Address::ScaleFactor)1, +0xea9ba2d), 16777216); // cmp dword ptr [r25+r26*2+0xea9ba2d], 16777216 IID2288 - __ cmpl(Address(r26, r27, (Address::ScaleFactor)1, +0x9ac5564), 16777216); // cmp dword ptr [r26+r27*2+0x9ac5564], 16777216 IID2289 - __ cmpl(Address(r27, r28, (Address::ScaleFactor)3, -0x2257c13b), 16777216); // cmp dword ptr [r27+r28*8-0x2257c13b], 16777216 IID2290 - __ cmpl(Address(r28, +0x63372b78), 16777216); // cmp dword ptr [r28+0x63372b78], 16777216 IID2291 - __ cmpl(Address(r29, r30, (Address::ScaleFactor)3, +0x5c00e5e6), 16777216); // cmp dword ptr [r29+r30*8+0x5c00e5e6], 16777216 IID2292 - __ cmpl(Address(r30, +0x582a4103), 16777216); // cmp dword ptr [r30+0x582a4103], 16777216 IID2293 - __ cmpl(Address(r31, rcx, (Address::ScaleFactor)3, -0x2ae794eb), 16777216); // cmp dword ptr [r31+rcx*8-0x2ae794eb], 16777216 IID2294 - __ cmpl(Address(rcx, rdx, (Address::ScaleFactor)1, -0x1016e2eb), 268435456); // cmp dword ptr [rcx+rdx*2-0x1016e2eb], 268435456 IID2295 - __ cmpl(Address(rdx, rbx, (Address::ScaleFactor)3, +0x3ecca053), 268435456); // cmp dword ptr [rdx+rbx*8+0x3ecca053], 268435456 IID2296 - __ cmpl(Address(rbx, +0x3c897f5f), 268435456); // cmp dword ptr [rbx+0x3c897f5f], 268435456 IID2297 - __ cmpl(Address(r8, r9, (Address::ScaleFactor)1, -0x295f2f56), 268435456); // cmp dword ptr [r8+r9*2-0x295f2f56], 268435456 IID2298 - __ cmpl(Address(r9, r10, (Address::ScaleFactor)0, +0x6f166af2), 268435456); // cmp dword ptr [r9+r10*1+0x6f166af2], 268435456 IID2299 - __ cmpl(Address(r10, r11, (Address::ScaleFactor)2, -0x1c184a12), 268435456); // cmp dword ptr [r10+r11*4-0x1c184a12], 268435456 IID2300 - __ cmpl(Address(r11, r12, (Address::ScaleFactor)1, -0x5bda06f0), 268435456); // cmp dword ptr [r11+r12*2-0x5bda06f0], 268435456 IID2301 - __ cmpl(Address(r12, r13, (Address::ScaleFactor)2, -0x3b393183), 268435456); // cmp dword ptr [r12+r13*4-0x3b393183], 268435456 IID2302 - __ cmpl(Address(r13, +0xda60e7b), 268435456); // cmp dword ptr [r13+0xda60e7b], 268435456 IID2303 - __ cmpl(Address(r14, r15, (Address::ScaleFactor)0, +0x32be9022), 268435456); // cmp dword ptr [r14+r15*1+0x32be9022], 268435456 IID2304 - __ cmpl(Address(r15, r16, (Address::ScaleFactor)2, +0x9f10536), 268435456); // cmp dword ptr [r15+r16*4+0x9f10536], 268435456 IID2305 - __ cmpl(Address(r16, r17, (Address::ScaleFactor)2, -0x29bf43b1), 268435456); // cmp dword ptr [r16+r17*4-0x29bf43b1], 268435456 IID2306 - __ cmpl(Address(r17, r18, (Address::ScaleFactor)0, -0x7222b837), 268435456); // cmp dword ptr [r17+r18*1-0x7222b837], 268435456 IID2307 - __ cmpl(Address(r18, r19, (Address::ScaleFactor)3, -0x3fcefae0), 268435456); // cmp dword ptr [r18+r19*8-0x3fcefae0], 268435456 IID2308 - __ cmpl(Address(r19, +0x2448449b), 268435456); // cmp dword ptr [r19+0x2448449b], 268435456 IID2309 - __ cmpl(Address(r20, r21, (Address::ScaleFactor)0, -0x53df9ff0), 268435456); // cmp dword ptr [r20+r21*1-0x53df9ff0], 268435456 IID2310 - __ cmpl(Address(r21, -0x355ce2ce), 268435456); // cmp dword ptr [r21-0x355ce2ce], 268435456 IID2311 - __ cmpl(Address(r22, r23, (Address::ScaleFactor)2, +0xfdf92ee), 268435456); // cmp dword ptr [r22+r23*4+0xfdf92ee], 268435456 IID2312 - __ cmpl(Address(r23, r24, (Address::ScaleFactor)0, +0x57e8db82), 268435456); // cmp dword ptr [r23+r24*1+0x57e8db82], 268435456 IID2313 - __ cmpl(Address(r24, r25, (Address::ScaleFactor)3, -0x4c45c355), 268435456); // cmp dword ptr [r24+r25*8-0x4c45c355], 268435456 IID2314 - __ cmpl(Address(r25, r26, (Address::ScaleFactor)2, -0x5b5def9), 268435456); // cmp dword ptr [r25+r26*4-0x5b5def9], 268435456 IID2315 - __ cmpl(Address(r26, r27, (Address::ScaleFactor)0, -0x7bb8de47), 268435456); // cmp dword ptr [r26+r27*1-0x7bb8de47], 268435456 IID2316 - __ cmpl(Address(r27, r28, (Address::ScaleFactor)0, +0x5ac226b7), 268435456); // cmp dword ptr [r27+r28*1+0x5ac226b7], 268435456 IID2317 - __ cmpl(Address(r28, r29, (Address::ScaleFactor)1, +0x21e5d623), 268435456); // cmp dword ptr [r28+r29*2+0x21e5d623], 268435456 IID2318 - __ cmpl(Address(r29, r30, (Address::ScaleFactor)3, -0x33099f75), 268435456); // cmp dword ptr [r29+r30*8-0x33099f75], 268435456 IID2319 - __ cmpl(Address(r30, r31, (Address::ScaleFactor)0, +0x5b28bfdc), 268435456); // cmp dword ptr [r30+r31*1+0x5b28bfdc], 268435456 IID2320 - __ cmpl(Address(r31, -0x6636265c), 268435456); // cmp dword ptr [r31-0x6636265c], 268435456 IID2321 -#endif // _LP64 - __ sarl(Address(rcx, -0x75ecb350), 1); // sar dword ptr [rcx-0x75ecb350], 1 IID2322 - __ sarl(Address(rdx, rbx, (Address::ScaleFactor)1, -0x33d5ba03), 1); // sar dword ptr [rdx+rbx*2-0x33d5ba03], 1 IID2323 -#ifdef _LP64 - __ sarl(Address(rbx, r8, (Address::ScaleFactor)1, -0x79bb3929), 1); // sar dword ptr [rbx+r8*2-0x79bb3929], 1 IID2324 - __ sarl(Address(r8, r9, (Address::ScaleFactor)2, +0x8b3a2eb), 1); // sar dword ptr [r8+r9*4+0x8b3a2eb], 1 IID2325 - __ sarl(Address(r9, r10, (Address::ScaleFactor)3, -0x65897d56), 1); // sar dword ptr [r9+r10*8-0x65897d56], 1 IID2326 - __ sarl(Address(r10, r11, (Address::ScaleFactor)1, -0x752aeab5), 1); // sar dword ptr [r10+r11*2-0x752aeab5], 1 IID2327 - __ sarl(Address(r11, r12, (Address::ScaleFactor)0, +0x3647bfb1), 1); // sar dword ptr [r11+r12*1+0x3647bfb1], 1 IID2328 - __ sarl(Address(r12, r13, (Address::ScaleFactor)2, -0x76722445), 1); // sar dword ptr [r12+r13*4-0x76722445], 1 IID2329 - __ sarl(Address(r13, r14, (Address::ScaleFactor)0, +0x441188d8), 1); // sar dword ptr [r13+r14*1+0x441188d8], 1 IID2330 - __ sarl(Address(r14, r15, (Address::ScaleFactor)3, +0x7cce9a09), 1); // sar dword ptr [r14+r15*8+0x7cce9a09], 1 IID2331 - __ sarl(Address(r15, r16, (Address::ScaleFactor)2, +0x10f547b6), 1); // sar dword ptr [r15+r16*4+0x10f547b6], 1 IID2332 - __ sarl(Address(r16, r17, (Address::ScaleFactor)1, +0x3516eace), 1); // sar dword ptr [r16+r17*2+0x3516eace], 1 IID2333 - __ sarl(Address(r17, -0x6c459605), 1); // sar dword ptr [r17-0x6c459605], 1 IID2334 - __ sarl(Address(r18, r19, (Address::ScaleFactor)1, +0x35494809), 1); // sar dword ptr [r18+r19*2+0x35494809], 1 IID2335 - __ sarl(Address(r19, r20, (Address::ScaleFactor)3, +0x59b09add), 1); // sar dword ptr [r19+r20*8+0x59b09add], 1 IID2336 - __ sarl(Address(r20, r21, (Address::ScaleFactor)3, +0x1ebf908b), 1); // sar dword ptr [r20+r21*8+0x1ebf908b], 1 IID2337 - __ sarl(Address(r21, r22, (Address::ScaleFactor)1, -0x602dec72), 1); // sar dword ptr [r21+r22*2-0x602dec72], 1 IID2338 - __ sarl(Address(r22, r23, (Address::ScaleFactor)3, -0x7e6a79dd), 1); // sar dword ptr [r22+r23*8-0x7e6a79dd], 1 IID2339 - __ sarl(Address(r23, r24, (Address::ScaleFactor)1, +0x78d65f2f), 1); // sar dword ptr [r23+r24*2+0x78d65f2f], 1 IID2340 - __ sarl(Address(r24, r25, (Address::ScaleFactor)2, +0x67e1c23a), 1); // sar dword ptr [r24+r25*4+0x67e1c23a], 1 IID2341 - __ sarl(Address(r25, r26, (Address::ScaleFactor)2, +0x7bafffe7), 1); // sar dword ptr [r25+r26*4+0x7bafffe7], 1 IID2342 - __ sarl(Address(r26, r27, (Address::ScaleFactor)2, +0x73aca561), 1); // sar dword ptr [r26+r27*4+0x73aca561], 1 IID2343 - __ sarl(Address(r27, r28, (Address::ScaleFactor)3, +0x7cc1339b), 1); // sar dword ptr [r27+r28*8+0x7cc1339b], 1 IID2344 - __ sarl(Address(r28, r29, (Address::ScaleFactor)1, -0x56b68cc5), 1); // sar dword ptr [r28+r29*2-0x56b68cc5], 1 IID2345 - __ sarl(Address(r29, r30, (Address::ScaleFactor)0, -0x7c0187eb), 1); // sar dword ptr [r29+r30*1-0x7c0187eb], 1 IID2346 - __ sarl(Address(r30, r31, (Address::ScaleFactor)3, -0x39b6cc0b), 1); // sar dword ptr [r30+r31*8-0x39b6cc0b], 1 IID2347 - __ sarl(Address(r31, rcx, (Address::ScaleFactor)3, -0x6cfb3915), 1); // sar dword ptr [r31+rcx*8-0x6cfb3915], 1 IID2348 - __ sarl(Address(rcx, +0x2a8999fd), 2); // sar dword ptr [rcx+0x2a8999fd], 2 IID2349 - __ sarl(Address(rdx, +0x4a3d433c), 2); // sar dword ptr [rdx+0x4a3d433c], 2 IID2350 - __ sarl(Address(rbx, +0x7a9c5248), 2); // sar dword ptr [rbx+0x7a9c5248], 2 IID2351 - __ sarl(Address(r8, r9, (Address::ScaleFactor)0, -0x7088c17f), 2); // sar dword ptr [r8+r9*1-0x7088c17f], 2 IID2352 - __ sarl(Address(r9, r10, (Address::ScaleFactor)0, +0x1df50f31), 2); // sar dword ptr [r9+r10*1+0x1df50f31], 2 IID2353 - __ sarl(Address(r10, r11, (Address::ScaleFactor)0, +0x39b5781f), 2); // sar dword ptr [r10+r11*1+0x39b5781f], 2 IID2354 - __ sarl(Address(r11, -0x63076d6e), 2); // sar dword ptr [r11-0x63076d6e], 2 IID2355 - __ sarl(Address(r12, r13, (Address::ScaleFactor)3, -0x65a41efe), 2); // sar dword ptr [r12+r13*8-0x65a41efe], 2 IID2356 - __ sarl(Address(r13, r14, (Address::ScaleFactor)2, +0x1e9ffa1c), 2); // sar dword ptr [r13+r14*4+0x1e9ffa1c], 2 IID2357 - __ sarl(Address(r14, r15, (Address::ScaleFactor)1, -0x4231bae4), 2); // sar dword ptr [r14+r15*2-0x4231bae4], 2 IID2358 - __ sarl(Address(r15, r16, (Address::ScaleFactor)0, -0x66dc0a77), 2); // sar dword ptr [r15+r16*1-0x66dc0a77], 2 IID2359 - __ sarl(Address(r16, r17, (Address::ScaleFactor)2, -0x4547f632), 2); // sar dword ptr [r16+r17*4-0x4547f632], 2 IID2360 - __ sarl(Address(r17, r18, (Address::ScaleFactor)1, -0x1d8d904d), 2); // sar dword ptr [r17+r18*2-0x1d8d904d], 2 IID2361 - __ sarl(Address(r18, r19, (Address::ScaleFactor)0, -0x25ea19eb), 2); // sar dword ptr [r18+r19*1-0x25ea19eb], 2 IID2362 - __ sarl(Address(r19, -0x5eda44ac), 2); // sar dword ptr [r19-0x5eda44ac], 2 IID2363 - __ sarl(Address(r20, r21, (Address::ScaleFactor)1, +0x44696d68), 2); // sar dword ptr [r20+r21*2+0x44696d68], 2 IID2364 - __ sarl(Address(r21, r22, (Address::ScaleFactor)3, +0x67317ef5), 2); // sar dword ptr [r21+r22*8+0x67317ef5], 2 IID2365 - __ sarl(Address(r22, r23, (Address::ScaleFactor)3, -0x51ab2683), 2); // sar dword ptr [r22+r23*8-0x51ab2683], 2 IID2366 - __ sarl(Address(r23, r24, (Address::ScaleFactor)0, -0x9bc65ca), 2); // sar dword ptr [r23+r24*1-0x9bc65ca], 2 IID2367 - __ sarl(Address(r24, +0x21ae9db0), 2); // sar dword ptr [r24+0x21ae9db0], 2 IID2368 - __ sarl(Address(r25, r26, (Address::ScaleFactor)1, -0x5657235a), 2); // sar dword ptr [r25+r26*2-0x5657235a], 2 IID2369 - __ sarl(Address(r26, r27, (Address::ScaleFactor)2, +0x7940540e), 2); // sar dword ptr [r26+r27*4+0x7940540e], 2 IID2370 - __ sarl(Address(r27, r28, (Address::ScaleFactor)0, +0x1a12beea), 2); // sar dword ptr [r27+r28*1+0x1a12beea], 2 IID2371 - __ sarl(Address(r28, r29, (Address::ScaleFactor)2, -0x1cd91788), 2); // sar dword ptr [r28+r29*4-0x1cd91788], 2 IID2372 - __ sarl(Address(r29, r30, (Address::ScaleFactor)0, +0x3bce8941), 2); // sar dword ptr [r29+r30*1+0x3bce8941], 2 IID2373 - __ sarl(Address(r30, +0x5219b3e7), 2); // sar dword ptr [r30+0x5219b3e7], 2 IID2374 - __ sarl(Address(r31, rcx, (Address::ScaleFactor)3, -0x2b54cb68), 2); // sar dword ptr [r31+rcx*8-0x2b54cb68], 2 IID2375 - __ sarl(Address(rcx, rdx, (Address::ScaleFactor)3, +0x49ecd8e2), 4); // sar dword ptr [rcx+rdx*8+0x49ecd8e2], 4 IID2376 - __ sarl(Address(rdx, rbx, (Address::ScaleFactor)0, +0x76236021), 4); // sar dword ptr [rdx+rbx*1+0x76236021], 4 IID2377 - __ sarl(Address(rbx, r8, (Address::ScaleFactor)3, -0x12fc1ead), 4); // sar dword ptr [rbx+r8*8-0x12fc1ead], 4 IID2378 - __ sarl(Address(r8, r9, (Address::ScaleFactor)2, -0xd4a0a76), 4); // sar dword ptr [r8+r9*4-0xd4a0a76], 4 IID2379 - __ sarl(Address(r9, +0x5854f817), 4); // sar dword ptr [r9+0x5854f817], 4 IID2380 - __ sarl(Address(r10, r11, (Address::ScaleFactor)3, +0x37a929ff), 4); // sar dword ptr [r10+r11*8+0x37a929ff], 4 IID2381 - __ sarl(Address(r11, r12, (Address::ScaleFactor)0, +0x58025fa2), 4); // sar dword ptr [r11+r12*1+0x58025fa2], 4 IID2382 - __ sarl(Address(r12, +0x69689c56), 4); // sar dword ptr [r12+0x69689c56], 4 IID2383 - __ sarl(Address(r13, +0x56415056), 4); // sar dword ptr [r13+0x56415056], 4 IID2384 - __ sarl(Address(r14, r15, (Address::ScaleFactor)2, +0x1c7f354e), 4); // sar dword ptr [r14+r15*4+0x1c7f354e], 4 IID2385 - __ sarl(Address(r15, r16, (Address::ScaleFactor)2, +0x5efd7698), 4); // sar dword ptr [r15+r16*4+0x5efd7698], 4 IID2386 - __ sarl(Address(r16, -0x58d93179), 4); // sar dword ptr [r16-0x58d93179], 4 IID2387 - __ sarl(Address(r17, -0x5a7adc93), 4); // sar dword ptr [r17-0x5a7adc93], 4 IID2388 - __ sarl(Address(r18, r19, (Address::ScaleFactor)1, +0x6decd566), 4); // sar dword ptr [r18+r19*2+0x6decd566], 4 IID2389 - __ sarl(Address(r19, r20, (Address::ScaleFactor)2, -0x7f873bfa), 4); // sar dword ptr [r19+r20*4-0x7f873bfa], 4 IID2390 - __ sarl(Address(r20, r21, (Address::ScaleFactor)1, +0x4aa73e7e), 4); // sar dword ptr [r20+r21*2+0x4aa73e7e], 4 IID2391 - __ sarl(Address(r21, r22, (Address::ScaleFactor)2, +0x1fc2516c), 4); // sar dword ptr [r21+r22*4+0x1fc2516c], 4 IID2392 - __ sarl(Address(r22, -0x6d6a0d57), 4); // sar dword ptr [r22-0x6d6a0d57], 4 IID2393 - __ sarl(Address(r23, r24, (Address::ScaleFactor)2, -0x1c03c121), 4); // sar dword ptr [r23+r24*4-0x1c03c121], 4 IID2394 - __ sarl(Address(r24, r25, (Address::ScaleFactor)3, +0x22fe4982), 4); // sar dword ptr [r24+r25*8+0x22fe4982], 4 IID2395 - __ sarl(Address(r25, r26, (Address::ScaleFactor)0, +0x2b2a2036), 4); // sar dword ptr [r25+r26*1+0x2b2a2036], 4 IID2396 - __ sarl(Address(r26, r27, (Address::ScaleFactor)1, +0x5f2bd2bd), 4); // sar dword ptr [r26+r27*2+0x5f2bd2bd], 4 IID2397 - __ sarl(Address(r27, r28, (Address::ScaleFactor)1, -0x1fb604b7), 4); // sar dword ptr [r27+r28*2-0x1fb604b7], 4 IID2398 - __ sarl(Address(r28, +0x64e6520), 4); // sar dword ptr [r28+0x64e6520], 4 IID2399 - __ sarl(Address(r29, r30, (Address::ScaleFactor)0, +0xc307cac), 4); // sar dword ptr [r29+r30*1+0xc307cac], 4 IID2400 - __ sarl(Address(r30, r31, (Address::ScaleFactor)1, -0x11877a1f), 4); // sar dword ptr [r30+r31*2-0x11877a1f], 4 IID2401 - __ sarl(Address(r31, rcx, (Address::ScaleFactor)0, -0x7a631983), 4); // sar dword ptr [r31+rcx*1-0x7a631983], 4 IID2402 - __ sarl(Address(rcx, rdx, (Address::ScaleFactor)0, +0x588556dd), 8); // sar dword ptr [rcx+rdx*1+0x588556dd], 8 IID2403 - __ sarl(Address(rdx, rbx, (Address::ScaleFactor)2, -0x7b655b1), 8); // sar dword ptr [rdx+rbx*4-0x7b655b1], 8 IID2404 - __ sarl(Address(rbx, r8, (Address::ScaleFactor)3, +0x7d3d9f9b), 8); // sar dword ptr [rbx+r8*8+0x7d3d9f9b], 8 IID2405 - __ sarl(Address(r8, r9, (Address::ScaleFactor)3, +0x140bfc81), 8); // sar dword ptr [r8+r9*8+0x140bfc81], 8 IID2406 - __ sarl(Address(r9, r10, (Address::ScaleFactor)3, +0x5fc8dc78), 8); // sar dword ptr [r9+r10*8+0x5fc8dc78], 8 IID2407 - __ sarl(Address(r10, r11, (Address::ScaleFactor)1, -0x3f461372), 8); // sar dword ptr [r10+r11*2-0x3f461372], 8 IID2408 - __ sarl(Address(r11, -0x6c4f7834), 8); // sar dword ptr [r11-0x6c4f7834], 8 IID2409 - __ sarl(Address(r12, r13, (Address::ScaleFactor)0, -0x3c140440), 8); // sar dword ptr [r12+r13*1-0x3c140440], 8 IID2410 - __ sarl(Address(r13, r14, (Address::ScaleFactor)3, -0x1480d75f), 8); // sar dword ptr [r13+r14*8-0x1480d75f], 8 IID2411 - __ sarl(Address(r14, +0xf82164b), 8); // sar dword ptr [r14+0xf82164b], 8 IID2412 - __ sarl(Address(r15, r16, (Address::ScaleFactor)1, +0x31004916), 8); // sar dword ptr [r15+r16*2+0x31004916], 8 IID2413 - __ sarl(Address(r16, r17, (Address::ScaleFactor)3, +0x539eecc0), 8); // sar dword ptr [r16+r17*8+0x539eecc0], 8 IID2414 - __ sarl(Address(r17, +0x25802081), 8); // sar dword ptr [r17+0x25802081], 8 IID2415 - __ sarl(Address(r18, r19, (Address::ScaleFactor)0, +0x1416fb9b), 8); // sar dword ptr [r18+r19*1+0x1416fb9b], 8 IID2416 - __ sarl(Address(r19, +0x2f4a107f), 8); // sar dword ptr [r19+0x2f4a107f], 8 IID2417 - __ sarl(Address(r20, r21, (Address::ScaleFactor)0, +0x641002a6), 8); // sar dword ptr [r20+r21*1+0x641002a6], 8 IID2418 - __ sarl(Address(r21, -0x25256ba6), 8); // sar dword ptr [r21-0x25256ba6], 8 IID2419 - __ sarl(Address(r22, r23, (Address::ScaleFactor)0, +0x35744cf5), 8); // sar dword ptr [r22+r23*1+0x35744cf5], 8 IID2420 - __ sarl(Address(r23, r24, (Address::ScaleFactor)2, +0x3c34ddc8), 8); // sar dword ptr [r23+r24*4+0x3c34ddc8], 8 IID2421 - __ sarl(Address(r24, r25, (Address::ScaleFactor)2, -0x6ee885df), 8); // sar dword ptr [r24+r25*4-0x6ee885df], 8 IID2422 - __ sarl(Address(r25, r26, (Address::ScaleFactor)1, -0x3beeda85), 8); // sar dword ptr [r25+r26*2-0x3beeda85], 8 IID2423 - __ sarl(Address(r26, r27, (Address::ScaleFactor)1, +0x2f7a8b22), 8); // sar dword ptr [r26+r27*2+0x2f7a8b22], 8 IID2424 - __ sarl(Address(r27, r28, (Address::ScaleFactor)3, +0x2af00095), 8); // sar dword ptr [r27+r28*8+0x2af00095], 8 IID2425 - __ sarl(Address(r28, r29, (Address::ScaleFactor)2, -0x28e5b3f1), 8); // sar dword ptr [r28+r29*4-0x28e5b3f1], 8 IID2426 - __ sarl(Address(r29, r30, (Address::ScaleFactor)0, +0x501c2233), 8); // sar dword ptr [r29+r30*1+0x501c2233], 8 IID2427 - __ sarl(Address(r30, -0x71f26d08), 8); // sar dword ptr [r30-0x71f26d08], 8 IID2428 - __ sarl(Address(r31, +0x19d9e644), 8); // sar dword ptr [r31+0x19d9e644], 8 IID2429 - __ sarl(Address(rcx, +0x4cae0a54), 16); // sar dword ptr [rcx+0x4cae0a54], 16 IID2430 - __ sarl(Address(rdx, -0x532aff31), 16); // sar dword ptr [rdx-0x532aff31], 16 IID2431 - __ sarl(Address(rbx, r8, (Address::ScaleFactor)2, +0x1efde76e), 16); // sar dword ptr [rbx+r8*4+0x1efde76e], 16 IID2432 - __ sarl(Address(r8, +0x467eee1a), 16); // sar dword ptr [r8+0x467eee1a], 16 IID2433 - __ sarl(Address(r9, r10, (Address::ScaleFactor)1, -0x4d933230), 16); // sar dword ptr [r9+r10*2-0x4d933230], 16 IID2434 - __ sarl(Address(r10, r11, (Address::ScaleFactor)0, -0x1e2824ae), 16); // sar dword ptr [r10+r11*1-0x1e2824ae], 16 IID2435 - __ sarl(Address(r11, r12, (Address::ScaleFactor)1, -0x6ad4d0db), 16); // sar dword ptr [r11+r12*2-0x6ad4d0db], 16 IID2436 - __ sarl(Address(r12, +0x61633e2), 16); // sar dword ptr [r12+0x61633e2], 16 IID2437 - __ sarl(Address(r13, -0x4ddc6510), 16); // sar dword ptr [r13-0x4ddc6510], 16 IID2438 - __ sarl(Address(r14, r15, (Address::ScaleFactor)3, -0x5ce8dc22), 16); // sar dword ptr [r14+r15*8-0x5ce8dc22], 16 IID2439 - __ sarl(Address(r15, r16, (Address::ScaleFactor)2, +0x33847920), 16); // sar dword ptr [r15+r16*4+0x33847920], 16 IID2440 - __ sarl(Address(r16, r17, (Address::ScaleFactor)2, -0x48ffb9fb), 16); // sar dword ptr [r16+r17*4-0x48ffb9fb], 16 IID2441 - __ sarl(Address(r17, r18, (Address::ScaleFactor)1, -0x7f16aacc), 16); // sar dword ptr [r17+r18*2-0x7f16aacc], 16 IID2442 - __ sarl(Address(r18, r19, (Address::ScaleFactor)2, +0x750bbad9), 16); // sar dword ptr [r18+r19*4+0x750bbad9], 16 IID2443 - __ sarl(Address(r19, +0x1ed175bb), 16); // sar dword ptr [r19+0x1ed175bb], 16 IID2444 - __ sarl(Address(r20, r21, (Address::ScaleFactor)3, +0x17798fc6), 16); // sar dword ptr [r20+r21*8+0x17798fc6], 16 IID2445 - __ sarl(Address(r21, -0x76bbcfbb), 16); // sar dword ptr [r21-0x76bbcfbb], 16 IID2446 - __ sarl(Address(r22, -0x1842753d), 16); // sar dword ptr [r22-0x1842753d], 16 IID2447 - __ sarl(Address(r23, r24, (Address::ScaleFactor)3, -0x716c483a), 16); // sar dword ptr [r23+r24*8-0x716c483a], 16 IID2448 - __ sarl(Address(r24, -0x1982bbb0), 16); // sar dword ptr [r24-0x1982bbb0], 16 IID2449 - __ sarl(Address(r25, +0x7442a1c), 16); // sar dword ptr [r25+0x7442a1c], 16 IID2450 - __ sarl(Address(r26, r27, (Address::ScaleFactor)0, -0x14abe541), 16); // sar dword ptr [r26+r27*1-0x14abe541], 16 IID2451 - __ sarl(Address(r27, r28, (Address::ScaleFactor)3, +0x4bacab5f), 16); // sar dword ptr [r27+r28*8+0x4bacab5f], 16 IID2452 - __ sarl(Address(r28, r29, (Address::ScaleFactor)2, +0x163a9a88), 16); // sar dword ptr [r28+r29*4+0x163a9a88], 16 IID2453 - __ sarl(Address(r29, r30, (Address::ScaleFactor)2, -0x746d7934), 16); // sar dword ptr [r29+r30*4-0x746d7934], 16 IID2454 - __ sarl(Address(r30, r31, (Address::ScaleFactor)1, +0x3be899ba), 16); // sar dword ptr [r30+r31*2+0x3be899ba], 16 IID2455 - __ sarl(Address(r31, +0x555f941b), 16); // sar dword ptr [r31+0x555f941b], 16 IID2456 -#endif // _LP64 - __ sall(Address(rcx, -0x62d44dcb), 1); // sal dword ptr [rcx-0x62d44dcb], 1 IID2457 - __ sall(Address(rdx, rbx, (Address::ScaleFactor)1, +0x51c7b44c), 1); // sal dword ptr [rdx+rbx*2+0x51c7b44c], 1 IID2458 -#ifdef _LP64 - __ sall(Address(rbx, -0x44365b3f), 1); // sal dword ptr [rbx-0x44365b3f], 1 IID2459 - __ sall(Address(r8, r9, (Address::ScaleFactor)2, -0x3482d6b5), 1); // sal dword ptr [r8+r9*4-0x3482d6b5], 1 IID2460 - __ sall(Address(r9, r10, (Address::ScaleFactor)1, -0x63970c08), 1); // sal dword ptr [r9+r10*2-0x63970c08], 1 IID2461 - __ sall(Address(r10, r11, (Address::ScaleFactor)1, -0x2f0b5698), 1); // sal dword ptr [r10+r11*2-0x2f0b5698], 1 IID2462 - __ sall(Address(r11, +0x6abdddb9), 1); // sal dword ptr [r11+0x6abdddb9], 1 IID2463 - __ sall(Address(r12, r13, (Address::ScaleFactor)0, +0x2fbc077c), 1); // sal dword ptr [r12+r13*1+0x2fbc077c], 1 IID2464 - __ sall(Address(r13, r14, (Address::ScaleFactor)2, -0xb4fb0ec), 1); // sal dword ptr [r13+r14*4-0xb4fb0ec], 1 IID2465 - __ sall(Address(r14, r15, (Address::ScaleFactor)2, -0x171f99d7), 1); // sal dword ptr [r14+r15*4-0x171f99d7], 1 IID2466 - __ sall(Address(r15, r16, (Address::ScaleFactor)3, +0x614bd596), 1); // sal dword ptr [r15+r16*8+0x614bd596], 1 IID2467 - __ sall(Address(r16, +0xe081ae9), 1); // sal dword ptr [r16+0xe081ae9], 1 IID2468 - __ sall(Address(r17, r18, (Address::ScaleFactor)1, +0x39670d1), 1); // sal dword ptr [r17+r18*2+0x39670d1], 1 IID2469 - __ sall(Address(r18, +0x2c93f1d5), 1); // sal dword ptr [r18+0x2c93f1d5], 1 IID2470 - __ sall(Address(r19, r20, (Address::ScaleFactor)0, -0x3d5c27c5), 1); // sal dword ptr [r19+r20*1-0x3d5c27c5], 1 IID2471 - __ sall(Address(r20, r21, (Address::ScaleFactor)3, +0x4ba72c46), 1); // sal dword ptr [r20+r21*8+0x4ba72c46], 1 IID2472 - __ sall(Address(r21, r22, (Address::ScaleFactor)3, -0x1c7ddf9a), 1); // sal dword ptr [r21+r22*8-0x1c7ddf9a], 1 IID2473 - __ sall(Address(r22, r23, (Address::ScaleFactor)1, +0x136d8661), 1); // sal dword ptr [r22+r23*2+0x136d8661], 1 IID2474 - __ sall(Address(r23, r24, (Address::ScaleFactor)0, -0x194ae4), 1); // sal dword ptr [r23+r24*1-0x194ae4], 1 IID2475 - __ sall(Address(r24, -0x6a1eff85), 1); // sal dword ptr [r24-0x6a1eff85], 1 IID2476 - __ sall(Address(r25, r26, (Address::ScaleFactor)1, +0x22c29628), 1); // sal dword ptr [r25+r26*2+0x22c29628], 1 IID2477 - __ sall(Address(r26, r27, (Address::ScaleFactor)2, -0xb6c2339), 1); // sal dword ptr [r26+r27*4-0xb6c2339], 1 IID2478 - __ sall(Address(r27, r28, (Address::ScaleFactor)3, +0x64261b12), 1); // sal dword ptr [r27+r28*8+0x64261b12], 1 IID2479 - __ sall(Address(r28, +0x2234103), 1); // sal dword ptr [r28+0x2234103], 1 IID2480 - __ sall(Address(r29, +0x672d7da2), 1); // sal dword ptr [r29+0x672d7da2], 1 IID2481 - __ sall(Address(r30, r31, (Address::ScaleFactor)0, +0x2ffec71a), 1); // sal dword ptr [r30+r31*1+0x2ffec71a], 1 IID2482 - __ sall(Address(r31, rcx, (Address::ScaleFactor)0, +0x7f820a0d), 1); // sal dword ptr [r31+rcx*1+0x7f820a0d], 1 IID2483 - __ sall(Address(rcx, rdx, (Address::ScaleFactor)2, +0x7b90666c), 2); // sal dword ptr [rcx+rdx*4+0x7b90666c], 2 IID2484 - __ sall(Address(rdx, rbx, (Address::ScaleFactor)1, -0x258f3a2d), 2); // sal dword ptr [rdx+rbx*2-0x258f3a2d], 2 IID2485 - __ sall(Address(rbx, r8, (Address::ScaleFactor)3, -0x42fa526d), 2); // sal dword ptr [rbx+r8*8-0x42fa526d], 2 IID2486 - __ sall(Address(r8, +0x4754ac5a), 2); // sal dword ptr [r8+0x4754ac5a], 2 IID2487 - __ sall(Address(r9, r10, (Address::ScaleFactor)1, -0x70035b35), 2); // sal dword ptr [r9+r10*2-0x70035b35], 2 IID2488 - __ sall(Address(r10, r11, (Address::ScaleFactor)3, +0xd29c7fe), 2); // sal dword ptr [r10+r11*8+0xd29c7fe], 2 IID2489 - __ sall(Address(r11, r12, (Address::ScaleFactor)1, +0x56a8fe36), 2); // sal dword ptr [r11+r12*2+0x56a8fe36], 2 IID2490 - __ sall(Address(r12, r13, (Address::ScaleFactor)1, +0x7b0ed6e8), 2); // sal dword ptr [r12+r13*2+0x7b0ed6e8], 2 IID2491 - __ sall(Address(r13, r14, (Address::ScaleFactor)3, +0x7eefe12c), 2); // sal dword ptr [r13+r14*8+0x7eefe12c], 2 IID2492 - __ sall(Address(r14, r15, (Address::ScaleFactor)0, +0x1d20c3cc), 2); // sal dword ptr [r14+r15*1+0x1d20c3cc], 2 IID2493 - __ sall(Address(r15, r16, (Address::ScaleFactor)3, -0x471894b3), 2); // sal dword ptr [r15+r16*8-0x471894b3], 2 IID2494 - __ sall(Address(r16, r17, (Address::ScaleFactor)1, -0x99ec4b8), 2); // sal dword ptr [r16+r17*2-0x99ec4b8], 2 IID2495 - __ sall(Address(r17, r18, (Address::ScaleFactor)0, -0x492bdab7), 2); // sal dword ptr [r17+r18*1-0x492bdab7], 2 IID2496 - __ sall(Address(r18, r19, (Address::ScaleFactor)1, +0x48f72837), 2); // sal dword ptr [r18+r19*2+0x48f72837], 2 IID2497 - __ sall(Address(r19, r20, (Address::ScaleFactor)2, +0x28a6c48), 2); // sal dword ptr [r19+r20*4+0x28a6c48], 2 IID2498 - __ sall(Address(r20, r21, (Address::ScaleFactor)3, +0x746ea8), 2); // sal dword ptr [r20+r21*8+0x746ea8], 2 IID2499 - __ sall(Address(r21, r22, (Address::ScaleFactor)1, +0x61a77802), 2); // sal dword ptr [r21+r22*2+0x61a77802], 2 IID2500 - __ sall(Address(r22, r23, (Address::ScaleFactor)2, +0xff309b1), 2); // sal dword ptr [r22+r23*4+0xff309b1], 2 IID2501 - __ sall(Address(r23, r24, (Address::ScaleFactor)0, +0x4a59fec6), 2); // sal dword ptr [r23+r24*1+0x4a59fec6], 2 IID2502 - __ sall(Address(r24, r25, (Address::ScaleFactor)1, -0x7f9bcedf), 2); // sal dword ptr [r24+r25*2-0x7f9bcedf], 2 IID2503 - __ sall(Address(r25, r26, (Address::ScaleFactor)2, +0x267a00ea), 2); // sal dword ptr [r25+r26*4+0x267a00ea], 2 IID2504 - __ sall(Address(r26, r27, (Address::ScaleFactor)2, -0x4bbaf08c), 2); // sal dword ptr [r26+r27*4-0x4bbaf08c], 2 IID2505 - __ sall(Address(r27, r28, (Address::ScaleFactor)2, +0x62b1b85), 2); // sal dword ptr [r27+r28*4+0x62b1b85], 2 IID2506 - __ sall(Address(r28, r29, (Address::ScaleFactor)1, -0x70ba8cc8), 2); // sal dword ptr [r28+r29*2-0x70ba8cc8], 2 IID2507 - __ sall(Address(r29, r30, (Address::ScaleFactor)0, +0x6652937f), 2); // sal dword ptr [r29+r30*1+0x6652937f], 2 IID2508 - __ sall(Address(r30, r31, (Address::ScaleFactor)0, -0x99e40ff), 2); // sal dword ptr [r30+r31*1-0x99e40ff], 2 IID2509 - __ sall(Address(r31, rcx, (Address::ScaleFactor)3, +0x7653459e), 2); // sal dword ptr [r31+rcx*8+0x7653459e], 2 IID2510 - __ sall(Address(rcx, rdx, (Address::ScaleFactor)0, -0x7663abcf), 4); // sal dword ptr [rcx+rdx*1-0x7663abcf], 4 IID2511 - __ sall(Address(rdx, +0x7faf2227), 4); // sal dword ptr [rdx+0x7faf2227], 4 IID2512 - __ sall(Address(rbx, -0x520f4043), 4); // sal dword ptr [rbx-0x520f4043], 4 IID2513 - __ sall(Address(r8, r9, (Address::ScaleFactor)3, -0x60b74439), 4); // sal dword ptr [r8+r9*8-0x60b74439], 4 IID2514 - __ sall(Address(r9, r10, (Address::ScaleFactor)1, +0x65341c3), 4); // sal dword ptr [r9+r10*2+0x65341c3], 4 IID2515 - __ sall(Address(r10, r11, (Address::ScaleFactor)1, -0x7ff35f3e), 4); // sal dword ptr [r10+r11*2-0x7ff35f3e], 4 IID2516 - __ sall(Address(r11, r12, (Address::ScaleFactor)1, +0x2267449d), 4); // sal dword ptr [r11+r12*2+0x2267449d], 4 IID2517 - __ sall(Address(r12, r13, (Address::ScaleFactor)3, +0xb2f0642), 4); // sal dword ptr [r12+r13*8+0xb2f0642], 4 IID2518 - __ sall(Address(r13, r14, (Address::ScaleFactor)2, +0x17e2911c), 4); // sal dword ptr [r13+r14*4+0x17e2911c], 4 IID2519 - __ sall(Address(r14, -0x3f36f75f), 4); // sal dword ptr [r14-0x3f36f75f], 4 IID2520 - __ sall(Address(r15, r16, (Address::ScaleFactor)2, -0x34995af1), 4); // sal dword ptr [r15+r16*4-0x34995af1], 4 IID2521 - __ sall(Address(r16, r17, (Address::ScaleFactor)0, -0x6ad73fcd), 4); // sal dword ptr [r16+r17*1-0x6ad73fcd], 4 IID2522 - __ sall(Address(r17, r18, (Address::ScaleFactor)1, +0x7f66b102), 4); // sal dword ptr [r17+r18*2+0x7f66b102], 4 IID2523 - __ sall(Address(r18, +0x35bd1923), 4); // sal dword ptr [r18+0x35bd1923], 4 IID2524 - __ sall(Address(r19, r20, (Address::ScaleFactor)0, -0x4622db08), 4); // sal dword ptr [r19+r20*1-0x4622db08], 4 IID2525 - __ sall(Address(r20, r21, (Address::ScaleFactor)1, +0x79db44be), 4); // sal dword ptr [r20+r21*2+0x79db44be], 4 IID2526 - __ sall(Address(r21, r22, (Address::ScaleFactor)2, +0x278e74e5), 4); // sal dword ptr [r21+r22*4+0x278e74e5], 4 IID2527 - __ sall(Address(r22, r23, (Address::ScaleFactor)3, +0x4156295a), 4); // sal dword ptr [r22+r23*8+0x4156295a], 4 IID2528 - __ sall(Address(r23, r24, (Address::ScaleFactor)3, +0x28a8f921), 4); // sal dword ptr [r23+r24*8+0x28a8f921], 4 IID2529 - __ sall(Address(r24, r25, (Address::ScaleFactor)3, +0x7571e927), 4); // sal dword ptr [r24+r25*8+0x7571e927], 4 IID2530 - __ sall(Address(r25, r26, (Address::ScaleFactor)2, +0x56de85db), 4); // sal dword ptr [r25+r26*4+0x56de85db], 4 IID2531 - __ sall(Address(r26, r27, (Address::ScaleFactor)1, -0x1a023434), 4); // sal dword ptr [r26+r27*2-0x1a023434], 4 IID2532 - __ sall(Address(r27, -0x2cca838f), 4); // sal dword ptr [r27-0x2cca838f], 4 IID2533 - __ sall(Address(r28, +0x38061158), 4); // sal dword ptr [r28+0x38061158], 4 IID2534 - __ sall(Address(r29, r30, (Address::ScaleFactor)3, -0x6fd0182b), 4); // sal dword ptr [r29+r30*8-0x6fd0182b], 4 IID2535 - __ sall(Address(r30, -0x17e703b4), 4); // sal dword ptr [r30-0x17e703b4], 4 IID2536 - __ sall(Address(r31, rcx, (Address::ScaleFactor)0, +0x2c27eb71), 4); // sal dword ptr [r31+rcx*1+0x2c27eb71], 4 IID2537 - __ sall(Address(rcx, rdx, (Address::ScaleFactor)2, -0x718d112c), 8); // sal dword ptr [rcx+rdx*4-0x718d112c], 8 IID2538 - __ sall(Address(rdx, rbx, (Address::ScaleFactor)2, +0x2a0eaa57), 8); // sal dword ptr [rdx+rbx*4+0x2a0eaa57], 8 IID2539 - __ sall(Address(rbx, r8, (Address::ScaleFactor)3, -0x13fc52a2), 8); // sal dword ptr [rbx+r8*8-0x13fc52a2], 8 IID2540 - __ sall(Address(r8, r9, (Address::ScaleFactor)2, +0x1a1c0f8), 8); // sal dword ptr [r8+r9*4+0x1a1c0f8], 8 IID2541 - __ sall(Address(r9, r10, (Address::ScaleFactor)2, +0x1592827), 8); // sal dword ptr [r9+r10*4+0x1592827], 8 IID2542 - __ sall(Address(r10, r11, (Address::ScaleFactor)0, +0x58ae279), 8); // sal dword ptr [r10+r11*1+0x58ae279], 8 IID2543 - __ sall(Address(r11, r12, (Address::ScaleFactor)3, +0x31f6a814), 8); // sal dword ptr [r11+r12*8+0x31f6a814], 8 IID2544 - __ sall(Address(r12, r13, (Address::ScaleFactor)1, -0xfcb229d), 8); // sal dword ptr [r12+r13*2-0xfcb229d], 8 IID2545 - __ sall(Address(r13, r14, (Address::ScaleFactor)3, +0x12d91321), 8); // sal dword ptr [r13+r14*8+0x12d91321], 8 IID2546 - __ sall(Address(r14, r15, (Address::ScaleFactor)2, -0x4579fee5), 8); // sal dword ptr [r14+r15*4-0x4579fee5], 8 IID2547 - __ sall(Address(r15, r16, (Address::ScaleFactor)0, +0xa3d5d01), 8); // sal dword ptr [r15+r16*1+0xa3d5d01], 8 IID2548 - __ sall(Address(r16, r17, (Address::ScaleFactor)0, -0x32411bf0), 8); // sal dword ptr [r16+r17*1-0x32411bf0], 8 IID2549 - __ sall(Address(r17, +0x4b94b357), 8); // sal dword ptr [r17+0x4b94b357], 8 IID2550 - __ sall(Address(r18, r19, (Address::ScaleFactor)0, +0x52aec96e), 8); // sal dword ptr [r18+r19*1+0x52aec96e], 8 IID2551 - __ sall(Address(r19, +0x2736b189), 8); // sal dword ptr [r19+0x2736b189], 8 IID2552 - __ sall(Address(r20, r21, (Address::ScaleFactor)0, -0x5b0f811c), 8); // sal dword ptr [r20+r21*1-0x5b0f811c], 8 IID2553 - __ sall(Address(r21, r22, (Address::ScaleFactor)1, -0x63e305cf), 8); // sal dword ptr [r21+r22*2-0x63e305cf], 8 IID2554 - __ sall(Address(r22, r23, (Address::ScaleFactor)3, -0x42e22b26), 8); // sal dword ptr [r22+r23*8-0x42e22b26], 8 IID2555 - __ sall(Address(r23, +0x62a4f4c5), 8); // sal dword ptr [r23+0x62a4f4c5], 8 IID2556 - __ sall(Address(r24, +0x2cc62ee1), 8); // sal dword ptr [r24+0x2cc62ee1], 8 IID2557 - __ sall(Address(r25, r26, (Address::ScaleFactor)1, -0x3683383d), 8); // sal dword ptr [r25+r26*2-0x3683383d], 8 IID2558 - __ sall(Address(r26, r27, (Address::ScaleFactor)1, -0x7a3d7b6a), 8); // sal dword ptr [r26+r27*2-0x7a3d7b6a], 8 IID2559 - __ sall(Address(r27, -0x1b8bddd5), 8); // sal dword ptr [r27-0x1b8bddd5], 8 IID2560 - __ sall(Address(r28, r29, (Address::ScaleFactor)2, +0x2c3da53b), 8); // sal dword ptr [r28+r29*4+0x2c3da53b], 8 IID2561 - __ sall(Address(r29, r30, (Address::ScaleFactor)1, -0x17ceffb3), 8); // sal dword ptr [r29+r30*2-0x17ceffb3], 8 IID2562 - __ sall(Address(r30, r31, (Address::ScaleFactor)2, +0x45e59d93), 8); // sal dword ptr [r30+r31*4+0x45e59d93], 8 IID2563 - __ sall(Address(r31, rcx, (Address::ScaleFactor)2, +0x2ca53fd7), 8); // sal dword ptr [r31+rcx*4+0x2ca53fd7], 8 IID2564 - __ sall(Address(rcx, rdx, (Address::ScaleFactor)1, -0x7ace68b0), 16); // sal dword ptr [rcx+rdx*2-0x7ace68b0], 16 IID2565 - __ sall(Address(rdx, rbx, (Address::ScaleFactor)2, +0x1bfa8fd7), 16); // sal dword ptr [rdx+rbx*4+0x1bfa8fd7], 16 IID2566 - __ sall(Address(rbx, -0x5d7d450e), 16); // sal dword ptr [rbx-0x5d7d450e], 16 IID2567 - __ sall(Address(r8, r9, (Address::ScaleFactor)0, +0x3f10a12b), 16); // sal dword ptr [r8+r9*1+0x3f10a12b], 16 IID2568 - __ sall(Address(r9, r10, (Address::ScaleFactor)2, +0x6f91cdbc), 16); // sal dword ptr [r9+r10*4+0x6f91cdbc], 16 IID2569 - __ sall(Address(r10, r11, (Address::ScaleFactor)0, -0x7e2b05ac), 16); // sal dword ptr [r10+r11*1-0x7e2b05ac], 16 IID2570 - __ sall(Address(r11, +0x2a441b3a), 16); // sal dword ptr [r11+0x2a441b3a], 16 IID2571 - __ sall(Address(r12, r13, (Address::ScaleFactor)3, -0x5b731bb9), 16); // sal dword ptr [r12+r13*8-0x5b731bb9], 16 IID2572 - __ sall(Address(r13, r14, (Address::ScaleFactor)0, +0xe08ee30), 16); // sal dword ptr [r13+r14*1+0xe08ee30], 16 IID2573 - __ sall(Address(r14, r15, (Address::ScaleFactor)0, +0x51a439d4), 16); // sal dword ptr [r14+r15*1+0x51a439d4], 16 IID2574 - __ sall(Address(r15, r16, (Address::ScaleFactor)3, +0x4fa15ac3), 16); // sal dword ptr [r15+r16*8+0x4fa15ac3], 16 IID2575 - __ sall(Address(r16, +0x443dd9c3), 16); // sal dword ptr [r16+0x443dd9c3], 16 IID2576 - __ sall(Address(r17, r18, (Address::ScaleFactor)3, +0x13282f8c), 16); // sal dword ptr [r17+r18*8+0x13282f8c], 16 IID2577 - __ sall(Address(r18, r19, (Address::ScaleFactor)3, -0x6db379f2), 16); // sal dword ptr [r18+r19*8-0x6db379f2], 16 IID2578 - __ sall(Address(r19, -0x796b708b), 16); // sal dword ptr [r19-0x796b708b], 16 IID2579 - __ sall(Address(r20, r21, (Address::ScaleFactor)1, +0x6e29da9a), 16); // sal dword ptr [r20+r21*2+0x6e29da9a], 16 IID2580 - __ sall(Address(r21, r22, (Address::ScaleFactor)0, +0xe85c157), 16); // sal dword ptr [r21+r22*1+0xe85c157], 16 IID2581 - __ sall(Address(r22, r23, (Address::ScaleFactor)1, +0x4ea01d2c), 16); // sal dword ptr [r22+r23*2+0x4ea01d2c], 16 IID2582 - __ sall(Address(r23, r24, (Address::ScaleFactor)3, +0x4e37bf71), 16); // sal dword ptr [r23+r24*8+0x4e37bf71], 16 IID2583 - __ sall(Address(r24, r25, (Address::ScaleFactor)0, -0x5152a0c8), 16); // sal dword ptr [r24+r25*1-0x5152a0c8], 16 IID2584 - __ sall(Address(r25, r26, (Address::ScaleFactor)1, -0x336ea79), 16); // sal dword ptr [r25+r26*2-0x336ea79], 16 IID2585 - __ sall(Address(r26, r27, (Address::ScaleFactor)3, +0x506ec0e6), 16); // sal dword ptr [r26+r27*8+0x506ec0e6], 16 IID2586 - __ sall(Address(r27, r28, (Address::ScaleFactor)1, +0x1033fcb6), 16); // sal dword ptr [r27+r28*2+0x1033fcb6], 16 IID2587 - __ sall(Address(r28, r29, (Address::ScaleFactor)0, +0xa838a2e), 16); // sal dword ptr [r28+r29*1+0xa838a2e], 16 IID2588 - __ sall(Address(r29, r30, (Address::ScaleFactor)1, +0x55c677d3), 16); // sal dword ptr [r29+r30*2+0x55c677d3], 16 IID2589 - __ sall(Address(r30, r31, (Address::ScaleFactor)0, -0x3b602c44), 16); // sal dword ptr [r30+r31*1-0x3b602c44], 16 IID2590 - __ sall(Address(r31, -0x14e6f271), 16); // sal dword ptr [r31-0x14e6f271], 16 IID2591 -#endif // _LP64 - __ sbbl(Address(rcx, -0x6a7b1768), 1); // sbb dword ptr [rcx-0x6a7b1768], 1 IID2592 - __ sbbl(Address(rdx, rbx, (Address::ScaleFactor)0, -0x47bd742d), 1); // sbb dword ptr [rdx+rbx*1-0x47bd742d], 1 IID2593 -#ifdef _LP64 - __ sbbl(Address(rbx, r8, (Address::ScaleFactor)3, -0x3735a888), 1); // sbb dword ptr [rbx+r8*8-0x3735a888], 1 IID2594 - __ sbbl(Address(r8, r9, (Address::ScaleFactor)1, +0x108d87ed), 1); // sbb dword ptr [r8+r9*2+0x108d87ed], 1 IID2595 - __ sbbl(Address(r9, r10, (Address::ScaleFactor)2, +0x1f6ef88f), 1); // sbb dword ptr [r9+r10*4+0x1f6ef88f], 1 IID2596 - __ sbbl(Address(r10, r11, (Address::ScaleFactor)2, -0x3cdc5f8c), 1); // sbb dword ptr [r10+r11*4-0x3cdc5f8c], 1 IID2597 - __ sbbl(Address(r11, r12, (Address::ScaleFactor)1, -0x4d60ad), 1); // sbb dword ptr [r11+r12*2-0x4d60ad], 1 IID2598 - __ sbbl(Address(r12, r13, (Address::ScaleFactor)2, +0x33413b99), 1); // sbb dword ptr [r12+r13*4+0x33413b99], 1 IID2599 - __ sbbl(Address(r13, r14, (Address::ScaleFactor)3, -0x635f82ee), 1); // sbb dword ptr [r13+r14*8-0x635f82ee], 1 IID2600 - __ sbbl(Address(r14, r15, (Address::ScaleFactor)0, -0x18661896), 1); // sbb dword ptr [r14+r15*1-0x18661896], 1 IID2601 - __ sbbl(Address(r15, +0x32ad4f03), 1); // sbb dword ptr [r15+0x32ad4f03], 1 IID2602 - __ sbbl(Address(r16, r17, (Address::ScaleFactor)1, +0x59ff6e87), 1); // sbb dword ptr [r16+r17*2+0x59ff6e87], 1 IID2603 - __ sbbl(Address(r17, r18, (Address::ScaleFactor)0, -0x4fd8b553), 1); // sbb dword ptr [r17+r18*1-0x4fd8b553], 1 IID2604 - __ sbbl(Address(r18, -0x5e1aff6f), 1); // sbb dword ptr [r18-0x5e1aff6f], 1 IID2605 - __ sbbl(Address(r19, -0x6dce069c), 1); // sbb dword ptr [r19-0x6dce069c], 1 IID2606 - __ sbbl(Address(r20, r21, (Address::ScaleFactor)2, -0x1fa44b1), 1); // sbb dword ptr [r20+r21*4-0x1fa44b1], 1 IID2607 - __ sbbl(Address(r21, r22, (Address::ScaleFactor)2, +0x74451d9d), 1); // sbb dword ptr [r21+r22*4+0x74451d9d], 1 IID2608 - __ sbbl(Address(r22, r23, (Address::ScaleFactor)3, -0x351e872a), 1); // sbb dword ptr [r22+r23*8-0x351e872a], 1 IID2609 - __ sbbl(Address(r23, r24, (Address::ScaleFactor)0, +0x25adee43), 1); // sbb dword ptr [r23+r24*1+0x25adee43], 1 IID2610 - __ sbbl(Address(r24, r25, (Address::ScaleFactor)0, +0x2938bd9e), 1); // sbb dword ptr [r24+r25*1+0x2938bd9e], 1 IID2611 - __ sbbl(Address(r25, r26, (Address::ScaleFactor)3, -0x67fe125a), 1); // sbb dword ptr [r25+r26*8-0x67fe125a], 1 IID2612 - __ sbbl(Address(r26, r27, (Address::ScaleFactor)2, -0x59236bef), 1); // sbb dword ptr [r26+r27*4-0x59236bef], 1 IID2613 - __ sbbl(Address(r27, r28, (Address::ScaleFactor)3, -0xbdcc938), 1); // sbb dword ptr [r27+r28*8-0xbdcc938], 1 IID2614 - __ sbbl(Address(r28, r29, (Address::ScaleFactor)1, +0x421f8c5b), 1); // sbb dword ptr [r28+r29*2+0x421f8c5b], 1 IID2615 - __ sbbl(Address(r29, +0x410708a6), 1); // sbb dword ptr [r29+0x410708a6], 1 IID2616 - __ sbbl(Address(r30, r31, (Address::ScaleFactor)3, -0x45a14893), 1); // sbb dword ptr [r30+r31*8-0x45a14893], 1 IID2617 - __ sbbl(Address(r31, rcx, (Address::ScaleFactor)1, +0x706c7996), 1); // sbb dword ptr [r31+rcx*2+0x706c7996], 1 IID2618 - __ sbbl(Address(rcx, rdx, (Address::ScaleFactor)1, +0x88fa50), 16); // sbb dword ptr [rcx+rdx*2+0x88fa50], 16 IID2619 - __ sbbl(Address(rdx, rbx, (Address::ScaleFactor)2, -0x57207540), 16); // sbb dword ptr [rdx+rbx*4-0x57207540], 16 IID2620 - __ sbbl(Address(rbx, r8, (Address::ScaleFactor)0, -0x2f2c80d7), 16); // sbb dword ptr [rbx+r8*1-0x2f2c80d7], 16 IID2621 - __ sbbl(Address(r8, r9, (Address::ScaleFactor)1, +0x3af766f9), 16); // sbb dword ptr [r8+r9*2+0x3af766f9], 16 IID2622 - __ sbbl(Address(r9, -0x5bb805bd), 16); // sbb dword ptr [r9-0x5bb805bd], 16 IID2623 - __ sbbl(Address(r10, r11, (Address::ScaleFactor)3, +0xceffb50), 16); // sbb dword ptr [r10+r11*8+0xceffb50], 16 IID2624 - __ sbbl(Address(r11, r12, (Address::ScaleFactor)1, -0x4d003451), 16); // sbb dword ptr [r11+r12*2-0x4d003451], 16 IID2625 - __ sbbl(Address(r12, -0x23a7659b), 16); // sbb dword ptr [r12-0x23a7659b], 16 IID2626 - __ sbbl(Address(r13, r14, (Address::ScaleFactor)0, +0x57aa9bdc), 16); // sbb dword ptr [r13+r14*1+0x57aa9bdc], 16 IID2627 - __ sbbl(Address(r14, r15, (Address::ScaleFactor)3, -0x18eb0ca2), 16); // sbb dword ptr [r14+r15*8-0x18eb0ca2], 16 IID2628 - __ sbbl(Address(r15, r16, (Address::ScaleFactor)2, -0x1f82bb15), 16); // sbb dword ptr [r15+r16*4-0x1f82bb15], 16 IID2629 - __ sbbl(Address(r16, r17, (Address::ScaleFactor)1, +0x9fac5bb), 16); // sbb dword ptr [r16+r17*2+0x9fac5bb], 16 IID2630 - __ sbbl(Address(r17, r18, (Address::ScaleFactor)0, -0x43831473), 16); // sbb dword ptr [r17+r18*1-0x43831473], 16 IID2631 - __ sbbl(Address(r18, r19, (Address::ScaleFactor)2, -0x29b5b1e4), 16); // sbb dword ptr [r18+r19*4-0x29b5b1e4], 16 IID2632 - __ sbbl(Address(r19, r20, (Address::ScaleFactor)3, +0x38d2bbe6), 16); // sbb dword ptr [r19+r20*8+0x38d2bbe6], 16 IID2633 - __ sbbl(Address(r20, r21, (Address::ScaleFactor)1, -0x5e90849a), 16); // sbb dword ptr [r20+r21*2-0x5e90849a], 16 IID2634 - __ sbbl(Address(r21, r22, (Address::ScaleFactor)2, -0x6a66f796), 16); // sbb dword ptr [r21+r22*4-0x6a66f796], 16 IID2635 - __ sbbl(Address(r22, r23, (Address::ScaleFactor)3, +0x77b6ec18), 16); // sbb dword ptr [r22+r23*8+0x77b6ec18], 16 IID2636 - __ sbbl(Address(r23, r24, (Address::ScaleFactor)0, -0x18400857), 16); // sbb dword ptr [r23+r24*1-0x18400857], 16 IID2637 - __ sbbl(Address(r24, r25, (Address::ScaleFactor)2, -0x78606314), 16); // sbb dword ptr [r24+r25*4-0x78606314], 16 IID2638 - __ sbbl(Address(r25, -0x64c023f9), 16); // sbb dword ptr [r25-0x64c023f9], 16 IID2639 - __ sbbl(Address(r26, r27, (Address::ScaleFactor)0, -0x37924455), 16); // sbb dword ptr [r26+r27*1-0x37924455], 16 IID2640 - __ sbbl(Address(r27, r28, (Address::ScaleFactor)3, +0x5ccbaac7), 16); // sbb dword ptr [r27+r28*8+0x5ccbaac7], 16 IID2641 - __ sbbl(Address(r28, +0x579e2874), 16); // sbb dword ptr [r28+0x579e2874], 16 IID2642 - __ sbbl(Address(r29, r30, (Address::ScaleFactor)3, +0x47137a92), 16); // sbb dword ptr [r29+r30*8+0x47137a92], 16 IID2643 - __ sbbl(Address(r30, r31, (Address::ScaleFactor)3, -0x291555ff), 16); // sbb dword ptr [r30+r31*8-0x291555ff], 16 IID2644 - __ sbbl(Address(r31, rcx, (Address::ScaleFactor)3, +0x511f27d1), 16); // sbb dword ptr [r31+rcx*8+0x511f27d1], 16 IID2645 - __ sbbl(Address(rcx, rdx, (Address::ScaleFactor)3, +0x5bbc1463), 256); // sbb dword ptr [rcx+rdx*8+0x5bbc1463], 256 IID2646 - __ sbbl(Address(rdx, rbx, (Address::ScaleFactor)3, +0x53f5456f), 256); // sbb dword ptr [rdx+rbx*8+0x53f5456f], 256 IID2647 - __ sbbl(Address(rbx, r8, (Address::ScaleFactor)2, +0x7a80631d), 256); // sbb dword ptr [rbx+r8*4+0x7a80631d], 256 IID2648 - __ sbbl(Address(r8, r9, (Address::ScaleFactor)1, +0x5c804ffc), 256); // sbb dword ptr [r8+r9*2+0x5c804ffc], 256 IID2649 - __ sbbl(Address(r9, r10, (Address::ScaleFactor)0, +0x18552b08), 256); // sbb dword ptr [r9+r10*1+0x18552b08], 256 IID2650 - __ sbbl(Address(r10, r11, (Address::ScaleFactor)0, +0x6e72aea7), 256); // sbb dword ptr [r10+r11*1+0x6e72aea7], 256 IID2651 - __ sbbl(Address(r11, r12, (Address::ScaleFactor)1, -0x178f3b55), 256); // sbb dword ptr [r11+r12*2-0x178f3b55], 256 IID2652 - __ sbbl(Address(r12, r13, (Address::ScaleFactor)3, -0xedef708), 256); // sbb dword ptr [r12+r13*8-0xedef708], 256 IID2653 - __ sbbl(Address(r13, r14, (Address::ScaleFactor)3, +0xa90210d), 256); // sbb dword ptr [r13+r14*8+0xa90210d], 256 IID2654 - __ sbbl(Address(r14, +0x4c97d625), 256); // sbb dword ptr [r14+0x4c97d625], 256 IID2655 - __ sbbl(Address(r15, +0x48c860d0), 256); // sbb dword ptr [r15+0x48c860d0], 256 IID2656 - __ sbbl(Address(r16, r17, (Address::ScaleFactor)3, +0x1a3d4ec2), 256); // sbb dword ptr [r16+r17*8+0x1a3d4ec2], 256 IID2657 - __ sbbl(Address(r17, -0x6397a1e4), 256); // sbb dword ptr [r17-0x6397a1e4], 256 IID2658 - __ sbbl(Address(r18, r19, (Address::ScaleFactor)0, -0xb6d6987), 256); // sbb dword ptr [r18+r19*1-0xb6d6987], 256 IID2659 - __ sbbl(Address(r19, r20, (Address::ScaleFactor)0, +0x14159181), 256); // sbb dword ptr [r19+r20*1+0x14159181], 256 IID2660 - __ sbbl(Address(r20, r21, (Address::ScaleFactor)3, -0x21d97ae), 256); // sbb dword ptr [r20+r21*8-0x21d97ae], 256 IID2661 - __ sbbl(Address(r21, r22, (Address::ScaleFactor)0, -0x2ce3685), 256); // sbb dword ptr [r21+r22*1-0x2ce3685], 256 IID2662 - __ sbbl(Address(r22, r23, (Address::ScaleFactor)0, +0x52492904), 256); // sbb dword ptr [r22+r23*1+0x52492904], 256 IID2663 - __ sbbl(Address(r23, r24, (Address::ScaleFactor)3, -0x6d18f5df), 256); // sbb dword ptr [r23+r24*8-0x6d18f5df], 256 IID2664 - __ sbbl(Address(r24, +0x22f3b590), 256); // sbb dword ptr [r24+0x22f3b590], 256 IID2665 - __ sbbl(Address(r25, r26, (Address::ScaleFactor)2, -0x6f2ed6f2), 256); // sbb dword ptr [r25+r26*4-0x6f2ed6f2], 256 IID2666 - __ sbbl(Address(r26, r27, (Address::ScaleFactor)3, +0x3c3dec48), 256); // sbb dword ptr [r26+r27*8+0x3c3dec48], 256 IID2667 - __ sbbl(Address(r27, r28, (Address::ScaleFactor)3, +0xea315b2), 256); // sbb dword ptr [r27+r28*8+0xea315b2], 256 IID2668 - __ sbbl(Address(r28, -0x5608cea0), 256); // sbb dword ptr [r28-0x5608cea0], 256 IID2669 - __ sbbl(Address(r29, -0x5ce9b7c6), 256); // sbb dword ptr [r29-0x5ce9b7c6], 256 IID2670 - __ sbbl(Address(r30, r31, (Address::ScaleFactor)1, -0x76236e6f), 256); // sbb dword ptr [r30+r31*2-0x76236e6f], 256 IID2671 - __ sbbl(Address(r31, rcx, (Address::ScaleFactor)2, +0x70624f66), 256); // sbb dword ptr [r31+rcx*4+0x70624f66], 256 IID2672 - __ sbbl(Address(rcx, rdx, (Address::ScaleFactor)0, -0x59c230bd), 4096); // sbb dword ptr [rcx+rdx*1-0x59c230bd], 4096 IID2673 - __ sbbl(Address(rdx, rbx, (Address::ScaleFactor)1, -0x1738773), 4096); // sbb dword ptr [rdx+rbx*2-0x1738773], 4096 IID2674 - __ sbbl(Address(rbx, r8, (Address::ScaleFactor)2, -0x583f4618), 4096); // sbb dword ptr [rbx+r8*4-0x583f4618], 4096 IID2675 - __ sbbl(Address(r8, r9, (Address::ScaleFactor)2, +0x10fffb2c), 4096); // sbb dword ptr [r8+r9*4+0x10fffb2c], 4096 IID2676 - __ sbbl(Address(r9, r10, (Address::ScaleFactor)0, -0x62a66a19), 4096); // sbb dword ptr [r9+r10*1-0x62a66a19], 4096 IID2677 - __ sbbl(Address(r10, r11, (Address::ScaleFactor)3, -0x6212544b), 4096); // sbb dword ptr [r10+r11*8-0x6212544b], 4096 IID2678 - __ sbbl(Address(r11, r12, (Address::ScaleFactor)1, +0x73787b91), 4096); // sbb dword ptr [r11+r12*2+0x73787b91], 4096 IID2679 - __ sbbl(Address(r12, r13, (Address::ScaleFactor)0, -0x7abb7753), 4096); // sbb dword ptr [r12+r13*1-0x7abb7753], 4096 IID2680 - __ sbbl(Address(r13, +0x47b90e9d), 4096); // sbb dword ptr [r13+0x47b90e9d], 4096 IID2681 - __ sbbl(Address(r14, r15, (Address::ScaleFactor)0, +0x569ce906), 4096); // sbb dword ptr [r14+r15*1+0x569ce906], 4096 IID2682 - __ sbbl(Address(r15, r16, (Address::ScaleFactor)2, -0x582200c), 4096); // sbb dword ptr [r15+r16*4-0x582200c], 4096 IID2683 - __ sbbl(Address(r16, -0x7b760ab1), 4096); // sbb dword ptr [r16-0x7b760ab1], 4096 IID2684 - __ sbbl(Address(r17, +0x50b45e28), 4096); // sbb dword ptr [r17+0x50b45e28], 4096 IID2685 - __ sbbl(Address(r18, r19, (Address::ScaleFactor)2, -0xd923108), 4096); // sbb dword ptr [r18+r19*4-0xd923108], 4096 IID2686 - __ sbbl(Address(r19, r20, (Address::ScaleFactor)0, -0x622ba9b1), 4096); // sbb dword ptr [r19+r20*1-0x622ba9b1], 4096 IID2687 - __ sbbl(Address(r20, r21, (Address::ScaleFactor)0, +0x4c55944e), 4096); // sbb dword ptr [r20+r21*1+0x4c55944e], 4096 IID2688 - __ sbbl(Address(r21, r22, (Address::ScaleFactor)3, -0x1592de32), 4096); // sbb dword ptr [r21+r22*8-0x1592de32], 4096 IID2689 - __ sbbl(Address(r22, r23, (Address::ScaleFactor)1, +0x7f81a05f), 4096); // sbb dword ptr [r22+r23*2+0x7f81a05f], 4096 IID2690 - __ sbbl(Address(r23, -0x24b7013a), 4096); // sbb dword ptr [r23-0x24b7013a], 4096 IID2691 - __ sbbl(Address(r24, r25, (Address::ScaleFactor)3, -0x223e8b2b), 4096); // sbb dword ptr [r24+r25*8-0x223e8b2b], 4096 IID2692 - __ sbbl(Address(r25, r26, (Address::ScaleFactor)0, -0x4e0c2a5d), 4096); // sbb dword ptr [r25+r26*1-0x4e0c2a5d], 4096 IID2693 - __ sbbl(Address(r26, r27, (Address::ScaleFactor)1, -0x56813ee), 4096); // sbb dword ptr [r26+r27*2-0x56813ee], 4096 IID2694 - __ sbbl(Address(r27, +0x20918a47), 4096); // sbb dword ptr [r27+0x20918a47], 4096 IID2695 - __ sbbl(Address(r28, r29, (Address::ScaleFactor)3, -0x6734acd4), 4096); // sbb dword ptr [r28+r29*8-0x6734acd4], 4096 IID2696 - __ sbbl(Address(r29, r30, (Address::ScaleFactor)3, +0x194b4940), 4096); // sbb dword ptr [r29+r30*8+0x194b4940], 4096 IID2697 - __ sbbl(Address(r30, r31, (Address::ScaleFactor)2, -0xc3f9e5d), 4096); // sbb dword ptr [r30+r31*4-0xc3f9e5d], 4096 IID2698 - __ sbbl(Address(r31, rcx, (Address::ScaleFactor)3, +0x1ee6af42), 4096); // sbb dword ptr [r31+rcx*8+0x1ee6af42], 4096 IID2699 - __ sbbl(Address(rcx, +0x5c08ed38), 65536); // sbb dword ptr [rcx+0x5c08ed38], 65536 IID2700 - __ sbbl(Address(rdx, -0x2ff5fd0d), 65536); // sbb dword ptr [rdx-0x2ff5fd0d], 65536 IID2701 - __ sbbl(Address(rbx, r8, (Address::ScaleFactor)1, -0xc811164), 65536); // sbb dword ptr [rbx+r8*2-0xc811164], 65536 IID2702 - __ sbbl(Address(r8, r9, (Address::ScaleFactor)3, +0x334e4f04), 65536); // sbb dword ptr [r8+r9*8+0x334e4f04], 65536 IID2703 - __ sbbl(Address(r9, r10, (Address::ScaleFactor)1, -0x69c1ed3), 65536); // sbb dword ptr [r9+r10*2-0x69c1ed3], 65536 IID2704 - __ sbbl(Address(r10, r11, (Address::ScaleFactor)1, +0x25dcdaf), 65536); // sbb dword ptr [r10+r11*2+0x25dcdaf], 65536 IID2705 - __ sbbl(Address(r11, r12, (Address::ScaleFactor)3, +0x7d62c68f), 65536); // sbb dword ptr [r11+r12*8+0x7d62c68f], 65536 IID2706 - __ sbbl(Address(r12, r13, (Address::ScaleFactor)1, +0x5b64175a), 65536); // sbb dword ptr [r12+r13*2+0x5b64175a], 65536 IID2707 - __ sbbl(Address(r13, r14, (Address::ScaleFactor)1, -0x42044de2), 65536); // sbb dword ptr [r13+r14*2-0x42044de2], 65536 IID2708 - __ sbbl(Address(r14, r15, (Address::ScaleFactor)0, +0x52736d4d), 65536); // sbb dword ptr [r14+r15*1+0x52736d4d], 65536 IID2709 - __ sbbl(Address(r15, r16, (Address::ScaleFactor)1, +0x10900764), 65536); // sbb dword ptr [r15+r16*2+0x10900764], 65536 IID2710 - __ sbbl(Address(r16, r17, (Address::ScaleFactor)0, +0xa23bcab), 65536); // sbb dword ptr [r16+r17*1+0xa23bcab], 65536 IID2711 - __ sbbl(Address(r17, r18, (Address::ScaleFactor)1, +0x75180a10), 65536); // sbb dword ptr [r17+r18*2+0x75180a10], 65536 IID2712 - __ sbbl(Address(r18, r19, (Address::ScaleFactor)1, +0x797ecd2e), 65536); // sbb dword ptr [r18+r19*2+0x797ecd2e], 65536 IID2713 - __ sbbl(Address(r19, r20, (Address::ScaleFactor)2, +0x1dd39bb8), 65536); // sbb dword ptr [r19+r20*4+0x1dd39bb8], 65536 IID2714 - __ sbbl(Address(r20, r21, (Address::ScaleFactor)0, +0x74b180ec), 65536); // sbb dword ptr [r20+r21*1+0x74b180ec], 65536 IID2715 - __ sbbl(Address(r21, r22, (Address::ScaleFactor)3, -0x5a40314e), 65536); // sbb dword ptr [r21+r22*8-0x5a40314e], 65536 IID2716 - __ sbbl(Address(r22, r23, (Address::ScaleFactor)0, +0x7adbd820), 65536); // sbb dword ptr [r22+r23*1+0x7adbd820], 65536 IID2717 - __ sbbl(Address(r23, r24, (Address::ScaleFactor)3, +0x48ea631b), 65536); // sbb dword ptr [r23+r24*8+0x48ea631b], 65536 IID2718 - __ sbbl(Address(r24, r25, (Address::ScaleFactor)1, +0x2758ed4d), 65536); // sbb dword ptr [r24+r25*2+0x2758ed4d], 65536 IID2719 - __ sbbl(Address(r25, r26, (Address::ScaleFactor)3, +0xb892057), 65536); // sbb dword ptr [r25+r26*8+0xb892057], 65536 IID2720 - __ sbbl(Address(r26, r27, (Address::ScaleFactor)3, +0x69bf3361), 65536); // sbb dword ptr [r26+r27*8+0x69bf3361], 65536 IID2721 - __ sbbl(Address(r27, r28, (Address::ScaleFactor)2, -0x66573d8d), 65536); // sbb dword ptr [r27+r28*4-0x66573d8d], 65536 IID2722 - __ sbbl(Address(r28, r29, (Address::ScaleFactor)0, +0x6dc44402), 65536); // sbb dword ptr [r28+r29*1+0x6dc44402], 65536 IID2723 - __ sbbl(Address(r29, r30, (Address::ScaleFactor)1, -0x4f3d1774), 65536); // sbb dword ptr [r29+r30*2-0x4f3d1774], 65536 IID2724 - __ sbbl(Address(r30, r31, (Address::ScaleFactor)2, +0x3cfc4a94), 65536); // sbb dword ptr [r30+r31*4+0x3cfc4a94], 65536 IID2725 - __ sbbl(Address(r31, -0x3911fde4), 65536); // sbb dword ptr [r31-0x3911fde4], 65536 IID2726 - __ sbbl(Address(rcx, rdx, (Address::ScaleFactor)1, +0x1328766f), 1048576); // sbb dword ptr [rcx+rdx*2+0x1328766f], 1048576 IID2727 - __ sbbl(Address(rdx, rbx, (Address::ScaleFactor)3, +0x142ad73), 1048576); // sbb dword ptr [rdx+rbx*8+0x142ad73], 1048576 IID2728 - __ sbbl(Address(rbx, r8, (Address::ScaleFactor)1, +0x11489e6e), 1048576); // sbb dword ptr [rbx+r8*2+0x11489e6e], 1048576 IID2729 - __ sbbl(Address(r8, r9, (Address::ScaleFactor)3, -0x3b57a577), 1048576); // sbb dword ptr [r8+r9*8-0x3b57a577], 1048576 IID2730 - __ sbbl(Address(r9, -0x415591c2), 1048576); // sbb dword ptr [r9-0x415591c2], 1048576 IID2731 - __ sbbl(Address(r10, r11, (Address::ScaleFactor)3, +0x28679682), 1048576); // sbb dword ptr [r10+r11*8+0x28679682], 1048576 IID2732 - __ sbbl(Address(r11, r12, (Address::ScaleFactor)0, +0x7be8fa76), 1048576); // sbb dword ptr [r11+r12*1+0x7be8fa76], 1048576 IID2733 - __ sbbl(Address(r12, r13, (Address::ScaleFactor)1, -0x799f288a), 1048576); // sbb dword ptr [r12+r13*2-0x799f288a], 1048576 IID2734 - __ sbbl(Address(r13, r14, (Address::ScaleFactor)1, -0x2fbd6971), 1048576); // sbb dword ptr [r13+r14*2-0x2fbd6971], 1048576 IID2735 - __ sbbl(Address(r14, r15, (Address::ScaleFactor)3, -0x4459dd02), 1048576); // sbb dword ptr [r14+r15*8-0x4459dd02], 1048576 IID2736 - __ sbbl(Address(r15, r16, (Address::ScaleFactor)0, +0x2bb886b6), 1048576); // sbb dword ptr [r15+r16*1+0x2bb886b6], 1048576 IID2737 - __ sbbl(Address(r16, r17, (Address::ScaleFactor)3, +0xa069ffb), 1048576); // sbb dword ptr [r16+r17*8+0xa069ffb], 1048576 IID2738 - __ sbbl(Address(r17, r18, (Address::ScaleFactor)2, +0x750dfa50), 1048576); // sbb dword ptr [r17+r18*4+0x750dfa50], 1048576 IID2739 - __ sbbl(Address(r18, r19, (Address::ScaleFactor)2, +0x625498a8), 1048576); // sbb dword ptr [r18+r19*4+0x625498a8], 1048576 IID2740 - __ sbbl(Address(r19, r20, (Address::ScaleFactor)3, +0x3adc1ef7), 1048576); // sbb dword ptr [r19+r20*8+0x3adc1ef7], 1048576 IID2741 - __ sbbl(Address(r20, r21, (Address::ScaleFactor)1, +0x2bd67be9), 1048576); // sbb dword ptr [r20+r21*2+0x2bd67be9], 1048576 IID2742 - __ sbbl(Address(r21, r22, (Address::ScaleFactor)3, +0xc2c85b), 1048576); // sbb dword ptr [r21+r22*8+0xc2c85b], 1048576 IID2743 - __ sbbl(Address(r22, +0x7d9fb046), 1048576); // sbb dword ptr [r22+0x7d9fb046], 1048576 IID2744 - __ sbbl(Address(r23, r24, (Address::ScaleFactor)0, +0x71f6a59), 1048576); // sbb dword ptr [r23+r24*1+0x71f6a59], 1048576 IID2745 - __ sbbl(Address(r24, r25, (Address::ScaleFactor)3, -0x313b36fb), 1048576); // sbb dword ptr [r24+r25*8-0x313b36fb], 1048576 IID2746 - __ sbbl(Address(r25, r26, (Address::ScaleFactor)0, +0x29990425), 1048576); // sbb dword ptr [r25+r26*1+0x29990425], 1048576 IID2747 - __ sbbl(Address(r26, r27, (Address::ScaleFactor)1, +0x6d9e7ca4), 1048576); // sbb dword ptr [r26+r27*2+0x6d9e7ca4], 1048576 IID2748 - __ sbbl(Address(r27, r28, (Address::ScaleFactor)0, -0x540f839), 1048576); // sbb dword ptr [r27+r28*1-0x540f839], 1048576 IID2749 - __ sbbl(Address(r28, r29, (Address::ScaleFactor)3, +0x16c49ac1), 1048576); // sbb dword ptr [r28+r29*8+0x16c49ac1], 1048576 IID2750 - __ sbbl(Address(r29, r30, (Address::ScaleFactor)0, -0x6034f7d1), 1048576); // sbb dword ptr [r29+r30*1-0x6034f7d1], 1048576 IID2751 - __ sbbl(Address(r30, -0x3c7b9e64), 1048576); // sbb dword ptr [r30-0x3c7b9e64], 1048576 IID2752 - __ sbbl(Address(r31, rcx, (Address::ScaleFactor)1, +0x1d67be7a), 1048576); // sbb dword ptr [r31+rcx*2+0x1d67be7a], 1048576 IID2753 - __ sbbl(Address(rcx, -0x72e1384d), 16777216); // sbb dword ptr [rcx-0x72e1384d], 16777216 IID2754 - __ sbbl(Address(rdx, rbx, (Address::ScaleFactor)2, +0x5e67b1f9), 16777216); // sbb dword ptr [rdx+rbx*4+0x5e67b1f9], 16777216 IID2755 - __ sbbl(Address(rbx, r8, (Address::ScaleFactor)2, +0xd638182), 16777216); // sbb dword ptr [rbx+r8*4+0xd638182], 16777216 IID2756 - __ sbbl(Address(r8, r9, (Address::ScaleFactor)2, -0x439f657), 16777216); // sbb dword ptr [r8+r9*4-0x439f657], 16777216 IID2757 - __ sbbl(Address(r9, r10, (Address::ScaleFactor)0, -0x110326c9), 16777216); // sbb dword ptr [r9+r10*1-0x110326c9], 16777216 IID2758 - __ sbbl(Address(r10, r11, (Address::ScaleFactor)3, +0x66a42f5d), 16777216); // sbb dword ptr [r10+r11*8+0x66a42f5d], 16777216 IID2759 - __ sbbl(Address(r11, -0x36177bb8), 16777216); // sbb dword ptr [r11-0x36177bb8], 16777216 IID2760 - __ sbbl(Address(r12, r13, (Address::ScaleFactor)2, +0x7bbaa951), 16777216); // sbb dword ptr [r12+r13*4+0x7bbaa951], 16777216 IID2761 - __ sbbl(Address(r13, -0x6c2e1c61), 16777216); // sbb dword ptr [r13-0x6c2e1c61], 16777216 IID2762 - __ sbbl(Address(r14, -0x54adfaf2), 16777216); // sbb dword ptr [r14-0x54adfaf2], 16777216 IID2763 - __ sbbl(Address(r15, r16, (Address::ScaleFactor)2, -0x4fbb344f), 16777216); // sbb dword ptr [r15+r16*4-0x4fbb344f], 16777216 IID2764 - __ sbbl(Address(r16, r17, (Address::ScaleFactor)2, +0x5252d565), 16777216); // sbb dword ptr [r16+r17*4+0x5252d565], 16777216 IID2765 - __ sbbl(Address(r17, r18, (Address::ScaleFactor)3, +0x281aee33), 16777216); // sbb dword ptr [r17+r18*8+0x281aee33], 16777216 IID2766 - __ sbbl(Address(r18, r19, (Address::ScaleFactor)1, +0x263d222d), 16777216); // sbb dword ptr [r18+r19*2+0x263d222d], 16777216 IID2767 - __ sbbl(Address(r19, r20, (Address::ScaleFactor)0, -0x25480eef), 16777216); // sbb dword ptr [r19+r20*1-0x25480eef], 16777216 IID2768 - __ sbbl(Address(r20, +0x2c21b6ba), 16777216); // sbb dword ptr [r20+0x2c21b6ba], 16777216 IID2769 - __ sbbl(Address(r21, r22, (Address::ScaleFactor)3, +0x4bb2f9d5), 16777216); // sbb dword ptr [r21+r22*8+0x4bb2f9d5], 16777216 IID2770 - __ sbbl(Address(r22, r23, (Address::ScaleFactor)3, -0x3bf8406f), 16777216); // sbb dword ptr [r22+r23*8-0x3bf8406f], 16777216 IID2771 - __ sbbl(Address(r23, r24, (Address::ScaleFactor)2, +0x2d34fdff), 16777216); // sbb dword ptr [r23+r24*4+0x2d34fdff], 16777216 IID2772 - __ sbbl(Address(r24, r25, (Address::ScaleFactor)2, -0x47c576a3), 16777216); // sbb dword ptr [r24+r25*4-0x47c576a3], 16777216 IID2773 - __ sbbl(Address(r25, -0x3f3071de), 16777216); // sbb dword ptr [r25-0x3f3071de], 16777216 IID2774 - __ sbbl(Address(r26, r27, (Address::ScaleFactor)0, -0x211238ca), 16777216); // sbb dword ptr [r26+r27*1-0x211238ca], 16777216 IID2775 - __ sbbl(Address(r27, r28, (Address::ScaleFactor)0, +0x8ca6133), 16777216); // sbb dword ptr [r27+r28*1+0x8ca6133], 16777216 IID2776 - __ sbbl(Address(r28, r29, (Address::ScaleFactor)2, -0x635958b3), 16777216); // sbb dword ptr [r28+r29*4-0x635958b3], 16777216 IID2777 - __ sbbl(Address(r29, -0x76330363), 16777216); // sbb dword ptr [r29-0x76330363], 16777216 IID2778 - __ sbbl(Address(r30, r31, (Address::ScaleFactor)0, -0x24ddacff), 16777216); // sbb dword ptr [r30+r31*1-0x24ddacff], 16777216 IID2779 - __ sbbl(Address(r31, rcx, (Address::ScaleFactor)1, +0x7522349), 16777216); // sbb dword ptr [r31+rcx*2+0x7522349], 16777216 IID2780 - __ sbbl(Address(rcx, rdx, (Address::ScaleFactor)0, -0x32923f0a), 268435456); // sbb dword ptr [rcx+rdx*1-0x32923f0a], 268435456 IID2781 - __ sbbl(Address(rdx, rbx, (Address::ScaleFactor)3, +0x53991ef9), 268435456); // sbb dword ptr [rdx+rbx*8+0x53991ef9], 268435456 IID2782 - __ sbbl(Address(rbx, r8, (Address::ScaleFactor)0, -0x6fd007cc), 268435456); // sbb dword ptr [rbx+r8*1-0x6fd007cc], 268435456 IID2783 - __ sbbl(Address(r8, r9, (Address::ScaleFactor)1, +0x4ab7a3af), 268435456); // sbb dword ptr [r8+r9*2+0x4ab7a3af], 268435456 IID2784 - __ sbbl(Address(r9, r10, (Address::ScaleFactor)2, -0x6bde), 268435456); // sbb dword ptr [r9+r10*4-0x6bde], 268435456 IID2785 - __ sbbl(Address(r10, r11, (Address::ScaleFactor)3, +0x1d5a415e), 268435456); // sbb dword ptr [r10+r11*8+0x1d5a415e], 268435456 IID2786 - __ sbbl(Address(r11, r12, (Address::ScaleFactor)3, +0x720e5487), 268435456); // sbb dword ptr [r11+r12*8+0x720e5487], 268435456 IID2787 - __ sbbl(Address(r12, r13, (Address::ScaleFactor)1, -0x2633979c), 268435456); // sbb dword ptr [r12+r13*2-0x2633979c], 268435456 IID2788 - __ sbbl(Address(r13, -0x7359c039), 268435456); // sbb dword ptr [r13-0x7359c039], 268435456 IID2789 - __ sbbl(Address(r14, r15, (Address::ScaleFactor)2, +0x5e223f30), 268435456); // sbb dword ptr [r14+r15*4+0x5e223f30], 268435456 IID2790 - __ sbbl(Address(r15, r16, (Address::ScaleFactor)1, +0x643cfc2d), 268435456); // sbb dword ptr [r15+r16*2+0x643cfc2d], 268435456 IID2791 - __ sbbl(Address(r16, r17, (Address::ScaleFactor)1, -0x34b2bc54), 268435456); // sbb dword ptr [r16+r17*2-0x34b2bc54], 268435456 IID2792 - __ sbbl(Address(r17, r18, (Address::ScaleFactor)1, +0x7a81994), 268435456); // sbb dword ptr [r17+r18*2+0x7a81994], 268435456 IID2793 - __ sbbl(Address(r18, r19, (Address::ScaleFactor)1, +0x46b87f6d), 268435456); // sbb dword ptr [r18+r19*2+0x46b87f6d], 268435456 IID2794 - __ sbbl(Address(r19, r20, (Address::ScaleFactor)0, +0x42bb9f1b), 268435456); // sbb dword ptr [r19+r20*1+0x42bb9f1b], 268435456 IID2795 - __ sbbl(Address(r20, r21, (Address::ScaleFactor)0, -0x5c9cdd22), 268435456); // sbb dword ptr [r20+r21*1-0x5c9cdd22], 268435456 IID2796 - __ sbbl(Address(r21, r22, (Address::ScaleFactor)2, +0x639a8d82), 268435456); // sbb dword ptr [r21+r22*4+0x639a8d82], 268435456 IID2797 - __ sbbl(Address(r22, r23, (Address::ScaleFactor)1, -0x5eb51a4f), 268435456); // sbb dword ptr [r22+r23*2-0x5eb51a4f], 268435456 IID2798 - __ sbbl(Address(r23, r24, (Address::ScaleFactor)0, -0x7baa07b4), 268435456); // sbb dword ptr [r23+r24*1-0x7baa07b4], 268435456 IID2799 - __ sbbl(Address(r24, r25, (Address::ScaleFactor)2, -0x23c990f5), 268435456); // sbb dword ptr [r24+r25*4-0x23c990f5], 268435456 IID2800 - __ sbbl(Address(r25, r26, (Address::ScaleFactor)1, +0x621f959f), 268435456); // sbb dword ptr [r25+r26*2+0x621f959f], 268435456 IID2801 - __ sbbl(Address(r26, -0x729d752d), 268435456); // sbb dword ptr [r26-0x729d752d], 268435456 IID2802 - __ sbbl(Address(r27, -0x6a25a919), 268435456); // sbb dword ptr [r27-0x6a25a919], 268435456 IID2803 - __ sbbl(Address(r28, +0x58149485), 268435456); // sbb dword ptr [r28+0x58149485], 268435456 IID2804 - __ sbbl(Address(r29, r30, (Address::ScaleFactor)2, -0x190898d2), 268435456); // sbb dword ptr [r29+r30*4-0x190898d2], 268435456 IID2805 - __ sbbl(Address(r30, +0x2cf613b9), 268435456); // sbb dword ptr [r30+0x2cf613b9], 268435456 IID2806 - __ sbbl(Address(r31, rcx, (Address::ScaleFactor)0, +0x7b778694), 268435456); // sbb dword ptr [r31+rcx*1+0x7b778694], 268435456 IID2807 -#endif // _LP64 - __ shrl(Address(rcx, rdx, (Address::ScaleFactor)0, -0x4160a69e), 1); // shr dword ptr [rcx+rdx*1-0x4160a69e], 1 IID2808 - __ shrl(Address(rdx, rbx, (Address::ScaleFactor)3, -0x75505568), 1); // shr dword ptr [rdx+rbx*8-0x75505568], 1 IID2809 -#ifdef _LP64 - __ shrl(Address(rbx, r8, (Address::ScaleFactor)3, +0x3335cfe6), 1); // shr dword ptr [rbx+r8*8+0x3335cfe6], 1 IID2810 - __ shrl(Address(r8, r9, (Address::ScaleFactor)0, +0x199f2fe1), 1); // shr dword ptr [r8+r9*1+0x199f2fe1], 1 IID2811 - __ shrl(Address(r9, r10, (Address::ScaleFactor)0, -0x3a334748), 1); // shr dword ptr [r9+r10*1-0x3a334748], 1 IID2812 - __ shrl(Address(r10, r11, (Address::ScaleFactor)2, -0x31e45bd2), 1); // shr dword ptr [r10+r11*4-0x31e45bd2], 1 IID2813 - __ shrl(Address(r11, r12, (Address::ScaleFactor)3, +0x1ffdc9a8), 1); // shr dword ptr [r11+r12*8+0x1ffdc9a8], 1 IID2814 - __ shrl(Address(r12, r13, (Address::ScaleFactor)3, +0x41d57c6c), 1); // shr dword ptr [r12+r13*8+0x41d57c6c], 1 IID2815 - __ shrl(Address(r13, r14, (Address::ScaleFactor)2, -0x4391715b), 1); // shr dword ptr [r13+r14*4-0x4391715b], 1 IID2816 - __ shrl(Address(r14, -0x4db41a03), 1); // shr dword ptr [r14-0x4db41a03], 1 IID2817 - __ shrl(Address(r15, r16, (Address::ScaleFactor)3, -0x21cfbf94), 1); // shr dword ptr [r15+r16*8-0x21cfbf94], 1 IID2818 - __ shrl(Address(r16, r17, (Address::ScaleFactor)3, -0xf62302d), 1); // shr dword ptr [r16+r17*8-0xf62302d], 1 IID2819 - __ shrl(Address(r17, -0x4627a866), 1); // shr dword ptr [r17-0x4627a866], 1 IID2820 - __ shrl(Address(r18, r19, (Address::ScaleFactor)0, +0x776b9a46), 1); // shr dword ptr [r18+r19*1+0x776b9a46], 1 IID2821 - __ shrl(Address(r19, -0x162c793b), 1); // shr dword ptr [r19-0x162c793b], 1 IID2822 - __ shrl(Address(r20, r21, (Address::ScaleFactor)1, -0x5b2dbd02), 1); // shr dword ptr [r20+r21*2-0x5b2dbd02], 1 IID2823 - __ shrl(Address(r21, r22, (Address::ScaleFactor)2, -0x3611acc4), 1); // shr dword ptr [r21+r22*4-0x3611acc4], 1 IID2824 - __ shrl(Address(r22, r23, (Address::ScaleFactor)1, -0x67fd74bf), 1); // shr dword ptr [r22+r23*2-0x67fd74bf], 1 IID2825 - __ shrl(Address(r23, r24, (Address::ScaleFactor)0, -0x2486ebbe), 1); // shr dword ptr [r23+r24*1-0x2486ebbe], 1 IID2826 - __ shrl(Address(r24, -0x412da5ae), 1); // shr dword ptr [r24-0x412da5ae], 1 IID2827 - __ shrl(Address(r25, r26, (Address::ScaleFactor)2, +0x675eea52), 1); // shr dword ptr [r25+r26*4+0x675eea52], 1 IID2828 - __ shrl(Address(r26, r27, (Address::ScaleFactor)2, +0x4261ddcc), 1); // shr dword ptr [r26+r27*4+0x4261ddcc], 1 IID2829 - __ shrl(Address(r27, r28, (Address::ScaleFactor)1, -0x70ffd3b2), 1); // shr dword ptr [r27+r28*2-0x70ffd3b2], 1 IID2830 - __ shrl(Address(r28, r29, (Address::ScaleFactor)2, -0x7fb7e9cb), 1); // shr dword ptr [r28+r29*4-0x7fb7e9cb], 1 IID2831 - __ shrl(Address(r29, r30, (Address::ScaleFactor)0, -0x649b508b), 1); // shr dword ptr [r29+r30*1-0x649b508b], 1 IID2832 - __ shrl(Address(r30, r31, (Address::ScaleFactor)1, -0x70e2cfde), 1); // shr dword ptr [r30+r31*2-0x70e2cfde], 1 IID2833 - __ shrl(Address(r31, rcx, (Address::ScaleFactor)1, +0x62a27429), 1); // shr dword ptr [r31+rcx*2+0x62a27429], 1 IID2834 - __ shrl(Address(rcx, rdx, (Address::ScaleFactor)0, +0x523e2f65), 2); // shr dword ptr [rcx+rdx*1+0x523e2f65], 2 IID2835 - __ shrl(Address(rdx, rbx, (Address::ScaleFactor)2, +0xfc9d6b0), 2); // shr dword ptr [rdx+rbx*4+0xfc9d6b0], 2 IID2836 - __ shrl(Address(rbx, r8, (Address::ScaleFactor)2, +0x6442c2fd), 2); // shr dword ptr [rbx+r8*4+0x6442c2fd], 2 IID2837 - __ shrl(Address(r8, +0x5c08cd5e), 2); // shr dword ptr [r8+0x5c08cd5e], 2 IID2838 - __ shrl(Address(r9, r10, (Address::ScaleFactor)0, -0x52b9569f), 2); // shr dword ptr [r9+r10*1-0x52b9569f], 2 IID2839 - __ shrl(Address(r10, +0x3e92eb8e), 2); // shr dword ptr [r10+0x3e92eb8e], 2 IID2840 - __ shrl(Address(r11, r12, (Address::ScaleFactor)0, -0x70112419), 2); // shr dword ptr [r11+r12*1-0x70112419], 2 IID2841 - __ shrl(Address(r12, r13, (Address::ScaleFactor)3, +0x6ceba58f), 2); // shr dword ptr [r12+r13*8+0x6ceba58f], 2 IID2842 - __ shrl(Address(r13, r14, (Address::ScaleFactor)3, +0x23c2f8cb), 2); // shr dword ptr [r13+r14*8+0x23c2f8cb], 2 IID2843 - __ shrl(Address(r14, r15, (Address::ScaleFactor)0, -0x422bd335), 2); // shr dword ptr [r14+r15*1-0x422bd335], 2 IID2844 - __ shrl(Address(r15, r16, (Address::ScaleFactor)3, -0x5be19bbf), 2); // shr dword ptr [r15+r16*8-0x5be19bbf], 2 IID2845 - __ shrl(Address(r16, r17, (Address::ScaleFactor)2, -0x76ed1638), 2); // shr dword ptr [r16+r17*4-0x76ed1638], 2 IID2846 - __ shrl(Address(r17, r18, (Address::ScaleFactor)3, -0x633ec307), 2); // shr dword ptr [r17+r18*8-0x633ec307], 2 IID2847 - __ shrl(Address(r18, +0x36541245), 2); // shr dword ptr [r18+0x36541245], 2 IID2848 - __ shrl(Address(r19, -0x7cc8e29a), 2); // shr dword ptr [r19-0x7cc8e29a], 2 IID2849 - __ shrl(Address(r20, r21, (Address::ScaleFactor)0, +0x362347ce), 2); // shr dword ptr [r20+r21*1+0x362347ce], 2 IID2850 - __ shrl(Address(r21, r22, (Address::ScaleFactor)1, +0x2df937b3), 2); // shr dword ptr [r21+r22*2+0x2df937b3], 2 IID2851 - __ shrl(Address(r22, r23, (Address::ScaleFactor)1, -0x71241c8c), 2); // shr dword ptr [r22+r23*2-0x71241c8c], 2 IID2852 - __ shrl(Address(r23, -0x42d1b39), 2); // shr dword ptr [r23-0x42d1b39], 2 IID2853 - __ shrl(Address(r24, r25, (Address::ScaleFactor)1, -0x2a65e476), 2); // shr dword ptr [r24+r25*2-0x2a65e476], 2 IID2854 - __ shrl(Address(r25, r26, (Address::ScaleFactor)2, +0x18f56f90), 2); // shr dword ptr [r25+r26*4+0x18f56f90], 2 IID2855 - __ shrl(Address(r26, r27, (Address::ScaleFactor)3, +0x42fa6a3d), 2); // shr dword ptr [r26+r27*8+0x42fa6a3d], 2 IID2856 - __ shrl(Address(r27, r28, (Address::ScaleFactor)3, +0x53e2b5b6), 2); // shr dword ptr [r27+r28*8+0x53e2b5b6], 2 IID2857 - __ shrl(Address(r28, r29, (Address::ScaleFactor)0, +0x5ba8d523), 2); // shr dword ptr [r28+r29*1+0x5ba8d523], 2 IID2858 - __ shrl(Address(r29, +0x5e1b5ab), 2); // shr dword ptr [r29+0x5e1b5ab], 2 IID2859 - __ shrl(Address(r30, -0x23bbdca9), 2); // shr dword ptr [r30-0x23bbdca9], 2 IID2860 - __ shrl(Address(r31, +0x24c87350), 2); // shr dword ptr [r31+0x24c87350], 2 IID2861 - __ shrl(Address(rcx, rdx, (Address::ScaleFactor)3, -0x2e9c1ef5), 4); // shr dword ptr [rcx+rdx*8-0x2e9c1ef5], 4 IID2862 - __ shrl(Address(rdx, rbx, (Address::ScaleFactor)0, +0x780b76d4), 4); // shr dword ptr [rdx+rbx*1+0x780b76d4], 4 IID2863 - __ shrl(Address(rbx, r8, (Address::ScaleFactor)2, -0x67c37157), 4); // shr dword ptr [rbx+r8*4-0x67c37157], 4 IID2864 - __ shrl(Address(r8, r9, (Address::ScaleFactor)0, +0x21db8db7), 4); // shr dword ptr [r8+r9*1+0x21db8db7], 4 IID2865 - __ shrl(Address(r9, r10, (Address::ScaleFactor)0, +0x468e6037), 4); // shr dword ptr [r9+r10*1+0x468e6037], 4 IID2866 - __ shrl(Address(r10, r11, (Address::ScaleFactor)2, -0x37b9eff6), 4); // shr dword ptr [r10+r11*4-0x37b9eff6], 4 IID2867 - __ shrl(Address(r11, r12, (Address::ScaleFactor)3, -0x1bc9271c), 4); // shr dword ptr [r11+r12*8-0x1bc9271c], 4 IID2868 - __ shrl(Address(r12, r13, (Address::ScaleFactor)1, -0x6286f93a), 4); // shr dword ptr [r12+r13*2-0x6286f93a], 4 IID2869 - __ shrl(Address(r13, r14, (Address::ScaleFactor)1, +0x833ea23), 4); // shr dword ptr [r13+r14*2+0x833ea23], 4 IID2870 - __ shrl(Address(r14, r15, (Address::ScaleFactor)3, -0x5cf53206), 4); // shr dword ptr [r14+r15*8-0x5cf53206], 4 IID2871 - __ shrl(Address(r15, r16, (Address::ScaleFactor)0, -0xf81ad2c), 4); // shr dword ptr [r15+r16*1-0xf81ad2c], 4 IID2872 - __ shrl(Address(r16, r17, (Address::ScaleFactor)1, -0x5fccd48c), 4); // shr dword ptr [r16+r17*2-0x5fccd48c], 4 IID2873 - __ shrl(Address(r17, r18, (Address::ScaleFactor)1, -0x1973e6ff), 4); // shr dword ptr [r17+r18*2-0x1973e6ff], 4 IID2874 - __ shrl(Address(r18, r19, (Address::ScaleFactor)3, +0x63a6708a), 4); // shr dword ptr [r18+r19*8+0x63a6708a], 4 IID2875 - __ shrl(Address(r19, r20, (Address::ScaleFactor)3, -0x51537ab3), 4); // shr dword ptr [r19+r20*8-0x51537ab3], 4 IID2876 - __ shrl(Address(r20, r21, (Address::ScaleFactor)2, -0x7fba13ba), 4); // shr dword ptr [r20+r21*4-0x7fba13ba], 4 IID2877 - __ shrl(Address(r21, +0x409bc5e2), 4); // shr dword ptr [r21+0x409bc5e2], 4 IID2878 - __ shrl(Address(r22, +0x75138cf4), 4); // shr dword ptr [r22+0x75138cf4], 4 IID2879 - __ shrl(Address(r23, +0x698e2f96), 4); // shr dword ptr [r23+0x698e2f96], 4 IID2880 - __ shrl(Address(r24, r25, (Address::ScaleFactor)3, +0x483a5d3a), 4); // shr dword ptr [r24+r25*8+0x483a5d3a], 4 IID2881 - __ shrl(Address(r25, r26, (Address::ScaleFactor)3, +0x6f1a4d02), 4); // shr dword ptr [r25+r26*8+0x6f1a4d02], 4 IID2882 - __ shrl(Address(r26, -0x4fd1163c), 4); // shr dword ptr [r26-0x4fd1163c], 4 IID2883 - __ shrl(Address(r27, r28, (Address::ScaleFactor)2, +0x237f638a), 4); // shr dword ptr [r27+r28*4+0x237f638a], 4 IID2884 - __ shrl(Address(r28, r29, (Address::ScaleFactor)1, +0x79790002), 4); // shr dword ptr [r28+r29*2+0x79790002], 4 IID2885 - __ shrl(Address(r29, r30, (Address::ScaleFactor)2, +0x1bb11b09), 4); // shr dword ptr [r29+r30*4+0x1bb11b09], 4 IID2886 - __ shrl(Address(r30, +0x3eecffaa), 4); // shr dword ptr [r30+0x3eecffaa], 4 IID2887 - __ shrl(Address(r31, rcx, (Address::ScaleFactor)0, +0x3ba461d6), 4); // shr dword ptr [r31+rcx*1+0x3ba461d6], 4 IID2888 - __ shrl(Address(rcx, rdx, (Address::ScaleFactor)2, -0x65e1495d), 8); // shr dword ptr [rcx+rdx*4-0x65e1495d], 8 IID2889 - __ shrl(Address(rdx, rbx, (Address::ScaleFactor)2, -0x6b4684c2), 8); // shr dword ptr [rdx+rbx*4-0x6b4684c2], 8 IID2890 - __ shrl(Address(rbx, r8, (Address::ScaleFactor)0, -0x2c578e5b), 8); // shr dword ptr [rbx+r8*1-0x2c578e5b], 8 IID2891 - __ shrl(Address(r8, r9, (Address::ScaleFactor)2, +0x5bebd681), 8); // shr dword ptr [r8+r9*4+0x5bebd681], 8 IID2892 - __ shrl(Address(r9, r10, (Address::ScaleFactor)0, -0x1f9fefb0), 8); // shr dword ptr [r9+r10*1-0x1f9fefb0], 8 IID2893 - __ shrl(Address(r10, r11, (Address::ScaleFactor)2, -0x1f620b9), 8); // shr dword ptr [r10+r11*4-0x1f620b9], 8 IID2894 - __ shrl(Address(r11, r12, (Address::ScaleFactor)3, -0x73868702), 8); // shr dword ptr [r11+r12*8-0x73868702], 8 IID2895 - __ shrl(Address(r12, r13, (Address::ScaleFactor)3, +0x137d4a1e), 8); // shr dword ptr [r12+r13*8+0x137d4a1e], 8 IID2896 - __ shrl(Address(r13, r14, (Address::ScaleFactor)1, +0x6c44102c), 8); // shr dword ptr [r13+r14*2+0x6c44102c], 8 IID2897 - __ shrl(Address(r14, r15, (Address::ScaleFactor)3, -0x3aa0f06f), 8); // shr dword ptr [r14+r15*8-0x3aa0f06f], 8 IID2898 - __ shrl(Address(r15, +0x64c5d6a7), 8); // shr dword ptr [r15+0x64c5d6a7], 8 IID2899 - __ shrl(Address(r16, r17, (Address::ScaleFactor)2, +0x40e18a39), 8); // shr dword ptr [r16+r17*4+0x40e18a39], 8 IID2900 - __ shrl(Address(r17, r18, (Address::ScaleFactor)0, -0x3e11ed3d), 8); // shr dword ptr [r17+r18*1-0x3e11ed3d], 8 IID2901 - __ shrl(Address(r18, r19, (Address::ScaleFactor)2, -0x601f45c1), 8); // shr dword ptr [r18+r19*4-0x601f45c1], 8 IID2902 - __ shrl(Address(r19, r20, (Address::ScaleFactor)3, -0x7f356e95), 8); // shr dword ptr [r19+r20*8-0x7f356e95], 8 IID2903 - __ shrl(Address(r20, r21, (Address::ScaleFactor)1, +0x6d95421f), 8); // shr dword ptr [r20+r21*2+0x6d95421f], 8 IID2904 - __ shrl(Address(r21, r22, (Address::ScaleFactor)2, +0x6a115f89), 8); // shr dword ptr [r21+r22*4+0x6a115f89], 8 IID2905 - __ shrl(Address(r22, r23, (Address::ScaleFactor)3, -0x369f9311), 8); // shr dword ptr [r22+r23*8-0x369f9311], 8 IID2906 - __ shrl(Address(r23, r24, (Address::ScaleFactor)1, +0x2af72b70), 8); // shr dword ptr [r23+r24*2+0x2af72b70], 8 IID2907 - __ shrl(Address(r24, r25, (Address::ScaleFactor)0, +0x1cc52db2), 8); // shr dword ptr [r24+r25*1+0x1cc52db2], 8 IID2908 - __ shrl(Address(r25, -0x4ca2d483), 8); // shr dword ptr [r25-0x4ca2d483], 8 IID2909 - __ shrl(Address(r26, r27, (Address::ScaleFactor)1, -0x37607f5a), 8); // shr dword ptr [r26+r27*2-0x37607f5a], 8 IID2910 - __ shrl(Address(r27, -0xc0970dc), 8); // shr dword ptr [r27-0xc0970dc], 8 IID2911 - __ shrl(Address(r28, r29, (Address::ScaleFactor)2, -0x3c0cc191), 8); // shr dword ptr [r28+r29*4-0x3c0cc191], 8 IID2912 - __ shrl(Address(r29, r30, (Address::ScaleFactor)0, -0x249cef7c), 8); // shr dword ptr [r29+r30*1-0x249cef7c], 8 IID2913 - __ shrl(Address(r30, r31, (Address::ScaleFactor)2, +0x41f7dbf9), 8); // shr dword ptr [r30+r31*4+0x41f7dbf9], 8 IID2914 - __ shrl(Address(r31, -0x15ed809a), 8); // shr dword ptr [r31-0x15ed809a], 8 IID2915 - __ shrl(Address(rcx, rdx, (Address::ScaleFactor)1, -0x2edffe47), 16); // shr dword ptr [rcx+rdx*2-0x2edffe47], 16 IID2916 - __ shrl(Address(rdx, rbx, (Address::ScaleFactor)2, -0x6cddfc0b), 16); // shr dword ptr [rdx+rbx*4-0x6cddfc0b], 16 IID2917 - __ shrl(Address(rbx, r8, (Address::ScaleFactor)2, +0x701659a9), 16); // shr dword ptr [rbx+r8*4+0x701659a9], 16 IID2918 - __ shrl(Address(r8, +0x1a688261), 16); // shr dword ptr [r8+0x1a688261], 16 IID2919 - __ shrl(Address(r9, r10, (Address::ScaleFactor)0, -0x367202e3), 16); // shr dword ptr [r9+r10*1-0x367202e3], 16 IID2920 - __ shrl(Address(r10, r11, (Address::ScaleFactor)3, +0x3f488073), 16); // shr dword ptr [r10+r11*8+0x3f488073], 16 IID2921 - __ shrl(Address(r11, r12, (Address::ScaleFactor)2, +0x3a1a29cf), 16); // shr dword ptr [r11+r12*4+0x3a1a29cf], 16 IID2922 - __ shrl(Address(r12, r13, (Address::ScaleFactor)0, +0x4fa498ed), 16); // shr dword ptr [r12+r13*1+0x4fa498ed], 16 IID2923 - __ shrl(Address(r13, -0x2bb53839), 16); // shr dword ptr [r13-0x2bb53839], 16 IID2924 - __ shrl(Address(r14, +0x6af4ea94), 16); // shr dword ptr [r14+0x6af4ea94], 16 IID2925 - __ shrl(Address(r15, r16, (Address::ScaleFactor)0, -0x13a8235d), 16); // shr dword ptr [r15+r16*1-0x13a8235d], 16 IID2926 - __ shrl(Address(r16, r17, (Address::ScaleFactor)1, +0x312bd65b), 16); // shr dword ptr [r16+r17*2+0x312bd65b], 16 IID2927 - __ shrl(Address(r17, r18, (Address::ScaleFactor)1, +0x751772e4), 16); // shr dword ptr [r17+r18*2+0x751772e4], 16 IID2928 - __ shrl(Address(r18, r19, (Address::ScaleFactor)2, +0x3d6c2691), 16); // shr dword ptr [r18+r19*4+0x3d6c2691], 16 IID2929 - __ shrl(Address(r19, r20, (Address::ScaleFactor)2, -0x1446398f), 16); // shr dword ptr [r19+r20*4-0x1446398f], 16 IID2930 - __ shrl(Address(r20, r21, (Address::ScaleFactor)2, +0x4f0fa58f), 16); // shr dword ptr [r20+r21*4+0x4f0fa58f], 16 IID2931 - __ shrl(Address(r21, r22, (Address::ScaleFactor)0, +0x151a1af7), 16); // shr dword ptr [r21+r22*1+0x151a1af7], 16 IID2932 - __ shrl(Address(r22, r23, (Address::ScaleFactor)1, +0x5aaa90f8), 16); // shr dword ptr [r22+r23*2+0x5aaa90f8], 16 IID2933 - __ shrl(Address(r23, -0x4dd3146c), 16); // shr dword ptr [r23-0x4dd3146c], 16 IID2934 - __ shrl(Address(r24, r25, (Address::ScaleFactor)1, +0x3e6cb268), 16); // shr dword ptr [r24+r25*2+0x3e6cb268], 16 IID2935 - __ shrl(Address(r25, +0x47ec7f95), 16); // shr dword ptr [r25+0x47ec7f95], 16 IID2936 - __ shrl(Address(r26, r27, (Address::ScaleFactor)1, +0x5a0bb685), 16); // shr dword ptr [r26+r27*2+0x5a0bb685], 16 IID2937 - __ shrl(Address(r27, r28, (Address::ScaleFactor)0, +0x11feaba0), 16); // shr dword ptr [r27+r28*1+0x11feaba0], 16 IID2938 - __ shrl(Address(r28, r29, (Address::ScaleFactor)2, -0x1ece8042), 16); // shr dword ptr [r28+r29*4-0x1ece8042], 16 IID2939 - __ shrl(Address(r29, r30, (Address::ScaleFactor)2, -0x57f6be00), 16); // shr dword ptr [r29+r30*4-0x57f6be00], 16 IID2940 - __ shrl(Address(r30, r31, (Address::ScaleFactor)2, -0x2e9b4099), 16); // shr dword ptr [r30+r31*4-0x2e9b4099], 16 IID2941 - __ shrl(Address(r31, rcx, (Address::ScaleFactor)1, -0x69b544e4), 16); // shr dword ptr [r31+rcx*2-0x69b544e4], 16 IID2942 -#endif // _LP64 - __ subl(Address(rcx, +0x47d6c80b), 1); // sub dword ptr [rcx+0x47d6c80b], 1 IID2943 - __ subl(Address(rdx, rbx, (Address::ScaleFactor)3, -0x38b919c0), 1); // sub dword ptr [rdx+rbx*8-0x38b919c0], 1 IID2944 -#ifdef _LP64 - __ subl(Address(rbx, r8, (Address::ScaleFactor)2, -0x16800a50), 1); // sub dword ptr [rbx+r8*4-0x16800a50], 1 IID2945 - __ subl(Address(r8, r9, (Address::ScaleFactor)1, -0x89f5494), 1); // sub dword ptr [r8+r9*2-0x89f5494], 1 IID2946 - __ subl(Address(r9, +0x429a18ea), 1); // sub dword ptr [r9+0x429a18ea], 1 IID2947 - __ subl(Address(r10, r11, (Address::ScaleFactor)2, -0xf7fa75), 1); // sub dword ptr [r10+r11*4-0xf7fa75], 1 IID2948 - __ subl(Address(r11, r12, (Address::ScaleFactor)0, -0x7d6bb4df), 1); // sub dword ptr [r11+r12*1-0x7d6bb4df], 1 IID2949 - __ subl(Address(r12, r13, (Address::ScaleFactor)1, +0x3279734c), 1); // sub dword ptr [r12+r13*2+0x3279734c], 1 IID2950 - __ subl(Address(r13, -0x678c3fea), 1); // sub dword ptr [r13-0x678c3fea], 1 IID2951 - __ subl(Address(r14, r15, (Address::ScaleFactor)3, -0x71337ede), 1); // sub dword ptr [r14+r15*8-0x71337ede], 1 IID2952 - __ subl(Address(r15, r16, (Address::ScaleFactor)3, -0x5f82dd63), 1); // sub dword ptr [r15+r16*8-0x5f82dd63], 1 IID2953 - __ subl(Address(r16, r17, (Address::ScaleFactor)0, +0x15887e0d), 1); // sub dword ptr [r16+r17*1+0x15887e0d], 1 IID2954 - __ subl(Address(r17, -0x581694b0), 1); // sub dword ptr [r17-0x581694b0], 1 IID2955 - __ subl(Address(r18, r19, (Address::ScaleFactor)1, +0x6cad8cda), 1); // sub dword ptr [r18+r19*2+0x6cad8cda], 1 IID2956 - __ subl(Address(r19, r20, (Address::ScaleFactor)1, +0x1cb7c58), 1); // sub dword ptr [r19+r20*2+0x1cb7c58], 1 IID2957 - __ subl(Address(r20, r21, (Address::ScaleFactor)2, -0x43e92019), 1); // sub dword ptr [r20+r21*4-0x43e92019], 1 IID2958 - __ subl(Address(r21, r22, (Address::ScaleFactor)3, -0x2e0181cf), 1); // sub dword ptr [r21+r22*8-0x2e0181cf], 1 IID2959 - __ subl(Address(r22, +0x23bee515), 1); // sub dword ptr [r22+0x23bee515], 1 IID2960 - __ subl(Address(r23, r24, (Address::ScaleFactor)2, -0x5d85ba6), 1); // sub dword ptr [r23+r24*4-0x5d85ba6], 1 IID2961 - __ subl(Address(r24, +0x4df307c3), 1); // sub dword ptr [r24+0x4df307c3], 1 IID2962 - __ subl(Address(r25, r26, (Address::ScaleFactor)3, -0x11b25f37), 1); // sub dword ptr [r25+r26*8-0x11b25f37], 1 IID2963 - __ subl(Address(r26, r27, (Address::ScaleFactor)2, +0x5ad8434d), 1); // sub dword ptr [r26+r27*4+0x5ad8434d], 1 IID2964 - __ subl(Address(r27, r28, (Address::ScaleFactor)1, -0x6651bccc), 1); // sub dword ptr [r27+r28*2-0x6651bccc], 1 IID2965 - __ subl(Address(r28, r29, (Address::ScaleFactor)0, +0x4c7f44d9), 1); // sub dword ptr [r28+r29*1+0x4c7f44d9], 1 IID2966 - __ subl(Address(r29, r30, (Address::ScaleFactor)3, +0x324c5f04), 1); // sub dword ptr [r29+r30*8+0x324c5f04], 1 IID2967 - __ subl(Address(r30, r31, (Address::ScaleFactor)3, -0x1ea9f868), 1); // sub dword ptr [r30+r31*8-0x1ea9f868], 1 IID2968 - __ subl(Address(r31, rcx, (Address::ScaleFactor)0, -0x3ce87d94), 1); // sub dword ptr [r31+rcx*1-0x3ce87d94], 1 IID2969 - __ subl(Address(rcx, rdx, (Address::ScaleFactor)1, -0x6e1cdedb), 16); // sub dword ptr [rcx+rdx*2-0x6e1cdedb], 16 IID2970 - __ subl(Address(rdx, rbx, (Address::ScaleFactor)0, +0x14c5b711), 16); // sub dword ptr [rdx+rbx*1+0x14c5b711], 16 IID2971 - __ subl(Address(rbx, -0x5d19245), 16); // sub dword ptr [rbx-0x5d19245], 16 IID2972 - __ subl(Address(r8, r9, (Address::ScaleFactor)3, +0x48abaeaf), 16); // sub dword ptr [r8+r9*8+0x48abaeaf], 16 IID2973 - __ subl(Address(r9, r10, (Address::ScaleFactor)2, -0x1807dc62), 16); // sub dword ptr [r9+r10*4-0x1807dc62], 16 IID2974 - __ subl(Address(r10, r11, (Address::ScaleFactor)0, -0x6f8b8f5a), 16); // sub dword ptr [r10+r11*1-0x6f8b8f5a], 16 IID2975 - __ subl(Address(r11, r12, (Address::ScaleFactor)2, -0x77bd8e44), 16); // sub dword ptr [r11+r12*4-0x77bd8e44], 16 IID2976 - __ subl(Address(r12, r13, (Address::ScaleFactor)3, -0x6f82956e), 16); // sub dword ptr [r12+r13*8-0x6f82956e], 16 IID2977 - __ subl(Address(r13, r14, (Address::ScaleFactor)3, -0x4d944628), 16); // sub dword ptr [r13+r14*8-0x4d944628], 16 IID2978 - __ subl(Address(r14, r15, (Address::ScaleFactor)1, +0x5cb921d4), 16); // sub dword ptr [r14+r15*2+0x5cb921d4], 16 IID2979 - __ subl(Address(r15, r16, (Address::ScaleFactor)0, -0x354e6e6e), 16); // sub dword ptr [r15+r16*1-0x354e6e6e], 16 IID2980 - __ subl(Address(r16, r17, (Address::ScaleFactor)3, +0x6ff2f8a8), 16); // sub dword ptr [r16+r17*8+0x6ff2f8a8], 16 IID2981 - __ subl(Address(r17, r18, (Address::ScaleFactor)3, +0x3416e765), 16); // sub dword ptr [r17+r18*8+0x3416e765], 16 IID2982 - __ subl(Address(r18, r19, (Address::ScaleFactor)2, +0x33ff9515), 16); // sub dword ptr [r18+r19*4+0x33ff9515], 16 IID2983 - __ subl(Address(r19, r20, (Address::ScaleFactor)0, -0x22b7c553), 16); // sub dword ptr [r19+r20*1-0x22b7c553], 16 IID2984 - __ subl(Address(r20, r21, (Address::ScaleFactor)2, +0x335e64f), 16); // sub dword ptr [r20+r21*4+0x335e64f], 16 IID2985 - __ subl(Address(r21, +0x220226d0), 16); // sub dword ptr [r21+0x220226d0], 16 IID2986 - __ subl(Address(r22, r23, (Address::ScaleFactor)2, +0x1f59c62c), 16); // sub dword ptr [r22+r23*4+0x1f59c62c], 16 IID2987 - __ subl(Address(r23, r24, (Address::ScaleFactor)2, -0x48d1ea1d), 16); // sub dword ptr [r23+r24*4-0x48d1ea1d], 16 IID2988 - __ subl(Address(r24, r25, (Address::ScaleFactor)0, -0x3e4a0798), 16); // sub dword ptr [r24+r25*1-0x3e4a0798], 16 IID2989 - __ subl(Address(r25, r26, (Address::ScaleFactor)1, -0xe422b8), 16); // sub dword ptr [r25+r26*2-0xe422b8], 16 IID2990 - __ subl(Address(r26, r27, (Address::ScaleFactor)0, -0x51a5e276), 16); // sub dword ptr [r26+r27*1-0x51a5e276], 16 IID2991 - __ subl(Address(r27, r28, (Address::ScaleFactor)3, -0x65c9c1b4), 16); // sub dword ptr [r27+r28*8-0x65c9c1b4], 16 IID2992 - __ subl(Address(r28, r29, (Address::ScaleFactor)3, -0x10a9940d), 16); // sub dword ptr [r28+r29*8-0x10a9940d], 16 IID2993 - __ subl(Address(r29, r30, (Address::ScaleFactor)3, -0x5b1bc060), 16); // sub dword ptr [r29+r30*8-0x5b1bc060], 16 IID2994 - __ subl(Address(r30, r31, (Address::ScaleFactor)2, +0x4bd294b7), 16); // sub dword ptr [r30+r31*4+0x4bd294b7], 16 IID2995 - __ subl(Address(r31, rcx, (Address::ScaleFactor)2, +0x42d05a60), 16); // sub dword ptr [r31+rcx*4+0x42d05a60], 16 IID2996 - __ subl(Address(rcx, rdx, (Address::ScaleFactor)3, -0x504c139e), 256); // sub dword ptr [rcx+rdx*8-0x504c139e], 256 IID2997 - __ subl(Address(rdx, rbx, (Address::ScaleFactor)1, -0x320b697c), 256); // sub dword ptr [rdx+rbx*2-0x320b697c], 256 IID2998 - __ subl(Address(rbx, r8, (Address::ScaleFactor)1, -0x3a0f8dad), 256); // sub dword ptr [rbx+r8*2-0x3a0f8dad], 256 IID2999 - __ subl(Address(r8, -0x3b723cae), 256); // sub dword ptr [r8-0x3b723cae], 256 IID3000 - __ subl(Address(r9, r10, (Address::ScaleFactor)2, +0x1271e1b4), 256); // sub dword ptr [r9+r10*4+0x1271e1b4], 256 IID3001 - __ subl(Address(r10, r11, (Address::ScaleFactor)1, +0x6d1e25a8), 256); // sub dword ptr [r10+r11*2+0x6d1e25a8], 256 IID3002 - __ subl(Address(r11, r12, (Address::ScaleFactor)1, +0x6bcf6f1c), 256); // sub dword ptr [r11+r12*2+0x6bcf6f1c], 256 IID3003 - __ subl(Address(r12, r13, (Address::ScaleFactor)0, +0x4780d677), 256); // sub dword ptr [r12+r13*1+0x4780d677], 256 IID3004 - __ subl(Address(r13, r14, (Address::ScaleFactor)3, -0x6cdcb30a), 256); // sub dword ptr [r13+r14*8-0x6cdcb30a], 256 IID3005 - __ subl(Address(r14, r15, (Address::ScaleFactor)1, -0x5d02726a), 256); // sub dword ptr [r14+r15*2-0x5d02726a], 256 IID3006 - __ subl(Address(r15, r16, (Address::ScaleFactor)2, -0x67c0e), 256); // sub dword ptr [r15+r16*4-0x67c0e], 256 IID3007 - __ subl(Address(r16, r17, (Address::ScaleFactor)2, -0x4ad3d16), 256); // sub dword ptr [r16+r17*4-0x4ad3d16], 256 IID3008 - __ subl(Address(r17, r18, (Address::ScaleFactor)0, +0x152fb85e), 256); // sub dword ptr [r17+r18*1+0x152fb85e], 256 IID3009 - __ subl(Address(r18, r19, (Address::ScaleFactor)2, -0x5ac74da), 256); // sub dword ptr [r18+r19*4-0x5ac74da], 256 IID3010 - __ subl(Address(r19, r20, (Address::ScaleFactor)1, +0x5ad31ac1), 256); // sub dword ptr [r19+r20*2+0x5ad31ac1], 256 IID3011 - __ subl(Address(r20, r21, (Address::ScaleFactor)1, +0x46f2708f), 256); // sub dword ptr [r20+r21*2+0x46f2708f], 256 IID3012 - __ subl(Address(r21, r22, (Address::ScaleFactor)1, -0x7e49bd98), 256); // sub dword ptr [r21+r22*2-0x7e49bd98], 256 IID3013 - __ subl(Address(r22, +0xa0e2a6), 256); // sub dword ptr [r22+0xa0e2a6], 256 IID3014 - __ subl(Address(r23, r24, (Address::ScaleFactor)1, +0x6d183ce2), 256); // sub dword ptr [r23+r24*2+0x6d183ce2], 256 IID3015 - __ subl(Address(r24, r25, (Address::ScaleFactor)1, +0x42df3b4d), 256); // sub dword ptr [r24+r25*2+0x42df3b4d], 256 IID3016 - __ subl(Address(r25, +0x58029cd8), 256); // sub dword ptr [r25+0x58029cd8], 256 IID3017 - __ subl(Address(r26, r27, (Address::ScaleFactor)1, -0x70fbbc6b), 256); // sub dword ptr [r26+r27*2-0x70fbbc6b], 256 IID3018 - __ subl(Address(r27, r28, (Address::ScaleFactor)1, +0x2b6e65b6), 256); // sub dword ptr [r27+r28*2+0x2b6e65b6], 256 IID3019 - __ subl(Address(r28, r29, (Address::ScaleFactor)2, -0x641777f2), 256); // sub dword ptr [r28+r29*4-0x641777f2], 256 IID3020 - __ subl(Address(r29, r30, (Address::ScaleFactor)3, +0x74669253), 256); // sub dword ptr [r29+r30*8+0x74669253], 256 IID3021 - __ subl(Address(r30, r31, (Address::ScaleFactor)0, +0x49c68fb4), 256); // sub dword ptr [r30+r31*1+0x49c68fb4], 256 IID3022 - __ subl(Address(r31, rcx, (Address::ScaleFactor)1, -0x64e5e63a), 256); // sub dword ptr [r31+rcx*2-0x64e5e63a], 256 IID3023 - __ subl(Address(rcx, rdx, (Address::ScaleFactor)0, -0x39ec0eaf), 4096); // sub dword ptr [rcx+rdx*1-0x39ec0eaf], 4096 IID3024 - __ subl(Address(rdx, rbx, (Address::ScaleFactor)1, -0x1e18c192), 4096); // sub dword ptr [rdx+rbx*2-0x1e18c192], 4096 IID3025 - __ subl(Address(rbx, r8, (Address::ScaleFactor)2, -0x4c401d46), 4096); // sub dword ptr [rbx+r8*4-0x4c401d46], 4096 IID3026 - __ subl(Address(r8, r9, (Address::ScaleFactor)3, -0x58d5f365), 4096); // sub dword ptr [r8+r9*8-0x58d5f365], 4096 IID3027 - __ subl(Address(r9, r10, (Address::ScaleFactor)2, +0x7b639235), 4096); // sub dword ptr [r9+r10*4+0x7b639235], 4096 IID3028 - __ subl(Address(r10, +0x7c8910d5), 4096); // sub dword ptr [r10+0x7c8910d5], 4096 IID3029 - __ subl(Address(r11, +0x16b3c71c), 4096); // sub dword ptr [r11+0x16b3c71c], 4096 IID3030 - __ subl(Address(r12, -0x272815a6), 4096); // sub dword ptr [r12-0x272815a6], 4096 IID3031 - __ subl(Address(r13, r14, (Address::ScaleFactor)2, +0x41106fd1), 4096); // sub dword ptr [r13+r14*4+0x41106fd1], 4096 IID3032 - __ subl(Address(r14, r15, (Address::ScaleFactor)0, +0x662992b4), 4096); // sub dword ptr [r14+r15*1+0x662992b4], 4096 IID3033 - __ subl(Address(r15, +0x4a038f83), 4096); // sub dword ptr [r15+0x4a038f83], 4096 IID3034 - __ subl(Address(r16, r17, (Address::ScaleFactor)0, +0x7d1abe44), 4096); // sub dword ptr [r16+r17*1+0x7d1abe44], 4096 IID3035 - __ subl(Address(r17, r18, (Address::ScaleFactor)2, +0x1cc4f382), 4096); // sub dword ptr [r17+r18*4+0x1cc4f382], 4096 IID3036 - __ subl(Address(r18, r19, (Address::ScaleFactor)1, -0x11fe1ec0), 4096); // sub dword ptr [r18+r19*2-0x11fe1ec0], 4096 IID3037 - __ subl(Address(r19, r20, (Address::ScaleFactor)1, -0x4ba785bd), 4096); // sub dword ptr [r19+r20*2-0x4ba785bd], 4096 IID3038 - __ subl(Address(r20, r21, (Address::ScaleFactor)0, +0x52c457ef), 4096); // sub dword ptr [r20+r21*1+0x52c457ef], 4096 IID3039 - __ subl(Address(r21, r22, (Address::ScaleFactor)1, -0x49203757), 4096); // sub dword ptr [r21+r22*2-0x49203757], 4096 IID3040 - __ subl(Address(r22, +0x5cc7a7e2), 4096); // sub dword ptr [r22+0x5cc7a7e2], 4096 IID3041 - __ subl(Address(r23, r24, (Address::ScaleFactor)3, +0x64a5d091), 4096); // sub dword ptr [r23+r24*8+0x64a5d091], 4096 IID3042 - __ subl(Address(r24, r25, (Address::ScaleFactor)2, -0x382a7f1c), 4096); // sub dword ptr [r24+r25*4-0x382a7f1c], 4096 IID3043 - __ subl(Address(r25, r26, (Address::ScaleFactor)3, +0x62256d13), 4096); // sub dword ptr [r25+r26*8+0x62256d13], 4096 IID3044 - __ subl(Address(r26, r27, (Address::ScaleFactor)3, +0x7e011511), 4096); // sub dword ptr [r26+r27*8+0x7e011511], 4096 IID3045 - __ subl(Address(r27, r28, (Address::ScaleFactor)1, -0x3decf530), 4096); // sub dword ptr [r27+r28*2-0x3decf530], 4096 IID3046 - __ subl(Address(r28, r29, (Address::ScaleFactor)2, +0x372b2bdd), 4096); // sub dword ptr [r28+r29*4+0x372b2bdd], 4096 IID3047 - __ subl(Address(r29, r30, (Address::ScaleFactor)0, -0x311c5b3), 4096); // sub dword ptr [r29+r30*1-0x311c5b3], 4096 IID3048 - __ subl(Address(r30, r31, (Address::ScaleFactor)2, -0xedd3a1f), 4096); // sub dword ptr [r30+r31*4-0xedd3a1f], 4096 IID3049 - __ subl(Address(r31, rcx, (Address::ScaleFactor)3, +0x6d0d76aa), 4096); // sub dword ptr [r31+rcx*8+0x6d0d76aa], 4096 IID3050 - __ subl(Address(rcx, rdx, (Address::ScaleFactor)2, +0x6a5a1abc), 65536); // sub dword ptr [rcx+rdx*4+0x6a5a1abc], 65536 IID3051 - __ subl(Address(rdx, rbx, (Address::ScaleFactor)2, -0x645be86f), 65536); // sub dword ptr [rdx+rbx*4-0x645be86f], 65536 IID3052 - __ subl(Address(rbx, r8, (Address::ScaleFactor)3, +0x6dbea86e), 65536); // sub dword ptr [rbx+r8*8+0x6dbea86e], 65536 IID3053 - __ subl(Address(r8, r9, (Address::ScaleFactor)3, +0x7f961777), 65536); // sub dword ptr [r8+r9*8+0x7f961777], 65536 IID3054 - __ subl(Address(r9, r10, (Address::ScaleFactor)2, +0x124c716e), 65536); // sub dword ptr [r9+r10*4+0x124c716e], 65536 IID3055 - __ subl(Address(r10, r11, (Address::ScaleFactor)2, +0x1582d13c), 65536); // sub dword ptr [r10+r11*4+0x1582d13c], 65536 IID3056 - __ subl(Address(r11, r12, (Address::ScaleFactor)2, -0x50f26210), 65536); // sub dword ptr [r11+r12*4-0x50f26210], 65536 IID3057 - __ subl(Address(r12, -0x50eccf90), 65536); // sub dword ptr [r12-0x50eccf90], 65536 IID3058 - __ subl(Address(r13, r14, (Address::ScaleFactor)0, +0x653170bc), 65536); // sub dword ptr [r13+r14*1+0x653170bc], 65536 IID3059 - __ subl(Address(r14, r15, (Address::ScaleFactor)3, -0x3c1e4c10), 65536); // sub dword ptr [r14+r15*8-0x3c1e4c10], 65536 IID3060 - __ subl(Address(r15, +0x752c14ae), 65536); // sub dword ptr [r15+0x752c14ae], 65536 IID3061 - __ subl(Address(r16, r17, (Address::ScaleFactor)0, +0x5a364046), 65536); // sub dword ptr [r16+r17*1+0x5a364046], 65536 IID3062 - __ subl(Address(r17, r18, (Address::ScaleFactor)3, -0x2bcb32d), 65536); // sub dword ptr [r17+r18*8-0x2bcb32d], 65536 IID3063 - __ subl(Address(r18, +0x68585857), 65536); // sub dword ptr [r18+0x68585857], 65536 IID3064 - __ subl(Address(r19, r20, (Address::ScaleFactor)0, +0x65c65014), 65536); // sub dword ptr [r19+r20*1+0x65c65014], 65536 IID3065 - __ subl(Address(r20, r21, (Address::ScaleFactor)1, -0x623bb956), 65536); // sub dword ptr [r20+r21*2-0x623bb956], 65536 IID3066 - __ subl(Address(r21, r22, (Address::ScaleFactor)2, -0x636dd52e), 65536); // sub dword ptr [r21+r22*4-0x636dd52e], 65536 IID3067 - __ subl(Address(r22, r23, (Address::ScaleFactor)1, +0x3c91ca6d), 65536); // sub dword ptr [r22+r23*2+0x3c91ca6d], 65536 IID3068 - __ subl(Address(r23, r24, (Address::ScaleFactor)3, -0x7ca7e293), 65536); // sub dword ptr [r23+r24*8-0x7ca7e293], 65536 IID3069 - __ subl(Address(r24, r25, (Address::ScaleFactor)3, -0x7c5c8952), 65536); // sub dword ptr [r24+r25*8-0x7c5c8952], 65536 IID3070 - __ subl(Address(r25, r26, (Address::ScaleFactor)1, -0xe49ed18), 65536); // sub dword ptr [r25+r26*2-0xe49ed18], 65536 IID3071 - __ subl(Address(r26, r27, (Address::ScaleFactor)0, +0x380ad4aa), 65536); // sub dword ptr [r26+r27*1+0x380ad4aa], 65536 IID3072 - __ subl(Address(r27, -0x483703d), 65536); // sub dword ptr [r27-0x483703d], 65536 IID3073 - __ subl(Address(r28, r29, (Address::ScaleFactor)0, +0x9c5b762), 65536); // sub dword ptr [r28+r29*1+0x9c5b762], 65536 IID3074 - __ subl(Address(r29, r30, (Address::ScaleFactor)1, +0x40ac6c01), 65536); // sub dword ptr [r29+r30*2+0x40ac6c01], 65536 IID3075 - __ subl(Address(r30, -0x2b901ed5), 65536); // sub dword ptr [r30-0x2b901ed5], 65536 IID3076 - __ subl(Address(r31, rcx, (Address::ScaleFactor)2, +0x3d5022ed), 65536); // sub dword ptr [r31+rcx*4+0x3d5022ed], 65536 IID3077 - __ subl(Address(rcx, rdx, (Address::ScaleFactor)3, +0x1a854192), 1048576); // sub dword ptr [rcx+rdx*8+0x1a854192], 1048576 IID3078 - __ subl(Address(rdx, rbx, (Address::ScaleFactor)1, +0x5aff24b9), 1048576); // sub dword ptr [rdx+rbx*2+0x5aff24b9], 1048576 IID3079 - __ subl(Address(rbx, r8, (Address::ScaleFactor)1, -0x3286225f), 1048576); // sub dword ptr [rbx+r8*2-0x3286225f], 1048576 IID3080 - __ subl(Address(r8, r9, (Address::ScaleFactor)1, +0x3574319f), 1048576); // sub dword ptr [r8+r9*2+0x3574319f], 1048576 IID3081 - __ subl(Address(r9, r10, (Address::ScaleFactor)1, +0x7baea7e8), 1048576); // sub dword ptr [r9+r10*2+0x7baea7e8], 1048576 IID3082 - __ subl(Address(r10, r11, (Address::ScaleFactor)2, +0x389a3c6b), 1048576); // sub dword ptr [r10+r11*4+0x389a3c6b], 1048576 IID3083 - __ subl(Address(r11, r12, (Address::ScaleFactor)1, +0x71a3800a), 1048576); // sub dword ptr [r11+r12*2+0x71a3800a], 1048576 IID3084 - __ subl(Address(r12, +0x256284e3), 1048576); // sub dword ptr [r12+0x256284e3], 1048576 IID3085 - __ subl(Address(r13, r14, (Address::ScaleFactor)2, -0x400f85fe), 1048576); // sub dword ptr [r13+r14*4-0x400f85fe], 1048576 IID3086 - __ subl(Address(r14, r15, (Address::ScaleFactor)2, -0x68077ddb), 1048576); // sub dword ptr [r14+r15*4-0x68077ddb], 1048576 IID3087 - __ subl(Address(r15, r16, (Address::ScaleFactor)0, -0x59fdad53), 1048576); // sub dword ptr [r15+r16*1-0x59fdad53], 1048576 IID3088 - __ subl(Address(r16, r17, (Address::ScaleFactor)0, +0x8d6fefc), 1048576); // sub dword ptr [r16+r17*1+0x8d6fefc], 1048576 IID3089 - __ subl(Address(r17, r18, (Address::ScaleFactor)1, +0xe6cc232), 1048576); // sub dword ptr [r17+r18*2+0xe6cc232], 1048576 IID3090 - __ subl(Address(r18, r19, (Address::ScaleFactor)1, +0x550c07cc), 1048576); // sub dword ptr [r18+r19*2+0x550c07cc], 1048576 IID3091 - __ subl(Address(r19, +0x11e2f693), 1048576); // sub dword ptr [r19+0x11e2f693], 1048576 IID3092 - __ subl(Address(r20, r21, (Address::ScaleFactor)2, +0x1457e10f), 1048576); // sub dword ptr [r20+r21*4+0x1457e10f], 1048576 IID3093 - __ subl(Address(r21, r22, (Address::ScaleFactor)3, -0x41d16337), 1048576); // sub dword ptr [r21+r22*8-0x41d16337], 1048576 IID3094 - __ subl(Address(r22, r23, (Address::ScaleFactor)1, +0x22dd04f8), 1048576); // sub dword ptr [r22+r23*2+0x22dd04f8], 1048576 IID3095 - __ subl(Address(r23, r24, (Address::ScaleFactor)1, -0x3c426395), 1048576); // sub dword ptr [r23+r24*2-0x3c426395], 1048576 IID3096 - __ subl(Address(r24, r25, (Address::ScaleFactor)1, -0x4b98784c), 1048576); // sub dword ptr [r24+r25*2-0x4b98784c], 1048576 IID3097 - __ subl(Address(r25, r26, (Address::ScaleFactor)0, -0x5221b905), 1048576); // sub dword ptr [r25+r26*1-0x5221b905], 1048576 IID3098 - __ subl(Address(r26, +0x4fa7a972), 1048576); // sub dword ptr [r26+0x4fa7a972], 1048576 IID3099 - __ subl(Address(r27, r28, (Address::ScaleFactor)1, +0x2cc34840), 1048576); // sub dword ptr [r27+r28*2+0x2cc34840], 1048576 IID3100 - __ subl(Address(r28, r29, (Address::ScaleFactor)0, +0x4ac1dd71), 1048576); // sub dword ptr [r28+r29*1+0x4ac1dd71], 1048576 IID3101 - __ subl(Address(r29, r30, (Address::ScaleFactor)1, -0x5e8d78ed), 1048576); // sub dword ptr [r29+r30*2-0x5e8d78ed], 1048576 IID3102 - __ subl(Address(r30, r31, (Address::ScaleFactor)3, +0x7b13ddc2), 1048576); // sub dword ptr [r30+r31*8+0x7b13ddc2], 1048576 IID3103 - __ subl(Address(r31, rcx, (Address::ScaleFactor)3, -0x5792070), 1048576); // sub dword ptr [r31+rcx*8-0x5792070], 1048576 IID3104 - __ subl(Address(rcx, rdx, (Address::ScaleFactor)2, +0x544812e2), 16777216); // sub dword ptr [rcx+rdx*4+0x544812e2], 16777216 IID3105 - __ subl(Address(rdx, rbx, (Address::ScaleFactor)0, -0x4f04dd81), 16777216); // sub dword ptr [rdx+rbx*1-0x4f04dd81], 16777216 IID3106 - __ subl(Address(rbx, r8, (Address::ScaleFactor)2, -0x5a77c7c0), 16777216); // sub dword ptr [rbx+r8*4-0x5a77c7c0], 16777216 IID3107 - __ subl(Address(r8, r9, (Address::ScaleFactor)2, +0x27324e0f), 16777216); // sub dword ptr [r8+r9*4+0x27324e0f], 16777216 IID3108 - __ subl(Address(r9, +0x2321807f), 16777216); // sub dword ptr [r9+0x2321807f], 16777216 IID3109 - __ subl(Address(r10, r11, (Address::ScaleFactor)2, -0x64d1cc24), 16777216); // sub dword ptr [r10+r11*4-0x64d1cc24], 16777216 IID3110 - __ subl(Address(r11, r12, (Address::ScaleFactor)3, +0x51a000e0), 16777216); // sub dword ptr [r11+r12*8+0x51a000e0], 16777216 IID3111 - __ subl(Address(r12, r13, (Address::ScaleFactor)0, +0x593b1f8c), 16777216); // sub dword ptr [r12+r13*1+0x593b1f8c], 16777216 IID3112 - __ subl(Address(r13, +0x1b39c1cf), 16777216); // sub dword ptr [r13+0x1b39c1cf], 16777216 IID3113 - __ subl(Address(r14, r15, (Address::ScaleFactor)0, -0xaea85d8), 16777216); // sub dword ptr [r14+r15*1-0xaea85d8], 16777216 IID3114 - __ subl(Address(r15, r16, (Address::ScaleFactor)0, +0x14dbd47c), 16777216); // sub dword ptr [r15+r16*1+0x14dbd47c], 16777216 IID3115 - __ subl(Address(r16, r17, (Address::ScaleFactor)2, -0x7819a7db), 16777216); // sub dword ptr [r16+r17*4-0x7819a7db], 16777216 IID3116 - __ subl(Address(r17, r18, (Address::ScaleFactor)1, -0x6fb4e2eb), 16777216); // sub dword ptr [r17+r18*2-0x6fb4e2eb], 16777216 IID3117 - __ subl(Address(r18, r19, (Address::ScaleFactor)3, -0x1d83eab6), 16777216); // sub dword ptr [r18+r19*8-0x1d83eab6], 16777216 IID3118 - __ subl(Address(r19, -0x4a365563), 16777216); // sub dword ptr [r19-0x4a365563], 16777216 IID3119 - __ subl(Address(r20, r21, (Address::ScaleFactor)0, -0x14cae487), 16777216); // sub dword ptr [r20+r21*1-0x14cae487], 16777216 IID3120 - __ subl(Address(r21, r22, (Address::ScaleFactor)0, -0x65542a92), 16777216); // sub dword ptr [r21+r22*1-0x65542a92], 16777216 IID3121 - __ subl(Address(r22, r23, (Address::ScaleFactor)1, -0x477d8c81), 16777216); // sub dword ptr [r22+r23*2-0x477d8c81], 16777216 IID3122 - __ subl(Address(r23, -0x1ba0a8d3), 16777216); // sub dword ptr [r23-0x1ba0a8d3], 16777216 IID3123 - __ subl(Address(r24, r25, (Address::ScaleFactor)3, +0x69bef6c3), 16777216); // sub dword ptr [r24+r25*8+0x69bef6c3], 16777216 IID3124 - __ subl(Address(r25, -0x6dd50dbb), 16777216); // sub dword ptr [r25-0x6dd50dbb], 16777216 IID3125 - __ subl(Address(r26, r27, (Address::ScaleFactor)3, -0x349c9612), 16777216); // sub dword ptr [r26+r27*8-0x349c9612], 16777216 IID3126 - __ subl(Address(r27, -0x22d9c0c4), 16777216); // sub dword ptr [r27-0x22d9c0c4], 16777216 IID3127 - __ subl(Address(r28, r29, (Address::ScaleFactor)2, -0x499f8284), 16777216); // sub dword ptr [r28+r29*4-0x499f8284], 16777216 IID3128 - __ subl(Address(r29, r30, (Address::ScaleFactor)2, -0x42846f24), 16777216); // sub dword ptr [r29+r30*4-0x42846f24], 16777216 IID3129 - __ subl(Address(r30, r31, (Address::ScaleFactor)1, -0x3cbbfe93), 16777216); // sub dword ptr [r30+r31*2-0x3cbbfe93], 16777216 IID3130 - __ subl(Address(r31, rcx, (Address::ScaleFactor)1, -0x374b83e1), 16777216); // sub dword ptr [r31+rcx*2-0x374b83e1], 16777216 IID3131 - __ subl(Address(rcx, rdx, (Address::ScaleFactor)2, -0x4578341e), 268435456); // sub dword ptr [rcx+rdx*4-0x4578341e], 268435456 IID3132 - __ subl(Address(rdx, rbx, (Address::ScaleFactor)0, +0x7e116fc), 268435456); // sub dword ptr [rdx+rbx*1+0x7e116fc], 268435456 IID3133 - __ subl(Address(rbx, r8, (Address::ScaleFactor)0, +0x202da016), 268435456); // sub dword ptr [rbx+r8*1+0x202da016], 268435456 IID3134 - __ subl(Address(r8, r9, (Address::ScaleFactor)3, -0x7fd12432), 268435456); // sub dword ptr [r8+r9*8-0x7fd12432], 268435456 IID3135 - __ subl(Address(r9, r10, (Address::ScaleFactor)2, -0x20dd0a26), 268435456); // sub dword ptr [r9+r10*4-0x20dd0a26], 268435456 IID3136 - __ subl(Address(r10, +0x12eb6439), 268435456); // sub dword ptr [r10+0x12eb6439], 268435456 IID3137 - __ subl(Address(r11, r12, (Address::ScaleFactor)2, +0x554c2dff), 268435456); // sub dword ptr [r11+r12*4+0x554c2dff], 268435456 IID3138 - __ subl(Address(r12, +0x775c0f64), 268435456); // sub dword ptr [r12+0x775c0f64], 268435456 IID3139 - __ subl(Address(r13, r14, (Address::ScaleFactor)3, -0x67b14eca), 268435456); // sub dword ptr [r13+r14*8-0x67b14eca], 268435456 IID3140 - __ subl(Address(r14, r15, (Address::ScaleFactor)0, +0x66b42c4), 268435456); // sub dword ptr [r14+r15*1+0x66b42c4], 268435456 IID3141 - __ subl(Address(r15, r16, (Address::ScaleFactor)2, +0x66dce012), 268435456); // sub dword ptr [r15+r16*4+0x66dce012], 268435456 IID3142 - __ subl(Address(r16, r17, (Address::ScaleFactor)1, +0x50fd9832), 268435456); // sub dword ptr [r16+r17*2+0x50fd9832], 268435456 IID3143 - __ subl(Address(r17, r18, (Address::ScaleFactor)2, +0x4dcb5af), 268435456); // sub dword ptr [r17+r18*4+0x4dcb5af], 268435456 IID3144 - __ subl(Address(r18, +0x53c70b8e), 268435456); // sub dword ptr [r18+0x53c70b8e], 268435456 IID3145 - __ subl(Address(r19, r20, (Address::ScaleFactor)2, -0x493a5050), 268435456); // sub dword ptr [r19+r20*4-0x493a5050], 268435456 IID3146 - __ subl(Address(r20, r21, (Address::ScaleFactor)1, +0x5d7d9b98), 268435456); // sub dword ptr [r20+r21*2+0x5d7d9b98], 268435456 IID3147 - __ subl(Address(r21, -0xb287e06), 268435456); // sub dword ptr [r21-0xb287e06], 268435456 IID3148 - __ subl(Address(r22, +0x2a519a8a), 268435456); // sub dword ptr [r22+0x2a519a8a], 268435456 IID3149 - __ subl(Address(r23, +0x4249ea7a), 268435456); // sub dword ptr [r23+0x4249ea7a], 268435456 IID3150 - __ subl(Address(r24, r25, (Address::ScaleFactor)1, -0x4e230fbe), 268435456); // sub dword ptr [r24+r25*2-0x4e230fbe], 268435456 IID3151 - __ subl(Address(r25, +0x3e6bc374), 268435456); // sub dword ptr [r25+0x3e6bc374], 268435456 IID3152 - __ subl(Address(r26, r27, (Address::ScaleFactor)3, -0x4c7029ec), 268435456); // sub dword ptr [r26+r27*8-0x4c7029ec], 268435456 IID3153 - __ subl(Address(r27, r28, (Address::ScaleFactor)2, -0x6e85e6b4), 268435456); // sub dword ptr [r27+r28*4-0x6e85e6b4], 268435456 IID3154 - __ subl(Address(r28, r29, (Address::ScaleFactor)0, +0x48515790), 268435456); // sub dword ptr [r28+r29*1+0x48515790], 268435456 IID3155 - __ subl(Address(r29, -0x4017e106), 268435456); // sub dword ptr [r29-0x4017e106], 268435456 IID3156 - __ subl(Address(r30, r31, (Address::ScaleFactor)0, -0x645b9ea0), 268435456); // sub dword ptr [r30+r31*1-0x645b9ea0], 268435456 IID3157 - __ subl(Address(r31, rcx, (Address::ScaleFactor)3, -0x5ff20ad2), 268435456); // sub dword ptr [r31+rcx*8-0x5ff20ad2], 268435456 IID3158 -#endif // _LP64 - __ xorl(Address(rcx, rdx, (Address::ScaleFactor)3, +0x2f3f00af), 1); // xor dword ptr [rcx+rdx*8+0x2f3f00af], 1 IID3159 - __ xorl(Address(rdx, rbx, (Address::ScaleFactor)1, -0x1ffea386), 1); // xor dword ptr [rdx+rbx*2-0x1ffea386], 1 IID3160 -#ifdef _LP64 - __ xorl(Address(rbx, r8, (Address::ScaleFactor)0, +0x9ffa94a), 1); // xor dword ptr [rbx+r8*1+0x9ffa94a], 1 IID3161 - __ xorl(Address(r8, -0x28c5953f), 1); // xor dword ptr [r8-0x28c5953f], 1 IID3162 - __ xorl(Address(r9, r10, (Address::ScaleFactor)3, -0x315ba832), 1); // xor dword ptr [r9+r10*8-0x315ba832], 1 IID3163 - __ xorl(Address(r10, r11, (Address::ScaleFactor)0, +0x1e11e122), 1); // xor dword ptr [r10+r11*1+0x1e11e122], 1 IID3164 - __ xorl(Address(r11, r12, (Address::ScaleFactor)0, -0xd4fbe20), 1); // xor dword ptr [r11+r12*1-0xd4fbe20], 1 IID3165 - __ xorl(Address(r12, r13, (Address::ScaleFactor)2, +0xe020eb1), 1); // xor dword ptr [r12+r13*4+0xe020eb1], 1 IID3166 - __ xorl(Address(r13, r14, (Address::ScaleFactor)3, +0x5a7d6658), 1); // xor dword ptr [r13+r14*8+0x5a7d6658], 1 IID3167 - __ xorl(Address(r14, r15, (Address::ScaleFactor)2, +0x7df2d1ac), 1); // xor dword ptr [r14+r15*4+0x7df2d1ac], 1 IID3168 - __ xorl(Address(r15, r16, (Address::ScaleFactor)0, +0x4c516457), 1); // xor dword ptr [r15+r16*1+0x4c516457], 1 IID3169 - __ xorl(Address(r16, r17, (Address::ScaleFactor)3, -0x6c58b516), 1); // xor dword ptr [r16+r17*8-0x6c58b516], 1 IID3170 - __ xorl(Address(r17, r18, (Address::ScaleFactor)3, -0x3df43b8), 1); // xor dword ptr [r17+r18*8-0x3df43b8], 1 IID3171 - __ xorl(Address(r18, r19, (Address::ScaleFactor)1, +0x5027b69), 1); // xor dword ptr [r18+r19*2+0x5027b69], 1 IID3172 - __ xorl(Address(r19, -0x36018963), 1); // xor dword ptr [r19-0x36018963], 1 IID3173 - __ xorl(Address(r20, r21, (Address::ScaleFactor)2, -0x346ccbbe), 1); // xor dword ptr [r20+r21*4-0x346ccbbe], 1 IID3174 - __ xorl(Address(r21, r22, (Address::ScaleFactor)0, -0x5fe5dbe1), 1); // xor dword ptr [r21+r22*1-0x5fe5dbe1], 1 IID3175 - __ xorl(Address(r22, r23, (Address::ScaleFactor)0, -0x2899d6f5), 1); // xor dword ptr [r22+r23*1-0x2899d6f5], 1 IID3176 - __ xorl(Address(r23, r24, (Address::ScaleFactor)1, -0x44e628e5), 1); // xor dword ptr [r23+r24*2-0x44e628e5], 1 IID3177 - __ xorl(Address(r24, r25, (Address::ScaleFactor)2, +0xd36689b), 1); // xor dword ptr [r24+r25*4+0xd36689b], 1 IID3178 - __ xorl(Address(r25, r26, (Address::ScaleFactor)1, +0x42dd96ae), 1); // xor dword ptr [r25+r26*2+0x42dd96ae], 1 IID3179 - __ xorl(Address(r26, r27, (Address::ScaleFactor)1, -0x385083d5), 1); // xor dword ptr [r26+r27*2-0x385083d5], 1 IID3180 - __ xorl(Address(r27, r28, (Address::ScaleFactor)0, -0x6f502c2c), 1); // xor dword ptr [r27+r28*1-0x6f502c2c], 1 IID3181 - __ xorl(Address(r28, r29, (Address::ScaleFactor)0, -0x79489e2f), 1); // xor dword ptr [r28+r29*1-0x79489e2f], 1 IID3182 - __ xorl(Address(r29, -0x365ef52b), 1); // xor dword ptr [r29-0x365ef52b], 1 IID3183 - __ xorl(Address(r30, -0x219e146a), 1); // xor dword ptr [r30-0x219e146a], 1 IID3184 - __ xorl(Address(r31, rcx, (Address::ScaleFactor)1, +0x5879665), 1); // xor dword ptr [r31+rcx*2+0x5879665], 1 IID3185 - __ xorl(Address(rcx, rdx, (Address::ScaleFactor)3, -0x3247ee4f), 16); // xor dword ptr [rcx+rdx*8-0x3247ee4f], 16 IID3186 - __ xorl(Address(rdx, rbx, (Address::ScaleFactor)2, -0x70e1d616), 16); // xor dword ptr [rdx+rbx*4-0x70e1d616], 16 IID3187 - __ xorl(Address(rbx, r8, (Address::ScaleFactor)2, +0x60e0fd27), 16); // xor dword ptr [rbx+r8*4+0x60e0fd27], 16 IID3188 - __ xorl(Address(r8, r9, (Address::ScaleFactor)3, -0xf4d6d23), 16); // xor dword ptr [r8+r9*8-0xf4d6d23], 16 IID3189 - __ xorl(Address(r9, r10, (Address::ScaleFactor)3, -0x26796a29), 16); // xor dword ptr [r9+r10*8-0x26796a29], 16 IID3190 - __ xorl(Address(r10, r11, (Address::ScaleFactor)0, -0x6e53d3c8), 16); // xor dword ptr [r10+r11*1-0x6e53d3c8], 16 IID3191 - __ xorl(Address(r11, r12, (Address::ScaleFactor)2, -0x4ada327d), 16); // xor dword ptr [r11+r12*4-0x4ada327d], 16 IID3192 - __ xorl(Address(r12, -0x4bc30c2), 16); // xor dword ptr [r12-0x4bc30c2], 16 IID3193 - __ xorl(Address(r13, r14, (Address::ScaleFactor)0, -0x5cf81d9f), 16); // xor dword ptr [r13+r14*1-0x5cf81d9f], 16 IID3194 - __ xorl(Address(r14, r15, (Address::ScaleFactor)1, +0x130ba88a), 16); // xor dword ptr [r14+r15*2+0x130ba88a], 16 IID3195 - __ xorl(Address(r15, r16, (Address::ScaleFactor)1, +0x36b34593), 16); // xor dword ptr [r15+r16*2+0x36b34593], 16 IID3196 - __ xorl(Address(r16, r17, (Address::ScaleFactor)3, +0x5a713674), 16); // xor dword ptr [r16+r17*8+0x5a713674], 16 IID3197 - __ xorl(Address(r17, r18, (Address::ScaleFactor)2, -0x3590931a), 16); // xor dword ptr [r17+r18*4-0x3590931a], 16 IID3198 - __ xorl(Address(r18, r19, (Address::ScaleFactor)1, +0x104f6b79), 16); // xor dword ptr [r18+r19*2+0x104f6b79], 16 IID3199 - __ xorl(Address(r19, r20, (Address::ScaleFactor)0, -0x41b782ac), 16); // xor dword ptr [r19+r20*1-0x41b782ac], 16 IID3200 - __ xorl(Address(r20, r21, (Address::ScaleFactor)2, -0x638a2948), 16); // xor dword ptr [r20+r21*4-0x638a2948], 16 IID3201 - __ xorl(Address(r21, r22, (Address::ScaleFactor)3, -0x7717fb51), 16); // xor dword ptr [r21+r22*8-0x7717fb51], 16 IID3202 - __ xorl(Address(r22, r23, (Address::ScaleFactor)3, +0x63bd22c6), 16); // xor dword ptr [r22+r23*8+0x63bd22c6], 16 IID3203 - __ xorl(Address(r23, r24, (Address::ScaleFactor)0, +0x12ed89e5), 16); // xor dword ptr [r23+r24*1+0x12ed89e5], 16 IID3204 - __ xorl(Address(r24, r25, (Address::ScaleFactor)3, -0x7de09301), 16); // xor dword ptr [r24+r25*8-0x7de09301], 16 IID3205 - __ xorl(Address(r25, r26, (Address::ScaleFactor)1, +0x5c306c62), 16); // xor dword ptr [r25+r26*2+0x5c306c62], 16 IID3206 - __ xorl(Address(r26, r27, (Address::ScaleFactor)1, -0xe658c3f), 16); // xor dword ptr [r26+r27*2-0xe658c3f], 16 IID3207 - __ xorl(Address(r27, r28, (Address::ScaleFactor)0, +0x49d911fe), 16); // xor dword ptr [r27+r28*1+0x49d911fe], 16 IID3208 - __ xorl(Address(r28, r29, (Address::ScaleFactor)0, -0x577ff8e0), 16); // xor dword ptr [r28+r29*1-0x577ff8e0], 16 IID3209 - __ xorl(Address(r29, r30, (Address::ScaleFactor)0, -0x24dc6705), 16); // xor dword ptr [r29+r30*1-0x24dc6705], 16 IID3210 - __ xorl(Address(r30, r31, (Address::ScaleFactor)1, +0x5d02735d), 16); // xor dword ptr [r30+r31*2+0x5d02735d], 16 IID3211 - __ xorl(Address(r31, rcx, (Address::ScaleFactor)2, +0x6c76a0), 16); // xor dword ptr [r31+rcx*4+0x6c76a0], 16 IID3212 - __ xorl(Address(rcx, rdx, (Address::ScaleFactor)0, -0x7864323f), 256); // xor dword ptr [rcx+rdx*1-0x7864323f], 256 IID3213 - __ xorl(Address(rdx, -0x52a37b61), 256); // xor dword ptr [rdx-0x52a37b61], 256 IID3214 - __ xorl(Address(rbx, r8, (Address::ScaleFactor)0, +0x3e5d4c91), 256); // xor dword ptr [rbx+r8*1+0x3e5d4c91], 256 IID3215 - __ xorl(Address(r8, r9, (Address::ScaleFactor)2, +0x1d489ee8), 256); // xor dword ptr [r8+r9*4+0x1d489ee8], 256 IID3216 - __ xorl(Address(r9, +0x614c53ab), 256); // xor dword ptr [r9+0x614c53ab], 256 IID3217 - __ xorl(Address(r10, r11, (Address::ScaleFactor)3, -0x1a937ede), 256); // xor dword ptr [r10+r11*8-0x1a937ede], 256 IID3218 - __ xorl(Address(r11, r12, (Address::ScaleFactor)2, +0x2a35fe83), 256); // xor dword ptr [r11+r12*4+0x2a35fe83], 256 IID3219 - __ xorl(Address(r12, r13, (Address::ScaleFactor)0, -0x772987b), 256); // xor dword ptr [r12+r13*1-0x772987b], 256 IID3220 - __ xorl(Address(r13, r14, (Address::ScaleFactor)0, +0x525b033), 256); // xor dword ptr [r13+r14*1+0x525b033], 256 IID3221 - __ xorl(Address(r14, r15, (Address::ScaleFactor)1, +0x170ceddf), 256); // xor dword ptr [r14+r15*2+0x170ceddf], 256 IID3222 - __ xorl(Address(r15, r16, (Address::ScaleFactor)2, +0x41ceb2ec), 256); // xor dword ptr [r15+r16*4+0x41ceb2ec], 256 IID3223 - __ xorl(Address(r16, r17, (Address::ScaleFactor)1, -0x4282666d), 256); // xor dword ptr [r16+r17*2-0x4282666d], 256 IID3224 - __ xorl(Address(r17, r18, (Address::ScaleFactor)1, -0xc9c2264), 256); // xor dword ptr [r17+r18*2-0xc9c2264], 256 IID3225 - __ xorl(Address(r18, r19, (Address::ScaleFactor)1, -0x2ef83d19), 256); // xor dword ptr [r18+r19*2-0x2ef83d19], 256 IID3226 - __ xorl(Address(r19, r20, (Address::ScaleFactor)0, +0x4e16c55b), 256); // xor dword ptr [r19+r20*1+0x4e16c55b], 256 IID3227 - __ xorl(Address(r20, r21, (Address::ScaleFactor)0, -0x5545a25c), 256); // xor dword ptr [r20+r21*1-0x5545a25c], 256 IID3228 - __ xorl(Address(r21, r22, (Address::ScaleFactor)0, -0x2f72d510), 256); // xor dword ptr [r21+r22*1-0x2f72d510], 256 IID3229 - __ xorl(Address(r22, r23, (Address::ScaleFactor)0, -0x454d226f), 256); // xor dword ptr [r22+r23*1-0x454d226f], 256 IID3230 - __ xorl(Address(r23, r24, (Address::ScaleFactor)2, -0x63b45c37), 256); // xor dword ptr [r23+r24*4-0x63b45c37], 256 IID3231 - __ xorl(Address(r24, r25, (Address::ScaleFactor)2, -0x60688efe), 256); // xor dword ptr [r24+r25*4-0x60688efe], 256 IID3232 - __ xorl(Address(r25, -0x5f9f7ded), 256); // xor dword ptr [r25-0x5f9f7ded], 256 IID3233 - __ xorl(Address(r26, r27, (Address::ScaleFactor)0, +0x48e6db06), 256); // xor dword ptr [r26+r27*1+0x48e6db06], 256 IID3234 - __ xorl(Address(r27, r28, (Address::ScaleFactor)2, -0x2e08936), 256); // xor dword ptr [r27+r28*4-0x2e08936], 256 IID3235 - __ xorl(Address(r28, r29, (Address::ScaleFactor)0, +0x3b46dc90), 256); // xor dword ptr [r28+r29*1+0x3b46dc90], 256 IID3236 - __ xorl(Address(r29, +0x21697c11), 256); // xor dword ptr [r29+0x21697c11], 256 IID3237 - __ xorl(Address(r30, +0x212f0561), 256); // xor dword ptr [r30+0x212f0561], 256 IID3238 - __ xorl(Address(r31, -0x285be04a), 256); // xor dword ptr [r31-0x285be04a], 256 IID3239 - __ xorl(Address(rcx, rdx, (Address::ScaleFactor)0, -0xd36ea25), 4096); // xor dword ptr [rcx+rdx*1-0xd36ea25], 4096 IID3240 - __ xorl(Address(rdx, +0x61719b89), 4096); // xor dword ptr [rdx+0x61719b89], 4096 IID3241 - __ xorl(Address(rbx, -0x54ea35d8), 4096); // xor dword ptr [rbx-0x54ea35d8], 4096 IID3242 - __ xorl(Address(r8, r9, (Address::ScaleFactor)3, -0x772b1d08), 4096); // xor dword ptr [r8+r9*8-0x772b1d08], 4096 IID3243 - __ xorl(Address(r9, r10, (Address::ScaleFactor)3, +0x20f0ca80), 4096); // xor dword ptr [r9+r10*8+0x20f0ca80], 4096 IID3244 - __ xorl(Address(r10, r11, (Address::ScaleFactor)1, -0x97b2fa9), 4096); // xor dword ptr [r10+r11*2-0x97b2fa9], 4096 IID3245 - __ xorl(Address(r11, r12, (Address::ScaleFactor)3, +0x11d9a322), 4096); // xor dword ptr [r11+r12*8+0x11d9a322], 4096 IID3246 - __ xorl(Address(r12, r13, (Address::ScaleFactor)1, +0x3522b7f7), 4096); // xor dword ptr [r12+r13*2+0x3522b7f7], 4096 IID3247 - __ xorl(Address(r13, r14, (Address::ScaleFactor)3, -0x5dea15ea), 4096); // xor dword ptr [r13+r14*8-0x5dea15ea], 4096 IID3248 - __ xorl(Address(r14, r15, (Address::ScaleFactor)2, +0x15b66502), 4096); // xor dword ptr [r14+r15*4+0x15b66502], 4096 IID3249 - __ xorl(Address(r15, r16, (Address::ScaleFactor)3, +0x4359b8a4), 4096); // xor dword ptr [r15+r16*8+0x4359b8a4], 4096 IID3250 - __ xorl(Address(r16, +0x552d19aa), 4096); // xor dword ptr [r16+0x552d19aa], 4096 IID3251 - __ xorl(Address(r17, r18, (Address::ScaleFactor)0, +0x6107ba96), 4096); // xor dword ptr [r17+r18*1+0x6107ba96], 4096 IID3252 - __ xorl(Address(r18, r19, (Address::ScaleFactor)0, +0xb45fad7), 4096); // xor dword ptr [r18+r19*1+0xb45fad7], 4096 IID3253 - __ xorl(Address(r19, r20, (Address::ScaleFactor)1, +0x4cb2da1c), 4096); // xor dword ptr [r19+r20*2+0x4cb2da1c], 4096 IID3254 - __ xorl(Address(r20, r21, (Address::ScaleFactor)2, -0x1deeb1e7), 4096); // xor dword ptr [r20+r21*4-0x1deeb1e7], 4096 IID3255 - __ xorl(Address(r21, r22, (Address::ScaleFactor)1, +0x5f566370), 4096); // xor dword ptr [r21+r22*2+0x5f566370], 4096 IID3256 - __ xorl(Address(r22, r23, (Address::ScaleFactor)1, -0x63eb73a5), 4096); // xor dword ptr [r22+r23*2-0x63eb73a5], 4096 IID3257 - __ xorl(Address(r23, r24, (Address::ScaleFactor)2, -0x6d6d6466), 4096); // xor dword ptr [r23+r24*4-0x6d6d6466], 4096 IID3258 - __ xorl(Address(r24, r25, (Address::ScaleFactor)1, +0x720b61ff), 4096); // xor dword ptr [r24+r25*2+0x720b61ff], 4096 IID3259 - __ xorl(Address(r25, r26, (Address::ScaleFactor)0, -0x6237dd82), 4096); // xor dword ptr [r25+r26*1-0x6237dd82], 4096 IID3260 - __ xorl(Address(r26, r27, (Address::ScaleFactor)0, -0x5060e876), 4096); // xor dword ptr [r26+r27*1-0x5060e876], 4096 IID3261 - __ xorl(Address(r27, r28, (Address::ScaleFactor)3, -0x31efd7a2), 4096); // xor dword ptr [r27+r28*8-0x31efd7a2], 4096 IID3262 - __ xorl(Address(r28, r29, (Address::ScaleFactor)3, +0x5658b007), 4096); // xor dword ptr [r28+r29*8+0x5658b007], 4096 IID3263 - __ xorl(Address(r29, r30, (Address::ScaleFactor)3, -0x4fb995c9), 4096); // xor dword ptr [r29+r30*8-0x4fb995c9], 4096 IID3264 - __ xorl(Address(r30, r31, (Address::ScaleFactor)0, -0x328494c5), 4096); // xor dword ptr [r30+r31*1-0x328494c5], 4096 IID3265 - __ xorl(Address(r31, rcx, (Address::ScaleFactor)3, -0x23431e38), 4096); // xor dword ptr [r31+rcx*8-0x23431e38], 4096 IID3266 - __ xorl(Address(rcx, -0xd0feb4f), 65536); // xor dword ptr [rcx-0xd0feb4f], 65536 IID3267 - __ xorl(Address(rdx, rbx, (Address::ScaleFactor)2, +0x58f4ce62), 65536); // xor dword ptr [rdx+rbx*4+0x58f4ce62], 65536 IID3268 - __ xorl(Address(rbx, r8, (Address::ScaleFactor)0, -0x5e6e6dd0), 65536); // xor dword ptr [rbx+r8*1-0x5e6e6dd0], 65536 IID3269 - __ xorl(Address(r8, +0x14ec7015), 65536); // xor dword ptr [r8+0x14ec7015], 65536 IID3270 - __ xorl(Address(r9, r10, (Address::ScaleFactor)0, +0x2af07b85), 65536); // xor dword ptr [r9+r10*1+0x2af07b85], 65536 IID3271 - __ xorl(Address(r10, r11, (Address::ScaleFactor)2, -0x25f3560), 65536); // xor dword ptr [r10+r11*4-0x25f3560], 65536 IID3272 - __ xorl(Address(r11, r12, (Address::ScaleFactor)2, +0x1119761), 65536); // xor dword ptr [r11+r12*4+0x1119761], 65536 IID3273 - __ xorl(Address(r12, r13, (Address::ScaleFactor)0, -0x25b93c25), 65536); // xor dword ptr [r12+r13*1-0x25b93c25], 65536 IID3274 - __ xorl(Address(r13, r14, (Address::ScaleFactor)2, -0x76419fd7), 65536); // xor dword ptr [r13+r14*4-0x76419fd7], 65536 IID3275 - __ xorl(Address(r14, r15, (Address::ScaleFactor)3, +0x11e1b2ed), 65536); // xor dword ptr [r14+r15*8+0x11e1b2ed], 65536 IID3276 - __ xorl(Address(r15, r16, (Address::ScaleFactor)0, -0x3a515be3), 65536); // xor dword ptr [r15+r16*1-0x3a515be3], 65536 IID3277 - __ xorl(Address(r16, r17, (Address::ScaleFactor)1, +0x3063904b), 65536); // xor dword ptr [r16+r17*2+0x3063904b], 65536 IID3278 - __ xorl(Address(r17, r18, (Address::ScaleFactor)1, -0x4b9d16d7), 65536); // xor dword ptr [r17+r18*2-0x4b9d16d7], 65536 IID3279 - __ xorl(Address(r18, r19, (Address::ScaleFactor)0, +0x6dc8886a), 65536); // xor dword ptr [r18+r19*1+0x6dc8886a], 65536 IID3280 - __ xorl(Address(r19, r20, (Address::ScaleFactor)1, +0x20741bae), 65536); // xor dword ptr [r19+r20*2+0x20741bae], 65536 IID3281 - __ xorl(Address(r20, r21, (Address::ScaleFactor)1, -0x61a2ee54), 65536); // xor dword ptr [r20+r21*2-0x61a2ee54], 65536 IID3282 - __ xorl(Address(r21, r22, (Address::ScaleFactor)0, -0x69b0c46), 65536); // xor dword ptr [r21+r22*1-0x69b0c46], 65536 IID3283 - __ xorl(Address(r22, r23, (Address::ScaleFactor)1, +0x1b45dbfc), 65536); // xor dword ptr [r22+r23*2+0x1b45dbfc], 65536 IID3284 - __ xorl(Address(r23, r24, (Address::ScaleFactor)0, -0x34912085), 65536); // xor dword ptr [r23+r24*1-0x34912085], 65536 IID3285 - __ xorl(Address(r24, r25, (Address::ScaleFactor)2, -0x54a84c8a), 65536); // xor dword ptr [r24+r25*4-0x54a84c8a], 65536 IID3286 - __ xorl(Address(r25, r26, (Address::ScaleFactor)2, -0x2b02bbe9), 65536); // xor dword ptr [r25+r26*4-0x2b02bbe9], 65536 IID3287 - __ xorl(Address(r26, r27, (Address::ScaleFactor)0, -0x62a27ba), 65536); // xor dword ptr [r26+r27*1-0x62a27ba], 65536 IID3288 - __ xorl(Address(r27, -0x197cd44b), 65536); // xor dword ptr [r27-0x197cd44b], 65536 IID3289 - __ xorl(Address(r28, -0x231448b8), 65536); // xor dword ptr [r28-0x231448b8], 65536 IID3290 - __ xorl(Address(r29, r30, (Address::ScaleFactor)3, -0x1b1cf704), 65536); // xor dword ptr [r29+r30*8-0x1b1cf704], 65536 IID3291 - __ xorl(Address(r30, r31, (Address::ScaleFactor)2, -0x30ca1cf5), 65536); // xor dword ptr [r30+r31*4-0x30ca1cf5], 65536 IID3292 - __ xorl(Address(r31, rcx, (Address::ScaleFactor)2, -0x39f6f203), 65536); // xor dword ptr [r31+rcx*4-0x39f6f203], 65536 IID3293 - __ xorl(Address(rcx, rdx, (Address::ScaleFactor)3, +0x38675956), 1048576); // xor dword ptr [rcx+rdx*8+0x38675956], 1048576 IID3294 - __ xorl(Address(rdx, +0x50775056), 1048576); // xor dword ptr [rdx+0x50775056], 1048576 IID3295 - __ xorl(Address(rbx, r8, (Address::ScaleFactor)1, +0x24446f68), 1048576); // xor dword ptr [rbx+r8*2+0x24446f68], 1048576 IID3296 - __ xorl(Address(r8, r9, (Address::ScaleFactor)3, +0x63d9548d), 1048576); // xor dword ptr [r8+r9*8+0x63d9548d], 1048576 IID3297 - __ xorl(Address(r9, r10, (Address::ScaleFactor)1, +0x12ce333a), 1048576); // xor dword ptr [r9+r10*2+0x12ce333a], 1048576 IID3298 - __ xorl(Address(r10, r11, (Address::ScaleFactor)3, +0x46050c68), 1048576); // xor dword ptr [r10+r11*8+0x46050c68], 1048576 IID3299 - __ xorl(Address(r11, r12, (Address::ScaleFactor)0, +0x6e390371), 1048576); // xor dword ptr [r11+r12*1+0x6e390371], 1048576 IID3300 - __ xorl(Address(r12, r13, (Address::ScaleFactor)1, -0x554ce95d), 1048576); // xor dword ptr [r12+r13*2-0x554ce95d], 1048576 IID3301 - __ xorl(Address(r13, r14, (Address::ScaleFactor)3, +0x4a2cee7f), 1048576); // xor dword ptr [r13+r14*8+0x4a2cee7f], 1048576 IID3302 - __ xorl(Address(r14, r15, (Address::ScaleFactor)1, -0x512f6fa8), 1048576); // xor dword ptr [r14+r15*2-0x512f6fa8], 1048576 IID3303 - __ xorl(Address(r15, r16, (Address::ScaleFactor)0, +0x7735130f), 1048576); // xor dword ptr [r15+r16*1+0x7735130f], 1048576 IID3304 - __ xorl(Address(r16, +0x373a967a), 1048576); // xor dword ptr [r16+0x373a967a], 1048576 IID3305 - __ xorl(Address(r17, -0x78dea4f1), 1048576); // xor dword ptr [r17-0x78dea4f1], 1048576 IID3306 - __ xorl(Address(r18, r19, (Address::ScaleFactor)2, -0x2115ad6f), 1048576); // xor dword ptr [r18+r19*4-0x2115ad6f], 1048576 IID3307 - __ xorl(Address(r19, r20, (Address::ScaleFactor)2, -0x455de397), 1048576); // xor dword ptr [r19+r20*4-0x455de397], 1048576 IID3308 - __ xorl(Address(r20, r21, (Address::ScaleFactor)2, +0x22a00c63), 1048576); // xor dword ptr [r20+r21*4+0x22a00c63], 1048576 IID3309 - __ xorl(Address(r21, r22, (Address::ScaleFactor)0, -0x18e2cc87), 1048576); // xor dword ptr [r21+r22*1-0x18e2cc87], 1048576 IID3310 - __ xorl(Address(r22, r23, (Address::ScaleFactor)2, -0xb20269a), 1048576); // xor dword ptr [r22+r23*4-0xb20269a], 1048576 IID3311 - __ xorl(Address(r23, r24, (Address::ScaleFactor)0, +0x30757eaa), 1048576); // xor dword ptr [r23+r24*1+0x30757eaa], 1048576 IID3312 - __ xorl(Address(r24, -0x6d23487), 1048576); // xor dword ptr [r24-0x6d23487], 1048576 IID3313 - __ xorl(Address(r25, r26, (Address::ScaleFactor)2, +0x57f60815), 1048576); // xor dword ptr [r25+r26*4+0x57f60815], 1048576 IID3314 - __ xorl(Address(r26, r27, (Address::ScaleFactor)2, -0x793007d0), 1048576); // xor dword ptr [r26+r27*4-0x793007d0], 1048576 IID3315 - __ xorl(Address(r27, r28, (Address::ScaleFactor)2, +0x29127b8f), 1048576); // xor dword ptr [r27+r28*4+0x29127b8f], 1048576 IID3316 - __ xorl(Address(r28, r29, (Address::ScaleFactor)1, +0x49a88c0f), 1048576); // xor dword ptr [r28+r29*2+0x49a88c0f], 1048576 IID3317 - __ xorl(Address(r29, r30, (Address::ScaleFactor)2, +0x144cad2f), 1048576); // xor dword ptr [r29+r30*4+0x144cad2f], 1048576 IID3318 - __ xorl(Address(r30, r31, (Address::ScaleFactor)1, +0x45a13153), 1048576); // xor dword ptr [r30+r31*2+0x45a13153], 1048576 IID3319 - __ xorl(Address(r31, +0x550884db), 1048576); // xor dword ptr [r31+0x550884db], 1048576 IID3320 - __ xorl(Address(rcx, rdx, (Address::ScaleFactor)1, +0x6eb08f27), 16777216); // xor dword ptr [rcx+rdx*2+0x6eb08f27], 16777216 IID3321 - __ xorl(Address(rdx, -0x1b3caefd), 16777216); // xor dword ptr [rdx-0x1b3caefd], 16777216 IID3322 - __ xorl(Address(rbx, r8, (Address::ScaleFactor)2, -0x87927ba), 16777216); // xor dword ptr [rbx+r8*4-0x87927ba], 16777216 IID3323 - __ xorl(Address(r8, r9, (Address::ScaleFactor)2, -0x282120cf), 16777216); // xor dword ptr [r8+r9*4-0x282120cf], 16777216 IID3324 - __ xorl(Address(r9, r10, (Address::ScaleFactor)2, -0x7d87b7c), 16777216); // xor dword ptr [r9+r10*4-0x7d87b7c], 16777216 IID3325 - __ xorl(Address(r10, r11, (Address::ScaleFactor)0, +0x4c374d18), 16777216); // xor dword ptr [r10+r11*1+0x4c374d18], 16777216 IID3326 - __ xorl(Address(r11, r12, (Address::ScaleFactor)3, -0x2de1c501), 16777216); // xor dword ptr [r11+r12*8-0x2de1c501], 16777216 IID3327 - __ xorl(Address(r12, -0x3894d36d), 16777216); // xor dword ptr [r12-0x3894d36d], 16777216 IID3328 - __ xorl(Address(r13, r14, (Address::ScaleFactor)2, +0x27546ce3), 16777216); // xor dword ptr [r13+r14*4+0x27546ce3], 16777216 IID3329 - __ xorl(Address(r14, r15, (Address::ScaleFactor)2, -0x58001b19), 16777216); // xor dword ptr [r14+r15*4-0x58001b19], 16777216 IID3330 - __ xorl(Address(r15, r16, (Address::ScaleFactor)1, -0x453b2fc9), 16777216); // xor dword ptr [r15+r16*2-0x453b2fc9], 16777216 IID3331 - __ xorl(Address(r16, +0xb5d9b49), 16777216); // xor dword ptr [r16+0xb5d9b49], 16777216 IID3332 - __ xorl(Address(r17, r18, (Address::ScaleFactor)0, +0x2f7a7918), 16777216); // xor dword ptr [r17+r18*1+0x2f7a7918], 16777216 IID3333 - __ xorl(Address(r18, -0x3416c064), 16777216); // xor dword ptr [r18-0x3416c064], 16777216 IID3334 - __ xorl(Address(r19, +0x74fc9a42), 16777216); // xor dword ptr [r19+0x74fc9a42], 16777216 IID3335 - __ xorl(Address(r20, r21, (Address::ScaleFactor)2, +0x3323e9c9), 16777216); // xor dword ptr [r20+r21*4+0x3323e9c9], 16777216 IID3336 - __ xorl(Address(r21, r22, (Address::ScaleFactor)2, +0x4008ab1d), 16777216); // xor dword ptr [r21+r22*4+0x4008ab1d], 16777216 IID3337 - __ xorl(Address(r22, r23, (Address::ScaleFactor)2, +0x4f2a8c87), 16777216); // xor dword ptr [r22+r23*4+0x4f2a8c87], 16777216 IID3338 - __ xorl(Address(r23, r24, (Address::ScaleFactor)3, -0x4a5844dc), 16777216); // xor dword ptr [r23+r24*8-0x4a5844dc], 16777216 IID3339 - __ xorl(Address(r24, r25, (Address::ScaleFactor)1, +0x7d092a14), 16777216); // xor dword ptr [r24+r25*2+0x7d092a14], 16777216 IID3340 - __ xorl(Address(r25, r26, (Address::ScaleFactor)1, -0xe75db46), 16777216); // xor dword ptr [r25+r26*2-0xe75db46], 16777216 IID3341 - __ xorl(Address(r26, r27, (Address::ScaleFactor)1, +0x69d929ff), 16777216); // xor dword ptr [r26+r27*2+0x69d929ff], 16777216 IID3342 - __ xorl(Address(r27, r28, (Address::ScaleFactor)0, +0xc03eb9a), 16777216); // xor dword ptr [r27+r28*1+0xc03eb9a], 16777216 IID3343 - __ xorl(Address(r28, r29, (Address::ScaleFactor)3, +0x3c2dae36), 16777216); // xor dword ptr [r28+r29*8+0x3c2dae36], 16777216 IID3344 - __ xorl(Address(r29, r30, (Address::ScaleFactor)3, +0x6d5f05f3), 16777216); // xor dword ptr [r29+r30*8+0x6d5f05f3], 16777216 IID3345 - __ xorl(Address(r30, r31, (Address::ScaleFactor)3, -0x34bc1338), 16777216); // xor dword ptr [r30+r31*8-0x34bc1338], 16777216 IID3346 - __ xorl(Address(r31, rcx, (Address::ScaleFactor)3, +0x7c2f0cc), 16777216); // xor dword ptr [r31+rcx*8+0x7c2f0cc], 16777216 IID3347 - __ xorl(Address(rcx, rdx, (Address::ScaleFactor)1, -0x33f347e5), 268435456); // xor dword ptr [rcx+rdx*2-0x33f347e5], 268435456 IID3348 - __ xorl(Address(rdx, rbx, (Address::ScaleFactor)3, -0x436200e1), 268435456); // xor dword ptr [rdx+rbx*8-0x436200e1], 268435456 IID3349 - __ xorl(Address(rbx, r8, (Address::ScaleFactor)2, -0x596a12d5), 268435456); // xor dword ptr [rbx+r8*4-0x596a12d5], 268435456 IID3350 - __ xorl(Address(r8, -0x17d6a4c2), 268435456); // xor dword ptr [r8-0x17d6a4c2], 268435456 IID3351 - __ xorl(Address(r9, r10, (Address::ScaleFactor)2, +0x5f16d0ee), 268435456); // xor dword ptr [r9+r10*4+0x5f16d0ee], 268435456 IID3352 - __ xorl(Address(r10, -0x6277f7b5), 268435456); // xor dword ptr [r10-0x6277f7b5], 268435456 IID3353 - __ xorl(Address(r11, r12, (Address::ScaleFactor)2, -0x4aa29561), 268435456); // xor dword ptr [r11+r12*4-0x4aa29561], 268435456 IID3354 - __ xorl(Address(r12, r13, (Address::ScaleFactor)0, -0x61f3a93a), 268435456); // xor dword ptr [r12+r13*1-0x61f3a93a], 268435456 IID3355 - __ xorl(Address(r13, r14, (Address::ScaleFactor)2, +0x988ca50), 268435456); // xor dword ptr [r13+r14*4+0x988ca50], 268435456 IID3356 - __ xorl(Address(r14, -0x2820abeb), 268435456); // xor dword ptr [r14-0x2820abeb], 268435456 IID3357 - __ xorl(Address(r15, r16, (Address::ScaleFactor)2, -0x26627b0d), 268435456); // xor dword ptr [r15+r16*4-0x26627b0d], 268435456 IID3358 - __ xorl(Address(r16, r17, (Address::ScaleFactor)2, -0x6e416bce), 268435456); // xor dword ptr [r16+r17*4-0x6e416bce], 268435456 IID3359 - __ xorl(Address(r17, -0x70203c5e), 268435456); // xor dword ptr [r17-0x70203c5e], 268435456 IID3360 - __ xorl(Address(r18, r19, (Address::ScaleFactor)3, -0x11aa3412), 268435456); // xor dword ptr [r18+r19*8-0x11aa3412], 268435456 IID3361 - __ xorl(Address(r19, r20, (Address::ScaleFactor)0, -0x67edbf91), 268435456); // xor dword ptr [r19+r20*1-0x67edbf91], 268435456 IID3362 - __ xorl(Address(r20, r21, (Address::ScaleFactor)2, +0x21287835), 268435456); // xor dword ptr [r20+r21*4+0x21287835], 268435456 IID3363 - __ xorl(Address(r21, r22, (Address::ScaleFactor)1, -0x326188a3), 268435456); // xor dword ptr [r21+r22*2-0x326188a3], 268435456 IID3364 - __ xorl(Address(r22, r23, (Address::ScaleFactor)1, +0x4437a796), 268435456); // xor dword ptr [r22+r23*2+0x4437a796], 268435456 IID3365 - __ xorl(Address(r23, +0x6b256d2c), 268435456); // xor dword ptr [r23+0x6b256d2c], 268435456 IID3366 - __ xorl(Address(r24, r25, (Address::ScaleFactor)3, -0x4f1bc8d3), 268435456); // xor dword ptr [r24+r25*8-0x4f1bc8d3], 268435456 IID3367 - __ xorl(Address(r25, r26, (Address::ScaleFactor)1, -0x3a0d5aad), 268435456); // xor dword ptr [r25+r26*2-0x3a0d5aad], 268435456 IID3368 - __ xorl(Address(r26, -0x1fce3bb5), 268435456); // xor dword ptr [r26-0x1fce3bb5], 268435456 IID3369 - __ xorl(Address(r27, r28, (Address::ScaleFactor)0, +0x927ca9b), 268435456); // xor dword ptr [r27+r28*1+0x927ca9b], 268435456 IID3370 - __ xorl(Address(r28, r29, (Address::ScaleFactor)0, -0x3243bd2c), 268435456); // xor dword ptr [r28+r29*1-0x3243bd2c], 268435456 IID3371 - __ xorl(Address(r29, r30, (Address::ScaleFactor)0, +0x71ecd00c), 268435456); // xor dword ptr [r29+r30*1+0x71ecd00c], 268435456 IID3372 - __ xorl(Address(r30, r31, (Address::ScaleFactor)2, -0x51fe06c4), 268435456); // xor dword ptr [r30+r31*4-0x51fe06c4], 268435456 IID3373 - __ xorl(Address(r31, rcx, (Address::ScaleFactor)3, +0x31bc5dd4), 268435456); // xor dword ptr [r31+rcx*8+0x31bc5dd4], 268435456 IID3374 -#endif // _LP64 - __ orb(Address(rcx, rdx, (Address::ScaleFactor)3, -0x53b2a454), 1); // or byte ptr [rcx+rdx*8-0x53b2a454], 1 IID3375 - __ orb(Address(rdx, rbx, (Address::ScaleFactor)3, -0xeddedaf), 1); // or byte ptr [rdx+rbx*8-0xeddedaf], 1 IID3376 -#ifdef _LP64 - __ orb(Address(rbx, +0x2e6966f3), 1); // or byte ptr [rbx+0x2e6966f3], 1 IID3377 - __ orb(Address(r8, -0x5bf1041e), 1); // or byte ptr [r8-0x5bf1041e], 1 IID3378 - __ orb(Address(r9, -0x13e383d3), 1); // or byte ptr [r9-0x13e383d3], 1 IID3379 - __ orb(Address(r10, -0x5c6ff8d5), 1); // or byte ptr [r10-0x5c6ff8d5], 1 IID3380 - __ orb(Address(r11, +0x2bc673f), 1); // or byte ptr [r11+0x2bc673f], 1 IID3381 - __ orb(Address(r12, r13, (Address::ScaleFactor)0, -0x59d3aafa), 1); // or byte ptr [r12+r13*1-0x59d3aafa], 1 IID3382 - __ orb(Address(r13, r14, (Address::ScaleFactor)3, -0x51ead8c8), 1); // or byte ptr [r13+r14*8-0x51ead8c8], 1 IID3383 - __ orb(Address(r14, r15, (Address::ScaleFactor)2, +0x4cdab5c6), 1); // or byte ptr [r14+r15*4+0x4cdab5c6], 1 IID3384 - __ orb(Address(r15, r16, (Address::ScaleFactor)3, -0x5d73df54), 1); // or byte ptr [r15+r16*8-0x5d73df54], 1 IID3385 - __ orb(Address(r16, +0x371995ba), 1); // or byte ptr [r16+0x371995ba], 1 IID3386 - __ orb(Address(r17, r18, (Address::ScaleFactor)1, -0xab78da8), 1); // or byte ptr [r17+r18*2-0xab78da8], 1 IID3387 - __ orb(Address(r18, +0x7ecd181a), 1); // or byte ptr [r18+0x7ecd181a], 1 IID3388 - __ orb(Address(r19, r20, (Address::ScaleFactor)0, -0x7b4000fe), 1); // or byte ptr [r19+r20*1-0x7b4000fe], 1 IID3389 - __ orb(Address(r20, r21, (Address::ScaleFactor)1, -0x2c27b318), 1); // or byte ptr [r20+r21*2-0x2c27b318], 1 IID3390 - __ orb(Address(r21, +0x1953207d), 1); // or byte ptr [r21+0x1953207d], 1 IID3391 - __ orb(Address(r22, r23, (Address::ScaleFactor)2, -0x4b1c58bc), 1); // or byte ptr [r22+r23*4-0x4b1c58bc], 1 IID3392 - __ orb(Address(r23, -0x1cef3042), 1); // or byte ptr [r23-0x1cef3042], 1 IID3393 - __ orb(Address(r24, r25, (Address::ScaleFactor)2, -0x3cec7278), 1); // or byte ptr [r24+r25*4-0x3cec7278], 1 IID3394 - __ orb(Address(r25, r26, (Address::ScaleFactor)0, -0xbda75e4), 1); // or byte ptr [r25+r26*1-0xbda75e4], 1 IID3395 - __ orb(Address(r26, r27, (Address::ScaleFactor)3, +0x5a1187b), 1); // or byte ptr [r26+r27*8+0x5a1187b], 1 IID3396 - __ orb(Address(r27, +0x7d6bfc91), 1); // or byte ptr [r27+0x7d6bfc91], 1 IID3397 - __ orb(Address(r28, r29, (Address::ScaleFactor)1, +0x47ea4d53), 1); // or byte ptr [r28+r29*2+0x47ea4d53], 1 IID3398 - __ orb(Address(r29, r30, (Address::ScaleFactor)0, -0x16615d4b), 1); // or byte ptr [r29+r30*1-0x16615d4b], 1 IID3399 - __ orb(Address(r30, r31, (Address::ScaleFactor)3, +0x713428dd), 1); // or byte ptr [r30+r31*8+0x713428dd], 1 IID3400 - __ orb(Address(r31, rcx, (Address::ScaleFactor)0, -0x17233ec3), 1); // or byte ptr [r31+rcx*1-0x17233ec3], 1 IID3401 - __ orb(Address(rcx, rdx, (Address::ScaleFactor)3, -0x41ea485), 4); // or byte ptr [rcx+rdx*8-0x41ea485], 4 IID3402 - __ orb(Address(rdx, rbx, (Address::ScaleFactor)2, -0x11d596b4), 4); // or byte ptr [rdx+rbx*4-0x11d596b4], 4 IID3403 - __ orb(Address(rbx, -0x46476f2e), 4); // or byte ptr [rbx-0x46476f2e], 4 IID3404 - __ orb(Address(r8, +0x1c58f0da), 4); // or byte ptr [r8+0x1c58f0da], 4 IID3405 - __ orb(Address(r9, +0x24d2fc47), 4); // or byte ptr [r9+0x24d2fc47], 4 IID3406 - __ orb(Address(r10, r11, (Address::ScaleFactor)1, +0x31e20b81), 4); // or byte ptr [r10+r11*2+0x31e20b81], 4 IID3407 - __ orb(Address(r11, r12, (Address::ScaleFactor)1, +0xe622ca1), 4); // or byte ptr [r11+r12*2+0xe622ca1], 4 IID3408 - __ orb(Address(r12, r13, (Address::ScaleFactor)1, -0x6c970c6d), 4); // or byte ptr [r12+r13*2-0x6c970c6d], 4 IID3409 - __ orb(Address(r13, r14, (Address::ScaleFactor)1, +0x135d0059), 4); // or byte ptr [r13+r14*2+0x135d0059], 4 IID3410 - __ orb(Address(r14, r15, (Address::ScaleFactor)1, +0x140a0e40), 4); // or byte ptr [r14+r15*2+0x140a0e40], 4 IID3411 - __ orb(Address(r15, r16, (Address::ScaleFactor)0, -0x42cc7ca3), 4); // or byte ptr [r15+r16*1-0x42cc7ca3], 4 IID3412 - __ orb(Address(r16, r17, (Address::ScaleFactor)3, +0x38184c1e), 4); // or byte ptr [r16+r17*8+0x38184c1e], 4 IID3413 - __ orb(Address(r17, r18, (Address::ScaleFactor)0, -0x31d10b1e), 4); // or byte ptr [r17+r18*1-0x31d10b1e], 4 IID3414 - __ orb(Address(r18, r19, (Address::ScaleFactor)2, -0x54de4cad), 4); // or byte ptr [r18+r19*4-0x54de4cad], 4 IID3415 - __ orb(Address(r19, +0x7f4f4a55), 4); // or byte ptr [r19+0x7f4f4a55], 4 IID3416 - __ orb(Address(r20, r21, (Address::ScaleFactor)0, +0x4fbf8480), 4); // or byte ptr [r20+r21*1+0x4fbf8480], 4 IID3417 - __ orb(Address(r21, r22, (Address::ScaleFactor)2, -0x7e1ec442), 4); // or byte ptr [r21+r22*4-0x7e1ec442], 4 IID3418 - __ orb(Address(r22, r23, (Address::ScaleFactor)0, +0x4ea98833), 4); // or byte ptr [r22+r23*1+0x4ea98833], 4 IID3419 - __ orb(Address(r23, r24, (Address::ScaleFactor)2, -0x7fbcde38), 4); // or byte ptr [r23+r24*4-0x7fbcde38], 4 IID3420 - __ orb(Address(r24, -0x3c9e03da), 4); // or byte ptr [r24-0x3c9e03da], 4 IID3421 - __ orb(Address(r25, r26, (Address::ScaleFactor)0, -0x54899787), 4); // or byte ptr [r25+r26*1-0x54899787], 4 IID3422 - __ orb(Address(r26, r27, (Address::ScaleFactor)3, -0x70223a8a), 4); // or byte ptr [r26+r27*8-0x70223a8a], 4 IID3423 - __ orb(Address(r27, r28, (Address::ScaleFactor)3, -0x7a1fba49), 4); // or byte ptr [r27+r28*8-0x7a1fba49], 4 IID3424 - __ orb(Address(r28, r29, (Address::ScaleFactor)1, +0x2b980c82), 4); // or byte ptr [r28+r29*2+0x2b980c82], 4 IID3425 - __ orb(Address(r29, r30, (Address::ScaleFactor)3, -0x6a47873d), 4); // or byte ptr [r29+r30*8-0x6a47873d], 4 IID3426 - __ orb(Address(r30, r31, (Address::ScaleFactor)1, +0x53faac8a), 4); // or byte ptr [r30+r31*2+0x53faac8a], 4 IID3427 - __ orb(Address(r31, rcx, (Address::ScaleFactor)0, -0x2d94bc95), 4); // or byte ptr [r31+rcx*1-0x2d94bc95], 4 IID3428 - __ orb(Address(rcx, +0x25db3db3), 16); // or byte ptr [rcx+0x25db3db3], 16 IID3429 - __ orb(Address(rdx, rbx, (Address::ScaleFactor)0, +0x1dea5859), 16); // or byte ptr [rdx+rbx*1+0x1dea5859], 16 IID3430 - __ orb(Address(rbx, r8, (Address::ScaleFactor)2, +0x1fe026a3), 16); // or byte ptr [rbx+r8*4+0x1fe026a3], 16 IID3431 - __ orb(Address(r8, +0x322827), 16); // or byte ptr [r8+0x322827], 16 IID3432 - __ orb(Address(r9, r10, (Address::ScaleFactor)3, -0x32f6f691), 16); // or byte ptr [r9+r10*8-0x32f6f691], 16 IID3433 - __ orb(Address(r10, r11, (Address::ScaleFactor)3, +0x28aa4b8e), 16); // or byte ptr [r10+r11*8+0x28aa4b8e], 16 IID3434 - __ orb(Address(r11, r12, (Address::ScaleFactor)2, -0x5e32c9e8), 16); // or byte ptr [r11+r12*4-0x5e32c9e8], 16 IID3435 - __ orb(Address(r12, r13, (Address::ScaleFactor)2, +0x5a1f25b4), 16); // or byte ptr [r12+r13*4+0x5a1f25b4], 16 IID3436 - __ orb(Address(r13, r14, (Address::ScaleFactor)0, -0x4d519afd), 16); // or byte ptr [r13+r14*1-0x4d519afd], 16 IID3437 - __ orb(Address(r14, r15, (Address::ScaleFactor)2, +0x6b6ea620), 16); // or byte ptr [r14+r15*4+0x6b6ea620], 16 IID3438 - __ orb(Address(r15, -0x62b19249), 16); // or byte ptr [r15-0x62b19249], 16 IID3439 - __ orb(Address(r16, +0x74f3c51f), 16); // or byte ptr [r16+0x74f3c51f], 16 IID3440 - __ orb(Address(r17, r18, (Address::ScaleFactor)2, +0x46dd165e), 16); // or byte ptr [r17+r18*4+0x46dd165e], 16 IID3441 - __ orb(Address(r18, r19, (Address::ScaleFactor)3, +0x731100c1), 16); // or byte ptr [r18+r19*8+0x731100c1], 16 IID3442 - __ orb(Address(r19, r20, (Address::ScaleFactor)2, +0x4008b6f7), 16); // or byte ptr [r19+r20*4+0x4008b6f7], 16 IID3443 - __ orb(Address(r20, r21, (Address::ScaleFactor)3, +0x7731dba5), 16); // or byte ptr [r20+r21*8+0x7731dba5], 16 IID3444 - __ orb(Address(r21, r22, (Address::ScaleFactor)2, -0x5fb9d01d), 16); // or byte ptr [r21+r22*4-0x5fb9d01d], 16 IID3445 - __ orb(Address(r22, r23, (Address::ScaleFactor)0, +0x4aad94be), 16); // or byte ptr [r22+r23*1+0x4aad94be], 16 IID3446 - __ orb(Address(r23, r24, (Address::ScaleFactor)3, +0x299853e), 16); // or byte ptr [r23+r24*8+0x299853e], 16 IID3447 - __ orb(Address(r24, r25, (Address::ScaleFactor)2, +0x286a55ee), 16); // or byte ptr [r24+r25*4+0x286a55ee], 16 IID3448 - __ orb(Address(r25, r26, (Address::ScaleFactor)1, +0x375a903f), 16); // or byte ptr [r25+r26*2+0x375a903f], 16 IID3449 - __ orb(Address(r26, r27, (Address::ScaleFactor)0, -0x30bfb391), 16); // or byte ptr [r26+r27*1-0x30bfb391], 16 IID3450 - __ orb(Address(r27, -0x7c346d19), 16); // or byte ptr [r27-0x7c346d19], 16 IID3451 - __ orb(Address(r28, r29, (Address::ScaleFactor)1, -0x1f19c032), 16); // or byte ptr [r28+r29*2-0x1f19c032], 16 IID3452 - __ orb(Address(r29, r30, (Address::ScaleFactor)0, -0x2480ec89), 16); // or byte ptr [r29+r30*1-0x2480ec89], 16 IID3453 - __ orb(Address(r30, r31, (Address::ScaleFactor)3, -0x7d13cbaa), 16); // or byte ptr [r30+r31*8-0x7d13cbaa], 16 IID3454 - __ orb(Address(r31, rcx, (Address::ScaleFactor)1, +0x34b5206), 16); // or byte ptr [r31+rcx*2+0x34b5206], 16 IID3455 - __ orb(Address(rcx, rdx, (Address::ScaleFactor)0, +0x2ba5f43d), 64); // or byte ptr [rcx+rdx*1+0x2ba5f43d], 64 IID3456 - __ orb(Address(rdx, rbx, (Address::ScaleFactor)3, -0x44540544), 64); // or byte ptr [rdx+rbx*8-0x44540544], 64 IID3457 - __ orb(Address(rbx, +0x61ecb55), 64); // or byte ptr [rbx+0x61ecb55], 64 IID3458 - __ orb(Address(r8, r9, (Address::ScaleFactor)1, -0x73fd7003), 64); // or byte ptr [r8+r9*2-0x73fd7003], 64 IID3459 - __ orb(Address(r9, -0x31c3bb47), 64); // or byte ptr [r9-0x31c3bb47], 64 IID3460 - __ orb(Address(r10, r11, (Address::ScaleFactor)3, +0x250b8017), 64); // or byte ptr [r10+r11*8+0x250b8017], 64 IID3461 - __ orb(Address(r11, r12, (Address::ScaleFactor)2, -0x68195969), 64); // or byte ptr [r11+r12*4-0x68195969], 64 IID3462 - __ orb(Address(r12, -0x1eb88b81), 64); // or byte ptr [r12-0x1eb88b81], 64 IID3463 - __ orb(Address(r13, r14, (Address::ScaleFactor)3, +0xd2efaed), 64); // or byte ptr [r13+r14*8+0xd2efaed], 64 IID3464 - __ orb(Address(r14, -0x2d8f221), 64); // or byte ptr [r14-0x2d8f221], 64 IID3465 - __ orb(Address(r15, r16, (Address::ScaleFactor)1, -0x6fc23bec), 64); // or byte ptr [r15+r16*2-0x6fc23bec], 64 IID3466 - __ orb(Address(r16, r17, (Address::ScaleFactor)2, -0x305683f1), 64); // or byte ptr [r16+r17*4-0x305683f1], 64 IID3467 - __ orb(Address(r17, r18, (Address::ScaleFactor)1, -0x71f518f5), 64); // or byte ptr [r17+r18*2-0x71f518f5], 64 IID3468 - __ orb(Address(r18, r19, (Address::ScaleFactor)1, -0x5f8db8b), 64); // or byte ptr [r18+r19*2-0x5f8db8b], 64 IID3469 - __ orb(Address(r19, r20, (Address::ScaleFactor)3, -0x2a3e312f), 64); // or byte ptr [r19+r20*8-0x2a3e312f], 64 IID3470 - __ orb(Address(r20, +0x737f39d1), 64); // or byte ptr [r20+0x737f39d1], 64 IID3471 - __ orb(Address(r21, r22, (Address::ScaleFactor)0, +0x403ff0fa), 64); // or byte ptr [r21+r22*1+0x403ff0fa], 64 IID3472 - __ orb(Address(r22, r23, (Address::ScaleFactor)3, +0x55cf8fcf), 64); // or byte ptr [r22+r23*8+0x55cf8fcf], 64 IID3473 - __ orb(Address(r23, r24, (Address::ScaleFactor)0, -0x24ebcb4f), 64); // or byte ptr [r23+r24*1-0x24ebcb4f], 64 IID3474 - __ orb(Address(r24, r25, (Address::ScaleFactor)1, -0x1e399b2a), 64); // or byte ptr [r24+r25*2-0x1e399b2a], 64 IID3475 - __ orb(Address(r25, +0x6c7e555), 64); // or byte ptr [r25+0x6c7e555], 64 IID3476 - __ orb(Address(r26, r27, (Address::ScaleFactor)2, -0x789cbd0c), 64); // or byte ptr [r26+r27*4-0x789cbd0c], 64 IID3477 - __ orb(Address(r27, r28, (Address::ScaleFactor)3, +0x26b20146), 64); // or byte ptr [r27+r28*8+0x26b20146], 64 IID3478 - __ orb(Address(r28, r29, (Address::ScaleFactor)3, +0x5fa27c58), 64); // or byte ptr [r28+r29*8+0x5fa27c58], 64 IID3479 - __ orb(Address(r29, r30, (Address::ScaleFactor)2, -0x52fdc7e0), 64); // or byte ptr [r29+r30*4-0x52fdc7e0], 64 IID3480 - __ orb(Address(r30, r31, (Address::ScaleFactor)3, +0xba4c352), 64); // or byte ptr [r30+r31*8+0xba4c352], 64 IID3481 - __ orb(Address(r31, +0x4e3906b7), 64); // or byte ptr [r31+0x4e3906b7], 64 IID3482 -#endif // _LP64 - __ orl(Address(rcx, rdx, (Address::ScaleFactor)0, +0x25588739), 1); // or dword ptr [rcx+rdx*1+0x25588739], 1 IID3483 - __ orl(Address(rdx, rbx, (Address::ScaleFactor)1, -0x7342cf56), 1); // or dword ptr [rdx+rbx*2-0x7342cf56], 1 IID3484 -#ifdef _LP64 - __ orl(Address(rbx, r8, (Address::ScaleFactor)3, +0x3aa3fa12), 1); // or dword ptr [rbx+r8*8+0x3aa3fa12], 1 IID3485 - __ orl(Address(r8, r9, (Address::ScaleFactor)1, +0x2f344dc8), 1); // or dword ptr [r8+r9*2+0x2f344dc8], 1 IID3486 - __ orl(Address(r9, r10, (Address::ScaleFactor)3, -0x2466b177), 1); // or dword ptr [r9+r10*8-0x2466b177], 1 IID3487 - __ orl(Address(r10, r11, (Address::ScaleFactor)3, +0x3b1fc024), 1); // or dword ptr [r10+r11*8+0x3b1fc024], 1 IID3488 - __ orl(Address(r11, r12, (Address::ScaleFactor)2, +0x5c050f3b), 1); // or dword ptr [r11+r12*4+0x5c050f3b], 1 IID3489 - __ orl(Address(r12, -0x49e87123), 1); // or dword ptr [r12-0x49e87123], 1 IID3490 - __ orl(Address(r13, r14, (Address::ScaleFactor)3, +0x625c81c7), 1); // or dword ptr [r13+r14*8+0x625c81c7], 1 IID3491 - __ orl(Address(r14, r15, (Address::ScaleFactor)1, +0x3041739a), 1); // or dword ptr [r14+r15*2+0x3041739a], 1 IID3492 - __ orl(Address(r15, r16, (Address::ScaleFactor)0, +0x1a95c02a), 1); // or dword ptr [r15+r16*1+0x1a95c02a], 1 IID3493 - __ orl(Address(r16, r17, (Address::ScaleFactor)3, -0x6fb5af1a), 1); // or dword ptr [r16+r17*8-0x6fb5af1a], 1 IID3494 - __ orl(Address(r17, r18, (Address::ScaleFactor)1, -0x12171546), 1); // or dword ptr [r17+r18*2-0x12171546], 1 IID3495 - __ orl(Address(r18, r19, (Address::ScaleFactor)3, +0x1db1c608), 1); // or dword ptr [r18+r19*8+0x1db1c608], 1 IID3496 - __ orl(Address(r19, r20, (Address::ScaleFactor)3, +0x451c5f48), 1); // or dword ptr [r19+r20*8+0x451c5f48], 1 IID3497 - __ orl(Address(r20, r21, (Address::ScaleFactor)0, +0xc75472c), 1); // or dword ptr [r20+r21*1+0xc75472c], 1 IID3498 - __ orl(Address(r21, r22, (Address::ScaleFactor)1, +0x3b48c7f1), 1); // or dword ptr [r21+r22*2+0x3b48c7f1], 1 IID3499 - __ orl(Address(r22, r23, (Address::ScaleFactor)3, +0x32b72eb), 1); // or dword ptr [r22+r23*8+0x32b72eb], 1 IID3500 - __ orl(Address(r23, r24, (Address::ScaleFactor)2, -0x54dbf2c2), 1); // or dword ptr [r23+r24*4-0x54dbf2c2], 1 IID3501 - __ orl(Address(r24, -0x32b13905), 1); // or dword ptr [r24-0x32b13905], 1 IID3502 - __ orl(Address(r25, +0x2cee800d), 1); // or dword ptr [r25+0x2cee800d], 1 IID3503 - __ orl(Address(r26, r27, (Address::ScaleFactor)0, -0x60b371e), 1); // or dword ptr [r26+r27*1-0x60b371e], 1 IID3504 - __ orl(Address(r27, r28, (Address::ScaleFactor)1, -0x7f2cd851), 1); // or dword ptr [r27+r28*2-0x7f2cd851], 1 IID3505 - __ orl(Address(r28, r29, (Address::ScaleFactor)3, +0x313464fa), 1); // or dword ptr [r28+r29*8+0x313464fa], 1 IID3506 - __ orl(Address(r29, r30, (Address::ScaleFactor)0, +0x71ec2fa7), 1); // or dword ptr [r29+r30*1+0x71ec2fa7], 1 IID3507 - __ orl(Address(r30, r31, (Address::ScaleFactor)2, +0x39f07075), 1); // or dword ptr [r30+r31*4+0x39f07075], 1 IID3508 - __ orl(Address(r31, rcx, (Address::ScaleFactor)0, -0x135f5f8d), 1); // or dword ptr [r31+rcx*1-0x135f5f8d], 1 IID3509 - __ orl(Address(rcx, rdx, (Address::ScaleFactor)3, -0x2825716a), 16); // or dword ptr [rcx+rdx*8-0x2825716a], 16 IID3510 - __ orl(Address(rdx, rbx, (Address::ScaleFactor)1, -0x42845288), 16); // or dword ptr [rdx+rbx*2-0x42845288], 16 IID3511 - __ orl(Address(rbx, r8, (Address::ScaleFactor)0, +0x66ef6a5f), 16); // or dword ptr [rbx+r8*1+0x66ef6a5f], 16 IID3512 - __ orl(Address(r8, r9, (Address::ScaleFactor)3, +0x232758b3), 16); // or dword ptr [r8+r9*8+0x232758b3], 16 IID3513 - __ orl(Address(r9, r10, (Address::ScaleFactor)1, -0x1a2220e5), 16); // or dword ptr [r9+r10*2-0x1a2220e5], 16 IID3514 - __ orl(Address(r10, r11, (Address::ScaleFactor)3, -0x1fb95bb1), 16); // or dword ptr [r10+r11*8-0x1fb95bb1], 16 IID3515 - __ orl(Address(r11, r12, (Address::ScaleFactor)2, -0x115e2c1b), 16); // or dword ptr [r11+r12*4-0x115e2c1b], 16 IID3516 - __ orl(Address(r12, r13, (Address::ScaleFactor)0, +0x73ed2940), 16); // or dword ptr [r12+r13*1+0x73ed2940], 16 IID3517 - __ orl(Address(r13, r14, (Address::ScaleFactor)2, -0x241858b0), 16); // or dword ptr [r13+r14*4-0x241858b0], 16 IID3518 - __ orl(Address(r14, r15, (Address::ScaleFactor)3, -0x6eaee758), 16); // or dword ptr [r14+r15*8-0x6eaee758], 16 IID3519 - __ orl(Address(r15, +0x70722540), 16); // or dword ptr [r15+0x70722540], 16 IID3520 - __ orl(Address(r16, r17, (Address::ScaleFactor)0, +0x219e3c6f), 16); // or dword ptr [r16+r17*1+0x219e3c6f], 16 IID3521 - __ orl(Address(r17, r18, (Address::ScaleFactor)1, -0x2f7f212c), 16); // or dword ptr [r17+r18*2-0x2f7f212c], 16 IID3522 - __ orl(Address(r18, r19, (Address::ScaleFactor)1, +0x1e7fbb7b), 16); // or dword ptr [r18+r19*2+0x1e7fbb7b], 16 IID3523 - __ orl(Address(r19, r20, (Address::ScaleFactor)0, +0x49f2b984), 16); // or dword ptr [r19+r20*1+0x49f2b984], 16 IID3524 - __ orl(Address(r20, +0x9c26ce1), 16); // or dword ptr [r20+0x9c26ce1], 16 IID3525 - __ orl(Address(r21, r22, (Address::ScaleFactor)2, +0x7485e031), 16); // or dword ptr [r21+r22*4+0x7485e031], 16 IID3526 - __ orl(Address(r22, -0x109073c3), 16); // or dword ptr [r22-0x109073c3], 16 IID3527 - __ orl(Address(r23, r24, (Address::ScaleFactor)0, -0x12d524f0), 16); // or dword ptr [r23+r24*1-0x12d524f0], 16 IID3528 - __ orl(Address(r24, r25, (Address::ScaleFactor)0, +0x6d46d6c5), 16); // or dword ptr [r24+r25*1+0x6d46d6c5], 16 IID3529 - __ orl(Address(r25, r26, (Address::ScaleFactor)0, +0x30683cbc), 16); // or dword ptr [r25+r26*1+0x30683cbc], 16 IID3530 - __ orl(Address(r26, r27, (Address::ScaleFactor)1, -0x2f32cae3), 16); // or dword ptr [r26+r27*2-0x2f32cae3], 16 IID3531 - __ orl(Address(r27, r28, (Address::ScaleFactor)0, -0x5de32a3), 16); // or dword ptr [r27+r28*1-0x5de32a3], 16 IID3532 - __ orl(Address(r28, -0xff0accf), 16); // or dword ptr [r28-0xff0accf], 16 IID3533 - __ orl(Address(r29, r30, (Address::ScaleFactor)0, +0x55bfe791), 16); // or dword ptr [r29+r30*1+0x55bfe791], 16 IID3534 - __ orl(Address(r30, r31, (Address::ScaleFactor)1, +0x7f05b1d7), 16); // or dword ptr [r30+r31*2+0x7f05b1d7], 16 IID3535 - __ orl(Address(r31, rcx, (Address::ScaleFactor)0, +0x76c6b2e5), 16); // or dword ptr [r31+rcx*1+0x76c6b2e5], 16 IID3536 - __ orl(Address(rcx, rdx, (Address::ScaleFactor)0, +0x2a99df9c), 256); // or dword ptr [rcx+rdx*1+0x2a99df9c], 256 IID3537 - __ orl(Address(rdx, +0x76afb13f), 256); // or dword ptr [rdx+0x76afb13f], 256 IID3538 - __ orl(Address(rbx, r8, (Address::ScaleFactor)0, +0x766e8559), 256); // or dword ptr [rbx+r8*1+0x766e8559], 256 IID3539 - __ orl(Address(r8, r9, (Address::ScaleFactor)1, +0x3abc7636), 256); // or dword ptr [r8+r9*2+0x3abc7636], 256 IID3540 - __ orl(Address(r9, +0x28e38a55), 256); // or dword ptr [r9+0x28e38a55], 256 IID3541 - __ orl(Address(r10, r11, (Address::ScaleFactor)3, -0x9b453bf), 256); // or dword ptr [r10+r11*8-0x9b453bf], 256 IID3542 - __ orl(Address(r11, +0x20726e02), 256); // or dword ptr [r11+0x20726e02], 256 IID3543 - __ orl(Address(r12, r13, (Address::ScaleFactor)2, +0x59a6ea69), 256); // or dword ptr [r12+r13*4+0x59a6ea69], 256 IID3544 - __ orl(Address(r13, r14, (Address::ScaleFactor)2, -0x23b5b2c9), 256); // or dword ptr [r13+r14*4-0x23b5b2c9], 256 IID3545 - __ orl(Address(r14, r15, (Address::ScaleFactor)2, +0x508ddf22), 256); // or dword ptr [r14+r15*4+0x508ddf22], 256 IID3546 - __ orl(Address(r15, r16, (Address::ScaleFactor)0, -0x7934c94c), 256); // or dword ptr [r15+r16*1-0x7934c94c], 256 IID3547 - __ orl(Address(r16, r17, (Address::ScaleFactor)3, +0x2685bfdf), 256); // or dword ptr [r16+r17*8+0x2685bfdf], 256 IID3548 - __ orl(Address(r17, -0x23715190), 256); // or dword ptr [r17-0x23715190], 256 IID3549 - __ orl(Address(r18, r19, (Address::ScaleFactor)2, -0x5f1dce7f), 256); // or dword ptr [r18+r19*4-0x5f1dce7f], 256 IID3550 - __ orl(Address(r19, r20, (Address::ScaleFactor)1, +0x35a0fd6f), 256); // or dword ptr [r19+r20*2+0x35a0fd6f], 256 IID3551 - __ orl(Address(r20, -0x43ca6f88), 256); // or dword ptr [r20-0x43ca6f88], 256 IID3552 - __ orl(Address(r21, r22, (Address::ScaleFactor)3, -0x5507947), 256); // or dword ptr [r21+r22*8-0x5507947], 256 IID3553 - __ orl(Address(r22, r23, (Address::ScaleFactor)1, -0x31856dc9), 256); // or dword ptr [r22+r23*2-0x31856dc9], 256 IID3554 - __ orl(Address(r23, r24, (Address::ScaleFactor)3, -0x1ac6d8ef), 256); // or dword ptr [r23+r24*8-0x1ac6d8ef], 256 IID3555 - __ orl(Address(r24, r25, (Address::ScaleFactor)0, -0x1323e15), 256); // or dword ptr [r24+r25*1-0x1323e15], 256 IID3556 - __ orl(Address(r25, r26, (Address::ScaleFactor)1, -0x26d352a), 256); // or dword ptr [r25+r26*2-0x26d352a], 256 IID3557 - __ orl(Address(r26, -0x39b5b19c), 256); // or dword ptr [r26-0x39b5b19c], 256 IID3558 - __ orl(Address(r27, r28, (Address::ScaleFactor)0, +0x59370666), 256); // or dword ptr [r27+r28*1+0x59370666], 256 IID3559 - __ orl(Address(r28, r29, (Address::ScaleFactor)2, -0x699f2ed3), 256); // or dword ptr [r28+r29*4-0x699f2ed3], 256 IID3560 - __ orl(Address(r29, +0x3c0ed720), 256); // or dword ptr [r29+0x3c0ed720], 256 IID3561 - __ orl(Address(r30, r31, (Address::ScaleFactor)3, -0x70c9eb5), 256); // or dword ptr [r30+r31*8-0x70c9eb5], 256 IID3562 - __ orl(Address(r31, +0x5ad06213), 256); // or dword ptr [r31+0x5ad06213], 256 IID3563 - __ orl(Address(rcx, rdx, (Address::ScaleFactor)0, +0x2f7fa530), 4096); // or dword ptr [rcx+rdx*1+0x2f7fa530], 4096 IID3564 - __ orl(Address(rdx, rbx, (Address::ScaleFactor)3, -0xd3b2243), 4096); // or dword ptr [rdx+rbx*8-0xd3b2243], 4096 IID3565 - __ orl(Address(rbx, r8, (Address::ScaleFactor)2, -0xfbfcf32), 4096); // or dword ptr [rbx+r8*4-0xfbfcf32], 4096 IID3566 - __ orl(Address(r8, r9, (Address::ScaleFactor)3, -0xa7222b3), 4096); // or dword ptr [r8+r9*8-0xa7222b3], 4096 IID3567 - __ orl(Address(r9, r10, (Address::ScaleFactor)2, +0x574026ed), 4096); // or dword ptr [r9+r10*4+0x574026ed], 4096 IID3568 - __ orl(Address(r10, r11, (Address::ScaleFactor)0, +0x3c47760c), 4096); // or dword ptr [r10+r11*1+0x3c47760c], 4096 IID3569 - __ orl(Address(r11, r12, (Address::ScaleFactor)2, +0x191a8eda), 4096); // or dword ptr [r11+r12*4+0x191a8eda], 4096 IID3570 - __ orl(Address(r12, r13, (Address::ScaleFactor)1, -0x59e6e828), 4096); // or dword ptr [r12+r13*2-0x59e6e828], 4096 IID3571 - __ orl(Address(r13, +0x4e2e6d1b), 4096); // or dword ptr [r13+0x4e2e6d1b], 4096 IID3572 - __ orl(Address(r14, r15, (Address::ScaleFactor)1, -0x361d8ed4), 4096); // or dword ptr [r14+r15*2-0x361d8ed4], 4096 IID3573 - __ orl(Address(r15, r16, (Address::ScaleFactor)3, -0x6fe9f0b0), 4096); // or dword ptr [r15+r16*8-0x6fe9f0b0], 4096 IID3574 - __ orl(Address(r16, r17, (Address::ScaleFactor)1, -0x73b59ccb), 4096); // or dword ptr [r16+r17*2-0x73b59ccb], 4096 IID3575 - __ orl(Address(r17, r18, (Address::ScaleFactor)3, +0x34b720e3), 4096); // or dword ptr [r17+r18*8+0x34b720e3], 4096 IID3576 - __ orl(Address(r18, r19, (Address::ScaleFactor)2, -0x75be4480), 4096); // or dword ptr [r18+r19*4-0x75be4480], 4096 IID3577 - __ orl(Address(r19, r20, (Address::ScaleFactor)1, +0x215be35), 4096); // or dword ptr [r19+r20*2+0x215be35], 4096 IID3578 - __ orl(Address(r20, r21, (Address::ScaleFactor)0, -0x75c7deb), 4096); // or dword ptr [r20+r21*1-0x75c7deb], 4096 IID3579 - __ orl(Address(r21, -0x15e46792), 4096); // or dword ptr [r21-0x15e46792], 4096 IID3580 - __ orl(Address(r22, r23, (Address::ScaleFactor)1, -0x6fe84aa1), 4096); // or dword ptr [r22+r23*2-0x6fe84aa1], 4096 IID3581 - __ orl(Address(r23, r24, (Address::ScaleFactor)1, +0x6e59b694), 4096); // or dword ptr [r23+r24*2+0x6e59b694], 4096 IID3582 - __ orl(Address(r24, -0x3432868f), 4096); // or dword ptr [r24-0x3432868f], 4096 IID3583 - __ orl(Address(r25, r26, (Address::ScaleFactor)2, -0x434e81be), 4096); // or dword ptr [r25+r26*4-0x434e81be], 4096 IID3584 - __ orl(Address(r26, -0x5f6ece9a), 4096); // or dword ptr [r26-0x5f6ece9a], 4096 IID3585 - __ orl(Address(r27, r28, (Address::ScaleFactor)1, -0xa7c9533), 4096); // or dword ptr [r27+r28*2-0xa7c9533], 4096 IID3586 - __ orl(Address(r28, r29, (Address::ScaleFactor)3, +0x693a61e2), 4096); // or dword ptr [r28+r29*8+0x693a61e2], 4096 IID3587 - __ orl(Address(r29, r30, (Address::ScaleFactor)3, -0x4063d57d), 4096); // or dword ptr [r29+r30*8-0x4063d57d], 4096 IID3588 - __ orl(Address(r30, r31, (Address::ScaleFactor)2, +0x11b1ef0d), 4096); // or dword ptr [r30+r31*4+0x11b1ef0d], 4096 IID3589 - __ orl(Address(r31, rcx, (Address::ScaleFactor)3, +0x34e21585), 4096); // or dword ptr [r31+rcx*8+0x34e21585], 4096 IID3590 - __ orl(Address(rcx, rdx, (Address::ScaleFactor)3, -0x35fafba8), 65536); // or dword ptr [rcx+rdx*8-0x35fafba8], 65536 IID3591 - __ orl(Address(rdx, rbx, (Address::ScaleFactor)3, -0x61e16eb5), 65536); // or dword ptr [rdx+rbx*8-0x61e16eb5], 65536 IID3592 - __ orl(Address(rbx, r8, (Address::ScaleFactor)0, -0x26d27c13), 65536); // or dword ptr [rbx+r8*1-0x26d27c13], 65536 IID3593 - __ orl(Address(r8, r9, (Address::ScaleFactor)1, -0x3f25b144), 65536); // or dword ptr [r8+r9*2-0x3f25b144], 65536 IID3594 - __ orl(Address(r9, r10, (Address::ScaleFactor)0, -0x664924e3), 65536); // or dword ptr [r9+r10*1-0x664924e3], 65536 IID3595 - __ orl(Address(r10, r11, (Address::ScaleFactor)1, +0x234e564a), 65536); // or dword ptr [r10+r11*2+0x234e564a], 65536 IID3596 - __ orl(Address(r11, r12, (Address::ScaleFactor)1, -0x303475f5), 65536); // or dword ptr [r11+r12*2-0x303475f5], 65536 IID3597 - __ orl(Address(r12, +0x786b9e73), 65536); // or dword ptr [r12+0x786b9e73], 65536 IID3598 - __ orl(Address(r13, -0x366a0611), 65536); // or dword ptr [r13-0x366a0611], 65536 IID3599 - __ orl(Address(r14, r15, (Address::ScaleFactor)0, +0x72dc3f2b), 65536); // or dword ptr [r14+r15*1+0x72dc3f2b], 65536 IID3600 - __ orl(Address(r15, r16, (Address::ScaleFactor)0, -0x432a2b1d), 65536); // or dword ptr [r15+r16*1-0x432a2b1d], 65536 IID3601 - __ orl(Address(r16, r17, (Address::ScaleFactor)2, +0x2c88a1b9), 65536); // or dword ptr [r16+r17*4+0x2c88a1b9], 65536 IID3602 - __ orl(Address(r17, r18, (Address::ScaleFactor)1, +0x291acf76), 65536); // or dword ptr [r17+r18*2+0x291acf76], 65536 IID3603 - __ orl(Address(r18, r19, (Address::ScaleFactor)1, +0x6317233d), 65536); // or dword ptr [r18+r19*2+0x6317233d], 65536 IID3604 - __ orl(Address(r19, r20, (Address::ScaleFactor)3, +0x56f20ac6), 65536); // or dword ptr [r19+r20*8+0x56f20ac6], 65536 IID3605 - __ orl(Address(r20, r21, (Address::ScaleFactor)1, +0x51702f98), 65536); // or dword ptr [r20+r21*2+0x51702f98], 65536 IID3606 - __ orl(Address(r21, +0x455dc82d), 65536); // or dword ptr [r21+0x455dc82d], 65536 IID3607 - __ orl(Address(r22, r23, (Address::ScaleFactor)1, -0x22e140dd), 65536); // or dword ptr [r22+r23*2-0x22e140dd], 65536 IID3608 - __ orl(Address(r23, r24, (Address::ScaleFactor)2, -0xfcab43d), 65536); // or dword ptr [r23+r24*4-0xfcab43d], 65536 IID3609 - __ orl(Address(r24, r25, (Address::ScaleFactor)0, +0x1839d4c8), 65536); // or dword ptr [r24+r25*1+0x1839d4c8], 65536 IID3610 - __ orl(Address(r25, r26, (Address::ScaleFactor)0, +0x613713af), 65536); // or dword ptr [r25+r26*1+0x613713af], 65536 IID3611 - __ orl(Address(r26, r27, (Address::ScaleFactor)0, +0x154ef6bc), 65536); // or dword ptr [r26+r27*1+0x154ef6bc], 65536 IID3612 - __ orl(Address(r27, r28, (Address::ScaleFactor)3, +0xe787b6c), 65536); // or dword ptr [r27+r28*8+0xe787b6c], 65536 IID3613 - __ orl(Address(r28, r29, (Address::ScaleFactor)1, -0x28b421cd), 65536); // or dword ptr [r28+r29*2-0x28b421cd], 65536 IID3614 - __ orl(Address(r29, +0x23c8c162), 65536); // or dword ptr [r29+0x23c8c162], 65536 IID3615 - __ orl(Address(r30, r31, (Address::ScaleFactor)3, +0x53ca7cee), 65536); // or dword ptr [r30+r31*8+0x53ca7cee], 65536 IID3616 - __ orl(Address(r31, rcx, (Address::ScaleFactor)3, -0x65ec4c6d), 65536); // or dword ptr [r31+rcx*8-0x65ec4c6d], 65536 IID3617 - __ orl(Address(rcx, rdx, (Address::ScaleFactor)1, -0x48d6d999), 1048576); // or dword ptr [rcx+rdx*2-0x48d6d999], 1048576 IID3618 - __ orl(Address(rdx, rbx, (Address::ScaleFactor)1, -0x40e74b74), 1048576); // or dword ptr [rdx+rbx*2-0x40e74b74], 1048576 IID3619 - __ orl(Address(rbx, r8, (Address::ScaleFactor)2, -0x6dc668ab), 1048576); // or dword ptr [rbx+r8*4-0x6dc668ab], 1048576 IID3620 - __ orl(Address(r8, r9, (Address::ScaleFactor)1, +0x1351aeea), 1048576); // or dword ptr [r8+r9*2+0x1351aeea], 1048576 IID3621 - __ orl(Address(r9, r10, (Address::ScaleFactor)0, -0x2c74028a), 1048576); // or dword ptr [r9+r10*1-0x2c74028a], 1048576 IID3622 - __ orl(Address(r10, r11, (Address::ScaleFactor)3, -0x2cdcf604), 1048576); // or dword ptr [r10+r11*8-0x2cdcf604], 1048576 IID3623 - __ orl(Address(r11, -0x45c80177), 1048576); // or dword ptr [r11-0x45c80177], 1048576 IID3624 - __ orl(Address(r12, r13, (Address::ScaleFactor)0, +0x9405827), 1048576); // or dword ptr [r12+r13*1+0x9405827], 1048576 IID3625 - __ orl(Address(r13, -0x6bc41cc6), 1048576); // or dword ptr [r13-0x6bc41cc6], 1048576 IID3626 - __ orl(Address(r14, +0x1b385a69), 1048576); // or dword ptr [r14+0x1b385a69], 1048576 IID3627 - __ orl(Address(r15, r16, (Address::ScaleFactor)1, -0x72262e22), 1048576); // or dword ptr [r15+r16*2-0x72262e22], 1048576 IID3628 - __ orl(Address(r16, r17, (Address::ScaleFactor)1, -0x2ce18433), 1048576); // or dword ptr [r16+r17*2-0x2ce18433], 1048576 IID3629 - __ orl(Address(r17, r18, (Address::ScaleFactor)1, +0x56e2bc7d), 1048576); // or dword ptr [r17+r18*2+0x56e2bc7d], 1048576 IID3630 - __ orl(Address(r18, r19, (Address::ScaleFactor)1, -0x2f18e9a3), 1048576); // or dword ptr [r18+r19*2-0x2f18e9a3], 1048576 IID3631 - __ orl(Address(r19, r20, (Address::ScaleFactor)1, -0x5c106c6c), 1048576); // or dword ptr [r19+r20*2-0x5c106c6c], 1048576 IID3632 - __ orl(Address(r20, +0x6f164d8a), 1048576); // or dword ptr [r20+0x6f164d8a], 1048576 IID3633 - __ orl(Address(r21, r22, (Address::ScaleFactor)3, +0x6aee89e4), 1048576); // or dword ptr [r21+r22*8+0x6aee89e4], 1048576 IID3634 - __ orl(Address(r22, r23, (Address::ScaleFactor)3, -0x112ed1b3), 1048576); // or dword ptr [r22+r23*8-0x112ed1b3], 1048576 IID3635 - __ orl(Address(r23, -0x2f3432cb), 1048576); // or dword ptr [r23-0x2f3432cb], 1048576 IID3636 - __ orl(Address(r24, r25, (Address::ScaleFactor)0, +0x11e624cb), 1048576); // or dword ptr [r24+r25*1+0x11e624cb], 1048576 IID3637 - __ orl(Address(r25, r26, (Address::ScaleFactor)3, +0x55a183bd), 1048576); // or dword ptr [r25+r26*8+0x55a183bd], 1048576 IID3638 - __ orl(Address(r26, r27, (Address::ScaleFactor)2, +0x6a2fd6a6), 1048576); // or dword ptr [r26+r27*4+0x6a2fd6a6], 1048576 IID3639 - __ orl(Address(r27, r28, (Address::ScaleFactor)0, +0x30b88546), 1048576); // or dword ptr [r27+r28*1+0x30b88546], 1048576 IID3640 - __ orl(Address(r28, r29, (Address::ScaleFactor)3, -0x5de35e11), 1048576); // or dword ptr [r28+r29*8-0x5de35e11], 1048576 IID3641 - __ orl(Address(r29, r30, (Address::ScaleFactor)0, -0xe905990), 1048576); // or dword ptr [r29+r30*1-0xe905990], 1048576 IID3642 - __ orl(Address(r30, r31, (Address::ScaleFactor)2, +0x779a0deb), 1048576); // or dword ptr [r30+r31*4+0x779a0deb], 1048576 IID3643 - __ orl(Address(r31, rcx, (Address::ScaleFactor)2, +0x2788df7), 1048576); // or dword ptr [r31+rcx*4+0x2788df7], 1048576 IID3644 - __ orl(Address(rcx, rdx, (Address::ScaleFactor)3, -0x753f13c), 16777216); // or dword ptr [rcx+rdx*8-0x753f13c], 16777216 IID3645 - __ orl(Address(rdx, +0x3d852a63), 16777216); // or dword ptr [rdx+0x3d852a63], 16777216 IID3646 - __ orl(Address(rbx, r8, (Address::ScaleFactor)1, +0x31de4c92), 16777216); // or dword ptr [rbx+r8*2+0x31de4c92], 16777216 IID3647 - __ orl(Address(r8, r9, (Address::ScaleFactor)1, -0x61624a1f), 16777216); // or dword ptr [r8+r9*2-0x61624a1f], 16777216 IID3648 - __ orl(Address(r9, r10, (Address::ScaleFactor)1, -0x6967ce0b), 16777216); // or dword ptr [r9+r10*2-0x6967ce0b], 16777216 IID3649 - __ orl(Address(r10, +0x435e4b70), 16777216); // or dword ptr [r10+0x435e4b70], 16777216 IID3650 - __ orl(Address(r11, r12, (Address::ScaleFactor)3, -0x1bbf9606), 16777216); // or dword ptr [r11+r12*8-0x1bbf9606], 16777216 IID3651 - __ orl(Address(r12, r13, (Address::ScaleFactor)3, -0x4b08c6d5), 16777216); // or dword ptr [r12+r13*8-0x4b08c6d5], 16777216 IID3652 - __ orl(Address(r13, r14, (Address::ScaleFactor)1, +0x1c32dc88), 16777216); // or dword ptr [r13+r14*2+0x1c32dc88], 16777216 IID3653 - __ orl(Address(r14, r15, (Address::ScaleFactor)3, -0x155893e6), 16777216); // or dword ptr [r14+r15*8-0x155893e6], 16777216 IID3654 - __ orl(Address(r15, r16, (Address::ScaleFactor)0, +0x21e85924), 16777216); // or dword ptr [r15+r16*1+0x21e85924], 16777216 IID3655 - __ orl(Address(r16, +0x750147cf), 16777216); // or dword ptr [r16+0x750147cf], 16777216 IID3656 - __ orl(Address(r17, r18, (Address::ScaleFactor)1, -0x7660ca31), 16777216); // or dword ptr [r17+r18*2-0x7660ca31], 16777216 IID3657 - __ orl(Address(r18, r19, (Address::ScaleFactor)2, -0x466f4024), 16777216); // or dword ptr [r18+r19*4-0x466f4024], 16777216 IID3658 - __ orl(Address(r19, r20, (Address::ScaleFactor)3, -0x4072544c), 16777216); // or dword ptr [r19+r20*8-0x4072544c], 16777216 IID3659 - __ orl(Address(r20, r21, (Address::ScaleFactor)0, +0x4eef7f68), 16777216); // or dword ptr [r20+r21*1+0x4eef7f68], 16777216 IID3660 - __ orl(Address(r21, r22, (Address::ScaleFactor)2, +0x71ec7938), 16777216); // or dword ptr [r21+r22*4+0x71ec7938], 16777216 IID3661 - __ orl(Address(r22, +0x71ccb9cb), 16777216); // or dword ptr [r22+0x71ccb9cb], 16777216 IID3662 - __ orl(Address(r23, +0x333f8f40), 16777216); // or dword ptr [r23+0x333f8f40], 16777216 IID3663 - __ orl(Address(r24, r25, (Address::ScaleFactor)1, -0x283c7f15), 16777216); // or dword ptr [r24+r25*2-0x283c7f15], 16777216 IID3664 - __ orl(Address(r25, r26, (Address::ScaleFactor)0, -0x447bf997), 16777216); // or dword ptr [r25+r26*1-0x447bf997], 16777216 IID3665 - __ orl(Address(r26, r27, (Address::ScaleFactor)1, -0x47146744), 16777216); // or dword ptr [r26+r27*2-0x47146744], 16777216 IID3666 - __ orl(Address(r27, +0x12008544), 16777216); // or dword ptr [r27+0x12008544], 16777216 IID3667 - __ orl(Address(r28, +0x360056bd), 16777216); // or dword ptr [r28+0x360056bd], 16777216 IID3668 - __ orl(Address(r29, r30, (Address::ScaleFactor)0, +0x1f8c7dc2), 16777216); // or dword ptr [r29+r30*1+0x1f8c7dc2], 16777216 IID3669 - __ orl(Address(r30, r31, (Address::ScaleFactor)1, -0x2772efaf), 16777216); // or dword ptr [r30+r31*2-0x2772efaf], 16777216 IID3670 - __ orl(Address(r31, rcx, (Address::ScaleFactor)1, +0x34f3c551), 16777216); // or dword ptr [r31+rcx*2+0x34f3c551], 16777216 IID3671 - __ orl(Address(rcx, rdx, (Address::ScaleFactor)0, -0x10ecbcf3), 268435456); // or dword ptr [rcx+rdx*1-0x10ecbcf3], 268435456 IID3672 - __ orl(Address(rdx, rbx, (Address::ScaleFactor)3, -0x82833e1), 268435456); // or dword ptr [rdx+rbx*8-0x82833e1], 268435456 IID3673 - __ orl(Address(rbx, +0x75303f1a), 268435456); // or dword ptr [rbx+0x75303f1a], 268435456 IID3674 - __ orl(Address(r8, r9, (Address::ScaleFactor)1, +0x1d44ee75), 268435456); // or dword ptr [r8+r9*2+0x1d44ee75], 268435456 IID3675 - __ orl(Address(r9, r10, (Address::ScaleFactor)0, +0x69425133), 268435456); // or dword ptr [r9+r10*1+0x69425133], 268435456 IID3676 - __ orl(Address(r10, r11, (Address::ScaleFactor)0, -0x1a3fdf3c), 268435456); // or dword ptr [r10+r11*1-0x1a3fdf3c], 268435456 IID3677 - __ orl(Address(r11, r12, (Address::ScaleFactor)0, -0xb54464d), 268435456); // or dword ptr [r11+r12*1-0xb54464d], 268435456 IID3678 - __ orl(Address(r12, r13, (Address::ScaleFactor)1, +0x194165c9), 268435456); // or dword ptr [r12+r13*2+0x194165c9], 268435456 IID3679 - __ orl(Address(r13, +0x29ad2c62), 268435456); // or dword ptr [r13+0x29ad2c62], 268435456 IID3680 - __ orl(Address(r14, r15, (Address::ScaleFactor)1, -0x706cbe5b), 268435456); // or dword ptr [r14+r15*2-0x706cbe5b], 268435456 IID3681 - __ orl(Address(r15, +0x1f2ce686), 268435456); // or dword ptr [r15+0x1f2ce686], 268435456 IID3682 - __ orl(Address(r16, r17, (Address::ScaleFactor)3, +0xf7613ba), 268435456); // or dword ptr [r16+r17*8+0xf7613ba], 268435456 IID3683 - __ orl(Address(r17, r18, (Address::ScaleFactor)1, +0x5f8a3561), 268435456); // or dword ptr [r17+r18*2+0x5f8a3561], 268435456 IID3684 - __ orl(Address(r18, r19, (Address::ScaleFactor)0, +0x7e6f0839), 268435456); // or dword ptr [r18+r19*1+0x7e6f0839], 268435456 IID3685 - __ orl(Address(r19, r20, (Address::ScaleFactor)1, +0x1c1c1755), 268435456); // or dword ptr [r19+r20*2+0x1c1c1755], 268435456 IID3686 - __ orl(Address(r20, r21, (Address::ScaleFactor)0, -0x21b28c63), 268435456); // or dword ptr [r20+r21*1-0x21b28c63], 268435456 IID3687 - __ orl(Address(r21, r22, (Address::ScaleFactor)0, -0x3a1eb50b), 268435456); // or dword ptr [r21+r22*1-0x3a1eb50b], 268435456 IID3688 - __ orl(Address(r22, r23, (Address::ScaleFactor)3, +0x4040b358), 268435456); // or dword ptr [r22+r23*8+0x4040b358], 268435456 IID3689 - __ orl(Address(r23, r24, (Address::ScaleFactor)1, -0x3a26cd4e), 268435456); // or dword ptr [r23+r24*2-0x3a26cd4e], 268435456 IID3690 - __ orl(Address(r24, r25, (Address::ScaleFactor)2, +0x4a2ce7ce), 268435456); // or dword ptr [r24+r25*4+0x4a2ce7ce], 268435456 IID3691 - __ orl(Address(r25, r26, (Address::ScaleFactor)2, +0x3f155326), 268435456); // or dword ptr [r25+r26*4+0x3f155326], 268435456 IID3692 - __ orl(Address(r26, r27, (Address::ScaleFactor)3, +0x519ce7d1), 268435456); // or dword ptr [r26+r27*8+0x519ce7d1], 268435456 IID3693 - __ orl(Address(r27, r28, (Address::ScaleFactor)3, -0x2445ad4d), 268435456); // or dword ptr [r27+r28*8-0x2445ad4d], 268435456 IID3694 - __ orl(Address(r28, r29, (Address::ScaleFactor)3, +0x3b77e6f2), 268435456); // or dword ptr [r28+r29*8+0x3b77e6f2], 268435456 IID3695 - __ orl(Address(r29, r30, (Address::ScaleFactor)0, -0x45358650), 268435456); // or dword ptr [r29+r30*1-0x45358650], 268435456 IID3696 - __ orl(Address(r30, +0x2d10a422), 268435456); // or dword ptr [r30+0x2d10a422], 268435456 IID3697 - __ orl(Address(r31, -0x44f41193), 268435456); // or dword ptr [r31-0x44f41193], 268435456 IID3698 -#endif // _LP64 - __ movb(Address(rcx, rdx, (Address::ScaleFactor)1, -0x3125bac0), 1); // mov byte ptr [rcx+rdx*2-0x3125bac0], 1 IID3699 - __ movb(Address(rdx, rbx, (Address::ScaleFactor)0, -0x2360b94b), 1); // mov byte ptr [rdx+rbx*1-0x2360b94b], 1 IID3700 -#ifdef _LP64 - __ movb(Address(rbx, r8, (Address::ScaleFactor)3, +0x6ca6f4c7), 1); // mov byte ptr [rbx+r8*8+0x6ca6f4c7], 1 IID3701 - __ movb(Address(r8, r9, (Address::ScaleFactor)1, +0x2cffc5f4), 1); // mov byte ptr [r8+r9*2+0x2cffc5f4], 1 IID3702 - __ movb(Address(r9, r10, (Address::ScaleFactor)0, +0x61f292a1), 1); // mov byte ptr [r9+r10*1+0x61f292a1], 1 IID3703 - __ movb(Address(r10, r11, (Address::ScaleFactor)0, -0xd53d543), 1); // mov byte ptr [r10+r11*1-0xd53d543], 1 IID3704 - __ movb(Address(r11, -0x6038ad3e), 1); // mov byte ptr [r11-0x6038ad3e], 1 IID3705 - __ movb(Address(r12, +0x733e9661), 1); // mov byte ptr [r12+0x733e9661], 1 IID3706 - __ movb(Address(r13, r14, (Address::ScaleFactor)3, +0x102d15e7), 1); // mov byte ptr [r13+r14*8+0x102d15e7], 1 IID3707 - __ movb(Address(r14, r15, (Address::ScaleFactor)3, -0x417535fb), 1); // mov byte ptr [r14+r15*8-0x417535fb], 1 IID3708 - __ movb(Address(r15, r16, (Address::ScaleFactor)2, +0x7f355632), 1); // mov byte ptr [r15+r16*4+0x7f355632], 1 IID3709 - __ movb(Address(r16, r17, (Address::ScaleFactor)0, -0x2f46c4de), 1); // mov byte ptr [r16+r17*1-0x2f46c4de], 1 IID3710 - __ movb(Address(r17, r18, (Address::ScaleFactor)0, -0xd967699), 1); // mov byte ptr [r17+r18*1-0xd967699], 1 IID3711 - __ movb(Address(r18, r19, (Address::ScaleFactor)3, -0x25833951), 1); // mov byte ptr [r18+r19*8-0x25833951], 1 IID3712 - __ movb(Address(r19, r20, (Address::ScaleFactor)3, -0x436c9424), 1); // mov byte ptr [r19+r20*8-0x436c9424], 1 IID3713 - __ movb(Address(r20, r21, (Address::ScaleFactor)2, -0xcf04813), 1); // mov byte ptr [r20+r21*4-0xcf04813], 1 IID3714 - __ movb(Address(r21, r22, (Address::ScaleFactor)2, -0xae389bb), 1); // mov byte ptr [r21+r22*4-0xae389bb], 1 IID3715 - __ movb(Address(r22, r23, (Address::ScaleFactor)0, -0x324aa114), 1); // mov byte ptr [r22+r23*1-0x324aa114], 1 IID3716 - __ movb(Address(r23, r24, (Address::ScaleFactor)2, -0x2eaaf7ab), 1); // mov byte ptr [r23+r24*4-0x2eaaf7ab], 1 IID3717 - __ movb(Address(r24, +0x4fe6c34b), 1); // mov byte ptr [r24+0x4fe6c34b], 1 IID3718 - __ movb(Address(r25, -0x221e5daf), 1); // mov byte ptr [r25-0x221e5daf], 1 IID3719 - __ movb(Address(r26, +0x32ec7e3), 1); // mov byte ptr [r26+0x32ec7e3], 1 IID3720 - __ movb(Address(r27, r28, (Address::ScaleFactor)1, +0x1bdfda25), 1); // mov byte ptr [r27+r28*2+0x1bdfda25], 1 IID3721 - __ movb(Address(r28, r29, (Address::ScaleFactor)3, -0x1618712f), 1); // mov byte ptr [r28+r29*8-0x1618712f], 1 IID3722 - __ movb(Address(r29, r30, (Address::ScaleFactor)0, +0x38bf644a), 1); // mov byte ptr [r29+r30*1+0x38bf644a], 1 IID3723 - __ movb(Address(r30, r31, (Address::ScaleFactor)0, -0x1d8349a6), 1); // mov byte ptr [r30+r31*1-0x1d8349a6], 1 IID3724 - __ movb(Address(r31, -0x521b53fb), 1); // mov byte ptr [r31-0x521b53fb], 1 IID3725 - __ movb(Address(rcx, rdx, (Address::ScaleFactor)2, -0x1acc5035), 4); // mov byte ptr [rcx+rdx*4-0x1acc5035], 4 IID3726 - __ movb(Address(rdx, rbx, (Address::ScaleFactor)3, +0x381f7cb4), 4); // mov byte ptr [rdx+rbx*8+0x381f7cb4], 4 IID3727 - __ movb(Address(rbx, r8, (Address::ScaleFactor)2, -0x79587ba), 4); // mov byte ptr [rbx+r8*4-0x79587ba], 4 IID3728 - __ movb(Address(r8, -0x2ceaa95c), 4); // mov byte ptr [r8-0x2ceaa95c], 4 IID3729 - __ movb(Address(r9, r10, (Address::ScaleFactor)1, +0x3819a4aa), 4); // mov byte ptr [r9+r10*2+0x3819a4aa], 4 IID3730 - __ movb(Address(r10, +0x758ea9bc), 4); // mov byte ptr [r10+0x758ea9bc], 4 IID3731 - __ movb(Address(r11, r12, (Address::ScaleFactor)2, -0x750bd238), 4); // mov byte ptr [r11+r12*4-0x750bd238], 4 IID3732 - __ movb(Address(r12, +0x4d2e7853), 4); // mov byte ptr [r12+0x4d2e7853], 4 IID3733 - __ movb(Address(r13, r14, (Address::ScaleFactor)3, +0x1827ca82), 4); // mov byte ptr [r13+r14*8+0x1827ca82], 4 IID3734 - __ movb(Address(r14, r15, (Address::ScaleFactor)3, -0x66b4d30e), 4); // mov byte ptr [r14+r15*8-0x66b4d30e], 4 IID3735 - __ movb(Address(r15, r16, (Address::ScaleFactor)0, +0x17b0a308), 4); // mov byte ptr [r15+r16*1+0x17b0a308], 4 IID3736 - __ movb(Address(r16, -0x7d073eed), 4); // mov byte ptr [r16-0x7d073eed], 4 IID3737 - __ movb(Address(r17, r18, (Address::ScaleFactor)2, +0x3287225b), 4); // mov byte ptr [r17+r18*4+0x3287225b], 4 IID3738 - __ movb(Address(r18, +0x33166ac6), 4); // mov byte ptr [r18+0x33166ac6], 4 IID3739 - __ movb(Address(r19, r20, (Address::ScaleFactor)3, +0x405097f5), 4); // mov byte ptr [r19+r20*8+0x405097f5], 4 IID3740 - __ movb(Address(r20, r21, (Address::ScaleFactor)1, +0x87c8107), 4); // mov byte ptr [r20+r21*2+0x87c8107], 4 IID3741 - __ movb(Address(r21, -0x139f7c46), 4); // mov byte ptr [r21-0x139f7c46], 4 IID3742 - __ movb(Address(r22, r23, (Address::ScaleFactor)3, -0x2a1aeaff), 4); // mov byte ptr [r22+r23*8-0x2a1aeaff], 4 IID3743 - __ movb(Address(r23, r24, (Address::ScaleFactor)0, -0x79b2f38d), 4); // mov byte ptr [r23+r24*1-0x79b2f38d], 4 IID3744 - __ movb(Address(r24, r25, (Address::ScaleFactor)3, -0xa6dfe64), 4); // mov byte ptr [r24+r25*8-0xa6dfe64], 4 IID3745 - __ movb(Address(r25, +0x443e43f), 4); // mov byte ptr [r25+0x443e43f], 4 IID3746 - __ movb(Address(r26, -0x668869), 4); // mov byte ptr [r26-0x668869], 4 IID3747 - __ movb(Address(r27, r28, (Address::ScaleFactor)1, -0x69229274), 4); // mov byte ptr [r27+r28*2-0x69229274], 4 IID3748 - __ movb(Address(r28, r29, (Address::ScaleFactor)0, +0x272edd81), 4); // mov byte ptr [r28+r29*1+0x272edd81], 4 IID3749 - __ movb(Address(r29, +0x5fb8c58a), 4); // mov byte ptr [r29+0x5fb8c58a], 4 IID3750 - __ movb(Address(r30, +0x7b464f05), 4); // mov byte ptr [r30+0x7b464f05], 4 IID3751 - __ movb(Address(r31, +0x59b635b8), 4); // mov byte ptr [r31+0x59b635b8], 4 IID3752 - __ movb(Address(rcx, rdx, (Address::ScaleFactor)1, +0x12961635), 16); // mov byte ptr [rcx+rdx*2+0x12961635], 16 IID3753 - __ movb(Address(rdx, +0x4be6e124), 16); // mov byte ptr [rdx+0x4be6e124], 16 IID3754 - __ movb(Address(rbx, r8, (Address::ScaleFactor)2, +0xfcb2165), 16); // mov byte ptr [rbx+r8*4+0xfcb2165], 16 IID3755 - __ movb(Address(r8, r9, (Address::ScaleFactor)0, -0x6341f131), 16); // mov byte ptr [r8+r9*1-0x6341f131], 16 IID3756 - __ movb(Address(r9, r10, (Address::ScaleFactor)2, -0x5088391a), 16); // mov byte ptr [r9+r10*4-0x5088391a], 16 IID3757 - __ movb(Address(r10, r11, (Address::ScaleFactor)0, +0x13b48e1d), 16); // mov byte ptr [r10+r11*1+0x13b48e1d], 16 IID3758 - __ movb(Address(r11, r12, (Address::ScaleFactor)1, +0x3f518dda), 16); // mov byte ptr [r11+r12*2+0x3f518dda], 16 IID3759 - __ movb(Address(r12, r13, (Address::ScaleFactor)0, +0x24f958cb), 16); // mov byte ptr [r12+r13*1+0x24f958cb], 16 IID3760 - __ movb(Address(r13, r14, (Address::ScaleFactor)2, +0x3563bb49), 16); // mov byte ptr [r13+r14*4+0x3563bb49], 16 IID3761 - __ movb(Address(r14, r15, (Address::ScaleFactor)3, -0x95c0f3b), 16); // mov byte ptr [r14+r15*8-0x95c0f3b], 16 IID3762 - __ movb(Address(r15, r16, (Address::ScaleFactor)3, +0x4150319b), 16); // mov byte ptr [r15+r16*8+0x4150319b], 16 IID3763 - __ movb(Address(r16, r17, (Address::ScaleFactor)2, +0x731fefda), 16); // mov byte ptr [r16+r17*4+0x731fefda], 16 IID3764 - __ movb(Address(r17, r18, (Address::ScaleFactor)1, -0x7ec35181), 16); // mov byte ptr [r17+r18*2-0x7ec35181], 16 IID3765 - __ movb(Address(r18, -0x378fd018), 16); // mov byte ptr [r18-0x378fd018], 16 IID3766 - __ movb(Address(r19, r20, (Address::ScaleFactor)2, +0x30824f55), 16); // mov byte ptr [r19+r20*4+0x30824f55], 16 IID3767 - __ movb(Address(r20, r21, (Address::ScaleFactor)0, -0x599c0f1), 16); // mov byte ptr [r20+r21*1-0x599c0f1], 16 IID3768 - __ movb(Address(r21, r22, (Address::ScaleFactor)2, +0x6ad2557), 16); // mov byte ptr [r21+r22*4+0x6ad2557], 16 IID3769 - __ movb(Address(r22, -0x72a9e57d), 16); // mov byte ptr [r22-0x72a9e57d], 16 IID3770 - __ movb(Address(r23, -0x40a56883), 16); // mov byte ptr [r23-0x40a56883], 16 IID3771 - __ movb(Address(r24, r25, (Address::ScaleFactor)2, -0x1c819597), 16); // mov byte ptr [r24+r25*4-0x1c819597], 16 IID3772 - __ movb(Address(r25, r26, (Address::ScaleFactor)1, +0x56b00afb), 16); // mov byte ptr [r25+r26*2+0x56b00afb], 16 IID3773 - __ movb(Address(r26, r27, (Address::ScaleFactor)0, -0x78f940d8), 16); // mov byte ptr [r26+r27*1-0x78f940d8], 16 IID3774 - __ movb(Address(r27, r28, (Address::ScaleFactor)1, +0x16f3f702), 16); // mov byte ptr [r27+r28*2+0x16f3f702], 16 IID3775 - __ movb(Address(r28, +0x6b72a19d), 16); // mov byte ptr [r28+0x6b72a19d], 16 IID3776 - __ movb(Address(r29, r30, (Address::ScaleFactor)0, +0x648b46cb), 16); // mov byte ptr [r29+r30*1+0x648b46cb], 16 IID3777 - __ movb(Address(r30, r31, (Address::ScaleFactor)1, -0x56ba3659), 16); // mov byte ptr [r30+r31*2-0x56ba3659], 16 IID3778 - __ movb(Address(r31, rcx, (Address::ScaleFactor)1, +0x1100d5d), 16); // mov byte ptr [r31+rcx*2+0x1100d5d], 16 IID3779 - __ movb(Address(rcx, +0x716a47e1), 64); // mov byte ptr [rcx+0x716a47e1], 64 IID3780 - __ movb(Address(rdx, rbx, (Address::ScaleFactor)1, +0x655d7c45), 64); // mov byte ptr [rdx+rbx*2+0x655d7c45], 64 IID3781 - __ movb(Address(rbx, r8, (Address::ScaleFactor)1, +0x54e8a571), 64); // mov byte ptr [rbx+r8*2+0x54e8a571], 64 IID3782 - __ movb(Address(r8, r9, (Address::ScaleFactor)2, -0x48e9cce9), 64); // mov byte ptr [r8+r9*4-0x48e9cce9], 64 IID3783 - __ movb(Address(r9, r10, (Address::ScaleFactor)0, -0x252300d), 64); // mov byte ptr [r9+r10*1-0x252300d], 64 IID3784 - __ movb(Address(r10, r11, (Address::ScaleFactor)3, +0xbb6ba5d), 64); // mov byte ptr [r10+r11*8+0xbb6ba5d], 64 IID3785 - __ movb(Address(r11, r12, (Address::ScaleFactor)3, -0x780e5f71), 64); // mov byte ptr [r11+r12*8-0x780e5f71], 64 IID3786 - __ movb(Address(r12, r13, (Address::ScaleFactor)0, +0x49c96ff2), 64); // mov byte ptr [r12+r13*1+0x49c96ff2], 64 IID3787 - __ movb(Address(r13, +0x10eb505f), 64); // mov byte ptr [r13+0x10eb505f], 64 IID3788 - __ movb(Address(r14, r15, (Address::ScaleFactor)3, +0x4b310f72), 64); // mov byte ptr [r14+r15*8+0x4b310f72], 64 IID3789 - __ movb(Address(r15, r16, (Address::ScaleFactor)2, -0x3e63146c), 64); // mov byte ptr [r15+r16*4-0x3e63146c], 64 IID3790 - __ movb(Address(r16, +0x3a2934fc), 64); // mov byte ptr [r16+0x3a2934fc], 64 IID3791 - __ movb(Address(r17, r18, (Address::ScaleFactor)1, -0x66144cf0), 64); // mov byte ptr [r17+r18*2-0x66144cf0], 64 IID3792 - __ movb(Address(r18, r19, (Address::ScaleFactor)0, -0x2559c76c), 64); // mov byte ptr [r18+r19*1-0x2559c76c], 64 IID3793 - __ movb(Address(r19, r20, (Address::ScaleFactor)2, +0x1202fa9e), 64); // mov byte ptr [r19+r20*4+0x1202fa9e], 64 IID3794 - __ movb(Address(r20, r21, (Address::ScaleFactor)2, -0x174dc8f3), 64); // mov byte ptr [r20+r21*4-0x174dc8f3], 64 IID3795 - __ movb(Address(r21, r22, (Address::ScaleFactor)0, -0x5e40d728), 64); // mov byte ptr [r21+r22*1-0x5e40d728], 64 IID3796 - __ movb(Address(r22, r23, (Address::ScaleFactor)3, +0x24941b40), 64); // mov byte ptr [r22+r23*8+0x24941b40], 64 IID3797 - __ movb(Address(r23, r24, (Address::ScaleFactor)0, +0xe3315d2), 64); // mov byte ptr [r23+r24*1+0xe3315d2], 64 IID3798 - __ movb(Address(r24, r25, (Address::ScaleFactor)2, +0x3f272b5d), 64); // mov byte ptr [r24+r25*4+0x3f272b5d], 64 IID3799 - __ movb(Address(r25, +0x7444bc3), 64); // mov byte ptr [r25+0x7444bc3], 64 IID3800 - __ movb(Address(r26, -0x5469a446), 64); // mov byte ptr [r26-0x5469a446], 64 IID3801 - __ movb(Address(r27, r28, (Address::ScaleFactor)0, +0x7c5fbcfe), 64); // mov byte ptr [r27+r28*1+0x7c5fbcfe], 64 IID3802 - __ movb(Address(r28, r29, (Address::ScaleFactor)0, -0x50117aa7), 64); // mov byte ptr [r28+r29*1-0x50117aa7], 64 IID3803 - __ movb(Address(r29, r30, (Address::ScaleFactor)1, +0x337f6f1b), 64); // mov byte ptr [r29+r30*2+0x337f6f1b], 64 IID3804 - __ movb(Address(r30, r31, (Address::ScaleFactor)0, -0x439049f3), 64); // mov byte ptr [r30+r31*1-0x439049f3], 64 IID3805 - __ movb(Address(r31, rcx, (Address::ScaleFactor)3, -0x898a41d), 64); // mov byte ptr [r31+rcx*8-0x898a41d], 64 IID3806 -#endif // _LP64 - __ movl(Address(rcx, rdx, (Address::ScaleFactor)1, -0x750fbe33), 1); // mov dword ptr [rcx+rdx*2-0x750fbe33], 1 IID3807 - __ movl(Address(rdx, rbx, (Address::ScaleFactor)2, +0x5f483bbd), 1); // mov dword ptr [rdx+rbx*4+0x5f483bbd], 1 IID3808 -#ifdef _LP64 - __ movl(Address(rbx, r8, (Address::ScaleFactor)1, -0x707a139d), 1); // mov dword ptr [rbx+r8*2-0x707a139d], 1 IID3809 - __ movl(Address(r8, +0x4b9c3ffb), 1); // mov dword ptr [r8+0x4b9c3ffb], 1 IID3810 - __ movl(Address(r9, -0x12921a6b), 1); // mov dword ptr [r9-0x12921a6b], 1 IID3811 - __ movl(Address(r10, r11, (Address::ScaleFactor)3, +0x723940c5), 1); // mov dword ptr [r10+r11*8+0x723940c5], 1 IID3812 - __ movl(Address(r11, r12, (Address::ScaleFactor)3, -0x163ece07), 1); // mov dword ptr [r11+r12*8-0x163ece07], 1 IID3813 - __ movl(Address(r12, -0x172b56b4), 1); // mov dword ptr [r12-0x172b56b4], 1 IID3814 - __ movl(Address(r13, r14, (Address::ScaleFactor)0, +0x25eeb381), 1); // mov dword ptr [r13+r14*1+0x25eeb381], 1 IID3815 - __ movl(Address(r14, r15, (Address::ScaleFactor)1, -0x2a49e553), 1); // mov dword ptr [r14+r15*2-0x2a49e553], 1 IID3816 - __ movl(Address(r15, r16, (Address::ScaleFactor)1, -0x26966c70), 1); // mov dword ptr [r15+r16*2-0x26966c70], 1 IID3817 - __ movl(Address(r16, +0x4c31b672), 1); // mov dword ptr [r16+0x4c31b672], 1 IID3818 - __ movl(Address(r17, +0x4cc9ab81), 1); // mov dword ptr [r17+0x4cc9ab81], 1 IID3819 - __ movl(Address(r18, r19, (Address::ScaleFactor)3, -0x4a2bbb42), 1); // mov dword ptr [r18+r19*8-0x4a2bbb42], 1 IID3820 - __ movl(Address(r19, r20, (Address::ScaleFactor)3, +0xbd6e5c1), 1); // mov dword ptr [r19+r20*8+0xbd6e5c1], 1 IID3821 - __ movl(Address(r20, r21, (Address::ScaleFactor)0, -0x16819dd9), 1); // mov dword ptr [r20+r21*1-0x16819dd9], 1 IID3822 - __ movl(Address(r21, r22, (Address::ScaleFactor)2, -0x21d06e94), 1); // mov dword ptr [r21+r22*4-0x21d06e94], 1 IID3823 - __ movl(Address(r22, +0x76dd6fb9), 1); // mov dword ptr [r22+0x76dd6fb9], 1 IID3824 - __ movl(Address(r23, -0x71f9314f), 1); // mov dword ptr [r23-0x71f9314f], 1 IID3825 - __ movl(Address(r24, r25, (Address::ScaleFactor)0, -0x1ada976a), 1); // mov dword ptr [r24+r25*1-0x1ada976a], 1 IID3826 - __ movl(Address(r25, r26, (Address::ScaleFactor)2, -0x465c5ebe), 1); // mov dword ptr [r25+r26*4-0x465c5ebe], 1 IID3827 - __ movl(Address(r26, r27, (Address::ScaleFactor)2, +0x293d49b), 1); // mov dword ptr [r26+r27*4+0x293d49b], 1 IID3828 - __ movl(Address(r27, r28, (Address::ScaleFactor)2, +0x58046d1b), 1); // mov dword ptr [r27+r28*4+0x58046d1b], 1 IID3829 - __ movl(Address(r28, r29, (Address::ScaleFactor)2, -0x44903a7a), 1); // mov dword ptr [r28+r29*4-0x44903a7a], 1 IID3830 - __ movl(Address(r29, r30, (Address::ScaleFactor)1, +0x417fe3f0), 1); // mov dword ptr [r29+r30*2+0x417fe3f0], 1 IID3831 - __ movl(Address(r30, +0x10253479), 1); // mov dword ptr [r30+0x10253479], 1 IID3832 - __ movl(Address(r31, rcx, (Address::ScaleFactor)1, +0x989de9b), 1); // mov dword ptr [r31+rcx*2+0x989de9b], 1 IID3833 - __ movl(Address(rcx, rdx, (Address::ScaleFactor)0, +0x240d437d), 16); // mov dword ptr [rcx+rdx*1+0x240d437d], 16 IID3834 - __ movl(Address(rdx, +0x45802e3d), 16); // mov dword ptr [rdx+0x45802e3d], 16 IID3835 - __ movl(Address(rbx, r8, (Address::ScaleFactor)3, +0x2db50c5f), 16); // mov dword ptr [rbx+r8*8+0x2db50c5f], 16 IID3836 - __ movl(Address(r8, r9, (Address::ScaleFactor)0, +0x6aa809b9), 16); // mov dword ptr [r8+r9*1+0x6aa809b9], 16 IID3837 - __ movl(Address(r9, r10, (Address::ScaleFactor)0, -0x5fb497c), 16); // mov dword ptr [r9+r10*1-0x5fb497c], 16 IID3838 - __ movl(Address(r10, -0x2b250b99), 16); // mov dword ptr [r10-0x2b250b99], 16 IID3839 - __ movl(Address(r11, r12, (Address::ScaleFactor)1, -0x34a2d048), 16); // mov dword ptr [r11+r12*2-0x34a2d048], 16 IID3840 - __ movl(Address(r12, r13, (Address::ScaleFactor)1, +0x17429117), 16); // mov dword ptr [r12+r13*2+0x17429117], 16 IID3841 - __ movl(Address(r13, r14, (Address::ScaleFactor)1, +0x22af4be1), 16); // mov dword ptr [r13+r14*2+0x22af4be1], 16 IID3842 - __ movl(Address(r14, r15, (Address::ScaleFactor)2, +0x20bb3559), 16); // mov dword ptr [r14+r15*4+0x20bb3559], 16 IID3843 - __ movl(Address(r15, -0x2d4924cf), 16); // mov dword ptr [r15-0x2d4924cf], 16 IID3844 - __ movl(Address(r16, r17, (Address::ScaleFactor)3, -0x74cfc25c), 16); // mov dword ptr [r16+r17*8-0x74cfc25c], 16 IID3845 - __ movl(Address(r17, r18, (Address::ScaleFactor)1, +0x264e6a71), 16); // mov dword ptr [r17+r18*2+0x264e6a71], 16 IID3846 - __ movl(Address(r18, r19, (Address::ScaleFactor)1, -0x33a11109), 16); // mov dword ptr [r18+r19*2-0x33a11109], 16 IID3847 - __ movl(Address(r19, r20, (Address::ScaleFactor)1, +0x3fbeca59), 16); // mov dword ptr [r19+r20*2+0x3fbeca59], 16 IID3848 - __ movl(Address(r20, r21, (Address::ScaleFactor)2, +0x2a72a335), 16); // mov dword ptr [r20+r21*4+0x2a72a335], 16 IID3849 - __ movl(Address(r21, r22, (Address::ScaleFactor)0, +0x23e0637d), 16); // mov dword ptr [r21+r22*1+0x23e0637d], 16 IID3850 - __ movl(Address(r22, r23, (Address::ScaleFactor)2, -0x4e01c717), 16); // mov dword ptr [r22+r23*4-0x4e01c717], 16 IID3851 - __ movl(Address(r23, r24, (Address::ScaleFactor)2, -0x49ecc6c3), 16); // mov dword ptr [r23+r24*4-0x49ecc6c3], 16 IID3852 - __ movl(Address(r24, r25, (Address::ScaleFactor)0, -0x7494f97b), 16); // mov dword ptr [r24+r25*1-0x7494f97b], 16 IID3853 - __ movl(Address(r25, r26, (Address::ScaleFactor)0, +0x366837f2), 16); // mov dword ptr [r25+r26*1+0x366837f2], 16 IID3854 - __ movl(Address(r26, r27, (Address::ScaleFactor)2, +0x6aca068), 16); // mov dword ptr [r26+r27*4+0x6aca068], 16 IID3855 - __ movl(Address(r27, r28, (Address::ScaleFactor)2, -0x59c06e47), 16); // mov dword ptr [r27+r28*4-0x59c06e47], 16 IID3856 - __ movl(Address(r28, r29, (Address::ScaleFactor)3, +0x142d9a06), 16); // mov dword ptr [r28+r29*8+0x142d9a06], 16 IID3857 - __ movl(Address(r29, r30, (Address::ScaleFactor)1, +0x2b7f9d8), 16); // mov dword ptr [r29+r30*2+0x2b7f9d8], 16 IID3858 - __ movl(Address(r30, r31, (Address::ScaleFactor)1, +0x7b698427), 16); // mov dword ptr [r30+r31*2+0x7b698427], 16 IID3859 - __ movl(Address(r31, rcx, (Address::ScaleFactor)1, -0x5208d056), 16); // mov dword ptr [r31+rcx*2-0x5208d056], 16 IID3860 - __ movl(Address(rcx, rdx, (Address::ScaleFactor)0, +0x6733ab55), 256); // mov dword ptr [rcx+rdx*1+0x6733ab55], 256 IID3861 - __ movl(Address(rdx, rbx, (Address::ScaleFactor)2, +0x3545f259), 256); // mov dword ptr [rdx+rbx*4+0x3545f259], 256 IID3862 - __ movl(Address(rbx, r8, (Address::ScaleFactor)0, +0x59bcf4db), 256); // mov dword ptr [rbx+r8*1+0x59bcf4db], 256 IID3863 - __ movl(Address(r8, r9, (Address::ScaleFactor)1, +0x7e0229b4), 256); // mov dword ptr [r8+r9*2+0x7e0229b4], 256 IID3864 - __ movl(Address(r9, r10, (Address::ScaleFactor)2, +0x4567821e), 256); // mov dword ptr [r9+r10*4+0x4567821e], 256 IID3865 - __ movl(Address(r10, r11, (Address::ScaleFactor)3, -0x37b9f715), 256); // mov dword ptr [r10+r11*8-0x37b9f715], 256 IID3866 - __ movl(Address(r11, -0x383d37bc), 256); // mov dword ptr [r11-0x383d37bc], 256 IID3867 - __ movl(Address(r12, r13, (Address::ScaleFactor)0, +0x17fdb367), 256); // mov dword ptr [r12+r13*1+0x17fdb367], 256 IID3868 - __ movl(Address(r13, r14, (Address::ScaleFactor)1, +0xc110267), 256); // mov dword ptr [r13+r14*2+0xc110267], 256 IID3869 - __ movl(Address(r14, r15, (Address::ScaleFactor)0, -0x3e9f293f), 256); // mov dword ptr [r14+r15*1-0x3e9f293f], 256 IID3870 - __ movl(Address(r15, +0x49a6aa49), 256); // mov dword ptr [r15+0x49a6aa49], 256 IID3871 - __ movl(Address(r16, r17, (Address::ScaleFactor)0, +0x3b8fedbd), 256); // mov dword ptr [r16+r17*1+0x3b8fedbd], 256 IID3872 - __ movl(Address(r17, -0x131e1d08), 256); // mov dword ptr [r17-0x131e1d08], 256 IID3873 - __ movl(Address(r18, r19, (Address::ScaleFactor)2, -0x34f685e8), 256); // mov dword ptr [r18+r19*4-0x34f685e8], 256 IID3874 - __ movl(Address(r19, r20, (Address::ScaleFactor)3, -0x62dd7cde), 256); // mov dword ptr [r19+r20*8-0x62dd7cde], 256 IID3875 - __ movl(Address(r20, r21, (Address::ScaleFactor)3, +0x69548591), 256); // mov dword ptr [r20+r21*8+0x69548591], 256 IID3876 - __ movl(Address(r21, r22, (Address::ScaleFactor)0, -0x52e46bb4), 256); // mov dword ptr [r21+r22*1-0x52e46bb4], 256 IID3877 - __ movl(Address(r22, r23, (Address::ScaleFactor)3, -0x40dbfaf5), 256); // mov dword ptr [r22+r23*8-0x40dbfaf5], 256 IID3878 - __ movl(Address(r23, +0x74e5e208), 256); // mov dword ptr [r23+0x74e5e208], 256 IID3879 - __ movl(Address(r24, r25, (Address::ScaleFactor)2, -0x82f09d0), 256); // mov dword ptr [r24+r25*4-0x82f09d0], 256 IID3880 - __ movl(Address(r25, r26, (Address::ScaleFactor)2, +0x3e4c1669), 256); // mov dword ptr [r25+r26*4+0x3e4c1669], 256 IID3881 - __ movl(Address(r26, r27, (Address::ScaleFactor)1, -0x3f8468a8), 256); // mov dword ptr [r26+r27*2-0x3f8468a8], 256 IID3882 - __ movl(Address(r27, -0x3362803d), 256); // mov dword ptr [r27-0x3362803d], 256 IID3883 - __ movl(Address(r28, r29, (Address::ScaleFactor)1, +0xdd958a8), 256); // mov dword ptr [r28+r29*2+0xdd958a8], 256 IID3884 - __ movl(Address(r29, r30, (Address::ScaleFactor)2, +0x3a715992), 256); // mov dword ptr [r29+r30*4+0x3a715992], 256 IID3885 - __ movl(Address(r30, r31, (Address::ScaleFactor)1, +0x1c68bf46), 256); // mov dword ptr [r30+r31*2+0x1c68bf46], 256 IID3886 - __ movl(Address(r31, +0x4abfeda6), 256); // mov dword ptr [r31+0x4abfeda6], 256 IID3887 - __ movl(Address(rcx, rdx, (Address::ScaleFactor)1, -0x4fa198b3), 4096); // mov dword ptr [rcx+rdx*2-0x4fa198b3], 4096 IID3888 - __ movl(Address(rdx, +0x4b312019), 4096); // mov dword ptr [rdx+0x4b312019], 4096 IID3889 - __ movl(Address(rbx, r8, (Address::ScaleFactor)1, +0x51e27f2f), 4096); // mov dword ptr [rbx+r8*2+0x51e27f2f], 4096 IID3890 - __ movl(Address(r8, r9, (Address::ScaleFactor)3, +0x52b471ba), 4096); // mov dword ptr [r8+r9*8+0x52b471ba], 4096 IID3891 - __ movl(Address(r9, r10, (Address::ScaleFactor)0, +0x2ffcb3c1), 4096); // mov dword ptr [r9+r10*1+0x2ffcb3c1], 4096 IID3892 - __ movl(Address(r10, -0x5ee5240f), 4096); // mov dword ptr [r10-0x5ee5240f], 4096 IID3893 - __ movl(Address(r11, r12, (Address::ScaleFactor)2, -0x4ddb12d7), 4096); // mov dword ptr [r11+r12*4-0x4ddb12d7], 4096 IID3894 - __ movl(Address(r12, r13, (Address::ScaleFactor)2, +0x1dee7fa8), 4096); // mov dword ptr [r12+r13*4+0x1dee7fa8], 4096 IID3895 - __ movl(Address(r13, r14, (Address::ScaleFactor)3, +0x1c5594aa), 4096); // mov dword ptr [r13+r14*8+0x1c5594aa], 4096 IID3896 - __ movl(Address(r14, +0xf375392), 4096); // mov dword ptr [r14+0xf375392], 4096 IID3897 - __ movl(Address(r15, -0x509b8209), 4096); // mov dword ptr [r15-0x509b8209], 4096 IID3898 - __ movl(Address(r16, r17, (Address::ScaleFactor)0, -0x3ea3a4b5), 4096); // mov dword ptr [r16+r17*1-0x3ea3a4b5], 4096 IID3899 - __ movl(Address(r17, r18, (Address::ScaleFactor)2, -0x421a7842), 4096); // mov dword ptr [r17+r18*4-0x421a7842], 4096 IID3900 - __ movl(Address(r18, r19, (Address::ScaleFactor)2, -0x2f3dad58), 4096); // mov dword ptr [r18+r19*4-0x2f3dad58], 4096 IID3901 - __ movl(Address(r19, r20, (Address::ScaleFactor)0, -0x3151d431), 4096); // mov dword ptr [r19+r20*1-0x3151d431], 4096 IID3902 - __ movl(Address(r20, r21, (Address::ScaleFactor)3, -0x34743e6e), 4096); // mov dword ptr [r20+r21*8-0x34743e6e], 4096 IID3903 - __ movl(Address(r21, -0x14b84f3b), 4096); // mov dword ptr [r21-0x14b84f3b], 4096 IID3904 - __ movl(Address(r22, r23, (Address::ScaleFactor)0, -0x500637e3), 4096); // mov dword ptr [r22+r23*1-0x500637e3], 4096 IID3905 - __ movl(Address(r23, r24, (Address::ScaleFactor)1, +0x6d4397f7), 4096); // mov dword ptr [r23+r24*2+0x6d4397f7], 4096 IID3906 - __ movl(Address(r24, r25, (Address::ScaleFactor)0, -0xccd2489), 4096); // mov dword ptr [r24+r25*1-0xccd2489], 4096 IID3907 - __ movl(Address(r25, r26, (Address::ScaleFactor)2, -0x698ab91c), 4096); // mov dword ptr [r25+r26*4-0x698ab91c], 4096 IID3908 - __ movl(Address(r26, r27, (Address::ScaleFactor)0, -0x1be8d671), 4096); // mov dword ptr [r26+r27*1-0x1be8d671], 4096 IID3909 - __ movl(Address(r27, r28, (Address::ScaleFactor)3, -0x374489e7), 4096); // mov dword ptr [r27+r28*8-0x374489e7], 4096 IID3910 - __ movl(Address(r28, r29, (Address::ScaleFactor)3, -0x2baeb0f4), 4096); // mov dword ptr [r28+r29*8-0x2baeb0f4], 4096 IID3911 - __ movl(Address(r29, r30, (Address::ScaleFactor)3, +0x2df4c99d), 4096); // mov dword ptr [r29+r30*8+0x2df4c99d], 4096 IID3912 - __ movl(Address(r30, -0x220560c3), 4096); // mov dword ptr [r30-0x220560c3], 4096 IID3913 - __ movl(Address(r31, rcx, (Address::ScaleFactor)0, +0x71bfd119), 4096); // mov dword ptr [r31+rcx*1+0x71bfd119], 4096 IID3914 - __ movl(Address(rcx, rdx, (Address::ScaleFactor)1, -0x146654ad), 65536); // mov dword ptr [rcx+rdx*2-0x146654ad], 65536 IID3915 - __ movl(Address(rdx, +0x244367bd), 65536); // mov dword ptr [rdx+0x244367bd], 65536 IID3916 - __ movl(Address(rbx, -0x410b1981), 65536); // mov dword ptr [rbx-0x410b1981], 65536 IID3917 - __ movl(Address(r8, -0x4c9f842), 65536); // mov dword ptr [r8-0x4c9f842], 65536 IID3918 - __ movl(Address(r9, -0x4e7a3009), 65536); // mov dword ptr [r9-0x4e7a3009], 65536 IID3919 - __ movl(Address(r10, -0x6d6f94f5), 65536); // mov dword ptr [r10-0x6d6f94f5], 65536 IID3920 - __ movl(Address(r11, r12, (Address::ScaleFactor)0, -0x1c48c3ba), 65536); // mov dword ptr [r11+r12*1-0x1c48c3ba], 65536 IID3921 - __ movl(Address(r12, +0x5f2afac2), 65536); // mov dword ptr [r12+0x5f2afac2], 65536 IID3922 - __ movl(Address(r13, -0x43828184), 65536); // mov dword ptr [r13-0x43828184], 65536 IID3923 - __ movl(Address(r14, r15, (Address::ScaleFactor)2, -0x6961456c), 65536); // mov dword ptr [r14+r15*4-0x6961456c], 65536 IID3924 - __ movl(Address(r15, r16, (Address::ScaleFactor)1, -0x5041d3b), 65536); // mov dword ptr [r15+r16*2-0x5041d3b], 65536 IID3925 - __ movl(Address(r16, r17, (Address::ScaleFactor)2, +0x5b4c7780), 65536); // mov dword ptr [r16+r17*4+0x5b4c7780], 65536 IID3926 - __ movl(Address(r17, r18, (Address::ScaleFactor)0, +0x7c3fb55f), 65536); // mov dword ptr [r17+r18*1+0x7c3fb55f], 65536 IID3927 - __ movl(Address(r18, r19, (Address::ScaleFactor)1, -0x48d778b0), 65536); // mov dword ptr [r18+r19*2-0x48d778b0], 65536 IID3928 - __ movl(Address(r19, r20, (Address::ScaleFactor)2, -0x1a565a30), 65536); // mov dword ptr [r19+r20*4-0x1a565a30], 65536 IID3929 - __ movl(Address(r20, r21, (Address::ScaleFactor)2, -0x3c44fcd0), 65536); // mov dword ptr [r20+r21*4-0x3c44fcd0], 65536 IID3930 - __ movl(Address(r21, +0x7ee35e55), 65536); // mov dword ptr [r21+0x7ee35e55], 65536 IID3931 - __ movl(Address(r22, r23, (Address::ScaleFactor)2, +0x7a7b44d0), 65536); // mov dword ptr [r22+r23*4+0x7a7b44d0], 65536 IID3932 - __ movl(Address(r23, r24, (Address::ScaleFactor)3, -0x2dbdda7c), 65536); // mov dword ptr [r23+r24*8-0x2dbdda7c], 65536 IID3933 - __ movl(Address(r24, r25, (Address::ScaleFactor)1, -0xdefa621), 65536); // mov dword ptr [r24+r25*2-0xdefa621], 65536 IID3934 - __ movl(Address(r25, r26, (Address::ScaleFactor)3, -0x6f05d50), 65536); // mov dword ptr [r25+r26*8-0x6f05d50], 65536 IID3935 - __ movl(Address(r26, r27, (Address::ScaleFactor)1, -0x2eec8e77), 65536); // mov dword ptr [r26+r27*2-0x2eec8e77], 65536 IID3936 - __ movl(Address(r27, r28, (Address::ScaleFactor)1, +0x1bd54190), 65536); // mov dword ptr [r27+r28*2+0x1bd54190], 65536 IID3937 - __ movl(Address(r28, r29, (Address::ScaleFactor)2, -0x308a585c), 65536); // mov dword ptr [r28+r29*4-0x308a585c], 65536 IID3938 - __ movl(Address(r29, r30, (Address::ScaleFactor)3, +0x5429bd57), 65536); // mov dword ptr [r29+r30*8+0x5429bd57], 65536 IID3939 - __ movl(Address(r30, r31, (Address::ScaleFactor)0, +0x6c8cde8a), 65536); // mov dword ptr [r30+r31*1+0x6c8cde8a], 65536 IID3940 - __ movl(Address(r31, -0x779e887), 65536); // mov dword ptr [r31-0x779e887], 65536 IID3941 - __ movl(Address(rcx, rdx, (Address::ScaleFactor)2, -0x79131c7d), 1048576); // mov dword ptr [rcx+rdx*4-0x79131c7d], 1048576 IID3942 - __ movl(Address(rdx, rbx, (Address::ScaleFactor)1, -0x14142bbc), 1048576); // mov dword ptr [rdx+rbx*2-0x14142bbc], 1048576 IID3943 - __ movl(Address(rbx, r8, (Address::ScaleFactor)3, -0x3a0c2e59), 1048576); // mov dword ptr [rbx+r8*8-0x3a0c2e59], 1048576 IID3944 - __ movl(Address(r8, r9, (Address::ScaleFactor)1, +0x42f5629c), 1048576); // mov dword ptr [r8+r9*2+0x42f5629c], 1048576 IID3945 - __ movl(Address(r9, -0x2b7bb6fb), 1048576); // mov dword ptr [r9-0x2b7bb6fb], 1048576 IID3946 - __ movl(Address(r10, r11, (Address::ScaleFactor)0, -0x2182422), 1048576); // mov dword ptr [r10+r11*1-0x2182422], 1048576 IID3947 - __ movl(Address(r11, r12, (Address::ScaleFactor)2, -0x3fc102b8), 1048576); // mov dword ptr [r11+r12*4-0x3fc102b8], 1048576 IID3948 - __ movl(Address(r12, +0xaa6a4a4), 1048576); // mov dword ptr [r12+0xaa6a4a4], 1048576 IID3949 - __ movl(Address(r13, r14, (Address::ScaleFactor)3, -0x18125265), 1048576); // mov dword ptr [r13+r14*8-0x18125265], 1048576 IID3950 - __ movl(Address(r14, r15, (Address::ScaleFactor)1, -0x7c0e1c4c), 1048576); // mov dword ptr [r14+r15*2-0x7c0e1c4c], 1048576 IID3951 - __ movl(Address(r15, +0x695f503d), 1048576); // mov dword ptr [r15+0x695f503d], 1048576 IID3952 - __ movl(Address(r16, r17, (Address::ScaleFactor)3, +0x527b6848), 1048576); // mov dword ptr [r16+r17*8+0x527b6848], 1048576 IID3953 - __ movl(Address(r17, r18, (Address::ScaleFactor)3, +0x660a3406), 1048576); // mov dword ptr [r17+r18*8+0x660a3406], 1048576 IID3954 - __ movl(Address(r18, r19, (Address::ScaleFactor)0, -0x2c433b58), 1048576); // mov dword ptr [r18+r19*1-0x2c433b58], 1048576 IID3955 - __ movl(Address(r19, r20, (Address::ScaleFactor)2, +0xba3900a), 1048576); // mov dword ptr [r19+r20*4+0xba3900a], 1048576 IID3956 - __ movl(Address(r20, r21, (Address::ScaleFactor)1, -0x16148d76), 1048576); // mov dword ptr [r20+r21*2-0x16148d76], 1048576 IID3957 - __ movl(Address(r21, r22, (Address::ScaleFactor)2, -0x231b1b91), 1048576); // mov dword ptr [r21+r22*4-0x231b1b91], 1048576 IID3958 - __ movl(Address(r22, r23, (Address::ScaleFactor)0, +0x222331ea), 1048576); // mov dword ptr [r22+r23*1+0x222331ea], 1048576 IID3959 - __ movl(Address(r23, +0x8513eef), 1048576); // mov dword ptr [r23+0x8513eef], 1048576 IID3960 - __ movl(Address(r24, r25, (Address::ScaleFactor)3, -0xaacbcbe), 1048576); // mov dword ptr [r24+r25*8-0xaacbcbe], 1048576 IID3961 - __ movl(Address(r25, +0x298f83c4), 1048576); // mov dword ptr [r25+0x298f83c4], 1048576 IID3962 - __ movl(Address(r26, r27, (Address::ScaleFactor)2, -0x674098a), 1048576); // mov dword ptr [r26+r27*4-0x674098a], 1048576 IID3963 - __ movl(Address(r27, r28, (Address::ScaleFactor)2, -0x9a3dcbb), 1048576); // mov dword ptr [r27+r28*4-0x9a3dcbb], 1048576 IID3964 - __ movl(Address(r28, r29, (Address::ScaleFactor)0, -0x5a2110b), 1048576); // mov dword ptr [r28+r29*1-0x5a2110b], 1048576 IID3965 - __ movl(Address(r29, +0x286ec555), 1048576); // mov dword ptr [r29+0x286ec555], 1048576 IID3966 - __ movl(Address(r30, -0x430bb97d), 1048576); // mov dword ptr [r30-0x430bb97d], 1048576 IID3967 - __ movl(Address(r31, rcx, (Address::ScaleFactor)1, -0x447a616f), 1048576); // mov dword ptr [r31+rcx*2-0x447a616f], 1048576 IID3968 - __ movl(Address(rcx, rdx, (Address::ScaleFactor)0, -0x9431846), 16777216); // mov dword ptr [rcx+rdx*1-0x9431846], 16777216 IID3969 - __ movl(Address(rdx, +0x7189dece), 16777216); // mov dword ptr [rdx+0x7189dece], 16777216 IID3970 - __ movl(Address(rbx, r8, (Address::ScaleFactor)0, +0x3b379802), 16777216); // mov dword ptr [rbx+r8*1+0x3b379802], 16777216 IID3971 - __ movl(Address(r8, r9, (Address::ScaleFactor)0, -0x1f2f3803), 16777216); // mov dword ptr [r8+r9*1-0x1f2f3803], 16777216 IID3972 - __ movl(Address(r9, r10, (Address::ScaleFactor)2, -0x65b315ab), 16777216); // mov dword ptr [r9+r10*4-0x65b315ab], 16777216 IID3973 - __ movl(Address(r10, r11, (Address::ScaleFactor)3, -0x2183ab0c), 16777216); // mov dword ptr [r10+r11*8-0x2183ab0c], 16777216 IID3974 - __ movl(Address(r11, -0x68cf4715), 16777216); // mov dword ptr [r11-0x68cf4715], 16777216 IID3975 - __ movl(Address(r12, r13, (Address::ScaleFactor)2, +0x3c41fe72), 16777216); // mov dword ptr [r12+r13*4+0x3c41fe72], 16777216 IID3976 - __ movl(Address(r13, r14, (Address::ScaleFactor)2, +0x2dc9ad4d), 16777216); // mov dword ptr [r13+r14*4+0x2dc9ad4d], 16777216 IID3977 - __ movl(Address(r14, r15, (Address::ScaleFactor)2, +0x468b4cd5), 16777216); // mov dword ptr [r14+r15*4+0x468b4cd5], 16777216 IID3978 - __ movl(Address(r15, r16, (Address::ScaleFactor)2, -0x3dc3f901), 16777216); // mov dword ptr [r15+r16*4-0x3dc3f901], 16777216 IID3979 - __ movl(Address(r16, r17, (Address::ScaleFactor)3, +0x9513ffe), 16777216); // mov dword ptr [r16+r17*8+0x9513ffe], 16777216 IID3980 - __ movl(Address(r17, +0x3968de3e), 16777216); // mov dword ptr [r17+0x3968de3e], 16777216 IID3981 - __ movl(Address(r18, -0x6686fc5e), 16777216); // mov dword ptr [r18-0x6686fc5e], 16777216 IID3982 - __ movl(Address(r19, +0x10d0a4a3), 16777216); // mov dword ptr [r19+0x10d0a4a3], 16777216 IID3983 - __ movl(Address(r20, r21, (Address::ScaleFactor)2, +0x49c60c14), 16777216); // mov dword ptr [r20+r21*4+0x49c60c14], 16777216 IID3984 - __ movl(Address(r21, +0x482205aa), 16777216); // mov dword ptr [r21+0x482205aa], 16777216 IID3985 - __ movl(Address(r22, r23, (Address::ScaleFactor)1, -0x76105a9d), 16777216); // mov dword ptr [r22+r23*2-0x76105a9d], 16777216 IID3986 - __ movl(Address(r23, r24, (Address::ScaleFactor)3, +0x680ca26a), 16777216); // mov dword ptr [r23+r24*8+0x680ca26a], 16777216 IID3987 - __ movl(Address(r24, r25, (Address::ScaleFactor)0, +0x21581a48), 16777216); // mov dword ptr [r24+r25*1+0x21581a48], 16777216 IID3988 - __ movl(Address(r25, r26, (Address::ScaleFactor)1, -0x222ec354), 16777216); // mov dword ptr [r25+r26*2-0x222ec354], 16777216 IID3989 - __ movl(Address(r26, r27, (Address::ScaleFactor)1, +0x7504312e), 16777216); // mov dword ptr [r26+r27*2+0x7504312e], 16777216 IID3990 - __ movl(Address(r27, r28, (Address::ScaleFactor)0, +0x3f404aea), 16777216); // mov dword ptr [r27+r28*1+0x3f404aea], 16777216 IID3991 - __ movl(Address(r28, r29, (Address::ScaleFactor)2, -0x6674e948), 16777216); // mov dword ptr [r28+r29*4-0x6674e948], 16777216 IID3992 - __ movl(Address(r29, r30, (Address::ScaleFactor)2, -0x576b8f75), 16777216); // mov dword ptr [r29+r30*4-0x576b8f75], 16777216 IID3993 - __ movl(Address(r30, r31, (Address::ScaleFactor)3, +0x3aca9dc), 16777216); // mov dword ptr [r30+r31*8+0x3aca9dc], 16777216 IID3994 - __ movl(Address(r31, rcx, (Address::ScaleFactor)1, +0xf4a215), 16777216); // mov dword ptr [r31+rcx*2+0xf4a215], 16777216 IID3995 - __ movl(Address(rcx, rdx, (Address::ScaleFactor)3, +0x58c64bd4), 268435456); // mov dword ptr [rcx+rdx*8+0x58c64bd4], 268435456 IID3996 - __ movl(Address(rdx, rbx, (Address::ScaleFactor)1, +0x4ea00d6f), 268435456); // mov dword ptr [rdx+rbx*2+0x4ea00d6f], 268435456 IID3997 - __ movl(Address(rbx, r8, (Address::ScaleFactor)1, -0x6fd98e5d), 268435456); // mov dword ptr [rbx+r8*2-0x6fd98e5d], 268435456 IID3998 - __ movl(Address(r8, r9, (Address::ScaleFactor)3, +0x6f0c9612), 268435456); // mov dword ptr [r8+r9*8+0x6f0c9612], 268435456 IID3999 - __ movl(Address(r9, r10, (Address::ScaleFactor)1, -0x6bd1d672), 268435456); // mov dword ptr [r9+r10*2-0x6bd1d672], 268435456 IID4000 - __ movl(Address(r10, -0x139ed275), 268435456); // mov dword ptr [r10-0x139ed275], 268435456 IID4001 - __ movl(Address(r11, r12, (Address::ScaleFactor)3, +0x3b5bafce), 268435456); // mov dword ptr [r11+r12*8+0x3b5bafce], 268435456 IID4002 - __ movl(Address(r12, r13, (Address::ScaleFactor)0, -0x5bb1372d), 268435456); // mov dword ptr [r12+r13*1-0x5bb1372d], 268435456 IID4003 - __ movl(Address(r13, +0x4af0cca8), 268435456); // mov dword ptr [r13+0x4af0cca8], 268435456 IID4004 - __ movl(Address(r14, r15, (Address::ScaleFactor)2, +0x3fcb2d63), 268435456); // mov dword ptr [r14+r15*4+0x3fcb2d63], 268435456 IID4005 - __ movl(Address(r15, r16, (Address::ScaleFactor)2, -0x2dbb23b9), 268435456); // mov dword ptr [r15+r16*4-0x2dbb23b9], 268435456 IID4006 - __ movl(Address(r16, r17, (Address::ScaleFactor)1, -0x1b3f4121), 268435456); // mov dword ptr [r16+r17*2-0x1b3f4121], 268435456 IID4007 - __ movl(Address(r17, r18, (Address::ScaleFactor)2, -0x377cf10b), 268435456); // mov dword ptr [r17+r18*4-0x377cf10b], 268435456 IID4008 - __ movl(Address(r18, r19, (Address::ScaleFactor)0, -0x9f95042), 268435456); // mov dword ptr [r18+r19*1-0x9f95042], 268435456 IID4009 - __ movl(Address(r19, r20, (Address::ScaleFactor)2, +0x1887a0b1), 268435456); // mov dword ptr [r19+r20*4+0x1887a0b1], 268435456 IID4010 - __ movl(Address(r20, r21, (Address::ScaleFactor)3, -0x3555d524), 268435456); // mov dword ptr [r20+r21*8-0x3555d524], 268435456 IID4011 - __ movl(Address(r21, -0x56c6b16d), 268435456); // mov dword ptr [r21-0x56c6b16d], 268435456 IID4012 - __ movl(Address(r22, r23, (Address::ScaleFactor)1, -0x54eae37c), 268435456); // mov dword ptr [r22+r23*2-0x54eae37c], 268435456 IID4013 - __ movl(Address(r23, -0x74129e91), 268435456); // mov dword ptr [r23-0x74129e91], 268435456 IID4014 - __ movl(Address(r24, r25, (Address::ScaleFactor)1, +0x1a05e1b1), 268435456); // mov dword ptr [r24+r25*2+0x1a05e1b1], 268435456 IID4015 - __ movl(Address(r25, -0x66abf015), 268435456); // mov dword ptr [r25-0x66abf015], 268435456 IID4016 - __ movl(Address(r26, r27, (Address::ScaleFactor)3, -0x610553a6), 268435456); // mov dword ptr [r26+r27*8-0x610553a6], 268435456 IID4017 - __ movl(Address(r27, r28, (Address::ScaleFactor)3, +0x538ae9ba), 268435456); // mov dword ptr [r27+r28*8+0x538ae9ba], 268435456 IID4018 - __ movl(Address(r28, r29, (Address::ScaleFactor)3, +0x1657d2ef), 268435456); // mov dword ptr [r28+r29*8+0x1657d2ef], 268435456 IID4019 - __ movl(Address(r29, -0x56c84c5e), 268435456); // mov dword ptr [r29-0x56c84c5e], 268435456 IID4020 - __ movl(Address(r30, r31, (Address::ScaleFactor)1, -0x69e48f92), 268435456); // mov dword ptr [r30+r31*2-0x69e48f92], 268435456 IID4021 - __ movl(Address(r31, -0x48679829), 268435456); // mov dword ptr [r31-0x48679829], 268435456 IID4022 -#endif // _LP64 - __ testb(Address(rcx, rdx, (Address::ScaleFactor)3, +0x79865f6b), 1); // test byte ptr [rcx+rdx*8+0x79865f6b], 1 IID4023 - __ testb(Address(rdx, rbx, (Address::ScaleFactor)1, +0x7d3a6118), 1); // test byte ptr [rdx+rbx*2+0x7d3a6118], 1 IID4024 -#ifdef _LP64 - __ testb(Address(rbx, r8, (Address::ScaleFactor)3, -0x5d4035bf), 1); // test byte ptr [rbx+r8*8-0x5d4035bf], 1 IID4025 - __ testb(Address(r8, r9, (Address::ScaleFactor)3, +0x2b93a3a4), 1); // test byte ptr [r8+r9*8+0x2b93a3a4], 1 IID4026 - __ testb(Address(r9, +0x71d0ef5b), 1); // test byte ptr [r9+0x71d0ef5b], 1 IID4027 - __ testb(Address(r10, -0x58f4a4f), 1); // test byte ptr [r10-0x58f4a4f], 1 IID4028 - __ testb(Address(r11, r12, (Address::ScaleFactor)3, -0x7f36b315), 1); // test byte ptr [r11+r12*8-0x7f36b315], 1 IID4029 - __ testb(Address(r12, -0x4d72ac46), 1); // test byte ptr [r12-0x4d72ac46], 1 IID4030 - __ testb(Address(r13, r14, (Address::ScaleFactor)2, +0x243b33ff), 1); // test byte ptr [r13+r14*4+0x243b33ff], 1 IID4031 - __ testb(Address(r14, r15, (Address::ScaleFactor)0, +0x3f49c7c2), 1); // test byte ptr [r14+r15*1+0x3f49c7c2], 1 IID4032 - __ testb(Address(r15, r16, (Address::ScaleFactor)3, +0x60405b0c), 1); // test byte ptr [r15+r16*8+0x60405b0c], 1 IID4033 - __ testb(Address(r16, -0x522fbbc7), 1); // test byte ptr [r16-0x522fbbc7], 1 IID4034 - __ testb(Address(r17, r18, (Address::ScaleFactor)1, +0x466fb3b1), 1); // test byte ptr [r17+r18*2+0x466fb3b1], 1 IID4035 - __ testb(Address(r18, r19, (Address::ScaleFactor)2, +0x2ccb9dd6), 1); // test byte ptr [r18+r19*4+0x2ccb9dd6], 1 IID4036 - __ testb(Address(r19, r20, (Address::ScaleFactor)3, -0x6ce0480c), 1); // test byte ptr [r19+r20*8-0x6ce0480c], 1 IID4037 - __ testb(Address(r20, r21, (Address::ScaleFactor)3, +0xcd23e49), 1); // test byte ptr [r20+r21*8+0xcd23e49], 1 IID4038 - __ testb(Address(r21, r22, (Address::ScaleFactor)2, +0x377d4600), 1); // test byte ptr [r21+r22*4+0x377d4600], 1 IID4039 - __ testb(Address(r22, r23, (Address::ScaleFactor)3, -0x5cc2ec14), 1); // test byte ptr [r22+r23*8-0x5cc2ec14], 1 IID4040 - __ testb(Address(r23, r24, (Address::ScaleFactor)3, +0x28ba4d7d), 1); // test byte ptr [r23+r24*8+0x28ba4d7d], 1 IID4041 - __ testb(Address(r24, r25, (Address::ScaleFactor)0, -0x4e7927f3), 1); // test byte ptr [r24+r25*1-0x4e7927f3], 1 IID4042 - __ testb(Address(r25, r26, (Address::ScaleFactor)3, +0xd510e2c), 1); // test byte ptr [r25+r26*8+0xd510e2c], 1 IID4043 - __ testb(Address(r26, r27, (Address::ScaleFactor)3, -0x1bdd2aee), 1); // test byte ptr [r26+r27*8-0x1bdd2aee], 1 IID4044 - __ testb(Address(r27, r28, (Address::ScaleFactor)1, +0x47d73a15), 1); // test byte ptr [r27+r28*2+0x47d73a15], 1 IID4045 - __ testb(Address(r28, r29, (Address::ScaleFactor)3, -0x55d1a6d6), 1); // test byte ptr [r28+r29*8-0x55d1a6d6], 1 IID4046 - __ testb(Address(r29, r30, (Address::ScaleFactor)2, +0x75f91f8d), 1); // test byte ptr [r29+r30*4+0x75f91f8d], 1 IID4047 - __ testb(Address(r30, r31, (Address::ScaleFactor)3, +0x54733baf), 1); // test byte ptr [r30+r31*8+0x54733baf], 1 IID4048 - __ testb(Address(r31, rcx, (Address::ScaleFactor)1, -0x66c5d541), 1); // test byte ptr [r31+rcx*2-0x66c5d541], 1 IID4049 - __ testb(Address(rcx, rdx, (Address::ScaleFactor)2, -0x2c8fbe14), 4); // test byte ptr [rcx+rdx*4-0x2c8fbe14], 4 IID4050 - __ testb(Address(rdx, +0x3e5f2514), 4); // test byte ptr [rdx+0x3e5f2514], 4 IID4051 - __ testb(Address(rbx, r8, (Address::ScaleFactor)1, +0x7a8d5da3), 4); // test byte ptr [rbx+r8*2+0x7a8d5da3], 4 IID4052 - __ testb(Address(r8, r9, (Address::ScaleFactor)1, +0x2b122be9), 4); // test byte ptr [r8+r9*2+0x2b122be9], 4 IID4053 - __ testb(Address(r9, r10, (Address::ScaleFactor)1, -0x2a80652b), 4); // test byte ptr [r9+r10*2-0x2a80652b], 4 IID4054 - __ testb(Address(r10, r11, (Address::ScaleFactor)0, +0x2a9feadf), 4); // test byte ptr [r10+r11*1+0x2a9feadf], 4 IID4055 - __ testb(Address(r11, -0x37df25fa), 4); // test byte ptr [r11-0x37df25fa], 4 IID4056 - __ testb(Address(r12, r13, (Address::ScaleFactor)2, +0x7e95de9a), 4); // test byte ptr [r12+r13*4+0x7e95de9a], 4 IID4057 - __ testb(Address(r13, -0x157a2dcf), 4); // test byte ptr [r13-0x157a2dcf], 4 IID4058 - __ testb(Address(r14, r15, (Address::ScaleFactor)0, -0x61d3b36c), 4); // test byte ptr [r14+r15*1-0x61d3b36c], 4 IID4059 - __ testb(Address(r15, r16, (Address::ScaleFactor)2, +0xa36d104), 4); // test byte ptr [r15+r16*4+0xa36d104], 4 IID4060 - __ testb(Address(r16, -0x258032d6), 4); // test byte ptr [r16-0x258032d6], 4 IID4061 - __ testb(Address(r17, r18, (Address::ScaleFactor)3, +0x339dcd88), 4); // test byte ptr [r17+r18*8+0x339dcd88], 4 IID4062 - __ testb(Address(r18, r19, (Address::ScaleFactor)3, -0x48c372c9), 4); // test byte ptr [r18+r19*8-0x48c372c9], 4 IID4063 - __ testb(Address(r19, r20, (Address::ScaleFactor)3, +0x23089c15), 4); // test byte ptr [r19+r20*8+0x23089c15], 4 IID4064 - __ testb(Address(r20, r21, (Address::ScaleFactor)2, +0x2cb814ac), 4); // test byte ptr [r20+r21*4+0x2cb814ac], 4 IID4065 - __ testb(Address(r21, r22, (Address::ScaleFactor)3, +0x180bfd3b), 4); // test byte ptr [r21+r22*8+0x180bfd3b], 4 IID4066 - __ testb(Address(r22, r23, (Address::ScaleFactor)1, -0x14581ba0), 4); // test byte ptr [r22+r23*2-0x14581ba0], 4 IID4067 - __ testb(Address(r23, r24, (Address::ScaleFactor)1, -0x456cb3e6), 4); // test byte ptr [r23+r24*2-0x456cb3e6], 4 IID4068 - __ testb(Address(r24, r25, (Address::ScaleFactor)3, -0x51f9bf33), 4); // test byte ptr [r24+r25*8-0x51f9bf33], 4 IID4069 - __ testb(Address(r25, +0x3a24d36e), 4); // test byte ptr [r25+0x3a24d36e], 4 IID4070 - __ testb(Address(r26, +0x2396f515), 4); // test byte ptr [r26+0x2396f515], 4 IID4071 - __ testb(Address(r27, -0x6b44bc6b), 4); // test byte ptr [r27-0x6b44bc6b], 4 IID4072 - __ testb(Address(r28, r29, (Address::ScaleFactor)2, -0x56c3ed2e), 4); // test byte ptr [r28+r29*4-0x56c3ed2e], 4 IID4073 - __ testb(Address(r29, r30, (Address::ScaleFactor)2, +0x564d0370), 4); // test byte ptr [r29+r30*4+0x564d0370], 4 IID4074 - __ testb(Address(r30, r31, (Address::ScaleFactor)1, +0x58dc183), 4); // test byte ptr [r30+r31*2+0x58dc183], 4 IID4075 - __ testb(Address(r31, rcx, (Address::ScaleFactor)0, +0x9e37dd3), 4); // test byte ptr [r31+rcx*1+0x9e37dd3], 4 IID4076 - __ testb(Address(rcx, rdx, (Address::ScaleFactor)3, -0x5f8d34f3), 16); // test byte ptr [rcx+rdx*8-0x5f8d34f3], 16 IID4077 - __ testb(Address(rdx, rbx, (Address::ScaleFactor)0, +0x74032377), 16); // test byte ptr [rdx+rbx*1+0x74032377], 16 IID4078 - __ testb(Address(rbx, r8, (Address::ScaleFactor)0, -0x2112ceca), 16); // test byte ptr [rbx+r8*1-0x2112ceca], 16 IID4079 - __ testb(Address(r8, r9, (Address::ScaleFactor)1, -0x16622576), 16); // test byte ptr [r8+r9*2-0x16622576], 16 IID4080 - __ testb(Address(r9, r10, (Address::ScaleFactor)2, +0x6f769cc4), 16); // test byte ptr [r9+r10*4+0x6f769cc4], 16 IID4081 - __ testb(Address(r10, r11, (Address::ScaleFactor)0, -0x147d18f5), 16); // test byte ptr [r10+r11*1-0x147d18f5], 16 IID4082 - __ testb(Address(r11, r12, (Address::ScaleFactor)2, +0x601039fb), 16); // test byte ptr [r11+r12*4+0x601039fb], 16 IID4083 - __ testb(Address(r12, -0x1adc4166), 16); // test byte ptr [r12-0x1adc4166], 16 IID4084 - __ testb(Address(r13, r14, (Address::ScaleFactor)3, +0x323963ee), 16); // test byte ptr [r13+r14*8+0x323963ee], 16 IID4085 - __ testb(Address(r14, -0x13e315f), 16); // test byte ptr [r14-0x13e315f], 16 IID4086 - __ testb(Address(r15, r16, (Address::ScaleFactor)2, +0xff97258), 16); // test byte ptr [r15+r16*4+0xff97258], 16 IID4087 - __ testb(Address(r16, r17, (Address::ScaleFactor)0, +0x7ff6d4e1), 16); // test byte ptr [r16+r17*1+0x7ff6d4e1], 16 IID4088 - __ testb(Address(r17, r18, (Address::ScaleFactor)3, +0x2b93dcf), 16); // test byte ptr [r17+r18*8+0x2b93dcf], 16 IID4089 - __ testb(Address(r18, r19, (Address::ScaleFactor)1, +0x358d0296), 16); // test byte ptr [r18+r19*2+0x358d0296], 16 IID4090 - __ testb(Address(r19, r20, (Address::ScaleFactor)1, +0x695226c6), 16); // test byte ptr [r19+r20*2+0x695226c6], 16 IID4091 - __ testb(Address(r20, r21, (Address::ScaleFactor)2, -0x6f7cecea), 16); // test byte ptr [r20+r21*4-0x6f7cecea], 16 IID4092 - __ testb(Address(r21, r22, (Address::ScaleFactor)0, -0x4f364dbd), 16); // test byte ptr [r21+r22*1-0x4f364dbd], 16 IID4093 - __ testb(Address(r22, r23, (Address::ScaleFactor)3, -0xf7bdf01), 16); // test byte ptr [r22+r23*8-0xf7bdf01], 16 IID4094 - __ testb(Address(r23, r24, (Address::ScaleFactor)3, +0x4f20b611), 16); // test byte ptr [r23+r24*8+0x4f20b611], 16 IID4095 - __ testb(Address(r24, r25, (Address::ScaleFactor)0, -0x5ff20ae6), 16); // test byte ptr [r24+r25*1-0x5ff20ae6], 16 IID4096 - __ testb(Address(r25, r26, (Address::ScaleFactor)3, +0x3b32558b), 16); // test byte ptr [r25+r26*8+0x3b32558b], 16 IID4097 - __ testb(Address(r26, r27, (Address::ScaleFactor)1, +0x44cabb62), 16); // test byte ptr [r26+r27*2+0x44cabb62], 16 IID4098 - __ testb(Address(r27, +0x2a026bf5), 16); // test byte ptr [r27+0x2a026bf5], 16 IID4099 - __ testb(Address(r28, r29, (Address::ScaleFactor)3, -0x261b0c5c), 16); // test byte ptr [r28+r29*8-0x261b0c5c], 16 IID4100 - __ testb(Address(r29, r30, (Address::ScaleFactor)2, -0x78218920), 16); // test byte ptr [r29+r30*4-0x78218920], 16 IID4101 - __ testb(Address(r30, -0x28d32bf0), 16); // test byte ptr [r30-0x28d32bf0], 16 IID4102 - __ testb(Address(r31, rcx, (Address::ScaleFactor)0, -0x24e28a92), 16); // test byte ptr [r31+rcx*1-0x24e28a92], 16 IID4103 - __ testb(Address(rcx, +0x4b3eacfb), 64); // test byte ptr [rcx+0x4b3eacfb], 64 IID4104 - __ testb(Address(rdx, rbx, (Address::ScaleFactor)2, -0x19cbae3f), 64); // test byte ptr [rdx+rbx*4-0x19cbae3f], 64 IID4105 - __ testb(Address(rbx, r8, (Address::ScaleFactor)0, -0x5cc9fae5), 64); // test byte ptr [rbx+r8*1-0x5cc9fae5], 64 IID4106 - __ testb(Address(r8, r9, (Address::ScaleFactor)0, +0x474df992), 64); // test byte ptr [r8+r9*1+0x474df992], 64 IID4107 - __ testb(Address(r9, r10, (Address::ScaleFactor)2, -0x7d165e6a), 64); // test byte ptr [r9+r10*4-0x7d165e6a], 64 IID4108 - __ testb(Address(r10, r11, (Address::ScaleFactor)0, -0x6a8497be), 64); // test byte ptr [r10+r11*1-0x6a8497be], 64 IID4109 - __ testb(Address(r11, +0x706a8ec), 64); // test byte ptr [r11+0x706a8ec], 64 IID4110 - __ testb(Address(r12, r13, (Address::ScaleFactor)3, +0x2f4c1258), 64); // test byte ptr [r12+r13*8+0x2f4c1258], 64 IID4111 - __ testb(Address(r13, +0x411f6790), 64); // test byte ptr [r13+0x411f6790], 64 IID4112 - __ testb(Address(r14, r15, (Address::ScaleFactor)1, -0x15b7a85b), 64); // test byte ptr [r14+r15*2-0x15b7a85b], 64 IID4113 - __ testb(Address(r15, r16, (Address::ScaleFactor)0, +0x52074c70), 64); // test byte ptr [r15+r16*1+0x52074c70], 64 IID4114 - __ testb(Address(r16, +0x60c75ca0), 64); // test byte ptr [r16+0x60c75ca0], 64 IID4115 - __ testb(Address(r17, r18, (Address::ScaleFactor)3, -0xdf525b1), 64); // test byte ptr [r17+r18*8-0xdf525b1], 64 IID4116 - __ testb(Address(r18, r19, (Address::ScaleFactor)0, -0x7ec262dc), 64); // test byte ptr [r18+r19*1-0x7ec262dc], 64 IID4117 - __ testb(Address(r19, r20, (Address::ScaleFactor)0, -0x1f779ea5), 64); // test byte ptr [r19+r20*1-0x1f779ea5], 64 IID4118 - __ testb(Address(r20, r21, (Address::ScaleFactor)1, -0x7a48b247), 64); // test byte ptr [r20+r21*2-0x7a48b247], 64 IID4119 - __ testb(Address(r21, r22, (Address::ScaleFactor)0, -0x72e43dca), 64); // test byte ptr [r21+r22*1-0x72e43dca], 64 IID4120 - __ testb(Address(r22, r23, (Address::ScaleFactor)1, -0x7b41be3a), 64); // test byte ptr [r22+r23*2-0x7b41be3a], 64 IID4121 - __ testb(Address(r23, r24, (Address::ScaleFactor)1, +0x54f9a8c2), 64); // test byte ptr [r23+r24*2+0x54f9a8c2], 64 IID4122 - __ testb(Address(r24, r25, (Address::ScaleFactor)0, +0x4c454144), 64); // test byte ptr [r24+r25*1+0x4c454144], 64 IID4123 - __ testb(Address(r25, r26, (Address::ScaleFactor)2, -0x5698e858), 64); // test byte ptr [r25+r26*4-0x5698e858], 64 IID4124 - __ testb(Address(r26, r27, (Address::ScaleFactor)1, -0x538e7645), 64); // test byte ptr [r26+r27*2-0x538e7645], 64 IID4125 - __ testb(Address(r27, r28, (Address::ScaleFactor)2, -0x13c85f20), 64); // test byte ptr [r27+r28*4-0x13c85f20], 64 IID4126 - __ testb(Address(r28, r29, (Address::ScaleFactor)1, +0x1f49443e), 64); // test byte ptr [r28+r29*2+0x1f49443e], 64 IID4127 - __ testb(Address(r29, r30, (Address::ScaleFactor)1, +0x664f1b6b), 64); // test byte ptr [r29+r30*2+0x664f1b6b], 64 IID4128 - __ testb(Address(r30, r31, (Address::ScaleFactor)0, +0x5897e51f), 64); // test byte ptr [r30+r31*1+0x5897e51f], 64 IID4129 - __ testb(Address(r31, rcx, (Address::ScaleFactor)1, +0x130b1cb7), 64); // test byte ptr [r31+rcx*2+0x130b1cb7], 64 IID4130 -#endif // _LP64 - __ testl(Address(rcx, -0x303dea2e), 65536); // test dword ptr [rcx-0x303dea2e], 65536 IID4131 - __ testl(Address(rdx, rbx, (Address::ScaleFactor)3, +0x4d5d64b9), 65536); // test dword ptr [rdx+rbx*8+0x4d5d64b9], 65536 IID4132 -#ifdef _LP64 - __ testl(Address(rbx, r8, (Address::ScaleFactor)2, -0x1408e2c5), 65536); // test dword ptr [rbx+r8*4-0x1408e2c5], 65536 IID4133 - __ testl(Address(r8, r9, (Address::ScaleFactor)2, -0x705efb5d), 65536); // test dword ptr [r8+r9*4-0x705efb5d], 65536 IID4134 - __ testl(Address(r9, r10, (Address::ScaleFactor)1, -0x26cd0fbb), 65536); // test dword ptr [r9+r10*2-0x26cd0fbb], 65536 IID4135 - __ testl(Address(r10, r11, (Address::ScaleFactor)2, +0x627b18ba), 65536); // test dword ptr [r10+r11*4+0x627b18ba], 65536 IID4136 - __ testl(Address(r11, r12, (Address::ScaleFactor)3, -0x12214063), 65536); // test dword ptr [r11+r12*8-0x12214063], 65536 IID4137 - __ testl(Address(r12, r13, (Address::ScaleFactor)2, +0xea6f6f6), 65536); // test dword ptr [r12+r13*4+0xea6f6f6], 65536 IID4138 - __ testl(Address(r13, +0x404e4681), 65536); // test dword ptr [r13+0x404e4681], 65536 IID4139 - __ testl(Address(r14, r15, (Address::ScaleFactor)0, -0x60986f79), 65536); // test dword ptr [r14+r15*1-0x60986f79], 65536 IID4140 - __ testl(Address(r15, r16, (Address::ScaleFactor)3, -0x421af46a), 65536); // test dword ptr [r15+r16*8-0x421af46a], 65536 IID4141 - __ testl(Address(r16, r17, (Address::ScaleFactor)0, +0x322f4421), 65536); // test dword ptr [r16+r17*1+0x322f4421], 65536 IID4142 - __ testl(Address(r17, r18, (Address::ScaleFactor)0, -0x26394dab), 65536); // test dword ptr [r17+r18*1-0x26394dab], 65536 IID4143 - __ testl(Address(r18, +0x7c314c93), 65536); // test dword ptr [r18+0x7c314c93], 65536 IID4144 - __ testl(Address(r19, -0x5bb508a5), 65536); // test dword ptr [r19-0x5bb508a5], 65536 IID4145 - __ testl(Address(r20, -0xf6d9a46), 65536); // test dword ptr [r20-0xf6d9a46], 65536 IID4146 - __ testl(Address(r21, r22, (Address::ScaleFactor)2, -0x11bbeece), 65536); // test dword ptr [r21+r22*4-0x11bbeece], 65536 IID4147 - __ testl(Address(r22, -0x5101ad85), 65536); // test dword ptr [r22-0x5101ad85], 65536 IID4148 - __ testl(Address(r23, r24, (Address::ScaleFactor)0, -0x497ba2bf), 65536); // test dword ptr [r23+r24*1-0x497ba2bf], 65536 IID4149 - __ testl(Address(r24, r25, (Address::ScaleFactor)2, -0x2afeaa29), 65536); // test dword ptr [r24+r25*4-0x2afeaa29], 65536 IID4150 - __ testl(Address(r25, r26, (Address::ScaleFactor)2, -0x57368f46), 65536); // test dword ptr [r25+r26*4-0x57368f46], 65536 IID4151 - __ testl(Address(r26, r27, (Address::ScaleFactor)1, -0x49c588b7), 65536); // test dword ptr [r26+r27*2-0x49c588b7], 65536 IID4152 - __ testl(Address(r27, r28, (Address::ScaleFactor)0, -0x6cb2ee26), 65536); // test dword ptr [r27+r28*1-0x6cb2ee26], 65536 IID4153 - __ testl(Address(r28, r29, (Address::ScaleFactor)2, +0x5654eac), 65536); // test dword ptr [r28+r29*4+0x5654eac], 65536 IID4154 - __ testl(Address(r29, r30, (Address::ScaleFactor)3, +0x65fa2151), 65536); // test dword ptr [r29+r30*8+0x65fa2151], 65536 IID4155 - __ testl(Address(r30, r31, (Address::ScaleFactor)2, -0x24141165), 65536); // test dword ptr [r30+r31*4-0x24141165], 65536 IID4156 - __ testl(Address(r31, -0x4e4387ef), 65536); // test dword ptr [r31-0x4e4387ef], 65536 IID4157 - __ testl(Address(rcx, -0x5e0afd80), 262144); // test dword ptr [rcx-0x5e0afd80], 262144 IID4158 - __ testl(Address(rdx, rbx, (Address::ScaleFactor)1, -0x605cbebf), 262144); // test dword ptr [rdx+rbx*2-0x605cbebf], 262144 IID4159 - __ testl(Address(rbx, +0x6dec4797), 262144); // test dword ptr [rbx+0x6dec4797], 262144 IID4160 - __ testl(Address(r8, r9, (Address::ScaleFactor)0, -0x2546631c), 262144); // test dword ptr [r8+r9*1-0x2546631c], 262144 IID4161 - __ testl(Address(r9, r10, (Address::ScaleFactor)0, -0x186b4d98), 262144); // test dword ptr [r9+r10*1-0x186b4d98], 262144 IID4162 - __ testl(Address(r10, r11, (Address::ScaleFactor)3, +0x604edaad), 262144); // test dword ptr [r10+r11*8+0x604edaad], 262144 IID4163 - __ testl(Address(r11, r12, (Address::ScaleFactor)0, +0x530dbca2), 262144); // test dword ptr [r11+r12*1+0x530dbca2], 262144 IID4164 - __ testl(Address(r12, -0x53840662), 262144); // test dword ptr [r12-0x53840662], 262144 IID4165 - __ testl(Address(r13, +0x5b5ba3ca), 262144); // test dword ptr [r13+0x5b5ba3ca], 262144 IID4166 - __ testl(Address(r14, r15, (Address::ScaleFactor)3, -0x59ef95bd), 262144); // test dword ptr [r14+r15*8-0x59ef95bd], 262144 IID4167 - __ testl(Address(r15, r16, (Address::ScaleFactor)0, -0x1e60dfdb), 262144); // test dword ptr [r15+r16*1-0x1e60dfdb], 262144 IID4168 - __ testl(Address(r16, r17, (Address::ScaleFactor)0, -0x4988041b), 262144); // test dword ptr [r16+r17*1-0x4988041b], 262144 IID4169 - __ testl(Address(r17, r18, (Address::ScaleFactor)2, +0x2b0036c9), 262144); // test dword ptr [r17+r18*4+0x2b0036c9], 262144 IID4170 - __ testl(Address(r18, r19, (Address::ScaleFactor)1, -0x698970d9), 262144); // test dword ptr [r18+r19*2-0x698970d9], 262144 IID4171 - __ testl(Address(r19, r20, (Address::ScaleFactor)2, -0xc8dc321), 262144); // test dword ptr [r19+r20*4-0xc8dc321], 262144 IID4172 - __ testl(Address(r20, r21, (Address::ScaleFactor)1, -0x129f16e5), 262144); // test dword ptr [r20+r21*2-0x129f16e5], 262144 IID4173 - __ testl(Address(r21, r22, (Address::ScaleFactor)2, +0x498e3d87), 262144); // test dword ptr [r21+r22*4+0x498e3d87], 262144 IID4174 - __ testl(Address(r22, r23, (Address::ScaleFactor)2, -0x26f88b12), 262144); // test dword ptr [r22+r23*4-0x26f88b12], 262144 IID4175 - __ testl(Address(r23, r24, (Address::ScaleFactor)0, -0x286b68df), 262144); // test dword ptr [r23+r24*1-0x286b68df], 262144 IID4176 - __ testl(Address(r24, -0x20b945d3), 262144); // test dword ptr [r24-0x20b945d3], 262144 IID4177 - __ testl(Address(r25, r26, (Address::ScaleFactor)1, +0x68c21611), 262144); // test dword ptr [r25+r26*2+0x68c21611], 262144 IID4178 - __ testl(Address(r26, r27, (Address::ScaleFactor)3, -0x557e1432), 262144); // test dword ptr [r26+r27*8-0x557e1432], 262144 IID4179 - __ testl(Address(r27, r28, (Address::ScaleFactor)2, +0x4d4afd02), 262144); // test dword ptr [r27+r28*4+0x4d4afd02], 262144 IID4180 - __ testl(Address(r28, r29, (Address::ScaleFactor)2, +0x3c8ae10), 262144); // test dword ptr [r28+r29*4+0x3c8ae10], 262144 IID4181 - __ testl(Address(r29, +0x62bcef3a), 262144); // test dword ptr [r29+0x62bcef3a], 262144 IID4182 - __ testl(Address(r30, r31, (Address::ScaleFactor)0, -0x5a2b915f), 262144); // test dword ptr [r30+r31*1-0x5a2b915f], 262144 IID4183 - __ testl(Address(r31, rcx, (Address::ScaleFactor)0, +0x58d228cb), 262144); // test dword ptr [r31+rcx*1+0x58d228cb], 262144 IID4184 - __ testl(Address(rcx, rdx, (Address::ScaleFactor)1, -0x1f4a5462), 1048576); // test dword ptr [rcx+rdx*2-0x1f4a5462], 1048576 IID4185 - __ testl(Address(rdx, rbx, (Address::ScaleFactor)2, +0x105de9bb), 1048576); // test dword ptr [rdx+rbx*4+0x105de9bb], 1048576 IID4186 - __ testl(Address(rbx, r8, (Address::ScaleFactor)2, -0x4a403f7d), 1048576); // test dword ptr [rbx+r8*4-0x4a403f7d], 1048576 IID4187 - __ testl(Address(r8, r9, (Address::ScaleFactor)3, -0x31278864), 1048576); // test dword ptr [r8+r9*8-0x31278864], 1048576 IID4188 - __ testl(Address(r9, -0x5bdd5bbf), 1048576); // test dword ptr [r9-0x5bdd5bbf], 1048576 IID4189 - __ testl(Address(r10, r11, (Address::ScaleFactor)0, +0x10fd7132), 1048576); // test dword ptr [r10+r11*1+0x10fd7132], 1048576 IID4190 - __ testl(Address(r11, r12, (Address::ScaleFactor)1, +0x1ed697c5), 1048576); // test dword ptr [r11+r12*2+0x1ed697c5], 1048576 IID4191 - __ testl(Address(r12, r13, (Address::ScaleFactor)0, +0x67c8547b), 1048576); // test dword ptr [r12+r13*1+0x67c8547b], 1048576 IID4192 - __ testl(Address(r13, r14, (Address::ScaleFactor)0, +0x4a4001ab), 1048576); // test dword ptr [r13+r14*1+0x4a4001ab], 1048576 IID4193 - __ testl(Address(r14, r15, (Address::ScaleFactor)1, +0x29a1864a), 1048576); // test dword ptr [r14+r15*2+0x29a1864a], 1048576 IID4194 - __ testl(Address(r15, r16, (Address::ScaleFactor)0, -0x7315c92a), 1048576); // test dword ptr [r15+r16*1-0x7315c92a], 1048576 IID4195 - __ testl(Address(r16, +0x1d9bbdb4), 1048576); // test dword ptr [r16+0x1d9bbdb4], 1048576 IID4196 - __ testl(Address(r17, r18, (Address::ScaleFactor)3, -0x44a78a53), 1048576); // test dword ptr [r17+r18*8-0x44a78a53], 1048576 IID4197 - __ testl(Address(r18, r19, (Address::ScaleFactor)2, -0x3829c84d), 1048576); // test dword ptr [r18+r19*4-0x3829c84d], 1048576 IID4198 - __ testl(Address(r19, r20, (Address::ScaleFactor)2, +0x5b2868f4), 1048576); // test dword ptr [r19+r20*4+0x5b2868f4], 1048576 IID4199 - __ testl(Address(r20, r21, (Address::ScaleFactor)0, +0x44c5f5b), 1048576); // test dword ptr [r20+r21*1+0x44c5f5b], 1048576 IID4200 - __ testl(Address(r21, r22, (Address::ScaleFactor)1, +0x6c417f70), 1048576); // test dword ptr [r21+r22*2+0x6c417f70], 1048576 IID4201 - __ testl(Address(r22, r23, (Address::ScaleFactor)0, -0x1ac600a0), 1048576); // test dword ptr [r22+r23*1-0x1ac600a0], 1048576 IID4202 - __ testl(Address(r23, r24, (Address::ScaleFactor)3, +0x6a9d4dac), 1048576); // test dword ptr [r23+r24*8+0x6a9d4dac], 1048576 IID4203 - __ testl(Address(r24, r25, (Address::ScaleFactor)0, +0x19b8b6e0), 1048576); // test dword ptr [r24+r25*1+0x19b8b6e0], 1048576 IID4204 - __ testl(Address(r25, +0x2633c1c1), 1048576); // test dword ptr [r25+0x2633c1c1], 1048576 IID4205 - __ testl(Address(r26, r27, (Address::ScaleFactor)3, +0x5b785687), 1048576); // test dword ptr [r26+r27*8+0x5b785687], 1048576 IID4206 - __ testl(Address(r27, -0x777166b1), 1048576); // test dword ptr [r27-0x777166b1], 1048576 IID4207 - __ testl(Address(r28, r29, (Address::ScaleFactor)3, -0x499e5dd7), 1048576); // test dword ptr [r28+r29*8-0x499e5dd7], 1048576 IID4208 - __ testl(Address(r29, r30, (Address::ScaleFactor)1, -0x280ee3af), 1048576); // test dword ptr [r29+r30*2-0x280ee3af], 1048576 IID4209 - __ testl(Address(r30, r31, (Address::ScaleFactor)3, -0x3bb9124e), 1048576); // test dword ptr [r30+r31*8-0x3bb9124e], 1048576 IID4210 - __ testl(Address(r31, rcx, (Address::ScaleFactor)2, -0x2bb5206b), 1048576); // test dword ptr [r31+rcx*4-0x2bb5206b], 1048576 IID4211 - __ testl(Address(rcx, rdx, (Address::ScaleFactor)3, +0x152aecae), 4194304); // test dword ptr [rcx+rdx*8+0x152aecae], 4194304 IID4212 - __ testl(Address(rdx, rbx, (Address::ScaleFactor)2, -0x5ea1f500), 4194304); // test dword ptr [rdx+rbx*4-0x5ea1f500], 4194304 IID4213 - __ testl(Address(rbx, r8, (Address::ScaleFactor)2, -0x76b10d30), 4194304); // test dword ptr [rbx+r8*4-0x76b10d30], 4194304 IID4214 - __ testl(Address(r8, r9, (Address::ScaleFactor)3, -0x699a86f), 4194304); // test dword ptr [r8+r9*8-0x699a86f], 4194304 IID4215 - __ testl(Address(r9, r10, (Address::ScaleFactor)2, +0x10dbb8b4), 4194304); // test dword ptr [r9+r10*4+0x10dbb8b4], 4194304 IID4216 - __ testl(Address(r10, r11, (Address::ScaleFactor)3, +0x3db0aa91), 4194304); // test dword ptr [r10+r11*8+0x3db0aa91], 4194304 IID4217 - __ testl(Address(r11, r12, (Address::ScaleFactor)3, +0x21ffff17), 4194304); // test dword ptr [r11+r12*8+0x21ffff17], 4194304 IID4218 - __ testl(Address(r12, +0x1f2564ed), 4194304); // test dword ptr [r12+0x1f2564ed], 4194304 IID4219 - __ testl(Address(r13, r14, (Address::ScaleFactor)3, +0x7913f1e4), 4194304); // test dword ptr [r13+r14*8+0x7913f1e4], 4194304 IID4220 - __ testl(Address(r14, -0x59011b8), 4194304); // test dword ptr [r14-0x59011b8], 4194304 IID4221 - __ testl(Address(r15, r16, (Address::ScaleFactor)0, -0x6579b64b), 4194304); // test dword ptr [r15+r16*1-0x6579b64b], 4194304 IID4222 - __ testl(Address(r16, r17, (Address::ScaleFactor)3, +0x169d7f24), 4194304); // test dword ptr [r16+r17*8+0x169d7f24], 4194304 IID4223 - __ testl(Address(r17, r18, (Address::ScaleFactor)3, -0x2d9112c9), 4194304); // test dword ptr [r17+r18*8-0x2d9112c9], 4194304 IID4224 - __ testl(Address(r18, +0x25763bca), 4194304); // test dword ptr [r18+0x25763bca], 4194304 IID4225 - __ testl(Address(r19, -0x5cbd3bf6), 4194304); // test dword ptr [r19-0x5cbd3bf6], 4194304 IID4226 - __ testl(Address(r20, r21, (Address::ScaleFactor)0, -0x3d2bbebe), 4194304); // test dword ptr [r20+r21*1-0x3d2bbebe], 4194304 IID4227 - __ testl(Address(r21, r22, (Address::ScaleFactor)2, -0x14693943), 4194304); // test dword ptr [r21+r22*4-0x14693943], 4194304 IID4228 - __ testl(Address(r22, -0x209d357a), 4194304); // test dword ptr [r22-0x209d357a], 4194304 IID4229 - __ testl(Address(r23, r24, (Address::ScaleFactor)1, -0x2c33362a), 4194304); // test dword ptr [r23+r24*2-0x2c33362a], 4194304 IID4230 - __ testl(Address(r24, -0x1452bad2), 4194304); // test dword ptr [r24-0x1452bad2], 4194304 IID4231 - __ testl(Address(r25, r26, (Address::ScaleFactor)3, +0x5dd0f531), 4194304); // test dword ptr [r25+r26*8+0x5dd0f531], 4194304 IID4232 - __ testl(Address(r26, +0x20c65761), 4194304); // test dword ptr [r26+0x20c65761], 4194304 IID4233 - __ testl(Address(r27, -0x4c5b345b), 4194304); // test dword ptr [r27-0x4c5b345b], 4194304 IID4234 - __ testl(Address(r28, r29, (Address::ScaleFactor)3, +0x596eedcd), 4194304); // test dword ptr [r28+r29*8+0x596eedcd], 4194304 IID4235 - __ testl(Address(r29, r30, (Address::ScaleFactor)2, +0x4507ca), 4194304); // test dword ptr [r29+r30*4+0x4507ca], 4194304 IID4236 - __ testl(Address(r30, -0x2b1b252b), 4194304); // test dword ptr [r30-0x2b1b252b], 4194304 IID4237 - __ testl(Address(r31, rcx, (Address::ScaleFactor)2, -0x57bfadd5), 4194304); // test dword ptr [r31+rcx*4-0x57bfadd5], 4194304 IID4238 - __ testl(Address(rcx, -0x2cbb008f), 16777216); // test dword ptr [rcx-0x2cbb008f], 16777216 IID4239 - __ testl(Address(rdx, +0x547272b2), 16777216); // test dword ptr [rdx+0x547272b2], 16777216 IID4240 - __ testl(Address(rbx, r8, (Address::ScaleFactor)1, -0x72846e9b), 16777216); // test dword ptr [rbx+r8*2-0x72846e9b], 16777216 IID4241 - __ testl(Address(r8, r9, (Address::ScaleFactor)2, -0x79cdf2d8), 16777216); // test dword ptr [r8+r9*4-0x79cdf2d8], 16777216 IID4242 - __ testl(Address(r9, r10, (Address::ScaleFactor)1, +0xe672f48), 16777216); // test dword ptr [r9+r10*2+0xe672f48], 16777216 IID4243 - __ testl(Address(r10, r11, (Address::ScaleFactor)1, -0x668b0fa3), 16777216); // test dword ptr [r10+r11*2-0x668b0fa3], 16777216 IID4244 - __ testl(Address(r11, r12, (Address::ScaleFactor)2, -0x2f3a3d86), 16777216); // test dword ptr [r11+r12*4-0x2f3a3d86], 16777216 IID4245 - __ testl(Address(r12, r13, (Address::ScaleFactor)1, +0x42ac32e5), 16777216); // test dword ptr [r12+r13*2+0x42ac32e5], 16777216 IID4246 - __ testl(Address(r13, r14, (Address::ScaleFactor)3, +0x6e8c62f2), 16777216); // test dword ptr [r13+r14*8+0x6e8c62f2], 16777216 IID4247 - __ testl(Address(r14, r15, (Address::ScaleFactor)0, -0x17b22e2a), 16777216); // test dword ptr [r14+r15*1-0x17b22e2a], 16777216 IID4248 - __ testl(Address(r15, r16, (Address::ScaleFactor)2, +0x77bbdbec), 16777216); // test dword ptr [r15+r16*4+0x77bbdbec], 16777216 IID4249 - __ testl(Address(r16, r17, (Address::ScaleFactor)3, -0x4a56f210), 16777216); // test dword ptr [r16+r17*8-0x4a56f210], 16777216 IID4250 - __ testl(Address(r17, r18, (Address::ScaleFactor)3, -0x11a61ecd), 16777216); // test dword ptr [r17+r18*8-0x11a61ecd], 16777216 IID4251 - __ testl(Address(r18, r19, (Address::ScaleFactor)3, +0x63d76b55), 16777216); // test dword ptr [r18+r19*8+0x63d76b55], 16777216 IID4252 - __ testl(Address(r19, r20, (Address::ScaleFactor)3, -0x1d2fd0cc), 16777216); // test dword ptr [r19+r20*8-0x1d2fd0cc], 16777216 IID4253 - __ testl(Address(r20, r21, (Address::ScaleFactor)2, -0x4cea4591), 16777216); // test dword ptr [r20+r21*4-0x4cea4591], 16777216 IID4254 - __ testl(Address(r21, +0x613b2474), 16777216); // test dword ptr [r21+0x613b2474], 16777216 IID4255 - __ testl(Address(r22, -0x5d157ec3), 16777216); // test dword ptr [r22-0x5d157ec3], 16777216 IID4256 - __ testl(Address(r23, -0x66116286), 16777216); // test dword ptr [r23-0x66116286], 16777216 IID4257 - __ testl(Address(r24, r25, (Address::ScaleFactor)3, +0xb5f591a), 16777216); // test dword ptr [r24+r25*8+0xb5f591a], 16777216 IID4258 - __ testl(Address(r25, r26, (Address::ScaleFactor)3, +0x4c322dd0), 16777216); // test dword ptr [r25+r26*8+0x4c322dd0], 16777216 IID4259 - __ testl(Address(r26, r27, (Address::ScaleFactor)0, +0x42f92df1), 16777216); // test dword ptr [r26+r27*1+0x42f92df1], 16777216 IID4260 - __ testl(Address(r27, r28, (Address::ScaleFactor)3, -0x71d4a043), 16777216); // test dword ptr [r27+r28*8-0x71d4a043], 16777216 IID4261 - __ testl(Address(r28, r29, (Address::ScaleFactor)0, -0x6f96b951), 16777216); // test dword ptr [r28+r29*1-0x6f96b951], 16777216 IID4262 - __ testl(Address(r29, r30, (Address::ScaleFactor)1, +0x37b5836), 16777216); // test dword ptr [r29+r30*2+0x37b5836], 16777216 IID4263 - __ testl(Address(r30, r31, (Address::ScaleFactor)1, -0xa6ae9), 16777216); // test dword ptr [r30+r31*2-0xa6ae9], 16777216 IID4264 - __ testl(Address(r31, rcx, (Address::ScaleFactor)0, +0x50266838), 16777216); // test dword ptr [r31+rcx*1+0x50266838], 16777216 IID4265 - __ testl(Address(rcx, rdx, (Address::ScaleFactor)0, -0x1d1d39d8), 67108864); // test dword ptr [rcx+rdx*1-0x1d1d39d8], 67108864 IID4266 - __ testl(Address(rdx, rbx, (Address::ScaleFactor)0, +0x169009d), 67108864); // test dword ptr [rdx+rbx*1+0x169009d], 67108864 IID4267 - __ testl(Address(rbx, +0x2f89dae8), 67108864); // test dword ptr [rbx+0x2f89dae8], 67108864 IID4268 - __ testl(Address(r8, r9, (Address::ScaleFactor)0, +0x6ed5934f), 67108864); // test dword ptr [r8+r9*1+0x6ed5934f], 67108864 IID4269 - __ testl(Address(r9, r10, (Address::ScaleFactor)0, -0x5491fcd1), 67108864); // test dword ptr [r9+r10*1-0x5491fcd1], 67108864 IID4270 - __ testl(Address(r10, r11, (Address::ScaleFactor)2, -0x5f8d28e), 67108864); // test dword ptr [r10+r11*4-0x5f8d28e], 67108864 IID4271 - __ testl(Address(r11, r12, (Address::ScaleFactor)2, -0x17583193), 67108864); // test dword ptr [r11+r12*4-0x17583193], 67108864 IID4272 - __ testl(Address(r12, r13, (Address::ScaleFactor)3, -0x8bcf9a), 67108864); // test dword ptr [r12+r13*8-0x8bcf9a], 67108864 IID4273 - __ testl(Address(r13, r14, (Address::ScaleFactor)0, +0x5cb82028), 67108864); // test dword ptr [r13+r14*1+0x5cb82028], 67108864 IID4274 - __ testl(Address(r14, r15, (Address::ScaleFactor)3, -0x7a6b89e5), 67108864); // test dword ptr [r14+r15*8-0x7a6b89e5], 67108864 IID4275 - __ testl(Address(r15, r16, (Address::ScaleFactor)1, -0x1c7f33f3), 67108864); // test dword ptr [r15+r16*2-0x1c7f33f3], 67108864 IID4276 - __ testl(Address(r16, r17, (Address::ScaleFactor)1, -0x13088690), 67108864); // test dword ptr [r16+r17*2-0x13088690], 67108864 IID4277 - __ testl(Address(r17, r18, (Address::ScaleFactor)2, +0xb59d5ad), 67108864); // test dword ptr [r17+r18*4+0xb59d5ad], 67108864 IID4278 - __ testl(Address(r18, r19, (Address::ScaleFactor)3, +0xfd768e), 67108864); // test dword ptr [r18+r19*8+0xfd768e], 67108864 IID4279 - __ testl(Address(r19, r20, (Address::ScaleFactor)2, -0x232fb41b), 67108864); // test dword ptr [r19+r20*4-0x232fb41b], 67108864 IID4280 - __ testl(Address(r20, -0x7fe7505f), 67108864); // test dword ptr [r20-0x7fe7505f], 67108864 IID4281 - __ testl(Address(r21, r22, (Address::ScaleFactor)3, +0x4fd7406), 67108864); // test dword ptr [r21+r22*8+0x4fd7406], 67108864 IID4282 - __ testl(Address(r22, r23, (Address::ScaleFactor)0, -0x1ce52192), 67108864); // test dword ptr [r22+r23*1-0x1ce52192], 67108864 IID4283 - __ testl(Address(r23, r24, (Address::ScaleFactor)0, -0x44581f), 67108864); // test dword ptr [r23+r24*1-0x44581f], 67108864 IID4284 - __ testl(Address(r24, r25, (Address::ScaleFactor)1, +0x3099576a), 67108864); // test dword ptr [r24+r25*2+0x3099576a], 67108864 IID4285 - __ testl(Address(r25, r26, (Address::ScaleFactor)1, -0x1a33a40b), 67108864); // test dword ptr [r25+r26*2-0x1a33a40b], 67108864 IID4286 - __ testl(Address(r26, r27, (Address::ScaleFactor)3, +0x30e9d14), 67108864); // test dword ptr [r26+r27*8+0x30e9d14], 67108864 IID4287 - __ testl(Address(r27, r28, (Address::ScaleFactor)2, +0x7d5be2b9), 67108864); // test dword ptr [r27+r28*4+0x7d5be2b9], 67108864 IID4288 - __ testl(Address(r28, r29, (Address::ScaleFactor)3, +0x18960b0a), 67108864); // test dword ptr [r28+r29*8+0x18960b0a], 67108864 IID4289 - __ testl(Address(r29, r30, (Address::ScaleFactor)1, -0x567f6dfa), 67108864); // test dword ptr [r29+r30*2-0x567f6dfa], 67108864 IID4290 - __ testl(Address(r30, r31, (Address::ScaleFactor)3, -0x2c3eab29), 67108864); // test dword ptr [r30+r31*8-0x2c3eab29], 67108864 IID4291 - __ testl(Address(r31, rcx, (Address::ScaleFactor)2, +0x35ecf5e8), 67108864); // test dword ptr [r31+rcx*4+0x35ecf5e8], 67108864 IID4292 - __ testl(Address(rcx, rdx, (Address::ScaleFactor)0, +0x47537b3a), 268435456); // test dword ptr [rcx+rdx*1+0x47537b3a], 268435456 IID4293 - __ testl(Address(rdx, +0x3d0c11f0), 268435456); // test dword ptr [rdx+0x3d0c11f0], 268435456 IID4294 - __ testl(Address(rbx, r8, (Address::ScaleFactor)0, -0x2d356326), 268435456); // test dword ptr [rbx+r8*1-0x2d356326], 268435456 IID4295 - __ testl(Address(r8, r9, (Address::ScaleFactor)0, -0xbe25e08), 268435456); // test dword ptr [r8+r9*1-0xbe25e08], 268435456 IID4296 - __ testl(Address(r9, r10, (Address::ScaleFactor)1, +0x73da9f10), 268435456); // test dword ptr [r9+r10*2+0x73da9f10], 268435456 IID4297 - __ testl(Address(r10, r11, (Address::ScaleFactor)2, -0x62fd9f41), 268435456); // test dword ptr [r10+r11*4-0x62fd9f41], 268435456 IID4298 - __ testl(Address(r11, r12, (Address::ScaleFactor)0, -0x14b89b74), 268435456); // test dword ptr [r11+r12*1-0x14b89b74], 268435456 IID4299 - __ testl(Address(r12, +0x31f02edd), 268435456); // test dword ptr [r12+0x31f02edd], 268435456 IID4300 - __ testl(Address(r13, r14, (Address::ScaleFactor)0, -0xd057915), 268435456); // test dword ptr [r13+r14*1-0xd057915], 268435456 IID4301 - __ testl(Address(r14, r15, (Address::ScaleFactor)3, +0x2cc24865), 268435456); // test dword ptr [r14+r15*8+0x2cc24865], 268435456 IID4302 - __ testl(Address(r15, r16, (Address::ScaleFactor)3, +0xf16518a), 268435456); // test dword ptr [r15+r16*8+0xf16518a], 268435456 IID4303 - __ testl(Address(r16, r17, (Address::ScaleFactor)0, -0x37af9801), 268435456); // test dword ptr [r16+r17*1-0x37af9801], 268435456 IID4304 - __ testl(Address(r17, r18, (Address::ScaleFactor)1, +0x2639ba28), 268435456); // test dword ptr [r17+r18*2+0x2639ba28], 268435456 IID4305 - __ testl(Address(r18, r19, (Address::ScaleFactor)2, -0x37171505), 268435456); // test dword ptr [r18+r19*4-0x37171505], 268435456 IID4306 - __ testl(Address(r19, -0x64e4e17f), 268435456); // test dword ptr [r19-0x64e4e17f], 268435456 IID4307 - __ testl(Address(r20, r21, (Address::ScaleFactor)1, +0x4763885a), 268435456); // test dword ptr [r20+r21*2+0x4763885a], 268435456 IID4308 - __ testl(Address(r21, r22, (Address::ScaleFactor)1, -0x78a08775), 268435456); // test dword ptr [r21+r22*2-0x78a08775], 268435456 IID4309 - __ testl(Address(r22, r23, (Address::ScaleFactor)0, -0x5692f453), 268435456); // test dword ptr [r22+r23*1-0x5692f453], 268435456 IID4310 - __ testl(Address(r23, r24, (Address::ScaleFactor)0, -0x6ca5288d), 268435456); // test dword ptr [r23+r24*1-0x6ca5288d], 268435456 IID4311 - __ testl(Address(r24, -0xa8651e2), 268435456); // test dword ptr [r24-0xa8651e2], 268435456 IID4312 - __ testl(Address(r25, +0x1775654c), 268435456); // test dword ptr [r25+0x1775654c], 268435456 IID4313 - __ testl(Address(r26, r27, (Address::ScaleFactor)2, -0x28a29118), 268435456); // test dword ptr [r26+r27*4-0x28a29118], 268435456 IID4314 - __ testl(Address(r27, r28, (Address::ScaleFactor)3, -0x4b03c260), 268435456); // test dword ptr [r27+r28*8-0x4b03c260], 268435456 IID4315 - __ testl(Address(r28, -0x194dc52b), 268435456); // test dword ptr [r28-0x194dc52b], 268435456 IID4316 - __ testl(Address(r29, -0x5cdc9082), 268435456); // test dword ptr [r29-0x5cdc9082], 268435456 IID4317 - __ testl(Address(r30, r31, (Address::ScaleFactor)3, +0x67911203), 268435456); // test dword ptr [r30+r31*8+0x67911203], 268435456 IID4318 - __ testl(Address(r31, +0x57a64e13), 268435456); // test dword ptr [r31+0x57a64e13], 268435456 IID4319 - __ testl(Address(rcx, +0x92aa74c), 1073741824); // test dword ptr [rcx+0x92aa74c], 1073741824 IID4320 - __ testl(Address(rdx, rbx, (Address::ScaleFactor)3, +0x76ff2680), 1073741824); // test dword ptr [rdx+rbx*8+0x76ff2680], 1073741824 IID4321 - __ testl(Address(rbx, r8, (Address::ScaleFactor)1, -0x47eaed50), 1073741824); // test dword ptr [rbx+r8*2-0x47eaed50], 1073741824 IID4322 - __ testl(Address(r8, r9, (Address::ScaleFactor)0, +0x1ccba6b9), 1073741824); // test dword ptr [r8+r9*1+0x1ccba6b9], 1073741824 IID4323 - __ testl(Address(r9, r10, (Address::ScaleFactor)0, +0x496ac9c3), 1073741824); // test dword ptr [r9+r10*1+0x496ac9c3], 1073741824 IID4324 - __ testl(Address(r10, r11, (Address::ScaleFactor)2, +0x7e7c4b3c), 1073741824); // test dword ptr [r10+r11*4+0x7e7c4b3c], 1073741824 IID4325 - __ testl(Address(r11, +0x68384d6e), 1073741824); // test dword ptr [r11+0x68384d6e], 1073741824 IID4326 - __ testl(Address(r12, r13, (Address::ScaleFactor)2, -0x6cf084b6), 1073741824); // test dword ptr [r12+r13*4-0x6cf084b6], 1073741824 IID4327 - __ testl(Address(r13, r14, (Address::ScaleFactor)2, +0x39c01466), 1073741824); // test dword ptr [r13+r14*4+0x39c01466], 1073741824 IID4328 - __ testl(Address(r14, r15, (Address::ScaleFactor)3, -0x7283cf5a), 1073741824); // test dword ptr [r14+r15*8-0x7283cf5a], 1073741824 IID4329 - __ testl(Address(r15, r16, (Address::ScaleFactor)0, +0x5d2bb8e), 1073741824); // test dword ptr [r15+r16*1+0x5d2bb8e], 1073741824 IID4330 - __ testl(Address(r16, r17, (Address::ScaleFactor)1, -0x393961ae), 1073741824); // test dword ptr [r16+r17*2-0x393961ae], 1073741824 IID4331 - __ testl(Address(r17, r18, (Address::ScaleFactor)3, +0x2c0d0a66), 1073741824); // test dword ptr [r17+r18*8+0x2c0d0a66], 1073741824 IID4332 - __ testl(Address(r18, +0x27c71be9), 1073741824); // test dword ptr [r18+0x27c71be9], 1073741824 IID4333 - __ testl(Address(r19, r20, (Address::ScaleFactor)2, -0x10461e36), 1073741824); // test dword ptr [r19+r20*4-0x10461e36], 1073741824 IID4334 - __ testl(Address(r20, r21, (Address::ScaleFactor)3, +0x759b2413), 1073741824); // test dword ptr [r20+r21*8+0x759b2413], 1073741824 IID4335 - __ testl(Address(r21, r22, (Address::ScaleFactor)3, +0x68b8aebe), 1073741824); // test dword ptr [r21+r22*8+0x68b8aebe], 1073741824 IID4336 - __ testl(Address(r22, r23, (Address::ScaleFactor)1, +0x7dd463ca), 1073741824); // test dword ptr [r22+r23*2+0x7dd463ca], 1073741824 IID4337 - __ testl(Address(r23, r24, (Address::ScaleFactor)1, +0x3fd91ada), 1073741824); // test dword ptr [r23+r24*2+0x3fd91ada], 1073741824 IID4338 - __ testl(Address(r24, r25, (Address::ScaleFactor)2, -0x7b6bbedb), 1073741824); // test dword ptr [r24+r25*4-0x7b6bbedb], 1073741824 IID4339 - __ testl(Address(r25, r26, (Address::ScaleFactor)1, +0x1d4f844a), 1073741824); // test dword ptr [r25+r26*2+0x1d4f844a], 1073741824 IID4340 - __ testl(Address(r26, r27, (Address::ScaleFactor)1, -0x208a8f1a), 1073741824); // test dword ptr [r26+r27*2-0x208a8f1a], 1073741824 IID4341 - __ testl(Address(r27, r28, (Address::ScaleFactor)1, +0x366b673c), 1073741824); // test dword ptr [r27+r28*2+0x366b673c], 1073741824 IID4342 - __ testl(Address(r28, +0x4312db33), 1073741824); // test dword ptr [r28+0x4312db33], 1073741824 IID4343 - __ testl(Address(r29, r30, (Address::ScaleFactor)2, -0x3a0605d9), 1073741824); // test dword ptr [r29+r30*4-0x3a0605d9], 1073741824 IID4344 - __ testl(Address(r30, +0x2c23c220), 1073741824); // test dword ptr [r30+0x2c23c220], 1073741824 IID4345 - __ testl(Address(r31, -0x385e7703), 1073741824); // test dword ptr [r31-0x385e7703], 1073741824 IID4346 -#endif // _LP64 - __ cmpl_imm32(Address(rcx, -0x2396e261), 65536); // cmp dword ptr [rcx-0x2396e261], 65536 IID4347 - __ cmpl_imm32(Address(rdx, rbx, (Address::ScaleFactor)1, -0x2a4d7fb8), 65536); // cmp dword ptr [rdx+rbx*2-0x2a4d7fb8], 65536 IID4348 -#ifdef _LP64 - __ cmpl_imm32(Address(rbx, -0x3890aefa), 65536); // cmp dword ptr [rbx-0x3890aefa], 65536 IID4349 - __ cmpl_imm32(Address(r8, -0x5cafbfa0), 65536); // cmp dword ptr [r8-0x5cafbfa0], 65536 IID4350 - __ cmpl_imm32(Address(r9, r10, (Address::ScaleFactor)0, +0x6cd108e7), 65536); // cmp dword ptr [r9+r10*1+0x6cd108e7], 65536 IID4351 - __ cmpl_imm32(Address(r10, r11, (Address::ScaleFactor)2, +0x7ac00cf3), 65536); // cmp dword ptr [r10+r11*4+0x7ac00cf3], 65536 IID4352 - __ cmpl_imm32(Address(r11, r12, (Address::ScaleFactor)3, +0xf70e4de), 65536); // cmp dword ptr [r11+r12*8+0xf70e4de], 65536 IID4353 - __ cmpl_imm32(Address(r12, +0x75570160), 65536); // cmp dword ptr [r12+0x75570160], 65536 IID4354 - __ cmpl_imm32(Address(r13, +0x698316c8), 65536); // cmp dword ptr [r13+0x698316c8], 65536 IID4355 - __ cmpl_imm32(Address(r14, +0x62668e54), 65536); // cmp dword ptr [r14+0x62668e54], 65536 IID4356 - __ cmpl_imm32(Address(r15, r16, (Address::ScaleFactor)1, +0x1fdd3efc), 65536); // cmp dword ptr [r15+r16*2+0x1fdd3efc], 65536 IID4357 - __ cmpl_imm32(Address(r16, -0x178936dd), 65536); // cmp dword ptr [r16-0x178936dd], 65536 IID4358 - __ cmpl_imm32(Address(r17, r18, (Address::ScaleFactor)3, +0x35a3875b), 65536); // cmp dword ptr [r17+r18*8+0x35a3875b], 65536 IID4359 - __ cmpl_imm32(Address(r18, r19, (Address::ScaleFactor)0, +0x16aeb663), 65536); // cmp dword ptr [r18+r19*1+0x16aeb663], 65536 IID4360 - __ cmpl_imm32(Address(r19, r20, (Address::ScaleFactor)0, +0x3974c55f), 65536); // cmp dword ptr [r19+r20*1+0x3974c55f], 65536 IID4361 - __ cmpl_imm32(Address(r20, r21, (Address::ScaleFactor)3, -0x4ab45c90), 65536); // cmp dword ptr [r20+r21*8-0x4ab45c90], 65536 IID4362 - __ cmpl_imm32(Address(r21, r22, (Address::ScaleFactor)2, -0x1c9a630), 65536); // cmp dword ptr [r21+r22*4-0x1c9a630], 65536 IID4363 - __ cmpl_imm32(Address(r22, +0x4a8bae5), 65536); // cmp dword ptr [r22+0x4a8bae5], 65536 IID4364 - __ cmpl_imm32(Address(r23, r24, (Address::ScaleFactor)3, -0x261d1f81), 65536); // cmp dword ptr [r23+r24*8-0x261d1f81], 65536 IID4365 - __ cmpl_imm32(Address(r24, +0x5fe7733b), 65536); // cmp dword ptr [r24+0x5fe7733b], 65536 IID4366 - __ cmpl_imm32(Address(r25, r26, (Address::ScaleFactor)0, +0x2cf13efd), 65536); // cmp dword ptr [r25+r26*1+0x2cf13efd], 65536 IID4367 - __ cmpl_imm32(Address(r26, +0x15d0e490), 65536); // cmp dword ptr [r26+0x15d0e490], 65536 IID4368 - __ cmpl_imm32(Address(r27, +0x292ee949), 65536); // cmp dword ptr [r27+0x292ee949], 65536 IID4369 - __ cmpl_imm32(Address(r28, r29, (Address::ScaleFactor)2, +0x5e37c3dd), 65536); // cmp dword ptr [r28+r29*4+0x5e37c3dd], 65536 IID4370 - __ cmpl_imm32(Address(r29, r30, (Address::ScaleFactor)3, +0x2e23b830), 65536); // cmp dword ptr [r29+r30*8+0x2e23b830], 65536 IID4371 - __ cmpl_imm32(Address(r30, r31, (Address::ScaleFactor)0, +0x7b82efa8), 65536); // cmp dword ptr [r30+r31*1+0x7b82efa8], 65536 IID4372 - __ cmpl_imm32(Address(r31, rcx, (Address::ScaleFactor)2, +0x4ab36a22), 65536); // cmp dword ptr [r31+rcx*4+0x4ab36a22], 65536 IID4373 - __ cmpl_imm32(Address(rcx, rdx, (Address::ScaleFactor)1, +0x65b64e0e), 262144); // cmp dword ptr [rcx+rdx*2+0x65b64e0e], 262144 IID4374 - __ cmpl_imm32(Address(rdx, -0x3152eeb9), 262144); // cmp dword ptr [rdx-0x3152eeb9], 262144 IID4375 - __ cmpl_imm32(Address(rbx, r8, (Address::ScaleFactor)0, +0x358988be), 262144); // cmp dword ptr [rbx+r8*1+0x358988be], 262144 IID4376 - __ cmpl_imm32(Address(r8, r9, (Address::ScaleFactor)0, -0x5449fea0), 262144); // cmp dword ptr [r8+r9*1-0x5449fea0], 262144 IID4377 - __ cmpl_imm32(Address(r9, r10, (Address::ScaleFactor)2, +0x7ae9b910), 262144); // cmp dword ptr [r9+r10*4+0x7ae9b910], 262144 IID4378 - __ cmpl_imm32(Address(r10, r11, (Address::ScaleFactor)3, -0x67ca056d), 262144); // cmp dword ptr [r10+r11*8-0x67ca056d], 262144 IID4379 - __ cmpl_imm32(Address(r11, r12, (Address::ScaleFactor)2, -0x5ad489df), 262144); // cmp dword ptr [r11+r12*4-0x5ad489df], 262144 IID4380 - __ cmpl_imm32(Address(r12, -0x3d39090c), 262144); // cmp dword ptr [r12-0x3d39090c], 262144 IID4381 - __ cmpl_imm32(Address(r13, -0x68ed1957), 262144); // cmp dword ptr [r13-0x68ed1957], 262144 IID4382 - __ cmpl_imm32(Address(r14, r15, (Address::ScaleFactor)2, -0x3bfad6b2), 262144); // cmp dword ptr [r14+r15*4-0x3bfad6b2], 262144 IID4383 - __ cmpl_imm32(Address(r15, r16, (Address::ScaleFactor)3, -0x2b5feabf), 262144); // cmp dword ptr [r15+r16*8-0x2b5feabf], 262144 IID4384 - __ cmpl_imm32(Address(r16, r17, (Address::ScaleFactor)3, +0x4c724078), 262144); // cmp dword ptr [r16+r17*8+0x4c724078], 262144 IID4385 - __ cmpl_imm32(Address(r17, r18, (Address::ScaleFactor)1, -0x28c891b1), 262144); // cmp dword ptr [r17+r18*2-0x28c891b1], 262144 IID4386 - __ cmpl_imm32(Address(r18, -0x184a60df), 262144); // cmp dword ptr [r18-0x184a60df], 262144 IID4387 - __ cmpl_imm32(Address(r19, r20, (Address::ScaleFactor)2, -0x5b10cc9e), 262144); // cmp dword ptr [r19+r20*4-0x5b10cc9e], 262144 IID4388 - __ cmpl_imm32(Address(r20, -0x103ae59a), 262144); // cmp dword ptr [r20-0x103ae59a], 262144 IID4389 - __ cmpl_imm32(Address(r21, r22, (Address::ScaleFactor)2, +0x7e45c757), 262144); // cmp dword ptr [r21+r22*4+0x7e45c757], 262144 IID4390 - __ cmpl_imm32(Address(r22, -0x6078f1e6), 262144); // cmp dword ptr [r22-0x6078f1e6], 262144 IID4391 - __ cmpl_imm32(Address(r23, r24, (Address::ScaleFactor)3, +0x6178db93), 262144); // cmp dword ptr [r23+r24*8+0x6178db93], 262144 IID4392 - __ cmpl_imm32(Address(r24, r25, (Address::ScaleFactor)3, +0x29a4e275), 262144); // cmp dword ptr [r24+r25*8+0x29a4e275], 262144 IID4393 - __ cmpl_imm32(Address(r25, r26, (Address::ScaleFactor)2, -0x6b6f0ff2), 262144); // cmp dword ptr [r25+r26*4-0x6b6f0ff2], 262144 IID4394 - __ cmpl_imm32(Address(r26, r27, (Address::ScaleFactor)0, +0x4fefe369), 262144); // cmp dword ptr [r26+r27*1+0x4fefe369], 262144 IID4395 - __ cmpl_imm32(Address(r27, -0x8c75629), 262144); // cmp dword ptr [r27-0x8c75629], 262144 IID4396 - __ cmpl_imm32(Address(r28, +0x28d3e7bf), 262144); // cmp dword ptr [r28+0x28d3e7bf], 262144 IID4397 - __ cmpl_imm32(Address(r29, r30, (Address::ScaleFactor)2, +0x72978eb), 262144); // cmp dword ptr [r29+r30*4+0x72978eb], 262144 IID4398 - __ cmpl_imm32(Address(r30, r31, (Address::ScaleFactor)3, -0x28eefcba), 262144); // cmp dword ptr [r30+r31*8-0x28eefcba], 262144 IID4399 - __ cmpl_imm32(Address(r31, rcx, (Address::ScaleFactor)2, +0x38ad6681), 262144); // cmp dword ptr [r31+rcx*4+0x38ad6681], 262144 IID4400 - __ cmpl_imm32(Address(rcx, +0x24b93d86), 1048576); // cmp dword ptr [rcx+0x24b93d86], 1048576 IID4401 - __ cmpl_imm32(Address(rdx, +0x39afda0b), 1048576); // cmp dword ptr [rdx+0x39afda0b], 1048576 IID4402 - __ cmpl_imm32(Address(rbx, r8, (Address::ScaleFactor)2, -0x17ecc041), 1048576); // cmp dword ptr [rbx+r8*4-0x17ecc041], 1048576 IID4403 - __ cmpl_imm32(Address(r8, r9, (Address::ScaleFactor)2, -0x5df0d01a), 1048576); // cmp dword ptr [r8+r9*4-0x5df0d01a], 1048576 IID4404 - __ cmpl_imm32(Address(r9, r10, (Address::ScaleFactor)2, -0x5fe348d3), 1048576); // cmp dword ptr [r9+r10*4-0x5fe348d3], 1048576 IID4405 - __ cmpl_imm32(Address(r10, r11, (Address::ScaleFactor)1, +0x58598e89), 1048576); // cmp dword ptr [r10+r11*2+0x58598e89], 1048576 IID4406 - __ cmpl_imm32(Address(r11, r12, (Address::ScaleFactor)0, +0x4e06c1fc), 1048576); // cmp dword ptr [r11+r12*1+0x4e06c1fc], 1048576 IID4407 - __ cmpl_imm32(Address(r12, r13, (Address::ScaleFactor)2, -0x4835e9ad), 1048576); // cmp dword ptr [r12+r13*4-0x4835e9ad], 1048576 IID4408 - __ cmpl_imm32(Address(r13, +0x524e20c1), 1048576); // cmp dword ptr [r13+0x524e20c1], 1048576 IID4409 - __ cmpl_imm32(Address(r14, r15, (Address::ScaleFactor)2, +0xc81224), 1048576); // cmp dword ptr [r14+r15*4+0xc81224], 1048576 IID4410 - __ cmpl_imm32(Address(r15, r16, (Address::ScaleFactor)2, +0x282fd3d4), 1048576); // cmp dword ptr [r15+r16*4+0x282fd3d4], 1048576 IID4411 - __ cmpl_imm32(Address(r16, r17, (Address::ScaleFactor)1, +0x64594aef), 1048576); // cmp dword ptr [r16+r17*2+0x64594aef], 1048576 IID4412 - __ cmpl_imm32(Address(r17, r18, (Address::ScaleFactor)2, +0x3bf8235), 1048576); // cmp dword ptr [r17+r18*4+0x3bf8235], 1048576 IID4413 - __ cmpl_imm32(Address(r18, -0x79dcfe89), 1048576); // cmp dword ptr [r18-0x79dcfe89], 1048576 IID4414 - __ cmpl_imm32(Address(r19, r20, (Address::ScaleFactor)2, +0xbb15b96), 1048576); // cmp dword ptr [r19+r20*4+0xbb15b96], 1048576 IID4415 - __ cmpl_imm32(Address(r20, r21, (Address::ScaleFactor)2, -0x1dbaac87), 1048576); // cmp dword ptr [r20+r21*4-0x1dbaac87], 1048576 IID4416 - __ cmpl_imm32(Address(r21, r22, (Address::ScaleFactor)3, -0x75fe2d5), 1048576); // cmp dword ptr [r21+r22*8-0x75fe2d5], 1048576 IID4417 - __ cmpl_imm32(Address(r22, r23, (Address::ScaleFactor)2, -0x3ce43f2b), 1048576); // cmp dword ptr [r22+r23*4-0x3ce43f2b], 1048576 IID4418 - __ cmpl_imm32(Address(r23, r24, (Address::ScaleFactor)0, +0x3f2d9c3b), 1048576); // cmp dword ptr [r23+r24*1+0x3f2d9c3b], 1048576 IID4419 - __ cmpl_imm32(Address(r24, r25, (Address::ScaleFactor)0, +0x7bc9beff), 1048576); // cmp dword ptr [r24+r25*1+0x7bc9beff], 1048576 IID4420 - __ cmpl_imm32(Address(r25, r26, (Address::ScaleFactor)0, -0x54e1a3f6), 1048576); // cmp dword ptr [r25+r26*1-0x54e1a3f6], 1048576 IID4421 - __ cmpl_imm32(Address(r26, +0x50a08757), 1048576); // cmp dword ptr [r26+0x50a08757], 1048576 IID4422 - __ cmpl_imm32(Address(r27, r28, (Address::ScaleFactor)2, -0x7a6e73dc), 1048576); // cmp dword ptr [r27+r28*4-0x7a6e73dc], 1048576 IID4423 - __ cmpl_imm32(Address(r28, r29, (Address::ScaleFactor)2, -0x3a9edd58), 1048576); // cmp dword ptr [r28+r29*4-0x3a9edd58], 1048576 IID4424 - __ cmpl_imm32(Address(r29, r30, (Address::ScaleFactor)1, +0x22f8363a), 1048576); // cmp dword ptr [r29+r30*2+0x22f8363a], 1048576 IID4425 - __ cmpl_imm32(Address(r30, r31, (Address::ScaleFactor)3, +0x1e848871), 1048576); // cmp dword ptr [r30+r31*8+0x1e848871], 1048576 IID4426 - __ cmpl_imm32(Address(r31, rcx, (Address::ScaleFactor)1, +0x5966d9cf), 1048576); // cmp dword ptr [r31+rcx*2+0x5966d9cf], 1048576 IID4427 - __ cmpl_imm32(Address(rcx, rdx, (Address::ScaleFactor)3, +0x3a1fd249), 4194304); // cmp dword ptr [rcx+rdx*8+0x3a1fd249], 4194304 IID4428 - __ cmpl_imm32(Address(rdx, rbx, (Address::ScaleFactor)0, -0x5103cd3b), 4194304); // cmp dword ptr [rdx+rbx*1-0x5103cd3b], 4194304 IID4429 - __ cmpl_imm32(Address(rbx, +0xe2fa4ed), 4194304); // cmp dword ptr [rbx+0xe2fa4ed], 4194304 IID4430 - __ cmpl_imm32(Address(r8, r9, (Address::ScaleFactor)1, +0x372152a1), 4194304); // cmp dword ptr [r8+r9*2+0x372152a1], 4194304 IID4431 - __ cmpl_imm32(Address(r9, r10, (Address::ScaleFactor)1, -0x19188b34), 4194304); // cmp dword ptr [r9+r10*2-0x19188b34], 4194304 IID4432 - __ cmpl_imm32(Address(r10, r11, (Address::ScaleFactor)3, -0x3fe5d453), 4194304); // cmp dword ptr [r10+r11*8-0x3fe5d453], 4194304 IID4433 - __ cmpl_imm32(Address(r11, r12, (Address::ScaleFactor)3, +0x76428b11), 4194304); // cmp dword ptr [r11+r12*8+0x76428b11], 4194304 IID4434 - __ cmpl_imm32(Address(r12, r13, (Address::ScaleFactor)0, +0x560af67f), 4194304); // cmp dword ptr [r12+r13*1+0x560af67f], 4194304 IID4435 - __ cmpl_imm32(Address(r13, r14, (Address::ScaleFactor)1, -0x65b3f1dc), 4194304); // cmp dword ptr [r13+r14*2-0x65b3f1dc], 4194304 IID4436 - __ cmpl_imm32(Address(r14, r15, (Address::ScaleFactor)3, -0x427f1bf0), 4194304); // cmp dword ptr [r14+r15*8-0x427f1bf0], 4194304 IID4437 - __ cmpl_imm32(Address(r15, r16, (Address::ScaleFactor)2, -0x3c3e4773), 4194304); // cmp dword ptr [r15+r16*4-0x3c3e4773], 4194304 IID4438 - __ cmpl_imm32(Address(r16, r17, (Address::ScaleFactor)1, +0x20a43441), 4194304); // cmp dword ptr [r16+r17*2+0x20a43441], 4194304 IID4439 - __ cmpl_imm32(Address(r17, r18, (Address::ScaleFactor)1, +0x54344625), 4194304); // cmp dword ptr [r17+r18*2+0x54344625], 4194304 IID4440 - __ cmpl_imm32(Address(r18, r19, (Address::ScaleFactor)1, -0x129cbc4e), 4194304); // cmp dword ptr [r18+r19*2-0x129cbc4e], 4194304 IID4441 - __ cmpl_imm32(Address(r19, +0x2bc8a5ae), 4194304); // cmp dword ptr [r19+0x2bc8a5ae], 4194304 IID4442 - __ cmpl_imm32(Address(r20, r21, (Address::ScaleFactor)3, -0x4a7f6607), 4194304); // cmp dword ptr [r20+r21*8-0x4a7f6607], 4194304 IID4443 - __ cmpl_imm32(Address(r21, r22, (Address::ScaleFactor)1, +0x40f4b620), 4194304); // cmp dword ptr [r21+r22*2+0x40f4b620], 4194304 IID4444 - __ cmpl_imm32(Address(r22, r23, (Address::ScaleFactor)2, -0x4d25a471), 4194304); // cmp dword ptr [r22+r23*4-0x4d25a471], 4194304 IID4445 - __ cmpl_imm32(Address(r23, r24, (Address::ScaleFactor)2, +0x57211c17), 4194304); // cmp dword ptr [r23+r24*4+0x57211c17], 4194304 IID4446 - __ cmpl_imm32(Address(r24, r25, (Address::ScaleFactor)2, -0x1b22c068), 4194304); // cmp dword ptr [r24+r25*4-0x1b22c068], 4194304 IID4447 - __ cmpl_imm32(Address(r25, r26, (Address::ScaleFactor)0, -0x737df8fc), 4194304); // cmp dword ptr [r25+r26*1-0x737df8fc], 4194304 IID4448 - __ cmpl_imm32(Address(r26, +0x60241acf), 4194304); // cmp dword ptr [r26+0x60241acf], 4194304 IID4449 - __ cmpl_imm32(Address(r27, r28, (Address::ScaleFactor)3, +0x3973ab1d), 4194304); // cmp dword ptr [r27+r28*8+0x3973ab1d], 4194304 IID4450 - __ cmpl_imm32(Address(r28, r29, (Address::ScaleFactor)3, -0x293185e), 4194304); // cmp dword ptr [r28+r29*8-0x293185e], 4194304 IID4451 - __ cmpl_imm32(Address(r29, r30, (Address::ScaleFactor)3, +0x6f0626f), 4194304); // cmp dword ptr [r29+r30*8+0x6f0626f], 4194304 IID4452 - __ cmpl_imm32(Address(r30, r31, (Address::ScaleFactor)3, -0x367642a5), 4194304); // cmp dword ptr [r30+r31*8-0x367642a5], 4194304 IID4453 - __ cmpl_imm32(Address(r31, rcx, (Address::ScaleFactor)1, +0x3c6195cf), 4194304); // cmp dword ptr [r31+rcx*2+0x3c6195cf], 4194304 IID4454 - __ cmpl_imm32(Address(rcx, rdx, (Address::ScaleFactor)2, +0x39d072a4), 16777216); // cmp dword ptr [rcx+rdx*4+0x39d072a4], 16777216 IID4455 - __ cmpl_imm32(Address(rdx, +0x94d19b0), 16777216); // cmp dword ptr [rdx+0x94d19b0], 16777216 IID4456 - __ cmpl_imm32(Address(rbx, r8, (Address::ScaleFactor)3, +0x263a9c9b), 16777216); // cmp dword ptr [rbx+r8*8+0x263a9c9b], 16777216 IID4457 - __ cmpl_imm32(Address(r8, r9, (Address::ScaleFactor)2, +0x7701be34), 16777216); // cmp dword ptr [r8+r9*4+0x7701be34], 16777216 IID4458 - __ cmpl_imm32(Address(r9, r10, (Address::ScaleFactor)3, -0x5b050e79), 16777216); // cmp dword ptr [r9+r10*8-0x5b050e79], 16777216 IID4459 - __ cmpl_imm32(Address(r10, r11, (Address::ScaleFactor)1, -0x6cb865ac), 16777216); // cmp dword ptr [r10+r11*2-0x6cb865ac], 16777216 IID4460 - __ cmpl_imm32(Address(r11, r12, (Address::ScaleFactor)1, -0x5038a8b), 16777216); // cmp dword ptr [r11+r12*2-0x5038a8b], 16777216 IID4461 - __ cmpl_imm32(Address(r12, r13, (Address::ScaleFactor)1, -0x75640bf9), 16777216); // cmp dword ptr [r12+r13*2-0x75640bf9], 16777216 IID4462 - __ cmpl_imm32(Address(r13, r14, (Address::ScaleFactor)0, +0x3ef1cebb), 16777216); // cmp dword ptr [r13+r14*1+0x3ef1cebb], 16777216 IID4463 - __ cmpl_imm32(Address(r14, r15, (Address::ScaleFactor)1, +0xd6e1749), 16777216); // cmp dword ptr [r14+r15*2+0xd6e1749], 16777216 IID4464 - __ cmpl_imm32(Address(r15, r16, (Address::ScaleFactor)2, +0x661ca3e), 16777216); // cmp dword ptr [r15+r16*4+0x661ca3e], 16777216 IID4465 - __ cmpl_imm32(Address(r16, r17, (Address::ScaleFactor)3, +0x6979d244), 16777216); // cmp dword ptr [r16+r17*8+0x6979d244], 16777216 IID4466 - __ cmpl_imm32(Address(r17, +0x249fc5d6), 16777216); // cmp dword ptr [r17+0x249fc5d6], 16777216 IID4467 - __ cmpl_imm32(Address(r18, r19, (Address::ScaleFactor)2, -0x757fed4), 16777216); // cmp dword ptr [r18+r19*4-0x757fed4], 16777216 IID4468 - __ cmpl_imm32(Address(r19, +0x79274e37), 16777216); // cmp dword ptr [r19+0x79274e37], 16777216 IID4469 - __ cmpl_imm32(Address(r20, r21, (Address::ScaleFactor)1, -0x428156d), 16777216); // cmp dword ptr [r20+r21*2-0x428156d], 16777216 IID4470 - __ cmpl_imm32(Address(r21, -0x6bfc60b1), 16777216); // cmp dword ptr [r21-0x6bfc60b1], 16777216 IID4471 - __ cmpl_imm32(Address(r22, r23, (Address::ScaleFactor)3, -0x1c97cd6a), 16777216); // cmp dword ptr [r22+r23*8-0x1c97cd6a], 16777216 IID4472 - __ cmpl_imm32(Address(r23, +0x6420de0e), 16777216); // cmp dword ptr [r23+0x6420de0e], 16777216 IID4473 - __ cmpl_imm32(Address(r24, r25, (Address::ScaleFactor)1, +0x147aab00), 16777216); // cmp dword ptr [r24+r25*2+0x147aab00], 16777216 IID4474 - __ cmpl_imm32(Address(r25, r26, (Address::ScaleFactor)1, -0x7f29a7ed), 16777216); // cmp dword ptr [r25+r26*2-0x7f29a7ed], 16777216 IID4475 - __ cmpl_imm32(Address(r26, r27, (Address::ScaleFactor)1, -0x65621169), 16777216); // cmp dword ptr [r26+r27*2-0x65621169], 16777216 IID4476 - __ cmpl_imm32(Address(r27, r28, (Address::ScaleFactor)0, -0x2ea4493f), 16777216); // cmp dword ptr [r27+r28*1-0x2ea4493f], 16777216 IID4477 - __ cmpl_imm32(Address(r28, -0x6d62ba6), 16777216); // cmp dword ptr [r28-0x6d62ba6], 16777216 IID4478 - __ cmpl_imm32(Address(r29, r30, (Address::ScaleFactor)0, +0x6eb95de7), 16777216); // cmp dword ptr [r29+r30*1+0x6eb95de7], 16777216 IID4479 - __ cmpl_imm32(Address(r30, r31, (Address::ScaleFactor)2, +0x58d4325a), 16777216); // cmp dword ptr [r30+r31*4+0x58d4325a], 16777216 IID4480 - __ cmpl_imm32(Address(r31, -0x2500ed9a), 16777216); // cmp dword ptr [r31-0x2500ed9a], 16777216 IID4481 - __ cmpl_imm32(Address(rcx, rdx, (Address::ScaleFactor)3, -0x24bf1bc9), 67108864); // cmp dword ptr [rcx+rdx*8-0x24bf1bc9], 67108864 IID4482 - __ cmpl_imm32(Address(rdx, rbx, (Address::ScaleFactor)2, -0x22b5f437), 67108864); // cmp dword ptr [rdx+rbx*4-0x22b5f437], 67108864 IID4483 - __ cmpl_imm32(Address(rbx, r8, (Address::ScaleFactor)3, -0x6273ddc3), 67108864); // cmp dword ptr [rbx+r8*8-0x6273ddc3], 67108864 IID4484 - __ cmpl_imm32(Address(r8, r9, (Address::ScaleFactor)0, +0x583a29e), 67108864); // cmp dword ptr [r8+r9*1+0x583a29e], 67108864 IID4485 - __ cmpl_imm32(Address(r9, +0x10934df2), 67108864); // cmp dword ptr [r9+0x10934df2], 67108864 IID4486 - __ cmpl_imm32(Address(r10, r11, (Address::ScaleFactor)2, +0x4a9d9558), 67108864); // cmp dword ptr [r10+r11*4+0x4a9d9558], 67108864 IID4487 - __ cmpl_imm32(Address(r11, r12, (Address::ScaleFactor)1, -0xbac5848), 67108864); // cmp dword ptr [r11+r12*2-0xbac5848], 67108864 IID4488 - __ cmpl_imm32(Address(r12, r13, (Address::ScaleFactor)0, +0x7167b366), 67108864); // cmp dword ptr [r12+r13*1+0x7167b366], 67108864 IID4489 - __ cmpl_imm32(Address(r13, r14, (Address::ScaleFactor)0, -0x30d8e3b0), 67108864); // cmp dword ptr [r13+r14*1-0x30d8e3b0], 67108864 IID4490 - __ cmpl_imm32(Address(r14, r15, (Address::ScaleFactor)2, -0x7db15b64), 67108864); // cmp dword ptr [r14+r15*4-0x7db15b64], 67108864 IID4491 - __ cmpl_imm32(Address(r15, -0x38a282e1), 67108864); // cmp dword ptr [r15-0x38a282e1], 67108864 IID4492 - __ cmpl_imm32(Address(r16, r17, (Address::ScaleFactor)1, -0x22c7ff82), 67108864); // cmp dword ptr [r16+r17*2-0x22c7ff82], 67108864 IID4493 - __ cmpl_imm32(Address(r17, r18, (Address::ScaleFactor)1, -0x1df85694), 67108864); // cmp dword ptr [r17+r18*2-0x1df85694], 67108864 IID4494 - __ cmpl_imm32(Address(r18, r19, (Address::ScaleFactor)2, +0x75dc4c9d), 67108864); // cmp dword ptr [r18+r19*4+0x75dc4c9d], 67108864 IID4495 - __ cmpl_imm32(Address(r19, r20, (Address::ScaleFactor)3, +0x603f704f), 67108864); // cmp dword ptr [r19+r20*8+0x603f704f], 67108864 IID4496 - __ cmpl_imm32(Address(r20, r21, (Address::ScaleFactor)3, -0x760f27c), 67108864); // cmp dword ptr [r20+r21*8-0x760f27c], 67108864 IID4497 - __ cmpl_imm32(Address(r21, +0x7305f2e8), 67108864); // cmp dword ptr [r21+0x7305f2e8], 67108864 IID4498 - __ cmpl_imm32(Address(r22, r23, (Address::ScaleFactor)1, +0x268dda56), 67108864); // cmp dword ptr [r22+r23*2+0x268dda56], 67108864 IID4499 - __ cmpl_imm32(Address(r23, r24, (Address::ScaleFactor)2, +0x7daad80a), 67108864); // cmp dword ptr [r23+r24*4+0x7daad80a], 67108864 IID4500 - __ cmpl_imm32(Address(r24, +0x544554d9), 67108864); // cmp dword ptr [r24+0x544554d9], 67108864 IID4501 - __ cmpl_imm32(Address(r25, +0xd3c5d7f), 67108864); // cmp dword ptr [r25+0xd3c5d7f], 67108864 IID4502 - __ cmpl_imm32(Address(r26, r27, (Address::ScaleFactor)2, -0x294f883a), 67108864); // cmp dword ptr [r26+r27*4-0x294f883a], 67108864 IID4503 - __ cmpl_imm32(Address(r27, +0xe8e22f), 67108864); // cmp dword ptr [r27+0xe8e22f], 67108864 IID4504 - __ cmpl_imm32(Address(r28, r29, (Address::ScaleFactor)2, -0x39f3b602), 67108864); // cmp dword ptr [r28+r29*4-0x39f3b602], 67108864 IID4505 - __ cmpl_imm32(Address(r29, r30, (Address::ScaleFactor)3, -0x5a3bf31), 67108864); // cmp dword ptr [r29+r30*8-0x5a3bf31], 67108864 IID4506 - __ cmpl_imm32(Address(r30, r31, (Address::ScaleFactor)3, -0x285834f3), 67108864); // cmp dword ptr [r30+r31*8-0x285834f3], 67108864 IID4507 - __ cmpl_imm32(Address(r31, rcx, (Address::ScaleFactor)3, -0x730f664), 67108864); // cmp dword ptr [r31+rcx*8-0x730f664], 67108864 IID4508 - __ cmpl_imm32(Address(rcx, rdx, (Address::ScaleFactor)0, -0xf1850f0), 268435456); // cmp dword ptr [rcx+rdx*1-0xf1850f0], 268435456 IID4509 - __ cmpl_imm32(Address(rdx, rbx, (Address::ScaleFactor)2, -0x398ad092), 268435456); // cmp dword ptr [rdx+rbx*4-0x398ad092], 268435456 IID4510 - __ cmpl_imm32(Address(rbx, -0x4ca2563a), 268435456); // cmp dword ptr [rbx-0x4ca2563a], 268435456 IID4511 - __ cmpl_imm32(Address(r8, r9, (Address::ScaleFactor)2, -0x142b4ca3), 268435456); // cmp dword ptr [r8+r9*4-0x142b4ca3], 268435456 IID4512 - __ cmpl_imm32(Address(r9, r10, (Address::ScaleFactor)2, +0x5eddddb9), 268435456); // cmp dword ptr [r9+r10*4+0x5eddddb9], 268435456 IID4513 - __ cmpl_imm32(Address(r10, +0x36b7b515), 268435456); // cmp dword ptr [r10+0x36b7b515], 268435456 IID4514 - __ cmpl_imm32(Address(r11, r12, (Address::ScaleFactor)2, +0x1d813fde), 268435456); // cmp dword ptr [r11+r12*4+0x1d813fde], 268435456 IID4515 - __ cmpl_imm32(Address(r12, -0x17b90b8e), 268435456); // cmp dword ptr [r12-0x17b90b8e], 268435456 IID4516 - __ cmpl_imm32(Address(r13, r14, (Address::ScaleFactor)2, +0x5a9aeb2d), 268435456); // cmp dword ptr [r13+r14*4+0x5a9aeb2d], 268435456 IID4517 - __ cmpl_imm32(Address(r14, r15, (Address::ScaleFactor)3, -0x7d105eef), 268435456); // cmp dword ptr [r14+r15*8-0x7d105eef], 268435456 IID4518 - __ cmpl_imm32(Address(r15, +0x4c634468), 268435456); // cmp dword ptr [r15+0x4c634468], 268435456 IID4519 - __ cmpl_imm32(Address(r16, r17, (Address::ScaleFactor)0, -0x75d003c6), 268435456); // cmp dword ptr [r16+r17*1-0x75d003c6], 268435456 IID4520 - __ cmpl_imm32(Address(r17, r18, (Address::ScaleFactor)2, -0x37c7737a), 268435456); // cmp dword ptr [r17+r18*4-0x37c7737a], 268435456 IID4521 - __ cmpl_imm32(Address(r18, r19, (Address::ScaleFactor)1, +0x4c16f65a), 268435456); // cmp dword ptr [r18+r19*2+0x4c16f65a], 268435456 IID4522 - __ cmpl_imm32(Address(r19, r20, (Address::ScaleFactor)2, -0x7f394efc), 268435456); // cmp dword ptr [r19+r20*4-0x7f394efc], 268435456 IID4523 - __ cmpl_imm32(Address(r20, r21, (Address::ScaleFactor)0, -0x12a2b5b), 268435456); // cmp dword ptr [r20+r21*1-0x12a2b5b], 268435456 IID4524 - __ cmpl_imm32(Address(r21, r22, (Address::ScaleFactor)2, +0x1910da38), 268435456); // cmp dword ptr [r21+r22*4+0x1910da38], 268435456 IID4525 - __ cmpl_imm32(Address(r22, r23, (Address::ScaleFactor)3, -0x481b1485), 268435456); // cmp dword ptr [r22+r23*8-0x481b1485], 268435456 IID4526 - __ cmpl_imm32(Address(r23, r24, (Address::ScaleFactor)0, +0x3ac4a6f3), 268435456); // cmp dword ptr [r23+r24*1+0x3ac4a6f3], 268435456 IID4527 - __ cmpl_imm32(Address(r24, -0x65ca3fa2), 268435456); // cmp dword ptr [r24-0x65ca3fa2], 268435456 IID4528 - __ cmpl_imm32(Address(r25, r26, (Address::ScaleFactor)3, +0x20689863), 268435456); // cmp dword ptr [r25+r26*8+0x20689863], 268435456 IID4529 - __ cmpl_imm32(Address(r26, r27, (Address::ScaleFactor)1, -0x3912f634), 268435456); // cmp dword ptr [r26+r27*2-0x3912f634], 268435456 IID4530 - __ cmpl_imm32(Address(r27, r28, (Address::ScaleFactor)1, +0x25897355), 268435456); // cmp dword ptr [r27+r28*2+0x25897355], 268435456 IID4531 - __ cmpl_imm32(Address(r28, r29, (Address::ScaleFactor)1, -0x2ddfc457), 268435456); // cmp dword ptr [r28+r29*2-0x2ddfc457], 268435456 IID4532 - __ cmpl_imm32(Address(r29, r30, (Address::ScaleFactor)2, -0x19e828a), 268435456); // cmp dword ptr [r29+r30*4-0x19e828a], 268435456 IID4533 - __ cmpl_imm32(Address(r30, r31, (Address::ScaleFactor)1, -0x7da8a9eb), 268435456); // cmp dword ptr [r30+r31*2-0x7da8a9eb], 268435456 IID4534 - __ cmpl_imm32(Address(r31, rcx, (Address::ScaleFactor)1, -0x5ce53caa), 268435456); // cmp dword ptr [r31+rcx*2-0x5ce53caa], 268435456 IID4535 - __ cmpl_imm32(Address(rcx, rdx, (Address::ScaleFactor)1, -0x157ec8a5), 1073741824); // cmp dword ptr [rcx+rdx*2-0x157ec8a5], 1073741824 IID4536 - __ cmpl_imm32(Address(rdx, rbx, (Address::ScaleFactor)2, -0x57efad87), 1073741824); // cmp dword ptr [rdx+rbx*4-0x57efad87], 1073741824 IID4537 - __ cmpl_imm32(Address(rbx, r8, (Address::ScaleFactor)3, +0x2acdc72d), 1073741824); // cmp dword ptr [rbx+r8*8+0x2acdc72d], 1073741824 IID4538 - __ cmpl_imm32(Address(r8, r9, (Address::ScaleFactor)1, -0x675ca6f2), 1073741824); // cmp dword ptr [r8+r9*2-0x675ca6f2], 1073741824 IID4539 - __ cmpl_imm32(Address(r9, r10, (Address::ScaleFactor)3, -0x5e020d3a), 1073741824); // cmp dword ptr [r9+r10*8-0x5e020d3a], 1073741824 IID4540 - __ cmpl_imm32(Address(r10, r11, (Address::ScaleFactor)1, -0x7fd7eb63), 1073741824); // cmp dword ptr [r10+r11*2-0x7fd7eb63], 1073741824 IID4541 - __ cmpl_imm32(Address(r11, r12, (Address::ScaleFactor)3, +0x245a1bf0), 1073741824); // cmp dword ptr [r11+r12*8+0x245a1bf0], 1073741824 IID4542 - __ cmpl_imm32(Address(r12, r13, (Address::ScaleFactor)1, -0x5a04164d), 1073741824); // cmp dword ptr [r12+r13*2-0x5a04164d], 1073741824 IID4543 - __ cmpl_imm32(Address(r13, r14, (Address::ScaleFactor)0, -0x386f19f4), 1073741824); // cmp dword ptr [r13+r14*1-0x386f19f4], 1073741824 IID4544 - __ cmpl_imm32(Address(r14, r15, (Address::ScaleFactor)2, -0x3a561bf), 1073741824); // cmp dword ptr [r14+r15*4-0x3a561bf], 1073741824 IID4545 - __ cmpl_imm32(Address(r15, r16, (Address::ScaleFactor)0, -0x5839933c), 1073741824); // cmp dword ptr [r15+r16*1-0x5839933c], 1073741824 IID4546 - __ cmpl_imm32(Address(r16, r17, (Address::ScaleFactor)3, +0xdfb8788), 1073741824); // cmp dword ptr [r16+r17*8+0xdfb8788], 1073741824 IID4547 - __ cmpl_imm32(Address(r17, r18, (Address::ScaleFactor)3, -0x4c667d2), 1073741824); // cmp dword ptr [r17+r18*8-0x4c667d2], 1073741824 IID4548 - __ cmpl_imm32(Address(r18, r19, (Address::ScaleFactor)2, +0x21181f06), 1073741824); // cmp dword ptr [r18+r19*4+0x21181f06], 1073741824 IID4549 - __ cmpl_imm32(Address(r19, -0x40ef1830), 1073741824); // cmp dword ptr [r19-0x40ef1830], 1073741824 IID4550 - __ cmpl_imm32(Address(r20, r21, (Address::ScaleFactor)3, +0x4e80c9a), 1073741824); // cmp dword ptr [r20+r21*8+0x4e80c9a], 1073741824 IID4551 - __ cmpl_imm32(Address(r21, r22, (Address::ScaleFactor)2, +0x11629946), 1073741824); // cmp dword ptr [r21+r22*4+0x11629946], 1073741824 IID4552 - __ cmpl_imm32(Address(r22, r23, (Address::ScaleFactor)1, +0x4ab0c490), 1073741824); // cmp dword ptr [r22+r23*2+0x4ab0c490], 1073741824 IID4553 - __ cmpl_imm32(Address(r23, r24, (Address::ScaleFactor)0, +0x6545db64), 1073741824); // cmp dword ptr [r23+r24*1+0x6545db64], 1073741824 IID4554 - __ cmpl_imm32(Address(r24, r25, (Address::ScaleFactor)3, +0x2cc9cee), 1073741824); // cmp dword ptr [r24+r25*8+0x2cc9cee], 1073741824 IID4555 - __ cmpl_imm32(Address(r25, r26, (Address::ScaleFactor)0, -0x70afaadc), 1073741824); // cmp dword ptr [r25+r26*1-0x70afaadc], 1073741824 IID4556 - __ cmpl_imm32(Address(r26, r27, (Address::ScaleFactor)3, -0x27936848), 1073741824); // cmp dword ptr [r26+r27*8-0x27936848], 1073741824 IID4557 - __ cmpl_imm32(Address(r27, r28, (Address::ScaleFactor)1, +0x24af85d9), 1073741824); // cmp dword ptr [r27+r28*2+0x24af85d9], 1073741824 IID4558 - __ cmpl_imm32(Address(r28, r29, (Address::ScaleFactor)0, -0x42c569f), 1073741824); // cmp dword ptr [r28+r29*1-0x42c569f], 1073741824 IID4559 - __ cmpl_imm32(Address(r29, r30, (Address::ScaleFactor)1, +0x6e5650e1), 1073741824); // cmp dword ptr [r29+r30*2+0x6e5650e1], 1073741824 IID4560 - __ cmpl_imm32(Address(r30, -0x3ccbf103), 1073741824); // cmp dword ptr [r30-0x3ccbf103], 1073741824 IID4561 - __ cmpl_imm32(Address(r31, rcx, (Address::ScaleFactor)2, -0x78795a2f), 1073741824); // cmp dword ptr [r31+rcx*4-0x78795a2f], 1073741824 IID4562 -#endif // _LP64 - __ addl(rcx, Address(rdx, +0x7189575b)); // add ecx, dword ptr [rdx+0x7189575b] IID4563 -#ifdef _LP64 - __ addl(rdx, Address(rbx, r8, (Address::ScaleFactor)1, -0x6c98b581)); // add edx, dword ptr [rbx+r8*2-0x6c98b581] IID4564 - __ addl(rbx, Address(r8, r9, (Address::ScaleFactor)0, -0x379a6f12)); // add ebx, dword ptr [r8+r9*1-0x379a6f12] IID4565 - __ addl(r8, Address(r9, r10, (Address::ScaleFactor)0, -0x776e4ff6)); // add r8d, dword ptr [r9+r10*1-0x776e4ff6] IID4566 - __ addl(r9, Address(r10, -0x169c4962)); // add r9d, dword ptr [r10-0x169c4962] IID4567 - __ addl(r10, Address(r11, r12, (Address::ScaleFactor)1, +0x468a16fc)); // add r10d, dword ptr [r11+r12*2+0x468a16fc] IID4568 - __ addl(r11, Address(r12, r13, (Address::ScaleFactor)3, -0x2ef87673)); // add r11d, dword ptr [r12+r13*8-0x2ef87673] IID4569 - __ addl(r12, Address(r13, r14, (Address::ScaleFactor)0, -0x8c7b862)); // add r12d, dword ptr [r13+r14*1-0x8c7b862] IID4570 - __ addl(r13, Address(r14, -0x320cf7f9)); // add r13d, dword ptr [r14-0x320cf7f9] IID4571 - __ addl(r14, Address(r15, r16, (Address::ScaleFactor)1, +0x7ffb79fe)); // add r14d, dword ptr [r15+r16*2+0x7ffb79fe] IID4572 - __ addl(r15, Address(r16, r17, (Address::ScaleFactor)0, -0x5cbd288)); // add r15d, dword ptr [r16+r17*1-0x5cbd288] IID4573 - __ addl(r16, Address(r17, r18, (Address::ScaleFactor)1, -0x2d64bb5e)); // add r16d, dword ptr [r17+r18*2-0x2d64bb5e] IID4574 - __ addl(r17, Address(r18, r19, (Address::ScaleFactor)1, -0x2b0eee20)); // add r17d, dword ptr [r18+r19*2-0x2b0eee20] IID4575 - __ addl(r18, Address(r19, +0x20f6500e)); // add r18d, dword ptr [r19+0x20f6500e] IID4576 - __ addl(r19, Address(r20, r21, (Address::ScaleFactor)1, -0xf2b5291)); // add r19d, dword ptr [r20+r21*2-0xf2b5291] IID4577 - __ addl(r20, Address(r21, r22, (Address::ScaleFactor)2, -0x3940e6d6)); // add r20d, dword ptr [r21+r22*4-0x3940e6d6] IID4578 - __ addl(r21, Address(r22, r23, (Address::ScaleFactor)3, +0x1d028ab3)); // add r21d, dword ptr [r22+r23*8+0x1d028ab3] IID4579 - __ addl(r22, Address(r23, r24, (Address::ScaleFactor)0, +0x5011b256)); // add r22d, dword ptr [r23+r24*1+0x5011b256] IID4580 - __ addl(r23, Address(r24, r25, (Address::ScaleFactor)2, -0x2d548c6)); // add r23d, dword ptr [r24+r25*4-0x2d548c6] IID4581 - __ addl(r24, Address(r25, r26, (Address::ScaleFactor)0, +0x3c3703f2)); // add r24d, dword ptr [r25+r26*1+0x3c3703f2] IID4582 - __ addl(r25, Address(r26, r27, (Address::ScaleFactor)2, -0x438fe04b)); // add r25d, dword ptr [r26+r27*4-0x438fe04b] IID4583 - __ addl(r26, Address(r27, +0x1e6b9378)); // add r26d, dword ptr [r27+0x1e6b9378] IID4584 - __ addl(r27, Address(r28, r29, (Address::ScaleFactor)2, -0x1a683cf1)); // add r27d, dword ptr [r28+r29*4-0x1a683cf1] IID4585 - __ addl(r28, Address(r29, r30, (Address::ScaleFactor)2, -0x765952c5)); // add r28d, dword ptr [r29+r30*4-0x765952c5] IID4586 - __ addl(r29, Address(r30, r31, (Address::ScaleFactor)0, -0x16c697db)); // add r29d, dword ptr [r30+r31*1-0x16c697db] IID4587 - __ addl(r30, Address(r31, rcx, (Address::ScaleFactor)2, +0x43dc9d8f)); // add r30d, dword ptr [r31+rcx*4+0x43dc9d8f] IID4588 - __ addl(r31, Address(rcx, rdx, (Address::ScaleFactor)2, -0x656f6703)); // add r31d, dword ptr [rcx+rdx*4-0x656f6703] IID4589 -#endif // _LP64 - __ andl(rcx, Address(rdx, -0x52237e10)); // and ecx, dword ptr [rdx-0x52237e10] IID4590 -#ifdef _LP64 - __ andl(rdx, Address(rbx, r8, (Address::ScaleFactor)3, +0x428dd01c)); // and edx, dword ptr [rbx+r8*8+0x428dd01c] IID4591 - __ andl(rbx, Address(r8, r9, (Address::ScaleFactor)0, +0x3da5bf66)); // and ebx, dword ptr [r8+r9*1+0x3da5bf66] IID4592 - __ andl(r8, Address(r9, +0x1f6f5326)); // and r8d, dword ptr [r9+0x1f6f5326] IID4593 - __ andl(r9, Address(r10, r11, (Address::ScaleFactor)2, -0x36243a1e)); // and r9d, dword ptr [r10+r11*4-0x36243a1e] IID4594 - __ andl(r10, Address(r11, r12, (Address::ScaleFactor)2, -0x42391d4b)); // and r10d, dword ptr [r11+r12*4-0x42391d4b] IID4595 - __ andl(r11, Address(r12, -0x3e388ccd)); // and r11d, dword ptr [r12-0x3e388ccd] IID4596 - __ andl(r12, Address(r13, r14, (Address::ScaleFactor)3, +0x2ca5e2b2)); // and r12d, dword ptr [r13+r14*8+0x2ca5e2b2] IID4597 - __ andl(r13, Address(r14, -0x4c6fb0a3)); // and r13d, dword ptr [r14-0x4c6fb0a3] IID4598 - __ andl(r14, Address(r15, -0x35120eca)); // and r14d, dword ptr [r15-0x35120eca] IID4599 - __ andl(r15, Address(r16, r17, (Address::ScaleFactor)0, -0x52103b6b)); // and r15d, dword ptr [r16+r17*1-0x52103b6b] IID4600 - __ andl(r16, Address(r17, r18, (Address::ScaleFactor)3, -0x28b4e64e)); // and r16d, dword ptr [r17+r18*8-0x28b4e64e] IID4601 - __ andl(r17, Address(r18, +0x4579217c)); // and r17d, dword ptr [r18+0x4579217c] IID4602 - __ andl(r18, Address(r19, r20, (Address::ScaleFactor)2, +0x1edfcfe1)); // and r18d, dword ptr [r19+r20*4+0x1edfcfe1] IID4603 - __ andl(r19, Address(r20, r21, (Address::ScaleFactor)1, +0x1bd406fd)); // and r19d, dword ptr [r20+r21*2+0x1bd406fd] IID4604 - __ andl(r20, Address(r21, r22, (Address::ScaleFactor)1, -0x6f3cdb30)); // and r20d, dword ptr [r21+r22*2-0x6f3cdb30] IID4605 - __ andl(r21, Address(r22, r23, (Address::ScaleFactor)3, +0x2ee9d9)); // and r21d, dword ptr [r22+r23*8+0x2ee9d9] IID4606 - __ andl(r22, Address(r23, +0x5cd6046)); // and r22d, dword ptr [r23+0x5cd6046] IID4607 - __ andl(r23, Address(r24, r25, (Address::ScaleFactor)3, +0x65135e83)); // and r23d, dword ptr [r24+r25*8+0x65135e83] IID4608 - __ andl(r24, Address(r25, r26, (Address::ScaleFactor)0, -0x2c05ac86)); // and r24d, dword ptr [r25+r26*1-0x2c05ac86] IID4609 - __ andl(r25, Address(r26, r27, (Address::ScaleFactor)2, -0x7cf472fa)); // and r25d, dword ptr [r26+r27*4-0x7cf472fa] IID4610 - __ andl(r26, Address(r27, r28, (Address::ScaleFactor)2, +0x2ada310f)); // and r26d, dword ptr [r27+r28*4+0x2ada310f] IID4611 - __ andl(r27, Address(r28, r29, (Address::ScaleFactor)3, -0x36845412)); // and r27d, dword ptr [r28+r29*8-0x36845412] IID4612 - __ andl(r28, Address(r29, r30, (Address::ScaleFactor)0, +0x2cb72817)); // and r28d, dword ptr [r29+r30*1+0x2cb72817] IID4613 - __ andl(r29, Address(r30, r31, (Address::ScaleFactor)1, +0x66863527)); // and r29d, dword ptr [r30+r31*2+0x66863527] IID4614 - __ andl(r30, Address(r31, rcx, (Address::ScaleFactor)3, -0x6bc9d183)); // and r30d, dword ptr [r31+rcx*8-0x6bc9d183] IID4615 - __ andl(r31, Address(rcx, rdx, (Address::ScaleFactor)2, +0x5f01099a)); // and r31d, dword ptr [rcx+rdx*4+0x5f01099a] IID4616 -#endif // _LP64 - __ cmpb(rcx, Address(rdx, rbx, (Address::ScaleFactor)3, +0x3ccf357e)); // cmp cl, byte ptr [rdx+rbx*8+0x3ccf357e] IID4617 -#ifdef _LP64 - __ cmpb(rdx, Address(rbx, r8, (Address::ScaleFactor)0, -0x7ecd09c4)); // cmp dl, byte ptr [rbx+r8*1-0x7ecd09c4] IID4618 - __ cmpb(rbx, Address(r8, r9, (Address::ScaleFactor)3, -0x7f0c7384)); // cmp bl, byte ptr [r8+r9*8-0x7f0c7384] IID4619 - __ cmpb(r8, Address(r9, +0x4a1fea93)); // cmp r8b, byte ptr [r9+0x4a1fea93] IID4620 - __ cmpb(r9, Address(r10, r11, (Address::ScaleFactor)2, -0x625abf91)); // cmp r9b, byte ptr [r10+r11*4-0x625abf91] IID4621 - __ cmpb(r10, Address(r11, r12, (Address::ScaleFactor)0, -0x3c332547)); // cmp r10b, byte ptr [r11+r12*1-0x3c332547] IID4622 - __ cmpb(r11, Address(r12, r13, (Address::ScaleFactor)0, +0x9fec27e)); // cmp r11b, byte ptr [r12+r13*1+0x9fec27e] IID4623 - __ cmpb(r12, Address(r13, r14, (Address::ScaleFactor)3, +0x42e543b5)); // cmp r12b, byte ptr [r13+r14*8+0x42e543b5] IID4624 - __ cmpb(r13, Address(r14, -0x1c0e11de)); // cmp r13b, byte ptr [r14-0x1c0e11de] IID4625 - __ cmpb(r14, Address(r15, r16, (Address::ScaleFactor)2, +0x6cd2e926)); // cmp r14b, byte ptr [r15+r16*4+0x6cd2e926] IID4626 - __ cmpb(r15, Address(r16, r17, (Address::ScaleFactor)1, +0x1af83491)); // cmp r15b, byte ptr [r16+r17*2+0x1af83491] IID4627 - __ cmpb(r16, Address(r17, r18, (Address::ScaleFactor)0, +0x1cada226)); // cmp r16b, byte ptr [r17+r18*1+0x1cada226] IID4628 - __ cmpb(r17, Address(r18, r19, (Address::ScaleFactor)0, -0x267acac0)); // cmp r17b, byte ptr [r18+r19*1-0x267acac0] IID4629 - __ cmpb(r18, Address(r19, r20, (Address::ScaleFactor)0, +0x20ca3135)); // cmp r18b, byte ptr [r19+r20*1+0x20ca3135] IID4630 - __ cmpb(r19, Address(r20, r21, (Address::ScaleFactor)3, -0x6d59ed24)); // cmp r19b, byte ptr [r20+r21*8-0x6d59ed24] IID4631 - __ cmpb(r20, Address(r21, -0x66476f4)); // cmp r20b, byte ptr [r21-0x66476f4] IID4632 - __ cmpb(r21, Address(r22, r23, (Address::ScaleFactor)1, -0x1fdd156a)); // cmp r21b, byte ptr [r22+r23*2-0x1fdd156a] IID4633 - __ cmpb(r22, Address(r23, +0x69683f61)); // cmp r22b, byte ptr [r23+0x69683f61] IID4634 - __ cmpb(r23, Address(r24, r25, (Address::ScaleFactor)2, +0x28b83094)); // cmp r23b, byte ptr [r24+r25*4+0x28b83094] IID4635 - __ cmpb(r24, Address(r25, r26, (Address::ScaleFactor)1, -0xed05b2b)); // cmp r24b, byte ptr [r25+r26*2-0xed05b2b] IID4636 - __ cmpb(r25, Address(r26, r27, (Address::ScaleFactor)0, +0x276424e4)); // cmp r25b, byte ptr [r26+r27*1+0x276424e4] IID4637 - __ cmpb(r26, Address(r27, r28, (Address::ScaleFactor)2, +0x2a9b1892)); // cmp r26b, byte ptr [r27+r28*4+0x2a9b1892] IID4638 - __ cmpb(r27, Address(r28, r29, (Address::ScaleFactor)2, +0x2855b4c1)); // cmp r27b, byte ptr [r28+r29*4+0x2855b4c1] IID4639 - __ cmpb(r28, Address(r29, r30, (Address::ScaleFactor)0, +0x1eaddb37)); // cmp r28b, byte ptr [r29+r30*1+0x1eaddb37] IID4640 - __ cmpb(r29, Address(r30, r31, (Address::ScaleFactor)2, -0x4af1d417)); // cmp r29b, byte ptr [r30+r31*4-0x4af1d417] IID4641 - __ cmpb(r30, Address(r31, +0x2be3c9fa)); // cmp r30b, byte ptr [r31+0x2be3c9fa] IID4642 - __ cmpb(r31, Address(rcx, rdx, (Address::ScaleFactor)0, -0x6ca0e2cc)); // cmp r31b, byte ptr [rcx+rdx*1-0x6ca0e2cc] IID4643 -#endif // _LP64 - __ cmpl(rcx, Address(rdx, rbx, (Address::ScaleFactor)0, +0x73ef9ba4)); // cmp ecx, dword ptr [rdx+rbx*1+0x73ef9ba4] IID4644 -#ifdef _LP64 - __ cmpl(rdx, Address(rbx, r8, (Address::ScaleFactor)0, -0x215ec004)); // cmp edx, dword ptr [rbx+r8*1-0x215ec004] IID4645 - __ cmpl(rbx, Address(r8, r9, (Address::ScaleFactor)2, +0x419d1e08)); // cmp ebx, dword ptr [r8+r9*4+0x419d1e08] IID4646 - __ cmpl(r8, Address(r9, r10, (Address::ScaleFactor)1, -0x4f88498f)); // cmp r8d, dword ptr [r9+r10*2-0x4f88498f] IID4647 - __ cmpl(r9, Address(r10, r11, (Address::ScaleFactor)2, -0x4dd9436c)); // cmp r9d, dword ptr [r10+r11*4-0x4dd9436c] IID4648 - __ cmpl(r10, Address(r11, r12, (Address::ScaleFactor)0, -0x1ca1aafd)); // cmp r10d, dword ptr [r11+r12*1-0x1ca1aafd] IID4649 - __ cmpl(r11, Address(r12, +0x2ca4b45a)); // cmp r11d, dword ptr [r12+0x2ca4b45a] IID4650 - __ cmpl(r12, Address(r13, r14, (Address::ScaleFactor)2, +0x5d56a94a)); // cmp r12d, dword ptr [r13+r14*4+0x5d56a94a] IID4651 - __ cmpl(r13, Address(r14, r15, (Address::ScaleFactor)0, +0x272490d2)); // cmp r13d, dword ptr [r14+r15*1+0x272490d2] IID4652 - __ cmpl(r14, Address(r15, r16, (Address::ScaleFactor)1, +0x1c1390f)); // cmp r14d, dword ptr [r15+r16*2+0x1c1390f] IID4653 - __ cmpl(r15, Address(r16, r17, (Address::ScaleFactor)0, +0x22613b3b)); // cmp r15d, dword ptr [r16+r17*1+0x22613b3b] IID4654 - __ cmpl(r16, Address(r17, +0x7a2ca9bb)); // cmp r16d, dword ptr [r17+0x7a2ca9bb] IID4655 - __ cmpl(r17, Address(r18, r19, (Address::ScaleFactor)3, +0x18e87566)); // cmp r17d, dword ptr [r18+r19*8+0x18e87566] IID4656 - __ cmpl(r18, Address(r19, r20, (Address::ScaleFactor)2, -0x17b6b971)); // cmp r18d, dword ptr [r19+r20*4-0x17b6b971] IID4657 - __ cmpl(r19, Address(r20, -0x52fa7cdc)); // cmp r19d, dword ptr [r20-0x52fa7cdc] IID4658 - __ cmpl(r20, Address(r21, r22, (Address::ScaleFactor)3, -0x147290e7)); // cmp r20d, dword ptr [r21+r22*8-0x147290e7] IID4659 - __ cmpl(r21, Address(r22, r23, (Address::ScaleFactor)2, +0x6814c13d)); // cmp r21d, dword ptr [r22+r23*4+0x6814c13d] IID4660 - __ cmpl(r22, Address(r23, r24, (Address::ScaleFactor)1, -0x5597023a)); // cmp r22d, dword ptr [r23+r24*2-0x5597023a] IID4661 - __ cmpl(r23, Address(r24, r25, (Address::ScaleFactor)3, +0x4f39ba0b)); // cmp r23d, dword ptr [r24+r25*8+0x4f39ba0b] IID4662 - __ cmpl(r24, Address(r25, r26, (Address::ScaleFactor)1, +0x4b64bf3f)); // cmp r24d, dword ptr [r25+r26*2+0x4b64bf3f] IID4663 - __ cmpl(r25, Address(r26, r27, (Address::ScaleFactor)1, -0x1cf730fd)); // cmp r25d, dword ptr [r26+r27*2-0x1cf730fd] IID4664 - __ cmpl(r26, Address(r27, +0x4c17daba)); // cmp r26d, dword ptr [r27+0x4c17daba] IID4665 - __ cmpl(r27, Address(r28, -0x45162194)); // cmp r27d, dword ptr [r28-0x45162194] IID4666 - __ cmpl(r28, Address(r29, -0x1a244410)); // cmp r28d, dword ptr [r29-0x1a244410] IID4667 - __ cmpl(r29, Address(r30, r31, (Address::ScaleFactor)0, +0x332ed57a)); // cmp r29d, dword ptr [r30+r31*1+0x332ed57a] IID4668 - __ cmpl(r30, Address(r31, rcx, (Address::ScaleFactor)2, -0x5bea72d7)); // cmp r30d, dword ptr [r31+rcx*4-0x5bea72d7] IID4669 - __ cmpl(r31, Address(rcx, rdx, (Address::ScaleFactor)3, -0x3e07051d)); // cmp r31d, dword ptr [rcx+rdx*8-0x3e07051d] IID4670 -#endif // _LP64 - __ lzcntl(rcx, Address(rdx, rbx, (Address::ScaleFactor)1, +0x5b2e34d)); // lzcnt ecx, dword ptr [rdx+rbx*2+0x5b2e34d] IID4671 -#ifdef _LP64 - __ lzcntl(rdx, Address(rbx, +0x406e33c0)); // lzcnt edx, dword ptr [rbx+0x406e33c0] IID4672 - __ lzcntl(rbx, Address(r8, r9, (Address::ScaleFactor)1, -0x4507b331)); // lzcnt ebx, dword ptr [r8+r9*2-0x4507b331] IID4673 - __ lzcntl(r8, Address(r9, r10, (Address::ScaleFactor)3, -0x7a50f74a)); // lzcnt r8d, dword ptr [r9+r10*8-0x7a50f74a] IID4674 - __ lzcntl(r9, Address(r10, r11, (Address::ScaleFactor)0, -0x74f026f)); // lzcnt r9d, dword ptr [r10+r11*1-0x74f026f] IID4675 - __ lzcntl(r10, Address(r11, r12, (Address::ScaleFactor)0, +0x46da7452)); // lzcnt r10d, dword ptr [r11+r12*1+0x46da7452] IID4676 - __ lzcntl(r11, Address(r12, -0x1b0b2c94)); // lzcnt r11d, dword ptr [r12-0x1b0b2c94] IID4677 - __ lzcntl(r12, Address(r13, r14, (Address::ScaleFactor)1, +0x610c7551)); // lzcnt r12d, dword ptr [r13+r14*2+0x610c7551] IID4678 - __ lzcntl(r13, Address(r14, +0x6ac4fc14)); // lzcnt r13d, dword ptr [r14+0x6ac4fc14] IID4679 - __ lzcntl(r14, Address(r15, r16, (Address::ScaleFactor)0, -0x38f3bcf7)); // lzcnt r14d, dword ptr [r15+r16*1-0x38f3bcf7] IID4680 - __ lzcntl(r15, Address(r16, r17, (Address::ScaleFactor)0, +0x7c4ce186)); // lzcnt r15d, dword ptr [r16+r17*1+0x7c4ce186] IID4681 - __ lzcntl(r16, Address(r17, r18, (Address::ScaleFactor)0, -0x45d8b2ad)); // lzcnt r16d, dword ptr [r17+r18*1-0x45d8b2ad] IID4682 - __ lzcntl(r17, Address(r18, r19, (Address::ScaleFactor)0, -0x50978732)); // lzcnt r17d, dword ptr [r18+r19*1-0x50978732] IID4683 - __ lzcntl(r18, Address(r19, r20, (Address::ScaleFactor)0, -0x3d018edb)); // lzcnt r18d, dword ptr [r19+r20*1-0x3d018edb] IID4684 - __ lzcntl(r19, Address(r20, r21, (Address::ScaleFactor)2, -0x2802d679)); // lzcnt r19d, dword ptr [r20+r21*4-0x2802d679] IID4685 - __ lzcntl(r20, Address(r21, r22, (Address::ScaleFactor)0, -0x459c317)); // lzcnt r20d, dword ptr [r21+r22*1-0x459c317] IID4686 - __ lzcntl(r21, Address(r22, r23, (Address::ScaleFactor)3, +0x7637a7b4)); // lzcnt r21d, dword ptr [r22+r23*8+0x7637a7b4] IID4687 - __ lzcntl(r22, Address(r23, r24, (Address::ScaleFactor)0, +0x7c0d4771)); // lzcnt r22d, dword ptr [r23+r24*1+0x7c0d4771] IID4688 - __ lzcntl(r23, Address(r24, r25, (Address::ScaleFactor)3, +0x11736b3c)); // lzcnt r23d, dword ptr [r24+r25*8+0x11736b3c] IID4689 - __ lzcntl(r24, Address(r25, r26, (Address::ScaleFactor)0, -0x5d098718)); // lzcnt r24d, dword ptr [r25+r26*1-0x5d098718] IID4690 - __ lzcntl(r25, Address(r26, r27, (Address::ScaleFactor)3, +0x5bcf7b41)); // lzcnt r25d, dword ptr [r26+r27*8+0x5bcf7b41] IID4691 - __ lzcntl(r26, Address(r27, r28, (Address::ScaleFactor)0, -0x7e3785e0)); // lzcnt r26d, dword ptr [r27+r28*1-0x7e3785e0] IID4692 - __ lzcntl(r27, Address(r28, +0x5259eaa5)); // lzcnt r27d, dword ptr [r28+0x5259eaa5] IID4693 - __ lzcntl(r28, Address(r29, r30, (Address::ScaleFactor)2, +0x2bfb671b)); // lzcnt r28d, dword ptr [r29+r30*4+0x2bfb671b] IID4694 - __ lzcntl(r29, Address(r30, -0x52b7dc44)); // lzcnt r29d, dword ptr [r30-0x52b7dc44] IID4695 - __ lzcntl(r30, Address(r31, rcx, (Address::ScaleFactor)3, +0x24c9c2db)); // lzcnt r30d, dword ptr [r31+rcx*8+0x24c9c2db] IID4696 - __ lzcntl(r31, Address(rcx, rdx, (Address::ScaleFactor)3, +0x28e1731b)); // lzcnt r31d, dword ptr [rcx+rdx*8+0x28e1731b] IID4697 -#endif // _LP64 - __ orl(rcx, Address(rdx, rbx, (Address::ScaleFactor)2, -0x7cf122e)); // or ecx, dword ptr [rdx+rbx*4-0x7cf122e] IID4698 -#ifdef _LP64 - __ orl(rdx, Address(rbx, r8, (Address::ScaleFactor)2, +0x5ee6ee86)); // or edx, dword ptr [rbx+r8*4+0x5ee6ee86] IID4699 - __ orl(rbx, Address(r8, r9, (Address::ScaleFactor)2, -0x4b8887e0)); // or ebx, dword ptr [r8+r9*4-0x4b8887e0] IID4700 - __ orl(r8, Address(r9, r10, (Address::ScaleFactor)0, +0x152be061)); // or r8d, dword ptr [r9+r10*1+0x152be061] IID4701 - __ orl(r9, Address(r10, r11, (Address::ScaleFactor)0, -0xdd5d9be)); // or r9d, dword ptr [r10+r11*1-0xdd5d9be] IID4702 - __ orl(r10, Address(r11, r12, (Address::ScaleFactor)1, -0x61c0b390)); // or r10d, dword ptr [r11+r12*2-0x61c0b390] IID4703 - __ orl(r11, Address(r12, r13, (Address::ScaleFactor)0, +0x3c5acc32)); // or r11d, dword ptr [r12+r13*1+0x3c5acc32] IID4704 - __ orl(r12, Address(r13, r14, (Address::ScaleFactor)3, -0x64bf306)); // or r12d, dword ptr [r13+r14*8-0x64bf306] IID4705 - __ orl(r13, Address(r14, -0x696366c6)); // or r13d, dword ptr [r14-0x696366c6] IID4706 - __ orl(r14, Address(r15, r16, (Address::ScaleFactor)1, -0x45b8d71b)); // or r14d, dword ptr [r15+r16*2-0x45b8d71b] IID4707 - __ orl(r15, Address(r16, -0x78a6803f)); // or r15d, dword ptr [r16-0x78a6803f] IID4708 - __ orl(r16, Address(r17, r18, (Address::ScaleFactor)0, -0x247ee49d)); // or r16d, dword ptr [r17+r18*1-0x247ee49d] IID4709 - __ orl(r17, Address(r18, r19, (Address::ScaleFactor)2, -0x2831cc40)); // or r17d, dword ptr [r18+r19*4-0x2831cc40] IID4710 - __ orl(r18, Address(r19, r20, (Address::ScaleFactor)3, +0x7e9274e9)); // or r18d, dword ptr [r19+r20*8+0x7e9274e9] IID4711 - __ orl(r19, Address(r20, r21, (Address::ScaleFactor)0, -0xec58753)); // or r19d, dword ptr [r20+r21*1-0xec58753] IID4712 - __ orl(r20, Address(r21, r22, (Address::ScaleFactor)2, +0x1ca61a13)); // or r20d, dword ptr [r21+r22*4+0x1ca61a13] IID4713 - __ orl(r21, Address(r22, r23, (Address::ScaleFactor)1, -0x558b7bad)); // or r21d, dword ptr [r22+r23*2-0x558b7bad] IID4714 - __ orl(r22, Address(r23, r24, (Address::ScaleFactor)1, +0x5a06b094)); // or r22d, dword ptr [r23+r24*2+0x5a06b094] IID4715 - __ orl(r23, Address(r24, -0x1b964288)); // or r23d, dword ptr [r24-0x1b964288] IID4716 - __ orl(r24, Address(r25, -0x3e81fa91)); // or r24d, dword ptr [r25-0x3e81fa91] IID4717 - __ orl(r25, Address(r26, r27, (Address::ScaleFactor)3, -0x65d783e7)); // or r25d, dword ptr [r26+r27*8-0x65d783e7] IID4718 - __ orl(r26, Address(r27, r28, (Address::ScaleFactor)2, +0x4761d8d8)); // or r26d, dword ptr [r27+r28*4+0x4761d8d8] IID4719 - __ orl(r27, Address(r28, +0x68e01562)); // or r27d, dword ptr [r28+0x68e01562] IID4720 - __ orl(r28, Address(r29, r30, (Address::ScaleFactor)1, +0x5324b239)); // or r28d, dword ptr [r29+r30*2+0x5324b239] IID4721 - __ orl(r29, Address(r30, -0x321d8901)); // or r29d, dword ptr [r30-0x321d8901] IID4722 - __ orl(r30, Address(r31, -0x27c4ebb8)); // or r30d, dword ptr [r31-0x27c4ebb8] IID4723 - __ orl(r31, Address(rcx, +0x56c7872a)); // or r31d, dword ptr [rcx+0x56c7872a] IID4724 -#endif // _LP64 - __ adcl(rcx, Address(rdx, rbx, (Address::ScaleFactor)1, -0x3accfcad)); // adc ecx, dword ptr [rdx+rbx*2-0x3accfcad] IID4725 -#ifdef _LP64 - __ adcl(rdx, Address(rbx, r8, (Address::ScaleFactor)2, +0x1be35c2a)); // adc edx, dword ptr [rbx+r8*4+0x1be35c2a] IID4726 - __ adcl(rbx, Address(r8, -0x52028a9c)); // adc ebx, dword ptr [r8-0x52028a9c] IID4727 - __ adcl(r8, Address(r9, -0x2458c9d7)); // adc r8d, dword ptr [r9-0x2458c9d7] IID4728 - __ adcl(r9, Address(r10, -0x338421cd)); // adc r9d, dword ptr [r10-0x338421cd] IID4729 - __ adcl(r10, Address(r11, r12, (Address::ScaleFactor)1, -0x42dae6fb)); // adc r10d, dword ptr [r11+r12*2-0x42dae6fb] IID4730 - __ adcl(r11, Address(r12, r13, (Address::ScaleFactor)3, -0x2734e5a9)); // adc r11d, dword ptr [r12+r13*8-0x2734e5a9] IID4731 - __ adcl(r12, Address(r13, r14, (Address::ScaleFactor)3, +0x74e0a8b)); // adc r12d, dword ptr [r13+r14*8+0x74e0a8b] IID4732 - __ adcl(r13, Address(r14, r15, (Address::ScaleFactor)3, +0x42808d7b)); // adc r13d, dword ptr [r14+r15*8+0x42808d7b] IID4733 - __ adcl(r14, Address(r15, r16, (Address::ScaleFactor)0, +0x2a83b3c6)); // adc r14d, dword ptr [r15+r16*1+0x2a83b3c6] IID4734 - __ adcl(r15, Address(r16, r17, (Address::ScaleFactor)2, +0x77dd3704)); // adc r15d, dword ptr [r16+r17*4+0x77dd3704] IID4735 - __ adcl(r16, Address(r17, r18, (Address::ScaleFactor)0, -0x22f398b5)); // adc r16d, dword ptr [r17+r18*1-0x22f398b5] IID4736 - __ adcl(r17, Address(r18, r19, (Address::ScaleFactor)3, +0x1b033d71)); // adc r17d, dword ptr [r18+r19*8+0x1b033d71] IID4737 - __ adcl(r18, Address(r19, r20, (Address::ScaleFactor)0, -0x1bd9f510)); // adc r18d, dword ptr [r19+r20*1-0x1bd9f510] IID4738 - __ adcl(r19, Address(r20, r21, (Address::ScaleFactor)1, -0xb618dff)); // adc r19d, dword ptr [r20+r21*2-0xb618dff] IID4739 - __ adcl(r20, Address(r21, -0x503819f6)); // adc r20d, dword ptr [r21-0x503819f6] IID4740 - __ adcl(r21, Address(r22, -0xdd504de)); // adc r21d, dword ptr [r22-0xdd504de] IID4741 - __ adcl(r22, Address(r23, r24, (Address::ScaleFactor)0, -0x5b832440)); // adc r22d, dword ptr [r23+r24*1-0x5b832440] IID4742 - __ adcl(r23, Address(r24, r25, (Address::ScaleFactor)0, +0x2b17f604)); // adc r23d, dword ptr [r24+r25*1+0x2b17f604] IID4743 - __ adcl(r24, Address(r25, r26, (Address::ScaleFactor)1, +0x501c9420)); // adc r24d, dword ptr [r25+r26*2+0x501c9420] IID4744 - __ adcl(r25, Address(r26, r27, (Address::ScaleFactor)3, +0x2bea7263)); // adc r25d, dword ptr [r26+r27*8+0x2bea7263] IID4745 - __ adcl(r26, Address(r27, r28, (Address::ScaleFactor)0, +0x19c7227)); // adc r26d, dword ptr [r27+r28*1+0x19c7227] IID4746 - __ adcl(r27, Address(r28, r29, (Address::ScaleFactor)1, -0x2ebcfc96)); // adc r27d, dword ptr [r28+r29*2-0x2ebcfc96] IID4747 - __ adcl(r28, Address(r29, r30, (Address::ScaleFactor)3, +0x6933220d)); // adc r28d, dword ptr [r29+r30*8+0x6933220d] IID4748 - __ adcl(r29, Address(r30, r31, (Address::ScaleFactor)2, +0x3e856228)); // adc r29d, dword ptr [r30+r31*4+0x3e856228] IID4749 - __ adcl(r30, Address(r31, rcx, (Address::ScaleFactor)1, +0x362fce52)); // adc r30d, dword ptr [r31+rcx*2+0x362fce52] IID4750 - __ adcl(r31, Address(rcx, -0x77d2eccc)); // adc r31d, dword ptr [rcx-0x77d2eccc] IID4751 -#endif // _LP64 - __ imull(rcx, Address(rdx, rbx, (Address::ScaleFactor)1, +0x269c1243)); // imul ecx, dword ptr [rdx+rbx*2+0x269c1243] IID4752 -#ifdef _LP64 - __ imull(rdx, Address(rbx, r8, (Address::ScaleFactor)0, -0x49c27da1)); // imul edx, dword ptr [rbx+r8*1-0x49c27da1] IID4753 - __ imull(rbx, Address(r8, r9, (Address::ScaleFactor)2, -0x75b6decd)); // imul ebx, dword ptr [r8+r9*4-0x75b6decd] IID4754 - __ imull(r8, Address(r9, r10, (Address::ScaleFactor)3, +0x53c17c94)); // imul r8d, dword ptr [r9+r10*8+0x53c17c94] IID4755 - __ imull(r9, Address(r10, r11, (Address::ScaleFactor)2, +0x3d6f2813)); // imul r9d, dword ptr [r10+r11*4+0x3d6f2813] IID4756 - __ imull(r10, Address(r11, -0x14565335)); // imul r10d, dword ptr [r11-0x14565335] IID4757 - __ imull(r11, Address(r12, r13, (Address::ScaleFactor)1, -0x200a2faa)); // imul r11d, dword ptr [r12+r13*2-0x200a2faa] IID4758 - __ imull(r12, Address(r13, +0x62b3f073)); // imul r12d, dword ptr [r13+0x62b3f073] IID4759 - __ imull(r13, Address(r14, r15, (Address::ScaleFactor)3, -0x7bbcf468)); // imul r13d, dword ptr [r14+r15*8-0x7bbcf468] IID4760 - __ imull(r14, Address(r15, -0x3b0b3aa6)); // imul r14d, dword ptr [r15-0x3b0b3aa6] IID4761 - __ imull(r15, Address(r16, r17, (Address::ScaleFactor)1, +0x1badcf4b)); // imul r15d, dword ptr [r16+r17*2+0x1badcf4b] IID4762 - __ imull(r16, Address(r17, r18, (Address::ScaleFactor)2, -0x6e4c8291)); // imul r16d, dword ptr [r17+r18*4-0x6e4c8291] IID4763 - __ imull(r17, Address(r18, r19, (Address::ScaleFactor)1, +0x5bf1ce62)); // imul r17d, dword ptr [r18+r19*2+0x5bf1ce62] IID4764 - __ imull(r18, Address(r19, r20, (Address::ScaleFactor)1, +0xf2b81ef)); // imul r18d, dword ptr [r19+r20*2+0xf2b81ef] IID4765 - __ imull(r19, Address(r20, r21, (Address::ScaleFactor)1, +0x62a622e6)); // imul r19d, dword ptr [r20+r21*2+0x62a622e6] IID4766 - __ imull(r20, Address(r21, r22, (Address::ScaleFactor)2, -0x2187afd)); // imul r20d, dword ptr [r21+r22*4-0x2187afd] IID4767 - __ imull(r21, Address(r22, r23, (Address::ScaleFactor)1, +0x1d008183)); // imul r21d, dword ptr [r22+r23*2+0x1d008183] IID4768 - __ imull(r22, Address(r23, -0x43661b2e)); // imul r22d, dword ptr [r23-0x43661b2e] IID4769 - __ imull(r23, Address(r24, r25, (Address::ScaleFactor)3, -0x6903690e)); // imul r23d, dword ptr [r24+r25*8-0x6903690e] IID4770 - __ imull(r24, Address(r25, r26, (Address::ScaleFactor)2, -0x66e93a95)); // imul r24d, dword ptr [r25+r26*4-0x66e93a95] IID4771 - __ imull(r25, Address(r26, r27, (Address::ScaleFactor)1, +0xa7c9594)); // imul r25d, dword ptr [r26+r27*2+0xa7c9594] IID4772 - __ imull(r26, Address(r27, r28, (Address::ScaleFactor)3, +0x749a0ed2)); // imul r26d, dword ptr [r27+r28*8+0x749a0ed2] IID4773 - __ imull(r27, Address(r28, r29, (Address::ScaleFactor)3, -0x23ccfedc)); // imul r27d, dword ptr [r28+r29*8-0x23ccfedc] IID4774 - __ imull(r28, Address(r29, r30, (Address::ScaleFactor)3, -0x24735ca5)); // imul r28d, dword ptr [r29+r30*8-0x24735ca5] IID4775 - __ imull(r29, Address(r30, r31, (Address::ScaleFactor)3, +0x176d1f8e)); // imul r29d, dword ptr [r30+r31*8+0x176d1f8e] IID4776 - __ imull(r30, Address(r31, rcx, (Address::ScaleFactor)2, -0x6a36b5e4)); // imul r30d, dword ptr [r31+rcx*4-0x6a36b5e4] IID4777 - __ imull(r31, Address(rcx, rdx, (Address::ScaleFactor)1, -0x4609ada8)); // imul r31d, dword ptr [rcx+rdx*2-0x4609ada8] IID4778 -#endif // _LP64 - __ popcntl(rcx, Address(rdx, rbx, (Address::ScaleFactor)0, -0x7277add7)); // popcnt ecx, dword ptr [rdx+rbx*1-0x7277add7] IID4779 -#ifdef _LP64 - __ popcntl(rdx, Address(rbx, r8, (Address::ScaleFactor)2, +0x5160eaa)); // popcnt edx, dword ptr [rbx+r8*4+0x5160eaa] IID4780 - __ popcntl(rbx, Address(r8, r9, (Address::ScaleFactor)3, -0x6d4ca8ee)); // popcnt ebx, dword ptr [r8+r9*8-0x6d4ca8ee] IID4781 - __ popcntl(r8, Address(r9, r10, (Address::ScaleFactor)3, -0x61fb2fe3)); // popcnt r8d, dword ptr [r9+r10*8-0x61fb2fe3] IID4782 - __ popcntl(r9, Address(r10, r11, (Address::ScaleFactor)0, -0x31e03721)); // popcnt r9d, dword ptr [r10+r11*1-0x31e03721] IID4783 - __ popcntl(r10, Address(r11, r12, (Address::ScaleFactor)0, +0x597d2a14)); // popcnt r10d, dword ptr [r11+r12*1+0x597d2a14] IID4784 - __ popcntl(r11, Address(r12, r13, (Address::ScaleFactor)2, +0x2b08924)); // popcnt r11d, dword ptr [r12+r13*4+0x2b08924] IID4785 - __ popcntl(r12, Address(r13, r14, (Address::ScaleFactor)1, -0x5a6477ac)); // popcnt r12d, dword ptr [r13+r14*2-0x5a6477ac] IID4786 - __ popcntl(r13, Address(r14, r15, (Address::ScaleFactor)3, -0x5656bff5)); // popcnt r13d, dword ptr [r14+r15*8-0x5656bff5] IID4787 - __ popcntl(r14, Address(r15, r16, (Address::ScaleFactor)2, -0x20c5b87a)); // popcnt r14d, dword ptr [r15+r16*4-0x20c5b87a] IID4788 - __ popcntl(r15, Address(r16, r17, (Address::ScaleFactor)2, +0x1a2a6f91)); // popcnt r15d, dword ptr [r16+r17*4+0x1a2a6f91] IID4789 - __ popcntl(r16, Address(r17, r18, (Address::ScaleFactor)0, +0x7afe98cb)); // popcnt r16d, dword ptr [r17+r18*1+0x7afe98cb] IID4790 - __ popcntl(r17, Address(r18, r19, (Address::ScaleFactor)1, +0x3b259fca)); // popcnt r17d, dword ptr [r18+r19*2+0x3b259fca] IID4791 - __ popcntl(r18, Address(r19, r20, (Address::ScaleFactor)2, -0x25e152c8)); // popcnt r18d, dword ptr [r19+r20*4-0x25e152c8] IID4792 - __ popcntl(r19, Address(r20, r21, (Address::ScaleFactor)3, +0x6456f529)); // popcnt r19d, dword ptr [r20+r21*8+0x6456f529] IID4793 - __ popcntl(r20, Address(r21, +0x313d91f3)); // popcnt r20d, dword ptr [r21+0x313d91f3] IID4794 - __ popcntl(r21, Address(r22, r23, (Address::ScaleFactor)3, -0x1dad3be9)); // popcnt r21d, dword ptr [r22+r23*8-0x1dad3be9] IID4795 - __ popcntl(r22, Address(r23, -0x3d206686)); // popcnt r22d, dword ptr [r23-0x3d206686] IID4796 - __ popcntl(r23, Address(r24, -0x4ae4d044)); // popcnt r23d, dword ptr [r24-0x4ae4d044] IID4797 - __ popcntl(r24, Address(r25, r26, (Address::ScaleFactor)2, +0x5415a389)); // popcnt r24d, dword ptr [r25+r26*4+0x5415a389] IID4798 - __ popcntl(r25, Address(r26, -0x4674a9e7)); // popcnt r25d, dword ptr [r26-0x4674a9e7] IID4799 - __ popcntl(r26, Address(r27, r28, (Address::ScaleFactor)1, +0x7328bc46)); // popcnt r26d, dword ptr [r27+r28*2+0x7328bc46] IID4800 - __ popcntl(r27, Address(r28, r29, (Address::ScaleFactor)0, +0x2d8ef324)); // popcnt r27d, dword ptr [r28+r29*1+0x2d8ef324] IID4801 - __ popcntl(r28, Address(r29, r30, (Address::ScaleFactor)3, -0x1f6a44ef)); // popcnt r28d, dword ptr [r29+r30*8-0x1f6a44ef] IID4802 - __ popcntl(r29, Address(r30, r31, (Address::ScaleFactor)0, +0x67d63d34)); // popcnt r29d, dword ptr [r30+r31*1+0x67d63d34] IID4803 - __ popcntl(r30, Address(r31, rcx, (Address::ScaleFactor)2, +0x10dc29cd)); // popcnt r30d, dword ptr [r31+rcx*4+0x10dc29cd] IID4804 - __ popcntl(r31, Address(rcx, -0xf5936d5)); // popcnt r31d, dword ptr [rcx-0xf5936d5] IID4805 -#endif // _LP64 - __ sbbl(rcx, Address(rdx, rbx, (Address::ScaleFactor)0, +0x7b08b555)); // sbb ecx, dword ptr [rdx+rbx*1+0x7b08b555] IID4806 -#ifdef _LP64 - __ sbbl(rdx, Address(rbx, r8, (Address::ScaleFactor)3, +0x3a3d7695)); // sbb edx, dword ptr [rbx+r8*8+0x3a3d7695] IID4807 - __ sbbl(rbx, Address(r8, r9, (Address::ScaleFactor)2, -0x136403c0)); // sbb ebx, dword ptr [r8+r9*4-0x136403c0] IID4808 - __ sbbl(r8, Address(r9, +0x4b1beab2)); // sbb r8d, dword ptr [r9+0x4b1beab2] IID4809 - __ sbbl(r9, Address(r10, r11, (Address::ScaleFactor)2, -0x139c200c)); // sbb r9d, dword ptr [r10+r11*4-0x139c200c] IID4810 - __ sbbl(r10, Address(r11, r12, (Address::ScaleFactor)3, -0x10f57174)); // sbb r10d, dword ptr [r11+r12*8-0x10f57174] IID4811 - __ sbbl(r11, Address(r12, -0x105a53db)); // sbb r11d, dword ptr [r12-0x105a53db] IID4812 - __ sbbl(r12, Address(r13, r14, (Address::ScaleFactor)3, +0x2924e731)); // sbb r12d, dword ptr [r13+r14*8+0x2924e731] IID4813 - __ sbbl(r13, Address(r14, r15, (Address::ScaleFactor)3, +0x680a20bd)); // sbb r13d, dword ptr [r14+r15*8+0x680a20bd] IID4814 - __ sbbl(r14, Address(r15, r16, (Address::ScaleFactor)0, -0x48ea8160)); // sbb r14d, dword ptr [r15+r16*1-0x48ea8160] IID4815 - __ sbbl(r15, Address(r16, r17, (Address::ScaleFactor)0, +0xcfe8b0)); // sbb r15d, dword ptr [r16+r17*1+0xcfe8b0] IID4816 - __ sbbl(r16, Address(r17, r18, (Address::ScaleFactor)3, -0x578c3e1c)); // sbb r16d, dword ptr [r17+r18*8-0x578c3e1c] IID4817 - __ sbbl(r17, Address(r18, r19, (Address::ScaleFactor)2, -0x7b1d357)); // sbb r17d, dword ptr [r18+r19*4-0x7b1d357] IID4818 - __ sbbl(r18, Address(r19, r20, (Address::ScaleFactor)1, +0x4948b9a9)); // sbb r18d, dword ptr [r19+r20*2+0x4948b9a9] IID4819 - __ sbbl(r19, Address(r20, -0x1fddcef)); // sbb r19d, dword ptr [r20-0x1fddcef] IID4820 - __ sbbl(r20, Address(r21, r22, (Address::ScaleFactor)2, -0x70ecf8a1)); // sbb r20d, dword ptr [r21+r22*4-0x70ecf8a1] IID4821 - __ sbbl(r21, Address(r22, +0x5a3da47f)); // sbb r21d, dword ptr [r22+0x5a3da47f] IID4822 - __ sbbl(r22, Address(r23, +0x2a4fd6ae)); // sbb r22d, dword ptr [r23+0x2a4fd6ae] IID4823 - __ sbbl(r23, Address(r24, r25, (Address::ScaleFactor)3, -0x96f495)); // sbb r23d, dword ptr [r24+r25*8-0x96f495] IID4824 - __ sbbl(r24, Address(r25, r26, (Address::ScaleFactor)0, -0x6cf4d0d9)); // sbb r24d, dword ptr [r25+r26*1-0x6cf4d0d9] IID4825 - __ sbbl(r25, Address(r26, r27, (Address::ScaleFactor)2, +0x340b7f72)); // sbb r25d, dword ptr [r26+r27*4+0x340b7f72] IID4826 - __ sbbl(r26, Address(r27, r28, (Address::ScaleFactor)1, +0x5d4971c2)); // sbb r26d, dword ptr [r27+r28*2+0x5d4971c2] IID4827 - __ sbbl(r27, Address(r28, r29, (Address::ScaleFactor)0, -0xd473b12)); // sbb r27d, dword ptr [r28+r29*1-0xd473b12] IID4828 - __ sbbl(r28, Address(r29, -0x68efd76f)); // sbb r28d, dword ptr [r29-0x68efd76f] IID4829 - __ sbbl(r29, Address(r30, +0x55bcb88d)); // sbb r29d, dword ptr [r30+0x55bcb88d] IID4830 - __ sbbl(r30, Address(r31, rcx, (Address::ScaleFactor)2, -0x174fdea9)); // sbb r30d, dword ptr [r31+rcx*4-0x174fdea9] IID4831 - __ sbbl(r31, Address(rcx, rdx, (Address::ScaleFactor)3, -0x2e191440)); // sbb r31d, dword ptr [rcx+rdx*8-0x2e191440] IID4832 -#endif // _LP64 - __ subl(rcx, Address(rdx, rbx, (Address::ScaleFactor)2, +0x560d7935)); // sub ecx, dword ptr [rdx+rbx*4+0x560d7935] IID4833 -#ifdef _LP64 - __ subl(rdx, Address(rbx, r8, (Address::ScaleFactor)2, +0x2dd7995a)); // sub edx, dword ptr [rbx+r8*4+0x2dd7995a] IID4834 - __ subl(rbx, Address(r8, r9, (Address::ScaleFactor)2, +0x7c44d8ac)); // sub ebx, dword ptr [r8+r9*4+0x7c44d8ac] IID4835 - __ subl(r8, Address(r9, r10, (Address::ScaleFactor)0, +0x62de149f)); // sub r8d, dword ptr [r9+r10*1+0x62de149f] IID4836 - __ subl(r9, Address(r10, r11, (Address::ScaleFactor)3, +0x390bf310)); // sub r9d, dword ptr [r10+r11*8+0x390bf310] IID4837 - __ subl(r10, Address(r11, r12, (Address::ScaleFactor)1, -0x741600d0)); // sub r10d, dword ptr [r11+r12*2-0x741600d0] IID4838 - __ subl(r11, Address(r12, +0x605177c5)); // sub r11d, dword ptr [r12+0x605177c5] IID4839 - __ subl(r12, Address(r13, r14, (Address::ScaleFactor)1, -0x4830b87)); // sub r12d, dword ptr [r13+r14*2-0x4830b87] IID4840 - __ subl(r13, Address(r14, r15, (Address::ScaleFactor)0, -0x788436cd)); // sub r13d, dword ptr [r14+r15*1-0x788436cd] IID4841 - __ subl(r14, Address(r15, r16, (Address::ScaleFactor)0, -0x3d7ea1f5)); // sub r14d, dword ptr [r15+r16*1-0x3d7ea1f5] IID4842 - __ subl(r15, Address(r16, r17, (Address::ScaleFactor)2, +0x592c4911)); // sub r15d, dword ptr [r16+r17*4+0x592c4911] IID4843 - __ subl(r16, Address(r17, r18, (Address::ScaleFactor)3, -0x3000512f)); // sub r16d, dword ptr [r17+r18*8-0x3000512f] IID4844 - __ subl(r17, Address(r18, -0x443efdb5)); // sub r17d, dword ptr [r18-0x443efdb5] IID4845 - __ subl(r18, Address(r19, r20, (Address::ScaleFactor)3, +0x6c791c6f)); // sub r18d, dword ptr [r19+r20*8+0x6c791c6f] IID4846 - __ subl(r19, Address(r20, -0x392981d7)); // sub r19d, dword ptr [r20-0x392981d7] IID4847 - __ subl(r20, Address(r21, -0x6013a271)); // sub r20d, dword ptr [r21-0x6013a271] IID4848 - __ subl(r21, Address(r22, r23, (Address::ScaleFactor)2, +0x420bc49d)); // sub r21d, dword ptr [r22+r23*4+0x420bc49d] IID4849 - __ subl(r22, Address(r23, r24, (Address::ScaleFactor)0, +0x473ca457)); // sub r22d, dword ptr [r23+r24*1+0x473ca457] IID4850 - __ subl(r23, Address(r24, r25, (Address::ScaleFactor)1, +0x6495d8c1)); // sub r23d, dword ptr [r24+r25*2+0x6495d8c1] IID4851 - __ subl(r24, Address(r25, r26, (Address::ScaleFactor)2, +0x5c9f095e)); // sub r24d, dword ptr [r25+r26*4+0x5c9f095e] IID4852 - __ subl(r25, Address(r26, r27, (Address::ScaleFactor)0, -0xfe5c065)); // sub r25d, dword ptr [r26+r27*1-0xfe5c065] IID4853 - __ subl(r26, Address(r27, +0x3c7c21c1)); // sub r26d, dword ptr [r27+0x3c7c21c1] IID4854 - __ subl(r27, Address(r28, r29, (Address::ScaleFactor)0, -0x3178a9b9)); // sub r27d, dword ptr [r28+r29*1-0x3178a9b9] IID4855 - __ subl(r28, Address(r29, r30, (Address::ScaleFactor)2, +0x761b0b23)); // sub r28d, dword ptr [r29+r30*4+0x761b0b23] IID4856 - __ subl(r29, Address(r30, +0x62e6607c)); // sub r29d, dword ptr [r30+0x62e6607c] IID4857 - __ subl(r30, Address(r31, rcx, (Address::ScaleFactor)3, -0x1ce946c3)); // sub r30d, dword ptr [r31+rcx*8-0x1ce946c3] IID4858 - __ subl(r31, Address(rcx, rdx, (Address::ScaleFactor)0, -0x25cbf1d5)); // sub r31d, dword ptr [rcx+rdx*1-0x25cbf1d5] IID4859 -#endif // _LP64 - __ tzcntl(rcx, Address(rdx, rbx, (Address::ScaleFactor)3, +0x319ea32b)); // tzcnt ecx, dword ptr [rdx+rbx*8+0x319ea32b] IID4860 -#ifdef _LP64 - __ tzcntl(rdx, Address(rbx, -0x2cc769d3)); // tzcnt edx, dword ptr [rbx-0x2cc769d3] IID4861 - __ tzcntl(rbx, Address(r8, r9, (Address::ScaleFactor)1, -0x108d865f)); // tzcnt ebx, dword ptr [r8+r9*2-0x108d865f] IID4862 - __ tzcntl(r8, Address(r9, r10, (Address::ScaleFactor)3, +0x75a4de01)); // tzcnt r8d, dword ptr [r9+r10*8+0x75a4de01] IID4863 - __ tzcntl(r9, Address(r10, r11, (Address::ScaleFactor)2, -0x1e1227ba)); // tzcnt r9d, dword ptr [r10+r11*4-0x1e1227ba] IID4864 - __ tzcntl(r10, Address(r11, r12, (Address::ScaleFactor)2, -0x6d3ac6f6)); // tzcnt r10d, dword ptr [r11+r12*4-0x6d3ac6f6] IID4865 - __ tzcntl(r11, Address(r12, -0x37bffcbb)); // tzcnt r11d, dword ptr [r12-0x37bffcbb] IID4866 - __ tzcntl(r12, Address(r13, +0x5d7c7531)); // tzcnt r12d, dword ptr [r13+0x5d7c7531] IID4867 - __ tzcntl(r13, Address(r14, r15, (Address::ScaleFactor)3, +0x3b86099d)); // tzcnt r13d, dword ptr [r14+r15*8+0x3b86099d] IID4868 - __ tzcntl(r14, Address(r15, r16, (Address::ScaleFactor)2, -0x3220dc78)); // tzcnt r14d, dword ptr [r15+r16*4-0x3220dc78] IID4869 - __ tzcntl(r15, Address(r16, r17, (Address::ScaleFactor)2, -0x66ee4520)); // tzcnt r15d, dword ptr [r16+r17*4-0x66ee4520] IID4870 - __ tzcntl(r16, Address(r17, r18, (Address::ScaleFactor)3, -0x47a8e8e0)); // tzcnt r16d, dword ptr [r17+r18*8-0x47a8e8e0] IID4871 - __ tzcntl(r17, Address(r18, r19, (Address::ScaleFactor)1, +0x4b102b97)); // tzcnt r17d, dword ptr [r18+r19*2+0x4b102b97] IID4872 - __ tzcntl(r18, Address(r19, r20, (Address::ScaleFactor)2, +0x3aa300a9)); // tzcnt r18d, dword ptr [r19+r20*4+0x3aa300a9] IID4873 - __ tzcntl(r19, Address(r20, r21, (Address::ScaleFactor)1, +0x5f168253)); // tzcnt r19d, dword ptr [r20+r21*2+0x5f168253] IID4874 - __ tzcntl(r20, Address(r21, r22, (Address::ScaleFactor)2, -0xc74da85)); // tzcnt r20d, dword ptr [r21+r22*4-0xc74da85] IID4875 - __ tzcntl(r21, Address(r22, r23, (Address::ScaleFactor)0, +0x24080358)); // tzcnt r21d, dword ptr [r22+r23*1+0x24080358] IID4876 - __ tzcntl(r22, Address(r23, +0x51e7509f)); // tzcnt r22d, dword ptr [r23+0x51e7509f] IID4877 - __ tzcntl(r23, Address(r24, -0x39202d24)); // tzcnt r23d, dword ptr [r24-0x39202d24] IID4878 - __ tzcntl(r24, Address(r25, r26, (Address::ScaleFactor)1, -0x595296f3)); // tzcnt r24d, dword ptr [r25+r26*2-0x595296f3] IID4879 - __ tzcntl(r25, Address(r26, r27, (Address::ScaleFactor)2, +0x574d421)); // tzcnt r25d, dword ptr [r26+r27*4+0x574d421] IID4880 - __ tzcntl(r26, Address(r27, r28, (Address::ScaleFactor)3, -0x6b949976)); // tzcnt r26d, dword ptr [r27+r28*8-0x6b949976] IID4881 - __ tzcntl(r27, Address(r28, r29, (Address::ScaleFactor)1, +0x23a09c7b)); // tzcnt r27d, dword ptr [r28+r29*2+0x23a09c7b] IID4882 - __ tzcntl(r28, Address(r29, r30, (Address::ScaleFactor)0, +0xdd8fdd3)); // tzcnt r28d, dword ptr [r29+r30*1+0xdd8fdd3] IID4883 - __ tzcntl(r29, Address(r30, r31, (Address::ScaleFactor)1, +0x40b82736)); // tzcnt r29d, dword ptr [r30+r31*2+0x40b82736] IID4884 - __ tzcntl(r30, Address(r31, rcx, (Address::ScaleFactor)0, +0x2056eb72)); // tzcnt r30d, dword ptr [r31+rcx*1+0x2056eb72] IID4885 - __ tzcntl(r31, Address(rcx, rdx, (Address::ScaleFactor)3, +0x4c3167f0)); // tzcnt r31d, dword ptr [rcx+rdx*8+0x4c3167f0] IID4886 -#endif // _LP64 - __ xorb(rcx, Address(rdx, rbx, (Address::ScaleFactor)2, +0x459469dc)); // xor cl, byte ptr [rdx+rbx*4+0x459469dc] IID4887 -#ifdef _LP64 - __ xorb(rdx, Address(rbx, r8, (Address::ScaleFactor)2, -0x7c751505)); // xor dl, byte ptr [rbx+r8*4-0x7c751505] IID4888 - __ xorb(rbx, Address(r8, r9, (Address::ScaleFactor)1, -0x61a7bd72)); // xor bl, byte ptr [r8+r9*2-0x61a7bd72] IID4889 - __ xorb(r8, Address(r9, +0x7012683)); // xor r8b, byte ptr [r9+0x7012683] IID4890 - __ xorb(r9, Address(r10, r11, (Address::ScaleFactor)0, +0x2dc7907e)); // xor r9b, byte ptr [r10+r11*1+0x2dc7907e] IID4891 - __ xorb(r10, Address(r11, +0x3033889d)); // xor r10b, byte ptr [r11+0x3033889d] IID4892 - __ xorb(r11, Address(r12, -0x38e813ed)); // xor r11b, byte ptr [r12-0x38e813ed] IID4893 - __ xorb(r12, Address(r13, -0x7d0d7dfa)); // xor r12b, byte ptr [r13-0x7d0d7dfa] IID4894 - __ xorb(r13, Address(r14, +0x22380f3d)); // xor r13b, byte ptr [r14+0x22380f3d] IID4895 - __ xorb(r14, Address(r15, r16, (Address::ScaleFactor)1, +0x9cb491a)); // xor r14b, byte ptr [r15+r16*2+0x9cb491a] IID4896 - __ xorb(r15, Address(r16, r17, (Address::ScaleFactor)2, +0x17ad2b69)); // xor r15b, byte ptr [r16+r17*4+0x17ad2b69] IID4897 - __ xorb(r16, Address(r17, +0x628ff5b3)); // xor r16b, byte ptr [r17+0x628ff5b3] IID4898 - __ xorb(r17, Address(r18, r19, (Address::ScaleFactor)0, -0x3553432c)); // xor r17b, byte ptr [r18+r19*1-0x3553432c] IID4899 - __ xorb(r18, Address(r19, r20, (Address::ScaleFactor)1, -0x553548dc)); // xor r18b, byte ptr [r19+r20*2-0x553548dc] IID4900 - __ xorb(r19, Address(r20, -0x67c97983)); // xor r19b, byte ptr [r20-0x67c97983] IID4901 - __ xorb(r20, Address(r21, r22, (Address::ScaleFactor)2, +0x60ccc043)); // xor r20b, byte ptr [r21+r22*4+0x60ccc043] IID4902 - __ xorb(r21, Address(r22, +0x47aa792e)); // xor r21b, byte ptr [r22+0x47aa792e] IID4903 - __ xorb(r22, Address(r23, r24, (Address::ScaleFactor)2, -0x260a9a93)); // xor r22b, byte ptr [r23+r24*4-0x260a9a93] IID4904 - __ xorb(r23, Address(r24, +0x7db3e421)); // xor r23b, byte ptr [r24+0x7db3e421] IID4905 - __ xorb(r24, Address(r25, +0x3a446a5)); // xor r24b, byte ptr [r25+0x3a446a5] IID4906 - __ xorb(r25, Address(r26, r27, (Address::ScaleFactor)2, +0xa527b75)); // xor r25b, byte ptr [r26+r27*4+0xa527b75] IID4907 - __ xorb(r26, Address(r27, r28, (Address::ScaleFactor)0, +0x7e96f60c)); // xor r26b, byte ptr [r27+r28*1+0x7e96f60c] IID4908 - __ xorb(r27, Address(r28, +0x3f45f3c5)); // xor r27b, byte ptr [r28+0x3f45f3c5] IID4909 - __ xorb(r28, Address(r29, r30, (Address::ScaleFactor)1, +0x168246db)); // xor r28b, byte ptr [r29+r30*2+0x168246db] IID4910 - __ xorb(r29, Address(r30, r31, (Address::ScaleFactor)0, -0x61861dcf)); // xor r29b, byte ptr [r30+r31*1-0x61861dcf] IID4911 - __ xorb(r30, Address(r31, rcx, (Address::ScaleFactor)0, -0x3ef6dbb3)); // xor r30b, byte ptr [r31+rcx*1-0x3ef6dbb3] IID4912 - __ xorb(r31, Address(rcx, -0xb559bd2)); // xor r31b, byte ptr [rcx-0xb559bd2] IID4913 -#endif // _LP64 - __ xorw(rcx, Address(rdx, -0x62f6ef46)); // xor cx, word ptr [rdx-0x62f6ef46] IID4914 -#ifdef _LP64 - __ xorw(rdx, Address(rbx, r8, (Address::ScaleFactor)2, -0x4aaedbcd)); // xor dx, word ptr [rbx+r8*4-0x4aaedbcd] IID4915 - __ xorw(rbx, Address(r8, -0x3bb94c56)); // xor bx, word ptr [r8-0x3bb94c56] IID4916 - __ xorw(r8, Address(r9, -0x3859af82)); // xor r8w, word ptr [r9-0x3859af82] IID4917 - __ xorw(r9, Address(r10, r11, (Address::ScaleFactor)3, +0x52a56164)); // xor r9w, word ptr [r10+r11*8+0x52a56164] IID4918 - __ xorw(r10, Address(r11, r12, (Address::ScaleFactor)1, -0x6307ef0f)); // xor r10w, word ptr [r11+r12*2-0x6307ef0f] IID4919 - __ xorw(r11, Address(r12, r13, (Address::ScaleFactor)2, -0x3615a069)); // xor r11w, word ptr [r12+r13*4-0x3615a069] IID4920 - __ xorw(r12, Address(r13, -0x3a1a846a)); // xor r12w, word ptr [r13-0x3a1a846a] IID4921 - __ xorw(r13, Address(r14, r15, (Address::ScaleFactor)2, -0x77b94224)); // xor r13w, word ptr [r14+r15*4-0x77b94224] IID4922 - __ xorw(r14, Address(r15, r16, (Address::ScaleFactor)3, +0x591ffe3c)); // xor r14w, word ptr [r15+r16*8+0x591ffe3c] IID4923 - __ xorw(r15, Address(r16, r17, (Address::ScaleFactor)2, -0x181e6bee)); // xor r15w, word ptr [r16+r17*4-0x181e6bee] IID4924 - __ xorw(r16, Address(r17, r18, (Address::ScaleFactor)2, -0x59ec1930)); // xor r16w, word ptr [r17+r18*4-0x59ec1930] IID4925 - __ xorw(r17, Address(r18, r19, (Address::ScaleFactor)3, +0x175ac45d)); // xor r17w, word ptr [r18+r19*8+0x175ac45d] IID4926 - __ xorw(r18, Address(r19, r20, (Address::ScaleFactor)1, -0x319eb463)); // xor r18w, word ptr [r19+r20*2-0x319eb463] IID4927 - __ xorw(r19, Address(r20, r21, (Address::ScaleFactor)2, -0x6b3d3e4d)); // xor r19w, word ptr [r20+r21*4-0x6b3d3e4d] IID4928 - __ xorw(r20, Address(r21, r22, (Address::ScaleFactor)1, -0x5a51a0a2)); // xor r20w, word ptr [r21+r22*2-0x5a51a0a2] IID4929 - __ xorw(r21, Address(r22, r23, (Address::ScaleFactor)2, -0x15bd9e38)); // xor r21w, word ptr [r22+r23*4-0x15bd9e38] IID4930 - __ xorw(r22, Address(r23, +0x376ad0f1)); // xor r22w, word ptr [r23+0x376ad0f1] IID4931 - __ xorw(r23, Address(r24, r25, (Address::ScaleFactor)1, +0x182d4cbf)); // xor r23w, word ptr [r24+r25*2+0x182d4cbf] IID4932 - __ xorw(r24, Address(r25, r26, (Address::ScaleFactor)2, -0x5f5e7c44)); // xor r24w, word ptr [r25+r26*4-0x5f5e7c44] IID4933 - __ xorw(r25, Address(r26, r27, (Address::ScaleFactor)3, -0x1eea041e)); // xor r25w, word ptr [r26+r27*8-0x1eea041e] IID4934 - __ xorw(r26, Address(r27, r28, (Address::ScaleFactor)0, +0x4f3b80c2)); // xor r26w, word ptr [r27+r28*1+0x4f3b80c2] IID4935 - __ xorw(r27, Address(r28, +0xc2be562)); // xor r27w, word ptr [r28+0xc2be562] IID4936 - __ xorw(r28, Address(r29, r30, (Address::ScaleFactor)1, +0x3c19e487)); // xor r28w, word ptr [r29+r30*2+0x3c19e487] IID4937 - __ xorw(r29, Address(r30, r31, (Address::ScaleFactor)0, +0x24e44ea)); // xor r29w, word ptr [r30+r31*1+0x24e44ea] IID4938 - __ xorw(r30, Address(r31, rcx, (Address::ScaleFactor)3, +0x7bc5b9f)); // xor r30w, word ptr [r31+rcx*8+0x7bc5b9f] IID4939 - __ xorw(r31, Address(rcx, rdx, (Address::ScaleFactor)3, -0x270296ce)); // xor r31w, word ptr [rcx+rdx*8-0x270296ce] IID4940 -#endif // _LP64 - __ xorl(rcx, Address(rdx, rbx, (Address::ScaleFactor)3, +0x7bdbba22)); // xor ecx, dword ptr [rdx+rbx*8+0x7bdbba22] IID4941 -#ifdef _LP64 - __ xorl(rdx, Address(rbx, +0x1d9ea109)); // xor edx, dword ptr [rbx+0x1d9ea109] IID4942 - __ xorl(rbx, Address(r8, r9, (Address::ScaleFactor)3, -0x7da3454c)); // xor ebx, dword ptr [r8+r9*8-0x7da3454c] IID4943 - __ xorl(r8, Address(r9, r10, (Address::ScaleFactor)0, -0x7b05ca1d)); // xor r8d, dword ptr [r9+r10*1-0x7b05ca1d] IID4944 - __ xorl(r9, Address(r10, r11, (Address::ScaleFactor)2, -0x3117ca5b)); // xor r9d, dword ptr [r10+r11*4-0x3117ca5b] IID4945 - __ xorl(r10, Address(r11, +0x181e2c9)); // xor r10d, dword ptr [r11+0x181e2c9] IID4946 - __ xorl(r11, Address(r12, r13, (Address::ScaleFactor)0, -0x7b2a0e9b)); // xor r11d, dword ptr [r12+r13*1-0x7b2a0e9b] IID4947 - __ xorl(r12, Address(r13, r14, (Address::ScaleFactor)3, -0x373fa4c7)); // xor r12d, dword ptr [r13+r14*8-0x373fa4c7] IID4948 - __ xorl(r13, Address(r14, r15, (Address::ScaleFactor)2, +0x300bd5db)); // xor r13d, dword ptr [r14+r15*4+0x300bd5db] IID4949 - __ xorl(r14, Address(r15, r16, (Address::ScaleFactor)1, +0x62873caf)); // xor r14d, dword ptr [r15+r16*2+0x62873caf] IID4950 - __ xorl(r15, Address(r16, r17, (Address::ScaleFactor)1, -0x3e35ef58)); // xor r15d, dword ptr [r16+r17*2-0x3e35ef58] IID4951 - __ xorl(r16, Address(r17, r18, (Address::ScaleFactor)1, -0xd7b2daf)); // xor r16d, dword ptr [r17+r18*2-0xd7b2daf] IID4952 - __ xorl(r17, Address(r18, r19, (Address::ScaleFactor)0, +0x1138818e)); // xor r17d, dword ptr [r18+r19*1+0x1138818e] IID4953 - __ xorl(r18, Address(r19, r20, (Address::ScaleFactor)2, +0xd1fad7f)); // xor r18d, dword ptr [r19+r20*4+0xd1fad7f] IID4954 - __ xorl(r19, Address(r20, r21, (Address::ScaleFactor)3, -0x5ba17c84)); // xor r19d, dword ptr [r20+r21*8-0x5ba17c84] IID4955 - __ xorl(r20, Address(r21, r22, (Address::ScaleFactor)2, +0x12c91374)); // xor r20d, dword ptr [r21+r22*4+0x12c91374] IID4956 - __ xorl(r21, Address(r22, r23, (Address::ScaleFactor)1, +0x38c42d44)); // xor r21d, dword ptr [r22+r23*2+0x38c42d44] IID4957 - __ xorl(r22, Address(r23, r24, (Address::ScaleFactor)0, +0x739ca529)); // xor r22d, dword ptr [r23+r24*1+0x739ca529] IID4958 - __ xorl(r23, Address(r24, r25, (Address::ScaleFactor)1, +0x3643ac88)); // xor r23d, dword ptr [r24+r25*2+0x3643ac88] IID4959 - __ xorl(r24, Address(r25, r26, (Address::ScaleFactor)0, -0x4260b17d)); // xor r24d, dword ptr [r25+r26*1-0x4260b17d] IID4960 - __ xorl(r25, Address(r26, r27, (Address::ScaleFactor)0, -0x3a2e00e2)); // xor r25d, dword ptr [r26+r27*1-0x3a2e00e2] IID4961 - __ xorl(r26, Address(r27, r28, (Address::ScaleFactor)3, -0x1288117e)); // xor r26d, dword ptr [r27+r28*8-0x1288117e] IID4962 - __ xorl(r27, Address(r28, -0x1fd5af9)); // xor r27d, dword ptr [r28-0x1fd5af9] IID4963 - __ xorl(r28, Address(r29, +0x57334343)); // xor r28d, dword ptr [r29+0x57334343] IID4964 - __ xorl(r29, Address(r30, +0x6a744fa)); // xor r29d, dword ptr [r30+0x6a744fa] IID4965 - __ xorl(r30, Address(r31, +0x6c0587dc)); // xor r30d, dword ptr [r31+0x6c0587dc] IID4966 - __ xorl(r31, Address(rcx, rdx, (Address::ScaleFactor)2, -0x5a741d07)); // xor r31d, dword ptr [rcx+rdx*4-0x5a741d07] IID4967 -#endif // _LP64 - __ movb(rcx, Address(rdx, rbx, (Address::ScaleFactor)0, +0x33ea1cd1)); // mov cl, byte ptr [rdx+rbx*1+0x33ea1cd1] IID4968 -#ifdef _LP64 - __ movb(rdx, Address(rbx, r8, (Address::ScaleFactor)2, +0x6f2e35ee)); // mov dl, byte ptr [rbx+r8*4+0x6f2e35ee] IID4969 - __ movb(rbx, Address(r8, +0x10c377b5)); // mov bl, byte ptr [r8+0x10c377b5] IID4970 - __ movb(r8, Address(r9, r10, (Address::ScaleFactor)2, +0x7f66182f)); // mov r8b, byte ptr [r9+r10*4+0x7f66182f] IID4971 - __ movb(r9, Address(r10, r11, (Address::ScaleFactor)1, +0x62ec2e36)); // mov r9b, byte ptr [r10+r11*2+0x62ec2e36] IID4972 - __ movb(r10, Address(r11, r12, (Address::ScaleFactor)2, +0x7b10548e)); // mov r10b, byte ptr [r11+r12*4+0x7b10548e] IID4973 - __ movb(r11, Address(r12, r13, (Address::ScaleFactor)3, +0x52850528)); // mov r11b, byte ptr [r12+r13*8+0x52850528] IID4974 - __ movb(r12, Address(r13, r14, (Address::ScaleFactor)2, -0x7221b0d3)); // mov r12b, byte ptr [r13+r14*4-0x7221b0d3] IID4975 - __ movb(r13, Address(r14, +0x78b48918)); // mov r13b, byte ptr [r14+0x78b48918] IID4976 - __ movb(r14, Address(r15, r16, (Address::ScaleFactor)3, +0x101271ed)); // mov r14b, byte ptr [r15+r16*8+0x101271ed] IID4977 - __ movb(r15, Address(r16, r17, (Address::ScaleFactor)1, +0x7f3d4347)); // mov r15b, byte ptr [r16+r17*2+0x7f3d4347] IID4978 - __ movb(r16, Address(r17, -0x67e7bcdc)); // mov r16b, byte ptr [r17-0x67e7bcdc] IID4979 - __ movb(r17, Address(r18, r19, (Address::ScaleFactor)1, -0x67444865)); // mov r17b, byte ptr [r18+r19*2-0x67444865] IID4980 - __ movb(r18, Address(r19, +0x7bf83061)); // mov r18b, byte ptr [r19+0x7bf83061] IID4981 - __ movb(r19, Address(r20, r21, (Address::ScaleFactor)1, +0x113a64c8)); // mov r19b, byte ptr [r20+r21*2+0x113a64c8] IID4982 - __ movb(r20, Address(r21, r22, (Address::ScaleFactor)2, -0x3b2dd13f)); // mov r20b, byte ptr [r21+r22*4-0x3b2dd13f] IID4983 - __ movb(r21, Address(r22, r23, (Address::ScaleFactor)0, +0x4d4264e6)); // mov r21b, byte ptr [r22+r23*1+0x4d4264e6] IID4984 - __ movb(r22, Address(r23, r24, (Address::ScaleFactor)3, +0x41cca50a)); // mov r22b, byte ptr [r23+r24*8+0x41cca50a] IID4985 - __ movb(r23, Address(r24, r25, (Address::ScaleFactor)2, +0x4c6e6d63)); // mov r23b, byte ptr [r24+r25*4+0x4c6e6d63] IID4986 - __ movb(r24, Address(r25, +0x16502ecc)); // mov r24b, byte ptr [r25+0x16502ecc] IID4987 - __ movb(r25, Address(r26, r27, (Address::ScaleFactor)3, +0x26af79cc)); // mov r25b, byte ptr [r26+r27*8+0x26af79cc] IID4988 - __ movb(r26, Address(r27, r28, (Address::ScaleFactor)1, +0x209618b1)); // mov r26b, byte ptr [r27+r28*2+0x209618b1] IID4989 - __ movb(r27, Address(r28, -0x7d804f03)); // mov r27b, byte ptr [r28-0x7d804f03] IID4990 - __ movb(r28, Address(r29, r30, (Address::ScaleFactor)3, +0x4d0f4f7b)); // mov r28b, byte ptr [r29+r30*8+0x4d0f4f7b] IID4991 - __ movb(r29, Address(r30, r31, (Address::ScaleFactor)1, +0x7589008b)); // mov r29b, byte ptr [r30+r31*2+0x7589008b] IID4992 - __ movb(r30, Address(r31, +0x33610d5a)); // mov r30b, byte ptr [r31+0x33610d5a] IID4993 - __ movb(r31, Address(rcx, rdx, (Address::ScaleFactor)2, -0x188ff6d0)); // mov r31b, byte ptr [rcx+rdx*4-0x188ff6d0] IID4994 -#endif // _LP64 - __ movl(rcx, Address(rdx, rbx, (Address::ScaleFactor)3, -0xf8e3c7b)); // mov ecx, dword ptr [rdx+rbx*8-0xf8e3c7b] IID4995 -#ifdef _LP64 - __ movl(rdx, Address(rbx, r8, (Address::ScaleFactor)3, +0x573662aa)); // mov edx, dword ptr [rbx+r8*8+0x573662aa] IID4996 - __ movl(rbx, Address(r8, -0x55c769a3)); // mov ebx, dword ptr [r8-0x55c769a3] IID4997 - __ movl(r8, Address(r9, r10, (Address::ScaleFactor)1, -0x6a6e44ae)); // mov r8d, dword ptr [r9+r10*2-0x6a6e44ae] IID4998 - __ movl(r9, Address(r10, r11, (Address::ScaleFactor)0, -0x7209b464)); // mov r9d, dword ptr [r10+r11*1-0x7209b464] IID4999 - __ movl(r10, Address(r11, r12, (Address::ScaleFactor)3, -0x436e6b59)); // mov r10d, dword ptr [r11+r12*8-0x436e6b59] IID5000 - __ movl(r11, Address(r12, -0x133c2264)); // mov r11d, dword ptr [r12-0x133c2264] IID5001 - __ movl(r12, Address(r13, r14, (Address::ScaleFactor)1, -0x1c6fb37)); // mov r12d, dword ptr [r13+r14*2-0x1c6fb37] IID5002 - __ movl(r13, Address(r14, r15, (Address::ScaleFactor)2, +0x1b532d53)); // mov r13d, dword ptr [r14+r15*4+0x1b532d53] IID5003 - __ movl(r14, Address(r15, r16, (Address::ScaleFactor)0, -0x5af35574)); // mov r14d, dword ptr [r15+r16*1-0x5af35574] IID5004 - __ movl(r15, Address(r16, r17, (Address::ScaleFactor)2, -0x124cd116)); // mov r15d, dword ptr [r16+r17*4-0x124cd116] IID5005 - __ movl(r16, Address(r17, r18, (Address::ScaleFactor)0, -0x29bb1bd6)); // mov r16d, dword ptr [r17+r18*1-0x29bb1bd6] IID5006 - __ movl(r17, Address(r18, r19, (Address::ScaleFactor)2, -0x40293158)); // mov r17d, dword ptr [r18+r19*4-0x40293158] IID5007 - __ movl(r18, Address(r19, r20, (Address::ScaleFactor)2, +0x817a414)); // mov r18d, dword ptr [r19+r20*4+0x817a414] IID5008 - __ movl(r19, Address(r20, +0x4ddbcaa6)); // mov r19d, dword ptr [r20+0x4ddbcaa6] IID5009 - __ movl(r20, Address(r21, r22, (Address::ScaleFactor)0, -0x3364c52e)); // mov r20d, dword ptr [r21+r22*1-0x3364c52e] IID5010 - __ movl(r21, Address(r22, r23, (Address::ScaleFactor)2, +0x6b94613a)); // mov r21d, dword ptr [r22+r23*4+0x6b94613a] IID5011 - __ movl(r22, Address(r23, -0x6e99438f)); // mov r22d, dword ptr [r23-0x6e99438f] IID5012 - __ movl(r23, Address(r24, r25, (Address::ScaleFactor)3, -0x5ca903b4)); // mov r23d, dword ptr [r24+r25*8-0x5ca903b4] IID5013 - __ movl(r24, Address(r25, r26, (Address::ScaleFactor)1, -0x3acd6341)); // mov r24d, dword ptr [r25+r26*2-0x3acd6341] IID5014 - __ movl(r25, Address(r26, r27, (Address::ScaleFactor)3, -0x2a8bf314)); // mov r25d, dword ptr [r26+r27*8-0x2a8bf314] IID5015 - __ movl(r26, Address(r27, r28, (Address::ScaleFactor)0, -0x5501abef)); // mov r26d, dword ptr [r27+r28*1-0x5501abef] IID5016 - __ movl(r27, Address(r28, r29, (Address::ScaleFactor)2, +0x62de9111)); // mov r27d, dword ptr [r28+r29*4+0x62de9111] IID5017 - __ movl(r28, Address(r29, +0x647de35)); // mov r28d, dword ptr [r29+0x647de35] IID5018 - __ movl(r29, Address(r30, -0x46d0eea1)); // mov r29d, dword ptr [r30-0x46d0eea1] IID5019 - __ movl(r30, Address(r31, rcx, (Address::ScaleFactor)0, -0x31278014)); // mov r30d, dword ptr [r31+rcx*1-0x31278014] IID5020 - __ movl(r31, Address(rcx, -0x21c70de5)); // mov r31d, dword ptr [rcx-0x21c70de5] IID5021 -#endif // _LP64 - __ leal(rcx, Address(rdx, rbx, (Address::ScaleFactor)3, +0x6093bc82)); // lea ecx, dword ptr [rdx+rbx*8+0x6093bc82] IID5022 -#ifdef _LP64 - __ leal(rdx, Address(rbx, -0x5d27c65c)); // lea edx, dword ptr [rbx-0x5d27c65c] IID5023 - __ leal(rbx, Address(r8, r9, (Address::ScaleFactor)2, +0x10d5f04f)); // lea ebx, dword ptr [r8+r9*4+0x10d5f04f] IID5024 - __ leal(r8, Address(r9, r10, (Address::ScaleFactor)1, -0x78c0376c)); // lea r8d, dword ptr [r9+r10*2-0x78c0376c] IID5025 - __ leal(r9, Address(r10, r11, (Address::ScaleFactor)1, -0x217cf559)); // lea r9d, dword ptr [r10+r11*2-0x217cf559] IID5026 - __ leal(r10, Address(r11, r12, (Address::ScaleFactor)3, -0x48f76eb)); // lea r10d, dword ptr [r11+r12*8-0x48f76eb] IID5027 - __ leal(r11, Address(r12, +0x7b3e170)); // lea r11d, dword ptr [r12+0x7b3e170] IID5028 - __ leal(r12, Address(r13, -0x3337c21e)); // lea r12d, dword ptr [r13-0x3337c21e] IID5029 - __ leal(r13, Address(r14, r15, (Address::ScaleFactor)1, +0x1ed6b355)); // lea r13d, dword ptr [r14+r15*2+0x1ed6b355] IID5030 - __ leal(r14, Address(r15, r16, (Address::ScaleFactor)0, -0x549ee11b)); // lea r14d, dword ptr [r15+r16*1-0x549ee11b] IID5031 - __ leal(r15, Address(r16, r17, (Address::ScaleFactor)3, +0x65f3a4f9)); // lea r15d, dword ptr [r16+r17*8+0x65f3a4f9] IID5032 - __ leal(r16, Address(r17, r18, (Address::ScaleFactor)2, -0x6541fb51)); // lea r16d, dword ptr [r17+r18*4-0x6541fb51] IID5033 - __ leal(r17, Address(r18, r19, (Address::ScaleFactor)3, -0x16013a54)); // lea r17d, dword ptr [r18+r19*8-0x16013a54] IID5034 - __ leal(r18, Address(r19, +0x66158c86)); // lea r18d, dword ptr [r19+0x66158c86] IID5035 - __ leal(r19, Address(r20, +0x394b4713)); // lea r19d, dword ptr [r20+0x394b4713] IID5036 - __ leal(r20, Address(r21, r22, (Address::ScaleFactor)2, +0x6e45d660)); // lea r20d, dword ptr [r21+r22*4+0x6e45d660] IID5037 - __ leal(r21, Address(r22, +0x4c91b94c)); // lea r21d, dword ptr [r22+0x4c91b94c] IID5038 - __ leal(r22, Address(r23, r24, (Address::ScaleFactor)3, +0x179cee8e)); // lea r22d, dword ptr [r23+r24*8+0x179cee8e] IID5039 - __ leal(r23, Address(r24, r25, (Address::ScaleFactor)1, +0x7ba7b97d)); // lea r23d, dword ptr [r24+r25*2+0x7ba7b97d] IID5040 - __ leal(r24, Address(r25, r26, (Address::ScaleFactor)3, -0x5e8c7f2a)); // lea r24d, dword ptr [r25+r26*8-0x5e8c7f2a] IID5041 - __ leal(r25, Address(r26, r27, (Address::ScaleFactor)3, -0x55a5ae62)); // lea r25d, dword ptr [r26+r27*8-0x55a5ae62] IID5042 - __ leal(r26, Address(r27, r28, (Address::ScaleFactor)2, -0x3eea2874)); // lea r26d, dword ptr [r27+r28*4-0x3eea2874] IID5043 - __ leal(r27, Address(r28, r29, (Address::ScaleFactor)3, -0x6bc7eb0)); // lea r27d, dword ptr [r28+r29*8-0x6bc7eb0] IID5044 - __ leal(r28, Address(r29, r30, (Address::ScaleFactor)2, +0x5c785e23)); // lea r28d, dword ptr [r29+r30*4+0x5c785e23] IID5045 - __ leal(r29, Address(r30, r31, (Address::ScaleFactor)3, -0x5f84cd89)); // lea r29d, dword ptr [r30+r31*8-0x5f84cd89] IID5046 - __ leal(r30, Address(r31, rcx, (Address::ScaleFactor)0, -0x75c6225d)); // lea r30d, dword ptr [r31+rcx*1-0x75c6225d] IID5047 - __ leal(r31, Address(rcx, -0x5adb247b)); // lea r31d, dword ptr [rcx-0x5adb247b] IID5048 -#endif // _LP64 - __ xchgb(rcx, Address(rdx, rbx, (Address::ScaleFactor)1, +0x5fe99a52)); // xchg cl, byte ptr [rdx+rbx*2+0x5fe99a52] IID5049 -#ifdef _LP64 - __ xchgb(rdx, Address(rbx, r8, (Address::ScaleFactor)1, -0x3061e0e7)); // xchg dl, byte ptr [rbx+r8*2-0x3061e0e7] IID5050 - __ xchgb(rbx, Address(r8, r9, (Address::ScaleFactor)3, +0x2a4a96f7)); // xchg bl, byte ptr [r8+r9*8+0x2a4a96f7] IID5051 - __ xchgb(r8, Address(r9, r10, (Address::ScaleFactor)3, +0x6c39aa44)); // xchg r8b, byte ptr [r9+r10*8+0x6c39aa44] IID5052 - __ xchgb(r9, Address(r10, r11, (Address::ScaleFactor)2, +0x17ddd328)); // xchg r9b, byte ptr [r10+r11*4+0x17ddd328] IID5053 - __ xchgb(r10, Address(r11, r12, (Address::ScaleFactor)3, +0x6046f56d)); // xchg r10b, byte ptr [r11+r12*8+0x6046f56d] IID5054 - __ xchgb(r11, Address(r12, -0x37a40268)); // xchg r11b, byte ptr [r12-0x37a40268] IID5055 - __ xchgb(r12, Address(r13, r14, (Address::ScaleFactor)1, -0x105e5aba)); // xchg r12b, byte ptr [r13+r14*2-0x105e5aba] IID5056 - __ xchgb(r13, Address(r14, r15, (Address::ScaleFactor)3, -0x4582f852)); // xchg r13b, byte ptr [r14+r15*8-0x4582f852] IID5057 - __ xchgb(r14, Address(r15, -0x4c3b2384)); // xchg r14b, byte ptr [r15-0x4c3b2384] IID5058 - __ xchgb(r15, Address(r16, +0x3a5aef8c)); // xchg r15b, byte ptr [r16+0x3a5aef8c] IID5059 - __ xchgb(r16, Address(r17, +0x6e457cab)); // xchg r16b, byte ptr [r17+0x6e457cab] IID5060 - __ xchgb(r17, Address(r18, r19, (Address::ScaleFactor)2, -0x4e181c6c)); // xchg r17b, byte ptr [r18+r19*4-0x4e181c6c] IID5061 - __ xchgb(r18, Address(r19, r20, (Address::ScaleFactor)1, -0x6170d8cc)); // xchg r18b, byte ptr [r19+r20*2-0x6170d8cc] IID5062 - __ xchgb(r19, Address(r20, r21, (Address::ScaleFactor)0, +0x49c420cc)); // xchg r19b, byte ptr [r20+r21*1+0x49c420cc] IID5063 - __ xchgb(r20, Address(r21, r22, (Address::ScaleFactor)0, -0x7e1b07db)); // xchg r20b, byte ptr [r21+r22*1-0x7e1b07db] IID5064 - __ xchgb(r21, Address(r22, -0x61d378c)); // xchg r21b, byte ptr [r22-0x61d378c] IID5065 - __ xchgb(r22, Address(r23, r24, (Address::ScaleFactor)2, -0x25112a7a)); // xchg r22b, byte ptr [r23+r24*4-0x25112a7a] IID5066 - __ xchgb(r23, Address(r24, +0xbf408fd)); // xchg r23b, byte ptr [r24+0xbf408fd] IID5067 - __ xchgb(r24, Address(r25, -0x4d4bd28)); // xchg r24b, byte ptr [r25-0x4d4bd28] IID5068 - __ xchgb(r25, Address(r26, r27, (Address::ScaleFactor)0, +0x5800d055)); // xchg r25b, byte ptr [r26+r27*1+0x5800d055] IID5069 - __ xchgb(r26, Address(r27, r28, (Address::ScaleFactor)2, -0x676c8f7)); // xchg r26b, byte ptr [r27+r28*4-0x676c8f7] IID5070 - __ xchgb(r27, Address(r28, r29, (Address::ScaleFactor)0, +0x30cbd84)); // xchg r27b, byte ptr [r28+r29*1+0x30cbd84] IID5071 - __ xchgb(r28, Address(r29, r30, (Address::ScaleFactor)0, -0x5d24ae0d)); // xchg r28b, byte ptr [r29+r30*1-0x5d24ae0d] IID5072 - __ xchgb(r29, Address(r30, r31, (Address::ScaleFactor)1, +0x3f98f152)); // xchg r29b, byte ptr [r30+r31*2+0x3f98f152] IID5073 - __ xchgb(r30, Address(r31, rcx, (Address::ScaleFactor)2, -0xa140981)); // xchg r30b, byte ptr [r31+rcx*4-0xa140981] IID5074 - __ xchgb(r31, Address(rcx, -0x21396a6c)); // xchg r31b, byte ptr [rcx-0x21396a6c] IID5075 -#endif // _LP64 - __ xchgw(rcx, Address(rdx, rbx, (Address::ScaleFactor)1, -0x47b5b276)); // xchg cx, word ptr [rdx+rbx*2-0x47b5b276] IID5076 -#ifdef _LP64 - __ xchgw(rdx, Address(rbx, -0x6a16d66d)); // xchg dx, word ptr [rbx-0x6a16d66d] IID5077 - __ xchgw(rbx, Address(r8, r9, (Address::ScaleFactor)1, -0x1f9b04cb)); // xchg bx, word ptr [r8+r9*2-0x1f9b04cb] IID5078 - __ xchgw(r8, Address(r9, +0x625c906a)); // xchg r8w, word ptr [r9+0x625c906a] IID5079 - __ xchgw(r9, Address(r10, r11, (Address::ScaleFactor)0, +0xf0b0eb)); // xchg r9w, word ptr [r10+r11*1+0xf0b0eb] IID5080 - __ xchgw(r10, Address(r11, r12, (Address::ScaleFactor)2, -0x3664be49)); // xchg r10w, word ptr [r11+r12*4-0x3664be49] IID5081 - __ xchgw(r11, Address(r12, r13, (Address::ScaleFactor)1, +0x47cfdef8)); // xchg r11w, word ptr [r12+r13*2+0x47cfdef8] IID5082 - __ xchgw(r12, Address(r13, r14, (Address::ScaleFactor)3, +0x92d90b5)); // xchg r12w, word ptr [r13+r14*8+0x92d90b5] IID5083 - __ xchgw(r13, Address(r14, r15, (Address::ScaleFactor)3, +0x370fa231)); // xchg r13w, word ptr [r14+r15*8+0x370fa231] IID5084 - __ xchgw(r14, Address(r15, r16, (Address::ScaleFactor)0, +0x32a90447)); // xchg r14w, word ptr [r15+r16*1+0x32a90447] IID5085 - __ xchgw(r15, Address(r16, r17, (Address::ScaleFactor)1, +0x589fac5a)); // xchg r15w, word ptr [r16+r17*2+0x589fac5a] IID5086 - __ xchgw(r16, Address(r17, r18, (Address::ScaleFactor)2, +0x60fbdbc6)); // xchg r16w, word ptr [r17+r18*4+0x60fbdbc6] IID5087 - __ xchgw(r17, Address(r18, r19, (Address::ScaleFactor)2, -0x1e749487)); // xchg r17w, word ptr [r18+r19*4-0x1e749487] IID5088 - __ xchgw(r18, Address(r19, -0xb26f550)); // xchg r18w, word ptr [r19-0xb26f550] IID5089 - __ xchgw(r19, Address(r20, r21, (Address::ScaleFactor)2, -0x6717d2c3)); // xchg r19w, word ptr [r20+r21*4-0x6717d2c3] IID5090 - __ xchgw(r20, Address(r21, r22, (Address::ScaleFactor)3, -0x72a3ea35)); // xchg r20w, word ptr [r21+r22*8-0x72a3ea35] IID5091 - __ xchgw(r21, Address(r22, -0x4b41c1a6)); // xchg r21w, word ptr [r22-0x4b41c1a6] IID5092 - __ xchgw(r22, Address(r23, +0x2bce4b76)); // xchg r22w, word ptr [r23+0x2bce4b76] IID5093 - __ xchgw(r23, Address(r24, r25, (Address::ScaleFactor)2, +0x5885f4ed)); // xchg r23w, word ptr [r24+r25*4+0x5885f4ed] IID5094 - __ xchgw(r24, Address(r25, -0x4c13ccab)); // xchg r24w, word ptr [r25-0x4c13ccab] IID5095 - __ xchgw(r25, Address(r26, r27, (Address::ScaleFactor)2, -0x391b6740)); // xchg r25w, word ptr [r26+r27*4-0x391b6740] IID5096 - __ xchgw(r26, Address(r27, -0x7a41a635)); // xchg r26w, word ptr [r27-0x7a41a635] IID5097 - __ xchgw(r27, Address(r28, r29, (Address::ScaleFactor)0, -0x6ba2ff4)); // xchg r27w, word ptr [r28+r29*1-0x6ba2ff4] IID5098 - __ xchgw(r28, Address(r29, r30, (Address::ScaleFactor)0, +0x2dd1b4bf)); // xchg r28w, word ptr [r29+r30*1+0x2dd1b4bf] IID5099 - __ xchgw(r29, Address(r30, r31, (Address::ScaleFactor)3, +0x6933c89a)); // xchg r29w, word ptr [r30+r31*8+0x6933c89a] IID5100 - __ xchgw(r30, Address(r31, -0x356b524c)); // xchg r30w, word ptr [r31-0x356b524c] IID5101 - __ xchgw(r31, Address(rcx, rdx, (Address::ScaleFactor)0, -0x362783e7)); // xchg r31w, word ptr [rcx+rdx*1-0x362783e7] IID5102 -#endif // _LP64 - __ xchgl(rcx, Address(rdx, +0x1cbde31e)); // xchg ecx, dword ptr [rdx+0x1cbde31e] IID5103 -#ifdef _LP64 - __ xchgl(rdx, Address(rbx, r8, (Address::ScaleFactor)2, -0x15aff98b)); // xchg edx, dword ptr [rbx+r8*4-0x15aff98b] IID5104 - __ xchgl(rbx, Address(r8, r9, (Address::ScaleFactor)2, -0x37cdf3d4)); // xchg ebx, dword ptr [r8+r9*4-0x37cdf3d4] IID5105 - __ xchgl(r8, Address(r9, r10, (Address::ScaleFactor)0, -0x65e7c1dd)); // xchg r8d, dword ptr [r9+r10*1-0x65e7c1dd] IID5106 - __ xchgl(r9, Address(r10, r11, (Address::ScaleFactor)3, +0x74c17bae)); // xchg r9d, dword ptr [r10+r11*8+0x74c17bae] IID5107 - __ xchgl(r10, Address(r11, r12, (Address::ScaleFactor)2, +0x66152ef0)); // xchg r10d, dword ptr [r11+r12*4+0x66152ef0] IID5108 - __ xchgl(r11, Address(r12, r13, (Address::ScaleFactor)2, +0x58628100)); // xchg r11d, dword ptr [r12+r13*4+0x58628100] IID5109 - __ xchgl(r12, Address(r13, r14, (Address::ScaleFactor)2, -0x5a05279)); // xchg r12d, dword ptr [r13+r14*4-0x5a05279] IID5110 - __ xchgl(r13, Address(r14, r15, (Address::ScaleFactor)1, -0x44479b35)); // xchg r13d, dword ptr [r14+r15*2-0x44479b35] IID5111 - __ xchgl(r14, Address(r15, r16, (Address::ScaleFactor)0, -0x7c4aac43)); // xchg r14d, dword ptr [r15+r16*1-0x7c4aac43] IID5112 - __ xchgl(r15, Address(r16, -0x4b3614ca)); // xchg r15d, dword ptr [r16-0x4b3614ca] IID5113 - __ xchgl(r16, Address(r17, r18, (Address::ScaleFactor)0, -0x359c9f64)); // xchg r16d, dword ptr [r17+r18*1-0x359c9f64] IID5114 - __ xchgl(r17, Address(r18, r19, (Address::ScaleFactor)1, -0x4dd0193c)); // xchg r17d, dword ptr [r18+r19*2-0x4dd0193c] IID5115 - __ xchgl(r18, Address(r19, r20, (Address::ScaleFactor)0, -0x179055bc)); // xchg r18d, dword ptr [r19+r20*1-0x179055bc] IID5116 - __ xchgl(r19, Address(r20, r21, (Address::ScaleFactor)1, -0x33dac35e)); // xchg r19d, dword ptr [r20+r21*2-0x33dac35e] IID5117 - __ xchgl(r20, Address(r21, r22, (Address::ScaleFactor)0, +0x72c2edc2)); // xchg r20d, dword ptr [r21+r22*1+0x72c2edc2] IID5118 - __ xchgl(r21, Address(r22, r23, (Address::ScaleFactor)2, +0x3e23f710)); // xchg r21d, dword ptr [r22+r23*4+0x3e23f710] IID5119 - __ xchgl(r22, Address(r23, -0x58f7fafe)); // xchg r22d, dword ptr [r23-0x58f7fafe] IID5120 - __ xchgl(r23, Address(r24, +0x9d6f70)); // xchg r23d, dword ptr [r24+0x9d6f70] IID5121 - __ xchgl(r24, Address(r25, r26, (Address::ScaleFactor)3, +0x40997221)); // xchg r24d, dword ptr [r25+r26*8+0x40997221] IID5122 - __ xchgl(r25, Address(r26, r27, (Address::ScaleFactor)2, -0x23d44b87)); // xchg r25d, dword ptr [r26+r27*4-0x23d44b87] IID5123 - __ xchgl(r26, Address(r27, r28, (Address::ScaleFactor)0, -0x61bf736c)); // xchg r26d, dword ptr [r27+r28*1-0x61bf736c] IID5124 - __ xchgl(r27, Address(r28, -0x40f8387a)); // xchg r27d, dword ptr [r28-0x40f8387a] IID5125 - __ xchgl(r28, Address(r29, r30, (Address::ScaleFactor)3, -0x11174a41)); // xchg r28d, dword ptr [r29+r30*8-0x11174a41] IID5126 - __ xchgl(r29, Address(r30, r31, (Address::ScaleFactor)3, +0x495b56ed)); // xchg r29d, dword ptr [r30+r31*8+0x495b56ed] IID5127 - __ xchgl(r30, Address(r31, -0x1bedaa65)); // xchg r30d, dword ptr [r31-0x1bedaa65] IID5128 - __ xchgl(r31, Address(rcx, rdx, (Address::ScaleFactor)0, -0x6b6bec3a)); // xchg r31d, dword ptr [rcx+rdx*1-0x6b6bec3a] IID5129 -#endif // _LP64 - __ testl(rcx, Address(rdx, -0x1ec17960)); // test ecx, dword ptr [rdx-0x1ec17960] IID5130 -#ifdef _LP64 - __ testl(rdx, Address(rbx, r8, (Address::ScaleFactor)0, -0x437be886)); // test edx, dword ptr [rbx+r8*1-0x437be886] IID5131 - __ testl(rbx, Address(r8, r9, (Address::ScaleFactor)0, -0x2220870)); // test ebx, dword ptr [r8+r9*1-0x2220870] IID5132 - __ testl(r8, Address(r9, r10, (Address::ScaleFactor)3, +0x31c2c08a)); // test r8d, dword ptr [r9+r10*8+0x31c2c08a] IID5133 - __ testl(r9, Address(r10, r11, (Address::ScaleFactor)3, -0x293c50c5)); // test r9d, dword ptr [r10+r11*8-0x293c50c5] IID5134 - __ testl(r10, Address(r11, +0x1377a33d)); // test r10d, dword ptr [r11+0x1377a33d] IID5135 - __ testl(r11, Address(r12, r13, (Address::ScaleFactor)2, -0x21774a93)); // test r11d, dword ptr [r12+r13*4-0x21774a93] IID5136 - __ testl(r12, Address(r13, r14, (Address::ScaleFactor)0, +0x4bad4d38)); // test r12d, dword ptr [r13+r14*1+0x4bad4d38] IID5137 - __ testl(r13, Address(r14, r15, (Address::ScaleFactor)1, +0x73681cba)); // test r13d, dword ptr [r14+r15*2+0x73681cba] IID5138 - __ testl(r14, Address(r15, r16, (Address::ScaleFactor)2, +0x213b720d)); // test r14d, dword ptr [r15+r16*4+0x213b720d] IID5139 - __ testl(r15, Address(r16, -0x238aa936)); // test r15d, dword ptr [r16-0x238aa936] IID5140 - __ testl(r16, Address(r17, r18, (Address::ScaleFactor)0, -0x324ee2e1)); // test r16d, dword ptr [r17+r18*1-0x324ee2e1] IID5141 - __ testl(r17, Address(r18, r19, (Address::ScaleFactor)1, -0x24547f2c)); // test r17d, dword ptr [r18+r19*2-0x24547f2c] IID5142 - __ testl(r18, Address(r19, r20, (Address::ScaleFactor)1, +0x6bdcf6f0)); // test r18d, dword ptr [r19+r20*2+0x6bdcf6f0] IID5143 - __ testl(r19, Address(r20, r21, (Address::ScaleFactor)2, +0x1993cfea)); // test r19d, dword ptr [r20+r21*4+0x1993cfea] IID5144 - __ testl(r20, Address(r21, r22, (Address::ScaleFactor)2, +0x573efbe9)); // test r20d, dword ptr [r21+r22*4+0x573efbe9] IID5145 - __ testl(r21, Address(r22, r23, (Address::ScaleFactor)1, -0x58a9a504)); // test r21d, dword ptr [r22+r23*2-0x58a9a504] IID5146 - __ testl(r22, Address(r23, r24, (Address::ScaleFactor)3, -0x1236252f)); // test r22d, dword ptr [r23+r24*8-0x1236252f] IID5147 - __ testl(r23, Address(r24, r25, (Address::ScaleFactor)2, -0x6bc2be6)); // test r23d, dword ptr [r24+r25*4-0x6bc2be6] IID5148 - __ testl(r24, Address(r25, -0x5132e4bf)); // test r24d, dword ptr [r25-0x5132e4bf] IID5149 - __ testl(r25, Address(r26, r27, (Address::ScaleFactor)3, -0xf7d1def)); // test r25d, dword ptr [r26+r27*8-0xf7d1def] IID5150 - __ testl(r26, Address(r27, r28, (Address::ScaleFactor)1, +0x3322f549)); // test r26d, dword ptr [r27+r28*2+0x3322f549] IID5151 - __ testl(r27, Address(r28, r29, (Address::ScaleFactor)1, -0x723b8bd6)); // test r27d, dword ptr [r28+r29*2-0x723b8bd6] IID5152 - __ testl(r28, Address(r29, r30, (Address::ScaleFactor)3, +0x4be6cc7c)); // test r28d, dword ptr [r29+r30*8+0x4be6cc7c] IID5153 - __ testl(r29, Address(r30, r31, (Address::ScaleFactor)0, +0x6648415)); // test r29d, dword ptr [r30+r31*1+0x6648415] IID5154 - __ testl(r30, Address(r31, rcx, (Address::ScaleFactor)0, -0x5e5ce3b9)); // test r30d, dword ptr [r31+rcx*1-0x5e5ce3b9] IID5155 - __ testl(r31, Address(rcx, +0x2f8a1c14)); // test r31d, dword ptr [rcx+0x2f8a1c14] IID5156 -#endif // _LP64 - __ addb(rcx, 1); // add cl, 1 IID5157 - __ addb(rcx, 4); // add cl, 4 IID5158 - __ addb(rcx, 16); // add cl, 16 IID5159 - __ addb(rcx, 64); // add cl, 64 IID5160 - __ addb(rdx, 1); // add dl, 1 IID5161 - __ addb(rdx, 4); // add dl, 4 IID5162 - __ addb(rdx, 16); // add dl, 16 IID5163 - __ addb(rdx, 64); // add dl, 64 IID5164 - __ addb(rbx, 1); // add bl, 1 IID5165 - __ addb(rbx, 4); // add bl, 4 IID5166 - __ addb(rbx, 16); // add bl, 16 IID5167 - __ addb(rbx, 64); // add bl, 64 IID5168 -#ifdef _LP64 - __ addb(r8, 1); // add r8b, 1 IID5169 - __ addb(r8, 4); // add r8b, 4 IID5170 - __ addb(r8, 16); // add r8b, 16 IID5171 - __ addb(r8, 64); // add r8b, 64 IID5172 - __ addb(r9, 1); // add r9b, 1 IID5173 - __ addb(r9, 4); // add r9b, 4 IID5174 - __ addb(r9, 16); // add r9b, 16 IID5175 - __ addb(r9, 64); // add r9b, 64 IID5176 - __ addb(r10, 1); // add r10b, 1 IID5177 - __ addb(r10, 4); // add r10b, 4 IID5178 - __ addb(r10, 16); // add r10b, 16 IID5179 - __ addb(r10, 64); // add r10b, 64 IID5180 - __ addb(r11, 1); // add r11b, 1 IID5181 - __ addb(r11, 4); // add r11b, 4 IID5182 - __ addb(r11, 16); // add r11b, 16 IID5183 - __ addb(r11, 64); // add r11b, 64 IID5184 - __ addb(r12, 1); // add r12b, 1 IID5185 - __ addb(r12, 4); // add r12b, 4 IID5186 - __ addb(r12, 16); // add r12b, 16 IID5187 - __ addb(r12, 64); // add r12b, 64 IID5188 - __ addb(r13, 1); // add r13b, 1 IID5189 - __ addb(r13, 4); // add r13b, 4 IID5190 - __ addb(r13, 16); // add r13b, 16 IID5191 - __ addb(r13, 64); // add r13b, 64 IID5192 - __ addb(r14, 1); // add r14b, 1 IID5193 - __ addb(r14, 4); // add r14b, 4 IID5194 - __ addb(r14, 16); // add r14b, 16 IID5195 - __ addb(r14, 64); // add r14b, 64 IID5196 - __ addb(r15, 1); // add r15b, 1 IID5197 - __ addb(r15, 4); // add r15b, 4 IID5198 - __ addb(r15, 16); // add r15b, 16 IID5199 - __ addb(r15, 64); // add r15b, 64 IID5200 - __ addb(r16, 1); // add r16b, 1 IID5201 - __ addb(r16, 4); // add r16b, 4 IID5202 - __ addb(r16, 16); // add r16b, 16 IID5203 - __ addb(r16, 64); // add r16b, 64 IID5204 - __ addb(r17, 1); // add r17b, 1 IID5205 - __ addb(r17, 4); // add r17b, 4 IID5206 - __ addb(r17, 16); // add r17b, 16 IID5207 - __ addb(r17, 64); // add r17b, 64 IID5208 - __ addb(r18, 1); // add r18b, 1 IID5209 - __ addb(r18, 4); // add r18b, 4 IID5210 - __ addb(r18, 16); // add r18b, 16 IID5211 - __ addb(r18, 64); // add r18b, 64 IID5212 - __ addb(r19, 1); // add r19b, 1 IID5213 - __ addb(r19, 4); // add r19b, 4 IID5214 - __ addb(r19, 16); // add r19b, 16 IID5215 - __ addb(r19, 64); // add r19b, 64 IID5216 - __ addb(r20, 1); // add r20b, 1 IID5217 - __ addb(r20, 4); // add r20b, 4 IID5218 - __ addb(r20, 16); // add r20b, 16 IID5219 - __ addb(r20, 64); // add r20b, 64 IID5220 - __ addb(r21, 1); // add r21b, 1 IID5221 - __ addb(r21, 4); // add r21b, 4 IID5222 - __ addb(r21, 16); // add r21b, 16 IID5223 - __ addb(r21, 64); // add r21b, 64 IID5224 - __ addb(r22, 1); // add r22b, 1 IID5225 - __ addb(r22, 4); // add r22b, 4 IID5226 - __ addb(r22, 16); // add r22b, 16 IID5227 - __ addb(r22, 64); // add r22b, 64 IID5228 - __ addb(r23, 1); // add r23b, 1 IID5229 - __ addb(r23, 4); // add r23b, 4 IID5230 - __ addb(r23, 16); // add r23b, 16 IID5231 - __ addb(r23, 64); // add r23b, 64 IID5232 - __ addb(r24, 1); // add r24b, 1 IID5233 - __ addb(r24, 4); // add r24b, 4 IID5234 - __ addb(r24, 16); // add r24b, 16 IID5235 - __ addb(r24, 64); // add r24b, 64 IID5236 - __ addb(r25, 1); // add r25b, 1 IID5237 - __ addb(r25, 4); // add r25b, 4 IID5238 - __ addb(r25, 16); // add r25b, 16 IID5239 - __ addb(r25, 64); // add r25b, 64 IID5240 - __ addb(r26, 1); // add r26b, 1 IID5241 - __ addb(r26, 4); // add r26b, 4 IID5242 - __ addb(r26, 16); // add r26b, 16 IID5243 - __ addb(r26, 64); // add r26b, 64 IID5244 - __ addb(r27, 1); // add r27b, 1 IID5245 - __ addb(r27, 4); // add r27b, 4 IID5246 - __ addb(r27, 16); // add r27b, 16 IID5247 - __ addb(r27, 64); // add r27b, 64 IID5248 - __ addb(r28, 1); // add r28b, 1 IID5249 - __ addb(r28, 4); // add r28b, 4 IID5250 - __ addb(r28, 16); // add r28b, 16 IID5251 - __ addb(r28, 64); // add r28b, 64 IID5252 - __ addb(r29, 1); // add r29b, 1 IID5253 - __ addb(r29, 4); // add r29b, 4 IID5254 - __ addb(r29, 16); // add r29b, 16 IID5255 - __ addb(r29, 64); // add r29b, 64 IID5256 - __ addb(r30, 1); // add r30b, 1 IID5257 - __ addb(r30, 4); // add r30b, 4 IID5258 - __ addb(r30, 16); // add r30b, 16 IID5259 - __ addb(r30, 64); // add r30b, 64 IID5260 - __ addb(r31, 1); // add r31b, 1 IID5261 - __ addb(r31, 4); // add r31b, 4 IID5262 - __ addb(r31, 16); // add r31b, 16 IID5263 - __ addb(r31, 64); // add r31b, 64 IID5264 -#endif // _LP64 - __ addl(rcx, 1); // add ecx, 1 IID5265 - __ addl(rcx, 16); // add ecx, 16 IID5266 - __ addl(rcx, 256); // add ecx, 256 IID5267 - __ addl(rcx, 4096); // add ecx, 4096 IID5268 - __ addl(rcx, 65536); // add ecx, 65536 IID5269 - __ addl(rcx, 1048576); // add ecx, 1048576 IID5270 - __ addl(rcx, 16777216); // add ecx, 16777216 IID5271 - __ addl(rcx, 268435456); // add ecx, 268435456 IID5272 - __ addl(rdx, 1); // add edx, 1 IID5273 - __ addl(rdx, 16); // add edx, 16 IID5274 - __ addl(rdx, 256); // add edx, 256 IID5275 - __ addl(rdx, 4096); // add edx, 4096 IID5276 - __ addl(rdx, 65536); // add edx, 65536 IID5277 - __ addl(rdx, 1048576); // add edx, 1048576 IID5278 - __ addl(rdx, 16777216); // add edx, 16777216 IID5279 - __ addl(rdx, 268435456); // add edx, 268435456 IID5280 - __ addl(rbx, 1); // add ebx, 1 IID5281 - __ addl(rbx, 16); // add ebx, 16 IID5282 - __ addl(rbx, 256); // add ebx, 256 IID5283 - __ addl(rbx, 4096); // add ebx, 4096 IID5284 - __ addl(rbx, 65536); // add ebx, 65536 IID5285 - __ addl(rbx, 1048576); // add ebx, 1048576 IID5286 - __ addl(rbx, 16777216); // add ebx, 16777216 IID5287 - __ addl(rbx, 268435456); // add ebx, 268435456 IID5288 -#ifdef _LP64 - __ addl(r8, 1); // add r8d, 1 IID5289 - __ addl(r8, 16); // add r8d, 16 IID5290 - __ addl(r8, 256); // add r8d, 256 IID5291 - __ addl(r8, 4096); // add r8d, 4096 IID5292 - __ addl(r8, 65536); // add r8d, 65536 IID5293 - __ addl(r8, 1048576); // add r8d, 1048576 IID5294 - __ addl(r8, 16777216); // add r8d, 16777216 IID5295 - __ addl(r8, 268435456); // add r8d, 268435456 IID5296 - __ addl(r9, 1); // add r9d, 1 IID5297 - __ addl(r9, 16); // add r9d, 16 IID5298 - __ addl(r9, 256); // add r9d, 256 IID5299 - __ addl(r9, 4096); // add r9d, 4096 IID5300 - __ addl(r9, 65536); // add r9d, 65536 IID5301 - __ addl(r9, 1048576); // add r9d, 1048576 IID5302 - __ addl(r9, 16777216); // add r9d, 16777216 IID5303 - __ addl(r9, 268435456); // add r9d, 268435456 IID5304 - __ addl(r10, 1); // add r10d, 1 IID5305 - __ addl(r10, 16); // add r10d, 16 IID5306 - __ addl(r10, 256); // add r10d, 256 IID5307 - __ addl(r10, 4096); // add r10d, 4096 IID5308 - __ addl(r10, 65536); // add r10d, 65536 IID5309 - __ addl(r10, 1048576); // add r10d, 1048576 IID5310 - __ addl(r10, 16777216); // add r10d, 16777216 IID5311 - __ addl(r10, 268435456); // add r10d, 268435456 IID5312 - __ addl(r11, 1); // add r11d, 1 IID5313 - __ addl(r11, 16); // add r11d, 16 IID5314 - __ addl(r11, 256); // add r11d, 256 IID5315 - __ addl(r11, 4096); // add r11d, 4096 IID5316 - __ addl(r11, 65536); // add r11d, 65536 IID5317 - __ addl(r11, 1048576); // add r11d, 1048576 IID5318 - __ addl(r11, 16777216); // add r11d, 16777216 IID5319 - __ addl(r11, 268435456); // add r11d, 268435456 IID5320 - __ addl(r12, 1); // add r12d, 1 IID5321 - __ addl(r12, 16); // add r12d, 16 IID5322 - __ addl(r12, 256); // add r12d, 256 IID5323 - __ addl(r12, 4096); // add r12d, 4096 IID5324 - __ addl(r12, 65536); // add r12d, 65536 IID5325 - __ addl(r12, 1048576); // add r12d, 1048576 IID5326 - __ addl(r12, 16777216); // add r12d, 16777216 IID5327 - __ addl(r12, 268435456); // add r12d, 268435456 IID5328 - __ addl(r13, 1); // add r13d, 1 IID5329 - __ addl(r13, 16); // add r13d, 16 IID5330 - __ addl(r13, 256); // add r13d, 256 IID5331 - __ addl(r13, 4096); // add r13d, 4096 IID5332 - __ addl(r13, 65536); // add r13d, 65536 IID5333 - __ addl(r13, 1048576); // add r13d, 1048576 IID5334 - __ addl(r13, 16777216); // add r13d, 16777216 IID5335 - __ addl(r13, 268435456); // add r13d, 268435456 IID5336 - __ addl(r14, 1); // add r14d, 1 IID5337 - __ addl(r14, 16); // add r14d, 16 IID5338 - __ addl(r14, 256); // add r14d, 256 IID5339 - __ addl(r14, 4096); // add r14d, 4096 IID5340 - __ addl(r14, 65536); // add r14d, 65536 IID5341 - __ addl(r14, 1048576); // add r14d, 1048576 IID5342 - __ addl(r14, 16777216); // add r14d, 16777216 IID5343 - __ addl(r14, 268435456); // add r14d, 268435456 IID5344 - __ addl(r15, 1); // add r15d, 1 IID5345 - __ addl(r15, 16); // add r15d, 16 IID5346 - __ addl(r15, 256); // add r15d, 256 IID5347 - __ addl(r15, 4096); // add r15d, 4096 IID5348 - __ addl(r15, 65536); // add r15d, 65536 IID5349 - __ addl(r15, 1048576); // add r15d, 1048576 IID5350 - __ addl(r15, 16777216); // add r15d, 16777216 IID5351 - __ addl(r15, 268435456); // add r15d, 268435456 IID5352 - __ addl(r16, 1); // add r16d, 1 IID5353 - __ addl(r16, 16); // add r16d, 16 IID5354 - __ addl(r16, 256); // add r16d, 256 IID5355 - __ addl(r16, 4096); // add r16d, 4096 IID5356 - __ addl(r16, 65536); // add r16d, 65536 IID5357 - __ addl(r16, 1048576); // add r16d, 1048576 IID5358 - __ addl(r16, 16777216); // add r16d, 16777216 IID5359 - __ addl(r16, 268435456); // add r16d, 268435456 IID5360 - __ addl(r17, 1); // add r17d, 1 IID5361 - __ addl(r17, 16); // add r17d, 16 IID5362 - __ addl(r17, 256); // add r17d, 256 IID5363 - __ addl(r17, 4096); // add r17d, 4096 IID5364 - __ addl(r17, 65536); // add r17d, 65536 IID5365 - __ addl(r17, 1048576); // add r17d, 1048576 IID5366 - __ addl(r17, 16777216); // add r17d, 16777216 IID5367 - __ addl(r17, 268435456); // add r17d, 268435456 IID5368 - __ addl(r18, 1); // add r18d, 1 IID5369 - __ addl(r18, 16); // add r18d, 16 IID5370 - __ addl(r18, 256); // add r18d, 256 IID5371 - __ addl(r18, 4096); // add r18d, 4096 IID5372 - __ addl(r18, 65536); // add r18d, 65536 IID5373 - __ addl(r18, 1048576); // add r18d, 1048576 IID5374 - __ addl(r18, 16777216); // add r18d, 16777216 IID5375 - __ addl(r18, 268435456); // add r18d, 268435456 IID5376 - __ addl(r19, 1); // add r19d, 1 IID5377 - __ addl(r19, 16); // add r19d, 16 IID5378 - __ addl(r19, 256); // add r19d, 256 IID5379 - __ addl(r19, 4096); // add r19d, 4096 IID5380 - __ addl(r19, 65536); // add r19d, 65536 IID5381 - __ addl(r19, 1048576); // add r19d, 1048576 IID5382 - __ addl(r19, 16777216); // add r19d, 16777216 IID5383 - __ addl(r19, 268435456); // add r19d, 268435456 IID5384 - __ addl(r20, 1); // add r20d, 1 IID5385 - __ addl(r20, 16); // add r20d, 16 IID5386 - __ addl(r20, 256); // add r20d, 256 IID5387 - __ addl(r20, 4096); // add r20d, 4096 IID5388 - __ addl(r20, 65536); // add r20d, 65536 IID5389 - __ addl(r20, 1048576); // add r20d, 1048576 IID5390 - __ addl(r20, 16777216); // add r20d, 16777216 IID5391 - __ addl(r20, 268435456); // add r20d, 268435456 IID5392 - __ addl(r21, 1); // add r21d, 1 IID5393 - __ addl(r21, 16); // add r21d, 16 IID5394 - __ addl(r21, 256); // add r21d, 256 IID5395 - __ addl(r21, 4096); // add r21d, 4096 IID5396 - __ addl(r21, 65536); // add r21d, 65536 IID5397 - __ addl(r21, 1048576); // add r21d, 1048576 IID5398 - __ addl(r21, 16777216); // add r21d, 16777216 IID5399 - __ addl(r21, 268435456); // add r21d, 268435456 IID5400 - __ addl(r22, 1); // add r22d, 1 IID5401 - __ addl(r22, 16); // add r22d, 16 IID5402 - __ addl(r22, 256); // add r22d, 256 IID5403 - __ addl(r22, 4096); // add r22d, 4096 IID5404 - __ addl(r22, 65536); // add r22d, 65536 IID5405 - __ addl(r22, 1048576); // add r22d, 1048576 IID5406 - __ addl(r22, 16777216); // add r22d, 16777216 IID5407 - __ addl(r22, 268435456); // add r22d, 268435456 IID5408 - __ addl(r23, 1); // add r23d, 1 IID5409 - __ addl(r23, 16); // add r23d, 16 IID5410 - __ addl(r23, 256); // add r23d, 256 IID5411 - __ addl(r23, 4096); // add r23d, 4096 IID5412 - __ addl(r23, 65536); // add r23d, 65536 IID5413 - __ addl(r23, 1048576); // add r23d, 1048576 IID5414 - __ addl(r23, 16777216); // add r23d, 16777216 IID5415 - __ addl(r23, 268435456); // add r23d, 268435456 IID5416 - __ addl(r24, 1); // add r24d, 1 IID5417 - __ addl(r24, 16); // add r24d, 16 IID5418 - __ addl(r24, 256); // add r24d, 256 IID5419 - __ addl(r24, 4096); // add r24d, 4096 IID5420 - __ addl(r24, 65536); // add r24d, 65536 IID5421 - __ addl(r24, 1048576); // add r24d, 1048576 IID5422 - __ addl(r24, 16777216); // add r24d, 16777216 IID5423 - __ addl(r24, 268435456); // add r24d, 268435456 IID5424 - __ addl(r25, 1); // add r25d, 1 IID5425 - __ addl(r25, 16); // add r25d, 16 IID5426 - __ addl(r25, 256); // add r25d, 256 IID5427 - __ addl(r25, 4096); // add r25d, 4096 IID5428 - __ addl(r25, 65536); // add r25d, 65536 IID5429 - __ addl(r25, 1048576); // add r25d, 1048576 IID5430 - __ addl(r25, 16777216); // add r25d, 16777216 IID5431 - __ addl(r25, 268435456); // add r25d, 268435456 IID5432 - __ addl(r26, 1); // add r26d, 1 IID5433 - __ addl(r26, 16); // add r26d, 16 IID5434 - __ addl(r26, 256); // add r26d, 256 IID5435 - __ addl(r26, 4096); // add r26d, 4096 IID5436 - __ addl(r26, 65536); // add r26d, 65536 IID5437 - __ addl(r26, 1048576); // add r26d, 1048576 IID5438 - __ addl(r26, 16777216); // add r26d, 16777216 IID5439 - __ addl(r26, 268435456); // add r26d, 268435456 IID5440 - __ addl(r27, 1); // add r27d, 1 IID5441 - __ addl(r27, 16); // add r27d, 16 IID5442 - __ addl(r27, 256); // add r27d, 256 IID5443 - __ addl(r27, 4096); // add r27d, 4096 IID5444 - __ addl(r27, 65536); // add r27d, 65536 IID5445 - __ addl(r27, 1048576); // add r27d, 1048576 IID5446 - __ addl(r27, 16777216); // add r27d, 16777216 IID5447 - __ addl(r27, 268435456); // add r27d, 268435456 IID5448 - __ addl(r28, 1); // add r28d, 1 IID5449 - __ addl(r28, 16); // add r28d, 16 IID5450 - __ addl(r28, 256); // add r28d, 256 IID5451 - __ addl(r28, 4096); // add r28d, 4096 IID5452 - __ addl(r28, 65536); // add r28d, 65536 IID5453 - __ addl(r28, 1048576); // add r28d, 1048576 IID5454 - __ addl(r28, 16777216); // add r28d, 16777216 IID5455 - __ addl(r28, 268435456); // add r28d, 268435456 IID5456 - __ addl(r29, 1); // add r29d, 1 IID5457 - __ addl(r29, 16); // add r29d, 16 IID5458 - __ addl(r29, 256); // add r29d, 256 IID5459 - __ addl(r29, 4096); // add r29d, 4096 IID5460 - __ addl(r29, 65536); // add r29d, 65536 IID5461 - __ addl(r29, 1048576); // add r29d, 1048576 IID5462 - __ addl(r29, 16777216); // add r29d, 16777216 IID5463 - __ addl(r29, 268435456); // add r29d, 268435456 IID5464 - __ addl(r30, 1); // add r30d, 1 IID5465 - __ addl(r30, 16); // add r30d, 16 IID5466 - __ addl(r30, 256); // add r30d, 256 IID5467 - __ addl(r30, 4096); // add r30d, 4096 IID5468 - __ addl(r30, 65536); // add r30d, 65536 IID5469 - __ addl(r30, 1048576); // add r30d, 1048576 IID5470 - __ addl(r30, 16777216); // add r30d, 16777216 IID5471 - __ addl(r30, 268435456); // add r30d, 268435456 IID5472 - __ addl(r31, 1); // add r31d, 1 IID5473 - __ addl(r31, 16); // add r31d, 16 IID5474 - __ addl(r31, 256); // add r31d, 256 IID5475 - __ addl(r31, 4096); // add r31d, 4096 IID5476 - __ addl(r31, 65536); // add r31d, 65536 IID5477 - __ addl(r31, 1048576); // add r31d, 1048576 IID5478 - __ addl(r31, 16777216); // add r31d, 16777216 IID5479 - __ addl(r31, 268435456); // add r31d, 268435456 IID5480 -#endif // _LP64 - __ andl(rcx, 1); // and ecx, 1 IID5481 - __ andl(rcx, 16); // and ecx, 16 IID5482 - __ andl(rcx, 256); // and ecx, 256 IID5483 - __ andl(rcx, 4096); // and ecx, 4096 IID5484 - __ andl(rcx, 65536); // and ecx, 65536 IID5485 - __ andl(rcx, 1048576); // and ecx, 1048576 IID5486 - __ andl(rcx, 16777216); // and ecx, 16777216 IID5487 - __ andl(rcx, 268435456); // and ecx, 268435456 IID5488 - __ andl(rdx, 1); // and edx, 1 IID5489 - __ andl(rdx, 16); // and edx, 16 IID5490 - __ andl(rdx, 256); // and edx, 256 IID5491 - __ andl(rdx, 4096); // and edx, 4096 IID5492 - __ andl(rdx, 65536); // and edx, 65536 IID5493 - __ andl(rdx, 1048576); // and edx, 1048576 IID5494 - __ andl(rdx, 16777216); // and edx, 16777216 IID5495 - __ andl(rdx, 268435456); // and edx, 268435456 IID5496 - __ andl(rbx, 1); // and ebx, 1 IID5497 - __ andl(rbx, 16); // and ebx, 16 IID5498 - __ andl(rbx, 256); // and ebx, 256 IID5499 - __ andl(rbx, 4096); // and ebx, 4096 IID5500 - __ andl(rbx, 65536); // and ebx, 65536 IID5501 - __ andl(rbx, 1048576); // and ebx, 1048576 IID5502 - __ andl(rbx, 16777216); // and ebx, 16777216 IID5503 - __ andl(rbx, 268435456); // and ebx, 268435456 IID5504 -#ifdef _LP64 - __ andl(r8, 1); // and r8d, 1 IID5505 - __ andl(r8, 16); // and r8d, 16 IID5506 - __ andl(r8, 256); // and r8d, 256 IID5507 - __ andl(r8, 4096); // and r8d, 4096 IID5508 - __ andl(r8, 65536); // and r8d, 65536 IID5509 - __ andl(r8, 1048576); // and r8d, 1048576 IID5510 - __ andl(r8, 16777216); // and r8d, 16777216 IID5511 - __ andl(r8, 268435456); // and r8d, 268435456 IID5512 - __ andl(r9, 1); // and r9d, 1 IID5513 - __ andl(r9, 16); // and r9d, 16 IID5514 - __ andl(r9, 256); // and r9d, 256 IID5515 - __ andl(r9, 4096); // and r9d, 4096 IID5516 - __ andl(r9, 65536); // and r9d, 65536 IID5517 - __ andl(r9, 1048576); // and r9d, 1048576 IID5518 - __ andl(r9, 16777216); // and r9d, 16777216 IID5519 - __ andl(r9, 268435456); // and r9d, 268435456 IID5520 - __ andl(r10, 1); // and r10d, 1 IID5521 - __ andl(r10, 16); // and r10d, 16 IID5522 - __ andl(r10, 256); // and r10d, 256 IID5523 - __ andl(r10, 4096); // and r10d, 4096 IID5524 - __ andl(r10, 65536); // and r10d, 65536 IID5525 - __ andl(r10, 1048576); // and r10d, 1048576 IID5526 - __ andl(r10, 16777216); // and r10d, 16777216 IID5527 - __ andl(r10, 268435456); // and r10d, 268435456 IID5528 - __ andl(r11, 1); // and r11d, 1 IID5529 - __ andl(r11, 16); // and r11d, 16 IID5530 - __ andl(r11, 256); // and r11d, 256 IID5531 - __ andl(r11, 4096); // and r11d, 4096 IID5532 - __ andl(r11, 65536); // and r11d, 65536 IID5533 - __ andl(r11, 1048576); // and r11d, 1048576 IID5534 - __ andl(r11, 16777216); // and r11d, 16777216 IID5535 - __ andl(r11, 268435456); // and r11d, 268435456 IID5536 - __ andl(r12, 1); // and r12d, 1 IID5537 - __ andl(r12, 16); // and r12d, 16 IID5538 - __ andl(r12, 256); // and r12d, 256 IID5539 - __ andl(r12, 4096); // and r12d, 4096 IID5540 - __ andl(r12, 65536); // and r12d, 65536 IID5541 - __ andl(r12, 1048576); // and r12d, 1048576 IID5542 - __ andl(r12, 16777216); // and r12d, 16777216 IID5543 - __ andl(r12, 268435456); // and r12d, 268435456 IID5544 - __ andl(r13, 1); // and r13d, 1 IID5545 - __ andl(r13, 16); // and r13d, 16 IID5546 - __ andl(r13, 256); // and r13d, 256 IID5547 - __ andl(r13, 4096); // and r13d, 4096 IID5548 - __ andl(r13, 65536); // and r13d, 65536 IID5549 - __ andl(r13, 1048576); // and r13d, 1048576 IID5550 - __ andl(r13, 16777216); // and r13d, 16777216 IID5551 - __ andl(r13, 268435456); // and r13d, 268435456 IID5552 - __ andl(r14, 1); // and r14d, 1 IID5553 - __ andl(r14, 16); // and r14d, 16 IID5554 - __ andl(r14, 256); // and r14d, 256 IID5555 - __ andl(r14, 4096); // and r14d, 4096 IID5556 - __ andl(r14, 65536); // and r14d, 65536 IID5557 - __ andl(r14, 1048576); // and r14d, 1048576 IID5558 - __ andl(r14, 16777216); // and r14d, 16777216 IID5559 - __ andl(r14, 268435456); // and r14d, 268435456 IID5560 - __ andl(r15, 1); // and r15d, 1 IID5561 - __ andl(r15, 16); // and r15d, 16 IID5562 - __ andl(r15, 256); // and r15d, 256 IID5563 - __ andl(r15, 4096); // and r15d, 4096 IID5564 - __ andl(r15, 65536); // and r15d, 65536 IID5565 - __ andl(r15, 1048576); // and r15d, 1048576 IID5566 - __ andl(r15, 16777216); // and r15d, 16777216 IID5567 - __ andl(r15, 268435456); // and r15d, 268435456 IID5568 - __ andl(r16, 1); // and r16d, 1 IID5569 - __ andl(r16, 16); // and r16d, 16 IID5570 - __ andl(r16, 256); // and r16d, 256 IID5571 - __ andl(r16, 4096); // and r16d, 4096 IID5572 - __ andl(r16, 65536); // and r16d, 65536 IID5573 - __ andl(r16, 1048576); // and r16d, 1048576 IID5574 - __ andl(r16, 16777216); // and r16d, 16777216 IID5575 - __ andl(r16, 268435456); // and r16d, 268435456 IID5576 - __ andl(r17, 1); // and r17d, 1 IID5577 - __ andl(r17, 16); // and r17d, 16 IID5578 - __ andl(r17, 256); // and r17d, 256 IID5579 - __ andl(r17, 4096); // and r17d, 4096 IID5580 - __ andl(r17, 65536); // and r17d, 65536 IID5581 - __ andl(r17, 1048576); // and r17d, 1048576 IID5582 - __ andl(r17, 16777216); // and r17d, 16777216 IID5583 - __ andl(r17, 268435456); // and r17d, 268435456 IID5584 - __ andl(r18, 1); // and r18d, 1 IID5585 - __ andl(r18, 16); // and r18d, 16 IID5586 - __ andl(r18, 256); // and r18d, 256 IID5587 - __ andl(r18, 4096); // and r18d, 4096 IID5588 - __ andl(r18, 65536); // and r18d, 65536 IID5589 - __ andl(r18, 1048576); // and r18d, 1048576 IID5590 - __ andl(r18, 16777216); // and r18d, 16777216 IID5591 - __ andl(r18, 268435456); // and r18d, 268435456 IID5592 - __ andl(r19, 1); // and r19d, 1 IID5593 - __ andl(r19, 16); // and r19d, 16 IID5594 - __ andl(r19, 256); // and r19d, 256 IID5595 - __ andl(r19, 4096); // and r19d, 4096 IID5596 - __ andl(r19, 65536); // and r19d, 65536 IID5597 - __ andl(r19, 1048576); // and r19d, 1048576 IID5598 - __ andl(r19, 16777216); // and r19d, 16777216 IID5599 - __ andl(r19, 268435456); // and r19d, 268435456 IID5600 - __ andl(r20, 1); // and r20d, 1 IID5601 - __ andl(r20, 16); // and r20d, 16 IID5602 - __ andl(r20, 256); // and r20d, 256 IID5603 - __ andl(r20, 4096); // and r20d, 4096 IID5604 - __ andl(r20, 65536); // and r20d, 65536 IID5605 - __ andl(r20, 1048576); // and r20d, 1048576 IID5606 - __ andl(r20, 16777216); // and r20d, 16777216 IID5607 - __ andl(r20, 268435456); // and r20d, 268435456 IID5608 - __ andl(r21, 1); // and r21d, 1 IID5609 - __ andl(r21, 16); // and r21d, 16 IID5610 - __ andl(r21, 256); // and r21d, 256 IID5611 - __ andl(r21, 4096); // and r21d, 4096 IID5612 - __ andl(r21, 65536); // and r21d, 65536 IID5613 - __ andl(r21, 1048576); // and r21d, 1048576 IID5614 - __ andl(r21, 16777216); // and r21d, 16777216 IID5615 - __ andl(r21, 268435456); // and r21d, 268435456 IID5616 - __ andl(r22, 1); // and r22d, 1 IID5617 - __ andl(r22, 16); // and r22d, 16 IID5618 - __ andl(r22, 256); // and r22d, 256 IID5619 - __ andl(r22, 4096); // and r22d, 4096 IID5620 - __ andl(r22, 65536); // and r22d, 65536 IID5621 - __ andl(r22, 1048576); // and r22d, 1048576 IID5622 - __ andl(r22, 16777216); // and r22d, 16777216 IID5623 - __ andl(r22, 268435456); // and r22d, 268435456 IID5624 - __ andl(r23, 1); // and r23d, 1 IID5625 - __ andl(r23, 16); // and r23d, 16 IID5626 - __ andl(r23, 256); // and r23d, 256 IID5627 - __ andl(r23, 4096); // and r23d, 4096 IID5628 - __ andl(r23, 65536); // and r23d, 65536 IID5629 - __ andl(r23, 1048576); // and r23d, 1048576 IID5630 - __ andl(r23, 16777216); // and r23d, 16777216 IID5631 - __ andl(r23, 268435456); // and r23d, 268435456 IID5632 - __ andl(r24, 1); // and r24d, 1 IID5633 - __ andl(r24, 16); // and r24d, 16 IID5634 - __ andl(r24, 256); // and r24d, 256 IID5635 - __ andl(r24, 4096); // and r24d, 4096 IID5636 - __ andl(r24, 65536); // and r24d, 65536 IID5637 - __ andl(r24, 1048576); // and r24d, 1048576 IID5638 - __ andl(r24, 16777216); // and r24d, 16777216 IID5639 - __ andl(r24, 268435456); // and r24d, 268435456 IID5640 - __ andl(r25, 1); // and r25d, 1 IID5641 - __ andl(r25, 16); // and r25d, 16 IID5642 - __ andl(r25, 256); // and r25d, 256 IID5643 - __ andl(r25, 4096); // and r25d, 4096 IID5644 - __ andl(r25, 65536); // and r25d, 65536 IID5645 - __ andl(r25, 1048576); // and r25d, 1048576 IID5646 - __ andl(r25, 16777216); // and r25d, 16777216 IID5647 - __ andl(r25, 268435456); // and r25d, 268435456 IID5648 - __ andl(r26, 1); // and r26d, 1 IID5649 - __ andl(r26, 16); // and r26d, 16 IID5650 - __ andl(r26, 256); // and r26d, 256 IID5651 - __ andl(r26, 4096); // and r26d, 4096 IID5652 - __ andl(r26, 65536); // and r26d, 65536 IID5653 - __ andl(r26, 1048576); // and r26d, 1048576 IID5654 - __ andl(r26, 16777216); // and r26d, 16777216 IID5655 - __ andl(r26, 268435456); // and r26d, 268435456 IID5656 - __ andl(r27, 1); // and r27d, 1 IID5657 - __ andl(r27, 16); // and r27d, 16 IID5658 - __ andl(r27, 256); // and r27d, 256 IID5659 - __ andl(r27, 4096); // and r27d, 4096 IID5660 - __ andl(r27, 65536); // and r27d, 65536 IID5661 - __ andl(r27, 1048576); // and r27d, 1048576 IID5662 - __ andl(r27, 16777216); // and r27d, 16777216 IID5663 - __ andl(r27, 268435456); // and r27d, 268435456 IID5664 - __ andl(r28, 1); // and r28d, 1 IID5665 - __ andl(r28, 16); // and r28d, 16 IID5666 - __ andl(r28, 256); // and r28d, 256 IID5667 - __ andl(r28, 4096); // and r28d, 4096 IID5668 - __ andl(r28, 65536); // and r28d, 65536 IID5669 - __ andl(r28, 1048576); // and r28d, 1048576 IID5670 - __ andl(r28, 16777216); // and r28d, 16777216 IID5671 - __ andl(r28, 268435456); // and r28d, 268435456 IID5672 - __ andl(r29, 1); // and r29d, 1 IID5673 - __ andl(r29, 16); // and r29d, 16 IID5674 - __ andl(r29, 256); // and r29d, 256 IID5675 - __ andl(r29, 4096); // and r29d, 4096 IID5676 - __ andl(r29, 65536); // and r29d, 65536 IID5677 - __ andl(r29, 1048576); // and r29d, 1048576 IID5678 - __ andl(r29, 16777216); // and r29d, 16777216 IID5679 - __ andl(r29, 268435456); // and r29d, 268435456 IID5680 - __ andl(r30, 1); // and r30d, 1 IID5681 - __ andl(r30, 16); // and r30d, 16 IID5682 - __ andl(r30, 256); // and r30d, 256 IID5683 - __ andl(r30, 4096); // and r30d, 4096 IID5684 - __ andl(r30, 65536); // and r30d, 65536 IID5685 - __ andl(r30, 1048576); // and r30d, 1048576 IID5686 - __ andl(r30, 16777216); // and r30d, 16777216 IID5687 - __ andl(r30, 268435456); // and r30d, 268435456 IID5688 - __ andl(r31, 1); // and r31d, 1 IID5689 - __ andl(r31, 16); // and r31d, 16 IID5690 - __ andl(r31, 256); // and r31d, 256 IID5691 - __ andl(r31, 4096); // and r31d, 4096 IID5692 - __ andl(r31, 65536); // and r31d, 65536 IID5693 - __ andl(r31, 1048576); // and r31d, 1048576 IID5694 - __ andl(r31, 16777216); // and r31d, 16777216 IID5695 - __ andl(r31, 268435456); // and r31d, 268435456 IID5696 -#endif // _LP64 - __ adcl(rcx, 1); // adc ecx, 1 IID5697 - __ adcl(rcx, 16); // adc ecx, 16 IID5698 - __ adcl(rcx, 256); // adc ecx, 256 IID5699 - __ adcl(rcx, 4096); // adc ecx, 4096 IID5700 - __ adcl(rcx, 65536); // adc ecx, 65536 IID5701 - __ adcl(rcx, 1048576); // adc ecx, 1048576 IID5702 - __ adcl(rcx, 16777216); // adc ecx, 16777216 IID5703 - __ adcl(rcx, 268435456); // adc ecx, 268435456 IID5704 - __ adcl(rdx, 1); // adc edx, 1 IID5705 - __ adcl(rdx, 16); // adc edx, 16 IID5706 - __ adcl(rdx, 256); // adc edx, 256 IID5707 - __ adcl(rdx, 4096); // adc edx, 4096 IID5708 - __ adcl(rdx, 65536); // adc edx, 65536 IID5709 - __ adcl(rdx, 1048576); // adc edx, 1048576 IID5710 - __ adcl(rdx, 16777216); // adc edx, 16777216 IID5711 - __ adcl(rdx, 268435456); // adc edx, 268435456 IID5712 - __ adcl(rbx, 1); // adc ebx, 1 IID5713 - __ adcl(rbx, 16); // adc ebx, 16 IID5714 - __ adcl(rbx, 256); // adc ebx, 256 IID5715 - __ adcl(rbx, 4096); // adc ebx, 4096 IID5716 - __ adcl(rbx, 65536); // adc ebx, 65536 IID5717 - __ adcl(rbx, 1048576); // adc ebx, 1048576 IID5718 - __ adcl(rbx, 16777216); // adc ebx, 16777216 IID5719 - __ adcl(rbx, 268435456); // adc ebx, 268435456 IID5720 -#ifdef _LP64 - __ adcl(r8, 1); // adc r8d, 1 IID5721 - __ adcl(r8, 16); // adc r8d, 16 IID5722 - __ adcl(r8, 256); // adc r8d, 256 IID5723 - __ adcl(r8, 4096); // adc r8d, 4096 IID5724 - __ adcl(r8, 65536); // adc r8d, 65536 IID5725 - __ adcl(r8, 1048576); // adc r8d, 1048576 IID5726 - __ adcl(r8, 16777216); // adc r8d, 16777216 IID5727 - __ adcl(r8, 268435456); // adc r8d, 268435456 IID5728 - __ adcl(r9, 1); // adc r9d, 1 IID5729 - __ adcl(r9, 16); // adc r9d, 16 IID5730 - __ adcl(r9, 256); // adc r9d, 256 IID5731 - __ adcl(r9, 4096); // adc r9d, 4096 IID5732 - __ adcl(r9, 65536); // adc r9d, 65536 IID5733 - __ adcl(r9, 1048576); // adc r9d, 1048576 IID5734 - __ adcl(r9, 16777216); // adc r9d, 16777216 IID5735 - __ adcl(r9, 268435456); // adc r9d, 268435456 IID5736 - __ adcl(r10, 1); // adc r10d, 1 IID5737 - __ adcl(r10, 16); // adc r10d, 16 IID5738 - __ adcl(r10, 256); // adc r10d, 256 IID5739 - __ adcl(r10, 4096); // adc r10d, 4096 IID5740 - __ adcl(r10, 65536); // adc r10d, 65536 IID5741 - __ adcl(r10, 1048576); // adc r10d, 1048576 IID5742 - __ adcl(r10, 16777216); // adc r10d, 16777216 IID5743 - __ adcl(r10, 268435456); // adc r10d, 268435456 IID5744 - __ adcl(r11, 1); // adc r11d, 1 IID5745 - __ adcl(r11, 16); // adc r11d, 16 IID5746 - __ adcl(r11, 256); // adc r11d, 256 IID5747 - __ adcl(r11, 4096); // adc r11d, 4096 IID5748 - __ adcl(r11, 65536); // adc r11d, 65536 IID5749 - __ adcl(r11, 1048576); // adc r11d, 1048576 IID5750 - __ adcl(r11, 16777216); // adc r11d, 16777216 IID5751 - __ adcl(r11, 268435456); // adc r11d, 268435456 IID5752 - __ adcl(r12, 1); // adc r12d, 1 IID5753 - __ adcl(r12, 16); // adc r12d, 16 IID5754 - __ adcl(r12, 256); // adc r12d, 256 IID5755 - __ adcl(r12, 4096); // adc r12d, 4096 IID5756 - __ adcl(r12, 65536); // adc r12d, 65536 IID5757 - __ adcl(r12, 1048576); // adc r12d, 1048576 IID5758 - __ adcl(r12, 16777216); // adc r12d, 16777216 IID5759 - __ adcl(r12, 268435456); // adc r12d, 268435456 IID5760 - __ adcl(r13, 1); // adc r13d, 1 IID5761 - __ adcl(r13, 16); // adc r13d, 16 IID5762 - __ adcl(r13, 256); // adc r13d, 256 IID5763 - __ adcl(r13, 4096); // adc r13d, 4096 IID5764 - __ adcl(r13, 65536); // adc r13d, 65536 IID5765 - __ adcl(r13, 1048576); // adc r13d, 1048576 IID5766 - __ adcl(r13, 16777216); // adc r13d, 16777216 IID5767 - __ adcl(r13, 268435456); // adc r13d, 268435456 IID5768 - __ adcl(r14, 1); // adc r14d, 1 IID5769 - __ adcl(r14, 16); // adc r14d, 16 IID5770 - __ adcl(r14, 256); // adc r14d, 256 IID5771 - __ adcl(r14, 4096); // adc r14d, 4096 IID5772 - __ adcl(r14, 65536); // adc r14d, 65536 IID5773 - __ adcl(r14, 1048576); // adc r14d, 1048576 IID5774 - __ adcl(r14, 16777216); // adc r14d, 16777216 IID5775 - __ adcl(r14, 268435456); // adc r14d, 268435456 IID5776 - __ adcl(r15, 1); // adc r15d, 1 IID5777 - __ adcl(r15, 16); // adc r15d, 16 IID5778 - __ adcl(r15, 256); // adc r15d, 256 IID5779 - __ adcl(r15, 4096); // adc r15d, 4096 IID5780 - __ adcl(r15, 65536); // adc r15d, 65536 IID5781 - __ adcl(r15, 1048576); // adc r15d, 1048576 IID5782 - __ adcl(r15, 16777216); // adc r15d, 16777216 IID5783 - __ adcl(r15, 268435456); // adc r15d, 268435456 IID5784 - __ adcl(r16, 1); // adc r16d, 1 IID5785 - __ adcl(r16, 16); // adc r16d, 16 IID5786 - __ adcl(r16, 256); // adc r16d, 256 IID5787 - __ adcl(r16, 4096); // adc r16d, 4096 IID5788 - __ adcl(r16, 65536); // adc r16d, 65536 IID5789 - __ adcl(r16, 1048576); // adc r16d, 1048576 IID5790 - __ adcl(r16, 16777216); // adc r16d, 16777216 IID5791 - __ adcl(r16, 268435456); // adc r16d, 268435456 IID5792 - __ adcl(r17, 1); // adc r17d, 1 IID5793 - __ adcl(r17, 16); // adc r17d, 16 IID5794 - __ adcl(r17, 256); // adc r17d, 256 IID5795 - __ adcl(r17, 4096); // adc r17d, 4096 IID5796 - __ adcl(r17, 65536); // adc r17d, 65536 IID5797 - __ adcl(r17, 1048576); // adc r17d, 1048576 IID5798 - __ adcl(r17, 16777216); // adc r17d, 16777216 IID5799 - __ adcl(r17, 268435456); // adc r17d, 268435456 IID5800 - __ adcl(r18, 1); // adc r18d, 1 IID5801 - __ adcl(r18, 16); // adc r18d, 16 IID5802 - __ adcl(r18, 256); // adc r18d, 256 IID5803 - __ adcl(r18, 4096); // adc r18d, 4096 IID5804 - __ adcl(r18, 65536); // adc r18d, 65536 IID5805 - __ adcl(r18, 1048576); // adc r18d, 1048576 IID5806 - __ adcl(r18, 16777216); // adc r18d, 16777216 IID5807 - __ adcl(r18, 268435456); // adc r18d, 268435456 IID5808 - __ adcl(r19, 1); // adc r19d, 1 IID5809 - __ adcl(r19, 16); // adc r19d, 16 IID5810 - __ adcl(r19, 256); // adc r19d, 256 IID5811 - __ adcl(r19, 4096); // adc r19d, 4096 IID5812 - __ adcl(r19, 65536); // adc r19d, 65536 IID5813 - __ adcl(r19, 1048576); // adc r19d, 1048576 IID5814 - __ adcl(r19, 16777216); // adc r19d, 16777216 IID5815 - __ adcl(r19, 268435456); // adc r19d, 268435456 IID5816 - __ adcl(r20, 1); // adc r20d, 1 IID5817 - __ adcl(r20, 16); // adc r20d, 16 IID5818 - __ adcl(r20, 256); // adc r20d, 256 IID5819 - __ adcl(r20, 4096); // adc r20d, 4096 IID5820 - __ adcl(r20, 65536); // adc r20d, 65536 IID5821 - __ adcl(r20, 1048576); // adc r20d, 1048576 IID5822 - __ adcl(r20, 16777216); // adc r20d, 16777216 IID5823 - __ adcl(r20, 268435456); // adc r20d, 268435456 IID5824 - __ adcl(r21, 1); // adc r21d, 1 IID5825 - __ adcl(r21, 16); // adc r21d, 16 IID5826 - __ adcl(r21, 256); // adc r21d, 256 IID5827 - __ adcl(r21, 4096); // adc r21d, 4096 IID5828 - __ adcl(r21, 65536); // adc r21d, 65536 IID5829 - __ adcl(r21, 1048576); // adc r21d, 1048576 IID5830 - __ adcl(r21, 16777216); // adc r21d, 16777216 IID5831 - __ adcl(r21, 268435456); // adc r21d, 268435456 IID5832 - __ adcl(r22, 1); // adc r22d, 1 IID5833 - __ adcl(r22, 16); // adc r22d, 16 IID5834 - __ adcl(r22, 256); // adc r22d, 256 IID5835 - __ adcl(r22, 4096); // adc r22d, 4096 IID5836 - __ adcl(r22, 65536); // adc r22d, 65536 IID5837 - __ adcl(r22, 1048576); // adc r22d, 1048576 IID5838 - __ adcl(r22, 16777216); // adc r22d, 16777216 IID5839 - __ adcl(r22, 268435456); // adc r22d, 268435456 IID5840 - __ adcl(r23, 1); // adc r23d, 1 IID5841 - __ adcl(r23, 16); // adc r23d, 16 IID5842 - __ adcl(r23, 256); // adc r23d, 256 IID5843 - __ adcl(r23, 4096); // adc r23d, 4096 IID5844 - __ adcl(r23, 65536); // adc r23d, 65536 IID5845 - __ adcl(r23, 1048576); // adc r23d, 1048576 IID5846 - __ adcl(r23, 16777216); // adc r23d, 16777216 IID5847 - __ adcl(r23, 268435456); // adc r23d, 268435456 IID5848 - __ adcl(r24, 1); // adc r24d, 1 IID5849 - __ adcl(r24, 16); // adc r24d, 16 IID5850 - __ adcl(r24, 256); // adc r24d, 256 IID5851 - __ adcl(r24, 4096); // adc r24d, 4096 IID5852 - __ adcl(r24, 65536); // adc r24d, 65536 IID5853 - __ adcl(r24, 1048576); // adc r24d, 1048576 IID5854 - __ adcl(r24, 16777216); // adc r24d, 16777216 IID5855 - __ adcl(r24, 268435456); // adc r24d, 268435456 IID5856 - __ adcl(r25, 1); // adc r25d, 1 IID5857 - __ adcl(r25, 16); // adc r25d, 16 IID5858 - __ adcl(r25, 256); // adc r25d, 256 IID5859 - __ adcl(r25, 4096); // adc r25d, 4096 IID5860 - __ adcl(r25, 65536); // adc r25d, 65536 IID5861 - __ adcl(r25, 1048576); // adc r25d, 1048576 IID5862 - __ adcl(r25, 16777216); // adc r25d, 16777216 IID5863 - __ adcl(r25, 268435456); // adc r25d, 268435456 IID5864 - __ adcl(r26, 1); // adc r26d, 1 IID5865 - __ adcl(r26, 16); // adc r26d, 16 IID5866 - __ adcl(r26, 256); // adc r26d, 256 IID5867 - __ adcl(r26, 4096); // adc r26d, 4096 IID5868 - __ adcl(r26, 65536); // adc r26d, 65536 IID5869 - __ adcl(r26, 1048576); // adc r26d, 1048576 IID5870 - __ adcl(r26, 16777216); // adc r26d, 16777216 IID5871 - __ adcl(r26, 268435456); // adc r26d, 268435456 IID5872 - __ adcl(r27, 1); // adc r27d, 1 IID5873 - __ adcl(r27, 16); // adc r27d, 16 IID5874 - __ adcl(r27, 256); // adc r27d, 256 IID5875 - __ adcl(r27, 4096); // adc r27d, 4096 IID5876 - __ adcl(r27, 65536); // adc r27d, 65536 IID5877 - __ adcl(r27, 1048576); // adc r27d, 1048576 IID5878 - __ adcl(r27, 16777216); // adc r27d, 16777216 IID5879 - __ adcl(r27, 268435456); // adc r27d, 268435456 IID5880 - __ adcl(r28, 1); // adc r28d, 1 IID5881 - __ adcl(r28, 16); // adc r28d, 16 IID5882 - __ adcl(r28, 256); // adc r28d, 256 IID5883 - __ adcl(r28, 4096); // adc r28d, 4096 IID5884 - __ adcl(r28, 65536); // adc r28d, 65536 IID5885 - __ adcl(r28, 1048576); // adc r28d, 1048576 IID5886 - __ adcl(r28, 16777216); // adc r28d, 16777216 IID5887 - __ adcl(r28, 268435456); // adc r28d, 268435456 IID5888 - __ adcl(r29, 1); // adc r29d, 1 IID5889 - __ adcl(r29, 16); // adc r29d, 16 IID5890 - __ adcl(r29, 256); // adc r29d, 256 IID5891 - __ adcl(r29, 4096); // adc r29d, 4096 IID5892 - __ adcl(r29, 65536); // adc r29d, 65536 IID5893 - __ adcl(r29, 1048576); // adc r29d, 1048576 IID5894 - __ adcl(r29, 16777216); // adc r29d, 16777216 IID5895 - __ adcl(r29, 268435456); // adc r29d, 268435456 IID5896 - __ adcl(r30, 1); // adc r30d, 1 IID5897 - __ adcl(r30, 16); // adc r30d, 16 IID5898 - __ adcl(r30, 256); // adc r30d, 256 IID5899 - __ adcl(r30, 4096); // adc r30d, 4096 IID5900 - __ adcl(r30, 65536); // adc r30d, 65536 IID5901 - __ adcl(r30, 1048576); // adc r30d, 1048576 IID5902 - __ adcl(r30, 16777216); // adc r30d, 16777216 IID5903 - __ adcl(r30, 268435456); // adc r30d, 268435456 IID5904 - __ adcl(r31, 1); // adc r31d, 1 IID5905 - __ adcl(r31, 16); // adc r31d, 16 IID5906 - __ adcl(r31, 256); // adc r31d, 256 IID5907 - __ adcl(r31, 4096); // adc r31d, 4096 IID5908 - __ adcl(r31, 65536); // adc r31d, 65536 IID5909 - __ adcl(r31, 1048576); // adc r31d, 1048576 IID5910 - __ adcl(r31, 16777216); // adc r31d, 16777216 IID5911 - __ adcl(r31, 268435456); // adc r31d, 268435456 IID5912 -#endif // _LP64 - __ cmpb(rcx, 1); // cmp cl, 1 IID5913 - __ cmpb(rcx, 4); // cmp cl, 4 IID5914 - __ cmpb(rcx, 16); // cmp cl, 16 IID5915 - __ cmpb(rcx, 64); // cmp cl, 64 IID5916 - __ cmpb(rdx, 1); // cmp dl, 1 IID5917 - __ cmpb(rdx, 4); // cmp dl, 4 IID5918 - __ cmpb(rdx, 16); // cmp dl, 16 IID5919 - __ cmpb(rdx, 64); // cmp dl, 64 IID5920 - __ cmpb(rbx, 1); // cmp bl, 1 IID5921 - __ cmpb(rbx, 4); // cmp bl, 4 IID5922 - __ cmpb(rbx, 16); // cmp bl, 16 IID5923 - __ cmpb(rbx, 64); // cmp bl, 64 IID5924 -#ifdef _LP64 - __ cmpb(r8, 1); // cmp r8b, 1 IID5925 - __ cmpb(r8, 4); // cmp r8b, 4 IID5926 - __ cmpb(r8, 16); // cmp r8b, 16 IID5927 - __ cmpb(r8, 64); // cmp r8b, 64 IID5928 - __ cmpb(r9, 1); // cmp r9b, 1 IID5929 - __ cmpb(r9, 4); // cmp r9b, 4 IID5930 - __ cmpb(r9, 16); // cmp r9b, 16 IID5931 - __ cmpb(r9, 64); // cmp r9b, 64 IID5932 - __ cmpb(r10, 1); // cmp r10b, 1 IID5933 - __ cmpb(r10, 4); // cmp r10b, 4 IID5934 - __ cmpb(r10, 16); // cmp r10b, 16 IID5935 - __ cmpb(r10, 64); // cmp r10b, 64 IID5936 - __ cmpb(r11, 1); // cmp r11b, 1 IID5937 - __ cmpb(r11, 4); // cmp r11b, 4 IID5938 - __ cmpb(r11, 16); // cmp r11b, 16 IID5939 - __ cmpb(r11, 64); // cmp r11b, 64 IID5940 - __ cmpb(r12, 1); // cmp r12b, 1 IID5941 - __ cmpb(r12, 4); // cmp r12b, 4 IID5942 - __ cmpb(r12, 16); // cmp r12b, 16 IID5943 - __ cmpb(r12, 64); // cmp r12b, 64 IID5944 - __ cmpb(r13, 1); // cmp r13b, 1 IID5945 - __ cmpb(r13, 4); // cmp r13b, 4 IID5946 - __ cmpb(r13, 16); // cmp r13b, 16 IID5947 - __ cmpb(r13, 64); // cmp r13b, 64 IID5948 - __ cmpb(r14, 1); // cmp r14b, 1 IID5949 - __ cmpb(r14, 4); // cmp r14b, 4 IID5950 - __ cmpb(r14, 16); // cmp r14b, 16 IID5951 - __ cmpb(r14, 64); // cmp r14b, 64 IID5952 - __ cmpb(r15, 1); // cmp r15b, 1 IID5953 - __ cmpb(r15, 4); // cmp r15b, 4 IID5954 - __ cmpb(r15, 16); // cmp r15b, 16 IID5955 - __ cmpb(r15, 64); // cmp r15b, 64 IID5956 - __ cmpb(r16, 1); // cmp r16b, 1 IID5957 - __ cmpb(r16, 4); // cmp r16b, 4 IID5958 - __ cmpb(r16, 16); // cmp r16b, 16 IID5959 - __ cmpb(r16, 64); // cmp r16b, 64 IID5960 - __ cmpb(r17, 1); // cmp r17b, 1 IID5961 - __ cmpb(r17, 4); // cmp r17b, 4 IID5962 - __ cmpb(r17, 16); // cmp r17b, 16 IID5963 - __ cmpb(r17, 64); // cmp r17b, 64 IID5964 - __ cmpb(r18, 1); // cmp r18b, 1 IID5965 - __ cmpb(r18, 4); // cmp r18b, 4 IID5966 - __ cmpb(r18, 16); // cmp r18b, 16 IID5967 - __ cmpb(r18, 64); // cmp r18b, 64 IID5968 - __ cmpb(r19, 1); // cmp r19b, 1 IID5969 - __ cmpb(r19, 4); // cmp r19b, 4 IID5970 - __ cmpb(r19, 16); // cmp r19b, 16 IID5971 - __ cmpb(r19, 64); // cmp r19b, 64 IID5972 - __ cmpb(r20, 1); // cmp r20b, 1 IID5973 - __ cmpb(r20, 4); // cmp r20b, 4 IID5974 - __ cmpb(r20, 16); // cmp r20b, 16 IID5975 - __ cmpb(r20, 64); // cmp r20b, 64 IID5976 - __ cmpb(r21, 1); // cmp r21b, 1 IID5977 - __ cmpb(r21, 4); // cmp r21b, 4 IID5978 - __ cmpb(r21, 16); // cmp r21b, 16 IID5979 - __ cmpb(r21, 64); // cmp r21b, 64 IID5980 - __ cmpb(r22, 1); // cmp r22b, 1 IID5981 - __ cmpb(r22, 4); // cmp r22b, 4 IID5982 - __ cmpb(r22, 16); // cmp r22b, 16 IID5983 - __ cmpb(r22, 64); // cmp r22b, 64 IID5984 - __ cmpb(r23, 1); // cmp r23b, 1 IID5985 - __ cmpb(r23, 4); // cmp r23b, 4 IID5986 - __ cmpb(r23, 16); // cmp r23b, 16 IID5987 - __ cmpb(r23, 64); // cmp r23b, 64 IID5988 - __ cmpb(r24, 1); // cmp r24b, 1 IID5989 - __ cmpb(r24, 4); // cmp r24b, 4 IID5990 - __ cmpb(r24, 16); // cmp r24b, 16 IID5991 - __ cmpb(r24, 64); // cmp r24b, 64 IID5992 - __ cmpb(r25, 1); // cmp r25b, 1 IID5993 - __ cmpb(r25, 4); // cmp r25b, 4 IID5994 - __ cmpb(r25, 16); // cmp r25b, 16 IID5995 - __ cmpb(r25, 64); // cmp r25b, 64 IID5996 - __ cmpb(r26, 1); // cmp r26b, 1 IID5997 - __ cmpb(r26, 4); // cmp r26b, 4 IID5998 - __ cmpb(r26, 16); // cmp r26b, 16 IID5999 - __ cmpb(r26, 64); // cmp r26b, 64 IID6000 - __ cmpb(r27, 1); // cmp r27b, 1 IID6001 - __ cmpb(r27, 4); // cmp r27b, 4 IID6002 - __ cmpb(r27, 16); // cmp r27b, 16 IID6003 - __ cmpb(r27, 64); // cmp r27b, 64 IID6004 - __ cmpb(r28, 1); // cmp r28b, 1 IID6005 - __ cmpb(r28, 4); // cmp r28b, 4 IID6006 - __ cmpb(r28, 16); // cmp r28b, 16 IID6007 - __ cmpb(r28, 64); // cmp r28b, 64 IID6008 - __ cmpb(r29, 1); // cmp r29b, 1 IID6009 - __ cmpb(r29, 4); // cmp r29b, 4 IID6010 - __ cmpb(r29, 16); // cmp r29b, 16 IID6011 - __ cmpb(r29, 64); // cmp r29b, 64 IID6012 - __ cmpb(r30, 1); // cmp r30b, 1 IID6013 - __ cmpb(r30, 4); // cmp r30b, 4 IID6014 - __ cmpb(r30, 16); // cmp r30b, 16 IID6015 - __ cmpb(r30, 64); // cmp r30b, 64 IID6016 - __ cmpb(r31, 1); // cmp r31b, 1 IID6017 - __ cmpb(r31, 4); // cmp r31b, 4 IID6018 - __ cmpb(r31, 16); // cmp r31b, 16 IID6019 - __ cmpb(r31, 64); // cmp r31b, 64 IID6020 -#endif // _LP64 - __ cmpl(rcx, 1); // cmp ecx, 1 IID6021 - __ cmpl(rcx, 16); // cmp ecx, 16 IID6022 - __ cmpl(rcx, 256); // cmp ecx, 256 IID6023 - __ cmpl(rcx, 4096); // cmp ecx, 4096 IID6024 - __ cmpl(rcx, 65536); // cmp ecx, 65536 IID6025 - __ cmpl(rcx, 1048576); // cmp ecx, 1048576 IID6026 - __ cmpl(rcx, 16777216); // cmp ecx, 16777216 IID6027 - __ cmpl(rcx, 268435456); // cmp ecx, 268435456 IID6028 - __ cmpl(rdx, 1); // cmp edx, 1 IID6029 - __ cmpl(rdx, 16); // cmp edx, 16 IID6030 - __ cmpl(rdx, 256); // cmp edx, 256 IID6031 - __ cmpl(rdx, 4096); // cmp edx, 4096 IID6032 - __ cmpl(rdx, 65536); // cmp edx, 65536 IID6033 - __ cmpl(rdx, 1048576); // cmp edx, 1048576 IID6034 - __ cmpl(rdx, 16777216); // cmp edx, 16777216 IID6035 - __ cmpl(rdx, 268435456); // cmp edx, 268435456 IID6036 - __ cmpl(rbx, 1); // cmp ebx, 1 IID6037 - __ cmpl(rbx, 16); // cmp ebx, 16 IID6038 - __ cmpl(rbx, 256); // cmp ebx, 256 IID6039 - __ cmpl(rbx, 4096); // cmp ebx, 4096 IID6040 - __ cmpl(rbx, 65536); // cmp ebx, 65536 IID6041 - __ cmpl(rbx, 1048576); // cmp ebx, 1048576 IID6042 - __ cmpl(rbx, 16777216); // cmp ebx, 16777216 IID6043 - __ cmpl(rbx, 268435456); // cmp ebx, 268435456 IID6044 -#ifdef _LP64 - __ cmpl(r8, 1); // cmp r8d, 1 IID6045 - __ cmpl(r8, 16); // cmp r8d, 16 IID6046 - __ cmpl(r8, 256); // cmp r8d, 256 IID6047 - __ cmpl(r8, 4096); // cmp r8d, 4096 IID6048 - __ cmpl(r8, 65536); // cmp r8d, 65536 IID6049 - __ cmpl(r8, 1048576); // cmp r8d, 1048576 IID6050 - __ cmpl(r8, 16777216); // cmp r8d, 16777216 IID6051 - __ cmpl(r8, 268435456); // cmp r8d, 268435456 IID6052 - __ cmpl(r9, 1); // cmp r9d, 1 IID6053 - __ cmpl(r9, 16); // cmp r9d, 16 IID6054 - __ cmpl(r9, 256); // cmp r9d, 256 IID6055 - __ cmpl(r9, 4096); // cmp r9d, 4096 IID6056 - __ cmpl(r9, 65536); // cmp r9d, 65536 IID6057 - __ cmpl(r9, 1048576); // cmp r9d, 1048576 IID6058 - __ cmpl(r9, 16777216); // cmp r9d, 16777216 IID6059 - __ cmpl(r9, 268435456); // cmp r9d, 268435456 IID6060 - __ cmpl(r10, 1); // cmp r10d, 1 IID6061 - __ cmpl(r10, 16); // cmp r10d, 16 IID6062 - __ cmpl(r10, 256); // cmp r10d, 256 IID6063 - __ cmpl(r10, 4096); // cmp r10d, 4096 IID6064 - __ cmpl(r10, 65536); // cmp r10d, 65536 IID6065 - __ cmpl(r10, 1048576); // cmp r10d, 1048576 IID6066 - __ cmpl(r10, 16777216); // cmp r10d, 16777216 IID6067 - __ cmpl(r10, 268435456); // cmp r10d, 268435456 IID6068 - __ cmpl(r11, 1); // cmp r11d, 1 IID6069 - __ cmpl(r11, 16); // cmp r11d, 16 IID6070 - __ cmpl(r11, 256); // cmp r11d, 256 IID6071 - __ cmpl(r11, 4096); // cmp r11d, 4096 IID6072 - __ cmpl(r11, 65536); // cmp r11d, 65536 IID6073 - __ cmpl(r11, 1048576); // cmp r11d, 1048576 IID6074 - __ cmpl(r11, 16777216); // cmp r11d, 16777216 IID6075 - __ cmpl(r11, 268435456); // cmp r11d, 268435456 IID6076 - __ cmpl(r12, 1); // cmp r12d, 1 IID6077 - __ cmpl(r12, 16); // cmp r12d, 16 IID6078 - __ cmpl(r12, 256); // cmp r12d, 256 IID6079 - __ cmpl(r12, 4096); // cmp r12d, 4096 IID6080 - __ cmpl(r12, 65536); // cmp r12d, 65536 IID6081 - __ cmpl(r12, 1048576); // cmp r12d, 1048576 IID6082 - __ cmpl(r12, 16777216); // cmp r12d, 16777216 IID6083 - __ cmpl(r12, 268435456); // cmp r12d, 268435456 IID6084 - __ cmpl(r13, 1); // cmp r13d, 1 IID6085 - __ cmpl(r13, 16); // cmp r13d, 16 IID6086 - __ cmpl(r13, 256); // cmp r13d, 256 IID6087 - __ cmpl(r13, 4096); // cmp r13d, 4096 IID6088 - __ cmpl(r13, 65536); // cmp r13d, 65536 IID6089 - __ cmpl(r13, 1048576); // cmp r13d, 1048576 IID6090 - __ cmpl(r13, 16777216); // cmp r13d, 16777216 IID6091 - __ cmpl(r13, 268435456); // cmp r13d, 268435456 IID6092 - __ cmpl(r14, 1); // cmp r14d, 1 IID6093 - __ cmpl(r14, 16); // cmp r14d, 16 IID6094 - __ cmpl(r14, 256); // cmp r14d, 256 IID6095 - __ cmpl(r14, 4096); // cmp r14d, 4096 IID6096 - __ cmpl(r14, 65536); // cmp r14d, 65536 IID6097 - __ cmpl(r14, 1048576); // cmp r14d, 1048576 IID6098 - __ cmpl(r14, 16777216); // cmp r14d, 16777216 IID6099 - __ cmpl(r14, 268435456); // cmp r14d, 268435456 IID6100 - __ cmpl(r15, 1); // cmp r15d, 1 IID6101 - __ cmpl(r15, 16); // cmp r15d, 16 IID6102 - __ cmpl(r15, 256); // cmp r15d, 256 IID6103 - __ cmpl(r15, 4096); // cmp r15d, 4096 IID6104 - __ cmpl(r15, 65536); // cmp r15d, 65536 IID6105 - __ cmpl(r15, 1048576); // cmp r15d, 1048576 IID6106 - __ cmpl(r15, 16777216); // cmp r15d, 16777216 IID6107 - __ cmpl(r15, 268435456); // cmp r15d, 268435456 IID6108 - __ cmpl(r16, 1); // cmp r16d, 1 IID6109 - __ cmpl(r16, 16); // cmp r16d, 16 IID6110 - __ cmpl(r16, 256); // cmp r16d, 256 IID6111 - __ cmpl(r16, 4096); // cmp r16d, 4096 IID6112 - __ cmpl(r16, 65536); // cmp r16d, 65536 IID6113 - __ cmpl(r16, 1048576); // cmp r16d, 1048576 IID6114 - __ cmpl(r16, 16777216); // cmp r16d, 16777216 IID6115 - __ cmpl(r16, 268435456); // cmp r16d, 268435456 IID6116 - __ cmpl(r17, 1); // cmp r17d, 1 IID6117 - __ cmpl(r17, 16); // cmp r17d, 16 IID6118 - __ cmpl(r17, 256); // cmp r17d, 256 IID6119 - __ cmpl(r17, 4096); // cmp r17d, 4096 IID6120 - __ cmpl(r17, 65536); // cmp r17d, 65536 IID6121 - __ cmpl(r17, 1048576); // cmp r17d, 1048576 IID6122 - __ cmpl(r17, 16777216); // cmp r17d, 16777216 IID6123 - __ cmpl(r17, 268435456); // cmp r17d, 268435456 IID6124 - __ cmpl(r18, 1); // cmp r18d, 1 IID6125 - __ cmpl(r18, 16); // cmp r18d, 16 IID6126 - __ cmpl(r18, 256); // cmp r18d, 256 IID6127 - __ cmpl(r18, 4096); // cmp r18d, 4096 IID6128 - __ cmpl(r18, 65536); // cmp r18d, 65536 IID6129 - __ cmpl(r18, 1048576); // cmp r18d, 1048576 IID6130 - __ cmpl(r18, 16777216); // cmp r18d, 16777216 IID6131 - __ cmpl(r18, 268435456); // cmp r18d, 268435456 IID6132 - __ cmpl(r19, 1); // cmp r19d, 1 IID6133 - __ cmpl(r19, 16); // cmp r19d, 16 IID6134 - __ cmpl(r19, 256); // cmp r19d, 256 IID6135 - __ cmpl(r19, 4096); // cmp r19d, 4096 IID6136 - __ cmpl(r19, 65536); // cmp r19d, 65536 IID6137 - __ cmpl(r19, 1048576); // cmp r19d, 1048576 IID6138 - __ cmpl(r19, 16777216); // cmp r19d, 16777216 IID6139 - __ cmpl(r19, 268435456); // cmp r19d, 268435456 IID6140 - __ cmpl(r20, 1); // cmp r20d, 1 IID6141 - __ cmpl(r20, 16); // cmp r20d, 16 IID6142 - __ cmpl(r20, 256); // cmp r20d, 256 IID6143 - __ cmpl(r20, 4096); // cmp r20d, 4096 IID6144 - __ cmpl(r20, 65536); // cmp r20d, 65536 IID6145 - __ cmpl(r20, 1048576); // cmp r20d, 1048576 IID6146 - __ cmpl(r20, 16777216); // cmp r20d, 16777216 IID6147 - __ cmpl(r20, 268435456); // cmp r20d, 268435456 IID6148 - __ cmpl(r21, 1); // cmp r21d, 1 IID6149 - __ cmpl(r21, 16); // cmp r21d, 16 IID6150 - __ cmpl(r21, 256); // cmp r21d, 256 IID6151 - __ cmpl(r21, 4096); // cmp r21d, 4096 IID6152 - __ cmpl(r21, 65536); // cmp r21d, 65536 IID6153 - __ cmpl(r21, 1048576); // cmp r21d, 1048576 IID6154 - __ cmpl(r21, 16777216); // cmp r21d, 16777216 IID6155 - __ cmpl(r21, 268435456); // cmp r21d, 268435456 IID6156 - __ cmpl(r22, 1); // cmp r22d, 1 IID6157 - __ cmpl(r22, 16); // cmp r22d, 16 IID6158 - __ cmpl(r22, 256); // cmp r22d, 256 IID6159 - __ cmpl(r22, 4096); // cmp r22d, 4096 IID6160 - __ cmpl(r22, 65536); // cmp r22d, 65536 IID6161 - __ cmpl(r22, 1048576); // cmp r22d, 1048576 IID6162 - __ cmpl(r22, 16777216); // cmp r22d, 16777216 IID6163 - __ cmpl(r22, 268435456); // cmp r22d, 268435456 IID6164 - __ cmpl(r23, 1); // cmp r23d, 1 IID6165 - __ cmpl(r23, 16); // cmp r23d, 16 IID6166 - __ cmpl(r23, 256); // cmp r23d, 256 IID6167 - __ cmpl(r23, 4096); // cmp r23d, 4096 IID6168 - __ cmpl(r23, 65536); // cmp r23d, 65536 IID6169 - __ cmpl(r23, 1048576); // cmp r23d, 1048576 IID6170 - __ cmpl(r23, 16777216); // cmp r23d, 16777216 IID6171 - __ cmpl(r23, 268435456); // cmp r23d, 268435456 IID6172 - __ cmpl(r24, 1); // cmp r24d, 1 IID6173 - __ cmpl(r24, 16); // cmp r24d, 16 IID6174 - __ cmpl(r24, 256); // cmp r24d, 256 IID6175 - __ cmpl(r24, 4096); // cmp r24d, 4096 IID6176 - __ cmpl(r24, 65536); // cmp r24d, 65536 IID6177 - __ cmpl(r24, 1048576); // cmp r24d, 1048576 IID6178 - __ cmpl(r24, 16777216); // cmp r24d, 16777216 IID6179 - __ cmpl(r24, 268435456); // cmp r24d, 268435456 IID6180 - __ cmpl(r25, 1); // cmp r25d, 1 IID6181 - __ cmpl(r25, 16); // cmp r25d, 16 IID6182 - __ cmpl(r25, 256); // cmp r25d, 256 IID6183 - __ cmpl(r25, 4096); // cmp r25d, 4096 IID6184 - __ cmpl(r25, 65536); // cmp r25d, 65536 IID6185 - __ cmpl(r25, 1048576); // cmp r25d, 1048576 IID6186 - __ cmpl(r25, 16777216); // cmp r25d, 16777216 IID6187 - __ cmpl(r25, 268435456); // cmp r25d, 268435456 IID6188 - __ cmpl(r26, 1); // cmp r26d, 1 IID6189 - __ cmpl(r26, 16); // cmp r26d, 16 IID6190 - __ cmpl(r26, 256); // cmp r26d, 256 IID6191 - __ cmpl(r26, 4096); // cmp r26d, 4096 IID6192 - __ cmpl(r26, 65536); // cmp r26d, 65536 IID6193 - __ cmpl(r26, 1048576); // cmp r26d, 1048576 IID6194 - __ cmpl(r26, 16777216); // cmp r26d, 16777216 IID6195 - __ cmpl(r26, 268435456); // cmp r26d, 268435456 IID6196 - __ cmpl(r27, 1); // cmp r27d, 1 IID6197 - __ cmpl(r27, 16); // cmp r27d, 16 IID6198 - __ cmpl(r27, 256); // cmp r27d, 256 IID6199 - __ cmpl(r27, 4096); // cmp r27d, 4096 IID6200 - __ cmpl(r27, 65536); // cmp r27d, 65536 IID6201 - __ cmpl(r27, 1048576); // cmp r27d, 1048576 IID6202 - __ cmpl(r27, 16777216); // cmp r27d, 16777216 IID6203 - __ cmpl(r27, 268435456); // cmp r27d, 268435456 IID6204 - __ cmpl(r28, 1); // cmp r28d, 1 IID6205 - __ cmpl(r28, 16); // cmp r28d, 16 IID6206 - __ cmpl(r28, 256); // cmp r28d, 256 IID6207 - __ cmpl(r28, 4096); // cmp r28d, 4096 IID6208 - __ cmpl(r28, 65536); // cmp r28d, 65536 IID6209 - __ cmpl(r28, 1048576); // cmp r28d, 1048576 IID6210 - __ cmpl(r28, 16777216); // cmp r28d, 16777216 IID6211 - __ cmpl(r28, 268435456); // cmp r28d, 268435456 IID6212 - __ cmpl(r29, 1); // cmp r29d, 1 IID6213 - __ cmpl(r29, 16); // cmp r29d, 16 IID6214 - __ cmpl(r29, 256); // cmp r29d, 256 IID6215 - __ cmpl(r29, 4096); // cmp r29d, 4096 IID6216 - __ cmpl(r29, 65536); // cmp r29d, 65536 IID6217 - __ cmpl(r29, 1048576); // cmp r29d, 1048576 IID6218 - __ cmpl(r29, 16777216); // cmp r29d, 16777216 IID6219 - __ cmpl(r29, 268435456); // cmp r29d, 268435456 IID6220 - __ cmpl(r30, 1); // cmp r30d, 1 IID6221 - __ cmpl(r30, 16); // cmp r30d, 16 IID6222 - __ cmpl(r30, 256); // cmp r30d, 256 IID6223 - __ cmpl(r30, 4096); // cmp r30d, 4096 IID6224 - __ cmpl(r30, 65536); // cmp r30d, 65536 IID6225 - __ cmpl(r30, 1048576); // cmp r30d, 1048576 IID6226 - __ cmpl(r30, 16777216); // cmp r30d, 16777216 IID6227 - __ cmpl(r30, 268435456); // cmp r30d, 268435456 IID6228 - __ cmpl(r31, 1); // cmp r31d, 1 IID6229 - __ cmpl(r31, 16); // cmp r31d, 16 IID6230 - __ cmpl(r31, 256); // cmp r31d, 256 IID6231 - __ cmpl(r31, 4096); // cmp r31d, 4096 IID6232 - __ cmpl(r31, 65536); // cmp r31d, 65536 IID6233 - __ cmpl(r31, 1048576); // cmp r31d, 1048576 IID6234 - __ cmpl(r31, 16777216); // cmp r31d, 16777216 IID6235 - __ cmpl(r31, 268435456); // cmp r31d, 268435456 IID6236 -#endif // _LP64 - __ rcll(rcx, 1); // rcl ecx, 1 IID6237 - __ rcll(rcx, 2); // rcl ecx, 2 IID6238 - __ rcll(rcx, 4); // rcl ecx, 4 IID6239 - __ rcll(rcx, 8); // rcl ecx, 8 IID6240 - __ rcll(rcx, 16); // rcl ecx, 16 IID6241 - __ rcll(rdx, 1); // rcl edx, 1 IID6242 - __ rcll(rdx, 2); // rcl edx, 2 IID6243 - __ rcll(rdx, 4); // rcl edx, 4 IID6244 - __ rcll(rdx, 8); // rcl edx, 8 IID6245 - __ rcll(rdx, 16); // rcl edx, 16 IID6246 - __ rcll(rbx, 1); // rcl ebx, 1 IID6247 - __ rcll(rbx, 2); // rcl ebx, 2 IID6248 - __ rcll(rbx, 4); // rcl ebx, 4 IID6249 - __ rcll(rbx, 8); // rcl ebx, 8 IID6250 - __ rcll(rbx, 16); // rcl ebx, 16 IID6251 -#ifdef _LP64 - __ rcll(r8, 1); // rcl r8d, 1 IID6252 - __ rcll(r8, 2); // rcl r8d, 2 IID6253 - __ rcll(r8, 4); // rcl r8d, 4 IID6254 - __ rcll(r8, 8); // rcl r8d, 8 IID6255 - __ rcll(r8, 16); // rcl r8d, 16 IID6256 - __ rcll(r9, 1); // rcl r9d, 1 IID6257 - __ rcll(r9, 2); // rcl r9d, 2 IID6258 - __ rcll(r9, 4); // rcl r9d, 4 IID6259 - __ rcll(r9, 8); // rcl r9d, 8 IID6260 - __ rcll(r9, 16); // rcl r9d, 16 IID6261 - __ rcll(r10, 1); // rcl r10d, 1 IID6262 - __ rcll(r10, 2); // rcl r10d, 2 IID6263 - __ rcll(r10, 4); // rcl r10d, 4 IID6264 - __ rcll(r10, 8); // rcl r10d, 8 IID6265 - __ rcll(r10, 16); // rcl r10d, 16 IID6266 - __ rcll(r11, 1); // rcl r11d, 1 IID6267 - __ rcll(r11, 2); // rcl r11d, 2 IID6268 - __ rcll(r11, 4); // rcl r11d, 4 IID6269 - __ rcll(r11, 8); // rcl r11d, 8 IID6270 - __ rcll(r11, 16); // rcl r11d, 16 IID6271 - __ rcll(r12, 1); // rcl r12d, 1 IID6272 - __ rcll(r12, 2); // rcl r12d, 2 IID6273 - __ rcll(r12, 4); // rcl r12d, 4 IID6274 - __ rcll(r12, 8); // rcl r12d, 8 IID6275 - __ rcll(r12, 16); // rcl r12d, 16 IID6276 - __ rcll(r13, 1); // rcl r13d, 1 IID6277 - __ rcll(r13, 2); // rcl r13d, 2 IID6278 - __ rcll(r13, 4); // rcl r13d, 4 IID6279 - __ rcll(r13, 8); // rcl r13d, 8 IID6280 - __ rcll(r13, 16); // rcl r13d, 16 IID6281 - __ rcll(r14, 1); // rcl r14d, 1 IID6282 - __ rcll(r14, 2); // rcl r14d, 2 IID6283 - __ rcll(r14, 4); // rcl r14d, 4 IID6284 - __ rcll(r14, 8); // rcl r14d, 8 IID6285 - __ rcll(r14, 16); // rcl r14d, 16 IID6286 - __ rcll(r15, 1); // rcl r15d, 1 IID6287 - __ rcll(r15, 2); // rcl r15d, 2 IID6288 - __ rcll(r15, 4); // rcl r15d, 4 IID6289 - __ rcll(r15, 8); // rcl r15d, 8 IID6290 - __ rcll(r15, 16); // rcl r15d, 16 IID6291 - __ rcll(r16, 1); // rcl r16d, 1 IID6292 - __ rcll(r16, 2); // rcl r16d, 2 IID6293 - __ rcll(r16, 4); // rcl r16d, 4 IID6294 - __ rcll(r16, 8); // rcl r16d, 8 IID6295 - __ rcll(r16, 16); // rcl r16d, 16 IID6296 - __ rcll(r17, 1); // rcl r17d, 1 IID6297 - __ rcll(r17, 2); // rcl r17d, 2 IID6298 - __ rcll(r17, 4); // rcl r17d, 4 IID6299 - __ rcll(r17, 8); // rcl r17d, 8 IID6300 - __ rcll(r17, 16); // rcl r17d, 16 IID6301 - __ rcll(r18, 1); // rcl r18d, 1 IID6302 - __ rcll(r18, 2); // rcl r18d, 2 IID6303 - __ rcll(r18, 4); // rcl r18d, 4 IID6304 - __ rcll(r18, 8); // rcl r18d, 8 IID6305 - __ rcll(r18, 16); // rcl r18d, 16 IID6306 - __ rcll(r19, 1); // rcl r19d, 1 IID6307 - __ rcll(r19, 2); // rcl r19d, 2 IID6308 - __ rcll(r19, 4); // rcl r19d, 4 IID6309 - __ rcll(r19, 8); // rcl r19d, 8 IID6310 - __ rcll(r19, 16); // rcl r19d, 16 IID6311 - __ rcll(r20, 1); // rcl r20d, 1 IID6312 - __ rcll(r20, 2); // rcl r20d, 2 IID6313 - __ rcll(r20, 4); // rcl r20d, 4 IID6314 - __ rcll(r20, 8); // rcl r20d, 8 IID6315 - __ rcll(r20, 16); // rcl r20d, 16 IID6316 - __ rcll(r21, 1); // rcl r21d, 1 IID6317 - __ rcll(r21, 2); // rcl r21d, 2 IID6318 - __ rcll(r21, 4); // rcl r21d, 4 IID6319 - __ rcll(r21, 8); // rcl r21d, 8 IID6320 - __ rcll(r21, 16); // rcl r21d, 16 IID6321 - __ rcll(r22, 1); // rcl r22d, 1 IID6322 - __ rcll(r22, 2); // rcl r22d, 2 IID6323 - __ rcll(r22, 4); // rcl r22d, 4 IID6324 - __ rcll(r22, 8); // rcl r22d, 8 IID6325 - __ rcll(r22, 16); // rcl r22d, 16 IID6326 - __ rcll(r23, 1); // rcl r23d, 1 IID6327 - __ rcll(r23, 2); // rcl r23d, 2 IID6328 - __ rcll(r23, 4); // rcl r23d, 4 IID6329 - __ rcll(r23, 8); // rcl r23d, 8 IID6330 - __ rcll(r23, 16); // rcl r23d, 16 IID6331 - __ rcll(r24, 1); // rcl r24d, 1 IID6332 - __ rcll(r24, 2); // rcl r24d, 2 IID6333 - __ rcll(r24, 4); // rcl r24d, 4 IID6334 - __ rcll(r24, 8); // rcl r24d, 8 IID6335 - __ rcll(r24, 16); // rcl r24d, 16 IID6336 - __ rcll(r25, 1); // rcl r25d, 1 IID6337 - __ rcll(r25, 2); // rcl r25d, 2 IID6338 - __ rcll(r25, 4); // rcl r25d, 4 IID6339 - __ rcll(r25, 8); // rcl r25d, 8 IID6340 - __ rcll(r25, 16); // rcl r25d, 16 IID6341 - __ rcll(r26, 1); // rcl r26d, 1 IID6342 - __ rcll(r26, 2); // rcl r26d, 2 IID6343 - __ rcll(r26, 4); // rcl r26d, 4 IID6344 - __ rcll(r26, 8); // rcl r26d, 8 IID6345 - __ rcll(r26, 16); // rcl r26d, 16 IID6346 - __ rcll(r27, 1); // rcl r27d, 1 IID6347 - __ rcll(r27, 2); // rcl r27d, 2 IID6348 - __ rcll(r27, 4); // rcl r27d, 4 IID6349 - __ rcll(r27, 8); // rcl r27d, 8 IID6350 - __ rcll(r27, 16); // rcl r27d, 16 IID6351 - __ rcll(r28, 1); // rcl r28d, 1 IID6352 - __ rcll(r28, 2); // rcl r28d, 2 IID6353 - __ rcll(r28, 4); // rcl r28d, 4 IID6354 - __ rcll(r28, 8); // rcl r28d, 8 IID6355 - __ rcll(r28, 16); // rcl r28d, 16 IID6356 - __ rcll(r29, 1); // rcl r29d, 1 IID6357 - __ rcll(r29, 2); // rcl r29d, 2 IID6358 - __ rcll(r29, 4); // rcl r29d, 4 IID6359 - __ rcll(r29, 8); // rcl r29d, 8 IID6360 - __ rcll(r29, 16); // rcl r29d, 16 IID6361 - __ rcll(r30, 1); // rcl r30d, 1 IID6362 - __ rcll(r30, 2); // rcl r30d, 2 IID6363 - __ rcll(r30, 4); // rcl r30d, 4 IID6364 - __ rcll(r30, 8); // rcl r30d, 8 IID6365 - __ rcll(r30, 16); // rcl r30d, 16 IID6366 - __ rcll(r31, 1); // rcl r31d, 1 IID6367 - __ rcll(r31, 2); // rcl r31d, 2 IID6368 - __ rcll(r31, 4); // rcl r31d, 4 IID6369 - __ rcll(r31, 8); // rcl r31d, 8 IID6370 - __ rcll(r31, 16); // rcl r31d, 16 IID6371 -#endif // _LP64 - __ roll(rcx, 1); // rol ecx, 1 IID6372 - __ roll(rcx, 2); // rol ecx, 2 IID6373 - __ roll(rcx, 4); // rol ecx, 4 IID6374 - __ roll(rcx, 8); // rol ecx, 8 IID6375 - __ roll(rcx, 16); // rol ecx, 16 IID6376 - __ roll(rdx, 1); // rol edx, 1 IID6377 - __ roll(rdx, 2); // rol edx, 2 IID6378 - __ roll(rdx, 4); // rol edx, 4 IID6379 - __ roll(rdx, 8); // rol edx, 8 IID6380 - __ roll(rdx, 16); // rol edx, 16 IID6381 - __ roll(rbx, 1); // rol ebx, 1 IID6382 - __ roll(rbx, 2); // rol ebx, 2 IID6383 - __ roll(rbx, 4); // rol ebx, 4 IID6384 - __ roll(rbx, 8); // rol ebx, 8 IID6385 - __ roll(rbx, 16); // rol ebx, 16 IID6386 -#ifdef _LP64 - __ roll(r8, 1); // rol r8d, 1 IID6387 - __ roll(r8, 2); // rol r8d, 2 IID6388 - __ roll(r8, 4); // rol r8d, 4 IID6389 - __ roll(r8, 8); // rol r8d, 8 IID6390 - __ roll(r8, 16); // rol r8d, 16 IID6391 - __ roll(r9, 1); // rol r9d, 1 IID6392 - __ roll(r9, 2); // rol r9d, 2 IID6393 - __ roll(r9, 4); // rol r9d, 4 IID6394 - __ roll(r9, 8); // rol r9d, 8 IID6395 - __ roll(r9, 16); // rol r9d, 16 IID6396 - __ roll(r10, 1); // rol r10d, 1 IID6397 - __ roll(r10, 2); // rol r10d, 2 IID6398 - __ roll(r10, 4); // rol r10d, 4 IID6399 - __ roll(r10, 8); // rol r10d, 8 IID6400 - __ roll(r10, 16); // rol r10d, 16 IID6401 - __ roll(r11, 1); // rol r11d, 1 IID6402 - __ roll(r11, 2); // rol r11d, 2 IID6403 - __ roll(r11, 4); // rol r11d, 4 IID6404 - __ roll(r11, 8); // rol r11d, 8 IID6405 - __ roll(r11, 16); // rol r11d, 16 IID6406 - __ roll(r12, 1); // rol r12d, 1 IID6407 - __ roll(r12, 2); // rol r12d, 2 IID6408 - __ roll(r12, 4); // rol r12d, 4 IID6409 - __ roll(r12, 8); // rol r12d, 8 IID6410 - __ roll(r12, 16); // rol r12d, 16 IID6411 - __ roll(r13, 1); // rol r13d, 1 IID6412 - __ roll(r13, 2); // rol r13d, 2 IID6413 - __ roll(r13, 4); // rol r13d, 4 IID6414 - __ roll(r13, 8); // rol r13d, 8 IID6415 - __ roll(r13, 16); // rol r13d, 16 IID6416 - __ roll(r14, 1); // rol r14d, 1 IID6417 - __ roll(r14, 2); // rol r14d, 2 IID6418 - __ roll(r14, 4); // rol r14d, 4 IID6419 - __ roll(r14, 8); // rol r14d, 8 IID6420 - __ roll(r14, 16); // rol r14d, 16 IID6421 - __ roll(r15, 1); // rol r15d, 1 IID6422 - __ roll(r15, 2); // rol r15d, 2 IID6423 - __ roll(r15, 4); // rol r15d, 4 IID6424 - __ roll(r15, 8); // rol r15d, 8 IID6425 - __ roll(r15, 16); // rol r15d, 16 IID6426 - __ roll(r16, 1); // rol r16d, 1 IID6427 - __ roll(r16, 2); // rol r16d, 2 IID6428 - __ roll(r16, 4); // rol r16d, 4 IID6429 - __ roll(r16, 8); // rol r16d, 8 IID6430 - __ roll(r16, 16); // rol r16d, 16 IID6431 - __ roll(r17, 1); // rol r17d, 1 IID6432 - __ roll(r17, 2); // rol r17d, 2 IID6433 - __ roll(r17, 4); // rol r17d, 4 IID6434 - __ roll(r17, 8); // rol r17d, 8 IID6435 - __ roll(r17, 16); // rol r17d, 16 IID6436 - __ roll(r18, 1); // rol r18d, 1 IID6437 - __ roll(r18, 2); // rol r18d, 2 IID6438 - __ roll(r18, 4); // rol r18d, 4 IID6439 - __ roll(r18, 8); // rol r18d, 8 IID6440 - __ roll(r18, 16); // rol r18d, 16 IID6441 - __ roll(r19, 1); // rol r19d, 1 IID6442 - __ roll(r19, 2); // rol r19d, 2 IID6443 - __ roll(r19, 4); // rol r19d, 4 IID6444 - __ roll(r19, 8); // rol r19d, 8 IID6445 - __ roll(r19, 16); // rol r19d, 16 IID6446 - __ roll(r20, 1); // rol r20d, 1 IID6447 - __ roll(r20, 2); // rol r20d, 2 IID6448 - __ roll(r20, 4); // rol r20d, 4 IID6449 - __ roll(r20, 8); // rol r20d, 8 IID6450 - __ roll(r20, 16); // rol r20d, 16 IID6451 - __ roll(r21, 1); // rol r21d, 1 IID6452 - __ roll(r21, 2); // rol r21d, 2 IID6453 - __ roll(r21, 4); // rol r21d, 4 IID6454 - __ roll(r21, 8); // rol r21d, 8 IID6455 - __ roll(r21, 16); // rol r21d, 16 IID6456 - __ roll(r22, 1); // rol r22d, 1 IID6457 - __ roll(r22, 2); // rol r22d, 2 IID6458 - __ roll(r22, 4); // rol r22d, 4 IID6459 - __ roll(r22, 8); // rol r22d, 8 IID6460 - __ roll(r22, 16); // rol r22d, 16 IID6461 - __ roll(r23, 1); // rol r23d, 1 IID6462 - __ roll(r23, 2); // rol r23d, 2 IID6463 - __ roll(r23, 4); // rol r23d, 4 IID6464 - __ roll(r23, 8); // rol r23d, 8 IID6465 - __ roll(r23, 16); // rol r23d, 16 IID6466 - __ roll(r24, 1); // rol r24d, 1 IID6467 - __ roll(r24, 2); // rol r24d, 2 IID6468 - __ roll(r24, 4); // rol r24d, 4 IID6469 - __ roll(r24, 8); // rol r24d, 8 IID6470 - __ roll(r24, 16); // rol r24d, 16 IID6471 - __ roll(r25, 1); // rol r25d, 1 IID6472 - __ roll(r25, 2); // rol r25d, 2 IID6473 - __ roll(r25, 4); // rol r25d, 4 IID6474 - __ roll(r25, 8); // rol r25d, 8 IID6475 - __ roll(r25, 16); // rol r25d, 16 IID6476 - __ roll(r26, 1); // rol r26d, 1 IID6477 - __ roll(r26, 2); // rol r26d, 2 IID6478 - __ roll(r26, 4); // rol r26d, 4 IID6479 - __ roll(r26, 8); // rol r26d, 8 IID6480 - __ roll(r26, 16); // rol r26d, 16 IID6481 - __ roll(r27, 1); // rol r27d, 1 IID6482 - __ roll(r27, 2); // rol r27d, 2 IID6483 - __ roll(r27, 4); // rol r27d, 4 IID6484 - __ roll(r27, 8); // rol r27d, 8 IID6485 - __ roll(r27, 16); // rol r27d, 16 IID6486 - __ roll(r28, 1); // rol r28d, 1 IID6487 - __ roll(r28, 2); // rol r28d, 2 IID6488 - __ roll(r28, 4); // rol r28d, 4 IID6489 - __ roll(r28, 8); // rol r28d, 8 IID6490 - __ roll(r28, 16); // rol r28d, 16 IID6491 - __ roll(r29, 1); // rol r29d, 1 IID6492 - __ roll(r29, 2); // rol r29d, 2 IID6493 - __ roll(r29, 4); // rol r29d, 4 IID6494 - __ roll(r29, 8); // rol r29d, 8 IID6495 - __ roll(r29, 16); // rol r29d, 16 IID6496 - __ roll(r30, 1); // rol r30d, 1 IID6497 - __ roll(r30, 2); // rol r30d, 2 IID6498 - __ roll(r30, 4); // rol r30d, 4 IID6499 - __ roll(r30, 8); // rol r30d, 8 IID6500 - __ roll(r30, 16); // rol r30d, 16 IID6501 - __ roll(r31, 1); // rol r31d, 1 IID6502 - __ roll(r31, 2); // rol r31d, 2 IID6503 - __ roll(r31, 4); // rol r31d, 4 IID6504 - __ roll(r31, 8); // rol r31d, 8 IID6505 - __ roll(r31, 16); // rol r31d, 16 IID6506 -#endif // _LP64 - __ rorl(rcx, 1); // ror ecx, 1 IID6507 - __ rorl(rcx, 2); // ror ecx, 2 IID6508 - __ rorl(rcx, 4); // ror ecx, 4 IID6509 - __ rorl(rcx, 8); // ror ecx, 8 IID6510 - __ rorl(rcx, 16); // ror ecx, 16 IID6511 - __ rorl(rdx, 1); // ror edx, 1 IID6512 - __ rorl(rdx, 2); // ror edx, 2 IID6513 - __ rorl(rdx, 4); // ror edx, 4 IID6514 - __ rorl(rdx, 8); // ror edx, 8 IID6515 - __ rorl(rdx, 16); // ror edx, 16 IID6516 - __ rorl(rbx, 1); // ror ebx, 1 IID6517 - __ rorl(rbx, 2); // ror ebx, 2 IID6518 - __ rorl(rbx, 4); // ror ebx, 4 IID6519 - __ rorl(rbx, 8); // ror ebx, 8 IID6520 - __ rorl(rbx, 16); // ror ebx, 16 IID6521 -#ifdef _LP64 - __ rorl(r8, 1); // ror r8d, 1 IID6522 - __ rorl(r8, 2); // ror r8d, 2 IID6523 - __ rorl(r8, 4); // ror r8d, 4 IID6524 - __ rorl(r8, 8); // ror r8d, 8 IID6525 - __ rorl(r8, 16); // ror r8d, 16 IID6526 - __ rorl(r9, 1); // ror r9d, 1 IID6527 - __ rorl(r9, 2); // ror r9d, 2 IID6528 - __ rorl(r9, 4); // ror r9d, 4 IID6529 - __ rorl(r9, 8); // ror r9d, 8 IID6530 - __ rorl(r9, 16); // ror r9d, 16 IID6531 - __ rorl(r10, 1); // ror r10d, 1 IID6532 - __ rorl(r10, 2); // ror r10d, 2 IID6533 - __ rorl(r10, 4); // ror r10d, 4 IID6534 - __ rorl(r10, 8); // ror r10d, 8 IID6535 - __ rorl(r10, 16); // ror r10d, 16 IID6536 - __ rorl(r11, 1); // ror r11d, 1 IID6537 - __ rorl(r11, 2); // ror r11d, 2 IID6538 - __ rorl(r11, 4); // ror r11d, 4 IID6539 - __ rorl(r11, 8); // ror r11d, 8 IID6540 - __ rorl(r11, 16); // ror r11d, 16 IID6541 - __ rorl(r12, 1); // ror r12d, 1 IID6542 - __ rorl(r12, 2); // ror r12d, 2 IID6543 - __ rorl(r12, 4); // ror r12d, 4 IID6544 - __ rorl(r12, 8); // ror r12d, 8 IID6545 - __ rorl(r12, 16); // ror r12d, 16 IID6546 - __ rorl(r13, 1); // ror r13d, 1 IID6547 - __ rorl(r13, 2); // ror r13d, 2 IID6548 - __ rorl(r13, 4); // ror r13d, 4 IID6549 - __ rorl(r13, 8); // ror r13d, 8 IID6550 - __ rorl(r13, 16); // ror r13d, 16 IID6551 - __ rorl(r14, 1); // ror r14d, 1 IID6552 - __ rorl(r14, 2); // ror r14d, 2 IID6553 - __ rorl(r14, 4); // ror r14d, 4 IID6554 - __ rorl(r14, 8); // ror r14d, 8 IID6555 - __ rorl(r14, 16); // ror r14d, 16 IID6556 - __ rorl(r15, 1); // ror r15d, 1 IID6557 - __ rorl(r15, 2); // ror r15d, 2 IID6558 - __ rorl(r15, 4); // ror r15d, 4 IID6559 - __ rorl(r15, 8); // ror r15d, 8 IID6560 - __ rorl(r15, 16); // ror r15d, 16 IID6561 - __ rorl(r16, 1); // ror r16d, 1 IID6562 - __ rorl(r16, 2); // ror r16d, 2 IID6563 - __ rorl(r16, 4); // ror r16d, 4 IID6564 - __ rorl(r16, 8); // ror r16d, 8 IID6565 - __ rorl(r16, 16); // ror r16d, 16 IID6566 - __ rorl(r17, 1); // ror r17d, 1 IID6567 - __ rorl(r17, 2); // ror r17d, 2 IID6568 - __ rorl(r17, 4); // ror r17d, 4 IID6569 - __ rorl(r17, 8); // ror r17d, 8 IID6570 - __ rorl(r17, 16); // ror r17d, 16 IID6571 - __ rorl(r18, 1); // ror r18d, 1 IID6572 - __ rorl(r18, 2); // ror r18d, 2 IID6573 - __ rorl(r18, 4); // ror r18d, 4 IID6574 - __ rorl(r18, 8); // ror r18d, 8 IID6575 - __ rorl(r18, 16); // ror r18d, 16 IID6576 - __ rorl(r19, 1); // ror r19d, 1 IID6577 - __ rorl(r19, 2); // ror r19d, 2 IID6578 - __ rorl(r19, 4); // ror r19d, 4 IID6579 - __ rorl(r19, 8); // ror r19d, 8 IID6580 - __ rorl(r19, 16); // ror r19d, 16 IID6581 - __ rorl(r20, 1); // ror r20d, 1 IID6582 - __ rorl(r20, 2); // ror r20d, 2 IID6583 - __ rorl(r20, 4); // ror r20d, 4 IID6584 - __ rorl(r20, 8); // ror r20d, 8 IID6585 - __ rorl(r20, 16); // ror r20d, 16 IID6586 - __ rorl(r21, 1); // ror r21d, 1 IID6587 - __ rorl(r21, 2); // ror r21d, 2 IID6588 - __ rorl(r21, 4); // ror r21d, 4 IID6589 - __ rorl(r21, 8); // ror r21d, 8 IID6590 - __ rorl(r21, 16); // ror r21d, 16 IID6591 - __ rorl(r22, 1); // ror r22d, 1 IID6592 - __ rorl(r22, 2); // ror r22d, 2 IID6593 - __ rorl(r22, 4); // ror r22d, 4 IID6594 - __ rorl(r22, 8); // ror r22d, 8 IID6595 - __ rorl(r22, 16); // ror r22d, 16 IID6596 - __ rorl(r23, 1); // ror r23d, 1 IID6597 - __ rorl(r23, 2); // ror r23d, 2 IID6598 - __ rorl(r23, 4); // ror r23d, 4 IID6599 - __ rorl(r23, 8); // ror r23d, 8 IID6600 - __ rorl(r23, 16); // ror r23d, 16 IID6601 - __ rorl(r24, 1); // ror r24d, 1 IID6602 - __ rorl(r24, 2); // ror r24d, 2 IID6603 - __ rorl(r24, 4); // ror r24d, 4 IID6604 - __ rorl(r24, 8); // ror r24d, 8 IID6605 - __ rorl(r24, 16); // ror r24d, 16 IID6606 - __ rorl(r25, 1); // ror r25d, 1 IID6607 - __ rorl(r25, 2); // ror r25d, 2 IID6608 - __ rorl(r25, 4); // ror r25d, 4 IID6609 - __ rorl(r25, 8); // ror r25d, 8 IID6610 - __ rorl(r25, 16); // ror r25d, 16 IID6611 - __ rorl(r26, 1); // ror r26d, 1 IID6612 - __ rorl(r26, 2); // ror r26d, 2 IID6613 - __ rorl(r26, 4); // ror r26d, 4 IID6614 - __ rorl(r26, 8); // ror r26d, 8 IID6615 - __ rorl(r26, 16); // ror r26d, 16 IID6616 - __ rorl(r27, 1); // ror r27d, 1 IID6617 - __ rorl(r27, 2); // ror r27d, 2 IID6618 - __ rorl(r27, 4); // ror r27d, 4 IID6619 - __ rorl(r27, 8); // ror r27d, 8 IID6620 - __ rorl(r27, 16); // ror r27d, 16 IID6621 - __ rorl(r28, 1); // ror r28d, 1 IID6622 - __ rorl(r28, 2); // ror r28d, 2 IID6623 - __ rorl(r28, 4); // ror r28d, 4 IID6624 - __ rorl(r28, 8); // ror r28d, 8 IID6625 - __ rorl(r28, 16); // ror r28d, 16 IID6626 - __ rorl(r29, 1); // ror r29d, 1 IID6627 - __ rorl(r29, 2); // ror r29d, 2 IID6628 - __ rorl(r29, 4); // ror r29d, 4 IID6629 - __ rorl(r29, 8); // ror r29d, 8 IID6630 - __ rorl(r29, 16); // ror r29d, 16 IID6631 - __ rorl(r30, 1); // ror r30d, 1 IID6632 - __ rorl(r30, 2); // ror r30d, 2 IID6633 - __ rorl(r30, 4); // ror r30d, 4 IID6634 - __ rorl(r30, 8); // ror r30d, 8 IID6635 - __ rorl(r30, 16); // ror r30d, 16 IID6636 - __ rorl(r31, 1); // ror r31d, 1 IID6637 - __ rorl(r31, 2); // ror r31d, 2 IID6638 - __ rorl(r31, 4); // ror r31d, 4 IID6639 - __ rorl(r31, 8); // ror r31d, 8 IID6640 - __ rorl(r31, 16); // ror r31d, 16 IID6641 -#endif // _LP64 - __ sarl(rcx, 1); // sar ecx, 1 IID6642 - __ sarl(rcx, 2); // sar ecx, 2 IID6643 - __ sarl(rcx, 4); // sar ecx, 4 IID6644 - __ sarl(rcx, 8); // sar ecx, 8 IID6645 - __ sarl(rcx, 16); // sar ecx, 16 IID6646 - __ sarl(rdx, 1); // sar edx, 1 IID6647 - __ sarl(rdx, 2); // sar edx, 2 IID6648 - __ sarl(rdx, 4); // sar edx, 4 IID6649 - __ sarl(rdx, 8); // sar edx, 8 IID6650 - __ sarl(rdx, 16); // sar edx, 16 IID6651 - __ sarl(rbx, 1); // sar ebx, 1 IID6652 - __ sarl(rbx, 2); // sar ebx, 2 IID6653 - __ sarl(rbx, 4); // sar ebx, 4 IID6654 - __ sarl(rbx, 8); // sar ebx, 8 IID6655 - __ sarl(rbx, 16); // sar ebx, 16 IID6656 -#ifdef _LP64 - __ sarl(r8, 1); // sar r8d, 1 IID6657 - __ sarl(r8, 2); // sar r8d, 2 IID6658 - __ sarl(r8, 4); // sar r8d, 4 IID6659 - __ sarl(r8, 8); // sar r8d, 8 IID6660 - __ sarl(r8, 16); // sar r8d, 16 IID6661 - __ sarl(r9, 1); // sar r9d, 1 IID6662 - __ sarl(r9, 2); // sar r9d, 2 IID6663 - __ sarl(r9, 4); // sar r9d, 4 IID6664 - __ sarl(r9, 8); // sar r9d, 8 IID6665 - __ sarl(r9, 16); // sar r9d, 16 IID6666 - __ sarl(r10, 1); // sar r10d, 1 IID6667 - __ sarl(r10, 2); // sar r10d, 2 IID6668 - __ sarl(r10, 4); // sar r10d, 4 IID6669 - __ sarl(r10, 8); // sar r10d, 8 IID6670 - __ sarl(r10, 16); // sar r10d, 16 IID6671 - __ sarl(r11, 1); // sar r11d, 1 IID6672 - __ sarl(r11, 2); // sar r11d, 2 IID6673 - __ sarl(r11, 4); // sar r11d, 4 IID6674 - __ sarl(r11, 8); // sar r11d, 8 IID6675 - __ sarl(r11, 16); // sar r11d, 16 IID6676 - __ sarl(r12, 1); // sar r12d, 1 IID6677 - __ sarl(r12, 2); // sar r12d, 2 IID6678 - __ sarl(r12, 4); // sar r12d, 4 IID6679 - __ sarl(r12, 8); // sar r12d, 8 IID6680 - __ sarl(r12, 16); // sar r12d, 16 IID6681 - __ sarl(r13, 1); // sar r13d, 1 IID6682 - __ sarl(r13, 2); // sar r13d, 2 IID6683 - __ sarl(r13, 4); // sar r13d, 4 IID6684 - __ sarl(r13, 8); // sar r13d, 8 IID6685 - __ sarl(r13, 16); // sar r13d, 16 IID6686 - __ sarl(r14, 1); // sar r14d, 1 IID6687 - __ sarl(r14, 2); // sar r14d, 2 IID6688 - __ sarl(r14, 4); // sar r14d, 4 IID6689 - __ sarl(r14, 8); // sar r14d, 8 IID6690 - __ sarl(r14, 16); // sar r14d, 16 IID6691 - __ sarl(r15, 1); // sar r15d, 1 IID6692 - __ sarl(r15, 2); // sar r15d, 2 IID6693 - __ sarl(r15, 4); // sar r15d, 4 IID6694 - __ sarl(r15, 8); // sar r15d, 8 IID6695 - __ sarl(r15, 16); // sar r15d, 16 IID6696 - __ sarl(r16, 1); // sar r16d, 1 IID6697 - __ sarl(r16, 2); // sar r16d, 2 IID6698 - __ sarl(r16, 4); // sar r16d, 4 IID6699 - __ sarl(r16, 8); // sar r16d, 8 IID6700 - __ sarl(r16, 16); // sar r16d, 16 IID6701 - __ sarl(r17, 1); // sar r17d, 1 IID6702 - __ sarl(r17, 2); // sar r17d, 2 IID6703 - __ sarl(r17, 4); // sar r17d, 4 IID6704 - __ sarl(r17, 8); // sar r17d, 8 IID6705 - __ sarl(r17, 16); // sar r17d, 16 IID6706 - __ sarl(r18, 1); // sar r18d, 1 IID6707 - __ sarl(r18, 2); // sar r18d, 2 IID6708 - __ sarl(r18, 4); // sar r18d, 4 IID6709 - __ sarl(r18, 8); // sar r18d, 8 IID6710 - __ sarl(r18, 16); // sar r18d, 16 IID6711 - __ sarl(r19, 1); // sar r19d, 1 IID6712 - __ sarl(r19, 2); // sar r19d, 2 IID6713 - __ sarl(r19, 4); // sar r19d, 4 IID6714 - __ sarl(r19, 8); // sar r19d, 8 IID6715 - __ sarl(r19, 16); // sar r19d, 16 IID6716 - __ sarl(r20, 1); // sar r20d, 1 IID6717 - __ sarl(r20, 2); // sar r20d, 2 IID6718 - __ sarl(r20, 4); // sar r20d, 4 IID6719 - __ sarl(r20, 8); // sar r20d, 8 IID6720 - __ sarl(r20, 16); // sar r20d, 16 IID6721 - __ sarl(r21, 1); // sar r21d, 1 IID6722 - __ sarl(r21, 2); // sar r21d, 2 IID6723 - __ sarl(r21, 4); // sar r21d, 4 IID6724 - __ sarl(r21, 8); // sar r21d, 8 IID6725 - __ sarl(r21, 16); // sar r21d, 16 IID6726 - __ sarl(r22, 1); // sar r22d, 1 IID6727 - __ sarl(r22, 2); // sar r22d, 2 IID6728 - __ sarl(r22, 4); // sar r22d, 4 IID6729 - __ sarl(r22, 8); // sar r22d, 8 IID6730 - __ sarl(r22, 16); // sar r22d, 16 IID6731 - __ sarl(r23, 1); // sar r23d, 1 IID6732 - __ sarl(r23, 2); // sar r23d, 2 IID6733 - __ sarl(r23, 4); // sar r23d, 4 IID6734 - __ sarl(r23, 8); // sar r23d, 8 IID6735 - __ sarl(r23, 16); // sar r23d, 16 IID6736 - __ sarl(r24, 1); // sar r24d, 1 IID6737 - __ sarl(r24, 2); // sar r24d, 2 IID6738 - __ sarl(r24, 4); // sar r24d, 4 IID6739 - __ sarl(r24, 8); // sar r24d, 8 IID6740 - __ sarl(r24, 16); // sar r24d, 16 IID6741 - __ sarl(r25, 1); // sar r25d, 1 IID6742 - __ sarl(r25, 2); // sar r25d, 2 IID6743 - __ sarl(r25, 4); // sar r25d, 4 IID6744 - __ sarl(r25, 8); // sar r25d, 8 IID6745 - __ sarl(r25, 16); // sar r25d, 16 IID6746 - __ sarl(r26, 1); // sar r26d, 1 IID6747 - __ sarl(r26, 2); // sar r26d, 2 IID6748 - __ sarl(r26, 4); // sar r26d, 4 IID6749 - __ sarl(r26, 8); // sar r26d, 8 IID6750 - __ sarl(r26, 16); // sar r26d, 16 IID6751 - __ sarl(r27, 1); // sar r27d, 1 IID6752 - __ sarl(r27, 2); // sar r27d, 2 IID6753 - __ sarl(r27, 4); // sar r27d, 4 IID6754 - __ sarl(r27, 8); // sar r27d, 8 IID6755 - __ sarl(r27, 16); // sar r27d, 16 IID6756 - __ sarl(r28, 1); // sar r28d, 1 IID6757 - __ sarl(r28, 2); // sar r28d, 2 IID6758 - __ sarl(r28, 4); // sar r28d, 4 IID6759 - __ sarl(r28, 8); // sar r28d, 8 IID6760 - __ sarl(r28, 16); // sar r28d, 16 IID6761 - __ sarl(r29, 1); // sar r29d, 1 IID6762 - __ sarl(r29, 2); // sar r29d, 2 IID6763 - __ sarl(r29, 4); // sar r29d, 4 IID6764 - __ sarl(r29, 8); // sar r29d, 8 IID6765 - __ sarl(r29, 16); // sar r29d, 16 IID6766 - __ sarl(r30, 1); // sar r30d, 1 IID6767 - __ sarl(r30, 2); // sar r30d, 2 IID6768 - __ sarl(r30, 4); // sar r30d, 4 IID6769 - __ sarl(r30, 8); // sar r30d, 8 IID6770 - __ sarl(r30, 16); // sar r30d, 16 IID6771 - __ sarl(r31, 1); // sar r31d, 1 IID6772 - __ sarl(r31, 2); // sar r31d, 2 IID6773 - __ sarl(r31, 4); // sar r31d, 4 IID6774 - __ sarl(r31, 8); // sar r31d, 8 IID6775 - __ sarl(r31, 16); // sar r31d, 16 IID6776 -#endif // _LP64 - __ sall(rcx, 1); // sal ecx, 1 IID6777 - __ sall(rcx, 2); // sal ecx, 2 IID6778 - __ sall(rcx, 4); // sal ecx, 4 IID6779 - __ sall(rcx, 8); // sal ecx, 8 IID6780 - __ sall(rcx, 16); // sal ecx, 16 IID6781 - __ sall(rdx, 1); // sal edx, 1 IID6782 - __ sall(rdx, 2); // sal edx, 2 IID6783 - __ sall(rdx, 4); // sal edx, 4 IID6784 - __ sall(rdx, 8); // sal edx, 8 IID6785 - __ sall(rdx, 16); // sal edx, 16 IID6786 - __ sall(rbx, 1); // sal ebx, 1 IID6787 - __ sall(rbx, 2); // sal ebx, 2 IID6788 - __ sall(rbx, 4); // sal ebx, 4 IID6789 - __ sall(rbx, 8); // sal ebx, 8 IID6790 - __ sall(rbx, 16); // sal ebx, 16 IID6791 -#ifdef _LP64 - __ sall(r8, 1); // sal r8d, 1 IID6792 - __ sall(r8, 2); // sal r8d, 2 IID6793 - __ sall(r8, 4); // sal r8d, 4 IID6794 - __ sall(r8, 8); // sal r8d, 8 IID6795 - __ sall(r8, 16); // sal r8d, 16 IID6796 - __ sall(r9, 1); // sal r9d, 1 IID6797 - __ sall(r9, 2); // sal r9d, 2 IID6798 - __ sall(r9, 4); // sal r9d, 4 IID6799 - __ sall(r9, 8); // sal r9d, 8 IID6800 - __ sall(r9, 16); // sal r9d, 16 IID6801 - __ sall(r10, 1); // sal r10d, 1 IID6802 - __ sall(r10, 2); // sal r10d, 2 IID6803 - __ sall(r10, 4); // sal r10d, 4 IID6804 - __ sall(r10, 8); // sal r10d, 8 IID6805 - __ sall(r10, 16); // sal r10d, 16 IID6806 - __ sall(r11, 1); // sal r11d, 1 IID6807 - __ sall(r11, 2); // sal r11d, 2 IID6808 - __ sall(r11, 4); // sal r11d, 4 IID6809 - __ sall(r11, 8); // sal r11d, 8 IID6810 - __ sall(r11, 16); // sal r11d, 16 IID6811 - __ sall(r12, 1); // sal r12d, 1 IID6812 - __ sall(r12, 2); // sal r12d, 2 IID6813 - __ sall(r12, 4); // sal r12d, 4 IID6814 - __ sall(r12, 8); // sal r12d, 8 IID6815 - __ sall(r12, 16); // sal r12d, 16 IID6816 - __ sall(r13, 1); // sal r13d, 1 IID6817 - __ sall(r13, 2); // sal r13d, 2 IID6818 - __ sall(r13, 4); // sal r13d, 4 IID6819 - __ sall(r13, 8); // sal r13d, 8 IID6820 - __ sall(r13, 16); // sal r13d, 16 IID6821 - __ sall(r14, 1); // sal r14d, 1 IID6822 - __ sall(r14, 2); // sal r14d, 2 IID6823 - __ sall(r14, 4); // sal r14d, 4 IID6824 - __ sall(r14, 8); // sal r14d, 8 IID6825 - __ sall(r14, 16); // sal r14d, 16 IID6826 - __ sall(r15, 1); // sal r15d, 1 IID6827 - __ sall(r15, 2); // sal r15d, 2 IID6828 - __ sall(r15, 4); // sal r15d, 4 IID6829 - __ sall(r15, 8); // sal r15d, 8 IID6830 - __ sall(r15, 16); // sal r15d, 16 IID6831 - __ sall(r16, 1); // sal r16d, 1 IID6832 - __ sall(r16, 2); // sal r16d, 2 IID6833 - __ sall(r16, 4); // sal r16d, 4 IID6834 - __ sall(r16, 8); // sal r16d, 8 IID6835 - __ sall(r16, 16); // sal r16d, 16 IID6836 - __ sall(r17, 1); // sal r17d, 1 IID6837 - __ sall(r17, 2); // sal r17d, 2 IID6838 - __ sall(r17, 4); // sal r17d, 4 IID6839 - __ sall(r17, 8); // sal r17d, 8 IID6840 - __ sall(r17, 16); // sal r17d, 16 IID6841 - __ sall(r18, 1); // sal r18d, 1 IID6842 - __ sall(r18, 2); // sal r18d, 2 IID6843 - __ sall(r18, 4); // sal r18d, 4 IID6844 - __ sall(r18, 8); // sal r18d, 8 IID6845 - __ sall(r18, 16); // sal r18d, 16 IID6846 - __ sall(r19, 1); // sal r19d, 1 IID6847 - __ sall(r19, 2); // sal r19d, 2 IID6848 - __ sall(r19, 4); // sal r19d, 4 IID6849 - __ sall(r19, 8); // sal r19d, 8 IID6850 - __ sall(r19, 16); // sal r19d, 16 IID6851 - __ sall(r20, 1); // sal r20d, 1 IID6852 - __ sall(r20, 2); // sal r20d, 2 IID6853 - __ sall(r20, 4); // sal r20d, 4 IID6854 - __ sall(r20, 8); // sal r20d, 8 IID6855 - __ sall(r20, 16); // sal r20d, 16 IID6856 - __ sall(r21, 1); // sal r21d, 1 IID6857 - __ sall(r21, 2); // sal r21d, 2 IID6858 - __ sall(r21, 4); // sal r21d, 4 IID6859 - __ sall(r21, 8); // sal r21d, 8 IID6860 - __ sall(r21, 16); // sal r21d, 16 IID6861 - __ sall(r22, 1); // sal r22d, 1 IID6862 - __ sall(r22, 2); // sal r22d, 2 IID6863 - __ sall(r22, 4); // sal r22d, 4 IID6864 - __ sall(r22, 8); // sal r22d, 8 IID6865 - __ sall(r22, 16); // sal r22d, 16 IID6866 - __ sall(r23, 1); // sal r23d, 1 IID6867 - __ sall(r23, 2); // sal r23d, 2 IID6868 - __ sall(r23, 4); // sal r23d, 4 IID6869 - __ sall(r23, 8); // sal r23d, 8 IID6870 - __ sall(r23, 16); // sal r23d, 16 IID6871 - __ sall(r24, 1); // sal r24d, 1 IID6872 - __ sall(r24, 2); // sal r24d, 2 IID6873 - __ sall(r24, 4); // sal r24d, 4 IID6874 - __ sall(r24, 8); // sal r24d, 8 IID6875 - __ sall(r24, 16); // sal r24d, 16 IID6876 - __ sall(r25, 1); // sal r25d, 1 IID6877 - __ sall(r25, 2); // sal r25d, 2 IID6878 - __ sall(r25, 4); // sal r25d, 4 IID6879 - __ sall(r25, 8); // sal r25d, 8 IID6880 - __ sall(r25, 16); // sal r25d, 16 IID6881 - __ sall(r26, 1); // sal r26d, 1 IID6882 - __ sall(r26, 2); // sal r26d, 2 IID6883 - __ sall(r26, 4); // sal r26d, 4 IID6884 - __ sall(r26, 8); // sal r26d, 8 IID6885 - __ sall(r26, 16); // sal r26d, 16 IID6886 - __ sall(r27, 1); // sal r27d, 1 IID6887 - __ sall(r27, 2); // sal r27d, 2 IID6888 - __ sall(r27, 4); // sal r27d, 4 IID6889 - __ sall(r27, 8); // sal r27d, 8 IID6890 - __ sall(r27, 16); // sal r27d, 16 IID6891 - __ sall(r28, 1); // sal r28d, 1 IID6892 - __ sall(r28, 2); // sal r28d, 2 IID6893 - __ sall(r28, 4); // sal r28d, 4 IID6894 - __ sall(r28, 8); // sal r28d, 8 IID6895 - __ sall(r28, 16); // sal r28d, 16 IID6896 - __ sall(r29, 1); // sal r29d, 1 IID6897 - __ sall(r29, 2); // sal r29d, 2 IID6898 - __ sall(r29, 4); // sal r29d, 4 IID6899 - __ sall(r29, 8); // sal r29d, 8 IID6900 - __ sall(r29, 16); // sal r29d, 16 IID6901 - __ sall(r30, 1); // sal r30d, 1 IID6902 - __ sall(r30, 2); // sal r30d, 2 IID6903 - __ sall(r30, 4); // sal r30d, 4 IID6904 - __ sall(r30, 8); // sal r30d, 8 IID6905 - __ sall(r30, 16); // sal r30d, 16 IID6906 - __ sall(r31, 1); // sal r31d, 1 IID6907 - __ sall(r31, 2); // sal r31d, 2 IID6908 - __ sall(r31, 4); // sal r31d, 4 IID6909 - __ sall(r31, 8); // sal r31d, 8 IID6910 - __ sall(r31, 16); // sal r31d, 16 IID6911 -#endif // _LP64 - __ sbbl(rcx, 1); // sbb ecx, 1 IID6912 - __ sbbl(rcx, 16); // sbb ecx, 16 IID6913 - __ sbbl(rcx, 256); // sbb ecx, 256 IID6914 - __ sbbl(rcx, 4096); // sbb ecx, 4096 IID6915 - __ sbbl(rcx, 65536); // sbb ecx, 65536 IID6916 - __ sbbl(rcx, 1048576); // sbb ecx, 1048576 IID6917 - __ sbbl(rcx, 16777216); // sbb ecx, 16777216 IID6918 - __ sbbl(rcx, 268435456); // sbb ecx, 268435456 IID6919 - __ sbbl(rdx, 1); // sbb edx, 1 IID6920 - __ sbbl(rdx, 16); // sbb edx, 16 IID6921 - __ sbbl(rdx, 256); // sbb edx, 256 IID6922 - __ sbbl(rdx, 4096); // sbb edx, 4096 IID6923 - __ sbbl(rdx, 65536); // sbb edx, 65536 IID6924 - __ sbbl(rdx, 1048576); // sbb edx, 1048576 IID6925 - __ sbbl(rdx, 16777216); // sbb edx, 16777216 IID6926 - __ sbbl(rdx, 268435456); // sbb edx, 268435456 IID6927 - __ sbbl(rbx, 1); // sbb ebx, 1 IID6928 - __ sbbl(rbx, 16); // sbb ebx, 16 IID6929 - __ sbbl(rbx, 256); // sbb ebx, 256 IID6930 - __ sbbl(rbx, 4096); // sbb ebx, 4096 IID6931 - __ sbbl(rbx, 65536); // sbb ebx, 65536 IID6932 - __ sbbl(rbx, 1048576); // sbb ebx, 1048576 IID6933 - __ sbbl(rbx, 16777216); // sbb ebx, 16777216 IID6934 - __ sbbl(rbx, 268435456); // sbb ebx, 268435456 IID6935 -#ifdef _LP64 - __ sbbl(r8, 1); // sbb r8d, 1 IID6936 - __ sbbl(r8, 16); // sbb r8d, 16 IID6937 - __ sbbl(r8, 256); // sbb r8d, 256 IID6938 - __ sbbl(r8, 4096); // sbb r8d, 4096 IID6939 - __ sbbl(r8, 65536); // sbb r8d, 65536 IID6940 - __ sbbl(r8, 1048576); // sbb r8d, 1048576 IID6941 - __ sbbl(r8, 16777216); // sbb r8d, 16777216 IID6942 - __ sbbl(r8, 268435456); // sbb r8d, 268435456 IID6943 - __ sbbl(r9, 1); // sbb r9d, 1 IID6944 - __ sbbl(r9, 16); // sbb r9d, 16 IID6945 - __ sbbl(r9, 256); // sbb r9d, 256 IID6946 - __ sbbl(r9, 4096); // sbb r9d, 4096 IID6947 - __ sbbl(r9, 65536); // sbb r9d, 65536 IID6948 - __ sbbl(r9, 1048576); // sbb r9d, 1048576 IID6949 - __ sbbl(r9, 16777216); // sbb r9d, 16777216 IID6950 - __ sbbl(r9, 268435456); // sbb r9d, 268435456 IID6951 - __ sbbl(r10, 1); // sbb r10d, 1 IID6952 - __ sbbl(r10, 16); // sbb r10d, 16 IID6953 - __ sbbl(r10, 256); // sbb r10d, 256 IID6954 - __ sbbl(r10, 4096); // sbb r10d, 4096 IID6955 - __ sbbl(r10, 65536); // sbb r10d, 65536 IID6956 - __ sbbl(r10, 1048576); // sbb r10d, 1048576 IID6957 - __ sbbl(r10, 16777216); // sbb r10d, 16777216 IID6958 - __ sbbl(r10, 268435456); // sbb r10d, 268435456 IID6959 - __ sbbl(r11, 1); // sbb r11d, 1 IID6960 - __ sbbl(r11, 16); // sbb r11d, 16 IID6961 - __ sbbl(r11, 256); // sbb r11d, 256 IID6962 - __ sbbl(r11, 4096); // sbb r11d, 4096 IID6963 - __ sbbl(r11, 65536); // sbb r11d, 65536 IID6964 - __ sbbl(r11, 1048576); // sbb r11d, 1048576 IID6965 - __ sbbl(r11, 16777216); // sbb r11d, 16777216 IID6966 - __ sbbl(r11, 268435456); // sbb r11d, 268435456 IID6967 - __ sbbl(r12, 1); // sbb r12d, 1 IID6968 - __ sbbl(r12, 16); // sbb r12d, 16 IID6969 - __ sbbl(r12, 256); // sbb r12d, 256 IID6970 - __ sbbl(r12, 4096); // sbb r12d, 4096 IID6971 - __ sbbl(r12, 65536); // sbb r12d, 65536 IID6972 - __ sbbl(r12, 1048576); // sbb r12d, 1048576 IID6973 - __ sbbl(r12, 16777216); // sbb r12d, 16777216 IID6974 - __ sbbl(r12, 268435456); // sbb r12d, 268435456 IID6975 - __ sbbl(r13, 1); // sbb r13d, 1 IID6976 - __ sbbl(r13, 16); // sbb r13d, 16 IID6977 - __ sbbl(r13, 256); // sbb r13d, 256 IID6978 - __ sbbl(r13, 4096); // sbb r13d, 4096 IID6979 - __ sbbl(r13, 65536); // sbb r13d, 65536 IID6980 - __ sbbl(r13, 1048576); // sbb r13d, 1048576 IID6981 - __ sbbl(r13, 16777216); // sbb r13d, 16777216 IID6982 - __ sbbl(r13, 268435456); // sbb r13d, 268435456 IID6983 - __ sbbl(r14, 1); // sbb r14d, 1 IID6984 - __ sbbl(r14, 16); // sbb r14d, 16 IID6985 - __ sbbl(r14, 256); // sbb r14d, 256 IID6986 - __ sbbl(r14, 4096); // sbb r14d, 4096 IID6987 - __ sbbl(r14, 65536); // sbb r14d, 65536 IID6988 - __ sbbl(r14, 1048576); // sbb r14d, 1048576 IID6989 - __ sbbl(r14, 16777216); // sbb r14d, 16777216 IID6990 - __ sbbl(r14, 268435456); // sbb r14d, 268435456 IID6991 - __ sbbl(r15, 1); // sbb r15d, 1 IID6992 - __ sbbl(r15, 16); // sbb r15d, 16 IID6993 - __ sbbl(r15, 256); // sbb r15d, 256 IID6994 - __ sbbl(r15, 4096); // sbb r15d, 4096 IID6995 - __ sbbl(r15, 65536); // sbb r15d, 65536 IID6996 - __ sbbl(r15, 1048576); // sbb r15d, 1048576 IID6997 - __ sbbl(r15, 16777216); // sbb r15d, 16777216 IID6998 - __ sbbl(r15, 268435456); // sbb r15d, 268435456 IID6999 - __ sbbl(r16, 1); // sbb r16d, 1 IID7000 - __ sbbl(r16, 16); // sbb r16d, 16 IID7001 - __ sbbl(r16, 256); // sbb r16d, 256 IID7002 - __ sbbl(r16, 4096); // sbb r16d, 4096 IID7003 - __ sbbl(r16, 65536); // sbb r16d, 65536 IID7004 - __ sbbl(r16, 1048576); // sbb r16d, 1048576 IID7005 - __ sbbl(r16, 16777216); // sbb r16d, 16777216 IID7006 - __ sbbl(r16, 268435456); // sbb r16d, 268435456 IID7007 - __ sbbl(r17, 1); // sbb r17d, 1 IID7008 - __ sbbl(r17, 16); // sbb r17d, 16 IID7009 - __ sbbl(r17, 256); // sbb r17d, 256 IID7010 - __ sbbl(r17, 4096); // sbb r17d, 4096 IID7011 - __ sbbl(r17, 65536); // sbb r17d, 65536 IID7012 - __ sbbl(r17, 1048576); // sbb r17d, 1048576 IID7013 - __ sbbl(r17, 16777216); // sbb r17d, 16777216 IID7014 - __ sbbl(r17, 268435456); // sbb r17d, 268435456 IID7015 - __ sbbl(r18, 1); // sbb r18d, 1 IID7016 - __ sbbl(r18, 16); // sbb r18d, 16 IID7017 - __ sbbl(r18, 256); // sbb r18d, 256 IID7018 - __ sbbl(r18, 4096); // sbb r18d, 4096 IID7019 - __ sbbl(r18, 65536); // sbb r18d, 65536 IID7020 - __ sbbl(r18, 1048576); // sbb r18d, 1048576 IID7021 - __ sbbl(r18, 16777216); // sbb r18d, 16777216 IID7022 - __ sbbl(r18, 268435456); // sbb r18d, 268435456 IID7023 - __ sbbl(r19, 1); // sbb r19d, 1 IID7024 - __ sbbl(r19, 16); // sbb r19d, 16 IID7025 - __ sbbl(r19, 256); // sbb r19d, 256 IID7026 - __ sbbl(r19, 4096); // sbb r19d, 4096 IID7027 - __ sbbl(r19, 65536); // sbb r19d, 65536 IID7028 - __ sbbl(r19, 1048576); // sbb r19d, 1048576 IID7029 - __ sbbl(r19, 16777216); // sbb r19d, 16777216 IID7030 - __ sbbl(r19, 268435456); // sbb r19d, 268435456 IID7031 - __ sbbl(r20, 1); // sbb r20d, 1 IID7032 - __ sbbl(r20, 16); // sbb r20d, 16 IID7033 - __ sbbl(r20, 256); // sbb r20d, 256 IID7034 - __ sbbl(r20, 4096); // sbb r20d, 4096 IID7035 - __ sbbl(r20, 65536); // sbb r20d, 65536 IID7036 - __ sbbl(r20, 1048576); // sbb r20d, 1048576 IID7037 - __ sbbl(r20, 16777216); // sbb r20d, 16777216 IID7038 - __ sbbl(r20, 268435456); // sbb r20d, 268435456 IID7039 - __ sbbl(r21, 1); // sbb r21d, 1 IID7040 - __ sbbl(r21, 16); // sbb r21d, 16 IID7041 - __ sbbl(r21, 256); // sbb r21d, 256 IID7042 - __ sbbl(r21, 4096); // sbb r21d, 4096 IID7043 - __ sbbl(r21, 65536); // sbb r21d, 65536 IID7044 - __ sbbl(r21, 1048576); // sbb r21d, 1048576 IID7045 - __ sbbl(r21, 16777216); // sbb r21d, 16777216 IID7046 - __ sbbl(r21, 268435456); // sbb r21d, 268435456 IID7047 - __ sbbl(r22, 1); // sbb r22d, 1 IID7048 - __ sbbl(r22, 16); // sbb r22d, 16 IID7049 - __ sbbl(r22, 256); // sbb r22d, 256 IID7050 - __ sbbl(r22, 4096); // sbb r22d, 4096 IID7051 - __ sbbl(r22, 65536); // sbb r22d, 65536 IID7052 - __ sbbl(r22, 1048576); // sbb r22d, 1048576 IID7053 - __ sbbl(r22, 16777216); // sbb r22d, 16777216 IID7054 - __ sbbl(r22, 268435456); // sbb r22d, 268435456 IID7055 - __ sbbl(r23, 1); // sbb r23d, 1 IID7056 - __ sbbl(r23, 16); // sbb r23d, 16 IID7057 - __ sbbl(r23, 256); // sbb r23d, 256 IID7058 - __ sbbl(r23, 4096); // sbb r23d, 4096 IID7059 - __ sbbl(r23, 65536); // sbb r23d, 65536 IID7060 - __ sbbl(r23, 1048576); // sbb r23d, 1048576 IID7061 - __ sbbl(r23, 16777216); // sbb r23d, 16777216 IID7062 - __ sbbl(r23, 268435456); // sbb r23d, 268435456 IID7063 - __ sbbl(r24, 1); // sbb r24d, 1 IID7064 - __ sbbl(r24, 16); // sbb r24d, 16 IID7065 - __ sbbl(r24, 256); // sbb r24d, 256 IID7066 - __ sbbl(r24, 4096); // sbb r24d, 4096 IID7067 - __ sbbl(r24, 65536); // sbb r24d, 65536 IID7068 - __ sbbl(r24, 1048576); // sbb r24d, 1048576 IID7069 - __ sbbl(r24, 16777216); // sbb r24d, 16777216 IID7070 - __ sbbl(r24, 268435456); // sbb r24d, 268435456 IID7071 - __ sbbl(r25, 1); // sbb r25d, 1 IID7072 - __ sbbl(r25, 16); // sbb r25d, 16 IID7073 - __ sbbl(r25, 256); // sbb r25d, 256 IID7074 - __ sbbl(r25, 4096); // sbb r25d, 4096 IID7075 - __ sbbl(r25, 65536); // sbb r25d, 65536 IID7076 - __ sbbl(r25, 1048576); // sbb r25d, 1048576 IID7077 - __ sbbl(r25, 16777216); // sbb r25d, 16777216 IID7078 - __ sbbl(r25, 268435456); // sbb r25d, 268435456 IID7079 - __ sbbl(r26, 1); // sbb r26d, 1 IID7080 - __ sbbl(r26, 16); // sbb r26d, 16 IID7081 - __ sbbl(r26, 256); // sbb r26d, 256 IID7082 - __ sbbl(r26, 4096); // sbb r26d, 4096 IID7083 - __ sbbl(r26, 65536); // sbb r26d, 65536 IID7084 - __ sbbl(r26, 1048576); // sbb r26d, 1048576 IID7085 - __ sbbl(r26, 16777216); // sbb r26d, 16777216 IID7086 - __ sbbl(r26, 268435456); // sbb r26d, 268435456 IID7087 - __ sbbl(r27, 1); // sbb r27d, 1 IID7088 - __ sbbl(r27, 16); // sbb r27d, 16 IID7089 - __ sbbl(r27, 256); // sbb r27d, 256 IID7090 - __ sbbl(r27, 4096); // sbb r27d, 4096 IID7091 - __ sbbl(r27, 65536); // sbb r27d, 65536 IID7092 - __ sbbl(r27, 1048576); // sbb r27d, 1048576 IID7093 - __ sbbl(r27, 16777216); // sbb r27d, 16777216 IID7094 - __ sbbl(r27, 268435456); // sbb r27d, 268435456 IID7095 - __ sbbl(r28, 1); // sbb r28d, 1 IID7096 - __ sbbl(r28, 16); // sbb r28d, 16 IID7097 - __ sbbl(r28, 256); // sbb r28d, 256 IID7098 - __ sbbl(r28, 4096); // sbb r28d, 4096 IID7099 - __ sbbl(r28, 65536); // sbb r28d, 65536 IID7100 - __ sbbl(r28, 1048576); // sbb r28d, 1048576 IID7101 - __ sbbl(r28, 16777216); // sbb r28d, 16777216 IID7102 - __ sbbl(r28, 268435456); // sbb r28d, 268435456 IID7103 - __ sbbl(r29, 1); // sbb r29d, 1 IID7104 - __ sbbl(r29, 16); // sbb r29d, 16 IID7105 - __ sbbl(r29, 256); // sbb r29d, 256 IID7106 - __ sbbl(r29, 4096); // sbb r29d, 4096 IID7107 - __ sbbl(r29, 65536); // sbb r29d, 65536 IID7108 - __ sbbl(r29, 1048576); // sbb r29d, 1048576 IID7109 - __ sbbl(r29, 16777216); // sbb r29d, 16777216 IID7110 - __ sbbl(r29, 268435456); // sbb r29d, 268435456 IID7111 - __ sbbl(r30, 1); // sbb r30d, 1 IID7112 - __ sbbl(r30, 16); // sbb r30d, 16 IID7113 - __ sbbl(r30, 256); // sbb r30d, 256 IID7114 - __ sbbl(r30, 4096); // sbb r30d, 4096 IID7115 - __ sbbl(r30, 65536); // sbb r30d, 65536 IID7116 - __ sbbl(r30, 1048576); // sbb r30d, 1048576 IID7117 - __ sbbl(r30, 16777216); // sbb r30d, 16777216 IID7118 - __ sbbl(r30, 268435456); // sbb r30d, 268435456 IID7119 - __ sbbl(r31, 1); // sbb r31d, 1 IID7120 - __ sbbl(r31, 16); // sbb r31d, 16 IID7121 - __ sbbl(r31, 256); // sbb r31d, 256 IID7122 - __ sbbl(r31, 4096); // sbb r31d, 4096 IID7123 - __ sbbl(r31, 65536); // sbb r31d, 65536 IID7124 - __ sbbl(r31, 1048576); // sbb r31d, 1048576 IID7125 - __ sbbl(r31, 16777216); // sbb r31d, 16777216 IID7126 - __ sbbl(r31, 268435456); // sbb r31d, 268435456 IID7127 -#endif // _LP64 - __ shll(rcx, 1); // shl ecx, 1 IID7128 - __ shll(rcx, 2); // shl ecx, 2 IID7129 - __ shll(rcx, 4); // shl ecx, 4 IID7130 - __ shll(rcx, 8); // shl ecx, 8 IID7131 - __ shll(rcx, 16); // shl ecx, 16 IID7132 - __ shll(rdx, 1); // shl edx, 1 IID7133 - __ shll(rdx, 2); // shl edx, 2 IID7134 - __ shll(rdx, 4); // shl edx, 4 IID7135 - __ shll(rdx, 8); // shl edx, 8 IID7136 - __ shll(rdx, 16); // shl edx, 16 IID7137 - __ shll(rbx, 1); // shl ebx, 1 IID7138 - __ shll(rbx, 2); // shl ebx, 2 IID7139 - __ shll(rbx, 4); // shl ebx, 4 IID7140 - __ shll(rbx, 8); // shl ebx, 8 IID7141 - __ shll(rbx, 16); // shl ebx, 16 IID7142 -#ifdef _LP64 - __ shll(r8, 1); // shl r8d, 1 IID7143 - __ shll(r8, 2); // shl r8d, 2 IID7144 - __ shll(r8, 4); // shl r8d, 4 IID7145 - __ shll(r8, 8); // shl r8d, 8 IID7146 - __ shll(r8, 16); // shl r8d, 16 IID7147 - __ shll(r9, 1); // shl r9d, 1 IID7148 - __ shll(r9, 2); // shl r9d, 2 IID7149 - __ shll(r9, 4); // shl r9d, 4 IID7150 - __ shll(r9, 8); // shl r9d, 8 IID7151 - __ shll(r9, 16); // shl r9d, 16 IID7152 - __ shll(r10, 1); // shl r10d, 1 IID7153 - __ shll(r10, 2); // shl r10d, 2 IID7154 - __ shll(r10, 4); // shl r10d, 4 IID7155 - __ shll(r10, 8); // shl r10d, 8 IID7156 - __ shll(r10, 16); // shl r10d, 16 IID7157 - __ shll(r11, 1); // shl r11d, 1 IID7158 - __ shll(r11, 2); // shl r11d, 2 IID7159 - __ shll(r11, 4); // shl r11d, 4 IID7160 - __ shll(r11, 8); // shl r11d, 8 IID7161 - __ shll(r11, 16); // shl r11d, 16 IID7162 - __ shll(r12, 1); // shl r12d, 1 IID7163 - __ shll(r12, 2); // shl r12d, 2 IID7164 - __ shll(r12, 4); // shl r12d, 4 IID7165 - __ shll(r12, 8); // shl r12d, 8 IID7166 - __ shll(r12, 16); // shl r12d, 16 IID7167 - __ shll(r13, 1); // shl r13d, 1 IID7168 - __ shll(r13, 2); // shl r13d, 2 IID7169 - __ shll(r13, 4); // shl r13d, 4 IID7170 - __ shll(r13, 8); // shl r13d, 8 IID7171 - __ shll(r13, 16); // shl r13d, 16 IID7172 - __ shll(r14, 1); // shl r14d, 1 IID7173 - __ shll(r14, 2); // shl r14d, 2 IID7174 - __ shll(r14, 4); // shl r14d, 4 IID7175 - __ shll(r14, 8); // shl r14d, 8 IID7176 - __ shll(r14, 16); // shl r14d, 16 IID7177 - __ shll(r15, 1); // shl r15d, 1 IID7178 - __ shll(r15, 2); // shl r15d, 2 IID7179 - __ shll(r15, 4); // shl r15d, 4 IID7180 - __ shll(r15, 8); // shl r15d, 8 IID7181 - __ shll(r15, 16); // shl r15d, 16 IID7182 - __ shll(r16, 1); // shl r16d, 1 IID7183 - __ shll(r16, 2); // shl r16d, 2 IID7184 - __ shll(r16, 4); // shl r16d, 4 IID7185 - __ shll(r16, 8); // shl r16d, 8 IID7186 - __ shll(r16, 16); // shl r16d, 16 IID7187 - __ shll(r17, 1); // shl r17d, 1 IID7188 - __ shll(r17, 2); // shl r17d, 2 IID7189 - __ shll(r17, 4); // shl r17d, 4 IID7190 - __ shll(r17, 8); // shl r17d, 8 IID7191 - __ shll(r17, 16); // shl r17d, 16 IID7192 - __ shll(r18, 1); // shl r18d, 1 IID7193 - __ shll(r18, 2); // shl r18d, 2 IID7194 - __ shll(r18, 4); // shl r18d, 4 IID7195 - __ shll(r18, 8); // shl r18d, 8 IID7196 - __ shll(r18, 16); // shl r18d, 16 IID7197 - __ shll(r19, 1); // shl r19d, 1 IID7198 - __ shll(r19, 2); // shl r19d, 2 IID7199 - __ shll(r19, 4); // shl r19d, 4 IID7200 - __ shll(r19, 8); // shl r19d, 8 IID7201 - __ shll(r19, 16); // shl r19d, 16 IID7202 - __ shll(r20, 1); // shl r20d, 1 IID7203 - __ shll(r20, 2); // shl r20d, 2 IID7204 - __ shll(r20, 4); // shl r20d, 4 IID7205 - __ shll(r20, 8); // shl r20d, 8 IID7206 - __ shll(r20, 16); // shl r20d, 16 IID7207 - __ shll(r21, 1); // shl r21d, 1 IID7208 - __ shll(r21, 2); // shl r21d, 2 IID7209 - __ shll(r21, 4); // shl r21d, 4 IID7210 - __ shll(r21, 8); // shl r21d, 8 IID7211 - __ shll(r21, 16); // shl r21d, 16 IID7212 - __ shll(r22, 1); // shl r22d, 1 IID7213 - __ shll(r22, 2); // shl r22d, 2 IID7214 - __ shll(r22, 4); // shl r22d, 4 IID7215 - __ shll(r22, 8); // shl r22d, 8 IID7216 - __ shll(r22, 16); // shl r22d, 16 IID7217 - __ shll(r23, 1); // shl r23d, 1 IID7218 - __ shll(r23, 2); // shl r23d, 2 IID7219 - __ shll(r23, 4); // shl r23d, 4 IID7220 - __ shll(r23, 8); // shl r23d, 8 IID7221 - __ shll(r23, 16); // shl r23d, 16 IID7222 - __ shll(r24, 1); // shl r24d, 1 IID7223 - __ shll(r24, 2); // shl r24d, 2 IID7224 - __ shll(r24, 4); // shl r24d, 4 IID7225 - __ shll(r24, 8); // shl r24d, 8 IID7226 - __ shll(r24, 16); // shl r24d, 16 IID7227 - __ shll(r25, 1); // shl r25d, 1 IID7228 - __ shll(r25, 2); // shl r25d, 2 IID7229 - __ shll(r25, 4); // shl r25d, 4 IID7230 - __ shll(r25, 8); // shl r25d, 8 IID7231 - __ shll(r25, 16); // shl r25d, 16 IID7232 - __ shll(r26, 1); // shl r26d, 1 IID7233 - __ shll(r26, 2); // shl r26d, 2 IID7234 - __ shll(r26, 4); // shl r26d, 4 IID7235 - __ shll(r26, 8); // shl r26d, 8 IID7236 - __ shll(r26, 16); // shl r26d, 16 IID7237 - __ shll(r27, 1); // shl r27d, 1 IID7238 - __ shll(r27, 2); // shl r27d, 2 IID7239 - __ shll(r27, 4); // shl r27d, 4 IID7240 - __ shll(r27, 8); // shl r27d, 8 IID7241 - __ shll(r27, 16); // shl r27d, 16 IID7242 - __ shll(r28, 1); // shl r28d, 1 IID7243 - __ shll(r28, 2); // shl r28d, 2 IID7244 - __ shll(r28, 4); // shl r28d, 4 IID7245 - __ shll(r28, 8); // shl r28d, 8 IID7246 - __ shll(r28, 16); // shl r28d, 16 IID7247 - __ shll(r29, 1); // shl r29d, 1 IID7248 - __ shll(r29, 2); // shl r29d, 2 IID7249 - __ shll(r29, 4); // shl r29d, 4 IID7250 - __ shll(r29, 8); // shl r29d, 8 IID7251 - __ shll(r29, 16); // shl r29d, 16 IID7252 - __ shll(r30, 1); // shl r30d, 1 IID7253 - __ shll(r30, 2); // shl r30d, 2 IID7254 - __ shll(r30, 4); // shl r30d, 4 IID7255 - __ shll(r30, 8); // shl r30d, 8 IID7256 - __ shll(r30, 16); // shl r30d, 16 IID7257 - __ shll(r31, 1); // shl r31d, 1 IID7258 - __ shll(r31, 2); // shl r31d, 2 IID7259 - __ shll(r31, 4); // shl r31d, 4 IID7260 - __ shll(r31, 8); // shl r31d, 8 IID7261 - __ shll(r31, 16); // shl r31d, 16 IID7262 -#endif // _LP64 - __ shrl(rcx, 1); // shr ecx, 1 IID7263 - __ shrl(rcx, 2); // shr ecx, 2 IID7264 - __ shrl(rcx, 4); // shr ecx, 4 IID7265 - __ shrl(rcx, 8); // shr ecx, 8 IID7266 - __ shrl(rcx, 16); // shr ecx, 16 IID7267 - __ shrl(rdx, 1); // shr edx, 1 IID7268 - __ shrl(rdx, 2); // shr edx, 2 IID7269 - __ shrl(rdx, 4); // shr edx, 4 IID7270 - __ shrl(rdx, 8); // shr edx, 8 IID7271 - __ shrl(rdx, 16); // shr edx, 16 IID7272 - __ shrl(rbx, 1); // shr ebx, 1 IID7273 - __ shrl(rbx, 2); // shr ebx, 2 IID7274 - __ shrl(rbx, 4); // shr ebx, 4 IID7275 - __ shrl(rbx, 8); // shr ebx, 8 IID7276 - __ shrl(rbx, 16); // shr ebx, 16 IID7277 -#ifdef _LP64 - __ shrl(r8, 1); // shr r8d, 1 IID7278 - __ shrl(r8, 2); // shr r8d, 2 IID7279 - __ shrl(r8, 4); // shr r8d, 4 IID7280 - __ shrl(r8, 8); // shr r8d, 8 IID7281 - __ shrl(r8, 16); // shr r8d, 16 IID7282 - __ shrl(r9, 1); // shr r9d, 1 IID7283 - __ shrl(r9, 2); // shr r9d, 2 IID7284 - __ shrl(r9, 4); // shr r9d, 4 IID7285 - __ shrl(r9, 8); // shr r9d, 8 IID7286 - __ shrl(r9, 16); // shr r9d, 16 IID7287 - __ shrl(r10, 1); // shr r10d, 1 IID7288 - __ shrl(r10, 2); // shr r10d, 2 IID7289 - __ shrl(r10, 4); // shr r10d, 4 IID7290 - __ shrl(r10, 8); // shr r10d, 8 IID7291 - __ shrl(r10, 16); // shr r10d, 16 IID7292 - __ shrl(r11, 1); // shr r11d, 1 IID7293 - __ shrl(r11, 2); // shr r11d, 2 IID7294 - __ shrl(r11, 4); // shr r11d, 4 IID7295 - __ shrl(r11, 8); // shr r11d, 8 IID7296 - __ shrl(r11, 16); // shr r11d, 16 IID7297 - __ shrl(r12, 1); // shr r12d, 1 IID7298 - __ shrl(r12, 2); // shr r12d, 2 IID7299 - __ shrl(r12, 4); // shr r12d, 4 IID7300 - __ shrl(r12, 8); // shr r12d, 8 IID7301 - __ shrl(r12, 16); // shr r12d, 16 IID7302 - __ shrl(r13, 1); // shr r13d, 1 IID7303 - __ shrl(r13, 2); // shr r13d, 2 IID7304 - __ shrl(r13, 4); // shr r13d, 4 IID7305 - __ shrl(r13, 8); // shr r13d, 8 IID7306 - __ shrl(r13, 16); // shr r13d, 16 IID7307 - __ shrl(r14, 1); // shr r14d, 1 IID7308 - __ shrl(r14, 2); // shr r14d, 2 IID7309 - __ shrl(r14, 4); // shr r14d, 4 IID7310 - __ shrl(r14, 8); // shr r14d, 8 IID7311 - __ shrl(r14, 16); // shr r14d, 16 IID7312 - __ shrl(r15, 1); // shr r15d, 1 IID7313 - __ shrl(r15, 2); // shr r15d, 2 IID7314 - __ shrl(r15, 4); // shr r15d, 4 IID7315 - __ shrl(r15, 8); // shr r15d, 8 IID7316 - __ shrl(r15, 16); // shr r15d, 16 IID7317 - __ shrl(r16, 1); // shr r16d, 1 IID7318 - __ shrl(r16, 2); // shr r16d, 2 IID7319 - __ shrl(r16, 4); // shr r16d, 4 IID7320 - __ shrl(r16, 8); // shr r16d, 8 IID7321 - __ shrl(r16, 16); // shr r16d, 16 IID7322 - __ shrl(r17, 1); // shr r17d, 1 IID7323 - __ shrl(r17, 2); // shr r17d, 2 IID7324 - __ shrl(r17, 4); // shr r17d, 4 IID7325 - __ shrl(r17, 8); // shr r17d, 8 IID7326 - __ shrl(r17, 16); // shr r17d, 16 IID7327 - __ shrl(r18, 1); // shr r18d, 1 IID7328 - __ shrl(r18, 2); // shr r18d, 2 IID7329 - __ shrl(r18, 4); // shr r18d, 4 IID7330 - __ shrl(r18, 8); // shr r18d, 8 IID7331 - __ shrl(r18, 16); // shr r18d, 16 IID7332 - __ shrl(r19, 1); // shr r19d, 1 IID7333 - __ shrl(r19, 2); // shr r19d, 2 IID7334 - __ shrl(r19, 4); // shr r19d, 4 IID7335 - __ shrl(r19, 8); // shr r19d, 8 IID7336 - __ shrl(r19, 16); // shr r19d, 16 IID7337 - __ shrl(r20, 1); // shr r20d, 1 IID7338 - __ shrl(r20, 2); // shr r20d, 2 IID7339 - __ shrl(r20, 4); // shr r20d, 4 IID7340 - __ shrl(r20, 8); // shr r20d, 8 IID7341 - __ shrl(r20, 16); // shr r20d, 16 IID7342 - __ shrl(r21, 1); // shr r21d, 1 IID7343 - __ shrl(r21, 2); // shr r21d, 2 IID7344 - __ shrl(r21, 4); // shr r21d, 4 IID7345 - __ shrl(r21, 8); // shr r21d, 8 IID7346 - __ shrl(r21, 16); // shr r21d, 16 IID7347 - __ shrl(r22, 1); // shr r22d, 1 IID7348 - __ shrl(r22, 2); // shr r22d, 2 IID7349 - __ shrl(r22, 4); // shr r22d, 4 IID7350 - __ shrl(r22, 8); // shr r22d, 8 IID7351 - __ shrl(r22, 16); // shr r22d, 16 IID7352 - __ shrl(r23, 1); // shr r23d, 1 IID7353 - __ shrl(r23, 2); // shr r23d, 2 IID7354 - __ shrl(r23, 4); // shr r23d, 4 IID7355 - __ shrl(r23, 8); // shr r23d, 8 IID7356 - __ shrl(r23, 16); // shr r23d, 16 IID7357 - __ shrl(r24, 1); // shr r24d, 1 IID7358 - __ shrl(r24, 2); // shr r24d, 2 IID7359 - __ shrl(r24, 4); // shr r24d, 4 IID7360 - __ shrl(r24, 8); // shr r24d, 8 IID7361 - __ shrl(r24, 16); // shr r24d, 16 IID7362 - __ shrl(r25, 1); // shr r25d, 1 IID7363 - __ shrl(r25, 2); // shr r25d, 2 IID7364 - __ shrl(r25, 4); // shr r25d, 4 IID7365 - __ shrl(r25, 8); // shr r25d, 8 IID7366 - __ shrl(r25, 16); // shr r25d, 16 IID7367 - __ shrl(r26, 1); // shr r26d, 1 IID7368 - __ shrl(r26, 2); // shr r26d, 2 IID7369 - __ shrl(r26, 4); // shr r26d, 4 IID7370 - __ shrl(r26, 8); // shr r26d, 8 IID7371 - __ shrl(r26, 16); // shr r26d, 16 IID7372 - __ shrl(r27, 1); // shr r27d, 1 IID7373 - __ shrl(r27, 2); // shr r27d, 2 IID7374 - __ shrl(r27, 4); // shr r27d, 4 IID7375 - __ shrl(r27, 8); // shr r27d, 8 IID7376 - __ shrl(r27, 16); // shr r27d, 16 IID7377 - __ shrl(r28, 1); // shr r28d, 1 IID7378 - __ shrl(r28, 2); // shr r28d, 2 IID7379 - __ shrl(r28, 4); // shr r28d, 4 IID7380 - __ shrl(r28, 8); // shr r28d, 8 IID7381 - __ shrl(r28, 16); // shr r28d, 16 IID7382 - __ shrl(r29, 1); // shr r29d, 1 IID7383 - __ shrl(r29, 2); // shr r29d, 2 IID7384 - __ shrl(r29, 4); // shr r29d, 4 IID7385 - __ shrl(r29, 8); // shr r29d, 8 IID7386 - __ shrl(r29, 16); // shr r29d, 16 IID7387 - __ shrl(r30, 1); // shr r30d, 1 IID7388 - __ shrl(r30, 2); // shr r30d, 2 IID7389 - __ shrl(r30, 4); // shr r30d, 4 IID7390 - __ shrl(r30, 8); // shr r30d, 8 IID7391 - __ shrl(r30, 16); // shr r30d, 16 IID7392 - __ shrl(r31, 1); // shr r31d, 1 IID7393 - __ shrl(r31, 2); // shr r31d, 2 IID7394 - __ shrl(r31, 4); // shr r31d, 4 IID7395 - __ shrl(r31, 8); // shr r31d, 8 IID7396 - __ shrl(r31, 16); // shr r31d, 16 IID7397 -#endif // _LP64 - __ subl(rcx, 1); // sub ecx, 1 IID7398 - __ subl(rcx, 16); // sub ecx, 16 IID7399 - __ subl(rcx, 256); // sub ecx, 256 IID7400 - __ subl(rcx, 4096); // sub ecx, 4096 IID7401 - __ subl(rcx, 65536); // sub ecx, 65536 IID7402 - __ subl(rcx, 1048576); // sub ecx, 1048576 IID7403 - __ subl(rcx, 16777216); // sub ecx, 16777216 IID7404 - __ subl(rcx, 268435456); // sub ecx, 268435456 IID7405 - __ subl(rdx, 1); // sub edx, 1 IID7406 - __ subl(rdx, 16); // sub edx, 16 IID7407 - __ subl(rdx, 256); // sub edx, 256 IID7408 - __ subl(rdx, 4096); // sub edx, 4096 IID7409 - __ subl(rdx, 65536); // sub edx, 65536 IID7410 - __ subl(rdx, 1048576); // sub edx, 1048576 IID7411 - __ subl(rdx, 16777216); // sub edx, 16777216 IID7412 - __ subl(rdx, 268435456); // sub edx, 268435456 IID7413 - __ subl(rbx, 1); // sub ebx, 1 IID7414 - __ subl(rbx, 16); // sub ebx, 16 IID7415 - __ subl(rbx, 256); // sub ebx, 256 IID7416 - __ subl(rbx, 4096); // sub ebx, 4096 IID7417 - __ subl(rbx, 65536); // sub ebx, 65536 IID7418 - __ subl(rbx, 1048576); // sub ebx, 1048576 IID7419 - __ subl(rbx, 16777216); // sub ebx, 16777216 IID7420 - __ subl(rbx, 268435456); // sub ebx, 268435456 IID7421 -#ifdef _LP64 - __ subl(r8, 1); // sub r8d, 1 IID7422 - __ subl(r8, 16); // sub r8d, 16 IID7423 - __ subl(r8, 256); // sub r8d, 256 IID7424 - __ subl(r8, 4096); // sub r8d, 4096 IID7425 - __ subl(r8, 65536); // sub r8d, 65536 IID7426 - __ subl(r8, 1048576); // sub r8d, 1048576 IID7427 - __ subl(r8, 16777216); // sub r8d, 16777216 IID7428 - __ subl(r8, 268435456); // sub r8d, 268435456 IID7429 - __ subl(r9, 1); // sub r9d, 1 IID7430 - __ subl(r9, 16); // sub r9d, 16 IID7431 - __ subl(r9, 256); // sub r9d, 256 IID7432 - __ subl(r9, 4096); // sub r9d, 4096 IID7433 - __ subl(r9, 65536); // sub r9d, 65536 IID7434 - __ subl(r9, 1048576); // sub r9d, 1048576 IID7435 - __ subl(r9, 16777216); // sub r9d, 16777216 IID7436 - __ subl(r9, 268435456); // sub r9d, 268435456 IID7437 - __ subl(r10, 1); // sub r10d, 1 IID7438 - __ subl(r10, 16); // sub r10d, 16 IID7439 - __ subl(r10, 256); // sub r10d, 256 IID7440 - __ subl(r10, 4096); // sub r10d, 4096 IID7441 - __ subl(r10, 65536); // sub r10d, 65536 IID7442 - __ subl(r10, 1048576); // sub r10d, 1048576 IID7443 - __ subl(r10, 16777216); // sub r10d, 16777216 IID7444 - __ subl(r10, 268435456); // sub r10d, 268435456 IID7445 - __ subl(r11, 1); // sub r11d, 1 IID7446 - __ subl(r11, 16); // sub r11d, 16 IID7447 - __ subl(r11, 256); // sub r11d, 256 IID7448 - __ subl(r11, 4096); // sub r11d, 4096 IID7449 - __ subl(r11, 65536); // sub r11d, 65536 IID7450 - __ subl(r11, 1048576); // sub r11d, 1048576 IID7451 - __ subl(r11, 16777216); // sub r11d, 16777216 IID7452 - __ subl(r11, 268435456); // sub r11d, 268435456 IID7453 - __ subl(r12, 1); // sub r12d, 1 IID7454 - __ subl(r12, 16); // sub r12d, 16 IID7455 - __ subl(r12, 256); // sub r12d, 256 IID7456 - __ subl(r12, 4096); // sub r12d, 4096 IID7457 - __ subl(r12, 65536); // sub r12d, 65536 IID7458 - __ subl(r12, 1048576); // sub r12d, 1048576 IID7459 - __ subl(r12, 16777216); // sub r12d, 16777216 IID7460 - __ subl(r12, 268435456); // sub r12d, 268435456 IID7461 - __ subl(r13, 1); // sub r13d, 1 IID7462 - __ subl(r13, 16); // sub r13d, 16 IID7463 - __ subl(r13, 256); // sub r13d, 256 IID7464 - __ subl(r13, 4096); // sub r13d, 4096 IID7465 - __ subl(r13, 65536); // sub r13d, 65536 IID7466 - __ subl(r13, 1048576); // sub r13d, 1048576 IID7467 - __ subl(r13, 16777216); // sub r13d, 16777216 IID7468 - __ subl(r13, 268435456); // sub r13d, 268435456 IID7469 - __ subl(r14, 1); // sub r14d, 1 IID7470 - __ subl(r14, 16); // sub r14d, 16 IID7471 - __ subl(r14, 256); // sub r14d, 256 IID7472 - __ subl(r14, 4096); // sub r14d, 4096 IID7473 - __ subl(r14, 65536); // sub r14d, 65536 IID7474 - __ subl(r14, 1048576); // sub r14d, 1048576 IID7475 - __ subl(r14, 16777216); // sub r14d, 16777216 IID7476 - __ subl(r14, 268435456); // sub r14d, 268435456 IID7477 - __ subl(r15, 1); // sub r15d, 1 IID7478 - __ subl(r15, 16); // sub r15d, 16 IID7479 - __ subl(r15, 256); // sub r15d, 256 IID7480 - __ subl(r15, 4096); // sub r15d, 4096 IID7481 - __ subl(r15, 65536); // sub r15d, 65536 IID7482 - __ subl(r15, 1048576); // sub r15d, 1048576 IID7483 - __ subl(r15, 16777216); // sub r15d, 16777216 IID7484 - __ subl(r15, 268435456); // sub r15d, 268435456 IID7485 - __ subl(r16, 1); // sub r16d, 1 IID7486 - __ subl(r16, 16); // sub r16d, 16 IID7487 - __ subl(r16, 256); // sub r16d, 256 IID7488 - __ subl(r16, 4096); // sub r16d, 4096 IID7489 - __ subl(r16, 65536); // sub r16d, 65536 IID7490 - __ subl(r16, 1048576); // sub r16d, 1048576 IID7491 - __ subl(r16, 16777216); // sub r16d, 16777216 IID7492 - __ subl(r16, 268435456); // sub r16d, 268435456 IID7493 - __ subl(r17, 1); // sub r17d, 1 IID7494 - __ subl(r17, 16); // sub r17d, 16 IID7495 - __ subl(r17, 256); // sub r17d, 256 IID7496 - __ subl(r17, 4096); // sub r17d, 4096 IID7497 - __ subl(r17, 65536); // sub r17d, 65536 IID7498 - __ subl(r17, 1048576); // sub r17d, 1048576 IID7499 - __ subl(r17, 16777216); // sub r17d, 16777216 IID7500 - __ subl(r17, 268435456); // sub r17d, 268435456 IID7501 - __ subl(r18, 1); // sub r18d, 1 IID7502 - __ subl(r18, 16); // sub r18d, 16 IID7503 - __ subl(r18, 256); // sub r18d, 256 IID7504 - __ subl(r18, 4096); // sub r18d, 4096 IID7505 - __ subl(r18, 65536); // sub r18d, 65536 IID7506 - __ subl(r18, 1048576); // sub r18d, 1048576 IID7507 - __ subl(r18, 16777216); // sub r18d, 16777216 IID7508 - __ subl(r18, 268435456); // sub r18d, 268435456 IID7509 - __ subl(r19, 1); // sub r19d, 1 IID7510 - __ subl(r19, 16); // sub r19d, 16 IID7511 - __ subl(r19, 256); // sub r19d, 256 IID7512 - __ subl(r19, 4096); // sub r19d, 4096 IID7513 - __ subl(r19, 65536); // sub r19d, 65536 IID7514 - __ subl(r19, 1048576); // sub r19d, 1048576 IID7515 - __ subl(r19, 16777216); // sub r19d, 16777216 IID7516 - __ subl(r19, 268435456); // sub r19d, 268435456 IID7517 - __ subl(r20, 1); // sub r20d, 1 IID7518 - __ subl(r20, 16); // sub r20d, 16 IID7519 - __ subl(r20, 256); // sub r20d, 256 IID7520 - __ subl(r20, 4096); // sub r20d, 4096 IID7521 - __ subl(r20, 65536); // sub r20d, 65536 IID7522 - __ subl(r20, 1048576); // sub r20d, 1048576 IID7523 - __ subl(r20, 16777216); // sub r20d, 16777216 IID7524 - __ subl(r20, 268435456); // sub r20d, 268435456 IID7525 - __ subl(r21, 1); // sub r21d, 1 IID7526 - __ subl(r21, 16); // sub r21d, 16 IID7527 - __ subl(r21, 256); // sub r21d, 256 IID7528 - __ subl(r21, 4096); // sub r21d, 4096 IID7529 - __ subl(r21, 65536); // sub r21d, 65536 IID7530 - __ subl(r21, 1048576); // sub r21d, 1048576 IID7531 - __ subl(r21, 16777216); // sub r21d, 16777216 IID7532 - __ subl(r21, 268435456); // sub r21d, 268435456 IID7533 - __ subl(r22, 1); // sub r22d, 1 IID7534 - __ subl(r22, 16); // sub r22d, 16 IID7535 - __ subl(r22, 256); // sub r22d, 256 IID7536 - __ subl(r22, 4096); // sub r22d, 4096 IID7537 - __ subl(r22, 65536); // sub r22d, 65536 IID7538 - __ subl(r22, 1048576); // sub r22d, 1048576 IID7539 - __ subl(r22, 16777216); // sub r22d, 16777216 IID7540 - __ subl(r22, 268435456); // sub r22d, 268435456 IID7541 - __ subl(r23, 1); // sub r23d, 1 IID7542 - __ subl(r23, 16); // sub r23d, 16 IID7543 - __ subl(r23, 256); // sub r23d, 256 IID7544 - __ subl(r23, 4096); // sub r23d, 4096 IID7545 - __ subl(r23, 65536); // sub r23d, 65536 IID7546 - __ subl(r23, 1048576); // sub r23d, 1048576 IID7547 - __ subl(r23, 16777216); // sub r23d, 16777216 IID7548 - __ subl(r23, 268435456); // sub r23d, 268435456 IID7549 - __ subl(r24, 1); // sub r24d, 1 IID7550 - __ subl(r24, 16); // sub r24d, 16 IID7551 - __ subl(r24, 256); // sub r24d, 256 IID7552 - __ subl(r24, 4096); // sub r24d, 4096 IID7553 - __ subl(r24, 65536); // sub r24d, 65536 IID7554 - __ subl(r24, 1048576); // sub r24d, 1048576 IID7555 - __ subl(r24, 16777216); // sub r24d, 16777216 IID7556 - __ subl(r24, 268435456); // sub r24d, 268435456 IID7557 - __ subl(r25, 1); // sub r25d, 1 IID7558 - __ subl(r25, 16); // sub r25d, 16 IID7559 - __ subl(r25, 256); // sub r25d, 256 IID7560 - __ subl(r25, 4096); // sub r25d, 4096 IID7561 - __ subl(r25, 65536); // sub r25d, 65536 IID7562 - __ subl(r25, 1048576); // sub r25d, 1048576 IID7563 - __ subl(r25, 16777216); // sub r25d, 16777216 IID7564 - __ subl(r25, 268435456); // sub r25d, 268435456 IID7565 - __ subl(r26, 1); // sub r26d, 1 IID7566 - __ subl(r26, 16); // sub r26d, 16 IID7567 - __ subl(r26, 256); // sub r26d, 256 IID7568 - __ subl(r26, 4096); // sub r26d, 4096 IID7569 - __ subl(r26, 65536); // sub r26d, 65536 IID7570 - __ subl(r26, 1048576); // sub r26d, 1048576 IID7571 - __ subl(r26, 16777216); // sub r26d, 16777216 IID7572 - __ subl(r26, 268435456); // sub r26d, 268435456 IID7573 - __ subl(r27, 1); // sub r27d, 1 IID7574 - __ subl(r27, 16); // sub r27d, 16 IID7575 - __ subl(r27, 256); // sub r27d, 256 IID7576 - __ subl(r27, 4096); // sub r27d, 4096 IID7577 - __ subl(r27, 65536); // sub r27d, 65536 IID7578 - __ subl(r27, 1048576); // sub r27d, 1048576 IID7579 - __ subl(r27, 16777216); // sub r27d, 16777216 IID7580 - __ subl(r27, 268435456); // sub r27d, 268435456 IID7581 - __ subl(r28, 1); // sub r28d, 1 IID7582 - __ subl(r28, 16); // sub r28d, 16 IID7583 - __ subl(r28, 256); // sub r28d, 256 IID7584 - __ subl(r28, 4096); // sub r28d, 4096 IID7585 - __ subl(r28, 65536); // sub r28d, 65536 IID7586 - __ subl(r28, 1048576); // sub r28d, 1048576 IID7587 - __ subl(r28, 16777216); // sub r28d, 16777216 IID7588 - __ subl(r28, 268435456); // sub r28d, 268435456 IID7589 - __ subl(r29, 1); // sub r29d, 1 IID7590 - __ subl(r29, 16); // sub r29d, 16 IID7591 - __ subl(r29, 256); // sub r29d, 256 IID7592 - __ subl(r29, 4096); // sub r29d, 4096 IID7593 - __ subl(r29, 65536); // sub r29d, 65536 IID7594 - __ subl(r29, 1048576); // sub r29d, 1048576 IID7595 - __ subl(r29, 16777216); // sub r29d, 16777216 IID7596 - __ subl(r29, 268435456); // sub r29d, 268435456 IID7597 - __ subl(r30, 1); // sub r30d, 1 IID7598 - __ subl(r30, 16); // sub r30d, 16 IID7599 - __ subl(r30, 256); // sub r30d, 256 IID7600 - __ subl(r30, 4096); // sub r30d, 4096 IID7601 - __ subl(r30, 65536); // sub r30d, 65536 IID7602 - __ subl(r30, 1048576); // sub r30d, 1048576 IID7603 - __ subl(r30, 16777216); // sub r30d, 16777216 IID7604 - __ subl(r30, 268435456); // sub r30d, 268435456 IID7605 - __ subl(r31, 1); // sub r31d, 1 IID7606 - __ subl(r31, 16); // sub r31d, 16 IID7607 - __ subl(r31, 256); // sub r31d, 256 IID7608 - __ subl(r31, 4096); // sub r31d, 4096 IID7609 - __ subl(r31, 65536); // sub r31d, 65536 IID7610 - __ subl(r31, 1048576); // sub r31d, 1048576 IID7611 - __ subl(r31, 16777216); // sub r31d, 16777216 IID7612 - __ subl(r31, 268435456); // sub r31d, 268435456 IID7613 -#endif // _LP64 - __ xorl(rcx, 1); // xor ecx, 1 IID7614 - __ xorl(rcx, 16); // xor ecx, 16 IID7615 - __ xorl(rcx, 256); // xor ecx, 256 IID7616 - __ xorl(rcx, 4096); // xor ecx, 4096 IID7617 - __ xorl(rcx, 65536); // xor ecx, 65536 IID7618 - __ xorl(rcx, 1048576); // xor ecx, 1048576 IID7619 - __ xorl(rcx, 16777216); // xor ecx, 16777216 IID7620 - __ xorl(rcx, 268435456); // xor ecx, 268435456 IID7621 - __ xorl(rdx, 1); // xor edx, 1 IID7622 - __ xorl(rdx, 16); // xor edx, 16 IID7623 - __ xorl(rdx, 256); // xor edx, 256 IID7624 - __ xorl(rdx, 4096); // xor edx, 4096 IID7625 - __ xorl(rdx, 65536); // xor edx, 65536 IID7626 - __ xorl(rdx, 1048576); // xor edx, 1048576 IID7627 - __ xorl(rdx, 16777216); // xor edx, 16777216 IID7628 - __ xorl(rdx, 268435456); // xor edx, 268435456 IID7629 - __ xorl(rbx, 1); // xor ebx, 1 IID7630 - __ xorl(rbx, 16); // xor ebx, 16 IID7631 - __ xorl(rbx, 256); // xor ebx, 256 IID7632 - __ xorl(rbx, 4096); // xor ebx, 4096 IID7633 - __ xorl(rbx, 65536); // xor ebx, 65536 IID7634 - __ xorl(rbx, 1048576); // xor ebx, 1048576 IID7635 - __ xorl(rbx, 16777216); // xor ebx, 16777216 IID7636 - __ xorl(rbx, 268435456); // xor ebx, 268435456 IID7637 -#ifdef _LP64 - __ xorl(r8, 1); // xor r8d, 1 IID7638 - __ xorl(r8, 16); // xor r8d, 16 IID7639 - __ xorl(r8, 256); // xor r8d, 256 IID7640 - __ xorl(r8, 4096); // xor r8d, 4096 IID7641 - __ xorl(r8, 65536); // xor r8d, 65536 IID7642 - __ xorl(r8, 1048576); // xor r8d, 1048576 IID7643 - __ xorl(r8, 16777216); // xor r8d, 16777216 IID7644 - __ xorl(r8, 268435456); // xor r8d, 268435456 IID7645 - __ xorl(r9, 1); // xor r9d, 1 IID7646 - __ xorl(r9, 16); // xor r9d, 16 IID7647 - __ xorl(r9, 256); // xor r9d, 256 IID7648 - __ xorl(r9, 4096); // xor r9d, 4096 IID7649 - __ xorl(r9, 65536); // xor r9d, 65536 IID7650 - __ xorl(r9, 1048576); // xor r9d, 1048576 IID7651 - __ xorl(r9, 16777216); // xor r9d, 16777216 IID7652 - __ xorl(r9, 268435456); // xor r9d, 268435456 IID7653 - __ xorl(r10, 1); // xor r10d, 1 IID7654 - __ xorl(r10, 16); // xor r10d, 16 IID7655 - __ xorl(r10, 256); // xor r10d, 256 IID7656 - __ xorl(r10, 4096); // xor r10d, 4096 IID7657 - __ xorl(r10, 65536); // xor r10d, 65536 IID7658 - __ xorl(r10, 1048576); // xor r10d, 1048576 IID7659 - __ xorl(r10, 16777216); // xor r10d, 16777216 IID7660 - __ xorl(r10, 268435456); // xor r10d, 268435456 IID7661 - __ xorl(r11, 1); // xor r11d, 1 IID7662 - __ xorl(r11, 16); // xor r11d, 16 IID7663 - __ xorl(r11, 256); // xor r11d, 256 IID7664 - __ xorl(r11, 4096); // xor r11d, 4096 IID7665 - __ xorl(r11, 65536); // xor r11d, 65536 IID7666 - __ xorl(r11, 1048576); // xor r11d, 1048576 IID7667 - __ xorl(r11, 16777216); // xor r11d, 16777216 IID7668 - __ xorl(r11, 268435456); // xor r11d, 268435456 IID7669 - __ xorl(r12, 1); // xor r12d, 1 IID7670 - __ xorl(r12, 16); // xor r12d, 16 IID7671 - __ xorl(r12, 256); // xor r12d, 256 IID7672 - __ xorl(r12, 4096); // xor r12d, 4096 IID7673 - __ xorl(r12, 65536); // xor r12d, 65536 IID7674 - __ xorl(r12, 1048576); // xor r12d, 1048576 IID7675 - __ xorl(r12, 16777216); // xor r12d, 16777216 IID7676 - __ xorl(r12, 268435456); // xor r12d, 268435456 IID7677 - __ xorl(r13, 1); // xor r13d, 1 IID7678 - __ xorl(r13, 16); // xor r13d, 16 IID7679 - __ xorl(r13, 256); // xor r13d, 256 IID7680 - __ xorl(r13, 4096); // xor r13d, 4096 IID7681 - __ xorl(r13, 65536); // xor r13d, 65536 IID7682 - __ xorl(r13, 1048576); // xor r13d, 1048576 IID7683 - __ xorl(r13, 16777216); // xor r13d, 16777216 IID7684 - __ xorl(r13, 268435456); // xor r13d, 268435456 IID7685 - __ xorl(r14, 1); // xor r14d, 1 IID7686 - __ xorl(r14, 16); // xor r14d, 16 IID7687 - __ xorl(r14, 256); // xor r14d, 256 IID7688 - __ xorl(r14, 4096); // xor r14d, 4096 IID7689 - __ xorl(r14, 65536); // xor r14d, 65536 IID7690 - __ xorl(r14, 1048576); // xor r14d, 1048576 IID7691 - __ xorl(r14, 16777216); // xor r14d, 16777216 IID7692 - __ xorl(r14, 268435456); // xor r14d, 268435456 IID7693 - __ xorl(r15, 1); // xor r15d, 1 IID7694 - __ xorl(r15, 16); // xor r15d, 16 IID7695 - __ xorl(r15, 256); // xor r15d, 256 IID7696 - __ xorl(r15, 4096); // xor r15d, 4096 IID7697 - __ xorl(r15, 65536); // xor r15d, 65536 IID7698 - __ xorl(r15, 1048576); // xor r15d, 1048576 IID7699 - __ xorl(r15, 16777216); // xor r15d, 16777216 IID7700 - __ xorl(r15, 268435456); // xor r15d, 268435456 IID7701 - __ xorl(r16, 1); // xor r16d, 1 IID7702 - __ xorl(r16, 16); // xor r16d, 16 IID7703 - __ xorl(r16, 256); // xor r16d, 256 IID7704 - __ xorl(r16, 4096); // xor r16d, 4096 IID7705 - __ xorl(r16, 65536); // xor r16d, 65536 IID7706 - __ xorl(r16, 1048576); // xor r16d, 1048576 IID7707 - __ xorl(r16, 16777216); // xor r16d, 16777216 IID7708 - __ xorl(r16, 268435456); // xor r16d, 268435456 IID7709 - __ xorl(r17, 1); // xor r17d, 1 IID7710 - __ xorl(r17, 16); // xor r17d, 16 IID7711 - __ xorl(r17, 256); // xor r17d, 256 IID7712 - __ xorl(r17, 4096); // xor r17d, 4096 IID7713 - __ xorl(r17, 65536); // xor r17d, 65536 IID7714 - __ xorl(r17, 1048576); // xor r17d, 1048576 IID7715 - __ xorl(r17, 16777216); // xor r17d, 16777216 IID7716 - __ xorl(r17, 268435456); // xor r17d, 268435456 IID7717 - __ xorl(r18, 1); // xor r18d, 1 IID7718 - __ xorl(r18, 16); // xor r18d, 16 IID7719 - __ xorl(r18, 256); // xor r18d, 256 IID7720 - __ xorl(r18, 4096); // xor r18d, 4096 IID7721 - __ xorl(r18, 65536); // xor r18d, 65536 IID7722 - __ xorl(r18, 1048576); // xor r18d, 1048576 IID7723 - __ xorl(r18, 16777216); // xor r18d, 16777216 IID7724 - __ xorl(r18, 268435456); // xor r18d, 268435456 IID7725 - __ xorl(r19, 1); // xor r19d, 1 IID7726 - __ xorl(r19, 16); // xor r19d, 16 IID7727 - __ xorl(r19, 256); // xor r19d, 256 IID7728 - __ xorl(r19, 4096); // xor r19d, 4096 IID7729 - __ xorl(r19, 65536); // xor r19d, 65536 IID7730 - __ xorl(r19, 1048576); // xor r19d, 1048576 IID7731 - __ xorl(r19, 16777216); // xor r19d, 16777216 IID7732 - __ xorl(r19, 268435456); // xor r19d, 268435456 IID7733 - __ xorl(r20, 1); // xor r20d, 1 IID7734 - __ xorl(r20, 16); // xor r20d, 16 IID7735 - __ xorl(r20, 256); // xor r20d, 256 IID7736 - __ xorl(r20, 4096); // xor r20d, 4096 IID7737 - __ xorl(r20, 65536); // xor r20d, 65536 IID7738 - __ xorl(r20, 1048576); // xor r20d, 1048576 IID7739 - __ xorl(r20, 16777216); // xor r20d, 16777216 IID7740 - __ xorl(r20, 268435456); // xor r20d, 268435456 IID7741 - __ xorl(r21, 1); // xor r21d, 1 IID7742 - __ xorl(r21, 16); // xor r21d, 16 IID7743 - __ xorl(r21, 256); // xor r21d, 256 IID7744 - __ xorl(r21, 4096); // xor r21d, 4096 IID7745 - __ xorl(r21, 65536); // xor r21d, 65536 IID7746 - __ xorl(r21, 1048576); // xor r21d, 1048576 IID7747 - __ xorl(r21, 16777216); // xor r21d, 16777216 IID7748 - __ xorl(r21, 268435456); // xor r21d, 268435456 IID7749 - __ xorl(r22, 1); // xor r22d, 1 IID7750 - __ xorl(r22, 16); // xor r22d, 16 IID7751 - __ xorl(r22, 256); // xor r22d, 256 IID7752 - __ xorl(r22, 4096); // xor r22d, 4096 IID7753 - __ xorl(r22, 65536); // xor r22d, 65536 IID7754 - __ xorl(r22, 1048576); // xor r22d, 1048576 IID7755 - __ xorl(r22, 16777216); // xor r22d, 16777216 IID7756 - __ xorl(r22, 268435456); // xor r22d, 268435456 IID7757 - __ xorl(r23, 1); // xor r23d, 1 IID7758 - __ xorl(r23, 16); // xor r23d, 16 IID7759 - __ xorl(r23, 256); // xor r23d, 256 IID7760 - __ xorl(r23, 4096); // xor r23d, 4096 IID7761 - __ xorl(r23, 65536); // xor r23d, 65536 IID7762 - __ xorl(r23, 1048576); // xor r23d, 1048576 IID7763 - __ xorl(r23, 16777216); // xor r23d, 16777216 IID7764 - __ xorl(r23, 268435456); // xor r23d, 268435456 IID7765 - __ xorl(r24, 1); // xor r24d, 1 IID7766 - __ xorl(r24, 16); // xor r24d, 16 IID7767 - __ xorl(r24, 256); // xor r24d, 256 IID7768 - __ xorl(r24, 4096); // xor r24d, 4096 IID7769 - __ xorl(r24, 65536); // xor r24d, 65536 IID7770 - __ xorl(r24, 1048576); // xor r24d, 1048576 IID7771 - __ xorl(r24, 16777216); // xor r24d, 16777216 IID7772 - __ xorl(r24, 268435456); // xor r24d, 268435456 IID7773 - __ xorl(r25, 1); // xor r25d, 1 IID7774 - __ xorl(r25, 16); // xor r25d, 16 IID7775 - __ xorl(r25, 256); // xor r25d, 256 IID7776 - __ xorl(r25, 4096); // xor r25d, 4096 IID7777 - __ xorl(r25, 65536); // xor r25d, 65536 IID7778 - __ xorl(r25, 1048576); // xor r25d, 1048576 IID7779 - __ xorl(r25, 16777216); // xor r25d, 16777216 IID7780 - __ xorl(r25, 268435456); // xor r25d, 268435456 IID7781 - __ xorl(r26, 1); // xor r26d, 1 IID7782 - __ xorl(r26, 16); // xor r26d, 16 IID7783 - __ xorl(r26, 256); // xor r26d, 256 IID7784 - __ xorl(r26, 4096); // xor r26d, 4096 IID7785 - __ xorl(r26, 65536); // xor r26d, 65536 IID7786 - __ xorl(r26, 1048576); // xor r26d, 1048576 IID7787 - __ xorl(r26, 16777216); // xor r26d, 16777216 IID7788 - __ xorl(r26, 268435456); // xor r26d, 268435456 IID7789 - __ xorl(r27, 1); // xor r27d, 1 IID7790 - __ xorl(r27, 16); // xor r27d, 16 IID7791 - __ xorl(r27, 256); // xor r27d, 256 IID7792 - __ xorl(r27, 4096); // xor r27d, 4096 IID7793 - __ xorl(r27, 65536); // xor r27d, 65536 IID7794 - __ xorl(r27, 1048576); // xor r27d, 1048576 IID7795 - __ xorl(r27, 16777216); // xor r27d, 16777216 IID7796 - __ xorl(r27, 268435456); // xor r27d, 268435456 IID7797 - __ xorl(r28, 1); // xor r28d, 1 IID7798 - __ xorl(r28, 16); // xor r28d, 16 IID7799 - __ xorl(r28, 256); // xor r28d, 256 IID7800 - __ xorl(r28, 4096); // xor r28d, 4096 IID7801 - __ xorl(r28, 65536); // xor r28d, 65536 IID7802 - __ xorl(r28, 1048576); // xor r28d, 1048576 IID7803 - __ xorl(r28, 16777216); // xor r28d, 16777216 IID7804 - __ xorl(r28, 268435456); // xor r28d, 268435456 IID7805 - __ xorl(r29, 1); // xor r29d, 1 IID7806 - __ xorl(r29, 16); // xor r29d, 16 IID7807 - __ xorl(r29, 256); // xor r29d, 256 IID7808 - __ xorl(r29, 4096); // xor r29d, 4096 IID7809 - __ xorl(r29, 65536); // xor r29d, 65536 IID7810 - __ xorl(r29, 1048576); // xor r29d, 1048576 IID7811 - __ xorl(r29, 16777216); // xor r29d, 16777216 IID7812 - __ xorl(r29, 268435456); // xor r29d, 268435456 IID7813 - __ xorl(r30, 1); // xor r30d, 1 IID7814 - __ xorl(r30, 16); // xor r30d, 16 IID7815 - __ xorl(r30, 256); // xor r30d, 256 IID7816 - __ xorl(r30, 4096); // xor r30d, 4096 IID7817 - __ xorl(r30, 65536); // xor r30d, 65536 IID7818 - __ xorl(r30, 1048576); // xor r30d, 1048576 IID7819 - __ xorl(r30, 16777216); // xor r30d, 16777216 IID7820 - __ xorl(r30, 268435456); // xor r30d, 268435456 IID7821 - __ xorl(r31, 1); // xor r31d, 1 IID7822 - __ xorl(r31, 16); // xor r31d, 16 IID7823 - __ xorl(r31, 256); // xor r31d, 256 IID7824 - __ xorl(r31, 4096); // xor r31d, 4096 IID7825 - __ xorl(r31, 65536); // xor r31d, 65536 IID7826 - __ xorl(r31, 1048576); // xor r31d, 1048576 IID7827 - __ xorl(r31, 16777216); // xor r31d, 16777216 IID7828 - __ xorl(r31, 268435456); // xor r31d, 268435456 IID7829 -#endif // _LP64 - __ movl(rcx, 1); // mov ecx, 1 IID7830 - __ movl(rcx, 16); // mov ecx, 16 IID7831 - __ movl(rcx, 256); // mov ecx, 256 IID7832 - __ movl(rcx, 4096); // mov ecx, 4096 IID7833 - __ movl(rcx, 65536); // mov ecx, 65536 IID7834 - __ movl(rcx, 1048576); // mov ecx, 1048576 IID7835 - __ movl(rcx, 16777216); // mov ecx, 16777216 IID7836 - __ movl(rcx, 268435456); // mov ecx, 268435456 IID7837 - __ movl(rdx, 1); // mov edx, 1 IID7838 - __ movl(rdx, 16); // mov edx, 16 IID7839 - __ movl(rdx, 256); // mov edx, 256 IID7840 - __ movl(rdx, 4096); // mov edx, 4096 IID7841 - __ movl(rdx, 65536); // mov edx, 65536 IID7842 - __ movl(rdx, 1048576); // mov edx, 1048576 IID7843 - __ movl(rdx, 16777216); // mov edx, 16777216 IID7844 - __ movl(rdx, 268435456); // mov edx, 268435456 IID7845 - __ movl(rbx, 1); // mov ebx, 1 IID7846 - __ movl(rbx, 16); // mov ebx, 16 IID7847 - __ movl(rbx, 256); // mov ebx, 256 IID7848 - __ movl(rbx, 4096); // mov ebx, 4096 IID7849 - __ movl(rbx, 65536); // mov ebx, 65536 IID7850 - __ movl(rbx, 1048576); // mov ebx, 1048576 IID7851 - __ movl(rbx, 16777216); // mov ebx, 16777216 IID7852 - __ movl(rbx, 268435456); // mov ebx, 268435456 IID7853 -#ifdef _LP64 - __ movl(r8, 1); // mov r8d, 1 IID7854 - __ movl(r8, 16); // mov r8d, 16 IID7855 - __ movl(r8, 256); // mov r8d, 256 IID7856 - __ movl(r8, 4096); // mov r8d, 4096 IID7857 - __ movl(r8, 65536); // mov r8d, 65536 IID7858 - __ movl(r8, 1048576); // mov r8d, 1048576 IID7859 - __ movl(r8, 16777216); // mov r8d, 16777216 IID7860 - __ movl(r8, 268435456); // mov r8d, 268435456 IID7861 - __ movl(r9, 1); // mov r9d, 1 IID7862 - __ movl(r9, 16); // mov r9d, 16 IID7863 - __ movl(r9, 256); // mov r9d, 256 IID7864 - __ movl(r9, 4096); // mov r9d, 4096 IID7865 - __ movl(r9, 65536); // mov r9d, 65536 IID7866 - __ movl(r9, 1048576); // mov r9d, 1048576 IID7867 - __ movl(r9, 16777216); // mov r9d, 16777216 IID7868 - __ movl(r9, 268435456); // mov r9d, 268435456 IID7869 - __ movl(r10, 1); // mov r10d, 1 IID7870 - __ movl(r10, 16); // mov r10d, 16 IID7871 - __ movl(r10, 256); // mov r10d, 256 IID7872 - __ movl(r10, 4096); // mov r10d, 4096 IID7873 - __ movl(r10, 65536); // mov r10d, 65536 IID7874 - __ movl(r10, 1048576); // mov r10d, 1048576 IID7875 - __ movl(r10, 16777216); // mov r10d, 16777216 IID7876 - __ movl(r10, 268435456); // mov r10d, 268435456 IID7877 - __ movl(r11, 1); // mov r11d, 1 IID7878 - __ movl(r11, 16); // mov r11d, 16 IID7879 - __ movl(r11, 256); // mov r11d, 256 IID7880 - __ movl(r11, 4096); // mov r11d, 4096 IID7881 - __ movl(r11, 65536); // mov r11d, 65536 IID7882 - __ movl(r11, 1048576); // mov r11d, 1048576 IID7883 - __ movl(r11, 16777216); // mov r11d, 16777216 IID7884 - __ movl(r11, 268435456); // mov r11d, 268435456 IID7885 - __ movl(r12, 1); // mov r12d, 1 IID7886 - __ movl(r12, 16); // mov r12d, 16 IID7887 - __ movl(r12, 256); // mov r12d, 256 IID7888 - __ movl(r12, 4096); // mov r12d, 4096 IID7889 - __ movl(r12, 65536); // mov r12d, 65536 IID7890 - __ movl(r12, 1048576); // mov r12d, 1048576 IID7891 - __ movl(r12, 16777216); // mov r12d, 16777216 IID7892 - __ movl(r12, 268435456); // mov r12d, 268435456 IID7893 - __ movl(r13, 1); // mov r13d, 1 IID7894 - __ movl(r13, 16); // mov r13d, 16 IID7895 - __ movl(r13, 256); // mov r13d, 256 IID7896 - __ movl(r13, 4096); // mov r13d, 4096 IID7897 - __ movl(r13, 65536); // mov r13d, 65536 IID7898 - __ movl(r13, 1048576); // mov r13d, 1048576 IID7899 - __ movl(r13, 16777216); // mov r13d, 16777216 IID7900 - __ movl(r13, 268435456); // mov r13d, 268435456 IID7901 - __ movl(r14, 1); // mov r14d, 1 IID7902 - __ movl(r14, 16); // mov r14d, 16 IID7903 - __ movl(r14, 256); // mov r14d, 256 IID7904 - __ movl(r14, 4096); // mov r14d, 4096 IID7905 - __ movl(r14, 65536); // mov r14d, 65536 IID7906 - __ movl(r14, 1048576); // mov r14d, 1048576 IID7907 - __ movl(r14, 16777216); // mov r14d, 16777216 IID7908 - __ movl(r14, 268435456); // mov r14d, 268435456 IID7909 - __ movl(r15, 1); // mov r15d, 1 IID7910 - __ movl(r15, 16); // mov r15d, 16 IID7911 - __ movl(r15, 256); // mov r15d, 256 IID7912 - __ movl(r15, 4096); // mov r15d, 4096 IID7913 - __ movl(r15, 65536); // mov r15d, 65536 IID7914 - __ movl(r15, 1048576); // mov r15d, 1048576 IID7915 - __ movl(r15, 16777216); // mov r15d, 16777216 IID7916 - __ movl(r15, 268435456); // mov r15d, 268435456 IID7917 - __ movl(r16, 1); // mov r16d, 1 IID7918 - __ movl(r16, 16); // mov r16d, 16 IID7919 - __ movl(r16, 256); // mov r16d, 256 IID7920 - __ movl(r16, 4096); // mov r16d, 4096 IID7921 - __ movl(r16, 65536); // mov r16d, 65536 IID7922 - __ movl(r16, 1048576); // mov r16d, 1048576 IID7923 - __ movl(r16, 16777216); // mov r16d, 16777216 IID7924 - __ movl(r16, 268435456); // mov r16d, 268435456 IID7925 - __ movl(r17, 1); // mov r17d, 1 IID7926 - __ movl(r17, 16); // mov r17d, 16 IID7927 - __ movl(r17, 256); // mov r17d, 256 IID7928 - __ movl(r17, 4096); // mov r17d, 4096 IID7929 - __ movl(r17, 65536); // mov r17d, 65536 IID7930 - __ movl(r17, 1048576); // mov r17d, 1048576 IID7931 - __ movl(r17, 16777216); // mov r17d, 16777216 IID7932 - __ movl(r17, 268435456); // mov r17d, 268435456 IID7933 - __ movl(r18, 1); // mov r18d, 1 IID7934 - __ movl(r18, 16); // mov r18d, 16 IID7935 - __ movl(r18, 256); // mov r18d, 256 IID7936 - __ movl(r18, 4096); // mov r18d, 4096 IID7937 - __ movl(r18, 65536); // mov r18d, 65536 IID7938 - __ movl(r18, 1048576); // mov r18d, 1048576 IID7939 - __ movl(r18, 16777216); // mov r18d, 16777216 IID7940 - __ movl(r18, 268435456); // mov r18d, 268435456 IID7941 - __ movl(r19, 1); // mov r19d, 1 IID7942 - __ movl(r19, 16); // mov r19d, 16 IID7943 - __ movl(r19, 256); // mov r19d, 256 IID7944 - __ movl(r19, 4096); // mov r19d, 4096 IID7945 - __ movl(r19, 65536); // mov r19d, 65536 IID7946 - __ movl(r19, 1048576); // mov r19d, 1048576 IID7947 - __ movl(r19, 16777216); // mov r19d, 16777216 IID7948 - __ movl(r19, 268435456); // mov r19d, 268435456 IID7949 - __ movl(r20, 1); // mov r20d, 1 IID7950 - __ movl(r20, 16); // mov r20d, 16 IID7951 - __ movl(r20, 256); // mov r20d, 256 IID7952 - __ movl(r20, 4096); // mov r20d, 4096 IID7953 - __ movl(r20, 65536); // mov r20d, 65536 IID7954 - __ movl(r20, 1048576); // mov r20d, 1048576 IID7955 - __ movl(r20, 16777216); // mov r20d, 16777216 IID7956 - __ movl(r20, 268435456); // mov r20d, 268435456 IID7957 - __ movl(r21, 1); // mov r21d, 1 IID7958 - __ movl(r21, 16); // mov r21d, 16 IID7959 - __ movl(r21, 256); // mov r21d, 256 IID7960 - __ movl(r21, 4096); // mov r21d, 4096 IID7961 - __ movl(r21, 65536); // mov r21d, 65536 IID7962 - __ movl(r21, 1048576); // mov r21d, 1048576 IID7963 - __ movl(r21, 16777216); // mov r21d, 16777216 IID7964 - __ movl(r21, 268435456); // mov r21d, 268435456 IID7965 - __ movl(r22, 1); // mov r22d, 1 IID7966 - __ movl(r22, 16); // mov r22d, 16 IID7967 - __ movl(r22, 256); // mov r22d, 256 IID7968 - __ movl(r22, 4096); // mov r22d, 4096 IID7969 - __ movl(r22, 65536); // mov r22d, 65536 IID7970 - __ movl(r22, 1048576); // mov r22d, 1048576 IID7971 - __ movl(r22, 16777216); // mov r22d, 16777216 IID7972 - __ movl(r22, 268435456); // mov r22d, 268435456 IID7973 - __ movl(r23, 1); // mov r23d, 1 IID7974 - __ movl(r23, 16); // mov r23d, 16 IID7975 - __ movl(r23, 256); // mov r23d, 256 IID7976 - __ movl(r23, 4096); // mov r23d, 4096 IID7977 - __ movl(r23, 65536); // mov r23d, 65536 IID7978 - __ movl(r23, 1048576); // mov r23d, 1048576 IID7979 - __ movl(r23, 16777216); // mov r23d, 16777216 IID7980 - __ movl(r23, 268435456); // mov r23d, 268435456 IID7981 - __ movl(r24, 1); // mov r24d, 1 IID7982 - __ movl(r24, 16); // mov r24d, 16 IID7983 - __ movl(r24, 256); // mov r24d, 256 IID7984 - __ movl(r24, 4096); // mov r24d, 4096 IID7985 - __ movl(r24, 65536); // mov r24d, 65536 IID7986 - __ movl(r24, 1048576); // mov r24d, 1048576 IID7987 - __ movl(r24, 16777216); // mov r24d, 16777216 IID7988 - __ movl(r24, 268435456); // mov r24d, 268435456 IID7989 - __ movl(r25, 1); // mov r25d, 1 IID7990 - __ movl(r25, 16); // mov r25d, 16 IID7991 - __ movl(r25, 256); // mov r25d, 256 IID7992 - __ movl(r25, 4096); // mov r25d, 4096 IID7993 - __ movl(r25, 65536); // mov r25d, 65536 IID7994 - __ movl(r25, 1048576); // mov r25d, 1048576 IID7995 - __ movl(r25, 16777216); // mov r25d, 16777216 IID7996 - __ movl(r25, 268435456); // mov r25d, 268435456 IID7997 - __ movl(r26, 1); // mov r26d, 1 IID7998 - __ movl(r26, 16); // mov r26d, 16 IID7999 - __ movl(r26, 256); // mov r26d, 256 IID8000 - __ movl(r26, 4096); // mov r26d, 4096 IID8001 - __ movl(r26, 65536); // mov r26d, 65536 IID8002 - __ movl(r26, 1048576); // mov r26d, 1048576 IID8003 - __ movl(r26, 16777216); // mov r26d, 16777216 IID8004 - __ movl(r26, 268435456); // mov r26d, 268435456 IID8005 - __ movl(r27, 1); // mov r27d, 1 IID8006 - __ movl(r27, 16); // mov r27d, 16 IID8007 - __ movl(r27, 256); // mov r27d, 256 IID8008 - __ movl(r27, 4096); // mov r27d, 4096 IID8009 - __ movl(r27, 65536); // mov r27d, 65536 IID8010 - __ movl(r27, 1048576); // mov r27d, 1048576 IID8011 - __ movl(r27, 16777216); // mov r27d, 16777216 IID8012 - __ movl(r27, 268435456); // mov r27d, 268435456 IID8013 - __ movl(r28, 1); // mov r28d, 1 IID8014 - __ movl(r28, 16); // mov r28d, 16 IID8015 - __ movl(r28, 256); // mov r28d, 256 IID8016 - __ movl(r28, 4096); // mov r28d, 4096 IID8017 - __ movl(r28, 65536); // mov r28d, 65536 IID8018 - __ movl(r28, 1048576); // mov r28d, 1048576 IID8019 - __ movl(r28, 16777216); // mov r28d, 16777216 IID8020 - __ movl(r28, 268435456); // mov r28d, 268435456 IID8021 - __ movl(r29, 1); // mov r29d, 1 IID8022 - __ movl(r29, 16); // mov r29d, 16 IID8023 - __ movl(r29, 256); // mov r29d, 256 IID8024 - __ movl(r29, 4096); // mov r29d, 4096 IID8025 - __ movl(r29, 65536); // mov r29d, 65536 IID8026 - __ movl(r29, 1048576); // mov r29d, 1048576 IID8027 - __ movl(r29, 16777216); // mov r29d, 16777216 IID8028 - __ movl(r29, 268435456); // mov r29d, 268435456 IID8029 - __ movl(r30, 1); // mov r30d, 1 IID8030 - __ movl(r30, 16); // mov r30d, 16 IID8031 - __ movl(r30, 256); // mov r30d, 256 IID8032 - __ movl(r30, 4096); // mov r30d, 4096 IID8033 - __ movl(r30, 65536); // mov r30d, 65536 IID8034 - __ movl(r30, 1048576); // mov r30d, 1048576 IID8035 - __ movl(r30, 16777216); // mov r30d, 16777216 IID8036 - __ movl(r30, 268435456); // mov r30d, 268435456 IID8037 - __ movl(r31, 1); // mov r31d, 1 IID8038 - __ movl(r31, 16); // mov r31d, 16 IID8039 - __ movl(r31, 256); // mov r31d, 256 IID8040 - __ movl(r31, 4096); // mov r31d, 4096 IID8041 - __ movl(r31, 65536); // mov r31d, 65536 IID8042 - __ movl(r31, 1048576); // mov r31d, 1048576 IID8043 - __ movl(r31, 16777216); // mov r31d, 16777216 IID8044 - __ movl(r31, 268435456); // mov r31d, 268435456 IID8045 -#endif // _LP64 - __ testb(rcx, 1); // test cl, 1 IID8046 - __ testb(rcx, 4); // test cl, 4 IID8047 - __ testb(rcx, 16); // test cl, 16 IID8048 - __ testb(rcx, 64); // test cl, 64 IID8049 - __ testb(rdx, 1); // test dl, 1 IID8050 - __ testb(rdx, 4); // test dl, 4 IID8051 - __ testb(rdx, 16); // test dl, 16 IID8052 - __ testb(rdx, 64); // test dl, 64 IID8053 - __ testb(rbx, 1); // test bl, 1 IID8054 - __ testb(rbx, 4); // test bl, 4 IID8055 - __ testb(rbx, 16); // test bl, 16 IID8056 - __ testb(rbx, 64); // test bl, 64 IID8057 -#ifdef _LP64 - __ testb(r8, 1); // test r8b, 1 IID8058 - __ testb(r8, 4); // test r8b, 4 IID8059 - __ testb(r8, 16); // test r8b, 16 IID8060 - __ testb(r8, 64); // test r8b, 64 IID8061 - __ testb(r9, 1); // test r9b, 1 IID8062 - __ testb(r9, 4); // test r9b, 4 IID8063 - __ testb(r9, 16); // test r9b, 16 IID8064 - __ testb(r9, 64); // test r9b, 64 IID8065 - __ testb(r10, 1); // test r10b, 1 IID8066 - __ testb(r10, 4); // test r10b, 4 IID8067 - __ testb(r10, 16); // test r10b, 16 IID8068 - __ testb(r10, 64); // test r10b, 64 IID8069 - __ testb(r11, 1); // test r11b, 1 IID8070 - __ testb(r11, 4); // test r11b, 4 IID8071 - __ testb(r11, 16); // test r11b, 16 IID8072 - __ testb(r11, 64); // test r11b, 64 IID8073 - __ testb(r12, 1); // test r12b, 1 IID8074 - __ testb(r12, 4); // test r12b, 4 IID8075 - __ testb(r12, 16); // test r12b, 16 IID8076 - __ testb(r12, 64); // test r12b, 64 IID8077 - __ testb(r13, 1); // test r13b, 1 IID8078 - __ testb(r13, 4); // test r13b, 4 IID8079 - __ testb(r13, 16); // test r13b, 16 IID8080 - __ testb(r13, 64); // test r13b, 64 IID8081 - __ testb(r14, 1); // test r14b, 1 IID8082 - __ testb(r14, 4); // test r14b, 4 IID8083 - __ testb(r14, 16); // test r14b, 16 IID8084 - __ testb(r14, 64); // test r14b, 64 IID8085 - __ testb(r15, 1); // test r15b, 1 IID8086 - __ testb(r15, 4); // test r15b, 4 IID8087 - __ testb(r15, 16); // test r15b, 16 IID8088 - __ testb(r15, 64); // test r15b, 64 IID8089 - __ testb(r16, 1); // test r16b, 1 IID8090 - __ testb(r16, 4); // test r16b, 4 IID8091 - __ testb(r16, 16); // test r16b, 16 IID8092 - __ testb(r16, 64); // test r16b, 64 IID8093 - __ testb(r17, 1); // test r17b, 1 IID8094 - __ testb(r17, 4); // test r17b, 4 IID8095 - __ testb(r17, 16); // test r17b, 16 IID8096 - __ testb(r17, 64); // test r17b, 64 IID8097 - __ testb(r18, 1); // test r18b, 1 IID8098 - __ testb(r18, 4); // test r18b, 4 IID8099 - __ testb(r18, 16); // test r18b, 16 IID8100 - __ testb(r18, 64); // test r18b, 64 IID8101 - __ testb(r19, 1); // test r19b, 1 IID8102 - __ testb(r19, 4); // test r19b, 4 IID8103 - __ testb(r19, 16); // test r19b, 16 IID8104 - __ testb(r19, 64); // test r19b, 64 IID8105 - __ testb(r20, 1); // test r20b, 1 IID8106 - __ testb(r20, 4); // test r20b, 4 IID8107 - __ testb(r20, 16); // test r20b, 16 IID8108 - __ testb(r20, 64); // test r20b, 64 IID8109 - __ testb(r21, 1); // test r21b, 1 IID8110 - __ testb(r21, 4); // test r21b, 4 IID8111 - __ testb(r21, 16); // test r21b, 16 IID8112 - __ testb(r21, 64); // test r21b, 64 IID8113 - __ testb(r22, 1); // test r22b, 1 IID8114 - __ testb(r22, 4); // test r22b, 4 IID8115 - __ testb(r22, 16); // test r22b, 16 IID8116 - __ testb(r22, 64); // test r22b, 64 IID8117 - __ testb(r23, 1); // test r23b, 1 IID8118 - __ testb(r23, 4); // test r23b, 4 IID8119 - __ testb(r23, 16); // test r23b, 16 IID8120 - __ testb(r23, 64); // test r23b, 64 IID8121 - __ testb(r24, 1); // test r24b, 1 IID8122 - __ testb(r24, 4); // test r24b, 4 IID8123 - __ testb(r24, 16); // test r24b, 16 IID8124 - __ testb(r24, 64); // test r24b, 64 IID8125 - __ testb(r25, 1); // test r25b, 1 IID8126 - __ testb(r25, 4); // test r25b, 4 IID8127 - __ testb(r25, 16); // test r25b, 16 IID8128 - __ testb(r25, 64); // test r25b, 64 IID8129 - __ testb(r26, 1); // test r26b, 1 IID8130 - __ testb(r26, 4); // test r26b, 4 IID8131 - __ testb(r26, 16); // test r26b, 16 IID8132 - __ testb(r26, 64); // test r26b, 64 IID8133 - __ testb(r27, 1); // test r27b, 1 IID8134 - __ testb(r27, 4); // test r27b, 4 IID8135 - __ testb(r27, 16); // test r27b, 16 IID8136 - __ testb(r27, 64); // test r27b, 64 IID8137 - __ testb(r28, 1); // test r28b, 1 IID8138 - __ testb(r28, 4); // test r28b, 4 IID8139 - __ testb(r28, 16); // test r28b, 16 IID8140 - __ testb(r28, 64); // test r28b, 64 IID8141 - __ testb(r29, 1); // test r29b, 1 IID8142 - __ testb(r29, 4); // test r29b, 4 IID8143 - __ testb(r29, 16); // test r29b, 16 IID8144 - __ testb(r29, 64); // test r29b, 64 IID8145 - __ testb(r30, 1); // test r30b, 1 IID8146 - __ testb(r30, 4); // test r30b, 4 IID8147 - __ testb(r30, 16); // test r30b, 16 IID8148 - __ testb(r30, 64); // test r30b, 64 IID8149 - __ testb(r31, 1); // test r31b, 1 IID8150 - __ testb(r31, 4); // test r31b, 4 IID8151 - __ testb(r31, 16); // test r31b, 16 IID8152 - __ testb(r31, 64); // test r31b, 64 IID8153 -#endif // _LP64 - __ testl(rcx, 65536); // test ecx, 65536 IID8154 - __ testl(rcx, 262144); // test ecx, 262144 IID8155 - __ testl(rcx, 1048576); // test ecx, 1048576 IID8156 - __ testl(rcx, 4194304); // test ecx, 4194304 IID8157 - __ testl(rcx, 16777216); // test ecx, 16777216 IID8158 - __ testl(rcx, 67108864); // test ecx, 67108864 IID8159 - __ testl(rcx, 268435456); // test ecx, 268435456 IID8160 - __ testl(rcx, 1073741824); // test ecx, 1073741824 IID8161 - __ testl(rdx, 65536); // test edx, 65536 IID8162 - __ testl(rdx, 262144); // test edx, 262144 IID8163 - __ testl(rdx, 1048576); // test edx, 1048576 IID8164 - __ testl(rdx, 4194304); // test edx, 4194304 IID8165 - __ testl(rdx, 16777216); // test edx, 16777216 IID8166 - __ testl(rdx, 67108864); // test edx, 67108864 IID8167 - __ testl(rdx, 268435456); // test edx, 268435456 IID8168 - __ testl(rdx, 1073741824); // test edx, 1073741824 IID8169 - __ testl(rbx, 65536); // test ebx, 65536 IID8170 - __ testl(rbx, 262144); // test ebx, 262144 IID8171 - __ testl(rbx, 1048576); // test ebx, 1048576 IID8172 - __ testl(rbx, 4194304); // test ebx, 4194304 IID8173 - __ testl(rbx, 16777216); // test ebx, 16777216 IID8174 - __ testl(rbx, 67108864); // test ebx, 67108864 IID8175 - __ testl(rbx, 268435456); // test ebx, 268435456 IID8176 - __ testl(rbx, 1073741824); // test ebx, 1073741824 IID8177 -#ifdef _LP64 - __ testl(r8, 65536); // test r8d, 65536 IID8178 - __ testl(r8, 262144); // test r8d, 262144 IID8179 - __ testl(r8, 1048576); // test r8d, 1048576 IID8180 - __ testl(r8, 4194304); // test r8d, 4194304 IID8181 - __ testl(r8, 16777216); // test r8d, 16777216 IID8182 - __ testl(r8, 67108864); // test r8d, 67108864 IID8183 - __ testl(r8, 268435456); // test r8d, 268435456 IID8184 - __ testl(r8, 1073741824); // test r8d, 1073741824 IID8185 - __ testl(r9, 65536); // test r9d, 65536 IID8186 - __ testl(r9, 262144); // test r9d, 262144 IID8187 - __ testl(r9, 1048576); // test r9d, 1048576 IID8188 - __ testl(r9, 4194304); // test r9d, 4194304 IID8189 - __ testl(r9, 16777216); // test r9d, 16777216 IID8190 - __ testl(r9, 67108864); // test r9d, 67108864 IID8191 - __ testl(r9, 268435456); // test r9d, 268435456 IID8192 - __ testl(r9, 1073741824); // test r9d, 1073741824 IID8193 - __ testl(r10, 65536); // test r10d, 65536 IID8194 - __ testl(r10, 262144); // test r10d, 262144 IID8195 - __ testl(r10, 1048576); // test r10d, 1048576 IID8196 - __ testl(r10, 4194304); // test r10d, 4194304 IID8197 - __ testl(r10, 16777216); // test r10d, 16777216 IID8198 - __ testl(r10, 67108864); // test r10d, 67108864 IID8199 - __ testl(r10, 268435456); // test r10d, 268435456 IID8200 - __ testl(r10, 1073741824); // test r10d, 1073741824 IID8201 - __ testl(r11, 65536); // test r11d, 65536 IID8202 - __ testl(r11, 262144); // test r11d, 262144 IID8203 - __ testl(r11, 1048576); // test r11d, 1048576 IID8204 - __ testl(r11, 4194304); // test r11d, 4194304 IID8205 - __ testl(r11, 16777216); // test r11d, 16777216 IID8206 - __ testl(r11, 67108864); // test r11d, 67108864 IID8207 - __ testl(r11, 268435456); // test r11d, 268435456 IID8208 - __ testl(r11, 1073741824); // test r11d, 1073741824 IID8209 - __ testl(r12, 65536); // test r12d, 65536 IID8210 - __ testl(r12, 262144); // test r12d, 262144 IID8211 - __ testl(r12, 1048576); // test r12d, 1048576 IID8212 - __ testl(r12, 4194304); // test r12d, 4194304 IID8213 - __ testl(r12, 16777216); // test r12d, 16777216 IID8214 - __ testl(r12, 67108864); // test r12d, 67108864 IID8215 - __ testl(r12, 268435456); // test r12d, 268435456 IID8216 - __ testl(r12, 1073741824); // test r12d, 1073741824 IID8217 - __ testl(r13, 65536); // test r13d, 65536 IID8218 - __ testl(r13, 262144); // test r13d, 262144 IID8219 - __ testl(r13, 1048576); // test r13d, 1048576 IID8220 - __ testl(r13, 4194304); // test r13d, 4194304 IID8221 - __ testl(r13, 16777216); // test r13d, 16777216 IID8222 - __ testl(r13, 67108864); // test r13d, 67108864 IID8223 - __ testl(r13, 268435456); // test r13d, 268435456 IID8224 - __ testl(r13, 1073741824); // test r13d, 1073741824 IID8225 - __ testl(r14, 65536); // test r14d, 65536 IID8226 - __ testl(r14, 262144); // test r14d, 262144 IID8227 - __ testl(r14, 1048576); // test r14d, 1048576 IID8228 - __ testl(r14, 4194304); // test r14d, 4194304 IID8229 - __ testl(r14, 16777216); // test r14d, 16777216 IID8230 - __ testl(r14, 67108864); // test r14d, 67108864 IID8231 - __ testl(r14, 268435456); // test r14d, 268435456 IID8232 - __ testl(r14, 1073741824); // test r14d, 1073741824 IID8233 - __ testl(r15, 65536); // test r15d, 65536 IID8234 - __ testl(r15, 262144); // test r15d, 262144 IID8235 - __ testl(r15, 1048576); // test r15d, 1048576 IID8236 - __ testl(r15, 4194304); // test r15d, 4194304 IID8237 - __ testl(r15, 16777216); // test r15d, 16777216 IID8238 - __ testl(r15, 67108864); // test r15d, 67108864 IID8239 - __ testl(r15, 268435456); // test r15d, 268435456 IID8240 - __ testl(r15, 1073741824); // test r15d, 1073741824 IID8241 - __ testl(r16, 65536); // test r16d, 65536 IID8242 - __ testl(r16, 262144); // test r16d, 262144 IID8243 - __ testl(r16, 1048576); // test r16d, 1048576 IID8244 - __ testl(r16, 4194304); // test r16d, 4194304 IID8245 - __ testl(r16, 16777216); // test r16d, 16777216 IID8246 - __ testl(r16, 67108864); // test r16d, 67108864 IID8247 - __ testl(r16, 268435456); // test r16d, 268435456 IID8248 - __ testl(r16, 1073741824); // test r16d, 1073741824 IID8249 - __ testl(r17, 65536); // test r17d, 65536 IID8250 - __ testl(r17, 262144); // test r17d, 262144 IID8251 - __ testl(r17, 1048576); // test r17d, 1048576 IID8252 - __ testl(r17, 4194304); // test r17d, 4194304 IID8253 - __ testl(r17, 16777216); // test r17d, 16777216 IID8254 - __ testl(r17, 67108864); // test r17d, 67108864 IID8255 - __ testl(r17, 268435456); // test r17d, 268435456 IID8256 - __ testl(r17, 1073741824); // test r17d, 1073741824 IID8257 - __ testl(r18, 65536); // test r18d, 65536 IID8258 - __ testl(r18, 262144); // test r18d, 262144 IID8259 - __ testl(r18, 1048576); // test r18d, 1048576 IID8260 - __ testl(r18, 4194304); // test r18d, 4194304 IID8261 - __ testl(r18, 16777216); // test r18d, 16777216 IID8262 - __ testl(r18, 67108864); // test r18d, 67108864 IID8263 - __ testl(r18, 268435456); // test r18d, 268435456 IID8264 - __ testl(r18, 1073741824); // test r18d, 1073741824 IID8265 - __ testl(r19, 65536); // test r19d, 65536 IID8266 - __ testl(r19, 262144); // test r19d, 262144 IID8267 - __ testl(r19, 1048576); // test r19d, 1048576 IID8268 - __ testl(r19, 4194304); // test r19d, 4194304 IID8269 - __ testl(r19, 16777216); // test r19d, 16777216 IID8270 - __ testl(r19, 67108864); // test r19d, 67108864 IID8271 - __ testl(r19, 268435456); // test r19d, 268435456 IID8272 - __ testl(r19, 1073741824); // test r19d, 1073741824 IID8273 - __ testl(r20, 65536); // test r20d, 65536 IID8274 - __ testl(r20, 262144); // test r20d, 262144 IID8275 - __ testl(r20, 1048576); // test r20d, 1048576 IID8276 - __ testl(r20, 4194304); // test r20d, 4194304 IID8277 - __ testl(r20, 16777216); // test r20d, 16777216 IID8278 - __ testl(r20, 67108864); // test r20d, 67108864 IID8279 - __ testl(r20, 268435456); // test r20d, 268435456 IID8280 - __ testl(r20, 1073741824); // test r20d, 1073741824 IID8281 - __ testl(r21, 65536); // test r21d, 65536 IID8282 - __ testl(r21, 262144); // test r21d, 262144 IID8283 - __ testl(r21, 1048576); // test r21d, 1048576 IID8284 - __ testl(r21, 4194304); // test r21d, 4194304 IID8285 - __ testl(r21, 16777216); // test r21d, 16777216 IID8286 - __ testl(r21, 67108864); // test r21d, 67108864 IID8287 - __ testl(r21, 268435456); // test r21d, 268435456 IID8288 - __ testl(r21, 1073741824); // test r21d, 1073741824 IID8289 - __ testl(r22, 65536); // test r22d, 65536 IID8290 - __ testl(r22, 262144); // test r22d, 262144 IID8291 - __ testl(r22, 1048576); // test r22d, 1048576 IID8292 - __ testl(r22, 4194304); // test r22d, 4194304 IID8293 - __ testl(r22, 16777216); // test r22d, 16777216 IID8294 - __ testl(r22, 67108864); // test r22d, 67108864 IID8295 - __ testl(r22, 268435456); // test r22d, 268435456 IID8296 - __ testl(r22, 1073741824); // test r22d, 1073741824 IID8297 - __ testl(r23, 65536); // test r23d, 65536 IID8298 - __ testl(r23, 262144); // test r23d, 262144 IID8299 - __ testl(r23, 1048576); // test r23d, 1048576 IID8300 - __ testl(r23, 4194304); // test r23d, 4194304 IID8301 - __ testl(r23, 16777216); // test r23d, 16777216 IID8302 - __ testl(r23, 67108864); // test r23d, 67108864 IID8303 - __ testl(r23, 268435456); // test r23d, 268435456 IID8304 - __ testl(r23, 1073741824); // test r23d, 1073741824 IID8305 - __ testl(r24, 65536); // test r24d, 65536 IID8306 - __ testl(r24, 262144); // test r24d, 262144 IID8307 - __ testl(r24, 1048576); // test r24d, 1048576 IID8308 - __ testl(r24, 4194304); // test r24d, 4194304 IID8309 - __ testl(r24, 16777216); // test r24d, 16777216 IID8310 - __ testl(r24, 67108864); // test r24d, 67108864 IID8311 - __ testl(r24, 268435456); // test r24d, 268435456 IID8312 - __ testl(r24, 1073741824); // test r24d, 1073741824 IID8313 - __ testl(r25, 65536); // test r25d, 65536 IID8314 - __ testl(r25, 262144); // test r25d, 262144 IID8315 - __ testl(r25, 1048576); // test r25d, 1048576 IID8316 - __ testl(r25, 4194304); // test r25d, 4194304 IID8317 - __ testl(r25, 16777216); // test r25d, 16777216 IID8318 - __ testl(r25, 67108864); // test r25d, 67108864 IID8319 - __ testl(r25, 268435456); // test r25d, 268435456 IID8320 - __ testl(r25, 1073741824); // test r25d, 1073741824 IID8321 - __ testl(r26, 65536); // test r26d, 65536 IID8322 - __ testl(r26, 262144); // test r26d, 262144 IID8323 - __ testl(r26, 1048576); // test r26d, 1048576 IID8324 - __ testl(r26, 4194304); // test r26d, 4194304 IID8325 - __ testl(r26, 16777216); // test r26d, 16777216 IID8326 - __ testl(r26, 67108864); // test r26d, 67108864 IID8327 - __ testl(r26, 268435456); // test r26d, 268435456 IID8328 - __ testl(r26, 1073741824); // test r26d, 1073741824 IID8329 - __ testl(r27, 65536); // test r27d, 65536 IID8330 - __ testl(r27, 262144); // test r27d, 262144 IID8331 - __ testl(r27, 1048576); // test r27d, 1048576 IID8332 - __ testl(r27, 4194304); // test r27d, 4194304 IID8333 - __ testl(r27, 16777216); // test r27d, 16777216 IID8334 - __ testl(r27, 67108864); // test r27d, 67108864 IID8335 - __ testl(r27, 268435456); // test r27d, 268435456 IID8336 - __ testl(r27, 1073741824); // test r27d, 1073741824 IID8337 - __ testl(r28, 65536); // test r28d, 65536 IID8338 - __ testl(r28, 262144); // test r28d, 262144 IID8339 - __ testl(r28, 1048576); // test r28d, 1048576 IID8340 - __ testl(r28, 4194304); // test r28d, 4194304 IID8341 - __ testl(r28, 16777216); // test r28d, 16777216 IID8342 - __ testl(r28, 67108864); // test r28d, 67108864 IID8343 - __ testl(r28, 268435456); // test r28d, 268435456 IID8344 - __ testl(r28, 1073741824); // test r28d, 1073741824 IID8345 - __ testl(r29, 65536); // test r29d, 65536 IID8346 - __ testl(r29, 262144); // test r29d, 262144 IID8347 - __ testl(r29, 1048576); // test r29d, 1048576 IID8348 - __ testl(r29, 4194304); // test r29d, 4194304 IID8349 - __ testl(r29, 16777216); // test r29d, 16777216 IID8350 - __ testl(r29, 67108864); // test r29d, 67108864 IID8351 - __ testl(r29, 268435456); // test r29d, 268435456 IID8352 - __ testl(r29, 1073741824); // test r29d, 1073741824 IID8353 - __ testl(r30, 65536); // test r30d, 65536 IID8354 - __ testl(r30, 262144); // test r30d, 262144 IID8355 - __ testl(r30, 1048576); // test r30d, 1048576 IID8356 - __ testl(r30, 4194304); // test r30d, 4194304 IID8357 - __ testl(r30, 16777216); // test r30d, 16777216 IID8358 - __ testl(r30, 67108864); // test r30d, 67108864 IID8359 - __ testl(r30, 268435456); // test r30d, 268435456 IID8360 - __ testl(r30, 1073741824); // test r30d, 1073741824 IID8361 - __ testl(r31, 65536); // test r31d, 65536 IID8362 - __ testl(r31, 262144); // test r31d, 262144 IID8363 - __ testl(r31, 1048576); // test r31d, 1048576 IID8364 - __ testl(r31, 4194304); // test r31d, 4194304 IID8365 - __ testl(r31, 16777216); // test r31d, 16777216 IID8366 - __ testl(r31, 67108864); // test r31d, 67108864 IID8367 - __ testl(r31, 268435456); // test r31d, 268435456 IID8368 - __ testl(r31, 1073741824); // test r31d, 1073741824 IID8369 -#endif // _LP64 - __ subl_imm32(rcx, 65536); // sub ecx, 65536 IID8370 - __ subl_imm32(rcx, 262144); // sub ecx, 262144 IID8371 - __ subl_imm32(rcx, 1048576); // sub ecx, 1048576 IID8372 - __ subl_imm32(rcx, 4194304); // sub ecx, 4194304 IID8373 - __ subl_imm32(rcx, 16777216); // sub ecx, 16777216 IID8374 - __ subl_imm32(rcx, 67108864); // sub ecx, 67108864 IID8375 - __ subl_imm32(rcx, 268435456); // sub ecx, 268435456 IID8376 - __ subl_imm32(rcx, 1073741824); // sub ecx, 1073741824 IID8377 - __ subl_imm32(rdx, 65536); // sub edx, 65536 IID8378 - __ subl_imm32(rdx, 262144); // sub edx, 262144 IID8379 - __ subl_imm32(rdx, 1048576); // sub edx, 1048576 IID8380 - __ subl_imm32(rdx, 4194304); // sub edx, 4194304 IID8381 - __ subl_imm32(rdx, 16777216); // sub edx, 16777216 IID8382 - __ subl_imm32(rdx, 67108864); // sub edx, 67108864 IID8383 - __ subl_imm32(rdx, 268435456); // sub edx, 268435456 IID8384 - __ subl_imm32(rdx, 1073741824); // sub edx, 1073741824 IID8385 - __ subl_imm32(rbx, 65536); // sub ebx, 65536 IID8386 - __ subl_imm32(rbx, 262144); // sub ebx, 262144 IID8387 - __ subl_imm32(rbx, 1048576); // sub ebx, 1048576 IID8388 - __ subl_imm32(rbx, 4194304); // sub ebx, 4194304 IID8389 - __ subl_imm32(rbx, 16777216); // sub ebx, 16777216 IID8390 - __ subl_imm32(rbx, 67108864); // sub ebx, 67108864 IID8391 - __ subl_imm32(rbx, 268435456); // sub ebx, 268435456 IID8392 - __ subl_imm32(rbx, 1073741824); // sub ebx, 1073741824 IID8393 -#ifdef _LP64 - __ subl_imm32(r8, 65536); // sub r8d, 65536 IID8394 - __ subl_imm32(r8, 262144); // sub r8d, 262144 IID8395 - __ subl_imm32(r8, 1048576); // sub r8d, 1048576 IID8396 - __ subl_imm32(r8, 4194304); // sub r8d, 4194304 IID8397 - __ subl_imm32(r8, 16777216); // sub r8d, 16777216 IID8398 - __ subl_imm32(r8, 67108864); // sub r8d, 67108864 IID8399 - __ subl_imm32(r8, 268435456); // sub r8d, 268435456 IID8400 - __ subl_imm32(r8, 1073741824); // sub r8d, 1073741824 IID8401 - __ subl_imm32(r9, 65536); // sub r9d, 65536 IID8402 - __ subl_imm32(r9, 262144); // sub r9d, 262144 IID8403 - __ subl_imm32(r9, 1048576); // sub r9d, 1048576 IID8404 - __ subl_imm32(r9, 4194304); // sub r9d, 4194304 IID8405 - __ subl_imm32(r9, 16777216); // sub r9d, 16777216 IID8406 - __ subl_imm32(r9, 67108864); // sub r9d, 67108864 IID8407 - __ subl_imm32(r9, 268435456); // sub r9d, 268435456 IID8408 - __ subl_imm32(r9, 1073741824); // sub r9d, 1073741824 IID8409 - __ subl_imm32(r10, 65536); // sub r10d, 65536 IID8410 - __ subl_imm32(r10, 262144); // sub r10d, 262144 IID8411 - __ subl_imm32(r10, 1048576); // sub r10d, 1048576 IID8412 - __ subl_imm32(r10, 4194304); // sub r10d, 4194304 IID8413 - __ subl_imm32(r10, 16777216); // sub r10d, 16777216 IID8414 - __ subl_imm32(r10, 67108864); // sub r10d, 67108864 IID8415 - __ subl_imm32(r10, 268435456); // sub r10d, 268435456 IID8416 - __ subl_imm32(r10, 1073741824); // sub r10d, 1073741824 IID8417 - __ subl_imm32(r11, 65536); // sub r11d, 65536 IID8418 - __ subl_imm32(r11, 262144); // sub r11d, 262144 IID8419 - __ subl_imm32(r11, 1048576); // sub r11d, 1048576 IID8420 - __ subl_imm32(r11, 4194304); // sub r11d, 4194304 IID8421 - __ subl_imm32(r11, 16777216); // sub r11d, 16777216 IID8422 - __ subl_imm32(r11, 67108864); // sub r11d, 67108864 IID8423 - __ subl_imm32(r11, 268435456); // sub r11d, 268435456 IID8424 - __ subl_imm32(r11, 1073741824); // sub r11d, 1073741824 IID8425 - __ subl_imm32(r12, 65536); // sub r12d, 65536 IID8426 - __ subl_imm32(r12, 262144); // sub r12d, 262144 IID8427 - __ subl_imm32(r12, 1048576); // sub r12d, 1048576 IID8428 - __ subl_imm32(r12, 4194304); // sub r12d, 4194304 IID8429 - __ subl_imm32(r12, 16777216); // sub r12d, 16777216 IID8430 - __ subl_imm32(r12, 67108864); // sub r12d, 67108864 IID8431 - __ subl_imm32(r12, 268435456); // sub r12d, 268435456 IID8432 - __ subl_imm32(r12, 1073741824); // sub r12d, 1073741824 IID8433 - __ subl_imm32(r13, 65536); // sub r13d, 65536 IID8434 - __ subl_imm32(r13, 262144); // sub r13d, 262144 IID8435 - __ subl_imm32(r13, 1048576); // sub r13d, 1048576 IID8436 - __ subl_imm32(r13, 4194304); // sub r13d, 4194304 IID8437 - __ subl_imm32(r13, 16777216); // sub r13d, 16777216 IID8438 - __ subl_imm32(r13, 67108864); // sub r13d, 67108864 IID8439 - __ subl_imm32(r13, 268435456); // sub r13d, 268435456 IID8440 - __ subl_imm32(r13, 1073741824); // sub r13d, 1073741824 IID8441 - __ subl_imm32(r14, 65536); // sub r14d, 65536 IID8442 - __ subl_imm32(r14, 262144); // sub r14d, 262144 IID8443 - __ subl_imm32(r14, 1048576); // sub r14d, 1048576 IID8444 - __ subl_imm32(r14, 4194304); // sub r14d, 4194304 IID8445 - __ subl_imm32(r14, 16777216); // sub r14d, 16777216 IID8446 - __ subl_imm32(r14, 67108864); // sub r14d, 67108864 IID8447 - __ subl_imm32(r14, 268435456); // sub r14d, 268435456 IID8448 - __ subl_imm32(r14, 1073741824); // sub r14d, 1073741824 IID8449 - __ subl_imm32(r15, 65536); // sub r15d, 65536 IID8450 - __ subl_imm32(r15, 262144); // sub r15d, 262144 IID8451 - __ subl_imm32(r15, 1048576); // sub r15d, 1048576 IID8452 - __ subl_imm32(r15, 4194304); // sub r15d, 4194304 IID8453 - __ subl_imm32(r15, 16777216); // sub r15d, 16777216 IID8454 - __ subl_imm32(r15, 67108864); // sub r15d, 67108864 IID8455 - __ subl_imm32(r15, 268435456); // sub r15d, 268435456 IID8456 - __ subl_imm32(r15, 1073741824); // sub r15d, 1073741824 IID8457 - __ subl_imm32(r16, 65536); // sub r16d, 65536 IID8458 - __ subl_imm32(r16, 262144); // sub r16d, 262144 IID8459 - __ subl_imm32(r16, 1048576); // sub r16d, 1048576 IID8460 - __ subl_imm32(r16, 4194304); // sub r16d, 4194304 IID8461 - __ subl_imm32(r16, 16777216); // sub r16d, 16777216 IID8462 - __ subl_imm32(r16, 67108864); // sub r16d, 67108864 IID8463 - __ subl_imm32(r16, 268435456); // sub r16d, 268435456 IID8464 - __ subl_imm32(r16, 1073741824); // sub r16d, 1073741824 IID8465 - __ subl_imm32(r17, 65536); // sub r17d, 65536 IID8466 - __ subl_imm32(r17, 262144); // sub r17d, 262144 IID8467 - __ subl_imm32(r17, 1048576); // sub r17d, 1048576 IID8468 - __ subl_imm32(r17, 4194304); // sub r17d, 4194304 IID8469 - __ subl_imm32(r17, 16777216); // sub r17d, 16777216 IID8470 - __ subl_imm32(r17, 67108864); // sub r17d, 67108864 IID8471 - __ subl_imm32(r17, 268435456); // sub r17d, 268435456 IID8472 - __ subl_imm32(r17, 1073741824); // sub r17d, 1073741824 IID8473 - __ subl_imm32(r18, 65536); // sub r18d, 65536 IID8474 - __ subl_imm32(r18, 262144); // sub r18d, 262144 IID8475 - __ subl_imm32(r18, 1048576); // sub r18d, 1048576 IID8476 - __ subl_imm32(r18, 4194304); // sub r18d, 4194304 IID8477 - __ subl_imm32(r18, 16777216); // sub r18d, 16777216 IID8478 - __ subl_imm32(r18, 67108864); // sub r18d, 67108864 IID8479 - __ subl_imm32(r18, 268435456); // sub r18d, 268435456 IID8480 - __ subl_imm32(r18, 1073741824); // sub r18d, 1073741824 IID8481 - __ subl_imm32(r19, 65536); // sub r19d, 65536 IID8482 - __ subl_imm32(r19, 262144); // sub r19d, 262144 IID8483 - __ subl_imm32(r19, 1048576); // sub r19d, 1048576 IID8484 - __ subl_imm32(r19, 4194304); // sub r19d, 4194304 IID8485 - __ subl_imm32(r19, 16777216); // sub r19d, 16777216 IID8486 - __ subl_imm32(r19, 67108864); // sub r19d, 67108864 IID8487 - __ subl_imm32(r19, 268435456); // sub r19d, 268435456 IID8488 - __ subl_imm32(r19, 1073741824); // sub r19d, 1073741824 IID8489 - __ subl_imm32(r20, 65536); // sub r20d, 65536 IID8490 - __ subl_imm32(r20, 262144); // sub r20d, 262144 IID8491 - __ subl_imm32(r20, 1048576); // sub r20d, 1048576 IID8492 - __ subl_imm32(r20, 4194304); // sub r20d, 4194304 IID8493 - __ subl_imm32(r20, 16777216); // sub r20d, 16777216 IID8494 - __ subl_imm32(r20, 67108864); // sub r20d, 67108864 IID8495 - __ subl_imm32(r20, 268435456); // sub r20d, 268435456 IID8496 - __ subl_imm32(r20, 1073741824); // sub r20d, 1073741824 IID8497 - __ subl_imm32(r21, 65536); // sub r21d, 65536 IID8498 - __ subl_imm32(r21, 262144); // sub r21d, 262144 IID8499 - __ subl_imm32(r21, 1048576); // sub r21d, 1048576 IID8500 - __ subl_imm32(r21, 4194304); // sub r21d, 4194304 IID8501 - __ subl_imm32(r21, 16777216); // sub r21d, 16777216 IID8502 - __ subl_imm32(r21, 67108864); // sub r21d, 67108864 IID8503 - __ subl_imm32(r21, 268435456); // sub r21d, 268435456 IID8504 - __ subl_imm32(r21, 1073741824); // sub r21d, 1073741824 IID8505 - __ subl_imm32(r22, 65536); // sub r22d, 65536 IID8506 - __ subl_imm32(r22, 262144); // sub r22d, 262144 IID8507 - __ subl_imm32(r22, 1048576); // sub r22d, 1048576 IID8508 - __ subl_imm32(r22, 4194304); // sub r22d, 4194304 IID8509 - __ subl_imm32(r22, 16777216); // sub r22d, 16777216 IID8510 - __ subl_imm32(r22, 67108864); // sub r22d, 67108864 IID8511 - __ subl_imm32(r22, 268435456); // sub r22d, 268435456 IID8512 - __ subl_imm32(r22, 1073741824); // sub r22d, 1073741824 IID8513 - __ subl_imm32(r23, 65536); // sub r23d, 65536 IID8514 - __ subl_imm32(r23, 262144); // sub r23d, 262144 IID8515 - __ subl_imm32(r23, 1048576); // sub r23d, 1048576 IID8516 - __ subl_imm32(r23, 4194304); // sub r23d, 4194304 IID8517 - __ subl_imm32(r23, 16777216); // sub r23d, 16777216 IID8518 - __ subl_imm32(r23, 67108864); // sub r23d, 67108864 IID8519 - __ subl_imm32(r23, 268435456); // sub r23d, 268435456 IID8520 - __ subl_imm32(r23, 1073741824); // sub r23d, 1073741824 IID8521 - __ subl_imm32(r24, 65536); // sub r24d, 65536 IID8522 - __ subl_imm32(r24, 262144); // sub r24d, 262144 IID8523 - __ subl_imm32(r24, 1048576); // sub r24d, 1048576 IID8524 - __ subl_imm32(r24, 4194304); // sub r24d, 4194304 IID8525 - __ subl_imm32(r24, 16777216); // sub r24d, 16777216 IID8526 - __ subl_imm32(r24, 67108864); // sub r24d, 67108864 IID8527 - __ subl_imm32(r24, 268435456); // sub r24d, 268435456 IID8528 - __ subl_imm32(r24, 1073741824); // sub r24d, 1073741824 IID8529 - __ subl_imm32(r25, 65536); // sub r25d, 65536 IID8530 - __ subl_imm32(r25, 262144); // sub r25d, 262144 IID8531 - __ subl_imm32(r25, 1048576); // sub r25d, 1048576 IID8532 - __ subl_imm32(r25, 4194304); // sub r25d, 4194304 IID8533 - __ subl_imm32(r25, 16777216); // sub r25d, 16777216 IID8534 - __ subl_imm32(r25, 67108864); // sub r25d, 67108864 IID8535 - __ subl_imm32(r25, 268435456); // sub r25d, 268435456 IID8536 - __ subl_imm32(r25, 1073741824); // sub r25d, 1073741824 IID8537 - __ subl_imm32(r26, 65536); // sub r26d, 65536 IID8538 - __ subl_imm32(r26, 262144); // sub r26d, 262144 IID8539 - __ subl_imm32(r26, 1048576); // sub r26d, 1048576 IID8540 - __ subl_imm32(r26, 4194304); // sub r26d, 4194304 IID8541 - __ subl_imm32(r26, 16777216); // sub r26d, 16777216 IID8542 - __ subl_imm32(r26, 67108864); // sub r26d, 67108864 IID8543 - __ subl_imm32(r26, 268435456); // sub r26d, 268435456 IID8544 - __ subl_imm32(r26, 1073741824); // sub r26d, 1073741824 IID8545 - __ subl_imm32(r27, 65536); // sub r27d, 65536 IID8546 - __ subl_imm32(r27, 262144); // sub r27d, 262144 IID8547 - __ subl_imm32(r27, 1048576); // sub r27d, 1048576 IID8548 - __ subl_imm32(r27, 4194304); // sub r27d, 4194304 IID8549 - __ subl_imm32(r27, 16777216); // sub r27d, 16777216 IID8550 - __ subl_imm32(r27, 67108864); // sub r27d, 67108864 IID8551 - __ subl_imm32(r27, 268435456); // sub r27d, 268435456 IID8552 - __ subl_imm32(r27, 1073741824); // sub r27d, 1073741824 IID8553 - __ subl_imm32(r28, 65536); // sub r28d, 65536 IID8554 - __ subl_imm32(r28, 262144); // sub r28d, 262144 IID8555 - __ subl_imm32(r28, 1048576); // sub r28d, 1048576 IID8556 - __ subl_imm32(r28, 4194304); // sub r28d, 4194304 IID8557 - __ subl_imm32(r28, 16777216); // sub r28d, 16777216 IID8558 - __ subl_imm32(r28, 67108864); // sub r28d, 67108864 IID8559 - __ subl_imm32(r28, 268435456); // sub r28d, 268435456 IID8560 - __ subl_imm32(r28, 1073741824); // sub r28d, 1073741824 IID8561 - __ subl_imm32(r29, 65536); // sub r29d, 65536 IID8562 - __ subl_imm32(r29, 262144); // sub r29d, 262144 IID8563 - __ subl_imm32(r29, 1048576); // sub r29d, 1048576 IID8564 - __ subl_imm32(r29, 4194304); // sub r29d, 4194304 IID8565 - __ subl_imm32(r29, 16777216); // sub r29d, 16777216 IID8566 - __ subl_imm32(r29, 67108864); // sub r29d, 67108864 IID8567 - __ subl_imm32(r29, 268435456); // sub r29d, 268435456 IID8568 - __ subl_imm32(r29, 1073741824); // sub r29d, 1073741824 IID8569 - __ subl_imm32(r30, 65536); // sub r30d, 65536 IID8570 - __ subl_imm32(r30, 262144); // sub r30d, 262144 IID8571 - __ subl_imm32(r30, 1048576); // sub r30d, 1048576 IID8572 - __ subl_imm32(r30, 4194304); // sub r30d, 4194304 IID8573 - __ subl_imm32(r30, 16777216); // sub r30d, 16777216 IID8574 - __ subl_imm32(r30, 67108864); // sub r30d, 67108864 IID8575 - __ subl_imm32(r30, 268435456); // sub r30d, 268435456 IID8576 - __ subl_imm32(r30, 1073741824); // sub r30d, 1073741824 IID8577 - __ subl_imm32(r31, 65536); // sub r31d, 65536 IID8578 - __ subl_imm32(r31, 262144); // sub r31d, 262144 IID8579 - __ subl_imm32(r31, 1048576); // sub r31d, 1048576 IID8580 - __ subl_imm32(r31, 4194304); // sub r31d, 4194304 IID8581 - __ subl_imm32(r31, 16777216); // sub r31d, 16777216 IID8582 - __ subl_imm32(r31, 67108864); // sub r31d, 67108864 IID8583 - __ subl_imm32(r31, 268435456); // sub r31d, 268435456 IID8584 - __ subl_imm32(r31, 1073741824); // sub r31d, 1073741824 IID8585 -#endif // _LP64 - __ cmovl(Assembler::Condition::overflow, rcx, Address(rdx, rbx, (Address::ScaleFactor)0, -0x14bc2866)); // cmovo ecx, dword ptr [rdx+rbx*1-0x14bc2866] IID8586 -#ifdef _LP64 - __ cmovl(Assembler::Condition::overflow, rdx, Address(rbx, -0x4de64e75)); // cmovo edx, dword ptr [rbx-0x4de64e75] IID8587 - __ cmovl(Assembler::Condition::overflow, rbx, Address(r8, r9, (Address::ScaleFactor)1, -0x534822fe)); // cmovo ebx, dword ptr [r8+r9*2-0x534822fe] IID8588 - __ cmovl(Assembler::Condition::overflow, r8, Address(r9, r10, (Address::ScaleFactor)3, -0x6fb9ace2)); // cmovo r8d, dword ptr [r9+r10*8-0x6fb9ace2] IID8589 - __ cmovl(Assembler::Condition::overflow, r9, Address(r10, r11, (Address::ScaleFactor)1, +0x69903526)); // cmovo r9d, dword ptr [r10+r11*2+0x69903526] IID8590 - __ cmovl(Assembler::Condition::overflow, r10, Address(r11, r12, (Address::ScaleFactor)0, -0x79430fd5)); // cmovo r10d, dword ptr [r11+r12*1-0x79430fd5] IID8591 - __ cmovl(Assembler::Condition::overflow, r11, Address(r12, r13, (Address::ScaleFactor)1, +0x7e7f3fab)); // cmovo r11d, dword ptr [r12+r13*2+0x7e7f3fab] IID8592 - __ cmovl(Assembler::Condition::overflow, r12, Address(r13, r14, (Address::ScaleFactor)1, +0x1798e627)); // cmovo r12d, dword ptr [r13+r14*2+0x1798e627] IID8593 - __ cmovl(Assembler::Condition::overflow, r13, Address(r14, r15, (Address::ScaleFactor)0, -0xed0c3c8)); // cmovo r13d, dword ptr [r14+r15*1-0xed0c3c8] IID8594 - __ cmovl(Assembler::Condition::overflow, r14, Address(r15, r16, (Address::ScaleFactor)2, -0x30ba4b64)); // cmovo r14d, dword ptr [r15+r16*4-0x30ba4b64] IID8595 - __ cmovl(Assembler::Condition::overflow, r15, Address(r16, -0x5294174)); // cmovo r15d, dword ptr [r16-0x5294174] IID8596 - __ cmovl(Assembler::Condition::overflow, r16, Address(r17, r18, (Address::ScaleFactor)1, +0x260a8767)); // cmovo r16d, dword ptr [r17+r18*2+0x260a8767] IID8597 - __ cmovl(Assembler::Condition::overflow, r17, Address(r18, r19, (Address::ScaleFactor)0, +0x671fd6e3)); // cmovo r17d, dword ptr [r18+r19*1+0x671fd6e3] IID8598 - __ cmovl(Assembler::Condition::overflow, r18, Address(r19, r20, (Address::ScaleFactor)2, +0x544db203)); // cmovo r18d, dword ptr [r19+r20*4+0x544db203] IID8599 - __ cmovl(Assembler::Condition::overflow, r19, Address(r20, +0x6fcd061f)); // cmovo r19d, dword ptr [r20+0x6fcd061f] IID8600 - __ cmovl(Assembler::Condition::overflow, r20, Address(r21, +0x4f599a1b)); // cmovo r20d, dword ptr [r21+0x4f599a1b] IID8601 - __ cmovl(Assembler::Condition::overflow, r21, Address(r22, -0x66b5b5b3)); // cmovo r21d, dword ptr [r22-0x66b5b5b3] IID8602 - __ cmovl(Assembler::Condition::overflow, r22, Address(r23, r24, (Address::ScaleFactor)2, -0x3f387682)); // cmovo r22d, dword ptr [r23+r24*4-0x3f387682] IID8603 - __ cmovl(Assembler::Condition::overflow, r23, Address(r24, r25, (Address::ScaleFactor)1, +0x390fd238)); // cmovo r23d, dword ptr [r24+r25*2+0x390fd238] IID8604 - __ cmovl(Assembler::Condition::overflow, r24, Address(r25, +0x620cb58a)); // cmovo r24d, dword ptr [r25+0x620cb58a] IID8605 - __ cmovl(Assembler::Condition::overflow, r25, Address(r26, r27, (Address::ScaleFactor)0, -0xad6211e)); // cmovo r25d, dword ptr [r26+r27*1-0xad6211e] IID8606 - __ cmovl(Assembler::Condition::overflow, r26, Address(r27, -0x593efc61)); // cmovo r26d, dword ptr [r27-0x593efc61] IID8607 - __ cmovl(Assembler::Condition::overflow, r27, Address(r28, r29, (Address::ScaleFactor)3, +0x46a67b59)); // cmovo r27d, dword ptr [r28+r29*8+0x46a67b59] IID8608 - __ cmovl(Assembler::Condition::overflow, r28, Address(r29, r30, (Address::ScaleFactor)3, -0x63eae8d7)); // cmovo r28d, dword ptr [r29+r30*8-0x63eae8d7] IID8609 - __ cmovl(Assembler::Condition::overflow, r29, Address(r30, r31, (Address::ScaleFactor)1, +0x785542a1)); // cmovo r29d, dword ptr [r30+r31*2+0x785542a1] IID8610 - __ cmovl(Assembler::Condition::overflow, r30, Address(r31, rcx, (Address::ScaleFactor)0, +0x40a1974b)); // cmovo r30d, dword ptr [r31+rcx*1+0x40a1974b] IID8611 - __ cmovl(Assembler::Condition::overflow, r31, Address(rcx, rdx, (Address::ScaleFactor)2, -0x4046e7df)); // cmovo r31d, dword ptr [rcx+rdx*4-0x4046e7df] IID8612 -#endif // _LP64 - __ cmovl(Assembler::Condition::noOverflow, rcx, Address(rdx, rbx, (Address::ScaleFactor)1, -0x43329a93)); // cmovno ecx, dword ptr [rdx+rbx*2-0x43329a93] IID8613 -#ifdef _LP64 - __ cmovl(Assembler::Condition::noOverflow, rdx, Address(rbx, +0x40abd8ef)); // cmovno edx, dword ptr [rbx+0x40abd8ef] IID8614 - __ cmovl(Assembler::Condition::noOverflow, rbx, Address(r8, r9, (Address::ScaleFactor)1, -0x64df993d)); // cmovno ebx, dword ptr [r8+r9*2-0x64df993d] IID8615 - __ cmovl(Assembler::Condition::noOverflow, r8, Address(r9, -0x3752060a)); // cmovno r8d, dword ptr [r9-0x3752060a] IID8616 - __ cmovl(Assembler::Condition::noOverflow, r9, Address(r10, r11, (Address::ScaleFactor)2, +0x6cf99c02)); // cmovno r9d, dword ptr [r10+r11*4+0x6cf99c02] IID8617 - __ cmovl(Assembler::Condition::noOverflow, r10, Address(r11, r12, (Address::ScaleFactor)0, -0x749254c)); // cmovno r10d, dword ptr [r11+r12*1-0x749254c] IID8618 - __ cmovl(Assembler::Condition::noOverflow, r11, Address(r12, -0x399c0fb8)); // cmovno r11d, dword ptr [r12-0x399c0fb8] IID8619 - __ cmovl(Assembler::Condition::noOverflow, r12, Address(r13, -0x2d414852)); // cmovno r12d, dword ptr [r13-0x2d414852] IID8620 - __ cmovl(Assembler::Condition::noOverflow, r13, Address(r14, r15, (Address::ScaleFactor)0, -0x369d363e)); // cmovno r13d, dword ptr [r14+r15*1-0x369d363e] IID8621 - __ cmovl(Assembler::Condition::noOverflow, r14, Address(r15, r16, (Address::ScaleFactor)2, -0x3824f27d)); // cmovno r14d, dword ptr [r15+r16*4-0x3824f27d] IID8622 - __ cmovl(Assembler::Condition::noOverflow, r15, Address(r16, r17, (Address::ScaleFactor)2, +0x26029538)); // cmovno r15d, dword ptr [r16+r17*4+0x26029538] IID8623 - __ cmovl(Assembler::Condition::noOverflow, r16, Address(r17, r18, (Address::ScaleFactor)3, +0x22dc5ce9)); // cmovno r16d, dword ptr [r17+r18*8+0x22dc5ce9] IID8624 - __ cmovl(Assembler::Condition::noOverflow, r17, Address(r18, r19, (Address::ScaleFactor)1, +0x2f9f1d0b)); // cmovno r17d, dword ptr [r18+r19*2+0x2f9f1d0b] IID8625 - __ cmovl(Assembler::Condition::noOverflow, r18, Address(r19, -0x60bfac36)); // cmovno r18d, dword ptr [r19-0x60bfac36] IID8626 - __ cmovl(Assembler::Condition::noOverflow, r19, Address(r20, r21, (Address::ScaleFactor)2, +0x34177b9f)); // cmovno r19d, dword ptr [r20+r21*4+0x34177b9f] IID8627 - __ cmovl(Assembler::Condition::noOverflow, r20, Address(r21, r22, (Address::ScaleFactor)2, -0x79374d67)); // cmovno r20d, dword ptr [r21+r22*4-0x79374d67] IID8628 - __ cmovl(Assembler::Condition::noOverflow, r21, Address(r22, r23, (Address::ScaleFactor)0, +0x18cdea37)); // cmovno r21d, dword ptr [r22+r23*1+0x18cdea37] IID8629 - __ cmovl(Assembler::Condition::noOverflow, r22, Address(r23, r24, (Address::ScaleFactor)2, -0x67839b96)); // cmovno r22d, dword ptr [r23+r24*4-0x67839b96] IID8630 - __ cmovl(Assembler::Condition::noOverflow, r23, Address(r24, r25, (Address::ScaleFactor)2, +0x26215549)); // cmovno r23d, dword ptr [r24+r25*4+0x26215549] IID8631 - __ cmovl(Assembler::Condition::noOverflow, r24, Address(r25, r26, (Address::ScaleFactor)3, -0x6d52e828)); // cmovno r24d, dword ptr [r25+r26*8-0x6d52e828] IID8632 - __ cmovl(Assembler::Condition::noOverflow, r25, Address(r26, r27, (Address::ScaleFactor)2, +0x7e2c6f79)); // cmovno r25d, dword ptr [r26+r27*4+0x7e2c6f79] IID8633 - __ cmovl(Assembler::Condition::noOverflow, r26, Address(r27, r28, (Address::ScaleFactor)3, +0x6bbc7565)); // cmovno r26d, dword ptr [r27+r28*8+0x6bbc7565] IID8634 - __ cmovl(Assembler::Condition::noOverflow, r27, Address(r28, r29, (Address::ScaleFactor)3, -0x4bfa8e84)); // cmovno r27d, dword ptr [r28+r29*8-0x4bfa8e84] IID8635 - __ cmovl(Assembler::Condition::noOverflow, r28, Address(r29, -0x2458e3e7)); // cmovno r28d, dword ptr [r29-0x2458e3e7] IID8636 - __ cmovl(Assembler::Condition::noOverflow, r29, Address(r30, r31, (Address::ScaleFactor)1, -0x37a36166)); // cmovno r29d, dword ptr [r30+r31*2-0x37a36166] IID8637 - __ cmovl(Assembler::Condition::noOverflow, r30, Address(r31, rcx, (Address::ScaleFactor)3, -0x36c70b56)); // cmovno r30d, dword ptr [r31+rcx*8-0x36c70b56] IID8638 - __ cmovl(Assembler::Condition::noOverflow, r31, Address(rcx, +0x23c497f8)); // cmovno r31d, dword ptr [rcx+0x23c497f8] IID8639 -#endif // _LP64 - __ cmovl(Assembler::Condition::below, rcx, Address(rdx, rbx, (Address::ScaleFactor)0, +0xe9f53b5)); // cmovb ecx, dword ptr [rdx+rbx*1+0xe9f53b5] IID8640 -#ifdef _LP64 - __ cmovl(Assembler::Condition::below, rdx, Address(rbx, r8, (Address::ScaleFactor)0, -0x1756f698)); // cmovb edx, dword ptr [rbx+r8*1-0x1756f698] IID8641 - __ cmovl(Assembler::Condition::below, rbx, Address(r8, +0x52c7ac7b)); // cmovb ebx, dword ptr [r8+0x52c7ac7b] IID8642 - __ cmovl(Assembler::Condition::below, r8, Address(r9, r10, (Address::ScaleFactor)2, +0x767ab031)); // cmovb r8d, dword ptr [r9+r10*4+0x767ab031] IID8643 - __ cmovl(Assembler::Condition::below, r9, Address(r10, -0x19fcc85e)); // cmovb r9d, dword ptr [r10-0x19fcc85e] IID8644 - __ cmovl(Assembler::Condition::below, r10, Address(r11, +0xb98b8e2)); // cmovb r10d, dword ptr [r11+0xb98b8e2] IID8645 - __ cmovl(Assembler::Condition::below, r11, Address(r12, r13, (Address::ScaleFactor)1, -0x55c8caae)); // cmovb r11d, dword ptr [r12+r13*2-0x55c8caae] IID8646 - __ cmovl(Assembler::Condition::below, r12, Address(r13, r14, (Address::ScaleFactor)2, +0x48d592ab)); // cmovb r12d, dword ptr [r13+r14*4+0x48d592ab] IID8647 - __ cmovl(Assembler::Condition::below, r13, Address(r14, r15, (Address::ScaleFactor)3, +0x5bfb68f4)); // cmovb r13d, dword ptr [r14+r15*8+0x5bfb68f4] IID8648 - __ cmovl(Assembler::Condition::below, r14, Address(r15, r16, (Address::ScaleFactor)1, +0x3f58af9d)); // cmovb r14d, dword ptr [r15+r16*2+0x3f58af9d] IID8649 - __ cmovl(Assembler::Condition::below, r15, Address(r16, r17, (Address::ScaleFactor)1, +0x616778a1)); // cmovb r15d, dword ptr [r16+r17*2+0x616778a1] IID8650 - __ cmovl(Assembler::Condition::below, r16, Address(r17, r18, (Address::ScaleFactor)2, +0x34e970d0)); // cmovb r16d, dword ptr [r17+r18*4+0x34e970d0] IID8651 - __ cmovl(Assembler::Condition::below, r17, Address(r18, -0x3f5ab5be)); // cmovb r17d, dword ptr [r18-0x3f5ab5be] IID8652 - __ cmovl(Assembler::Condition::below, r18, Address(r19, r20, (Address::ScaleFactor)3, +0x519efe4f)); // cmovb r18d, dword ptr [r19+r20*8+0x519efe4f] IID8653 - __ cmovl(Assembler::Condition::below, r19, Address(r20, +0x6ff7b6e2)); // cmovb r19d, dword ptr [r20+0x6ff7b6e2] IID8654 - __ cmovl(Assembler::Condition::below, r20, Address(r21, r22, (Address::ScaleFactor)2, +0x507df524)); // cmovb r20d, dword ptr [r21+r22*4+0x507df524] IID8655 - __ cmovl(Assembler::Condition::below, r21, Address(r22, r23, (Address::ScaleFactor)1, -0x2a2e6b38)); // cmovb r21d, dword ptr [r22+r23*2-0x2a2e6b38] IID8656 - __ cmovl(Assembler::Condition::below, r22, Address(r23, r24, (Address::ScaleFactor)2, -0x26066f56)); // cmovb r22d, dword ptr [r23+r24*4-0x26066f56] IID8657 - __ cmovl(Assembler::Condition::below, r23, Address(r24, r25, (Address::ScaleFactor)0, -0x2ef64a8c)); // cmovb r23d, dword ptr [r24+r25*1-0x2ef64a8c] IID8658 - __ cmovl(Assembler::Condition::below, r24, Address(r25, r26, (Address::ScaleFactor)2, +0x5c56c4ec)); // cmovb r24d, dword ptr [r25+r26*4+0x5c56c4ec] IID8659 - __ cmovl(Assembler::Condition::below, r25, Address(r26, +0x66f85eb3)); // cmovb r25d, dword ptr [r26+0x66f85eb3] IID8660 - __ cmovl(Assembler::Condition::below, r26, Address(r27, r28, (Address::ScaleFactor)2, +0x65ecc08a)); // cmovb r26d, dword ptr [r27+r28*4+0x65ecc08a] IID8661 - __ cmovl(Assembler::Condition::below, r27, Address(r28, r29, (Address::ScaleFactor)3, -0x58911160)); // cmovb r27d, dword ptr [r28+r29*8-0x58911160] IID8662 - __ cmovl(Assembler::Condition::below, r28, Address(r29, r30, (Address::ScaleFactor)1, -0x3afb0d17)); // cmovb r28d, dword ptr [r29+r30*2-0x3afb0d17] IID8663 - __ cmovl(Assembler::Condition::below, r29, Address(r30, r31, (Address::ScaleFactor)1, -0x51e40385)); // cmovb r29d, dword ptr [r30+r31*2-0x51e40385] IID8664 - __ cmovl(Assembler::Condition::below, r30, Address(r31, rcx, (Address::ScaleFactor)2, +0x2665a665)); // cmovb r30d, dword ptr [r31+rcx*4+0x2665a665] IID8665 - __ cmovl(Assembler::Condition::below, r31, Address(rcx, rdx, (Address::ScaleFactor)0, -0x4851292c)); // cmovb r31d, dword ptr [rcx+rdx*1-0x4851292c] IID8666 -#endif // _LP64 - __ cmovl(Assembler::Condition::aboveEqual, rcx, Address(rdx, rbx, (Address::ScaleFactor)0, +0x6ccb2a99)); // cmovae ecx, dword ptr [rdx+rbx*1+0x6ccb2a99] IID8667 -#ifdef _LP64 - __ cmovl(Assembler::Condition::aboveEqual, rdx, Address(rbx, +0xd2d844e)); // cmovae edx, dword ptr [rbx+0xd2d844e] IID8668 - __ cmovl(Assembler::Condition::aboveEqual, rbx, Address(r8, r9, (Address::ScaleFactor)0, +0x78614f4)); // cmovae ebx, dword ptr [r8+r9*1+0x78614f4] IID8669 - __ cmovl(Assembler::Condition::aboveEqual, r8, Address(r9, r10, (Address::ScaleFactor)2, +0x7f3462fa)); // cmovae r8d, dword ptr [r9+r10*4+0x7f3462fa] IID8670 - __ cmovl(Assembler::Condition::aboveEqual, r9, Address(r10, r11, (Address::ScaleFactor)2, +0x214b4935)); // cmovae r9d, dword ptr [r10+r11*4+0x214b4935] IID8671 - __ cmovl(Assembler::Condition::aboveEqual, r10, Address(r11, r12, (Address::ScaleFactor)2, +0x67c0dc39)); // cmovae r10d, dword ptr [r11+r12*4+0x67c0dc39] IID8672 - __ cmovl(Assembler::Condition::aboveEqual, r11, Address(r12, r13, (Address::ScaleFactor)1, +0x1496a4b)); // cmovae r11d, dword ptr [r12+r13*2+0x1496a4b] IID8673 - __ cmovl(Assembler::Condition::aboveEqual, r12, Address(r13, r14, (Address::ScaleFactor)1, -0x5f5ee139)); // cmovae r12d, dword ptr [r13+r14*2-0x5f5ee139] IID8674 - __ cmovl(Assembler::Condition::aboveEqual, r13, Address(r14, -0x5bcbdeac)); // cmovae r13d, dword ptr [r14-0x5bcbdeac] IID8675 - __ cmovl(Assembler::Condition::aboveEqual, r14, Address(r15, r16, (Address::ScaleFactor)2, +0x23fae6f0)); // cmovae r14d, dword ptr [r15+r16*4+0x23fae6f0] IID8676 - __ cmovl(Assembler::Condition::aboveEqual, r15, Address(r16, r17, (Address::ScaleFactor)1, +0x4dab12d9)); // cmovae r15d, dword ptr [r16+r17*2+0x4dab12d9] IID8677 - __ cmovl(Assembler::Condition::aboveEqual, r16, Address(r17, r18, (Address::ScaleFactor)2, +0xf12a06a)); // cmovae r16d, dword ptr [r17+r18*4+0xf12a06a] IID8678 - __ cmovl(Assembler::Condition::aboveEqual, r17, Address(r18, r19, (Address::ScaleFactor)1, -0xd651849)); // cmovae r17d, dword ptr [r18+r19*2-0xd651849] IID8679 - __ cmovl(Assembler::Condition::aboveEqual, r18, Address(r19, r20, (Address::ScaleFactor)0, -0x1f072ceb)); // cmovae r18d, dword ptr [r19+r20*1-0x1f072ceb] IID8680 - __ cmovl(Assembler::Condition::aboveEqual, r19, Address(r20, +0x481d7b31)); // cmovae r19d, dword ptr [r20+0x481d7b31] IID8681 - __ cmovl(Assembler::Condition::aboveEqual, r20, Address(r21, r22, (Address::ScaleFactor)1, +0x1fcdaa2c)); // cmovae r20d, dword ptr [r21+r22*2+0x1fcdaa2c] IID8682 - __ cmovl(Assembler::Condition::aboveEqual, r21, Address(r22, -0x624eb14e)); // cmovae r21d, dword ptr [r22-0x624eb14e] IID8683 - __ cmovl(Assembler::Condition::aboveEqual, r22, Address(r23, r24, (Address::ScaleFactor)2, -0x578a088b)); // cmovae r22d, dword ptr [r23+r24*4-0x578a088b] IID8684 - __ cmovl(Assembler::Condition::aboveEqual, r23, Address(r24, -0x4d05173d)); // cmovae r23d, dword ptr [r24-0x4d05173d] IID8685 - __ cmovl(Assembler::Condition::aboveEqual, r24, Address(r25, r26, (Address::ScaleFactor)3, -0x1dd417f7)); // cmovae r24d, dword ptr [r25+r26*8-0x1dd417f7] IID8686 - __ cmovl(Assembler::Condition::aboveEqual, r25, Address(r26, +0x48671375)); // cmovae r25d, dword ptr [r26+0x48671375] IID8687 - __ cmovl(Assembler::Condition::aboveEqual, r26, Address(r27, r28, (Address::ScaleFactor)0, +0x4a50afac)); // cmovae r26d, dword ptr [r27+r28*1+0x4a50afac] IID8688 - __ cmovl(Assembler::Condition::aboveEqual, r27, Address(r28, r29, (Address::ScaleFactor)2, +0x29f9624e)); // cmovae r27d, dword ptr [r28+r29*4+0x29f9624e] IID8689 - __ cmovl(Assembler::Condition::aboveEqual, r28, Address(r29, r30, (Address::ScaleFactor)0, -0x31d288a6)); // cmovae r28d, dword ptr [r29+r30*1-0x31d288a6] IID8690 - __ cmovl(Assembler::Condition::aboveEqual, r29, Address(r30, +0x225e822e)); // cmovae r29d, dword ptr [r30+0x225e822e] IID8691 - __ cmovl(Assembler::Condition::aboveEqual, r30, Address(r31, rcx, (Address::ScaleFactor)2, -0x15efb994)); // cmovae r30d, dword ptr [r31+rcx*4-0x15efb994] IID8692 - __ cmovl(Assembler::Condition::aboveEqual, r31, Address(rcx, rdx, (Address::ScaleFactor)0, +0x73e62e88)); // cmovae r31d, dword ptr [rcx+rdx*1+0x73e62e88] IID8693 -#endif // _LP64 - __ cmovl(Assembler::Condition::zero, rcx, Address(rdx, rbx, (Address::ScaleFactor)0, -0x3e160577)); // cmovz ecx, dword ptr [rdx+rbx*1-0x3e160577] IID8694 -#ifdef _LP64 - __ cmovl(Assembler::Condition::zero, rdx, Address(rbx, r8, (Address::ScaleFactor)2, -0x1decbcfb)); // cmovz edx, dword ptr [rbx+r8*4-0x1decbcfb] IID8695 - __ cmovl(Assembler::Condition::zero, rbx, Address(r8, r9, (Address::ScaleFactor)2, +0x6553f9d0)); // cmovz ebx, dword ptr [r8+r9*4+0x6553f9d0] IID8696 - __ cmovl(Assembler::Condition::zero, r8, Address(r9, r10, (Address::ScaleFactor)0, +0x66c3596f)); // cmovz r8d, dword ptr [r9+r10*1+0x66c3596f] IID8697 - __ cmovl(Assembler::Condition::zero, r9, Address(r10, r11, (Address::ScaleFactor)2, -0xdaab405)); // cmovz r9d, dword ptr [r10+r11*4-0xdaab405] IID8698 - __ cmovl(Assembler::Condition::zero, r10, Address(r11, r12, (Address::ScaleFactor)0, +0x74c4b01c)); // cmovz r10d, dword ptr [r11+r12*1+0x74c4b01c] IID8699 - __ cmovl(Assembler::Condition::zero, r11, Address(r12, -0x4821d0c0)); // cmovz r11d, dword ptr [r12-0x4821d0c0] IID8700 - __ cmovl(Assembler::Condition::zero, r12, Address(r13, -0x5ad8bbf8)); // cmovz r12d, dword ptr [r13-0x5ad8bbf8] IID8701 - __ cmovl(Assembler::Condition::zero, r13, Address(r14, r15, (Address::ScaleFactor)1, -0x65508547)); // cmovz r13d, dword ptr [r14+r15*2-0x65508547] IID8702 - __ cmovl(Assembler::Condition::zero, r14, Address(r15, r16, (Address::ScaleFactor)2, -0x4c751d5a)); // cmovz r14d, dword ptr [r15+r16*4-0x4c751d5a] IID8703 - __ cmovl(Assembler::Condition::zero, r15, Address(r16, r17, (Address::ScaleFactor)3, -0x535d6a65)); // cmovz r15d, dword ptr [r16+r17*8-0x535d6a65] IID8704 - __ cmovl(Assembler::Condition::zero, r16, Address(r17, r18, (Address::ScaleFactor)2, +0x70a76eb9)); // cmovz r16d, dword ptr [r17+r18*4+0x70a76eb9] IID8705 - __ cmovl(Assembler::Condition::zero, r17, Address(r18, r19, (Address::ScaleFactor)0, -0x59f3df69)); // cmovz r17d, dword ptr [r18+r19*1-0x59f3df69] IID8706 - __ cmovl(Assembler::Condition::zero, r18, Address(r19, r20, (Address::ScaleFactor)1, +0x3b49ee38)); // cmovz r18d, dword ptr [r19+r20*2+0x3b49ee38] IID8707 - __ cmovl(Assembler::Condition::zero, r19, Address(r20, -0x26f68461)); // cmovz r19d, dword ptr [r20-0x26f68461] IID8708 - __ cmovl(Assembler::Condition::zero, r20, Address(r21, +0x4a7b9206)); // cmovz r20d, dword ptr [r21+0x4a7b9206] IID8709 - __ cmovl(Assembler::Condition::zero, r21, Address(r22, r23, (Address::ScaleFactor)2, +0x60fcb960)); // cmovz r21d, dword ptr [r22+r23*4+0x60fcb960] IID8710 - __ cmovl(Assembler::Condition::zero, r22, Address(r23, r24, (Address::ScaleFactor)1, +0x63655114)); // cmovz r22d, dword ptr [r23+r24*2+0x63655114] IID8711 - __ cmovl(Assembler::Condition::zero, r23, Address(r24, r25, (Address::ScaleFactor)0, +0x2831011c)); // cmovz r23d, dword ptr [r24+r25*1+0x2831011c] IID8712 - __ cmovl(Assembler::Condition::zero, r24, Address(r25, r26, (Address::ScaleFactor)1, +0x258a395f)); // cmovz r24d, dword ptr [r25+r26*2+0x258a395f] IID8713 - __ cmovl(Assembler::Condition::zero, r25, Address(r26, r27, (Address::ScaleFactor)3, -0x3e758efb)); // cmovz r25d, dword ptr [r26+r27*8-0x3e758efb] IID8714 - __ cmovl(Assembler::Condition::zero, r26, Address(r27, +0x2406e7a0)); // cmovz r26d, dword ptr [r27+0x2406e7a0] IID8715 - __ cmovl(Assembler::Condition::zero, r27, Address(r28, +0x8542946)); // cmovz r27d, dword ptr [r28+0x8542946] IID8716 - __ cmovl(Assembler::Condition::zero, r28, Address(r29, r30, (Address::ScaleFactor)3, +0x75785b63)); // cmovz r28d, dword ptr [r29+r30*8+0x75785b63] IID8717 - __ cmovl(Assembler::Condition::zero, r29, Address(r30, r31, (Address::ScaleFactor)2, +0xa713948)); // cmovz r29d, dword ptr [r30+r31*4+0xa713948] IID8718 - __ cmovl(Assembler::Condition::zero, r30, Address(r31, rcx, (Address::ScaleFactor)0, -0x41e78095)); // cmovz r30d, dword ptr [r31+rcx*1-0x41e78095] IID8719 - __ cmovl(Assembler::Condition::zero, r31, Address(rcx, rdx, (Address::ScaleFactor)2, -0x255b04fe)); // cmovz r31d, dword ptr [rcx+rdx*4-0x255b04fe] IID8720 -#endif // _LP64 - __ cmovl(Assembler::Condition::notZero, rcx, Address(rdx, rbx, (Address::ScaleFactor)2, +0xcc9f76d)); // cmovnz ecx, dword ptr [rdx+rbx*4+0xcc9f76d] IID8721 -#ifdef _LP64 - __ cmovl(Assembler::Condition::notZero, rdx, Address(rbx, -0x75574ff7)); // cmovnz edx, dword ptr [rbx-0x75574ff7] IID8722 - __ cmovl(Assembler::Condition::notZero, rbx, Address(r8, -0x54eee7bb)); // cmovnz ebx, dword ptr [r8-0x54eee7bb] IID8723 - __ cmovl(Assembler::Condition::notZero, r8, Address(r9, r10, (Address::ScaleFactor)2, -0x35e41c99)); // cmovnz r8d, dword ptr [r9+r10*4-0x35e41c99] IID8724 - __ cmovl(Assembler::Condition::notZero, r9, Address(r10, +0x1a2de2d2)); // cmovnz r9d, dword ptr [r10+0x1a2de2d2] IID8725 - __ cmovl(Assembler::Condition::notZero, r10, Address(r11, r12, (Address::ScaleFactor)3, +0x7f0564f2)); // cmovnz r10d, dword ptr [r11+r12*8+0x7f0564f2] IID8726 - __ cmovl(Assembler::Condition::notZero, r11, Address(r12, r13, (Address::ScaleFactor)0, -0x6ebfb7d6)); // cmovnz r11d, dword ptr [r12+r13*1-0x6ebfb7d6] IID8727 - __ cmovl(Assembler::Condition::notZero, r12, Address(r13, r14, (Address::ScaleFactor)3, -0x4500a2e7)); // cmovnz r12d, dword ptr [r13+r14*8-0x4500a2e7] IID8728 - __ cmovl(Assembler::Condition::notZero, r13, Address(r14, +0x79260bd8)); // cmovnz r13d, dword ptr [r14+0x79260bd8] IID8729 - __ cmovl(Assembler::Condition::notZero, r14, Address(r15, -0x131927da)); // cmovnz r14d, dword ptr [r15-0x131927da] IID8730 - __ cmovl(Assembler::Condition::notZero, r15, Address(r16, r17, (Address::ScaleFactor)3, +0xa7ab2fe)); // cmovnz r15d, dword ptr [r16+r17*8+0xa7ab2fe] IID8731 - __ cmovl(Assembler::Condition::notZero, r16, Address(r17, r18, (Address::ScaleFactor)0, -0x2f393ff9)); // cmovnz r16d, dword ptr [r17+r18*1-0x2f393ff9] IID8732 - __ cmovl(Assembler::Condition::notZero, r17, Address(r18, r19, (Address::ScaleFactor)0, -0x37adcc82)); // cmovnz r17d, dword ptr [r18+r19*1-0x37adcc82] IID8733 - __ cmovl(Assembler::Condition::notZero, r18, Address(r19, -0x2618f87)); // cmovnz r18d, dword ptr [r19-0x2618f87] IID8734 - __ cmovl(Assembler::Condition::notZero, r19, Address(r20, r21, (Address::ScaleFactor)0, -0x39b925ce)); // cmovnz r19d, dword ptr [r20+r21*1-0x39b925ce] IID8735 - __ cmovl(Assembler::Condition::notZero, r20, Address(r21, r22, (Address::ScaleFactor)3, -0x26447447)); // cmovnz r20d, dword ptr [r21+r22*8-0x26447447] IID8736 - __ cmovl(Assembler::Condition::notZero, r21, Address(r22, r23, (Address::ScaleFactor)0, -0x35205411)); // cmovnz r21d, dword ptr [r22+r23*1-0x35205411] IID8737 - __ cmovl(Assembler::Condition::notZero, r22, Address(r23, r24, (Address::ScaleFactor)0, +0x18f02066)); // cmovnz r22d, dword ptr [r23+r24*1+0x18f02066] IID8738 - __ cmovl(Assembler::Condition::notZero, r23, Address(r24, r25, (Address::ScaleFactor)1, +0x4a1adfca)); // cmovnz r23d, dword ptr [r24+r25*2+0x4a1adfca] IID8739 - __ cmovl(Assembler::Condition::notZero, r24, Address(r25, r26, (Address::ScaleFactor)3, +0x1979adf1)); // cmovnz r24d, dword ptr [r25+r26*8+0x1979adf1] IID8740 - __ cmovl(Assembler::Condition::notZero, r25, Address(r26, r27, (Address::ScaleFactor)1, -0x56adf688)); // cmovnz r25d, dword ptr [r26+r27*2-0x56adf688] IID8741 - __ cmovl(Assembler::Condition::notZero, r26, Address(r27, +0x34bb128d)); // cmovnz r26d, dword ptr [r27+0x34bb128d] IID8742 - __ cmovl(Assembler::Condition::notZero, r27, Address(r28, r29, (Address::ScaleFactor)2, +0x64ff2bce)); // cmovnz r27d, dword ptr [r28+r29*4+0x64ff2bce] IID8743 - __ cmovl(Assembler::Condition::notZero, r28, Address(r29, r30, (Address::ScaleFactor)2, +0x7d9b6ee6)); // cmovnz r28d, dword ptr [r29+r30*4+0x7d9b6ee6] IID8744 - __ cmovl(Assembler::Condition::notZero, r29, Address(r30, r31, (Address::ScaleFactor)3, -0x12a9a9d9)); // cmovnz r29d, dword ptr [r30+r31*8-0x12a9a9d9] IID8745 - __ cmovl(Assembler::Condition::notZero, r30, Address(r31, rcx, (Address::ScaleFactor)0, -0x2c44b7a)); // cmovnz r30d, dword ptr [r31+rcx*1-0x2c44b7a] IID8746 - __ cmovl(Assembler::Condition::notZero, r31, Address(rcx, rdx, (Address::ScaleFactor)3, -0x59dcde2b)); // cmovnz r31d, dword ptr [rcx+rdx*8-0x59dcde2b] IID8747 -#endif // _LP64 - __ cmovl(Assembler::Condition::belowEqual, rcx, Address(rdx, rbx, (Address::ScaleFactor)1, +0x712be4b1)); // cmovbe ecx, dword ptr [rdx+rbx*2+0x712be4b1] IID8748 -#ifdef _LP64 - __ cmovl(Assembler::Condition::belowEqual, rdx, Address(rbx, +0x1b2e7054)); // cmovbe edx, dword ptr [rbx+0x1b2e7054] IID8749 - __ cmovl(Assembler::Condition::belowEqual, rbx, Address(r8, r9, (Address::ScaleFactor)1, -0x25223354)); // cmovbe ebx, dword ptr [r8+r9*2-0x25223354] IID8750 - __ cmovl(Assembler::Condition::belowEqual, r8, Address(r9, r10, (Address::ScaleFactor)1, +0x66574f5d)); // cmovbe r8d, dword ptr [r9+r10*2+0x66574f5d] IID8751 - __ cmovl(Assembler::Condition::belowEqual, r9, Address(r10, +0x346e204d)); // cmovbe r9d, dword ptr [r10+0x346e204d] IID8752 - __ cmovl(Assembler::Condition::belowEqual, r10, Address(r11, r12, (Address::ScaleFactor)3, -0x5d2638e6)); // cmovbe r10d, dword ptr [r11+r12*8-0x5d2638e6] IID8753 - __ cmovl(Assembler::Condition::belowEqual, r11, Address(r12, +0x2efeafd4)); // cmovbe r11d, dword ptr [r12+0x2efeafd4] IID8754 - __ cmovl(Assembler::Condition::belowEqual, r12, Address(r13, r14, (Address::ScaleFactor)2, -0x39fe261a)); // cmovbe r12d, dword ptr [r13+r14*4-0x39fe261a] IID8755 - __ cmovl(Assembler::Condition::belowEqual, r13, Address(r14, r15, (Address::ScaleFactor)2, +0x230901f0)); // cmovbe r13d, dword ptr [r14+r15*4+0x230901f0] IID8756 - __ cmovl(Assembler::Condition::belowEqual, r14, Address(r15, r16, (Address::ScaleFactor)0, -0x35a3443f)); // cmovbe r14d, dword ptr [r15+r16*1-0x35a3443f] IID8757 - __ cmovl(Assembler::Condition::belowEqual, r15, Address(r16, r17, (Address::ScaleFactor)1, +0x6eceae5b)); // cmovbe r15d, dword ptr [r16+r17*2+0x6eceae5b] IID8758 - __ cmovl(Assembler::Condition::belowEqual, r16, Address(r17, -0x21931869)); // cmovbe r16d, dword ptr [r17-0x21931869] IID8759 - __ cmovl(Assembler::Condition::belowEqual, r17, Address(r18, r19, (Address::ScaleFactor)1, +0x2759c92)); // cmovbe r17d, dword ptr [r18+r19*2+0x2759c92] IID8760 - __ cmovl(Assembler::Condition::belowEqual, r18, Address(r19, r20, (Address::ScaleFactor)2, -0x6a11f6d4)); // cmovbe r18d, dword ptr [r19+r20*4-0x6a11f6d4] IID8761 - __ cmovl(Assembler::Condition::belowEqual, r19, Address(r20, r21, (Address::ScaleFactor)3, +0x14cdd711)); // cmovbe r19d, dword ptr [r20+r21*8+0x14cdd711] IID8762 - __ cmovl(Assembler::Condition::belowEqual, r20, Address(r21, r22, (Address::ScaleFactor)0, +0x7c8dcdac)); // cmovbe r20d, dword ptr [r21+r22*1+0x7c8dcdac] IID8763 - __ cmovl(Assembler::Condition::belowEqual, r21, Address(r22, r23, (Address::ScaleFactor)3, -0x5ca0c59)); // cmovbe r21d, dword ptr [r22+r23*8-0x5ca0c59] IID8764 - __ cmovl(Assembler::Condition::belowEqual, r22, Address(r23, r24, (Address::ScaleFactor)2, -0x14e3b1d5)); // cmovbe r22d, dword ptr [r23+r24*4-0x14e3b1d5] IID8765 - __ cmovl(Assembler::Condition::belowEqual, r23, Address(r24, r25, (Address::ScaleFactor)2, -0x3a3728bb)); // cmovbe r23d, dword ptr [r24+r25*4-0x3a3728bb] IID8766 - __ cmovl(Assembler::Condition::belowEqual, r24, Address(r25, r26, (Address::ScaleFactor)2, -0x517b5d2c)); // cmovbe r24d, dword ptr [r25+r26*4-0x517b5d2c] IID8767 - __ cmovl(Assembler::Condition::belowEqual, r25, Address(r26, r27, (Address::ScaleFactor)1, +0x4087facc)); // cmovbe r25d, dword ptr [r26+r27*2+0x4087facc] IID8768 - __ cmovl(Assembler::Condition::belowEqual, r26, Address(r27, r28, (Address::ScaleFactor)1, +0x5e74ac19)); // cmovbe r26d, dword ptr [r27+r28*2+0x5e74ac19] IID8769 - __ cmovl(Assembler::Condition::belowEqual, r27, Address(r28, -0x18909a0f)); // cmovbe r27d, dword ptr [r28-0x18909a0f] IID8770 - __ cmovl(Assembler::Condition::belowEqual, r28, Address(r29, r30, (Address::ScaleFactor)1, -0x25a92c4f)); // cmovbe r28d, dword ptr [r29+r30*2-0x25a92c4f] IID8771 - __ cmovl(Assembler::Condition::belowEqual, r29, Address(r30, r31, (Address::ScaleFactor)0, +0x3c855493)); // cmovbe r29d, dword ptr [r30+r31*1+0x3c855493] IID8772 - __ cmovl(Assembler::Condition::belowEqual, r30, Address(r31, rcx, (Address::ScaleFactor)3, +0x22e1dd6b)); // cmovbe r30d, dword ptr [r31+rcx*8+0x22e1dd6b] IID8773 - __ cmovl(Assembler::Condition::belowEqual, r31, Address(rcx, rdx, (Address::ScaleFactor)0, +0x74e151de)); // cmovbe r31d, dword ptr [rcx+rdx*1+0x74e151de] IID8774 -#endif // _LP64 - __ cmovl(Assembler::Condition::above, rcx, Address(rdx, rbx, (Address::ScaleFactor)0, +0x37fe157e)); // cmova ecx, dword ptr [rdx+rbx*1+0x37fe157e] IID8775 -#ifdef _LP64 - __ cmovl(Assembler::Condition::above, rdx, Address(rbx, r8, (Address::ScaleFactor)1, +0x3ac694d7)); // cmova edx, dword ptr [rbx+r8*2+0x3ac694d7] IID8776 - __ cmovl(Assembler::Condition::above, rbx, Address(r8, r9, (Address::ScaleFactor)2, +0x34041b9a)); // cmova ebx, dword ptr [r8+r9*4+0x34041b9a] IID8777 - __ cmovl(Assembler::Condition::above, r8, Address(r9, r10, (Address::ScaleFactor)2, +0x31e36192)); // cmova r8d, dword ptr [r9+r10*4+0x31e36192] IID8778 - __ cmovl(Assembler::Condition::above, r9, Address(r10, r11, (Address::ScaleFactor)0, +0x309bc25e)); // cmova r9d, dword ptr [r10+r11*1+0x309bc25e] IID8779 - __ cmovl(Assembler::Condition::above, r10, Address(r11, r12, (Address::ScaleFactor)0, -0x72ff0321)); // cmova r10d, dword ptr [r11+r12*1-0x72ff0321] IID8780 - __ cmovl(Assembler::Condition::above, r11, Address(r12, r13, (Address::ScaleFactor)0, +0x28b6d631)); // cmova r11d, dword ptr [r12+r13*1+0x28b6d631] IID8781 - __ cmovl(Assembler::Condition::above, r12, Address(r13, r14, (Address::ScaleFactor)2, +0x241530cc)); // cmova r12d, dword ptr [r13+r14*4+0x241530cc] IID8782 - __ cmovl(Assembler::Condition::above, r13, Address(r14, -0x56c1e7c5)); // cmova r13d, dword ptr [r14-0x56c1e7c5] IID8783 - __ cmovl(Assembler::Condition::above, r14, Address(r15, r16, (Address::ScaleFactor)1, +0x696d475d)); // cmova r14d, dword ptr [r15+r16*2+0x696d475d] IID8784 - __ cmovl(Assembler::Condition::above, r15, Address(r16, r17, (Address::ScaleFactor)0, +0x128565f4)); // cmova r15d, dword ptr [r16+r17*1+0x128565f4] IID8785 - __ cmovl(Assembler::Condition::above, r16, Address(r17, r18, (Address::ScaleFactor)3, +0x32914ab2)); // cmova r16d, dword ptr [r17+r18*8+0x32914ab2] IID8786 - __ cmovl(Assembler::Condition::above, r17, Address(r18, r19, (Address::ScaleFactor)2, -0x714469d1)); // cmova r17d, dword ptr [r18+r19*4-0x714469d1] IID8787 - __ cmovl(Assembler::Condition::above, r18, Address(r19, -0x16a8c907)); // cmova r18d, dword ptr [r19-0x16a8c907] IID8788 - __ cmovl(Assembler::Condition::above, r19, Address(r20, r21, (Address::ScaleFactor)1, -0x174c4e10)); // cmova r19d, dword ptr [r20+r21*2-0x174c4e10] IID8789 - __ cmovl(Assembler::Condition::above, r20, Address(r21, r22, (Address::ScaleFactor)3, -0x5ec6fbc1)); // cmova r20d, dword ptr [r21+r22*8-0x5ec6fbc1] IID8790 - __ cmovl(Assembler::Condition::above, r21, Address(r22, r23, (Address::ScaleFactor)1, -0x22c34e7f)); // cmova r21d, dword ptr [r22+r23*2-0x22c34e7f] IID8791 - __ cmovl(Assembler::Condition::above, r22, Address(r23, +0x3336d2fb)); // cmova r22d, dword ptr [r23+0x3336d2fb] IID8792 - __ cmovl(Assembler::Condition::above, r23, Address(r24, r25, (Address::ScaleFactor)2, +0x64735195)); // cmova r23d, dword ptr [r24+r25*4+0x64735195] IID8793 - __ cmovl(Assembler::Condition::above, r24, Address(r25, r26, (Address::ScaleFactor)1, -0x4bcb0133)); // cmova r24d, dword ptr [r25+r26*2-0x4bcb0133] IID8794 - __ cmovl(Assembler::Condition::above, r25, Address(r26, r27, (Address::ScaleFactor)3, -0x602a5685)); // cmova r25d, dword ptr [r26+r27*8-0x602a5685] IID8795 - __ cmovl(Assembler::Condition::above, r26, Address(r27, r28, (Address::ScaleFactor)0, -0x2ea20283)); // cmova r26d, dword ptr [r27+r28*1-0x2ea20283] IID8796 - __ cmovl(Assembler::Condition::above, r27, Address(r28, r29, (Address::ScaleFactor)3, +0x666d39e9)); // cmova r27d, dword ptr [r28+r29*8+0x666d39e9] IID8797 - __ cmovl(Assembler::Condition::above, r28, Address(r29, r30, (Address::ScaleFactor)3, +0x6c94a3aa)); // cmova r28d, dword ptr [r29+r30*8+0x6c94a3aa] IID8798 - __ cmovl(Assembler::Condition::above, r29, Address(r30, r31, (Address::ScaleFactor)3, +0x2c2f9009)); // cmova r29d, dword ptr [r30+r31*8+0x2c2f9009] IID8799 - __ cmovl(Assembler::Condition::above, r30, Address(r31, rcx, (Address::ScaleFactor)0, -0x3941a985)); // cmova r30d, dword ptr [r31+rcx*1-0x3941a985] IID8800 - __ cmovl(Assembler::Condition::above, r31, Address(rcx, rdx, (Address::ScaleFactor)1, -0x79404266)); // cmova r31d, dword ptr [rcx+rdx*2-0x79404266] IID8801 -#endif // _LP64 - __ cmovl(Assembler::Condition::negative, rcx, Address(rdx, rbx, (Address::ScaleFactor)0, +0x38528938)); // cmovs ecx, dword ptr [rdx+rbx*1+0x38528938] IID8802 -#ifdef _LP64 - __ cmovl(Assembler::Condition::negative, rdx, Address(rbx, r8, (Address::ScaleFactor)1, +0x197c030c)); // cmovs edx, dword ptr [rbx+r8*2+0x197c030c] IID8803 - __ cmovl(Assembler::Condition::negative, rbx, Address(r8, r9, (Address::ScaleFactor)0, +0x23ebafd)); // cmovs ebx, dword ptr [r8+r9*1+0x23ebafd] IID8804 - __ cmovl(Assembler::Condition::negative, r8, Address(r9, r10, (Address::ScaleFactor)1, +0x11cfa209)); // cmovs r8d, dword ptr [r9+r10*2+0x11cfa209] IID8805 - __ cmovl(Assembler::Condition::negative, r9, Address(r10, r11, (Address::ScaleFactor)0, +0xa5ec053)); // cmovs r9d, dword ptr [r10+r11*1+0xa5ec053] IID8806 - __ cmovl(Assembler::Condition::negative, r10, Address(r11, r12, (Address::ScaleFactor)3, -0x50c87f5d)); // cmovs r10d, dword ptr [r11+r12*8-0x50c87f5d] IID8807 - __ cmovl(Assembler::Condition::negative, r11, Address(r12, r13, (Address::ScaleFactor)2, +0x78f6c2c7)); // cmovs r11d, dword ptr [r12+r13*4+0x78f6c2c7] IID8808 - __ cmovl(Assembler::Condition::negative, r12, Address(r13, +0x66db19c9)); // cmovs r12d, dword ptr [r13+0x66db19c9] IID8809 - __ cmovl(Assembler::Condition::negative, r13, Address(r14, r15, (Address::ScaleFactor)3, -0x20993405)); // cmovs r13d, dword ptr [r14+r15*8-0x20993405] IID8810 - __ cmovl(Assembler::Condition::negative, r14, Address(r15, r16, (Address::ScaleFactor)0, -0x393bf0b2)); // cmovs r14d, dword ptr [r15+r16*1-0x393bf0b2] IID8811 - __ cmovl(Assembler::Condition::negative, r15, Address(r16, r17, (Address::ScaleFactor)1, +0x5b057d59)); // cmovs r15d, dword ptr [r16+r17*2+0x5b057d59] IID8812 - __ cmovl(Assembler::Condition::negative, r16, Address(r17, r18, (Address::ScaleFactor)0, -0x5c025816)); // cmovs r16d, dword ptr [r17+r18*1-0x5c025816] IID8813 - __ cmovl(Assembler::Condition::negative, r17, Address(r18, r19, (Address::ScaleFactor)3, -0x7117084e)); // cmovs r17d, dword ptr [r18+r19*8-0x7117084e] IID8814 - __ cmovl(Assembler::Condition::negative, r18, Address(r19, -0x216464ab)); // cmovs r18d, dword ptr [r19-0x216464ab] IID8815 - __ cmovl(Assembler::Condition::negative, r19, Address(r20, r21, (Address::ScaleFactor)1, +0x5bbbda84)); // cmovs r19d, dword ptr [r20+r21*2+0x5bbbda84] IID8816 - __ cmovl(Assembler::Condition::negative, r20, Address(r21, +0x1ed32ea1)); // cmovs r20d, dword ptr [r21+0x1ed32ea1] IID8817 - __ cmovl(Assembler::Condition::negative, r21, Address(r22, r23, (Address::ScaleFactor)2, +0x6544c140)); // cmovs r21d, dword ptr [r22+r23*4+0x6544c140] IID8818 - __ cmovl(Assembler::Condition::negative, r22, Address(r23, r24, (Address::ScaleFactor)3, +0x2462b4b)); // cmovs r22d, dword ptr [r23+r24*8+0x2462b4b] IID8819 - __ cmovl(Assembler::Condition::negative, r23, Address(r24, -0x65566943)); // cmovs r23d, dword ptr [r24-0x65566943] IID8820 - __ cmovl(Assembler::Condition::negative, r24, Address(r25, r26, (Address::ScaleFactor)3, -0x61fff459)); // cmovs r24d, dword ptr [r25+r26*8-0x61fff459] IID8821 - __ cmovl(Assembler::Condition::negative, r25, Address(r26, +0x461942a7)); // cmovs r25d, dword ptr [r26+0x461942a7] IID8822 - __ cmovl(Assembler::Condition::negative, r26, Address(r27, r28, (Address::ScaleFactor)0, -0x1cbe4a28)); // cmovs r26d, dword ptr [r27+r28*1-0x1cbe4a28] IID8823 - __ cmovl(Assembler::Condition::negative, r27, Address(r28, r29, (Address::ScaleFactor)0, -0x196fbda5)); // cmovs r27d, dword ptr [r28+r29*1-0x196fbda5] IID8824 - __ cmovl(Assembler::Condition::negative, r28, Address(r29, +0x18d0f771)); // cmovs r28d, dword ptr [r29+0x18d0f771] IID8825 - __ cmovl(Assembler::Condition::negative, r29, Address(r30, r31, (Address::ScaleFactor)3, +0x7ba17468)); // cmovs r29d, dword ptr [r30+r31*8+0x7ba17468] IID8826 - __ cmovl(Assembler::Condition::negative, r30, Address(r31, rcx, (Address::ScaleFactor)2, -0x26522fb4)); // cmovs r30d, dword ptr [r31+rcx*4-0x26522fb4] IID8827 - __ cmovl(Assembler::Condition::negative, r31, Address(rcx, rdx, (Address::ScaleFactor)0, +0x1f15535b)); // cmovs r31d, dword ptr [rcx+rdx*1+0x1f15535b] IID8828 -#endif // _LP64 - __ cmovl(Assembler::Condition::positive, rcx, Address(rdx, +0x652e7c76)); // cmovns ecx, dword ptr [rdx+0x652e7c76] IID8829 -#ifdef _LP64 - __ cmovl(Assembler::Condition::positive, rdx, Address(rbx, r8, (Address::ScaleFactor)3, -0x60cb3202)); // cmovns edx, dword ptr [rbx+r8*8-0x60cb3202] IID8830 - __ cmovl(Assembler::Condition::positive, rbx, Address(r8, r9, (Address::ScaleFactor)2, +0x3d0884a7)); // cmovns ebx, dword ptr [r8+r9*4+0x3d0884a7] IID8831 - __ cmovl(Assembler::Condition::positive, r8, Address(r9, r10, (Address::ScaleFactor)0, +0x6dc633a3)); // cmovns r8d, dword ptr [r9+r10*1+0x6dc633a3] IID8832 - __ cmovl(Assembler::Condition::positive, r9, Address(r10, r11, (Address::ScaleFactor)1, -0x1f4f363c)); // cmovns r9d, dword ptr [r10+r11*2-0x1f4f363c] IID8833 - __ cmovl(Assembler::Condition::positive, r10, Address(r11, r12, (Address::ScaleFactor)2, -0x704e45f8)); // cmovns r10d, dword ptr [r11+r12*4-0x704e45f8] IID8834 - __ cmovl(Assembler::Condition::positive, r11, Address(r12, r13, (Address::ScaleFactor)0, +0x2c07e69a)); // cmovns r11d, dword ptr [r12+r13*1+0x2c07e69a] IID8835 - __ cmovl(Assembler::Condition::positive, r12, Address(r13, r14, (Address::ScaleFactor)3, -0x2ce0c07)); // cmovns r12d, dword ptr [r13+r14*8-0x2ce0c07] IID8836 - __ cmovl(Assembler::Condition::positive, r13, Address(r14, r15, (Address::ScaleFactor)0, -0x73a15037)); // cmovns r13d, dword ptr [r14+r15*1-0x73a15037] IID8837 - __ cmovl(Assembler::Condition::positive, r14, Address(r15, +0x65bde776)); // cmovns r14d, dword ptr [r15+0x65bde776] IID8838 - __ cmovl(Assembler::Condition::positive, r15, Address(r16, r17, (Address::ScaleFactor)2, -0x5a4a2078)); // cmovns r15d, dword ptr [r16+r17*4-0x5a4a2078] IID8839 - __ cmovl(Assembler::Condition::positive, r16, Address(r17, r18, (Address::ScaleFactor)2, -0x4d1351fe)); // cmovns r16d, dword ptr [r17+r18*4-0x4d1351fe] IID8840 - __ cmovl(Assembler::Condition::positive, r17, Address(r18, r19, (Address::ScaleFactor)1, -0x36ba7b85)); // cmovns r17d, dword ptr [r18+r19*2-0x36ba7b85] IID8841 - __ cmovl(Assembler::Condition::positive, r18, Address(r19, r20, (Address::ScaleFactor)2, +0x394b3eca)); // cmovns r18d, dword ptr [r19+r20*4+0x394b3eca] IID8842 - __ cmovl(Assembler::Condition::positive, r19, Address(r20, r21, (Address::ScaleFactor)1, -0x38757208)); // cmovns r19d, dword ptr [r20+r21*2-0x38757208] IID8843 - __ cmovl(Assembler::Condition::positive, r20, Address(r21, r22, (Address::ScaleFactor)2, -0x232899a9)); // cmovns r20d, dword ptr [r21+r22*4-0x232899a9] IID8844 - __ cmovl(Assembler::Condition::positive, r21, Address(r22, r23, (Address::ScaleFactor)1, -0x646c692c)); // cmovns r21d, dword ptr [r22+r23*2-0x646c692c] IID8845 - __ cmovl(Assembler::Condition::positive, r22, Address(r23, r24, (Address::ScaleFactor)3, -0x6fd39b89)); // cmovns r22d, dword ptr [r23+r24*8-0x6fd39b89] IID8846 - __ cmovl(Assembler::Condition::positive, r23, Address(r24, r25, (Address::ScaleFactor)2, +0x54396a24)); // cmovns r23d, dword ptr [r24+r25*4+0x54396a24] IID8847 - __ cmovl(Assembler::Condition::positive, r24, Address(r25, r26, (Address::ScaleFactor)2, -0x1f79ea02)); // cmovns r24d, dword ptr [r25+r26*4-0x1f79ea02] IID8848 - __ cmovl(Assembler::Condition::positive, r25, Address(r26, r27, (Address::ScaleFactor)0, -0x331fe56f)); // cmovns r25d, dword ptr [r26+r27*1-0x331fe56f] IID8849 - __ cmovl(Assembler::Condition::positive, r26, Address(r27, r28, (Address::ScaleFactor)2, -0x2c8d87e)); // cmovns r26d, dword ptr [r27+r28*4-0x2c8d87e] IID8850 - __ cmovl(Assembler::Condition::positive, r27, Address(r28, r29, (Address::ScaleFactor)3, +0x62362415)); // cmovns r27d, dword ptr [r28+r29*8+0x62362415] IID8851 - __ cmovl(Assembler::Condition::positive, r28, Address(r29, r30, (Address::ScaleFactor)1, +0x3ae761ba)); // cmovns r28d, dword ptr [r29+r30*2+0x3ae761ba] IID8852 - __ cmovl(Assembler::Condition::positive, r29, Address(r30, r31, (Address::ScaleFactor)1, -0x52f27258)); // cmovns r29d, dword ptr [r30+r31*2-0x52f27258] IID8853 - __ cmovl(Assembler::Condition::positive, r30, Address(r31, rcx, (Address::ScaleFactor)0, -0x6bdc3e47)); // cmovns r30d, dword ptr [r31+rcx*1-0x6bdc3e47] IID8854 - __ cmovl(Assembler::Condition::positive, r31, Address(rcx, rdx, (Address::ScaleFactor)3, -0x7ff4d2c0)); // cmovns r31d, dword ptr [rcx+rdx*8-0x7ff4d2c0] IID8855 -#endif // _LP64 - __ cmovl(Assembler::Condition::parity, rcx, Address(rdx, rbx, (Address::ScaleFactor)2, -0x7fb4686e)); // cmovp ecx, dword ptr [rdx+rbx*4-0x7fb4686e] IID8856 -#ifdef _LP64 - __ cmovl(Assembler::Condition::parity, rdx, Address(rbx, +0x3ce155cd)); // cmovp edx, dword ptr [rbx+0x3ce155cd] IID8857 - __ cmovl(Assembler::Condition::parity, rbx, Address(r8, +0x421f52dc)); // cmovp ebx, dword ptr [r8+0x421f52dc] IID8858 - __ cmovl(Assembler::Condition::parity, r8, Address(r9, -0x2c04302)); // cmovp r8d, dword ptr [r9-0x2c04302] IID8859 - __ cmovl(Assembler::Condition::parity, r9, Address(r10, r11, (Address::ScaleFactor)2, -0x10087f18)); // cmovp r9d, dword ptr [r10+r11*4-0x10087f18] IID8860 - __ cmovl(Assembler::Condition::parity, r10, Address(r11, r12, (Address::ScaleFactor)0, +0x7407d68c)); // cmovp r10d, dword ptr [r11+r12*1+0x7407d68c] IID8861 - __ cmovl(Assembler::Condition::parity, r11, Address(r12, r13, (Address::ScaleFactor)2, -0x2b571a58)); // cmovp r11d, dword ptr [r12+r13*4-0x2b571a58] IID8862 - __ cmovl(Assembler::Condition::parity, r12, Address(r13, r14, (Address::ScaleFactor)0, +0x2e238d37)); // cmovp r12d, dword ptr [r13+r14*1+0x2e238d37] IID8863 - __ cmovl(Assembler::Condition::parity, r13, Address(r14, r15, (Address::ScaleFactor)1, -0x146c228a)); // cmovp r13d, dword ptr [r14+r15*2-0x146c228a] IID8864 - __ cmovl(Assembler::Condition::parity, r14, Address(r15, r16, (Address::ScaleFactor)1, -0x4a6c9ec)); // cmovp r14d, dword ptr [r15+r16*2-0x4a6c9ec] IID8865 - __ cmovl(Assembler::Condition::parity, r15, Address(r16, r17, (Address::ScaleFactor)3, +0x7191d888)); // cmovp r15d, dword ptr [r16+r17*8+0x7191d888] IID8866 - __ cmovl(Assembler::Condition::parity, r16, Address(r17, r18, (Address::ScaleFactor)2, -0x5095d8bd)); // cmovp r16d, dword ptr [r17+r18*4-0x5095d8bd] IID8867 - __ cmovl(Assembler::Condition::parity, r17, Address(r18, r19, (Address::ScaleFactor)1, +0x50323a1f)); // cmovp r17d, dword ptr [r18+r19*2+0x50323a1f] IID8868 - __ cmovl(Assembler::Condition::parity, r18, Address(r19, r20, (Address::ScaleFactor)3, -0x4c46f7d)); // cmovp r18d, dword ptr [r19+r20*8-0x4c46f7d] IID8869 - __ cmovl(Assembler::Condition::parity, r19, Address(r20, r21, (Address::ScaleFactor)2, +0x1977827f)); // cmovp r19d, dword ptr [r20+r21*4+0x1977827f] IID8870 - __ cmovl(Assembler::Condition::parity, r20, Address(r21, r22, (Address::ScaleFactor)1, +0x693f31eb)); // cmovp r20d, dword ptr [r21+r22*2+0x693f31eb] IID8871 - __ cmovl(Assembler::Condition::parity, r21, Address(r22, r23, (Address::ScaleFactor)3, +0x734dc58)); // cmovp r21d, dword ptr [r22+r23*8+0x734dc58] IID8872 - __ cmovl(Assembler::Condition::parity, r22, Address(r23, r24, (Address::ScaleFactor)1, +0x74cced60)); // cmovp r22d, dword ptr [r23+r24*2+0x74cced60] IID8873 - __ cmovl(Assembler::Condition::parity, r23, Address(r24, r25, (Address::ScaleFactor)1, -0x3974ba3e)); // cmovp r23d, dword ptr [r24+r25*2-0x3974ba3e] IID8874 - __ cmovl(Assembler::Condition::parity, r24, Address(r25, r26, (Address::ScaleFactor)1, -0x68585eb8)); // cmovp r24d, dword ptr [r25+r26*2-0x68585eb8] IID8875 - __ cmovl(Assembler::Condition::parity, r25, Address(r26, r27, (Address::ScaleFactor)3, +0x5c7ea3a3)); // cmovp r25d, dword ptr [r26+r27*8+0x5c7ea3a3] IID8876 - __ cmovl(Assembler::Condition::parity, r26, Address(r27, r28, (Address::ScaleFactor)1, -0x1dc30d55)); // cmovp r26d, dword ptr [r27+r28*2-0x1dc30d55] IID8877 - __ cmovl(Assembler::Condition::parity, r27, Address(r28, r29, (Address::ScaleFactor)1, +0x4d23fff1)); // cmovp r27d, dword ptr [r28+r29*2+0x4d23fff1] IID8878 - __ cmovl(Assembler::Condition::parity, r28, Address(r29, +0x213b9ead)); // cmovp r28d, dword ptr [r29+0x213b9ead] IID8879 - __ cmovl(Assembler::Condition::parity, r29, Address(r30, +0x4caf5aaf)); // cmovp r29d, dword ptr [r30+0x4caf5aaf] IID8880 - __ cmovl(Assembler::Condition::parity, r30, Address(r31, -0x5a9c0d7a)); // cmovp r30d, dword ptr [r31-0x5a9c0d7a] IID8881 - __ cmovl(Assembler::Condition::parity, r31, Address(rcx, +0x20fe37e4)); // cmovp r31d, dword ptr [rcx+0x20fe37e4] IID8882 -#endif // _LP64 - __ cmovl(Assembler::Condition::noParity, rcx, Address(rdx, rbx, (Address::ScaleFactor)3, -0x951083d)); // cmovnp ecx, dword ptr [rdx+rbx*8-0x951083d] IID8883 -#ifdef _LP64 - __ cmovl(Assembler::Condition::noParity, rdx, Address(rbx, r8, (Address::ScaleFactor)0, -0x62042b62)); // cmovnp edx, dword ptr [rbx+r8*1-0x62042b62] IID8884 - __ cmovl(Assembler::Condition::noParity, rbx, Address(r8, r9, (Address::ScaleFactor)2, -0x7aadf46b)); // cmovnp ebx, dword ptr [r8+r9*4-0x7aadf46b] IID8885 - __ cmovl(Assembler::Condition::noParity, r8, Address(r9, r10, (Address::ScaleFactor)2, -0x5b4b4e68)); // cmovnp r8d, dword ptr [r9+r10*4-0x5b4b4e68] IID8886 - __ cmovl(Assembler::Condition::noParity, r9, Address(r10, r11, (Address::ScaleFactor)3, +0x49585386)); // cmovnp r9d, dword ptr [r10+r11*8+0x49585386] IID8887 - __ cmovl(Assembler::Condition::noParity, r10, Address(r11, r12, (Address::ScaleFactor)2, +0x2f01024c)); // cmovnp r10d, dword ptr [r11+r12*4+0x2f01024c] IID8888 - __ cmovl(Assembler::Condition::noParity, r11, Address(r12, r13, (Address::ScaleFactor)1, -0x4309c4a7)); // cmovnp r11d, dword ptr [r12+r13*2-0x4309c4a7] IID8889 - __ cmovl(Assembler::Condition::noParity, r12, Address(r13, +0x17245b3e)); // cmovnp r12d, dword ptr [r13+0x17245b3e] IID8890 - __ cmovl(Assembler::Condition::noParity, r13, Address(r14, r15, (Address::ScaleFactor)3, +0x2b7fcd46)); // cmovnp r13d, dword ptr [r14+r15*8+0x2b7fcd46] IID8891 - __ cmovl(Assembler::Condition::noParity, r14, Address(r15, r16, (Address::ScaleFactor)3, -0x7e2553a0)); // cmovnp r14d, dword ptr [r15+r16*8-0x7e2553a0] IID8892 - __ cmovl(Assembler::Condition::noParity, r15, Address(r16, r17, (Address::ScaleFactor)2, +0x259bb581)); // cmovnp r15d, dword ptr [r16+r17*4+0x259bb581] IID8893 - __ cmovl(Assembler::Condition::noParity, r16, Address(r17, r18, (Address::ScaleFactor)3, -0x1e0774ff)); // cmovnp r16d, dword ptr [r17+r18*8-0x1e0774ff] IID8894 - __ cmovl(Assembler::Condition::noParity, r17, Address(r18, r19, (Address::ScaleFactor)1, -0x772ac640)); // cmovnp r17d, dword ptr [r18+r19*2-0x772ac640] IID8895 - __ cmovl(Assembler::Condition::noParity, r18, Address(r19, r20, (Address::ScaleFactor)2, +0x6f5cacd)); // cmovnp r18d, dword ptr [r19+r20*4+0x6f5cacd] IID8896 - __ cmovl(Assembler::Condition::noParity, r19, Address(r20, -0x7c8be820)); // cmovnp r19d, dword ptr [r20-0x7c8be820] IID8897 - __ cmovl(Assembler::Condition::noParity, r20, Address(r21, -0x425baced)); // cmovnp r20d, dword ptr [r21-0x425baced] IID8898 - __ cmovl(Assembler::Condition::noParity, r21, Address(r22, r23, (Address::ScaleFactor)1, -0x13d08517)); // cmovnp r21d, dword ptr [r22+r23*2-0x13d08517] IID8899 - __ cmovl(Assembler::Condition::noParity, r22, Address(r23, r24, (Address::ScaleFactor)3, +0x5b5b666f)); // cmovnp r22d, dword ptr [r23+r24*8+0x5b5b666f] IID8900 - __ cmovl(Assembler::Condition::noParity, r23, Address(r24, r25, (Address::ScaleFactor)0, +0xa31800e)); // cmovnp r23d, dword ptr [r24+r25*1+0xa31800e] IID8901 - __ cmovl(Assembler::Condition::noParity, r24, Address(r25, r26, (Address::ScaleFactor)1, +0x45bc2c92)); // cmovnp r24d, dword ptr [r25+r26*2+0x45bc2c92] IID8902 - __ cmovl(Assembler::Condition::noParity, r25, Address(r26, r27, (Address::ScaleFactor)2, -0x47fd1ea)); // cmovnp r25d, dword ptr [r26+r27*4-0x47fd1ea] IID8903 - __ cmovl(Assembler::Condition::noParity, r26, Address(r27, r28, (Address::ScaleFactor)1, +0x5b0614c2)); // cmovnp r26d, dword ptr [r27+r28*2+0x5b0614c2] IID8904 - __ cmovl(Assembler::Condition::noParity, r27, Address(r28, -0x10101821)); // cmovnp r27d, dword ptr [r28-0x10101821] IID8905 - __ cmovl(Assembler::Condition::noParity, r28, Address(r29, r30, (Address::ScaleFactor)2, -0x7eb00101)); // cmovnp r28d, dword ptr [r29+r30*4-0x7eb00101] IID8906 - __ cmovl(Assembler::Condition::noParity, r29, Address(r30, r31, (Address::ScaleFactor)3, +0x3871f5f0)); // cmovnp r29d, dword ptr [r30+r31*8+0x3871f5f0] IID8907 - __ cmovl(Assembler::Condition::noParity, r30, Address(r31, +0x3d183729)); // cmovnp r30d, dword ptr [r31+0x3d183729] IID8908 - __ cmovl(Assembler::Condition::noParity, r31, Address(rcx, rdx, (Address::ScaleFactor)0, +0x332dc729)); // cmovnp r31d, dword ptr [rcx+rdx*1+0x332dc729] IID8909 -#endif // _LP64 - __ cmovl(Assembler::Condition::less, rcx, Address(rdx, rbx, (Address::ScaleFactor)2, -0x6702bc0c)); // cmovl ecx, dword ptr [rdx+rbx*4-0x6702bc0c] IID8910 -#ifdef _LP64 - __ cmovl(Assembler::Condition::less, rdx, Address(rbx, r8, (Address::ScaleFactor)2, -0x26121894)); // cmovl edx, dword ptr [rbx+r8*4-0x26121894] IID8911 - __ cmovl(Assembler::Condition::less, rbx, Address(r8, -0x69b6b483)); // cmovl ebx, dword ptr [r8-0x69b6b483] IID8912 - __ cmovl(Assembler::Condition::less, r8, Address(r9, r10, (Address::ScaleFactor)2, -0x748b6ddb)); // cmovl r8d, dword ptr [r9+r10*4-0x748b6ddb] IID8913 - __ cmovl(Assembler::Condition::less, r9, Address(r10, r11, (Address::ScaleFactor)0, -0x20886359)); // cmovl r9d, dword ptr [r10+r11*1-0x20886359] IID8914 - __ cmovl(Assembler::Condition::less, r10, Address(r11, r12, (Address::ScaleFactor)2, +0x61d9b4e3)); // cmovl r10d, dword ptr [r11+r12*4+0x61d9b4e3] IID8915 - __ cmovl(Assembler::Condition::less, r11, Address(r12, -0x3a8a1ce2)); // cmovl r11d, dword ptr [r12-0x3a8a1ce2] IID8916 - __ cmovl(Assembler::Condition::less, r12, Address(r13, r14, (Address::ScaleFactor)2, +0x51a445ea)); // cmovl r12d, dword ptr [r13+r14*4+0x51a445ea] IID8917 - __ cmovl(Assembler::Condition::less, r13, Address(r14, r15, (Address::ScaleFactor)3, +0xd198136)); // cmovl r13d, dword ptr [r14+r15*8+0xd198136] IID8918 - __ cmovl(Assembler::Condition::less, r14, Address(r15, r16, (Address::ScaleFactor)1, -0x3a8ffcb5)); // cmovl r14d, dword ptr [r15+r16*2-0x3a8ffcb5] IID8919 - __ cmovl(Assembler::Condition::less, r15, Address(r16, r17, (Address::ScaleFactor)0, -0x61663d34)); // cmovl r15d, dword ptr [r16+r17*1-0x61663d34] IID8920 - __ cmovl(Assembler::Condition::less, r16, Address(r17, r18, (Address::ScaleFactor)3, +0x5752f591)); // cmovl r16d, dword ptr [r17+r18*8+0x5752f591] IID8921 - __ cmovl(Assembler::Condition::less, r17, Address(r18, r19, (Address::ScaleFactor)1, -0x7f423e99)); // cmovl r17d, dword ptr [r18+r19*2-0x7f423e99] IID8922 - __ cmovl(Assembler::Condition::less, r18, Address(r19, r20, (Address::ScaleFactor)2, -0x5164db7b)); // cmovl r18d, dword ptr [r19+r20*4-0x5164db7b] IID8923 - __ cmovl(Assembler::Condition::less, r19, Address(r20, r21, (Address::ScaleFactor)0, +0x87cf177)); // cmovl r19d, dword ptr [r20+r21*1+0x87cf177] IID8924 - __ cmovl(Assembler::Condition::less, r20, Address(r21, -0x7983f0d3)); // cmovl r20d, dword ptr [r21-0x7983f0d3] IID8925 - __ cmovl(Assembler::Condition::less, r21, Address(r22, r23, (Address::ScaleFactor)1, -0x4958b86a)); // cmovl r21d, dword ptr [r22+r23*2-0x4958b86a] IID8926 - __ cmovl(Assembler::Condition::less, r22, Address(r23, r24, (Address::ScaleFactor)2, -0x47e6f290)); // cmovl r22d, dword ptr [r23+r24*4-0x47e6f290] IID8927 - __ cmovl(Assembler::Condition::less, r23, Address(r24, r25, (Address::ScaleFactor)3, +0x1d8412ce)); // cmovl r23d, dword ptr [r24+r25*8+0x1d8412ce] IID8928 - __ cmovl(Assembler::Condition::less, r24, Address(r25, -0x78d3d4f7)); // cmovl r24d, dword ptr [r25-0x78d3d4f7] IID8929 - __ cmovl(Assembler::Condition::less, r25, Address(r26, r27, (Address::ScaleFactor)0, -0x79b32e0a)); // cmovl r25d, dword ptr [r26+r27*1-0x79b32e0a] IID8930 - __ cmovl(Assembler::Condition::less, r26, Address(r27, r28, (Address::ScaleFactor)0, +0x3b80dca7)); // cmovl r26d, dword ptr [r27+r28*1+0x3b80dca7] IID8931 - __ cmovl(Assembler::Condition::less, r27, Address(r28, +0x73548184)); // cmovl r27d, dword ptr [r28+0x73548184] IID8932 - __ cmovl(Assembler::Condition::less, r28, Address(r29, r30, (Address::ScaleFactor)3, -0x6eb08639)); // cmovl r28d, dword ptr [r29+r30*8-0x6eb08639] IID8933 - __ cmovl(Assembler::Condition::less, r29, Address(r30, r31, (Address::ScaleFactor)1, +0x14c749a0)); // cmovl r29d, dword ptr [r30+r31*2+0x14c749a0] IID8934 - __ cmovl(Assembler::Condition::less, r30, Address(r31, rcx, (Address::ScaleFactor)0, +0x4e54f4af)); // cmovl r30d, dword ptr [r31+rcx*1+0x4e54f4af] IID8935 - __ cmovl(Assembler::Condition::less, r31, Address(rcx, rdx, (Address::ScaleFactor)0, -0x202d3a6f)); // cmovl r31d, dword ptr [rcx+rdx*1-0x202d3a6f] IID8936 -#endif // _LP64 - __ cmovl(Assembler::Condition::greaterEqual, rcx, Address(rdx, rbx, (Address::ScaleFactor)1, +0xe2d17b4)); // cmovge ecx, dword ptr [rdx+rbx*2+0xe2d17b4] IID8937 -#ifdef _LP64 - __ cmovl(Assembler::Condition::greaterEqual, rdx, Address(rbx, r8, (Address::ScaleFactor)2, +0x1df5cae7)); // cmovge edx, dword ptr [rbx+r8*4+0x1df5cae7] IID8938 - __ cmovl(Assembler::Condition::greaterEqual, rbx, Address(r8, r9, (Address::ScaleFactor)2, +0x70934d26)); // cmovge ebx, dword ptr [r8+r9*4+0x70934d26] IID8939 - __ cmovl(Assembler::Condition::greaterEqual, r8, Address(r9, r10, (Address::ScaleFactor)3, +0x2897108)); // cmovge r8d, dword ptr [r9+r10*8+0x2897108] IID8940 - __ cmovl(Assembler::Condition::greaterEqual, r9, Address(r10, r11, (Address::ScaleFactor)0, +0x1611c310)); // cmovge r9d, dword ptr [r10+r11*1+0x1611c310] IID8941 - __ cmovl(Assembler::Condition::greaterEqual, r10, Address(r11, r12, (Address::ScaleFactor)2, -0x4ba0661b)); // cmovge r10d, dword ptr [r11+r12*4-0x4ba0661b] IID8942 - __ cmovl(Assembler::Condition::greaterEqual, r11, Address(r12, +0x4c23f15e)); // cmovge r11d, dword ptr [r12+0x4c23f15e] IID8943 - __ cmovl(Assembler::Condition::greaterEqual, r12, Address(r13, r14, (Address::ScaleFactor)1, +0xf917e93)); // cmovge r12d, dword ptr [r13+r14*2+0xf917e93] IID8944 - __ cmovl(Assembler::Condition::greaterEqual, r13, Address(r14, r15, (Address::ScaleFactor)2, +0x11734207)); // cmovge r13d, dword ptr [r14+r15*4+0x11734207] IID8945 - __ cmovl(Assembler::Condition::greaterEqual, r14, Address(r15, r16, (Address::ScaleFactor)3, -0x70ffbd7a)); // cmovge r14d, dword ptr [r15+r16*8-0x70ffbd7a] IID8946 - __ cmovl(Assembler::Condition::greaterEqual, r15, Address(r16, +0x2f92ad0a)); // cmovge r15d, dword ptr [r16+0x2f92ad0a] IID8947 - __ cmovl(Assembler::Condition::greaterEqual, r16, Address(r17, r18, (Address::ScaleFactor)2, -0xaf95f0b)); // cmovge r16d, dword ptr [r17+r18*4-0xaf95f0b] IID8948 - __ cmovl(Assembler::Condition::greaterEqual, r17, Address(r18, r19, (Address::ScaleFactor)3, -0x79e09075)); // cmovge r17d, dword ptr [r18+r19*8-0x79e09075] IID8949 - __ cmovl(Assembler::Condition::greaterEqual, r18, Address(r19, +0x20e61891)); // cmovge r18d, dword ptr [r19+0x20e61891] IID8950 - __ cmovl(Assembler::Condition::greaterEqual, r19, Address(r20, r21, (Address::ScaleFactor)3, -0x4c355de1)); // cmovge r19d, dword ptr [r20+r21*8-0x4c355de1] IID8951 - __ cmovl(Assembler::Condition::greaterEqual, r20, Address(r21, r22, (Address::ScaleFactor)1, +0x664d551c)); // cmovge r20d, dword ptr [r21+r22*2+0x664d551c] IID8952 - __ cmovl(Assembler::Condition::greaterEqual, r21, Address(r22, r23, (Address::ScaleFactor)1, +0x4f3ac17c)); // cmovge r21d, dword ptr [r22+r23*2+0x4f3ac17c] IID8953 - __ cmovl(Assembler::Condition::greaterEqual, r22, Address(r23, r24, (Address::ScaleFactor)1, -0x66ce13f0)); // cmovge r22d, dword ptr [r23+r24*2-0x66ce13f0] IID8954 - __ cmovl(Assembler::Condition::greaterEqual, r23, Address(r24, +0x76b2d283)); // cmovge r23d, dword ptr [r24+0x76b2d283] IID8955 - __ cmovl(Assembler::Condition::greaterEqual, r24, Address(r25, r26, (Address::ScaleFactor)0, -0x7e4bb69a)); // cmovge r24d, dword ptr [r25+r26*1-0x7e4bb69a] IID8956 - __ cmovl(Assembler::Condition::greaterEqual, r25, Address(r26, r27, (Address::ScaleFactor)3, +0x468837b4)); // cmovge r25d, dword ptr [r26+r27*8+0x468837b4] IID8957 - __ cmovl(Assembler::Condition::greaterEqual, r26, Address(r27, r28, (Address::ScaleFactor)0, -0x821e70f)); // cmovge r26d, dword ptr [r27+r28*1-0x821e70f] IID8958 - __ cmovl(Assembler::Condition::greaterEqual, r27, Address(r28, r29, (Address::ScaleFactor)2, -0x5a786f9e)); // cmovge r27d, dword ptr [r28+r29*4-0x5a786f9e] IID8959 - __ cmovl(Assembler::Condition::greaterEqual, r28, Address(r29, r30, (Address::ScaleFactor)3, -0x637405fc)); // cmovge r28d, dword ptr [r29+r30*8-0x637405fc] IID8960 - __ cmovl(Assembler::Condition::greaterEqual, r29, Address(r30, r31, (Address::ScaleFactor)2, +0x7ab4f3a5)); // cmovge r29d, dword ptr [r30+r31*4+0x7ab4f3a5] IID8961 - __ cmovl(Assembler::Condition::greaterEqual, r30, Address(r31, rcx, (Address::ScaleFactor)3, +0x1cdb833)); // cmovge r30d, dword ptr [r31+rcx*8+0x1cdb833] IID8962 - __ cmovl(Assembler::Condition::greaterEqual, r31, Address(rcx, rdx, (Address::ScaleFactor)0, +0x41b2b19a)); // cmovge r31d, dword ptr [rcx+rdx*1+0x41b2b19a] IID8963 -#endif // _LP64 - __ cmovl(Assembler::Condition::lessEqual, rcx, Address(rdx, -0x30e552a1)); // cmovle ecx, dword ptr [rdx-0x30e552a1] IID8964 -#ifdef _LP64 - __ cmovl(Assembler::Condition::lessEqual, rdx, Address(rbx, r8, (Address::ScaleFactor)2, -0xf8b6d94)); // cmovle edx, dword ptr [rbx+r8*4-0xf8b6d94] IID8965 - __ cmovl(Assembler::Condition::lessEqual, rbx, Address(r8, +0xb934c)); // cmovle ebx, dword ptr [r8+0xb934c] IID8966 - __ cmovl(Assembler::Condition::lessEqual, r8, Address(r9, r10, (Address::ScaleFactor)0, +0x546672a5)); // cmovle r8d, dword ptr [r9+r10*1+0x546672a5] IID8967 - __ cmovl(Assembler::Condition::lessEqual, r9, Address(r10, r11, (Address::ScaleFactor)0, +0x7c8e6f89)); // cmovle r9d, dword ptr [r10+r11*1+0x7c8e6f89] IID8968 - __ cmovl(Assembler::Condition::lessEqual, r10, Address(r11, r12, (Address::ScaleFactor)0, -0x67fedfaa)); // cmovle r10d, dword ptr [r11+r12*1-0x67fedfaa] IID8969 - __ cmovl(Assembler::Condition::lessEqual, r11, Address(r12, r13, (Address::ScaleFactor)2, -0x5515154a)); // cmovle r11d, dword ptr [r12+r13*4-0x5515154a] IID8970 - __ cmovl(Assembler::Condition::lessEqual, r12, Address(r13, r14, (Address::ScaleFactor)3, +0x106a8608)); // cmovle r12d, dword ptr [r13+r14*8+0x106a8608] IID8971 - __ cmovl(Assembler::Condition::lessEqual, r13, Address(r14, r15, (Address::ScaleFactor)3, +0xc4641f5)); // cmovle r13d, dword ptr [r14+r15*8+0xc4641f5] IID8972 - __ cmovl(Assembler::Condition::lessEqual, r14, Address(r15, -0x620e7be5)); // cmovle r14d, dword ptr [r15-0x620e7be5] IID8973 - __ cmovl(Assembler::Condition::lessEqual, r15, Address(r16, r17, (Address::ScaleFactor)0, +0x43ff2fec)); // cmovle r15d, dword ptr [r16+r17*1+0x43ff2fec] IID8974 - __ cmovl(Assembler::Condition::lessEqual, r16, Address(r17, r18, (Address::ScaleFactor)0, +0x2e73614)); // cmovle r16d, dword ptr [r17+r18*1+0x2e73614] IID8975 - __ cmovl(Assembler::Condition::lessEqual, r17, Address(r18, r19, (Address::ScaleFactor)1, -0x1300788b)); // cmovle r17d, dword ptr [r18+r19*2-0x1300788b] IID8976 - __ cmovl(Assembler::Condition::lessEqual, r18, Address(r19, -0x75fe7f8b)); // cmovle r18d, dword ptr [r19-0x75fe7f8b] IID8977 - __ cmovl(Assembler::Condition::lessEqual, r19, Address(r20, r21, (Address::ScaleFactor)0, -0x7facaf36)); // cmovle r19d, dword ptr [r20+r21*1-0x7facaf36] IID8978 - __ cmovl(Assembler::Condition::lessEqual, r20, Address(r21, r22, (Address::ScaleFactor)3, -0x27541a71)); // cmovle r20d, dword ptr [r21+r22*8-0x27541a71] IID8979 - __ cmovl(Assembler::Condition::lessEqual, r21, Address(r22, r23, (Address::ScaleFactor)2, -0x6a317bee)); // cmovle r21d, dword ptr [r22+r23*4-0x6a317bee] IID8980 - __ cmovl(Assembler::Condition::lessEqual, r22, Address(r23, r24, (Address::ScaleFactor)1, +0x160db275)); // cmovle r22d, dword ptr [r23+r24*2+0x160db275] IID8981 - __ cmovl(Assembler::Condition::lessEqual, r23, Address(r24, r25, (Address::ScaleFactor)2, +0x50c50ea3)); // cmovle r23d, dword ptr [r24+r25*4+0x50c50ea3] IID8982 - __ cmovl(Assembler::Condition::lessEqual, r24, Address(r25, r26, (Address::ScaleFactor)1, -0x7b6789b9)); // cmovle r24d, dword ptr [r25+r26*2-0x7b6789b9] IID8983 - __ cmovl(Assembler::Condition::lessEqual, r25, Address(r26, r27, (Address::ScaleFactor)0, +0x1bb3967a)); // cmovle r25d, dword ptr [r26+r27*1+0x1bb3967a] IID8984 - __ cmovl(Assembler::Condition::lessEqual, r26, Address(r27, r28, (Address::ScaleFactor)1, -0x5a6dab08)); // cmovle r26d, dword ptr [r27+r28*2-0x5a6dab08] IID8985 - __ cmovl(Assembler::Condition::lessEqual, r27, Address(r28, r29, (Address::ScaleFactor)1, -0x5c7de175)); // cmovle r27d, dword ptr [r28+r29*2-0x5c7de175] IID8986 - __ cmovl(Assembler::Condition::lessEqual, r28, Address(r29, r30, (Address::ScaleFactor)3, -0x5bc36963)); // cmovle r28d, dword ptr [r29+r30*8-0x5bc36963] IID8987 - __ cmovl(Assembler::Condition::lessEqual, r29, Address(r30, r31, (Address::ScaleFactor)3, -0x43a258d9)); // cmovle r29d, dword ptr [r30+r31*8-0x43a258d9] IID8988 - __ cmovl(Assembler::Condition::lessEqual, r30, Address(r31, +0x302333f4)); // cmovle r30d, dword ptr [r31+0x302333f4] IID8989 - __ cmovl(Assembler::Condition::lessEqual, r31, Address(rcx, rdx, (Address::ScaleFactor)3, -0x3c4cd9d)); // cmovle r31d, dword ptr [rcx+rdx*8-0x3c4cd9d] IID8990 -#endif // _LP64 - __ cmovl(Assembler::Condition::greater, rcx, Address(rdx, rbx, (Address::ScaleFactor)2, -0x5850d0b8)); // cmovg ecx, dword ptr [rdx+rbx*4-0x5850d0b8] IID8991 -#ifdef _LP64 - __ cmovl(Assembler::Condition::greater, rdx, Address(rbx, r8, (Address::ScaleFactor)1, +0x45d67da2)); // cmovg edx, dword ptr [rbx+r8*2+0x45d67da2] IID8992 - __ cmovl(Assembler::Condition::greater, rbx, Address(r8, r9, (Address::ScaleFactor)3, -0x1ffce53a)); // cmovg ebx, dword ptr [r8+r9*8-0x1ffce53a] IID8993 - __ cmovl(Assembler::Condition::greater, r8, Address(r9, r10, (Address::ScaleFactor)3, -0x24b7a3e3)); // cmovg r8d, dword ptr [r9+r10*8-0x24b7a3e3] IID8994 - __ cmovl(Assembler::Condition::greater, r9, Address(r10, r11, (Address::ScaleFactor)3, +0x2e9cdebf)); // cmovg r9d, dword ptr [r10+r11*8+0x2e9cdebf] IID8995 - __ cmovl(Assembler::Condition::greater, r10, Address(r11, r12, (Address::ScaleFactor)0, +0x278f4768)); // cmovg r10d, dword ptr [r11+r12*1+0x278f4768] IID8996 - __ cmovl(Assembler::Condition::greater, r11, Address(r12, r13, (Address::ScaleFactor)1, +0x343ea873)); // cmovg r11d, dword ptr [r12+r13*2+0x343ea873] IID8997 - __ cmovl(Assembler::Condition::greater, r12, Address(r13, r14, (Address::ScaleFactor)3, -0xc7838de)); // cmovg r12d, dword ptr [r13+r14*8-0xc7838de] IID8998 - __ cmovl(Assembler::Condition::greater, r13, Address(r14, r15, (Address::ScaleFactor)0, -0x4cae7e48)); // cmovg r13d, dword ptr [r14+r15*1-0x4cae7e48] IID8999 - __ cmovl(Assembler::Condition::greater, r14, Address(r15, r16, (Address::ScaleFactor)1, +0x6ed25726)); // cmovg r14d, dword ptr [r15+r16*2+0x6ed25726] IID9000 - __ cmovl(Assembler::Condition::greater, r15, Address(r16, r17, (Address::ScaleFactor)1, +0x1be93412)); // cmovg r15d, dword ptr [r16+r17*2+0x1be93412] IID9001 - __ cmovl(Assembler::Condition::greater, r16, Address(r17, r18, (Address::ScaleFactor)3, -0x747c1b4e)); // cmovg r16d, dword ptr [r17+r18*8-0x747c1b4e] IID9002 - __ cmovl(Assembler::Condition::greater, r17, Address(r18, r19, (Address::ScaleFactor)2, +0x7133e00c)); // cmovg r17d, dword ptr [r18+r19*4+0x7133e00c] IID9003 - __ cmovl(Assembler::Condition::greater, r18, Address(r19, r20, (Address::ScaleFactor)2, -0x3aac2e1c)); // cmovg r18d, dword ptr [r19+r20*4-0x3aac2e1c] IID9004 - __ cmovl(Assembler::Condition::greater, r19, Address(r20, r21, (Address::ScaleFactor)0, -0x186e58b7)); // cmovg r19d, dword ptr [r20+r21*1-0x186e58b7] IID9005 - __ cmovl(Assembler::Condition::greater, r20, Address(r21, r22, (Address::ScaleFactor)0, -0x13f031c4)); // cmovg r20d, dword ptr [r21+r22*1-0x13f031c4] IID9006 - __ cmovl(Assembler::Condition::greater, r21, Address(r22, r23, (Address::ScaleFactor)1, -0x76bd44e)); // cmovg r21d, dword ptr [r22+r23*2-0x76bd44e] IID9007 - __ cmovl(Assembler::Condition::greater, r22, Address(r23, r24, (Address::ScaleFactor)1, +0x7f50c1e5)); // cmovg r22d, dword ptr [r23+r24*2+0x7f50c1e5] IID9008 - __ cmovl(Assembler::Condition::greater, r23, Address(r24, r25, (Address::ScaleFactor)2, -0xf0a9df)); // cmovg r23d, dword ptr [r24+r25*4-0xf0a9df] IID9009 - __ cmovl(Assembler::Condition::greater, r24, Address(r25, -0x1249f74c)); // cmovg r24d, dword ptr [r25-0x1249f74c] IID9010 - __ cmovl(Assembler::Condition::greater, r25, Address(r26, +0x6c371ca1)); // cmovg r25d, dword ptr [r26+0x6c371ca1] IID9011 - __ cmovl(Assembler::Condition::greater, r26, Address(r27, r28, (Address::ScaleFactor)1, -0x42c8b2ec)); // cmovg r26d, dword ptr [r27+r28*2-0x42c8b2ec] IID9012 - __ cmovl(Assembler::Condition::greater, r27, Address(r28, r29, (Address::ScaleFactor)3, +0x54367848)); // cmovg r27d, dword ptr [r28+r29*8+0x54367848] IID9013 - __ cmovl(Assembler::Condition::greater, r28, Address(r29, r30, (Address::ScaleFactor)3, +0x77e8739b)); // cmovg r28d, dword ptr [r29+r30*8+0x77e8739b] IID9014 - __ cmovl(Assembler::Condition::greater, r29, Address(r30, -0x5986eb23)); // cmovg r29d, dword ptr [r30-0x5986eb23] IID9015 - __ cmovl(Assembler::Condition::greater, r30, Address(r31, +0x56e1b0c7)); // cmovg r30d, dword ptr [r31+0x56e1b0c7] IID9016 - __ cmovl(Assembler::Condition::greater, r31, Address(rcx, rdx, (Address::ScaleFactor)2, +0x767c9677)); // cmovg r31d, dword ptr [rcx+rdx*4+0x767c9677] IID9017 -#endif // _LP64 - __ setb(Assembler::Condition::overflow, rcx); // seto cl IID9018 - __ setb(Assembler::Condition::overflow, rdx); // seto dl IID9019 - __ setb(Assembler::Condition::overflow, rbx); // seto bl IID9020 -#ifdef _LP64 - __ setb(Assembler::Condition::overflow, r8); // seto r8b IID9021 - __ setb(Assembler::Condition::overflow, r9); // seto r9b IID9022 - __ setb(Assembler::Condition::overflow, r10); // seto r10b IID9023 - __ setb(Assembler::Condition::overflow, r11); // seto r11b IID9024 - __ setb(Assembler::Condition::overflow, r12); // seto r12b IID9025 - __ setb(Assembler::Condition::overflow, r13); // seto r13b IID9026 - __ setb(Assembler::Condition::overflow, r14); // seto r14b IID9027 - __ setb(Assembler::Condition::overflow, r15); // seto r15b IID9028 - __ setb(Assembler::Condition::overflow, r16); // seto r16b IID9029 - __ setb(Assembler::Condition::overflow, r17); // seto r17b IID9030 - __ setb(Assembler::Condition::overflow, r18); // seto r18b IID9031 - __ setb(Assembler::Condition::overflow, r19); // seto r19b IID9032 - __ setb(Assembler::Condition::overflow, r20); // seto r20b IID9033 - __ setb(Assembler::Condition::overflow, r21); // seto r21b IID9034 - __ setb(Assembler::Condition::overflow, r22); // seto r22b IID9035 - __ setb(Assembler::Condition::overflow, r23); // seto r23b IID9036 - __ setb(Assembler::Condition::overflow, r24); // seto r24b IID9037 - __ setb(Assembler::Condition::overflow, r25); // seto r25b IID9038 - __ setb(Assembler::Condition::overflow, r26); // seto r26b IID9039 - __ setb(Assembler::Condition::overflow, r27); // seto r27b IID9040 - __ setb(Assembler::Condition::overflow, r28); // seto r28b IID9041 - __ setb(Assembler::Condition::overflow, r29); // seto r29b IID9042 - __ setb(Assembler::Condition::overflow, r30); // seto r30b IID9043 - __ setb(Assembler::Condition::overflow, r31); // seto r31b IID9044 -#endif // _LP64 - __ setb(Assembler::Condition::noOverflow, rcx); // setno cl IID9045 - __ setb(Assembler::Condition::noOverflow, rdx); // setno dl IID9046 - __ setb(Assembler::Condition::noOverflow, rbx); // setno bl IID9047 -#ifdef _LP64 - __ setb(Assembler::Condition::noOverflow, r8); // setno r8b IID9048 - __ setb(Assembler::Condition::noOverflow, r9); // setno r9b IID9049 - __ setb(Assembler::Condition::noOverflow, r10); // setno r10b IID9050 - __ setb(Assembler::Condition::noOverflow, r11); // setno r11b IID9051 - __ setb(Assembler::Condition::noOverflow, r12); // setno r12b IID9052 - __ setb(Assembler::Condition::noOverflow, r13); // setno r13b IID9053 - __ setb(Assembler::Condition::noOverflow, r14); // setno r14b IID9054 - __ setb(Assembler::Condition::noOverflow, r15); // setno r15b IID9055 - __ setb(Assembler::Condition::noOverflow, r16); // setno r16b IID9056 - __ setb(Assembler::Condition::noOverflow, r17); // setno r17b IID9057 - __ setb(Assembler::Condition::noOverflow, r18); // setno r18b IID9058 - __ setb(Assembler::Condition::noOverflow, r19); // setno r19b IID9059 - __ setb(Assembler::Condition::noOverflow, r20); // setno r20b IID9060 - __ setb(Assembler::Condition::noOverflow, r21); // setno r21b IID9061 - __ setb(Assembler::Condition::noOverflow, r22); // setno r22b IID9062 - __ setb(Assembler::Condition::noOverflow, r23); // setno r23b IID9063 - __ setb(Assembler::Condition::noOverflow, r24); // setno r24b IID9064 - __ setb(Assembler::Condition::noOverflow, r25); // setno r25b IID9065 - __ setb(Assembler::Condition::noOverflow, r26); // setno r26b IID9066 - __ setb(Assembler::Condition::noOverflow, r27); // setno r27b IID9067 - __ setb(Assembler::Condition::noOverflow, r28); // setno r28b IID9068 - __ setb(Assembler::Condition::noOverflow, r29); // setno r29b IID9069 - __ setb(Assembler::Condition::noOverflow, r30); // setno r30b IID9070 - __ setb(Assembler::Condition::noOverflow, r31); // setno r31b IID9071 -#endif // _LP64 - __ setb(Assembler::Condition::below, rcx); // setb cl IID9072 - __ setb(Assembler::Condition::below, rdx); // setb dl IID9073 - __ setb(Assembler::Condition::below, rbx); // setb bl IID9074 -#ifdef _LP64 - __ setb(Assembler::Condition::below, r8); // setb r8b IID9075 - __ setb(Assembler::Condition::below, r9); // setb r9b IID9076 - __ setb(Assembler::Condition::below, r10); // setb r10b IID9077 - __ setb(Assembler::Condition::below, r11); // setb r11b IID9078 - __ setb(Assembler::Condition::below, r12); // setb r12b IID9079 - __ setb(Assembler::Condition::below, r13); // setb r13b IID9080 - __ setb(Assembler::Condition::below, r14); // setb r14b IID9081 - __ setb(Assembler::Condition::below, r15); // setb r15b IID9082 - __ setb(Assembler::Condition::below, r16); // setb r16b IID9083 - __ setb(Assembler::Condition::below, r17); // setb r17b IID9084 - __ setb(Assembler::Condition::below, r18); // setb r18b IID9085 - __ setb(Assembler::Condition::below, r19); // setb r19b IID9086 - __ setb(Assembler::Condition::below, r20); // setb r20b IID9087 - __ setb(Assembler::Condition::below, r21); // setb r21b IID9088 - __ setb(Assembler::Condition::below, r22); // setb r22b IID9089 - __ setb(Assembler::Condition::below, r23); // setb r23b IID9090 - __ setb(Assembler::Condition::below, r24); // setb r24b IID9091 - __ setb(Assembler::Condition::below, r25); // setb r25b IID9092 - __ setb(Assembler::Condition::below, r26); // setb r26b IID9093 - __ setb(Assembler::Condition::below, r27); // setb r27b IID9094 - __ setb(Assembler::Condition::below, r28); // setb r28b IID9095 - __ setb(Assembler::Condition::below, r29); // setb r29b IID9096 - __ setb(Assembler::Condition::below, r30); // setb r30b IID9097 - __ setb(Assembler::Condition::below, r31); // setb r31b IID9098 -#endif // _LP64 - __ setb(Assembler::Condition::aboveEqual, rcx); // setae cl IID9099 - __ setb(Assembler::Condition::aboveEqual, rdx); // setae dl IID9100 - __ setb(Assembler::Condition::aboveEqual, rbx); // setae bl IID9101 -#ifdef _LP64 - __ setb(Assembler::Condition::aboveEqual, r8); // setae r8b IID9102 - __ setb(Assembler::Condition::aboveEqual, r9); // setae r9b IID9103 - __ setb(Assembler::Condition::aboveEqual, r10); // setae r10b IID9104 - __ setb(Assembler::Condition::aboveEqual, r11); // setae r11b IID9105 - __ setb(Assembler::Condition::aboveEqual, r12); // setae r12b IID9106 - __ setb(Assembler::Condition::aboveEqual, r13); // setae r13b IID9107 - __ setb(Assembler::Condition::aboveEqual, r14); // setae r14b IID9108 - __ setb(Assembler::Condition::aboveEqual, r15); // setae r15b IID9109 - __ setb(Assembler::Condition::aboveEqual, r16); // setae r16b IID9110 - __ setb(Assembler::Condition::aboveEqual, r17); // setae r17b IID9111 - __ setb(Assembler::Condition::aboveEqual, r18); // setae r18b IID9112 - __ setb(Assembler::Condition::aboveEqual, r19); // setae r19b IID9113 - __ setb(Assembler::Condition::aboveEqual, r20); // setae r20b IID9114 - __ setb(Assembler::Condition::aboveEqual, r21); // setae r21b IID9115 - __ setb(Assembler::Condition::aboveEqual, r22); // setae r22b IID9116 - __ setb(Assembler::Condition::aboveEqual, r23); // setae r23b IID9117 - __ setb(Assembler::Condition::aboveEqual, r24); // setae r24b IID9118 - __ setb(Assembler::Condition::aboveEqual, r25); // setae r25b IID9119 - __ setb(Assembler::Condition::aboveEqual, r26); // setae r26b IID9120 - __ setb(Assembler::Condition::aboveEqual, r27); // setae r27b IID9121 - __ setb(Assembler::Condition::aboveEqual, r28); // setae r28b IID9122 - __ setb(Assembler::Condition::aboveEqual, r29); // setae r29b IID9123 - __ setb(Assembler::Condition::aboveEqual, r30); // setae r30b IID9124 - __ setb(Assembler::Condition::aboveEqual, r31); // setae r31b IID9125 -#endif // _LP64 - __ setb(Assembler::Condition::zero, rcx); // setz cl IID9126 - __ setb(Assembler::Condition::zero, rdx); // setz dl IID9127 - __ setb(Assembler::Condition::zero, rbx); // setz bl IID9128 -#ifdef _LP64 - __ setb(Assembler::Condition::zero, r8); // setz r8b IID9129 - __ setb(Assembler::Condition::zero, r9); // setz r9b IID9130 - __ setb(Assembler::Condition::zero, r10); // setz r10b IID9131 - __ setb(Assembler::Condition::zero, r11); // setz r11b IID9132 - __ setb(Assembler::Condition::zero, r12); // setz r12b IID9133 - __ setb(Assembler::Condition::zero, r13); // setz r13b IID9134 - __ setb(Assembler::Condition::zero, r14); // setz r14b IID9135 - __ setb(Assembler::Condition::zero, r15); // setz r15b IID9136 - __ setb(Assembler::Condition::zero, r16); // setz r16b IID9137 - __ setb(Assembler::Condition::zero, r17); // setz r17b IID9138 - __ setb(Assembler::Condition::zero, r18); // setz r18b IID9139 - __ setb(Assembler::Condition::zero, r19); // setz r19b IID9140 - __ setb(Assembler::Condition::zero, r20); // setz r20b IID9141 - __ setb(Assembler::Condition::zero, r21); // setz r21b IID9142 - __ setb(Assembler::Condition::zero, r22); // setz r22b IID9143 - __ setb(Assembler::Condition::zero, r23); // setz r23b IID9144 - __ setb(Assembler::Condition::zero, r24); // setz r24b IID9145 - __ setb(Assembler::Condition::zero, r25); // setz r25b IID9146 - __ setb(Assembler::Condition::zero, r26); // setz r26b IID9147 - __ setb(Assembler::Condition::zero, r27); // setz r27b IID9148 - __ setb(Assembler::Condition::zero, r28); // setz r28b IID9149 - __ setb(Assembler::Condition::zero, r29); // setz r29b IID9150 - __ setb(Assembler::Condition::zero, r30); // setz r30b IID9151 - __ setb(Assembler::Condition::zero, r31); // setz r31b IID9152 -#endif // _LP64 - __ setb(Assembler::Condition::notZero, rcx); // setnz cl IID9153 - __ setb(Assembler::Condition::notZero, rdx); // setnz dl IID9154 - __ setb(Assembler::Condition::notZero, rbx); // setnz bl IID9155 -#ifdef _LP64 - __ setb(Assembler::Condition::notZero, r8); // setnz r8b IID9156 - __ setb(Assembler::Condition::notZero, r9); // setnz r9b IID9157 - __ setb(Assembler::Condition::notZero, r10); // setnz r10b IID9158 - __ setb(Assembler::Condition::notZero, r11); // setnz r11b IID9159 - __ setb(Assembler::Condition::notZero, r12); // setnz r12b IID9160 - __ setb(Assembler::Condition::notZero, r13); // setnz r13b IID9161 - __ setb(Assembler::Condition::notZero, r14); // setnz r14b IID9162 - __ setb(Assembler::Condition::notZero, r15); // setnz r15b IID9163 - __ setb(Assembler::Condition::notZero, r16); // setnz r16b IID9164 - __ setb(Assembler::Condition::notZero, r17); // setnz r17b IID9165 - __ setb(Assembler::Condition::notZero, r18); // setnz r18b IID9166 - __ setb(Assembler::Condition::notZero, r19); // setnz r19b IID9167 - __ setb(Assembler::Condition::notZero, r20); // setnz r20b IID9168 - __ setb(Assembler::Condition::notZero, r21); // setnz r21b IID9169 - __ setb(Assembler::Condition::notZero, r22); // setnz r22b IID9170 - __ setb(Assembler::Condition::notZero, r23); // setnz r23b IID9171 - __ setb(Assembler::Condition::notZero, r24); // setnz r24b IID9172 - __ setb(Assembler::Condition::notZero, r25); // setnz r25b IID9173 - __ setb(Assembler::Condition::notZero, r26); // setnz r26b IID9174 - __ setb(Assembler::Condition::notZero, r27); // setnz r27b IID9175 - __ setb(Assembler::Condition::notZero, r28); // setnz r28b IID9176 - __ setb(Assembler::Condition::notZero, r29); // setnz r29b IID9177 - __ setb(Assembler::Condition::notZero, r30); // setnz r30b IID9178 - __ setb(Assembler::Condition::notZero, r31); // setnz r31b IID9179 -#endif // _LP64 - __ setb(Assembler::Condition::belowEqual, rcx); // setbe cl IID9180 - __ setb(Assembler::Condition::belowEqual, rdx); // setbe dl IID9181 - __ setb(Assembler::Condition::belowEqual, rbx); // setbe bl IID9182 -#ifdef _LP64 - __ setb(Assembler::Condition::belowEqual, r8); // setbe r8b IID9183 - __ setb(Assembler::Condition::belowEqual, r9); // setbe r9b IID9184 - __ setb(Assembler::Condition::belowEqual, r10); // setbe r10b IID9185 - __ setb(Assembler::Condition::belowEqual, r11); // setbe r11b IID9186 - __ setb(Assembler::Condition::belowEqual, r12); // setbe r12b IID9187 - __ setb(Assembler::Condition::belowEqual, r13); // setbe r13b IID9188 - __ setb(Assembler::Condition::belowEqual, r14); // setbe r14b IID9189 - __ setb(Assembler::Condition::belowEqual, r15); // setbe r15b IID9190 - __ setb(Assembler::Condition::belowEqual, r16); // setbe r16b IID9191 - __ setb(Assembler::Condition::belowEqual, r17); // setbe r17b IID9192 - __ setb(Assembler::Condition::belowEqual, r18); // setbe r18b IID9193 - __ setb(Assembler::Condition::belowEqual, r19); // setbe r19b IID9194 - __ setb(Assembler::Condition::belowEqual, r20); // setbe r20b IID9195 - __ setb(Assembler::Condition::belowEqual, r21); // setbe r21b IID9196 - __ setb(Assembler::Condition::belowEqual, r22); // setbe r22b IID9197 - __ setb(Assembler::Condition::belowEqual, r23); // setbe r23b IID9198 - __ setb(Assembler::Condition::belowEqual, r24); // setbe r24b IID9199 - __ setb(Assembler::Condition::belowEqual, r25); // setbe r25b IID9200 - __ setb(Assembler::Condition::belowEqual, r26); // setbe r26b IID9201 - __ setb(Assembler::Condition::belowEqual, r27); // setbe r27b IID9202 - __ setb(Assembler::Condition::belowEqual, r28); // setbe r28b IID9203 - __ setb(Assembler::Condition::belowEqual, r29); // setbe r29b IID9204 - __ setb(Assembler::Condition::belowEqual, r30); // setbe r30b IID9205 - __ setb(Assembler::Condition::belowEqual, r31); // setbe r31b IID9206 -#endif // _LP64 - __ setb(Assembler::Condition::above, rcx); // seta cl IID9207 - __ setb(Assembler::Condition::above, rdx); // seta dl IID9208 - __ setb(Assembler::Condition::above, rbx); // seta bl IID9209 -#ifdef _LP64 - __ setb(Assembler::Condition::above, r8); // seta r8b IID9210 - __ setb(Assembler::Condition::above, r9); // seta r9b IID9211 - __ setb(Assembler::Condition::above, r10); // seta r10b IID9212 - __ setb(Assembler::Condition::above, r11); // seta r11b IID9213 - __ setb(Assembler::Condition::above, r12); // seta r12b IID9214 - __ setb(Assembler::Condition::above, r13); // seta r13b IID9215 - __ setb(Assembler::Condition::above, r14); // seta r14b IID9216 - __ setb(Assembler::Condition::above, r15); // seta r15b IID9217 - __ setb(Assembler::Condition::above, r16); // seta r16b IID9218 - __ setb(Assembler::Condition::above, r17); // seta r17b IID9219 - __ setb(Assembler::Condition::above, r18); // seta r18b IID9220 - __ setb(Assembler::Condition::above, r19); // seta r19b IID9221 - __ setb(Assembler::Condition::above, r20); // seta r20b IID9222 - __ setb(Assembler::Condition::above, r21); // seta r21b IID9223 - __ setb(Assembler::Condition::above, r22); // seta r22b IID9224 - __ setb(Assembler::Condition::above, r23); // seta r23b IID9225 - __ setb(Assembler::Condition::above, r24); // seta r24b IID9226 - __ setb(Assembler::Condition::above, r25); // seta r25b IID9227 - __ setb(Assembler::Condition::above, r26); // seta r26b IID9228 - __ setb(Assembler::Condition::above, r27); // seta r27b IID9229 - __ setb(Assembler::Condition::above, r28); // seta r28b IID9230 - __ setb(Assembler::Condition::above, r29); // seta r29b IID9231 - __ setb(Assembler::Condition::above, r30); // seta r30b IID9232 - __ setb(Assembler::Condition::above, r31); // seta r31b IID9233 -#endif // _LP64 - __ setb(Assembler::Condition::negative, rcx); // sets cl IID9234 - __ setb(Assembler::Condition::negative, rdx); // sets dl IID9235 - __ setb(Assembler::Condition::negative, rbx); // sets bl IID9236 -#ifdef _LP64 - __ setb(Assembler::Condition::negative, r8); // sets r8b IID9237 - __ setb(Assembler::Condition::negative, r9); // sets r9b IID9238 - __ setb(Assembler::Condition::negative, r10); // sets r10b IID9239 - __ setb(Assembler::Condition::negative, r11); // sets r11b IID9240 - __ setb(Assembler::Condition::negative, r12); // sets r12b IID9241 - __ setb(Assembler::Condition::negative, r13); // sets r13b IID9242 - __ setb(Assembler::Condition::negative, r14); // sets r14b IID9243 - __ setb(Assembler::Condition::negative, r15); // sets r15b IID9244 - __ setb(Assembler::Condition::negative, r16); // sets r16b IID9245 - __ setb(Assembler::Condition::negative, r17); // sets r17b IID9246 - __ setb(Assembler::Condition::negative, r18); // sets r18b IID9247 - __ setb(Assembler::Condition::negative, r19); // sets r19b IID9248 - __ setb(Assembler::Condition::negative, r20); // sets r20b IID9249 - __ setb(Assembler::Condition::negative, r21); // sets r21b IID9250 - __ setb(Assembler::Condition::negative, r22); // sets r22b IID9251 - __ setb(Assembler::Condition::negative, r23); // sets r23b IID9252 - __ setb(Assembler::Condition::negative, r24); // sets r24b IID9253 - __ setb(Assembler::Condition::negative, r25); // sets r25b IID9254 - __ setb(Assembler::Condition::negative, r26); // sets r26b IID9255 - __ setb(Assembler::Condition::negative, r27); // sets r27b IID9256 - __ setb(Assembler::Condition::negative, r28); // sets r28b IID9257 - __ setb(Assembler::Condition::negative, r29); // sets r29b IID9258 - __ setb(Assembler::Condition::negative, r30); // sets r30b IID9259 - __ setb(Assembler::Condition::negative, r31); // sets r31b IID9260 -#endif // _LP64 - __ setb(Assembler::Condition::positive, rcx); // setns cl IID9261 - __ setb(Assembler::Condition::positive, rdx); // setns dl IID9262 - __ setb(Assembler::Condition::positive, rbx); // setns bl IID9263 -#ifdef _LP64 - __ setb(Assembler::Condition::positive, r8); // setns r8b IID9264 - __ setb(Assembler::Condition::positive, r9); // setns r9b IID9265 - __ setb(Assembler::Condition::positive, r10); // setns r10b IID9266 - __ setb(Assembler::Condition::positive, r11); // setns r11b IID9267 - __ setb(Assembler::Condition::positive, r12); // setns r12b IID9268 - __ setb(Assembler::Condition::positive, r13); // setns r13b IID9269 - __ setb(Assembler::Condition::positive, r14); // setns r14b IID9270 - __ setb(Assembler::Condition::positive, r15); // setns r15b IID9271 - __ setb(Assembler::Condition::positive, r16); // setns r16b IID9272 - __ setb(Assembler::Condition::positive, r17); // setns r17b IID9273 - __ setb(Assembler::Condition::positive, r18); // setns r18b IID9274 - __ setb(Assembler::Condition::positive, r19); // setns r19b IID9275 - __ setb(Assembler::Condition::positive, r20); // setns r20b IID9276 - __ setb(Assembler::Condition::positive, r21); // setns r21b IID9277 - __ setb(Assembler::Condition::positive, r22); // setns r22b IID9278 - __ setb(Assembler::Condition::positive, r23); // setns r23b IID9279 - __ setb(Assembler::Condition::positive, r24); // setns r24b IID9280 - __ setb(Assembler::Condition::positive, r25); // setns r25b IID9281 - __ setb(Assembler::Condition::positive, r26); // setns r26b IID9282 - __ setb(Assembler::Condition::positive, r27); // setns r27b IID9283 - __ setb(Assembler::Condition::positive, r28); // setns r28b IID9284 - __ setb(Assembler::Condition::positive, r29); // setns r29b IID9285 - __ setb(Assembler::Condition::positive, r30); // setns r30b IID9286 - __ setb(Assembler::Condition::positive, r31); // setns r31b IID9287 -#endif // _LP64 - __ setb(Assembler::Condition::parity, rcx); // setp cl IID9288 - __ setb(Assembler::Condition::parity, rdx); // setp dl IID9289 - __ setb(Assembler::Condition::parity, rbx); // setp bl IID9290 -#ifdef _LP64 - __ setb(Assembler::Condition::parity, r8); // setp r8b IID9291 - __ setb(Assembler::Condition::parity, r9); // setp r9b IID9292 - __ setb(Assembler::Condition::parity, r10); // setp r10b IID9293 - __ setb(Assembler::Condition::parity, r11); // setp r11b IID9294 - __ setb(Assembler::Condition::parity, r12); // setp r12b IID9295 - __ setb(Assembler::Condition::parity, r13); // setp r13b IID9296 - __ setb(Assembler::Condition::parity, r14); // setp r14b IID9297 - __ setb(Assembler::Condition::parity, r15); // setp r15b IID9298 - __ setb(Assembler::Condition::parity, r16); // setp r16b IID9299 - __ setb(Assembler::Condition::parity, r17); // setp r17b IID9300 - __ setb(Assembler::Condition::parity, r18); // setp r18b IID9301 - __ setb(Assembler::Condition::parity, r19); // setp r19b IID9302 - __ setb(Assembler::Condition::parity, r20); // setp r20b IID9303 - __ setb(Assembler::Condition::parity, r21); // setp r21b IID9304 - __ setb(Assembler::Condition::parity, r22); // setp r22b IID9305 - __ setb(Assembler::Condition::parity, r23); // setp r23b IID9306 - __ setb(Assembler::Condition::parity, r24); // setp r24b IID9307 - __ setb(Assembler::Condition::parity, r25); // setp r25b IID9308 - __ setb(Assembler::Condition::parity, r26); // setp r26b IID9309 - __ setb(Assembler::Condition::parity, r27); // setp r27b IID9310 - __ setb(Assembler::Condition::parity, r28); // setp r28b IID9311 - __ setb(Assembler::Condition::parity, r29); // setp r29b IID9312 - __ setb(Assembler::Condition::parity, r30); // setp r30b IID9313 - __ setb(Assembler::Condition::parity, r31); // setp r31b IID9314 -#endif // _LP64 - __ setb(Assembler::Condition::noParity, rcx); // setnp cl IID9315 - __ setb(Assembler::Condition::noParity, rdx); // setnp dl IID9316 - __ setb(Assembler::Condition::noParity, rbx); // setnp bl IID9317 -#ifdef _LP64 - __ setb(Assembler::Condition::noParity, r8); // setnp r8b IID9318 - __ setb(Assembler::Condition::noParity, r9); // setnp r9b IID9319 - __ setb(Assembler::Condition::noParity, r10); // setnp r10b IID9320 - __ setb(Assembler::Condition::noParity, r11); // setnp r11b IID9321 - __ setb(Assembler::Condition::noParity, r12); // setnp r12b IID9322 - __ setb(Assembler::Condition::noParity, r13); // setnp r13b IID9323 - __ setb(Assembler::Condition::noParity, r14); // setnp r14b IID9324 - __ setb(Assembler::Condition::noParity, r15); // setnp r15b IID9325 - __ setb(Assembler::Condition::noParity, r16); // setnp r16b IID9326 - __ setb(Assembler::Condition::noParity, r17); // setnp r17b IID9327 - __ setb(Assembler::Condition::noParity, r18); // setnp r18b IID9328 - __ setb(Assembler::Condition::noParity, r19); // setnp r19b IID9329 - __ setb(Assembler::Condition::noParity, r20); // setnp r20b IID9330 - __ setb(Assembler::Condition::noParity, r21); // setnp r21b IID9331 - __ setb(Assembler::Condition::noParity, r22); // setnp r22b IID9332 - __ setb(Assembler::Condition::noParity, r23); // setnp r23b IID9333 - __ setb(Assembler::Condition::noParity, r24); // setnp r24b IID9334 - __ setb(Assembler::Condition::noParity, r25); // setnp r25b IID9335 - __ setb(Assembler::Condition::noParity, r26); // setnp r26b IID9336 - __ setb(Assembler::Condition::noParity, r27); // setnp r27b IID9337 - __ setb(Assembler::Condition::noParity, r28); // setnp r28b IID9338 - __ setb(Assembler::Condition::noParity, r29); // setnp r29b IID9339 - __ setb(Assembler::Condition::noParity, r30); // setnp r30b IID9340 - __ setb(Assembler::Condition::noParity, r31); // setnp r31b IID9341 -#endif // _LP64 - __ setb(Assembler::Condition::less, rcx); // setl cl IID9342 - __ setb(Assembler::Condition::less, rdx); // setl dl IID9343 - __ setb(Assembler::Condition::less, rbx); // setl bl IID9344 -#ifdef _LP64 - __ setb(Assembler::Condition::less, r8); // setl r8b IID9345 - __ setb(Assembler::Condition::less, r9); // setl r9b IID9346 - __ setb(Assembler::Condition::less, r10); // setl r10b IID9347 - __ setb(Assembler::Condition::less, r11); // setl r11b IID9348 - __ setb(Assembler::Condition::less, r12); // setl r12b IID9349 - __ setb(Assembler::Condition::less, r13); // setl r13b IID9350 - __ setb(Assembler::Condition::less, r14); // setl r14b IID9351 - __ setb(Assembler::Condition::less, r15); // setl r15b IID9352 - __ setb(Assembler::Condition::less, r16); // setl r16b IID9353 - __ setb(Assembler::Condition::less, r17); // setl r17b IID9354 - __ setb(Assembler::Condition::less, r18); // setl r18b IID9355 - __ setb(Assembler::Condition::less, r19); // setl r19b IID9356 - __ setb(Assembler::Condition::less, r20); // setl r20b IID9357 - __ setb(Assembler::Condition::less, r21); // setl r21b IID9358 - __ setb(Assembler::Condition::less, r22); // setl r22b IID9359 - __ setb(Assembler::Condition::less, r23); // setl r23b IID9360 - __ setb(Assembler::Condition::less, r24); // setl r24b IID9361 - __ setb(Assembler::Condition::less, r25); // setl r25b IID9362 - __ setb(Assembler::Condition::less, r26); // setl r26b IID9363 - __ setb(Assembler::Condition::less, r27); // setl r27b IID9364 - __ setb(Assembler::Condition::less, r28); // setl r28b IID9365 - __ setb(Assembler::Condition::less, r29); // setl r29b IID9366 - __ setb(Assembler::Condition::less, r30); // setl r30b IID9367 - __ setb(Assembler::Condition::less, r31); // setl r31b IID9368 -#endif // _LP64 - __ setb(Assembler::Condition::greaterEqual, rcx); // setge cl IID9369 - __ setb(Assembler::Condition::greaterEqual, rdx); // setge dl IID9370 - __ setb(Assembler::Condition::greaterEqual, rbx); // setge bl IID9371 -#ifdef _LP64 - __ setb(Assembler::Condition::greaterEqual, r8); // setge r8b IID9372 - __ setb(Assembler::Condition::greaterEqual, r9); // setge r9b IID9373 - __ setb(Assembler::Condition::greaterEqual, r10); // setge r10b IID9374 - __ setb(Assembler::Condition::greaterEqual, r11); // setge r11b IID9375 - __ setb(Assembler::Condition::greaterEqual, r12); // setge r12b IID9376 - __ setb(Assembler::Condition::greaterEqual, r13); // setge r13b IID9377 - __ setb(Assembler::Condition::greaterEqual, r14); // setge r14b IID9378 - __ setb(Assembler::Condition::greaterEqual, r15); // setge r15b IID9379 - __ setb(Assembler::Condition::greaterEqual, r16); // setge r16b IID9380 - __ setb(Assembler::Condition::greaterEqual, r17); // setge r17b IID9381 - __ setb(Assembler::Condition::greaterEqual, r18); // setge r18b IID9382 - __ setb(Assembler::Condition::greaterEqual, r19); // setge r19b IID9383 - __ setb(Assembler::Condition::greaterEqual, r20); // setge r20b IID9384 - __ setb(Assembler::Condition::greaterEqual, r21); // setge r21b IID9385 - __ setb(Assembler::Condition::greaterEqual, r22); // setge r22b IID9386 - __ setb(Assembler::Condition::greaterEqual, r23); // setge r23b IID9387 - __ setb(Assembler::Condition::greaterEqual, r24); // setge r24b IID9388 - __ setb(Assembler::Condition::greaterEqual, r25); // setge r25b IID9389 - __ setb(Assembler::Condition::greaterEqual, r26); // setge r26b IID9390 - __ setb(Assembler::Condition::greaterEqual, r27); // setge r27b IID9391 - __ setb(Assembler::Condition::greaterEqual, r28); // setge r28b IID9392 - __ setb(Assembler::Condition::greaterEqual, r29); // setge r29b IID9393 - __ setb(Assembler::Condition::greaterEqual, r30); // setge r30b IID9394 - __ setb(Assembler::Condition::greaterEqual, r31); // setge r31b IID9395 -#endif // _LP64 - __ setb(Assembler::Condition::lessEqual, rcx); // setle cl IID9396 - __ setb(Assembler::Condition::lessEqual, rdx); // setle dl IID9397 - __ setb(Assembler::Condition::lessEqual, rbx); // setle bl IID9398 -#ifdef _LP64 - __ setb(Assembler::Condition::lessEqual, r8); // setle r8b IID9399 - __ setb(Assembler::Condition::lessEqual, r9); // setle r9b IID9400 - __ setb(Assembler::Condition::lessEqual, r10); // setle r10b IID9401 - __ setb(Assembler::Condition::lessEqual, r11); // setle r11b IID9402 - __ setb(Assembler::Condition::lessEqual, r12); // setle r12b IID9403 - __ setb(Assembler::Condition::lessEqual, r13); // setle r13b IID9404 - __ setb(Assembler::Condition::lessEqual, r14); // setle r14b IID9405 - __ setb(Assembler::Condition::lessEqual, r15); // setle r15b IID9406 - __ setb(Assembler::Condition::lessEqual, r16); // setle r16b IID9407 - __ setb(Assembler::Condition::lessEqual, r17); // setle r17b IID9408 - __ setb(Assembler::Condition::lessEqual, r18); // setle r18b IID9409 - __ setb(Assembler::Condition::lessEqual, r19); // setle r19b IID9410 - __ setb(Assembler::Condition::lessEqual, r20); // setle r20b IID9411 - __ setb(Assembler::Condition::lessEqual, r21); // setle r21b IID9412 - __ setb(Assembler::Condition::lessEqual, r22); // setle r22b IID9413 - __ setb(Assembler::Condition::lessEqual, r23); // setle r23b IID9414 - __ setb(Assembler::Condition::lessEqual, r24); // setle r24b IID9415 - __ setb(Assembler::Condition::lessEqual, r25); // setle r25b IID9416 - __ setb(Assembler::Condition::lessEqual, r26); // setle r26b IID9417 - __ setb(Assembler::Condition::lessEqual, r27); // setle r27b IID9418 - __ setb(Assembler::Condition::lessEqual, r28); // setle r28b IID9419 - __ setb(Assembler::Condition::lessEqual, r29); // setle r29b IID9420 - __ setb(Assembler::Condition::lessEqual, r30); // setle r30b IID9421 - __ setb(Assembler::Condition::lessEqual, r31); // setle r31b IID9422 -#endif // _LP64 - __ setb(Assembler::Condition::greater, rcx); // setg cl IID9423 - __ setb(Assembler::Condition::greater, rdx); // setg dl IID9424 - __ setb(Assembler::Condition::greater, rbx); // setg bl IID9425 -#ifdef _LP64 - __ setb(Assembler::Condition::greater, r8); // setg r8b IID9426 - __ setb(Assembler::Condition::greater, r9); // setg r9b IID9427 - __ setb(Assembler::Condition::greater, r10); // setg r10b IID9428 - __ setb(Assembler::Condition::greater, r11); // setg r11b IID9429 - __ setb(Assembler::Condition::greater, r12); // setg r12b IID9430 - __ setb(Assembler::Condition::greater, r13); // setg r13b IID9431 - __ setb(Assembler::Condition::greater, r14); // setg r14b IID9432 - __ setb(Assembler::Condition::greater, r15); // setg r15b IID9433 - __ setb(Assembler::Condition::greater, r16); // setg r16b IID9434 - __ setb(Assembler::Condition::greater, r17); // setg r17b IID9435 - __ setb(Assembler::Condition::greater, r18); // setg r18b IID9436 - __ setb(Assembler::Condition::greater, r19); // setg r19b IID9437 - __ setb(Assembler::Condition::greater, r20); // setg r20b IID9438 - __ setb(Assembler::Condition::greater, r21); // setg r21b IID9439 - __ setb(Assembler::Condition::greater, r22); // setg r22b IID9440 - __ setb(Assembler::Condition::greater, r23); // setg r23b IID9441 - __ setb(Assembler::Condition::greater, r24); // setg r24b IID9442 - __ setb(Assembler::Condition::greater, r25); // setg r25b IID9443 - __ setb(Assembler::Condition::greater, r26); // setg r26b IID9444 - __ setb(Assembler::Condition::greater, r27); // setg r27b IID9445 - __ setb(Assembler::Condition::greater, r28); // setg r28b IID9446 - __ setb(Assembler::Condition::greater, r29); // setg r29b IID9447 - __ setb(Assembler::Condition::greater, r30); // setg r30b IID9448 - __ setb(Assembler::Condition::greater, r31); // setg r31b IID9449 -#endif // _LP64 - __ divl(rcx); // div ecx IID9450 - __ divl(rdx); // div edx IID9451 - __ divl(rbx); // div ebx IID9452 -#ifdef _LP64 - __ divl(r8); // div r8d IID9453 - __ divl(r9); // div r9d IID9454 - __ divl(r10); // div r10d IID9455 - __ divl(r11); // div r11d IID9456 - __ divl(r12); // div r12d IID9457 - __ divl(r13); // div r13d IID9458 - __ divl(r14); // div r14d IID9459 - __ divl(r15); // div r15d IID9460 - __ divl(r16); // div r16d IID9461 - __ divl(r17); // div r17d IID9462 - __ divl(r18); // div r18d IID9463 - __ divl(r19); // div r19d IID9464 - __ divl(r20); // div r20d IID9465 - __ divl(r21); // div r21d IID9466 - __ divl(r22); // div r22d IID9467 - __ divl(r23); // div r23d IID9468 - __ divl(r24); // div r24d IID9469 - __ divl(r25); // div r25d IID9470 - __ divl(r26); // div r26d IID9471 - __ divl(r27); // div r27d IID9472 - __ divl(r28); // div r28d IID9473 - __ divl(r29); // div r29d IID9474 - __ divl(r30); // div r30d IID9475 - __ divl(r31); // div r31d IID9476 -#endif // _LP64 - __ idivl(rcx); // idiv ecx IID9477 - __ idivl(rdx); // idiv edx IID9478 - __ idivl(rbx); // idiv ebx IID9479 -#ifdef _LP64 - __ idivl(r8); // idiv r8d IID9480 - __ idivl(r9); // idiv r9d IID9481 - __ idivl(r10); // idiv r10d IID9482 - __ idivl(r11); // idiv r11d IID9483 - __ idivl(r12); // idiv r12d IID9484 - __ idivl(r13); // idiv r13d IID9485 - __ idivl(r14); // idiv r14d IID9486 - __ idivl(r15); // idiv r15d IID9487 - __ idivl(r16); // idiv r16d IID9488 - __ idivl(r17); // idiv r17d IID9489 - __ idivl(r18); // idiv r18d IID9490 - __ idivl(r19); // idiv r19d IID9491 - __ idivl(r20); // idiv r20d IID9492 - __ idivl(r21); // idiv r21d IID9493 - __ idivl(r22); // idiv r22d IID9494 - __ idivl(r23); // idiv r23d IID9495 - __ idivl(r24); // idiv r24d IID9496 - __ idivl(r25); // idiv r25d IID9497 - __ idivl(r26); // idiv r26d IID9498 - __ idivl(r27); // idiv r27d IID9499 - __ idivl(r28); // idiv r28d IID9500 - __ idivl(r29); // idiv r29d IID9501 - __ idivl(r30); // idiv r30d IID9502 - __ idivl(r31); // idiv r31d IID9503 -#endif // _LP64 - __ imull(rcx); // imul ecx IID9504 - __ imull(rdx); // imul edx IID9505 - __ imull(rbx); // imul ebx IID9506 -#ifdef _LP64 - __ imull(r8); // imul r8d IID9507 - __ imull(r9); // imul r9d IID9508 - __ imull(r10); // imul r10d IID9509 - __ imull(r11); // imul r11d IID9510 - __ imull(r12); // imul r12d IID9511 - __ imull(r13); // imul r13d IID9512 - __ imull(r14); // imul r14d IID9513 - __ imull(r15); // imul r15d IID9514 - __ imull(r16); // imul r16d IID9515 - __ imull(r17); // imul r17d IID9516 - __ imull(r18); // imul r18d IID9517 - __ imull(r19); // imul r19d IID9518 - __ imull(r20); // imul r20d IID9519 - __ imull(r21); // imul r21d IID9520 - __ imull(r22); // imul r22d IID9521 - __ imull(r23); // imul r23d IID9522 - __ imull(r24); // imul r24d IID9523 - __ imull(r25); // imul r25d IID9524 - __ imull(r26); // imul r26d IID9525 - __ imull(r27); // imul r27d IID9526 - __ imull(r28); // imul r28d IID9527 - __ imull(r29); // imul r29d IID9528 - __ imull(r30); // imul r30d IID9529 - __ imull(r31); // imul r31d IID9530 -#endif // _LP64 - __ mull(rcx); // mul ecx IID9531 - __ mull(rdx); // mul edx IID9532 - __ mull(rbx); // mul ebx IID9533 -#ifdef _LP64 - __ mull(r8); // mul r8d IID9534 - __ mull(r9); // mul r9d IID9535 - __ mull(r10); // mul r10d IID9536 - __ mull(r11); // mul r11d IID9537 - __ mull(r12); // mul r12d IID9538 - __ mull(r13); // mul r13d IID9539 - __ mull(r14); // mul r14d IID9540 - __ mull(r15); // mul r15d IID9541 - __ mull(r16); // mul r16d IID9542 - __ mull(r17); // mul r17d IID9543 - __ mull(r18); // mul r18d IID9544 - __ mull(r19); // mul r19d IID9545 - __ mull(r20); // mul r20d IID9546 - __ mull(r21); // mul r21d IID9547 - __ mull(r22); // mul r22d IID9548 - __ mull(r23); // mul r23d IID9549 - __ mull(r24); // mul r24d IID9550 - __ mull(r25); // mul r25d IID9551 - __ mull(r26); // mul r26d IID9552 - __ mull(r27); // mul r27d IID9553 - __ mull(r28); // mul r28d IID9554 - __ mull(r29); // mul r29d IID9555 - __ mull(r30); // mul r30d IID9556 - __ mull(r31); // mul r31d IID9557 -#endif // _LP64 - __ negl(rcx); // neg ecx IID9558 - __ negl(rdx); // neg edx IID9559 - __ negl(rbx); // neg ebx IID9560 -#ifdef _LP64 - __ negl(r8); // neg r8d IID9561 - __ negl(r9); // neg r9d IID9562 - __ negl(r10); // neg r10d IID9563 - __ negl(r11); // neg r11d IID9564 - __ negl(r12); // neg r12d IID9565 - __ negl(r13); // neg r13d IID9566 - __ negl(r14); // neg r14d IID9567 - __ negl(r15); // neg r15d IID9568 - __ negl(r16); // neg r16d IID9569 - __ negl(r17); // neg r17d IID9570 - __ negl(r18); // neg r18d IID9571 - __ negl(r19); // neg r19d IID9572 - __ negl(r20); // neg r20d IID9573 - __ negl(r21); // neg r21d IID9574 - __ negl(r22); // neg r22d IID9575 - __ negl(r23); // neg r23d IID9576 - __ negl(r24); // neg r24d IID9577 - __ negl(r25); // neg r25d IID9578 - __ negl(r26); // neg r26d IID9579 - __ negl(r27); // neg r27d IID9580 - __ negl(r28); // neg r28d IID9581 - __ negl(r29); // neg r29d IID9582 - __ negl(r30); // neg r30d IID9583 - __ negl(r31); // neg r31d IID9584 -#endif // _LP64 - __ notl(rcx); // not ecx IID9585 - __ notl(rdx); // not edx IID9586 - __ notl(rbx); // not ebx IID9587 -#ifdef _LP64 - __ notl(r8); // not r8d IID9588 - __ notl(r9); // not r9d IID9589 - __ notl(r10); // not r10d IID9590 - __ notl(r11); // not r11d IID9591 - __ notl(r12); // not r12d IID9592 - __ notl(r13); // not r13d IID9593 - __ notl(r14); // not r14d IID9594 - __ notl(r15); // not r15d IID9595 - __ notl(r16); // not r16d IID9596 - __ notl(r17); // not r17d IID9597 - __ notl(r18); // not r18d IID9598 - __ notl(r19); // not r19d IID9599 - __ notl(r20); // not r20d IID9600 - __ notl(r21); // not r21d IID9601 - __ notl(r22); // not r22d IID9602 - __ notl(r23); // not r23d IID9603 - __ notl(r24); // not r24d IID9604 - __ notl(r25); // not r25d IID9605 - __ notl(r26); // not r26d IID9606 - __ notl(r27); // not r27d IID9607 - __ notl(r28); // not r28d IID9608 - __ notl(r29); // not r29d IID9609 - __ notl(r30); // not r30d IID9610 - __ notl(r31); // not r31d IID9611 -#endif // _LP64 - __ roll(rcx); // rol ecx, cl IID9612 - __ roll(rdx); // rol edx, cl IID9613 - __ roll(rbx); // rol ebx, cl IID9614 -#ifdef _LP64 - __ roll(r8); // rol r8d, cl IID9615 - __ roll(r9); // rol r9d, cl IID9616 - __ roll(r10); // rol r10d, cl IID9617 - __ roll(r11); // rol r11d, cl IID9618 - __ roll(r12); // rol r12d, cl IID9619 - __ roll(r13); // rol r13d, cl IID9620 - __ roll(r14); // rol r14d, cl IID9621 - __ roll(r15); // rol r15d, cl IID9622 - __ roll(r16); // rol r16d, cl IID9623 - __ roll(r17); // rol r17d, cl IID9624 - __ roll(r18); // rol r18d, cl IID9625 - __ roll(r19); // rol r19d, cl IID9626 - __ roll(r20); // rol r20d, cl IID9627 - __ roll(r21); // rol r21d, cl IID9628 - __ roll(r22); // rol r22d, cl IID9629 - __ roll(r23); // rol r23d, cl IID9630 - __ roll(r24); // rol r24d, cl IID9631 - __ roll(r25); // rol r25d, cl IID9632 - __ roll(r26); // rol r26d, cl IID9633 - __ roll(r27); // rol r27d, cl IID9634 - __ roll(r28); // rol r28d, cl IID9635 - __ roll(r29); // rol r29d, cl IID9636 - __ roll(r30); // rol r30d, cl IID9637 - __ roll(r31); // rol r31d, cl IID9638 -#endif // _LP64 - __ rorl(rcx); // ror ecx, cl IID9639 - __ rorl(rdx); // ror edx, cl IID9640 - __ rorl(rbx); // ror ebx, cl IID9641 -#ifdef _LP64 - __ rorl(r8); // ror r8d, cl IID9642 - __ rorl(r9); // ror r9d, cl IID9643 - __ rorl(r10); // ror r10d, cl IID9644 - __ rorl(r11); // ror r11d, cl IID9645 - __ rorl(r12); // ror r12d, cl IID9646 - __ rorl(r13); // ror r13d, cl IID9647 - __ rorl(r14); // ror r14d, cl IID9648 - __ rorl(r15); // ror r15d, cl IID9649 - __ rorl(r16); // ror r16d, cl IID9650 - __ rorl(r17); // ror r17d, cl IID9651 - __ rorl(r18); // ror r18d, cl IID9652 - __ rorl(r19); // ror r19d, cl IID9653 - __ rorl(r20); // ror r20d, cl IID9654 - __ rorl(r21); // ror r21d, cl IID9655 - __ rorl(r22); // ror r22d, cl IID9656 - __ rorl(r23); // ror r23d, cl IID9657 - __ rorl(r24); // ror r24d, cl IID9658 - __ rorl(r25); // ror r25d, cl IID9659 - __ rorl(r26); // ror r26d, cl IID9660 - __ rorl(r27); // ror r27d, cl IID9661 - __ rorl(r28); // ror r28d, cl IID9662 - __ rorl(r29); // ror r29d, cl IID9663 - __ rorl(r30); // ror r30d, cl IID9664 - __ rorl(r31); // ror r31d, cl IID9665 -#endif // _LP64 - __ sarl(rcx); // sar ecx, cl IID9666 - __ sarl(rdx); // sar edx, cl IID9667 - __ sarl(rbx); // sar ebx, cl IID9668 -#ifdef _LP64 - __ sarl(r8); // sar r8d, cl IID9669 - __ sarl(r9); // sar r9d, cl IID9670 - __ sarl(r10); // sar r10d, cl IID9671 - __ sarl(r11); // sar r11d, cl IID9672 - __ sarl(r12); // sar r12d, cl IID9673 - __ sarl(r13); // sar r13d, cl IID9674 - __ sarl(r14); // sar r14d, cl IID9675 - __ sarl(r15); // sar r15d, cl IID9676 - __ sarl(r16); // sar r16d, cl IID9677 - __ sarl(r17); // sar r17d, cl IID9678 - __ sarl(r18); // sar r18d, cl IID9679 - __ sarl(r19); // sar r19d, cl IID9680 - __ sarl(r20); // sar r20d, cl IID9681 - __ sarl(r21); // sar r21d, cl IID9682 - __ sarl(r22); // sar r22d, cl IID9683 - __ sarl(r23); // sar r23d, cl IID9684 - __ sarl(r24); // sar r24d, cl IID9685 - __ sarl(r25); // sar r25d, cl IID9686 - __ sarl(r26); // sar r26d, cl IID9687 - __ sarl(r27); // sar r27d, cl IID9688 - __ sarl(r28); // sar r28d, cl IID9689 - __ sarl(r29); // sar r29d, cl IID9690 - __ sarl(r30); // sar r30d, cl IID9691 - __ sarl(r31); // sar r31d, cl IID9692 -#endif // _LP64 - __ sall(rcx); // sal ecx, cl IID9693 - __ sall(rdx); // sal edx, cl IID9694 - __ sall(rbx); // sal ebx, cl IID9695 -#ifdef _LP64 - __ sall(r8); // sal r8d, cl IID9696 - __ sall(r9); // sal r9d, cl IID9697 - __ sall(r10); // sal r10d, cl IID9698 - __ sall(r11); // sal r11d, cl IID9699 - __ sall(r12); // sal r12d, cl IID9700 - __ sall(r13); // sal r13d, cl IID9701 - __ sall(r14); // sal r14d, cl IID9702 - __ sall(r15); // sal r15d, cl IID9703 - __ sall(r16); // sal r16d, cl IID9704 - __ sall(r17); // sal r17d, cl IID9705 - __ sall(r18); // sal r18d, cl IID9706 - __ sall(r19); // sal r19d, cl IID9707 - __ sall(r20); // sal r20d, cl IID9708 - __ sall(r21); // sal r21d, cl IID9709 - __ sall(r22); // sal r22d, cl IID9710 - __ sall(r23); // sal r23d, cl IID9711 - __ sall(r24); // sal r24d, cl IID9712 - __ sall(r25); // sal r25d, cl IID9713 - __ sall(r26); // sal r26d, cl IID9714 - __ sall(r27); // sal r27d, cl IID9715 - __ sall(r28); // sal r28d, cl IID9716 - __ sall(r29); // sal r29d, cl IID9717 - __ sall(r30); // sal r30d, cl IID9718 - __ sall(r31); // sal r31d, cl IID9719 -#endif // _LP64 - __ shll(rcx); // shl ecx, cl IID9720 - __ shll(rdx); // shl edx, cl IID9721 - __ shll(rbx); // shl ebx, cl IID9722 -#ifdef _LP64 - __ shll(r8); // shl r8d, cl IID9723 - __ shll(r9); // shl r9d, cl IID9724 - __ shll(r10); // shl r10d, cl IID9725 - __ shll(r11); // shl r11d, cl IID9726 - __ shll(r12); // shl r12d, cl IID9727 - __ shll(r13); // shl r13d, cl IID9728 - __ shll(r14); // shl r14d, cl IID9729 - __ shll(r15); // shl r15d, cl IID9730 - __ shll(r16); // shl r16d, cl IID9731 - __ shll(r17); // shl r17d, cl IID9732 - __ shll(r18); // shl r18d, cl IID9733 - __ shll(r19); // shl r19d, cl IID9734 - __ shll(r20); // shl r20d, cl IID9735 - __ shll(r21); // shl r21d, cl IID9736 - __ shll(r22); // shl r22d, cl IID9737 - __ shll(r23); // shl r23d, cl IID9738 - __ shll(r24); // shl r24d, cl IID9739 - __ shll(r25); // shl r25d, cl IID9740 - __ shll(r26); // shl r26d, cl IID9741 - __ shll(r27); // shl r27d, cl IID9742 - __ shll(r28); // shl r28d, cl IID9743 - __ shll(r29); // shl r29d, cl IID9744 - __ shll(r30); // shl r30d, cl IID9745 - __ shll(r31); // shl r31d, cl IID9746 -#endif // _LP64 - __ shrl(rcx); // shr ecx, cl IID9747 - __ shrl(rdx); // shr edx, cl IID9748 - __ shrl(rbx); // shr ebx, cl IID9749 -#ifdef _LP64 - __ shrl(r8); // shr r8d, cl IID9750 - __ shrl(r9); // shr r9d, cl IID9751 - __ shrl(r10); // shr r10d, cl IID9752 - __ shrl(r11); // shr r11d, cl IID9753 - __ shrl(r12); // shr r12d, cl IID9754 - __ shrl(r13); // shr r13d, cl IID9755 - __ shrl(r14); // shr r14d, cl IID9756 - __ shrl(r15); // shr r15d, cl IID9757 - __ shrl(r16); // shr r16d, cl IID9758 - __ shrl(r17); // shr r17d, cl IID9759 - __ shrl(r18); // shr r18d, cl IID9760 - __ shrl(r19); // shr r19d, cl IID9761 - __ shrl(r20); // shr r20d, cl IID9762 - __ shrl(r21); // shr r21d, cl IID9763 - __ shrl(r22); // shr r22d, cl IID9764 - __ shrl(r23); // shr r23d, cl IID9765 - __ shrl(r24); // shr r24d, cl IID9766 - __ shrl(r25); // shr r25d, cl IID9767 - __ shrl(r26); // shr r26d, cl IID9768 - __ shrl(r27); // shr r27d, cl IID9769 - __ shrl(r28); // shr r28d, cl IID9770 - __ shrl(r29); // shr r29d, cl IID9771 - __ shrl(r30); // shr r30d, cl IID9772 - __ shrl(r31); // shr r31d, cl IID9773 -#endif // _LP64 - __ incrementl(rcx); // inc ecx IID9774 - __ incrementl(rdx); // inc edx IID9775 - __ incrementl(rbx); // inc ebx IID9776 -#ifdef _LP64 - __ incrementl(r8); // inc r8d IID9777 - __ incrementl(r9); // inc r9d IID9778 - __ incrementl(r10); // inc r10d IID9779 - __ incrementl(r11); // inc r11d IID9780 - __ incrementl(r12); // inc r12d IID9781 - __ incrementl(r13); // inc r13d IID9782 - __ incrementl(r14); // inc r14d IID9783 - __ incrementl(r15); // inc r15d IID9784 - __ incrementl(r16); // inc r16d IID9785 - __ incrementl(r17); // inc r17d IID9786 - __ incrementl(r18); // inc r18d IID9787 - __ incrementl(r19); // inc r19d IID9788 - __ incrementl(r20); // inc r20d IID9789 - __ incrementl(r21); // inc r21d IID9790 - __ incrementl(r22); // inc r22d IID9791 - __ incrementl(r23); // inc r23d IID9792 - __ incrementl(r24); // inc r24d IID9793 - __ incrementl(r25); // inc r25d IID9794 - __ incrementl(r26); // inc r26d IID9795 - __ incrementl(r27); // inc r27d IID9796 - __ incrementl(r28); // inc r28d IID9797 - __ incrementl(r29); // inc r29d IID9798 - __ incrementl(r30); // inc r30d IID9799 - __ incrementl(r31); // inc r31d IID9800 -#endif // _LP64 - __ decrementl(rcx); // dec ecx IID9801 - __ decrementl(rdx); // dec edx IID9802 - __ decrementl(rbx); // dec ebx IID9803 -#ifdef _LP64 - __ decrementl(r8); // dec r8d IID9804 - __ decrementl(r9); // dec r9d IID9805 - __ decrementl(r10); // dec r10d IID9806 - __ decrementl(r11); // dec r11d IID9807 - __ decrementl(r12); // dec r12d IID9808 - __ decrementl(r13); // dec r13d IID9809 - __ decrementl(r14); // dec r14d IID9810 - __ decrementl(r15); // dec r15d IID9811 - __ decrementl(r16); // dec r16d IID9812 - __ decrementl(r17); // dec r17d IID9813 - __ decrementl(r18); // dec r18d IID9814 - __ decrementl(r19); // dec r19d IID9815 - __ decrementl(r20); // dec r20d IID9816 - __ decrementl(r21); // dec r21d IID9817 - __ decrementl(r22); // dec r22d IID9818 - __ decrementl(r23); // dec r23d IID9819 - __ decrementl(r24); // dec r24d IID9820 - __ decrementl(r25); // dec r25d IID9821 - __ decrementl(r26); // dec r26d IID9822 - __ decrementl(r27); // dec r27d IID9823 - __ decrementl(r28); // dec r28d IID9824 - __ decrementl(r29); // dec r29d IID9825 - __ decrementl(r30); // dec r30d IID9826 - __ decrementl(r31); // dec r31d IID9827 -#endif // _LP64 - __ mull(Address(rcx, rdx, (Address::ScaleFactor)3, -0x3df2bfc7)); // mul dword ptr [rcx+rdx*8-0x3df2bfc7] IID9828 - __ mull(Address(rdx, rbx, (Address::ScaleFactor)2, -0x5cea8ac)); // mul dword ptr [rdx+rbx*4-0x5cea8ac] IID9829 -#ifdef _LP64 - __ mull(Address(rbx, +0x347dec3)); // mul dword ptr [rbx+0x347dec3] IID9830 - __ mull(Address(r8, r9, (Address::ScaleFactor)0, -0x68f66a6b)); // mul dword ptr [r8+r9*1-0x68f66a6b] IID9831 - __ mull(Address(r9, r10, (Address::ScaleFactor)2, -0x10b8d5a3)); // mul dword ptr [r9+r10*4-0x10b8d5a3] IID9832 - __ mull(Address(r10, +0x6f9fc094)); // mul dword ptr [r10+0x6f9fc094] IID9833 - __ mull(Address(r11, r12, (Address::ScaleFactor)0, -0x711dc3ad)); // mul dword ptr [r11+r12*1-0x711dc3ad] IID9834 - __ mull(Address(r12, r13, (Address::ScaleFactor)1, -0x734a56)); // mul dword ptr [r12+r13*2-0x734a56] IID9835 - __ mull(Address(r13, r14, (Address::ScaleFactor)3, -0x5f88dde7)); // mul dword ptr [r13+r14*8-0x5f88dde7] IID9836 - __ mull(Address(r14, r15, (Address::ScaleFactor)3, +0x4722c741)); // mul dword ptr [r14+r15*8+0x4722c741] IID9837 - __ mull(Address(r15, r16, (Address::ScaleFactor)3, +0x57e24e00)); // mul dword ptr [r15+r16*8+0x57e24e00] IID9838 - __ mull(Address(r16, r17, (Address::ScaleFactor)2, -0x6a865b41)); // mul dword ptr [r16+r17*4-0x6a865b41] IID9839 - __ mull(Address(r17, r18, (Address::ScaleFactor)3, +0x61c7608)); // mul dword ptr [r17+r18*8+0x61c7608] IID9840 - __ mull(Address(r18, r19, (Address::ScaleFactor)0, -0x6eb8db8d)); // mul dword ptr [r18+r19*1-0x6eb8db8d] IID9841 - __ mull(Address(r19, r20, (Address::ScaleFactor)1, +0x6f50889e)); // mul dword ptr [r19+r20*2+0x6f50889e] IID9842 - __ mull(Address(r20, r21, (Address::ScaleFactor)0, +0x3de3fcb0)); // mul dword ptr [r20+r21*1+0x3de3fcb0] IID9843 - __ mull(Address(r21, r22, (Address::ScaleFactor)0, +0x3ff1f288)); // mul dword ptr [r21+r22*1+0x3ff1f288] IID9844 - __ mull(Address(r22, r23, (Address::ScaleFactor)0, +0x147a7dbc)); // mul dword ptr [r22+r23*1+0x147a7dbc] IID9845 - __ mull(Address(r23, r24, (Address::ScaleFactor)3, -0x320e8d6a)); // mul dword ptr [r23+r24*8-0x320e8d6a] IID9846 - __ mull(Address(r24, r25, (Address::ScaleFactor)0, -0x79876f6b)); // mul dword ptr [r24+r25*1-0x79876f6b] IID9847 - __ mull(Address(r25, r26, (Address::ScaleFactor)1, -0x2fd29871)); // mul dword ptr [r25+r26*2-0x2fd29871] IID9848 - __ mull(Address(r26, r27, (Address::ScaleFactor)1, +0x1afb018d)); // mul dword ptr [r26+r27*2+0x1afb018d] IID9849 - __ mull(Address(r27, r28, (Address::ScaleFactor)2, +0x4d044dfc)); // mul dword ptr [r27+r28*4+0x4d044dfc] IID9850 - __ mull(Address(r28, r29, (Address::ScaleFactor)0, +0x1530f3ad)); // mul dword ptr [r28+r29*1+0x1530f3ad] IID9851 - __ mull(Address(r29, r30, (Address::ScaleFactor)0, +0xeb076f2)); // mul dword ptr [r29+r30*1+0xeb076f2] IID9852 - __ mull(Address(r30, r31, (Address::ScaleFactor)3, -0x782b0085)); // mul dword ptr [r30+r31*8-0x782b0085] IID9853 - __ mull(Address(r31, rcx, (Address::ScaleFactor)2, -0x10c89837)); // mul dword ptr [r31+rcx*4-0x10c89837] IID9854 -#endif // _LP64 - __ negl(Address(rcx, rdx, (Address::ScaleFactor)3, -0x58ce529e)); // neg dword ptr [rcx+rdx*8-0x58ce529e] IID9855 - __ negl(Address(rdx, +0x5ab7f655)); // neg dword ptr [rdx+0x5ab7f655] IID9856 -#ifdef _LP64 - __ negl(Address(rbx, r8, (Address::ScaleFactor)1, -0x1d07ad5b)); // neg dword ptr [rbx+r8*2-0x1d07ad5b] IID9857 - __ negl(Address(r8, r9, (Address::ScaleFactor)3, -0x26560885)); // neg dword ptr [r8+r9*8-0x26560885] IID9858 - __ negl(Address(r9, r10, (Address::ScaleFactor)1, +0x3641fdb9)); // neg dword ptr [r9+r10*2+0x3641fdb9] IID9859 - __ negl(Address(r10, r11, (Address::ScaleFactor)1, +0x490749fb)); // neg dword ptr [r10+r11*2+0x490749fb] IID9860 - __ negl(Address(r11, r12, (Address::ScaleFactor)1, +0x2df53f96)); // neg dword ptr [r11+r12*2+0x2df53f96] IID9861 - __ negl(Address(r12, r13, (Address::ScaleFactor)3, -0x26ba64f2)); // neg dword ptr [r12+r13*8-0x26ba64f2] IID9862 - __ negl(Address(r13, r14, (Address::ScaleFactor)3, -0x4b4358ba)); // neg dword ptr [r13+r14*8-0x4b4358ba] IID9863 - __ negl(Address(r14, r15, (Address::ScaleFactor)2, +0x31c6340a)); // neg dword ptr [r14+r15*4+0x31c6340a] IID9864 - __ negl(Address(r15, r16, (Address::ScaleFactor)3, +0x591014e4)); // neg dword ptr [r15+r16*8+0x591014e4] IID9865 - __ negl(Address(r16, -0x2ad92ed1)); // neg dword ptr [r16-0x2ad92ed1] IID9866 - __ negl(Address(r17, +0x9538e)); // neg dword ptr [r17+0x9538e] IID9867 - __ negl(Address(r18, r19, (Address::ScaleFactor)3, -0x4b1a1378)); // neg dword ptr [r18+r19*8-0x4b1a1378] IID9868 - __ negl(Address(r19, r20, (Address::ScaleFactor)2, -0x3f0ceb96)); // neg dword ptr [r19+r20*4-0x3f0ceb96] IID9869 - __ negl(Address(r20, r21, (Address::ScaleFactor)1, -0x3228931a)); // neg dword ptr [r20+r21*2-0x3228931a] IID9870 - __ negl(Address(r21, r22, (Address::ScaleFactor)3, +0x4f832d6f)); // neg dword ptr [r21+r22*8+0x4f832d6f] IID9871 - __ negl(Address(r22, r23, (Address::ScaleFactor)2, +0x21ba6afb)); // neg dword ptr [r22+r23*4+0x21ba6afb] IID9872 - __ negl(Address(r23, r24, (Address::ScaleFactor)1, +0x31a8215a)); // neg dword ptr [r23+r24*2+0x31a8215a] IID9873 - __ negl(Address(r24, -0x400e7d1f)); // neg dword ptr [r24-0x400e7d1f] IID9874 - __ negl(Address(r25, r26, (Address::ScaleFactor)2, +0x26e75b99)); // neg dword ptr [r25+r26*4+0x26e75b99] IID9875 - __ negl(Address(r26, r27, (Address::ScaleFactor)1, -0x5798a11d)); // neg dword ptr [r26+r27*2-0x5798a11d] IID9876 - __ negl(Address(r27, r28, (Address::ScaleFactor)2, -0x74f15e13)); // neg dword ptr [r27+r28*4-0x74f15e13] IID9877 - __ negl(Address(r28, r29, (Address::ScaleFactor)1, -0x32a2882)); // neg dword ptr [r28+r29*2-0x32a2882] IID9878 - __ negl(Address(r29, +0x5033c0c8)); // neg dword ptr [r29+0x5033c0c8] IID9879 - __ negl(Address(r30, r31, (Address::ScaleFactor)2, +0x7323649e)); // neg dword ptr [r30+r31*4+0x7323649e] IID9880 - __ negl(Address(r31, rcx, (Address::ScaleFactor)2, +0x190f3c36)); // neg dword ptr [r31+rcx*4+0x190f3c36] IID9881 -#endif // _LP64 - __ sarl(Address(rcx, -0x71b58116)); // sar dword ptr [rcx-0x71b58116], cl IID9882 - __ sarl(Address(rdx, rbx, (Address::ScaleFactor)2, -0x5a6a80d7)); // sar dword ptr [rdx+rbx*4-0x5a6a80d7], cl IID9883 -#ifdef _LP64 - __ sarl(Address(rbx, r8, (Address::ScaleFactor)0, -0x230c22c3)); // sar dword ptr [rbx+r8*1-0x230c22c3], cl IID9884 - __ sarl(Address(r8, r9, (Address::ScaleFactor)0, -0x1f32082)); // sar dword ptr [r8+r9*1-0x1f32082], cl IID9885 - __ sarl(Address(r9, -0x5a730724)); // sar dword ptr [r9-0x5a730724], cl IID9886 - __ sarl(Address(r10, r11, (Address::ScaleFactor)1, -0x49589fa1)); // sar dword ptr [r10+r11*2-0x49589fa1], cl IID9887 - __ sarl(Address(r11, r12, (Address::ScaleFactor)0, +0x42de7e5a)); // sar dword ptr [r11+r12*1+0x42de7e5a], cl IID9888 - __ sarl(Address(r12, r13, (Address::ScaleFactor)3, +0x56f25420)); // sar dword ptr [r12+r13*8+0x56f25420], cl IID9889 - __ sarl(Address(r13, r14, (Address::ScaleFactor)0, -0x4ab8224)); // sar dword ptr [r13+r14*1-0x4ab8224], cl IID9890 - __ sarl(Address(r14, r15, (Address::ScaleFactor)3, +0x10e7949f)); // sar dword ptr [r14+r15*8+0x10e7949f], cl IID9891 - __ sarl(Address(r15, r16, (Address::ScaleFactor)1, +0x67be6170)); // sar dword ptr [r15+r16*2+0x67be6170], cl IID9892 - __ sarl(Address(r16, r17, (Address::ScaleFactor)1, -0x7c10b541)); // sar dword ptr [r16+r17*2-0x7c10b541], cl IID9893 - __ sarl(Address(r17, r18, (Address::ScaleFactor)0, +0x253afde9)); // sar dword ptr [r17+r18*1+0x253afde9], cl IID9894 - __ sarl(Address(r18, r19, (Address::ScaleFactor)1, -0x62ec1761)); // sar dword ptr [r18+r19*2-0x62ec1761], cl IID9895 - __ sarl(Address(r19, r20, (Address::ScaleFactor)3, -0x68fa3500)); // sar dword ptr [r19+r20*8-0x68fa3500], cl IID9896 - __ sarl(Address(r20, r21, (Address::ScaleFactor)0, -0x49b416f6)); // sar dword ptr [r20+r21*1-0x49b416f6], cl IID9897 - __ sarl(Address(r21, +0x10fea502)); // sar dword ptr [r21+0x10fea502], cl IID9898 - __ sarl(Address(r22, +0x16bfc933)); // sar dword ptr [r22+0x16bfc933], cl IID9899 - __ sarl(Address(r23, r24, (Address::ScaleFactor)1, +0x6617ec3)); // sar dword ptr [r23+r24*2+0x6617ec3], cl IID9900 - __ sarl(Address(r24, r25, (Address::ScaleFactor)2, +0x6e02093c)); // sar dword ptr [r24+r25*4+0x6e02093c], cl IID9901 - __ sarl(Address(r25, +0x2e0b016)); // sar dword ptr [r25+0x2e0b016], cl IID9902 - __ sarl(Address(r26, +0x623c5471)); // sar dword ptr [r26+0x623c5471], cl IID9903 - __ sarl(Address(r27, r28, (Address::ScaleFactor)2, -0xfd9e447)); // sar dword ptr [r27+r28*4-0xfd9e447], cl IID9904 - __ sarl(Address(r28, r29, (Address::ScaleFactor)2, -0x7b056085)); // sar dword ptr [r28+r29*4-0x7b056085], cl IID9905 - __ sarl(Address(r29, r30, (Address::ScaleFactor)2, +0x2f254b28)); // sar dword ptr [r29+r30*4+0x2f254b28], cl IID9906 - __ sarl(Address(r30, r31, (Address::ScaleFactor)2, +0x7b0fa4a4)); // sar dword ptr [r30+r31*4+0x7b0fa4a4], cl IID9907 - __ sarl(Address(r31, rcx, (Address::ScaleFactor)0, -0x6c989934)); // sar dword ptr [r31+rcx*1-0x6c989934], cl IID9908 -#endif // _LP64 - __ sall(Address(rcx, rdx, (Address::ScaleFactor)0, +0x2838adf)); // sal dword ptr [rcx+rdx*1+0x2838adf], cl IID9909 - __ sall(Address(rdx, -0x47ad0a19)); // sal dword ptr [rdx-0x47ad0a19], cl IID9910 -#ifdef _LP64 - __ sall(Address(rbx, r8, (Address::ScaleFactor)2, +0x3d8e5ed3)); // sal dword ptr [rbx+r8*4+0x3d8e5ed3], cl IID9911 - __ sall(Address(r8, r9, (Address::ScaleFactor)3, +0x2f0bc22d)); // sal dword ptr [r8+r9*8+0x2f0bc22d], cl IID9912 - __ sall(Address(r9, r10, (Address::ScaleFactor)1, +0x14ea0e7)); // sal dword ptr [r9+r10*2+0x14ea0e7], cl IID9913 - __ sall(Address(r10, r11, (Address::ScaleFactor)0, +0x3ad9c898)); // sal dword ptr [r10+r11*1+0x3ad9c898], cl IID9914 - __ sall(Address(r11, +0x7b472cc8)); // sal dword ptr [r11+0x7b472cc8], cl IID9915 - __ sall(Address(r12, r13, (Address::ScaleFactor)2, -0x6003a15)); // sal dword ptr [r12+r13*4-0x6003a15], cl IID9916 - __ sall(Address(r13, r14, (Address::ScaleFactor)1, +0x15604014)); // sal dword ptr [r13+r14*2+0x15604014], cl IID9917 - __ sall(Address(r14, -0x19837bc3)); // sal dword ptr [r14-0x19837bc3], cl IID9918 - __ sall(Address(r15, -0x15b06804)); // sal dword ptr [r15-0x15b06804], cl IID9919 - __ sall(Address(r16, -0x3efd9d36)); // sal dword ptr [r16-0x3efd9d36], cl IID9920 - __ sall(Address(r17, r18, (Address::ScaleFactor)3, -0x148eafef)); // sal dword ptr [r17+r18*8-0x148eafef], cl IID9921 - __ sall(Address(r18, r19, (Address::ScaleFactor)1, +0x28d50261)); // sal dword ptr [r18+r19*2+0x28d50261], cl IID9922 - __ sall(Address(r19, r20, (Address::ScaleFactor)1, -0x295f79ad)); // sal dword ptr [r19+r20*2-0x295f79ad], cl IID9923 - __ sall(Address(r20, r21, (Address::ScaleFactor)2, -0x420e0872)); // sal dword ptr [r20+r21*4-0x420e0872], cl IID9924 - __ sall(Address(r21, +0x3b52d1ff)); // sal dword ptr [r21+0x3b52d1ff], cl IID9925 - __ sall(Address(r22, r23, (Address::ScaleFactor)0, +0x3c1aaeb2)); // sal dword ptr [r22+r23*1+0x3c1aaeb2], cl IID9926 - __ sall(Address(r23, r24, (Address::ScaleFactor)1, -0x7462e507)); // sal dword ptr [r23+r24*2-0x7462e507], cl IID9927 - __ sall(Address(r24, r25, (Address::ScaleFactor)1, +0x5ee2116e)); // sal dword ptr [r24+r25*2+0x5ee2116e], cl IID9928 - __ sall(Address(r25, r26, (Address::ScaleFactor)0, -0x47316676)); // sal dword ptr [r25+r26*1-0x47316676], cl IID9929 - __ sall(Address(r26, +0x356024d3)); // sal dword ptr [r26+0x356024d3], cl IID9930 - __ sall(Address(r27, r28, (Address::ScaleFactor)3, +0x708bc069)); // sal dword ptr [r27+r28*8+0x708bc069], cl IID9931 - __ sall(Address(r28, r29, (Address::ScaleFactor)2, +0x494d5c5f)); // sal dword ptr [r28+r29*4+0x494d5c5f], cl IID9932 - __ sall(Address(r29, r30, (Address::ScaleFactor)1, +0x6ddbf905)); // sal dword ptr [r29+r30*2+0x6ddbf905], cl IID9933 - __ sall(Address(r30, r31, (Address::ScaleFactor)2, +0x4e0c618d)); // sal dword ptr [r30+r31*4+0x4e0c618d], cl IID9934 - __ sall(Address(r31, rcx, (Address::ScaleFactor)1, +0x4ca33044)); // sal dword ptr [r31+rcx*2+0x4ca33044], cl IID9935 -#endif // _LP64 - __ shrl(Address(rcx, rdx, (Address::ScaleFactor)3, -0x70f4bafd)); // shr dword ptr [rcx+rdx*8-0x70f4bafd], cl IID9936 - __ shrl(Address(rdx, rbx, (Address::ScaleFactor)0, +0x2e2e83e1)); // shr dword ptr [rdx+rbx*1+0x2e2e83e1], cl IID9937 -#ifdef _LP64 - __ shrl(Address(rbx, r8, (Address::ScaleFactor)3, +0x12b7973b)); // shr dword ptr [rbx+r8*8+0x12b7973b], cl IID9938 - __ shrl(Address(r8, r9, (Address::ScaleFactor)2, -0x1a0b3ee)); // shr dword ptr [r8+r9*4-0x1a0b3ee], cl IID9939 - __ shrl(Address(r9, -0x5d9befb5)); // shr dword ptr [r9-0x5d9befb5], cl IID9940 - __ shrl(Address(r10, r11, (Address::ScaleFactor)2, -0xb79e1cf)); // shr dword ptr [r10+r11*4-0xb79e1cf], cl IID9941 - __ shrl(Address(r11, -0x1b042a2a)); // shr dword ptr [r11-0x1b042a2a], cl IID9942 - __ shrl(Address(r12, +0x1cdbfb58)); // shr dword ptr [r12+0x1cdbfb58], cl IID9943 - __ shrl(Address(r13, r14, (Address::ScaleFactor)2, -0x3e1ee2ae)); // shr dword ptr [r13+r14*4-0x3e1ee2ae], cl IID9944 - __ shrl(Address(r14, r15, (Address::ScaleFactor)2, +0x3136c9ff)); // shr dword ptr [r14+r15*4+0x3136c9ff], cl IID9945 - __ shrl(Address(r15, r16, (Address::ScaleFactor)0, +0x6c9d9134)); // shr dword ptr [r15+r16*1+0x6c9d9134], cl IID9946 - __ shrl(Address(r16, r17, (Address::ScaleFactor)0, -0x77348098)); // shr dword ptr [r16+r17*1-0x77348098], cl IID9947 - __ shrl(Address(r17, r18, (Address::ScaleFactor)0, -0x4471442d)); // shr dword ptr [r17+r18*1-0x4471442d], cl IID9948 - __ shrl(Address(r18, r19, (Address::ScaleFactor)0, +0x310042ee)); // shr dword ptr [r18+r19*1+0x310042ee], cl IID9949 - __ shrl(Address(r19, r20, (Address::ScaleFactor)1, -0x2213480a)); // shr dword ptr [r19+r20*2-0x2213480a], cl IID9950 - __ shrl(Address(r20, r21, (Address::ScaleFactor)1, -0x4140b4c0)); // shr dword ptr [r20+r21*2-0x4140b4c0], cl IID9951 - __ shrl(Address(r21, r22, (Address::ScaleFactor)2, -0x20c1ef41)); // shr dword ptr [r21+r22*4-0x20c1ef41], cl IID9952 - __ shrl(Address(r22, r23, (Address::ScaleFactor)2, -0x781e8d46)); // shr dword ptr [r22+r23*4-0x781e8d46], cl IID9953 - __ shrl(Address(r23, r24, (Address::ScaleFactor)3, -0x8766308)); // shr dword ptr [r23+r24*8-0x8766308], cl IID9954 - __ shrl(Address(r24, r25, (Address::ScaleFactor)3, +0x209fe273)); // shr dword ptr [r24+r25*8+0x209fe273], cl IID9955 - __ shrl(Address(r25, r26, (Address::ScaleFactor)1, -0x5ef42e15)); // shr dword ptr [r25+r26*2-0x5ef42e15], cl IID9956 - __ shrl(Address(r26, r27, (Address::ScaleFactor)0, -0x2191c3e2)); // shr dword ptr [r26+r27*1-0x2191c3e2], cl IID9957 - __ shrl(Address(r27, r28, (Address::ScaleFactor)3, -0x47b6d9bd)); // shr dword ptr [r27+r28*8-0x47b6d9bd], cl IID9958 - __ shrl(Address(r28, -0x100cda00)); // shr dword ptr [r28-0x100cda00], cl IID9959 - __ shrl(Address(r29, r30, (Address::ScaleFactor)3, +0x6f42c1fe)); // shr dword ptr [r29+r30*8+0x6f42c1fe], cl IID9960 - __ shrl(Address(r30, r31, (Address::ScaleFactor)3, -0x597239e7)); // shr dword ptr [r30+r31*8-0x597239e7], cl IID9961 - __ shrl(Address(r31, rcx, (Address::ScaleFactor)2, +0x340bd7d3)); // shr dword ptr [r31+rcx*4+0x340bd7d3], cl IID9962 -#endif // _LP64 - __ incrementl(Address(rcx, rdx, (Address::ScaleFactor)0, +0x1c39c1af)); // inc dword ptr [rcx+rdx*1+0x1c39c1af] IID9963 - __ incrementl(Address(rdx, rbx, (Address::ScaleFactor)1, +0x12c7331)); // inc dword ptr [rdx+rbx*2+0x12c7331] IID9964 -#ifdef _LP64 - __ incrementl(Address(rbx, r8, (Address::ScaleFactor)3, +0x4e008b11)); // inc dword ptr [rbx+r8*8+0x4e008b11] IID9965 - __ incrementl(Address(r8, -0x2db09cf5)); // inc dword ptr [r8-0x2db09cf5] IID9966 - __ incrementl(Address(r9, -0x47c8730c)); // inc dword ptr [r9-0x47c8730c] IID9967 - __ incrementl(Address(r10, r11, (Address::ScaleFactor)1, -0x6d09de86)); // inc dword ptr [r10+r11*2-0x6d09de86] IID9968 - __ incrementl(Address(r11, r12, (Address::ScaleFactor)0, +0x3783aec)); // inc dword ptr [r11+r12*1+0x3783aec] IID9969 - __ incrementl(Address(r12, r13, (Address::ScaleFactor)2, +0x3163e523)); // inc dword ptr [r12+r13*4+0x3163e523] IID9970 - __ incrementl(Address(r13, r14, (Address::ScaleFactor)2, +0x7ae2bbb)); // inc dword ptr [r13+r14*4+0x7ae2bbb] IID9971 - __ incrementl(Address(r14, r15, (Address::ScaleFactor)3, +0x2e7c672)); // inc dword ptr [r14+r15*8+0x2e7c672] IID9972 - __ incrementl(Address(r15, +0x7cffca19)); // inc dword ptr [r15+0x7cffca19] IID9973 - __ incrementl(Address(r16, r17, (Address::ScaleFactor)1, +0x72db5fdf)); // inc dword ptr [r16+r17*2+0x72db5fdf] IID9974 - __ incrementl(Address(r17, r18, (Address::ScaleFactor)1, +0x2e535ac8)); // inc dword ptr [r17+r18*2+0x2e535ac8] IID9975 - __ incrementl(Address(r18, r19, (Address::ScaleFactor)1, +0x219eb850)); // inc dword ptr [r18+r19*2+0x219eb850] IID9976 - __ incrementl(Address(r19, r20, (Address::ScaleFactor)1, +0x7860d672)); // inc dword ptr [r19+r20*2+0x7860d672] IID9977 - __ incrementl(Address(r20, r21, (Address::ScaleFactor)1, +0xbac37cf)); // inc dword ptr [r20+r21*2+0xbac37cf] IID9978 - __ incrementl(Address(r21, r22, (Address::ScaleFactor)3, +0x65d30418)); // inc dword ptr [r21+r22*8+0x65d30418] IID9979 - __ incrementl(Address(r22, r23, (Address::ScaleFactor)3, +0xb0500e4)); // inc dword ptr [r22+r23*8+0xb0500e4] IID9980 - __ incrementl(Address(r23, r24, (Address::ScaleFactor)3, +0x693141a2)); // inc dword ptr [r23+r24*8+0x693141a2] IID9981 - __ incrementl(Address(r24, r25, (Address::ScaleFactor)3, -0x39626ee2)); // inc dword ptr [r24+r25*8-0x39626ee2] IID9982 - __ incrementl(Address(r25, r26, (Address::ScaleFactor)2, -0x74663728)); // inc dword ptr [r25+r26*4-0x74663728] IID9983 - __ incrementl(Address(r26, r27, (Address::ScaleFactor)0, +0x414843f8)); // inc dword ptr [r26+r27*1+0x414843f8] IID9984 - __ incrementl(Address(r27, r28, (Address::ScaleFactor)2, +0x681e786)); // inc dword ptr [r27+r28*4+0x681e786] IID9985 - __ incrementl(Address(r28, +0x2dff5f9c)); // inc dword ptr [r28+0x2dff5f9c] IID9986 - __ incrementl(Address(r29, -0x71f0f393)); // inc dword ptr [r29-0x71f0f393] IID9987 - __ incrementl(Address(r30, r31, (Address::ScaleFactor)2, +0x1b0f9485)); // inc dword ptr [r30+r31*4+0x1b0f9485] IID9988 - __ incrementl(Address(r31, rcx, (Address::ScaleFactor)3, -0x3138fa16)); // inc dword ptr [r31+rcx*8-0x3138fa16] IID9989 -#endif // _LP64 - __ decrementl(Address(rcx, rdx, (Address::ScaleFactor)1, +0x5540db42)); // dec dword ptr [rcx+rdx*2+0x5540db42] IID9990 - __ decrementl(Address(rdx, rbx, (Address::ScaleFactor)3, -0x337d8925)); // dec dword ptr [rdx+rbx*8-0x337d8925] IID9991 -#ifdef _LP64 - __ decrementl(Address(rbx, r8, (Address::ScaleFactor)2, +0x141f5af0)); // dec dword ptr [rbx+r8*4+0x141f5af0] IID9992 - __ decrementl(Address(r8, r9, (Address::ScaleFactor)2, +0x645d46b)); // dec dword ptr [r8+r9*4+0x645d46b] IID9993 - __ decrementl(Address(r9, r10, (Address::ScaleFactor)1, +0x3054db2d)); // dec dword ptr [r9+r10*2+0x3054db2d] IID9994 - __ decrementl(Address(r10, r11, (Address::ScaleFactor)2, +0x323644e5)); // dec dword ptr [r10+r11*4+0x323644e5] IID9995 - __ decrementl(Address(r11, +0x6d3be720)); // dec dword ptr [r11+0x6d3be720] IID9996 - __ decrementl(Address(r12, r13, (Address::ScaleFactor)2, -0x31cdb612)); // dec dword ptr [r12+r13*4-0x31cdb612] IID9997 - __ decrementl(Address(r13, r14, (Address::ScaleFactor)3, -0x31fdc892)); // dec dword ptr [r13+r14*8-0x31fdc892] IID9998 - __ decrementl(Address(r14, r15, (Address::ScaleFactor)3, +0x611ce9ac)); // dec dword ptr [r14+r15*8+0x611ce9ac] IID9999 - __ decrementl(Address(r15, r16, (Address::ScaleFactor)2, +0x3ca81445)); // dec dword ptr [r15+r16*4+0x3ca81445] IID10000 - __ decrementl(Address(r16, r17, (Address::ScaleFactor)1, -0x747674f4)); // dec dword ptr [r16+r17*2-0x747674f4] IID10001 - __ decrementl(Address(r17, r18, (Address::ScaleFactor)1, -0x9163f72)); // dec dword ptr [r17+r18*2-0x9163f72] IID10002 - __ decrementl(Address(r18, r19, (Address::ScaleFactor)2, +0x20c69711)); // dec dword ptr [r18+r19*4+0x20c69711] IID10003 - __ decrementl(Address(r19, r20, (Address::ScaleFactor)2, +0x640cdf2d)); // dec dword ptr [r19+r20*4+0x640cdf2d] IID10004 - __ decrementl(Address(r20, r21, (Address::ScaleFactor)0, +0x767843d6)); // dec dword ptr [r20+r21*1+0x767843d6] IID10005 - __ decrementl(Address(r21, r22, (Address::ScaleFactor)2, +0x7f5d10a0)); // dec dword ptr [r21+r22*4+0x7f5d10a0] IID10006 - __ decrementl(Address(r22, r23, (Address::ScaleFactor)2, -0x481fba5c)); // dec dword ptr [r22+r23*4-0x481fba5c] IID10007 - __ decrementl(Address(r23, r24, (Address::ScaleFactor)0, -0xaa809c2)); // dec dword ptr [r23+r24*1-0xaa809c2] IID10008 - __ decrementl(Address(r24, r25, (Address::ScaleFactor)3, -0x58ace864)); // dec dword ptr [r24+r25*8-0x58ace864] IID10009 - __ decrementl(Address(r25, r26, (Address::ScaleFactor)2, +0x69ad2593)); // dec dword ptr [r25+r26*4+0x69ad2593] IID10010 - __ decrementl(Address(r26, r27, (Address::ScaleFactor)0, +0xcd048eb)); // dec dword ptr [r26+r27*1+0xcd048eb] IID10011 - __ decrementl(Address(r27, r28, (Address::ScaleFactor)1, +0x7ae5857)); // dec dword ptr [r27+r28*2+0x7ae5857] IID10012 - __ decrementl(Address(r28, -0x2cdc3147)); // dec dword ptr [r28-0x2cdc3147] IID10013 - __ decrementl(Address(r29, r30, (Address::ScaleFactor)1, -0x302627a9)); // dec dword ptr [r29+r30*2-0x302627a9] IID10014 - __ decrementl(Address(r30, r31, (Address::ScaleFactor)3, -0x2f388b4b)); // dec dword ptr [r30+r31*8-0x2f388b4b] IID10015 - __ decrementl(Address(r31, rcx, (Address::ScaleFactor)1, -0x31a65b2c)); // dec dword ptr [r31+rcx*2-0x31a65b2c] IID10016 -#endif // _LP64 - __ imull(rcx, Address(rdx, -0x3cbfb97c), 1); // imul ecx, dword ptr [rdx-0x3cbfb97c], 1 IID10017 - __ imull(rcx, Address(rdx, rbx, (Address::ScaleFactor)0, -0x646821ca), 16); // imul ecx, dword ptr [rdx+rbx*1-0x646821ca], 16 IID10018 - __ imull(rcx, Address(rdx, rbx, (Address::ScaleFactor)2, +0xff4d71c), 256); // imul ecx, dword ptr [rdx+rbx*4+0xff4d71c], 256 IID10019 - __ imull(rcx, Address(rdx, rbx, (Address::ScaleFactor)2, -0x476b5e83), 4096); // imul ecx, dword ptr [rdx+rbx*4-0x476b5e83], 4096 IID10020 - __ imull(rcx, Address(rdx, rbx, (Address::ScaleFactor)3, -0x4e616667), 65536); // imul ecx, dword ptr [rdx+rbx*8-0x4e616667], 65536 IID10021 - __ imull(rcx, Address(rdx, +0x5c1561e9), 1048576); // imul ecx, dword ptr [rdx+0x5c1561e9], 1048576 IID10022 - __ imull(rcx, Address(rdx, rbx, (Address::ScaleFactor)3, -0x3f953b5d), 16777216); // imul ecx, dword ptr [rdx+rbx*8-0x3f953b5d], 16777216 IID10023 - __ imull(rcx, Address(rdx, rbx, (Address::ScaleFactor)3, +0x4950b5a1), 268435456); // imul ecx, dword ptr [rdx+rbx*8+0x4950b5a1], 268435456 IID10024 -#ifdef _LP64 - __ imull(rdx, Address(rbx, r8, (Address::ScaleFactor)0, -0x371fd018), 1); // imul edx, dword ptr [rbx+r8*1-0x371fd018], 1 IID10025 - __ imull(rdx, Address(rbx, r8, (Address::ScaleFactor)1, -0xdd29e87), 16); // imul edx, dword ptr [rbx+r8*2-0xdd29e87], 16 IID10026 - __ imull(rdx, Address(rbx, +0x27f00dc4), 256); // imul edx, dword ptr [rbx+0x27f00dc4], 256 IID10027 - __ imull(rdx, Address(rbx, r8, (Address::ScaleFactor)2, -0x30364768), 4096); // imul edx, dword ptr [rbx+r8*4-0x30364768], 4096 IID10028 - __ imull(rdx, Address(rbx, r8, (Address::ScaleFactor)2, -0x2078b022), 65536); // imul edx, dword ptr [rbx+r8*4-0x2078b022], 65536 IID10029 - __ imull(rdx, Address(rbx, r8, (Address::ScaleFactor)1, +0x75118d59), 1048576); // imul edx, dword ptr [rbx+r8*2+0x75118d59], 1048576 IID10030 - __ imull(rdx, Address(rbx, r8, (Address::ScaleFactor)1, -0x4b6e0407), 16777216); // imul edx, dword ptr [rbx+r8*2-0x4b6e0407], 16777216 IID10031 - __ imull(rdx, Address(rbx, r8, (Address::ScaleFactor)2, -0x27ed9a1b), 268435456); // imul edx, dword ptr [rbx+r8*4-0x27ed9a1b], 268435456 IID10032 - __ imull(rbx, Address(r8, +0x3420d00c), 1); // imul ebx, dword ptr [r8+0x3420d00c], 1 IID10033 - __ imull(rbx, Address(r8, r9, (Address::ScaleFactor)2, +0x7ca06729), 16); // imul ebx, dword ptr [r8+r9*4+0x7ca06729], 16 IID10034 - __ imull(rbx, Address(r8, r9, (Address::ScaleFactor)2, -0x243fae51), 256); // imul ebx, dword ptr [r8+r9*4-0x243fae51], 256 IID10035 - __ imull(rbx, Address(r8, r9, (Address::ScaleFactor)2, +0x6101c559), 4096); // imul ebx, dword ptr [r8+r9*4+0x6101c559], 4096 IID10036 - __ imull(rbx, Address(r8, -0x4f0ea639), 65536); // imul ebx, dword ptr [r8-0x4f0ea639], 65536 IID10037 - __ imull(rbx, Address(r8, r9, (Address::ScaleFactor)0, -0x4ad30996), 1048576); // imul ebx, dword ptr [r8+r9*1-0x4ad30996], 1048576 IID10038 - __ imull(rbx, Address(r8, r9, (Address::ScaleFactor)1, +0x39c5a2bf), 16777216); // imul ebx, dword ptr [r8+r9*2+0x39c5a2bf], 16777216 IID10039 - __ imull(rbx, Address(r8, r9, (Address::ScaleFactor)3, +0x6c844b56), 268435456); // imul ebx, dword ptr [r8+r9*8+0x6c844b56], 268435456 IID10040 - __ imull(r8, Address(r9, r10, (Address::ScaleFactor)0, +0x9ec95ec), 1); // imul r8d, dword ptr [r9+r10*1+0x9ec95ec], 1 IID10041 - __ imull(r8, Address(r9, r10, (Address::ScaleFactor)2, -0x4f1b10d7), 16); // imul r8d, dword ptr [r9+r10*4-0x4f1b10d7], 16 IID10042 - __ imull(r8, Address(r9, r10, (Address::ScaleFactor)1, +0x555726f4), 256); // imul r8d, dword ptr [r9+r10*2+0x555726f4], 256 IID10043 - __ imull(r8, Address(r9, r10, (Address::ScaleFactor)0, +0x77e8212b), 4096); // imul r8d, dword ptr [r9+r10*1+0x77e8212b], 4096 IID10044 - __ imull(r8, Address(r9, r10, (Address::ScaleFactor)1, +0x1cf9ee6e), 65536); // imul r8d, dword ptr [r9+r10*2+0x1cf9ee6e], 65536 IID10045 - __ imull(r8, Address(r9, r10, (Address::ScaleFactor)0, -0x7e611c0), 1048576); // imul r8d, dword ptr [r9+r10*1-0x7e611c0], 1048576 IID10046 - __ imull(r8, Address(r9, r10, (Address::ScaleFactor)3, -0x23cb680a), 16777216); // imul r8d, dword ptr [r9+r10*8-0x23cb680a], 16777216 IID10047 - __ imull(r8, Address(r9, r10, (Address::ScaleFactor)3, +0x739f40f7), 268435456); // imul r8d, dword ptr [r9+r10*8+0x739f40f7], 268435456 IID10048 - __ imull(r9, Address(r10, r11, (Address::ScaleFactor)0, -0x7f07479a), 1); // imul r9d, dword ptr [r10+r11*1-0x7f07479a], 1 IID10049 - __ imull(r9, Address(r10, +0x5e7ef755), 16); // imul r9d, dword ptr [r10+0x5e7ef755], 16 IID10050 - __ imull(r9, Address(r10, r11, (Address::ScaleFactor)2, -0xccfc49c), 256); // imul r9d, dword ptr [r10+r11*4-0xccfc49c], 256 IID10051 - __ imull(r9, Address(r10, +0x2b368a1), 4096); // imul r9d, dword ptr [r10+0x2b368a1], 4096 IID10052 - __ imull(r9, Address(r10, r11, (Address::ScaleFactor)2, -0x6dfacf76), 65536); // imul r9d, dword ptr [r10+r11*4-0x6dfacf76], 65536 IID10053 - __ imull(r9, Address(r10, r11, (Address::ScaleFactor)3, -0x4f531cd8), 1048576); // imul r9d, dword ptr [r10+r11*8-0x4f531cd8], 1048576 IID10054 - __ imull(r9, Address(r10, r11, (Address::ScaleFactor)1, +0x27cacb22), 16777216); // imul r9d, dword ptr [r10+r11*2+0x27cacb22], 16777216 IID10055 - __ imull(r9, Address(r10, r11, (Address::ScaleFactor)1, -0x3fdcfab3), 268435456); // imul r9d, dword ptr [r10+r11*2-0x3fdcfab3], 268435456 IID10056 - __ imull(r10, Address(r11, r12, (Address::ScaleFactor)3, -0x35709534), 1); // imul r10d, dword ptr [r11+r12*8-0x35709534], 1 IID10057 - __ imull(r10, Address(r11, r12, (Address::ScaleFactor)0, +0x18119a6c), 16); // imul r10d, dword ptr [r11+r12*1+0x18119a6c], 16 IID10058 - __ imull(r10, Address(r11, r12, (Address::ScaleFactor)0, +0x753d90b), 256); // imul r10d, dword ptr [r11+r12*1+0x753d90b], 256 IID10059 - __ imull(r10, Address(r11, r12, (Address::ScaleFactor)1, +0x7428e841), 4096); // imul r10d, dword ptr [r11+r12*2+0x7428e841], 4096 IID10060 - __ imull(r10, Address(r11, r12, (Address::ScaleFactor)3, +0x1441f3b4), 65536); // imul r10d, dword ptr [r11+r12*8+0x1441f3b4], 65536 IID10061 - __ imull(r10, Address(r11, r12, (Address::ScaleFactor)2, -0x306e7edb), 1048576); // imul r10d, dword ptr [r11+r12*4-0x306e7edb], 1048576 IID10062 - __ imull(r10, Address(r11, r12, (Address::ScaleFactor)0, +0x6db33b76), 16777216); // imul r10d, dword ptr [r11+r12*1+0x6db33b76], 16777216 IID10063 - __ imull(r10, Address(r11, r12, (Address::ScaleFactor)2, +0x59b8a9fe), 268435456); // imul r10d, dword ptr [r11+r12*4+0x59b8a9fe], 268435456 IID10064 - __ imull(r11, Address(r12, r13, (Address::ScaleFactor)0, -0xcd75378), 1); // imul r11d, dword ptr [r12+r13*1-0xcd75378], 1 IID10065 - __ imull(r11, Address(r12, r13, (Address::ScaleFactor)3, +0x468a6ff), 16); // imul r11d, dword ptr [r12+r13*8+0x468a6ff], 16 IID10066 - __ imull(r11, Address(r12, r13, (Address::ScaleFactor)3, +0x71bf6b50), 256); // imul r11d, dword ptr [r12+r13*8+0x71bf6b50], 256 IID10067 - __ imull(r11, Address(r12, r13, (Address::ScaleFactor)1, +0x3ab283d8), 4096); // imul r11d, dword ptr [r12+r13*2+0x3ab283d8], 4096 IID10068 - __ imull(r11, Address(r12, r13, (Address::ScaleFactor)0, -0x7b9f9b14), 65536); // imul r11d, dword ptr [r12+r13*1-0x7b9f9b14], 65536 IID10069 - __ imull(r11, Address(r12, r13, (Address::ScaleFactor)2, -0x67c25ea8), 1048576); // imul r11d, dword ptr [r12+r13*4-0x67c25ea8], 1048576 IID10070 - __ imull(r11, Address(r12, -0x7e543fe5), 16777216); // imul r11d, dword ptr [r12-0x7e543fe5], 16777216 IID10071 - __ imull(r11, Address(r12, r13, (Address::ScaleFactor)1, -0x96d4855), 268435456); // imul r11d, dword ptr [r12+r13*2-0x96d4855], 268435456 IID10072 - __ imull(r12, Address(r13, r14, (Address::ScaleFactor)0, -0x9d1d1dd), 1); // imul r12d, dword ptr [r13+r14*1-0x9d1d1dd], 1 IID10073 - __ imull(r12, Address(r13, -0x24f979a0), 16); // imul r12d, dword ptr [r13-0x24f979a0], 16 IID10074 - __ imull(r12, Address(r13, +0x1d67678b), 256); // imul r12d, dword ptr [r13+0x1d67678b], 256 IID10075 - __ imull(r12, Address(r13, r14, (Address::ScaleFactor)1, +0x61f468e0), 4096); // imul r12d, dword ptr [r13+r14*2+0x61f468e0], 4096 IID10076 - __ imull(r12, Address(r13, r14, (Address::ScaleFactor)1, +0x6ac1deb2), 65536); // imul r12d, dword ptr [r13+r14*2+0x6ac1deb2], 65536 IID10077 - __ imull(r12, Address(r13, r14, (Address::ScaleFactor)2, +0x43bc66bf), 1048576); // imul r12d, dword ptr [r13+r14*4+0x43bc66bf], 1048576 IID10078 - __ imull(r12, Address(r13, r14, (Address::ScaleFactor)2, -0x4a4a84f3), 16777216); // imul r12d, dword ptr [r13+r14*4-0x4a4a84f3], 16777216 IID10079 - __ imull(r12, Address(r13, r14, (Address::ScaleFactor)2, -0x81504c7), 268435456); // imul r12d, dword ptr [r13+r14*4-0x81504c7], 268435456 IID10080 - __ imull(r13, Address(r14, r15, (Address::ScaleFactor)3, -0x658852e1), 1); // imul r13d, dword ptr [r14+r15*8-0x658852e1], 1 IID10081 - __ imull(r13, Address(r14, r15, (Address::ScaleFactor)1, +0x6ea030e), 16); // imul r13d, dword ptr [r14+r15*2+0x6ea030e], 16 IID10082 - __ imull(r13, Address(r14, r15, (Address::ScaleFactor)0, +0x61c93ae5), 256); // imul r13d, dword ptr [r14+r15*1+0x61c93ae5], 256 IID10083 - __ imull(r13, Address(r14, r15, (Address::ScaleFactor)3, +0x4724cb6a), 4096); // imul r13d, dword ptr [r14+r15*8+0x4724cb6a], 4096 IID10084 - __ imull(r13, Address(r14, +0x45221639), 65536); // imul r13d, dword ptr [r14+0x45221639], 65536 IID10085 - __ imull(r13, Address(r14, r15, (Address::ScaleFactor)0, -0x3efc5201), 1048576); // imul r13d, dword ptr [r14+r15*1-0x3efc5201], 1048576 IID10086 - __ imull(r13, Address(r14, r15, (Address::ScaleFactor)1, +0x77931ad3), 16777216); // imul r13d, dword ptr [r14+r15*2+0x77931ad3], 16777216 IID10087 - __ imull(r13, Address(r14, +0x7fdf9b2c), 268435456); // imul r13d, dword ptr [r14+0x7fdf9b2c], 268435456 IID10088 - __ imull(r14, Address(r15, r16, (Address::ScaleFactor)0, +0x121f3160), 1); // imul r14d, dword ptr [r15+r16*1+0x121f3160], 1 IID10089 - __ imull(r14, Address(r15, r16, (Address::ScaleFactor)3, +0x30fcf97c), 16); // imul r14d, dword ptr [r15+r16*8+0x30fcf97c], 16 IID10090 - __ imull(r14, Address(r15, r16, (Address::ScaleFactor)0, +0x134bd01c), 256); // imul r14d, dword ptr [r15+r16*1+0x134bd01c], 256 IID10091 - __ imull(r14, Address(r15, +0x76ea59ff), 4096); // imul r14d, dword ptr [r15+0x76ea59ff], 4096 IID10092 - __ imull(r14, Address(r15, r16, (Address::ScaleFactor)1, -0x563d3b2e), 65536); // imul r14d, dword ptr [r15+r16*2-0x563d3b2e], 65536 IID10093 - __ imull(r14, Address(r15, +0x12ebee43), 1048576); // imul r14d, dword ptr [r15+0x12ebee43], 1048576 IID10094 - __ imull(r14, Address(r15, r16, (Address::ScaleFactor)3, +0x21952df5), 16777216); // imul r14d, dword ptr [r15+r16*8+0x21952df5], 16777216 IID10095 - __ imull(r14, Address(r15, r16, (Address::ScaleFactor)3, +0x41394731), 268435456); // imul r14d, dword ptr [r15+r16*8+0x41394731], 268435456 IID10096 - __ imull(r15, Address(r16, r17, (Address::ScaleFactor)0, +0x4ba5ec56), 1); // imul r15d, dword ptr [r16+r17*1+0x4ba5ec56], 1 IID10097 - __ imull(r15, Address(r16, r17, (Address::ScaleFactor)3, +0x7576c27e), 16); // imul r15d, dword ptr [r16+r17*8+0x7576c27e], 16 IID10098 - __ imull(r15, Address(r16, r17, (Address::ScaleFactor)3, -0x5b2ec2f), 256); // imul r15d, dword ptr [r16+r17*8-0x5b2ec2f], 256 IID10099 - __ imull(r15, Address(r16, +0x6a0dd6df), 4096); // imul r15d, dword ptr [r16+0x6a0dd6df], 4096 IID10100 - __ imull(r15, Address(r16, r17, (Address::ScaleFactor)0, -0x2c687a3e), 65536); // imul r15d, dword ptr [r16+r17*1-0x2c687a3e], 65536 IID10101 - __ imull(r15, Address(r16, r17, (Address::ScaleFactor)3, -0x46b5d088), 1048576); // imul r15d, dword ptr [r16+r17*8-0x46b5d088], 1048576 IID10102 - __ imull(r15, Address(r16, r17, (Address::ScaleFactor)0, +0x5cb0f0c1), 16777216); // imul r15d, dword ptr [r16+r17*1+0x5cb0f0c1], 16777216 IID10103 - __ imull(r15, Address(r16, r17, (Address::ScaleFactor)1, -0x3c7a42f7), 268435456); // imul r15d, dword ptr [r16+r17*2-0x3c7a42f7], 268435456 IID10104 - __ imull(r16, Address(r17, r18, (Address::ScaleFactor)0, +0x1f350b99), 1); // imul r16d, dword ptr [r17+r18*1+0x1f350b99], 1 IID10105 - __ imull(r16, Address(r17, r18, (Address::ScaleFactor)0, +0x76b7811b), 16); // imul r16d, dword ptr [r17+r18*1+0x76b7811b], 16 IID10106 - __ imull(r16, Address(r17, r18, (Address::ScaleFactor)3, -0x15aa77ae), 256); // imul r16d, dword ptr [r17+r18*8-0x15aa77ae], 256 IID10107 - __ imull(r16, Address(r17, +0x7729b692), 4096); // imul r16d, dword ptr [r17+0x7729b692], 4096 IID10108 - __ imull(r16, Address(r17, r18, (Address::ScaleFactor)2, -0xc9f5f6e), 65536); // imul r16d, dword ptr [r17+r18*4-0xc9f5f6e], 65536 IID10109 - __ imull(r16, Address(r17, r18, (Address::ScaleFactor)1, -0x296b66e1), 1048576); // imul r16d, dword ptr [r17+r18*2-0x296b66e1], 1048576 IID10110 - __ imull(r16, Address(r17, r18, (Address::ScaleFactor)0, -0x634128fa), 16777216); // imul r16d, dword ptr [r17+r18*1-0x634128fa], 16777216 IID10111 - __ imull(r16, Address(r17, r18, (Address::ScaleFactor)2, -0x53de79a5), 268435456); // imul r16d, dword ptr [r17+r18*4-0x53de79a5], 268435456 IID10112 - __ imull(r17, Address(r18, r19, (Address::ScaleFactor)3, -0x33576d31), 1); // imul r17d, dword ptr [r18+r19*8-0x33576d31], 1 IID10113 - __ imull(r17, Address(r18, r19, (Address::ScaleFactor)1, +0x503ebbf0), 16); // imul r17d, dword ptr [r18+r19*2+0x503ebbf0], 16 IID10114 - __ imull(r17, Address(r18, r19, (Address::ScaleFactor)1, +0x3ed70a81), 256); // imul r17d, dword ptr [r18+r19*2+0x3ed70a81], 256 IID10115 - __ imull(r17, Address(r18, +0x7015bfd4), 4096); // imul r17d, dword ptr [r18+0x7015bfd4], 4096 IID10116 - __ imull(r17, Address(r18, r19, (Address::ScaleFactor)2, -0x2bafb67), 65536); // imul r17d, dword ptr [r18+r19*4-0x2bafb67], 65536 IID10117 - __ imull(r17, Address(r18, -0x71165dcb), 1048576); // imul r17d, dword ptr [r18-0x71165dcb], 1048576 IID10118 - __ imull(r17, Address(r18, r19, (Address::ScaleFactor)0, +0x32d61baa), 16777216); // imul r17d, dword ptr [r18+r19*1+0x32d61baa], 16777216 IID10119 - __ imull(r17, Address(r18, r19, (Address::ScaleFactor)1, -0x18d1645e), 268435456); // imul r17d, dword ptr [r18+r19*2-0x18d1645e], 268435456 IID10120 - __ imull(r18, Address(r19, r20, (Address::ScaleFactor)0, -0x446b524b), 1); // imul r18d, dword ptr [r19+r20*1-0x446b524b], 1 IID10121 - __ imull(r18, Address(r19, r20, (Address::ScaleFactor)3, -0xdf1191d), 16); // imul r18d, dword ptr [r19+r20*8-0xdf1191d], 16 IID10122 - __ imull(r18, Address(r19, r20, (Address::ScaleFactor)3, +0x1b68d186), 256); // imul r18d, dword ptr [r19+r20*8+0x1b68d186], 256 IID10123 - __ imull(r18, Address(r19, r20, (Address::ScaleFactor)3, -0x63a92654), 4096); // imul r18d, dword ptr [r19+r20*8-0x63a92654], 4096 IID10124 - __ imull(r18, Address(r19, +0x39e62158), 65536); // imul r18d, dword ptr [r19+0x39e62158], 65536 IID10125 - __ imull(r18, Address(r19, r20, (Address::ScaleFactor)1, -0x1b6bd72a), 1048576); // imul r18d, dword ptr [r19+r20*2-0x1b6bd72a], 1048576 IID10126 - __ imull(r18, Address(r19, r20, (Address::ScaleFactor)3, +0x58c27b8), 16777216); // imul r18d, dword ptr [r19+r20*8+0x58c27b8], 16777216 IID10127 - __ imull(r18, Address(r19, +0x11f7d67f), 268435456); // imul r18d, dword ptr [r19+0x11f7d67f], 268435456 IID10128 - __ imull(r19, Address(r20, r21, (Address::ScaleFactor)1, +0x203af541), 1); // imul r19d, dword ptr [r20+r21*2+0x203af541], 1 IID10129 - __ imull(r19, Address(r20, -0x37eee72d), 16); // imul r19d, dword ptr [r20-0x37eee72d], 16 IID10130 - __ imull(r19, Address(r20, r21, (Address::ScaleFactor)1, -0x60644495), 256); // imul r19d, dword ptr [r20+r21*2-0x60644495], 256 IID10131 - __ imull(r19, Address(r20, -0x596c3ea3), 4096); // imul r19d, dword ptr [r20-0x596c3ea3], 4096 IID10132 - __ imull(r19, Address(r20, r21, (Address::ScaleFactor)0, -0x1ed40215), 65536); // imul r19d, dword ptr [r20+r21*1-0x1ed40215], 65536 IID10133 - __ imull(r19, Address(r20, r21, (Address::ScaleFactor)3, +0x5c0cb478), 1048576); // imul r19d, dword ptr [r20+r21*8+0x5c0cb478], 1048576 IID10134 - __ imull(r19, Address(r20, r21, (Address::ScaleFactor)0, +0x892d5f5), 16777216); // imul r19d, dword ptr [r20+r21*1+0x892d5f5], 16777216 IID10135 - __ imull(r19, Address(r20, +0x6db0d8bb), 268435456); // imul r19d, dword ptr [r20+0x6db0d8bb], 268435456 IID10136 - __ imull(r20, Address(r21, r22, (Address::ScaleFactor)2, -0x582b52dc), 1); // imul r20d, dword ptr [r21+r22*4-0x582b52dc], 1 IID10137 - __ imull(r20, Address(r21, r22, (Address::ScaleFactor)2, +0x21f85665), 16); // imul r20d, dword ptr [r21+r22*4+0x21f85665], 16 IID10138 - __ imull(r20, Address(r21, r22, (Address::ScaleFactor)0, +0x4c97e309), 256); // imul r20d, dword ptr [r21+r22*1+0x4c97e309], 256 IID10139 - __ imull(r20, Address(r21, r22, (Address::ScaleFactor)3, +0x7c9b9111), 4096); // imul r20d, dword ptr [r21+r22*8+0x7c9b9111], 4096 IID10140 - __ imull(r20, Address(r21, r22, (Address::ScaleFactor)1, +0x5ca231a7), 65536); // imul r20d, dword ptr [r21+r22*2+0x5ca231a7], 65536 IID10141 - __ imull(r20, Address(r21, r22, (Address::ScaleFactor)1, -0x77c4a59e), 1048576); // imul r20d, dword ptr [r21+r22*2-0x77c4a59e], 1048576 IID10142 - __ imull(r20, Address(r21, r22, (Address::ScaleFactor)2, +0x3c0b638b), 16777216); // imul r20d, dword ptr [r21+r22*4+0x3c0b638b], 16777216 IID10143 - __ imull(r20, Address(r21, r22, (Address::ScaleFactor)2, -0x4634180), 268435456); // imul r20d, dword ptr [r21+r22*4-0x4634180], 268435456 IID10144 - __ imull(r21, Address(r22, r23, (Address::ScaleFactor)2, +0x6473e649), 1); // imul r21d, dword ptr [r22+r23*4+0x6473e649], 1 IID10145 - __ imull(r21, Address(r22, r23, (Address::ScaleFactor)0, -0x7d23bfe4), 16); // imul r21d, dword ptr [r22+r23*1-0x7d23bfe4], 16 IID10146 - __ imull(r21, Address(r22, r23, (Address::ScaleFactor)3, -0x4bfdee6a), 256); // imul r21d, dword ptr [r22+r23*8-0x4bfdee6a], 256 IID10147 - __ imull(r21, Address(r22, r23, (Address::ScaleFactor)2, +0x7f085570), 4096); // imul r21d, dword ptr [r22+r23*4+0x7f085570], 4096 IID10148 - __ imull(r21, Address(r22, -0x7abe6d5), 65536); // imul r21d, dword ptr [r22-0x7abe6d5], 65536 IID10149 - __ imull(r21, Address(r22, r23, (Address::ScaleFactor)3, -0x409845bb), 1048576); // imul r21d, dword ptr [r22+r23*8-0x409845bb], 1048576 IID10150 - __ imull(r21, Address(r22, r23, (Address::ScaleFactor)1, -0x475b9ca6), 16777216); // imul r21d, dword ptr [r22+r23*2-0x475b9ca6], 16777216 IID10151 - __ imull(r21, Address(r22, r23, (Address::ScaleFactor)1, -0x5e6cae5a), 268435456); // imul r21d, dword ptr [r22+r23*2-0x5e6cae5a], 268435456 IID10152 - __ imull(r22, Address(r23, r24, (Address::ScaleFactor)3, -0x79d3262d), 1); // imul r22d, dword ptr [r23+r24*8-0x79d3262d], 1 IID10153 - __ imull(r22, Address(r23, r24, (Address::ScaleFactor)1, +0x1a74fb5), 16); // imul r22d, dword ptr [r23+r24*2+0x1a74fb5], 16 IID10154 - __ imull(r22, Address(r23, r24, (Address::ScaleFactor)2, -0x7fbbea03), 256); // imul r22d, dword ptr [r23+r24*4-0x7fbbea03], 256 IID10155 - __ imull(r22, Address(r23, r24, (Address::ScaleFactor)0, +0x6f2cb0bc), 4096); // imul r22d, dword ptr [r23+r24*1+0x6f2cb0bc], 4096 IID10156 - __ imull(r22, Address(r23, r24, (Address::ScaleFactor)2, +0x6a4cd1c4), 65536); // imul r22d, dword ptr [r23+r24*4+0x6a4cd1c4], 65536 IID10157 - __ imull(r22, Address(r23, r24, (Address::ScaleFactor)3, -0x2091be4d), 1048576); // imul r22d, dword ptr [r23+r24*8-0x2091be4d], 1048576 IID10158 - __ imull(r22, Address(r23, r24, (Address::ScaleFactor)2, +0x6bd96959), 16777216); // imul r22d, dword ptr [r23+r24*4+0x6bd96959], 16777216 IID10159 - __ imull(r22, Address(r23, r24, (Address::ScaleFactor)2, -0x3f51acdc), 268435456); // imul r22d, dword ptr [r23+r24*4-0x3f51acdc], 268435456 IID10160 - __ imull(r23, Address(r24, r25, (Address::ScaleFactor)2, +0x71e1ef59), 1); // imul r23d, dword ptr [r24+r25*4+0x71e1ef59], 1 IID10161 - __ imull(r23, Address(r24, r25, (Address::ScaleFactor)1, +0x460c1cb4), 16); // imul r23d, dword ptr [r24+r25*2+0x460c1cb4], 16 IID10162 - __ imull(r23, Address(r24, r25, (Address::ScaleFactor)3, +0x507af11d), 256); // imul r23d, dword ptr [r24+r25*8+0x507af11d], 256 IID10163 - __ imull(r23, Address(r24, r25, (Address::ScaleFactor)3, -0x29b9d1ca), 4096); // imul r23d, dword ptr [r24+r25*8-0x29b9d1ca], 4096 IID10164 - __ imull(r23, Address(r24, r25, (Address::ScaleFactor)3, -0x7e1c6f32), 65536); // imul r23d, dword ptr [r24+r25*8-0x7e1c6f32], 65536 IID10165 - __ imull(r23, Address(r24, r25, (Address::ScaleFactor)3, -0x1b06dcc4), 1048576); // imul r23d, dword ptr [r24+r25*8-0x1b06dcc4], 1048576 IID10166 - __ imull(r23, Address(r24, r25, (Address::ScaleFactor)0, -0x6e58f902), 16777216); // imul r23d, dword ptr [r24+r25*1-0x6e58f902], 16777216 IID10167 - __ imull(r23, Address(r24, r25, (Address::ScaleFactor)2, +0x4171b76d), 268435456); // imul r23d, dword ptr [r24+r25*4+0x4171b76d], 268435456 IID10168 - __ imull(r24, Address(r25, +0x2d63c25), 1); // imul r24d, dword ptr [r25+0x2d63c25], 1 IID10169 - __ imull(r24, Address(r25, r26, (Address::ScaleFactor)2, +0x575a381a), 16); // imul r24d, dword ptr [r25+r26*4+0x575a381a], 16 IID10170 - __ imull(r24, Address(r25, r26, (Address::ScaleFactor)2, -0x630d0127), 256); // imul r24d, dword ptr [r25+r26*4-0x630d0127], 256 IID10171 - __ imull(r24, Address(r25, r26, (Address::ScaleFactor)1, +0x408a48ab), 4096); // imul r24d, dword ptr [r25+r26*2+0x408a48ab], 4096 IID10172 - __ imull(r24, Address(r25, r26, (Address::ScaleFactor)1, +0x161402e8), 65536); // imul r24d, dword ptr [r25+r26*2+0x161402e8], 65536 IID10173 - __ imull(r24, Address(r25, r26, (Address::ScaleFactor)3, -0x18e2e82), 1048576); // imul r24d, dword ptr [r25+r26*8-0x18e2e82], 1048576 IID10174 - __ imull(r24, Address(r25, r26, (Address::ScaleFactor)2, -0xa6237df), 16777216); // imul r24d, dword ptr [r25+r26*4-0xa6237df], 16777216 IID10175 - __ imull(r24, Address(r25, r26, (Address::ScaleFactor)2, +0x268f1afb), 268435456); // imul r24d, dword ptr [r25+r26*4+0x268f1afb], 268435456 IID10176 - __ imull(r25, Address(r26, r27, (Address::ScaleFactor)1, +0x33f7472f), 1); // imul r25d, dword ptr [r26+r27*2+0x33f7472f], 1 IID10177 - __ imull(r25, Address(r26, -0x27eeeed2), 16); // imul r25d, dword ptr [r26-0x27eeeed2], 16 IID10178 - __ imull(r25, Address(r26, r27, (Address::ScaleFactor)1, +0x468bf57f), 256); // imul r25d, dword ptr [r26+r27*2+0x468bf57f], 256 IID10179 - __ imull(r25, Address(r26, r27, (Address::ScaleFactor)3, +0x36d3fca4), 4096); // imul r25d, dword ptr [r26+r27*8+0x36d3fca4], 4096 IID10180 - __ imull(r25, Address(r26, r27, (Address::ScaleFactor)1, +0x768aa18), 65536); // imul r25d, dword ptr [r26+r27*2+0x768aa18], 65536 IID10181 - __ imull(r25, Address(r26, +0x155bab60), 1048576); // imul r25d, dword ptr [r26+0x155bab60], 1048576 IID10182 - __ imull(r25, Address(r26, r27, (Address::ScaleFactor)3, -0x4c53f18c), 16777216); // imul r25d, dword ptr [r26+r27*8-0x4c53f18c], 16777216 IID10183 - __ imull(r25, Address(r26, -0x71acac2c), 268435456); // imul r25d, dword ptr [r26-0x71acac2c], 268435456 IID10184 - __ imull(r26, Address(r27, r28, (Address::ScaleFactor)0, +0x82e812c), 1); // imul r26d, dword ptr [r27+r28*1+0x82e812c], 1 IID10185 - __ imull(r26, Address(r27, r28, (Address::ScaleFactor)1, +0x40f856d9), 16); // imul r26d, dword ptr [r27+r28*2+0x40f856d9], 16 IID10186 - __ imull(r26, Address(r27, r28, (Address::ScaleFactor)3, +0xa0c6f40), 256); // imul r26d, dword ptr [r27+r28*8+0xa0c6f40], 256 IID10187 - __ imull(r26, Address(r27, r28, (Address::ScaleFactor)1, +0x4280440c), 4096); // imul r26d, dword ptr [r27+r28*2+0x4280440c], 4096 IID10188 - __ imull(r26, Address(r27, r28, (Address::ScaleFactor)0, +0x633c4faa), 65536); // imul r26d, dword ptr [r27+r28*1+0x633c4faa], 65536 IID10189 - __ imull(r26, Address(r27, r28, (Address::ScaleFactor)2, -0x37d5cd90), 1048576); // imul r26d, dword ptr [r27+r28*4-0x37d5cd90], 1048576 IID10190 - __ imull(r26, Address(r27, r28, (Address::ScaleFactor)1, -0x77e45992), 16777216); // imul r26d, dword ptr [r27+r28*2-0x77e45992], 16777216 IID10191 - __ imull(r26, Address(r27, +0x491cd629), 268435456); // imul r26d, dword ptr [r27+0x491cd629], 268435456 IID10192 - __ imull(r27, Address(r28, r29, (Address::ScaleFactor)3, -0x740984bc), 1); // imul r27d, dword ptr [r28+r29*8-0x740984bc], 1 IID10193 - __ imull(r27, Address(r28, r29, (Address::ScaleFactor)0, +0x3ac9a585), 16); // imul r27d, dword ptr [r28+r29*1+0x3ac9a585], 16 IID10194 - __ imull(r27, Address(r28, r29, (Address::ScaleFactor)0, +0x7a86cdd6), 256); // imul r27d, dword ptr [r28+r29*1+0x7a86cdd6], 256 IID10195 - __ imull(r27, Address(r28, r29, (Address::ScaleFactor)1, +0x609cb1f6), 4096); // imul r27d, dword ptr [r28+r29*2+0x609cb1f6], 4096 IID10196 - __ imull(r27, Address(r28, r29, (Address::ScaleFactor)3, -0x6c465e9e), 65536); // imul r27d, dword ptr [r28+r29*8-0x6c465e9e], 65536 IID10197 - __ imull(r27, Address(r28, -0x25ed1465), 1048576); // imul r27d, dword ptr [r28-0x25ed1465], 1048576 IID10198 - __ imull(r27, Address(r28, r29, (Address::ScaleFactor)0, +0x79ad56db), 16777216); // imul r27d, dword ptr [r28+r29*1+0x79ad56db], 16777216 IID10199 - __ imull(r27, Address(r28, r29, (Address::ScaleFactor)0, -0x65636d75), 268435456); // imul r27d, dword ptr [r28+r29*1-0x65636d75], 268435456 IID10200 - __ imull(r28, Address(r29, r30, (Address::ScaleFactor)3, +0x399e1bb8), 1); // imul r28d, dword ptr [r29+r30*8+0x399e1bb8], 1 IID10201 - __ imull(r28, Address(r29, r30, (Address::ScaleFactor)3, +0x7420881d), 16); // imul r28d, dword ptr [r29+r30*8+0x7420881d], 16 IID10202 - __ imull(r28, Address(r29, r30, (Address::ScaleFactor)1, +0xf69bdd), 256); // imul r28d, dword ptr [r29+r30*2+0xf69bdd], 256 IID10203 - __ imull(r28, Address(r29, r30, (Address::ScaleFactor)1, +0x491b510b), 4096); // imul r28d, dword ptr [r29+r30*2+0x491b510b], 4096 IID10204 - __ imull(r28, Address(r29, r30, (Address::ScaleFactor)0, -0x2e84ba), 65536); // imul r28d, dword ptr [r29+r30*1-0x2e84ba], 65536 IID10205 - __ imull(r28, Address(r29, r30, (Address::ScaleFactor)3, +0x144dc455), 1048576); // imul r28d, dword ptr [r29+r30*8+0x144dc455], 1048576 IID10206 - __ imull(r28, Address(r29, r30, (Address::ScaleFactor)1, +0x27f4f21d), 16777216); // imul r28d, dword ptr [r29+r30*2+0x27f4f21d], 16777216 IID10207 - __ imull(r28, Address(r29, r30, (Address::ScaleFactor)3, +0x73cab5c2), 268435456); // imul r28d, dword ptr [r29+r30*8+0x73cab5c2], 268435456 IID10208 - __ imull(r29, Address(r30, r31, (Address::ScaleFactor)3, +0x12eb4482), 1); // imul r29d, dword ptr [r30+r31*8+0x12eb4482], 1 IID10209 - __ imull(r29, Address(r30, r31, (Address::ScaleFactor)0, +0x2234d736), 16); // imul r29d, dword ptr [r30+r31*1+0x2234d736], 16 IID10210 - __ imull(r29, Address(r30, +0x2c3b0f0d), 256); // imul r29d, dword ptr [r30+0x2c3b0f0d], 256 IID10211 - __ imull(r29, Address(r30, r31, (Address::ScaleFactor)3, +0x14bf706e), 4096); // imul r29d, dword ptr [r30+r31*8+0x14bf706e], 4096 IID10212 - __ imull(r29, Address(r30, r31, (Address::ScaleFactor)2, -0x489e5b25), 65536); // imul r29d, dword ptr [r30+r31*4-0x489e5b25], 65536 IID10213 - __ imull(r29, Address(r30, r31, (Address::ScaleFactor)3, +0x208d1043), 1048576); // imul r29d, dword ptr [r30+r31*8+0x208d1043], 1048576 IID10214 - __ imull(r29, Address(r30, r31, (Address::ScaleFactor)3, +0x183b6955), 16777216); // imul r29d, dword ptr [r30+r31*8+0x183b6955], 16777216 IID10215 - __ imull(r29, Address(r30, r31, (Address::ScaleFactor)2, -0x3734c3f), 268435456); // imul r29d, dword ptr [r30+r31*4-0x3734c3f], 268435456 IID10216 - __ imull(r30, Address(r31, rcx, (Address::ScaleFactor)2, -0xbba7abc), 1); // imul r30d, dword ptr [r31+rcx*4-0xbba7abc], 1 IID10217 - __ imull(r30, Address(r31, rcx, (Address::ScaleFactor)0, -0x6397b3fb), 16); // imul r30d, dword ptr [r31+rcx*1-0x6397b3fb], 16 IID10218 - __ imull(r30, Address(r31, +0x48ea8377), 256); // imul r30d, dword ptr [r31+0x48ea8377], 256 IID10219 - __ imull(r30, Address(r31, -0x58f83517), 4096); // imul r30d, dword ptr [r31-0x58f83517], 4096 IID10220 - __ imull(r30, Address(r31, +0x19ac56a5), 65536); // imul r30d, dword ptr [r31+0x19ac56a5], 65536 IID10221 - __ imull(r30, Address(r31, rcx, (Address::ScaleFactor)0, -0xc28c9b7), 1048576); // imul r30d, dword ptr [r31+rcx*1-0xc28c9b7], 1048576 IID10222 - __ imull(r30, Address(r31, rcx, (Address::ScaleFactor)2, -0x2f04421b), 16777216); // imul r30d, dword ptr [r31+rcx*4-0x2f04421b], 16777216 IID10223 - __ imull(r30, Address(r31, rcx, (Address::ScaleFactor)3, -0x120f366b), 268435456); // imul r30d, dword ptr [r31+rcx*8-0x120f366b], 268435456 IID10224 - __ imull(r31, Address(rcx, -0x3a33e762), 1); // imul r31d, dword ptr [rcx-0x3a33e762], 1 IID10225 - __ imull(r31, Address(rcx, rdx, (Address::ScaleFactor)1, -0x44810815), 16); // imul r31d, dword ptr [rcx+rdx*2-0x44810815], 16 IID10226 - __ imull(r31, Address(rcx, +0x65c75f68), 256); // imul r31d, dword ptr [rcx+0x65c75f68], 256 IID10227 - __ imull(r31, Address(rcx, rdx, (Address::ScaleFactor)2, -0x754ec985), 4096); // imul r31d, dword ptr [rcx+rdx*4-0x754ec985], 4096 IID10228 - __ imull(r31, Address(rcx, -0x70612a8e), 65536); // imul r31d, dword ptr [rcx-0x70612a8e], 65536 IID10229 - __ imull(r31, Address(rcx, rdx, (Address::ScaleFactor)3, +0x45afa65b), 1048576); // imul r31d, dword ptr [rcx+rdx*8+0x45afa65b], 1048576 IID10230 - __ imull(r31, Address(rcx, rdx, (Address::ScaleFactor)0, +0x3021d14c), 16777216); // imul r31d, dword ptr [rcx+rdx*1+0x3021d14c], 16777216 IID10231 - __ imull(r31, Address(rcx, rdx, (Address::ScaleFactor)3, -0x503c517d), 268435456); // imul r31d, dword ptr [rcx+rdx*8-0x503c517d], 268435456 IID10232 -#endif // _LP64 - __ imull(rcx, rdx, 1); // imul ecx, edx, 1 IID10233 - __ imull(rcx, rdx, 16); // imul ecx, edx, 16 IID10234 - __ imull(rcx, rdx, 256); // imul ecx, edx, 256 IID10235 - __ imull(rcx, rdx, 4096); // imul ecx, edx, 4096 IID10236 - __ imull(rcx, rdx, 65536); // imul ecx, edx, 65536 IID10237 - __ imull(rcx, rdx, 1048576); // imul ecx, edx, 1048576 IID10238 - __ imull(rcx, rdx, 16777216); // imul ecx, edx, 16777216 IID10239 - __ imull(rcx, rdx, 268435456); // imul ecx, edx, 268435456 IID10240 - __ imull(rdx, rbx, 1); // imul edx, ebx, 1 IID10241 - __ imull(rdx, rbx, 16); // imul edx, ebx, 16 IID10242 - __ imull(rdx, rbx, 256); // imul edx, ebx, 256 IID10243 - __ imull(rdx, rbx, 4096); // imul edx, ebx, 4096 IID10244 - __ imull(rdx, rbx, 65536); // imul edx, ebx, 65536 IID10245 - __ imull(rdx, rbx, 1048576); // imul edx, ebx, 1048576 IID10246 - __ imull(rdx, rbx, 16777216); // imul edx, ebx, 16777216 IID10247 - __ imull(rdx, rbx, 268435456); // imul edx, ebx, 268435456 IID10248 -#ifdef _LP64 - __ imull(rbx, r8, 1); // imul ebx, r8d, 1 IID10249 - __ imull(rbx, r8, 16); // imul ebx, r8d, 16 IID10250 - __ imull(rbx, r8, 256); // imul ebx, r8d, 256 IID10251 - __ imull(rbx, r8, 4096); // imul ebx, r8d, 4096 IID10252 - __ imull(rbx, r8, 65536); // imul ebx, r8d, 65536 IID10253 - __ imull(rbx, r8, 1048576); // imul ebx, r8d, 1048576 IID10254 - __ imull(rbx, r8, 16777216); // imul ebx, r8d, 16777216 IID10255 - __ imull(rbx, r8, 268435456); // imul ebx, r8d, 268435456 IID10256 - __ imull(r8, r9, 1); // imul r8d, r9d, 1 IID10257 - __ imull(r8, r9, 16); // imul r8d, r9d, 16 IID10258 - __ imull(r8, r9, 256); // imul r8d, r9d, 256 IID10259 - __ imull(r8, r9, 4096); // imul r8d, r9d, 4096 IID10260 - __ imull(r8, r9, 65536); // imul r8d, r9d, 65536 IID10261 - __ imull(r8, r9, 1048576); // imul r8d, r9d, 1048576 IID10262 - __ imull(r8, r9, 16777216); // imul r8d, r9d, 16777216 IID10263 - __ imull(r8, r9, 268435456); // imul r8d, r9d, 268435456 IID10264 - __ imull(r9, r10, 1); // imul r9d, r10d, 1 IID10265 - __ imull(r9, r10, 16); // imul r9d, r10d, 16 IID10266 - __ imull(r9, r10, 256); // imul r9d, r10d, 256 IID10267 - __ imull(r9, r10, 4096); // imul r9d, r10d, 4096 IID10268 - __ imull(r9, r10, 65536); // imul r9d, r10d, 65536 IID10269 - __ imull(r9, r10, 1048576); // imul r9d, r10d, 1048576 IID10270 - __ imull(r9, r10, 16777216); // imul r9d, r10d, 16777216 IID10271 - __ imull(r9, r10, 268435456); // imul r9d, r10d, 268435456 IID10272 - __ imull(r10, r11, 1); // imul r10d, r11d, 1 IID10273 - __ imull(r10, r11, 16); // imul r10d, r11d, 16 IID10274 - __ imull(r10, r11, 256); // imul r10d, r11d, 256 IID10275 - __ imull(r10, r11, 4096); // imul r10d, r11d, 4096 IID10276 - __ imull(r10, r11, 65536); // imul r10d, r11d, 65536 IID10277 - __ imull(r10, r11, 1048576); // imul r10d, r11d, 1048576 IID10278 - __ imull(r10, r11, 16777216); // imul r10d, r11d, 16777216 IID10279 - __ imull(r10, r11, 268435456); // imul r10d, r11d, 268435456 IID10280 - __ imull(r11, r12, 1); // imul r11d, r12d, 1 IID10281 - __ imull(r11, r12, 16); // imul r11d, r12d, 16 IID10282 - __ imull(r11, r12, 256); // imul r11d, r12d, 256 IID10283 - __ imull(r11, r12, 4096); // imul r11d, r12d, 4096 IID10284 - __ imull(r11, r12, 65536); // imul r11d, r12d, 65536 IID10285 - __ imull(r11, r12, 1048576); // imul r11d, r12d, 1048576 IID10286 - __ imull(r11, r12, 16777216); // imul r11d, r12d, 16777216 IID10287 - __ imull(r11, r12, 268435456); // imul r11d, r12d, 268435456 IID10288 - __ imull(r12, r13, 1); // imul r12d, r13d, 1 IID10289 - __ imull(r12, r13, 16); // imul r12d, r13d, 16 IID10290 - __ imull(r12, r13, 256); // imul r12d, r13d, 256 IID10291 - __ imull(r12, r13, 4096); // imul r12d, r13d, 4096 IID10292 - __ imull(r12, r13, 65536); // imul r12d, r13d, 65536 IID10293 - __ imull(r12, r13, 1048576); // imul r12d, r13d, 1048576 IID10294 - __ imull(r12, r13, 16777216); // imul r12d, r13d, 16777216 IID10295 - __ imull(r12, r13, 268435456); // imul r12d, r13d, 268435456 IID10296 - __ imull(r13, r14, 1); // imul r13d, r14d, 1 IID10297 - __ imull(r13, r14, 16); // imul r13d, r14d, 16 IID10298 - __ imull(r13, r14, 256); // imul r13d, r14d, 256 IID10299 - __ imull(r13, r14, 4096); // imul r13d, r14d, 4096 IID10300 - __ imull(r13, r14, 65536); // imul r13d, r14d, 65536 IID10301 - __ imull(r13, r14, 1048576); // imul r13d, r14d, 1048576 IID10302 - __ imull(r13, r14, 16777216); // imul r13d, r14d, 16777216 IID10303 - __ imull(r13, r14, 268435456); // imul r13d, r14d, 268435456 IID10304 - __ imull(r14, r15, 1); // imul r14d, r15d, 1 IID10305 - __ imull(r14, r15, 16); // imul r14d, r15d, 16 IID10306 - __ imull(r14, r15, 256); // imul r14d, r15d, 256 IID10307 - __ imull(r14, r15, 4096); // imul r14d, r15d, 4096 IID10308 - __ imull(r14, r15, 65536); // imul r14d, r15d, 65536 IID10309 - __ imull(r14, r15, 1048576); // imul r14d, r15d, 1048576 IID10310 - __ imull(r14, r15, 16777216); // imul r14d, r15d, 16777216 IID10311 - __ imull(r14, r15, 268435456); // imul r14d, r15d, 268435456 IID10312 - __ imull(r15, r16, 1); // imul r15d, r16d, 1 IID10313 - __ imull(r15, r16, 16); // imul r15d, r16d, 16 IID10314 - __ imull(r15, r16, 256); // imul r15d, r16d, 256 IID10315 - __ imull(r15, r16, 4096); // imul r15d, r16d, 4096 IID10316 - __ imull(r15, r16, 65536); // imul r15d, r16d, 65536 IID10317 - __ imull(r15, r16, 1048576); // imul r15d, r16d, 1048576 IID10318 - __ imull(r15, r16, 16777216); // imul r15d, r16d, 16777216 IID10319 - __ imull(r15, r16, 268435456); // imul r15d, r16d, 268435456 IID10320 - __ imull(r16, r17, 1); // imul r16d, r17d, 1 IID10321 - __ imull(r16, r17, 16); // imul r16d, r17d, 16 IID10322 - __ imull(r16, r17, 256); // imul r16d, r17d, 256 IID10323 - __ imull(r16, r17, 4096); // imul r16d, r17d, 4096 IID10324 - __ imull(r16, r17, 65536); // imul r16d, r17d, 65536 IID10325 - __ imull(r16, r17, 1048576); // imul r16d, r17d, 1048576 IID10326 - __ imull(r16, r17, 16777216); // imul r16d, r17d, 16777216 IID10327 - __ imull(r16, r17, 268435456); // imul r16d, r17d, 268435456 IID10328 - __ imull(r17, r18, 1); // imul r17d, r18d, 1 IID10329 - __ imull(r17, r18, 16); // imul r17d, r18d, 16 IID10330 - __ imull(r17, r18, 256); // imul r17d, r18d, 256 IID10331 - __ imull(r17, r18, 4096); // imul r17d, r18d, 4096 IID10332 - __ imull(r17, r18, 65536); // imul r17d, r18d, 65536 IID10333 - __ imull(r17, r18, 1048576); // imul r17d, r18d, 1048576 IID10334 - __ imull(r17, r18, 16777216); // imul r17d, r18d, 16777216 IID10335 - __ imull(r17, r18, 268435456); // imul r17d, r18d, 268435456 IID10336 - __ imull(r18, r19, 1); // imul r18d, r19d, 1 IID10337 - __ imull(r18, r19, 16); // imul r18d, r19d, 16 IID10338 - __ imull(r18, r19, 256); // imul r18d, r19d, 256 IID10339 - __ imull(r18, r19, 4096); // imul r18d, r19d, 4096 IID10340 - __ imull(r18, r19, 65536); // imul r18d, r19d, 65536 IID10341 - __ imull(r18, r19, 1048576); // imul r18d, r19d, 1048576 IID10342 - __ imull(r18, r19, 16777216); // imul r18d, r19d, 16777216 IID10343 - __ imull(r18, r19, 268435456); // imul r18d, r19d, 268435456 IID10344 - __ imull(r19, r20, 1); // imul r19d, r20d, 1 IID10345 - __ imull(r19, r20, 16); // imul r19d, r20d, 16 IID10346 - __ imull(r19, r20, 256); // imul r19d, r20d, 256 IID10347 - __ imull(r19, r20, 4096); // imul r19d, r20d, 4096 IID10348 - __ imull(r19, r20, 65536); // imul r19d, r20d, 65536 IID10349 - __ imull(r19, r20, 1048576); // imul r19d, r20d, 1048576 IID10350 - __ imull(r19, r20, 16777216); // imul r19d, r20d, 16777216 IID10351 - __ imull(r19, r20, 268435456); // imul r19d, r20d, 268435456 IID10352 - __ imull(r20, r21, 1); // imul r20d, r21d, 1 IID10353 - __ imull(r20, r21, 16); // imul r20d, r21d, 16 IID10354 - __ imull(r20, r21, 256); // imul r20d, r21d, 256 IID10355 - __ imull(r20, r21, 4096); // imul r20d, r21d, 4096 IID10356 - __ imull(r20, r21, 65536); // imul r20d, r21d, 65536 IID10357 - __ imull(r20, r21, 1048576); // imul r20d, r21d, 1048576 IID10358 - __ imull(r20, r21, 16777216); // imul r20d, r21d, 16777216 IID10359 - __ imull(r20, r21, 268435456); // imul r20d, r21d, 268435456 IID10360 - __ imull(r21, r22, 1); // imul r21d, r22d, 1 IID10361 - __ imull(r21, r22, 16); // imul r21d, r22d, 16 IID10362 - __ imull(r21, r22, 256); // imul r21d, r22d, 256 IID10363 - __ imull(r21, r22, 4096); // imul r21d, r22d, 4096 IID10364 - __ imull(r21, r22, 65536); // imul r21d, r22d, 65536 IID10365 - __ imull(r21, r22, 1048576); // imul r21d, r22d, 1048576 IID10366 - __ imull(r21, r22, 16777216); // imul r21d, r22d, 16777216 IID10367 - __ imull(r21, r22, 268435456); // imul r21d, r22d, 268435456 IID10368 - __ imull(r22, r23, 1); // imul r22d, r23d, 1 IID10369 - __ imull(r22, r23, 16); // imul r22d, r23d, 16 IID10370 - __ imull(r22, r23, 256); // imul r22d, r23d, 256 IID10371 - __ imull(r22, r23, 4096); // imul r22d, r23d, 4096 IID10372 - __ imull(r22, r23, 65536); // imul r22d, r23d, 65536 IID10373 - __ imull(r22, r23, 1048576); // imul r22d, r23d, 1048576 IID10374 - __ imull(r22, r23, 16777216); // imul r22d, r23d, 16777216 IID10375 - __ imull(r22, r23, 268435456); // imul r22d, r23d, 268435456 IID10376 - __ imull(r23, r24, 1); // imul r23d, r24d, 1 IID10377 - __ imull(r23, r24, 16); // imul r23d, r24d, 16 IID10378 - __ imull(r23, r24, 256); // imul r23d, r24d, 256 IID10379 - __ imull(r23, r24, 4096); // imul r23d, r24d, 4096 IID10380 - __ imull(r23, r24, 65536); // imul r23d, r24d, 65536 IID10381 - __ imull(r23, r24, 1048576); // imul r23d, r24d, 1048576 IID10382 - __ imull(r23, r24, 16777216); // imul r23d, r24d, 16777216 IID10383 - __ imull(r23, r24, 268435456); // imul r23d, r24d, 268435456 IID10384 - __ imull(r24, r25, 1); // imul r24d, r25d, 1 IID10385 - __ imull(r24, r25, 16); // imul r24d, r25d, 16 IID10386 - __ imull(r24, r25, 256); // imul r24d, r25d, 256 IID10387 - __ imull(r24, r25, 4096); // imul r24d, r25d, 4096 IID10388 - __ imull(r24, r25, 65536); // imul r24d, r25d, 65536 IID10389 - __ imull(r24, r25, 1048576); // imul r24d, r25d, 1048576 IID10390 - __ imull(r24, r25, 16777216); // imul r24d, r25d, 16777216 IID10391 - __ imull(r24, r25, 268435456); // imul r24d, r25d, 268435456 IID10392 - __ imull(r25, r26, 1); // imul r25d, r26d, 1 IID10393 - __ imull(r25, r26, 16); // imul r25d, r26d, 16 IID10394 - __ imull(r25, r26, 256); // imul r25d, r26d, 256 IID10395 - __ imull(r25, r26, 4096); // imul r25d, r26d, 4096 IID10396 - __ imull(r25, r26, 65536); // imul r25d, r26d, 65536 IID10397 - __ imull(r25, r26, 1048576); // imul r25d, r26d, 1048576 IID10398 - __ imull(r25, r26, 16777216); // imul r25d, r26d, 16777216 IID10399 - __ imull(r25, r26, 268435456); // imul r25d, r26d, 268435456 IID10400 - __ imull(r26, r27, 1); // imul r26d, r27d, 1 IID10401 - __ imull(r26, r27, 16); // imul r26d, r27d, 16 IID10402 - __ imull(r26, r27, 256); // imul r26d, r27d, 256 IID10403 - __ imull(r26, r27, 4096); // imul r26d, r27d, 4096 IID10404 - __ imull(r26, r27, 65536); // imul r26d, r27d, 65536 IID10405 - __ imull(r26, r27, 1048576); // imul r26d, r27d, 1048576 IID10406 - __ imull(r26, r27, 16777216); // imul r26d, r27d, 16777216 IID10407 - __ imull(r26, r27, 268435456); // imul r26d, r27d, 268435456 IID10408 - __ imull(r27, r28, 1); // imul r27d, r28d, 1 IID10409 - __ imull(r27, r28, 16); // imul r27d, r28d, 16 IID10410 - __ imull(r27, r28, 256); // imul r27d, r28d, 256 IID10411 - __ imull(r27, r28, 4096); // imul r27d, r28d, 4096 IID10412 - __ imull(r27, r28, 65536); // imul r27d, r28d, 65536 IID10413 - __ imull(r27, r28, 1048576); // imul r27d, r28d, 1048576 IID10414 - __ imull(r27, r28, 16777216); // imul r27d, r28d, 16777216 IID10415 - __ imull(r27, r28, 268435456); // imul r27d, r28d, 268435456 IID10416 - __ imull(r28, r29, 1); // imul r28d, r29d, 1 IID10417 - __ imull(r28, r29, 16); // imul r28d, r29d, 16 IID10418 - __ imull(r28, r29, 256); // imul r28d, r29d, 256 IID10419 - __ imull(r28, r29, 4096); // imul r28d, r29d, 4096 IID10420 - __ imull(r28, r29, 65536); // imul r28d, r29d, 65536 IID10421 - __ imull(r28, r29, 1048576); // imul r28d, r29d, 1048576 IID10422 - __ imull(r28, r29, 16777216); // imul r28d, r29d, 16777216 IID10423 - __ imull(r28, r29, 268435456); // imul r28d, r29d, 268435456 IID10424 - __ imull(r29, r30, 1); // imul r29d, r30d, 1 IID10425 - __ imull(r29, r30, 16); // imul r29d, r30d, 16 IID10426 - __ imull(r29, r30, 256); // imul r29d, r30d, 256 IID10427 - __ imull(r29, r30, 4096); // imul r29d, r30d, 4096 IID10428 - __ imull(r29, r30, 65536); // imul r29d, r30d, 65536 IID10429 - __ imull(r29, r30, 1048576); // imul r29d, r30d, 1048576 IID10430 - __ imull(r29, r30, 16777216); // imul r29d, r30d, 16777216 IID10431 - __ imull(r29, r30, 268435456); // imul r29d, r30d, 268435456 IID10432 - __ imull(r30, r31, 1); // imul r30d, r31d, 1 IID10433 - __ imull(r30, r31, 16); // imul r30d, r31d, 16 IID10434 - __ imull(r30, r31, 256); // imul r30d, r31d, 256 IID10435 - __ imull(r30, r31, 4096); // imul r30d, r31d, 4096 IID10436 - __ imull(r30, r31, 65536); // imul r30d, r31d, 65536 IID10437 - __ imull(r30, r31, 1048576); // imul r30d, r31d, 1048576 IID10438 - __ imull(r30, r31, 16777216); // imul r30d, r31d, 16777216 IID10439 - __ imull(r30, r31, 268435456); // imul r30d, r31d, 268435456 IID10440 - __ imull(r31, rcx, 1); // imul r31d, ecx, 1 IID10441 - __ imull(r31, rcx, 16); // imul r31d, ecx, 16 IID10442 - __ imull(r31, rcx, 256); // imul r31d, ecx, 256 IID10443 - __ imull(r31, rcx, 4096); // imul r31d, ecx, 4096 IID10444 - __ imull(r31, rcx, 65536); // imul r31d, ecx, 65536 IID10445 - __ imull(r31, rcx, 1048576); // imul r31d, ecx, 1048576 IID10446 - __ imull(r31, rcx, 16777216); // imul r31d, ecx, 16777216 IID10447 - __ imull(r31, rcx, 268435456); // imul r31d, ecx, 268435456 IID10448 -#endif // _LP64 - __ shldl(rcx, rdx, 1); // shld ecx, edx, 1 IID10449 - __ shldl(rcx, rdx, 2); // shld ecx, edx, 2 IID10450 - __ shldl(rcx, rdx, 4); // shld ecx, edx, 4 IID10451 - __ shldl(rcx, rdx, 8); // shld ecx, edx, 8 IID10452 - __ shldl(rcx, rdx, 16); // shld ecx, edx, 16 IID10453 - __ shldl(rdx, rbx, 1); // shld edx, ebx, 1 IID10454 - __ shldl(rdx, rbx, 2); // shld edx, ebx, 2 IID10455 - __ shldl(rdx, rbx, 4); // shld edx, ebx, 4 IID10456 - __ shldl(rdx, rbx, 8); // shld edx, ebx, 8 IID10457 - __ shldl(rdx, rbx, 16); // shld edx, ebx, 16 IID10458 -#ifdef _LP64 - __ shldl(rbx, r8, 1); // shld ebx, r8d, 1 IID10459 - __ shldl(rbx, r8, 2); // shld ebx, r8d, 2 IID10460 - __ shldl(rbx, r8, 4); // shld ebx, r8d, 4 IID10461 - __ shldl(rbx, r8, 8); // shld ebx, r8d, 8 IID10462 - __ shldl(rbx, r8, 16); // shld ebx, r8d, 16 IID10463 - __ shldl(r8, r9, 1); // shld r8d, r9d, 1 IID10464 - __ shldl(r8, r9, 2); // shld r8d, r9d, 2 IID10465 - __ shldl(r8, r9, 4); // shld r8d, r9d, 4 IID10466 - __ shldl(r8, r9, 8); // shld r8d, r9d, 8 IID10467 - __ shldl(r8, r9, 16); // shld r8d, r9d, 16 IID10468 - __ shldl(r9, r10, 1); // shld r9d, r10d, 1 IID10469 - __ shldl(r9, r10, 2); // shld r9d, r10d, 2 IID10470 - __ shldl(r9, r10, 4); // shld r9d, r10d, 4 IID10471 - __ shldl(r9, r10, 8); // shld r9d, r10d, 8 IID10472 - __ shldl(r9, r10, 16); // shld r9d, r10d, 16 IID10473 - __ shldl(r10, r11, 1); // shld r10d, r11d, 1 IID10474 - __ shldl(r10, r11, 2); // shld r10d, r11d, 2 IID10475 - __ shldl(r10, r11, 4); // shld r10d, r11d, 4 IID10476 - __ shldl(r10, r11, 8); // shld r10d, r11d, 8 IID10477 - __ shldl(r10, r11, 16); // shld r10d, r11d, 16 IID10478 - __ shldl(r11, r12, 1); // shld r11d, r12d, 1 IID10479 - __ shldl(r11, r12, 2); // shld r11d, r12d, 2 IID10480 - __ shldl(r11, r12, 4); // shld r11d, r12d, 4 IID10481 - __ shldl(r11, r12, 8); // shld r11d, r12d, 8 IID10482 - __ shldl(r11, r12, 16); // shld r11d, r12d, 16 IID10483 - __ shldl(r12, r13, 1); // shld r12d, r13d, 1 IID10484 - __ shldl(r12, r13, 2); // shld r12d, r13d, 2 IID10485 - __ shldl(r12, r13, 4); // shld r12d, r13d, 4 IID10486 - __ shldl(r12, r13, 8); // shld r12d, r13d, 8 IID10487 - __ shldl(r12, r13, 16); // shld r12d, r13d, 16 IID10488 - __ shldl(r13, r14, 1); // shld r13d, r14d, 1 IID10489 - __ shldl(r13, r14, 2); // shld r13d, r14d, 2 IID10490 - __ shldl(r13, r14, 4); // shld r13d, r14d, 4 IID10491 - __ shldl(r13, r14, 8); // shld r13d, r14d, 8 IID10492 - __ shldl(r13, r14, 16); // shld r13d, r14d, 16 IID10493 - __ shldl(r14, r15, 1); // shld r14d, r15d, 1 IID10494 - __ shldl(r14, r15, 2); // shld r14d, r15d, 2 IID10495 - __ shldl(r14, r15, 4); // shld r14d, r15d, 4 IID10496 - __ shldl(r14, r15, 8); // shld r14d, r15d, 8 IID10497 - __ shldl(r14, r15, 16); // shld r14d, r15d, 16 IID10498 - __ shldl(r15, r16, 1); // shld r15d, r16d, 1 IID10499 - __ shldl(r15, r16, 2); // shld r15d, r16d, 2 IID10500 - __ shldl(r15, r16, 4); // shld r15d, r16d, 4 IID10501 - __ shldl(r15, r16, 8); // shld r15d, r16d, 8 IID10502 - __ shldl(r15, r16, 16); // shld r15d, r16d, 16 IID10503 - __ shldl(r16, r17, 1); // shld r16d, r17d, 1 IID10504 - __ shldl(r16, r17, 2); // shld r16d, r17d, 2 IID10505 - __ shldl(r16, r17, 4); // shld r16d, r17d, 4 IID10506 - __ shldl(r16, r17, 8); // shld r16d, r17d, 8 IID10507 - __ shldl(r16, r17, 16); // shld r16d, r17d, 16 IID10508 - __ shldl(r17, r18, 1); // shld r17d, r18d, 1 IID10509 - __ shldl(r17, r18, 2); // shld r17d, r18d, 2 IID10510 - __ shldl(r17, r18, 4); // shld r17d, r18d, 4 IID10511 - __ shldl(r17, r18, 8); // shld r17d, r18d, 8 IID10512 - __ shldl(r17, r18, 16); // shld r17d, r18d, 16 IID10513 - __ shldl(r18, r19, 1); // shld r18d, r19d, 1 IID10514 - __ shldl(r18, r19, 2); // shld r18d, r19d, 2 IID10515 - __ shldl(r18, r19, 4); // shld r18d, r19d, 4 IID10516 - __ shldl(r18, r19, 8); // shld r18d, r19d, 8 IID10517 - __ shldl(r18, r19, 16); // shld r18d, r19d, 16 IID10518 - __ shldl(r19, r20, 1); // shld r19d, r20d, 1 IID10519 - __ shldl(r19, r20, 2); // shld r19d, r20d, 2 IID10520 - __ shldl(r19, r20, 4); // shld r19d, r20d, 4 IID10521 - __ shldl(r19, r20, 8); // shld r19d, r20d, 8 IID10522 - __ shldl(r19, r20, 16); // shld r19d, r20d, 16 IID10523 - __ shldl(r20, r21, 1); // shld r20d, r21d, 1 IID10524 - __ shldl(r20, r21, 2); // shld r20d, r21d, 2 IID10525 - __ shldl(r20, r21, 4); // shld r20d, r21d, 4 IID10526 - __ shldl(r20, r21, 8); // shld r20d, r21d, 8 IID10527 - __ shldl(r20, r21, 16); // shld r20d, r21d, 16 IID10528 - __ shldl(r21, r22, 1); // shld r21d, r22d, 1 IID10529 - __ shldl(r21, r22, 2); // shld r21d, r22d, 2 IID10530 - __ shldl(r21, r22, 4); // shld r21d, r22d, 4 IID10531 - __ shldl(r21, r22, 8); // shld r21d, r22d, 8 IID10532 - __ shldl(r21, r22, 16); // shld r21d, r22d, 16 IID10533 - __ shldl(r22, r23, 1); // shld r22d, r23d, 1 IID10534 - __ shldl(r22, r23, 2); // shld r22d, r23d, 2 IID10535 - __ shldl(r22, r23, 4); // shld r22d, r23d, 4 IID10536 - __ shldl(r22, r23, 8); // shld r22d, r23d, 8 IID10537 - __ shldl(r22, r23, 16); // shld r22d, r23d, 16 IID10538 - __ shldl(r23, r24, 1); // shld r23d, r24d, 1 IID10539 - __ shldl(r23, r24, 2); // shld r23d, r24d, 2 IID10540 - __ shldl(r23, r24, 4); // shld r23d, r24d, 4 IID10541 - __ shldl(r23, r24, 8); // shld r23d, r24d, 8 IID10542 - __ shldl(r23, r24, 16); // shld r23d, r24d, 16 IID10543 - __ shldl(r24, r25, 1); // shld r24d, r25d, 1 IID10544 - __ shldl(r24, r25, 2); // shld r24d, r25d, 2 IID10545 - __ shldl(r24, r25, 4); // shld r24d, r25d, 4 IID10546 - __ shldl(r24, r25, 8); // shld r24d, r25d, 8 IID10547 - __ shldl(r24, r25, 16); // shld r24d, r25d, 16 IID10548 - __ shldl(r25, r26, 1); // shld r25d, r26d, 1 IID10549 - __ shldl(r25, r26, 2); // shld r25d, r26d, 2 IID10550 - __ shldl(r25, r26, 4); // shld r25d, r26d, 4 IID10551 - __ shldl(r25, r26, 8); // shld r25d, r26d, 8 IID10552 - __ shldl(r25, r26, 16); // shld r25d, r26d, 16 IID10553 - __ shldl(r26, r27, 1); // shld r26d, r27d, 1 IID10554 - __ shldl(r26, r27, 2); // shld r26d, r27d, 2 IID10555 - __ shldl(r26, r27, 4); // shld r26d, r27d, 4 IID10556 - __ shldl(r26, r27, 8); // shld r26d, r27d, 8 IID10557 - __ shldl(r26, r27, 16); // shld r26d, r27d, 16 IID10558 - __ shldl(r27, r28, 1); // shld r27d, r28d, 1 IID10559 - __ shldl(r27, r28, 2); // shld r27d, r28d, 2 IID10560 - __ shldl(r27, r28, 4); // shld r27d, r28d, 4 IID10561 - __ shldl(r27, r28, 8); // shld r27d, r28d, 8 IID10562 - __ shldl(r27, r28, 16); // shld r27d, r28d, 16 IID10563 - __ shldl(r28, r29, 1); // shld r28d, r29d, 1 IID10564 - __ shldl(r28, r29, 2); // shld r28d, r29d, 2 IID10565 - __ shldl(r28, r29, 4); // shld r28d, r29d, 4 IID10566 - __ shldl(r28, r29, 8); // shld r28d, r29d, 8 IID10567 - __ shldl(r28, r29, 16); // shld r28d, r29d, 16 IID10568 - __ shldl(r29, r30, 1); // shld r29d, r30d, 1 IID10569 - __ shldl(r29, r30, 2); // shld r29d, r30d, 2 IID10570 - __ shldl(r29, r30, 4); // shld r29d, r30d, 4 IID10571 - __ shldl(r29, r30, 8); // shld r29d, r30d, 8 IID10572 - __ shldl(r29, r30, 16); // shld r29d, r30d, 16 IID10573 - __ shldl(r30, r31, 1); // shld r30d, r31d, 1 IID10574 - __ shldl(r30, r31, 2); // shld r30d, r31d, 2 IID10575 - __ shldl(r30, r31, 4); // shld r30d, r31d, 4 IID10576 - __ shldl(r30, r31, 8); // shld r30d, r31d, 8 IID10577 - __ shldl(r30, r31, 16); // shld r30d, r31d, 16 IID10578 - __ shldl(r31, rcx, 1); // shld r31d, ecx, 1 IID10579 - __ shldl(r31, rcx, 2); // shld r31d, ecx, 2 IID10580 - __ shldl(r31, rcx, 4); // shld r31d, ecx, 4 IID10581 - __ shldl(r31, rcx, 8); // shld r31d, ecx, 8 IID10582 - __ shldl(r31, rcx, 16); // shld r31d, ecx, 16 IID10583 -#endif // _LP64 - __ shrdl(rcx, rdx, 1); // shrd ecx, edx, 1 IID10584 - __ shrdl(rcx, rdx, 2); // shrd ecx, edx, 2 IID10585 - __ shrdl(rcx, rdx, 4); // shrd ecx, edx, 4 IID10586 - __ shrdl(rcx, rdx, 8); // shrd ecx, edx, 8 IID10587 - __ shrdl(rcx, rdx, 16); // shrd ecx, edx, 16 IID10588 - __ shrdl(rdx, rbx, 1); // shrd edx, ebx, 1 IID10589 - __ shrdl(rdx, rbx, 2); // shrd edx, ebx, 2 IID10590 - __ shrdl(rdx, rbx, 4); // shrd edx, ebx, 4 IID10591 - __ shrdl(rdx, rbx, 8); // shrd edx, ebx, 8 IID10592 - __ shrdl(rdx, rbx, 16); // shrd edx, ebx, 16 IID10593 -#ifdef _LP64 - __ shrdl(rbx, r8, 1); // shrd ebx, r8d, 1 IID10594 - __ shrdl(rbx, r8, 2); // shrd ebx, r8d, 2 IID10595 - __ shrdl(rbx, r8, 4); // shrd ebx, r8d, 4 IID10596 - __ shrdl(rbx, r8, 8); // shrd ebx, r8d, 8 IID10597 - __ shrdl(rbx, r8, 16); // shrd ebx, r8d, 16 IID10598 - __ shrdl(r8, r9, 1); // shrd r8d, r9d, 1 IID10599 - __ shrdl(r8, r9, 2); // shrd r8d, r9d, 2 IID10600 - __ shrdl(r8, r9, 4); // shrd r8d, r9d, 4 IID10601 - __ shrdl(r8, r9, 8); // shrd r8d, r9d, 8 IID10602 - __ shrdl(r8, r9, 16); // shrd r8d, r9d, 16 IID10603 - __ shrdl(r9, r10, 1); // shrd r9d, r10d, 1 IID10604 - __ shrdl(r9, r10, 2); // shrd r9d, r10d, 2 IID10605 - __ shrdl(r9, r10, 4); // shrd r9d, r10d, 4 IID10606 - __ shrdl(r9, r10, 8); // shrd r9d, r10d, 8 IID10607 - __ shrdl(r9, r10, 16); // shrd r9d, r10d, 16 IID10608 - __ shrdl(r10, r11, 1); // shrd r10d, r11d, 1 IID10609 - __ shrdl(r10, r11, 2); // shrd r10d, r11d, 2 IID10610 - __ shrdl(r10, r11, 4); // shrd r10d, r11d, 4 IID10611 - __ shrdl(r10, r11, 8); // shrd r10d, r11d, 8 IID10612 - __ shrdl(r10, r11, 16); // shrd r10d, r11d, 16 IID10613 - __ shrdl(r11, r12, 1); // shrd r11d, r12d, 1 IID10614 - __ shrdl(r11, r12, 2); // shrd r11d, r12d, 2 IID10615 - __ shrdl(r11, r12, 4); // shrd r11d, r12d, 4 IID10616 - __ shrdl(r11, r12, 8); // shrd r11d, r12d, 8 IID10617 - __ shrdl(r11, r12, 16); // shrd r11d, r12d, 16 IID10618 - __ shrdl(r12, r13, 1); // shrd r12d, r13d, 1 IID10619 - __ shrdl(r12, r13, 2); // shrd r12d, r13d, 2 IID10620 - __ shrdl(r12, r13, 4); // shrd r12d, r13d, 4 IID10621 - __ shrdl(r12, r13, 8); // shrd r12d, r13d, 8 IID10622 - __ shrdl(r12, r13, 16); // shrd r12d, r13d, 16 IID10623 - __ shrdl(r13, r14, 1); // shrd r13d, r14d, 1 IID10624 - __ shrdl(r13, r14, 2); // shrd r13d, r14d, 2 IID10625 - __ shrdl(r13, r14, 4); // shrd r13d, r14d, 4 IID10626 - __ shrdl(r13, r14, 8); // shrd r13d, r14d, 8 IID10627 - __ shrdl(r13, r14, 16); // shrd r13d, r14d, 16 IID10628 - __ shrdl(r14, r15, 1); // shrd r14d, r15d, 1 IID10629 - __ shrdl(r14, r15, 2); // shrd r14d, r15d, 2 IID10630 - __ shrdl(r14, r15, 4); // shrd r14d, r15d, 4 IID10631 - __ shrdl(r14, r15, 8); // shrd r14d, r15d, 8 IID10632 - __ shrdl(r14, r15, 16); // shrd r14d, r15d, 16 IID10633 - __ shrdl(r15, r16, 1); // shrd r15d, r16d, 1 IID10634 - __ shrdl(r15, r16, 2); // shrd r15d, r16d, 2 IID10635 - __ shrdl(r15, r16, 4); // shrd r15d, r16d, 4 IID10636 - __ shrdl(r15, r16, 8); // shrd r15d, r16d, 8 IID10637 - __ shrdl(r15, r16, 16); // shrd r15d, r16d, 16 IID10638 - __ shrdl(r16, r17, 1); // shrd r16d, r17d, 1 IID10639 - __ shrdl(r16, r17, 2); // shrd r16d, r17d, 2 IID10640 - __ shrdl(r16, r17, 4); // shrd r16d, r17d, 4 IID10641 - __ shrdl(r16, r17, 8); // shrd r16d, r17d, 8 IID10642 - __ shrdl(r16, r17, 16); // shrd r16d, r17d, 16 IID10643 - __ shrdl(r17, r18, 1); // shrd r17d, r18d, 1 IID10644 - __ shrdl(r17, r18, 2); // shrd r17d, r18d, 2 IID10645 - __ shrdl(r17, r18, 4); // shrd r17d, r18d, 4 IID10646 - __ shrdl(r17, r18, 8); // shrd r17d, r18d, 8 IID10647 - __ shrdl(r17, r18, 16); // shrd r17d, r18d, 16 IID10648 - __ shrdl(r18, r19, 1); // shrd r18d, r19d, 1 IID10649 - __ shrdl(r18, r19, 2); // shrd r18d, r19d, 2 IID10650 - __ shrdl(r18, r19, 4); // shrd r18d, r19d, 4 IID10651 - __ shrdl(r18, r19, 8); // shrd r18d, r19d, 8 IID10652 - __ shrdl(r18, r19, 16); // shrd r18d, r19d, 16 IID10653 - __ shrdl(r19, r20, 1); // shrd r19d, r20d, 1 IID10654 - __ shrdl(r19, r20, 2); // shrd r19d, r20d, 2 IID10655 - __ shrdl(r19, r20, 4); // shrd r19d, r20d, 4 IID10656 - __ shrdl(r19, r20, 8); // shrd r19d, r20d, 8 IID10657 - __ shrdl(r19, r20, 16); // shrd r19d, r20d, 16 IID10658 - __ shrdl(r20, r21, 1); // shrd r20d, r21d, 1 IID10659 - __ shrdl(r20, r21, 2); // shrd r20d, r21d, 2 IID10660 - __ shrdl(r20, r21, 4); // shrd r20d, r21d, 4 IID10661 - __ shrdl(r20, r21, 8); // shrd r20d, r21d, 8 IID10662 - __ shrdl(r20, r21, 16); // shrd r20d, r21d, 16 IID10663 - __ shrdl(r21, r22, 1); // shrd r21d, r22d, 1 IID10664 - __ shrdl(r21, r22, 2); // shrd r21d, r22d, 2 IID10665 - __ shrdl(r21, r22, 4); // shrd r21d, r22d, 4 IID10666 - __ shrdl(r21, r22, 8); // shrd r21d, r22d, 8 IID10667 - __ shrdl(r21, r22, 16); // shrd r21d, r22d, 16 IID10668 - __ shrdl(r22, r23, 1); // shrd r22d, r23d, 1 IID10669 - __ shrdl(r22, r23, 2); // shrd r22d, r23d, 2 IID10670 - __ shrdl(r22, r23, 4); // shrd r22d, r23d, 4 IID10671 - __ shrdl(r22, r23, 8); // shrd r22d, r23d, 8 IID10672 - __ shrdl(r22, r23, 16); // shrd r22d, r23d, 16 IID10673 - __ shrdl(r23, r24, 1); // shrd r23d, r24d, 1 IID10674 - __ shrdl(r23, r24, 2); // shrd r23d, r24d, 2 IID10675 - __ shrdl(r23, r24, 4); // shrd r23d, r24d, 4 IID10676 - __ shrdl(r23, r24, 8); // shrd r23d, r24d, 8 IID10677 - __ shrdl(r23, r24, 16); // shrd r23d, r24d, 16 IID10678 - __ shrdl(r24, r25, 1); // shrd r24d, r25d, 1 IID10679 - __ shrdl(r24, r25, 2); // shrd r24d, r25d, 2 IID10680 - __ shrdl(r24, r25, 4); // shrd r24d, r25d, 4 IID10681 - __ shrdl(r24, r25, 8); // shrd r24d, r25d, 8 IID10682 - __ shrdl(r24, r25, 16); // shrd r24d, r25d, 16 IID10683 - __ shrdl(r25, r26, 1); // shrd r25d, r26d, 1 IID10684 - __ shrdl(r25, r26, 2); // shrd r25d, r26d, 2 IID10685 - __ shrdl(r25, r26, 4); // shrd r25d, r26d, 4 IID10686 - __ shrdl(r25, r26, 8); // shrd r25d, r26d, 8 IID10687 - __ shrdl(r25, r26, 16); // shrd r25d, r26d, 16 IID10688 - __ shrdl(r26, r27, 1); // shrd r26d, r27d, 1 IID10689 - __ shrdl(r26, r27, 2); // shrd r26d, r27d, 2 IID10690 - __ shrdl(r26, r27, 4); // shrd r26d, r27d, 4 IID10691 - __ shrdl(r26, r27, 8); // shrd r26d, r27d, 8 IID10692 - __ shrdl(r26, r27, 16); // shrd r26d, r27d, 16 IID10693 - __ shrdl(r27, r28, 1); // shrd r27d, r28d, 1 IID10694 - __ shrdl(r27, r28, 2); // shrd r27d, r28d, 2 IID10695 - __ shrdl(r27, r28, 4); // shrd r27d, r28d, 4 IID10696 - __ shrdl(r27, r28, 8); // shrd r27d, r28d, 8 IID10697 - __ shrdl(r27, r28, 16); // shrd r27d, r28d, 16 IID10698 - __ shrdl(r28, r29, 1); // shrd r28d, r29d, 1 IID10699 - __ shrdl(r28, r29, 2); // shrd r28d, r29d, 2 IID10700 - __ shrdl(r28, r29, 4); // shrd r28d, r29d, 4 IID10701 - __ shrdl(r28, r29, 8); // shrd r28d, r29d, 8 IID10702 - __ shrdl(r28, r29, 16); // shrd r28d, r29d, 16 IID10703 - __ shrdl(r29, r30, 1); // shrd r29d, r30d, 1 IID10704 - __ shrdl(r29, r30, 2); // shrd r29d, r30d, 2 IID10705 - __ shrdl(r29, r30, 4); // shrd r29d, r30d, 4 IID10706 - __ shrdl(r29, r30, 8); // shrd r29d, r30d, 8 IID10707 - __ shrdl(r29, r30, 16); // shrd r29d, r30d, 16 IID10708 - __ shrdl(r30, r31, 1); // shrd r30d, r31d, 1 IID10709 - __ shrdl(r30, r31, 2); // shrd r30d, r31d, 2 IID10710 - __ shrdl(r30, r31, 4); // shrd r30d, r31d, 4 IID10711 - __ shrdl(r30, r31, 8); // shrd r30d, r31d, 8 IID10712 - __ shrdl(r30, r31, 16); // shrd r30d, r31d, 16 IID10713 - __ shrdl(r31, rcx, 1); // shrd r31d, ecx, 1 IID10714 - __ shrdl(r31, rcx, 2); // shrd r31d, ecx, 2 IID10715 - __ shrdl(r31, rcx, 4); // shrd r31d, ecx, 4 IID10716 - __ shrdl(r31, rcx, 8); // shrd r31d, ecx, 8 IID10717 - __ shrdl(r31, rcx, 16); // shrd r31d, ecx, 16 IID10718 -#endif // _LP64 - __ movzbl(rcx, Address(rdx, -0x68e4e799)); // movzx ecx, byte ptr [rdx-0x68e4e799] IID10719 -#ifdef _LP64 - __ movzbl(rdx, Address(rbx, r8, (Address::ScaleFactor)1, -0x366b23d0)); // movzx edx, byte ptr [rbx+r8*2-0x366b23d0] IID10720 - __ movzbl(rbx, Address(r8, r9, (Address::ScaleFactor)2, +0x33181dab)); // movzx ebx, byte ptr [r8+r9*4+0x33181dab] IID10721 - __ movzbl(r8, Address(r9, r10, (Address::ScaleFactor)2, -0x4fbc60f)); // movzx r8d, byte ptr [r9+r10*4-0x4fbc60f] IID10722 - __ movzbl(r9, Address(r10, r11, (Address::ScaleFactor)2, -0x6b8b981e)); // movzx r9d, byte ptr [r10+r11*4-0x6b8b981e] IID10723 - __ movzbl(r10, Address(r11, r12, (Address::ScaleFactor)3, -0x6c9cd939)); // movzx r10d, byte ptr [r11+r12*8-0x6c9cd939] IID10724 - __ movzbl(r11, Address(r12, r13, (Address::ScaleFactor)2, -0x38b03e29)); // movzx r11d, byte ptr [r12+r13*4-0x38b03e29] IID10725 - __ movzbl(r12, Address(r13, r14, (Address::ScaleFactor)3, +0x4f037a4b)); // movzx r12d, byte ptr [r13+r14*8+0x4f037a4b] IID10726 - __ movzbl(r13, Address(r14, r15, (Address::ScaleFactor)3, -0x7c19b8eb)); // movzx r13d, byte ptr [r14+r15*8-0x7c19b8eb] IID10727 - __ movzbl(r14, Address(r15, +0x44ceebf4)); // movzx r14d, byte ptr [r15+0x44ceebf4] IID10728 - __ movzbl(r15, Address(r16, +0x4124db1e)); // movzx r15d, byte ptr [r16+0x4124db1e] IID10729 - __ movzbl(r16, Address(r17, r18, (Address::ScaleFactor)1, -0x5775053e)); // movzx r16d, byte ptr [r17+r18*2-0x5775053e] IID10730 - __ movzbl(r17, Address(r18, +0x6e739861)); // movzx r17d, byte ptr [r18+0x6e739861] IID10731 - __ movzbl(r18, Address(r19, r20, (Address::ScaleFactor)2, +0x7edac3df)); // movzx r18d, byte ptr [r19+r20*4+0x7edac3df] IID10732 - __ movzbl(r19, Address(r20, r21, (Address::ScaleFactor)1, +0xa1c6a82)); // movzx r19d, byte ptr [r20+r21*2+0xa1c6a82] IID10733 - __ movzbl(r20, Address(r21, r22, (Address::ScaleFactor)1, -0x274a28a4)); // movzx r20d, byte ptr [r21+r22*2-0x274a28a4] IID10734 - __ movzbl(r21, Address(r22, r23, (Address::ScaleFactor)2, +0x35d36669)); // movzx r21d, byte ptr [r22+r23*4+0x35d36669] IID10735 - __ movzbl(r22, Address(r23, r24, (Address::ScaleFactor)0, +0x159e45a2)); // movzx r22d, byte ptr [r23+r24*1+0x159e45a2] IID10736 - __ movzbl(r23, Address(r24, r25, (Address::ScaleFactor)3, -0x42263d56)); // movzx r23d, byte ptr [r24+r25*8-0x42263d56] IID10737 - __ movzbl(r24, Address(r25, r26, (Address::ScaleFactor)0, -0x2b575438)); // movzx r24d, byte ptr [r25+r26*1-0x2b575438] IID10738 - __ movzbl(r25, Address(r26, -0x5e14329f)); // movzx r25d, byte ptr [r26-0x5e14329f] IID10739 - __ movzbl(r26, Address(r27, -0x2cbfb25f)); // movzx r26d, byte ptr [r27-0x2cbfb25f] IID10740 - __ movzbl(r27, Address(r28, r29, (Address::ScaleFactor)0, -0x4aef7951)); // movzx r27d, byte ptr [r28+r29*1-0x4aef7951] IID10741 - __ movzbl(r28, Address(r29, r30, (Address::ScaleFactor)3, -0x48431159)); // movzx r28d, byte ptr [r29+r30*8-0x48431159] IID10742 - __ movzbl(r29, Address(r30, r31, (Address::ScaleFactor)1, +0x44fb629)); // movzx r29d, byte ptr [r30+r31*2+0x44fb629] IID10743 - __ movzbl(r30, Address(r31, rcx, (Address::ScaleFactor)2, -0x8608a93)); // movzx r30d, byte ptr [r31+rcx*4-0x8608a93] IID10744 - __ movzbl(r31, Address(rcx, rdx, (Address::ScaleFactor)1, -0x4898dbc8)); // movzx r31d, byte ptr [rcx+rdx*2-0x4898dbc8] IID10745 -#endif // _LP64 - __ movzwl(rcx, Address(rdx, rbx, (Address::ScaleFactor)1, -0x337cb340)); // movzx ecx, word ptr [rdx+rbx*2-0x337cb340] IID10746 -#ifdef _LP64 - __ movzwl(rdx, Address(rbx, +0x44d22f71)); // movzx edx, word ptr [rbx+0x44d22f71] IID10747 - __ movzwl(rbx, Address(r8, r9, (Address::ScaleFactor)2, -0x26181bec)); // movzx ebx, word ptr [r8+r9*4-0x26181bec] IID10748 - __ movzwl(r8, Address(r9, +0x3d732d0f)); // movzx r8d, word ptr [r9+0x3d732d0f] IID10749 - __ movzwl(r9, Address(r10, r11, (Address::ScaleFactor)3, +0x152688b3)); // movzx r9d, word ptr [r10+r11*8+0x152688b3] IID10750 - __ movzwl(r10, Address(r11, r12, (Address::ScaleFactor)2, +0x45e2e87e)); // movzx r10d, word ptr [r11+r12*4+0x45e2e87e] IID10751 - __ movzwl(r11, Address(r12, r13, (Address::ScaleFactor)3, -0x35019e74)); // movzx r11d, word ptr [r12+r13*8-0x35019e74] IID10752 - __ movzwl(r12, Address(r13, r14, (Address::ScaleFactor)3, +0x51dcea8)); // movzx r12d, word ptr [r13+r14*8+0x51dcea8] IID10753 - __ movzwl(r13, Address(r14, +0x6190f3d5)); // movzx r13d, word ptr [r14+0x6190f3d5] IID10754 - __ movzwl(r14, Address(r15, r16, (Address::ScaleFactor)2, +0x365a8783)); // movzx r14d, word ptr [r15+r16*4+0x365a8783] IID10755 - __ movzwl(r15, Address(r16, -0x7c4cea6b)); // movzx r15d, word ptr [r16-0x7c4cea6b] IID10756 - __ movzwl(r16, Address(r17, r18, (Address::ScaleFactor)0, -0x5804ca3)); // movzx r16d, word ptr [r17+r18*1-0x5804ca3] IID10757 - __ movzwl(r17, Address(r18, r19, (Address::ScaleFactor)0, -0x34747bd3)); // movzx r17d, word ptr [r18+r19*1-0x34747bd3] IID10758 - __ movzwl(r18, Address(r19, +0x1998c84f)); // movzx r18d, word ptr [r19+0x1998c84f] IID10759 - __ movzwl(r19, Address(r20, r21, (Address::ScaleFactor)2, +0x4f9a5ed)); // movzx r19d, word ptr [r20+r21*4+0x4f9a5ed] IID10760 - __ movzwl(r20, Address(r21, r22, (Address::ScaleFactor)3, +0x2c5e835c)); // movzx r20d, word ptr [r21+r22*8+0x2c5e835c] IID10761 - __ movzwl(r21, Address(r22, r23, (Address::ScaleFactor)2, +0x7fcba5d2)); // movzx r21d, word ptr [r22+r23*4+0x7fcba5d2] IID10762 - __ movzwl(r22, Address(r23, r24, (Address::ScaleFactor)0, +0x49e484dc)); // movzx r22d, word ptr [r23+r24*1+0x49e484dc] IID10763 - __ movzwl(r23, Address(r24, r25, (Address::ScaleFactor)2, -0x7529ceed)); // movzx r23d, word ptr [r24+r25*4-0x7529ceed] IID10764 - __ movzwl(r24, Address(r25, -0x792cc0f8)); // movzx r24d, word ptr [r25-0x792cc0f8] IID10765 - __ movzwl(r25, Address(r26, +0x1ab8bb4f)); // movzx r25d, word ptr [r26+0x1ab8bb4f] IID10766 - __ movzwl(r26, Address(r27, r28, (Address::ScaleFactor)2, +0x7caf446e)); // movzx r26d, word ptr [r27+r28*4+0x7caf446e] IID10767 - __ movzwl(r27, Address(r28, r29, (Address::ScaleFactor)2, -0x5a3d5b42)); // movzx r27d, word ptr [r28+r29*4-0x5a3d5b42] IID10768 - __ movzwl(r28, Address(r29, r30, (Address::ScaleFactor)3, -0x4b03ff4a)); // movzx r28d, word ptr [r29+r30*8-0x4b03ff4a] IID10769 - __ movzwl(r29, Address(r30, r31, (Address::ScaleFactor)1, -0x5d2cf94c)); // movzx r29d, word ptr [r30+r31*2-0x5d2cf94c] IID10770 - __ movzwl(r30, Address(r31, rcx, (Address::ScaleFactor)2, -0x6dfa6c11)); // movzx r30d, word ptr [r31+rcx*4-0x6dfa6c11] IID10771 - __ movzwl(r31, Address(rcx, rdx, (Address::ScaleFactor)1, +0x18d9debd)); // movzx r31d, word ptr [rcx+rdx*2+0x18d9debd] IID10772 -#endif // _LP64 - __ movsbl(rcx, Address(rdx, rbx, (Address::ScaleFactor)2, +0x16009c60)); // movsx ecx, byte ptr [rdx+rbx*4+0x16009c60] IID10773 -#ifdef _LP64 - __ movsbl(rdx, Address(rbx, r8, (Address::ScaleFactor)2, +0x31e09b78)); // movsx edx, byte ptr [rbx+r8*4+0x31e09b78] IID10774 - __ movsbl(rbx, Address(r8, +0x2cf3a8aa)); // movsx ebx, byte ptr [r8+0x2cf3a8aa] IID10775 - __ movsbl(r8, Address(r9, r10, (Address::ScaleFactor)3, +0x64d2e26d)); // movsx r8d, byte ptr [r9+r10*8+0x64d2e26d] IID10776 - __ movsbl(r9, Address(r10, +0x7b9bc497)); // movsx r9d, byte ptr [r10+0x7b9bc497] IID10777 - __ movsbl(r10, Address(r11, r12, (Address::ScaleFactor)0, +0x21c94b8a)); // movsx r10d, byte ptr [r11+r12*1+0x21c94b8a] IID10778 - __ movsbl(r11, Address(r12, r13, (Address::ScaleFactor)0, -0x7d13f584)); // movsx r11d, byte ptr [r12+r13*1-0x7d13f584] IID10779 - __ movsbl(r12, Address(r13, r14, (Address::ScaleFactor)0, +0x5c16ec27)); // movsx r12d, byte ptr [r13+r14*1+0x5c16ec27] IID10780 - __ movsbl(r13, Address(r14, r15, (Address::ScaleFactor)2, +0x4361a1b0)); // movsx r13d, byte ptr [r14+r15*4+0x4361a1b0] IID10781 - __ movsbl(r14, Address(r15, r16, (Address::ScaleFactor)2, -0x882166b)); // movsx r14d, byte ptr [r15+r16*4-0x882166b] IID10782 - __ movsbl(r15, Address(r16, r17, (Address::ScaleFactor)1, -0x4a349cb0)); // movsx r15d, byte ptr [r16+r17*2-0x4a349cb0] IID10783 - __ movsbl(r16, Address(r17, r18, (Address::ScaleFactor)3, +0x4fde8d5d)); // movsx r16d, byte ptr [r17+r18*8+0x4fde8d5d] IID10784 - __ movsbl(r17, Address(r18, r19, (Address::ScaleFactor)2, +0x7118d208)); // movsx r17d, byte ptr [r18+r19*4+0x7118d208] IID10785 - __ movsbl(r18, Address(r19, r20, (Address::ScaleFactor)0, -0x5de0a978)); // movsx r18d, byte ptr [r19+r20*1-0x5de0a978] IID10786 - __ movsbl(r19, Address(r20, -0x513c222a)); // movsx r19d, byte ptr [r20-0x513c222a] IID10787 - __ movsbl(r20, Address(r21, r22, (Address::ScaleFactor)3, -0x45e1b2fd)); // movsx r20d, byte ptr [r21+r22*8-0x45e1b2fd] IID10788 - __ movsbl(r21, Address(r22, r23, (Address::ScaleFactor)0, +0x42626ccb)); // movsx r21d, byte ptr [r22+r23*1+0x42626ccb] IID10789 - __ movsbl(r22, Address(r23, r24, (Address::ScaleFactor)0, +0x1502ca25)); // movsx r22d, byte ptr [r23+r24*1+0x1502ca25] IID10790 - __ movsbl(r23, Address(r24, r25, (Address::ScaleFactor)3, +0x7485eda8)); // movsx r23d, byte ptr [r24+r25*8+0x7485eda8] IID10791 - __ movsbl(r24, Address(r25, r26, (Address::ScaleFactor)3, +0x28a9749e)); // movsx r24d, byte ptr [r25+r26*8+0x28a9749e] IID10792 - __ movsbl(r25, Address(r26, r27, (Address::ScaleFactor)2, +0xf286398)); // movsx r25d, byte ptr [r26+r27*4+0xf286398] IID10793 - __ movsbl(r26, Address(r27, r28, (Address::ScaleFactor)1, +0x1467db0e)); // movsx r26d, byte ptr [r27+r28*2+0x1467db0e] IID10794 - __ movsbl(r27, Address(r28, r29, (Address::ScaleFactor)3, -0x61b52f42)); // movsx r27d, byte ptr [r28+r29*8-0x61b52f42] IID10795 - __ movsbl(r28, Address(r29, r30, (Address::ScaleFactor)2, -0x3660257f)); // movsx r28d, byte ptr [r29+r30*4-0x3660257f] IID10796 - __ movsbl(r29, Address(r30, r31, (Address::ScaleFactor)0, -0x1cd86438)); // movsx r29d, byte ptr [r30+r31*1-0x1cd86438] IID10797 - __ movsbl(r30, Address(r31, rcx, (Address::ScaleFactor)3, +0x71035193)); // movsx r30d, byte ptr [r31+rcx*8+0x71035193] IID10798 - __ movsbl(r31, Address(rcx, rdx, (Address::ScaleFactor)0, +0x66c8ba71)); // movsx r31d, byte ptr [rcx+rdx*1+0x66c8ba71] IID10799 -#endif // _LP64 - __ movswl(rcx, Address(rdx, rbx, (Address::ScaleFactor)0, +0x39de01ff)); // movsx ecx, word ptr [rdx+rbx*1+0x39de01ff] IID10800 -#ifdef _LP64 - __ movswl(rdx, Address(rbx, r8, (Address::ScaleFactor)2, +0x16f2bdd4)); // movsx edx, word ptr [rbx+r8*4+0x16f2bdd4] IID10801 - __ movswl(rbx, Address(r8, +0x7870b962)); // movsx ebx, word ptr [r8+0x7870b962] IID10802 - __ movswl(r8, Address(r9, r10, (Address::ScaleFactor)0, -0x68e57d24)); // movsx r8d, word ptr [r9+r10*1-0x68e57d24] IID10803 - __ movswl(r9, Address(r10, r11, (Address::ScaleFactor)1, -0x1d5f8e24)); // movsx r9d, word ptr [r10+r11*2-0x1d5f8e24] IID10804 - __ movswl(r10, Address(r11, r12, (Address::ScaleFactor)1, -0x70e4c19e)); // movsx r10d, word ptr [r11+r12*2-0x70e4c19e] IID10805 - __ movswl(r11, Address(r12, -0x4e3023f2)); // movsx r11d, word ptr [r12-0x4e3023f2] IID10806 - __ movswl(r12, Address(r13, r14, (Address::ScaleFactor)0, -0x1adfcbde)); // movsx r12d, word ptr [r13+r14*1-0x1adfcbde] IID10807 - __ movswl(r13, Address(r14, r15, (Address::ScaleFactor)3, -0x41f424b5)); // movsx r13d, word ptr [r14+r15*8-0x41f424b5] IID10808 - __ movswl(r14, Address(r15, r16, (Address::ScaleFactor)0, +0x71edb6fa)); // movsx r14d, word ptr [r15+r16*1+0x71edb6fa] IID10809 - __ movswl(r15, Address(r16, r17, (Address::ScaleFactor)0, -0xd982224)); // movsx r15d, word ptr [r16+r17*1-0xd982224] IID10810 - __ movswl(r16, Address(r17, r18, (Address::ScaleFactor)1, -0x3300abcf)); // movsx r16d, word ptr [r17+r18*2-0x3300abcf] IID10811 - __ movswl(r17, Address(r18, r19, (Address::ScaleFactor)3, -0x2c0807c6)); // movsx r17d, word ptr [r18+r19*8-0x2c0807c6] IID10812 - __ movswl(r18, Address(r19, r20, (Address::ScaleFactor)0, -0x78b3ef97)); // movsx r18d, word ptr [r19+r20*1-0x78b3ef97] IID10813 - __ movswl(r19, Address(r20, -0x2ecc56c)); // movsx r19d, word ptr [r20-0x2ecc56c] IID10814 - __ movswl(r20, Address(r21, r22, (Address::ScaleFactor)1, +0x6a25c838)); // movsx r20d, word ptr [r21+r22*2+0x6a25c838] IID10815 - __ movswl(r21, Address(r22, r23, (Address::ScaleFactor)2, +0x7884c026)); // movsx r21d, word ptr [r22+r23*4+0x7884c026] IID10816 - __ movswl(r22, Address(r23, r24, (Address::ScaleFactor)2, +0xfc157bc)); // movsx r22d, word ptr [r23+r24*4+0xfc157bc] IID10817 - __ movswl(r23, Address(r24, r25, (Address::ScaleFactor)0, +0x5e7e87b6)); // movsx r23d, word ptr [r24+r25*1+0x5e7e87b6] IID10818 - __ movswl(r24, Address(r25, r26, (Address::ScaleFactor)0, +0x35a3e720)); // movsx r24d, word ptr [r25+r26*1+0x35a3e720] IID10819 - __ movswl(r25, Address(r26, +0x4049d42f)); // movsx r25d, word ptr [r26+0x4049d42f] IID10820 - __ movswl(r26, Address(r27, r28, (Address::ScaleFactor)2, +0x47487709)); // movsx r26d, word ptr [r27+r28*4+0x47487709] IID10821 - __ movswl(r27, Address(r28, r29, (Address::ScaleFactor)0, +0x113ba6d4)); // movsx r27d, word ptr [r28+r29*1+0x113ba6d4] IID10822 - __ movswl(r28, Address(r29, r30, (Address::ScaleFactor)1, +0x7bb5f58e)); // movsx r28d, word ptr [r29+r30*2+0x7bb5f58e] IID10823 - __ movswl(r29, Address(r30, r31, (Address::ScaleFactor)2, +0x271967d4)); // movsx r29d, word ptr [r30+r31*4+0x271967d4] IID10824 - __ movswl(r30, Address(r31, rcx, (Address::ScaleFactor)2, +0xe0b64c5)); // movsx r30d, word ptr [r31+rcx*4+0xe0b64c5] IID10825 - __ movswl(r31, Address(rcx, -0x66686f74)); // movsx r31d, word ptr [rcx-0x66686f74] IID10826 -#endif // _LP64 - __ movzbl(rcx, rdx); // movzx ecx, dl IID10827 - __ movzbl(rdx, rbx); // movzx edx, bl IID10828 -#ifdef _LP64 - __ movzbl(rbx, r8); // movzx ebx, r8b IID10829 - __ movzbl(r8, r9); // movzx r8d, r9b IID10830 - __ movzbl(r9, r10); // movzx r9d, r10b IID10831 - __ movzbl(r10, r11); // movzx r10d, r11b IID10832 - __ movzbl(r11, r12); // movzx r11d, r12b IID10833 - __ movzbl(r12, r13); // movzx r12d, r13b IID10834 - __ movzbl(r13, r14); // movzx r13d, r14b IID10835 - __ movzbl(r14, r15); // movzx r14d, r15b IID10836 - __ movzbl(r15, r16); // movzx r15d, r16b IID10837 - __ movzbl(r16, r17); // movzx r16d, r17b IID10838 - __ movzbl(r17, r18); // movzx r17d, r18b IID10839 - __ movzbl(r18, r19); // movzx r18d, r19b IID10840 - __ movzbl(r19, r20); // movzx r19d, r20b IID10841 - __ movzbl(r20, r21); // movzx r20d, r21b IID10842 - __ movzbl(r21, r22); // movzx r21d, r22b IID10843 - __ movzbl(r22, r23); // movzx r22d, r23b IID10844 - __ movzbl(r23, r24); // movzx r23d, r24b IID10845 - __ movzbl(r24, r25); // movzx r24d, r25b IID10846 - __ movzbl(r25, r26); // movzx r25d, r26b IID10847 - __ movzbl(r26, r27); // movzx r26d, r27b IID10848 - __ movzbl(r27, r28); // movzx r27d, r28b IID10849 - __ movzbl(r28, r29); // movzx r28d, r29b IID10850 - __ movzbl(r29, r30); // movzx r29d, r30b IID10851 - __ movzbl(r30, r31); // movzx r30d, r31b IID10852 - __ movzbl(r31, rcx); // movzx r31d, cl IID10853 -#endif // _LP64 - __ movzwl(rcx, rdx); // movzx ecx, dx IID10854 - __ movzwl(rdx, rbx); // movzx edx, bx IID10855 -#ifdef _LP64 - __ movzwl(rbx, r8); // movzx ebx, r8w IID10856 - __ movzwl(r8, r9); // movzx r8d, r9w IID10857 - __ movzwl(r9, r10); // movzx r9d, r10w IID10858 - __ movzwl(r10, r11); // movzx r10d, r11w IID10859 - __ movzwl(r11, r12); // movzx r11d, r12w IID10860 - __ movzwl(r12, r13); // movzx r12d, r13w IID10861 - __ movzwl(r13, r14); // movzx r13d, r14w IID10862 - __ movzwl(r14, r15); // movzx r14d, r15w IID10863 - __ movzwl(r15, r16); // movzx r15d, r16w IID10864 - __ movzwl(r16, r17); // movzx r16d, r17w IID10865 - __ movzwl(r17, r18); // movzx r17d, r18w IID10866 - __ movzwl(r18, r19); // movzx r18d, r19w IID10867 - __ movzwl(r19, r20); // movzx r19d, r20w IID10868 - __ movzwl(r20, r21); // movzx r20d, r21w IID10869 - __ movzwl(r21, r22); // movzx r21d, r22w IID10870 - __ movzwl(r22, r23); // movzx r22d, r23w IID10871 - __ movzwl(r23, r24); // movzx r23d, r24w IID10872 - __ movzwl(r24, r25); // movzx r24d, r25w IID10873 - __ movzwl(r25, r26); // movzx r25d, r26w IID10874 - __ movzwl(r26, r27); // movzx r26d, r27w IID10875 - __ movzwl(r27, r28); // movzx r27d, r28w IID10876 - __ movzwl(r28, r29); // movzx r28d, r29w IID10877 - __ movzwl(r29, r30); // movzx r29d, r30w IID10878 - __ movzwl(r30, r31); // movzx r30d, r31w IID10879 - __ movzwl(r31, rcx); // movzx r31d, cx IID10880 -#endif // _LP64 - __ movsbl(rcx, rdx); // movsx ecx, dl IID10881 - __ movsbl(rdx, rbx); // movsx edx, bl IID10882 -#ifdef _LP64 - __ movsbl(rbx, r8); // movsx ebx, r8b IID10883 - __ movsbl(r8, r9); // movsx r8d, r9b IID10884 - __ movsbl(r9, r10); // movsx r9d, r10b IID10885 - __ movsbl(r10, r11); // movsx r10d, r11b IID10886 - __ movsbl(r11, r12); // movsx r11d, r12b IID10887 - __ movsbl(r12, r13); // movsx r12d, r13b IID10888 - __ movsbl(r13, r14); // movsx r13d, r14b IID10889 - __ movsbl(r14, r15); // movsx r14d, r15b IID10890 - __ movsbl(r15, r16); // movsx r15d, r16b IID10891 - __ movsbl(r16, r17); // movsx r16d, r17b IID10892 - __ movsbl(r17, r18); // movsx r17d, r18b IID10893 - __ movsbl(r18, r19); // movsx r18d, r19b IID10894 - __ movsbl(r19, r20); // movsx r19d, r20b IID10895 - __ movsbl(r20, r21); // movsx r20d, r21b IID10896 - __ movsbl(r21, r22); // movsx r21d, r22b IID10897 - __ movsbl(r22, r23); // movsx r22d, r23b IID10898 - __ movsbl(r23, r24); // movsx r23d, r24b IID10899 - __ movsbl(r24, r25); // movsx r24d, r25b IID10900 - __ movsbl(r25, r26); // movsx r25d, r26b IID10901 - __ movsbl(r26, r27); // movsx r26d, r27b IID10902 - __ movsbl(r27, r28); // movsx r27d, r28b IID10903 - __ movsbl(r28, r29); // movsx r28d, r29b IID10904 - __ movsbl(r29, r30); // movsx r29d, r30b IID10905 - __ movsbl(r30, r31); // movsx r30d, r31b IID10906 - __ movsbl(r31, rcx); // movsx r31d, cl IID10907 -#endif // _LP64 - __ movswl(rcx, rdx); // movsx ecx, dx IID10908 - __ movswl(rdx, rbx); // movsx edx, bx IID10909 -#ifdef _LP64 - __ movswl(rbx, r8); // movsx ebx, r8w IID10910 - __ movswl(r8, r9); // movsx r8d, r9w IID10911 - __ movswl(r9, r10); // movsx r9d, r10w IID10912 - __ movswl(r10, r11); // movsx r10d, r11w IID10913 - __ movswl(r11, r12); // movsx r11d, r12w IID10914 - __ movswl(r12, r13); // movsx r12d, r13w IID10915 - __ movswl(r13, r14); // movsx r13d, r14w IID10916 - __ movswl(r14, r15); // movsx r14d, r15w IID10917 - __ movswl(r15, r16); // movsx r15d, r16w IID10918 - __ movswl(r16, r17); // movsx r16d, r17w IID10919 - __ movswl(r17, r18); // movsx r17d, r18w IID10920 - __ movswl(r18, r19); // movsx r18d, r19w IID10921 - __ movswl(r19, r20); // movsx r19d, r20w IID10922 - __ movswl(r20, r21); // movsx r20d, r21w IID10923 - __ movswl(r21, r22); // movsx r21d, r22w IID10924 - __ movswl(r22, r23); // movsx r22d, r23w IID10925 - __ movswl(r23, r24); // movsx r23d, r24w IID10926 - __ movswl(r24, r25); // movsx r24d, r25w IID10927 - __ movswl(r25, r26); // movsx r25d, r26w IID10928 - __ movswl(r26, r27); // movsx r26d, r27w IID10929 - __ movswl(r27, r28); // movsx r27d, r28w IID10930 - __ movswl(r28, r29); // movsx r28d, r29w IID10931 - __ movswl(r29, r30); // movsx r29d, r30w IID10932 - __ movswl(r30, r31); // movsx r30d, r31w IID10933 - __ movswl(r31, rcx); // movsx r31d, cx IID10934 -#endif // _LP64 - __ cmpxchgb(rcx, Address(rdx, rbx, (Address::ScaleFactor)3, +0x51b8d2e4)); // cmpxchg byte ptr [rdx+rbx*8+0x51b8d2e4], cl IID10935 -#ifdef _LP64 - __ cmpxchgb(rdx, Address(rbx, +0x2ac908bc)); // cmpxchg byte ptr [rbx+0x2ac908bc], dl IID10936 - __ cmpxchgb(rbx, Address(r8, +0x7cf9b5cc)); // cmpxchg byte ptr [r8+0x7cf9b5cc], bl IID10937 - __ cmpxchgb(r8, Address(r9, r10, (Address::ScaleFactor)3, +0x5d6e2310)); // cmpxchg byte ptr [r9+r10*8+0x5d6e2310], r8b IID10938 - __ cmpxchgb(r9, Address(r10, r11, (Address::ScaleFactor)1, -0x5d008840)); // cmpxchg byte ptr [r10+r11*2-0x5d008840], r9b IID10939 - __ cmpxchgb(r10, Address(r11, r12, (Address::ScaleFactor)1, +0xdcc3afb)); // cmpxchg byte ptr [r11+r12*2+0xdcc3afb], r10b IID10940 - __ cmpxchgb(r11, Address(r12, r13, (Address::ScaleFactor)1, -0x3a642be6)); // cmpxchg byte ptr [r12+r13*2-0x3a642be6], r11b IID10941 - __ cmpxchgb(r12, Address(r13, r14, (Address::ScaleFactor)2, +0x764a4522)); // cmpxchg byte ptr [r13+r14*4+0x764a4522], r12b IID10942 - __ cmpxchgb(r13, Address(r14, r15, (Address::ScaleFactor)0, -0x3e62f3b3)); // cmpxchg byte ptr [r14+r15*1-0x3e62f3b3], r13b IID10943 - __ cmpxchgb(r14, Address(r15, r16, (Address::ScaleFactor)2, -0x41b29e1b)); // cmpxchg byte ptr [r15+r16*4-0x41b29e1b], r14b IID10944 - __ cmpxchgb(r15, Address(r16, r17, (Address::ScaleFactor)1, +0x1bc358bd)); // cmpxchg byte ptr [r16+r17*2+0x1bc358bd], r15b IID10945 - __ cmpxchgb(r16, Address(r17, r18, (Address::ScaleFactor)1, -0x6fbbb1e6)); // cmpxchg byte ptr [r17+r18*2-0x6fbbb1e6], r16b IID10946 - __ cmpxchgb(r17, Address(r18, r19, (Address::ScaleFactor)0, +0x6c5368b6)); // cmpxchg byte ptr [r18+r19*1+0x6c5368b6], r17b IID10947 - __ cmpxchgb(r18, Address(r19, -0x203fe70b)); // cmpxchg byte ptr [r19-0x203fe70b], r18b IID10948 - __ cmpxchgb(r19, Address(r20, r21, (Address::ScaleFactor)3, +0x44d8437e)); // cmpxchg byte ptr [r20+r21*8+0x44d8437e], r19b IID10949 - __ cmpxchgb(r20, Address(r21, r22, (Address::ScaleFactor)2, +0x14c6de41)); // cmpxchg byte ptr [r21+r22*4+0x14c6de41], r20b IID10950 - __ cmpxchgb(r21, Address(r22, r23, (Address::ScaleFactor)0, -0x76a8bde0)); // cmpxchg byte ptr [r22+r23*1-0x76a8bde0], r21b IID10951 - __ cmpxchgb(r22, Address(r23, r24, (Address::ScaleFactor)1, -0x115b297f)); // cmpxchg byte ptr [r23+r24*2-0x115b297f], r22b IID10952 - __ cmpxchgb(r23, Address(r24, r25, (Address::ScaleFactor)0, +0x2fa53e4f)); // cmpxchg byte ptr [r24+r25*1+0x2fa53e4f], r23b IID10953 - __ cmpxchgb(r24, Address(r25, r26, (Address::ScaleFactor)3, +0x2be61aca)); // cmpxchg byte ptr [r25+r26*8+0x2be61aca], r24b IID10954 - __ cmpxchgb(r25, Address(r26, -0x20cd1eaf)); // cmpxchg byte ptr [r26-0x20cd1eaf], r25b IID10955 - __ cmpxchgb(r26, Address(r27, r28, (Address::ScaleFactor)1, -0x4683fd79)); // cmpxchg byte ptr [r27+r28*2-0x4683fd79], r26b IID10956 - __ cmpxchgb(r27, Address(r28, -0x6dca93cb)); // cmpxchg byte ptr [r28-0x6dca93cb], r27b IID10957 - __ cmpxchgb(r28, Address(r29, r30, (Address::ScaleFactor)0, +0x3fd41297)); // cmpxchg byte ptr [r29+r30*1+0x3fd41297], r28b IID10958 - __ cmpxchgb(r29, Address(r30, +0x62ebe77e)); // cmpxchg byte ptr [r30+0x62ebe77e], r29b IID10959 - __ cmpxchgb(r30, Address(r31, rcx, (Address::ScaleFactor)0, +0x7d4a66de)); // cmpxchg byte ptr [r31+rcx*1+0x7d4a66de], r30b IID10960 - __ cmpxchgb(r31, Address(rcx, +0x5e94ba2b)); // cmpxchg byte ptr [rcx+0x5e94ba2b], r31b IID10961 -#endif // _LP64 - __ cmpxchgw(rcx, Address(rdx, rbx, (Address::ScaleFactor)0, -0x32b0a601)); // cmpxchg word ptr [rdx+rbx*1-0x32b0a601], cx IID10962 -#ifdef _LP64 - __ cmpxchgw(rdx, Address(rbx, r8, (Address::ScaleFactor)3, +0x7a448d)); // cmpxchg word ptr [rbx+r8*8+0x7a448d], dx IID10963 - __ cmpxchgw(rbx, Address(r8, r9, (Address::ScaleFactor)2, +0x465556e)); // cmpxchg word ptr [r8+r9*4+0x465556e], bx IID10964 - __ cmpxchgw(r8, Address(r9, r10, (Address::ScaleFactor)3, +0x11e82150)); // cmpxchg word ptr [r9+r10*8+0x11e82150], r8w IID10965 - __ cmpxchgw(r9, Address(r10, r11, (Address::ScaleFactor)3, -0x8f95f21)); // cmpxchg word ptr [r10+r11*8-0x8f95f21], r9w IID10966 - __ cmpxchgw(r10, Address(r11, r12, (Address::ScaleFactor)1, +0x22c46643)); // cmpxchg word ptr [r11+r12*2+0x22c46643], r10w IID10967 - __ cmpxchgw(r11, Address(r12, r13, (Address::ScaleFactor)3, +0x4f3d4330)); // cmpxchg word ptr [r12+r13*8+0x4f3d4330], r11w IID10968 - __ cmpxchgw(r12, Address(r13, r14, (Address::ScaleFactor)2, +0x5f15a67)); // cmpxchg word ptr [r13+r14*4+0x5f15a67], r12w IID10969 - __ cmpxchgw(r13, Address(r14, r15, (Address::ScaleFactor)2, -0x5181857e)); // cmpxchg word ptr [r14+r15*4-0x5181857e], r13w IID10970 - __ cmpxchgw(r14, Address(r15, r16, (Address::ScaleFactor)0, -0x8cd2866)); // cmpxchg word ptr [r15+r16*1-0x8cd2866], r14w IID10971 - __ cmpxchgw(r15, Address(r16, r17, (Address::ScaleFactor)2, -0x7512f9da)); // cmpxchg word ptr [r16+r17*4-0x7512f9da], r15w IID10972 - __ cmpxchgw(r16, Address(r17, +0x7edb9e76)); // cmpxchg word ptr [r17+0x7edb9e76], r16w IID10973 - __ cmpxchgw(r17, Address(r18, r19, (Address::ScaleFactor)3, +0x10a69728)); // cmpxchg word ptr [r18+r19*8+0x10a69728], r17w IID10974 - __ cmpxchgw(r18, Address(r19, r20, (Address::ScaleFactor)2, +0x7df98267)); // cmpxchg word ptr [r19+r20*4+0x7df98267], r18w IID10975 - __ cmpxchgw(r19, Address(r20, r21, (Address::ScaleFactor)1, +0x325f92ba)); // cmpxchg word ptr [r20+r21*2+0x325f92ba], r19w IID10976 - __ cmpxchgw(r20, Address(r21, r22, (Address::ScaleFactor)3, -0x6c9db161)); // cmpxchg word ptr [r21+r22*8-0x6c9db161], r20w IID10977 - __ cmpxchgw(r21, Address(r22, r23, (Address::ScaleFactor)3, -0x51087858)); // cmpxchg word ptr [r22+r23*8-0x51087858], r21w IID10978 - __ cmpxchgw(r22, Address(r23, r24, (Address::ScaleFactor)0, -0x1d1b3093)); // cmpxchg word ptr [r23+r24*1-0x1d1b3093], r22w IID10979 - __ cmpxchgw(r23, Address(r24, r25, (Address::ScaleFactor)2, -0x742e0e6f)); // cmpxchg word ptr [r24+r25*4-0x742e0e6f], r23w IID10980 - __ cmpxchgw(r24, Address(r25, r26, (Address::ScaleFactor)3, -0x6c46d5f5)); // cmpxchg word ptr [r25+r26*8-0x6c46d5f5], r24w IID10981 - __ cmpxchgw(r25, Address(r26, r27, (Address::ScaleFactor)3, -0x29c2519f)); // cmpxchg word ptr [r26+r27*8-0x29c2519f], r25w IID10982 - __ cmpxchgw(r26, Address(r27, r28, (Address::ScaleFactor)0, -0x57fb6fa8)); // cmpxchg word ptr [r27+r28*1-0x57fb6fa8], r26w IID10983 - __ cmpxchgw(r27, Address(r28, r29, (Address::ScaleFactor)1, -0x7d041b06)); // cmpxchg word ptr [r28+r29*2-0x7d041b06], r27w IID10984 - __ cmpxchgw(r28, Address(r29, r30, (Address::ScaleFactor)0, +0x1aa384de)); // cmpxchg word ptr [r29+r30*1+0x1aa384de], r28w IID10985 - __ cmpxchgw(r29, Address(r30, +0x5b0b3c3)); // cmpxchg word ptr [r30+0x5b0b3c3], r29w IID10986 - __ cmpxchgw(r30, Address(r31, rcx, (Address::ScaleFactor)3, +0x307e8bb)); // cmpxchg word ptr [r31+rcx*8+0x307e8bb], r30w IID10987 - __ cmpxchgw(r31, Address(rcx, rdx, (Address::ScaleFactor)0, -0x2bdd89a9)); // cmpxchg word ptr [rcx+rdx*1-0x2bdd89a9], r31w IID10988 -#endif // _LP64 - __ cmpxchgl(rcx, Address(rdx, rbx, (Address::ScaleFactor)1, +0x2c2bb444)); // cmpxchg dword ptr [rdx+rbx*2+0x2c2bb444], ecx IID10989 -#ifdef _LP64 - __ cmpxchgl(rdx, Address(rbx, r8, (Address::ScaleFactor)0, +0x6328abe)); // cmpxchg dword ptr [rbx+r8*1+0x6328abe], edx IID10990 - __ cmpxchgl(rbx, Address(r8, r9, (Address::ScaleFactor)2, +0x1e5ac7d6)); // cmpxchg dword ptr [r8+r9*4+0x1e5ac7d6], ebx IID10991 - __ cmpxchgl(r8, Address(r9, r10, (Address::ScaleFactor)1, -0x433ac08a)); // cmpxchg dword ptr [r9+r10*2-0x433ac08a], r8d IID10992 - __ cmpxchgl(r9, Address(r10, r11, (Address::ScaleFactor)1, -0x73fb3972)); // cmpxchg dword ptr [r10+r11*2-0x73fb3972], r9d IID10993 - __ cmpxchgl(r10, Address(r11, r12, (Address::ScaleFactor)0, +0x5c31cfb1)); // cmpxchg dword ptr [r11+r12*1+0x5c31cfb1], r10d IID10994 - __ cmpxchgl(r11, Address(r12, r13, (Address::ScaleFactor)1, +0x69736505)); // cmpxchg dword ptr [r12+r13*2+0x69736505], r11d IID10995 - __ cmpxchgl(r12, Address(r13, r14, (Address::ScaleFactor)1, +0x646c42ad)); // cmpxchg dword ptr [r13+r14*2+0x646c42ad], r12d IID10996 - __ cmpxchgl(r13, Address(r14, r15, (Address::ScaleFactor)3, -0x6d94751a)); // cmpxchg dword ptr [r14+r15*8-0x6d94751a], r13d IID10997 - __ cmpxchgl(r14, Address(r15, r16, (Address::ScaleFactor)2, +0x6cff52d4)); // cmpxchg dword ptr [r15+r16*4+0x6cff52d4], r14d IID10998 - __ cmpxchgl(r15, Address(r16, -0x57e43d5b)); // cmpxchg dword ptr [r16-0x57e43d5b], r15d IID10999 - __ cmpxchgl(r16, Address(r17, r18, (Address::ScaleFactor)0, +0x68557fba)); // cmpxchg dword ptr [r17+r18*1+0x68557fba], r16d IID11000 - __ cmpxchgl(r17, Address(r18, r19, (Address::ScaleFactor)0, +0x3d6f913)); // cmpxchg dword ptr [r18+r19*1+0x3d6f913], r17d IID11001 - __ cmpxchgl(r18, Address(r19, -0x7cdca8a2)); // cmpxchg dword ptr [r19-0x7cdca8a2], r18d IID11002 - __ cmpxchgl(r19, Address(r20, +0x273958c0)); // cmpxchg dword ptr [r20+0x273958c0], r19d IID11003 - __ cmpxchgl(r20, Address(r21, r22, (Address::ScaleFactor)3, +0x200bac2d)); // cmpxchg dword ptr [r21+r22*8+0x200bac2d], r20d IID11004 - __ cmpxchgl(r21, Address(r22, r23, (Address::ScaleFactor)0, +0x7257be67)); // cmpxchg dword ptr [r22+r23*1+0x7257be67], r21d IID11005 - __ cmpxchgl(r22, Address(r23, r24, (Address::ScaleFactor)1, +0x7466d177)); // cmpxchg dword ptr [r23+r24*2+0x7466d177], r22d IID11006 - __ cmpxchgl(r23, Address(r24, r25, (Address::ScaleFactor)3, +0x86208b0)); // cmpxchg dword ptr [r24+r25*8+0x86208b0], r23d IID11007 - __ cmpxchgl(r24, Address(r25, r26, (Address::ScaleFactor)2, +0x59909df4)); // cmpxchg dword ptr [r25+r26*4+0x59909df4], r24d IID11008 - __ cmpxchgl(r25, Address(r26, r27, (Address::ScaleFactor)1, +0x7966f9d9)); // cmpxchg dword ptr [r26+r27*2+0x7966f9d9], r25d IID11009 - __ cmpxchgl(r26, Address(r27, +0x6befdf70)); // cmpxchg dword ptr [r27+0x6befdf70], r26d IID11010 - __ cmpxchgl(r27, Address(r28, r29, (Address::ScaleFactor)3, -0x51a0e58a)); // cmpxchg dword ptr [r28+r29*8-0x51a0e58a], r27d IID11011 - __ cmpxchgl(r28, Address(r29, r30, (Address::ScaleFactor)3, +0x7ef9f40f)); // cmpxchg dword ptr [r29+r30*8+0x7ef9f40f], r28d IID11012 - __ cmpxchgl(r29, Address(r30, +0x78987bff)); // cmpxchg dword ptr [r30+0x78987bff], r29d IID11013 - __ cmpxchgl(r30, Address(r31, rcx, (Address::ScaleFactor)2, +0x5d4426be)); // cmpxchg dword ptr [r31+rcx*4+0x5d4426be], r30d IID11014 - __ cmpxchgl(r31, Address(rcx, rdx, (Address::ScaleFactor)0, +0x6274242)); // cmpxchg dword ptr [rcx+rdx*1+0x6274242], r31d IID11015 -#endif // _LP64 -#ifdef _LP64 - __ adcq(rcx, rdx); // {load}adc rcx, rdx IID11016 - __ adcq(rdx, rbx); // {load}adc rdx, rbx IID11017 - __ adcq(rbx, r8); // {load}adc rbx, r8 IID11018 - __ adcq(r8, r9); // {load}adc r8, r9 IID11019 - __ adcq(r9, r10); // {load}adc r9, r10 IID11020 - __ adcq(r10, r11); // {load}adc r10, r11 IID11021 - __ adcq(r11, r12); // {load}adc r11, r12 IID11022 - __ adcq(r12, r13); // {load}adc r12, r13 IID11023 - __ adcq(r13, r14); // {load}adc r13, r14 IID11024 - __ adcq(r14, r15); // {load}adc r14, r15 IID11025 - __ adcq(r15, r16); // {load}adc r15, r16 IID11026 - __ adcq(r16, r17); // {load}adc r16, r17 IID11027 - __ adcq(r17, r18); // {load}adc r17, r18 IID11028 - __ adcq(r18, r19); // {load}adc r18, r19 IID11029 - __ adcq(r19, r20); // {load}adc r19, r20 IID11030 - __ adcq(r20, r21); // {load}adc r20, r21 IID11031 - __ adcq(r21, r22); // {load}adc r21, r22 IID11032 - __ adcq(r22, r23); // {load}adc r22, r23 IID11033 - __ adcq(r23, r24); // {load}adc r23, r24 IID11034 - __ adcq(r24, r25); // {load}adc r24, r25 IID11035 - __ adcq(r25, r26); // {load}adc r25, r26 IID11036 - __ adcq(r26, r27); // {load}adc r26, r27 IID11037 - __ adcq(r27, r28); // {load}adc r27, r28 IID11038 - __ adcq(r28, r29); // {load}adc r28, r29 IID11039 - __ adcq(r29, r30); // {load}adc r29, r30 IID11040 - __ adcq(r30, r31); // {load}adc r30, r31 IID11041 - __ adcq(r31, rcx); // {load}adc r31, rcx IID11042 - __ cmpq(rcx, rdx); // {load}cmp rcx, rdx IID11043 - __ cmpq(rdx, rbx); // {load}cmp rdx, rbx IID11044 - __ cmpq(rbx, r8); // {load}cmp rbx, r8 IID11045 - __ cmpq(r8, r9); // {load}cmp r8, r9 IID11046 - __ cmpq(r9, r10); // {load}cmp r9, r10 IID11047 - __ cmpq(r10, r11); // {load}cmp r10, r11 IID11048 - __ cmpq(r11, r12); // {load}cmp r11, r12 IID11049 - __ cmpq(r12, r13); // {load}cmp r12, r13 IID11050 - __ cmpq(r13, r14); // {load}cmp r13, r14 IID11051 - __ cmpq(r14, r15); // {load}cmp r14, r15 IID11052 - __ cmpq(r15, r16); // {load}cmp r15, r16 IID11053 - __ cmpq(r16, r17); // {load}cmp r16, r17 IID11054 - __ cmpq(r17, r18); // {load}cmp r17, r18 IID11055 - __ cmpq(r18, r19); // {load}cmp r18, r19 IID11056 - __ cmpq(r19, r20); // {load}cmp r19, r20 IID11057 - __ cmpq(r20, r21); // {load}cmp r20, r21 IID11058 - __ cmpq(r21, r22); // {load}cmp r21, r22 IID11059 - __ cmpq(r22, r23); // {load}cmp r22, r23 IID11060 - __ cmpq(r23, r24); // {load}cmp r23, r24 IID11061 - __ cmpq(r24, r25); // {load}cmp r24, r25 IID11062 - __ cmpq(r25, r26); // {load}cmp r25, r26 IID11063 - __ cmpq(r26, r27); // {load}cmp r26, r27 IID11064 - __ cmpq(r27, r28); // {load}cmp r27, r28 IID11065 - __ cmpq(r28, r29); // {load}cmp r28, r29 IID11066 - __ cmpq(r29, r30); // {load}cmp r29, r30 IID11067 - __ cmpq(r30, r31); // {load}cmp r30, r31 IID11068 - __ cmpq(r31, rcx); // {load}cmp r31, rcx IID11069 - __ imulq(rcx, rdx); // {load}imul rcx, rdx IID11070 - __ imulq(rdx, rbx); // {load}imul rdx, rbx IID11071 - __ imulq(rbx, r8); // {load}imul rbx, r8 IID11072 - __ imulq(r8, r9); // {load}imul r8, r9 IID11073 - __ imulq(r9, r10); // {load}imul r9, r10 IID11074 - __ imulq(r10, r11); // {load}imul r10, r11 IID11075 - __ imulq(r11, r12); // {load}imul r11, r12 IID11076 - __ imulq(r12, r13); // {load}imul r12, r13 IID11077 - __ imulq(r13, r14); // {load}imul r13, r14 IID11078 - __ imulq(r14, r15); // {load}imul r14, r15 IID11079 - __ imulq(r15, r16); // {load}imul r15, r16 IID11080 - __ imulq(r16, r17); // {load}imul r16, r17 IID11081 - __ imulq(r17, r18); // {load}imul r17, r18 IID11082 - __ imulq(r18, r19); // {load}imul r18, r19 IID11083 - __ imulq(r19, r20); // {load}imul r19, r20 IID11084 - __ imulq(r20, r21); // {load}imul r20, r21 IID11085 - __ imulq(r21, r22); // {load}imul r21, r22 IID11086 - __ imulq(r22, r23); // {load}imul r22, r23 IID11087 - __ imulq(r23, r24); // {load}imul r23, r24 IID11088 - __ imulq(r24, r25); // {load}imul r24, r25 IID11089 - __ imulq(r25, r26); // {load}imul r25, r26 IID11090 - __ imulq(r26, r27); // {load}imul r26, r27 IID11091 - __ imulq(r27, r28); // {load}imul r27, r28 IID11092 - __ imulq(r28, r29); // {load}imul r28, r29 IID11093 - __ imulq(r29, r30); // {load}imul r29, r30 IID11094 - __ imulq(r30, r31); // {load}imul r30, r31 IID11095 - __ imulq(r31, rcx); // {load}imul r31, rcx IID11096 - __ popcntq(rcx, rdx); // {load}popcnt rcx, rdx IID11097 - __ popcntq(rdx, rbx); // {load}popcnt rdx, rbx IID11098 - __ popcntq(rbx, r8); // {load}popcnt rbx, r8 IID11099 - __ popcntq(r8, r9); // {load}popcnt r8, r9 IID11100 - __ popcntq(r9, r10); // {load}popcnt r9, r10 IID11101 - __ popcntq(r10, r11); // {load}popcnt r10, r11 IID11102 - __ popcntq(r11, r12); // {load}popcnt r11, r12 IID11103 - __ popcntq(r12, r13); // {load}popcnt r12, r13 IID11104 - __ popcntq(r13, r14); // {load}popcnt r13, r14 IID11105 - __ popcntq(r14, r15); // {load}popcnt r14, r15 IID11106 - __ popcntq(r15, r16); // {load}popcnt r15, r16 IID11107 - __ popcntq(r16, r17); // {load}popcnt r16, r17 IID11108 - __ popcntq(r17, r18); // {load}popcnt r17, r18 IID11109 - __ popcntq(r18, r19); // {load}popcnt r18, r19 IID11110 - __ popcntq(r19, r20); // {load}popcnt r19, r20 IID11111 - __ popcntq(r20, r21); // {load}popcnt r20, r21 IID11112 - __ popcntq(r21, r22); // {load}popcnt r21, r22 IID11113 - __ popcntq(r22, r23); // {load}popcnt r22, r23 IID11114 - __ popcntq(r23, r24); // {load}popcnt r23, r24 IID11115 - __ popcntq(r24, r25); // {load}popcnt r24, r25 IID11116 - __ popcntq(r25, r26); // {load}popcnt r25, r26 IID11117 - __ popcntq(r26, r27); // {load}popcnt r26, r27 IID11118 - __ popcntq(r27, r28); // {load}popcnt r27, r28 IID11119 - __ popcntq(r28, r29); // {load}popcnt r28, r29 IID11120 - __ popcntq(r29, r30); // {load}popcnt r29, r30 IID11121 - __ popcntq(r30, r31); // {load}popcnt r30, r31 IID11122 - __ popcntq(r31, rcx); // {load}popcnt r31, rcx IID11123 - __ sbbq(rcx, rdx); // {load}sbb rcx, rdx IID11124 - __ sbbq(rdx, rbx); // {load}sbb rdx, rbx IID11125 - __ sbbq(rbx, r8); // {load}sbb rbx, r8 IID11126 - __ sbbq(r8, r9); // {load}sbb r8, r9 IID11127 - __ sbbq(r9, r10); // {load}sbb r9, r10 IID11128 - __ sbbq(r10, r11); // {load}sbb r10, r11 IID11129 - __ sbbq(r11, r12); // {load}sbb r11, r12 IID11130 - __ sbbq(r12, r13); // {load}sbb r12, r13 IID11131 - __ sbbq(r13, r14); // {load}sbb r13, r14 IID11132 - __ sbbq(r14, r15); // {load}sbb r14, r15 IID11133 - __ sbbq(r15, r16); // {load}sbb r15, r16 IID11134 - __ sbbq(r16, r17); // {load}sbb r16, r17 IID11135 - __ sbbq(r17, r18); // {load}sbb r17, r18 IID11136 - __ sbbq(r18, r19); // {load}sbb r18, r19 IID11137 - __ sbbq(r19, r20); // {load}sbb r19, r20 IID11138 - __ sbbq(r20, r21); // {load}sbb r20, r21 IID11139 - __ sbbq(r21, r22); // {load}sbb r21, r22 IID11140 - __ sbbq(r22, r23); // {load}sbb r22, r23 IID11141 - __ sbbq(r23, r24); // {load}sbb r23, r24 IID11142 - __ sbbq(r24, r25); // {load}sbb r24, r25 IID11143 - __ sbbq(r25, r26); // {load}sbb r25, r26 IID11144 - __ sbbq(r26, r27); // {load}sbb r26, r27 IID11145 - __ sbbq(r27, r28); // {load}sbb r27, r28 IID11146 - __ sbbq(r28, r29); // {load}sbb r28, r29 IID11147 - __ sbbq(r29, r30); // {load}sbb r29, r30 IID11148 - __ sbbq(r30, r31); // {load}sbb r30, r31 IID11149 - __ sbbq(r31, rcx); // {load}sbb r31, rcx IID11150 - __ subq(rcx, rdx); // {load}sub rcx, rdx IID11151 - __ subq(rdx, rbx); // {load}sub rdx, rbx IID11152 - __ subq(rbx, r8); // {load}sub rbx, r8 IID11153 - __ subq(r8, r9); // {load}sub r8, r9 IID11154 - __ subq(r9, r10); // {load}sub r9, r10 IID11155 - __ subq(r10, r11); // {load}sub r10, r11 IID11156 - __ subq(r11, r12); // {load}sub r11, r12 IID11157 - __ subq(r12, r13); // {load}sub r12, r13 IID11158 - __ subq(r13, r14); // {load}sub r13, r14 IID11159 - __ subq(r14, r15); // {load}sub r14, r15 IID11160 - __ subq(r15, r16); // {load}sub r15, r16 IID11161 - __ subq(r16, r17); // {load}sub r16, r17 IID11162 - __ subq(r17, r18); // {load}sub r17, r18 IID11163 - __ subq(r18, r19); // {load}sub r18, r19 IID11164 - __ subq(r19, r20); // {load}sub r19, r20 IID11165 - __ subq(r20, r21); // {load}sub r20, r21 IID11166 - __ subq(r21, r22); // {load}sub r21, r22 IID11167 - __ subq(r22, r23); // {load}sub r22, r23 IID11168 - __ subq(r23, r24); // {load}sub r23, r24 IID11169 - __ subq(r24, r25); // {load}sub r24, r25 IID11170 - __ subq(r25, r26); // {load}sub r25, r26 IID11171 - __ subq(r26, r27); // {load}sub r26, r27 IID11172 - __ subq(r27, r28); // {load}sub r27, r28 IID11173 - __ subq(r28, r29); // {load}sub r28, r29 IID11174 - __ subq(r29, r30); // {load}sub r29, r30 IID11175 - __ subq(r30, r31); // {load}sub r30, r31 IID11176 - __ subq(r31, rcx); // {load}sub r31, rcx IID11177 - __ tzcntq(rcx, rdx); // {load}tzcnt rcx, rdx IID11178 - __ tzcntq(rdx, rbx); // {load}tzcnt rdx, rbx IID11179 - __ tzcntq(rbx, r8); // {load}tzcnt rbx, r8 IID11180 - __ tzcntq(r8, r9); // {load}tzcnt r8, r9 IID11181 - __ tzcntq(r9, r10); // {load}tzcnt r9, r10 IID11182 - __ tzcntq(r10, r11); // {load}tzcnt r10, r11 IID11183 - __ tzcntq(r11, r12); // {load}tzcnt r11, r12 IID11184 - __ tzcntq(r12, r13); // {load}tzcnt r12, r13 IID11185 - __ tzcntq(r13, r14); // {load}tzcnt r13, r14 IID11186 - __ tzcntq(r14, r15); // {load}tzcnt r14, r15 IID11187 - __ tzcntq(r15, r16); // {load}tzcnt r15, r16 IID11188 - __ tzcntq(r16, r17); // {load}tzcnt r16, r17 IID11189 - __ tzcntq(r17, r18); // {load}tzcnt r17, r18 IID11190 - __ tzcntq(r18, r19); // {load}tzcnt r18, r19 IID11191 - __ tzcntq(r19, r20); // {load}tzcnt r19, r20 IID11192 - __ tzcntq(r20, r21); // {load}tzcnt r20, r21 IID11193 - __ tzcntq(r21, r22); // {load}tzcnt r21, r22 IID11194 - __ tzcntq(r22, r23); // {load}tzcnt r22, r23 IID11195 - __ tzcntq(r23, r24); // {load}tzcnt r23, r24 IID11196 - __ tzcntq(r24, r25); // {load}tzcnt r24, r25 IID11197 - __ tzcntq(r25, r26); // {load}tzcnt r25, r26 IID11198 - __ tzcntq(r26, r27); // {load}tzcnt r26, r27 IID11199 - __ tzcntq(r27, r28); // {load}tzcnt r27, r28 IID11200 - __ tzcntq(r28, r29); // {load}tzcnt r28, r29 IID11201 - __ tzcntq(r29, r30); // {load}tzcnt r29, r30 IID11202 - __ tzcntq(r30, r31); // {load}tzcnt r30, r31 IID11203 - __ tzcntq(r31, rcx); // {load}tzcnt r31, rcx IID11204 - __ lzcntq(rcx, rdx); // {load}lzcnt rcx, rdx IID11205 - __ lzcntq(rdx, rbx); // {load}lzcnt rdx, rbx IID11206 - __ lzcntq(rbx, r8); // {load}lzcnt rbx, r8 IID11207 - __ lzcntq(r8, r9); // {load}lzcnt r8, r9 IID11208 - __ lzcntq(r9, r10); // {load}lzcnt r9, r10 IID11209 - __ lzcntq(r10, r11); // {load}lzcnt r10, r11 IID11210 - __ lzcntq(r11, r12); // {load}lzcnt r11, r12 IID11211 - __ lzcntq(r12, r13); // {load}lzcnt r12, r13 IID11212 - __ lzcntq(r13, r14); // {load}lzcnt r13, r14 IID11213 - __ lzcntq(r14, r15); // {load}lzcnt r14, r15 IID11214 - __ lzcntq(r15, r16); // {load}lzcnt r15, r16 IID11215 - __ lzcntq(r16, r17); // {load}lzcnt r16, r17 IID11216 - __ lzcntq(r17, r18); // {load}lzcnt r17, r18 IID11217 - __ lzcntq(r18, r19); // {load}lzcnt r18, r19 IID11218 - __ lzcntq(r19, r20); // {load}lzcnt r19, r20 IID11219 - __ lzcntq(r20, r21); // {load}lzcnt r20, r21 IID11220 - __ lzcntq(r21, r22); // {load}lzcnt r21, r22 IID11221 - __ lzcntq(r22, r23); // {load}lzcnt r22, r23 IID11222 - __ lzcntq(r23, r24); // {load}lzcnt r23, r24 IID11223 - __ lzcntq(r24, r25); // {load}lzcnt r24, r25 IID11224 - __ lzcntq(r25, r26); // {load}lzcnt r25, r26 IID11225 - __ lzcntq(r26, r27); // {load}lzcnt r26, r27 IID11226 - __ lzcntq(r27, r28); // {load}lzcnt r27, r28 IID11227 - __ lzcntq(r28, r29); // {load}lzcnt r28, r29 IID11228 - __ lzcntq(r29, r30); // {load}lzcnt r29, r30 IID11229 - __ lzcntq(r30, r31); // {load}lzcnt r30, r31 IID11230 - __ lzcntq(r31, rcx); // {load}lzcnt r31, rcx IID11231 - __ addq(rcx, rdx); // {load}add rcx, rdx IID11232 - __ addq(rdx, rbx); // {load}add rdx, rbx IID11233 - __ addq(rbx, r8); // {load}add rbx, r8 IID11234 - __ addq(r8, r9); // {load}add r8, r9 IID11235 - __ addq(r9, r10); // {load}add r9, r10 IID11236 - __ addq(r10, r11); // {load}add r10, r11 IID11237 - __ addq(r11, r12); // {load}add r11, r12 IID11238 - __ addq(r12, r13); // {load}add r12, r13 IID11239 - __ addq(r13, r14); // {load}add r13, r14 IID11240 - __ addq(r14, r15); // {load}add r14, r15 IID11241 - __ addq(r15, r16); // {load}add r15, r16 IID11242 - __ addq(r16, r17); // {load}add r16, r17 IID11243 - __ addq(r17, r18); // {load}add r17, r18 IID11244 - __ addq(r18, r19); // {load}add r18, r19 IID11245 - __ addq(r19, r20); // {load}add r19, r20 IID11246 - __ addq(r20, r21); // {load}add r20, r21 IID11247 - __ addq(r21, r22); // {load}add r21, r22 IID11248 - __ addq(r22, r23); // {load}add r22, r23 IID11249 - __ addq(r23, r24); // {load}add r23, r24 IID11250 - __ addq(r24, r25); // {load}add r24, r25 IID11251 - __ addq(r25, r26); // {load}add r25, r26 IID11252 - __ addq(r26, r27); // {load}add r26, r27 IID11253 - __ addq(r27, r28); // {load}add r27, r28 IID11254 - __ addq(r28, r29); // {load}add r28, r29 IID11255 - __ addq(r29, r30); // {load}add r29, r30 IID11256 - __ addq(r30, r31); // {load}add r30, r31 IID11257 - __ addq(r31, rcx); // {load}add r31, rcx IID11258 - __ andq(rcx, rdx); // {load}and rcx, rdx IID11259 - __ andq(rdx, rbx); // {load}and rdx, rbx IID11260 - __ andq(rbx, r8); // {load}and rbx, r8 IID11261 - __ andq(r8, r9); // {load}and r8, r9 IID11262 - __ andq(r9, r10); // {load}and r9, r10 IID11263 - __ andq(r10, r11); // {load}and r10, r11 IID11264 - __ andq(r11, r12); // {load}and r11, r12 IID11265 - __ andq(r12, r13); // {load}and r12, r13 IID11266 - __ andq(r13, r14); // {load}and r13, r14 IID11267 - __ andq(r14, r15); // {load}and r14, r15 IID11268 - __ andq(r15, r16); // {load}and r15, r16 IID11269 - __ andq(r16, r17); // {load}and r16, r17 IID11270 - __ andq(r17, r18); // {load}and r17, r18 IID11271 - __ andq(r18, r19); // {load}and r18, r19 IID11272 - __ andq(r19, r20); // {load}and r19, r20 IID11273 - __ andq(r20, r21); // {load}and r20, r21 IID11274 - __ andq(r21, r22); // {load}and r21, r22 IID11275 - __ andq(r22, r23); // {load}and r22, r23 IID11276 - __ andq(r23, r24); // {load}and r23, r24 IID11277 - __ andq(r24, r25); // {load}and r24, r25 IID11278 - __ andq(r25, r26); // {load}and r25, r26 IID11279 - __ andq(r26, r27); // {load}and r26, r27 IID11280 - __ andq(r27, r28); // {load}and r27, r28 IID11281 - __ andq(r28, r29); // {load}and r28, r29 IID11282 - __ andq(r29, r30); // {load}and r29, r30 IID11283 - __ andq(r30, r31); // {load}and r30, r31 IID11284 - __ andq(r31, rcx); // {load}and r31, rcx IID11285 - __ orq(rcx, rdx); // {load}or rcx, rdx IID11286 - __ orq(rdx, rbx); // {load}or rdx, rbx IID11287 - __ orq(rbx, r8); // {load}or rbx, r8 IID11288 - __ orq(r8, r9); // {load}or r8, r9 IID11289 - __ orq(r9, r10); // {load}or r9, r10 IID11290 - __ orq(r10, r11); // {load}or r10, r11 IID11291 - __ orq(r11, r12); // {load}or r11, r12 IID11292 - __ orq(r12, r13); // {load}or r12, r13 IID11293 - __ orq(r13, r14); // {load}or r13, r14 IID11294 - __ orq(r14, r15); // {load}or r14, r15 IID11295 - __ orq(r15, r16); // {load}or r15, r16 IID11296 - __ orq(r16, r17); // {load}or r16, r17 IID11297 - __ orq(r17, r18); // {load}or r17, r18 IID11298 - __ orq(r18, r19); // {load}or r18, r19 IID11299 - __ orq(r19, r20); // {load}or r19, r20 IID11300 - __ orq(r20, r21); // {load}or r20, r21 IID11301 - __ orq(r21, r22); // {load}or r21, r22 IID11302 - __ orq(r22, r23); // {load}or r22, r23 IID11303 - __ orq(r23, r24); // {load}or r23, r24 IID11304 - __ orq(r24, r25); // {load}or r24, r25 IID11305 - __ orq(r25, r26); // {load}or r25, r26 IID11306 - __ orq(r26, r27); // {load}or r26, r27 IID11307 - __ orq(r27, r28); // {load}or r27, r28 IID11308 - __ orq(r28, r29); // {load}or r28, r29 IID11309 - __ orq(r29, r30); // {load}or r29, r30 IID11310 - __ orq(r30, r31); // {load}or r30, r31 IID11311 - __ orq(r31, rcx); // {load}or r31, rcx IID11312 - __ xorq(rcx, rdx); // {load}xor rcx, rdx IID11313 - __ xorq(rdx, rbx); // {load}xor rdx, rbx IID11314 - __ xorq(rbx, r8); // {load}xor rbx, r8 IID11315 - __ xorq(r8, r9); // {load}xor r8, r9 IID11316 - __ xorq(r9, r10); // {load}xor r9, r10 IID11317 - __ xorq(r10, r11); // {load}xor r10, r11 IID11318 - __ xorq(r11, r12); // {load}xor r11, r12 IID11319 - __ xorq(r12, r13); // {load}xor r12, r13 IID11320 - __ xorq(r13, r14); // {load}xor r13, r14 IID11321 - __ xorq(r14, r15); // {load}xor r14, r15 IID11322 - __ xorq(r15, r16); // {load}xor r15, r16 IID11323 - __ xorq(r16, r17); // {load}xor r16, r17 IID11324 - __ xorq(r17, r18); // {load}xor r17, r18 IID11325 - __ xorq(r18, r19); // {load}xor r18, r19 IID11326 - __ xorq(r19, r20); // {load}xor r19, r20 IID11327 - __ xorq(r20, r21); // {load}xor r20, r21 IID11328 - __ xorq(r21, r22); // {load}xor r21, r22 IID11329 - __ xorq(r22, r23); // {load}xor r22, r23 IID11330 - __ xorq(r23, r24); // {load}xor r23, r24 IID11331 - __ xorq(r24, r25); // {load}xor r24, r25 IID11332 - __ xorq(r25, r26); // {load}xor r25, r26 IID11333 - __ xorq(r26, r27); // {load}xor r26, r27 IID11334 - __ xorq(r27, r28); // {load}xor r27, r28 IID11335 - __ xorq(r28, r29); // {load}xor r28, r29 IID11336 - __ xorq(r29, r30); // {load}xor r29, r30 IID11337 - __ xorq(r30, r31); // {load}xor r30, r31 IID11338 - __ xorq(r31, rcx); // {load}xor r31, rcx IID11339 - __ movq(rcx, rdx); // {load}mov rcx, rdx IID11340 - __ movq(rdx, rbx); // {load}mov rdx, rbx IID11341 - __ movq(rbx, r8); // {load}mov rbx, r8 IID11342 - __ movq(r8, r9); // {load}mov r8, r9 IID11343 - __ movq(r9, r10); // {load}mov r9, r10 IID11344 - __ movq(r10, r11); // {load}mov r10, r11 IID11345 - __ movq(r11, r12); // {load}mov r11, r12 IID11346 - __ movq(r12, r13); // {load}mov r12, r13 IID11347 - __ movq(r13, r14); // {load}mov r13, r14 IID11348 - __ movq(r14, r15); // {load}mov r14, r15 IID11349 - __ movq(r15, r16); // {load}mov r15, r16 IID11350 - __ movq(r16, r17); // {load}mov r16, r17 IID11351 - __ movq(r17, r18); // {load}mov r17, r18 IID11352 - __ movq(r18, r19); // {load}mov r18, r19 IID11353 - __ movq(r19, r20); // {load}mov r19, r20 IID11354 - __ movq(r20, r21); // {load}mov r20, r21 IID11355 - __ movq(r21, r22); // {load}mov r21, r22 IID11356 - __ movq(r22, r23); // {load}mov r22, r23 IID11357 - __ movq(r23, r24); // {load}mov r23, r24 IID11358 - __ movq(r24, r25); // {load}mov r24, r25 IID11359 - __ movq(r25, r26); // {load}mov r25, r26 IID11360 - __ movq(r26, r27); // {load}mov r26, r27 IID11361 - __ movq(r27, r28); // {load}mov r27, r28 IID11362 - __ movq(r28, r29); // {load}mov r28, r29 IID11363 - __ movq(r29, r30); // {load}mov r29, r30 IID11364 - __ movq(r30, r31); // {load}mov r30, r31 IID11365 - __ movq(r31, rcx); // {load}mov r31, rcx IID11366 - __ bsfq(rcx, rdx); // {load}bsf rcx, rdx IID11367 - __ bsfq(rdx, rbx); // {load}bsf rdx, rbx IID11368 - __ bsfq(rbx, r8); // {load}bsf rbx, r8 IID11369 - __ bsfq(r8, r9); // {load}bsf r8, r9 IID11370 - __ bsfq(r9, r10); // {load}bsf r9, r10 IID11371 - __ bsfq(r10, r11); // {load}bsf r10, r11 IID11372 - __ bsfq(r11, r12); // {load}bsf r11, r12 IID11373 - __ bsfq(r12, r13); // {load}bsf r12, r13 IID11374 - __ bsfq(r13, r14); // {load}bsf r13, r14 IID11375 - __ bsfq(r14, r15); // {load}bsf r14, r15 IID11376 - __ bsfq(r15, r16); // {load}bsf r15, r16 IID11377 - __ bsfq(r16, r17); // {load}bsf r16, r17 IID11378 - __ bsfq(r17, r18); // {load}bsf r17, r18 IID11379 - __ bsfq(r18, r19); // {load}bsf r18, r19 IID11380 - __ bsfq(r19, r20); // {load}bsf r19, r20 IID11381 - __ bsfq(r20, r21); // {load}bsf r20, r21 IID11382 - __ bsfq(r21, r22); // {load}bsf r21, r22 IID11383 - __ bsfq(r22, r23); // {load}bsf r22, r23 IID11384 - __ bsfq(r23, r24); // {load}bsf r23, r24 IID11385 - __ bsfq(r24, r25); // {load}bsf r24, r25 IID11386 - __ bsfq(r25, r26); // {load}bsf r25, r26 IID11387 - __ bsfq(r26, r27); // {load}bsf r26, r27 IID11388 - __ bsfq(r27, r28); // {load}bsf r27, r28 IID11389 - __ bsfq(r28, r29); // {load}bsf r28, r29 IID11390 - __ bsfq(r29, r30); // {load}bsf r29, r30 IID11391 - __ bsfq(r30, r31); // {load}bsf r30, r31 IID11392 - __ bsfq(r31, rcx); // {load}bsf r31, rcx IID11393 - __ bsrq(rcx, rdx); // {load}bsr rcx, rdx IID11394 - __ bsrq(rdx, rbx); // {load}bsr rdx, rbx IID11395 - __ bsrq(rbx, r8); // {load}bsr rbx, r8 IID11396 - __ bsrq(r8, r9); // {load}bsr r8, r9 IID11397 - __ bsrq(r9, r10); // {load}bsr r9, r10 IID11398 - __ bsrq(r10, r11); // {load}bsr r10, r11 IID11399 - __ bsrq(r11, r12); // {load}bsr r11, r12 IID11400 - __ bsrq(r12, r13); // {load}bsr r12, r13 IID11401 - __ bsrq(r13, r14); // {load}bsr r13, r14 IID11402 - __ bsrq(r14, r15); // {load}bsr r14, r15 IID11403 - __ bsrq(r15, r16); // {load}bsr r15, r16 IID11404 - __ bsrq(r16, r17); // {load}bsr r16, r17 IID11405 - __ bsrq(r17, r18); // {load}bsr r17, r18 IID11406 - __ bsrq(r18, r19); // {load}bsr r18, r19 IID11407 - __ bsrq(r19, r20); // {load}bsr r19, r20 IID11408 - __ bsrq(r20, r21); // {load}bsr r20, r21 IID11409 - __ bsrq(r21, r22); // {load}bsr r21, r22 IID11410 - __ bsrq(r22, r23); // {load}bsr r22, r23 IID11411 - __ bsrq(r23, r24); // {load}bsr r23, r24 IID11412 - __ bsrq(r24, r25); // {load}bsr r24, r25 IID11413 - __ bsrq(r25, r26); // {load}bsr r25, r26 IID11414 - __ bsrq(r26, r27); // {load}bsr r26, r27 IID11415 - __ bsrq(r27, r28); // {load}bsr r27, r28 IID11416 - __ bsrq(r28, r29); // {load}bsr r28, r29 IID11417 - __ bsrq(r29, r30); // {load}bsr r29, r30 IID11418 - __ bsrq(r30, r31); // {load}bsr r30, r31 IID11419 - __ bsrq(r31, rcx); // {load}bsr r31, rcx IID11420 - __ btq(rcx, rdx); // {load}bt rcx, rdx IID11421 - __ btq(rdx, rbx); // {load}bt rdx, rbx IID11422 - __ btq(rbx, r8); // {load}bt rbx, r8 IID11423 - __ btq(r8, r9); // {load}bt r8, r9 IID11424 - __ btq(r9, r10); // {load}bt r9, r10 IID11425 - __ btq(r10, r11); // {load}bt r10, r11 IID11426 - __ btq(r11, r12); // {load}bt r11, r12 IID11427 - __ btq(r12, r13); // {load}bt r12, r13 IID11428 - __ btq(r13, r14); // {load}bt r13, r14 IID11429 - __ btq(r14, r15); // {load}bt r14, r15 IID11430 - __ btq(r15, r16); // {load}bt r15, r16 IID11431 - __ btq(r16, r17); // {load}bt r16, r17 IID11432 - __ btq(r17, r18); // {load}bt r17, r18 IID11433 - __ btq(r18, r19); // {load}bt r18, r19 IID11434 - __ btq(r19, r20); // {load}bt r19, r20 IID11435 - __ btq(r20, r21); // {load}bt r20, r21 IID11436 - __ btq(r21, r22); // {load}bt r21, r22 IID11437 - __ btq(r22, r23); // {load}bt r22, r23 IID11438 - __ btq(r23, r24); // {load}bt r23, r24 IID11439 - __ btq(r24, r25); // {load}bt r24, r25 IID11440 - __ btq(r25, r26); // {load}bt r25, r26 IID11441 - __ btq(r26, r27); // {load}bt r26, r27 IID11442 - __ btq(r27, r28); // {load}bt r27, r28 IID11443 - __ btq(r28, r29); // {load}bt r28, r29 IID11444 - __ btq(r29, r30); // {load}bt r29, r30 IID11445 - __ btq(r30, r31); // {load}bt r30, r31 IID11446 - __ btq(r31, rcx); // {load}bt r31, rcx IID11447 - __ xchgq(rcx, rdx); // {load}xchg rcx, rdx IID11448 - __ xchgq(rdx, rbx); // {load}xchg rdx, rbx IID11449 - __ xchgq(rbx, r8); // {load}xchg rbx, r8 IID11450 - __ xchgq(r8, r9); // {load}xchg r8, r9 IID11451 - __ xchgq(r9, r10); // {load}xchg r9, r10 IID11452 - __ xchgq(r10, r11); // {load}xchg r10, r11 IID11453 - __ xchgq(r11, r12); // {load}xchg r11, r12 IID11454 - __ xchgq(r12, r13); // {load}xchg r12, r13 IID11455 - __ xchgq(r13, r14); // {load}xchg r13, r14 IID11456 - __ xchgq(r14, r15); // {load}xchg r14, r15 IID11457 - __ xchgq(r15, r16); // {load}xchg r15, r16 IID11458 - __ xchgq(r16, r17); // {load}xchg r16, r17 IID11459 - __ xchgq(r17, r18); // {load}xchg r17, r18 IID11460 - __ xchgq(r18, r19); // {load}xchg r18, r19 IID11461 - __ xchgq(r19, r20); // {load}xchg r19, r20 IID11462 - __ xchgq(r20, r21); // {load}xchg r20, r21 IID11463 - __ xchgq(r21, r22); // {load}xchg r21, r22 IID11464 - __ xchgq(r22, r23); // {load}xchg r22, r23 IID11465 - __ xchgq(r23, r24); // {load}xchg r23, r24 IID11466 - __ xchgq(r24, r25); // {load}xchg r24, r25 IID11467 - __ xchgq(r25, r26); // {load}xchg r25, r26 IID11468 - __ xchgq(r26, r27); // {load}xchg r26, r27 IID11469 - __ xchgq(r27, r28); // {load}xchg r27, r28 IID11470 - __ xchgq(r28, r29); // {load}xchg r28, r29 IID11471 - __ xchgq(r29, r30); // {load}xchg r29, r30 IID11472 - __ xchgq(r30, r31); // {load}xchg r30, r31 IID11473 - __ xchgq(r31, rcx); // {load}xchg r31, rcx IID11474 - __ testq(rcx, rdx); // {load}test rcx, rdx IID11475 - __ testq(rdx, rbx); // {load}test rdx, rbx IID11476 - __ testq(rbx, r8); // {load}test rbx, r8 IID11477 - __ testq(r8, r9); // {load}test r8, r9 IID11478 - __ testq(r9, r10); // {load}test r9, r10 IID11479 - __ testq(r10, r11); // {load}test r10, r11 IID11480 - __ testq(r11, r12); // {load}test r11, r12 IID11481 - __ testq(r12, r13); // {load}test r12, r13 IID11482 - __ testq(r13, r14); // {load}test r13, r14 IID11483 - __ testq(r14, r15); // {load}test r14, r15 IID11484 - __ testq(r15, r16); // {load}test r15, r16 IID11485 - __ testq(r16, r17); // {load}test r16, r17 IID11486 - __ testq(r17, r18); // {load}test r17, r18 IID11487 - __ testq(r18, r19); // {load}test r18, r19 IID11488 - __ testq(r19, r20); // {load}test r19, r20 IID11489 - __ testq(r20, r21); // {load}test r20, r21 IID11490 - __ testq(r21, r22); // {load}test r21, r22 IID11491 - __ testq(r22, r23); // {load}test r22, r23 IID11492 - __ testq(r23, r24); // {load}test r23, r24 IID11493 - __ testq(r24, r25); // {load}test r24, r25 IID11494 - __ testq(r25, r26); // {load}test r25, r26 IID11495 - __ testq(r26, r27); // {load}test r26, r27 IID11496 - __ testq(r27, r28); // {load}test r27, r28 IID11497 - __ testq(r28, r29); // {load}test r28, r29 IID11498 - __ testq(r29, r30); // {load}test r29, r30 IID11499 - __ testq(r30, r31); // {load}test r30, r31 IID11500 - __ testq(r31, rcx); // {load}test r31, rcx IID11501 - __ addq(Address(rdx, -0x5cde7710), rcx); // add qword ptr [rdx-0x5cde7710], rcx IID11502 - __ addq(Address(rbx, r8, (Address::ScaleFactor)1, -0x6714f82c), rdx); // add qword ptr [rbx+r8*2-0x6714f82c], rdx IID11503 - __ addq(Address(r8, r9, (Address::ScaleFactor)1, -0x74241536), rbx); // add qword ptr [r8+r9*2-0x74241536], rbx IID11504 - __ addq(Address(r9, r10, (Address::ScaleFactor)3, -0x35d3c2f5), r8); // add qword ptr [r9+r10*8-0x35d3c2f5], r8 IID11505 - __ addq(Address(r10, r11, (Address::ScaleFactor)2, -0x5e102834), r9); // add qword ptr [r10+r11*4-0x5e102834], r9 IID11506 - __ addq(Address(r11, r12, (Address::ScaleFactor)1, +0x47bd0184), r10); // add qword ptr [r11+r12*2+0x47bd0184], r10 IID11507 - __ addq(Address(r12, r13, (Address::ScaleFactor)3, +0x44b73746), r11); // add qword ptr [r12+r13*8+0x44b73746], r11 IID11508 - __ addq(Address(r13, r14, (Address::ScaleFactor)3, +0x79d0179c), r12); // add qword ptr [r13+r14*8+0x79d0179c], r12 IID11509 - __ addq(Address(r14, r15, (Address::ScaleFactor)3, -0x18cb48ae), r13); // add qword ptr [r14+r15*8-0x18cb48ae], r13 IID11510 - __ addq(Address(r15, r16, (Address::ScaleFactor)2, +0x748bafe1), r14); // add qword ptr [r15+r16*4+0x748bafe1], r14 IID11511 - __ addq(Address(r16, r17, (Address::ScaleFactor)2, -0x6530f482), r15); // add qword ptr [r16+r17*4-0x6530f482], r15 IID11512 - __ addq(Address(r17, r18, (Address::ScaleFactor)2, -0x3a2c07ba), r16); // add qword ptr [r17+r18*4-0x3a2c07ba], r16 IID11513 - __ addq(Address(r18, r19, (Address::ScaleFactor)1, -0x297f883c), r17); // add qword ptr [r18+r19*2-0x297f883c], r17 IID11514 - __ addq(Address(r19, r20, (Address::ScaleFactor)0, -0x762e5685), r18); // add qword ptr [r19+r20*1-0x762e5685], r18 IID11515 - __ addq(Address(r20, r21, (Address::ScaleFactor)1, -0x25d828ed), r19); // add qword ptr [r20+r21*2-0x25d828ed], r19 IID11516 - __ addq(Address(r21, r22, (Address::ScaleFactor)1, -0x2748feed), r20); // add qword ptr [r21+r22*2-0x2748feed], r20 IID11517 - __ addq(Address(r22, r23, (Address::ScaleFactor)0, +0x6efe06df), r21); // add qword ptr [r22+r23*1+0x6efe06df], r21 IID11518 - __ addq(Address(r23, r24, (Address::ScaleFactor)3, -0x640299c9), r22); // add qword ptr [r23+r24*8-0x640299c9], r22 IID11519 - __ addq(Address(r24, r25, (Address::ScaleFactor)2, +0x76e165c4), r23); // add qword ptr [r24+r25*4+0x76e165c4], r23 IID11520 - __ addq(Address(r25, r26, (Address::ScaleFactor)1, +0x6309f57e), r24); // add qword ptr [r25+r26*2+0x6309f57e], r24 IID11521 - __ addq(Address(r26, r27, (Address::ScaleFactor)1, +0x28148b99), r25); // add qword ptr [r26+r27*2+0x28148b99], r25 IID11522 - __ addq(Address(r27, r28, (Address::ScaleFactor)1, -0x678f0980), r26); // add qword ptr [r27+r28*2-0x678f0980], r26 IID11523 - __ addq(Address(r28, +0x9eecda6), r27); // add qword ptr [r28+0x9eecda6], r27 IID11524 - __ addq(Address(r29, r30, (Address::ScaleFactor)3, +0x8924122), r28); // add qword ptr [r29+r30*8+0x8924122], r28 IID11525 - __ addq(Address(r30, r31, (Address::ScaleFactor)3, +0x4c459e49), r29); // add qword ptr [r30+r31*8+0x4c459e49], r29 IID11526 - __ addq(Address(r31, rcx, (Address::ScaleFactor)3, +0x5388c24c), r30); // add qword ptr [r31+rcx*8+0x5388c24c], r30 IID11527 - __ addq(Address(rcx, +0x35458883), r31); // add qword ptr [rcx+0x35458883], r31 IID11528 - __ andq(Address(rdx, +0x554cace5), rcx); // and qword ptr [rdx+0x554cace5], rcx IID11529 - __ andq(Address(rbx, r8, (Address::ScaleFactor)1, -0x3048470f), rdx); // and qword ptr [rbx+r8*2-0x3048470f], rdx IID11530 - __ andq(Address(r8, r9, (Address::ScaleFactor)3, +0x49c48a49), rbx); // and qword ptr [r8+r9*8+0x49c48a49], rbx IID11531 - __ andq(Address(r9, r10, (Address::ScaleFactor)3, -0x6c62ca2b), r8); // and qword ptr [r9+r10*8-0x6c62ca2b], r8 IID11532 - __ andq(Address(r10, r11, (Address::ScaleFactor)2, +0x2a64d27a), r9); // and qword ptr [r10+r11*4+0x2a64d27a], r9 IID11533 - __ andq(Address(r11, r12, (Address::ScaleFactor)1, -0x3b66cc3), r10); // and qword ptr [r11+r12*2-0x3b66cc3], r10 IID11534 - __ andq(Address(r12, r13, (Address::ScaleFactor)0, +0x516792a9), r11); // and qword ptr [r12+r13*1+0x516792a9], r11 IID11535 - __ andq(Address(r13, r14, (Address::ScaleFactor)0, -0x642a893b), r12); // and qword ptr [r13+r14*1-0x642a893b], r12 IID11536 - __ andq(Address(r14, r15, (Address::ScaleFactor)2, -0x11f619d6), r13); // and qword ptr [r14+r15*4-0x11f619d6], r13 IID11537 - __ andq(Address(r15, r16, (Address::ScaleFactor)3, +0x6a604564), r14); // and qword ptr [r15+r16*8+0x6a604564], r14 IID11538 - __ andq(Address(r16, r17, (Address::ScaleFactor)0, -0x6cec0d75), r15); // and qword ptr [r16+r17*1-0x6cec0d75], r15 IID11539 - __ andq(Address(r17, r18, (Address::ScaleFactor)0, +0x538b3581), r16); // and qword ptr [r17+r18*1+0x538b3581], r16 IID11540 - __ andq(Address(r18, r19, (Address::ScaleFactor)3, +0x2470a887), r17); // and qword ptr [r18+r19*8+0x2470a887], r17 IID11541 - __ andq(Address(r19, r20, (Address::ScaleFactor)3, +0x2d76badb), r18); // and qword ptr [r19+r20*8+0x2d76badb], r18 IID11542 - __ andq(Address(r20, -0x4b55c083), r19); // and qword ptr [r20-0x4b55c083], r19 IID11543 - __ andq(Address(r21, r22, (Address::ScaleFactor)3, -0x40a2cd45), r20); // and qword ptr [r21+r22*8-0x40a2cd45], r20 IID11544 - __ andq(Address(r22, r23, (Address::ScaleFactor)1, -0x536018a3), r21); // and qword ptr [r22+r23*2-0x536018a3], r21 IID11545 - __ andq(Address(r23, r24, (Address::ScaleFactor)1, +0x726fe858), r22); // and qword ptr [r23+r24*2+0x726fe858], r22 IID11546 - __ andq(Address(r24, r25, (Address::ScaleFactor)2, -0x162cacde), r23); // and qword ptr [r24+r25*4-0x162cacde], r23 IID11547 - __ andq(Address(r25, r26, (Address::ScaleFactor)2, +0x32f91117), r24); // and qword ptr [r25+r26*4+0x32f91117], r24 IID11548 - __ andq(Address(r26, r27, (Address::ScaleFactor)3, +0x71e03ca0), r25); // and qword ptr [r26+r27*8+0x71e03ca0], r25 IID11549 - __ andq(Address(r27, r28, (Address::ScaleFactor)0, +0x233e0104), r26); // and qword ptr [r27+r28*1+0x233e0104], r26 IID11550 - __ andq(Address(r28, r29, (Address::ScaleFactor)2, +0x1c2866c5), r27); // and qword ptr [r28+r29*4+0x1c2866c5], r27 IID11551 - __ andq(Address(r29, -0x73d37210), r28); // and qword ptr [r29-0x73d37210], r28 IID11552 - __ andq(Address(r30, r31, (Address::ScaleFactor)0, -0x5020875c), r29); // and qword ptr [r30+r31*1-0x5020875c], r29 IID11553 - __ andq(Address(r31, rcx, (Address::ScaleFactor)2, +0x36dd3746), r30); // and qword ptr [r31+rcx*4+0x36dd3746], r30 IID11554 - __ andq(Address(rcx, rdx, (Address::ScaleFactor)2, -0x67375ec), r31); // and qword ptr [rcx+rdx*4-0x67375ec], r31 IID11555 - __ cmpq(Address(rdx, -0x16f20d66), rcx); // cmp qword ptr [rdx-0x16f20d66], rcx IID11556 - __ cmpq(Address(rbx, r8, (Address::ScaleFactor)3, -0x6dc6b851), rdx); // cmp qword ptr [rbx+r8*8-0x6dc6b851], rdx IID11557 - __ cmpq(Address(r8, +0x2a9507aa), rbx); // cmp qword ptr [r8+0x2a9507aa], rbx IID11558 - __ cmpq(Address(r9, r10, (Address::ScaleFactor)1, +0x3706834f), r8); // cmp qword ptr [r9+r10*2+0x3706834f], r8 IID11559 - __ cmpq(Address(r10, r11, (Address::ScaleFactor)3, -0x423ece5a), r9); // cmp qword ptr [r10+r11*8-0x423ece5a], r9 IID11560 - __ cmpq(Address(r11, r12, (Address::ScaleFactor)1, +0x4dd8d032), r10); // cmp qword ptr [r11+r12*2+0x4dd8d032], r10 IID11561 - __ cmpq(Address(r12, r13, (Address::ScaleFactor)3, +0x27886fcc), r11); // cmp qword ptr [r12+r13*8+0x27886fcc], r11 IID11562 - __ cmpq(Address(r13, r14, (Address::ScaleFactor)0, +0x7eec11b5), r12); // cmp qword ptr [r13+r14*1+0x7eec11b5], r12 IID11563 - __ cmpq(Address(r14, r15, (Address::ScaleFactor)0, -0x4d6451e2), r13); // cmp qword ptr [r14+r15*1-0x4d6451e2], r13 IID11564 - __ cmpq(Address(r15, -0x691bee73), r14); // cmp qword ptr [r15-0x691bee73], r14 IID11565 - __ cmpq(Address(r16, r17, (Address::ScaleFactor)0, +0x13a1e6cd), r15); // cmp qword ptr [r16+r17*1+0x13a1e6cd], r15 IID11566 - __ cmpq(Address(r17, r18, (Address::ScaleFactor)1, -0x1373e361), r16); // cmp qword ptr [r17+r18*2-0x1373e361], r16 IID11567 - __ cmpq(Address(r18, r19, (Address::ScaleFactor)1, -0x5d7406a0), r17); // cmp qword ptr [r18+r19*2-0x5d7406a0], r17 IID11568 - __ cmpq(Address(r19, r20, (Address::ScaleFactor)3, -0x32eb7b3d), r18); // cmp qword ptr [r19+r20*8-0x32eb7b3d], r18 IID11569 - __ cmpq(Address(r20, r21, (Address::ScaleFactor)3, +0x75d7831e), r19); // cmp qword ptr [r20+r21*8+0x75d7831e], r19 IID11570 - __ cmpq(Address(r21, +0x6b612091), r20); // cmp qword ptr [r21+0x6b612091], r20 IID11571 - __ cmpq(Address(r22, r23, (Address::ScaleFactor)2, +0x4662fff5), r21); // cmp qword ptr [r22+r23*4+0x4662fff5], r21 IID11572 - __ cmpq(Address(r23, r24, (Address::ScaleFactor)2, -0x2de1ae8a), r22); // cmp qword ptr [r23+r24*4-0x2de1ae8a], r22 IID11573 - __ cmpq(Address(r24, r25, (Address::ScaleFactor)0, -0xe3ffe7e), r23); // cmp qword ptr [r24+r25*1-0xe3ffe7e], r23 IID11574 - __ cmpq(Address(r25, r26, (Address::ScaleFactor)3, +0x1e08ad66), r24); // cmp qword ptr [r25+r26*8+0x1e08ad66], r24 IID11575 - __ cmpq(Address(r26, r27, (Address::ScaleFactor)3, -0x28025271), r25); // cmp qword ptr [r26+r27*8-0x28025271], r25 IID11576 - __ cmpq(Address(r27, +0xc8bab11), r26); // cmp qword ptr [r27+0xc8bab11], r26 IID11577 - __ cmpq(Address(r28, r29, (Address::ScaleFactor)0, +0x42bfd84f), r27); // cmp qword ptr [r28+r29*1+0x42bfd84f], r27 IID11578 - __ cmpq(Address(r29, r30, (Address::ScaleFactor)2, +0x3134571b), r28); // cmp qword ptr [r29+r30*4+0x3134571b], r28 IID11579 - __ cmpq(Address(r30, r31, (Address::ScaleFactor)1, -0x4082922e), r29); // cmp qword ptr [r30+r31*2-0x4082922e], r29 IID11580 - __ cmpq(Address(r31, rcx, (Address::ScaleFactor)1, +0x23c8fc1a), r30); // cmp qword ptr [r31+rcx*2+0x23c8fc1a], r30 IID11581 - __ cmpq(Address(rcx, rdx, (Address::ScaleFactor)2, +0x6b34e4a2), r31); // cmp qword ptr [rcx+rdx*4+0x6b34e4a2], r31 IID11582 - __ orq(Address(rdx, rbx, (Address::ScaleFactor)2, +0x6bda9143), rcx); // or qword ptr [rdx+rbx*4+0x6bda9143], rcx IID11583 - __ orq(Address(rbx, r8, (Address::ScaleFactor)2, -0x10b62b4c), rdx); // or qword ptr [rbx+r8*4-0x10b62b4c], rdx IID11584 - __ orq(Address(r8, r9, (Address::ScaleFactor)2, -0x49fbe85f), rbx); // or qword ptr [r8+r9*4-0x49fbe85f], rbx IID11585 - __ orq(Address(r9, -0x1c888bbc), r8); // or qword ptr [r9-0x1c888bbc], r8 IID11586 - __ orq(Address(r10, r11, (Address::ScaleFactor)2, +0x3675ff95), r9); // or qword ptr [r10+r11*4+0x3675ff95], r9 IID11587 - __ orq(Address(r11, r12, (Address::ScaleFactor)0, +0xb9f0570), r10); // or qword ptr [r11+r12*1+0xb9f0570], r10 IID11588 - __ orq(Address(r12, -0x7e2802f8), r11); // or qword ptr [r12-0x7e2802f8], r11 IID11589 - __ orq(Address(r13, r14, (Address::ScaleFactor)2, -0x7e69786e), r12); // or qword ptr [r13+r14*4-0x7e69786e], r12 IID11590 - __ orq(Address(r14, r15, (Address::ScaleFactor)0, -0x2fb507f6), r13); // or qword ptr [r14+r15*1-0x2fb507f6], r13 IID11591 - __ orq(Address(r15, r16, (Address::ScaleFactor)3, +0x368e5811), r14); // or qword ptr [r15+r16*8+0x368e5811], r14 IID11592 - __ orq(Address(r16, +0x5a4061ca), r15); // or qword ptr [r16+0x5a4061ca], r15 IID11593 - __ orq(Address(r17, r18, (Address::ScaleFactor)1, +0x421ef7b0), r16); // or qword ptr [r17+r18*2+0x421ef7b0], r16 IID11594 - __ orq(Address(r18, r19, (Address::ScaleFactor)0, +0x2a522e5), r17); // or qword ptr [r18+r19*1+0x2a522e5], r17 IID11595 - __ orq(Address(r19, r20, (Address::ScaleFactor)0, -0x29828e64), r18); // or qword ptr [r19+r20*1-0x29828e64], r18 IID11596 - __ orq(Address(r20, +0x5c73e7cb), r19); // or qword ptr [r20+0x5c73e7cb], r19 IID11597 - __ orq(Address(r21, -0x6f6e98cb), r20); // or qword ptr [r21-0x6f6e98cb], r20 IID11598 - __ orq(Address(r22, +0x6db6bab6), r21); // or qword ptr [r22+0x6db6bab6], r21 IID11599 - __ orq(Address(r23, r24, (Address::ScaleFactor)3, -0x6d3987fc), r22); // or qword ptr [r23+r24*8-0x6d3987fc], r22 IID11600 - __ orq(Address(r24, -0x190e93fa), r23); // or qword ptr [r24-0x190e93fa], r23 IID11601 - __ orq(Address(r25, r26, (Address::ScaleFactor)2, -0x140edeee), r24); // or qword ptr [r25+r26*4-0x140edeee], r24 IID11602 - __ orq(Address(r26, r27, (Address::ScaleFactor)2, -0x3ed03668), r25); // or qword ptr [r26+r27*4-0x3ed03668], r25 IID11603 - __ orq(Address(r27, -0x4c0b2c0e), r26); // or qword ptr [r27-0x4c0b2c0e], r26 IID11604 - __ orq(Address(r28, r29, (Address::ScaleFactor)0, -0x3c0434), r27); // or qword ptr [r28+r29*1-0x3c0434], r27 IID11605 - __ orq(Address(r29, r30, (Address::ScaleFactor)2, -0x292e29a3), r28); // or qword ptr [r29+r30*4-0x292e29a3], r28 IID11606 - __ orq(Address(r30, -0x261a4bed), r29); // or qword ptr [r30-0x261a4bed], r29 IID11607 - __ orq(Address(r31, rcx, (Address::ScaleFactor)0, +0x4d72df1b), r30); // or qword ptr [r31+rcx*1+0x4d72df1b], r30 IID11608 - __ orq(Address(rcx, rdx, (Address::ScaleFactor)3, +0x3f1cc21), r31); // or qword ptr [rcx+rdx*8+0x3f1cc21], r31 IID11609 - __ xorq(Address(rdx, rbx, (Address::ScaleFactor)0, -0x14c991d5), rcx); // xor qword ptr [rdx+rbx*1-0x14c991d5], rcx IID11610 - __ xorq(Address(rbx, r8, (Address::ScaleFactor)1, -0x6b44a83c), rdx); // xor qword ptr [rbx+r8*2-0x6b44a83c], rdx IID11611 - __ xorq(Address(r8, r9, (Address::ScaleFactor)1, +0x4a5d6c15), rbx); // xor qword ptr [r8+r9*2+0x4a5d6c15], rbx IID11612 - __ xorq(Address(r9, r10, (Address::ScaleFactor)1, +0x75606921), r8); // xor qword ptr [r9+r10*2+0x75606921], r8 IID11613 - __ xorq(Address(r10, r11, (Address::ScaleFactor)3, +0x13565fad), r9); // xor qword ptr [r10+r11*8+0x13565fad], r9 IID11614 - __ xorq(Address(r11, +0x17d59b51), r10); // xor qword ptr [r11+0x17d59b51], r10 IID11615 - __ xorq(Address(r12, r13, (Address::ScaleFactor)2, -0x576a5f72), r11); // xor qword ptr [r12+r13*4-0x576a5f72], r11 IID11616 - __ xorq(Address(r13, r14, (Address::ScaleFactor)1, +0xb08fb5f), r12); // xor qword ptr [r13+r14*2+0xb08fb5f], r12 IID11617 - __ xorq(Address(r14, r15, (Address::ScaleFactor)0, +0x22245917), r13); // xor qword ptr [r14+r15*1+0x22245917], r13 IID11618 - __ xorq(Address(r15, -0x238353d3), r14); // xor qword ptr [r15-0x238353d3], r14 IID11619 - __ xorq(Address(r16, r17, (Address::ScaleFactor)0, +0x316f97d3), r15); // xor qword ptr [r16+r17*1+0x316f97d3], r15 IID11620 - __ xorq(Address(r17, -0x15b3b716), r16); // xor qword ptr [r17-0x15b3b716], r16 IID11621 - __ xorq(Address(r18, +0x1081020c), r17); // xor qword ptr [r18+0x1081020c], r17 IID11622 - __ xorq(Address(r19, +0x376d7d1a), r18); // xor qword ptr [r19+0x376d7d1a], r18 IID11623 - __ xorq(Address(r20, r21, (Address::ScaleFactor)0, -0x71ce1e8), r19); // xor qword ptr [r20+r21*1-0x71ce1e8], r19 IID11624 - __ xorq(Address(r21, -0x692514b4), r20); // xor qword ptr [r21-0x692514b4], r20 IID11625 - __ xorq(Address(r22, r23, (Address::ScaleFactor)3, -0x36a26967), r21); // xor qword ptr [r22+r23*8-0x36a26967], r21 IID11626 - __ xorq(Address(r23, r24, (Address::ScaleFactor)2, +0x3934aa2c), r22); // xor qword ptr [r23+r24*4+0x3934aa2c], r22 IID11627 - __ xorq(Address(r24, r25, (Address::ScaleFactor)1, -0x1c1c92c0), r23); // xor qword ptr [r24+r25*2-0x1c1c92c0], r23 IID11628 - __ xorq(Address(r25, +0x12346a81), r24); // xor qword ptr [r25+0x12346a81], r24 IID11629 - __ xorq(Address(r26, +0x10cc244c), r25); // xor qword ptr [r26+0x10cc244c], r25 IID11630 - __ xorq(Address(r27, -0x373bf7a), r26); // xor qword ptr [r27-0x373bf7a], r26 IID11631 - __ xorq(Address(r28, r29, (Address::ScaleFactor)1, +0x7a8d52fc), r27); // xor qword ptr [r28+r29*2+0x7a8d52fc], r27 IID11632 - __ xorq(Address(r29, -0x3bcb840b), r28); // xor qword ptr [r29-0x3bcb840b], r28 IID11633 - __ xorq(Address(r30, r31, (Address::ScaleFactor)3, -0x27c6650f), r29); // xor qword ptr [r30+r31*8-0x27c6650f], r29 IID11634 - __ xorq(Address(r31, rcx, (Address::ScaleFactor)3, +0x56bbb025), r30); // xor qword ptr [r31+rcx*8+0x56bbb025], r30 IID11635 - __ xorq(Address(rcx, rdx, (Address::ScaleFactor)3, -0x56b58e44), r31); // xor qword ptr [rcx+rdx*8-0x56b58e44], r31 IID11636 - __ subq(Address(rdx, rbx, (Address::ScaleFactor)3, -0x26d77115), rcx); // sub qword ptr [rdx+rbx*8-0x26d77115], rcx IID11637 - __ subq(Address(rbx, r8, (Address::ScaleFactor)2, -0x2f74fc6d), rdx); // sub qword ptr [rbx+r8*4-0x2f74fc6d], rdx IID11638 - __ subq(Address(r8, r9, (Address::ScaleFactor)1, +0x4f7b672), rbx); // sub qword ptr [r8+r9*2+0x4f7b672], rbx IID11639 - __ subq(Address(r9, r10, (Address::ScaleFactor)2, +0x4e96aa0f), r8); // sub qword ptr [r9+r10*4+0x4e96aa0f], r8 IID11640 - __ subq(Address(r10, r11, (Address::ScaleFactor)0, +0x19b2c36b), r9); // sub qword ptr [r10+r11*1+0x19b2c36b], r9 IID11641 - __ subq(Address(r11, r12, (Address::ScaleFactor)0, -0x5badc733), r10); // sub qword ptr [r11+r12*1-0x5badc733], r10 IID11642 - __ subq(Address(r12, r13, (Address::ScaleFactor)1, -0x7d517a48), r11); // sub qword ptr [r12+r13*2-0x7d517a48], r11 IID11643 - __ subq(Address(r13, r14, (Address::ScaleFactor)1, +0x381c99b3), r12); // sub qword ptr [r13+r14*2+0x381c99b3], r12 IID11644 - __ subq(Address(r14, r15, (Address::ScaleFactor)3, +0x22f9f6c3), r13); // sub qword ptr [r14+r15*8+0x22f9f6c3], r13 IID11645 - __ subq(Address(r15, r16, (Address::ScaleFactor)1, +0x7633284a), r14); // sub qword ptr [r15+r16*2+0x7633284a], r14 IID11646 - __ subq(Address(r16, r17, (Address::ScaleFactor)0, +0x4f082136), r15); // sub qword ptr [r16+r17*1+0x4f082136], r15 IID11647 - __ subq(Address(r17, r18, (Address::ScaleFactor)2, -0x682e93d0), r16); // sub qword ptr [r17+r18*4-0x682e93d0], r16 IID11648 - __ subq(Address(r18, r19, (Address::ScaleFactor)2, +0x1a997cae), r17); // sub qword ptr [r18+r19*4+0x1a997cae], r17 IID11649 - __ subq(Address(r19, +0x1abfedd8), r18); // sub qword ptr [r19+0x1abfedd8], r18 IID11650 - __ subq(Address(r20, r21, (Address::ScaleFactor)0, +0x52bf3e5d), r19); // sub qword ptr [r20+r21*1+0x52bf3e5d], r19 IID11651 - __ subq(Address(r21, r22, (Address::ScaleFactor)2, -0x6bc928de), r20); // sub qword ptr [r21+r22*4-0x6bc928de], r20 IID11652 - __ subq(Address(r22, +0x547c4f8c), r21); // sub qword ptr [r22+0x547c4f8c], r21 IID11653 - __ subq(Address(r23, -0x6f3749c), r22); // sub qword ptr [r23-0x6f3749c], r22 IID11654 - __ subq(Address(r24, r25, (Address::ScaleFactor)1, +0x59480a35), r23); // sub qword ptr [r24+r25*2+0x59480a35], r23 IID11655 - __ subq(Address(r25, r26, (Address::ScaleFactor)3, +0x76f98873), r24); // sub qword ptr [r25+r26*8+0x76f98873], r24 IID11656 - __ subq(Address(r26, +0x24a859ea), r25); // sub qword ptr [r26+0x24a859ea], r25 IID11657 - __ subq(Address(r27, r28, (Address::ScaleFactor)0, +0x2913f4ea), r26); // sub qword ptr [r27+r28*1+0x2913f4ea], r26 IID11658 - __ subq(Address(r28, r29, (Address::ScaleFactor)2, +0x6cf168ed), r27); // sub qword ptr [r28+r29*4+0x6cf168ed], r27 IID11659 - __ subq(Address(r29, r30, (Address::ScaleFactor)1, +0x61bc7d3a), r28); // sub qword ptr [r29+r30*2+0x61bc7d3a], r28 IID11660 - __ subq(Address(r30, r31, (Address::ScaleFactor)1, -0x7a4c71e7), r29); // sub qword ptr [r30+r31*2-0x7a4c71e7], r29 IID11661 - __ subq(Address(r31, rcx, (Address::ScaleFactor)2, -0x474648aa), r30); // sub qword ptr [r31+rcx*4-0x474648aa], r30 IID11662 - __ subq(Address(rcx, rdx, (Address::ScaleFactor)2, -0x712a6bf5), r31); // sub qword ptr [rcx+rdx*4-0x712a6bf5], r31 IID11663 - __ movq(Address(rdx, -0x571e9028), rcx); // mov qword ptr [rdx-0x571e9028], rcx IID11664 - __ movq(Address(rbx, r8, (Address::ScaleFactor)2, -0x7ddd66c2), rdx); // mov qword ptr [rbx+r8*4-0x7ddd66c2], rdx IID11665 - __ movq(Address(r8, r9, (Address::ScaleFactor)3, -0x1e9088e0), rbx); // mov qword ptr [r8+r9*8-0x1e9088e0], rbx IID11666 - __ movq(Address(r9, r10, (Address::ScaleFactor)2, -0x152c0b22), r8); // mov qword ptr [r9+r10*4-0x152c0b22], r8 IID11667 - __ movq(Address(r10, -0x5f755018), r9); // mov qword ptr [r10-0x5f755018], r9 IID11668 - __ movq(Address(r11, r12, (Address::ScaleFactor)1, -0x689a806), r10); // mov qword ptr [r11+r12*2-0x689a806], r10 IID11669 - __ movq(Address(r12, r13, (Address::ScaleFactor)1, -0x4f48fc9), r11); // mov qword ptr [r12+r13*2-0x4f48fc9], r11 IID11670 - __ movq(Address(r13, r14, (Address::ScaleFactor)1, -0x21abab3c), r12); // mov qword ptr [r13+r14*2-0x21abab3c], r12 IID11671 - __ movq(Address(r14, r15, (Address::ScaleFactor)2, +0x6f4988dc), r13); // mov qword ptr [r14+r15*4+0x6f4988dc], r13 IID11672 - __ movq(Address(r15, r16, (Address::ScaleFactor)3, -0x37226117), r14); // mov qword ptr [r15+r16*8-0x37226117], r14 IID11673 - __ movq(Address(r16, r17, (Address::ScaleFactor)1, +0x1d419cd6), r15); // mov qword ptr [r16+r17*2+0x1d419cd6], r15 IID11674 - __ movq(Address(r17, r18, (Address::ScaleFactor)1, -0x7505489f), r16); // mov qword ptr [r17+r18*2-0x7505489f], r16 IID11675 - __ movq(Address(r18, r19, (Address::ScaleFactor)1, +0x6923f4e6), r17); // mov qword ptr [r18+r19*2+0x6923f4e6], r17 IID11676 - __ movq(Address(r19, -0x5cc7a52c), r18); // mov qword ptr [r19-0x5cc7a52c], r18 IID11677 - __ movq(Address(r20, r21, (Address::ScaleFactor)1, -0x1d1b8be), r19); // mov qword ptr [r20+r21*2-0x1d1b8be], r19 IID11678 - __ movq(Address(r21, r22, (Address::ScaleFactor)3, -0x76a8d810), r20); // mov qword ptr [r21+r22*8-0x76a8d810], r20 IID11679 - __ movq(Address(r22, r23, (Address::ScaleFactor)2, +0x63c8a0fa), r21); // mov qword ptr [r22+r23*4+0x63c8a0fa], r21 IID11680 - __ movq(Address(r23, -0x287494f3), r22); // mov qword ptr [r23-0x287494f3], r22 IID11681 - __ movq(Address(r24, r25, (Address::ScaleFactor)1, +0x19458e84), r23); // mov qword ptr [r24+r25*2+0x19458e84], r23 IID11682 - __ movq(Address(r25, r26, (Address::ScaleFactor)0, +0xc048d24), r24); // mov qword ptr [r25+r26*1+0xc048d24], r24 IID11683 - __ movq(Address(r26, r27, (Address::ScaleFactor)0, +0x16e4ff9f), r25); // mov qword ptr [r26+r27*1+0x16e4ff9f], r25 IID11684 - __ movq(Address(r27, r28, (Address::ScaleFactor)2, +0x58378ad6), r26); // mov qword ptr [r27+r28*4+0x58378ad6], r26 IID11685 - __ movq(Address(r28, r29, (Address::ScaleFactor)1, -0xf63e7d8), r27); // mov qword ptr [r28+r29*2-0xf63e7d8], r27 IID11686 - __ movq(Address(r29, r30, (Address::ScaleFactor)2, +0x2032075d), r28); // mov qword ptr [r29+r30*4+0x2032075d], r28 IID11687 - __ movq(Address(r30, r31, (Address::ScaleFactor)1, -0x48fdbf05), r29); // mov qword ptr [r30+r31*2-0x48fdbf05], r29 IID11688 - __ movq(Address(r31, rcx, (Address::ScaleFactor)3, +0x2e991b95), r30); // mov qword ptr [r31+rcx*8+0x2e991b95], r30 IID11689 - __ movq(Address(rcx, rdx, (Address::ScaleFactor)0, +0x568e786a), r31); // mov qword ptr [rcx+rdx*1+0x568e786a], r31 IID11690 - __ xaddq(Address(rdx, rbx, (Address::ScaleFactor)3, -0x3a07751a), rcx); // xadd qword ptr [rdx+rbx*8-0x3a07751a], rcx IID11691 - __ xaddq(Address(rbx, -0x2d8323c9), rdx); // xadd qword ptr [rbx-0x2d8323c9], rdx IID11692 - __ xaddq(Address(r8, r9, (Address::ScaleFactor)0, +0x4c79b459), rbx); // xadd qword ptr [r8+r9*1+0x4c79b459], rbx IID11693 - __ xaddq(Address(r9, -0x46211222), r8); // xadd qword ptr [r9-0x46211222], r8 IID11694 - __ xaddq(Address(r10, r11, (Address::ScaleFactor)2, +0x3ebd3702), r9); // xadd qword ptr [r10+r11*4+0x3ebd3702], r9 IID11695 - __ xaddq(Address(r11, +0x20727fa1), r10); // xadd qword ptr [r11+0x20727fa1], r10 IID11696 - __ xaddq(Address(r12, r13, (Address::ScaleFactor)2, +0x729e10ea), r11); // xadd qword ptr [r12+r13*4+0x729e10ea], r11 IID11697 - __ xaddq(Address(r13, r14, (Address::ScaleFactor)0, -0x56487e8), r12); // xadd qword ptr [r13+r14*1-0x56487e8], r12 IID11698 - __ xaddq(Address(r14, -0x4a3b387a), r13); // xadd qword ptr [r14-0x4a3b387a], r13 IID11699 - __ xaddq(Address(r15, r16, (Address::ScaleFactor)0, -0x7c11474d), r14); // xadd qword ptr [r15+r16*1-0x7c11474d], r14 IID11700 - __ xaddq(Address(r16, r17, (Address::ScaleFactor)0, -0x38d0defc), r15); // xadd qword ptr [r16+r17*1-0x38d0defc], r15 IID11701 - __ xaddq(Address(r17, r18, (Address::ScaleFactor)3, -0x77975b1a), r16); // xadd qword ptr [r17+r18*8-0x77975b1a], r16 IID11702 - __ xaddq(Address(r18, r19, (Address::ScaleFactor)0, -0x601b2375), r17); // xadd qword ptr [r18+r19*1-0x601b2375], r17 IID11703 - __ xaddq(Address(r19, r20, (Address::ScaleFactor)1, +0x4743d965), r18); // xadd qword ptr [r19+r20*2+0x4743d965], r18 IID11704 - __ xaddq(Address(r20, r21, (Address::ScaleFactor)1, +0x2bfff99f), r19); // xadd qword ptr [r20+r21*2+0x2bfff99f], r19 IID11705 - __ xaddq(Address(r21, r22, (Address::ScaleFactor)0, -0x3191d1aa), r20); // xadd qword ptr [r21+r22*1-0x3191d1aa], r20 IID11706 - __ xaddq(Address(r22, r23, (Address::ScaleFactor)0, -0xb669a75), r21); // xadd qword ptr [r22+r23*1-0xb669a75], r21 IID11707 - __ xaddq(Address(r23, -0x321d7002), r22); // xadd qword ptr [r23-0x321d7002], r22 IID11708 - __ xaddq(Address(r24, r25, (Address::ScaleFactor)1, -0x31cfa1c7), r23); // xadd qword ptr [r24+r25*2-0x31cfa1c7], r23 IID11709 - __ xaddq(Address(r25, r26, (Address::ScaleFactor)1, -0x47151527), r24); // xadd qword ptr [r25+r26*2-0x47151527], r24 IID11710 - __ xaddq(Address(r26, r27, (Address::ScaleFactor)1, +0x502175), r25); // xadd qword ptr [r26+r27*2+0x502175], r25 IID11711 - __ xaddq(Address(r27, r28, (Address::ScaleFactor)3, +0x2b6dc375), r26); // xadd qword ptr [r27+r28*8+0x2b6dc375], r26 IID11712 - __ xaddq(Address(r28, r29, (Address::ScaleFactor)3, +0x7c793ed6), r27); // xadd qword ptr [r28+r29*8+0x7c793ed6], r27 IID11713 - __ xaddq(Address(r29, r30, (Address::ScaleFactor)2, +0xbe047c1), r28); // xadd qword ptr [r29+r30*4+0xbe047c1], r28 IID11714 - __ xaddq(Address(r30, +0x4cd70ee9), r29); // xadd qword ptr [r30+0x4cd70ee9], r29 IID11715 - __ xaddq(Address(r31, -0x2252b35a), r30); // xadd qword ptr [r31-0x2252b35a], r30 IID11716 - __ xaddq(Address(rcx, +0x7b599d45), r31); // xadd qword ptr [rcx+0x7b599d45], r31 IID11717 - __ andq(Address(rcx, rdx, (Address::ScaleFactor)2, -0x4e426426), 1); // and qword ptr [rcx+rdx*4-0x4e426426], 1 IID11718 - __ andq(Address(rdx, rbx, (Address::ScaleFactor)0, -0x788ddd72), 1); // and qword ptr [rdx+rbx*1-0x788ddd72], 1 IID11719 - __ andq(Address(rbx, r8, (Address::ScaleFactor)0, -0x187ca42b), 1); // and qword ptr [rbx+r8*1-0x187ca42b], 1 IID11720 - __ andq(Address(r8, r9, (Address::ScaleFactor)1, +0x2f218aa7), 1); // and qword ptr [r8+r9*2+0x2f218aa7], 1 IID11721 - __ andq(Address(r9, -0x7da3378e), 1); // and qword ptr [r9-0x7da3378e], 1 IID11722 - __ andq(Address(r10, r11, (Address::ScaleFactor)2, +0x41a6ecc8), 1); // and qword ptr [r10+r11*4+0x41a6ecc8], 1 IID11723 - __ andq(Address(r11, r12, (Address::ScaleFactor)2, +0x25064713), 1); // and qword ptr [r11+r12*4+0x25064713], 1 IID11724 - __ andq(Address(r12, r13, (Address::ScaleFactor)3, +0x745ebcde), 1); // and qword ptr [r12+r13*8+0x745ebcde], 1 IID11725 - __ andq(Address(r13, r14, (Address::ScaleFactor)2, -0x79d3ea28), 1); // and qword ptr [r13+r14*4-0x79d3ea28], 1 IID11726 - __ andq(Address(r14, r15, (Address::ScaleFactor)3, -0x3c44ede0), 1); // and qword ptr [r14+r15*8-0x3c44ede0], 1 IID11727 - __ andq(Address(r15, r16, (Address::ScaleFactor)2, -0x50becd45), 1); // and qword ptr [r15+r16*4-0x50becd45], 1 IID11728 - __ andq(Address(r16, r17, (Address::ScaleFactor)1, +0x17c1575b), 1); // and qword ptr [r16+r17*2+0x17c1575b], 1 IID11729 - __ andq(Address(r17, r18, (Address::ScaleFactor)2, +0x53808949), 1); // and qword ptr [r17+r18*4+0x53808949], 1 IID11730 - __ andq(Address(r18, r19, (Address::ScaleFactor)2, -0x2fd5be99), 1); // and qword ptr [r18+r19*4-0x2fd5be99], 1 IID11731 - __ andq(Address(r19, r20, (Address::ScaleFactor)0, -0x58039a3a), 1); // and qword ptr [r19+r20*1-0x58039a3a], 1 IID11732 - __ andq(Address(r20, r21, (Address::ScaleFactor)0, +0x634e6a1d), 1); // and qword ptr [r20+r21*1+0x634e6a1d], 1 IID11733 - __ andq(Address(r21, r22, (Address::ScaleFactor)1, -0x3e448d20), 1); // and qword ptr [r21+r22*2-0x3e448d20], 1 IID11734 - __ andq(Address(r22, +0x9351646), 1); // and qword ptr [r22+0x9351646], 1 IID11735 - __ andq(Address(r23, r24, (Address::ScaleFactor)3, -0x68593392), 1); // and qword ptr [r23+r24*8-0x68593392], 1 IID11736 - __ andq(Address(r24, +0x42872748), 1); // and qword ptr [r24+0x42872748], 1 IID11737 - __ andq(Address(r25, r26, (Address::ScaleFactor)3, -0x3dde9069), 1); // and qword ptr [r25+r26*8-0x3dde9069], 1 IID11738 - __ andq(Address(r26, r27, (Address::ScaleFactor)3, +0x210423d2), 1); // and qword ptr [r26+r27*8+0x210423d2], 1 IID11739 - __ andq(Address(r27, r28, (Address::ScaleFactor)3, -0x2e242dc4), 1); // and qword ptr [r27+r28*8-0x2e242dc4], 1 IID11740 - __ andq(Address(r28, r29, (Address::ScaleFactor)0, +0x7571c1d), 1); // and qword ptr [r28+r29*1+0x7571c1d], 1 IID11741 - __ andq(Address(r29, -0x753ad1bf), 1); // and qword ptr [r29-0x753ad1bf], 1 IID11742 - __ andq(Address(r30, -0x6d1c8dcd), 1); // and qword ptr [r30-0x6d1c8dcd], 1 IID11743 - __ andq(Address(r31, rcx, (Address::ScaleFactor)2, +0x78241aaa), 1); // and qword ptr [r31+rcx*4+0x78241aaa], 1 IID11744 - __ andq(Address(rcx, rdx, (Address::ScaleFactor)3, -0x440facb), 16); // and qword ptr [rcx+rdx*8-0x440facb], 16 IID11745 - __ andq(Address(rdx, rbx, (Address::ScaleFactor)0, -0x7e7524f7), 16); // and qword ptr [rdx+rbx*1-0x7e7524f7], 16 IID11746 - __ andq(Address(rbx, r8, (Address::ScaleFactor)1, -0x799c816f), 16); // and qword ptr [rbx+r8*2-0x799c816f], 16 IID11747 - __ andq(Address(r8, r9, (Address::ScaleFactor)3, +0x4d397671), 16); // and qword ptr [r8+r9*8+0x4d397671], 16 IID11748 - __ andq(Address(r9, r10, (Address::ScaleFactor)3, -0x9a23e6f), 16); // and qword ptr [r9+r10*8-0x9a23e6f], 16 IID11749 - __ andq(Address(r10, +0x658b6d0e), 16); // and qword ptr [r10+0x658b6d0e], 16 IID11750 - __ andq(Address(r11, r12, (Address::ScaleFactor)3, -0x3b229b38), 16); // and qword ptr [r11+r12*8-0x3b229b38], 16 IID11751 - __ andq(Address(r12, r13, (Address::ScaleFactor)1, +0x31b7e768), 16); // and qword ptr [r12+r13*2+0x31b7e768], 16 IID11752 - __ andq(Address(r13, r14, (Address::ScaleFactor)1, +0x6f5d3a0a), 16); // and qword ptr [r13+r14*2+0x6f5d3a0a], 16 IID11753 - __ andq(Address(r14, r15, (Address::ScaleFactor)2, -0x50fa57bc), 16); // and qword ptr [r14+r15*4-0x50fa57bc], 16 IID11754 - __ andq(Address(r15, r16, (Address::ScaleFactor)3, +0x101e935d), 16); // and qword ptr [r15+r16*8+0x101e935d], 16 IID11755 - __ andq(Address(r16, r17, (Address::ScaleFactor)3, -0x7a600a8), 16); // and qword ptr [r16+r17*8-0x7a600a8], 16 IID11756 - __ andq(Address(r17, r18, (Address::ScaleFactor)3, +0x2ad751bd), 16); // and qword ptr [r17+r18*8+0x2ad751bd], 16 IID11757 - __ andq(Address(r18, -0x6cc1bb1b), 16); // and qword ptr [r18-0x6cc1bb1b], 16 IID11758 - __ andq(Address(r19, r20, (Address::ScaleFactor)3, +0x43d7c735), 16); // and qword ptr [r19+r20*8+0x43d7c735], 16 IID11759 - __ andq(Address(r20, r21, (Address::ScaleFactor)1, +0x2bea74b5), 16); // and qword ptr [r20+r21*2+0x2bea74b5], 16 IID11760 - __ andq(Address(r21, r22, (Address::ScaleFactor)0, -0x5e40cd7b), 16); // and qword ptr [r21+r22*1-0x5e40cd7b], 16 IID11761 - __ andq(Address(r22, r23, (Address::ScaleFactor)1, +0x5f4a7583), 16); // and qword ptr [r22+r23*2+0x5f4a7583], 16 IID11762 - __ andq(Address(r23, r24, (Address::ScaleFactor)2, -0x6a10e5a4), 16); // and qword ptr [r23+r24*4-0x6a10e5a4], 16 IID11763 - __ andq(Address(r24, r25, (Address::ScaleFactor)2, +0x235bd93c), 16); // and qword ptr [r24+r25*4+0x235bd93c], 16 IID11764 - __ andq(Address(r25, r26, (Address::ScaleFactor)1, +0x6adc7821), 16); // and qword ptr [r25+r26*2+0x6adc7821], 16 IID11765 - __ andq(Address(r26, r27, (Address::ScaleFactor)2, -0x415d55f4), 16); // and qword ptr [r26+r27*4-0x415d55f4], 16 IID11766 - __ andq(Address(r27, r28, (Address::ScaleFactor)0, -0x4ba23bef), 16); // and qword ptr [r27+r28*1-0x4ba23bef], 16 IID11767 - __ andq(Address(r28, r29, (Address::ScaleFactor)3, +0x4e9ca541), 16); // and qword ptr [r28+r29*8+0x4e9ca541], 16 IID11768 - __ andq(Address(r29, -0x7350e8e), 16); // and qword ptr [r29-0x7350e8e], 16 IID11769 - __ andq(Address(r30, r31, (Address::ScaleFactor)1, -0x11729dbf), 16); // and qword ptr [r30+r31*2-0x11729dbf], 16 IID11770 - __ andq(Address(r31, rcx, (Address::ScaleFactor)3, -0xd1a1b95), 16); // and qword ptr [r31+rcx*8-0xd1a1b95], 16 IID11771 - __ andq(Address(rcx, rdx, (Address::ScaleFactor)1, -0x253e72b8), 256); // and qword ptr [rcx+rdx*2-0x253e72b8], 256 IID11772 - __ andq(Address(rdx, rbx, (Address::ScaleFactor)1, +0x5f2098ba), 256); // and qword ptr [rdx+rbx*2+0x5f2098ba], 256 IID11773 - __ andq(Address(rbx, r8, (Address::ScaleFactor)1, -0x76888b97), 256); // and qword ptr [rbx+r8*2-0x76888b97], 256 IID11774 - __ andq(Address(r8, -0x7b4e732a), 256); // and qword ptr [r8-0x7b4e732a], 256 IID11775 - __ andq(Address(r9, r10, (Address::ScaleFactor)0, -0x6efe92b), 256); // and qword ptr [r9+r10*1-0x6efe92b], 256 IID11776 - __ andq(Address(r10, r11, (Address::ScaleFactor)2, -0x5f69b789), 256); // and qword ptr [r10+r11*4-0x5f69b789], 256 IID11777 - __ andq(Address(r11, r12, (Address::ScaleFactor)1, -0xde15bff), 256); // and qword ptr [r11+r12*2-0xde15bff], 256 IID11778 - __ andq(Address(r12, r13, (Address::ScaleFactor)1, -0x2918c3c2), 256); // and qword ptr [r12+r13*2-0x2918c3c2], 256 IID11779 - __ andq(Address(r13, -0x7eea005b), 256); // and qword ptr [r13-0x7eea005b], 256 IID11780 - __ andq(Address(r14, r15, (Address::ScaleFactor)0, -0x390588a0), 256); // and qword ptr [r14+r15*1-0x390588a0], 256 IID11781 - __ andq(Address(r15, r16, (Address::ScaleFactor)3, +0x7c803e4d), 256); // and qword ptr [r15+r16*8+0x7c803e4d], 256 IID11782 - __ andq(Address(r16, r17, (Address::ScaleFactor)0, -0x5a3a310a), 256); // and qword ptr [r16+r17*1-0x5a3a310a], 256 IID11783 - __ andq(Address(r17, +0x77648b35), 256); // and qword ptr [r17+0x77648b35], 256 IID11784 - __ andq(Address(r18, r19, (Address::ScaleFactor)1, -0x49a5f813), 256); // and qword ptr [r18+r19*2-0x49a5f813], 256 IID11785 - __ andq(Address(r19, r20, (Address::ScaleFactor)1, -0x81ac910), 256); // and qword ptr [r19+r20*2-0x81ac910], 256 IID11786 - __ andq(Address(r20, -0x320e9a07), 256); // and qword ptr [r20-0x320e9a07], 256 IID11787 - __ andq(Address(r21, r22, (Address::ScaleFactor)1, -0x7fee7c68), 256); // and qword ptr [r21+r22*2-0x7fee7c68], 256 IID11788 - __ andq(Address(r22, r23, (Address::ScaleFactor)0, +0xbe461f1), 256); // and qword ptr [r22+r23*1+0xbe461f1], 256 IID11789 - __ andq(Address(r23, r24, (Address::ScaleFactor)3, +0x367d7b55), 256); // and qword ptr [r23+r24*8+0x367d7b55], 256 IID11790 - __ andq(Address(r24, +0x2071ca85), 256); // and qword ptr [r24+0x2071ca85], 256 IID11791 - __ andq(Address(r25, r26, (Address::ScaleFactor)0, +0x415d16b6), 256); // and qword ptr [r25+r26*1+0x415d16b6], 256 IID11792 - __ andq(Address(r26, r27, (Address::ScaleFactor)1, +0x1fd378e4), 256); // and qword ptr [r26+r27*2+0x1fd378e4], 256 IID11793 - __ andq(Address(r27, r28, (Address::ScaleFactor)3, +0x9112a69), 256); // and qword ptr [r27+r28*8+0x9112a69], 256 IID11794 - __ andq(Address(r28, r29, (Address::ScaleFactor)0, +0x710c818c), 256); // and qword ptr [r28+r29*1+0x710c818c], 256 IID11795 - __ andq(Address(r29, -0x31c4b9ce), 256); // and qword ptr [r29-0x31c4b9ce], 256 IID11796 - __ andq(Address(r30, -0x57ca06e6), 256); // and qword ptr [r30-0x57ca06e6], 256 IID11797 - __ andq(Address(r31, -0x72c0ee3e), 256); // and qword ptr [r31-0x72c0ee3e], 256 IID11798 - __ andq(Address(rcx, rdx, (Address::ScaleFactor)0, -0x38f6b45e), 4096); // and qword ptr [rcx+rdx*1-0x38f6b45e], 4096 IID11799 - __ andq(Address(rdx, +0x65e12e83), 4096); // and qword ptr [rdx+0x65e12e83], 4096 IID11800 - __ andq(Address(rbx, r8, (Address::ScaleFactor)3, -0x4963bb6), 4096); // and qword ptr [rbx+r8*8-0x4963bb6], 4096 IID11801 - __ andq(Address(r8, r9, (Address::ScaleFactor)0, -0x7b6d6169), 4096); // and qword ptr [r8+r9*1-0x7b6d6169], 4096 IID11802 - __ andq(Address(r9, r10, (Address::ScaleFactor)3, -0x7dfdafea), 4096); // and qword ptr [r9+r10*8-0x7dfdafea], 4096 IID11803 - __ andq(Address(r10, +0x3f959035), 4096); // and qword ptr [r10+0x3f959035], 4096 IID11804 - __ andq(Address(r11, r12, (Address::ScaleFactor)2, -0x5d325257), 4096); // and qword ptr [r11+r12*4-0x5d325257], 4096 IID11805 - __ andq(Address(r12, r13, (Address::ScaleFactor)2, +0x2b8da7c3), 4096); // and qword ptr [r12+r13*4+0x2b8da7c3], 4096 IID11806 - __ andq(Address(r13, r14, (Address::ScaleFactor)0, -0x74b03dae), 4096); // and qword ptr [r13+r14*1-0x74b03dae], 4096 IID11807 - __ andq(Address(r14, r15, (Address::ScaleFactor)2, -0x63061ba3), 4096); // and qword ptr [r14+r15*4-0x63061ba3], 4096 IID11808 - __ andq(Address(r15, r16, (Address::ScaleFactor)1, +0x2caf4e84), 4096); // and qword ptr [r15+r16*2+0x2caf4e84], 4096 IID11809 - __ andq(Address(r16, r17, (Address::ScaleFactor)2, +0x58c828e6), 4096); // and qword ptr [r16+r17*4+0x58c828e6], 4096 IID11810 - __ andq(Address(r17, -0x3d6b5c01), 4096); // and qword ptr [r17-0x3d6b5c01], 4096 IID11811 - __ andq(Address(r18, -0x1ee1b1d1), 4096); // and qword ptr [r18-0x1ee1b1d1], 4096 IID11812 - __ andq(Address(r19, r20, (Address::ScaleFactor)0, -0x13444a28), 4096); // and qword ptr [r19+r20*1-0x13444a28], 4096 IID11813 - __ andq(Address(r20, r21, (Address::ScaleFactor)1, +0x8b25dd8), 4096); // and qword ptr [r20+r21*2+0x8b25dd8], 4096 IID11814 - __ andq(Address(r21, +0x5efe22a3), 4096); // and qword ptr [r21+0x5efe22a3], 4096 IID11815 - __ andq(Address(r22, r23, (Address::ScaleFactor)2, -0x5e15970c), 4096); // and qword ptr [r22+r23*4-0x5e15970c], 4096 IID11816 - __ andq(Address(r23, r24, (Address::ScaleFactor)2, -0x59771fcd), 4096); // and qword ptr [r23+r24*4-0x59771fcd], 4096 IID11817 - __ andq(Address(r24, +0x44122521), 4096); // and qword ptr [r24+0x44122521], 4096 IID11818 - __ andq(Address(r25, r26, (Address::ScaleFactor)1, -0x4e70a897), 4096); // and qword ptr [r25+r26*2-0x4e70a897], 4096 IID11819 - __ andq(Address(r26, r27, (Address::ScaleFactor)0, +0x6f926b87), 4096); // and qword ptr [r26+r27*1+0x6f926b87], 4096 IID11820 - __ andq(Address(r27, -0x343e4e36), 4096); // and qword ptr [r27-0x343e4e36], 4096 IID11821 - __ andq(Address(r28, r29, (Address::ScaleFactor)3, -0xbfadbb6), 4096); // and qword ptr [r28+r29*8-0xbfadbb6], 4096 IID11822 - __ andq(Address(r29, r30, (Address::ScaleFactor)1, +0x3a480fa9), 4096); // and qword ptr [r29+r30*2+0x3a480fa9], 4096 IID11823 - __ andq(Address(r30, r31, (Address::ScaleFactor)3, -0x4d2a600c), 4096); // and qword ptr [r30+r31*8-0x4d2a600c], 4096 IID11824 - __ andq(Address(r31, rcx, (Address::ScaleFactor)2, +0x62d98af0), 4096); // and qword ptr [r31+rcx*4+0x62d98af0], 4096 IID11825 - __ andq(Address(rcx, rdx, (Address::ScaleFactor)3, -0x70d7dfa2), 65536); // and qword ptr [rcx+rdx*8-0x70d7dfa2], 65536 IID11826 - __ andq(Address(rdx, rbx, (Address::ScaleFactor)3, +0x359636f1), 65536); // and qword ptr [rdx+rbx*8+0x359636f1], 65536 IID11827 - __ andq(Address(rbx, r8, (Address::ScaleFactor)3, +0x7cb25bba), 65536); // and qword ptr [rbx+r8*8+0x7cb25bba], 65536 IID11828 - __ andq(Address(r8, -0x767acdf2), 65536); // and qword ptr [r8-0x767acdf2], 65536 IID11829 - __ andq(Address(r9, -0x5ec031f4), 65536); // and qword ptr [r9-0x5ec031f4], 65536 IID11830 - __ andq(Address(r10, r11, (Address::ScaleFactor)1, -0x42b97064), 65536); // and qword ptr [r10+r11*2-0x42b97064], 65536 IID11831 - __ andq(Address(r11, r12, (Address::ScaleFactor)2, -0x350cfe52), 65536); // and qword ptr [r11+r12*4-0x350cfe52], 65536 IID11832 - __ andq(Address(r12, r13, (Address::ScaleFactor)3, -0x1f61bff), 65536); // and qword ptr [r12+r13*8-0x1f61bff], 65536 IID11833 - __ andq(Address(r13, r14, (Address::ScaleFactor)2, +0x53b66de3), 65536); // and qword ptr [r13+r14*4+0x53b66de3], 65536 IID11834 - __ andq(Address(r14, -0x7f379b8e), 65536); // and qword ptr [r14-0x7f379b8e], 65536 IID11835 - __ andq(Address(r15, r16, (Address::ScaleFactor)3, +0x4daa5ee9), 65536); // and qword ptr [r15+r16*8+0x4daa5ee9], 65536 IID11836 - __ andq(Address(r16, r17, (Address::ScaleFactor)1, +0x1be6a5f8), 65536); // and qword ptr [r16+r17*2+0x1be6a5f8], 65536 IID11837 - __ andq(Address(r17, r18, (Address::ScaleFactor)1, +0x4422269c), 65536); // and qword ptr [r17+r18*2+0x4422269c], 65536 IID11838 - __ andq(Address(r18, r19, (Address::ScaleFactor)2, +0x45b7bc3f), 65536); // and qword ptr [r18+r19*4+0x45b7bc3f], 65536 IID11839 - __ andq(Address(r19, r20, (Address::ScaleFactor)2, +0x22d851cd), 65536); // and qword ptr [r19+r20*4+0x22d851cd], 65536 IID11840 - __ andq(Address(r20, r21, (Address::ScaleFactor)2, -0x797bc79b), 65536); // and qword ptr [r20+r21*4-0x797bc79b], 65536 IID11841 - __ andq(Address(r21, r22, (Address::ScaleFactor)2, -0x2ebaa4dc), 65536); // and qword ptr [r21+r22*4-0x2ebaa4dc], 65536 IID11842 - __ andq(Address(r22, r23, (Address::ScaleFactor)2, +0x61b1e382), 65536); // and qword ptr [r22+r23*4+0x61b1e382], 65536 IID11843 - __ andq(Address(r23, r24, (Address::ScaleFactor)3, -0x4edab0f6), 65536); // and qword ptr [r23+r24*8-0x4edab0f6], 65536 IID11844 - __ andq(Address(r24, r25, (Address::ScaleFactor)1, -0x2f0a92ca), 65536); // and qword ptr [r24+r25*2-0x2f0a92ca], 65536 IID11845 - __ andq(Address(r25, r26, (Address::ScaleFactor)3, +0x63cea984), 65536); // and qword ptr [r25+r26*8+0x63cea984], 65536 IID11846 - __ andq(Address(r26, r27, (Address::ScaleFactor)1, -0x19a3ced7), 65536); // and qword ptr [r26+r27*2-0x19a3ced7], 65536 IID11847 - __ andq(Address(r27, -0xd0051f9), 65536); // and qword ptr [r27-0xd0051f9], 65536 IID11848 - __ andq(Address(r28, r29, (Address::ScaleFactor)0, +0x11164a3a), 65536); // and qword ptr [r28+r29*1+0x11164a3a], 65536 IID11849 - __ andq(Address(r29, r30, (Address::ScaleFactor)2, -0x59fb7a1a), 65536); // and qword ptr [r29+r30*4-0x59fb7a1a], 65536 IID11850 - __ andq(Address(r30, r31, (Address::ScaleFactor)0, +0x227bd6cd), 65536); // and qword ptr [r30+r31*1+0x227bd6cd], 65536 IID11851 - __ andq(Address(r31, rcx, (Address::ScaleFactor)1, -0x48c8540a), 65536); // and qword ptr [r31+rcx*2-0x48c8540a], 65536 IID11852 - __ andq(Address(rcx, rdx, (Address::ScaleFactor)2, -0x2c39ee08), 1048576); // and qword ptr [rcx+rdx*4-0x2c39ee08], 1048576 IID11853 - __ andq(Address(rdx, rbx, (Address::ScaleFactor)2, +0x421adf74), 1048576); // and qword ptr [rdx+rbx*4+0x421adf74], 1048576 IID11854 - __ andq(Address(rbx, r8, (Address::ScaleFactor)1, +0x6f32f0cc), 1048576); // and qword ptr [rbx+r8*2+0x6f32f0cc], 1048576 IID11855 - __ andq(Address(r8, r9, (Address::ScaleFactor)0, -0x67977cab), 1048576); // and qword ptr [r8+r9*1-0x67977cab], 1048576 IID11856 - __ andq(Address(r9, r10, (Address::ScaleFactor)0, -0xea09209), 1048576); // and qword ptr [r9+r10*1-0xea09209], 1048576 IID11857 - __ andq(Address(r10, r11, (Address::ScaleFactor)2, +0xfad5756), 1048576); // and qword ptr [r10+r11*4+0xfad5756], 1048576 IID11858 - __ andq(Address(r11, r12, (Address::ScaleFactor)3, -0x4b5ae4e6), 1048576); // and qword ptr [r11+r12*8-0x4b5ae4e6], 1048576 IID11859 - __ andq(Address(r12, r13, (Address::ScaleFactor)3, -0x8b05752), 1048576); // and qword ptr [r12+r13*8-0x8b05752], 1048576 IID11860 - __ andq(Address(r13, r14, (Address::ScaleFactor)0, +0x33deb3a5), 1048576); // and qword ptr [r13+r14*1+0x33deb3a5], 1048576 IID11861 - __ andq(Address(r14, +0x17b49bec), 1048576); // and qword ptr [r14+0x17b49bec], 1048576 IID11862 - __ andq(Address(r15, r16, (Address::ScaleFactor)2, +0x1b709d31), 1048576); // and qword ptr [r15+r16*4+0x1b709d31], 1048576 IID11863 - __ andq(Address(r16, r17, (Address::ScaleFactor)2, +0x78ef64b6), 1048576); // and qword ptr [r16+r17*4+0x78ef64b6], 1048576 IID11864 - __ andq(Address(r17, r18, (Address::ScaleFactor)3, +0x3aea53c), 1048576); // and qword ptr [r17+r18*8+0x3aea53c], 1048576 IID11865 - __ andq(Address(r18, r19, (Address::ScaleFactor)3, +0x510de7f7), 1048576); // and qword ptr [r18+r19*8+0x510de7f7], 1048576 IID11866 - __ andq(Address(r19, r20, (Address::ScaleFactor)2, +0x4e129d03), 1048576); // and qword ptr [r19+r20*4+0x4e129d03], 1048576 IID11867 - __ andq(Address(r20, r21, (Address::ScaleFactor)3, +0x5394a4a3), 1048576); // and qword ptr [r20+r21*8+0x5394a4a3], 1048576 IID11868 - __ andq(Address(r21, r22, (Address::ScaleFactor)2, -0x2ca80707), 1048576); // and qword ptr [r21+r22*4-0x2ca80707], 1048576 IID11869 - __ andq(Address(r22, r23, (Address::ScaleFactor)0, +0x54b431a4), 1048576); // and qword ptr [r22+r23*1+0x54b431a4], 1048576 IID11870 - __ andq(Address(r23, r24, (Address::ScaleFactor)0, -0x6cce5411), 1048576); // and qword ptr [r23+r24*1-0x6cce5411], 1048576 IID11871 - __ andq(Address(r24, +0x109e6ee5), 1048576); // and qword ptr [r24+0x109e6ee5], 1048576 IID11872 - __ andq(Address(r25, r26, (Address::ScaleFactor)1, -0x5f2be812), 1048576); // and qword ptr [r25+r26*2-0x5f2be812], 1048576 IID11873 - __ andq(Address(r26, r27, (Address::ScaleFactor)3, -0x25240d13), 1048576); // and qword ptr [r26+r27*8-0x25240d13], 1048576 IID11874 - __ andq(Address(r27, +0x78891088), 1048576); // and qword ptr [r27+0x78891088], 1048576 IID11875 - __ andq(Address(r28, r29, (Address::ScaleFactor)2, +0x2085047e), 1048576); // and qword ptr [r28+r29*4+0x2085047e], 1048576 IID11876 - __ andq(Address(r29, r30, (Address::ScaleFactor)1, -0x50773c13), 1048576); // and qword ptr [r29+r30*2-0x50773c13], 1048576 IID11877 - __ andq(Address(r30, -0x77ff67e8), 1048576); // and qword ptr [r30-0x77ff67e8], 1048576 IID11878 - __ andq(Address(r31, -0x33ac7e2e), 1048576); // and qword ptr [r31-0x33ac7e2e], 1048576 IID11879 - __ andq(Address(rcx, rdx, (Address::ScaleFactor)1, +0x3a656170), 16777216); // and qword ptr [rcx+rdx*2+0x3a656170], 16777216 IID11880 - __ andq(Address(rdx, -0x2b657319), 16777216); // and qword ptr [rdx-0x2b657319], 16777216 IID11881 - __ andq(Address(rbx, r8, (Address::ScaleFactor)0, +0x1ccc0e47), 16777216); // and qword ptr [rbx+r8*1+0x1ccc0e47], 16777216 IID11882 - __ andq(Address(r8, r9, (Address::ScaleFactor)1, +0x3e5fdb7c), 16777216); // and qword ptr [r8+r9*2+0x3e5fdb7c], 16777216 IID11883 - __ andq(Address(r9, r10, (Address::ScaleFactor)1, +0x324e317), 16777216); // and qword ptr [r9+r10*2+0x324e317], 16777216 IID11884 - __ andq(Address(r10, r11, (Address::ScaleFactor)1, +0x6f7ddf82), 16777216); // and qword ptr [r10+r11*2+0x6f7ddf82], 16777216 IID11885 - __ andq(Address(r11, r12, (Address::ScaleFactor)2, -0x62f6fdbd), 16777216); // and qword ptr [r11+r12*4-0x62f6fdbd], 16777216 IID11886 - __ andq(Address(r12, r13, (Address::ScaleFactor)2, -0x47b33d5e), 16777216); // and qword ptr [r12+r13*4-0x47b33d5e], 16777216 IID11887 - __ andq(Address(r13, r14, (Address::ScaleFactor)2, -0x3e7e6245), 16777216); // and qword ptr [r13+r14*4-0x3e7e6245], 16777216 IID11888 - __ andq(Address(r14, r15, (Address::ScaleFactor)2, +0x2452ca38), 16777216); // and qword ptr [r14+r15*4+0x2452ca38], 16777216 IID11889 - __ andq(Address(r15, -0x2b2fd43e), 16777216); // and qword ptr [r15-0x2b2fd43e], 16777216 IID11890 - __ andq(Address(r16, r17, (Address::ScaleFactor)3, +0xbe146ec), 16777216); // and qword ptr [r16+r17*8+0xbe146ec], 16777216 IID11891 - __ andq(Address(r17, r18, (Address::ScaleFactor)0, -0x75d7a6c1), 16777216); // and qword ptr [r17+r18*1-0x75d7a6c1], 16777216 IID11892 - __ andq(Address(r18, -0xa56361d), 16777216); // and qword ptr [r18-0xa56361d], 16777216 IID11893 - __ andq(Address(r19, r20, (Address::ScaleFactor)3, +0x549a87e2), 16777216); // and qword ptr [r19+r20*8+0x549a87e2], 16777216 IID11894 - __ andq(Address(r20, -0x6ac45091), 16777216); // and qword ptr [r20-0x6ac45091], 16777216 IID11895 - __ andq(Address(r21, r22, (Address::ScaleFactor)0, +0x1f94bb07), 16777216); // and qword ptr [r21+r22*1+0x1f94bb07], 16777216 IID11896 - __ andq(Address(r22, -0x504bbc59), 16777216); // and qword ptr [r22-0x504bbc59], 16777216 IID11897 - __ andq(Address(r23, r24, (Address::ScaleFactor)1, +0x657a9262), 16777216); // and qword ptr [r23+r24*2+0x657a9262], 16777216 IID11898 - __ andq(Address(r24, r25, (Address::ScaleFactor)2, -0x1c6a5592), 16777216); // and qword ptr [r24+r25*4-0x1c6a5592], 16777216 IID11899 - __ andq(Address(r25, r26, (Address::ScaleFactor)2, +0x28c98a3a), 16777216); // and qword ptr [r25+r26*4+0x28c98a3a], 16777216 IID11900 - __ andq(Address(r26, r27, (Address::ScaleFactor)2, -0x5d9cd1b7), 16777216); // and qword ptr [r26+r27*4-0x5d9cd1b7], 16777216 IID11901 - __ andq(Address(r27, r28, (Address::ScaleFactor)2, +0x61494a04), 16777216); // and qword ptr [r27+r28*4+0x61494a04], 16777216 IID11902 - __ andq(Address(r28, r29, (Address::ScaleFactor)0, -0x36c22), 16777216); // and qword ptr [r28+r29*1-0x36c22], 16777216 IID11903 - __ andq(Address(r29, r30, (Address::ScaleFactor)3, -0x4588058f), 16777216); // and qword ptr [r29+r30*8-0x4588058f], 16777216 IID11904 - __ andq(Address(r30, +0x7bed7091), 16777216); // and qword ptr [r30+0x7bed7091], 16777216 IID11905 - __ andq(Address(r31, rcx, (Address::ScaleFactor)1, -0x2743655e), 16777216); // and qword ptr [r31+rcx*2-0x2743655e], 16777216 IID11906 - __ andq(Address(rcx, rdx, (Address::ScaleFactor)2, +0x2873c320), 268435456); // and qword ptr [rcx+rdx*4+0x2873c320], 268435456 IID11907 - __ andq(Address(rdx, rbx, (Address::ScaleFactor)0, -0x47ac0b8f), 268435456); // and qword ptr [rdx+rbx*1-0x47ac0b8f], 268435456 IID11908 - __ andq(Address(rbx, r8, (Address::ScaleFactor)0, +0x72b79f34), 268435456); // and qword ptr [rbx+r8*1+0x72b79f34], 268435456 IID11909 - __ andq(Address(r8, r9, (Address::ScaleFactor)2, +0x48b5bf57), 268435456); // and qword ptr [r8+r9*4+0x48b5bf57], 268435456 IID11910 - __ andq(Address(r9, r10, (Address::ScaleFactor)1, +0x31e9ac64), 268435456); // and qword ptr [r9+r10*2+0x31e9ac64], 268435456 IID11911 - __ andq(Address(r10, r11, (Address::ScaleFactor)2, +0x7ea7618b), 268435456); // and qword ptr [r10+r11*4+0x7ea7618b], 268435456 IID11912 - __ andq(Address(r11, r12, (Address::ScaleFactor)2, +0x3a98084), 268435456); // and qword ptr [r11+r12*4+0x3a98084], 268435456 IID11913 - __ andq(Address(r12, r13, (Address::ScaleFactor)0, +0x6a7c09dc), 268435456); // and qword ptr [r12+r13*1+0x6a7c09dc], 268435456 IID11914 - __ andq(Address(r13, r14, (Address::ScaleFactor)2, -0x6d4d2bdd), 268435456); // and qword ptr [r13+r14*4-0x6d4d2bdd], 268435456 IID11915 - __ andq(Address(r14, r15, (Address::ScaleFactor)0, -0x2c04c886), 268435456); // and qword ptr [r14+r15*1-0x2c04c886], 268435456 IID11916 - __ andq(Address(r15, r16, (Address::ScaleFactor)3, -0x7b20d86a), 268435456); // and qword ptr [r15+r16*8-0x7b20d86a], 268435456 IID11917 - __ andq(Address(r16, r17, (Address::ScaleFactor)0, +0x1fa9b130), 268435456); // and qword ptr [r16+r17*1+0x1fa9b130], 268435456 IID11918 - __ andq(Address(r17, r18, (Address::ScaleFactor)2, +0x9bbe1a3), 268435456); // and qword ptr [r17+r18*4+0x9bbe1a3], 268435456 IID11919 - __ andq(Address(r18, r19, (Address::ScaleFactor)3, +0x1203831f), 268435456); // and qword ptr [r18+r19*8+0x1203831f], 268435456 IID11920 - __ andq(Address(r19, r20, (Address::ScaleFactor)3, +0x55fddcd8), 268435456); // and qword ptr [r19+r20*8+0x55fddcd8], 268435456 IID11921 - __ andq(Address(r20, -0x322997c5), 268435456); // and qword ptr [r20-0x322997c5], 268435456 IID11922 - __ andq(Address(r21, r22, (Address::ScaleFactor)3, +0x457e7d37), 268435456); // and qword ptr [r21+r22*8+0x457e7d37], 268435456 IID11923 - __ andq(Address(r22, r23, (Address::ScaleFactor)1, +0x6e42fc02), 268435456); // and qword ptr [r22+r23*2+0x6e42fc02], 268435456 IID11924 - __ andq(Address(r23, r24, (Address::ScaleFactor)1, +0x501bda29), 268435456); // and qword ptr [r23+r24*2+0x501bda29], 268435456 IID11925 - __ andq(Address(r24, r25, (Address::ScaleFactor)0, -0x3c6acf2b), 268435456); // and qword ptr [r24+r25*1-0x3c6acf2b], 268435456 IID11926 - __ andq(Address(r25, r26, (Address::ScaleFactor)0, +0x7ef77b01), 268435456); // and qword ptr [r25+r26*1+0x7ef77b01], 268435456 IID11927 - __ andq(Address(r26, r27, (Address::ScaleFactor)2, +0x64ce97b7), 268435456); // and qword ptr [r26+r27*4+0x64ce97b7], 268435456 IID11928 - __ andq(Address(r27, r28, (Address::ScaleFactor)2, -0x72718dc1), 268435456); // and qword ptr [r27+r28*4-0x72718dc1], 268435456 IID11929 - __ andq(Address(r28, +0x6385d19f), 268435456); // and qword ptr [r28+0x6385d19f], 268435456 IID11930 - __ andq(Address(r29, +0x219876b0), 268435456); // and qword ptr [r29+0x219876b0], 268435456 IID11931 - __ andq(Address(r30, -0xdf83798), 268435456); // and qword ptr [r30-0xdf83798], 268435456 IID11932 - __ andq(Address(r31, rcx, (Address::ScaleFactor)0, -0x4e1c0f0d), 268435456); // and qword ptr [r31+rcx*1-0x4e1c0f0d], 268435456 IID11933 - __ addq(Address(rcx, rdx, (Address::ScaleFactor)3, +0xad1886), 1); // add qword ptr [rcx+rdx*8+0xad1886], 1 IID11934 - __ addq(Address(rdx, rbx, (Address::ScaleFactor)2, -0x4e085e79), 1); // add qword ptr [rdx+rbx*4-0x4e085e79], 1 IID11935 - __ addq(Address(rbx, +0x3464661d), 1); // add qword ptr [rbx+0x3464661d], 1 IID11936 - __ addq(Address(r8, r9, (Address::ScaleFactor)3, -0x394e7242), 1); // add qword ptr [r8+r9*8-0x394e7242], 1 IID11937 - __ addq(Address(r9, r10, (Address::ScaleFactor)0, +0x1d28d76e), 1); // add qword ptr [r9+r10*1+0x1d28d76e], 1 IID11938 - __ addq(Address(r10, +0x3376bfdc), 1); // add qword ptr [r10+0x3376bfdc], 1 IID11939 - __ addq(Address(r11, r12, (Address::ScaleFactor)1, +0x27b0e9eb), 1); // add qword ptr [r11+r12*2+0x27b0e9eb], 1 IID11940 - __ addq(Address(r12, r13, (Address::ScaleFactor)0, -0x26675cd7), 1); // add qword ptr [r12+r13*1-0x26675cd7], 1 IID11941 - __ addq(Address(r13, r14, (Address::ScaleFactor)2, +0x3dd703e4), 1); // add qword ptr [r13+r14*4+0x3dd703e4], 1 IID11942 - __ addq(Address(r14, r15, (Address::ScaleFactor)1, -0xbd06b8c), 1); // add qword ptr [r14+r15*2-0xbd06b8c], 1 IID11943 - __ addq(Address(r15, r16, (Address::ScaleFactor)3, +0x195fe4e4), 1); // add qword ptr [r15+r16*8+0x195fe4e4], 1 IID11944 - __ addq(Address(r16, r17, (Address::ScaleFactor)2, -0x531b0460), 1); // add qword ptr [r16+r17*4-0x531b0460], 1 IID11945 - __ addq(Address(r17, r18, (Address::ScaleFactor)0, -0x6519234e), 1); // add qword ptr [r17+r18*1-0x6519234e], 1 IID11946 - __ addq(Address(r18, -0x464c93d2), 1); // add qword ptr [r18-0x464c93d2], 1 IID11947 - __ addq(Address(r19, r20, (Address::ScaleFactor)3, -0x600c3f26), 1); // add qword ptr [r19+r20*8-0x600c3f26], 1 IID11948 - __ addq(Address(r20, r21, (Address::ScaleFactor)2, -0x160ace77), 1); // add qword ptr [r20+r21*4-0x160ace77], 1 IID11949 - __ addq(Address(r21, +0x70b75127), 1); // add qword ptr [r21+0x70b75127], 1 IID11950 - __ addq(Address(r22, r23, (Address::ScaleFactor)1, -0x2010425e), 1); // add qword ptr [r22+r23*2-0x2010425e], 1 IID11951 - __ addq(Address(r23, r24, (Address::ScaleFactor)1, -0x44098561), 1); // add qword ptr [r23+r24*2-0x44098561], 1 IID11952 - __ addq(Address(r24, r25, (Address::ScaleFactor)3, +0x18657f4b), 1); // add qword ptr [r24+r25*8+0x18657f4b], 1 IID11953 - __ addq(Address(r25, r26, (Address::ScaleFactor)1, -0x726aaa07), 1); // add qword ptr [r25+r26*2-0x726aaa07], 1 IID11954 - __ addq(Address(r26, r27, (Address::ScaleFactor)3, +0x6e1cf238), 1); // add qword ptr [r26+r27*8+0x6e1cf238], 1 IID11955 - __ addq(Address(r27, r28, (Address::ScaleFactor)0, -0xacb5769), 1); // add qword ptr [r27+r28*1-0xacb5769], 1 IID11956 - __ addq(Address(r28, r29, (Address::ScaleFactor)2, -0x3c83f7e5), 1); // add qword ptr [r28+r29*4-0x3c83f7e5], 1 IID11957 - __ addq(Address(r29, r30, (Address::ScaleFactor)3, -0x592ad54c), 1); // add qword ptr [r29+r30*8-0x592ad54c], 1 IID11958 - __ addq(Address(r30, +0x61be9898), 1); // add qword ptr [r30+0x61be9898], 1 IID11959 - __ addq(Address(r31, rcx, (Address::ScaleFactor)3, -0x1ce571af), 1); // add qword ptr [r31+rcx*8-0x1ce571af], 1 IID11960 - __ addq(Address(rcx, -0x464479a4), 16); // add qword ptr [rcx-0x464479a4], 16 IID11961 - __ addq(Address(rdx, rbx, (Address::ScaleFactor)2, +0x794a747e), 16); // add qword ptr [rdx+rbx*4+0x794a747e], 16 IID11962 - __ addq(Address(rbx, -0x6605fb48), 16); // add qword ptr [rbx-0x6605fb48], 16 IID11963 - __ addq(Address(r8, r9, (Address::ScaleFactor)2, +0x209052ce), 16); // add qword ptr [r8+r9*4+0x209052ce], 16 IID11964 - __ addq(Address(r9, r10, (Address::ScaleFactor)2, -0x710c3bd5), 16); // add qword ptr [r9+r10*4-0x710c3bd5], 16 IID11965 - __ addq(Address(r10, r11, (Address::ScaleFactor)1, +0x7b22078c), 16); // add qword ptr [r10+r11*2+0x7b22078c], 16 IID11966 - __ addq(Address(r11, r12, (Address::ScaleFactor)1, -0x5578071), 16); // add qword ptr [r11+r12*2-0x5578071], 16 IID11967 - __ addq(Address(r12, r13, (Address::ScaleFactor)1, -0x315658), 16); // add qword ptr [r12+r13*2-0x315658], 16 IID11968 - __ addq(Address(r13, r14, (Address::ScaleFactor)1, -0x244b394e), 16); // add qword ptr [r13+r14*2-0x244b394e], 16 IID11969 - __ addq(Address(r14, -0x4bd2bddb), 16); // add qword ptr [r14-0x4bd2bddb], 16 IID11970 - __ addq(Address(r15, r16, (Address::ScaleFactor)3, +0x299613d1), 16); // add qword ptr [r15+r16*8+0x299613d1], 16 IID11971 - __ addq(Address(r16, r17, (Address::ScaleFactor)3, -0x6a3027fa), 16); // add qword ptr [r16+r17*8-0x6a3027fa], 16 IID11972 - __ addq(Address(r17, r18, (Address::ScaleFactor)1, -0x192553ea), 16); // add qword ptr [r17+r18*2-0x192553ea], 16 IID11973 - __ addq(Address(r18, r19, (Address::ScaleFactor)2, -0x6a48b13c), 16); // add qword ptr [r18+r19*4-0x6a48b13c], 16 IID11974 - __ addq(Address(r19, r20, (Address::ScaleFactor)0, +0x8b8e313), 16); // add qword ptr [r19+r20*1+0x8b8e313], 16 IID11975 - __ addq(Address(r20, r21, (Address::ScaleFactor)0, +0x2028f4b8), 16); // add qword ptr [r20+r21*1+0x2028f4b8], 16 IID11976 - __ addq(Address(r21, r22, (Address::ScaleFactor)0, -0x43f78f03), 16); // add qword ptr [r21+r22*1-0x43f78f03], 16 IID11977 - __ addq(Address(r22, r23, (Address::ScaleFactor)2, -0x7b34ee5c), 16); // add qword ptr [r22+r23*4-0x7b34ee5c], 16 IID11978 - __ addq(Address(r23, r24, (Address::ScaleFactor)1, +0x264b7fc4), 16); // add qword ptr [r23+r24*2+0x264b7fc4], 16 IID11979 - __ addq(Address(r24, r25, (Address::ScaleFactor)3, -0x6cecfc10), 16); // add qword ptr [r24+r25*8-0x6cecfc10], 16 IID11980 - __ addq(Address(r25, r26, (Address::ScaleFactor)3, +0x29b7066e), 16); // add qword ptr [r25+r26*8+0x29b7066e], 16 IID11981 - __ addq(Address(r26, r27, (Address::ScaleFactor)1, +0x3e005e69), 16); // add qword ptr [r26+r27*2+0x3e005e69], 16 IID11982 - __ addq(Address(r27, r28, (Address::ScaleFactor)2, +0x5d85eaf6), 16); // add qword ptr [r27+r28*4+0x5d85eaf6], 16 IID11983 - __ addq(Address(r28, r29, (Address::ScaleFactor)1, +0x33b7f318), 16); // add qword ptr [r28+r29*2+0x33b7f318], 16 IID11984 - __ addq(Address(r29, -0x161dbbce), 16); // add qword ptr [r29-0x161dbbce], 16 IID11985 - __ addq(Address(r30, r31, (Address::ScaleFactor)2, +0x6383e87a), 16); // add qword ptr [r30+r31*4+0x6383e87a], 16 IID11986 - __ addq(Address(r31, rcx, (Address::ScaleFactor)0, -0x6cf977c0), 16); // add qword ptr [r31+rcx*1-0x6cf977c0], 16 IID11987 - __ addq(Address(rcx, rdx, (Address::ScaleFactor)1, +0x799716da), 256); // add qword ptr [rcx+rdx*2+0x799716da], 256 IID11988 - __ addq(Address(rdx, rbx, (Address::ScaleFactor)2, +0x341c08d8), 256); // add qword ptr [rdx+rbx*4+0x341c08d8], 256 IID11989 - __ addq(Address(rbx, r8, (Address::ScaleFactor)1, -0x28cc799), 256); // add qword ptr [rbx+r8*2-0x28cc799], 256 IID11990 - __ addq(Address(r8, r9, (Address::ScaleFactor)2, -0x773b2b77), 256); // add qword ptr [r8+r9*4-0x773b2b77], 256 IID11991 - __ addq(Address(r9, r10, (Address::ScaleFactor)1, +0x52448c62), 256); // add qword ptr [r9+r10*2+0x52448c62], 256 IID11992 - __ addq(Address(r10, r11, (Address::ScaleFactor)2, +0x2c284687), 256); // add qword ptr [r10+r11*4+0x2c284687], 256 IID11993 - __ addq(Address(r11, r12, (Address::ScaleFactor)2, +0x5d577b80), 256); // add qword ptr [r11+r12*4+0x5d577b80], 256 IID11994 - __ addq(Address(r12, -0x19c871b2), 256); // add qword ptr [r12-0x19c871b2], 256 IID11995 - __ addq(Address(r13, -0x79a0a5b2), 256); // add qword ptr [r13-0x79a0a5b2], 256 IID11996 - __ addq(Address(r14, r15, (Address::ScaleFactor)0, -0x4853f12d), 256); // add qword ptr [r14+r15*1-0x4853f12d], 256 IID11997 - __ addq(Address(r15, r16, (Address::ScaleFactor)3, +0x3dfa6995), 256); // add qword ptr [r15+r16*8+0x3dfa6995], 256 IID11998 - __ addq(Address(r16, r17, (Address::ScaleFactor)3, -0x1d2f3a41), 256); // add qword ptr [r16+r17*8-0x1d2f3a41], 256 IID11999 - __ addq(Address(r17, r18, (Address::ScaleFactor)1, +0x72bff29), 256); // add qword ptr [r17+r18*2+0x72bff29], 256 IID12000 - __ addq(Address(r18, r19, (Address::ScaleFactor)3, -0x37e401dc), 256); // add qword ptr [r18+r19*8-0x37e401dc], 256 IID12001 - __ addq(Address(r19, r20, (Address::ScaleFactor)1, -0x479de958), 256); // add qword ptr [r19+r20*2-0x479de958], 256 IID12002 - __ addq(Address(r20, +0x73381d14), 256); // add qword ptr [r20+0x73381d14], 256 IID12003 - __ addq(Address(r21, r22, (Address::ScaleFactor)3, +0x769aa364), 256); // add qword ptr [r21+r22*8+0x769aa364], 256 IID12004 - __ addq(Address(r22, r23, (Address::ScaleFactor)0, -0x44e95b4a), 256); // add qword ptr [r22+r23*1-0x44e95b4a], 256 IID12005 - __ addq(Address(r23, r24, (Address::ScaleFactor)1, -0x1245ac0), 256); // add qword ptr [r23+r24*2-0x1245ac0], 256 IID12006 - __ addq(Address(r24, r25, (Address::ScaleFactor)2, -0x62565c03), 256); // add qword ptr [r24+r25*4-0x62565c03], 256 IID12007 - __ addq(Address(r25, r26, (Address::ScaleFactor)0, -0x17923ae8), 256); // add qword ptr [r25+r26*1-0x17923ae8], 256 IID12008 - __ addq(Address(r26, r27, (Address::ScaleFactor)0, -0x589e6cc), 256); // add qword ptr [r26+r27*1-0x589e6cc], 256 IID12009 - __ addq(Address(r27, r28, (Address::ScaleFactor)0, -0x6bf8b4d4), 256); // add qword ptr [r27+r28*1-0x6bf8b4d4], 256 IID12010 - __ addq(Address(r28, r29, (Address::ScaleFactor)1, +0x74d8da0a), 256); // add qword ptr [r28+r29*2+0x74d8da0a], 256 IID12011 - __ addq(Address(r29, r30, (Address::ScaleFactor)3, -0x402489ee), 256); // add qword ptr [r29+r30*8-0x402489ee], 256 IID12012 - __ addq(Address(r30, r31, (Address::ScaleFactor)0, +0x267ba8b9), 256); // add qword ptr [r30+r31*1+0x267ba8b9], 256 IID12013 - __ addq(Address(r31, +0x213aaccf), 256); // add qword ptr [r31+0x213aaccf], 256 IID12014 - __ addq(Address(rcx, rdx, (Address::ScaleFactor)1, +0x6789e0c9), 4096); // add qword ptr [rcx+rdx*2+0x6789e0c9], 4096 IID12015 - __ addq(Address(rdx, rbx, (Address::ScaleFactor)1, +0x395c650d), 4096); // add qword ptr [rdx+rbx*2+0x395c650d], 4096 IID12016 - __ addq(Address(rbx, +0x44b86052), 4096); // add qword ptr [rbx+0x44b86052], 4096 IID12017 - __ addq(Address(r8, r9, (Address::ScaleFactor)2, -0x28bc9ef2), 4096); // add qword ptr [r8+r9*4-0x28bc9ef2], 4096 IID12018 - __ addq(Address(r9, +0x691a65ae), 4096); // add qword ptr [r9+0x691a65ae], 4096 IID12019 - __ addq(Address(r10, r11, (Address::ScaleFactor)3, -0x3c01809e), 4096); // add qword ptr [r10+r11*8-0x3c01809e], 4096 IID12020 - __ addq(Address(r11, +0xfd2998a), 4096); // add qword ptr [r11+0xfd2998a], 4096 IID12021 - __ addq(Address(r12, r13, (Address::ScaleFactor)3, -0x3076b5fc), 4096); // add qword ptr [r12+r13*8-0x3076b5fc], 4096 IID12022 - __ addq(Address(r13, r14, (Address::ScaleFactor)0, -0x8fb3f54), 4096); // add qword ptr [r13+r14*1-0x8fb3f54], 4096 IID12023 - __ addq(Address(r14, -0x10037b4b), 4096); // add qword ptr [r14-0x10037b4b], 4096 IID12024 - __ addq(Address(r15, +0x1ba1fa0e), 4096); // add qword ptr [r15+0x1ba1fa0e], 4096 IID12025 - __ addq(Address(r16, r17, (Address::ScaleFactor)1, +0x6831986a), 4096); // add qword ptr [r16+r17*2+0x6831986a], 4096 IID12026 - __ addq(Address(r17, r18, (Address::ScaleFactor)2, -0x5628f2ed), 4096); // add qword ptr [r17+r18*4-0x5628f2ed], 4096 IID12027 - __ addq(Address(r18, +0x1c13c175), 4096); // add qword ptr [r18+0x1c13c175], 4096 IID12028 - __ addq(Address(r19, r20, (Address::ScaleFactor)3, -0x735da744), 4096); // add qword ptr [r19+r20*8-0x735da744], 4096 IID12029 - __ addq(Address(r20, -0x1f2d1733), 4096); // add qword ptr [r20-0x1f2d1733], 4096 IID12030 - __ addq(Address(r21, r22, (Address::ScaleFactor)2, +0x613f18ef), 4096); // add qword ptr [r21+r22*4+0x613f18ef], 4096 IID12031 - __ addq(Address(r22, r23, (Address::ScaleFactor)2, +0x654bf460), 4096); // add qword ptr [r22+r23*4+0x654bf460], 4096 IID12032 - __ addq(Address(r23, r24, (Address::ScaleFactor)0, -0x452229f9), 4096); // add qword ptr [r23+r24*1-0x452229f9], 4096 IID12033 - __ addq(Address(r24, r25, (Address::ScaleFactor)3, -0x43903857), 4096); // add qword ptr [r24+r25*8-0x43903857], 4096 IID12034 - __ addq(Address(r25, r26, (Address::ScaleFactor)1, -0x55a2c54d), 4096); // add qword ptr [r25+r26*2-0x55a2c54d], 4096 IID12035 - __ addq(Address(r26, r27, (Address::ScaleFactor)3, -0x3ec0c880), 4096); // add qword ptr [r26+r27*8-0x3ec0c880], 4096 IID12036 - __ addq(Address(r27, r28, (Address::ScaleFactor)0, -0x39aa836a), 4096); // add qword ptr [r27+r28*1-0x39aa836a], 4096 IID12037 - __ addq(Address(r28, r29, (Address::ScaleFactor)0, +0x28149079), 4096); // add qword ptr [r28+r29*1+0x28149079], 4096 IID12038 - __ addq(Address(r29, r30, (Address::ScaleFactor)3, +0x36b27296), 4096); // add qword ptr [r29+r30*8+0x36b27296], 4096 IID12039 - __ addq(Address(r30, -0x11a67477), 4096); // add qword ptr [r30-0x11a67477], 4096 IID12040 - __ addq(Address(r31, rcx, (Address::ScaleFactor)0, -0x401ce91e), 4096); // add qword ptr [r31+rcx*1-0x401ce91e], 4096 IID12041 - __ addq(Address(rcx, rdx, (Address::ScaleFactor)1, +0x614014b9), 65536); // add qword ptr [rcx+rdx*2+0x614014b9], 65536 IID12042 - __ addq(Address(rdx, rbx, (Address::ScaleFactor)0, +0x22a17743), 65536); // add qword ptr [rdx+rbx*1+0x22a17743], 65536 IID12043 - __ addq(Address(rbx, r8, (Address::ScaleFactor)1, -0x5f304d34), 65536); // add qword ptr [rbx+r8*2-0x5f304d34], 65536 IID12044 - __ addq(Address(r8, -0x5b050865), 65536); // add qword ptr [r8-0x5b050865], 65536 IID12045 - __ addq(Address(r9, r10, (Address::ScaleFactor)3, -0x4ea3e56c), 65536); // add qword ptr [r9+r10*8-0x4ea3e56c], 65536 IID12046 - __ addq(Address(r10, +0x2e9959b9), 65536); // add qword ptr [r10+0x2e9959b9], 65536 IID12047 - __ addq(Address(r11, r12, (Address::ScaleFactor)0, +0xf19532b), 65536); // add qword ptr [r11+r12*1+0xf19532b], 65536 IID12048 - __ addq(Address(r12, +0x7a4dc4d2), 65536); // add qword ptr [r12+0x7a4dc4d2], 65536 IID12049 - __ addq(Address(r13, r14, (Address::ScaleFactor)2, +0x7f81e065), 65536); // add qword ptr [r13+r14*4+0x7f81e065], 65536 IID12050 - __ addq(Address(r14, r15, (Address::ScaleFactor)1, -0x4d587d91), 65536); // add qword ptr [r14+r15*2-0x4d587d91], 65536 IID12051 - __ addq(Address(r15, r16, (Address::ScaleFactor)3, +0x6c7be73d), 65536); // add qword ptr [r15+r16*8+0x6c7be73d], 65536 IID12052 - __ addq(Address(r16, r17, (Address::ScaleFactor)1, +0x15b3303c), 65536); // add qword ptr [r16+r17*2+0x15b3303c], 65536 IID12053 - __ addq(Address(r17, r18, (Address::ScaleFactor)0, -0x7a2c3449), 65536); // add qword ptr [r17+r18*1-0x7a2c3449], 65536 IID12054 - __ addq(Address(r18, +0x2d357c4f), 65536); // add qword ptr [r18+0x2d357c4f], 65536 IID12055 - __ addq(Address(r19, r20, (Address::ScaleFactor)2, +0x66b2131f), 65536); // add qword ptr [r19+r20*4+0x66b2131f], 65536 IID12056 - __ addq(Address(r20, r21, (Address::ScaleFactor)3, +0x49088cdf), 65536); // add qword ptr [r20+r21*8+0x49088cdf], 65536 IID12057 - __ addq(Address(r21, r22, (Address::ScaleFactor)1, +0x66641e2b), 65536); // add qword ptr [r21+r22*2+0x66641e2b], 65536 IID12058 - __ addq(Address(r22, r23, (Address::ScaleFactor)0, +0x4dbb7d97), 65536); // add qword ptr [r22+r23*1+0x4dbb7d97], 65536 IID12059 - __ addq(Address(r23, r24, (Address::ScaleFactor)3, -0x24cdacf3), 65536); // add qword ptr [r23+r24*8-0x24cdacf3], 65536 IID12060 - __ addq(Address(r24, r25, (Address::ScaleFactor)3, +0x507cf51e), 65536); // add qword ptr [r24+r25*8+0x507cf51e], 65536 IID12061 - __ addq(Address(r25, -0x19abc381), 65536); // add qword ptr [r25-0x19abc381], 65536 IID12062 - __ addq(Address(r26, r27, (Address::ScaleFactor)0, -0x61413205), 65536); // add qword ptr [r26+r27*1-0x61413205], 65536 IID12063 - __ addq(Address(r27, r28, (Address::ScaleFactor)2, +0x606c08f8), 65536); // add qword ptr [r27+r28*4+0x606c08f8], 65536 IID12064 - __ addq(Address(r28, r29, (Address::ScaleFactor)0, -0x4fa81fb9), 65536); // add qword ptr [r28+r29*1-0x4fa81fb9], 65536 IID12065 - __ addq(Address(r29, -0x281baa4d), 65536); // add qword ptr [r29-0x281baa4d], 65536 IID12066 - __ addq(Address(r30, r31, (Address::ScaleFactor)1, -0x7bdc75ea), 65536); // add qword ptr [r30+r31*2-0x7bdc75ea], 65536 IID12067 - __ addq(Address(r31, rcx, (Address::ScaleFactor)3, +0x368b2d23), 65536); // add qword ptr [r31+rcx*8+0x368b2d23], 65536 IID12068 - __ addq(Address(rcx, rdx, (Address::ScaleFactor)0, +0x356eb0d6), 1048576); // add qword ptr [rcx+rdx*1+0x356eb0d6], 1048576 IID12069 - __ addq(Address(rdx, -0x7fe634f0), 1048576); // add qword ptr [rdx-0x7fe634f0], 1048576 IID12070 - __ addq(Address(rbx, r8, (Address::ScaleFactor)0, -0x56ad27bc), 1048576); // add qword ptr [rbx+r8*1-0x56ad27bc], 1048576 IID12071 - __ addq(Address(r8, r9, (Address::ScaleFactor)0, -0x1cc4f799), 1048576); // add qword ptr [r8+r9*1-0x1cc4f799], 1048576 IID12072 - __ addq(Address(r9, r10, (Address::ScaleFactor)0, -0x2aebb2ae), 1048576); // add qword ptr [r9+r10*1-0x2aebb2ae], 1048576 IID12073 - __ addq(Address(r10, r11, (Address::ScaleFactor)1, +0x6951202e), 1048576); // add qword ptr [r10+r11*2+0x6951202e], 1048576 IID12074 - __ addq(Address(r11, +0x39961358), 1048576); // add qword ptr [r11+0x39961358], 1048576 IID12075 - __ addq(Address(r12, r13, (Address::ScaleFactor)0, -0x5c5229b5), 1048576); // add qword ptr [r12+r13*1-0x5c5229b5], 1048576 IID12076 - __ addq(Address(r13, -0x485457d9), 1048576); // add qword ptr [r13-0x485457d9], 1048576 IID12077 - __ addq(Address(r14, +0xd659a0e), 1048576); // add qword ptr [r14+0xd659a0e], 1048576 IID12078 - __ addq(Address(r15, r16, (Address::ScaleFactor)1, +0x181b4d85), 1048576); // add qword ptr [r15+r16*2+0x181b4d85], 1048576 IID12079 - __ addq(Address(r16, r17, (Address::ScaleFactor)3, -0x63d42371), 1048576); // add qword ptr [r16+r17*8-0x63d42371], 1048576 IID12080 - __ addq(Address(r17, r18, (Address::ScaleFactor)1, +0x625c297b), 1048576); // add qword ptr [r17+r18*2+0x625c297b], 1048576 IID12081 - __ addq(Address(r18, r19, (Address::ScaleFactor)1, +0x7bb84230), 1048576); // add qword ptr [r18+r19*2+0x7bb84230], 1048576 IID12082 - __ addq(Address(r19, r20, (Address::ScaleFactor)1, +0x78184bb6), 1048576); // add qword ptr [r19+r20*2+0x78184bb6], 1048576 IID12083 - __ addq(Address(r20, +0x6db2dcf9), 1048576); // add qword ptr [r20+0x6db2dcf9], 1048576 IID12084 - __ addq(Address(r21, -0x13689d38), 1048576); // add qword ptr [r21-0x13689d38], 1048576 IID12085 - __ addq(Address(r22, r23, (Address::ScaleFactor)1, +0x33736268), 1048576); // add qword ptr [r22+r23*2+0x33736268], 1048576 IID12086 - __ addq(Address(r23, r24, (Address::ScaleFactor)3, +0x16198f0c), 1048576); // add qword ptr [r23+r24*8+0x16198f0c], 1048576 IID12087 - __ addq(Address(r24, r25, (Address::ScaleFactor)3, +0x65e78a20), 1048576); // add qword ptr [r24+r25*8+0x65e78a20], 1048576 IID12088 - __ addq(Address(r25, r26, (Address::ScaleFactor)2, +0x4e3bf71), 1048576); // add qword ptr [r25+r26*4+0x4e3bf71], 1048576 IID12089 - __ addq(Address(r26, r27, (Address::ScaleFactor)1, -0x4644299c), 1048576); // add qword ptr [r26+r27*2-0x4644299c], 1048576 IID12090 - __ addq(Address(r27, -0x3871a8f0), 1048576); // add qword ptr [r27-0x3871a8f0], 1048576 IID12091 - __ addq(Address(r28, r29, (Address::ScaleFactor)3, -0x258f1d64), 1048576); // add qword ptr [r28+r29*8-0x258f1d64], 1048576 IID12092 - __ addq(Address(r29, r30, (Address::ScaleFactor)3, -0x679c67ad), 1048576); // add qword ptr [r29+r30*8-0x679c67ad], 1048576 IID12093 - __ addq(Address(r30, r31, (Address::ScaleFactor)1, +0x28bdbac2), 1048576); // add qword ptr [r30+r31*2+0x28bdbac2], 1048576 IID12094 - __ addq(Address(r31, rcx, (Address::ScaleFactor)3, +0x256489fb), 1048576); // add qword ptr [r31+rcx*8+0x256489fb], 1048576 IID12095 - __ addq(Address(rcx, rdx, (Address::ScaleFactor)0, -0x24b024ba), 16777216); // add qword ptr [rcx+rdx*1-0x24b024ba], 16777216 IID12096 - __ addq(Address(rdx, rbx, (Address::ScaleFactor)1, -0x42f2673d), 16777216); // add qword ptr [rdx+rbx*2-0x42f2673d], 16777216 IID12097 - __ addq(Address(rbx, r8, (Address::ScaleFactor)1, -0x31ba21a6), 16777216); // add qword ptr [rbx+r8*2-0x31ba21a6], 16777216 IID12098 - __ addq(Address(r8, r9, (Address::ScaleFactor)1, +0x6af8ca5b), 16777216); // add qword ptr [r8+r9*2+0x6af8ca5b], 16777216 IID12099 - __ addq(Address(r9, r10, (Address::ScaleFactor)0, -0x21429398), 16777216); // add qword ptr [r9+r10*1-0x21429398], 16777216 IID12100 - __ addq(Address(r10, +0x65a19f9c), 16777216); // add qword ptr [r10+0x65a19f9c], 16777216 IID12101 - __ addq(Address(r11, r12, (Address::ScaleFactor)2, -0x2f5b15f2), 16777216); // add qword ptr [r11+r12*4-0x2f5b15f2], 16777216 IID12102 - __ addq(Address(r12, r13, (Address::ScaleFactor)1, -0x4d36371e), 16777216); // add qword ptr [r12+r13*2-0x4d36371e], 16777216 IID12103 - __ addq(Address(r13, r14, (Address::ScaleFactor)2, -0x2642736a), 16777216); // add qword ptr [r13+r14*4-0x2642736a], 16777216 IID12104 - __ addq(Address(r14, r15, (Address::ScaleFactor)3, +0xa053664), 16777216); // add qword ptr [r14+r15*8+0xa053664], 16777216 IID12105 - __ addq(Address(r15, +0x7f6c3e), 16777216); // add qword ptr [r15+0x7f6c3e], 16777216 IID12106 - __ addq(Address(r16, +0x741f487b), 16777216); // add qword ptr [r16+0x741f487b], 16777216 IID12107 - __ addq(Address(r17, r18, (Address::ScaleFactor)2, +0x38ebc1e3), 16777216); // add qword ptr [r17+r18*4+0x38ebc1e3], 16777216 IID12108 - __ addq(Address(r18, r19, (Address::ScaleFactor)2, +0x7cf2953c), 16777216); // add qword ptr [r18+r19*4+0x7cf2953c], 16777216 IID12109 - __ addq(Address(r19, r20, (Address::ScaleFactor)3, +0x3da94320), 16777216); // add qword ptr [r19+r20*8+0x3da94320], 16777216 IID12110 - __ addq(Address(r20, -0x20fe80a4), 16777216); // add qword ptr [r20-0x20fe80a4], 16777216 IID12111 - __ addq(Address(r21, r22, (Address::ScaleFactor)3, -0x64ca5595), 16777216); // add qword ptr [r21+r22*8-0x64ca5595], 16777216 IID12112 - __ addq(Address(r22, r23, (Address::ScaleFactor)2, +0x7a80bb91), 16777216); // add qword ptr [r22+r23*4+0x7a80bb91], 16777216 IID12113 - __ addq(Address(r23, r24, (Address::ScaleFactor)1, +0xd77f43f), 16777216); // add qword ptr [r23+r24*2+0xd77f43f], 16777216 IID12114 - __ addq(Address(r24, r25, (Address::ScaleFactor)3, +0x79c6a5f1), 16777216); // add qword ptr [r24+r25*8+0x79c6a5f1], 16777216 IID12115 - __ addq(Address(r25, r26, (Address::ScaleFactor)1, -0x5e72682b), 16777216); // add qword ptr [r25+r26*2-0x5e72682b], 16777216 IID12116 - __ addq(Address(r26, r27, (Address::ScaleFactor)0, +0x32d81d3d), 16777216); // add qword ptr [r26+r27*1+0x32d81d3d], 16777216 IID12117 - __ addq(Address(r27, -0x11ca0618), 16777216); // add qword ptr [r27-0x11ca0618], 16777216 IID12118 - __ addq(Address(r28, r29, (Address::ScaleFactor)0, -0x4be95a5a), 16777216); // add qword ptr [r28+r29*1-0x4be95a5a], 16777216 IID12119 - __ addq(Address(r29, r30, (Address::ScaleFactor)1, +0x105feb22), 16777216); // add qword ptr [r29+r30*2+0x105feb22], 16777216 IID12120 - __ addq(Address(r30, -0x4b8912f1), 16777216); // add qword ptr [r30-0x4b8912f1], 16777216 IID12121 - __ addq(Address(r31, rcx, (Address::ScaleFactor)3, -0x71add634), 16777216); // add qword ptr [r31+rcx*8-0x71add634], 16777216 IID12122 - __ addq(Address(rcx, rdx, (Address::ScaleFactor)1, -0x76747519), 268435456); // add qword ptr [rcx+rdx*2-0x76747519], 268435456 IID12123 - __ addq(Address(rdx, rbx, (Address::ScaleFactor)0, +0x346febde), 268435456); // add qword ptr [rdx+rbx*1+0x346febde], 268435456 IID12124 - __ addq(Address(rbx, -0x2f8e4b61), 268435456); // add qword ptr [rbx-0x2f8e4b61], 268435456 IID12125 - __ addq(Address(r8, r9, (Address::ScaleFactor)3, +0x6d61d68c), 268435456); // add qword ptr [r8+r9*8+0x6d61d68c], 268435456 IID12126 - __ addq(Address(r9, r10, (Address::ScaleFactor)2, +0x18ae9fed), 268435456); // add qword ptr [r9+r10*4+0x18ae9fed], 268435456 IID12127 - __ addq(Address(r10, r11, (Address::ScaleFactor)3, +0x10bbcf88), 268435456); // add qword ptr [r10+r11*8+0x10bbcf88], 268435456 IID12128 - __ addq(Address(r11, r12, (Address::ScaleFactor)3, -0x398b3753), 268435456); // add qword ptr [r11+r12*8-0x398b3753], 268435456 IID12129 - __ addq(Address(r12, r13, (Address::ScaleFactor)2, +0x2a94cd77), 268435456); // add qword ptr [r12+r13*4+0x2a94cd77], 268435456 IID12130 - __ addq(Address(r13, -0xd4e3f4e), 268435456); // add qword ptr [r13-0xd4e3f4e], 268435456 IID12131 - __ addq(Address(r14, r15, (Address::ScaleFactor)2, +0x88cf40c), 268435456); // add qword ptr [r14+r15*4+0x88cf40c], 268435456 IID12132 - __ addq(Address(r15, -0x66548c48), 268435456); // add qword ptr [r15-0x66548c48], 268435456 IID12133 - __ addq(Address(r16, r17, (Address::ScaleFactor)2, +0x2dc35ea1), 268435456); // add qword ptr [r16+r17*4+0x2dc35ea1], 268435456 IID12134 - __ addq(Address(r17, r18, (Address::ScaleFactor)1, -0x4996528f), 268435456); // add qword ptr [r17+r18*2-0x4996528f], 268435456 IID12135 - __ addq(Address(r18, r19, (Address::ScaleFactor)3, +0x5934ada4), 268435456); // add qword ptr [r18+r19*8+0x5934ada4], 268435456 IID12136 - __ addq(Address(r19, r20, (Address::ScaleFactor)1, +0x7d3d9f0c), 268435456); // add qword ptr [r19+r20*2+0x7d3d9f0c], 268435456 IID12137 - __ addq(Address(r20, r21, (Address::ScaleFactor)2, -0x5f418b8c), 268435456); // add qword ptr [r20+r21*4-0x5f418b8c], 268435456 IID12138 - __ addq(Address(r21, r22, (Address::ScaleFactor)1, -0x10c7b906), 268435456); // add qword ptr [r21+r22*2-0x10c7b906], 268435456 IID12139 - __ addq(Address(r22, r23, (Address::ScaleFactor)3, -0x403ab415), 268435456); // add qword ptr [r22+r23*8-0x403ab415], 268435456 IID12140 - __ addq(Address(r23, r24, (Address::ScaleFactor)2, +0x42a2d19d), 268435456); // add qword ptr [r23+r24*4+0x42a2d19d], 268435456 IID12141 - __ addq(Address(r24, r25, (Address::ScaleFactor)1, -0xbdf0743), 268435456); // add qword ptr [r24+r25*2-0xbdf0743], 268435456 IID12142 - __ addq(Address(r25, r26, (Address::ScaleFactor)1, +0x7a9375a9), 268435456); // add qword ptr [r25+r26*2+0x7a9375a9], 268435456 IID12143 - __ addq(Address(r26, +0x619234a4), 268435456); // add qword ptr [r26+0x619234a4], 268435456 IID12144 - __ addq(Address(r27, r28, (Address::ScaleFactor)1, +0x4eb3432f), 268435456); // add qword ptr [r27+r28*2+0x4eb3432f], 268435456 IID12145 - __ addq(Address(r28, +0x3daa2501), 268435456); // add qword ptr [r28+0x3daa2501], 268435456 IID12146 - __ addq(Address(r29, r30, (Address::ScaleFactor)1, +0x3436131f), 268435456); // add qword ptr [r29+r30*2+0x3436131f], 268435456 IID12147 - __ addq(Address(r30, r31, (Address::ScaleFactor)1, +0x266d13aa), 268435456); // add qword ptr [r30+r31*2+0x266d13aa], 268435456 IID12148 - __ addq(Address(r31, rcx, (Address::ScaleFactor)3, -0x5e157a67), 268435456); // add qword ptr [r31+rcx*8-0x5e157a67], 268435456 IID12149 - __ cmpq(Address(rcx, rdx, (Address::ScaleFactor)1, -0x2c6aa60f), 1); // cmp qword ptr [rcx+rdx*2-0x2c6aa60f], 1 IID12150 - __ cmpq(Address(rdx, rbx, (Address::ScaleFactor)2, +0x267bc9d8), 1); // cmp qword ptr [rdx+rbx*4+0x267bc9d8], 1 IID12151 - __ cmpq(Address(rbx, -0x3be915c), 1); // cmp qword ptr [rbx-0x3be915c], 1 IID12152 - __ cmpq(Address(r8, r9, (Address::ScaleFactor)3, -0x4d955509), 1); // cmp qword ptr [r8+r9*8-0x4d955509], 1 IID12153 - __ cmpq(Address(r9, +0x48caa406), 1); // cmp qword ptr [r9+0x48caa406], 1 IID12154 - __ cmpq(Address(r10, r11, (Address::ScaleFactor)0, +0x7bd24513), 1); // cmp qword ptr [r10+r11*1+0x7bd24513], 1 IID12155 - __ cmpq(Address(r11, r12, (Address::ScaleFactor)0, -0x92666c7), 1); // cmp qword ptr [r11+r12*1-0x92666c7], 1 IID12156 - __ cmpq(Address(r12, r13, (Address::ScaleFactor)3, +0x3b465339), 1); // cmp qword ptr [r12+r13*8+0x3b465339], 1 IID12157 - __ cmpq(Address(r13, r14, (Address::ScaleFactor)0, +0x27fbf12c), 1); // cmp qword ptr [r13+r14*1+0x27fbf12c], 1 IID12158 - __ cmpq(Address(r14, r15, (Address::ScaleFactor)0, +0x170f44f6), 1); // cmp qword ptr [r14+r15*1+0x170f44f6], 1 IID12159 - __ cmpq(Address(r15, r16, (Address::ScaleFactor)1, -0x557a63ac), 1); // cmp qword ptr [r15+r16*2-0x557a63ac], 1 IID12160 - __ cmpq(Address(r16, r17, (Address::ScaleFactor)1, +0x7f680f07), 1); // cmp qword ptr [r16+r17*2+0x7f680f07], 1 IID12161 - __ cmpq(Address(r17, r18, (Address::ScaleFactor)2, -0x25c844cb), 1); // cmp qword ptr [r17+r18*4-0x25c844cb], 1 IID12162 - __ cmpq(Address(r18, r19, (Address::ScaleFactor)0, +0x51b0432f), 1); // cmp qword ptr [r18+r19*1+0x51b0432f], 1 IID12163 - __ cmpq(Address(r19, r20, (Address::ScaleFactor)1, +0x1d8ca062), 1); // cmp qword ptr [r19+r20*2+0x1d8ca062], 1 IID12164 - __ cmpq(Address(r20, r21, (Address::ScaleFactor)3, +0x101b5066), 1); // cmp qword ptr [r20+r21*8+0x101b5066], 1 IID12165 - __ cmpq(Address(r21, +0x8f212b9), 1); // cmp qword ptr [r21+0x8f212b9], 1 IID12166 - __ cmpq(Address(r22, -0x5cd6fec4), 1); // cmp qword ptr [r22-0x5cd6fec4], 1 IID12167 - __ cmpq(Address(r23, r24, (Address::ScaleFactor)2, -0x6966fdd9), 1); // cmp qword ptr [r23+r24*4-0x6966fdd9], 1 IID12168 - __ cmpq(Address(r24, r25, (Address::ScaleFactor)3, -0x6041657d), 1); // cmp qword ptr [r24+r25*8-0x6041657d], 1 IID12169 - __ cmpq(Address(r25, r26, (Address::ScaleFactor)3, -0x6f23e95f), 1); // cmp qword ptr [r25+r26*8-0x6f23e95f], 1 IID12170 - __ cmpq(Address(r26, r27, (Address::ScaleFactor)2, +0x2f307bf5), 1); // cmp qword ptr [r26+r27*4+0x2f307bf5], 1 IID12171 - __ cmpq(Address(r27, r28, (Address::ScaleFactor)1, +0x78623b07), 1); // cmp qword ptr [r27+r28*2+0x78623b07], 1 IID12172 - __ cmpq(Address(r28, r29, (Address::ScaleFactor)2, -0xd860f1d), 1); // cmp qword ptr [r28+r29*4-0xd860f1d], 1 IID12173 - __ cmpq(Address(r29, r30, (Address::ScaleFactor)2, +0x72bb16dd), 1); // cmp qword ptr [r29+r30*4+0x72bb16dd], 1 IID12174 - __ cmpq(Address(r30, r31, (Address::ScaleFactor)2, -0x66c90c3a), 1); // cmp qword ptr [r30+r31*4-0x66c90c3a], 1 IID12175 - __ cmpq(Address(r31, +0x3b998b4a), 1); // cmp qword ptr [r31+0x3b998b4a], 1 IID12176 - __ cmpq(Address(rcx, +0x2e6a4f6c), 16); // cmp qword ptr [rcx+0x2e6a4f6c], 16 IID12177 - __ cmpq(Address(rdx, rbx, (Address::ScaleFactor)2, +0x44f773cc), 16); // cmp qword ptr [rdx+rbx*4+0x44f773cc], 16 IID12178 - __ cmpq(Address(rbx, r8, (Address::ScaleFactor)2, -0x50f53797), 16); // cmp qword ptr [rbx+r8*4-0x50f53797], 16 IID12179 - __ cmpq(Address(r8, -0x3092f12d), 16); // cmp qword ptr [r8-0x3092f12d], 16 IID12180 - __ cmpq(Address(r9, r10, (Address::ScaleFactor)2, -0x613f871f), 16); // cmp qword ptr [r9+r10*4-0x613f871f], 16 IID12181 - __ cmpq(Address(r10, +0x3a84e443), 16); // cmp qword ptr [r10+0x3a84e443], 16 IID12182 - __ cmpq(Address(r11, r12, (Address::ScaleFactor)2, +0x3b6b248c), 16); // cmp qword ptr [r11+r12*4+0x3b6b248c], 16 IID12183 - __ cmpq(Address(r12, r13, (Address::ScaleFactor)3, -0x485f24d5), 16); // cmp qword ptr [r12+r13*8-0x485f24d5], 16 IID12184 - __ cmpq(Address(r13, +0x60b28770), 16); // cmp qword ptr [r13+0x60b28770], 16 IID12185 - __ cmpq(Address(r14, r15, (Address::ScaleFactor)2, -0x3e327a3b), 16); // cmp qword ptr [r14+r15*4-0x3e327a3b], 16 IID12186 - __ cmpq(Address(r15, r16, (Address::ScaleFactor)3, -0x6e1ad6c8), 16); // cmp qword ptr [r15+r16*8-0x6e1ad6c8], 16 IID12187 - __ cmpq(Address(r16, r17, (Address::ScaleFactor)2, -0x1fdda856), 16); // cmp qword ptr [r16+r17*4-0x1fdda856], 16 IID12188 - __ cmpq(Address(r17, r18, (Address::ScaleFactor)1, -0x4ec6503), 16); // cmp qword ptr [r17+r18*2-0x4ec6503], 16 IID12189 - __ cmpq(Address(r18, r19, (Address::ScaleFactor)2, -0xdff53ff), 16); // cmp qword ptr [r18+r19*4-0xdff53ff], 16 IID12190 - __ cmpq(Address(r19, r20, (Address::ScaleFactor)1, -0x5e62298d), 16); // cmp qword ptr [r19+r20*2-0x5e62298d], 16 IID12191 - __ cmpq(Address(r20, +0x786bafe9), 16); // cmp qword ptr [r20+0x786bafe9], 16 IID12192 - __ cmpq(Address(r21, r22, (Address::ScaleFactor)0, +0x6cdffc29), 16); // cmp qword ptr [r21+r22*1+0x6cdffc29], 16 IID12193 - __ cmpq(Address(r22, r23, (Address::ScaleFactor)1, +0x1ef55b8e), 16); // cmp qword ptr [r22+r23*2+0x1ef55b8e], 16 IID12194 - __ cmpq(Address(r23, r24, (Address::ScaleFactor)0, +0x77e07879), 16); // cmp qword ptr [r23+r24*1+0x77e07879], 16 IID12195 - __ cmpq(Address(r24, r25, (Address::ScaleFactor)1, +0x60b1c80c), 16); // cmp qword ptr [r24+r25*2+0x60b1c80c], 16 IID12196 - __ cmpq(Address(r25, r26, (Address::ScaleFactor)1, +0x44c6d8fa), 16); // cmp qword ptr [r25+r26*2+0x44c6d8fa], 16 IID12197 - __ cmpq(Address(r26, r27, (Address::ScaleFactor)1, +0x46b698e1), 16); // cmp qword ptr [r26+r27*2+0x46b698e1], 16 IID12198 - __ cmpq(Address(r27, r28, (Address::ScaleFactor)2, -0x590069d5), 16); // cmp qword ptr [r27+r28*4-0x590069d5], 16 IID12199 - __ cmpq(Address(r28, r29, (Address::ScaleFactor)0, -0xd4fc97d), 16); // cmp qword ptr [r28+r29*1-0xd4fc97d], 16 IID12200 - __ cmpq(Address(r29, r30, (Address::ScaleFactor)1, +0x6787db44), 16); // cmp qword ptr [r29+r30*2+0x6787db44], 16 IID12201 - __ cmpq(Address(r30, r31, (Address::ScaleFactor)2, -0x51fdb212), 16); // cmp qword ptr [r30+r31*4-0x51fdb212], 16 IID12202 - __ cmpq(Address(r31, +0x178d76ac), 16); // cmp qword ptr [r31+0x178d76ac], 16 IID12203 - __ cmpq(Address(rcx, rdx, (Address::ScaleFactor)2, -0x152c3deb), 256); // cmp qword ptr [rcx+rdx*4-0x152c3deb], 256 IID12204 - __ cmpq(Address(rdx, +0x64fa70f6), 256); // cmp qword ptr [rdx+0x64fa70f6], 256 IID12205 - __ cmpq(Address(rbx, -0x3400ac02), 256); // cmp qword ptr [rbx-0x3400ac02], 256 IID12206 - __ cmpq(Address(r8, -0x38507104), 256); // cmp qword ptr [r8-0x38507104], 256 IID12207 - __ cmpq(Address(r9, r10, (Address::ScaleFactor)1, -0x3f21fa76), 256); // cmp qword ptr [r9+r10*2-0x3f21fa76], 256 IID12208 - __ cmpq(Address(r10, r11, (Address::ScaleFactor)0, -0x16552c6e), 256); // cmp qword ptr [r10+r11*1-0x16552c6e], 256 IID12209 - __ cmpq(Address(r11, r12, (Address::ScaleFactor)0, +0x58d80943), 256); // cmp qword ptr [r11+r12*1+0x58d80943], 256 IID12210 - __ cmpq(Address(r12, -0x5766c7da), 256); // cmp qword ptr [r12-0x5766c7da], 256 IID12211 - __ cmpq(Address(r13, r14, (Address::ScaleFactor)0, +0x7681cbfe), 256); // cmp qword ptr [r13+r14*1+0x7681cbfe], 256 IID12212 - __ cmpq(Address(r14, +0x1e36136f), 256); // cmp qword ptr [r14+0x1e36136f], 256 IID12213 - __ cmpq(Address(r15, -0x370a63ff), 256); // cmp qword ptr [r15-0x370a63ff], 256 IID12214 - __ cmpq(Address(r16, -0x68a1b70b), 256); // cmp qword ptr [r16-0x68a1b70b], 256 IID12215 - __ cmpq(Address(r17, r18, (Address::ScaleFactor)3, +0x68d629e5), 256); // cmp qword ptr [r17+r18*8+0x68d629e5], 256 IID12216 - __ cmpq(Address(r18, r19, (Address::ScaleFactor)2, +0x482cc481), 256); // cmp qword ptr [r18+r19*4+0x482cc481], 256 IID12217 - __ cmpq(Address(r19, r20, (Address::ScaleFactor)3, -0x298d9511), 256); // cmp qword ptr [r19+r20*8-0x298d9511], 256 IID12218 - __ cmpq(Address(r20, r21, (Address::ScaleFactor)3, -0xff013d5), 256); // cmp qword ptr [r20+r21*8-0xff013d5], 256 IID12219 - __ cmpq(Address(r21, r22, (Address::ScaleFactor)3, +0xf6e0c3e), 256); // cmp qword ptr [r21+r22*8+0xf6e0c3e], 256 IID12220 - __ cmpq(Address(r22, -0x5442eb51), 256); // cmp qword ptr [r22-0x5442eb51], 256 IID12221 - __ cmpq(Address(r23, r24, (Address::ScaleFactor)2, +0x797221f4), 256); // cmp qword ptr [r23+r24*4+0x797221f4], 256 IID12222 - __ cmpq(Address(r24, r25, (Address::ScaleFactor)3, -0x41941b9d), 256); // cmp qword ptr [r24+r25*8-0x41941b9d], 256 IID12223 - __ cmpq(Address(r25, r26, (Address::ScaleFactor)0, -0x655d484f), 256); // cmp qword ptr [r25+r26*1-0x655d484f], 256 IID12224 - __ cmpq(Address(r26, r27, (Address::ScaleFactor)2, +0x36d42875), 256); // cmp qword ptr [r26+r27*4+0x36d42875], 256 IID12225 - __ cmpq(Address(r27, r28, (Address::ScaleFactor)1, -0x13194307), 256); // cmp qword ptr [r27+r28*2-0x13194307], 256 IID12226 - __ cmpq(Address(r28, +0x349284d6), 256); // cmp qword ptr [r28+0x349284d6], 256 IID12227 - __ cmpq(Address(r29, r30, (Address::ScaleFactor)1, -0x7bbff408), 256); // cmp qword ptr [r29+r30*2-0x7bbff408], 256 IID12228 - __ cmpq(Address(r30, r31, (Address::ScaleFactor)3, +0x57bcb1e1), 256); // cmp qword ptr [r30+r31*8+0x57bcb1e1], 256 IID12229 - __ cmpq(Address(r31, rcx, (Address::ScaleFactor)2, +0x4488afbb), 256); // cmp qword ptr [r31+rcx*4+0x4488afbb], 256 IID12230 - __ cmpq(Address(rcx, rdx, (Address::ScaleFactor)1, +0xae19290), 4096); // cmp qword ptr [rcx+rdx*2+0xae19290], 4096 IID12231 - __ cmpq(Address(rdx, -0x69bc8cdd), 4096); // cmp qword ptr [rdx-0x69bc8cdd], 4096 IID12232 - __ cmpq(Address(rbx, r8, (Address::ScaleFactor)2, +0x1ddb07d4), 4096); // cmp qword ptr [rbx+r8*4+0x1ddb07d4], 4096 IID12233 - __ cmpq(Address(r8, r9, (Address::ScaleFactor)1, +0x100911a9), 4096); // cmp qword ptr [r8+r9*2+0x100911a9], 4096 IID12234 - __ cmpq(Address(r9, r10, (Address::ScaleFactor)1, -0x2b91466a), 4096); // cmp qword ptr [r9+r10*2-0x2b91466a], 4096 IID12235 - __ cmpq(Address(r10, r11, (Address::ScaleFactor)1, -0x5e3141e7), 4096); // cmp qword ptr [r10+r11*2-0x5e3141e7], 4096 IID12236 - __ cmpq(Address(r11, r12, (Address::ScaleFactor)2, -0x711e1f8), 4096); // cmp qword ptr [r11+r12*4-0x711e1f8], 4096 IID12237 - __ cmpq(Address(r12, r13, (Address::ScaleFactor)0, -0x78364d7b), 4096); // cmp qword ptr [r12+r13*1-0x78364d7b], 4096 IID12238 - __ cmpq(Address(r13, r14, (Address::ScaleFactor)3, +0xa6f2821), 4096); // cmp qword ptr [r13+r14*8+0xa6f2821], 4096 IID12239 - __ cmpq(Address(r14, r15, (Address::ScaleFactor)1, +0x3e1fa63b), 4096); // cmp qword ptr [r14+r15*2+0x3e1fa63b], 4096 IID12240 - __ cmpq(Address(r15, r16, (Address::ScaleFactor)0, -0x3332247), 4096); // cmp qword ptr [r15+r16*1-0x3332247], 4096 IID12241 - __ cmpq(Address(r16, r17, (Address::ScaleFactor)3, +0x13c213f0), 4096); // cmp qword ptr [r16+r17*8+0x13c213f0], 4096 IID12242 - __ cmpq(Address(r17, r18, (Address::ScaleFactor)0, -0x2728319a), 4096); // cmp qword ptr [r17+r18*1-0x2728319a], 4096 IID12243 - __ cmpq(Address(r18, r19, (Address::ScaleFactor)0, -0x6d07a084), 4096); // cmp qword ptr [r18+r19*1-0x6d07a084], 4096 IID12244 - __ cmpq(Address(r19, r20, (Address::ScaleFactor)1, +0x5c7c1c92), 4096); // cmp qword ptr [r19+r20*2+0x5c7c1c92], 4096 IID12245 - __ cmpq(Address(r20, r21, (Address::ScaleFactor)1, +0x699536fc), 4096); // cmp qword ptr [r20+r21*2+0x699536fc], 4096 IID12246 - __ cmpq(Address(r21, r22, (Address::ScaleFactor)0, +0x14e1370b), 4096); // cmp qword ptr [r21+r22*1+0x14e1370b], 4096 IID12247 - __ cmpq(Address(r22, r23, (Address::ScaleFactor)0, -0x1caaeeff), 4096); // cmp qword ptr [r22+r23*1-0x1caaeeff], 4096 IID12248 - __ cmpq(Address(r23, +0x4091ad72), 4096); // cmp qword ptr [r23+0x4091ad72], 4096 IID12249 - __ cmpq(Address(r24, r25, (Address::ScaleFactor)1, +0x1e1ad5bb), 4096); // cmp qword ptr [r24+r25*2+0x1e1ad5bb], 4096 IID12250 - __ cmpq(Address(r25, +0x1b5565b2), 4096); // cmp qword ptr [r25+0x1b5565b2], 4096 IID12251 - __ cmpq(Address(r26, r27, (Address::ScaleFactor)0, +0x19297f41), 4096); // cmp qword ptr [r26+r27*1+0x19297f41], 4096 IID12252 - __ cmpq(Address(r27, r28, (Address::ScaleFactor)2, -0x2a4bb202), 4096); // cmp qword ptr [r27+r28*4-0x2a4bb202], 4096 IID12253 - __ cmpq(Address(r28, +0x70711a80), 4096); // cmp qword ptr [r28+0x70711a80], 4096 IID12254 - __ cmpq(Address(r29, r30, (Address::ScaleFactor)2, -0x7515631f), 4096); // cmp qword ptr [r29+r30*4-0x7515631f], 4096 IID12255 - __ cmpq(Address(r30, r31, (Address::ScaleFactor)0, -0x2b38f6f8), 4096); // cmp qword ptr [r30+r31*1-0x2b38f6f8], 4096 IID12256 - __ cmpq(Address(r31, rcx, (Address::ScaleFactor)0, +0x424f6ff4), 4096); // cmp qword ptr [r31+rcx*1+0x424f6ff4], 4096 IID12257 - __ cmpq(Address(rcx, -0x52570ea6), 65536); // cmp qword ptr [rcx-0x52570ea6], 65536 IID12258 - __ cmpq(Address(rdx, rbx, (Address::ScaleFactor)2, +0x10ef7b5a), 65536); // cmp qword ptr [rdx+rbx*4+0x10ef7b5a], 65536 IID12259 - __ cmpq(Address(rbx, r8, (Address::ScaleFactor)2, +0x15d157e9), 65536); // cmp qword ptr [rbx+r8*4+0x15d157e9], 65536 IID12260 - __ cmpq(Address(r8, r9, (Address::ScaleFactor)2, +0x35cce7cd), 65536); // cmp qword ptr [r8+r9*4+0x35cce7cd], 65536 IID12261 - __ cmpq(Address(r9, -0x7f04ed0), 65536); // cmp qword ptr [r9-0x7f04ed0], 65536 IID12262 - __ cmpq(Address(r10, r11, (Address::ScaleFactor)2, -0x652757a0), 65536); // cmp qword ptr [r10+r11*4-0x652757a0], 65536 IID12263 - __ cmpq(Address(r11, r12, (Address::ScaleFactor)3, -0x493d1663), 65536); // cmp qword ptr [r11+r12*8-0x493d1663], 65536 IID12264 - __ cmpq(Address(r12, r13, (Address::ScaleFactor)3, +0x3f22bac), 65536); // cmp qword ptr [r12+r13*8+0x3f22bac], 65536 IID12265 - __ cmpq(Address(r13, r14, (Address::ScaleFactor)2, +0x2e53b57f), 65536); // cmp qword ptr [r13+r14*4+0x2e53b57f], 65536 IID12266 - __ cmpq(Address(r14, r15, (Address::ScaleFactor)2, -0x55bf2746), 65536); // cmp qword ptr [r14+r15*4-0x55bf2746], 65536 IID12267 - __ cmpq(Address(r15, r16, (Address::ScaleFactor)2, -0x57a0bd7e), 65536); // cmp qword ptr [r15+r16*4-0x57a0bd7e], 65536 IID12268 - __ cmpq(Address(r16, r17, (Address::ScaleFactor)1, -0x770ccffc), 65536); // cmp qword ptr [r16+r17*2-0x770ccffc], 65536 IID12269 - __ cmpq(Address(r17, r18, (Address::ScaleFactor)2, +0x3b5d9062), 65536); // cmp qword ptr [r17+r18*4+0x3b5d9062], 65536 IID12270 - __ cmpq(Address(r18, r19, (Address::ScaleFactor)2, -0x253affab), 65536); // cmp qword ptr [r18+r19*4-0x253affab], 65536 IID12271 - __ cmpq(Address(r19, r20, (Address::ScaleFactor)3, +0x67f08e3e), 65536); // cmp qword ptr [r19+r20*8+0x67f08e3e], 65536 IID12272 - __ cmpq(Address(r20, r21, (Address::ScaleFactor)2, -0x2c534c71), 65536); // cmp qword ptr [r20+r21*4-0x2c534c71], 65536 IID12273 - __ cmpq(Address(r21, r22, (Address::ScaleFactor)0, -0x6dbeecd5), 65536); // cmp qword ptr [r21+r22*1-0x6dbeecd5], 65536 IID12274 - __ cmpq(Address(r22, r23, (Address::ScaleFactor)2, -0x7fedcacf), 65536); // cmp qword ptr [r22+r23*4-0x7fedcacf], 65536 IID12275 - __ cmpq(Address(r23, r24, (Address::ScaleFactor)0, -0x24caf164), 65536); // cmp qword ptr [r23+r24*1-0x24caf164], 65536 IID12276 - __ cmpq(Address(r24, r25, (Address::ScaleFactor)3, -0x7d03b8e8), 65536); // cmp qword ptr [r24+r25*8-0x7d03b8e8], 65536 IID12277 - __ cmpq(Address(r25, r26, (Address::ScaleFactor)0, -0x54e861fc), 65536); // cmp qword ptr [r25+r26*1-0x54e861fc], 65536 IID12278 - __ cmpq(Address(r26, +0x6b7b757b), 65536); // cmp qword ptr [r26+0x6b7b757b], 65536 IID12279 - __ cmpq(Address(r27, r28, (Address::ScaleFactor)2, +0x5bd931aa), 65536); // cmp qword ptr [r27+r28*4+0x5bd931aa], 65536 IID12280 - __ cmpq(Address(r28, r29, (Address::ScaleFactor)1, -0x39fe0022), 65536); // cmp qword ptr [r28+r29*2-0x39fe0022], 65536 IID12281 - __ cmpq(Address(r29, r30, (Address::ScaleFactor)0, +0x6cc5f738), 65536); // cmp qword ptr [r29+r30*1+0x6cc5f738], 65536 IID12282 - __ cmpq(Address(r30, r31, (Address::ScaleFactor)2, +0x5a4aba77), 65536); // cmp qword ptr [r30+r31*4+0x5a4aba77], 65536 IID12283 - __ cmpq(Address(r31, rcx, (Address::ScaleFactor)0, -0x64fb16d7), 65536); // cmp qword ptr [r31+rcx*1-0x64fb16d7], 65536 IID12284 - __ cmpq(Address(rcx, rdx, (Address::ScaleFactor)3, -0x642d641a), 1048576); // cmp qword ptr [rcx+rdx*8-0x642d641a], 1048576 IID12285 - __ cmpq(Address(rdx, rbx, (Address::ScaleFactor)0, -0x1f6d760e), 1048576); // cmp qword ptr [rdx+rbx*1-0x1f6d760e], 1048576 IID12286 - __ cmpq(Address(rbx, -0x33ffa1aa), 1048576); // cmp qword ptr [rbx-0x33ffa1aa], 1048576 IID12287 - __ cmpq(Address(r8, r9, (Address::ScaleFactor)3, -0x75a79206), 1048576); // cmp qword ptr [r8+r9*8-0x75a79206], 1048576 IID12288 - __ cmpq(Address(r9, r10, (Address::ScaleFactor)2, -0x6b9ff911), 1048576); // cmp qword ptr [r9+r10*4-0x6b9ff911], 1048576 IID12289 - __ cmpq(Address(r10, r11, (Address::ScaleFactor)2, +0x4676dc92), 1048576); // cmp qword ptr [r10+r11*4+0x4676dc92], 1048576 IID12290 - __ cmpq(Address(r11, -0x65b6e768), 1048576); // cmp qword ptr [r11-0x65b6e768], 1048576 IID12291 - __ cmpq(Address(r12, r13, (Address::ScaleFactor)2, +0x29b3eea3), 1048576); // cmp qword ptr [r12+r13*4+0x29b3eea3], 1048576 IID12292 - __ cmpq(Address(r13, +0x7b4281db), 1048576); // cmp qword ptr [r13+0x7b4281db], 1048576 IID12293 - __ cmpq(Address(r14, -0x1ab3ccbe), 1048576); // cmp qword ptr [r14-0x1ab3ccbe], 1048576 IID12294 - __ cmpq(Address(r15, r16, (Address::ScaleFactor)3, +0x611a6082), 1048576); // cmp qword ptr [r15+r16*8+0x611a6082], 1048576 IID12295 - __ cmpq(Address(r16, r17, (Address::ScaleFactor)2, +0x7396ca81), 1048576); // cmp qword ptr [r16+r17*4+0x7396ca81], 1048576 IID12296 - __ cmpq(Address(r17, r18, (Address::ScaleFactor)3, -0x32978ae), 1048576); // cmp qword ptr [r17+r18*8-0x32978ae], 1048576 IID12297 - __ cmpq(Address(r18, r19, (Address::ScaleFactor)0, -0x1248a94d), 1048576); // cmp qword ptr [r18+r19*1-0x1248a94d], 1048576 IID12298 - __ cmpq(Address(r19, r20, (Address::ScaleFactor)1, +0x3b7c5ae), 1048576); // cmp qword ptr [r19+r20*2+0x3b7c5ae], 1048576 IID12299 - __ cmpq(Address(r20, r21, (Address::ScaleFactor)1, -0x375e03a6), 1048576); // cmp qword ptr [r20+r21*2-0x375e03a6], 1048576 IID12300 - __ cmpq(Address(r21, r22, (Address::ScaleFactor)3, +0x778867e0), 1048576); // cmp qword ptr [r21+r22*8+0x778867e0], 1048576 IID12301 - __ cmpq(Address(r22, r23, (Address::ScaleFactor)3, +0x5f6deabd), 1048576); // cmp qword ptr [r22+r23*8+0x5f6deabd], 1048576 IID12302 - __ cmpq(Address(r23, r24, (Address::ScaleFactor)1, -0x5c44c81e), 1048576); // cmp qword ptr [r23+r24*2-0x5c44c81e], 1048576 IID12303 - __ cmpq(Address(r24, r25, (Address::ScaleFactor)3, -0x61af402b), 1048576); // cmp qword ptr [r24+r25*8-0x61af402b], 1048576 IID12304 - __ cmpq(Address(r25, -0x49480ce4), 1048576); // cmp qword ptr [r25-0x49480ce4], 1048576 IID12305 - __ cmpq(Address(r26, r27, (Address::ScaleFactor)2, +0x64e413c2), 1048576); // cmp qword ptr [r26+r27*4+0x64e413c2], 1048576 IID12306 - __ cmpq(Address(r27, r28, (Address::ScaleFactor)0, -0x6b614891), 1048576); // cmp qword ptr [r27+r28*1-0x6b614891], 1048576 IID12307 - __ cmpq(Address(r28, r29, (Address::ScaleFactor)1, +0x2e3d8b68), 1048576); // cmp qword ptr [r28+r29*2+0x2e3d8b68], 1048576 IID12308 - __ cmpq(Address(r29, r30, (Address::ScaleFactor)2, +0x1b791731), 1048576); // cmp qword ptr [r29+r30*4+0x1b791731], 1048576 IID12309 - __ cmpq(Address(r30, r31, (Address::ScaleFactor)0, -0xcd09132), 1048576); // cmp qword ptr [r30+r31*1-0xcd09132], 1048576 IID12310 - __ cmpq(Address(r31, rcx, (Address::ScaleFactor)2, +0x6290c2d3), 1048576); // cmp qword ptr [r31+rcx*4+0x6290c2d3], 1048576 IID12311 - __ cmpq(Address(rcx, rdx, (Address::ScaleFactor)3, +0x33ad972c), 16777216); // cmp qword ptr [rcx+rdx*8+0x33ad972c], 16777216 IID12312 - __ cmpq(Address(rdx, rbx, (Address::ScaleFactor)0, -0x720cc840), 16777216); // cmp qword ptr [rdx+rbx*1-0x720cc840], 16777216 IID12313 - __ cmpq(Address(rbx, r8, (Address::ScaleFactor)2, +0x47384ef0), 16777216); // cmp qword ptr [rbx+r8*4+0x47384ef0], 16777216 IID12314 - __ cmpq(Address(r8, r9, (Address::ScaleFactor)1, -0x28bd2634), 16777216); // cmp qword ptr [r8+r9*2-0x28bd2634], 16777216 IID12315 - __ cmpq(Address(r9, r10, (Address::ScaleFactor)3, +0x3ca8d1ad), 16777216); // cmp qword ptr [r9+r10*8+0x3ca8d1ad], 16777216 IID12316 - __ cmpq(Address(r10, -0x3c48bd26), 16777216); // cmp qword ptr [r10-0x3c48bd26], 16777216 IID12317 - __ cmpq(Address(r11, r12, (Address::ScaleFactor)1, +0x5c6e3e2a), 16777216); // cmp qword ptr [r11+r12*2+0x5c6e3e2a], 16777216 IID12318 - __ cmpq(Address(r12, r13, (Address::ScaleFactor)1, -0x3a5a00b9), 16777216); // cmp qword ptr [r12+r13*2-0x3a5a00b9], 16777216 IID12319 - __ cmpq(Address(r13, r14, (Address::ScaleFactor)2, -0x6abf3275), 16777216); // cmp qword ptr [r13+r14*4-0x6abf3275], 16777216 IID12320 - __ cmpq(Address(r14, +0x62b0bd6e), 16777216); // cmp qword ptr [r14+0x62b0bd6e], 16777216 IID12321 - __ cmpq(Address(r15, r16, (Address::ScaleFactor)2, +0x4a1fb6c0), 16777216); // cmp qword ptr [r15+r16*4+0x4a1fb6c0], 16777216 IID12322 - __ cmpq(Address(r16, +0x2f166e11), 16777216); // cmp qword ptr [r16+0x2f166e11], 16777216 IID12323 - __ cmpq(Address(r17, r18, (Address::ScaleFactor)0, +0x1a43d25a), 16777216); // cmp qword ptr [r17+r18*1+0x1a43d25a], 16777216 IID12324 - __ cmpq(Address(r18, r19, (Address::ScaleFactor)3, -0x649509d0), 16777216); // cmp qword ptr [r18+r19*8-0x649509d0], 16777216 IID12325 - __ cmpq(Address(r19, r20, (Address::ScaleFactor)1, +0x13ce2d20), 16777216); // cmp qword ptr [r19+r20*2+0x13ce2d20], 16777216 IID12326 - __ cmpq(Address(r20, r21, (Address::ScaleFactor)1, -0x606298e4), 16777216); // cmp qword ptr [r20+r21*2-0x606298e4], 16777216 IID12327 - __ cmpq(Address(r21, r22, (Address::ScaleFactor)3, -0x32c29622), 16777216); // cmp qword ptr [r21+r22*8-0x32c29622], 16777216 IID12328 - __ cmpq(Address(r22, r23, (Address::ScaleFactor)2, +0x6be2e1a6), 16777216); // cmp qword ptr [r22+r23*4+0x6be2e1a6], 16777216 IID12329 - __ cmpq(Address(r23, -0x10e95db9), 16777216); // cmp qword ptr [r23-0x10e95db9], 16777216 IID12330 - __ cmpq(Address(r24, r25, (Address::ScaleFactor)2, -0xf43dcb4), 16777216); // cmp qword ptr [r24+r25*4-0xf43dcb4], 16777216 IID12331 - __ cmpq(Address(r25, r26, (Address::ScaleFactor)3, -0x52d5f89f), 16777216); // cmp qword ptr [r25+r26*8-0x52d5f89f], 16777216 IID12332 - __ cmpq(Address(r26, r27, (Address::ScaleFactor)1, +0x6a6a714f), 16777216); // cmp qword ptr [r26+r27*2+0x6a6a714f], 16777216 IID12333 - __ cmpq(Address(r27, r28, (Address::ScaleFactor)2, +0x7dca8e04), 16777216); // cmp qword ptr [r27+r28*4+0x7dca8e04], 16777216 IID12334 - __ cmpq(Address(r28, r29, (Address::ScaleFactor)2, +0x6cfb17a), 16777216); // cmp qword ptr [r28+r29*4+0x6cfb17a], 16777216 IID12335 - __ cmpq(Address(r29, r30, (Address::ScaleFactor)0, -0x4caf1da5), 16777216); // cmp qword ptr [r29+r30*1-0x4caf1da5], 16777216 IID12336 - __ cmpq(Address(r30, r31, (Address::ScaleFactor)2, +0x7ef9b2ae), 16777216); // cmp qword ptr [r30+r31*4+0x7ef9b2ae], 16777216 IID12337 - __ cmpq(Address(r31, rcx, (Address::ScaleFactor)0, -0x51ad006c), 16777216); // cmp qword ptr [r31+rcx*1-0x51ad006c], 16777216 IID12338 - __ cmpq(Address(rcx, rdx, (Address::ScaleFactor)3, +0x1a621e38), 268435456); // cmp qword ptr [rcx+rdx*8+0x1a621e38], 268435456 IID12339 - __ cmpq(Address(rdx, -0x277e5b51), 268435456); // cmp qword ptr [rdx-0x277e5b51], 268435456 IID12340 - __ cmpq(Address(rbx, r8, (Address::ScaleFactor)0, +0x20a2d430), 268435456); // cmp qword ptr [rbx+r8*1+0x20a2d430], 268435456 IID12341 - __ cmpq(Address(r8, r9, (Address::ScaleFactor)0, +0x3ae4d2f0), 268435456); // cmp qword ptr [r8+r9*1+0x3ae4d2f0], 268435456 IID12342 - __ cmpq(Address(r9, r10, (Address::ScaleFactor)3, -0xbb8fa32), 268435456); // cmp qword ptr [r9+r10*8-0xbb8fa32], 268435456 IID12343 - __ cmpq(Address(r10, r11, (Address::ScaleFactor)1, -0x4466e166), 268435456); // cmp qword ptr [r10+r11*2-0x4466e166], 268435456 IID12344 - __ cmpq(Address(r11, r12, (Address::ScaleFactor)1, +0x40e52dc1), 268435456); // cmp qword ptr [r11+r12*2+0x40e52dc1], 268435456 IID12345 - __ cmpq(Address(r12, +0x17d62dbb), 268435456); // cmp qword ptr [r12+0x17d62dbb], 268435456 IID12346 - __ cmpq(Address(r13, r14, (Address::ScaleFactor)0, +0x466f15a4), 268435456); // cmp qword ptr [r13+r14*1+0x466f15a4], 268435456 IID12347 - __ cmpq(Address(r14, -0x8f29734), 268435456); // cmp qword ptr [r14-0x8f29734], 268435456 IID12348 - __ cmpq(Address(r15, r16, (Address::ScaleFactor)1, +0x74836eaa), 268435456); // cmp qword ptr [r15+r16*2+0x74836eaa], 268435456 IID12349 - __ cmpq(Address(r16, r17, (Address::ScaleFactor)2, +0x7931605a), 268435456); // cmp qword ptr [r16+r17*4+0x7931605a], 268435456 IID12350 - __ cmpq(Address(r17, r18, (Address::ScaleFactor)0, -0x6565a72e), 268435456); // cmp qword ptr [r17+r18*1-0x6565a72e], 268435456 IID12351 - __ cmpq(Address(r18, r19, (Address::ScaleFactor)1, +0x1920876b), 268435456); // cmp qword ptr [r18+r19*2+0x1920876b], 268435456 IID12352 - __ cmpq(Address(r19, +0x506e5cb4), 268435456); // cmp qword ptr [r19+0x506e5cb4], 268435456 IID12353 - __ cmpq(Address(r20, r21, (Address::ScaleFactor)0, -0x55a3722c), 268435456); // cmp qword ptr [r20+r21*1-0x55a3722c], 268435456 IID12354 - __ cmpq(Address(r21, r22, (Address::ScaleFactor)2, +0x7486cf41), 268435456); // cmp qword ptr [r21+r22*4+0x7486cf41], 268435456 IID12355 - __ cmpq(Address(r22, r23, (Address::ScaleFactor)2, +0x17660000), 268435456); // cmp qword ptr [r22+r23*4+0x17660000], 268435456 IID12356 - __ cmpq(Address(r23, r24, (Address::ScaleFactor)2, -0x64c81cd8), 268435456); // cmp qword ptr [r23+r24*4-0x64c81cd8], 268435456 IID12357 - __ cmpq(Address(r24, r25, (Address::ScaleFactor)3, +0x4336369f), 268435456); // cmp qword ptr [r24+r25*8+0x4336369f], 268435456 IID12358 - __ cmpq(Address(r25, r26, (Address::ScaleFactor)0, -0x1b4cac78), 268435456); // cmp qword ptr [r25+r26*1-0x1b4cac78], 268435456 IID12359 - __ cmpq(Address(r26, +0x1fe50610), 268435456); // cmp qword ptr [r26+0x1fe50610], 268435456 IID12360 - __ cmpq(Address(r27, r28, (Address::ScaleFactor)3, +0xe23a851), 268435456); // cmp qword ptr [r27+r28*8+0xe23a851], 268435456 IID12361 - __ cmpq(Address(r28, r29, (Address::ScaleFactor)0, -0x358fe46a), 268435456); // cmp qword ptr [r28+r29*1-0x358fe46a], 268435456 IID12362 - __ cmpq(Address(r29, r30, (Address::ScaleFactor)1, -0x1c7d272f), 268435456); // cmp qword ptr [r29+r30*2-0x1c7d272f], 268435456 IID12363 - __ cmpq(Address(r30, r31, (Address::ScaleFactor)0, +0x2c7ce1a), 268435456); // cmp qword ptr [r30+r31*1+0x2c7ce1a], 268435456 IID12364 - __ cmpq(Address(r31, rcx, (Address::ScaleFactor)2, +0x35fec1d9), 268435456); // cmp qword ptr [r31+rcx*4+0x35fec1d9], 268435456 IID12365 - __ sarq(Address(rcx, rdx, (Address::ScaleFactor)2, +0x63fcc143), 1); // sar qword ptr [rcx+rdx*4+0x63fcc143], 1 IID12366 - __ sarq(Address(rdx, +0x494f0cbf), 1); // sar qword ptr [rdx+0x494f0cbf], 1 IID12367 - __ sarq(Address(rbx, r8, (Address::ScaleFactor)0, +0x21631719), 1); // sar qword ptr [rbx+r8*1+0x21631719], 1 IID12368 - __ sarq(Address(r8, r9, (Address::ScaleFactor)3, -0x2cbb5867), 1); // sar qword ptr [r8+r9*8-0x2cbb5867], 1 IID12369 - __ sarq(Address(r9, +0xd9a087d), 1); // sar qword ptr [r9+0xd9a087d], 1 IID12370 - __ sarq(Address(r10, r11, (Address::ScaleFactor)1, -0x2ea6d1ec), 1); // sar qword ptr [r10+r11*2-0x2ea6d1ec], 1 IID12371 - __ sarq(Address(r11, r12, (Address::ScaleFactor)1, +0x4e061046), 1); // sar qword ptr [r11+r12*2+0x4e061046], 1 IID12372 - __ sarq(Address(r12, r13, (Address::ScaleFactor)3, +0x544073c5), 1); // sar qword ptr [r12+r13*8+0x544073c5], 1 IID12373 - __ sarq(Address(r13, -0x4f81965b), 1); // sar qword ptr [r13-0x4f81965b], 1 IID12374 - __ sarq(Address(r14, +0x142a86e), 1); // sar qword ptr [r14+0x142a86e], 1 IID12375 - __ sarq(Address(r15, -0x572852b8), 1); // sar qword ptr [r15-0x572852b8], 1 IID12376 - __ sarq(Address(r16, +0x13d4e33b), 1); // sar qword ptr [r16+0x13d4e33b], 1 IID12377 - __ sarq(Address(r17, r18, (Address::ScaleFactor)3, -0x59d3182d), 1); // sar qword ptr [r17+r18*8-0x59d3182d], 1 IID12378 - __ sarq(Address(r18, -0x125d591e), 1); // sar qword ptr [r18-0x125d591e], 1 IID12379 - __ sarq(Address(r19, r20, (Address::ScaleFactor)2, -0x3a9cc2ba), 1); // sar qword ptr [r19+r20*4-0x3a9cc2ba], 1 IID12380 - __ sarq(Address(r20, r21, (Address::ScaleFactor)3, -0x74f3a60c), 1); // sar qword ptr [r20+r21*8-0x74f3a60c], 1 IID12381 - __ sarq(Address(r21, r22, (Address::ScaleFactor)1, +0x18350433), 1); // sar qword ptr [r21+r22*2+0x18350433], 1 IID12382 - __ sarq(Address(r22, r23, (Address::ScaleFactor)2, -0x2d9f4d13), 1); // sar qword ptr [r22+r23*4-0x2d9f4d13], 1 IID12383 - __ sarq(Address(r23, +0x7ca93085), 1); // sar qword ptr [r23+0x7ca93085], 1 IID12384 - __ sarq(Address(r24, r25, (Address::ScaleFactor)2, +0x61751a49), 1); // sar qword ptr [r24+r25*4+0x61751a49], 1 IID12385 - __ sarq(Address(r25, r26, (Address::ScaleFactor)1, +0x42c4182c), 1); // sar qword ptr [r25+r26*2+0x42c4182c], 1 IID12386 - __ sarq(Address(r26, r27, (Address::ScaleFactor)3, +0xcee957a), 1); // sar qword ptr [r26+r27*8+0xcee957a], 1 IID12387 - __ sarq(Address(r27, r28, (Address::ScaleFactor)0, -0x5ea156b4), 1); // sar qword ptr [r27+r28*1-0x5ea156b4], 1 IID12388 - __ sarq(Address(r28, r29, (Address::ScaleFactor)1, +0x1c1d26ec), 1); // sar qword ptr [r28+r29*2+0x1c1d26ec], 1 IID12389 - __ sarq(Address(r29, r30, (Address::ScaleFactor)3, -0x144f15a7), 1); // sar qword ptr [r29+r30*8-0x144f15a7], 1 IID12390 - __ sarq(Address(r30, r31, (Address::ScaleFactor)2, +0x7bb4d9f4), 1); // sar qword ptr [r30+r31*4+0x7bb4d9f4], 1 IID12391 - __ sarq(Address(r31, -0x6e7a00c9), 1); // sar qword ptr [r31-0x6e7a00c9], 1 IID12392 - __ sarq(Address(rcx, rdx, (Address::ScaleFactor)3, -0x3411f1e4), 2); // sar qword ptr [rcx+rdx*8-0x3411f1e4], 2 IID12393 - __ sarq(Address(rdx, rbx, (Address::ScaleFactor)0, +0x4d3d3a45), 2); // sar qword ptr [rdx+rbx*1+0x4d3d3a45], 2 IID12394 - __ sarq(Address(rbx, r8, (Address::ScaleFactor)0, -0x2f1630ba), 2); // sar qword ptr [rbx+r8*1-0x2f1630ba], 2 IID12395 - __ sarq(Address(r8, r9, (Address::ScaleFactor)2, -0x321cc840), 2); // sar qword ptr [r8+r9*4-0x321cc840], 2 IID12396 - __ sarq(Address(r9, -0x71296bb2), 2); // sar qword ptr [r9-0x71296bb2], 2 IID12397 - __ sarq(Address(r10, r11, (Address::ScaleFactor)1, +0x63278b19), 2); // sar qword ptr [r10+r11*2+0x63278b19], 2 IID12398 - __ sarq(Address(r11, r12, (Address::ScaleFactor)0, +0x70165486), 2); // sar qword ptr [r11+r12*1+0x70165486], 2 IID12399 - __ sarq(Address(r12, r13, (Address::ScaleFactor)2, -0x60a3f744), 2); // sar qword ptr [r12+r13*4-0x60a3f744], 2 IID12400 - __ sarq(Address(r13, +0x7ba25447), 2); // sar qword ptr [r13+0x7ba25447], 2 IID12401 - __ sarq(Address(r14, r15, (Address::ScaleFactor)0, -0x100a1daf), 2); // sar qword ptr [r14+r15*1-0x100a1daf], 2 IID12402 - __ sarq(Address(r15, r16, (Address::ScaleFactor)0, -0x25b665ae), 2); // sar qword ptr [r15+r16*1-0x25b665ae], 2 IID12403 - __ sarq(Address(r16, -0x473eb122), 2); // sar qword ptr [r16-0x473eb122], 2 IID12404 - __ sarq(Address(r17, r18, (Address::ScaleFactor)2, +0x23465c70), 2); // sar qword ptr [r17+r18*4+0x23465c70], 2 IID12405 - __ sarq(Address(r18, r19, (Address::ScaleFactor)0, +0x2e7ad10d), 2); // sar qword ptr [r18+r19*1+0x2e7ad10d], 2 IID12406 - __ sarq(Address(r19, r20, (Address::ScaleFactor)3, +0x78ec374), 2); // sar qword ptr [r19+r20*8+0x78ec374], 2 IID12407 - __ sarq(Address(r20, r21, (Address::ScaleFactor)1, -0x6ed096ba), 2); // sar qword ptr [r20+r21*2-0x6ed096ba], 2 IID12408 - __ sarq(Address(r21, r22, (Address::ScaleFactor)1, -0x2e15f72e), 2); // sar qword ptr [r21+r22*2-0x2e15f72e], 2 IID12409 - __ sarq(Address(r22, r23, (Address::ScaleFactor)0, -0x20c31f58), 2); // sar qword ptr [r22+r23*1-0x20c31f58], 2 IID12410 - __ sarq(Address(r23, r24, (Address::ScaleFactor)1, -0x3fd7c905), 2); // sar qword ptr [r23+r24*2-0x3fd7c905], 2 IID12411 - __ sarq(Address(r24, r25, (Address::ScaleFactor)3, -0x30454d3f), 2); // sar qword ptr [r24+r25*8-0x30454d3f], 2 IID12412 - __ sarq(Address(r25, r26, (Address::ScaleFactor)3, -0x1217dd3b), 2); // sar qword ptr [r25+r26*8-0x1217dd3b], 2 IID12413 - __ sarq(Address(r26, r27, (Address::ScaleFactor)1, -0x2a282444), 2); // sar qword ptr [r26+r27*2-0x2a282444], 2 IID12414 - __ sarq(Address(r27, -0x411c9357), 2); // sar qword ptr [r27-0x411c9357], 2 IID12415 - __ sarq(Address(r28, +0x58c39c3), 2); // sar qword ptr [r28+0x58c39c3], 2 IID12416 - __ sarq(Address(r29, r30, (Address::ScaleFactor)1, +0x33ed4863), 2); // sar qword ptr [r29+r30*2+0x33ed4863], 2 IID12417 - __ sarq(Address(r30, r31, (Address::ScaleFactor)2, +0x2fb433ce), 2); // sar qword ptr [r30+r31*4+0x2fb433ce], 2 IID12418 - __ sarq(Address(r31, rcx, (Address::ScaleFactor)0, +0x757f711c), 2); // sar qword ptr [r31+rcx*1+0x757f711c], 2 IID12419 - __ sarq(Address(rcx, +0x3781ffd4), 4); // sar qword ptr [rcx+0x3781ffd4], 4 IID12420 - __ sarq(Address(rdx, +0x74fa7436), 4); // sar qword ptr [rdx+0x74fa7436], 4 IID12421 - __ sarq(Address(rbx, r8, (Address::ScaleFactor)0, -0x6f451a3b), 4); // sar qword ptr [rbx+r8*1-0x6f451a3b], 4 IID12422 - __ sarq(Address(r8, r9, (Address::ScaleFactor)0, -0x25098f05), 4); // sar qword ptr [r8+r9*1-0x25098f05], 4 IID12423 - __ sarq(Address(r9, +0x520c8456), 4); // sar qword ptr [r9+0x520c8456], 4 IID12424 - __ sarq(Address(r10, +0x4af9eb8), 4); // sar qword ptr [r10+0x4af9eb8], 4 IID12425 - __ sarq(Address(r11, r12, (Address::ScaleFactor)0, +0x3844fc94), 4); // sar qword ptr [r11+r12*1+0x3844fc94], 4 IID12426 - __ sarq(Address(r12, +0x1565b21d), 4); // sar qword ptr [r12+0x1565b21d], 4 IID12427 - __ sarq(Address(r13, r14, (Address::ScaleFactor)3, +0x1c7168a2), 4); // sar qword ptr [r13+r14*8+0x1c7168a2], 4 IID12428 - __ sarq(Address(r14, r15, (Address::ScaleFactor)3, -0x6bfafe62), 4); // sar qword ptr [r14+r15*8-0x6bfafe62], 4 IID12429 - __ sarq(Address(r15, r16, (Address::ScaleFactor)0, -0x37f0490), 4); // sar qword ptr [r15+r16*1-0x37f0490], 4 IID12430 - __ sarq(Address(r16, r17, (Address::ScaleFactor)0, +0x8a8e503), 4); // sar qword ptr [r16+r17*1+0x8a8e503], 4 IID12431 - __ sarq(Address(r17, r18, (Address::ScaleFactor)1, -0x7ac5f5bf), 4); // sar qword ptr [r17+r18*2-0x7ac5f5bf], 4 IID12432 - __ sarq(Address(r18, r19, (Address::ScaleFactor)0, +0x2f191864), 4); // sar qword ptr [r18+r19*1+0x2f191864], 4 IID12433 - __ sarq(Address(r19, r20, (Address::ScaleFactor)2, -0x2ce4860c), 4); // sar qword ptr [r19+r20*4-0x2ce4860c], 4 IID12434 - __ sarq(Address(r20, r21, (Address::ScaleFactor)3, +0x64686320), 4); // sar qword ptr [r20+r21*8+0x64686320], 4 IID12435 - __ sarq(Address(r21, r22, (Address::ScaleFactor)1, +0x3b51d5cd), 4); // sar qword ptr [r21+r22*2+0x3b51d5cd], 4 IID12436 - __ sarq(Address(r22, r23, (Address::ScaleFactor)2, +0x23030eeb), 4); // sar qword ptr [r22+r23*4+0x23030eeb], 4 IID12437 - __ sarq(Address(r23, r24, (Address::ScaleFactor)2, -0x2e819683), 4); // sar qword ptr [r23+r24*4-0x2e819683], 4 IID12438 - __ sarq(Address(r24, r25, (Address::ScaleFactor)2, +0x23c11170), 4); // sar qword ptr [r24+r25*4+0x23c11170], 4 IID12439 - __ sarq(Address(r25, r26, (Address::ScaleFactor)1, +0x6a213536), 4); // sar qword ptr [r25+r26*2+0x6a213536], 4 IID12440 - __ sarq(Address(r26, r27, (Address::ScaleFactor)3, -0x5764f463), 4); // sar qword ptr [r26+r27*8-0x5764f463], 4 IID12441 - __ sarq(Address(r27, -0x7aa79d41), 4); // sar qword ptr [r27-0x7aa79d41], 4 IID12442 - __ sarq(Address(r28, r29, (Address::ScaleFactor)1, -0x54e28979), 4); // sar qword ptr [r28+r29*2-0x54e28979], 4 IID12443 - __ sarq(Address(r29, r30, (Address::ScaleFactor)1, -0x41092b55), 4); // sar qword ptr [r29+r30*2-0x41092b55], 4 IID12444 - __ sarq(Address(r30, r31, (Address::ScaleFactor)3, -0xca5cc72), 4); // sar qword ptr [r30+r31*8-0xca5cc72], 4 IID12445 - __ sarq(Address(r31, -0xf5f7f8c), 4); // sar qword ptr [r31-0xf5f7f8c], 4 IID12446 - __ sarq(Address(rcx, rdx, (Address::ScaleFactor)0, +0x4de6eb64), 8); // sar qword ptr [rcx+rdx*1+0x4de6eb64], 8 IID12447 - __ sarq(Address(rdx, rbx, (Address::ScaleFactor)2, -0x4664f1ef), 8); // sar qword ptr [rdx+rbx*4-0x4664f1ef], 8 IID12448 - __ sarq(Address(rbx, r8, (Address::ScaleFactor)0, -0x62fd0893), 8); // sar qword ptr [rbx+r8*1-0x62fd0893], 8 IID12449 - __ sarq(Address(r8, r9, (Address::ScaleFactor)0, -0x1fe7c848), 8); // sar qword ptr [r8+r9*1-0x1fe7c848], 8 IID12450 - __ sarq(Address(r9, r10, (Address::ScaleFactor)2, -0x243ff5a6), 8); // sar qword ptr [r9+r10*4-0x243ff5a6], 8 IID12451 - __ sarq(Address(r10, +0x39bba7a7), 8); // sar qword ptr [r10+0x39bba7a7], 8 IID12452 - __ sarq(Address(r11, +0xa1876ef), 8); // sar qword ptr [r11+0xa1876ef], 8 IID12453 - __ sarq(Address(r12, r13, (Address::ScaleFactor)0, -0x248b325f), 8); // sar qword ptr [r12+r13*1-0x248b325f], 8 IID12454 - __ sarq(Address(r13, r14, (Address::ScaleFactor)2, -0x61a98c0f), 8); // sar qword ptr [r13+r14*4-0x61a98c0f], 8 IID12455 - __ sarq(Address(r14, r15, (Address::ScaleFactor)1, +0x6a6f0b87), 8); // sar qword ptr [r14+r15*2+0x6a6f0b87], 8 IID12456 - __ sarq(Address(r15, r16, (Address::ScaleFactor)1, +0x68d4772c), 8); // sar qword ptr [r15+r16*2+0x68d4772c], 8 IID12457 - __ sarq(Address(r16, r17, (Address::ScaleFactor)3, +0x73cea75e), 8); // sar qword ptr [r16+r17*8+0x73cea75e], 8 IID12458 - __ sarq(Address(r17, r18, (Address::ScaleFactor)0, +0x412dc295), 8); // sar qword ptr [r17+r18*1+0x412dc295], 8 IID12459 - __ sarq(Address(r18, r19, (Address::ScaleFactor)3, -0x344d51d), 8); // sar qword ptr [r18+r19*8-0x344d51d], 8 IID12460 - __ sarq(Address(r19, r20, (Address::ScaleFactor)0, -0x1b264b40), 8); // sar qword ptr [r19+r20*1-0x1b264b40], 8 IID12461 - __ sarq(Address(r20, -0x2c2e2ff6), 8); // sar qword ptr [r20-0x2c2e2ff6], 8 IID12462 - __ sarq(Address(r21, r22, (Address::ScaleFactor)2, -0x4abeb200), 8); // sar qword ptr [r21+r22*4-0x4abeb200], 8 IID12463 - __ sarq(Address(r22, +0x488b5bd9), 8); // sar qword ptr [r22+0x488b5bd9], 8 IID12464 - __ sarq(Address(r23, r24, (Address::ScaleFactor)2, +0x1b31a633), 8); // sar qword ptr [r23+r24*4+0x1b31a633], 8 IID12465 - __ sarq(Address(r24, r25, (Address::ScaleFactor)2, -0x5a12fc1d), 8); // sar qword ptr [r24+r25*4-0x5a12fc1d], 8 IID12466 - __ sarq(Address(r25, r26, (Address::ScaleFactor)1, +0x4ffd0257), 8); // sar qword ptr [r25+r26*2+0x4ffd0257], 8 IID12467 - __ sarq(Address(r26, r27, (Address::ScaleFactor)1, -0x3fd8cadf), 8); // sar qword ptr [r26+r27*2-0x3fd8cadf], 8 IID12468 - __ sarq(Address(r27, r28, (Address::ScaleFactor)3, -0x40ed85c4), 8); // sar qword ptr [r27+r28*8-0x40ed85c4], 8 IID12469 - __ sarq(Address(r28, -0x45a21cd6), 8); // sar qword ptr [r28-0x45a21cd6], 8 IID12470 - __ sarq(Address(r29, -0x299d3810), 8); // sar qword ptr [r29-0x299d3810], 8 IID12471 - __ sarq(Address(r30, -0x564279f3), 8); // sar qword ptr [r30-0x564279f3], 8 IID12472 - __ sarq(Address(r31, +0x63bbafa8), 8); // sar qword ptr [r31+0x63bbafa8], 8 IID12473 - __ sarq(Address(rcx, rdx, (Address::ScaleFactor)1, -0x666c1186), 16); // sar qword ptr [rcx+rdx*2-0x666c1186], 16 IID12474 - __ sarq(Address(rdx, rbx, (Address::ScaleFactor)2, +0x726f50b0), 16); // sar qword ptr [rdx+rbx*4+0x726f50b0], 16 IID12475 - __ sarq(Address(rbx, r8, (Address::ScaleFactor)0, -0x6da662e9), 16); // sar qword ptr [rbx+r8*1-0x6da662e9], 16 IID12476 - __ sarq(Address(r8, r9, (Address::ScaleFactor)2, -0x351fb98f), 16); // sar qword ptr [r8+r9*4-0x351fb98f], 16 IID12477 - __ sarq(Address(r9, r10, (Address::ScaleFactor)0, -0x2c614825), 16); // sar qword ptr [r9+r10*1-0x2c614825], 16 IID12478 - __ sarq(Address(r10, -0x2741291a), 16); // sar qword ptr [r10-0x2741291a], 16 IID12479 - __ sarq(Address(r11, -0x1767155b), 16); // sar qword ptr [r11-0x1767155b], 16 IID12480 - __ sarq(Address(r12, r13, (Address::ScaleFactor)2, -0x27b5006b), 16); // sar qword ptr [r12+r13*4-0x27b5006b], 16 IID12481 - __ sarq(Address(r13, r14, (Address::ScaleFactor)2, +0xdb6afed), 16); // sar qword ptr [r13+r14*4+0xdb6afed], 16 IID12482 - __ sarq(Address(r14, r15, (Address::ScaleFactor)3, +0xc458c54), 16); // sar qword ptr [r14+r15*8+0xc458c54], 16 IID12483 - __ sarq(Address(r15, r16, (Address::ScaleFactor)2, -0xf1ffbeb), 16); // sar qword ptr [r15+r16*4-0xf1ffbeb], 16 IID12484 - __ sarq(Address(r16, r17, (Address::ScaleFactor)1, +0x17218e5c), 16); // sar qword ptr [r16+r17*2+0x17218e5c], 16 IID12485 - __ sarq(Address(r17, r18, (Address::ScaleFactor)0, +0x185b391b), 16); // sar qword ptr [r17+r18*1+0x185b391b], 16 IID12486 - __ sarq(Address(r18, +0x21e9123d), 16); // sar qword ptr [r18+0x21e9123d], 16 IID12487 - __ sarq(Address(r19, r20, (Address::ScaleFactor)2, +0x21fac79d), 16); // sar qword ptr [r19+r20*4+0x21fac79d], 16 IID12488 - __ sarq(Address(r20, -0x2d1bbb39), 16); // sar qword ptr [r20-0x2d1bbb39], 16 IID12489 - __ sarq(Address(r21, r22, (Address::ScaleFactor)0, -0x1186ffae), 16); // sar qword ptr [r21+r22*1-0x1186ffae], 16 IID12490 - __ sarq(Address(r22, r23, (Address::ScaleFactor)0, -0x5157ee61), 16); // sar qword ptr [r22+r23*1-0x5157ee61], 16 IID12491 - __ sarq(Address(r23, r24, (Address::ScaleFactor)1, -0xcf41252), 16); // sar qword ptr [r23+r24*2-0xcf41252], 16 IID12492 - __ sarq(Address(r24, r25, (Address::ScaleFactor)3, +0x6cc6317), 16); // sar qword ptr [r24+r25*8+0x6cc6317], 16 IID12493 - __ sarq(Address(r25, r26, (Address::ScaleFactor)0, +0x36b35169), 16); // sar qword ptr [r25+r26*1+0x36b35169], 16 IID12494 - __ sarq(Address(r26, r27, (Address::ScaleFactor)1, -0x3e9c01d0), 16); // sar qword ptr [r26+r27*2-0x3e9c01d0], 16 IID12495 - __ sarq(Address(r27, r28, (Address::ScaleFactor)1, -0x73f00e83), 16); // sar qword ptr [r27+r28*2-0x73f00e83], 16 IID12496 - __ sarq(Address(r28, r29, (Address::ScaleFactor)2, +0x102b571b), 16); // sar qword ptr [r28+r29*4+0x102b571b], 16 IID12497 - __ sarq(Address(r29, -0x1942f416), 16); // sar qword ptr [r29-0x1942f416], 16 IID12498 - __ sarq(Address(r30, r31, (Address::ScaleFactor)2, -0x63c6462), 16); // sar qword ptr [r30+r31*4-0x63c6462], 16 IID12499 - __ sarq(Address(r31, rcx, (Address::ScaleFactor)1, -0x7c3b7a9a), 16); // sar qword ptr [r31+rcx*2-0x7c3b7a9a], 16 IID12500 - __ salq(Address(rcx, rdx, (Address::ScaleFactor)2, +0x6b13ec60), 1); // sal qword ptr [rcx+rdx*4+0x6b13ec60], 1 IID12501 - __ salq(Address(rdx, rbx, (Address::ScaleFactor)3, -0x597f65ce), 1); // sal qword ptr [rdx+rbx*8-0x597f65ce], 1 IID12502 - __ salq(Address(rbx, r8, (Address::ScaleFactor)2, +0x2b018e46), 1); // sal qword ptr [rbx+r8*4+0x2b018e46], 1 IID12503 - __ salq(Address(r8, r9, (Address::ScaleFactor)0, -0x1bc45429), 1); // sal qword ptr [r8+r9*1-0x1bc45429], 1 IID12504 - __ salq(Address(r9, -0x183091f7), 1); // sal qword ptr [r9-0x183091f7], 1 IID12505 - __ salq(Address(r10, r11, (Address::ScaleFactor)2, -0x19a3d90), 1); // sal qword ptr [r10+r11*4-0x19a3d90], 1 IID12506 - __ salq(Address(r11, r12, (Address::ScaleFactor)0, -0x77ae96ed), 1); // sal qword ptr [r11+r12*1-0x77ae96ed], 1 IID12507 - __ salq(Address(r12, r13, (Address::ScaleFactor)0, +0x7d56cb63), 1); // sal qword ptr [r12+r13*1+0x7d56cb63], 1 IID12508 - __ salq(Address(r13, r14, (Address::ScaleFactor)2, +0x4af54368), 1); // sal qword ptr [r13+r14*4+0x4af54368], 1 IID12509 - __ salq(Address(r14, r15, (Address::ScaleFactor)3, -0x5d4b2ad6), 1); // sal qword ptr [r14+r15*8-0x5d4b2ad6], 1 IID12510 - __ salq(Address(r15, +0x63b5da12), 1); // sal qword ptr [r15+0x63b5da12], 1 IID12511 - __ salq(Address(r16, r17, (Address::ScaleFactor)3, +0x8e75379), 1); // sal qword ptr [r16+r17*8+0x8e75379], 1 IID12512 - __ salq(Address(r17, -0x6325af2d), 1); // sal qword ptr [r17-0x6325af2d], 1 IID12513 - __ salq(Address(r18, r19, (Address::ScaleFactor)0, -0x42806bcf), 1); // sal qword ptr [r18+r19*1-0x42806bcf], 1 IID12514 - __ salq(Address(r19, -0x4fa2bf32), 1); // sal qword ptr [r19-0x4fa2bf32], 1 IID12515 - __ salq(Address(r20, r21, (Address::ScaleFactor)2, -0x6f19d98d), 1); // sal qword ptr [r20+r21*4-0x6f19d98d], 1 IID12516 - __ salq(Address(r21, r22, (Address::ScaleFactor)2, +0xf816d24), 1); // sal qword ptr [r21+r22*4+0xf816d24], 1 IID12517 - __ salq(Address(r22, r23, (Address::ScaleFactor)1, +0x5ed840f3), 1); // sal qword ptr [r22+r23*2+0x5ed840f3], 1 IID12518 - __ salq(Address(r23, r24, (Address::ScaleFactor)3, +0x1b7620a), 1); // sal qword ptr [r23+r24*8+0x1b7620a], 1 IID12519 - __ salq(Address(r24, r25, (Address::ScaleFactor)3, +0x67a56102), 1); // sal qword ptr [r24+r25*8+0x67a56102], 1 IID12520 - __ salq(Address(r25, r26, (Address::ScaleFactor)3, +0x4b9ac2f2), 1); // sal qword ptr [r25+r26*8+0x4b9ac2f2], 1 IID12521 - __ salq(Address(r26, +0x5c4c2620), 1); // sal qword ptr [r26+0x5c4c2620], 1 IID12522 - __ salq(Address(r27, r28, (Address::ScaleFactor)3, -0x3afa441d), 1); // sal qword ptr [r27+r28*8-0x3afa441d], 1 IID12523 - __ salq(Address(r28, r29, (Address::ScaleFactor)2, +0x1e75a9db), 1); // sal qword ptr [r28+r29*4+0x1e75a9db], 1 IID12524 - __ salq(Address(r29, r30, (Address::ScaleFactor)1, +0x4f591aa9), 1); // sal qword ptr [r29+r30*2+0x4f591aa9], 1 IID12525 - __ salq(Address(r30, -0x72278be2), 1); // sal qword ptr [r30-0x72278be2], 1 IID12526 - __ salq(Address(r31, +0x56f3a7b8), 1); // sal qword ptr [r31+0x56f3a7b8], 1 IID12527 - __ salq(Address(rcx, rdx, (Address::ScaleFactor)0, -0x206fa86f), 2); // sal qword ptr [rcx+rdx*1-0x206fa86f], 2 IID12528 - __ salq(Address(rdx, +0x249b7142), 2); // sal qword ptr [rdx+0x249b7142], 2 IID12529 - __ salq(Address(rbx, r8, (Address::ScaleFactor)1, -0x65bb063c), 2); // sal qword ptr [rbx+r8*2-0x65bb063c], 2 IID12530 - __ salq(Address(r8, r9, (Address::ScaleFactor)0, +0x2dc523a7), 2); // sal qword ptr [r8+r9*1+0x2dc523a7], 2 IID12531 - __ salq(Address(r9, r10, (Address::ScaleFactor)1, +0x51d9e126), 2); // sal qword ptr [r9+r10*2+0x51d9e126], 2 IID12532 - __ salq(Address(r10, +0x72a96f27), 2); // sal qword ptr [r10+0x72a96f27], 2 IID12533 - __ salq(Address(r11, r12, (Address::ScaleFactor)0, +0x33e98974), 2); // sal qword ptr [r11+r12*1+0x33e98974], 2 IID12534 - __ salq(Address(r12, +0x58379d0d), 2); // sal qword ptr [r12+0x58379d0d], 2 IID12535 - __ salq(Address(r13, -0x46d9b83c), 2); // sal qword ptr [r13-0x46d9b83c], 2 IID12536 - __ salq(Address(r14, r15, (Address::ScaleFactor)2, +0x383e6730), 2); // sal qword ptr [r14+r15*4+0x383e6730], 2 IID12537 - __ salq(Address(r15, r16, (Address::ScaleFactor)3, +0x595d2ef7), 2); // sal qword ptr [r15+r16*8+0x595d2ef7], 2 IID12538 - __ salq(Address(r16, r17, (Address::ScaleFactor)1, +0x2643d7b6), 2); // sal qword ptr [r16+r17*2+0x2643d7b6], 2 IID12539 - __ salq(Address(r17, r18, (Address::ScaleFactor)2, -0x6eb6691d), 2); // sal qword ptr [r17+r18*4-0x6eb6691d], 2 IID12540 - __ salq(Address(r18, r19, (Address::ScaleFactor)3, +0x4cc8ce9), 2); // sal qword ptr [r18+r19*8+0x4cc8ce9], 2 IID12541 - __ salq(Address(r19, r20, (Address::ScaleFactor)1, -0x31eaa4ac), 2); // sal qword ptr [r19+r20*2-0x31eaa4ac], 2 IID12542 - __ salq(Address(r20, r21, (Address::ScaleFactor)1, -0x226c48f2), 2); // sal qword ptr [r20+r21*2-0x226c48f2], 2 IID12543 - __ salq(Address(r21, -0x1c21fd3b), 2); // sal qword ptr [r21-0x1c21fd3b], 2 IID12544 - __ salq(Address(r22, r23, (Address::ScaleFactor)3, -0x317bfac0), 2); // sal qword ptr [r22+r23*8-0x317bfac0], 2 IID12545 - __ salq(Address(r23, -0x2bf7f745), 2); // sal qword ptr [r23-0x2bf7f745], 2 IID12546 - __ salq(Address(r24, r25, (Address::ScaleFactor)0, -0x385a6ea5), 2); // sal qword ptr [r24+r25*1-0x385a6ea5], 2 IID12547 - __ salq(Address(r25, r26, (Address::ScaleFactor)2, +0x5ea15b69), 2); // sal qword ptr [r25+r26*4+0x5ea15b69], 2 IID12548 - __ salq(Address(r26, r27, (Address::ScaleFactor)0, +0x1bb38d25), 2); // sal qword ptr [r26+r27*1+0x1bb38d25], 2 IID12549 - __ salq(Address(r27, r28, (Address::ScaleFactor)3, +0x7b914159), 2); // sal qword ptr [r27+r28*8+0x7b914159], 2 IID12550 - __ salq(Address(r28, -0xef376b6), 2); // sal qword ptr [r28-0xef376b6], 2 IID12551 - __ salq(Address(r29, +0xf6cd4dd), 2); // sal qword ptr [r29+0xf6cd4dd], 2 IID12552 - __ salq(Address(r30, r31, (Address::ScaleFactor)0, +0x25e649a6), 2); // sal qword ptr [r30+r31*1+0x25e649a6], 2 IID12553 - __ salq(Address(r31, rcx, (Address::ScaleFactor)2, -0x3579041b), 2); // sal qword ptr [r31+rcx*4-0x3579041b], 2 IID12554 - __ salq(Address(rcx, rdx, (Address::ScaleFactor)2, -0x1a28f199), 4); // sal qword ptr [rcx+rdx*4-0x1a28f199], 4 IID12555 - __ salq(Address(rdx, rbx, (Address::ScaleFactor)0, +0x51daa40d), 4); // sal qword ptr [rdx+rbx*1+0x51daa40d], 4 IID12556 - __ salq(Address(rbx, -0x7cfedb12), 4); // sal qword ptr [rbx-0x7cfedb12], 4 IID12557 - __ salq(Address(r8, r9, (Address::ScaleFactor)2, -0x7374d4cf), 4); // sal qword ptr [r8+r9*4-0x7374d4cf], 4 IID12558 - __ salq(Address(r9, r10, (Address::ScaleFactor)0, +0x75266f30), 4); // sal qword ptr [r9+r10*1+0x75266f30], 4 IID12559 - __ salq(Address(r10, r11, (Address::ScaleFactor)1, +0xf180369), 4); // sal qword ptr [r10+r11*2+0xf180369], 4 IID12560 - __ salq(Address(r11, +0x372e7f1), 4); // sal qword ptr [r11+0x372e7f1], 4 IID12561 - __ salq(Address(r12, -0x151c3611), 4); // sal qword ptr [r12-0x151c3611], 4 IID12562 - __ salq(Address(r13, r14, (Address::ScaleFactor)1, +0x684cefce), 4); // sal qword ptr [r13+r14*2+0x684cefce], 4 IID12563 - __ salq(Address(r14, r15, (Address::ScaleFactor)0, -0x5e12207c), 4); // sal qword ptr [r14+r15*1-0x5e12207c], 4 IID12564 - __ salq(Address(r15, -0x4b475620), 4); // sal qword ptr [r15-0x4b475620], 4 IID12565 - __ salq(Address(r16, r17, (Address::ScaleFactor)3, +0x44c200f2), 4); // sal qword ptr [r16+r17*8+0x44c200f2], 4 IID12566 - __ salq(Address(r17, r18, (Address::ScaleFactor)0, -0x1debd00d), 4); // sal qword ptr [r17+r18*1-0x1debd00d], 4 IID12567 - __ salq(Address(r18, r19, (Address::ScaleFactor)0, -0x12da48d), 4); // sal qword ptr [r18+r19*1-0x12da48d], 4 IID12568 - __ salq(Address(r19, r20, (Address::ScaleFactor)2, +0x10f3eae6), 4); // sal qword ptr [r19+r20*4+0x10f3eae6], 4 IID12569 - __ salq(Address(r20, r21, (Address::ScaleFactor)1, +0x4db6394d), 4); // sal qword ptr [r20+r21*2+0x4db6394d], 4 IID12570 - __ salq(Address(r21, +0x2cbb7c8e), 4); // sal qword ptr [r21+0x2cbb7c8e], 4 IID12571 - __ salq(Address(r22, r23, (Address::ScaleFactor)3, +0x1ac9348d), 4); // sal qword ptr [r22+r23*8+0x1ac9348d], 4 IID12572 - __ salq(Address(r23, r24, (Address::ScaleFactor)0, -0x1c07e334), 4); // sal qword ptr [r23+r24*1-0x1c07e334], 4 IID12573 - __ salq(Address(r24, +0x7cdc50c3), 4); // sal qword ptr [r24+0x7cdc50c3], 4 IID12574 - __ salq(Address(r25, r26, (Address::ScaleFactor)0, +0x6541c978), 4); // sal qword ptr [r25+r26*1+0x6541c978], 4 IID12575 - __ salq(Address(r26, r27, (Address::ScaleFactor)2, -0x143b696c), 4); // sal qword ptr [r26+r27*4-0x143b696c], 4 IID12576 - __ salq(Address(r27, r28, (Address::ScaleFactor)1, -0x29fa5249), 4); // sal qword ptr [r27+r28*2-0x29fa5249], 4 IID12577 - __ salq(Address(r28, -0x2bab85cd), 4); // sal qword ptr [r28-0x2bab85cd], 4 IID12578 - __ salq(Address(r29, r30, (Address::ScaleFactor)1, +0x135475b3), 4); // sal qword ptr [r29+r30*2+0x135475b3], 4 IID12579 - __ salq(Address(r30, r31, (Address::ScaleFactor)1, +0x3307db5a), 4); // sal qword ptr [r30+r31*2+0x3307db5a], 4 IID12580 - __ salq(Address(r31, rcx, (Address::ScaleFactor)3, -0x2cabfaf0), 4); // sal qword ptr [r31+rcx*8-0x2cabfaf0], 4 IID12581 - __ salq(Address(rcx, rdx, (Address::ScaleFactor)3, +0x3f69a87a), 8); // sal qword ptr [rcx+rdx*8+0x3f69a87a], 8 IID12582 - __ salq(Address(rdx, rbx, (Address::ScaleFactor)2, +0x708b4989), 8); // sal qword ptr [rdx+rbx*4+0x708b4989], 8 IID12583 - __ salq(Address(rbx, +0x12e9fd32), 8); // sal qword ptr [rbx+0x12e9fd32], 8 IID12584 - __ salq(Address(r8, r9, (Address::ScaleFactor)2, -0x66bb6921), 8); // sal qword ptr [r8+r9*4-0x66bb6921], 8 IID12585 - __ salq(Address(r9, r10, (Address::ScaleFactor)3, -0x145e9d43), 8); // sal qword ptr [r9+r10*8-0x145e9d43], 8 IID12586 - __ salq(Address(r10, r11, (Address::ScaleFactor)3, +0x6274d0bb), 8); // sal qword ptr [r10+r11*8+0x6274d0bb], 8 IID12587 - __ salq(Address(r11, r12, (Address::ScaleFactor)1, -0x1fa82483), 8); // sal qword ptr [r11+r12*2-0x1fa82483], 8 IID12588 - __ salq(Address(r12, r13, (Address::ScaleFactor)0, -0x2fbf3b34), 8); // sal qword ptr [r12+r13*1-0x2fbf3b34], 8 IID12589 - __ salq(Address(r13, r14, (Address::ScaleFactor)0, -0x31d84850), 8); // sal qword ptr [r13+r14*1-0x31d84850], 8 IID12590 - __ salq(Address(r14, +0x5c38527e), 8); // sal qword ptr [r14+0x5c38527e], 8 IID12591 - __ salq(Address(r15, +0x56f85851), 8); // sal qword ptr [r15+0x56f85851], 8 IID12592 - __ salq(Address(r16, r17, (Address::ScaleFactor)1, -0x169b0bb4), 8); // sal qword ptr [r16+r17*2-0x169b0bb4], 8 IID12593 - __ salq(Address(r17, +0x5de6439), 8); // sal qword ptr [r17+0x5de6439], 8 IID12594 - __ salq(Address(r18, r19, (Address::ScaleFactor)2, -0x16ba97af), 8); // sal qword ptr [r18+r19*4-0x16ba97af], 8 IID12595 - __ salq(Address(r19, r20, (Address::ScaleFactor)1, +0x3d7162b), 8); // sal qword ptr [r19+r20*2+0x3d7162b], 8 IID12596 - __ salq(Address(r20, +0x781a3f30), 8); // sal qword ptr [r20+0x781a3f30], 8 IID12597 - __ salq(Address(r21, r22, (Address::ScaleFactor)2, -0x15741d46), 8); // sal qword ptr [r21+r22*4-0x15741d46], 8 IID12598 - __ salq(Address(r22, -0x2228a7e2), 8); // sal qword ptr [r22-0x2228a7e2], 8 IID12599 - __ salq(Address(r23, -0x7e7b3d0), 8); // sal qword ptr [r23-0x7e7b3d0], 8 IID12600 - __ salq(Address(r24, r25, (Address::ScaleFactor)3, -0x7a337b2a), 8); // sal qword ptr [r24+r25*8-0x7a337b2a], 8 IID12601 - __ salq(Address(r25, r26, (Address::ScaleFactor)1, +0x6b423f8e), 8); // sal qword ptr [r25+r26*2+0x6b423f8e], 8 IID12602 - __ salq(Address(r26, +0x3e6b23ee), 8); // sal qword ptr [r26+0x3e6b23ee], 8 IID12603 - __ salq(Address(r27, r28, (Address::ScaleFactor)2, -0x1b65c91f), 8); // sal qword ptr [r27+r28*4-0x1b65c91f], 8 IID12604 - __ salq(Address(r28, +0x74fe9f87), 8); // sal qword ptr [r28+0x74fe9f87], 8 IID12605 - __ salq(Address(r29, r30, (Address::ScaleFactor)0, +0x3dc062d0), 8); // sal qword ptr [r29+r30*1+0x3dc062d0], 8 IID12606 - __ salq(Address(r30, r31, (Address::ScaleFactor)1, -0x6655e11b), 8); // sal qword ptr [r30+r31*2-0x6655e11b], 8 IID12607 - __ salq(Address(r31, rcx, (Address::ScaleFactor)2, -0x4f1217ba), 8); // sal qword ptr [r31+rcx*4-0x4f1217ba], 8 IID12608 - __ salq(Address(rcx, rdx, (Address::ScaleFactor)2, +0x739c0086), 16); // sal qword ptr [rcx+rdx*4+0x739c0086], 16 IID12609 - __ salq(Address(rdx, rbx, (Address::ScaleFactor)2, +0x348f4159), 16); // sal qword ptr [rdx+rbx*4+0x348f4159], 16 IID12610 - __ salq(Address(rbx, +0xecde664), 16); // sal qword ptr [rbx+0xecde664], 16 IID12611 - __ salq(Address(r8, r9, (Address::ScaleFactor)0, +0x6d2c6616), 16); // sal qword ptr [r8+r9*1+0x6d2c6616], 16 IID12612 - __ salq(Address(r9, +0x6e0a1faa), 16); // sal qword ptr [r9+0x6e0a1faa], 16 IID12613 - __ salq(Address(r10, -0x6ae83606), 16); // sal qword ptr [r10-0x6ae83606], 16 IID12614 - __ salq(Address(r11, r12, (Address::ScaleFactor)1, -0x312c13c0), 16); // sal qword ptr [r11+r12*2-0x312c13c0], 16 IID12615 - __ salq(Address(r12, r13, (Address::ScaleFactor)2, +0x5dbd2199), 16); // sal qword ptr [r12+r13*4+0x5dbd2199], 16 IID12616 - __ salq(Address(r13, r14, (Address::ScaleFactor)2, +0x7996d8ae), 16); // sal qword ptr [r13+r14*4+0x7996d8ae], 16 IID12617 - __ salq(Address(r14, r15, (Address::ScaleFactor)3, +0xd5ea7cc), 16); // sal qword ptr [r14+r15*8+0xd5ea7cc], 16 IID12618 - __ salq(Address(r15, r16, (Address::ScaleFactor)2, -0x653d12c1), 16); // sal qword ptr [r15+r16*4-0x653d12c1], 16 IID12619 - __ salq(Address(r16, r17, (Address::ScaleFactor)3, -0x1372f48f), 16); // sal qword ptr [r16+r17*8-0x1372f48f], 16 IID12620 - __ salq(Address(r17, r18, (Address::ScaleFactor)1, +0x65225e90), 16); // sal qword ptr [r17+r18*2+0x65225e90], 16 IID12621 - __ salq(Address(r18, r19, (Address::ScaleFactor)0, +0x1e09007b), 16); // sal qword ptr [r18+r19*1+0x1e09007b], 16 IID12622 - __ salq(Address(r19, r20, (Address::ScaleFactor)3, +0x58448e06), 16); // sal qword ptr [r19+r20*8+0x58448e06], 16 IID12623 - __ salq(Address(r20, r21, (Address::ScaleFactor)3, +0x4bc31efa), 16); // sal qword ptr [r20+r21*8+0x4bc31efa], 16 IID12624 - __ salq(Address(r21, r22, (Address::ScaleFactor)3, -0x4a389fb0), 16); // sal qword ptr [r21+r22*8-0x4a389fb0], 16 IID12625 - __ salq(Address(r22, r23, (Address::ScaleFactor)2, +0x29619c41), 16); // sal qword ptr [r22+r23*4+0x29619c41], 16 IID12626 - __ salq(Address(r23, r24, (Address::ScaleFactor)1, +0x767dad27), 16); // sal qword ptr [r23+r24*2+0x767dad27], 16 IID12627 - __ salq(Address(r24, -0x2bef9c35), 16); // sal qword ptr [r24-0x2bef9c35], 16 IID12628 - __ salq(Address(r25, r26, (Address::ScaleFactor)1, +0xda0155c), 16); // sal qword ptr [r25+r26*2+0xda0155c], 16 IID12629 - __ salq(Address(r26, r27, (Address::ScaleFactor)1, -0x358eb430), 16); // sal qword ptr [r26+r27*2-0x358eb430], 16 IID12630 - __ salq(Address(r27, r28, (Address::ScaleFactor)0, +0xfd1d4e0), 16); // sal qword ptr [r27+r28*1+0xfd1d4e0], 16 IID12631 - __ salq(Address(r28, r29, (Address::ScaleFactor)3, +0x2c40b59d), 16); // sal qword ptr [r28+r29*8+0x2c40b59d], 16 IID12632 - __ salq(Address(r29, +0x576f75b6), 16); // sal qword ptr [r29+0x576f75b6], 16 IID12633 - __ salq(Address(r30, r31, (Address::ScaleFactor)0, -0x67e24c79), 16); // sal qword ptr [r30+r31*1-0x67e24c79], 16 IID12634 - __ salq(Address(r31, rcx, (Address::ScaleFactor)1, +0x1244f44c), 16); // sal qword ptr [r31+rcx*2+0x1244f44c], 16 IID12635 - __ sbbq(Address(rcx, rdx, (Address::ScaleFactor)2, +0x4dc38719), 1); // sbb qword ptr [rcx+rdx*4+0x4dc38719], 1 IID12636 - __ sbbq(Address(rdx, rbx, (Address::ScaleFactor)1, -0x6cdff1a9), 1); // sbb qword ptr [rdx+rbx*2-0x6cdff1a9], 1 IID12637 - __ sbbq(Address(rbx, r8, (Address::ScaleFactor)3, -0x56a809cc), 1); // sbb qword ptr [rbx+r8*8-0x56a809cc], 1 IID12638 - __ sbbq(Address(r8, r9, (Address::ScaleFactor)3, -0x46362b66), 1); // sbb qword ptr [r8+r9*8-0x46362b66], 1 IID12639 - __ sbbq(Address(r9, r10, (Address::ScaleFactor)1, -0x1749fd96), 1); // sbb qword ptr [r9+r10*2-0x1749fd96], 1 IID12640 - __ sbbq(Address(r10, r11, (Address::ScaleFactor)3, +0x72fc1a38), 1); // sbb qword ptr [r10+r11*8+0x72fc1a38], 1 IID12641 - __ sbbq(Address(r11, r12, (Address::ScaleFactor)0, -0x17db64c8), 1); // sbb qword ptr [r11+r12*1-0x17db64c8], 1 IID12642 - __ sbbq(Address(r12, r13, (Address::ScaleFactor)1, -0x68ca2062), 1); // sbb qword ptr [r12+r13*2-0x68ca2062], 1 IID12643 - __ sbbq(Address(r13, r14, (Address::ScaleFactor)3, +0x136e1a52), 1); // sbb qword ptr [r13+r14*8+0x136e1a52], 1 IID12644 - __ sbbq(Address(r14, r15, (Address::ScaleFactor)1, -0x3310e353), 1); // sbb qword ptr [r14+r15*2-0x3310e353], 1 IID12645 - __ sbbq(Address(r15, r16, (Address::ScaleFactor)2, -0x22e2094f), 1); // sbb qword ptr [r15+r16*4-0x22e2094f], 1 IID12646 - __ sbbq(Address(r16, r17, (Address::ScaleFactor)3, -0x43ca07a5), 1); // sbb qword ptr [r16+r17*8-0x43ca07a5], 1 IID12647 - __ sbbq(Address(r17, r18, (Address::ScaleFactor)2, +0x33541fff), 1); // sbb qword ptr [r17+r18*4+0x33541fff], 1 IID12648 - __ sbbq(Address(r18, r19, (Address::ScaleFactor)1, -0x4602754e), 1); // sbb qword ptr [r18+r19*2-0x4602754e], 1 IID12649 - __ sbbq(Address(r19, r20, (Address::ScaleFactor)1, +0x399f7c79), 1); // sbb qword ptr [r19+r20*2+0x399f7c79], 1 IID12650 - __ sbbq(Address(r20, r21, (Address::ScaleFactor)0, -0x75821b78), 1); // sbb qword ptr [r20+r21*1-0x75821b78], 1 IID12651 - __ sbbq(Address(r21, -0x5eebd67), 1); // sbb qword ptr [r21-0x5eebd67], 1 IID12652 - __ sbbq(Address(r22, -0x71ae1aa3), 1); // sbb qword ptr [r22-0x71ae1aa3], 1 IID12653 - __ sbbq(Address(r23, r24, (Address::ScaleFactor)1, -0x4a6c210f), 1); // sbb qword ptr [r23+r24*2-0x4a6c210f], 1 IID12654 - __ sbbq(Address(r24, r25, (Address::ScaleFactor)1, -0x4e5924c3), 1); // sbb qword ptr [r24+r25*2-0x4e5924c3], 1 IID12655 - __ sbbq(Address(r25, r26, (Address::ScaleFactor)3, -0x4176e9e), 1); // sbb qword ptr [r25+r26*8-0x4176e9e], 1 IID12656 - __ sbbq(Address(r26, r27, (Address::ScaleFactor)3, -0x58cb7040), 1); // sbb qword ptr [r26+r27*8-0x58cb7040], 1 IID12657 - __ sbbq(Address(r27, r28, (Address::ScaleFactor)0, -0x3803d926), 1); // sbb qword ptr [r27+r28*1-0x3803d926], 1 IID12658 - __ sbbq(Address(r28, r29, (Address::ScaleFactor)3, -0x2ba97f14), 1); // sbb qword ptr [r28+r29*8-0x2ba97f14], 1 IID12659 - __ sbbq(Address(r29, r30, (Address::ScaleFactor)0, -0x63fdc159), 1); // sbb qword ptr [r29+r30*1-0x63fdc159], 1 IID12660 - __ sbbq(Address(r30, r31, (Address::ScaleFactor)1, +0x3d8925a), 1); // sbb qword ptr [r30+r31*2+0x3d8925a], 1 IID12661 - __ sbbq(Address(r31, rcx, (Address::ScaleFactor)2, -0x4d40f903), 1); // sbb qword ptr [r31+rcx*4-0x4d40f903], 1 IID12662 - __ sbbq(Address(rcx, rdx, (Address::ScaleFactor)0, +0x18f13f96), 16); // sbb qword ptr [rcx+rdx*1+0x18f13f96], 16 IID12663 - __ sbbq(Address(rdx, +0x5f0e98be), 16); // sbb qword ptr [rdx+0x5f0e98be], 16 IID12664 - __ sbbq(Address(rbx, r8, (Address::ScaleFactor)0, +0x78edfda1), 16); // sbb qword ptr [rbx+r8*1+0x78edfda1], 16 IID12665 - __ sbbq(Address(r8, r9, (Address::ScaleFactor)2, +0x1fdd8ed4), 16); // sbb qword ptr [r8+r9*4+0x1fdd8ed4], 16 IID12666 - __ sbbq(Address(r9, r10, (Address::ScaleFactor)1, +0x51c00d40), 16); // sbb qword ptr [r9+r10*2+0x51c00d40], 16 IID12667 - __ sbbq(Address(r10, r11, (Address::ScaleFactor)2, -0x4ac14135), 16); // sbb qword ptr [r10+r11*4-0x4ac14135], 16 IID12668 - __ sbbq(Address(r11, r12, (Address::ScaleFactor)3, -0x278180a2), 16); // sbb qword ptr [r11+r12*8-0x278180a2], 16 IID12669 - __ sbbq(Address(r12, r13, (Address::ScaleFactor)2, -0x19463b0b), 16); // sbb qword ptr [r12+r13*4-0x19463b0b], 16 IID12670 - __ sbbq(Address(r13, r14, (Address::ScaleFactor)3, +0x165bf58), 16); // sbb qword ptr [r13+r14*8+0x165bf58], 16 IID12671 - __ sbbq(Address(r14, r15, (Address::ScaleFactor)3, -0x3da34eba), 16); // sbb qword ptr [r14+r15*8-0x3da34eba], 16 IID12672 - __ sbbq(Address(r15, -0x770d7f23), 16); // sbb qword ptr [r15-0x770d7f23], 16 IID12673 - __ sbbq(Address(r16, r17, (Address::ScaleFactor)3, +0x280004d8), 16); // sbb qword ptr [r16+r17*8+0x280004d8], 16 IID12674 - __ sbbq(Address(r17, r18, (Address::ScaleFactor)2, -0x3ed3ed9), 16); // sbb qword ptr [r17+r18*4-0x3ed3ed9], 16 IID12675 - __ sbbq(Address(r18, -0x9317a29), 16); // sbb qword ptr [r18-0x9317a29], 16 IID12676 - __ sbbq(Address(r19, r20, (Address::ScaleFactor)0, +0xa91954d), 16); // sbb qword ptr [r19+r20*1+0xa91954d], 16 IID12677 - __ sbbq(Address(r20, r21, (Address::ScaleFactor)3, +0xc6ffb9e), 16); // sbb qword ptr [r20+r21*8+0xc6ffb9e], 16 IID12678 - __ sbbq(Address(r21, r22, (Address::ScaleFactor)0, -0x3f94dad), 16); // sbb qword ptr [r21+r22*1-0x3f94dad], 16 IID12679 - __ sbbq(Address(r22, r23, (Address::ScaleFactor)2, -0x60085037), 16); // sbb qword ptr [r22+r23*4-0x60085037], 16 IID12680 - __ sbbq(Address(r23, r24, (Address::ScaleFactor)2, +0x7fb549d9), 16); // sbb qword ptr [r23+r24*4+0x7fb549d9], 16 IID12681 - __ sbbq(Address(r24, r25, (Address::ScaleFactor)0, -0x5424879c), 16); // sbb qword ptr [r24+r25*1-0x5424879c], 16 IID12682 - __ sbbq(Address(r25, r26, (Address::ScaleFactor)2, +0x19d81826), 16); // sbb qword ptr [r25+r26*4+0x19d81826], 16 IID12683 - __ sbbq(Address(r26, r27, (Address::ScaleFactor)3, +0x610b0a6d), 16); // sbb qword ptr [r26+r27*8+0x610b0a6d], 16 IID12684 - __ sbbq(Address(r27, r28, (Address::ScaleFactor)1, +0x4ead8613), 16); // sbb qword ptr [r27+r28*2+0x4ead8613], 16 IID12685 - __ sbbq(Address(r28, r29, (Address::ScaleFactor)3, +0x4da2b6a3), 16); // sbb qword ptr [r28+r29*8+0x4da2b6a3], 16 IID12686 - __ sbbq(Address(r29, r30, (Address::ScaleFactor)2, +0x5eeb8d04), 16); // sbb qword ptr [r29+r30*4+0x5eeb8d04], 16 IID12687 - __ sbbq(Address(r30, -0x6c90ba2c), 16); // sbb qword ptr [r30-0x6c90ba2c], 16 IID12688 - __ sbbq(Address(r31, rcx, (Address::ScaleFactor)3, -0x795f3df6), 16); // sbb qword ptr [r31+rcx*8-0x795f3df6], 16 IID12689 - __ sbbq(Address(rcx, rdx, (Address::ScaleFactor)2, +0x251a832e), 256); // sbb qword ptr [rcx+rdx*4+0x251a832e], 256 IID12690 - __ sbbq(Address(rdx, rbx, (Address::ScaleFactor)0, +0x1181e71d), 256); // sbb qword ptr [rdx+rbx*1+0x1181e71d], 256 IID12691 - __ sbbq(Address(rbx, r8, (Address::ScaleFactor)3, -0x7f9ce11a), 256); // sbb qword ptr [rbx+r8*8-0x7f9ce11a], 256 IID12692 - __ sbbq(Address(r8, r9, (Address::ScaleFactor)0, +0x1d5189d4), 256); // sbb qword ptr [r8+r9*1+0x1d5189d4], 256 IID12693 - __ sbbq(Address(r9, r10, (Address::ScaleFactor)3, +0x3e47daff), 256); // sbb qword ptr [r9+r10*8+0x3e47daff], 256 IID12694 - __ sbbq(Address(r10, r11, (Address::ScaleFactor)3, -0x4de69d85), 256); // sbb qword ptr [r10+r11*8-0x4de69d85], 256 IID12695 - __ sbbq(Address(r11, r12, (Address::ScaleFactor)3, -0x24118447), 256); // sbb qword ptr [r11+r12*8-0x24118447], 256 IID12696 - __ sbbq(Address(r12, r13, (Address::ScaleFactor)0, -0x6887a9e7), 256); // sbb qword ptr [r12+r13*1-0x6887a9e7], 256 IID12697 - __ sbbq(Address(r13, r14, (Address::ScaleFactor)0, +0x1e6ab9b3), 256); // sbb qword ptr [r13+r14*1+0x1e6ab9b3], 256 IID12698 - __ sbbq(Address(r14, +0x12b446ae), 256); // sbb qword ptr [r14+0x12b446ae], 256 IID12699 - __ sbbq(Address(r15, r16, (Address::ScaleFactor)1, -0xe616ac4), 256); // sbb qword ptr [r15+r16*2-0xe616ac4], 256 IID12700 - __ sbbq(Address(r16, r17, (Address::ScaleFactor)3, +0x1f694ce9), 256); // sbb qword ptr [r16+r17*8+0x1f694ce9], 256 IID12701 - __ sbbq(Address(r17, r18, (Address::ScaleFactor)0, +0x46528924), 256); // sbb qword ptr [r17+r18*1+0x46528924], 256 IID12702 - __ sbbq(Address(r18, r19, (Address::ScaleFactor)0, +0x5add9e3a), 256); // sbb qword ptr [r18+r19*1+0x5add9e3a], 256 IID12703 - __ sbbq(Address(r19, +0x4df285bc), 256); // sbb qword ptr [r19+0x4df285bc], 256 IID12704 - __ sbbq(Address(r20, r21, (Address::ScaleFactor)3, -0x1ace25d9), 256); // sbb qword ptr [r20+r21*8-0x1ace25d9], 256 IID12705 - __ sbbq(Address(r21, r22, (Address::ScaleFactor)2, +0x44f55296), 256); // sbb qword ptr [r21+r22*4+0x44f55296], 256 IID12706 - __ sbbq(Address(r22, r23, (Address::ScaleFactor)0, +0x37988994), 256); // sbb qword ptr [r22+r23*1+0x37988994], 256 IID12707 - __ sbbq(Address(r23, r24, (Address::ScaleFactor)2, -0x99375), 256); // sbb qword ptr [r23+r24*4-0x99375], 256 IID12708 - __ sbbq(Address(r24, r25, (Address::ScaleFactor)2, +0x8a34989), 256); // sbb qword ptr [r24+r25*4+0x8a34989], 256 IID12709 - __ sbbq(Address(r25, r26, (Address::ScaleFactor)0, +0x303b546d), 256); // sbb qword ptr [r25+r26*1+0x303b546d], 256 IID12710 - __ sbbq(Address(r26, r27, (Address::ScaleFactor)2, -0x393ba88), 256); // sbb qword ptr [r26+r27*4-0x393ba88], 256 IID12711 - __ sbbq(Address(r27, r28, (Address::ScaleFactor)3, +0x6b7a8db4), 256); // sbb qword ptr [r27+r28*8+0x6b7a8db4], 256 IID12712 - __ sbbq(Address(r28, +0x7c382ba0), 256); // sbb qword ptr [r28+0x7c382ba0], 256 IID12713 - __ sbbq(Address(r29, r30, (Address::ScaleFactor)0, -0x5fbffcf8), 256); // sbb qword ptr [r29+r30*1-0x5fbffcf8], 256 IID12714 - __ sbbq(Address(r30, r31, (Address::ScaleFactor)0, -0x79144f4d), 256); // sbb qword ptr [r30+r31*1-0x79144f4d], 256 IID12715 - __ sbbq(Address(r31, rcx, (Address::ScaleFactor)1, -0x14e5d80a), 256); // sbb qword ptr [r31+rcx*2-0x14e5d80a], 256 IID12716 - __ sbbq(Address(rcx, rdx, (Address::ScaleFactor)0, -0x6327c10f), 4096); // sbb qword ptr [rcx+rdx*1-0x6327c10f], 4096 IID12717 - __ sbbq(Address(rdx, rbx, (Address::ScaleFactor)2, -0x55475b3d), 4096); // sbb qword ptr [rdx+rbx*4-0x55475b3d], 4096 IID12718 - __ sbbq(Address(rbx, r8, (Address::ScaleFactor)2, +0x5264ef31), 4096); // sbb qword ptr [rbx+r8*4+0x5264ef31], 4096 IID12719 - __ sbbq(Address(r8, r9, (Address::ScaleFactor)3, -0xf30c9e), 4096); // sbb qword ptr [r8+r9*8-0xf30c9e], 4096 IID12720 - __ sbbq(Address(r9, r10, (Address::ScaleFactor)0, +0x8e5f237), 4096); // sbb qword ptr [r9+r10*1+0x8e5f237], 4096 IID12721 - __ sbbq(Address(r10, r11, (Address::ScaleFactor)2, -0x12f044d0), 4096); // sbb qword ptr [r10+r11*4-0x12f044d0], 4096 IID12722 - __ sbbq(Address(r11, r12, (Address::ScaleFactor)2, +0x7e576cd3), 4096); // sbb qword ptr [r11+r12*4+0x7e576cd3], 4096 IID12723 - __ sbbq(Address(r12, +0x31b98d8f), 4096); // sbb qword ptr [r12+0x31b98d8f], 4096 IID12724 - __ sbbq(Address(r13, r14, (Address::ScaleFactor)3, +0x21e43f56), 4096); // sbb qword ptr [r13+r14*8+0x21e43f56], 4096 IID12725 - __ sbbq(Address(r14, +0x74dac303), 4096); // sbb qword ptr [r14+0x74dac303], 4096 IID12726 - __ sbbq(Address(r15, r16, (Address::ScaleFactor)3, -0x7307c83f), 4096); // sbb qword ptr [r15+r16*8-0x7307c83f], 4096 IID12727 - __ sbbq(Address(r16, r17, (Address::ScaleFactor)2, +0x29a07609), 4096); // sbb qword ptr [r16+r17*4+0x29a07609], 4096 IID12728 - __ sbbq(Address(r17, r18, (Address::ScaleFactor)0, +0x7de47057), 4096); // sbb qword ptr [r17+r18*1+0x7de47057], 4096 IID12729 - __ sbbq(Address(r18, r19, (Address::ScaleFactor)2, -0x590c1628), 4096); // sbb qword ptr [r18+r19*4-0x590c1628], 4096 IID12730 - __ sbbq(Address(r19, r20, (Address::ScaleFactor)2, +0x6dea619c), 4096); // sbb qword ptr [r19+r20*4+0x6dea619c], 4096 IID12731 - __ sbbq(Address(r20, r21, (Address::ScaleFactor)0, +0x61432804), 4096); // sbb qword ptr [r20+r21*1+0x61432804], 4096 IID12732 - __ sbbq(Address(r21, r22, (Address::ScaleFactor)3, +0x22e710eb), 4096); // sbb qword ptr [r21+r22*8+0x22e710eb], 4096 IID12733 - __ sbbq(Address(r22, r23, (Address::ScaleFactor)0, +0x57d93bec), 4096); // sbb qword ptr [r22+r23*1+0x57d93bec], 4096 IID12734 - __ sbbq(Address(r23, +0x11298f9), 4096); // sbb qword ptr [r23+0x11298f9], 4096 IID12735 - __ sbbq(Address(r24, r25, (Address::ScaleFactor)0, +0x590bfecd), 4096); // sbb qword ptr [r24+r25*1+0x590bfecd], 4096 IID12736 - __ sbbq(Address(r25, r26, (Address::ScaleFactor)0, -0x40a760b8), 4096); // sbb qword ptr [r25+r26*1-0x40a760b8], 4096 IID12737 - __ sbbq(Address(r26, r27, (Address::ScaleFactor)3, +0x2cffdeb4), 4096); // sbb qword ptr [r26+r27*8+0x2cffdeb4], 4096 IID12738 - __ sbbq(Address(r27, r28, (Address::ScaleFactor)0, +0x1ee6224a), 4096); // sbb qword ptr [r27+r28*1+0x1ee6224a], 4096 IID12739 - __ sbbq(Address(r28, r29, (Address::ScaleFactor)0, +0x3861c109), 4096); // sbb qword ptr [r28+r29*1+0x3861c109], 4096 IID12740 - __ sbbq(Address(r29, +0x4ae5f94d), 4096); // sbb qword ptr [r29+0x4ae5f94d], 4096 IID12741 - __ sbbq(Address(r30, +0x349de57b), 4096); // sbb qword ptr [r30+0x349de57b], 4096 IID12742 - __ sbbq(Address(r31, rcx, (Address::ScaleFactor)3, -0x17bd71db), 4096); // sbb qword ptr [r31+rcx*8-0x17bd71db], 4096 IID12743 - __ sbbq(Address(rcx, rdx, (Address::ScaleFactor)0, -0x64eb0dfd), 65536); // sbb qword ptr [rcx+rdx*1-0x64eb0dfd], 65536 IID12744 - __ sbbq(Address(rdx, -0x30af5e6), 65536); // sbb qword ptr [rdx-0x30af5e6], 65536 IID12745 - __ sbbq(Address(rbx, r8, (Address::ScaleFactor)0, -0x559ab1b3), 65536); // sbb qword ptr [rbx+r8*1-0x559ab1b3], 65536 IID12746 - __ sbbq(Address(r8, +0x208bb445), 65536); // sbb qword ptr [r8+0x208bb445], 65536 IID12747 - __ sbbq(Address(r9, r10, (Address::ScaleFactor)0, +0x46271099), 65536); // sbb qword ptr [r9+r10*1+0x46271099], 65536 IID12748 - __ sbbq(Address(r10, r11, (Address::ScaleFactor)2, -0x1543fde6), 65536); // sbb qword ptr [r10+r11*4-0x1543fde6], 65536 IID12749 - __ sbbq(Address(r11, r12, (Address::ScaleFactor)3, +0x6dddea48), 65536); // sbb qword ptr [r11+r12*8+0x6dddea48], 65536 IID12750 - __ sbbq(Address(r12, r13, (Address::ScaleFactor)2, +0x5e5840f4), 65536); // sbb qword ptr [r12+r13*4+0x5e5840f4], 65536 IID12751 - __ sbbq(Address(r13, r14, (Address::ScaleFactor)1, +0x7889090a), 65536); // sbb qword ptr [r13+r14*2+0x7889090a], 65536 IID12752 - __ sbbq(Address(r14, r15, (Address::ScaleFactor)2, -0x2e3be6ef), 65536); // sbb qword ptr [r14+r15*4-0x2e3be6ef], 65536 IID12753 - __ sbbq(Address(r15, r16, (Address::ScaleFactor)0, +0x70760f20), 65536); // sbb qword ptr [r15+r16*1+0x70760f20], 65536 IID12754 - __ sbbq(Address(r16, r17, (Address::ScaleFactor)0, +0x398dab6), 65536); // sbb qword ptr [r16+r17*1+0x398dab6], 65536 IID12755 - __ sbbq(Address(r17, r18, (Address::ScaleFactor)1, -0x4c120910), 65536); // sbb qword ptr [r17+r18*2-0x4c120910], 65536 IID12756 - __ sbbq(Address(r18, +0x4dd124b9), 65536); // sbb qword ptr [r18+0x4dd124b9], 65536 IID12757 - __ sbbq(Address(r19, r20, (Address::ScaleFactor)0, -0x1a1055a1), 65536); // sbb qword ptr [r19+r20*1-0x1a1055a1], 65536 IID12758 - __ sbbq(Address(r20, r21, (Address::ScaleFactor)2, -0x4c3d0dec), 65536); // sbb qword ptr [r20+r21*4-0x4c3d0dec], 65536 IID12759 - __ sbbq(Address(r21, r22, (Address::ScaleFactor)1, +0x286f1110), 65536); // sbb qword ptr [r21+r22*2+0x286f1110], 65536 IID12760 - __ sbbq(Address(r22, r23, (Address::ScaleFactor)0, -0x5e7e3496), 65536); // sbb qword ptr [r22+r23*1-0x5e7e3496], 65536 IID12761 - __ sbbq(Address(r23, r24, (Address::ScaleFactor)1, +0x1c2289cf), 65536); // sbb qword ptr [r23+r24*2+0x1c2289cf], 65536 IID12762 - __ sbbq(Address(r24, r25, (Address::ScaleFactor)3, +0x267a65cf), 65536); // sbb qword ptr [r24+r25*8+0x267a65cf], 65536 IID12763 - __ sbbq(Address(r25, r26, (Address::ScaleFactor)0, -0x6a932048), 65536); // sbb qword ptr [r25+r26*1-0x6a932048], 65536 IID12764 - __ sbbq(Address(r26, r27, (Address::ScaleFactor)1, -0x66dda932), 65536); // sbb qword ptr [r26+r27*2-0x66dda932], 65536 IID12765 - __ sbbq(Address(r27, r28, (Address::ScaleFactor)2, +0x7ca23dc7), 65536); // sbb qword ptr [r27+r28*4+0x7ca23dc7], 65536 IID12766 - __ sbbq(Address(r28, r29, (Address::ScaleFactor)3, -0x30a9add6), 65536); // sbb qword ptr [r28+r29*8-0x30a9add6], 65536 IID12767 - __ sbbq(Address(r29, +0x398e3fcc), 65536); // sbb qword ptr [r29+0x398e3fcc], 65536 IID12768 - __ sbbq(Address(r30, r31, (Address::ScaleFactor)3, +0x66f672b3), 65536); // sbb qword ptr [r30+r31*8+0x66f672b3], 65536 IID12769 - __ sbbq(Address(r31, -0x57b8753), 65536); // sbb qword ptr [r31-0x57b8753], 65536 IID12770 - __ sbbq(Address(rcx, rdx, (Address::ScaleFactor)1, +0x71f00e8c), 1048576); // sbb qword ptr [rcx+rdx*2+0x71f00e8c], 1048576 IID12771 - __ sbbq(Address(rdx, rbx, (Address::ScaleFactor)1, +0x2617f0ba), 1048576); // sbb qword ptr [rdx+rbx*2+0x2617f0ba], 1048576 IID12772 - __ sbbq(Address(rbx, +0x67720a0a), 1048576); // sbb qword ptr [rbx+0x67720a0a], 1048576 IID12773 - __ sbbq(Address(r8, r9, (Address::ScaleFactor)0, +0x18dc7a4f), 1048576); // sbb qword ptr [r8+r9*1+0x18dc7a4f], 1048576 IID12774 - __ sbbq(Address(r9, +0x128e725c), 1048576); // sbb qword ptr [r9+0x128e725c], 1048576 IID12775 - __ sbbq(Address(r10, r11, (Address::ScaleFactor)0, +0x5df3d8f1), 1048576); // sbb qword ptr [r10+r11*1+0x5df3d8f1], 1048576 IID12776 - __ sbbq(Address(r11, r12, (Address::ScaleFactor)0, -0x255014d9), 1048576); // sbb qword ptr [r11+r12*1-0x255014d9], 1048576 IID12777 - __ sbbq(Address(r12, -0x30c990fb), 1048576); // sbb qword ptr [r12-0x30c990fb], 1048576 IID12778 - __ sbbq(Address(r13, r14, (Address::ScaleFactor)2, +0x2da50ae6), 1048576); // sbb qword ptr [r13+r14*4+0x2da50ae6], 1048576 IID12779 - __ sbbq(Address(r14, r15, (Address::ScaleFactor)3, -0xf672e5), 1048576); // sbb qword ptr [r14+r15*8-0xf672e5], 1048576 IID12780 - __ sbbq(Address(r15, r16, (Address::ScaleFactor)2, -0x1b6b5dd2), 1048576); // sbb qword ptr [r15+r16*4-0x1b6b5dd2], 1048576 IID12781 - __ sbbq(Address(r16, r17, (Address::ScaleFactor)2, +0x7b28b19e), 1048576); // sbb qword ptr [r16+r17*4+0x7b28b19e], 1048576 IID12782 - __ sbbq(Address(r17, r18, (Address::ScaleFactor)2, -0x4a1fb395), 1048576); // sbb qword ptr [r17+r18*4-0x4a1fb395], 1048576 IID12783 - __ sbbq(Address(r18, r19, (Address::ScaleFactor)2, -0x51032a4e), 1048576); // sbb qword ptr [r18+r19*4-0x51032a4e], 1048576 IID12784 - __ sbbq(Address(r19, r20, (Address::ScaleFactor)2, -0x1eb61a81), 1048576); // sbb qword ptr [r19+r20*4-0x1eb61a81], 1048576 IID12785 - __ sbbq(Address(r20, r21, (Address::ScaleFactor)0, -0x7129d83c), 1048576); // sbb qword ptr [r20+r21*1-0x7129d83c], 1048576 IID12786 - __ sbbq(Address(r21, r22, (Address::ScaleFactor)2, +0x23eb87a4), 1048576); // sbb qword ptr [r21+r22*4+0x23eb87a4], 1048576 IID12787 - __ sbbq(Address(r22, +0x2dbfd1fe), 1048576); // sbb qword ptr [r22+0x2dbfd1fe], 1048576 IID12788 - __ sbbq(Address(r23, r24, (Address::ScaleFactor)1, +0x5b3f4e67), 1048576); // sbb qword ptr [r23+r24*2+0x5b3f4e67], 1048576 IID12789 - __ sbbq(Address(r24, +0xef2d1b3), 1048576); // sbb qword ptr [r24+0xef2d1b3], 1048576 IID12790 - __ sbbq(Address(r25, r26, (Address::ScaleFactor)3, +0x49cae15), 1048576); // sbb qword ptr [r25+r26*8+0x49cae15], 1048576 IID12791 - __ sbbq(Address(r26, r27, (Address::ScaleFactor)1, +0x7fb55ead), 1048576); // sbb qword ptr [r26+r27*2+0x7fb55ead], 1048576 IID12792 - __ sbbq(Address(r27, r28, (Address::ScaleFactor)1, +0x31446f18), 1048576); // sbb qword ptr [r27+r28*2+0x31446f18], 1048576 IID12793 - __ sbbq(Address(r28, r29, (Address::ScaleFactor)0, +0x6d1944af), 1048576); // sbb qword ptr [r28+r29*1+0x6d1944af], 1048576 IID12794 - __ sbbq(Address(r29, -0x663085ab), 1048576); // sbb qword ptr [r29-0x663085ab], 1048576 IID12795 - __ sbbq(Address(r30, r31, (Address::ScaleFactor)1, -0x4b956920), 1048576); // sbb qword ptr [r30+r31*2-0x4b956920], 1048576 IID12796 - __ sbbq(Address(r31, rcx, (Address::ScaleFactor)2, +0x652853d4), 1048576); // sbb qword ptr [r31+rcx*4+0x652853d4], 1048576 IID12797 - __ sbbq(Address(rcx, rdx, (Address::ScaleFactor)0, -0x59ba58), 16777216); // sbb qword ptr [rcx+rdx*1-0x59ba58], 16777216 IID12798 - __ sbbq(Address(rdx, rbx, (Address::ScaleFactor)0, +0x58961b9c), 16777216); // sbb qword ptr [rdx+rbx*1+0x58961b9c], 16777216 IID12799 - __ sbbq(Address(rbx, r8, (Address::ScaleFactor)0, -0x6f86b9a2), 16777216); // sbb qword ptr [rbx+r8*1-0x6f86b9a2], 16777216 IID12800 - __ sbbq(Address(r8, r9, (Address::ScaleFactor)2, -0x1b4bb829), 16777216); // sbb qword ptr [r8+r9*4-0x1b4bb829], 16777216 IID12801 - __ sbbq(Address(r9, r10, (Address::ScaleFactor)1, -0x461cc065), 16777216); // sbb qword ptr [r9+r10*2-0x461cc065], 16777216 IID12802 - __ sbbq(Address(r10, r11, (Address::ScaleFactor)0, -0x44f9ddda), 16777216); // sbb qword ptr [r10+r11*1-0x44f9ddda], 16777216 IID12803 - __ sbbq(Address(r11, r12, (Address::ScaleFactor)2, -0x725863b1), 16777216); // sbb qword ptr [r11+r12*4-0x725863b1], 16777216 IID12804 - __ sbbq(Address(r12, r13, (Address::ScaleFactor)0, -0x4a4cf9a4), 16777216); // sbb qword ptr [r12+r13*1-0x4a4cf9a4], 16777216 IID12805 - __ sbbq(Address(r13, r14, (Address::ScaleFactor)1, +0x3180921a), 16777216); // sbb qword ptr [r13+r14*2+0x3180921a], 16777216 IID12806 - __ sbbq(Address(r14, r15, (Address::ScaleFactor)3, +0x11f50311), 16777216); // sbb qword ptr [r14+r15*8+0x11f50311], 16777216 IID12807 - __ sbbq(Address(r15, r16, (Address::ScaleFactor)2, -0x7743b38b), 16777216); // sbb qword ptr [r15+r16*4-0x7743b38b], 16777216 IID12808 - __ sbbq(Address(r16, +0x389f73e4), 16777216); // sbb qword ptr [r16+0x389f73e4], 16777216 IID12809 - __ sbbq(Address(r17, r18, (Address::ScaleFactor)1, +0x669e22d4), 16777216); // sbb qword ptr [r17+r18*2+0x669e22d4], 16777216 IID12810 - __ sbbq(Address(r18, r19, (Address::ScaleFactor)3, +0x3b1ac887), 16777216); // sbb qword ptr [r18+r19*8+0x3b1ac887], 16777216 IID12811 - __ sbbq(Address(r19, r20, (Address::ScaleFactor)3, -0x2ff6497a), 16777216); // sbb qword ptr [r19+r20*8-0x2ff6497a], 16777216 IID12812 - __ sbbq(Address(r20, r21, (Address::ScaleFactor)3, +0x6e572dac), 16777216); // sbb qword ptr [r20+r21*8+0x6e572dac], 16777216 IID12813 - __ sbbq(Address(r21, r22, (Address::ScaleFactor)0, -0x354a1e87), 16777216); // sbb qword ptr [r21+r22*1-0x354a1e87], 16777216 IID12814 - __ sbbq(Address(r22, r23, (Address::ScaleFactor)2, -0x14ad6d66), 16777216); // sbb qword ptr [r22+r23*4-0x14ad6d66], 16777216 IID12815 - __ sbbq(Address(r23, r24, (Address::ScaleFactor)0, +0xa53cb24), 16777216); // sbb qword ptr [r23+r24*1+0xa53cb24], 16777216 IID12816 - __ sbbq(Address(r24, r25, (Address::ScaleFactor)3, -0x4d577ff9), 16777216); // sbb qword ptr [r24+r25*8-0x4d577ff9], 16777216 IID12817 - __ sbbq(Address(r25, r26, (Address::ScaleFactor)3, +0x2160ecc7), 16777216); // sbb qword ptr [r25+r26*8+0x2160ecc7], 16777216 IID12818 - __ sbbq(Address(r26, r27, (Address::ScaleFactor)1, +0x6823f97e), 16777216); // sbb qword ptr [r26+r27*2+0x6823f97e], 16777216 IID12819 - __ sbbq(Address(r27, -0x1b1deba0), 16777216); // sbb qword ptr [r27-0x1b1deba0], 16777216 IID12820 - __ sbbq(Address(r28, r29, (Address::ScaleFactor)3, +0x4209a7d5), 16777216); // sbb qword ptr [r28+r29*8+0x4209a7d5], 16777216 IID12821 - __ sbbq(Address(r29, r30, (Address::ScaleFactor)1, -0x388725a9), 16777216); // sbb qword ptr [r29+r30*2-0x388725a9], 16777216 IID12822 - __ sbbq(Address(r30, r31, (Address::ScaleFactor)1, +0x67aa044f), 16777216); // sbb qword ptr [r30+r31*2+0x67aa044f], 16777216 IID12823 - __ sbbq(Address(r31, rcx, (Address::ScaleFactor)0, -0x77d7938e), 16777216); // sbb qword ptr [r31+rcx*1-0x77d7938e], 16777216 IID12824 - __ sbbq(Address(rcx, -0x5f2ff689), 268435456); // sbb qword ptr [rcx-0x5f2ff689], 268435456 IID12825 - __ sbbq(Address(rdx, rbx, (Address::ScaleFactor)1, +0x33a9b12a), 268435456); // sbb qword ptr [rdx+rbx*2+0x33a9b12a], 268435456 IID12826 - __ sbbq(Address(rbx, r8, (Address::ScaleFactor)3, -0x420ac009), 268435456); // sbb qword ptr [rbx+r8*8-0x420ac009], 268435456 IID12827 - __ sbbq(Address(r8, r9, (Address::ScaleFactor)1, -0x60d59369), 268435456); // sbb qword ptr [r8+r9*2-0x60d59369], 268435456 IID12828 - __ sbbq(Address(r9, -0x5ef123c), 268435456); // sbb qword ptr [r9-0x5ef123c], 268435456 IID12829 - __ sbbq(Address(r10, r11, (Address::ScaleFactor)0, -0xd007ab9), 268435456); // sbb qword ptr [r10+r11*1-0xd007ab9], 268435456 IID12830 - __ sbbq(Address(r11, r12, (Address::ScaleFactor)2, +0x6d604ca3), 268435456); // sbb qword ptr [r11+r12*4+0x6d604ca3], 268435456 IID12831 - __ sbbq(Address(r12, +0xeb5ebaa), 268435456); // sbb qword ptr [r12+0xeb5ebaa], 268435456 IID12832 - __ sbbq(Address(r13, -0x5a1bdf27), 268435456); // sbb qword ptr [r13-0x5a1bdf27], 268435456 IID12833 - __ sbbq(Address(r14, r15, (Address::ScaleFactor)1, -0x63c4c04b), 268435456); // sbb qword ptr [r14+r15*2-0x63c4c04b], 268435456 IID12834 - __ sbbq(Address(r15, r16, (Address::ScaleFactor)2, -0x23077c4b), 268435456); // sbb qword ptr [r15+r16*4-0x23077c4b], 268435456 IID12835 - __ sbbq(Address(r16, r17, (Address::ScaleFactor)3, +0x6b774067), 268435456); // sbb qword ptr [r16+r17*8+0x6b774067], 268435456 IID12836 - __ sbbq(Address(r17, r18, (Address::ScaleFactor)0, -0x32030e6d), 268435456); // sbb qword ptr [r17+r18*1-0x32030e6d], 268435456 IID12837 - __ sbbq(Address(r18, r19, (Address::ScaleFactor)0, +0x36d7a77d), 268435456); // sbb qword ptr [r18+r19*1+0x36d7a77d], 268435456 IID12838 - __ sbbq(Address(r19, -0x7d0771fd), 268435456); // sbb qword ptr [r19-0x7d0771fd], 268435456 IID12839 - __ sbbq(Address(r20, r21, (Address::ScaleFactor)1, -0x7a9257ba), 268435456); // sbb qword ptr [r20+r21*2-0x7a9257ba], 268435456 IID12840 - __ sbbq(Address(r21, r22, (Address::ScaleFactor)1, +0x78576426), 268435456); // sbb qword ptr [r21+r22*2+0x78576426], 268435456 IID12841 - __ sbbq(Address(r22, r23, (Address::ScaleFactor)3, +0x4d6eef40), 268435456); // sbb qword ptr [r22+r23*8+0x4d6eef40], 268435456 IID12842 - __ sbbq(Address(r23, +0x40f655c8), 268435456); // sbb qword ptr [r23+0x40f655c8], 268435456 IID12843 - __ sbbq(Address(r24, +0x7f41cb2b), 268435456); // sbb qword ptr [r24+0x7f41cb2b], 268435456 IID12844 - __ sbbq(Address(r25, r26, (Address::ScaleFactor)1, +0x2539c50d), 268435456); // sbb qword ptr [r25+r26*2+0x2539c50d], 268435456 IID12845 - __ sbbq(Address(r26, r27, (Address::ScaleFactor)0, +0x1a4a70e9), 268435456); // sbb qword ptr [r26+r27*1+0x1a4a70e9], 268435456 IID12846 - __ sbbq(Address(r27, r28, (Address::ScaleFactor)3, -0xfc70d33), 268435456); // sbb qword ptr [r27+r28*8-0xfc70d33], 268435456 IID12847 - __ sbbq(Address(r28, r29, (Address::ScaleFactor)2, +0x4db72d5e), 268435456); // sbb qword ptr [r28+r29*4+0x4db72d5e], 268435456 IID12848 - __ sbbq(Address(r29, +0x65a7ce34), 268435456); // sbb qword ptr [r29+0x65a7ce34], 268435456 IID12849 - __ sbbq(Address(r30, +0x194ebc90), 268435456); // sbb qword ptr [r30+0x194ebc90], 268435456 IID12850 - __ sbbq(Address(r31, rcx, (Address::ScaleFactor)3, -0xcf2313d), 268435456); // sbb qword ptr [r31+rcx*8-0xcf2313d], 268435456 IID12851 - __ shrq(Address(rcx, rdx, (Address::ScaleFactor)0, +0x65ec3e70), 1); // shr qword ptr [rcx+rdx*1+0x65ec3e70], 1 IID12852 - __ shrq(Address(rdx, rbx, (Address::ScaleFactor)2, +0x51d482dc), 1); // shr qword ptr [rdx+rbx*4+0x51d482dc], 1 IID12853 - __ shrq(Address(rbx, -0x27cb2e81), 1); // shr qword ptr [rbx-0x27cb2e81], 1 IID12854 - __ shrq(Address(r8, +0x6801660d), 1); // shr qword ptr [r8+0x6801660d], 1 IID12855 - __ shrq(Address(r9, r10, (Address::ScaleFactor)3, +0x47d599be), 1); // shr qword ptr [r9+r10*8+0x47d599be], 1 IID12856 - __ shrq(Address(r10, r11, (Address::ScaleFactor)3, +0x7ef24d97), 1); // shr qword ptr [r10+r11*8+0x7ef24d97], 1 IID12857 - __ shrq(Address(r11, r12, (Address::ScaleFactor)0, +0x3eddb768), 1); // shr qword ptr [r11+r12*1+0x3eddb768], 1 IID12858 - __ shrq(Address(r12, r13, (Address::ScaleFactor)0, -0x241f4418), 1); // shr qword ptr [r12+r13*1-0x241f4418], 1 IID12859 - __ shrq(Address(r13, +0x46bdd24), 1); // shr qword ptr [r13+0x46bdd24], 1 IID12860 - __ shrq(Address(r14, r15, (Address::ScaleFactor)2, +0x5ee6a909), 1); // shr qword ptr [r14+r15*4+0x5ee6a909], 1 IID12861 - __ shrq(Address(r15, r16, (Address::ScaleFactor)0, +0x5f0fd600), 1); // shr qword ptr [r15+r16*1+0x5f0fd600], 1 IID12862 - __ shrq(Address(r16, +0xdd36f95), 1); // shr qword ptr [r16+0xdd36f95], 1 IID12863 - __ shrq(Address(r17, r18, (Address::ScaleFactor)1, +0x615b07de), 1); // shr qword ptr [r17+r18*2+0x615b07de], 1 IID12864 - __ shrq(Address(r18, r19, (Address::ScaleFactor)3, +0x2993deb3), 1); // shr qword ptr [r18+r19*8+0x2993deb3], 1 IID12865 - __ shrq(Address(r19, r20, (Address::ScaleFactor)2, -0x6290d7b5), 1); // shr qword ptr [r19+r20*4-0x6290d7b5], 1 IID12866 - __ shrq(Address(r20, r21, (Address::ScaleFactor)2, +0x1eabcc8d), 1); // shr qword ptr [r20+r21*4+0x1eabcc8d], 1 IID12867 - __ shrq(Address(r21, r22, (Address::ScaleFactor)3, -0x4043e234), 1); // shr qword ptr [r21+r22*8-0x4043e234], 1 IID12868 - __ shrq(Address(r22, r23, (Address::ScaleFactor)0, -0x3bb5c556), 1); // shr qword ptr [r22+r23*1-0x3bb5c556], 1 IID12869 - __ shrq(Address(r23, r24, (Address::ScaleFactor)2, +0x7f907d04), 1); // shr qword ptr [r23+r24*4+0x7f907d04], 1 IID12870 - __ shrq(Address(r24, r25, (Address::ScaleFactor)1, +0x6c716522), 1); // shr qword ptr [r24+r25*2+0x6c716522], 1 IID12871 - __ shrq(Address(r25, r26, (Address::ScaleFactor)2, +0x59a4c00e), 1); // shr qword ptr [r25+r26*4+0x59a4c00e], 1 IID12872 - __ shrq(Address(r26, r27, (Address::ScaleFactor)3, -0x50e2dc0f), 1); // shr qword ptr [r26+r27*8-0x50e2dc0f], 1 IID12873 - __ shrq(Address(r27, -0x23980a87), 1); // shr qword ptr [r27-0x23980a87], 1 IID12874 - __ shrq(Address(r28, r29, (Address::ScaleFactor)2, -0x7c93d45a), 1); // shr qword ptr [r28+r29*4-0x7c93d45a], 1 IID12875 - __ shrq(Address(r29, -0x45c4b0ed), 1); // shr qword ptr [r29-0x45c4b0ed], 1 IID12876 - __ shrq(Address(r30, r31, (Address::ScaleFactor)1, +0x446a4cea), 1); // shr qword ptr [r30+r31*2+0x446a4cea], 1 IID12877 - __ shrq(Address(r31, rcx, (Address::ScaleFactor)1, -0xb0a8402), 1); // shr qword ptr [r31+rcx*2-0xb0a8402], 1 IID12878 - __ shrq(Address(rcx, rdx, (Address::ScaleFactor)3, +0x750c4364), 2); // shr qword ptr [rcx+rdx*8+0x750c4364], 2 IID12879 - __ shrq(Address(rdx, rbx, (Address::ScaleFactor)2, -0x6ab50dfe), 2); // shr qword ptr [rdx+rbx*4-0x6ab50dfe], 2 IID12880 - __ shrq(Address(rbx, r8, (Address::ScaleFactor)2, -0x15806bc1), 2); // shr qword ptr [rbx+r8*4-0x15806bc1], 2 IID12881 - __ shrq(Address(r8, r9, (Address::ScaleFactor)3, +0x2c670f3c), 2); // shr qword ptr [r8+r9*8+0x2c670f3c], 2 IID12882 - __ shrq(Address(r9, r10, (Address::ScaleFactor)1, +0x5cffc9de), 2); // shr qword ptr [r9+r10*2+0x5cffc9de], 2 IID12883 - __ shrq(Address(r10, -0x1dfa28c4), 2); // shr qword ptr [r10-0x1dfa28c4], 2 IID12884 - __ shrq(Address(r11, r12, (Address::ScaleFactor)3, +0x754124d), 2); // shr qword ptr [r11+r12*8+0x754124d], 2 IID12885 - __ shrq(Address(r12, +0x20865b22), 2); // shr qword ptr [r12+0x20865b22], 2 IID12886 - __ shrq(Address(r13, r14, (Address::ScaleFactor)3, -0x448ef0b5), 2); // shr qword ptr [r13+r14*8-0x448ef0b5], 2 IID12887 - __ shrq(Address(r14, r15, (Address::ScaleFactor)3, -0x1dc1e707), 2); // shr qword ptr [r14+r15*8-0x1dc1e707], 2 IID12888 - __ shrq(Address(r15, r16, (Address::ScaleFactor)3, +0x21b7a733), 2); // shr qword ptr [r15+r16*8+0x21b7a733], 2 IID12889 - __ shrq(Address(r16, r17, (Address::ScaleFactor)1, +0x38f3e87f), 2); // shr qword ptr [r16+r17*2+0x38f3e87f], 2 IID12890 - __ shrq(Address(r17, -0x34391fc7), 2); // shr qword ptr [r17-0x34391fc7], 2 IID12891 - __ shrq(Address(r18, r19, (Address::ScaleFactor)0, -0x24e7297a), 2); // shr qword ptr [r18+r19*1-0x24e7297a], 2 IID12892 - __ shrq(Address(r19, r20, (Address::ScaleFactor)0, +0x7cabd2e4), 2); // shr qword ptr [r19+r20*1+0x7cabd2e4], 2 IID12893 - __ shrq(Address(r20, r21, (Address::ScaleFactor)3, +0x5237c82d), 2); // shr qword ptr [r20+r21*8+0x5237c82d], 2 IID12894 - __ shrq(Address(r21, -0x4a212da4), 2); // shr qword ptr [r21-0x4a212da4], 2 IID12895 - __ shrq(Address(r22, r23, (Address::ScaleFactor)3, -0x11f17202), 2); // shr qword ptr [r22+r23*8-0x11f17202], 2 IID12896 - __ shrq(Address(r23, r24, (Address::ScaleFactor)3, +0x32561f31), 2); // shr qword ptr [r23+r24*8+0x32561f31], 2 IID12897 - __ shrq(Address(r24, r25, (Address::ScaleFactor)1, -0xa014f86), 2); // shr qword ptr [r24+r25*2-0xa014f86], 2 IID12898 - __ shrq(Address(r25, r26, (Address::ScaleFactor)2, +0x7a0496d0), 2); // shr qword ptr [r25+r26*4+0x7a0496d0], 2 IID12899 - __ shrq(Address(r26, -0x3fce4bb3), 2); // shr qword ptr [r26-0x3fce4bb3], 2 IID12900 - __ shrq(Address(r27, r28, (Address::ScaleFactor)1, -0x19a4684b), 2); // shr qword ptr [r27+r28*2-0x19a4684b], 2 IID12901 - __ shrq(Address(r28, -0x59692a4), 2); // shr qword ptr [r28-0x59692a4], 2 IID12902 - __ shrq(Address(r29, r30, (Address::ScaleFactor)1, -0x2c1375d3), 2); // shr qword ptr [r29+r30*2-0x2c1375d3], 2 IID12903 - __ shrq(Address(r30, -0x11459833), 2); // shr qword ptr [r30-0x11459833], 2 IID12904 - __ shrq(Address(r31, rcx, (Address::ScaleFactor)2, +0x1d77799), 2); // shr qword ptr [r31+rcx*4+0x1d77799], 2 IID12905 - __ shrq(Address(rcx, +0xf48b7a5), 4); // shr qword ptr [rcx+0xf48b7a5], 4 IID12906 - __ shrq(Address(rdx, rbx, (Address::ScaleFactor)1, +0x65736bcf), 4); // shr qword ptr [rdx+rbx*2+0x65736bcf], 4 IID12907 - __ shrq(Address(rbx, r8, (Address::ScaleFactor)2, +0x5ee2c93d), 4); // shr qword ptr [rbx+r8*4+0x5ee2c93d], 4 IID12908 - __ shrq(Address(r8, r9, (Address::ScaleFactor)3, -0x6914465b), 4); // shr qword ptr [r8+r9*8-0x6914465b], 4 IID12909 - __ shrq(Address(r9, r10, (Address::ScaleFactor)3, +0x3eb38e27), 4); // shr qword ptr [r9+r10*8+0x3eb38e27], 4 IID12910 - __ shrq(Address(r10, r11, (Address::ScaleFactor)1, -0x73e13327), 4); // shr qword ptr [r10+r11*2-0x73e13327], 4 IID12911 - __ shrq(Address(r11, r12, (Address::ScaleFactor)0, -0x6dcd52f3), 4); // shr qword ptr [r11+r12*1-0x6dcd52f3], 4 IID12912 - __ shrq(Address(r12, +0x14df3d31), 4); // shr qword ptr [r12+0x14df3d31], 4 IID12913 - __ shrq(Address(r13, r14, (Address::ScaleFactor)3, -0xac8e977), 4); // shr qword ptr [r13+r14*8-0xac8e977], 4 IID12914 - __ shrq(Address(r14, r15, (Address::ScaleFactor)1, +0x4c903886), 4); // shr qword ptr [r14+r15*2+0x4c903886], 4 IID12915 - __ shrq(Address(r15, r16, (Address::ScaleFactor)3, -0x4c761483), 4); // shr qword ptr [r15+r16*8-0x4c761483], 4 IID12916 - __ shrq(Address(r16, r17, (Address::ScaleFactor)1, +0x69de175f), 4); // shr qword ptr [r16+r17*2+0x69de175f], 4 IID12917 - __ shrq(Address(r17, -0x76a872f1), 4); // shr qword ptr [r17-0x76a872f1], 4 IID12918 - __ shrq(Address(r18, r19, (Address::ScaleFactor)3, +0x72298917), 4); // shr qword ptr [r18+r19*8+0x72298917], 4 IID12919 - __ shrq(Address(r19, -0x4d39ac49), 4); // shr qword ptr [r19-0x4d39ac49], 4 IID12920 - __ shrq(Address(r20, r21, (Address::ScaleFactor)1, -0x2867e817), 4); // shr qword ptr [r20+r21*2-0x2867e817], 4 IID12921 - __ shrq(Address(r21, r22, (Address::ScaleFactor)1, -0x609a069d), 4); // shr qword ptr [r21+r22*2-0x609a069d], 4 IID12922 - __ shrq(Address(r22, -0x2d223ec2), 4); // shr qword ptr [r22-0x2d223ec2], 4 IID12923 - __ shrq(Address(r23, r24, (Address::ScaleFactor)2, -0x3b2a5d08), 4); // shr qword ptr [r23+r24*4-0x3b2a5d08], 4 IID12924 - __ shrq(Address(r24, r25, (Address::ScaleFactor)1, -0x555f41a8), 4); // shr qword ptr [r24+r25*2-0x555f41a8], 4 IID12925 - __ shrq(Address(r25, r26, (Address::ScaleFactor)0, +0x28dfe773), 4); // shr qword ptr [r25+r26*1+0x28dfe773], 4 IID12926 - __ shrq(Address(r26, +0x688d44a6), 4); // shr qword ptr [r26+0x688d44a6], 4 IID12927 - __ shrq(Address(r27, r28, (Address::ScaleFactor)3, -0x240b3ffb), 4); // shr qword ptr [r27+r28*8-0x240b3ffb], 4 IID12928 - __ shrq(Address(r28, -0x794d3066), 4); // shr qword ptr [r28-0x794d3066], 4 IID12929 - __ shrq(Address(r29, r30, (Address::ScaleFactor)2, -0x5d86af71), 4); // shr qword ptr [r29+r30*4-0x5d86af71], 4 IID12930 - __ shrq(Address(r30, +0x599ad28d), 4); // shr qword ptr [r30+0x599ad28d], 4 IID12931 - __ shrq(Address(r31, rcx, (Address::ScaleFactor)1, +0x2a4d36f0), 4); // shr qword ptr [r31+rcx*2+0x2a4d36f0], 4 IID12932 - __ shrq(Address(rcx, rdx, (Address::ScaleFactor)3, +0x4a08b3f0), 8); // shr qword ptr [rcx+rdx*8+0x4a08b3f0], 8 IID12933 - __ shrq(Address(rdx, rbx, (Address::ScaleFactor)1, +0x4baa4615), 8); // shr qword ptr [rdx+rbx*2+0x4baa4615], 8 IID12934 - __ shrq(Address(rbx, +0xd5c2e66), 8); // shr qword ptr [rbx+0xd5c2e66], 8 IID12935 - __ shrq(Address(r8, r9, (Address::ScaleFactor)3, +0x46ddd974), 8); // shr qword ptr [r8+r9*8+0x46ddd974], 8 IID12936 - __ shrq(Address(r9, +0x23b9fc7b), 8); // shr qword ptr [r9+0x23b9fc7b], 8 IID12937 - __ shrq(Address(r10, r11, (Address::ScaleFactor)1, +0x7659e58d), 8); // shr qword ptr [r10+r11*2+0x7659e58d], 8 IID12938 - __ shrq(Address(r11, r12, (Address::ScaleFactor)3, +0x594c1dae), 8); // shr qword ptr [r11+r12*8+0x594c1dae], 8 IID12939 - __ shrq(Address(r12, +0x3f175ca2), 8); // shr qword ptr [r12+0x3f175ca2], 8 IID12940 - __ shrq(Address(r13, r14, (Address::ScaleFactor)2, +0x3746b968), 8); // shr qword ptr [r13+r14*4+0x3746b968], 8 IID12941 - __ shrq(Address(r14, r15, (Address::ScaleFactor)2, -0x33827f66), 8); // shr qword ptr [r14+r15*4-0x33827f66], 8 IID12942 - __ shrq(Address(r15, +0x4c485276), 8); // shr qword ptr [r15+0x4c485276], 8 IID12943 - __ shrq(Address(r16, r17, (Address::ScaleFactor)1, -0x422294f8), 8); // shr qword ptr [r16+r17*2-0x422294f8], 8 IID12944 - __ shrq(Address(r17, r18, (Address::ScaleFactor)2, -0x26531297), 8); // shr qword ptr [r17+r18*4-0x26531297], 8 IID12945 - __ shrq(Address(r18, r19, (Address::ScaleFactor)1, +0x1b77d43d), 8); // shr qword ptr [r18+r19*2+0x1b77d43d], 8 IID12946 - __ shrq(Address(r19, -0x27b5d99a), 8); // shr qword ptr [r19-0x27b5d99a], 8 IID12947 - __ shrq(Address(r20, r21, (Address::ScaleFactor)0, +0x1b347205), 8); // shr qword ptr [r20+r21*1+0x1b347205], 8 IID12948 - __ shrq(Address(r21, r22, (Address::ScaleFactor)0, +0x5f7f100), 8); // shr qword ptr [r21+r22*1+0x5f7f100], 8 IID12949 - __ shrq(Address(r22, r23, (Address::ScaleFactor)3, +0x219dfaa0), 8); // shr qword ptr [r22+r23*8+0x219dfaa0], 8 IID12950 - __ shrq(Address(r23, r24, (Address::ScaleFactor)1, -0x41404906), 8); // shr qword ptr [r23+r24*2-0x41404906], 8 IID12951 - __ shrq(Address(r24, r25, (Address::ScaleFactor)0, +0x2443670e), 8); // shr qword ptr [r24+r25*1+0x2443670e], 8 IID12952 - __ shrq(Address(r25, r26, (Address::ScaleFactor)1, +0x5e023d4e), 8); // shr qword ptr [r25+r26*2+0x5e023d4e], 8 IID12953 - __ shrq(Address(r26, -0x6dbc2135), 8); // shr qword ptr [r26-0x6dbc2135], 8 IID12954 - __ shrq(Address(r27, +0x73e59f4b), 8); // shr qword ptr [r27+0x73e59f4b], 8 IID12955 - __ shrq(Address(r28, -0xcdfef12), 8); // shr qword ptr [r28-0xcdfef12], 8 IID12956 - __ shrq(Address(r29, r30, (Address::ScaleFactor)0, +0x1636e96a), 8); // shr qword ptr [r29+r30*1+0x1636e96a], 8 IID12957 - __ shrq(Address(r30, +0x34a5e736), 8); // shr qword ptr [r30+0x34a5e736], 8 IID12958 - __ shrq(Address(r31, rcx, (Address::ScaleFactor)0, +0x3f200335), 8); // shr qword ptr [r31+rcx*1+0x3f200335], 8 IID12959 - __ shrq(Address(rcx, rdx, (Address::ScaleFactor)0, +0x73db2b4c), 16); // shr qword ptr [rcx+rdx*1+0x73db2b4c], 16 IID12960 - __ shrq(Address(rdx, rbx, (Address::ScaleFactor)1, -0x4e731d36), 16); // shr qword ptr [rdx+rbx*2-0x4e731d36], 16 IID12961 - __ shrq(Address(rbx, -0x118dc3ac), 16); // shr qword ptr [rbx-0x118dc3ac], 16 IID12962 - __ shrq(Address(r8, +0x575dd47a), 16); // shr qword ptr [r8+0x575dd47a], 16 IID12963 - __ shrq(Address(r9, r10, (Address::ScaleFactor)2, -0x4ded2001), 16); // shr qword ptr [r9+r10*4-0x4ded2001], 16 IID12964 - __ shrq(Address(r10, r11, (Address::ScaleFactor)0, -0x28316d95), 16); // shr qword ptr [r10+r11*1-0x28316d95], 16 IID12965 - __ shrq(Address(r11, r12, (Address::ScaleFactor)3, -0x2daacc0d), 16); // shr qword ptr [r11+r12*8-0x2daacc0d], 16 IID12966 - __ shrq(Address(r12, r13, (Address::ScaleFactor)3, +0x163df53), 16); // shr qword ptr [r12+r13*8+0x163df53], 16 IID12967 - __ shrq(Address(r13, r14, (Address::ScaleFactor)1, +0x16a63ff6), 16); // shr qword ptr [r13+r14*2+0x16a63ff6], 16 IID12968 - __ shrq(Address(r14, r15, (Address::ScaleFactor)2, +0x524d0e72), 16); // shr qword ptr [r14+r15*4+0x524d0e72], 16 IID12969 - __ shrq(Address(r15, +0x6cb390a2), 16); // shr qword ptr [r15+0x6cb390a2], 16 IID12970 - __ shrq(Address(r16, r17, (Address::ScaleFactor)2, -0x64ee92dc), 16); // shr qword ptr [r16+r17*4-0x64ee92dc], 16 IID12971 - __ shrq(Address(r17, r18, (Address::ScaleFactor)3, -0x17b3313c), 16); // shr qword ptr [r17+r18*8-0x17b3313c], 16 IID12972 - __ shrq(Address(r18, r19, (Address::ScaleFactor)0, +0x34072f0a), 16); // shr qword ptr [r18+r19*1+0x34072f0a], 16 IID12973 - __ shrq(Address(r19, r20, (Address::ScaleFactor)0, +0xc496435), 16); // shr qword ptr [r19+r20*1+0xc496435], 16 IID12974 - __ shrq(Address(r20, r21, (Address::ScaleFactor)0, +0x19e0cde4), 16); // shr qword ptr [r20+r21*1+0x19e0cde4], 16 IID12975 - __ shrq(Address(r21, r22, (Address::ScaleFactor)0, +0x20e565ff), 16); // shr qword ptr [r21+r22*1+0x20e565ff], 16 IID12976 - __ shrq(Address(r22, r23, (Address::ScaleFactor)3, +0x6cc68115), 16); // shr qword ptr [r22+r23*8+0x6cc68115], 16 IID12977 - __ shrq(Address(r23, r24, (Address::ScaleFactor)0, -0x67f7164), 16); // shr qword ptr [r23+r24*1-0x67f7164], 16 IID12978 - __ shrq(Address(r24, r25, (Address::ScaleFactor)1, -0x264545dd), 16); // shr qword ptr [r24+r25*2-0x264545dd], 16 IID12979 - __ shrq(Address(r25, r26, (Address::ScaleFactor)1, -0x2ca4bac3), 16); // shr qword ptr [r25+r26*2-0x2ca4bac3], 16 IID12980 - __ shrq(Address(r26, r27, (Address::ScaleFactor)0, +0x4800ba0f), 16); // shr qword ptr [r26+r27*1+0x4800ba0f], 16 IID12981 - __ shrq(Address(r27, r28, (Address::ScaleFactor)1, -0x721fb360), 16); // shr qword ptr [r27+r28*2-0x721fb360], 16 IID12982 - __ shrq(Address(r28, r29, (Address::ScaleFactor)0, -0x2432fe02), 16); // shr qword ptr [r28+r29*1-0x2432fe02], 16 IID12983 - __ shrq(Address(r29, r30, (Address::ScaleFactor)0, -0x37959aae), 16); // shr qword ptr [r29+r30*1-0x37959aae], 16 IID12984 - __ shrq(Address(r30, r31, (Address::ScaleFactor)0, +0x74b1622b), 16); // shr qword ptr [r30+r31*1+0x74b1622b], 16 IID12985 - __ shrq(Address(r31, rcx, (Address::ScaleFactor)0, -0x783aabc8), 16); // shr qword ptr [r31+rcx*1-0x783aabc8], 16 IID12986 - __ subq(Address(rcx, rdx, (Address::ScaleFactor)1, -0x1d8437b8), 1); // sub qword ptr [rcx+rdx*2-0x1d8437b8], 1 IID12987 - __ subq(Address(rdx, rbx, (Address::ScaleFactor)2, -0x551100e1), 1); // sub qword ptr [rdx+rbx*4-0x551100e1], 1 IID12988 - __ subq(Address(rbx, r8, (Address::ScaleFactor)2, +0x6d297c62), 1); // sub qword ptr [rbx+r8*4+0x6d297c62], 1 IID12989 - __ subq(Address(r8, r9, (Address::ScaleFactor)1, +0x6e92e521), 1); // sub qword ptr [r8+r9*2+0x6e92e521], 1 IID12990 - __ subq(Address(r9, r10, (Address::ScaleFactor)3, -0x4d7ed70a), 1); // sub qword ptr [r9+r10*8-0x4d7ed70a], 1 IID12991 - __ subq(Address(r10, +0x6b195363), 1); // sub qword ptr [r10+0x6b195363], 1 IID12992 - __ subq(Address(r11, r12, (Address::ScaleFactor)0, +0x2c0e2e91), 1); // sub qword ptr [r11+r12*1+0x2c0e2e91], 1 IID12993 - __ subq(Address(r12, -0x409aee57), 1); // sub qword ptr [r12-0x409aee57], 1 IID12994 - __ subq(Address(r13, r14, (Address::ScaleFactor)3, -0x419fc336), 1); // sub qword ptr [r13+r14*8-0x419fc336], 1 IID12995 - __ subq(Address(r14, -0x3ee64401), 1); // sub qword ptr [r14-0x3ee64401], 1 IID12996 - __ subq(Address(r15, +0x44c9581e), 1); // sub qword ptr [r15+0x44c9581e], 1 IID12997 - __ subq(Address(r16, r17, (Address::ScaleFactor)2, -0x2c3c8b2b), 1); // sub qword ptr [r16+r17*4-0x2c3c8b2b], 1 IID12998 - __ subq(Address(r17, r18, (Address::ScaleFactor)1, -0xff6dff9), 1); // sub qword ptr [r17+r18*2-0xff6dff9], 1 IID12999 - __ subq(Address(r18, r19, (Address::ScaleFactor)2, -0x5674b360), 1); // sub qword ptr [r18+r19*4-0x5674b360], 1 IID13000 - __ subq(Address(r19, +0x4a6423e4), 1); // sub qword ptr [r19+0x4a6423e4], 1 IID13001 - __ subq(Address(r20, +0x141d1dfe), 1); // sub qword ptr [r20+0x141d1dfe], 1 IID13002 - __ subq(Address(r21, r22, (Address::ScaleFactor)1, +0x6195e19e), 1); // sub qword ptr [r21+r22*2+0x6195e19e], 1 IID13003 - __ subq(Address(r22, +0x526a1581), 1); // sub qword ptr [r22+0x526a1581], 1 IID13004 - __ subq(Address(r23, +0x71117587), 1); // sub qword ptr [r23+0x71117587], 1 IID13005 - __ subq(Address(r24, r25, (Address::ScaleFactor)3, +0xa8a7b1a), 1); // sub qword ptr [r24+r25*8+0xa8a7b1a], 1 IID13006 - __ subq(Address(r25, -0x5e90d934), 1); // sub qword ptr [r25-0x5e90d934], 1 IID13007 - __ subq(Address(r26, r27, (Address::ScaleFactor)1, +0x304ea611), 1); // sub qword ptr [r26+r27*2+0x304ea611], 1 IID13008 - __ subq(Address(r27, +0x4997c699), 1); // sub qword ptr [r27+0x4997c699], 1 IID13009 - __ subq(Address(r28, r29, (Address::ScaleFactor)3, +0x34fbbc28), 1); // sub qword ptr [r28+r29*8+0x34fbbc28], 1 IID13010 - __ subq(Address(r29, r30, (Address::ScaleFactor)1, -0x6c9c84b), 1); // sub qword ptr [r29+r30*2-0x6c9c84b], 1 IID13011 - __ subq(Address(r30, -0x641e28cb), 1); // sub qword ptr [r30-0x641e28cb], 1 IID13012 - __ subq(Address(r31, rcx, (Address::ScaleFactor)3, -0x4b229f4d), 1); // sub qword ptr [r31+rcx*8-0x4b229f4d], 1 IID13013 - __ subq(Address(rcx, rdx, (Address::ScaleFactor)0, -0x7ae3c05f), 16); // sub qword ptr [rcx+rdx*1-0x7ae3c05f], 16 IID13014 - __ subq(Address(rdx, rbx, (Address::ScaleFactor)0, +0x6c753d63), 16); // sub qword ptr [rdx+rbx*1+0x6c753d63], 16 IID13015 - __ subq(Address(rbx, r8, (Address::ScaleFactor)3, +0x61d764ca), 16); // sub qword ptr [rbx+r8*8+0x61d764ca], 16 IID13016 - __ subq(Address(r8, r9, (Address::ScaleFactor)1, +0x40172688), 16); // sub qword ptr [r8+r9*2+0x40172688], 16 IID13017 - __ subq(Address(r9, r10, (Address::ScaleFactor)3, +0x1959bc24), 16); // sub qword ptr [r9+r10*8+0x1959bc24], 16 IID13018 - __ subq(Address(r10, r11, (Address::ScaleFactor)2, +0x7c4e023e), 16); // sub qword ptr [r10+r11*4+0x7c4e023e], 16 IID13019 - __ subq(Address(r11, r12, (Address::ScaleFactor)3, +0x6ab50d7d), 16); // sub qword ptr [r11+r12*8+0x6ab50d7d], 16 IID13020 - __ subq(Address(r12, r13, (Address::ScaleFactor)2, +0x2f70adcf), 16); // sub qword ptr [r12+r13*4+0x2f70adcf], 16 IID13021 - __ subq(Address(r13, r14, (Address::ScaleFactor)2, +0x1fa4a0), 16); // sub qword ptr [r13+r14*4+0x1fa4a0], 16 IID13022 - __ subq(Address(r14, r15, (Address::ScaleFactor)0, +0x56ea5363), 16); // sub qword ptr [r14+r15*1+0x56ea5363], 16 IID13023 - __ subq(Address(r15, r16, (Address::ScaleFactor)2, +0x3b843a9b), 16); // sub qword ptr [r15+r16*4+0x3b843a9b], 16 IID13024 - __ subq(Address(r16, r17, (Address::ScaleFactor)3, -0x7ff90049), 16); // sub qword ptr [r16+r17*8-0x7ff90049], 16 IID13025 - __ subq(Address(r17, r18, (Address::ScaleFactor)0, +0x19fb400f), 16); // sub qword ptr [r17+r18*1+0x19fb400f], 16 IID13026 - __ subq(Address(r18, r19, (Address::ScaleFactor)3, -0x4e9ba478), 16); // sub qword ptr [r18+r19*8-0x4e9ba478], 16 IID13027 - __ subq(Address(r19, r20, (Address::ScaleFactor)0, +0x5278e9eb), 16); // sub qword ptr [r19+r20*1+0x5278e9eb], 16 IID13028 - __ subq(Address(r20, r21, (Address::ScaleFactor)3, +0x75d5f004), 16); // sub qword ptr [r20+r21*8+0x75d5f004], 16 IID13029 - __ subq(Address(r21, r22, (Address::ScaleFactor)0, -0x48d31e80), 16); // sub qword ptr [r21+r22*1-0x48d31e80], 16 IID13030 - __ subq(Address(r22, r23, (Address::ScaleFactor)2, -0x1433cd93), 16); // sub qword ptr [r22+r23*4-0x1433cd93], 16 IID13031 - __ subq(Address(r23, r24, (Address::ScaleFactor)2, +0x599b7766), 16); // sub qword ptr [r23+r24*4+0x599b7766], 16 IID13032 - __ subq(Address(r24, +0x78cb2760), 16); // sub qword ptr [r24+0x78cb2760], 16 IID13033 - __ subq(Address(r25, r26, (Address::ScaleFactor)3, -0x7a8cd35e), 16); // sub qword ptr [r25+r26*8-0x7a8cd35e], 16 IID13034 - __ subq(Address(r26, -0x489fee5f), 16); // sub qword ptr [r26-0x489fee5f], 16 IID13035 - __ subq(Address(r27, r28, (Address::ScaleFactor)2, -0x7894de40), 16); // sub qword ptr [r27+r28*4-0x7894de40], 16 IID13036 - __ subq(Address(r28, r29, (Address::ScaleFactor)0, -0x713d4355), 16); // sub qword ptr [r28+r29*1-0x713d4355], 16 IID13037 - __ subq(Address(r29, r30, (Address::ScaleFactor)1, -0x4eca349f), 16); // sub qword ptr [r29+r30*2-0x4eca349f], 16 IID13038 - __ subq(Address(r30, -0x597237c4), 16); // sub qword ptr [r30-0x597237c4], 16 IID13039 - __ subq(Address(r31, +0x45e09278), 16); // sub qword ptr [r31+0x45e09278], 16 IID13040 - __ subq(Address(rcx, rdx, (Address::ScaleFactor)1, +0x52d83391), 256); // sub qword ptr [rcx+rdx*2+0x52d83391], 256 IID13041 - __ subq(Address(rdx, rbx, (Address::ScaleFactor)3, +0x72e5f2c8), 256); // sub qword ptr [rdx+rbx*8+0x72e5f2c8], 256 IID13042 - __ subq(Address(rbx, r8, (Address::ScaleFactor)2, +0x11973222), 256); // sub qword ptr [rbx+r8*4+0x11973222], 256 IID13043 - __ subq(Address(r8, -0x18c11395), 256); // sub qword ptr [r8-0x18c11395], 256 IID13044 - __ subq(Address(r9, r10, (Address::ScaleFactor)1, +0x38ab811a), 256); // sub qword ptr [r9+r10*2+0x38ab811a], 256 IID13045 - __ subq(Address(r10, r11, (Address::ScaleFactor)3, -0x348178c8), 256); // sub qword ptr [r10+r11*8-0x348178c8], 256 IID13046 - __ subq(Address(r11, r12, (Address::ScaleFactor)2, -0x275de88b), 256); // sub qword ptr [r11+r12*4-0x275de88b], 256 IID13047 - __ subq(Address(r12, -0x60bfb547), 256); // sub qword ptr [r12-0x60bfb547], 256 IID13048 - __ subq(Address(r13, r14, (Address::ScaleFactor)1, -0x77b70d45), 256); // sub qword ptr [r13+r14*2-0x77b70d45], 256 IID13049 - __ subq(Address(r14, r15, (Address::ScaleFactor)1, -0x3a206adc), 256); // sub qword ptr [r14+r15*2-0x3a206adc], 256 IID13050 - __ subq(Address(r15, r16, (Address::ScaleFactor)3, -0x4062c506), 256); // sub qword ptr [r15+r16*8-0x4062c506], 256 IID13051 - __ subq(Address(r16, r17, (Address::ScaleFactor)0, +0x147ccd86), 256); // sub qword ptr [r16+r17*1+0x147ccd86], 256 IID13052 - __ subq(Address(r17, r18, (Address::ScaleFactor)2, +0x7bb80417), 256); // sub qword ptr [r17+r18*4+0x7bb80417], 256 IID13053 - __ subq(Address(r18, +0x678b4b22), 256); // sub qword ptr [r18+0x678b4b22], 256 IID13054 - __ subq(Address(r19, -0x2649544), 256); // sub qword ptr [r19-0x2649544], 256 IID13055 - __ subq(Address(r20, r21, (Address::ScaleFactor)3, -0x327516fc), 256); // sub qword ptr [r20+r21*8-0x327516fc], 256 IID13056 - __ subq(Address(r21, r22, (Address::ScaleFactor)3, -0x15b82c96), 256); // sub qword ptr [r21+r22*8-0x15b82c96], 256 IID13057 - __ subq(Address(r22, r23, (Address::ScaleFactor)3, -0x70129f4f), 256); // sub qword ptr [r22+r23*8-0x70129f4f], 256 IID13058 - __ subq(Address(r23, r24, (Address::ScaleFactor)3, -0xd292599), 256); // sub qword ptr [r23+r24*8-0xd292599], 256 IID13059 - __ subq(Address(r24, +0x4476cced), 256); // sub qword ptr [r24+0x4476cced], 256 IID13060 - __ subq(Address(r25, r26, (Address::ScaleFactor)3, -0x36490fc4), 256); // sub qword ptr [r25+r26*8-0x36490fc4], 256 IID13061 - __ subq(Address(r26, r27, (Address::ScaleFactor)1, -0x3d7c09fb), 256); // sub qword ptr [r26+r27*2-0x3d7c09fb], 256 IID13062 - __ subq(Address(r27, r28, (Address::ScaleFactor)3, -0x4020857d), 256); // sub qword ptr [r27+r28*8-0x4020857d], 256 IID13063 - __ subq(Address(r28, r29, (Address::ScaleFactor)2, +0x6ebc1f0), 256); // sub qword ptr [r28+r29*4+0x6ebc1f0], 256 IID13064 - __ subq(Address(r29, -0x71132e96), 256); // sub qword ptr [r29-0x71132e96], 256 IID13065 - __ subq(Address(r30, r31, (Address::ScaleFactor)2, -0x3204e47b), 256); // sub qword ptr [r30+r31*4-0x3204e47b], 256 IID13066 - __ subq(Address(r31, rcx, (Address::ScaleFactor)0, -0x1737bc46), 256); // sub qword ptr [r31+rcx*1-0x1737bc46], 256 IID13067 - __ subq(Address(rcx, rdx, (Address::ScaleFactor)0, +0x2cb05bec), 4096); // sub qword ptr [rcx+rdx*1+0x2cb05bec], 4096 IID13068 - __ subq(Address(rdx, -0x4d43b1), 4096); // sub qword ptr [rdx-0x4d43b1], 4096 IID13069 - __ subq(Address(rbx, r8, (Address::ScaleFactor)0, -0x37d2afbb), 4096); // sub qword ptr [rbx+r8*1-0x37d2afbb], 4096 IID13070 - __ subq(Address(r8, r9, (Address::ScaleFactor)1, -0x1c36718c), 4096); // sub qword ptr [r8+r9*2-0x1c36718c], 4096 IID13071 - __ subq(Address(r9, +0x48b3e486), 4096); // sub qword ptr [r9+0x48b3e486], 4096 IID13072 - __ subq(Address(r10, r11, (Address::ScaleFactor)2, -0x926f9ee), 4096); // sub qword ptr [r10+r11*4-0x926f9ee], 4096 IID13073 - __ subq(Address(r11, r12, (Address::ScaleFactor)2, -0x2f96fd3d), 4096); // sub qword ptr [r11+r12*4-0x2f96fd3d], 4096 IID13074 - __ subq(Address(r12, r13, (Address::ScaleFactor)2, -0x3fff72a8), 4096); // sub qword ptr [r12+r13*4-0x3fff72a8], 4096 IID13075 - __ subq(Address(r13, r14, (Address::ScaleFactor)0, +0x77351891), 4096); // sub qword ptr [r13+r14*1+0x77351891], 4096 IID13076 - __ subq(Address(r14, r15, (Address::ScaleFactor)3, +0x1276fe9), 4096); // sub qword ptr [r14+r15*8+0x1276fe9], 4096 IID13077 - __ subq(Address(r15, r16, (Address::ScaleFactor)3, -0x483e14b5), 4096); // sub qword ptr [r15+r16*8-0x483e14b5], 4096 IID13078 - __ subq(Address(r16, +0x574b3c4d), 4096); // sub qword ptr [r16+0x574b3c4d], 4096 IID13079 - __ subq(Address(r17, r18, (Address::ScaleFactor)1, -0x13995713), 4096); // sub qword ptr [r17+r18*2-0x13995713], 4096 IID13080 - __ subq(Address(r18, r19, (Address::ScaleFactor)3, -0x29f7b0cd), 4096); // sub qword ptr [r18+r19*8-0x29f7b0cd], 4096 IID13081 - __ subq(Address(r19, r20, (Address::ScaleFactor)0, -0x3bd4451f), 4096); // sub qword ptr [r19+r20*1-0x3bd4451f], 4096 IID13082 - __ subq(Address(r20, -0x48a53d4d), 4096); // sub qword ptr [r20-0x48a53d4d], 4096 IID13083 - __ subq(Address(r21, +0x7024a8a2), 4096); // sub qword ptr [r21+0x7024a8a2], 4096 IID13084 - __ subq(Address(r22, +0x5463e145), 4096); // sub qword ptr [r22+0x5463e145], 4096 IID13085 - __ subq(Address(r23, r24, (Address::ScaleFactor)3, +0x6062c46d), 4096); // sub qword ptr [r23+r24*8+0x6062c46d], 4096 IID13086 - __ subq(Address(r24, -0x159d7844), 4096); // sub qword ptr [r24-0x159d7844], 4096 IID13087 - __ subq(Address(r25, r26, (Address::ScaleFactor)2, +0x4533d9b6), 4096); // sub qword ptr [r25+r26*4+0x4533d9b6], 4096 IID13088 - __ subq(Address(r26, r27, (Address::ScaleFactor)2, +0x32b40f74), 4096); // sub qword ptr [r26+r27*4+0x32b40f74], 4096 IID13089 - __ subq(Address(r27, r28, (Address::ScaleFactor)3, +0x1b22a759), 4096); // sub qword ptr [r27+r28*8+0x1b22a759], 4096 IID13090 - __ subq(Address(r28, r29, (Address::ScaleFactor)3, -0x407bc56d), 4096); // sub qword ptr [r28+r29*8-0x407bc56d], 4096 IID13091 - __ subq(Address(r29, r30, (Address::ScaleFactor)0, +0x18f2326b), 4096); // sub qword ptr [r29+r30*1+0x18f2326b], 4096 IID13092 - __ subq(Address(r30, r31, (Address::ScaleFactor)3, -0x5faa90f5), 4096); // sub qword ptr [r30+r31*8-0x5faa90f5], 4096 IID13093 - __ subq(Address(r31, +0x2cac4915), 4096); // sub qword ptr [r31+0x2cac4915], 4096 IID13094 - __ subq(Address(rcx, rdx, (Address::ScaleFactor)0, -0xcf2ed0a), 65536); // sub qword ptr [rcx+rdx*1-0xcf2ed0a], 65536 IID13095 - __ subq(Address(rdx, rbx, (Address::ScaleFactor)1, +0x51893701), 65536); // sub qword ptr [rdx+rbx*2+0x51893701], 65536 IID13096 - __ subq(Address(rbx, -0xeef309d), 65536); // sub qword ptr [rbx-0xeef309d], 65536 IID13097 - __ subq(Address(r8, r9, (Address::ScaleFactor)1, +0x11efd079), 65536); // sub qword ptr [r8+r9*2+0x11efd079], 65536 IID13098 - __ subq(Address(r9, r10, (Address::ScaleFactor)0, -0x2ae7a2f9), 65536); // sub qword ptr [r9+r10*1-0x2ae7a2f9], 65536 IID13099 - __ subq(Address(r10, r11, (Address::ScaleFactor)0, -0xefa414b), 65536); // sub qword ptr [r10+r11*1-0xefa414b], 65536 IID13100 - __ subq(Address(r11, r12, (Address::ScaleFactor)3, +0x414e3d83), 65536); // sub qword ptr [r11+r12*8+0x414e3d83], 65536 IID13101 - __ subq(Address(r12, +0x41aa0592), 65536); // sub qword ptr [r12+0x41aa0592], 65536 IID13102 - __ subq(Address(r13, r14, (Address::ScaleFactor)1, +0x4f8e7c3c), 65536); // sub qword ptr [r13+r14*2+0x4f8e7c3c], 65536 IID13103 - __ subq(Address(r14, -0x4818de71), 65536); // sub qword ptr [r14-0x4818de71], 65536 IID13104 - __ subq(Address(r15, r16, (Address::ScaleFactor)3, -0x75bfe11c), 65536); // sub qword ptr [r15+r16*8-0x75bfe11c], 65536 IID13105 - __ subq(Address(r16, r17, (Address::ScaleFactor)0, +0x6aa673d8), 65536); // sub qword ptr [r16+r17*1+0x6aa673d8], 65536 IID13106 - __ subq(Address(r17, r18, (Address::ScaleFactor)1, -0x34afaaf1), 65536); // sub qword ptr [r17+r18*2-0x34afaaf1], 65536 IID13107 - __ subq(Address(r18, r19, (Address::ScaleFactor)1, -0x48d710ff), 65536); // sub qword ptr [r18+r19*2-0x48d710ff], 65536 IID13108 - __ subq(Address(r19, r20, (Address::ScaleFactor)3, -0x2816245f), 65536); // sub qword ptr [r19+r20*8-0x2816245f], 65536 IID13109 - __ subq(Address(r20, +0x700b7f5b), 65536); // sub qword ptr [r20+0x700b7f5b], 65536 IID13110 - __ subq(Address(r21, r22, (Address::ScaleFactor)2, -0x140fd56b), 65536); // sub qword ptr [r21+r22*4-0x140fd56b], 65536 IID13111 - __ subq(Address(r22, r23, (Address::ScaleFactor)0, +0x305145d4), 65536); // sub qword ptr [r22+r23*1+0x305145d4], 65536 IID13112 - __ subq(Address(r23, r24, (Address::ScaleFactor)1, -0x71e066e3), 65536); // sub qword ptr [r23+r24*2-0x71e066e3], 65536 IID13113 - __ subq(Address(r24, r25, (Address::ScaleFactor)2, +0x2b023e67), 65536); // sub qword ptr [r24+r25*4+0x2b023e67], 65536 IID13114 - __ subq(Address(r25, r26, (Address::ScaleFactor)2, -0x1b165fcd), 65536); // sub qword ptr [r25+r26*4-0x1b165fcd], 65536 IID13115 - __ subq(Address(r26, r27, (Address::ScaleFactor)2, -0x4c895b1d), 65536); // sub qword ptr [r26+r27*4-0x4c895b1d], 65536 IID13116 - __ subq(Address(r27, r28, (Address::ScaleFactor)1, +0x2ed1d90c), 65536); // sub qword ptr [r27+r28*2+0x2ed1d90c], 65536 IID13117 - __ subq(Address(r28, r29, (Address::ScaleFactor)1, +0x5e0e27ce), 65536); // sub qword ptr [r28+r29*2+0x5e0e27ce], 65536 IID13118 - __ subq(Address(r29, r30, (Address::ScaleFactor)3, +0x1257dd76), 65536); // sub qword ptr [r29+r30*8+0x1257dd76], 65536 IID13119 - __ subq(Address(r30, r31, (Address::ScaleFactor)1, -0x1d103c34), 65536); // sub qword ptr [r30+r31*2-0x1d103c34], 65536 IID13120 - __ subq(Address(r31, rcx, (Address::ScaleFactor)3, +0x6aeea381), 65536); // sub qword ptr [r31+rcx*8+0x6aeea381], 65536 IID13121 - __ subq(Address(rcx, rdx, (Address::ScaleFactor)3, +0x4b9cbe46), 1048576); // sub qword ptr [rcx+rdx*8+0x4b9cbe46], 1048576 IID13122 - __ subq(Address(rdx, rbx, (Address::ScaleFactor)2, -0x5d50acf7), 1048576); // sub qword ptr [rdx+rbx*4-0x5d50acf7], 1048576 IID13123 - __ subq(Address(rbx, r8, (Address::ScaleFactor)2, -0x4aa5eb5b), 1048576); // sub qword ptr [rbx+r8*4-0x4aa5eb5b], 1048576 IID13124 - __ subq(Address(r8, r9, (Address::ScaleFactor)3, +0x71c96612), 1048576); // sub qword ptr [r8+r9*8+0x71c96612], 1048576 IID13125 - __ subq(Address(r9, r10, (Address::ScaleFactor)3, +0x2bb1ca8d), 1048576); // sub qword ptr [r9+r10*8+0x2bb1ca8d], 1048576 IID13126 - __ subq(Address(r10, r11, (Address::ScaleFactor)2, -0xadd3625), 1048576); // sub qword ptr [r10+r11*4-0xadd3625], 1048576 IID13127 - __ subq(Address(r11, r12, (Address::ScaleFactor)2, -0x2ae2becd), 1048576); // sub qword ptr [r11+r12*4-0x2ae2becd], 1048576 IID13128 - __ subq(Address(r12, r13, (Address::ScaleFactor)1, +0x3a86d7eb), 1048576); // sub qword ptr [r12+r13*2+0x3a86d7eb], 1048576 IID13129 - __ subq(Address(r13, r14, (Address::ScaleFactor)1, +0x15dd7df1), 1048576); // sub qword ptr [r13+r14*2+0x15dd7df1], 1048576 IID13130 - __ subq(Address(r14, r15, (Address::ScaleFactor)2, -0x29ac3889), 1048576); // sub qword ptr [r14+r15*4-0x29ac3889], 1048576 IID13131 - __ subq(Address(r15, +0x36a80f1), 1048576); // sub qword ptr [r15+0x36a80f1], 1048576 IID13132 - __ subq(Address(r16, r17, (Address::ScaleFactor)0, -0x2d271d), 1048576); // sub qword ptr [r16+r17*1-0x2d271d], 1048576 IID13133 - __ subq(Address(r17, r18, (Address::ScaleFactor)2, +0x2bd896a7), 1048576); // sub qword ptr [r17+r18*4+0x2bd896a7], 1048576 IID13134 - __ subq(Address(r18, r19, (Address::ScaleFactor)2, -0x34140665), 1048576); // sub qword ptr [r18+r19*4-0x34140665], 1048576 IID13135 - __ subq(Address(r19, r20, (Address::ScaleFactor)1, -0x5d7f86c5), 1048576); // sub qword ptr [r19+r20*2-0x5d7f86c5], 1048576 IID13136 - __ subq(Address(r20, r21, (Address::ScaleFactor)1, -0x226c2ef), 1048576); // sub qword ptr [r20+r21*2-0x226c2ef], 1048576 IID13137 - __ subq(Address(r21, r22, (Address::ScaleFactor)3, +0x7f91afb7), 1048576); // sub qword ptr [r21+r22*8+0x7f91afb7], 1048576 IID13138 - __ subq(Address(r22, r23, (Address::ScaleFactor)1, +0x7706fb43), 1048576); // sub qword ptr [r22+r23*2+0x7706fb43], 1048576 IID13139 - __ subq(Address(r23, -0x4422355c), 1048576); // sub qword ptr [r23-0x4422355c], 1048576 IID13140 - __ subq(Address(r24, r25, (Address::ScaleFactor)1, -0x4b7b2681), 1048576); // sub qword ptr [r24+r25*2-0x4b7b2681], 1048576 IID13141 - __ subq(Address(r25, r26, (Address::ScaleFactor)1, +0xf853b6), 1048576); // sub qword ptr [r25+r26*2+0xf853b6], 1048576 IID13142 - __ subq(Address(r26, r27, (Address::ScaleFactor)0, -0x6772eee9), 1048576); // sub qword ptr [r26+r27*1-0x6772eee9], 1048576 IID13143 - __ subq(Address(r27, r28, (Address::ScaleFactor)2, +0x42554556), 1048576); // sub qword ptr [r27+r28*4+0x42554556], 1048576 IID13144 - __ subq(Address(r28, r29, (Address::ScaleFactor)3, -0x5d0ad6e3), 1048576); // sub qword ptr [r28+r29*8-0x5d0ad6e3], 1048576 IID13145 - __ subq(Address(r29, r30, (Address::ScaleFactor)0, +0x4cb3f7e2), 1048576); // sub qword ptr [r29+r30*1+0x4cb3f7e2], 1048576 IID13146 - __ subq(Address(r30, +0x13980cdb), 1048576); // sub qword ptr [r30+0x13980cdb], 1048576 IID13147 - __ subq(Address(r31, rcx, (Address::ScaleFactor)0, -0x3ebad48e), 1048576); // sub qword ptr [r31+rcx*1-0x3ebad48e], 1048576 IID13148 - __ subq(Address(rcx, rdx, (Address::ScaleFactor)1, +0x745e2f12), 16777216); // sub qword ptr [rcx+rdx*2+0x745e2f12], 16777216 IID13149 - __ subq(Address(rdx, rbx, (Address::ScaleFactor)2, +0x74eca3a0), 16777216); // sub qword ptr [rdx+rbx*4+0x74eca3a0], 16777216 IID13150 - __ subq(Address(rbx, +0x4648a987), 16777216); // sub qword ptr [rbx+0x4648a987], 16777216 IID13151 - __ subq(Address(r8, r9, (Address::ScaleFactor)2, -0x4736577f), 16777216); // sub qword ptr [r8+r9*4-0x4736577f], 16777216 IID13152 - __ subq(Address(r9, r10, (Address::ScaleFactor)3, +0x40b1fc08), 16777216); // sub qword ptr [r9+r10*8+0x40b1fc08], 16777216 IID13153 - __ subq(Address(r10, r11, (Address::ScaleFactor)0, +0x15637ea9), 16777216); // sub qword ptr [r10+r11*1+0x15637ea9], 16777216 IID13154 - __ subq(Address(r11, r12, (Address::ScaleFactor)3, +0x5e0eb263), 16777216); // sub qword ptr [r11+r12*8+0x5e0eb263], 16777216 IID13155 - __ subq(Address(r12, r13, (Address::ScaleFactor)1, -0x7da39117), 16777216); // sub qword ptr [r12+r13*2-0x7da39117], 16777216 IID13156 - __ subq(Address(r13, r14, (Address::ScaleFactor)1, -0x3be82b46), 16777216); // sub qword ptr [r13+r14*2-0x3be82b46], 16777216 IID13157 - __ subq(Address(r14, r15, (Address::ScaleFactor)3, +0x3c0098e9), 16777216); // sub qword ptr [r14+r15*8+0x3c0098e9], 16777216 IID13158 - __ subq(Address(r15, +0x4f7d71f8), 16777216); // sub qword ptr [r15+0x4f7d71f8], 16777216 IID13159 - __ subq(Address(r16, -0x4c6a2433), 16777216); // sub qword ptr [r16-0x4c6a2433], 16777216 IID13160 - __ subq(Address(r17, r18, (Address::ScaleFactor)0, -0x2df2f8c2), 16777216); // sub qword ptr [r17+r18*1-0x2df2f8c2], 16777216 IID13161 - __ subq(Address(r18, r19, (Address::ScaleFactor)0, -0x57c49d63), 16777216); // sub qword ptr [r18+r19*1-0x57c49d63], 16777216 IID13162 - __ subq(Address(r19, r20, (Address::ScaleFactor)3, -0x82e5a7b), 16777216); // sub qword ptr [r19+r20*8-0x82e5a7b], 16777216 IID13163 - __ subq(Address(r20, r21, (Address::ScaleFactor)2, -0x2d221b14), 16777216); // sub qword ptr [r20+r21*4-0x2d221b14], 16777216 IID13164 - __ subq(Address(r21, +0x7f2bfec0), 16777216); // sub qword ptr [r21+0x7f2bfec0], 16777216 IID13165 - __ subq(Address(r22, r23, (Address::ScaleFactor)3, -0x63e4b2aa), 16777216); // sub qword ptr [r22+r23*8-0x63e4b2aa], 16777216 IID13166 - __ subq(Address(r23, r24, (Address::ScaleFactor)1, -0x129bdc9c), 16777216); // sub qword ptr [r23+r24*2-0x129bdc9c], 16777216 IID13167 - __ subq(Address(r24, +0x53847019), 16777216); // sub qword ptr [r24+0x53847019], 16777216 IID13168 - __ subq(Address(r25, r26, (Address::ScaleFactor)0, +0x48552f4a), 16777216); // sub qword ptr [r25+r26*1+0x48552f4a], 16777216 IID13169 - __ subq(Address(r26, r27, (Address::ScaleFactor)2, -0x4c78834e), 16777216); // sub qword ptr [r26+r27*4-0x4c78834e], 16777216 IID13170 - __ subq(Address(r27, -0x27deed6f), 16777216); // sub qword ptr [r27-0x27deed6f], 16777216 IID13171 - __ subq(Address(r28, r29, (Address::ScaleFactor)2, -0x1e3a8283), 16777216); // sub qword ptr [r28+r29*4-0x1e3a8283], 16777216 IID13172 - __ subq(Address(r29, r30, (Address::ScaleFactor)1, +0x6b04e75b), 16777216); // sub qword ptr [r29+r30*2+0x6b04e75b], 16777216 IID13173 - __ subq(Address(r30, +0x10b39311), 16777216); // sub qword ptr [r30+0x10b39311], 16777216 IID13174 - __ subq(Address(r31, rcx, (Address::ScaleFactor)0, -0x2d8b63ca), 16777216); // sub qword ptr [r31+rcx*1-0x2d8b63ca], 16777216 IID13175 - __ subq(Address(rcx, rdx, (Address::ScaleFactor)3, +0x2d76f206), 268435456); // sub qword ptr [rcx+rdx*8+0x2d76f206], 268435456 IID13176 - __ subq(Address(rdx, +0x7c7abea5), 268435456); // sub qword ptr [rdx+0x7c7abea5], 268435456 IID13177 - __ subq(Address(rbx, r8, (Address::ScaleFactor)1, +0x39a2ff82), 268435456); // sub qword ptr [rbx+r8*2+0x39a2ff82], 268435456 IID13178 - __ subq(Address(r8, r9, (Address::ScaleFactor)3, +0x6cbd9a2a), 268435456); // sub qword ptr [r8+r9*8+0x6cbd9a2a], 268435456 IID13179 - __ subq(Address(r9, r10, (Address::ScaleFactor)1, +0x548b73e0), 268435456); // sub qword ptr [r9+r10*2+0x548b73e0], 268435456 IID13180 - __ subq(Address(r10, +0x373924ab), 268435456); // sub qword ptr [r10+0x373924ab], 268435456 IID13181 - __ subq(Address(r11, r12, (Address::ScaleFactor)1, -0x52b46e21), 268435456); // sub qword ptr [r11+r12*2-0x52b46e21], 268435456 IID13182 - __ subq(Address(r12, -0x4bb2cff), 268435456); // sub qword ptr [r12-0x4bb2cff], 268435456 IID13183 - __ subq(Address(r13, r14, (Address::ScaleFactor)3, +0x425c6fda), 268435456); // sub qword ptr [r13+r14*8+0x425c6fda], 268435456 IID13184 - __ subq(Address(r14, r15, (Address::ScaleFactor)3, +0x2349f4f8), 268435456); // sub qword ptr [r14+r15*8+0x2349f4f8], 268435456 IID13185 - __ subq(Address(r15, r16, (Address::ScaleFactor)1, +0x54e6ce3c), 268435456); // sub qword ptr [r15+r16*2+0x54e6ce3c], 268435456 IID13186 - __ subq(Address(r16, r17, (Address::ScaleFactor)2, -0x9f0e2e1), 268435456); // sub qword ptr [r16+r17*4-0x9f0e2e1], 268435456 IID13187 - __ subq(Address(r17, -0x5cf8b0f2), 268435456); // sub qword ptr [r17-0x5cf8b0f2], 268435456 IID13188 - __ subq(Address(r18, -0x5028f036), 268435456); // sub qword ptr [r18-0x5028f036], 268435456 IID13189 - __ subq(Address(r19, r20, (Address::ScaleFactor)0, +0x52f5b5ac), 268435456); // sub qword ptr [r19+r20*1+0x52f5b5ac], 268435456 IID13190 - __ subq(Address(r20, r21, (Address::ScaleFactor)3, +0x4f547e0e), 268435456); // sub qword ptr [r20+r21*8+0x4f547e0e], 268435456 IID13191 - __ subq(Address(r21, r22, (Address::ScaleFactor)1, +0x4eef4d3f), 268435456); // sub qword ptr [r21+r22*2+0x4eef4d3f], 268435456 IID13192 - __ subq(Address(r22, r23, (Address::ScaleFactor)2, -0x47999e45), 268435456); // sub qword ptr [r22+r23*4-0x47999e45], 268435456 IID13193 - __ subq(Address(r23, r24, (Address::ScaleFactor)2, -0xb836f0f), 268435456); // sub qword ptr [r23+r24*4-0xb836f0f], 268435456 IID13194 - __ subq(Address(r24, r25, (Address::ScaleFactor)0, -0x227ae846), 268435456); // sub qword ptr [r24+r25*1-0x227ae846], 268435456 IID13195 - __ subq(Address(r25, r26, (Address::ScaleFactor)2, -0x34e8e2d6), 268435456); // sub qword ptr [r25+r26*4-0x34e8e2d6], 268435456 IID13196 - __ subq(Address(r26, -0xcda3dce), 268435456); // sub qword ptr [r26-0xcda3dce], 268435456 IID13197 - __ subq(Address(r27, r28, (Address::ScaleFactor)3, -0x368b3081), 268435456); // sub qword ptr [r27+r28*8-0x368b3081], 268435456 IID13198 - __ subq(Address(r28, r29, (Address::ScaleFactor)3, +0x2f21f63e), 268435456); // sub qword ptr [r28+r29*8+0x2f21f63e], 268435456 IID13199 - __ subq(Address(r29, r30, (Address::ScaleFactor)3, -0x584301cf), 268435456); // sub qword ptr [r29+r30*8-0x584301cf], 268435456 IID13200 - __ subq(Address(r30, r31, (Address::ScaleFactor)0, +0x215b0518), 268435456); // sub qword ptr [r30+r31*1+0x215b0518], 268435456 IID13201 - __ subq(Address(r31, +0x6a10dfe), 268435456); // sub qword ptr [r31+0x6a10dfe], 268435456 IID13202 - __ xorq(Address(rcx, rdx, (Address::ScaleFactor)2, -0x4da572bf), 1); // xor qword ptr [rcx+rdx*4-0x4da572bf], 1 IID13203 - __ xorq(Address(rdx, rbx, (Address::ScaleFactor)2, -0x7699b6cf), 1); // xor qword ptr [rdx+rbx*4-0x7699b6cf], 1 IID13204 - __ xorq(Address(rbx, r8, (Address::ScaleFactor)2, -0x13733376), 1); // xor qword ptr [rbx+r8*4-0x13733376], 1 IID13205 - __ xorq(Address(r8, r9, (Address::ScaleFactor)1, +0x4159d625), 1); // xor qword ptr [r8+r9*2+0x4159d625], 1 IID13206 - __ xorq(Address(r9, r10, (Address::ScaleFactor)2, -0x1aa50a80), 1); // xor qword ptr [r9+r10*4-0x1aa50a80], 1 IID13207 - __ xorq(Address(r10, +0x17619a66), 1); // xor qword ptr [r10+0x17619a66], 1 IID13208 - __ xorq(Address(r11, +0x12015a0e), 1); // xor qword ptr [r11+0x12015a0e], 1 IID13209 - __ xorq(Address(r12, r13, (Address::ScaleFactor)1, +0x5f0baefe), 1); // xor qword ptr [r12+r13*2+0x5f0baefe], 1 IID13210 - __ xorq(Address(r13, r14, (Address::ScaleFactor)2, +0x20d485d8), 1); // xor qword ptr [r13+r14*4+0x20d485d8], 1 IID13211 - __ xorq(Address(r14, r15, (Address::ScaleFactor)3, +0x10a6c6bb), 1); // xor qword ptr [r14+r15*8+0x10a6c6bb], 1 IID13212 - __ xorq(Address(r15, r16, (Address::ScaleFactor)3, -0x3e458072), 1); // xor qword ptr [r15+r16*8-0x3e458072], 1 IID13213 - __ xorq(Address(r16, r17, (Address::ScaleFactor)2, +0x79763410), 1); // xor qword ptr [r16+r17*4+0x79763410], 1 IID13214 - __ xorq(Address(r17, +0x3ed6199e), 1); // xor qword ptr [r17+0x3ed6199e], 1 IID13215 - __ xorq(Address(r18, r19, (Address::ScaleFactor)2, +0x2aaf8993), 1); // xor qword ptr [r18+r19*4+0x2aaf8993], 1 IID13216 - __ xorq(Address(r19, r20, (Address::ScaleFactor)3, +0x7c04fa3), 1); // xor qword ptr [r19+r20*8+0x7c04fa3], 1 IID13217 - __ xorq(Address(r20, +0x5235660c), 1); // xor qword ptr [r20+0x5235660c], 1 IID13218 - __ xorq(Address(r21, -0x12233e23), 1); // xor qword ptr [r21-0x12233e23], 1 IID13219 - __ xorq(Address(r22, r23, (Address::ScaleFactor)1, -0x5febe7a2), 1); // xor qword ptr [r22+r23*2-0x5febe7a2], 1 IID13220 - __ xorq(Address(r23, r24, (Address::ScaleFactor)1, +0x7f3b76b3), 1); // xor qword ptr [r23+r24*2+0x7f3b76b3], 1 IID13221 - __ xorq(Address(r24, r25, (Address::ScaleFactor)2, +0x4e7ef954), 1); // xor qword ptr [r24+r25*4+0x4e7ef954], 1 IID13222 - __ xorq(Address(r25, r26, (Address::ScaleFactor)2, +0x6f7feb1f), 1); // xor qword ptr [r25+r26*4+0x6f7feb1f], 1 IID13223 - __ xorq(Address(r26, -0x62e23458), 1); // xor qword ptr [r26-0x62e23458], 1 IID13224 - __ xorq(Address(r27, r28, (Address::ScaleFactor)0, -0x79a6e23b), 1); // xor qword ptr [r27+r28*1-0x79a6e23b], 1 IID13225 - __ xorq(Address(r28, r29, (Address::ScaleFactor)0, -0x2204690f), 1); // xor qword ptr [r28+r29*1-0x2204690f], 1 IID13226 - __ xorq(Address(r29, r30, (Address::ScaleFactor)1, -0x44e3ae6e), 1); // xor qword ptr [r29+r30*2-0x44e3ae6e], 1 IID13227 - __ xorq(Address(r30, r31, (Address::ScaleFactor)0, -0x6a0eb19a), 1); // xor qword ptr [r30+r31*1-0x6a0eb19a], 1 IID13228 - __ xorq(Address(r31, rcx, (Address::ScaleFactor)2, +0x39e3613c), 1); // xor qword ptr [r31+rcx*4+0x39e3613c], 1 IID13229 - __ xorq(Address(rcx, rdx, (Address::ScaleFactor)1, +0x68ab35ca), 16); // xor qword ptr [rcx+rdx*2+0x68ab35ca], 16 IID13230 - __ xorq(Address(rdx, rbx, (Address::ScaleFactor)1, +0x6d367bbe), 16); // xor qword ptr [rdx+rbx*2+0x6d367bbe], 16 IID13231 - __ xorq(Address(rbx, r8, (Address::ScaleFactor)0, +0x3ab4c7b6), 16); // xor qword ptr [rbx+r8*1+0x3ab4c7b6], 16 IID13232 - __ xorq(Address(r8, r9, (Address::ScaleFactor)3, -0x4f4b6a0d), 16); // xor qword ptr [r8+r9*8-0x4f4b6a0d], 16 IID13233 - __ xorq(Address(r9, r10, (Address::ScaleFactor)2, -0xa95c223), 16); // xor qword ptr [r9+r10*4-0xa95c223], 16 IID13234 - __ xorq(Address(r10, r11, (Address::ScaleFactor)3, -0x72242b26), 16); // xor qword ptr [r10+r11*8-0x72242b26], 16 IID13235 - __ xorq(Address(r11, r12, (Address::ScaleFactor)2, +0x85c0bb), 16); // xor qword ptr [r11+r12*4+0x85c0bb], 16 IID13236 - __ xorq(Address(r12, r13, (Address::ScaleFactor)2, -0x301b46e3), 16); // xor qword ptr [r12+r13*4-0x301b46e3], 16 IID13237 - __ xorq(Address(r13, r14, (Address::ScaleFactor)3, +0x63bbe98d), 16); // xor qword ptr [r13+r14*8+0x63bbe98d], 16 IID13238 - __ xorq(Address(r14, r15, (Address::ScaleFactor)3, -0xee670b7), 16); // xor qword ptr [r14+r15*8-0xee670b7], 16 IID13239 - __ xorq(Address(r15, r16, (Address::ScaleFactor)3, +0x55992b6b), 16); // xor qword ptr [r15+r16*8+0x55992b6b], 16 IID13240 - __ xorq(Address(r16, r17, (Address::ScaleFactor)0, +0x45a6181e), 16); // xor qword ptr [r16+r17*1+0x45a6181e], 16 IID13241 - __ xorq(Address(r17, r18, (Address::ScaleFactor)2, +0xb0336d7), 16); // xor qword ptr [r17+r18*4+0xb0336d7], 16 IID13242 - __ xorq(Address(r18, -0x35c2b93e), 16); // xor qword ptr [r18-0x35c2b93e], 16 IID13243 - __ xorq(Address(r19, -0x1cb33898), 16); // xor qword ptr [r19-0x1cb33898], 16 IID13244 - __ xorq(Address(r20, r21, (Address::ScaleFactor)0, +0x7c936f4b), 16); // xor qword ptr [r20+r21*1+0x7c936f4b], 16 IID13245 - __ xorq(Address(r21, r22, (Address::ScaleFactor)3, -0x692c699a), 16); // xor qword ptr [r21+r22*8-0x692c699a], 16 IID13246 - __ xorq(Address(r22, r23, (Address::ScaleFactor)3, +0x1ea97a42), 16); // xor qword ptr [r22+r23*8+0x1ea97a42], 16 IID13247 - __ xorq(Address(r23, +0x3c536823), 16); // xor qword ptr [r23+0x3c536823], 16 IID13248 - __ xorq(Address(r24, r25, (Address::ScaleFactor)2, +0x2d2b95a), 16); // xor qword ptr [r24+r25*4+0x2d2b95a], 16 IID13249 - __ xorq(Address(r25, r26, (Address::ScaleFactor)1, -0x6bb68ef5), 16); // xor qword ptr [r25+r26*2-0x6bb68ef5], 16 IID13250 - __ xorq(Address(r26, r27, (Address::ScaleFactor)3, +0x130d486), 16); // xor qword ptr [r26+r27*8+0x130d486], 16 IID13251 - __ xorq(Address(r27, r28, (Address::ScaleFactor)3, -0x5b405b37), 16); // xor qword ptr [r27+r28*8-0x5b405b37], 16 IID13252 - __ xorq(Address(r28, r29, (Address::ScaleFactor)2, -0x3c0acc09), 16); // xor qword ptr [r28+r29*4-0x3c0acc09], 16 IID13253 - __ xorq(Address(r29, r30, (Address::ScaleFactor)3, -0x270ed8dc), 16); // xor qword ptr [r29+r30*8-0x270ed8dc], 16 IID13254 - __ xorq(Address(r30, r31, (Address::ScaleFactor)0, -0x430ab926), 16); // xor qword ptr [r30+r31*1-0x430ab926], 16 IID13255 - __ xorq(Address(r31, rcx, (Address::ScaleFactor)0, -0x27a5d00f), 16); // xor qword ptr [r31+rcx*1-0x27a5d00f], 16 IID13256 - __ xorq(Address(rcx, rdx, (Address::ScaleFactor)0, +0x51c2f2ee), 256); // xor qword ptr [rcx+rdx*1+0x51c2f2ee], 256 IID13257 - __ xorq(Address(rdx, rbx, (Address::ScaleFactor)2, -0x62d02ce3), 256); // xor qword ptr [rdx+rbx*4-0x62d02ce3], 256 IID13258 - __ xorq(Address(rbx, r8, (Address::ScaleFactor)2, -0x1eacdc12), 256); // xor qword ptr [rbx+r8*4-0x1eacdc12], 256 IID13259 - __ xorq(Address(r8, r9, (Address::ScaleFactor)3, +0x728c119d), 256); // xor qword ptr [r8+r9*8+0x728c119d], 256 IID13260 - __ xorq(Address(r9, r10, (Address::ScaleFactor)3, -0x7ff0ca6), 256); // xor qword ptr [r9+r10*8-0x7ff0ca6], 256 IID13261 - __ xorq(Address(r10, r11, (Address::ScaleFactor)2, +0x5fde99d3), 256); // xor qword ptr [r10+r11*4+0x5fde99d3], 256 IID13262 - __ xorq(Address(r11, +0x5a5cebc9), 256); // xor qword ptr [r11+0x5a5cebc9], 256 IID13263 - __ xorq(Address(r12, r13, (Address::ScaleFactor)0, -0x59728608), 256); // xor qword ptr [r12+r13*1-0x59728608], 256 IID13264 - __ xorq(Address(r13, r14, (Address::ScaleFactor)2, +0x41fe69b3), 256); // xor qword ptr [r13+r14*4+0x41fe69b3], 256 IID13265 - __ xorq(Address(r14, r15, (Address::ScaleFactor)3, -0x45e743bf), 256); // xor qword ptr [r14+r15*8-0x45e743bf], 256 IID13266 - __ xorq(Address(r15, r16, (Address::ScaleFactor)3, +0x5db4e974), 256); // xor qword ptr [r15+r16*8+0x5db4e974], 256 IID13267 - __ xorq(Address(r16, r17, (Address::ScaleFactor)0, -0x3eb508b7), 256); // xor qword ptr [r16+r17*1-0x3eb508b7], 256 IID13268 - __ xorq(Address(r17, r18, (Address::ScaleFactor)1, +0x3c8c8e57), 256); // xor qword ptr [r17+r18*2+0x3c8c8e57], 256 IID13269 - __ xorq(Address(r18, +0x1ec1530a), 256); // xor qword ptr [r18+0x1ec1530a], 256 IID13270 - __ xorq(Address(r19, r20, (Address::ScaleFactor)3, +0x99566b9), 256); // xor qword ptr [r19+r20*8+0x99566b9], 256 IID13271 - __ xorq(Address(r20, r21, (Address::ScaleFactor)2, -0x7bd19351), 256); // xor qword ptr [r20+r21*4-0x7bd19351], 256 IID13272 - __ xorq(Address(r21, r22, (Address::ScaleFactor)1, +0x4801c109), 256); // xor qword ptr [r21+r22*2+0x4801c109], 256 IID13273 - __ xorq(Address(r22, +0x5ef43bfb), 256); // xor qword ptr [r22+0x5ef43bfb], 256 IID13274 - __ xorq(Address(r23, -0x4ed00c52), 256); // xor qword ptr [r23-0x4ed00c52], 256 IID13275 - __ xorq(Address(r24, +0x1cca9ad9), 256); // xor qword ptr [r24+0x1cca9ad9], 256 IID13276 - __ xorq(Address(r25, r26, (Address::ScaleFactor)1, -0x3811f05f), 256); // xor qword ptr [r25+r26*2-0x3811f05f], 256 IID13277 - __ xorq(Address(r26, r27, (Address::ScaleFactor)3, +0x11cec378), 256); // xor qword ptr [r26+r27*8+0x11cec378], 256 IID13278 - __ xorq(Address(r27, r28, (Address::ScaleFactor)2, +0xf922e5b), 256); // xor qword ptr [r27+r28*4+0xf922e5b], 256 IID13279 - __ xorq(Address(r28, r29, (Address::ScaleFactor)3, -0x76120b81), 256); // xor qword ptr [r28+r29*8-0x76120b81], 256 IID13280 - __ xorq(Address(r29, r30, (Address::ScaleFactor)0, +0x3dfc9d21), 256); // xor qword ptr [r29+r30*1+0x3dfc9d21], 256 IID13281 - __ xorq(Address(r30, r31, (Address::ScaleFactor)2, -0x6028027e), 256); // xor qword ptr [r30+r31*4-0x6028027e], 256 IID13282 - __ xorq(Address(r31, rcx, (Address::ScaleFactor)1, -0xb82f1ca), 256); // xor qword ptr [r31+rcx*2-0xb82f1ca], 256 IID13283 - __ xorq(Address(rcx, rdx, (Address::ScaleFactor)1, -0x41d2aa5d), 4096); // xor qword ptr [rcx+rdx*2-0x41d2aa5d], 4096 IID13284 - __ xorq(Address(rdx, rbx, (Address::ScaleFactor)2, +0xdebe98d), 4096); // xor qword ptr [rdx+rbx*4+0xdebe98d], 4096 IID13285 - __ xorq(Address(rbx, r8, (Address::ScaleFactor)1, +0x5cbe5d60), 4096); // xor qword ptr [rbx+r8*2+0x5cbe5d60], 4096 IID13286 - __ xorq(Address(r8, r9, (Address::ScaleFactor)1, -0x7c1e41ad), 4096); // xor qword ptr [r8+r9*2-0x7c1e41ad], 4096 IID13287 - __ xorq(Address(r9, +0x3fdd3623), 4096); // xor qword ptr [r9+0x3fdd3623], 4096 IID13288 - __ xorq(Address(r10, r11, (Address::ScaleFactor)2, +0x52a25cb5), 4096); // xor qword ptr [r10+r11*4+0x52a25cb5], 4096 IID13289 - __ xorq(Address(r11, r12, (Address::ScaleFactor)2, +0x4189dace), 4096); // xor qword ptr [r11+r12*4+0x4189dace], 4096 IID13290 - __ xorq(Address(r12, r13, (Address::ScaleFactor)1, +0x2985a2e1), 4096); // xor qword ptr [r12+r13*2+0x2985a2e1], 4096 IID13291 - __ xorq(Address(r13, -0x2a24ff4f), 4096); // xor qword ptr [r13-0x2a24ff4f], 4096 IID13292 - __ xorq(Address(r14, r15, (Address::ScaleFactor)0, -0x5330c522), 4096); // xor qword ptr [r14+r15*1-0x5330c522], 4096 IID13293 - __ xorq(Address(r15, +0x12e4567f), 4096); // xor qword ptr [r15+0x12e4567f], 4096 IID13294 - __ xorq(Address(r16, r17, (Address::ScaleFactor)3, -0x4f5b7bd2), 4096); // xor qword ptr [r16+r17*8-0x4f5b7bd2], 4096 IID13295 - __ xorq(Address(r17, r18, (Address::ScaleFactor)0, -0x7331a862), 4096); // xor qword ptr [r17+r18*1-0x7331a862], 4096 IID13296 - __ xorq(Address(r18, r19, (Address::ScaleFactor)0, -0x3fed1090), 4096); // xor qword ptr [r18+r19*1-0x3fed1090], 4096 IID13297 - __ xorq(Address(r19, r20, (Address::ScaleFactor)2, +0x2d53e02b), 4096); // xor qword ptr [r19+r20*4+0x2d53e02b], 4096 IID13298 - __ xorq(Address(r20, r21, (Address::ScaleFactor)2, -0x48cbfebd), 4096); // xor qword ptr [r20+r21*4-0x48cbfebd], 4096 IID13299 - __ xorq(Address(r21, r22, (Address::ScaleFactor)3, +0x310d99c), 4096); // xor qword ptr [r21+r22*8+0x310d99c], 4096 IID13300 - __ xorq(Address(r22, -0x7042c02b), 4096); // xor qword ptr [r22-0x7042c02b], 4096 IID13301 - __ xorq(Address(r23, r24, (Address::ScaleFactor)2, -0x801b515), 4096); // xor qword ptr [r23+r24*4-0x801b515], 4096 IID13302 - __ xorq(Address(r24, r25, (Address::ScaleFactor)1, +0x7977f297), 4096); // xor qword ptr [r24+r25*2+0x7977f297], 4096 IID13303 - __ xorq(Address(r25, r26, (Address::ScaleFactor)3, -0x2336efdd), 4096); // xor qword ptr [r25+r26*8-0x2336efdd], 4096 IID13304 - __ xorq(Address(r26, r27, (Address::ScaleFactor)0, -0x1be53a61), 4096); // xor qword ptr [r26+r27*1-0x1be53a61], 4096 IID13305 - __ xorq(Address(r27, r28, (Address::ScaleFactor)0, -0x35149e5e), 4096); // xor qword ptr [r27+r28*1-0x35149e5e], 4096 IID13306 - __ xorq(Address(r28, r29, (Address::ScaleFactor)0, +0x395de3ff), 4096); // xor qword ptr [r28+r29*1+0x395de3ff], 4096 IID13307 - __ xorq(Address(r29, r30, (Address::ScaleFactor)3, -0x34119f19), 4096); // xor qword ptr [r29+r30*8-0x34119f19], 4096 IID13308 - __ xorq(Address(r30, r31, (Address::ScaleFactor)3, +0x3c1f74b3), 4096); // xor qword ptr [r30+r31*8+0x3c1f74b3], 4096 IID13309 - __ xorq(Address(r31, rcx, (Address::ScaleFactor)1, -0x352af1b5), 4096); // xor qword ptr [r31+rcx*2-0x352af1b5], 4096 IID13310 - __ xorq(Address(rcx, +0x2f6c14e7), 65536); // xor qword ptr [rcx+0x2f6c14e7], 65536 IID13311 - __ xorq(Address(rdx, rbx, (Address::ScaleFactor)1, +0x6939f8f8), 65536); // xor qword ptr [rdx+rbx*2+0x6939f8f8], 65536 IID13312 - __ xorq(Address(rbx, r8, (Address::ScaleFactor)3, +0x52245e8e), 65536); // xor qword ptr [rbx+r8*8+0x52245e8e], 65536 IID13313 - __ xorq(Address(r8, r9, (Address::ScaleFactor)2, +0x47877f0d), 65536); // xor qword ptr [r8+r9*4+0x47877f0d], 65536 IID13314 - __ xorq(Address(r9, r10, (Address::ScaleFactor)0, -0x37b83c51), 65536); // xor qword ptr [r9+r10*1-0x37b83c51], 65536 IID13315 - __ xorq(Address(r10, r11, (Address::ScaleFactor)2, +0x210f915c), 65536); // xor qword ptr [r10+r11*4+0x210f915c], 65536 IID13316 - __ xorq(Address(r11, r12, (Address::ScaleFactor)3, -0x21d676d4), 65536); // xor qword ptr [r11+r12*8-0x21d676d4], 65536 IID13317 - __ xorq(Address(r12, r13, (Address::ScaleFactor)0, -0xf7039eb), 65536); // xor qword ptr [r12+r13*1-0xf7039eb], 65536 IID13318 - __ xorq(Address(r13, r14, (Address::ScaleFactor)2, -0x26bbe948), 65536); // xor qword ptr [r13+r14*4-0x26bbe948], 65536 IID13319 - __ xorq(Address(r14, r15, (Address::ScaleFactor)1, +0x18786797), 65536); // xor qword ptr [r14+r15*2+0x18786797], 65536 IID13320 - __ xorq(Address(r15, r16, (Address::ScaleFactor)3, +0x1e884c59), 65536); // xor qword ptr [r15+r16*8+0x1e884c59], 65536 IID13321 - __ xorq(Address(r16, r17, (Address::ScaleFactor)3, -0x3779fd03), 65536); // xor qword ptr [r16+r17*8-0x3779fd03], 65536 IID13322 - __ xorq(Address(r17, r18, (Address::ScaleFactor)0, -0x96be64), 65536); // xor qword ptr [r17+r18*1-0x96be64], 65536 IID13323 - __ xorq(Address(r18, r19, (Address::ScaleFactor)0, -0x252d00c5), 65536); // xor qword ptr [r18+r19*1-0x252d00c5], 65536 IID13324 - __ xorq(Address(r19, r20, (Address::ScaleFactor)1, +0xa2519ce), 65536); // xor qword ptr [r19+r20*2+0xa2519ce], 65536 IID13325 - __ xorq(Address(r20, r21, (Address::ScaleFactor)3, -0x82001f7), 65536); // xor qword ptr [r20+r21*8-0x82001f7], 65536 IID13326 - __ xorq(Address(r21, r22, (Address::ScaleFactor)3, -0x71b7e6e7), 65536); // xor qword ptr [r21+r22*8-0x71b7e6e7], 65536 IID13327 - __ xorq(Address(r22, r23, (Address::ScaleFactor)3, +0x2b2fbc42), 65536); // xor qword ptr [r22+r23*8+0x2b2fbc42], 65536 IID13328 - __ xorq(Address(r23, r24, (Address::ScaleFactor)1, +0x567b0a63), 65536); // xor qword ptr [r23+r24*2+0x567b0a63], 65536 IID13329 - __ xorq(Address(r24, r25, (Address::ScaleFactor)0, +0x7d3c9ee2), 65536); // xor qword ptr [r24+r25*1+0x7d3c9ee2], 65536 IID13330 - __ xorq(Address(r25, +0x46311324), 65536); // xor qword ptr [r25+0x46311324], 65536 IID13331 - __ xorq(Address(r26, r27, (Address::ScaleFactor)0, -0x6f7df0f8), 65536); // xor qword ptr [r26+r27*1-0x6f7df0f8], 65536 IID13332 - __ xorq(Address(r27, r28, (Address::ScaleFactor)3, +0x462a7d0a), 65536); // xor qword ptr [r27+r28*8+0x462a7d0a], 65536 IID13333 - __ xorq(Address(r28, r29, (Address::ScaleFactor)2, +0x6e5b954), 65536); // xor qword ptr [r28+r29*4+0x6e5b954], 65536 IID13334 - __ xorq(Address(r29, +0x1600da79), 65536); // xor qword ptr [r29+0x1600da79], 65536 IID13335 - __ xorq(Address(r30, +0x467a8f43), 65536); // xor qword ptr [r30+0x467a8f43], 65536 IID13336 - __ xorq(Address(r31, -0x773e8192), 65536); // xor qword ptr [r31-0x773e8192], 65536 IID13337 - __ xorq(Address(rcx, rdx, (Address::ScaleFactor)2, +0x5db3feee), 1048576); // xor qword ptr [rcx+rdx*4+0x5db3feee], 1048576 IID13338 - __ xorq(Address(rdx, rbx, (Address::ScaleFactor)2, -0x4e7fdff1), 1048576); // xor qword ptr [rdx+rbx*4-0x4e7fdff1], 1048576 IID13339 - __ xorq(Address(rbx, r8, (Address::ScaleFactor)0, -0x527603fd), 1048576); // xor qword ptr [rbx+r8*1-0x527603fd], 1048576 IID13340 - __ xorq(Address(r8, -0x419487a9), 1048576); // xor qword ptr [r8-0x419487a9], 1048576 IID13341 - __ xorq(Address(r9, r10, (Address::ScaleFactor)0, -0x517ed2f5), 1048576); // xor qword ptr [r9+r10*1-0x517ed2f5], 1048576 IID13342 - __ xorq(Address(r10, r11, (Address::ScaleFactor)1, -0x7c0b0afc), 1048576); // xor qword ptr [r10+r11*2-0x7c0b0afc], 1048576 IID13343 - __ xorq(Address(r11, r12, (Address::ScaleFactor)0, +0x1fb7d72b), 1048576); // xor qword ptr [r11+r12*1+0x1fb7d72b], 1048576 IID13344 - __ xorq(Address(r12, r13, (Address::ScaleFactor)3, +0x29dd89e0), 1048576); // xor qword ptr [r12+r13*8+0x29dd89e0], 1048576 IID13345 - __ xorq(Address(r13, -0x57cc4662), 1048576); // xor qword ptr [r13-0x57cc4662], 1048576 IID13346 - __ xorq(Address(r14, r15, (Address::ScaleFactor)2, -0x3bd37caa), 1048576); // xor qword ptr [r14+r15*4-0x3bd37caa], 1048576 IID13347 - __ xorq(Address(r15, r16, (Address::ScaleFactor)0, +0x1a5b1a74), 1048576); // xor qword ptr [r15+r16*1+0x1a5b1a74], 1048576 IID13348 - __ xorq(Address(r16, r17, (Address::ScaleFactor)3, +0x62a9fc43), 1048576); // xor qword ptr [r16+r17*8+0x62a9fc43], 1048576 IID13349 - __ xorq(Address(r17, +0xdd5bf39), 1048576); // xor qword ptr [r17+0xdd5bf39], 1048576 IID13350 - __ xorq(Address(r18, r19, (Address::ScaleFactor)0, -0x32d86f19), 1048576); // xor qword ptr [r18+r19*1-0x32d86f19], 1048576 IID13351 - __ xorq(Address(r19, r20, (Address::ScaleFactor)1, -0x633bea04), 1048576); // xor qword ptr [r19+r20*2-0x633bea04], 1048576 IID13352 - __ xorq(Address(r20, r21, (Address::ScaleFactor)0, -0x61faab32), 1048576); // xor qword ptr [r20+r21*1-0x61faab32], 1048576 IID13353 - __ xorq(Address(r21, r22, (Address::ScaleFactor)1, +0x52ecc65c), 1048576); // xor qword ptr [r21+r22*2+0x52ecc65c], 1048576 IID13354 - __ xorq(Address(r22, r23, (Address::ScaleFactor)1, +0x40085544), 1048576); // xor qword ptr [r22+r23*2+0x40085544], 1048576 IID13355 - __ xorq(Address(r23, r24, (Address::ScaleFactor)1, +0x5b32698e), 1048576); // xor qword ptr [r23+r24*2+0x5b32698e], 1048576 IID13356 - __ xorq(Address(r24, r25, (Address::ScaleFactor)3, +0x605f8189), 1048576); // xor qword ptr [r24+r25*8+0x605f8189], 1048576 IID13357 - __ xorq(Address(r25, r26, (Address::ScaleFactor)2, -0x34d5a3b8), 1048576); // xor qword ptr [r25+r26*4-0x34d5a3b8], 1048576 IID13358 - __ xorq(Address(r26, -0xc744789), 1048576); // xor qword ptr [r26-0xc744789], 1048576 IID13359 - __ xorq(Address(r27, r28, (Address::ScaleFactor)2, -0x67594c6c), 1048576); // xor qword ptr [r27+r28*4-0x67594c6c], 1048576 IID13360 - __ xorq(Address(r28, -0x1b77dca8), 1048576); // xor qword ptr [r28-0x1b77dca8], 1048576 IID13361 - __ xorq(Address(r29, +0x2f1f72aa), 1048576); // xor qword ptr [r29+0x2f1f72aa], 1048576 IID13362 - __ xorq(Address(r30, +0x3c036630), 1048576); // xor qword ptr [r30+0x3c036630], 1048576 IID13363 - __ xorq(Address(r31, rcx, (Address::ScaleFactor)2, +0x1db70a3d), 1048576); // xor qword ptr [r31+rcx*4+0x1db70a3d], 1048576 IID13364 - __ xorq(Address(rcx, rdx, (Address::ScaleFactor)2, +0x70b571b3), 16777216); // xor qword ptr [rcx+rdx*4+0x70b571b3], 16777216 IID13365 - __ xorq(Address(rdx, rbx, (Address::ScaleFactor)1, -0x660125e), 16777216); // xor qword ptr [rdx+rbx*2-0x660125e], 16777216 IID13366 - __ xorq(Address(rbx, r8, (Address::ScaleFactor)2, -0x47c228c5), 16777216); // xor qword ptr [rbx+r8*4-0x47c228c5], 16777216 IID13367 - __ xorq(Address(r8, r9, (Address::ScaleFactor)0, +0x661d84c7), 16777216); // xor qword ptr [r8+r9*1+0x661d84c7], 16777216 IID13368 - __ xorq(Address(r9, r10, (Address::ScaleFactor)0, -0x1a8c2cdc), 16777216); // xor qword ptr [r9+r10*1-0x1a8c2cdc], 16777216 IID13369 - __ xorq(Address(r10, r11, (Address::ScaleFactor)1, +0x13dc025d), 16777216); // xor qword ptr [r10+r11*2+0x13dc025d], 16777216 IID13370 - __ xorq(Address(r11, r12, (Address::ScaleFactor)0, -0x6a75de3b), 16777216); // xor qword ptr [r11+r12*1-0x6a75de3b], 16777216 IID13371 - __ xorq(Address(r12, -0x7d6340bf), 16777216); // xor qword ptr [r12-0x7d6340bf], 16777216 IID13372 - __ xorq(Address(r13, r14, (Address::ScaleFactor)1, -0x343a9ef1), 16777216); // xor qword ptr [r13+r14*2-0x343a9ef1], 16777216 IID13373 - __ xorq(Address(r14, +0x69b5de00), 16777216); // xor qword ptr [r14+0x69b5de00], 16777216 IID13374 - __ xorq(Address(r15, r16, (Address::ScaleFactor)3, -0x79b8a0f5), 16777216); // xor qword ptr [r15+r16*8-0x79b8a0f5], 16777216 IID13375 - __ xorq(Address(r16, r17, (Address::ScaleFactor)2, -0x17b696fc), 16777216); // xor qword ptr [r16+r17*4-0x17b696fc], 16777216 IID13376 - __ xorq(Address(r17, r18, (Address::ScaleFactor)1, -0x6490bb27), 16777216); // xor qword ptr [r17+r18*2-0x6490bb27], 16777216 IID13377 - __ xorq(Address(r18, r19, (Address::ScaleFactor)1, +0x78e82283), 16777216); // xor qword ptr [r18+r19*2+0x78e82283], 16777216 IID13378 - __ xorq(Address(r19, r20, (Address::ScaleFactor)2, +0x42f0231b), 16777216); // xor qword ptr [r19+r20*4+0x42f0231b], 16777216 IID13379 - __ xorq(Address(r20, r21, (Address::ScaleFactor)2, -0x652c96bf), 16777216); // xor qword ptr [r20+r21*4-0x652c96bf], 16777216 IID13380 - __ xorq(Address(r21, r22, (Address::ScaleFactor)3, +0xc2b3018), 16777216); // xor qword ptr [r21+r22*8+0xc2b3018], 16777216 IID13381 - __ xorq(Address(r22, r23, (Address::ScaleFactor)2, +0x135b45c6), 16777216); // xor qword ptr [r22+r23*4+0x135b45c6], 16777216 IID13382 - __ xorq(Address(r23, r24, (Address::ScaleFactor)0, -0x77310ac3), 16777216); // xor qword ptr [r23+r24*1-0x77310ac3], 16777216 IID13383 - __ xorq(Address(r24, r25, (Address::ScaleFactor)2, +0x32bcba22), 16777216); // xor qword ptr [r24+r25*4+0x32bcba22], 16777216 IID13384 - __ xorq(Address(r25, r26, (Address::ScaleFactor)3, -0x4ffc6ac3), 16777216); // xor qword ptr [r25+r26*8-0x4ffc6ac3], 16777216 IID13385 - __ xorq(Address(r26, -0x3648126a), 16777216); // xor qword ptr [r26-0x3648126a], 16777216 IID13386 - __ xorq(Address(r27, r28, (Address::ScaleFactor)1, +0xaaecfa3), 16777216); // xor qword ptr [r27+r28*2+0xaaecfa3], 16777216 IID13387 - __ xorq(Address(r28, -0x7aca1c96), 16777216); // xor qword ptr [r28-0x7aca1c96], 16777216 IID13388 - __ xorq(Address(r29, r30, (Address::ScaleFactor)0, +0xb7300d6), 16777216); // xor qword ptr [r29+r30*1+0xb7300d6], 16777216 IID13389 - __ xorq(Address(r30, r31, (Address::ScaleFactor)2, -0x6188282e), 16777216); // xor qword ptr [r30+r31*4-0x6188282e], 16777216 IID13390 - __ xorq(Address(r31, rcx, (Address::ScaleFactor)1, -0x4cc18dc5), 16777216); // xor qword ptr [r31+rcx*2-0x4cc18dc5], 16777216 IID13391 - __ xorq(Address(rcx, rdx, (Address::ScaleFactor)3, +0x4709909b), 268435456); // xor qword ptr [rcx+rdx*8+0x4709909b], 268435456 IID13392 - __ xorq(Address(rdx, -0x595b5746), 268435456); // xor qword ptr [rdx-0x595b5746], 268435456 IID13393 - __ xorq(Address(rbx, r8, (Address::ScaleFactor)1, -0x4032a6fd), 268435456); // xor qword ptr [rbx+r8*2-0x4032a6fd], 268435456 IID13394 - __ xorq(Address(r8, r9, (Address::ScaleFactor)2, -0x6fc86588), 268435456); // xor qword ptr [r8+r9*4-0x6fc86588], 268435456 IID13395 - __ xorq(Address(r9, r10, (Address::ScaleFactor)1, +0x601245c6), 268435456); // xor qword ptr [r9+r10*2+0x601245c6], 268435456 IID13396 - __ xorq(Address(r10, r11, (Address::ScaleFactor)3, -0x2adff9ae), 268435456); // xor qword ptr [r10+r11*8-0x2adff9ae], 268435456 IID13397 - __ xorq(Address(r11, r12, (Address::ScaleFactor)1, -0x3bdacab8), 268435456); // xor qword ptr [r11+r12*2-0x3bdacab8], 268435456 IID13398 - __ xorq(Address(r12, r13, (Address::ScaleFactor)2, -0x4c18af38), 268435456); // xor qword ptr [r12+r13*4-0x4c18af38], 268435456 IID13399 - __ xorq(Address(r13, +0x2e39284b), 268435456); // xor qword ptr [r13+0x2e39284b], 268435456 IID13400 - __ xorq(Address(r14, r15, (Address::ScaleFactor)1, +0x15614d70), 268435456); // xor qword ptr [r14+r15*2+0x15614d70], 268435456 IID13401 - __ xorq(Address(r15, r16, (Address::ScaleFactor)0, -0x4ea258eb), 268435456); // xor qword ptr [r15+r16*1-0x4ea258eb], 268435456 IID13402 - __ xorq(Address(r16, r17, (Address::ScaleFactor)1, -0x3146c87e), 268435456); // xor qword ptr [r16+r17*2-0x3146c87e], 268435456 IID13403 - __ xorq(Address(r17, -0x2e34110c), 268435456); // xor qword ptr [r17-0x2e34110c], 268435456 IID13404 - __ xorq(Address(r18, r19, (Address::ScaleFactor)2, -0x736e24d2), 268435456); // xor qword ptr [r18+r19*4-0x736e24d2], 268435456 IID13405 - __ xorq(Address(r19, r20, (Address::ScaleFactor)1, +0xb67fb0f), 268435456); // xor qword ptr [r19+r20*2+0xb67fb0f], 268435456 IID13406 - __ xorq(Address(r20, r21, (Address::ScaleFactor)1, +0x1abb490a), 268435456); // xor qword ptr [r20+r21*2+0x1abb490a], 268435456 IID13407 - __ xorq(Address(r21, r22, (Address::ScaleFactor)2, -0xc4615b), 268435456); // xor qword ptr [r21+r22*4-0xc4615b], 268435456 IID13408 - __ xorq(Address(r22, r23, (Address::ScaleFactor)2, -0x17309af9), 268435456); // xor qword ptr [r22+r23*4-0x17309af9], 268435456 IID13409 - __ xorq(Address(r23, r24, (Address::ScaleFactor)2, +0x7d7d5773), 268435456); // xor qword ptr [r23+r24*4+0x7d7d5773], 268435456 IID13410 - __ xorq(Address(r24, r25, (Address::ScaleFactor)1, -0x6e282f95), 268435456); // xor qword ptr [r24+r25*2-0x6e282f95], 268435456 IID13411 - __ xorq(Address(r25, r26, (Address::ScaleFactor)3, -0x653a24cc), 268435456); // xor qword ptr [r25+r26*8-0x653a24cc], 268435456 IID13412 - __ xorq(Address(r26, r27, (Address::ScaleFactor)1, +0x1f45d191), 268435456); // xor qword ptr [r26+r27*2+0x1f45d191], 268435456 IID13413 - __ xorq(Address(r27, r28, (Address::ScaleFactor)1, -0x5725371a), 268435456); // xor qword ptr [r27+r28*2-0x5725371a], 268435456 IID13414 - __ xorq(Address(r28, r29, (Address::ScaleFactor)2, +0x3999b113), 268435456); // xor qword ptr [r28+r29*4+0x3999b113], 268435456 IID13415 - __ xorq(Address(r29, r30, (Address::ScaleFactor)2, +0x3681ad57), 268435456); // xor qword ptr [r29+r30*4+0x3681ad57], 268435456 IID13416 - __ xorq(Address(r30, +0x32bf898e), 268435456); // xor qword ptr [r30+0x32bf898e], 268435456 IID13417 - __ xorq(Address(r31, rcx, (Address::ScaleFactor)0, -0x3eaa0c92), 268435456); // xor qword ptr [r31+rcx*1-0x3eaa0c92], 268435456 IID13418 - __ orq(Address(rcx, rdx, (Address::ScaleFactor)2, -0x39bd0c1d), 1); // or qword ptr [rcx+rdx*4-0x39bd0c1d], 1 IID13419 - __ orq(Address(rdx, rbx, (Address::ScaleFactor)2, +0x5e212a24), 1); // or qword ptr [rdx+rbx*4+0x5e212a24], 1 IID13420 - __ orq(Address(rbx, r8, (Address::ScaleFactor)2, +0x11705037), 1); // or qword ptr [rbx+r8*4+0x11705037], 1 IID13421 - __ orq(Address(r8, r9, (Address::ScaleFactor)1, +0x31d9c620), 1); // or qword ptr [r8+r9*2+0x31d9c620], 1 IID13422 - __ orq(Address(r9, r10, (Address::ScaleFactor)3, -0x712d4eea), 1); // or qword ptr [r9+r10*8-0x712d4eea], 1 IID13423 - __ orq(Address(r10, r11, (Address::ScaleFactor)3, -0x128548cc), 1); // or qword ptr [r10+r11*8-0x128548cc], 1 IID13424 - __ orq(Address(r11, r12, (Address::ScaleFactor)2, +0x287e72bf), 1); // or qword ptr [r11+r12*4+0x287e72bf], 1 IID13425 - __ orq(Address(r12, r13, (Address::ScaleFactor)3, -0x6398b42a), 1); // or qword ptr [r12+r13*8-0x6398b42a], 1 IID13426 - __ orq(Address(r13, r14, (Address::ScaleFactor)3, +0x31a500b2), 1); // or qword ptr [r13+r14*8+0x31a500b2], 1 IID13427 - __ orq(Address(r14, r15, (Address::ScaleFactor)1, -0x4728b24b), 1); // or qword ptr [r14+r15*2-0x4728b24b], 1 IID13428 - __ orq(Address(r15, r16, (Address::ScaleFactor)2, -0x6f5c7a41), 1); // or qword ptr [r15+r16*4-0x6f5c7a41], 1 IID13429 - __ orq(Address(r16, +0x3a7487e6), 1); // or qword ptr [r16+0x3a7487e6], 1 IID13430 - __ orq(Address(r17, r18, (Address::ScaleFactor)2, -0x78d51568), 1); // or qword ptr [r17+r18*4-0x78d51568], 1 IID13431 - __ orq(Address(r18, r19, (Address::ScaleFactor)2, -0x689590d7), 1); // or qword ptr [r18+r19*4-0x689590d7], 1 IID13432 - __ orq(Address(r19, -0x42c9cc9f), 1); // or qword ptr [r19-0x42c9cc9f], 1 IID13433 - __ orq(Address(r20, r21, (Address::ScaleFactor)2, +0x19b0f524), 1); // or qword ptr [r20+r21*4+0x19b0f524], 1 IID13434 - __ orq(Address(r21, -0x2a80234f), 1); // or qword ptr [r21-0x2a80234f], 1 IID13435 - __ orq(Address(r22, -0x266674ac), 1); // or qword ptr [r22-0x266674ac], 1 IID13436 - __ orq(Address(r23, +0x3996e73e), 1); // or qword ptr [r23+0x3996e73e], 1 IID13437 - __ orq(Address(r24, r25, (Address::ScaleFactor)3, -0x4d0c8269), 1); // or qword ptr [r24+r25*8-0x4d0c8269], 1 IID13438 - __ orq(Address(r25, r26, (Address::ScaleFactor)1, -0x77d02149), 1); // or qword ptr [r25+r26*2-0x77d02149], 1 IID13439 - __ orq(Address(r26, r27, (Address::ScaleFactor)1, +0x47a304ef), 1); // or qword ptr [r26+r27*2+0x47a304ef], 1 IID13440 - __ orq(Address(r27, r28, (Address::ScaleFactor)2, -0x32b14790), 1); // or qword ptr [r27+r28*4-0x32b14790], 1 IID13441 - __ orq(Address(r28, r29, (Address::ScaleFactor)3, +0x3aeb85d8), 1); // or qword ptr [r28+r29*8+0x3aeb85d8], 1 IID13442 - __ orq(Address(r29, +0x470b1da1), 1); // or qword ptr [r29+0x470b1da1], 1 IID13443 - __ orq(Address(r30, r31, (Address::ScaleFactor)1, -0x7c0e55f), 1); // or qword ptr [r30+r31*2-0x7c0e55f], 1 IID13444 - __ orq(Address(r31, +0x405ac3f6), 1); // or qword ptr [r31+0x405ac3f6], 1 IID13445 - __ orq(Address(rcx, rdx, (Address::ScaleFactor)3, +0x7aa190a1), 16); // or qword ptr [rcx+rdx*8+0x7aa190a1], 16 IID13446 - __ orq(Address(rdx, rbx, (Address::ScaleFactor)0, +0x37a42887), 16); // or qword ptr [rdx+rbx*1+0x37a42887], 16 IID13447 - __ orq(Address(rbx, r8, (Address::ScaleFactor)2, -0x5fb7d34f), 16); // or qword ptr [rbx+r8*4-0x5fb7d34f], 16 IID13448 - __ orq(Address(r8, r9, (Address::ScaleFactor)0, +0x2d0def8c), 16); // or qword ptr [r8+r9*1+0x2d0def8c], 16 IID13449 - __ orq(Address(r9, r10, (Address::ScaleFactor)2, -0x6165241e), 16); // or qword ptr [r9+r10*4-0x6165241e], 16 IID13450 - __ orq(Address(r10, r11, (Address::ScaleFactor)0, -0x33955b37), 16); // or qword ptr [r10+r11*1-0x33955b37], 16 IID13451 - __ orq(Address(r11, r12, (Address::ScaleFactor)0, -0x636dd00), 16); // or qword ptr [r11+r12*1-0x636dd00], 16 IID13452 - __ orq(Address(r12, r13, (Address::ScaleFactor)3, +0x4380c1b0), 16); // or qword ptr [r12+r13*8+0x4380c1b0], 16 IID13453 - __ orq(Address(r13, r14, (Address::ScaleFactor)1, -0x70ab272c), 16); // or qword ptr [r13+r14*2-0x70ab272c], 16 IID13454 - __ orq(Address(r14, r15, (Address::ScaleFactor)0, +0x170acc7), 16); // or qword ptr [r14+r15*1+0x170acc7], 16 IID13455 - __ orq(Address(r15, -0x2e6993f0), 16); // or qword ptr [r15-0x2e6993f0], 16 IID13456 - __ orq(Address(r16, -0x4b5e98c7), 16); // or qword ptr [r16-0x4b5e98c7], 16 IID13457 - __ orq(Address(r17, r18, (Address::ScaleFactor)2, -0x1391ba53), 16); // or qword ptr [r17+r18*4-0x1391ba53], 16 IID13458 - __ orq(Address(r18, r19, (Address::ScaleFactor)3, +0x33801ad2), 16); // or qword ptr [r18+r19*8+0x33801ad2], 16 IID13459 - __ orq(Address(r19, r20, (Address::ScaleFactor)1, +0x2932a624), 16); // or qword ptr [r19+r20*2+0x2932a624], 16 IID13460 - __ orq(Address(r20, r21, (Address::ScaleFactor)0, -0x8d6180d), 16); // or qword ptr [r20+r21*1-0x8d6180d], 16 IID13461 - __ orq(Address(r21, -0x3438c497), 16); // or qword ptr [r21-0x3438c497], 16 IID13462 - __ orq(Address(r22, -0x4fd8e38a), 16); // or qword ptr [r22-0x4fd8e38a], 16 IID13463 - __ orq(Address(r23, -0x772749df), 16); // or qword ptr [r23-0x772749df], 16 IID13464 - __ orq(Address(r24, r25, (Address::ScaleFactor)0, +0xbf5b9c4), 16); // or qword ptr [r24+r25*1+0xbf5b9c4], 16 IID13465 - __ orq(Address(r25, -0x3a7b764a), 16); // or qword ptr [r25-0x3a7b764a], 16 IID13466 - __ orq(Address(r26, +0x45895f4), 16); // or qword ptr [r26+0x45895f4], 16 IID13467 - __ orq(Address(r27, r28, (Address::ScaleFactor)2, +0x6d17f5ba), 16); // or qword ptr [r27+r28*4+0x6d17f5ba], 16 IID13468 - __ orq(Address(r28, -0x2ebbabf1), 16); // or qword ptr [r28-0x2ebbabf1], 16 IID13469 - __ orq(Address(r29, r30, (Address::ScaleFactor)3, -0x84bb755), 16); // or qword ptr [r29+r30*8-0x84bb755], 16 IID13470 - __ orq(Address(r30, r31, (Address::ScaleFactor)0, +0x5a92fe23), 16); // or qword ptr [r30+r31*1+0x5a92fe23], 16 IID13471 - __ orq(Address(r31, rcx, (Address::ScaleFactor)1, -0x7c5ccd56), 16); // or qword ptr [r31+rcx*2-0x7c5ccd56], 16 IID13472 - __ orq(Address(rcx, rdx, (Address::ScaleFactor)3, +0x3bc8670a), 256); // or qword ptr [rcx+rdx*8+0x3bc8670a], 256 IID13473 - __ orq(Address(rdx, +0x1c928dc9), 256); // or qword ptr [rdx+0x1c928dc9], 256 IID13474 - __ orq(Address(rbx, r8, (Address::ScaleFactor)3, +0x7f830346), 256); // or qword ptr [rbx+r8*8+0x7f830346], 256 IID13475 - __ orq(Address(r8, r9, (Address::ScaleFactor)3, +0x5db7b31), 256); // or qword ptr [r8+r9*8+0x5db7b31], 256 IID13476 - __ orq(Address(r9, r10, (Address::ScaleFactor)0, -0x2462a8c4), 256); // or qword ptr [r9+r10*1-0x2462a8c4], 256 IID13477 - __ orq(Address(r10, r11, (Address::ScaleFactor)2, -0xd6b4861), 256); // or qword ptr [r10+r11*4-0xd6b4861], 256 IID13478 - __ orq(Address(r11, -0x53afc97c), 256); // or qword ptr [r11-0x53afc97c], 256 IID13479 - __ orq(Address(r12, r13, (Address::ScaleFactor)3, -0x124e3995), 256); // or qword ptr [r12+r13*8-0x124e3995], 256 IID13480 - __ orq(Address(r13, r14, (Address::ScaleFactor)0, +0x1bb0a116), 256); // or qword ptr [r13+r14*1+0x1bb0a116], 256 IID13481 - __ orq(Address(r14, r15, (Address::ScaleFactor)1, +0x2462ed0e), 256); // or qword ptr [r14+r15*2+0x2462ed0e], 256 IID13482 - __ orq(Address(r15, +0x3b5d5eab), 256); // or qword ptr [r15+0x3b5d5eab], 256 IID13483 - __ orq(Address(r16, +0x4a6f614c), 256); // or qword ptr [r16+0x4a6f614c], 256 IID13484 - __ orq(Address(r17, r18, (Address::ScaleFactor)2, -0x2fe152f0), 256); // or qword ptr [r17+r18*4-0x2fe152f0], 256 IID13485 - __ orq(Address(r18, r19, (Address::ScaleFactor)2, +0x75bc87dc), 256); // or qword ptr [r18+r19*4+0x75bc87dc], 256 IID13486 - __ orq(Address(r19, +0x6a2aa3f), 256); // or qword ptr [r19+0x6a2aa3f], 256 IID13487 - __ orq(Address(r20, +0x7a12bbec), 256); // or qword ptr [r20+0x7a12bbec], 256 IID13488 - __ orq(Address(r21, r22, (Address::ScaleFactor)1, +0x39b19eba), 256); // or qword ptr [r21+r22*2+0x39b19eba], 256 IID13489 - __ orq(Address(r22, r23, (Address::ScaleFactor)3, -0x76f55c06), 256); // or qword ptr [r22+r23*8-0x76f55c06], 256 IID13490 - __ orq(Address(r23, r24, (Address::ScaleFactor)0, +0x134208fc), 256); // or qword ptr [r23+r24*1+0x134208fc], 256 IID13491 - __ orq(Address(r24, r25, (Address::ScaleFactor)3, -0x121d0844), 256); // or qword ptr [r24+r25*8-0x121d0844], 256 IID13492 - __ orq(Address(r25, r26, (Address::ScaleFactor)1, -0x649b7d31), 256); // or qword ptr [r25+r26*2-0x649b7d31], 256 IID13493 - __ orq(Address(r26, +0x21a9015c), 256); // or qword ptr [r26+0x21a9015c], 256 IID13494 - __ orq(Address(r27, -0x11e23bed), 256); // or qword ptr [r27-0x11e23bed], 256 IID13495 - __ orq(Address(r28, -0x1a51d8ff), 256); // or qword ptr [r28-0x1a51d8ff], 256 IID13496 - __ orq(Address(r29, r30, (Address::ScaleFactor)2, -0x21960b16), 256); // or qword ptr [r29+r30*4-0x21960b16], 256 IID13497 - __ orq(Address(r30, r31, (Address::ScaleFactor)1, +0x458bfeb5), 256); // or qword ptr [r30+r31*2+0x458bfeb5], 256 IID13498 - __ orq(Address(r31, +0x11b5dc3), 256); // or qword ptr [r31+0x11b5dc3], 256 IID13499 - __ orq(Address(rcx, rdx, (Address::ScaleFactor)1, +0x2ebcc8dc), 4096); // or qword ptr [rcx+rdx*2+0x2ebcc8dc], 4096 IID13500 - __ orq(Address(rdx, rbx, (Address::ScaleFactor)1, -0x44530038), 4096); // or qword ptr [rdx+rbx*2-0x44530038], 4096 IID13501 - __ orq(Address(rbx, -0x72696808), 4096); // or qword ptr [rbx-0x72696808], 4096 IID13502 - __ orq(Address(r8, +0x3dea9016), 4096); // or qword ptr [r8+0x3dea9016], 4096 IID13503 - __ orq(Address(r9, r10, (Address::ScaleFactor)0, +0xf8fd59b), 4096); // or qword ptr [r9+r10*1+0xf8fd59b], 4096 IID13504 - __ orq(Address(r10, r11, (Address::ScaleFactor)2, -0x537b067e), 4096); // or qword ptr [r10+r11*4-0x537b067e], 4096 IID13505 - __ orq(Address(r11, r12, (Address::ScaleFactor)0, -0x363f13f9), 4096); // or qword ptr [r11+r12*1-0x363f13f9], 4096 IID13506 - __ orq(Address(r12, r13, (Address::ScaleFactor)1, -0x4020ad27), 4096); // or qword ptr [r12+r13*2-0x4020ad27], 4096 IID13507 - __ orq(Address(r13, +0x4896efb3), 4096); // or qword ptr [r13+0x4896efb3], 4096 IID13508 - __ orq(Address(r14, r15, (Address::ScaleFactor)2, -0x9486d84), 4096); // or qword ptr [r14+r15*4-0x9486d84], 4096 IID13509 - __ orq(Address(r15, r16, (Address::ScaleFactor)2, +0x3ef2bedc), 4096); // or qword ptr [r15+r16*4+0x3ef2bedc], 4096 IID13510 - __ orq(Address(r16, r17, (Address::ScaleFactor)0, -0x4683a994), 4096); // or qword ptr [r16+r17*1-0x4683a994], 4096 IID13511 - __ orq(Address(r17, r18, (Address::ScaleFactor)3, -0x33cfd470), 4096); // or qword ptr [r17+r18*8-0x33cfd470], 4096 IID13512 - __ orq(Address(r18, r19, (Address::ScaleFactor)1, +0x96f1641), 4096); // or qword ptr [r18+r19*2+0x96f1641], 4096 IID13513 - __ orq(Address(r19, r20, (Address::ScaleFactor)2, +0x23d756ce), 4096); // or qword ptr [r19+r20*4+0x23d756ce], 4096 IID13514 - __ orq(Address(r20, r21, (Address::ScaleFactor)0, -0xe6d3dc4), 4096); // or qword ptr [r20+r21*1-0xe6d3dc4], 4096 IID13515 - __ orq(Address(r21, r22, (Address::ScaleFactor)2, +0x14027dd4), 4096); // or qword ptr [r21+r22*4+0x14027dd4], 4096 IID13516 - __ orq(Address(r22, r23, (Address::ScaleFactor)0, -0x18c00960), 4096); // or qword ptr [r22+r23*1-0x18c00960], 4096 IID13517 - __ orq(Address(r23, r24, (Address::ScaleFactor)3, +0x6de692ac), 4096); // or qword ptr [r23+r24*8+0x6de692ac], 4096 IID13518 - __ orq(Address(r24, r25, (Address::ScaleFactor)1, -0x2c6ac933), 4096); // or qword ptr [r24+r25*2-0x2c6ac933], 4096 IID13519 - __ orq(Address(r25, r26, (Address::ScaleFactor)0, +0x3dc036b2), 4096); // or qword ptr [r25+r26*1+0x3dc036b2], 4096 IID13520 - __ orq(Address(r26, r27, (Address::ScaleFactor)3, -0x47761c09), 4096); // or qword ptr [r26+r27*8-0x47761c09], 4096 IID13521 - __ orq(Address(r27, r28, (Address::ScaleFactor)0, +0x4efdd066), 4096); // or qword ptr [r27+r28*1+0x4efdd066], 4096 IID13522 - __ orq(Address(r28, -0x5354dadc), 4096); // or qword ptr [r28-0x5354dadc], 4096 IID13523 - __ orq(Address(r29, r30, (Address::ScaleFactor)3, -0x77f14697), 4096); // or qword ptr [r29+r30*8-0x77f14697], 4096 IID13524 - __ orq(Address(r30, r31, (Address::ScaleFactor)0, +0x731c0b49), 4096); // or qword ptr [r30+r31*1+0x731c0b49], 4096 IID13525 - __ orq(Address(r31, rcx, (Address::ScaleFactor)0, +0x5df8485a), 4096); // or qword ptr [r31+rcx*1+0x5df8485a], 4096 IID13526 - __ orq(Address(rcx, rdx, (Address::ScaleFactor)1, -0x1a47e526), 65536); // or qword ptr [rcx+rdx*2-0x1a47e526], 65536 IID13527 - __ orq(Address(rdx, rbx, (Address::ScaleFactor)2, -0x12078ea9), 65536); // or qword ptr [rdx+rbx*4-0x12078ea9], 65536 IID13528 - __ orq(Address(rbx, +0x5cd6689c), 65536); // or qword ptr [rbx+0x5cd6689c], 65536 IID13529 - __ orq(Address(r8, -0x3e451602), 65536); // or qword ptr [r8-0x3e451602], 65536 IID13530 - __ orq(Address(r9, -0x11f9f851), 65536); // or qword ptr [r9-0x11f9f851], 65536 IID13531 - __ orq(Address(r10, r11, (Address::ScaleFactor)2, -0x7457d2d0), 65536); // or qword ptr [r10+r11*4-0x7457d2d0], 65536 IID13532 - __ orq(Address(r11, r12, (Address::ScaleFactor)2, -0xa476f02), 65536); // or qword ptr [r11+r12*4-0xa476f02], 65536 IID13533 - __ orq(Address(r12, +0x40e7693b), 65536); // or qword ptr [r12+0x40e7693b], 65536 IID13534 - __ orq(Address(r13, r14, (Address::ScaleFactor)3, +0x26cf75ed), 65536); // or qword ptr [r13+r14*8+0x26cf75ed], 65536 IID13535 - __ orq(Address(r14, r15, (Address::ScaleFactor)3, -0x7d6b23ce), 65536); // or qword ptr [r14+r15*8-0x7d6b23ce], 65536 IID13536 - __ orq(Address(r15, r16, (Address::ScaleFactor)1, +0x4c5fc6b0), 65536); // or qword ptr [r15+r16*2+0x4c5fc6b0], 65536 IID13537 - __ orq(Address(r16, -0x5448b145), 65536); // or qword ptr [r16-0x5448b145], 65536 IID13538 - __ orq(Address(r17, r18, (Address::ScaleFactor)0, +0x4e92a429), 65536); // or qword ptr [r17+r18*1+0x4e92a429], 65536 IID13539 - __ orq(Address(r18, r19, (Address::ScaleFactor)1, -0x716dff45), 65536); // or qword ptr [r18+r19*2-0x716dff45], 65536 IID13540 - __ orq(Address(r19, r20, (Address::ScaleFactor)3, -0x4026a96), 65536); // or qword ptr [r19+r20*8-0x4026a96], 65536 IID13541 - __ orq(Address(r20, r21, (Address::ScaleFactor)3, +0x106d5928), 65536); // or qword ptr [r20+r21*8+0x106d5928], 65536 IID13542 - __ orq(Address(r21, +0x2e865ab5), 65536); // or qword ptr [r21+0x2e865ab5], 65536 IID13543 - __ orq(Address(r22, r23, (Address::ScaleFactor)0, +0x1e033783), 65536); // or qword ptr [r22+r23*1+0x1e033783], 65536 IID13544 - __ orq(Address(r23, r24, (Address::ScaleFactor)1, -0x56ba1a6), 65536); // or qword ptr [r23+r24*2-0x56ba1a6], 65536 IID13545 - __ orq(Address(r24, r25, (Address::ScaleFactor)3, -0x37f08722), 65536); // or qword ptr [r24+r25*8-0x37f08722], 65536 IID13546 - __ orq(Address(r25, r26, (Address::ScaleFactor)1, +0x5006d6f0), 65536); // or qword ptr [r25+r26*2+0x5006d6f0], 65536 IID13547 - __ orq(Address(r26, r27, (Address::ScaleFactor)0, +0x4106fb0a), 65536); // or qword ptr [r26+r27*1+0x4106fb0a], 65536 IID13548 - __ orq(Address(r27, -0x6a32d5ec), 65536); // or qword ptr [r27-0x6a32d5ec], 65536 IID13549 - __ orq(Address(r28, -0x7502bb81), 65536); // or qword ptr [r28-0x7502bb81], 65536 IID13550 - __ orq(Address(r29, r30, (Address::ScaleFactor)1, +0x478a0a93), 65536); // or qword ptr [r29+r30*2+0x478a0a93], 65536 IID13551 - __ orq(Address(r30, r31, (Address::ScaleFactor)3, -0x1aa16747), 65536); // or qword ptr [r30+r31*8-0x1aa16747], 65536 IID13552 - __ orq(Address(r31, rcx, (Address::ScaleFactor)1, -0x7a7b2980), 65536); // or qword ptr [r31+rcx*2-0x7a7b2980], 65536 IID13553 - __ orq(Address(rcx, rdx, (Address::ScaleFactor)3, -0x5662c996), 1048576); // or qword ptr [rcx+rdx*8-0x5662c996], 1048576 IID13554 - __ orq(Address(rdx, +0x29d8ca52), 1048576); // or qword ptr [rdx+0x29d8ca52], 1048576 IID13555 - __ orq(Address(rbx, r8, (Address::ScaleFactor)0, -0x2038f688), 1048576); // or qword ptr [rbx+r8*1-0x2038f688], 1048576 IID13556 - __ orq(Address(r8, r9, (Address::ScaleFactor)0, -0x6805d628), 1048576); // or qword ptr [r8+r9*1-0x6805d628], 1048576 IID13557 - __ orq(Address(r9, r10, (Address::ScaleFactor)1, -0x5f2b74b), 1048576); // or qword ptr [r9+r10*2-0x5f2b74b], 1048576 IID13558 - __ orq(Address(r10, r11, (Address::ScaleFactor)2, +0x7d2d9521), 1048576); // or qword ptr [r10+r11*4+0x7d2d9521], 1048576 IID13559 - __ orq(Address(r11, r12, (Address::ScaleFactor)2, +0x6d9fae2d), 1048576); // or qword ptr [r11+r12*4+0x6d9fae2d], 1048576 IID13560 - __ orq(Address(r12, r13, (Address::ScaleFactor)3, +0x1b75535f), 1048576); // or qword ptr [r12+r13*8+0x1b75535f], 1048576 IID13561 - __ orq(Address(r13, -0xf3e280f), 1048576); // or qword ptr [r13-0xf3e280f], 1048576 IID13562 - __ orq(Address(r14, r15, (Address::ScaleFactor)0, -0x76f975c5), 1048576); // or qword ptr [r14+r15*1-0x76f975c5], 1048576 IID13563 - __ orq(Address(r15, +0x67b87046), 1048576); // or qword ptr [r15+0x67b87046], 1048576 IID13564 - __ orq(Address(r16, r17, (Address::ScaleFactor)0, +0x8801129), 1048576); // or qword ptr [r16+r17*1+0x8801129], 1048576 IID13565 - __ orq(Address(r17, r18, (Address::ScaleFactor)2, +0x6b9dff41), 1048576); // or qword ptr [r17+r18*4+0x6b9dff41], 1048576 IID13566 - __ orq(Address(r18, r19, (Address::ScaleFactor)0, -0x7a8d5ae1), 1048576); // or qword ptr [r18+r19*1-0x7a8d5ae1], 1048576 IID13567 - __ orq(Address(r19, r20, (Address::ScaleFactor)3, +0x7c3b2838), 1048576); // or qword ptr [r19+r20*8+0x7c3b2838], 1048576 IID13568 - __ orq(Address(r20, r21, (Address::ScaleFactor)3, -0x1699c06b), 1048576); // or qword ptr [r20+r21*8-0x1699c06b], 1048576 IID13569 - __ orq(Address(r21, r22, (Address::ScaleFactor)2, +0x7fb402a8), 1048576); // or qword ptr [r21+r22*4+0x7fb402a8], 1048576 IID13570 - __ orq(Address(r22, r23, (Address::ScaleFactor)0, +0x735df769), 1048576); // or qword ptr [r22+r23*1+0x735df769], 1048576 IID13571 - __ orq(Address(r23, r24, (Address::ScaleFactor)2, -0x61e0fc20), 1048576); // or qword ptr [r23+r24*4-0x61e0fc20], 1048576 IID13572 - __ orq(Address(r24, -0x17706424), 1048576); // or qword ptr [r24-0x17706424], 1048576 IID13573 - __ orq(Address(r25, r26, (Address::ScaleFactor)3, -0x1426a41a), 1048576); // or qword ptr [r25+r26*8-0x1426a41a], 1048576 IID13574 - __ orq(Address(r26, r27, (Address::ScaleFactor)0, +0x1847b03f), 1048576); // or qword ptr [r26+r27*1+0x1847b03f], 1048576 IID13575 - __ orq(Address(r27, r28, (Address::ScaleFactor)3, -0x20842228), 1048576); // or qword ptr [r27+r28*8-0x20842228], 1048576 IID13576 - __ orq(Address(r28, r29, (Address::ScaleFactor)0, -0x69feda3e), 1048576); // or qword ptr [r28+r29*1-0x69feda3e], 1048576 IID13577 - __ orq(Address(r29, r30, (Address::ScaleFactor)3, +0x8b2fb94), 1048576); // or qword ptr [r29+r30*8+0x8b2fb94], 1048576 IID13578 - __ orq(Address(r30, r31, (Address::ScaleFactor)0, -0x3dd75918), 1048576); // or qword ptr [r30+r31*1-0x3dd75918], 1048576 IID13579 - __ orq(Address(r31, rcx, (Address::ScaleFactor)2, +0x5a3695cd), 1048576); // or qword ptr [r31+rcx*4+0x5a3695cd], 1048576 IID13580 - __ orq(Address(rcx, rdx, (Address::ScaleFactor)2, -0x41ba757), 16777216); // or qword ptr [rcx+rdx*4-0x41ba757], 16777216 IID13581 - __ orq(Address(rdx, rbx, (Address::ScaleFactor)0, +0x1cffdcf5), 16777216); // or qword ptr [rdx+rbx*1+0x1cffdcf5], 16777216 IID13582 - __ orq(Address(rbx, +0x20472db4), 16777216); // or qword ptr [rbx+0x20472db4], 16777216 IID13583 - __ orq(Address(r8, r9, (Address::ScaleFactor)1, +0x797cb247), 16777216); // or qword ptr [r8+r9*2+0x797cb247], 16777216 IID13584 - __ orq(Address(r9, r10, (Address::ScaleFactor)0, -0x4bd58d60), 16777216); // or qword ptr [r9+r10*1-0x4bd58d60], 16777216 IID13585 - __ orq(Address(r10, -0xc32741c), 16777216); // or qword ptr [r10-0xc32741c], 16777216 IID13586 - __ orq(Address(r11, r12, (Address::ScaleFactor)1, -0x3aa7464e), 16777216); // or qword ptr [r11+r12*2-0x3aa7464e], 16777216 IID13587 - __ orq(Address(r12, r13, (Address::ScaleFactor)1, +0x6dcc8708), 16777216); // or qword ptr [r12+r13*2+0x6dcc8708], 16777216 IID13588 - __ orq(Address(r13, r14, (Address::ScaleFactor)2, -0x3fc8d80), 16777216); // or qword ptr [r13+r14*4-0x3fc8d80], 16777216 IID13589 - __ orq(Address(r14, r15, (Address::ScaleFactor)2, -0x5e26090b), 16777216); // or qword ptr [r14+r15*4-0x5e26090b], 16777216 IID13590 - __ orq(Address(r15, r16, (Address::ScaleFactor)2, +0x7d60c956), 16777216); // or qword ptr [r15+r16*4+0x7d60c956], 16777216 IID13591 - __ orq(Address(r16, r17, (Address::ScaleFactor)0, -0x48326b60), 16777216); // or qword ptr [r16+r17*1-0x48326b60], 16777216 IID13592 - __ orq(Address(r17, r18, (Address::ScaleFactor)1, -0x55744918), 16777216); // or qword ptr [r17+r18*2-0x55744918], 16777216 IID13593 - __ orq(Address(r18, r19, (Address::ScaleFactor)1, +0x307a7ed6), 16777216); // or qword ptr [r18+r19*2+0x307a7ed6], 16777216 IID13594 - __ orq(Address(r19, r20, (Address::ScaleFactor)0, -0x52a1bb5d), 16777216); // or qword ptr [r19+r20*1-0x52a1bb5d], 16777216 IID13595 - __ orq(Address(r20, r21, (Address::ScaleFactor)1, -0x5010c1de), 16777216); // or qword ptr [r20+r21*2-0x5010c1de], 16777216 IID13596 - __ orq(Address(r21, r22, (Address::ScaleFactor)3, -0x17acb4af), 16777216); // or qword ptr [r21+r22*8-0x17acb4af], 16777216 IID13597 - __ orq(Address(r22, r23, (Address::ScaleFactor)1, -0x10aca418), 16777216); // or qword ptr [r22+r23*2-0x10aca418], 16777216 IID13598 - __ orq(Address(r23, r24, (Address::ScaleFactor)1, +0x465856ed), 16777216); // or qword ptr [r23+r24*2+0x465856ed], 16777216 IID13599 - __ orq(Address(r24, r25, (Address::ScaleFactor)0, +0x532394b7), 16777216); // or qword ptr [r24+r25*1+0x532394b7], 16777216 IID13600 - __ orq(Address(r25, r26, (Address::ScaleFactor)0, -0x5a3b2457), 16777216); // or qword ptr [r25+r26*1-0x5a3b2457], 16777216 IID13601 - __ orq(Address(r26, r27, (Address::ScaleFactor)3, +0x6c12679b), 16777216); // or qword ptr [r26+r27*8+0x6c12679b], 16777216 IID13602 - __ orq(Address(r27, -0x49754695), 16777216); // or qword ptr [r27-0x49754695], 16777216 IID13603 - __ orq(Address(r28, -0x43cecca5), 16777216); // or qword ptr [r28-0x43cecca5], 16777216 IID13604 - __ orq(Address(r29, r30, (Address::ScaleFactor)2, -0x4866c9df), 16777216); // or qword ptr [r29+r30*4-0x4866c9df], 16777216 IID13605 - __ orq(Address(r30, +0x7be2dc07), 16777216); // or qword ptr [r30+0x7be2dc07], 16777216 IID13606 - __ orq(Address(r31, rcx, (Address::ScaleFactor)3, +0x57d13fe4), 16777216); // or qword ptr [r31+rcx*8+0x57d13fe4], 16777216 IID13607 - __ orq(Address(rcx, rdx, (Address::ScaleFactor)3, -0x7d96f9bf), 268435456); // or qword ptr [rcx+rdx*8-0x7d96f9bf], 268435456 IID13608 - __ orq(Address(rdx, rbx, (Address::ScaleFactor)3, +0xd99ad39), 268435456); // or qword ptr [rdx+rbx*8+0xd99ad39], 268435456 IID13609 - __ orq(Address(rbx, r8, (Address::ScaleFactor)1, +0x74d63405), 268435456); // or qword ptr [rbx+r8*2+0x74d63405], 268435456 IID13610 - __ orq(Address(r8, -0x7c608086), 268435456); // or qword ptr [r8-0x7c608086], 268435456 IID13611 - __ orq(Address(r9, r10, (Address::ScaleFactor)1, +0x7c5e251d), 268435456); // or qword ptr [r9+r10*2+0x7c5e251d], 268435456 IID13612 - __ orq(Address(r10, r11, (Address::ScaleFactor)1, -0x190dbd99), 268435456); // or qword ptr [r10+r11*2-0x190dbd99], 268435456 IID13613 - __ orq(Address(r11, +0x5f7fe7af), 268435456); // or qword ptr [r11+0x5f7fe7af], 268435456 IID13614 - __ orq(Address(r12, +0x76dd953a), 268435456); // or qword ptr [r12+0x76dd953a], 268435456 IID13615 - __ orq(Address(r13, r14, (Address::ScaleFactor)2, +0x64b9a2d9), 268435456); // or qword ptr [r13+r14*4+0x64b9a2d9], 268435456 IID13616 - __ orq(Address(r14, +0x70e666a8), 268435456); // or qword ptr [r14+0x70e666a8], 268435456 IID13617 - __ orq(Address(r15, -0xbb8f8ae), 268435456); // or qword ptr [r15-0xbb8f8ae], 268435456 IID13618 - __ orq(Address(r16, +0x3475b79a), 268435456); // or qword ptr [r16+0x3475b79a], 268435456 IID13619 - __ orq(Address(r17, r18, (Address::ScaleFactor)0, -0x2a9d69f5), 268435456); // or qword ptr [r17+r18*1-0x2a9d69f5], 268435456 IID13620 - __ orq(Address(r18, r19, (Address::ScaleFactor)0, -0x56007571), 268435456); // or qword ptr [r18+r19*1-0x56007571], 268435456 IID13621 - __ orq(Address(r19, r20, (Address::ScaleFactor)0, -0x2797b796), 268435456); // or qword ptr [r19+r20*1-0x2797b796], 268435456 IID13622 - __ orq(Address(r20, r21, (Address::ScaleFactor)2, -0x6100b67a), 268435456); // or qword ptr [r20+r21*4-0x6100b67a], 268435456 IID13623 - __ orq(Address(r21, r22, (Address::ScaleFactor)3, -0x464d3153), 268435456); // or qword ptr [r21+r22*8-0x464d3153], 268435456 IID13624 - __ orq(Address(r22, r23, (Address::ScaleFactor)2, +0x4b480bc9), 268435456); // or qword ptr [r22+r23*4+0x4b480bc9], 268435456 IID13625 - __ orq(Address(r23, -0x18632a2f), 268435456); // or qword ptr [r23-0x18632a2f], 268435456 IID13626 - __ orq(Address(r24, r25, (Address::ScaleFactor)1, +0x6d1fada4), 268435456); // or qword ptr [r24+r25*2+0x6d1fada4], 268435456 IID13627 - __ orq(Address(r25, r26, (Address::ScaleFactor)2, -0xaef749b), 268435456); // or qword ptr [r25+r26*4-0xaef749b], 268435456 IID13628 - __ orq(Address(r26, +0x433abaf0), 268435456); // or qword ptr [r26+0x433abaf0], 268435456 IID13629 - __ orq(Address(r27, r28, (Address::ScaleFactor)3, +0x253ae901), 268435456); // or qword ptr [r27+r28*8+0x253ae901], 268435456 IID13630 - __ orq(Address(r28, r29, (Address::ScaleFactor)2, -0x1fab955), 268435456); // or qword ptr [r28+r29*4-0x1fab955], 268435456 IID13631 - __ orq(Address(r29, r30, (Address::ScaleFactor)1, -0x56f272bb), 268435456); // or qword ptr [r29+r30*2-0x56f272bb], 268435456 IID13632 - __ orq(Address(r30, r31, (Address::ScaleFactor)0, -0x4d3d5f3b), 268435456); // or qword ptr [r30+r31*1-0x4d3d5f3b], 268435456 IID13633 - __ orq(Address(r31, rcx, (Address::ScaleFactor)2, +0x1ec6d267), 268435456); // or qword ptr [r31+rcx*4+0x1ec6d267], 268435456 IID13634 - __ movq(Address(rcx, rdx, (Address::ScaleFactor)0, -0x68579c5f), 1); // mov qword ptr [rcx+rdx*1-0x68579c5f], 1 IID13635 - __ movq(Address(rdx, rbx, (Address::ScaleFactor)0, +0x774e6938), 1); // mov qword ptr [rdx+rbx*1+0x774e6938], 1 IID13636 - __ movq(Address(rbx, r8, (Address::ScaleFactor)1, -0x27d4b947), 1); // mov qword ptr [rbx+r8*2-0x27d4b947], 1 IID13637 - __ movq(Address(r8, +0x34195419), 1); // mov qword ptr [r8+0x34195419], 1 IID13638 - __ movq(Address(r9, r10, (Address::ScaleFactor)2, -0x25b393e4), 1); // mov qword ptr [r9+r10*4-0x25b393e4], 1 IID13639 - __ movq(Address(r10, r11, (Address::ScaleFactor)3, -0x5ba97f48), 1); // mov qword ptr [r10+r11*8-0x5ba97f48], 1 IID13640 - __ movq(Address(r11, r12, (Address::ScaleFactor)0, +0x552d2b04), 1); // mov qword ptr [r11+r12*1+0x552d2b04], 1 IID13641 - __ movq(Address(r12, +0x4293dfa2), 1); // mov qword ptr [r12+0x4293dfa2], 1 IID13642 - __ movq(Address(r13, r14, (Address::ScaleFactor)3, -0x5fd6f17a), 1); // mov qword ptr [r13+r14*8-0x5fd6f17a], 1 IID13643 - __ movq(Address(r14, r15, (Address::ScaleFactor)1, +0x3f7102a1), 1); // mov qword ptr [r14+r15*2+0x3f7102a1], 1 IID13644 - __ movq(Address(r15, r16, (Address::ScaleFactor)1, -0x73c5df15), 1); // mov qword ptr [r15+r16*2-0x73c5df15], 1 IID13645 - __ movq(Address(r16, r17, (Address::ScaleFactor)3, +0x743e863b), 1); // mov qword ptr [r16+r17*8+0x743e863b], 1 IID13646 - __ movq(Address(r17, +0x41816eb0), 1); // mov qword ptr [r17+0x41816eb0], 1 IID13647 - __ movq(Address(r18, r19, (Address::ScaleFactor)2, -0xb01cfe3), 1); // mov qword ptr [r18+r19*4-0xb01cfe3], 1 IID13648 - __ movq(Address(r19, r20, (Address::ScaleFactor)2, -0x25bbf3dc), 1); // mov qword ptr [r19+r20*4-0x25bbf3dc], 1 IID13649 - __ movq(Address(r20, +0x625ed59d), 1); // mov qword ptr [r20+0x625ed59d], 1 IID13650 - __ movq(Address(r21, r22, (Address::ScaleFactor)3, +0x9ad3a38), 1); // mov qword ptr [r21+r22*8+0x9ad3a38], 1 IID13651 - __ movq(Address(r22, r23, (Address::ScaleFactor)1, -0x60c41de9), 1); // mov qword ptr [r22+r23*2-0x60c41de9], 1 IID13652 - __ movq(Address(r23, r24, (Address::ScaleFactor)0, -0x7e13359d), 1); // mov qword ptr [r23+r24*1-0x7e13359d], 1 IID13653 - __ movq(Address(r24, r25, (Address::ScaleFactor)1, -0x3c7b8bde), 1); // mov qword ptr [r24+r25*2-0x3c7b8bde], 1 IID13654 - __ movq(Address(r25, r26, (Address::ScaleFactor)3, +0xdaee653), 1); // mov qword ptr [r25+r26*8+0xdaee653], 1 IID13655 - __ movq(Address(r26, r27, (Address::ScaleFactor)1, +0x76df13e7), 1); // mov qword ptr [r26+r27*2+0x76df13e7], 1 IID13656 - __ movq(Address(r27, +0x5713b86d), 1); // mov qword ptr [r27+0x5713b86d], 1 IID13657 - __ movq(Address(r28, r29, (Address::ScaleFactor)2, +0x1bbc512a), 1); // mov qword ptr [r28+r29*4+0x1bbc512a], 1 IID13658 - __ movq(Address(r29, r30, (Address::ScaleFactor)2, +0x6fef29bb), 1); // mov qword ptr [r29+r30*4+0x6fef29bb], 1 IID13659 - __ movq(Address(r30, r31, (Address::ScaleFactor)3, +0x33e0207b), 1); // mov qword ptr [r30+r31*8+0x33e0207b], 1 IID13660 - __ movq(Address(r31, rcx, (Address::ScaleFactor)3, +0x111be963), 1); // mov qword ptr [r31+rcx*8+0x111be963], 1 IID13661 - __ movq(Address(rcx, -0x39d787b8), 16); // mov qword ptr [rcx-0x39d787b8], 16 IID13662 - __ movq(Address(rdx, rbx, (Address::ScaleFactor)3, +0x2d5e4fd), 16); // mov qword ptr [rdx+rbx*8+0x2d5e4fd], 16 IID13663 - __ movq(Address(rbx, r8, (Address::ScaleFactor)0, -0x60d71d26), 16); // mov qword ptr [rbx+r8*1-0x60d71d26], 16 IID13664 - __ movq(Address(r8, r9, (Address::ScaleFactor)1, -0x58a5cf27), 16); // mov qword ptr [r8+r9*2-0x58a5cf27], 16 IID13665 - __ movq(Address(r9, +0x604592ba), 16); // mov qword ptr [r9+0x604592ba], 16 IID13666 - __ movq(Address(r10, r11, (Address::ScaleFactor)2, -0x6ce5621), 16); // mov qword ptr [r10+r11*4-0x6ce5621], 16 IID13667 - __ movq(Address(r11, r12, (Address::ScaleFactor)1, +0x7903975a), 16); // mov qword ptr [r11+r12*2+0x7903975a], 16 IID13668 - __ movq(Address(r12, r13, (Address::ScaleFactor)0, -0x7897a80a), 16); // mov qword ptr [r12+r13*1-0x7897a80a], 16 IID13669 - __ movq(Address(r13, r14, (Address::ScaleFactor)2, +0x423b2d9d), 16); // mov qword ptr [r13+r14*4+0x423b2d9d], 16 IID13670 - __ movq(Address(r14, r15, (Address::ScaleFactor)3, -0x36c818dd), 16); // mov qword ptr [r14+r15*8-0x36c818dd], 16 IID13671 - __ movq(Address(r15, +0x630f9b09), 16); // mov qword ptr [r15+0x630f9b09], 16 IID13672 - __ movq(Address(r16, r17, (Address::ScaleFactor)3, +0x5985cff6), 16); // mov qword ptr [r16+r17*8+0x5985cff6], 16 IID13673 - __ movq(Address(r17, r18, (Address::ScaleFactor)3, +0x638607a9), 16); // mov qword ptr [r17+r18*8+0x638607a9], 16 IID13674 - __ movq(Address(r18, r19, (Address::ScaleFactor)0, +0x7575dad9), 16); // mov qword ptr [r18+r19*1+0x7575dad9], 16 IID13675 - __ movq(Address(r19, r20, (Address::ScaleFactor)3, -0x7ea62ad4), 16); // mov qword ptr [r19+r20*8-0x7ea62ad4], 16 IID13676 - __ movq(Address(r20, +0x5fba1f19), 16); // mov qword ptr [r20+0x5fba1f19], 16 IID13677 - __ movq(Address(r21, -0x4f15e869), 16); // mov qword ptr [r21-0x4f15e869], 16 IID13678 - __ movq(Address(r22, r23, (Address::ScaleFactor)1, +0x6f10a7e9), 16); // mov qword ptr [r22+r23*2+0x6f10a7e9], 16 IID13679 - __ movq(Address(r23, r24, (Address::ScaleFactor)0, +0x63c990f0), 16); // mov qword ptr [r23+r24*1+0x63c990f0], 16 IID13680 - __ movq(Address(r24, r25, (Address::ScaleFactor)0, -0x180ee149), 16); // mov qword ptr [r24+r25*1-0x180ee149], 16 IID13681 - __ movq(Address(r25, r26, (Address::ScaleFactor)3, -0x19ae5843), 16); // mov qword ptr [r25+r26*8-0x19ae5843], 16 IID13682 - __ movq(Address(r26, r27, (Address::ScaleFactor)3, +0x571f2e31), 16); // mov qword ptr [r26+r27*8+0x571f2e31], 16 IID13683 - __ movq(Address(r27, +0x34bdb8fa), 16); // mov qword ptr [r27+0x34bdb8fa], 16 IID13684 - __ movq(Address(r28, r29, (Address::ScaleFactor)2, +0x7e31114a), 16); // mov qword ptr [r28+r29*4+0x7e31114a], 16 IID13685 - __ movq(Address(r29, -0x372a6eb4), 16); // mov qword ptr [r29-0x372a6eb4], 16 IID13686 - __ movq(Address(r30, r31, (Address::ScaleFactor)2, -0x4328810), 16); // mov qword ptr [r30+r31*4-0x4328810], 16 IID13687 - __ movq(Address(r31, rcx, (Address::ScaleFactor)0, -0x55f6e9e7), 16); // mov qword ptr [r31+rcx*1-0x55f6e9e7], 16 IID13688 - __ movq(Address(rcx, rdx, (Address::ScaleFactor)0, -0x16dbcad), 256); // mov qword ptr [rcx+rdx*1-0x16dbcad], 256 IID13689 - __ movq(Address(rdx, rbx, (Address::ScaleFactor)3, +0x6710ca79), 256); // mov qword ptr [rdx+rbx*8+0x6710ca79], 256 IID13690 - __ movq(Address(rbx, r8, (Address::ScaleFactor)1, +0x6cdcb2f8), 256); // mov qword ptr [rbx+r8*2+0x6cdcb2f8], 256 IID13691 - __ movq(Address(r8, r9, (Address::ScaleFactor)1, -0x26ef314d), 256); // mov qword ptr [r8+r9*2-0x26ef314d], 256 IID13692 - __ movq(Address(r9, r10, (Address::ScaleFactor)2, +0x7293b43f), 256); // mov qword ptr [r9+r10*4+0x7293b43f], 256 IID13693 - __ movq(Address(r10, r11, (Address::ScaleFactor)3, -0x7a7ceb55), 256); // mov qword ptr [r10+r11*8-0x7a7ceb55], 256 IID13694 - __ movq(Address(r11, r12, (Address::ScaleFactor)0, -0x5cb99014), 256); // mov qword ptr [r11+r12*1-0x5cb99014], 256 IID13695 - __ movq(Address(r12, +0x1a0eb5f1), 256); // mov qword ptr [r12+0x1a0eb5f1], 256 IID13696 - __ movq(Address(r13, r14, (Address::ScaleFactor)1, -0x47ae92ec), 256); // mov qword ptr [r13+r14*2-0x47ae92ec], 256 IID13697 - __ movq(Address(r14, r15, (Address::ScaleFactor)0, +0x3c70bd57), 256); // mov qword ptr [r14+r15*1+0x3c70bd57], 256 IID13698 - __ movq(Address(r15, +0x7f172916), 256); // mov qword ptr [r15+0x7f172916], 256 IID13699 - __ movq(Address(r16, r17, (Address::ScaleFactor)1, -0x744532ad), 256); // mov qword ptr [r16+r17*2-0x744532ad], 256 IID13700 - __ movq(Address(r17, r18, (Address::ScaleFactor)2, -0x4d37070e), 256); // mov qword ptr [r17+r18*4-0x4d37070e], 256 IID13701 - __ movq(Address(r18, r19, (Address::ScaleFactor)0, +0x1e326b07), 256); // mov qword ptr [r18+r19*1+0x1e326b07], 256 IID13702 - __ movq(Address(r19, r20, (Address::ScaleFactor)2, -0x7d27e514), 256); // mov qword ptr [r19+r20*4-0x7d27e514], 256 IID13703 - __ movq(Address(r20, r21, (Address::ScaleFactor)1, -0x2ba07460), 256); // mov qword ptr [r20+r21*2-0x2ba07460], 256 IID13704 - __ movq(Address(r21, r22, (Address::ScaleFactor)0, +0x441469d8), 256); // mov qword ptr [r21+r22*1+0x441469d8], 256 IID13705 - __ movq(Address(r22, r23, (Address::ScaleFactor)2, +0x336aca18), 256); // mov qword ptr [r22+r23*4+0x336aca18], 256 IID13706 - __ movq(Address(r23, r24, (Address::ScaleFactor)1, +0x1f3a1f95), 256); // mov qword ptr [r23+r24*2+0x1f3a1f95], 256 IID13707 - __ movq(Address(r24, r25, (Address::ScaleFactor)2, -0x64699777), 256); // mov qword ptr [r24+r25*4-0x64699777], 256 IID13708 - __ movq(Address(r25, r26, (Address::ScaleFactor)2, -0x32b28c4c), 256); // mov qword ptr [r25+r26*4-0x32b28c4c], 256 IID13709 - __ movq(Address(r26, r27, (Address::ScaleFactor)3, -0x4eed4b32), 256); // mov qword ptr [r26+r27*8-0x4eed4b32], 256 IID13710 - __ movq(Address(r27, r28, (Address::ScaleFactor)3, +0x3d5cad47), 256); // mov qword ptr [r27+r28*8+0x3d5cad47], 256 IID13711 - __ movq(Address(r28, r29, (Address::ScaleFactor)1, -0x15bbcca7), 256); // mov qword ptr [r28+r29*2-0x15bbcca7], 256 IID13712 - __ movq(Address(r29, r30, (Address::ScaleFactor)3, +0x54e643f7), 256); // mov qword ptr [r29+r30*8+0x54e643f7], 256 IID13713 - __ movq(Address(r30, r31, (Address::ScaleFactor)3, +0x7454dc0a), 256); // mov qword ptr [r30+r31*8+0x7454dc0a], 256 IID13714 - __ movq(Address(r31, rcx, (Address::ScaleFactor)3, -0x4b9264d7), 256); // mov qword ptr [r31+rcx*8-0x4b9264d7], 256 IID13715 - __ movq(Address(rcx, rdx, (Address::ScaleFactor)3, +0x4c3ff855), 4096); // mov qword ptr [rcx+rdx*8+0x4c3ff855], 4096 IID13716 - __ movq(Address(rdx, -0x410bb665), 4096); // mov qword ptr [rdx-0x410bb665], 4096 IID13717 - __ movq(Address(rbx, r8, (Address::ScaleFactor)1, +0x4ca245f), 4096); // mov qword ptr [rbx+r8*2+0x4ca245f], 4096 IID13718 - __ movq(Address(r8, r9, (Address::ScaleFactor)3, +0x7a6dfc4e), 4096); // mov qword ptr [r8+r9*8+0x7a6dfc4e], 4096 IID13719 - __ movq(Address(r9, r10, (Address::ScaleFactor)3, +0x6c944fd2), 4096); // mov qword ptr [r9+r10*8+0x6c944fd2], 4096 IID13720 - __ movq(Address(r10, +0x4fd7938d), 4096); // mov qword ptr [r10+0x4fd7938d], 4096 IID13721 - __ movq(Address(r11, r12, (Address::ScaleFactor)1, -0x296d60e7), 4096); // mov qword ptr [r11+r12*2-0x296d60e7], 4096 IID13722 - __ movq(Address(r12, +0xc752b90), 4096); // mov qword ptr [r12+0xc752b90], 4096 IID13723 - __ movq(Address(r13, -0x659fd3a8), 4096); // mov qword ptr [r13-0x659fd3a8], 4096 IID13724 - __ movq(Address(r14, r15, (Address::ScaleFactor)3, +0x7c33a6d9), 4096); // mov qword ptr [r14+r15*8+0x7c33a6d9], 4096 IID13725 - __ movq(Address(r15, r16, (Address::ScaleFactor)1, -0x2910216), 4096); // mov qword ptr [r15+r16*2-0x2910216], 4096 IID13726 - __ movq(Address(r16, r17, (Address::ScaleFactor)2, -0x71efbb32), 4096); // mov qword ptr [r16+r17*4-0x71efbb32], 4096 IID13727 - __ movq(Address(r17, -0x1e48f2c), 4096); // mov qword ptr [r17-0x1e48f2c], 4096 IID13728 - __ movq(Address(r18, r19, (Address::ScaleFactor)0, -0x216b47a5), 4096); // mov qword ptr [r18+r19*1-0x216b47a5], 4096 IID13729 - __ movq(Address(r19, r20, (Address::ScaleFactor)3, -0x480408c3), 4096); // mov qword ptr [r19+r20*8-0x480408c3], 4096 IID13730 - __ movq(Address(r20, r21, (Address::ScaleFactor)0, -0x10c712d0), 4096); // mov qword ptr [r20+r21*1-0x10c712d0], 4096 IID13731 - __ movq(Address(r21, +0xb0748e6), 4096); // mov qword ptr [r21+0xb0748e6], 4096 IID13732 - __ movq(Address(r22, r23, (Address::ScaleFactor)1, +0x1912a1cc), 4096); // mov qword ptr [r22+r23*2+0x1912a1cc], 4096 IID13733 - __ movq(Address(r23, r24, (Address::ScaleFactor)0, -0x1799a2ef), 4096); // mov qword ptr [r23+r24*1-0x1799a2ef], 4096 IID13734 - __ movq(Address(r24, r25, (Address::ScaleFactor)0, +0x25b779d5), 4096); // mov qword ptr [r24+r25*1+0x25b779d5], 4096 IID13735 - __ movq(Address(r25, r26, (Address::ScaleFactor)1, +0x2b98fb01), 4096); // mov qword ptr [r25+r26*2+0x2b98fb01], 4096 IID13736 - __ movq(Address(r26, r27, (Address::ScaleFactor)3, +0x29d8dde7), 4096); // mov qword ptr [r26+r27*8+0x29d8dde7], 4096 IID13737 - __ movq(Address(r27, r28, (Address::ScaleFactor)1, -0x52a32264), 4096); // mov qword ptr [r27+r28*2-0x52a32264], 4096 IID13738 - __ movq(Address(r28, +0x6cf50d2), 4096); // mov qword ptr [r28+0x6cf50d2], 4096 IID13739 - __ movq(Address(r29, r30, (Address::ScaleFactor)0, -0x52b61568), 4096); // mov qword ptr [r29+r30*1-0x52b61568], 4096 IID13740 - __ movq(Address(r30, r31, (Address::ScaleFactor)1, -0x1db07c33), 4096); // mov qword ptr [r30+r31*2-0x1db07c33], 4096 IID13741 - __ movq(Address(r31, rcx, (Address::ScaleFactor)1, -0x4eb1ec2c), 4096); // mov qword ptr [r31+rcx*2-0x4eb1ec2c], 4096 IID13742 - __ movq(Address(rcx, rdx, (Address::ScaleFactor)3, -0x5b094dfa), 65536); // mov qword ptr [rcx+rdx*8-0x5b094dfa], 65536 IID13743 - __ movq(Address(rdx, rbx, (Address::ScaleFactor)2, +0x5c760529), 65536); // mov qword ptr [rdx+rbx*4+0x5c760529], 65536 IID13744 - __ movq(Address(rbx, r8, (Address::ScaleFactor)3, -0x4bc71490), 65536); // mov qword ptr [rbx+r8*8-0x4bc71490], 65536 IID13745 - __ movq(Address(r8, +0x3257ddc6), 65536); // mov qword ptr [r8+0x3257ddc6], 65536 IID13746 - __ movq(Address(r9, r10, (Address::ScaleFactor)0, -0x5d393ac2), 65536); // mov qword ptr [r9+r10*1-0x5d393ac2], 65536 IID13747 - __ movq(Address(r10, -0x1380c38e), 65536); // mov qword ptr [r10-0x1380c38e], 65536 IID13748 - __ movq(Address(r11, r12, (Address::ScaleFactor)2, -0x149093b1), 65536); // mov qword ptr [r11+r12*4-0x149093b1], 65536 IID13749 - __ movq(Address(r12, r13, (Address::ScaleFactor)3, +0x25f64978), 65536); // mov qword ptr [r12+r13*8+0x25f64978], 65536 IID13750 - __ movq(Address(r13, r14, (Address::ScaleFactor)0, +0x4bf95d8c), 65536); // mov qword ptr [r13+r14*1+0x4bf95d8c], 65536 IID13751 - __ movq(Address(r14, -0x5749d7b1), 65536); // mov qword ptr [r14-0x5749d7b1], 65536 IID13752 - __ movq(Address(r15, r16, (Address::ScaleFactor)3, -0x1f5852f3), 65536); // mov qword ptr [r15+r16*8-0x1f5852f3], 65536 IID13753 - __ movq(Address(r16, r17, (Address::ScaleFactor)2, +0x4f2780ca), 65536); // mov qword ptr [r16+r17*4+0x4f2780ca], 65536 IID13754 - __ movq(Address(r17, +0x74db9885), 65536); // mov qword ptr [r17+0x74db9885], 65536 IID13755 - __ movq(Address(r18, +0x46020a67), 65536); // mov qword ptr [r18+0x46020a67], 65536 IID13756 - __ movq(Address(r19, r20, (Address::ScaleFactor)3, -0x13d8cef4), 65536); // mov qword ptr [r19+r20*8-0x13d8cef4], 65536 IID13757 - __ movq(Address(r20, r21, (Address::ScaleFactor)3, -0x53b6a7e8), 65536); // mov qword ptr [r20+r21*8-0x53b6a7e8], 65536 IID13758 - __ movq(Address(r21, r22, (Address::ScaleFactor)1, -0x39610016), 65536); // mov qword ptr [r21+r22*2-0x39610016], 65536 IID13759 - __ movq(Address(r22, r23, (Address::ScaleFactor)1, -0x7a9ad627), 65536); // mov qword ptr [r22+r23*2-0x7a9ad627], 65536 IID13760 - __ movq(Address(r23, r24, (Address::ScaleFactor)1, -0x3b2ec90), 65536); // mov qword ptr [r23+r24*2-0x3b2ec90], 65536 IID13761 - __ movq(Address(r24, r25, (Address::ScaleFactor)3, +0x3f39ca47), 65536); // mov qword ptr [r24+r25*8+0x3f39ca47], 65536 IID13762 - __ movq(Address(r25, r26, (Address::ScaleFactor)1, +0x58f3f7b7), 65536); // mov qword ptr [r25+r26*2+0x58f3f7b7], 65536 IID13763 - __ movq(Address(r26, +0x7abc97ce), 65536); // mov qword ptr [r26+0x7abc97ce], 65536 IID13764 - __ movq(Address(r27, r28, (Address::ScaleFactor)0, +0x45f91ecf), 65536); // mov qword ptr [r27+r28*1+0x45f91ecf], 65536 IID13765 - __ movq(Address(r28, +0x6a71fed3), 65536); // mov qword ptr [r28+0x6a71fed3], 65536 IID13766 - __ movq(Address(r29, r30, (Address::ScaleFactor)0, +0x13a56b37), 65536); // mov qword ptr [r29+r30*1+0x13a56b37], 65536 IID13767 - __ movq(Address(r30, r31, (Address::ScaleFactor)0, -0x7ad4e8f4), 65536); // mov qword ptr [r30+r31*1-0x7ad4e8f4], 65536 IID13768 - __ movq(Address(r31, rcx, (Address::ScaleFactor)1, -0x441b7997), 65536); // mov qword ptr [r31+rcx*2-0x441b7997], 65536 IID13769 - __ movq(Address(rcx, rdx, (Address::ScaleFactor)2, +0x4aaaa8ef), 1048576); // mov qword ptr [rcx+rdx*4+0x4aaaa8ef], 1048576 IID13770 - __ movq(Address(rdx, rbx, (Address::ScaleFactor)0, -0x4850b19c), 1048576); // mov qword ptr [rdx+rbx*1-0x4850b19c], 1048576 IID13771 - __ movq(Address(rbx, r8, (Address::ScaleFactor)1, +0x505910b7), 1048576); // mov qword ptr [rbx+r8*2+0x505910b7], 1048576 IID13772 - __ movq(Address(r8, +0x39d9b520), 1048576); // mov qword ptr [r8+0x39d9b520], 1048576 IID13773 - __ movq(Address(r9, r10, (Address::ScaleFactor)1, -0x6aa41362), 1048576); // mov qword ptr [r9+r10*2-0x6aa41362], 1048576 IID13774 - __ movq(Address(r10, r11, (Address::ScaleFactor)1, -0x7505bf0b), 1048576); // mov qword ptr [r10+r11*2-0x7505bf0b], 1048576 IID13775 - __ movq(Address(r11, r12, (Address::ScaleFactor)0, -0x6c4a9f34), 1048576); // mov qword ptr [r11+r12*1-0x6c4a9f34], 1048576 IID13776 - __ movq(Address(r12, r13, (Address::ScaleFactor)1, -0x57c92ce9), 1048576); // mov qword ptr [r12+r13*2-0x57c92ce9], 1048576 IID13777 - __ movq(Address(r13, r14, (Address::ScaleFactor)2, -0x78aafc4), 1048576); // mov qword ptr [r13+r14*4-0x78aafc4], 1048576 IID13778 - __ movq(Address(r14, r15, (Address::ScaleFactor)2, -0x96d3f23), 1048576); // mov qword ptr [r14+r15*4-0x96d3f23], 1048576 IID13779 - __ movq(Address(r15, -0x63b6de6e), 1048576); // mov qword ptr [r15-0x63b6de6e], 1048576 IID13780 - __ movq(Address(r16, r17, (Address::ScaleFactor)3, +0x4a6911b3), 1048576); // mov qword ptr [r16+r17*8+0x4a6911b3], 1048576 IID13781 - __ movq(Address(r17, r18, (Address::ScaleFactor)1, +0x2ef7995c), 1048576); // mov qword ptr [r17+r18*2+0x2ef7995c], 1048576 IID13782 - __ movq(Address(r18, r19, (Address::ScaleFactor)2, -0x3bfc4f2c), 1048576); // mov qword ptr [r18+r19*4-0x3bfc4f2c], 1048576 IID13783 - __ movq(Address(r19, +0x39a7829d), 1048576); // mov qword ptr [r19+0x39a7829d], 1048576 IID13784 - __ movq(Address(r20, r21, (Address::ScaleFactor)2, +0x2c7fdbec), 1048576); // mov qword ptr [r20+r21*4+0x2c7fdbec], 1048576 IID13785 - __ movq(Address(r21, r22, (Address::ScaleFactor)3, -0xb53addf), 1048576); // mov qword ptr [r21+r22*8-0xb53addf], 1048576 IID13786 - __ movq(Address(r22, +0x66cc5e10), 1048576); // mov qword ptr [r22+0x66cc5e10], 1048576 IID13787 - __ movq(Address(r23, r24, (Address::ScaleFactor)2, -0x4468f96c), 1048576); // mov qword ptr [r23+r24*4-0x4468f96c], 1048576 IID13788 - __ movq(Address(r24, r25, (Address::ScaleFactor)1, +0x413cdae0), 1048576); // mov qword ptr [r24+r25*2+0x413cdae0], 1048576 IID13789 - __ movq(Address(r25, +0x5d1587e2), 1048576); // mov qword ptr [r25+0x5d1587e2], 1048576 IID13790 - __ movq(Address(r26, +0x27073c1b), 1048576); // mov qword ptr [r26+0x27073c1b], 1048576 IID13791 - __ movq(Address(r27, -0x4d18f781), 1048576); // mov qword ptr [r27-0x4d18f781], 1048576 IID13792 - __ movq(Address(r28, r29, (Address::ScaleFactor)2, +0x691d94c9), 1048576); // mov qword ptr [r28+r29*4+0x691d94c9], 1048576 IID13793 - __ movq(Address(r29, r30, (Address::ScaleFactor)2, -0x7dbf916b), 1048576); // mov qword ptr [r29+r30*4-0x7dbf916b], 1048576 IID13794 - __ movq(Address(r30, -0x3031db7c), 1048576); // mov qword ptr [r30-0x3031db7c], 1048576 IID13795 - __ movq(Address(r31, rcx, (Address::ScaleFactor)2, +0x694b5f00), 1048576); // mov qword ptr [r31+rcx*4+0x694b5f00], 1048576 IID13796 - __ movq(Address(rcx, +0x1564b9f8), 16777216); // mov qword ptr [rcx+0x1564b9f8], 16777216 IID13797 - __ movq(Address(rdx, rbx, (Address::ScaleFactor)2, +0x6dc8150c), 16777216); // mov qword ptr [rdx+rbx*4+0x6dc8150c], 16777216 IID13798 - __ movq(Address(rbx, r8, (Address::ScaleFactor)3, -0x53b6e120), 16777216); // mov qword ptr [rbx+r8*8-0x53b6e120], 16777216 IID13799 - __ movq(Address(r8, r9, (Address::ScaleFactor)0, -0x335c74ce), 16777216); // mov qword ptr [r8+r9*1-0x335c74ce], 16777216 IID13800 - __ movq(Address(r9, r10, (Address::ScaleFactor)0, +0x3a7da230), 16777216); // mov qword ptr [r9+r10*1+0x3a7da230], 16777216 IID13801 - __ movq(Address(r10, +0x5ef7fcaf), 16777216); // mov qword ptr [r10+0x5ef7fcaf], 16777216 IID13802 - __ movq(Address(r11, r12, (Address::ScaleFactor)3, +0x38fd2027), 16777216); // mov qword ptr [r11+r12*8+0x38fd2027], 16777216 IID13803 - __ movq(Address(r12, r13, (Address::ScaleFactor)0, -0x70e9cbf5), 16777216); // mov qword ptr [r12+r13*1-0x70e9cbf5], 16777216 IID13804 - __ movq(Address(r13, +0x7204c91), 16777216); // mov qword ptr [r13+0x7204c91], 16777216 IID13805 - __ movq(Address(r14, r15, (Address::ScaleFactor)0, +0x4f0b5cc3), 16777216); // mov qword ptr [r14+r15*1+0x4f0b5cc3], 16777216 IID13806 - __ movq(Address(r15, r16, (Address::ScaleFactor)2, -0x56721513), 16777216); // mov qword ptr [r15+r16*4-0x56721513], 16777216 IID13807 - __ movq(Address(r16, r17, (Address::ScaleFactor)1, -0x6f5e667f), 16777216); // mov qword ptr [r16+r17*2-0x6f5e667f], 16777216 IID13808 - __ movq(Address(r17, r18, (Address::ScaleFactor)0, +0x329648a9), 16777216); // mov qword ptr [r17+r18*1+0x329648a9], 16777216 IID13809 - __ movq(Address(r18, r19, (Address::ScaleFactor)3, +0x6b06ae01), 16777216); // mov qword ptr [r18+r19*8+0x6b06ae01], 16777216 IID13810 - __ movq(Address(r19, r20, (Address::ScaleFactor)0, +0x19e27c0e), 16777216); // mov qword ptr [r19+r20*1+0x19e27c0e], 16777216 IID13811 - __ movq(Address(r20, +0x33a25a55), 16777216); // mov qword ptr [r20+0x33a25a55], 16777216 IID13812 - __ movq(Address(r21, r22, (Address::ScaleFactor)2, +0x33d72925), 16777216); // mov qword ptr [r21+r22*4+0x33d72925], 16777216 IID13813 - __ movq(Address(r22, r23, (Address::ScaleFactor)2, -0x1a81c530), 16777216); // mov qword ptr [r22+r23*4-0x1a81c530], 16777216 IID13814 - __ movq(Address(r23, r24, (Address::ScaleFactor)0, +0x16670b1a), 16777216); // mov qword ptr [r23+r24*1+0x16670b1a], 16777216 IID13815 - __ movq(Address(r24, +0x1edeaa70), 16777216); // mov qword ptr [r24+0x1edeaa70], 16777216 IID13816 - __ movq(Address(r25, r26, (Address::ScaleFactor)3, +0x4605ef85), 16777216); // mov qword ptr [r25+r26*8+0x4605ef85], 16777216 IID13817 - __ movq(Address(r26, r27, (Address::ScaleFactor)1, +0x4acd055), 16777216); // mov qword ptr [r26+r27*2+0x4acd055], 16777216 IID13818 - __ movq(Address(r27, r28, (Address::ScaleFactor)2, -0x595e10b2), 16777216); // mov qword ptr [r27+r28*4-0x595e10b2], 16777216 IID13819 - __ movq(Address(r28, -0x299a7f05), 16777216); // mov qword ptr [r28-0x299a7f05], 16777216 IID13820 - __ movq(Address(r29, +0x7aa23a85), 16777216); // mov qword ptr [r29+0x7aa23a85], 16777216 IID13821 - __ movq(Address(r30, r31, (Address::ScaleFactor)1, -0x56714bf8), 16777216); // mov qword ptr [r30+r31*2-0x56714bf8], 16777216 IID13822 - __ movq(Address(r31, rcx, (Address::ScaleFactor)3, +0x19372c92), 16777216); // mov qword ptr [r31+rcx*8+0x19372c92], 16777216 IID13823 - __ movq(Address(rcx, rdx, (Address::ScaleFactor)3, -0x74f5075a), 268435456); // mov qword ptr [rcx+rdx*8-0x74f5075a], 268435456 IID13824 - __ movq(Address(rdx, rbx, (Address::ScaleFactor)3, +0x1e7445cd), 268435456); // mov qword ptr [rdx+rbx*8+0x1e7445cd], 268435456 IID13825 - __ movq(Address(rbx, r8, (Address::ScaleFactor)2, -0x51ff80e7), 268435456); // mov qword ptr [rbx+r8*4-0x51ff80e7], 268435456 IID13826 - __ movq(Address(r8, +0x3507622f), 268435456); // mov qword ptr [r8+0x3507622f], 268435456 IID13827 - __ movq(Address(r9, r10, (Address::ScaleFactor)0, -0x880ab9f), 268435456); // mov qword ptr [r9+r10*1-0x880ab9f], 268435456 IID13828 - __ movq(Address(r10, r11, (Address::ScaleFactor)1, -0x2fa8fd9e), 268435456); // mov qword ptr [r10+r11*2-0x2fa8fd9e], 268435456 IID13829 - __ movq(Address(r11, +0x34562e5e), 268435456); // mov qword ptr [r11+0x34562e5e], 268435456 IID13830 - __ movq(Address(r12, r13, (Address::ScaleFactor)1, +0x6109811d), 268435456); // mov qword ptr [r12+r13*2+0x6109811d], 268435456 IID13831 - __ movq(Address(r13, r14, (Address::ScaleFactor)2, +0x2ba10e9e), 268435456); // mov qword ptr [r13+r14*4+0x2ba10e9e], 268435456 IID13832 - __ movq(Address(r14, r15, (Address::ScaleFactor)3, -0x41bed125), 268435456); // mov qword ptr [r14+r15*8-0x41bed125], 268435456 IID13833 - __ movq(Address(r15, r16, (Address::ScaleFactor)0, -0x634c5150), 268435456); // mov qword ptr [r15+r16*1-0x634c5150], 268435456 IID13834 - __ movq(Address(r16, r17, (Address::ScaleFactor)3, -0x2098bdfa), 268435456); // mov qword ptr [r16+r17*8-0x2098bdfa], 268435456 IID13835 - __ movq(Address(r17, +0x315e8a76), 268435456); // mov qword ptr [r17+0x315e8a76], 268435456 IID13836 - __ movq(Address(r18, r19, (Address::ScaleFactor)3, +0x50e3ec7b), 268435456); // mov qword ptr [r18+r19*8+0x50e3ec7b], 268435456 IID13837 - __ movq(Address(r19, -0x3369a43e), 268435456); // mov qword ptr [r19-0x3369a43e], 268435456 IID13838 - __ movq(Address(r20, r21, (Address::ScaleFactor)0, +0xec01e22), 268435456); // mov qword ptr [r20+r21*1+0xec01e22], 268435456 IID13839 - __ movq(Address(r21, r22, (Address::ScaleFactor)3, +0x2f8e2fb0), 268435456); // mov qword ptr [r21+r22*8+0x2f8e2fb0], 268435456 IID13840 - __ movq(Address(r22, +0x7b7e8ece), 268435456); // mov qword ptr [r22+0x7b7e8ece], 268435456 IID13841 - __ movq(Address(r23, r24, (Address::ScaleFactor)3, +0x143166), 268435456); // mov qword ptr [r23+r24*8+0x143166], 268435456 IID13842 - __ movq(Address(r24, r25, (Address::ScaleFactor)3, -0x27b33089), 268435456); // mov qword ptr [r24+r25*8-0x27b33089], 268435456 IID13843 - __ movq(Address(r25, r26, (Address::ScaleFactor)0, -0x78b1bd7f), 268435456); // mov qword ptr [r25+r26*1-0x78b1bd7f], 268435456 IID13844 - __ movq(Address(r26, r27, (Address::ScaleFactor)0, +0x5b811b78), 268435456); // mov qword ptr [r26+r27*1+0x5b811b78], 268435456 IID13845 - __ movq(Address(r27, r28, (Address::ScaleFactor)3, -0x3ff41850), 268435456); // mov qword ptr [r27+r28*8-0x3ff41850], 268435456 IID13846 - __ movq(Address(r28, r29, (Address::ScaleFactor)3, +0x50fa432d), 268435456); // mov qword ptr [r28+r29*8+0x50fa432d], 268435456 IID13847 - __ movq(Address(r29, r30, (Address::ScaleFactor)0, +0x6193931), 268435456); // mov qword ptr [r29+r30*1+0x6193931], 268435456 IID13848 - __ movq(Address(r30, r31, (Address::ScaleFactor)1, -0x362509fb), 268435456); // mov qword ptr [r30+r31*2-0x362509fb], 268435456 IID13849 - __ movq(Address(r31, rcx, (Address::ScaleFactor)0, +0x9b039d0), 268435456); // mov qword ptr [r31+rcx*1+0x9b039d0], 268435456 IID13850 - __ testq(Address(rcx, +0x6fb7fb9d), -1); // test qword ptr [rcx+0x6fb7fb9d], -1 IID13851 - __ testq(Address(rdx, +0x2aff8769), -1); // test qword ptr [rdx+0x2aff8769], -1 IID13852 - __ testq(Address(rbx, r8, (Address::ScaleFactor)2, -0x1f18123f), -1); // test qword ptr [rbx+r8*4-0x1f18123f], -1 IID13853 - __ testq(Address(r8, r9, (Address::ScaleFactor)0, -0x518f80b6), -1); // test qword ptr [r8+r9*1-0x518f80b6], -1 IID13854 - __ testq(Address(r9, r10, (Address::ScaleFactor)3, -0x7c39244a), -1); // test qword ptr [r9+r10*8-0x7c39244a], -1 IID13855 - __ testq(Address(r10, r11, (Address::ScaleFactor)0, +0x284d8d2c), -1); // test qword ptr [r10+r11*1+0x284d8d2c], -1 IID13856 - __ testq(Address(r11, r12, (Address::ScaleFactor)2, -0x62810296), -1); // test qword ptr [r11+r12*4-0x62810296], -1 IID13857 - __ testq(Address(r12, +0x51d0987d), -1); // test qword ptr [r12+0x51d0987d], -1 IID13858 - __ testq(Address(r13, r14, (Address::ScaleFactor)2, -0x1c8c8a15), -1); // test qword ptr [r13+r14*4-0x1c8c8a15], -1 IID13859 - __ testq(Address(r14, r15, (Address::ScaleFactor)3, -0x494ff04f), -1); // test qword ptr [r14+r15*8-0x494ff04f], -1 IID13860 - __ testq(Address(r15, -0x7ed07170), -1); // test qword ptr [r15-0x7ed07170], -1 IID13861 - __ testq(Address(r16, r17, (Address::ScaleFactor)2, +0x5a99aec2), -1); // test qword ptr [r16+r17*4+0x5a99aec2], -1 IID13862 - __ testq(Address(r17, r18, (Address::ScaleFactor)2, -0x16ce8cf8), -1); // test qword ptr [r17+r18*4-0x16ce8cf8], -1 IID13863 - __ testq(Address(r18, r19, (Address::ScaleFactor)2, +0x7ec92746), -1); // test qword ptr [r18+r19*4+0x7ec92746], -1 IID13864 - __ testq(Address(r19, r20, (Address::ScaleFactor)0, +0x61411950), -1); // test qword ptr [r19+r20*1+0x61411950], -1 IID13865 - __ testq(Address(r20, r21, (Address::ScaleFactor)3, +0x44a45fcc), -1); // test qword ptr [r20+r21*8+0x44a45fcc], -1 IID13866 - __ testq(Address(r21, -0x72b78625), -1); // test qword ptr [r21-0x72b78625], -1 IID13867 - __ testq(Address(r22, r23, (Address::ScaleFactor)1, +0x579dd54d), -1); // test qword ptr [r22+r23*2+0x579dd54d], -1 IID13868 - __ testq(Address(r23, r24, (Address::ScaleFactor)1, +0x66f9cd3), -1); // test qword ptr [r23+r24*2+0x66f9cd3], -1 IID13869 - __ testq(Address(r24, r25, (Address::ScaleFactor)2, -0x50a45adc), -1); // test qword ptr [r24+r25*4-0x50a45adc], -1 IID13870 - __ testq(Address(r25, r26, (Address::ScaleFactor)2, +0x4efe3398), -1); // test qword ptr [r25+r26*4+0x4efe3398], -1 IID13871 - __ testq(Address(r26, r27, (Address::ScaleFactor)2, +0x7c35416f), -1); // test qword ptr [r26+r27*4+0x7c35416f], -1 IID13872 - __ testq(Address(r27, r28, (Address::ScaleFactor)2, +0x43dc780e), -1); // test qword ptr [r27+r28*4+0x43dc780e], -1 IID13873 - __ testq(Address(r28, r29, (Address::ScaleFactor)3, -0x42dffb8f), -1); // test qword ptr [r28+r29*8-0x42dffb8f], -1 IID13874 - __ testq(Address(r29, r30, (Address::ScaleFactor)3, +0x26fb7be4), -1); // test qword ptr [r29+r30*8+0x26fb7be4], -1 IID13875 - __ testq(Address(r30, r31, (Address::ScaleFactor)0, -0x5a48a3c6), -1); // test qword ptr [r30+r31*1-0x5a48a3c6], -1 IID13876 - __ testq(Address(r31, rcx, (Address::ScaleFactor)1, +0x5d914566), -1); // test qword ptr [r31+rcx*2+0x5d914566], -1 IID13877 - __ testq(Address(rcx, rdx, (Address::ScaleFactor)2, +0x4b5ce8a6), -16); // test qword ptr [rcx+rdx*4+0x4b5ce8a6], -16 IID13878 - __ testq(Address(rdx, +0x723cccbf), -16); // test qword ptr [rdx+0x723cccbf], -16 IID13879 - __ testq(Address(rbx, r8, (Address::ScaleFactor)1, +0x6dd485), -16); // test qword ptr [rbx+r8*2+0x6dd485], -16 IID13880 - __ testq(Address(r8, r9, (Address::ScaleFactor)0, -0x7f425a8d), -16); // test qword ptr [r8+r9*1-0x7f425a8d], -16 IID13881 - __ testq(Address(r9, r10, (Address::ScaleFactor)2, -0xbe397ce), -16); // test qword ptr [r9+r10*4-0xbe397ce], -16 IID13882 - __ testq(Address(r10, r11, (Address::ScaleFactor)2, +0x5904667e), -16); // test qword ptr [r10+r11*4+0x5904667e], -16 IID13883 - __ testq(Address(r11, r12, (Address::ScaleFactor)0, -0x5fe85371), -16); // test qword ptr [r11+r12*1-0x5fe85371], -16 IID13884 - __ testq(Address(r12, r13, (Address::ScaleFactor)0, -0x6328afd1), -16); // test qword ptr [r12+r13*1-0x6328afd1], -16 IID13885 - __ testq(Address(r13, +0x2f78a7e7), -16); // test qword ptr [r13+0x2f78a7e7], -16 IID13886 - __ testq(Address(r14, r15, (Address::ScaleFactor)1, +0x9e0588a), -16); // test qword ptr [r14+r15*2+0x9e0588a], -16 IID13887 - __ testq(Address(r15, -0x741da105), -16); // test qword ptr [r15-0x741da105], -16 IID13888 - __ testq(Address(r16, r17, (Address::ScaleFactor)2, +0x6b584bf8), -16); // test qword ptr [r16+r17*4+0x6b584bf8], -16 IID13889 - __ testq(Address(r17, r18, (Address::ScaleFactor)0, -0x41bc19e5), -16); // test qword ptr [r17+r18*1-0x41bc19e5], -16 IID13890 - __ testq(Address(r18, +0x19611014), -16); // test qword ptr [r18+0x19611014], -16 IID13891 - __ testq(Address(r19, r20, (Address::ScaleFactor)2, -0x471438d0), -16); // test qword ptr [r19+r20*4-0x471438d0], -16 IID13892 - __ testq(Address(r20, r21, (Address::ScaleFactor)2, -0x4e348ff4), -16); // test qword ptr [r20+r21*4-0x4e348ff4], -16 IID13893 - __ testq(Address(r21, r22, (Address::ScaleFactor)0, -0x285d78f5), -16); // test qword ptr [r21+r22*1-0x285d78f5], -16 IID13894 - __ testq(Address(r22, r23, (Address::ScaleFactor)2, -0x5e11a94), -16); // test qword ptr [r22+r23*4-0x5e11a94], -16 IID13895 - __ testq(Address(r23, r24, (Address::ScaleFactor)2, +0x2761d1), -16); // test qword ptr [r23+r24*4+0x2761d1], -16 IID13896 - __ testq(Address(r24, r25, (Address::ScaleFactor)1, +0x1b621d6d), -16); // test qword ptr [r24+r25*2+0x1b621d6d], -16 IID13897 - __ testq(Address(r25, r26, (Address::ScaleFactor)0, -0x6ed4ec56), -16); // test qword ptr [r25+r26*1-0x6ed4ec56], -16 IID13898 - __ testq(Address(r26, +0x38383365), -16); // test qword ptr [r26+0x38383365], -16 IID13899 - __ testq(Address(r27, r28, (Address::ScaleFactor)1, +0x6ec2f894), -16); // test qword ptr [r27+r28*2+0x6ec2f894], -16 IID13900 - __ testq(Address(r28, r29, (Address::ScaleFactor)1, -0x2d046ea8), -16); // test qword ptr [r28+r29*2-0x2d046ea8], -16 IID13901 - __ testq(Address(r29, r30, (Address::ScaleFactor)0, +0x56c78a75), -16); // test qword ptr [r29+r30*1+0x56c78a75], -16 IID13902 - __ testq(Address(r30, r31, (Address::ScaleFactor)0, -0xa75988), -16); // test qword ptr [r30+r31*1-0xa75988], -16 IID13903 - __ testq(Address(r31, rcx, (Address::ScaleFactor)1, +0x30a6363a), -16); // test qword ptr [r31+rcx*2+0x30a6363a], -16 IID13904 - __ testq(Address(rcx, -0x65f9501d), -256); // test qword ptr [rcx-0x65f9501d], -256 IID13905 - __ testq(Address(rdx, rbx, (Address::ScaleFactor)1, -0x690ee65e), -256); // test qword ptr [rdx+rbx*2-0x690ee65e], -256 IID13906 - __ testq(Address(rbx, r8, (Address::ScaleFactor)2, +0x4420c678), -256); // test qword ptr [rbx+r8*4+0x4420c678], -256 IID13907 - __ testq(Address(r8, r9, (Address::ScaleFactor)3, +0x408ed0db), -256); // test qword ptr [r8+r9*8+0x408ed0db], -256 IID13908 - __ testq(Address(r9, r10, (Address::ScaleFactor)2, +0x79556be), -256); // test qword ptr [r9+r10*4+0x79556be], -256 IID13909 - __ testq(Address(r10, r11, (Address::ScaleFactor)2, +0x5fdf14cf), -256); // test qword ptr [r10+r11*4+0x5fdf14cf], -256 IID13910 - __ testq(Address(r11, r12, (Address::ScaleFactor)0, -0x11a2e3df), -256); // test qword ptr [r11+r12*1-0x11a2e3df], -256 IID13911 - __ testq(Address(r12, r13, (Address::ScaleFactor)3, +0x47c7412f), -256); // test qword ptr [r12+r13*8+0x47c7412f], -256 IID13912 - __ testq(Address(r13, +0x14002c65), -256); // test qword ptr [r13+0x14002c65], -256 IID13913 - __ testq(Address(r14, r15, (Address::ScaleFactor)0, +0x7de8315f), -256); // test qword ptr [r14+r15*1+0x7de8315f], -256 IID13914 - __ testq(Address(r15, r16, (Address::ScaleFactor)2, +0x14693db8), -256); // test qword ptr [r15+r16*4+0x14693db8], -256 IID13915 - __ testq(Address(r16, r17, (Address::ScaleFactor)2, +0x4e0b3580), -256); // test qword ptr [r16+r17*4+0x4e0b3580], -256 IID13916 - __ testq(Address(r17, r18, (Address::ScaleFactor)2, +0x77258883), -256); // test qword ptr [r17+r18*4+0x77258883], -256 IID13917 - __ testq(Address(r18, r19, (Address::ScaleFactor)0, -0x36d10a94), -256); // test qword ptr [r18+r19*1-0x36d10a94], -256 IID13918 - __ testq(Address(r19, r20, (Address::ScaleFactor)3, +0x7eaa97d1), -256); // test qword ptr [r19+r20*8+0x7eaa97d1], -256 IID13919 - __ testq(Address(r20, +0x6362415f), -256); // test qword ptr [r20+0x6362415f], -256 IID13920 - __ testq(Address(r21, r22, (Address::ScaleFactor)0, +0xdf0deca), -256); // test qword ptr [r21+r22*1+0xdf0deca], -256 IID13921 - __ testq(Address(r22, +0x3c1552ac), -256); // test qword ptr [r22+0x3c1552ac], -256 IID13922 - __ testq(Address(r23, r24, (Address::ScaleFactor)0, +0x3df3fc78), -256); // test qword ptr [r23+r24*1+0x3df3fc78], -256 IID13923 - __ testq(Address(r24, -0x358acb46), -256); // test qword ptr [r24-0x358acb46], -256 IID13924 - __ testq(Address(r25, r26, (Address::ScaleFactor)1, -0x16cb75), -256); // test qword ptr [r25+r26*2-0x16cb75], -256 IID13925 - __ testq(Address(r26, r27, (Address::ScaleFactor)1, +0x54f2b320), -256); // test qword ptr [r26+r27*2+0x54f2b320], -256 IID13926 - __ testq(Address(r27, r28, (Address::ScaleFactor)3, +0x598bc028), -256); // test qword ptr [r27+r28*8+0x598bc028], -256 IID13927 - __ testq(Address(r28, r29, (Address::ScaleFactor)0, +0x2c3b8c4c), -256); // test qword ptr [r28+r29*1+0x2c3b8c4c], -256 IID13928 - __ testq(Address(r29, r30, (Address::ScaleFactor)2, +0x6004c95b), -256); // test qword ptr [r29+r30*4+0x6004c95b], -256 IID13929 - __ testq(Address(r30, r31, (Address::ScaleFactor)1, -0x27a1516f), -256); // test qword ptr [r30+r31*2-0x27a1516f], -256 IID13930 - __ testq(Address(r31, rcx, (Address::ScaleFactor)1, +0x5866b775), -256); // test qword ptr [r31+rcx*2+0x5866b775], -256 IID13931 - __ testq(Address(rcx, +0x23e70512), -4096); // test qword ptr [rcx+0x23e70512], -4096 IID13932 - __ testq(Address(rdx, +0x1b4044d4), -4096); // test qword ptr [rdx+0x1b4044d4], -4096 IID13933 - __ testq(Address(rbx, +0x4e0b439c), -4096); // test qword ptr [rbx+0x4e0b439c], -4096 IID13934 - __ testq(Address(r8, r9, (Address::ScaleFactor)1, +0x359caf06), -4096); // test qword ptr [r8+r9*2+0x359caf06], -4096 IID13935 - __ testq(Address(r9, r10, (Address::ScaleFactor)1, -0x7c388032), -4096); // test qword ptr [r9+r10*2-0x7c388032], -4096 IID13936 - __ testq(Address(r10, -0x27ed109b), -4096); // test qword ptr [r10-0x27ed109b], -4096 IID13937 - __ testq(Address(r11, r12, (Address::ScaleFactor)0, -0x788cc030), -4096); // test qword ptr [r11+r12*1-0x788cc030], -4096 IID13938 - __ testq(Address(r12, r13, (Address::ScaleFactor)3, -0x28b86141), -4096); // test qword ptr [r12+r13*8-0x28b86141], -4096 IID13939 - __ testq(Address(r13, -0x7ab6de79), -4096); // test qword ptr [r13-0x7ab6de79], -4096 IID13940 - __ testq(Address(r14, r15, (Address::ScaleFactor)3, -0x1c650099), -4096); // test qword ptr [r14+r15*8-0x1c650099], -4096 IID13941 - __ testq(Address(r15, r16, (Address::ScaleFactor)2, -0xd74fb15), -4096); // test qword ptr [r15+r16*4-0xd74fb15], -4096 IID13942 - __ testq(Address(r16, r17, (Address::ScaleFactor)1, -0x5c3bbef8), -4096); // test qword ptr [r16+r17*2-0x5c3bbef8], -4096 IID13943 - __ testq(Address(r17, +0x767f49cf), -4096); // test qword ptr [r17+0x767f49cf], -4096 IID13944 - __ testq(Address(r18, r19, (Address::ScaleFactor)2, -0x5af39fef), -4096); // test qword ptr [r18+r19*4-0x5af39fef], -4096 IID13945 - __ testq(Address(r19, r20, (Address::ScaleFactor)1, -0x3a18dc3d), -4096); // test qword ptr [r19+r20*2-0x3a18dc3d], -4096 IID13946 - __ testq(Address(r20, -0x9abe0d3), -4096); // test qword ptr [r20-0x9abe0d3], -4096 IID13947 - __ testq(Address(r21, r22, (Address::ScaleFactor)3, -0x6eb799b2), -4096); // test qword ptr [r21+r22*8-0x6eb799b2], -4096 IID13948 - __ testq(Address(r22, +0x51df0269), -4096); // test qword ptr [r22+0x51df0269], -4096 IID13949 - __ testq(Address(r23, r24, (Address::ScaleFactor)0, +0x517105a6), -4096); // test qword ptr [r23+r24*1+0x517105a6], -4096 IID13950 - __ testq(Address(r24, r25, (Address::ScaleFactor)1, +0xe0e60db), -4096); // test qword ptr [r24+r25*2+0xe0e60db], -4096 IID13951 - __ testq(Address(r25, r26, (Address::ScaleFactor)0, -0x47d3dcb6), -4096); // test qword ptr [r25+r26*1-0x47d3dcb6], -4096 IID13952 - __ testq(Address(r26, r27, (Address::ScaleFactor)2, +0x4d28efe4), -4096); // test qword ptr [r26+r27*4+0x4d28efe4], -4096 IID13953 - __ testq(Address(r27, +0x30b63358), -4096); // test qword ptr [r27+0x30b63358], -4096 IID13954 - __ testq(Address(r28, r29, (Address::ScaleFactor)1, +0x35a0847a), -4096); // test qword ptr [r28+r29*2+0x35a0847a], -4096 IID13955 - __ testq(Address(r29, r30, (Address::ScaleFactor)0, -0xebd0969), -4096); // test qword ptr [r29+r30*1-0xebd0969], -4096 IID13956 - __ testq(Address(r30, -0xbb13b57), -4096); // test qword ptr [r30-0xbb13b57], -4096 IID13957 - __ testq(Address(r31, rcx, (Address::ScaleFactor)3, -0x3591e1ee), -4096); // test qword ptr [r31+rcx*8-0x3591e1ee], -4096 IID13958 - __ testq(Address(rcx, -0x76fe8a1f), -65536); // test qword ptr [rcx-0x76fe8a1f], -65536 IID13959 - __ testq(Address(rdx, rbx, (Address::ScaleFactor)0, -0x5e88bb98), -65536); // test qword ptr [rdx+rbx*1-0x5e88bb98], -65536 IID13960 - __ testq(Address(rbx, r8, (Address::ScaleFactor)0, +0x523ef263), -65536); // test qword ptr [rbx+r8*1+0x523ef263], -65536 IID13961 - __ testq(Address(r8, -0x8fbd838), -65536); // test qword ptr [r8-0x8fbd838], -65536 IID13962 - __ testq(Address(r9, r10, (Address::ScaleFactor)2, +0x2bb96cff), -65536); // test qword ptr [r9+r10*4+0x2bb96cff], -65536 IID13963 - __ testq(Address(r10, +0x7e42b8c), -65536); // test qword ptr [r10+0x7e42b8c], -65536 IID13964 - __ testq(Address(r11, r12, (Address::ScaleFactor)3, +0x41a7d5d), -65536); // test qword ptr [r11+r12*8+0x41a7d5d], -65536 IID13965 - __ testq(Address(r12, r13, (Address::ScaleFactor)0, +0x2c7b0d01), -65536); // test qword ptr [r12+r13*1+0x2c7b0d01], -65536 IID13966 - __ testq(Address(r13, r14, (Address::ScaleFactor)1, -0x189a8be8), -65536); // test qword ptr [r13+r14*2-0x189a8be8], -65536 IID13967 - __ testq(Address(r14, r15, (Address::ScaleFactor)3, +0x66813a20), -65536); // test qword ptr [r14+r15*8+0x66813a20], -65536 IID13968 - __ testq(Address(r15, r16, (Address::ScaleFactor)0, +0x38506845), -65536); // test qword ptr [r15+r16*1+0x38506845], -65536 IID13969 - __ testq(Address(r16, r17, (Address::ScaleFactor)2, -0x5822365f), -65536); // test qword ptr [r16+r17*4-0x5822365f], -65536 IID13970 - __ testq(Address(r17, r18, (Address::ScaleFactor)2, +0x793014f0), -65536); // test qword ptr [r17+r18*4+0x793014f0], -65536 IID13971 - __ testq(Address(r18, r19, (Address::ScaleFactor)0, -0x48f43cc3), -65536); // test qword ptr [r18+r19*1-0x48f43cc3], -65536 IID13972 - __ testq(Address(r19, r20, (Address::ScaleFactor)2, -0x69c4c7ee), -65536); // test qword ptr [r19+r20*4-0x69c4c7ee], -65536 IID13973 - __ testq(Address(r20, r21, (Address::ScaleFactor)0, +0x7a27a034), -65536); // test qword ptr [r20+r21*1+0x7a27a034], -65536 IID13974 - __ testq(Address(r21, r22, (Address::ScaleFactor)2, +0x5e3773d8), -65536); // test qword ptr [r21+r22*4+0x5e3773d8], -65536 IID13975 - __ testq(Address(r22, +0x59ef057b), -65536); // test qword ptr [r22+0x59ef057b], -65536 IID13976 - __ testq(Address(r23, +0x63230325), -65536); // test qword ptr [r23+0x63230325], -65536 IID13977 - __ testq(Address(r24, r25, (Address::ScaleFactor)1, +0x1f2d789), -65536); // test qword ptr [r24+r25*2+0x1f2d789], -65536 IID13978 - __ testq(Address(r25, r26, (Address::ScaleFactor)3, -0x5e1a3b05), -65536); // test qword ptr [r25+r26*8-0x5e1a3b05], -65536 IID13979 - __ testq(Address(r26, r27, (Address::ScaleFactor)1, -0x326e5c3b), -65536); // test qword ptr [r26+r27*2-0x326e5c3b], -65536 IID13980 - __ testq(Address(r27, r28, (Address::ScaleFactor)1, +0x7c664925), -65536); // test qword ptr [r27+r28*2+0x7c664925], -65536 IID13981 - __ testq(Address(r28, -0x55d9a8eb), -65536); // test qword ptr [r28-0x55d9a8eb], -65536 IID13982 - __ testq(Address(r29, r30, (Address::ScaleFactor)2, -0x65b450), -65536); // test qword ptr [r29+r30*4-0x65b450], -65536 IID13983 - __ testq(Address(r30, -0x1592c48), -65536); // test qword ptr [r30-0x1592c48], -65536 IID13984 - __ testq(Address(r31, rcx, (Address::ScaleFactor)0, +0x7dd4de25), -65536); // test qword ptr [r31+rcx*1+0x7dd4de25], -65536 IID13985 - __ testq(Address(rcx, rdx, (Address::ScaleFactor)3, -0x3e416057), -1048576); // test qword ptr [rcx+rdx*8-0x3e416057], -1048576 IID13986 - __ testq(Address(rdx, rbx, (Address::ScaleFactor)0, +0x1b54d299), -1048576); // test qword ptr [rdx+rbx*1+0x1b54d299], -1048576 IID13987 - __ testq(Address(rbx, r8, (Address::ScaleFactor)1, +0x1f1df6bb), -1048576); // test qword ptr [rbx+r8*2+0x1f1df6bb], -1048576 IID13988 - __ testq(Address(r8, r9, (Address::ScaleFactor)2, +0xa1d057c), -1048576); // test qword ptr [r8+r9*4+0xa1d057c], -1048576 IID13989 - __ testq(Address(r9, r10, (Address::ScaleFactor)1, +0x1b902503), -1048576); // test qword ptr [r9+r10*2+0x1b902503], -1048576 IID13990 - __ testq(Address(r10, r11, (Address::ScaleFactor)3, -0x4dbf9d80), -1048576); // test qword ptr [r10+r11*8-0x4dbf9d80], -1048576 IID13991 - __ testq(Address(r11, -0x8cc2eb8), -1048576); // test qword ptr [r11-0x8cc2eb8], -1048576 IID13992 - __ testq(Address(r12, r13, (Address::ScaleFactor)3, -0x28d5ab58), -1048576); // test qword ptr [r12+r13*8-0x28d5ab58], -1048576 IID13993 - __ testq(Address(r13, r14, (Address::ScaleFactor)3, -0x19a8ce7f), -1048576); // test qword ptr [r13+r14*8-0x19a8ce7f], -1048576 IID13994 - __ testq(Address(r14, +0x95cfe62), -1048576); // test qword ptr [r14+0x95cfe62], -1048576 IID13995 - __ testq(Address(r15, r16, (Address::ScaleFactor)1, +0x32d790a8), -1048576); // test qword ptr [r15+r16*2+0x32d790a8], -1048576 IID13996 - __ testq(Address(r16, r17, (Address::ScaleFactor)2, +0x44b5ef81), -1048576); // test qword ptr [r16+r17*4+0x44b5ef81], -1048576 IID13997 - __ testq(Address(r17, r18, (Address::ScaleFactor)0, +0x7c2a140f), -1048576); // test qword ptr [r17+r18*1+0x7c2a140f], -1048576 IID13998 - __ testq(Address(r18, r19, (Address::ScaleFactor)0, +0x200e4399), -1048576); // test qword ptr [r18+r19*1+0x200e4399], -1048576 IID13999 - __ testq(Address(r19, -0xbe3b3e0), -1048576); // test qword ptr [r19-0xbe3b3e0], -1048576 IID14000 - __ testq(Address(r20, r21, (Address::ScaleFactor)0, +0x1f80c7c1), -1048576); // test qword ptr [r20+r21*1+0x1f80c7c1], -1048576 IID14001 - __ testq(Address(r21, r22, (Address::ScaleFactor)0, +0x145c10fd), -1048576); // test qword ptr [r21+r22*1+0x145c10fd], -1048576 IID14002 - __ testq(Address(r22, r23, (Address::ScaleFactor)1, -0x4c6daced), -1048576); // test qword ptr [r22+r23*2-0x4c6daced], -1048576 IID14003 - __ testq(Address(r23, r24, (Address::ScaleFactor)3, -0x726c63a0), -1048576); // test qword ptr [r23+r24*8-0x726c63a0], -1048576 IID14004 - __ testq(Address(r24, r25, (Address::ScaleFactor)3, -0x5c668b4a), -1048576); // test qword ptr [r24+r25*8-0x5c668b4a], -1048576 IID14005 - __ testq(Address(r25, r26, (Address::ScaleFactor)2, -0x7d15dc6), -1048576); // test qword ptr [r25+r26*4-0x7d15dc6], -1048576 IID14006 - __ testq(Address(r26, r27, (Address::ScaleFactor)1, -0x4f98736b), -1048576); // test qword ptr [r26+r27*2-0x4f98736b], -1048576 IID14007 - __ testq(Address(r27, r28, (Address::ScaleFactor)3, +0x5244ff1b), -1048576); // test qword ptr [r27+r28*8+0x5244ff1b], -1048576 IID14008 - __ testq(Address(r28, r29, (Address::ScaleFactor)2, +0x7de59e06), -1048576); // test qword ptr [r28+r29*4+0x7de59e06], -1048576 IID14009 - __ testq(Address(r29, r30, (Address::ScaleFactor)3, +0x78b1860b), -1048576); // test qword ptr [r29+r30*8+0x78b1860b], -1048576 IID14010 - __ testq(Address(r30, r31, (Address::ScaleFactor)2, +0x40e9116b), -1048576); // test qword ptr [r30+r31*4+0x40e9116b], -1048576 IID14011 - __ testq(Address(r31, rcx, (Address::ScaleFactor)1, -0x609cd5e0), -1048576); // test qword ptr [r31+rcx*2-0x609cd5e0], -1048576 IID14012 - __ testq(Address(rcx, rdx, (Address::ScaleFactor)1, -0x16cd816f), -16777216); // test qword ptr [rcx+rdx*2-0x16cd816f], -16777216 IID14013 - __ testq(Address(rdx, rbx, (Address::ScaleFactor)0, +0x4bf0a139), -16777216); // test qword ptr [rdx+rbx*1+0x4bf0a139], -16777216 IID14014 - __ testq(Address(rbx, r8, (Address::ScaleFactor)0, -0x48dfbc4a), -16777216); // test qword ptr [rbx+r8*1-0x48dfbc4a], -16777216 IID14015 - __ testq(Address(r8, r9, (Address::ScaleFactor)3, -0x3419960c), -16777216); // test qword ptr [r8+r9*8-0x3419960c], -16777216 IID14016 - __ testq(Address(r9, r10, (Address::ScaleFactor)0, +0x20f0870e), -16777216); // test qword ptr [r9+r10*1+0x20f0870e], -16777216 IID14017 - __ testq(Address(r10, r11, (Address::ScaleFactor)0, -0x76a923c4), -16777216); // test qword ptr [r10+r11*1-0x76a923c4], -16777216 IID14018 - __ testq(Address(r11, r12, (Address::ScaleFactor)0, +0x1f52440e), -16777216); // test qword ptr [r11+r12*1+0x1f52440e], -16777216 IID14019 - __ testq(Address(r12, r13, (Address::ScaleFactor)3, -0xac8991), -16777216); // test qword ptr [r12+r13*8-0xac8991], -16777216 IID14020 - __ testq(Address(r13, r14, (Address::ScaleFactor)1, +0x43805ba1), -16777216); // test qword ptr [r13+r14*2+0x43805ba1], -16777216 IID14021 - __ testq(Address(r14, +0x43f54206), -16777216); // test qword ptr [r14+0x43f54206], -16777216 IID14022 - __ testq(Address(r15, r16, (Address::ScaleFactor)1, +0x772b17c), -16777216); // test qword ptr [r15+r16*2+0x772b17c], -16777216 IID14023 - __ testq(Address(r16, r17, (Address::ScaleFactor)2, -0x569b56d3), -16777216); // test qword ptr [r16+r17*4-0x569b56d3], -16777216 IID14024 - __ testq(Address(r17, r18, (Address::ScaleFactor)1, +0x3b2e2759), -16777216); // test qword ptr [r17+r18*2+0x3b2e2759], -16777216 IID14025 - __ testq(Address(r18, r19, (Address::ScaleFactor)2, +0x3f14ef33), -16777216); // test qword ptr [r18+r19*4+0x3f14ef33], -16777216 IID14026 - __ testq(Address(r19, r20, (Address::ScaleFactor)0, -0x23f096ed), -16777216); // test qword ptr [r19+r20*1-0x23f096ed], -16777216 IID14027 - __ testq(Address(r20, -0x57c63562), -16777216); // test qword ptr [r20-0x57c63562], -16777216 IID14028 - __ testq(Address(r21, r22, (Address::ScaleFactor)1, +0xffedff9), -16777216); // test qword ptr [r21+r22*2+0xffedff9], -16777216 IID14029 - __ testq(Address(r22, r23, (Address::ScaleFactor)0, +0x47d31ee4), -16777216); // test qword ptr [r22+r23*1+0x47d31ee4], -16777216 IID14030 - __ testq(Address(r23, +0x691cacdd), -16777216); // test qword ptr [r23+0x691cacdd], -16777216 IID14031 - __ testq(Address(r24, r25, (Address::ScaleFactor)0, +0x398c246c), -16777216); // test qword ptr [r24+r25*1+0x398c246c], -16777216 IID14032 - __ testq(Address(r25, r26, (Address::ScaleFactor)1, +0x40655ff4), -16777216); // test qword ptr [r25+r26*2+0x40655ff4], -16777216 IID14033 - __ testq(Address(r26, r27, (Address::ScaleFactor)2, +0x6f1c2d2d), -16777216); // test qword ptr [r26+r27*4+0x6f1c2d2d], -16777216 IID14034 - __ testq(Address(r27, r28, (Address::ScaleFactor)2, +0x7ddf4078), -16777216); // test qword ptr [r27+r28*4+0x7ddf4078], -16777216 IID14035 - __ testq(Address(r28, r29, (Address::ScaleFactor)0, -0x18808f1d), -16777216); // test qword ptr [r28+r29*1-0x18808f1d], -16777216 IID14036 - __ testq(Address(r29, r30, (Address::ScaleFactor)1, -0x21bc5ba7), -16777216); // test qword ptr [r29+r30*2-0x21bc5ba7], -16777216 IID14037 - __ testq(Address(r30, -0x5b4c6838), -16777216); // test qword ptr [r30-0x5b4c6838], -16777216 IID14038 - __ testq(Address(r31, rcx, (Address::ScaleFactor)1, -0x242f218d), -16777216); // test qword ptr [r31+rcx*2-0x242f218d], -16777216 IID14039 - __ testq(Address(rcx, rdx, (Address::ScaleFactor)2, +0x13e77226), -268435456); // test qword ptr [rcx+rdx*4+0x13e77226], -268435456 IID14040 - __ testq(Address(rdx, +0x5ce7e5fe), -268435456); // test qword ptr [rdx+0x5ce7e5fe], -268435456 IID14041 - __ testq(Address(rbx, r8, (Address::ScaleFactor)3, +0x1f8aae12), -268435456); // test qword ptr [rbx+r8*8+0x1f8aae12], -268435456 IID14042 - __ testq(Address(r8, r9, (Address::ScaleFactor)1, -0xbed6ee3), -268435456); // test qword ptr [r8+r9*2-0xbed6ee3], -268435456 IID14043 - __ testq(Address(r9, r10, (Address::ScaleFactor)1, +0x48761492), -268435456); // test qword ptr [r9+r10*2+0x48761492], -268435456 IID14044 - __ testq(Address(r10, r11, (Address::ScaleFactor)1, -0x497d3a1a), -268435456); // test qword ptr [r10+r11*2-0x497d3a1a], -268435456 IID14045 - __ testq(Address(r11, r12, (Address::ScaleFactor)2, -0x3258a64), -268435456); // test qword ptr [r11+r12*4-0x3258a64], -268435456 IID14046 - __ testq(Address(r12, r13, (Address::ScaleFactor)1, -0x4fcc6807), -268435456); // test qword ptr [r12+r13*2-0x4fcc6807], -268435456 IID14047 - __ testq(Address(r13, r14, (Address::ScaleFactor)2, -0x539ee5), -268435456); // test qword ptr [r13+r14*4-0x539ee5], -268435456 IID14048 - __ testq(Address(r14, r15, (Address::ScaleFactor)1, +0x672c520a), -268435456); // test qword ptr [r14+r15*2+0x672c520a], -268435456 IID14049 - __ testq(Address(r15, +0x4be2df99), -268435456); // test qword ptr [r15+0x4be2df99], -268435456 IID14050 - __ testq(Address(r16, r17, (Address::ScaleFactor)3, -0x1be02850), -268435456); // test qword ptr [r16+r17*8-0x1be02850], -268435456 IID14051 - __ testq(Address(r17, r18, (Address::ScaleFactor)3, -0x722b0a24), -268435456); // test qword ptr [r17+r18*8-0x722b0a24], -268435456 IID14052 - __ testq(Address(r18, r19, (Address::ScaleFactor)2, +0x1968eff4), -268435456); // test qword ptr [r18+r19*4+0x1968eff4], -268435456 IID14053 - __ testq(Address(r19, r20, (Address::ScaleFactor)3, +0x329fb3b0), -268435456); // test qword ptr [r19+r20*8+0x329fb3b0], -268435456 IID14054 - __ testq(Address(r20, r21, (Address::ScaleFactor)2, -0x5111dde8), -268435456); // test qword ptr [r20+r21*4-0x5111dde8], -268435456 IID14055 - __ testq(Address(r21, r22, (Address::ScaleFactor)3, +0x2ddbe1c8), -268435456); // test qword ptr [r21+r22*8+0x2ddbe1c8], -268435456 IID14056 - __ testq(Address(r22, r23, (Address::ScaleFactor)1, +0x28f22716), -268435456); // test qword ptr [r22+r23*2+0x28f22716], -268435456 IID14057 - __ testq(Address(r23, r24, (Address::ScaleFactor)2, -0x6f10e870), -268435456); // test qword ptr [r23+r24*4-0x6f10e870], -268435456 IID14058 - __ testq(Address(r24, r25, (Address::ScaleFactor)0, +0x45fb3890), -268435456); // test qword ptr [r24+r25*1+0x45fb3890], -268435456 IID14059 - __ testq(Address(r25, r26, (Address::ScaleFactor)1, -0x704270f9), -268435456); // test qword ptr [r25+r26*2-0x704270f9], -268435456 IID14060 - __ testq(Address(r26, +0x204e4174), -268435456); // test qword ptr [r26+0x204e4174], -268435456 IID14061 - __ testq(Address(r27, r28, (Address::ScaleFactor)0, -0x355e8836), -268435456); // test qword ptr [r27+r28*1-0x355e8836], -268435456 IID14062 - __ testq(Address(r28, r29, (Address::ScaleFactor)2, -0xf8ac483), -268435456); // test qword ptr [r28+r29*4-0xf8ac483], -268435456 IID14063 - __ testq(Address(r29, r30, (Address::ScaleFactor)0, -0x76e39043), -268435456); // test qword ptr [r29+r30*1-0x76e39043], -268435456 IID14064 - __ testq(Address(r30, r31, (Address::ScaleFactor)1, +0x38d57e6), -268435456); // test qword ptr [r30+r31*2+0x38d57e6], -268435456 IID14065 - __ testq(Address(r31, rcx, (Address::ScaleFactor)1, -0x227cd97f), -268435456); // test qword ptr [r31+rcx*2-0x227cd97f], -268435456 IID14066 - __ addq(rcx, Address(rdx, rbx, (Address::ScaleFactor)3, +0x452bd2c2)); // add rcx, qword ptr [rdx+rbx*8+0x452bd2c2] IID14067 - __ addq(rdx, Address(rbx, r8, (Address::ScaleFactor)2, +0x33e1b2cc)); // add rdx, qword ptr [rbx+r8*4+0x33e1b2cc] IID14068 - __ addq(rbx, Address(r8, r9, (Address::ScaleFactor)2, +0x2883b44b)); // add rbx, qword ptr [r8+r9*4+0x2883b44b] IID14069 - __ addq(r8, Address(r9, r10, (Address::ScaleFactor)0, +0x5987e8e8)); // add r8, qword ptr [r9+r10*1+0x5987e8e8] IID14070 - __ addq(r9, Address(r10, r11, (Address::ScaleFactor)2, -0x23760fb2)); // add r9, qword ptr [r10+r11*4-0x23760fb2] IID14071 - __ addq(r10, Address(r11, +0x2837174a)); // add r10, qword ptr [r11+0x2837174a] IID14072 - __ addq(r11, Address(r12, +0x21a907da)); // add r11, qword ptr [r12+0x21a907da] IID14073 - __ addq(r12, Address(r13, r14, (Address::ScaleFactor)1, -0x649fc58a)); // add r12, qword ptr [r13+r14*2-0x649fc58a] IID14074 - __ addq(r13, Address(r14, +0x78e18ad0)); // add r13, qword ptr [r14+0x78e18ad0] IID14075 - __ addq(r14, Address(r15, r16, (Address::ScaleFactor)2, -0x2b78cd30)); // add r14, qword ptr [r15+r16*4-0x2b78cd30] IID14076 - __ addq(r15, Address(r16, r17, (Address::ScaleFactor)2, +0x452d6951)); // add r15, qword ptr [r16+r17*4+0x452d6951] IID14077 - __ addq(r16, Address(r17, r18, (Address::ScaleFactor)3, +0x6a4ed6a8)); // add r16, qword ptr [r17+r18*8+0x6a4ed6a8] IID14078 - __ addq(r17, Address(r18, r19, (Address::ScaleFactor)1, +0x3748926c)); // add r17, qword ptr [r18+r19*2+0x3748926c] IID14079 - __ addq(r18, Address(r19, r20, (Address::ScaleFactor)2, -0x686b2f9d)); // add r18, qword ptr [r19+r20*4-0x686b2f9d] IID14080 - __ addq(r19, Address(r20, r21, (Address::ScaleFactor)2, -0x3f91f6a4)); // add r19, qword ptr [r20+r21*4-0x3f91f6a4] IID14081 - __ addq(r20, Address(r21, r22, (Address::ScaleFactor)3, +0x7730c36c)); // add r20, qword ptr [r21+r22*8+0x7730c36c] IID14082 - __ addq(r21, Address(r22, r23, (Address::ScaleFactor)0, +0x67efce7d)); // add r21, qword ptr [r22+r23*1+0x67efce7d] IID14083 - __ addq(r22, Address(r23, r24, (Address::ScaleFactor)3, +0x379044f)); // add r22, qword ptr [r23+r24*8+0x379044f] IID14084 - __ addq(r23, Address(r24, r25, (Address::ScaleFactor)0, -0x726d39a7)); // add r23, qword ptr [r24+r25*1-0x726d39a7] IID14085 - __ addq(r24, Address(r25, r26, (Address::ScaleFactor)3, -0x78657db6)); // add r24, qword ptr [r25+r26*8-0x78657db6] IID14086 - __ addq(r25, Address(r26, r27, (Address::ScaleFactor)2, +0x3a6dc6f5)); // add r25, qword ptr [r26+r27*4+0x3a6dc6f5] IID14087 - __ addq(r26, Address(r27, r28, (Address::ScaleFactor)0, +0x2f27025f)); // add r26, qword ptr [r27+r28*1+0x2f27025f] IID14088 - __ addq(r27, Address(r28, r29, (Address::ScaleFactor)1, -0x2661de8f)); // add r27, qword ptr [r28+r29*2-0x2661de8f] IID14089 - __ addq(r28, Address(r29, +0x2e12da7c)); // add r28, qword ptr [r29+0x2e12da7c] IID14090 - __ addq(r29, Address(r30, +0x6938d77d)); // add r29, qword ptr [r30+0x6938d77d] IID14091 - __ addq(r30, Address(r31, rcx, (Address::ScaleFactor)3, -0x612c73ff)); // add r30, qword ptr [r31+rcx*8-0x612c73ff] IID14092 - __ addq(r31, Address(rcx, -0x428b8f6e)); // add r31, qword ptr [rcx-0x428b8f6e] IID14093 - __ andq(rcx, Address(rdx, rbx, (Address::ScaleFactor)0, -0x6253b645)); // and rcx, qword ptr [rdx+rbx*1-0x6253b645] IID14094 - __ andq(rdx, Address(rbx, r8, (Address::ScaleFactor)2, +0x5e92fd1a)); // and rdx, qword ptr [rbx+r8*4+0x5e92fd1a] IID14095 - __ andq(rbx, Address(r8, r9, (Address::ScaleFactor)0, +0x2acfe5bf)); // and rbx, qword ptr [r8+r9*1+0x2acfe5bf] IID14096 - __ andq(r8, Address(r9, r10, (Address::ScaleFactor)2, -0x1760feec)); // and r8, qword ptr [r9+r10*4-0x1760feec] IID14097 - __ andq(r9, Address(r10, r11, (Address::ScaleFactor)1, -0x1268492b)); // and r9, qword ptr [r10+r11*2-0x1268492b] IID14098 - __ andq(r10, Address(r11, r12, (Address::ScaleFactor)3, -0xb987a74)); // and r10, qword ptr [r11+r12*8-0xb987a74] IID14099 - __ andq(r11, Address(r12, r13, (Address::ScaleFactor)0, +0x1f61006b)); // and r11, qword ptr [r12+r13*1+0x1f61006b] IID14100 - __ andq(r12, Address(r13, +0x4c7fc289)); // and r12, qword ptr [r13+0x4c7fc289] IID14101 - __ andq(r13, Address(r14, r15, (Address::ScaleFactor)3, -0x40752a1f)); // and r13, qword ptr [r14+r15*8-0x40752a1f] IID14102 - __ andq(r14, Address(r15, r16, (Address::ScaleFactor)2, +0x70a28b49)); // and r14, qword ptr [r15+r16*4+0x70a28b49] IID14103 - __ andq(r15, Address(r16, r17, (Address::ScaleFactor)1, +0x236c2adc)); // and r15, qword ptr [r16+r17*2+0x236c2adc] IID14104 - __ andq(r16, Address(r17, r18, (Address::ScaleFactor)3, -0x61485050)); // and r16, qword ptr [r17+r18*8-0x61485050] IID14105 - __ andq(r17, Address(r18, r19, (Address::ScaleFactor)2, -0x321125c2)); // and r17, qword ptr [r18+r19*4-0x321125c2] IID14106 - __ andq(r18, Address(r19, +0x7283ba4e)); // and r18, qword ptr [r19+0x7283ba4e] IID14107 - __ andq(r19, Address(r20, r21, (Address::ScaleFactor)0, +0x406c89de)); // and r19, qword ptr [r20+r21*1+0x406c89de] IID14108 - __ andq(r20, Address(r21, r22, (Address::ScaleFactor)0, +0x5113444)); // and r20, qword ptr [r21+r22*1+0x5113444] IID14109 - __ andq(r21, Address(r22, r23, (Address::ScaleFactor)1, -0x5bc73b4f)); // and r21, qword ptr [r22+r23*2-0x5bc73b4f] IID14110 - __ andq(r22, Address(r23, r24, (Address::ScaleFactor)0, -0x693f4a24)); // and r22, qword ptr [r23+r24*1-0x693f4a24] IID14111 - __ andq(r23, Address(r24, -0x3a932400)); // and r23, qword ptr [r24-0x3a932400] IID14112 - __ andq(r24, Address(r25, r26, (Address::ScaleFactor)2, -0x310712de)); // and r24, qword ptr [r25+r26*4-0x310712de] IID14113 - __ andq(r25, Address(r26, r27, (Address::ScaleFactor)3, +0x6e56ae49)); // and r25, qword ptr [r26+r27*8+0x6e56ae49] IID14114 - __ andq(r26, Address(r27, r28, (Address::ScaleFactor)3, +0x4050ddbc)); // and r26, qword ptr [r27+r28*8+0x4050ddbc] IID14115 - __ andq(r27, Address(r28, -0x64f6a1b2)); // and r27, qword ptr [r28-0x64f6a1b2] IID14116 - __ andq(r28, Address(r29, r30, (Address::ScaleFactor)2, -0x478b9e13)); // and r28, qword ptr [r29+r30*4-0x478b9e13] IID14117 - __ andq(r29, Address(r30, r31, (Address::ScaleFactor)2, -0x6736e659)); // and r29, qword ptr [r30+r31*4-0x6736e659] IID14118 - __ andq(r30, Address(r31, +0x21464732)); // and r30, qword ptr [r31+0x21464732] IID14119 - __ andq(r31, Address(rcx, rdx, (Address::ScaleFactor)2, +0x2638d36f)); // and r31, qword ptr [rcx+rdx*4+0x2638d36f] IID14120 - __ cmpq(rcx, Address(rdx, rbx, (Address::ScaleFactor)3, +0x15b74adf)); // cmp rcx, qword ptr [rdx+rbx*8+0x15b74adf] IID14121 - __ cmpq(rdx, Address(rbx, r8, (Address::ScaleFactor)0, -0x2c12d102)); // cmp rdx, qword ptr [rbx+r8*1-0x2c12d102] IID14122 - __ cmpq(rbx, Address(r8, r9, (Address::ScaleFactor)0, +0x792481c2)); // cmp rbx, qword ptr [r8+r9*1+0x792481c2] IID14123 - __ cmpq(r8, Address(r9, r10, (Address::ScaleFactor)1, -0x47cccabb)); // cmp r8, qword ptr [r9+r10*2-0x47cccabb] IID14124 - __ cmpq(r9, Address(r10, r11, (Address::ScaleFactor)0, -0x3161a6e1)); // cmp r9, qword ptr [r10+r11*1-0x3161a6e1] IID14125 - __ cmpq(r10, Address(r11, r12, (Address::ScaleFactor)3, -0xd1bd7d8)); // cmp r10, qword ptr [r11+r12*8-0xd1bd7d8] IID14126 - __ cmpq(r11, Address(r12, r13, (Address::ScaleFactor)2, +0x6f3bea8a)); // cmp r11, qword ptr [r12+r13*4+0x6f3bea8a] IID14127 - __ cmpq(r12, Address(r13, r14, (Address::ScaleFactor)2, +0x2c50d695)); // cmp r12, qword ptr [r13+r14*4+0x2c50d695] IID14128 - __ cmpq(r13, Address(r14, r15, (Address::ScaleFactor)2, +0x1fef1425)); // cmp r13, qword ptr [r14+r15*4+0x1fef1425] IID14129 - __ cmpq(r14, Address(r15, r16, (Address::ScaleFactor)2, -0x16008567)); // cmp r14, qword ptr [r15+r16*4-0x16008567] IID14130 - __ cmpq(r15, Address(r16, +0x2163a1e2)); // cmp r15, qword ptr [r16+0x2163a1e2] IID14131 - __ cmpq(r16, Address(r17, r18, (Address::ScaleFactor)2, +0x337a6178)); // cmp r16, qword ptr [r17+r18*4+0x337a6178] IID14132 - __ cmpq(r17, Address(r18, +0x77347e6)); // cmp r17, qword ptr [r18+0x77347e6] IID14133 - __ cmpq(r18, Address(r19, r20, (Address::ScaleFactor)3, -0x2465f8b)); // cmp r18, qword ptr [r19+r20*8-0x2465f8b] IID14134 - __ cmpq(r19, Address(r20, +0x63a6ad01)); // cmp r19, qword ptr [r20+0x63a6ad01] IID14135 - __ cmpq(r20, Address(r21, r22, (Address::ScaleFactor)1, +0x5dee7a7c)); // cmp r20, qword ptr [r21+r22*2+0x5dee7a7c] IID14136 - __ cmpq(r21, Address(r22, r23, (Address::ScaleFactor)0, +0x38842d08)); // cmp r21, qword ptr [r22+r23*1+0x38842d08] IID14137 - __ cmpq(r22, Address(r23, r24, (Address::ScaleFactor)2, -0x630a872e)); // cmp r22, qword ptr [r23+r24*4-0x630a872e] IID14138 - __ cmpq(r23, Address(r24, r25, (Address::ScaleFactor)0, -0x5235587f)); // cmp r23, qword ptr [r24+r25*1-0x5235587f] IID14139 - __ cmpq(r24, Address(r25, r26, (Address::ScaleFactor)2, -0x2a3d5561)); // cmp r24, qword ptr [r25+r26*4-0x2a3d5561] IID14140 - __ cmpq(r25, Address(r26, r27, (Address::ScaleFactor)1, -0x5314a34a)); // cmp r25, qword ptr [r26+r27*2-0x5314a34a] IID14141 - __ cmpq(r26, Address(r27, -0x671fb30f)); // cmp r26, qword ptr [r27-0x671fb30f] IID14142 - __ cmpq(r27, Address(r28, r29, (Address::ScaleFactor)3, +0x7f298749)); // cmp r27, qword ptr [r28+r29*8+0x7f298749] IID14143 - __ cmpq(r28, Address(r29, r30, (Address::ScaleFactor)2, -0x3641ab3c)); // cmp r28, qword ptr [r29+r30*4-0x3641ab3c] IID14144 - __ cmpq(r29, Address(r30, r31, (Address::ScaleFactor)1, -0x1d60acf7)); // cmp r29, qword ptr [r30+r31*2-0x1d60acf7] IID14145 - __ cmpq(r30, Address(r31, rcx, (Address::ScaleFactor)3, -0xfe63dab)); // cmp r30, qword ptr [r31+rcx*8-0xfe63dab] IID14146 - __ cmpq(r31, Address(rcx, rdx, (Address::ScaleFactor)0, -0x75bf234e)); // cmp r31, qword ptr [rcx+rdx*1-0x75bf234e] IID14147 - __ lzcntq(rcx, Address(rdx, rbx, (Address::ScaleFactor)0, +0x602aa32d)); // lzcnt rcx, qword ptr [rdx+rbx*1+0x602aa32d] IID14148 - __ lzcntq(rdx, Address(rbx, -0x6cbf6d63)); // lzcnt rdx, qword ptr [rbx-0x6cbf6d63] IID14149 - __ lzcntq(rbx, Address(r8, r9, (Address::ScaleFactor)0, -0x455aa377)); // lzcnt rbx, qword ptr [r8+r9*1-0x455aa377] IID14150 - __ lzcntq(r8, Address(r9, -0x3d01ce3e)); // lzcnt r8, qword ptr [r9-0x3d01ce3e] IID14151 - __ lzcntq(r9, Address(r10, r11, (Address::ScaleFactor)0, -0x576f8e9a)); // lzcnt r9, qword ptr [r10+r11*1-0x576f8e9a] IID14152 - __ lzcntq(r10, Address(r11, r12, (Address::ScaleFactor)2, -0x4ba54ef4)); // lzcnt r10, qword ptr [r11+r12*4-0x4ba54ef4] IID14153 - __ lzcntq(r11, Address(r12, r13, (Address::ScaleFactor)2, +0x1665ebe2)); // lzcnt r11, qword ptr [r12+r13*4+0x1665ebe2] IID14154 - __ lzcntq(r12, Address(r13, r14, (Address::ScaleFactor)2, +0x3bb339d1)); // lzcnt r12, qword ptr [r13+r14*4+0x3bb339d1] IID14155 - __ lzcntq(r13, Address(r14, r15, (Address::ScaleFactor)0, +0x529e6182)); // lzcnt r13, qword ptr [r14+r15*1+0x529e6182] IID14156 - __ lzcntq(r14, Address(r15, r16, (Address::ScaleFactor)0, -0x1f0e8f71)); // lzcnt r14, qword ptr [r15+r16*1-0x1f0e8f71] IID14157 - __ lzcntq(r15, Address(r16, r17, (Address::ScaleFactor)0, +0x287741a3)); // lzcnt r15, qword ptr [r16+r17*1+0x287741a3] IID14158 - __ lzcntq(r16, Address(r17, r18, (Address::ScaleFactor)3, -0x3bae21f2)); // lzcnt r16, qword ptr [r17+r18*8-0x3bae21f2] IID14159 - __ lzcntq(r17, Address(r18, r19, (Address::ScaleFactor)1, -0x7f2e28c3)); // lzcnt r17, qword ptr [r18+r19*2-0x7f2e28c3] IID14160 - __ lzcntq(r18, Address(r19, r20, (Address::ScaleFactor)3, -0x47b0db7d)); // lzcnt r18, qword ptr [r19+r20*8-0x47b0db7d] IID14161 - __ lzcntq(r19, Address(r20, r21, (Address::ScaleFactor)1, -0x78a71238)); // lzcnt r19, qword ptr [r20+r21*2-0x78a71238] IID14162 - __ lzcntq(r20, Address(r21, r22, (Address::ScaleFactor)3, +0x6a47565b)); // lzcnt r20, qword ptr [r21+r22*8+0x6a47565b] IID14163 - __ lzcntq(r21, Address(r22, r23, (Address::ScaleFactor)3, -0x40a6ce80)); // lzcnt r21, qword ptr [r22+r23*8-0x40a6ce80] IID14164 - __ lzcntq(r22, Address(r23, -0xf23f54d)); // lzcnt r22, qword ptr [r23-0xf23f54d] IID14165 - __ lzcntq(r23, Address(r24, r25, (Address::ScaleFactor)1, +0x3d7f908c)); // lzcnt r23, qword ptr [r24+r25*2+0x3d7f908c] IID14166 - __ lzcntq(r24, Address(r25, r26, (Address::ScaleFactor)2, +0x11006e65)); // lzcnt r24, qword ptr [r25+r26*4+0x11006e65] IID14167 - __ lzcntq(r25, Address(r26, r27, (Address::ScaleFactor)1, +0x7b8b8838)); // lzcnt r25, qword ptr [r26+r27*2+0x7b8b8838] IID14168 - __ lzcntq(r26, Address(r27, r28, (Address::ScaleFactor)1, -0x684b2650)); // lzcnt r26, qword ptr [r27+r28*2-0x684b2650] IID14169 - __ lzcntq(r27, Address(r28, r29, (Address::ScaleFactor)2, -0x790d23e6)); // lzcnt r27, qword ptr [r28+r29*4-0x790d23e6] IID14170 - __ lzcntq(r28, Address(r29, r30, (Address::ScaleFactor)1, -0x6cfcbede)); // lzcnt r28, qword ptr [r29+r30*2-0x6cfcbede] IID14171 - __ lzcntq(r29, Address(r30, r31, (Address::ScaleFactor)1, +0x41af797b)); // lzcnt r29, qword ptr [r30+r31*2+0x41af797b] IID14172 - __ lzcntq(r30, Address(r31, +0x3a9841cc)); // lzcnt r30, qword ptr [r31+0x3a9841cc] IID14173 - __ lzcntq(r31, Address(rcx, rdx, (Address::ScaleFactor)0, +0x7ec466a0)); // lzcnt r31, qword ptr [rcx+rdx*1+0x7ec466a0] IID14174 - __ orq(rcx, Address(rdx, rbx, (Address::ScaleFactor)3, -0x20d792ac)); // or rcx, qword ptr [rdx+rbx*8-0x20d792ac] IID14175 - __ orq(rdx, Address(rbx, r8, (Address::ScaleFactor)2, +0x6f71c92)); // or rdx, qword ptr [rbx+r8*4+0x6f71c92] IID14176 - __ orq(rbx, Address(r8, r9, (Address::ScaleFactor)2, -0x21ff4429)); // or rbx, qword ptr [r8+r9*4-0x21ff4429] IID14177 - __ orq(r8, Address(r9, r10, (Address::ScaleFactor)3, +0x520fa94d)); // or r8, qword ptr [r9+r10*8+0x520fa94d] IID14178 - __ orq(r9, Address(r10, r11, (Address::ScaleFactor)3, +0x26d156e)); // or r9, qword ptr [r10+r11*8+0x26d156e] IID14179 - __ orq(r10, Address(r11, r12, (Address::ScaleFactor)2, +0x52501f8e)); // or r10, qword ptr [r11+r12*4+0x52501f8e] IID14180 - __ orq(r11, Address(r12, -0x403de061)); // or r11, qword ptr [r12-0x403de061] IID14181 - __ orq(r12, Address(r13, r14, (Address::ScaleFactor)2, -0x3d0e87d1)); // or r12, qword ptr [r13+r14*4-0x3d0e87d1] IID14182 - __ orq(r13, Address(r14, r15, (Address::ScaleFactor)2, +0x18f0434b)); // or r13, qword ptr [r14+r15*4+0x18f0434b] IID14183 - __ orq(r14, Address(r15, r16, (Address::ScaleFactor)3, -0x154093cf)); // or r14, qword ptr [r15+r16*8-0x154093cf] IID14184 - __ orq(r15, Address(r16, -0x39c5612c)); // or r15, qword ptr [r16-0x39c5612c] IID14185 - __ orq(r16, Address(r17, r18, (Address::ScaleFactor)3, +0x60fc118f)); // or r16, qword ptr [r17+r18*8+0x60fc118f] IID14186 - __ orq(r17, Address(r18, r19, (Address::ScaleFactor)3, +0x15294c64)); // or r17, qword ptr [r18+r19*8+0x15294c64] IID14187 - __ orq(r18, Address(r19, r20, (Address::ScaleFactor)2, -0x360ed9bb)); // or r18, qword ptr [r19+r20*4-0x360ed9bb] IID14188 - __ orq(r19, Address(r20, r21, (Address::ScaleFactor)2, -0x7b211d0c)); // or r19, qword ptr [r20+r21*4-0x7b211d0c] IID14189 - __ orq(r20, Address(r21, r22, (Address::ScaleFactor)2, -0x3cc23de)); // or r20, qword ptr [r21+r22*4-0x3cc23de] IID14190 - __ orq(r21, Address(r22, r23, (Address::ScaleFactor)2, +0x1e10b87a)); // or r21, qword ptr [r22+r23*4+0x1e10b87a] IID14191 - __ orq(r22, Address(r23, +0x2b8b8d8f)); // or r22, qword ptr [r23+0x2b8b8d8f] IID14192 - __ orq(r23, Address(r24, r25, (Address::ScaleFactor)0, +0x16873e29)); // or r23, qword ptr [r24+r25*1+0x16873e29] IID14193 - __ orq(r24, Address(r25, r26, (Address::ScaleFactor)2, +0x6b44fcb9)); // or r24, qword ptr [r25+r26*4+0x6b44fcb9] IID14194 - __ orq(r25, Address(r26, r27, (Address::ScaleFactor)2, +0x6fc6a3f6)); // or r25, qword ptr [r26+r27*4+0x6fc6a3f6] IID14195 - __ orq(r26, Address(r27, r28, (Address::ScaleFactor)2, +0x6160471d)); // or r26, qword ptr [r27+r28*4+0x6160471d] IID14196 - __ orq(r27, Address(r28, r29, (Address::ScaleFactor)1, -0x284f5ba5)); // or r27, qword ptr [r28+r29*2-0x284f5ba5] IID14197 - __ orq(r28, Address(r29, r30, (Address::ScaleFactor)1, -0x638d277)); // or r28, qword ptr [r29+r30*2-0x638d277] IID14198 - __ orq(r29, Address(r30, r31, (Address::ScaleFactor)2, -0xc2fe9ba)); // or r29, qword ptr [r30+r31*4-0xc2fe9ba] IID14199 - __ orq(r30, Address(r31, rcx, (Address::ScaleFactor)3, -0x7dc07622)); // or r30, qword ptr [r31+rcx*8-0x7dc07622] IID14200 - __ orq(r31, Address(rcx, rdx, (Address::ScaleFactor)2, -0x488067)); // or r31, qword ptr [rcx+rdx*4-0x488067] IID14201 - __ adcq(rcx, Address(rdx, rbx, (Address::ScaleFactor)1, +0x56808ad2)); // adc rcx, qword ptr [rdx+rbx*2+0x56808ad2] IID14202 - __ adcq(rdx, Address(rbx, r8, (Address::ScaleFactor)3, -0x7144f8a3)); // adc rdx, qword ptr [rbx+r8*8-0x7144f8a3] IID14203 - __ adcq(rbx, Address(r8, r9, (Address::ScaleFactor)1, -0x1d3135a6)); // adc rbx, qword ptr [r8+r9*2-0x1d3135a6] IID14204 - __ adcq(r8, Address(r9, r10, (Address::ScaleFactor)3, +0x7ef5b10e)); // adc r8, qword ptr [r9+r10*8+0x7ef5b10e] IID14205 - __ adcq(r9, Address(r10, +0x1dbb75f3)); // adc r9, qword ptr [r10+0x1dbb75f3] IID14206 - __ adcq(r10, Address(r11, r12, (Address::ScaleFactor)2, +0x65fe7b52)); // adc r10, qword ptr [r11+r12*4+0x65fe7b52] IID14207 - __ adcq(r11, Address(r12, +0x7c18773a)); // adc r11, qword ptr [r12+0x7c18773a] IID14208 - __ adcq(r12, Address(r13, r14, (Address::ScaleFactor)1, +0x1cdc54f7)); // adc r12, qword ptr [r13+r14*2+0x1cdc54f7] IID14209 - __ adcq(r13, Address(r14, r15, (Address::ScaleFactor)1, +0x49f7adf1)); // adc r13, qword ptr [r14+r15*2+0x49f7adf1] IID14210 - __ adcq(r14, Address(r15, +0x7334b7ae)); // adc r14, qword ptr [r15+0x7334b7ae] IID14211 - __ adcq(r15, Address(r16, r17, (Address::ScaleFactor)3, -0x67991c0d)); // adc r15, qword ptr [r16+r17*8-0x67991c0d] IID14212 - __ adcq(r16, Address(r17, r18, (Address::ScaleFactor)2, +0x29f2cd7)); // adc r16, qword ptr [r17+r18*4+0x29f2cd7] IID14213 - __ adcq(r17, Address(r18, r19, (Address::ScaleFactor)3, +0x393222a6)); // adc r17, qword ptr [r18+r19*8+0x393222a6] IID14214 - __ adcq(r18, Address(r19, r20, (Address::ScaleFactor)1, -0xae4cbe)); // adc r18, qword ptr [r19+r20*2-0xae4cbe] IID14215 - __ adcq(r19, Address(r20, r21, (Address::ScaleFactor)0, -0x39d28251)); // adc r19, qword ptr [r20+r21*1-0x39d28251] IID14216 - __ adcq(r20, Address(r21, +0x110e48c)); // adc r20, qword ptr [r21+0x110e48c] IID14217 - __ adcq(r21, Address(r22, r23, (Address::ScaleFactor)1, -0x5aff5e07)); // adc r21, qword ptr [r22+r23*2-0x5aff5e07] IID14218 - __ adcq(r22, Address(r23, +0x4bdbe5b4)); // adc r22, qword ptr [r23+0x4bdbe5b4] IID14219 - __ adcq(r23, Address(r24, r25, (Address::ScaleFactor)2, -0x7a205395)); // adc r23, qword ptr [r24+r25*4-0x7a205395] IID14220 - __ adcq(r24, Address(r25, -0x12fca969)); // adc r24, qword ptr [r25-0x12fca969] IID14221 - __ adcq(r25, Address(r26, r27, (Address::ScaleFactor)1, +0x4cca698d)); // adc r25, qword ptr [r26+r27*2+0x4cca698d] IID14222 - __ adcq(r26, Address(r27, r28, (Address::ScaleFactor)2, -0x30374a23)); // adc r26, qword ptr [r27+r28*4-0x30374a23] IID14223 - __ adcq(r27, Address(r28, r29, (Address::ScaleFactor)1, -0x60f82145)); // adc r27, qword ptr [r28+r29*2-0x60f82145] IID14224 - __ adcq(r28, Address(r29, +0x5c8adee9)); // adc r28, qword ptr [r29+0x5c8adee9] IID14225 - __ adcq(r29, Address(r30, r31, (Address::ScaleFactor)2, -0x2022c040)); // adc r29, qword ptr [r30+r31*4-0x2022c040] IID14226 - __ adcq(r30, Address(r31, rcx, (Address::ScaleFactor)1, -0x6d19fe81)); // adc r30, qword ptr [r31+rcx*2-0x6d19fe81] IID14227 - __ adcq(r31, Address(rcx, rdx, (Address::ScaleFactor)2, -0x289569f0)); // adc r31, qword ptr [rcx+rdx*4-0x289569f0] IID14228 - __ imulq(rcx, Address(rdx, rbx, (Address::ScaleFactor)1, -0x3228d015)); // imul rcx, qword ptr [rdx+rbx*2-0x3228d015] IID14229 - __ imulq(rdx, Address(rbx, -0x5e439d5f)); // imul rdx, qword ptr [rbx-0x5e439d5f] IID14230 - __ imulq(rbx, Address(r8, r9, (Address::ScaleFactor)3, +0x78d5d033)); // imul rbx, qword ptr [r8+r9*8+0x78d5d033] IID14231 - __ imulq(r8, Address(r9, r10, (Address::ScaleFactor)3, -0x73f9c80c)); // imul r8, qword ptr [r9+r10*8-0x73f9c80c] IID14232 - __ imulq(r9, Address(r10, r11, (Address::ScaleFactor)3, +0x10ed29dd)); // imul r9, qword ptr [r10+r11*8+0x10ed29dd] IID14233 - __ imulq(r10, Address(r11, -0x32d4146a)); // imul r10, qword ptr [r11-0x32d4146a] IID14234 - __ imulq(r11, Address(r12, -0x133b1ac1)); // imul r11, qword ptr [r12-0x133b1ac1] IID14235 - __ imulq(r12, Address(r13, r14, (Address::ScaleFactor)1, +0x1bb8cf45)); // imul r12, qword ptr [r13+r14*2+0x1bb8cf45] IID14236 - __ imulq(r13, Address(r14, r15, (Address::ScaleFactor)1, -0x23950604)); // imul r13, qword ptr [r14+r15*2-0x23950604] IID14237 - __ imulq(r14, Address(r15, r16, (Address::ScaleFactor)3, +0x23e79272)); // imul r14, qword ptr [r15+r16*8+0x23e79272] IID14238 - __ imulq(r15, Address(r16, -0x200316a3)); // imul r15, qword ptr [r16-0x200316a3] IID14239 - __ imulq(r16, Address(r17, r18, (Address::ScaleFactor)1, -0x654748e6)); // imul r16, qword ptr [r17+r18*2-0x654748e6] IID14240 - __ imulq(r17, Address(r18, r19, (Address::ScaleFactor)0, +0x6d26b461)); // imul r17, qword ptr [r18+r19*1+0x6d26b461] IID14241 - __ imulq(r18, Address(r19, r20, (Address::ScaleFactor)2, -0x4865fef8)); // imul r18, qword ptr [r19+r20*4-0x4865fef8] IID14242 - __ imulq(r19, Address(r20, +0x642436c2)); // imul r19, qword ptr [r20+0x642436c2] IID14243 - __ imulq(r20, Address(r21, -0x6dfca0d)); // imul r20, qword ptr [r21-0x6dfca0d] IID14244 - __ imulq(r21, Address(r22, r23, (Address::ScaleFactor)0, -0x5a65bd76)); // imul r21, qword ptr [r22+r23*1-0x5a65bd76] IID14245 - __ imulq(r22, Address(r23, r24, (Address::ScaleFactor)1, -0x63ee37a7)); // imul r22, qword ptr [r23+r24*2-0x63ee37a7] IID14246 - __ imulq(r23, Address(r24, r25, (Address::ScaleFactor)2, +0x222053db)); // imul r23, qword ptr [r24+r25*4+0x222053db] IID14247 - __ imulq(r24, Address(r25, r26, (Address::ScaleFactor)0, +0x1e7fb0a5)); // imul r24, qword ptr [r25+r26*1+0x1e7fb0a5] IID14248 - __ imulq(r25, Address(r26, +0x7bd2add6)); // imul r25, qword ptr [r26+0x7bd2add6] IID14249 - __ imulq(r26, Address(r27, r28, (Address::ScaleFactor)1, -0x1d012cb7)); // imul r26, qword ptr [r27+r28*2-0x1d012cb7] IID14250 - __ imulq(r27, Address(r28, +0x7ec3493c)); // imul r27, qword ptr [r28+0x7ec3493c] IID14251 - __ imulq(r28, Address(r29, r30, (Address::ScaleFactor)3, -0x34e9422f)); // imul r28, qword ptr [r29+r30*8-0x34e9422f] IID14252 - __ imulq(r29, Address(r30, r31, (Address::ScaleFactor)2, +0x25479e9c)); // imul r29, qword ptr [r30+r31*4+0x25479e9c] IID14253 - __ imulq(r30, Address(r31, rcx, (Address::ScaleFactor)3, -0x3f26b853)); // imul r30, qword ptr [r31+rcx*8-0x3f26b853] IID14254 - __ imulq(r31, Address(rcx, rdx, (Address::ScaleFactor)2, -0x505177f8)); // imul r31, qword ptr [rcx+rdx*4-0x505177f8] IID14255 - __ popcntq(rcx, Address(rdx, rbx, (Address::ScaleFactor)1, -0x1d266990)); // popcnt rcx, qword ptr [rdx+rbx*2-0x1d266990] IID14256 - __ popcntq(rdx, Address(rbx, r8, (Address::ScaleFactor)3, +0x1875cd05)); // popcnt rdx, qword ptr [rbx+r8*8+0x1875cd05] IID14257 - __ popcntq(rbx, Address(r8, -0x64f5b50d)); // popcnt rbx, qword ptr [r8-0x64f5b50d] IID14258 - __ popcntq(r8, Address(r9, r10, (Address::ScaleFactor)1, -0x70973dc2)); // popcnt r8, qword ptr [r9+r10*2-0x70973dc2] IID14259 - __ popcntq(r9, Address(r10, +0xb674bd7)); // popcnt r9, qword ptr [r10+0xb674bd7] IID14260 - __ popcntq(r10, Address(r11, +0x6dfe4877)); // popcnt r10, qword ptr [r11+0x6dfe4877] IID14261 - __ popcntq(r11, Address(r12, r13, (Address::ScaleFactor)3, +0x721cfb42)); // popcnt r11, qword ptr [r12+r13*8+0x721cfb42] IID14262 - __ popcntq(r12, Address(r13, r14, (Address::ScaleFactor)0, +0x784a9e86)); // popcnt r12, qword ptr [r13+r14*1+0x784a9e86] IID14263 - __ popcntq(r13, Address(r14, +0x933449c)); // popcnt r13, qword ptr [r14+0x933449c] IID14264 - __ popcntq(r14, Address(r15, r16, (Address::ScaleFactor)1, -0x146e3f85)); // popcnt r14, qword ptr [r15+r16*2-0x146e3f85] IID14265 - __ popcntq(r15, Address(r16, r17, (Address::ScaleFactor)2, +0x1fac6b36)); // popcnt r15, qword ptr [r16+r17*4+0x1fac6b36] IID14266 - __ popcntq(r16, Address(r17, r18, (Address::ScaleFactor)0, +0x6610bde1)); // popcnt r16, qword ptr [r17+r18*1+0x6610bde1] IID14267 - __ popcntq(r17, Address(r18, -0x60148f54)); // popcnt r17, qword ptr [r18-0x60148f54] IID14268 - __ popcntq(r18, Address(r19, -0x14e5f43a)); // popcnt r18, qword ptr [r19-0x14e5f43a] IID14269 - __ popcntq(r19, Address(r20, +0x523f4123)); // popcnt r19, qword ptr [r20+0x523f4123] IID14270 - __ popcntq(r20, Address(r21, r22, (Address::ScaleFactor)0, +0x355c5c5a)); // popcnt r20, qword ptr [r21+r22*1+0x355c5c5a] IID14271 - __ popcntq(r21, Address(r22, +0x58a8220)); // popcnt r21, qword ptr [r22+0x58a8220] IID14272 - __ popcntq(r22, Address(r23, r24, (Address::ScaleFactor)2, -0x77df9c2d)); // popcnt r22, qword ptr [r23+r24*4-0x77df9c2d] IID14273 - __ popcntq(r23, Address(r24, r25, (Address::ScaleFactor)3, -0x22ee590a)); // popcnt r23, qword ptr [r24+r25*8-0x22ee590a] IID14274 - __ popcntq(r24, Address(r25, r26, (Address::ScaleFactor)1, -0x24bf21fd)); // popcnt r24, qword ptr [r25+r26*2-0x24bf21fd] IID14275 - __ popcntq(r25, Address(r26, r27, (Address::ScaleFactor)3, +0x24e9052e)); // popcnt r25, qword ptr [r26+r27*8+0x24e9052e] IID14276 - __ popcntq(r26, Address(r27, +0x6a34f9a)); // popcnt r26, qword ptr [r27+0x6a34f9a] IID14277 - __ popcntq(r27, Address(r28, +0x75b6c7ec)); // popcnt r27, qword ptr [r28+0x75b6c7ec] IID14278 - __ popcntq(r28, Address(r29, r30, (Address::ScaleFactor)0, +0x12fbc099)); // popcnt r28, qword ptr [r29+r30*1+0x12fbc099] IID14279 - __ popcntq(r29, Address(r30, r31, (Address::ScaleFactor)3, -0x1bf1c037)); // popcnt r29, qword ptr [r30+r31*8-0x1bf1c037] IID14280 - __ popcntq(r30, Address(r31, rcx, (Address::ScaleFactor)1, +0x183f573f)); // popcnt r30, qword ptr [r31+rcx*2+0x183f573f] IID14281 - __ popcntq(r31, Address(rcx, +0x179ec53d)); // popcnt r31, qword ptr [rcx+0x179ec53d] IID14282 - __ sbbq(rcx, Address(rdx, -0x16a4353a)); // sbb rcx, qword ptr [rdx-0x16a4353a] IID14283 - __ sbbq(rdx, Address(rbx, r8, (Address::ScaleFactor)3, +0x2a6e58b1)); // sbb rdx, qword ptr [rbx+r8*8+0x2a6e58b1] IID14284 - __ sbbq(rbx, Address(r8, r9, (Address::ScaleFactor)0, +0x5437fdc8)); // sbb rbx, qword ptr [r8+r9*1+0x5437fdc8] IID14285 - __ sbbq(r8, Address(r9, -0x5582365)); // sbb r8, qword ptr [r9-0x5582365] IID14286 - __ sbbq(r9, Address(r10, r11, (Address::ScaleFactor)1, -0x296c81bc)); // sbb r9, qword ptr [r10+r11*2-0x296c81bc] IID14287 - __ sbbq(r10, Address(r11, r12, (Address::ScaleFactor)0, +0x49bb533)); // sbb r10, qword ptr [r11+r12*1+0x49bb533] IID14288 - __ sbbq(r11, Address(r12, r13, (Address::ScaleFactor)0, +0x2d5bec5f)); // sbb r11, qword ptr [r12+r13*1+0x2d5bec5f] IID14289 - __ sbbq(r12, Address(r13, r14, (Address::ScaleFactor)1, -0x1016d27b)); // sbb r12, qword ptr [r13+r14*2-0x1016d27b] IID14290 - __ sbbq(r13, Address(r14, r15, (Address::ScaleFactor)2, -0x2e9f3a3d)); // sbb r13, qword ptr [r14+r15*4-0x2e9f3a3d] IID14291 - __ sbbq(r14, Address(r15, r16, (Address::ScaleFactor)3, +0x3d8b534e)); // sbb r14, qword ptr [r15+r16*8+0x3d8b534e] IID14292 - __ sbbq(r15, Address(r16, r17, (Address::ScaleFactor)1, -0x550d9a2)); // sbb r15, qword ptr [r16+r17*2-0x550d9a2] IID14293 - __ sbbq(r16, Address(r17, r18, (Address::ScaleFactor)2, -0xc969599)); // sbb r16, qword ptr [r17+r18*4-0xc969599] IID14294 - __ sbbq(r17, Address(r18, r19, (Address::ScaleFactor)2, +0x6dc45efd)); // sbb r17, qword ptr [r18+r19*4+0x6dc45efd] IID14295 - __ sbbq(r18, Address(r19, r20, (Address::ScaleFactor)2, +0x78dca003)); // sbb r18, qword ptr [r19+r20*4+0x78dca003] IID14296 - __ sbbq(r19, Address(r20, r21, (Address::ScaleFactor)3, +0x5e5f9902)); // sbb r19, qword ptr [r20+r21*8+0x5e5f9902] IID14297 - __ sbbq(r20, Address(r21, r22, (Address::ScaleFactor)1, -0x73463beb)); // sbb r20, qword ptr [r21+r22*2-0x73463beb] IID14298 - __ sbbq(r21, Address(r22, r23, (Address::ScaleFactor)3, -0x23439c3d)); // sbb r21, qword ptr [r22+r23*8-0x23439c3d] IID14299 - __ sbbq(r22, Address(r23, r24, (Address::ScaleFactor)3, -0x58a4a862)); // sbb r22, qword ptr [r23+r24*8-0x58a4a862] IID14300 - __ sbbq(r23, Address(r24, r25, (Address::ScaleFactor)2, -0x27286dd7)); // sbb r23, qword ptr [r24+r25*4-0x27286dd7] IID14301 - __ sbbq(r24, Address(r25, r26, (Address::ScaleFactor)0, -0x29194ede)); // sbb r24, qword ptr [r25+r26*1-0x29194ede] IID14302 - __ sbbq(r25, Address(r26, -0x2ff621fb)); // sbb r25, qword ptr [r26-0x2ff621fb] IID14303 - __ sbbq(r26, Address(r27, +0x3bc8803d)); // sbb r26, qword ptr [r27+0x3bc8803d] IID14304 - __ sbbq(r27, Address(r28, r29, (Address::ScaleFactor)3, -0xee127ae)); // sbb r27, qword ptr [r28+r29*8-0xee127ae] IID14305 - __ sbbq(r28, Address(r29, r30, (Address::ScaleFactor)0, -0x56555d52)); // sbb r28, qword ptr [r29+r30*1-0x56555d52] IID14306 - __ sbbq(r29, Address(r30, r31, (Address::ScaleFactor)2, +0x317f38f9)); // sbb r29, qword ptr [r30+r31*4+0x317f38f9] IID14307 - __ sbbq(r30, Address(r31, rcx, (Address::ScaleFactor)3, +0x7d242c6b)); // sbb r30, qword ptr [r31+rcx*8+0x7d242c6b] IID14308 - __ sbbq(r31, Address(rcx, rdx, (Address::ScaleFactor)1, +0x1624b99)); // sbb r31, qword ptr [rcx+rdx*2+0x1624b99] IID14309 - __ subq(rcx, Address(rdx, rbx, (Address::ScaleFactor)2, +0x27c83f1)); // sub rcx, qword ptr [rdx+rbx*4+0x27c83f1] IID14310 - __ subq(rdx, Address(rbx, r8, (Address::ScaleFactor)2, -0xc86ab6f)); // sub rdx, qword ptr [rbx+r8*4-0xc86ab6f] IID14311 - __ subq(rbx, Address(r8, r9, (Address::ScaleFactor)0, -0x600684de)); // sub rbx, qword ptr [r8+r9*1-0x600684de] IID14312 - __ subq(r8, Address(r9, r10, (Address::ScaleFactor)3, -0x6f2169af)); // sub r8, qword ptr [r9+r10*8-0x6f2169af] IID14313 - __ subq(r9, Address(r10, r11, (Address::ScaleFactor)2, +0x43c52e99)); // sub r9, qword ptr [r10+r11*4+0x43c52e99] IID14314 - __ subq(r10, Address(r11, r12, (Address::ScaleFactor)2, -0x500deac4)); // sub r10, qword ptr [r11+r12*4-0x500deac4] IID14315 - __ subq(r11, Address(r12, r13, (Address::ScaleFactor)1, +0x2f34d42d)); // sub r11, qword ptr [r12+r13*2+0x2f34d42d] IID14316 - __ subq(r12, Address(r13, r14, (Address::ScaleFactor)1, -0x685c9b80)); // sub r12, qword ptr [r13+r14*2-0x685c9b80] IID14317 - __ subq(r13, Address(r14, r15, (Address::ScaleFactor)2, +0x56d9acd4)); // sub r13, qword ptr [r14+r15*4+0x56d9acd4] IID14318 - __ subq(r14, Address(r15, r16, (Address::ScaleFactor)2, +0x7c6d4b9f)); // sub r14, qword ptr [r15+r16*4+0x7c6d4b9f] IID14319 - __ subq(r15, Address(r16, +0x1a4c0882)); // sub r15, qword ptr [r16+0x1a4c0882] IID14320 - __ subq(r16, Address(r17, +0x7515d88)); // sub r16, qword ptr [r17+0x7515d88] IID14321 - __ subq(r17, Address(r18, +0x6548276d)); // sub r17, qword ptr [r18+0x6548276d] IID14322 - __ subq(r18, Address(r19, r20, (Address::ScaleFactor)1, +0x2d48eeb8)); // sub r18, qword ptr [r19+r20*2+0x2d48eeb8] IID14323 - __ subq(r19, Address(r20, r21, (Address::ScaleFactor)3, +0x4ed905d6)); // sub r19, qword ptr [r20+r21*8+0x4ed905d6] IID14324 - __ subq(r20, Address(r21, r22, (Address::ScaleFactor)2, -0x74a11d49)); // sub r20, qword ptr [r21+r22*4-0x74a11d49] IID14325 - __ subq(r21, Address(r22, r23, (Address::ScaleFactor)3, +0x4720a510)); // sub r21, qword ptr [r22+r23*8+0x4720a510] IID14326 - __ subq(r22, Address(r23, r24, (Address::ScaleFactor)3, -0x3a2a9a24)); // sub r22, qword ptr [r23+r24*8-0x3a2a9a24] IID14327 - __ subq(r23, Address(r24, r25, (Address::ScaleFactor)3, -0x52ae4459)); // sub r23, qword ptr [r24+r25*8-0x52ae4459] IID14328 - __ subq(r24, Address(r25, r26, (Address::ScaleFactor)1, -0x65b5c191)); // sub r24, qword ptr [r25+r26*2-0x65b5c191] IID14329 - __ subq(r25, Address(r26, -0x3708fada)); // sub r25, qword ptr [r26-0x3708fada] IID14330 - __ subq(r26, Address(r27, -0x20ca4cbb)); // sub r26, qword ptr [r27-0x20ca4cbb] IID14331 - __ subq(r27, Address(r28, r29, (Address::ScaleFactor)2, +0x63641158)); // sub r27, qword ptr [r28+r29*4+0x63641158] IID14332 - __ subq(r28, Address(r29, r30, (Address::ScaleFactor)3, +0x22b001b8)); // sub r28, qword ptr [r29+r30*8+0x22b001b8] IID14333 - __ subq(r29, Address(r30, r31, (Address::ScaleFactor)3, -0x218fa621)); // sub r29, qword ptr [r30+r31*8-0x218fa621] IID14334 - __ subq(r30, Address(r31, rcx, (Address::ScaleFactor)2, +0x6d824cc)); // sub r30, qword ptr [r31+rcx*4+0x6d824cc] IID14335 - __ subq(r31, Address(rcx, rdx, (Address::ScaleFactor)1, +0x38e8282)); // sub r31, qword ptr [rcx+rdx*2+0x38e8282] IID14336 - __ tzcntq(rcx, Address(rdx, rbx, (Address::ScaleFactor)0, +0xe773e3a)); // tzcnt rcx, qword ptr [rdx+rbx*1+0xe773e3a] IID14337 - __ tzcntq(rdx, Address(rbx, r8, (Address::ScaleFactor)1, -0x59372c9f)); // tzcnt rdx, qword ptr [rbx+r8*2-0x59372c9f] IID14338 - __ tzcntq(rbx, Address(r8, r9, (Address::ScaleFactor)3, +0x7b1d5d01)); // tzcnt rbx, qword ptr [r8+r9*8+0x7b1d5d01] IID14339 - __ tzcntq(r8, Address(r9, +0x4e440695)); // tzcnt r8, qword ptr [r9+0x4e440695] IID14340 - __ tzcntq(r9, Address(r10, r11, (Address::ScaleFactor)0, +0x32b21f86)); // tzcnt r9, qword ptr [r10+r11*1+0x32b21f86] IID14341 - __ tzcntq(r10, Address(r11, r12, (Address::ScaleFactor)0, -0x102cd6ef)); // tzcnt r10, qword ptr [r11+r12*1-0x102cd6ef] IID14342 - __ tzcntq(r11, Address(r12, r13, (Address::ScaleFactor)2, -0x7723fc4b)); // tzcnt r11, qword ptr [r12+r13*4-0x7723fc4b] IID14343 - __ tzcntq(r12, Address(r13, r14, (Address::ScaleFactor)1, -0x3e5b3598)); // tzcnt r12, qword ptr [r13+r14*2-0x3e5b3598] IID14344 - __ tzcntq(r13, Address(r14, r15, (Address::ScaleFactor)0, +0x6bc0b051)); // tzcnt r13, qword ptr [r14+r15*1+0x6bc0b051] IID14345 - __ tzcntq(r14, Address(r15, r16, (Address::ScaleFactor)2, -0x4ac5043a)); // tzcnt r14, qword ptr [r15+r16*4-0x4ac5043a] IID14346 - __ tzcntq(r15, Address(r16, r17, (Address::ScaleFactor)3, +0x29e2a87f)); // tzcnt r15, qword ptr [r16+r17*8+0x29e2a87f] IID14347 - __ tzcntq(r16, Address(r17, r18, (Address::ScaleFactor)1, +0x25e66b7e)); // tzcnt r16, qword ptr [r17+r18*2+0x25e66b7e] IID14348 - __ tzcntq(r17, Address(r18, r19, (Address::ScaleFactor)0, -0x3d15a534)); // tzcnt r17, qword ptr [r18+r19*1-0x3d15a534] IID14349 - __ tzcntq(r18, Address(r19, r20, (Address::ScaleFactor)1, +0x425a9138)); // tzcnt r18, qword ptr [r19+r20*2+0x425a9138] IID14350 - __ tzcntq(r19, Address(r20, r21, (Address::ScaleFactor)2, +0x60757123)); // tzcnt r19, qword ptr [r20+r21*4+0x60757123] IID14351 - __ tzcntq(r20, Address(r21, -0x897c5)); // tzcnt r20, qword ptr [r21-0x897c5] IID14352 - __ tzcntq(r21, Address(r22, r23, (Address::ScaleFactor)0, +0x2b3610b6)); // tzcnt r21, qword ptr [r22+r23*1+0x2b3610b6] IID14353 - __ tzcntq(r22, Address(r23, r24, (Address::ScaleFactor)3, +0x64e7cc54)); // tzcnt r22, qword ptr [r23+r24*8+0x64e7cc54] IID14354 - __ tzcntq(r23, Address(r24, +0x6ea718ca)); // tzcnt r23, qword ptr [r24+0x6ea718ca] IID14355 - __ tzcntq(r24, Address(r25, -0x3087bc3e)); // tzcnt r24, qword ptr [r25-0x3087bc3e] IID14356 - __ tzcntq(r25, Address(r26, r27, (Address::ScaleFactor)1, -0x1175f1f9)); // tzcnt r25, qword ptr [r26+r27*2-0x1175f1f9] IID14357 - __ tzcntq(r26, Address(r27, r28, (Address::ScaleFactor)0, +0x5038e723)); // tzcnt r26, qword ptr [r27+r28*1+0x5038e723] IID14358 - __ tzcntq(r27, Address(r28, r29, (Address::ScaleFactor)1, +0x1369f8ec)); // tzcnt r27, qword ptr [r28+r29*2+0x1369f8ec] IID14359 - __ tzcntq(r28, Address(r29, r30, (Address::ScaleFactor)1, -0x54f06706)); // tzcnt r28, qword ptr [r29+r30*2-0x54f06706] IID14360 - __ tzcntq(r29, Address(r30, +0x3ffd8a93)); // tzcnt r29, qword ptr [r30+0x3ffd8a93] IID14361 - __ tzcntq(r30, Address(r31, rcx, (Address::ScaleFactor)1, +0x38d722c9)); // tzcnt r30, qword ptr [r31+rcx*2+0x38d722c9] IID14362 - __ tzcntq(r31, Address(rcx, rdx, (Address::ScaleFactor)3, -0x25583894)); // tzcnt r31, qword ptr [rcx+rdx*8-0x25583894] IID14363 - __ xorq(rcx, Address(rdx, +0x23b78fe1)); // xor rcx, qword ptr [rdx+0x23b78fe1] IID14364 - __ xorq(rdx, Address(rbx, -0x47018c4c)); // xor rdx, qword ptr [rbx-0x47018c4c] IID14365 - __ xorq(rbx, Address(r8, r9, (Address::ScaleFactor)0, +0x69b383dc)); // xor rbx, qword ptr [r8+r9*1+0x69b383dc] IID14366 - __ xorq(r8, Address(r9, r10, (Address::ScaleFactor)0, +0x52631132)); // xor r8, qword ptr [r9+r10*1+0x52631132] IID14367 - __ xorq(r9, Address(r10, r11, (Address::ScaleFactor)2, -0x15fcaaf5)); // xor r9, qword ptr [r10+r11*4-0x15fcaaf5] IID14368 - __ xorq(r10, Address(r11, r12, (Address::ScaleFactor)0, -0x1eb6f809)); // xor r10, qword ptr [r11+r12*1-0x1eb6f809] IID14369 - __ xorq(r11, Address(r12, r13, (Address::ScaleFactor)1, +0x581f6e4e)); // xor r11, qword ptr [r12+r13*2+0x581f6e4e] IID14370 - __ xorq(r12, Address(r13, r14, (Address::ScaleFactor)3, +0x2ae0c83e)); // xor r12, qword ptr [r13+r14*8+0x2ae0c83e] IID14371 - __ xorq(r13, Address(r14, r15, (Address::ScaleFactor)3, +0x8f9d630)); // xor r13, qword ptr [r14+r15*8+0x8f9d630] IID14372 - __ xorq(r14, Address(r15, r16, (Address::ScaleFactor)1, +0x61de504e)); // xor r14, qword ptr [r15+r16*2+0x61de504e] IID14373 - __ xorq(r15, Address(r16, -0x2d2be997)); // xor r15, qword ptr [r16-0x2d2be997] IID14374 - __ xorq(r16, Address(r17, r18, (Address::ScaleFactor)3, +0x3d9b1013)); // xor r16, qword ptr [r17+r18*8+0x3d9b1013] IID14375 - __ xorq(r17, Address(r18, -0x55a3803a)); // xor r17, qword ptr [r18-0x55a3803a] IID14376 - __ xorq(r18, Address(r19, r20, (Address::ScaleFactor)3, +0x56ad04bc)); // xor r18, qword ptr [r19+r20*8+0x56ad04bc] IID14377 - __ xorq(r19, Address(r20, r21, (Address::ScaleFactor)1, +0x1c07edf3)); // xor r19, qword ptr [r20+r21*2+0x1c07edf3] IID14378 - __ xorq(r20, Address(r21, r22, (Address::ScaleFactor)3, +0x715066c5)); // xor r20, qword ptr [r21+r22*8+0x715066c5] IID14379 - __ xorq(r21, Address(r22, r23, (Address::ScaleFactor)3, -0xc32cd8b)); // xor r21, qword ptr [r22+r23*8-0xc32cd8b] IID14380 - __ xorq(r22, Address(r23, r24, (Address::ScaleFactor)3, +0x5003eeaf)); // xor r22, qword ptr [r23+r24*8+0x5003eeaf] IID14381 - __ xorq(r23, Address(r24, r25, (Address::ScaleFactor)2, -0x6c63ebc)); // xor r23, qword ptr [r24+r25*4-0x6c63ebc] IID14382 - __ xorq(r24, Address(r25, -0x1f55d180)); // xor r24, qword ptr [r25-0x1f55d180] IID14383 - __ xorq(r25, Address(r26, r27, (Address::ScaleFactor)0, +0x52f5729e)); // xor r25, qword ptr [r26+r27*1+0x52f5729e] IID14384 - __ xorq(r26, Address(r27, r28, (Address::ScaleFactor)1, +0x1b8f52c6)); // xor r26, qword ptr [r27+r28*2+0x1b8f52c6] IID14385 - __ xorq(r27, Address(r28, r29, (Address::ScaleFactor)3, -0x3ba5f896)); // xor r27, qword ptr [r28+r29*8-0x3ba5f896] IID14386 - __ xorq(r28, Address(r29, r30, (Address::ScaleFactor)2, +0x1400a8ea)); // xor r28, qword ptr [r29+r30*4+0x1400a8ea] IID14387 - __ xorq(r29, Address(r30, r31, (Address::ScaleFactor)1, -0x47cddd5)); // xor r29, qword ptr [r30+r31*2-0x47cddd5] IID14388 - __ xorq(r30, Address(r31, rcx, (Address::ScaleFactor)3, +0xed045ac)); // xor r30, qword ptr [r31+rcx*8+0xed045ac] IID14389 - __ xorq(r31, Address(rcx, rdx, (Address::ScaleFactor)1, +0x2d284204)); // xor r31, qword ptr [rcx+rdx*2+0x2d284204] IID14390 - __ movq(rcx, Address(rdx, rbx, (Address::ScaleFactor)2, -0x38616efd)); // mov rcx, qword ptr [rdx+rbx*4-0x38616efd] IID14391 - __ movq(rdx, Address(rbx, +0x66874a10)); // mov rdx, qword ptr [rbx+0x66874a10] IID14392 - __ movq(rbx, Address(r8, r9, (Address::ScaleFactor)2, -0x1ab189ab)); // mov rbx, qword ptr [r8+r9*4-0x1ab189ab] IID14393 - __ movq(r8, Address(r9, r10, (Address::ScaleFactor)1, +0x705f4c3e)); // mov r8, qword ptr [r9+r10*2+0x705f4c3e] IID14394 - __ movq(r9, Address(r10, r11, (Address::ScaleFactor)0, -0x2ca2e1be)); // mov r9, qword ptr [r10+r11*1-0x2ca2e1be] IID14395 - __ movq(r10, Address(r11, r12, (Address::ScaleFactor)3, +0x4cb675a7)); // mov r10, qword ptr [r11+r12*8+0x4cb675a7] IID14396 - __ movq(r11, Address(r12, -0x48f95d6e)); // mov r11, qword ptr [r12-0x48f95d6e] IID14397 - __ movq(r12, Address(r13, r14, (Address::ScaleFactor)2, +0x7b543326)); // mov r12, qword ptr [r13+r14*4+0x7b543326] IID14398 - __ movq(r13, Address(r14, r15, (Address::ScaleFactor)2, -0xc0387e)); // mov r13, qword ptr [r14+r15*4-0xc0387e] IID14399 - __ movq(r14, Address(r15, r16, (Address::ScaleFactor)1, +0x56840d38)); // mov r14, qword ptr [r15+r16*2+0x56840d38] IID14400 - __ movq(r15, Address(r16, r17, (Address::ScaleFactor)2, -0x4be472c8)); // mov r15, qword ptr [r16+r17*4-0x4be472c8] IID14401 - __ movq(r16, Address(r17, r18, (Address::ScaleFactor)3, +0x6f39c577)); // mov r16, qword ptr [r17+r18*8+0x6f39c577] IID14402 - __ movq(r17, Address(r18, r19, (Address::ScaleFactor)1, -0x5b245eff)); // mov r17, qword ptr [r18+r19*2-0x5b245eff] IID14403 - __ movq(r18, Address(r19, r20, (Address::ScaleFactor)3, +0x701f8103)); // mov r18, qword ptr [r19+r20*8+0x701f8103] IID14404 - __ movq(r19, Address(r20, +0x2004ec6d)); // mov r19, qword ptr [r20+0x2004ec6d] IID14405 - __ movq(r20, Address(r21, -0x64b6917d)); // mov r20, qword ptr [r21-0x64b6917d] IID14406 - __ movq(r21, Address(r22, -0x49031905)); // mov r21, qword ptr [r22-0x49031905] IID14407 - __ movq(r22, Address(r23, r24, (Address::ScaleFactor)3, +0xed2a34f)); // mov r22, qword ptr [r23+r24*8+0xed2a34f] IID14408 - __ movq(r23, Address(r24, r25, (Address::ScaleFactor)0, -0x4ceb2a42)); // mov r23, qword ptr [r24+r25*1-0x4ceb2a42] IID14409 - __ movq(r24, Address(r25, +0x110bc6ac)); // mov r24, qword ptr [r25+0x110bc6ac] IID14410 - __ movq(r25, Address(r26, -0xf8372a)); // mov r25, qword ptr [r26-0xf8372a] IID14411 - __ movq(r26, Address(r27, r28, (Address::ScaleFactor)3, +0x1abd529e)); // mov r26, qword ptr [r27+r28*8+0x1abd529e] IID14412 - __ movq(r27, Address(r28, r29, (Address::ScaleFactor)1, +0xd5e3ca)); // mov r27, qword ptr [r28+r29*2+0xd5e3ca] IID14413 - __ movq(r28, Address(r29, r30, (Address::ScaleFactor)1, +0x283596ee)); // mov r28, qword ptr [r29+r30*2+0x283596ee] IID14414 - __ movq(r29, Address(r30, +0x7bd0254)); // mov r29, qword ptr [r30+0x7bd0254] IID14415 - __ movq(r30, Address(r31, rcx, (Address::ScaleFactor)1, +0x205fd4f)); // mov r30, qword ptr [r31+rcx*2+0x205fd4f] IID14416 - __ movq(r31, Address(rcx, rdx, (Address::ScaleFactor)3, +0x739eacfe)); // mov r31, qword ptr [rcx+rdx*8+0x739eacfe] IID14417 - __ leaq(rcx, Address(rdx, rbx, (Address::ScaleFactor)2, +0x149d820b)); // lea rcx, qword ptr [rdx+rbx*4+0x149d820b] IID14418 - __ leaq(rdx, Address(rbx, r8, (Address::ScaleFactor)1, +0x33e43bf0)); // lea rdx, qword ptr [rbx+r8*2+0x33e43bf0] IID14419 - __ leaq(rbx, Address(r8, r9, (Address::ScaleFactor)2, -0x7930db8)); // lea rbx, qword ptr [r8+r9*4-0x7930db8] IID14420 - __ leaq(r8, Address(r9, r10, (Address::ScaleFactor)1, +0x39e36dca)); // lea r8, qword ptr [r9+r10*2+0x39e36dca] IID14421 - __ leaq(r9, Address(r10, r11, (Address::ScaleFactor)3, -0x129cb344)); // lea r9, qword ptr [r10+r11*8-0x129cb344] IID14422 - __ leaq(r10, Address(r11, r12, (Address::ScaleFactor)3, +0x5ba24379)); // lea r10, qword ptr [r11+r12*8+0x5ba24379] IID14423 - __ leaq(r11, Address(r12, r13, (Address::ScaleFactor)0, -0x7023f310)); // lea r11, qword ptr [r12+r13*1-0x7023f310] IID14424 - __ leaq(r12, Address(r13, r14, (Address::ScaleFactor)0, +0x34290834)); // lea r12, qword ptr [r13+r14*1+0x34290834] IID14425 - __ leaq(r13, Address(r14, r15, (Address::ScaleFactor)0, -0x6fe0a0f1)); // lea r13, qword ptr [r14+r15*1-0x6fe0a0f1] IID14426 - __ leaq(r14, Address(r15, r16, (Address::ScaleFactor)2, -0xa04f8ce)); // lea r14, qword ptr [r15+r16*4-0xa04f8ce] IID14427 - __ leaq(r15, Address(r16, r17, (Address::ScaleFactor)0, -0x4078fa87)); // lea r15, qword ptr [r16+r17*1-0x4078fa87] IID14428 - __ leaq(r16, Address(r17, r18, (Address::ScaleFactor)2, -0x47707cd)); // lea r16, qword ptr [r17+r18*4-0x47707cd] IID14429 - __ leaq(r17, Address(r18, r19, (Address::ScaleFactor)1, +0x7c054a00)); // lea r17, qword ptr [r18+r19*2+0x7c054a00] IID14430 - __ leaq(r18, Address(r19, r20, (Address::ScaleFactor)0, +0x7d7fdfc1)); // lea r18, qword ptr [r19+r20*1+0x7d7fdfc1] IID14431 - __ leaq(r19, Address(r20, r21, (Address::ScaleFactor)3, -0xce43699)); // lea r19, qword ptr [r20+r21*8-0xce43699] IID14432 - __ leaq(r20, Address(r21, +0x73811f0f)); // lea r20, qword ptr [r21+0x73811f0f] IID14433 - __ leaq(r21, Address(r22, r23, (Address::ScaleFactor)0, -0x6c1b2eac)); // lea r21, qword ptr [r22+r23*1-0x6c1b2eac] IID14434 - __ leaq(r22, Address(r23, r24, (Address::ScaleFactor)3, -0x836e55)); // lea r22, qword ptr [r23+r24*8-0x836e55] IID14435 - __ leaq(r23, Address(r24, r25, (Address::ScaleFactor)3, +0x1296dbc4)); // lea r23, qword ptr [r24+r25*8+0x1296dbc4] IID14436 - __ leaq(r24, Address(r25, +0x2619212a)); // lea r24, qword ptr [r25+0x2619212a] IID14437 - __ leaq(r25, Address(r26, r27, (Address::ScaleFactor)0, +0x1a0b0b79)); // lea r25, qword ptr [r26+r27*1+0x1a0b0b79] IID14438 - __ leaq(r26, Address(r27, r28, (Address::ScaleFactor)2, -0x733c75e8)); // lea r26, qword ptr [r27+r28*4-0x733c75e8] IID14439 - __ leaq(r27, Address(r28, r29, (Address::ScaleFactor)3, +0x34d348ca)); // lea r27, qword ptr [r28+r29*8+0x34d348ca] IID14440 - __ leaq(r28, Address(r29, r30, (Address::ScaleFactor)0, +0x6ecdc0d9)); // lea r28, qword ptr [r29+r30*1+0x6ecdc0d9] IID14441 - __ leaq(r29, Address(r30, r31, (Address::ScaleFactor)2, -0xc5f43cd)); // lea r29, qword ptr [r30+r31*4-0xc5f43cd] IID14442 - __ leaq(r30, Address(r31, rcx, (Address::ScaleFactor)1, -0x789d724d)); // lea r30, qword ptr [r31+rcx*2-0x789d724d] IID14443 - __ leaq(r31, Address(rcx, -0x21573cbf)); // lea r31, qword ptr [rcx-0x21573cbf] IID14444 - __ cvttsd2siq(rcx, Address(rdx, rbx, (Address::ScaleFactor)3, -0x7a50b92f)); // cvttsd2si rcx, qword ptr [rdx+rbx*8-0x7a50b92f] IID14445 - __ cvttsd2siq(rdx, Address(rbx, +0x5b5bc3c6)); // cvttsd2si rdx, qword ptr [rbx+0x5b5bc3c6] IID14446 - __ cvttsd2siq(rbx, Address(r8, r9, (Address::ScaleFactor)2, -0x449c52d3)); // cvttsd2si rbx, qword ptr [r8+r9*4-0x449c52d3] IID14447 - __ cvttsd2siq(r8, Address(r9, r10, (Address::ScaleFactor)3, -0x65a9d7c7)); // cvttsd2si r8, qword ptr [r9+r10*8-0x65a9d7c7] IID14448 - __ cvttsd2siq(r9, Address(r10, r11, (Address::ScaleFactor)3, +0x445f3eaa)); // cvttsd2si r9, qword ptr [r10+r11*8+0x445f3eaa] IID14449 - __ cvttsd2siq(r10, Address(r11, r12, (Address::ScaleFactor)0, +0x54664a13)); // cvttsd2si r10, qword ptr [r11+r12*1+0x54664a13] IID14450 - __ cvttsd2siq(r11, Address(r12, r13, (Address::ScaleFactor)2, -0x4a5e2921)); // cvttsd2si r11, qword ptr [r12+r13*4-0x4a5e2921] IID14451 - __ cvttsd2siq(r12, Address(r13, r14, (Address::ScaleFactor)2, -0x1c6ce0e1)); // cvttsd2si r12, qword ptr [r13+r14*4-0x1c6ce0e1] IID14452 - __ cvttsd2siq(r13, Address(r14, r15, (Address::ScaleFactor)2, +0x417a13d6)); // cvttsd2si r13, qword ptr [r14+r15*4+0x417a13d6] IID14453 - __ cvttsd2siq(r14, Address(r15, +0xe459d5d)); // cvttsd2si r14, qword ptr [r15+0xe459d5d] IID14454 - __ cvttsd2siq(r15, Address(r16, r17, (Address::ScaleFactor)3, -0x1f852489)); // cvttsd2si r15, qword ptr [r16+r17*8-0x1f852489] IID14455 - __ cvttsd2siq(r16, Address(r17, r18, (Address::ScaleFactor)2, +0x2fac3f31)); // cvttsd2si r16, qword ptr [r17+r18*4+0x2fac3f31] IID14456 - __ cvttsd2siq(r17, Address(r18, -0x4e3259e1)); // cvttsd2si r17, qword ptr [r18-0x4e3259e1] IID14457 - __ cvttsd2siq(r18, Address(r19, r20, (Address::ScaleFactor)0, +0x3de712f9)); // cvttsd2si r18, qword ptr [r19+r20*1+0x3de712f9] IID14458 - __ cvttsd2siq(r19, Address(r20, r21, (Address::ScaleFactor)0, +0x73afbf4f)); // cvttsd2si r19, qword ptr [r20+r21*1+0x73afbf4f] IID14459 - __ cvttsd2siq(r20, Address(r21, r22, (Address::ScaleFactor)3, -0x61e92c21)); // cvttsd2si r20, qword ptr [r21+r22*8-0x61e92c21] IID14460 - __ cvttsd2siq(r21, Address(r22, r23, (Address::ScaleFactor)0, -0x6df35eeb)); // cvttsd2si r21, qword ptr [r22+r23*1-0x6df35eeb] IID14461 - __ cvttsd2siq(r22, Address(r23, r24, (Address::ScaleFactor)1, +0x613d3425)); // cvttsd2si r22, qword ptr [r23+r24*2+0x613d3425] IID14462 - __ cvttsd2siq(r23, Address(r24, r25, (Address::ScaleFactor)0, -0x75c45a20)); // cvttsd2si r23, qword ptr [r24+r25*1-0x75c45a20] IID14463 - __ cvttsd2siq(r24, Address(r25, r26, (Address::ScaleFactor)0, -0x6a332911)); // cvttsd2si r24, qword ptr [r25+r26*1-0x6a332911] IID14464 - __ cvttsd2siq(r25, Address(r26, r27, (Address::ScaleFactor)1, -0x3b8e6b59)); // cvttsd2si r25, qword ptr [r26+r27*2-0x3b8e6b59] IID14465 - __ cvttsd2siq(r26, Address(r27, r28, (Address::ScaleFactor)3, +0x3c21ddec)); // cvttsd2si r26, qword ptr [r27+r28*8+0x3c21ddec] IID14466 - __ cvttsd2siq(r27, Address(r28, r29, (Address::ScaleFactor)1, +0x144e39c0)); // cvttsd2si r27, qword ptr [r28+r29*2+0x144e39c0] IID14467 - __ cvttsd2siq(r28, Address(r29, r30, (Address::ScaleFactor)1, -0x2589f0fc)); // cvttsd2si r28, qword ptr [r29+r30*2-0x2589f0fc] IID14468 - __ cvttsd2siq(r29, Address(r30, r31, (Address::ScaleFactor)2, +0x2cee718e)); // cvttsd2si r29, qword ptr [r30+r31*4+0x2cee718e] IID14469 - __ cvttsd2siq(r30, Address(r31, rcx, (Address::ScaleFactor)2, -0x5bd3afd7)); // cvttsd2si r30, qword ptr [r31+rcx*4-0x5bd3afd7] IID14470 - __ cvttsd2siq(r31, Address(rcx, rdx, (Address::ScaleFactor)2, -0x4a1c4293)); // cvttsd2si r31, qword ptr [rcx+rdx*4-0x4a1c4293] IID14471 - __ xchgq(rcx, Address(rdx, rbx, (Address::ScaleFactor)2, -0x65bd7f9e)); // xchg rcx, qword ptr [rdx+rbx*4-0x65bd7f9e] IID14472 - __ xchgq(rdx, Address(rbx, r8, (Address::ScaleFactor)0, -0x6668bd3c)); // xchg rdx, qword ptr [rbx+r8*1-0x6668bd3c] IID14473 - __ xchgq(rbx, Address(r8, r9, (Address::ScaleFactor)1, -0x2b1d7fcf)); // xchg rbx, qword ptr [r8+r9*2-0x2b1d7fcf] IID14474 - __ xchgq(r8, Address(r9, -0x4fe8aa25)); // xchg r8, qword ptr [r9-0x4fe8aa25] IID14475 - __ xchgq(r9, Address(r10, r11, (Address::ScaleFactor)3, +0x7c107bda)); // xchg r9, qword ptr [r10+r11*8+0x7c107bda] IID14476 - __ xchgq(r10, Address(r11, r12, (Address::ScaleFactor)2, -0x53a48049)); // xchg r10, qword ptr [r11+r12*4-0x53a48049] IID14477 - __ xchgq(r11, Address(r12, +0x2e12fe96)); // xchg r11, qword ptr [r12+0x2e12fe96] IID14478 - __ xchgq(r12, Address(r13, -0x2c6bebf6)); // xchg r12, qword ptr [r13-0x2c6bebf6] IID14479 - __ xchgq(r13, Address(r14, +0x71388df4)); // xchg r13, qword ptr [r14+0x71388df4] IID14480 - __ xchgq(r14, Address(r15, r16, (Address::ScaleFactor)1, -0x705a81e4)); // xchg r14, qword ptr [r15+r16*2-0x705a81e4] IID14481 - __ xchgq(r15, Address(r16, r17, (Address::ScaleFactor)1, +0xf097ae8)); // xchg r15, qword ptr [r16+r17*2+0xf097ae8] IID14482 - __ xchgq(r16, Address(r17, r18, (Address::ScaleFactor)3, +0x6442431a)); // xchg r16, qword ptr [r17+r18*8+0x6442431a] IID14483 - __ xchgq(r17, Address(r18, +0x22ed8fd7)); // xchg r17, qword ptr [r18+0x22ed8fd7] IID14484 - __ xchgq(r18, Address(r19, r20, (Address::ScaleFactor)3, +0x440afe6)); // xchg r18, qword ptr [r19+r20*8+0x440afe6] IID14485 - __ xchgq(r19, Address(r20, r21, (Address::ScaleFactor)3, -0x543c63db)); // xchg r19, qword ptr [r20+r21*8-0x543c63db] IID14486 - __ xchgq(r20, Address(r21, r22, (Address::ScaleFactor)3, +0x172c685d)); // xchg r20, qword ptr [r21+r22*8+0x172c685d] IID14487 - __ xchgq(r21, Address(r22, r23, (Address::ScaleFactor)2, -0x61846a6a)); // xchg r21, qword ptr [r22+r23*4-0x61846a6a] IID14488 - __ xchgq(r22, Address(r23, r24, (Address::ScaleFactor)3, -0x568bfd1f)); // xchg r22, qword ptr [r23+r24*8-0x568bfd1f] IID14489 - __ xchgq(r23, Address(r24, r25, (Address::ScaleFactor)3, +0x7f4d3ce7)); // xchg r23, qword ptr [r24+r25*8+0x7f4d3ce7] IID14490 - __ xchgq(r24, Address(r25, r26, (Address::ScaleFactor)1, +0x31c3aa0d)); // xchg r24, qword ptr [r25+r26*2+0x31c3aa0d] IID14491 - __ xchgq(r25, Address(r26, +0x1c021423)); // xchg r25, qword ptr [r26+0x1c021423] IID14492 - __ xchgq(r26, Address(r27, r28, (Address::ScaleFactor)3, -0x3ad7394a)); // xchg r26, qword ptr [r27+r28*8-0x3ad7394a] IID14493 - __ xchgq(r27, Address(r28, r29, (Address::ScaleFactor)2, +0xa4453f0)); // xchg r27, qword ptr [r28+r29*4+0xa4453f0] IID14494 - __ xchgq(r28, Address(r29, r30, (Address::ScaleFactor)0, -0x5eea7611)); // xchg r28, qword ptr [r29+r30*1-0x5eea7611] IID14495 - __ xchgq(r29, Address(r30, r31, (Address::ScaleFactor)2, -0x5405ea91)); // xchg r29, qword ptr [r30+r31*4-0x5405ea91] IID14496 - __ xchgq(r30, Address(r31, rcx, (Address::ScaleFactor)0, +0x5cc9d233)); // xchg r30, qword ptr [r31+rcx*1+0x5cc9d233] IID14497 - __ xchgq(r31, Address(rcx, -0x19234ca0)); // xchg r31, qword ptr [rcx-0x19234ca0] IID14498 - __ testq(rcx, Address(rdx, rbx, (Address::ScaleFactor)0, -0x461eb421)); // test rcx, qword ptr [rdx+rbx*1-0x461eb421] IID14499 - __ testq(rdx, Address(rbx, +0x3d062fd6)); // test rdx, qword ptr [rbx+0x3d062fd6] IID14500 - __ testq(rbx, Address(r8, r9, (Address::ScaleFactor)2, +0xdc99aad)); // test rbx, qword ptr [r8+r9*4+0xdc99aad] IID14501 - __ testq(r8, Address(r9, r10, (Address::ScaleFactor)3, -0x541fdf4c)); // test r8, qword ptr [r9+r10*8-0x541fdf4c] IID14502 - __ testq(r9, Address(r10, r11, (Address::ScaleFactor)0, -0x5e154600)); // test r9, qword ptr [r10+r11*1-0x5e154600] IID14503 - __ testq(r10, Address(r11, r12, (Address::ScaleFactor)3, -0x61dc9480)); // test r10, qword ptr [r11+r12*8-0x61dc9480] IID14504 - __ testq(r11, Address(r12, r13, (Address::ScaleFactor)1, -0xb435309)); // test r11, qword ptr [r12+r13*2-0xb435309] IID14505 - __ testq(r12, Address(r13, r14, (Address::ScaleFactor)3, -0x3236aefd)); // test r12, qword ptr [r13+r14*8-0x3236aefd] IID14506 - __ testq(r13, Address(r14, -0x207cff71)); // test r13, qword ptr [r14-0x207cff71] IID14507 - __ testq(r14, Address(r15, r16, (Address::ScaleFactor)2, +0x47e98d79)); // test r14, qword ptr [r15+r16*4+0x47e98d79] IID14508 - __ testq(r15, Address(r16, r17, (Address::ScaleFactor)2, -0x3d35d657)); // test r15, qword ptr [r16+r17*4-0x3d35d657] IID14509 - __ testq(r16, Address(r17, r18, (Address::ScaleFactor)2, +0x480c9415)); // test r16, qword ptr [r17+r18*4+0x480c9415] IID14510 - __ testq(r17, Address(r18, r19, (Address::ScaleFactor)2, +0x5ac59835)); // test r17, qword ptr [r18+r19*4+0x5ac59835] IID14511 - __ testq(r18, Address(r19, r20, (Address::ScaleFactor)3, -0x2940a8d7)); // test r18, qword ptr [r19+r20*8-0x2940a8d7] IID14512 - __ testq(r19, Address(r20, r21, (Address::ScaleFactor)3, +0x7bc5b2e)); // test r19, qword ptr [r20+r21*8+0x7bc5b2e] IID14513 - __ testq(r20, Address(r21, +0x51bb5cb)); // test r20, qword ptr [r21+0x51bb5cb] IID14514 - __ testq(r21, Address(r22, r23, (Address::ScaleFactor)3, -0x7285113a)); // test r21, qword ptr [r22+r23*8-0x7285113a] IID14515 - __ testq(r22, Address(r23, -0x1ea29ccc)); // test r22, qword ptr [r23-0x1ea29ccc] IID14516 - __ testq(r23, Address(r24, r25, (Address::ScaleFactor)2, -0x67d67eaf)); // test r23, qword ptr [r24+r25*4-0x67d67eaf] IID14517 - __ testq(r24, Address(r25, r26, (Address::ScaleFactor)3, -0x6b49766e)); // test r24, qword ptr [r25+r26*8-0x6b49766e] IID14518 - __ testq(r25, Address(r26, r27, (Address::ScaleFactor)1, -0xe6b5164)); // test r25, qword ptr [r26+r27*2-0xe6b5164] IID14519 - __ testq(r26, Address(r27, r28, (Address::ScaleFactor)3, -0x24cc3359)); // test r26, qword ptr [r27+r28*8-0x24cc3359] IID14520 - __ testq(r27, Address(r28, r29, (Address::ScaleFactor)0, +0x2f67787b)); // test r27, qword ptr [r28+r29*1+0x2f67787b] IID14521 - __ testq(r28, Address(r29, +0x667fd420)); // test r28, qword ptr [r29+0x667fd420] IID14522 - __ testq(r29, Address(r30, r31, (Address::ScaleFactor)0, -0x75a50f48)); // test r29, qword ptr [r30+r31*1-0x75a50f48] IID14523 - __ testq(r30, Address(r31, +0x62404213)); // test r30, qword ptr [r31+0x62404213] IID14524 - __ testq(r31, Address(rcx, rdx, (Address::ScaleFactor)1, +0x3458fb71)); // test r31, qword ptr [rcx+rdx*2+0x3458fb71] IID14525 - __ addq(rcx, 1); // add rcx, 1 IID14526 - __ addq(rcx, 16); // add rcx, 16 IID14527 - __ addq(rcx, 256); // add rcx, 256 IID14528 - __ addq(rcx, 4096); // add rcx, 4096 IID14529 - __ addq(rcx, 65536); // add rcx, 65536 IID14530 - __ addq(rcx, 1048576); // add rcx, 1048576 IID14531 - __ addq(rcx, 16777216); // add rcx, 16777216 IID14532 - __ addq(rcx, 268435456); // add rcx, 268435456 IID14533 - __ addq(rdx, 1); // add rdx, 1 IID14534 - __ addq(rdx, 16); // add rdx, 16 IID14535 - __ addq(rdx, 256); // add rdx, 256 IID14536 - __ addq(rdx, 4096); // add rdx, 4096 IID14537 - __ addq(rdx, 65536); // add rdx, 65536 IID14538 - __ addq(rdx, 1048576); // add rdx, 1048576 IID14539 - __ addq(rdx, 16777216); // add rdx, 16777216 IID14540 - __ addq(rdx, 268435456); // add rdx, 268435456 IID14541 - __ addq(rbx, 1); // add rbx, 1 IID14542 - __ addq(rbx, 16); // add rbx, 16 IID14543 - __ addq(rbx, 256); // add rbx, 256 IID14544 - __ addq(rbx, 4096); // add rbx, 4096 IID14545 - __ addq(rbx, 65536); // add rbx, 65536 IID14546 - __ addq(rbx, 1048576); // add rbx, 1048576 IID14547 - __ addq(rbx, 16777216); // add rbx, 16777216 IID14548 - __ addq(rbx, 268435456); // add rbx, 268435456 IID14549 - __ addq(r8, 1); // add r8, 1 IID14550 - __ addq(r8, 16); // add r8, 16 IID14551 - __ addq(r8, 256); // add r8, 256 IID14552 - __ addq(r8, 4096); // add r8, 4096 IID14553 - __ addq(r8, 65536); // add r8, 65536 IID14554 - __ addq(r8, 1048576); // add r8, 1048576 IID14555 - __ addq(r8, 16777216); // add r8, 16777216 IID14556 - __ addq(r8, 268435456); // add r8, 268435456 IID14557 - __ addq(r9, 1); // add r9, 1 IID14558 - __ addq(r9, 16); // add r9, 16 IID14559 - __ addq(r9, 256); // add r9, 256 IID14560 - __ addq(r9, 4096); // add r9, 4096 IID14561 - __ addq(r9, 65536); // add r9, 65536 IID14562 - __ addq(r9, 1048576); // add r9, 1048576 IID14563 - __ addq(r9, 16777216); // add r9, 16777216 IID14564 - __ addq(r9, 268435456); // add r9, 268435456 IID14565 - __ addq(r10, 1); // add r10, 1 IID14566 - __ addq(r10, 16); // add r10, 16 IID14567 - __ addq(r10, 256); // add r10, 256 IID14568 - __ addq(r10, 4096); // add r10, 4096 IID14569 - __ addq(r10, 65536); // add r10, 65536 IID14570 - __ addq(r10, 1048576); // add r10, 1048576 IID14571 - __ addq(r10, 16777216); // add r10, 16777216 IID14572 - __ addq(r10, 268435456); // add r10, 268435456 IID14573 - __ addq(r11, 1); // add r11, 1 IID14574 - __ addq(r11, 16); // add r11, 16 IID14575 - __ addq(r11, 256); // add r11, 256 IID14576 - __ addq(r11, 4096); // add r11, 4096 IID14577 - __ addq(r11, 65536); // add r11, 65536 IID14578 - __ addq(r11, 1048576); // add r11, 1048576 IID14579 - __ addq(r11, 16777216); // add r11, 16777216 IID14580 - __ addq(r11, 268435456); // add r11, 268435456 IID14581 - __ addq(r12, 1); // add r12, 1 IID14582 - __ addq(r12, 16); // add r12, 16 IID14583 - __ addq(r12, 256); // add r12, 256 IID14584 - __ addq(r12, 4096); // add r12, 4096 IID14585 - __ addq(r12, 65536); // add r12, 65536 IID14586 - __ addq(r12, 1048576); // add r12, 1048576 IID14587 - __ addq(r12, 16777216); // add r12, 16777216 IID14588 - __ addq(r12, 268435456); // add r12, 268435456 IID14589 - __ addq(r13, 1); // add r13, 1 IID14590 - __ addq(r13, 16); // add r13, 16 IID14591 - __ addq(r13, 256); // add r13, 256 IID14592 - __ addq(r13, 4096); // add r13, 4096 IID14593 - __ addq(r13, 65536); // add r13, 65536 IID14594 - __ addq(r13, 1048576); // add r13, 1048576 IID14595 - __ addq(r13, 16777216); // add r13, 16777216 IID14596 - __ addq(r13, 268435456); // add r13, 268435456 IID14597 - __ addq(r14, 1); // add r14, 1 IID14598 - __ addq(r14, 16); // add r14, 16 IID14599 - __ addq(r14, 256); // add r14, 256 IID14600 - __ addq(r14, 4096); // add r14, 4096 IID14601 - __ addq(r14, 65536); // add r14, 65536 IID14602 - __ addq(r14, 1048576); // add r14, 1048576 IID14603 - __ addq(r14, 16777216); // add r14, 16777216 IID14604 - __ addq(r14, 268435456); // add r14, 268435456 IID14605 - __ addq(r15, 1); // add r15, 1 IID14606 - __ addq(r15, 16); // add r15, 16 IID14607 - __ addq(r15, 256); // add r15, 256 IID14608 - __ addq(r15, 4096); // add r15, 4096 IID14609 - __ addq(r15, 65536); // add r15, 65536 IID14610 - __ addq(r15, 1048576); // add r15, 1048576 IID14611 - __ addq(r15, 16777216); // add r15, 16777216 IID14612 - __ addq(r15, 268435456); // add r15, 268435456 IID14613 - __ addq(r16, 1); // add r16, 1 IID14614 - __ addq(r16, 16); // add r16, 16 IID14615 - __ addq(r16, 256); // add r16, 256 IID14616 - __ addq(r16, 4096); // add r16, 4096 IID14617 - __ addq(r16, 65536); // add r16, 65536 IID14618 - __ addq(r16, 1048576); // add r16, 1048576 IID14619 - __ addq(r16, 16777216); // add r16, 16777216 IID14620 - __ addq(r16, 268435456); // add r16, 268435456 IID14621 - __ addq(r17, 1); // add r17, 1 IID14622 - __ addq(r17, 16); // add r17, 16 IID14623 - __ addq(r17, 256); // add r17, 256 IID14624 - __ addq(r17, 4096); // add r17, 4096 IID14625 - __ addq(r17, 65536); // add r17, 65536 IID14626 - __ addq(r17, 1048576); // add r17, 1048576 IID14627 - __ addq(r17, 16777216); // add r17, 16777216 IID14628 - __ addq(r17, 268435456); // add r17, 268435456 IID14629 - __ addq(r18, 1); // add r18, 1 IID14630 - __ addq(r18, 16); // add r18, 16 IID14631 - __ addq(r18, 256); // add r18, 256 IID14632 - __ addq(r18, 4096); // add r18, 4096 IID14633 - __ addq(r18, 65536); // add r18, 65536 IID14634 - __ addq(r18, 1048576); // add r18, 1048576 IID14635 - __ addq(r18, 16777216); // add r18, 16777216 IID14636 - __ addq(r18, 268435456); // add r18, 268435456 IID14637 - __ addq(r19, 1); // add r19, 1 IID14638 - __ addq(r19, 16); // add r19, 16 IID14639 - __ addq(r19, 256); // add r19, 256 IID14640 - __ addq(r19, 4096); // add r19, 4096 IID14641 - __ addq(r19, 65536); // add r19, 65536 IID14642 - __ addq(r19, 1048576); // add r19, 1048576 IID14643 - __ addq(r19, 16777216); // add r19, 16777216 IID14644 - __ addq(r19, 268435456); // add r19, 268435456 IID14645 - __ addq(r20, 1); // add r20, 1 IID14646 - __ addq(r20, 16); // add r20, 16 IID14647 - __ addq(r20, 256); // add r20, 256 IID14648 - __ addq(r20, 4096); // add r20, 4096 IID14649 - __ addq(r20, 65536); // add r20, 65536 IID14650 - __ addq(r20, 1048576); // add r20, 1048576 IID14651 - __ addq(r20, 16777216); // add r20, 16777216 IID14652 - __ addq(r20, 268435456); // add r20, 268435456 IID14653 - __ addq(r21, 1); // add r21, 1 IID14654 - __ addq(r21, 16); // add r21, 16 IID14655 - __ addq(r21, 256); // add r21, 256 IID14656 - __ addq(r21, 4096); // add r21, 4096 IID14657 - __ addq(r21, 65536); // add r21, 65536 IID14658 - __ addq(r21, 1048576); // add r21, 1048576 IID14659 - __ addq(r21, 16777216); // add r21, 16777216 IID14660 - __ addq(r21, 268435456); // add r21, 268435456 IID14661 - __ addq(r22, 1); // add r22, 1 IID14662 - __ addq(r22, 16); // add r22, 16 IID14663 - __ addq(r22, 256); // add r22, 256 IID14664 - __ addq(r22, 4096); // add r22, 4096 IID14665 - __ addq(r22, 65536); // add r22, 65536 IID14666 - __ addq(r22, 1048576); // add r22, 1048576 IID14667 - __ addq(r22, 16777216); // add r22, 16777216 IID14668 - __ addq(r22, 268435456); // add r22, 268435456 IID14669 - __ addq(r23, 1); // add r23, 1 IID14670 - __ addq(r23, 16); // add r23, 16 IID14671 - __ addq(r23, 256); // add r23, 256 IID14672 - __ addq(r23, 4096); // add r23, 4096 IID14673 - __ addq(r23, 65536); // add r23, 65536 IID14674 - __ addq(r23, 1048576); // add r23, 1048576 IID14675 - __ addq(r23, 16777216); // add r23, 16777216 IID14676 - __ addq(r23, 268435456); // add r23, 268435456 IID14677 - __ addq(r24, 1); // add r24, 1 IID14678 - __ addq(r24, 16); // add r24, 16 IID14679 - __ addq(r24, 256); // add r24, 256 IID14680 - __ addq(r24, 4096); // add r24, 4096 IID14681 - __ addq(r24, 65536); // add r24, 65536 IID14682 - __ addq(r24, 1048576); // add r24, 1048576 IID14683 - __ addq(r24, 16777216); // add r24, 16777216 IID14684 - __ addq(r24, 268435456); // add r24, 268435456 IID14685 - __ addq(r25, 1); // add r25, 1 IID14686 - __ addq(r25, 16); // add r25, 16 IID14687 - __ addq(r25, 256); // add r25, 256 IID14688 - __ addq(r25, 4096); // add r25, 4096 IID14689 - __ addq(r25, 65536); // add r25, 65536 IID14690 - __ addq(r25, 1048576); // add r25, 1048576 IID14691 - __ addq(r25, 16777216); // add r25, 16777216 IID14692 - __ addq(r25, 268435456); // add r25, 268435456 IID14693 - __ addq(r26, 1); // add r26, 1 IID14694 - __ addq(r26, 16); // add r26, 16 IID14695 - __ addq(r26, 256); // add r26, 256 IID14696 - __ addq(r26, 4096); // add r26, 4096 IID14697 - __ addq(r26, 65536); // add r26, 65536 IID14698 - __ addq(r26, 1048576); // add r26, 1048576 IID14699 - __ addq(r26, 16777216); // add r26, 16777216 IID14700 - __ addq(r26, 268435456); // add r26, 268435456 IID14701 - __ addq(r27, 1); // add r27, 1 IID14702 - __ addq(r27, 16); // add r27, 16 IID14703 - __ addq(r27, 256); // add r27, 256 IID14704 - __ addq(r27, 4096); // add r27, 4096 IID14705 - __ addq(r27, 65536); // add r27, 65536 IID14706 - __ addq(r27, 1048576); // add r27, 1048576 IID14707 - __ addq(r27, 16777216); // add r27, 16777216 IID14708 - __ addq(r27, 268435456); // add r27, 268435456 IID14709 - __ addq(r28, 1); // add r28, 1 IID14710 - __ addq(r28, 16); // add r28, 16 IID14711 - __ addq(r28, 256); // add r28, 256 IID14712 - __ addq(r28, 4096); // add r28, 4096 IID14713 - __ addq(r28, 65536); // add r28, 65536 IID14714 - __ addq(r28, 1048576); // add r28, 1048576 IID14715 - __ addq(r28, 16777216); // add r28, 16777216 IID14716 - __ addq(r28, 268435456); // add r28, 268435456 IID14717 - __ addq(r29, 1); // add r29, 1 IID14718 - __ addq(r29, 16); // add r29, 16 IID14719 - __ addq(r29, 256); // add r29, 256 IID14720 - __ addq(r29, 4096); // add r29, 4096 IID14721 - __ addq(r29, 65536); // add r29, 65536 IID14722 - __ addq(r29, 1048576); // add r29, 1048576 IID14723 - __ addq(r29, 16777216); // add r29, 16777216 IID14724 - __ addq(r29, 268435456); // add r29, 268435456 IID14725 - __ addq(r30, 1); // add r30, 1 IID14726 - __ addq(r30, 16); // add r30, 16 IID14727 - __ addq(r30, 256); // add r30, 256 IID14728 - __ addq(r30, 4096); // add r30, 4096 IID14729 - __ addq(r30, 65536); // add r30, 65536 IID14730 - __ addq(r30, 1048576); // add r30, 1048576 IID14731 - __ addq(r30, 16777216); // add r30, 16777216 IID14732 - __ addq(r30, 268435456); // add r30, 268435456 IID14733 - __ addq(r31, 1); // add r31, 1 IID14734 - __ addq(r31, 16); // add r31, 16 IID14735 - __ addq(r31, 256); // add r31, 256 IID14736 - __ addq(r31, 4096); // add r31, 4096 IID14737 - __ addq(r31, 65536); // add r31, 65536 IID14738 - __ addq(r31, 1048576); // add r31, 1048576 IID14739 - __ addq(r31, 16777216); // add r31, 16777216 IID14740 - __ addq(r31, 268435456); // add r31, 268435456 IID14741 - __ andq(rcx, 1); // and rcx, 1 IID14742 - __ andq(rcx, 16); // and rcx, 16 IID14743 - __ andq(rcx, 256); // and rcx, 256 IID14744 - __ andq(rcx, 4096); // and rcx, 4096 IID14745 - __ andq(rcx, 65536); // and rcx, 65536 IID14746 - __ andq(rcx, 1048576); // and rcx, 1048576 IID14747 - __ andq(rcx, 16777216); // and rcx, 16777216 IID14748 - __ andq(rcx, 268435456); // and rcx, 268435456 IID14749 - __ andq(rdx, 1); // and rdx, 1 IID14750 - __ andq(rdx, 16); // and rdx, 16 IID14751 - __ andq(rdx, 256); // and rdx, 256 IID14752 - __ andq(rdx, 4096); // and rdx, 4096 IID14753 - __ andq(rdx, 65536); // and rdx, 65536 IID14754 - __ andq(rdx, 1048576); // and rdx, 1048576 IID14755 - __ andq(rdx, 16777216); // and rdx, 16777216 IID14756 - __ andq(rdx, 268435456); // and rdx, 268435456 IID14757 - __ andq(rbx, 1); // and rbx, 1 IID14758 - __ andq(rbx, 16); // and rbx, 16 IID14759 - __ andq(rbx, 256); // and rbx, 256 IID14760 - __ andq(rbx, 4096); // and rbx, 4096 IID14761 - __ andq(rbx, 65536); // and rbx, 65536 IID14762 - __ andq(rbx, 1048576); // and rbx, 1048576 IID14763 - __ andq(rbx, 16777216); // and rbx, 16777216 IID14764 - __ andq(rbx, 268435456); // and rbx, 268435456 IID14765 - __ andq(r8, 1); // and r8, 1 IID14766 - __ andq(r8, 16); // and r8, 16 IID14767 - __ andq(r8, 256); // and r8, 256 IID14768 - __ andq(r8, 4096); // and r8, 4096 IID14769 - __ andq(r8, 65536); // and r8, 65536 IID14770 - __ andq(r8, 1048576); // and r8, 1048576 IID14771 - __ andq(r8, 16777216); // and r8, 16777216 IID14772 - __ andq(r8, 268435456); // and r8, 268435456 IID14773 - __ andq(r9, 1); // and r9, 1 IID14774 - __ andq(r9, 16); // and r9, 16 IID14775 - __ andq(r9, 256); // and r9, 256 IID14776 - __ andq(r9, 4096); // and r9, 4096 IID14777 - __ andq(r9, 65536); // and r9, 65536 IID14778 - __ andq(r9, 1048576); // and r9, 1048576 IID14779 - __ andq(r9, 16777216); // and r9, 16777216 IID14780 - __ andq(r9, 268435456); // and r9, 268435456 IID14781 - __ andq(r10, 1); // and r10, 1 IID14782 - __ andq(r10, 16); // and r10, 16 IID14783 - __ andq(r10, 256); // and r10, 256 IID14784 - __ andq(r10, 4096); // and r10, 4096 IID14785 - __ andq(r10, 65536); // and r10, 65536 IID14786 - __ andq(r10, 1048576); // and r10, 1048576 IID14787 - __ andq(r10, 16777216); // and r10, 16777216 IID14788 - __ andq(r10, 268435456); // and r10, 268435456 IID14789 - __ andq(r11, 1); // and r11, 1 IID14790 - __ andq(r11, 16); // and r11, 16 IID14791 - __ andq(r11, 256); // and r11, 256 IID14792 - __ andq(r11, 4096); // and r11, 4096 IID14793 - __ andq(r11, 65536); // and r11, 65536 IID14794 - __ andq(r11, 1048576); // and r11, 1048576 IID14795 - __ andq(r11, 16777216); // and r11, 16777216 IID14796 - __ andq(r11, 268435456); // and r11, 268435456 IID14797 - __ andq(r12, 1); // and r12, 1 IID14798 - __ andq(r12, 16); // and r12, 16 IID14799 - __ andq(r12, 256); // and r12, 256 IID14800 - __ andq(r12, 4096); // and r12, 4096 IID14801 - __ andq(r12, 65536); // and r12, 65536 IID14802 - __ andq(r12, 1048576); // and r12, 1048576 IID14803 - __ andq(r12, 16777216); // and r12, 16777216 IID14804 - __ andq(r12, 268435456); // and r12, 268435456 IID14805 - __ andq(r13, 1); // and r13, 1 IID14806 - __ andq(r13, 16); // and r13, 16 IID14807 - __ andq(r13, 256); // and r13, 256 IID14808 - __ andq(r13, 4096); // and r13, 4096 IID14809 - __ andq(r13, 65536); // and r13, 65536 IID14810 - __ andq(r13, 1048576); // and r13, 1048576 IID14811 - __ andq(r13, 16777216); // and r13, 16777216 IID14812 - __ andq(r13, 268435456); // and r13, 268435456 IID14813 - __ andq(r14, 1); // and r14, 1 IID14814 - __ andq(r14, 16); // and r14, 16 IID14815 - __ andq(r14, 256); // and r14, 256 IID14816 - __ andq(r14, 4096); // and r14, 4096 IID14817 - __ andq(r14, 65536); // and r14, 65536 IID14818 - __ andq(r14, 1048576); // and r14, 1048576 IID14819 - __ andq(r14, 16777216); // and r14, 16777216 IID14820 - __ andq(r14, 268435456); // and r14, 268435456 IID14821 - __ andq(r15, 1); // and r15, 1 IID14822 - __ andq(r15, 16); // and r15, 16 IID14823 - __ andq(r15, 256); // and r15, 256 IID14824 - __ andq(r15, 4096); // and r15, 4096 IID14825 - __ andq(r15, 65536); // and r15, 65536 IID14826 - __ andq(r15, 1048576); // and r15, 1048576 IID14827 - __ andq(r15, 16777216); // and r15, 16777216 IID14828 - __ andq(r15, 268435456); // and r15, 268435456 IID14829 - __ andq(r16, 1); // and r16, 1 IID14830 - __ andq(r16, 16); // and r16, 16 IID14831 - __ andq(r16, 256); // and r16, 256 IID14832 - __ andq(r16, 4096); // and r16, 4096 IID14833 - __ andq(r16, 65536); // and r16, 65536 IID14834 - __ andq(r16, 1048576); // and r16, 1048576 IID14835 - __ andq(r16, 16777216); // and r16, 16777216 IID14836 - __ andq(r16, 268435456); // and r16, 268435456 IID14837 - __ andq(r17, 1); // and r17, 1 IID14838 - __ andq(r17, 16); // and r17, 16 IID14839 - __ andq(r17, 256); // and r17, 256 IID14840 - __ andq(r17, 4096); // and r17, 4096 IID14841 - __ andq(r17, 65536); // and r17, 65536 IID14842 - __ andq(r17, 1048576); // and r17, 1048576 IID14843 - __ andq(r17, 16777216); // and r17, 16777216 IID14844 - __ andq(r17, 268435456); // and r17, 268435456 IID14845 - __ andq(r18, 1); // and r18, 1 IID14846 - __ andq(r18, 16); // and r18, 16 IID14847 - __ andq(r18, 256); // and r18, 256 IID14848 - __ andq(r18, 4096); // and r18, 4096 IID14849 - __ andq(r18, 65536); // and r18, 65536 IID14850 - __ andq(r18, 1048576); // and r18, 1048576 IID14851 - __ andq(r18, 16777216); // and r18, 16777216 IID14852 - __ andq(r18, 268435456); // and r18, 268435456 IID14853 - __ andq(r19, 1); // and r19, 1 IID14854 - __ andq(r19, 16); // and r19, 16 IID14855 - __ andq(r19, 256); // and r19, 256 IID14856 - __ andq(r19, 4096); // and r19, 4096 IID14857 - __ andq(r19, 65536); // and r19, 65536 IID14858 - __ andq(r19, 1048576); // and r19, 1048576 IID14859 - __ andq(r19, 16777216); // and r19, 16777216 IID14860 - __ andq(r19, 268435456); // and r19, 268435456 IID14861 - __ andq(r20, 1); // and r20, 1 IID14862 - __ andq(r20, 16); // and r20, 16 IID14863 - __ andq(r20, 256); // and r20, 256 IID14864 - __ andq(r20, 4096); // and r20, 4096 IID14865 - __ andq(r20, 65536); // and r20, 65536 IID14866 - __ andq(r20, 1048576); // and r20, 1048576 IID14867 - __ andq(r20, 16777216); // and r20, 16777216 IID14868 - __ andq(r20, 268435456); // and r20, 268435456 IID14869 - __ andq(r21, 1); // and r21, 1 IID14870 - __ andq(r21, 16); // and r21, 16 IID14871 - __ andq(r21, 256); // and r21, 256 IID14872 - __ andq(r21, 4096); // and r21, 4096 IID14873 - __ andq(r21, 65536); // and r21, 65536 IID14874 - __ andq(r21, 1048576); // and r21, 1048576 IID14875 - __ andq(r21, 16777216); // and r21, 16777216 IID14876 - __ andq(r21, 268435456); // and r21, 268435456 IID14877 - __ andq(r22, 1); // and r22, 1 IID14878 - __ andq(r22, 16); // and r22, 16 IID14879 - __ andq(r22, 256); // and r22, 256 IID14880 - __ andq(r22, 4096); // and r22, 4096 IID14881 - __ andq(r22, 65536); // and r22, 65536 IID14882 - __ andq(r22, 1048576); // and r22, 1048576 IID14883 - __ andq(r22, 16777216); // and r22, 16777216 IID14884 - __ andq(r22, 268435456); // and r22, 268435456 IID14885 - __ andq(r23, 1); // and r23, 1 IID14886 - __ andq(r23, 16); // and r23, 16 IID14887 - __ andq(r23, 256); // and r23, 256 IID14888 - __ andq(r23, 4096); // and r23, 4096 IID14889 - __ andq(r23, 65536); // and r23, 65536 IID14890 - __ andq(r23, 1048576); // and r23, 1048576 IID14891 - __ andq(r23, 16777216); // and r23, 16777216 IID14892 - __ andq(r23, 268435456); // and r23, 268435456 IID14893 - __ andq(r24, 1); // and r24, 1 IID14894 - __ andq(r24, 16); // and r24, 16 IID14895 - __ andq(r24, 256); // and r24, 256 IID14896 - __ andq(r24, 4096); // and r24, 4096 IID14897 - __ andq(r24, 65536); // and r24, 65536 IID14898 - __ andq(r24, 1048576); // and r24, 1048576 IID14899 - __ andq(r24, 16777216); // and r24, 16777216 IID14900 - __ andq(r24, 268435456); // and r24, 268435456 IID14901 - __ andq(r25, 1); // and r25, 1 IID14902 - __ andq(r25, 16); // and r25, 16 IID14903 - __ andq(r25, 256); // and r25, 256 IID14904 - __ andq(r25, 4096); // and r25, 4096 IID14905 - __ andq(r25, 65536); // and r25, 65536 IID14906 - __ andq(r25, 1048576); // and r25, 1048576 IID14907 - __ andq(r25, 16777216); // and r25, 16777216 IID14908 - __ andq(r25, 268435456); // and r25, 268435456 IID14909 - __ andq(r26, 1); // and r26, 1 IID14910 - __ andq(r26, 16); // and r26, 16 IID14911 - __ andq(r26, 256); // and r26, 256 IID14912 - __ andq(r26, 4096); // and r26, 4096 IID14913 - __ andq(r26, 65536); // and r26, 65536 IID14914 - __ andq(r26, 1048576); // and r26, 1048576 IID14915 - __ andq(r26, 16777216); // and r26, 16777216 IID14916 - __ andq(r26, 268435456); // and r26, 268435456 IID14917 - __ andq(r27, 1); // and r27, 1 IID14918 - __ andq(r27, 16); // and r27, 16 IID14919 - __ andq(r27, 256); // and r27, 256 IID14920 - __ andq(r27, 4096); // and r27, 4096 IID14921 - __ andq(r27, 65536); // and r27, 65536 IID14922 - __ andq(r27, 1048576); // and r27, 1048576 IID14923 - __ andq(r27, 16777216); // and r27, 16777216 IID14924 - __ andq(r27, 268435456); // and r27, 268435456 IID14925 - __ andq(r28, 1); // and r28, 1 IID14926 - __ andq(r28, 16); // and r28, 16 IID14927 - __ andq(r28, 256); // and r28, 256 IID14928 - __ andq(r28, 4096); // and r28, 4096 IID14929 - __ andq(r28, 65536); // and r28, 65536 IID14930 - __ andq(r28, 1048576); // and r28, 1048576 IID14931 - __ andq(r28, 16777216); // and r28, 16777216 IID14932 - __ andq(r28, 268435456); // and r28, 268435456 IID14933 - __ andq(r29, 1); // and r29, 1 IID14934 - __ andq(r29, 16); // and r29, 16 IID14935 - __ andq(r29, 256); // and r29, 256 IID14936 - __ andq(r29, 4096); // and r29, 4096 IID14937 - __ andq(r29, 65536); // and r29, 65536 IID14938 - __ andq(r29, 1048576); // and r29, 1048576 IID14939 - __ andq(r29, 16777216); // and r29, 16777216 IID14940 - __ andq(r29, 268435456); // and r29, 268435456 IID14941 - __ andq(r30, 1); // and r30, 1 IID14942 - __ andq(r30, 16); // and r30, 16 IID14943 - __ andq(r30, 256); // and r30, 256 IID14944 - __ andq(r30, 4096); // and r30, 4096 IID14945 - __ andq(r30, 65536); // and r30, 65536 IID14946 - __ andq(r30, 1048576); // and r30, 1048576 IID14947 - __ andq(r30, 16777216); // and r30, 16777216 IID14948 - __ andq(r30, 268435456); // and r30, 268435456 IID14949 - __ andq(r31, 1); // and r31, 1 IID14950 - __ andq(r31, 16); // and r31, 16 IID14951 - __ andq(r31, 256); // and r31, 256 IID14952 - __ andq(r31, 4096); // and r31, 4096 IID14953 - __ andq(r31, 65536); // and r31, 65536 IID14954 - __ andq(r31, 1048576); // and r31, 1048576 IID14955 - __ andq(r31, 16777216); // and r31, 16777216 IID14956 - __ andq(r31, 268435456); // and r31, 268435456 IID14957 - __ adcq(rcx, 1); // adc rcx, 1 IID14958 - __ adcq(rcx, 16); // adc rcx, 16 IID14959 - __ adcq(rcx, 256); // adc rcx, 256 IID14960 - __ adcq(rcx, 4096); // adc rcx, 4096 IID14961 - __ adcq(rcx, 65536); // adc rcx, 65536 IID14962 - __ adcq(rcx, 1048576); // adc rcx, 1048576 IID14963 - __ adcq(rcx, 16777216); // adc rcx, 16777216 IID14964 - __ adcq(rcx, 268435456); // adc rcx, 268435456 IID14965 - __ adcq(rdx, 1); // adc rdx, 1 IID14966 - __ adcq(rdx, 16); // adc rdx, 16 IID14967 - __ adcq(rdx, 256); // adc rdx, 256 IID14968 - __ adcq(rdx, 4096); // adc rdx, 4096 IID14969 - __ adcq(rdx, 65536); // adc rdx, 65536 IID14970 - __ adcq(rdx, 1048576); // adc rdx, 1048576 IID14971 - __ adcq(rdx, 16777216); // adc rdx, 16777216 IID14972 - __ adcq(rdx, 268435456); // adc rdx, 268435456 IID14973 - __ adcq(rbx, 1); // adc rbx, 1 IID14974 - __ adcq(rbx, 16); // adc rbx, 16 IID14975 - __ adcq(rbx, 256); // adc rbx, 256 IID14976 - __ adcq(rbx, 4096); // adc rbx, 4096 IID14977 - __ adcq(rbx, 65536); // adc rbx, 65536 IID14978 - __ adcq(rbx, 1048576); // adc rbx, 1048576 IID14979 - __ adcq(rbx, 16777216); // adc rbx, 16777216 IID14980 - __ adcq(rbx, 268435456); // adc rbx, 268435456 IID14981 - __ adcq(r8, 1); // adc r8, 1 IID14982 - __ adcq(r8, 16); // adc r8, 16 IID14983 - __ adcq(r8, 256); // adc r8, 256 IID14984 - __ adcq(r8, 4096); // adc r8, 4096 IID14985 - __ adcq(r8, 65536); // adc r8, 65536 IID14986 - __ adcq(r8, 1048576); // adc r8, 1048576 IID14987 - __ adcq(r8, 16777216); // adc r8, 16777216 IID14988 - __ adcq(r8, 268435456); // adc r8, 268435456 IID14989 - __ adcq(r9, 1); // adc r9, 1 IID14990 - __ adcq(r9, 16); // adc r9, 16 IID14991 - __ adcq(r9, 256); // adc r9, 256 IID14992 - __ adcq(r9, 4096); // adc r9, 4096 IID14993 - __ adcq(r9, 65536); // adc r9, 65536 IID14994 - __ adcq(r9, 1048576); // adc r9, 1048576 IID14995 - __ adcq(r9, 16777216); // adc r9, 16777216 IID14996 - __ adcq(r9, 268435456); // adc r9, 268435456 IID14997 - __ adcq(r10, 1); // adc r10, 1 IID14998 - __ adcq(r10, 16); // adc r10, 16 IID14999 - __ adcq(r10, 256); // adc r10, 256 IID15000 - __ adcq(r10, 4096); // adc r10, 4096 IID15001 - __ adcq(r10, 65536); // adc r10, 65536 IID15002 - __ adcq(r10, 1048576); // adc r10, 1048576 IID15003 - __ adcq(r10, 16777216); // adc r10, 16777216 IID15004 - __ adcq(r10, 268435456); // adc r10, 268435456 IID15005 - __ adcq(r11, 1); // adc r11, 1 IID15006 - __ adcq(r11, 16); // adc r11, 16 IID15007 - __ adcq(r11, 256); // adc r11, 256 IID15008 - __ adcq(r11, 4096); // adc r11, 4096 IID15009 - __ adcq(r11, 65536); // adc r11, 65536 IID15010 - __ adcq(r11, 1048576); // adc r11, 1048576 IID15011 - __ adcq(r11, 16777216); // adc r11, 16777216 IID15012 - __ adcq(r11, 268435456); // adc r11, 268435456 IID15013 - __ adcq(r12, 1); // adc r12, 1 IID15014 - __ adcq(r12, 16); // adc r12, 16 IID15015 - __ adcq(r12, 256); // adc r12, 256 IID15016 - __ adcq(r12, 4096); // adc r12, 4096 IID15017 - __ adcq(r12, 65536); // adc r12, 65536 IID15018 - __ adcq(r12, 1048576); // adc r12, 1048576 IID15019 - __ adcq(r12, 16777216); // adc r12, 16777216 IID15020 - __ adcq(r12, 268435456); // adc r12, 268435456 IID15021 - __ adcq(r13, 1); // adc r13, 1 IID15022 - __ adcq(r13, 16); // adc r13, 16 IID15023 - __ adcq(r13, 256); // adc r13, 256 IID15024 - __ adcq(r13, 4096); // adc r13, 4096 IID15025 - __ adcq(r13, 65536); // adc r13, 65536 IID15026 - __ adcq(r13, 1048576); // adc r13, 1048576 IID15027 - __ adcq(r13, 16777216); // adc r13, 16777216 IID15028 - __ adcq(r13, 268435456); // adc r13, 268435456 IID15029 - __ adcq(r14, 1); // adc r14, 1 IID15030 - __ adcq(r14, 16); // adc r14, 16 IID15031 - __ adcq(r14, 256); // adc r14, 256 IID15032 - __ adcq(r14, 4096); // adc r14, 4096 IID15033 - __ adcq(r14, 65536); // adc r14, 65536 IID15034 - __ adcq(r14, 1048576); // adc r14, 1048576 IID15035 - __ adcq(r14, 16777216); // adc r14, 16777216 IID15036 - __ adcq(r14, 268435456); // adc r14, 268435456 IID15037 - __ adcq(r15, 1); // adc r15, 1 IID15038 - __ adcq(r15, 16); // adc r15, 16 IID15039 - __ adcq(r15, 256); // adc r15, 256 IID15040 - __ adcq(r15, 4096); // adc r15, 4096 IID15041 - __ adcq(r15, 65536); // adc r15, 65536 IID15042 - __ adcq(r15, 1048576); // adc r15, 1048576 IID15043 - __ adcq(r15, 16777216); // adc r15, 16777216 IID15044 - __ adcq(r15, 268435456); // adc r15, 268435456 IID15045 - __ adcq(r16, 1); // adc r16, 1 IID15046 - __ adcq(r16, 16); // adc r16, 16 IID15047 - __ adcq(r16, 256); // adc r16, 256 IID15048 - __ adcq(r16, 4096); // adc r16, 4096 IID15049 - __ adcq(r16, 65536); // adc r16, 65536 IID15050 - __ adcq(r16, 1048576); // adc r16, 1048576 IID15051 - __ adcq(r16, 16777216); // adc r16, 16777216 IID15052 - __ adcq(r16, 268435456); // adc r16, 268435456 IID15053 - __ adcq(r17, 1); // adc r17, 1 IID15054 - __ adcq(r17, 16); // adc r17, 16 IID15055 - __ adcq(r17, 256); // adc r17, 256 IID15056 - __ adcq(r17, 4096); // adc r17, 4096 IID15057 - __ adcq(r17, 65536); // adc r17, 65536 IID15058 - __ adcq(r17, 1048576); // adc r17, 1048576 IID15059 - __ adcq(r17, 16777216); // adc r17, 16777216 IID15060 - __ adcq(r17, 268435456); // adc r17, 268435456 IID15061 - __ adcq(r18, 1); // adc r18, 1 IID15062 - __ adcq(r18, 16); // adc r18, 16 IID15063 - __ adcq(r18, 256); // adc r18, 256 IID15064 - __ adcq(r18, 4096); // adc r18, 4096 IID15065 - __ adcq(r18, 65536); // adc r18, 65536 IID15066 - __ adcq(r18, 1048576); // adc r18, 1048576 IID15067 - __ adcq(r18, 16777216); // adc r18, 16777216 IID15068 - __ adcq(r18, 268435456); // adc r18, 268435456 IID15069 - __ adcq(r19, 1); // adc r19, 1 IID15070 - __ adcq(r19, 16); // adc r19, 16 IID15071 - __ adcq(r19, 256); // adc r19, 256 IID15072 - __ adcq(r19, 4096); // adc r19, 4096 IID15073 - __ adcq(r19, 65536); // adc r19, 65536 IID15074 - __ adcq(r19, 1048576); // adc r19, 1048576 IID15075 - __ adcq(r19, 16777216); // adc r19, 16777216 IID15076 - __ adcq(r19, 268435456); // adc r19, 268435456 IID15077 - __ adcq(r20, 1); // adc r20, 1 IID15078 - __ adcq(r20, 16); // adc r20, 16 IID15079 - __ adcq(r20, 256); // adc r20, 256 IID15080 - __ adcq(r20, 4096); // adc r20, 4096 IID15081 - __ adcq(r20, 65536); // adc r20, 65536 IID15082 - __ adcq(r20, 1048576); // adc r20, 1048576 IID15083 - __ adcq(r20, 16777216); // adc r20, 16777216 IID15084 - __ adcq(r20, 268435456); // adc r20, 268435456 IID15085 - __ adcq(r21, 1); // adc r21, 1 IID15086 - __ adcq(r21, 16); // adc r21, 16 IID15087 - __ adcq(r21, 256); // adc r21, 256 IID15088 - __ adcq(r21, 4096); // adc r21, 4096 IID15089 - __ adcq(r21, 65536); // adc r21, 65536 IID15090 - __ adcq(r21, 1048576); // adc r21, 1048576 IID15091 - __ adcq(r21, 16777216); // adc r21, 16777216 IID15092 - __ adcq(r21, 268435456); // adc r21, 268435456 IID15093 - __ adcq(r22, 1); // adc r22, 1 IID15094 - __ adcq(r22, 16); // adc r22, 16 IID15095 - __ adcq(r22, 256); // adc r22, 256 IID15096 - __ adcq(r22, 4096); // adc r22, 4096 IID15097 - __ adcq(r22, 65536); // adc r22, 65536 IID15098 - __ adcq(r22, 1048576); // adc r22, 1048576 IID15099 - __ adcq(r22, 16777216); // adc r22, 16777216 IID15100 - __ adcq(r22, 268435456); // adc r22, 268435456 IID15101 - __ adcq(r23, 1); // adc r23, 1 IID15102 - __ adcq(r23, 16); // adc r23, 16 IID15103 - __ adcq(r23, 256); // adc r23, 256 IID15104 - __ adcq(r23, 4096); // adc r23, 4096 IID15105 - __ adcq(r23, 65536); // adc r23, 65536 IID15106 - __ adcq(r23, 1048576); // adc r23, 1048576 IID15107 - __ adcq(r23, 16777216); // adc r23, 16777216 IID15108 - __ adcq(r23, 268435456); // adc r23, 268435456 IID15109 - __ adcq(r24, 1); // adc r24, 1 IID15110 - __ adcq(r24, 16); // adc r24, 16 IID15111 - __ adcq(r24, 256); // adc r24, 256 IID15112 - __ adcq(r24, 4096); // adc r24, 4096 IID15113 - __ adcq(r24, 65536); // adc r24, 65536 IID15114 - __ adcq(r24, 1048576); // adc r24, 1048576 IID15115 - __ adcq(r24, 16777216); // adc r24, 16777216 IID15116 - __ adcq(r24, 268435456); // adc r24, 268435456 IID15117 - __ adcq(r25, 1); // adc r25, 1 IID15118 - __ adcq(r25, 16); // adc r25, 16 IID15119 - __ adcq(r25, 256); // adc r25, 256 IID15120 - __ adcq(r25, 4096); // adc r25, 4096 IID15121 - __ adcq(r25, 65536); // adc r25, 65536 IID15122 - __ adcq(r25, 1048576); // adc r25, 1048576 IID15123 - __ adcq(r25, 16777216); // adc r25, 16777216 IID15124 - __ adcq(r25, 268435456); // adc r25, 268435456 IID15125 - __ adcq(r26, 1); // adc r26, 1 IID15126 - __ adcq(r26, 16); // adc r26, 16 IID15127 - __ adcq(r26, 256); // adc r26, 256 IID15128 - __ adcq(r26, 4096); // adc r26, 4096 IID15129 - __ adcq(r26, 65536); // adc r26, 65536 IID15130 - __ adcq(r26, 1048576); // adc r26, 1048576 IID15131 - __ adcq(r26, 16777216); // adc r26, 16777216 IID15132 - __ adcq(r26, 268435456); // adc r26, 268435456 IID15133 - __ adcq(r27, 1); // adc r27, 1 IID15134 - __ adcq(r27, 16); // adc r27, 16 IID15135 - __ adcq(r27, 256); // adc r27, 256 IID15136 - __ adcq(r27, 4096); // adc r27, 4096 IID15137 - __ adcq(r27, 65536); // adc r27, 65536 IID15138 - __ adcq(r27, 1048576); // adc r27, 1048576 IID15139 - __ adcq(r27, 16777216); // adc r27, 16777216 IID15140 - __ adcq(r27, 268435456); // adc r27, 268435456 IID15141 - __ adcq(r28, 1); // adc r28, 1 IID15142 - __ adcq(r28, 16); // adc r28, 16 IID15143 - __ adcq(r28, 256); // adc r28, 256 IID15144 - __ adcq(r28, 4096); // adc r28, 4096 IID15145 - __ adcq(r28, 65536); // adc r28, 65536 IID15146 - __ adcq(r28, 1048576); // adc r28, 1048576 IID15147 - __ adcq(r28, 16777216); // adc r28, 16777216 IID15148 - __ adcq(r28, 268435456); // adc r28, 268435456 IID15149 - __ adcq(r29, 1); // adc r29, 1 IID15150 - __ adcq(r29, 16); // adc r29, 16 IID15151 - __ adcq(r29, 256); // adc r29, 256 IID15152 - __ adcq(r29, 4096); // adc r29, 4096 IID15153 - __ adcq(r29, 65536); // adc r29, 65536 IID15154 - __ adcq(r29, 1048576); // adc r29, 1048576 IID15155 - __ adcq(r29, 16777216); // adc r29, 16777216 IID15156 - __ adcq(r29, 268435456); // adc r29, 268435456 IID15157 - __ adcq(r30, 1); // adc r30, 1 IID15158 - __ adcq(r30, 16); // adc r30, 16 IID15159 - __ adcq(r30, 256); // adc r30, 256 IID15160 - __ adcq(r30, 4096); // adc r30, 4096 IID15161 - __ adcq(r30, 65536); // adc r30, 65536 IID15162 - __ adcq(r30, 1048576); // adc r30, 1048576 IID15163 - __ adcq(r30, 16777216); // adc r30, 16777216 IID15164 - __ adcq(r30, 268435456); // adc r30, 268435456 IID15165 - __ adcq(r31, 1); // adc r31, 1 IID15166 - __ adcq(r31, 16); // adc r31, 16 IID15167 - __ adcq(r31, 256); // adc r31, 256 IID15168 - __ adcq(r31, 4096); // adc r31, 4096 IID15169 - __ adcq(r31, 65536); // adc r31, 65536 IID15170 - __ adcq(r31, 1048576); // adc r31, 1048576 IID15171 - __ adcq(r31, 16777216); // adc r31, 16777216 IID15172 - __ adcq(r31, 268435456); // adc r31, 268435456 IID15173 - __ cmpq(rcx, 1); // cmp rcx, 1 IID15174 - __ cmpq(rcx, 16); // cmp rcx, 16 IID15175 - __ cmpq(rcx, 256); // cmp rcx, 256 IID15176 - __ cmpq(rcx, 4096); // cmp rcx, 4096 IID15177 - __ cmpq(rcx, 65536); // cmp rcx, 65536 IID15178 - __ cmpq(rcx, 1048576); // cmp rcx, 1048576 IID15179 - __ cmpq(rcx, 16777216); // cmp rcx, 16777216 IID15180 - __ cmpq(rcx, 268435456); // cmp rcx, 268435456 IID15181 - __ cmpq(rdx, 1); // cmp rdx, 1 IID15182 - __ cmpq(rdx, 16); // cmp rdx, 16 IID15183 - __ cmpq(rdx, 256); // cmp rdx, 256 IID15184 - __ cmpq(rdx, 4096); // cmp rdx, 4096 IID15185 - __ cmpq(rdx, 65536); // cmp rdx, 65536 IID15186 - __ cmpq(rdx, 1048576); // cmp rdx, 1048576 IID15187 - __ cmpq(rdx, 16777216); // cmp rdx, 16777216 IID15188 - __ cmpq(rdx, 268435456); // cmp rdx, 268435456 IID15189 - __ cmpq(rbx, 1); // cmp rbx, 1 IID15190 - __ cmpq(rbx, 16); // cmp rbx, 16 IID15191 - __ cmpq(rbx, 256); // cmp rbx, 256 IID15192 - __ cmpq(rbx, 4096); // cmp rbx, 4096 IID15193 - __ cmpq(rbx, 65536); // cmp rbx, 65536 IID15194 - __ cmpq(rbx, 1048576); // cmp rbx, 1048576 IID15195 - __ cmpq(rbx, 16777216); // cmp rbx, 16777216 IID15196 - __ cmpq(rbx, 268435456); // cmp rbx, 268435456 IID15197 - __ cmpq(r8, 1); // cmp r8, 1 IID15198 - __ cmpq(r8, 16); // cmp r8, 16 IID15199 - __ cmpq(r8, 256); // cmp r8, 256 IID15200 - __ cmpq(r8, 4096); // cmp r8, 4096 IID15201 - __ cmpq(r8, 65536); // cmp r8, 65536 IID15202 - __ cmpq(r8, 1048576); // cmp r8, 1048576 IID15203 - __ cmpq(r8, 16777216); // cmp r8, 16777216 IID15204 - __ cmpq(r8, 268435456); // cmp r8, 268435456 IID15205 - __ cmpq(r9, 1); // cmp r9, 1 IID15206 - __ cmpq(r9, 16); // cmp r9, 16 IID15207 - __ cmpq(r9, 256); // cmp r9, 256 IID15208 - __ cmpq(r9, 4096); // cmp r9, 4096 IID15209 - __ cmpq(r9, 65536); // cmp r9, 65536 IID15210 - __ cmpq(r9, 1048576); // cmp r9, 1048576 IID15211 - __ cmpq(r9, 16777216); // cmp r9, 16777216 IID15212 - __ cmpq(r9, 268435456); // cmp r9, 268435456 IID15213 - __ cmpq(r10, 1); // cmp r10, 1 IID15214 - __ cmpq(r10, 16); // cmp r10, 16 IID15215 - __ cmpq(r10, 256); // cmp r10, 256 IID15216 - __ cmpq(r10, 4096); // cmp r10, 4096 IID15217 - __ cmpq(r10, 65536); // cmp r10, 65536 IID15218 - __ cmpq(r10, 1048576); // cmp r10, 1048576 IID15219 - __ cmpq(r10, 16777216); // cmp r10, 16777216 IID15220 - __ cmpq(r10, 268435456); // cmp r10, 268435456 IID15221 - __ cmpq(r11, 1); // cmp r11, 1 IID15222 - __ cmpq(r11, 16); // cmp r11, 16 IID15223 - __ cmpq(r11, 256); // cmp r11, 256 IID15224 - __ cmpq(r11, 4096); // cmp r11, 4096 IID15225 - __ cmpq(r11, 65536); // cmp r11, 65536 IID15226 - __ cmpq(r11, 1048576); // cmp r11, 1048576 IID15227 - __ cmpq(r11, 16777216); // cmp r11, 16777216 IID15228 - __ cmpq(r11, 268435456); // cmp r11, 268435456 IID15229 - __ cmpq(r12, 1); // cmp r12, 1 IID15230 - __ cmpq(r12, 16); // cmp r12, 16 IID15231 - __ cmpq(r12, 256); // cmp r12, 256 IID15232 - __ cmpq(r12, 4096); // cmp r12, 4096 IID15233 - __ cmpq(r12, 65536); // cmp r12, 65536 IID15234 - __ cmpq(r12, 1048576); // cmp r12, 1048576 IID15235 - __ cmpq(r12, 16777216); // cmp r12, 16777216 IID15236 - __ cmpq(r12, 268435456); // cmp r12, 268435456 IID15237 - __ cmpq(r13, 1); // cmp r13, 1 IID15238 - __ cmpq(r13, 16); // cmp r13, 16 IID15239 - __ cmpq(r13, 256); // cmp r13, 256 IID15240 - __ cmpq(r13, 4096); // cmp r13, 4096 IID15241 - __ cmpq(r13, 65536); // cmp r13, 65536 IID15242 - __ cmpq(r13, 1048576); // cmp r13, 1048576 IID15243 - __ cmpq(r13, 16777216); // cmp r13, 16777216 IID15244 - __ cmpq(r13, 268435456); // cmp r13, 268435456 IID15245 - __ cmpq(r14, 1); // cmp r14, 1 IID15246 - __ cmpq(r14, 16); // cmp r14, 16 IID15247 - __ cmpq(r14, 256); // cmp r14, 256 IID15248 - __ cmpq(r14, 4096); // cmp r14, 4096 IID15249 - __ cmpq(r14, 65536); // cmp r14, 65536 IID15250 - __ cmpq(r14, 1048576); // cmp r14, 1048576 IID15251 - __ cmpq(r14, 16777216); // cmp r14, 16777216 IID15252 - __ cmpq(r14, 268435456); // cmp r14, 268435456 IID15253 - __ cmpq(r15, 1); // cmp r15, 1 IID15254 - __ cmpq(r15, 16); // cmp r15, 16 IID15255 - __ cmpq(r15, 256); // cmp r15, 256 IID15256 - __ cmpq(r15, 4096); // cmp r15, 4096 IID15257 - __ cmpq(r15, 65536); // cmp r15, 65536 IID15258 - __ cmpq(r15, 1048576); // cmp r15, 1048576 IID15259 - __ cmpq(r15, 16777216); // cmp r15, 16777216 IID15260 - __ cmpq(r15, 268435456); // cmp r15, 268435456 IID15261 - __ cmpq(r16, 1); // cmp r16, 1 IID15262 - __ cmpq(r16, 16); // cmp r16, 16 IID15263 - __ cmpq(r16, 256); // cmp r16, 256 IID15264 - __ cmpq(r16, 4096); // cmp r16, 4096 IID15265 - __ cmpq(r16, 65536); // cmp r16, 65536 IID15266 - __ cmpq(r16, 1048576); // cmp r16, 1048576 IID15267 - __ cmpq(r16, 16777216); // cmp r16, 16777216 IID15268 - __ cmpq(r16, 268435456); // cmp r16, 268435456 IID15269 - __ cmpq(r17, 1); // cmp r17, 1 IID15270 - __ cmpq(r17, 16); // cmp r17, 16 IID15271 - __ cmpq(r17, 256); // cmp r17, 256 IID15272 - __ cmpq(r17, 4096); // cmp r17, 4096 IID15273 - __ cmpq(r17, 65536); // cmp r17, 65536 IID15274 - __ cmpq(r17, 1048576); // cmp r17, 1048576 IID15275 - __ cmpq(r17, 16777216); // cmp r17, 16777216 IID15276 - __ cmpq(r17, 268435456); // cmp r17, 268435456 IID15277 - __ cmpq(r18, 1); // cmp r18, 1 IID15278 - __ cmpq(r18, 16); // cmp r18, 16 IID15279 - __ cmpq(r18, 256); // cmp r18, 256 IID15280 - __ cmpq(r18, 4096); // cmp r18, 4096 IID15281 - __ cmpq(r18, 65536); // cmp r18, 65536 IID15282 - __ cmpq(r18, 1048576); // cmp r18, 1048576 IID15283 - __ cmpq(r18, 16777216); // cmp r18, 16777216 IID15284 - __ cmpq(r18, 268435456); // cmp r18, 268435456 IID15285 - __ cmpq(r19, 1); // cmp r19, 1 IID15286 - __ cmpq(r19, 16); // cmp r19, 16 IID15287 - __ cmpq(r19, 256); // cmp r19, 256 IID15288 - __ cmpq(r19, 4096); // cmp r19, 4096 IID15289 - __ cmpq(r19, 65536); // cmp r19, 65536 IID15290 - __ cmpq(r19, 1048576); // cmp r19, 1048576 IID15291 - __ cmpq(r19, 16777216); // cmp r19, 16777216 IID15292 - __ cmpq(r19, 268435456); // cmp r19, 268435456 IID15293 - __ cmpq(r20, 1); // cmp r20, 1 IID15294 - __ cmpq(r20, 16); // cmp r20, 16 IID15295 - __ cmpq(r20, 256); // cmp r20, 256 IID15296 - __ cmpq(r20, 4096); // cmp r20, 4096 IID15297 - __ cmpq(r20, 65536); // cmp r20, 65536 IID15298 - __ cmpq(r20, 1048576); // cmp r20, 1048576 IID15299 - __ cmpq(r20, 16777216); // cmp r20, 16777216 IID15300 - __ cmpq(r20, 268435456); // cmp r20, 268435456 IID15301 - __ cmpq(r21, 1); // cmp r21, 1 IID15302 - __ cmpq(r21, 16); // cmp r21, 16 IID15303 - __ cmpq(r21, 256); // cmp r21, 256 IID15304 - __ cmpq(r21, 4096); // cmp r21, 4096 IID15305 - __ cmpq(r21, 65536); // cmp r21, 65536 IID15306 - __ cmpq(r21, 1048576); // cmp r21, 1048576 IID15307 - __ cmpq(r21, 16777216); // cmp r21, 16777216 IID15308 - __ cmpq(r21, 268435456); // cmp r21, 268435456 IID15309 - __ cmpq(r22, 1); // cmp r22, 1 IID15310 - __ cmpq(r22, 16); // cmp r22, 16 IID15311 - __ cmpq(r22, 256); // cmp r22, 256 IID15312 - __ cmpq(r22, 4096); // cmp r22, 4096 IID15313 - __ cmpq(r22, 65536); // cmp r22, 65536 IID15314 - __ cmpq(r22, 1048576); // cmp r22, 1048576 IID15315 - __ cmpq(r22, 16777216); // cmp r22, 16777216 IID15316 - __ cmpq(r22, 268435456); // cmp r22, 268435456 IID15317 - __ cmpq(r23, 1); // cmp r23, 1 IID15318 - __ cmpq(r23, 16); // cmp r23, 16 IID15319 - __ cmpq(r23, 256); // cmp r23, 256 IID15320 - __ cmpq(r23, 4096); // cmp r23, 4096 IID15321 - __ cmpq(r23, 65536); // cmp r23, 65536 IID15322 - __ cmpq(r23, 1048576); // cmp r23, 1048576 IID15323 - __ cmpq(r23, 16777216); // cmp r23, 16777216 IID15324 - __ cmpq(r23, 268435456); // cmp r23, 268435456 IID15325 - __ cmpq(r24, 1); // cmp r24, 1 IID15326 - __ cmpq(r24, 16); // cmp r24, 16 IID15327 - __ cmpq(r24, 256); // cmp r24, 256 IID15328 - __ cmpq(r24, 4096); // cmp r24, 4096 IID15329 - __ cmpq(r24, 65536); // cmp r24, 65536 IID15330 - __ cmpq(r24, 1048576); // cmp r24, 1048576 IID15331 - __ cmpq(r24, 16777216); // cmp r24, 16777216 IID15332 - __ cmpq(r24, 268435456); // cmp r24, 268435456 IID15333 - __ cmpq(r25, 1); // cmp r25, 1 IID15334 - __ cmpq(r25, 16); // cmp r25, 16 IID15335 - __ cmpq(r25, 256); // cmp r25, 256 IID15336 - __ cmpq(r25, 4096); // cmp r25, 4096 IID15337 - __ cmpq(r25, 65536); // cmp r25, 65536 IID15338 - __ cmpq(r25, 1048576); // cmp r25, 1048576 IID15339 - __ cmpq(r25, 16777216); // cmp r25, 16777216 IID15340 - __ cmpq(r25, 268435456); // cmp r25, 268435456 IID15341 - __ cmpq(r26, 1); // cmp r26, 1 IID15342 - __ cmpq(r26, 16); // cmp r26, 16 IID15343 - __ cmpq(r26, 256); // cmp r26, 256 IID15344 - __ cmpq(r26, 4096); // cmp r26, 4096 IID15345 - __ cmpq(r26, 65536); // cmp r26, 65536 IID15346 - __ cmpq(r26, 1048576); // cmp r26, 1048576 IID15347 - __ cmpq(r26, 16777216); // cmp r26, 16777216 IID15348 - __ cmpq(r26, 268435456); // cmp r26, 268435456 IID15349 - __ cmpq(r27, 1); // cmp r27, 1 IID15350 - __ cmpq(r27, 16); // cmp r27, 16 IID15351 - __ cmpq(r27, 256); // cmp r27, 256 IID15352 - __ cmpq(r27, 4096); // cmp r27, 4096 IID15353 - __ cmpq(r27, 65536); // cmp r27, 65536 IID15354 - __ cmpq(r27, 1048576); // cmp r27, 1048576 IID15355 - __ cmpq(r27, 16777216); // cmp r27, 16777216 IID15356 - __ cmpq(r27, 268435456); // cmp r27, 268435456 IID15357 - __ cmpq(r28, 1); // cmp r28, 1 IID15358 - __ cmpq(r28, 16); // cmp r28, 16 IID15359 - __ cmpq(r28, 256); // cmp r28, 256 IID15360 - __ cmpq(r28, 4096); // cmp r28, 4096 IID15361 - __ cmpq(r28, 65536); // cmp r28, 65536 IID15362 - __ cmpq(r28, 1048576); // cmp r28, 1048576 IID15363 - __ cmpq(r28, 16777216); // cmp r28, 16777216 IID15364 - __ cmpq(r28, 268435456); // cmp r28, 268435456 IID15365 - __ cmpq(r29, 1); // cmp r29, 1 IID15366 - __ cmpq(r29, 16); // cmp r29, 16 IID15367 - __ cmpq(r29, 256); // cmp r29, 256 IID15368 - __ cmpq(r29, 4096); // cmp r29, 4096 IID15369 - __ cmpq(r29, 65536); // cmp r29, 65536 IID15370 - __ cmpq(r29, 1048576); // cmp r29, 1048576 IID15371 - __ cmpq(r29, 16777216); // cmp r29, 16777216 IID15372 - __ cmpq(r29, 268435456); // cmp r29, 268435456 IID15373 - __ cmpq(r30, 1); // cmp r30, 1 IID15374 - __ cmpq(r30, 16); // cmp r30, 16 IID15375 - __ cmpq(r30, 256); // cmp r30, 256 IID15376 - __ cmpq(r30, 4096); // cmp r30, 4096 IID15377 - __ cmpq(r30, 65536); // cmp r30, 65536 IID15378 - __ cmpq(r30, 1048576); // cmp r30, 1048576 IID15379 - __ cmpq(r30, 16777216); // cmp r30, 16777216 IID15380 - __ cmpq(r30, 268435456); // cmp r30, 268435456 IID15381 - __ cmpq(r31, 1); // cmp r31, 1 IID15382 - __ cmpq(r31, 16); // cmp r31, 16 IID15383 - __ cmpq(r31, 256); // cmp r31, 256 IID15384 - __ cmpq(r31, 4096); // cmp r31, 4096 IID15385 - __ cmpq(r31, 65536); // cmp r31, 65536 IID15386 - __ cmpq(r31, 1048576); // cmp r31, 1048576 IID15387 - __ cmpq(r31, 16777216); // cmp r31, 16777216 IID15388 - __ cmpq(r31, 268435456); // cmp r31, 268435456 IID15389 - __ rclq(rcx, 1); // rcl rcx, 1 IID15390 - __ rclq(rcx, 2); // rcl rcx, 2 IID15391 - __ rclq(rcx, 4); // rcl rcx, 4 IID15392 - __ rclq(rcx, 8); // rcl rcx, 8 IID15393 - __ rclq(rcx, 16); // rcl rcx, 16 IID15394 - __ rclq(rdx, 1); // rcl rdx, 1 IID15395 - __ rclq(rdx, 2); // rcl rdx, 2 IID15396 - __ rclq(rdx, 4); // rcl rdx, 4 IID15397 - __ rclq(rdx, 8); // rcl rdx, 8 IID15398 - __ rclq(rdx, 16); // rcl rdx, 16 IID15399 - __ rclq(rbx, 1); // rcl rbx, 1 IID15400 - __ rclq(rbx, 2); // rcl rbx, 2 IID15401 - __ rclq(rbx, 4); // rcl rbx, 4 IID15402 - __ rclq(rbx, 8); // rcl rbx, 8 IID15403 - __ rclq(rbx, 16); // rcl rbx, 16 IID15404 - __ rclq(r8, 1); // rcl r8, 1 IID15405 - __ rclq(r8, 2); // rcl r8, 2 IID15406 - __ rclq(r8, 4); // rcl r8, 4 IID15407 - __ rclq(r8, 8); // rcl r8, 8 IID15408 - __ rclq(r8, 16); // rcl r8, 16 IID15409 - __ rclq(r9, 1); // rcl r9, 1 IID15410 - __ rclq(r9, 2); // rcl r9, 2 IID15411 - __ rclq(r9, 4); // rcl r9, 4 IID15412 - __ rclq(r9, 8); // rcl r9, 8 IID15413 - __ rclq(r9, 16); // rcl r9, 16 IID15414 - __ rclq(r10, 1); // rcl r10, 1 IID15415 - __ rclq(r10, 2); // rcl r10, 2 IID15416 - __ rclq(r10, 4); // rcl r10, 4 IID15417 - __ rclq(r10, 8); // rcl r10, 8 IID15418 - __ rclq(r10, 16); // rcl r10, 16 IID15419 - __ rclq(r11, 1); // rcl r11, 1 IID15420 - __ rclq(r11, 2); // rcl r11, 2 IID15421 - __ rclq(r11, 4); // rcl r11, 4 IID15422 - __ rclq(r11, 8); // rcl r11, 8 IID15423 - __ rclq(r11, 16); // rcl r11, 16 IID15424 - __ rclq(r12, 1); // rcl r12, 1 IID15425 - __ rclq(r12, 2); // rcl r12, 2 IID15426 - __ rclq(r12, 4); // rcl r12, 4 IID15427 - __ rclq(r12, 8); // rcl r12, 8 IID15428 - __ rclq(r12, 16); // rcl r12, 16 IID15429 - __ rclq(r13, 1); // rcl r13, 1 IID15430 - __ rclq(r13, 2); // rcl r13, 2 IID15431 - __ rclq(r13, 4); // rcl r13, 4 IID15432 - __ rclq(r13, 8); // rcl r13, 8 IID15433 - __ rclq(r13, 16); // rcl r13, 16 IID15434 - __ rclq(r14, 1); // rcl r14, 1 IID15435 - __ rclq(r14, 2); // rcl r14, 2 IID15436 - __ rclq(r14, 4); // rcl r14, 4 IID15437 - __ rclq(r14, 8); // rcl r14, 8 IID15438 - __ rclq(r14, 16); // rcl r14, 16 IID15439 - __ rclq(r15, 1); // rcl r15, 1 IID15440 - __ rclq(r15, 2); // rcl r15, 2 IID15441 - __ rclq(r15, 4); // rcl r15, 4 IID15442 - __ rclq(r15, 8); // rcl r15, 8 IID15443 - __ rclq(r15, 16); // rcl r15, 16 IID15444 - __ rclq(r16, 1); // rcl r16, 1 IID15445 - __ rclq(r16, 2); // rcl r16, 2 IID15446 - __ rclq(r16, 4); // rcl r16, 4 IID15447 - __ rclq(r16, 8); // rcl r16, 8 IID15448 - __ rclq(r16, 16); // rcl r16, 16 IID15449 - __ rclq(r17, 1); // rcl r17, 1 IID15450 - __ rclq(r17, 2); // rcl r17, 2 IID15451 - __ rclq(r17, 4); // rcl r17, 4 IID15452 - __ rclq(r17, 8); // rcl r17, 8 IID15453 - __ rclq(r17, 16); // rcl r17, 16 IID15454 - __ rclq(r18, 1); // rcl r18, 1 IID15455 - __ rclq(r18, 2); // rcl r18, 2 IID15456 - __ rclq(r18, 4); // rcl r18, 4 IID15457 - __ rclq(r18, 8); // rcl r18, 8 IID15458 - __ rclq(r18, 16); // rcl r18, 16 IID15459 - __ rclq(r19, 1); // rcl r19, 1 IID15460 - __ rclq(r19, 2); // rcl r19, 2 IID15461 - __ rclq(r19, 4); // rcl r19, 4 IID15462 - __ rclq(r19, 8); // rcl r19, 8 IID15463 - __ rclq(r19, 16); // rcl r19, 16 IID15464 - __ rclq(r20, 1); // rcl r20, 1 IID15465 - __ rclq(r20, 2); // rcl r20, 2 IID15466 - __ rclq(r20, 4); // rcl r20, 4 IID15467 - __ rclq(r20, 8); // rcl r20, 8 IID15468 - __ rclq(r20, 16); // rcl r20, 16 IID15469 - __ rclq(r21, 1); // rcl r21, 1 IID15470 - __ rclq(r21, 2); // rcl r21, 2 IID15471 - __ rclq(r21, 4); // rcl r21, 4 IID15472 - __ rclq(r21, 8); // rcl r21, 8 IID15473 - __ rclq(r21, 16); // rcl r21, 16 IID15474 - __ rclq(r22, 1); // rcl r22, 1 IID15475 - __ rclq(r22, 2); // rcl r22, 2 IID15476 - __ rclq(r22, 4); // rcl r22, 4 IID15477 - __ rclq(r22, 8); // rcl r22, 8 IID15478 - __ rclq(r22, 16); // rcl r22, 16 IID15479 - __ rclq(r23, 1); // rcl r23, 1 IID15480 - __ rclq(r23, 2); // rcl r23, 2 IID15481 - __ rclq(r23, 4); // rcl r23, 4 IID15482 - __ rclq(r23, 8); // rcl r23, 8 IID15483 - __ rclq(r23, 16); // rcl r23, 16 IID15484 - __ rclq(r24, 1); // rcl r24, 1 IID15485 - __ rclq(r24, 2); // rcl r24, 2 IID15486 - __ rclq(r24, 4); // rcl r24, 4 IID15487 - __ rclq(r24, 8); // rcl r24, 8 IID15488 - __ rclq(r24, 16); // rcl r24, 16 IID15489 - __ rclq(r25, 1); // rcl r25, 1 IID15490 - __ rclq(r25, 2); // rcl r25, 2 IID15491 - __ rclq(r25, 4); // rcl r25, 4 IID15492 - __ rclq(r25, 8); // rcl r25, 8 IID15493 - __ rclq(r25, 16); // rcl r25, 16 IID15494 - __ rclq(r26, 1); // rcl r26, 1 IID15495 - __ rclq(r26, 2); // rcl r26, 2 IID15496 - __ rclq(r26, 4); // rcl r26, 4 IID15497 - __ rclq(r26, 8); // rcl r26, 8 IID15498 - __ rclq(r26, 16); // rcl r26, 16 IID15499 - __ rclq(r27, 1); // rcl r27, 1 IID15500 - __ rclq(r27, 2); // rcl r27, 2 IID15501 - __ rclq(r27, 4); // rcl r27, 4 IID15502 - __ rclq(r27, 8); // rcl r27, 8 IID15503 - __ rclq(r27, 16); // rcl r27, 16 IID15504 - __ rclq(r28, 1); // rcl r28, 1 IID15505 - __ rclq(r28, 2); // rcl r28, 2 IID15506 - __ rclq(r28, 4); // rcl r28, 4 IID15507 - __ rclq(r28, 8); // rcl r28, 8 IID15508 - __ rclq(r28, 16); // rcl r28, 16 IID15509 - __ rclq(r29, 1); // rcl r29, 1 IID15510 - __ rclq(r29, 2); // rcl r29, 2 IID15511 - __ rclq(r29, 4); // rcl r29, 4 IID15512 - __ rclq(r29, 8); // rcl r29, 8 IID15513 - __ rclq(r29, 16); // rcl r29, 16 IID15514 - __ rclq(r30, 1); // rcl r30, 1 IID15515 - __ rclq(r30, 2); // rcl r30, 2 IID15516 - __ rclq(r30, 4); // rcl r30, 4 IID15517 - __ rclq(r30, 8); // rcl r30, 8 IID15518 - __ rclq(r30, 16); // rcl r30, 16 IID15519 - __ rclq(r31, 1); // rcl r31, 1 IID15520 - __ rclq(r31, 2); // rcl r31, 2 IID15521 - __ rclq(r31, 4); // rcl r31, 4 IID15522 - __ rclq(r31, 8); // rcl r31, 8 IID15523 - __ rclq(r31, 16); // rcl r31, 16 IID15524 - __ rcrq(rcx, 1); // rcr rcx, 1 IID15525 - __ rcrq(rcx, 2); // rcr rcx, 2 IID15526 - __ rcrq(rcx, 4); // rcr rcx, 4 IID15527 - __ rcrq(rcx, 8); // rcr rcx, 8 IID15528 - __ rcrq(rcx, 16); // rcr rcx, 16 IID15529 - __ rcrq(rdx, 1); // rcr rdx, 1 IID15530 - __ rcrq(rdx, 2); // rcr rdx, 2 IID15531 - __ rcrq(rdx, 4); // rcr rdx, 4 IID15532 - __ rcrq(rdx, 8); // rcr rdx, 8 IID15533 - __ rcrq(rdx, 16); // rcr rdx, 16 IID15534 - __ rcrq(rbx, 1); // rcr rbx, 1 IID15535 - __ rcrq(rbx, 2); // rcr rbx, 2 IID15536 - __ rcrq(rbx, 4); // rcr rbx, 4 IID15537 - __ rcrq(rbx, 8); // rcr rbx, 8 IID15538 - __ rcrq(rbx, 16); // rcr rbx, 16 IID15539 - __ rcrq(r8, 1); // rcr r8, 1 IID15540 - __ rcrq(r8, 2); // rcr r8, 2 IID15541 - __ rcrq(r8, 4); // rcr r8, 4 IID15542 - __ rcrq(r8, 8); // rcr r8, 8 IID15543 - __ rcrq(r8, 16); // rcr r8, 16 IID15544 - __ rcrq(r9, 1); // rcr r9, 1 IID15545 - __ rcrq(r9, 2); // rcr r9, 2 IID15546 - __ rcrq(r9, 4); // rcr r9, 4 IID15547 - __ rcrq(r9, 8); // rcr r9, 8 IID15548 - __ rcrq(r9, 16); // rcr r9, 16 IID15549 - __ rcrq(r10, 1); // rcr r10, 1 IID15550 - __ rcrq(r10, 2); // rcr r10, 2 IID15551 - __ rcrq(r10, 4); // rcr r10, 4 IID15552 - __ rcrq(r10, 8); // rcr r10, 8 IID15553 - __ rcrq(r10, 16); // rcr r10, 16 IID15554 - __ rcrq(r11, 1); // rcr r11, 1 IID15555 - __ rcrq(r11, 2); // rcr r11, 2 IID15556 - __ rcrq(r11, 4); // rcr r11, 4 IID15557 - __ rcrq(r11, 8); // rcr r11, 8 IID15558 - __ rcrq(r11, 16); // rcr r11, 16 IID15559 - __ rcrq(r12, 1); // rcr r12, 1 IID15560 - __ rcrq(r12, 2); // rcr r12, 2 IID15561 - __ rcrq(r12, 4); // rcr r12, 4 IID15562 - __ rcrq(r12, 8); // rcr r12, 8 IID15563 - __ rcrq(r12, 16); // rcr r12, 16 IID15564 - __ rcrq(r13, 1); // rcr r13, 1 IID15565 - __ rcrq(r13, 2); // rcr r13, 2 IID15566 - __ rcrq(r13, 4); // rcr r13, 4 IID15567 - __ rcrq(r13, 8); // rcr r13, 8 IID15568 - __ rcrq(r13, 16); // rcr r13, 16 IID15569 - __ rcrq(r14, 1); // rcr r14, 1 IID15570 - __ rcrq(r14, 2); // rcr r14, 2 IID15571 - __ rcrq(r14, 4); // rcr r14, 4 IID15572 - __ rcrq(r14, 8); // rcr r14, 8 IID15573 - __ rcrq(r14, 16); // rcr r14, 16 IID15574 - __ rcrq(r15, 1); // rcr r15, 1 IID15575 - __ rcrq(r15, 2); // rcr r15, 2 IID15576 - __ rcrq(r15, 4); // rcr r15, 4 IID15577 - __ rcrq(r15, 8); // rcr r15, 8 IID15578 - __ rcrq(r15, 16); // rcr r15, 16 IID15579 - __ rcrq(r16, 1); // rcr r16, 1 IID15580 - __ rcrq(r16, 2); // rcr r16, 2 IID15581 - __ rcrq(r16, 4); // rcr r16, 4 IID15582 - __ rcrq(r16, 8); // rcr r16, 8 IID15583 - __ rcrq(r16, 16); // rcr r16, 16 IID15584 - __ rcrq(r17, 1); // rcr r17, 1 IID15585 - __ rcrq(r17, 2); // rcr r17, 2 IID15586 - __ rcrq(r17, 4); // rcr r17, 4 IID15587 - __ rcrq(r17, 8); // rcr r17, 8 IID15588 - __ rcrq(r17, 16); // rcr r17, 16 IID15589 - __ rcrq(r18, 1); // rcr r18, 1 IID15590 - __ rcrq(r18, 2); // rcr r18, 2 IID15591 - __ rcrq(r18, 4); // rcr r18, 4 IID15592 - __ rcrq(r18, 8); // rcr r18, 8 IID15593 - __ rcrq(r18, 16); // rcr r18, 16 IID15594 - __ rcrq(r19, 1); // rcr r19, 1 IID15595 - __ rcrq(r19, 2); // rcr r19, 2 IID15596 - __ rcrq(r19, 4); // rcr r19, 4 IID15597 - __ rcrq(r19, 8); // rcr r19, 8 IID15598 - __ rcrq(r19, 16); // rcr r19, 16 IID15599 - __ rcrq(r20, 1); // rcr r20, 1 IID15600 - __ rcrq(r20, 2); // rcr r20, 2 IID15601 - __ rcrq(r20, 4); // rcr r20, 4 IID15602 - __ rcrq(r20, 8); // rcr r20, 8 IID15603 - __ rcrq(r20, 16); // rcr r20, 16 IID15604 - __ rcrq(r21, 1); // rcr r21, 1 IID15605 - __ rcrq(r21, 2); // rcr r21, 2 IID15606 - __ rcrq(r21, 4); // rcr r21, 4 IID15607 - __ rcrq(r21, 8); // rcr r21, 8 IID15608 - __ rcrq(r21, 16); // rcr r21, 16 IID15609 - __ rcrq(r22, 1); // rcr r22, 1 IID15610 - __ rcrq(r22, 2); // rcr r22, 2 IID15611 - __ rcrq(r22, 4); // rcr r22, 4 IID15612 - __ rcrq(r22, 8); // rcr r22, 8 IID15613 - __ rcrq(r22, 16); // rcr r22, 16 IID15614 - __ rcrq(r23, 1); // rcr r23, 1 IID15615 - __ rcrq(r23, 2); // rcr r23, 2 IID15616 - __ rcrq(r23, 4); // rcr r23, 4 IID15617 - __ rcrq(r23, 8); // rcr r23, 8 IID15618 - __ rcrq(r23, 16); // rcr r23, 16 IID15619 - __ rcrq(r24, 1); // rcr r24, 1 IID15620 - __ rcrq(r24, 2); // rcr r24, 2 IID15621 - __ rcrq(r24, 4); // rcr r24, 4 IID15622 - __ rcrq(r24, 8); // rcr r24, 8 IID15623 - __ rcrq(r24, 16); // rcr r24, 16 IID15624 - __ rcrq(r25, 1); // rcr r25, 1 IID15625 - __ rcrq(r25, 2); // rcr r25, 2 IID15626 - __ rcrq(r25, 4); // rcr r25, 4 IID15627 - __ rcrq(r25, 8); // rcr r25, 8 IID15628 - __ rcrq(r25, 16); // rcr r25, 16 IID15629 - __ rcrq(r26, 1); // rcr r26, 1 IID15630 - __ rcrq(r26, 2); // rcr r26, 2 IID15631 - __ rcrq(r26, 4); // rcr r26, 4 IID15632 - __ rcrq(r26, 8); // rcr r26, 8 IID15633 - __ rcrq(r26, 16); // rcr r26, 16 IID15634 - __ rcrq(r27, 1); // rcr r27, 1 IID15635 - __ rcrq(r27, 2); // rcr r27, 2 IID15636 - __ rcrq(r27, 4); // rcr r27, 4 IID15637 - __ rcrq(r27, 8); // rcr r27, 8 IID15638 - __ rcrq(r27, 16); // rcr r27, 16 IID15639 - __ rcrq(r28, 1); // rcr r28, 1 IID15640 - __ rcrq(r28, 2); // rcr r28, 2 IID15641 - __ rcrq(r28, 4); // rcr r28, 4 IID15642 - __ rcrq(r28, 8); // rcr r28, 8 IID15643 - __ rcrq(r28, 16); // rcr r28, 16 IID15644 - __ rcrq(r29, 1); // rcr r29, 1 IID15645 - __ rcrq(r29, 2); // rcr r29, 2 IID15646 - __ rcrq(r29, 4); // rcr r29, 4 IID15647 - __ rcrq(r29, 8); // rcr r29, 8 IID15648 - __ rcrq(r29, 16); // rcr r29, 16 IID15649 - __ rcrq(r30, 1); // rcr r30, 1 IID15650 - __ rcrq(r30, 2); // rcr r30, 2 IID15651 - __ rcrq(r30, 4); // rcr r30, 4 IID15652 - __ rcrq(r30, 8); // rcr r30, 8 IID15653 - __ rcrq(r30, 16); // rcr r30, 16 IID15654 - __ rcrq(r31, 1); // rcr r31, 1 IID15655 - __ rcrq(r31, 2); // rcr r31, 2 IID15656 - __ rcrq(r31, 4); // rcr r31, 4 IID15657 - __ rcrq(r31, 8); // rcr r31, 8 IID15658 - __ rcrq(r31, 16); // rcr r31, 16 IID15659 - __ rolq(rcx, 1); // rol rcx, 1 IID15660 - __ rolq(rcx, 2); // rol rcx, 2 IID15661 - __ rolq(rcx, 4); // rol rcx, 4 IID15662 - __ rolq(rcx, 8); // rol rcx, 8 IID15663 - __ rolq(rcx, 16); // rol rcx, 16 IID15664 - __ rolq(rdx, 1); // rol rdx, 1 IID15665 - __ rolq(rdx, 2); // rol rdx, 2 IID15666 - __ rolq(rdx, 4); // rol rdx, 4 IID15667 - __ rolq(rdx, 8); // rol rdx, 8 IID15668 - __ rolq(rdx, 16); // rol rdx, 16 IID15669 - __ rolq(rbx, 1); // rol rbx, 1 IID15670 - __ rolq(rbx, 2); // rol rbx, 2 IID15671 - __ rolq(rbx, 4); // rol rbx, 4 IID15672 - __ rolq(rbx, 8); // rol rbx, 8 IID15673 - __ rolq(rbx, 16); // rol rbx, 16 IID15674 - __ rolq(r8, 1); // rol r8, 1 IID15675 - __ rolq(r8, 2); // rol r8, 2 IID15676 - __ rolq(r8, 4); // rol r8, 4 IID15677 - __ rolq(r8, 8); // rol r8, 8 IID15678 - __ rolq(r8, 16); // rol r8, 16 IID15679 - __ rolq(r9, 1); // rol r9, 1 IID15680 - __ rolq(r9, 2); // rol r9, 2 IID15681 - __ rolq(r9, 4); // rol r9, 4 IID15682 - __ rolq(r9, 8); // rol r9, 8 IID15683 - __ rolq(r9, 16); // rol r9, 16 IID15684 - __ rolq(r10, 1); // rol r10, 1 IID15685 - __ rolq(r10, 2); // rol r10, 2 IID15686 - __ rolq(r10, 4); // rol r10, 4 IID15687 - __ rolq(r10, 8); // rol r10, 8 IID15688 - __ rolq(r10, 16); // rol r10, 16 IID15689 - __ rolq(r11, 1); // rol r11, 1 IID15690 - __ rolq(r11, 2); // rol r11, 2 IID15691 - __ rolq(r11, 4); // rol r11, 4 IID15692 - __ rolq(r11, 8); // rol r11, 8 IID15693 - __ rolq(r11, 16); // rol r11, 16 IID15694 - __ rolq(r12, 1); // rol r12, 1 IID15695 - __ rolq(r12, 2); // rol r12, 2 IID15696 - __ rolq(r12, 4); // rol r12, 4 IID15697 - __ rolq(r12, 8); // rol r12, 8 IID15698 - __ rolq(r12, 16); // rol r12, 16 IID15699 - __ rolq(r13, 1); // rol r13, 1 IID15700 - __ rolq(r13, 2); // rol r13, 2 IID15701 - __ rolq(r13, 4); // rol r13, 4 IID15702 - __ rolq(r13, 8); // rol r13, 8 IID15703 - __ rolq(r13, 16); // rol r13, 16 IID15704 - __ rolq(r14, 1); // rol r14, 1 IID15705 - __ rolq(r14, 2); // rol r14, 2 IID15706 - __ rolq(r14, 4); // rol r14, 4 IID15707 - __ rolq(r14, 8); // rol r14, 8 IID15708 - __ rolq(r14, 16); // rol r14, 16 IID15709 - __ rolq(r15, 1); // rol r15, 1 IID15710 - __ rolq(r15, 2); // rol r15, 2 IID15711 - __ rolq(r15, 4); // rol r15, 4 IID15712 - __ rolq(r15, 8); // rol r15, 8 IID15713 - __ rolq(r15, 16); // rol r15, 16 IID15714 - __ rolq(r16, 1); // rol r16, 1 IID15715 - __ rolq(r16, 2); // rol r16, 2 IID15716 - __ rolq(r16, 4); // rol r16, 4 IID15717 - __ rolq(r16, 8); // rol r16, 8 IID15718 - __ rolq(r16, 16); // rol r16, 16 IID15719 - __ rolq(r17, 1); // rol r17, 1 IID15720 - __ rolq(r17, 2); // rol r17, 2 IID15721 - __ rolq(r17, 4); // rol r17, 4 IID15722 - __ rolq(r17, 8); // rol r17, 8 IID15723 - __ rolq(r17, 16); // rol r17, 16 IID15724 - __ rolq(r18, 1); // rol r18, 1 IID15725 - __ rolq(r18, 2); // rol r18, 2 IID15726 - __ rolq(r18, 4); // rol r18, 4 IID15727 - __ rolq(r18, 8); // rol r18, 8 IID15728 - __ rolq(r18, 16); // rol r18, 16 IID15729 - __ rolq(r19, 1); // rol r19, 1 IID15730 - __ rolq(r19, 2); // rol r19, 2 IID15731 - __ rolq(r19, 4); // rol r19, 4 IID15732 - __ rolq(r19, 8); // rol r19, 8 IID15733 - __ rolq(r19, 16); // rol r19, 16 IID15734 - __ rolq(r20, 1); // rol r20, 1 IID15735 - __ rolq(r20, 2); // rol r20, 2 IID15736 - __ rolq(r20, 4); // rol r20, 4 IID15737 - __ rolq(r20, 8); // rol r20, 8 IID15738 - __ rolq(r20, 16); // rol r20, 16 IID15739 - __ rolq(r21, 1); // rol r21, 1 IID15740 - __ rolq(r21, 2); // rol r21, 2 IID15741 - __ rolq(r21, 4); // rol r21, 4 IID15742 - __ rolq(r21, 8); // rol r21, 8 IID15743 - __ rolq(r21, 16); // rol r21, 16 IID15744 - __ rolq(r22, 1); // rol r22, 1 IID15745 - __ rolq(r22, 2); // rol r22, 2 IID15746 - __ rolq(r22, 4); // rol r22, 4 IID15747 - __ rolq(r22, 8); // rol r22, 8 IID15748 - __ rolq(r22, 16); // rol r22, 16 IID15749 - __ rolq(r23, 1); // rol r23, 1 IID15750 - __ rolq(r23, 2); // rol r23, 2 IID15751 - __ rolq(r23, 4); // rol r23, 4 IID15752 - __ rolq(r23, 8); // rol r23, 8 IID15753 - __ rolq(r23, 16); // rol r23, 16 IID15754 - __ rolq(r24, 1); // rol r24, 1 IID15755 - __ rolq(r24, 2); // rol r24, 2 IID15756 - __ rolq(r24, 4); // rol r24, 4 IID15757 - __ rolq(r24, 8); // rol r24, 8 IID15758 - __ rolq(r24, 16); // rol r24, 16 IID15759 - __ rolq(r25, 1); // rol r25, 1 IID15760 - __ rolq(r25, 2); // rol r25, 2 IID15761 - __ rolq(r25, 4); // rol r25, 4 IID15762 - __ rolq(r25, 8); // rol r25, 8 IID15763 - __ rolq(r25, 16); // rol r25, 16 IID15764 - __ rolq(r26, 1); // rol r26, 1 IID15765 - __ rolq(r26, 2); // rol r26, 2 IID15766 - __ rolq(r26, 4); // rol r26, 4 IID15767 - __ rolq(r26, 8); // rol r26, 8 IID15768 - __ rolq(r26, 16); // rol r26, 16 IID15769 - __ rolq(r27, 1); // rol r27, 1 IID15770 - __ rolq(r27, 2); // rol r27, 2 IID15771 - __ rolq(r27, 4); // rol r27, 4 IID15772 - __ rolq(r27, 8); // rol r27, 8 IID15773 - __ rolq(r27, 16); // rol r27, 16 IID15774 - __ rolq(r28, 1); // rol r28, 1 IID15775 - __ rolq(r28, 2); // rol r28, 2 IID15776 - __ rolq(r28, 4); // rol r28, 4 IID15777 - __ rolq(r28, 8); // rol r28, 8 IID15778 - __ rolq(r28, 16); // rol r28, 16 IID15779 - __ rolq(r29, 1); // rol r29, 1 IID15780 - __ rolq(r29, 2); // rol r29, 2 IID15781 - __ rolq(r29, 4); // rol r29, 4 IID15782 - __ rolq(r29, 8); // rol r29, 8 IID15783 - __ rolq(r29, 16); // rol r29, 16 IID15784 - __ rolq(r30, 1); // rol r30, 1 IID15785 - __ rolq(r30, 2); // rol r30, 2 IID15786 - __ rolq(r30, 4); // rol r30, 4 IID15787 - __ rolq(r30, 8); // rol r30, 8 IID15788 - __ rolq(r30, 16); // rol r30, 16 IID15789 - __ rolq(r31, 1); // rol r31, 1 IID15790 - __ rolq(r31, 2); // rol r31, 2 IID15791 - __ rolq(r31, 4); // rol r31, 4 IID15792 - __ rolq(r31, 8); // rol r31, 8 IID15793 - __ rolq(r31, 16); // rol r31, 16 IID15794 - __ rorq(rcx, 1); // ror rcx, 1 IID15795 - __ rorq(rcx, 2); // ror rcx, 2 IID15796 - __ rorq(rcx, 4); // ror rcx, 4 IID15797 - __ rorq(rcx, 8); // ror rcx, 8 IID15798 - __ rorq(rcx, 16); // ror rcx, 16 IID15799 - __ rorq(rdx, 1); // ror rdx, 1 IID15800 - __ rorq(rdx, 2); // ror rdx, 2 IID15801 - __ rorq(rdx, 4); // ror rdx, 4 IID15802 - __ rorq(rdx, 8); // ror rdx, 8 IID15803 - __ rorq(rdx, 16); // ror rdx, 16 IID15804 - __ rorq(rbx, 1); // ror rbx, 1 IID15805 - __ rorq(rbx, 2); // ror rbx, 2 IID15806 - __ rorq(rbx, 4); // ror rbx, 4 IID15807 - __ rorq(rbx, 8); // ror rbx, 8 IID15808 - __ rorq(rbx, 16); // ror rbx, 16 IID15809 - __ rorq(r8, 1); // ror r8, 1 IID15810 - __ rorq(r8, 2); // ror r8, 2 IID15811 - __ rorq(r8, 4); // ror r8, 4 IID15812 - __ rorq(r8, 8); // ror r8, 8 IID15813 - __ rorq(r8, 16); // ror r8, 16 IID15814 - __ rorq(r9, 1); // ror r9, 1 IID15815 - __ rorq(r9, 2); // ror r9, 2 IID15816 - __ rorq(r9, 4); // ror r9, 4 IID15817 - __ rorq(r9, 8); // ror r9, 8 IID15818 - __ rorq(r9, 16); // ror r9, 16 IID15819 - __ rorq(r10, 1); // ror r10, 1 IID15820 - __ rorq(r10, 2); // ror r10, 2 IID15821 - __ rorq(r10, 4); // ror r10, 4 IID15822 - __ rorq(r10, 8); // ror r10, 8 IID15823 - __ rorq(r10, 16); // ror r10, 16 IID15824 - __ rorq(r11, 1); // ror r11, 1 IID15825 - __ rorq(r11, 2); // ror r11, 2 IID15826 - __ rorq(r11, 4); // ror r11, 4 IID15827 - __ rorq(r11, 8); // ror r11, 8 IID15828 - __ rorq(r11, 16); // ror r11, 16 IID15829 - __ rorq(r12, 1); // ror r12, 1 IID15830 - __ rorq(r12, 2); // ror r12, 2 IID15831 - __ rorq(r12, 4); // ror r12, 4 IID15832 - __ rorq(r12, 8); // ror r12, 8 IID15833 - __ rorq(r12, 16); // ror r12, 16 IID15834 - __ rorq(r13, 1); // ror r13, 1 IID15835 - __ rorq(r13, 2); // ror r13, 2 IID15836 - __ rorq(r13, 4); // ror r13, 4 IID15837 - __ rorq(r13, 8); // ror r13, 8 IID15838 - __ rorq(r13, 16); // ror r13, 16 IID15839 - __ rorq(r14, 1); // ror r14, 1 IID15840 - __ rorq(r14, 2); // ror r14, 2 IID15841 - __ rorq(r14, 4); // ror r14, 4 IID15842 - __ rorq(r14, 8); // ror r14, 8 IID15843 - __ rorq(r14, 16); // ror r14, 16 IID15844 - __ rorq(r15, 1); // ror r15, 1 IID15845 - __ rorq(r15, 2); // ror r15, 2 IID15846 - __ rorq(r15, 4); // ror r15, 4 IID15847 - __ rorq(r15, 8); // ror r15, 8 IID15848 - __ rorq(r15, 16); // ror r15, 16 IID15849 - __ rorq(r16, 1); // ror r16, 1 IID15850 - __ rorq(r16, 2); // ror r16, 2 IID15851 - __ rorq(r16, 4); // ror r16, 4 IID15852 - __ rorq(r16, 8); // ror r16, 8 IID15853 - __ rorq(r16, 16); // ror r16, 16 IID15854 - __ rorq(r17, 1); // ror r17, 1 IID15855 - __ rorq(r17, 2); // ror r17, 2 IID15856 - __ rorq(r17, 4); // ror r17, 4 IID15857 - __ rorq(r17, 8); // ror r17, 8 IID15858 - __ rorq(r17, 16); // ror r17, 16 IID15859 - __ rorq(r18, 1); // ror r18, 1 IID15860 - __ rorq(r18, 2); // ror r18, 2 IID15861 - __ rorq(r18, 4); // ror r18, 4 IID15862 - __ rorq(r18, 8); // ror r18, 8 IID15863 - __ rorq(r18, 16); // ror r18, 16 IID15864 - __ rorq(r19, 1); // ror r19, 1 IID15865 - __ rorq(r19, 2); // ror r19, 2 IID15866 - __ rorq(r19, 4); // ror r19, 4 IID15867 - __ rorq(r19, 8); // ror r19, 8 IID15868 - __ rorq(r19, 16); // ror r19, 16 IID15869 - __ rorq(r20, 1); // ror r20, 1 IID15870 - __ rorq(r20, 2); // ror r20, 2 IID15871 - __ rorq(r20, 4); // ror r20, 4 IID15872 - __ rorq(r20, 8); // ror r20, 8 IID15873 - __ rorq(r20, 16); // ror r20, 16 IID15874 - __ rorq(r21, 1); // ror r21, 1 IID15875 - __ rorq(r21, 2); // ror r21, 2 IID15876 - __ rorq(r21, 4); // ror r21, 4 IID15877 - __ rorq(r21, 8); // ror r21, 8 IID15878 - __ rorq(r21, 16); // ror r21, 16 IID15879 - __ rorq(r22, 1); // ror r22, 1 IID15880 - __ rorq(r22, 2); // ror r22, 2 IID15881 - __ rorq(r22, 4); // ror r22, 4 IID15882 - __ rorq(r22, 8); // ror r22, 8 IID15883 - __ rorq(r22, 16); // ror r22, 16 IID15884 - __ rorq(r23, 1); // ror r23, 1 IID15885 - __ rorq(r23, 2); // ror r23, 2 IID15886 - __ rorq(r23, 4); // ror r23, 4 IID15887 - __ rorq(r23, 8); // ror r23, 8 IID15888 - __ rorq(r23, 16); // ror r23, 16 IID15889 - __ rorq(r24, 1); // ror r24, 1 IID15890 - __ rorq(r24, 2); // ror r24, 2 IID15891 - __ rorq(r24, 4); // ror r24, 4 IID15892 - __ rorq(r24, 8); // ror r24, 8 IID15893 - __ rorq(r24, 16); // ror r24, 16 IID15894 - __ rorq(r25, 1); // ror r25, 1 IID15895 - __ rorq(r25, 2); // ror r25, 2 IID15896 - __ rorq(r25, 4); // ror r25, 4 IID15897 - __ rorq(r25, 8); // ror r25, 8 IID15898 - __ rorq(r25, 16); // ror r25, 16 IID15899 - __ rorq(r26, 1); // ror r26, 1 IID15900 - __ rorq(r26, 2); // ror r26, 2 IID15901 - __ rorq(r26, 4); // ror r26, 4 IID15902 - __ rorq(r26, 8); // ror r26, 8 IID15903 - __ rorq(r26, 16); // ror r26, 16 IID15904 - __ rorq(r27, 1); // ror r27, 1 IID15905 - __ rorq(r27, 2); // ror r27, 2 IID15906 - __ rorq(r27, 4); // ror r27, 4 IID15907 - __ rorq(r27, 8); // ror r27, 8 IID15908 - __ rorq(r27, 16); // ror r27, 16 IID15909 - __ rorq(r28, 1); // ror r28, 1 IID15910 - __ rorq(r28, 2); // ror r28, 2 IID15911 - __ rorq(r28, 4); // ror r28, 4 IID15912 - __ rorq(r28, 8); // ror r28, 8 IID15913 - __ rorq(r28, 16); // ror r28, 16 IID15914 - __ rorq(r29, 1); // ror r29, 1 IID15915 - __ rorq(r29, 2); // ror r29, 2 IID15916 - __ rorq(r29, 4); // ror r29, 4 IID15917 - __ rorq(r29, 8); // ror r29, 8 IID15918 - __ rorq(r29, 16); // ror r29, 16 IID15919 - __ rorq(r30, 1); // ror r30, 1 IID15920 - __ rorq(r30, 2); // ror r30, 2 IID15921 - __ rorq(r30, 4); // ror r30, 4 IID15922 - __ rorq(r30, 8); // ror r30, 8 IID15923 - __ rorq(r30, 16); // ror r30, 16 IID15924 - __ rorq(r31, 1); // ror r31, 1 IID15925 - __ rorq(r31, 2); // ror r31, 2 IID15926 - __ rorq(r31, 4); // ror r31, 4 IID15927 - __ rorq(r31, 8); // ror r31, 8 IID15928 - __ rorq(r31, 16); // ror r31, 16 IID15929 - __ sarq(rcx, 1); // sar rcx, 1 IID15930 - __ sarq(rcx, 2); // sar rcx, 2 IID15931 - __ sarq(rcx, 4); // sar rcx, 4 IID15932 - __ sarq(rcx, 8); // sar rcx, 8 IID15933 - __ sarq(rcx, 16); // sar rcx, 16 IID15934 - __ sarq(rdx, 1); // sar rdx, 1 IID15935 - __ sarq(rdx, 2); // sar rdx, 2 IID15936 - __ sarq(rdx, 4); // sar rdx, 4 IID15937 - __ sarq(rdx, 8); // sar rdx, 8 IID15938 - __ sarq(rdx, 16); // sar rdx, 16 IID15939 - __ sarq(rbx, 1); // sar rbx, 1 IID15940 - __ sarq(rbx, 2); // sar rbx, 2 IID15941 - __ sarq(rbx, 4); // sar rbx, 4 IID15942 - __ sarq(rbx, 8); // sar rbx, 8 IID15943 - __ sarq(rbx, 16); // sar rbx, 16 IID15944 - __ sarq(r8, 1); // sar r8, 1 IID15945 - __ sarq(r8, 2); // sar r8, 2 IID15946 - __ sarq(r8, 4); // sar r8, 4 IID15947 - __ sarq(r8, 8); // sar r8, 8 IID15948 - __ sarq(r8, 16); // sar r8, 16 IID15949 - __ sarq(r9, 1); // sar r9, 1 IID15950 - __ sarq(r9, 2); // sar r9, 2 IID15951 - __ sarq(r9, 4); // sar r9, 4 IID15952 - __ sarq(r9, 8); // sar r9, 8 IID15953 - __ sarq(r9, 16); // sar r9, 16 IID15954 - __ sarq(r10, 1); // sar r10, 1 IID15955 - __ sarq(r10, 2); // sar r10, 2 IID15956 - __ sarq(r10, 4); // sar r10, 4 IID15957 - __ sarq(r10, 8); // sar r10, 8 IID15958 - __ sarq(r10, 16); // sar r10, 16 IID15959 - __ sarq(r11, 1); // sar r11, 1 IID15960 - __ sarq(r11, 2); // sar r11, 2 IID15961 - __ sarq(r11, 4); // sar r11, 4 IID15962 - __ sarq(r11, 8); // sar r11, 8 IID15963 - __ sarq(r11, 16); // sar r11, 16 IID15964 - __ sarq(r12, 1); // sar r12, 1 IID15965 - __ sarq(r12, 2); // sar r12, 2 IID15966 - __ sarq(r12, 4); // sar r12, 4 IID15967 - __ sarq(r12, 8); // sar r12, 8 IID15968 - __ sarq(r12, 16); // sar r12, 16 IID15969 - __ sarq(r13, 1); // sar r13, 1 IID15970 - __ sarq(r13, 2); // sar r13, 2 IID15971 - __ sarq(r13, 4); // sar r13, 4 IID15972 - __ sarq(r13, 8); // sar r13, 8 IID15973 - __ sarq(r13, 16); // sar r13, 16 IID15974 - __ sarq(r14, 1); // sar r14, 1 IID15975 - __ sarq(r14, 2); // sar r14, 2 IID15976 - __ sarq(r14, 4); // sar r14, 4 IID15977 - __ sarq(r14, 8); // sar r14, 8 IID15978 - __ sarq(r14, 16); // sar r14, 16 IID15979 - __ sarq(r15, 1); // sar r15, 1 IID15980 - __ sarq(r15, 2); // sar r15, 2 IID15981 - __ sarq(r15, 4); // sar r15, 4 IID15982 - __ sarq(r15, 8); // sar r15, 8 IID15983 - __ sarq(r15, 16); // sar r15, 16 IID15984 - __ sarq(r16, 1); // sar r16, 1 IID15985 - __ sarq(r16, 2); // sar r16, 2 IID15986 - __ sarq(r16, 4); // sar r16, 4 IID15987 - __ sarq(r16, 8); // sar r16, 8 IID15988 - __ sarq(r16, 16); // sar r16, 16 IID15989 - __ sarq(r17, 1); // sar r17, 1 IID15990 - __ sarq(r17, 2); // sar r17, 2 IID15991 - __ sarq(r17, 4); // sar r17, 4 IID15992 - __ sarq(r17, 8); // sar r17, 8 IID15993 - __ sarq(r17, 16); // sar r17, 16 IID15994 - __ sarq(r18, 1); // sar r18, 1 IID15995 - __ sarq(r18, 2); // sar r18, 2 IID15996 - __ sarq(r18, 4); // sar r18, 4 IID15997 - __ sarq(r18, 8); // sar r18, 8 IID15998 - __ sarq(r18, 16); // sar r18, 16 IID15999 - __ sarq(r19, 1); // sar r19, 1 IID16000 - __ sarq(r19, 2); // sar r19, 2 IID16001 - __ sarq(r19, 4); // sar r19, 4 IID16002 - __ sarq(r19, 8); // sar r19, 8 IID16003 - __ sarq(r19, 16); // sar r19, 16 IID16004 - __ sarq(r20, 1); // sar r20, 1 IID16005 - __ sarq(r20, 2); // sar r20, 2 IID16006 - __ sarq(r20, 4); // sar r20, 4 IID16007 - __ sarq(r20, 8); // sar r20, 8 IID16008 - __ sarq(r20, 16); // sar r20, 16 IID16009 - __ sarq(r21, 1); // sar r21, 1 IID16010 - __ sarq(r21, 2); // sar r21, 2 IID16011 - __ sarq(r21, 4); // sar r21, 4 IID16012 - __ sarq(r21, 8); // sar r21, 8 IID16013 - __ sarq(r21, 16); // sar r21, 16 IID16014 - __ sarq(r22, 1); // sar r22, 1 IID16015 - __ sarq(r22, 2); // sar r22, 2 IID16016 - __ sarq(r22, 4); // sar r22, 4 IID16017 - __ sarq(r22, 8); // sar r22, 8 IID16018 - __ sarq(r22, 16); // sar r22, 16 IID16019 - __ sarq(r23, 1); // sar r23, 1 IID16020 - __ sarq(r23, 2); // sar r23, 2 IID16021 - __ sarq(r23, 4); // sar r23, 4 IID16022 - __ sarq(r23, 8); // sar r23, 8 IID16023 - __ sarq(r23, 16); // sar r23, 16 IID16024 - __ sarq(r24, 1); // sar r24, 1 IID16025 - __ sarq(r24, 2); // sar r24, 2 IID16026 - __ sarq(r24, 4); // sar r24, 4 IID16027 - __ sarq(r24, 8); // sar r24, 8 IID16028 - __ sarq(r24, 16); // sar r24, 16 IID16029 - __ sarq(r25, 1); // sar r25, 1 IID16030 - __ sarq(r25, 2); // sar r25, 2 IID16031 - __ sarq(r25, 4); // sar r25, 4 IID16032 - __ sarq(r25, 8); // sar r25, 8 IID16033 - __ sarq(r25, 16); // sar r25, 16 IID16034 - __ sarq(r26, 1); // sar r26, 1 IID16035 - __ sarq(r26, 2); // sar r26, 2 IID16036 - __ sarq(r26, 4); // sar r26, 4 IID16037 - __ sarq(r26, 8); // sar r26, 8 IID16038 - __ sarq(r26, 16); // sar r26, 16 IID16039 - __ sarq(r27, 1); // sar r27, 1 IID16040 - __ sarq(r27, 2); // sar r27, 2 IID16041 - __ sarq(r27, 4); // sar r27, 4 IID16042 - __ sarq(r27, 8); // sar r27, 8 IID16043 - __ sarq(r27, 16); // sar r27, 16 IID16044 - __ sarq(r28, 1); // sar r28, 1 IID16045 - __ sarq(r28, 2); // sar r28, 2 IID16046 - __ sarq(r28, 4); // sar r28, 4 IID16047 - __ sarq(r28, 8); // sar r28, 8 IID16048 - __ sarq(r28, 16); // sar r28, 16 IID16049 - __ sarq(r29, 1); // sar r29, 1 IID16050 - __ sarq(r29, 2); // sar r29, 2 IID16051 - __ sarq(r29, 4); // sar r29, 4 IID16052 - __ sarq(r29, 8); // sar r29, 8 IID16053 - __ sarq(r29, 16); // sar r29, 16 IID16054 - __ sarq(r30, 1); // sar r30, 1 IID16055 - __ sarq(r30, 2); // sar r30, 2 IID16056 - __ sarq(r30, 4); // sar r30, 4 IID16057 - __ sarq(r30, 8); // sar r30, 8 IID16058 - __ sarq(r30, 16); // sar r30, 16 IID16059 - __ sarq(r31, 1); // sar r31, 1 IID16060 - __ sarq(r31, 2); // sar r31, 2 IID16061 - __ sarq(r31, 4); // sar r31, 4 IID16062 - __ sarq(r31, 8); // sar r31, 8 IID16063 - __ sarq(r31, 16); // sar r31, 16 IID16064 - __ salq(rcx, 1); // sal rcx, 1 IID16065 - __ salq(rcx, 2); // sal rcx, 2 IID16066 - __ salq(rcx, 4); // sal rcx, 4 IID16067 - __ salq(rcx, 8); // sal rcx, 8 IID16068 - __ salq(rcx, 16); // sal rcx, 16 IID16069 - __ salq(rdx, 1); // sal rdx, 1 IID16070 - __ salq(rdx, 2); // sal rdx, 2 IID16071 - __ salq(rdx, 4); // sal rdx, 4 IID16072 - __ salq(rdx, 8); // sal rdx, 8 IID16073 - __ salq(rdx, 16); // sal rdx, 16 IID16074 - __ salq(rbx, 1); // sal rbx, 1 IID16075 - __ salq(rbx, 2); // sal rbx, 2 IID16076 - __ salq(rbx, 4); // sal rbx, 4 IID16077 - __ salq(rbx, 8); // sal rbx, 8 IID16078 - __ salq(rbx, 16); // sal rbx, 16 IID16079 - __ salq(r8, 1); // sal r8, 1 IID16080 - __ salq(r8, 2); // sal r8, 2 IID16081 - __ salq(r8, 4); // sal r8, 4 IID16082 - __ salq(r8, 8); // sal r8, 8 IID16083 - __ salq(r8, 16); // sal r8, 16 IID16084 - __ salq(r9, 1); // sal r9, 1 IID16085 - __ salq(r9, 2); // sal r9, 2 IID16086 - __ salq(r9, 4); // sal r9, 4 IID16087 - __ salq(r9, 8); // sal r9, 8 IID16088 - __ salq(r9, 16); // sal r9, 16 IID16089 - __ salq(r10, 1); // sal r10, 1 IID16090 - __ salq(r10, 2); // sal r10, 2 IID16091 - __ salq(r10, 4); // sal r10, 4 IID16092 - __ salq(r10, 8); // sal r10, 8 IID16093 - __ salq(r10, 16); // sal r10, 16 IID16094 - __ salq(r11, 1); // sal r11, 1 IID16095 - __ salq(r11, 2); // sal r11, 2 IID16096 - __ salq(r11, 4); // sal r11, 4 IID16097 - __ salq(r11, 8); // sal r11, 8 IID16098 - __ salq(r11, 16); // sal r11, 16 IID16099 - __ salq(r12, 1); // sal r12, 1 IID16100 - __ salq(r12, 2); // sal r12, 2 IID16101 - __ salq(r12, 4); // sal r12, 4 IID16102 - __ salq(r12, 8); // sal r12, 8 IID16103 - __ salq(r12, 16); // sal r12, 16 IID16104 - __ salq(r13, 1); // sal r13, 1 IID16105 - __ salq(r13, 2); // sal r13, 2 IID16106 - __ salq(r13, 4); // sal r13, 4 IID16107 - __ salq(r13, 8); // sal r13, 8 IID16108 - __ salq(r13, 16); // sal r13, 16 IID16109 - __ salq(r14, 1); // sal r14, 1 IID16110 - __ salq(r14, 2); // sal r14, 2 IID16111 - __ salq(r14, 4); // sal r14, 4 IID16112 - __ salq(r14, 8); // sal r14, 8 IID16113 - __ salq(r14, 16); // sal r14, 16 IID16114 - __ salq(r15, 1); // sal r15, 1 IID16115 - __ salq(r15, 2); // sal r15, 2 IID16116 - __ salq(r15, 4); // sal r15, 4 IID16117 - __ salq(r15, 8); // sal r15, 8 IID16118 - __ salq(r15, 16); // sal r15, 16 IID16119 - __ salq(r16, 1); // sal r16, 1 IID16120 - __ salq(r16, 2); // sal r16, 2 IID16121 - __ salq(r16, 4); // sal r16, 4 IID16122 - __ salq(r16, 8); // sal r16, 8 IID16123 - __ salq(r16, 16); // sal r16, 16 IID16124 - __ salq(r17, 1); // sal r17, 1 IID16125 - __ salq(r17, 2); // sal r17, 2 IID16126 - __ salq(r17, 4); // sal r17, 4 IID16127 - __ salq(r17, 8); // sal r17, 8 IID16128 - __ salq(r17, 16); // sal r17, 16 IID16129 - __ salq(r18, 1); // sal r18, 1 IID16130 - __ salq(r18, 2); // sal r18, 2 IID16131 - __ salq(r18, 4); // sal r18, 4 IID16132 - __ salq(r18, 8); // sal r18, 8 IID16133 - __ salq(r18, 16); // sal r18, 16 IID16134 - __ salq(r19, 1); // sal r19, 1 IID16135 - __ salq(r19, 2); // sal r19, 2 IID16136 - __ salq(r19, 4); // sal r19, 4 IID16137 - __ salq(r19, 8); // sal r19, 8 IID16138 - __ salq(r19, 16); // sal r19, 16 IID16139 - __ salq(r20, 1); // sal r20, 1 IID16140 - __ salq(r20, 2); // sal r20, 2 IID16141 - __ salq(r20, 4); // sal r20, 4 IID16142 - __ salq(r20, 8); // sal r20, 8 IID16143 - __ salq(r20, 16); // sal r20, 16 IID16144 - __ salq(r21, 1); // sal r21, 1 IID16145 - __ salq(r21, 2); // sal r21, 2 IID16146 - __ salq(r21, 4); // sal r21, 4 IID16147 - __ salq(r21, 8); // sal r21, 8 IID16148 - __ salq(r21, 16); // sal r21, 16 IID16149 - __ salq(r22, 1); // sal r22, 1 IID16150 - __ salq(r22, 2); // sal r22, 2 IID16151 - __ salq(r22, 4); // sal r22, 4 IID16152 - __ salq(r22, 8); // sal r22, 8 IID16153 - __ salq(r22, 16); // sal r22, 16 IID16154 - __ salq(r23, 1); // sal r23, 1 IID16155 - __ salq(r23, 2); // sal r23, 2 IID16156 - __ salq(r23, 4); // sal r23, 4 IID16157 - __ salq(r23, 8); // sal r23, 8 IID16158 - __ salq(r23, 16); // sal r23, 16 IID16159 - __ salq(r24, 1); // sal r24, 1 IID16160 - __ salq(r24, 2); // sal r24, 2 IID16161 - __ salq(r24, 4); // sal r24, 4 IID16162 - __ salq(r24, 8); // sal r24, 8 IID16163 - __ salq(r24, 16); // sal r24, 16 IID16164 - __ salq(r25, 1); // sal r25, 1 IID16165 - __ salq(r25, 2); // sal r25, 2 IID16166 - __ salq(r25, 4); // sal r25, 4 IID16167 - __ salq(r25, 8); // sal r25, 8 IID16168 - __ salq(r25, 16); // sal r25, 16 IID16169 - __ salq(r26, 1); // sal r26, 1 IID16170 - __ salq(r26, 2); // sal r26, 2 IID16171 - __ salq(r26, 4); // sal r26, 4 IID16172 - __ salq(r26, 8); // sal r26, 8 IID16173 - __ salq(r26, 16); // sal r26, 16 IID16174 - __ salq(r27, 1); // sal r27, 1 IID16175 - __ salq(r27, 2); // sal r27, 2 IID16176 - __ salq(r27, 4); // sal r27, 4 IID16177 - __ salq(r27, 8); // sal r27, 8 IID16178 - __ salq(r27, 16); // sal r27, 16 IID16179 - __ salq(r28, 1); // sal r28, 1 IID16180 - __ salq(r28, 2); // sal r28, 2 IID16181 - __ salq(r28, 4); // sal r28, 4 IID16182 - __ salq(r28, 8); // sal r28, 8 IID16183 - __ salq(r28, 16); // sal r28, 16 IID16184 - __ salq(r29, 1); // sal r29, 1 IID16185 - __ salq(r29, 2); // sal r29, 2 IID16186 - __ salq(r29, 4); // sal r29, 4 IID16187 - __ salq(r29, 8); // sal r29, 8 IID16188 - __ salq(r29, 16); // sal r29, 16 IID16189 - __ salq(r30, 1); // sal r30, 1 IID16190 - __ salq(r30, 2); // sal r30, 2 IID16191 - __ salq(r30, 4); // sal r30, 4 IID16192 - __ salq(r30, 8); // sal r30, 8 IID16193 - __ salq(r30, 16); // sal r30, 16 IID16194 - __ salq(r31, 1); // sal r31, 1 IID16195 - __ salq(r31, 2); // sal r31, 2 IID16196 - __ salq(r31, 4); // sal r31, 4 IID16197 - __ salq(r31, 8); // sal r31, 8 IID16198 - __ salq(r31, 16); // sal r31, 16 IID16199 - __ sbbq(rcx, 1); // sbb rcx, 1 IID16200 - __ sbbq(rcx, 16); // sbb rcx, 16 IID16201 - __ sbbq(rcx, 256); // sbb rcx, 256 IID16202 - __ sbbq(rcx, 4096); // sbb rcx, 4096 IID16203 - __ sbbq(rcx, 65536); // sbb rcx, 65536 IID16204 - __ sbbq(rcx, 1048576); // sbb rcx, 1048576 IID16205 - __ sbbq(rcx, 16777216); // sbb rcx, 16777216 IID16206 - __ sbbq(rcx, 268435456); // sbb rcx, 268435456 IID16207 - __ sbbq(rdx, 1); // sbb rdx, 1 IID16208 - __ sbbq(rdx, 16); // sbb rdx, 16 IID16209 - __ sbbq(rdx, 256); // sbb rdx, 256 IID16210 - __ sbbq(rdx, 4096); // sbb rdx, 4096 IID16211 - __ sbbq(rdx, 65536); // sbb rdx, 65536 IID16212 - __ sbbq(rdx, 1048576); // sbb rdx, 1048576 IID16213 - __ sbbq(rdx, 16777216); // sbb rdx, 16777216 IID16214 - __ sbbq(rdx, 268435456); // sbb rdx, 268435456 IID16215 - __ sbbq(rbx, 1); // sbb rbx, 1 IID16216 - __ sbbq(rbx, 16); // sbb rbx, 16 IID16217 - __ sbbq(rbx, 256); // sbb rbx, 256 IID16218 - __ sbbq(rbx, 4096); // sbb rbx, 4096 IID16219 - __ sbbq(rbx, 65536); // sbb rbx, 65536 IID16220 - __ sbbq(rbx, 1048576); // sbb rbx, 1048576 IID16221 - __ sbbq(rbx, 16777216); // sbb rbx, 16777216 IID16222 - __ sbbq(rbx, 268435456); // sbb rbx, 268435456 IID16223 - __ sbbq(r8, 1); // sbb r8, 1 IID16224 - __ sbbq(r8, 16); // sbb r8, 16 IID16225 - __ sbbq(r8, 256); // sbb r8, 256 IID16226 - __ sbbq(r8, 4096); // sbb r8, 4096 IID16227 - __ sbbq(r8, 65536); // sbb r8, 65536 IID16228 - __ sbbq(r8, 1048576); // sbb r8, 1048576 IID16229 - __ sbbq(r8, 16777216); // sbb r8, 16777216 IID16230 - __ sbbq(r8, 268435456); // sbb r8, 268435456 IID16231 - __ sbbq(r9, 1); // sbb r9, 1 IID16232 - __ sbbq(r9, 16); // sbb r9, 16 IID16233 - __ sbbq(r9, 256); // sbb r9, 256 IID16234 - __ sbbq(r9, 4096); // sbb r9, 4096 IID16235 - __ sbbq(r9, 65536); // sbb r9, 65536 IID16236 - __ sbbq(r9, 1048576); // sbb r9, 1048576 IID16237 - __ sbbq(r9, 16777216); // sbb r9, 16777216 IID16238 - __ sbbq(r9, 268435456); // sbb r9, 268435456 IID16239 - __ sbbq(r10, 1); // sbb r10, 1 IID16240 - __ sbbq(r10, 16); // sbb r10, 16 IID16241 - __ sbbq(r10, 256); // sbb r10, 256 IID16242 - __ sbbq(r10, 4096); // sbb r10, 4096 IID16243 - __ sbbq(r10, 65536); // sbb r10, 65536 IID16244 - __ sbbq(r10, 1048576); // sbb r10, 1048576 IID16245 - __ sbbq(r10, 16777216); // sbb r10, 16777216 IID16246 - __ sbbq(r10, 268435456); // sbb r10, 268435456 IID16247 - __ sbbq(r11, 1); // sbb r11, 1 IID16248 - __ sbbq(r11, 16); // sbb r11, 16 IID16249 - __ sbbq(r11, 256); // sbb r11, 256 IID16250 - __ sbbq(r11, 4096); // sbb r11, 4096 IID16251 - __ sbbq(r11, 65536); // sbb r11, 65536 IID16252 - __ sbbq(r11, 1048576); // sbb r11, 1048576 IID16253 - __ sbbq(r11, 16777216); // sbb r11, 16777216 IID16254 - __ sbbq(r11, 268435456); // sbb r11, 268435456 IID16255 - __ sbbq(r12, 1); // sbb r12, 1 IID16256 - __ sbbq(r12, 16); // sbb r12, 16 IID16257 - __ sbbq(r12, 256); // sbb r12, 256 IID16258 - __ sbbq(r12, 4096); // sbb r12, 4096 IID16259 - __ sbbq(r12, 65536); // sbb r12, 65536 IID16260 - __ sbbq(r12, 1048576); // sbb r12, 1048576 IID16261 - __ sbbq(r12, 16777216); // sbb r12, 16777216 IID16262 - __ sbbq(r12, 268435456); // sbb r12, 268435456 IID16263 - __ sbbq(r13, 1); // sbb r13, 1 IID16264 - __ sbbq(r13, 16); // sbb r13, 16 IID16265 - __ sbbq(r13, 256); // sbb r13, 256 IID16266 - __ sbbq(r13, 4096); // sbb r13, 4096 IID16267 - __ sbbq(r13, 65536); // sbb r13, 65536 IID16268 - __ sbbq(r13, 1048576); // sbb r13, 1048576 IID16269 - __ sbbq(r13, 16777216); // sbb r13, 16777216 IID16270 - __ sbbq(r13, 268435456); // sbb r13, 268435456 IID16271 - __ sbbq(r14, 1); // sbb r14, 1 IID16272 - __ sbbq(r14, 16); // sbb r14, 16 IID16273 - __ sbbq(r14, 256); // sbb r14, 256 IID16274 - __ sbbq(r14, 4096); // sbb r14, 4096 IID16275 - __ sbbq(r14, 65536); // sbb r14, 65536 IID16276 - __ sbbq(r14, 1048576); // sbb r14, 1048576 IID16277 - __ sbbq(r14, 16777216); // sbb r14, 16777216 IID16278 - __ sbbq(r14, 268435456); // sbb r14, 268435456 IID16279 - __ sbbq(r15, 1); // sbb r15, 1 IID16280 - __ sbbq(r15, 16); // sbb r15, 16 IID16281 - __ sbbq(r15, 256); // sbb r15, 256 IID16282 - __ sbbq(r15, 4096); // sbb r15, 4096 IID16283 - __ sbbq(r15, 65536); // sbb r15, 65536 IID16284 - __ sbbq(r15, 1048576); // sbb r15, 1048576 IID16285 - __ sbbq(r15, 16777216); // sbb r15, 16777216 IID16286 - __ sbbq(r15, 268435456); // sbb r15, 268435456 IID16287 - __ sbbq(r16, 1); // sbb r16, 1 IID16288 - __ sbbq(r16, 16); // sbb r16, 16 IID16289 - __ sbbq(r16, 256); // sbb r16, 256 IID16290 - __ sbbq(r16, 4096); // sbb r16, 4096 IID16291 - __ sbbq(r16, 65536); // sbb r16, 65536 IID16292 - __ sbbq(r16, 1048576); // sbb r16, 1048576 IID16293 - __ sbbq(r16, 16777216); // sbb r16, 16777216 IID16294 - __ sbbq(r16, 268435456); // sbb r16, 268435456 IID16295 - __ sbbq(r17, 1); // sbb r17, 1 IID16296 - __ sbbq(r17, 16); // sbb r17, 16 IID16297 - __ sbbq(r17, 256); // sbb r17, 256 IID16298 - __ sbbq(r17, 4096); // sbb r17, 4096 IID16299 - __ sbbq(r17, 65536); // sbb r17, 65536 IID16300 - __ sbbq(r17, 1048576); // sbb r17, 1048576 IID16301 - __ sbbq(r17, 16777216); // sbb r17, 16777216 IID16302 - __ sbbq(r17, 268435456); // sbb r17, 268435456 IID16303 - __ sbbq(r18, 1); // sbb r18, 1 IID16304 - __ sbbq(r18, 16); // sbb r18, 16 IID16305 - __ sbbq(r18, 256); // sbb r18, 256 IID16306 - __ sbbq(r18, 4096); // sbb r18, 4096 IID16307 - __ sbbq(r18, 65536); // sbb r18, 65536 IID16308 - __ sbbq(r18, 1048576); // sbb r18, 1048576 IID16309 - __ sbbq(r18, 16777216); // sbb r18, 16777216 IID16310 - __ sbbq(r18, 268435456); // sbb r18, 268435456 IID16311 - __ sbbq(r19, 1); // sbb r19, 1 IID16312 - __ sbbq(r19, 16); // sbb r19, 16 IID16313 - __ sbbq(r19, 256); // sbb r19, 256 IID16314 - __ sbbq(r19, 4096); // sbb r19, 4096 IID16315 - __ sbbq(r19, 65536); // sbb r19, 65536 IID16316 - __ sbbq(r19, 1048576); // sbb r19, 1048576 IID16317 - __ sbbq(r19, 16777216); // sbb r19, 16777216 IID16318 - __ sbbq(r19, 268435456); // sbb r19, 268435456 IID16319 - __ sbbq(r20, 1); // sbb r20, 1 IID16320 - __ sbbq(r20, 16); // sbb r20, 16 IID16321 - __ sbbq(r20, 256); // sbb r20, 256 IID16322 - __ sbbq(r20, 4096); // sbb r20, 4096 IID16323 - __ sbbq(r20, 65536); // sbb r20, 65536 IID16324 - __ sbbq(r20, 1048576); // sbb r20, 1048576 IID16325 - __ sbbq(r20, 16777216); // sbb r20, 16777216 IID16326 - __ sbbq(r20, 268435456); // sbb r20, 268435456 IID16327 - __ sbbq(r21, 1); // sbb r21, 1 IID16328 - __ sbbq(r21, 16); // sbb r21, 16 IID16329 - __ sbbq(r21, 256); // sbb r21, 256 IID16330 - __ sbbq(r21, 4096); // sbb r21, 4096 IID16331 - __ sbbq(r21, 65536); // sbb r21, 65536 IID16332 - __ sbbq(r21, 1048576); // sbb r21, 1048576 IID16333 - __ sbbq(r21, 16777216); // sbb r21, 16777216 IID16334 - __ sbbq(r21, 268435456); // sbb r21, 268435456 IID16335 - __ sbbq(r22, 1); // sbb r22, 1 IID16336 - __ sbbq(r22, 16); // sbb r22, 16 IID16337 - __ sbbq(r22, 256); // sbb r22, 256 IID16338 - __ sbbq(r22, 4096); // sbb r22, 4096 IID16339 - __ sbbq(r22, 65536); // sbb r22, 65536 IID16340 - __ sbbq(r22, 1048576); // sbb r22, 1048576 IID16341 - __ sbbq(r22, 16777216); // sbb r22, 16777216 IID16342 - __ sbbq(r22, 268435456); // sbb r22, 268435456 IID16343 - __ sbbq(r23, 1); // sbb r23, 1 IID16344 - __ sbbq(r23, 16); // sbb r23, 16 IID16345 - __ sbbq(r23, 256); // sbb r23, 256 IID16346 - __ sbbq(r23, 4096); // sbb r23, 4096 IID16347 - __ sbbq(r23, 65536); // sbb r23, 65536 IID16348 - __ sbbq(r23, 1048576); // sbb r23, 1048576 IID16349 - __ sbbq(r23, 16777216); // sbb r23, 16777216 IID16350 - __ sbbq(r23, 268435456); // sbb r23, 268435456 IID16351 - __ sbbq(r24, 1); // sbb r24, 1 IID16352 - __ sbbq(r24, 16); // sbb r24, 16 IID16353 - __ sbbq(r24, 256); // sbb r24, 256 IID16354 - __ sbbq(r24, 4096); // sbb r24, 4096 IID16355 - __ sbbq(r24, 65536); // sbb r24, 65536 IID16356 - __ sbbq(r24, 1048576); // sbb r24, 1048576 IID16357 - __ sbbq(r24, 16777216); // sbb r24, 16777216 IID16358 - __ sbbq(r24, 268435456); // sbb r24, 268435456 IID16359 - __ sbbq(r25, 1); // sbb r25, 1 IID16360 - __ sbbq(r25, 16); // sbb r25, 16 IID16361 - __ sbbq(r25, 256); // sbb r25, 256 IID16362 - __ sbbq(r25, 4096); // sbb r25, 4096 IID16363 - __ sbbq(r25, 65536); // sbb r25, 65536 IID16364 - __ sbbq(r25, 1048576); // sbb r25, 1048576 IID16365 - __ sbbq(r25, 16777216); // sbb r25, 16777216 IID16366 - __ sbbq(r25, 268435456); // sbb r25, 268435456 IID16367 - __ sbbq(r26, 1); // sbb r26, 1 IID16368 - __ sbbq(r26, 16); // sbb r26, 16 IID16369 - __ sbbq(r26, 256); // sbb r26, 256 IID16370 - __ sbbq(r26, 4096); // sbb r26, 4096 IID16371 - __ sbbq(r26, 65536); // sbb r26, 65536 IID16372 - __ sbbq(r26, 1048576); // sbb r26, 1048576 IID16373 - __ sbbq(r26, 16777216); // sbb r26, 16777216 IID16374 - __ sbbq(r26, 268435456); // sbb r26, 268435456 IID16375 - __ sbbq(r27, 1); // sbb r27, 1 IID16376 - __ sbbq(r27, 16); // sbb r27, 16 IID16377 - __ sbbq(r27, 256); // sbb r27, 256 IID16378 - __ sbbq(r27, 4096); // sbb r27, 4096 IID16379 - __ sbbq(r27, 65536); // sbb r27, 65536 IID16380 - __ sbbq(r27, 1048576); // sbb r27, 1048576 IID16381 - __ sbbq(r27, 16777216); // sbb r27, 16777216 IID16382 - __ sbbq(r27, 268435456); // sbb r27, 268435456 IID16383 - __ sbbq(r28, 1); // sbb r28, 1 IID16384 - __ sbbq(r28, 16); // sbb r28, 16 IID16385 - __ sbbq(r28, 256); // sbb r28, 256 IID16386 - __ sbbq(r28, 4096); // sbb r28, 4096 IID16387 - __ sbbq(r28, 65536); // sbb r28, 65536 IID16388 - __ sbbq(r28, 1048576); // sbb r28, 1048576 IID16389 - __ sbbq(r28, 16777216); // sbb r28, 16777216 IID16390 - __ sbbq(r28, 268435456); // sbb r28, 268435456 IID16391 - __ sbbq(r29, 1); // sbb r29, 1 IID16392 - __ sbbq(r29, 16); // sbb r29, 16 IID16393 - __ sbbq(r29, 256); // sbb r29, 256 IID16394 - __ sbbq(r29, 4096); // sbb r29, 4096 IID16395 - __ sbbq(r29, 65536); // sbb r29, 65536 IID16396 - __ sbbq(r29, 1048576); // sbb r29, 1048576 IID16397 - __ sbbq(r29, 16777216); // sbb r29, 16777216 IID16398 - __ sbbq(r29, 268435456); // sbb r29, 268435456 IID16399 - __ sbbq(r30, 1); // sbb r30, 1 IID16400 - __ sbbq(r30, 16); // sbb r30, 16 IID16401 - __ sbbq(r30, 256); // sbb r30, 256 IID16402 - __ sbbq(r30, 4096); // sbb r30, 4096 IID16403 - __ sbbq(r30, 65536); // sbb r30, 65536 IID16404 - __ sbbq(r30, 1048576); // sbb r30, 1048576 IID16405 - __ sbbq(r30, 16777216); // sbb r30, 16777216 IID16406 - __ sbbq(r30, 268435456); // sbb r30, 268435456 IID16407 - __ sbbq(r31, 1); // sbb r31, 1 IID16408 - __ sbbq(r31, 16); // sbb r31, 16 IID16409 - __ sbbq(r31, 256); // sbb r31, 256 IID16410 - __ sbbq(r31, 4096); // sbb r31, 4096 IID16411 - __ sbbq(r31, 65536); // sbb r31, 65536 IID16412 - __ sbbq(r31, 1048576); // sbb r31, 1048576 IID16413 - __ sbbq(r31, 16777216); // sbb r31, 16777216 IID16414 - __ sbbq(r31, 268435456); // sbb r31, 268435456 IID16415 - __ shlq(rcx, 1); // shl rcx, 1 IID16416 - __ shlq(rcx, 2); // shl rcx, 2 IID16417 - __ shlq(rcx, 4); // shl rcx, 4 IID16418 - __ shlq(rcx, 8); // shl rcx, 8 IID16419 - __ shlq(rcx, 16); // shl rcx, 16 IID16420 - __ shlq(rdx, 1); // shl rdx, 1 IID16421 - __ shlq(rdx, 2); // shl rdx, 2 IID16422 - __ shlq(rdx, 4); // shl rdx, 4 IID16423 - __ shlq(rdx, 8); // shl rdx, 8 IID16424 - __ shlq(rdx, 16); // shl rdx, 16 IID16425 - __ shlq(rbx, 1); // shl rbx, 1 IID16426 - __ shlq(rbx, 2); // shl rbx, 2 IID16427 - __ shlq(rbx, 4); // shl rbx, 4 IID16428 - __ shlq(rbx, 8); // shl rbx, 8 IID16429 - __ shlq(rbx, 16); // shl rbx, 16 IID16430 - __ shlq(r8, 1); // shl r8, 1 IID16431 - __ shlq(r8, 2); // shl r8, 2 IID16432 - __ shlq(r8, 4); // shl r8, 4 IID16433 - __ shlq(r8, 8); // shl r8, 8 IID16434 - __ shlq(r8, 16); // shl r8, 16 IID16435 - __ shlq(r9, 1); // shl r9, 1 IID16436 - __ shlq(r9, 2); // shl r9, 2 IID16437 - __ shlq(r9, 4); // shl r9, 4 IID16438 - __ shlq(r9, 8); // shl r9, 8 IID16439 - __ shlq(r9, 16); // shl r9, 16 IID16440 - __ shlq(r10, 1); // shl r10, 1 IID16441 - __ shlq(r10, 2); // shl r10, 2 IID16442 - __ shlq(r10, 4); // shl r10, 4 IID16443 - __ shlq(r10, 8); // shl r10, 8 IID16444 - __ shlq(r10, 16); // shl r10, 16 IID16445 - __ shlq(r11, 1); // shl r11, 1 IID16446 - __ shlq(r11, 2); // shl r11, 2 IID16447 - __ shlq(r11, 4); // shl r11, 4 IID16448 - __ shlq(r11, 8); // shl r11, 8 IID16449 - __ shlq(r11, 16); // shl r11, 16 IID16450 - __ shlq(r12, 1); // shl r12, 1 IID16451 - __ shlq(r12, 2); // shl r12, 2 IID16452 - __ shlq(r12, 4); // shl r12, 4 IID16453 - __ shlq(r12, 8); // shl r12, 8 IID16454 - __ shlq(r12, 16); // shl r12, 16 IID16455 - __ shlq(r13, 1); // shl r13, 1 IID16456 - __ shlq(r13, 2); // shl r13, 2 IID16457 - __ shlq(r13, 4); // shl r13, 4 IID16458 - __ shlq(r13, 8); // shl r13, 8 IID16459 - __ shlq(r13, 16); // shl r13, 16 IID16460 - __ shlq(r14, 1); // shl r14, 1 IID16461 - __ shlq(r14, 2); // shl r14, 2 IID16462 - __ shlq(r14, 4); // shl r14, 4 IID16463 - __ shlq(r14, 8); // shl r14, 8 IID16464 - __ shlq(r14, 16); // shl r14, 16 IID16465 - __ shlq(r15, 1); // shl r15, 1 IID16466 - __ shlq(r15, 2); // shl r15, 2 IID16467 - __ shlq(r15, 4); // shl r15, 4 IID16468 - __ shlq(r15, 8); // shl r15, 8 IID16469 - __ shlq(r15, 16); // shl r15, 16 IID16470 - __ shlq(r16, 1); // shl r16, 1 IID16471 - __ shlq(r16, 2); // shl r16, 2 IID16472 - __ shlq(r16, 4); // shl r16, 4 IID16473 - __ shlq(r16, 8); // shl r16, 8 IID16474 - __ shlq(r16, 16); // shl r16, 16 IID16475 - __ shlq(r17, 1); // shl r17, 1 IID16476 - __ shlq(r17, 2); // shl r17, 2 IID16477 - __ shlq(r17, 4); // shl r17, 4 IID16478 - __ shlq(r17, 8); // shl r17, 8 IID16479 - __ shlq(r17, 16); // shl r17, 16 IID16480 - __ shlq(r18, 1); // shl r18, 1 IID16481 - __ shlq(r18, 2); // shl r18, 2 IID16482 - __ shlq(r18, 4); // shl r18, 4 IID16483 - __ shlq(r18, 8); // shl r18, 8 IID16484 - __ shlq(r18, 16); // shl r18, 16 IID16485 - __ shlq(r19, 1); // shl r19, 1 IID16486 - __ shlq(r19, 2); // shl r19, 2 IID16487 - __ shlq(r19, 4); // shl r19, 4 IID16488 - __ shlq(r19, 8); // shl r19, 8 IID16489 - __ shlq(r19, 16); // shl r19, 16 IID16490 - __ shlq(r20, 1); // shl r20, 1 IID16491 - __ shlq(r20, 2); // shl r20, 2 IID16492 - __ shlq(r20, 4); // shl r20, 4 IID16493 - __ shlq(r20, 8); // shl r20, 8 IID16494 - __ shlq(r20, 16); // shl r20, 16 IID16495 - __ shlq(r21, 1); // shl r21, 1 IID16496 - __ shlq(r21, 2); // shl r21, 2 IID16497 - __ shlq(r21, 4); // shl r21, 4 IID16498 - __ shlq(r21, 8); // shl r21, 8 IID16499 - __ shlq(r21, 16); // shl r21, 16 IID16500 - __ shlq(r22, 1); // shl r22, 1 IID16501 - __ shlq(r22, 2); // shl r22, 2 IID16502 - __ shlq(r22, 4); // shl r22, 4 IID16503 - __ shlq(r22, 8); // shl r22, 8 IID16504 - __ shlq(r22, 16); // shl r22, 16 IID16505 - __ shlq(r23, 1); // shl r23, 1 IID16506 - __ shlq(r23, 2); // shl r23, 2 IID16507 - __ shlq(r23, 4); // shl r23, 4 IID16508 - __ shlq(r23, 8); // shl r23, 8 IID16509 - __ shlq(r23, 16); // shl r23, 16 IID16510 - __ shlq(r24, 1); // shl r24, 1 IID16511 - __ shlq(r24, 2); // shl r24, 2 IID16512 - __ shlq(r24, 4); // shl r24, 4 IID16513 - __ shlq(r24, 8); // shl r24, 8 IID16514 - __ shlq(r24, 16); // shl r24, 16 IID16515 - __ shlq(r25, 1); // shl r25, 1 IID16516 - __ shlq(r25, 2); // shl r25, 2 IID16517 - __ shlq(r25, 4); // shl r25, 4 IID16518 - __ shlq(r25, 8); // shl r25, 8 IID16519 - __ shlq(r25, 16); // shl r25, 16 IID16520 - __ shlq(r26, 1); // shl r26, 1 IID16521 - __ shlq(r26, 2); // shl r26, 2 IID16522 - __ shlq(r26, 4); // shl r26, 4 IID16523 - __ shlq(r26, 8); // shl r26, 8 IID16524 - __ shlq(r26, 16); // shl r26, 16 IID16525 - __ shlq(r27, 1); // shl r27, 1 IID16526 - __ shlq(r27, 2); // shl r27, 2 IID16527 - __ shlq(r27, 4); // shl r27, 4 IID16528 - __ shlq(r27, 8); // shl r27, 8 IID16529 - __ shlq(r27, 16); // shl r27, 16 IID16530 - __ shlq(r28, 1); // shl r28, 1 IID16531 - __ shlq(r28, 2); // shl r28, 2 IID16532 - __ shlq(r28, 4); // shl r28, 4 IID16533 - __ shlq(r28, 8); // shl r28, 8 IID16534 - __ shlq(r28, 16); // shl r28, 16 IID16535 - __ shlq(r29, 1); // shl r29, 1 IID16536 - __ shlq(r29, 2); // shl r29, 2 IID16537 - __ shlq(r29, 4); // shl r29, 4 IID16538 - __ shlq(r29, 8); // shl r29, 8 IID16539 - __ shlq(r29, 16); // shl r29, 16 IID16540 - __ shlq(r30, 1); // shl r30, 1 IID16541 - __ shlq(r30, 2); // shl r30, 2 IID16542 - __ shlq(r30, 4); // shl r30, 4 IID16543 - __ shlq(r30, 8); // shl r30, 8 IID16544 - __ shlq(r30, 16); // shl r30, 16 IID16545 - __ shlq(r31, 1); // shl r31, 1 IID16546 - __ shlq(r31, 2); // shl r31, 2 IID16547 - __ shlq(r31, 4); // shl r31, 4 IID16548 - __ shlq(r31, 8); // shl r31, 8 IID16549 - __ shlq(r31, 16); // shl r31, 16 IID16550 - __ shrq(rcx, 1); // shr rcx, 1 IID16551 - __ shrq(rcx, 2); // shr rcx, 2 IID16552 - __ shrq(rcx, 4); // shr rcx, 4 IID16553 - __ shrq(rcx, 8); // shr rcx, 8 IID16554 - __ shrq(rcx, 16); // shr rcx, 16 IID16555 - __ shrq(rdx, 1); // shr rdx, 1 IID16556 - __ shrq(rdx, 2); // shr rdx, 2 IID16557 - __ shrq(rdx, 4); // shr rdx, 4 IID16558 - __ shrq(rdx, 8); // shr rdx, 8 IID16559 - __ shrq(rdx, 16); // shr rdx, 16 IID16560 - __ shrq(rbx, 1); // shr rbx, 1 IID16561 - __ shrq(rbx, 2); // shr rbx, 2 IID16562 - __ shrq(rbx, 4); // shr rbx, 4 IID16563 - __ shrq(rbx, 8); // shr rbx, 8 IID16564 - __ shrq(rbx, 16); // shr rbx, 16 IID16565 - __ shrq(r8, 1); // shr r8, 1 IID16566 - __ shrq(r8, 2); // shr r8, 2 IID16567 - __ shrq(r8, 4); // shr r8, 4 IID16568 - __ shrq(r8, 8); // shr r8, 8 IID16569 - __ shrq(r8, 16); // shr r8, 16 IID16570 - __ shrq(r9, 1); // shr r9, 1 IID16571 - __ shrq(r9, 2); // shr r9, 2 IID16572 - __ shrq(r9, 4); // shr r9, 4 IID16573 - __ shrq(r9, 8); // shr r9, 8 IID16574 - __ shrq(r9, 16); // shr r9, 16 IID16575 - __ shrq(r10, 1); // shr r10, 1 IID16576 - __ shrq(r10, 2); // shr r10, 2 IID16577 - __ shrq(r10, 4); // shr r10, 4 IID16578 - __ shrq(r10, 8); // shr r10, 8 IID16579 - __ shrq(r10, 16); // shr r10, 16 IID16580 - __ shrq(r11, 1); // shr r11, 1 IID16581 - __ shrq(r11, 2); // shr r11, 2 IID16582 - __ shrq(r11, 4); // shr r11, 4 IID16583 - __ shrq(r11, 8); // shr r11, 8 IID16584 - __ shrq(r11, 16); // shr r11, 16 IID16585 - __ shrq(r12, 1); // shr r12, 1 IID16586 - __ shrq(r12, 2); // shr r12, 2 IID16587 - __ shrq(r12, 4); // shr r12, 4 IID16588 - __ shrq(r12, 8); // shr r12, 8 IID16589 - __ shrq(r12, 16); // shr r12, 16 IID16590 - __ shrq(r13, 1); // shr r13, 1 IID16591 - __ shrq(r13, 2); // shr r13, 2 IID16592 - __ shrq(r13, 4); // shr r13, 4 IID16593 - __ shrq(r13, 8); // shr r13, 8 IID16594 - __ shrq(r13, 16); // shr r13, 16 IID16595 - __ shrq(r14, 1); // shr r14, 1 IID16596 - __ shrq(r14, 2); // shr r14, 2 IID16597 - __ shrq(r14, 4); // shr r14, 4 IID16598 - __ shrq(r14, 8); // shr r14, 8 IID16599 - __ shrq(r14, 16); // shr r14, 16 IID16600 - __ shrq(r15, 1); // shr r15, 1 IID16601 - __ shrq(r15, 2); // shr r15, 2 IID16602 - __ shrq(r15, 4); // shr r15, 4 IID16603 - __ shrq(r15, 8); // shr r15, 8 IID16604 - __ shrq(r15, 16); // shr r15, 16 IID16605 - __ shrq(r16, 1); // shr r16, 1 IID16606 - __ shrq(r16, 2); // shr r16, 2 IID16607 - __ shrq(r16, 4); // shr r16, 4 IID16608 - __ shrq(r16, 8); // shr r16, 8 IID16609 - __ shrq(r16, 16); // shr r16, 16 IID16610 - __ shrq(r17, 1); // shr r17, 1 IID16611 - __ shrq(r17, 2); // shr r17, 2 IID16612 - __ shrq(r17, 4); // shr r17, 4 IID16613 - __ shrq(r17, 8); // shr r17, 8 IID16614 - __ shrq(r17, 16); // shr r17, 16 IID16615 - __ shrq(r18, 1); // shr r18, 1 IID16616 - __ shrq(r18, 2); // shr r18, 2 IID16617 - __ shrq(r18, 4); // shr r18, 4 IID16618 - __ shrq(r18, 8); // shr r18, 8 IID16619 - __ shrq(r18, 16); // shr r18, 16 IID16620 - __ shrq(r19, 1); // shr r19, 1 IID16621 - __ shrq(r19, 2); // shr r19, 2 IID16622 - __ shrq(r19, 4); // shr r19, 4 IID16623 - __ shrq(r19, 8); // shr r19, 8 IID16624 - __ shrq(r19, 16); // shr r19, 16 IID16625 - __ shrq(r20, 1); // shr r20, 1 IID16626 - __ shrq(r20, 2); // shr r20, 2 IID16627 - __ shrq(r20, 4); // shr r20, 4 IID16628 - __ shrq(r20, 8); // shr r20, 8 IID16629 - __ shrq(r20, 16); // shr r20, 16 IID16630 - __ shrq(r21, 1); // shr r21, 1 IID16631 - __ shrq(r21, 2); // shr r21, 2 IID16632 - __ shrq(r21, 4); // shr r21, 4 IID16633 - __ shrq(r21, 8); // shr r21, 8 IID16634 - __ shrq(r21, 16); // shr r21, 16 IID16635 - __ shrq(r22, 1); // shr r22, 1 IID16636 - __ shrq(r22, 2); // shr r22, 2 IID16637 - __ shrq(r22, 4); // shr r22, 4 IID16638 - __ shrq(r22, 8); // shr r22, 8 IID16639 - __ shrq(r22, 16); // shr r22, 16 IID16640 - __ shrq(r23, 1); // shr r23, 1 IID16641 - __ shrq(r23, 2); // shr r23, 2 IID16642 - __ shrq(r23, 4); // shr r23, 4 IID16643 - __ shrq(r23, 8); // shr r23, 8 IID16644 - __ shrq(r23, 16); // shr r23, 16 IID16645 - __ shrq(r24, 1); // shr r24, 1 IID16646 - __ shrq(r24, 2); // shr r24, 2 IID16647 - __ shrq(r24, 4); // shr r24, 4 IID16648 - __ shrq(r24, 8); // shr r24, 8 IID16649 - __ shrq(r24, 16); // shr r24, 16 IID16650 - __ shrq(r25, 1); // shr r25, 1 IID16651 - __ shrq(r25, 2); // shr r25, 2 IID16652 - __ shrq(r25, 4); // shr r25, 4 IID16653 - __ shrq(r25, 8); // shr r25, 8 IID16654 - __ shrq(r25, 16); // shr r25, 16 IID16655 - __ shrq(r26, 1); // shr r26, 1 IID16656 - __ shrq(r26, 2); // shr r26, 2 IID16657 - __ shrq(r26, 4); // shr r26, 4 IID16658 - __ shrq(r26, 8); // shr r26, 8 IID16659 - __ shrq(r26, 16); // shr r26, 16 IID16660 - __ shrq(r27, 1); // shr r27, 1 IID16661 - __ shrq(r27, 2); // shr r27, 2 IID16662 - __ shrq(r27, 4); // shr r27, 4 IID16663 - __ shrq(r27, 8); // shr r27, 8 IID16664 - __ shrq(r27, 16); // shr r27, 16 IID16665 - __ shrq(r28, 1); // shr r28, 1 IID16666 - __ shrq(r28, 2); // shr r28, 2 IID16667 - __ shrq(r28, 4); // shr r28, 4 IID16668 - __ shrq(r28, 8); // shr r28, 8 IID16669 - __ shrq(r28, 16); // shr r28, 16 IID16670 - __ shrq(r29, 1); // shr r29, 1 IID16671 - __ shrq(r29, 2); // shr r29, 2 IID16672 - __ shrq(r29, 4); // shr r29, 4 IID16673 - __ shrq(r29, 8); // shr r29, 8 IID16674 - __ shrq(r29, 16); // shr r29, 16 IID16675 - __ shrq(r30, 1); // shr r30, 1 IID16676 - __ shrq(r30, 2); // shr r30, 2 IID16677 - __ shrq(r30, 4); // shr r30, 4 IID16678 - __ shrq(r30, 8); // shr r30, 8 IID16679 - __ shrq(r30, 16); // shr r30, 16 IID16680 - __ shrq(r31, 1); // shr r31, 1 IID16681 - __ shrq(r31, 2); // shr r31, 2 IID16682 - __ shrq(r31, 4); // shr r31, 4 IID16683 - __ shrq(r31, 8); // shr r31, 8 IID16684 - __ shrq(r31, 16); // shr r31, 16 IID16685 - __ subq(rcx, 1); // sub rcx, 1 IID16686 - __ subq(rcx, 16); // sub rcx, 16 IID16687 - __ subq(rcx, 256); // sub rcx, 256 IID16688 - __ subq(rcx, 4096); // sub rcx, 4096 IID16689 - __ subq(rcx, 65536); // sub rcx, 65536 IID16690 - __ subq(rcx, 1048576); // sub rcx, 1048576 IID16691 - __ subq(rcx, 16777216); // sub rcx, 16777216 IID16692 - __ subq(rcx, 268435456); // sub rcx, 268435456 IID16693 - __ subq(rdx, 1); // sub rdx, 1 IID16694 - __ subq(rdx, 16); // sub rdx, 16 IID16695 - __ subq(rdx, 256); // sub rdx, 256 IID16696 - __ subq(rdx, 4096); // sub rdx, 4096 IID16697 - __ subq(rdx, 65536); // sub rdx, 65536 IID16698 - __ subq(rdx, 1048576); // sub rdx, 1048576 IID16699 - __ subq(rdx, 16777216); // sub rdx, 16777216 IID16700 - __ subq(rdx, 268435456); // sub rdx, 268435456 IID16701 - __ subq(rbx, 1); // sub rbx, 1 IID16702 - __ subq(rbx, 16); // sub rbx, 16 IID16703 - __ subq(rbx, 256); // sub rbx, 256 IID16704 - __ subq(rbx, 4096); // sub rbx, 4096 IID16705 - __ subq(rbx, 65536); // sub rbx, 65536 IID16706 - __ subq(rbx, 1048576); // sub rbx, 1048576 IID16707 - __ subq(rbx, 16777216); // sub rbx, 16777216 IID16708 - __ subq(rbx, 268435456); // sub rbx, 268435456 IID16709 - __ subq(r8, 1); // sub r8, 1 IID16710 - __ subq(r8, 16); // sub r8, 16 IID16711 - __ subq(r8, 256); // sub r8, 256 IID16712 - __ subq(r8, 4096); // sub r8, 4096 IID16713 - __ subq(r8, 65536); // sub r8, 65536 IID16714 - __ subq(r8, 1048576); // sub r8, 1048576 IID16715 - __ subq(r8, 16777216); // sub r8, 16777216 IID16716 - __ subq(r8, 268435456); // sub r8, 268435456 IID16717 - __ subq(r9, 1); // sub r9, 1 IID16718 - __ subq(r9, 16); // sub r9, 16 IID16719 - __ subq(r9, 256); // sub r9, 256 IID16720 - __ subq(r9, 4096); // sub r9, 4096 IID16721 - __ subq(r9, 65536); // sub r9, 65536 IID16722 - __ subq(r9, 1048576); // sub r9, 1048576 IID16723 - __ subq(r9, 16777216); // sub r9, 16777216 IID16724 - __ subq(r9, 268435456); // sub r9, 268435456 IID16725 - __ subq(r10, 1); // sub r10, 1 IID16726 - __ subq(r10, 16); // sub r10, 16 IID16727 - __ subq(r10, 256); // sub r10, 256 IID16728 - __ subq(r10, 4096); // sub r10, 4096 IID16729 - __ subq(r10, 65536); // sub r10, 65536 IID16730 - __ subq(r10, 1048576); // sub r10, 1048576 IID16731 - __ subq(r10, 16777216); // sub r10, 16777216 IID16732 - __ subq(r10, 268435456); // sub r10, 268435456 IID16733 - __ subq(r11, 1); // sub r11, 1 IID16734 - __ subq(r11, 16); // sub r11, 16 IID16735 - __ subq(r11, 256); // sub r11, 256 IID16736 - __ subq(r11, 4096); // sub r11, 4096 IID16737 - __ subq(r11, 65536); // sub r11, 65536 IID16738 - __ subq(r11, 1048576); // sub r11, 1048576 IID16739 - __ subq(r11, 16777216); // sub r11, 16777216 IID16740 - __ subq(r11, 268435456); // sub r11, 268435456 IID16741 - __ subq(r12, 1); // sub r12, 1 IID16742 - __ subq(r12, 16); // sub r12, 16 IID16743 - __ subq(r12, 256); // sub r12, 256 IID16744 - __ subq(r12, 4096); // sub r12, 4096 IID16745 - __ subq(r12, 65536); // sub r12, 65536 IID16746 - __ subq(r12, 1048576); // sub r12, 1048576 IID16747 - __ subq(r12, 16777216); // sub r12, 16777216 IID16748 - __ subq(r12, 268435456); // sub r12, 268435456 IID16749 - __ subq(r13, 1); // sub r13, 1 IID16750 - __ subq(r13, 16); // sub r13, 16 IID16751 - __ subq(r13, 256); // sub r13, 256 IID16752 - __ subq(r13, 4096); // sub r13, 4096 IID16753 - __ subq(r13, 65536); // sub r13, 65536 IID16754 - __ subq(r13, 1048576); // sub r13, 1048576 IID16755 - __ subq(r13, 16777216); // sub r13, 16777216 IID16756 - __ subq(r13, 268435456); // sub r13, 268435456 IID16757 - __ subq(r14, 1); // sub r14, 1 IID16758 - __ subq(r14, 16); // sub r14, 16 IID16759 - __ subq(r14, 256); // sub r14, 256 IID16760 - __ subq(r14, 4096); // sub r14, 4096 IID16761 - __ subq(r14, 65536); // sub r14, 65536 IID16762 - __ subq(r14, 1048576); // sub r14, 1048576 IID16763 - __ subq(r14, 16777216); // sub r14, 16777216 IID16764 - __ subq(r14, 268435456); // sub r14, 268435456 IID16765 - __ subq(r15, 1); // sub r15, 1 IID16766 - __ subq(r15, 16); // sub r15, 16 IID16767 - __ subq(r15, 256); // sub r15, 256 IID16768 - __ subq(r15, 4096); // sub r15, 4096 IID16769 - __ subq(r15, 65536); // sub r15, 65536 IID16770 - __ subq(r15, 1048576); // sub r15, 1048576 IID16771 - __ subq(r15, 16777216); // sub r15, 16777216 IID16772 - __ subq(r15, 268435456); // sub r15, 268435456 IID16773 - __ subq(r16, 1); // sub r16, 1 IID16774 - __ subq(r16, 16); // sub r16, 16 IID16775 - __ subq(r16, 256); // sub r16, 256 IID16776 - __ subq(r16, 4096); // sub r16, 4096 IID16777 - __ subq(r16, 65536); // sub r16, 65536 IID16778 - __ subq(r16, 1048576); // sub r16, 1048576 IID16779 - __ subq(r16, 16777216); // sub r16, 16777216 IID16780 - __ subq(r16, 268435456); // sub r16, 268435456 IID16781 - __ subq(r17, 1); // sub r17, 1 IID16782 - __ subq(r17, 16); // sub r17, 16 IID16783 - __ subq(r17, 256); // sub r17, 256 IID16784 - __ subq(r17, 4096); // sub r17, 4096 IID16785 - __ subq(r17, 65536); // sub r17, 65536 IID16786 - __ subq(r17, 1048576); // sub r17, 1048576 IID16787 - __ subq(r17, 16777216); // sub r17, 16777216 IID16788 - __ subq(r17, 268435456); // sub r17, 268435456 IID16789 - __ subq(r18, 1); // sub r18, 1 IID16790 - __ subq(r18, 16); // sub r18, 16 IID16791 - __ subq(r18, 256); // sub r18, 256 IID16792 - __ subq(r18, 4096); // sub r18, 4096 IID16793 - __ subq(r18, 65536); // sub r18, 65536 IID16794 - __ subq(r18, 1048576); // sub r18, 1048576 IID16795 - __ subq(r18, 16777216); // sub r18, 16777216 IID16796 - __ subq(r18, 268435456); // sub r18, 268435456 IID16797 - __ subq(r19, 1); // sub r19, 1 IID16798 - __ subq(r19, 16); // sub r19, 16 IID16799 - __ subq(r19, 256); // sub r19, 256 IID16800 - __ subq(r19, 4096); // sub r19, 4096 IID16801 - __ subq(r19, 65536); // sub r19, 65536 IID16802 - __ subq(r19, 1048576); // sub r19, 1048576 IID16803 - __ subq(r19, 16777216); // sub r19, 16777216 IID16804 - __ subq(r19, 268435456); // sub r19, 268435456 IID16805 - __ subq(r20, 1); // sub r20, 1 IID16806 - __ subq(r20, 16); // sub r20, 16 IID16807 - __ subq(r20, 256); // sub r20, 256 IID16808 - __ subq(r20, 4096); // sub r20, 4096 IID16809 - __ subq(r20, 65536); // sub r20, 65536 IID16810 - __ subq(r20, 1048576); // sub r20, 1048576 IID16811 - __ subq(r20, 16777216); // sub r20, 16777216 IID16812 - __ subq(r20, 268435456); // sub r20, 268435456 IID16813 - __ subq(r21, 1); // sub r21, 1 IID16814 - __ subq(r21, 16); // sub r21, 16 IID16815 - __ subq(r21, 256); // sub r21, 256 IID16816 - __ subq(r21, 4096); // sub r21, 4096 IID16817 - __ subq(r21, 65536); // sub r21, 65536 IID16818 - __ subq(r21, 1048576); // sub r21, 1048576 IID16819 - __ subq(r21, 16777216); // sub r21, 16777216 IID16820 - __ subq(r21, 268435456); // sub r21, 268435456 IID16821 - __ subq(r22, 1); // sub r22, 1 IID16822 - __ subq(r22, 16); // sub r22, 16 IID16823 - __ subq(r22, 256); // sub r22, 256 IID16824 - __ subq(r22, 4096); // sub r22, 4096 IID16825 - __ subq(r22, 65536); // sub r22, 65536 IID16826 - __ subq(r22, 1048576); // sub r22, 1048576 IID16827 - __ subq(r22, 16777216); // sub r22, 16777216 IID16828 - __ subq(r22, 268435456); // sub r22, 268435456 IID16829 - __ subq(r23, 1); // sub r23, 1 IID16830 - __ subq(r23, 16); // sub r23, 16 IID16831 - __ subq(r23, 256); // sub r23, 256 IID16832 - __ subq(r23, 4096); // sub r23, 4096 IID16833 - __ subq(r23, 65536); // sub r23, 65536 IID16834 - __ subq(r23, 1048576); // sub r23, 1048576 IID16835 - __ subq(r23, 16777216); // sub r23, 16777216 IID16836 - __ subq(r23, 268435456); // sub r23, 268435456 IID16837 - __ subq(r24, 1); // sub r24, 1 IID16838 - __ subq(r24, 16); // sub r24, 16 IID16839 - __ subq(r24, 256); // sub r24, 256 IID16840 - __ subq(r24, 4096); // sub r24, 4096 IID16841 - __ subq(r24, 65536); // sub r24, 65536 IID16842 - __ subq(r24, 1048576); // sub r24, 1048576 IID16843 - __ subq(r24, 16777216); // sub r24, 16777216 IID16844 - __ subq(r24, 268435456); // sub r24, 268435456 IID16845 - __ subq(r25, 1); // sub r25, 1 IID16846 - __ subq(r25, 16); // sub r25, 16 IID16847 - __ subq(r25, 256); // sub r25, 256 IID16848 - __ subq(r25, 4096); // sub r25, 4096 IID16849 - __ subq(r25, 65536); // sub r25, 65536 IID16850 - __ subq(r25, 1048576); // sub r25, 1048576 IID16851 - __ subq(r25, 16777216); // sub r25, 16777216 IID16852 - __ subq(r25, 268435456); // sub r25, 268435456 IID16853 - __ subq(r26, 1); // sub r26, 1 IID16854 - __ subq(r26, 16); // sub r26, 16 IID16855 - __ subq(r26, 256); // sub r26, 256 IID16856 - __ subq(r26, 4096); // sub r26, 4096 IID16857 - __ subq(r26, 65536); // sub r26, 65536 IID16858 - __ subq(r26, 1048576); // sub r26, 1048576 IID16859 - __ subq(r26, 16777216); // sub r26, 16777216 IID16860 - __ subq(r26, 268435456); // sub r26, 268435456 IID16861 - __ subq(r27, 1); // sub r27, 1 IID16862 - __ subq(r27, 16); // sub r27, 16 IID16863 - __ subq(r27, 256); // sub r27, 256 IID16864 - __ subq(r27, 4096); // sub r27, 4096 IID16865 - __ subq(r27, 65536); // sub r27, 65536 IID16866 - __ subq(r27, 1048576); // sub r27, 1048576 IID16867 - __ subq(r27, 16777216); // sub r27, 16777216 IID16868 - __ subq(r27, 268435456); // sub r27, 268435456 IID16869 - __ subq(r28, 1); // sub r28, 1 IID16870 - __ subq(r28, 16); // sub r28, 16 IID16871 - __ subq(r28, 256); // sub r28, 256 IID16872 - __ subq(r28, 4096); // sub r28, 4096 IID16873 - __ subq(r28, 65536); // sub r28, 65536 IID16874 - __ subq(r28, 1048576); // sub r28, 1048576 IID16875 - __ subq(r28, 16777216); // sub r28, 16777216 IID16876 - __ subq(r28, 268435456); // sub r28, 268435456 IID16877 - __ subq(r29, 1); // sub r29, 1 IID16878 - __ subq(r29, 16); // sub r29, 16 IID16879 - __ subq(r29, 256); // sub r29, 256 IID16880 - __ subq(r29, 4096); // sub r29, 4096 IID16881 - __ subq(r29, 65536); // sub r29, 65536 IID16882 - __ subq(r29, 1048576); // sub r29, 1048576 IID16883 - __ subq(r29, 16777216); // sub r29, 16777216 IID16884 - __ subq(r29, 268435456); // sub r29, 268435456 IID16885 - __ subq(r30, 1); // sub r30, 1 IID16886 - __ subq(r30, 16); // sub r30, 16 IID16887 - __ subq(r30, 256); // sub r30, 256 IID16888 - __ subq(r30, 4096); // sub r30, 4096 IID16889 - __ subq(r30, 65536); // sub r30, 65536 IID16890 - __ subq(r30, 1048576); // sub r30, 1048576 IID16891 - __ subq(r30, 16777216); // sub r30, 16777216 IID16892 - __ subq(r30, 268435456); // sub r30, 268435456 IID16893 - __ subq(r31, 1); // sub r31, 1 IID16894 - __ subq(r31, 16); // sub r31, 16 IID16895 - __ subq(r31, 256); // sub r31, 256 IID16896 - __ subq(r31, 4096); // sub r31, 4096 IID16897 - __ subq(r31, 65536); // sub r31, 65536 IID16898 - __ subq(r31, 1048576); // sub r31, 1048576 IID16899 - __ subq(r31, 16777216); // sub r31, 16777216 IID16900 - __ subq(r31, 268435456); // sub r31, 268435456 IID16901 - __ xorq(rcx, 1); // xor rcx, 1 IID16902 - __ xorq(rcx, 16); // xor rcx, 16 IID16903 - __ xorq(rcx, 256); // xor rcx, 256 IID16904 - __ xorq(rcx, 4096); // xor rcx, 4096 IID16905 - __ xorq(rcx, 65536); // xor rcx, 65536 IID16906 - __ xorq(rcx, 1048576); // xor rcx, 1048576 IID16907 - __ xorq(rcx, 16777216); // xor rcx, 16777216 IID16908 - __ xorq(rcx, 268435456); // xor rcx, 268435456 IID16909 - __ xorq(rdx, 1); // xor rdx, 1 IID16910 - __ xorq(rdx, 16); // xor rdx, 16 IID16911 - __ xorq(rdx, 256); // xor rdx, 256 IID16912 - __ xorq(rdx, 4096); // xor rdx, 4096 IID16913 - __ xorq(rdx, 65536); // xor rdx, 65536 IID16914 - __ xorq(rdx, 1048576); // xor rdx, 1048576 IID16915 - __ xorq(rdx, 16777216); // xor rdx, 16777216 IID16916 - __ xorq(rdx, 268435456); // xor rdx, 268435456 IID16917 - __ xorq(rbx, 1); // xor rbx, 1 IID16918 - __ xorq(rbx, 16); // xor rbx, 16 IID16919 - __ xorq(rbx, 256); // xor rbx, 256 IID16920 - __ xorq(rbx, 4096); // xor rbx, 4096 IID16921 - __ xorq(rbx, 65536); // xor rbx, 65536 IID16922 - __ xorq(rbx, 1048576); // xor rbx, 1048576 IID16923 - __ xorq(rbx, 16777216); // xor rbx, 16777216 IID16924 - __ xorq(rbx, 268435456); // xor rbx, 268435456 IID16925 - __ xorq(r8, 1); // xor r8, 1 IID16926 - __ xorq(r8, 16); // xor r8, 16 IID16927 - __ xorq(r8, 256); // xor r8, 256 IID16928 - __ xorq(r8, 4096); // xor r8, 4096 IID16929 - __ xorq(r8, 65536); // xor r8, 65536 IID16930 - __ xorq(r8, 1048576); // xor r8, 1048576 IID16931 - __ xorq(r8, 16777216); // xor r8, 16777216 IID16932 - __ xorq(r8, 268435456); // xor r8, 268435456 IID16933 - __ xorq(r9, 1); // xor r9, 1 IID16934 - __ xorq(r9, 16); // xor r9, 16 IID16935 - __ xorq(r9, 256); // xor r9, 256 IID16936 - __ xorq(r9, 4096); // xor r9, 4096 IID16937 - __ xorq(r9, 65536); // xor r9, 65536 IID16938 - __ xorq(r9, 1048576); // xor r9, 1048576 IID16939 - __ xorq(r9, 16777216); // xor r9, 16777216 IID16940 - __ xorq(r9, 268435456); // xor r9, 268435456 IID16941 - __ xorq(r10, 1); // xor r10, 1 IID16942 - __ xorq(r10, 16); // xor r10, 16 IID16943 - __ xorq(r10, 256); // xor r10, 256 IID16944 - __ xorq(r10, 4096); // xor r10, 4096 IID16945 - __ xorq(r10, 65536); // xor r10, 65536 IID16946 - __ xorq(r10, 1048576); // xor r10, 1048576 IID16947 - __ xorq(r10, 16777216); // xor r10, 16777216 IID16948 - __ xorq(r10, 268435456); // xor r10, 268435456 IID16949 - __ xorq(r11, 1); // xor r11, 1 IID16950 - __ xorq(r11, 16); // xor r11, 16 IID16951 - __ xorq(r11, 256); // xor r11, 256 IID16952 - __ xorq(r11, 4096); // xor r11, 4096 IID16953 - __ xorq(r11, 65536); // xor r11, 65536 IID16954 - __ xorq(r11, 1048576); // xor r11, 1048576 IID16955 - __ xorq(r11, 16777216); // xor r11, 16777216 IID16956 - __ xorq(r11, 268435456); // xor r11, 268435456 IID16957 - __ xorq(r12, 1); // xor r12, 1 IID16958 - __ xorq(r12, 16); // xor r12, 16 IID16959 - __ xorq(r12, 256); // xor r12, 256 IID16960 - __ xorq(r12, 4096); // xor r12, 4096 IID16961 - __ xorq(r12, 65536); // xor r12, 65536 IID16962 - __ xorq(r12, 1048576); // xor r12, 1048576 IID16963 - __ xorq(r12, 16777216); // xor r12, 16777216 IID16964 - __ xorq(r12, 268435456); // xor r12, 268435456 IID16965 - __ xorq(r13, 1); // xor r13, 1 IID16966 - __ xorq(r13, 16); // xor r13, 16 IID16967 - __ xorq(r13, 256); // xor r13, 256 IID16968 - __ xorq(r13, 4096); // xor r13, 4096 IID16969 - __ xorq(r13, 65536); // xor r13, 65536 IID16970 - __ xorq(r13, 1048576); // xor r13, 1048576 IID16971 - __ xorq(r13, 16777216); // xor r13, 16777216 IID16972 - __ xorq(r13, 268435456); // xor r13, 268435456 IID16973 - __ xorq(r14, 1); // xor r14, 1 IID16974 - __ xorq(r14, 16); // xor r14, 16 IID16975 - __ xorq(r14, 256); // xor r14, 256 IID16976 - __ xorq(r14, 4096); // xor r14, 4096 IID16977 - __ xorq(r14, 65536); // xor r14, 65536 IID16978 - __ xorq(r14, 1048576); // xor r14, 1048576 IID16979 - __ xorq(r14, 16777216); // xor r14, 16777216 IID16980 - __ xorq(r14, 268435456); // xor r14, 268435456 IID16981 - __ xorq(r15, 1); // xor r15, 1 IID16982 - __ xorq(r15, 16); // xor r15, 16 IID16983 - __ xorq(r15, 256); // xor r15, 256 IID16984 - __ xorq(r15, 4096); // xor r15, 4096 IID16985 - __ xorq(r15, 65536); // xor r15, 65536 IID16986 - __ xorq(r15, 1048576); // xor r15, 1048576 IID16987 - __ xorq(r15, 16777216); // xor r15, 16777216 IID16988 - __ xorq(r15, 268435456); // xor r15, 268435456 IID16989 - __ xorq(r16, 1); // xor r16, 1 IID16990 - __ xorq(r16, 16); // xor r16, 16 IID16991 - __ xorq(r16, 256); // xor r16, 256 IID16992 - __ xorq(r16, 4096); // xor r16, 4096 IID16993 - __ xorq(r16, 65536); // xor r16, 65536 IID16994 - __ xorq(r16, 1048576); // xor r16, 1048576 IID16995 - __ xorq(r16, 16777216); // xor r16, 16777216 IID16996 - __ xorq(r16, 268435456); // xor r16, 268435456 IID16997 - __ xorq(r17, 1); // xor r17, 1 IID16998 - __ xorq(r17, 16); // xor r17, 16 IID16999 - __ xorq(r17, 256); // xor r17, 256 IID17000 - __ xorq(r17, 4096); // xor r17, 4096 IID17001 - __ xorq(r17, 65536); // xor r17, 65536 IID17002 - __ xorq(r17, 1048576); // xor r17, 1048576 IID17003 - __ xorq(r17, 16777216); // xor r17, 16777216 IID17004 - __ xorq(r17, 268435456); // xor r17, 268435456 IID17005 - __ xorq(r18, 1); // xor r18, 1 IID17006 - __ xorq(r18, 16); // xor r18, 16 IID17007 - __ xorq(r18, 256); // xor r18, 256 IID17008 - __ xorq(r18, 4096); // xor r18, 4096 IID17009 - __ xorq(r18, 65536); // xor r18, 65536 IID17010 - __ xorq(r18, 1048576); // xor r18, 1048576 IID17011 - __ xorq(r18, 16777216); // xor r18, 16777216 IID17012 - __ xorq(r18, 268435456); // xor r18, 268435456 IID17013 - __ xorq(r19, 1); // xor r19, 1 IID17014 - __ xorq(r19, 16); // xor r19, 16 IID17015 - __ xorq(r19, 256); // xor r19, 256 IID17016 - __ xorq(r19, 4096); // xor r19, 4096 IID17017 - __ xorq(r19, 65536); // xor r19, 65536 IID17018 - __ xorq(r19, 1048576); // xor r19, 1048576 IID17019 - __ xorq(r19, 16777216); // xor r19, 16777216 IID17020 - __ xorq(r19, 268435456); // xor r19, 268435456 IID17021 - __ xorq(r20, 1); // xor r20, 1 IID17022 - __ xorq(r20, 16); // xor r20, 16 IID17023 - __ xorq(r20, 256); // xor r20, 256 IID17024 - __ xorq(r20, 4096); // xor r20, 4096 IID17025 - __ xorq(r20, 65536); // xor r20, 65536 IID17026 - __ xorq(r20, 1048576); // xor r20, 1048576 IID17027 - __ xorq(r20, 16777216); // xor r20, 16777216 IID17028 - __ xorq(r20, 268435456); // xor r20, 268435456 IID17029 - __ xorq(r21, 1); // xor r21, 1 IID17030 - __ xorq(r21, 16); // xor r21, 16 IID17031 - __ xorq(r21, 256); // xor r21, 256 IID17032 - __ xorq(r21, 4096); // xor r21, 4096 IID17033 - __ xorq(r21, 65536); // xor r21, 65536 IID17034 - __ xorq(r21, 1048576); // xor r21, 1048576 IID17035 - __ xorq(r21, 16777216); // xor r21, 16777216 IID17036 - __ xorq(r21, 268435456); // xor r21, 268435456 IID17037 - __ xorq(r22, 1); // xor r22, 1 IID17038 - __ xorq(r22, 16); // xor r22, 16 IID17039 - __ xorq(r22, 256); // xor r22, 256 IID17040 - __ xorq(r22, 4096); // xor r22, 4096 IID17041 - __ xorq(r22, 65536); // xor r22, 65536 IID17042 - __ xorq(r22, 1048576); // xor r22, 1048576 IID17043 - __ xorq(r22, 16777216); // xor r22, 16777216 IID17044 - __ xorq(r22, 268435456); // xor r22, 268435456 IID17045 - __ xorq(r23, 1); // xor r23, 1 IID17046 - __ xorq(r23, 16); // xor r23, 16 IID17047 - __ xorq(r23, 256); // xor r23, 256 IID17048 - __ xorq(r23, 4096); // xor r23, 4096 IID17049 - __ xorq(r23, 65536); // xor r23, 65536 IID17050 - __ xorq(r23, 1048576); // xor r23, 1048576 IID17051 - __ xorq(r23, 16777216); // xor r23, 16777216 IID17052 - __ xorq(r23, 268435456); // xor r23, 268435456 IID17053 - __ xorq(r24, 1); // xor r24, 1 IID17054 - __ xorq(r24, 16); // xor r24, 16 IID17055 - __ xorq(r24, 256); // xor r24, 256 IID17056 - __ xorq(r24, 4096); // xor r24, 4096 IID17057 - __ xorq(r24, 65536); // xor r24, 65536 IID17058 - __ xorq(r24, 1048576); // xor r24, 1048576 IID17059 - __ xorq(r24, 16777216); // xor r24, 16777216 IID17060 - __ xorq(r24, 268435456); // xor r24, 268435456 IID17061 - __ xorq(r25, 1); // xor r25, 1 IID17062 - __ xorq(r25, 16); // xor r25, 16 IID17063 - __ xorq(r25, 256); // xor r25, 256 IID17064 - __ xorq(r25, 4096); // xor r25, 4096 IID17065 - __ xorq(r25, 65536); // xor r25, 65536 IID17066 - __ xorq(r25, 1048576); // xor r25, 1048576 IID17067 - __ xorq(r25, 16777216); // xor r25, 16777216 IID17068 - __ xorq(r25, 268435456); // xor r25, 268435456 IID17069 - __ xorq(r26, 1); // xor r26, 1 IID17070 - __ xorq(r26, 16); // xor r26, 16 IID17071 - __ xorq(r26, 256); // xor r26, 256 IID17072 - __ xorq(r26, 4096); // xor r26, 4096 IID17073 - __ xorq(r26, 65536); // xor r26, 65536 IID17074 - __ xorq(r26, 1048576); // xor r26, 1048576 IID17075 - __ xorq(r26, 16777216); // xor r26, 16777216 IID17076 - __ xorq(r26, 268435456); // xor r26, 268435456 IID17077 - __ xorq(r27, 1); // xor r27, 1 IID17078 - __ xorq(r27, 16); // xor r27, 16 IID17079 - __ xorq(r27, 256); // xor r27, 256 IID17080 - __ xorq(r27, 4096); // xor r27, 4096 IID17081 - __ xorq(r27, 65536); // xor r27, 65536 IID17082 - __ xorq(r27, 1048576); // xor r27, 1048576 IID17083 - __ xorq(r27, 16777216); // xor r27, 16777216 IID17084 - __ xorq(r27, 268435456); // xor r27, 268435456 IID17085 - __ xorq(r28, 1); // xor r28, 1 IID17086 - __ xorq(r28, 16); // xor r28, 16 IID17087 - __ xorq(r28, 256); // xor r28, 256 IID17088 - __ xorq(r28, 4096); // xor r28, 4096 IID17089 - __ xorq(r28, 65536); // xor r28, 65536 IID17090 - __ xorq(r28, 1048576); // xor r28, 1048576 IID17091 - __ xorq(r28, 16777216); // xor r28, 16777216 IID17092 - __ xorq(r28, 268435456); // xor r28, 268435456 IID17093 - __ xorq(r29, 1); // xor r29, 1 IID17094 - __ xorq(r29, 16); // xor r29, 16 IID17095 - __ xorq(r29, 256); // xor r29, 256 IID17096 - __ xorq(r29, 4096); // xor r29, 4096 IID17097 - __ xorq(r29, 65536); // xor r29, 65536 IID17098 - __ xorq(r29, 1048576); // xor r29, 1048576 IID17099 - __ xorq(r29, 16777216); // xor r29, 16777216 IID17100 - __ xorq(r29, 268435456); // xor r29, 268435456 IID17101 - __ xorq(r30, 1); // xor r30, 1 IID17102 - __ xorq(r30, 16); // xor r30, 16 IID17103 - __ xorq(r30, 256); // xor r30, 256 IID17104 - __ xorq(r30, 4096); // xor r30, 4096 IID17105 - __ xorq(r30, 65536); // xor r30, 65536 IID17106 - __ xorq(r30, 1048576); // xor r30, 1048576 IID17107 - __ xorq(r30, 16777216); // xor r30, 16777216 IID17108 - __ xorq(r30, 268435456); // xor r30, 268435456 IID17109 - __ xorq(r31, 1); // xor r31, 1 IID17110 - __ xorq(r31, 16); // xor r31, 16 IID17111 - __ xorq(r31, 256); // xor r31, 256 IID17112 - __ xorq(r31, 4096); // xor r31, 4096 IID17113 - __ xorq(r31, 65536); // xor r31, 65536 IID17114 - __ xorq(r31, 1048576); // xor r31, 1048576 IID17115 - __ xorq(r31, 16777216); // xor r31, 16777216 IID17116 - __ xorq(r31, 268435456); // xor r31, 268435456 IID17117 - __ movq(rcx, 1); // mov rcx, 1 IID17118 - __ movq(rcx, 16); // mov rcx, 16 IID17119 - __ movq(rcx, 256); // mov rcx, 256 IID17120 - __ movq(rcx, 4096); // mov rcx, 4096 IID17121 - __ movq(rcx, 65536); // mov rcx, 65536 IID17122 - __ movq(rcx, 1048576); // mov rcx, 1048576 IID17123 - __ movq(rcx, 16777216); // mov rcx, 16777216 IID17124 - __ movq(rcx, 268435456); // mov rcx, 268435456 IID17125 - __ movq(rdx, 1); // mov rdx, 1 IID17126 - __ movq(rdx, 16); // mov rdx, 16 IID17127 - __ movq(rdx, 256); // mov rdx, 256 IID17128 - __ movq(rdx, 4096); // mov rdx, 4096 IID17129 - __ movq(rdx, 65536); // mov rdx, 65536 IID17130 - __ movq(rdx, 1048576); // mov rdx, 1048576 IID17131 - __ movq(rdx, 16777216); // mov rdx, 16777216 IID17132 - __ movq(rdx, 268435456); // mov rdx, 268435456 IID17133 - __ movq(rbx, 1); // mov rbx, 1 IID17134 - __ movq(rbx, 16); // mov rbx, 16 IID17135 - __ movq(rbx, 256); // mov rbx, 256 IID17136 - __ movq(rbx, 4096); // mov rbx, 4096 IID17137 - __ movq(rbx, 65536); // mov rbx, 65536 IID17138 - __ movq(rbx, 1048576); // mov rbx, 1048576 IID17139 - __ movq(rbx, 16777216); // mov rbx, 16777216 IID17140 - __ movq(rbx, 268435456); // mov rbx, 268435456 IID17141 - __ movq(r8, 1); // mov r8, 1 IID17142 - __ movq(r8, 16); // mov r8, 16 IID17143 - __ movq(r8, 256); // mov r8, 256 IID17144 - __ movq(r8, 4096); // mov r8, 4096 IID17145 - __ movq(r8, 65536); // mov r8, 65536 IID17146 - __ movq(r8, 1048576); // mov r8, 1048576 IID17147 - __ movq(r8, 16777216); // mov r8, 16777216 IID17148 - __ movq(r8, 268435456); // mov r8, 268435456 IID17149 - __ movq(r9, 1); // mov r9, 1 IID17150 - __ movq(r9, 16); // mov r9, 16 IID17151 - __ movq(r9, 256); // mov r9, 256 IID17152 - __ movq(r9, 4096); // mov r9, 4096 IID17153 - __ movq(r9, 65536); // mov r9, 65536 IID17154 - __ movq(r9, 1048576); // mov r9, 1048576 IID17155 - __ movq(r9, 16777216); // mov r9, 16777216 IID17156 - __ movq(r9, 268435456); // mov r9, 268435456 IID17157 - __ movq(r10, 1); // mov r10, 1 IID17158 - __ movq(r10, 16); // mov r10, 16 IID17159 - __ movq(r10, 256); // mov r10, 256 IID17160 - __ movq(r10, 4096); // mov r10, 4096 IID17161 - __ movq(r10, 65536); // mov r10, 65536 IID17162 - __ movq(r10, 1048576); // mov r10, 1048576 IID17163 - __ movq(r10, 16777216); // mov r10, 16777216 IID17164 - __ movq(r10, 268435456); // mov r10, 268435456 IID17165 - __ movq(r11, 1); // mov r11, 1 IID17166 - __ movq(r11, 16); // mov r11, 16 IID17167 - __ movq(r11, 256); // mov r11, 256 IID17168 - __ movq(r11, 4096); // mov r11, 4096 IID17169 - __ movq(r11, 65536); // mov r11, 65536 IID17170 - __ movq(r11, 1048576); // mov r11, 1048576 IID17171 - __ movq(r11, 16777216); // mov r11, 16777216 IID17172 - __ movq(r11, 268435456); // mov r11, 268435456 IID17173 - __ movq(r12, 1); // mov r12, 1 IID17174 - __ movq(r12, 16); // mov r12, 16 IID17175 - __ movq(r12, 256); // mov r12, 256 IID17176 - __ movq(r12, 4096); // mov r12, 4096 IID17177 - __ movq(r12, 65536); // mov r12, 65536 IID17178 - __ movq(r12, 1048576); // mov r12, 1048576 IID17179 - __ movq(r12, 16777216); // mov r12, 16777216 IID17180 - __ movq(r12, 268435456); // mov r12, 268435456 IID17181 - __ movq(r13, 1); // mov r13, 1 IID17182 - __ movq(r13, 16); // mov r13, 16 IID17183 - __ movq(r13, 256); // mov r13, 256 IID17184 - __ movq(r13, 4096); // mov r13, 4096 IID17185 - __ movq(r13, 65536); // mov r13, 65536 IID17186 - __ movq(r13, 1048576); // mov r13, 1048576 IID17187 - __ movq(r13, 16777216); // mov r13, 16777216 IID17188 - __ movq(r13, 268435456); // mov r13, 268435456 IID17189 - __ movq(r14, 1); // mov r14, 1 IID17190 - __ movq(r14, 16); // mov r14, 16 IID17191 - __ movq(r14, 256); // mov r14, 256 IID17192 - __ movq(r14, 4096); // mov r14, 4096 IID17193 - __ movq(r14, 65536); // mov r14, 65536 IID17194 - __ movq(r14, 1048576); // mov r14, 1048576 IID17195 - __ movq(r14, 16777216); // mov r14, 16777216 IID17196 - __ movq(r14, 268435456); // mov r14, 268435456 IID17197 - __ movq(r15, 1); // mov r15, 1 IID17198 - __ movq(r15, 16); // mov r15, 16 IID17199 - __ movq(r15, 256); // mov r15, 256 IID17200 - __ movq(r15, 4096); // mov r15, 4096 IID17201 - __ movq(r15, 65536); // mov r15, 65536 IID17202 - __ movq(r15, 1048576); // mov r15, 1048576 IID17203 - __ movq(r15, 16777216); // mov r15, 16777216 IID17204 - __ movq(r15, 268435456); // mov r15, 268435456 IID17205 - __ movq(r16, 1); // mov r16, 1 IID17206 - __ movq(r16, 16); // mov r16, 16 IID17207 - __ movq(r16, 256); // mov r16, 256 IID17208 - __ movq(r16, 4096); // mov r16, 4096 IID17209 - __ movq(r16, 65536); // mov r16, 65536 IID17210 - __ movq(r16, 1048576); // mov r16, 1048576 IID17211 - __ movq(r16, 16777216); // mov r16, 16777216 IID17212 - __ movq(r16, 268435456); // mov r16, 268435456 IID17213 - __ movq(r17, 1); // mov r17, 1 IID17214 - __ movq(r17, 16); // mov r17, 16 IID17215 - __ movq(r17, 256); // mov r17, 256 IID17216 - __ movq(r17, 4096); // mov r17, 4096 IID17217 - __ movq(r17, 65536); // mov r17, 65536 IID17218 - __ movq(r17, 1048576); // mov r17, 1048576 IID17219 - __ movq(r17, 16777216); // mov r17, 16777216 IID17220 - __ movq(r17, 268435456); // mov r17, 268435456 IID17221 - __ movq(r18, 1); // mov r18, 1 IID17222 - __ movq(r18, 16); // mov r18, 16 IID17223 - __ movq(r18, 256); // mov r18, 256 IID17224 - __ movq(r18, 4096); // mov r18, 4096 IID17225 - __ movq(r18, 65536); // mov r18, 65536 IID17226 - __ movq(r18, 1048576); // mov r18, 1048576 IID17227 - __ movq(r18, 16777216); // mov r18, 16777216 IID17228 - __ movq(r18, 268435456); // mov r18, 268435456 IID17229 - __ movq(r19, 1); // mov r19, 1 IID17230 - __ movq(r19, 16); // mov r19, 16 IID17231 - __ movq(r19, 256); // mov r19, 256 IID17232 - __ movq(r19, 4096); // mov r19, 4096 IID17233 - __ movq(r19, 65536); // mov r19, 65536 IID17234 - __ movq(r19, 1048576); // mov r19, 1048576 IID17235 - __ movq(r19, 16777216); // mov r19, 16777216 IID17236 - __ movq(r19, 268435456); // mov r19, 268435456 IID17237 - __ movq(r20, 1); // mov r20, 1 IID17238 - __ movq(r20, 16); // mov r20, 16 IID17239 - __ movq(r20, 256); // mov r20, 256 IID17240 - __ movq(r20, 4096); // mov r20, 4096 IID17241 - __ movq(r20, 65536); // mov r20, 65536 IID17242 - __ movq(r20, 1048576); // mov r20, 1048576 IID17243 - __ movq(r20, 16777216); // mov r20, 16777216 IID17244 - __ movq(r20, 268435456); // mov r20, 268435456 IID17245 - __ movq(r21, 1); // mov r21, 1 IID17246 - __ movq(r21, 16); // mov r21, 16 IID17247 - __ movq(r21, 256); // mov r21, 256 IID17248 - __ movq(r21, 4096); // mov r21, 4096 IID17249 - __ movq(r21, 65536); // mov r21, 65536 IID17250 - __ movq(r21, 1048576); // mov r21, 1048576 IID17251 - __ movq(r21, 16777216); // mov r21, 16777216 IID17252 - __ movq(r21, 268435456); // mov r21, 268435456 IID17253 - __ movq(r22, 1); // mov r22, 1 IID17254 - __ movq(r22, 16); // mov r22, 16 IID17255 - __ movq(r22, 256); // mov r22, 256 IID17256 - __ movq(r22, 4096); // mov r22, 4096 IID17257 - __ movq(r22, 65536); // mov r22, 65536 IID17258 - __ movq(r22, 1048576); // mov r22, 1048576 IID17259 - __ movq(r22, 16777216); // mov r22, 16777216 IID17260 - __ movq(r22, 268435456); // mov r22, 268435456 IID17261 - __ movq(r23, 1); // mov r23, 1 IID17262 - __ movq(r23, 16); // mov r23, 16 IID17263 - __ movq(r23, 256); // mov r23, 256 IID17264 - __ movq(r23, 4096); // mov r23, 4096 IID17265 - __ movq(r23, 65536); // mov r23, 65536 IID17266 - __ movq(r23, 1048576); // mov r23, 1048576 IID17267 - __ movq(r23, 16777216); // mov r23, 16777216 IID17268 - __ movq(r23, 268435456); // mov r23, 268435456 IID17269 - __ movq(r24, 1); // mov r24, 1 IID17270 - __ movq(r24, 16); // mov r24, 16 IID17271 - __ movq(r24, 256); // mov r24, 256 IID17272 - __ movq(r24, 4096); // mov r24, 4096 IID17273 - __ movq(r24, 65536); // mov r24, 65536 IID17274 - __ movq(r24, 1048576); // mov r24, 1048576 IID17275 - __ movq(r24, 16777216); // mov r24, 16777216 IID17276 - __ movq(r24, 268435456); // mov r24, 268435456 IID17277 - __ movq(r25, 1); // mov r25, 1 IID17278 - __ movq(r25, 16); // mov r25, 16 IID17279 - __ movq(r25, 256); // mov r25, 256 IID17280 - __ movq(r25, 4096); // mov r25, 4096 IID17281 - __ movq(r25, 65536); // mov r25, 65536 IID17282 - __ movq(r25, 1048576); // mov r25, 1048576 IID17283 - __ movq(r25, 16777216); // mov r25, 16777216 IID17284 - __ movq(r25, 268435456); // mov r25, 268435456 IID17285 - __ movq(r26, 1); // mov r26, 1 IID17286 - __ movq(r26, 16); // mov r26, 16 IID17287 - __ movq(r26, 256); // mov r26, 256 IID17288 - __ movq(r26, 4096); // mov r26, 4096 IID17289 - __ movq(r26, 65536); // mov r26, 65536 IID17290 - __ movq(r26, 1048576); // mov r26, 1048576 IID17291 - __ movq(r26, 16777216); // mov r26, 16777216 IID17292 - __ movq(r26, 268435456); // mov r26, 268435456 IID17293 - __ movq(r27, 1); // mov r27, 1 IID17294 - __ movq(r27, 16); // mov r27, 16 IID17295 - __ movq(r27, 256); // mov r27, 256 IID17296 - __ movq(r27, 4096); // mov r27, 4096 IID17297 - __ movq(r27, 65536); // mov r27, 65536 IID17298 - __ movq(r27, 1048576); // mov r27, 1048576 IID17299 - __ movq(r27, 16777216); // mov r27, 16777216 IID17300 - __ movq(r27, 268435456); // mov r27, 268435456 IID17301 - __ movq(r28, 1); // mov r28, 1 IID17302 - __ movq(r28, 16); // mov r28, 16 IID17303 - __ movq(r28, 256); // mov r28, 256 IID17304 - __ movq(r28, 4096); // mov r28, 4096 IID17305 - __ movq(r28, 65536); // mov r28, 65536 IID17306 - __ movq(r28, 1048576); // mov r28, 1048576 IID17307 - __ movq(r28, 16777216); // mov r28, 16777216 IID17308 - __ movq(r28, 268435456); // mov r28, 268435456 IID17309 - __ movq(r29, 1); // mov r29, 1 IID17310 - __ movq(r29, 16); // mov r29, 16 IID17311 - __ movq(r29, 256); // mov r29, 256 IID17312 - __ movq(r29, 4096); // mov r29, 4096 IID17313 - __ movq(r29, 65536); // mov r29, 65536 IID17314 - __ movq(r29, 1048576); // mov r29, 1048576 IID17315 - __ movq(r29, 16777216); // mov r29, 16777216 IID17316 - __ movq(r29, 268435456); // mov r29, 268435456 IID17317 - __ movq(r30, 1); // mov r30, 1 IID17318 - __ movq(r30, 16); // mov r30, 16 IID17319 - __ movq(r30, 256); // mov r30, 256 IID17320 - __ movq(r30, 4096); // mov r30, 4096 IID17321 - __ movq(r30, 65536); // mov r30, 65536 IID17322 - __ movq(r30, 1048576); // mov r30, 1048576 IID17323 - __ movq(r30, 16777216); // mov r30, 16777216 IID17324 - __ movq(r30, 268435456); // mov r30, 268435456 IID17325 - __ movq(r31, 1); // mov r31, 1 IID17326 - __ movq(r31, 16); // mov r31, 16 IID17327 - __ movq(r31, 256); // mov r31, 256 IID17328 - __ movq(r31, 4096); // mov r31, 4096 IID17329 - __ movq(r31, 65536); // mov r31, 65536 IID17330 - __ movq(r31, 1048576); // mov r31, 1048576 IID17331 - __ movq(r31, 16777216); // mov r31, 16777216 IID17332 - __ movq(r31, 268435456); // mov r31, 268435456 IID17333 - __ mov64(rcx, 4294967296); // mov rcx, 4294967296 IID17334 - __ mov64(rcx, 17179869184); // mov rcx, 17179869184 IID17335 - __ mov64(rcx, 68719476736); // mov rcx, 68719476736 IID17336 - __ mov64(rcx, 274877906944); // mov rcx, 274877906944 IID17337 - __ mov64(rcx, 1099511627776); // mov rcx, 1099511627776 IID17338 - __ mov64(rcx, 4398046511104); // mov rcx, 4398046511104 IID17339 - __ mov64(rcx, 17592186044416); // mov rcx, 17592186044416 IID17340 - __ mov64(rcx, 70368744177664); // mov rcx, 70368744177664 IID17341 - __ mov64(rcx, 281474976710656); // mov rcx, 281474976710656 IID17342 - __ mov64(rcx, 1125899906842624); // mov rcx, 1125899906842624 IID17343 - __ mov64(rcx, 4503599627370496); // mov rcx, 4503599627370496 IID17344 - __ mov64(rcx, 18014398509481984); // mov rcx, 18014398509481984 IID17345 - __ mov64(rcx, 72057594037927936); // mov rcx, 72057594037927936 IID17346 - __ mov64(rcx, 288230376151711744); // mov rcx, 288230376151711744 IID17347 - __ mov64(rcx, 1152921504606846976); // mov rcx, 1152921504606846976 IID17348 - __ mov64(rcx, 4611686018427387904); // mov rcx, 4611686018427387904 IID17349 - __ mov64(rdx, 4294967296); // mov rdx, 4294967296 IID17350 - __ mov64(rdx, 17179869184); // mov rdx, 17179869184 IID17351 - __ mov64(rdx, 68719476736); // mov rdx, 68719476736 IID17352 - __ mov64(rdx, 274877906944); // mov rdx, 274877906944 IID17353 - __ mov64(rdx, 1099511627776); // mov rdx, 1099511627776 IID17354 - __ mov64(rdx, 4398046511104); // mov rdx, 4398046511104 IID17355 - __ mov64(rdx, 17592186044416); // mov rdx, 17592186044416 IID17356 - __ mov64(rdx, 70368744177664); // mov rdx, 70368744177664 IID17357 - __ mov64(rdx, 281474976710656); // mov rdx, 281474976710656 IID17358 - __ mov64(rdx, 1125899906842624); // mov rdx, 1125899906842624 IID17359 - __ mov64(rdx, 4503599627370496); // mov rdx, 4503599627370496 IID17360 - __ mov64(rdx, 18014398509481984); // mov rdx, 18014398509481984 IID17361 - __ mov64(rdx, 72057594037927936); // mov rdx, 72057594037927936 IID17362 - __ mov64(rdx, 288230376151711744); // mov rdx, 288230376151711744 IID17363 - __ mov64(rdx, 1152921504606846976); // mov rdx, 1152921504606846976 IID17364 - __ mov64(rdx, 4611686018427387904); // mov rdx, 4611686018427387904 IID17365 - __ mov64(rbx, 4294967296); // mov rbx, 4294967296 IID17366 - __ mov64(rbx, 17179869184); // mov rbx, 17179869184 IID17367 - __ mov64(rbx, 68719476736); // mov rbx, 68719476736 IID17368 - __ mov64(rbx, 274877906944); // mov rbx, 274877906944 IID17369 - __ mov64(rbx, 1099511627776); // mov rbx, 1099511627776 IID17370 - __ mov64(rbx, 4398046511104); // mov rbx, 4398046511104 IID17371 - __ mov64(rbx, 17592186044416); // mov rbx, 17592186044416 IID17372 - __ mov64(rbx, 70368744177664); // mov rbx, 70368744177664 IID17373 - __ mov64(rbx, 281474976710656); // mov rbx, 281474976710656 IID17374 - __ mov64(rbx, 1125899906842624); // mov rbx, 1125899906842624 IID17375 - __ mov64(rbx, 4503599627370496); // mov rbx, 4503599627370496 IID17376 - __ mov64(rbx, 18014398509481984); // mov rbx, 18014398509481984 IID17377 - __ mov64(rbx, 72057594037927936); // mov rbx, 72057594037927936 IID17378 - __ mov64(rbx, 288230376151711744); // mov rbx, 288230376151711744 IID17379 - __ mov64(rbx, 1152921504606846976); // mov rbx, 1152921504606846976 IID17380 - __ mov64(rbx, 4611686018427387904); // mov rbx, 4611686018427387904 IID17381 - __ mov64(r8, 4294967296); // mov r8, 4294967296 IID17382 - __ mov64(r8, 17179869184); // mov r8, 17179869184 IID17383 - __ mov64(r8, 68719476736); // mov r8, 68719476736 IID17384 - __ mov64(r8, 274877906944); // mov r8, 274877906944 IID17385 - __ mov64(r8, 1099511627776); // mov r8, 1099511627776 IID17386 - __ mov64(r8, 4398046511104); // mov r8, 4398046511104 IID17387 - __ mov64(r8, 17592186044416); // mov r8, 17592186044416 IID17388 - __ mov64(r8, 70368744177664); // mov r8, 70368744177664 IID17389 - __ mov64(r8, 281474976710656); // mov r8, 281474976710656 IID17390 - __ mov64(r8, 1125899906842624); // mov r8, 1125899906842624 IID17391 - __ mov64(r8, 4503599627370496); // mov r8, 4503599627370496 IID17392 - __ mov64(r8, 18014398509481984); // mov r8, 18014398509481984 IID17393 - __ mov64(r8, 72057594037927936); // mov r8, 72057594037927936 IID17394 - __ mov64(r8, 288230376151711744); // mov r8, 288230376151711744 IID17395 - __ mov64(r8, 1152921504606846976); // mov r8, 1152921504606846976 IID17396 - __ mov64(r8, 4611686018427387904); // mov r8, 4611686018427387904 IID17397 - __ mov64(r9, 4294967296); // mov r9, 4294967296 IID17398 - __ mov64(r9, 17179869184); // mov r9, 17179869184 IID17399 - __ mov64(r9, 68719476736); // mov r9, 68719476736 IID17400 - __ mov64(r9, 274877906944); // mov r9, 274877906944 IID17401 - __ mov64(r9, 1099511627776); // mov r9, 1099511627776 IID17402 - __ mov64(r9, 4398046511104); // mov r9, 4398046511104 IID17403 - __ mov64(r9, 17592186044416); // mov r9, 17592186044416 IID17404 - __ mov64(r9, 70368744177664); // mov r9, 70368744177664 IID17405 - __ mov64(r9, 281474976710656); // mov r9, 281474976710656 IID17406 - __ mov64(r9, 1125899906842624); // mov r9, 1125899906842624 IID17407 - __ mov64(r9, 4503599627370496); // mov r9, 4503599627370496 IID17408 - __ mov64(r9, 18014398509481984); // mov r9, 18014398509481984 IID17409 - __ mov64(r9, 72057594037927936); // mov r9, 72057594037927936 IID17410 - __ mov64(r9, 288230376151711744); // mov r9, 288230376151711744 IID17411 - __ mov64(r9, 1152921504606846976); // mov r9, 1152921504606846976 IID17412 - __ mov64(r9, 4611686018427387904); // mov r9, 4611686018427387904 IID17413 - __ mov64(r10, 4294967296); // mov r10, 4294967296 IID17414 - __ mov64(r10, 17179869184); // mov r10, 17179869184 IID17415 - __ mov64(r10, 68719476736); // mov r10, 68719476736 IID17416 - __ mov64(r10, 274877906944); // mov r10, 274877906944 IID17417 - __ mov64(r10, 1099511627776); // mov r10, 1099511627776 IID17418 - __ mov64(r10, 4398046511104); // mov r10, 4398046511104 IID17419 - __ mov64(r10, 17592186044416); // mov r10, 17592186044416 IID17420 - __ mov64(r10, 70368744177664); // mov r10, 70368744177664 IID17421 - __ mov64(r10, 281474976710656); // mov r10, 281474976710656 IID17422 - __ mov64(r10, 1125899906842624); // mov r10, 1125899906842624 IID17423 - __ mov64(r10, 4503599627370496); // mov r10, 4503599627370496 IID17424 - __ mov64(r10, 18014398509481984); // mov r10, 18014398509481984 IID17425 - __ mov64(r10, 72057594037927936); // mov r10, 72057594037927936 IID17426 - __ mov64(r10, 288230376151711744); // mov r10, 288230376151711744 IID17427 - __ mov64(r10, 1152921504606846976); // mov r10, 1152921504606846976 IID17428 - __ mov64(r10, 4611686018427387904); // mov r10, 4611686018427387904 IID17429 - __ mov64(r11, 4294967296); // mov r11, 4294967296 IID17430 - __ mov64(r11, 17179869184); // mov r11, 17179869184 IID17431 - __ mov64(r11, 68719476736); // mov r11, 68719476736 IID17432 - __ mov64(r11, 274877906944); // mov r11, 274877906944 IID17433 - __ mov64(r11, 1099511627776); // mov r11, 1099511627776 IID17434 - __ mov64(r11, 4398046511104); // mov r11, 4398046511104 IID17435 - __ mov64(r11, 17592186044416); // mov r11, 17592186044416 IID17436 - __ mov64(r11, 70368744177664); // mov r11, 70368744177664 IID17437 - __ mov64(r11, 281474976710656); // mov r11, 281474976710656 IID17438 - __ mov64(r11, 1125899906842624); // mov r11, 1125899906842624 IID17439 - __ mov64(r11, 4503599627370496); // mov r11, 4503599627370496 IID17440 - __ mov64(r11, 18014398509481984); // mov r11, 18014398509481984 IID17441 - __ mov64(r11, 72057594037927936); // mov r11, 72057594037927936 IID17442 - __ mov64(r11, 288230376151711744); // mov r11, 288230376151711744 IID17443 - __ mov64(r11, 1152921504606846976); // mov r11, 1152921504606846976 IID17444 - __ mov64(r11, 4611686018427387904); // mov r11, 4611686018427387904 IID17445 - __ mov64(r12, 4294967296); // mov r12, 4294967296 IID17446 - __ mov64(r12, 17179869184); // mov r12, 17179869184 IID17447 - __ mov64(r12, 68719476736); // mov r12, 68719476736 IID17448 - __ mov64(r12, 274877906944); // mov r12, 274877906944 IID17449 - __ mov64(r12, 1099511627776); // mov r12, 1099511627776 IID17450 - __ mov64(r12, 4398046511104); // mov r12, 4398046511104 IID17451 - __ mov64(r12, 17592186044416); // mov r12, 17592186044416 IID17452 - __ mov64(r12, 70368744177664); // mov r12, 70368744177664 IID17453 - __ mov64(r12, 281474976710656); // mov r12, 281474976710656 IID17454 - __ mov64(r12, 1125899906842624); // mov r12, 1125899906842624 IID17455 - __ mov64(r12, 4503599627370496); // mov r12, 4503599627370496 IID17456 - __ mov64(r12, 18014398509481984); // mov r12, 18014398509481984 IID17457 - __ mov64(r12, 72057594037927936); // mov r12, 72057594037927936 IID17458 - __ mov64(r12, 288230376151711744); // mov r12, 288230376151711744 IID17459 - __ mov64(r12, 1152921504606846976); // mov r12, 1152921504606846976 IID17460 - __ mov64(r12, 4611686018427387904); // mov r12, 4611686018427387904 IID17461 - __ mov64(r13, 4294967296); // mov r13, 4294967296 IID17462 - __ mov64(r13, 17179869184); // mov r13, 17179869184 IID17463 - __ mov64(r13, 68719476736); // mov r13, 68719476736 IID17464 - __ mov64(r13, 274877906944); // mov r13, 274877906944 IID17465 - __ mov64(r13, 1099511627776); // mov r13, 1099511627776 IID17466 - __ mov64(r13, 4398046511104); // mov r13, 4398046511104 IID17467 - __ mov64(r13, 17592186044416); // mov r13, 17592186044416 IID17468 - __ mov64(r13, 70368744177664); // mov r13, 70368744177664 IID17469 - __ mov64(r13, 281474976710656); // mov r13, 281474976710656 IID17470 - __ mov64(r13, 1125899906842624); // mov r13, 1125899906842624 IID17471 - __ mov64(r13, 4503599627370496); // mov r13, 4503599627370496 IID17472 - __ mov64(r13, 18014398509481984); // mov r13, 18014398509481984 IID17473 - __ mov64(r13, 72057594037927936); // mov r13, 72057594037927936 IID17474 - __ mov64(r13, 288230376151711744); // mov r13, 288230376151711744 IID17475 - __ mov64(r13, 1152921504606846976); // mov r13, 1152921504606846976 IID17476 - __ mov64(r13, 4611686018427387904); // mov r13, 4611686018427387904 IID17477 - __ mov64(r14, 4294967296); // mov r14, 4294967296 IID17478 - __ mov64(r14, 17179869184); // mov r14, 17179869184 IID17479 - __ mov64(r14, 68719476736); // mov r14, 68719476736 IID17480 - __ mov64(r14, 274877906944); // mov r14, 274877906944 IID17481 - __ mov64(r14, 1099511627776); // mov r14, 1099511627776 IID17482 - __ mov64(r14, 4398046511104); // mov r14, 4398046511104 IID17483 - __ mov64(r14, 17592186044416); // mov r14, 17592186044416 IID17484 - __ mov64(r14, 70368744177664); // mov r14, 70368744177664 IID17485 - __ mov64(r14, 281474976710656); // mov r14, 281474976710656 IID17486 - __ mov64(r14, 1125899906842624); // mov r14, 1125899906842624 IID17487 - __ mov64(r14, 4503599627370496); // mov r14, 4503599627370496 IID17488 - __ mov64(r14, 18014398509481984); // mov r14, 18014398509481984 IID17489 - __ mov64(r14, 72057594037927936); // mov r14, 72057594037927936 IID17490 - __ mov64(r14, 288230376151711744); // mov r14, 288230376151711744 IID17491 - __ mov64(r14, 1152921504606846976); // mov r14, 1152921504606846976 IID17492 - __ mov64(r14, 4611686018427387904); // mov r14, 4611686018427387904 IID17493 - __ mov64(r15, 4294967296); // mov r15, 4294967296 IID17494 - __ mov64(r15, 17179869184); // mov r15, 17179869184 IID17495 - __ mov64(r15, 68719476736); // mov r15, 68719476736 IID17496 - __ mov64(r15, 274877906944); // mov r15, 274877906944 IID17497 - __ mov64(r15, 1099511627776); // mov r15, 1099511627776 IID17498 - __ mov64(r15, 4398046511104); // mov r15, 4398046511104 IID17499 - __ mov64(r15, 17592186044416); // mov r15, 17592186044416 IID17500 - __ mov64(r15, 70368744177664); // mov r15, 70368744177664 IID17501 - __ mov64(r15, 281474976710656); // mov r15, 281474976710656 IID17502 - __ mov64(r15, 1125899906842624); // mov r15, 1125899906842624 IID17503 - __ mov64(r15, 4503599627370496); // mov r15, 4503599627370496 IID17504 - __ mov64(r15, 18014398509481984); // mov r15, 18014398509481984 IID17505 - __ mov64(r15, 72057594037927936); // mov r15, 72057594037927936 IID17506 - __ mov64(r15, 288230376151711744); // mov r15, 288230376151711744 IID17507 - __ mov64(r15, 1152921504606846976); // mov r15, 1152921504606846976 IID17508 - __ mov64(r15, 4611686018427387904); // mov r15, 4611686018427387904 IID17509 - __ mov64(r16, 4294967296); // mov r16, 4294967296 IID17510 - __ mov64(r16, 17179869184); // mov r16, 17179869184 IID17511 - __ mov64(r16, 68719476736); // mov r16, 68719476736 IID17512 - __ mov64(r16, 274877906944); // mov r16, 274877906944 IID17513 - __ mov64(r16, 1099511627776); // mov r16, 1099511627776 IID17514 - __ mov64(r16, 4398046511104); // mov r16, 4398046511104 IID17515 - __ mov64(r16, 17592186044416); // mov r16, 17592186044416 IID17516 - __ mov64(r16, 70368744177664); // mov r16, 70368744177664 IID17517 - __ mov64(r16, 281474976710656); // mov r16, 281474976710656 IID17518 - __ mov64(r16, 1125899906842624); // mov r16, 1125899906842624 IID17519 - __ mov64(r16, 4503599627370496); // mov r16, 4503599627370496 IID17520 - __ mov64(r16, 18014398509481984); // mov r16, 18014398509481984 IID17521 - __ mov64(r16, 72057594037927936); // mov r16, 72057594037927936 IID17522 - __ mov64(r16, 288230376151711744); // mov r16, 288230376151711744 IID17523 - __ mov64(r16, 1152921504606846976); // mov r16, 1152921504606846976 IID17524 - __ mov64(r16, 4611686018427387904); // mov r16, 4611686018427387904 IID17525 - __ mov64(r17, 4294967296); // mov r17, 4294967296 IID17526 - __ mov64(r17, 17179869184); // mov r17, 17179869184 IID17527 - __ mov64(r17, 68719476736); // mov r17, 68719476736 IID17528 - __ mov64(r17, 274877906944); // mov r17, 274877906944 IID17529 - __ mov64(r17, 1099511627776); // mov r17, 1099511627776 IID17530 - __ mov64(r17, 4398046511104); // mov r17, 4398046511104 IID17531 - __ mov64(r17, 17592186044416); // mov r17, 17592186044416 IID17532 - __ mov64(r17, 70368744177664); // mov r17, 70368744177664 IID17533 - __ mov64(r17, 281474976710656); // mov r17, 281474976710656 IID17534 - __ mov64(r17, 1125899906842624); // mov r17, 1125899906842624 IID17535 - __ mov64(r17, 4503599627370496); // mov r17, 4503599627370496 IID17536 - __ mov64(r17, 18014398509481984); // mov r17, 18014398509481984 IID17537 - __ mov64(r17, 72057594037927936); // mov r17, 72057594037927936 IID17538 - __ mov64(r17, 288230376151711744); // mov r17, 288230376151711744 IID17539 - __ mov64(r17, 1152921504606846976); // mov r17, 1152921504606846976 IID17540 - __ mov64(r17, 4611686018427387904); // mov r17, 4611686018427387904 IID17541 - __ mov64(r18, 4294967296); // mov r18, 4294967296 IID17542 - __ mov64(r18, 17179869184); // mov r18, 17179869184 IID17543 - __ mov64(r18, 68719476736); // mov r18, 68719476736 IID17544 - __ mov64(r18, 274877906944); // mov r18, 274877906944 IID17545 - __ mov64(r18, 1099511627776); // mov r18, 1099511627776 IID17546 - __ mov64(r18, 4398046511104); // mov r18, 4398046511104 IID17547 - __ mov64(r18, 17592186044416); // mov r18, 17592186044416 IID17548 - __ mov64(r18, 70368744177664); // mov r18, 70368744177664 IID17549 - __ mov64(r18, 281474976710656); // mov r18, 281474976710656 IID17550 - __ mov64(r18, 1125899906842624); // mov r18, 1125899906842624 IID17551 - __ mov64(r18, 4503599627370496); // mov r18, 4503599627370496 IID17552 - __ mov64(r18, 18014398509481984); // mov r18, 18014398509481984 IID17553 - __ mov64(r18, 72057594037927936); // mov r18, 72057594037927936 IID17554 - __ mov64(r18, 288230376151711744); // mov r18, 288230376151711744 IID17555 - __ mov64(r18, 1152921504606846976); // mov r18, 1152921504606846976 IID17556 - __ mov64(r18, 4611686018427387904); // mov r18, 4611686018427387904 IID17557 - __ mov64(r19, 4294967296); // mov r19, 4294967296 IID17558 - __ mov64(r19, 17179869184); // mov r19, 17179869184 IID17559 - __ mov64(r19, 68719476736); // mov r19, 68719476736 IID17560 - __ mov64(r19, 274877906944); // mov r19, 274877906944 IID17561 - __ mov64(r19, 1099511627776); // mov r19, 1099511627776 IID17562 - __ mov64(r19, 4398046511104); // mov r19, 4398046511104 IID17563 - __ mov64(r19, 17592186044416); // mov r19, 17592186044416 IID17564 - __ mov64(r19, 70368744177664); // mov r19, 70368744177664 IID17565 - __ mov64(r19, 281474976710656); // mov r19, 281474976710656 IID17566 - __ mov64(r19, 1125899906842624); // mov r19, 1125899906842624 IID17567 - __ mov64(r19, 4503599627370496); // mov r19, 4503599627370496 IID17568 - __ mov64(r19, 18014398509481984); // mov r19, 18014398509481984 IID17569 - __ mov64(r19, 72057594037927936); // mov r19, 72057594037927936 IID17570 - __ mov64(r19, 288230376151711744); // mov r19, 288230376151711744 IID17571 - __ mov64(r19, 1152921504606846976); // mov r19, 1152921504606846976 IID17572 - __ mov64(r19, 4611686018427387904); // mov r19, 4611686018427387904 IID17573 - __ mov64(r20, 4294967296); // mov r20, 4294967296 IID17574 - __ mov64(r20, 17179869184); // mov r20, 17179869184 IID17575 - __ mov64(r20, 68719476736); // mov r20, 68719476736 IID17576 - __ mov64(r20, 274877906944); // mov r20, 274877906944 IID17577 - __ mov64(r20, 1099511627776); // mov r20, 1099511627776 IID17578 - __ mov64(r20, 4398046511104); // mov r20, 4398046511104 IID17579 - __ mov64(r20, 17592186044416); // mov r20, 17592186044416 IID17580 - __ mov64(r20, 70368744177664); // mov r20, 70368744177664 IID17581 - __ mov64(r20, 281474976710656); // mov r20, 281474976710656 IID17582 - __ mov64(r20, 1125899906842624); // mov r20, 1125899906842624 IID17583 - __ mov64(r20, 4503599627370496); // mov r20, 4503599627370496 IID17584 - __ mov64(r20, 18014398509481984); // mov r20, 18014398509481984 IID17585 - __ mov64(r20, 72057594037927936); // mov r20, 72057594037927936 IID17586 - __ mov64(r20, 288230376151711744); // mov r20, 288230376151711744 IID17587 - __ mov64(r20, 1152921504606846976); // mov r20, 1152921504606846976 IID17588 - __ mov64(r20, 4611686018427387904); // mov r20, 4611686018427387904 IID17589 - __ mov64(r21, 4294967296); // mov r21, 4294967296 IID17590 - __ mov64(r21, 17179869184); // mov r21, 17179869184 IID17591 - __ mov64(r21, 68719476736); // mov r21, 68719476736 IID17592 - __ mov64(r21, 274877906944); // mov r21, 274877906944 IID17593 - __ mov64(r21, 1099511627776); // mov r21, 1099511627776 IID17594 - __ mov64(r21, 4398046511104); // mov r21, 4398046511104 IID17595 - __ mov64(r21, 17592186044416); // mov r21, 17592186044416 IID17596 - __ mov64(r21, 70368744177664); // mov r21, 70368744177664 IID17597 - __ mov64(r21, 281474976710656); // mov r21, 281474976710656 IID17598 - __ mov64(r21, 1125899906842624); // mov r21, 1125899906842624 IID17599 - __ mov64(r21, 4503599627370496); // mov r21, 4503599627370496 IID17600 - __ mov64(r21, 18014398509481984); // mov r21, 18014398509481984 IID17601 - __ mov64(r21, 72057594037927936); // mov r21, 72057594037927936 IID17602 - __ mov64(r21, 288230376151711744); // mov r21, 288230376151711744 IID17603 - __ mov64(r21, 1152921504606846976); // mov r21, 1152921504606846976 IID17604 - __ mov64(r21, 4611686018427387904); // mov r21, 4611686018427387904 IID17605 - __ mov64(r22, 4294967296); // mov r22, 4294967296 IID17606 - __ mov64(r22, 17179869184); // mov r22, 17179869184 IID17607 - __ mov64(r22, 68719476736); // mov r22, 68719476736 IID17608 - __ mov64(r22, 274877906944); // mov r22, 274877906944 IID17609 - __ mov64(r22, 1099511627776); // mov r22, 1099511627776 IID17610 - __ mov64(r22, 4398046511104); // mov r22, 4398046511104 IID17611 - __ mov64(r22, 17592186044416); // mov r22, 17592186044416 IID17612 - __ mov64(r22, 70368744177664); // mov r22, 70368744177664 IID17613 - __ mov64(r22, 281474976710656); // mov r22, 281474976710656 IID17614 - __ mov64(r22, 1125899906842624); // mov r22, 1125899906842624 IID17615 - __ mov64(r22, 4503599627370496); // mov r22, 4503599627370496 IID17616 - __ mov64(r22, 18014398509481984); // mov r22, 18014398509481984 IID17617 - __ mov64(r22, 72057594037927936); // mov r22, 72057594037927936 IID17618 - __ mov64(r22, 288230376151711744); // mov r22, 288230376151711744 IID17619 - __ mov64(r22, 1152921504606846976); // mov r22, 1152921504606846976 IID17620 - __ mov64(r22, 4611686018427387904); // mov r22, 4611686018427387904 IID17621 - __ mov64(r23, 4294967296); // mov r23, 4294967296 IID17622 - __ mov64(r23, 17179869184); // mov r23, 17179869184 IID17623 - __ mov64(r23, 68719476736); // mov r23, 68719476736 IID17624 - __ mov64(r23, 274877906944); // mov r23, 274877906944 IID17625 - __ mov64(r23, 1099511627776); // mov r23, 1099511627776 IID17626 - __ mov64(r23, 4398046511104); // mov r23, 4398046511104 IID17627 - __ mov64(r23, 17592186044416); // mov r23, 17592186044416 IID17628 - __ mov64(r23, 70368744177664); // mov r23, 70368744177664 IID17629 - __ mov64(r23, 281474976710656); // mov r23, 281474976710656 IID17630 - __ mov64(r23, 1125899906842624); // mov r23, 1125899906842624 IID17631 - __ mov64(r23, 4503599627370496); // mov r23, 4503599627370496 IID17632 - __ mov64(r23, 18014398509481984); // mov r23, 18014398509481984 IID17633 - __ mov64(r23, 72057594037927936); // mov r23, 72057594037927936 IID17634 - __ mov64(r23, 288230376151711744); // mov r23, 288230376151711744 IID17635 - __ mov64(r23, 1152921504606846976); // mov r23, 1152921504606846976 IID17636 - __ mov64(r23, 4611686018427387904); // mov r23, 4611686018427387904 IID17637 - __ mov64(r24, 4294967296); // mov r24, 4294967296 IID17638 - __ mov64(r24, 17179869184); // mov r24, 17179869184 IID17639 - __ mov64(r24, 68719476736); // mov r24, 68719476736 IID17640 - __ mov64(r24, 274877906944); // mov r24, 274877906944 IID17641 - __ mov64(r24, 1099511627776); // mov r24, 1099511627776 IID17642 - __ mov64(r24, 4398046511104); // mov r24, 4398046511104 IID17643 - __ mov64(r24, 17592186044416); // mov r24, 17592186044416 IID17644 - __ mov64(r24, 70368744177664); // mov r24, 70368744177664 IID17645 - __ mov64(r24, 281474976710656); // mov r24, 281474976710656 IID17646 - __ mov64(r24, 1125899906842624); // mov r24, 1125899906842624 IID17647 - __ mov64(r24, 4503599627370496); // mov r24, 4503599627370496 IID17648 - __ mov64(r24, 18014398509481984); // mov r24, 18014398509481984 IID17649 - __ mov64(r24, 72057594037927936); // mov r24, 72057594037927936 IID17650 - __ mov64(r24, 288230376151711744); // mov r24, 288230376151711744 IID17651 - __ mov64(r24, 1152921504606846976); // mov r24, 1152921504606846976 IID17652 - __ mov64(r24, 4611686018427387904); // mov r24, 4611686018427387904 IID17653 - __ mov64(r25, 4294967296); // mov r25, 4294967296 IID17654 - __ mov64(r25, 17179869184); // mov r25, 17179869184 IID17655 - __ mov64(r25, 68719476736); // mov r25, 68719476736 IID17656 - __ mov64(r25, 274877906944); // mov r25, 274877906944 IID17657 - __ mov64(r25, 1099511627776); // mov r25, 1099511627776 IID17658 - __ mov64(r25, 4398046511104); // mov r25, 4398046511104 IID17659 - __ mov64(r25, 17592186044416); // mov r25, 17592186044416 IID17660 - __ mov64(r25, 70368744177664); // mov r25, 70368744177664 IID17661 - __ mov64(r25, 281474976710656); // mov r25, 281474976710656 IID17662 - __ mov64(r25, 1125899906842624); // mov r25, 1125899906842624 IID17663 - __ mov64(r25, 4503599627370496); // mov r25, 4503599627370496 IID17664 - __ mov64(r25, 18014398509481984); // mov r25, 18014398509481984 IID17665 - __ mov64(r25, 72057594037927936); // mov r25, 72057594037927936 IID17666 - __ mov64(r25, 288230376151711744); // mov r25, 288230376151711744 IID17667 - __ mov64(r25, 1152921504606846976); // mov r25, 1152921504606846976 IID17668 - __ mov64(r25, 4611686018427387904); // mov r25, 4611686018427387904 IID17669 - __ mov64(r26, 4294967296); // mov r26, 4294967296 IID17670 - __ mov64(r26, 17179869184); // mov r26, 17179869184 IID17671 - __ mov64(r26, 68719476736); // mov r26, 68719476736 IID17672 - __ mov64(r26, 274877906944); // mov r26, 274877906944 IID17673 - __ mov64(r26, 1099511627776); // mov r26, 1099511627776 IID17674 - __ mov64(r26, 4398046511104); // mov r26, 4398046511104 IID17675 - __ mov64(r26, 17592186044416); // mov r26, 17592186044416 IID17676 - __ mov64(r26, 70368744177664); // mov r26, 70368744177664 IID17677 - __ mov64(r26, 281474976710656); // mov r26, 281474976710656 IID17678 - __ mov64(r26, 1125899906842624); // mov r26, 1125899906842624 IID17679 - __ mov64(r26, 4503599627370496); // mov r26, 4503599627370496 IID17680 - __ mov64(r26, 18014398509481984); // mov r26, 18014398509481984 IID17681 - __ mov64(r26, 72057594037927936); // mov r26, 72057594037927936 IID17682 - __ mov64(r26, 288230376151711744); // mov r26, 288230376151711744 IID17683 - __ mov64(r26, 1152921504606846976); // mov r26, 1152921504606846976 IID17684 - __ mov64(r26, 4611686018427387904); // mov r26, 4611686018427387904 IID17685 - __ mov64(r27, 4294967296); // mov r27, 4294967296 IID17686 - __ mov64(r27, 17179869184); // mov r27, 17179869184 IID17687 - __ mov64(r27, 68719476736); // mov r27, 68719476736 IID17688 - __ mov64(r27, 274877906944); // mov r27, 274877906944 IID17689 - __ mov64(r27, 1099511627776); // mov r27, 1099511627776 IID17690 - __ mov64(r27, 4398046511104); // mov r27, 4398046511104 IID17691 - __ mov64(r27, 17592186044416); // mov r27, 17592186044416 IID17692 - __ mov64(r27, 70368744177664); // mov r27, 70368744177664 IID17693 - __ mov64(r27, 281474976710656); // mov r27, 281474976710656 IID17694 - __ mov64(r27, 1125899906842624); // mov r27, 1125899906842624 IID17695 - __ mov64(r27, 4503599627370496); // mov r27, 4503599627370496 IID17696 - __ mov64(r27, 18014398509481984); // mov r27, 18014398509481984 IID17697 - __ mov64(r27, 72057594037927936); // mov r27, 72057594037927936 IID17698 - __ mov64(r27, 288230376151711744); // mov r27, 288230376151711744 IID17699 - __ mov64(r27, 1152921504606846976); // mov r27, 1152921504606846976 IID17700 - __ mov64(r27, 4611686018427387904); // mov r27, 4611686018427387904 IID17701 - __ mov64(r28, 4294967296); // mov r28, 4294967296 IID17702 - __ mov64(r28, 17179869184); // mov r28, 17179869184 IID17703 - __ mov64(r28, 68719476736); // mov r28, 68719476736 IID17704 - __ mov64(r28, 274877906944); // mov r28, 274877906944 IID17705 - __ mov64(r28, 1099511627776); // mov r28, 1099511627776 IID17706 - __ mov64(r28, 4398046511104); // mov r28, 4398046511104 IID17707 - __ mov64(r28, 17592186044416); // mov r28, 17592186044416 IID17708 - __ mov64(r28, 70368744177664); // mov r28, 70368744177664 IID17709 - __ mov64(r28, 281474976710656); // mov r28, 281474976710656 IID17710 - __ mov64(r28, 1125899906842624); // mov r28, 1125899906842624 IID17711 - __ mov64(r28, 4503599627370496); // mov r28, 4503599627370496 IID17712 - __ mov64(r28, 18014398509481984); // mov r28, 18014398509481984 IID17713 - __ mov64(r28, 72057594037927936); // mov r28, 72057594037927936 IID17714 - __ mov64(r28, 288230376151711744); // mov r28, 288230376151711744 IID17715 - __ mov64(r28, 1152921504606846976); // mov r28, 1152921504606846976 IID17716 - __ mov64(r28, 4611686018427387904); // mov r28, 4611686018427387904 IID17717 - __ mov64(r29, 4294967296); // mov r29, 4294967296 IID17718 - __ mov64(r29, 17179869184); // mov r29, 17179869184 IID17719 - __ mov64(r29, 68719476736); // mov r29, 68719476736 IID17720 - __ mov64(r29, 274877906944); // mov r29, 274877906944 IID17721 - __ mov64(r29, 1099511627776); // mov r29, 1099511627776 IID17722 - __ mov64(r29, 4398046511104); // mov r29, 4398046511104 IID17723 - __ mov64(r29, 17592186044416); // mov r29, 17592186044416 IID17724 - __ mov64(r29, 70368744177664); // mov r29, 70368744177664 IID17725 - __ mov64(r29, 281474976710656); // mov r29, 281474976710656 IID17726 - __ mov64(r29, 1125899906842624); // mov r29, 1125899906842624 IID17727 - __ mov64(r29, 4503599627370496); // mov r29, 4503599627370496 IID17728 - __ mov64(r29, 18014398509481984); // mov r29, 18014398509481984 IID17729 - __ mov64(r29, 72057594037927936); // mov r29, 72057594037927936 IID17730 - __ mov64(r29, 288230376151711744); // mov r29, 288230376151711744 IID17731 - __ mov64(r29, 1152921504606846976); // mov r29, 1152921504606846976 IID17732 - __ mov64(r29, 4611686018427387904); // mov r29, 4611686018427387904 IID17733 - __ mov64(r30, 4294967296); // mov r30, 4294967296 IID17734 - __ mov64(r30, 17179869184); // mov r30, 17179869184 IID17735 - __ mov64(r30, 68719476736); // mov r30, 68719476736 IID17736 - __ mov64(r30, 274877906944); // mov r30, 274877906944 IID17737 - __ mov64(r30, 1099511627776); // mov r30, 1099511627776 IID17738 - __ mov64(r30, 4398046511104); // mov r30, 4398046511104 IID17739 - __ mov64(r30, 17592186044416); // mov r30, 17592186044416 IID17740 - __ mov64(r30, 70368744177664); // mov r30, 70368744177664 IID17741 - __ mov64(r30, 281474976710656); // mov r30, 281474976710656 IID17742 - __ mov64(r30, 1125899906842624); // mov r30, 1125899906842624 IID17743 - __ mov64(r30, 4503599627370496); // mov r30, 4503599627370496 IID17744 - __ mov64(r30, 18014398509481984); // mov r30, 18014398509481984 IID17745 - __ mov64(r30, 72057594037927936); // mov r30, 72057594037927936 IID17746 - __ mov64(r30, 288230376151711744); // mov r30, 288230376151711744 IID17747 - __ mov64(r30, 1152921504606846976); // mov r30, 1152921504606846976 IID17748 - __ mov64(r30, 4611686018427387904); // mov r30, 4611686018427387904 IID17749 - __ mov64(r31, 4294967296); // mov r31, 4294967296 IID17750 - __ mov64(r31, 17179869184); // mov r31, 17179869184 IID17751 - __ mov64(r31, 68719476736); // mov r31, 68719476736 IID17752 - __ mov64(r31, 274877906944); // mov r31, 274877906944 IID17753 - __ mov64(r31, 1099511627776); // mov r31, 1099511627776 IID17754 - __ mov64(r31, 4398046511104); // mov r31, 4398046511104 IID17755 - __ mov64(r31, 17592186044416); // mov r31, 17592186044416 IID17756 - __ mov64(r31, 70368744177664); // mov r31, 70368744177664 IID17757 - __ mov64(r31, 281474976710656); // mov r31, 281474976710656 IID17758 - __ mov64(r31, 1125899906842624); // mov r31, 1125899906842624 IID17759 - __ mov64(r31, 4503599627370496); // mov r31, 4503599627370496 IID17760 - __ mov64(r31, 18014398509481984); // mov r31, 18014398509481984 IID17761 - __ mov64(r31, 72057594037927936); // mov r31, 72057594037927936 IID17762 - __ mov64(r31, 288230376151711744); // mov r31, 288230376151711744 IID17763 - __ mov64(r31, 1152921504606846976); // mov r31, 1152921504606846976 IID17764 - __ mov64(r31, 4611686018427387904); // mov r31, 4611686018427387904 IID17765 - __ btq(rcx, 1); // bt rcx, 1 IID17766 - __ btq(rcx, 4); // bt rcx, 4 IID17767 - __ btq(rcx, 16); // bt rcx, 16 IID17768 - __ btq(rcx, 64); // bt rcx, 64 IID17769 - __ btq(rdx, 1); // bt rdx, 1 IID17770 - __ btq(rdx, 4); // bt rdx, 4 IID17771 - __ btq(rdx, 16); // bt rdx, 16 IID17772 - __ btq(rdx, 64); // bt rdx, 64 IID17773 - __ btq(rbx, 1); // bt rbx, 1 IID17774 - __ btq(rbx, 4); // bt rbx, 4 IID17775 - __ btq(rbx, 16); // bt rbx, 16 IID17776 - __ btq(rbx, 64); // bt rbx, 64 IID17777 - __ btq(r8, 1); // bt r8, 1 IID17778 - __ btq(r8, 4); // bt r8, 4 IID17779 - __ btq(r8, 16); // bt r8, 16 IID17780 - __ btq(r8, 64); // bt r8, 64 IID17781 - __ btq(r9, 1); // bt r9, 1 IID17782 - __ btq(r9, 4); // bt r9, 4 IID17783 - __ btq(r9, 16); // bt r9, 16 IID17784 - __ btq(r9, 64); // bt r9, 64 IID17785 - __ btq(r10, 1); // bt r10, 1 IID17786 - __ btq(r10, 4); // bt r10, 4 IID17787 - __ btq(r10, 16); // bt r10, 16 IID17788 - __ btq(r10, 64); // bt r10, 64 IID17789 - __ btq(r11, 1); // bt r11, 1 IID17790 - __ btq(r11, 4); // bt r11, 4 IID17791 - __ btq(r11, 16); // bt r11, 16 IID17792 - __ btq(r11, 64); // bt r11, 64 IID17793 - __ btq(r12, 1); // bt r12, 1 IID17794 - __ btq(r12, 4); // bt r12, 4 IID17795 - __ btq(r12, 16); // bt r12, 16 IID17796 - __ btq(r12, 64); // bt r12, 64 IID17797 - __ btq(r13, 1); // bt r13, 1 IID17798 - __ btq(r13, 4); // bt r13, 4 IID17799 - __ btq(r13, 16); // bt r13, 16 IID17800 - __ btq(r13, 64); // bt r13, 64 IID17801 - __ btq(r14, 1); // bt r14, 1 IID17802 - __ btq(r14, 4); // bt r14, 4 IID17803 - __ btq(r14, 16); // bt r14, 16 IID17804 - __ btq(r14, 64); // bt r14, 64 IID17805 - __ btq(r15, 1); // bt r15, 1 IID17806 - __ btq(r15, 4); // bt r15, 4 IID17807 - __ btq(r15, 16); // bt r15, 16 IID17808 - __ btq(r15, 64); // bt r15, 64 IID17809 - __ btq(r16, 1); // bt r16, 1 IID17810 - __ btq(r16, 4); // bt r16, 4 IID17811 - __ btq(r16, 16); // bt r16, 16 IID17812 - __ btq(r16, 64); // bt r16, 64 IID17813 - __ btq(r17, 1); // bt r17, 1 IID17814 - __ btq(r17, 4); // bt r17, 4 IID17815 - __ btq(r17, 16); // bt r17, 16 IID17816 - __ btq(r17, 64); // bt r17, 64 IID17817 - __ btq(r18, 1); // bt r18, 1 IID17818 - __ btq(r18, 4); // bt r18, 4 IID17819 - __ btq(r18, 16); // bt r18, 16 IID17820 - __ btq(r18, 64); // bt r18, 64 IID17821 - __ btq(r19, 1); // bt r19, 1 IID17822 - __ btq(r19, 4); // bt r19, 4 IID17823 - __ btq(r19, 16); // bt r19, 16 IID17824 - __ btq(r19, 64); // bt r19, 64 IID17825 - __ btq(r20, 1); // bt r20, 1 IID17826 - __ btq(r20, 4); // bt r20, 4 IID17827 - __ btq(r20, 16); // bt r20, 16 IID17828 - __ btq(r20, 64); // bt r20, 64 IID17829 - __ btq(r21, 1); // bt r21, 1 IID17830 - __ btq(r21, 4); // bt r21, 4 IID17831 - __ btq(r21, 16); // bt r21, 16 IID17832 - __ btq(r21, 64); // bt r21, 64 IID17833 - __ btq(r22, 1); // bt r22, 1 IID17834 - __ btq(r22, 4); // bt r22, 4 IID17835 - __ btq(r22, 16); // bt r22, 16 IID17836 - __ btq(r22, 64); // bt r22, 64 IID17837 - __ btq(r23, 1); // bt r23, 1 IID17838 - __ btq(r23, 4); // bt r23, 4 IID17839 - __ btq(r23, 16); // bt r23, 16 IID17840 - __ btq(r23, 64); // bt r23, 64 IID17841 - __ btq(r24, 1); // bt r24, 1 IID17842 - __ btq(r24, 4); // bt r24, 4 IID17843 - __ btq(r24, 16); // bt r24, 16 IID17844 - __ btq(r24, 64); // bt r24, 64 IID17845 - __ btq(r25, 1); // bt r25, 1 IID17846 - __ btq(r25, 4); // bt r25, 4 IID17847 - __ btq(r25, 16); // bt r25, 16 IID17848 - __ btq(r25, 64); // bt r25, 64 IID17849 - __ btq(r26, 1); // bt r26, 1 IID17850 - __ btq(r26, 4); // bt r26, 4 IID17851 - __ btq(r26, 16); // bt r26, 16 IID17852 - __ btq(r26, 64); // bt r26, 64 IID17853 - __ btq(r27, 1); // bt r27, 1 IID17854 - __ btq(r27, 4); // bt r27, 4 IID17855 - __ btq(r27, 16); // bt r27, 16 IID17856 - __ btq(r27, 64); // bt r27, 64 IID17857 - __ btq(r28, 1); // bt r28, 1 IID17858 - __ btq(r28, 4); // bt r28, 4 IID17859 - __ btq(r28, 16); // bt r28, 16 IID17860 - __ btq(r28, 64); // bt r28, 64 IID17861 - __ btq(r29, 1); // bt r29, 1 IID17862 - __ btq(r29, 4); // bt r29, 4 IID17863 - __ btq(r29, 16); // bt r29, 16 IID17864 - __ btq(r29, 64); // bt r29, 64 IID17865 - __ btq(r30, 1); // bt r30, 1 IID17866 - __ btq(r30, 4); // bt r30, 4 IID17867 - __ btq(r30, 16); // bt r30, 16 IID17868 - __ btq(r30, 64); // bt r30, 64 IID17869 - __ btq(r31, 1); // bt r31, 1 IID17870 - __ btq(r31, 4); // bt r31, 4 IID17871 - __ btq(r31, 16); // bt r31, 16 IID17872 - __ btq(r31, 64); // bt r31, 64 IID17873 - __ testq(rcx, -1); // test rcx, -1 IID17874 - __ testq(rcx, -16); // test rcx, -16 IID17875 - __ testq(rcx, -256); // test rcx, -256 IID17876 - __ testq(rcx, -4096); // test rcx, -4096 IID17877 - __ testq(rcx, -65536); // test rcx, -65536 IID17878 - __ testq(rcx, -1048576); // test rcx, -1048576 IID17879 - __ testq(rcx, -16777216); // test rcx, -16777216 IID17880 - __ testq(rcx, -268435456); // test rcx, -268435456 IID17881 - __ testq(rdx, -1); // test rdx, -1 IID17882 - __ testq(rdx, -16); // test rdx, -16 IID17883 - __ testq(rdx, -256); // test rdx, -256 IID17884 - __ testq(rdx, -4096); // test rdx, -4096 IID17885 - __ testq(rdx, -65536); // test rdx, -65536 IID17886 - __ testq(rdx, -1048576); // test rdx, -1048576 IID17887 - __ testq(rdx, -16777216); // test rdx, -16777216 IID17888 - __ testq(rdx, -268435456); // test rdx, -268435456 IID17889 - __ testq(rbx, -1); // test rbx, -1 IID17890 - __ testq(rbx, -16); // test rbx, -16 IID17891 - __ testq(rbx, -256); // test rbx, -256 IID17892 - __ testq(rbx, -4096); // test rbx, -4096 IID17893 - __ testq(rbx, -65536); // test rbx, -65536 IID17894 - __ testq(rbx, -1048576); // test rbx, -1048576 IID17895 - __ testq(rbx, -16777216); // test rbx, -16777216 IID17896 - __ testq(rbx, -268435456); // test rbx, -268435456 IID17897 - __ testq(r8, -1); // test r8, -1 IID17898 - __ testq(r8, -16); // test r8, -16 IID17899 - __ testq(r8, -256); // test r8, -256 IID17900 - __ testq(r8, -4096); // test r8, -4096 IID17901 - __ testq(r8, -65536); // test r8, -65536 IID17902 - __ testq(r8, -1048576); // test r8, -1048576 IID17903 - __ testq(r8, -16777216); // test r8, -16777216 IID17904 - __ testq(r8, -268435456); // test r8, -268435456 IID17905 - __ testq(r9, -1); // test r9, -1 IID17906 - __ testq(r9, -16); // test r9, -16 IID17907 - __ testq(r9, -256); // test r9, -256 IID17908 - __ testq(r9, -4096); // test r9, -4096 IID17909 - __ testq(r9, -65536); // test r9, -65536 IID17910 - __ testq(r9, -1048576); // test r9, -1048576 IID17911 - __ testq(r9, -16777216); // test r9, -16777216 IID17912 - __ testq(r9, -268435456); // test r9, -268435456 IID17913 - __ testq(r10, -1); // test r10, -1 IID17914 - __ testq(r10, -16); // test r10, -16 IID17915 - __ testq(r10, -256); // test r10, -256 IID17916 - __ testq(r10, -4096); // test r10, -4096 IID17917 - __ testq(r10, -65536); // test r10, -65536 IID17918 - __ testq(r10, -1048576); // test r10, -1048576 IID17919 - __ testq(r10, -16777216); // test r10, -16777216 IID17920 - __ testq(r10, -268435456); // test r10, -268435456 IID17921 - __ testq(r11, -1); // test r11, -1 IID17922 - __ testq(r11, -16); // test r11, -16 IID17923 - __ testq(r11, -256); // test r11, -256 IID17924 - __ testq(r11, -4096); // test r11, -4096 IID17925 - __ testq(r11, -65536); // test r11, -65536 IID17926 - __ testq(r11, -1048576); // test r11, -1048576 IID17927 - __ testq(r11, -16777216); // test r11, -16777216 IID17928 - __ testq(r11, -268435456); // test r11, -268435456 IID17929 - __ testq(r12, -1); // test r12, -1 IID17930 - __ testq(r12, -16); // test r12, -16 IID17931 - __ testq(r12, -256); // test r12, -256 IID17932 - __ testq(r12, -4096); // test r12, -4096 IID17933 - __ testq(r12, -65536); // test r12, -65536 IID17934 - __ testq(r12, -1048576); // test r12, -1048576 IID17935 - __ testq(r12, -16777216); // test r12, -16777216 IID17936 - __ testq(r12, -268435456); // test r12, -268435456 IID17937 - __ testq(r13, -1); // test r13, -1 IID17938 - __ testq(r13, -16); // test r13, -16 IID17939 - __ testq(r13, -256); // test r13, -256 IID17940 - __ testq(r13, -4096); // test r13, -4096 IID17941 - __ testq(r13, -65536); // test r13, -65536 IID17942 - __ testq(r13, -1048576); // test r13, -1048576 IID17943 - __ testq(r13, -16777216); // test r13, -16777216 IID17944 - __ testq(r13, -268435456); // test r13, -268435456 IID17945 - __ testq(r14, -1); // test r14, -1 IID17946 - __ testq(r14, -16); // test r14, -16 IID17947 - __ testq(r14, -256); // test r14, -256 IID17948 - __ testq(r14, -4096); // test r14, -4096 IID17949 - __ testq(r14, -65536); // test r14, -65536 IID17950 - __ testq(r14, -1048576); // test r14, -1048576 IID17951 - __ testq(r14, -16777216); // test r14, -16777216 IID17952 - __ testq(r14, -268435456); // test r14, -268435456 IID17953 - __ testq(r15, -1); // test r15, -1 IID17954 - __ testq(r15, -16); // test r15, -16 IID17955 - __ testq(r15, -256); // test r15, -256 IID17956 - __ testq(r15, -4096); // test r15, -4096 IID17957 - __ testq(r15, -65536); // test r15, -65536 IID17958 - __ testq(r15, -1048576); // test r15, -1048576 IID17959 - __ testq(r15, -16777216); // test r15, -16777216 IID17960 - __ testq(r15, -268435456); // test r15, -268435456 IID17961 - __ testq(r16, -1); // test r16, -1 IID17962 - __ testq(r16, -16); // test r16, -16 IID17963 - __ testq(r16, -256); // test r16, -256 IID17964 - __ testq(r16, -4096); // test r16, -4096 IID17965 - __ testq(r16, -65536); // test r16, -65536 IID17966 - __ testq(r16, -1048576); // test r16, -1048576 IID17967 - __ testq(r16, -16777216); // test r16, -16777216 IID17968 - __ testq(r16, -268435456); // test r16, -268435456 IID17969 - __ testq(r17, -1); // test r17, -1 IID17970 - __ testq(r17, -16); // test r17, -16 IID17971 - __ testq(r17, -256); // test r17, -256 IID17972 - __ testq(r17, -4096); // test r17, -4096 IID17973 - __ testq(r17, -65536); // test r17, -65536 IID17974 - __ testq(r17, -1048576); // test r17, -1048576 IID17975 - __ testq(r17, -16777216); // test r17, -16777216 IID17976 - __ testq(r17, -268435456); // test r17, -268435456 IID17977 - __ testq(r18, -1); // test r18, -1 IID17978 - __ testq(r18, -16); // test r18, -16 IID17979 - __ testq(r18, -256); // test r18, -256 IID17980 - __ testq(r18, -4096); // test r18, -4096 IID17981 - __ testq(r18, -65536); // test r18, -65536 IID17982 - __ testq(r18, -1048576); // test r18, -1048576 IID17983 - __ testq(r18, -16777216); // test r18, -16777216 IID17984 - __ testq(r18, -268435456); // test r18, -268435456 IID17985 - __ testq(r19, -1); // test r19, -1 IID17986 - __ testq(r19, -16); // test r19, -16 IID17987 - __ testq(r19, -256); // test r19, -256 IID17988 - __ testq(r19, -4096); // test r19, -4096 IID17989 - __ testq(r19, -65536); // test r19, -65536 IID17990 - __ testq(r19, -1048576); // test r19, -1048576 IID17991 - __ testq(r19, -16777216); // test r19, -16777216 IID17992 - __ testq(r19, -268435456); // test r19, -268435456 IID17993 - __ testq(r20, -1); // test r20, -1 IID17994 - __ testq(r20, -16); // test r20, -16 IID17995 - __ testq(r20, -256); // test r20, -256 IID17996 - __ testq(r20, -4096); // test r20, -4096 IID17997 - __ testq(r20, -65536); // test r20, -65536 IID17998 - __ testq(r20, -1048576); // test r20, -1048576 IID17999 - __ testq(r20, -16777216); // test r20, -16777216 IID18000 - __ testq(r20, -268435456); // test r20, -268435456 IID18001 - __ testq(r21, -1); // test r21, -1 IID18002 - __ testq(r21, -16); // test r21, -16 IID18003 - __ testq(r21, -256); // test r21, -256 IID18004 - __ testq(r21, -4096); // test r21, -4096 IID18005 - __ testq(r21, -65536); // test r21, -65536 IID18006 - __ testq(r21, -1048576); // test r21, -1048576 IID18007 - __ testq(r21, -16777216); // test r21, -16777216 IID18008 - __ testq(r21, -268435456); // test r21, -268435456 IID18009 - __ testq(r22, -1); // test r22, -1 IID18010 - __ testq(r22, -16); // test r22, -16 IID18011 - __ testq(r22, -256); // test r22, -256 IID18012 - __ testq(r22, -4096); // test r22, -4096 IID18013 - __ testq(r22, -65536); // test r22, -65536 IID18014 - __ testq(r22, -1048576); // test r22, -1048576 IID18015 - __ testq(r22, -16777216); // test r22, -16777216 IID18016 - __ testq(r22, -268435456); // test r22, -268435456 IID18017 - __ testq(r23, -1); // test r23, -1 IID18018 - __ testq(r23, -16); // test r23, -16 IID18019 - __ testq(r23, -256); // test r23, -256 IID18020 - __ testq(r23, -4096); // test r23, -4096 IID18021 - __ testq(r23, -65536); // test r23, -65536 IID18022 - __ testq(r23, -1048576); // test r23, -1048576 IID18023 - __ testq(r23, -16777216); // test r23, -16777216 IID18024 - __ testq(r23, -268435456); // test r23, -268435456 IID18025 - __ testq(r24, -1); // test r24, -1 IID18026 - __ testq(r24, -16); // test r24, -16 IID18027 - __ testq(r24, -256); // test r24, -256 IID18028 - __ testq(r24, -4096); // test r24, -4096 IID18029 - __ testq(r24, -65536); // test r24, -65536 IID18030 - __ testq(r24, -1048576); // test r24, -1048576 IID18031 - __ testq(r24, -16777216); // test r24, -16777216 IID18032 - __ testq(r24, -268435456); // test r24, -268435456 IID18033 - __ testq(r25, -1); // test r25, -1 IID18034 - __ testq(r25, -16); // test r25, -16 IID18035 - __ testq(r25, -256); // test r25, -256 IID18036 - __ testq(r25, -4096); // test r25, -4096 IID18037 - __ testq(r25, -65536); // test r25, -65536 IID18038 - __ testq(r25, -1048576); // test r25, -1048576 IID18039 - __ testq(r25, -16777216); // test r25, -16777216 IID18040 - __ testq(r25, -268435456); // test r25, -268435456 IID18041 - __ testq(r26, -1); // test r26, -1 IID18042 - __ testq(r26, -16); // test r26, -16 IID18043 - __ testq(r26, -256); // test r26, -256 IID18044 - __ testq(r26, -4096); // test r26, -4096 IID18045 - __ testq(r26, -65536); // test r26, -65536 IID18046 - __ testq(r26, -1048576); // test r26, -1048576 IID18047 - __ testq(r26, -16777216); // test r26, -16777216 IID18048 - __ testq(r26, -268435456); // test r26, -268435456 IID18049 - __ testq(r27, -1); // test r27, -1 IID18050 - __ testq(r27, -16); // test r27, -16 IID18051 - __ testq(r27, -256); // test r27, -256 IID18052 - __ testq(r27, -4096); // test r27, -4096 IID18053 - __ testq(r27, -65536); // test r27, -65536 IID18054 - __ testq(r27, -1048576); // test r27, -1048576 IID18055 - __ testq(r27, -16777216); // test r27, -16777216 IID18056 - __ testq(r27, -268435456); // test r27, -268435456 IID18057 - __ testq(r28, -1); // test r28, -1 IID18058 - __ testq(r28, -16); // test r28, -16 IID18059 - __ testq(r28, -256); // test r28, -256 IID18060 - __ testq(r28, -4096); // test r28, -4096 IID18061 - __ testq(r28, -65536); // test r28, -65536 IID18062 - __ testq(r28, -1048576); // test r28, -1048576 IID18063 - __ testq(r28, -16777216); // test r28, -16777216 IID18064 - __ testq(r28, -268435456); // test r28, -268435456 IID18065 - __ testq(r29, -1); // test r29, -1 IID18066 - __ testq(r29, -16); // test r29, -16 IID18067 - __ testq(r29, -256); // test r29, -256 IID18068 - __ testq(r29, -4096); // test r29, -4096 IID18069 - __ testq(r29, -65536); // test r29, -65536 IID18070 - __ testq(r29, -1048576); // test r29, -1048576 IID18071 - __ testq(r29, -16777216); // test r29, -16777216 IID18072 - __ testq(r29, -268435456); // test r29, -268435456 IID18073 - __ testq(r30, -1); // test r30, -1 IID18074 - __ testq(r30, -16); // test r30, -16 IID18075 - __ testq(r30, -256); // test r30, -256 IID18076 - __ testq(r30, -4096); // test r30, -4096 IID18077 - __ testq(r30, -65536); // test r30, -65536 IID18078 - __ testq(r30, -1048576); // test r30, -1048576 IID18079 - __ testq(r30, -16777216); // test r30, -16777216 IID18080 - __ testq(r30, -268435456); // test r30, -268435456 IID18081 - __ testq(r31, -1); // test r31, -1 IID18082 - __ testq(r31, -16); // test r31, -16 IID18083 - __ testq(r31, -256); // test r31, -256 IID18084 - __ testq(r31, -4096); // test r31, -4096 IID18085 - __ testq(r31, -65536); // test r31, -65536 IID18086 - __ testq(r31, -1048576); // test r31, -1048576 IID18087 - __ testq(r31, -16777216); // test r31, -16777216 IID18088 - __ testq(r31, -268435456); // test r31, -268435456 IID18089 - __ orq_imm32(rcx, 65536); // or rcx, 65536 IID18090 - __ orq_imm32(rcx, 262144); // or rcx, 262144 IID18091 - __ orq_imm32(rcx, 1048576); // or rcx, 1048576 IID18092 - __ orq_imm32(rcx, 4194304); // or rcx, 4194304 IID18093 - __ orq_imm32(rcx, 16777216); // or rcx, 16777216 IID18094 - __ orq_imm32(rcx, 67108864); // or rcx, 67108864 IID18095 - __ orq_imm32(rcx, 268435456); // or rcx, 268435456 IID18096 - __ orq_imm32(rcx, 1073741824); // or rcx, 1073741824 IID18097 - __ orq_imm32(rdx, 65536); // or rdx, 65536 IID18098 - __ orq_imm32(rdx, 262144); // or rdx, 262144 IID18099 - __ orq_imm32(rdx, 1048576); // or rdx, 1048576 IID18100 - __ orq_imm32(rdx, 4194304); // or rdx, 4194304 IID18101 - __ orq_imm32(rdx, 16777216); // or rdx, 16777216 IID18102 - __ orq_imm32(rdx, 67108864); // or rdx, 67108864 IID18103 - __ orq_imm32(rdx, 268435456); // or rdx, 268435456 IID18104 - __ orq_imm32(rdx, 1073741824); // or rdx, 1073741824 IID18105 - __ orq_imm32(rbx, 65536); // or rbx, 65536 IID18106 - __ orq_imm32(rbx, 262144); // or rbx, 262144 IID18107 - __ orq_imm32(rbx, 1048576); // or rbx, 1048576 IID18108 - __ orq_imm32(rbx, 4194304); // or rbx, 4194304 IID18109 - __ orq_imm32(rbx, 16777216); // or rbx, 16777216 IID18110 - __ orq_imm32(rbx, 67108864); // or rbx, 67108864 IID18111 - __ orq_imm32(rbx, 268435456); // or rbx, 268435456 IID18112 - __ orq_imm32(rbx, 1073741824); // or rbx, 1073741824 IID18113 - __ orq_imm32(r8, 65536); // or r8, 65536 IID18114 - __ orq_imm32(r8, 262144); // or r8, 262144 IID18115 - __ orq_imm32(r8, 1048576); // or r8, 1048576 IID18116 - __ orq_imm32(r8, 4194304); // or r8, 4194304 IID18117 - __ orq_imm32(r8, 16777216); // or r8, 16777216 IID18118 - __ orq_imm32(r8, 67108864); // or r8, 67108864 IID18119 - __ orq_imm32(r8, 268435456); // or r8, 268435456 IID18120 - __ orq_imm32(r8, 1073741824); // or r8, 1073741824 IID18121 - __ orq_imm32(r9, 65536); // or r9, 65536 IID18122 - __ orq_imm32(r9, 262144); // or r9, 262144 IID18123 - __ orq_imm32(r9, 1048576); // or r9, 1048576 IID18124 - __ orq_imm32(r9, 4194304); // or r9, 4194304 IID18125 - __ orq_imm32(r9, 16777216); // or r9, 16777216 IID18126 - __ orq_imm32(r9, 67108864); // or r9, 67108864 IID18127 - __ orq_imm32(r9, 268435456); // or r9, 268435456 IID18128 - __ orq_imm32(r9, 1073741824); // or r9, 1073741824 IID18129 - __ orq_imm32(r10, 65536); // or r10, 65536 IID18130 - __ orq_imm32(r10, 262144); // or r10, 262144 IID18131 - __ orq_imm32(r10, 1048576); // or r10, 1048576 IID18132 - __ orq_imm32(r10, 4194304); // or r10, 4194304 IID18133 - __ orq_imm32(r10, 16777216); // or r10, 16777216 IID18134 - __ orq_imm32(r10, 67108864); // or r10, 67108864 IID18135 - __ orq_imm32(r10, 268435456); // or r10, 268435456 IID18136 - __ orq_imm32(r10, 1073741824); // or r10, 1073741824 IID18137 - __ orq_imm32(r11, 65536); // or r11, 65536 IID18138 - __ orq_imm32(r11, 262144); // or r11, 262144 IID18139 - __ orq_imm32(r11, 1048576); // or r11, 1048576 IID18140 - __ orq_imm32(r11, 4194304); // or r11, 4194304 IID18141 - __ orq_imm32(r11, 16777216); // or r11, 16777216 IID18142 - __ orq_imm32(r11, 67108864); // or r11, 67108864 IID18143 - __ orq_imm32(r11, 268435456); // or r11, 268435456 IID18144 - __ orq_imm32(r11, 1073741824); // or r11, 1073741824 IID18145 - __ orq_imm32(r12, 65536); // or r12, 65536 IID18146 - __ orq_imm32(r12, 262144); // or r12, 262144 IID18147 - __ orq_imm32(r12, 1048576); // or r12, 1048576 IID18148 - __ orq_imm32(r12, 4194304); // or r12, 4194304 IID18149 - __ orq_imm32(r12, 16777216); // or r12, 16777216 IID18150 - __ orq_imm32(r12, 67108864); // or r12, 67108864 IID18151 - __ orq_imm32(r12, 268435456); // or r12, 268435456 IID18152 - __ orq_imm32(r12, 1073741824); // or r12, 1073741824 IID18153 - __ orq_imm32(r13, 65536); // or r13, 65536 IID18154 - __ orq_imm32(r13, 262144); // or r13, 262144 IID18155 - __ orq_imm32(r13, 1048576); // or r13, 1048576 IID18156 - __ orq_imm32(r13, 4194304); // or r13, 4194304 IID18157 - __ orq_imm32(r13, 16777216); // or r13, 16777216 IID18158 - __ orq_imm32(r13, 67108864); // or r13, 67108864 IID18159 - __ orq_imm32(r13, 268435456); // or r13, 268435456 IID18160 - __ orq_imm32(r13, 1073741824); // or r13, 1073741824 IID18161 - __ orq_imm32(r14, 65536); // or r14, 65536 IID18162 - __ orq_imm32(r14, 262144); // or r14, 262144 IID18163 - __ orq_imm32(r14, 1048576); // or r14, 1048576 IID18164 - __ orq_imm32(r14, 4194304); // or r14, 4194304 IID18165 - __ orq_imm32(r14, 16777216); // or r14, 16777216 IID18166 - __ orq_imm32(r14, 67108864); // or r14, 67108864 IID18167 - __ orq_imm32(r14, 268435456); // or r14, 268435456 IID18168 - __ orq_imm32(r14, 1073741824); // or r14, 1073741824 IID18169 - __ orq_imm32(r15, 65536); // or r15, 65536 IID18170 - __ orq_imm32(r15, 262144); // or r15, 262144 IID18171 - __ orq_imm32(r15, 1048576); // or r15, 1048576 IID18172 - __ orq_imm32(r15, 4194304); // or r15, 4194304 IID18173 - __ orq_imm32(r15, 16777216); // or r15, 16777216 IID18174 - __ orq_imm32(r15, 67108864); // or r15, 67108864 IID18175 - __ orq_imm32(r15, 268435456); // or r15, 268435456 IID18176 - __ orq_imm32(r15, 1073741824); // or r15, 1073741824 IID18177 - __ orq_imm32(r16, 65536); // or r16, 65536 IID18178 - __ orq_imm32(r16, 262144); // or r16, 262144 IID18179 - __ orq_imm32(r16, 1048576); // or r16, 1048576 IID18180 - __ orq_imm32(r16, 4194304); // or r16, 4194304 IID18181 - __ orq_imm32(r16, 16777216); // or r16, 16777216 IID18182 - __ orq_imm32(r16, 67108864); // or r16, 67108864 IID18183 - __ orq_imm32(r16, 268435456); // or r16, 268435456 IID18184 - __ orq_imm32(r16, 1073741824); // or r16, 1073741824 IID18185 - __ orq_imm32(r17, 65536); // or r17, 65536 IID18186 - __ orq_imm32(r17, 262144); // or r17, 262144 IID18187 - __ orq_imm32(r17, 1048576); // or r17, 1048576 IID18188 - __ orq_imm32(r17, 4194304); // or r17, 4194304 IID18189 - __ orq_imm32(r17, 16777216); // or r17, 16777216 IID18190 - __ orq_imm32(r17, 67108864); // or r17, 67108864 IID18191 - __ orq_imm32(r17, 268435456); // or r17, 268435456 IID18192 - __ orq_imm32(r17, 1073741824); // or r17, 1073741824 IID18193 - __ orq_imm32(r18, 65536); // or r18, 65536 IID18194 - __ orq_imm32(r18, 262144); // or r18, 262144 IID18195 - __ orq_imm32(r18, 1048576); // or r18, 1048576 IID18196 - __ orq_imm32(r18, 4194304); // or r18, 4194304 IID18197 - __ orq_imm32(r18, 16777216); // or r18, 16777216 IID18198 - __ orq_imm32(r18, 67108864); // or r18, 67108864 IID18199 - __ orq_imm32(r18, 268435456); // or r18, 268435456 IID18200 - __ orq_imm32(r18, 1073741824); // or r18, 1073741824 IID18201 - __ orq_imm32(r19, 65536); // or r19, 65536 IID18202 - __ orq_imm32(r19, 262144); // or r19, 262144 IID18203 - __ orq_imm32(r19, 1048576); // or r19, 1048576 IID18204 - __ orq_imm32(r19, 4194304); // or r19, 4194304 IID18205 - __ orq_imm32(r19, 16777216); // or r19, 16777216 IID18206 - __ orq_imm32(r19, 67108864); // or r19, 67108864 IID18207 - __ orq_imm32(r19, 268435456); // or r19, 268435456 IID18208 - __ orq_imm32(r19, 1073741824); // or r19, 1073741824 IID18209 - __ orq_imm32(r20, 65536); // or r20, 65536 IID18210 - __ orq_imm32(r20, 262144); // or r20, 262144 IID18211 - __ orq_imm32(r20, 1048576); // or r20, 1048576 IID18212 - __ orq_imm32(r20, 4194304); // or r20, 4194304 IID18213 - __ orq_imm32(r20, 16777216); // or r20, 16777216 IID18214 - __ orq_imm32(r20, 67108864); // or r20, 67108864 IID18215 - __ orq_imm32(r20, 268435456); // or r20, 268435456 IID18216 - __ orq_imm32(r20, 1073741824); // or r20, 1073741824 IID18217 - __ orq_imm32(r21, 65536); // or r21, 65536 IID18218 - __ orq_imm32(r21, 262144); // or r21, 262144 IID18219 - __ orq_imm32(r21, 1048576); // or r21, 1048576 IID18220 - __ orq_imm32(r21, 4194304); // or r21, 4194304 IID18221 - __ orq_imm32(r21, 16777216); // or r21, 16777216 IID18222 - __ orq_imm32(r21, 67108864); // or r21, 67108864 IID18223 - __ orq_imm32(r21, 268435456); // or r21, 268435456 IID18224 - __ orq_imm32(r21, 1073741824); // or r21, 1073741824 IID18225 - __ orq_imm32(r22, 65536); // or r22, 65536 IID18226 - __ orq_imm32(r22, 262144); // or r22, 262144 IID18227 - __ orq_imm32(r22, 1048576); // or r22, 1048576 IID18228 - __ orq_imm32(r22, 4194304); // or r22, 4194304 IID18229 - __ orq_imm32(r22, 16777216); // or r22, 16777216 IID18230 - __ orq_imm32(r22, 67108864); // or r22, 67108864 IID18231 - __ orq_imm32(r22, 268435456); // or r22, 268435456 IID18232 - __ orq_imm32(r22, 1073741824); // or r22, 1073741824 IID18233 - __ orq_imm32(r23, 65536); // or r23, 65536 IID18234 - __ orq_imm32(r23, 262144); // or r23, 262144 IID18235 - __ orq_imm32(r23, 1048576); // or r23, 1048576 IID18236 - __ orq_imm32(r23, 4194304); // or r23, 4194304 IID18237 - __ orq_imm32(r23, 16777216); // or r23, 16777216 IID18238 - __ orq_imm32(r23, 67108864); // or r23, 67108864 IID18239 - __ orq_imm32(r23, 268435456); // or r23, 268435456 IID18240 - __ orq_imm32(r23, 1073741824); // or r23, 1073741824 IID18241 - __ orq_imm32(r24, 65536); // or r24, 65536 IID18242 - __ orq_imm32(r24, 262144); // or r24, 262144 IID18243 - __ orq_imm32(r24, 1048576); // or r24, 1048576 IID18244 - __ orq_imm32(r24, 4194304); // or r24, 4194304 IID18245 - __ orq_imm32(r24, 16777216); // or r24, 16777216 IID18246 - __ orq_imm32(r24, 67108864); // or r24, 67108864 IID18247 - __ orq_imm32(r24, 268435456); // or r24, 268435456 IID18248 - __ orq_imm32(r24, 1073741824); // or r24, 1073741824 IID18249 - __ orq_imm32(r25, 65536); // or r25, 65536 IID18250 - __ orq_imm32(r25, 262144); // or r25, 262144 IID18251 - __ orq_imm32(r25, 1048576); // or r25, 1048576 IID18252 - __ orq_imm32(r25, 4194304); // or r25, 4194304 IID18253 - __ orq_imm32(r25, 16777216); // or r25, 16777216 IID18254 - __ orq_imm32(r25, 67108864); // or r25, 67108864 IID18255 - __ orq_imm32(r25, 268435456); // or r25, 268435456 IID18256 - __ orq_imm32(r25, 1073741824); // or r25, 1073741824 IID18257 - __ orq_imm32(r26, 65536); // or r26, 65536 IID18258 - __ orq_imm32(r26, 262144); // or r26, 262144 IID18259 - __ orq_imm32(r26, 1048576); // or r26, 1048576 IID18260 - __ orq_imm32(r26, 4194304); // or r26, 4194304 IID18261 - __ orq_imm32(r26, 16777216); // or r26, 16777216 IID18262 - __ orq_imm32(r26, 67108864); // or r26, 67108864 IID18263 - __ orq_imm32(r26, 268435456); // or r26, 268435456 IID18264 - __ orq_imm32(r26, 1073741824); // or r26, 1073741824 IID18265 - __ orq_imm32(r27, 65536); // or r27, 65536 IID18266 - __ orq_imm32(r27, 262144); // or r27, 262144 IID18267 - __ orq_imm32(r27, 1048576); // or r27, 1048576 IID18268 - __ orq_imm32(r27, 4194304); // or r27, 4194304 IID18269 - __ orq_imm32(r27, 16777216); // or r27, 16777216 IID18270 - __ orq_imm32(r27, 67108864); // or r27, 67108864 IID18271 - __ orq_imm32(r27, 268435456); // or r27, 268435456 IID18272 - __ orq_imm32(r27, 1073741824); // or r27, 1073741824 IID18273 - __ orq_imm32(r28, 65536); // or r28, 65536 IID18274 - __ orq_imm32(r28, 262144); // or r28, 262144 IID18275 - __ orq_imm32(r28, 1048576); // or r28, 1048576 IID18276 - __ orq_imm32(r28, 4194304); // or r28, 4194304 IID18277 - __ orq_imm32(r28, 16777216); // or r28, 16777216 IID18278 - __ orq_imm32(r28, 67108864); // or r28, 67108864 IID18279 - __ orq_imm32(r28, 268435456); // or r28, 268435456 IID18280 - __ orq_imm32(r28, 1073741824); // or r28, 1073741824 IID18281 - __ orq_imm32(r29, 65536); // or r29, 65536 IID18282 - __ orq_imm32(r29, 262144); // or r29, 262144 IID18283 - __ orq_imm32(r29, 1048576); // or r29, 1048576 IID18284 - __ orq_imm32(r29, 4194304); // or r29, 4194304 IID18285 - __ orq_imm32(r29, 16777216); // or r29, 16777216 IID18286 - __ orq_imm32(r29, 67108864); // or r29, 67108864 IID18287 - __ orq_imm32(r29, 268435456); // or r29, 268435456 IID18288 - __ orq_imm32(r29, 1073741824); // or r29, 1073741824 IID18289 - __ orq_imm32(r30, 65536); // or r30, 65536 IID18290 - __ orq_imm32(r30, 262144); // or r30, 262144 IID18291 - __ orq_imm32(r30, 1048576); // or r30, 1048576 IID18292 - __ orq_imm32(r30, 4194304); // or r30, 4194304 IID18293 - __ orq_imm32(r30, 16777216); // or r30, 16777216 IID18294 - __ orq_imm32(r30, 67108864); // or r30, 67108864 IID18295 - __ orq_imm32(r30, 268435456); // or r30, 268435456 IID18296 - __ orq_imm32(r30, 1073741824); // or r30, 1073741824 IID18297 - __ orq_imm32(r31, 65536); // or r31, 65536 IID18298 - __ orq_imm32(r31, 262144); // or r31, 262144 IID18299 - __ orq_imm32(r31, 1048576); // or r31, 1048576 IID18300 - __ orq_imm32(r31, 4194304); // or r31, 4194304 IID18301 - __ orq_imm32(r31, 16777216); // or r31, 16777216 IID18302 - __ orq_imm32(r31, 67108864); // or r31, 67108864 IID18303 - __ orq_imm32(r31, 268435456); // or r31, 268435456 IID18304 - __ orq_imm32(r31, 1073741824); // or r31, 1073741824 IID18305 - __ subq_imm32(rcx, 65536); // sub rcx, 65536 IID18306 - __ subq_imm32(rcx, 262144); // sub rcx, 262144 IID18307 - __ subq_imm32(rcx, 1048576); // sub rcx, 1048576 IID18308 - __ subq_imm32(rcx, 4194304); // sub rcx, 4194304 IID18309 - __ subq_imm32(rcx, 16777216); // sub rcx, 16777216 IID18310 - __ subq_imm32(rcx, 67108864); // sub rcx, 67108864 IID18311 - __ subq_imm32(rcx, 268435456); // sub rcx, 268435456 IID18312 - __ subq_imm32(rcx, 1073741824); // sub rcx, 1073741824 IID18313 - __ subq_imm32(rdx, 65536); // sub rdx, 65536 IID18314 - __ subq_imm32(rdx, 262144); // sub rdx, 262144 IID18315 - __ subq_imm32(rdx, 1048576); // sub rdx, 1048576 IID18316 - __ subq_imm32(rdx, 4194304); // sub rdx, 4194304 IID18317 - __ subq_imm32(rdx, 16777216); // sub rdx, 16777216 IID18318 - __ subq_imm32(rdx, 67108864); // sub rdx, 67108864 IID18319 - __ subq_imm32(rdx, 268435456); // sub rdx, 268435456 IID18320 - __ subq_imm32(rdx, 1073741824); // sub rdx, 1073741824 IID18321 - __ subq_imm32(rbx, 65536); // sub rbx, 65536 IID18322 - __ subq_imm32(rbx, 262144); // sub rbx, 262144 IID18323 - __ subq_imm32(rbx, 1048576); // sub rbx, 1048576 IID18324 - __ subq_imm32(rbx, 4194304); // sub rbx, 4194304 IID18325 - __ subq_imm32(rbx, 16777216); // sub rbx, 16777216 IID18326 - __ subq_imm32(rbx, 67108864); // sub rbx, 67108864 IID18327 - __ subq_imm32(rbx, 268435456); // sub rbx, 268435456 IID18328 - __ subq_imm32(rbx, 1073741824); // sub rbx, 1073741824 IID18329 - __ subq_imm32(r8, 65536); // sub r8, 65536 IID18330 - __ subq_imm32(r8, 262144); // sub r8, 262144 IID18331 - __ subq_imm32(r8, 1048576); // sub r8, 1048576 IID18332 - __ subq_imm32(r8, 4194304); // sub r8, 4194304 IID18333 - __ subq_imm32(r8, 16777216); // sub r8, 16777216 IID18334 - __ subq_imm32(r8, 67108864); // sub r8, 67108864 IID18335 - __ subq_imm32(r8, 268435456); // sub r8, 268435456 IID18336 - __ subq_imm32(r8, 1073741824); // sub r8, 1073741824 IID18337 - __ subq_imm32(r9, 65536); // sub r9, 65536 IID18338 - __ subq_imm32(r9, 262144); // sub r9, 262144 IID18339 - __ subq_imm32(r9, 1048576); // sub r9, 1048576 IID18340 - __ subq_imm32(r9, 4194304); // sub r9, 4194304 IID18341 - __ subq_imm32(r9, 16777216); // sub r9, 16777216 IID18342 - __ subq_imm32(r9, 67108864); // sub r9, 67108864 IID18343 - __ subq_imm32(r9, 268435456); // sub r9, 268435456 IID18344 - __ subq_imm32(r9, 1073741824); // sub r9, 1073741824 IID18345 - __ subq_imm32(r10, 65536); // sub r10, 65536 IID18346 - __ subq_imm32(r10, 262144); // sub r10, 262144 IID18347 - __ subq_imm32(r10, 1048576); // sub r10, 1048576 IID18348 - __ subq_imm32(r10, 4194304); // sub r10, 4194304 IID18349 - __ subq_imm32(r10, 16777216); // sub r10, 16777216 IID18350 - __ subq_imm32(r10, 67108864); // sub r10, 67108864 IID18351 - __ subq_imm32(r10, 268435456); // sub r10, 268435456 IID18352 - __ subq_imm32(r10, 1073741824); // sub r10, 1073741824 IID18353 - __ subq_imm32(r11, 65536); // sub r11, 65536 IID18354 - __ subq_imm32(r11, 262144); // sub r11, 262144 IID18355 - __ subq_imm32(r11, 1048576); // sub r11, 1048576 IID18356 - __ subq_imm32(r11, 4194304); // sub r11, 4194304 IID18357 - __ subq_imm32(r11, 16777216); // sub r11, 16777216 IID18358 - __ subq_imm32(r11, 67108864); // sub r11, 67108864 IID18359 - __ subq_imm32(r11, 268435456); // sub r11, 268435456 IID18360 - __ subq_imm32(r11, 1073741824); // sub r11, 1073741824 IID18361 - __ subq_imm32(r12, 65536); // sub r12, 65536 IID18362 - __ subq_imm32(r12, 262144); // sub r12, 262144 IID18363 - __ subq_imm32(r12, 1048576); // sub r12, 1048576 IID18364 - __ subq_imm32(r12, 4194304); // sub r12, 4194304 IID18365 - __ subq_imm32(r12, 16777216); // sub r12, 16777216 IID18366 - __ subq_imm32(r12, 67108864); // sub r12, 67108864 IID18367 - __ subq_imm32(r12, 268435456); // sub r12, 268435456 IID18368 - __ subq_imm32(r12, 1073741824); // sub r12, 1073741824 IID18369 - __ subq_imm32(r13, 65536); // sub r13, 65536 IID18370 - __ subq_imm32(r13, 262144); // sub r13, 262144 IID18371 - __ subq_imm32(r13, 1048576); // sub r13, 1048576 IID18372 - __ subq_imm32(r13, 4194304); // sub r13, 4194304 IID18373 - __ subq_imm32(r13, 16777216); // sub r13, 16777216 IID18374 - __ subq_imm32(r13, 67108864); // sub r13, 67108864 IID18375 - __ subq_imm32(r13, 268435456); // sub r13, 268435456 IID18376 - __ subq_imm32(r13, 1073741824); // sub r13, 1073741824 IID18377 - __ subq_imm32(r14, 65536); // sub r14, 65536 IID18378 - __ subq_imm32(r14, 262144); // sub r14, 262144 IID18379 - __ subq_imm32(r14, 1048576); // sub r14, 1048576 IID18380 - __ subq_imm32(r14, 4194304); // sub r14, 4194304 IID18381 - __ subq_imm32(r14, 16777216); // sub r14, 16777216 IID18382 - __ subq_imm32(r14, 67108864); // sub r14, 67108864 IID18383 - __ subq_imm32(r14, 268435456); // sub r14, 268435456 IID18384 - __ subq_imm32(r14, 1073741824); // sub r14, 1073741824 IID18385 - __ subq_imm32(r15, 65536); // sub r15, 65536 IID18386 - __ subq_imm32(r15, 262144); // sub r15, 262144 IID18387 - __ subq_imm32(r15, 1048576); // sub r15, 1048576 IID18388 - __ subq_imm32(r15, 4194304); // sub r15, 4194304 IID18389 - __ subq_imm32(r15, 16777216); // sub r15, 16777216 IID18390 - __ subq_imm32(r15, 67108864); // sub r15, 67108864 IID18391 - __ subq_imm32(r15, 268435456); // sub r15, 268435456 IID18392 - __ subq_imm32(r15, 1073741824); // sub r15, 1073741824 IID18393 - __ subq_imm32(r16, 65536); // sub r16, 65536 IID18394 - __ subq_imm32(r16, 262144); // sub r16, 262144 IID18395 - __ subq_imm32(r16, 1048576); // sub r16, 1048576 IID18396 - __ subq_imm32(r16, 4194304); // sub r16, 4194304 IID18397 - __ subq_imm32(r16, 16777216); // sub r16, 16777216 IID18398 - __ subq_imm32(r16, 67108864); // sub r16, 67108864 IID18399 - __ subq_imm32(r16, 268435456); // sub r16, 268435456 IID18400 - __ subq_imm32(r16, 1073741824); // sub r16, 1073741824 IID18401 - __ subq_imm32(r17, 65536); // sub r17, 65536 IID18402 - __ subq_imm32(r17, 262144); // sub r17, 262144 IID18403 - __ subq_imm32(r17, 1048576); // sub r17, 1048576 IID18404 - __ subq_imm32(r17, 4194304); // sub r17, 4194304 IID18405 - __ subq_imm32(r17, 16777216); // sub r17, 16777216 IID18406 - __ subq_imm32(r17, 67108864); // sub r17, 67108864 IID18407 - __ subq_imm32(r17, 268435456); // sub r17, 268435456 IID18408 - __ subq_imm32(r17, 1073741824); // sub r17, 1073741824 IID18409 - __ subq_imm32(r18, 65536); // sub r18, 65536 IID18410 - __ subq_imm32(r18, 262144); // sub r18, 262144 IID18411 - __ subq_imm32(r18, 1048576); // sub r18, 1048576 IID18412 - __ subq_imm32(r18, 4194304); // sub r18, 4194304 IID18413 - __ subq_imm32(r18, 16777216); // sub r18, 16777216 IID18414 - __ subq_imm32(r18, 67108864); // sub r18, 67108864 IID18415 - __ subq_imm32(r18, 268435456); // sub r18, 268435456 IID18416 - __ subq_imm32(r18, 1073741824); // sub r18, 1073741824 IID18417 - __ subq_imm32(r19, 65536); // sub r19, 65536 IID18418 - __ subq_imm32(r19, 262144); // sub r19, 262144 IID18419 - __ subq_imm32(r19, 1048576); // sub r19, 1048576 IID18420 - __ subq_imm32(r19, 4194304); // sub r19, 4194304 IID18421 - __ subq_imm32(r19, 16777216); // sub r19, 16777216 IID18422 - __ subq_imm32(r19, 67108864); // sub r19, 67108864 IID18423 - __ subq_imm32(r19, 268435456); // sub r19, 268435456 IID18424 - __ subq_imm32(r19, 1073741824); // sub r19, 1073741824 IID18425 - __ subq_imm32(r20, 65536); // sub r20, 65536 IID18426 - __ subq_imm32(r20, 262144); // sub r20, 262144 IID18427 - __ subq_imm32(r20, 1048576); // sub r20, 1048576 IID18428 - __ subq_imm32(r20, 4194304); // sub r20, 4194304 IID18429 - __ subq_imm32(r20, 16777216); // sub r20, 16777216 IID18430 - __ subq_imm32(r20, 67108864); // sub r20, 67108864 IID18431 - __ subq_imm32(r20, 268435456); // sub r20, 268435456 IID18432 - __ subq_imm32(r20, 1073741824); // sub r20, 1073741824 IID18433 - __ subq_imm32(r21, 65536); // sub r21, 65536 IID18434 - __ subq_imm32(r21, 262144); // sub r21, 262144 IID18435 - __ subq_imm32(r21, 1048576); // sub r21, 1048576 IID18436 - __ subq_imm32(r21, 4194304); // sub r21, 4194304 IID18437 - __ subq_imm32(r21, 16777216); // sub r21, 16777216 IID18438 - __ subq_imm32(r21, 67108864); // sub r21, 67108864 IID18439 - __ subq_imm32(r21, 268435456); // sub r21, 268435456 IID18440 - __ subq_imm32(r21, 1073741824); // sub r21, 1073741824 IID18441 - __ subq_imm32(r22, 65536); // sub r22, 65536 IID18442 - __ subq_imm32(r22, 262144); // sub r22, 262144 IID18443 - __ subq_imm32(r22, 1048576); // sub r22, 1048576 IID18444 - __ subq_imm32(r22, 4194304); // sub r22, 4194304 IID18445 - __ subq_imm32(r22, 16777216); // sub r22, 16777216 IID18446 - __ subq_imm32(r22, 67108864); // sub r22, 67108864 IID18447 - __ subq_imm32(r22, 268435456); // sub r22, 268435456 IID18448 - __ subq_imm32(r22, 1073741824); // sub r22, 1073741824 IID18449 - __ subq_imm32(r23, 65536); // sub r23, 65536 IID18450 - __ subq_imm32(r23, 262144); // sub r23, 262144 IID18451 - __ subq_imm32(r23, 1048576); // sub r23, 1048576 IID18452 - __ subq_imm32(r23, 4194304); // sub r23, 4194304 IID18453 - __ subq_imm32(r23, 16777216); // sub r23, 16777216 IID18454 - __ subq_imm32(r23, 67108864); // sub r23, 67108864 IID18455 - __ subq_imm32(r23, 268435456); // sub r23, 268435456 IID18456 - __ subq_imm32(r23, 1073741824); // sub r23, 1073741824 IID18457 - __ subq_imm32(r24, 65536); // sub r24, 65536 IID18458 - __ subq_imm32(r24, 262144); // sub r24, 262144 IID18459 - __ subq_imm32(r24, 1048576); // sub r24, 1048576 IID18460 - __ subq_imm32(r24, 4194304); // sub r24, 4194304 IID18461 - __ subq_imm32(r24, 16777216); // sub r24, 16777216 IID18462 - __ subq_imm32(r24, 67108864); // sub r24, 67108864 IID18463 - __ subq_imm32(r24, 268435456); // sub r24, 268435456 IID18464 - __ subq_imm32(r24, 1073741824); // sub r24, 1073741824 IID18465 - __ subq_imm32(r25, 65536); // sub r25, 65536 IID18466 - __ subq_imm32(r25, 262144); // sub r25, 262144 IID18467 - __ subq_imm32(r25, 1048576); // sub r25, 1048576 IID18468 - __ subq_imm32(r25, 4194304); // sub r25, 4194304 IID18469 - __ subq_imm32(r25, 16777216); // sub r25, 16777216 IID18470 - __ subq_imm32(r25, 67108864); // sub r25, 67108864 IID18471 - __ subq_imm32(r25, 268435456); // sub r25, 268435456 IID18472 - __ subq_imm32(r25, 1073741824); // sub r25, 1073741824 IID18473 - __ subq_imm32(r26, 65536); // sub r26, 65536 IID18474 - __ subq_imm32(r26, 262144); // sub r26, 262144 IID18475 - __ subq_imm32(r26, 1048576); // sub r26, 1048576 IID18476 - __ subq_imm32(r26, 4194304); // sub r26, 4194304 IID18477 - __ subq_imm32(r26, 16777216); // sub r26, 16777216 IID18478 - __ subq_imm32(r26, 67108864); // sub r26, 67108864 IID18479 - __ subq_imm32(r26, 268435456); // sub r26, 268435456 IID18480 - __ subq_imm32(r26, 1073741824); // sub r26, 1073741824 IID18481 - __ subq_imm32(r27, 65536); // sub r27, 65536 IID18482 - __ subq_imm32(r27, 262144); // sub r27, 262144 IID18483 - __ subq_imm32(r27, 1048576); // sub r27, 1048576 IID18484 - __ subq_imm32(r27, 4194304); // sub r27, 4194304 IID18485 - __ subq_imm32(r27, 16777216); // sub r27, 16777216 IID18486 - __ subq_imm32(r27, 67108864); // sub r27, 67108864 IID18487 - __ subq_imm32(r27, 268435456); // sub r27, 268435456 IID18488 - __ subq_imm32(r27, 1073741824); // sub r27, 1073741824 IID18489 - __ subq_imm32(r28, 65536); // sub r28, 65536 IID18490 - __ subq_imm32(r28, 262144); // sub r28, 262144 IID18491 - __ subq_imm32(r28, 1048576); // sub r28, 1048576 IID18492 - __ subq_imm32(r28, 4194304); // sub r28, 4194304 IID18493 - __ subq_imm32(r28, 16777216); // sub r28, 16777216 IID18494 - __ subq_imm32(r28, 67108864); // sub r28, 67108864 IID18495 - __ subq_imm32(r28, 268435456); // sub r28, 268435456 IID18496 - __ subq_imm32(r28, 1073741824); // sub r28, 1073741824 IID18497 - __ subq_imm32(r29, 65536); // sub r29, 65536 IID18498 - __ subq_imm32(r29, 262144); // sub r29, 262144 IID18499 - __ subq_imm32(r29, 1048576); // sub r29, 1048576 IID18500 - __ subq_imm32(r29, 4194304); // sub r29, 4194304 IID18501 - __ subq_imm32(r29, 16777216); // sub r29, 16777216 IID18502 - __ subq_imm32(r29, 67108864); // sub r29, 67108864 IID18503 - __ subq_imm32(r29, 268435456); // sub r29, 268435456 IID18504 - __ subq_imm32(r29, 1073741824); // sub r29, 1073741824 IID18505 - __ subq_imm32(r30, 65536); // sub r30, 65536 IID18506 - __ subq_imm32(r30, 262144); // sub r30, 262144 IID18507 - __ subq_imm32(r30, 1048576); // sub r30, 1048576 IID18508 - __ subq_imm32(r30, 4194304); // sub r30, 4194304 IID18509 - __ subq_imm32(r30, 16777216); // sub r30, 16777216 IID18510 - __ subq_imm32(r30, 67108864); // sub r30, 67108864 IID18511 - __ subq_imm32(r30, 268435456); // sub r30, 268435456 IID18512 - __ subq_imm32(r30, 1073741824); // sub r30, 1073741824 IID18513 - __ subq_imm32(r31, 65536); // sub r31, 65536 IID18514 - __ subq_imm32(r31, 262144); // sub r31, 262144 IID18515 - __ subq_imm32(r31, 1048576); // sub r31, 1048576 IID18516 - __ subq_imm32(r31, 4194304); // sub r31, 4194304 IID18517 - __ subq_imm32(r31, 16777216); // sub r31, 16777216 IID18518 - __ subq_imm32(r31, 67108864); // sub r31, 67108864 IID18519 - __ subq_imm32(r31, 268435456); // sub r31, 268435456 IID18520 - __ subq_imm32(r31, 1073741824); // sub r31, 1073741824 IID18521 - __ cmovq(Assembler::Condition::overflow, rcx, Address(rdx, rbx, (Address::ScaleFactor)3, +0x185e9ace)); // cmovo rcx, qword ptr [rdx+rbx*8+0x185e9ace] IID18522 - __ cmovq(Assembler::Condition::overflow, rdx, Address(rbx, r8, (Address::ScaleFactor)0, +0x7addd838)); // cmovo rdx, qword ptr [rbx+r8*1+0x7addd838] IID18523 - __ cmovq(Assembler::Condition::overflow, rbx, Address(r8, r9, (Address::ScaleFactor)2, +0x6f26c33e)); // cmovo rbx, qword ptr [r8+r9*4+0x6f26c33e] IID18524 - __ cmovq(Assembler::Condition::overflow, r8, Address(r9, r10, (Address::ScaleFactor)0, -0xc7f1195)); // cmovo r8, qword ptr [r9+r10*1-0xc7f1195] IID18525 - __ cmovq(Assembler::Condition::overflow, r9, Address(r10, r11, (Address::ScaleFactor)2, +0x4e54ea84)); // cmovo r9, qword ptr [r10+r11*4+0x4e54ea84] IID18526 - __ cmovq(Assembler::Condition::overflow, r10, Address(r11, r12, (Address::ScaleFactor)3, -0x3d18b7a2)); // cmovo r10, qword ptr [r11+r12*8-0x3d18b7a2] IID18527 - __ cmovq(Assembler::Condition::overflow, r11, Address(r12, -0x70414f7f)); // cmovo r11, qword ptr [r12-0x70414f7f] IID18528 - __ cmovq(Assembler::Condition::overflow, r12, Address(r13, r14, (Address::ScaleFactor)1, -0x4b9adb49)); // cmovo r12, qword ptr [r13+r14*2-0x4b9adb49] IID18529 - __ cmovq(Assembler::Condition::overflow, r13, Address(r14, r15, (Address::ScaleFactor)1, -0x3b51e791)); // cmovo r13, qword ptr [r14+r15*2-0x3b51e791] IID18530 - __ cmovq(Assembler::Condition::overflow, r14, Address(r15, r16, (Address::ScaleFactor)0, +0x333acaad)); // cmovo r14, qword ptr [r15+r16*1+0x333acaad] IID18531 - __ cmovq(Assembler::Condition::overflow, r15, Address(r16, r17, (Address::ScaleFactor)1, +0x28832bc0)); // cmovo r15, qword ptr [r16+r17*2+0x28832bc0] IID18532 - __ cmovq(Assembler::Condition::overflow, r16, Address(r17, r18, (Address::ScaleFactor)0, -0xcc08582)); // cmovo r16, qword ptr [r17+r18*1-0xcc08582] IID18533 - __ cmovq(Assembler::Condition::overflow, r17, Address(r18, r19, (Address::ScaleFactor)3, +0x6e93bf56)); // cmovo r17, qword ptr [r18+r19*8+0x6e93bf56] IID18534 - __ cmovq(Assembler::Condition::overflow, r18, Address(r19, r20, (Address::ScaleFactor)3, -0x6d5579b0)); // cmovo r18, qword ptr [r19+r20*8-0x6d5579b0] IID18535 - __ cmovq(Assembler::Condition::overflow, r19, Address(r20, r21, (Address::ScaleFactor)1, +0x340caa6c)); // cmovo r19, qword ptr [r20+r21*2+0x340caa6c] IID18536 - __ cmovq(Assembler::Condition::overflow, r20, Address(r21, r22, (Address::ScaleFactor)1, -0x79cbc1b8)); // cmovo r20, qword ptr [r21+r22*2-0x79cbc1b8] IID18537 - __ cmovq(Assembler::Condition::overflow, r21, Address(r22, r23, (Address::ScaleFactor)3, +0x505ff460)); // cmovo r21, qword ptr [r22+r23*8+0x505ff460] IID18538 - __ cmovq(Assembler::Condition::overflow, r22, Address(r23, r24, (Address::ScaleFactor)1, +0x33189553)); // cmovo r22, qword ptr [r23+r24*2+0x33189553] IID18539 - __ cmovq(Assembler::Condition::overflow, r23, Address(r24, r25, (Address::ScaleFactor)0, -0x6a9ffd68)); // cmovo r23, qword ptr [r24+r25*1-0x6a9ffd68] IID18540 - __ cmovq(Assembler::Condition::overflow, r24, Address(r25, r26, (Address::ScaleFactor)3, +0x4c37cd56)); // cmovo r24, qword ptr [r25+r26*8+0x4c37cd56] IID18541 - __ cmovq(Assembler::Condition::overflow, r25, Address(r26, r27, (Address::ScaleFactor)0, -0x293dc7b2)); // cmovo r25, qword ptr [r26+r27*1-0x293dc7b2] IID18542 - __ cmovq(Assembler::Condition::overflow, r26, Address(r27, r28, (Address::ScaleFactor)2, -0x3a4b0db0)); // cmovo r26, qword ptr [r27+r28*4-0x3a4b0db0] IID18543 - __ cmovq(Assembler::Condition::overflow, r27, Address(r28, r29, (Address::ScaleFactor)1, -0xddf3fd6)); // cmovo r27, qword ptr [r28+r29*2-0xddf3fd6] IID18544 - __ cmovq(Assembler::Condition::overflow, r28, Address(r29, r30, (Address::ScaleFactor)2, +0x19b048f7)); // cmovo r28, qword ptr [r29+r30*4+0x19b048f7] IID18545 - __ cmovq(Assembler::Condition::overflow, r29, Address(r30, r31, (Address::ScaleFactor)2, +0x614161a3)); // cmovo r29, qword ptr [r30+r31*4+0x614161a3] IID18546 - __ cmovq(Assembler::Condition::overflow, r30, Address(r31, -0x76baa6d)); // cmovo r30, qword ptr [r31-0x76baa6d] IID18547 - __ cmovq(Assembler::Condition::overflow, r31, Address(rcx, rdx, (Address::ScaleFactor)0, +0x22fa9faa)); // cmovo r31, qword ptr [rcx+rdx*1+0x22fa9faa] IID18548 - __ cmovq(Assembler::Condition::noOverflow, rcx, Address(rdx, rbx, (Address::ScaleFactor)2, +0x4db8cd3)); // cmovno rcx, qword ptr [rdx+rbx*4+0x4db8cd3] IID18549 - __ cmovq(Assembler::Condition::noOverflow, rdx, Address(rbx, r8, (Address::ScaleFactor)3, -0x33bd95bf)); // cmovno rdx, qword ptr [rbx+r8*8-0x33bd95bf] IID18550 - __ cmovq(Assembler::Condition::noOverflow, rbx, Address(r8, -0x5abf0fe5)); // cmovno rbx, qword ptr [r8-0x5abf0fe5] IID18551 - __ cmovq(Assembler::Condition::noOverflow, r8, Address(r9, r10, (Address::ScaleFactor)3, -0x3b26beea)); // cmovno r8, qword ptr [r9+r10*8-0x3b26beea] IID18552 - __ cmovq(Assembler::Condition::noOverflow, r9, Address(r10, r11, (Address::ScaleFactor)2, -0x40fec14f)); // cmovno r9, qword ptr [r10+r11*4-0x40fec14f] IID18553 - __ cmovq(Assembler::Condition::noOverflow, r10, Address(r11, r12, (Address::ScaleFactor)2, -0x5c01d06d)); // cmovno r10, qword ptr [r11+r12*4-0x5c01d06d] IID18554 - __ cmovq(Assembler::Condition::noOverflow, r11, Address(r12, r13, (Address::ScaleFactor)0, +0x459c415d)); // cmovno r11, qword ptr [r12+r13*1+0x459c415d] IID18555 - __ cmovq(Assembler::Condition::noOverflow, r12, Address(r13, -0x6021879a)); // cmovno r12, qword ptr [r13-0x6021879a] IID18556 - __ cmovq(Assembler::Condition::noOverflow, r13, Address(r14, r15, (Address::ScaleFactor)3, -0x2828e5ab)); // cmovno r13, qword ptr [r14+r15*8-0x2828e5ab] IID18557 - __ cmovq(Assembler::Condition::noOverflow, r14, Address(r15, r16, (Address::ScaleFactor)1, -0x431c2e7b)); // cmovno r14, qword ptr [r15+r16*2-0x431c2e7b] IID18558 - __ cmovq(Assembler::Condition::noOverflow, r15, Address(r16, r17, (Address::ScaleFactor)3, -0x47adaecf)); // cmovno r15, qword ptr [r16+r17*8-0x47adaecf] IID18559 - __ cmovq(Assembler::Condition::noOverflow, r16, Address(r17, r18, (Address::ScaleFactor)0, +0x6b08ba5e)); // cmovno r16, qword ptr [r17+r18*1+0x6b08ba5e] IID18560 - __ cmovq(Assembler::Condition::noOverflow, r17, Address(r18, r19, (Address::ScaleFactor)2, +0x6cd94113)); // cmovno r17, qword ptr [r18+r19*4+0x6cd94113] IID18561 - __ cmovq(Assembler::Condition::noOverflow, r18, Address(r19, r20, (Address::ScaleFactor)0, +0x3a98e6cc)); // cmovno r18, qword ptr [r19+r20*1+0x3a98e6cc] IID18562 - __ cmovq(Assembler::Condition::noOverflow, r19, Address(r20, r21, (Address::ScaleFactor)2, -0x31f98e0f)); // cmovno r19, qword ptr [r20+r21*4-0x31f98e0f] IID18563 - __ cmovq(Assembler::Condition::noOverflow, r20, Address(r21, r22, (Address::ScaleFactor)1, +0x13f459e4)); // cmovno r20, qword ptr [r21+r22*2+0x13f459e4] IID18564 - __ cmovq(Assembler::Condition::noOverflow, r21, Address(r22, +0x2a6f573d)); // cmovno r21, qword ptr [r22+0x2a6f573d] IID18565 - __ cmovq(Assembler::Condition::noOverflow, r22, Address(r23, r24, (Address::ScaleFactor)0, +0x39e06b75)); // cmovno r22, qword ptr [r23+r24*1+0x39e06b75] IID18566 - __ cmovq(Assembler::Condition::noOverflow, r23, Address(r24, r25, (Address::ScaleFactor)2, +0x57574c1d)); // cmovno r23, qword ptr [r24+r25*4+0x57574c1d] IID18567 - __ cmovq(Assembler::Condition::noOverflow, r24, Address(r25, r26, (Address::ScaleFactor)3, +0x1dcd02a5)); // cmovno r24, qword ptr [r25+r26*8+0x1dcd02a5] IID18568 - __ cmovq(Assembler::Condition::noOverflow, r25, Address(r26, r27, (Address::ScaleFactor)0, -0x5997089)); // cmovno r25, qword ptr [r26+r27*1-0x5997089] IID18569 - __ cmovq(Assembler::Condition::noOverflow, r26, Address(r27, r28, (Address::ScaleFactor)2, +0x51fc379a)); // cmovno r26, qword ptr [r27+r28*4+0x51fc379a] IID18570 - __ cmovq(Assembler::Condition::noOverflow, r27, Address(r28, r29, (Address::ScaleFactor)3, +0x7992583c)); // cmovno r27, qword ptr [r28+r29*8+0x7992583c] IID18571 - __ cmovq(Assembler::Condition::noOverflow, r28, Address(r29, +0x7e6c39ab)); // cmovno r28, qword ptr [r29+0x7e6c39ab] IID18572 - __ cmovq(Assembler::Condition::noOverflow, r29, Address(r30, r31, (Address::ScaleFactor)3, -0x625a775a)); // cmovno r29, qword ptr [r30+r31*8-0x625a775a] IID18573 - __ cmovq(Assembler::Condition::noOverflow, r30, Address(r31, rcx, (Address::ScaleFactor)3, -0x39204b66)); // cmovno r30, qword ptr [r31+rcx*8-0x39204b66] IID18574 - __ cmovq(Assembler::Condition::noOverflow, r31, Address(rcx, rdx, (Address::ScaleFactor)3, -0x36d6ebab)); // cmovno r31, qword ptr [rcx+rdx*8-0x36d6ebab] IID18575 - __ cmovq(Assembler::Condition::below, rcx, Address(rdx, -0x41458b3a)); // cmovb rcx, qword ptr [rdx-0x41458b3a] IID18576 - __ cmovq(Assembler::Condition::below, rdx, Address(rbx, r8, (Address::ScaleFactor)0, -0x64e6164d)); // cmovb rdx, qword ptr [rbx+r8*1-0x64e6164d] IID18577 - __ cmovq(Assembler::Condition::below, rbx, Address(r8, +0xae3549b)); // cmovb rbx, qword ptr [r8+0xae3549b] IID18578 - __ cmovq(Assembler::Condition::below, r8, Address(r9, -0x21bf49ac)); // cmovb r8, qword ptr [r9-0x21bf49ac] IID18579 - __ cmovq(Assembler::Condition::below, r9, Address(r10, r11, (Address::ScaleFactor)2, -0x33aa8e2f)); // cmovb r9, qword ptr [r10+r11*4-0x33aa8e2f] IID18580 - __ cmovq(Assembler::Condition::below, r10, Address(r11, +0x7e113699)); // cmovb r10, qword ptr [r11+0x7e113699] IID18581 - __ cmovq(Assembler::Condition::below, r11, Address(r12, r13, (Address::ScaleFactor)3, -0x10f0cc5f)); // cmovb r11, qword ptr [r12+r13*8-0x10f0cc5f] IID18582 - __ cmovq(Assembler::Condition::below, r12, Address(r13, r14, (Address::ScaleFactor)2, +0x7cc97c63)); // cmovb r12, qword ptr [r13+r14*4+0x7cc97c63] IID18583 - __ cmovq(Assembler::Condition::below, r13, Address(r14, r15, (Address::ScaleFactor)3, -0x43c7a5f5)); // cmovb r13, qword ptr [r14+r15*8-0x43c7a5f5] IID18584 - __ cmovq(Assembler::Condition::below, r14, Address(r15, r16, (Address::ScaleFactor)3, +0x15ccf48e)); // cmovb r14, qword ptr [r15+r16*8+0x15ccf48e] IID18585 - __ cmovq(Assembler::Condition::below, r15, Address(r16, r17, (Address::ScaleFactor)3, +0x7fd36094)); // cmovb r15, qword ptr [r16+r17*8+0x7fd36094] IID18586 - __ cmovq(Assembler::Condition::below, r16, Address(r17, r18, (Address::ScaleFactor)1, +0x69cc03eb)); // cmovb r16, qword ptr [r17+r18*2+0x69cc03eb] IID18587 - __ cmovq(Assembler::Condition::below, r17, Address(r18, r19, (Address::ScaleFactor)1, -0x2939ec2a)); // cmovb r17, qword ptr [r18+r19*2-0x2939ec2a] IID18588 - __ cmovq(Assembler::Condition::below, r18, Address(r19, r20, (Address::ScaleFactor)0, +0x59452527)); // cmovb r18, qword ptr [r19+r20*1+0x59452527] IID18589 - __ cmovq(Assembler::Condition::below, r19, Address(r20, r21, (Address::ScaleFactor)3, +0x26881dcf)); // cmovb r19, qword ptr [r20+r21*8+0x26881dcf] IID18590 - __ cmovq(Assembler::Condition::below, r20, Address(r21, +0x34b969fa)); // cmovb r20, qword ptr [r21+0x34b969fa] IID18591 - __ cmovq(Assembler::Condition::below, r21, Address(r22, +0x7f63edb0)); // cmovb r21, qword ptr [r22+0x7f63edb0] IID18592 - __ cmovq(Assembler::Condition::below, r22, Address(r23, r24, (Address::ScaleFactor)3, +0x6475ef84)); // cmovb r22, qword ptr [r23+r24*8+0x6475ef84] IID18593 - __ cmovq(Assembler::Condition::below, r23, Address(r24, r25, (Address::ScaleFactor)3, -0x67f72a73)); // cmovb r23, qword ptr [r24+r25*8-0x67f72a73] IID18594 - __ cmovq(Assembler::Condition::below, r24, Address(r25, r26, (Address::ScaleFactor)3, -0x48a0f642)); // cmovb r24, qword ptr [r25+r26*8-0x48a0f642] IID18595 - __ cmovq(Assembler::Condition::below, r25, Address(r26, r27, (Address::ScaleFactor)0, +0x8698e9a)); // cmovb r25, qword ptr [r26+r27*1+0x8698e9a] IID18596 - __ cmovq(Assembler::Condition::below, r26, Address(r27, r28, (Address::ScaleFactor)0, -0x7a2b377e)); // cmovb r26, qword ptr [r27+r28*1-0x7a2b377e] IID18597 - __ cmovq(Assembler::Condition::below, r27, Address(r28, r29, (Address::ScaleFactor)3, -0x736e9542)); // cmovb r27, qword ptr [r28+r29*8-0x736e9542] IID18598 - __ cmovq(Assembler::Condition::below, r28, Address(r29, r30, (Address::ScaleFactor)1, +0x5e1709de)); // cmovb r28, qword ptr [r29+r30*2+0x5e1709de] IID18599 - __ cmovq(Assembler::Condition::below, r29, Address(r30, r31, (Address::ScaleFactor)3, +0x5a05bde3)); // cmovb r29, qword ptr [r30+r31*8+0x5a05bde3] IID18600 - __ cmovq(Assembler::Condition::below, r30, Address(r31, rcx, (Address::ScaleFactor)0, -0x7afcf3c5)); // cmovb r30, qword ptr [r31+rcx*1-0x7afcf3c5] IID18601 - __ cmovq(Assembler::Condition::below, r31, Address(rcx, +0x6e955c36)); // cmovb r31, qword ptr [rcx+0x6e955c36] IID18602 - __ cmovq(Assembler::Condition::aboveEqual, rcx, Address(rdx, rbx, (Address::ScaleFactor)1, +0x3f567275)); // cmovae rcx, qword ptr [rdx+rbx*2+0x3f567275] IID18603 - __ cmovq(Assembler::Condition::aboveEqual, rdx, Address(rbx, r8, (Address::ScaleFactor)3, +0x564d392)); // cmovae rdx, qword ptr [rbx+r8*8+0x564d392] IID18604 - __ cmovq(Assembler::Condition::aboveEqual, rbx, Address(r8, +0x17b50637)); // cmovae rbx, qword ptr [r8+0x17b50637] IID18605 - __ cmovq(Assembler::Condition::aboveEqual, r8, Address(r9, r10, (Address::ScaleFactor)3, -0x55700eef)); // cmovae r8, qword ptr [r9+r10*8-0x55700eef] IID18606 - __ cmovq(Assembler::Condition::aboveEqual, r9, Address(r10, r11, (Address::ScaleFactor)1, -0x17d40194)); // cmovae r9, qword ptr [r10+r11*2-0x17d40194] IID18607 - __ cmovq(Assembler::Condition::aboveEqual, r10, Address(r11, r12, (Address::ScaleFactor)3, +0x7de209ee)); // cmovae r10, qword ptr [r11+r12*8+0x7de209ee] IID18608 - __ cmovq(Assembler::Condition::aboveEqual, r11, Address(r12, r13, (Address::ScaleFactor)1, +0x28d588da)); // cmovae r11, qword ptr [r12+r13*2+0x28d588da] IID18609 - __ cmovq(Assembler::Condition::aboveEqual, r12, Address(r13, +0x502462ce)); // cmovae r12, qword ptr [r13+0x502462ce] IID18610 - __ cmovq(Assembler::Condition::aboveEqual, r13, Address(r14, r15, (Address::ScaleFactor)3, -0x47114e8a)); // cmovae r13, qword ptr [r14+r15*8-0x47114e8a] IID18611 - __ cmovq(Assembler::Condition::aboveEqual, r14, Address(r15, r16, (Address::ScaleFactor)0, -0xea9a959)); // cmovae r14, qword ptr [r15+r16*1-0xea9a959] IID18612 - __ cmovq(Assembler::Condition::aboveEqual, r15, Address(r16, +0x60e0cc52)); // cmovae r15, qword ptr [r16+0x60e0cc52] IID18613 - __ cmovq(Assembler::Condition::aboveEqual, r16, Address(r17, r18, (Address::ScaleFactor)0, -0x720b0a20)); // cmovae r16, qword ptr [r17+r18*1-0x720b0a20] IID18614 - __ cmovq(Assembler::Condition::aboveEqual, r17, Address(r18, r19, (Address::ScaleFactor)3, +0x7d0507d)); // cmovae r17, qword ptr [r18+r19*8+0x7d0507d] IID18615 - __ cmovq(Assembler::Condition::aboveEqual, r18, Address(r19, r20, (Address::ScaleFactor)1, -0x5be948a2)); // cmovae r18, qword ptr [r19+r20*2-0x5be948a2] IID18616 - __ cmovq(Assembler::Condition::aboveEqual, r19, Address(r20, r21, (Address::ScaleFactor)1, +0x529c776f)); // cmovae r19, qword ptr [r20+r21*2+0x529c776f] IID18617 - __ cmovq(Assembler::Condition::aboveEqual, r20, Address(r21, -0x6d06de0d)); // cmovae r20, qword ptr [r21-0x6d06de0d] IID18618 - __ cmovq(Assembler::Condition::aboveEqual, r21, Address(r22, +0x7d64f3e2)); // cmovae r21, qword ptr [r22+0x7d64f3e2] IID18619 - __ cmovq(Assembler::Condition::aboveEqual, r22, Address(r23, r24, (Address::ScaleFactor)2, -0x11c2937d)); // cmovae r22, qword ptr [r23+r24*4-0x11c2937d] IID18620 - __ cmovq(Assembler::Condition::aboveEqual, r23, Address(r24, r25, (Address::ScaleFactor)2, +0x16b9bfa3)); // cmovae r23, qword ptr [r24+r25*4+0x16b9bfa3] IID18621 - __ cmovq(Assembler::Condition::aboveEqual, r24, Address(r25, r26, (Address::ScaleFactor)3, +0x65ba5297)); // cmovae r24, qword ptr [r25+r26*8+0x65ba5297] IID18622 - __ cmovq(Assembler::Condition::aboveEqual, r25, Address(r26, r27, (Address::ScaleFactor)0, +0x1a905418)); // cmovae r25, qword ptr [r26+r27*1+0x1a905418] IID18623 - __ cmovq(Assembler::Condition::aboveEqual, r26, Address(r27, r28, (Address::ScaleFactor)2, -0x6606b28b)); // cmovae r26, qword ptr [r27+r28*4-0x6606b28b] IID18624 - __ cmovq(Assembler::Condition::aboveEqual, r27, Address(r28, r29, (Address::ScaleFactor)3, +0x4de85138)); // cmovae r27, qword ptr [r28+r29*8+0x4de85138] IID18625 - __ cmovq(Assembler::Condition::aboveEqual, r28, Address(r29, +0x3f5a41a3)); // cmovae r28, qword ptr [r29+0x3f5a41a3] IID18626 - __ cmovq(Assembler::Condition::aboveEqual, r29, Address(r30, r31, (Address::ScaleFactor)2, -0x3f37ca3d)); // cmovae r29, qword ptr [r30+r31*4-0x3f37ca3d] IID18627 - __ cmovq(Assembler::Condition::aboveEqual, r30, Address(r31, rcx, (Address::ScaleFactor)0, +0x38f2726e)); // cmovae r30, qword ptr [r31+rcx*1+0x38f2726e] IID18628 - __ cmovq(Assembler::Condition::aboveEqual, r31, Address(rcx, rdx, (Address::ScaleFactor)2, -0x703ae7eb)); // cmovae r31, qword ptr [rcx+rdx*4-0x703ae7eb] IID18629 - __ cmovq(Assembler::Condition::zero, rcx, Address(rdx, rbx, (Address::ScaleFactor)3, +0xca14f93)); // cmovz rcx, qword ptr [rdx+rbx*8+0xca14f93] IID18630 - __ cmovq(Assembler::Condition::zero, rdx, Address(rbx, r8, (Address::ScaleFactor)0, -0x258dc55b)); // cmovz rdx, qword ptr [rbx+r8*1-0x258dc55b] IID18631 - __ cmovq(Assembler::Condition::zero, rbx, Address(r8, r9, (Address::ScaleFactor)2, -0x3d779a30)); // cmovz rbx, qword ptr [r8+r9*4-0x3d779a30] IID18632 - __ cmovq(Assembler::Condition::zero, r8, Address(r9, r10, (Address::ScaleFactor)2, +0x4eaef819)); // cmovz r8, qword ptr [r9+r10*4+0x4eaef819] IID18633 - __ cmovq(Assembler::Condition::zero, r9, Address(r10, r11, (Address::ScaleFactor)1, +0x70029386)); // cmovz r9, qword ptr [r10+r11*2+0x70029386] IID18634 - __ cmovq(Assembler::Condition::zero, r10, Address(r11, r12, (Address::ScaleFactor)1, -0xe65d83e)); // cmovz r10, qword ptr [r11+r12*2-0xe65d83e] IID18635 - __ cmovq(Assembler::Condition::zero, r11, Address(r12, r13, (Address::ScaleFactor)1, -0x4579bd08)); // cmovz r11, qword ptr [r12+r13*2-0x4579bd08] IID18636 - __ cmovq(Assembler::Condition::zero, r12, Address(r13, r14, (Address::ScaleFactor)3, -0x2efb7cfa)); // cmovz r12, qword ptr [r13+r14*8-0x2efb7cfa] IID18637 - __ cmovq(Assembler::Condition::zero, r13, Address(r14, r15, (Address::ScaleFactor)0, -0x5d40e3aa)); // cmovz r13, qword ptr [r14+r15*1-0x5d40e3aa] IID18638 - __ cmovq(Assembler::Condition::zero, r14, Address(r15, r16, (Address::ScaleFactor)0, -0x45d5ec44)); // cmovz r14, qword ptr [r15+r16*1-0x45d5ec44] IID18639 - __ cmovq(Assembler::Condition::zero, r15, Address(r16, +0x731d14d6)); // cmovz r15, qword ptr [r16+0x731d14d6] IID18640 - __ cmovq(Assembler::Condition::zero, r16, Address(r17, r18, (Address::ScaleFactor)2, +0x51db970a)); // cmovz r16, qword ptr [r17+r18*4+0x51db970a] IID18641 - __ cmovq(Assembler::Condition::zero, r17, Address(r18, r19, (Address::ScaleFactor)1, +0x3eb2deda)); // cmovz r17, qword ptr [r18+r19*2+0x3eb2deda] IID18642 - __ cmovq(Assembler::Condition::zero, r18, Address(r19, +0x1392f69b)); // cmovz r18, qword ptr [r19+0x1392f69b] IID18643 - __ cmovq(Assembler::Condition::zero, r19, Address(r20, r21, (Address::ScaleFactor)0, +0x470c4b00)); // cmovz r19, qword ptr [r20+r21*1+0x470c4b00] IID18644 - __ cmovq(Assembler::Condition::zero, r20, Address(r21, -0x543bf406)); // cmovz r20, qword ptr [r21-0x543bf406] IID18645 - __ cmovq(Assembler::Condition::zero, r21, Address(r22, r23, (Address::ScaleFactor)0, -0x27f8a72c)); // cmovz r21, qword ptr [r22+r23*1-0x27f8a72c] IID18646 - __ cmovq(Assembler::Condition::zero, r22, Address(r23, r24, (Address::ScaleFactor)1, -0x2af7b8c1)); // cmovz r22, qword ptr [r23+r24*2-0x2af7b8c1] IID18647 - __ cmovq(Assembler::Condition::zero, r23, Address(r24, r25, (Address::ScaleFactor)1, -0x58c5f7bc)); // cmovz r23, qword ptr [r24+r25*2-0x58c5f7bc] IID18648 - __ cmovq(Assembler::Condition::zero, r24, Address(r25, r26, (Address::ScaleFactor)2, -0x30e03904)); // cmovz r24, qword ptr [r25+r26*4-0x30e03904] IID18649 - __ cmovq(Assembler::Condition::zero, r25, Address(r26, r27, (Address::ScaleFactor)1, -0x3da76f78)); // cmovz r25, qword ptr [r26+r27*2-0x3da76f78] IID18650 - __ cmovq(Assembler::Condition::zero, r26, Address(r27, r28, (Address::ScaleFactor)2, -0x493d77b0)); // cmovz r26, qword ptr [r27+r28*4-0x493d77b0] IID18651 - __ cmovq(Assembler::Condition::zero, r27, Address(r28, +0x1d34223)); // cmovz r27, qword ptr [r28+0x1d34223] IID18652 - __ cmovq(Assembler::Condition::zero, r28, Address(r29, -0x605c807c)); // cmovz r28, qword ptr [r29-0x605c807c] IID18653 - __ cmovq(Assembler::Condition::zero, r29, Address(r30, r31, (Address::ScaleFactor)0, +0x28c38085)); // cmovz r29, qword ptr [r30+r31*1+0x28c38085] IID18654 - __ cmovq(Assembler::Condition::zero, r30, Address(r31, -0x1b9dbd9f)); // cmovz r30, qword ptr [r31-0x1b9dbd9f] IID18655 - __ cmovq(Assembler::Condition::zero, r31, Address(rcx, -0x3589e62)); // cmovz r31, qword ptr [rcx-0x3589e62] IID18656 - __ cmovq(Assembler::Condition::notZero, rcx, Address(rdx, rbx, (Address::ScaleFactor)1, +0x42f51ced)); // cmovnz rcx, qword ptr [rdx+rbx*2+0x42f51ced] IID18657 - __ cmovq(Assembler::Condition::notZero, rdx, Address(rbx, r8, (Address::ScaleFactor)3, +0x32e47e66)); // cmovnz rdx, qword ptr [rbx+r8*8+0x32e47e66] IID18658 - __ cmovq(Assembler::Condition::notZero, rbx, Address(r8, r9, (Address::ScaleFactor)0, +0x1978c87e)); // cmovnz rbx, qword ptr [r8+r9*1+0x1978c87e] IID18659 - __ cmovq(Assembler::Condition::notZero, r8, Address(r9, r10, (Address::ScaleFactor)3, +0x3b33c102)); // cmovnz r8, qword ptr [r9+r10*8+0x3b33c102] IID18660 - __ cmovq(Assembler::Condition::notZero, r9, Address(r10, r11, (Address::ScaleFactor)2, +0x7be9a9b7)); // cmovnz r9, qword ptr [r10+r11*4+0x7be9a9b7] IID18661 - __ cmovq(Assembler::Condition::notZero, r10, Address(r11, r12, (Address::ScaleFactor)3, +0x36edea94)); // cmovnz r10, qword ptr [r11+r12*8+0x36edea94] IID18662 - __ cmovq(Assembler::Condition::notZero, r11, Address(r12, r13, (Address::ScaleFactor)2, +0x39b127c6)); // cmovnz r11, qword ptr [r12+r13*4+0x39b127c6] IID18663 - __ cmovq(Assembler::Condition::notZero, r12, Address(r13, -0x384992bd)); // cmovnz r12, qword ptr [r13-0x384992bd] IID18664 - __ cmovq(Assembler::Condition::notZero, r13, Address(r14, r15, (Address::ScaleFactor)1, +0x4564cc69)); // cmovnz r13, qword ptr [r14+r15*2+0x4564cc69] IID18665 - __ cmovq(Assembler::Condition::notZero, r14, Address(r15, r16, (Address::ScaleFactor)1, -0x3579e7c6)); // cmovnz r14, qword ptr [r15+r16*2-0x3579e7c6] IID18666 - __ cmovq(Assembler::Condition::notZero, r15, Address(r16, r17, (Address::ScaleFactor)2, -0x57241548)); // cmovnz r15, qword ptr [r16+r17*4-0x57241548] IID18667 - __ cmovq(Assembler::Condition::notZero, r16, Address(r17, r18, (Address::ScaleFactor)1, +0x38655a87)); // cmovnz r16, qword ptr [r17+r18*2+0x38655a87] IID18668 - __ cmovq(Assembler::Condition::notZero, r17, Address(r18, r19, (Address::ScaleFactor)0, -0x30875a77)); // cmovnz r17, qword ptr [r18+r19*1-0x30875a77] IID18669 - __ cmovq(Assembler::Condition::notZero, r18, Address(r19, -0x5fabe1b5)); // cmovnz r18, qword ptr [r19-0x5fabe1b5] IID18670 - __ cmovq(Assembler::Condition::notZero, r19, Address(r20, +0x2dd1859d)); // cmovnz r19, qword ptr [r20+0x2dd1859d] IID18671 - __ cmovq(Assembler::Condition::notZero, r20, Address(r21, +0x2d8625ce)); // cmovnz r20, qword ptr [r21+0x2d8625ce] IID18672 - __ cmovq(Assembler::Condition::notZero, r21, Address(r22, r23, (Address::ScaleFactor)0, -0x3cd3807e)); // cmovnz r21, qword ptr [r22+r23*1-0x3cd3807e] IID18673 - __ cmovq(Assembler::Condition::notZero, r22, Address(r23, +0x6834af6e)); // cmovnz r22, qword ptr [r23+0x6834af6e] IID18674 - __ cmovq(Assembler::Condition::notZero, r23, Address(r24, -0x38e2b1dd)); // cmovnz r23, qword ptr [r24-0x38e2b1dd] IID18675 - __ cmovq(Assembler::Condition::notZero, r24, Address(r25, r26, (Address::ScaleFactor)1, +0x20ddde4)); // cmovnz r24, qword ptr [r25+r26*2+0x20ddde4] IID18676 - __ cmovq(Assembler::Condition::notZero, r25, Address(r26, r27, (Address::ScaleFactor)1, -0x7782ded3)); // cmovnz r25, qword ptr [r26+r27*2-0x7782ded3] IID18677 - __ cmovq(Assembler::Condition::notZero, r26, Address(r27, r28, (Address::ScaleFactor)0, +0x490405b7)); // cmovnz r26, qword ptr [r27+r28*1+0x490405b7] IID18678 - __ cmovq(Assembler::Condition::notZero, r27, Address(r28, -0x5fe4fc03)); // cmovnz r27, qword ptr [r28-0x5fe4fc03] IID18679 - __ cmovq(Assembler::Condition::notZero, r28, Address(r29, r30, (Address::ScaleFactor)0, -0x44871fc4)); // cmovnz r28, qword ptr [r29+r30*1-0x44871fc4] IID18680 - __ cmovq(Assembler::Condition::notZero, r29, Address(r30, r31, (Address::ScaleFactor)3, +0xf673b1b)); // cmovnz r29, qword ptr [r30+r31*8+0xf673b1b] IID18681 - __ cmovq(Assembler::Condition::notZero, r30, Address(r31, rcx, (Address::ScaleFactor)2, -0x1f776f10)); // cmovnz r30, qword ptr [r31+rcx*4-0x1f776f10] IID18682 - __ cmovq(Assembler::Condition::notZero, r31, Address(rcx, +0x5726b225)); // cmovnz r31, qword ptr [rcx+0x5726b225] IID18683 - __ cmovq(Assembler::Condition::belowEqual, rcx, Address(rdx, rbx, (Address::ScaleFactor)2, -0xe084920)); // cmovbe rcx, qword ptr [rdx+rbx*4-0xe084920] IID18684 - __ cmovq(Assembler::Condition::belowEqual, rdx, Address(rbx, r8, (Address::ScaleFactor)3, -0x1d00fe27)); // cmovbe rdx, qword ptr [rbx+r8*8-0x1d00fe27] IID18685 - __ cmovq(Assembler::Condition::belowEqual, rbx, Address(r8, r9, (Address::ScaleFactor)3, +0x61ea2f81)); // cmovbe rbx, qword ptr [r8+r9*8+0x61ea2f81] IID18686 - __ cmovq(Assembler::Condition::belowEqual, r8, Address(r9, +0x2660a831)); // cmovbe r8, qword ptr [r9+0x2660a831] IID18687 - __ cmovq(Assembler::Condition::belowEqual, r9, Address(r10, r11, (Address::ScaleFactor)2, +0x619a081b)); // cmovbe r9, qword ptr [r10+r11*4+0x619a081b] IID18688 - __ cmovq(Assembler::Condition::belowEqual, r10, Address(r11, r12, (Address::ScaleFactor)1, +0x715ab4f0)); // cmovbe r10, qword ptr [r11+r12*2+0x715ab4f0] IID18689 - __ cmovq(Assembler::Condition::belowEqual, r11, Address(r12, r13, (Address::ScaleFactor)0, +0x665f4026)); // cmovbe r11, qword ptr [r12+r13*1+0x665f4026] IID18690 - __ cmovq(Assembler::Condition::belowEqual, r12, Address(r13, +0x34f95c8e)); // cmovbe r12, qword ptr [r13+0x34f95c8e] IID18691 - __ cmovq(Assembler::Condition::belowEqual, r13, Address(r14, r15, (Address::ScaleFactor)1, +0x69513753)); // cmovbe r13, qword ptr [r14+r15*2+0x69513753] IID18692 - __ cmovq(Assembler::Condition::belowEqual, r14, Address(r15, r16, (Address::ScaleFactor)3, +0xd132a62)); // cmovbe r14, qword ptr [r15+r16*8+0xd132a62] IID18693 - __ cmovq(Assembler::Condition::belowEqual, r15, Address(r16, r17, (Address::ScaleFactor)0, -0x40e3741f)); // cmovbe r15, qword ptr [r16+r17*1-0x40e3741f] IID18694 - __ cmovq(Assembler::Condition::belowEqual, r16, Address(r17, +0x4eea700f)); // cmovbe r16, qword ptr [r17+0x4eea700f] IID18695 - __ cmovq(Assembler::Condition::belowEqual, r17, Address(r18, r19, (Address::ScaleFactor)2, +0x52a6089a)); // cmovbe r17, qword ptr [r18+r19*4+0x52a6089a] IID18696 - __ cmovq(Assembler::Condition::belowEqual, r18, Address(r19, -0x4c0bedc4)); // cmovbe r18, qword ptr [r19-0x4c0bedc4] IID18697 - __ cmovq(Assembler::Condition::belowEqual, r19, Address(r20, +0x55967669)); // cmovbe r19, qword ptr [r20+0x55967669] IID18698 - __ cmovq(Assembler::Condition::belowEqual, r20, Address(r21, r22, (Address::ScaleFactor)3, +0x1f9502c5)); // cmovbe r20, qword ptr [r21+r22*8+0x1f9502c5] IID18699 - __ cmovq(Assembler::Condition::belowEqual, r21, Address(r22, r23, (Address::ScaleFactor)1, +0x648f35e7)); // cmovbe r21, qword ptr [r22+r23*2+0x648f35e7] IID18700 - __ cmovq(Assembler::Condition::belowEqual, r22, Address(r23, r24, (Address::ScaleFactor)1, +0xedca411)); // cmovbe r22, qword ptr [r23+r24*2+0xedca411] IID18701 - __ cmovq(Assembler::Condition::belowEqual, r23, Address(r24, r25, (Address::ScaleFactor)3, +0x4a30f732)); // cmovbe r23, qword ptr [r24+r25*8+0x4a30f732] IID18702 - __ cmovq(Assembler::Condition::belowEqual, r24, Address(r25, +0x18dc4bfc)); // cmovbe r24, qword ptr [r25+0x18dc4bfc] IID18703 - __ cmovq(Assembler::Condition::belowEqual, r25, Address(r26, r27, (Address::ScaleFactor)0, +0x63e5048e)); // cmovbe r25, qword ptr [r26+r27*1+0x63e5048e] IID18704 - __ cmovq(Assembler::Condition::belowEqual, r26, Address(r27, r28, (Address::ScaleFactor)2, -0x6c11997a)); // cmovbe r26, qword ptr [r27+r28*4-0x6c11997a] IID18705 - __ cmovq(Assembler::Condition::belowEqual, r27, Address(r28, r29, (Address::ScaleFactor)2, +0x5369de96)); // cmovbe r27, qword ptr [r28+r29*4+0x5369de96] IID18706 - __ cmovq(Assembler::Condition::belowEqual, r28, Address(r29, r30, (Address::ScaleFactor)1, +0x35028ea6)); // cmovbe r28, qword ptr [r29+r30*2+0x35028ea6] IID18707 - __ cmovq(Assembler::Condition::belowEqual, r29, Address(r30, r31, (Address::ScaleFactor)3, -0x121060e8)); // cmovbe r29, qword ptr [r30+r31*8-0x121060e8] IID18708 - __ cmovq(Assembler::Condition::belowEqual, r30, Address(r31, rcx, (Address::ScaleFactor)3, +0x3b3bd11b)); // cmovbe r30, qword ptr [r31+rcx*8+0x3b3bd11b] IID18709 - __ cmovq(Assembler::Condition::belowEqual, r31, Address(rcx, rdx, (Address::ScaleFactor)2, -0x29611e1c)); // cmovbe r31, qword ptr [rcx+rdx*4-0x29611e1c] IID18710 - __ cmovq(Assembler::Condition::above, rcx, Address(rdx, rbx, (Address::ScaleFactor)0, -0x2f6af81d)); // cmova rcx, qword ptr [rdx+rbx*1-0x2f6af81d] IID18711 - __ cmovq(Assembler::Condition::above, rdx, Address(rbx, r8, (Address::ScaleFactor)3, +0x128115eb)); // cmova rdx, qword ptr [rbx+r8*8+0x128115eb] IID18712 - __ cmovq(Assembler::Condition::above, rbx, Address(r8, -0x6b7123c8)); // cmova rbx, qword ptr [r8-0x6b7123c8] IID18713 - __ cmovq(Assembler::Condition::above, r8, Address(r9, r10, (Address::ScaleFactor)2, -0x7dc2b42b)); // cmova r8, qword ptr [r9+r10*4-0x7dc2b42b] IID18714 - __ cmovq(Assembler::Condition::above, r9, Address(r10, r11, (Address::ScaleFactor)1, +0x17d2e44d)); // cmova r9, qword ptr [r10+r11*2+0x17d2e44d] IID18715 - __ cmovq(Assembler::Condition::above, r10, Address(r11, r12, (Address::ScaleFactor)1, -0x20d38d3)); // cmova r10, qword ptr [r11+r12*2-0x20d38d3] IID18716 - __ cmovq(Assembler::Condition::above, r11, Address(r12, r13, (Address::ScaleFactor)3, +0x6ba6d530)); // cmova r11, qword ptr [r12+r13*8+0x6ba6d530] IID18717 - __ cmovq(Assembler::Condition::above, r12, Address(r13, -0x23c9acf2)); // cmova r12, qword ptr [r13-0x23c9acf2] IID18718 - __ cmovq(Assembler::Condition::above, r13, Address(r14, r15, (Address::ScaleFactor)1, +0x527a25aa)); // cmova r13, qword ptr [r14+r15*2+0x527a25aa] IID18719 - __ cmovq(Assembler::Condition::above, r14, Address(r15, -0x87a43db)); // cmova r14, qword ptr [r15-0x87a43db] IID18720 - __ cmovq(Assembler::Condition::above, r15, Address(r16, r17, (Address::ScaleFactor)3, -0x76aefe22)); // cmova r15, qword ptr [r16+r17*8-0x76aefe22] IID18721 - __ cmovq(Assembler::Condition::above, r16, Address(r17, r18, (Address::ScaleFactor)1, +0xdd1d5d0)); // cmova r16, qword ptr [r17+r18*2+0xdd1d5d0] IID18722 - __ cmovq(Assembler::Condition::above, r17, Address(r18, r19, (Address::ScaleFactor)2, +0x3c5ad51c)); // cmova r17, qword ptr [r18+r19*4+0x3c5ad51c] IID18723 - __ cmovq(Assembler::Condition::above, r18, Address(r19, -0x58f1be9e)); // cmova r18, qword ptr [r19-0x58f1be9e] IID18724 - __ cmovq(Assembler::Condition::above, r19, Address(r20, r21, (Address::ScaleFactor)0, +0x48aef290)); // cmova r19, qword ptr [r20+r21*1+0x48aef290] IID18725 - __ cmovq(Assembler::Condition::above, r20, Address(r21, r22, (Address::ScaleFactor)0, -0x29e5ebb7)); // cmova r20, qword ptr [r21+r22*1-0x29e5ebb7] IID18726 - __ cmovq(Assembler::Condition::above, r21, Address(r22, r23, (Address::ScaleFactor)3, -0xde1eede)); // cmova r21, qword ptr [r22+r23*8-0xde1eede] IID18727 - __ cmovq(Assembler::Condition::above, r22, Address(r23, r24, (Address::ScaleFactor)0, +0x299122a3)); // cmova r22, qword ptr [r23+r24*1+0x299122a3] IID18728 - __ cmovq(Assembler::Condition::above, r23, Address(r24, r25, (Address::ScaleFactor)1, -0x110ee230)); // cmova r23, qword ptr [r24+r25*2-0x110ee230] IID18729 - __ cmovq(Assembler::Condition::above, r24, Address(r25, +0x4097edfd)); // cmova r24, qword ptr [r25+0x4097edfd] IID18730 - __ cmovq(Assembler::Condition::above, r25, Address(r26, r27, (Address::ScaleFactor)2, -0x7f48ffb5)); // cmova r25, qword ptr [r26+r27*4-0x7f48ffb5] IID18731 - __ cmovq(Assembler::Condition::above, r26, Address(r27, r28, (Address::ScaleFactor)1, -0x2ff6892b)); // cmova r26, qword ptr [r27+r28*2-0x2ff6892b] IID18732 - __ cmovq(Assembler::Condition::above, r27, Address(r28, -0x6cf845f5)); // cmova r27, qword ptr [r28-0x6cf845f5] IID18733 - __ cmovq(Assembler::Condition::above, r28, Address(r29, r30, (Address::ScaleFactor)2, -0x723001a4)); // cmova r28, qword ptr [r29+r30*4-0x723001a4] IID18734 - __ cmovq(Assembler::Condition::above, r29, Address(r30, r31, (Address::ScaleFactor)0, +0xadf3a83)); // cmova r29, qword ptr [r30+r31*1+0xadf3a83] IID18735 - __ cmovq(Assembler::Condition::above, r30, Address(r31, rcx, (Address::ScaleFactor)3, +0x181aa928)); // cmova r30, qword ptr [r31+rcx*8+0x181aa928] IID18736 - __ cmovq(Assembler::Condition::above, r31, Address(rcx, rdx, (Address::ScaleFactor)3, +0x1084e28f)); // cmova r31, qword ptr [rcx+rdx*8+0x1084e28f] IID18737 - __ cmovq(Assembler::Condition::negative, rcx, Address(rdx, rbx, (Address::ScaleFactor)1, +0x3a3dc1ea)); // cmovs rcx, qword ptr [rdx+rbx*2+0x3a3dc1ea] IID18738 - __ cmovq(Assembler::Condition::negative, rdx, Address(rbx, -0x29bcc5fb)); // cmovs rdx, qword ptr [rbx-0x29bcc5fb] IID18739 - __ cmovq(Assembler::Condition::negative, rbx, Address(r8, -0x7f38b0f4)); // cmovs rbx, qword ptr [r8-0x7f38b0f4] IID18740 - __ cmovq(Assembler::Condition::negative, r8, Address(r9, r10, (Address::ScaleFactor)1, -0x754d38e9)); // cmovs r8, qword ptr [r9+r10*2-0x754d38e9] IID18741 - __ cmovq(Assembler::Condition::negative, r9, Address(r10, r11, (Address::ScaleFactor)3, -0x2f67e2e3)); // cmovs r9, qword ptr [r10+r11*8-0x2f67e2e3] IID18742 - __ cmovq(Assembler::Condition::negative, r10, Address(r11, r12, (Address::ScaleFactor)3, +0x31ba4c78)); // cmovs r10, qword ptr [r11+r12*8+0x31ba4c78] IID18743 - __ cmovq(Assembler::Condition::negative, r11, Address(r12, r13, (Address::ScaleFactor)0, -0x18b47358)); // cmovs r11, qword ptr [r12+r13*1-0x18b47358] IID18744 - __ cmovq(Assembler::Condition::negative, r12, Address(r13, r14, (Address::ScaleFactor)1, -0x2ac49238)); // cmovs r12, qword ptr [r13+r14*2-0x2ac49238] IID18745 - __ cmovq(Assembler::Condition::negative, r13, Address(r14, r15, (Address::ScaleFactor)1, -0x2794873b)); // cmovs r13, qword ptr [r14+r15*2-0x2794873b] IID18746 - __ cmovq(Assembler::Condition::negative, r14, Address(r15, r16, (Address::ScaleFactor)0, +0x3d73db31)); // cmovs r14, qword ptr [r15+r16*1+0x3d73db31] IID18747 - __ cmovq(Assembler::Condition::negative, r15, Address(r16, r17, (Address::ScaleFactor)1, -0x1f1821d0)); // cmovs r15, qword ptr [r16+r17*2-0x1f1821d0] IID18748 - __ cmovq(Assembler::Condition::negative, r16, Address(r17, +0x6d860152)); // cmovs r16, qword ptr [r17+0x6d860152] IID18749 - __ cmovq(Assembler::Condition::negative, r17, Address(r18, -0x39caaf44)); // cmovs r17, qword ptr [r18-0x39caaf44] IID18750 - __ cmovq(Assembler::Condition::negative, r18, Address(r19, r20, (Address::ScaleFactor)3, -0x65327763)); // cmovs r18, qword ptr [r19+r20*8-0x65327763] IID18751 - __ cmovq(Assembler::Condition::negative, r19, Address(r20, r21, (Address::ScaleFactor)0, -0x4f50de46)); // cmovs r19, qword ptr [r20+r21*1-0x4f50de46] IID18752 - __ cmovq(Assembler::Condition::negative, r20, Address(r21, r22, (Address::ScaleFactor)0, +0x26d06a83)); // cmovs r20, qword ptr [r21+r22*1+0x26d06a83] IID18753 - __ cmovq(Assembler::Condition::negative, r21, Address(r22, r23, (Address::ScaleFactor)2, +0x5764e075)); // cmovs r21, qword ptr [r22+r23*4+0x5764e075] IID18754 - __ cmovq(Assembler::Condition::negative, r22, Address(r23, r24, (Address::ScaleFactor)3, +0x68ff2a7e)); // cmovs r22, qword ptr [r23+r24*8+0x68ff2a7e] IID18755 - __ cmovq(Assembler::Condition::negative, r23, Address(r24, -0xe1ff82b)); // cmovs r23, qword ptr [r24-0xe1ff82b] IID18756 - __ cmovq(Assembler::Condition::negative, r24, Address(r25, r26, (Address::ScaleFactor)1, +0x33bf6f81)); // cmovs r24, qword ptr [r25+r26*2+0x33bf6f81] IID18757 - __ cmovq(Assembler::Condition::negative, r25, Address(r26, r27, (Address::ScaleFactor)1, +0x341af6ac)); // cmovs r25, qword ptr [r26+r27*2+0x341af6ac] IID18758 - __ cmovq(Assembler::Condition::negative, r26, Address(r27, r28, (Address::ScaleFactor)3, -0x1478e836)); // cmovs r26, qword ptr [r27+r28*8-0x1478e836] IID18759 - __ cmovq(Assembler::Condition::negative, r27, Address(r28, r29, (Address::ScaleFactor)0, -0x50d97ba9)); // cmovs r27, qword ptr [r28+r29*1-0x50d97ba9] IID18760 - __ cmovq(Assembler::Condition::negative, r28, Address(r29, r30, (Address::ScaleFactor)0, +0xc3dde7d)); // cmovs r28, qword ptr [r29+r30*1+0xc3dde7d] IID18761 - __ cmovq(Assembler::Condition::negative, r29, Address(r30, -0x21088f26)); // cmovs r29, qword ptr [r30-0x21088f26] IID18762 - __ cmovq(Assembler::Condition::negative, r30, Address(r31, rcx, (Address::ScaleFactor)3, +0x556706b2)); // cmovs r30, qword ptr [r31+rcx*8+0x556706b2] IID18763 - __ cmovq(Assembler::Condition::negative, r31, Address(rcx, rdx, (Address::ScaleFactor)3, -0x14d2e38f)); // cmovs r31, qword ptr [rcx+rdx*8-0x14d2e38f] IID18764 - __ cmovq(Assembler::Condition::positive, rcx, Address(rdx, rbx, (Address::ScaleFactor)2, +0x2385f0d8)); // cmovns rcx, qword ptr [rdx+rbx*4+0x2385f0d8] IID18765 - __ cmovq(Assembler::Condition::positive, rdx, Address(rbx, r8, (Address::ScaleFactor)2, +0x143cabce)); // cmovns rdx, qword ptr [rbx+r8*4+0x143cabce] IID18766 - __ cmovq(Assembler::Condition::positive, rbx, Address(r8, r9, (Address::ScaleFactor)2, +0x67dcc80)); // cmovns rbx, qword ptr [r8+r9*4+0x67dcc80] IID18767 - __ cmovq(Assembler::Condition::positive, r8, Address(r9, -0x48d15e5b)); // cmovns r8, qword ptr [r9-0x48d15e5b] IID18768 - __ cmovq(Assembler::Condition::positive, r9, Address(r10, +0xb6db1d4)); // cmovns r9, qword ptr [r10+0xb6db1d4] IID18769 - __ cmovq(Assembler::Condition::positive, r10, Address(r11, r12, (Address::ScaleFactor)3, -0x3e1e1937)); // cmovns r10, qword ptr [r11+r12*8-0x3e1e1937] IID18770 - __ cmovq(Assembler::Condition::positive, r11, Address(r12, r13, (Address::ScaleFactor)3, -0x1521fd05)); // cmovns r11, qword ptr [r12+r13*8-0x1521fd05] IID18771 - __ cmovq(Assembler::Condition::positive, r12, Address(r13, r14, (Address::ScaleFactor)1, +0x71777026)); // cmovns r12, qword ptr [r13+r14*2+0x71777026] IID18772 - __ cmovq(Assembler::Condition::positive, r13, Address(r14, r15, (Address::ScaleFactor)1, -0x2a778183)); // cmovns r13, qword ptr [r14+r15*2-0x2a778183] IID18773 - __ cmovq(Assembler::Condition::positive, r14, Address(r15, r16, (Address::ScaleFactor)3, -0x69c81f14)); // cmovns r14, qword ptr [r15+r16*8-0x69c81f14] IID18774 - __ cmovq(Assembler::Condition::positive, r15, Address(r16, r17, (Address::ScaleFactor)2, +0x86f9907)); // cmovns r15, qword ptr [r16+r17*4+0x86f9907] IID18775 - __ cmovq(Assembler::Condition::positive, r16, Address(r17, r18, (Address::ScaleFactor)2, +0x15354955)); // cmovns r16, qword ptr [r17+r18*4+0x15354955] IID18776 - __ cmovq(Assembler::Condition::positive, r17, Address(r18, r19, (Address::ScaleFactor)1, +0x642ab0a5)); // cmovns r17, qword ptr [r18+r19*2+0x642ab0a5] IID18777 - __ cmovq(Assembler::Condition::positive, r18, Address(r19, r20, (Address::ScaleFactor)3, -0x359982d7)); // cmovns r18, qword ptr [r19+r20*8-0x359982d7] IID18778 - __ cmovq(Assembler::Condition::positive, r19, Address(r20, r21, (Address::ScaleFactor)3, +0x615f8d64)); // cmovns r19, qword ptr [r20+r21*8+0x615f8d64] IID18779 - __ cmovq(Assembler::Condition::positive, r20, Address(r21, r22, (Address::ScaleFactor)3, +0x17b85c89)); // cmovns r20, qword ptr [r21+r22*8+0x17b85c89] IID18780 - __ cmovq(Assembler::Condition::positive, r21, Address(r22, r23, (Address::ScaleFactor)2, -0xeccef66)); // cmovns r21, qword ptr [r22+r23*4-0xeccef66] IID18781 - __ cmovq(Assembler::Condition::positive, r22, Address(r23, r24, (Address::ScaleFactor)3, +0x10bb4897)); // cmovns r22, qword ptr [r23+r24*8+0x10bb4897] IID18782 - __ cmovq(Assembler::Condition::positive, r23, Address(r24, +0x7bd886c5)); // cmovns r23, qword ptr [r24+0x7bd886c5] IID18783 - __ cmovq(Assembler::Condition::positive, r24, Address(r25, r26, (Address::ScaleFactor)0, -0x39ae186e)); // cmovns r24, qword ptr [r25+r26*1-0x39ae186e] IID18784 - __ cmovq(Assembler::Condition::positive, r25, Address(r26, r27, (Address::ScaleFactor)2, +0x3cd6086b)); // cmovns r25, qword ptr [r26+r27*4+0x3cd6086b] IID18785 - __ cmovq(Assembler::Condition::positive, r26, Address(r27, r28, (Address::ScaleFactor)1, +0x3dfa1939)); // cmovns r26, qword ptr [r27+r28*2+0x3dfa1939] IID18786 - __ cmovq(Assembler::Condition::positive, r27, Address(r28, r29, (Address::ScaleFactor)3, -0x622b5ff1)); // cmovns r27, qword ptr [r28+r29*8-0x622b5ff1] IID18787 - __ cmovq(Assembler::Condition::positive, r28, Address(r29, r30, (Address::ScaleFactor)0, +0x2fdaa1e)); // cmovns r28, qword ptr [r29+r30*1+0x2fdaa1e] IID18788 - __ cmovq(Assembler::Condition::positive, r29, Address(r30, r31, (Address::ScaleFactor)0, +0x35841dfc)); // cmovns r29, qword ptr [r30+r31*1+0x35841dfc] IID18789 - __ cmovq(Assembler::Condition::positive, r30, Address(r31, rcx, (Address::ScaleFactor)1, +0x6ebd2c9e)); // cmovns r30, qword ptr [r31+rcx*2+0x6ebd2c9e] IID18790 - __ cmovq(Assembler::Condition::positive, r31, Address(rcx, rdx, (Address::ScaleFactor)3, +0x75caf538)); // cmovns r31, qword ptr [rcx+rdx*8+0x75caf538] IID18791 - __ cmovq(Assembler::Condition::parity, rcx, Address(rdx, +0x2ed1f5a1)); // cmovp rcx, qword ptr [rdx+0x2ed1f5a1] IID18792 - __ cmovq(Assembler::Condition::parity, rdx, Address(rbx, r8, (Address::ScaleFactor)2, -0xfc94414)); // cmovp rdx, qword ptr [rbx+r8*4-0xfc94414] IID18793 - __ cmovq(Assembler::Condition::parity, rbx, Address(r8, r9, (Address::ScaleFactor)1, -0x5280ff)); // cmovp rbx, qword ptr [r8+r9*2-0x5280ff] IID18794 - __ cmovq(Assembler::Condition::parity, r8, Address(r9, r10, (Address::ScaleFactor)2, -0x4c30a969)); // cmovp r8, qword ptr [r9+r10*4-0x4c30a969] IID18795 - __ cmovq(Assembler::Condition::parity, r9, Address(r10, r11, (Address::ScaleFactor)3, +0x8f0f3ce)); // cmovp r9, qword ptr [r10+r11*8+0x8f0f3ce] IID18796 - __ cmovq(Assembler::Condition::parity, r10, Address(r11, +0x3df6e051)); // cmovp r10, qword ptr [r11+0x3df6e051] IID18797 - __ cmovq(Assembler::Condition::parity, r11, Address(r12, r13, (Address::ScaleFactor)2, -0x3ed3b69b)); // cmovp r11, qword ptr [r12+r13*4-0x3ed3b69b] IID18798 - __ cmovq(Assembler::Condition::parity, r12, Address(r13, -0x4b0da80e)); // cmovp r12, qword ptr [r13-0x4b0da80e] IID18799 - __ cmovq(Assembler::Condition::parity, r13, Address(r14, r15, (Address::ScaleFactor)2, +0x18174ff)); // cmovp r13, qword ptr [r14+r15*4+0x18174ff] IID18800 - __ cmovq(Assembler::Condition::parity, r14, Address(r15, r16, (Address::ScaleFactor)2, +0x4dbfa432)); // cmovp r14, qword ptr [r15+r16*4+0x4dbfa432] IID18801 - __ cmovq(Assembler::Condition::parity, r15, Address(r16, -0x22bf4268)); // cmovp r15, qword ptr [r16-0x22bf4268] IID18802 - __ cmovq(Assembler::Condition::parity, r16, Address(r17, r18, (Address::ScaleFactor)3, -0x30e7bfa7)); // cmovp r16, qword ptr [r17+r18*8-0x30e7bfa7] IID18803 - __ cmovq(Assembler::Condition::parity, r17, Address(r18, r19, (Address::ScaleFactor)3, +0x1d3b9f25)); // cmovp r17, qword ptr [r18+r19*8+0x1d3b9f25] IID18804 - __ cmovq(Assembler::Condition::parity, r18, Address(r19, r20, (Address::ScaleFactor)0, -0x1114a235)); // cmovp r18, qword ptr [r19+r20*1-0x1114a235] IID18805 - __ cmovq(Assembler::Condition::parity, r19, Address(r20, r21, (Address::ScaleFactor)3, -0x22e75619)); // cmovp r19, qword ptr [r20+r21*8-0x22e75619] IID18806 - __ cmovq(Assembler::Condition::parity, r20, Address(r21, r22, (Address::ScaleFactor)1, +0x1d4c1d46)); // cmovp r20, qword ptr [r21+r22*2+0x1d4c1d46] IID18807 - __ cmovq(Assembler::Condition::parity, r21, Address(r22, r23, (Address::ScaleFactor)3, -0x624bdbaf)); // cmovp r21, qword ptr [r22+r23*8-0x624bdbaf] IID18808 - __ cmovq(Assembler::Condition::parity, r22, Address(r23, r24, (Address::ScaleFactor)1, -0x30d77e32)); // cmovp r22, qword ptr [r23+r24*2-0x30d77e32] IID18809 - __ cmovq(Assembler::Condition::parity, r23, Address(r24, r25, (Address::ScaleFactor)1, -0x1aea9a71)); // cmovp r23, qword ptr [r24+r25*2-0x1aea9a71] IID18810 - __ cmovq(Assembler::Condition::parity, r24, Address(r25, r26, (Address::ScaleFactor)1, +0x697c16d3)); // cmovp r24, qword ptr [r25+r26*2+0x697c16d3] IID18811 - __ cmovq(Assembler::Condition::parity, r25, Address(r26, r27, (Address::ScaleFactor)2, -0x58f897bc)); // cmovp r25, qword ptr [r26+r27*4-0x58f897bc] IID18812 - __ cmovq(Assembler::Condition::parity, r26, Address(r27, r28, (Address::ScaleFactor)2, +0x67f25d)); // cmovp r26, qword ptr [r27+r28*4+0x67f25d] IID18813 - __ cmovq(Assembler::Condition::parity, r27, Address(r28, r29, (Address::ScaleFactor)2, -0x885638f)); // cmovp r27, qword ptr [r28+r29*4-0x885638f] IID18814 - __ cmovq(Assembler::Condition::parity, r28, Address(r29, +0x5608a2c4)); // cmovp r28, qword ptr [r29+0x5608a2c4] IID18815 - __ cmovq(Assembler::Condition::parity, r29, Address(r30, r31, (Address::ScaleFactor)1, +0x24804098)); // cmovp r29, qword ptr [r30+r31*2+0x24804098] IID18816 - __ cmovq(Assembler::Condition::parity, r30, Address(r31, rcx, (Address::ScaleFactor)1, +0x60d65462)); // cmovp r30, qword ptr [r31+rcx*2+0x60d65462] IID18817 - __ cmovq(Assembler::Condition::parity, r31, Address(rcx, rdx, (Address::ScaleFactor)3, +0x65e6b4a2)); // cmovp r31, qword ptr [rcx+rdx*8+0x65e6b4a2] IID18818 - __ cmovq(Assembler::Condition::noParity, rcx, Address(rdx, rbx, (Address::ScaleFactor)1, +0x31ed8076)); // cmovnp rcx, qword ptr [rdx+rbx*2+0x31ed8076] IID18819 - __ cmovq(Assembler::Condition::noParity, rdx, Address(rbx, -0xefb8d8d)); // cmovnp rdx, qword ptr [rbx-0xefb8d8d] IID18820 - __ cmovq(Assembler::Condition::noParity, rbx, Address(r8, +0x780e1b24)); // cmovnp rbx, qword ptr [r8+0x780e1b24] IID18821 - __ cmovq(Assembler::Condition::noParity, r8, Address(r9, r10, (Address::ScaleFactor)3, +0x7184a9ea)); // cmovnp r8, qword ptr [r9+r10*8+0x7184a9ea] IID18822 - __ cmovq(Assembler::Condition::noParity, r9, Address(r10, +0x78962655)); // cmovnp r9, qword ptr [r10+0x78962655] IID18823 - __ cmovq(Assembler::Condition::noParity, r10, Address(r11, r12, (Address::ScaleFactor)0, +0x79c8e2eb)); // cmovnp r10, qword ptr [r11+r12*1+0x79c8e2eb] IID18824 - __ cmovq(Assembler::Condition::noParity, r11, Address(r12, r13, (Address::ScaleFactor)0, +0x406d36f6)); // cmovnp r11, qword ptr [r12+r13*1+0x406d36f6] IID18825 - __ cmovq(Assembler::Condition::noParity, r12, Address(r13, r14, (Address::ScaleFactor)0, -0x52a31e3c)); // cmovnp r12, qword ptr [r13+r14*1-0x52a31e3c] IID18826 - __ cmovq(Assembler::Condition::noParity, r13, Address(r14, -0x31440ac5)); // cmovnp r13, qword ptr [r14-0x31440ac5] IID18827 - __ cmovq(Assembler::Condition::noParity, r14, Address(r15, r16, (Address::ScaleFactor)2, -0x5ad2ad1d)); // cmovnp r14, qword ptr [r15+r16*4-0x5ad2ad1d] IID18828 - __ cmovq(Assembler::Condition::noParity, r15, Address(r16, r17, (Address::ScaleFactor)1, +0x6aab600f)); // cmovnp r15, qword ptr [r16+r17*2+0x6aab600f] IID18829 - __ cmovq(Assembler::Condition::noParity, r16, Address(r17, r18, (Address::ScaleFactor)0, -0x359dbcf)); // cmovnp r16, qword ptr [r17+r18*1-0x359dbcf] IID18830 - __ cmovq(Assembler::Condition::noParity, r17, Address(r18, r19, (Address::ScaleFactor)0, +0x15a42144)); // cmovnp r17, qword ptr [r18+r19*1+0x15a42144] IID18831 - __ cmovq(Assembler::Condition::noParity, r18, Address(r19, +0x2be4c489)); // cmovnp r18, qword ptr [r19+0x2be4c489] IID18832 - __ cmovq(Assembler::Condition::noParity, r19, Address(r20, r21, (Address::ScaleFactor)2, -0x659b3959)); // cmovnp r19, qword ptr [r20+r21*4-0x659b3959] IID18833 - __ cmovq(Assembler::Condition::noParity, r20, Address(r21, -0x5d777dc2)); // cmovnp r20, qword ptr [r21-0x5d777dc2] IID18834 - __ cmovq(Assembler::Condition::noParity, r21, Address(r22, r23, (Address::ScaleFactor)3, +0x6137380d)); // cmovnp r21, qword ptr [r22+r23*8+0x6137380d] IID18835 - __ cmovq(Assembler::Condition::noParity, r22, Address(r23, r24, (Address::ScaleFactor)0, -0x48ca1079)); // cmovnp r22, qword ptr [r23+r24*1-0x48ca1079] IID18836 - __ cmovq(Assembler::Condition::noParity, r23, Address(r24, r25, (Address::ScaleFactor)2, +0x359d8db3)); // cmovnp r23, qword ptr [r24+r25*4+0x359d8db3] IID18837 - __ cmovq(Assembler::Condition::noParity, r24, Address(r25, r26, (Address::ScaleFactor)0, -0x73945e9c)); // cmovnp r24, qword ptr [r25+r26*1-0x73945e9c] IID18838 - __ cmovq(Assembler::Condition::noParity, r25, Address(r26, r27, (Address::ScaleFactor)2, -0x1cd0c7e4)); // cmovnp r25, qword ptr [r26+r27*4-0x1cd0c7e4] IID18839 - __ cmovq(Assembler::Condition::noParity, r26, Address(r27, r28, (Address::ScaleFactor)0, -0x5cce04c3)); // cmovnp r26, qword ptr [r27+r28*1-0x5cce04c3] IID18840 - __ cmovq(Assembler::Condition::noParity, r27, Address(r28, r29, (Address::ScaleFactor)3, +0x1ef48dea)); // cmovnp r27, qword ptr [r28+r29*8+0x1ef48dea] IID18841 - __ cmovq(Assembler::Condition::noParity, r28, Address(r29, r30, (Address::ScaleFactor)2, +0x31f43d7)); // cmovnp r28, qword ptr [r29+r30*4+0x31f43d7] IID18842 - __ cmovq(Assembler::Condition::noParity, r29, Address(r30, r31, (Address::ScaleFactor)1, -0x6f11f8ab)); // cmovnp r29, qword ptr [r30+r31*2-0x6f11f8ab] IID18843 - __ cmovq(Assembler::Condition::noParity, r30, Address(r31, rcx, (Address::ScaleFactor)2, +0x5c1ab942)); // cmovnp r30, qword ptr [r31+rcx*4+0x5c1ab942] IID18844 - __ cmovq(Assembler::Condition::noParity, r31, Address(rcx, rdx, (Address::ScaleFactor)1, +0x5b148d5d)); // cmovnp r31, qword ptr [rcx+rdx*2+0x5b148d5d] IID18845 - __ cmovq(Assembler::Condition::less, rcx, Address(rdx, rbx, (Address::ScaleFactor)2, +0x4a9cc5c5)); // cmovl rcx, qword ptr [rdx+rbx*4+0x4a9cc5c5] IID18846 - __ cmovq(Assembler::Condition::less, rdx, Address(rbx, r8, (Address::ScaleFactor)2, +0x41ecbef8)); // cmovl rdx, qword ptr [rbx+r8*4+0x41ecbef8] IID18847 - __ cmovq(Assembler::Condition::less, rbx, Address(r8, r9, (Address::ScaleFactor)3, +0x4312f84e)); // cmovl rbx, qword ptr [r8+r9*8+0x4312f84e] IID18848 - __ cmovq(Assembler::Condition::less, r8, Address(r9, r10, (Address::ScaleFactor)3, -0x60d80088)); // cmovl r8, qword ptr [r9+r10*8-0x60d80088] IID18849 - __ cmovq(Assembler::Condition::less, r9, Address(r10, r11, (Address::ScaleFactor)0, +0x19d56eb6)); // cmovl r9, qword ptr [r10+r11*1+0x19d56eb6] IID18850 - __ cmovq(Assembler::Condition::less, r10, Address(r11, r12, (Address::ScaleFactor)1, -0x5b3590ba)); // cmovl r10, qword ptr [r11+r12*2-0x5b3590ba] IID18851 - __ cmovq(Assembler::Condition::less, r11, Address(r12, r13, (Address::ScaleFactor)3, +0x6439fd5f)); // cmovl r11, qword ptr [r12+r13*8+0x6439fd5f] IID18852 - __ cmovq(Assembler::Condition::less, r12, Address(r13, r14, (Address::ScaleFactor)1, -0x102d5f49)); // cmovl r12, qword ptr [r13+r14*2-0x102d5f49] IID18853 - __ cmovq(Assembler::Condition::less, r13, Address(r14, +0x7d80112d)); // cmovl r13, qword ptr [r14+0x7d80112d] IID18854 - __ cmovq(Assembler::Condition::less, r14, Address(r15, r16, (Address::ScaleFactor)0, +0x614df186)); // cmovl r14, qword ptr [r15+r16*1+0x614df186] IID18855 - __ cmovq(Assembler::Condition::less, r15, Address(r16, r17, (Address::ScaleFactor)2, -0x2b6f8f03)); // cmovl r15, qword ptr [r16+r17*4-0x2b6f8f03] IID18856 - __ cmovq(Assembler::Condition::less, r16, Address(r17, r18, (Address::ScaleFactor)1, -0x336505fb)); // cmovl r16, qword ptr [r17+r18*2-0x336505fb] IID18857 - __ cmovq(Assembler::Condition::less, r17, Address(r18, -0x2fb750b3)); // cmovl r17, qword ptr [r18-0x2fb750b3] IID18858 - __ cmovq(Assembler::Condition::less, r18, Address(r19, r20, (Address::ScaleFactor)3, -0x4c6084da)); // cmovl r18, qword ptr [r19+r20*8-0x4c6084da] IID18859 - __ cmovq(Assembler::Condition::less, r19, Address(r20, +0x491c5167)); // cmovl r19, qword ptr [r20+0x491c5167] IID18860 - __ cmovq(Assembler::Condition::less, r20, Address(r21, +0x34f667ff)); // cmovl r20, qword ptr [r21+0x34f667ff] IID18861 - __ cmovq(Assembler::Condition::less, r21, Address(r22, r23, (Address::ScaleFactor)1, -0x40ddabd7)); // cmovl r21, qword ptr [r22+r23*2-0x40ddabd7] IID18862 - __ cmovq(Assembler::Condition::less, r22, Address(r23, r24, (Address::ScaleFactor)1, -0x30a50d68)); // cmovl r22, qword ptr [r23+r24*2-0x30a50d68] IID18863 - __ cmovq(Assembler::Condition::less, r23, Address(r24, +0x1baa764f)); // cmovl r23, qword ptr [r24+0x1baa764f] IID18864 - __ cmovq(Assembler::Condition::less, r24, Address(r25, -0x36fcd806)); // cmovl r24, qword ptr [r25-0x36fcd806] IID18865 - __ cmovq(Assembler::Condition::less, r25, Address(r26, r27, (Address::ScaleFactor)2, +0x329dec53)); // cmovl r25, qword ptr [r26+r27*4+0x329dec53] IID18866 - __ cmovq(Assembler::Condition::less, r26, Address(r27, r28, (Address::ScaleFactor)2, -0x7c36e08)); // cmovl r26, qword ptr [r27+r28*4-0x7c36e08] IID18867 - __ cmovq(Assembler::Condition::less, r27, Address(r28, -0x1109bd16)); // cmovl r27, qword ptr [r28-0x1109bd16] IID18868 - __ cmovq(Assembler::Condition::less, r28, Address(r29, r30, (Address::ScaleFactor)2, -0x5323a9d1)); // cmovl r28, qword ptr [r29+r30*4-0x5323a9d1] IID18869 - __ cmovq(Assembler::Condition::less, r29, Address(r30, -0x45732998)); // cmovl r29, qword ptr [r30-0x45732998] IID18870 - __ cmovq(Assembler::Condition::less, r30, Address(r31, rcx, (Address::ScaleFactor)2, +0x45279fc0)); // cmovl r30, qword ptr [r31+rcx*4+0x45279fc0] IID18871 - __ cmovq(Assembler::Condition::less, r31, Address(rcx, rdx, (Address::ScaleFactor)0, +0x490cf91f)); // cmovl r31, qword ptr [rcx+rdx*1+0x490cf91f] IID18872 - __ cmovq(Assembler::Condition::greaterEqual, rcx, Address(rdx, rbx, (Address::ScaleFactor)1, -0xdb428f9)); // cmovge rcx, qword ptr [rdx+rbx*2-0xdb428f9] IID18873 - __ cmovq(Assembler::Condition::greaterEqual, rdx, Address(rbx, r8, (Address::ScaleFactor)1, +0x18b2783)); // cmovge rdx, qword ptr [rbx+r8*2+0x18b2783] IID18874 - __ cmovq(Assembler::Condition::greaterEqual, rbx, Address(r8, r9, (Address::ScaleFactor)2, -0x32cd454f)); // cmovge rbx, qword ptr [r8+r9*4-0x32cd454f] IID18875 - __ cmovq(Assembler::Condition::greaterEqual, r8, Address(r9, r10, (Address::ScaleFactor)1, +0x5cca3764)); // cmovge r8, qword ptr [r9+r10*2+0x5cca3764] IID18876 - __ cmovq(Assembler::Condition::greaterEqual, r9, Address(r10, +0x1a7b2c69)); // cmovge r9, qword ptr [r10+0x1a7b2c69] IID18877 - __ cmovq(Assembler::Condition::greaterEqual, r10, Address(r11, +0xe90b15b)); // cmovge r10, qword ptr [r11+0xe90b15b] IID18878 - __ cmovq(Assembler::Condition::greaterEqual, r11, Address(r12, r13, (Address::ScaleFactor)0, -0x6292721d)); // cmovge r11, qword ptr [r12+r13*1-0x6292721d] IID18879 - __ cmovq(Assembler::Condition::greaterEqual, r12, Address(r13, r14, (Address::ScaleFactor)3, +0x2ae9bdb8)); // cmovge r12, qword ptr [r13+r14*8+0x2ae9bdb8] IID18880 - __ cmovq(Assembler::Condition::greaterEqual, r13, Address(r14, r15, (Address::ScaleFactor)3, -0x6724e009)); // cmovge r13, qword ptr [r14+r15*8-0x6724e009] IID18881 - __ cmovq(Assembler::Condition::greaterEqual, r14, Address(r15, r16, (Address::ScaleFactor)0, -0x6fae33ae)); // cmovge r14, qword ptr [r15+r16*1-0x6fae33ae] IID18882 - __ cmovq(Assembler::Condition::greaterEqual, r15, Address(r16, r17, (Address::ScaleFactor)1, -0x7e8213f)); // cmovge r15, qword ptr [r16+r17*2-0x7e8213f] IID18883 - __ cmovq(Assembler::Condition::greaterEqual, r16, Address(r17, r18, (Address::ScaleFactor)1, -0x349603d7)); // cmovge r16, qword ptr [r17+r18*2-0x349603d7] IID18884 - __ cmovq(Assembler::Condition::greaterEqual, r17, Address(r18, r19, (Address::ScaleFactor)1, +0x3b8cfe27)); // cmovge r17, qword ptr [r18+r19*2+0x3b8cfe27] IID18885 - __ cmovq(Assembler::Condition::greaterEqual, r18, Address(r19, r20, (Address::ScaleFactor)2, -0x68c5cb73)); // cmovge r18, qword ptr [r19+r20*4-0x68c5cb73] IID18886 - __ cmovq(Assembler::Condition::greaterEqual, r19, Address(r20, r21, (Address::ScaleFactor)2, +0x3d992010)); // cmovge r19, qword ptr [r20+r21*4+0x3d992010] IID18887 - __ cmovq(Assembler::Condition::greaterEqual, r20, Address(r21, r22, (Address::ScaleFactor)2, +0x29de4703)); // cmovge r20, qword ptr [r21+r22*4+0x29de4703] IID18888 - __ cmovq(Assembler::Condition::greaterEqual, r21, Address(r22, r23, (Address::ScaleFactor)1, +0x8aad553)); // cmovge r21, qword ptr [r22+r23*2+0x8aad553] IID18889 - __ cmovq(Assembler::Condition::greaterEqual, r22, Address(r23, r24, (Address::ScaleFactor)0, +0x63726370)); // cmovge r22, qword ptr [r23+r24*1+0x63726370] IID18890 - __ cmovq(Assembler::Condition::greaterEqual, r23, Address(r24, r25, (Address::ScaleFactor)1, -0x7202ba33)); // cmovge r23, qword ptr [r24+r25*2-0x7202ba33] IID18891 - __ cmovq(Assembler::Condition::greaterEqual, r24, Address(r25, r26, (Address::ScaleFactor)1, +0x6daec18e)); // cmovge r24, qword ptr [r25+r26*2+0x6daec18e] IID18892 - __ cmovq(Assembler::Condition::greaterEqual, r25, Address(r26, r27, (Address::ScaleFactor)1, +0x4f98f738)); // cmovge r25, qword ptr [r26+r27*2+0x4f98f738] IID18893 - __ cmovq(Assembler::Condition::greaterEqual, r26, Address(r27, r28, (Address::ScaleFactor)0, -0x81ff98a)); // cmovge r26, qword ptr [r27+r28*1-0x81ff98a] IID18894 - __ cmovq(Assembler::Condition::greaterEqual, r27, Address(r28, r29, (Address::ScaleFactor)2, -0x28a9d1d3)); // cmovge r27, qword ptr [r28+r29*4-0x28a9d1d3] IID18895 - __ cmovq(Assembler::Condition::greaterEqual, r28, Address(r29, r30, (Address::ScaleFactor)3, +0x17eebf2)); // cmovge r28, qword ptr [r29+r30*8+0x17eebf2] IID18896 - __ cmovq(Assembler::Condition::greaterEqual, r29, Address(r30, r31, (Address::ScaleFactor)2, +0x139baa61)); // cmovge r29, qword ptr [r30+r31*4+0x139baa61] IID18897 - __ cmovq(Assembler::Condition::greaterEqual, r30, Address(r31, rcx, (Address::ScaleFactor)1, -0x64e84448)); // cmovge r30, qword ptr [r31+rcx*2-0x64e84448] IID18898 - __ cmovq(Assembler::Condition::greaterEqual, r31, Address(rcx, +0x6f3a0043)); // cmovge r31, qword ptr [rcx+0x6f3a0043] IID18899 - __ cmovq(Assembler::Condition::lessEqual, rcx, Address(rdx, rbx, (Address::ScaleFactor)1, -0x5c381d12)); // cmovle rcx, qword ptr [rdx+rbx*2-0x5c381d12] IID18900 - __ cmovq(Assembler::Condition::lessEqual, rdx, Address(rbx, r8, (Address::ScaleFactor)0, -0x72df8ade)); // cmovle rdx, qword ptr [rbx+r8*1-0x72df8ade] IID18901 - __ cmovq(Assembler::Condition::lessEqual, rbx, Address(r8, +0x295ce63b)); // cmovle rbx, qword ptr [r8+0x295ce63b] IID18902 - __ cmovq(Assembler::Condition::lessEqual, r8, Address(r9, r10, (Address::ScaleFactor)0, +0x3bc8b2b)); // cmovle r8, qword ptr [r9+r10*1+0x3bc8b2b] IID18903 - __ cmovq(Assembler::Condition::lessEqual, r9, Address(r10, r11, (Address::ScaleFactor)1, -0x5030441e)); // cmovle r9, qword ptr [r10+r11*2-0x5030441e] IID18904 - __ cmovq(Assembler::Condition::lessEqual, r10, Address(r11, r12, (Address::ScaleFactor)0, +0xdcc2705)); // cmovle r10, qword ptr [r11+r12*1+0xdcc2705] IID18905 - __ cmovq(Assembler::Condition::lessEqual, r11, Address(r12, r13, (Address::ScaleFactor)0, +0x23a9af1d)); // cmovle r11, qword ptr [r12+r13*1+0x23a9af1d] IID18906 - __ cmovq(Assembler::Condition::lessEqual, r12, Address(r13, r14, (Address::ScaleFactor)3, -0x40b786f1)); // cmovle r12, qword ptr [r13+r14*8-0x40b786f1] IID18907 - __ cmovq(Assembler::Condition::lessEqual, r13, Address(r14, r15, (Address::ScaleFactor)2, -0x1fd48620)); // cmovle r13, qword ptr [r14+r15*4-0x1fd48620] IID18908 - __ cmovq(Assembler::Condition::lessEqual, r14, Address(r15, r16, (Address::ScaleFactor)3, +0x185691cc)); // cmovle r14, qword ptr [r15+r16*8+0x185691cc] IID18909 - __ cmovq(Assembler::Condition::lessEqual, r15, Address(r16, +0x16518dec)); // cmovle r15, qword ptr [r16+0x16518dec] IID18910 - __ cmovq(Assembler::Condition::lessEqual, r16, Address(r17, r18, (Address::ScaleFactor)3, +0x27d0f125)); // cmovle r16, qword ptr [r17+r18*8+0x27d0f125] IID18911 - __ cmovq(Assembler::Condition::lessEqual, r17, Address(r18, r19, (Address::ScaleFactor)2, -0x1292ff25)); // cmovle r17, qword ptr [r18+r19*4-0x1292ff25] IID18912 - __ cmovq(Assembler::Condition::lessEqual, r18, Address(r19, r20, (Address::ScaleFactor)0, +0x8584a4)); // cmovle r18, qword ptr [r19+r20*1+0x8584a4] IID18913 - __ cmovq(Assembler::Condition::lessEqual, r19, Address(r20, +0x69c6b0dc)); // cmovle r19, qword ptr [r20+0x69c6b0dc] IID18914 - __ cmovq(Assembler::Condition::lessEqual, r20, Address(r21, r22, (Address::ScaleFactor)2, -0x721acbcf)); // cmovle r20, qword ptr [r21+r22*4-0x721acbcf] IID18915 - __ cmovq(Assembler::Condition::lessEqual, r21, Address(r22, r23, (Address::ScaleFactor)2, -0x71e8efc0)); // cmovle r21, qword ptr [r22+r23*4-0x71e8efc0] IID18916 - __ cmovq(Assembler::Condition::lessEqual, r22, Address(r23, -0x7af3f244)); // cmovle r22, qword ptr [r23-0x7af3f244] IID18917 - __ cmovq(Assembler::Condition::lessEqual, r23, Address(r24, +0x333b9d74)); // cmovle r23, qword ptr [r24+0x333b9d74] IID18918 - __ cmovq(Assembler::Condition::lessEqual, r24, Address(r25, -0x7139ca46)); // cmovle r24, qword ptr [r25-0x7139ca46] IID18919 - __ cmovq(Assembler::Condition::lessEqual, r25, Address(r26, +0x38b1853b)); // cmovle r25, qword ptr [r26+0x38b1853b] IID18920 - __ cmovq(Assembler::Condition::lessEqual, r26, Address(r27, r28, (Address::ScaleFactor)0, +0x57b5c742)); // cmovle r26, qword ptr [r27+r28*1+0x57b5c742] IID18921 - __ cmovq(Assembler::Condition::lessEqual, r27, Address(r28, r29, (Address::ScaleFactor)3, +0x62c43a84)); // cmovle r27, qword ptr [r28+r29*8+0x62c43a84] IID18922 - __ cmovq(Assembler::Condition::lessEqual, r28, Address(r29, r30, (Address::ScaleFactor)2, -0x66f61e7c)); // cmovle r28, qword ptr [r29+r30*4-0x66f61e7c] IID18923 - __ cmovq(Assembler::Condition::lessEqual, r29, Address(r30, r31, (Address::ScaleFactor)2, +0x2bcb8e6a)); // cmovle r29, qword ptr [r30+r31*4+0x2bcb8e6a] IID18924 - __ cmovq(Assembler::Condition::lessEqual, r30, Address(r31, +0x7ad69de7)); // cmovle r30, qword ptr [r31+0x7ad69de7] IID18925 - __ cmovq(Assembler::Condition::lessEqual, r31, Address(rcx, -0x47e7a936)); // cmovle r31, qword ptr [rcx-0x47e7a936] IID18926 - __ cmovq(Assembler::Condition::greater, rcx, Address(rdx, rbx, (Address::ScaleFactor)2, +0x7e6ff70)); // cmovg rcx, qword ptr [rdx+rbx*4+0x7e6ff70] IID18927 - __ cmovq(Assembler::Condition::greater, rdx, Address(rbx, r8, (Address::ScaleFactor)1, +0x3db34c81)); // cmovg rdx, qword ptr [rbx+r8*2+0x3db34c81] IID18928 - __ cmovq(Assembler::Condition::greater, rbx, Address(r8, r9, (Address::ScaleFactor)1, -0x2ceb32a3)); // cmovg rbx, qword ptr [r8+r9*2-0x2ceb32a3] IID18929 - __ cmovq(Assembler::Condition::greater, r8, Address(r9, -0x5096dfbb)); // cmovg r8, qword ptr [r9-0x5096dfbb] IID18930 - __ cmovq(Assembler::Condition::greater, r9, Address(r10, +0x223109fa)); // cmovg r9, qword ptr [r10+0x223109fa] IID18931 - __ cmovq(Assembler::Condition::greater, r10, Address(r11, r12, (Address::ScaleFactor)3, -0x79e31197)); // cmovg r10, qword ptr [r11+r12*8-0x79e31197] IID18932 - __ cmovq(Assembler::Condition::greater, r11, Address(r12, r13, (Address::ScaleFactor)2, +0x4808469)); // cmovg r11, qword ptr [r12+r13*4+0x4808469] IID18933 - __ cmovq(Assembler::Condition::greater, r12, Address(r13, +0x25a22834)); // cmovg r12, qword ptr [r13+0x25a22834] IID18934 - __ cmovq(Assembler::Condition::greater, r13, Address(r14, r15, (Address::ScaleFactor)3, +0x7cea462d)); // cmovg r13, qword ptr [r14+r15*8+0x7cea462d] IID18935 - __ cmovq(Assembler::Condition::greater, r14, Address(r15, r16, (Address::ScaleFactor)2, +0x3e0f7ad5)); // cmovg r14, qword ptr [r15+r16*4+0x3e0f7ad5] IID18936 - __ cmovq(Assembler::Condition::greater, r15, Address(r16, -0x22ee73d3)); // cmovg r15, qword ptr [r16-0x22ee73d3] IID18937 - __ cmovq(Assembler::Condition::greater, r16, Address(r17, r18, (Address::ScaleFactor)3, +0x4293ab80)); // cmovg r16, qword ptr [r17+r18*8+0x4293ab80] IID18938 - __ cmovq(Assembler::Condition::greater, r17, Address(r18, r19, (Address::ScaleFactor)2, +0x2ddc9f3f)); // cmovg r17, qword ptr [r18+r19*4+0x2ddc9f3f] IID18939 - __ cmovq(Assembler::Condition::greater, r18, Address(r19, r20, (Address::ScaleFactor)3, -0x6d2542c8)); // cmovg r18, qword ptr [r19+r20*8-0x6d2542c8] IID18940 - __ cmovq(Assembler::Condition::greater, r19, Address(r20, r21, (Address::ScaleFactor)1, +0xe1087d4)); // cmovg r19, qword ptr [r20+r21*2+0xe1087d4] IID18941 - __ cmovq(Assembler::Condition::greater, r20, Address(r21, r22, (Address::ScaleFactor)2, -0x4166a92e)); // cmovg r20, qword ptr [r21+r22*4-0x4166a92e] IID18942 - __ cmovq(Assembler::Condition::greater, r21, Address(r22, r23, (Address::ScaleFactor)1, +0x75bf6a62)); // cmovg r21, qword ptr [r22+r23*2+0x75bf6a62] IID18943 - __ cmovq(Assembler::Condition::greater, r22, Address(r23, -0x6d11335d)); // cmovg r22, qword ptr [r23-0x6d11335d] IID18944 - __ cmovq(Assembler::Condition::greater, r23, Address(r24, r25, (Address::ScaleFactor)0, -0x3751e8c0)); // cmovg r23, qword ptr [r24+r25*1-0x3751e8c0] IID18945 - __ cmovq(Assembler::Condition::greater, r24, Address(r25, r26, (Address::ScaleFactor)0, +0x60ec36a9)); // cmovg r24, qword ptr [r25+r26*1+0x60ec36a9] IID18946 - __ cmovq(Assembler::Condition::greater, r25, Address(r26, r27, (Address::ScaleFactor)3, -0x14106edc)); // cmovg r25, qword ptr [r26+r27*8-0x14106edc] IID18947 - __ cmovq(Assembler::Condition::greater, r26, Address(r27, -0x522f46b8)); // cmovg r26, qword ptr [r27-0x522f46b8] IID18948 - __ cmovq(Assembler::Condition::greater, r27, Address(r28, r29, (Address::ScaleFactor)2, -0x21bf3c12)); // cmovg r27, qword ptr [r28+r29*4-0x21bf3c12] IID18949 - __ cmovq(Assembler::Condition::greater, r28, Address(r29, r30, (Address::ScaleFactor)3, +0x638aa25)); // cmovg r28, qword ptr [r29+r30*8+0x638aa25] IID18950 - __ cmovq(Assembler::Condition::greater, r29, Address(r30, +0x5b205de3)); // cmovg r29, qword ptr [r30+0x5b205de3] IID18951 - __ cmovq(Assembler::Condition::greater, r30, Address(r31, rcx, (Address::ScaleFactor)3, +0x4e4670a4)); // cmovg r30, qword ptr [r31+rcx*8+0x4e4670a4] IID18952 - __ cmovq(Assembler::Condition::greater, r31, Address(rcx, rdx, (Address::ScaleFactor)3, +0x413854c)); // cmovg r31, qword ptr [rcx+rdx*8+0x413854c] IID18953 - __ call(rcx); // call rcx IID18954 - __ call(rdx); // call rdx IID18955 - __ call(rbx); // call rbx IID18956 - __ call(r8); // call r8 IID18957 - __ call(r9); // call r9 IID18958 - __ call(r10); // call r10 IID18959 - __ call(r11); // call r11 IID18960 - __ call(r12); // call r12 IID18961 - __ call(r13); // call r13 IID18962 - __ call(r14); // call r14 IID18963 - __ call(r15); // call r15 IID18964 - __ call(r16); // call r16 IID18965 - __ call(r17); // call r17 IID18966 - __ call(r18); // call r18 IID18967 - __ call(r19); // call r19 IID18968 - __ call(r20); // call r20 IID18969 - __ call(r21); // call r21 IID18970 - __ call(r22); // call r22 IID18971 - __ call(r23); // call r23 IID18972 - __ call(r24); // call r24 IID18973 - __ call(r25); // call r25 IID18974 - __ call(r26); // call r26 IID18975 - __ call(r27); // call r27 IID18976 - __ call(r28); // call r28 IID18977 - __ call(r29); // call r29 IID18978 - __ call(r30); // call r30 IID18979 - __ call(r31); // call r31 IID18980 - __ divq(rcx); // div rcx IID18981 - __ divq(rdx); // div rdx IID18982 - __ divq(rbx); // div rbx IID18983 - __ divq(r8); // div r8 IID18984 - __ divq(r9); // div r9 IID18985 - __ divq(r10); // div r10 IID18986 - __ divq(r11); // div r11 IID18987 - __ divq(r12); // div r12 IID18988 - __ divq(r13); // div r13 IID18989 - __ divq(r14); // div r14 IID18990 - __ divq(r15); // div r15 IID18991 - __ divq(r16); // div r16 IID18992 - __ divq(r17); // div r17 IID18993 - __ divq(r18); // div r18 IID18994 - __ divq(r19); // div r19 IID18995 - __ divq(r20); // div r20 IID18996 - __ divq(r21); // div r21 IID18997 - __ divq(r22); // div r22 IID18998 - __ divq(r23); // div r23 IID18999 - __ divq(r24); // div r24 IID19000 - __ divq(r25); // div r25 IID19001 - __ divq(r26); // div r26 IID19002 - __ divq(r27); // div r27 IID19003 - __ divq(r28); // div r28 IID19004 - __ divq(r29); // div r29 IID19005 - __ divq(r30); // div r30 IID19006 - __ divq(r31); // div r31 IID19007 - __ idivq(rcx); // idiv rcx IID19008 - __ idivq(rdx); // idiv rdx IID19009 - __ idivq(rbx); // idiv rbx IID19010 - __ idivq(r8); // idiv r8 IID19011 - __ idivq(r9); // idiv r9 IID19012 - __ idivq(r10); // idiv r10 IID19013 - __ idivq(r11); // idiv r11 IID19014 - __ idivq(r12); // idiv r12 IID19015 - __ idivq(r13); // idiv r13 IID19016 - __ idivq(r14); // idiv r14 IID19017 - __ idivq(r15); // idiv r15 IID19018 - __ idivq(r16); // idiv r16 IID19019 - __ idivq(r17); // idiv r17 IID19020 - __ idivq(r18); // idiv r18 IID19021 - __ idivq(r19); // idiv r19 IID19022 - __ idivq(r20); // idiv r20 IID19023 - __ idivq(r21); // idiv r21 IID19024 - __ idivq(r22); // idiv r22 IID19025 - __ idivq(r23); // idiv r23 IID19026 - __ idivq(r24); // idiv r24 IID19027 - __ idivq(r25); // idiv r25 IID19028 - __ idivq(r26); // idiv r26 IID19029 - __ idivq(r27); // idiv r27 IID19030 - __ idivq(r28); // idiv r28 IID19031 - __ idivq(r29); // idiv r29 IID19032 - __ idivq(r30); // idiv r30 IID19033 - __ idivq(r31); // idiv r31 IID19034 - __ imulq(rcx); // imul rcx IID19035 - __ imulq(rdx); // imul rdx IID19036 - __ imulq(rbx); // imul rbx IID19037 - __ imulq(r8); // imul r8 IID19038 - __ imulq(r9); // imul r9 IID19039 - __ imulq(r10); // imul r10 IID19040 - __ imulq(r11); // imul r11 IID19041 - __ imulq(r12); // imul r12 IID19042 - __ imulq(r13); // imul r13 IID19043 - __ imulq(r14); // imul r14 IID19044 - __ imulq(r15); // imul r15 IID19045 - __ imulq(r16); // imul r16 IID19046 - __ imulq(r17); // imul r17 IID19047 - __ imulq(r18); // imul r18 IID19048 - __ imulq(r19); // imul r19 IID19049 - __ imulq(r20); // imul r20 IID19050 - __ imulq(r21); // imul r21 IID19051 - __ imulq(r22); // imul r22 IID19052 - __ imulq(r23); // imul r23 IID19053 - __ imulq(r24); // imul r24 IID19054 - __ imulq(r25); // imul r25 IID19055 - __ imulq(r26); // imul r26 IID19056 - __ imulq(r27); // imul r27 IID19057 - __ imulq(r28); // imul r28 IID19058 - __ imulq(r29); // imul r29 IID19059 - __ imulq(r30); // imul r30 IID19060 - __ imulq(r31); // imul r31 IID19061 - __ mulq(rcx); // mul rcx IID19062 - __ mulq(rdx); // mul rdx IID19063 - __ mulq(rbx); // mul rbx IID19064 - __ mulq(r8); // mul r8 IID19065 - __ mulq(r9); // mul r9 IID19066 - __ mulq(r10); // mul r10 IID19067 - __ mulq(r11); // mul r11 IID19068 - __ mulq(r12); // mul r12 IID19069 - __ mulq(r13); // mul r13 IID19070 - __ mulq(r14); // mul r14 IID19071 - __ mulq(r15); // mul r15 IID19072 - __ mulq(r16); // mul r16 IID19073 - __ mulq(r17); // mul r17 IID19074 - __ mulq(r18); // mul r18 IID19075 - __ mulq(r19); // mul r19 IID19076 - __ mulq(r20); // mul r20 IID19077 - __ mulq(r21); // mul r21 IID19078 - __ mulq(r22); // mul r22 IID19079 - __ mulq(r23); // mul r23 IID19080 - __ mulq(r24); // mul r24 IID19081 - __ mulq(r25); // mul r25 IID19082 - __ mulq(r26); // mul r26 IID19083 - __ mulq(r27); // mul r27 IID19084 - __ mulq(r28); // mul r28 IID19085 - __ mulq(r29); // mul r29 IID19086 - __ mulq(r30); // mul r30 IID19087 - __ mulq(r31); // mul r31 IID19088 - __ negq(rcx); // neg rcx IID19089 - __ negq(rdx); // neg rdx IID19090 - __ negq(rbx); // neg rbx IID19091 - __ negq(r8); // neg r8 IID19092 - __ negq(r9); // neg r9 IID19093 - __ negq(r10); // neg r10 IID19094 - __ negq(r11); // neg r11 IID19095 - __ negq(r12); // neg r12 IID19096 - __ negq(r13); // neg r13 IID19097 - __ negq(r14); // neg r14 IID19098 - __ negq(r15); // neg r15 IID19099 - __ negq(r16); // neg r16 IID19100 - __ negq(r17); // neg r17 IID19101 - __ negq(r18); // neg r18 IID19102 - __ negq(r19); // neg r19 IID19103 - __ negq(r20); // neg r20 IID19104 - __ negq(r21); // neg r21 IID19105 - __ negq(r22); // neg r22 IID19106 - __ negq(r23); // neg r23 IID19107 - __ negq(r24); // neg r24 IID19108 - __ negq(r25); // neg r25 IID19109 - __ negq(r26); // neg r26 IID19110 - __ negq(r27); // neg r27 IID19111 - __ negq(r28); // neg r28 IID19112 - __ negq(r29); // neg r29 IID19113 - __ negq(r30); // neg r30 IID19114 - __ negq(r31); // neg r31 IID19115 - __ notq(rcx); // not rcx IID19116 - __ notq(rdx); // not rdx IID19117 - __ notq(rbx); // not rbx IID19118 - __ notq(r8); // not r8 IID19119 - __ notq(r9); // not r9 IID19120 - __ notq(r10); // not r10 IID19121 - __ notq(r11); // not r11 IID19122 - __ notq(r12); // not r12 IID19123 - __ notq(r13); // not r13 IID19124 - __ notq(r14); // not r14 IID19125 - __ notq(r15); // not r15 IID19126 - __ notq(r16); // not r16 IID19127 - __ notq(r17); // not r17 IID19128 - __ notq(r18); // not r18 IID19129 - __ notq(r19); // not r19 IID19130 - __ notq(r20); // not r20 IID19131 - __ notq(r21); // not r21 IID19132 - __ notq(r22); // not r22 IID19133 - __ notq(r23); // not r23 IID19134 - __ notq(r24); // not r24 IID19135 - __ notq(r25); // not r25 IID19136 - __ notq(r26); // not r26 IID19137 - __ notq(r27); // not r27 IID19138 - __ notq(r28); // not r28 IID19139 - __ notq(r29); // not r29 IID19140 - __ notq(r30); // not r30 IID19141 - __ notq(r31); // not r31 IID19142 - __ rolq(rcx); // rol rcx, cl IID19143 - __ rolq(rdx); // rol rdx, cl IID19144 - __ rolq(rbx); // rol rbx, cl IID19145 - __ rolq(r8); // rol r8, cl IID19146 - __ rolq(r9); // rol r9, cl IID19147 - __ rolq(r10); // rol r10, cl IID19148 - __ rolq(r11); // rol r11, cl IID19149 - __ rolq(r12); // rol r12, cl IID19150 - __ rolq(r13); // rol r13, cl IID19151 - __ rolq(r14); // rol r14, cl IID19152 - __ rolq(r15); // rol r15, cl IID19153 - __ rolq(r16); // rol r16, cl IID19154 - __ rolq(r17); // rol r17, cl IID19155 - __ rolq(r18); // rol r18, cl IID19156 - __ rolq(r19); // rol r19, cl IID19157 - __ rolq(r20); // rol r20, cl IID19158 - __ rolq(r21); // rol r21, cl IID19159 - __ rolq(r22); // rol r22, cl IID19160 - __ rolq(r23); // rol r23, cl IID19161 - __ rolq(r24); // rol r24, cl IID19162 - __ rolq(r25); // rol r25, cl IID19163 - __ rolq(r26); // rol r26, cl IID19164 - __ rolq(r27); // rol r27, cl IID19165 - __ rolq(r28); // rol r28, cl IID19166 - __ rolq(r29); // rol r29, cl IID19167 - __ rolq(r30); // rol r30, cl IID19168 - __ rolq(r31); // rol r31, cl IID19169 - __ rorq(rcx); // ror rcx, cl IID19170 - __ rorq(rdx); // ror rdx, cl IID19171 - __ rorq(rbx); // ror rbx, cl IID19172 - __ rorq(r8); // ror r8, cl IID19173 - __ rorq(r9); // ror r9, cl IID19174 - __ rorq(r10); // ror r10, cl IID19175 - __ rorq(r11); // ror r11, cl IID19176 - __ rorq(r12); // ror r12, cl IID19177 - __ rorq(r13); // ror r13, cl IID19178 - __ rorq(r14); // ror r14, cl IID19179 - __ rorq(r15); // ror r15, cl IID19180 - __ rorq(r16); // ror r16, cl IID19181 - __ rorq(r17); // ror r17, cl IID19182 - __ rorq(r18); // ror r18, cl IID19183 - __ rorq(r19); // ror r19, cl IID19184 - __ rorq(r20); // ror r20, cl IID19185 - __ rorq(r21); // ror r21, cl IID19186 - __ rorq(r22); // ror r22, cl IID19187 - __ rorq(r23); // ror r23, cl IID19188 - __ rorq(r24); // ror r24, cl IID19189 - __ rorq(r25); // ror r25, cl IID19190 - __ rorq(r26); // ror r26, cl IID19191 - __ rorq(r27); // ror r27, cl IID19192 - __ rorq(r28); // ror r28, cl IID19193 - __ rorq(r29); // ror r29, cl IID19194 - __ rorq(r30); // ror r30, cl IID19195 - __ rorq(r31); // ror r31, cl IID19196 - __ sarq(rcx); // sar rcx, cl IID19197 - __ sarq(rdx); // sar rdx, cl IID19198 - __ sarq(rbx); // sar rbx, cl IID19199 - __ sarq(r8); // sar r8, cl IID19200 - __ sarq(r9); // sar r9, cl IID19201 - __ sarq(r10); // sar r10, cl IID19202 - __ sarq(r11); // sar r11, cl IID19203 - __ sarq(r12); // sar r12, cl IID19204 - __ sarq(r13); // sar r13, cl IID19205 - __ sarq(r14); // sar r14, cl IID19206 - __ sarq(r15); // sar r15, cl IID19207 - __ sarq(r16); // sar r16, cl IID19208 - __ sarq(r17); // sar r17, cl IID19209 - __ sarq(r18); // sar r18, cl IID19210 - __ sarq(r19); // sar r19, cl IID19211 - __ sarq(r20); // sar r20, cl IID19212 - __ sarq(r21); // sar r21, cl IID19213 - __ sarq(r22); // sar r22, cl IID19214 - __ sarq(r23); // sar r23, cl IID19215 - __ sarq(r24); // sar r24, cl IID19216 - __ sarq(r25); // sar r25, cl IID19217 - __ sarq(r26); // sar r26, cl IID19218 - __ sarq(r27); // sar r27, cl IID19219 - __ sarq(r28); // sar r28, cl IID19220 - __ sarq(r29); // sar r29, cl IID19221 - __ sarq(r30); // sar r30, cl IID19222 - __ sarq(r31); // sar r31, cl IID19223 - __ salq(rcx); // sal rcx, cl IID19224 - __ salq(rdx); // sal rdx, cl IID19225 - __ salq(rbx); // sal rbx, cl IID19226 - __ salq(r8); // sal r8, cl IID19227 - __ salq(r9); // sal r9, cl IID19228 - __ salq(r10); // sal r10, cl IID19229 - __ salq(r11); // sal r11, cl IID19230 - __ salq(r12); // sal r12, cl IID19231 - __ salq(r13); // sal r13, cl IID19232 - __ salq(r14); // sal r14, cl IID19233 - __ salq(r15); // sal r15, cl IID19234 - __ salq(r16); // sal r16, cl IID19235 - __ salq(r17); // sal r17, cl IID19236 - __ salq(r18); // sal r18, cl IID19237 - __ salq(r19); // sal r19, cl IID19238 - __ salq(r20); // sal r20, cl IID19239 - __ salq(r21); // sal r21, cl IID19240 - __ salq(r22); // sal r22, cl IID19241 - __ salq(r23); // sal r23, cl IID19242 - __ salq(r24); // sal r24, cl IID19243 - __ salq(r25); // sal r25, cl IID19244 - __ salq(r26); // sal r26, cl IID19245 - __ salq(r27); // sal r27, cl IID19246 - __ salq(r28); // sal r28, cl IID19247 - __ salq(r29); // sal r29, cl IID19248 - __ salq(r30); // sal r30, cl IID19249 - __ salq(r31); // sal r31, cl IID19250 - __ shlq(rcx); // shl rcx, cl IID19251 - __ shlq(rdx); // shl rdx, cl IID19252 - __ shlq(rbx); // shl rbx, cl IID19253 - __ shlq(r8); // shl r8, cl IID19254 - __ shlq(r9); // shl r9, cl IID19255 - __ shlq(r10); // shl r10, cl IID19256 - __ shlq(r11); // shl r11, cl IID19257 - __ shlq(r12); // shl r12, cl IID19258 - __ shlq(r13); // shl r13, cl IID19259 - __ shlq(r14); // shl r14, cl IID19260 - __ shlq(r15); // shl r15, cl IID19261 - __ shlq(r16); // shl r16, cl IID19262 - __ shlq(r17); // shl r17, cl IID19263 - __ shlq(r18); // shl r18, cl IID19264 - __ shlq(r19); // shl r19, cl IID19265 - __ shlq(r20); // shl r20, cl IID19266 - __ shlq(r21); // shl r21, cl IID19267 - __ shlq(r22); // shl r22, cl IID19268 - __ shlq(r23); // shl r23, cl IID19269 - __ shlq(r24); // shl r24, cl IID19270 - __ shlq(r25); // shl r25, cl IID19271 - __ shlq(r26); // shl r26, cl IID19272 - __ shlq(r27); // shl r27, cl IID19273 - __ shlq(r28); // shl r28, cl IID19274 - __ shlq(r29); // shl r29, cl IID19275 - __ shlq(r30); // shl r30, cl IID19276 - __ shlq(r31); // shl r31, cl IID19277 - __ shrq(rcx); // shr rcx, cl IID19278 - __ shrq(rdx); // shr rdx, cl IID19279 - __ shrq(rbx); // shr rbx, cl IID19280 - __ shrq(r8); // shr r8, cl IID19281 - __ shrq(r9); // shr r9, cl IID19282 - __ shrq(r10); // shr r10, cl IID19283 - __ shrq(r11); // shr r11, cl IID19284 - __ shrq(r12); // shr r12, cl IID19285 - __ shrq(r13); // shr r13, cl IID19286 - __ shrq(r14); // shr r14, cl IID19287 - __ shrq(r15); // shr r15, cl IID19288 - __ shrq(r16); // shr r16, cl IID19289 - __ shrq(r17); // shr r17, cl IID19290 - __ shrq(r18); // shr r18, cl IID19291 - __ shrq(r19); // shr r19, cl IID19292 - __ shrq(r20); // shr r20, cl IID19293 - __ shrq(r21); // shr r21, cl IID19294 - __ shrq(r22); // shr r22, cl IID19295 - __ shrq(r23); // shr r23, cl IID19296 - __ shrq(r24); // shr r24, cl IID19297 - __ shrq(r25); // shr r25, cl IID19298 - __ shrq(r26); // shr r26, cl IID19299 - __ shrq(r27); // shr r27, cl IID19300 - __ shrq(r28); // shr r28, cl IID19301 - __ shrq(r29); // shr r29, cl IID19302 - __ shrq(r30); // shr r30, cl IID19303 - __ shrq(r31); // shr r31, cl IID19304 - __ incrementq(rcx); // inc rcx IID19305 - __ incrementq(rdx); // inc rdx IID19306 - __ incrementq(rbx); // inc rbx IID19307 - __ incrementq(r8); // inc r8 IID19308 - __ incrementq(r9); // inc r9 IID19309 - __ incrementq(r10); // inc r10 IID19310 - __ incrementq(r11); // inc r11 IID19311 - __ incrementq(r12); // inc r12 IID19312 - __ incrementq(r13); // inc r13 IID19313 - __ incrementq(r14); // inc r14 IID19314 - __ incrementq(r15); // inc r15 IID19315 - __ incrementq(r16); // inc r16 IID19316 - __ incrementq(r17); // inc r17 IID19317 - __ incrementq(r18); // inc r18 IID19318 - __ incrementq(r19); // inc r19 IID19319 - __ incrementq(r20); // inc r20 IID19320 - __ incrementq(r21); // inc r21 IID19321 - __ incrementq(r22); // inc r22 IID19322 - __ incrementq(r23); // inc r23 IID19323 - __ incrementq(r24); // inc r24 IID19324 - __ incrementq(r25); // inc r25 IID19325 - __ incrementq(r26); // inc r26 IID19326 - __ incrementq(r27); // inc r27 IID19327 - __ incrementq(r28); // inc r28 IID19328 - __ incrementq(r29); // inc r29 IID19329 - __ incrementq(r30); // inc r30 IID19330 - __ incrementq(r31); // inc r31 IID19331 - __ decrementq(rcx); // dec rcx IID19332 - __ decrementq(rdx); // dec rdx IID19333 - __ decrementq(rbx); // dec rbx IID19334 - __ decrementq(r8); // dec r8 IID19335 - __ decrementq(r9); // dec r9 IID19336 - __ decrementq(r10); // dec r10 IID19337 - __ decrementq(r11); // dec r11 IID19338 - __ decrementq(r12); // dec r12 IID19339 - __ decrementq(r13); // dec r13 IID19340 - __ decrementq(r14); // dec r14 IID19341 - __ decrementq(r15); // dec r15 IID19342 - __ decrementq(r16); // dec r16 IID19343 - __ decrementq(r17); // dec r17 IID19344 - __ decrementq(r18); // dec r18 IID19345 - __ decrementq(r19); // dec r19 IID19346 - __ decrementq(r20); // dec r20 IID19347 - __ decrementq(r21); // dec r21 IID19348 - __ decrementq(r22); // dec r22 IID19349 - __ decrementq(r23); // dec r23 IID19350 - __ decrementq(r24); // dec r24 IID19351 - __ decrementq(r25); // dec r25 IID19352 - __ decrementq(r26); // dec r26 IID19353 - __ decrementq(r27); // dec r27 IID19354 - __ decrementq(r28); // dec r28 IID19355 - __ decrementq(r29); // dec r29 IID19356 - __ decrementq(r30); // dec r30 IID19357 - __ decrementq(r31); // dec r31 IID19358 - __ pushp(rcx); // pushp rcx IID19359 - __ pushp(rdx); // pushp rdx IID19360 - __ pushp(rbx); // pushp rbx IID19361 - __ pushp(r8); // pushp r8 IID19362 - __ pushp(r9); // pushp r9 IID19363 - __ pushp(r10); // pushp r10 IID19364 - __ pushp(r11); // pushp r11 IID19365 - __ pushp(r12); // pushp r12 IID19366 - __ pushp(r13); // pushp r13 IID19367 - __ pushp(r14); // pushp r14 IID19368 - __ pushp(r15); // pushp r15 IID19369 - __ pushp(r16); // pushp r16 IID19370 - __ pushp(r17); // pushp r17 IID19371 - __ pushp(r18); // pushp r18 IID19372 - __ pushp(r19); // pushp r19 IID19373 - __ pushp(r20); // pushp r20 IID19374 - __ pushp(r21); // pushp r21 IID19375 - __ pushp(r22); // pushp r22 IID19376 - __ pushp(r23); // pushp r23 IID19377 - __ pushp(r24); // pushp r24 IID19378 - __ pushp(r25); // pushp r25 IID19379 - __ pushp(r26); // pushp r26 IID19380 - __ pushp(r27); // pushp r27 IID19381 - __ pushp(r28); // pushp r28 IID19382 - __ pushp(r29); // pushp r29 IID19383 - __ pushp(r30); // pushp r30 IID19384 - __ pushp(r31); // pushp r31 IID19385 - __ popp(rcx); // popp rcx IID19386 - __ popp(rdx); // popp rdx IID19387 - __ popp(rbx); // popp rbx IID19388 - __ popp(r8); // popp r8 IID19389 - __ popp(r9); // popp r9 IID19390 - __ popp(r10); // popp r10 IID19391 - __ popp(r11); // popp r11 IID19392 - __ popp(r12); // popp r12 IID19393 - __ popp(r13); // popp r13 IID19394 - __ popp(r14); // popp r14 IID19395 - __ popp(r15); // popp r15 IID19396 - __ popp(r16); // popp r16 IID19397 - __ popp(r17); // popp r17 IID19398 - __ popp(r18); // popp r18 IID19399 - __ popp(r19); // popp r19 IID19400 - __ popp(r20); // popp r20 IID19401 - __ popp(r21); // popp r21 IID19402 - __ popp(r22); // popp r22 IID19403 - __ popp(r23); // popp r23 IID19404 - __ popp(r24); // popp r24 IID19405 - __ popp(r25); // popp r25 IID19406 - __ popp(r26); // popp r26 IID19407 - __ popp(r27); // popp r27 IID19408 - __ popp(r28); // popp r28 IID19409 - __ popp(r29); // popp r29 IID19410 - __ popp(r30); // popp r30 IID19411 - __ popp(r31); // popp r31 IID19412 - __ call(Address(rcx, +0x73896691)); // call qword ptr [rcx+0x73896691] IID19413 - __ call(Address(rdx, rbx, (Address::ScaleFactor)0, +0x3d5e414d)); // call qword ptr [rdx+rbx*1+0x3d5e414d] IID19414 - __ call(Address(rbx, r8, (Address::ScaleFactor)1, -0x3e8fdc4a)); // call qword ptr [rbx+r8*2-0x3e8fdc4a] IID19415 - __ call(Address(r8, r9, (Address::ScaleFactor)3, -0x39ca14ee)); // call qword ptr [r8+r9*8-0x39ca14ee] IID19416 - __ call(Address(r9, -0x202371bc)); // call qword ptr [r9-0x202371bc] IID19417 - __ call(Address(r10, r11, (Address::ScaleFactor)0, +0x20f9c58d)); // call qword ptr [r10+r11*1+0x20f9c58d] IID19418 - __ call(Address(r11, r12, (Address::ScaleFactor)1, +0x6ff9f913)); // call qword ptr [r11+r12*2+0x6ff9f913] IID19419 - __ call(Address(r12, r13, (Address::ScaleFactor)1, -0x5cc4c015)); // call qword ptr [r12+r13*2-0x5cc4c015] IID19420 - __ call(Address(r13, r14, (Address::ScaleFactor)1, -0x5037005a)); // call qword ptr [r13+r14*2-0x5037005a] IID19421 - __ call(Address(r14, r15, (Address::ScaleFactor)0, +0x718d0af7)); // call qword ptr [r14+r15*1+0x718d0af7] IID19422 - __ call(Address(r15, r16, (Address::ScaleFactor)3, -0x530d4202)); // call qword ptr [r15+r16*8-0x530d4202] IID19423 - __ call(Address(r16, r17, (Address::ScaleFactor)3, +0x2c99d02c)); // call qword ptr [r16+r17*8+0x2c99d02c] IID19424 - __ call(Address(r17, -0x66e9c860)); // call qword ptr [r17-0x66e9c860] IID19425 - __ call(Address(r18, r19, (Address::ScaleFactor)3, -0x1a09dd5f)); // call qword ptr [r18+r19*8-0x1a09dd5f] IID19426 - __ call(Address(r19, r20, (Address::ScaleFactor)1, +0x78fda2f4)); // call qword ptr [r19+r20*2+0x78fda2f4] IID19427 - __ call(Address(r20, r21, (Address::ScaleFactor)1, -0x3fea9852)); // call qword ptr [r20+r21*2-0x3fea9852] IID19428 - __ call(Address(r21, -0x78c57ecb)); // call qword ptr [r21-0x78c57ecb] IID19429 - __ call(Address(r22, -0x1680ab0e)); // call qword ptr [r22-0x1680ab0e] IID19430 - __ call(Address(r23, r24, (Address::ScaleFactor)1, -0xbc465a3)); // call qword ptr [r23+r24*2-0xbc465a3] IID19431 - __ call(Address(r24, r25, (Address::ScaleFactor)2, -0x134169be)); // call qword ptr [r24+r25*4-0x134169be] IID19432 - __ call(Address(r25, r26, (Address::ScaleFactor)1, +0x52f66cf)); // call qword ptr [r25+r26*2+0x52f66cf] IID19433 - __ call(Address(r26, r27, (Address::ScaleFactor)3, +0x559548e3)); // call qword ptr [r26+r27*8+0x559548e3] IID19434 - __ call(Address(r27, r28, (Address::ScaleFactor)2, +0x792c674d)); // call qword ptr [r27+r28*4+0x792c674d] IID19435 - __ call(Address(r28, r29, (Address::ScaleFactor)2, +0x56962d6)); // call qword ptr [r28+r29*4+0x56962d6] IID19436 - __ call(Address(r29, r30, (Address::ScaleFactor)2, +0x7eb39991)); // call qword ptr [r29+r30*4+0x7eb39991] IID19437 - __ call(Address(r30, r31, (Address::ScaleFactor)3, -0x2353d7bb)); // call qword ptr [r30+r31*8-0x2353d7bb] IID19438 - __ call(Address(r31, rcx, (Address::ScaleFactor)0, -0x1b4f59ed)); // call qword ptr [r31+rcx*1-0x1b4f59ed] IID19439 - __ mulq(Address(rcx, rdx, (Address::ScaleFactor)2, +0x5aba23a3)); // mul qword ptr [rcx+rdx*4+0x5aba23a3] IID19440 - __ mulq(Address(rdx, +0x2671471e)); // mul qword ptr [rdx+0x2671471e] IID19441 - __ mulq(Address(rbx, r8, (Address::ScaleFactor)1, +0x51cba5ec)); // mul qword ptr [rbx+r8*2+0x51cba5ec] IID19442 - __ mulq(Address(r8, r9, (Address::ScaleFactor)3, +0x240db4ad)); // mul qword ptr [r8+r9*8+0x240db4ad] IID19443 - __ mulq(Address(r9, -0x60ca8573)); // mul qword ptr [r9-0x60ca8573] IID19444 - __ mulq(Address(r10, r11, (Address::ScaleFactor)3, +0x2806341d)); // mul qword ptr [r10+r11*8+0x2806341d] IID19445 - __ mulq(Address(r11, r12, (Address::ScaleFactor)0, -0x116b370)); // mul qword ptr [r11+r12*1-0x116b370] IID19446 - __ mulq(Address(r12, r13, (Address::ScaleFactor)3, +0x5500f0e6)); // mul qword ptr [r12+r13*8+0x5500f0e6] IID19447 - __ mulq(Address(r13, r14, (Address::ScaleFactor)1, -0x28cb487a)); // mul qword ptr [r13+r14*2-0x28cb487a] IID19448 - __ mulq(Address(r14, r15, (Address::ScaleFactor)0, -0x66d34527)); // mul qword ptr [r14+r15*1-0x66d34527] IID19449 - __ mulq(Address(r15, +0xa18ebc4)); // mul qword ptr [r15+0xa18ebc4] IID19450 - __ mulq(Address(r16, r17, (Address::ScaleFactor)1, -0x46674f5d)); // mul qword ptr [r16+r17*2-0x46674f5d] IID19451 - __ mulq(Address(r17, r18, (Address::ScaleFactor)0, -0x6bf2e6cf)); // mul qword ptr [r17+r18*1-0x6bf2e6cf] IID19452 - __ mulq(Address(r18, r19, (Address::ScaleFactor)1, +0xf40c941)); // mul qword ptr [r18+r19*2+0xf40c941] IID19453 - __ mulq(Address(r19, +0x157342fe)); // mul qword ptr [r19+0x157342fe] IID19454 - __ mulq(Address(r20, r21, (Address::ScaleFactor)3, +0x5314d602)); // mul qword ptr [r20+r21*8+0x5314d602] IID19455 - __ mulq(Address(r21, +0x614e8c5e)); // mul qword ptr [r21+0x614e8c5e] IID19456 - __ mulq(Address(r22, r23, (Address::ScaleFactor)3, -0x7351dc9e)); // mul qword ptr [r22+r23*8-0x7351dc9e] IID19457 - __ mulq(Address(r23, r24, (Address::ScaleFactor)2, -0x693b95b9)); // mul qword ptr [r23+r24*4-0x693b95b9] IID19458 - __ mulq(Address(r24, r25, (Address::ScaleFactor)1, -0x484e439f)); // mul qword ptr [r24+r25*2-0x484e439f] IID19459 - __ mulq(Address(r25, r26, (Address::ScaleFactor)0, -0x7ec4854c)); // mul qword ptr [r25+r26*1-0x7ec4854c] IID19460 - __ mulq(Address(r26, r27, (Address::ScaleFactor)0, -0x69c2d0cc)); // mul qword ptr [r26+r27*1-0x69c2d0cc] IID19461 - __ mulq(Address(r27, r28, (Address::ScaleFactor)2, +0x241a59f3)); // mul qword ptr [r27+r28*4+0x241a59f3] IID19462 - __ mulq(Address(r28, r29, (Address::ScaleFactor)1, -0x62679640)); // mul qword ptr [r28+r29*2-0x62679640] IID19463 - __ mulq(Address(r29, r30, (Address::ScaleFactor)1, +0x50aabae8)); // mul qword ptr [r29+r30*2+0x50aabae8] IID19464 - __ mulq(Address(r30, r31, (Address::ScaleFactor)1, +0x4d21c6a5)); // mul qword ptr [r30+r31*2+0x4d21c6a5] IID19465 - __ mulq(Address(r31, -0x3412509d)); // mul qword ptr [r31-0x3412509d] IID19466 - __ negq(Address(rcx, rdx, (Address::ScaleFactor)2, +0x45ea310f)); // neg qword ptr [rcx+rdx*4+0x45ea310f] IID19467 - __ negq(Address(rdx, rbx, (Address::ScaleFactor)1, +0x42254b77)); // neg qword ptr [rdx+rbx*2+0x42254b77] IID19468 - __ negq(Address(rbx, r8, (Address::ScaleFactor)3, -0x7e4379b8)); // neg qword ptr [rbx+r8*8-0x7e4379b8] IID19469 - __ negq(Address(r8, -0x5ea952c7)); // neg qword ptr [r8-0x5ea952c7] IID19470 - __ negq(Address(r9, r10, (Address::ScaleFactor)3, +0x44b7e725)); // neg qword ptr [r9+r10*8+0x44b7e725] IID19471 - __ negq(Address(r10, r11, (Address::ScaleFactor)2, +0x345897e2)); // neg qword ptr [r10+r11*4+0x345897e2] IID19472 - __ negq(Address(r11, +0x2f7f8c4b)); // neg qword ptr [r11+0x2f7f8c4b] IID19473 - __ negq(Address(r12, r13, (Address::ScaleFactor)2, -0x47accdfc)); // neg qword ptr [r12+r13*4-0x47accdfc] IID19474 - __ negq(Address(r13, r14, (Address::ScaleFactor)3, +0x15644f7e)); // neg qword ptr [r13+r14*8+0x15644f7e] IID19475 - __ negq(Address(r14, +0x24745622)); // neg qword ptr [r14+0x24745622] IID19476 - __ negq(Address(r15, +0x2cb05f35)); // neg qword ptr [r15+0x2cb05f35] IID19477 - __ negq(Address(r16, r17, (Address::ScaleFactor)1, +0x6733f567)); // neg qword ptr [r16+r17*2+0x6733f567] IID19478 - __ negq(Address(r17, r18, (Address::ScaleFactor)2, +0x3ce2d75a)); // neg qword ptr [r17+r18*4+0x3ce2d75a] IID19479 - __ negq(Address(r18, r19, (Address::ScaleFactor)3, -0x246a3f41)); // neg qword ptr [r18+r19*8-0x246a3f41] IID19480 - __ negq(Address(r19, r20, (Address::ScaleFactor)1, -0x166f582f)); // neg qword ptr [r19+r20*2-0x166f582f] IID19481 - __ negq(Address(r20, r21, (Address::ScaleFactor)3, -0x572b9b3b)); // neg qword ptr [r20+r21*8-0x572b9b3b] IID19482 - __ negq(Address(r21, r22, (Address::ScaleFactor)1, -0x239088a8)); // neg qword ptr [r21+r22*2-0x239088a8] IID19483 - __ negq(Address(r22, +0x404818a2)); // neg qword ptr [r22+0x404818a2] IID19484 - __ negq(Address(r23, r24, (Address::ScaleFactor)0, +0x329865cb)); // neg qword ptr [r23+r24*1+0x329865cb] IID19485 - __ negq(Address(r24, r25, (Address::ScaleFactor)3, -0x5f93433f)); // neg qword ptr [r24+r25*8-0x5f93433f] IID19486 - __ negq(Address(r25, r26, (Address::ScaleFactor)1, +0x27388e72)); // neg qword ptr [r25+r26*2+0x27388e72] IID19487 - __ negq(Address(r26, r27, (Address::ScaleFactor)2, -0x6c2533bd)); // neg qword ptr [r26+r27*4-0x6c2533bd] IID19488 - __ negq(Address(r27, r28, (Address::ScaleFactor)3, +0x778cab60)); // neg qword ptr [r27+r28*8+0x778cab60] IID19489 - __ negq(Address(r28, r29, (Address::ScaleFactor)0, -0x7fc215b7)); // neg qword ptr [r28+r29*1-0x7fc215b7] IID19490 - __ negq(Address(r29, r30, (Address::ScaleFactor)3, -0x7f3155a4)); // neg qword ptr [r29+r30*8-0x7f3155a4] IID19491 - __ negq(Address(r30, +0x604e737f)); // neg qword ptr [r30+0x604e737f] IID19492 - __ negq(Address(r31, +0x68a2beb7)); // neg qword ptr [r31+0x68a2beb7] IID19493 - __ sarq(Address(rcx, rdx, (Address::ScaleFactor)0, -0x749dc82f)); // sar qword ptr [rcx+rdx*1-0x749dc82f], cl IID19494 - __ sarq(Address(rdx, rbx, (Address::ScaleFactor)1, -0xdf9f52)); // sar qword ptr [rdx+rbx*2-0xdf9f52], cl IID19495 - __ sarq(Address(rbx, r8, (Address::ScaleFactor)0, -0x7f5677ae)); // sar qword ptr [rbx+r8*1-0x7f5677ae], cl IID19496 - __ sarq(Address(r8, r9, (Address::ScaleFactor)2, -0x15ad096d)); // sar qword ptr [r8+r9*4-0x15ad096d], cl IID19497 - __ sarq(Address(r9, r10, (Address::ScaleFactor)1, +0x6cec800b)); // sar qword ptr [r9+r10*2+0x6cec800b], cl IID19498 - __ sarq(Address(r10, r11, (Address::ScaleFactor)3, -0x60bedc93)); // sar qword ptr [r10+r11*8-0x60bedc93], cl IID19499 - __ sarq(Address(r11, +0x2c37339d)); // sar qword ptr [r11+0x2c37339d], cl IID19500 - __ sarq(Address(r12, r13, (Address::ScaleFactor)3, -0x70cbed37)); // sar qword ptr [r12+r13*8-0x70cbed37], cl IID19501 - __ sarq(Address(r13, r14, (Address::ScaleFactor)3, -0x5e6603e8)); // sar qword ptr [r13+r14*8-0x5e6603e8], cl IID19502 - __ sarq(Address(r14, r15, (Address::ScaleFactor)3, +0x6e02b1c8)); // sar qword ptr [r14+r15*8+0x6e02b1c8], cl IID19503 - __ sarq(Address(r15, r16, (Address::ScaleFactor)3, +0x530d887e)); // sar qword ptr [r15+r16*8+0x530d887e], cl IID19504 - __ sarq(Address(r16, r17, (Address::ScaleFactor)0, -0x401115e5)); // sar qword ptr [r16+r17*1-0x401115e5], cl IID19505 - __ sarq(Address(r17, r18, (Address::ScaleFactor)3, -0x70e80732)); // sar qword ptr [r17+r18*8-0x70e80732], cl IID19506 - __ sarq(Address(r18, r19, (Address::ScaleFactor)2, -0x5a20a31d)); // sar qword ptr [r18+r19*4-0x5a20a31d], cl IID19507 - __ sarq(Address(r19, r20, (Address::ScaleFactor)1, -0x450a75a5)); // sar qword ptr [r19+r20*2-0x450a75a5], cl IID19508 - __ sarq(Address(r20, r21, (Address::ScaleFactor)0, +0x2f2d27af)); // sar qword ptr [r20+r21*1+0x2f2d27af], cl IID19509 - __ sarq(Address(r21, r22, (Address::ScaleFactor)2, +0xd4294e5)); // sar qword ptr [r21+r22*4+0xd4294e5], cl IID19510 - __ sarq(Address(r22, r23, (Address::ScaleFactor)0, -0xd6dea8e)); // sar qword ptr [r22+r23*1-0xd6dea8e], cl IID19511 - __ sarq(Address(r23, r24, (Address::ScaleFactor)1, -0xfd2da83)); // sar qword ptr [r23+r24*2-0xfd2da83], cl IID19512 - __ sarq(Address(r24, r25, (Address::ScaleFactor)0, -0x32de02c5)); // sar qword ptr [r24+r25*1-0x32de02c5], cl IID19513 - __ sarq(Address(r25, r26, (Address::ScaleFactor)2, +0x707a771d)); // sar qword ptr [r25+r26*4+0x707a771d], cl IID19514 - __ sarq(Address(r26, +0x2870a16e)); // sar qword ptr [r26+0x2870a16e], cl IID19515 - __ sarq(Address(r27, r28, (Address::ScaleFactor)1, +0x6e1fbeb4)); // sar qword ptr [r27+r28*2+0x6e1fbeb4], cl IID19516 - __ sarq(Address(r28, r29, (Address::ScaleFactor)3, +0x181280e)); // sar qword ptr [r28+r29*8+0x181280e], cl IID19517 - __ sarq(Address(r29, r30, (Address::ScaleFactor)1, +0x36ef097e)); // sar qword ptr [r29+r30*2+0x36ef097e], cl IID19518 - __ sarq(Address(r30, r31, (Address::ScaleFactor)3, +0x3b736b2c)); // sar qword ptr [r30+r31*8+0x3b736b2c], cl IID19519 - __ sarq(Address(r31, rcx, (Address::ScaleFactor)1, -0x4708198f)); // sar qword ptr [r31+rcx*2-0x4708198f], cl IID19520 - __ salq(Address(rcx, +0x5908cd50)); // sal qword ptr [rcx+0x5908cd50], cl IID19521 - __ salq(Address(rdx, rbx, (Address::ScaleFactor)2, -0x74664c13)); // sal qword ptr [rdx+rbx*4-0x74664c13], cl IID19522 - __ salq(Address(rbx, +0x1f4bd5d2)); // sal qword ptr [rbx+0x1f4bd5d2], cl IID19523 - __ salq(Address(r8, +0x46e2d2d2)); // sal qword ptr [r8+0x46e2d2d2], cl IID19524 - __ salq(Address(r9, r10, (Address::ScaleFactor)3, +0x3681859c)); // sal qword ptr [r9+r10*8+0x3681859c], cl IID19525 - __ salq(Address(r10, +0x35d857db)); // sal qword ptr [r10+0x35d857db], cl IID19526 - __ salq(Address(r11, -0x3ef05278)); // sal qword ptr [r11-0x3ef05278], cl IID19527 - __ salq(Address(r12, r13, (Address::ScaleFactor)3, -0x5cf5916f)); // sal qword ptr [r12+r13*8-0x5cf5916f], cl IID19528 - __ salq(Address(r13, -0xdc0d796)); // sal qword ptr [r13-0xdc0d796], cl IID19529 - __ salq(Address(r14, r15, (Address::ScaleFactor)0, +0x6e27129)); // sal qword ptr [r14+r15*1+0x6e27129], cl IID19530 - __ salq(Address(r15, r16, (Address::ScaleFactor)2, -0x560b6ae2)); // sal qword ptr [r15+r16*4-0x560b6ae2], cl IID19531 - __ salq(Address(r16, r17, (Address::ScaleFactor)3, -0x6e33dd80)); // sal qword ptr [r16+r17*8-0x6e33dd80], cl IID19532 - __ salq(Address(r17, r18, (Address::ScaleFactor)2, +0x565da795)); // sal qword ptr [r17+r18*4+0x565da795], cl IID19533 - __ salq(Address(r18, r19, (Address::ScaleFactor)2, +0x5d470492)); // sal qword ptr [r18+r19*4+0x5d470492], cl IID19534 - __ salq(Address(r19, r20, (Address::ScaleFactor)3, +0x77e52989)); // sal qword ptr [r19+r20*8+0x77e52989], cl IID19535 - __ salq(Address(r20, +0x2d4f8dc1)); // sal qword ptr [r20+0x2d4f8dc1], cl IID19536 - __ salq(Address(r21, r22, (Address::ScaleFactor)2, -0x53a6b803)); // sal qword ptr [r21+r22*4-0x53a6b803], cl IID19537 - __ salq(Address(r22, r23, (Address::ScaleFactor)2, -0x36a73298)); // sal qword ptr [r22+r23*4-0x36a73298], cl IID19538 - __ salq(Address(r23, r24, (Address::ScaleFactor)2, +0x5c50f119)); // sal qword ptr [r23+r24*4+0x5c50f119], cl IID19539 - __ salq(Address(r24, r25, (Address::ScaleFactor)3, +0x27310ea9)); // sal qword ptr [r24+r25*8+0x27310ea9], cl IID19540 - __ salq(Address(r25, r26, (Address::ScaleFactor)3, -0x43fa11e)); // sal qword ptr [r25+r26*8-0x43fa11e], cl IID19541 - __ salq(Address(r26, r27, (Address::ScaleFactor)1, +0x41d95fef)); // sal qword ptr [r26+r27*2+0x41d95fef], cl IID19542 - __ salq(Address(r27, r28, (Address::ScaleFactor)1, +0x21342ef)); // sal qword ptr [r27+r28*2+0x21342ef], cl IID19543 - __ salq(Address(r28, r29, (Address::ScaleFactor)0, -0x46acfa30)); // sal qword ptr [r28+r29*1-0x46acfa30], cl IID19544 - __ salq(Address(r29, r30, (Address::ScaleFactor)1, -0x78c86060)); // sal qword ptr [r29+r30*2-0x78c86060], cl IID19545 - __ salq(Address(r30, r31, (Address::ScaleFactor)3, -0x58294893)); // sal qword ptr [r30+r31*8-0x58294893], cl IID19546 - __ salq(Address(r31, rcx, (Address::ScaleFactor)0, -0x619db1d6)); // sal qword ptr [r31+rcx*1-0x619db1d6], cl IID19547 - __ shrq(Address(rcx, rdx, (Address::ScaleFactor)0, -0x3abd3ed)); // shr qword ptr [rcx+rdx*1-0x3abd3ed], cl IID19548 - __ shrq(Address(rdx, rbx, (Address::ScaleFactor)2, -0x321c1bb9)); // shr qword ptr [rdx+rbx*4-0x321c1bb9], cl IID19549 - __ shrq(Address(rbx, r8, (Address::ScaleFactor)0, +0x34021b28)); // shr qword ptr [rbx+r8*1+0x34021b28], cl IID19550 - __ shrq(Address(r8, r9, (Address::ScaleFactor)0, +0x4350545f)); // shr qword ptr [r8+r9*1+0x4350545f], cl IID19551 - __ shrq(Address(r9, -0x23ece501)); // shr qword ptr [r9-0x23ece501], cl IID19552 - __ shrq(Address(r10, r11, (Address::ScaleFactor)0, +0x44a3c11e)); // shr qword ptr [r10+r11*1+0x44a3c11e], cl IID19553 - __ shrq(Address(r11, r12, (Address::ScaleFactor)3, -0x2a04429f)); // shr qword ptr [r11+r12*8-0x2a04429f], cl IID19554 - __ shrq(Address(r12, r13, (Address::ScaleFactor)0, +0x78e813d2)); // shr qword ptr [r12+r13*1+0x78e813d2], cl IID19555 - __ shrq(Address(r13, r14, (Address::ScaleFactor)0, -0x3999b2f9)); // shr qword ptr [r13+r14*1-0x3999b2f9], cl IID19556 - __ shrq(Address(r14, +0x57ad0243)); // shr qword ptr [r14+0x57ad0243], cl IID19557 - __ shrq(Address(r15, r16, (Address::ScaleFactor)1, -0x3e45d896)); // shr qword ptr [r15+r16*2-0x3e45d896], cl IID19558 - __ shrq(Address(r16, r17, (Address::ScaleFactor)2, -0x45c07299)); // shr qword ptr [r16+r17*4-0x45c07299], cl IID19559 - __ shrq(Address(r17, +0x6137c185)); // shr qword ptr [r17+0x6137c185], cl IID19560 - __ shrq(Address(r18, r19, (Address::ScaleFactor)2, -0x5f44fee8)); // shr qword ptr [r18+r19*4-0x5f44fee8], cl IID19561 - __ shrq(Address(r19, -0x3be231f7)); // shr qword ptr [r19-0x3be231f7], cl IID19562 - __ shrq(Address(r20, r21, (Address::ScaleFactor)1, -0x64a1e976)); // shr qword ptr [r20+r21*2-0x64a1e976], cl IID19563 - __ shrq(Address(r21, r22, (Address::ScaleFactor)0, -0x92f4db5)); // shr qword ptr [r21+r22*1-0x92f4db5], cl IID19564 - __ shrq(Address(r22, r23, (Address::ScaleFactor)2, -0xae713d9)); // shr qword ptr [r22+r23*4-0xae713d9], cl IID19565 - __ shrq(Address(r23, r24, (Address::ScaleFactor)3, -0x787ff7f5)); // shr qword ptr [r23+r24*8-0x787ff7f5], cl IID19566 - __ shrq(Address(r24, r25, (Address::ScaleFactor)1, -0xa2b7c16)); // shr qword ptr [r24+r25*2-0xa2b7c16], cl IID19567 - __ shrq(Address(r25, -0x1931cb13)); // shr qword ptr [r25-0x1931cb13], cl IID19568 - __ shrq(Address(r26, -0x7cbcb3ba)); // shr qword ptr [r26-0x7cbcb3ba], cl IID19569 - __ shrq(Address(r27, r28, (Address::ScaleFactor)0, -0x50dd3a5)); // shr qword ptr [r27+r28*1-0x50dd3a5], cl IID19570 - __ shrq(Address(r28, -0x27fecf7f)); // shr qword ptr [r28-0x27fecf7f], cl IID19571 - __ shrq(Address(r29, r30, (Address::ScaleFactor)3, +0x18f7a28)); // shr qword ptr [r29+r30*8+0x18f7a28], cl IID19572 - __ shrq(Address(r30, r31, (Address::ScaleFactor)1, -0x34012bf5)); // shr qword ptr [r30+r31*2-0x34012bf5], cl IID19573 - __ shrq(Address(r31, -0x6499bec3)); // shr qword ptr [r31-0x6499bec3], cl IID19574 - __ incrementq(Address(rcx, rdx, (Address::ScaleFactor)0, +0x68a69790)); // inc qword ptr [rcx+rdx*1+0x68a69790] IID19575 - __ incrementq(Address(rdx, +0x70008e86)); // inc qword ptr [rdx+0x70008e86] IID19576 - __ incrementq(Address(rbx, r8, (Address::ScaleFactor)0, -0x60b7c32e)); // inc qword ptr [rbx+r8*1-0x60b7c32e] IID19577 - __ incrementq(Address(r8, r9, (Address::ScaleFactor)0, -0x1c534506)); // inc qword ptr [r8+r9*1-0x1c534506] IID19578 - __ incrementq(Address(r9, r10, (Address::ScaleFactor)2, +0x6f3dea3)); // inc qword ptr [r9+r10*4+0x6f3dea3] IID19579 - __ incrementq(Address(r10, r11, (Address::ScaleFactor)0, +0x2fd79a19)); // inc qword ptr [r10+r11*1+0x2fd79a19] IID19580 - __ incrementq(Address(r11, r12, (Address::ScaleFactor)0, +0x67e8464a)); // inc qword ptr [r11+r12*1+0x67e8464a] IID19581 - __ incrementq(Address(r12, r13, (Address::ScaleFactor)2, -0x1c8d22a5)); // inc qword ptr [r12+r13*4-0x1c8d22a5] IID19582 - __ incrementq(Address(r13, r14, (Address::ScaleFactor)3, -0x293300ca)); // inc qword ptr [r13+r14*8-0x293300ca] IID19583 - __ incrementq(Address(r14, r15, (Address::ScaleFactor)0, +0x2f8db7a6)); // inc qword ptr [r14+r15*1+0x2f8db7a6] IID19584 - __ incrementq(Address(r15, r16, (Address::ScaleFactor)2, -0x62dc023d)); // inc qword ptr [r15+r16*4-0x62dc023d] IID19585 - __ incrementq(Address(r16, r17, (Address::ScaleFactor)3, -0x1dd34c9b)); // inc qword ptr [r16+r17*8-0x1dd34c9b] IID19586 - __ incrementq(Address(r17, r18, (Address::ScaleFactor)3, +0x61eec42d)); // inc qword ptr [r17+r18*8+0x61eec42d] IID19587 - __ incrementq(Address(r18, +0x5eeb1cf)); // inc qword ptr [r18+0x5eeb1cf] IID19588 - __ incrementq(Address(r19, r20, (Address::ScaleFactor)1, -0x53d8bdbb)); // inc qword ptr [r19+r20*2-0x53d8bdbb] IID19589 - __ incrementq(Address(r20, -0x3d8542c4)); // inc qword ptr [r20-0x3d8542c4] IID19590 - __ incrementq(Address(r21, -0x543c45fa)); // inc qword ptr [r21-0x543c45fa] IID19591 - __ incrementq(Address(r22, r23, (Address::ScaleFactor)0, -0x512e6b33)); // inc qword ptr [r22+r23*1-0x512e6b33] IID19592 - __ incrementq(Address(r23, r24, (Address::ScaleFactor)2, -0x8bc8ffa)); // inc qword ptr [r23+r24*4-0x8bc8ffa] IID19593 - __ incrementq(Address(r24, r25, (Address::ScaleFactor)3, +0x37b486cb)); // inc qword ptr [r24+r25*8+0x37b486cb] IID19594 - __ incrementq(Address(r25, r26, (Address::ScaleFactor)3, +0x7c8743b)); // inc qword ptr [r25+r26*8+0x7c8743b] IID19595 - __ incrementq(Address(r26, +0x1bb33459)); // inc qword ptr [r26+0x1bb33459] IID19596 - __ incrementq(Address(r27, r28, (Address::ScaleFactor)1, -0x59d446a6)); // inc qword ptr [r27+r28*2-0x59d446a6] IID19597 - __ incrementq(Address(r28, r29, (Address::ScaleFactor)1, -0x690e5b84)); // inc qword ptr [r28+r29*2-0x690e5b84] IID19598 - __ incrementq(Address(r29, r30, (Address::ScaleFactor)0, -0x4b30e885)); // inc qword ptr [r29+r30*1-0x4b30e885] IID19599 - __ incrementq(Address(r30, r31, (Address::ScaleFactor)3, -0x2fe2d410)); // inc qword ptr [r30+r31*8-0x2fe2d410] IID19600 - __ incrementq(Address(r31, -0x61d69a91)); // inc qword ptr [r31-0x61d69a91] IID19601 - __ decrementq(Address(rcx, -0x7a281ac7)); // dec qword ptr [rcx-0x7a281ac7] IID19602 - __ decrementq(Address(rdx, rbx, (Address::ScaleFactor)2, -0x5866e07f)); // dec qword ptr [rdx+rbx*4-0x5866e07f] IID19603 - __ decrementq(Address(rbx, +0x4a895937)); // dec qword ptr [rbx+0x4a895937] IID19604 - __ decrementq(Address(r8, -0x2cd5a21)); // dec qword ptr [r8-0x2cd5a21] IID19605 - __ decrementq(Address(r9, r10, (Address::ScaleFactor)0, -0xe253bff)); // dec qword ptr [r9+r10*1-0xe253bff] IID19606 - __ decrementq(Address(r10, -0x3443a4ba)); // dec qword ptr [r10-0x3443a4ba] IID19607 - __ decrementq(Address(r11, r12, (Address::ScaleFactor)1, -0x2a74b7ff)); // dec qword ptr [r11+r12*2-0x2a74b7ff] IID19608 - __ decrementq(Address(r12, r13, (Address::ScaleFactor)1, -0x726d885a)); // dec qword ptr [r12+r13*2-0x726d885a] IID19609 - __ decrementq(Address(r13, r14, (Address::ScaleFactor)2, +0x34b00f7f)); // dec qword ptr [r13+r14*4+0x34b00f7f] IID19610 - __ decrementq(Address(r14, r15, (Address::ScaleFactor)0, +0x18322b97)); // dec qword ptr [r14+r15*1+0x18322b97] IID19611 - __ decrementq(Address(r15, r16, (Address::ScaleFactor)2, -0x1b8fa4f)); // dec qword ptr [r15+r16*4-0x1b8fa4f] IID19612 - __ decrementq(Address(r16, r17, (Address::ScaleFactor)2, -0x3b9aad17)); // dec qword ptr [r16+r17*4-0x3b9aad17] IID19613 - __ decrementq(Address(r17, r18, (Address::ScaleFactor)3, -0x6f28cceb)); // dec qword ptr [r17+r18*8-0x6f28cceb] IID19614 - __ decrementq(Address(r18, r19, (Address::ScaleFactor)1, +0x18184771)); // dec qword ptr [r18+r19*2+0x18184771] IID19615 - __ decrementq(Address(r19, -0x21ceb2d3)); // dec qword ptr [r19-0x21ceb2d3] IID19616 - __ decrementq(Address(r20, -0x43b5b338)); // dec qword ptr [r20-0x43b5b338] IID19617 - __ decrementq(Address(r21, +0x1bf91896)); // dec qword ptr [r21+0x1bf91896] IID19618 - __ decrementq(Address(r22, r23, (Address::ScaleFactor)0, +0x20b0e9f2)); // dec qword ptr [r22+r23*1+0x20b0e9f2] IID19619 - __ decrementq(Address(r23, r24, (Address::ScaleFactor)0, -0x4ec01539)); // dec qword ptr [r23+r24*1-0x4ec01539] IID19620 - __ decrementq(Address(r24, r25, (Address::ScaleFactor)2, -0x58064c04)); // dec qword ptr [r24+r25*4-0x58064c04] IID19621 - __ decrementq(Address(r25, r26, (Address::ScaleFactor)3, -0x16c408a0)); // dec qword ptr [r25+r26*8-0x16c408a0] IID19622 - __ decrementq(Address(r26, r27, (Address::ScaleFactor)0, -0x7d24eac1)); // dec qword ptr [r26+r27*1-0x7d24eac1] IID19623 - __ decrementq(Address(r27, r28, (Address::ScaleFactor)2, +0x6ed65429)); // dec qword ptr [r27+r28*4+0x6ed65429] IID19624 - __ decrementq(Address(r28, r29, (Address::ScaleFactor)1, -0x7e6a62bc)); // dec qword ptr [r28+r29*2-0x7e6a62bc] IID19625 - __ decrementq(Address(r29, r30, (Address::ScaleFactor)1, +0x1d9014f0)); // dec qword ptr [r29+r30*2+0x1d9014f0] IID19626 - __ decrementq(Address(r30, r31, (Address::ScaleFactor)1, -0x55d0be12)); // dec qword ptr [r30+r31*2-0x55d0be12] IID19627 - __ decrementq(Address(r31, rcx, (Address::ScaleFactor)3, +0x7386e774)); // dec qword ptr [r31+rcx*8+0x7386e774] IID19628 - __ imulq(rcx, Address(rdx, rbx, (Address::ScaleFactor)2, +0x73e006f0), 1); // imul rcx, qword ptr [rdx+rbx*4+0x73e006f0], 1 IID19629 - __ imulq(rcx, Address(rdx, rbx, (Address::ScaleFactor)1, -0x17ea86b8), 16); // imul rcx, qword ptr [rdx+rbx*2-0x17ea86b8], 16 IID19630 - __ imulq(rcx, Address(rdx, rbx, (Address::ScaleFactor)1, +0x366c0542), 256); // imul rcx, qword ptr [rdx+rbx*2+0x366c0542], 256 IID19631 - __ imulq(rcx, Address(rdx, rbx, (Address::ScaleFactor)0, +0x1e6b6680), 4096); // imul rcx, qword ptr [rdx+rbx*1+0x1e6b6680], 4096 IID19632 - __ imulq(rcx, Address(rdx, rbx, (Address::ScaleFactor)2, -0x6b2cdaca), 65536); // imul rcx, qword ptr [rdx+rbx*4-0x6b2cdaca], 65536 IID19633 - __ imulq(rcx, Address(rdx, -0x22bd049f), 1048576); // imul rcx, qword ptr [rdx-0x22bd049f], 1048576 IID19634 - __ imulq(rcx, Address(rdx, rbx, (Address::ScaleFactor)2, -0x414aac15), 16777216); // imul rcx, qword ptr [rdx+rbx*4-0x414aac15], 16777216 IID19635 - __ imulq(rcx, Address(rdx, rbx, (Address::ScaleFactor)2, +0xbc420cb), 268435456); // imul rcx, qword ptr [rdx+rbx*4+0xbc420cb], 268435456 IID19636 - __ imulq(rdx, Address(rbx, r8, (Address::ScaleFactor)0, +0x100d9aef), 1); // imul rdx, qword ptr [rbx+r8*1+0x100d9aef], 1 IID19637 - __ imulq(rdx, Address(rbx, -0x74ee35d4), 16); // imul rdx, qword ptr [rbx-0x74ee35d4], 16 IID19638 - __ imulq(rdx, Address(rbx, r8, (Address::ScaleFactor)0, -0x3bf8fc1a), 256); // imul rdx, qword ptr [rbx+r8*1-0x3bf8fc1a], 256 IID19639 - __ imulq(rdx, Address(rbx, r8, (Address::ScaleFactor)2, +0x7947840a), 4096); // imul rdx, qword ptr [rbx+r8*4+0x7947840a], 4096 IID19640 - __ imulq(rdx, Address(rbx, r8, (Address::ScaleFactor)3, -0x2cd86489), 65536); // imul rdx, qword ptr [rbx+r8*8-0x2cd86489], 65536 IID19641 - __ imulq(rdx, Address(rbx, r8, (Address::ScaleFactor)0, +0x2ce7ffef), 1048576); // imul rdx, qword ptr [rbx+r8*1+0x2ce7ffef], 1048576 IID19642 - __ imulq(rdx, Address(rbx, r8, (Address::ScaleFactor)0, -0x64d9191b), 16777216); // imul rdx, qword ptr [rbx+r8*1-0x64d9191b], 16777216 IID19643 - __ imulq(rdx, Address(rbx, r8, (Address::ScaleFactor)3, +0x2e82738a), 268435456); // imul rdx, qword ptr [rbx+r8*8+0x2e82738a], 268435456 IID19644 - __ imulq(rbx, Address(r8, r9, (Address::ScaleFactor)3, +0x2981b09f), 1); // imul rbx, qword ptr [r8+r9*8+0x2981b09f], 1 IID19645 - __ imulq(rbx, Address(r8, r9, (Address::ScaleFactor)3, +0x369b1e2f), 16); // imul rbx, qword ptr [r8+r9*8+0x369b1e2f], 16 IID19646 - __ imulq(rbx, Address(r8, r9, (Address::ScaleFactor)0, +0x4eb51b3f), 256); // imul rbx, qword ptr [r8+r9*1+0x4eb51b3f], 256 IID19647 - __ imulq(rbx, Address(r8, +0x1e5db2a9), 4096); // imul rbx, qword ptr [r8+0x1e5db2a9], 4096 IID19648 - __ imulq(rbx, Address(r8, r9, (Address::ScaleFactor)3, -0x8814dd4), 65536); // imul rbx, qword ptr [r8+r9*8-0x8814dd4], 65536 IID19649 - __ imulq(rbx, Address(r8, r9, (Address::ScaleFactor)2, -0x21b03129), 1048576); // imul rbx, qword ptr [r8+r9*4-0x21b03129], 1048576 IID19650 - __ imulq(rbx, Address(r8, r9, (Address::ScaleFactor)3, +0x684c3dda), 16777216); // imul rbx, qword ptr [r8+r9*8+0x684c3dda], 16777216 IID19651 - __ imulq(rbx, Address(r8, r9, (Address::ScaleFactor)1, -0x46bf275d), 268435456); // imul rbx, qword ptr [r8+r9*2-0x46bf275d], 268435456 IID19652 - __ imulq(r8, Address(r9, r10, (Address::ScaleFactor)1, +0x27693abf), 1); // imul r8, qword ptr [r9+r10*2+0x27693abf], 1 IID19653 - __ imulq(r8, Address(r9, r10, (Address::ScaleFactor)2, -0x23955cc3), 16); // imul r8, qword ptr [r9+r10*4-0x23955cc3], 16 IID19654 - __ imulq(r8, Address(r9, -0x48452e0e), 256); // imul r8, qword ptr [r9-0x48452e0e], 256 IID19655 - __ imulq(r8, Address(r9, r10, (Address::ScaleFactor)3, +0x4767b82a), 4096); // imul r8, qword ptr [r9+r10*8+0x4767b82a], 4096 IID19656 - __ imulq(r8, Address(r9, r10, (Address::ScaleFactor)1, -0x7c493183), 65536); // imul r8, qword ptr [r9+r10*2-0x7c493183], 65536 IID19657 - __ imulq(r8, Address(r9, r10, (Address::ScaleFactor)2, +0x3859a646), 1048576); // imul r8, qword ptr [r9+r10*4+0x3859a646], 1048576 IID19658 - __ imulq(r8, Address(r9, r10, (Address::ScaleFactor)1, +0x3a276db4), 16777216); // imul r8, qword ptr [r9+r10*2+0x3a276db4], 16777216 IID19659 - __ imulq(r8, Address(r9, r10, (Address::ScaleFactor)0, +0x47bc53b8), 268435456); // imul r8, qword ptr [r9+r10*1+0x47bc53b8], 268435456 IID19660 - __ imulq(r9, Address(r10, +0xb819796), 1); // imul r9, qword ptr [r10+0xb819796], 1 IID19661 - __ imulq(r9, Address(r10, r11, (Address::ScaleFactor)1, -0x44674ac3), 16); // imul r9, qword ptr [r10+r11*2-0x44674ac3], 16 IID19662 - __ imulq(r9, Address(r10, r11, (Address::ScaleFactor)2, -0x78484875), 256); // imul r9, qword ptr [r10+r11*4-0x78484875], 256 IID19663 - __ imulq(r9, Address(r10, r11, (Address::ScaleFactor)3, -0x25373147), 4096); // imul r9, qword ptr [r10+r11*8-0x25373147], 4096 IID19664 - __ imulq(r9, Address(r10, r11, (Address::ScaleFactor)2, +0x5f2f6119), 65536); // imul r9, qword ptr [r10+r11*4+0x5f2f6119], 65536 IID19665 - __ imulq(r9, Address(r10, r11, (Address::ScaleFactor)1, +0x72a2c2a0), 1048576); // imul r9, qword ptr [r10+r11*2+0x72a2c2a0], 1048576 IID19666 - __ imulq(r9, Address(r10, r11, (Address::ScaleFactor)1, -0x1d6d8bd5), 16777216); // imul r9, qword ptr [r10+r11*2-0x1d6d8bd5], 16777216 IID19667 - __ imulq(r9, Address(r10, r11, (Address::ScaleFactor)3, -0x53861d9a), 268435456); // imul r9, qword ptr [r10+r11*8-0x53861d9a], 268435456 IID19668 - __ imulq(r10, Address(r11, r12, (Address::ScaleFactor)1, +0x67f73b99), 1); // imul r10, qword ptr [r11+r12*2+0x67f73b99], 1 IID19669 - __ imulq(r10, Address(r11, r12, (Address::ScaleFactor)0, +0x10b90145), 16); // imul r10, qword ptr [r11+r12*1+0x10b90145], 16 IID19670 - __ imulq(r10, Address(r11, r12, (Address::ScaleFactor)2, -0xd364704), 256); // imul r10, qword ptr [r11+r12*4-0xd364704], 256 IID19671 - __ imulq(r10, Address(r11, r12, (Address::ScaleFactor)0, +0x18dd82f9), 4096); // imul r10, qword ptr [r11+r12*1+0x18dd82f9], 4096 IID19672 - __ imulq(r10, Address(r11, r12, (Address::ScaleFactor)1, +0x21f1cdf0), 65536); // imul r10, qword ptr [r11+r12*2+0x21f1cdf0], 65536 IID19673 - __ imulq(r10, Address(r11, r12, (Address::ScaleFactor)0, +0x2e08db4e), 1048576); // imul r10, qword ptr [r11+r12*1+0x2e08db4e], 1048576 IID19674 - __ imulq(r10, Address(r11, r12, (Address::ScaleFactor)3, +0x5956fe33), 16777216); // imul r10, qword ptr [r11+r12*8+0x5956fe33], 16777216 IID19675 - __ imulq(r10, Address(r11, -0x49dca84e), 268435456); // imul r10, qword ptr [r11-0x49dca84e], 268435456 IID19676 - __ imulq(r11, Address(r12, r13, (Address::ScaleFactor)2, +0x54933608), 1); // imul r11, qword ptr [r12+r13*4+0x54933608], 1 IID19677 - __ imulq(r11, Address(r12, r13, (Address::ScaleFactor)3, +0x48bb278a), 16); // imul r11, qword ptr [r12+r13*8+0x48bb278a], 16 IID19678 - __ imulq(r11, Address(r12, -0x245692e), 256); // imul r11, qword ptr [r12-0x245692e], 256 IID19679 - __ imulq(r11, Address(r12, -0x4006968a), 4096); // imul r11, qword ptr [r12-0x4006968a], 4096 IID19680 - __ imulq(r11, Address(r12, r13, (Address::ScaleFactor)1, +0x6cfad214), 65536); // imul r11, qword ptr [r12+r13*2+0x6cfad214], 65536 IID19681 - __ imulq(r11, Address(r12, r13, (Address::ScaleFactor)3, +0x4512b7a1), 1048576); // imul r11, qword ptr [r12+r13*8+0x4512b7a1], 1048576 IID19682 - __ imulq(r11, Address(r12, r13, (Address::ScaleFactor)0, -0x4f6ad229), 16777216); // imul r11, qword ptr [r12+r13*1-0x4f6ad229], 16777216 IID19683 - __ imulq(r11, Address(r12, r13, (Address::ScaleFactor)2, -0x706b1d57), 268435456); // imul r11, qword ptr [r12+r13*4-0x706b1d57], 268435456 IID19684 - __ imulq(r12, Address(r13, r14, (Address::ScaleFactor)1, -0x25730a4d), 1); // imul r12, qword ptr [r13+r14*2-0x25730a4d], 1 IID19685 - __ imulq(r12, Address(r13, r14, (Address::ScaleFactor)3, +0x2b1ffd9e), 16); // imul r12, qword ptr [r13+r14*8+0x2b1ffd9e], 16 IID19686 - __ imulq(r12, Address(r13, r14, (Address::ScaleFactor)2, +0x119ae004), 256); // imul r12, qword ptr [r13+r14*4+0x119ae004], 256 IID19687 - __ imulq(r12, Address(r13, -0xd403831), 4096); // imul r12, qword ptr [r13-0xd403831], 4096 IID19688 - __ imulq(r12, Address(r13, r14, (Address::ScaleFactor)3, +0x369b188a), 65536); // imul r12, qword ptr [r13+r14*8+0x369b188a], 65536 IID19689 - __ imulq(r12, Address(r13, r14, (Address::ScaleFactor)3, +0x30ca636f), 1048576); // imul r12, qword ptr [r13+r14*8+0x30ca636f], 1048576 IID19690 - __ imulq(r12, Address(r13, r14, (Address::ScaleFactor)1, +0x4f7a5d5), 16777216); // imul r12, qword ptr [r13+r14*2+0x4f7a5d5], 16777216 IID19691 - __ imulq(r12, Address(r13, r14, (Address::ScaleFactor)3, -0x1c528a90), 268435456); // imul r12, qword ptr [r13+r14*8-0x1c528a90], 268435456 IID19692 - __ imulq(r13, Address(r14, r15, (Address::ScaleFactor)3, -0xf8072b0), 1); // imul r13, qword ptr [r14+r15*8-0xf8072b0], 1 IID19693 - __ imulq(r13, Address(r14, r15, (Address::ScaleFactor)0, -0x605dd55c), 16); // imul r13, qword ptr [r14+r15*1-0x605dd55c], 16 IID19694 - __ imulq(r13, Address(r14, r15, (Address::ScaleFactor)2, +0x62106fd5), 256); // imul r13, qword ptr [r14+r15*4+0x62106fd5], 256 IID19695 - __ imulq(r13, Address(r14, r15, (Address::ScaleFactor)3, +0x441942d0), 4096); // imul r13, qword ptr [r14+r15*8+0x441942d0], 4096 IID19696 - __ imulq(r13, Address(r14, r15, (Address::ScaleFactor)3, -0x537e5d5b), 65536); // imul r13, qword ptr [r14+r15*8-0x537e5d5b], 65536 IID19697 - __ imulq(r13, Address(r14, r15, (Address::ScaleFactor)0, -0x3a025f81), 1048576); // imul r13, qword ptr [r14+r15*1-0x3a025f81], 1048576 IID19698 - __ imulq(r13, Address(r14, r15, (Address::ScaleFactor)0, -0x2fa80c45), 16777216); // imul r13, qword ptr [r14+r15*1-0x2fa80c45], 16777216 IID19699 - __ imulq(r13, Address(r14, r15, (Address::ScaleFactor)1, +0x4f311e3e), 268435456); // imul r13, qword ptr [r14+r15*2+0x4f311e3e], 268435456 IID19700 - __ imulq(r14, Address(r15, +0x3a30dbb6), 1); // imul r14, qword ptr [r15+0x3a30dbb6], 1 IID19701 - __ imulq(r14, Address(r15, r16, (Address::ScaleFactor)0, +0x461f22bc), 16); // imul r14, qword ptr [r15+r16*1+0x461f22bc], 16 IID19702 - __ imulq(r14, Address(r15, r16, (Address::ScaleFactor)1, +0x3b6862dd), 256); // imul r14, qword ptr [r15+r16*2+0x3b6862dd], 256 IID19703 - __ imulq(r14, Address(r15, r16, (Address::ScaleFactor)2, +0x7b411aff), 4096); // imul r14, qword ptr [r15+r16*4+0x7b411aff], 4096 IID19704 - __ imulq(r14, Address(r15, r16, (Address::ScaleFactor)0, +0x4bc5eae7), 65536); // imul r14, qword ptr [r15+r16*1+0x4bc5eae7], 65536 IID19705 - __ imulq(r14, Address(r15, r16, (Address::ScaleFactor)2, +0x57b0e91), 1048576); // imul r14, qword ptr [r15+r16*4+0x57b0e91], 1048576 IID19706 - __ imulq(r14, Address(r15, r16, (Address::ScaleFactor)0, +0x7cacd795), 16777216); // imul r14, qword ptr [r15+r16*1+0x7cacd795], 16777216 IID19707 - __ imulq(r14, Address(r15, -0x1aeb7d94), 268435456); // imul r14, qword ptr [r15-0x1aeb7d94], 268435456 IID19708 - __ imulq(r15, Address(r16, r17, (Address::ScaleFactor)3, -0x6a88263a), 1); // imul r15, qword ptr [r16+r17*8-0x6a88263a], 1 IID19709 - __ imulq(r15, Address(r16, r17, (Address::ScaleFactor)2, +0x1690d896), 16); // imul r15, qword ptr [r16+r17*4+0x1690d896], 16 IID19710 - __ imulq(r15, Address(r16, r17, (Address::ScaleFactor)3, -0x4fb67afa), 256); // imul r15, qword ptr [r16+r17*8-0x4fb67afa], 256 IID19711 - __ imulq(r15, Address(r16, r17, (Address::ScaleFactor)3, +0x30ffd274), 4096); // imul r15, qword ptr [r16+r17*8+0x30ffd274], 4096 IID19712 - __ imulq(r15, Address(r16, r17, (Address::ScaleFactor)1, +0x3575836f), 65536); // imul r15, qword ptr [r16+r17*2+0x3575836f], 65536 IID19713 - __ imulq(r15, Address(r16, r17, (Address::ScaleFactor)0, +0x9f09fcd), 1048576); // imul r15, qword ptr [r16+r17*1+0x9f09fcd], 1048576 IID19714 - __ imulq(r15, Address(r16, r17, (Address::ScaleFactor)1, -0x1d6201a3), 16777216); // imul r15, qword ptr [r16+r17*2-0x1d6201a3], 16777216 IID19715 - __ imulq(r15, Address(r16, r17, (Address::ScaleFactor)3, +0x6fb266f2), 268435456); // imul r15, qword ptr [r16+r17*8+0x6fb266f2], 268435456 IID19716 - __ imulq(r16, Address(r17, r18, (Address::ScaleFactor)0, -0x1bf4aac2), 1); // imul r16, qword ptr [r17+r18*1-0x1bf4aac2], 1 IID19717 - __ imulq(r16, Address(r17, r18, (Address::ScaleFactor)2, -0x704c3c5d), 16); // imul r16, qword ptr [r17+r18*4-0x704c3c5d], 16 IID19718 - __ imulq(r16, Address(r17, r18, (Address::ScaleFactor)0, -0x334fb589), 256); // imul r16, qword ptr [r17+r18*1-0x334fb589], 256 IID19719 - __ imulq(r16, Address(r17, r18, (Address::ScaleFactor)3, +0x5fb1f0bd), 4096); // imul r16, qword ptr [r17+r18*8+0x5fb1f0bd], 4096 IID19720 - __ imulq(r16, Address(r17, r18, (Address::ScaleFactor)2, -0x37e52c85), 65536); // imul r16, qword ptr [r17+r18*4-0x37e52c85], 65536 IID19721 - __ imulq(r16, Address(r17, r18, (Address::ScaleFactor)1, +0x70a66cb9), 1048576); // imul r16, qword ptr [r17+r18*2+0x70a66cb9], 1048576 IID19722 - __ imulq(r16, Address(r17, r18, (Address::ScaleFactor)0, -0x6a5bf63a), 16777216); // imul r16, qword ptr [r17+r18*1-0x6a5bf63a], 16777216 IID19723 - __ imulq(r16, Address(r17, r18, (Address::ScaleFactor)0, -0x35f7ed33), 268435456); // imul r16, qword ptr [r17+r18*1-0x35f7ed33], 268435456 IID19724 - __ imulq(r17, Address(r18, r19, (Address::ScaleFactor)0, -0x56ed1578), 1); // imul r17, qword ptr [r18+r19*1-0x56ed1578], 1 IID19725 - __ imulq(r17, Address(r18, r19, (Address::ScaleFactor)3, +0x2163c04c), 16); // imul r17, qword ptr [r18+r19*8+0x2163c04c], 16 IID19726 - __ imulq(r17, Address(r18, r19, (Address::ScaleFactor)1, -0x2da4c145), 256); // imul r17, qword ptr [r18+r19*2-0x2da4c145], 256 IID19727 - __ imulq(r17, Address(r18, r19, (Address::ScaleFactor)1, -0x2e6ace26), 4096); // imul r17, qword ptr [r18+r19*2-0x2e6ace26], 4096 IID19728 - __ imulq(r17, Address(r18, r19, (Address::ScaleFactor)3, -0x3aee3474), 65536); // imul r17, qword ptr [r18+r19*8-0x3aee3474], 65536 IID19729 - __ imulq(r17, Address(r18, r19, (Address::ScaleFactor)3, +0x72233503), 1048576); // imul r17, qword ptr [r18+r19*8+0x72233503], 1048576 IID19730 - __ imulq(r17, Address(r18, r19, (Address::ScaleFactor)2, -0x4ada94b7), 16777216); // imul r17, qword ptr [r18+r19*4-0x4ada94b7], 16777216 IID19731 - __ imulq(r17, Address(r18, r19, (Address::ScaleFactor)1, -0x3237725f), 268435456); // imul r17, qword ptr [r18+r19*2-0x3237725f], 268435456 IID19732 - __ imulq(r18, Address(r19, r20, (Address::ScaleFactor)2, +0x41f36fcf), 1); // imul r18, qword ptr [r19+r20*4+0x41f36fcf], 1 IID19733 - __ imulq(r18, Address(r19, r20, (Address::ScaleFactor)1, +0x3d8addf2), 16); // imul r18, qword ptr [r19+r20*2+0x3d8addf2], 16 IID19734 - __ imulq(r18, Address(r19, r20, (Address::ScaleFactor)1, +0x5bb711a3), 256); // imul r18, qword ptr [r19+r20*2+0x5bb711a3], 256 IID19735 - __ imulq(r18, Address(r19, r20, (Address::ScaleFactor)2, +0x4b03a0fb), 4096); // imul r18, qword ptr [r19+r20*4+0x4b03a0fb], 4096 IID19736 - __ imulq(r18, Address(r19, r20, (Address::ScaleFactor)2, -0x59d85bcc), 65536); // imul r18, qword ptr [r19+r20*4-0x59d85bcc], 65536 IID19737 - __ imulq(r18, Address(r19, +0xe777d36), 1048576); // imul r18, qword ptr [r19+0xe777d36], 1048576 IID19738 - __ imulq(r18, Address(r19, r20, (Address::ScaleFactor)2, +0x103970b0), 16777216); // imul r18, qword ptr [r19+r20*4+0x103970b0], 16777216 IID19739 - __ imulq(r18, Address(r19, +0x6a628a83), 268435456); // imul r18, qword ptr [r19+0x6a628a83], 268435456 IID19740 - __ imulq(r19, Address(r20, r21, (Address::ScaleFactor)1, -0x69a47cd1), 1); // imul r19, qword ptr [r20+r21*2-0x69a47cd1], 1 IID19741 - __ imulq(r19, Address(r20, r21, (Address::ScaleFactor)0, +0x32060815), 16); // imul r19, qword ptr [r20+r21*1+0x32060815], 16 IID19742 - __ imulq(r19, Address(r20, +0x3dff2281), 256); // imul r19, qword ptr [r20+0x3dff2281], 256 IID19743 - __ imulq(r19, Address(r20, r21, (Address::ScaleFactor)3, -0x3e79f073), 4096); // imul r19, qword ptr [r20+r21*8-0x3e79f073], 4096 IID19744 - __ imulq(r19, Address(r20, r21, (Address::ScaleFactor)1, +0x138cfd42), 65536); // imul r19, qword ptr [r20+r21*2+0x138cfd42], 65536 IID19745 - __ imulq(r19, Address(r20, r21, (Address::ScaleFactor)2, +0x630b1bde), 1048576); // imul r19, qword ptr [r20+r21*4+0x630b1bde], 1048576 IID19746 - __ imulq(r19, Address(r20, r21, (Address::ScaleFactor)1, +0x7e9a3a5), 16777216); // imul r19, qword ptr [r20+r21*2+0x7e9a3a5], 16777216 IID19747 - __ imulq(r19, Address(r20, r21, (Address::ScaleFactor)2, +0x3b6aeacc), 268435456); // imul r19, qword ptr [r20+r21*4+0x3b6aeacc], 268435456 IID19748 - __ imulq(r20, Address(r21, r22, (Address::ScaleFactor)2, +0x4fd4a65c), 1); // imul r20, qword ptr [r21+r22*4+0x4fd4a65c], 1 IID19749 - __ imulq(r20, Address(r21, r22, (Address::ScaleFactor)0, +0x5c17493), 16); // imul r20, qword ptr [r21+r22*1+0x5c17493], 16 IID19750 - __ imulq(r20, Address(r21, r22, (Address::ScaleFactor)1, +0x296c2263), 256); // imul r20, qword ptr [r21+r22*2+0x296c2263], 256 IID19751 - __ imulq(r20, Address(r21, -0x68ff96a9), 4096); // imul r20, qword ptr [r21-0x68ff96a9], 4096 IID19752 - __ imulq(r20, Address(r21, +0x6b8d15a0), 65536); // imul r20, qword ptr [r21+0x6b8d15a0], 65536 IID19753 - __ imulq(r20, Address(r21, r22, (Address::ScaleFactor)3, +0x7605ec99), 1048576); // imul r20, qword ptr [r21+r22*8+0x7605ec99], 1048576 IID19754 - __ imulq(r20, Address(r21, r22, (Address::ScaleFactor)0, -0x3dbdfa0), 16777216); // imul r20, qword ptr [r21+r22*1-0x3dbdfa0], 16777216 IID19755 - __ imulq(r20, Address(r21, r22, (Address::ScaleFactor)1, +0x6e19975c), 268435456); // imul r20, qword ptr [r21+r22*2+0x6e19975c], 268435456 IID19756 - __ imulq(r21, Address(r22, r23, (Address::ScaleFactor)1, +0x5f38bb94), 1); // imul r21, qword ptr [r22+r23*2+0x5f38bb94], 1 IID19757 - __ imulq(r21, Address(r22, r23, (Address::ScaleFactor)1, +0x326d812f), 16); // imul r21, qword ptr [r22+r23*2+0x326d812f], 16 IID19758 - __ imulq(r21, Address(r22, +0x72bdb1d5), 256); // imul r21, qword ptr [r22+0x72bdb1d5], 256 IID19759 - __ imulq(r21, Address(r22, r23, (Address::ScaleFactor)1, +0x74475fcc), 4096); // imul r21, qword ptr [r22+r23*2+0x74475fcc], 4096 IID19760 - __ imulq(r21, Address(r22, -0xd1b65d2), 65536); // imul r21, qword ptr [r22-0xd1b65d2], 65536 IID19761 - __ imulq(r21, Address(r22, r23, (Address::ScaleFactor)1, -0x3aa1cdf2), 1048576); // imul r21, qword ptr [r22+r23*2-0x3aa1cdf2], 1048576 IID19762 - __ imulq(r21, Address(r22, r23, (Address::ScaleFactor)0, -0xe70e0bd), 16777216); // imul r21, qword ptr [r22+r23*1-0xe70e0bd], 16777216 IID19763 - __ imulq(r21, Address(r22, r23, (Address::ScaleFactor)3, +0xc7bd8eb), 268435456); // imul r21, qword ptr [r22+r23*8+0xc7bd8eb], 268435456 IID19764 - __ imulq(r22, Address(r23, r24, (Address::ScaleFactor)1, +0x286286c7), 1); // imul r22, qword ptr [r23+r24*2+0x286286c7], 1 IID19765 - __ imulq(r22, Address(r23, r24, (Address::ScaleFactor)0, -0x64050376), 16); // imul r22, qword ptr [r23+r24*1-0x64050376], 16 IID19766 - __ imulq(r22, Address(r23, r24, (Address::ScaleFactor)0, -0xcc23322), 256); // imul r22, qword ptr [r23+r24*1-0xcc23322], 256 IID19767 - __ imulq(r22, Address(r23, r24, (Address::ScaleFactor)3, +0x23d1a7f0), 4096); // imul r22, qword ptr [r23+r24*8+0x23d1a7f0], 4096 IID19768 - __ imulq(r22, Address(r23, r24, (Address::ScaleFactor)0, +0x2b948346), 65536); // imul r22, qword ptr [r23+r24*1+0x2b948346], 65536 IID19769 - __ imulq(r22, Address(r23, r24, (Address::ScaleFactor)2, -0x604ee43e), 1048576); // imul r22, qword ptr [r23+r24*4-0x604ee43e], 1048576 IID19770 - __ imulq(r22, Address(r23, -0x3b290aea), 16777216); // imul r22, qword ptr [r23-0x3b290aea], 16777216 IID19771 - __ imulq(r22, Address(r23, r24, (Address::ScaleFactor)1, +0xd8b8365), 268435456); // imul r22, qword ptr [r23+r24*2+0xd8b8365], 268435456 IID19772 - __ imulq(r23, Address(r24, -0x6c4a7734), 1); // imul r23, qword ptr [r24-0x6c4a7734], 1 IID19773 - __ imulq(r23, Address(r24, r25, (Address::ScaleFactor)1, +0x18bc0dbb), 16); // imul r23, qword ptr [r24+r25*2+0x18bc0dbb], 16 IID19774 - __ imulq(r23, Address(r24, r25, (Address::ScaleFactor)3, +0x5fa767d5), 256); // imul r23, qword ptr [r24+r25*8+0x5fa767d5], 256 IID19775 - __ imulq(r23, Address(r24, r25, (Address::ScaleFactor)3, +0x4f8ea15d), 4096); // imul r23, qword ptr [r24+r25*8+0x4f8ea15d], 4096 IID19776 - __ imulq(r23, Address(r24, r25, (Address::ScaleFactor)2, -0x4ce36caf), 65536); // imul r23, qword ptr [r24+r25*4-0x4ce36caf], 65536 IID19777 - __ imulq(r23, Address(r24, r25, (Address::ScaleFactor)2, +0x3d930e9), 1048576); // imul r23, qword ptr [r24+r25*4+0x3d930e9], 1048576 IID19778 - __ imulq(r23, Address(r24, r25, (Address::ScaleFactor)0, +0x290b41b4), 16777216); // imul r23, qword ptr [r24+r25*1+0x290b41b4], 16777216 IID19779 - __ imulq(r23, Address(r24, r25, (Address::ScaleFactor)2, +0x246b4b8d), 268435456); // imul r23, qword ptr [r24+r25*4+0x246b4b8d], 268435456 IID19780 - __ imulq(r24, Address(r25, r26, (Address::ScaleFactor)0, +0x1da57e50), 1); // imul r24, qword ptr [r25+r26*1+0x1da57e50], 1 IID19781 - __ imulq(r24, Address(r25, r26, (Address::ScaleFactor)1, -0x39eaf2b2), 16); // imul r24, qword ptr [r25+r26*2-0x39eaf2b2], 16 IID19782 - __ imulq(r24, Address(r25, r26, (Address::ScaleFactor)3, -0x202f1ae7), 256); // imul r24, qword ptr [r25+r26*8-0x202f1ae7], 256 IID19783 - __ imulq(r24, Address(r25, r26, (Address::ScaleFactor)0, +0x3839fe3e), 4096); // imul r24, qword ptr [r25+r26*1+0x3839fe3e], 4096 IID19784 - __ imulq(r24, Address(r25, r26, (Address::ScaleFactor)3, -0x20d1c887), 65536); // imul r24, qword ptr [r25+r26*8-0x20d1c887], 65536 IID19785 - __ imulq(r24, Address(r25, +0x70abc26d), 1048576); // imul r24, qword ptr [r25+0x70abc26d], 1048576 IID19786 - __ imulq(r24, Address(r25, -0x2c24df07), 16777216); // imul r24, qword ptr [r25-0x2c24df07], 16777216 IID19787 - __ imulq(r24, Address(r25, r26, (Address::ScaleFactor)0, -0x60ef49e6), 268435456); // imul r24, qword ptr [r25+r26*1-0x60ef49e6], 268435456 IID19788 - __ imulq(r25, Address(r26, r27, (Address::ScaleFactor)3, +0x2192d57c), 1); // imul r25, qword ptr [r26+r27*8+0x2192d57c], 1 IID19789 - __ imulq(r25, Address(r26, r27, (Address::ScaleFactor)3, +0x570cee66), 16); // imul r25, qword ptr [r26+r27*8+0x570cee66], 16 IID19790 - __ imulq(r25, Address(r26, r27, (Address::ScaleFactor)1, +0x5e5ddf5c), 256); // imul r25, qword ptr [r26+r27*2+0x5e5ddf5c], 256 IID19791 - __ imulq(r25, Address(r26, r27, (Address::ScaleFactor)2, -0x4848d208), 4096); // imul r25, qword ptr [r26+r27*4-0x4848d208], 4096 IID19792 - __ imulq(r25, Address(r26, -0x3f62535a), 65536); // imul r25, qword ptr [r26-0x3f62535a], 65536 IID19793 - __ imulq(r25, Address(r26, r27, (Address::ScaleFactor)2, +0x51275c16), 1048576); // imul r25, qword ptr [r26+r27*4+0x51275c16], 1048576 IID19794 - __ imulq(r25, Address(r26, r27, (Address::ScaleFactor)3, +0x4ee607c3), 16777216); // imul r25, qword ptr [r26+r27*8+0x4ee607c3], 16777216 IID19795 - __ imulq(r25, Address(r26, r27, (Address::ScaleFactor)0, +0x64a59cc9), 268435456); // imul r25, qword ptr [r26+r27*1+0x64a59cc9], 268435456 IID19796 - __ imulq(r26, Address(r27, +0x66f0fa41), 1); // imul r26, qword ptr [r27+0x66f0fa41], 1 IID19797 - __ imulq(r26, Address(r27, r28, (Address::ScaleFactor)3, -0x5f494618), 16); // imul r26, qword ptr [r27+r28*8-0x5f494618], 16 IID19798 - __ imulq(r26, Address(r27, -0x7aaa5b67), 256); // imul r26, qword ptr [r27-0x7aaa5b67], 256 IID19799 - __ imulq(r26, Address(r27, r28, (Address::ScaleFactor)1, -0x564b593d), 4096); // imul r26, qword ptr [r27+r28*2-0x564b593d], 4096 IID19800 - __ imulq(r26, Address(r27, r28, (Address::ScaleFactor)1, +0x6b7aa877), 65536); // imul r26, qword ptr [r27+r28*2+0x6b7aa877], 65536 IID19801 - __ imulq(r26, Address(r27, r28, (Address::ScaleFactor)3, +0x116aa971), 1048576); // imul r26, qword ptr [r27+r28*8+0x116aa971], 1048576 IID19802 - __ imulq(r26, Address(r27, r28, (Address::ScaleFactor)2, -0x54381dc7), 16777216); // imul r26, qword ptr [r27+r28*4-0x54381dc7], 16777216 IID19803 - __ imulq(r26, Address(r27, r28, (Address::ScaleFactor)2, -0x28b23fa), 268435456); // imul r26, qword ptr [r27+r28*4-0x28b23fa], 268435456 IID19804 - __ imulq(r27, Address(r28, -0x4e7fb611), 1); // imul r27, qword ptr [r28-0x4e7fb611], 1 IID19805 - __ imulq(r27, Address(r28, r29, (Address::ScaleFactor)2, +0x386cae44), 16); // imul r27, qword ptr [r28+r29*4+0x386cae44], 16 IID19806 - __ imulq(r27, Address(r28, -0x255406a9), 256); // imul r27, qword ptr [r28-0x255406a9], 256 IID19807 - __ imulq(r27, Address(r28, r29, (Address::ScaleFactor)1, +0xb58fec2), 4096); // imul r27, qword ptr [r28+r29*2+0xb58fec2], 4096 IID19808 - __ imulq(r27, Address(r28, r29, (Address::ScaleFactor)0, +0xda6df86), 65536); // imul r27, qword ptr [r28+r29*1+0xda6df86], 65536 IID19809 - __ imulq(r27, Address(r28, r29, (Address::ScaleFactor)1, +0x448bec94), 1048576); // imul r27, qword ptr [r28+r29*2+0x448bec94], 1048576 IID19810 - __ imulq(r27, Address(r28, r29, (Address::ScaleFactor)3, -0x74409b3b), 16777216); // imul r27, qword ptr [r28+r29*8-0x74409b3b], 16777216 IID19811 - __ imulq(r27, Address(r28, r29, (Address::ScaleFactor)0, +0x68ef356d), 268435456); // imul r27, qword ptr [r28+r29*1+0x68ef356d], 268435456 IID19812 - __ imulq(r28, Address(r29, r30, (Address::ScaleFactor)2, -0x30566fa8), 1); // imul r28, qword ptr [r29+r30*4-0x30566fa8], 1 IID19813 - __ imulq(r28, Address(r29, r30, (Address::ScaleFactor)2, -0x25e8b78d), 16); // imul r28, qword ptr [r29+r30*4-0x25e8b78d], 16 IID19814 - __ imulq(r28, Address(r29, r30, (Address::ScaleFactor)2, +0x1f4f5858), 256); // imul r28, qword ptr [r29+r30*4+0x1f4f5858], 256 IID19815 - __ imulq(r28, Address(r29, r30, (Address::ScaleFactor)0, +0x3c3050c2), 4096); // imul r28, qword ptr [r29+r30*1+0x3c3050c2], 4096 IID19816 - __ imulq(r28, Address(r29, +0x1d22cbc3), 65536); // imul r28, qword ptr [r29+0x1d22cbc3], 65536 IID19817 - __ imulq(r28, Address(r29, r30, (Address::ScaleFactor)2, -0x6e4684fd), 1048576); // imul r28, qword ptr [r29+r30*4-0x6e4684fd], 1048576 IID19818 - __ imulq(r28, Address(r29, r30, (Address::ScaleFactor)1, +0xa85a6e4), 16777216); // imul r28, qword ptr [r29+r30*2+0xa85a6e4], 16777216 IID19819 - __ imulq(r28, Address(r29, r30, (Address::ScaleFactor)3, -0x5292cbbd), 268435456); // imul r28, qword ptr [r29+r30*8-0x5292cbbd], 268435456 IID19820 - __ imulq(r29, Address(r30, r31, (Address::ScaleFactor)2, +0x2532b9f4), 1); // imul r29, qword ptr [r30+r31*4+0x2532b9f4], 1 IID19821 - __ imulq(r29, Address(r30, r31, (Address::ScaleFactor)2, +0x77c1974c), 16); // imul r29, qword ptr [r30+r31*4+0x77c1974c], 16 IID19822 - __ imulq(r29, Address(r30, r31, (Address::ScaleFactor)1, +0x581be5be), 256); // imul r29, qword ptr [r30+r31*2+0x581be5be], 256 IID19823 - __ imulq(r29, Address(r30, -0x6a2b07f3), 4096); // imul r29, qword ptr [r30-0x6a2b07f3], 4096 IID19824 - __ imulq(r29, Address(r30, r31, (Address::ScaleFactor)1, -0x2015b0ce), 65536); // imul r29, qword ptr [r30+r31*2-0x2015b0ce], 65536 IID19825 - __ imulq(r29, Address(r30, r31, (Address::ScaleFactor)1, -0x42bde77f), 1048576); // imul r29, qword ptr [r30+r31*2-0x42bde77f], 1048576 IID19826 - __ imulq(r29, Address(r30, r31, (Address::ScaleFactor)3, -0x4d332307), 16777216); // imul r29, qword ptr [r30+r31*8-0x4d332307], 16777216 IID19827 - __ imulq(r29, Address(r30, r31, (Address::ScaleFactor)3, +0x805f1b6), 268435456); // imul r29, qword ptr [r30+r31*8+0x805f1b6], 268435456 IID19828 - __ imulq(r30, Address(r31, rcx, (Address::ScaleFactor)3, +0xb2234c0), 1); // imul r30, qword ptr [r31+rcx*8+0xb2234c0], 1 IID19829 - __ imulq(r30, Address(r31, +0x30d2aa2f), 16); // imul r30, qword ptr [r31+0x30d2aa2f], 16 IID19830 - __ imulq(r30, Address(r31, -0x63cffac4), 256); // imul r30, qword ptr [r31-0x63cffac4], 256 IID19831 - __ imulq(r30, Address(r31, +0x56270ab3), 4096); // imul r30, qword ptr [r31+0x56270ab3], 4096 IID19832 - __ imulq(r30, Address(r31, rcx, (Address::ScaleFactor)0, -0x176aa195), 65536); // imul r30, qword ptr [r31+rcx*1-0x176aa195], 65536 IID19833 - __ imulq(r30, Address(r31, rcx, (Address::ScaleFactor)2, -0x6b9bf14e), 1048576); // imul r30, qword ptr [r31+rcx*4-0x6b9bf14e], 1048576 IID19834 - __ imulq(r30, Address(r31, rcx, (Address::ScaleFactor)1, -0x59cdadfe), 16777216); // imul r30, qword ptr [r31+rcx*2-0x59cdadfe], 16777216 IID19835 - __ imulq(r30, Address(r31, rcx, (Address::ScaleFactor)3, +0x62c710cc), 268435456); // imul r30, qword ptr [r31+rcx*8+0x62c710cc], 268435456 IID19836 - __ imulq(r31, Address(rcx, +0x2ba147ee), 1); // imul r31, qword ptr [rcx+0x2ba147ee], 1 IID19837 - __ imulq(r31, Address(rcx, rdx, (Address::ScaleFactor)1, -0xafc2246), 16); // imul r31, qword ptr [rcx+rdx*2-0xafc2246], 16 IID19838 - __ imulq(r31, Address(rcx, rdx, (Address::ScaleFactor)2, -0x7720fbb), 256); // imul r31, qword ptr [rcx+rdx*4-0x7720fbb], 256 IID19839 - __ imulq(r31, Address(rcx, rdx, (Address::ScaleFactor)1, -0x4a758904), 4096); // imul r31, qword ptr [rcx+rdx*2-0x4a758904], 4096 IID19840 - __ imulq(r31, Address(rcx, rdx, (Address::ScaleFactor)3, -0x3ca7b5cd), 65536); // imul r31, qword ptr [rcx+rdx*8-0x3ca7b5cd], 65536 IID19841 - __ imulq(r31, Address(rcx, rdx, (Address::ScaleFactor)2, +0x4605ed66), 1048576); // imul r31, qword ptr [rcx+rdx*4+0x4605ed66], 1048576 IID19842 - __ imulq(r31, Address(rcx, rdx, (Address::ScaleFactor)1, -0x28187b3a), 16777216); // imul r31, qword ptr [rcx+rdx*2-0x28187b3a], 16777216 IID19843 - __ imulq(r31, Address(rcx, +0x30c0b852), 268435456); // imul r31, qword ptr [rcx+0x30c0b852], 268435456 IID19844 - __ imulq(rcx, rdx, 1); // imul rcx, rdx, 1 IID19845 - __ imulq(rcx, rdx, 16); // imul rcx, rdx, 16 IID19846 - __ imulq(rcx, rdx, 256); // imul rcx, rdx, 256 IID19847 - __ imulq(rcx, rdx, 4096); // imul rcx, rdx, 4096 IID19848 - __ imulq(rcx, rdx, 65536); // imul rcx, rdx, 65536 IID19849 - __ imulq(rcx, rdx, 1048576); // imul rcx, rdx, 1048576 IID19850 - __ imulq(rcx, rdx, 16777216); // imul rcx, rdx, 16777216 IID19851 - __ imulq(rcx, rdx, 268435456); // imul rcx, rdx, 268435456 IID19852 - __ imulq(rdx, rbx, 1); // imul rdx, rbx, 1 IID19853 - __ imulq(rdx, rbx, 16); // imul rdx, rbx, 16 IID19854 - __ imulq(rdx, rbx, 256); // imul rdx, rbx, 256 IID19855 - __ imulq(rdx, rbx, 4096); // imul rdx, rbx, 4096 IID19856 - __ imulq(rdx, rbx, 65536); // imul rdx, rbx, 65536 IID19857 - __ imulq(rdx, rbx, 1048576); // imul rdx, rbx, 1048576 IID19858 - __ imulq(rdx, rbx, 16777216); // imul rdx, rbx, 16777216 IID19859 - __ imulq(rdx, rbx, 268435456); // imul rdx, rbx, 268435456 IID19860 - __ imulq(rbx, r8, 1); // imul rbx, r8, 1 IID19861 - __ imulq(rbx, r8, 16); // imul rbx, r8, 16 IID19862 - __ imulq(rbx, r8, 256); // imul rbx, r8, 256 IID19863 - __ imulq(rbx, r8, 4096); // imul rbx, r8, 4096 IID19864 - __ imulq(rbx, r8, 65536); // imul rbx, r8, 65536 IID19865 - __ imulq(rbx, r8, 1048576); // imul rbx, r8, 1048576 IID19866 - __ imulq(rbx, r8, 16777216); // imul rbx, r8, 16777216 IID19867 - __ imulq(rbx, r8, 268435456); // imul rbx, r8, 268435456 IID19868 - __ imulq(r8, r9, 1); // imul r8, r9, 1 IID19869 - __ imulq(r8, r9, 16); // imul r8, r9, 16 IID19870 - __ imulq(r8, r9, 256); // imul r8, r9, 256 IID19871 - __ imulq(r8, r9, 4096); // imul r8, r9, 4096 IID19872 - __ imulq(r8, r9, 65536); // imul r8, r9, 65536 IID19873 - __ imulq(r8, r9, 1048576); // imul r8, r9, 1048576 IID19874 - __ imulq(r8, r9, 16777216); // imul r8, r9, 16777216 IID19875 - __ imulq(r8, r9, 268435456); // imul r8, r9, 268435456 IID19876 - __ imulq(r9, r10, 1); // imul r9, r10, 1 IID19877 - __ imulq(r9, r10, 16); // imul r9, r10, 16 IID19878 - __ imulq(r9, r10, 256); // imul r9, r10, 256 IID19879 - __ imulq(r9, r10, 4096); // imul r9, r10, 4096 IID19880 - __ imulq(r9, r10, 65536); // imul r9, r10, 65536 IID19881 - __ imulq(r9, r10, 1048576); // imul r9, r10, 1048576 IID19882 - __ imulq(r9, r10, 16777216); // imul r9, r10, 16777216 IID19883 - __ imulq(r9, r10, 268435456); // imul r9, r10, 268435456 IID19884 - __ imulq(r10, r11, 1); // imul r10, r11, 1 IID19885 - __ imulq(r10, r11, 16); // imul r10, r11, 16 IID19886 - __ imulq(r10, r11, 256); // imul r10, r11, 256 IID19887 - __ imulq(r10, r11, 4096); // imul r10, r11, 4096 IID19888 - __ imulq(r10, r11, 65536); // imul r10, r11, 65536 IID19889 - __ imulq(r10, r11, 1048576); // imul r10, r11, 1048576 IID19890 - __ imulq(r10, r11, 16777216); // imul r10, r11, 16777216 IID19891 - __ imulq(r10, r11, 268435456); // imul r10, r11, 268435456 IID19892 - __ imulq(r11, r12, 1); // imul r11, r12, 1 IID19893 - __ imulq(r11, r12, 16); // imul r11, r12, 16 IID19894 - __ imulq(r11, r12, 256); // imul r11, r12, 256 IID19895 - __ imulq(r11, r12, 4096); // imul r11, r12, 4096 IID19896 - __ imulq(r11, r12, 65536); // imul r11, r12, 65536 IID19897 - __ imulq(r11, r12, 1048576); // imul r11, r12, 1048576 IID19898 - __ imulq(r11, r12, 16777216); // imul r11, r12, 16777216 IID19899 - __ imulq(r11, r12, 268435456); // imul r11, r12, 268435456 IID19900 - __ imulq(r12, r13, 1); // imul r12, r13, 1 IID19901 - __ imulq(r12, r13, 16); // imul r12, r13, 16 IID19902 - __ imulq(r12, r13, 256); // imul r12, r13, 256 IID19903 - __ imulq(r12, r13, 4096); // imul r12, r13, 4096 IID19904 - __ imulq(r12, r13, 65536); // imul r12, r13, 65536 IID19905 - __ imulq(r12, r13, 1048576); // imul r12, r13, 1048576 IID19906 - __ imulq(r12, r13, 16777216); // imul r12, r13, 16777216 IID19907 - __ imulq(r12, r13, 268435456); // imul r12, r13, 268435456 IID19908 - __ imulq(r13, r14, 1); // imul r13, r14, 1 IID19909 - __ imulq(r13, r14, 16); // imul r13, r14, 16 IID19910 - __ imulq(r13, r14, 256); // imul r13, r14, 256 IID19911 - __ imulq(r13, r14, 4096); // imul r13, r14, 4096 IID19912 - __ imulq(r13, r14, 65536); // imul r13, r14, 65536 IID19913 - __ imulq(r13, r14, 1048576); // imul r13, r14, 1048576 IID19914 - __ imulq(r13, r14, 16777216); // imul r13, r14, 16777216 IID19915 - __ imulq(r13, r14, 268435456); // imul r13, r14, 268435456 IID19916 - __ imulq(r14, r15, 1); // imul r14, r15, 1 IID19917 - __ imulq(r14, r15, 16); // imul r14, r15, 16 IID19918 - __ imulq(r14, r15, 256); // imul r14, r15, 256 IID19919 - __ imulq(r14, r15, 4096); // imul r14, r15, 4096 IID19920 - __ imulq(r14, r15, 65536); // imul r14, r15, 65536 IID19921 - __ imulq(r14, r15, 1048576); // imul r14, r15, 1048576 IID19922 - __ imulq(r14, r15, 16777216); // imul r14, r15, 16777216 IID19923 - __ imulq(r14, r15, 268435456); // imul r14, r15, 268435456 IID19924 - __ imulq(r15, r16, 1); // imul r15, r16, 1 IID19925 - __ imulq(r15, r16, 16); // imul r15, r16, 16 IID19926 - __ imulq(r15, r16, 256); // imul r15, r16, 256 IID19927 - __ imulq(r15, r16, 4096); // imul r15, r16, 4096 IID19928 - __ imulq(r15, r16, 65536); // imul r15, r16, 65536 IID19929 - __ imulq(r15, r16, 1048576); // imul r15, r16, 1048576 IID19930 - __ imulq(r15, r16, 16777216); // imul r15, r16, 16777216 IID19931 - __ imulq(r15, r16, 268435456); // imul r15, r16, 268435456 IID19932 - __ imulq(r16, r17, 1); // imul r16, r17, 1 IID19933 - __ imulq(r16, r17, 16); // imul r16, r17, 16 IID19934 - __ imulq(r16, r17, 256); // imul r16, r17, 256 IID19935 - __ imulq(r16, r17, 4096); // imul r16, r17, 4096 IID19936 - __ imulq(r16, r17, 65536); // imul r16, r17, 65536 IID19937 - __ imulq(r16, r17, 1048576); // imul r16, r17, 1048576 IID19938 - __ imulq(r16, r17, 16777216); // imul r16, r17, 16777216 IID19939 - __ imulq(r16, r17, 268435456); // imul r16, r17, 268435456 IID19940 - __ imulq(r17, r18, 1); // imul r17, r18, 1 IID19941 - __ imulq(r17, r18, 16); // imul r17, r18, 16 IID19942 - __ imulq(r17, r18, 256); // imul r17, r18, 256 IID19943 - __ imulq(r17, r18, 4096); // imul r17, r18, 4096 IID19944 - __ imulq(r17, r18, 65536); // imul r17, r18, 65536 IID19945 - __ imulq(r17, r18, 1048576); // imul r17, r18, 1048576 IID19946 - __ imulq(r17, r18, 16777216); // imul r17, r18, 16777216 IID19947 - __ imulq(r17, r18, 268435456); // imul r17, r18, 268435456 IID19948 - __ imulq(r18, r19, 1); // imul r18, r19, 1 IID19949 - __ imulq(r18, r19, 16); // imul r18, r19, 16 IID19950 - __ imulq(r18, r19, 256); // imul r18, r19, 256 IID19951 - __ imulq(r18, r19, 4096); // imul r18, r19, 4096 IID19952 - __ imulq(r18, r19, 65536); // imul r18, r19, 65536 IID19953 - __ imulq(r18, r19, 1048576); // imul r18, r19, 1048576 IID19954 - __ imulq(r18, r19, 16777216); // imul r18, r19, 16777216 IID19955 - __ imulq(r18, r19, 268435456); // imul r18, r19, 268435456 IID19956 - __ imulq(r19, r20, 1); // imul r19, r20, 1 IID19957 - __ imulq(r19, r20, 16); // imul r19, r20, 16 IID19958 - __ imulq(r19, r20, 256); // imul r19, r20, 256 IID19959 - __ imulq(r19, r20, 4096); // imul r19, r20, 4096 IID19960 - __ imulq(r19, r20, 65536); // imul r19, r20, 65536 IID19961 - __ imulq(r19, r20, 1048576); // imul r19, r20, 1048576 IID19962 - __ imulq(r19, r20, 16777216); // imul r19, r20, 16777216 IID19963 - __ imulq(r19, r20, 268435456); // imul r19, r20, 268435456 IID19964 - __ imulq(r20, r21, 1); // imul r20, r21, 1 IID19965 - __ imulq(r20, r21, 16); // imul r20, r21, 16 IID19966 - __ imulq(r20, r21, 256); // imul r20, r21, 256 IID19967 - __ imulq(r20, r21, 4096); // imul r20, r21, 4096 IID19968 - __ imulq(r20, r21, 65536); // imul r20, r21, 65536 IID19969 - __ imulq(r20, r21, 1048576); // imul r20, r21, 1048576 IID19970 - __ imulq(r20, r21, 16777216); // imul r20, r21, 16777216 IID19971 - __ imulq(r20, r21, 268435456); // imul r20, r21, 268435456 IID19972 - __ imulq(r21, r22, 1); // imul r21, r22, 1 IID19973 - __ imulq(r21, r22, 16); // imul r21, r22, 16 IID19974 - __ imulq(r21, r22, 256); // imul r21, r22, 256 IID19975 - __ imulq(r21, r22, 4096); // imul r21, r22, 4096 IID19976 - __ imulq(r21, r22, 65536); // imul r21, r22, 65536 IID19977 - __ imulq(r21, r22, 1048576); // imul r21, r22, 1048576 IID19978 - __ imulq(r21, r22, 16777216); // imul r21, r22, 16777216 IID19979 - __ imulq(r21, r22, 268435456); // imul r21, r22, 268435456 IID19980 - __ imulq(r22, r23, 1); // imul r22, r23, 1 IID19981 - __ imulq(r22, r23, 16); // imul r22, r23, 16 IID19982 - __ imulq(r22, r23, 256); // imul r22, r23, 256 IID19983 - __ imulq(r22, r23, 4096); // imul r22, r23, 4096 IID19984 - __ imulq(r22, r23, 65536); // imul r22, r23, 65536 IID19985 - __ imulq(r22, r23, 1048576); // imul r22, r23, 1048576 IID19986 - __ imulq(r22, r23, 16777216); // imul r22, r23, 16777216 IID19987 - __ imulq(r22, r23, 268435456); // imul r22, r23, 268435456 IID19988 - __ imulq(r23, r24, 1); // imul r23, r24, 1 IID19989 - __ imulq(r23, r24, 16); // imul r23, r24, 16 IID19990 - __ imulq(r23, r24, 256); // imul r23, r24, 256 IID19991 - __ imulq(r23, r24, 4096); // imul r23, r24, 4096 IID19992 - __ imulq(r23, r24, 65536); // imul r23, r24, 65536 IID19993 - __ imulq(r23, r24, 1048576); // imul r23, r24, 1048576 IID19994 - __ imulq(r23, r24, 16777216); // imul r23, r24, 16777216 IID19995 - __ imulq(r23, r24, 268435456); // imul r23, r24, 268435456 IID19996 - __ imulq(r24, r25, 1); // imul r24, r25, 1 IID19997 - __ imulq(r24, r25, 16); // imul r24, r25, 16 IID19998 - __ imulq(r24, r25, 256); // imul r24, r25, 256 IID19999 - __ imulq(r24, r25, 4096); // imul r24, r25, 4096 IID20000 - __ imulq(r24, r25, 65536); // imul r24, r25, 65536 IID20001 - __ imulq(r24, r25, 1048576); // imul r24, r25, 1048576 IID20002 - __ imulq(r24, r25, 16777216); // imul r24, r25, 16777216 IID20003 - __ imulq(r24, r25, 268435456); // imul r24, r25, 268435456 IID20004 - __ imulq(r25, r26, 1); // imul r25, r26, 1 IID20005 - __ imulq(r25, r26, 16); // imul r25, r26, 16 IID20006 - __ imulq(r25, r26, 256); // imul r25, r26, 256 IID20007 - __ imulq(r25, r26, 4096); // imul r25, r26, 4096 IID20008 - __ imulq(r25, r26, 65536); // imul r25, r26, 65536 IID20009 - __ imulq(r25, r26, 1048576); // imul r25, r26, 1048576 IID20010 - __ imulq(r25, r26, 16777216); // imul r25, r26, 16777216 IID20011 - __ imulq(r25, r26, 268435456); // imul r25, r26, 268435456 IID20012 - __ imulq(r26, r27, 1); // imul r26, r27, 1 IID20013 - __ imulq(r26, r27, 16); // imul r26, r27, 16 IID20014 - __ imulq(r26, r27, 256); // imul r26, r27, 256 IID20015 - __ imulq(r26, r27, 4096); // imul r26, r27, 4096 IID20016 - __ imulq(r26, r27, 65536); // imul r26, r27, 65536 IID20017 - __ imulq(r26, r27, 1048576); // imul r26, r27, 1048576 IID20018 - __ imulq(r26, r27, 16777216); // imul r26, r27, 16777216 IID20019 - __ imulq(r26, r27, 268435456); // imul r26, r27, 268435456 IID20020 - __ imulq(r27, r28, 1); // imul r27, r28, 1 IID20021 - __ imulq(r27, r28, 16); // imul r27, r28, 16 IID20022 - __ imulq(r27, r28, 256); // imul r27, r28, 256 IID20023 - __ imulq(r27, r28, 4096); // imul r27, r28, 4096 IID20024 - __ imulq(r27, r28, 65536); // imul r27, r28, 65536 IID20025 - __ imulq(r27, r28, 1048576); // imul r27, r28, 1048576 IID20026 - __ imulq(r27, r28, 16777216); // imul r27, r28, 16777216 IID20027 - __ imulq(r27, r28, 268435456); // imul r27, r28, 268435456 IID20028 - __ imulq(r28, r29, 1); // imul r28, r29, 1 IID20029 - __ imulq(r28, r29, 16); // imul r28, r29, 16 IID20030 - __ imulq(r28, r29, 256); // imul r28, r29, 256 IID20031 - __ imulq(r28, r29, 4096); // imul r28, r29, 4096 IID20032 - __ imulq(r28, r29, 65536); // imul r28, r29, 65536 IID20033 - __ imulq(r28, r29, 1048576); // imul r28, r29, 1048576 IID20034 - __ imulq(r28, r29, 16777216); // imul r28, r29, 16777216 IID20035 - __ imulq(r28, r29, 268435456); // imul r28, r29, 268435456 IID20036 - __ imulq(r29, r30, 1); // imul r29, r30, 1 IID20037 - __ imulq(r29, r30, 16); // imul r29, r30, 16 IID20038 - __ imulq(r29, r30, 256); // imul r29, r30, 256 IID20039 - __ imulq(r29, r30, 4096); // imul r29, r30, 4096 IID20040 - __ imulq(r29, r30, 65536); // imul r29, r30, 65536 IID20041 - __ imulq(r29, r30, 1048576); // imul r29, r30, 1048576 IID20042 - __ imulq(r29, r30, 16777216); // imul r29, r30, 16777216 IID20043 - __ imulq(r29, r30, 268435456); // imul r29, r30, 268435456 IID20044 - __ imulq(r30, r31, 1); // imul r30, r31, 1 IID20045 - __ imulq(r30, r31, 16); // imul r30, r31, 16 IID20046 - __ imulq(r30, r31, 256); // imul r30, r31, 256 IID20047 - __ imulq(r30, r31, 4096); // imul r30, r31, 4096 IID20048 - __ imulq(r30, r31, 65536); // imul r30, r31, 65536 IID20049 - __ imulq(r30, r31, 1048576); // imul r30, r31, 1048576 IID20050 - __ imulq(r30, r31, 16777216); // imul r30, r31, 16777216 IID20051 - __ imulq(r30, r31, 268435456); // imul r30, r31, 268435456 IID20052 - __ imulq(r31, rcx, 1); // imul r31, rcx, 1 IID20053 - __ imulq(r31, rcx, 16); // imul r31, rcx, 16 IID20054 - __ imulq(r31, rcx, 256); // imul r31, rcx, 256 IID20055 - __ imulq(r31, rcx, 4096); // imul r31, rcx, 4096 IID20056 - __ imulq(r31, rcx, 65536); // imul r31, rcx, 65536 IID20057 - __ imulq(r31, rcx, 1048576); // imul r31, rcx, 1048576 IID20058 - __ imulq(r31, rcx, 16777216); // imul r31, rcx, 16777216 IID20059 - __ imulq(r31, rcx, 268435456); // imul r31, rcx, 268435456 IID20060 - __ shldq(rcx, rdx, 1); // shld rcx, rdx, 1 IID20061 - __ shldq(rcx, rdx, 2); // shld rcx, rdx, 2 IID20062 - __ shldq(rcx, rdx, 4); // shld rcx, rdx, 4 IID20063 - __ shldq(rcx, rdx, 8); // shld rcx, rdx, 8 IID20064 - __ shldq(rcx, rdx, 16); // shld rcx, rdx, 16 IID20065 - __ shldq(rdx, rbx, 1); // shld rdx, rbx, 1 IID20066 - __ shldq(rdx, rbx, 2); // shld rdx, rbx, 2 IID20067 - __ shldq(rdx, rbx, 4); // shld rdx, rbx, 4 IID20068 - __ shldq(rdx, rbx, 8); // shld rdx, rbx, 8 IID20069 - __ shldq(rdx, rbx, 16); // shld rdx, rbx, 16 IID20070 - __ shldq(rbx, r8, 1); // shld rbx, r8, 1 IID20071 - __ shldq(rbx, r8, 2); // shld rbx, r8, 2 IID20072 - __ shldq(rbx, r8, 4); // shld rbx, r8, 4 IID20073 - __ shldq(rbx, r8, 8); // shld rbx, r8, 8 IID20074 - __ shldq(rbx, r8, 16); // shld rbx, r8, 16 IID20075 - __ shldq(r8, r9, 1); // shld r8, r9, 1 IID20076 - __ shldq(r8, r9, 2); // shld r8, r9, 2 IID20077 - __ shldq(r8, r9, 4); // shld r8, r9, 4 IID20078 - __ shldq(r8, r9, 8); // shld r8, r9, 8 IID20079 - __ shldq(r8, r9, 16); // shld r8, r9, 16 IID20080 - __ shldq(r9, r10, 1); // shld r9, r10, 1 IID20081 - __ shldq(r9, r10, 2); // shld r9, r10, 2 IID20082 - __ shldq(r9, r10, 4); // shld r9, r10, 4 IID20083 - __ shldq(r9, r10, 8); // shld r9, r10, 8 IID20084 - __ shldq(r9, r10, 16); // shld r9, r10, 16 IID20085 - __ shldq(r10, r11, 1); // shld r10, r11, 1 IID20086 - __ shldq(r10, r11, 2); // shld r10, r11, 2 IID20087 - __ shldq(r10, r11, 4); // shld r10, r11, 4 IID20088 - __ shldq(r10, r11, 8); // shld r10, r11, 8 IID20089 - __ shldq(r10, r11, 16); // shld r10, r11, 16 IID20090 - __ shldq(r11, r12, 1); // shld r11, r12, 1 IID20091 - __ shldq(r11, r12, 2); // shld r11, r12, 2 IID20092 - __ shldq(r11, r12, 4); // shld r11, r12, 4 IID20093 - __ shldq(r11, r12, 8); // shld r11, r12, 8 IID20094 - __ shldq(r11, r12, 16); // shld r11, r12, 16 IID20095 - __ shldq(r12, r13, 1); // shld r12, r13, 1 IID20096 - __ shldq(r12, r13, 2); // shld r12, r13, 2 IID20097 - __ shldq(r12, r13, 4); // shld r12, r13, 4 IID20098 - __ shldq(r12, r13, 8); // shld r12, r13, 8 IID20099 - __ shldq(r12, r13, 16); // shld r12, r13, 16 IID20100 - __ shldq(r13, r14, 1); // shld r13, r14, 1 IID20101 - __ shldq(r13, r14, 2); // shld r13, r14, 2 IID20102 - __ shldq(r13, r14, 4); // shld r13, r14, 4 IID20103 - __ shldq(r13, r14, 8); // shld r13, r14, 8 IID20104 - __ shldq(r13, r14, 16); // shld r13, r14, 16 IID20105 - __ shldq(r14, r15, 1); // shld r14, r15, 1 IID20106 - __ shldq(r14, r15, 2); // shld r14, r15, 2 IID20107 - __ shldq(r14, r15, 4); // shld r14, r15, 4 IID20108 - __ shldq(r14, r15, 8); // shld r14, r15, 8 IID20109 - __ shldq(r14, r15, 16); // shld r14, r15, 16 IID20110 - __ shldq(r15, r16, 1); // shld r15, r16, 1 IID20111 - __ shldq(r15, r16, 2); // shld r15, r16, 2 IID20112 - __ shldq(r15, r16, 4); // shld r15, r16, 4 IID20113 - __ shldq(r15, r16, 8); // shld r15, r16, 8 IID20114 - __ shldq(r15, r16, 16); // shld r15, r16, 16 IID20115 - __ shldq(r16, r17, 1); // shld r16, r17, 1 IID20116 - __ shldq(r16, r17, 2); // shld r16, r17, 2 IID20117 - __ shldq(r16, r17, 4); // shld r16, r17, 4 IID20118 - __ shldq(r16, r17, 8); // shld r16, r17, 8 IID20119 - __ shldq(r16, r17, 16); // shld r16, r17, 16 IID20120 - __ shldq(r17, r18, 1); // shld r17, r18, 1 IID20121 - __ shldq(r17, r18, 2); // shld r17, r18, 2 IID20122 - __ shldq(r17, r18, 4); // shld r17, r18, 4 IID20123 - __ shldq(r17, r18, 8); // shld r17, r18, 8 IID20124 - __ shldq(r17, r18, 16); // shld r17, r18, 16 IID20125 - __ shldq(r18, r19, 1); // shld r18, r19, 1 IID20126 - __ shldq(r18, r19, 2); // shld r18, r19, 2 IID20127 - __ shldq(r18, r19, 4); // shld r18, r19, 4 IID20128 - __ shldq(r18, r19, 8); // shld r18, r19, 8 IID20129 - __ shldq(r18, r19, 16); // shld r18, r19, 16 IID20130 - __ shldq(r19, r20, 1); // shld r19, r20, 1 IID20131 - __ shldq(r19, r20, 2); // shld r19, r20, 2 IID20132 - __ shldq(r19, r20, 4); // shld r19, r20, 4 IID20133 - __ shldq(r19, r20, 8); // shld r19, r20, 8 IID20134 - __ shldq(r19, r20, 16); // shld r19, r20, 16 IID20135 - __ shldq(r20, r21, 1); // shld r20, r21, 1 IID20136 - __ shldq(r20, r21, 2); // shld r20, r21, 2 IID20137 - __ shldq(r20, r21, 4); // shld r20, r21, 4 IID20138 - __ shldq(r20, r21, 8); // shld r20, r21, 8 IID20139 - __ shldq(r20, r21, 16); // shld r20, r21, 16 IID20140 - __ shldq(r21, r22, 1); // shld r21, r22, 1 IID20141 - __ shldq(r21, r22, 2); // shld r21, r22, 2 IID20142 - __ shldq(r21, r22, 4); // shld r21, r22, 4 IID20143 - __ shldq(r21, r22, 8); // shld r21, r22, 8 IID20144 - __ shldq(r21, r22, 16); // shld r21, r22, 16 IID20145 - __ shldq(r22, r23, 1); // shld r22, r23, 1 IID20146 - __ shldq(r22, r23, 2); // shld r22, r23, 2 IID20147 - __ shldq(r22, r23, 4); // shld r22, r23, 4 IID20148 - __ shldq(r22, r23, 8); // shld r22, r23, 8 IID20149 - __ shldq(r22, r23, 16); // shld r22, r23, 16 IID20150 - __ shldq(r23, r24, 1); // shld r23, r24, 1 IID20151 - __ shldq(r23, r24, 2); // shld r23, r24, 2 IID20152 - __ shldq(r23, r24, 4); // shld r23, r24, 4 IID20153 - __ shldq(r23, r24, 8); // shld r23, r24, 8 IID20154 - __ shldq(r23, r24, 16); // shld r23, r24, 16 IID20155 - __ shldq(r24, r25, 1); // shld r24, r25, 1 IID20156 - __ shldq(r24, r25, 2); // shld r24, r25, 2 IID20157 - __ shldq(r24, r25, 4); // shld r24, r25, 4 IID20158 - __ shldq(r24, r25, 8); // shld r24, r25, 8 IID20159 - __ shldq(r24, r25, 16); // shld r24, r25, 16 IID20160 - __ shldq(r25, r26, 1); // shld r25, r26, 1 IID20161 - __ shldq(r25, r26, 2); // shld r25, r26, 2 IID20162 - __ shldq(r25, r26, 4); // shld r25, r26, 4 IID20163 - __ shldq(r25, r26, 8); // shld r25, r26, 8 IID20164 - __ shldq(r25, r26, 16); // shld r25, r26, 16 IID20165 - __ shldq(r26, r27, 1); // shld r26, r27, 1 IID20166 - __ shldq(r26, r27, 2); // shld r26, r27, 2 IID20167 - __ shldq(r26, r27, 4); // shld r26, r27, 4 IID20168 - __ shldq(r26, r27, 8); // shld r26, r27, 8 IID20169 - __ shldq(r26, r27, 16); // shld r26, r27, 16 IID20170 - __ shldq(r27, r28, 1); // shld r27, r28, 1 IID20171 - __ shldq(r27, r28, 2); // shld r27, r28, 2 IID20172 - __ shldq(r27, r28, 4); // shld r27, r28, 4 IID20173 - __ shldq(r27, r28, 8); // shld r27, r28, 8 IID20174 - __ shldq(r27, r28, 16); // shld r27, r28, 16 IID20175 - __ shldq(r28, r29, 1); // shld r28, r29, 1 IID20176 - __ shldq(r28, r29, 2); // shld r28, r29, 2 IID20177 - __ shldq(r28, r29, 4); // shld r28, r29, 4 IID20178 - __ shldq(r28, r29, 8); // shld r28, r29, 8 IID20179 - __ shldq(r28, r29, 16); // shld r28, r29, 16 IID20180 - __ shldq(r29, r30, 1); // shld r29, r30, 1 IID20181 - __ shldq(r29, r30, 2); // shld r29, r30, 2 IID20182 - __ shldq(r29, r30, 4); // shld r29, r30, 4 IID20183 - __ shldq(r29, r30, 8); // shld r29, r30, 8 IID20184 - __ shldq(r29, r30, 16); // shld r29, r30, 16 IID20185 - __ shldq(r30, r31, 1); // shld r30, r31, 1 IID20186 - __ shldq(r30, r31, 2); // shld r30, r31, 2 IID20187 - __ shldq(r30, r31, 4); // shld r30, r31, 4 IID20188 - __ shldq(r30, r31, 8); // shld r30, r31, 8 IID20189 - __ shldq(r30, r31, 16); // shld r30, r31, 16 IID20190 - __ shldq(r31, rcx, 1); // shld r31, rcx, 1 IID20191 - __ shldq(r31, rcx, 2); // shld r31, rcx, 2 IID20192 - __ shldq(r31, rcx, 4); // shld r31, rcx, 4 IID20193 - __ shldq(r31, rcx, 8); // shld r31, rcx, 8 IID20194 - __ shldq(r31, rcx, 16); // shld r31, rcx, 16 IID20195 - __ shrdq(rcx, rdx, 1); // shrd rcx, rdx, 1 IID20196 - __ shrdq(rcx, rdx, 2); // shrd rcx, rdx, 2 IID20197 - __ shrdq(rcx, rdx, 4); // shrd rcx, rdx, 4 IID20198 - __ shrdq(rcx, rdx, 8); // shrd rcx, rdx, 8 IID20199 - __ shrdq(rcx, rdx, 16); // shrd rcx, rdx, 16 IID20200 - __ shrdq(rdx, rbx, 1); // shrd rdx, rbx, 1 IID20201 - __ shrdq(rdx, rbx, 2); // shrd rdx, rbx, 2 IID20202 - __ shrdq(rdx, rbx, 4); // shrd rdx, rbx, 4 IID20203 - __ shrdq(rdx, rbx, 8); // shrd rdx, rbx, 8 IID20204 - __ shrdq(rdx, rbx, 16); // shrd rdx, rbx, 16 IID20205 - __ shrdq(rbx, r8, 1); // shrd rbx, r8, 1 IID20206 - __ shrdq(rbx, r8, 2); // shrd rbx, r8, 2 IID20207 - __ shrdq(rbx, r8, 4); // shrd rbx, r8, 4 IID20208 - __ shrdq(rbx, r8, 8); // shrd rbx, r8, 8 IID20209 - __ shrdq(rbx, r8, 16); // shrd rbx, r8, 16 IID20210 - __ shrdq(r8, r9, 1); // shrd r8, r9, 1 IID20211 - __ shrdq(r8, r9, 2); // shrd r8, r9, 2 IID20212 - __ shrdq(r8, r9, 4); // shrd r8, r9, 4 IID20213 - __ shrdq(r8, r9, 8); // shrd r8, r9, 8 IID20214 - __ shrdq(r8, r9, 16); // shrd r8, r9, 16 IID20215 - __ shrdq(r9, r10, 1); // shrd r9, r10, 1 IID20216 - __ shrdq(r9, r10, 2); // shrd r9, r10, 2 IID20217 - __ shrdq(r9, r10, 4); // shrd r9, r10, 4 IID20218 - __ shrdq(r9, r10, 8); // shrd r9, r10, 8 IID20219 - __ shrdq(r9, r10, 16); // shrd r9, r10, 16 IID20220 - __ shrdq(r10, r11, 1); // shrd r10, r11, 1 IID20221 - __ shrdq(r10, r11, 2); // shrd r10, r11, 2 IID20222 - __ shrdq(r10, r11, 4); // shrd r10, r11, 4 IID20223 - __ shrdq(r10, r11, 8); // shrd r10, r11, 8 IID20224 - __ shrdq(r10, r11, 16); // shrd r10, r11, 16 IID20225 - __ shrdq(r11, r12, 1); // shrd r11, r12, 1 IID20226 - __ shrdq(r11, r12, 2); // shrd r11, r12, 2 IID20227 - __ shrdq(r11, r12, 4); // shrd r11, r12, 4 IID20228 - __ shrdq(r11, r12, 8); // shrd r11, r12, 8 IID20229 - __ shrdq(r11, r12, 16); // shrd r11, r12, 16 IID20230 - __ shrdq(r12, r13, 1); // shrd r12, r13, 1 IID20231 - __ shrdq(r12, r13, 2); // shrd r12, r13, 2 IID20232 - __ shrdq(r12, r13, 4); // shrd r12, r13, 4 IID20233 - __ shrdq(r12, r13, 8); // shrd r12, r13, 8 IID20234 - __ shrdq(r12, r13, 16); // shrd r12, r13, 16 IID20235 - __ shrdq(r13, r14, 1); // shrd r13, r14, 1 IID20236 - __ shrdq(r13, r14, 2); // shrd r13, r14, 2 IID20237 - __ shrdq(r13, r14, 4); // shrd r13, r14, 4 IID20238 - __ shrdq(r13, r14, 8); // shrd r13, r14, 8 IID20239 - __ shrdq(r13, r14, 16); // shrd r13, r14, 16 IID20240 - __ shrdq(r14, r15, 1); // shrd r14, r15, 1 IID20241 - __ shrdq(r14, r15, 2); // shrd r14, r15, 2 IID20242 - __ shrdq(r14, r15, 4); // shrd r14, r15, 4 IID20243 - __ shrdq(r14, r15, 8); // shrd r14, r15, 8 IID20244 - __ shrdq(r14, r15, 16); // shrd r14, r15, 16 IID20245 - __ shrdq(r15, r16, 1); // shrd r15, r16, 1 IID20246 - __ shrdq(r15, r16, 2); // shrd r15, r16, 2 IID20247 - __ shrdq(r15, r16, 4); // shrd r15, r16, 4 IID20248 - __ shrdq(r15, r16, 8); // shrd r15, r16, 8 IID20249 - __ shrdq(r15, r16, 16); // shrd r15, r16, 16 IID20250 - __ shrdq(r16, r17, 1); // shrd r16, r17, 1 IID20251 - __ shrdq(r16, r17, 2); // shrd r16, r17, 2 IID20252 - __ shrdq(r16, r17, 4); // shrd r16, r17, 4 IID20253 - __ shrdq(r16, r17, 8); // shrd r16, r17, 8 IID20254 - __ shrdq(r16, r17, 16); // shrd r16, r17, 16 IID20255 - __ shrdq(r17, r18, 1); // shrd r17, r18, 1 IID20256 - __ shrdq(r17, r18, 2); // shrd r17, r18, 2 IID20257 - __ shrdq(r17, r18, 4); // shrd r17, r18, 4 IID20258 - __ shrdq(r17, r18, 8); // shrd r17, r18, 8 IID20259 - __ shrdq(r17, r18, 16); // shrd r17, r18, 16 IID20260 - __ shrdq(r18, r19, 1); // shrd r18, r19, 1 IID20261 - __ shrdq(r18, r19, 2); // shrd r18, r19, 2 IID20262 - __ shrdq(r18, r19, 4); // shrd r18, r19, 4 IID20263 - __ shrdq(r18, r19, 8); // shrd r18, r19, 8 IID20264 - __ shrdq(r18, r19, 16); // shrd r18, r19, 16 IID20265 - __ shrdq(r19, r20, 1); // shrd r19, r20, 1 IID20266 - __ shrdq(r19, r20, 2); // shrd r19, r20, 2 IID20267 - __ shrdq(r19, r20, 4); // shrd r19, r20, 4 IID20268 - __ shrdq(r19, r20, 8); // shrd r19, r20, 8 IID20269 - __ shrdq(r19, r20, 16); // shrd r19, r20, 16 IID20270 - __ shrdq(r20, r21, 1); // shrd r20, r21, 1 IID20271 - __ shrdq(r20, r21, 2); // shrd r20, r21, 2 IID20272 - __ shrdq(r20, r21, 4); // shrd r20, r21, 4 IID20273 - __ shrdq(r20, r21, 8); // shrd r20, r21, 8 IID20274 - __ shrdq(r20, r21, 16); // shrd r20, r21, 16 IID20275 - __ shrdq(r21, r22, 1); // shrd r21, r22, 1 IID20276 - __ shrdq(r21, r22, 2); // shrd r21, r22, 2 IID20277 - __ shrdq(r21, r22, 4); // shrd r21, r22, 4 IID20278 - __ shrdq(r21, r22, 8); // shrd r21, r22, 8 IID20279 - __ shrdq(r21, r22, 16); // shrd r21, r22, 16 IID20280 - __ shrdq(r22, r23, 1); // shrd r22, r23, 1 IID20281 - __ shrdq(r22, r23, 2); // shrd r22, r23, 2 IID20282 - __ shrdq(r22, r23, 4); // shrd r22, r23, 4 IID20283 - __ shrdq(r22, r23, 8); // shrd r22, r23, 8 IID20284 - __ shrdq(r22, r23, 16); // shrd r22, r23, 16 IID20285 - __ shrdq(r23, r24, 1); // shrd r23, r24, 1 IID20286 - __ shrdq(r23, r24, 2); // shrd r23, r24, 2 IID20287 - __ shrdq(r23, r24, 4); // shrd r23, r24, 4 IID20288 - __ shrdq(r23, r24, 8); // shrd r23, r24, 8 IID20289 - __ shrdq(r23, r24, 16); // shrd r23, r24, 16 IID20290 - __ shrdq(r24, r25, 1); // shrd r24, r25, 1 IID20291 - __ shrdq(r24, r25, 2); // shrd r24, r25, 2 IID20292 - __ shrdq(r24, r25, 4); // shrd r24, r25, 4 IID20293 - __ shrdq(r24, r25, 8); // shrd r24, r25, 8 IID20294 - __ shrdq(r24, r25, 16); // shrd r24, r25, 16 IID20295 - __ shrdq(r25, r26, 1); // shrd r25, r26, 1 IID20296 - __ shrdq(r25, r26, 2); // shrd r25, r26, 2 IID20297 - __ shrdq(r25, r26, 4); // shrd r25, r26, 4 IID20298 - __ shrdq(r25, r26, 8); // shrd r25, r26, 8 IID20299 - __ shrdq(r25, r26, 16); // shrd r25, r26, 16 IID20300 - __ shrdq(r26, r27, 1); // shrd r26, r27, 1 IID20301 - __ shrdq(r26, r27, 2); // shrd r26, r27, 2 IID20302 - __ shrdq(r26, r27, 4); // shrd r26, r27, 4 IID20303 - __ shrdq(r26, r27, 8); // shrd r26, r27, 8 IID20304 - __ shrdq(r26, r27, 16); // shrd r26, r27, 16 IID20305 - __ shrdq(r27, r28, 1); // shrd r27, r28, 1 IID20306 - __ shrdq(r27, r28, 2); // shrd r27, r28, 2 IID20307 - __ shrdq(r27, r28, 4); // shrd r27, r28, 4 IID20308 - __ shrdq(r27, r28, 8); // shrd r27, r28, 8 IID20309 - __ shrdq(r27, r28, 16); // shrd r27, r28, 16 IID20310 - __ shrdq(r28, r29, 1); // shrd r28, r29, 1 IID20311 - __ shrdq(r28, r29, 2); // shrd r28, r29, 2 IID20312 - __ shrdq(r28, r29, 4); // shrd r28, r29, 4 IID20313 - __ shrdq(r28, r29, 8); // shrd r28, r29, 8 IID20314 - __ shrdq(r28, r29, 16); // shrd r28, r29, 16 IID20315 - __ shrdq(r29, r30, 1); // shrd r29, r30, 1 IID20316 - __ shrdq(r29, r30, 2); // shrd r29, r30, 2 IID20317 - __ shrdq(r29, r30, 4); // shrd r29, r30, 4 IID20318 - __ shrdq(r29, r30, 8); // shrd r29, r30, 8 IID20319 - __ shrdq(r29, r30, 16); // shrd r29, r30, 16 IID20320 - __ shrdq(r30, r31, 1); // shrd r30, r31, 1 IID20321 - __ shrdq(r30, r31, 2); // shrd r30, r31, 2 IID20322 - __ shrdq(r30, r31, 4); // shrd r30, r31, 4 IID20323 - __ shrdq(r30, r31, 8); // shrd r30, r31, 8 IID20324 - __ shrdq(r30, r31, 16); // shrd r30, r31, 16 IID20325 - __ shrdq(r31, rcx, 1); // shrd r31, rcx, 1 IID20326 - __ shrdq(r31, rcx, 2); // shrd r31, rcx, 2 IID20327 - __ shrdq(r31, rcx, 4); // shrd r31, rcx, 4 IID20328 - __ shrdq(r31, rcx, 8); // shrd r31, rcx, 8 IID20329 - __ shrdq(r31, rcx, 16); // shrd r31, rcx, 16 IID20330 - __ pop2(rdx, rcx); // {load}pop2 rcx, rdx IID20331 - __ pop2(rbx, rdx); // {load}pop2 rdx, rbx IID20332 - __ pop2(r8, rbx); // {load}pop2 rbx, r8 IID20333 - __ pop2(r9, r8); // {load}pop2 r8, r9 IID20334 - __ pop2(r10, r9); // {load}pop2 r9, r10 IID20335 - __ pop2(r11, r10); // {load}pop2 r10, r11 IID20336 - __ pop2(r12, r11); // {load}pop2 r11, r12 IID20337 - __ pop2(r13, r12); // {load}pop2 r12, r13 IID20338 - __ pop2(r14, r13); // {load}pop2 r13, r14 IID20339 - __ pop2(r15, r14); // {load}pop2 r14, r15 IID20340 - __ pop2(r16, r15); // {load}pop2 r15, r16 IID20341 - __ pop2(r17, r16); // {load}pop2 r16, r17 IID20342 - __ pop2(r18, r17); // {load}pop2 r17, r18 IID20343 - __ pop2(r19, r18); // {load}pop2 r18, r19 IID20344 - __ pop2(r20, r19); // {load}pop2 r19, r20 IID20345 - __ pop2(r21, r20); // {load}pop2 r20, r21 IID20346 - __ pop2(r22, r21); // {load}pop2 r21, r22 IID20347 - __ pop2(r23, r22); // {load}pop2 r22, r23 IID20348 - __ pop2(r24, r23); // {load}pop2 r23, r24 IID20349 - __ pop2(r25, r24); // {load}pop2 r24, r25 IID20350 - __ pop2(r26, r25); // {load}pop2 r25, r26 IID20351 - __ pop2(r27, r26); // {load}pop2 r26, r27 IID20352 - __ pop2(r28, r27); // {load}pop2 r27, r28 IID20353 - __ pop2(r29, r28); // {load}pop2 r28, r29 IID20354 - __ pop2(r30, r29); // {load}pop2 r29, r30 IID20355 - __ pop2(r31, r30); // {load}pop2 r30, r31 IID20356 - __ pop2(rcx, r31); // {load}pop2 r31, rcx IID20357 - __ pop2p(rdx, rcx); // {load}pop2p rcx, rdx IID20358 - __ pop2p(rbx, rdx); // {load}pop2p rdx, rbx IID20359 - __ pop2p(r8, rbx); // {load}pop2p rbx, r8 IID20360 - __ pop2p(r9, r8); // {load}pop2p r8, r9 IID20361 - __ pop2p(r10, r9); // {load}pop2p r9, r10 IID20362 - __ pop2p(r11, r10); // {load}pop2p r10, r11 IID20363 - __ pop2p(r12, r11); // {load}pop2p r11, r12 IID20364 - __ pop2p(r13, r12); // {load}pop2p r12, r13 IID20365 - __ pop2p(r14, r13); // {load}pop2p r13, r14 IID20366 - __ pop2p(r15, r14); // {load}pop2p r14, r15 IID20367 - __ pop2p(r16, r15); // {load}pop2p r15, r16 IID20368 - __ pop2p(r17, r16); // {load}pop2p r16, r17 IID20369 - __ pop2p(r18, r17); // {load}pop2p r17, r18 IID20370 - __ pop2p(r19, r18); // {load}pop2p r18, r19 IID20371 - __ pop2p(r20, r19); // {load}pop2p r19, r20 IID20372 - __ pop2p(r21, r20); // {load}pop2p r20, r21 IID20373 - __ pop2p(r22, r21); // {load}pop2p r21, r22 IID20374 - __ pop2p(r23, r22); // {load}pop2p r22, r23 IID20375 - __ pop2p(r24, r23); // {load}pop2p r23, r24 IID20376 - __ pop2p(r25, r24); // {load}pop2p r24, r25 IID20377 - __ pop2p(r26, r25); // {load}pop2p r25, r26 IID20378 - __ pop2p(r27, r26); // {load}pop2p r26, r27 IID20379 - __ pop2p(r28, r27); // {load}pop2p r27, r28 IID20380 - __ pop2p(r29, r28); // {load}pop2p r28, r29 IID20381 - __ pop2p(r30, r29); // {load}pop2p r29, r30 IID20382 - __ pop2p(r31, r30); // {load}pop2p r30, r31 IID20383 - __ pop2p(rcx, r31); // {load}pop2p r31, rcx IID20384 - __ push2(rdx, rcx); // {load}push2 rcx, rdx IID20385 - __ push2(rbx, rdx); // {load}push2 rdx, rbx IID20386 - __ push2(r8, rbx); // {load}push2 rbx, r8 IID20387 - __ push2(r9, r8); // {load}push2 r8, r9 IID20388 - __ push2(r10, r9); // {load}push2 r9, r10 IID20389 - __ push2(r11, r10); // {load}push2 r10, r11 IID20390 - __ push2(r12, r11); // {load}push2 r11, r12 IID20391 - __ push2(r13, r12); // {load}push2 r12, r13 IID20392 - __ push2(r14, r13); // {load}push2 r13, r14 IID20393 - __ push2(r15, r14); // {load}push2 r14, r15 IID20394 - __ push2(r16, r15); // {load}push2 r15, r16 IID20395 - __ push2(r17, r16); // {load}push2 r16, r17 IID20396 - __ push2(r18, r17); // {load}push2 r17, r18 IID20397 - __ push2(r19, r18); // {load}push2 r18, r19 IID20398 - __ push2(r20, r19); // {load}push2 r19, r20 IID20399 - __ push2(r21, r20); // {load}push2 r20, r21 IID20400 - __ push2(r22, r21); // {load}push2 r21, r22 IID20401 - __ push2(r23, r22); // {load}push2 r22, r23 IID20402 - __ push2(r24, r23); // {load}push2 r23, r24 IID20403 - __ push2(r25, r24); // {load}push2 r24, r25 IID20404 - __ push2(r26, r25); // {load}push2 r25, r26 IID20405 - __ push2(r27, r26); // {load}push2 r26, r27 IID20406 - __ push2(r28, r27); // {load}push2 r27, r28 IID20407 - __ push2(r29, r28); // {load}push2 r28, r29 IID20408 - __ push2(r30, r29); // {load}push2 r29, r30 IID20409 - __ push2(r31, r30); // {load}push2 r30, r31 IID20410 - __ push2(rcx, r31); // {load}push2 r31, rcx IID20411 - __ push2p(rdx, rcx); // {load}push2p rcx, rdx IID20412 - __ push2p(rbx, rdx); // {load}push2p rdx, rbx IID20413 - __ push2p(r8, rbx); // {load}push2p rbx, r8 IID20414 - __ push2p(r9, r8); // {load}push2p r8, r9 IID20415 - __ push2p(r10, r9); // {load}push2p r9, r10 IID20416 - __ push2p(r11, r10); // {load}push2p r10, r11 IID20417 - __ push2p(r12, r11); // {load}push2p r11, r12 IID20418 - __ push2p(r13, r12); // {load}push2p r12, r13 IID20419 - __ push2p(r14, r13); // {load}push2p r13, r14 IID20420 - __ push2p(r15, r14); // {load}push2p r14, r15 IID20421 - __ push2p(r16, r15); // {load}push2p r15, r16 IID20422 - __ push2p(r17, r16); // {load}push2p r16, r17 IID20423 - __ push2p(r18, r17); // {load}push2p r17, r18 IID20424 - __ push2p(r19, r18); // {load}push2p r18, r19 IID20425 - __ push2p(r20, r19); // {load}push2p r19, r20 IID20426 - __ push2p(r21, r20); // {load}push2p r20, r21 IID20427 - __ push2p(r22, r21); // {load}push2p r21, r22 IID20428 - __ push2p(r23, r22); // {load}push2p r22, r23 IID20429 - __ push2p(r24, r23); // {load}push2p r23, r24 IID20430 - __ push2p(r25, r24); // {load}push2p r24, r25 IID20431 - __ push2p(r26, r25); // {load}push2p r25, r26 IID20432 - __ push2p(r27, r26); // {load}push2p r26, r27 IID20433 - __ push2p(r28, r27); // {load}push2p r27, r28 IID20434 - __ push2p(r29, r28); // {load}push2p r28, r29 IID20435 - __ push2p(r30, r29); // {load}push2p r29, r30 IID20436 - __ push2p(r31, r30); // {load}push2p r30, r31 IID20437 - __ push2p(rcx, r31); // {load}push2p r31, rcx IID20438 - __ movzbq(rcx, Address(rdx, rbx, (Address::ScaleFactor)1, +0x6bebbafe)); // movzx rcx, byte ptr [rdx+rbx*2+0x6bebbafe] IID20439 - __ movzbq(rdx, Address(rbx, r8, (Address::ScaleFactor)0, -0x37491a02)); // movzx rdx, byte ptr [rbx+r8*1-0x37491a02] IID20440 - __ movzbq(rbx, Address(r8, +0x1355726b)); // movzx rbx, byte ptr [r8+0x1355726b] IID20441 - __ movzbq(r8, Address(r9, r10, (Address::ScaleFactor)2, +0x28477746)); // movzx r8, byte ptr [r9+r10*4+0x28477746] IID20442 - __ movzbq(r9, Address(r10, +0x5c73f494)); // movzx r9, byte ptr [r10+0x5c73f494] IID20443 - __ movzbq(r10, Address(r11, r12, (Address::ScaleFactor)0, -0x4d923708)); // movzx r10, byte ptr [r11+r12*1-0x4d923708] IID20444 - __ movzbq(r11, Address(r12, r13, (Address::ScaleFactor)2, -0xd038dbd)); // movzx r11, byte ptr [r12+r13*4-0xd038dbd] IID20445 - __ movzbq(r12, Address(r13, r14, (Address::ScaleFactor)0, +0x4c42d90)); // movzx r12, byte ptr [r13+r14*1+0x4c42d90] IID20446 - __ movzbq(r13, Address(r14, r15, (Address::ScaleFactor)1, +0x24be9019)); // movzx r13, byte ptr [r14+r15*2+0x24be9019] IID20447 - __ movzbq(r14, Address(r15, r16, (Address::ScaleFactor)0, -0x1cf02dea)); // movzx r14, byte ptr [r15+r16*1-0x1cf02dea] IID20448 - __ movzbq(r15, Address(r16, r17, (Address::ScaleFactor)0, -0x10394f6c)); // movzx r15, byte ptr [r16+r17*1-0x10394f6c] IID20449 - __ movzbq(r16, Address(r17, -0x49ab6ced)); // movzx r16, byte ptr [r17-0x49ab6ced] IID20450 - __ movzbq(r17, Address(r18, r19, (Address::ScaleFactor)0, +0x70f81015)); // movzx r17, byte ptr [r18+r19*1+0x70f81015] IID20451 - __ movzbq(r18, Address(r19, r20, (Address::ScaleFactor)3, +0x6ac8da2c)); // movzx r18, byte ptr [r19+r20*8+0x6ac8da2c] IID20452 - __ movzbq(r19, Address(r20, r21, (Address::ScaleFactor)3, +0x5fef6b37)); // movzx r19, byte ptr [r20+r21*8+0x5fef6b37] IID20453 - __ movzbq(r20, Address(r21, r22, (Address::ScaleFactor)0, -0x3489bc3d)); // movzx r20, byte ptr [r21+r22*1-0x3489bc3d] IID20454 - __ movzbq(r21, Address(r22, r23, (Address::ScaleFactor)2, +0x249e0432)); // movzx r21, byte ptr [r22+r23*4+0x249e0432] IID20455 - __ movzbq(r22, Address(r23, r24, (Address::ScaleFactor)3, +0x56d86f09)); // movzx r22, byte ptr [r23+r24*8+0x56d86f09] IID20456 - __ movzbq(r23, Address(r24, r25, (Address::ScaleFactor)2, -0x7d9ef40e)); // movzx r23, byte ptr [r24+r25*4-0x7d9ef40e] IID20457 - __ movzbq(r24, Address(r25, -0x5f65680c)); // movzx r24, byte ptr [r25-0x5f65680c] IID20458 - __ movzbq(r25, Address(r26, r27, (Address::ScaleFactor)0, +0x696864d8)); // movzx r25, byte ptr [r26+r27*1+0x696864d8] IID20459 - __ movzbq(r26, Address(r27, +0x6b4e7053)); // movzx r26, byte ptr [r27+0x6b4e7053] IID20460 - __ movzbq(r27, Address(r28, r29, (Address::ScaleFactor)0, -0x3dd5d012)); // movzx r27, byte ptr [r28+r29*1-0x3dd5d012] IID20461 - __ movzbq(r28, Address(r29, +0x5420e4b3)); // movzx r28, byte ptr [r29+0x5420e4b3] IID20462 - __ movzbq(r29, Address(r30, r31, (Address::ScaleFactor)0, +0x380bd8fe)); // movzx r29, byte ptr [r30+r31*1+0x380bd8fe] IID20463 - __ movzbq(r30, Address(r31, rcx, (Address::ScaleFactor)0, +0x5ba95873)); // movzx r30, byte ptr [r31+rcx*1+0x5ba95873] IID20464 - __ movzbq(r31, Address(rcx, -0x3a4e5896)); // movzx r31, byte ptr [rcx-0x3a4e5896] IID20465 - __ movzwq(rcx, Address(rdx, -0x7659e2a5)); // movzx rcx, word ptr [rdx-0x7659e2a5] IID20466 - __ movzwq(rdx, Address(rbx, -0x3fd7193e)); // movzx rdx, word ptr [rbx-0x3fd7193e] IID20467 - __ movzwq(rbx, Address(r8, r9, (Address::ScaleFactor)2, +0x633ae90f)); // movzx rbx, word ptr [r8+r9*4+0x633ae90f] IID20468 - __ movzwq(r8, Address(r9, r10, (Address::ScaleFactor)2, -0x44fbbaaf)); // movzx r8, word ptr [r9+r10*4-0x44fbbaaf] IID20469 - __ movzwq(r9, Address(r10, r11, (Address::ScaleFactor)2, +0x524f0d22)); // movzx r9, word ptr [r10+r11*4+0x524f0d22] IID20470 - __ movzwq(r10, Address(r11, r12, (Address::ScaleFactor)2, +0x505758b3)); // movzx r10, word ptr [r11+r12*4+0x505758b3] IID20471 - __ movzwq(r11, Address(r12, r13, (Address::ScaleFactor)2, +0xb8eb252)); // movzx r11, word ptr [r12+r13*4+0xb8eb252] IID20472 - __ movzwq(r12, Address(r13, r14, (Address::ScaleFactor)3, -0x1e08de39)); // movzx r12, word ptr [r13+r14*8-0x1e08de39] IID20473 - __ movzwq(r13, Address(r14, r15, (Address::ScaleFactor)0, -0x392a7be8)); // movzx r13, word ptr [r14+r15*1-0x392a7be8] IID20474 - __ movzwq(r14, Address(r15, r16, (Address::ScaleFactor)1, +0x54bd701c)); // movzx r14, word ptr [r15+r16*2+0x54bd701c] IID20475 - __ movzwq(r15, Address(r16, r17, (Address::ScaleFactor)1, +0x78f112ed)); // movzx r15, word ptr [r16+r17*2+0x78f112ed] IID20476 - __ movzwq(r16, Address(r17, r18, (Address::ScaleFactor)3, +0x614fd152)); // movzx r16, word ptr [r17+r18*8+0x614fd152] IID20477 - __ movzwq(r17, Address(r18, r19, (Address::ScaleFactor)0, -0x33b891a2)); // movzx r17, word ptr [r18+r19*1-0x33b891a2] IID20478 - __ movzwq(r18, Address(r19, r20, (Address::ScaleFactor)3, +0xe272cd7)); // movzx r18, word ptr [r19+r20*8+0xe272cd7] IID20479 - __ movzwq(r19, Address(r20, r21, (Address::ScaleFactor)1, -0x49257f48)); // movzx r19, word ptr [r20+r21*2-0x49257f48] IID20480 - __ movzwq(r20, Address(r21, r22, (Address::ScaleFactor)0, +0x6679f3c2)); // movzx r20, word ptr [r21+r22*1+0x6679f3c2] IID20481 - __ movzwq(r21, Address(r22, r23, (Address::ScaleFactor)0, -0x57f352eb)); // movzx r21, word ptr [r22+r23*1-0x57f352eb] IID20482 - __ movzwq(r22, Address(r23, r24, (Address::ScaleFactor)3, +0xbde57d3)); // movzx r22, word ptr [r23+r24*8+0xbde57d3] IID20483 - __ movzwq(r23, Address(r24, r25, (Address::ScaleFactor)3, +0x119108cb)); // movzx r23, word ptr [r24+r25*8+0x119108cb] IID20484 - __ movzwq(r24, Address(r25, r26, (Address::ScaleFactor)1, +0x61769418)); // movzx r24, word ptr [r25+r26*2+0x61769418] IID20485 - __ movzwq(r25, Address(r26, r27, (Address::ScaleFactor)1, -0x677a075c)); // movzx r25, word ptr [r26+r27*2-0x677a075c] IID20486 - __ movzwq(r26, Address(r27, r28, (Address::ScaleFactor)0, +0x2c1bc0d1)); // movzx r26, word ptr [r27+r28*1+0x2c1bc0d1] IID20487 - __ movzwq(r27, Address(r28, r29, (Address::ScaleFactor)0, +0x21ed9074)); // movzx r27, word ptr [r28+r29*1+0x21ed9074] IID20488 - __ movzwq(r28, Address(r29, r30, (Address::ScaleFactor)0, -0x3cac330e)); // movzx r28, word ptr [r29+r30*1-0x3cac330e] IID20489 - __ movzwq(r29, Address(r30, r31, (Address::ScaleFactor)0, -0xe08f796)); // movzx r29, word ptr [r30+r31*1-0xe08f796] IID20490 - __ movzwq(r30, Address(r31, rcx, (Address::ScaleFactor)0, -0x49123d01)); // movzx r30, word ptr [r31+rcx*1-0x49123d01] IID20491 - __ movzwq(r31, Address(rcx, rdx, (Address::ScaleFactor)3, -0x464ab31e)); // movzx r31, word ptr [rcx+rdx*8-0x464ab31e] IID20492 - __ movsbq(rcx, Address(rdx, rbx, (Address::ScaleFactor)3, +0x1582bfee)); // movsx rcx, byte ptr [rdx+rbx*8+0x1582bfee] IID20493 - __ movsbq(rdx, Address(rbx, r8, (Address::ScaleFactor)0, -0xd56ef74)); // movsx rdx, byte ptr [rbx+r8*1-0xd56ef74] IID20494 - __ movsbq(rbx, Address(r8, +0x240703a9)); // movsx rbx, byte ptr [r8+0x240703a9] IID20495 - __ movsbq(r8, Address(r9, r10, (Address::ScaleFactor)1, +0x6dcc0437)); // movsx r8, byte ptr [r9+r10*2+0x6dcc0437] IID20496 - __ movsbq(r9, Address(r10, +0x7d731419)); // movsx r9, byte ptr [r10+0x7d731419] IID20497 - __ movsbq(r10, Address(r11, r12, (Address::ScaleFactor)1, +0x1c4c152b)); // movsx r10, byte ptr [r11+r12*2+0x1c4c152b] IID20498 - __ movsbq(r11, Address(r12, r13, (Address::ScaleFactor)2, -0x8d4865d)); // movsx r11, byte ptr [r12+r13*4-0x8d4865d] IID20499 - __ movsbq(r12, Address(r13, r14, (Address::ScaleFactor)1, -0x2de1591d)); // movsx r12, byte ptr [r13+r14*2-0x2de1591d] IID20500 - __ movsbq(r13, Address(r14, r15, (Address::ScaleFactor)0, -0x61ecc01d)); // movsx r13, byte ptr [r14+r15*1-0x61ecc01d] IID20501 - __ movsbq(r14, Address(r15, r16, (Address::ScaleFactor)0, +0x4706dd48)); // movsx r14, byte ptr [r15+r16*1+0x4706dd48] IID20502 - __ movsbq(r15, Address(r16, r17, (Address::ScaleFactor)0, +0x771794a1)); // movsx r15, byte ptr [r16+r17*1+0x771794a1] IID20503 - __ movsbq(r16, Address(r17, r18, (Address::ScaleFactor)3, -0x607d2e59)); // movsx r16, byte ptr [r17+r18*8-0x607d2e59] IID20504 - __ movsbq(r17, Address(r18, +0x470d0543)); // movsx r17, byte ptr [r18+0x470d0543] IID20505 - __ movsbq(r18, Address(r19, r20, (Address::ScaleFactor)1, +0x29456f7e)); // movsx r18, byte ptr [r19+r20*2+0x29456f7e] IID20506 - __ movsbq(r19, Address(r20, +0x1e080420)); // movsx r19, byte ptr [r20+0x1e080420] IID20507 - __ movsbq(r20, Address(r21, r22, (Address::ScaleFactor)2, +0x6526eae0)); // movsx r20, byte ptr [r21+r22*4+0x6526eae0] IID20508 - __ movsbq(r21, Address(r22, r23, (Address::ScaleFactor)0, -0x2b218621)); // movsx r21, byte ptr [r22+r23*1-0x2b218621] IID20509 - __ movsbq(r22, Address(r23, r24, (Address::ScaleFactor)0, +0x7fa42c3a)); // movsx r22, byte ptr [r23+r24*1+0x7fa42c3a] IID20510 - __ movsbq(r23, Address(r24, -0x4c2b5ded)); // movsx r23, byte ptr [r24-0x4c2b5ded] IID20511 - __ movsbq(r24, Address(r25, r26, (Address::ScaleFactor)0, +0x408a5294)); // movsx r24, byte ptr [r25+r26*1+0x408a5294] IID20512 - __ movsbq(r25, Address(r26, -0x416c19c4)); // movsx r25, byte ptr [r26-0x416c19c4] IID20513 - __ movsbq(r26, Address(r27, r28, (Address::ScaleFactor)0, -0x68d24bea)); // movsx r26, byte ptr [r27+r28*1-0x68d24bea] IID20514 - __ movsbq(r27, Address(r28, r29, (Address::ScaleFactor)0, +0x42506abb)); // movsx r27, byte ptr [r28+r29*1+0x42506abb] IID20515 - __ movsbq(r28, Address(r29, r30, (Address::ScaleFactor)2, -0xaddf2f8)); // movsx r28, byte ptr [r29+r30*4-0xaddf2f8] IID20516 - __ movsbq(r29, Address(r30, -0x22052012)); // movsx r29, byte ptr [r30-0x22052012] IID20517 - __ movsbq(r30, Address(r31, rcx, (Address::ScaleFactor)3, +0x701bd3e8)); // movsx r30, byte ptr [r31+rcx*8+0x701bd3e8] IID20518 - __ movsbq(r31, Address(rcx, rdx, (Address::ScaleFactor)0, -0x6b92eec1)); // movsx r31, byte ptr [rcx+rdx*1-0x6b92eec1] IID20519 - __ movswq(rcx, Address(rdx, rbx, (Address::ScaleFactor)1, +0xca88d0d)); // movsx rcx, word ptr [rdx+rbx*2+0xca88d0d] IID20520 - __ movswq(rdx, Address(rbx, r8, (Address::ScaleFactor)1, -0x3dcee41b)); // movsx rdx, word ptr [rbx+r8*2-0x3dcee41b] IID20521 - __ movswq(rbx, Address(r8, r9, (Address::ScaleFactor)3, -0x13295db4)); // movsx rbx, word ptr [r8+r9*8-0x13295db4] IID20522 - __ movswq(r8, Address(r9, r10, (Address::ScaleFactor)0, -0x7f6cfd1b)); // movsx r8, word ptr [r9+r10*1-0x7f6cfd1b] IID20523 - __ movswq(r9, Address(r10, r11, (Address::ScaleFactor)1, -0x261effca)); // movsx r9, word ptr [r10+r11*2-0x261effca] IID20524 - __ movswq(r10, Address(r11, r12, (Address::ScaleFactor)2, +0x622cd07a)); // movsx r10, word ptr [r11+r12*4+0x622cd07a] IID20525 - __ movswq(r11, Address(r12, r13, (Address::ScaleFactor)3, -0x7187fc00)); // movsx r11, word ptr [r12+r13*8-0x7187fc00] IID20526 - __ movswq(r12, Address(r13, r14, (Address::ScaleFactor)2, -0x1fb3a261)); // movsx r12, word ptr [r13+r14*4-0x1fb3a261] IID20527 - __ movswq(r13, Address(r14, -0xa7e4610)); // movsx r13, word ptr [r14-0xa7e4610] IID20528 - __ movswq(r14, Address(r15, r16, (Address::ScaleFactor)0, -0x2c5a7b52)); // movsx r14, word ptr [r15+r16*1-0x2c5a7b52] IID20529 - __ movswq(r15, Address(r16, r17, (Address::ScaleFactor)0, +0x3464583f)); // movsx r15, word ptr [r16+r17*1+0x3464583f] IID20530 - __ movswq(r16, Address(r17, r18, (Address::ScaleFactor)3, +0x379af4f)); // movsx r16, word ptr [r17+r18*8+0x379af4f] IID20531 - __ movswq(r17, Address(r18, r19, (Address::ScaleFactor)2, +0x356dd2bb)); // movsx r17, word ptr [r18+r19*4+0x356dd2bb] IID20532 - __ movswq(r18, Address(r19, -0x55083fc5)); // movsx r18, word ptr [r19-0x55083fc5] IID20533 - __ movswq(r19, Address(r20, r21, (Address::ScaleFactor)3, +0x704b9ae4)); // movsx r19, word ptr [r20+r21*8+0x704b9ae4] IID20534 - __ movswq(r20, Address(r21, r22, (Address::ScaleFactor)2, +0x65cc5291)); // movsx r20, word ptr [r21+r22*4+0x65cc5291] IID20535 - __ movswq(r21, Address(r22, r23, (Address::ScaleFactor)2, +0x7a646806)); // movsx r21, word ptr [r22+r23*4+0x7a646806] IID20536 - __ movswq(r22, Address(r23, r24, (Address::ScaleFactor)3, -0x4391c71a)); // movsx r22, word ptr [r23+r24*8-0x4391c71a] IID20537 - __ movswq(r23, Address(r24, r25, (Address::ScaleFactor)1, +0x33fd019b)); // movsx r23, word ptr [r24+r25*2+0x33fd019b] IID20538 - __ movswq(r24, Address(r25, r26, (Address::ScaleFactor)3, -0x6e49a620)); // movsx r24, word ptr [r25+r26*8-0x6e49a620] IID20539 - __ movswq(r25, Address(r26, r27, (Address::ScaleFactor)0, +0xbd55fa0)); // movsx r25, word ptr [r26+r27*1+0xbd55fa0] IID20540 - __ movswq(r26, Address(r27, r28, (Address::ScaleFactor)2, +0x5bda2e2f)); // movsx r26, word ptr [r27+r28*4+0x5bda2e2f] IID20541 - __ movswq(r27, Address(r28, r29, (Address::ScaleFactor)3, -0x659b3d45)); // movsx r27, word ptr [r28+r29*8-0x659b3d45] IID20542 - __ movswq(r28, Address(r29, r30, (Address::ScaleFactor)1, +0x63db0a3f)); // movsx r28, word ptr [r29+r30*2+0x63db0a3f] IID20543 - __ movswq(r29, Address(r30, -0x78b5876)); // movsx r29, word ptr [r30-0x78b5876] IID20544 - __ movswq(r30, Address(r31, rcx, (Address::ScaleFactor)0, +0x11d7ba11)); // movsx r30, word ptr [r31+rcx*1+0x11d7ba11] IID20545 - __ movswq(r31, Address(rcx, +0x7a2cc1d3)); // movsx r31, word ptr [rcx+0x7a2cc1d3] IID20546 - __ movzbq(rcx, rdx); // movzx rcx, dl IID20547 - __ movzbq(rdx, rbx); // movzx rdx, bl IID20548 - __ movzbq(rbx, r8); // movzx rbx, r8b IID20549 - __ movzbq(r8, r9); // movzx r8, r9b IID20550 - __ movzbq(r9, r10); // movzx r9, r10b IID20551 - __ movzbq(r10, r11); // movzx r10, r11b IID20552 - __ movzbq(r11, r12); // movzx r11, r12b IID20553 - __ movzbq(r12, r13); // movzx r12, r13b IID20554 - __ movzbq(r13, r14); // movzx r13, r14b IID20555 - __ movzbq(r14, r15); // movzx r14, r15b IID20556 - __ movzbq(r15, r16); // movzx r15, r16b IID20557 - __ movzbq(r16, r17); // movzx r16, r17b IID20558 - __ movzbq(r17, r18); // movzx r17, r18b IID20559 - __ movzbq(r18, r19); // movzx r18, r19b IID20560 - __ movzbq(r19, r20); // movzx r19, r20b IID20561 - __ movzbq(r20, r21); // movzx r20, r21b IID20562 - __ movzbq(r21, r22); // movzx r21, r22b IID20563 - __ movzbq(r22, r23); // movzx r22, r23b IID20564 - __ movzbq(r23, r24); // movzx r23, r24b IID20565 - __ movzbq(r24, r25); // movzx r24, r25b IID20566 - __ movzbq(r25, r26); // movzx r25, r26b IID20567 - __ movzbq(r26, r27); // movzx r26, r27b IID20568 - __ movzbq(r27, r28); // movzx r27, r28b IID20569 - __ movzbq(r28, r29); // movzx r28, r29b IID20570 - __ movzbq(r29, r30); // movzx r29, r30b IID20571 - __ movzbq(r30, r31); // movzx r30, r31b IID20572 - __ movzbq(r31, rcx); // movzx r31, cl IID20573 - __ movzwq(rcx, rdx); // movzx rcx, dx IID20574 - __ movzwq(rdx, rbx); // movzx rdx, bx IID20575 - __ movzwq(rbx, r8); // movzx rbx, r8w IID20576 - __ movzwq(r8, r9); // movzx r8, r9w IID20577 - __ movzwq(r9, r10); // movzx r9, r10w IID20578 - __ movzwq(r10, r11); // movzx r10, r11w IID20579 - __ movzwq(r11, r12); // movzx r11, r12w IID20580 - __ movzwq(r12, r13); // movzx r12, r13w IID20581 - __ movzwq(r13, r14); // movzx r13, r14w IID20582 - __ movzwq(r14, r15); // movzx r14, r15w IID20583 - __ movzwq(r15, r16); // movzx r15, r16w IID20584 - __ movzwq(r16, r17); // movzx r16, r17w IID20585 - __ movzwq(r17, r18); // movzx r17, r18w IID20586 - __ movzwq(r18, r19); // movzx r18, r19w IID20587 - __ movzwq(r19, r20); // movzx r19, r20w IID20588 - __ movzwq(r20, r21); // movzx r20, r21w IID20589 - __ movzwq(r21, r22); // movzx r21, r22w IID20590 - __ movzwq(r22, r23); // movzx r22, r23w IID20591 - __ movzwq(r23, r24); // movzx r23, r24w IID20592 - __ movzwq(r24, r25); // movzx r24, r25w IID20593 - __ movzwq(r25, r26); // movzx r25, r26w IID20594 - __ movzwq(r26, r27); // movzx r26, r27w IID20595 - __ movzwq(r27, r28); // movzx r27, r28w IID20596 - __ movzwq(r28, r29); // movzx r28, r29w IID20597 - __ movzwq(r29, r30); // movzx r29, r30w IID20598 - __ movzwq(r30, r31); // movzx r30, r31w IID20599 - __ movzwq(r31, rcx); // movzx r31, cx IID20600 - __ movsbq(rcx, rdx); // movsx rcx, dl IID20601 - __ movsbq(rdx, rbx); // movsx rdx, bl IID20602 - __ movsbq(rbx, r8); // movsx rbx, r8b IID20603 - __ movsbq(r8, r9); // movsx r8, r9b IID20604 - __ movsbq(r9, r10); // movsx r9, r10b IID20605 - __ movsbq(r10, r11); // movsx r10, r11b IID20606 - __ movsbq(r11, r12); // movsx r11, r12b IID20607 - __ movsbq(r12, r13); // movsx r12, r13b IID20608 - __ movsbq(r13, r14); // movsx r13, r14b IID20609 - __ movsbq(r14, r15); // movsx r14, r15b IID20610 - __ movsbq(r15, r16); // movsx r15, r16b IID20611 - __ movsbq(r16, r17); // movsx r16, r17b IID20612 - __ movsbq(r17, r18); // movsx r17, r18b IID20613 - __ movsbq(r18, r19); // movsx r18, r19b IID20614 - __ movsbq(r19, r20); // movsx r19, r20b IID20615 - __ movsbq(r20, r21); // movsx r20, r21b IID20616 - __ movsbq(r21, r22); // movsx r21, r22b IID20617 - __ movsbq(r22, r23); // movsx r22, r23b IID20618 - __ movsbq(r23, r24); // movsx r23, r24b IID20619 - __ movsbq(r24, r25); // movsx r24, r25b IID20620 - __ movsbq(r25, r26); // movsx r25, r26b IID20621 - __ movsbq(r26, r27); // movsx r26, r27b IID20622 - __ movsbq(r27, r28); // movsx r27, r28b IID20623 - __ movsbq(r28, r29); // movsx r28, r29b IID20624 - __ movsbq(r29, r30); // movsx r29, r30b IID20625 - __ movsbq(r30, r31); // movsx r30, r31b IID20626 - __ movsbq(r31, rcx); // movsx r31, cl IID20627 - __ movswq(rcx, rdx); // movsx rcx, dx IID20628 - __ movswq(rdx, rbx); // movsx rdx, bx IID20629 - __ movswq(rbx, r8); // movsx rbx, r8w IID20630 - __ movswq(r8, r9); // movsx r8, r9w IID20631 - __ movswq(r9, r10); // movsx r9, r10w IID20632 - __ movswq(r10, r11); // movsx r10, r11w IID20633 - __ movswq(r11, r12); // movsx r11, r12w IID20634 - __ movswq(r12, r13); // movsx r12, r13w IID20635 - __ movswq(r13, r14); // movsx r13, r14w IID20636 - __ movswq(r14, r15); // movsx r14, r15w IID20637 - __ movswq(r15, r16); // movsx r15, r16w IID20638 - __ movswq(r16, r17); // movsx r16, r17w IID20639 - __ movswq(r17, r18); // movsx r17, r18w IID20640 - __ movswq(r18, r19); // movsx r18, r19w IID20641 - __ movswq(r19, r20); // movsx r19, r20w IID20642 - __ movswq(r20, r21); // movsx r20, r21w IID20643 - __ movswq(r21, r22); // movsx r21, r22w IID20644 - __ movswq(r22, r23); // movsx r22, r23w IID20645 - __ movswq(r23, r24); // movsx r23, r24w IID20646 - __ movswq(r24, r25); // movsx r24, r25w IID20647 - __ movswq(r25, r26); // movsx r25, r26w IID20648 - __ movswq(r26, r27); // movsx r26, r27w IID20649 - __ movswq(r27, r28); // movsx r27, r28w IID20650 - __ movswq(r28, r29); // movsx r28, r29w IID20651 - __ movswq(r29, r30); // movsx r29, r30w IID20652 - __ movswq(r30, r31); // movsx r30, r31w IID20653 - __ movswq(r31, rcx); // movsx r31, cx IID20654 - __ cmpxchgq(rcx, Address(rdx, rbx, (Address::ScaleFactor)1, +0x5d31e725)); // cmpxchg qword ptr [rdx+rbx*2+0x5d31e725], rcx IID20655 - __ cmpxchgq(rdx, Address(rbx, r8, (Address::ScaleFactor)0, -0x70138231)); // cmpxchg qword ptr [rbx+r8*1-0x70138231], rdx IID20656 - __ cmpxchgq(rbx, Address(r8, r9, (Address::ScaleFactor)0, -0x2a47f447)); // cmpxchg qword ptr [r8+r9*1-0x2a47f447], rbx IID20657 - __ cmpxchgq(r8, Address(r9, -0x50d1b6d3)); // cmpxchg qword ptr [r9-0x50d1b6d3], r8 IID20658 - __ cmpxchgq(r9, Address(r10, r11, (Address::ScaleFactor)1, -0x59c7976e)); // cmpxchg qword ptr [r10+r11*2-0x59c7976e], r9 IID20659 - __ cmpxchgq(r10, Address(r11, r12, (Address::ScaleFactor)0, -0x64831cf3)); // cmpxchg qword ptr [r11+r12*1-0x64831cf3], r10 IID20660 - __ cmpxchgq(r11, Address(r12, r13, (Address::ScaleFactor)1, +0x70d6616)); // cmpxchg qword ptr [r12+r13*2+0x70d6616], r11 IID20661 - __ cmpxchgq(r12, Address(r13, r14, (Address::ScaleFactor)2, +0x3dcb655)); // cmpxchg qword ptr [r13+r14*4+0x3dcb655], r12 IID20662 - __ cmpxchgq(r13, Address(r14, -0x259dc446)); // cmpxchg qword ptr [r14-0x259dc446], r13 IID20663 - __ cmpxchgq(r14, Address(r15, r16, (Address::ScaleFactor)3, +0x28521ce9)); // cmpxchg qword ptr [r15+r16*8+0x28521ce9], r14 IID20664 - __ cmpxchgq(r15, Address(r16, r17, (Address::ScaleFactor)2, +0xb2fd52a)); // cmpxchg qword ptr [r16+r17*4+0xb2fd52a], r15 IID20665 - __ cmpxchgq(r16, Address(r17, -0x3f102d6c)); // cmpxchg qword ptr [r17-0x3f102d6c], r16 IID20666 - __ cmpxchgq(r17, Address(r18, r19, (Address::ScaleFactor)2, -0x43be5155)); // cmpxchg qword ptr [r18+r19*4-0x43be5155], r17 IID20667 - __ cmpxchgq(r18, Address(r19, r20, (Address::ScaleFactor)2, +0x3bfafcd3)); // cmpxchg qword ptr [r19+r20*4+0x3bfafcd3], r18 IID20668 - __ cmpxchgq(r19, Address(r20, r21, (Address::ScaleFactor)2, -0xbbf2fa)); // cmpxchg qword ptr [r20+r21*4-0xbbf2fa], r19 IID20669 - __ cmpxchgq(r20, Address(r21, +0x79321232)); // cmpxchg qword ptr [r21+0x79321232], r20 IID20670 - __ cmpxchgq(r21, Address(r22, +0x57babd15)); // cmpxchg qword ptr [r22+0x57babd15], r21 IID20671 - __ cmpxchgq(r22, Address(r23, r24, (Address::ScaleFactor)0, -0x546ad306)); // cmpxchg qword ptr [r23+r24*1-0x546ad306], r22 IID20672 - __ cmpxchgq(r23, Address(r24, r25, (Address::ScaleFactor)2, -0x63efec3d)); // cmpxchg qword ptr [r24+r25*4-0x63efec3d], r23 IID20673 - __ cmpxchgq(r24, Address(r25, r26, (Address::ScaleFactor)2, -0x2570164)); // cmpxchg qword ptr [r25+r26*4-0x2570164], r24 IID20674 - __ cmpxchgq(r25, Address(r26, r27, (Address::ScaleFactor)0, +0x4b0f9a57)); // cmpxchg qword ptr [r26+r27*1+0x4b0f9a57], r25 IID20675 - __ cmpxchgq(r26, Address(r27, +0x48db79fc)); // cmpxchg qword ptr [r27+0x48db79fc], r26 IID20676 - __ cmpxchgq(r27, Address(r28, r29, (Address::ScaleFactor)1, +0x1fb62fc6)); // cmpxchg qword ptr [r28+r29*2+0x1fb62fc6], r27 IID20677 - __ cmpxchgq(r28, Address(r29, r30, (Address::ScaleFactor)0, +0xf481314)); // cmpxchg qword ptr [r29+r30*1+0xf481314], r28 IID20678 - __ cmpxchgq(r29, Address(r30, r31, (Address::ScaleFactor)2, +0x6bc86fe0)); // cmpxchg qword ptr [r30+r31*4+0x6bc86fe0], r29 IID20679 - __ cmpxchgq(r30, Address(r31, rcx, (Address::ScaleFactor)3, -0x67a82045)); // cmpxchg qword ptr [r31+rcx*8-0x67a82045], r30 IID20680 - __ cmpxchgq(r31, Address(rcx, rdx, (Address::ScaleFactor)3, -0x7e8a1d6d)); // cmpxchg qword ptr [rcx+rdx*8-0x7e8a1d6d], r31 IID20681 -#endif // _LP64 - - static const uint8_t insns[] = - { - 0x0f, 0xa5, 0xd1, // IID0 - 0x0f, 0xa5, 0xda, // IID1 -#ifdef _LP64 - 0x44, 0x0f, 0xa5, 0xc3, // IID2 - 0x45, 0x0f, 0xa5, 0xc8, // IID3 - 0x45, 0x0f, 0xa5, 0xd1, // IID4 - 0x45, 0x0f, 0xa5, 0xda, // IID5 - 0x45, 0x0f, 0xa5, 0xe3, // IID6 - 0x45, 0x0f, 0xa5, 0xec, // IID7 - 0x45, 0x0f, 0xa5, 0xf5, // IID8 - 0x45, 0x0f, 0xa5, 0xfe, // IID9 - 0xd5, 0xc1, 0xa5, 0xc7, // IID10 - 0xd5, 0xd0, 0xa5, 0xc8, // IID11 - 0xd5, 0xd0, 0xa5, 0xd1, // IID12 - 0xd5, 0xd0, 0xa5, 0xda, // IID13 - 0xd5, 0xd0, 0xa5, 0xe3, // IID14 - 0xd5, 0xd0, 0xa5, 0xec, // IID15 - 0xd5, 0xd0, 0xa5, 0xf5, // IID16 - 0xd5, 0xd0, 0xa5, 0xfe, // IID17 - 0xd5, 0xd4, 0xa5, 0xc7, // IID18 - 0xd5, 0xd5, 0xa5, 0xc8, // IID19 - 0xd5, 0xd5, 0xa5, 0xd1, // IID20 - 0xd5, 0xd5, 0xa5, 0xda, // IID21 - 0xd5, 0xd5, 0xa5, 0xe3, // IID22 - 0xd5, 0xd5, 0xa5, 0xec, // IID23 - 0xd5, 0xd5, 0xa5, 0xf5, // IID24 - 0xd5, 0xd5, 0xa5, 0xfe, // IID25 - 0xd5, 0x91, 0xa5, 0xcf, // IID26 -#endif // _LP64 - 0x0f, 0xad, 0xd1, // IID27 - 0x0f, 0xad, 0xda, // IID28 -#ifdef _LP64 - 0x44, 0x0f, 0xad, 0xc3, // IID29 - 0x45, 0x0f, 0xad, 0xc8, // IID30 - 0x45, 0x0f, 0xad, 0xd1, // IID31 - 0x45, 0x0f, 0xad, 0xda, // IID32 - 0x45, 0x0f, 0xad, 0xe3, // IID33 - 0x45, 0x0f, 0xad, 0xec, // IID34 - 0x45, 0x0f, 0xad, 0xf5, // IID35 - 0x45, 0x0f, 0xad, 0xfe, // IID36 - 0xd5, 0xc1, 0xad, 0xc7, // IID37 - 0xd5, 0xd0, 0xad, 0xc8, // IID38 - 0xd5, 0xd0, 0xad, 0xd1, // IID39 - 0xd5, 0xd0, 0xad, 0xda, // IID40 - 0xd5, 0xd0, 0xad, 0xe3, // IID41 - 0xd5, 0xd0, 0xad, 0xec, // IID42 - 0xd5, 0xd0, 0xad, 0xf5, // IID43 - 0xd5, 0xd0, 0xad, 0xfe, // IID44 - 0xd5, 0xd4, 0xad, 0xc7, // IID45 - 0xd5, 0xd5, 0xad, 0xc8, // IID46 - 0xd5, 0xd5, 0xad, 0xd1, // IID47 - 0xd5, 0xd5, 0xad, 0xda, // IID48 - 0xd5, 0xd5, 0xad, 0xe3, // IID49 - 0xd5, 0xd5, 0xad, 0xec, // IID50 - 0xd5, 0xd5, 0xad, 0xf5, // IID51 - 0xd5, 0xd5, 0xad, 0xfe, // IID52 - 0xd5, 0x91, 0xad, 0xcf, // IID53 -#endif // _LP64 - 0x13, 0xca, // IID54 - 0x13, 0xd3, // IID55 -#ifdef _LP64 - 0x41, 0x13, 0xd8, // IID56 - 0x45, 0x13, 0xc1, // IID57 - 0x45, 0x13, 0xca, // IID58 - 0x45, 0x13, 0xd3, // IID59 - 0x45, 0x13, 0xdc, // IID60 - 0x45, 0x13, 0xe5, // IID61 - 0x45, 0x13, 0xee, // IID62 - 0x45, 0x13, 0xf7, // IID63 - 0xd5, 0x14, 0x13, 0xf8, // IID64 - 0xd5, 0x50, 0x13, 0xc1, // IID65 - 0xd5, 0x50, 0x13, 0xca, // IID66 - 0xd5, 0x50, 0x13, 0xd3, // IID67 - 0xd5, 0x50, 0x13, 0xdc, // IID68 - 0xd5, 0x50, 0x13, 0xe5, // IID69 - 0xd5, 0x50, 0x13, 0xee, // IID70 - 0xd5, 0x50, 0x13, 0xf7, // IID71 - 0xd5, 0x51, 0x13, 0xf8, // IID72 - 0xd5, 0x55, 0x13, 0xc1, // IID73 - 0xd5, 0x55, 0x13, 0xca, // IID74 - 0xd5, 0x55, 0x13, 0xd3, // IID75 - 0xd5, 0x55, 0x13, 0xdc, // IID76 - 0xd5, 0x55, 0x13, 0xe5, // IID77 - 0xd5, 0x55, 0x13, 0xee, // IID78 - 0xd5, 0x55, 0x13, 0xf7, // IID79 - 0xd5, 0x44, 0x13, 0xf9, // IID80 -#endif // _LP64 - 0x3b, 0xca, // IID81 - 0x3b, 0xd3, // IID82 -#ifdef _LP64 - 0x41, 0x3b, 0xd8, // IID83 - 0x45, 0x3b, 0xc1, // IID84 - 0x45, 0x3b, 0xca, // IID85 - 0x45, 0x3b, 0xd3, // IID86 - 0x45, 0x3b, 0xdc, // IID87 - 0x45, 0x3b, 0xe5, // IID88 - 0x45, 0x3b, 0xee, // IID89 - 0x45, 0x3b, 0xf7, // IID90 - 0xd5, 0x14, 0x3b, 0xf8, // IID91 - 0xd5, 0x50, 0x3b, 0xc1, // IID92 - 0xd5, 0x50, 0x3b, 0xca, // IID93 - 0xd5, 0x50, 0x3b, 0xd3, // IID94 - 0xd5, 0x50, 0x3b, 0xdc, // IID95 - 0xd5, 0x50, 0x3b, 0xe5, // IID96 - 0xd5, 0x50, 0x3b, 0xee, // IID97 - 0xd5, 0x50, 0x3b, 0xf7, // IID98 - 0xd5, 0x51, 0x3b, 0xf8, // IID99 - 0xd5, 0x55, 0x3b, 0xc1, // IID100 - 0xd5, 0x55, 0x3b, 0xca, // IID101 - 0xd5, 0x55, 0x3b, 0xd3, // IID102 - 0xd5, 0x55, 0x3b, 0xdc, // IID103 - 0xd5, 0x55, 0x3b, 0xe5, // IID104 - 0xd5, 0x55, 0x3b, 0xee, // IID105 - 0xd5, 0x55, 0x3b, 0xf7, // IID106 - 0xd5, 0x44, 0x3b, 0xf9, // IID107 -#endif // _LP64 - 0x0f, 0xaf, 0xca, // IID108 - 0x0f, 0xaf, 0xd3, // IID109 -#ifdef _LP64 - 0x41, 0x0f, 0xaf, 0xd8, // IID110 - 0x45, 0x0f, 0xaf, 0xc1, // IID111 - 0x45, 0x0f, 0xaf, 0xca, // IID112 - 0x45, 0x0f, 0xaf, 0xd3, // IID113 - 0x45, 0x0f, 0xaf, 0xdc, // IID114 - 0x45, 0x0f, 0xaf, 0xe5, // IID115 - 0x45, 0x0f, 0xaf, 0xee, // IID116 - 0x45, 0x0f, 0xaf, 0xf7, // IID117 - 0xd5, 0x94, 0xaf, 0xf8, // IID118 - 0xd5, 0xd0, 0xaf, 0xc1, // IID119 - 0xd5, 0xd0, 0xaf, 0xca, // IID120 - 0xd5, 0xd0, 0xaf, 0xd3, // IID121 - 0xd5, 0xd0, 0xaf, 0xdc, // IID122 - 0xd5, 0xd0, 0xaf, 0xe5, // IID123 - 0xd5, 0xd0, 0xaf, 0xee, // IID124 - 0xd5, 0xd0, 0xaf, 0xf7, // IID125 - 0xd5, 0xd1, 0xaf, 0xf8, // IID126 - 0xd5, 0xd5, 0xaf, 0xc1, // IID127 - 0xd5, 0xd5, 0xaf, 0xca, // IID128 - 0xd5, 0xd5, 0xaf, 0xd3, // IID129 - 0xd5, 0xd5, 0xaf, 0xdc, // IID130 - 0xd5, 0xd5, 0xaf, 0xe5, // IID131 - 0xd5, 0xd5, 0xaf, 0xee, // IID132 - 0xd5, 0xd5, 0xaf, 0xf7, // IID133 - 0xd5, 0xc4, 0xaf, 0xf9, // IID134 -#endif // _LP64 - 0xf3, 0x0f, 0xb8, 0xca, // IID135 - 0xf3, 0x0f, 0xb8, 0xd3, // IID136 -#ifdef _LP64 - 0xf3, 0x41, 0x0f, 0xb8, 0xd8, // IID137 - 0xf3, 0x45, 0x0f, 0xb8, 0xc1, // IID138 - 0xf3, 0x45, 0x0f, 0xb8, 0xca, // IID139 - 0xf3, 0x45, 0x0f, 0xb8, 0xd3, // IID140 - 0xf3, 0x45, 0x0f, 0xb8, 0xdc, // IID141 - 0xf3, 0x45, 0x0f, 0xb8, 0xe5, // IID142 - 0xf3, 0x45, 0x0f, 0xb8, 0xee, // IID143 - 0xf3, 0x45, 0x0f, 0xb8, 0xf7, // IID144 - 0xf3, 0xd5, 0x94, 0xb8, 0xf8, // IID145 - 0xf3, 0xd5, 0xd0, 0xb8, 0xc1, // IID146 - 0xf3, 0xd5, 0xd0, 0xb8, 0xca, // IID147 - 0xf3, 0xd5, 0xd0, 0xb8, 0xd3, // IID148 - 0xf3, 0xd5, 0xd0, 0xb8, 0xdc, // IID149 - 0xf3, 0xd5, 0xd0, 0xb8, 0xe5, // IID150 - 0xf3, 0xd5, 0xd0, 0xb8, 0xee, // IID151 - 0xf3, 0xd5, 0xd0, 0xb8, 0xf7, // IID152 - 0xf3, 0xd5, 0xd1, 0xb8, 0xf8, // IID153 - 0xf3, 0xd5, 0xd5, 0xb8, 0xc1, // IID154 - 0xf3, 0xd5, 0xd5, 0xb8, 0xca, // IID155 - 0xf3, 0xd5, 0xd5, 0xb8, 0xd3, // IID156 - 0xf3, 0xd5, 0xd5, 0xb8, 0xdc, // IID157 - 0xf3, 0xd5, 0xd5, 0xb8, 0xe5, // IID158 - 0xf3, 0xd5, 0xd5, 0xb8, 0xee, // IID159 - 0xf3, 0xd5, 0xd5, 0xb8, 0xf7, // IID160 - 0xf3, 0xd5, 0xc4, 0xb8, 0xf9, // IID161 -#endif // _LP64 - 0x1b, 0xca, // IID162 - 0x1b, 0xd3, // IID163 -#ifdef _LP64 - 0x41, 0x1b, 0xd8, // IID164 - 0x45, 0x1b, 0xc1, // IID165 - 0x45, 0x1b, 0xca, // IID166 - 0x45, 0x1b, 0xd3, // IID167 - 0x45, 0x1b, 0xdc, // IID168 - 0x45, 0x1b, 0xe5, // IID169 - 0x45, 0x1b, 0xee, // IID170 - 0x45, 0x1b, 0xf7, // IID171 - 0xd5, 0x14, 0x1b, 0xf8, // IID172 - 0xd5, 0x50, 0x1b, 0xc1, // IID173 - 0xd5, 0x50, 0x1b, 0xca, // IID174 - 0xd5, 0x50, 0x1b, 0xd3, // IID175 - 0xd5, 0x50, 0x1b, 0xdc, // IID176 - 0xd5, 0x50, 0x1b, 0xe5, // IID177 - 0xd5, 0x50, 0x1b, 0xee, // IID178 - 0xd5, 0x50, 0x1b, 0xf7, // IID179 - 0xd5, 0x51, 0x1b, 0xf8, // IID180 - 0xd5, 0x55, 0x1b, 0xc1, // IID181 - 0xd5, 0x55, 0x1b, 0xca, // IID182 - 0xd5, 0x55, 0x1b, 0xd3, // IID183 - 0xd5, 0x55, 0x1b, 0xdc, // IID184 - 0xd5, 0x55, 0x1b, 0xe5, // IID185 - 0xd5, 0x55, 0x1b, 0xee, // IID186 - 0xd5, 0x55, 0x1b, 0xf7, // IID187 - 0xd5, 0x44, 0x1b, 0xf9, // IID188 -#endif // _LP64 - 0x2b, 0xca, // IID189 - 0x2b, 0xd3, // IID190 -#ifdef _LP64 - 0x41, 0x2b, 0xd8, // IID191 - 0x45, 0x2b, 0xc1, // IID192 - 0x45, 0x2b, 0xca, // IID193 - 0x45, 0x2b, 0xd3, // IID194 - 0x45, 0x2b, 0xdc, // IID195 - 0x45, 0x2b, 0xe5, // IID196 - 0x45, 0x2b, 0xee, // IID197 - 0x45, 0x2b, 0xf7, // IID198 - 0xd5, 0x14, 0x2b, 0xf8, // IID199 - 0xd5, 0x50, 0x2b, 0xc1, // IID200 - 0xd5, 0x50, 0x2b, 0xca, // IID201 - 0xd5, 0x50, 0x2b, 0xd3, // IID202 - 0xd5, 0x50, 0x2b, 0xdc, // IID203 - 0xd5, 0x50, 0x2b, 0xe5, // IID204 - 0xd5, 0x50, 0x2b, 0xee, // IID205 - 0xd5, 0x50, 0x2b, 0xf7, // IID206 - 0xd5, 0x51, 0x2b, 0xf8, // IID207 - 0xd5, 0x55, 0x2b, 0xc1, // IID208 - 0xd5, 0x55, 0x2b, 0xca, // IID209 - 0xd5, 0x55, 0x2b, 0xd3, // IID210 - 0xd5, 0x55, 0x2b, 0xdc, // IID211 - 0xd5, 0x55, 0x2b, 0xe5, // IID212 - 0xd5, 0x55, 0x2b, 0xee, // IID213 - 0xd5, 0x55, 0x2b, 0xf7, // IID214 - 0xd5, 0x44, 0x2b, 0xf9, // IID215 -#endif // _LP64 - 0xf3, 0x0f, 0xbc, 0xca, // IID216 - 0xf3, 0x0f, 0xbc, 0xd3, // IID217 -#ifdef _LP64 - 0xf3, 0x41, 0x0f, 0xbc, 0xd8, // IID218 - 0xf3, 0x45, 0x0f, 0xbc, 0xc1, // IID219 - 0xf3, 0x45, 0x0f, 0xbc, 0xca, // IID220 - 0xf3, 0x45, 0x0f, 0xbc, 0xd3, // IID221 - 0xf3, 0x45, 0x0f, 0xbc, 0xdc, // IID222 - 0xf3, 0x45, 0x0f, 0xbc, 0xe5, // IID223 - 0xf3, 0x45, 0x0f, 0xbc, 0xee, // IID224 - 0xf3, 0x45, 0x0f, 0xbc, 0xf7, // IID225 - 0xf3, 0xd5, 0x94, 0xbc, 0xf8, // IID226 - 0xf3, 0xd5, 0xd0, 0xbc, 0xc1, // IID227 - 0xf3, 0xd5, 0xd0, 0xbc, 0xca, // IID228 - 0xf3, 0xd5, 0xd0, 0xbc, 0xd3, // IID229 - 0xf3, 0xd5, 0xd0, 0xbc, 0xdc, // IID230 - 0xf3, 0xd5, 0xd0, 0xbc, 0xe5, // IID231 - 0xf3, 0xd5, 0xd0, 0xbc, 0xee, // IID232 - 0xf3, 0xd5, 0xd0, 0xbc, 0xf7, // IID233 - 0xf3, 0xd5, 0xd1, 0xbc, 0xf8, // IID234 - 0xf3, 0xd5, 0xd5, 0xbc, 0xc1, // IID235 - 0xf3, 0xd5, 0xd5, 0xbc, 0xca, // IID236 - 0xf3, 0xd5, 0xd5, 0xbc, 0xd3, // IID237 - 0xf3, 0xd5, 0xd5, 0xbc, 0xdc, // IID238 - 0xf3, 0xd5, 0xd5, 0xbc, 0xe5, // IID239 - 0xf3, 0xd5, 0xd5, 0xbc, 0xee, // IID240 - 0xf3, 0xd5, 0xd5, 0xbc, 0xf7, // IID241 - 0xf3, 0xd5, 0xc4, 0xbc, 0xf9, // IID242 -#endif // _LP64 - 0xf3, 0x0f, 0xbd, 0xca, // IID243 - 0xf3, 0x0f, 0xbd, 0xd3, // IID244 -#ifdef _LP64 - 0xf3, 0x41, 0x0f, 0xbd, 0xd8, // IID245 - 0xf3, 0x45, 0x0f, 0xbd, 0xc1, // IID246 - 0xf3, 0x45, 0x0f, 0xbd, 0xca, // IID247 - 0xf3, 0x45, 0x0f, 0xbd, 0xd3, // IID248 - 0xf3, 0x45, 0x0f, 0xbd, 0xdc, // IID249 - 0xf3, 0x45, 0x0f, 0xbd, 0xe5, // IID250 - 0xf3, 0x45, 0x0f, 0xbd, 0xee, // IID251 - 0xf3, 0x45, 0x0f, 0xbd, 0xf7, // IID252 - 0xf3, 0xd5, 0x94, 0xbd, 0xf8, // IID253 - 0xf3, 0xd5, 0xd0, 0xbd, 0xc1, // IID254 - 0xf3, 0xd5, 0xd0, 0xbd, 0xca, // IID255 - 0xf3, 0xd5, 0xd0, 0xbd, 0xd3, // IID256 - 0xf3, 0xd5, 0xd0, 0xbd, 0xdc, // IID257 - 0xf3, 0xd5, 0xd0, 0xbd, 0xe5, // IID258 - 0xf3, 0xd5, 0xd0, 0xbd, 0xee, // IID259 - 0xf3, 0xd5, 0xd0, 0xbd, 0xf7, // IID260 - 0xf3, 0xd5, 0xd1, 0xbd, 0xf8, // IID261 - 0xf3, 0xd5, 0xd5, 0xbd, 0xc1, // IID262 - 0xf3, 0xd5, 0xd5, 0xbd, 0xca, // IID263 - 0xf3, 0xd5, 0xd5, 0xbd, 0xd3, // IID264 - 0xf3, 0xd5, 0xd5, 0xbd, 0xdc, // IID265 - 0xf3, 0xd5, 0xd5, 0xbd, 0xe5, // IID266 - 0xf3, 0xd5, 0xd5, 0xbd, 0xee, // IID267 - 0xf3, 0xd5, 0xd5, 0xbd, 0xf7, // IID268 - 0xf3, 0xd5, 0xc4, 0xbd, 0xf9, // IID269 -#endif // _LP64 - 0x03, 0xca, // IID270 - 0x03, 0xd3, // IID271 -#ifdef _LP64 - 0x41, 0x03, 0xd8, // IID272 - 0x45, 0x03, 0xc1, // IID273 - 0x45, 0x03, 0xca, // IID274 - 0x45, 0x03, 0xd3, // IID275 - 0x45, 0x03, 0xdc, // IID276 - 0x45, 0x03, 0xe5, // IID277 - 0x45, 0x03, 0xee, // IID278 - 0x45, 0x03, 0xf7, // IID279 - 0xd5, 0x14, 0x03, 0xf8, // IID280 - 0xd5, 0x50, 0x03, 0xc1, // IID281 - 0xd5, 0x50, 0x03, 0xca, // IID282 - 0xd5, 0x50, 0x03, 0xd3, // IID283 - 0xd5, 0x50, 0x03, 0xdc, // IID284 - 0xd5, 0x50, 0x03, 0xe5, // IID285 - 0xd5, 0x50, 0x03, 0xee, // IID286 - 0xd5, 0x50, 0x03, 0xf7, // IID287 - 0xd5, 0x51, 0x03, 0xf8, // IID288 - 0xd5, 0x55, 0x03, 0xc1, // IID289 - 0xd5, 0x55, 0x03, 0xca, // IID290 - 0xd5, 0x55, 0x03, 0xd3, // IID291 - 0xd5, 0x55, 0x03, 0xdc, // IID292 - 0xd5, 0x55, 0x03, 0xe5, // IID293 - 0xd5, 0x55, 0x03, 0xee, // IID294 - 0xd5, 0x55, 0x03, 0xf7, // IID295 - 0xd5, 0x44, 0x03, 0xf9, // IID296 -#endif // _LP64 - 0x23, 0xca, // IID297 - 0x23, 0xd3, // IID298 -#ifdef _LP64 - 0x41, 0x23, 0xd8, // IID299 - 0x45, 0x23, 0xc1, // IID300 - 0x45, 0x23, 0xca, // IID301 - 0x45, 0x23, 0xd3, // IID302 - 0x45, 0x23, 0xdc, // IID303 - 0x45, 0x23, 0xe5, // IID304 - 0x45, 0x23, 0xee, // IID305 - 0x45, 0x23, 0xf7, // IID306 - 0xd5, 0x14, 0x23, 0xf8, // IID307 - 0xd5, 0x50, 0x23, 0xc1, // IID308 - 0xd5, 0x50, 0x23, 0xca, // IID309 - 0xd5, 0x50, 0x23, 0xd3, // IID310 - 0xd5, 0x50, 0x23, 0xdc, // IID311 - 0xd5, 0x50, 0x23, 0xe5, // IID312 - 0xd5, 0x50, 0x23, 0xee, // IID313 - 0xd5, 0x50, 0x23, 0xf7, // IID314 - 0xd5, 0x51, 0x23, 0xf8, // IID315 - 0xd5, 0x55, 0x23, 0xc1, // IID316 - 0xd5, 0x55, 0x23, 0xca, // IID317 - 0xd5, 0x55, 0x23, 0xd3, // IID318 - 0xd5, 0x55, 0x23, 0xdc, // IID319 - 0xd5, 0x55, 0x23, 0xe5, // IID320 - 0xd5, 0x55, 0x23, 0xee, // IID321 - 0xd5, 0x55, 0x23, 0xf7, // IID322 - 0xd5, 0x44, 0x23, 0xf9, // IID323 -#endif // _LP64 - 0x0b, 0xca, // IID324 - 0x0b, 0xd3, // IID325 -#ifdef _LP64 - 0x41, 0x0b, 0xd8, // IID326 - 0x45, 0x0b, 0xc1, // IID327 - 0x45, 0x0b, 0xca, // IID328 - 0x45, 0x0b, 0xd3, // IID329 - 0x45, 0x0b, 0xdc, // IID330 - 0x45, 0x0b, 0xe5, // IID331 - 0x45, 0x0b, 0xee, // IID332 - 0x45, 0x0b, 0xf7, // IID333 - 0xd5, 0x14, 0x0b, 0xf8, // IID334 - 0xd5, 0x50, 0x0b, 0xc1, // IID335 - 0xd5, 0x50, 0x0b, 0xca, // IID336 - 0xd5, 0x50, 0x0b, 0xd3, // IID337 - 0xd5, 0x50, 0x0b, 0xdc, // IID338 - 0xd5, 0x50, 0x0b, 0xe5, // IID339 - 0xd5, 0x50, 0x0b, 0xee, // IID340 - 0xd5, 0x50, 0x0b, 0xf7, // IID341 - 0xd5, 0x51, 0x0b, 0xf8, // IID342 - 0xd5, 0x55, 0x0b, 0xc1, // IID343 - 0xd5, 0x55, 0x0b, 0xca, // IID344 - 0xd5, 0x55, 0x0b, 0xd3, // IID345 - 0xd5, 0x55, 0x0b, 0xdc, // IID346 - 0xd5, 0x55, 0x0b, 0xe5, // IID347 - 0xd5, 0x55, 0x0b, 0xee, // IID348 - 0xd5, 0x55, 0x0b, 0xf7, // IID349 - 0xd5, 0x44, 0x0b, 0xf9, // IID350 -#endif // _LP64 - 0x33, 0xca, // IID351 - 0x33, 0xd3, // IID352 -#ifdef _LP64 - 0x41, 0x33, 0xd8, // IID353 - 0x45, 0x33, 0xc1, // IID354 - 0x45, 0x33, 0xca, // IID355 - 0x45, 0x33, 0xd3, // IID356 - 0x45, 0x33, 0xdc, // IID357 - 0x45, 0x33, 0xe5, // IID358 - 0x45, 0x33, 0xee, // IID359 - 0x45, 0x33, 0xf7, // IID360 - 0xd5, 0x14, 0x33, 0xf8, // IID361 - 0xd5, 0x50, 0x33, 0xc1, // IID362 - 0xd5, 0x50, 0x33, 0xca, // IID363 - 0xd5, 0x50, 0x33, 0xd3, // IID364 - 0xd5, 0x50, 0x33, 0xdc, // IID365 - 0xd5, 0x50, 0x33, 0xe5, // IID366 - 0xd5, 0x50, 0x33, 0xee, // IID367 - 0xd5, 0x50, 0x33, 0xf7, // IID368 - 0xd5, 0x51, 0x33, 0xf8, // IID369 - 0xd5, 0x55, 0x33, 0xc1, // IID370 - 0xd5, 0x55, 0x33, 0xca, // IID371 - 0xd5, 0x55, 0x33, 0xd3, // IID372 - 0xd5, 0x55, 0x33, 0xdc, // IID373 - 0xd5, 0x55, 0x33, 0xe5, // IID374 - 0xd5, 0x55, 0x33, 0xee, // IID375 - 0xd5, 0x55, 0x33, 0xf7, // IID376 - 0xd5, 0x44, 0x33, 0xf9, // IID377 -#endif // _LP64 - 0x8b, 0xca, // IID378 - 0x8b, 0xd3, // IID379 -#ifdef _LP64 - 0x41, 0x8b, 0xd8, // IID380 - 0x45, 0x8b, 0xc1, // IID381 - 0x45, 0x8b, 0xca, // IID382 - 0x45, 0x8b, 0xd3, // IID383 - 0x45, 0x8b, 0xdc, // IID384 - 0x45, 0x8b, 0xe5, // IID385 - 0x45, 0x8b, 0xee, // IID386 - 0x45, 0x8b, 0xf7, // IID387 - 0xd5, 0x14, 0x8b, 0xf8, // IID388 - 0xd5, 0x50, 0x8b, 0xc1, // IID389 - 0xd5, 0x50, 0x8b, 0xca, // IID390 - 0xd5, 0x50, 0x8b, 0xd3, // IID391 - 0xd5, 0x50, 0x8b, 0xdc, // IID392 - 0xd5, 0x50, 0x8b, 0xe5, // IID393 - 0xd5, 0x50, 0x8b, 0xee, // IID394 - 0xd5, 0x50, 0x8b, 0xf7, // IID395 - 0xd5, 0x51, 0x8b, 0xf8, // IID396 - 0xd5, 0x55, 0x8b, 0xc1, // IID397 - 0xd5, 0x55, 0x8b, 0xca, // IID398 - 0xd5, 0x55, 0x8b, 0xd3, // IID399 - 0xd5, 0x55, 0x8b, 0xdc, // IID400 - 0xd5, 0x55, 0x8b, 0xe5, // IID401 - 0xd5, 0x55, 0x8b, 0xee, // IID402 - 0xd5, 0x55, 0x8b, 0xf7, // IID403 - 0xd5, 0x44, 0x8b, 0xf9, // IID404 -#endif // _LP64 - 0x0f, 0xbc, 0xca, // IID405 - 0x0f, 0xbc, 0xd3, // IID406 -#ifdef _LP64 - 0x41, 0x0f, 0xbc, 0xd8, // IID407 - 0x45, 0x0f, 0xbc, 0xc1, // IID408 - 0x45, 0x0f, 0xbc, 0xca, // IID409 - 0x45, 0x0f, 0xbc, 0xd3, // IID410 - 0x45, 0x0f, 0xbc, 0xdc, // IID411 - 0x45, 0x0f, 0xbc, 0xe5, // IID412 - 0x45, 0x0f, 0xbc, 0xee, // IID413 - 0x45, 0x0f, 0xbc, 0xf7, // IID414 - 0xd5, 0x94, 0xbc, 0xf8, // IID415 - 0xd5, 0xd0, 0xbc, 0xc1, // IID416 - 0xd5, 0xd0, 0xbc, 0xca, // IID417 - 0xd5, 0xd0, 0xbc, 0xd3, // IID418 - 0xd5, 0xd0, 0xbc, 0xdc, // IID419 - 0xd5, 0xd0, 0xbc, 0xe5, // IID420 - 0xd5, 0xd0, 0xbc, 0xee, // IID421 - 0xd5, 0xd0, 0xbc, 0xf7, // IID422 - 0xd5, 0xd1, 0xbc, 0xf8, // IID423 - 0xd5, 0xd5, 0xbc, 0xc1, // IID424 - 0xd5, 0xd5, 0xbc, 0xca, // IID425 - 0xd5, 0xd5, 0xbc, 0xd3, // IID426 - 0xd5, 0xd5, 0xbc, 0xdc, // IID427 - 0xd5, 0xd5, 0xbc, 0xe5, // IID428 - 0xd5, 0xd5, 0xbc, 0xee, // IID429 - 0xd5, 0xd5, 0xbc, 0xf7, // IID430 - 0xd5, 0xc4, 0xbc, 0xf9, // IID431 -#endif // _LP64 - 0x0f, 0xbd, 0xca, // IID432 - 0x0f, 0xbd, 0xd3, // IID433 -#ifdef _LP64 - 0x41, 0x0f, 0xbd, 0xd8, // IID434 - 0x45, 0x0f, 0xbd, 0xc1, // IID435 - 0x45, 0x0f, 0xbd, 0xca, // IID436 - 0x45, 0x0f, 0xbd, 0xd3, // IID437 - 0x45, 0x0f, 0xbd, 0xdc, // IID438 - 0x45, 0x0f, 0xbd, 0xe5, // IID439 - 0x45, 0x0f, 0xbd, 0xee, // IID440 - 0x45, 0x0f, 0xbd, 0xf7, // IID441 - 0xd5, 0x94, 0xbd, 0xf8, // IID442 - 0xd5, 0xd0, 0xbd, 0xc1, // IID443 - 0xd5, 0xd0, 0xbd, 0xca, // IID444 - 0xd5, 0xd0, 0xbd, 0xd3, // IID445 - 0xd5, 0xd0, 0xbd, 0xdc, // IID446 - 0xd5, 0xd0, 0xbd, 0xe5, // IID447 - 0xd5, 0xd0, 0xbd, 0xee, // IID448 - 0xd5, 0xd0, 0xbd, 0xf7, // IID449 - 0xd5, 0xd1, 0xbd, 0xf8, // IID450 - 0xd5, 0xd5, 0xbd, 0xc1, // IID451 - 0xd5, 0xd5, 0xbd, 0xca, // IID452 - 0xd5, 0xd5, 0xbd, 0xd3, // IID453 - 0xd5, 0xd5, 0xbd, 0xdc, // IID454 - 0xd5, 0xd5, 0xbd, 0xe5, // IID455 - 0xd5, 0xd5, 0xbd, 0xee, // IID456 - 0xd5, 0xd5, 0xbd, 0xf7, // IID457 - 0xd5, 0xc4, 0xbd, 0xf9, // IID458 -#endif // _LP64 - 0x87, 0xca, // IID459 - 0x87, 0xd3, // IID460 -#ifdef _LP64 - 0x41, 0x87, 0xd8, // IID461 - 0x45, 0x87, 0xc1, // IID462 - 0x45, 0x87, 0xca, // IID463 - 0x45, 0x87, 0xd3, // IID464 - 0x45, 0x87, 0xdc, // IID465 - 0x45, 0x87, 0xe5, // IID466 - 0x45, 0x87, 0xee, // IID467 - 0x45, 0x87, 0xf7, // IID468 - 0xd5, 0x14, 0x87, 0xf8, // IID469 - 0xd5, 0x50, 0x87, 0xc1, // IID470 - 0xd5, 0x50, 0x87, 0xca, // IID471 - 0xd5, 0x50, 0x87, 0xd3, // IID472 - 0xd5, 0x50, 0x87, 0xdc, // IID473 - 0xd5, 0x50, 0x87, 0xe5, // IID474 - 0xd5, 0x50, 0x87, 0xee, // IID475 - 0xd5, 0x50, 0x87, 0xf7, // IID476 - 0xd5, 0x51, 0x87, 0xf8, // IID477 - 0xd5, 0x55, 0x87, 0xc1, // IID478 - 0xd5, 0x55, 0x87, 0xca, // IID479 - 0xd5, 0x55, 0x87, 0xd3, // IID480 - 0xd5, 0x55, 0x87, 0xdc, // IID481 - 0xd5, 0x55, 0x87, 0xe5, // IID482 - 0xd5, 0x55, 0x87, 0xee, // IID483 - 0xd5, 0x55, 0x87, 0xf7, // IID484 - 0xd5, 0x44, 0x87, 0xf9, // IID485 -#endif // _LP64 - 0x85, 0xca, // IID486 - 0x85, 0xd3, // IID487 -#ifdef _LP64 - 0x41, 0x85, 0xd8, // IID488 - 0x45, 0x85, 0xc1, // IID489 - 0x45, 0x85, 0xca, // IID490 - 0x45, 0x85, 0xd3, // IID491 - 0x45, 0x85, 0xdc, // IID492 - 0x45, 0x85, 0xe5, // IID493 - 0x45, 0x85, 0xee, // IID494 - 0x45, 0x85, 0xf7, // IID495 - 0xd5, 0x14, 0x85, 0xf8, // IID496 - 0xd5, 0x50, 0x85, 0xc1, // IID497 - 0xd5, 0x50, 0x85, 0xca, // IID498 - 0xd5, 0x50, 0x85, 0xd3, // IID499 - 0xd5, 0x50, 0x85, 0xdc, // IID500 - 0xd5, 0x50, 0x85, 0xe5, // IID501 - 0xd5, 0x50, 0x85, 0xee, // IID502 - 0xd5, 0x50, 0x85, 0xf7, // IID503 - 0xd5, 0x51, 0x85, 0xf8, // IID504 - 0xd5, 0x55, 0x85, 0xc1, // IID505 - 0xd5, 0x55, 0x85, 0xca, // IID506 - 0xd5, 0x55, 0x85, 0xd3, // IID507 - 0xd5, 0x55, 0x85, 0xdc, // IID508 - 0xd5, 0x55, 0x85, 0xe5, // IID509 - 0xd5, 0x55, 0x85, 0xee, // IID510 - 0xd5, 0x55, 0x85, 0xf7, // IID511 - 0xd5, 0x44, 0x85, 0xf9, // IID512 -#endif // _LP64 - 0x00, 0x8c, 0xda, 0xdb, 0x5b, 0xe4, 0xdf, // IID513 -#ifdef _LP64 - 0x00, 0x93, 0x75, 0xca, 0x3f, 0x74, // IID514 - 0x41, 0x00, 0x98, 0x36, 0xa4, 0x4e, 0xb7, // IID515 - 0x47, 0x00, 0x84, 0x51, 0x60, 0x3f, 0xf3, 0x4b, // IID516 - 0x47, 0x00, 0x8c, 0x1a, 0x47, 0x0b, 0x52, 0x8a, // IID517 - 0x47, 0x00, 0x94, 0x63, 0x08, 0x6d, 0x12, 0x77, // IID518 - 0x45, 0x00, 0x9c, 0x24, 0x9f, 0xb9, 0xf5, 0xb0, // IID519 - 0x45, 0x00, 0xa5, 0x6a, 0xdf, 0x2e, 0x2e, // IID520 - 0x45, 0x00, 0xae, 0x08, 0xb1, 0x7d, 0x49, // IID521 - 0xd5, 0x25, 0x00, 0xb4, 0x87, 0x4c, 0x42, 0x53, 0x23, // IID522 - 0xd5, 0x34, 0x00, 0xbc, 0xc8, 0xbf, 0xea, 0x9e, 0xc9, // IID523 - 0xd5, 0x70, 0x00, 0x84, 0x91, 0xd4, 0xf9, 0xb8, 0x9a, // IID524 - 0xd5, 0x70, 0x00, 0x8c, 0x5a, 0x3f, 0x0c, 0x8a, 0xeb, // IID525 - 0xd5, 0x70, 0x00, 0x94, 0xa3, 0xb5, 0x0a, 0x03, 0x91, // IID526 - 0xd5, 0x70, 0x00, 0x9c, 0xac, 0xb9, 0x1d, 0xaa, 0xd9, // IID527 - 0xd5, 0x70, 0x00, 0xa4, 0xf5, 0xdf, 0x82, 0xe4, 0xea, // IID528 - 0xd5, 0x50, 0x00, 0xae, 0x1c, 0x7f, 0x11, 0x8a, // IID529 - 0xd5, 0x72, 0x00, 0xb4, 0x07, 0xd8, 0x5e, 0x23, 0x91, // IID530 - 0xd5, 0x73, 0x00, 0xbc, 0x88, 0xa1, 0x56, 0x30, 0x32, // IID531 - 0xd5, 0x55, 0x00, 0x81, 0xea, 0x28, 0x6b, 0x47, // IID532 - 0xd5, 0x77, 0x00, 0x8c, 0xda, 0x3d, 0x57, 0x66, 0x81, // IID533 - 0xd5, 0x77, 0x00, 0x94, 0x23, 0x06, 0x31, 0xd4, 0x64, // IID534 - 0xd5, 0x55, 0x00, 0x9c, 0x24, 0xc8, 0x3b, 0x0d, 0x03, // IID535 - 0xd5, 0x77, 0x00, 0xa4, 0x35, 0x54, 0xce, 0x10, 0x69, // IID536 - 0xd5, 0x77, 0x00, 0xac, 0x7e, 0x12, 0x84, 0xea, 0xeb, // IID537 - 0xd5, 0x55, 0x00, 0xb4, 0x4f, 0x5e, 0x65, 0x53, 0x84, // IID538 - 0xd5, 0x44, 0x00, 0xbc, 0x91, 0x8d, 0x3a, 0xdc, 0x6a, // IID539 -#endif // _LP64 - 0x66, 0x01, 0x8a, 0xef, 0x59, 0x1e, 0x66, // IID540 -#ifdef _LP64 - 0x66, 0x42, 0x01, 0x94, 0x83, 0xca, 0xcc, 0x10, 0xab, // IID541 - 0x66, 0x43, 0x01, 0x9c, 0xc8, 0xbe, 0xf9, 0xa4, 0x21, // IID542 - 0x66, 0x47, 0x01, 0x84, 0x51, 0xd7, 0xeb, 0x9e, 0x7e, // IID543 - 0x66, 0x47, 0x01, 0x8c, 0x5a, 0x19, 0xc4, 0x6f, 0x89, // IID544 - 0x66, 0x45, 0x01, 0x93, 0xc5, 0xb9, 0xd3, 0xe5, // IID545 - 0x66, 0x47, 0x01, 0x9c, 0x6c, 0x8c, 0xc1, 0xba, 0x3d, // IID546 - 0x66, 0x47, 0x01, 0xa4, 0xf5, 0xa9, 0x98, 0x64, 0xcb, // IID547 - 0x66, 0x47, 0x01, 0xac, 0x7e, 0x0d, 0x13, 0x93, 0x74, // IID548 - 0x66, 0xd5, 0x25, 0x01, 0xb4, 0x87, 0x16, 0x0f, 0xae, 0x87, // IID549 - 0x66, 0xd5, 0x34, 0x01, 0xbc, 0x08, 0x84, 0xc9, 0xd8, 0x9e, // IID550 - 0x66, 0xd5, 0x50, 0x01, 0x81, 0x48, 0x9c, 0x15, 0x61, // IID551 - 0x66, 0xd5, 0x70, 0x01, 0x8c, 0xda, 0x6b, 0x78, 0xa4, 0x9e, // IID552 - 0x66, 0xd5, 0x70, 0x01, 0x94, 0xa3, 0x5b, 0x70, 0x8e, 0xd1, // IID553 - 0x66, 0xd5, 0x70, 0x01, 0x9c, 0x2c, 0x29, 0x98, 0x00, 0x9c, // IID554 - 0x66, 0xd5, 0x70, 0x01, 0xa4, 0xb5, 0x7b, 0xf7, 0xdb, 0x8b, // IID555 - 0x66, 0xd5, 0x70, 0x01, 0xac, 0xfe, 0x2d, 0x5d, 0x2e, 0xff, // IID556 - 0x66, 0xd5, 0x50, 0x01, 0xb7, 0x48, 0x39, 0xe2, 0xa8, // IID557 - 0x66, 0xd5, 0x73, 0x01, 0xbc, 0x88, 0x37, 0xfa, 0x82, 0xff, // IID558 - 0x66, 0xd5, 0x55, 0x01, 0x81, 0x88, 0xfa, 0xad, 0x1b, // IID559 - 0x66, 0xd5, 0x77, 0x01, 0x8c, 0x9a, 0x55, 0x8f, 0xdd, 0x1a, // IID560 - 0x66, 0xd5, 0x77, 0x01, 0x94, 0xa3, 0xe7, 0xad, 0xac, 0x5e, // IID561 - 0x66, 0xd5, 0x77, 0x01, 0x9c, 0x2c, 0x95, 0x25, 0x4f, 0x8d, // IID562 - 0x66, 0xd5, 0x77, 0x01, 0xa4, 0xb5, 0x21, 0x1f, 0x49, 0x5f, // IID563 - 0x66, 0xd5, 0x55, 0x01, 0xae, 0x15, 0x3e, 0x07, 0x13, // IID564 - 0x66, 0xd5, 0x55, 0x01, 0xb4, 0x4f, 0x6b, 0x60, 0x44, 0xe8, // IID565 - 0x66, 0xd5, 0x44, 0x01, 0xbc, 0x91, 0x31, 0xe0, 0xc7, 0x65, // IID566 -#endif // _LP64 - 0x01, 0x8a, 0x91, 0x93, 0xf1, 0xc4, // IID567 -#ifdef _LP64 - 0x01, 0x93, 0xe5, 0x20, 0x74, 0x81, // IID568 - 0x43, 0x01, 0x9c, 0x88, 0xdd, 0x7b, 0xcb, 0xa9, // IID569 - 0x47, 0x01, 0x84, 0x11, 0xfd, 0x50, 0x72, 0x4e, // IID570 - 0x47, 0x01, 0x8c, 0x1a, 0xb9, 0xa5, 0xa2, 0xc9, // IID571 - 0x47, 0x01, 0x94, 0xe3, 0x5d, 0x58, 0xd0, 0x96, // IID572 - 0x47, 0x01, 0x9c, 0x2c, 0x49, 0x8b, 0x75, 0x2a, // IID573 - 0x47, 0x01, 0xa4, 0xb5, 0xd8, 0x6d, 0x20, 0xae, // IID574 - 0x47, 0x01, 0xac, 0xbe, 0x81, 0xec, 0xcf, 0x71, // IID575 - 0x45, 0x01, 0xb7, 0x7e, 0x17, 0x56, 0x91, // IID576 - 0xd5, 0x34, 0x01, 0xbc, 0x48, 0x02, 0x7d, 0x2b, 0x5a, // IID577 - 0xd5, 0x70, 0x01, 0x84, 0x11, 0x8b, 0x04, 0x94, 0xf5, // IID578 - 0xd5, 0x70, 0x01, 0x8c, 0xda, 0x82, 0x4e, 0xa3, 0x5a, // IID579 - 0xd5, 0x50, 0x01, 0x93, 0xbb, 0x3b, 0x5a, 0xef, // IID580 - 0xd5, 0x70, 0x01, 0x9c, 0x2c, 0x26, 0xf6, 0x6c, 0x92, // IID581 - 0xd5, 0x70, 0x01, 0xa4, 0xf5, 0xd1, 0x37, 0xac, 0x52, // IID582 - 0xd5, 0x70, 0x01, 0xac, 0x3e, 0x12, 0x79, 0xc1, 0xef, // IID583 - 0xd5, 0x72, 0x01, 0xb4, 0xc7, 0x4b, 0x27, 0x61, 0x70, // IID584 - 0xd5, 0x73, 0x01, 0xbc, 0x88, 0x1c, 0x98, 0x45, 0x7c, // IID585 - 0xd5, 0x77, 0x01, 0x84, 0x11, 0x6e, 0x0f, 0xf0, 0x24, // IID586 - 0xd5, 0x77, 0x01, 0x8c, 0x1a, 0x8c, 0xa1, 0xe5, 0xf8, // IID587 - 0xd5, 0x77, 0x01, 0x94, 0x63, 0x09, 0x4c, 0x5f, 0x35, // IID588 - 0xd5, 0x77, 0x01, 0x9c, 0xec, 0x5c, 0x88, 0xc4, 0x43, // IID589 - 0xd5, 0x77, 0x01, 0xa4, 0xb5, 0xac, 0xe7, 0x7b, 0x86, // IID590 - 0xd5, 0x77, 0x01, 0xac, 0xfe, 0x36, 0xac, 0x84, 0x80, // IID591 - 0xd5, 0x55, 0x01, 0xb4, 0x4f, 0xa4, 0x7d, 0x62, 0x29, // IID592 - 0xd5, 0x44, 0x01, 0xb9, 0x1c, 0xca, 0xb0, 0xca, // IID593 -#endif // _LP64 - 0x11, 0x8c, 0x5a, 0x3f, 0x84, 0x6a, 0x9f, // IID594 -#ifdef _LP64 - 0x42, 0x11, 0x94, 0x83, 0x8d, 0x41, 0x13, 0x33, // IID595 - 0x43, 0x11, 0x9c, 0x88, 0xc4, 0xc3, 0x81, 0x89, // IID596 - 0x47, 0x11, 0x84, 0x11, 0xdd, 0x90, 0xd3, 0xe7, // IID597 - 0x47, 0x11, 0x8c, 0xda, 0xcb, 0x60, 0x8f, 0x71, // IID598 - 0x47, 0x11, 0x94, 0xe3, 0x95, 0x02, 0xc7, 0x12, // IID599 - 0x45, 0x11, 0x9c, 0x24, 0xb0, 0x13, 0x51, 0xac, // IID600 - 0x47, 0x11, 0xa4, 0xf5, 0x38, 0xbd, 0xfd, 0xcc, // IID601 - 0x47, 0x11, 0xac, 0xbe, 0xc1, 0xf0, 0xb4, 0x2f, // IID602 - 0xd5, 0x25, 0x11, 0xb4, 0x87, 0xc0, 0x0f, 0x17, 0xe2, // IID603 - 0xd5, 0x34, 0x11, 0xbc, 0x48, 0xb2, 0x60, 0x5d, 0x0b, // IID604 - 0xd5, 0x70, 0x11, 0x84, 0x51, 0x89, 0xdc, 0x41, 0xc7, // IID605 - 0xd5, 0x70, 0x11, 0x8c, 0x9a, 0x62, 0xc1, 0x43, 0xf2, // IID606 - 0xd5, 0x70, 0x11, 0x94, 0x23, 0x9e, 0xe3, 0xf5, 0x7e, // IID607 - 0xd5, 0x70, 0x11, 0x9c, 0xac, 0x8e, 0xbf, 0xe6, 0xa0, // IID608 - 0xd5, 0x70, 0x11, 0xa4, 0x75, 0x8b, 0x4a, 0x08, 0xa2, // IID609 - 0xd5, 0x70, 0x11, 0xac, 0xfe, 0x89, 0xaa, 0xc7, 0x63, // IID610 - 0xd5, 0x72, 0x11, 0xb4, 0x47, 0x88, 0x10, 0x65, 0xa2, // IID611 - 0xd5, 0x73, 0x11, 0xbc, 0x88, 0x7e, 0x9c, 0x3a, 0xbb, // IID612 - 0xd5, 0x77, 0x11, 0x84, 0xd1, 0x86, 0xdb, 0x34, 0xa9, // IID613 - 0xd5, 0x77, 0x11, 0x8c, 0xda, 0xf3, 0x1f, 0x7d, 0x40, // IID614 - 0xd5, 0x77, 0x11, 0x94, 0x23, 0x96, 0x24, 0x27, 0xbf, // IID615 - 0xd5, 0x77, 0x11, 0x9c, 0xec, 0x4e, 0x36, 0xdf, 0x7d, // IID616 - 0xd5, 0x77, 0x11, 0xa4, 0xb5, 0x06, 0xc9, 0x7f, 0x4f, // IID617 - 0xd5, 0x77, 0x11, 0xac, 0x7e, 0xd2, 0xbe, 0x27, 0x06, // IID618 - 0xd5, 0x55, 0x11, 0xb4, 0x4f, 0x55, 0x86, 0x34, 0x94, // IID619 - 0xd5, 0x44, 0x11, 0xbc, 0xd1, 0x93, 0xa2, 0x13, 0xe2, // IID620 -#endif // _LP64 - 0x20, 0x8c, 0xda, 0xd6, 0x1c, 0x78, 0xc0, // IID621 -#ifdef _LP64 - 0x42, 0x20, 0x94, 0x83, 0x4b, 0x99, 0x41, 0x24, // IID622 - 0x41, 0x20, 0x98, 0xd9, 0xf2, 0xad, 0x80, // IID623 - 0x47, 0x20, 0x84, 0x51, 0xb3, 0xea, 0xdc, 0x07, // IID624 - 0x47, 0x20, 0x8c, 0x1a, 0x1d, 0xa4, 0x58, 0x90, // IID625 - 0x45, 0x20, 0x93, 0x91, 0x3b, 0xa4, 0xa3, // IID626 - 0x45, 0x20, 0x9c, 0x24, 0xbe, 0x28, 0x2b, 0x3f, // IID627 - 0x47, 0x20, 0xa4, 0x75, 0x1b, 0x50, 0x10, 0x2b, // IID628 - 0x47, 0x20, 0xac, 0x7e, 0x37, 0x1d, 0xea, 0x1c, // IID629 - 0xd5, 0x25, 0x20, 0xb4, 0x07, 0xcc, 0xdf, 0x95, 0xf9, // IID630 - 0xd5, 0x14, 0x20, 0xb8, 0x05, 0x1d, 0x6b, 0x22, // IID631 - 0xd5, 0x70, 0x20, 0x84, 0x11, 0x7c, 0x3d, 0xe7, 0x17, // IID632 - 0xd5, 0x70, 0x20, 0x8c, 0x1a, 0xe9, 0xaf, 0x15, 0x5e, // IID633 - 0xd5, 0x50, 0x20, 0x93, 0xa8, 0x20, 0x01, 0xab, // IID634 - 0xd5, 0x70, 0x20, 0x9c, 0x2c, 0x73, 0x4d, 0x28, 0x29, // IID635 - 0xd5, 0x70, 0x20, 0xa4, 0x35, 0xd6, 0x04, 0x19, 0xe4, // IID636 - 0xd5, 0x70, 0x20, 0xac, 0x7e, 0x12, 0x49, 0x11, 0xfe, // IID637 - 0xd5, 0x72, 0x20, 0xb4, 0x87, 0x97, 0x17, 0x3c, 0x9f, // IID638 - 0xd5, 0x73, 0x20, 0xbc, 0xc8, 0x15, 0x98, 0x22, 0xfa, // IID639 - 0xd5, 0x55, 0x20, 0x81, 0x86, 0x12, 0x71, 0x36, // IID640 - 0xd5, 0x77, 0x20, 0x8c, 0x1a, 0xe8, 0x0f, 0x8c, 0x43, // IID641 - 0xd5, 0x55, 0x20, 0x93, 0x6c, 0xb6, 0x33, 0x54, // IID642 - 0xd5, 0x77, 0x20, 0x9c, 0xec, 0xf0, 0xe3, 0xa5, 0x26, // IID643 - 0xd5, 0x77, 0x20, 0xa4, 0xf5, 0x23, 0x8f, 0x99, 0xef, // IID644 - 0xd5, 0x77, 0x20, 0xac, 0xfe, 0x11, 0xb9, 0xde, 0x86, // IID645 - 0xd5, 0x55, 0x20, 0xb7, 0x36, 0x8d, 0x7e, 0x23, // IID646 - 0xd5, 0x44, 0x20, 0xbc, 0x51, 0xce, 0x33, 0x74, 0xdd, // IID647 -#endif // _LP64 - 0x21, 0x8a, 0x0f, 0x99, 0xaa, 0x62, // IID648 -#ifdef _LP64 - 0x42, 0x21, 0x94, 0x43, 0x91, 0xf5, 0xda, 0x90, // IID649 - 0x43, 0x21, 0x9c, 0x08, 0x11, 0x66, 0x2d, 0xb4, // IID650 - 0x47, 0x21, 0x84, 0x51, 0xda, 0x35, 0xf7, 0x27, // IID651 - 0x47, 0x21, 0x8c, 0x9a, 0x9d, 0x08, 0x7a, 0x74, // IID652 - 0x47, 0x21, 0x94, 0x23, 0x30, 0xf6, 0x87, 0xeb, // IID653 - 0x47, 0x21, 0x9c, 0x6c, 0x13, 0xe7, 0x90, 0x54, // IID654 - 0x47, 0x21, 0xa4, 0x35, 0xcb, 0xec, 0x02, 0x1b, // IID655 - 0x47, 0x21, 0xac, 0xfe, 0x79, 0xbe, 0x0e, 0x77, // IID656 - 0xd5, 0x25, 0x21, 0xb4, 0x87, 0x2a, 0xc5, 0x7c, 0x6c, // IID657 - 0xd5, 0x14, 0x21, 0xb8, 0x91, 0x28, 0x19, 0xfc, // IID658 - 0xd5, 0x50, 0x21, 0x81, 0x44, 0x32, 0x9e, 0x18, // IID659 - 0xd5, 0x70, 0x21, 0x8c, 0xda, 0x91, 0x2b, 0xdd, 0x3f, // IID660 - 0xd5, 0x70, 0x21, 0x94, 0xe3, 0x96, 0xfa, 0xd1, 0x81, // IID661 - 0xd5, 0x70, 0x21, 0x9c, 0x2c, 0x7b, 0x60, 0x5d, 0xd6, // IID662 - 0xd5, 0x70, 0x21, 0xa4, 0x75, 0x98, 0x2f, 0x4c, 0xda, // IID663 - 0xd5, 0x70, 0x21, 0xac, 0x7e, 0xf7, 0x29, 0xe8, 0xfb, // IID664 - 0xd5, 0x72, 0x21, 0xb4, 0x47, 0xb1, 0x0a, 0x56, 0x21, // IID665 - 0xd5, 0x51, 0x21, 0xb8, 0x55, 0x7c, 0x91, 0x5a, // IID666 - 0xd5, 0x55, 0x21, 0x81, 0x3c, 0xff, 0x13, 0xfd, // IID667 - 0xd5, 0x55, 0x21, 0x8a, 0x38, 0x2f, 0x0f, 0xb9, // IID668 - 0xd5, 0x55, 0x21, 0x93, 0x77, 0x23, 0xfe, 0xc7, // IID669 - 0xd5, 0x55, 0x21, 0x9c, 0x24, 0xa1, 0x5d, 0x49, 0x5c, // IID670 - 0xd5, 0x77, 0x21, 0xa4, 0xb5, 0x14, 0xe4, 0xbf, 0xdc, // IID671 - 0xd5, 0x77, 0x21, 0xac, 0xfe, 0x9d, 0xb7, 0x2b, 0xf3, // IID672 - 0xd5, 0x55, 0x21, 0xb4, 0xcf, 0x6b, 0xed, 0x35, 0x37, // IID673 - 0xd5, 0x44, 0x21, 0xbc, 0x51, 0x4e, 0xb3, 0x4b, 0x8a, // IID674 -#endif // _LP64 - 0x38, 0x8a, 0xc7, 0x30, 0xb4, 0xd5, // IID675 -#ifdef _LP64 - 0x42, 0x38, 0x94, 0x43, 0x75, 0xb2, 0x10, 0x13, // IID676 - 0x43, 0x38, 0x9c, 0xc8, 0x30, 0x89, 0xc2, 0x17, // IID677 - 0x45, 0x38, 0x81, 0xfc, 0x97, 0x69, 0xe0, // IID678 - 0x47, 0x38, 0x8c, 0x1a, 0xed, 0xd5, 0x32, 0x86, // IID679 - 0x47, 0x38, 0x94, 0xe3, 0x22, 0x76, 0x8c, 0x3e, // IID680 - 0x47, 0x38, 0x9c, 0x6c, 0x46, 0x08, 0xe0, 0x87, // IID681 - 0x47, 0x38, 0xa4, 0x35, 0x78, 0x3d, 0x4f, 0xee, // IID682 - 0x45, 0x38, 0xae, 0x7c, 0xf2, 0xd5, 0x79, // IID683 - 0xd5, 0x25, 0x38, 0xb4, 0x07, 0xc1, 0xbc, 0x55, 0x9d, // IID684 - 0xd5, 0x34, 0x38, 0xbc, 0xc8, 0x96, 0x0f, 0x4c, 0xdb, // IID685 - 0xd5, 0x50, 0x38, 0x81, 0x5c, 0xb1, 0x17, 0xe7, // IID686 - 0xd5, 0x70, 0x38, 0x8c, 0x9a, 0x3c, 0xb8, 0x02, 0xd7, // IID687 - 0xd5, 0x70, 0x38, 0x94, 0xa3, 0x1d, 0xd1, 0xd9, 0xba, // IID688 - 0xd5, 0x70, 0x38, 0x9c, 0xec, 0x38, 0x91, 0xf4, 0xa4, // IID689 - 0xd5, 0x70, 0x38, 0xa4, 0x35, 0xfc, 0xf3, 0x58, 0xf3, // IID690 - 0xd5, 0x70, 0x38, 0xac, 0xbe, 0x8b, 0x29, 0x01, 0x4c, // IID691 - 0xd5, 0x72, 0x38, 0xb4, 0xc7, 0x46, 0x05, 0xf2, 0x53, // IID692 - 0xd5, 0x73, 0x38, 0xbc, 0x48, 0xe1, 0x09, 0x31, 0xc7, // IID693 - 0xd5, 0x77, 0x38, 0x84, 0xd1, 0x4a, 0xa2, 0x77, 0xc0, // IID694 - 0xd5, 0x55, 0x38, 0x8a, 0xb3, 0xd1, 0xa0, 0x9b, // IID695 - 0xd5, 0x77, 0x38, 0x94, 0x63, 0xb1, 0xb6, 0xa9, 0x77, // IID696 - 0xd5, 0x77, 0x38, 0x9c, 0xac, 0xd4, 0xda, 0x34, 0x89, // IID697 - 0xd5, 0x77, 0x38, 0xa4, 0xf5, 0x40, 0x28, 0x2d, 0x43, // IID698 - 0xd5, 0x77, 0x38, 0xac, 0x7e, 0x9e, 0xf9, 0x46, 0x86, // IID699 - 0xd5, 0x55, 0x38, 0xb4, 0x4f, 0x73, 0xd1, 0xcf, 0xa3, // IID700 - 0xd5, 0x44, 0x38, 0xb9, 0x47, 0x73, 0xea, 0x88, // IID701 -#endif // _LP64 - 0x66, 0x39, 0x8a, 0xca, 0x12, 0x50, 0x29, // IID702 -#ifdef _LP64 - 0x66, 0x42, 0x39, 0x94, 0x83, 0xc3, 0xce, 0xd7, 0x11, // IID703 - 0x66, 0x43, 0x39, 0x9c, 0x88, 0xa3, 0xfd, 0x72, 0x3e, // IID704 - 0x66, 0x47, 0x39, 0x84, 0x51, 0x98, 0xee, 0x2a, 0x53, // IID705 - 0x66, 0x47, 0x39, 0x8c, 0x5a, 0x67, 0x1b, 0x9d, 0x2f, // IID706 - 0x66, 0x47, 0x39, 0x94, 0xe3, 0xb8, 0xff, 0x95, 0xc0, // IID707 - 0x66, 0x47, 0x39, 0x9c, 0xac, 0xa4, 0x1f, 0x9d, 0x74, // IID708 - 0x66, 0x47, 0x39, 0xa4, 0x75, 0x38, 0x35, 0x04, 0x1d, // IID709 - 0x66, 0x47, 0x39, 0xac, 0xfe, 0x86, 0x2c, 0x74, 0x8b, // IID710 - 0x66, 0xd5, 0x25, 0x39, 0xb4, 0xc7, 0xff, 0x62, 0xb7, 0x6b, // IID711 - 0x66, 0xd5, 0x34, 0x39, 0xbc, 0xc8, 0x2c, 0xeb, 0x4b, 0xab, // IID712 - 0x66, 0xd5, 0x70, 0x39, 0x84, 0x91, 0x5b, 0x6b, 0x7a, 0x2c, // IID713 - 0x66, 0xd5, 0x70, 0x39, 0x8c, 0x1a, 0x4b, 0x00, 0x05, 0x4d, // IID714 - 0x66, 0xd5, 0x70, 0x39, 0x94, 0x63, 0xc2, 0xf2, 0x31, 0xa5, // IID715 - 0x66, 0xd5, 0x70, 0x39, 0x9c, 0xec, 0x6f, 0x36, 0xb9, 0x71, // IID716 - 0x66, 0xd5, 0x70, 0x39, 0xa4, 0x75, 0x15, 0xc2, 0x95, 0x5f, // IID717 - 0x66, 0xd5, 0x70, 0x39, 0xac, 0x3e, 0xc4, 0xb8, 0x8c, 0x37, // IID718 - 0x66, 0xd5, 0x72, 0x39, 0xb4, 0x47, 0xb1, 0x55, 0xd2, 0xd6, // IID719 - 0x66, 0xd5, 0x73, 0x39, 0xbc, 0x08, 0xbb, 0xc4, 0xb7, 0x3b, // IID720 - 0x66, 0xd5, 0x77, 0x39, 0x84, 0x51, 0xc9, 0x09, 0xb1, 0xd3, // IID721 - 0x66, 0xd5, 0x77, 0x39, 0x8c, 0xda, 0x0f, 0x19, 0xa1, 0x95, // IID722 - 0x66, 0xd5, 0x77, 0x39, 0x94, 0xa3, 0x51, 0xe6, 0xdc, 0xd2, // IID723 - 0x66, 0xd5, 0x77, 0x39, 0x9c, 0xec, 0x4f, 0xed, 0x8f, 0x05, // IID724 - 0x66, 0xd5, 0x77, 0x39, 0xa4, 0x35, 0xda, 0x32, 0x5f, 0xb8, // IID725 - 0x66, 0xd5, 0x77, 0x39, 0xac, 0x3e, 0xe9, 0xec, 0x6c, 0xf3, // IID726 - 0x66, 0xd5, 0x55, 0x39, 0xb4, 0x4f, 0x0b, 0x0b, 0xd3, 0x0b, // IID727 - 0x66, 0xd5, 0x44, 0x39, 0xbc, 0xd1, 0xe1, 0xe3, 0xa4, 0xa5, // IID728 -#endif // _LP64 - 0x39, 0x8c, 0xda, 0x14, 0x81, 0x72, 0xda, // IID729 -#ifdef _LP64 - 0x42, 0x39, 0x94, 0x43, 0xc4, 0xef, 0xb7, 0x6a, // IID730 - 0x41, 0x39, 0x98, 0x99, 0x49, 0x8d, 0xba, // IID731 - 0x47, 0x39, 0x84, 0xd1, 0xda, 0xbc, 0x5d, 0x2e, // IID732 - 0x47, 0x39, 0x8c, 0xda, 0x94, 0xc5, 0xa8, 0x50, // IID733 - 0x47, 0x39, 0x94, 0xa3, 0x14, 0x1e, 0xe4, 0xf3, // IID734 - 0x47, 0x39, 0x9c, 0x2c, 0xdf, 0x89, 0xe3, 0x0b, // IID735 - 0x47, 0x39, 0xa4, 0x75, 0x18, 0xcf, 0x24, 0xe1, // IID736 - 0x47, 0x39, 0xac, 0x7e, 0xfa, 0xe9, 0x93, 0xdf, // IID737 - 0xd5, 0x25, 0x39, 0xb4, 0x07, 0x88, 0x54, 0xab, 0x7d, // IID738 - 0xd5, 0x34, 0x39, 0xbc, 0x48, 0xb1, 0x3f, 0xbe, 0x05, // IID739 - 0xd5, 0x70, 0x39, 0x84, 0x91, 0x7a, 0x53, 0xe8, 0x6a, // IID740 - 0xd5, 0x70, 0x39, 0x8c, 0x5a, 0x7d, 0xe8, 0xac, 0x30, // IID741 - 0xd5, 0x70, 0x39, 0x94, 0xe3, 0xf1, 0x5f, 0xad, 0xed, // IID742 - 0xd5, 0x70, 0x39, 0x9c, 0xec, 0x20, 0x42, 0xed, 0x3b, // IID743 - 0xd5, 0x50, 0x39, 0xa5, 0xc8, 0xaa, 0xd2, 0x88, // IID744 - 0xd5, 0x70, 0x39, 0xac, 0xfe, 0x56, 0xe0, 0x0e, 0xe5, // IID745 - 0xd5, 0x72, 0x39, 0xb4, 0xc7, 0x61, 0x52, 0xe5, 0x53, // IID746 - 0xd5, 0x73, 0x39, 0xbc, 0x48, 0x32, 0x43, 0x66, 0xb5, // IID747 - 0xd5, 0x55, 0x39, 0x81, 0xfd, 0x32, 0xb6, 0x37, // IID748 - 0xd5, 0x77, 0x39, 0x8c, 0xda, 0x2e, 0x05, 0x7c, 0x17, // IID749 - 0xd5, 0x55, 0x39, 0x93, 0x51, 0x45, 0x3b, 0xdb, // IID750 - 0xd5, 0x55, 0x39, 0x9c, 0x24, 0xdd, 0x92, 0x39, 0x3e, // IID751 - 0xd5, 0x77, 0x39, 0xa4, 0xb5, 0x25, 0x1f, 0x57, 0x81, // IID752 - 0xd5, 0x55, 0x39, 0xae, 0x87, 0xb3, 0xf2, 0x36, // IID753 - 0xd5, 0x55, 0x39, 0xb4, 0x0f, 0x8d, 0xf3, 0xcb, 0x1f, // IID754 - 0xd5, 0x44, 0x39, 0xbc, 0x91, 0x0e, 0x66, 0x69, 0x80, // IID755 -#endif // _LP64 - 0x08, 0x8a, 0xb9, 0x6d, 0x7b, 0x8a, // IID756 -#ifdef _LP64 - 0x08, 0x93, 0xdf, 0x88, 0x8c, 0x0d, // IID757 - 0x43, 0x08, 0x9c, 0x48, 0xd2, 0x95, 0x8f, 0x56, // IID758 - 0x47, 0x08, 0x84, 0xd1, 0xb2, 0x0c, 0xb0, 0xb9, // IID759 - 0x47, 0x08, 0x8c, 0x9a, 0x14, 0xa0, 0xd7, 0x37, // IID760 - 0x47, 0x08, 0x94, 0xe3, 0x04, 0x30, 0xf1, 0xbd, // IID761 - 0x47, 0x08, 0x9c, 0xec, 0x8c, 0xeb, 0xdf, 0xb7, // IID762 - 0x47, 0x08, 0xa4, 0x75, 0x54, 0x7f, 0x0e, 0x1b, // IID763 - 0x47, 0x08, 0xac, 0xbe, 0x8c, 0x52, 0x16, 0xc6, // IID764 - 0xd5, 0x25, 0x08, 0xb4, 0x47, 0xa3, 0x81, 0x3e, 0x2d, // IID765 - 0xd5, 0x14, 0x08, 0xb8, 0x58, 0x66, 0xde, 0x79, // IID766 - 0xd5, 0x70, 0x08, 0x84, 0x91, 0xa0, 0x27, 0x9a, 0xac, // IID767 - 0xd5, 0x70, 0x08, 0x8c, 0x5a, 0x29, 0xe4, 0x95, 0xc8, // IID768 - 0xd5, 0x70, 0x08, 0x94, 0x23, 0x05, 0x23, 0xe5, 0xca, // IID769 - 0xd5, 0x50, 0x08, 0x9c, 0x24, 0x56, 0xf0, 0xc7, 0xb1, // IID770 - 0xd5, 0x70, 0x08, 0xa4, 0x35, 0x22, 0x4b, 0xac, 0xef, // IID771 - 0xd5, 0x70, 0x08, 0xac, 0xbe, 0xfd, 0xe7, 0xa3, 0x7f, // IID772 - 0xd5, 0x72, 0x08, 0xb4, 0x47, 0x7a, 0x90, 0x1b, 0xf3, // IID773 - 0xd5, 0x51, 0x08, 0xb8, 0xc7, 0x3f, 0x4a, 0x1c, // IID774 - 0xd5, 0x55, 0x08, 0x81, 0x8b, 0xd1, 0xc5, 0x89, // IID775 - 0xd5, 0x77, 0x08, 0x8c, 0x1a, 0x60, 0x09, 0x02, 0x5f, // IID776 - 0xd5, 0x77, 0x08, 0x94, 0x63, 0x3b, 0x20, 0xdf, 0x56, // IID777 - 0xd5, 0x77, 0x08, 0x9c, 0x6c, 0xf8, 0x15, 0xdd, 0xd5, // IID778 - 0xd5, 0x77, 0x08, 0xa4, 0xf5, 0xc6, 0x19, 0x22, 0x8c, // IID779 - 0xd5, 0x77, 0x08, 0xac, 0x3e, 0x81, 0x49, 0xcd, 0x44, // IID780 - 0xd5, 0x55, 0x08, 0xb4, 0x0f, 0x70, 0x4e, 0xdc, 0x9b, // IID781 - 0xd5, 0x44, 0x08, 0xbc, 0x51, 0x47, 0x0b, 0x3f, 0x7e, // IID782 -#endif // _LP64 - 0x09, 0x8c, 0xda, 0x6e, 0x9a, 0x6c, 0x80, // IID783 -#ifdef _LP64 - 0x42, 0x09, 0x94, 0x43, 0x46, 0x45, 0x7f, 0x15, // IID784 - 0x43, 0x09, 0x9c, 0xc8, 0x74, 0xd8, 0x4e, 0xbd, // IID785 - 0x45, 0x09, 0x81, 0xbf, 0x47, 0xa1, 0x7e, // IID786 - 0x47, 0x09, 0x8c, 0xda, 0xf7, 0x16, 0xc5, 0xb7, // IID787 - 0x45, 0x09, 0x93, 0xed, 0xcf, 0x7b, 0x55, // IID788 - 0x47, 0x09, 0x9c, 0x6c, 0x55, 0x77, 0x66, 0x5d, // IID789 - 0x47, 0x09, 0xa4, 0xf5, 0x2d, 0xf7, 0x93, 0xf6, // IID790 - 0x45, 0x09, 0xae, 0x15, 0xcf, 0xb1, 0xbe, // IID791 - 0xd5, 0x25, 0x09, 0xb4, 0x47, 0xc2, 0x1d, 0x8b, 0x1f, // IID792 - 0xd5, 0x34, 0x09, 0xbc, 0x88, 0xa0, 0x20, 0xd3, 0x9b, // IID793 - 0xd5, 0x70, 0x09, 0x84, 0x51, 0x1e, 0xc1, 0xb6, 0xe0, // IID794 - 0xd5, 0x50, 0x09, 0x8a, 0x89, 0x08, 0xd4, 0x8e, // IID795 - 0xd5, 0x70, 0x09, 0x94, 0xa3, 0xb4, 0x3f, 0xae, 0xf9, // IID796 - 0xd5, 0x70, 0x09, 0x9c, 0x2c, 0xfd, 0x53, 0xa0, 0x9d, // IID797 - 0xd5, 0x70, 0x09, 0xa4, 0xf5, 0x7d, 0x28, 0xed, 0xcc, // IID798 - 0xd5, 0x70, 0x09, 0xac, 0x7e, 0x3e, 0x5b, 0x20, 0x5a, // IID799 - 0xd5, 0x72, 0x09, 0xb4, 0xc7, 0x66, 0x56, 0x3f, 0x6e, // IID800 - 0xd5, 0x73, 0x09, 0xbc, 0x48, 0x8f, 0x71, 0x93, 0xfc, // IID801 - 0xd5, 0x55, 0x09, 0x81, 0xc4, 0x42, 0x69, 0x6b, // IID802 - 0xd5, 0x55, 0x09, 0x8a, 0xce, 0xc7, 0xca, 0x70, // IID803 - 0xd5, 0x55, 0x09, 0x93, 0xa1, 0x7a, 0x17, 0xc3, // IID804 - 0xd5, 0x77, 0x09, 0x9c, 0xec, 0xc1, 0x8e, 0xc6, 0x64, // IID805 - 0xd5, 0x77, 0x09, 0xa4, 0xf5, 0x0d, 0xcf, 0x59, 0x14, // IID806 - 0xd5, 0x77, 0x09, 0xac, 0x7e, 0xe6, 0x2c, 0xba, 0x47, // IID807 - 0xd5, 0x55, 0x09, 0xb4, 0x0f, 0x2e, 0x88, 0xc7, 0x35, // IID808 - 0xd5, 0x44, 0x09, 0xbc, 0x91, 0xfc, 0xd5, 0xb0, 0x45, // IID809 -#endif // _LP64 - 0x30, 0x8c, 0x1a, 0xf8, 0xa9, 0xd0, 0x7a, // IID810 -#ifdef _LP64 - 0x30, 0x93, 0xbf, 0x87, 0x15, 0xa6, // IID811 - 0x43, 0x30, 0x9c, 0x88, 0xf8, 0xde, 0xfd, 0x00, // IID812 - 0x47, 0x30, 0x84, 0xd1, 0xcd, 0xb7, 0xa3, 0x57, // IID813 - 0x47, 0x30, 0x8c, 0xda, 0x19, 0x4b, 0x1c, 0xac, // IID814 - 0x47, 0x30, 0x94, 0xa3, 0xb7, 0x3f, 0xe5, 0xb9, // IID815 - 0x47, 0x30, 0x9c, 0xec, 0xfc, 0xbc, 0x00, 0x1b, // IID816 - 0x47, 0x30, 0xa4, 0xf5, 0xed, 0xfc, 0xc1, 0x80, // IID817 - 0x47, 0x30, 0xac, 0x7e, 0x3e, 0x0e, 0x52, 0xb1, // IID818 - 0xd5, 0x25, 0x30, 0xb4, 0x47, 0xf5, 0xe3, 0xf8, 0x89, // IID819 - 0xd5, 0x34, 0x30, 0xbc, 0xc8, 0x57, 0xc7, 0xd0, 0x15, // IID820 - 0xd5, 0x70, 0x30, 0x84, 0x91, 0x58, 0x12, 0xa2, 0x44, // IID821 - 0xd5, 0x70, 0x30, 0x8c, 0x1a, 0xec, 0x97, 0x90, 0x77, // IID822 - 0xd5, 0x70, 0x30, 0x94, 0x63, 0x57, 0x3b, 0x1b, 0x62, // IID823 - 0xd5, 0x50, 0x30, 0x9c, 0x24, 0x6d, 0x23, 0x4f, 0xdd, // IID824 - 0xd5, 0x70, 0x30, 0xa4, 0xf5, 0x0c, 0x82, 0x91, 0x25, // IID825 - 0xd5, 0x70, 0x30, 0xac, 0x7e, 0xa6, 0x9f, 0x2b, 0xc5, // IID826 - 0xd5, 0x50, 0x30, 0xb7, 0x48, 0x84, 0xff, 0x81, // IID827 - 0xd5, 0x73, 0x30, 0xbc, 0x08, 0x3a, 0x20, 0x8b, 0xc3, // IID828 - 0xd5, 0x77, 0x30, 0x84, 0xd1, 0x6e, 0x6e, 0xd6, 0x53, // IID829 - 0xd5, 0x77, 0x30, 0x8c, 0x9a, 0x9f, 0xe5, 0x2a, 0xf0, // IID830 - 0xd5, 0x77, 0x30, 0x94, 0x23, 0x13, 0x34, 0x07, 0x2e, // IID831 - 0xd5, 0x77, 0x30, 0x9c, 0xac, 0x1f, 0xd0, 0x89, 0x23, // IID832 - 0xd5, 0x77, 0x30, 0xa4, 0x35, 0x0d, 0xde, 0x56, 0xaf, // IID833 - 0xd5, 0x77, 0x30, 0xac, 0x7e, 0x1a, 0x87, 0x42, 0x85, // IID834 - 0xd5, 0x55, 0x30, 0xb7, 0xd1, 0x6c, 0x53, 0xc9, // IID835 - 0xd5, 0x44, 0x30, 0xbc, 0x51, 0x22, 0xcf, 0x38, 0x1f, // IID836 -#endif // _LP64 - 0x31, 0x8a, 0x07, 0x62, 0xd8, 0xf2, // IID837 -#ifdef _LP64 - 0x42, 0x31, 0x94, 0x83, 0x5a, 0xc8, 0xa7, 0xfe, // IID838 - 0x43, 0x31, 0x9c, 0x08, 0x03, 0xe4, 0x21, 0x48, // IID839 - 0x45, 0x31, 0x81, 0x72, 0x40, 0xa5, 0x44, // IID840 - 0x45, 0x31, 0x8a, 0xcd, 0x10, 0x82, 0xfa, // IID841 - 0x47, 0x31, 0x94, 0xe3, 0xd5, 0x23, 0x2a, 0x39, // IID842 - 0x47, 0x31, 0x9c, 0x6c, 0x85, 0x2f, 0x35, 0xd0, // IID843 - 0x47, 0x31, 0xa4, 0xb5, 0xe6, 0x01, 0xfc, 0x88, // IID844 - 0x47, 0x31, 0xac, 0xbe, 0xa0, 0x6d, 0x3f, 0xf1, // IID845 - 0xd5, 0x25, 0x31, 0xb4, 0x07, 0x78, 0x0b, 0xcf, 0x07, // IID846 - 0xd5, 0x34, 0x31, 0xbc, 0x08, 0x83, 0x4d, 0x8e, 0xcf, // IID847 - 0xd5, 0x70, 0x31, 0x84, 0x91, 0x14, 0xae, 0x14, 0x0c, // IID848 - 0xd5, 0x50, 0x31, 0x8a, 0x46, 0xc5, 0x03, 0x12, // IID849 - 0xd5, 0x70, 0x31, 0x94, 0x23, 0x65, 0x3b, 0xe4, 0xf6, // IID850 - 0xd5, 0x70, 0x31, 0x9c, 0x2c, 0x84, 0x17, 0x82, 0x8f, // IID851 - 0xd5, 0x70, 0x31, 0xa4, 0xb5, 0x05, 0x63, 0x3e, 0x05, // IID852 - 0xd5, 0x70, 0x31, 0xac, 0xbe, 0xb6, 0x90, 0x09, 0x8d, // IID853 - 0xd5, 0x72, 0x31, 0xb4, 0x87, 0x14, 0x58, 0x3a, 0xfd, // IID854 - 0xd5, 0x73, 0x31, 0xbc, 0x88, 0xf6, 0x94, 0xb9, 0xde, // IID855 - 0xd5, 0x77, 0x31, 0x84, 0xd1, 0xd9, 0xbb, 0x68, 0xed, // IID856 - 0xd5, 0x77, 0x31, 0x8c, 0x1a, 0x44, 0x17, 0x8a, 0xd5, // IID857 - 0xd5, 0x77, 0x31, 0x94, 0xe3, 0xb4, 0xe2, 0x8d, 0x04, // IID858 - 0xd5, 0x77, 0x31, 0x9c, 0xec, 0x47, 0xaa, 0x54, 0x70, // IID859 - 0xd5, 0x55, 0x31, 0xa5, 0x0a, 0x11, 0x69, 0xe6, // IID860 - 0xd5, 0x77, 0x31, 0xac, 0xbe, 0x9e, 0xf7, 0x7f, 0x22, // IID861 - 0xd5, 0x55, 0x31, 0xb7, 0x88, 0xfd, 0xa3, 0x0c, // IID862 - 0xd5, 0x44, 0x31, 0xbc, 0x11, 0x3a, 0x9d, 0xcc, 0x9c, // IID863 -#endif // _LP64 - 0x29, 0x8c, 0x1a, 0x46, 0xf7, 0x16, 0xc4, // IID864 -#ifdef _LP64 - 0x42, 0x29, 0x94, 0xc3, 0xd9, 0x40, 0xd2, 0x4f, // IID865 - 0x43, 0x29, 0x9c, 0x08, 0x18, 0xda, 0x29, 0xd2, // IID866 - 0x47, 0x29, 0x84, 0x11, 0xc4, 0xe8, 0x5e, 0xf3, // IID867 - 0x47, 0x29, 0x8c, 0x9a, 0x13, 0x48, 0x3e, 0x26, // IID868 - 0x47, 0x29, 0x94, 0xa3, 0xdc, 0xad, 0xde, 0xa6, // IID869 - 0x47, 0x29, 0x9c, 0x2c, 0x9b, 0xe4, 0x13, 0x69, // IID870 - 0x47, 0x29, 0xa4, 0x35, 0xb2, 0x90, 0xda, 0x13, // IID871 - 0x47, 0x29, 0xac, 0x3e, 0x9f, 0x94, 0x3b, 0x96, // IID872 - 0xd5, 0x25, 0x29, 0xb4, 0xc7, 0xee, 0xcd, 0x89, 0x90, // IID873 - 0xd5, 0x14, 0x29, 0xb8, 0x71, 0x4a, 0xf1, 0x51, // IID874 - 0xd5, 0x70, 0x29, 0x84, 0x51, 0xec, 0xbe, 0xad, 0x4a, // IID875 - 0xd5, 0x50, 0x29, 0x8a, 0xaa, 0xe0, 0x5f, 0x66, // IID876 - 0xd5, 0x70, 0x29, 0x94, 0x23, 0x02, 0xd8, 0xcc, 0x12, // IID877 - 0xd5, 0x70, 0x29, 0x9c, 0xec, 0xf2, 0x2f, 0x4d, 0x17, // IID878 - 0xd5, 0x70, 0x29, 0xa4, 0xb5, 0xfa, 0xb0, 0x0a, 0x87, // IID879 - 0xd5, 0x70, 0x29, 0xac, 0x3e, 0x43, 0xf9, 0xfb, 0x10, // IID880 - 0xd5, 0x50, 0x29, 0xb7, 0x9f, 0xb5, 0xed, 0x10, // IID881 - 0xd5, 0x73, 0x29, 0xbc, 0x48, 0x89, 0x62, 0x73, 0xa4, // IID882 - 0xd5, 0x77, 0x29, 0x84, 0x51, 0xe2, 0x3b, 0xf4, 0x08, // IID883 - 0xd5, 0x77, 0x29, 0x8c, 0x9a, 0x59, 0x52, 0xae, 0x9c, // IID884 - 0xd5, 0x77, 0x29, 0x94, 0xe3, 0x0e, 0x37, 0xea, 0x57, // IID885 - 0xd5, 0x77, 0x29, 0x9c, 0xec, 0x94, 0x2b, 0xf3, 0x33, // IID886 - 0xd5, 0x77, 0x29, 0xa4, 0xf5, 0x72, 0x6e, 0x18, 0xeb, // IID887 - 0xd5, 0x77, 0x29, 0xac, 0xfe, 0x40, 0x1a, 0x0d, 0x81, // IID888 - 0xd5, 0x55, 0x29, 0xb4, 0x0f, 0xb8, 0x13, 0xa1, 0x71, // IID889 - 0xd5, 0x44, 0x29, 0xb9, 0x37, 0x9d, 0x60, 0x05, // IID890 -#endif // _LP64 - 0x88, 0x8a, 0x60, 0xfc, 0x99, 0x28, // IID891 -#ifdef _LP64 - 0x42, 0x88, 0x94, 0x83, 0x59, 0x07, 0x80, 0x93, // IID892 - 0x43, 0x88, 0x9c, 0x48, 0x58, 0xbb, 0xb6, 0xa3, // IID893 - 0x47, 0x88, 0x84, 0xd1, 0xe2, 0xa8, 0x6c, 0x15, // IID894 - 0x47, 0x88, 0x8c, 0x1a, 0xf8, 0x9f, 0xda, 0x59, // IID895 - 0x47, 0x88, 0x94, 0x23, 0x27, 0xbf, 0xe7, 0x6a, // IID896 - 0x45, 0x88, 0x9c, 0x24, 0x8f, 0xa6, 0x95, 0x01, // IID897 - 0x45, 0x88, 0xa5, 0xd0, 0xdc, 0x74, 0x17, // IID898 - 0x47, 0x88, 0xac, 0x7e, 0x11, 0xe1, 0xfe, 0x92, // IID899 - 0xd5, 0x25, 0x88, 0xb4, 0xc7, 0xfa, 0x5a, 0x0f, 0x26, // IID900 - 0xd5, 0x14, 0x88, 0xb8, 0x80, 0xee, 0x30, 0x06, // IID901 - 0xd5, 0x70, 0x88, 0x84, 0x51, 0x01, 0xc2, 0xfc, 0x2d, // IID902 - 0xd5, 0x70, 0x88, 0x8c, 0x1a, 0x76, 0x75, 0x5b, 0x5a, // IID903 - 0xd5, 0x50, 0x88, 0x93, 0xe9, 0x76, 0x6e, 0x2f, // IID904 - 0xd5, 0x70, 0x88, 0x9c, 0xac, 0x0b, 0xdc, 0xc0, 0xc7, // IID905 - 0xd5, 0x70, 0x88, 0xa4, 0xf5, 0x21, 0xf5, 0x2b, 0xef, // IID906 - 0xd5, 0x70, 0x88, 0xac, 0xbe, 0x57, 0x30, 0xdf, 0x08, // IID907 - 0xd5, 0x72, 0x88, 0xb4, 0x87, 0xe4, 0x10, 0xfb, 0xdf, // IID908 - 0xd5, 0x73, 0x88, 0xbc, 0x48, 0xab, 0x4d, 0x77, 0xe0, // IID909 - 0xd5, 0x77, 0x88, 0x84, 0x91, 0x45, 0xa9, 0x8a, 0x56, // IID910 - 0xd5, 0x55, 0x88, 0x8a, 0xb2, 0xf8, 0xf2, 0x21, // IID911 - 0xd5, 0x77, 0x88, 0x94, 0xe3, 0xe5, 0x48, 0x72, 0x0d, // IID912 - 0xd5, 0x77, 0x88, 0x9c, 0x6c, 0x6b, 0x19, 0xd0, 0x11, // IID913 - 0xd5, 0x77, 0x88, 0xa4, 0x75, 0x42, 0x68, 0x22, 0x97, // IID914 - 0xd5, 0x77, 0x88, 0xac, 0xfe, 0x04, 0x15, 0x24, 0x62, // IID915 - 0xd5, 0x55, 0x88, 0xb4, 0x4f, 0x49, 0x1d, 0x35, 0x74, // IID916 - 0xd5, 0x44, 0x88, 0xb9, 0x9a, 0xf0, 0x63, 0xef, // IID917 -#endif // _LP64 - 0x89, 0x8a, 0x37, 0x6b, 0x04, 0xc0, // IID918 -#ifdef _LP64 - 0x42, 0x89, 0x94, 0x43, 0xd9, 0xe6, 0x37, 0xd1, // IID919 - 0x41, 0x89, 0x98, 0x18, 0x59, 0xf5, 0xbc, // IID920 - 0x47, 0x89, 0x84, 0x51, 0xcb, 0x4c, 0x41, 0xca, // IID921 - 0x47, 0x89, 0x8c, 0x9a, 0x3d, 0xdd, 0x2e, 0x43, // IID922 - 0x45, 0x89, 0x93, 0x2c, 0xa6, 0x99, 0x00, // IID923 - 0x47, 0x89, 0x9c, 0xec, 0xfb, 0xe6, 0xd1, 0xf9, // IID924 - 0x47, 0x89, 0xa4, 0xf5, 0x79, 0xe5, 0x60, 0x4d, // IID925 - 0x47, 0x89, 0xac, 0x7e, 0xf0, 0x83, 0x89, 0xce, // IID926 - 0xd5, 0x25, 0x89, 0xb4, 0xc7, 0x6f, 0x5b, 0x84, 0xb7, // IID927 - 0xd5, 0x34, 0x89, 0xbc, 0x48, 0xfb, 0x2f, 0xaf, 0xce, // IID928 - 0xd5, 0x70, 0x89, 0x84, 0xd1, 0x96, 0x43, 0x84, 0xfd, // IID929 - 0xd5, 0x70, 0x89, 0x8c, 0xda, 0xa0, 0x20, 0xff, 0x37, // IID930 - 0xd5, 0x70, 0x89, 0x94, 0xe3, 0x53, 0x47, 0xa1, 0x83, // IID931 - 0xd5, 0x70, 0x89, 0x9c, 0x6c, 0x96, 0x62, 0xd1, 0xa7, // IID932 - 0xd5, 0x50, 0x89, 0xa5, 0x41, 0x72, 0xca, 0xef, // IID933 - 0xd5, 0x50, 0x89, 0xae, 0xcf, 0x76, 0x96, 0xee, // IID934 - 0xd5, 0x72, 0x89, 0xb4, 0x07, 0x63, 0x48, 0x39, 0x92, // IID935 - 0xd5, 0x73, 0x89, 0xbc, 0x88, 0xa5, 0xa2, 0xdd, 0x43, // IID936 - 0xd5, 0x77, 0x89, 0x84, 0x51, 0xf5, 0x69, 0x11, 0x9c, // IID937 - 0xd5, 0x77, 0x89, 0x8c, 0xda, 0x83, 0xb9, 0xa5, 0xf7, // IID938 - 0xd5, 0x77, 0x89, 0x94, 0x63, 0x85, 0xd9, 0x23, 0xa6, // IID939 - 0xd5, 0x77, 0x89, 0x9c, 0xec, 0x40, 0xe4, 0x99, 0x18, // IID940 - 0xd5, 0x77, 0x89, 0xa4, 0xf5, 0x17, 0xda, 0x02, 0xa4, // IID941 - 0xd5, 0x77, 0x89, 0xac, 0x3e, 0xb7, 0x67, 0x71, 0x3b, // IID942 - 0xd5, 0x55, 0x89, 0xb4, 0xcf, 0x91, 0xaf, 0xae, 0x4f, // IID943 - 0xd5, 0x44, 0x89, 0xbc, 0x11, 0x8f, 0x31, 0x2c, 0x96, // IID944 -#endif // _LP64 - 0x0f, 0xc0, 0x8a, 0x46, 0xfa, 0x2e, 0x50, // IID945 -#ifdef _LP64 - 0x42, 0x0f, 0xc0, 0x94, 0x03, 0x89, 0x71, 0x89, 0x09, // IID946 - 0x43, 0x0f, 0xc0, 0x9c, 0xc8, 0x8e, 0x87, 0x04, 0x84, // IID947 - 0x45, 0x0f, 0xc0, 0x81, 0x14, 0x84, 0xe4, 0xc5, // IID948 - 0x47, 0x0f, 0xc0, 0x8c, 0x9a, 0x60, 0xf8, 0x07, 0xcd, // IID949 - 0x47, 0x0f, 0xc0, 0x94, 0xe3, 0xf7, 0x76, 0xb9, 0xb1, // IID950 - 0x45, 0x0f, 0xc0, 0x9c, 0x24, 0x65, 0x6b, 0x4d, 0xb0, // IID951 - 0x47, 0x0f, 0xc0, 0xa4, 0xf5, 0x6d, 0xbe, 0x59, 0xc9, // IID952 - 0x47, 0x0f, 0xc0, 0xac, 0x3e, 0xd8, 0x77, 0x8c, 0x5f, // IID953 - 0xd5, 0xa5, 0xc0, 0xb4, 0x87, 0x36, 0x9f, 0x6e, 0x45, // IID954 - 0xd5, 0xb4, 0xc0, 0xbc, 0x48, 0x69, 0xfa, 0xe4, 0x05, // IID955 - 0xd5, 0xf0, 0xc0, 0x84, 0x11, 0x1a, 0xa9, 0xa3, 0xfd, // IID956 - 0xd5, 0xf0, 0xc0, 0x8c, 0x1a, 0x49, 0x6c, 0xca, 0xfa, // IID957 - 0xd5, 0xf0, 0xc0, 0x94, 0xa3, 0x52, 0xb1, 0x86, 0x35, // IID958 - 0xd5, 0xd0, 0xc0, 0x9c, 0x24, 0x89, 0x09, 0x22, 0xed, // IID959 - 0xd5, 0xf0, 0xc0, 0xa4, 0x35, 0xe1, 0xe6, 0x91, 0x3e, // IID960 - 0xd5, 0xf0, 0xc0, 0xac, 0xfe, 0x84, 0xf7, 0x26, 0x53, // IID961 - 0xd5, 0xf2, 0xc0, 0xb4, 0x87, 0x46, 0x4f, 0xae, 0x38, // IID962 - 0xd5, 0xf3, 0xc0, 0xbc, 0x88, 0xe9, 0x4a, 0x5c, 0xd9, // IID963 - 0xd5, 0xf7, 0xc0, 0x84, 0xd1, 0xe7, 0xeb, 0x16, 0x64, // IID964 - 0xd5, 0xf7, 0xc0, 0x8c, 0x1a, 0x93, 0x42, 0x16, 0x74, // IID965 - 0xd5, 0xf7, 0xc0, 0x94, 0x23, 0x5e, 0x74, 0x4e, 0x11, // IID966 - 0xd5, 0xf7, 0xc0, 0x9c, 0xec, 0x47, 0x12, 0xd7, 0xb0, // IID967 - 0xd5, 0xf7, 0xc0, 0xa4, 0x35, 0xe5, 0x30, 0x78, 0x25, // IID968 - 0xd5, 0xf7, 0xc0, 0xac, 0x3e, 0x26, 0xe1, 0x17, 0x9c, // IID969 - 0xd5, 0xd5, 0xc0, 0xb4, 0x4f, 0x57, 0x01, 0xbf, 0xe3, // IID970 - 0xd5, 0xc4, 0xc0, 0xbc, 0xd1, 0x13, 0xf4, 0xe0, 0xc1, // IID971 -#endif // _LP64 - 0x66, 0x0f, 0xc1, 0x8c, 0xda, 0xdc, 0xd3, 0xb3, 0xf0, // IID972 -#ifdef _LP64 - 0x66, 0x42, 0x0f, 0xc1, 0x94, 0xc3, 0x12, 0xc1, 0xad, 0x52, // IID973 - 0x66, 0x41, 0x0f, 0xc1, 0x98, 0x74, 0x63, 0x91, 0xec, // IID974 - 0x66, 0x47, 0x0f, 0xc1, 0x84, 0x11, 0x86, 0x56, 0xf4, 0x68, // IID975 - 0x66, 0x47, 0x0f, 0xc1, 0x8c, 0x9a, 0xa3, 0xbe, 0x62, 0xef, // IID976 - 0x66, 0x47, 0x0f, 0xc1, 0x94, 0x63, 0xbb, 0x25, 0x1c, 0x75, // IID977 - 0x66, 0x47, 0x0f, 0xc1, 0x9c, 0xac, 0x08, 0xde, 0xfb, 0x56, // IID978 - 0x66, 0x47, 0x0f, 0xc1, 0xa4, 0xf5, 0x5d, 0xdf, 0xc2, 0x7e, // IID979 - 0x66, 0x47, 0x0f, 0xc1, 0xac, 0x3e, 0x13, 0xb3, 0xdc, 0xea, // IID980 - 0x66, 0xd5, 0xa5, 0xc1, 0xb4, 0x87, 0x40, 0x43, 0x6b, 0x7c, // IID981 - 0x66, 0xd5, 0xb4, 0xc1, 0xbc, 0x48, 0x06, 0xa7, 0x29, 0xdc, // IID982 - 0x66, 0xd5, 0xf0, 0xc1, 0x84, 0x91, 0xf3, 0x89, 0xb1, 0xf6, // IID983 - 0x66, 0xd5, 0xf0, 0xc1, 0x8c, 0x9a, 0x7e, 0x0a, 0xbb, 0x5f, // IID984 - 0x66, 0xd5, 0xf0, 0xc1, 0x94, 0xe3, 0x32, 0x16, 0x11, 0x53, // IID985 - 0x66, 0xd5, 0xf0, 0xc1, 0x9c, 0xac, 0xae, 0xa4, 0x96, 0x1f, // IID986 - 0x66, 0xd5, 0xf0, 0xc1, 0xa4, 0x35, 0x81, 0xde, 0x47, 0xfd, // IID987 - 0x66, 0xd5, 0xf0, 0xc1, 0xac, 0xfe, 0x08, 0x9e, 0x49, 0x7b, // IID988 - 0x66, 0xd5, 0xf2, 0xc1, 0xb4, 0x87, 0x61, 0xe1, 0x2e, 0x56, // IID989 - 0x66, 0xd5, 0xf3, 0xc1, 0xbc, 0x08, 0xa6, 0x59, 0xc3, 0x5f, // IID990 - 0x66, 0xd5, 0xf7, 0xc1, 0x84, 0x51, 0x6c, 0x81, 0xff, 0x6b, // IID991 - 0x66, 0xd5, 0xf7, 0xc1, 0x8c, 0x5a, 0xa7, 0xa1, 0x32, 0xb4, // IID992 - 0x66, 0xd5, 0xf7, 0xc1, 0x94, 0xa3, 0x58, 0x27, 0x5b, 0xdc, // IID993 - 0x66, 0xd5, 0xf7, 0xc1, 0x9c, 0x2c, 0x0f, 0x2f, 0x18, 0x52, // IID994 - 0x66, 0xd5, 0xf7, 0xc1, 0xa4, 0x75, 0x38, 0x87, 0x9a, 0x83, // IID995 - 0x66, 0xd5, 0xf7, 0xc1, 0xac, 0x7e, 0x40, 0x1a, 0xfd, 0x6b, // IID996 - 0x66, 0xd5, 0xd5, 0xc1, 0xb4, 0x4f, 0x87, 0xb1, 0xeb, 0xd3, // IID997 - 0x66, 0xd5, 0xc4, 0xc1, 0xbc, 0x91, 0x08, 0x50, 0x1a, 0xe5, // IID998 -#endif // _LP64 - 0x0f, 0xc1, 0x8c, 0x9a, 0x8d, 0x83, 0x7b, 0x3d, // IID999 -#ifdef _LP64 - 0x42, 0x0f, 0xc1, 0x94, 0xc3, 0x04, 0x80, 0xb4, 0xe8, // IID1000 - 0x43, 0x0f, 0xc1, 0x9c, 0x08, 0xdd, 0x1a, 0x43, 0x29, // IID1001 - 0x47, 0x0f, 0xc1, 0x84, 0x11, 0xad, 0x3c, 0xb3, 0xc6, // IID1002 - 0x47, 0x0f, 0xc1, 0x8c, 0x1a, 0x8a, 0x95, 0xc3, 0xb9, // IID1003 - 0x47, 0x0f, 0xc1, 0x94, 0xe3, 0x28, 0xcb, 0xd2, 0x54, // IID1004 - 0x47, 0x0f, 0xc1, 0x9c, 0x2c, 0xd0, 0x28, 0xb3, 0xfa, // IID1005 - 0x47, 0x0f, 0xc1, 0xa4, 0xf5, 0x6b, 0x1c, 0x83, 0x9c, // IID1006 - 0x47, 0x0f, 0xc1, 0xac, 0xbe, 0x89, 0x98, 0x09, 0xb7, // IID1007 - 0xd5, 0xa5, 0xc1, 0xb4, 0x87, 0x7a, 0xcd, 0xd4, 0x6a, // IID1008 - 0xd5, 0x94, 0xc1, 0xb8, 0xf9, 0x68, 0xed, 0xdf, // IID1009 - 0xd5, 0xd0, 0xc1, 0x81, 0x1b, 0x7f, 0x7c, 0x5a, // IID1010 - 0xd5, 0xf0, 0xc1, 0x8c, 0x9a, 0x95, 0xe9, 0x21, 0x7f, // IID1011 - 0xd5, 0xd0, 0xc1, 0x93, 0xf9, 0xf9, 0x8a, 0xeb, // IID1012 - 0xd5, 0xf0, 0xc1, 0x9c, 0x2c, 0x48, 0x57, 0x28, 0xe2, // IID1013 - 0xd5, 0xf0, 0xc1, 0xa4, 0xb5, 0x47, 0x34, 0x20, 0x02, // IID1014 - 0xd5, 0xd0, 0xc1, 0xae, 0x76, 0xbe, 0x92, 0xea, // IID1015 - 0xd5, 0xf2, 0xc1, 0xb4, 0xc7, 0x39, 0x50, 0xa2, 0xbc, // IID1016 - 0xd5, 0xd1, 0xc1, 0xb8, 0xaf, 0x4f, 0x57, 0x1f, // IID1017 - 0xd5, 0xd5, 0xc1, 0x81, 0x99, 0x8a, 0xeb, 0x6c, // IID1018 - 0xd5, 0xf7, 0xc1, 0x8c, 0x1a, 0x09, 0x6f, 0x26, 0x0e, // IID1019 - 0xd5, 0xd5, 0xc1, 0x93, 0x21, 0x52, 0xeb, 0x70, // IID1020 - 0xd5, 0xf7, 0xc1, 0x9c, 0x6c, 0x3b, 0x61, 0xf1, 0x0c, // IID1021 - 0xd5, 0xf7, 0xc1, 0xa4, 0xb5, 0x9b, 0x28, 0x99, 0xab, // IID1022 - 0xd5, 0xf7, 0xc1, 0xac, 0x7e, 0xfd, 0xd2, 0x24, 0x59, // IID1023 - 0xd5, 0xd5, 0xc1, 0xb4, 0xcf, 0xa8, 0x2e, 0x47, 0x5b, // IID1024 - 0xd5, 0xc4, 0xc1, 0xbc, 0x91, 0x97, 0x07, 0x78, 0x74, // IID1025 -#endif // _LP64 - 0x83, 0x94, 0x91, 0x62, 0xdb, 0xe0, 0x2e, 0x01, // IID1026 - 0x83, 0x94, 0x5a, 0x67, 0x96, 0xe1, 0x2e, 0x01, // IID1027 -#ifdef _LP64 - 0x83, 0x93, 0x4c, 0x22, 0x7e, 0xa1, 0x01, // IID1028 - 0x43, 0x83, 0x94, 0xc8, 0x7b, 0xa1, 0x61, 0xbf, 0x01, // IID1029 - 0x43, 0x83, 0x94, 0xd1, 0x2b, 0x48, 0x7a, 0x69, 0x01, // IID1030 - 0x41, 0x83, 0x92, 0x58, 0xbd, 0x5b, 0x7d, 0x01, // IID1031 - 0x43, 0x83, 0x94, 0xa3, 0x1f, 0x0b, 0xc6, 0xf4, 0x01, // IID1032 - 0x43, 0x83, 0x94, 0x6c, 0x31, 0x26, 0x64, 0x27, 0x01, // IID1033 - 0x41, 0x83, 0x95, 0xf2, 0x97, 0x66, 0xf5, 0x01, // IID1034 - 0x43, 0x83, 0x94, 0x3e, 0xe4, 0x76, 0xff, 0xb4, 0x01, // IID1035 - 0xd5, 0x21, 0x83, 0x94, 0x07, 0x01, 0xe1, 0x3a, 0xa9, 0x01, // IID1036 - 0xd5, 0x30, 0x83, 0x94, 0x88, 0x24, 0xde, 0xd3, 0x53, 0x01, // IID1037 - 0xd5, 0x30, 0x83, 0x94, 0x11, 0x24, 0x13, 0x1c, 0x48, 0x01, // IID1038 - 0xd5, 0x30, 0x83, 0x94, 0xda, 0xce, 0x6e, 0x23, 0x99, 0x01, // IID1039 - 0xd5, 0x30, 0x83, 0x94, 0xa3, 0x95, 0x21, 0x2e, 0xd2, 0x01, // IID1040 - 0xd5, 0x30, 0x83, 0x94, 0x6c, 0xb0, 0xf4, 0xcf, 0x96, 0x01, // IID1041 - 0xd5, 0x30, 0x83, 0x94, 0xf5, 0x70, 0x53, 0x2e, 0x4a, 0x01, // IID1042 - 0xd5, 0x30, 0x83, 0x94, 0xbe, 0x1a, 0xd7, 0xc0, 0xa1, 0x01, // IID1043 - 0xd5, 0x32, 0x83, 0x94, 0xc7, 0xcc, 0x8a, 0x97, 0xf8, 0x01, // IID1044 - 0xd5, 0x11, 0x83, 0x90, 0x22, 0x43, 0xce, 0x99, 0x01, // IID1045 - 0xd5, 0x33, 0x83, 0x94, 0x11, 0x3b, 0xe6, 0x79, 0x54, 0x01, // IID1046 - 0xd5, 0x11, 0x83, 0x92, 0x62, 0x25, 0x3d, 0x2e, 0x01, // IID1047 - 0xd5, 0x11, 0x83, 0x93, 0xa8, 0x0f, 0xc2, 0x5d, 0x01, // IID1048 - 0xd5, 0x33, 0x83, 0x94, 0x6c, 0xba, 0x84, 0x6b, 0x40, 0x01, // IID1049 - 0xd5, 0x11, 0x83, 0x95, 0x88, 0x51, 0x59, 0xd1, 0x01, // IID1050 - 0xd5, 0x33, 0x83, 0x94, 0xbe, 0x45, 0x76, 0xf7, 0xba, 0x01, // IID1051 - 0xd5, 0x11, 0x83, 0x94, 0x4f, 0xf1, 0x74, 0x10, 0x7b, 0x01, // IID1052 - 0x83, 0x94, 0x51, 0xb8, 0xd5, 0x92, 0x41, 0x10, // IID1053 - 0x83, 0x94, 0x9a, 0x50, 0x7b, 0x79, 0xdb, 0x10, // IID1054 - 0x42, 0x83, 0x94, 0x03, 0xcd, 0x4d, 0x56, 0x99, 0x10, // IID1055 - 0x43, 0x83, 0x94, 0x08, 0xb3, 0xa8, 0xe9, 0x41, 0x10, // IID1056 - 0x43, 0x83, 0x94, 0x91, 0x95, 0x7b, 0x4f, 0x1b, 0x10, // IID1057 - 0x43, 0x83, 0x94, 0x5a, 0x13, 0x09, 0xc2, 0x67, 0x10, // IID1058 - 0x41, 0x83, 0x93, 0x7a, 0x28, 0x99, 0xb4, 0x10, // IID1059 - 0x41, 0x83, 0x94, 0x24, 0xfd, 0xff, 0x60, 0x3e, 0x10, // IID1060 - 0x43, 0x83, 0x94, 0xf5, 0x90, 0x75, 0x58, 0x26, 0x10, // IID1061 - 0x43, 0x83, 0x94, 0xbe, 0x05, 0xa3, 0xfd, 0x25, 0x10, // IID1062 - 0xd5, 0x21, 0x83, 0x94, 0x07, 0xbc, 0x33, 0x25, 0xe0, 0x10, // IID1063 - 0xd5, 0x30, 0x83, 0x94, 0xc8, 0x13, 0x0f, 0x8e, 0xb6, 0x10, // IID1064 - 0xd5, 0x30, 0x83, 0x94, 0x51, 0xe9, 0x38, 0x30, 0xcb, 0x10, // IID1065 - 0xd5, 0x30, 0x83, 0x94, 0x9a, 0xf7, 0x3b, 0x87, 0xcf, 0x10, // IID1066 - 0xd5, 0x30, 0x83, 0x94, 0xa3, 0x79, 0x47, 0x1f, 0xe0, 0x10, // IID1067 - 0xd5, 0x30, 0x83, 0x94, 0x2c, 0x4a, 0xe3, 0xe7, 0xc3, 0x10, // IID1068 - 0xd5, 0x30, 0x83, 0x94, 0xb5, 0x21, 0x4a, 0xea, 0x30, 0x10, // IID1069 - 0xd5, 0x30, 0x83, 0x94, 0x3e, 0x04, 0x25, 0x3b, 0x06, 0x10, // IID1070 - 0xd5, 0x32, 0x83, 0x94, 0x07, 0x0b, 0x9f, 0x32, 0x08, 0x10, // IID1071 - 0xd5, 0x11, 0x83, 0x90, 0x77, 0x76, 0x5b, 0x12, 0x10, // IID1072 - 0xd5, 0x33, 0x83, 0x94, 0x51, 0x1e, 0xa6, 0xcc, 0x77, 0x10, // IID1073 - 0xd5, 0x11, 0x83, 0x92, 0x5f, 0x12, 0x31, 0x42, 0x10, // IID1074 - 0xd5, 0x33, 0x83, 0x94, 0x23, 0x8a, 0x91, 0x8e, 0x6d, 0x10, // IID1075 - 0xd5, 0x33, 0x83, 0x94, 0xec, 0xb2, 0xea, 0xe8, 0x77, 0x10, // IID1076 - 0xd5, 0x33, 0x83, 0x94, 0x35, 0x47, 0x74, 0x3f, 0x7d, 0x10, // IID1077 - 0xd5, 0x33, 0x83, 0x94, 0x7e, 0x18, 0xb4, 0x4c, 0x74, 0x10, // IID1078 - 0xd5, 0x11, 0x83, 0x94, 0x8f, 0xbe, 0x57, 0xe6, 0x7d, 0x10, // IID1079 - 0x81, 0x94, 0x11, 0x16, 0x40, 0xc3, 0xb1, 0x00, 0x01, 0x00, 0x00, // IID1080 - 0x81, 0x92, 0x51, 0xa5, 0x62, 0x29, 0x00, 0x01, 0x00, 0x00, // IID1081 - 0x42, 0x81, 0x94, 0x83, 0x96, 0xa9, 0x54, 0x77, 0x00, 0x01, 0x00, 0x00, // IID1082 - 0x43, 0x81, 0x94, 0x48, 0xd6, 0x13, 0xe5, 0x88, 0x00, 0x01, 0x00, 0x00, // IID1083 - 0x43, 0x81, 0x94, 0x11, 0x65, 0xb1, 0x6b, 0x86, 0x00, 0x01, 0x00, 0x00, // IID1084 - 0x43, 0x81, 0x94, 0x9a, 0xb0, 0x7c, 0xf6, 0x69, 0x00, 0x01, 0x00, 0x00, // IID1085 - 0x43, 0x81, 0x94, 0x63, 0xe3, 0xef, 0x96, 0x36, 0x00, 0x01, 0x00, 0x00, // IID1086 - 0x43, 0x81, 0x94, 0xec, 0x5c, 0xd9, 0xf2, 0xf7, 0x00, 0x01, 0x00, 0x00, // IID1087 - 0x41, 0x81, 0x95, 0x6a, 0x98, 0xea, 0x53, 0x00, 0x01, 0x00, 0x00, // IID1088 - 0x43, 0x81, 0x94, 0xbe, 0x4c, 0x50, 0x62, 0x88, 0x00, 0x01, 0x00, 0x00, // IID1089 - 0xd5, 0x21, 0x81, 0x94, 0x47, 0x1c, 0x23, 0x9e, 0x98, 0x00, 0x01, 0x00, 0x00, // IID1090 - 0xd5, 0x30, 0x81, 0x94, 0x48, 0x63, 0x68, 0x08, 0x02, 0x00, 0x01, 0x00, 0x00, // IID1091 - 0xd5, 0x30, 0x81, 0x94, 0x91, 0x35, 0x18, 0x2b, 0x8a, 0x00, 0x01, 0x00, 0x00, // IID1092 - 0xd5, 0x30, 0x81, 0x94, 0xda, 0x54, 0xa7, 0xfc, 0xb7, 0x00, 0x01, 0x00, 0x00, // IID1093 - 0xd5, 0x30, 0x81, 0x94, 0x23, 0xaa, 0x14, 0xd9, 0xd0, 0x00, 0x01, 0x00, 0x00, // IID1094 - 0xd5, 0x30, 0x81, 0x94, 0x2c, 0x15, 0xa8, 0x13, 0xc3, 0x00, 0x01, 0x00, 0x00, // IID1095 - 0xd5, 0x30, 0x81, 0x94, 0x75, 0x39, 0x71, 0x14, 0x0b, 0x00, 0x01, 0x00, 0x00, // IID1096 - 0xd5, 0x30, 0x81, 0x94, 0x7e, 0x1f, 0x9e, 0x73, 0x8e, 0x00, 0x01, 0x00, 0x00, // IID1097 - 0xd5, 0x10, 0x81, 0x97, 0x77, 0x65, 0x7d, 0x3f, 0x00, 0x01, 0x00, 0x00, // IID1098 - 0xd5, 0x33, 0x81, 0x94, 0xc8, 0x31, 0xc0, 0x2d, 0x37, 0x00, 0x01, 0x00, 0x00, // IID1099 - 0xd5, 0x11, 0x81, 0x91, 0x81, 0xd9, 0xa1, 0xdb, 0x00, 0x01, 0x00, 0x00, // IID1100 - 0xd5, 0x33, 0x81, 0x94, 0x5a, 0xd5, 0xff, 0x57, 0x47, 0x00, 0x01, 0x00, 0x00, // IID1101 - 0xd5, 0x33, 0x81, 0x94, 0x23, 0x93, 0x41, 0x74, 0x4a, 0x00, 0x01, 0x00, 0x00, // IID1102 - 0xd5, 0x33, 0x81, 0x94, 0x2c, 0x1b, 0x8a, 0xba, 0xbd, 0x00, 0x01, 0x00, 0x00, // IID1103 - 0xd5, 0x33, 0x81, 0x94, 0x35, 0x48, 0x8d, 0x17, 0x4e, 0x00, 0x01, 0x00, 0x00, // IID1104 - 0xd5, 0x33, 0x81, 0x94, 0x7e, 0x6e, 0x35, 0xcb, 0xa1, 0x00, 0x01, 0x00, 0x00, // IID1105 - 0xd5, 0x11, 0x81, 0x94, 0x0f, 0x6c, 0xb5, 0x70, 0xb2, 0x00, 0x01, 0x00, 0x00, // IID1106 - 0x81, 0x94, 0x51, 0x37, 0x06, 0x4d, 0x53, 0x00, 0x10, 0x00, 0x00, // IID1107 - 0x81, 0x94, 0x1a, 0xd7, 0xe1, 0xb1, 0x3f, 0x00, 0x10, 0x00, 0x00, // IID1108 - 0x42, 0x81, 0x94, 0x03, 0x1e, 0xe0, 0x2d, 0xfd, 0x00, 0x10, 0x00, 0x00, // IID1109 - 0x43, 0x81, 0x94, 0x08, 0x75, 0x47, 0x19, 0x3c, 0x00, 0x10, 0x00, 0x00, // IID1110 - 0x43, 0x81, 0x94, 0xd1, 0x66, 0x14, 0x48, 0x58, 0x00, 0x10, 0x00, 0x00, // IID1111 - 0x43, 0x81, 0x94, 0x1a, 0xd3, 0x9a, 0xf7, 0xaa, 0x00, 0x10, 0x00, 0x00, // IID1112 - 0x41, 0x81, 0x93, 0x67, 0x6b, 0xc7, 0xc8, 0x00, 0x10, 0x00, 0x00, // IID1113 - 0x43, 0x81, 0x94, 0xec, 0x74, 0xb6, 0x9a, 0xb4, 0x00, 0x10, 0x00, 0x00, // IID1114 - 0x43, 0x81, 0x94, 0xf5, 0x3e, 0x1d, 0xa9, 0x34, 0x00, 0x10, 0x00, 0x00, // IID1115 - 0x41, 0x81, 0x96, 0x8d, 0x60, 0x64, 0x5e, 0x00, 0x10, 0x00, 0x00, // IID1116 - 0xd5, 0x21, 0x81, 0x94, 0x07, 0x40, 0x4d, 0x5b, 0x5f, 0x00, 0x10, 0x00, 0x00, // IID1117 - 0xd5, 0x10, 0x81, 0x90, 0xbb, 0x32, 0xa4, 0xe3, 0x00, 0x10, 0x00, 0x00, // IID1118 - 0xd5, 0x30, 0x81, 0x94, 0xd1, 0xc1, 0x11, 0x44, 0x4f, 0x00, 0x10, 0x00, 0x00, // IID1119 - 0xd5, 0x30, 0x81, 0x94, 0x1a, 0x5d, 0x11, 0x9a, 0x9e, 0x00, 0x10, 0x00, 0x00, // IID1120 - 0xd5, 0x30, 0x81, 0x94, 0xe3, 0x04, 0xe4, 0x4a, 0x87, 0x00, 0x10, 0x00, 0x00, // IID1121 - 0xd5, 0x10, 0x81, 0x94, 0x24, 0x48, 0x3b, 0x84, 0xe3, 0x00, 0x10, 0x00, 0x00, // IID1122 - 0xd5, 0x10, 0x81, 0x95, 0x9f, 0x3e, 0xa7, 0x8e, 0x00, 0x10, 0x00, 0x00, // IID1123 - 0xd5, 0x30, 0x81, 0x94, 0xbe, 0x0d, 0xb1, 0x0d, 0x07, 0x00, 0x10, 0x00, 0x00, // IID1124 - 0xd5, 0x32, 0x81, 0x94, 0x87, 0xd2, 0x0e, 0x0f, 0xca, 0x00, 0x10, 0x00, 0x00, // IID1125 - 0xd5, 0x33, 0x81, 0x94, 0x88, 0xbd, 0x0f, 0x24, 0x49, 0x00, 0x10, 0x00, 0x00, // IID1126 - 0xd5, 0x33, 0x81, 0x94, 0xd1, 0xe7, 0x4a, 0x99, 0x7f, 0x00, 0x10, 0x00, 0x00, // IID1127 - 0xd5, 0x33, 0x81, 0x94, 0x5a, 0x43, 0xbf, 0x89, 0xd4, 0x00, 0x10, 0x00, 0x00, // IID1128 - 0xd5, 0x33, 0x81, 0x94, 0x23, 0x88, 0x93, 0xbc, 0x8d, 0x00, 0x10, 0x00, 0x00, // IID1129 - 0xd5, 0x33, 0x81, 0x94, 0x2c, 0xd9, 0x54, 0x9d, 0xba, 0x00, 0x10, 0x00, 0x00, // IID1130 - 0xd5, 0x11, 0x81, 0x95, 0x87, 0xdc, 0x98, 0x92, 0x00, 0x10, 0x00, 0x00, // IID1131 - 0xd5, 0x11, 0x81, 0x96, 0xbb, 0xd2, 0xeb, 0x37, 0x00, 0x10, 0x00, 0x00, // IID1132 - 0xd5, 0x11, 0x81, 0x94, 0x4f, 0x45, 0x99, 0xc1, 0x05, 0x00, 0x10, 0x00, 0x00, // IID1133 - 0x81, 0x94, 0x11, 0x54, 0xa0, 0x92, 0xd2, 0x00, 0x00, 0x01, 0x00, // IID1134 - 0x81, 0x94, 0x5a, 0x8c, 0xce, 0x4b, 0xc2, 0x00, 0x00, 0x01, 0x00, // IID1135 - 0x42, 0x81, 0x94, 0xc3, 0xcd, 0x91, 0x53, 0xe0, 0x00, 0x00, 0x01, 0x00, // IID1136 - 0x43, 0x81, 0x94, 0x08, 0x10, 0x2d, 0x64, 0x25, 0x00, 0x00, 0x01, 0x00, // IID1137 - 0x43, 0x81, 0x94, 0x51, 0xec, 0xd8, 0xc3, 0x8f, 0x00, 0x00, 0x01, 0x00, // IID1138 - 0x43, 0x81, 0x94, 0x1a, 0x49, 0xde, 0xa7, 0x4a, 0x00, 0x00, 0x01, 0x00, // IID1139 - 0x43, 0x81, 0x94, 0xe3, 0x2f, 0xed, 0xa1, 0x26, 0x00, 0x00, 0x01, 0x00, // IID1140 - 0x43, 0x81, 0x94, 0xec, 0x19, 0x3d, 0x14, 0xc9, 0x00, 0x00, 0x01, 0x00, // IID1141 - 0x41, 0x81, 0x95, 0xe3, 0x01, 0x7e, 0xdf, 0x00, 0x00, 0x01, 0x00, // IID1142 - 0x43, 0x81, 0x94, 0xbe, 0x0a, 0x84, 0xd3, 0xdc, 0x00, 0x00, 0x01, 0x00, // IID1143 - 0xd5, 0x21, 0x81, 0x94, 0xc7, 0x95, 0x6e, 0x8a, 0x2f, 0x00, 0x00, 0x01, 0x00, // IID1144 - 0xd5, 0x30, 0x81, 0x94, 0x08, 0xf7, 0x1a, 0xf6, 0xd5, 0x00, 0x00, 0x01, 0x00, // IID1145 - 0xd5, 0x30, 0x81, 0x94, 0x11, 0x4d, 0x71, 0x83, 0x64, 0x00, 0x00, 0x01, 0x00, // IID1146 - 0xd5, 0x30, 0x81, 0x94, 0x1a, 0xac, 0x59, 0xf1, 0x71, 0x00, 0x00, 0x01, 0x00, // IID1147 - 0xd5, 0x30, 0x81, 0x94, 0x23, 0x4a, 0xb3, 0xba, 0x9c, 0x00, 0x00, 0x01, 0x00, // IID1148 - 0xd5, 0x30, 0x81, 0x94, 0xec, 0x24, 0xaf, 0xdd, 0x2d, 0x00, 0x00, 0x01, 0x00, // IID1149 - 0xd5, 0x30, 0x81, 0x94, 0x75, 0x24, 0x6a, 0xc6, 0x38, 0x00, 0x00, 0x01, 0x00, // IID1150 - 0xd5, 0x30, 0x81, 0x94, 0x7e, 0xa4, 0xbe, 0xcc, 0x8e, 0x00, 0x00, 0x01, 0x00, // IID1151 - 0xd5, 0x32, 0x81, 0x94, 0x87, 0x8c, 0xa1, 0xe8, 0x01, 0x00, 0x00, 0x01, 0x00, // IID1152 - 0xd5, 0x33, 0x81, 0x94, 0x88, 0x3b, 0x61, 0xcf, 0x69, 0x00, 0x00, 0x01, 0x00, // IID1153 - 0xd5, 0x33, 0x81, 0x94, 0xd1, 0x20, 0x57, 0x19, 0xc0, 0x00, 0x00, 0x01, 0x00, // IID1154 - 0xd5, 0x33, 0x81, 0x94, 0x5a, 0xff, 0xe7, 0x70, 0x36, 0x00, 0x00, 0x01, 0x00, // IID1155 - 0xd5, 0x33, 0x81, 0x94, 0xe3, 0x1f, 0x30, 0xfa, 0x2b, 0x00, 0x00, 0x01, 0x00, // IID1156 - 0xd5, 0x33, 0x81, 0x94, 0xac, 0x63, 0xfc, 0xc6, 0x40, 0x00, 0x00, 0x01, 0x00, // IID1157 - 0xd5, 0x33, 0x81, 0x94, 0x75, 0xb0, 0xa3, 0xaf, 0x34, 0x00, 0x00, 0x01, 0x00, // IID1158 - 0xd5, 0x33, 0x81, 0x94, 0xbe, 0x0c, 0xc5, 0x6e, 0xa3, 0x00, 0x00, 0x01, 0x00, // IID1159 - 0xd5, 0x11, 0x81, 0x97, 0xba, 0x53, 0xbc, 0x28, 0x00, 0x00, 0x01, 0x00, // IID1160 - 0x81, 0x94, 0x11, 0x2f, 0x05, 0xc9, 0xba, 0x00, 0x00, 0x10, 0x00, // IID1161 - 0x81, 0x94, 0x5a, 0x37, 0x47, 0x60, 0xd3, 0x00, 0x00, 0x10, 0x00, // IID1162 - 0x42, 0x81, 0x94, 0x43, 0xbb, 0x08, 0x03, 0xaf, 0x00, 0x00, 0x10, 0x00, // IID1163 - 0x43, 0x81, 0x94, 0x08, 0x3e, 0xec, 0xdc, 0x90, 0x00, 0x00, 0x10, 0x00, // IID1164 - 0x43, 0x81, 0x94, 0x91, 0x77, 0x12, 0x5e, 0x91, 0x00, 0x00, 0x10, 0x00, // IID1165 - 0x41, 0x81, 0x92, 0x5d, 0x76, 0x7c, 0xb4, 0x00, 0x00, 0x10, 0x00, // IID1166 - 0x43, 0x81, 0x94, 0xe3, 0x29, 0x0e, 0xd7, 0xab, 0x00, 0x00, 0x10, 0x00, // IID1167 - 0x41, 0x81, 0x94, 0x24, 0xad, 0x3b, 0x52, 0x66, 0x00, 0x00, 0x10, 0x00, // IID1168 - 0x43, 0x81, 0x94, 0xf5, 0x9d, 0x69, 0xca, 0x19, 0x00, 0x00, 0x10, 0x00, // IID1169 - 0x43, 0x81, 0x94, 0xbe, 0x16, 0x87, 0x65, 0x36, 0x00, 0x00, 0x10, 0x00, // IID1170 - 0xd5, 0x21, 0x81, 0x94, 0x07, 0x74, 0x52, 0x14, 0x47, 0x00, 0x00, 0x10, 0x00, // IID1171 - 0xd5, 0x30, 0x81, 0x94, 0x48, 0x9a, 0xc9, 0x7f, 0x6e, 0x00, 0x00, 0x10, 0x00, // IID1172 - 0xd5, 0x30, 0x81, 0x94, 0x91, 0x84, 0x65, 0x70, 0xbd, 0x00, 0x00, 0x10, 0x00, // IID1173 - 0xd5, 0x10, 0x81, 0x92, 0xf5, 0xaf, 0x4c, 0xfd, 0x00, 0x00, 0x10, 0x00, // IID1174 - 0xd5, 0x30, 0x81, 0x94, 0xa3, 0x33, 0xda, 0x91, 0x68, 0x00, 0x00, 0x10, 0x00, // IID1175 - 0xd5, 0x30, 0x81, 0x94, 0xec, 0x56, 0x77, 0xf7, 0xe9, 0x00, 0x00, 0x10, 0x00, // IID1176 - 0xd5, 0x10, 0x81, 0x95, 0x63, 0xf6, 0xc1, 0xd0, 0x00, 0x00, 0x10, 0x00, // IID1177 - 0xd5, 0x30, 0x81, 0x94, 0x3e, 0x57, 0xd3, 0x3b, 0x20, 0x00, 0x00, 0x10, 0x00, // IID1178 - 0xd5, 0x32, 0x81, 0x94, 0x87, 0x83, 0x6e, 0x9b, 0x79, 0x00, 0x00, 0x10, 0x00, // IID1179 - 0xd5, 0x11, 0x81, 0x90, 0xfa, 0x6e, 0x4d, 0x9b, 0x00, 0x00, 0x10, 0x00, // IID1180 - 0xd5, 0x33, 0x81, 0x94, 0x11, 0xc6, 0x45, 0x91, 0x54, 0x00, 0x00, 0x10, 0x00, // IID1181 - 0xd5, 0x11, 0x81, 0x92, 0xf6, 0x7f, 0x04, 0xc4, 0x00, 0x00, 0x10, 0x00, // IID1182 - 0xd5, 0x33, 0x81, 0x94, 0xe3, 0x30, 0x00, 0x86, 0xfe, 0x00, 0x00, 0x10, 0x00, // IID1183 - 0xd5, 0x11, 0x81, 0x94, 0x24, 0x3c, 0xea, 0x01, 0x69, 0x00, 0x00, 0x10, 0x00, // IID1184 - 0xd5, 0x33, 0x81, 0x94, 0x75, 0x1a, 0x13, 0x0b, 0x04, 0x00, 0x00, 0x10, 0x00, // IID1185 - 0xd5, 0x33, 0x81, 0x94, 0x3e, 0xc8, 0x05, 0xd0, 0x48, 0x00, 0x00, 0x10, 0x00, // IID1186 - 0xd5, 0x11, 0x81, 0x94, 0xcf, 0x08, 0xd7, 0xff, 0xe9, 0x00, 0x00, 0x10, 0x00, // IID1187 - 0x81, 0x91, 0x77, 0x1d, 0xc3, 0x8d, 0x00, 0x00, 0x00, 0x01, // IID1188 - 0x81, 0x92, 0x49, 0x4d, 0xf4, 0x48, 0x00, 0x00, 0x00, 0x01, // IID1189 - 0x42, 0x81, 0x94, 0x83, 0x48, 0x45, 0x43, 0x5b, 0x00, 0x00, 0x00, 0x01, // IID1190 - 0x43, 0x81, 0x94, 0xc8, 0x03, 0x73, 0xca, 0xa2, 0x00, 0x00, 0x00, 0x01, // IID1191 - 0x41, 0x81, 0x91, 0x69, 0xd8, 0x2e, 0x58, 0x00, 0x00, 0x00, 0x01, // IID1192 - 0x41, 0x81, 0x92, 0xb9, 0x5d, 0x8a, 0x7d, 0x00, 0x00, 0x00, 0x01, // IID1193 - 0x43, 0x81, 0x94, 0xa3, 0x55, 0x6d, 0xf7, 0x2c, 0x00, 0x00, 0x00, 0x01, // IID1194 - 0x41, 0x81, 0x94, 0x24, 0x9b, 0xb6, 0xa9, 0x98, 0x00, 0x00, 0x00, 0x01, // IID1195 - 0x43, 0x81, 0x94, 0x35, 0x00, 0x38, 0x88, 0xf7, 0x00, 0x00, 0x00, 0x01, // IID1196 - 0x43, 0x81, 0x94, 0x7e, 0x43, 0xcc, 0xd6, 0x7e, 0x00, 0x00, 0x00, 0x01, // IID1197 - 0xd5, 0x21, 0x81, 0x94, 0x47, 0x6e, 0x6b, 0x07, 0xd1, 0x00, 0x00, 0x00, 0x01, // IID1198 - 0xd5, 0x30, 0x81, 0x94, 0x48, 0x2c, 0x29, 0x7e, 0x3c, 0x00, 0x00, 0x00, 0x01, // IID1199 - 0xd5, 0x30, 0x81, 0x94, 0x51, 0xef, 0x66, 0x5d, 0x5c, 0x00, 0x00, 0x00, 0x01, // IID1200 - 0xd5, 0x30, 0x81, 0x94, 0x5a, 0x4c, 0xd5, 0x6c, 0x8c, 0x00, 0x00, 0x00, 0x01, // IID1201 - 0xd5, 0x30, 0x81, 0x94, 0xe3, 0xe0, 0xc6, 0xb8, 0x07, 0x00, 0x00, 0x00, 0x01, // IID1202 - 0xd5, 0x30, 0x81, 0x94, 0x6c, 0x6a, 0x56, 0x5d, 0xe1, 0x00, 0x00, 0x00, 0x01, // IID1203 - 0xd5, 0x30, 0x81, 0x94, 0x35, 0x23, 0x66, 0x9b, 0xbb, 0x00, 0x00, 0x00, 0x01, // IID1204 - 0xd5, 0x10, 0x81, 0x96, 0x96, 0xbe, 0xe3, 0x08, 0x00, 0x00, 0x00, 0x01, // IID1205 - 0xd5, 0x32, 0x81, 0x94, 0x07, 0xda, 0x35, 0xdd, 0x06, 0x00, 0x00, 0x00, 0x01, // IID1206 - 0xd5, 0x11, 0x81, 0x90, 0x87, 0x4b, 0x0c, 0x93, 0x00, 0x00, 0x00, 0x01, // IID1207 - 0xd5, 0x33, 0x81, 0x94, 0x51, 0x71, 0x28, 0x4a, 0x1b, 0x00, 0x00, 0x00, 0x01, // IID1208 - 0xd5, 0x33, 0x81, 0x94, 0x5a, 0xea, 0xaa, 0xbd, 0x53, 0x00, 0x00, 0x00, 0x01, // IID1209 - 0xd5, 0x11, 0x81, 0x93, 0x13, 0x37, 0x8f, 0xc7, 0x00, 0x00, 0x00, 0x01, // IID1210 - 0xd5, 0x11, 0x81, 0x94, 0x24, 0xf2, 0x80, 0x93, 0xee, 0x00, 0x00, 0x00, 0x01, // IID1211 - 0xd5, 0x33, 0x81, 0x94, 0xf5, 0x7a, 0x8b, 0x07, 0xde, 0x00, 0x00, 0x00, 0x01, // IID1212 - 0xd5, 0x33, 0x81, 0x94, 0x3e, 0xb7, 0x06, 0x31, 0x8b, 0x00, 0x00, 0x00, 0x01, // IID1213 - 0xd5, 0x11, 0x81, 0x94, 0x0f, 0xa7, 0x6f, 0x78, 0x9c, 0x00, 0x00, 0x00, 0x01, // IID1214 - 0x81, 0x94, 0x51, 0xe8, 0xed, 0xe5, 0xb0, 0x00, 0x00, 0x00, 0x10, // IID1215 - 0x81, 0x94, 0xda, 0xd9, 0x9d, 0xd8, 0x58, 0x00, 0x00, 0x00, 0x10, // IID1216 - 0x42, 0x81, 0x94, 0x43, 0x17, 0xf3, 0xe0, 0x88, 0x00, 0x00, 0x00, 0x10, // IID1217 - 0x43, 0x81, 0x94, 0x48, 0x9a, 0x02, 0x3b, 0x70, 0x00, 0x00, 0x00, 0x10, // IID1218 - 0x43, 0x81, 0x94, 0x91, 0x50, 0x4b, 0xf3, 0xe4, 0x00, 0x00, 0x00, 0x10, // IID1219 - 0x43, 0x81, 0x94, 0xda, 0x89, 0x9c, 0x89, 0xa1, 0x00, 0x00, 0x00, 0x10, // IID1220 - 0x43, 0x81, 0x94, 0x63, 0x62, 0x3d, 0x50, 0x55, 0x00, 0x00, 0x00, 0x10, // IID1221 - 0x43, 0x81, 0x94, 0xac, 0x23, 0x91, 0x49, 0x0c, 0x00, 0x00, 0x00, 0x10, // IID1222 - 0x43, 0x81, 0x94, 0xb5, 0x52, 0xc4, 0xe4, 0x2c, 0x00, 0x00, 0x00, 0x10, // IID1223 - 0x43, 0x81, 0x94, 0x3e, 0x4e, 0x41, 0x63, 0xe3, 0x00, 0x00, 0x00, 0x10, // IID1224 - 0xd5, 0x21, 0x81, 0x94, 0x07, 0xdf, 0x4b, 0xca, 0xfc, 0x00, 0x00, 0x00, 0x10, // IID1225 - 0xd5, 0x30, 0x81, 0x94, 0x08, 0x01, 0x73, 0x0c, 0x13, 0x00, 0x00, 0x00, 0x10, // IID1226 - 0xd5, 0x30, 0x81, 0x94, 0x11, 0x95, 0xcc, 0x66, 0xb9, 0x00, 0x00, 0x00, 0x10, // IID1227 - 0xd5, 0x30, 0x81, 0x94, 0x9a, 0xb4, 0xfe, 0xe0, 0x3a, 0x00, 0x00, 0x00, 0x10, // IID1228 - 0xd5, 0x10, 0x81, 0x93, 0x1c, 0xa9, 0x88, 0x51, 0x00, 0x00, 0x00, 0x10, // IID1229 - 0xd5, 0x30, 0x81, 0x94, 0xec, 0x24, 0x87, 0x8c, 0xde, 0x00, 0x00, 0x00, 0x10, // IID1230 - 0xd5, 0x30, 0x81, 0x94, 0x75, 0x9b, 0xb0, 0x40, 0xf2, 0x00, 0x00, 0x00, 0x10, // IID1231 - 0xd5, 0x30, 0x81, 0x94, 0xfe, 0xec, 0xa8, 0x91, 0x0d, 0x00, 0x00, 0x00, 0x10, // IID1232 - 0xd5, 0x32, 0x81, 0x94, 0x47, 0xf2, 0x85, 0x21, 0xb9, 0x00, 0x00, 0x00, 0x10, // IID1233 - 0xd5, 0x33, 0x81, 0x94, 0xc8, 0xc0, 0x12, 0x41, 0x6e, 0x00, 0x00, 0x00, 0x10, // IID1234 - 0xd5, 0x33, 0x81, 0x94, 0x11, 0x2d, 0x10, 0xdd, 0x21, 0x00, 0x00, 0x00, 0x10, // IID1235 - 0xd5, 0x33, 0x81, 0x94, 0x1a, 0xee, 0x8a, 0x52, 0x0f, 0x00, 0x00, 0x00, 0x10, // IID1236 - 0xd5, 0x33, 0x81, 0x94, 0xe3, 0x0e, 0x96, 0x76, 0xc0, 0x00, 0x00, 0x00, 0x10, // IID1237 - 0xd5, 0x11, 0x81, 0x94, 0x24, 0x0b, 0x7a, 0x80, 0x71, 0x00, 0x00, 0x00, 0x10, // IID1238 - 0xd5, 0x33, 0x81, 0x94, 0xb5, 0xe2, 0xc7, 0xf2, 0x1b, 0x00, 0x00, 0x00, 0x10, // IID1239 - 0xd5, 0x33, 0x81, 0x94, 0xfe, 0xca, 0x50, 0x2e, 0x1b, 0x00, 0x00, 0x00, 0x10, // IID1240 - 0xd5, 0x11, 0x81, 0x94, 0x0f, 0x60, 0xee, 0x39, 0xb1, 0x00, 0x00, 0x00, 0x10, // IID1241 -#endif // _LP64 - 0x83, 0xa4, 0x51, 0x9c, 0x03, 0xf3, 0x8c, 0x01, // IID1242 - 0x83, 0xa4, 0xda, 0x21, 0xe8, 0x57, 0x44, 0x01, // IID1243 -#ifdef _LP64 - 0x42, 0x83, 0xa4, 0x43, 0xa4, 0xec, 0xdc, 0x51, 0x01, // IID1244 - 0x43, 0x83, 0xa4, 0x08, 0x66, 0xc4, 0xb8, 0x7a, 0x01, // IID1245 - 0x43, 0x83, 0xa4, 0x91, 0xcd, 0xbb, 0x2e, 0x0e, 0x01, // IID1246 - 0x43, 0x83, 0xa4, 0x1a, 0x80, 0x38, 0xcf, 0x4f, 0x01, // IID1247 - 0x43, 0x83, 0xa4, 0x23, 0xff, 0xf5, 0x81, 0x51, 0x01, // IID1248 - 0x43, 0x83, 0xa4, 0xac, 0xf1, 0x64, 0xeb, 0x38, 0x01, // IID1249 - 0x43, 0x83, 0xa4, 0xf5, 0xe2, 0x56, 0xe9, 0x01, 0x01, // IID1250 - 0x43, 0x83, 0xa4, 0x7e, 0x5d, 0xb4, 0xb6, 0xbd, 0x01, // IID1251 - 0xd5, 0x21, 0x83, 0xa4, 0xc7, 0xf0, 0x7b, 0x0c, 0x64, 0x01, // IID1252 - 0xd5, 0x10, 0x83, 0xa0, 0x2e, 0x2b, 0x05, 0x4b, 0x01, // IID1253 - 0xd5, 0x30, 0x83, 0xa4, 0xd1, 0x5f, 0xa9, 0xd7, 0x6d, 0x01, // IID1254 - 0xd5, 0x30, 0x83, 0xa4, 0x1a, 0x46, 0x4b, 0xb3, 0x68, 0x01, // IID1255 - 0xd5, 0x30, 0x83, 0xa4, 0xa3, 0xeb, 0x66, 0xf6, 0xb6, 0x01, // IID1256 - 0xd5, 0x30, 0x83, 0xa4, 0x6c, 0x20, 0xb0, 0xad, 0xb8, 0x01, // IID1257 - 0xd5, 0x30, 0x83, 0xa4, 0x75, 0x1a, 0xd1, 0x26, 0x5d, 0x01, // IID1258 - 0xd5, 0x30, 0x83, 0xa4, 0xbe, 0xaa, 0xb0, 0x2e, 0xdb, 0x01, // IID1259 - 0xd5, 0x32, 0x83, 0xa4, 0x07, 0x4f, 0xb5, 0x22, 0x3c, 0x01, // IID1260 - 0xd5, 0x11, 0x83, 0xa0, 0x23, 0x43, 0xa3, 0x53, 0x01, // IID1261 - 0xd5, 0x33, 0x83, 0xa4, 0x91, 0x81, 0x5e, 0xc7, 0x33, 0x01, // IID1262 - 0xd5, 0x33, 0x83, 0xa4, 0x9a, 0x45, 0x3b, 0x49, 0xa1, 0x01, // IID1263 - 0xd5, 0x11, 0x83, 0xa3, 0xc5, 0x83, 0x39, 0xec, 0x01, // IID1264 - 0xd5, 0x33, 0x83, 0xa4, 0xec, 0xaa, 0xfc, 0xd6, 0x93, 0x01, // IID1265 - 0xd5, 0x33, 0x83, 0xa4, 0xb5, 0x31, 0x14, 0xd1, 0xe4, 0x01, // IID1266 - 0xd5, 0x33, 0x83, 0xa4, 0xfe, 0x7e, 0x19, 0xd8, 0x5c, 0x01, // IID1267 - 0xd5, 0x11, 0x83, 0xa7, 0x6a, 0x5d, 0x24, 0xf4, 0x01, // IID1268 - 0x83, 0xa1, 0x65, 0x2d, 0xfd, 0xa1, 0x10, // IID1269 - 0x83, 0xa2, 0x61, 0xb1, 0x5a, 0x00, 0x10, // IID1270 - 0x42, 0x83, 0xa4, 0x43, 0x06, 0x29, 0x4d, 0xe8, 0x10, // IID1271 - 0x43, 0x83, 0xa4, 0x88, 0xa6, 0x81, 0x5f, 0x9a, 0x10, // IID1272 - 0x43, 0x83, 0xa4, 0xd1, 0x22, 0x9f, 0x46, 0x1e, 0x10, // IID1273 - 0x43, 0x83, 0xa4, 0x5a, 0xc3, 0x24, 0x7c, 0xe1, 0x10, // IID1274 - 0x43, 0x83, 0xa4, 0x23, 0xbd, 0xb9, 0x14, 0xe2, 0x10, // IID1275 - 0x43, 0x83, 0xa4, 0x6c, 0x39, 0x3d, 0x08, 0x32, 0x10, // IID1276 - 0x43, 0x83, 0xa4, 0x75, 0x93, 0x09, 0xd8, 0xed, 0x10, // IID1277 - 0x41, 0x83, 0xa6, 0x93, 0xdc, 0xb6, 0xac, 0x10, // IID1278 - 0xd5, 0x21, 0x83, 0xa4, 0x47, 0x09, 0x99, 0xb4, 0xc2, 0x10, // IID1279 - 0xd5, 0x30, 0x83, 0xa4, 0x48, 0x8b, 0xfe, 0xbc, 0x5c, 0x10, // IID1280 - 0xd5, 0x30, 0x83, 0xa4, 0x51, 0x60, 0x98, 0xa3, 0x6e, 0x10, // IID1281 - 0xd5, 0x30, 0x83, 0xa4, 0xda, 0x6e, 0x9a, 0x49, 0x93, 0x10, // IID1282 - 0xd5, 0x30, 0x83, 0xa4, 0x23, 0x66, 0x0d, 0xd1, 0xaa, 0x10, // IID1283 - 0xd5, 0x30, 0x83, 0xa4, 0xac, 0xd6, 0x6b, 0x2c, 0xbf, 0x10, // IID1284 - 0xd5, 0x30, 0x83, 0xa4, 0x75, 0x85, 0xd9, 0x06, 0x3b, 0x10, // IID1285 - 0xd5, 0x30, 0x83, 0xa4, 0x3e, 0xb6, 0x9e, 0xb3, 0xc1, 0x10, // IID1286 - 0xd5, 0x10, 0x83, 0xa7, 0x4b, 0xfd, 0xaf, 0xf2, 0x10, // IID1287 - 0xd5, 0x33, 0x83, 0xa4, 0x08, 0xfc, 0x06, 0x68, 0xba, 0x10, // IID1288 - 0xd5, 0x33, 0x83, 0xa4, 0x11, 0x05, 0x52, 0xbd, 0x5d, 0x10, // IID1289 - 0xd5, 0x11, 0x83, 0xa2, 0x20, 0x3f, 0xc2, 0x54, 0x10, // IID1290 - 0xd5, 0x33, 0x83, 0xa4, 0xa3, 0xb5, 0xc7, 0x57, 0x47, 0x10, // IID1291 - 0xd5, 0x11, 0x83, 0xa4, 0x24, 0x29, 0xdc, 0x8e, 0xe8, 0x10, // IID1292 - 0xd5, 0x33, 0x83, 0xa4, 0x75, 0x05, 0xed, 0xc4, 0xf4, 0x10, // IID1293 - 0xd5, 0x33, 0x83, 0xa4, 0x3e, 0x40, 0x84, 0x8c, 0x82, 0x10, // IID1294 - 0xd5, 0x11, 0x83, 0xa4, 0x0f, 0x9a, 0x3e, 0x49, 0xa2, 0x10, // IID1295 - 0x81, 0xa4, 0x91, 0xae, 0x2b, 0x07, 0xcc, 0x00, 0x01, 0x00, 0x00, // IID1296 - 0x81, 0xa2, 0x96, 0x7b, 0x8a, 0x8e, 0x00, 0x01, 0x00, 0x00, // IID1297 - 0x42, 0x81, 0xa4, 0xc3, 0x81, 0xa5, 0x37, 0x6d, 0x00, 0x01, 0x00, 0x00, // IID1298 - 0x43, 0x81, 0xa4, 0x48, 0xc6, 0x20, 0x5c, 0x82, 0x00, 0x01, 0x00, 0x00, // IID1299 - 0x43, 0x81, 0xa4, 0x51, 0xa1, 0xda, 0x02, 0x12, 0x00, 0x01, 0x00, 0x00, // IID1300 - 0x43, 0x81, 0xa4, 0xda, 0xc8, 0xec, 0x13, 0xd2, 0x00, 0x01, 0x00, 0x00, // IID1301 - 0x43, 0x81, 0xa4, 0x63, 0xa5, 0x6d, 0x3d, 0x43, 0x00, 0x01, 0x00, 0x00, // IID1302 - 0x43, 0x81, 0xa4, 0x6c, 0xcb, 0x53, 0x61, 0xfc, 0x00, 0x01, 0x00, 0x00, // IID1303 - 0x43, 0x81, 0xa4, 0xf5, 0x25, 0x5b, 0xdd, 0x63, 0x00, 0x01, 0x00, 0x00, // IID1304 - 0x43, 0x81, 0xa4, 0x7e, 0xd1, 0x1f, 0x5b, 0xd4, 0x00, 0x01, 0x00, 0x00, // IID1305 - 0xd5, 0x21, 0x81, 0xa4, 0x07, 0x05, 0x2e, 0x49, 0x57, 0x00, 0x01, 0x00, 0x00, // IID1306 - 0xd5, 0x30, 0x81, 0xa4, 0x08, 0xf5, 0x0b, 0xae, 0x4d, 0x00, 0x01, 0x00, 0x00, // IID1307 - 0xd5, 0x30, 0x81, 0xa4, 0xd1, 0xad, 0x8d, 0x88, 0x6e, 0x00, 0x01, 0x00, 0x00, // IID1308 - 0xd5, 0x30, 0x81, 0xa4, 0x1a, 0x3e, 0xcc, 0x60, 0x20, 0x00, 0x01, 0x00, 0x00, // IID1309 - 0xd5, 0x30, 0x81, 0xa4, 0x63, 0x80, 0x51, 0xa8, 0x22, 0x00, 0x01, 0x00, 0x00, // IID1310 - 0xd5, 0x30, 0x81, 0xa4, 0x2c, 0x2d, 0x98, 0x26, 0x11, 0x00, 0x01, 0x00, 0x00, // IID1311 - 0xd5, 0x10, 0x81, 0xa5, 0x17, 0x04, 0x3b, 0x4d, 0x00, 0x01, 0x00, 0x00, // IID1312 - 0xd5, 0x30, 0x81, 0xa4, 0xfe, 0xd8, 0x35, 0xa3, 0xd0, 0x00, 0x01, 0x00, 0x00, // IID1313 - 0xd5, 0x32, 0x81, 0xa4, 0xc7, 0x8c, 0x2a, 0xa0, 0x05, 0x00, 0x01, 0x00, 0x00, // IID1314 - 0xd5, 0x33, 0x81, 0xa4, 0xc8, 0x15, 0x16, 0x12, 0x56, 0x00, 0x01, 0x00, 0x00, // IID1315 - 0xd5, 0x11, 0x81, 0xa1, 0x78, 0xf4, 0xa1, 0x6b, 0x00, 0x01, 0x00, 0x00, // IID1316 - 0xd5, 0x33, 0x81, 0xa4, 0xda, 0x83, 0x23, 0xe6, 0x64, 0x00, 0x01, 0x00, 0x00, // IID1317 - 0xd5, 0x33, 0x81, 0xa4, 0x63, 0x14, 0x1e, 0xd3, 0x5e, 0x00, 0x01, 0x00, 0x00, // IID1318 - 0xd5, 0x33, 0x81, 0xa4, 0x6c, 0x9a, 0x71, 0x3c, 0xf2, 0x00, 0x01, 0x00, 0x00, // IID1319 - 0xd5, 0x33, 0x81, 0xa4, 0x75, 0xbd, 0x88, 0xba, 0x14, 0x00, 0x01, 0x00, 0x00, // IID1320 - 0xd5, 0x33, 0x81, 0xa4, 0x3e, 0x0c, 0xdd, 0x9a, 0x4e, 0x00, 0x01, 0x00, 0x00, // IID1321 - 0xd5, 0x11, 0x81, 0xa4, 0x0f, 0x2e, 0x6a, 0x40, 0xf3, 0x00, 0x01, 0x00, 0x00, // IID1322 - 0x81, 0xa4, 0x51, 0x78, 0x94, 0x45, 0x55, 0x00, 0x10, 0x00, 0x00, // IID1323 - 0x81, 0xa4, 0x1a, 0x14, 0x9d, 0x64, 0x88, 0x00, 0x10, 0x00, 0x00, // IID1324 - 0x42, 0x81, 0xa4, 0xc3, 0x39, 0xa5, 0x99, 0xd6, 0x00, 0x10, 0x00, 0x00, // IID1325 - 0x43, 0x81, 0xa4, 0x88, 0xa7, 0x52, 0x10, 0x36, 0x00, 0x10, 0x00, 0x00, // IID1326 - 0x41, 0x81, 0xa1, 0xa8, 0x18, 0x2c, 0xdd, 0x00, 0x10, 0x00, 0x00, // IID1327 - 0x43, 0x81, 0xa4, 0x5a, 0x09, 0x04, 0x6e, 0x5e, 0x00, 0x10, 0x00, 0x00, // IID1328 - 0x43, 0x81, 0xa4, 0x23, 0x52, 0xe5, 0xe8, 0x38, 0x00, 0x10, 0x00, 0x00, // IID1329 - 0x43, 0x81, 0xa4, 0xec, 0xd8, 0x60, 0x08, 0xd2, 0x00, 0x10, 0x00, 0x00, // IID1330 - 0x43, 0x81, 0xa4, 0xf5, 0x8d, 0x09, 0x8e, 0xfa, 0x00, 0x10, 0x00, 0x00, // IID1331 - 0x43, 0x81, 0xa4, 0x7e, 0x7a, 0x9b, 0xcd, 0x25, 0x00, 0x10, 0x00, 0x00, // IID1332 - 0xd5, 0x21, 0x81, 0xa4, 0x07, 0xaa, 0x63, 0x9b, 0xc4, 0x00, 0x10, 0x00, 0x00, // IID1333 - 0xd5, 0x30, 0x81, 0xa4, 0x08, 0x1e, 0x94, 0x06, 0x21, 0x00, 0x10, 0x00, 0x00, // IID1334 - 0xd5, 0x30, 0x81, 0xa4, 0x51, 0x04, 0xbb, 0x0e, 0x17, 0x00, 0x10, 0x00, 0x00, // IID1335 - 0xd5, 0x30, 0x81, 0xa4, 0x5a, 0x1f, 0x6a, 0x2b, 0x1f, 0x00, 0x10, 0x00, 0x00, // IID1336 - 0xd5, 0x30, 0x81, 0xa4, 0xa3, 0xc0, 0x02, 0x9e, 0xa0, 0x00, 0x10, 0x00, 0x00, // IID1337 - 0xd5, 0x30, 0x81, 0xa4, 0xac, 0xc3, 0x93, 0x41, 0x9b, 0x00, 0x10, 0x00, 0x00, // IID1338 - 0xd5, 0x30, 0x81, 0xa4, 0xb5, 0x8b, 0x4f, 0xff, 0x89, 0x00, 0x10, 0x00, 0x00, // IID1339 - 0xd5, 0x10, 0x81, 0xa6, 0x8f, 0x20, 0xd3, 0xb7, 0x00, 0x10, 0x00, 0x00, // IID1340 - 0xd5, 0x10, 0x81, 0xa7, 0xc9, 0x09, 0x94, 0x04, 0x00, 0x10, 0x00, 0x00, // IID1341 - 0xd5, 0x33, 0x81, 0xa4, 0x88, 0xc9, 0x40, 0xeb, 0xa2, 0x00, 0x10, 0x00, 0x00, // IID1342 - 0xd5, 0x33, 0x81, 0xa4, 0x51, 0x9c, 0xf2, 0xa5, 0x20, 0x00, 0x10, 0x00, 0x00, // IID1343 - 0xd5, 0x33, 0x81, 0xa4, 0x9a, 0xb6, 0xe4, 0xf7, 0x76, 0x00, 0x10, 0x00, 0x00, // IID1344 - 0xd5, 0x33, 0x81, 0xa4, 0xe3, 0x89, 0x76, 0x12, 0xba, 0x00, 0x10, 0x00, 0x00, // IID1345 - 0xd5, 0x11, 0x81, 0xa4, 0x24, 0x8f, 0x4e, 0x14, 0xef, 0x00, 0x10, 0x00, 0x00, // IID1346 - 0xd5, 0x33, 0x81, 0xa4, 0x35, 0x01, 0x37, 0xfb, 0x8e, 0x00, 0x10, 0x00, 0x00, // IID1347 - 0xd5, 0x33, 0x81, 0xa4, 0x7e, 0xc7, 0x91, 0x12, 0x98, 0x00, 0x10, 0x00, 0x00, // IID1348 - 0xd5, 0x11, 0x81, 0xa4, 0x8f, 0x69, 0x8d, 0x8f, 0x7f, 0x00, 0x10, 0x00, 0x00, // IID1349 - 0x81, 0xa4, 0x11, 0x8e, 0x46, 0xdd, 0x80, 0x00, 0x00, 0x01, 0x00, // IID1350 - 0x81, 0xa4, 0xda, 0x30, 0xa0, 0x8a, 0x49, 0x00, 0x00, 0x01, 0x00, // IID1351 - 0x42, 0x81, 0xa4, 0x83, 0xaa, 0xd9, 0x67, 0xf6, 0x00, 0x00, 0x01, 0x00, // IID1352 - 0x43, 0x81, 0xa4, 0x48, 0xb5, 0x6b, 0xc3, 0x41, 0x00, 0x00, 0x01, 0x00, // IID1353 - 0x43, 0x81, 0xa4, 0x91, 0xc3, 0x0e, 0x78, 0xb3, 0x00, 0x00, 0x01, 0x00, // IID1354 - 0x41, 0x81, 0xa2, 0xfb, 0x70, 0x6d, 0xf9, 0x00, 0x00, 0x01, 0x00, // IID1355 - 0x43, 0x81, 0xa4, 0xe3, 0x75, 0x6b, 0x7b, 0xf6, 0x00, 0x00, 0x01, 0x00, // IID1356 - 0x43, 0x81, 0xa4, 0x2c, 0xe1, 0xba, 0x53, 0xde, 0x00, 0x00, 0x01, 0x00, // IID1357 - 0x43, 0x81, 0xa4, 0xf5, 0x73, 0x97, 0xf3, 0xe4, 0x00, 0x00, 0x01, 0x00, // IID1358 - 0x43, 0x81, 0xa4, 0xfe, 0x02, 0x95, 0x59, 0xef, 0x00, 0x00, 0x01, 0x00, // IID1359 - 0xd5, 0x21, 0x81, 0xa4, 0x87, 0x78, 0x1b, 0xb8, 0xf7, 0x00, 0x00, 0x01, 0x00, // IID1360 - 0xd5, 0x30, 0x81, 0xa4, 0x48, 0x6f, 0x47, 0xee, 0xb1, 0x00, 0x00, 0x01, 0x00, // IID1361 - 0xd5, 0x10, 0x81, 0xa1, 0xd6, 0x33, 0xcc, 0x7a, 0x00, 0x00, 0x01, 0x00, // IID1362 - 0xd5, 0x30, 0x81, 0xa4, 0x5a, 0xe7, 0xcb, 0xf1, 0xf8, 0x00, 0x00, 0x01, 0x00, // IID1363 - 0xd5, 0x10, 0x81, 0xa3, 0x49, 0x40, 0x28, 0xea, 0x00, 0x00, 0x01, 0x00, // IID1364 - 0xd5, 0x10, 0x81, 0xa4, 0x24, 0xc2, 0xc0, 0x79, 0x52, 0x00, 0x00, 0x01, 0x00, // IID1365 - 0xd5, 0x10, 0x81, 0xa5, 0xfc, 0x98, 0x4e, 0xd1, 0x00, 0x00, 0x01, 0x00, // IID1366 - 0xd5, 0x10, 0x81, 0xa6, 0x89, 0xb3, 0x58, 0x45, 0x00, 0x00, 0x01, 0x00, // IID1367 - 0xd5, 0x32, 0x81, 0xa4, 0x47, 0x6d, 0xb5, 0x65, 0xf0, 0x00, 0x00, 0x01, 0x00, // IID1368 - 0xd5, 0x11, 0x81, 0xa0, 0xea, 0xf3, 0xcf, 0x88, 0x00, 0x00, 0x01, 0x00, // IID1369 - 0xd5, 0x33, 0x81, 0xa4, 0xd1, 0x1c, 0xba, 0xd8, 0xe6, 0x00, 0x00, 0x01, 0x00, // IID1370 - 0xd5, 0x33, 0x81, 0xa4, 0x1a, 0x66, 0x1a, 0xee, 0xea, 0x00, 0x00, 0x01, 0x00, // IID1371 - 0xd5, 0x11, 0x81, 0xa3, 0x64, 0x17, 0xf2, 0xb6, 0x00, 0x00, 0x01, 0x00, // IID1372 - 0xd5, 0x33, 0x81, 0xa4, 0xec, 0x97, 0x32, 0xac, 0x9d, 0x00, 0x00, 0x01, 0x00, // IID1373 - 0xd5, 0x33, 0x81, 0xa4, 0x35, 0x99, 0x3b, 0x02, 0x07, 0x00, 0x00, 0x01, 0x00, // IID1374 - 0xd5, 0x33, 0x81, 0xa4, 0x7e, 0x0f, 0x90, 0x07, 0xa6, 0x00, 0x00, 0x01, 0x00, // IID1375 - 0xd5, 0x11, 0x81, 0xa4, 0x0f, 0x1d, 0x11, 0x07, 0x13, 0x00, 0x00, 0x01, 0x00, // IID1376 - 0x81, 0xa4, 0xd1, 0x8d, 0x5f, 0x3b, 0x44, 0x00, 0x00, 0x10, 0x00, // IID1377 - 0x81, 0xa4, 0x9a, 0x82, 0xe3, 0x89, 0xfa, 0x00, 0x00, 0x10, 0x00, // IID1378 - 0x42, 0x81, 0xa4, 0x83, 0x0f, 0x28, 0x2f, 0xa5, 0x00, 0x00, 0x10, 0x00, // IID1379 - 0x43, 0x81, 0xa4, 0x88, 0x78, 0x4b, 0x4f, 0x06, 0x00, 0x00, 0x10, 0x00, // IID1380 - 0x43, 0x81, 0xa4, 0x11, 0x86, 0x5f, 0xdb, 0x45, 0x00, 0x00, 0x10, 0x00, // IID1381 - 0x43, 0x81, 0xa4, 0x1a, 0x0d, 0xa6, 0x8e, 0x7a, 0x00, 0x00, 0x10, 0x00, // IID1382 - 0x43, 0x81, 0xa4, 0x23, 0xa8, 0x36, 0x08, 0x92, 0x00, 0x00, 0x10, 0x00, // IID1383 - 0x43, 0x81, 0xa4, 0xec, 0x31, 0x9f, 0xa5, 0x62, 0x00, 0x00, 0x10, 0x00, // IID1384 - 0x43, 0x81, 0xa4, 0x35, 0x68, 0x98, 0x4c, 0x51, 0x00, 0x00, 0x10, 0x00, // IID1385 - 0x41, 0x81, 0xa6, 0x92, 0x83, 0xb8, 0x5d, 0x00, 0x00, 0x10, 0x00, // IID1386 - 0xd5, 0x21, 0x81, 0xa4, 0x47, 0x9a, 0x37, 0x9c, 0x68, 0x00, 0x00, 0x10, 0x00, // IID1387 - 0xd5, 0x30, 0x81, 0xa4, 0xc8, 0x7d, 0xf5, 0x37, 0xbe, 0x00, 0x00, 0x10, 0x00, // IID1388 - 0xd5, 0x10, 0x81, 0xa1, 0xa7, 0x70, 0x09, 0xea, 0x00, 0x00, 0x10, 0x00, // IID1389 - 0xd5, 0x30, 0x81, 0xa4, 0x5a, 0x6f, 0x5b, 0x24, 0xde, 0x00, 0x00, 0x10, 0x00, // IID1390 - 0xd5, 0x10, 0x81, 0xa3, 0x1f, 0x23, 0xc1, 0xfa, 0x00, 0x00, 0x10, 0x00, // IID1391 - 0xd5, 0x30, 0x81, 0xa4, 0xac, 0x32, 0xb5, 0xed, 0xa0, 0x00, 0x00, 0x10, 0x00, // IID1392 - 0xd5, 0x30, 0x81, 0xa4, 0x75, 0x3c, 0xc6, 0x65, 0xa3, 0x00, 0x00, 0x10, 0x00, // IID1393 - 0xd5, 0x30, 0x81, 0xa4, 0xfe, 0xdb, 0x72, 0x9b, 0x32, 0x00, 0x00, 0x10, 0x00, // IID1394 - 0xd5, 0x32, 0x81, 0xa4, 0x87, 0x43, 0xe8, 0xed, 0x4b, 0x00, 0x00, 0x10, 0x00, // IID1395 - 0xd5, 0x11, 0x81, 0xa0, 0xd5, 0x42, 0x14, 0xdd, 0x00, 0x00, 0x10, 0x00, // IID1396 - 0xd5, 0x33, 0x81, 0xa4, 0xd1, 0xa9, 0x20, 0x69, 0x01, 0x00, 0x00, 0x10, 0x00, // IID1397 - 0xd5, 0x33, 0x81, 0xa4, 0xda, 0x92, 0x6b, 0xa3, 0x67, 0x00, 0x00, 0x10, 0x00, // IID1398 - 0xd5, 0x11, 0x81, 0xa3, 0x0f, 0x46, 0xea, 0x88, 0x00, 0x00, 0x10, 0x00, // IID1399 - 0xd5, 0x33, 0x81, 0xa4, 0x6c, 0x67, 0xb9, 0xf7, 0xb6, 0x00, 0x00, 0x10, 0x00, // IID1400 - 0xd5, 0x33, 0x81, 0xa4, 0xb5, 0xae, 0xb0, 0x18, 0xa7, 0x00, 0x00, 0x10, 0x00, // IID1401 - 0xd5, 0x33, 0x81, 0xa4, 0x7e, 0x49, 0xee, 0x9a, 0xf4, 0x00, 0x00, 0x10, 0x00, // IID1402 - 0xd5, 0x11, 0x81, 0xa4, 0x8f, 0x57, 0x45, 0x37, 0x89, 0x00, 0x00, 0x10, 0x00, // IID1403 - 0x81, 0xa4, 0xd1, 0xa5, 0x20, 0x2c, 0xaa, 0x00, 0x00, 0x00, 0x01, // IID1404 - 0x81, 0xa4, 0x9a, 0xa8, 0xcb, 0xcc, 0x94, 0x00, 0x00, 0x00, 0x01, // IID1405 - 0x42, 0x81, 0xa4, 0xc3, 0x10, 0xf0, 0x05, 0x4b, 0x00, 0x00, 0x00, 0x01, // IID1406 - 0x41, 0x81, 0xa0, 0x96, 0x25, 0xd4, 0xba, 0x00, 0x00, 0x00, 0x01, // IID1407 - 0x41, 0x81, 0xa1, 0x9a, 0xa6, 0xb2, 0xe5, 0x00, 0x00, 0x00, 0x01, // IID1408 - 0x43, 0x81, 0xa4, 0x5a, 0x81, 0xd3, 0x66, 0xab, 0x00, 0x00, 0x00, 0x01, // IID1409 - 0x43, 0x81, 0xa4, 0xe3, 0xab, 0x9b, 0x90, 0x79, 0x00, 0x00, 0x00, 0x01, // IID1410 - 0x41, 0x81, 0xa4, 0x24, 0x14, 0xe7, 0x62, 0xb4, 0x00, 0x00, 0x00, 0x01, // IID1411 - 0x43, 0x81, 0xa4, 0x75, 0x37, 0x71, 0xb3, 0xaf, 0x00, 0x00, 0x00, 0x01, // IID1412 - 0x43, 0x81, 0xa4, 0xfe, 0x16, 0x4f, 0x58, 0x46, 0x00, 0x00, 0x00, 0x01, // IID1413 - 0xd5, 0x21, 0x81, 0xa4, 0x07, 0x68, 0x32, 0x29, 0x83, 0x00, 0x00, 0x00, 0x01, // IID1414 - 0xd5, 0x30, 0x81, 0xa4, 0x08, 0x17, 0xde, 0x53, 0xc5, 0x00, 0x00, 0x00, 0x01, // IID1415 - 0xd5, 0x30, 0x81, 0xa4, 0x91, 0x60, 0xe1, 0x01, 0xba, 0x00, 0x00, 0x00, 0x01, // IID1416 - 0xd5, 0x30, 0x81, 0xa4, 0xda, 0xff, 0xd1, 0xf3, 0x29, 0x00, 0x00, 0x00, 0x01, // IID1417 - 0xd5, 0x30, 0x81, 0xa4, 0x63, 0x10, 0x9f, 0xe2, 0xcb, 0x00, 0x00, 0x00, 0x01, // IID1418 - 0xd5, 0x30, 0x81, 0xa4, 0xec, 0xa4, 0x53, 0x5c, 0x28, 0x00, 0x00, 0x00, 0x01, // IID1419 - 0xd5, 0x10, 0x81, 0xa5, 0x50, 0x5a, 0xbc, 0xb8, 0x00, 0x00, 0x00, 0x01, // IID1420 - 0xd5, 0x30, 0x81, 0xa4, 0xfe, 0x7e, 0x5b, 0x5f, 0x5f, 0x00, 0x00, 0x00, 0x01, // IID1421 - 0xd5, 0x32, 0x81, 0xa4, 0xc7, 0x14, 0xfc, 0x38, 0x15, 0x00, 0x00, 0x00, 0x01, // IID1422 - 0xd5, 0x33, 0x81, 0xa4, 0x48, 0xc4, 0x93, 0x9f, 0x21, 0x00, 0x00, 0x00, 0x01, // IID1423 - 0xd5, 0x11, 0x81, 0xa1, 0xf1, 0x13, 0x60, 0x2c, 0x00, 0x00, 0x00, 0x01, // IID1424 - 0xd5, 0x33, 0x81, 0xa4, 0x5a, 0x1a, 0x7e, 0xa2, 0x7e, 0x00, 0x00, 0x00, 0x01, // IID1425 - 0xd5, 0x11, 0x81, 0xa3, 0x60, 0x16, 0x83, 0xf5, 0x00, 0x00, 0x00, 0x01, // IID1426 - 0xd5, 0x33, 0x81, 0xa4, 0x2c, 0x76, 0xdc, 0x77, 0x18, 0x00, 0x00, 0x00, 0x01, // IID1427 - 0xd5, 0x11, 0x81, 0xa5, 0x52, 0xc1, 0xaa, 0x7e, 0x00, 0x00, 0x00, 0x01, // IID1428 - 0xd5, 0x33, 0x81, 0xa4, 0x7e, 0x7c, 0x38, 0xa7, 0x5b, 0x00, 0x00, 0x00, 0x01, // IID1429 - 0xd5, 0x11, 0x81, 0xa4, 0xcf, 0xb5, 0x3a, 0x76, 0xbc, 0x00, 0x00, 0x00, 0x01, // IID1430 - 0x81, 0xa4, 0x91, 0xed, 0x7d, 0xde, 0x49, 0x00, 0x00, 0x00, 0x10, // IID1431 - 0x81, 0xa4, 0x5a, 0x56, 0x90, 0x23, 0xd6, 0x00, 0x00, 0x00, 0x10, // IID1432 - 0x42, 0x81, 0xa4, 0x83, 0xa3, 0x29, 0x09, 0xaa, 0x00, 0x00, 0x00, 0x10, // IID1433 - 0x43, 0x81, 0xa4, 0x48, 0xb1, 0x0d, 0xe3, 0x8a, 0x00, 0x00, 0x00, 0x10, // IID1434 - 0x43, 0x81, 0xa4, 0xd1, 0xcf, 0x8b, 0x9e, 0xe7, 0x00, 0x00, 0x00, 0x10, // IID1435 - 0x43, 0x81, 0xa4, 0x5a, 0x2b, 0x38, 0x4e, 0x9e, 0x00, 0x00, 0x00, 0x10, // IID1436 - 0x43, 0x81, 0xa4, 0xa3, 0x49, 0x8d, 0x73, 0x65, 0x00, 0x00, 0x00, 0x10, // IID1437 - 0x43, 0x81, 0xa4, 0x6c, 0xf0, 0x4c, 0x0e, 0xbd, 0x00, 0x00, 0x00, 0x10, // IID1438 - 0x43, 0x81, 0xa4, 0xf5, 0xa1, 0x0a, 0x14, 0x9f, 0x00, 0x00, 0x00, 0x10, // IID1439 - 0x41, 0x81, 0xa6, 0x34, 0x2f, 0xc3, 0x5f, 0x00, 0x00, 0x00, 0x10, // IID1440 - 0xd5, 0x21, 0x81, 0xa4, 0x87, 0xff, 0x58, 0xa1, 0x25, 0x00, 0x00, 0x00, 0x10, // IID1441 - 0xd5, 0x30, 0x81, 0xa4, 0xc8, 0x91, 0xa6, 0xcd, 0xb3, 0x00, 0x00, 0x00, 0x10, // IID1442 - 0xd5, 0x30, 0x81, 0xa4, 0xd1, 0x83, 0xcf, 0x1a, 0xbc, 0x00, 0x00, 0x00, 0x10, // IID1443 - 0xd5, 0x30, 0x81, 0xa4, 0x9a, 0x95, 0xa7, 0xce, 0x46, 0x00, 0x00, 0x00, 0x10, // IID1444 - 0xd5, 0x30, 0x81, 0xa4, 0x23, 0xb3, 0xe0, 0xe1, 0x1b, 0x00, 0x00, 0x00, 0x10, // IID1445 - 0xd5, 0x30, 0x81, 0xa4, 0xec, 0x64, 0x67, 0xbf, 0x8b, 0x00, 0x00, 0x00, 0x10, // IID1446 - 0xd5, 0x30, 0x81, 0xa4, 0x35, 0x90, 0x52, 0xa0, 0x33, 0x00, 0x00, 0x00, 0x10, // IID1447 - 0xd5, 0x30, 0x81, 0xa4, 0xbe, 0xba, 0x36, 0x9b, 0xb8, 0x00, 0x00, 0x00, 0x10, // IID1448 - 0xd5, 0x10, 0x81, 0xa7, 0x67, 0xc9, 0xa3, 0x6a, 0x00, 0x00, 0x00, 0x10, // IID1449 - 0xd5, 0x33, 0x81, 0xa4, 0x88, 0xa0, 0x33, 0xfe, 0x86, 0x00, 0x00, 0x00, 0x10, // IID1450 - 0xd5, 0x33, 0x81, 0xa4, 0x91, 0x87, 0x63, 0xce, 0x6d, 0x00, 0x00, 0x00, 0x10, // IID1451 - 0xd5, 0x11, 0x81, 0xa2, 0x2d, 0x0c, 0x51, 0x8d, 0x00, 0x00, 0x00, 0x10, // IID1452 - 0xd5, 0x33, 0x81, 0xa4, 0x23, 0x0a, 0x0c, 0xb1, 0x4a, 0x00, 0x00, 0x00, 0x10, // IID1453 - 0xd5, 0x33, 0x81, 0xa4, 0xec, 0xe4, 0x9f, 0xd2, 0xd7, 0x00, 0x00, 0x00, 0x10, // IID1454 - 0xd5, 0x33, 0x81, 0xa4, 0x75, 0xde, 0x6d, 0xcd, 0x39, 0x00, 0x00, 0x00, 0x10, // IID1455 - 0xd5, 0x33, 0x81, 0xa4, 0xfe, 0x33, 0x0c, 0x2f, 0x80, 0x00, 0x00, 0x00, 0x10, // IID1456 - 0xd5, 0x11, 0x81, 0xa4, 0x8f, 0xa3, 0x87, 0xf8, 0x98, 0x00, 0x00, 0x00, 0x10, // IID1457 -#endif // _LP64 - 0x80, 0x84, 0x91, 0xe6, 0xcf, 0x35, 0xf3, 0x01, // IID1458 - 0x80, 0x84, 0xda, 0xb8, 0xc2, 0x9f, 0x10, 0x01, // IID1459 -#ifdef _LP64 - 0x42, 0x80, 0x84, 0x03, 0x3c, 0xc7, 0xfe, 0xa8, 0x01, // IID1460 - 0x43, 0x80, 0x84, 0x88, 0x22, 0x75, 0x8c, 0xd7, 0x01, // IID1461 - 0x43, 0x80, 0x84, 0x51, 0xa6, 0x36, 0x80, 0x57, 0x01, // IID1462 - 0x43, 0x80, 0x84, 0xda, 0x49, 0xd0, 0xdf, 0x91, 0x01, // IID1463 - 0x43, 0x80, 0x84, 0x63, 0x13, 0x61, 0x4c, 0xc0, 0x01, // IID1464 - 0x43, 0x80, 0x84, 0x6c, 0xe3, 0x33, 0x00, 0x61, 0x01, // IID1465 - 0x43, 0x80, 0x84, 0x75, 0x79, 0xdb, 0xb2, 0x1b, 0x01, // IID1466 - 0x41, 0x80, 0x86, 0xa5, 0x2c, 0x53, 0x6c, 0x01, // IID1467 - 0x41, 0x80, 0x87, 0x95, 0x0e, 0x2d, 0xd6, 0x01, // IID1468 - 0xd5, 0x30, 0x80, 0x84, 0x88, 0xf3, 0xe0, 0x63, 0x4e, 0x01, // IID1469 - 0xd5, 0x30, 0x80, 0x84, 0x51, 0xba, 0x7f, 0x52, 0xfd, 0x01, // IID1470 - 0xd5, 0x30, 0x80, 0x84, 0x5a, 0xf2, 0xda, 0x90, 0x44, 0x01, // IID1471 - 0xd5, 0x30, 0x80, 0x84, 0x63, 0x3d, 0xb8, 0xa4, 0x68, 0x01, // IID1472 - 0xd5, 0x30, 0x80, 0x84, 0x6c, 0x84, 0xa8, 0xa3, 0xb1, 0x01, // IID1473 - 0xd5, 0x30, 0x80, 0x84, 0xb5, 0x9c, 0x40, 0x2c, 0x27, 0x01, // IID1474 - 0xd5, 0x30, 0x80, 0x84, 0xbe, 0x62, 0x4b, 0x25, 0xc9, 0x01, // IID1475 - 0xd5, 0x32, 0x80, 0x84, 0xc7, 0xad, 0xea, 0xe9, 0x36, 0x01, // IID1476 - 0xd5, 0x33, 0x80, 0x84, 0x48, 0x0c, 0x02, 0xb0, 0x38, 0x01, // IID1477 - 0xd5, 0x11, 0x80, 0x81, 0x2b, 0x22, 0x76, 0x3e, 0x01, // IID1478 - 0xd5, 0x11, 0x80, 0x82, 0xfd, 0x22, 0x1c, 0x23, 0x01, // IID1479 - 0xd5, 0x33, 0x80, 0x84, 0xe3, 0xea, 0x24, 0xa0, 0xce, 0x01, // IID1480 - 0xd5, 0x33, 0x80, 0x84, 0xac, 0x4a, 0xc2, 0x5d, 0x3e, 0x01, // IID1481 - 0xd5, 0x33, 0x80, 0x84, 0xb5, 0x8c, 0x8e, 0x3f, 0x86, 0x01, // IID1482 - 0xd5, 0x11, 0x80, 0x86, 0x61, 0xa1, 0x2f, 0xa6, 0x01, // IID1483 - 0xd5, 0x11, 0x80, 0x84, 0x0f, 0x5a, 0x86, 0x5e, 0xcf, 0x01, // IID1484 - 0x80, 0x84, 0x51, 0x31, 0x95, 0xdb, 0xa4, 0x04, // IID1485 - 0x80, 0x84, 0x1a, 0x0f, 0x6d, 0x1d, 0xcd, 0x04, // IID1486 - 0x42, 0x80, 0x84, 0x03, 0xe0, 0x05, 0x7b, 0x9b, 0x04, // IID1487 - 0x41, 0x80, 0x80, 0x8d, 0x23, 0x31, 0x8e, 0x04, // IID1488 - 0x43, 0x80, 0x84, 0xd1, 0xe9, 0x0c, 0x1d, 0x7c, 0x04, // IID1489 - 0x43, 0x80, 0x84, 0xda, 0x99, 0x2d, 0x53, 0x02, 0x04, // IID1490 - 0x41, 0x80, 0x83, 0xcb, 0xcd, 0x67, 0x3e, 0x04, // IID1491 - 0x43, 0x80, 0x84, 0xac, 0xd9, 0xf2, 0x58, 0xbe, 0x04, // IID1492 - 0x41, 0x80, 0x85, 0xd9, 0xf3, 0x78, 0x66, 0x04, // IID1493 - 0x43, 0x80, 0x84, 0x3e, 0xed, 0x19, 0x72, 0x2c, 0x04, // IID1494 - 0x41, 0x80, 0x87, 0xc0, 0x98, 0xe2, 0x44, 0x04, // IID1495 - 0xd5, 0x30, 0x80, 0x84, 0x08, 0x1b, 0x8f, 0x38, 0x6e, 0x04, // IID1496 - 0xd5, 0x30, 0x80, 0x84, 0x91, 0x05, 0x46, 0x15, 0xf9, 0x04, // IID1497 - 0xd5, 0x30, 0x80, 0x84, 0x5a, 0xa6, 0xc1, 0xea, 0x50, 0x04, // IID1498 - 0xd5, 0x30, 0x80, 0x84, 0xe3, 0x43, 0xe4, 0xbc, 0xc1, 0x04, // IID1499 - 0xd5, 0x30, 0x80, 0x84, 0xac, 0x1f, 0xc8, 0xd1, 0xd9, 0x04, // IID1500 - 0xd5, 0x10, 0x80, 0x85, 0xa0, 0x57, 0xd7, 0x71, 0x04, // IID1501 - 0xd5, 0x30, 0x80, 0x84, 0x7e, 0x1d, 0xaa, 0x96, 0x26, 0x04, // IID1502 - 0xd5, 0x32, 0x80, 0x84, 0x87, 0xe4, 0xc4, 0x2f, 0xf7, 0x04, // IID1503 - 0xd5, 0x33, 0x80, 0x84, 0x88, 0xef, 0xd2, 0x7e, 0x33, 0x04, // IID1504 - 0xd5, 0x33, 0x80, 0x84, 0xd1, 0x69, 0x5c, 0xb3, 0xfc, 0x04, // IID1505 - 0xd5, 0x33, 0x80, 0x84, 0x1a, 0x33, 0x02, 0x7d, 0xad, 0x04, // IID1506 - 0xd5, 0x33, 0x80, 0x84, 0xa3, 0x03, 0xfe, 0xd3, 0xfc, 0x04, // IID1507 - 0xd5, 0x33, 0x80, 0x84, 0xec, 0x15, 0x9f, 0x85, 0x75, 0x04, // IID1508 - 0xd5, 0x33, 0x80, 0x84, 0xb5, 0x1b, 0x3b, 0x0f, 0x4e, 0x04, // IID1509 - 0xd5, 0x33, 0x80, 0x84, 0xbe, 0x61, 0x6a, 0x33, 0xd9, 0x04, // IID1510 - 0xd5, 0x11, 0x80, 0x84, 0x8f, 0x6f, 0x48, 0x5a, 0x90, 0x04, // IID1511 - 0x80, 0x81, 0x76, 0x27, 0x7d, 0x0d, 0x10, // IID1512 - 0x80, 0x84, 0x9a, 0xfe, 0x29, 0x05, 0xea, 0x10, // IID1513 - 0x42, 0x80, 0x84, 0xc3, 0x54, 0x9a, 0x64, 0x0c, 0x10, // IID1514 - 0x43, 0x80, 0x84, 0x88, 0x3b, 0x4b, 0x05, 0x48, 0x10, // IID1515 - 0x43, 0x80, 0x84, 0xd1, 0xd4, 0xb7, 0xbb, 0xe0, 0x10, // IID1516 - 0x41, 0x80, 0x82, 0xc7, 0xd4, 0x67, 0x26, 0x10, // IID1517 - 0x41, 0x80, 0x83, 0x1e, 0x33, 0xdf, 0x66, 0x10, // IID1518 - 0x43, 0x80, 0x84, 0xec, 0x2f, 0xf3, 0x01, 0xb0, 0x10, // IID1519 - 0x43, 0x80, 0x84, 0x35, 0x64, 0x63, 0xb1, 0xb1, 0x10, // IID1520 - 0x43, 0x80, 0x84, 0xfe, 0x5f, 0xc3, 0x39, 0xc7, 0x10, // IID1521 - 0x41, 0x80, 0x87, 0x4c, 0x60, 0x9f, 0x86, 0x10, // IID1522 - 0xd5, 0x30, 0x80, 0x84, 0x08, 0x7c, 0xd1, 0x33, 0x61, 0x10, // IID1523 - 0xd5, 0x30, 0x80, 0x84, 0xd1, 0x39, 0x8a, 0x91, 0xad, 0x10, // IID1524 - 0xd5, 0x30, 0x80, 0x84, 0x1a, 0x3b, 0x8f, 0xc2, 0xea, 0x10, // IID1525 - 0xd5, 0x30, 0x80, 0x84, 0x23, 0x2f, 0x39, 0x09, 0xe5, 0x10, // IID1526 - 0xd5, 0x30, 0x80, 0x84, 0x6c, 0x3f, 0x39, 0xbd, 0xf2, 0x10, // IID1527 - 0xd5, 0x10, 0x80, 0x85, 0xd0, 0x2b, 0x33, 0xd3, 0x10, // IID1528 - 0xd5, 0x30, 0x80, 0x84, 0x3e, 0x48, 0xbd, 0x11, 0x1b, 0x10, // IID1529 - 0xd5, 0x10, 0x80, 0x87, 0xea, 0x68, 0x60, 0xba, 0x10, // IID1530 - 0xd5, 0x33, 0x80, 0x84, 0x08, 0x5f, 0x5f, 0x9d, 0x60, 0x10, // IID1531 - 0xd5, 0x33, 0x80, 0x84, 0xd1, 0x17, 0x1a, 0x6d, 0xd0, 0x10, // IID1532 - 0xd5, 0x33, 0x80, 0x84, 0xda, 0x61, 0xf8, 0x54, 0xc2, 0x10, // IID1533 - 0xd5, 0x33, 0x80, 0x84, 0xa3, 0xc3, 0x96, 0x53, 0xab, 0x10, // IID1534 - 0xd5, 0x11, 0x80, 0x84, 0x24, 0x22, 0xe9, 0xd3, 0xab, 0x10, // IID1535 - 0xd5, 0x33, 0x80, 0x84, 0x35, 0x0d, 0xd5, 0x96, 0xd5, 0x10, // IID1536 - 0xd5, 0x33, 0x80, 0x84, 0xfe, 0x64, 0x1b, 0x9f, 0xde, 0x10, // IID1537 - 0xd5, 0x11, 0x80, 0x84, 0x0f, 0xc7, 0xc9, 0xa8, 0x4b, 0x10, // IID1538 - 0x80, 0x84, 0xd1, 0xb7, 0x7f, 0x19, 0x8a, 0x40, // IID1539 - 0x80, 0x84, 0x9a, 0x92, 0xa2, 0x83, 0xad, 0x40, // IID1540 - 0x42, 0x80, 0x84, 0x43, 0x27, 0x19, 0x40, 0x0d, 0x40, // IID1541 - 0x43, 0x80, 0x84, 0x88, 0xbb, 0x84, 0xb7, 0xd3, 0x40, // IID1542 - 0x43, 0x80, 0x84, 0x51, 0xde, 0x85, 0x96, 0xa2, 0x40, // IID1543 - 0x41, 0x80, 0x82, 0x21, 0x88, 0xf7, 0x9a, 0x40, // IID1544 - 0x41, 0x80, 0x83, 0x8a, 0xdf, 0x05, 0xb4, 0x40, // IID1545 - 0x43, 0x80, 0x84, 0xac, 0xf1, 0xdf, 0x45, 0x1a, 0x40, // IID1546 - 0x43, 0x80, 0x84, 0xf5, 0xe9, 0xdc, 0x95, 0xfb, 0x40, // IID1547 - 0x43, 0x80, 0x84, 0x3e, 0x32, 0xe8, 0x11, 0x2d, 0x40, // IID1548 - 0xd5, 0x21, 0x80, 0x84, 0x47, 0xf6, 0x7b, 0xe0, 0x22, 0x40, // IID1549 - 0xd5, 0x30, 0x80, 0x84, 0x48, 0x4e, 0xd7, 0x3f, 0xd5, 0x40, // IID1550 - 0xd5, 0x30, 0x80, 0x84, 0x91, 0xaf, 0x70, 0xcf, 0x56, 0x40, // IID1551 - 0xd5, 0x10, 0x80, 0x82, 0x2f, 0x56, 0x3e, 0x20, 0x40, // IID1552 - 0xd5, 0x10, 0x80, 0x83, 0x4b, 0x50, 0x51, 0xe3, 0x40, // IID1553 - 0xd5, 0x30, 0x80, 0x84, 0x6c, 0x1d, 0x28, 0x4e, 0x98, 0x40, // IID1554 - 0xd5, 0x30, 0x80, 0x84, 0xf5, 0xae, 0x56, 0xc3, 0x6e, 0x40, // IID1555 - 0xd5, 0x30, 0x80, 0x84, 0x7e, 0xbe, 0xc6, 0x8d, 0xde, 0x40, // IID1556 - 0xd5, 0x32, 0x80, 0x84, 0x87, 0x8d, 0x1e, 0x4b, 0x4b, 0x40, // IID1557 - 0xd5, 0x11, 0x80, 0x80, 0x67, 0xa2, 0xe7, 0x22, 0x40, // IID1558 - 0xd5, 0x33, 0x80, 0x84, 0x11, 0xa7, 0xde, 0x0e, 0xd4, 0x40, // IID1559 - 0xd5, 0x33, 0x80, 0x84, 0x9a, 0x37, 0xa1, 0xb7, 0x4d, 0x40, // IID1560 - 0xd5, 0x33, 0x80, 0x84, 0x23, 0x0c, 0xf1, 0x55, 0x1c, 0x40, // IID1561 - 0xd5, 0x33, 0x80, 0x84, 0x2c, 0x0a, 0xe7, 0x17, 0x8b, 0x40, // IID1562 - 0xd5, 0x33, 0x80, 0x84, 0xf5, 0x97, 0x48, 0x21, 0xa1, 0x40, // IID1563 - 0xd5, 0x11, 0x80, 0x86, 0xe6, 0xea, 0xb5, 0x4b, 0x40, // IID1564 - 0xd5, 0x11, 0x80, 0x84, 0x0f, 0x51, 0xff, 0xc1, 0x14, 0x40, // IID1565 -#endif // _LP64 - 0x66, 0x81, 0x84, 0x51, 0x49, 0x1d, 0x06, 0x17, 0x00, 0x01, // IID1566 - 0x66, 0x81, 0x84, 0x1a, 0x62, 0xb6, 0x7d, 0x76, 0x00, 0x01, // IID1567 -#ifdef _LP64 - 0x66, 0x42, 0x81, 0x84, 0x03, 0x8f, 0x99, 0xa8, 0x8b, 0x00, 0x01, // IID1568 - 0x66, 0x41, 0x81, 0x80, 0x6d, 0xbd, 0x67, 0x77, 0x00, 0x01, // IID1569 - 0x66, 0x41, 0x81, 0x81, 0x97, 0x39, 0xc0, 0x5d, 0x00, 0x01, // IID1570 - 0x66, 0x43, 0x81, 0x84, 0x5a, 0x01, 0xa7, 0xc5, 0x07, 0x00, 0x01, // IID1571 - 0x66, 0x43, 0x81, 0x84, 0x23, 0x36, 0x76, 0x1d, 0x91, 0x00, 0x01, // IID1572 - 0x66, 0x43, 0x81, 0x84, 0x6c, 0x23, 0x2c, 0x66, 0x5d, 0x00, 0x01, // IID1573 - 0x66, 0x43, 0x81, 0x84, 0x75, 0xa5, 0x23, 0x7a, 0xa2, 0x00, 0x01, // IID1574 - 0x66, 0x43, 0x81, 0x84, 0xbe, 0xe3, 0x3b, 0x4d, 0xe6, 0x00, 0x01, // IID1575 - 0x66, 0xd5, 0x21, 0x81, 0x84, 0xc7, 0xf7, 0x49, 0x9c, 0x6e, 0x00, 0x01, // IID1576 - 0x66, 0xd5, 0x30, 0x81, 0x84, 0x08, 0xc6, 0x49, 0x6b, 0x56, 0x00, 0x01, // IID1577 - 0x66, 0xd5, 0x30, 0x81, 0x84, 0x11, 0x47, 0x30, 0xfe, 0xdb, 0x00, 0x01, // IID1578 - 0x66, 0xd5, 0x30, 0x81, 0x84, 0x1a, 0xd0, 0x2b, 0x8f, 0x1f, 0x00, 0x01, // IID1579 - 0x66, 0xd5, 0x10, 0x81, 0x83, 0x78, 0x6f, 0x2d, 0x56, 0x00, 0x01, // IID1580 - 0x66, 0xd5, 0x30, 0x81, 0x84, 0xac, 0xd8, 0x2d, 0xec, 0x4c, 0x00, 0x01, // IID1581 - 0x66, 0xd5, 0x30, 0x81, 0x84, 0xb5, 0x4d, 0x4a, 0x80, 0x38, 0x00, 0x01, // IID1582 - 0x66, 0xd5, 0x30, 0x81, 0x84, 0xfe, 0x6a, 0x10, 0x85, 0x98, 0x00, 0x01, // IID1583 - 0x66, 0xd5, 0x32, 0x81, 0x84, 0x07, 0x86, 0xbb, 0x96, 0x2b, 0x00, 0x01, // IID1584 - 0x66, 0xd5, 0x33, 0x81, 0x84, 0x88, 0x42, 0x51, 0x33, 0x71, 0x00, 0x01, // IID1585 - 0x66, 0xd5, 0x33, 0x81, 0x84, 0x51, 0x53, 0x2a, 0x32, 0x4f, 0x00, 0x01, // IID1586 - 0x66, 0xd5, 0x33, 0x81, 0x84, 0x9a, 0x55, 0xd3, 0x22, 0x36, 0x00, 0x01, // IID1587 - 0x66, 0xd5, 0x11, 0x81, 0x83, 0xe7, 0x73, 0x37, 0x5d, 0x00, 0x01, // IID1588 - 0x66, 0xd5, 0x33, 0x81, 0x84, 0x6c, 0x64, 0x29, 0x5a, 0xee, 0x00, 0x01, // IID1589 - 0x66, 0xd5, 0x33, 0x81, 0x84, 0x75, 0x7c, 0x02, 0xfc, 0x39, 0x00, 0x01, // IID1590 - 0x66, 0xd5, 0x33, 0x81, 0x84, 0xbe, 0x81, 0xdb, 0x7a, 0xd0, 0x00, 0x01, // IID1591 - 0x66, 0xd5, 0x11, 0x81, 0x84, 0x4f, 0xb1, 0x8f, 0xf9, 0x1e, 0x00, 0x01, // IID1592 - 0x66, 0x81, 0x84, 0x91, 0x89, 0xa8, 0x2c, 0xb2, 0x00, 0x04, // IID1593 - 0x66, 0x81, 0x84, 0x9a, 0xa9, 0x04, 0xba, 0x3b, 0x00, 0x04, // IID1594 - 0x66, 0x42, 0x81, 0x84, 0x03, 0xad, 0x0e, 0xa0, 0xd5, 0x00, 0x04, // IID1595 - 0x66, 0x43, 0x81, 0x84, 0xc8, 0xae, 0x8c, 0xa8, 0xb0, 0x00, 0x04, // IID1596 - 0x66, 0x43, 0x81, 0x84, 0x91, 0x3e, 0x33, 0x85, 0xe6, 0x00, 0x04, // IID1597 - 0x66, 0x43, 0x81, 0x84, 0x1a, 0x05, 0x31, 0xe7, 0x10, 0x00, 0x04, // IID1598 - 0x66, 0x43, 0x81, 0x84, 0xa3, 0x97, 0x2c, 0xae, 0x13, 0x00, 0x04, // IID1599 - 0x66, 0x43, 0x81, 0x84, 0xec, 0x84, 0x4f, 0x27, 0x95, 0x00, 0x04, // IID1600 - 0x66, 0x43, 0x81, 0x84, 0x75, 0xe2, 0xa3, 0xc8, 0xff, 0x00, 0x04, // IID1601 - 0x66, 0x43, 0x81, 0x84, 0xbe, 0x51, 0x5c, 0x59, 0x68, 0x00, 0x04, // IID1602 - 0x66, 0xd5, 0x21, 0x81, 0x84, 0x47, 0x7f, 0xe9, 0x45, 0xec, 0x00, 0x04, // IID1603 - 0x66, 0xd5, 0x30, 0x81, 0x84, 0x08, 0x09, 0x17, 0x31, 0x81, 0x00, 0x04, // IID1604 - 0x66, 0xd5, 0x10, 0x81, 0x81, 0x0d, 0x30, 0x9a, 0x4c, 0x00, 0x04, // IID1605 - 0x66, 0xd5, 0x10, 0x81, 0x82, 0xe2, 0x9f, 0x39, 0xd4, 0x00, 0x04, // IID1606 - 0x66, 0xd5, 0x30, 0x81, 0x84, 0xa3, 0xad, 0xa0, 0xbc, 0x87, 0x00, 0x04, // IID1607 - 0x66, 0xd5, 0x10, 0x81, 0x84, 0x24, 0xef, 0x3c, 0x68, 0xf4, 0x00, 0x04, // IID1608 - 0x66, 0xd5, 0x30, 0x81, 0x84, 0x75, 0x9c, 0x58, 0xff, 0xd3, 0x00, 0x04, // IID1609 - 0x66, 0xd5, 0x10, 0x81, 0x86, 0xd1, 0x39, 0x56, 0x47, 0x00, 0x04, // IID1610 - 0x66, 0xd5, 0x32, 0x81, 0x84, 0xc7, 0x3f, 0xb6, 0x42, 0xd7, 0x00, 0x04, // IID1611 - 0x66, 0xd5, 0x33, 0x81, 0x84, 0x08, 0x4a, 0x1c, 0x4c, 0x7f, 0x00, 0x04, // IID1612 - 0x66, 0xd5, 0x33, 0x81, 0x84, 0x51, 0xb9, 0x22, 0xb3, 0xbd, 0x00, 0x04, // IID1613 - 0x66, 0xd5, 0x33, 0x81, 0x84, 0x1a, 0xa2, 0x1c, 0x1a, 0x60, 0x00, 0x04, // IID1614 - 0x66, 0xd5, 0x33, 0x81, 0x84, 0x63, 0x32, 0xf2, 0xa3, 0x69, 0x00, 0x04, // IID1615 - 0x66, 0xd5, 0x33, 0x81, 0x84, 0x2c, 0x8f, 0x24, 0x70, 0x4d, 0x00, 0x04, // IID1616 - 0x66, 0xd5, 0x33, 0x81, 0x84, 0x35, 0xec, 0xc8, 0xa7, 0x30, 0x00, 0x04, // IID1617 - 0x66, 0xd5, 0x11, 0x81, 0x86, 0x59, 0x30, 0xf8, 0xd8, 0x00, 0x04, // IID1618 - 0x66, 0xd5, 0x11, 0x81, 0x84, 0x4f, 0xa1, 0x18, 0x0b, 0xd4, 0x00, 0x04, // IID1619 - 0x66, 0x81, 0x84, 0x91, 0xf5, 0x66, 0x45, 0x0b, 0x00, 0x10, // IID1620 - 0x66, 0x81, 0x82, 0x2d, 0xe4, 0x30, 0x9d, 0x00, 0x10, // IID1621 - 0x66, 0x42, 0x81, 0x84, 0xc3, 0xec, 0x39, 0x50, 0x48, 0x00, 0x10, // IID1622 - 0x66, 0x41, 0x81, 0x80, 0x77, 0x0a, 0x9e, 0xaa, 0x00, 0x10, // IID1623 - 0x66, 0x43, 0x81, 0x84, 0x51, 0x2f, 0xbb, 0xbe, 0x26, 0x00, 0x10, // IID1624 - 0x66, 0x43, 0x81, 0x84, 0x5a, 0x01, 0x2f, 0xad, 0xe1, 0x00, 0x10, // IID1625 - 0x66, 0x43, 0x81, 0x84, 0x23, 0xc1, 0x13, 0x7f, 0xf5, 0x00, 0x10, // IID1626 - 0x66, 0x43, 0x81, 0x84, 0xec, 0x18, 0x75, 0x2e, 0xde, 0x00, 0x10, // IID1627 - 0x66, 0x43, 0x81, 0x84, 0xf5, 0x3c, 0xe4, 0x40, 0xe1, 0x00, 0x10, // IID1628 - 0x66, 0x41, 0x81, 0x86, 0xe1, 0x61, 0x7c, 0xbd, 0x00, 0x10, // IID1629 - 0x66, 0xd5, 0x21, 0x81, 0x84, 0x87, 0xbe, 0x4a, 0xe3, 0x1e, 0x00, 0x10, // IID1630 - 0x66, 0xd5, 0x30, 0x81, 0x84, 0x88, 0xeb, 0xd2, 0x9a, 0x19, 0x00, 0x10, // IID1631 - 0x66, 0xd5, 0x30, 0x81, 0x84, 0xd1, 0xad, 0xd7, 0xb3, 0x8d, 0x00, 0x10, // IID1632 - 0x66, 0xd5, 0x30, 0x81, 0x84, 0x5a, 0x7c, 0x43, 0xb2, 0x1e, 0x00, 0x10, // IID1633 - 0x66, 0xd5, 0x30, 0x81, 0x84, 0x23, 0xde, 0xe7, 0x5e, 0x03, 0x00, 0x10, // IID1634 - 0x66, 0xd5, 0x30, 0x81, 0x84, 0x2c, 0x78, 0x7c, 0xa9, 0xeb, 0x00, 0x10, // IID1635 - 0x66, 0xd5, 0x10, 0x81, 0x85, 0xb3, 0xb4, 0xed, 0xa0, 0x00, 0x10, // IID1636 - 0x66, 0xd5, 0x30, 0x81, 0x84, 0xfe, 0x83, 0xbf, 0xe2, 0x43, 0x00, 0x10, // IID1637 - 0x66, 0xd5, 0x32, 0x81, 0x84, 0x47, 0x11, 0x9b, 0xaf, 0x70, 0x00, 0x10, // IID1638 - 0x66, 0xd5, 0x33, 0x81, 0x84, 0x08, 0x95, 0x77, 0x1c, 0xc7, 0x00, 0x10, // IID1639 - 0x66, 0xd5, 0x33, 0x81, 0x84, 0x51, 0xe1, 0xbf, 0x4c, 0xe4, 0x00, 0x10, // IID1640 - 0x66, 0xd5, 0x33, 0x81, 0x84, 0xda, 0x15, 0xa1, 0x34, 0xb4, 0x00, 0x10, // IID1641 - 0x66, 0xd5, 0x11, 0x81, 0x83, 0xc3, 0x76, 0x35, 0x7a, 0x00, 0x10, // IID1642 - 0x66, 0xd5, 0x33, 0x81, 0x84, 0xac, 0xd5, 0x91, 0x2e, 0x38, 0x00, 0x10, // IID1643 - 0x66, 0xd5, 0x33, 0x81, 0x84, 0xb5, 0x8c, 0xfa, 0xee, 0x3f, 0x00, 0x10, // IID1644 - 0x66, 0xd5, 0x11, 0x81, 0x86, 0xee, 0xa5, 0x30, 0xd4, 0x00, 0x10, // IID1645 - 0x66, 0xd5, 0x11, 0x81, 0x87, 0x6e, 0xbd, 0x7a, 0x9a, 0x00, 0x10, // IID1646 - 0x66, 0x81, 0x84, 0x11, 0xf9, 0xb1, 0xcf, 0x65, 0x00, 0x40, // IID1647 - 0x66, 0x81, 0x84, 0x5a, 0x33, 0x1c, 0x7c, 0x0c, 0x00, 0x40, // IID1648 - 0x66, 0x81, 0x83, 0x85, 0x17, 0x2c, 0xce, 0x00, 0x40, // IID1649 - 0x66, 0x43, 0x81, 0x84, 0x08, 0x06, 0xea, 0xb6, 0xc0, 0x00, 0x40, // IID1650 - 0x66, 0x43, 0x81, 0x84, 0x51, 0xf8, 0x5a, 0x49, 0x46, 0x00, 0x40, // IID1651 - 0x66, 0x41, 0x81, 0x82, 0x06, 0x20, 0x5a, 0xa6, 0x00, 0x40, // IID1652 - 0x66, 0x43, 0x81, 0x84, 0x23, 0x14, 0x8e, 0xcf, 0xbf, 0x00, 0x40, // IID1653 - 0x66, 0x43, 0x81, 0x84, 0xec, 0x62, 0x35, 0xd6, 0x66, 0x00, 0x40, // IID1654 - 0x66, 0x41, 0x81, 0x85, 0xd0, 0xb3, 0x0d, 0xa0, 0x00, 0x40, // IID1655 - 0x66, 0x43, 0x81, 0x84, 0xfe, 0x0c, 0x83, 0xe9, 0xed, 0x00, 0x40, // IID1656 - 0x66, 0xd5, 0x21, 0x81, 0x84, 0x87, 0xf6, 0xd7, 0xa1, 0x6e, 0x00, 0x40, // IID1657 - 0x66, 0xd5, 0x10, 0x81, 0x80, 0xad, 0xca, 0x70, 0x17, 0x00, 0x40, // IID1658 - 0x66, 0xd5, 0x10, 0x81, 0x81, 0x53, 0x72, 0x86, 0xaa, 0x00, 0x40, // IID1659 - 0x66, 0xd5, 0x30, 0x81, 0x84, 0x5a, 0xee, 0xc0, 0x68, 0x24, 0x00, 0x40, // IID1660 - 0x66, 0xd5, 0x30, 0x81, 0x84, 0xe3, 0xf9, 0x97, 0x74, 0x64, 0x00, 0x40, // IID1661 - 0x66, 0xd5, 0x30, 0x81, 0x84, 0x2c, 0x3e, 0x10, 0x5c, 0x19, 0x00, 0x40, // IID1662 - 0x66, 0xd5, 0x30, 0x81, 0x84, 0x75, 0xf2, 0x14, 0x8b, 0xae, 0x00, 0x40, // IID1663 - 0x66, 0xd5, 0x30, 0x81, 0x84, 0x3e, 0x40, 0x1c, 0xab, 0x97, 0x00, 0x40, // IID1664 - 0x66, 0xd5, 0x32, 0x81, 0x84, 0x07, 0xbe, 0xe0, 0x4c, 0x40, 0x00, 0x40, // IID1665 - 0x66, 0xd5, 0x33, 0x81, 0x84, 0x48, 0xa8, 0xf5, 0xd6, 0x37, 0x00, 0x40, // IID1666 - 0x66, 0xd5, 0x33, 0x81, 0x84, 0x91, 0xf5, 0xa0, 0x82, 0x35, 0x00, 0x40, // IID1667 - 0x66, 0xd5, 0x33, 0x81, 0x84, 0x1a, 0x25, 0xed, 0x7a, 0xc6, 0x00, 0x40, // IID1668 - 0x66, 0xd5, 0x33, 0x81, 0x84, 0x23, 0x6e, 0x56, 0x0f, 0xa5, 0x00, 0x40, // IID1669 - 0x66, 0xd5, 0x33, 0x81, 0x84, 0xac, 0xb0, 0x31, 0x9f, 0xbd, 0x00, 0x40, // IID1670 - 0x66, 0xd5, 0x33, 0x81, 0x84, 0xf5, 0x2d, 0xbb, 0x9c, 0x62, 0x00, 0x40, // IID1671 - 0x66, 0xd5, 0x33, 0x81, 0x84, 0xfe, 0x63, 0x04, 0x24, 0x7a, 0x00, 0x40, // IID1672 - 0x66, 0xd5, 0x11, 0x81, 0x84, 0x0f, 0xab, 0x91, 0x6c, 0x57, 0x00, 0x40, // IID1673 -#endif // _LP64 - 0x83, 0x84, 0x11, 0x9c, 0x93, 0x74, 0x10, 0x01, // IID1674 - 0x83, 0x84, 0x9a, 0x38, 0x76, 0xd7, 0xa5, 0x01, // IID1675 -#ifdef _LP64 - 0x42, 0x83, 0x84, 0x83, 0xc6, 0x0e, 0x1d, 0x1d, 0x01, // IID1676 - 0x43, 0x83, 0x84, 0x08, 0xae, 0x7d, 0xce, 0xc4, 0x01, // IID1677 - 0x43, 0x83, 0x84, 0xd1, 0x1e, 0x8b, 0x94, 0x12, 0x01, // IID1678 - 0x43, 0x83, 0x84, 0xda, 0x01, 0xb4, 0xf1, 0x43, 0x01, // IID1679 - 0x41, 0x83, 0x83, 0x19, 0x40, 0xc8, 0x69, 0x01, // IID1680 - 0x43, 0x83, 0x84, 0x2c, 0x04, 0xa6, 0x55, 0xf9, 0x01, // IID1681 - 0x43, 0x83, 0x84, 0xb5, 0x41, 0x57, 0x0e, 0xda, 0x01, // IID1682 - 0x43, 0x83, 0x84, 0xfe, 0x8a, 0xc7, 0x8f, 0x5d, 0x01, // IID1683 - 0xd5, 0x21, 0x83, 0x84, 0x47, 0x25, 0x85, 0x13, 0x7e, 0x01, // IID1684 - 0xd5, 0x30, 0x83, 0x84, 0x88, 0xa8, 0xa1, 0xfa, 0xad, 0x01, // IID1685 - 0xd5, 0x30, 0x83, 0x84, 0xd1, 0xc1, 0xad, 0x06, 0xb9, 0x01, // IID1686 - 0xd5, 0x30, 0x83, 0x84, 0x5a, 0xf8, 0x52, 0xf9, 0x2a, 0x01, // IID1687 - 0xd5, 0x10, 0x83, 0x83, 0xe1, 0x7d, 0x10, 0xf3, 0x01, // IID1688 - 0xd5, 0x30, 0x83, 0x84, 0x6c, 0x99, 0x4e, 0x01, 0xa6, 0x01, // IID1689 - 0xd5, 0x30, 0x83, 0x84, 0xb5, 0xd6, 0x6e, 0x9c, 0x4a, 0x01, // IID1690 - 0xd5, 0x30, 0x83, 0x84, 0xfe, 0xc4, 0x05, 0x40, 0xb7, 0x01, // IID1691 - 0xd5, 0x10, 0x83, 0x87, 0xec, 0x5b, 0x85, 0x74, 0x01, // IID1692 - 0xd5, 0x11, 0x83, 0x80, 0x0c, 0x9c, 0xa5, 0xc1, 0x01, // IID1693 - 0xd5, 0x33, 0x83, 0x84, 0x91, 0x7a, 0x4b, 0xd3, 0x62, 0x01, // IID1694 - 0xd5, 0x33, 0x83, 0x84, 0xda, 0x50, 0x44, 0xe3, 0x3e, 0x01, // IID1695 - 0xd5, 0x33, 0x83, 0x84, 0x63, 0x0c, 0xcc, 0x31, 0xa1, 0x01, // IID1696 - 0xd5, 0x11, 0x83, 0x84, 0x24, 0xa9, 0x31, 0x05, 0xac, 0x01, // IID1697 - 0xd5, 0x11, 0x83, 0x85, 0x2d, 0x2c, 0x45, 0x8b, 0x01, // IID1698 - 0xd5, 0x33, 0x83, 0x84, 0xfe, 0x3d, 0xcd, 0x88, 0x01, 0x01, // IID1699 - 0xd5, 0x11, 0x83, 0x84, 0x4f, 0x6b, 0xca, 0x88, 0xfd, 0x01, // IID1700 - 0x83, 0x84, 0x91, 0x18, 0x98, 0x72, 0x01, 0x10, // IID1701 - 0x83, 0x84, 0xda, 0x08, 0x68, 0x87, 0xbd, 0x10, // IID1702 - 0x42, 0x83, 0x84, 0x43, 0xc4, 0x0a, 0x54, 0x0c, 0x10, // IID1703 - 0x43, 0x83, 0x84, 0x48, 0x2f, 0x87, 0xc9, 0x59, 0x10, // IID1704 - 0x41, 0x83, 0x81, 0x18, 0x1d, 0x25, 0x80, 0x10, // IID1705 - 0x43, 0x83, 0x84, 0x1a, 0xde, 0x31, 0x1b, 0x1d, 0x10, // IID1706 - 0x41, 0x83, 0x83, 0x57, 0x99, 0xfc, 0xcf, 0x10, // IID1707 - 0x43, 0x83, 0x84, 0x2c, 0xb0, 0x32, 0x4c, 0xf6, 0x10, // IID1708 - 0x43, 0x83, 0x84, 0xb5, 0xa2, 0x51, 0xcc, 0x4f, 0x10, // IID1709 - 0x41, 0x83, 0x86, 0x69, 0x24, 0x1e, 0x95, 0x10, // IID1710 - 0xd5, 0x21, 0x83, 0x84, 0x07, 0x45, 0x49, 0xf0, 0x5c, 0x10, // IID1711 - 0xd5, 0x30, 0x83, 0x84, 0x48, 0x5d, 0x63, 0xe4, 0x3d, 0x10, // IID1712 - 0xd5, 0x30, 0x83, 0x84, 0x11, 0x44, 0x47, 0x1a, 0x05, 0x10, // IID1713 - 0xd5, 0x30, 0x83, 0x84, 0x1a, 0xf7, 0xb4, 0xb6, 0x31, 0x10, // IID1714 - 0xd5, 0x10, 0x83, 0x83, 0xe9, 0x37, 0x08, 0xc0, 0x10, // IID1715 - 0xd5, 0x30, 0x83, 0x84, 0xac, 0x28, 0x9f, 0xf1, 0x6a, 0x10, // IID1716 - 0xd5, 0x30, 0x83, 0x84, 0xf5, 0xdd, 0xf0, 0x7b, 0x23, 0x10, // IID1717 - 0xd5, 0x30, 0x83, 0x84, 0x7e, 0x63, 0xb6, 0x75, 0x46, 0x10, // IID1718 - 0xd5, 0x32, 0x83, 0x84, 0xc7, 0x1d, 0x6c, 0xed, 0xd2, 0x10, // IID1719 - 0xd5, 0x33, 0x83, 0x84, 0x48, 0xe4, 0xec, 0xf4, 0x75, 0x10, // IID1720 - 0xd5, 0x11, 0x83, 0x81, 0xad, 0x2a, 0x83, 0x6e, 0x10, // IID1721 - 0xd5, 0x33, 0x83, 0x84, 0x9a, 0x69, 0x67, 0x44, 0x89, 0x10, // IID1722 - 0xd5, 0x33, 0x83, 0x84, 0xe3, 0xe2, 0xba, 0x3d, 0x20, 0x10, // IID1723 - 0xd5, 0x33, 0x83, 0x84, 0x6c, 0x0e, 0xa3, 0xe5, 0xfd, 0x10, // IID1724 - 0xd5, 0x33, 0x83, 0x84, 0xb5, 0x91, 0xd1, 0x62, 0x07, 0x10, // IID1725 - 0xd5, 0x11, 0x83, 0x86, 0xe7, 0xf3, 0x35, 0x60, 0x10, // IID1726 - 0xd5, 0x11, 0x83, 0x84, 0x8f, 0xa6, 0x4a, 0x34, 0xa1, 0x10, // IID1727 - 0x81, 0x81, 0x3e, 0xea, 0x61, 0x09, 0x00, 0x01, 0x00, 0x00, // IID1728 - 0x81, 0x84, 0x9a, 0x31, 0xf6, 0x35, 0x71, 0x00, 0x01, 0x00, 0x00, // IID1729 - 0x42, 0x81, 0x84, 0xc3, 0x9b, 0x09, 0xf7, 0x1b, 0x00, 0x01, 0x00, 0x00, // IID1730 - 0x41, 0x81, 0x80, 0x25, 0x43, 0x93, 0x78, 0x00, 0x01, 0x00, 0x00, // IID1731 - 0x43, 0x81, 0x84, 0x51, 0xeb, 0xd1, 0x0e, 0x6b, 0x00, 0x01, 0x00, 0x00, // IID1732 - 0x43, 0x81, 0x84, 0x1a, 0x07, 0x23, 0xf1, 0xf3, 0x00, 0x01, 0x00, 0x00, // IID1733 - 0x43, 0x81, 0x84, 0x63, 0xbf, 0xb7, 0x92, 0x54, 0x00, 0x01, 0x00, 0x00, // IID1734 - 0x43, 0x81, 0x84, 0xec, 0x03, 0x30, 0x91, 0x1e, 0x00, 0x01, 0x00, 0x00, // IID1735 - 0x43, 0x81, 0x84, 0x35, 0xcf, 0x68, 0x03, 0xd4, 0x00, 0x01, 0x00, 0x00, // IID1736 - 0x43, 0x81, 0x84, 0xfe, 0x23, 0x8b, 0xfd, 0x16, 0x00, 0x01, 0x00, 0x00, // IID1737 - 0xd5, 0x21, 0x81, 0x84, 0xc7, 0x45, 0x76, 0x6f, 0x53, 0x00, 0x01, 0x00, 0x00, // IID1738 - 0xd5, 0x30, 0x81, 0x84, 0x08, 0x7d, 0xf6, 0x9a, 0xbf, 0x00, 0x01, 0x00, 0x00, // IID1739 - 0xd5, 0x30, 0x81, 0x84, 0x51, 0x3b, 0x96, 0xf8, 0x9b, 0x00, 0x01, 0x00, 0x00, // IID1740 - 0xd5, 0x30, 0x81, 0x84, 0x9a, 0x92, 0x57, 0x90, 0xd1, 0x00, 0x01, 0x00, 0x00, // IID1741 - 0xd5, 0x10, 0x81, 0x83, 0x7c, 0x65, 0x03, 0x66, 0x00, 0x01, 0x00, 0x00, // IID1742 - 0xd5, 0x30, 0x81, 0x84, 0x6c, 0xe4, 0x54, 0xff, 0x39, 0x00, 0x01, 0x00, 0x00, // IID1743 - 0xd5, 0x30, 0x81, 0x84, 0x35, 0x87, 0x1b, 0x26, 0x66, 0x00, 0x01, 0x00, 0x00, // IID1744 - 0xd5, 0x10, 0x81, 0x86, 0x08, 0x18, 0x6d, 0xd8, 0x00, 0x01, 0x00, 0x00, // IID1745 - 0xd5, 0x32, 0x81, 0x84, 0xc7, 0x2c, 0xf4, 0x86, 0xd7, 0x00, 0x01, 0x00, 0x00, // IID1746 - 0xd5, 0x33, 0x81, 0x84, 0x48, 0x2c, 0xea, 0x8c, 0x8b, 0x00, 0x01, 0x00, 0x00, // IID1747 - 0xd5, 0x33, 0x81, 0x84, 0x91, 0x70, 0x6e, 0x5d, 0x96, 0x00, 0x01, 0x00, 0x00, // IID1748 - 0xd5, 0x33, 0x81, 0x84, 0x9a, 0xfb, 0xf1, 0x31, 0xb1, 0x00, 0x01, 0x00, 0x00, // IID1749 - 0xd5, 0x33, 0x81, 0x84, 0x23, 0xc3, 0xb4, 0x29, 0xf4, 0x00, 0x01, 0x00, 0x00, // IID1750 - 0xd5, 0x33, 0x81, 0x84, 0x2c, 0x13, 0x2e, 0x5a, 0x6f, 0x00, 0x01, 0x00, 0x00, // IID1751 - 0xd5, 0x33, 0x81, 0x84, 0x75, 0x6b, 0xa7, 0x1c, 0x1b, 0x00, 0x01, 0x00, 0x00, // IID1752 - 0xd5, 0x33, 0x81, 0x84, 0x7e, 0xc2, 0x7b, 0x3b, 0x6c, 0x00, 0x01, 0x00, 0x00, // IID1753 - 0xd5, 0x11, 0x81, 0x84, 0xcf, 0x04, 0xef, 0x1a, 0x3c, 0x00, 0x01, 0x00, 0x00, // IID1754 - 0x81, 0x84, 0x91, 0xc0, 0x61, 0x71, 0xb4, 0x00, 0x10, 0x00, 0x00, // IID1755 - 0x81, 0x84, 0x1a, 0x64, 0xb1, 0xf5, 0xb8, 0x00, 0x10, 0x00, 0x00, // IID1756 - 0x81, 0x83, 0xc1, 0x0b, 0xa8, 0x0e, 0x00, 0x10, 0x00, 0x00, // IID1757 - 0x41, 0x81, 0x80, 0x5b, 0x1c, 0xe6, 0x33, 0x00, 0x10, 0x00, 0x00, // IID1758 - 0x43, 0x81, 0x84, 0x91, 0x19, 0xf9, 0x6d, 0x2c, 0x00, 0x10, 0x00, 0x00, // IID1759 - 0x43, 0x81, 0x84, 0x1a, 0xd3, 0x1d, 0x67, 0x44, 0x00, 0x10, 0x00, 0x00, // IID1760 - 0x43, 0x81, 0x84, 0x23, 0x0d, 0x21, 0xa3, 0xe4, 0x00, 0x10, 0x00, 0x00, // IID1761 - 0x43, 0x81, 0x84, 0x2c, 0xbe, 0x6a, 0x58, 0x86, 0x00, 0x10, 0x00, 0x00, // IID1762 - 0x41, 0x81, 0x85, 0xcc, 0x97, 0xbb, 0x7e, 0x00, 0x10, 0x00, 0x00, // IID1763 - 0x43, 0x81, 0x84, 0x7e, 0xfc, 0x41, 0xb1, 0xfa, 0x00, 0x10, 0x00, 0x00, // IID1764 - 0xd5, 0x21, 0x81, 0x84, 0x87, 0x58, 0x93, 0x0d, 0x1e, 0x00, 0x10, 0x00, 0x00, // IID1765 - 0xd5, 0x30, 0x81, 0x84, 0x08, 0x4c, 0x35, 0x2f, 0xb1, 0x00, 0x10, 0x00, 0x00, // IID1766 - 0xd5, 0x10, 0x81, 0x81, 0x3f, 0x2c, 0x05, 0x04, 0x00, 0x10, 0x00, 0x00, // IID1767 - 0xd5, 0x10, 0x81, 0x82, 0xc3, 0x73, 0x53, 0xd4, 0x00, 0x10, 0x00, 0x00, // IID1768 - 0xd5, 0x30, 0x81, 0x84, 0xa3, 0xcc, 0xe7, 0x07, 0xe1, 0x00, 0x10, 0x00, 0x00, // IID1769 - 0xd5, 0x30, 0x81, 0x84, 0xec, 0x90, 0xe8, 0x9c, 0x82, 0x00, 0x10, 0x00, 0x00, // IID1770 - 0xd5, 0x30, 0x81, 0x84, 0x75, 0x41, 0xb3, 0xc6, 0xea, 0x00, 0x10, 0x00, 0x00, // IID1771 - 0xd5, 0x30, 0x81, 0x84, 0xfe, 0x9f, 0xa8, 0x97, 0xd5, 0x00, 0x10, 0x00, 0x00, // IID1772 - 0xd5, 0x32, 0x81, 0x84, 0x87, 0x7c, 0xd5, 0x21, 0xad, 0x00, 0x10, 0x00, 0x00, // IID1773 - 0xd5, 0x33, 0x81, 0x84, 0xc8, 0xaf, 0xca, 0x0a, 0x7e, 0x00, 0x10, 0x00, 0x00, // IID1774 - 0xd5, 0x33, 0x81, 0x84, 0x11, 0x10, 0x79, 0xa5, 0x98, 0x00, 0x10, 0x00, 0x00, // IID1775 - 0xd5, 0x11, 0x81, 0x82, 0x49, 0x88, 0xfb, 0x12, 0x00, 0x10, 0x00, 0x00, // IID1776 - 0xd5, 0x11, 0x81, 0x83, 0x37, 0x96, 0x25, 0xdd, 0x00, 0x10, 0x00, 0x00, // IID1777 - 0xd5, 0x33, 0x81, 0x84, 0x2c, 0x55, 0xf5, 0x69, 0xfb, 0x00, 0x10, 0x00, 0x00, // IID1778 - 0xd5, 0x33, 0x81, 0x84, 0x35, 0x9e, 0x33, 0x8c, 0xa4, 0x00, 0x10, 0x00, 0x00, // IID1779 - 0xd5, 0x33, 0x81, 0x84, 0xbe, 0x40, 0x64, 0xf4, 0x36, 0x00, 0x10, 0x00, 0x00, // IID1780 - 0xd5, 0x11, 0x81, 0x84, 0x0f, 0x87, 0xa7, 0x95, 0xf0, 0x00, 0x10, 0x00, 0x00, // IID1781 - 0x81, 0x84, 0x11, 0xe7, 0xc9, 0x47, 0xa7, 0x00, 0x00, 0x01, 0x00, // IID1782 - 0x81, 0x84, 0x1a, 0x3d, 0x85, 0x6c, 0x50, 0x00, 0x00, 0x01, 0x00, // IID1783 - 0x42, 0x81, 0x84, 0x43, 0xa6, 0x26, 0x6f, 0xf5, 0x00, 0x00, 0x01, 0x00, // IID1784 - 0x41, 0x81, 0x80, 0x23, 0x2a, 0x56, 0xe9, 0x00, 0x00, 0x01, 0x00, // IID1785 - 0x43, 0x81, 0x84, 0x91, 0x13, 0x3e, 0x2d, 0x5a, 0x00, 0x00, 0x01, 0x00, // IID1786 - 0x43, 0x81, 0x84, 0xda, 0x07, 0xa5, 0xf1, 0x3c, 0x00, 0x00, 0x01, 0x00, // IID1787 - 0x41, 0x81, 0x83, 0x80, 0x28, 0x08, 0x64, 0x00, 0x00, 0x01, 0x00, // IID1788 - 0x43, 0x81, 0x84, 0x6c, 0x13, 0x6b, 0xd7, 0x87, 0x00, 0x00, 0x01, 0x00, // IID1789 - 0x41, 0x81, 0x85, 0xe6, 0x8c, 0xa1, 0x75, 0x00, 0x00, 0x01, 0x00, // IID1790 - 0x41, 0x81, 0x86, 0x38, 0x4f, 0x8f, 0x58, 0x00, 0x00, 0x01, 0x00, // IID1791 - 0xd5, 0x21, 0x81, 0x84, 0xc7, 0xd6, 0x4e, 0x12, 0xad, 0x00, 0x00, 0x01, 0x00, // IID1792 - 0xd5, 0x10, 0x81, 0x80, 0xf6, 0x6d, 0x66, 0x6c, 0x00, 0x00, 0x01, 0x00, // IID1793 - 0xd5, 0x30, 0x81, 0x84, 0xd1, 0x0e, 0x18, 0x76, 0x01, 0x00, 0x00, 0x01, 0x00, // IID1794 - 0xd5, 0x30, 0x81, 0x84, 0x5a, 0xea, 0xba, 0x47, 0x4c, 0x00, 0x00, 0x01, 0x00, // IID1795 - 0xd5, 0x30, 0x81, 0x84, 0xe3, 0x14, 0x6b, 0x70, 0x88, 0x00, 0x00, 0x01, 0x00, // IID1796 - 0xd5, 0x30, 0x81, 0x84, 0x6c, 0xa1, 0x26, 0x62, 0x42, 0x00, 0x00, 0x01, 0x00, // IID1797 - 0xd5, 0x30, 0x81, 0x84, 0xb5, 0x2b, 0x08, 0x7d, 0xcd, 0x00, 0x00, 0x01, 0x00, // IID1798 - 0xd5, 0x30, 0x81, 0x84, 0x3e, 0x4c, 0xac, 0xb5, 0x85, 0x00, 0x00, 0x01, 0x00, // IID1799 - 0xd5, 0x32, 0x81, 0x84, 0x87, 0xde, 0x6a, 0xcf, 0xd5, 0x00, 0x00, 0x01, 0x00, // IID1800 - 0xd5, 0x33, 0x81, 0x84, 0x08, 0xe8, 0xc7, 0x8f, 0x3e, 0x00, 0x00, 0x01, 0x00, // IID1801 - 0xd5, 0x11, 0x81, 0x81, 0xf5, 0x3b, 0x1b, 0x5a, 0x00, 0x00, 0x01, 0x00, // IID1802 - 0xd5, 0x33, 0x81, 0x84, 0x1a, 0x25, 0x15, 0x83, 0x25, 0x00, 0x00, 0x01, 0x00, // IID1803 - 0xd5, 0x11, 0x81, 0x83, 0x66, 0x1e, 0x25, 0x27, 0x00, 0x00, 0x01, 0x00, // IID1804 - 0xd5, 0x33, 0x81, 0x84, 0xac, 0xf7, 0xac, 0xd6, 0xae, 0x00, 0x00, 0x01, 0x00, // IID1805 - 0xd5, 0x33, 0x81, 0x84, 0xb5, 0x7e, 0x31, 0x51, 0xd1, 0x00, 0x00, 0x01, 0x00, // IID1806 - 0xd5, 0x33, 0x81, 0x84, 0x7e, 0x2b, 0x51, 0x63, 0xca, 0x00, 0x00, 0x01, 0x00, // IID1807 - 0xd5, 0x11, 0x81, 0x87, 0x1c, 0x51, 0xa6, 0x87, 0x00, 0x00, 0x01, 0x00, // IID1808 - 0x81, 0x84, 0xd1, 0x80, 0x28, 0x0b, 0x4d, 0x00, 0x00, 0x10, 0x00, // IID1809 - 0x81, 0x84, 0x5a, 0x6f, 0x4d, 0x1c, 0x73, 0x00, 0x00, 0x10, 0x00, // IID1810 - 0x81, 0x83, 0x20, 0x06, 0xb9, 0x08, 0x00, 0x00, 0x10, 0x00, // IID1811 - 0x43, 0x81, 0x84, 0x48, 0x88, 0x46, 0x99, 0x77, 0x00, 0x00, 0x10, 0x00, // IID1812 - 0x43, 0x81, 0x84, 0x91, 0x09, 0xa0, 0xb6, 0x15, 0x00, 0x00, 0x10, 0x00, // IID1813 - 0x43, 0x81, 0x84, 0x9a, 0x54, 0x90, 0xff, 0x57, 0x00, 0x00, 0x10, 0x00, // IID1814 - 0x43, 0x81, 0x84, 0x63, 0x6d, 0xf1, 0xb9, 0xe3, 0x00, 0x00, 0x10, 0x00, // IID1815 - 0x41, 0x81, 0x84, 0x24, 0x9c, 0xd4, 0xe8, 0x1c, 0x00, 0x00, 0x10, 0x00, // IID1816 - 0x43, 0x81, 0x84, 0x35, 0x98, 0x7e, 0x4b, 0x1c, 0x00, 0x00, 0x10, 0x00, // IID1817 - 0x43, 0x81, 0x84, 0xfe, 0x8f, 0x36, 0x52, 0x97, 0x00, 0x00, 0x10, 0x00, // IID1818 - 0xd5, 0x21, 0x81, 0x84, 0xc7, 0xc2, 0x19, 0x2f, 0x4c, 0x00, 0x00, 0x10, 0x00, // IID1819 - 0xd5, 0x30, 0x81, 0x84, 0x48, 0x75, 0x30, 0x24, 0x5b, 0x00, 0x00, 0x10, 0x00, // IID1820 - 0xd5, 0x30, 0x81, 0x84, 0xd1, 0x1f, 0xb7, 0x06, 0xc9, 0x00, 0x00, 0x10, 0x00, // IID1821 - 0xd5, 0x30, 0x81, 0x84, 0x9a, 0x8d, 0x99, 0xc8, 0x71, 0x00, 0x00, 0x10, 0x00, // IID1822 - 0xd5, 0x30, 0x81, 0x84, 0x63, 0x2b, 0x17, 0x18, 0x80, 0x00, 0x00, 0x10, 0x00, // IID1823 - 0xd5, 0x30, 0x81, 0x84, 0x2c, 0x93, 0x74, 0x87, 0x97, 0x00, 0x00, 0x10, 0x00, // IID1824 - 0xd5, 0x30, 0x81, 0x84, 0x75, 0xc4, 0x2a, 0xe6, 0x47, 0x00, 0x00, 0x10, 0x00, // IID1825 - 0xd5, 0x30, 0x81, 0x84, 0x3e, 0x5e, 0xd9, 0x7a, 0x33, 0x00, 0x00, 0x10, 0x00, // IID1826 - 0xd5, 0x10, 0x81, 0x87, 0xcf, 0x91, 0xa6, 0xd9, 0x00, 0x00, 0x10, 0x00, // IID1827 - 0xd5, 0x33, 0x81, 0x84, 0xc8, 0xf1, 0xed, 0x64, 0x95, 0x00, 0x00, 0x10, 0x00, // IID1828 - 0xd5, 0x33, 0x81, 0x84, 0x51, 0x0a, 0x93, 0x09, 0x96, 0x00, 0x00, 0x10, 0x00, // IID1829 - 0xd5, 0x33, 0x81, 0x84, 0x9a, 0xb7, 0x43, 0x6b, 0x16, 0x00, 0x00, 0x10, 0x00, // IID1830 - 0xd5, 0x33, 0x81, 0x84, 0x63, 0x70, 0xcc, 0x13, 0x3b, 0x00, 0x00, 0x10, 0x00, // IID1831 - 0xd5, 0x11, 0x81, 0x84, 0x24, 0x8f, 0xbf, 0x41, 0x75, 0x00, 0x00, 0x10, 0x00, // IID1832 - 0xd5, 0x33, 0x81, 0x84, 0xf5, 0xf4, 0xe9, 0x16, 0xb3, 0x00, 0x00, 0x10, 0x00, // IID1833 - 0xd5, 0x33, 0x81, 0x84, 0xfe, 0xb5, 0x09, 0xc3, 0x7d, 0x00, 0x00, 0x10, 0x00, // IID1834 - 0xd5, 0x11, 0x81, 0x84, 0x4f, 0xe3, 0xe5, 0x89, 0xe2, 0x00, 0x00, 0x10, 0x00, // IID1835 - 0x81, 0x84, 0x51, 0x50, 0x09, 0x33, 0x18, 0x00, 0x00, 0x00, 0x01, // IID1836 - 0x81, 0x84, 0x1a, 0x87, 0xed, 0x4c, 0xeb, 0x00, 0x00, 0x00, 0x01, // IID1837 - 0x42, 0x81, 0x84, 0x83, 0x86, 0x10, 0x97, 0x8d, 0x00, 0x00, 0x00, 0x01, // IID1838 - 0x43, 0x81, 0x84, 0x48, 0x5b, 0x06, 0xef, 0x3f, 0x00, 0x00, 0x00, 0x01, // IID1839 - 0x43, 0x81, 0x84, 0xd1, 0x21, 0xbd, 0xbd, 0xc8, 0x00, 0x00, 0x00, 0x01, // IID1840 - 0x43, 0x81, 0x84, 0x1a, 0xe5, 0x17, 0xa7, 0x9c, 0x00, 0x00, 0x00, 0x01, // IID1841 - 0x41, 0x81, 0x83, 0xb8, 0x43, 0x29, 0x43, 0x00, 0x00, 0x00, 0x01, // IID1842 - 0x43, 0x81, 0x84, 0x2c, 0x65, 0xde, 0xa0, 0x5a, 0x00, 0x00, 0x00, 0x01, // IID1843 - 0x43, 0x81, 0x84, 0x35, 0xb8, 0x71, 0xa1, 0xb6, 0x00, 0x00, 0x00, 0x01, // IID1844 - 0x43, 0x81, 0x84, 0xfe, 0xf6, 0x87, 0x97, 0xb9, 0x00, 0x00, 0x00, 0x01, // IID1845 - 0xd5, 0x21, 0x81, 0x84, 0x47, 0x0d, 0xe3, 0x26, 0x43, 0x00, 0x00, 0x00, 0x01, // IID1846 - 0xd5, 0x30, 0x81, 0x84, 0x48, 0x2c, 0x46, 0xb7, 0xa0, 0x00, 0x00, 0x00, 0x01, // IID1847 - 0xd5, 0x30, 0x81, 0x84, 0x51, 0x03, 0x53, 0x19, 0xb7, 0x00, 0x00, 0x00, 0x01, // IID1848 - 0xd5, 0x30, 0x81, 0x84, 0x9a, 0x9e, 0x9d, 0xc6, 0x87, 0x00, 0x00, 0x00, 0x01, // IID1849 - 0xd5, 0x30, 0x81, 0x84, 0x63, 0x9f, 0xd5, 0x23, 0x13, 0x00, 0x00, 0x00, 0x01, // IID1850 - 0xd5, 0x30, 0x81, 0x84, 0xac, 0x91, 0x1d, 0x43, 0x7c, 0x00, 0x00, 0x00, 0x01, // IID1851 - 0xd5, 0x10, 0x81, 0x85, 0x3b, 0x3f, 0x94, 0x2c, 0x00, 0x00, 0x00, 0x01, // IID1852 - 0xd5, 0x30, 0x81, 0x84, 0xbe, 0x25, 0xab, 0x4a, 0x70, 0x00, 0x00, 0x00, 0x01, // IID1853 - 0xd5, 0x32, 0x81, 0x84, 0xc7, 0x02, 0xde, 0x4b, 0x8a, 0x00, 0x00, 0x00, 0x01, // IID1854 - 0xd5, 0x33, 0x81, 0x84, 0x48, 0x1d, 0xb2, 0x52, 0x23, 0x00, 0x00, 0x00, 0x01, // IID1855 - 0xd5, 0x33, 0x81, 0x84, 0x51, 0xde, 0x99, 0xe7, 0xc3, 0x00, 0x00, 0x00, 0x01, // IID1856 - 0xd5, 0x11, 0x81, 0x82, 0x10, 0x29, 0x0d, 0x43, 0x00, 0x00, 0x00, 0x01, // IID1857 - 0xd5, 0x33, 0x81, 0x84, 0xe3, 0x99, 0x1c, 0x0d, 0xe1, 0x00, 0x00, 0x00, 0x01, // IID1858 - 0xd5, 0x11, 0x81, 0x84, 0x24, 0x32, 0xbe, 0x26, 0x2c, 0x00, 0x00, 0x00, 0x01, // IID1859 - 0xd5, 0x33, 0x81, 0x84, 0xb5, 0xf7, 0x02, 0xbc, 0x42, 0x00, 0x00, 0x00, 0x01, // IID1860 - 0xd5, 0x33, 0x81, 0x84, 0xfe, 0x84, 0x0b, 0x82, 0x5e, 0x00, 0x00, 0x00, 0x01, // IID1861 - 0xd5, 0x11, 0x81, 0x84, 0x0f, 0x94, 0xbb, 0x9c, 0xfb, 0x00, 0x00, 0x00, 0x01, // IID1862 - 0x81, 0x81, 0xdf, 0x44, 0xeb, 0x75, 0x00, 0x00, 0x00, 0x10, // IID1863 - 0x81, 0x84, 0xda, 0x08, 0xe1, 0xfa, 0x2f, 0x00, 0x00, 0x00, 0x10, // IID1864 - 0x42, 0x81, 0x84, 0x03, 0xd3, 0x6f, 0xe1, 0xd2, 0x00, 0x00, 0x00, 0x10, // IID1865 - 0x41, 0x81, 0x80, 0xf7, 0xc2, 0x6d, 0x71, 0x00, 0x00, 0x00, 0x10, // IID1866 - 0x41, 0x81, 0x81, 0x23, 0x32, 0xe4, 0x94, 0x00, 0x00, 0x00, 0x10, // IID1867 - 0x41, 0x81, 0x82, 0x22, 0xf4, 0x89, 0x3f, 0x00, 0x00, 0x00, 0x10, // IID1868 - 0x43, 0x81, 0x84, 0x23, 0xdb, 0xb2, 0x31, 0xfa, 0x00, 0x00, 0x00, 0x10, // IID1869 - 0x43, 0x81, 0x84, 0xac, 0x91, 0x21, 0xa0, 0xd7, 0x00, 0x00, 0x00, 0x10, // IID1870 - 0x43, 0x81, 0x84, 0x75, 0x02, 0xe9, 0x29, 0x3d, 0x00, 0x00, 0x00, 0x10, // IID1871 - 0x43, 0x81, 0x84, 0xbe, 0x85, 0x37, 0xe0, 0xa4, 0x00, 0x00, 0x00, 0x10, // IID1872 - 0xd5, 0x21, 0x81, 0x84, 0x07, 0xe7, 0x31, 0xd1, 0x78, 0x00, 0x00, 0x00, 0x10, // IID1873 - 0xd5, 0x30, 0x81, 0x84, 0x48, 0x3f, 0x0d, 0xa9, 0xe3, 0x00, 0x00, 0x00, 0x10, // IID1874 - 0xd5, 0x30, 0x81, 0x84, 0x51, 0xe5, 0x3f, 0x6c, 0xc4, 0x00, 0x00, 0x00, 0x10, // IID1875 - 0xd5, 0x30, 0x81, 0x84, 0x1a, 0x73, 0x72, 0xa4, 0x42, 0x00, 0x00, 0x00, 0x10, // IID1876 - 0xd5, 0x30, 0x81, 0x84, 0xe3, 0xf8, 0x8b, 0xb5, 0x85, 0x00, 0x00, 0x00, 0x10, // IID1877 - 0xd5, 0x30, 0x81, 0x84, 0x2c, 0x5a, 0x25, 0x42, 0x30, 0x00, 0x00, 0x00, 0x10, // IID1878 - 0xd5, 0x30, 0x81, 0x84, 0xf5, 0xdb, 0x69, 0xca, 0x19, 0x00, 0x00, 0x00, 0x10, // IID1879 - 0xd5, 0x30, 0x81, 0x84, 0x3e, 0x53, 0x15, 0x11, 0x19, 0x00, 0x00, 0x00, 0x10, // IID1880 - 0xd5, 0x32, 0x81, 0x84, 0x47, 0x71, 0x81, 0xef, 0x8f, 0x00, 0x00, 0x00, 0x10, // IID1881 - 0xd5, 0x33, 0x81, 0x84, 0x88, 0x6f, 0xf8, 0x96, 0x06, 0x00, 0x00, 0x00, 0x10, // IID1882 - 0xd5, 0x11, 0x81, 0x81, 0x44, 0x98, 0xce, 0x1c, 0x00, 0x00, 0x00, 0x10, // IID1883 - 0xd5, 0x33, 0x81, 0x84, 0x5a, 0x1a, 0x2d, 0xfb, 0x76, 0x00, 0x00, 0x00, 0x10, // IID1884 - 0xd5, 0x33, 0x81, 0x84, 0xa3, 0xfc, 0xbf, 0xdc, 0xfb, 0x00, 0x00, 0x00, 0x10, // IID1885 - 0xd5, 0x33, 0x81, 0x84, 0xec, 0xe9, 0x58, 0x7a, 0x65, 0x00, 0x00, 0x00, 0x10, // IID1886 - 0xd5, 0x11, 0x81, 0x85, 0x16, 0x40, 0x08, 0x1b, 0x00, 0x00, 0x00, 0x10, // IID1887 - 0xd5, 0x33, 0x81, 0x84, 0x7e, 0x6b, 0xcb, 0x3c, 0x73, 0x00, 0x00, 0x00, 0x10, // IID1888 - 0xd5, 0x11, 0x81, 0x84, 0x4f, 0x98, 0xf4, 0x71, 0x74, 0x00, 0x00, 0x00, 0x10, // IID1889 -#endif // _LP64 - 0x80, 0xbc, 0xd1, 0x26, 0x0a, 0x7b, 0x51, 0x01, // IID1890 - 0x80, 0xbc, 0x1a, 0x1f, 0xed, 0x5b, 0x38, 0x01, // IID1891 -#ifdef _LP64 - 0x42, 0x80, 0xbc, 0x43, 0x77, 0x81, 0xca, 0x43, 0x01, // IID1892 - 0x43, 0x80, 0xbc, 0x88, 0x87, 0xdd, 0x5b, 0x6d, 0x01, // IID1893 - 0x43, 0x80, 0xbc, 0xd1, 0xa4, 0x10, 0x3b, 0x63, 0x01, // IID1894 - 0x43, 0x80, 0xbc, 0x5a, 0x08, 0xd9, 0xeb, 0xbc, 0x01, // IID1895 - 0x43, 0x80, 0xbc, 0xa3, 0xc6, 0xb8, 0x21, 0xb3, 0x01, // IID1896 - 0x43, 0x80, 0xbc, 0xec, 0x66, 0xeb, 0x08, 0x77, 0x01, // IID1897 - 0x43, 0x80, 0xbc, 0xb5, 0x86, 0xb6, 0x63, 0x28, 0x01, // IID1898 - 0x43, 0x80, 0xbc, 0x3e, 0x26, 0xdc, 0x8c, 0xba, 0x01, // IID1899 - 0xd5, 0x21, 0x80, 0xbc, 0xc7, 0x34, 0x80, 0x32, 0x50, 0x01, // IID1900 - 0xd5, 0x30, 0x80, 0xbc, 0x48, 0x1a, 0x1c, 0x17, 0x02, 0x01, // IID1901 - 0xd5, 0x30, 0x80, 0xbc, 0x91, 0x26, 0xa9, 0xeb, 0x2a, 0x01, // IID1902 - 0xd5, 0x30, 0x80, 0xbc, 0x9a, 0x05, 0xfa, 0x82, 0x52, 0x01, // IID1903 - 0xd5, 0x30, 0x80, 0xbc, 0x23, 0x10, 0xe3, 0xf8, 0x9d, 0x01, // IID1904 - 0xd5, 0x30, 0x80, 0xbc, 0x6c, 0x2f, 0x7e, 0xff, 0xf9, 0x01, // IID1905 - 0xd5, 0x30, 0x80, 0xbc, 0xf5, 0x8e, 0xb6, 0x75, 0x5f, 0x01, // IID1906 - 0xd5, 0x30, 0x80, 0xbc, 0xfe, 0x35, 0x58, 0x30, 0x44, 0x01, // IID1907 - 0xd5, 0x32, 0x80, 0xbc, 0x47, 0xfd, 0xbc, 0xb4, 0xf0, 0x01, // IID1908 - 0xd5, 0x33, 0x80, 0xbc, 0xc8, 0x84, 0x3f, 0x01, 0x56, 0x01, // IID1909 - 0xd5, 0x33, 0x80, 0xbc, 0xd1, 0xe7, 0x93, 0x65, 0x3c, 0x01, // IID1910 - 0xd5, 0x33, 0x80, 0xbc, 0x9a, 0x4e, 0x48, 0xa6, 0x69, 0x01, // IID1911 - 0xd5, 0x33, 0x80, 0xbc, 0x23, 0x31, 0x2d, 0x01, 0x62, 0x01, // IID1912 - 0xd5, 0x33, 0x80, 0xbc, 0xec, 0x4d, 0xea, 0x5a, 0x1e, 0x01, // IID1913 - 0xd5, 0x33, 0x80, 0xbc, 0xb5, 0xa8, 0x21, 0x7d, 0xb4, 0x01, // IID1914 - 0xd5, 0x11, 0x80, 0xbe, 0x65, 0xcd, 0x9b, 0x6b, 0x01, // IID1915 - 0xd5, 0x11, 0x80, 0xbc, 0xcf, 0x42, 0x81, 0xa8, 0x90, 0x01, // IID1916 - 0x80, 0xb9, 0x01, 0xab, 0xae, 0x1f, 0x04, // IID1917 - 0x80, 0xba, 0x67, 0x8a, 0x1c, 0x69, 0x04, // IID1918 - 0x80, 0xbb, 0x48, 0x5b, 0x6b, 0xf5, 0x04, // IID1919 - 0x41, 0x80, 0xb8, 0xb3, 0xe0, 0xab, 0xd0, 0x04, // IID1920 - 0x43, 0x80, 0xbc, 0x91, 0xe6, 0x90, 0x32, 0x48, 0x04, // IID1921 - 0x43, 0x80, 0xbc, 0xda, 0x87, 0xf4, 0x3a, 0xc3, 0x04, // IID1922 - 0x43, 0x80, 0xbc, 0xe3, 0x55, 0x35, 0x2b, 0x4e, 0x04, // IID1923 - 0x43, 0x80, 0xbc, 0xec, 0xa2, 0x31, 0x12, 0x3b, 0x04, // IID1924 - 0x43, 0x80, 0xbc, 0x35, 0x31, 0xd4, 0x30, 0x0e, 0x04, // IID1925 - 0x43, 0x80, 0xbc, 0x3e, 0x00, 0xb7, 0xf4, 0x44, 0x04, // IID1926 - 0xd5, 0x21, 0x80, 0xbc, 0x87, 0x75, 0xc7, 0xa2, 0x58, 0x04, // IID1927 - 0xd5, 0x30, 0x80, 0xbc, 0xc8, 0xf4, 0x78, 0xdf, 0x1f, 0x04, // IID1928 - 0xd5, 0x10, 0x80, 0xb9, 0x64, 0xdb, 0x6d, 0x80, 0x04, // IID1929 - 0xd5, 0x30, 0x80, 0xbc, 0xda, 0x2a, 0x61, 0xfd, 0xaa, 0x04, // IID1930 - 0xd5, 0x10, 0x80, 0xbb, 0x27, 0x63, 0xfd, 0xd6, 0x04, // IID1931 - 0xd5, 0x10, 0x80, 0xbc, 0x24, 0xa8, 0xd1, 0x6b, 0x17, 0x04, // IID1932 - 0xd5, 0x10, 0x80, 0xbd, 0x89, 0xaa, 0x92, 0x2a, 0x04, // IID1933 - 0xd5, 0x30, 0x80, 0xbc, 0xfe, 0x1f, 0xda, 0x3e, 0x9d, 0x04, // IID1934 - 0xd5, 0x32, 0x80, 0xbc, 0x87, 0xc0, 0x4f, 0x09, 0xa2, 0x04, // IID1935 - 0xd5, 0x11, 0x80, 0xb8, 0xd5, 0xb8, 0xf2, 0x4e, 0x04, // IID1936 - 0xd5, 0x33, 0x80, 0xbc, 0x91, 0xf5, 0xe5, 0x51, 0x86, 0x04, // IID1937 - 0xd5, 0x33, 0x80, 0xbc, 0x1a, 0xf3, 0x0d, 0x58, 0x57, 0x04, // IID1938 - 0xd5, 0x33, 0x80, 0xbc, 0x63, 0xf7, 0x23, 0x41, 0x52, 0x04, // IID1939 - 0xd5, 0x11, 0x80, 0xbc, 0x24, 0x14, 0x26, 0xeb, 0xc3, 0x04, // IID1940 - 0xd5, 0x33, 0x80, 0xbc, 0x75, 0xf9, 0x50, 0xf6, 0x4d, 0x04, // IID1941 - 0xd5, 0x33, 0x80, 0xbc, 0xbe, 0xb7, 0xd2, 0x79, 0x61, 0x04, // IID1942 - 0xd5, 0x11, 0x80, 0xbc, 0x0f, 0x55, 0x16, 0x80, 0x17, 0x04, // IID1943 - 0x80, 0xbc, 0x11, 0x52, 0x7e, 0xca, 0x63, 0x10, // IID1944 - 0x80, 0xbc, 0xda, 0x7a, 0x4a, 0x19, 0xe2, 0x10, // IID1945 - 0x42, 0x80, 0xbc, 0x03, 0x81, 0x48, 0x18, 0x3d, 0x10, // IID1946 - 0x43, 0x80, 0xbc, 0x88, 0xee, 0x6f, 0x10, 0x3a, 0x10, // IID1947 - 0x43, 0x80, 0xbc, 0x91, 0x36, 0xe3, 0xc4, 0x2c, 0x10, // IID1948 - 0x41, 0x80, 0xba, 0xe1, 0x10, 0x3b, 0x68, 0x10, // IID1949 - 0x43, 0x80, 0xbc, 0xa3, 0x4c, 0x56, 0x6e, 0x91, 0x10, // IID1950 - 0x43, 0x80, 0xbc, 0x2c, 0x86, 0x68, 0xc9, 0xd0, 0x10, // IID1951 - 0x43, 0x80, 0xbc, 0x75, 0xd4, 0x2f, 0x96, 0x59, 0x10, // IID1952 - 0x43, 0x80, 0xbc, 0xfe, 0x4e, 0xcb, 0xcc, 0xa6, 0x10, // IID1953 - 0xd5, 0x21, 0x80, 0xbc, 0x07, 0x6c, 0xbc, 0x6b, 0x32, 0x10, // IID1954 - 0xd5, 0x30, 0x80, 0xbc, 0x08, 0x7f, 0x48, 0xd8, 0x48, 0x10, // IID1955 - 0xd5, 0x30, 0x80, 0xbc, 0x51, 0xeb, 0x46, 0x3a, 0xa8, 0x10, // IID1956 - 0xd5, 0x30, 0x80, 0xbc, 0x5a, 0x2d, 0x89, 0xff, 0xfb, 0x10, // IID1957 - 0xd5, 0x30, 0x80, 0xbc, 0xa3, 0x12, 0xbb, 0xdb, 0x5e, 0x10, // IID1958 - 0xd5, 0x30, 0x80, 0xbc, 0xec, 0xae, 0xa1, 0xc4, 0xcb, 0x10, // IID1959 - 0xd5, 0x30, 0x80, 0xbc, 0xf5, 0xb0, 0x21, 0x6d, 0x69, 0x10, // IID1960 - 0xd5, 0x30, 0x80, 0xbc, 0x3e, 0x0c, 0xf0, 0x59, 0x3b, 0x10, // IID1961 - 0xd5, 0x32, 0x80, 0xbc, 0x47, 0x67, 0xea, 0x34, 0x4f, 0x10, // IID1962 - 0xd5, 0x11, 0x80, 0xb8, 0xe2, 0x40, 0xdf, 0xa1, 0x10, // IID1963 - 0xd5, 0x11, 0x80, 0xb9, 0x63, 0x3f, 0xd6, 0xce, 0x10, // IID1964 - 0xd5, 0x33, 0x80, 0xbc, 0x9a, 0x6c, 0xd2, 0x4d, 0x3b, 0x10, // IID1965 - 0xd5, 0x33, 0x80, 0xbc, 0x23, 0x0d, 0x1d, 0xea, 0xce, 0x10, // IID1966 - 0xd5, 0x33, 0x80, 0xbc, 0xec, 0x44, 0x6d, 0xae, 0xe3, 0x10, // IID1967 - 0xd5, 0x33, 0x80, 0xbc, 0xb5, 0x8e, 0xe5, 0xb5, 0x8e, 0x10, // IID1968 - 0xd5, 0x11, 0x80, 0xbe, 0x90, 0x5f, 0xad, 0xa1, 0x10, // IID1969 - 0xd5, 0x11, 0x80, 0xbc, 0xcf, 0xeb, 0x53, 0x95, 0xdc, 0x10, // IID1970 - 0x80, 0xbc, 0xd1, 0x1f, 0x94, 0x26, 0xff, 0x40, // IID1971 - 0x80, 0xbc, 0x9a, 0x62, 0xb9, 0xb5, 0x2c, 0x40, // IID1972 - 0x42, 0x80, 0xbc, 0x83, 0x79, 0x0a, 0x08, 0xa2, 0x40, // IID1973 - 0x43, 0x80, 0xbc, 0x08, 0x7b, 0x1d, 0xe5, 0xe7, 0x40, // IID1974 - 0x43, 0x80, 0xbc, 0x91, 0x2d, 0xef, 0x48, 0x98, 0x40, // IID1975 - 0x43, 0x80, 0xbc, 0x5a, 0xe7, 0x2e, 0x10, 0x34, 0x40, // IID1976 - 0x43, 0x80, 0xbc, 0x63, 0xc9, 0x3b, 0x66, 0x70, 0x40, // IID1977 - 0x43, 0x80, 0xbc, 0xec, 0x23, 0x1a, 0x2a, 0x28, 0x40, // IID1978 - 0x43, 0x80, 0xbc, 0xf5, 0x97, 0x1a, 0x4e, 0x53, 0x40, // IID1979 - 0x43, 0x80, 0xbc, 0x7e, 0x30, 0xcd, 0xa7, 0xd2, 0x40, // IID1980 - 0xd5, 0x21, 0x80, 0xbc, 0x07, 0x6b, 0x14, 0xbb, 0xed, 0x40, // IID1981 - 0xd5, 0x30, 0x80, 0xbc, 0x08, 0x12, 0x36, 0xea, 0x85, 0x40, // IID1982 - 0xd5, 0x30, 0x80, 0xbc, 0x11, 0x34, 0xec, 0x27, 0xf6, 0x40, // IID1983 - 0xd5, 0x30, 0x80, 0xbc, 0x9a, 0x88, 0x0f, 0xed, 0xfe, 0x40, // IID1984 - 0xd5, 0x30, 0x80, 0xbc, 0x63, 0x2f, 0x0e, 0x5b, 0xde, 0x40, // IID1985 - 0xd5, 0x30, 0x80, 0xbc, 0xec, 0x22, 0xd4, 0x0b, 0x78, 0x40, // IID1986 - 0xd5, 0x30, 0x80, 0xbc, 0x75, 0x1d, 0x30, 0xa7, 0x1a, 0x40, // IID1987 - 0xd5, 0x30, 0x80, 0xbc, 0xfe, 0x82, 0x8d, 0xec, 0x70, 0x40, // IID1988 - 0xd5, 0x32, 0x80, 0xbc, 0x07, 0x6b, 0xbe, 0x16, 0xaa, 0x40, // IID1989 - 0xd5, 0x33, 0x80, 0xbc, 0x88, 0x88, 0x44, 0x2d, 0xa7, 0x40, // IID1990 - 0xd5, 0x33, 0x80, 0xbc, 0x91, 0x5c, 0xdb, 0x07, 0xae, 0x40, // IID1991 - 0xd5, 0x33, 0x80, 0xbc, 0xda, 0x60, 0x5f, 0xf8, 0xab, 0x40, // IID1992 - 0xd5, 0x33, 0x80, 0xbc, 0xe3, 0x20, 0x98, 0xab, 0x6c, 0x40, // IID1993 - 0xd5, 0x33, 0x80, 0xbc, 0xec, 0x06, 0x49, 0x86, 0x89, 0x40, // IID1994 - 0xd5, 0x33, 0x80, 0xbc, 0x35, 0x2a, 0x66, 0x3f, 0x58, 0x40, // IID1995 - 0xd5, 0x11, 0x80, 0xbe, 0x55, 0x73, 0x2c, 0x57, 0x40, // IID1996 - 0xd5, 0x11, 0x80, 0xbc, 0x0f, 0x18, 0xb2, 0x6a, 0x5a, 0x40, // IID1997 -#endif // _LP64 - 0x66, 0x81, 0xb9, 0x91, 0x7e, 0x44, 0xf1, 0x00, 0x01, // IID1998 - 0x66, 0x81, 0xbc, 0x1a, 0x70, 0xcb, 0xa7, 0x60, 0x00, 0x01, // IID1999 -#ifdef _LP64 - 0x66, 0x81, 0xbb, 0x45, 0x80, 0xfa, 0x33, 0x00, 0x01, // IID2000 - 0x66, 0x43, 0x81, 0xbc, 0xc8, 0xdd, 0x0e, 0x8a, 0x74, 0x00, 0x01, // IID2001 - 0x66, 0x43, 0x81, 0xbc, 0x11, 0xca, 0x0e, 0x83, 0x38, 0x00, 0x01, // IID2002 - 0x66, 0x43, 0x81, 0xbc, 0xda, 0x27, 0x76, 0x26, 0x9c, 0x00, 0x01, // IID2003 - 0x66, 0x43, 0x81, 0xbc, 0x63, 0xe8, 0x8c, 0xb5, 0xe1, 0x00, 0x01, // IID2004 - 0x66, 0x43, 0x81, 0xbc, 0xac, 0x4c, 0x47, 0xc0, 0xf6, 0x00, 0x01, // IID2005 - 0x66, 0x43, 0x81, 0xbc, 0xf5, 0x9d, 0xd8, 0x5a, 0x16, 0x00, 0x01, // IID2006 - 0x66, 0x43, 0x81, 0xbc, 0x3e, 0x24, 0x38, 0x53, 0xd6, 0x00, 0x01, // IID2007 - 0x66, 0x41, 0x81, 0xbf, 0xe1, 0x2c, 0x2d, 0x9e, 0x00, 0x01, // IID2008 - 0x66, 0xd5, 0x30, 0x81, 0xbc, 0xc8, 0x6e, 0xce, 0xae, 0xfd, 0x00, 0x01, // IID2009 - 0x66, 0xd5, 0x30, 0x81, 0xbc, 0xd1, 0xf3, 0x36, 0x77, 0xcf, 0x00, 0x01, // IID2010 - 0x66, 0xd5, 0x30, 0x81, 0xbc, 0xda, 0xe3, 0x59, 0xff, 0xa8, 0x00, 0x01, // IID2011 - 0x66, 0xd5, 0x30, 0x81, 0xbc, 0xe3, 0xbf, 0x04, 0xf2, 0xec, 0x00, 0x01, // IID2012 - 0x66, 0xd5, 0x10, 0x81, 0xbc, 0x24, 0xbb, 0xe4, 0x36, 0x57, 0x00, 0x01, // IID2013 - 0x66, 0xd5, 0x30, 0x81, 0xbc, 0xb5, 0x44, 0x8b, 0x22, 0x42, 0x00, 0x01, // IID2014 - 0x66, 0xd5, 0x30, 0x81, 0xbc, 0x3e, 0xc4, 0x45, 0xd6, 0x2e, 0x00, 0x01, // IID2015 - 0x66, 0xd5, 0x32, 0x81, 0xbc, 0x07, 0xc2, 0x0f, 0xc4, 0x15, 0x00, 0x01, // IID2016 - 0x66, 0xd5, 0x33, 0x81, 0xbc, 0x88, 0x61, 0x94, 0x31, 0x89, 0x00, 0x01, // IID2017 - 0x66, 0xd5, 0x11, 0x81, 0xb9, 0x7c, 0x04, 0x4e, 0x41, 0x00, 0x01, // IID2018 - 0x66, 0xd5, 0x33, 0x81, 0xbc, 0x9a, 0xfb, 0x3a, 0x82, 0x0f, 0x00, 0x01, // IID2019 - 0x66, 0xd5, 0x33, 0x81, 0xbc, 0x63, 0xc3, 0x32, 0x42, 0xa4, 0x00, 0x01, // IID2020 - 0x66, 0xd5, 0x33, 0x81, 0xbc, 0xac, 0x6f, 0x64, 0xce, 0x2e, 0x00, 0x01, // IID2021 - 0x66, 0xd5, 0x33, 0x81, 0xbc, 0xb5, 0xbc, 0x22, 0x7a, 0x53, 0x00, 0x01, // IID2022 - 0x66, 0xd5, 0x33, 0x81, 0xbc, 0x3e, 0x48, 0xa7, 0x24, 0x11, 0x00, 0x01, // IID2023 - 0x66, 0xd5, 0x11, 0x81, 0xbc, 0x0f, 0x61, 0xd7, 0x50, 0x79, 0x00, 0x01, // IID2024 - 0x66, 0x81, 0xbc, 0xd1, 0x3f, 0x38, 0x22, 0xc4, 0x00, 0x04, // IID2025 - 0x66, 0x81, 0xbc, 0x5a, 0xde, 0xb3, 0xdf, 0x92, 0x00, 0x04, // IID2026 - 0x66, 0x42, 0x81, 0xbc, 0x03, 0x0d, 0x6e, 0xab, 0x0b, 0x00, 0x04, // IID2027 - 0x66, 0x43, 0x81, 0xbc, 0x48, 0xb9, 0x74, 0x3f, 0xf7, 0x00, 0x04, // IID2028 - 0x66, 0x43, 0x81, 0xbc, 0xd1, 0xa7, 0x3c, 0x68, 0x48, 0x00, 0x04, // IID2029 - 0x66, 0x43, 0x81, 0xbc, 0x5a, 0x25, 0xe6, 0xe0, 0xab, 0x00, 0x04, // IID2030 - 0x66, 0x43, 0x81, 0xbc, 0xe3, 0x6b, 0x90, 0x7d, 0xe2, 0x00, 0x04, // IID2031 - 0x66, 0x43, 0x81, 0xbc, 0xec, 0x23, 0x83, 0x78, 0x17, 0x00, 0x04, // IID2032 - 0x66, 0x41, 0x81, 0xbd, 0x62, 0x72, 0x4f, 0x7a, 0x00, 0x04, // IID2033 - 0x66, 0x43, 0x81, 0xbc, 0x3e, 0xe0, 0xf0, 0x6e, 0x5f, 0x00, 0x04, // IID2034 - 0x66, 0xd5, 0x21, 0x81, 0xbc, 0x47, 0xff, 0x96, 0xc7, 0x3b, 0x00, 0x04, // IID2035 - 0x66, 0xd5, 0x30, 0x81, 0xbc, 0xc8, 0x78, 0x3b, 0xea, 0xe9, 0x00, 0x04, // IID2036 - 0x66, 0xd5, 0x30, 0x81, 0xbc, 0xd1, 0x9f, 0xa9, 0x4d, 0x32, 0x00, 0x04, // IID2037 - 0x66, 0xd5, 0x30, 0x81, 0xbc, 0x5a, 0x10, 0x8c, 0x03, 0x88, 0x00, 0x04, // IID2038 - 0x66, 0xd5, 0x30, 0x81, 0xbc, 0x63, 0x55, 0x83, 0xd2, 0x71, 0x00, 0x04, // IID2039 - 0x66, 0xd5, 0x30, 0x81, 0xbc, 0x6c, 0x42, 0x50, 0x28, 0x9a, 0x00, 0x04, // IID2040 - 0x66, 0xd5, 0x30, 0x81, 0xbc, 0xf5, 0x2b, 0x03, 0x80, 0xbc, 0x00, 0x04, // IID2041 - 0x66, 0xd5, 0x30, 0x81, 0xbc, 0xfe, 0x9a, 0x7f, 0xbd, 0xeb, 0x00, 0x04, // IID2042 - 0x66, 0xd5, 0x32, 0x81, 0xbc, 0x87, 0x1b, 0x8d, 0x2b, 0x87, 0x00, 0x04, // IID2043 - 0x66, 0xd5, 0x33, 0x81, 0xbc, 0x48, 0x8b, 0x9e, 0x67, 0x5a, 0x00, 0x04, // IID2044 - 0x66, 0xd5, 0x33, 0x81, 0xbc, 0x11, 0x1f, 0x05, 0x38, 0xeb, 0x00, 0x04, // IID2045 - 0x66, 0xd5, 0x33, 0x81, 0xbc, 0xda, 0xe7, 0x3f, 0x6d, 0xc2, 0x00, 0x04, // IID2046 - 0x66, 0xd5, 0x33, 0x81, 0xbc, 0xe3, 0x72, 0xc4, 0xb9, 0x16, 0x00, 0x04, // IID2047 - 0x66, 0xd5, 0x33, 0x81, 0xbc, 0xac, 0xbe, 0xbc, 0xee, 0x3c, 0x00, 0x04, // IID2048 - 0x66, 0xd5, 0x33, 0x81, 0xbc, 0xb5, 0xa4, 0x69, 0x57, 0x68, 0x00, 0x04, // IID2049 - 0x66, 0xd5, 0x33, 0x81, 0xbc, 0xfe, 0x2e, 0x28, 0xa8, 0x21, 0x00, 0x04, // IID2050 - 0x66, 0xd5, 0x11, 0x81, 0xbc, 0x0f, 0xf9, 0xd8, 0xe7, 0x7b, 0x00, 0x04, // IID2051 - 0x66, 0x81, 0xbc, 0xd1, 0x0b, 0x83, 0xed, 0xa8, 0x00, 0x10, // IID2052 - 0x66, 0x81, 0xbc, 0x9a, 0x1a, 0x7b, 0x38, 0x70, 0x00, 0x10, // IID2053 - 0x66, 0x42, 0x81, 0xbc, 0xc3, 0x7b, 0x37, 0xd5, 0xaf, 0x00, 0x10, // IID2054 - 0x66, 0x43, 0x81, 0xbc, 0x08, 0x06, 0x1e, 0xfa, 0x1e, 0x00, 0x10, // IID2055 - 0x66, 0x43, 0x81, 0xbc, 0x11, 0xd7, 0xdc, 0x31, 0x49, 0x00, 0x10, // IID2056 - 0x66, 0x41, 0x81, 0xba, 0x75, 0x3f, 0xc2, 0xb4, 0x00, 0x10, // IID2057 - 0x66, 0x43, 0x81, 0xbc, 0xe3, 0x94, 0x23, 0x47, 0x82, 0x00, 0x10, // IID2058 - 0x66, 0x43, 0x81, 0xbc, 0xec, 0x71, 0xd1, 0x46, 0x1b, 0x00, 0x10, // IID2059 - 0x66, 0x43, 0x81, 0xbc, 0xf5, 0x45, 0xc7, 0x4b, 0xca, 0x00, 0x10, // IID2060 - 0x66, 0x43, 0x81, 0xbc, 0xbe, 0x31, 0x7f, 0x9d, 0xfe, 0x00, 0x10, // IID2061 - 0x66, 0xd5, 0x21, 0x81, 0xbc, 0xc7, 0xc7, 0x55, 0x8a, 0x53, 0x00, 0x10, // IID2062 - 0x66, 0xd5, 0x30, 0x81, 0xbc, 0x08, 0x82, 0xd6, 0xff, 0x41, 0x00, 0x10, // IID2063 - 0x66, 0xd5, 0x10, 0x81, 0xb9, 0xf6, 0x22, 0x6c, 0x06, 0x00, 0x10, // IID2064 - 0x66, 0xd5, 0x30, 0x81, 0xbc, 0x9a, 0x2a, 0x27, 0x58, 0x8b, 0x00, 0x10, // IID2065 - 0x66, 0xd5, 0x10, 0x81, 0xbb, 0x7f, 0x74, 0x79, 0x92, 0x00, 0x10, // IID2066 - 0x66, 0xd5, 0x30, 0x81, 0xbc, 0x6c, 0x7b, 0xa9, 0x98, 0x31, 0x00, 0x10, // IID2067 - 0x66, 0xd5, 0x30, 0x81, 0xbc, 0x75, 0x96, 0xb6, 0xdd, 0x76, 0x00, 0x10, // IID2068 - 0x66, 0xd5, 0x30, 0x81, 0xbc, 0x3e, 0x05, 0xdc, 0xa6, 0xc1, 0x00, 0x10, // IID2069 - 0x66, 0xd5, 0x32, 0x81, 0xbc, 0x47, 0x03, 0x8c, 0x6a, 0xcd, 0x00, 0x10, // IID2070 - 0x66, 0xd5, 0x33, 0x81, 0xbc, 0x88, 0xac, 0x91, 0x3e, 0xc5, 0x00, 0x10, // IID2071 - 0x66, 0xd5, 0x11, 0x81, 0xb9, 0xe4, 0x32, 0x92, 0xf4, 0x00, 0x10, // IID2072 - 0x66, 0xd5, 0x33, 0x81, 0xbc, 0x9a, 0x43, 0x47, 0x83, 0xe5, 0x00, 0x10, // IID2073 - 0x66, 0xd5, 0x11, 0x81, 0xbb, 0xb2, 0x94, 0x51, 0x5c, 0x00, 0x10, // IID2074 - 0x66, 0xd5, 0x33, 0x81, 0xbc, 0xac, 0xd8, 0x3f, 0x69, 0x5f, 0x00, 0x10, // IID2075 - 0x66, 0xd5, 0x33, 0x81, 0xbc, 0xf5, 0x37, 0x35, 0xfd, 0x0c, 0x00, 0x10, // IID2076 - 0x66, 0xd5, 0x33, 0x81, 0xbc, 0x7e, 0x7d, 0xf7, 0x47, 0x2c, 0x00, 0x10, // IID2077 - 0x66, 0xd5, 0x11, 0x81, 0xbc, 0x4f, 0x9d, 0x70, 0xf5, 0xde, 0x00, 0x10, // IID2078 - 0x66, 0x81, 0xb9, 0x78, 0x1d, 0xbc, 0xf8, 0x00, 0x40, // IID2079 - 0x66, 0x81, 0xbc, 0x5a, 0x97, 0x7a, 0x29, 0xbd, 0x00, 0x40, // IID2080 - 0x66, 0x42, 0x81, 0xbc, 0x03, 0xb0, 0xbd, 0x1b, 0x5b, 0x00, 0x40, // IID2081 - 0x66, 0x41, 0x81, 0xb8, 0x61, 0x63, 0x2c, 0x0a, 0x00, 0x40, // IID2082 - 0x66, 0x43, 0x81, 0xbc, 0xd1, 0x5c, 0xfc, 0xd4, 0x62, 0x00, 0x40, // IID2083 - 0x66, 0x43, 0x81, 0xbc, 0x9a, 0x06, 0xf1, 0x93, 0xcd, 0x00, 0x40, // IID2084 - 0x66, 0x41, 0x81, 0xbb, 0x9f, 0x06, 0x56, 0x0e, 0x00, 0x40, // IID2085 - 0x66, 0x43, 0x81, 0xbc, 0xac, 0x61, 0xf6, 0x81, 0x1c, 0x00, 0x40, // IID2086 - 0x66, 0x43, 0x81, 0xbc, 0x35, 0x0a, 0xdc, 0x42, 0x0a, 0x00, 0x40, // IID2087 - 0x66, 0x43, 0x81, 0xbc, 0xfe, 0xdd, 0x2d, 0xb1, 0x4e, 0x00, 0x40, // IID2088 - 0x66, 0xd5, 0x21, 0x81, 0xbc, 0x87, 0x84, 0x63, 0x40, 0xd4, 0x00, 0x40, // IID2089 - 0x66, 0xd5, 0x30, 0x81, 0xbc, 0x88, 0x70, 0x01, 0x16, 0xb6, 0x00, 0x40, // IID2090 - 0x66, 0xd5, 0x10, 0x81, 0xb9, 0x91, 0x8b, 0x3e, 0x0a, 0x00, 0x40, // IID2091 - 0x66, 0xd5, 0x10, 0x81, 0xba, 0xef, 0x03, 0x27, 0x95, 0x00, 0x40, // IID2092 - 0x66, 0xd5, 0x30, 0x81, 0xbc, 0xe3, 0x18, 0x7a, 0x8d, 0xb5, 0x00, 0x40, // IID2093 - 0x66, 0xd5, 0x30, 0x81, 0xbc, 0xec, 0xea, 0x88, 0xca, 0x48, 0x00, 0x40, // IID2094 - 0x66, 0xd5, 0x30, 0x81, 0xbc, 0xf5, 0x42, 0x42, 0x50, 0x33, 0x00, 0x40, // IID2095 - 0x66, 0xd5, 0x30, 0x81, 0xbc, 0x7e, 0x2b, 0x66, 0xbc, 0x4b, 0x00, 0x40, // IID2096 - 0x66, 0xd5, 0x32, 0x81, 0xbc, 0x87, 0x23, 0x8a, 0xfa, 0x11, 0x00, 0x40, // IID2097 - 0x66, 0xd5, 0x33, 0x81, 0xbc, 0x88, 0xf2, 0xa6, 0x52, 0x20, 0x00, 0x40, // IID2098 - 0x66, 0xd5, 0x33, 0x81, 0xbc, 0xd1, 0x8e, 0x50, 0xc0, 0xca, 0x00, 0x40, // IID2099 - 0x66, 0xd5, 0x33, 0x81, 0xbc, 0x1a, 0x60, 0xf1, 0xbf, 0x54, 0x00, 0x40, // IID2100 - 0x66, 0xd5, 0x33, 0x81, 0xbc, 0xe3, 0x3a, 0x32, 0x93, 0x09, 0x00, 0x40, // IID2101 - 0x66, 0xd5, 0x33, 0x81, 0xbc, 0xec, 0xa2, 0x6a, 0xb0, 0xee, 0x00, 0x40, // IID2102 - 0x66, 0xd5, 0x11, 0x81, 0xbd, 0x41, 0x30, 0x3b, 0x51, 0x00, 0x40, // IID2103 - 0x66, 0xd5, 0x33, 0x81, 0xbc, 0x3e, 0x3a, 0xac, 0x73, 0x76, 0x00, 0x40, // IID2104 - 0x66, 0xd5, 0x11, 0x81, 0xbf, 0x6b, 0x53, 0x57, 0xdc, 0x00, 0x40, // IID2105 -#endif // _LP64 - 0x83, 0xbc, 0xd1, 0xb5, 0x5a, 0x9b, 0xfa, 0x01, // IID2106 - 0x83, 0xbc, 0xda, 0x95, 0x82, 0x4c, 0xf2, 0x01, // IID2107 -#ifdef _LP64 - 0x42, 0x83, 0xbc, 0x83, 0x36, 0x67, 0x7c, 0x4f, 0x01, // IID2108 - 0x43, 0x83, 0xbc, 0x48, 0x8f, 0xbf, 0x73, 0x70, 0x01, // IID2109 - 0x43, 0x83, 0xbc, 0x51, 0x27, 0xfc, 0xdd, 0xec, 0x01, // IID2110 - 0x43, 0x83, 0xbc, 0x1a, 0x47, 0xb4, 0xe0, 0x55, 0x01, // IID2111 - 0x43, 0x83, 0xbc, 0x63, 0xe8, 0xb4, 0xa5, 0xf3, 0x01, // IID2112 - 0x41, 0x83, 0xbc, 0x24, 0xa3, 0xef, 0xf7, 0x93, 0x01, // IID2113 - 0x41, 0x83, 0xbd, 0x17, 0xf0, 0x31, 0xb4, 0x01, // IID2114 - 0x43, 0x83, 0xbc, 0xbe, 0x8d, 0xc3, 0x39, 0x62, 0x01, // IID2115 - 0xd5, 0x21, 0x83, 0xbc, 0xc7, 0x09, 0x3b, 0x15, 0xea, 0x01, // IID2116 - 0xd5, 0x30, 0x83, 0xbc, 0x08, 0x9d, 0xd1, 0x50, 0x95, 0x01, // IID2117 - 0xd5, 0x30, 0x83, 0xbc, 0x51, 0xa7, 0x97, 0x42, 0x74, 0x01, // IID2118 - 0xd5, 0x30, 0x83, 0xbc, 0x9a, 0xaf, 0xa1, 0x32, 0x38, 0x01, // IID2119 - 0xd5, 0x10, 0x83, 0xbb, 0xbd, 0x4b, 0xb3, 0x4b, 0x01, // IID2120 - 0xd5, 0x30, 0x83, 0xbc, 0xac, 0x45, 0x47, 0x29, 0x15, 0x01, // IID2121 - 0xd5, 0x30, 0x83, 0xbc, 0xb5, 0x52, 0x58, 0x66, 0x32, 0x01, // IID2122 - 0xd5, 0x10, 0x83, 0xbe, 0xdd, 0x6e, 0xed, 0x2e, 0x01, // IID2123 - 0xd5, 0x32, 0x83, 0xbc, 0x47, 0x40, 0xf2, 0x23, 0x9f, 0x01, // IID2124 - 0xd5, 0x11, 0x83, 0xb8, 0x63, 0x97, 0x36, 0xeb, 0x01, // IID2125 - 0xd5, 0x33, 0x83, 0xbc, 0x11, 0xaf, 0x36, 0x05, 0x94, 0x01, // IID2126 - 0xd5, 0x33, 0x83, 0xbc, 0x9a, 0xd4, 0x5e, 0x8a, 0xa1, 0x01, // IID2127 - 0xd5, 0x33, 0x83, 0xbc, 0x23, 0x96, 0x2b, 0x59, 0xf0, 0x01, // IID2128 - 0xd5, 0x33, 0x83, 0xbc, 0x2c, 0xd0, 0xd5, 0x5c, 0xe1, 0x01, // IID2129 - 0xd5, 0x33, 0x83, 0xbc, 0x35, 0xd0, 0x80, 0x57, 0x52, 0x01, // IID2130 - 0xd5, 0x33, 0x83, 0xbc, 0xbe, 0x8b, 0xc3, 0xb6, 0x29, 0x01, // IID2131 - 0xd5, 0x11, 0x83, 0xbf, 0x5c, 0xdf, 0xb3, 0x12, 0x01, // IID2132 - 0x83, 0xbc, 0xd1, 0x8d, 0x63, 0x45, 0x9d, 0x10, // IID2133 - 0x83, 0xbc, 0x5a, 0x1d, 0xcc, 0x1a, 0x9d, 0x10, // IID2134 - 0x83, 0xbb, 0xa4, 0x8b, 0xc9, 0x90, 0x10, // IID2135 - 0x41, 0x83, 0xb8, 0x54, 0x95, 0xfb, 0x24, 0x10, // IID2136 - 0x41, 0x83, 0xb9, 0xba, 0x00, 0x3f, 0x62, 0x10, // IID2137 - 0x43, 0x83, 0xbc, 0xda, 0x87, 0xf2, 0xe6, 0xc7, 0x10, // IID2138 - 0x43, 0x83, 0xbc, 0x23, 0x64, 0x1b, 0x91, 0xff, 0x10, // IID2139 - 0x43, 0x83, 0xbc, 0x2c, 0xc8, 0xfb, 0xa2, 0xd9, 0x10, // IID2140 - 0x43, 0x83, 0xbc, 0xb5, 0x20, 0x4a, 0xfe, 0x07, 0x10, // IID2141 - 0x43, 0x83, 0xbc, 0x7e, 0x1f, 0x6a, 0x70, 0xea, 0x10, // IID2142 - 0xd5, 0x21, 0x83, 0xbc, 0x07, 0xdb, 0x69, 0x22, 0xcf, 0x10, // IID2143 - 0xd5, 0x30, 0x83, 0xbc, 0x08, 0xd5, 0x0f, 0xa1, 0x22, 0x10, // IID2144 - 0xd5, 0x30, 0x83, 0xbc, 0x51, 0x13, 0x4d, 0x6d, 0xc1, 0x10, // IID2145 - 0xd5, 0x10, 0x83, 0xba, 0x1e, 0xbb, 0xb8, 0xa8, 0x10, // IID2146 - 0xd5, 0x30, 0x83, 0xbc, 0x23, 0x94, 0x85, 0x47, 0xc0, 0x10, // IID2147 - 0xd5, 0x30, 0x83, 0xbc, 0x2c, 0xf9, 0xdd, 0x4c, 0x98, 0x10, // IID2148 - 0xd5, 0x10, 0x83, 0xbd, 0x83, 0x44, 0xcc, 0xee, 0x10, // IID2149 - 0xd5, 0x30, 0x83, 0xbc, 0xfe, 0xa0, 0xc5, 0x41, 0x4c, 0x10, // IID2150 - 0xd5, 0x32, 0x83, 0xbc, 0x47, 0xd2, 0xb7, 0x23, 0x9b, 0x10, // IID2151 - 0xd5, 0x33, 0x83, 0xbc, 0xc8, 0xff, 0x7f, 0xb9, 0xe8, 0x10, // IID2152 - 0xd5, 0x33, 0x83, 0xbc, 0x91, 0x4d, 0x12, 0x5e, 0x24, 0x10, // IID2153 - 0xd5, 0x33, 0x83, 0xbc, 0x1a, 0x26, 0x73, 0x0a, 0x26, 0x10, // IID2154 - 0xd5, 0x33, 0x83, 0xbc, 0x23, 0xef, 0xc4, 0x9d, 0x28, 0x10, // IID2155 - 0xd5, 0x11, 0x83, 0xbc, 0x24, 0xe1, 0x8d, 0xa7, 0xb5, 0x10, // IID2156 - 0xd5, 0x33, 0x83, 0xbc, 0x75, 0xfd, 0x7e, 0x62, 0xa4, 0x10, // IID2157 - 0xd5, 0x33, 0x83, 0xbc, 0xfe, 0x49, 0x6c, 0xd5, 0x0f, 0x10, // IID2158 - 0xd5, 0x11, 0x83, 0xbc, 0x4f, 0x93, 0x0e, 0x8c, 0x60, 0x10, // IID2159 - 0x81, 0xbc, 0x91, 0x55, 0x81, 0x30, 0xfd, 0x00, 0x01, 0x00, 0x00, // IID2160 - 0x81, 0xbc, 0x1a, 0x6e, 0xf3, 0xc9, 0x37, 0x00, 0x01, 0x00, 0x00, // IID2161 - 0x42, 0x81, 0xbc, 0x03, 0xbf, 0xe9, 0x4d, 0xb7, 0x00, 0x01, 0x00, 0x00, // IID2162 - 0x43, 0x81, 0xbc, 0x08, 0xa7, 0x2a, 0x3d, 0x11, 0x00, 0x01, 0x00, 0x00, // IID2163 - 0x43, 0x81, 0xbc, 0x51, 0x98, 0x9a, 0x72, 0x71, 0x00, 0x01, 0x00, 0x00, // IID2164 - 0x41, 0x81, 0xba, 0xb4, 0xb6, 0x83, 0x5e, 0x00, 0x01, 0x00, 0x00, // IID2165 - 0x43, 0x81, 0xbc, 0xe3, 0x0a, 0x46, 0x27, 0xa2, 0x00, 0x01, 0x00, 0x00, // IID2166 - 0x43, 0x81, 0xbc, 0x6c, 0xe6, 0xd3, 0x50, 0x51, 0x00, 0x01, 0x00, 0x00, // IID2167 - 0x41, 0x81, 0xbd, 0x32, 0x55, 0xe0, 0x66, 0x00, 0x01, 0x00, 0x00, // IID2168 - 0x43, 0x81, 0xbc, 0xfe, 0x25, 0xa4, 0x16, 0x8a, 0x00, 0x01, 0x00, 0x00, // IID2169 - 0xd5, 0x21, 0x81, 0xbc, 0xc7, 0xb3, 0x5b, 0x08, 0x85, 0x00, 0x01, 0x00, 0x00, // IID2170 - 0xd5, 0x30, 0x81, 0xbc, 0x88, 0x47, 0x54, 0xf0, 0xac, 0x00, 0x01, 0x00, 0x00, // IID2171 - 0xd5, 0x30, 0x81, 0xbc, 0x11, 0x56, 0x6e, 0x84, 0x29, 0x00, 0x01, 0x00, 0x00, // IID2172 - 0xd5, 0x30, 0x81, 0xbc, 0xda, 0x8a, 0x10, 0x48, 0x31, 0x00, 0x01, 0x00, 0x00, // IID2173 - 0xd5, 0x30, 0x81, 0xbc, 0x63, 0x5f, 0x67, 0xed, 0xc6, 0x00, 0x01, 0x00, 0x00, // IID2174 - 0xd5, 0x30, 0x81, 0xbc, 0xac, 0x6a, 0xf9, 0x4a, 0xf2, 0x00, 0x01, 0x00, 0x00, // IID2175 - 0xd5, 0x30, 0x81, 0xbc, 0x35, 0x16, 0xe4, 0x94, 0x9a, 0x00, 0x01, 0x00, 0x00, // IID2176 - 0xd5, 0x30, 0x81, 0xbc, 0xbe, 0xac, 0xab, 0xaf, 0x06, 0x00, 0x01, 0x00, 0x00, // IID2177 - 0xd5, 0x10, 0x81, 0xbf, 0xd9, 0xfb, 0x7f, 0x5f, 0x00, 0x01, 0x00, 0x00, // IID2178 - 0xd5, 0x33, 0x81, 0xbc, 0x88, 0x24, 0x11, 0xcc, 0xaf, 0x00, 0x01, 0x00, 0x00, // IID2179 - 0xd5, 0x33, 0x81, 0xbc, 0xd1, 0x4f, 0xcb, 0x77, 0x57, 0x00, 0x01, 0x00, 0x00, // IID2180 - 0xd5, 0x33, 0x81, 0xbc, 0x9a, 0x7c, 0x99, 0x90, 0x80, 0x00, 0x01, 0x00, 0x00, // IID2181 - 0xd5, 0x33, 0x81, 0xbc, 0x23, 0x05, 0x52, 0x3f, 0x4a, 0x00, 0x01, 0x00, 0x00, // IID2182 - 0xd5, 0x33, 0x81, 0xbc, 0xac, 0x73, 0x49, 0xce, 0x34, 0x00, 0x01, 0x00, 0x00, // IID2183 - 0xd5, 0x11, 0x81, 0xbd, 0x41, 0x5e, 0xcb, 0x38, 0x00, 0x01, 0x00, 0x00, // IID2184 - 0xd5, 0x11, 0x81, 0xbe, 0x7d, 0xb5, 0xd9, 0x2e, 0x00, 0x01, 0x00, 0x00, // IID2185 - 0xd5, 0x11, 0x81, 0xbc, 0xcf, 0x24, 0x4d, 0xe2, 0xb4, 0x00, 0x01, 0x00, 0x00, // IID2186 - 0x81, 0xbc, 0x51, 0x8e, 0xa3, 0xa7, 0x10, 0x00, 0x10, 0x00, 0x00, // IID2187 - 0x81, 0xbc, 0x9a, 0xb2, 0xa7, 0x46, 0x81, 0x00, 0x10, 0x00, 0x00, // IID2188 - 0x42, 0x81, 0xbc, 0x03, 0x9d, 0x37, 0x4e, 0x8f, 0x00, 0x10, 0x00, 0x00, // IID2189 - 0x43, 0x81, 0xbc, 0x48, 0x19, 0xa3, 0x47, 0xb8, 0x00, 0x10, 0x00, 0x00, // IID2190 - 0x41, 0x81, 0xb9, 0x61, 0x26, 0x11, 0x82, 0x00, 0x10, 0x00, 0x00, // IID2191 - 0x41, 0x81, 0xba, 0xa3, 0x2e, 0x09, 0xc1, 0x00, 0x10, 0x00, 0x00, // IID2192 - 0x43, 0x81, 0xbc, 0xe3, 0xdf, 0x7e, 0xc4, 0x48, 0x00, 0x10, 0x00, 0x00, // IID2193 - 0x43, 0x81, 0xbc, 0x2c, 0xea, 0x93, 0xef, 0xca, 0x00, 0x10, 0x00, 0x00, // IID2194 - 0x43, 0x81, 0xbc, 0x75, 0x44, 0x25, 0xba, 0x73, 0x00, 0x10, 0x00, 0x00, // IID2195 - 0x41, 0x81, 0xbe, 0xcb, 0xe1, 0x5a, 0x37, 0x00, 0x10, 0x00, 0x00, // IID2196 - 0x41, 0x81, 0xbf, 0xff, 0xfb, 0xf3, 0x55, 0x00, 0x10, 0x00, 0x00, // IID2197 - 0xd5, 0x30, 0x81, 0xbc, 0x08, 0xb1, 0x33, 0xae, 0x25, 0x00, 0x10, 0x00, 0x00, // IID2198 - 0xd5, 0x30, 0x81, 0xbc, 0x51, 0x18, 0xf8, 0xcd, 0xa5, 0x00, 0x10, 0x00, 0x00, // IID2199 - 0xd5, 0x10, 0x81, 0xba, 0x11, 0x93, 0x60, 0x71, 0x00, 0x10, 0x00, 0x00, // IID2200 - 0xd5, 0x30, 0x81, 0xbc, 0xa3, 0x0a, 0x63, 0x35, 0x46, 0x00, 0x10, 0x00, 0x00, // IID2201 - 0xd5, 0x30, 0x81, 0xbc, 0x6c, 0x28, 0x11, 0xbb, 0x6e, 0x00, 0x10, 0x00, 0x00, // IID2202 - 0xd5, 0x10, 0x81, 0xbd, 0x94, 0x88, 0xf8, 0x37, 0x00, 0x10, 0x00, 0x00, // IID2203 - 0xd5, 0x30, 0x81, 0xbc, 0x7e, 0x93, 0x43, 0x06, 0x63, 0x00, 0x10, 0x00, 0x00, // IID2204 - 0xd5, 0x32, 0x81, 0xbc, 0x07, 0xa2, 0x78, 0x4a, 0xe6, 0x00, 0x10, 0x00, 0x00, // IID2205 - 0xd5, 0x33, 0x81, 0xbc, 0x08, 0x9a, 0xbf, 0xba, 0x9b, 0x00, 0x10, 0x00, 0x00, // IID2206 - 0xd5, 0x33, 0x81, 0xbc, 0x11, 0x3f, 0xf8, 0x9c, 0x18, 0x00, 0x10, 0x00, 0x00, // IID2207 - 0xd5, 0x11, 0x81, 0xba, 0xa9, 0xab, 0x6f, 0xdb, 0x00, 0x10, 0x00, 0x00, // IID2208 - 0xd5, 0x33, 0x81, 0xbc, 0xe3, 0x62, 0xb9, 0xbc, 0x9c, 0x00, 0x10, 0x00, 0x00, // IID2209 - 0xd5, 0x33, 0x81, 0xbc, 0xec, 0x86, 0x3f, 0xe7, 0x76, 0x00, 0x10, 0x00, 0x00, // IID2210 - 0xd5, 0x33, 0x81, 0xbc, 0x75, 0xfc, 0x4e, 0x26, 0x94, 0x00, 0x10, 0x00, 0x00, // IID2211 - 0xd5, 0x33, 0x81, 0xbc, 0xbe, 0x61, 0x6d, 0x80, 0x31, 0x00, 0x10, 0x00, 0x00, // IID2212 - 0xd5, 0x11, 0x81, 0xbf, 0x02, 0x7e, 0x2a, 0xaf, 0x00, 0x10, 0x00, 0x00, // IID2213 - 0x81, 0xbc, 0x51, 0x92, 0xbc, 0x17, 0x43, 0x00, 0x00, 0x01, 0x00, // IID2214 - 0x81, 0xbc, 0x1a, 0x4c, 0xcb, 0x76, 0x33, 0x00, 0x00, 0x01, 0x00, // IID2215 - 0x42, 0x81, 0xbc, 0x43, 0xff, 0xbd, 0x22, 0x95, 0x00, 0x00, 0x01, 0x00, // IID2216 - 0x43, 0x81, 0xbc, 0x08, 0x5d, 0x22, 0xf4, 0xbe, 0x00, 0x00, 0x01, 0x00, // IID2217 - 0x43, 0x81, 0xbc, 0xd1, 0x04, 0x47, 0x80, 0x22, 0x00, 0x00, 0x01, 0x00, // IID2218 - 0x43, 0x81, 0xbc, 0x9a, 0xd1, 0xdf, 0x03, 0x03, 0x00, 0x00, 0x01, 0x00, // IID2219 - 0x43, 0x81, 0xbc, 0xa3, 0xd9, 0xce, 0xaf, 0x27, 0x00, 0x00, 0x01, 0x00, // IID2220 - 0x43, 0x81, 0xbc, 0x2c, 0x2c, 0xfd, 0x9b, 0xe5, 0x00, 0x00, 0x01, 0x00, // IID2221 - 0x43, 0x81, 0xbc, 0x35, 0x0b, 0x55, 0xe4, 0x19, 0x00, 0x00, 0x01, 0x00, // IID2222 - 0x43, 0x81, 0xbc, 0x3e, 0x1c, 0xc3, 0x4a, 0xcf, 0x00, 0x00, 0x01, 0x00, // IID2223 - 0xd5, 0x21, 0x81, 0xbc, 0x87, 0x49, 0x81, 0x26, 0xc5, 0x00, 0x00, 0x01, 0x00, // IID2224 - 0xd5, 0x30, 0x81, 0xbc, 0x88, 0xfc, 0x6a, 0x1a, 0xf0, 0x00, 0x00, 0x01, 0x00, // IID2225 - 0xd5, 0x10, 0x81, 0xb9, 0x6f, 0xaf, 0x26, 0xfe, 0x00, 0x00, 0x01, 0x00, // IID2226 - 0xd5, 0x30, 0x81, 0xbc, 0x9a, 0x9d, 0x69, 0x17, 0xbb, 0x00, 0x00, 0x01, 0x00, // IID2227 - 0xd5, 0x30, 0x81, 0xbc, 0x23, 0x75, 0x89, 0xe3, 0x99, 0x00, 0x00, 0x01, 0x00, // IID2228 - 0xd5, 0x30, 0x81, 0xbc, 0x2c, 0x8c, 0x59, 0x1e, 0x45, 0x00, 0x00, 0x01, 0x00, // IID2229 - 0xd5, 0x10, 0x81, 0xbd, 0x5d, 0xcb, 0x3d, 0xdf, 0x00, 0x00, 0x01, 0x00, // IID2230 - 0xd5, 0x30, 0x81, 0xbc, 0x7e, 0xfb, 0x5f, 0x30, 0x18, 0x00, 0x00, 0x01, 0x00, // IID2231 - 0xd5, 0x32, 0x81, 0xbc, 0x87, 0x42, 0x55, 0x2c, 0x75, 0x00, 0x00, 0x01, 0x00, // IID2232 - 0xd5, 0x33, 0x81, 0xbc, 0x48, 0x52, 0xb2, 0x24, 0xea, 0x00, 0x00, 0x01, 0x00, // IID2233 - 0xd5, 0x11, 0x81, 0xb9, 0x41, 0x67, 0xe6, 0xf9, 0x00, 0x00, 0x01, 0x00, // IID2234 - 0xd5, 0x33, 0x81, 0xbc, 0x9a, 0xd0, 0x6c, 0x51, 0xe1, 0x00, 0x00, 0x01, 0x00, // IID2235 - 0xd5, 0x33, 0x81, 0xbc, 0xe3, 0x16, 0x36, 0xc6, 0xf9, 0x00, 0x00, 0x01, 0x00, // IID2236 - 0xd5, 0x33, 0x81, 0xbc, 0xec, 0x68, 0x7d, 0x02, 0x47, 0x00, 0x00, 0x01, 0x00, // IID2237 - 0xd5, 0x33, 0x81, 0xbc, 0xf5, 0x00, 0x6f, 0x45, 0xc6, 0x00, 0x00, 0x01, 0x00, // IID2238 - 0xd5, 0x11, 0x81, 0xbe, 0x32, 0x13, 0x1a, 0x52, 0x00, 0x00, 0x01, 0x00, // IID2239 - 0xd5, 0x11, 0x81, 0xbc, 0x0f, 0x6f, 0x43, 0xdc, 0x10, 0x00, 0x00, 0x01, 0x00, // IID2240 - 0x81, 0xbc, 0x91, 0xff, 0x5e, 0x56, 0xf4, 0x00, 0x00, 0x10, 0x00, // IID2241 - 0x81, 0xbc, 0x9a, 0x7b, 0xc4, 0x13, 0xa8, 0x00, 0x00, 0x10, 0x00, // IID2242 - 0x81, 0xbb, 0x0e, 0x3d, 0xb7, 0x4a, 0x00, 0x00, 0x10, 0x00, // IID2243 - 0x43, 0x81, 0xbc, 0xc8, 0x59, 0x15, 0x07, 0x8f, 0x00, 0x00, 0x10, 0x00, // IID2244 - 0x41, 0x81, 0xb9, 0x09, 0x50, 0x12, 0xab, 0x00, 0x00, 0x10, 0x00, // IID2245 - 0x43, 0x81, 0xbc, 0x1a, 0x3f, 0x7c, 0x4b, 0xef, 0x00, 0x00, 0x10, 0x00, // IID2246 - 0x43, 0x81, 0xbc, 0xa3, 0x95, 0xcb, 0x90, 0x55, 0x00, 0x00, 0x10, 0x00, // IID2247 - 0x41, 0x81, 0xbc, 0x24, 0xd3, 0x39, 0x49, 0x7f, 0x00, 0x00, 0x10, 0x00, // IID2248 - 0x43, 0x81, 0xbc, 0xb5, 0xdc, 0x6a, 0x0d, 0x31, 0x00, 0x00, 0x10, 0x00, // IID2249 - 0x43, 0x81, 0xbc, 0x7e, 0xca, 0x8a, 0x43, 0x4e, 0x00, 0x00, 0x10, 0x00, // IID2250 - 0x41, 0x81, 0xbf, 0x06, 0xb9, 0x01, 0x83, 0x00, 0x00, 0x10, 0x00, // IID2251 - 0xd5, 0x30, 0x81, 0xbc, 0xc8, 0xa7, 0x67, 0x04, 0x4b, 0x00, 0x00, 0x10, 0x00, // IID2252 - 0xd5, 0x30, 0x81, 0xbc, 0xd1, 0xb4, 0x24, 0xbe, 0xad, 0x00, 0x00, 0x10, 0x00, // IID2253 - 0xd5, 0x30, 0x81, 0xbc, 0xda, 0x46, 0xe8, 0x3b, 0xcb, 0x00, 0x00, 0x10, 0x00, // IID2254 - 0xd5, 0x30, 0x81, 0xbc, 0xe3, 0x5c, 0xf7, 0xd6, 0x7c, 0x00, 0x00, 0x10, 0x00, // IID2255 - 0xd5, 0x30, 0x81, 0xbc, 0x6c, 0x53, 0xe0, 0xa9, 0x06, 0x00, 0x00, 0x10, 0x00, // IID2256 - 0xd5, 0x30, 0x81, 0xbc, 0x75, 0x08, 0xfa, 0x15, 0x29, 0x00, 0x00, 0x10, 0x00, // IID2257 - 0xd5, 0x30, 0x81, 0xbc, 0xbe, 0xf7, 0x21, 0x77, 0xb5, 0x00, 0x00, 0x10, 0x00, // IID2258 - 0xd5, 0x32, 0x81, 0xbc, 0xc7, 0x13, 0x12, 0xde, 0x15, 0x00, 0x00, 0x10, 0x00, // IID2259 - 0xd5, 0x33, 0x81, 0xbc, 0x48, 0xbf, 0xf1, 0x42, 0xbc, 0x00, 0x00, 0x10, 0x00, // IID2260 - 0xd5, 0x33, 0x81, 0xbc, 0x11, 0x47, 0x65, 0x8c, 0x6c, 0x00, 0x00, 0x10, 0x00, // IID2261 - 0xd5, 0x33, 0x81, 0xbc, 0xda, 0xf2, 0x55, 0x50, 0xc4, 0x00, 0x00, 0x10, 0x00, // IID2262 - 0xd5, 0x33, 0x81, 0xbc, 0x63, 0x9d, 0x7a, 0xca, 0x88, 0x00, 0x00, 0x10, 0x00, // IID2263 - 0xd5, 0x33, 0x81, 0xbc, 0x2c, 0x95, 0x20, 0x85, 0xa5, 0x00, 0x00, 0x10, 0x00, // IID2264 - 0xd5, 0x11, 0x81, 0xbd, 0x80, 0x34, 0x52, 0x39, 0x00, 0x00, 0x10, 0x00, // IID2265 - 0xd5, 0x33, 0x81, 0xbc, 0x7e, 0xcd, 0xf8, 0xe2, 0x54, 0x00, 0x00, 0x10, 0x00, // IID2266 - 0xd5, 0x11, 0x81, 0xbc, 0x0f, 0x4c, 0x93, 0x17, 0x21, 0x00, 0x00, 0x10, 0x00, // IID2267 - 0x81, 0xbc, 0xd1, 0xd8, 0x2d, 0x78, 0xb6, 0x00, 0x00, 0x00, 0x01, // IID2268 - 0x81, 0xba, 0x57, 0x11, 0x78, 0x2b, 0x00, 0x00, 0x00, 0x01, // IID2269 - 0x42, 0x81, 0xbc, 0x43, 0x07, 0x9e, 0x36, 0xff, 0x00, 0x00, 0x00, 0x01, // IID2270 - 0x43, 0x81, 0xbc, 0x08, 0x64, 0xd0, 0x77, 0x0e, 0x00, 0x00, 0x00, 0x01, // IID2271 - 0x43, 0x81, 0xbc, 0xd1, 0x5c, 0xf8, 0xe4, 0x75, 0x00, 0x00, 0x00, 0x01, // IID2272 - 0x43, 0x81, 0xbc, 0x5a, 0x7c, 0x3c, 0x63, 0x23, 0x00, 0x00, 0x00, 0x01, // IID2273 - 0x43, 0x81, 0xbc, 0x23, 0x15, 0x9c, 0xf7, 0xbe, 0x00, 0x00, 0x00, 0x01, // IID2274 - 0x41, 0x81, 0xbc, 0x24, 0xbd, 0xb4, 0xd7, 0x6e, 0x00, 0x00, 0x00, 0x01, // IID2275 - 0x43, 0x81, 0xbc, 0xf5, 0xa4, 0xe2, 0xbc, 0xb5, 0x00, 0x00, 0x00, 0x01, // IID2276 - 0x43, 0x81, 0xbc, 0xfe, 0x41, 0x6e, 0xc7, 0xef, 0x00, 0x00, 0x00, 0x01, // IID2277 - 0xd5, 0x21, 0x81, 0xbc, 0xc7, 0x60, 0x01, 0x90, 0x9b, 0x00, 0x00, 0x00, 0x01, // IID2278 - 0xd5, 0x30, 0x81, 0xbc, 0x48, 0xd4, 0x55, 0xda, 0xd9, 0x00, 0x00, 0x00, 0x01, // IID2279 - 0xd5, 0x30, 0x81, 0xbc, 0x11, 0x47, 0xe5, 0xd3, 0xfb, 0x00, 0x00, 0x00, 0x01, // IID2280 - 0xd5, 0x30, 0x81, 0xbc, 0x5a, 0xd7, 0x1f, 0x86, 0x55, 0x00, 0x00, 0x00, 0x01, // IID2281 - 0xd5, 0x30, 0x81, 0xbc, 0xa3, 0x49, 0xcf, 0x27, 0x8d, 0x00, 0x00, 0x00, 0x01, // IID2282 - 0xd5, 0x30, 0x81, 0xbc, 0x2c, 0xb0, 0xa3, 0x2b, 0x6a, 0x00, 0x00, 0x00, 0x01, // IID2283 - 0xd5, 0x30, 0x81, 0xbc, 0x35, 0xc1, 0x3f, 0x5d, 0x5d, 0x00, 0x00, 0x00, 0x01, // IID2284 - 0xd5, 0x30, 0x81, 0xbc, 0xbe, 0x7c, 0x75, 0xe2, 0xbd, 0x00, 0x00, 0x00, 0x01, // IID2285 - 0xd5, 0x32, 0x81, 0xbc, 0x87, 0x4f, 0x8a, 0xdb, 0x35, 0x00, 0x00, 0x00, 0x01, // IID2286 - 0xd5, 0x11, 0x81, 0xb8, 0xf4, 0x02, 0x0f, 0x4a, 0x00, 0x00, 0x00, 0x01, // IID2287 - 0xd5, 0x33, 0x81, 0xbc, 0x51, 0x2d, 0xba, 0xa9, 0x0e, 0x00, 0x00, 0x00, 0x01, // IID2288 - 0xd5, 0x33, 0x81, 0xbc, 0x5a, 0x64, 0x55, 0xac, 0x09, 0x00, 0x00, 0x00, 0x01, // IID2289 - 0xd5, 0x33, 0x81, 0xbc, 0xe3, 0xc5, 0x3e, 0xa8, 0xdd, 0x00, 0x00, 0x00, 0x01, // IID2290 - 0xd5, 0x11, 0x81, 0xbc, 0x24, 0x78, 0x2b, 0x37, 0x63, 0x00, 0x00, 0x00, 0x01, // IID2291 - 0xd5, 0x33, 0x81, 0xbc, 0xf5, 0xe6, 0xe5, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x01, // IID2292 - 0xd5, 0x11, 0x81, 0xbe, 0x03, 0x41, 0x2a, 0x58, 0x00, 0x00, 0x00, 0x01, // IID2293 - 0xd5, 0x11, 0x81, 0xbc, 0xcf, 0x15, 0x6b, 0x18, 0xd5, 0x00, 0x00, 0x00, 0x01, // IID2294 - 0x81, 0xbc, 0x51, 0x15, 0x1d, 0xe9, 0xef, 0x00, 0x00, 0x00, 0x10, // IID2295 - 0x81, 0xbc, 0xda, 0x53, 0xa0, 0xcc, 0x3e, 0x00, 0x00, 0x00, 0x10, // IID2296 - 0x81, 0xbb, 0x5f, 0x7f, 0x89, 0x3c, 0x00, 0x00, 0x00, 0x10, // IID2297 - 0x43, 0x81, 0xbc, 0x48, 0xaa, 0xd0, 0xa0, 0xd6, 0x00, 0x00, 0x00, 0x10, // IID2298 - 0x43, 0x81, 0xbc, 0x11, 0xf2, 0x6a, 0x16, 0x6f, 0x00, 0x00, 0x00, 0x10, // IID2299 - 0x43, 0x81, 0xbc, 0x9a, 0xee, 0xb5, 0xe7, 0xe3, 0x00, 0x00, 0x00, 0x10, // IID2300 - 0x43, 0x81, 0xbc, 0x63, 0x10, 0xf9, 0x25, 0xa4, 0x00, 0x00, 0x00, 0x10, // IID2301 - 0x43, 0x81, 0xbc, 0xac, 0x7d, 0xce, 0xc6, 0xc4, 0x00, 0x00, 0x00, 0x10, // IID2302 - 0x41, 0x81, 0xbd, 0x7b, 0x0e, 0xa6, 0x0d, 0x00, 0x00, 0x00, 0x10, // IID2303 - 0x43, 0x81, 0xbc, 0x3e, 0x22, 0x90, 0xbe, 0x32, 0x00, 0x00, 0x00, 0x10, // IID2304 - 0xd5, 0x21, 0x81, 0xbc, 0x87, 0x36, 0x05, 0xf1, 0x09, 0x00, 0x00, 0x00, 0x10, // IID2305 - 0xd5, 0x30, 0x81, 0xbc, 0x88, 0x4f, 0xbc, 0x40, 0xd6, 0x00, 0x00, 0x00, 0x10, // IID2306 - 0xd5, 0x30, 0x81, 0xbc, 0x11, 0xc9, 0x47, 0xdd, 0x8d, 0x00, 0x00, 0x00, 0x10, // IID2307 - 0xd5, 0x30, 0x81, 0xbc, 0xda, 0x20, 0x05, 0x31, 0xc0, 0x00, 0x00, 0x00, 0x10, // IID2308 - 0xd5, 0x10, 0x81, 0xbb, 0x9b, 0x44, 0x48, 0x24, 0x00, 0x00, 0x00, 0x10, // IID2309 - 0xd5, 0x30, 0x81, 0xbc, 0x2c, 0x10, 0x60, 0x20, 0xac, 0x00, 0x00, 0x00, 0x10, // IID2310 - 0xd5, 0x10, 0x81, 0xbd, 0x32, 0x1d, 0xa3, 0xca, 0x00, 0x00, 0x00, 0x10, // IID2311 - 0xd5, 0x30, 0x81, 0xbc, 0xbe, 0xee, 0x92, 0xdf, 0x0f, 0x00, 0x00, 0x00, 0x10, // IID2312 - 0xd5, 0x32, 0x81, 0xbc, 0x07, 0x82, 0xdb, 0xe8, 0x57, 0x00, 0x00, 0x00, 0x10, // IID2313 - 0xd5, 0x33, 0x81, 0xbc, 0xc8, 0xab, 0x3c, 0xba, 0xb3, 0x00, 0x00, 0x00, 0x10, // IID2314 - 0xd5, 0x33, 0x81, 0xbc, 0x91, 0x07, 0x21, 0x4a, 0xfa, 0x00, 0x00, 0x00, 0x10, // IID2315 - 0xd5, 0x33, 0x81, 0xbc, 0x1a, 0xb9, 0x21, 0x47, 0x84, 0x00, 0x00, 0x00, 0x10, // IID2316 - 0xd5, 0x33, 0x81, 0xbc, 0x23, 0xb7, 0x26, 0xc2, 0x5a, 0x00, 0x00, 0x00, 0x10, // IID2317 - 0xd5, 0x33, 0x81, 0xbc, 0x6c, 0x23, 0xd6, 0xe5, 0x21, 0x00, 0x00, 0x00, 0x10, // IID2318 - 0xd5, 0x33, 0x81, 0xbc, 0xf5, 0x8b, 0x60, 0xf6, 0xcc, 0x00, 0x00, 0x00, 0x10, // IID2319 - 0xd5, 0x33, 0x81, 0xbc, 0x3e, 0xdc, 0xbf, 0x28, 0x5b, 0x00, 0x00, 0x00, 0x10, // IID2320 - 0xd5, 0x11, 0x81, 0xbf, 0xa4, 0xd9, 0xc9, 0x99, 0x00, 0x00, 0x00, 0x10, // IID2321 -#endif // _LP64 - 0xd1, 0xb9, 0xb0, 0x4c, 0x13, 0x8a, // IID2322 - 0xd1, 0xbc, 0x5a, 0xfd, 0x45, 0x2a, 0xcc, // IID2323 -#ifdef _LP64 - 0x42, 0xd1, 0xbc, 0x43, 0xd7, 0xc6, 0x44, 0x86, // IID2324 - 0x43, 0xd1, 0xbc, 0x88, 0xeb, 0xa2, 0xb3, 0x08, // IID2325 - 0x43, 0xd1, 0xbc, 0xd1, 0xaa, 0x82, 0x76, 0x9a, // IID2326 - 0x43, 0xd1, 0xbc, 0x5a, 0x4b, 0x15, 0xd5, 0x8a, // IID2327 - 0x43, 0xd1, 0xbc, 0x23, 0xb1, 0xbf, 0x47, 0x36, // IID2328 - 0x43, 0xd1, 0xbc, 0xac, 0xbb, 0xdb, 0x8d, 0x89, // IID2329 - 0x43, 0xd1, 0xbc, 0x35, 0xd8, 0x88, 0x11, 0x44, // IID2330 - 0x43, 0xd1, 0xbc, 0xfe, 0x09, 0x9a, 0xce, 0x7c, // IID2331 - 0xd5, 0x21, 0xd1, 0xbc, 0x87, 0xb6, 0x47, 0xf5, 0x10, // IID2332 - 0xd5, 0x30, 0xd1, 0xbc, 0x48, 0xce, 0xea, 0x16, 0x35, // IID2333 - 0xd5, 0x10, 0xd1, 0xb9, 0xfb, 0x69, 0xba, 0x93, // IID2334 - 0xd5, 0x30, 0xd1, 0xbc, 0x5a, 0x09, 0x48, 0x49, 0x35, // IID2335 - 0xd5, 0x30, 0xd1, 0xbc, 0xe3, 0xdd, 0x9a, 0xb0, 0x59, // IID2336 - 0xd5, 0x30, 0xd1, 0xbc, 0xec, 0x8b, 0x90, 0xbf, 0x1e, // IID2337 - 0xd5, 0x30, 0xd1, 0xbc, 0x75, 0x8e, 0x13, 0xd2, 0x9f, // IID2338 - 0xd5, 0x30, 0xd1, 0xbc, 0xfe, 0x23, 0x86, 0x95, 0x81, // IID2339 - 0xd5, 0x32, 0xd1, 0xbc, 0x47, 0x2f, 0x5f, 0xd6, 0x78, // IID2340 - 0xd5, 0x33, 0xd1, 0xbc, 0x88, 0x3a, 0xc2, 0xe1, 0x67, // IID2341 - 0xd5, 0x33, 0xd1, 0xbc, 0x91, 0xe7, 0xff, 0xaf, 0x7b, // IID2342 - 0xd5, 0x33, 0xd1, 0xbc, 0x9a, 0x61, 0xa5, 0xac, 0x73, // IID2343 - 0xd5, 0x33, 0xd1, 0xbc, 0xe3, 0x9b, 0x33, 0xc1, 0x7c, // IID2344 - 0xd5, 0x33, 0xd1, 0xbc, 0x6c, 0x3b, 0x73, 0x49, 0xa9, // IID2345 - 0xd5, 0x33, 0xd1, 0xbc, 0x35, 0x15, 0x78, 0xfe, 0x83, // IID2346 - 0xd5, 0x33, 0xd1, 0xbc, 0xfe, 0xf5, 0x33, 0x49, 0xc6, // IID2347 - 0xd5, 0x11, 0xd1, 0xbc, 0xcf, 0xeb, 0xc6, 0x04, 0x93, // IID2348 - 0xc1, 0xb9, 0xfd, 0x99, 0x89, 0x2a, 0x02, // IID2349 - 0xc1, 0xba, 0x3c, 0x43, 0x3d, 0x4a, 0x02, // IID2350 - 0xc1, 0xbb, 0x48, 0x52, 0x9c, 0x7a, 0x02, // IID2351 - 0x43, 0xc1, 0xbc, 0x08, 0x81, 0x3e, 0x77, 0x8f, 0x02, // IID2352 - 0x43, 0xc1, 0xbc, 0x11, 0x31, 0x0f, 0xf5, 0x1d, 0x02, // IID2353 - 0x43, 0xc1, 0xbc, 0x1a, 0x1f, 0x78, 0xb5, 0x39, 0x02, // IID2354 - 0x41, 0xc1, 0xbb, 0x92, 0x92, 0xf8, 0x9c, 0x02, // IID2355 - 0x43, 0xc1, 0xbc, 0xec, 0x02, 0xe1, 0x5b, 0x9a, 0x02, // IID2356 - 0x43, 0xc1, 0xbc, 0xb5, 0x1c, 0xfa, 0x9f, 0x1e, 0x02, // IID2357 - 0x43, 0xc1, 0xbc, 0x7e, 0x1c, 0x45, 0xce, 0xbd, 0x02, // IID2358 - 0xd5, 0x21, 0xc1, 0xbc, 0x07, 0x89, 0xf5, 0x23, 0x99, 0x02, // IID2359 - 0xd5, 0x30, 0xc1, 0xbc, 0x88, 0xce, 0x09, 0xb8, 0xba, 0x02, // IID2360 - 0xd5, 0x30, 0xc1, 0xbc, 0x51, 0xb3, 0x6f, 0x72, 0xe2, 0x02, // IID2361 - 0xd5, 0x30, 0xc1, 0xbc, 0x1a, 0x15, 0xe6, 0x15, 0xda, 0x02, // IID2362 - 0xd5, 0x10, 0xc1, 0xbb, 0x54, 0xbb, 0x25, 0xa1, 0x02, // IID2363 - 0xd5, 0x30, 0xc1, 0xbc, 0x6c, 0x68, 0x6d, 0x69, 0x44, 0x02, // IID2364 - 0xd5, 0x30, 0xc1, 0xbc, 0xf5, 0xf5, 0x7e, 0x31, 0x67, 0x02, // IID2365 - 0xd5, 0x30, 0xc1, 0xbc, 0xfe, 0x7d, 0xd9, 0x54, 0xae, 0x02, // IID2366 - 0xd5, 0x32, 0xc1, 0xbc, 0x07, 0x36, 0x9a, 0x43, 0xf6, 0x02, // IID2367 - 0xd5, 0x11, 0xc1, 0xb8, 0xb0, 0x9d, 0xae, 0x21, 0x02, // IID2368 - 0xd5, 0x33, 0xc1, 0xbc, 0x51, 0xa6, 0xdc, 0xa8, 0xa9, 0x02, // IID2369 - 0xd5, 0x33, 0xc1, 0xbc, 0x9a, 0x0e, 0x54, 0x40, 0x79, 0x02, // IID2370 - 0xd5, 0x33, 0xc1, 0xbc, 0x23, 0xea, 0xbe, 0x12, 0x1a, 0x02, // IID2371 - 0xd5, 0x33, 0xc1, 0xbc, 0xac, 0x78, 0xe8, 0x26, 0xe3, 0x02, // IID2372 - 0xd5, 0x33, 0xc1, 0xbc, 0x35, 0x41, 0x89, 0xce, 0x3b, 0x02, // IID2373 - 0xd5, 0x11, 0xc1, 0xbe, 0xe7, 0xb3, 0x19, 0x52, 0x02, // IID2374 - 0xd5, 0x11, 0xc1, 0xbc, 0xcf, 0x98, 0x34, 0xab, 0xd4, 0x02, // IID2375 - 0xc1, 0xbc, 0xd1, 0xe2, 0xd8, 0xec, 0x49, 0x04, // IID2376 - 0xc1, 0xbc, 0x1a, 0x21, 0x60, 0x23, 0x76, 0x04, // IID2377 - 0x42, 0xc1, 0xbc, 0xc3, 0x53, 0xe1, 0x03, 0xed, 0x04, // IID2378 - 0x43, 0xc1, 0xbc, 0x88, 0x8a, 0xf5, 0xb5, 0xf2, 0x04, // IID2379 - 0x41, 0xc1, 0xb9, 0x17, 0xf8, 0x54, 0x58, 0x04, // IID2380 - 0x43, 0xc1, 0xbc, 0xda, 0xff, 0x29, 0xa9, 0x37, 0x04, // IID2381 - 0x43, 0xc1, 0xbc, 0x23, 0xa2, 0x5f, 0x02, 0x58, 0x04, // IID2382 - 0x41, 0xc1, 0xbc, 0x24, 0x56, 0x9c, 0x68, 0x69, 0x04, // IID2383 - 0x41, 0xc1, 0xbd, 0x56, 0x50, 0x41, 0x56, 0x04, // IID2384 - 0x43, 0xc1, 0xbc, 0xbe, 0x4e, 0x35, 0x7f, 0x1c, 0x04, // IID2385 - 0xd5, 0x21, 0xc1, 0xbc, 0x87, 0x98, 0x76, 0xfd, 0x5e, 0x04, // IID2386 - 0xd5, 0x10, 0xc1, 0xb8, 0x87, 0xce, 0x26, 0xa7, 0x04, // IID2387 - 0xd5, 0x10, 0xc1, 0xb9, 0x6d, 0x23, 0x85, 0xa5, 0x04, // IID2388 - 0xd5, 0x30, 0xc1, 0xbc, 0x5a, 0x66, 0xd5, 0xec, 0x6d, 0x04, // IID2389 - 0xd5, 0x30, 0xc1, 0xbc, 0xa3, 0x06, 0xc4, 0x78, 0x80, 0x04, // IID2390 - 0xd5, 0x30, 0xc1, 0xbc, 0x6c, 0x7e, 0x3e, 0xa7, 0x4a, 0x04, // IID2391 - 0xd5, 0x30, 0xc1, 0xbc, 0xb5, 0x6c, 0x51, 0xc2, 0x1f, 0x04, // IID2392 - 0xd5, 0x10, 0xc1, 0xbe, 0xa9, 0xf2, 0x95, 0x92, 0x04, // IID2393 - 0xd5, 0x32, 0xc1, 0xbc, 0x87, 0xdf, 0x3e, 0xfc, 0xe3, 0x04, // IID2394 - 0xd5, 0x33, 0xc1, 0xbc, 0xc8, 0x82, 0x49, 0xfe, 0x22, 0x04, // IID2395 - 0xd5, 0x33, 0xc1, 0xbc, 0x11, 0x36, 0x20, 0x2a, 0x2b, 0x04, // IID2396 - 0xd5, 0x33, 0xc1, 0xbc, 0x5a, 0xbd, 0xd2, 0x2b, 0x5f, 0x04, // IID2397 - 0xd5, 0x33, 0xc1, 0xbc, 0x63, 0x49, 0xfb, 0x49, 0xe0, 0x04, // IID2398 - 0xd5, 0x11, 0xc1, 0xbc, 0x24, 0x20, 0x65, 0x4e, 0x06, 0x04, // IID2399 - 0xd5, 0x33, 0xc1, 0xbc, 0x35, 0xac, 0x7c, 0x30, 0x0c, 0x04, // IID2400 - 0xd5, 0x33, 0xc1, 0xbc, 0x7e, 0xe1, 0x85, 0x78, 0xee, 0x04, // IID2401 - 0xd5, 0x11, 0xc1, 0xbc, 0x0f, 0x7d, 0xe6, 0x9c, 0x85, 0x04, // IID2402 - 0xc1, 0xbc, 0x11, 0xdd, 0x56, 0x85, 0x58, 0x08, // IID2403 - 0xc1, 0xbc, 0x9a, 0x4f, 0xaa, 0x49, 0xf8, 0x08, // IID2404 - 0x42, 0xc1, 0xbc, 0xc3, 0x9b, 0x9f, 0x3d, 0x7d, 0x08, // IID2405 - 0x43, 0xc1, 0xbc, 0xc8, 0x81, 0xfc, 0x0b, 0x14, 0x08, // IID2406 - 0x43, 0xc1, 0xbc, 0xd1, 0x78, 0xdc, 0xc8, 0x5f, 0x08, // IID2407 - 0x43, 0xc1, 0xbc, 0x5a, 0x8e, 0xec, 0xb9, 0xc0, 0x08, // IID2408 - 0x41, 0xc1, 0xbb, 0xcc, 0x87, 0xb0, 0x93, 0x08, // IID2409 - 0x43, 0xc1, 0xbc, 0x2c, 0xc0, 0xfb, 0xeb, 0xc3, 0x08, // IID2410 - 0x43, 0xc1, 0xbc, 0xf5, 0xa1, 0x28, 0x7f, 0xeb, 0x08, // IID2411 - 0x41, 0xc1, 0xbe, 0x4b, 0x16, 0x82, 0x0f, 0x08, // IID2412 - 0xd5, 0x21, 0xc1, 0xbc, 0x47, 0x16, 0x49, 0x00, 0x31, 0x08, // IID2413 - 0xd5, 0x30, 0xc1, 0xbc, 0xc8, 0xc0, 0xec, 0x9e, 0x53, 0x08, // IID2414 - 0xd5, 0x10, 0xc1, 0xb9, 0x81, 0x20, 0x80, 0x25, 0x08, // IID2415 - 0xd5, 0x30, 0xc1, 0xbc, 0x1a, 0x9b, 0xfb, 0x16, 0x14, 0x08, // IID2416 - 0xd5, 0x10, 0xc1, 0xbb, 0x7f, 0x10, 0x4a, 0x2f, 0x08, // IID2417 - 0xd5, 0x30, 0xc1, 0xbc, 0x2c, 0xa6, 0x02, 0x10, 0x64, 0x08, // IID2418 - 0xd5, 0x10, 0xc1, 0xbd, 0x5a, 0x94, 0xda, 0xda, 0x08, // IID2419 - 0xd5, 0x30, 0xc1, 0xbc, 0x3e, 0xf5, 0x4c, 0x74, 0x35, 0x08, // IID2420 - 0xd5, 0x32, 0xc1, 0xbc, 0x87, 0xc8, 0xdd, 0x34, 0x3c, 0x08, // IID2421 - 0xd5, 0x33, 0xc1, 0xbc, 0x88, 0x21, 0x7a, 0x17, 0x91, 0x08, // IID2422 - 0xd5, 0x33, 0xc1, 0xbc, 0x51, 0x7b, 0x25, 0x11, 0xc4, 0x08, // IID2423 - 0xd5, 0x33, 0xc1, 0xbc, 0x5a, 0x22, 0x8b, 0x7a, 0x2f, 0x08, // IID2424 - 0xd5, 0x33, 0xc1, 0xbc, 0xe3, 0x95, 0x00, 0xf0, 0x2a, 0x08, // IID2425 - 0xd5, 0x33, 0xc1, 0xbc, 0xac, 0x0f, 0x4c, 0x1a, 0xd7, 0x08, // IID2426 - 0xd5, 0x33, 0xc1, 0xbc, 0x35, 0x33, 0x22, 0x1c, 0x50, 0x08, // IID2427 - 0xd5, 0x11, 0xc1, 0xbe, 0xf8, 0x92, 0x0d, 0x8e, 0x08, // IID2428 - 0xd5, 0x11, 0xc1, 0xbf, 0x44, 0xe6, 0xd9, 0x19, 0x08, // IID2429 - 0xc1, 0xb9, 0x54, 0x0a, 0xae, 0x4c, 0x10, // IID2430 - 0xc1, 0xba, 0xcf, 0x00, 0xd5, 0xac, 0x10, // IID2431 - 0x42, 0xc1, 0xbc, 0x83, 0x6e, 0xe7, 0xfd, 0x1e, 0x10, // IID2432 - 0x41, 0xc1, 0xb8, 0x1a, 0xee, 0x7e, 0x46, 0x10, // IID2433 - 0x43, 0xc1, 0xbc, 0x51, 0xd0, 0xcd, 0x6c, 0xb2, 0x10, // IID2434 - 0x43, 0xc1, 0xbc, 0x1a, 0x52, 0xdb, 0xd7, 0xe1, 0x10, // IID2435 - 0x43, 0xc1, 0xbc, 0x63, 0x25, 0x2f, 0x2b, 0x95, 0x10, // IID2436 - 0x41, 0xc1, 0xbc, 0x24, 0xe2, 0x33, 0x16, 0x06, 0x10, // IID2437 - 0x41, 0xc1, 0xbd, 0xf0, 0x9a, 0x23, 0xb2, 0x10, // IID2438 - 0x43, 0xc1, 0xbc, 0xfe, 0xde, 0x23, 0x17, 0xa3, 0x10, // IID2439 - 0xd5, 0x21, 0xc1, 0xbc, 0x87, 0x20, 0x79, 0x84, 0x33, 0x10, // IID2440 - 0xd5, 0x30, 0xc1, 0xbc, 0x88, 0x05, 0x46, 0x00, 0xb7, 0x10, // IID2441 - 0xd5, 0x30, 0xc1, 0xbc, 0x51, 0x34, 0x55, 0xe9, 0x80, 0x10, // IID2442 - 0xd5, 0x30, 0xc1, 0xbc, 0x9a, 0xd9, 0xba, 0x0b, 0x75, 0x10, // IID2443 - 0xd5, 0x10, 0xc1, 0xbb, 0xbb, 0x75, 0xd1, 0x1e, 0x10, // IID2444 - 0xd5, 0x30, 0xc1, 0xbc, 0xec, 0xc6, 0x8f, 0x79, 0x17, 0x10, // IID2445 - 0xd5, 0x10, 0xc1, 0xbd, 0x45, 0x30, 0x44, 0x89, 0x10, // IID2446 - 0xd5, 0x10, 0xc1, 0xbe, 0xc3, 0x8a, 0xbd, 0xe7, 0x10, // IID2447 - 0xd5, 0x32, 0xc1, 0xbc, 0xc7, 0xc6, 0xb7, 0x93, 0x8e, 0x10, // IID2448 - 0xd5, 0x11, 0xc1, 0xb8, 0x50, 0x44, 0x7d, 0xe6, 0x10, // IID2449 - 0xd5, 0x11, 0xc1, 0xb9, 0x1c, 0x2a, 0x44, 0x07, 0x10, // IID2450 - 0xd5, 0x33, 0xc1, 0xbc, 0x1a, 0xbf, 0x1a, 0x54, 0xeb, 0x10, // IID2451 - 0xd5, 0x33, 0xc1, 0xbc, 0xe3, 0x5f, 0xab, 0xac, 0x4b, 0x10, // IID2452 - 0xd5, 0x33, 0xc1, 0xbc, 0xac, 0x88, 0x9a, 0x3a, 0x16, 0x10, // IID2453 - 0xd5, 0x33, 0xc1, 0xbc, 0xb5, 0xcc, 0x86, 0x92, 0x8b, 0x10, // IID2454 - 0xd5, 0x33, 0xc1, 0xbc, 0x7e, 0xba, 0x99, 0xe8, 0x3b, 0x10, // IID2455 - 0xd5, 0x11, 0xc1, 0xbf, 0x1b, 0x94, 0x5f, 0x55, 0x10, // IID2456 -#endif // _LP64 - 0xd1, 0xa1, 0x35, 0xb2, 0x2b, 0x9d, // IID2457 - 0xd1, 0xa4, 0x5a, 0x4c, 0xb4, 0xc7, 0x51, // IID2458 -#ifdef _LP64 - 0xd1, 0xa3, 0xc1, 0xa4, 0xc9, 0xbb, // IID2459 - 0x43, 0xd1, 0xa4, 0x88, 0x4b, 0x29, 0x7d, 0xcb, // IID2460 - 0x43, 0xd1, 0xa4, 0x51, 0xf8, 0xf3, 0x68, 0x9c, // IID2461 - 0x43, 0xd1, 0xa4, 0x5a, 0x68, 0xa9, 0xf4, 0xd0, // IID2462 - 0x41, 0xd1, 0xa3, 0xb9, 0xdd, 0xbd, 0x6a, // IID2463 - 0x43, 0xd1, 0xa4, 0x2c, 0x7c, 0x07, 0xbc, 0x2f, // IID2464 - 0x43, 0xd1, 0xa4, 0xb5, 0x14, 0x4f, 0xb0, 0xf4, // IID2465 - 0x43, 0xd1, 0xa4, 0xbe, 0x29, 0x66, 0xe0, 0xe8, // IID2466 - 0xd5, 0x21, 0xd1, 0xa4, 0xc7, 0x96, 0xd5, 0x4b, 0x61, // IID2467 - 0xd5, 0x10, 0xd1, 0xa0, 0xe9, 0x1a, 0x08, 0x0e, // IID2468 - 0xd5, 0x30, 0xd1, 0xa4, 0x51, 0xd1, 0x70, 0x96, 0x03, // IID2469 - 0xd5, 0x10, 0xd1, 0xa2, 0xd5, 0xf1, 0x93, 0x2c, // IID2470 - 0xd5, 0x30, 0xd1, 0xa4, 0x23, 0x3b, 0xd8, 0xa3, 0xc2, // IID2471 - 0xd5, 0x30, 0xd1, 0xa4, 0xec, 0x46, 0x2c, 0xa7, 0x4b, // IID2472 - 0xd5, 0x30, 0xd1, 0xa4, 0xf5, 0x66, 0x20, 0x82, 0xe3, // IID2473 - 0xd5, 0x30, 0xd1, 0xa4, 0x7e, 0x61, 0x86, 0x6d, 0x13, // IID2474 - 0xd5, 0x32, 0xd1, 0xa4, 0x07, 0x1c, 0xb5, 0xe6, 0xff, // IID2475 - 0xd5, 0x11, 0xd1, 0xa0, 0x7b, 0x00, 0xe1, 0x95, // IID2476 - 0xd5, 0x33, 0xd1, 0xa4, 0x51, 0x28, 0x96, 0xc2, 0x22, // IID2477 - 0xd5, 0x33, 0xd1, 0xa4, 0x9a, 0xc7, 0xdc, 0x93, 0xf4, // IID2478 - 0xd5, 0x33, 0xd1, 0xa4, 0xe3, 0x12, 0x1b, 0x26, 0x64, // IID2479 - 0xd5, 0x11, 0xd1, 0xa4, 0x24, 0x03, 0x41, 0x23, 0x02, // IID2480 - 0xd5, 0x11, 0xd1, 0xa5, 0xa2, 0x7d, 0x2d, 0x67, // IID2481 - 0xd5, 0x33, 0xd1, 0xa4, 0x3e, 0x1a, 0xc7, 0xfe, 0x2f, // IID2482 - 0xd5, 0x11, 0xd1, 0xa4, 0x0f, 0x0d, 0x0a, 0x82, 0x7f, // IID2483 - 0xc1, 0xa4, 0x91, 0x6c, 0x66, 0x90, 0x7b, 0x02, // IID2484 - 0xc1, 0xa4, 0x5a, 0xd3, 0xc5, 0x70, 0xda, 0x02, // IID2485 - 0x42, 0xc1, 0xa4, 0xc3, 0x93, 0xad, 0x05, 0xbd, 0x02, // IID2486 - 0x41, 0xc1, 0xa0, 0x5a, 0xac, 0x54, 0x47, 0x02, // IID2487 - 0x43, 0xc1, 0xa4, 0x51, 0xcb, 0xa4, 0xfc, 0x8f, 0x02, // IID2488 - 0x43, 0xc1, 0xa4, 0xda, 0xfe, 0xc7, 0x29, 0x0d, 0x02, // IID2489 - 0x43, 0xc1, 0xa4, 0x63, 0x36, 0xfe, 0xa8, 0x56, 0x02, // IID2490 - 0x43, 0xc1, 0xa4, 0x6c, 0xe8, 0xd6, 0x0e, 0x7b, 0x02, // IID2491 - 0x43, 0xc1, 0xa4, 0xf5, 0x2c, 0xe1, 0xef, 0x7e, 0x02, // IID2492 - 0x43, 0xc1, 0xa4, 0x3e, 0xcc, 0xc3, 0x20, 0x1d, 0x02, // IID2493 - 0xd5, 0x21, 0xc1, 0xa4, 0xc7, 0x4d, 0x6b, 0xe7, 0xb8, 0x02, // IID2494 - 0xd5, 0x30, 0xc1, 0xa4, 0x48, 0x48, 0x3b, 0x61, 0xf6, 0x02, // IID2495 - 0xd5, 0x30, 0xc1, 0xa4, 0x11, 0x49, 0x25, 0xd4, 0xb6, 0x02, // IID2496 - 0xd5, 0x30, 0xc1, 0xa4, 0x5a, 0x37, 0x28, 0xf7, 0x48, 0x02, // IID2497 - 0xd5, 0x30, 0xc1, 0xa4, 0xa3, 0x48, 0x6c, 0x8a, 0x02, 0x02, // IID2498 - 0xd5, 0x30, 0xc1, 0xa4, 0xec, 0xa8, 0x6e, 0x74, 0x00, 0x02, // IID2499 - 0xd5, 0x30, 0xc1, 0xa4, 0x75, 0x02, 0x78, 0xa7, 0x61, 0x02, // IID2500 - 0xd5, 0x30, 0xc1, 0xa4, 0xbe, 0xb1, 0x09, 0xf3, 0x0f, 0x02, // IID2501 - 0xd5, 0x32, 0xc1, 0xa4, 0x07, 0xc6, 0xfe, 0x59, 0x4a, 0x02, // IID2502 - 0xd5, 0x33, 0xc1, 0xa4, 0x48, 0x21, 0x31, 0x64, 0x80, 0x02, // IID2503 - 0xd5, 0x33, 0xc1, 0xa4, 0x91, 0xea, 0x00, 0x7a, 0x26, 0x02, // IID2504 - 0xd5, 0x33, 0xc1, 0xa4, 0x9a, 0x74, 0x0f, 0x45, 0xb4, 0x02, // IID2505 - 0xd5, 0x33, 0xc1, 0xa4, 0xa3, 0x85, 0x1b, 0x2b, 0x06, 0x02, // IID2506 - 0xd5, 0x33, 0xc1, 0xa4, 0x6c, 0x38, 0x73, 0x45, 0x8f, 0x02, // IID2507 - 0xd5, 0x33, 0xc1, 0xa4, 0x35, 0x7f, 0x93, 0x52, 0x66, 0x02, // IID2508 - 0xd5, 0x33, 0xc1, 0xa4, 0x3e, 0x01, 0xbf, 0x61, 0xf6, 0x02, // IID2509 - 0xd5, 0x11, 0xc1, 0xa4, 0xcf, 0x9e, 0x45, 0x53, 0x76, 0x02, // IID2510 - 0xc1, 0xa4, 0x11, 0x31, 0x54, 0x9c, 0x89, 0x04, // IID2511 - 0xc1, 0xa2, 0x27, 0x22, 0xaf, 0x7f, 0x04, // IID2512 - 0xc1, 0xa3, 0xbd, 0xbf, 0xf0, 0xad, 0x04, // IID2513 - 0x43, 0xc1, 0xa4, 0xc8, 0xc7, 0xbb, 0x48, 0x9f, 0x04, // IID2514 - 0x43, 0xc1, 0xa4, 0x51, 0xc3, 0x41, 0x53, 0x06, 0x04, // IID2515 - 0x43, 0xc1, 0xa4, 0x5a, 0xc2, 0xa0, 0x0c, 0x80, 0x04, // IID2516 - 0x43, 0xc1, 0xa4, 0x63, 0x9d, 0x44, 0x67, 0x22, 0x04, // IID2517 - 0x43, 0xc1, 0xa4, 0xec, 0x42, 0x06, 0x2f, 0x0b, 0x04, // IID2518 - 0x43, 0xc1, 0xa4, 0xb5, 0x1c, 0x91, 0xe2, 0x17, 0x04, // IID2519 - 0x41, 0xc1, 0xa6, 0xa1, 0x08, 0xc9, 0xc0, 0x04, // IID2520 - 0xd5, 0x21, 0xc1, 0xa4, 0x87, 0x0f, 0xa5, 0x66, 0xcb, 0x04, // IID2521 - 0xd5, 0x30, 0xc1, 0xa4, 0x08, 0x33, 0xc0, 0x28, 0x95, 0x04, // IID2522 - 0xd5, 0x30, 0xc1, 0xa4, 0x51, 0x02, 0xb1, 0x66, 0x7f, 0x04, // IID2523 - 0xd5, 0x10, 0xc1, 0xa2, 0x23, 0x19, 0xbd, 0x35, 0x04, // IID2524 - 0xd5, 0x30, 0xc1, 0xa4, 0x23, 0xf8, 0x24, 0xdd, 0xb9, 0x04, // IID2525 - 0xd5, 0x30, 0xc1, 0xa4, 0x6c, 0xbe, 0x44, 0xdb, 0x79, 0x04, // IID2526 - 0xd5, 0x30, 0xc1, 0xa4, 0xb5, 0xe5, 0x74, 0x8e, 0x27, 0x04, // IID2527 - 0xd5, 0x30, 0xc1, 0xa4, 0xfe, 0x5a, 0x29, 0x56, 0x41, 0x04, // IID2528 - 0xd5, 0x32, 0xc1, 0xa4, 0xc7, 0x21, 0xf9, 0xa8, 0x28, 0x04, // IID2529 - 0xd5, 0x33, 0xc1, 0xa4, 0xc8, 0x27, 0xe9, 0x71, 0x75, 0x04, // IID2530 - 0xd5, 0x33, 0xc1, 0xa4, 0x91, 0xdb, 0x85, 0xde, 0x56, 0x04, // IID2531 - 0xd5, 0x33, 0xc1, 0xa4, 0x5a, 0xcc, 0xcb, 0xfd, 0xe5, 0x04, // IID2532 - 0xd5, 0x11, 0xc1, 0xa3, 0x71, 0x7c, 0x35, 0xd3, 0x04, // IID2533 - 0xd5, 0x11, 0xc1, 0xa4, 0x24, 0x58, 0x11, 0x06, 0x38, 0x04, // IID2534 - 0xd5, 0x33, 0xc1, 0xa4, 0xf5, 0xd5, 0xe7, 0x2f, 0x90, 0x04, // IID2535 - 0xd5, 0x11, 0xc1, 0xa6, 0x4c, 0xfc, 0x18, 0xe8, 0x04, // IID2536 - 0xd5, 0x11, 0xc1, 0xa4, 0x0f, 0x71, 0xeb, 0x27, 0x2c, 0x04, // IID2537 - 0xc1, 0xa4, 0x91, 0xd4, 0xee, 0x72, 0x8e, 0x08, // IID2538 - 0xc1, 0xa4, 0x9a, 0x57, 0xaa, 0x0e, 0x2a, 0x08, // IID2539 - 0x42, 0xc1, 0xa4, 0xc3, 0x5e, 0xad, 0x03, 0xec, 0x08, // IID2540 - 0x43, 0xc1, 0xa4, 0x88, 0xf8, 0xc0, 0xa1, 0x01, 0x08, // IID2541 - 0x43, 0xc1, 0xa4, 0x91, 0x27, 0x28, 0x59, 0x01, 0x08, // IID2542 - 0x43, 0xc1, 0xa4, 0x1a, 0x79, 0xe2, 0x8a, 0x05, 0x08, // IID2543 - 0x43, 0xc1, 0xa4, 0xe3, 0x14, 0xa8, 0xf6, 0x31, 0x08, // IID2544 - 0x43, 0xc1, 0xa4, 0x6c, 0x63, 0xdd, 0x34, 0xf0, 0x08, // IID2545 - 0x43, 0xc1, 0xa4, 0xf5, 0x21, 0x13, 0xd9, 0x12, 0x08, // IID2546 - 0x43, 0xc1, 0xa4, 0xbe, 0x1b, 0x01, 0x86, 0xba, 0x08, // IID2547 - 0xd5, 0x21, 0xc1, 0xa4, 0x07, 0x01, 0x5d, 0x3d, 0x0a, 0x08, // IID2548 - 0xd5, 0x30, 0xc1, 0xa4, 0x08, 0x10, 0xe4, 0xbe, 0xcd, 0x08, // IID2549 - 0xd5, 0x10, 0xc1, 0xa1, 0x57, 0xb3, 0x94, 0x4b, 0x08, // IID2550 - 0xd5, 0x30, 0xc1, 0xa4, 0x1a, 0x6e, 0xc9, 0xae, 0x52, 0x08, // IID2551 - 0xd5, 0x10, 0xc1, 0xa3, 0x89, 0xb1, 0x36, 0x27, 0x08, // IID2552 - 0xd5, 0x30, 0xc1, 0xa4, 0x2c, 0xe4, 0x7e, 0xf0, 0xa4, 0x08, // IID2553 - 0xd5, 0x30, 0xc1, 0xa4, 0x75, 0x31, 0xfa, 0x1c, 0x9c, 0x08, // IID2554 - 0xd5, 0x30, 0xc1, 0xa4, 0xfe, 0xda, 0xd4, 0x1d, 0xbd, 0x08, // IID2555 - 0xd5, 0x10, 0xc1, 0xa7, 0xc5, 0xf4, 0xa4, 0x62, 0x08, // IID2556 - 0xd5, 0x11, 0xc1, 0xa0, 0xe1, 0x2e, 0xc6, 0x2c, 0x08, // IID2557 - 0xd5, 0x33, 0xc1, 0xa4, 0x51, 0xc3, 0xc7, 0x7c, 0xc9, 0x08, // IID2558 - 0xd5, 0x33, 0xc1, 0xa4, 0x5a, 0x96, 0x84, 0xc2, 0x85, 0x08, // IID2559 - 0xd5, 0x11, 0xc1, 0xa3, 0x2b, 0x22, 0x74, 0xe4, 0x08, // IID2560 - 0xd5, 0x33, 0xc1, 0xa4, 0xac, 0x3b, 0xa5, 0x3d, 0x2c, 0x08, // IID2561 - 0xd5, 0x33, 0xc1, 0xa4, 0x75, 0x4d, 0x00, 0x31, 0xe8, 0x08, // IID2562 - 0xd5, 0x33, 0xc1, 0xa4, 0xbe, 0x93, 0x9d, 0xe5, 0x45, 0x08, // IID2563 - 0xd5, 0x11, 0xc1, 0xa4, 0x8f, 0xd7, 0x3f, 0xa5, 0x2c, 0x08, // IID2564 - 0xc1, 0xa4, 0x51, 0x50, 0x97, 0x31, 0x85, 0x10, // IID2565 - 0xc1, 0xa4, 0x9a, 0xd7, 0x8f, 0xfa, 0x1b, 0x10, // IID2566 - 0xc1, 0xa3, 0xf2, 0xba, 0x82, 0xa2, 0x10, // IID2567 - 0x43, 0xc1, 0xa4, 0x08, 0x2b, 0xa1, 0x10, 0x3f, 0x10, // IID2568 - 0x43, 0xc1, 0xa4, 0x91, 0xbc, 0xcd, 0x91, 0x6f, 0x10, // IID2569 - 0x43, 0xc1, 0xa4, 0x1a, 0x54, 0xfa, 0xd4, 0x81, 0x10, // IID2570 - 0x41, 0xc1, 0xa3, 0x3a, 0x1b, 0x44, 0x2a, 0x10, // IID2571 - 0x43, 0xc1, 0xa4, 0xec, 0x47, 0xe4, 0x8c, 0xa4, 0x10, // IID2572 - 0x43, 0xc1, 0xa4, 0x35, 0x30, 0xee, 0x08, 0x0e, 0x10, // IID2573 - 0x43, 0xc1, 0xa4, 0x3e, 0xd4, 0x39, 0xa4, 0x51, 0x10, // IID2574 - 0xd5, 0x21, 0xc1, 0xa4, 0xc7, 0xc3, 0x5a, 0xa1, 0x4f, 0x10, // IID2575 - 0xd5, 0x10, 0xc1, 0xa0, 0xc3, 0xd9, 0x3d, 0x44, 0x10, // IID2576 - 0xd5, 0x30, 0xc1, 0xa4, 0xd1, 0x8c, 0x2f, 0x28, 0x13, 0x10, // IID2577 - 0xd5, 0x30, 0xc1, 0xa4, 0xda, 0x0e, 0x86, 0x4c, 0x92, 0x10, // IID2578 - 0xd5, 0x10, 0xc1, 0xa3, 0x75, 0x8f, 0x94, 0x86, 0x10, // IID2579 - 0xd5, 0x30, 0xc1, 0xa4, 0x6c, 0x9a, 0xda, 0x29, 0x6e, 0x10, // IID2580 - 0xd5, 0x30, 0xc1, 0xa4, 0x35, 0x57, 0xc1, 0x85, 0x0e, 0x10, // IID2581 - 0xd5, 0x30, 0xc1, 0xa4, 0x7e, 0x2c, 0x1d, 0xa0, 0x4e, 0x10, // IID2582 - 0xd5, 0x32, 0xc1, 0xa4, 0xc7, 0x71, 0xbf, 0x37, 0x4e, 0x10, // IID2583 - 0xd5, 0x33, 0xc1, 0xa4, 0x08, 0x38, 0x5f, 0xad, 0xae, 0x10, // IID2584 - 0xd5, 0x33, 0xc1, 0xa4, 0x51, 0x87, 0x15, 0xc9, 0xfc, 0x10, // IID2585 - 0xd5, 0x33, 0xc1, 0xa4, 0xda, 0xe6, 0xc0, 0x6e, 0x50, 0x10, // IID2586 - 0xd5, 0x33, 0xc1, 0xa4, 0x63, 0xb6, 0xfc, 0x33, 0x10, 0x10, // IID2587 - 0xd5, 0x33, 0xc1, 0xa4, 0x2c, 0x2e, 0x8a, 0x83, 0x0a, 0x10, // IID2588 - 0xd5, 0x33, 0xc1, 0xa4, 0x75, 0xd3, 0x77, 0xc6, 0x55, 0x10, // IID2589 - 0xd5, 0x33, 0xc1, 0xa4, 0x3e, 0xbc, 0xd3, 0x9f, 0xc4, 0x10, // IID2590 - 0xd5, 0x11, 0xc1, 0xa7, 0x8f, 0x0d, 0x19, 0xeb, 0x10, // IID2591 -#endif // _LP64 - 0x83, 0x99, 0x98, 0xe8, 0x84, 0x95, 0x01, // IID2592 - 0x83, 0x9c, 0x1a, 0xd3, 0x8b, 0x42, 0xb8, 0x01, // IID2593 -#ifdef _LP64 - 0x42, 0x83, 0x9c, 0xc3, 0x78, 0x57, 0xca, 0xc8, 0x01, // IID2594 - 0x43, 0x83, 0x9c, 0x48, 0xed, 0x87, 0x8d, 0x10, 0x01, // IID2595 - 0x43, 0x83, 0x9c, 0x91, 0x8f, 0xf8, 0x6e, 0x1f, 0x01, // IID2596 - 0x43, 0x83, 0x9c, 0x9a, 0x74, 0xa0, 0x23, 0xc3, 0x01, // IID2597 - 0x43, 0x83, 0x9c, 0x63, 0x53, 0x9f, 0xb2, 0xff, 0x01, // IID2598 - 0x43, 0x83, 0x9c, 0xac, 0x99, 0x3b, 0x41, 0x33, 0x01, // IID2599 - 0x43, 0x83, 0x9c, 0xf5, 0x12, 0x7d, 0xa0, 0x9c, 0x01, // IID2600 - 0x43, 0x83, 0x9c, 0x3e, 0x6a, 0xe7, 0x99, 0xe7, 0x01, // IID2601 - 0x41, 0x83, 0x9f, 0x03, 0x4f, 0xad, 0x32, 0x01, // IID2602 - 0xd5, 0x30, 0x83, 0x9c, 0x48, 0x87, 0x6e, 0xff, 0x59, 0x01, // IID2603 - 0xd5, 0x30, 0x83, 0x9c, 0x11, 0xad, 0x4a, 0x27, 0xb0, 0x01, // IID2604 - 0xd5, 0x10, 0x83, 0x9a, 0x91, 0x00, 0xe5, 0xa1, 0x01, // IID2605 - 0xd5, 0x10, 0x83, 0x9b, 0x64, 0xf9, 0x31, 0x92, 0x01, // IID2606 - 0xd5, 0x30, 0x83, 0x9c, 0xac, 0x4f, 0xbb, 0x05, 0xfe, 0x01, // IID2607 - 0xd5, 0x30, 0x83, 0x9c, 0xb5, 0x9d, 0x1d, 0x45, 0x74, 0x01, // IID2608 - 0xd5, 0x30, 0x83, 0x9c, 0xfe, 0xd6, 0x78, 0xe1, 0xca, 0x01, // IID2609 - 0xd5, 0x32, 0x83, 0x9c, 0x07, 0x43, 0xee, 0xad, 0x25, 0x01, // IID2610 - 0xd5, 0x33, 0x83, 0x9c, 0x08, 0x9e, 0xbd, 0x38, 0x29, 0x01, // IID2611 - 0xd5, 0x33, 0x83, 0x9c, 0xd1, 0xa6, 0xed, 0x01, 0x98, 0x01, // IID2612 - 0xd5, 0x33, 0x83, 0x9c, 0x9a, 0x11, 0x94, 0xdc, 0xa6, 0x01, // IID2613 - 0xd5, 0x33, 0x83, 0x9c, 0xe3, 0xc8, 0x36, 0x23, 0xf4, 0x01, // IID2614 - 0xd5, 0x33, 0x83, 0x9c, 0x6c, 0x5b, 0x8c, 0x1f, 0x42, 0x01, // IID2615 - 0xd5, 0x11, 0x83, 0x9d, 0xa6, 0x08, 0x07, 0x41, 0x01, // IID2616 - 0xd5, 0x33, 0x83, 0x9c, 0xfe, 0x6d, 0xb7, 0x5e, 0xba, 0x01, // IID2617 - 0xd5, 0x11, 0x83, 0x9c, 0x4f, 0x96, 0x79, 0x6c, 0x70, 0x01, // IID2618 - 0x83, 0x9c, 0x51, 0x50, 0xfa, 0x88, 0x00, 0x10, // IID2619 - 0x83, 0x9c, 0x9a, 0xc0, 0x8a, 0xdf, 0xa8, 0x10, // IID2620 - 0x42, 0x83, 0x9c, 0x03, 0x29, 0x7f, 0xd3, 0xd0, 0x10, // IID2621 - 0x43, 0x83, 0x9c, 0x48, 0xf9, 0x66, 0xf7, 0x3a, 0x10, // IID2622 - 0x41, 0x83, 0x99, 0x43, 0xfa, 0x47, 0xa4, 0x10, // IID2623 - 0x43, 0x83, 0x9c, 0xda, 0x50, 0xfb, 0xef, 0x0c, 0x10, // IID2624 - 0x43, 0x83, 0x9c, 0x63, 0xaf, 0xcb, 0xff, 0xb2, 0x10, // IID2625 - 0x41, 0x83, 0x9c, 0x24, 0x65, 0x9a, 0x58, 0xdc, 0x10, // IID2626 - 0x43, 0x83, 0x9c, 0x35, 0xdc, 0x9b, 0xaa, 0x57, 0x10, // IID2627 - 0x43, 0x83, 0x9c, 0xfe, 0x5e, 0xf3, 0x14, 0xe7, 0x10, // IID2628 - 0xd5, 0x21, 0x83, 0x9c, 0x87, 0xeb, 0x44, 0x7d, 0xe0, 0x10, // IID2629 - 0xd5, 0x30, 0x83, 0x9c, 0x48, 0xbb, 0xc5, 0xfa, 0x09, 0x10, // IID2630 - 0xd5, 0x30, 0x83, 0x9c, 0x11, 0x8d, 0xeb, 0x7c, 0xbc, 0x10, // IID2631 - 0xd5, 0x30, 0x83, 0x9c, 0x9a, 0x1c, 0x4e, 0x4a, 0xd6, 0x10, // IID2632 - 0xd5, 0x30, 0x83, 0x9c, 0xe3, 0xe6, 0xbb, 0xd2, 0x38, 0x10, // IID2633 - 0xd5, 0x30, 0x83, 0x9c, 0x6c, 0x66, 0x7b, 0x6f, 0xa1, 0x10, // IID2634 - 0xd5, 0x30, 0x83, 0x9c, 0xb5, 0x6a, 0x08, 0x99, 0x95, 0x10, // IID2635 - 0xd5, 0x30, 0x83, 0x9c, 0xfe, 0x18, 0xec, 0xb6, 0x77, 0x10, // IID2636 - 0xd5, 0x32, 0x83, 0x9c, 0x07, 0xa9, 0xf7, 0xbf, 0xe7, 0x10, // IID2637 - 0xd5, 0x33, 0x83, 0x9c, 0x88, 0xec, 0x9c, 0x9f, 0x87, 0x10, // IID2638 - 0xd5, 0x11, 0x83, 0x99, 0x07, 0xdc, 0x3f, 0x9b, 0x10, // IID2639 - 0xd5, 0x33, 0x83, 0x9c, 0x1a, 0xab, 0xbb, 0x6d, 0xc8, 0x10, // IID2640 - 0xd5, 0x33, 0x83, 0x9c, 0xe3, 0xc7, 0xaa, 0xcb, 0x5c, 0x10, // IID2641 - 0xd5, 0x11, 0x83, 0x9c, 0x24, 0x74, 0x28, 0x9e, 0x57, 0x10, // IID2642 - 0xd5, 0x33, 0x83, 0x9c, 0xf5, 0x92, 0x7a, 0x13, 0x47, 0x10, // IID2643 - 0xd5, 0x33, 0x83, 0x9c, 0xfe, 0x01, 0xaa, 0xea, 0xd6, 0x10, // IID2644 - 0xd5, 0x11, 0x83, 0x9c, 0xcf, 0xd1, 0x27, 0x1f, 0x51, 0x10, // IID2645 - 0x81, 0x9c, 0xd1, 0x63, 0x14, 0xbc, 0x5b, 0x00, 0x01, 0x00, 0x00, // IID2646 - 0x81, 0x9c, 0xda, 0x6f, 0x45, 0xf5, 0x53, 0x00, 0x01, 0x00, 0x00, // IID2647 - 0x42, 0x81, 0x9c, 0x83, 0x1d, 0x63, 0x80, 0x7a, 0x00, 0x01, 0x00, 0x00, // IID2648 - 0x43, 0x81, 0x9c, 0x48, 0xfc, 0x4f, 0x80, 0x5c, 0x00, 0x01, 0x00, 0x00, // IID2649 - 0x43, 0x81, 0x9c, 0x11, 0x08, 0x2b, 0x55, 0x18, 0x00, 0x01, 0x00, 0x00, // IID2650 - 0x43, 0x81, 0x9c, 0x1a, 0xa7, 0xae, 0x72, 0x6e, 0x00, 0x01, 0x00, 0x00, // IID2651 - 0x43, 0x81, 0x9c, 0x63, 0xab, 0xc4, 0x70, 0xe8, 0x00, 0x01, 0x00, 0x00, // IID2652 - 0x43, 0x81, 0x9c, 0xec, 0xf8, 0x08, 0x21, 0xf1, 0x00, 0x01, 0x00, 0x00, // IID2653 - 0x43, 0x81, 0x9c, 0xf5, 0x0d, 0x21, 0x90, 0x0a, 0x00, 0x01, 0x00, 0x00, // IID2654 - 0x41, 0x81, 0x9e, 0x25, 0xd6, 0x97, 0x4c, 0x00, 0x01, 0x00, 0x00, // IID2655 - 0x41, 0x81, 0x9f, 0xd0, 0x60, 0xc8, 0x48, 0x00, 0x01, 0x00, 0x00, // IID2656 - 0xd5, 0x30, 0x81, 0x9c, 0xc8, 0xc2, 0x4e, 0x3d, 0x1a, 0x00, 0x01, 0x00, 0x00, // IID2657 - 0xd5, 0x10, 0x81, 0x99, 0x1c, 0x5e, 0x68, 0x9c, 0x00, 0x01, 0x00, 0x00, // IID2658 - 0xd5, 0x30, 0x81, 0x9c, 0x1a, 0x79, 0x96, 0x92, 0xf4, 0x00, 0x01, 0x00, 0x00, // IID2659 - 0xd5, 0x30, 0x81, 0x9c, 0x23, 0x81, 0x91, 0x15, 0x14, 0x00, 0x01, 0x00, 0x00, // IID2660 - 0xd5, 0x30, 0x81, 0x9c, 0xec, 0x52, 0x68, 0xe2, 0xfd, 0x00, 0x01, 0x00, 0x00, // IID2661 - 0xd5, 0x30, 0x81, 0x9c, 0x35, 0x7b, 0xc9, 0x31, 0xfd, 0x00, 0x01, 0x00, 0x00, // IID2662 - 0xd5, 0x30, 0x81, 0x9c, 0x3e, 0x04, 0x29, 0x49, 0x52, 0x00, 0x01, 0x00, 0x00, // IID2663 - 0xd5, 0x32, 0x81, 0x9c, 0xc7, 0x21, 0x0a, 0xe7, 0x92, 0x00, 0x01, 0x00, 0x00, // IID2664 - 0xd5, 0x11, 0x81, 0x98, 0x90, 0xb5, 0xf3, 0x22, 0x00, 0x01, 0x00, 0x00, // IID2665 - 0xd5, 0x33, 0x81, 0x9c, 0x91, 0x0e, 0x29, 0xd1, 0x90, 0x00, 0x01, 0x00, 0x00, // IID2666 - 0xd5, 0x33, 0x81, 0x9c, 0xda, 0x48, 0xec, 0x3d, 0x3c, 0x00, 0x01, 0x00, 0x00, // IID2667 - 0xd5, 0x33, 0x81, 0x9c, 0xe3, 0xb2, 0x15, 0xa3, 0x0e, 0x00, 0x01, 0x00, 0x00, // IID2668 - 0xd5, 0x11, 0x81, 0x9c, 0x24, 0x60, 0x31, 0xf7, 0xa9, 0x00, 0x01, 0x00, 0x00, // IID2669 - 0xd5, 0x11, 0x81, 0x9d, 0x3a, 0x48, 0x16, 0xa3, 0x00, 0x01, 0x00, 0x00, // IID2670 - 0xd5, 0x33, 0x81, 0x9c, 0x7e, 0x91, 0x91, 0xdc, 0x89, 0x00, 0x01, 0x00, 0x00, // IID2671 - 0xd5, 0x11, 0x81, 0x9c, 0x8f, 0x66, 0x4f, 0x62, 0x70, 0x00, 0x01, 0x00, 0x00, // IID2672 - 0x81, 0x9c, 0x11, 0x43, 0xcf, 0x3d, 0xa6, 0x00, 0x10, 0x00, 0x00, // IID2673 - 0x81, 0x9c, 0x5a, 0x8d, 0x78, 0x8c, 0xfe, 0x00, 0x10, 0x00, 0x00, // IID2674 - 0x42, 0x81, 0x9c, 0x83, 0xe8, 0xb9, 0xc0, 0xa7, 0x00, 0x10, 0x00, 0x00, // IID2675 - 0x43, 0x81, 0x9c, 0x88, 0x2c, 0xfb, 0xff, 0x10, 0x00, 0x10, 0x00, 0x00, // IID2676 - 0x43, 0x81, 0x9c, 0x11, 0xe7, 0x95, 0x59, 0x9d, 0x00, 0x10, 0x00, 0x00, // IID2677 - 0x43, 0x81, 0x9c, 0xda, 0xb5, 0xab, 0xed, 0x9d, 0x00, 0x10, 0x00, 0x00, // IID2678 - 0x43, 0x81, 0x9c, 0x63, 0x91, 0x7b, 0x78, 0x73, 0x00, 0x10, 0x00, 0x00, // IID2679 - 0x43, 0x81, 0x9c, 0x2c, 0xad, 0x88, 0x44, 0x85, 0x00, 0x10, 0x00, 0x00, // IID2680 - 0x41, 0x81, 0x9d, 0x9d, 0x0e, 0xb9, 0x47, 0x00, 0x10, 0x00, 0x00, // IID2681 - 0x43, 0x81, 0x9c, 0x3e, 0x06, 0xe9, 0x9c, 0x56, 0x00, 0x10, 0x00, 0x00, // IID2682 - 0xd5, 0x21, 0x81, 0x9c, 0x87, 0xf4, 0xdf, 0x7d, 0xfa, 0x00, 0x10, 0x00, 0x00, // IID2683 - 0xd5, 0x10, 0x81, 0x98, 0x4f, 0xf5, 0x89, 0x84, 0x00, 0x10, 0x00, 0x00, // IID2684 - 0xd5, 0x10, 0x81, 0x99, 0x28, 0x5e, 0xb4, 0x50, 0x00, 0x10, 0x00, 0x00, // IID2685 - 0xd5, 0x30, 0x81, 0x9c, 0x9a, 0xf8, 0xce, 0x6d, 0xf2, 0x00, 0x10, 0x00, 0x00, // IID2686 - 0xd5, 0x30, 0x81, 0x9c, 0x23, 0x4f, 0x56, 0xd4, 0x9d, 0x00, 0x10, 0x00, 0x00, // IID2687 - 0xd5, 0x30, 0x81, 0x9c, 0x2c, 0x4e, 0x94, 0x55, 0x4c, 0x00, 0x10, 0x00, 0x00, // IID2688 - 0xd5, 0x30, 0x81, 0x9c, 0xf5, 0xce, 0x21, 0x6d, 0xea, 0x00, 0x10, 0x00, 0x00, // IID2689 - 0xd5, 0x30, 0x81, 0x9c, 0x7e, 0x5f, 0xa0, 0x81, 0x7f, 0x00, 0x10, 0x00, 0x00, // IID2690 - 0xd5, 0x10, 0x81, 0x9f, 0xc6, 0xfe, 0x48, 0xdb, 0x00, 0x10, 0x00, 0x00, // IID2691 - 0xd5, 0x33, 0x81, 0x9c, 0xc8, 0xd5, 0x74, 0xc1, 0xdd, 0x00, 0x10, 0x00, 0x00, // IID2692 - 0xd5, 0x33, 0x81, 0x9c, 0x11, 0xa3, 0xd5, 0xf3, 0xb1, 0x00, 0x10, 0x00, 0x00, // IID2693 - 0xd5, 0x33, 0x81, 0x9c, 0x5a, 0x12, 0xec, 0x97, 0xfa, 0x00, 0x10, 0x00, 0x00, // IID2694 - 0xd5, 0x11, 0x81, 0x9b, 0x47, 0x8a, 0x91, 0x20, 0x00, 0x10, 0x00, 0x00, // IID2695 - 0xd5, 0x33, 0x81, 0x9c, 0xec, 0x2c, 0x53, 0xcb, 0x98, 0x00, 0x10, 0x00, 0x00, // IID2696 - 0xd5, 0x33, 0x81, 0x9c, 0xf5, 0x40, 0x49, 0x4b, 0x19, 0x00, 0x10, 0x00, 0x00, // IID2697 - 0xd5, 0x33, 0x81, 0x9c, 0xbe, 0xa3, 0x61, 0xc0, 0xf3, 0x00, 0x10, 0x00, 0x00, // IID2698 - 0xd5, 0x11, 0x81, 0x9c, 0xcf, 0x42, 0xaf, 0xe6, 0x1e, 0x00, 0x10, 0x00, 0x00, // IID2699 - 0x81, 0x99, 0x38, 0xed, 0x08, 0x5c, 0x00, 0x00, 0x01, 0x00, // IID2700 - 0x81, 0x9a, 0xf3, 0x02, 0x0a, 0xd0, 0x00, 0x00, 0x01, 0x00, // IID2701 - 0x42, 0x81, 0x9c, 0x43, 0x9c, 0xee, 0x7e, 0xf3, 0x00, 0x00, 0x01, 0x00, // IID2702 - 0x43, 0x81, 0x9c, 0xc8, 0x04, 0x4f, 0x4e, 0x33, 0x00, 0x00, 0x01, 0x00, // IID2703 - 0x43, 0x81, 0x9c, 0x51, 0x2d, 0xe1, 0x63, 0xf9, 0x00, 0x00, 0x01, 0x00, // IID2704 - 0x43, 0x81, 0x9c, 0x5a, 0xaf, 0xcd, 0x5d, 0x02, 0x00, 0x00, 0x01, 0x00, // IID2705 - 0x43, 0x81, 0x9c, 0xe3, 0x8f, 0xc6, 0x62, 0x7d, 0x00, 0x00, 0x01, 0x00, // IID2706 - 0x43, 0x81, 0x9c, 0x6c, 0x5a, 0x17, 0x64, 0x5b, 0x00, 0x00, 0x01, 0x00, // IID2707 - 0x43, 0x81, 0x9c, 0x75, 0x1e, 0xb2, 0xfb, 0xbd, 0x00, 0x00, 0x01, 0x00, // IID2708 - 0x43, 0x81, 0x9c, 0x3e, 0x4d, 0x6d, 0x73, 0x52, 0x00, 0x00, 0x01, 0x00, // IID2709 - 0xd5, 0x21, 0x81, 0x9c, 0x47, 0x64, 0x07, 0x90, 0x10, 0x00, 0x00, 0x01, 0x00, // IID2710 - 0xd5, 0x30, 0x81, 0x9c, 0x08, 0xab, 0xbc, 0x23, 0x0a, 0x00, 0x00, 0x01, 0x00, // IID2711 - 0xd5, 0x30, 0x81, 0x9c, 0x51, 0x10, 0x0a, 0x18, 0x75, 0x00, 0x00, 0x01, 0x00, // IID2712 - 0xd5, 0x30, 0x81, 0x9c, 0x5a, 0x2e, 0xcd, 0x7e, 0x79, 0x00, 0x00, 0x01, 0x00, // IID2713 - 0xd5, 0x30, 0x81, 0x9c, 0xa3, 0xb8, 0x9b, 0xd3, 0x1d, 0x00, 0x00, 0x01, 0x00, // IID2714 - 0xd5, 0x30, 0x81, 0x9c, 0x2c, 0xec, 0x80, 0xb1, 0x74, 0x00, 0x00, 0x01, 0x00, // IID2715 - 0xd5, 0x30, 0x81, 0x9c, 0xf5, 0xb2, 0xce, 0xbf, 0xa5, 0x00, 0x00, 0x01, 0x00, // IID2716 - 0xd5, 0x30, 0x81, 0x9c, 0x3e, 0x20, 0xd8, 0xdb, 0x7a, 0x00, 0x00, 0x01, 0x00, // IID2717 - 0xd5, 0x32, 0x81, 0x9c, 0xc7, 0x1b, 0x63, 0xea, 0x48, 0x00, 0x00, 0x01, 0x00, // IID2718 - 0xd5, 0x33, 0x81, 0x9c, 0x48, 0x4d, 0xed, 0x58, 0x27, 0x00, 0x00, 0x01, 0x00, // IID2719 - 0xd5, 0x33, 0x81, 0x9c, 0xd1, 0x57, 0x20, 0x89, 0x0b, 0x00, 0x00, 0x01, 0x00, // IID2720 - 0xd5, 0x33, 0x81, 0x9c, 0xda, 0x61, 0x33, 0xbf, 0x69, 0x00, 0x00, 0x01, 0x00, // IID2721 - 0xd5, 0x33, 0x81, 0x9c, 0xa3, 0x73, 0xc2, 0xa8, 0x99, 0x00, 0x00, 0x01, 0x00, // IID2722 - 0xd5, 0x33, 0x81, 0x9c, 0x2c, 0x02, 0x44, 0xc4, 0x6d, 0x00, 0x00, 0x01, 0x00, // IID2723 - 0xd5, 0x33, 0x81, 0x9c, 0x75, 0x8c, 0xe8, 0xc2, 0xb0, 0x00, 0x00, 0x01, 0x00, // IID2724 - 0xd5, 0x33, 0x81, 0x9c, 0xbe, 0x94, 0x4a, 0xfc, 0x3c, 0x00, 0x00, 0x01, 0x00, // IID2725 - 0xd5, 0x11, 0x81, 0x9f, 0x1c, 0x02, 0xee, 0xc6, 0x00, 0x00, 0x01, 0x00, // IID2726 - 0x81, 0x9c, 0x51, 0x6f, 0x76, 0x28, 0x13, 0x00, 0x00, 0x10, 0x00, // IID2727 - 0x81, 0x9c, 0xda, 0x73, 0xad, 0x42, 0x01, 0x00, 0x00, 0x10, 0x00, // IID2728 - 0x42, 0x81, 0x9c, 0x43, 0x6e, 0x9e, 0x48, 0x11, 0x00, 0x00, 0x10, 0x00, // IID2729 - 0x43, 0x81, 0x9c, 0xc8, 0x89, 0x5a, 0xa8, 0xc4, 0x00, 0x00, 0x10, 0x00, // IID2730 - 0x41, 0x81, 0x99, 0x3e, 0x6e, 0xaa, 0xbe, 0x00, 0x00, 0x10, 0x00, // IID2731 - 0x43, 0x81, 0x9c, 0xda, 0x82, 0x96, 0x67, 0x28, 0x00, 0x00, 0x10, 0x00, // IID2732 - 0x43, 0x81, 0x9c, 0x23, 0x76, 0xfa, 0xe8, 0x7b, 0x00, 0x00, 0x10, 0x00, // IID2733 - 0x43, 0x81, 0x9c, 0x6c, 0x76, 0xd7, 0x60, 0x86, 0x00, 0x00, 0x10, 0x00, // IID2734 - 0x43, 0x81, 0x9c, 0x75, 0x8f, 0x96, 0x42, 0xd0, 0x00, 0x00, 0x10, 0x00, // IID2735 - 0x43, 0x81, 0x9c, 0xfe, 0xfe, 0x22, 0xa6, 0xbb, 0x00, 0x00, 0x10, 0x00, // IID2736 - 0xd5, 0x21, 0x81, 0x9c, 0x07, 0xb6, 0x86, 0xb8, 0x2b, 0x00, 0x00, 0x10, 0x00, // IID2737 - 0xd5, 0x30, 0x81, 0x9c, 0xc8, 0xfb, 0x9f, 0x06, 0x0a, 0x00, 0x00, 0x10, 0x00, // IID2738 - 0xd5, 0x30, 0x81, 0x9c, 0x91, 0x50, 0xfa, 0x0d, 0x75, 0x00, 0x00, 0x10, 0x00, // IID2739 - 0xd5, 0x30, 0x81, 0x9c, 0x9a, 0xa8, 0x98, 0x54, 0x62, 0x00, 0x00, 0x10, 0x00, // IID2740 - 0xd5, 0x30, 0x81, 0x9c, 0xe3, 0xf7, 0x1e, 0xdc, 0x3a, 0x00, 0x00, 0x10, 0x00, // IID2741 - 0xd5, 0x30, 0x81, 0x9c, 0x6c, 0xe9, 0x7b, 0xd6, 0x2b, 0x00, 0x00, 0x10, 0x00, // IID2742 - 0xd5, 0x30, 0x81, 0x9c, 0xf5, 0x5b, 0xc8, 0xc2, 0x00, 0x00, 0x00, 0x10, 0x00, // IID2743 - 0xd5, 0x10, 0x81, 0x9e, 0x46, 0xb0, 0x9f, 0x7d, 0x00, 0x00, 0x10, 0x00, // IID2744 - 0xd5, 0x32, 0x81, 0x9c, 0x07, 0x59, 0x6a, 0x1f, 0x07, 0x00, 0x00, 0x10, 0x00, // IID2745 - 0xd5, 0x33, 0x81, 0x9c, 0xc8, 0x05, 0xc9, 0xc4, 0xce, 0x00, 0x00, 0x10, 0x00, // IID2746 - 0xd5, 0x33, 0x81, 0x9c, 0x11, 0x25, 0x04, 0x99, 0x29, 0x00, 0x00, 0x10, 0x00, // IID2747 - 0xd5, 0x33, 0x81, 0x9c, 0x5a, 0xa4, 0x7c, 0x9e, 0x6d, 0x00, 0x00, 0x10, 0x00, // IID2748 - 0xd5, 0x33, 0x81, 0x9c, 0x23, 0xc7, 0x07, 0xbf, 0xfa, 0x00, 0x00, 0x10, 0x00, // IID2749 - 0xd5, 0x33, 0x81, 0x9c, 0xec, 0xc1, 0x9a, 0xc4, 0x16, 0x00, 0x00, 0x10, 0x00, // IID2750 - 0xd5, 0x33, 0x81, 0x9c, 0x35, 0x2f, 0x08, 0xcb, 0x9f, 0x00, 0x00, 0x10, 0x00, // IID2751 - 0xd5, 0x11, 0x81, 0x9e, 0x9c, 0x61, 0x84, 0xc3, 0x00, 0x00, 0x10, 0x00, // IID2752 - 0xd5, 0x11, 0x81, 0x9c, 0x4f, 0x7a, 0xbe, 0x67, 0x1d, 0x00, 0x00, 0x10, 0x00, // IID2753 - 0x81, 0x99, 0xb3, 0xc7, 0x1e, 0x8d, 0x00, 0x00, 0x00, 0x01, // IID2754 - 0x81, 0x9c, 0x9a, 0xf9, 0xb1, 0x67, 0x5e, 0x00, 0x00, 0x00, 0x01, // IID2755 - 0x42, 0x81, 0x9c, 0x83, 0x82, 0x81, 0x63, 0x0d, 0x00, 0x00, 0x00, 0x01, // IID2756 - 0x43, 0x81, 0x9c, 0x88, 0xa9, 0x09, 0xc6, 0xfb, 0x00, 0x00, 0x00, 0x01, // IID2757 - 0x43, 0x81, 0x9c, 0x11, 0x37, 0xd9, 0xfc, 0xee, 0x00, 0x00, 0x00, 0x01, // IID2758 - 0x43, 0x81, 0x9c, 0xda, 0x5d, 0x2f, 0xa4, 0x66, 0x00, 0x00, 0x00, 0x01, // IID2759 - 0x41, 0x81, 0x9b, 0x48, 0x84, 0xe8, 0xc9, 0x00, 0x00, 0x00, 0x01, // IID2760 - 0x43, 0x81, 0x9c, 0xac, 0x51, 0xa9, 0xba, 0x7b, 0x00, 0x00, 0x00, 0x01, // IID2761 - 0x41, 0x81, 0x9d, 0x9f, 0xe3, 0xd1, 0x93, 0x00, 0x00, 0x00, 0x01, // IID2762 - 0x41, 0x81, 0x9e, 0x0e, 0x05, 0x52, 0xab, 0x00, 0x00, 0x00, 0x01, // IID2763 - 0xd5, 0x21, 0x81, 0x9c, 0x87, 0xb1, 0xcb, 0x44, 0xb0, 0x00, 0x00, 0x00, 0x01, // IID2764 - 0xd5, 0x30, 0x81, 0x9c, 0x88, 0x65, 0xd5, 0x52, 0x52, 0x00, 0x00, 0x00, 0x01, // IID2765 - 0xd5, 0x30, 0x81, 0x9c, 0xd1, 0x33, 0xee, 0x1a, 0x28, 0x00, 0x00, 0x00, 0x01, // IID2766 - 0xd5, 0x30, 0x81, 0x9c, 0x5a, 0x2d, 0x22, 0x3d, 0x26, 0x00, 0x00, 0x00, 0x01, // IID2767 - 0xd5, 0x30, 0x81, 0x9c, 0x23, 0x11, 0xf1, 0xb7, 0xda, 0x00, 0x00, 0x00, 0x01, // IID2768 - 0xd5, 0x10, 0x81, 0x9c, 0x24, 0xba, 0xb6, 0x21, 0x2c, 0x00, 0x00, 0x00, 0x01, // IID2769 - 0xd5, 0x30, 0x81, 0x9c, 0xf5, 0xd5, 0xf9, 0xb2, 0x4b, 0x00, 0x00, 0x00, 0x01, // IID2770 - 0xd5, 0x30, 0x81, 0x9c, 0xfe, 0x91, 0xbf, 0x07, 0xc4, 0x00, 0x00, 0x00, 0x01, // IID2771 - 0xd5, 0x32, 0x81, 0x9c, 0x87, 0xff, 0xfd, 0x34, 0x2d, 0x00, 0x00, 0x00, 0x01, // IID2772 - 0xd5, 0x33, 0x81, 0x9c, 0x88, 0x5d, 0x89, 0x3a, 0xb8, 0x00, 0x00, 0x00, 0x01, // IID2773 - 0xd5, 0x11, 0x81, 0x99, 0x22, 0x8e, 0xcf, 0xc0, 0x00, 0x00, 0x00, 0x01, // IID2774 - 0xd5, 0x33, 0x81, 0x9c, 0x1a, 0x36, 0xc7, 0xed, 0xde, 0x00, 0x00, 0x00, 0x01, // IID2775 - 0xd5, 0x33, 0x81, 0x9c, 0x23, 0x33, 0x61, 0xca, 0x08, 0x00, 0x00, 0x00, 0x01, // IID2776 - 0xd5, 0x33, 0x81, 0x9c, 0xac, 0x4d, 0xa7, 0xa6, 0x9c, 0x00, 0x00, 0x00, 0x01, // IID2777 - 0xd5, 0x11, 0x81, 0x9d, 0x9d, 0xfc, 0xcc, 0x89, 0x00, 0x00, 0x00, 0x01, // IID2778 - 0xd5, 0x33, 0x81, 0x9c, 0x3e, 0x01, 0x53, 0x22, 0xdb, 0x00, 0x00, 0x00, 0x01, // IID2779 - 0xd5, 0x11, 0x81, 0x9c, 0x4f, 0x49, 0x23, 0x52, 0x07, 0x00, 0x00, 0x00, 0x01, // IID2780 - 0x81, 0x9c, 0x11, 0xf6, 0xc0, 0x6d, 0xcd, 0x00, 0x00, 0x00, 0x10, // IID2781 - 0x81, 0x9c, 0xda, 0xf9, 0x1e, 0x99, 0x53, 0x00, 0x00, 0x00, 0x10, // IID2782 - 0x42, 0x81, 0x9c, 0x03, 0x34, 0xf8, 0x2f, 0x90, 0x00, 0x00, 0x00, 0x10, // IID2783 - 0x43, 0x81, 0x9c, 0x48, 0xaf, 0xa3, 0xb7, 0x4a, 0x00, 0x00, 0x00, 0x10, // IID2784 - 0x43, 0x81, 0x9c, 0x91, 0x22, 0x94, 0xff, 0xff, 0x00, 0x00, 0x00, 0x10, // IID2785 - 0x43, 0x81, 0x9c, 0xda, 0x5e, 0x41, 0x5a, 0x1d, 0x00, 0x00, 0x00, 0x10, // IID2786 - 0x43, 0x81, 0x9c, 0xe3, 0x87, 0x54, 0x0e, 0x72, 0x00, 0x00, 0x00, 0x10, // IID2787 - 0x43, 0x81, 0x9c, 0x6c, 0x64, 0x68, 0xcc, 0xd9, 0x00, 0x00, 0x00, 0x10, // IID2788 - 0x41, 0x81, 0x9d, 0xc7, 0x3f, 0xa6, 0x8c, 0x00, 0x00, 0x00, 0x10, // IID2789 - 0x43, 0x81, 0x9c, 0xbe, 0x30, 0x3f, 0x22, 0x5e, 0x00, 0x00, 0x00, 0x10, // IID2790 - 0xd5, 0x21, 0x81, 0x9c, 0x47, 0x2d, 0xfc, 0x3c, 0x64, 0x00, 0x00, 0x00, 0x10, // IID2791 - 0xd5, 0x30, 0x81, 0x9c, 0x48, 0xac, 0x43, 0x4d, 0xcb, 0x00, 0x00, 0x00, 0x10, // IID2792 - 0xd5, 0x30, 0x81, 0x9c, 0x51, 0x94, 0x19, 0xa8, 0x07, 0x00, 0x00, 0x00, 0x10, // IID2793 - 0xd5, 0x30, 0x81, 0x9c, 0x5a, 0x6d, 0x7f, 0xb8, 0x46, 0x00, 0x00, 0x00, 0x10, // IID2794 - 0xd5, 0x30, 0x81, 0x9c, 0x23, 0x1b, 0x9f, 0xbb, 0x42, 0x00, 0x00, 0x00, 0x10, // IID2795 - 0xd5, 0x30, 0x81, 0x9c, 0x2c, 0xde, 0x22, 0x63, 0xa3, 0x00, 0x00, 0x00, 0x10, // IID2796 - 0xd5, 0x30, 0x81, 0x9c, 0xb5, 0x82, 0x8d, 0x9a, 0x63, 0x00, 0x00, 0x00, 0x10, // IID2797 - 0xd5, 0x30, 0x81, 0x9c, 0x7e, 0xb1, 0xe5, 0x4a, 0xa1, 0x00, 0x00, 0x00, 0x10, // IID2798 - 0xd5, 0x32, 0x81, 0x9c, 0x07, 0x4c, 0xf8, 0x55, 0x84, 0x00, 0x00, 0x00, 0x10, // IID2799 - 0xd5, 0x33, 0x81, 0x9c, 0x88, 0x0b, 0x6f, 0x36, 0xdc, 0x00, 0x00, 0x00, 0x10, // IID2800 - 0xd5, 0x33, 0x81, 0x9c, 0x51, 0x9f, 0x95, 0x1f, 0x62, 0x00, 0x00, 0x00, 0x10, // IID2801 - 0xd5, 0x11, 0x81, 0x9a, 0xd3, 0x8a, 0x62, 0x8d, 0x00, 0x00, 0x00, 0x10, // IID2802 - 0xd5, 0x11, 0x81, 0x9b, 0xe7, 0x56, 0xda, 0x95, 0x00, 0x00, 0x00, 0x10, // IID2803 - 0xd5, 0x11, 0x81, 0x9c, 0x24, 0x85, 0x94, 0x14, 0x58, 0x00, 0x00, 0x00, 0x10, // IID2804 - 0xd5, 0x33, 0x81, 0x9c, 0xb5, 0x2e, 0x67, 0xf7, 0xe6, 0x00, 0x00, 0x00, 0x10, // IID2805 - 0xd5, 0x11, 0x81, 0x9e, 0xb9, 0x13, 0xf6, 0x2c, 0x00, 0x00, 0x00, 0x10, // IID2806 - 0xd5, 0x11, 0x81, 0x9c, 0x0f, 0x94, 0x86, 0x77, 0x7b, 0x00, 0x00, 0x00, 0x10, // IID2807 -#endif // _LP64 - 0xd1, 0xac, 0x11, 0x62, 0x59, 0x9f, 0xbe, // IID2808 - 0xd1, 0xac, 0xda, 0x98, 0xaa, 0xaf, 0x8a, // IID2809 -#ifdef _LP64 - 0x42, 0xd1, 0xac, 0xc3, 0xe6, 0xcf, 0x35, 0x33, // IID2810 - 0x43, 0xd1, 0xac, 0x08, 0xe1, 0x2f, 0x9f, 0x19, // IID2811 - 0x43, 0xd1, 0xac, 0x11, 0xb8, 0xb8, 0xcc, 0xc5, // IID2812 - 0x43, 0xd1, 0xac, 0x9a, 0x2e, 0xa4, 0x1b, 0xce, // IID2813 - 0x43, 0xd1, 0xac, 0xe3, 0xa8, 0xc9, 0xfd, 0x1f, // IID2814 - 0x43, 0xd1, 0xac, 0xec, 0x6c, 0x7c, 0xd5, 0x41, // IID2815 - 0x43, 0xd1, 0xac, 0xb5, 0xa5, 0x8e, 0x6e, 0xbc, // IID2816 - 0x41, 0xd1, 0xae, 0xfd, 0xe5, 0x4b, 0xb2, // IID2817 - 0xd5, 0x21, 0xd1, 0xac, 0xc7, 0x6c, 0x40, 0x30, 0xde, // IID2818 - 0xd5, 0x30, 0xd1, 0xac, 0xc8, 0xd3, 0xcf, 0x9d, 0xf0, // IID2819 - 0xd5, 0x10, 0xd1, 0xa9, 0x9a, 0x57, 0xd8, 0xb9, // IID2820 - 0xd5, 0x30, 0xd1, 0xac, 0x1a, 0x46, 0x9a, 0x6b, 0x77, // IID2821 - 0xd5, 0x10, 0xd1, 0xab, 0xc5, 0x86, 0xd3, 0xe9, // IID2822 - 0xd5, 0x30, 0xd1, 0xac, 0x6c, 0xfe, 0x42, 0xd2, 0xa4, // IID2823 - 0xd5, 0x30, 0xd1, 0xac, 0xb5, 0x3c, 0x53, 0xee, 0xc9, // IID2824 - 0xd5, 0x30, 0xd1, 0xac, 0x7e, 0x41, 0x8b, 0x02, 0x98, // IID2825 - 0xd5, 0x32, 0xd1, 0xac, 0x07, 0x42, 0x14, 0x79, 0xdb, // IID2826 - 0xd5, 0x11, 0xd1, 0xa8, 0x52, 0x5a, 0xd2, 0xbe, // IID2827 - 0xd5, 0x33, 0xd1, 0xac, 0x91, 0x52, 0xea, 0x5e, 0x67, // IID2828 - 0xd5, 0x33, 0xd1, 0xac, 0x9a, 0xcc, 0xdd, 0x61, 0x42, // IID2829 - 0xd5, 0x33, 0xd1, 0xac, 0x63, 0x4e, 0x2c, 0x00, 0x8f, // IID2830 - 0xd5, 0x33, 0xd1, 0xac, 0xac, 0x35, 0x16, 0x48, 0x80, // IID2831 - 0xd5, 0x33, 0xd1, 0xac, 0x35, 0x75, 0xaf, 0x64, 0x9b, // IID2832 - 0xd5, 0x33, 0xd1, 0xac, 0x7e, 0x22, 0x30, 0x1d, 0x8f, // IID2833 - 0xd5, 0x11, 0xd1, 0xac, 0x4f, 0x29, 0x74, 0xa2, 0x62, // IID2834 - 0xc1, 0xac, 0x11, 0x65, 0x2f, 0x3e, 0x52, 0x02, // IID2835 - 0xc1, 0xac, 0x9a, 0xb0, 0xd6, 0xc9, 0x0f, 0x02, // IID2836 - 0x42, 0xc1, 0xac, 0x83, 0xfd, 0xc2, 0x42, 0x64, 0x02, // IID2837 - 0x41, 0xc1, 0xa8, 0x5e, 0xcd, 0x08, 0x5c, 0x02, // IID2838 - 0x43, 0xc1, 0xac, 0x11, 0x61, 0xa9, 0x46, 0xad, 0x02, // IID2839 - 0x41, 0xc1, 0xaa, 0x8e, 0xeb, 0x92, 0x3e, 0x02, // IID2840 - 0x43, 0xc1, 0xac, 0x23, 0xe7, 0xdb, 0xee, 0x8f, 0x02, // IID2841 - 0x43, 0xc1, 0xac, 0xec, 0x8f, 0xa5, 0xeb, 0x6c, 0x02, // IID2842 - 0x43, 0xc1, 0xac, 0xf5, 0xcb, 0xf8, 0xc2, 0x23, 0x02, // IID2843 - 0x43, 0xc1, 0xac, 0x3e, 0xcb, 0x2c, 0xd4, 0xbd, 0x02, // IID2844 - 0xd5, 0x21, 0xc1, 0xac, 0xc7, 0x41, 0x64, 0x1e, 0xa4, 0x02, // IID2845 - 0xd5, 0x30, 0xc1, 0xac, 0x88, 0xc8, 0xe9, 0x12, 0x89, 0x02, // IID2846 - 0xd5, 0x30, 0xc1, 0xac, 0xd1, 0xf9, 0x3c, 0xc1, 0x9c, 0x02, // IID2847 - 0xd5, 0x10, 0xc1, 0xaa, 0x45, 0x12, 0x54, 0x36, 0x02, // IID2848 - 0xd5, 0x10, 0xc1, 0xab, 0x66, 0x1d, 0x37, 0x83, 0x02, // IID2849 - 0xd5, 0x30, 0xc1, 0xac, 0x2c, 0xce, 0x47, 0x23, 0x36, 0x02, // IID2850 - 0xd5, 0x30, 0xc1, 0xac, 0x75, 0xb3, 0x37, 0xf9, 0x2d, 0x02, // IID2851 - 0xd5, 0x30, 0xc1, 0xac, 0x7e, 0x74, 0xe3, 0xdb, 0x8e, 0x02, // IID2852 - 0xd5, 0x10, 0xc1, 0xaf, 0xc7, 0xe4, 0xd2, 0xfb, 0x02, // IID2853 - 0xd5, 0x33, 0xc1, 0xac, 0x48, 0x8a, 0x1b, 0x9a, 0xd5, 0x02, // IID2854 - 0xd5, 0x33, 0xc1, 0xac, 0x91, 0x90, 0x6f, 0xf5, 0x18, 0x02, // IID2855 - 0xd5, 0x33, 0xc1, 0xac, 0xda, 0x3d, 0x6a, 0xfa, 0x42, 0x02, // IID2856 - 0xd5, 0x33, 0xc1, 0xac, 0xe3, 0xb6, 0xb5, 0xe2, 0x53, 0x02, // IID2857 - 0xd5, 0x33, 0xc1, 0xac, 0x2c, 0x23, 0xd5, 0xa8, 0x5b, 0x02, // IID2858 - 0xd5, 0x11, 0xc1, 0xad, 0xab, 0xb5, 0xe1, 0x05, 0x02, // IID2859 - 0xd5, 0x11, 0xc1, 0xae, 0x57, 0x23, 0x44, 0xdc, 0x02, // IID2860 - 0xd5, 0x11, 0xc1, 0xaf, 0x50, 0x73, 0xc8, 0x24, 0x02, // IID2861 - 0xc1, 0xac, 0xd1, 0x0b, 0xe1, 0x63, 0xd1, 0x04, // IID2862 - 0xc1, 0xac, 0x1a, 0xd4, 0x76, 0x0b, 0x78, 0x04, // IID2863 - 0x42, 0xc1, 0xac, 0x83, 0xa9, 0x8e, 0x3c, 0x98, 0x04, // IID2864 - 0x43, 0xc1, 0xac, 0x08, 0xb7, 0x8d, 0xdb, 0x21, 0x04, // IID2865 - 0x43, 0xc1, 0xac, 0x11, 0x37, 0x60, 0x8e, 0x46, 0x04, // IID2866 - 0x43, 0xc1, 0xac, 0x9a, 0x0a, 0x10, 0x46, 0xc8, 0x04, // IID2867 - 0x43, 0xc1, 0xac, 0xe3, 0xe4, 0xd8, 0x36, 0xe4, 0x04, // IID2868 - 0x43, 0xc1, 0xac, 0x6c, 0xc6, 0x06, 0x79, 0x9d, 0x04, // IID2869 - 0x43, 0xc1, 0xac, 0x75, 0x23, 0xea, 0x33, 0x08, 0x04, // IID2870 - 0x43, 0xc1, 0xac, 0xfe, 0xfa, 0xcd, 0x0a, 0xa3, 0x04, // IID2871 - 0xd5, 0x21, 0xc1, 0xac, 0x07, 0xd4, 0x52, 0x7e, 0xf0, 0x04, // IID2872 - 0xd5, 0x30, 0xc1, 0xac, 0x48, 0x74, 0x2b, 0x33, 0xa0, 0x04, // IID2873 - 0xd5, 0x30, 0xc1, 0xac, 0x51, 0x01, 0x19, 0x8c, 0xe6, 0x04, // IID2874 - 0xd5, 0x30, 0xc1, 0xac, 0xda, 0x8a, 0x70, 0xa6, 0x63, 0x04, // IID2875 - 0xd5, 0x30, 0xc1, 0xac, 0xe3, 0x4d, 0x85, 0xac, 0xae, 0x04, // IID2876 - 0xd5, 0x30, 0xc1, 0xac, 0xac, 0x46, 0xec, 0x45, 0x80, 0x04, // IID2877 - 0xd5, 0x10, 0xc1, 0xad, 0xe2, 0xc5, 0x9b, 0x40, 0x04, // IID2878 - 0xd5, 0x10, 0xc1, 0xae, 0xf4, 0x8c, 0x13, 0x75, 0x04, // IID2879 - 0xd5, 0x10, 0xc1, 0xaf, 0x96, 0x2f, 0x8e, 0x69, 0x04, // IID2880 - 0xd5, 0x33, 0xc1, 0xac, 0xc8, 0x3a, 0x5d, 0x3a, 0x48, 0x04, // IID2881 - 0xd5, 0x33, 0xc1, 0xac, 0xd1, 0x02, 0x4d, 0x1a, 0x6f, 0x04, // IID2882 - 0xd5, 0x11, 0xc1, 0xaa, 0xc4, 0xe9, 0x2e, 0xb0, 0x04, // IID2883 - 0xd5, 0x33, 0xc1, 0xac, 0xa3, 0x8a, 0x63, 0x7f, 0x23, 0x04, // IID2884 - 0xd5, 0x33, 0xc1, 0xac, 0x6c, 0x02, 0x00, 0x79, 0x79, 0x04, // IID2885 - 0xd5, 0x33, 0xc1, 0xac, 0xb5, 0x09, 0x1b, 0xb1, 0x1b, 0x04, // IID2886 - 0xd5, 0x11, 0xc1, 0xae, 0xaa, 0xff, 0xec, 0x3e, 0x04, // IID2887 - 0xd5, 0x11, 0xc1, 0xac, 0x0f, 0xd6, 0x61, 0xa4, 0x3b, 0x04, // IID2888 - 0xc1, 0xac, 0x91, 0xa3, 0xb6, 0x1e, 0x9a, 0x08, // IID2889 - 0xc1, 0xac, 0x9a, 0x3e, 0x7b, 0xb9, 0x94, 0x08, // IID2890 - 0x42, 0xc1, 0xac, 0x03, 0xa5, 0x71, 0xa8, 0xd3, 0x08, // IID2891 - 0x43, 0xc1, 0xac, 0x88, 0x81, 0xd6, 0xeb, 0x5b, 0x08, // IID2892 - 0x43, 0xc1, 0xac, 0x11, 0x50, 0x10, 0x60, 0xe0, 0x08, // IID2893 - 0x43, 0xc1, 0xac, 0x9a, 0x47, 0xdf, 0x09, 0xfe, 0x08, // IID2894 - 0x43, 0xc1, 0xac, 0xe3, 0xfe, 0x78, 0x79, 0x8c, 0x08, // IID2895 - 0x43, 0xc1, 0xac, 0xec, 0x1e, 0x4a, 0x7d, 0x13, 0x08, // IID2896 - 0x43, 0xc1, 0xac, 0x75, 0x2c, 0x10, 0x44, 0x6c, 0x08, // IID2897 - 0x43, 0xc1, 0xac, 0xfe, 0x91, 0x0f, 0x5f, 0xc5, 0x08, // IID2898 - 0x41, 0xc1, 0xaf, 0xa7, 0xd6, 0xc5, 0x64, 0x08, // IID2899 - 0xd5, 0x30, 0xc1, 0xac, 0x88, 0x39, 0x8a, 0xe1, 0x40, 0x08, // IID2900 - 0xd5, 0x30, 0xc1, 0xac, 0x11, 0xc3, 0x12, 0xee, 0xc1, 0x08, // IID2901 - 0xd5, 0x30, 0xc1, 0xac, 0x9a, 0x3f, 0xba, 0xe0, 0x9f, 0x08, // IID2902 - 0xd5, 0x30, 0xc1, 0xac, 0xe3, 0x6b, 0x91, 0xca, 0x80, 0x08, // IID2903 - 0xd5, 0x30, 0xc1, 0xac, 0x6c, 0x1f, 0x42, 0x95, 0x6d, 0x08, // IID2904 - 0xd5, 0x30, 0xc1, 0xac, 0xb5, 0x89, 0x5f, 0x11, 0x6a, 0x08, // IID2905 - 0xd5, 0x30, 0xc1, 0xac, 0xfe, 0xef, 0x6c, 0x60, 0xc9, 0x08, // IID2906 - 0xd5, 0x32, 0xc1, 0xac, 0x47, 0x70, 0x2b, 0xf7, 0x2a, 0x08, // IID2907 - 0xd5, 0x33, 0xc1, 0xac, 0x08, 0xb2, 0x2d, 0xc5, 0x1c, 0x08, // IID2908 - 0xd5, 0x11, 0xc1, 0xa9, 0x7d, 0x2b, 0x5d, 0xb3, 0x08, // IID2909 - 0xd5, 0x33, 0xc1, 0xac, 0x5a, 0xa6, 0x80, 0x9f, 0xc8, 0x08, // IID2910 - 0xd5, 0x11, 0xc1, 0xab, 0x24, 0x8f, 0xf6, 0xf3, 0x08, // IID2911 - 0xd5, 0x33, 0xc1, 0xac, 0xac, 0x6f, 0x3e, 0xf3, 0xc3, 0x08, // IID2912 - 0xd5, 0x33, 0xc1, 0xac, 0x35, 0x84, 0x10, 0x63, 0xdb, 0x08, // IID2913 - 0xd5, 0x33, 0xc1, 0xac, 0xbe, 0xf9, 0xdb, 0xf7, 0x41, 0x08, // IID2914 - 0xd5, 0x11, 0xc1, 0xaf, 0x66, 0x7f, 0x12, 0xea, 0x08, // IID2915 - 0xc1, 0xac, 0x51, 0xb9, 0x01, 0x20, 0xd1, 0x10, // IID2916 - 0xc1, 0xac, 0x9a, 0xf5, 0x03, 0x22, 0x93, 0x10, // IID2917 - 0x42, 0xc1, 0xac, 0x83, 0xa9, 0x59, 0x16, 0x70, 0x10, // IID2918 - 0x41, 0xc1, 0xa8, 0x61, 0x82, 0x68, 0x1a, 0x10, // IID2919 - 0x43, 0xc1, 0xac, 0x11, 0x1d, 0xfd, 0x8d, 0xc9, 0x10, // IID2920 - 0x43, 0xc1, 0xac, 0xda, 0x73, 0x80, 0x48, 0x3f, 0x10, // IID2921 - 0x43, 0xc1, 0xac, 0xa3, 0xcf, 0x29, 0x1a, 0x3a, 0x10, // IID2922 - 0x43, 0xc1, 0xac, 0x2c, 0xed, 0x98, 0xa4, 0x4f, 0x10, // IID2923 - 0x41, 0xc1, 0xad, 0xc7, 0xc7, 0x4a, 0xd4, 0x10, // IID2924 - 0x41, 0xc1, 0xae, 0x94, 0xea, 0xf4, 0x6a, 0x10, // IID2925 - 0xd5, 0x21, 0xc1, 0xac, 0x07, 0xa3, 0xdc, 0x57, 0xec, 0x10, // IID2926 - 0xd5, 0x30, 0xc1, 0xac, 0x48, 0x5b, 0xd6, 0x2b, 0x31, 0x10, // IID2927 - 0xd5, 0x30, 0xc1, 0xac, 0x51, 0xe4, 0x72, 0x17, 0x75, 0x10, // IID2928 - 0xd5, 0x30, 0xc1, 0xac, 0x9a, 0x91, 0x26, 0x6c, 0x3d, 0x10, // IID2929 - 0xd5, 0x30, 0xc1, 0xac, 0xa3, 0x71, 0xc6, 0xb9, 0xeb, 0x10, // IID2930 - 0xd5, 0x30, 0xc1, 0xac, 0xac, 0x8f, 0xa5, 0x0f, 0x4f, 0x10, // IID2931 - 0xd5, 0x30, 0xc1, 0xac, 0x35, 0xf7, 0x1a, 0x1a, 0x15, 0x10, // IID2932 - 0xd5, 0x30, 0xc1, 0xac, 0x7e, 0xf8, 0x90, 0xaa, 0x5a, 0x10, // IID2933 - 0xd5, 0x10, 0xc1, 0xaf, 0x94, 0xeb, 0x2c, 0xb2, 0x10, // IID2934 - 0xd5, 0x33, 0xc1, 0xac, 0x48, 0x68, 0xb2, 0x6c, 0x3e, 0x10, // IID2935 - 0xd5, 0x11, 0xc1, 0xa9, 0x95, 0x7f, 0xec, 0x47, 0x10, // IID2936 - 0xd5, 0x33, 0xc1, 0xac, 0x5a, 0x85, 0xb6, 0x0b, 0x5a, 0x10, // IID2937 - 0xd5, 0x33, 0xc1, 0xac, 0x23, 0xa0, 0xab, 0xfe, 0x11, 0x10, // IID2938 - 0xd5, 0x33, 0xc1, 0xac, 0xac, 0xbe, 0x7f, 0x31, 0xe1, 0x10, // IID2939 - 0xd5, 0x33, 0xc1, 0xac, 0xb5, 0x00, 0x42, 0x09, 0xa8, 0x10, // IID2940 - 0xd5, 0x33, 0xc1, 0xac, 0xbe, 0x67, 0xbf, 0x64, 0xd1, 0x10, // IID2941 - 0xd5, 0x11, 0xc1, 0xac, 0x4f, 0x1c, 0xbb, 0x4a, 0x96, 0x10, // IID2942 -#endif // _LP64 - 0x83, 0xa9, 0x0b, 0xc8, 0xd6, 0x47, 0x01, // IID2943 - 0x83, 0xac, 0xda, 0x40, 0xe6, 0x46, 0xc7, 0x01, // IID2944 -#ifdef _LP64 - 0x42, 0x83, 0xac, 0x83, 0xb0, 0xf5, 0x7f, 0xe9, 0x01, // IID2945 - 0x43, 0x83, 0xac, 0x48, 0x6c, 0xab, 0x60, 0xf7, 0x01, // IID2946 - 0x41, 0x83, 0xa9, 0xea, 0x18, 0x9a, 0x42, 0x01, // IID2947 - 0x43, 0x83, 0xac, 0x9a, 0x8b, 0x05, 0x08, 0xff, 0x01, // IID2948 - 0x43, 0x83, 0xac, 0x23, 0x21, 0x4b, 0x94, 0x82, 0x01, // IID2949 - 0x43, 0x83, 0xac, 0x6c, 0x4c, 0x73, 0x79, 0x32, 0x01, // IID2950 - 0x41, 0x83, 0xad, 0x16, 0xc0, 0x73, 0x98, 0x01, // IID2951 - 0x43, 0x83, 0xac, 0xfe, 0x22, 0x81, 0xcc, 0x8e, 0x01, // IID2952 - 0xd5, 0x21, 0x83, 0xac, 0xc7, 0x9d, 0x22, 0x7d, 0xa0, 0x01, // IID2953 - 0xd5, 0x30, 0x83, 0xac, 0x08, 0x0d, 0x7e, 0x88, 0x15, 0x01, // IID2954 - 0xd5, 0x10, 0x83, 0xa9, 0x50, 0x6b, 0xe9, 0xa7, 0x01, // IID2955 - 0xd5, 0x30, 0x83, 0xac, 0x5a, 0xda, 0x8c, 0xad, 0x6c, 0x01, // IID2956 - 0xd5, 0x30, 0x83, 0xac, 0x63, 0x58, 0x7c, 0xcb, 0x01, 0x01, // IID2957 - 0xd5, 0x30, 0x83, 0xac, 0xac, 0xe7, 0xdf, 0x16, 0xbc, 0x01, // IID2958 - 0xd5, 0x30, 0x83, 0xac, 0xf5, 0x31, 0x7e, 0xfe, 0xd1, 0x01, // IID2959 - 0xd5, 0x10, 0x83, 0xae, 0x15, 0xe5, 0xbe, 0x23, 0x01, // IID2960 - 0xd5, 0x32, 0x83, 0xac, 0x87, 0x5a, 0xa4, 0x27, 0xfa, 0x01, // IID2961 - 0xd5, 0x11, 0x83, 0xa8, 0xc3, 0x07, 0xf3, 0x4d, 0x01, // IID2962 - 0xd5, 0x33, 0x83, 0xac, 0xd1, 0xc9, 0xa0, 0x4d, 0xee, 0x01, // IID2963 - 0xd5, 0x33, 0x83, 0xac, 0x9a, 0x4d, 0x43, 0xd8, 0x5a, 0x01, // IID2964 - 0xd5, 0x33, 0x83, 0xac, 0x63, 0x34, 0x43, 0xae, 0x99, 0x01, // IID2965 - 0xd5, 0x33, 0x83, 0xac, 0x2c, 0xd9, 0x44, 0x7f, 0x4c, 0x01, // IID2966 - 0xd5, 0x33, 0x83, 0xac, 0xf5, 0x04, 0x5f, 0x4c, 0x32, 0x01, // IID2967 - 0xd5, 0x33, 0x83, 0xac, 0xfe, 0x98, 0x07, 0x56, 0xe1, 0x01, // IID2968 - 0xd5, 0x11, 0x83, 0xac, 0x0f, 0x6c, 0x82, 0x17, 0xc3, 0x01, // IID2969 - 0x83, 0xac, 0x51, 0x25, 0x21, 0xe3, 0x91, 0x10, // IID2970 - 0x83, 0xac, 0x1a, 0x11, 0xb7, 0xc5, 0x14, 0x10, // IID2971 - 0x83, 0xab, 0xbb, 0x6d, 0x2e, 0xfa, 0x10, // IID2972 - 0x43, 0x83, 0xac, 0xc8, 0xaf, 0xae, 0xab, 0x48, 0x10, // IID2973 - 0x43, 0x83, 0xac, 0x91, 0x9e, 0x23, 0xf8, 0xe7, 0x10, // IID2974 - 0x43, 0x83, 0xac, 0x1a, 0xa6, 0x70, 0x74, 0x90, 0x10, // IID2975 - 0x43, 0x83, 0xac, 0xa3, 0xbc, 0x71, 0x42, 0x88, 0x10, // IID2976 - 0x43, 0x83, 0xac, 0xec, 0x92, 0x6a, 0x7d, 0x90, 0x10, // IID2977 - 0x43, 0x83, 0xac, 0xf5, 0xd8, 0xb9, 0x6b, 0xb2, 0x10, // IID2978 - 0x43, 0x83, 0xac, 0x7e, 0xd4, 0x21, 0xb9, 0x5c, 0x10, // IID2979 - 0xd5, 0x21, 0x83, 0xac, 0x07, 0x92, 0x91, 0xb1, 0xca, 0x10, // IID2980 - 0xd5, 0x30, 0x83, 0xac, 0xc8, 0xa8, 0xf8, 0xf2, 0x6f, 0x10, // IID2981 - 0xd5, 0x30, 0x83, 0xac, 0xd1, 0x65, 0xe7, 0x16, 0x34, 0x10, // IID2982 - 0xd5, 0x30, 0x83, 0xac, 0x9a, 0x15, 0x95, 0xff, 0x33, 0x10, // IID2983 - 0xd5, 0x30, 0x83, 0xac, 0x23, 0xad, 0x3a, 0x48, 0xdd, 0x10, // IID2984 - 0xd5, 0x30, 0x83, 0xac, 0xac, 0x4f, 0xe6, 0x35, 0x03, 0x10, // IID2985 - 0xd5, 0x10, 0x83, 0xad, 0xd0, 0x26, 0x02, 0x22, 0x10, // IID2986 - 0xd5, 0x30, 0x83, 0xac, 0xbe, 0x2c, 0xc6, 0x59, 0x1f, 0x10, // IID2987 - 0xd5, 0x32, 0x83, 0xac, 0x87, 0xe3, 0x15, 0x2e, 0xb7, 0x10, // IID2988 - 0xd5, 0x33, 0x83, 0xac, 0x08, 0x68, 0xf8, 0xb5, 0xc1, 0x10, // IID2989 - 0xd5, 0x33, 0x83, 0xac, 0x51, 0x48, 0xdd, 0x1b, 0xff, 0x10, // IID2990 - 0xd5, 0x33, 0x83, 0xac, 0x1a, 0x8a, 0x1d, 0x5a, 0xae, 0x10, // IID2991 - 0xd5, 0x33, 0x83, 0xac, 0xe3, 0x4c, 0x3e, 0x36, 0x9a, 0x10, // IID2992 - 0xd5, 0x33, 0x83, 0xac, 0xec, 0xf3, 0x6b, 0x56, 0xef, 0x10, // IID2993 - 0xd5, 0x33, 0x83, 0xac, 0xf5, 0xa0, 0x3f, 0xe4, 0xa4, 0x10, // IID2994 - 0xd5, 0x33, 0x83, 0xac, 0xbe, 0xb7, 0x94, 0xd2, 0x4b, 0x10, // IID2995 - 0xd5, 0x11, 0x83, 0xac, 0x8f, 0x60, 0x5a, 0xd0, 0x42, 0x10, // IID2996 - 0x81, 0xac, 0xd1, 0x62, 0xec, 0xb3, 0xaf, 0x00, 0x01, 0x00, 0x00, // IID2997 - 0x81, 0xac, 0x5a, 0x84, 0x96, 0xf4, 0xcd, 0x00, 0x01, 0x00, 0x00, // IID2998 - 0x42, 0x81, 0xac, 0x43, 0x53, 0x72, 0xf0, 0xc5, 0x00, 0x01, 0x00, 0x00, // IID2999 - 0x41, 0x81, 0xa8, 0x52, 0xc3, 0x8d, 0xc4, 0x00, 0x01, 0x00, 0x00, // IID3000 - 0x43, 0x81, 0xac, 0x91, 0xb4, 0xe1, 0x71, 0x12, 0x00, 0x01, 0x00, 0x00, // IID3001 - 0x43, 0x81, 0xac, 0x5a, 0xa8, 0x25, 0x1e, 0x6d, 0x00, 0x01, 0x00, 0x00, // IID3002 - 0x43, 0x81, 0xac, 0x63, 0x1c, 0x6f, 0xcf, 0x6b, 0x00, 0x01, 0x00, 0x00, // IID3003 - 0x43, 0x81, 0xac, 0x2c, 0x77, 0xd6, 0x80, 0x47, 0x00, 0x01, 0x00, 0x00, // IID3004 - 0x43, 0x81, 0xac, 0xf5, 0xf6, 0x4c, 0x23, 0x93, 0x00, 0x01, 0x00, 0x00, // IID3005 - 0x43, 0x81, 0xac, 0x7e, 0x96, 0x8d, 0xfd, 0xa2, 0x00, 0x01, 0x00, 0x00, // IID3006 - 0xd5, 0x21, 0x81, 0xac, 0x87, 0xf2, 0x83, 0xf9, 0xff, 0x00, 0x01, 0x00, 0x00, // IID3007 - 0xd5, 0x30, 0x81, 0xac, 0x88, 0xea, 0xc2, 0x52, 0xfb, 0x00, 0x01, 0x00, 0x00, // IID3008 - 0xd5, 0x30, 0x81, 0xac, 0x11, 0x5e, 0xb8, 0x2f, 0x15, 0x00, 0x01, 0x00, 0x00, // IID3009 - 0xd5, 0x30, 0x81, 0xac, 0x9a, 0x26, 0x8b, 0x53, 0xfa, 0x00, 0x01, 0x00, 0x00, // IID3010 - 0xd5, 0x30, 0x81, 0xac, 0x63, 0xc1, 0x1a, 0xd3, 0x5a, 0x00, 0x01, 0x00, 0x00, // IID3011 - 0xd5, 0x30, 0x81, 0xac, 0x6c, 0x8f, 0x70, 0xf2, 0x46, 0x00, 0x01, 0x00, 0x00, // IID3012 - 0xd5, 0x30, 0x81, 0xac, 0x75, 0x68, 0x42, 0xb6, 0x81, 0x00, 0x01, 0x00, 0x00, // IID3013 - 0xd5, 0x10, 0x81, 0xae, 0xa6, 0xe2, 0xa0, 0x00, 0x00, 0x01, 0x00, 0x00, // IID3014 - 0xd5, 0x32, 0x81, 0xac, 0x47, 0xe2, 0x3c, 0x18, 0x6d, 0x00, 0x01, 0x00, 0x00, // IID3015 - 0xd5, 0x33, 0x81, 0xac, 0x48, 0x4d, 0x3b, 0xdf, 0x42, 0x00, 0x01, 0x00, 0x00, // IID3016 - 0xd5, 0x11, 0x81, 0xa9, 0xd8, 0x9c, 0x02, 0x58, 0x00, 0x01, 0x00, 0x00, // IID3017 - 0xd5, 0x33, 0x81, 0xac, 0x5a, 0x95, 0x43, 0x04, 0x8f, 0x00, 0x01, 0x00, 0x00, // IID3018 - 0xd5, 0x33, 0x81, 0xac, 0x63, 0xb6, 0x65, 0x6e, 0x2b, 0x00, 0x01, 0x00, 0x00, // IID3019 - 0xd5, 0x33, 0x81, 0xac, 0xac, 0x0e, 0x88, 0xe8, 0x9b, 0x00, 0x01, 0x00, 0x00, // IID3020 - 0xd5, 0x33, 0x81, 0xac, 0xf5, 0x53, 0x92, 0x66, 0x74, 0x00, 0x01, 0x00, 0x00, // IID3021 - 0xd5, 0x33, 0x81, 0xac, 0x3e, 0xb4, 0x8f, 0xc6, 0x49, 0x00, 0x01, 0x00, 0x00, // IID3022 - 0xd5, 0x11, 0x81, 0xac, 0x4f, 0xc6, 0x19, 0x1a, 0x9b, 0x00, 0x01, 0x00, 0x00, // IID3023 - 0x81, 0xac, 0x11, 0x51, 0xf1, 0x13, 0xc6, 0x00, 0x10, 0x00, 0x00, // IID3024 - 0x81, 0xac, 0x5a, 0x6e, 0x3e, 0xe7, 0xe1, 0x00, 0x10, 0x00, 0x00, // IID3025 - 0x42, 0x81, 0xac, 0x83, 0xba, 0xe2, 0xbf, 0xb3, 0x00, 0x10, 0x00, 0x00, // IID3026 - 0x43, 0x81, 0xac, 0xc8, 0x9b, 0x0c, 0x2a, 0xa7, 0x00, 0x10, 0x00, 0x00, // IID3027 - 0x43, 0x81, 0xac, 0x91, 0x35, 0x92, 0x63, 0x7b, 0x00, 0x10, 0x00, 0x00, // IID3028 - 0x41, 0x81, 0xaa, 0xd5, 0x10, 0x89, 0x7c, 0x00, 0x10, 0x00, 0x00, // IID3029 - 0x41, 0x81, 0xab, 0x1c, 0xc7, 0xb3, 0x16, 0x00, 0x10, 0x00, 0x00, // IID3030 - 0x41, 0x81, 0xac, 0x24, 0x5a, 0xea, 0xd7, 0xd8, 0x00, 0x10, 0x00, 0x00, // IID3031 - 0x43, 0x81, 0xac, 0xb5, 0xd1, 0x6f, 0x10, 0x41, 0x00, 0x10, 0x00, 0x00, // IID3032 - 0x43, 0x81, 0xac, 0x3e, 0xb4, 0x92, 0x29, 0x66, 0x00, 0x10, 0x00, 0x00, // IID3033 - 0x41, 0x81, 0xaf, 0x83, 0x8f, 0x03, 0x4a, 0x00, 0x10, 0x00, 0x00, // IID3034 - 0xd5, 0x30, 0x81, 0xac, 0x08, 0x44, 0xbe, 0x1a, 0x7d, 0x00, 0x10, 0x00, 0x00, // IID3035 - 0xd5, 0x30, 0x81, 0xac, 0x91, 0x82, 0xf3, 0xc4, 0x1c, 0x00, 0x10, 0x00, 0x00, // IID3036 - 0xd5, 0x30, 0x81, 0xac, 0x5a, 0x40, 0xe1, 0x01, 0xee, 0x00, 0x10, 0x00, 0x00, // IID3037 - 0xd5, 0x30, 0x81, 0xac, 0x63, 0x43, 0x7a, 0x58, 0xb4, 0x00, 0x10, 0x00, 0x00, // IID3038 - 0xd5, 0x30, 0x81, 0xac, 0x2c, 0xef, 0x57, 0xc4, 0x52, 0x00, 0x10, 0x00, 0x00, // IID3039 - 0xd5, 0x30, 0x81, 0xac, 0x75, 0xa9, 0xc8, 0xdf, 0xb6, 0x00, 0x10, 0x00, 0x00, // IID3040 - 0xd5, 0x10, 0x81, 0xae, 0xe2, 0xa7, 0xc7, 0x5c, 0x00, 0x10, 0x00, 0x00, // IID3041 - 0xd5, 0x32, 0x81, 0xac, 0xc7, 0x91, 0xd0, 0xa5, 0x64, 0x00, 0x10, 0x00, 0x00, // IID3042 - 0xd5, 0x33, 0x81, 0xac, 0x88, 0xe4, 0x80, 0xd5, 0xc7, 0x00, 0x10, 0x00, 0x00, // IID3043 - 0xd5, 0x33, 0x81, 0xac, 0xd1, 0x13, 0x6d, 0x25, 0x62, 0x00, 0x10, 0x00, 0x00, // IID3044 - 0xd5, 0x33, 0x81, 0xac, 0xda, 0x11, 0x15, 0x01, 0x7e, 0x00, 0x10, 0x00, 0x00, // IID3045 - 0xd5, 0x33, 0x81, 0xac, 0x63, 0xd0, 0x0a, 0x13, 0xc2, 0x00, 0x10, 0x00, 0x00, // IID3046 - 0xd5, 0x33, 0x81, 0xac, 0xac, 0xdd, 0x2b, 0x2b, 0x37, 0x00, 0x10, 0x00, 0x00, // IID3047 - 0xd5, 0x33, 0x81, 0xac, 0x35, 0x4d, 0x3a, 0xee, 0xfc, 0x00, 0x10, 0x00, 0x00, // IID3048 - 0xd5, 0x33, 0x81, 0xac, 0xbe, 0xe1, 0xc5, 0x22, 0xf1, 0x00, 0x10, 0x00, 0x00, // IID3049 - 0xd5, 0x11, 0x81, 0xac, 0xcf, 0xaa, 0x76, 0x0d, 0x6d, 0x00, 0x10, 0x00, 0x00, // IID3050 - 0x81, 0xac, 0x91, 0xbc, 0x1a, 0x5a, 0x6a, 0x00, 0x00, 0x01, 0x00, // IID3051 - 0x81, 0xac, 0x9a, 0x91, 0x17, 0xa4, 0x9b, 0x00, 0x00, 0x01, 0x00, // IID3052 - 0x42, 0x81, 0xac, 0xc3, 0x6e, 0xa8, 0xbe, 0x6d, 0x00, 0x00, 0x01, 0x00, // IID3053 - 0x43, 0x81, 0xac, 0xc8, 0x77, 0x17, 0x96, 0x7f, 0x00, 0x00, 0x01, 0x00, // IID3054 - 0x43, 0x81, 0xac, 0x91, 0x6e, 0x71, 0x4c, 0x12, 0x00, 0x00, 0x01, 0x00, // IID3055 - 0x43, 0x81, 0xac, 0x9a, 0x3c, 0xd1, 0x82, 0x15, 0x00, 0x00, 0x01, 0x00, // IID3056 - 0x43, 0x81, 0xac, 0xa3, 0xf0, 0x9d, 0x0d, 0xaf, 0x00, 0x00, 0x01, 0x00, // IID3057 - 0x41, 0x81, 0xac, 0x24, 0x70, 0x30, 0x13, 0xaf, 0x00, 0x00, 0x01, 0x00, // IID3058 - 0x43, 0x81, 0xac, 0x35, 0xbc, 0x70, 0x31, 0x65, 0x00, 0x00, 0x01, 0x00, // IID3059 - 0x43, 0x81, 0xac, 0xfe, 0xf0, 0xb3, 0xe1, 0xc3, 0x00, 0x00, 0x01, 0x00, // IID3060 - 0x41, 0x81, 0xaf, 0xae, 0x14, 0x2c, 0x75, 0x00, 0x00, 0x01, 0x00, // IID3061 - 0xd5, 0x30, 0x81, 0xac, 0x08, 0x46, 0x40, 0x36, 0x5a, 0x00, 0x00, 0x01, 0x00, // IID3062 - 0xd5, 0x30, 0x81, 0xac, 0xd1, 0xd3, 0x4c, 0x43, 0xfd, 0x00, 0x00, 0x01, 0x00, // IID3063 - 0xd5, 0x10, 0x81, 0xaa, 0x57, 0x58, 0x58, 0x68, 0x00, 0x00, 0x01, 0x00, // IID3064 - 0xd5, 0x30, 0x81, 0xac, 0x23, 0x14, 0x50, 0xc6, 0x65, 0x00, 0x00, 0x01, 0x00, // IID3065 - 0xd5, 0x30, 0x81, 0xac, 0x6c, 0xaa, 0x46, 0xc4, 0x9d, 0x00, 0x00, 0x01, 0x00, // IID3066 - 0xd5, 0x30, 0x81, 0xac, 0xb5, 0xd2, 0x2a, 0x92, 0x9c, 0x00, 0x00, 0x01, 0x00, // IID3067 - 0xd5, 0x30, 0x81, 0xac, 0x7e, 0x6d, 0xca, 0x91, 0x3c, 0x00, 0x00, 0x01, 0x00, // IID3068 - 0xd5, 0x32, 0x81, 0xac, 0xc7, 0x6d, 0x1d, 0x58, 0x83, 0x00, 0x00, 0x01, 0x00, // IID3069 - 0xd5, 0x33, 0x81, 0xac, 0xc8, 0xae, 0x76, 0xa3, 0x83, 0x00, 0x00, 0x01, 0x00, // IID3070 - 0xd5, 0x33, 0x81, 0xac, 0x51, 0xe8, 0x12, 0xb6, 0xf1, 0x00, 0x00, 0x01, 0x00, // IID3071 - 0xd5, 0x33, 0x81, 0xac, 0x1a, 0xaa, 0xd4, 0x0a, 0x38, 0x00, 0x00, 0x01, 0x00, // IID3072 - 0xd5, 0x11, 0x81, 0xab, 0xc3, 0x8f, 0x7c, 0xfb, 0x00, 0x00, 0x01, 0x00, // IID3073 - 0xd5, 0x33, 0x81, 0xac, 0x2c, 0x62, 0xb7, 0xc5, 0x09, 0x00, 0x00, 0x01, 0x00, // IID3074 - 0xd5, 0x33, 0x81, 0xac, 0x75, 0x01, 0x6c, 0xac, 0x40, 0x00, 0x00, 0x01, 0x00, // IID3075 - 0xd5, 0x11, 0x81, 0xae, 0x2b, 0xe1, 0x6f, 0xd4, 0x00, 0x00, 0x01, 0x00, // IID3076 - 0xd5, 0x11, 0x81, 0xac, 0x8f, 0xed, 0x22, 0x50, 0x3d, 0x00, 0x00, 0x01, 0x00, // IID3077 - 0x81, 0xac, 0xd1, 0x92, 0x41, 0x85, 0x1a, 0x00, 0x00, 0x10, 0x00, // IID3078 - 0x81, 0xac, 0x5a, 0xb9, 0x24, 0xff, 0x5a, 0x00, 0x00, 0x10, 0x00, // IID3079 - 0x42, 0x81, 0xac, 0x43, 0xa1, 0xdd, 0x79, 0xcd, 0x00, 0x00, 0x10, 0x00, // IID3080 - 0x43, 0x81, 0xac, 0x48, 0x9f, 0x31, 0x74, 0x35, 0x00, 0x00, 0x10, 0x00, // IID3081 - 0x43, 0x81, 0xac, 0x51, 0xe8, 0xa7, 0xae, 0x7b, 0x00, 0x00, 0x10, 0x00, // IID3082 - 0x43, 0x81, 0xac, 0x9a, 0x6b, 0x3c, 0x9a, 0x38, 0x00, 0x00, 0x10, 0x00, // IID3083 - 0x43, 0x81, 0xac, 0x63, 0x0a, 0x80, 0xa3, 0x71, 0x00, 0x00, 0x10, 0x00, // IID3084 - 0x41, 0x81, 0xac, 0x24, 0xe3, 0x84, 0x62, 0x25, 0x00, 0x00, 0x10, 0x00, // IID3085 - 0x43, 0x81, 0xac, 0xb5, 0x02, 0x7a, 0xf0, 0xbf, 0x00, 0x00, 0x10, 0x00, // IID3086 - 0x43, 0x81, 0xac, 0xbe, 0x25, 0x82, 0xf8, 0x97, 0x00, 0x00, 0x10, 0x00, // IID3087 - 0xd5, 0x21, 0x81, 0xac, 0x07, 0xad, 0x52, 0x02, 0xa6, 0x00, 0x00, 0x10, 0x00, // IID3088 - 0xd5, 0x30, 0x81, 0xac, 0x08, 0xfc, 0xfe, 0xd6, 0x08, 0x00, 0x00, 0x10, 0x00, // IID3089 - 0xd5, 0x30, 0x81, 0xac, 0x51, 0x32, 0xc2, 0x6c, 0x0e, 0x00, 0x00, 0x10, 0x00, // IID3090 - 0xd5, 0x30, 0x81, 0xac, 0x5a, 0xcc, 0x07, 0x0c, 0x55, 0x00, 0x00, 0x10, 0x00, // IID3091 - 0xd5, 0x10, 0x81, 0xab, 0x93, 0xf6, 0xe2, 0x11, 0x00, 0x00, 0x10, 0x00, // IID3092 - 0xd5, 0x30, 0x81, 0xac, 0xac, 0x0f, 0xe1, 0x57, 0x14, 0x00, 0x00, 0x10, 0x00, // IID3093 - 0xd5, 0x30, 0x81, 0xac, 0xf5, 0xc9, 0x9c, 0x2e, 0xbe, 0x00, 0x00, 0x10, 0x00, // IID3094 - 0xd5, 0x30, 0x81, 0xac, 0x7e, 0xf8, 0x04, 0xdd, 0x22, 0x00, 0x00, 0x10, 0x00, // IID3095 - 0xd5, 0x32, 0x81, 0xac, 0x47, 0x6b, 0x9c, 0xbd, 0xc3, 0x00, 0x00, 0x10, 0x00, // IID3096 - 0xd5, 0x33, 0x81, 0xac, 0x48, 0xb4, 0x87, 0x67, 0xb4, 0x00, 0x00, 0x10, 0x00, // IID3097 - 0xd5, 0x33, 0x81, 0xac, 0x11, 0xfb, 0x46, 0xde, 0xad, 0x00, 0x00, 0x10, 0x00, // IID3098 - 0xd5, 0x11, 0x81, 0xaa, 0x72, 0xa9, 0xa7, 0x4f, 0x00, 0x00, 0x10, 0x00, // IID3099 - 0xd5, 0x33, 0x81, 0xac, 0x63, 0x40, 0x48, 0xc3, 0x2c, 0x00, 0x00, 0x10, 0x00, // IID3100 - 0xd5, 0x33, 0x81, 0xac, 0x2c, 0x71, 0xdd, 0xc1, 0x4a, 0x00, 0x00, 0x10, 0x00, // IID3101 - 0xd5, 0x33, 0x81, 0xac, 0x75, 0x13, 0x87, 0x72, 0xa1, 0x00, 0x00, 0x10, 0x00, // IID3102 - 0xd5, 0x33, 0x81, 0xac, 0xfe, 0xc2, 0xdd, 0x13, 0x7b, 0x00, 0x00, 0x10, 0x00, // IID3103 - 0xd5, 0x11, 0x81, 0xac, 0xcf, 0x90, 0xdf, 0x86, 0xfa, 0x00, 0x00, 0x10, 0x00, // IID3104 - 0x81, 0xac, 0x91, 0xe2, 0x12, 0x48, 0x54, 0x00, 0x00, 0x00, 0x01, // IID3105 - 0x81, 0xac, 0x1a, 0x7f, 0x22, 0xfb, 0xb0, 0x00, 0x00, 0x00, 0x01, // IID3106 - 0x42, 0x81, 0xac, 0x83, 0x40, 0x38, 0x88, 0xa5, 0x00, 0x00, 0x00, 0x01, // IID3107 - 0x43, 0x81, 0xac, 0x88, 0x0f, 0x4e, 0x32, 0x27, 0x00, 0x00, 0x00, 0x01, // IID3108 - 0x41, 0x81, 0xa9, 0x7f, 0x80, 0x21, 0x23, 0x00, 0x00, 0x00, 0x01, // IID3109 - 0x43, 0x81, 0xac, 0x9a, 0xdc, 0x33, 0x2e, 0x9b, 0x00, 0x00, 0x00, 0x01, // IID3110 - 0x43, 0x81, 0xac, 0xe3, 0xe0, 0x00, 0xa0, 0x51, 0x00, 0x00, 0x00, 0x01, // IID3111 - 0x43, 0x81, 0xac, 0x2c, 0x8c, 0x1f, 0x3b, 0x59, 0x00, 0x00, 0x00, 0x01, // IID3112 - 0x41, 0x81, 0xad, 0xcf, 0xc1, 0x39, 0x1b, 0x00, 0x00, 0x00, 0x01, // IID3113 - 0x43, 0x81, 0xac, 0x3e, 0x28, 0x7a, 0x15, 0xf5, 0x00, 0x00, 0x00, 0x01, // IID3114 - 0xd5, 0x21, 0x81, 0xac, 0x07, 0x7c, 0xd4, 0xdb, 0x14, 0x00, 0x00, 0x00, 0x01, // IID3115 - 0xd5, 0x30, 0x81, 0xac, 0x88, 0x25, 0x58, 0xe6, 0x87, 0x00, 0x00, 0x00, 0x01, // IID3116 - 0xd5, 0x30, 0x81, 0xac, 0x51, 0x15, 0x1d, 0x4b, 0x90, 0x00, 0x00, 0x00, 0x01, // IID3117 - 0xd5, 0x30, 0x81, 0xac, 0xda, 0x4a, 0x15, 0x7c, 0xe2, 0x00, 0x00, 0x00, 0x01, // IID3118 - 0xd5, 0x10, 0x81, 0xab, 0x9d, 0xaa, 0xc9, 0xb5, 0x00, 0x00, 0x00, 0x01, // IID3119 - 0xd5, 0x30, 0x81, 0xac, 0x2c, 0x79, 0x1b, 0x35, 0xeb, 0x00, 0x00, 0x00, 0x01, // IID3120 - 0xd5, 0x30, 0x81, 0xac, 0x35, 0x6e, 0xd5, 0xab, 0x9a, 0x00, 0x00, 0x00, 0x01, // IID3121 - 0xd5, 0x30, 0x81, 0xac, 0x7e, 0x7f, 0x73, 0x82, 0xb8, 0x00, 0x00, 0x00, 0x01, // IID3122 - 0xd5, 0x10, 0x81, 0xaf, 0x2d, 0x57, 0x5f, 0xe4, 0x00, 0x00, 0x00, 0x01, // IID3123 - 0xd5, 0x33, 0x81, 0xac, 0xc8, 0xc3, 0xf6, 0xbe, 0x69, 0x00, 0x00, 0x00, 0x01, // IID3124 - 0xd5, 0x11, 0x81, 0xa9, 0x45, 0xf2, 0x2a, 0x92, 0x00, 0x00, 0x00, 0x01, // IID3125 - 0xd5, 0x33, 0x81, 0xac, 0xda, 0xee, 0x69, 0x63, 0xcb, 0x00, 0x00, 0x00, 0x01, // IID3126 - 0xd5, 0x11, 0x81, 0xab, 0x3c, 0x3f, 0x26, 0xdd, 0x00, 0x00, 0x00, 0x01, // IID3127 - 0xd5, 0x33, 0x81, 0xac, 0xac, 0x7c, 0x7d, 0x60, 0xb6, 0x00, 0x00, 0x00, 0x01, // IID3128 - 0xd5, 0x33, 0x81, 0xac, 0xb5, 0xdc, 0x90, 0x7b, 0xbd, 0x00, 0x00, 0x00, 0x01, // IID3129 - 0xd5, 0x33, 0x81, 0xac, 0x7e, 0x6d, 0x01, 0x44, 0xc3, 0x00, 0x00, 0x00, 0x01, // IID3130 - 0xd5, 0x11, 0x81, 0xac, 0x4f, 0x1f, 0x7c, 0xb4, 0xc8, 0x00, 0x00, 0x00, 0x01, // IID3131 - 0x81, 0xac, 0x91, 0xe2, 0xcb, 0x87, 0xba, 0x00, 0x00, 0x00, 0x10, // IID3132 - 0x81, 0xac, 0x1a, 0xfc, 0x16, 0xe1, 0x07, 0x00, 0x00, 0x00, 0x10, // IID3133 - 0x42, 0x81, 0xac, 0x03, 0x16, 0xa0, 0x2d, 0x20, 0x00, 0x00, 0x00, 0x10, // IID3134 - 0x43, 0x81, 0xac, 0xc8, 0xce, 0xdb, 0x2e, 0x80, 0x00, 0x00, 0x00, 0x10, // IID3135 - 0x43, 0x81, 0xac, 0x91, 0xda, 0xf5, 0x22, 0xdf, 0x00, 0x00, 0x00, 0x10, // IID3136 - 0x41, 0x81, 0xaa, 0x39, 0x64, 0xeb, 0x12, 0x00, 0x00, 0x00, 0x10, // IID3137 - 0x43, 0x81, 0xac, 0xa3, 0xff, 0x2d, 0x4c, 0x55, 0x00, 0x00, 0x00, 0x10, // IID3138 - 0x41, 0x81, 0xac, 0x24, 0x64, 0x0f, 0x5c, 0x77, 0x00, 0x00, 0x00, 0x10, // IID3139 - 0x43, 0x81, 0xac, 0xf5, 0x36, 0xb1, 0x4e, 0x98, 0x00, 0x00, 0x00, 0x10, // IID3140 - 0x43, 0x81, 0xac, 0x3e, 0xc4, 0x42, 0x6b, 0x06, 0x00, 0x00, 0x00, 0x10, // IID3141 - 0xd5, 0x21, 0x81, 0xac, 0x87, 0x12, 0xe0, 0xdc, 0x66, 0x00, 0x00, 0x00, 0x10, // IID3142 - 0xd5, 0x30, 0x81, 0xac, 0x48, 0x32, 0x98, 0xfd, 0x50, 0x00, 0x00, 0x00, 0x10, // IID3143 - 0xd5, 0x30, 0x81, 0xac, 0x91, 0xaf, 0xb5, 0xdc, 0x04, 0x00, 0x00, 0x00, 0x10, // IID3144 - 0xd5, 0x10, 0x81, 0xaa, 0x8e, 0x0b, 0xc7, 0x53, 0x00, 0x00, 0x00, 0x10, // IID3145 - 0xd5, 0x30, 0x81, 0xac, 0xa3, 0xb0, 0xaf, 0xc5, 0xb6, 0x00, 0x00, 0x00, 0x10, // IID3146 - 0xd5, 0x30, 0x81, 0xac, 0x6c, 0x98, 0x9b, 0x7d, 0x5d, 0x00, 0x00, 0x00, 0x10, // IID3147 - 0xd5, 0x10, 0x81, 0xad, 0xfa, 0x81, 0xd7, 0xf4, 0x00, 0x00, 0x00, 0x10, // IID3148 - 0xd5, 0x10, 0x81, 0xae, 0x8a, 0x9a, 0x51, 0x2a, 0x00, 0x00, 0x00, 0x10, // IID3149 - 0xd5, 0x10, 0x81, 0xaf, 0x7a, 0xea, 0x49, 0x42, 0x00, 0x00, 0x00, 0x10, // IID3150 - 0xd5, 0x33, 0x81, 0xac, 0x48, 0x42, 0xf0, 0xdc, 0xb1, 0x00, 0x00, 0x00, 0x10, // IID3151 - 0xd5, 0x11, 0x81, 0xa9, 0x74, 0xc3, 0x6b, 0x3e, 0x00, 0x00, 0x00, 0x10, // IID3152 - 0xd5, 0x33, 0x81, 0xac, 0xda, 0x14, 0xd6, 0x8f, 0xb3, 0x00, 0x00, 0x00, 0x10, // IID3153 - 0xd5, 0x33, 0x81, 0xac, 0xa3, 0x4c, 0x19, 0x7a, 0x91, 0x00, 0x00, 0x00, 0x10, // IID3154 - 0xd5, 0x33, 0x81, 0xac, 0x2c, 0x90, 0x57, 0x51, 0x48, 0x00, 0x00, 0x00, 0x10, // IID3155 - 0xd5, 0x11, 0x81, 0xad, 0xfa, 0x1e, 0xe8, 0xbf, 0x00, 0x00, 0x00, 0x10, // IID3156 - 0xd5, 0x33, 0x81, 0xac, 0x3e, 0x60, 0x61, 0xa4, 0x9b, 0x00, 0x00, 0x00, 0x10, // IID3157 - 0xd5, 0x11, 0x81, 0xac, 0xcf, 0x2e, 0xf5, 0x0d, 0xa0, 0x00, 0x00, 0x00, 0x10, // IID3158 -#endif // _LP64 - 0x83, 0xb4, 0xd1, 0xaf, 0x00, 0x3f, 0x2f, 0x01, // IID3159 - 0x83, 0xb4, 0x5a, 0x7a, 0x5c, 0x01, 0xe0, 0x01, // IID3160 -#ifdef _LP64 - 0x42, 0x83, 0xb4, 0x03, 0x4a, 0xa9, 0xff, 0x09, 0x01, // IID3161 - 0x41, 0x83, 0xb0, 0xc1, 0x6a, 0x3a, 0xd7, 0x01, // IID3162 - 0x43, 0x83, 0xb4, 0xd1, 0xce, 0x57, 0xa4, 0xce, 0x01, // IID3163 - 0x43, 0x83, 0xb4, 0x1a, 0x22, 0xe1, 0x11, 0x1e, 0x01, // IID3164 - 0x43, 0x83, 0xb4, 0x23, 0xe0, 0x41, 0xb0, 0xf2, 0x01, // IID3165 - 0x43, 0x83, 0xb4, 0xac, 0xb1, 0x0e, 0x02, 0x0e, 0x01, // IID3166 - 0x43, 0x83, 0xb4, 0xf5, 0x58, 0x66, 0x7d, 0x5a, 0x01, // IID3167 - 0x43, 0x83, 0xb4, 0xbe, 0xac, 0xd1, 0xf2, 0x7d, 0x01, // IID3168 - 0xd5, 0x21, 0x83, 0xb4, 0x07, 0x57, 0x64, 0x51, 0x4c, 0x01, // IID3169 - 0xd5, 0x30, 0x83, 0xb4, 0xc8, 0xea, 0x4a, 0xa7, 0x93, 0x01, // IID3170 - 0xd5, 0x30, 0x83, 0xb4, 0xd1, 0x48, 0xbc, 0x20, 0xfc, 0x01, // IID3171 - 0xd5, 0x30, 0x83, 0xb4, 0x5a, 0x69, 0x7b, 0x02, 0x05, 0x01, // IID3172 - 0xd5, 0x10, 0x83, 0xb3, 0x9d, 0x76, 0xfe, 0xc9, 0x01, // IID3173 - 0xd5, 0x30, 0x83, 0xb4, 0xac, 0x42, 0x34, 0x93, 0xcb, 0x01, // IID3174 - 0xd5, 0x30, 0x83, 0xb4, 0x35, 0x1f, 0x24, 0x1a, 0xa0, 0x01, // IID3175 - 0xd5, 0x30, 0x83, 0xb4, 0x3e, 0x0b, 0x29, 0x66, 0xd7, 0x01, // IID3176 - 0xd5, 0x32, 0x83, 0xb4, 0x47, 0x1b, 0xd7, 0x19, 0xbb, 0x01, // IID3177 - 0xd5, 0x33, 0x83, 0xb4, 0x88, 0x9b, 0x68, 0x36, 0x0d, 0x01, // IID3178 - 0xd5, 0x33, 0x83, 0xb4, 0x51, 0xae, 0x96, 0xdd, 0x42, 0x01, // IID3179 - 0xd5, 0x33, 0x83, 0xb4, 0x5a, 0x2b, 0x7c, 0xaf, 0xc7, 0x01, // IID3180 - 0xd5, 0x33, 0x83, 0xb4, 0x23, 0xd4, 0xd3, 0xaf, 0x90, 0x01, // IID3181 - 0xd5, 0x33, 0x83, 0xb4, 0x2c, 0xd1, 0x61, 0xb7, 0x86, 0x01, // IID3182 - 0xd5, 0x11, 0x83, 0xb5, 0xd5, 0x0a, 0xa1, 0xc9, 0x01, // IID3183 - 0xd5, 0x11, 0x83, 0xb6, 0x96, 0xeb, 0x61, 0xde, 0x01, // IID3184 - 0xd5, 0x11, 0x83, 0xb4, 0x4f, 0x65, 0x96, 0x87, 0x05, 0x01, // IID3185 - 0x83, 0xb4, 0xd1, 0xb1, 0x11, 0xb8, 0xcd, 0x10, // IID3186 - 0x83, 0xb4, 0x9a, 0xea, 0x29, 0x1e, 0x8f, 0x10, // IID3187 - 0x42, 0x83, 0xb4, 0x83, 0x27, 0xfd, 0xe0, 0x60, 0x10, // IID3188 - 0x43, 0x83, 0xb4, 0xc8, 0xdd, 0x92, 0xb2, 0xf0, 0x10, // IID3189 - 0x43, 0x83, 0xb4, 0xd1, 0xd7, 0x95, 0x86, 0xd9, 0x10, // IID3190 - 0x43, 0x83, 0xb4, 0x1a, 0x38, 0x2c, 0xac, 0x91, 0x10, // IID3191 - 0x43, 0x83, 0xb4, 0xa3, 0x83, 0xcd, 0x25, 0xb5, 0x10, // IID3192 - 0x41, 0x83, 0xb4, 0x24, 0x3e, 0xcf, 0x43, 0xfb, 0x10, // IID3193 - 0x43, 0x83, 0xb4, 0x35, 0x61, 0xe2, 0x07, 0xa3, 0x10, // IID3194 - 0x43, 0x83, 0xb4, 0x7e, 0x8a, 0xa8, 0x0b, 0x13, 0x10, // IID3195 - 0xd5, 0x21, 0x83, 0xb4, 0x47, 0x93, 0x45, 0xb3, 0x36, 0x10, // IID3196 - 0xd5, 0x30, 0x83, 0xb4, 0xc8, 0x74, 0x36, 0x71, 0x5a, 0x10, // IID3197 - 0xd5, 0x30, 0x83, 0xb4, 0x91, 0xe6, 0x6c, 0x6f, 0xca, 0x10, // IID3198 - 0xd5, 0x30, 0x83, 0xb4, 0x5a, 0x79, 0x6b, 0x4f, 0x10, 0x10, // IID3199 - 0xd5, 0x30, 0x83, 0xb4, 0x23, 0x54, 0x7d, 0x48, 0xbe, 0x10, // IID3200 - 0xd5, 0x30, 0x83, 0xb4, 0xac, 0xb8, 0xd6, 0x75, 0x9c, 0x10, // IID3201 - 0xd5, 0x30, 0x83, 0xb4, 0xf5, 0xaf, 0x04, 0xe8, 0x88, 0x10, // IID3202 - 0xd5, 0x30, 0x83, 0xb4, 0xfe, 0xc6, 0x22, 0xbd, 0x63, 0x10, // IID3203 - 0xd5, 0x32, 0x83, 0xb4, 0x07, 0xe5, 0x89, 0xed, 0x12, 0x10, // IID3204 - 0xd5, 0x33, 0x83, 0xb4, 0xc8, 0xff, 0x6c, 0x1f, 0x82, 0x10, // IID3205 - 0xd5, 0x33, 0x83, 0xb4, 0x51, 0x62, 0x6c, 0x30, 0x5c, 0x10, // IID3206 - 0xd5, 0x33, 0x83, 0xb4, 0x5a, 0xc1, 0x73, 0x9a, 0xf1, 0x10, // IID3207 - 0xd5, 0x33, 0x83, 0xb4, 0x23, 0xfe, 0x11, 0xd9, 0x49, 0x10, // IID3208 - 0xd5, 0x33, 0x83, 0xb4, 0x2c, 0x20, 0x07, 0x80, 0xa8, 0x10, // IID3209 - 0xd5, 0x33, 0x83, 0xb4, 0x35, 0xfb, 0x98, 0x23, 0xdb, 0x10, // IID3210 - 0xd5, 0x33, 0x83, 0xb4, 0x7e, 0x5d, 0x73, 0x02, 0x5d, 0x10, // IID3211 - 0xd5, 0x11, 0x83, 0xb4, 0x8f, 0xa0, 0x76, 0x6c, 0x00, 0x10, // IID3212 - 0x81, 0xb4, 0x11, 0xc1, 0xcd, 0x9b, 0x87, 0x00, 0x01, 0x00, 0x00, // IID3213 - 0x81, 0xb2, 0x9f, 0x84, 0x5c, 0xad, 0x00, 0x01, 0x00, 0x00, // IID3214 - 0x42, 0x81, 0xb4, 0x03, 0x91, 0x4c, 0x5d, 0x3e, 0x00, 0x01, 0x00, 0x00, // IID3215 - 0x43, 0x81, 0xb4, 0x88, 0xe8, 0x9e, 0x48, 0x1d, 0x00, 0x01, 0x00, 0x00, // IID3216 - 0x41, 0x81, 0xb1, 0xab, 0x53, 0x4c, 0x61, 0x00, 0x01, 0x00, 0x00, // IID3217 - 0x43, 0x81, 0xb4, 0xda, 0x22, 0x81, 0x6c, 0xe5, 0x00, 0x01, 0x00, 0x00, // IID3218 - 0x43, 0x81, 0xb4, 0xa3, 0x83, 0xfe, 0x35, 0x2a, 0x00, 0x01, 0x00, 0x00, // IID3219 - 0x43, 0x81, 0xb4, 0x2c, 0x85, 0x67, 0x8d, 0xf8, 0x00, 0x01, 0x00, 0x00, // IID3220 - 0x43, 0x81, 0xb4, 0x35, 0x33, 0xb0, 0x25, 0x05, 0x00, 0x01, 0x00, 0x00, // IID3221 - 0x43, 0x81, 0xb4, 0x7e, 0xdf, 0xed, 0x0c, 0x17, 0x00, 0x01, 0x00, 0x00, // IID3222 - 0xd5, 0x21, 0x81, 0xb4, 0x87, 0xec, 0xb2, 0xce, 0x41, 0x00, 0x01, 0x00, 0x00, // IID3223 - 0xd5, 0x30, 0x81, 0xb4, 0x48, 0x93, 0x99, 0x7d, 0xbd, 0x00, 0x01, 0x00, 0x00, // IID3224 - 0xd5, 0x30, 0x81, 0xb4, 0x51, 0x9c, 0xdd, 0x63, 0xf3, 0x00, 0x01, 0x00, 0x00, // IID3225 - 0xd5, 0x30, 0x81, 0xb4, 0x5a, 0xe7, 0xc2, 0x07, 0xd1, 0x00, 0x01, 0x00, 0x00, // IID3226 - 0xd5, 0x30, 0x81, 0xb4, 0x23, 0x5b, 0xc5, 0x16, 0x4e, 0x00, 0x01, 0x00, 0x00, // IID3227 - 0xd5, 0x30, 0x81, 0xb4, 0x2c, 0xa4, 0x5d, 0xba, 0xaa, 0x00, 0x01, 0x00, 0x00, // IID3228 - 0xd5, 0x30, 0x81, 0xb4, 0x35, 0xf0, 0x2a, 0x8d, 0xd0, 0x00, 0x01, 0x00, 0x00, // IID3229 - 0xd5, 0x30, 0x81, 0xb4, 0x3e, 0x91, 0xdd, 0xb2, 0xba, 0x00, 0x01, 0x00, 0x00, // IID3230 - 0xd5, 0x32, 0x81, 0xb4, 0x87, 0xc9, 0xa3, 0x4b, 0x9c, 0x00, 0x01, 0x00, 0x00, // IID3231 - 0xd5, 0x33, 0x81, 0xb4, 0x88, 0x02, 0x71, 0x97, 0x9f, 0x00, 0x01, 0x00, 0x00, // IID3232 - 0xd5, 0x11, 0x81, 0xb1, 0x13, 0x82, 0x60, 0xa0, 0x00, 0x01, 0x00, 0x00, // IID3233 - 0xd5, 0x33, 0x81, 0xb4, 0x1a, 0x06, 0xdb, 0xe6, 0x48, 0x00, 0x01, 0x00, 0x00, // IID3234 - 0xd5, 0x33, 0x81, 0xb4, 0xa3, 0xca, 0x76, 0x1f, 0xfd, 0x00, 0x01, 0x00, 0x00, // IID3235 - 0xd5, 0x33, 0x81, 0xb4, 0x2c, 0x90, 0xdc, 0x46, 0x3b, 0x00, 0x01, 0x00, 0x00, // IID3236 - 0xd5, 0x11, 0x81, 0xb5, 0x11, 0x7c, 0x69, 0x21, 0x00, 0x01, 0x00, 0x00, // IID3237 - 0xd5, 0x11, 0x81, 0xb6, 0x61, 0x05, 0x2f, 0x21, 0x00, 0x01, 0x00, 0x00, // IID3238 - 0xd5, 0x11, 0x81, 0xb7, 0xb6, 0x1f, 0xa4, 0xd7, 0x00, 0x01, 0x00, 0x00, // IID3239 - 0x81, 0xb4, 0x11, 0xdb, 0x15, 0xc9, 0xf2, 0x00, 0x10, 0x00, 0x00, // IID3240 - 0x81, 0xb2, 0x89, 0x9b, 0x71, 0x61, 0x00, 0x10, 0x00, 0x00, // IID3241 - 0x81, 0xb3, 0x28, 0xca, 0x15, 0xab, 0x00, 0x10, 0x00, 0x00, // IID3242 - 0x43, 0x81, 0xb4, 0xc8, 0xf8, 0xe2, 0xd4, 0x88, 0x00, 0x10, 0x00, 0x00, // IID3243 - 0x43, 0x81, 0xb4, 0xd1, 0x80, 0xca, 0xf0, 0x20, 0x00, 0x10, 0x00, 0x00, // IID3244 - 0x43, 0x81, 0xb4, 0x5a, 0x57, 0xd0, 0x84, 0xf6, 0x00, 0x10, 0x00, 0x00, // IID3245 - 0x43, 0x81, 0xb4, 0xe3, 0x22, 0xa3, 0xd9, 0x11, 0x00, 0x10, 0x00, 0x00, // IID3246 - 0x43, 0x81, 0xb4, 0x6c, 0xf7, 0xb7, 0x22, 0x35, 0x00, 0x10, 0x00, 0x00, // IID3247 - 0x43, 0x81, 0xb4, 0xf5, 0x16, 0xea, 0x15, 0xa2, 0x00, 0x10, 0x00, 0x00, // IID3248 - 0x43, 0x81, 0xb4, 0xbe, 0x02, 0x65, 0xb6, 0x15, 0x00, 0x10, 0x00, 0x00, // IID3249 - 0xd5, 0x21, 0x81, 0xb4, 0xc7, 0xa4, 0xb8, 0x59, 0x43, 0x00, 0x10, 0x00, 0x00, // IID3250 - 0xd5, 0x10, 0x81, 0xb0, 0xaa, 0x19, 0x2d, 0x55, 0x00, 0x10, 0x00, 0x00, // IID3251 - 0xd5, 0x30, 0x81, 0xb4, 0x11, 0x96, 0xba, 0x07, 0x61, 0x00, 0x10, 0x00, 0x00, // IID3252 - 0xd5, 0x30, 0x81, 0xb4, 0x1a, 0xd7, 0xfa, 0x45, 0x0b, 0x00, 0x10, 0x00, 0x00, // IID3253 - 0xd5, 0x30, 0x81, 0xb4, 0x63, 0x1c, 0xda, 0xb2, 0x4c, 0x00, 0x10, 0x00, 0x00, // IID3254 - 0xd5, 0x30, 0x81, 0xb4, 0xac, 0x19, 0x4e, 0x11, 0xe2, 0x00, 0x10, 0x00, 0x00, // IID3255 - 0xd5, 0x30, 0x81, 0xb4, 0x75, 0x70, 0x63, 0x56, 0x5f, 0x00, 0x10, 0x00, 0x00, // IID3256 - 0xd5, 0x30, 0x81, 0xb4, 0x7e, 0x5b, 0x8c, 0x14, 0x9c, 0x00, 0x10, 0x00, 0x00, // IID3257 - 0xd5, 0x32, 0x81, 0xb4, 0x87, 0x9a, 0x9b, 0x92, 0x92, 0x00, 0x10, 0x00, 0x00, // IID3258 - 0xd5, 0x33, 0x81, 0xb4, 0x48, 0xff, 0x61, 0x0b, 0x72, 0x00, 0x10, 0x00, 0x00, // IID3259 - 0xd5, 0x33, 0x81, 0xb4, 0x11, 0x7e, 0x22, 0xc8, 0x9d, 0x00, 0x10, 0x00, 0x00, // IID3260 - 0xd5, 0x33, 0x81, 0xb4, 0x1a, 0x8a, 0x17, 0x9f, 0xaf, 0x00, 0x10, 0x00, 0x00, // IID3261 - 0xd5, 0x33, 0x81, 0xb4, 0xe3, 0x5e, 0x28, 0x10, 0xce, 0x00, 0x10, 0x00, 0x00, // IID3262 - 0xd5, 0x33, 0x81, 0xb4, 0xec, 0x07, 0xb0, 0x58, 0x56, 0x00, 0x10, 0x00, 0x00, // IID3263 - 0xd5, 0x33, 0x81, 0xb4, 0xf5, 0x37, 0x6a, 0x46, 0xb0, 0x00, 0x10, 0x00, 0x00, // IID3264 - 0xd5, 0x33, 0x81, 0xb4, 0x3e, 0x3b, 0x6b, 0x7b, 0xcd, 0x00, 0x10, 0x00, 0x00, // IID3265 - 0xd5, 0x11, 0x81, 0xb4, 0xcf, 0xc8, 0xe1, 0xbc, 0xdc, 0x00, 0x10, 0x00, 0x00, // IID3266 - 0x81, 0xb1, 0xb1, 0x14, 0xf0, 0xf2, 0x00, 0x00, 0x01, 0x00, // IID3267 - 0x81, 0xb4, 0x9a, 0x62, 0xce, 0xf4, 0x58, 0x00, 0x00, 0x01, 0x00, // IID3268 - 0x42, 0x81, 0xb4, 0x03, 0x30, 0x92, 0x91, 0xa1, 0x00, 0x00, 0x01, 0x00, // IID3269 - 0x41, 0x81, 0xb0, 0x15, 0x70, 0xec, 0x14, 0x00, 0x00, 0x01, 0x00, // IID3270 - 0x43, 0x81, 0xb4, 0x11, 0x85, 0x7b, 0xf0, 0x2a, 0x00, 0x00, 0x01, 0x00, // IID3271 - 0x43, 0x81, 0xb4, 0x9a, 0xa0, 0xca, 0xa0, 0xfd, 0x00, 0x00, 0x01, 0x00, // IID3272 - 0x43, 0x81, 0xb4, 0xa3, 0x61, 0x97, 0x11, 0x01, 0x00, 0x00, 0x01, 0x00, // IID3273 - 0x43, 0x81, 0xb4, 0x2c, 0xdb, 0xc3, 0x46, 0xda, 0x00, 0x00, 0x01, 0x00, // IID3274 - 0x43, 0x81, 0xb4, 0xb5, 0x29, 0x60, 0xbe, 0x89, 0x00, 0x00, 0x01, 0x00, // IID3275 - 0x43, 0x81, 0xb4, 0xfe, 0xed, 0xb2, 0xe1, 0x11, 0x00, 0x00, 0x01, 0x00, // IID3276 - 0xd5, 0x21, 0x81, 0xb4, 0x07, 0x1d, 0xa4, 0xae, 0xc5, 0x00, 0x00, 0x01, 0x00, // IID3277 - 0xd5, 0x30, 0x81, 0xb4, 0x48, 0x4b, 0x90, 0x63, 0x30, 0x00, 0x00, 0x01, 0x00, // IID3278 - 0xd5, 0x30, 0x81, 0xb4, 0x51, 0x29, 0xe9, 0x62, 0xb4, 0x00, 0x00, 0x01, 0x00, // IID3279 - 0xd5, 0x30, 0x81, 0xb4, 0x1a, 0x6a, 0x88, 0xc8, 0x6d, 0x00, 0x00, 0x01, 0x00, // IID3280 - 0xd5, 0x30, 0x81, 0xb4, 0x63, 0xae, 0x1b, 0x74, 0x20, 0x00, 0x00, 0x01, 0x00, // IID3281 - 0xd5, 0x30, 0x81, 0xb4, 0x6c, 0xac, 0x11, 0x5d, 0x9e, 0x00, 0x00, 0x01, 0x00, // IID3282 - 0xd5, 0x30, 0x81, 0xb4, 0x35, 0xba, 0xf3, 0x64, 0xf9, 0x00, 0x00, 0x01, 0x00, // IID3283 - 0xd5, 0x30, 0x81, 0xb4, 0x7e, 0xfc, 0xdb, 0x45, 0x1b, 0x00, 0x00, 0x01, 0x00, // IID3284 - 0xd5, 0x32, 0x81, 0xb4, 0x07, 0x7b, 0xdf, 0x6e, 0xcb, 0x00, 0x00, 0x01, 0x00, // IID3285 - 0xd5, 0x33, 0x81, 0xb4, 0x88, 0x76, 0xb3, 0x57, 0xab, 0x00, 0x00, 0x01, 0x00, // IID3286 - 0xd5, 0x33, 0x81, 0xb4, 0x91, 0x17, 0x44, 0xfd, 0xd4, 0x00, 0x00, 0x01, 0x00, // IID3287 - 0xd5, 0x33, 0x81, 0xb4, 0x1a, 0x46, 0xd8, 0xd5, 0xf9, 0x00, 0x00, 0x01, 0x00, // IID3288 - 0xd5, 0x11, 0x81, 0xb3, 0xb5, 0x2b, 0x83, 0xe6, 0x00, 0x00, 0x01, 0x00, // IID3289 - 0xd5, 0x11, 0x81, 0xb4, 0x24, 0x48, 0xb7, 0xeb, 0xdc, 0x00, 0x00, 0x01, 0x00, // IID3290 - 0xd5, 0x33, 0x81, 0xb4, 0xf5, 0xfc, 0x08, 0xe3, 0xe4, 0x00, 0x00, 0x01, 0x00, // IID3291 - 0xd5, 0x33, 0x81, 0xb4, 0xbe, 0x0b, 0xe3, 0x35, 0xcf, 0x00, 0x00, 0x01, 0x00, // IID3292 - 0xd5, 0x11, 0x81, 0xb4, 0x8f, 0xfd, 0x0d, 0x09, 0xc6, 0x00, 0x00, 0x01, 0x00, // IID3293 - 0x81, 0xb4, 0xd1, 0x56, 0x59, 0x67, 0x38, 0x00, 0x00, 0x10, 0x00, // IID3294 - 0x81, 0xb2, 0x56, 0x50, 0x77, 0x50, 0x00, 0x00, 0x10, 0x00, // IID3295 - 0x42, 0x81, 0xb4, 0x43, 0x68, 0x6f, 0x44, 0x24, 0x00, 0x00, 0x10, 0x00, // IID3296 - 0x43, 0x81, 0xb4, 0xc8, 0x8d, 0x54, 0xd9, 0x63, 0x00, 0x00, 0x10, 0x00, // IID3297 - 0x43, 0x81, 0xb4, 0x51, 0x3a, 0x33, 0xce, 0x12, 0x00, 0x00, 0x10, 0x00, // IID3298 - 0x43, 0x81, 0xb4, 0xda, 0x68, 0x0c, 0x05, 0x46, 0x00, 0x00, 0x10, 0x00, // IID3299 - 0x43, 0x81, 0xb4, 0x23, 0x71, 0x03, 0x39, 0x6e, 0x00, 0x00, 0x10, 0x00, // IID3300 - 0x43, 0x81, 0xb4, 0x6c, 0xa3, 0x16, 0xb3, 0xaa, 0x00, 0x00, 0x10, 0x00, // IID3301 - 0x43, 0x81, 0xb4, 0xf5, 0x7f, 0xee, 0x2c, 0x4a, 0x00, 0x00, 0x10, 0x00, // IID3302 - 0x43, 0x81, 0xb4, 0x7e, 0x58, 0x90, 0xd0, 0xae, 0x00, 0x00, 0x10, 0x00, // IID3303 - 0xd5, 0x21, 0x81, 0xb4, 0x07, 0x0f, 0x13, 0x35, 0x77, 0x00, 0x00, 0x10, 0x00, // IID3304 - 0xd5, 0x10, 0x81, 0xb0, 0x7a, 0x96, 0x3a, 0x37, 0x00, 0x00, 0x10, 0x00, // IID3305 - 0xd5, 0x10, 0x81, 0xb1, 0x0f, 0x5b, 0x21, 0x87, 0x00, 0x00, 0x10, 0x00, // IID3306 - 0xd5, 0x30, 0x81, 0xb4, 0x9a, 0x91, 0x52, 0xea, 0xde, 0x00, 0x00, 0x10, 0x00, // IID3307 - 0xd5, 0x30, 0x81, 0xb4, 0xa3, 0x69, 0x1c, 0xa2, 0xba, 0x00, 0x00, 0x10, 0x00, // IID3308 - 0xd5, 0x30, 0x81, 0xb4, 0xac, 0x63, 0x0c, 0xa0, 0x22, 0x00, 0x00, 0x10, 0x00, // IID3309 - 0xd5, 0x30, 0x81, 0xb4, 0x35, 0x79, 0x33, 0x1d, 0xe7, 0x00, 0x00, 0x10, 0x00, // IID3310 - 0xd5, 0x30, 0x81, 0xb4, 0xbe, 0x66, 0xd9, 0xdf, 0xf4, 0x00, 0x00, 0x10, 0x00, // IID3311 - 0xd5, 0x32, 0x81, 0xb4, 0x07, 0xaa, 0x7e, 0x75, 0x30, 0x00, 0x00, 0x10, 0x00, // IID3312 - 0xd5, 0x11, 0x81, 0xb0, 0x79, 0xcb, 0x2d, 0xf9, 0x00, 0x00, 0x10, 0x00, // IID3313 - 0xd5, 0x33, 0x81, 0xb4, 0x91, 0x15, 0x08, 0xf6, 0x57, 0x00, 0x00, 0x10, 0x00, // IID3314 - 0xd5, 0x33, 0x81, 0xb4, 0x9a, 0x30, 0xf8, 0xcf, 0x86, 0x00, 0x00, 0x10, 0x00, // IID3315 - 0xd5, 0x33, 0x81, 0xb4, 0xa3, 0x8f, 0x7b, 0x12, 0x29, 0x00, 0x00, 0x10, 0x00, // IID3316 - 0xd5, 0x33, 0x81, 0xb4, 0x6c, 0x0f, 0x8c, 0xa8, 0x49, 0x00, 0x00, 0x10, 0x00, // IID3317 - 0xd5, 0x33, 0x81, 0xb4, 0xb5, 0x2f, 0xad, 0x4c, 0x14, 0x00, 0x00, 0x10, 0x00, // IID3318 - 0xd5, 0x33, 0x81, 0xb4, 0x7e, 0x53, 0x31, 0xa1, 0x45, 0x00, 0x00, 0x10, 0x00, // IID3319 - 0xd5, 0x11, 0x81, 0xb7, 0xdb, 0x84, 0x08, 0x55, 0x00, 0x00, 0x10, 0x00, // IID3320 - 0x81, 0xb4, 0x51, 0x27, 0x8f, 0xb0, 0x6e, 0x00, 0x00, 0x00, 0x01, // IID3321 - 0x81, 0xb2, 0x03, 0x51, 0xc3, 0xe4, 0x00, 0x00, 0x00, 0x01, // IID3322 - 0x42, 0x81, 0xb4, 0x83, 0x46, 0xd8, 0x86, 0xf7, 0x00, 0x00, 0x00, 0x01, // IID3323 - 0x43, 0x81, 0xb4, 0x88, 0x31, 0xdf, 0xde, 0xd7, 0x00, 0x00, 0x00, 0x01, // IID3324 - 0x43, 0x81, 0xb4, 0x91, 0x84, 0x84, 0x27, 0xf8, 0x00, 0x00, 0x00, 0x01, // IID3325 - 0x43, 0x81, 0xb4, 0x1a, 0x18, 0x4d, 0x37, 0x4c, 0x00, 0x00, 0x00, 0x01, // IID3326 - 0x43, 0x81, 0xb4, 0xe3, 0xff, 0x3a, 0x1e, 0xd2, 0x00, 0x00, 0x00, 0x01, // IID3327 - 0x41, 0x81, 0xb4, 0x24, 0x93, 0x2c, 0x6b, 0xc7, 0x00, 0x00, 0x00, 0x01, // IID3328 - 0x43, 0x81, 0xb4, 0xb5, 0xe3, 0x6c, 0x54, 0x27, 0x00, 0x00, 0x00, 0x01, // IID3329 - 0x43, 0x81, 0xb4, 0xbe, 0xe7, 0xe4, 0xff, 0xa7, 0x00, 0x00, 0x00, 0x01, // IID3330 - 0xd5, 0x21, 0x81, 0xb4, 0x47, 0x37, 0xd0, 0xc4, 0xba, 0x00, 0x00, 0x00, 0x01, // IID3331 - 0xd5, 0x10, 0x81, 0xb0, 0x49, 0x9b, 0x5d, 0x0b, 0x00, 0x00, 0x00, 0x01, // IID3332 - 0xd5, 0x30, 0x81, 0xb4, 0x11, 0x18, 0x79, 0x7a, 0x2f, 0x00, 0x00, 0x00, 0x01, // IID3333 - 0xd5, 0x10, 0x81, 0xb2, 0x9c, 0x3f, 0xe9, 0xcb, 0x00, 0x00, 0x00, 0x01, // IID3334 - 0xd5, 0x10, 0x81, 0xb3, 0x42, 0x9a, 0xfc, 0x74, 0x00, 0x00, 0x00, 0x01, // IID3335 - 0xd5, 0x30, 0x81, 0xb4, 0xac, 0xc9, 0xe9, 0x23, 0x33, 0x00, 0x00, 0x00, 0x01, // IID3336 - 0xd5, 0x30, 0x81, 0xb4, 0xb5, 0x1d, 0xab, 0x08, 0x40, 0x00, 0x00, 0x00, 0x01, // IID3337 - 0xd5, 0x30, 0x81, 0xb4, 0xbe, 0x87, 0x8c, 0x2a, 0x4f, 0x00, 0x00, 0x00, 0x01, // IID3338 - 0xd5, 0x32, 0x81, 0xb4, 0xc7, 0x24, 0xbb, 0xa7, 0xb5, 0x00, 0x00, 0x00, 0x01, // IID3339 - 0xd5, 0x33, 0x81, 0xb4, 0x48, 0x14, 0x2a, 0x09, 0x7d, 0x00, 0x00, 0x00, 0x01, // IID3340 - 0xd5, 0x33, 0x81, 0xb4, 0x51, 0xba, 0x24, 0x8a, 0xf1, 0x00, 0x00, 0x00, 0x01, // IID3341 - 0xd5, 0x33, 0x81, 0xb4, 0x5a, 0xff, 0x29, 0xd9, 0x69, 0x00, 0x00, 0x00, 0x01, // IID3342 - 0xd5, 0x33, 0x81, 0xb4, 0x23, 0x9a, 0xeb, 0x03, 0x0c, 0x00, 0x00, 0x00, 0x01, // IID3343 - 0xd5, 0x33, 0x81, 0xb4, 0xec, 0x36, 0xae, 0x2d, 0x3c, 0x00, 0x00, 0x00, 0x01, // IID3344 - 0xd5, 0x33, 0x81, 0xb4, 0xf5, 0xf3, 0x05, 0x5f, 0x6d, 0x00, 0x00, 0x00, 0x01, // IID3345 - 0xd5, 0x33, 0x81, 0xb4, 0xfe, 0xc8, 0xec, 0x43, 0xcb, 0x00, 0x00, 0x00, 0x01, // IID3346 - 0xd5, 0x11, 0x81, 0xb4, 0xcf, 0xcc, 0xf0, 0xc2, 0x07, 0x00, 0x00, 0x00, 0x01, // IID3347 - 0x81, 0xb4, 0x51, 0x1b, 0xb8, 0x0c, 0xcc, 0x00, 0x00, 0x00, 0x10, // IID3348 - 0x81, 0xb4, 0xda, 0x1f, 0xff, 0x9d, 0xbc, 0x00, 0x00, 0x00, 0x10, // IID3349 - 0x42, 0x81, 0xb4, 0x83, 0x2b, 0xed, 0x95, 0xa6, 0x00, 0x00, 0x00, 0x10, // IID3350 - 0x41, 0x81, 0xb0, 0x3e, 0x5b, 0x29, 0xe8, 0x00, 0x00, 0x00, 0x10, // IID3351 - 0x43, 0x81, 0xb4, 0x91, 0xee, 0xd0, 0x16, 0x5f, 0x00, 0x00, 0x00, 0x10, // IID3352 - 0x41, 0x81, 0xb2, 0x4b, 0x08, 0x88, 0x9d, 0x00, 0x00, 0x00, 0x10, // IID3353 - 0x43, 0x81, 0xb4, 0xa3, 0x9f, 0x6a, 0x5d, 0xb5, 0x00, 0x00, 0x00, 0x10, // IID3354 - 0x43, 0x81, 0xb4, 0x2c, 0xc6, 0x56, 0x0c, 0x9e, 0x00, 0x00, 0x00, 0x10, // IID3355 - 0x43, 0x81, 0xb4, 0xb5, 0x50, 0xca, 0x88, 0x09, 0x00, 0x00, 0x00, 0x10, // IID3356 - 0x41, 0x81, 0xb6, 0x15, 0x54, 0xdf, 0xd7, 0x00, 0x00, 0x00, 0x10, // IID3357 - 0xd5, 0x21, 0x81, 0xb4, 0x87, 0xf3, 0x84, 0x9d, 0xd9, 0x00, 0x00, 0x00, 0x10, // IID3358 - 0xd5, 0x30, 0x81, 0xb4, 0x88, 0x32, 0x94, 0xbe, 0x91, 0x00, 0x00, 0x00, 0x10, // IID3359 - 0xd5, 0x10, 0x81, 0xb1, 0xa2, 0xc3, 0xdf, 0x8f, 0x00, 0x00, 0x00, 0x10, // IID3360 - 0xd5, 0x30, 0x81, 0xb4, 0xda, 0xee, 0xcb, 0x55, 0xee, 0x00, 0x00, 0x00, 0x10, // IID3361 - 0xd5, 0x30, 0x81, 0xb4, 0x23, 0x6f, 0x40, 0x12, 0x98, 0x00, 0x00, 0x00, 0x10, // IID3362 - 0xd5, 0x30, 0x81, 0xb4, 0xac, 0x35, 0x78, 0x28, 0x21, 0x00, 0x00, 0x00, 0x10, // IID3363 - 0xd5, 0x30, 0x81, 0xb4, 0x75, 0x5d, 0x77, 0x9e, 0xcd, 0x00, 0x00, 0x00, 0x10, // IID3364 - 0xd5, 0x30, 0x81, 0xb4, 0x7e, 0x96, 0xa7, 0x37, 0x44, 0x00, 0x00, 0x00, 0x10, // IID3365 - 0xd5, 0x10, 0x81, 0xb7, 0x2c, 0x6d, 0x25, 0x6b, 0x00, 0x00, 0x00, 0x10, // IID3366 - 0xd5, 0x33, 0x81, 0xb4, 0xc8, 0x2d, 0x37, 0xe4, 0xb0, 0x00, 0x00, 0x00, 0x10, // IID3367 - 0xd5, 0x33, 0x81, 0xb4, 0x51, 0x53, 0xa5, 0xf2, 0xc5, 0x00, 0x00, 0x00, 0x10, // IID3368 - 0xd5, 0x11, 0x81, 0xb2, 0x4b, 0xc4, 0x31, 0xe0, 0x00, 0x00, 0x00, 0x10, // IID3369 - 0xd5, 0x33, 0x81, 0xb4, 0x23, 0x9b, 0xca, 0x27, 0x09, 0x00, 0x00, 0x00, 0x10, // IID3370 - 0xd5, 0x33, 0x81, 0xb4, 0x2c, 0xd4, 0x42, 0xbc, 0xcd, 0x00, 0x00, 0x00, 0x10, // IID3371 - 0xd5, 0x33, 0x81, 0xb4, 0x35, 0x0c, 0xd0, 0xec, 0x71, 0x00, 0x00, 0x00, 0x10, // IID3372 - 0xd5, 0x33, 0x81, 0xb4, 0xbe, 0x3c, 0xf9, 0x01, 0xae, 0x00, 0x00, 0x00, 0x10, // IID3373 - 0xd5, 0x11, 0x81, 0xb4, 0xcf, 0xd4, 0x5d, 0xbc, 0x31, 0x00, 0x00, 0x00, 0x10, // IID3374 -#endif // _LP64 - 0x80, 0x8c, 0xd1, 0xac, 0x5b, 0x4d, 0xac, 0x01, // IID3375 - 0x80, 0x8c, 0xda, 0x51, 0x12, 0x22, 0xf1, 0x01, // IID3376 -#ifdef _LP64 - 0x80, 0x8b, 0xf3, 0x66, 0x69, 0x2e, 0x01, // IID3377 - 0x41, 0x80, 0x88, 0xe2, 0xfb, 0x0e, 0xa4, 0x01, // IID3378 - 0x41, 0x80, 0x89, 0x2d, 0x7c, 0x1c, 0xec, 0x01, // IID3379 - 0x41, 0x80, 0x8a, 0x2b, 0x07, 0x90, 0xa3, 0x01, // IID3380 - 0x41, 0x80, 0x8b, 0x3f, 0x67, 0xbc, 0x02, 0x01, // IID3381 - 0x43, 0x80, 0x8c, 0x2c, 0x06, 0x55, 0x2c, 0xa6, 0x01, // IID3382 - 0x43, 0x80, 0x8c, 0xf5, 0x38, 0x27, 0x15, 0xae, 0x01, // IID3383 - 0x43, 0x80, 0x8c, 0xbe, 0xc6, 0xb5, 0xda, 0x4c, 0x01, // IID3384 - 0xd5, 0x21, 0x80, 0x8c, 0xc7, 0xac, 0x20, 0x8c, 0xa2, 0x01, // IID3385 - 0xd5, 0x10, 0x80, 0x88, 0xba, 0x95, 0x19, 0x37, 0x01, // IID3386 - 0xd5, 0x30, 0x80, 0x8c, 0x51, 0x58, 0x72, 0x48, 0xf5, 0x01, // IID3387 - 0xd5, 0x10, 0x80, 0x8a, 0x1a, 0x18, 0xcd, 0x7e, 0x01, // IID3388 - 0xd5, 0x30, 0x80, 0x8c, 0x23, 0x02, 0xff, 0xbf, 0x84, 0x01, // IID3389 - 0xd5, 0x30, 0x80, 0x8c, 0x6c, 0xe8, 0x4c, 0xd8, 0xd3, 0x01, // IID3390 - 0xd5, 0x10, 0x80, 0x8d, 0x7d, 0x20, 0x53, 0x19, 0x01, // IID3391 - 0xd5, 0x30, 0x80, 0x8c, 0xbe, 0x44, 0xa7, 0xe3, 0xb4, 0x01, // IID3392 - 0xd5, 0x10, 0x80, 0x8f, 0xbe, 0xcf, 0x10, 0xe3, 0x01, // IID3393 - 0xd5, 0x33, 0x80, 0x8c, 0x88, 0x88, 0x8d, 0x13, 0xc3, 0x01, // IID3394 - 0xd5, 0x33, 0x80, 0x8c, 0x11, 0x1c, 0x8a, 0x25, 0xf4, 0x01, // IID3395 - 0xd5, 0x33, 0x80, 0x8c, 0xda, 0x7b, 0x18, 0xa1, 0x05, 0x01, // IID3396 - 0xd5, 0x11, 0x80, 0x8b, 0x91, 0xfc, 0x6b, 0x7d, 0x01, // IID3397 - 0xd5, 0x33, 0x80, 0x8c, 0x6c, 0x53, 0x4d, 0xea, 0x47, 0x01, // IID3398 - 0xd5, 0x33, 0x80, 0x8c, 0x35, 0xb5, 0xa2, 0x9e, 0xe9, 0x01, // IID3399 - 0xd5, 0x33, 0x80, 0x8c, 0xfe, 0xdd, 0x28, 0x34, 0x71, 0x01, // IID3400 - 0xd5, 0x11, 0x80, 0x8c, 0x0f, 0x3d, 0xc1, 0xdc, 0xe8, 0x01, // IID3401 - 0x80, 0x8c, 0xd1, 0x7b, 0x5b, 0xe1, 0xfb, 0x04, // IID3402 - 0x80, 0x8c, 0x9a, 0x4c, 0x69, 0x2a, 0xee, 0x04, // IID3403 - 0x80, 0x8b, 0xd2, 0x90, 0xb8, 0xb9, 0x04, // IID3404 - 0x41, 0x80, 0x88, 0xda, 0xf0, 0x58, 0x1c, 0x04, // IID3405 - 0x41, 0x80, 0x89, 0x47, 0xfc, 0xd2, 0x24, 0x04, // IID3406 - 0x43, 0x80, 0x8c, 0x5a, 0x81, 0x0b, 0xe2, 0x31, 0x04, // IID3407 - 0x43, 0x80, 0x8c, 0x63, 0xa1, 0x2c, 0x62, 0x0e, 0x04, // IID3408 - 0x43, 0x80, 0x8c, 0x6c, 0x93, 0xf3, 0x68, 0x93, 0x04, // IID3409 - 0x43, 0x80, 0x8c, 0x75, 0x59, 0x00, 0x5d, 0x13, 0x04, // IID3410 - 0x43, 0x80, 0x8c, 0x7e, 0x40, 0x0e, 0x0a, 0x14, 0x04, // IID3411 - 0xd5, 0x21, 0x80, 0x8c, 0x07, 0x5d, 0x83, 0x33, 0xbd, 0x04, // IID3412 - 0xd5, 0x30, 0x80, 0x8c, 0xc8, 0x1e, 0x4c, 0x18, 0x38, 0x04, // IID3413 - 0xd5, 0x30, 0x80, 0x8c, 0x11, 0xe2, 0xf4, 0x2e, 0xce, 0x04, // IID3414 - 0xd5, 0x30, 0x80, 0x8c, 0x9a, 0x53, 0xb3, 0x21, 0xab, 0x04, // IID3415 - 0xd5, 0x10, 0x80, 0x8b, 0x55, 0x4a, 0x4f, 0x7f, 0x04, // IID3416 - 0xd5, 0x30, 0x80, 0x8c, 0x2c, 0x80, 0x84, 0xbf, 0x4f, 0x04, // IID3417 - 0xd5, 0x30, 0x80, 0x8c, 0xb5, 0xbe, 0x3b, 0xe1, 0x81, 0x04, // IID3418 - 0xd5, 0x30, 0x80, 0x8c, 0x3e, 0x33, 0x88, 0xa9, 0x4e, 0x04, // IID3419 - 0xd5, 0x32, 0x80, 0x8c, 0x87, 0xc8, 0x21, 0x43, 0x80, 0x04, // IID3420 - 0xd5, 0x11, 0x80, 0x88, 0x26, 0xfc, 0x61, 0xc3, 0x04, // IID3421 - 0xd5, 0x33, 0x80, 0x8c, 0x11, 0x79, 0x68, 0x76, 0xab, 0x04, // IID3422 - 0xd5, 0x33, 0x80, 0x8c, 0xda, 0x76, 0xc5, 0xdd, 0x8f, 0x04, // IID3423 - 0xd5, 0x33, 0x80, 0x8c, 0xe3, 0xb7, 0x45, 0xe0, 0x85, 0x04, // IID3424 - 0xd5, 0x33, 0x80, 0x8c, 0x6c, 0x82, 0x0c, 0x98, 0x2b, 0x04, // IID3425 - 0xd5, 0x33, 0x80, 0x8c, 0xf5, 0xc3, 0x78, 0xb8, 0x95, 0x04, // IID3426 - 0xd5, 0x33, 0x80, 0x8c, 0x7e, 0x8a, 0xac, 0xfa, 0x53, 0x04, // IID3427 - 0xd5, 0x11, 0x80, 0x8c, 0x0f, 0x6b, 0x43, 0x6b, 0xd2, 0x04, // IID3428 - 0x80, 0x89, 0xb3, 0x3d, 0xdb, 0x25, 0x10, // IID3429 - 0x80, 0x8c, 0x1a, 0x59, 0x58, 0xea, 0x1d, 0x10, // IID3430 - 0x42, 0x80, 0x8c, 0x83, 0xa3, 0x26, 0xe0, 0x1f, 0x10, // IID3431 - 0x41, 0x80, 0x88, 0x27, 0x28, 0x32, 0x00, 0x10, // IID3432 - 0x43, 0x80, 0x8c, 0xd1, 0x6f, 0x09, 0x09, 0xcd, 0x10, // IID3433 - 0x43, 0x80, 0x8c, 0xda, 0x8e, 0x4b, 0xaa, 0x28, 0x10, // IID3434 - 0x43, 0x80, 0x8c, 0xa3, 0x18, 0x36, 0xcd, 0xa1, 0x10, // IID3435 - 0x43, 0x80, 0x8c, 0xac, 0xb4, 0x25, 0x1f, 0x5a, 0x10, // IID3436 - 0x43, 0x80, 0x8c, 0x35, 0x03, 0x65, 0xae, 0xb2, 0x10, // IID3437 - 0x43, 0x80, 0x8c, 0xbe, 0x20, 0xa6, 0x6e, 0x6b, 0x10, // IID3438 - 0x41, 0x80, 0x8f, 0xb7, 0x6d, 0x4e, 0x9d, 0x10, // IID3439 - 0xd5, 0x10, 0x80, 0x88, 0x1f, 0xc5, 0xf3, 0x74, 0x10, // IID3440 - 0xd5, 0x30, 0x80, 0x8c, 0x91, 0x5e, 0x16, 0xdd, 0x46, 0x10, // IID3441 - 0xd5, 0x30, 0x80, 0x8c, 0xda, 0xc1, 0x00, 0x11, 0x73, 0x10, // IID3442 - 0xd5, 0x30, 0x80, 0x8c, 0xa3, 0xf7, 0xb6, 0x08, 0x40, 0x10, // IID3443 - 0xd5, 0x30, 0x80, 0x8c, 0xec, 0xa5, 0xdb, 0x31, 0x77, 0x10, // IID3444 - 0xd5, 0x30, 0x80, 0x8c, 0xb5, 0xe3, 0x2f, 0x46, 0xa0, 0x10, // IID3445 - 0xd5, 0x30, 0x80, 0x8c, 0x3e, 0xbe, 0x94, 0xad, 0x4a, 0x10, // IID3446 - 0xd5, 0x32, 0x80, 0x8c, 0xc7, 0x3e, 0x85, 0x99, 0x02, 0x10, // IID3447 - 0xd5, 0x33, 0x80, 0x8c, 0x88, 0xee, 0x55, 0x6a, 0x28, 0x10, // IID3448 - 0xd5, 0x33, 0x80, 0x8c, 0x51, 0x3f, 0x90, 0x5a, 0x37, 0x10, // IID3449 - 0xd5, 0x33, 0x80, 0x8c, 0x1a, 0x6f, 0x4c, 0x40, 0xcf, 0x10, // IID3450 - 0xd5, 0x11, 0x80, 0x8b, 0xe7, 0x92, 0xcb, 0x83, 0x10, // IID3451 - 0xd5, 0x33, 0x80, 0x8c, 0x6c, 0xce, 0x3f, 0xe6, 0xe0, 0x10, // IID3452 - 0xd5, 0x33, 0x80, 0x8c, 0x35, 0x77, 0x13, 0x7f, 0xdb, 0x10, // IID3453 - 0xd5, 0x33, 0x80, 0x8c, 0xfe, 0x56, 0x34, 0xec, 0x82, 0x10, // IID3454 - 0xd5, 0x11, 0x80, 0x8c, 0x4f, 0x06, 0x52, 0x4b, 0x03, 0x10, // IID3455 - 0x80, 0x8c, 0x11, 0x3d, 0xf4, 0xa5, 0x2b, 0x40, // IID3456 - 0x80, 0x8c, 0xda, 0xbc, 0xfa, 0xab, 0xbb, 0x40, // IID3457 - 0x80, 0x8b, 0x55, 0xcb, 0x1e, 0x06, 0x40, // IID3458 - 0x43, 0x80, 0x8c, 0x48, 0xfd, 0x8f, 0x02, 0x8c, 0x40, // IID3459 - 0x41, 0x80, 0x89, 0xb9, 0x44, 0x3c, 0xce, 0x40, // IID3460 - 0x43, 0x80, 0x8c, 0xda, 0x17, 0x80, 0x0b, 0x25, 0x40, // IID3461 - 0x43, 0x80, 0x8c, 0xa3, 0x97, 0xa6, 0xe6, 0x97, 0x40, // IID3462 - 0x41, 0x80, 0x8c, 0x24, 0x7f, 0x74, 0x47, 0xe1, 0x40, // IID3463 - 0x43, 0x80, 0x8c, 0xf5, 0xed, 0xfa, 0x2e, 0x0d, 0x40, // IID3464 - 0x41, 0x80, 0x8e, 0xdf, 0x0d, 0x27, 0xfd, 0x40, // IID3465 - 0xd5, 0x21, 0x80, 0x8c, 0x47, 0x14, 0xc4, 0x3d, 0x90, 0x40, // IID3466 - 0xd5, 0x30, 0x80, 0x8c, 0x88, 0x0f, 0x7c, 0xa9, 0xcf, 0x40, // IID3467 - 0xd5, 0x30, 0x80, 0x8c, 0x51, 0x0b, 0xe7, 0x0a, 0x8e, 0x40, // IID3468 - 0xd5, 0x30, 0x80, 0x8c, 0x5a, 0x75, 0x24, 0x07, 0xfa, 0x40, // IID3469 - 0xd5, 0x30, 0x80, 0x8c, 0xe3, 0xd1, 0xce, 0xc1, 0xd5, 0x40, // IID3470 - 0xd5, 0x10, 0x80, 0x8c, 0x24, 0xd1, 0x39, 0x7f, 0x73, 0x40, // IID3471 - 0xd5, 0x30, 0x80, 0x8c, 0x35, 0xfa, 0xf0, 0x3f, 0x40, 0x40, // IID3472 - 0xd5, 0x30, 0x80, 0x8c, 0xfe, 0xcf, 0x8f, 0xcf, 0x55, 0x40, // IID3473 - 0xd5, 0x32, 0x80, 0x8c, 0x07, 0xb1, 0x34, 0x14, 0xdb, 0x40, // IID3474 - 0xd5, 0x33, 0x80, 0x8c, 0x48, 0xd6, 0x64, 0xc6, 0xe1, 0x40, // IID3475 - 0xd5, 0x11, 0x80, 0x89, 0x55, 0xe5, 0xc7, 0x06, 0x40, // IID3476 - 0xd5, 0x33, 0x80, 0x8c, 0x9a, 0xf4, 0x42, 0x63, 0x87, 0x40, // IID3477 - 0xd5, 0x33, 0x80, 0x8c, 0xe3, 0x46, 0x01, 0xb2, 0x26, 0x40, // IID3478 - 0xd5, 0x33, 0x80, 0x8c, 0xec, 0x58, 0x7c, 0xa2, 0x5f, 0x40, // IID3479 - 0xd5, 0x33, 0x80, 0x8c, 0xb5, 0x20, 0x38, 0x02, 0xad, 0x40, // IID3480 - 0xd5, 0x33, 0x80, 0x8c, 0xfe, 0x52, 0xc3, 0xa4, 0x0b, 0x40, // IID3481 - 0xd5, 0x11, 0x80, 0x8f, 0xb7, 0x06, 0x39, 0x4e, 0x40, // IID3482 -#endif // _LP64 - 0x83, 0x8c, 0x11, 0x39, 0x87, 0x58, 0x25, 0x01, // IID3483 - 0x83, 0x8c, 0x5a, 0xaa, 0x30, 0xbd, 0x8c, 0x01, // IID3484 -#ifdef _LP64 - 0x42, 0x83, 0x8c, 0xc3, 0x12, 0xfa, 0xa3, 0x3a, 0x01, // IID3485 - 0x43, 0x83, 0x8c, 0x48, 0xc8, 0x4d, 0x34, 0x2f, 0x01, // IID3486 - 0x43, 0x83, 0x8c, 0xd1, 0x89, 0x4e, 0x99, 0xdb, 0x01, // IID3487 - 0x43, 0x83, 0x8c, 0xda, 0x24, 0xc0, 0x1f, 0x3b, 0x01, // IID3488 - 0x43, 0x83, 0x8c, 0xa3, 0x3b, 0x0f, 0x05, 0x5c, 0x01, // IID3489 - 0x41, 0x83, 0x8c, 0x24, 0xdd, 0x8e, 0x17, 0xb6, 0x01, // IID3490 - 0x43, 0x83, 0x8c, 0xf5, 0xc7, 0x81, 0x5c, 0x62, 0x01, // IID3491 - 0x43, 0x83, 0x8c, 0x7e, 0x9a, 0x73, 0x41, 0x30, 0x01, // IID3492 - 0xd5, 0x21, 0x83, 0x8c, 0x07, 0x2a, 0xc0, 0x95, 0x1a, 0x01, // IID3493 - 0xd5, 0x30, 0x83, 0x8c, 0xc8, 0xe6, 0x50, 0x4a, 0x90, 0x01, // IID3494 - 0xd5, 0x30, 0x83, 0x8c, 0x51, 0xba, 0xea, 0xe8, 0xed, 0x01, // IID3495 - 0xd5, 0x30, 0x83, 0x8c, 0xda, 0x08, 0xc6, 0xb1, 0x1d, 0x01, // IID3496 - 0xd5, 0x30, 0x83, 0x8c, 0xe3, 0x48, 0x5f, 0x1c, 0x45, 0x01, // IID3497 - 0xd5, 0x30, 0x83, 0x8c, 0x2c, 0x2c, 0x47, 0x75, 0x0c, 0x01, // IID3498 - 0xd5, 0x30, 0x83, 0x8c, 0x75, 0xf1, 0xc7, 0x48, 0x3b, 0x01, // IID3499 - 0xd5, 0x30, 0x83, 0x8c, 0xfe, 0xeb, 0x72, 0x2b, 0x03, 0x01, // IID3500 - 0xd5, 0x32, 0x83, 0x8c, 0x87, 0x3e, 0x0d, 0x24, 0xab, 0x01, // IID3501 - 0xd5, 0x11, 0x83, 0x88, 0xfb, 0xc6, 0x4e, 0xcd, 0x01, // IID3502 - 0xd5, 0x11, 0x83, 0x89, 0x0d, 0x80, 0xee, 0x2c, 0x01, // IID3503 - 0xd5, 0x33, 0x83, 0x8c, 0x1a, 0xe2, 0xc8, 0xf4, 0xf9, 0x01, // IID3504 - 0xd5, 0x33, 0x83, 0x8c, 0x63, 0xaf, 0x27, 0xd3, 0x80, 0x01, // IID3505 - 0xd5, 0x33, 0x83, 0x8c, 0xec, 0xfa, 0x64, 0x34, 0x31, 0x01, // IID3506 - 0xd5, 0x33, 0x83, 0x8c, 0x35, 0xa7, 0x2f, 0xec, 0x71, 0x01, // IID3507 - 0xd5, 0x33, 0x83, 0x8c, 0xbe, 0x75, 0x70, 0xf0, 0x39, 0x01, // IID3508 - 0xd5, 0x11, 0x83, 0x8c, 0x0f, 0x73, 0xa0, 0xa0, 0xec, 0x01, // IID3509 - 0x83, 0x8c, 0xd1, 0x96, 0x8e, 0xda, 0xd7, 0x10, // IID3510 - 0x83, 0x8c, 0x5a, 0x78, 0xad, 0x7b, 0xbd, 0x10, // IID3511 - 0x42, 0x83, 0x8c, 0x03, 0x5f, 0x6a, 0xef, 0x66, 0x10, // IID3512 - 0x43, 0x83, 0x8c, 0xc8, 0xb3, 0x58, 0x27, 0x23, 0x10, // IID3513 - 0x43, 0x83, 0x8c, 0x51, 0x1b, 0xdf, 0xdd, 0xe5, 0x10, // IID3514 - 0x43, 0x83, 0x8c, 0xda, 0x4f, 0xa4, 0x46, 0xe0, 0x10, // IID3515 - 0x43, 0x83, 0x8c, 0xa3, 0xe5, 0xd3, 0xa1, 0xee, 0x10, // IID3516 - 0x43, 0x83, 0x8c, 0x2c, 0x40, 0x29, 0xed, 0x73, 0x10, // IID3517 - 0x43, 0x83, 0x8c, 0xb5, 0x50, 0xa7, 0xe7, 0xdb, 0x10, // IID3518 - 0x43, 0x83, 0x8c, 0xfe, 0xa8, 0x18, 0x51, 0x91, 0x10, // IID3519 - 0x41, 0x83, 0x8f, 0x40, 0x25, 0x72, 0x70, 0x10, // IID3520 - 0xd5, 0x30, 0x83, 0x8c, 0x08, 0x6f, 0x3c, 0x9e, 0x21, 0x10, // IID3521 - 0xd5, 0x30, 0x83, 0x8c, 0x51, 0xd4, 0xde, 0x80, 0xd0, 0x10, // IID3522 - 0xd5, 0x30, 0x83, 0x8c, 0x5a, 0x7b, 0xbb, 0x7f, 0x1e, 0x10, // IID3523 - 0xd5, 0x30, 0x83, 0x8c, 0x23, 0x84, 0xb9, 0xf2, 0x49, 0x10, // IID3524 - 0xd5, 0x10, 0x83, 0x8c, 0x24, 0xe1, 0x6c, 0xc2, 0x09, 0x10, // IID3525 - 0xd5, 0x30, 0x83, 0x8c, 0xb5, 0x31, 0xe0, 0x85, 0x74, 0x10, // IID3526 - 0xd5, 0x10, 0x83, 0x8e, 0x3d, 0x8c, 0x6f, 0xef, 0x10, // IID3527 - 0xd5, 0x32, 0x83, 0x8c, 0x07, 0x10, 0xdb, 0x2a, 0xed, 0x10, // IID3528 - 0xd5, 0x33, 0x83, 0x8c, 0x08, 0xc5, 0xd6, 0x46, 0x6d, 0x10, // IID3529 - 0xd5, 0x33, 0x83, 0x8c, 0x11, 0xbc, 0x3c, 0x68, 0x30, 0x10, // IID3530 - 0xd5, 0x33, 0x83, 0x8c, 0x5a, 0x1d, 0x35, 0xcd, 0xd0, 0x10, // IID3531 - 0xd5, 0x33, 0x83, 0x8c, 0x23, 0x5d, 0xcd, 0x21, 0xfa, 0x10, // IID3532 - 0xd5, 0x11, 0x83, 0x8c, 0x24, 0x31, 0x53, 0x0f, 0xf0, 0x10, // IID3533 - 0xd5, 0x33, 0x83, 0x8c, 0x35, 0x91, 0xe7, 0xbf, 0x55, 0x10, // IID3534 - 0xd5, 0x33, 0x83, 0x8c, 0x7e, 0xd7, 0xb1, 0x05, 0x7f, 0x10, // IID3535 - 0xd5, 0x11, 0x83, 0x8c, 0x0f, 0xe5, 0xb2, 0xc6, 0x76, 0x10, // IID3536 - 0x81, 0x8c, 0x11, 0x9c, 0xdf, 0x99, 0x2a, 0x00, 0x01, 0x00, 0x00, // IID3537 - 0x81, 0x8a, 0x3f, 0xb1, 0xaf, 0x76, 0x00, 0x01, 0x00, 0x00, // IID3538 - 0x42, 0x81, 0x8c, 0x03, 0x59, 0x85, 0x6e, 0x76, 0x00, 0x01, 0x00, 0x00, // IID3539 - 0x43, 0x81, 0x8c, 0x48, 0x36, 0x76, 0xbc, 0x3a, 0x00, 0x01, 0x00, 0x00, // IID3540 - 0x41, 0x81, 0x89, 0x55, 0x8a, 0xe3, 0x28, 0x00, 0x01, 0x00, 0x00, // IID3541 - 0x43, 0x81, 0x8c, 0xda, 0x41, 0xac, 0x4b, 0xf6, 0x00, 0x01, 0x00, 0x00, // IID3542 - 0x41, 0x81, 0x8b, 0x02, 0x6e, 0x72, 0x20, 0x00, 0x01, 0x00, 0x00, // IID3543 - 0x43, 0x81, 0x8c, 0xac, 0x69, 0xea, 0xa6, 0x59, 0x00, 0x01, 0x00, 0x00, // IID3544 - 0x43, 0x81, 0x8c, 0xb5, 0x37, 0x4d, 0x4a, 0xdc, 0x00, 0x01, 0x00, 0x00, // IID3545 - 0x43, 0x81, 0x8c, 0xbe, 0x22, 0xdf, 0x8d, 0x50, 0x00, 0x01, 0x00, 0x00, // IID3546 - 0xd5, 0x21, 0x81, 0x8c, 0x07, 0xb4, 0x36, 0xcb, 0x86, 0x00, 0x01, 0x00, 0x00, // IID3547 - 0xd5, 0x30, 0x81, 0x8c, 0xc8, 0xdf, 0xbf, 0x85, 0x26, 0x00, 0x01, 0x00, 0x00, // IID3548 - 0xd5, 0x10, 0x81, 0x89, 0x70, 0xae, 0x8e, 0xdc, 0x00, 0x01, 0x00, 0x00, // IID3549 - 0xd5, 0x30, 0x81, 0x8c, 0x9a, 0x81, 0x31, 0xe2, 0xa0, 0x00, 0x01, 0x00, 0x00, // IID3550 - 0xd5, 0x30, 0x81, 0x8c, 0x63, 0x6f, 0xfd, 0xa0, 0x35, 0x00, 0x01, 0x00, 0x00, // IID3551 - 0xd5, 0x10, 0x81, 0x8c, 0x24, 0x78, 0x90, 0x35, 0xbc, 0x00, 0x01, 0x00, 0x00, // IID3552 - 0xd5, 0x30, 0x81, 0x8c, 0xf5, 0xb9, 0x86, 0xaf, 0xfa, 0x00, 0x01, 0x00, 0x00, // IID3553 - 0xd5, 0x30, 0x81, 0x8c, 0x7e, 0x37, 0x92, 0x7a, 0xce, 0x00, 0x01, 0x00, 0x00, // IID3554 - 0xd5, 0x32, 0x81, 0x8c, 0xc7, 0x11, 0x27, 0x39, 0xe5, 0x00, 0x01, 0x00, 0x00, // IID3555 - 0xd5, 0x33, 0x81, 0x8c, 0x08, 0xeb, 0xc1, 0xcd, 0xfe, 0x00, 0x01, 0x00, 0x00, // IID3556 - 0xd5, 0x33, 0x81, 0x8c, 0x51, 0xd6, 0xca, 0x92, 0xfd, 0x00, 0x01, 0x00, 0x00, // IID3557 - 0xd5, 0x11, 0x81, 0x8a, 0x64, 0x4e, 0x4a, 0xc6, 0x00, 0x01, 0x00, 0x00, // IID3558 - 0xd5, 0x33, 0x81, 0x8c, 0x23, 0x66, 0x06, 0x37, 0x59, 0x00, 0x01, 0x00, 0x00, // IID3559 - 0xd5, 0x33, 0x81, 0x8c, 0xac, 0x2d, 0xd1, 0x60, 0x96, 0x00, 0x01, 0x00, 0x00, // IID3560 - 0xd5, 0x11, 0x81, 0x8d, 0x20, 0xd7, 0x0e, 0x3c, 0x00, 0x01, 0x00, 0x00, // IID3561 - 0xd5, 0x33, 0x81, 0x8c, 0xfe, 0x4b, 0x61, 0xf3, 0xf8, 0x00, 0x01, 0x00, 0x00, // IID3562 - 0xd5, 0x11, 0x81, 0x8f, 0x13, 0x62, 0xd0, 0x5a, 0x00, 0x01, 0x00, 0x00, // IID3563 - 0x81, 0x8c, 0x11, 0x30, 0xa5, 0x7f, 0x2f, 0x00, 0x10, 0x00, 0x00, // IID3564 - 0x81, 0x8c, 0xda, 0xbd, 0xdd, 0xc4, 0xf2, 0x00, 0x10, 0x00, 0x00, // IID3565 - 0x42, 0x81, 0x8c, 0x83, 0xce, 0x30, 0x40, 0xf0, 0x00, 0x10, 0x00, 0x00, // IID3566 - 0x43, 0x81, 0x8c, 0xc8, 0x4d, 0xdd, 0x8d, 0xf5, 0x00, 0x10, 0x00, 0x00, // IID3567 - 0x43, 0x81, 0x8c, 0x91, 0xed, 0x26, 0x40, 0x57, 0x00, 0x10, 0x00, 0x00, // IID3568 - 0x43, 0x81, 0x8c, 0x1a, 0x0c, 0x76, 0x47, 0x3c, 0x00, 0x10, 0x00, 0x00, // IID3569 - 0x43, 0x81, 0x8c, 0xa3, 0xda, 0x8e, 0x1a, 0x19, 0x00, 0x10, 0x00, 0x00, // IID3570 - 0x43, 0x81, 0x8c, 0x6c, 0xd8, 0x17, 0x19, 0xa6, 0x00, 0x10, 0x00, 0x00, // IID3571 - 0x41, 0x81, 0x8d, 0x1b, 0x6d, 0x2e, 0x4e, 0x00, 0x10, 0x00, 0x00, // IID3572 - 0x43, 0x81, 0x8c, 0x7e, 0x2c, 0x71, 0xe2, 0xc9, 0x00, 0x10, 0x00, 0x00, // IID3573 - 0xd5, 0x21, 0x81, 0x8c, 0xc7, 0x50, 0x0f, 0x16, 0x90, 0x00, 0x10, 0x00, 0x00, // IID3574 - 0xd5, 0x30, 0x81, 0x8c, 0x48, 0x35, 0x63, 0x4a, 0x8c, 0x00, 0x10, 0x00, 0x00, // IID3575 - 0xd5, 0x30, 0x81, 0x8c, 0xd1, 0xe3, 0x20, 0xb7, 0x34, 0x00, 0x10, 0x00, 0x00, // IID3576 - 0xd5, 0x30, 0x81, 0x8c, 0x9a, 0x80, 0xbb, 0x41, 0x8a, 0x00, 0x10, 0x00, 0x00, // IID3577 - 0xd5, 0x30, 0x81, 0x8c, 0x63, 0x35, 0xbe, 0x15, 0x02, 0x00, 0x10, 0x00, 0x00, // IID3578 - 0xd5, 0x30, 0x81, 0x8c, 0x2c, 0x15, 0x82, 0xa3, 0xf8, 0x00, 0x10, 0x00, 0x00, // IID3579 - 0xd5, 0x10, 0x81, 0x8d, 0x6e, 0x98, 0x1b, 0xea, 0x00, 0x10, 0x00, 0x00, // IID3580 - 0xd5, 0x30, 0x81, 0x8c, 0x7e, 0x5f, 0xb5, 0x17, 0x90, 0x00, 0x10, 0x00, 0x00, // IID3581 - 0xd5, 0x32, 0x81, 0x8c, 0x47, 0x94, 0xb6, 0x59, 0x6e, 0x00, 0x10, 0x00, 0x00, // IID3582 - 0xd5, 0x11, 0x81, 0x88, 0x71, 0x79, 0xcd, 0xcb, 0x00, 0x10, 0x00, 0x00, // IID3583 - 0xd5, 0x33, 0x81, 0x8c, 0x91, 0x42, 0x7e, 0xb1, 0xbc, 0x00, 0x10, 0x00, 0x00, // IID3584 - 0xd5, 0x11, 0x81, 0x8a, 0x66, 0x31, 0x91, 0xa0, 0x00, 0x10, 0x00, 0x00, // IID3585 - 0xd5, 0x33, 0x81, 0x8c, 0x63, 0xcd, 0x6a, 0x83, 0xf5, 0x00, 0x10, 0x00, 0x00, // IID3586 - 0xd5, 0x33, 0x81, 0x8c, 0xec, 0xe2, 0x61, 0x3a, 0x69, 0x00, 0x10, 0x00, 0x00, // IID3587 - 0xd5, 0x33, 0x81, 0x8c, 0xf5, 0x83, 0x2a, 0x9c, 0xbf, 0x00, 0x10, 0x00, 0x00, // IID3588 - 0xd5, 0x33, 0x81, 0x8c, 0xbe, 0x0d, 0xef, 0xb1, 0x11, 0x00, 0x10, 0x00, 0x00, // IID3589 - 0xd5, 0x11, 0x81, 0x8c, 0xcf, 0x85, 0x15, 0xe2, 0x34, 0x00, 0x10, 0x00, 0x00, // IID3590 - 0x81, 0x8c, 0xd1, 0x58, 0x04, 0x05, 0xca, 0x00, 0x00, 0x01, 0x00, // IID3591 - 0x81, 0x8c, 0xda, 0x4b, 0x91, 0x1e, 0x9e, 0x00, 0x00, 0x01, 0x00, // IID3592 - 0x42, 0x81, 0x8c, 0x03, 0xed, 0x83, 0x2d, 0xd9, 0x00, 0x00, 0x01, 0x00, // IID3593 - 0x43, 0x81, 0x8c, 0x48, 0xbc, 0x4e, 0xda, 0xc0, 0x00, 0x00, 0x01, 0x00, // IID3594 - 0x43, 0x81, 0x8c, 0x11, 0x1d, 0xdb, 0xb6, 0x99, 0x00, 0x00, 0x01, 0x00, // IID3595 - 0x43, 0x81, 0x8c, 0x5a, 0x4a, 0x56, 0x4e, 0x23, 0x00, 0x00, 0x01, 0x00, // IID3596 - 0x43, 0x81, 0x8c, 0x63, 0x0b, 0x8a, 0xcb, 0xcf, 0x00, 0x00, 0x01, 0x00, // IID3597 - 0x41, 0x81, 0x8c, 0x24, 0x73, 0x9e, 0x6b, 0x78, 0x00, 0x00, 0x01, 0x00, // IID3598 - 0x41, 0x81, 0x8d, 0xef, 0xf9, 0x95, 0xc9, 0x00, 0x00, 0x01, 0x00, // IID3599 - 0x43, 0x81, 0x8c, 0x3e, 0x2b, 0x3f, 0xdc, 0x72, 0x00, 0x00, 0x01, 0x00, // IID3600 - 0xd5, 0x21, 0x81, 0x8c, 0x07, 0xe3, 0xd4, 0xd5, 0xbc, 0x00, 0x00, 0x01, 0x00, // IID3601 - 0xd5, 0x30, 0x81, 0x8c, 0x88, 0xb9, 0xa1, 0x88, 0x2c, 0x00, 0x00, 0x01, 0x00, // IID3602 - 0xd5, 0x30, 0x81, 0x8c, 0x51, 0x76, 0xcf, 0x1a, 0x29, 0x00, 0x00, 0x01, 0x00, // IID3603 - 0xd5, 0x30, 0x81, 0x8c, 0x5a, 0x3d, 0x23, 0x17, 0x63, 0x00, 0x00, 0x01, 0x00, // IID3604 - 0xd5, 0x30, 0x81, 0x8c, 0xe3, 0xc6, 0x0a, 0xf2, 0x56, 0x00, 0x00, 0x01, 0x00, // IID3605 - 0xd5, 0x30, 0x81, 0x8c, 0x6c, 0x98, 0x2f, 0x70, 0x51, 0x00, 0x00, 0x01, 0x00, // IID3606 - 0xd5, 0x10, 0x81, 0x8d, 0x2d, 0xc8, 0x5d, 0x45, 0x00, 0x00, 0x01, 0x00, // IID3607 - 0xd5, 0x30, 0x81, 0x8c, 0x7e, 0x23, 0xbf, 0x1e, 0xdd, 0x00, 0x00, 0x01, 0x00, // IID3608 - 0xd5, 0x32, 0x81, 0x8c, 0x87, 0xc3, 0x4b, 0x35, 0xf0, 0x00, 0x00, 0x01, 0x00, // IID3609 - 0xd5, 0x33, 0x81, 0x8c, 0x08, 0xc8, 0xd4, 0x39, 0x18, 0x00, 0x00, 0x01, 0x00, // IID3610 - 0xd5, 0x33, 0x81, 0x8c, 0x11, 0xaf, 0x13, 0x37, 0x61, 0x00, 0x00, 0x01, 0x00, // IID3611 - 0xd5, 0x33, 0x81, 0x8c, 0x1a, 0xbc, 0xf6, 0x4e, 0x15, 0x00, 0x00, 0x01, 0x00, // IID3612 - 0xd5, 0x33, 0x81, 0x8c, 0xe3, 0x6c, 0x7b, 0x78, 0x0e, 0x00, 0x00, 0x01, 0x00, // IID3613 - 0xd5, 0x33, 0x81, 0x8c, 0x6c, 0x33, 0xde, 0x4b, 0xd7, 0x00, 0x00, 0x01, 0x00, // IID3614 - 0xd5, 0x11, 0x81, 0x8d, 0x62, 0xc1, 0xc8, 0x23, 0x00, 0x00, 0x01, 0x00, // IID3615 - 0xd5, 0x33, 0x81, 0x8c, 0xfe, 0xee, 0x7c, 0xca, 0x53, 0x00, 0x00, 0x01, 0x00, // IID3616 - 0xd5, 0x11, 0x81, 0x8c, 0xcf, 0x93, 0xb3, 0x13, 0x9a, 0x00, 0x00, 0x01, 0x00, // IID3617 - 0x81, 0x8c, 0x51, 0x67, 0x26, 0x29, 0xb7, 0x00, 0x00, 0x10, 0x00, // IID3618 - 0x81, 0x8c, 0x5a, 0x8c, 0xb4, 0x18, 0xbf, 0x00, 0x00, 0x10, 0x00, // IID3619 - 0x42, 0x81, 0x8c, 0x83, 0x55, 0x97, 0x39, 0x92, 0x00, 0x00, 0x10, 0x00, // IID3620 - 0x43, 0x81, 0x8c, 0x48, 0xea, 0xae, 0x51, 0x13, 0x00, 0x00, 0x10, 0x00, // IID3621 - 0x43, 0x81, 0x8c, 0x11, 0x76, 0xfd, 0x8b, 0xd3, 0x00, 0x00, 0x10, 0x00, // IID3622 - 0x43, 0x81, 0x8c, 0xda, 0xfc, 0x09, 0x23, 0xd3, 0x00, 0x00, 0x10, 0x00, // IID3623 - 0x41, 0x81, 0x8b, 0x89, 0xfe, 0x37, 0xba, 0x00, 0x00, 0x10, 0x00, // IID3624 - 0x43, 0x81, 0x8c, 0x2c, 0x27, 0x58, 0x40, 0x09, 0x00, 0x00, 0x10, 0x00, // IID3625 - 0x41, 0x81, 0x8d, 0x3a, 0xe3, 0x3b, 0x94, 0x00, 0x00, 0x10, 0x00, // IID3626 - 0x41, 0x81, 0x8e, 0x69, 0x5a, 0x38, 0x1b, 0x00, 0x00, 0x10, 0x00, // IID3627 - 0xd5, 0x21, 0x81, 0x8c, 0x47, 0xde, 0xd1, 0xd9, 0x8d, 0x00, 0x00, 0x10, 0x00, // IID3628 - 0xd5, 0x30, 0x81, 0x8c, 0x48, 0xcd, 0x7b, 0x1e, 0xd3, 0x00, 0x00, 0x10, 0x00, // IID3629 - 0xd5, 0x30, 0x81, 0x8c, 0x51, 0x7d, 0xbc, 0xe2, 0x56, 0x00, 0x00, 0x10, 0x00, // IID3630 - 0xd5, 0x30, 0x81, 0x8c, 0x5a, 0x5d, 0x16, 0xe7, 0xd0, 0x00, 0x00, 0x10, 0x00, // IID3631 - 0xd5, 0x30, 0x81, 0x8c, 0x63, 0x94, 0x93, 0xef, 0xa3, 0x00, 0x00, 0x10, 0x00, // IID3632 - 0xd5, 0x10, 0x81, 0x8c, 0x24, 0x8a, 0x4d, 0x16, 0x6f, 0x00, 0x00, 0x10, 0x00, // IID3633 - 0xd5, 0x30, 0x81, 0x8c, 0xf5, 0xe4, 0x89, 0xee, 0x6a, 0x00, 0x00, 0x10, 0x00, // IID3634 - 0xd5, 0x30, 0x81, 0x8c, 0xfe, 0x4d, 0x2e, 0xd1, 0xee, 0x00, 0x00, 0x10, 0x00, // IID3635 - 0xd5, 0x10, 0x81, 0x8f, 0x35, 0xcd, 0xcb, 0xd0, 0x00, 0x00, 0x10, 0x00, // IID3636 - 0xd5, 0x33, 0x81, 0x8c, 0x08, 0xcb, 0x24, 0xe6, 0x11, 0x00, 0x00, 0x10, 0x00, // IID3637 - 0xd5, 0x33, 0x81, 0x8c, 0xd1, 0xbd, 0x83, 0xa1, 0x55, 0x00, 0x00, 0x10, 0x00, // IID3638 - 0xd5, 0x33, 0x81, 0x8c, 0x9a, 0xa6, 0xd6, 0x2f, 0x6a, 0x00, 0x00, 0x10, 0x00, // IID3639 - 0xd5, 0x33, 0x81, 0x8c, 0x23, 0x46, 0x85, 0xb8, 0x30, 0x00, 0x00, 0x10, 0x00, // IID3640 - 0xd5, 0x33, 0x81, 0x8c, 0xec, 0xef, 0xa1, 0x1c, 0xa2, 0x00, 0x00, 0x10, 0x00, // IID3641 - 0xd5, 0x33, 0x81, 0x8c, 0x35, 0x70, 0xa6, 0x6f, 0xf1, 0x00, 0x00, 0x10, 0x00, // IID3642 - 0xd5, 0x33, 0x81, 0x8c, 0xbe, 0xeb, 0x0d, 0x9a, 0x77, 0x00, 0x00, 0x10, 0x00, // IID3643 - 0xd5, 0x11, 0x81, 0x8c, 0x8f, 0xf7, 0x8d, 0x78, 0x02, 0x00, 0x00, 0x10, 0x00, // IID3644 - 0x81, 0x8c, 0xd1, 0xc4, 0x0e, 0xac, 0xf8, 0x00, 0x00, 0x00, 0x01, // IID3645 - 0x81, 0x8a, 0x63, 0x2a, 0x85, 0x3d, 0x00, 0x00, 0x00, 0x01, // IID3646 - 0x42, 0x81, 0x8c, 0x43, 0x92, 0x4c, 0xde, 0x31, 0x00, 0x00, 0x00, 0x01, // IID3647 - 0x43, 0x81, 0x8c, 0x48, 0xe1, 0xb5, 0x9d, 0x9e, 0x00, 0x00, 0x00, 0x01, // IID3648 - 0x43, 0x81, 0x8c, 0x51, 0xf5, 0x31, 0x98, 0x96, 0x00, 0x00, 0x00, 0x01, // IID3649 - 0x41, 0x81, 0x8a, 0x70, 0x4b, 0x5e, 0x43, 0x00, 0x00, 0x00, 0x01, // IID3650 - 0x43, 0x81, 0x8c, 0xe3, 0xfa, 0x69, 0x40, 0xe4, 0x00, 0x00, 0x00, 0x01, // IID3651 - 0x43, 0x81, 0x8c, 0xec, 0x2b, 0x39, 0xf7, 0xb4, 0x00, 0x00, 0x00, 0x01, // IID3652 - 0x43, 0x81, 0x8c, 0x75, 0x88, 0xdc, 0x32, 0x1c, 0x00, 0x00, 0x00, 0x01, // IID3653 - 0x43, 0x81, 0x8c, 0xfe, 0x1a, 0x6c, 0xa7, 0xea, 0x00, 0x00, 0x00, 0x01, // IID3654 - 0xd5, 0x21, 0x81, 0x8c, 0x07, 0x24, 0x59, 0xe8, 0x21, 0x00, 0x00, 0x00, 0x01, // IID3655 - 0xd5, 0x10, 0x81, 0x88, 0xcf, 0x47, 0x01, 0x75, 0x00, 0x00, 0x00, 0x01, // IID3656 - 0xd5, 0x30, 0x81, 0x8c, 0x51, 0xcf, 0x35, 0x9f, 0x89, 0x00, 0x00, 0x00, 0x01, // IID3657 - 0xd5, 0x30, 0x81, 0x8c, 0x9a, 0xdc, 0xbf, 0x90, 0xb9, 0x00, 0x00, 0x00, 0x01, // IID3658 - 0xd5, 0x30, 0x81, 0x8c, 0xe3, 0xb4, 0xab, 0x8d, 0xbf, 0x00, 0x00, 0x00, 0x01, // IID3659 - 0xd5, 0x30, 0x81, 0x8c, 0x2c, 0x68, 0x7f, 0xef, 0x4e, 0x00, 0x00, 0x00, 0x01, // IID3660 - 0xd5, 0x30, 0x81, 0x8c, 0xb5, 0x38, 0x79, 0xec, 0x71, 0x00, 0x00, 0x00, 0x01, // IID3661 - 0xd5, 0x10, 0x81, 0x8e, 0xcb, 0xb9, 0xcc, 0x71, 0x00, 0x00, 0x00, 0x01, // IID3662 - 0xd5, 0x10, 0x81, 0x8f, 0x40, 0x8f, 0x3f, 0x33, 0x00, 0x00, 0x00, 0x01, // IID3663 - 0xd5, 0x33, 0x81, 0x8c, 0x48, 0xeb, 0x80, 0xc3, 0xd7, 0x00, 0x00, 0x00, 0x01, // IID3664 - 0xd5, 0x33, 0x81, 0x8c, 0x11, 0x69, 0x06, 0x84, 0xbb, 0x00, 0x00, 0x00, 0x01, // IID3665 - 0xd5, 0x33, 0x81, 0x8c, 0x5a, 0xbc, 0x98, 0xeb, 0xb8, 0x00, 0x00, 0x00, 0x01, // IID3666 - 0xd5, 0x11, 0x81, 0x8b, 0x44, 0x85, 0x00, 0x12, 0x00, 0x00, 0x00, 0x01, // IID3667 - 0xd5, 0x11, 0x81, 0x8c, 0x24, 0xbd, 0x56, 0x00, 0x36, 0x00, 0x00, 0x00, 0x01, // IID3668 - 0xd5, 0x33, 0x81, 0x8c, 0x35, 0xc2, 0x7d, 0x8c, 0x1f, 0x00, 0x00, 0x00, 0x01, // IID3669 - 0xd5, 0x33, 0x81, 0x8c, 0x7e, 0x51, 0x10, 0x8d, 0xd8, 0x00, 0x00, 0x00, 0x01, // IID3670 - 0xd5, 0x11, 0x81, 0x8c, 0x4f, 0x51, 0xc5, 0xf3, 0x34, 0x00, 0x00, 0x00, 0x01, // IID3671 - 0x81, 0x8c, 0x11, 0x0d, 0x43, 0x13, 0xef, 0x00, 0x00, 0x00, 0x10, // IID3672 - 0x81, 0x8c, 0xda, 0x1f, 0xcc, 0xd7, 0xf7, 0x00, 0x00, 0x00, 0x10, // IID3673 - 0x81, 0x8b, 0x1a, 0x3f, 0x30, 0x75, 0x00, 0x00, 0x00, 0x10, // IID3674 - 0x43, 0x81, 0x8c, 0x48, 0x75, 0xee, 0x44, 0x1d, 0x00, 0x00, 0x00, 0x10, // IID3675 - 0x43, 0x81, 0x8c, 0x11, 0x33, 0x51, 0x42, 0x69, 0x00, 0x00, 0x00, 0x10, // IID3676 - 0x43, 0x81, 0x8c, 0x1a, 0xc4, 0x20, 0xc0, 0xe5, 0x00, 0x00, 0x00, 0x10, // IID3677 - 0x43, 0x81, 0x8c, 0x23, 0xb3, 0xb9, 0xab, 0xf4, 0x00, 0x00, 0x00, 0x10, // IID3678 - 0x43, 0x81, 0x8c, 0x6c, 0xc9, 0x65, 0x41, 0x19, 0x00, 0x00, 0x00, 0x10, // IID3679 - 0x41, 0x81, 0x8d, 0x62, 0x2c, 0xad, 0x29, 0x00, 0x00, 0x00, 0x10, // IID3680 - 0x43, 0x81, 0x8c, 0x7e, 0xa5, 0x41, 0x93, 0x8f, 0x00, 0x00, 0x00, 0x10, // IID3681 - 0x41, 0x81, 0x8f, 0x86, 0xe6, 0x2c, 0x1f, 0x00, 0x00, 0x00, 0x10, // IID3682 - 0xd5, 0x30, 0x81, 0x8c, 0xc8, 0xba, 0x13, 0x76, 0x0f, 0x00, 0x00, 0x00, 0x10, // IID3683 - 0xd5, 0x30, 0x81, 0x8c, 0x51, 0x61, 0x35, 0x8a, 0x5f, 0x00, 0x00, 0x00, 0x10, // IID3684 - 0xd5, 0x30, 0x81, 0x8c, 0x1a, 0x39, 0x08, 0x6f, 0x7e, 0x00, 0x00, 0x00, 0x10, // IID3685 - 0xd5, 0x30, 0x81, 0x8c, 0x63, 0x55, 0x17, 0x1c, 0x1c, 0x00, 0x00, 0x00, 0x10, // IID3686 - 0xd5, 0x30, 0x81, 0x8c, 0x2c, 0x9d, 0x73, 0x4d, 0xde, 0x00, 0x00, 0x00, 0x10, // IID3687 - 0xd5, 0x30, 0x81, 0x8c, 0x35, 0xf5, 0x4a, 0xe1, 0xc5, 0x00, 0x00, 0x00, 0x10, // IID3688 - 0xd5, 0x30, 0x81, 0x8c, 0xfe, 0x58, 0xb3, 0x40, 0x40, 0x00, 0x00, 0x00, 0x10, // IID3689 - 0xd5, 0x32, 0x81, 0x8c, 0x47, 0xb2, 0x32, 0xd9, 0xc5, 0x00, 0x00, 0x00, 0x10, // IID3690 - 0xd5, 0x33, 0x81, 0x8c, 0x88, 0xce, 0xe7, 0x2c, 0x4a, 0x00, 0x00, 0x00, 0x10, // IID3691 - 0xd5, 0x33, 0x81, 0x8c, 0x91, 0x26, 0x53, 0x15, 0x3f, 0x00, 0x00, 0x00, 0x10, // IID3692 - 0xd5, 0x33, 0x81, 0x8c, 0xda, 0xd1, 0xe7, 0x9c, 0x51, 0x00, 0x00, 0x00, 0x10, // IID3693 - 0xd5, 0x33, 0x81, 0x8c, 0xe3, 0xb3, 0x52, 0xba, 0xdb, 0x00, 0x00, 0x00, 0x10, // IID3694 - 0xd5, 0x33, 0x81, 0x8c, 0xec, 0xf2, 0xe6, 0x77, 0x3b, 0x00, 0x00, 0x00, 0x10, // IID3695 - 0xd5, 0x33, 0x81, 0x8c, 0x35, 0xb0, 0x79, 0xca, 0xba, 0x00, 0x00, 0x00, 0x10, // IID3696 - 0xd5, 0x11, 0x81, 0x8e, 0x22, 0xa4, 0x10, 0x2d, 0x00, 0x00, 0x00, 0x10, // IID3697 - 0xd5, 0x11, 0x81, 0x8f, 0x6d, 0xee, 0x0b, 0xbb, 0x00, 0x00, 0x00, 0x10, // IID3698 -#endif // _LP64 - 0xc6, 0x84, 0x51, 0x40, 0x45, 0xda, 0xce, 0x01, // IID3699 - 0xc6, 0x84, 0x1a, 0xb5, 0x46, 0x9f, 0xdc, 0x01, // IID3700 -#ifdef _LP64 - 0x42, 0xc6, 0x84, 0xc3, 0xc7, 0xf4, 0xa6, 0x6c, 0x01, // IID3701 - 0x43, 0xc6, 0x84, 0x48, 0xf4, 0xc5, 0xff, 0x2c, 0x01, // IID3702 - 0x43, 0xc6, 0x84, 0x11, 0xa1, 0x92, 0xf2, 0x61, 0x01, // IID3703 - 0x43, 0xc6, 0x84, 0x1a, 0xbd, 0x2a, 0xac, 0xf2, 0x01, // IID3704 - 0x41, 0xc6, 0x83, 0xc2, 0x52, 0xc7, 0x9f, 0x01, // IID3705 - 0x41, 0xc6, 0x84, 0x24, 0x61, 0x96, 0x3e, 0x73, 0x01, // IID3706 - 0x43, 0xc6, 0x84, 0xf5, 0xe7, 0x15, 0x2d, 0x10, 0x01, // IID3707 - 0x43, 0xc6, 0x84, 0xfe, 0x05, 0xca, 0x8a, 0xbe, 0x01, // IID3708 - 0xd5, 0x21, 0xc6, 0x84, 0x87, 0x32, 0x56, 0x35, 0x7f, 0x01, // IID3709 - 0xd5, 0x30, 0xc6, 0x84, 0x08, 0x22, 0x3b, 0xb9, 0xd0, 0x01, // IID3710 - 0xd5, 0x30, 0xc6, 0x84, 0x11, 0x67, 0x89, 0x69, 0xf2, 0x01, // IID3711 - 0xd5, 0x30, 0xc6, 0x84, 0xda, 0xaf, 0xc6, 0x7c, 0xda, 0x01, // IID3712 - 0xd5, 0x30, 0xc6, 0x84, 0xe3, 0xdc, 0x6b, 0x93, 0xbc, 0x01, // IID3713 - 0xd5, 0x30, 0xc6, 0x84, 0xac, 0xed, 0xb7, 0x0f, 0xf3, 0x01, // IID3714 - 0xd5, 0x30, 0xc6, 0x84, 0xb5, 0x45, 0x76, 0x1c, 0xf5, 0x01, // IID3715 - 0xd5, 0x30, 0xc6, 0x84, 0x3e, 0xec, 0x5e, 0xb5, 0xcd, 0x01, // IID3716 - 0xd5, 0x32, 0xc6, 0x84, 0x87, 0x55, 0x08, 0x55, 0xd1, 0x01, // IID3717 - 0xd5, 0x11, 0xc6, 0x80, 0x4b, 0xc3, 0xe6, 0x4f, 0x01, // IID3718 - 0xd5, 0x11, 0xc6, 0x81, 0x51, 0xa2, 0xe1, 0xdd, 0x01, // IID3719 - 0xd5, 0x11, 0xc6, 0x82, 0xe3, 0xc7, 0x2e, 0x03, 0x01, // IID3720 - 0xd5, 0x33, 0xc6, 0x84, 0x63, 0x25, 0xda, 0xdf, 0x1b, 0x01, // IID3721 - 0xd5, 0x33, 0xc6, 0x84, 0xec, 0xd1, 0x8e, 0xe7, 0xe9, 0x01, // IID3722 - 0xd5, 0x33, 0xc6, 0x84, 0x35, 0x4a, 0x64, 0xbf, 0x38, 0x01, // IID3723 - 0xd5, 0x33, 0xc6, 0x84, 0x3e, 0x5a, 0xb6, 0x7c, 0xe2, 0x01, // IID3724 - 0xd5, 0x11, 0xc6, 0x87, 0x05, 0xac, 0xe4, 0xad, 0x01, // IID3725 - 0xc6, 0x84, 0x91, 0xcb, 0xaf, 0x33, 0xe5, 0x04, // IID3726 - 0xc6, 0x84, 0xda, 0xb4, 0x7c, 0x1f, 0x38, 0x04, // IID3727 - 0x42, 0xc6, 0x84, 0x83, 0x46, 0x78, 0x6a, 0xf8, 0x04, // IID3728 - 0x41, 0xc6, 0x80, 0xa4, 0x56, 0x15, 0xd3, 0x04, // IID3729 - 0x43, 0xc6, 0x84, 0x51, 0xaa, 0xa4, 0x19, 0x38, 0x04, // IID3730 - 0x41, 0xc6, 0x82, 0xbc, 0xa9, 0x8e, 0x75, 0x04, // IID3731 - 0x43, 0xc6, 0x84, 0xa3, 0xc8, 0x2d, 0xf4, 0x8a, 0x04, // IID3732 - 0x41, 0xc6, 0x84, 0x24, 0x53, 0x78, 0x2e, 0x4d, 0x04, // IID3733 - 0x43, 0xc6, 0x84, 0xf5, 0x82, 0xca, 0x27, 0x18, 0x04, // IID3734 - 0x43, 0xc6, 0x84, 0xfe, 0xf2, 0x2c, 0x4b, 0x99, 0x04, // IID3735 - 0xd5, 0x21, 0xc6, 0x84, 0x07, 0x08, 0xa3, 0xb0, 0x17, 0x04, // IID3736 - 0xd5, 0x10, 0xc6, 0x80, 0x13, 0xc1, 0xf8, 0x82, 0x04, // IID3737 - 0xd5, 0x30, 0xc6, 0x84, 0x91, 0x5b, 0x22, 0x87, 0x32, 0x04, // IID3738 - 0xd5, 0x10, 0xc6, 0x82, 0xc6, 0x6a, 0x16, 0x33, 0x04, // IID3739 - 0xd5, 0x30, 0xc6, 0x84, 0xe3, 0xf5, 0x97, 0x50, 0x40, 0x04, // IID3740 - 0xd5, 0x30, 0xc6, 0x84, 0x6c, 0x07, 0x81, 0x7c, 0x08, 0x04, // IID3741 - 0xd5, 0x10, 0xc6, 0x85, 0xba, 0x83, 0x60, 0xec, 0x04, // IID3742 - 0xd5, 0x30, 0xc6, 0x84, 0xfe, 0x01, 0x15, 0xe5, 0xd5, 0x04, // IID3743 - 0xd5, 0x32, 0xc6, 0x84, 0x07, 0x73, 0x0c, 0x4d, 0x86, 0x04, // IID3744 - 0xd5, 0x33, 0xc6, 0x84, 0xc8, 0x9c, 0x01, 0x92, 0xf5, 0x04, // IID3745 - 0xd5, 0x11, 0xc6, 0x81, 0x3f, 0xe4, 0x43, 0x04, 0x04, // IID3746 - 0xd5, 0x11, 0xc6, 0x82, 0x97, 0x77, 0x99, 0xff, 0x04, // IID3747 - 0xd5, 0x33, 0xc6, 0x84, 0x63, 0x8c, 0x6d, 0xdd, 0x96, 0x04, // IID3748 - 0xd5, 0x33, 0xc6, 0x84, 0x2c, 0x81, 0xdd, 0x2e, 0x27, 0x04, // IID3749 - 0xd5, 0x11, 0xc6, 0x85, 0x8a, 0xc5, 0xb8, 0x5f, 0x04, // IID3750 - 0xd5, 0x11, 0xc6, 0x86, 0x05, 0x4f, 0x46, 0x7b, 0x04, // IID3751 - 0xd5, 0x11, 0xc6, 0x87, 0xb8, 0x35, 0xb6, 0x59, 0x04, // IID3752 - 0xc6, 0x84, 0x51, 0x35, 0x16, 0x96, 0x12, 0x10, // IID3753 - 0xc6, 0x82, 0x24, 0xe1, 0xe6, 0x4b, 0x10, // IID3754 - 0x42, 0xc6, 0x84, 0x83, 0x65, 0x21, 0xcb, 0x0f, 0x10, // IID3755 - 0x43, 0xc6, 0x84, 0x08, 0xcf, 0x0e, 0xbe, 0x9c, 0x10, // IID3756 - 0x43, 0xc6, 0x84, 0x91, 0xe6, 0xc6, 0x77, 0xaf, 0x10, // IID3757 - 0x43, 0xc6, 0x84, 0x1a, 0x1d, 0x8e, 0xb4, 0x13, 0x10, // IID3758 - 0x43, 0xc6, 0x84, 0x63, 0xda, 0x8d, 0x51, 0x3f, 0x10, // IID3759 - 0x43, 0xc6, 0x84, 0x2c, 0xcb, 0x58, 0xf9, 0x24, 0x10, // IID3760 - 0x43, 0xc6, 0x84, 0xb5, 0x49, 0xbb, 0x63, 0x35, 0x10, // IID3761 - 0x43, 0xc6, 0x84, 0xfe, 0xc5, 0xf0, 0xa3, 0xf6, 0x10, // IID3762 - 0xd5, 0x21, 0xc6, 0x84, 0xc7, 0x9b, 0x31, 0x50, 0x41, 0x10, // IID3763 - 0xd5, 0x30, 0xc6, 0x84, 0x88, 0xda, 0xef, 0x1f, 0x73, 0x10, // IID3764 - 0xd5, 0x30, 0xc6, 0x84, 0x51, 0x7f, 0xae, 0x3c, 0x81, 0x10, // IID3765 - 0xd5, 0x10, 0xc6, 0x82, 0xe8, 0x2f, 0x70, 0xc8, 0x10, // IID3766 - 0xd5, 0x30, 0xc6, 0x84, 0xa3, 0x55, 0x4f, 0x82, 0x30, 0x10, // IID3767 - 0xd5, 0x30, 0xc6, 0x84, 0x2c, 0x0f, 0x3f, 0x66, 0xfa, 0x10, // IID3768 - 0xd5, 0x30, 0xc6, 0x84, 0xb5, 0x57, 0x25, 0xad, 0x06, 0x10, // IID3769 - 0xd5, 0x10, 0xc6, 0x86, 0x83, 0x1a, 0x56, 0x8d, 0x10, // IID3770 - 0xd5, 0x10, 0xc6, 0x87, 0x7d, 0x97, 0x5a, 0xbf, 0x10, // IID3771 - 0xd5, 0x33, 0xc6, 0x84, 0x88, 0x69, 0x6a, 0x7e, 0xe3, 0x10, // IID3772 - 0xd5, 0x33, 0xc6, 0x84, 0x51, 0xfb, 0x0a, 0xb0, 0x56, 0x10, // IID3773 - 0xd5, 0x33, 0xc6, 0x84, 0x1a, 0x28, 0xbf, 0x06, 0x87, 0x10, // IID3774 - 0xd5, 0x33, 0xc6, 0x84, 0x63, 0x02, 0xf7, 0xf3, 0x16, 0x10, // IID3775 - 0xd5, 0x11, 0xc6, 0x84, 0x24, 0x9d, 0xa1, 0x72, 0x6b, 0x10, // IID3776 - 0xd5, 0x33, 0xc6, 0x84, 0x35, 0xcb, 0x46, 0x8b, 0x64, 0x10, // IID3777 - 0xd5, 0x33, 0xc6, 0x84, 0x7e, 0xa7, 0xc9, 0x45, 0xa9, 0x10, // IID3778 - 0xd5, 0x11, 0xc6, 0x84, 0x4f, 0x5d, 0x0d, 0x10, 0x01, 0x10, // IID3779 - 0xc6, 0x81, 0xe1, 0x47, 0x6a, 0x71, 0x40, // IID3780 - 0xc6, 0x84, 0x5a, 0x45, 0x7c, 0x5d, 0x65, 0x40, // IID3781 - 0x42, 0xc6, 0x84, 0x43, 0x71, 0xa5, 0xe8, 0x54, 0x40, // IID3782 - 0x43, 0xc6, 0x84, 0x88, 0x17, 0x33, 0x16, 0xb7, 0x40, // IID3783 - 0x43, 0xc6, 0x84, 0x11, 0xf3, 0xcf, 0xad, 0xfd, 0x40, // IID3784 - 0x43, 0xc6, 0x84, 0xda, 0x5d, 0xba, 0xb6, 0x0b, 0x40, // IID3785 - 0x43, 0xc6, 0x84, 0xe3, 0x8f, 0xa0, 0xf1, 0x87, 0x40, // IID3786 - 0x43, 0xc6, 0x84, 0x2c, 0xf2, 0x6f, 0xc9, 0x49, 0x40, // IID3787 - 0x41, 0xc6, 0x85, 0x5f, 0x50, 0xeb, 0x10, 0x40, // IID3788 - 0x43, 0xc6, 0x84, 0xfe, 0x72, 0x0f, 0x31, 0x4b, 0x40, // IID3789 - 0xd5, 0x21, 0xc6, 0x84, 0x87, 0x94, 0xeb, 0x9c, 0xc1, 0x40, // IID3790 - 0xd5, 0x10, 0xc6, 0x80, 0xfc, 0x34, 0x29, 0x3a, 0x40, // IID3791 - 0xd5, 0x30, 0xc6, 0x84, 0x51, 0x10, 0xb3, 0xeb, 0x99, 0x40, // IID3792 - 0xd5, 0x30, 0xc6, 0x84, 0x1a, 0x94, 0x38, 0xa6, 0xda, 0x40, // IID3793 - 0xd5, 0x30, 0xc6, 0x84, 0xa3, 0x9e, 0xfa, 0x02, 0x12, 0x40, // IID3794 - 0xd5, 0x30, 0xc6, 0x84, 0xac, 0x0d, 0x37, 0xb2, 0xe8, 0x40, // IID3795 - 0xd5, 0x30, 0xc6, 0x84, 0x35, 0xd8, 0x28, 0xbf, 0xa1, 0x40, // IID3796 - 0xd5, 0x30, 0xc6, 0x84, 0xfe, 0x40, 0x1b, 0x94, 0x24, 0x40, // IID3797 - 0xd5, 0x32, 0xc6, 0x84, 0x07, 0xd2, 0x15, 0x33, 0x0e, 0x40, // IID3798 - 0xd5, 0x33, 0xc6, 0x84, 0x88, 0x5d, 0x2b, 0x27, 0x3f, 0x40, // IID3799 - 0xd5, 0x11, 0xc6, 0x81, 0xc3, 0x4b, 0x44, 0x07, 0x40, // IID3800 - 0xd5, 0x11, 0xc6, 0x82, 0xba, 0x5b, 0x96, 0xab, 0x40, // IID3801 - 0xd5, 0x33, 0xc6, 0x84, 0x23, 0xfe, 0xbc, 0x5f, 0x7c, 0x40, // IID3802 - 0xd5, 0x33, 0xc6, 0x84, 0x2c, 0x59, 0x85, 0xee, 0xaf, 0x40, // IID3803 - 0xd5, 0x33, 0xc6, 0x84, 0x75, 0x1b, 0x6f, 0x7f, 0x33, 0x40, // IID3804 - 0xd5, 0x33, 0xc6, 0x84, 0x3e, 0x0d, 0xb6, 0x6f, 0xbc, 0x40, // IID3805 - 0xd5, 0x11, 0xc6, 0x84, 0xcf, 0xe3, 0x5b, 0x67, 0xf7, 0x40, // IID3806 -#endif // _LP64 - 0xc7, 0x84, 0x51, 0xcd, 0x41, 0xf0, 0x8a, 0x01, 0x00, 0x00, 0x00, // IID3807 - 0xc7, 0x84, 0x9a, 0xbd, 0x3b, 0x48, 0x5f, 0x01, 0x00, 0x00, 0x00, // IID3808 -#ifdef _LP64 - 0x42, 0xc7, 0x84, 0x43, 0x63, 0xec, 0x85, 0x8f, 0x01, 0x00, 0x00, 0x00, // IID3809 - 0x41, 0xc7, 0x80, 0xfb, 0x3f, 0x9c, 0x4b, 0x01, 0x00, 0x00, 0x00, // IID3810 - 0x41, 0xc7, 0x81, 0x95, 0xe5, 0x6d, 0xed, 0x01, 0x00, 0x00, 0x00, // IID3811 - 0x43, 0xc7, 0x84, 0xda, 0xc5, 0x40, 0x39, 0x72, 0x01, 0x00, 0x00, 0x00, // IID3812 - 0x43, 0xc7, 0x84, 0xe3, 0xf9, 0x31, 0xc1, 0xe9, 0x01, 0x00, 0x00, 0x00, // IID3813 - 0x41, 0xc7, 0x84, 0x24, 0x4c, 0xa9, 0xd4, 0xe8, 0x01, 0x00, 0x00, 0x00, // IID3814 - 0x43, 0xc7, 0x84, 0x35, 0x81, 0xb3, 0xee, 0x25, 0x01, 0x00, 0x00, 0x00, // IID3815 - 0x43, 0xc7, 0x84, 0x7e, 0xad, 0x1a, 0xb6, 0xd5, 0x01, 0x00, 0x00, 0x00, // IID3816 - 0xd5, 0x21, 0xc7, 0x84, 0x47, 0x90, 0x93, 0x69, 0xd9, 0x01, 0x00, 0x00, 0x00, // IID3817 - 0xd5, 0x10, 0xc7, 0x80, 0x72, 0xb6, 0x31, 0x4c, 0x01, 0x00, 0x00, 0x00, // IID3818 - 0xd5, 0x10, 0xc7, 0x81, 0x81, 0xab, 0xc9, 0x4c, 0x01, 0x00, 0x00, 0x00, // IID3819 - 0xd5, 0x30, 0xc7, 0x84, 0xda, 0xbe, 0x44, 0xd4, 0xb5, 0x01, 0x00, 0x00, 0x00, // IID3820 - 0xd5, 0x30, 0xc7, 0x84, 0xe3, 0xc1, 0xe5, 0xd6, 0x0b, 0x01, 0x00, 0x00, 0x00, // IID3821 - 0xd5, 0x30, 0xc7, 0x84, 0x2c, 0x27, 0x62, 0x7e, 0xe9, 0x01, 0x00, 0x00, 0x00, // IID3822 - 0xd5, 0x30, 0xc7, 0x84, 0xb5, 0x6c, 0x91, 0x2f, 0xde, 0x01, 0x00, 0x00, 0x00, // IID3823 - 0xd5, 0x10, 0xc7, 0x86, 0xb9, 0x6f, 0xdd, 0x76, 0x01, 0x00, 0x00, 0x00, // IID3824 - 0xd5, 0x10, 0xc7, 0x87, 0xb1, 0xce, 0x06, 0x8e, 0x01, 0x00, 0x00, 0x00, // IID3825 - 0xd5, 0x33, 0xc7, 0x84, 0x08, 0x96, 0x68, 0x25, 0xe5, 0x01, 0x00, 0x00, 0x00, // IID3826 - 0xd5, 0x33, 0xc7, 0x84, 0x91, 0x42, 0xa1, 0xa3, 0xb9, 0x01, 0x00, 0x00, 0x00, // IID3827 - 0xd5, 0x33, 0xc7, 0x84, 0x9a, 0x9b, 0xd4, 0x93, 0x02, 0x01, 0x00, 0x00, 0x00, // IID3828 - 0xd5, 0x33, 0xc7, 0x84, 0xa3, 0x1b, 0x6d, 0x04, 0x58, 0x01, 0x00, 0x00, 0x00, // IID3829 - 0xd5, 0x33, 0xc7, 0x84, 0xac, 0x86, 0xc5, 0x6f, 0xbb, 0x01, 0x00, 0x00, 0x00, // IID3830 - 0xd5, 0x33, 0xc7, 0x84, 0x75, 0xf0, 0xe3, 0x7f, 0x41, 0x01, 0x00, 0x00, 0x00, // IID3831 - 0xd5, 0x11, 0xc7, 0x86, 0x79, 0x34, 0x25, 0x10, 0x01, 0x00, 0x00, 0x00, // IID3832 - 0xd5, 0x11, 0xc7, 0x84, 0x4f, 0x9b, 0xde, 0x89, 0x09, 0x01, 0x00, 0x00, 0x00, // IID3833 - 0xc7, 0x84, 0x11, 0x7d, 0x43, 0x0d, 0x24, 0x10, 0x00, 0x00, 0x00, // IID3834 - 0xc7, 0x82, 0x3d, 0x2e, 0x80, 0x45, 0x10, 0x00, 0x00, 0x00, // IID3835 - 0x42, 0xc7, 0x84, 0xc3, 0x5f, 0x0c, 0xb5, 0x2d, 0x10, 0x00, 0x00, 0x00, // IID3836 - 0x43, 0xc7, 0x84, 0x08, 0xb9, 0x09, 0xa8, 0x6a, 0x10, 0x00, 0x00, 0x00, // IID3837 - 0x43, 0xc7, 0x84, 0x11, 0x84, 0xb6, 0x04, 0xfa, 0x10, 0x00, 0x00, 0x00, // IID3838 - 0x41, 0xc7, 0x82, 0x67, 0xf4, 0xda, 0xd4, 0x10, 0x00, 0x00, 0x00, // IID3839 - 0x43, 0xc7, 0x84, 0x63, 0xb8, 0x2f, 0x5d, 0xcb, 0x10, 0x00, 0x00, 0x00, // IID3840 - 0x43, 0xc7, 0x84, 0x6c, 0x17, 0x91, 0x42, 0x17, 0x10, 0x00, 0x00, 0x00, // IID3841 - 0x43, 0xc7, 0x84, 0x75, 0xe1, 0x4b, 0xaf, 0x22, 0x10, 0x00, 0x00, 0x00, // IID3842 - 0x43, 0xc7, 0x84, 0xbe, 0x59, 0x35, 0xbb, 0x20, 0x10, 0x00, 0x00, 0x00, // IID3843 - 0x41, 0xc7, 0x87, 0x31, 0xdb, 0xb6, 0xd2, 0x10, 0x00, 0x00, 0x00, // IID3844 - 0xd5, 0x30, 0xc7, 0x84, 0xc8, 0xa4, 0x3d, 0x30, 0x8b, 0x10, 0x00, 0x00, 0x00, // IID3845 - 0xd5, 0x30, 0xc7, 0x84, 0x51, 0x71, 0x6a, 0x4e, 0x26, 0x10, 0x00, 0x00, 0x00, // IID3846 - 0xd5, 0x30, 0xc7, 0x84, 0x5a, 0xf7, 0xee, 0x5e, 0xcc, 0x10, 0x00, 0x00, 0x00, // IID3847 - 0xd5, 0x30, 0xc7, 0x84, 0x63, 0x59, 0xca, 0xbe, 0x3f, 0x10, 0x00, 0x00, 0x00, // IID3848 - 0xd5, 0x30, 0xc7, 0x84, 0xac, 0x35, 0xa3, 0x72, 0x2a, 0x10, 0x00, 0x00, 0x00, // IID3849 - 0xd5, 0x30, 0xc7, 0x84, 0x35, 0x7d, 0x63, 0xe0, 0x23, 0x10, 0x00, 0x00, 0x00, // IID3850 - 0xd5, 0x30, 0xc7, 0x84, 0xbe, 0xe9, 0x38, 0xfe, 0xb1, 0x10, 0x00, 0x00, 0x00, // IID3851 - 0xd5, 0x32, 0xc7, 0x84, 0x87, 0x3d, 0x39, 0x13, 0xb6, 0x10, 0x00, 0x00, 0x00, // IID3852 - 0xd5, 0x33, 0xc7, 0x84, 0x08, 0x85, 0x06, 0x6b, 0x8b, 0x10, 0x00, 0x00, 0x00, // IID3853 - 0xd5, 0x33, 0xc7, 0x84, 0x11, 0xf2, 0x37, 0x68, 0x36, 0x10, 0x00, 0x00, 0x00, // IID3854 - 0xd5, 0x33, 0xc7, 0x84, 0x9a, 0x68, 0xa0, 0xac, 0x06, 0x10, 0x00, 0x00, 0x00, // IID3855 - 0xd5, 0x33, 0xc7, 0x84, 0xa3, 0xb9, 0x91, 0x3f, 0xa6, 0x10, 0x00, 0x00, 0x00, // IID3856 - 0xd5, 0x33, 0xc7, 0x84, 0xec, 0x06, 0x9a, 0x2d, 0x14, 0x10, 0x00, 0x00, 0x00, // IID3857 - 0xd5, 0x33, 0xc7, 0x84, 0x75, 0xd8, 0xf9, 0xb7, 0x02, 0x10, 0x00, 0x00, 0x00, // IID3858 - 0xd5, 0x33, 0xc7, 0x84, 0x7e, 0x27, 0x84, 0x69, 0x7b, 0x10, 0x00, 0x00, 0x00, // IID3859 - 0xd5, 0x11, 0xc7, 0x84, 0x4f, 0xaa, 0x2f, 0xf7, 0xad, 0x10, 0x00, 0x00, 0x00, // IID3860 - 0xc7, 0x84, 0x11, 0x55, 0xab, 0x33, 0x67, 0x00, 0x01, 0x00, 0x00, // IID3861 - 0xc7, 0x84, 0x9a, 0x59, 0xf2, 0x45, 0x35, 0x00, 0x01, 0x00, 0x00, // IID3862 - 0x42, 0xc7, 0x84, 0x03, 0xdb, 0xf4, 0xbc, 0x59, 0x00, 0x01, 0x00, 0x00, // IID3863 - 0x43, 0xc7, 0x84, 0x48, 0xb4, 0x29, 0x02, 0x7e, 0x00, 0x01, 0x00, 0x00, // IID3864 - 0x43, 0xc7, 0x84, 0x91, 0x1e, 0x82, 0x67, 0x45, 0x00, 0x01, 0x00, 0x00, // IID3865 - 0x43, 0xc7, 0x84, 0xda, 0xeb, 0x08, 0x46, 0xc8, 0x00, 0x01, 0x00, 0x00, // IID3866 - 0x41, 0xc7, 0x83, 0x44, 0xc8, 0xc2, 0xc7, 0x00, 0x01, 0x00, 0x00, // IID3867 - 0x43, 0xc7, 0x84, 0x2c, 0x67, 0xb3, 0xfd, 0x17, 0x00, 0x01, 0x00, 0x00, // IID3868 - 0x43, 0xc7, 0x84, 0x75, 0x67, 0x02, 0x11, 0x0c, 0x00, 0x01, 0x00, 0x00, // IID3869 - 0x43, 0xc7, 0x84, 0x3e, 0xc1, 0xd6, 0x60, 0xc1, 0x00, 0x01, 0x00, 0x00, // IID3870 - 0x41, 0xc7, 0x87, 0x49, 0xaa, 0xa6, 0x49, 0x00, 0x01, 0x00, 0x00, // IID3871 - 0xd5, 0x30, 0xc7, 0x84, 0x08, 0xbd, 0xed, 0x8f, 0x3b, 0x00, 0x01, 0x00, 0x00, // IID3872 - 0xd5, 0x10, 0xc7, 0x81, 0xf8, 0xe2, 0xe1, 0xec, 0x00, 0x01, 0x00, 0x00, // IID3873 - 0xd5, 0x30, 0xc7, 0x84, 0x9a, 0x18, 0x7a, 0x09, 0xcb, 0x00, 0x01, 0x00, 0x00, // IID3874 - 0xd5, 0x30, 0xc7, 0x84, 0xe3, 0x22, 0x83, 0x22, 0x9d, 0x00, 0x01, 0x00, 0x00, // IID3875 - 0xd5, 0x30, 0xc7, 0x84, 0xec, 0x91, 0x85, 0x54, 0x69, 0x00, 0x01, 0x00, 0x00, // IID3876 - 0xd5, 0x30, 0xc7, 0x84, 0x35, 0x4c, 0x94, 0x1b, 0xad, 0x00, 0x01, 0x00, 0x00, // IID3877 - 0xd5, 0x30, 0xc7, 0x84, 0xfe, 0x0b, 0x05, 0x24, 0xbf, 0x00, 0x01, 0x00, 0x00, // IID3878 - 0xd5, 0x10, 0xc7, 0x87, 0x08, 0xe2, 0xe5, 0x74, 0x00, 0x01, 0x00, 0x00, // IID3879 - 0xd5, 0x33, 0xc7, 0x84, 0x88, 0x30, 0xf6, 0xd0, 0xf7, 0x00, 0x01, 0x00, 0x00, // IID3880 - 0xd5, 0x33, 0xc7, 0x84, 0x91, 0x69, 0x16, 0x4c, 0x3e, 0x00, 0x01, 0x00, 0x00, // IID3881 - 0xd5, 0x33, 0xc7, 0x84, 0x5a, 0x58, 0x97, 0x7b, 0xc0, 0x00, 0x01, 0x00, 0x00, // IID3882 - 0xd5, 0x11, 0xc7, 0x83, 0xc3, 0x7f, 0x9d, 0xcc, 0x00, 0x01, 0x00, 0x00, // IID3883 - 0xd5, 0x33, 0xc7, 0x84, 0x6c, 0xa8, 0x58, 0xd9, 0x0d, 0x00, 0x01, 0x00, 0x00, // IID3884 - 0xd5, 0x33, 0xc7, 0x84, 0xb5, 0x92, 0x59, 0x71, 0x3a, 0x00, 0x01, 0x00, 0x00, // IID3885 - 0xd5, 0x33, 0xc7, 0x84, 0x7e, 0x46, 0xbf, 0x68, 0x1c, 0x00, 0x01, 0x00, 0x00, // IID3886 - 0xd5, 0x11, 0xc7, 0x87, 0xa6, 0xed, 0xbf, 0x4a, 0x00, 0x01, 0x00, 0x00, // IID3887 - 0xc7, 0x84, 0x51, 0x4d, 0x67, 0x5e, 0xb0, 0x00, 0x10, 0x00, 0x00, // IID3888 - 0xc7, 0x82, 0x19, 0x20, 0x31, 0x4b, 0x00, 0x10, 0x00, 0x00, // IID3889 - 0x42, 0xc7, 0x84, 0x43, 0x2f, 0x7f, 0xe2, 0x51, 0x00, 0x10, 0x00, 0x00, // IID3890 - 0x43, 0xc7, 0x84, 0xc8, 0xba, 0x71, 0xb4, 0x52, 0x00, 0x10, 0x00, 0x00, // IID3891 - 0x43, 0xc7, 0x84, 0x11, 0xc1, 0xb3, 0xfc, 0x2f, 0x00, 0x10, 0x00, 0x00, // IID3892 - 0x41, 0xc7, 0x82, 0xf1, 0xdb, 0x1a, 0xa1, 0x00, 0x10, 0x00, 0x00, // IID3893 - 0x43, 0xc7, 0x84, 0xa3, 0x29, 0xed, 0x24, 0xb2, 0x00, 0x10, 0x00, 0x00, // IID3894 - 0x43, 0xc7, 0x84, 0xac, 0xa8, 0x7f, 0xee, 0x1d, 0x00, 0x10, 0x00, 0x00, // IID3895 - 0x43, 0xc7, 0x84, 0xf5, 0xaa, 0x94, 0x55, 0x1c, 0x00, 0x10, 0x00, 0x00, // IID3896 - 0x41, 0xc7, 0x86, 0x92, 0x53, 0x37, 0x0f, 0x00, 0x10, 0x00, 0x00, // IID3897 - 0x41, 0xc7, 0x87, 0xf7, 0x7d, 0x64, 0xaf, 0x00, 0x10, 0x00, 0x00, // IID3898 - 0xd5, 0x30, 0xc7, 0x84, 0x08, 0x4b, 0x5b, 0x5c, 0xc1, 0x00, 0x10, 0x00, 0x00, // IID3899 - 0xd5, 0x30, 0xc7, 0x84, 0x91, 0xbe, 0x87, 0xe5, 0xbd, 0x00, 0x10, 0x00, 0x00, // IID3900 - 0xd5, 0x30, 0xc7, 0x84, 0x9a, 0xa8, 0x52, 0xc2, 0xd0, 0x00, 0x10, 0x00, 0x00, // IID3901 - 0xd5, 0x30, 0xc7, 0x84, 0x23, 0xcf, 0x2b, 0xae, 0xce, 0x00, 0x10, 0x00, 0x00, // IID3902 - 0xd5, 0x30, 0xc7, 0x84, 0xec, 0x92, 0xc1, 0x8b, 0xcb, 0x00, 0x10, 0x00, 0x00, // IID3903 - 0xd5, 0x10, 0xc7, 0x85, 0xc5, 0xb0, 0x47, 0xeb, 0x00, 0x10, 0x00, 0x00, // IID3904 - 0xd5, 0x30, 0xc7, 0x84, 0x3e, 0x1d, 0xc8, 0xf9, 0xaf, 0x00, 0x10, 0x00, 0x00, // IID3905 - 0xd5, 0x32, 0xc7, 0x84, 0x47, 0xf7, 0x97, 0x43, 0x6d, 0x00, 0x10, 0x00, 0x00, // IID3906 - 0xd5, 0x33, 0xc7, 0x84, 0x08, 0x77, 0xdb, 0x32, 0xf3, 0x00, 0x10, 0x00, 0x00, // IID3907 - 0xd5, 0x33, 0xc7, 0x84, 0x91, 0xe4, 0x46, 0x75, 0x96, 0x00, 0x10, 0x00, 0x00, // IID3908 - 0xd5, 0x33, 0xc7, 0x84, 0x1a, 0x8f, 0x29, 0x17, 0xe4, 0x00, 0x10, 0x00, 0x00, // IID3909 - 0xd5, 0x33, 0xc7, 0x84, 0xe3, 0x19, 0x76, 0xbb, 0xc8, 0x00, 0x10, 0x00, 0x00, // IID3910 - 0xd5, 0x33, 0xc7, 0x84, 0xec, 0x0c, 0x4f, 0x51, 0xd4, 0x00, 0x10, 0x00, 0x00, // IID3911 - 0xd5, 0x33, 0xc7, 0x84, 0xf5, 0x9d, 0xc9, 0xf4, 0x2d, 0x00, 0x10, 0x00, 0x00, // IID3912 - 0xd5, 0x11, 0xc7, 0x86, 0x3d, 0x9f, 0xfa, 0xdd, 0x00, 0x10, 0x00, 0x00, // IID3913 - 0xd5, 0x11, 0xc7, 0x84, 0x0f, 0x19, 0xd1, 0xbf, 0x71, 0x00, 0x10, 0x00, 0x00, // IID3914 - 0xc7, 0x84, 0x51, 0x53, 0xab, 0x99, 0xeb, 0x00, 0x00, 0x01, 0x00, // IID3915 - 0xc7, 0x82, 0xbd, 0x67, 0x43, 0x24, 0x00, 0x00, 0x01, 0x00, // IID3916 - 0xc7, 0x83, 0x7f, 0xe6, 0xf4, 0xbe, 0x00, 0x00, 0x01, 0x00, // IID3917 - 0x41, 0xc7, 0x80, 0xbe, 0x07, 0x36, 0xfb, 0x00, 0x00, 0x01, 0x00, // IID3918 - 0x41, 0xc7, 0x81, 0xf7, 0xcf, 0x85, 0xb1, 0x00, 0x00, 0x01, 0x00, // IID3919 - 0x41, 0xc7, 0x82, 0x0b, 0x6b, 0x90, 0x92, 0x00, 0x00, 0x01, 0x00, // IID3920 - 0x43, 0xc7, 0x84, 0x23, 0x46, 0x3c, 0xb7, 0xe3, 0x00, 0x00, 0x01, 0x00, // IID3921 - 0x41, 0xc7, 0x84, 0x24, 0xc2, 0xfa, 0x2a, 0x5f, 0x00, 0x00, 0x01, 0x00, // IID3922 - 0x41, 0xc7, 0x85, 0x7c, 0x7e, 0x7d, 0xbc, 0x00, 0x00, 0x01, 0x00, // IID3923 - 0x43, 0xc7, 0x84, 0xbe, 0x94, 0xba, 0x9e, 0x96, 0x00, 0x00, 0x01, 0x00, // IID3924 - 0xd5, 0x21, 0xc7, 0x84, 0x47, 0xc5, 0xe2, 0xfb, 0xfa, 0x00, 0x00, 0x01, 0x00, // IID3925 - 0xd5, 0x30, 0xc7, 0x84, 0x88, 0x80, 0x77, 0x4c, 0x5b, 0x00, 0x00, 0x01, 0x00, // IID3926 - 0xd5, 0x30, 0xc7, 0x84, 0x11, 0x5f, 0xb5, 0x3f, 0x7c, 0x00, 0x00, 0x01, 0x00, // IID3927 - 0xd5, 0x30, 0xc7, 0x84, 0x5a, 0x50, 0x87, 0x28, 0xb7, 0x00, 0x00, 0x01, 0x00, // IID3928 - 0xd5, 0x30, 0xc7, 0x84, 0xa3, 0xd0, 0xa5, 0xa9, 0xe5, 0x00, 0x00, 0x01, 0x00, // IID3929 - 0xd5, 0x30, 0xc7, 0x84, 0xac, 0x30, 0x03, 0xbb, 0xc3, 0x00, 0x00, 0x01, 0x00, // IID3930 - 0xd5, 0x10, 0xc7, 0x85, 0x55, 0x5e, 0xe3, 0x7e, 0x00, 0x00, 0x01, 0x00, // IID3931 - 0xd5, 0x30, 0xc7, 0x84, 0xbe, 0xd0, 0x44, 0x7b, 0x7a, 0x00, 0x00, 0x01, 0x00, // IID3932 - 0xd5, 0x32, 0xc7, 0x84, 0xc7, 0x84, 0x25, 0x42, 0xd2, 0x00, 0x00, 0x01, 0x00, // IID3933 - 0xd5, 0x33, 0xc7, 0x84, 0x48, 0xdf, 0x59, 0x10, 0xf2, 0x00, 0x00, 0x01, 0x00, // IID3934 - 0xd5, 0x33, 0xc7, 0x84, 0xd1, 0xb0, 0xa2, 0x0f, 0xf9, 0x00, 0x00, 0x01, 0x00, // IID3935 - 0xd5, 0x33, 0xc7, 0x84, 0x5a, 0x89, 0x71, 0x13, 0xd1, 0x00, 0x00, 0x01, 0x00, // IID3936 - 0xd5, 0x33, 0xc7, 0x84, 0x63, 0x90, 0x41, 0xd5, 0x1b, 0x00, 0x00, 0x01, 0x00, // IID3937 - 0xd5, 0x33, 0xc7, 0x84, 0xac, 0xa4, 0xa7, 0x75, 0xcf, 0x00, 0x00, 0x01, 0x00, // IID3938 - 0xd5, 0x33, 0xc7, 0x84, 0xf5, 0x57, 0xbd, 0x29, 0x54, 0x00, 0x00, 0x01, 0x00, // IID3939 - 0xd5, 0x33, 0xc7, 0x84, 0x3e, 0x8a, 0xde, 0x8c, 0x6c, 0x00, 0x00, 0x01, 0x00, // IID3940 - 0xd5, 0x11, 0xc7, 0x87, 0x79, 0x17, 0x86, 0xf8, 0x00, 0x00, 0x01, 0x00, // IID3941 - 0xc7, 0x84, 0x91, 0x83, 0xe3, 0xec, 0x86, 0x00, 0x00, 0x10, 0x00, // IID3942 - 0xc7, 0x84, 0x5a, 0x44, 0xd4, 0xeb, 0xeb, 0x00, 0x00, 0x10, 0x00, // IID3943 - 0x42, 0xc7, 0x84, 0xc3, 0xa7, 0xd1, 0xf3, 0xc5, 0x00, 0x00, 0x10, 0x00, // IID3944 - 0x43, 0xc7, 0x84, 0x48, 0x9c, 0x62, 0xf5, 0x42, 0x00, 0x00, 0x10, 0x00, // IID3945 - 0x41, 0xc7, 0x81, 0x05, 0x49, 0x84, 0xd4, 0x00, 0x00, 0x10, 0x00, // IID3946 - 0x43, 0xc7, 0x84, 0x1a, 0xde, 0xdb, 0xe7, 0xfd, 0x00, 0x00, 0x10, 0x00, // IID3947 - 0x43, 0xc7, 0x84, 0xa3, 0x48, 0xfd, 0x3e, 0xc0, 0x00, 0x00, 0x10, 0x00, // IID3948 - 0x41, 0xc7, 0x84, 0x24, 0xa4, 0xa4, 0xa6, 0x0a, 0x00, 0x00, 0x10, 0x00, // IID3949 - 0x43, 0xc7, 0x84, 0xf5, 0x9b, 0xad, 0xed, 0xe7, 0x00, 0x00, 0x10, 0x00, // IID3950 - 0x43, 0xc7, 0x84, 0x7e, 0xb4, 0xe3, 0xf1, 0x83, 0x00, 0x00, 0x10, 0x00, // IID3951 - 0x41, 0xc7, 0x87, 0x3d, 0x50, 0x5f, 0x69, 0x00, 0x00, 0x10, 0x00, // IID3952 - 0xd5, 0x30, 0xc7, 0x84, 0xc8, 0x48, 0x68, 0x7b, 0x52, 0x00, 0x00, 0x10, 0x00, // IID3953 - 0xd5, 0x30, 0xc7, 0x84, 0xd1, 0x06, 0x34, 0x0a, 0x66, 0x00, 0x00, 0x10, 0x00, // IID3954 - 0xd5, 0x30, 0xc7, 0x84, 0x1a, 0xa8, 0xc4, 0xbc, 0xd3, 0x00, 0x00, 0x10, 0x00, // IID3955 - 0xd5, 0x30, 0xc7, 0x84, 0xa3, 0x0a, 0x90, 0xa3, 0x0b, 0x00, 0x00, 0x10, 0x00, // IID3956 - 0xd5, 0x30, 0xc7, 0x84, 0x6c, 0x8a, 0x72, 0xeb, 0xe9, 0x00, 0x00, 0x10, 0x00, // IID3957 - 0xd5, 0x30, 0xc7, 0x84, 0xb5, 0x6f, 0xe4, 0xe4, 0xdc, 0x00, 0x00, 0x10, 0x00, // IID3958 - 0xd5, 0x30, 0xc7, 0x84, 0x3e, 0xea, 0x31, 0x23, 0x22, 0x00, 0x00, 0x10, 0x00, // IID3959 - 0xd5, 0x10, 0xc7, 0x87, 0xef, 0x3e, 0x51, 0x08, 0x00, 0x00, 0x10, 0x00, // IID3960 - 0xd5, 0x33, 0xc7, 0x84, 0xc8, 0x42, 0x43, 0x53, 0xf5, 0x00, 0x00, 0x10, 0x00, // IID3961 - 0xd5, 0x11, 0xc7, 0x81, 0xc4, 0x83, 0x8f, 0x29, 0x00, 0x00, 0x10, 0x00, // IID3962 - 0xd5, 0x33, 0xc7, 0x84, 0x9a, 0x76, 0xf6, 0x8b, 0xf9, 0x00, 0x00, 0x10, 0x00, // IID3963 - 0xd5, 0x33, 0xc7, 0x84, 0xa3, 0x45, 0x23, 0x5c, 0xf6, 0x00, 0x00, 0x10, 0x00, // IID3964 - 0xd5, 0x33, 0xc7, 0x84, 0x2c, 0xf5, 0xee, 0x5d, 0xfa, 0x00, 0x00, 0x10, 0x00, // IID3965 - 0xd5, 0x11, 0xc7, 0x85, 0x55, 0xc5, 0x6e, 0x28, 0x00, 0x00, 0x10, 0x00, // IID3966 - 0xd5, 0x11, 0xc7, 0x86, 0x83, 0x46, 0xf4, 0xbc, 0x00, 0x00, 0x10, 0x00, // IID3967 - 0xd5, 0x11, 0xc7, 0x84, 0x4f, 0x91, 0x9e, 0x85, 0xbb, 0x00, 0x00, 0x10, 0x00, // IID3968 - 0xc7, 0x84, 0x11, 0xba, 0xe7, 0xbc, 0xf6, 0x00, 0x00, 0x00, 0x01, // IID3969 - 0xc7, 0x82, 0xce, 0xde, 0x89, 0x71, 0x00, 0x00, 0x00, 0x01, // IID3970 - 0x42, 0xc7, 0x84, 0x03, 0x02, 0x98, 0x37, 0x3b, 0x00, 0x00, 0x00, 0x01, // IID3971 - 0x43, 0xc7, 0x84, 0x08, 0xfd, 0xc7, 0xd0, 0xe0, 0x00, 0x00, 0x00, 0x01, // IID3972 - 0x43, 0xc7, 0x84, 0x91, 0x55, 0xea, 0x4c, 0x9a, 0x00, 0x00, 0x00, 0x01, // IID3973 - 0x43, 0xc7, 0x84, 0xda, 0xf4, 0x54, 0x7c, 0xde, 0x00, 0x00, 0x00, 0x01, // IID3974 - 0x41, 0xc7, 0x83, 0xeb, 0xb8, 0x30, 0x97, 0x00, 0x00, 0x00, 0x01, // IID3975 - 0x43, 0xc7, 0x84, 0xac, 0x72, 0xfe, 0x41, 0x3c, 0x00, 0x00, 0x00, 0x01, // IID3976 - 0x43, 0xc7, 0x84, 0xb5, 0x4d, 0xad, 0xc9, 0x2d, 0x00, 0x00, 0x00, 0x01, // IID3977 - 0x43, 0xc7, 0x84, 0xbe, 0xd5, 0x4c, 0x8b, 0x46, 0x00, 0x00, 0x00, 0x01, // IID3978 - 0xd5, 0x21, 0xc7, 0x84, 0x87, 0xff, 0x06, 0x3c, 0xc2, 0x00, 0x00, 0x00, 0x01, // IID3979 - 0xd5, 0x30, 0xc7, 0x84, 0xc8, 0xfe, 0x3f, 0x51, 0x09, 0x00, 0x00, 0x00, 0x01, // IID3980 - 0xd5, 0x10, 0xc7, 0x81, 0x3e, 0xde, 0x68, 0x39, 0x00, 0x00, 0x00, 0x01, // IID3981 - 0xd5, 0x10, 0xc7, 0x82, 0xa2, 0x03, 0x79, 0x99, 0x00, 0x00, 0x00, 0x01, // IID3982 - 0xd5, 0x10, 0xc7, 0x83, 0xa3, 0xa4, 0xd0, 0x10, 0x00, 0x00, 0x00, 0x01, // IID3983 - 0xd5, 0x30, 0xc7, 0x84, 0xac, 0x14, 0x0c, 0xc6, 0x49, 0x00, 0x00, 0x00, 0x01, // IID3984 - 0xd5, 0x10, 0xc7, 0x85, 0xaa, 0x05, 0x22, 0x48, 0x00, 0x00, 0x00, 0x01, // IID3985 - 0xd5, 0x30, 0xc7, 0x84, 0x7e, 0x63, 0xa5, 0xef, 0x89, 0x00, 0x00, 0x00, 0x01, // IID3986 - 0xd5, 0x32, 0xc7, 0x84, 0xc7, 0x6a, 0xa2, 0x0c, 0x68, 0x00, 0x00, 0x00, 0x01, // IID3987 - 0xd5, 0x33, 0xc7, 0x84, 0x08, 0x48, 0x1a, 0x58, 0x21, 0x00, 0x00, 0x00, 0x01, // IID3988 - 0xd5, 0x33, 0xc7, 0x84, 0x51, 0xac, 0x3c, 0xd1, 0xdd, 0x00, 0x00, 0x00, 0x01, // IID3989 - 0xd5, 0x33, 0xc7, 0x84, 0x5a, 0x2e, 0x31, 0x04, 0x75, 0x00, 0x00, 0x00, 0x01, // IID3990 - 0xd5, 0x33, 0xc7, 0x84, 0x23, 0xea, 0x4a, 0x40, 0x3f, 0x00, 0x00, 0x00, 0x01, // IID3991 - 0xd5, 0x33, 0xc7, 0x84, 0xac, 0xb8, 0x16, 0x8b, 0x99, 0x00, 0x00, 0x00, 0x01, // IID3992 - 0xd5, 0x33, 0xc7, 0x84, 0xb5, 0x8b, 0x70, 0x94, 0xa8, 0x00, 0x00, 0x00, 0x01, // IID3993 - 0xd5, 0x33, 0xc7, 0x84, 0xfe, 0xdc, 0xa9, 0xac, 0x03, 0x00, 0x00, 0x00, 0x01, // IID3994 - 0xd5, 0x11, 0xc7, 0x84, 0x4f, 0x15, 0xa2, 0xf4, 0x00, 0x00, 0x00, 0x00, 0x01, // IID3995 - 0xc7, 0x84, 0xd1, 0xd4, 0x4b, 0xc6, 0x58, 0x00, 0x00, 0x00, 0x10, // IID3996 - 0xc7, 0x84, 0x5a, 0x6f, 0x0d, 0xa0, 0x4e, 0x00, 0x00, 0x00, 0x10, // IID3997 - 0x42, 0xc7, 0x84, 0x43, 0xa3, 0x71, 0x26, 0x90, 0x00, 0x00, 0x00, 0x10, // IID3998 - 0x43, 0xc7, 0x84, 0xc8, 0x12, 0x96, 0x0c, 0x6f, 0x00, 0x00, 0x00, 0x10, // IID3999 - 0x43, 0xc7, 0x84, 0x51, 0x8e, 0x29, 0x2e, 0x94, 0x00, 0x00, 0x00, 0x10, // IID4000 - 0x41, 0xc7, 0x82, 0x8b, 0x2d, 0x61, 0xec, 0x00, 0x00, 0x00, 0x10, // IID4001 - 0x43, 0xc7, 0x84, 0xe3, 0xce, 0xaf, 0x5b, 0x3b, 0x00, 0x00, 0x00, 0x10, // IID4002 - 0x43, 0xc7, 0x84, 0x2c, 0xd3, 0xc8, 0x4e, 0xa4, 0x00, 0x00, 0x00, 0x10, // IID4003 - 0x41, 0xc7, 0x85, 0xa8, 0xcc, 0xf0, 0x4a, 0x00, 0x00, 0x00, 0x10, // IID4004 - 0x43, 0xc7, 0x84, 0xbe, 0x63, 0x2d, 0xcb, 0x3f, 0x00, 0x00, 0x00, 0x10, // IID4005 - 0xd5, 0x21, 0xc7, 0x84, 0x87, 0x47, 0xdc, 0x44, 0xd2, 0x00, 0x00, 0x00, 0x10, // IID4006 - 0xd5, 0x30, 0xc7, 0x84, 0x48, 0xdf, 0xbe, 0xc0, 0xe4, 0x00, 0x00, 0x00, 0x10, // IID4007 - 0xd5, 0x30, 0xc7, 0x84, 0x91, 0xf5, 0x0e, 0x83, 0xc8, 0x00, 0x00, 0x00, 0x10, // IID4008 - 0xd5, 0x30, 0xc7, 0x84, 0x1a, 0xbe, 0xaf, 0x06, 0xf6, 0x00, 0x00, 0x00, 0x10, // IID4009 - 0xd5, 0x30, 0xc7, 0x84, 0xa3, 0xb1, 0xa0, 0x87, 0x18, 0x00, 0x00, 0x00, 0x10, // IID4010 - 0xd5, 0x30, 0xc7, 0x84, 0xec, 0xdc, 0x2a, 0xaa, 0xca, 0x00, 0x00, 0x00, 0x10, // IID4011 - 0xd5, 0x10, 0xc7, 0x85, 0x93, 0x4e, 0x39, 0xa9, 0x00, 0x00, 0x00, 0x10, // IID4012 - 0xd5, 0x30, 0xc7, 0x84, 0x7e, 0x84, 0x1c, 0x15, 0xab, 0x00, 0x00, 0x00, 0x10, // IID4013 - 0xd5, 0x10, 0xc7, 0x87, 0x6f, 0x61, 0xed, 0x8b, 0x00, 0x00, 0x00, 0x10, // IID4014 - 0xd5, 0x33, 0xc7, 0x84, 0x48, 0xb1, 0xe1, 0x05, 0x1a, 0x00, 0x00, 0x00, 0x10, // IID4015 - 0xd5, 0x11, 0xc7, 0x81, 0xeb, 0x0f, 0x54, 0x99, 0x00, 0x00, 0x00, 0x10, // IID4016 - 0xd5, 0x33, 0xc7, 0x84, 0xda, 0x5a, 0xac, 0xfa, 0x9e, 0x00, 0x00, 0x00, 0x10, // IID4017 - 0xd5, 0x33, 0xc7, 0x84, 0xe3, 0xba, 0xe9, 0x8a, 0x53, 0x00, 0x00, 0x00, 0x10, // IID4018 - 0xd5, 0x33, 0xc7, 0x84, 0xec, 0xef, 0xd2, 0x57, 0x16, 0x00, 0x00, 0x00, 0x10, // IID4019 - 0xd5, 0x11, 0xc7, 0x85, 0xa2, 0xb3, 0x37, 0xa9, 0x00, 0x00, 0x00, 0x10, // IID4020 - 0xd5, 0x33, 0xc7, 0x84, 0x7e, 0x6e, 0x70, 0x1b, 0x96, 0x00, 0x00, 0x00, 0x10, // IID4021 - 0xd5, 0x11, 0xc7, 0x87, 0xd7, 0x67, 0x98, 0xb7, 0x00, 0x00, 0x00, 0x10, // IID4022 -#endif // _LP64 - 0xf6, 0x84, 0xd1, 0x6b, 0x5f, 0x86, 0x79, 0x01, // IID4023 - 0xf6, 0x84, 0x5a, 0x18, 0x61, 0x3a, 0x7d, 0x01, // IID4024 -#ifdef _LP64 - 0x42, 0xf6, 0x84, 0xc3, 0x41, 0xca, 0xbf, 0xa2, 0x01, // IID4025 - 0x43, 0xf6, 0x84, 0xc8, 0xa4, 0xa3, 0x93, 0x2b, 0x01, // IID4026 - 0x41, 0xf6, 0x81, 0x5b, 0xef, 0xd0, 0x71, 0x01, // IID4027 - 0x41, 0xf6, 0x82, 0xb1, 0xb5, 0x70, 0xfa, 0x01, // IID4028 - 0x43, 0xf6, 0x84, 0xe3, 0xeb, 0x4c, 0xc9, 0x80, 0x01, // IID4029 - 0x41, 0xf6, 0x84, 0x24, 0xba, 0x53, 0x8d, 0xb2, 0x01, // IID4030 - 0x43, 0xf6, 0x84, 0xb5, 0xff, 0x33, 0x3b, 0x24, 0x01, // IID4031 - 0x43, 0xf6, 0x84, 0x3e, 0xc2, 0xc7, 0x49, 0x3f, 0x01, // IID4032 - 0xd5, 0x21, 0xf6, 0x84, 0xc7, 0x0c, 0x5b, 0x40, 0x60, 0x01, // IID4033 - 0xd5, 0x10, 0xf6, 0x80, 0x39, 0x44, 0xd0, 0xad, 0x01, // IID4034 - 0xd5, 0x30, 0xf6, 0x84, 0x51, 0xb1, 0xb3, 0x6f, 0x46, 0x01, // IID4035 - 0xd5, 0x30, 0xf6, 0x84, 0x9a, 0xd6, 0x9d, 0xcb, 0x2c, 0x01, // IID4036 - 0xd5, 0x30, 0xf6, 0x84, 0xe3, 0xf4, 0xb7, 0x1f, 0x93, 0x01, // IID4037 - 0xd5, 0x30, 0xf6, 0x84, 0xec, 0x49, 0x3e, 0xd2, 0x0c, 0x01, // IID4038 - 0xd5, 0x30, 0xf6, 0x84, 0xb5, 0x00, 0x46, 0x7d, 0x37, 0x01, // IID4039 - 0xd5, 0x30, 0xf6, 0x84, 0xfe, 0xec, 0x13, 0x3d, 0xa3, 0x01, // IID4040 - 0xd5, 0x32, 0xf6, 0x84, 0xc7, 0x7d, 0x4d, 0xba, 0x28, 0x01, // IID4041 - 0xd5, 0x33, 0xf6, 0x84, 0x08, 0x0d, 0xd8, 0x86, 0xb1, 0x01, // IID4042 - 0xd5, 0x33, 0xf6, 0x84, 0xd1, 0x2c, 0x0e, 0x51, 0x0d, 0x01, // IID4043 - 0xd5, 0x33, 0xf6, 0x84, 0xda, 0x12, 0xd5, 0x22, 0xe4, 0x01, // IID4044 - 0xd5, 0x33, 0xf6, 0x84, 0x63, 0x15, 0x3a, 0xd7, 0x47, 0x01, // IID4045 - 0xd5, 0x33, 0xf6, 0x84, 0xec, 0x2a, 0x59, 0x2e, 0xaa, 0x01, // IID4046 - 0xd5, 0x33, 0xf6, 0x84, 0xb5, 0x8d, 0x1f, 0xf9, 0x75, 0x01, // IID4047 - 0xd5, 0x33, 0xf6, 0x84, 0xfe, 0xaf, 0x3b, 0x73, 0x54, 0x01, // IID4048 - 0xd5, 0x11, 0xf6, 0x84, 0x4f, 0xbf, 0x2a, 0x3a, 0x99, 0x01, // IID4049 - 0xf6, 0x84, 0x91, 0xec, 0x41, 0x70, 0xd3, 0x04, // IID4050 - 0xf6, 0x82, 0x14, 0x25, 0x5f, 0x3e, 0x04, // IID4051 - 0x42, 0xf6, 0x84, 0x43, 0xa3, 0x5d, 0x8d, 0x7a, 0x04, // IID4052 - 0x43, 0xf6, 0x84, 0x48, 0xe9, 0x2b, 0x12, 0x2b, 0x04, // IID4053 - 0x43, 0xf6, 0x84, 0x51, 0xd5, 0x9a, 0x7f, 0xd5, 0x04, // IID4054 - 0x43, 0xf6, 0x84, 0x1a, 0xdf, 0xea, 0x9f, 0x2a, 0x04, // IID4055 - 0x41, 0xf6, 0x83, 0x06, 0xda, 0x20, 0xc8, 0x04, // IID4056 - 0x43, 0xf6, 0x84, 0xac, 0x9a, 0xde, 0x95, 0x7e, 0x04, // IID4057 - 0x41, 0xf6, 0x85, 0x31, 0xd2, 0x85, 0xea, 0x04, // IID4058 - 0x43, 0xf6, 0x84, 0x3e, 0x94, 0x4c, 0x2c, 0x9e, 0x04, // IID4059 - 0xd5, 0x21, 0xf6, 0x84, 0x87, 0x04, 0xd1, 0x36, 0x0a, 0x04, // IID4060 - 0xd5, 0x10, 0xf6, 0x80, 0x2a, 0xcd, 0x7f, 0xda, 0x04, // IID4061 - 0xd5, 0x30, 0xf6, 0x84, 0xd1, 0x88, 0xcd, 0x9d, 0x33, 0x04, // IID4062 - 0xd5, 0x30, 0xf6, 0x84, 0xda, 0x37, 0x8d, 0x3c, 0xb7, 0x04, // IID4063 - 0xd5, 0x30, 0xf6, 0x84, 0xe3, 0x15, 0x9c, 0x08, 0x23, 0x04, // IID4064 - 0xd5, 0x30, 0xf6, 0x84, 0xac, 0xac, 0x14, 0xb8, 0x2c, 0x04, // IID4065 - 0xd5, 0x30, 0xf6, 0x84, 0xf5, 0x3b, 0xfd, 0x0b, 0x18, 0x04, // IID4066 - 0xd5, 0x30, 0xf6, 0x84, 0x7e, 0x60, 0xe4, 0xa7, 0xeb, 0x04, // IID4067 - 0xd5, 0x32, 0xf6, 0x84, 0x47, 0x1a, 0x4c, 0x93, 0xba, 0x04, // IID4068 - 0xd5, 0x33, 0xf6, 0x84, 0xc8, 0xcd, 0x40, 0x06, 0xae, 0x04, // IID4069 - 0xd5, 0x11, 0xf6, 0x81, 0x6e, 0xd3, 0x24, 0x3a, 0x04, // IID4070 - 0xd5, 0x11, 0xf6, 0x82, 0x15, 0xf5, 0x96, 0x23, 0x04, // IID4071 - 0xd5, 0x11, 0xf6, 0x83, 0x95, 0x43, 0xbb, 0x94, 0x04, // IID4072 - 0xd5, 0x33, 0xf6, 0x84, 0xac, 0xd2, 0x12, 0x3c, 0xa9, 0x04, // IID4073 - 0xd5, 0x33, 0xf6, 0x84, 0xb5, 0x70, 0x03, 0x4d, 0x56, 0x04, // IID4074 - 0xd5, 0x33, 0xf6, 0x84, 0x7e, 0x83, 0xc1, 0x8d, 0x05, 0x04, // IID4075 - 0xd5, 0x11, 0xf6, 0x84, 0x0f, 0xd3, 0x7d, 0xe3, 0x09, 0x04, // IID4076 - 0xf6, 0x84, 0xd1, 0x0d, 0xcb, 0x72, 0xa0, 0x10, // IID4077 - 0xf6, 0x84, 0x1a, 0x77, 0x23, 0x03, 0x74, 0x10, // IID4078 - 0x42, 0xf6, 0x84, 0x03, 0x36, 0x31, 0xed, 0xde, 0x10, // IID4079 - 0x43, 0xf6, 0x84, 0x48, 0x8a, 0xda, 0x9d, 0xe9, 0x10, // IID4080 - 0x43, 0xf6, 0x84, 0x91, 0xc4, 0x9c, 0x76, 0x6f, 0x10, // IID4081 - 0x43, 0xf6, 0x84, 0x1a, 0x0b, 0xe7, 0x82, 0xeb, 0x10, // IID4082 - 0x43, 0xf6, 0x84, 0xa3, 0xfb, 0x39, 0x10, 0x60, 0x10, // IID4083 - 0x41, 0xf6, 0x84, 0x24, 0x9a, 0xbe, 0x23, 0xe5, 0x10, // IID4084 - 0x43, 0xf6, 0x84, 0xf5, 0xee, 0x63, 0x39, 0x32, 0x10, // IID4085 - 0x41, 0xf6, 0x86, 0xa1, 0xce, 0xc1, 0xfe, 0x10, // IID4086 - 0xd5, 0x21, 0xf6, 0x84, 0x87, 0x58, 0x72, 0xf9, 0x0f, 0x10, // IID4087 - 0xd5, 0x30, 0xf6, 0x84, 0x08, 0xe1, 0xd4, 0xf6, 0x7f, 0x10, // IID4088 - 0xd5, 0x30, 0xf6, 0x84, 0xd1, 0xcf, 0x3d, 0xb9, 0x02, 0x10, // IID4089 - 0xd5, 0x30, 0xf6, 0x84, 0x5a, 0x96, 0x02, 0x8d, 0x35, 0x10, // IID4090 - 0xd5, 0x30, 0xf6, 0x84, 0x63, 0xc6, 0x26, 0x52, 0x69, 0x10, // IID4091 - 0xd5, 0x30, 0xf6, 0x84, 0xac, 0x16, 0x13, 0x83, 0x90, 0x10, // IID4092 - 0xd5, 0x30, 0xf6, 0x84, 0x35, 0x43, 0xb2, 0xc9, 0xb0, 0x10, // IID4093 - 0xd5, 0x30, 0xf6, 0x84, 0xfe, 0xff, 0x20, 0x84, 0xf0, 0x10, // IID4094 - 0xd5, 0x32, 0xf6, 0x84, 0xc7, 0x11, 0xb6, 0x20, 0x4f, 0x10, // IID4095 - 0xd5, 0x33, 0xf6, 0x84, 0x08, 0x1a, 0xf5, 0x0d, 0xa0, 0x10, // IID4096 - 0xd5, 0x33, 0xf6, 0x84, 0xd1, 0x8b, 0x55, 0x32, 0x3b, 0x10, // IID4097 - 0xd5, 0x33, 0xf6, 0x84, 0x5a, 0x62, 0xbb, 0xca, 0x44, 0x10, // IID4098 - 0xd5, 0x11, 0xf6, 0x83, 0xf5, 0x6b, 0x02, 0x2a, 0x10, // IID4099 - 0xd5, 0x33, 0xf6, 0x84, 0xec, 0xa4, 0xf3, 0xe4, 0xd9, 0x10, // IID4100 - 0xd5, 0x33, 0xf6, 0x84, 0xb5, 0xe0, 0x76, 0xde, 0x87, 0x10, // IID4101 - 0xd5, 0x11, 0xf6, 0x86, 0x10, 0xd4, 0x2c, 0xd7, 0x10, // IID4102 - 0xd5, 0x11, 0xf6, 0x84, 0x0f, 0x6e, 0x75, 0x1d, 0xdb, 0x10, // IID4103 - 0xf6, 0x81, 0xfb, 0xac, 0x3e, 0x4b, 0x40, // IID4104 - 0xf6, 0x84, 0x9a, 0xc1, 0x51, 0x34, 0xe6, 0x40, // IID4105 - 0x42, 0xf6, 0x84, 0x03, 0x1b, 0x05, 0x36, 0xa3, 0x40, // IID4106 - 0x43, 0xf6, 0x84, 0x08, 0x92, 0xf9, 0x4d, 0x47, 0x40, // IID4107 - 0x43, 0xf6, 0x84, 0x91, 0x96, 0xa1, 0xe9, 0x82, 0x40, // IID4108 - 0x43, 0xf6, 0x84, 0x1a, 0x42, 0x68, 0x7b, 0x95, 0x40, // IID4109 - 0x41, 0xf6, 0x83, 0xec, 0xa8, 0x06, 0x07, 0x40, // IID4110 - 0x43, 0xf6, 0x84, 0xec, 0x58, 0x12, 0x4c, 0x2f, 0x40, // IID4111 - 0x41, 0xf6, 0x85, 0x90, 0x67, 0x1f, 0x41, 0x40, // IID4112 - 0x43, 0xf6, 0x84, 0x7e, 0xa5, 0x57, 0x48, 0xea, 0x40, // IID4113 - 0xd5, 0x21, 0xf6, 0x84, 0x07, 0x70, 0x4c, 0x07, 0x52, 0x40, // IID4114 - 0xd5, 0x10, 0xf6, 0x80, 0xa0, 0x5c, 0xc7, 0x60, 0x40, // IID4115 - 0xd5, 0x30, 0xf6, 0x84, 0xd1, 0x4f, 0xda, 0x0a, 0xf2, 0x40, // IID4116 - 0xd5, 0x30, 0xf6, 0x84, 0x1a, 0x24, 0x9d, 0x3d, 0x81, 0x40, // IID4117 - 0xd5, 0x30, 0xf6, 0x84, 0x23, 0x5b, 0x61, 0x88, 0xe0, 0x40, // IID4118 - 0xd5, 0x30, 0xf6, 0x84, 0x6c, 0xb9, 0x4d, 0xb7, 0x85, 0x40, // IID4119 - 0xd5, 0x30, 0xf6, 0x84, 0x35, 0x36, 0xc2, 0x1b, 0x8d, 0x40, // IID4120 - 0xd5, 0x30, 0xf6, 0x84, 0x7e, 0xc6, 0x41, 0xbe, 0x84, 0x40, // IID4121 - 0xd5, 0x32, 0xf6, 0x84, 0x47, 0xc2, 0xa8, 0xf9, 0x54, 0x40, // IID4122 - 0xd5, 0x33, 0xf6, 0x84, 0x08, 0x44, 0x41, 0x45, 0x4c, 0x40, // IID4123 - 0xd5, 0x33, 0xf6, 0x84, 0x91, 0xa8, 0x17, 0x67, 0xa9, 0x40, // IID4124 - 0xd5, 0x33, 0xf6, 0x84, 0x5a, 0xbb, 0x89, 0x71, 0xac, 0x40, // IID4125 - 0xd5, 0x33, 0xf6, 0x84, 0xa3, 0xe0, 0xa0, 0x37, 0xec, 0x40, // IID4126 - 0xd5, 0x33, 0xf6, 0x84, 0x6c, 0x3e, 0x44, 0x49, 0x1f, 0x40, // IID4127 - 0xd5, 0x33, 0xf6, 0x84, 0x75, 0x6b, 0x1b, 0x4f, 0x66, 0x40, // IID4128 - 0xd5, 0x33, 0xf6, 0x84, 0x3e, 0x1f, 0xe5, 0x97, 0x58, 0x40, // IID4129 - 0xd5, 0x11, 0xf6, 0x84, 0x4f, 0xb7, 0x1c, 0x0b, 0x13, 0x40, // IID4130 -#endif // _LP64 - 0xf7, 0x81, 0xd2, 0x15, 0xc2, 0xcf, 0x00, 0x00, 0x01, 0x00, // IID4131 - 0xf7, 0x84, 0xda, 0xb9, 0x64, 0x5d, 0x4d, 0x00, 0x00, 0x01, 0x00, // IID4132 -#ifdef _LP64 - 0x42, 0xf7, 0x84, 0x83, 0x3b, 0x1d, 0xf7, 0xeb, 0x00, 0x00, 0x01, 0x00, // IID4133 - 0x43, 0xf7, 0x84, 0x88, 0xa3, 0x04, 0xa1, 0x8f, 0x00, 0x00, 0x01, 0x00, // IID4134 - 0x43, 0xf7, 0x84, 0x51, 0x45, 0xf0, 0x32, 0xd9, 0x00, 0x00, 0x01, 0x00, // IID4135 - 0x43, 0xf7, 0x84, 0x9a, 0xba, 0x18, 0x7b, 0x62, 0x00, 0x00, 0x01, 0x00, // IID4136 - 0x43, 0xf7, 0x84, 0xe3, 0x9d, 0xbf, 0xde, 0xed, 0x00, 0x00, 0x01, 0x00, // IID4137 - 0x43, 0xf7, 0x84, 0xac, 0xf6, 0xf6, 0xa6, 0x0e, 0x00, 0x00, 0x01, 0x00, // IID4138 - 0x41, 0xf7, 0x85, 0x81, 0x46, 0x4e, 0x40, 0x00, 0x00, 0x01, 0x00, // IID4139 - 0x43, 0xf7, 0x84, 0x3e, 0x87, 0x90, 0x67, 0x9f, 0x00, 0x00, 0x01, 0x00, // IID4140 - 0xd5, 0x21, 0xf7, 0x84, 0xc7, 0x96, 0x0b, 0xe5, 0xbd, 0x00, 0x00, 0x01, 0x00, // IID4141 - 0xd5, 0x30, 0xf7, 0x84, 0x08, 0x21, 0x44, 0x2f, 0x32, 0x00, 0x00, 0x01, 0x00, // IID4142 - 0xd5, 0x30, 0xf7, 0x84, 0x11, 0x55, 0xb2, 0xc6, 0xd9, 0x00, 0x00, 0x01, 0x00, // IID4143 - 0xd5, 0x10, 0xf7, 0x82, 0x93, 0x4c, 0x31, 0x7c, 0x00, 0x00, 0x01, 0x00, // IID4144 - 0xd5, 0x10, 0xf7, 0x83, 0x5b, 0xf7, 0x4a, 0xa4, 0x00, 0x00, 0x01, 0x00, // IID4145 - 0xd5, 0x10, 0xf7, 0x84, 0x24, 0xba, 0x65, 0x92, 0xf0, 0x00, 0x00, 0x01, 0x00, // IID4146 - 0xd5, 0x30, 0xf7, 0x84, 0xb5, 0x32, 0x11, 0x44, 0xee, 0x00, 0x00, 0x01, 0x00, // IID4147 - 0xd5, 0x10, 0xf7, 0x86, 0x7b, 0x52, 0xfe, 0xae, 0x00, 0x00, 0x01, 0x00, // IID4148 - 0xd5, 0x32, 0xf7, 0x84, 0x07, 0x41, 0x5d, 0x84, 0xb6, 0x00, 0x00, 0x01, 0x00, // IID4149 - 0xd5, 0x33, 0xf7, 0x84, 0x88, 0xd7, 0x55, 0x01, 0xd5, 0x00, 0x00, 0x01, 0x00, // IID4150 - 0xd5, 0x33, 0xf7, 0x84, 0x91, 0xba, 0x70, 0xc9, 0xa8, 0x00, 0x00, 0x01, 0x00, // IID4151 - 0xd5, 0x33, 0xf7, 0x84, 0x5a, 0x49, 0x77, 0x3a, 0xb6, 0x00, 0x00, 0x01, 0x00, // IID4152 - 0xd5, 0x33, 0xf7, 0x84, 0x23, 0xda, 0x11, 0x4d, 0x93, 0x00, 0x00, 0x01, 0x00, // IID4153 - 0xd5, 0x33, 0xf7, 0x84, 0xac, 0xac, 0x4e, 0x65, 0x05, 0x00, 0x00, 0x01, 0x00, // IID4154 - 0xd5, 0x33, 0xf7, 0x84, 0xf5, 0x51, 0x21, 0xfa, 0x65, 0x00, 0x00, 0x01, 0x00, // IID4155 - 0xd5, 0x33, 0xf7, 0x84, 0xbe, 0x9b, 0xee, 0xeb, 0xdb, 0x00, 0x00, 0x01, 0x00, // IID4156 - 0xd5, 0x11, 0xf7, 0x87, 0x11, 0x78, 0xbc, 0xb1, 0x00, 0x00, 0x01, 0x00, // IID4157 - 0xf7, 0x81, 0x80, 0x02, 0xf5, 0xa1, 0x00, 0x00, 0x04, 0x00, // IID4158 - 0xf7, 0x84, 0x5a, 0x41, 0x41, 0xa3, 0x9f, 0x00, 0x00, 0x04, 0x00, // IID4159 - 0xf7, 0x83, 0x97, 0x47, 0xec, 0x6d, 0x00, 0x00, 0x04, 0x00, // IID4160 - 0x43, 0xf7, 0x84, 0x08, 0xe4, 0x9c, 0xb9, 0xda, 0x00, 0x00, 0x04, 0x00, // IID4161 - 0x43, 0xf7, 0x84, 0x11, 0x68, 0xb2, 0x94, 0xe7, 0x00, 0x00, 0x04, 0x00, // IID4162 - 0x43, 0xf7, 0x84, 0xda, 0xad, 0xda, 0x4e, 0x60, 0x00, 0x00, 0x04, 0x00, // IID4163 - 0x43, 0xf7, 0x84, 0x23, 0xa2, 0xbc, 0x0d, 0x53, 0x00, 0x00, 0x04, 0x00, // IID4164 - 0x41, 0xf7, 0x84, 0x24, 0x9e, 0xf9, 0x7b, 0xac, 0x00, 0x00, 0x04, 0x00, // IID4165 - 0x41, 0xf7, 0x85, 0xca, 0xa3, 0x5b, 0x5b, 0x00, 0x00, 0x04, 0x00, // IID4166 - 0x43, 0xf7, 0x84, 0xfe, 0x43, 0x6a, 0x10, 0xa6, 0x00, 0x00, 0x04, 0x00, // IID4167 - 0xd5, 0x21, 0xf7, 0x84, 0x07, 0x25, 0x20, 0x9f, 0xe1, 0x00, 0x00, 0x04, 0x00, // IID4168 - 0xd5, 0x30, 0xf7, 0x84, 0x08, 0xe5, 0xfb, 0x77, 0xb6, 0x00, 0x00, 0x04, 0x00, // IID4169 - 0xd5, 0x30, 0xf7, 0x84, 0x91, 0xc9, 0x36, 0x00, 0x2b, 0x00, 0x00, 0x04, 0x00, // IID4170 - 0xd5, 0x30, 0xf7, 0x84, 0x5a, 0x27, 0x8f, 0x76, 0x96, 0x00, 0x00, 0x04, 0x00, // IID4171 - 0xd5, 0x30, 0xf7, 0x84, 0xa3, 0xdf, 0x3c, 0x72, 0xf3, 0x00, 0x00, 0x04, 0x00, // IID4172 - 0xd5, 0x30, 0xf7, 0x84, 0x6c, 0x1b, 0xe9, 0x60, 0xed, 0x00, 0x00, 0x04, 0x00, // IID4173 - 0xd5, 0x30, 0xf7, 0x84, 0xb5, 0x87, 0x3d, 0x8e, 0x49, 0x00, 0x00, 0x04, 0x00, // IID4174 - 0xd5, 0x30, 0xf7, 0x84, 0xbe, 0xee, 0x74, 0x07, 0xd9, 0x00, 0x00, 0x04, 0x00, // IID4175 - 0xd5, 0x32, 0xf7, 0x84, 0x07, 0x21, 0x97, 0x94, 0xd7, 0x00, 0x00, 0x04, 0x00, // IID4176 - 0xd5, 0x11, 0xf7, 0x80, 0x2d, 0xba, 0x46, 0xdf, 0x00, 0x00, 0x04, 0x00, // IID4177 - 0xd5, 0x33, 0xf7, 0x84, 0x51, 0x11, 0x16, 0xc2, 0x68, 0x00, 0x00, 0x04, 0x00, // IID4178 - 0xd5, 0x33, 0xf7, 0x84, 0xda, 0xce, 0xeb, 0x81, 0xaa, 0x00, 0x00, 0x04, 0x00, // IID4179 - 0xd5, 0x33, 0xf7, 0x84, 0xa3, 0x02, 0xfd, 0x4a, 0x4d, 0x00, 0x00, 0x04, 0x00, // IID4180 - 0xd5, 0x33, 0xf7, 0x84, 0xac, 0x10, 0xae, 0xc8, 0x03, 0x00, 0x00, 0x04, 0x00, // IID4181 - 0xd5, 0x11, 0xf7, 0x85, 0x3a, 0xef, 0xbc, 0x62, 0x00, 0x00, 0x04, 0x00, // IID4182 - 0xd5, 0x33, 0xf7, 0x84, 0x3e, 0xa1, 0x6e, 0xd4, 0xa5, 0x00, 0x00, 0x04, 0x00, // IID4183 - 0xd5, 0x11, 0xf7, 0x84, 0x0f, 0xcb, 0x28, 0xd2, 0x58, 0x00, 0x00, 0x04, 0x00, // IID4184 - 0xf7, 0x84, 0x51, 0x9e, 0xab, 0xb5, 0xe0, 0x00, 0x00, 0x10, 0x00, // IID4185 - 0xf7, 0x84, 0x9a, 0xbb, 0xe9, 0x5d, 0x10, 0x00, 0x00, 0x10, 0x00, // IID4186 - 0x42, 0xf7, 0x84, 0x83, 0x83, 0xc0, 0xbf, 0xb5, 0x00, 0x00, 0x10, 0x00, // IID4187 - 0x43, 0xf7, 0x84, 0xc8, 0x9c, 0x77, 0xd8, 0xce, 0x00, 0x00, 0x10, 0x00, // IID4188 - 0x41, 0xf7, 0x81, 0x41, 0xa4, 0x22, 0xa4, 0x00, 0x00, 0x10, 0x00, // IID4189 - 0x43, 0xf7, 0x84, 0x1a, 0x32, 0x71, 0xfd, 0x10, 0x00, 0x00, 0x10, 0x00, // IID4190 - 0x43, 0xf7, 0x84, 0x63, 0xc5, 0x97, 0xd6, 0x1e, 0x00, 0x00, 0x10, 0x00, // IID4191 - 0x43, 0xf7, 0x84, 0x2c, 0x7b, 0x54, 0xc8, 0x67, 0x00, 0x00, 0x10, 0x00, // IID4192 - 0x43, 0xf7, 0x84, 0x35, 0xab, 0x01, 0x40, 0x4a, 0x00, 0x00, 0x10, 0x00, // IID4193 - 0x43, 0xf7, 0x84, 0x7e, 0x4a, 0x86, 0xa1, 0x29, 0x00, 0x00, 0x10, 0x00, // IID4194 - 0xd5, 0x21, 0xf7, 0x84, 0x07, 0xd6, 0x36, 0xea, 0x8c, 0x00, 0x00, 0x10, 0x00, // IID4195 - 0xd5, 0x10, 0xf7, 0x80, 0xb4, 0xbd, 0x9b, 0x1d, 0x00, 0x00, 0x10, 0x00, // IID4196 - 0xd5, 0x30, 0xf7, 0x84, 0xd1, 0xad, 0x75, 0x58, 0xbb, 0x00, 0x00, 0x10, 0x00, // IID4197 - 0xd5, 0x30, 0xf7, 0x84, 0x9a, 0xb3, 0x37, 0xd6, 0xc7, 0x00, 0x00, 0x10, 0x00, // IID4198 - 0xd5, 0x30, 0xf7, 0x84, 0xa3, 0xf4, 0x68, 0x28, 0x5b, 0x00, 0x00, 0x10, 0x00, // IID4199 - 0xd5, 0x30, 0xf7, 0x84, 0x2c, 0x5b, 0x5f, 0x4c, 0x04, 0x00, 0x00, 0x10, 0x00, // IID4200 - 0xd5, 0x30, 0xf7, 0x84, 0x75, 0x70, 0x7f, 0x41, 0x6c, 0x00, 0x00, 0x10, 0x00, // IID4201 - 0xd5, 0x30, 0xf7, 0x84, 0x3e, 0x60, 0xff, 0x39, 0xe5, 0x00, 0x00, 0x10, 0x00, // IID4202 - 0xd5, 0x32, 0xf7, 0x84, 0xc7, 0xac, 0x4d, 0x9d, 0x6a, 0x00, 0x00, 0x10, 0x00, // IID4203 - 0xd5, 0x33, 0xf7, 0x84, 0x08, 0xe0, 0xb6, 0xb8, 0x19, 0x00, 0x00, 0x10, 0x00, // IID4204 - 0xd5, 0x11, 0xf7, 0x81, 0xc1, 0xc1, 0x33, 0x26, 0x00, 0x00, 0x10, 0x00, // IID4205 - 0xd5, 0x33, 0xf7, 0x84, 0xda, 0x87, 0x56, 0x78, 0x5b, 0x00, 0x00, 0x10, 0x00, // IID4206 - 0xd5, 0x11, 0xf7, 0x83, 0x4f, 0x99, 0x8e, 0x88, 0x00, 0x00, 0x10, 0x00, // IID4207 - 0xd5, 0x33, 0xf7, 0x84, 0xec, 0x29, 0xa2, 0x61, 0xb6, 0x00, 0x00, 0x10, 0x00, // IID4208 - 0xd5, 0x33, 0xf7, 0x84, 0x75, 0x51, 0x1c, 0xf1, 0xd7, 0x00, 0x00, 0x10, 0x00, // IID4209 - 0xd5, 0x33, 0xf7, 0x84, 0xfe, 0xb2, 0xed, 0x46, 0xc4, 0x00, 0x00, 0x10, 0x00, // IID4210 - 0xd5, 0x11, 0xf7, 0x84, 0x8f, 0x95, 0xdf, 0x4a, 0xd4, 0x00, 0x00, 0x10, 0x00, // IID4211 - 0xf7, 0x84, 0xd1, 0xae, 0xec, 0x2a, 0x15, 0x00, 0x00, 0x40, 0x00, // IID4212 - 0xf7, 0x84, 0x9a, 0x00, 0x0b, 0x5e, 0xa1, 0x00, 0x00, 0x40, 0x00, // IID4213 - 0x42, 0xf7, 0x84, 0x83, 0xd0, 0xf2, 0x4e, 0x89, 0x00, 0x00, 0x40, 0x00, // IID4214 - 0x43, 0xf7, 0x84, 0xc8, 0x91, 0x57, 0x66, 0xf9, 0x00, 0x00, 0x40, 0x00, // IID4215 - 0x43, 0xf7, 0x84, 0x91, 0xb4, 0xb8, 0xdb, 0x10, 0x00, 0x00, 0x40, 0x00, // IID4216 - 0x43, 0xf7, 0x84, 0xda, 0x91, 0xaa, 0xb0, 0x3d, 0x00, 0x00, 0x40, 0x00, // IID4217 - 0x43, 0xf7, 0x84, 0xe3, 0x17, 0xff, 0xff, 0x21, 0x00, 0x00, 0x40, 0x00, // IID4218 - 0x41, 0xf7, 0x84, 0x24, 0xed, 0x64, 0x25, 0x1f, 0x00, 0x00, 0x40, 0x00, // IID4219 - 0x43, 0xf7, 0x84, 0xf5, 0xe4, 0xf1, 0x13, 0x79, 0x00, 0x00, 0x40, 0x00, // IID4220 - 0x41, 0xf7, 0x86, 0x48, 0xee, 0x6f, 0xfa, 0x00, 0x00, 0x40, 0x00, // IID4221 - 0xd5, 0x21, 0xf7, 0x84, 0x07, 0xb5, 0x49, 0x86, 0x9a, 0x00, 0x00, 0x40, 0x00, // IID4222 - 0xd5, 0x30, 0xf7, 0x84, 0xc8, 0x24, 0x7f, 0x9d, 0x16, 0x00, 0x00, 0x40, 0x00, // IID4223 - 0xd5, 0x30, 0xf7, 0x84, 0xd1, 0x37, 0xed, 0x6e, 0xd2, 0x00, 0x00, 0x40, 0x00, // IID4224 - 0xd5, 0x10, 0xf7, 0x82, 0xca, 0x3b, 0x76, 0x25, 0x00, 0x00, 0x40, 0x00, // IID4225 - 0xd5, 0x10, 0xf7, 0x83, 0x0a, 0xc4, 0x42, 0xa3, 0x00, 0x00, 0x40, 0x00, // IID4226 - 0xd5, 0x30, 0xf7, 0x84, 0x2c, 0x42, 0x41, 0xd4, 0xc2, 0x00, 0x00, 0x40, 0x00, // IID4227 - 0xd5, 0x30, 0xf7, 0x84, 0xb5, 0xbd, 0xc6, 0x96, 0xeb, 0x00, 0x00, 0x40, 0x00, // IID4228 - 0xd5, 0x10, 0xf7, 0x86, 0x86, 0xca, 0x62, 0xdf, 0x00, 0x00, 0x40, 0x00, // IID4229 - 0xd5, 0x32, 0xf7, 0x84, 0x47, 0xd6, 0xc9, 0xcc, 0xd3, 0x00, 0x00, 0x40, 0x00, // IID4230 - 0xd5, 0x11, 0xf7, 0x80, 0x2e, 0x45, 0xad, 0xeb, 0x00, 0x00, 0x40, 0x00, // IID4231 - 0xd5, 0x33, 0xf7, 0x84, 0xd1, 0x31, 0xf5, 0xd0, 0x5d, 0x00, 0x00, 0x40, 0x00, // IID4232 - 0xd5, 0x11, 0xf7, 0x82, 0x61, 0x57, 0xc6, 0x20, 0x00, 0x00, 0x40, 0x00, // IID4233 - 0xd5, 0x11, 0xf7, 0x83, 0xa5, 0xcb, 0xa4, 0xb3, 0x00, 0x00, 0x40, 0x00, // IID4234 - 0xd5, 0x33, 0xf7, 0x84, 0xec, 0xcd, 0xed, 0x6e, 0x59, 0x00, 0x00, 0x40, 0x00, // IID4235 - 0xd5, 0x33, 0xf7, 0x84, 0xb5, 0xca, 0x07, 0x45, 0x00, 0x00, 0x00, 0x40, 0x00, // IID4236 - 0xd5, 0x11, 0xf7, 0x86, 0xd5, 0xda, 0xe4, 0xd4, 0x00, 0x00, 0x40, 0x00, // IID4237 - 0xd5, 0x11, 0xf7, 0x84, 0x8f, 0x2b, 0x52, 0x40, 0xa8, 0x00, 0x00, 0x40, 0x00, // IID4238 - 0xf7, 0x81, 0x71, 0xff, 0x44, 0xd3, 0x00, 0x00, 0x00, 0x01, // IID4239 - 0xf7, 0x82, 0xb2, 0x72, 0x72, 0x54, 0x00, 0x00, 0x00, 0x01, // IID4240 - 0x42, 0xf7, 0x84, 0x43, 0x65, 0x91, 0x7b, 0x8d, 0x00, 0x00, 0x00, 0x01, // IID4241 - 0x43, 0xf7, 0x84, 0x88, 0x28, 0x0d, 0x32, 0x86, 0x00, 0x00, 0x00, 0x01, // IID4242 - 0x43, 0xf7, 0x84, 0x51, 0x48, 0x2f, 0x67, 0x0e, 0x00, 0x00, 0x00, 0x01, // IID4243 - 0x43, 0xf7, 0x84, 0x5a, 0x5d, 0xf0, 0x74, 0x99, 0x00, 0x00, 0x00, 0x01, // IID4244 - 0x43, 0xf7, 0x84, 0xa3, 0x7a, 0xc2, 0xc5, 0xd0, 0x00, 0x00, 0x00, 0x01, // IID4245 - 0x43, 0xf7, 0x84, 0x6c, 0xe5, 0x32, 0xac, 0x42, 0x00, 0x00, 0x00, 0x01, // IID4246 - 0x43, 0xf7, 0x84, 0xf5, 0xf2, 0x62, 0x8c, 0x6e, 0x00, 0x00, 0x00, 0x01, // IID4247 - 0x43, 0xf7, 0x84, 0x3e, 0xd6, 0xd1, 0x4d, 0xe8, 0x00, 0x00, 0x00, 0x01, // IID4248 - 0xd5, 0x21, 0xf7, 0x84, 0x87, 0xec, 0xdb, 0xbb, 0x77, 0x00, 0x00, 0x00, 0x01, // IID4249 - 0xd5, 0x30, 0xf7, 0x84, 0xc8, 0xf0, 0x0d, 0xa9, 0xb5, 0x00, 0x00, 0x00, 0x01, // IID4250 - 0xd5, 0x30, 0xf7, 0x84, 0xd1, 0x33, 0xe1, 0x59, 0xee, 0x00, 0x00, 0x00, 0x01, // IID4251 - 0xd5, 0x30, 0xf7, 0x84, 0xda, 0x55, 0x6b, 0xd7, 0x63, 0x00, 0x00, 0x00, 0x01, // IID4252 - 0xd5, 0x30, 0xf7, 0x84, 0xe3, 0x34, 0x2f, 0xd0, 0xe2, 0x00, 0x00, 0x00, 0x01, // IID4253 - 0xd5, 0x30, 0xf7, 0x84, 0xac, 0x6f, 0xba, 0x15, 0xb3, 0x00, 0x00, 0x00, 0x01, // IID4254 - 0xd5, 0x10, 0xf7, 0x85, 0x74, 0x24, 0x3b, 0x61, 0x00, 0x00, 0x00, 0x01, // IID4255 - 0xd5, 0x10, 0xf7, 0x86, 0x3d, 0x81, 0xea, 0xa2, 0x00, 0x00, 0x00, 0x01, // IID4256 - 0xd5, 0x10, 0xf7, 0x87, 0x7a, 0x9d, 0xee, 0x99, 0x00, 0x00, 0x00, 0x01, // IID4257 - 0xd5, 0x33, 0xf7, 0x84, 0xc8, 0x1a, 0x59, 0x5f, 0x0b, 0x00, 0x00, 0x00, 0x01, // IID4258 - 0xd5, 0x33, 0xf7, 0x84, 0xd1, 0xd0, 0x2d, 0x32, 0x4c, 0x00, 0x00, 0x00, 0x01, // IID4259 - 0xd5, 0x33, 0xf7, 0x84, 0x1a, 0xf1, 0x2d, 0xf9, 0x42, 0x00, 0x00, 0x00, 0x01, // IID4260 - 0xd5, 0x33, 0xf7, 0x84, 0xe3, 0xbd, 0x5f, 0x2b, 0x8e, 0x00, 0x00, 0x00, 0x01, // IID4261 - 0xd5, 0x33, 0xf7, 0x84, 0x2c, 0xaf, 0x46, 0x69, 0x90, 0x00, 0x00, 0x00, 0x01, // IID4262 - 0xd5, 0x33, 0xf7, 0x84, 0x75, 0x36, 0x58, 0x7b, 0x03, 0x00, 0x00, 0x00, 0x01, // IID4263 - 0xd5, 0x33, 0xf7, 0x84, 0x7e, 0x17, 0x95, 0xf5, 0xff, 0x00, 0x00, 0x00, 0x01, // IID4264 - 0xd5, 0x11, 0xf7, 0x84, 0x0f, 0x38, 0x68, 0x26, 0x50, 0x00, 0x00, 0x00, 0x01, // IID4265 - 0xf7, 0x84, 0x11, 0x28, 0xc6, 0xe2, 0xe2, 0x00, 0x00, 0x00, 0x04, // IID4266 - 0xf7, 0x84, 0x1a, 0x9d, 0x00, 0x69, 0x01, 0x00, 0x00, 0x00, 0x04, // IID4267 - 0xf7, 0x83, 0xe8, 0xda, 0x89, 0x2f, 0x00, 0x00, 0x00, 0x04, // IID4268 - 0x43, 0xf7, 0x84, 0x08, 0x4f, 0x93, 0xd5, 0x6e, 0x00, 0x00, 0x00, 0x04, // IID4269 - 0x43, 0xf7, 0x84, 0x11, 0x2f, 0x03, 0x6e, 0xab, 0x00, 0x00, 0x00, 0x04, // IID4270 - 0x43, 0xf7, 0x84, 0x9a, 0x72, 0x2d, 0x07, 0xfa, 0x00, 0x00, 0x00, 0x04, // IID4271 - 0x43, 0xf7, 0x84, 0xa3, 0x6d, 0xce, 0xa7, 0xe8, 0x00, 0x00, 0x00, 0x04, // IID4272 - 0x43, 0xf7, 0x84, 0xec, 0x66, 0x30, 0x74, 0xff, 0x00, 0x00, 0x00, 0x04, // IID4273 - 0x43, 0xf7, 0x84, 0x35, 0x28, 0x20, 0xb8, 0x5c, 0x00, 0x00, 0x00, 0x04, // IID4274 - 0x43, 0xf7, 0x84, 0xfe, 0x1b, 0x76, 0x94, 0x85, 0x00, 0x00, 0x00, 0x04, // IID4275 - 0xd5, 0x21, 0xf7, 0x84, 0x47, 0x0d, 0xcc, 0x80, 0xe3, 0x00, 0x00, 0x00, 0x04, // IID4276 - 0xd5, 0x30, 0xf7, 0x84, 0x48, 0x70, 0x79, 0xf7, 0xec, 0x00, 0x00, 0x00, 0x04, // IID4277 - 0xd5, 0x30, 0xf7, 0x84, 0x91, 0xad, 0xd5, 0x59, 0x0b, 0x00, 0x00, 0x00, 0x04, // IID4278 - 0xd5, 0x30, 0xf7, 0x84, 0xda, 0x8e, 0x76, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x04, // IID4279 - 0xd5, 0x30, 0xf7, 0x84, 0xa3, 0xe5, 0x4b, 0xd0, 0xdc, 0x00, 0x00, 0x00, 0x04, // IID4280 - 0xd5, 0x10, 0xf7, 0x84, 0x24, 0xa1, 0xaf, 0x18, 0x80, 0x00, 0x00, 0x00, 0x04, // IID4281 - 0xd5, 0x30, 0xf7, 0x84, 0xf5, 0x06, 0x74, 0xfd, 0x04, 0x00, 0x00, 0x00, 0x04, // IID4282 - 0xd5, 0x30, 0xf7, 0x84, 0x3e, 0x6e, 0xde, 0x1a, 0xe3, 0x00, 0x00, 0x00, 0x04, // IID4283 - 0xd5, 0x32, 0xf7, 0x84, 0x07, 0xe1, 0xa7, 0xbb, 0xff, 0x00, 0x00, 0x00, 0x04, // IID4284 - 0xd5, 0x33, 0xf7, 0x84, 0x48, 0x6a, 0x57, 0x99, 0x30, 0x00, 0x00, 0x00, 0x04, // IID4285 - 0xd5, 0x33, 0xf7, 0x84, 0x51, 0xf5, 0x5b, 0xcc, 0xe5, 0x00, 0x00, 0x00, 0x04, // IID4286 - 0xd5, 0x33, 0xf7, 0x84, 0xda, 0x14, 0x9d, 0x0e, 0x03, 0x00, 0x00, 0x00, 0x04, // IID4287 - 0xd5, 0x33, 0xf7, 0x84, 0xa3, 0xb9, 0xe2, 0x5b, 0x7d, 0x00, 0x00, 0x00, 0x04, // IID4288 - 0xd5, 0x33, 0xf7, 0x84, 0xec, 0x0a, 0x0b, 0x96, 0x18, 0x00, 0x00, 0x00, 0x04, // IID4289 - 0xd5, 0x33, 0xf7, 0x84, 0x75, 0x06, 0x92, 0x80, 0xa9, 0x00, 0x00, 0x00, 0x04, // IID4290 - 0xd5, 0x33, 0xf7, 0x84, 0xfe, 0xd7, 0x54, 0xc1, 0xd3, 0x00, 0x00, 0x00, 0x04, // IID4291 - 0xd5, 0x11, 0xf7, 0x84, 0x8f, 0xe8, 0xf5, 0xec, 0x35, 0x00, 0x00, 0x00, 0x04, // IID4292 - 0xf7, 0x84, 0x11, 0x3a, 0x7b, 0x53, 0x47, 0x00, 0x00, 0x00, 0x10, // IID4293 - 0xf7, 0x82, 0xf0, 0x11, 0x0c, 0x3d, 0x00, 0x00, 0x00, 0x10, // IID4294 - 0x42, 0xf7, 0x84, 0x03, 0xda, 0x9c, 0xca, 0xd2, 0x00, 0x00, 0x00, 0x10, // IID4295 - 0x43, 0xf7, 0x84, 0x08, 0xf8, 0xa1, 0x1d, 0xf4, 0x00, 0x00, 0x00, 0x10, // IID4296 - 0x43, 0xf7, 0x84, 0x51, 0x10, 0x9f, 0xda, 0x73, 0x00, 0x00, 0x00, 0x10, // IID4297 - 0x43, 0xf7, 0x84, 0x9a, 0xbf, 0x60, 0x02, 0x9d, 0x00, 0x00, 0x00, 0x10, // IID4298 - 0x43, 0xf7, 0x84, 0x23, 0x8c, 0x64, 0x47, 0xeb, 0x00, 0x00, 0x00, 0x10, // IID4299 - 0x41, 0xf7, 0x84, 0x24, 0xdd, 0x2e, 0xf0, 0x31, 0x00, 0x00, 0x00, 0x10, // IID4300 - 0x43, 0xf7, 0x84, 0x35, 0xeb, 0x86, 0xfa, 0xf2, 0x00, 0x00, 0x00, 0x10, // IID4301 - 0x43, 0xf7, 0x84, 0xfe, 0x65, 0x48, 0xc2, 0x2c, 0x00, 0x00, 0x00, 0x10, // IID4302 - 0xd5, 0x21, 0xf7, 0x84, 0xc7, 0x8a, 0x51, 0x16, 0x0f, 0x00, 0x00, 0x00, 0x10, // IID4303 - 0xd5, 0x30, 0xf7, 0x84, 0x08, 0xff, 0x67, 0x50, 0xc8, 0x00, 0x00, 0x00, 0x10, // IID4304 - 0xd5, 0x30, 0xf7, 0x84, 0x51, 0x28, 0xba, 0x39, 0x26, 0x00, 0x00, 0x00, 0x10, // IID4305 - 0xd5, 0x30, 0xf7, 0x84, 0x9a, 0xfb, 0xea, 0xe8, 0xc8, 0x00, 0x00, 0x00, 0x10, // IID4306 - 0xd5, 0x10, 0xf7, 0x83, 0x81, 0x1e, 0x1b, 0x9b, 0x00, 0x00, 0x00, 0x10, // IID4307 - 0xd5, 0x30, 0xf7, 0x84, 0x6c, 0x5a, 0x88, 0x63, 0x47, 0x00, 0x00, 0x00, 0x10, // IID4308 - 0xd5, 0x30, 0xf7, 0x84, 0x75, 0x8b, 0x78, 0x5f, 0x87, 0x00, 0x00, 0x00, 0x10, // IID4309 - 0xd5, 0x30, 0xf7, 0x84, 0x3e, 0xad, 0x0b, 0x6d, 0xa9, 0x00, 0x00, 0x00, 0x10, // IID4310 - 0xd5, 0x32, 0xf7, 0x84, 0x07, 0x73, 0xd7, 0x5a, 0x93, 0x00, 0x00, 0x00, 0x10, // IID4311 - 0xd5, 0x11, 0xf7, 0x80, 0x1e, 0xae, 0x79, 0xf5, 0x00, 0x00, 0x00, 0x10, // IID4312 - 0xd5, 0x11, 0xf7, 0x81, 0x4c, 0x65, 0x75, 0x17, 0x00, 0x00, 0x00, 0x10, // IID4313 - 0xd5, 0x33, 0xf7, 0x84, 0x9a, 0xe8, 0x6e, 0x5d, 0xd7, 0x00, 0x00, 0x00, 0x10, // IID4314 - 0xd5, 0x33, 0xf7, 0x84, 0xe3, 0xa0, 0x3d, 0xfc, 0xb4, 0x00, 0x00, 0x00, 0x10, // IID4315 - 0xd5, 0x11, 0xf7, 0x84, 0x24, 0xd5, 0x3a, 0xb2, 0xe6, 0x00, 0x00, 0x00, 0x10, // IID4316 - 0xd5, 0x11, 0xf7, 0x85, 0x7e, 0x6f, 0x23, 0xa3, 0x00, 0x00, 0x00, 0x10, // IID4317 - 0xd5, 0x33, 0xf7, 0x84, 0xfe, 0x03, 0x12, 0x91, 0x67, 0x00, 0x00, 0x00, 0x10, // IID4318 - 0xd5, 0x11, 0xf7, 0x87, 0x13, 0x4e, 0xa6, 0x57, 0x00, 0x00, 0x00, 0x10, // IID4319 - 0xf7, 0x81, 0x4c, 0xa7, 0x2a, 0x09, 0x00, 0x00, 0x00, 0x40, // IID4320 - 0xf7, 0x84, 0xda, 0x80, 0x26, 0xff, 0x76, 0x00, 0x00, 0x00, 0x40, // IID4321 - 0x42, 0xf7, 0x84, 0x43, 0xb0, 0x12, 0x15, 0xb8, 0x00, 0x00, 0x00, 0x40, // IID4322 - 0x43, 0xf7, 0x84, 0x08, 0xb9, 0xa6, 0xcb, 0x1c, 0x00, 0x00, 0x00, 0x40, // IID4323 - 0x43, 0xf7, 0x84, 0x11, 0xc3, 0xc9, 0x6a, 0x49, 0x00, 0x00, 0x00, 0x40, // IID4324 - 0x43, 0xf7, 0x84, 0x9a, 0x3c, 0x4b, 0x7c, 0x7e, 0x00, 0x00, 0x00, 0x40, // IID4325 - 0x41, 0xf7, 0x83, 0x6e, 0x4d, 0x38, 0x68, 0x00, 0x00, 0x00, 0x40, // IID4326 - 0x43, 0xf7, 0x84, 0xac, 0x4a, 0x7b, 0x0f, 0x93, 0x00, 0x00, 0x00, 0x40, // IID4327 - 0x43, 0xf7, 0x84, 0xb5, 0x66, 0x14, 0xc0, 0x39, 0x00, 0x00, 0x00, 0x40, // IID4328 - 0x43, 0xf7, 0x84, 0xfe, 0xa6, 0x30, 0x7c, 0x8d, 0x00, 0x00, 0x00, 0x40, // IID4329 - 0xd5, 0x21, 0xf7, 0x84, 0x07, 0x8e, 0xbb, 0xd2, 0x05, 0x00, 0x00, 0x00, 0x40, // IID4330 - 0xd5, 0x30, 0xf7, 0x84, 0x48, 0x52, 0x9e, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x40, // IID4331 - 0xd5, 0x30, 0xf7, 0x84, 0xd1, 0x66, 0x0a, 0x0d, 0x2c, 0x00, 0x00, 0x00, 0x40, // IID4332 - 0xd5, 0x10, 0xf7, 0x82, 0xe9, 0x1b, 0xc7, 0x27, 0x00, 0x00, 0x00, 0x40, // IID4333 - 0xd5, 0x30, 0xf7, 0x84, 0xa3, 0xca, 0xe1, 0xb9, 0xef, 0x00, 0x00, 0x00, 0x40, // IID4334 - 0xd5, 0x30, 0xf7, 0x84, 0xec, 0x13, 0x24, 0x9b, 0x75, 0x00, 0x00, 0x00, 0x40, // IID4335 - 0xd5, 0x30, 0xf7, 0x84, 0xf5, 0xbe, 0xae, 0xb8, 0x68, 0x00, 0x00, 0x00, 0x40, // IID4336 - 0xd5, 0x30, 0xf7, 0x84, 0x7e, 0xca, 0x63, 0xd4, 0x7d, 0x00, 0x00, 0x00, 0x40, // IID4337 - 0xd5, 0x32, 0xf7, 0x84, 0x47, 0xda, 0x1a, 0xd9, 0x3f, 0x00, 0x00, 0x00, 0x40, // IID4338 - 0xd5, 0x33, 0xf7, 0x84, 0x88, 0x25, 0x41, 0x94, 0x84, 0x00, 0x00, 0x00, 0x40, // IID4339 - 0xd5, 0x33, 0xf7, 0x84, 0x51, 0x4a, 0x84, 0x4f, 0x1d, 0x00, 0x00, 0x00, 0x40, // IID4340 - 0xd5, 0x33, 0xf7, 0x84, 0x5a, 0xe6, 0x70, 0x75, 0xdf, 0x00, 0x00, 0x00, 0x40, // IID4341 - 0xd5, 0x33, 0xf7, 0x84, 0x63, 0x3c, 0x67, 0x6b, 0x36, 0x00, 0x00, 0x00, 0x40, // IID4342 - 0xd5, 0x11, 0xf7, 0x84, 0x24, 0x33, 0xdb, 0x12, 0x43, 0x00, 0x00, 0x00, 0x40, // IID4343 - 0xd5, 0x33, 0xf7, 0x84, 0xb5, 0x27, 0xfa, 0xf9, 0xc5, 0x00, 0x00, 0x00, 0x40, // IID4344 - 0xd5, 0x11, 0xf7, 0x86, 0x20, 0xc2, 0x23, 0x2c, 0x00, 0x00, 0x00, 0x40, // IID4345 - 0xd5, 0x11, 0xf7, 0x87, 0xfd, 0x88, 0xa1, 0xc7, 0x00, 0x00, 0x00, 0x40, // IID4346 -#endif // _LP64 - 0x81, 0xb9, 0x9f, 0x1d, 0x69, 0xdc, 0x00, 0x00, 0x01, 0x00, // IID4347 - 0x81, 0xbc, 0x5a, 0x48, 0x80, 0xb2, 0xd5, 0x00, 0x00, 0x01, 0x00, // IID4348 -#ifdef _LP64 - 0x81, 0xbb, 0x06, 0x51, 0x6f, 0xc7, 0x00, 0x00, 0x01, 0x00, // IID4349 - 0x41, 0x81, 0xb8, 0x60, 0x40, 0x50, 0xa3, 0x00, 0x00, 0x01, 0x00, // IID4350 - 0x43, 0x81, 0xbc, 0x11, 0xe7, 0x08, 0xd1, 0x6c, 0x00, 0x00, 0x01, 0x00, // IID4351 - 0x43, 0x81, 0xbc, 0x9a, 0xf3, 0x0c, 0xc0, 0x7a, 0x00, 0x00, 0x01, 0x00, // IID4352 - 0x43, 0x81, 0xbc, 0xe3, 0xde, 0xe4, 0x70, 0x0f, 0x00, 0x00, 0x01, 0x00, // IID4353 - 0x41, 0x81, 0xbc, 0x24, 0x60, 0x01, 0x57, 0x75, 0x00, 0x00, 0x01, 0x00, // IID4354 - 0x41, 0x81, 0xbd, 0xc8, 0x16, 0x83, 0x69, 0x00, 0x00, 0x01, 0x00, // IID4355 - 0x41, 0x81, 0xbe, 0x54, 0x8e, 0x66, 0x62, 0x00, 0x00, 0x01, 0x00, // IID4356 - 0xd5, 0x21, 0x81, 0xbc, 0x47, 0xfc, 0x3e, 0xdd, 0x1f, 0x00, 0x00, 0x01, 0x00, // IID4357 - 0xd5, 0x10, 0x81, 0xb8, 0x23, 0xc9, 0x76, 0xe8, 0x00, 0x00, 0x01, 0x00, // IID4358 - 0xd5, 0x30, 0x81, 0xbc, 0xd1, 0x5b, 0x87, 0xa3, 0x35, 0x00, 0x00, 0x01, 0x00, // IID4359 - 0xd5, 0x30, 0x81, 0xbc, 0x1a, 0x63, 0xb6, 0xae, 0x16, 0x00, 0x00, 0x01, 0x00, // IID4360 - 0xd5, 0x30, 0x81, 0xbc, 0x23, 0x5f, 0xc5, 0x74, 0x39, 0x00, 0x00, 0x01, 0x00, // IID4361 - 0xd5, 0x30, 0x81, 0xbc, 0xec, 0x70, 0xa3, 0x4b, 0xb5, 0x00, 0x00, 0x01, 0x00, // IID4362 - 0xd5, 0x30, 0x81, 0xbc, 0xb5, 0xd0, 0x59, 0x36, 0xfe, 0x00, 0x00, 0x01, 0x00, // IID4363 - 0xd5, 0x10, 0x81, 0xbe, 0xe5, 0xba, 0xa8, 0x04, 0x00, 0x00, 0x01, 0x00, // IID4364 - 0xd5, 0x32, 0x81, 0xbc, 0xc7, 0x7f, 0xe0, 0xe2, 0xd9, 0x00, 0x00, 0x01, 0x00, // IID4365 - 0xd5, 0x11, 0x81, 0xb8, 0x3b, 0x73, 0xe7, 0x5f, 0x00, 0x00, 0x01, 0x00, // IID4366 - 0xd5, 0x33, 0x81, 0xbc, 0x11, 0xfd, 0x3e, 0xf1, 0x2c, 0x00, 0x00, 0x01, 0x00, // IID4367 - 0xd5, 0x11, 0x81, 0xba, 0x90, 0xe4, 0xd0, 0x15, 0x00, 0x00, 0x01, 0x00, // IID4368 - 0xd5, 0x11, 0x81, 0xbb, 0x49, 0xe9, 0x2e, 0x29, 0x00, 0x00, 0x01, 0x00, // IID4369 - 0xd5, 0x33, 0x81, 0xbc, 0xac, 0xdd, 0xc3, 0x37, 0x5e, 0x00, 0x00, 0x01, 0x00, // IID4370 - 0xd5, 0x33, 0x81, 0xbc, 0xf5, 0x30, 0xb8, 0x23, 0x2e, 0x00, 0x00, 0x01, 0x00, // IID4371 - 0xd5, 0x33, 0x81, 0xbc, 0x3e, 0xa8, 0xef, 0x82, 0x7b, 0x00, 0x00, 0x01, 0x00, // IID4372 - 0xd5, 0x11, 0x81, 0xbc, 0x8f, 0x22, 0x6a, 0xb3, 0x4a, 0x00, 0x00, 0x01, 0x00, // IID4373 - 0x81, 0xbc, 0x51, 0x0e, 0x4e, 0xb6, 0x65, 0x00, 0x00, 0x04, 0x00, // IID4374 - 0x81, 0xba, 0x47, 0x11, 0xad, 0xce, 0x00, 0x00, 0x04, 0x00, // IID4375 - 0x42, 0x81, 0xbc, 0x03, 0xbe, 0x88, 0x89, 0x35, 0x00, 0x00, 0x04, 0x00, // IID4376 - 0x43, 0x81, 0xbc, 0x08, 0x60, 0x01, 0xb6, 0xab, 0x00, 0x00, 0x04, 0x00, // IID4377 - 0x43, 0x81, 0xbc, 0x91, 0x10, 0xb9, 0xe9, 0x7a, 0x00, 0x00, 0x04, 0x00, // IID4378 - 0x43, 0x81, 0xbc, 0xda, 0x93, 0xfa, 0x35, 0x98, 0x00, 0x00, 0x04, 0x00, // IID4379 - 0x43, 0x81, 0xbc, 0xa3, 0x21, 0x76, 0x2b, 0xa5, 0x00, 0x00, 0x04, 0x00, // IID4380 - 0x41, 0x81, 0xbc, 0x24, 0xf4, 0xf6, 0xc6, 0xc2, 0x00, 0x00, 0x04, 0x00, // IID4381 - 0x41, 0x81, 0xbd, 0xa9, 0xe6, 0x12, 0x97, 0x00, 0x00, 0x04, 0x00, // IID4382 - 0x43, 0x81, 0xbc, 0xbe, 0x4e, 0x29, 0x05, 0xc4, 0x00, 0x00, 0x04, 0x00, // IID4383 - 0xd5, 0x21, 0x81, 0xbc, 0xc7, 0x41, 0x15, 0xa0, 0xd4, 0x00, 0x00, 0x04, 0x00, // IID4384 - 0xd5, 0x30, 0x81, 0xbc, 0xc8, 0x78, 0x40, 0x72, 0x4c, 0x00, 0x00, 0x04, 0x00, // IID4385 - 0xd5, 0x30, 0x81, 0xbc, 0x51, 0x4f, 0x6e, 0x37, 0xd7, 0x00, 0x00, 0x04, 0x00, // IID4386 - 0xd5, 0x10, 0x81, 0xba, 0x21, 0x9f, 0xb5, 0xe7, 0x00, 0x00, 0x04, 0x00, // IID4387 - 0xd5, 0x30, 0x81, 0xbc, 0xa3, 0x62, 0x33, 0xef, 0xa4, 0x00, 0x00, 0x04, 0x00, // IID4388 - 0xd5, 0x10, 0x81, 0xbc, 0x24, 0x66, 0x1a, 0xc5, 0xef, 0x00, 0x00, 0x04, 0x00, // IID4389 - 0xd5, 0x30, 0x81, 0xbc, 0xb5, 0x57, 0xc7, 0x45, 0x7e, 0x00, 0x00, 0x04, 0x00, // IID4390 - 0xd5, 0x10, 0x81, 0xbe, 0x1a, 0x0e, 0x87, 0x9f, 0x00, 0x00, 0x04, 0x00, // IID4391 - 0xd5, 0x32, 0x81, 0xbc, 0xc7, 0x93, 0xdb, 0x78, 0x61, 0x00, 0x00, 0x04, 0x00, // IID4392 - 0xd5, 0x33, 0x81, 0xbc, 0xc8, 0x75, 0xe2, 0xa4, 0x29, 0x00, 0x00, 0x04, 0x00, // IID4393 - 0xd5, 0x33, 0x81, 0xbc, 0x91, 0x0e, 0xf0, 0x90, 0x94, 0x00, 0x00, 0x04, 0x00, // IID4394 - 0xd5, 0x33, 0x81, 0xbc, 0x1a, 0x69, 0xe3, 0xef, 0x4f, 0x00, 0x00, 0x04, 0x00, // IID4395 - 0xd5, 0x11, 0x81, 0xbb, 0xd7, 0xa9, 0x38, 0xf7, 0x00, 0x00, 0x04, 0x00, // IID4396 - 0xd5, 0x11, 0x81, 0xbc, 0x24, 0xbf, 0xe7, 0xd3, 0x28, 0x00, 0x00, 0x04, 0x00, // IID4397 - 0xd5, 0x33, 0x81, 0xbc, 0xb5, 0xeb, 0x78, 0x29, 0x07, 0x00, 0x00, 0x04, 0x00, // IID4398 - 0xd5, 0x33, 0x81, 0xbc, 0xfe, 0x46, 0x03, 0x11, 0xd7, 0x00, 0x00, 0x04, 0x00, // IID4399 - 0xd5, 0x11, 0x81, 0xbc, 0x8f, 0x81, 0x66, 0xad, 0x38, 0x00, 0x00, 0x04, 0x00, // IID4400 - 0x81, 0xb9, 0x86, 0x3d, 0xb9, 0x24, 0x00, 0x00, 0x10, 0x00, // IID4401 - 0x81, 0xba, 0x0b, 0xda, 0xaf, 0x39, 0x00, 0x00, 0x10, 0x00, // IID4402 - 0x42, 0x81, 0xbc, 0x83, 0xbf, 0x3f, 0x13, 0xe8, 0x00, 0x00, 0x10, 0x00, // IID4403 - 0x43, 0x81, 0xbc, 0x88, 0xe6, 0x2f, 0x0f, 0xa2, 0x00, 0x00, 0x10, 0x00, // IID4404 - 0x43, 0x81, 0xbc, 0x91, 0x2d, 0xb7, 0x1c, 0xa0, 0x00, 0x00, 0x10, 0x00, // IID4405 - 0x43, 0x81, 0xbc, 0x5a, 0x89, 0x8e, 0x59, 0x58, 0x00, 0x00, 0x10, 0x00, // IID4406 - 0x43, 0x81, 0xbc, 0x23, 0xfc, 0xc1, 0x06, 0x4e, 0x00, 0x00, 0x10, 0x00, // IID4407 - 0x43, 0x81, 0xbc, 0xac, 0x53, 0x16, 0xca, 0xb7, 0x00, 0x00, 0x10, 0x00, // IID4408 - 0x41, 0x81, 0xbd, 0xc1, 0x20, 0x4e, 0x52, 0x00, 0x00, 0x10, 0x00, // IID4409 - 0x43, 0x81, 0xbc, 0xbe, 0x24, 0x12, 0xc8, 0x00, 0x00, 0x00, 0x10, 0x00, // IID4410 - 0xd5, 0x21, 0x81, 0xbc, 0x87, 0xd4, 0xd3, 0x2f, 0x28, 0x00, 0x00, 0x10, 0x00, // IID4411 - 0xd5, 0x30, 0x81, 0xbc, 0x48, 0xef, 0x4a, 0x59, 0x64, 0x00, 0x00, 0x10, 0x00, // IID4412 - 0xd5, 0x30, 0x81, 0xbc, 0x91, 0x35, 0x82, 0xbf, 0x03, 0x00, 0x00, 0x10, 0x00, // IID4413 - 0xd5, 0x10, 0x81, 0xba, 0x77, 0x01, 0x23, 0x86, 0x00, 0x00, 0x10, 0x00, // IID4414 - 0xd5, 0x30, 0x81, 0xbc, 0xa3, 0x96, 0x5b, 0xb1, 0x0b, 0x00, 0x00, 0x10, 0x00, // IID4415 - 0xd5, 0x30, 0x81, 0xbc, 0xac, 0x79, 0x53, 0x45, 0xe2, 0x00, 0x00, 0x10, 0x00, // IID4416 - 0xd5, 0x30, 0x81, 0xbc, 0xf5, 0x2b, 0x1d, 0xa0, 0xf8, 0x00, 0x00, 0x10, 0x00, // IID4417 - 0xd5, 0x30, 0x81, 0xbc, 0xbe, 0xd5, 0xc0, 0x1b, 0xc3, 0x00, 0x00, 0x10, 0x00, // IID4418 - 0xd5, 0x32, 0x81, 0xbc, 0x07, 0x3b, 0x9c, 0x2d, 0x3f, 0x00, 0x00, 0x10, 0x00, // IID4419 - 0xd5, 0x33, 0x81, 0xbc, 0x08, 0xff, 0xbe, 0xc9, 0x7b, 0x00, 0x00, 0x10, 0x00, // IID4420 - 0xd5, 0x33, 0x81, 0xbc, 0x11, 0x0a, 0x5c, 0x1e, 0xab, 0x00, 0x00, 0x10, 0x00, // IID4421 - 0xd5, 0x11, 0x81, 0xba, 0x57, 0x87, 0xa0, 0x50, 0x00, 0x00, 0x10, 0x00, // IID4422 - 0xd5, 0x33, 0x81, 0xbc, 0xa3, 0x24, 0x8c, 0x91, 0x85, 0x00, 0x00, 0x10, 0x00, // IID4423 - 0xd5, 0x33, 0x81, 0xbc, 0xac, 0xa8, 0x22, 0x61, 0xc5, 0x00, 0x00, 0x10, 0x00, // IID4424 - 0xd5, 0x33, 0x81, 0xbc, 0x75, 0x3a, 0x36, 0xf8, 0x22, 0x00, 0x00, 0x10, 0x00, // IID4425 - 0xd5, 0x33, 0x81, 0xbc, 0xfe, 0x71, 0x88, 0x84, 0x1e, 0x00, 0x00, 0x10, 0x00, // IID4426 - 0xd5, 0x11, 0x81, 0xbc, 0x4f, 0xcf, 0xd9, 0x66, 0x59, 0x00, 0x00, 0x10, 0x00, // IID4427 - 0x81, 0xbc, 0xd1, 0x49, 0xd2, 0x1f, 0x3a, 0x00, 0x00, 0x40, 0x00, // IID4428 - 0x81, 0xbc, 0x1a, 0xc5, 0x32, 0xfc, 0xae, 0x00, 0x00, 0x40, 0x00, // IID4429 - 0x81, 0xbb, 0xed, 0xa4, 0x2f, 0x0e, 0x00, 0x00, 0x40, 0x00, // IID4430 - 0x43, 0x81, 0xbc, 0x48, 0xa1, 0x52, 0x21, 0x37, 0x00, 0x00, 0x40, 0x00, // IID4431 - 0x43, 0x81, 0xbc, 0x51, 0xcc, 0x74, 0xe7, 0xe6, 0x00, 0x00, 0x40, 0x00, // IID4432 - 0x43, 0x81, 0xbc, 0xda, 0xad, 0x2b, 0x1a, 0xc0, 0x00, 0x00, 0x40, 0x00, // IID4433 - 0x43, 0x81, 0xbc, 0xe3, 0x11, 0x8b, 0x42, 0x76, 0x00, 0x00, 0x40, 0x00, // IID4434 - 0x43, 0x81, 0xbc, 0x2c, 0x7f, 0xf6, 0x0a, 0x56, 0x00, 0x00, 0x40, 0x00, // IID4435 - 0x43, 0x81, 0xbc, 0x75, 0x24, 0x0e, 0x4c, 0x9a, 0x00, 0x00, 0x40, 0x00, // IID4436 - 0x43, 0x81, 0xbc, 0xfe, 0x10, 0xe4, 0x80, 0xbd, 0x00, 0x00, 0x40, 0x00, // IID4437 - 0xd5, 0x21, 0x81, 0xbc, 0x87, 0x8d, 0xb8, 0xc1, 0xc3, 0x00, 0x00, 0x40, 0x00, // IID4438 - 0xd5, 0x30, 0x81, 0xbc, 0x48, 0x41, 0x34, 0xa4, 0x20, 0x00, 0x00, 0x40, 0x00, // IID4439 - 0xd5, 0x30, 0x81, 0xbc, 0x51, 0x25, 0x46, 0x34, 0x54, 0x00, 0x00, 0x40, 0x00, // IID4440 - 0xd5, 0x30, 0x81, 0xbc, 0x5a, 0xb2, 0x43, 0x63, 0xed, 0x00, 0x00, 0x40, 0x00, // IID4441 - 0xd5, 0x10, 0x81, 0xbb, 0xae, 0xa5, 0xc8, 0x2b, 0x00, 0x00, 0x40, 0x00, // IID4442 - 0xd5, 0x30, 0x81, 0xbc, 0xec, 0xf9, 0x99, 0x80, 0xb5, 0x00, 0x00, 0x40, 0x00, // IID4443 - 0xd5, 0x30, 0x81, 0xbc, 0x75, 0x20, 0xb6, 0xf4, 0x40, 0x00, 0x00, 0x40, 0x00, // IID4444 - 0xd5, 0x30, 0x81, 0xbc, 0xbe, 0x8f, 0x5b, 0xda, 0xb2, 0x00, 0x00, 0x40, 0x00, // IID4445 - 0xd5, 0x32, 0x81, 0xbc, 0x87, 0x17, 0x1c, 0x21, 0x57, 0x00, 0x00, 0x40, 0x00, // IID4446 - 0xd5, 0x33, 0x81, 0xbc, 0x88, 0x98, 0x3f, 0xdd, 0xe4, 0x00, 0x00, 0x40, 0x00, // IID4447 - 0xd5, 0x33, 0x81, 0xbc, 0x11, 0x04, 0x07, 0x82, 0x8c, 0x00, 0x00, 0x40, 0x00, // IID4448 - 0xd5, 0x11, 0x81, 0xba, 0xcf, 0x1a, 0x24, 0x60, 0x00, 0x00, 0x40, 0x00, // IID4449 - 0xd5, 0x33, 0x81, 0xbc, 0xe3, 0x1d, 0xab, 0x73, 0x39, 0x00, 0x00, 0x40, 0x00, // IID4450 - 0xd5, 0x33, 0x81, 0xbc, 0xec, 0xa2, 0xe7, 0x6c, 0xfd, 0x00, 0x00, 0x40, 0x00, // IID4451 - 0xd5, 0x33, 0x81, 0xbc, 0xf5, 0x6f, 0x62, 0xf0, 0x06, 0x00, 0x00, 0x40, 0x00, // IID4452 - 0xd5, 0x33, 0x81, 0xbc, 0xfe, 0x5b, 0xbd, 0x89, 0xc9, 0x00, 0x00, 0x40, 0x00, // IID4453 - 0xd5, 0x11, 0x81, 0xbc, 0x4f, 0xcf, 0x95, 0x61, 0x3c, 0x00, 0x00, 0x40, 0x00, // IID4454 - 0x81, 0xbc, 0x91, 0xa4, 0x72, 0xd0, 0x39, 0x00, 0x00, 0x00, 0x01, // IID4455 - 0x81, 0xba, 0xb0, 0x19, 0x4d, 0x09, 0x00, 0x00, 0x00, 0x01, // IID4456 - 0x42, 0x81, 0xbc, 0xc3, 0x9b, 0x9c, 0x3a, 0x26, 0x00, 0x00, 0x00, 0x01, // IID4457 - 0x43, 0x81, 0xbc, 0x88, 0x34, 0xbe, 0x01, 0x77, 0x00, 0x00, 0x00, 0x01, // IID4458 - 0x43, 0x81, 0xbc, 0xd1, 0x87, 0xf1, 0xfa, 0xa4, 0x00, 0x00, 0x00, 0x01, // IID4459 - 0x43, 0x81, 0xbc, 0x5a, 0x54, 0x9a, 0x47, 0x93, 0x00, 0x00, 0x00, 0x01, // IID4460 - 0x43, 0x81, 0xbc, 0x63, 0x75, 0x75, 0xfc, 0xfa, 0x00, 0x00, 0x00, 0x01, // IID4461 - 0x43, 0x81, 0xbc, 0x6c, 0x07, 0xf4, 0x9b, 0x8a, 0x00, 0x00, 0x00, 0x01, // IID4462 - 0x43, 0x81, 0xbc, 0x35, 0xbb, 0xce, 0xf1, 0x3e, 0x00, 0x00, 0x00, 0x01, // IID4463 - 0x43, 0x81, 0xbc, 0x7e, 0x49, 0x17, 0x6e, 0x0d, 0x00, 0x00, 0x00, 0x01, // IID4464 - 0xd5, 0x21, 0x81, 0xbc, 0x87, 0x3e, 0xca, 0x61, 0x06, 0x00, 0x00, 0x00, 0x01, // IID4465 - 0xd5, 0x30, 0x81, 0xbc, 0xc8, 0x44, 0xd2, 0x79, 0x69, 0x00, 0x00, 0x00, 0x01, // IID4466 - 0xd5, 0x10, 0x81, 0xb9, 0xd6, 0xc5, 0x9f, 0x24, 0x00, 0x00, 0x00, 0x01, // IID4467 - 0xd5, 0x30, 0x81, 0xbc, 0x9a, 0x2c, 0x01, 0xa8, 0xf8, 0x00, 0x00, 0x00, 0x01, // IID4468 - 0xd5, 0x10, 0x81, 0xbb, 0x37, 0x4e, 0x27, 0x79, 0x00, 0x00, 0x00, 0x01, // IID4469 - 0xd5, 0x30, 0x81, 0xbc, 0x6c, 0x93, 0xea, 0xd7, 0xfb, 0x00, 0x00, 0x00, 0x01, // IID4470 - 0xd5, 0x10, 0x81, 0xbd, 0x4f, 0x9f, 0x03, 0x94, 0x00, 0x00, 0x00, 0x01, // IID4471 - 0xd5, 0x30, 0x81, 0xbc, 0xfe, 0x96, 0x32, 0x68, 0xe3, 0x00, 0x00, 0x00, 0x01, // IID4472 - 0xd5, 0x10, 0x81, 0xbf, 0x0e, 0xde, 0x20, 0x64, 0x00, 0x00, 0x00, 0x01, // IID4473 - 0xd5, 0x33, 0x81, 0xbc, 0x48, 0x00, 0xab, 0x7a, 0x14, 0x00, 0x00, 0x00, 0x01, // IID4474 - 0xd5, 0x33, 0x81, 0xbc, 0x51, 0x13, 0x58, 0xd6, 0x80, 0x00, 0x00, 0x00, 0x01, // IID4475 - 0xd5, 0x33, 0x81, 0xbc, 0x5a, 0x97, 0xee, 0x9d, 0x9a, 0x00, 0x00, 0x00, 0x01, // IID4476 - 0xd5, 0x33, 0x81, 0xbc, 0x23, 0xc1, 0xb6, 0x5b, 0xd1, 0x00, 0x00, 0x00, 0x01, // IID4477 - 0xd5, 0x11, 0x81, 0xbc, 0x24, 0x5a, 0xd4, 0x29, 0xf9, 0x00, 0x00, 0x00, 0x01, // IID4478 - 0xd5, 0x33, 0x81, 0xbc, 0x35, 0xe7, 0x5d, 0xb9, 0x6e, 0x00, 0x00, 0x00, 0x01, // IID4479 - 0xd5, 0x33, 0x81, 0xbc, 0xbe, 0x5a, 0x32, 0xd4, 0x58, 0x00, 0x00, 0x00, 0x01, // IID4480 - 0xd5, 0x11, 0x81, 0xbf, 0x66, 0x12, 0xff, 0xda, 0x00, 0x00, 0x00, 0x01, // IID4481 - 0x81, 0xbc, 0xd1, 0x37, 0xe4, 0x40, 0xdb, 0x00, 0x00, 0x00, 0x04, // IID4482 - 0x81, 0xbc, 0x9a, 0xc9, 0x0b, 0x4a, 0xdd, 0x00, 0x00, 0x00, 0x04, // IID4483 - 0x42, 0x81, 0xbc, 0xc3, 0x3d, 0x22, 0x8c, 0x9d, 0x00, 0x00, 0x00, 0x04, // IID4484 - 0x43, 0x81, 0xbc, 0x08, 0x9e, 0xa2, 0x83, 0x05, 0x00, 0x00, 0x00, 0x04, // IID4485 - 0x41, 0x81, 0xb9, 0xf2, 0x4d, 0x93, 0x10, 0x00, 0x00, 0x00, 0x04, // IID4486 - 0x43, 0x81, 0xbc, 0x9a, 0x58, 0x95, 0x9d, 0x4a, 0x00, 0x00, 0x00, 0x04, // IID4487 - 0x43, 0x81, 0xbc, 0x63, 0xb8, 0xa7, 0x53, 0xf4, 0x00, 0x00, 0x00, 0x04, // IID4488 - 0x43, 0x81, 0xbc, 0x2c, 0x66, 0xb3, 0x67, 0x71, 0x00, 0x00, 0x00, 0x04, // IID4489 - 0x43, 0x81, 0xbc, 0x35, 0x50, 0x1c, 0x27, 0xcf, 0x00, 0x00, 0x00, 0x04, // IID4490 - 0x43, 0x81, 0xbc, 0xbe, 0x9c, 0xa4, 0x4e, 0x82, 0x00, 0x00, 0x00, 0x04, // IID4491 - 0x41, 0x81, 0xbf, 0x1f, 0x7d, 0x5d, 0xc7, 0x00, 0x00, 0x00, 0x04, // IID4492 - 0xd5, 0x30, 0x81, 0xbc, 0x48, 0x7e, 0x00, 0x38, 0xdd, 0x00, 0x00, 0x00, 0x04, // IID4493 - 0xd5, 0x30, 0x81, 0xbc, 0x51, 0x6c, 0xa9, 0x07, 0xe2, 0x00, 0x00, 0x00, 0x04, // IID4494 - 0xd5, 0x30, 0x81, 0xbc, 0x9a, 0x9d, 0x4c, 0xdc, 0x75, 0x00, 0x00, 0x00, 0x04, // IID4495 - 0xd5, 0x30, 0x81, 0xbc, 0xe3, 0x4f, 0x70, 0x3f, 0x60, 0x00, 0x00, 0x00, 0x04, // IID4496 - 0xd5, 0x30, 0x81, 0xbc, 0xec, 0x84, 0x0d, 0x9f, 0xf8, 0x00, 0x00, 0x00, 0x04, // IID4497 - 0xd5, 0x10, 0x81, 0xbd, 0xe8, 0xf2, 0x05, 0x73, 0x00, 0x00, 0x00, 0x04, // IID4498 - 0xd5, 0x30, 0x81, 0xbc, 0x7e, 0x56, 0xda, 0x8d, 0x26, 0x00, 0x00, 0x00, 0x04, // IID4499 - 0xd5, 0x32, 0x81, 0xbc, 0x87, 0x0a, 0xd8, 0xaa, 0x7d, 0x00, 0x00, 0x00, 0x04, // IID4500 - 0xd5, 0x11, 0x81, 0xb8, 0xd9, 0x54, 0x45, 0x54, 0x00, 0x00, 0x00, 0x04, // IID4501 - 0xd5, 0x11, 0x81, 0xb9, 0x7f, 0x5d, 0x3c, 0x0d, 0x00, 0x00, 0x00, 0x04, // IID4502 - 0xd5, 0x33, 0x81, 0xbc, 0x9a, 0xc6, 0x77, 0xb0, 0xd6, 0x00, 0x00, 0x00, 0x04, // IID4503 - 0xd5, 0x11, 0x81, 0xbb, 0x2f, 0xe2, 0xe8, 0x00, 0x00, 0x00, 0x00, 0x04, // IID4504 - 0xd5, 0x33, 0x81, 0xbc, 0xac, 0xfe, 0x49, 0x0c, 0xc6, 0x00, 0x00, 0x00, 0x04, // IID4505 - 0xd5, 0x33, 0x81, 0xbc, 0xf5, 0xcf, 0x40, 0x5c, 0xfa, 0x00, 0x00, 0x00, 0x04, // IID4506 - 0xd5, 0x33, 0x81, 0xbc, 0xfe, 0x0d, 0xcb, 0xa7, 0xd7, 0x00, 0x00, 0x00, 0x04, // IID4507 - 0xd5, 0x11, 0x81, 0xbc, 0xcf, 0x9c, 0x09, 0xcf, 0xf8, 0x00, 0x00, 0x00, 0x04, // IID4508 - 0x81, 0xbc, 0x11, 0x10, 0xaf, 0xe7, 0xf0, 0x00, 0x00, 0x00, 0x10, // IID4509 - 0x81, 0xbc, 0x9a, 0x6e, 0x2f, 0x75, 0xc6, 0x00, 0x00, 0x00, 0x10, // IID4510 - 0x81, 0xbb, 0xc6, 0xa9, 0x5d, 0xb3, 0x00, 0x00, 0x00, 0x10, // IID4511 - 0x43, 0x81, 0xbc, 0x88, 0x5d, 0xb3, 0xd4, 0xeb, 0x00, 0x00, 0x00, 0x10, // IID4512 - 0x43, 0x81, 0xbc, 0x91, 0xb9, 0xdd, 0xdd, 0x5e, 0x00, 0x00, 0x00, 0x10, // IID4513 - 0x41, 0x81, 0xba, 0x15, 0xb5, 0xb7, 0x36, 0x00, 0x00, 0x00, 0x10, // IID4514 - 0x43, 0x81, 0xbc, 0xa3, 0xde, 0x3f, 0x81, 0x1d, 0x00, 0x00, 0x00, 0x10, // IID4515 - 0x41, 0x81, 0xbc, 0x24, 0x72, 0xf4, 0x46, 0xe8, 0x00, 0x00, 0x00, 0x10, // IID4516 - 0x43, 0x81, 0xbc, 0xb5, 0x2d, 0xeb, 0x9a, 0x5a, 0x00, 0x00, 0x00, 0x10, // IID4517 - 0x43, 0x81, 0xbc, 0xfe, 0x11, 0xa1, 0xef, 0x82, 0x00, 0x00, 0x00, 0x10, // IID4518 - 0x41, 0x81, 0xbf, 0x68, 0x44, 0x63, 0x4c, 0x00, 0x00, 0x00, 0x10, // IID4519 - 0xd5, 0x30, 0x81, 0xbc, 0x08, 0x3a, 0xfc, 0x2f, 0x8a, 0x00, 0x00, 0x00, 0x10, // IID4520 - 0xd5, 0x30, 0x81, 0xbc, 0x91, 0x86, 0x8c, 0x38, 0xc8, 0x00, 0x00, 0x00, 0x10, // IID4521 - 0xd5, 0x30, 0x81, 0xbc, 0x5a, 0x5a, 0xf6, 0x16, 0x4c, 0x00, 0x00, 0x00, 0x10, // IID4522 - 0xd5, 0x30, 0x81, 0xbc, 0xa3, 0x04, 0xb1, 0xc6, 0x80, 0x00, 0x00, 0x00, 0x10, // IID4523 - 0xd5, 0x30, 0x81, 0xbc, 0x2c, 0xa5, 0xd4, 0xd5, 0xfe, 0x00, 0x00, 0x00, 0x10, // IID4524 - 0xd5, 0x30, 0x81, 0xbc, 0xb5, 0x38, 0xda, 0x10, 0x19, 0x00, 0x00, 0x00, 0x10, // IID4525 - 0xd5, 0x30, 0x81, 0xbc, 0xfe, 0x7b, 0xeb, 0xe4, 0xb7, 0x00, 0x00, 0x00, 0x10, // IID4526 - 0xd5, 0x32, 0x81, 0xbc, 0x07, 0xf3, 0xa6, 0xc4, 0x3a, 0x00, 0x00, 0x00, 0x10, // IID4527 - 0xd5, 0x11, 0x81, 0xb8, 0x5e, 0xc0, 0x35, 0x9a, 0x00, 0x00, 0x00, 0x10, // IID4528 - 0xd5, 0x33, 0x81, 0xbc, 0xd1, 0x63, 0x98, 0x68, 0x20, 0x00, 0x00, 0x00, 0x10, // IID4529 - 0xd5, 0x33, 0x81, 0xbc, 0x5a, 0xcc, 0x09, 0xed, 0xc6, 0x00, 0x00, 0x00, 0x10, // IID4530 - 0xd5, 0x33, 0x81, 0xbc, 0x63, 0x55, 0x73, 0x89, 0x25, 0x00, 0x00, 0x00, 0x10, // IID4531 - 0xd5, 0x33, 0x81, 0xbc, 0x6c, 0xa9, 0x3b, 0x20, 0xd2, 0x00, 0x00, 0x00, 0x10, // IID4532 - 0xd5, 0x33, 0x81, 0xbc, 0xb5, 0x76, 0x7d, 0x61, 0xfe, 0x00, 0x00, 0x00, 0x10, // IID4533 - 0xd5, 0x33, 0x81, 0xbc, 0x7e, 0x15, 0x56, 0x57, 0x82, 0x00, 0x00, 0x00, 0x10, // IID4534 - 0xd5, 0x11, 0x81, 0xbc, 0x4f, 0x56, 0xc3, 0x1a, 0xa3, 0x00, 0x00, 0x00, 0x10, // IID4535 - 0x81, 0xbc, 0x51, 0x5b, 0x37, 0x81, 0xea, 0x00, 0x00, 0x00, 0x40, // IID4536 - 0x81, 0xbc, 0x9a, 0x79, 0x52, 0x10, 0xa8, 0x00, 0x00, 0x00, 0x40, // IID4537 - 0x42, 0x81, 0xbc, 0xc3, 0x2d, 0xc7, 0xcd, 0x2a, 0x00, 0x00, 0x00, 0x40, // IID4538 - 0x43, 0x81, 0xbc, 0x48, 0x0e, 0x59, 0xa3, 0x98, 0x00, 0x00, 0x00, 0x40, // IID4539 - 0x43, 0x81, 0xbc, 0xd1, 0xc6, 0xf2, 0xfd, 0xa1, 0x00, 0x00, 0x00, 0x40, // IID4540 - 0x43, 0x81, 0xbc, 0x5a, 0x9d, 0x14, 0x28, 0x80, 0x00, 0x00, 0x00, 0x40, // IID4541 - 0x43, 0x81, 0xbc, 0xe3, 0xf0, 0x1b, 0x5a, 0x24, 0x00, 0x00, 0x00, 0x40, // IID4542 - 0x43, 0x81, 0xbc, 0x6c, 0xb3, 0xe9, 0xfb, 0xa5, 0x00, 0x00, 0x00, 0x40, // IID4543 - 0x43, 0x81, 0xbc, 0x35, 0x0c, 0xe6, 0x90, 0xc7, 0x00, 0x00, 0x00, 0x40, // IID4544 - 0x43, 0x81, 0xbc, 0xbe, 0x41, 0x9e, 0x5a, 0xfc, 0x00, 0x00, 0x00, 0x40, // IID4545 - 0xd5, 0x21, 0x81, 0xbc, 0x07, 0xc4, 0x6c, 0xc6, 0xa7, 0x00, 0x00, 0x00, 0x40, // IID4546 - 0xd5, 0x30, 0x81, 0xbc, 0xc8, 0x88, 0x87, 0xfb, 0x0d, 0x00, 0x00, 0x00, 0x40, // IID4547 - 0xd5, 0x30, 0x81, 0xbc, 0xd1, 0x2e, 0x98, 0x39, 0xfb, 0x00, 0x00, 0x00, 0x40, // IID4548 - 0xd5, 0x30, 0x81, 0xbc, 0x9a, 0x06, 0x1f, 0x18, 0x21, 0x00, 0x00, 0x00, 0x40, // IID4549 - 0xd5, 0x10, 0x81, 0xbb, 0xd0, 0xe7, 0x10, 0xbf, 0x00, 0x00, 0x00, 0x40, // IID4550 - 0xd5, 0x30, 0x81, 0xbc, 0xec, 0x9a, 0x0c, 0xe8, 0x04, 0x00, 0x00, 0x00, 0x40, // IID4551 - 0xd5, 0x30, 0x81, 0xbc, 0xb5, 0x46, 0x99, 0x62, 0x11, 0x00, 0x00, 0x00, 0x40, // IID4552 - 0xd5, 0x30, 0x81, 0xbc, 0x7e, 0x90, 0xc4, 0xb0, 0x4a, 0x00, 0x00, 0x00, 0x40, // IID4553 - 0xd5, 0x32, 0x81, 0xbc, 0x07, 0x64, 0xdb, 0x45, 0x65, 0x00, 0x00, 0x00, 0x40, // IID4554 - 0xd5, 0x33, 0x81, 0xbc, 0xc8, 0xee, 0x9c, 0xcc, 0x02, 0x00, 0x00, 0x00, 0x40, // IID4555 - 0xd5, 0x33, 0x81, 0xbc, 0x11, 0x24, 0x55, 0x50, 0x8f, 0x00, 0x00, 0x00, 0x40, // IID4556 - 0xd5, 0x33, 0x81, 0xbc, 0xda, 0xb8, 0x97, 0x6c, 0xd8, 0x00, 0x00, 0x00, 0x40, // IID4557 - 0xd5, 0x33, 0x81, 0xbc, 0x63, 0xd9, 0x85, 0xaf, 0x24, 0x00, 0x00, 0x00, 0x40, // IID4558 - 0xd5, 0x33, 0x81, 0xbc, 0x2c, 0x61, 0xa9, 0xd3, 0xfb, 0x00, 0x00, 0x00, 0x40, // IID4559 - 0xd5, 0x33, 0x81, 0xbc, 0x75, 0xe1, 0x50, 0x56, 0x6e, 0x00, 0x00, 0x00, 0x40, // IID4560 - 0xd5, 0x11, 0x81, 0xbe, 0xfd, 0x0e, 0x34, 0xc3, 0x00, 0x00, 0x00, 0x40, // IID4561 - 0xd5, 0x11, 0x81, 0xbc, 0x8f, 0xd1, 0xa5, 0x86, 0x87, 0x00, 0x00, 0x00, 0x40, // IID4562 -#endif // _LP64 - 0x03, 0x8a, 0x5b, 0x57, 0x89, 0x71, // IID4563 -#ifdef _LP64 - 0x42, 0x03, 0x94, 0x43, 0x7f, 0x4a, 0x67, 0x93, // IID4564 - 0x43, 0x03, 0x9c, 0x08, 0xee, 0x90, 0x65, 0xc8, // IID4565 - 0x47, 0x03, 0x84, 0x11, 0x0a, 0xb0, 0x91, 0x88, // IID4566 - 0x45, 0x03, 0x8a, 0x9e, 0xb6, 0x63, 0xe9, // IID4567 - 0x47, 0x03, 0x94, 0x63, 0xfc, 0x16, 0x8a, 0x46, // IID4568 - 0x47, 0x03, 0x9c, 0xec, 0x8d, 0x89, 0x07, 0xd1, // IID4569 - 0x47, 0x03, 0xa4, 0x35, 0x9e, 0x47, 0x38, 0xf7, // IID4570 - 0x45, 0x03, 0xae, 0x07, 0x08, 0xf3, 0xcd, // IID4571 - 0xd5, 0x25, 0x03, 0xb4, 0x47, 0xfe, 0x79, 0xfb, 0x7f, // IID4572 - 0xd5, 0x34, 0x03, 0xbc, 0x08, 0x78, 0x2d, 0x34, 0xfa, // IID4573 - 0xd5, 0x70, 0x03, 0x84, 0x51, 0xa2, 0x44, 0x9b, 0xd2, // IID4574 - 0xd5, 0x70, 0x03, 0x8c, 0x5a, 0xe0, 0x11, 0xf1, 0xd4, // IID4575 - 0xd5, 0x50, 0x03, 0x93, 0x0e, 0x50, 0xf6, 0x20, // IID4576 - 0xd5, 0x70, 0x03, 0x9c, 0x6c, 0x6f, 0xad, 0xd4, 0xf0, // IID4577 - 0xd5, 0x70, 0x03, 0xa4, 0xb5, 0x2a, 0x19, 0xbf, 0xc6, // IID4578 - 0xd5, 0x70, 0x03, 0xac, 0xfe, 0xb3, 0x8a, 0x02, 0x1d, // IID4579 - 0xd5, 0x72, 0x03, 0xb4, 0x07, 0x56, 0xb2, 0x11, 0x50, // IID4580 - 0xd5, 0x73, 0x03, 0xbc, 0x88, 0x3a, 0xb7, 0x2a, 0xfd, // IID4581 - 0xd5, 0x77, 0x03, 0x84, 0x11, 0xf2, 0x03, 0x37, 0x3c, // IID4582 - 0xd5, 0x77, 0x03, 0x8c, 0x9a, 0xb5, 0x1f, 0x70, 0xbc, // IID4583 - 0xd5, 0x55, 0x03, 0x93, 0x78, 0x93, 0x6b, 0x1e, // IID4584 - 0xd5, 0x77, 0x03, 0x9c, 0xac, 0x0f, 0xc3, 0x97, 0xe5, // IID4585 - 0xd5, 0x77, 0x03, 0xa4, 0xb5, 0x3b, 0xad, 0xa6, 0x89, // IID4586 - 0xd5, 0x77, 0x03, 0xac, 0x3e, 0x25, 0x68, 0x39, 0xe9, // IID4587 - 0xd5, 0x55, 0x03, 0xb4, 0x8f, 0x8f, 0x9d, 0xdc, 0x43, // IID4588 - 0xd5, 0x44, 0x03, 0xbc, 0x91, 0xfd, 0x98, 0x90, 0x9a, // IID4589 -#endif // _LP64 - 0x23, 0x8a, 0xf0, 0x81, 0xdc, 0xad, // IID4590 -#ifdef _LP64 - 0x42, 0x23, 0x94, 0xc3, 0x1c, 0xd0, 0x8d, 0x42, // IID4591 - 0x43, 0x23, 0x9c, 0x08, 0x66, 0xbf, 0xa5, 0x3d, // IID4592 - 0x45, 0x23, 0x81, 0x26, 0x53, 0x6f, 0x1f, // IID4593 - 0x47, 0x23, 0x8c, 0x9a, 0xe2, 0xc5, 0xdb, 0xc9, // IID4594 - 0x47, 0x23, 0x94, 0xa3, 0xb5, 0xe2, 0xc6, 0xbd, // IID4595 - 0x45, 0x23, 0x9c, 0x24, 0x33, 0x73, 0xc7, 0xc1, // IID4596 - 0x47, 0x23, 0xa4, 0xf5, 0xb2, 0xe2, 0xa5, 0x2c, // IID4597 - 0x45, 0x23, 0xae, 0x5d, 0x4f, 0x90, 0xb3, // IID4598 - 0x45, 0x23, 0xb7, 0x36, 0xf1, 0xed, 0xca, // IID4599 - 0xd5, 0x34, 0x23, 0xbc, 0x08, 0x95, 0xc4, 0xef, 0xad, // IID4600 - 0xd5, 0x70, 0x23, 0x84, 0xd1, 0xb2, 0x19, 0x4b, 0xd7, // IID4601 - 0xd5, 0x50, 0x23, 0x8a, 0x7c, 0x21, 0x79, 0x45, // IID4602 - 0xd5, 0x70, 0x23, 0x94, 0xa3, 0xe1, 0xcf, 0xdf, 0x1e, // IID4603 - 0xd5, 0x70, 0x23, 0x9c, 0x6c, 0xfd, 0x06, 0xd4, 0x1b, // IID4604 - 0xd5, 0x70, 0x23, 0xa4, 0x75, 0xd0, 0x24, 0xc3, 0x90, // IID4605 - 0xd5, 0x70, 0x23, 0xac, 0xfe, 0xd9, 0xe9, 0x2e, 0x00, // IID4606 - 0xd5, 0x50, 0x23, 0xb7, 0x46, 0x60, 0xcd, 0x05, // IID4607 - 0xd5, 0x73, 0x23, 0xbc, 0xc8, 0x83, 0x5e, 0x13, 0x65, // IID4608 - 0xd5, 0x77, 0x23, 0x84, 0x11, 0x7a, 0x53, 0xfa, 0xd3, // IID4609 - 0xd5, 0x77, 0x23, 0x8c, 0x9a, 0x06, 0x8d, 0x0b, 0x83, // IID4610 - 0xd5, 0x77, 0x23, 0x94, 0xa3, 0x0f, 0x31, 0xda, 0x2a, // IID4611 - 0xd5, 0x77, 0x23, 0x9c, 0xec, 0xee, 0xab, 0x7b, 0xc9, // IID4612 - 0xd5, 0x77, 0x23, 0xa4, 0x35, 0x17, 0x28, 0xb7, 0x2c, // IID4613 - 0xd5, 0x77, 0x23, 0xac, 0x7e, 0x27, 0x35, 0x86, 0x66, // IID4614 - 0xd5, 0x55, 0x23, 0xb4, 0xcf, 0x7d, 0x2e, 0x36, 0x94, // IID4615 - 0xd5, 0x44, 0x23, 0xbc, 0x91, 0x9a, 0x09, 0x01, 0x5f, // IID4616 -#endif // _LP64 - 0x3a, 0x8c, 0xda, 0x7e, 0x35, 0xcf, 0x3c, // IID4617 -#ifdef _LP64 - 0x42, 0x3a, 0x94, 0x03, 0x3c, 0xf6, 0x32, 0x81, // IID4618 - 0x43, 0x3a, 0x9c, 0xc8, 0x7c, 0x8c, 0xf3, 0x80, // IID4619 - 0x45, 0x3a, 0x81, 0x93, 0xea, 0x1f, 0x4a, // IID4620 - 0x47, 0x3a, 0x8c, 0x9a, 0x6f, 0x40, 0xa5, 0x9d, // IID4621 - 0x47, 0x3a, 0x94, 0x23, 0xb9, 0xda, 0xcc, 0xc3, // IID4622 - 0x47, 0x3a, 0x9c, 0x2c, 0x7e, 0xc2, 0xfe, 0x09, // IID4623 - 0x47, 0x3a, 0xa4, 0xf5, 0xb5, 0x43, 0xe5, 0x42, // IID4624 - 0x45, 0x3a, 0xae, 0x22, 0xee, 0xf1, 0xe3, // IID4625 - 0xd5, 0x25, 0x3a, 0xb4, 0x87, 0x26, 0xe9, 0xd2, 0x6c, // IID4626 - 0xd5, 0x34, 0x3a, 0xbc, 0x48, 0x91, 0x34, 0xf8, 0x1a, // IID4627 - 0xd5, 0x70, 0x3a, 0x84, 0x11, 0x26, 0xa2, 0xad, 0x1c, // IID4628 - 0xd5, 0x70, 0x3a, 0x8c, 0x1a, 0x40, 0x35, 0x85, 0xd9, // IID4629 - 0xd5, 0x70, 0x3a, 0x94, 0x23, 0x35, 0x31, 0xca, 0x20, // IID4630 - 0xd5, 0x70, 0x3a, 0x9c, 0xec, 0xdc, 0x12, 0xa6, 0x92, // IID4631 - 0xd5, 0x50, 0x3a, 0xa5, 0x0c, 0x89, 0x9b, 0xf9, // IID4632 - 0xd5, 0x70, 0x3a, 0xac, 0x7e, 0x96, 0xea, 0x22, 0xe0, // IID4633 - 0xd5, 0x50, 0x3a, 0xb7, 0x61, 0x3f, 0x68, 0x69, // IID4634 - 0xd5, 0x73, 0x3a, 0xbc, 0x88, 0x94, 0x30, 0xb8, 0x28, // IID4635 - 0xd5, 0x77, 0x3a, 0x84, 0x51, 0xd5, 0xa4, 0x2f, 0xf1, // IID4636 - 0xd5, 0x77, 0x3a, 0x8c, 0x1a, 0xe4, 0x24, 0x64, 0x27, // IID4637 - 0xd5, 0x77, 0x3a, 0x94, 0xa3, 0x92, 0x18, 0x9b, 0x2a, // IID4638 - 0xd5, 0x77, 0x3a, 0x9c, 0xac, 0xc1, 0xb4, 0x55, 0x28, // IID4639 - 0xd5, 0x77, 0x3a, 0xa4, 0x35, 0x37, 0xdb, 0xad, 0x1e, // IID4640 - 0xd5, 0x77, 0x3a, 0xac, 0xbe, 0xe9, 0x2b, 0x0e, 0xb5, // IID4641 - 0xd5, 0x55, 0x3a, 0xb7, 0xfa, 0xc9, 0xe3, 0x2b, // IID4642 - 0xd5, 0x44, 0x3a, 0xbc, 0x11, 0x34, 0x1d, 0x5f, 0x93, // IID4643 -#endif // _LP64 - 0x3b, 0x8c, 0x1a, 0xa4, 0x9b, 0xef, 0x73, // IID4644 -#ifdef _LP64 - 0x42, 0x3b, 0x94, 0x03, 0xfc, 0x3f, 0xa1, 0xde, // IID4645 - 0x43, 0x3b, 0x9c, 0x88, 0x08, 0x1e, 0x9d, 0x41, // IID4646 - 0x47, 0x3b, 0x84, 0x51, 0x71, 0xb6, 0x77, 0xb0, // IID4647 - 0x47, 0x3b, 0x8c, 0x9a, 0x94, 0xbc, 0x26, 0xb2, // IID4648 - 0x47, 0x3b, 0x94, 0x23, 0x03, 0x55, 0x5e, 0xe3, // IID4649 - 0x45, 0x3b, 0x9c, 0x24, 0x5a, 0xb4, 0xa4, 0x2c, // IID4650 - 0x47, 0x3b, 0xa4, 0xb5, 0x4a, 0xa9, 0x56, 0x5d, // IID4651 - 0x47, 0x3b, 0xac, 0x3e, 0xd2, 0x90, 0x24, 0x27, // IID4652 - 0xd5, 0x25, 0x3b, 0xb4, 0x47, 0x0f, 0x39, 0xc1, 0x01, // IID4653 - 0xd5, 0x34, 0x3b, 0xbc, 0x08, 0x3b, 0x3b, 0x61, 0x22, // IID4654 - 0xd5, 0x50, 0x3b, 0x81, 0xbb, 0xa9, 0x2c, 0x7a, // IID4655 - 0xd5, 0x70, 0x3b, 0x8c, 0xda, 0x66, 0x75, 0xe8, 0x18, // IID4656 - 0xd5, 0x70, 0x3b, 0x94, 0xa3, 0x8f, 0x46, 0x49, 0xe8, // IID4657 - 0xd5, 0x50, 0x3b, 0x9c, 0x24, 0x24, 0x83, 0x05, 0xad, // IID4658 - 0xd5, 0x70, 0x3b, 0xa4, 0xf5, 0x19, 0x6f, 0x8d, 0xeb, // IID4659 - 0xd5, 0x70, 0x3b, 0xac, 0xbe, 0x3d, 0xc1, 0x14, 0x68, // IID4660 - 0xd5, 0x72, 0x3b, 0xb4, 0x47, 0xc6, 0xfd, 0x68, 0xaa, // IID4661 - 0xd5, 0x73, 0x3b, 0xbc, 0xc8, 0x0b, 0xba, 0x39, 0x4f, // IID4662 - 0xd5, 0x77, 0x3b, 0x84, 0x51, 0x3f, 0xbf, 0x64, 0x4b, // IID4663 - 0xd5, 0x77, 0x3b, 0x8c, 0x5a, 0x03, 0xcf, 0x08, 0xe3, // IID4664 - 0xd5, 0x55, 0x3b, 0x93, 0xba, 0xda, 0x17, 0x4c, // IID4665 - 0xd5, 0x55, 0x3b, 0x9c, 0x24, 0x6c, 0xde, 0xe9, 0xba, // IID4666 - 0xd5, 0x55, 0x3b, 0xa5, 0xf0, 0xbb, 0xdb, 0xe5, // IID4667 - 0xd5, 0x77, 0x3b, 0xac, 0x3e, 0x7a, 0xd5, 0x2e, 0x33, // IID4668 - 0xd5, 0x55, 0x3b, 0xb4, 0x8f, 0x29, 0x8d, 0x15, 0xa4, // IID4669 - 0xd5, 0x44, 0x3b, 0xbc, 0xd1, 0xe3, 0xfa, 0xf8, 0xc1, // IID4670 -#endif // _LP64 - 0xf3, 0x0f, 0xbd, 0x8c, 0x5a, 0x4d, 0xe3, 0xb2, 0x05, // IID4671 -#ifdef _LP64 - 0xf3, 0x0f, 0xbd, 0x93, 0xc0, 0x33, 0x6e, 0x40, // IID4672 - 0xf3, 0x43, 0x0f, 0xbd, 0x9c, 0x48, 0xcf, 0x4c, 0xf8, 0xba, // IID4673 - 0xf3, 0x47, 0x0f, 0xbd, 0x84, 0xd1, 0xb6, 0x08, 0xaf, 0x85, // IID4674 - 0xf3, 0x47, 0x0f, 0xbd, 0x8c, 0x1a, 0x91, 0xfd, 0xb0, 0xf8, // IID4675 - 0xf3, 0x47, 0x0f, 0xbd, 0x94, 0x23, 0x52, 0x74, 0xda, 0x46, // IID4676 - 0xf3, 0x45, 0x0f, 0xbd, 0x9c, 0x24, 0x6c, 0xd3, 0xf4, 0xe4, // IID4677 - 0xf3, 0x47, 0x0f, 0xbd, 0xa4, 0x75, 0x51, 0x75, 0x0c, 0x61, // IID4678 - 0xf3, 0x45, 0x0f, 0xbd, 0xae, 0x14, 0xfc, 0xc4, 0x6a, // IID4679 - 0xf3, 0xd5, 0xa5, 0xbd, 0xb4, 0x07, 0x09, 0x43, 0x0c, 0xc7, // IID4680 - 0xf3, 0xd5, 0xb4, 0xbd, 0xbc, 0x08, 0x86, 0xe1, 0x4c, 0x7c, // IID4681 - 0xf3, 0xd5, 0xf0, 0xbd, 0x84, 0x11, 0x53, 0x4d, 0x27, 0xba, // IID4682 - 0xf3, 0xd5, 0xf0, 0xbd, 0x8c, 0x1a, 0xce, 0x78, 0x68, 0xaf, // IID4683 - 0xf3, 0xd5, 0xf0, 0xbd, 0x94, 0x23, 0x25, 0x71, 0xfe, 0xc2, // IID4684 - 0xf3, 0xd5, 0xf0, 0xbd, 0x9c, 0xac, 0x87, 0x29, 0xfd, 0xd7, // IID4685 - 0xf3, 0xd5, 0xf0, 0xbd, 0xa4, 0x35, 0xe9, 0x3c, 0xa6, 0xfb, // IID4686 - 0xf3, 0xd5, 0xf0, 0xbd, 0xac, 0xfe, 0xb4, 0xa7, 0x37, 0x76, // IID4687 - 0xf3, 0xd5, 0xf2, 0xbd, 0xb4, 0x07, 0x71, 0x47, 0x0d, 0x7c, // IID4688 - 0xf3, 0xd5, 0xf3, 0xbd, 0xbc, 0xc8, 0x3c, 0x6b, 0x73, 0x11, // IID4689 - 0xf3, 0xd5, 0xf7, 0xbd, 0x84, 0x11, 0xe8, 0x78, 0xf6, 0xa2, // IID4690 - 0xf3, 0xd5, 0xf7, 0xbd, 0x8c, 0xda, 0x41, 0x7b, 0xcf, 0x5b, // IID4691 - 0xf3, 0xd5, 0xf7, 0xbd, 0x94, 0x23, 0x20, 0x7a, 0xc8, 0x81, // IID4692 - 0xf3, 0xd5, 0xd5, 0xbd, 0x9c, 0x24, 0xa5, 0xea, 0x59, 0x52, // IID4693 - 0xf3, 0xd5, 0xf7, 0xbd, 0xa4, 0xb5, 0x1b, 0x67, 0xfb, 0x2b, // IID4694 - 0xf3, 0xd5, 0xd5, 0xbd, 0xae, 0xbc, 0x23, 0x48, 0xad, // IID4695 - 0xf3, 0xd5, 0xd5, 0xbd, 0xb4, 0xcf, 0xdb, 0xc2, 0xc9, 0x24, // IID4696 - 0xf3, 0xd5, 0xc4, 0xbd, 0xbc, 0xd1, 0x1b, 0x73, 0xe1, 0x28, // IID4697 -#endif // _LP64 - 0x0b, 0x8c, 0x9a, 0xd2, 0xed, 0x30, 0xf8, // IID4698 -#ifdef _LP64 - 0x42, 0x0b, 0x94, 0x83, 0x86, 0xee, 0xe6, 0x5e, // IID4699 - 0x43, 0x0b, 0x9c, 0x88, 0x20, 0x78, 0x77, 0xb4, // IID4700 - 0x47, 0x0b, 0x84, 0x11, 0x61, 0xe0, 0x2b, 0x15, // IID4701 - 0x47, 0x0b, 0x8c, 0x1a, 0x42, 0x26, 0x2a, 0xf2, // IID4702 - 0x47, 0x0b, 0x94, 0x63, 0x70, 0x4c, 0x3f, 0x9e, // IID4703 - 0x47, 0x0b, 0x9c, 0x2c, 0x32, 0xcc, 0x5a, 0x3c, // IID4704 - 0x47, 0x0b, 0xa4, 0xf5, 0xfa, 0x0c, 0xb4, 0xf9, // IID4705 - 0x45, 0x0b, 0xae, 0x3a, 0x99, 0x9c, 0x96, // IID4706 - 0xd5, 0x25, 0x0b, 0xb4, 0x47, 0xe5, 0x28, 0x47, 0xba, // IID4707 - 0xd5, 0x14, 0x0b, 0xb8, 0xc1, 0x7f, 0x59, 0x87, // IID4708 - 0xd5, 0x70, 0x0b, 0x84, 0x11, 0x63, 0x1b, 0x81, 0xdb, // IID4709 - 0xd5, 0x70, 0x0b, 0x8c, 0x9a, 0xc0, 0x33, 0xce, 0xd7, // IID4710 - 0xd5, 0x70, 0x0b, 0x94, 0xe3, 0xe9, 0x74, 0x92, 0x7e, // IID4711 - 0xd5, 0x70, 0x0b, 0x9c, 0x2c, 0xad, 0x78, 0x3a, 0xf1, // IID4712 - 0xd5, 0x70, 0x0b, 0xa4, 0xb5, 0x13, 0x1a, 0xa6, 0x1c, // IID4713 - 0xd5, 0x70, 0x0b, 0xac, 0x7e, 0x53, 0x84, 0x74, 0xaa, // IID4714 - 0xd5, 0x72, 0x0b, 0xb4, 0x47, 0x94, 0xb0, 0x06, 0x5a, // IID4715 - 0xd5, 0x51, 0x0b, 0xb8, 0x78, 0xbd, 0x69, 0xe4, // IID4716 - 0xd5, 0x55, 0x0b, 0x81, 0x6f, 0x05, 0x7e, 0xc1, // IID4717 - 0xd5, 0x77, 0x0b, 0x8c, 0xda, 0x19, 0x7c, 0x28, 0x9a, // IID4718 - 0xd5, 0x77, 0x0b, 0x94, 0xa3, 0xd8, 0xd8, 0x61, 0x47, // IID4719 - 0xd5, 0x55, 0x0b, 0x9c, 0x24, 0x62, 0x15, 0xe0, 0x68, // IID4720 - 0xd5, 0x77, 0x0b, 0xa4, 0x75, 0x39, 0xb2, 0x24, 0x53, // IID4721 - 0xd5, 0x55, 0x0b, 0xae, 0xff, 0x76, 0xe2, 0xcd, // IID4722 - 0xd5, 0x55, 0x0b, 0xb7, 0x48, 0x14, 0x3b, 0xd8, // IID4723 - 0xd5, 0x44, 0x0b, 0xb9, 0x2a, 0x87, 0xc7, 0x56, // IID4724 -#endif // _LP64 - 0x13, 0x8c, 0x5a, 0x53, 0x03, 0x33, 0xc5, // IID4725 -#ifdef _LP64 - 0x42, 0x13, 0x94, 0x83, 0x2a, 0x5c, 0xe3, 0x1b, // IID4726 - 0x41, 0x13, 0x98, 0x64, 0x75, 0xfd, 0xad, // IID4727 - 0x45, 0x13, 0x81, 0x29, 0x36, 0xa7, 0xdb, // IID4728 - 0x45, 0x13, 0x8a, 0x33, 0xde, 0x7b, 0xcc, // IID4729 - 0x47, 0x13, 0x94, 0x63, 0x05, 0x19, 0x25, 0xbd, // IID4730 - 0x47, 0x13, 0x9c, 0xec, 0x57, 0x1a, 0xcb, 0xd8, // IID4731 - 0x47, 0x13, 0xa4, 0xf5, 0x8b, 0x0a, 0x4e, 0x07, // IID4732 - 0x47, 0x13, 0xac, 0xfe, 0x7b, 0x8d, 0x80, 0x42, // IID4733 - 0xd5, 0x25, 0x13, 0xb4, 0x07, 0xc6, 0xb3, 0x83, 0x2a, // IID4734 - 0xd5, 0x34, 0x13, 0xbc, 0x88, 0x04, 0x37, 0xdd, 0x77, // IID4735 - 0xd5, 0x70, 0x13, 0x84, 0x11, 0x4b, 0x67, 0x0c, 0xdd, // IID4736 - 0xd5, 0x70, 0x13, 0x8c, 0xda, 0x71, 0x3d, 0x03, 0x1b, // IID4737 - 0xd5, 0x70, 0x13, 0x94, 0x23, 0xf0, 0x0a, 0x26, 0xe4, // IID4738 - 0xd5, 0x70, 0x13, 0x9c, 0x6c, 0x01, 0x72, 0x9e, 0xf4, // IID4739 - 0xd5, 0x50, 0x13, 0xa5, 0x0a, 0xe6, 0xc7, 0xaf, // IID4740 - 0xd5, 0x50, 0x13, 0xae, 0x22, 0xfb, 0x2a, 0xf2, // IID4741 - 0xd5, 0x72, 0x13, 0xb4, 0x07, 0xc0, 0xdb, 0x7c, 0xa4, // IID4742 - 0xd5, 0x73, 0x13, 0xbc, 0x08, 0x04, 0xf6, 0x17, 0x2b, // IID4743 - 0xd5, 0x77, 0x13, 0x84, 0x51, 0x20, 0x94, 0x1c, 0x50, // IID4744 - 0xd5, 0x77, 0x13, 0x8c, 0xda, 0x63, 0x72, 0xea, 0x2b, // IID4745 - 0xd5, 0x77, 0x13, 0x94, 0x23, 0x27, 0x72, 0x9c, 0x01, // IID4746 - 0xd5, 0x77, 0x13, 0x9c, 0x6c, 0x6a, 0x03, 0x43, 0xd1, // IID4747 - 0xd5, 0x77, 0x13, 0xa4, 0xf5, 0x0d, 0x22, 0x33, 0x69, // IID4748 - 0xd5, 0x77, 0x13, 0xac, 0xbe, 0x28, 0x62, 0x85, 0x3e, // IID4749 - 0xd5, 0x55, 0x13, 0xb4, 0x4f, 0x52, 0xce, 0x2f, 0x36, // IID4750 - 0xd5, 0x44, 0x13, 0xb9, 0x34, 0x13, 0x2d, 0x88, // IID4751 -#endif // _LP64 - 0x0f, 0xaf, 0x8c, 0x5a, 0x43, 0x12, 0x9c, 0x26, // IID4752 -#ifdef _LP64 - 0x42, 0x0f, 0xaf, 0x94, 0x03, 0x5f, 0x82, 0x3d, 0xb6, // IID4753 - 0x43, 0x0f, 0xaf, 0x9c, 0x88, 0x33, 0x21, 0x49, 0x8a, // IID4754 - 0x47, 0x0f, 0xaf, 0x84, 0xd1, 0x94, 0x7c, 0xc1, 0x53, // IID4755 - 0x47, 0x0f, 0xaf, 0x8c, 0x9a, 0x13, 0x28, 0x6f, 0x3d, // IID4756 - 0x45, 0x0f, 0xaf, 0x93, 0xcb, 0xac, 0xa9, 0xeb, // IID4757 - 0x47, 0x0f, 0xaf, 0x9c, 0x6c, 0x56, 0xd0, 0xf5, 0xdf, // IID4758 - 0x45, 0x0f, 0xaf, 0xa5, 0x73, 0xf0, 0xb3, 0x62, // IID4759 - 0x47, 0x0f, 0xaf, 0xac, 0xfe, 0x98, 0x0b, 0x43, 0x84, // IID4760 - 0x45, 0x0f, 0xaf, 0xb7, 0x5a, 0xc5, 0xf4, 0xc4, // IID4761 - 0xd5, 0xb4, 0xaf, 0xbc, 0x48, 0x4b, 0xcf, 0xad, 0x1b, // IID4762 - 0xd5, 0xf0, 0xaf, 0x84, 0x91, 0x6f, 0x7d, 0xb3, 0x91, // IID4763 - 0xd5, 0xf0, 0xaf, 0x8c, 0x5a, 0x62, 0xce, 0xf1, 0x5b, // IID4764 - 0xd5, 0xf0, 0xaf, 0x94, 0x63, 0xef, 0x81, 0x2b, 0x0f, // IID4765 - 0xd5, 0xf0, 0xaf, 0x9c, 0x6c, 0xe6, 0x22, 0xa6, 0x62, // IID4766 - 0xd5, 0xf0, 0xaf, 0xa4, 0xb5, 0x03, 0x85, 0xe7, 0xfd, // IID4767 - 0xd5, 0xf0, 0xaf, 0xac, 0x7e, 0x83, 0x81, 0x00, 0x1d, // IID4768 - 0xd5, 0xd0, 0xaf, 0xb7, 0xd2, 0xe4, 0x99, 0xbc, // IID4769 - 0xd5, 0xf3, 0xaf, 0xbc, 0xc8, 0xf2, 0x96, 0xfc, 0x96, // IID4770 - 0xd5, 0xf7, 0xaf, 0x84, 0x91, 0x6b, 0xc5, 0x16, 0x99, // IID4771 - 0xd5, 0xf7, 0xaf, 0x8c, 0x5a, 0x94, 0x95, 0x7c, 0x0a, // IID4772 - 0xd5, 0xf7, 0xaf, 0x94, 0xe3, 0xd2, 0x0e, 0x9a, 0x74, // IID4773 - 0xd5, 0xf7, 0xaf, 0x9c, 0xec, 0x24, 0x01, 0x33, 0xdc, // IID4774 - 0xd5, 0xf7, 0xaf, 0xa4, 0xf5, 0x5b, 0xa3, 0x8c, 0xdb, // IID4775 - 0xd5, 0xf7, 0xaf, 0xac, 0xfe, 0x8e, 0x1f, 0x6d, 0x17, // IID4776 - 0xd5, 0xd5, 0xaf, 0xb4, 0x8f, 0x1c, 0x4a, 0xc9, 0x95, // IID4777 - 0xd5, 0xc4, 0xaf, 0xbc, 0x51, 0x58, 0x52, 0xf6, 0xb9, // IID4778 -#endif // _LP64 - 0xf3, 0x0f, 0xb8, 0x8c, 0x1a, 0x29, 0x52, 0x88, 0x8d, // IID4779 -#ifdef _LP64 - 0xf3, 0x42, 0x0f, 0xb8, 0x94, 0x83, 0xaa, 0x0e, 0x16, 0x05, // IID4780 - 0xf3, 0x43, 0x0f, 0xb8, 0x9c, 0xc8, 0x12, 0x57, 0xb3, 0x92, // IID4781 - 0xf3, 0x47, 0x0f, 0xb8, 0x84, 0xd1, 0x1d, 0xd0, 0x04, 0x9e, // IID4782 - 0xf3, 0x47, 0x0f, 0xb8, 0x8c, 0x1a, 0xdf, 0xc8, 0x1f, 0xce, // IID4783 - 0xf3, 0x47, 0x0f, 0xb8, 0x94, 0x23, 0x14, 0x2a, 0x7d, 0x59, // IID4784 - 0xf3, 0x47, 0x0f, 0xb8, 0x9c, 0xac, 0x24, 0x89, 0xb0, 0x02, // IID4785 - 0xf3, 0x47, 0x0f, 0xb8, 0xa4, 0x75, 0x54, 0x88, 0x9b, 0xa5, // IID4786 - 0xf3, 0x47, 0x0f, 0xb8, 0xac, 0xfe, 0x0b, 0x40, 0xa9, 0xa9, // IID4787 - 0xf3, 0xd5, 0xa5, 0xb8, 0xb4, 0x87, 0x86, 0x47, 0x3a, 0xdf, // IID4788 - 0xf3, 0xd5, 0xb4, 0xb8, 0xbc, 0x88, 0x91, 0x6f, 0x2a, 0x1a, // IID4789 - 0xf3, 0xd5, 0xf0, 0xb8, 0x84, 0x11, 0xcb, 0x98, 0xfe, 0x7a, // IID4790 - 0xf3, 0xd5, 0xf0, 0xb8, 0x8c, 0x5a, 0xca, 0x9f, 0x25, 0x3b, // IID4791 - 0xf3, 0xd5, 0xf0, 0xb8, 0x94, 0xa3, 0x38, 0xad, 0x1e, 0xda, // IID4792 - 0xf3, 0xd5, 0xf0, 0xb8, 0x9c, 0xec, 0x29, 0xf5, 0x56, 0x64, // IID4793 - 0xf3, 0xd5, 0xd0, 0xb8, 0xa5, 0xf3, 0x91, 0x3d, 0x31, // IID4794 - 0xf3, 0xd5, 0xf0, 0xb8, 0xac, 0xfe, 0x17, 0xc4, 0x52, 0xe2, // IID4795 - 0xf3, 0xd5, 0xd0, 0xb8, 0xb7, 0x7a, 0x99, 0xdf, 0xc2, // IID4796 - 0xf3, 0xd5, 0xd1, 0xb8, 0xb8, 0xbc, 0x2f, 0x1b, 0xb5, // IID4797 - 0xf3, 0xd5, 0xf7, 0xb8, 0x84, 0x91, 0x89, 0xa3, 0x15, 0x54, // IID4798 - 0xf3, 0xd5, 0xd5, 0xb8, 0x8a, 0x19, 0x56, 0x8b, 0xb9, // IID4799 - 0xf3, 0xd5, 0xf7, 0xb8, 0x94, 0x63, 0x46, 0xbc, 0x28, 0x73, // IID4800 - 0xf3, 0xd5, 0xf7, 0xb8, 0x9c, 0x2c, 0x24, 0xf3, 0x8e, 0x2d, // IID4801 - 0xf3, 0xd5, 0xf7, 0xb8, 0xa4, 0xf5, 0x11, 0xbb, 0x95, 0xe0, // IID4802 - 0xf3, 0xd5, 0xf7, 0xb8, 0xac, 0x3e, 0x34, 0x3d, 0xd6, 0x67, // IID4803 - 0xf3, 0xd5, 0xd5, 0xb8, 0xb4, 0x8f, 0xcd, 0x29, 0xdc, 0x10, // IID4804 - 0xf3, 0xd5, 0xc4, 0xb8, 0xb9, 0x2b, 0xc9, 0xa6, 0xf0, // IID4805 -#endif // _LP64 - 0x1b, 0x8c, 0x1a, 0x55, 0xb5, 0x08, 0x7b, // IID4806 -#ifdef _LP64 - 0x42, 0x1b, 0x94, 0xc3, 0x95, 0x76, 0x3d, 0x3a, // IID4807 - 0x43, 0x1b, 0x9c, 0x88, 0x40, 0xfc, 0x9b, 0xec, // IID4808 - 0x45, 0x1b, 0x81, 0xb2, 0xea, 0x1b, 0x4b, // IID4809 - 0x47, 0x1b, 0x8c, 0x9a, 0xf4, 0xdf, 0x63, 0xec, // IID4810 - 0x47, 0x1b, 0x94, 0xe3, 0x8c, 0x8e, 0x0a, 0xef, // IID4811 - 0x45, 0x1b, 0x9c, 0x24, 0x25, 0xac, 0xa5, 0xef, // IID4812 - 0x47, 0x1b, 0xa4, 0xf5, 0x31, 0xe7, 0x24, 0x29, // IID4813 - 0x47, 0x1b, 0xac, 0xfe, 0xbd, 0x20, 0x0a, 0x68, // IID4814 - 0xd5, 0x25, 0x1b, 0xb4, 0x07, 0xa0, 0x7e, 0x15, 0xb7, // IID4815 - 0xd5, 0x34, 0x1b, 0xbc, 0x08, 0xb0, 0xe8, 0xcf, 0x00, // IID4816 - 0xd5, 0x70, 0x1b, 0x84, 0xd1, 0xe4, 0xc1, 0x73, 0xa8, // IID4817 - 0xd5, 0x70, 0x1b, 0x8c, 0x9a, 0xa9, 0x2c, 0x4e, 0xf8, // IID4818 - 0xd5, 0x70, 0x1b, 0x94, 0x63, 0xa9, 0xb9, 0x48, 0x49, // IID4819 - 0xd5, 0x50, 0x1b, 0x9c, 0x24, 0x11, 0x23, 0x02, 0xfe, // IID4820 - 0xd5, 0x70, 0x1b, 0xa4, 0xb5, 0x5f, 0x07, 0x13, 0x8f, // IID4821 - 0xd5, 0x50, 0x1b, 0xae, 0x7f, 0xa4, 0x3d, 0x5a, // IID4822 - 0xd5, 0x50, 0x1b, 0xb7, 0xae, 0xd6, 0x4f, 0x2a, // IID4823 - 0xd5, 0x73, 0x1b, 0xbc, 0xc8, 0x6b, 0x0b, 0x69, 0xff, // IID4824 - 0xd5, 0x77, 0x1b, 0x84, 0x11, 0x27, 0x2f, 0x0b, 0x93, // IID4825 - 0xd5, 0x77, 0x1b, 0x8c, 0x9a, 0x72, 0x7f, 0x0b, 0x34, // IID4826 - 0xd5, 0x77, 0x1b, 0x94, 0x63, 0xc2, 0x71, 0x49, 0x5d, // IID4827 - 0xd5, 0x77, 0x1b, 0x9c, 0x2c, 0xee, 0xc4, 0xb8, 0xf2, // IID4828 - 0xd5, 0x55, 0x1b, 0xa5, 0x91, 0x28, 0x10, 0x97, // IID4829 - 0xd5, 0x55, 0x1b, 0xae, 0x8d, 0xb8, 0xbc, 0x55, // IID4830 - 0xd5, 0x55, 0x1b, 0xb4, 0x8f, 0x57, 0x21, 0xb0, 0xe8, // IID4831 - 0xd5, 0x44, 0x1b, 0xbc, 0xd1, 0xc0, 0xeb, 0xe6, 0xd1, // IID4832 -#endif // _LP64 - 0x2b, 0x8c, 0x9a, 0x35, 0x79, 0x0d, 0x56, // IID4833 -#ifdef _LP64 - 0x42, 0x2b, 0x94, 0x83, 0x5a, 0x99, 0xd7, 0x2d, // IID4834 - 0x43, 0x2b, 0x9c, 0x88, 0xac, 0xd8, 0x44, 0x7c, // IID4835 - 0x47, 0x2b, 0x84, 0x11, 0x9f, 0x14, 0xde, 0x62, // IID4836 - 0x47, 0x2b, 0x8c, 0xda, 0x10, 0xf3, 0x0b, 0x39, // IID4837 - 0x47, 0x2b, 0x94, 0x63, 0x30, 0xff, 0xe9, 0x8b, // IID4838 - 0x45, 0x2b, 0x9c, 0x24, 0xc5, 0x77, 0x51, 0x60, // IID4839 - 0x47, 0x2b, 0xa4, 0x75, 0x79, 0xf4, 0x7c, 0xfb, // IID4840 - 0x47, 0x2b, 0xac, 0x3e, 0x33, 0xc9, 0x7b, 0x87, // IID4841 - 0xd5, 0x25, 0x2b, 0xb4, 0x07, 0x0b, 0x5e, 0x81, 0xc2, // IID4842 - 0xd5, 0x34, 0x2b, 0xbc, 0x88, 0x11, 0x49, 0x2c, 0x59, // IID4843 - 0xd5, 0x70, 0x2b, 0x84, 0xd1, 0xd1, 0xae, 0xff, 0xcf, // IID4844 - 0xd5, 0x50, 0x2b, 0x8a, 0x4b, 0x02, 0xc1, 0xbb, // IID4845 - 0xd5, 0x70, 0x2b, 0x94, 0xe3, 0x6f, 0x1c, 0x79, 0x6c, // IID4846 - 0xd5, 0x50, 0x2b, 0x9c, 0x24, 0x29, 0x7e, 0xd6, 0xc6, // IID4847 - 0xd5, 0x50, 0x2b, 0xa5, 0x8f, 0x5d, 0xec, 0x9f, // IID4848 - 0xd5, 0x70, 0x2b, 0xac, 0xbe, 0x9d, 0xc4, 0x0b, 0x42, // IID4849 - 0xd5, 0x72, 0x2b, 0xb4, 0x07, 0x57, 0xa4, 0x3c, 0x47, // IID4850 - 0xd5, 0x73, 0x2b, 0xbc, 0x48, 0xc1, 0xd8, 0x95, 0x64, // IID4851 - 0xd5, 0x77, 0x2b, 0x84, 0x91, 0x5e, 0x09, 0x9f, 0x5c, // IID4852 - 0xd5, 0x77, 0x2b, 0x8c, 0x1a, 0x9b, 0x3f, 0x1a, 0xf0, // IID4853 - 0xd5, 0x55, 0x2b, 0x93, 0xc1, 0x21, 0x7c, 0x3c, // IID4854 - 0xd5, 0x77, 0x2b, 0x9c, 0x2c, 0x47, 0x56, 0x87, 0xce, // IID4855 - 0xd5, 0x77, 0x2b, 0xa4, 0xb5, 0x23, 0x0b, 0x1b, 0x76, // IID4856 - 0xd5, 0x55, 0x2b, 0xae, 0x7c, 0x60, 0xe6, 0x62, // IID4857 - 0xd5, 0x55, 0x2b, 0xb4, 0xcf, 0x3d, 0xb9, 0x16, 0xe3, // IID4858 - 0xd5, 0x44, 0x2b, 0xbc, 0x11, 0x2b, 0x0e, 0x34, 0xda, // IID4859 -#endif // _LP64 - 0xf3, 0x0f, 0xbc, 0x8c, 0xda, 0x2b, 0xa3, 0x9e, 0x31, // IID4860 -#ifdef _LP64 - 0xf3, 0x0f, 0xbc, 0x93, 0x2d, 0x96, 0x38, 0xd3, // IID4861 - 0xf3, 0x43, 0x0f, 0xbc, 0x9c, 0x48, 0xa1, 0x79, 0x72, 0xef, // IID4862 - 0xf3, 0x47, 0x0f, 0xbc, 0x84, 0xd1, 0x01, 0xde, 0xa4, 0x75, // IID4863 - 0xf3, 0x47, 0x0f, 0xbc, 0x8c, 0x9a, 0x46, 0xd8, 0xed, 0xe1, // IID4864 - 0xf3, 0x47, 0x0f, 0xbc, 0x94, 0xa3, 0x0a, 0x39, 0xc5, 0x92, // IID4865 - 0xf3, 0x45, 0x0f, 0xbc, 0x9c, 0x24, 0x45, 0x03, 0x40, 0xc8, // IID4866 - 0xf3, 0x45, 0x0f, 0xbc, 0xa5, 0x31, 0x75, 0x7c, 0x5d, // IID4867 - 0xf3, 0x47, 0x0f, 0xbc, 0xac, 0xfe, 0x9d, 0x09, 0x86, 0x3b, // IID4868 - 0xf3, 0xd5, 0xa5, 0xbc, 0xb4, 0x87, 0x88, 0x23, 0xdf, 0xcd, // IID4869 - 0xf3, 0xd5, 0xb4, 0xbc, 0xbc, 0x88, 0xe0, 0xba, 0x11, 0x99, // IID4870 - 0xf3, 0xd5, 0xf0, 0xbc, 0x84, 0xd1, 0x20, 0x17, 0x57, 0xb8, // IID4871 - 0xf3, 0xd5, 0xf0, 0xbc, 0x8c, 0x5a, 0x97, 0x2b, 0x10, 0x4b, // IID4872 - 0xf3, 0xd5, 0xf0, 0xbc, 0x94, 0xa3, 0xa9, 0x00, 0xa3, 0x3a, // IID4873 - 0xf3, 0xd5, 0xf0, 0xbc, 0x9c, 0x6c, 0x53, 0x82, 0x16, 0x5f, // IID4874 - 0xf3, 0xd5, 0xf0, 0xbc, 0xa4, 0xb5, 0x7b, 0x25, 0x8b, 0xf3, // IID4875 - 0xf3, 0xd5, 0xf0, 0xbc, 0xac, 0x3e, 0x58, 0x03, 0x08, 0x24, // IID4876 - 0xf3, 0xd5, 0xd0, 0xbc, 0xb7, 0x9f, 0x50, 0xe7, 0x51, // IID4877 - 0xf3, 0xd5, 0xd1, 0xbc, 0xb8, 0xdc, 0xd2, 0xdf, 0xc6, // IID4878 - 0xf3, 0xd5, 0xf7, 0xbc, 0x84, 0x51, 0x0d, 0x69, 0xad, 0xa6, // IID4879 - 0xf3, 0xd5, 0xf7, 0xbc, 0x8c, 0x9a, 0x21, 0xd4, 0x74, 0x05, // IID4880 - 0xf3, 0xd5, 0xf7, 0xbc, 0x94, 0xe3, 0x8a, 0x66, 0x6b, 0x94, // IID4881 - 0xf3, 0xd5, 0xf7, 0xbc, 0x9c, 0x6c, 0x7b, 0x9c, 0xa0, 0x23, // IID4882 - 0xf3, 0xd5, 0xf7, 0xbc, 0xa4, 0x35, 0xd3, 0xfd, 0xd8, 0x0d, // IID4883 - 0xf3, 0xd5, 0xf7, 0xbc, 0xac, 0x7e, 0x36, 0x27, 0xb8, 0x40, // IID4884 - 0xf3, 0xd5, 0xd5, 0xbc, 0xb4, 0x0f, 0x72, 0xeb, 0x56, 0x20, // IID4885 - 0xf3, 0xd5, 0xc4, 0xbc, 0xbc, 0xd1, 0xf0, 0x67, 0x31, 0x4c, // IID4886 -#endif // _LP64 - 0x32, 0x8c, 0x9a, 0xdc, 0x69, 0x94, 0x45, // IID4887 -#ifdef _LP64 - 0x42, 0x32, 0x94, 0x83, 0xfb, 0xea, 0x8a, 0x83, // IID4888 - 0x43, 0x32, 0x9c, 0x48, 0x8e, 0x42, 0x58, 0x9e, // IID4889 - 0x45, 0x32, 0x81, 0x83, 0x26, 0x01, 0x07, // IID4890 - 0x47, 0x32, 0x8c, 0x1a, 0x7e, 0x90, 0xc7, 0x2d, // IID4891 - 0x45, 0x32, 0x93, 0x9d, 0x88, 0x33, 0x30, // IID4892 - 0x45, 0x32, 0x9c, 0x24, 0x13, 0xec, 0x17, 0xc7, // IID4893 - 0x45, 0x32, 0xa5, 0x06, 0x82, 0xf2, 0x82, // IID4894 - 0x45, 0x32, 0xae, 0x3d, 0x0f, 0x38, 0x22, // IID4895 - 0xd5, 0x25, 0x32, 0xb4, 0x47, 0x1a, 0x49, 0xcb, 0x09, // IID4896 - 0xd5, 0x34, 0x32, 0xbc, 0x88, 0x69, 0x2b, 0xad, 0x17, // IID4897 - 0xd5, 0x50, 0x32, 0x81, 0xb3, 0xf5, 0x8f, 0x62, // IID4898 - 0xd5, 0x70, 0x32, 0x8c, 0x1a, 0xd4, 0xbc, 0xac, 0xca, // IID4899 - 0xd5, 0x70, 0x32, 0x94, 0x63, 0x24, 0xb7, 0xca, 0xaa, // IID4900 - 0xd5, 0x50, 0x32, 0x9c, 0x24, 0x7d, 0x86, 0x36, 0x98, // IID4901 - 0xd5, 0x70, 0x32, 0xa4, 0xb5, 0x43, 0xc0, 0xcc, 0x60, // IID4902 - 0xd5, 0x50, 0x32, 0xae, 0x2e, 0x79, 0xaa, 0x47, // IID4903 - 0xd5, 0x72, 0x32, 0xb4, 0x87, 0x6d, 0x65, 0xf5, 0xd9, // IID4904 - 0xd5, 0x51, 0x32, 0xb8, 0x21, 0xe4, 0xb3, 0x7d, // IID4905 - 0xd5, 0x55, 0x32, 0x81, 0xa5, 0x46, 0xa4, 0x03, // IID4906 - 0xd5, 0x77, 0x32, 0x8c, 0x9a, 0x75, 0x7b, 0x52, 0x0a, // IID4907 - 0xd5, 0x77, 0x32, 0x94, 0x23, 0x0c, 0xf6, 0x96, 0x7e, // IID4908 - 0xd5, 0x55, 0x32, 0x9c, 0x24, 0xc5, 0xf3, 0x45, 0x3f, // IID4909 - 0xd5, 0x77, 0x32, 0xa4, 0x75, 0xdb, 0x46, 0x82, 0x16, // IID4910 - 0xd5, 0x77, 0x32, 0xac, 0x3e, 0x31, 0xe2, 0x79, 0x9e, // IID4911 - 0xd5, 0x55, 0x32, 0xb4, 0x0f, 0x4d, 0x24, 0x09, 0xc1, // IID4912 - 0xd5, 0x44, 0x32, 0xb9, 0x2e, 0x64, 0xaa, 0xf4, // IID4913 -#endif // _LP64 - 0x66, 0x33, 0x8a, 0xba, 0x10, 0x09, 0x9d, // IID4914 -#ifdef _LP64 - 0x66, 0x42, 0x33, 0x94, 0x83, 0x33, 0x24, 0x51, 0xb5, // IID4915 - 0x66, 0x41, 0x33, 0x98, 0xaa, 0xb3, 0x46, 0xc4, // IID4916 - 0x66, 0x45, 0x33, 0x81, 0x7e, 0x50, 0xa6, 0xc7, // IID4917 - 0x66, 0x47, 0x33, 0x8c, 0xda, 0x64, 0x61, 0xa5, 0x52, // IID4918 - 0x66, 0x47, 0x33, 0x94, 0x63, 0xf1, 0x10, 0xf8, 0x9c, // IID4919 - 0x66, 0x47, 0x33, 0x9c, 0xac, 0x97, 0x5f, 0xea, 0xc9, // IID4920 - 0x66, 0x45, 0x33, 0xa5, 0x96, 0x7b, 0xe5, 0xc5, // IID4921 - 0x66, 0x47, 0x33, 0xac, 0xbe, 0xdc, 0xbd, 0x46, 0x88, // IID4922 - 0x66, 0xd5, 0x25, 0x33, 0xb4, 0xc7, 0x3c, 0xfe, 0x1f, 0x59, // IID4923 - 0x66, 0xd5, 0x34, 0x33, 0xbc, 0x88, 0x12, 0x94, 0xe1, 0xe7, // IID4924 - 0x66, 0xd5, 0x70, 0x33, 0x84, 0x91, 0xd0, 0xe6, 0x13, 0xa6, // IID4925 - 0x66, 0xd5, 0x70, 0x33, 0x8c, 0xda, 0x5d, 0xc4, 0x5a, 0x17, // IID4926 - 0x66, 0xd5, 0x70, 0x33, 0x94, 0x63, 0x9d, 0x4b, 0x61, 0xce, // IID4927 - 0x66, 0xd5, 0x70, 0x33, 0x9c, 0xac, 0xb3, 0xc1, 0xc2, 0x94, // IID4928 - 0x66, 0xd5, 0x70, 0x33, 0xa4, 0x75, 0x5e, 0x5f, 0xae, 0xa5, // IID4929 - 0x66, 0xd5, 0x70, 0x33, 0xac, 0xbe, 0xc8, 0x61, 0x42, 0xea, // IID4930 - 0x66, 0xd5, 0x50, 0x33, 0xb7, 0xf1, 0xd0, 0x6a, 0x37, // IID4931 - 0x66, 0xd5, 0x73, 0x33, 0xbc, 0x48, 0xbf, 0x4c, 0x2d, 0x18, // IID4932 - 0x66, 0xd5, 0x77, 0x33, 0x84, 0x91, 0xbc, 0x83, 0xa1, 0xa0, // IID4933 - 0x66, 0xd5, 0x77, 0x33, 0x8c, 0xda, 0xe2, 0xfb, 0x15, 0xe1, // IID4934 - 0x66, 0xd5, 0x77, 0x33, 0x94, 0x23, 0xc2, 0x80, 0x3b, 0x4f, // IID4935 - 0x66, 0xd5, 0x55, 0x33, 0x9c, 0x24, 0x62, 0xe5, 0x2b, 0x0c, // IID4936 - 0x66, 0xd5, 0x77, 0x33, 0xa4, 0x75, 0x87, 0xe4, 0x19, 0x3c, // IID4937 - 0x66, 0xd5, 0x77, 0x33, 0xac, 0x3e, 0xea, 0x44, 0x4e, 0x02, // IID4938 - 0x66, 0xd5, 0x55, 0x33, 0xb4, 0xcf, 0x9f, 0x5b, 0xbc, 0x07, // IID4939 - 0x66, 0xd5, 0x44, 0x33, 0xbc, 0xd1, 0x32, 0x69, 0xfd, 0xd8, // IID4940 -#endif // _LP64 - 0x33, 0x8c, 0xda, 0x22, 0xba, 0xdb, 0x7b, // IID4941 -#ifdef _LP64 - 0x33, 0x93, 0x09, 0xa1, 0x9e, 0x1d, // IID4942 - 0x43, 0x33, 0x9c, 0xc8, 0xb4, 0xba, 0x5c, 0x82, // IID4943 - 0x47, 0x33, 0x84, 0x11, 0xe3, 0x35, 0xfa, 0x84, // IID4944 - 0x47, 0x33, 0x8c, 0x9a, 0xa5, 0x35, 0xe8, 0xce, // IID4945 - 0x45, 0x33, 0x93, 0xc9, 0xe2, 0x81, 0x01, // IID4946 - 0x47, 0x33, 0x9c, 0x2c, 0x65, 0xf1, 0xd5, 0x84, // IID4947 - 0x47, 0x33, 0xa4, 0xf5, 0x39, 0x5b, 0xc0, 0xc8, // IID4948 - 0x47, 0x33, 0xac, 0xbe, 0xdb, 0xd5, 0x0b, 0x30, // IID4949 - 0xd5, 0x25, 0x33, 0xb4, 0x47, 0xaf, 0x3c, 0x87, 0x62, // IID4950 - 0xd5, 0x34, 0x33, 0xbc, 0x48, 0xa8, 0x10, 0xca, 0xc1, // IID4951 - 0xd5, 0x70, 0x33, 0x84, 0x51, 0x51, 0xd2, 0x84, 0xf2, // IID4952 - 0xd5, 0x70, 0x33, 0x8c, 0x1a, 0x8e, 0x81, 0x38, 0x11, // IID4953 - 0xd5, 0x70, 0x33, 0x94, 0xa3, 0x7f, 0xad, 0x1f, 0x0d, // IID4954 - 0xd5, 0x70, 0x33, 0x9c, 0xec, 0x7c, 0x83, 0x5e, 0xa4, // IID4955 - 0xd5, 0x70, 0x33, 0xa4, 0xb5, 0x74, 0x13, 0xc9, 0x12, // IID4956 - 0xd5, 0x70, 0x33, 0xac, 0x7e, 0x44, 0x2d, 0xc4, 0x38, // IID4957 - 0xd5, 0x72, 0x33, 0xb4, 0x07, 0x29, 0xa5, 0x9c, 0x73, // IID4958 - 0xd5, 0x73, 0x33, 0xbc, 0x48, 0x88, 0xac, 0x43, 0x36, // IID4959 - 0xd5, 0x77, 0x33, 0x84, 0x11, 0x83, 0x4e, 0x9f, 0xbd, // IID4960 - 0xd5, 0x77, 0x33, 0x8c, 0x1a, 0x1e, 0xff, 0xd1, 0xc5, // IID4961 - 0xd5, 0x77, 0x33, 0x94, 0xe3, 0x82, 0xee, 0x77, 0xed, // IID4962 - 0xd5, 0x55, 0x33, 0x9c, 0x24, 0x07, 0xa5, 0x02, 0xfe, // IID4963 - 0xd5, 0x55, 0x33, 0xa5, 0x43, 0x43, 0x33, 0x57, // IID4964 - 0xd5, 0x55, 0x33, 0xae, 0xfa, 0x44, 0xa7, 0x06, // IID4965 - 0xd5, 0x55, 0x33, 0xb7, 0xdc, 0x87, 0x05, 0x6c, // IID4966 - 0xd5, 0x44, 0x33, 0xbc, 0x91, 0xf9, 0xe2, 0x8b, 0xa5, // IID4967 -#endif // _LP64 - 0x8a, 0x8c, 0x1a, 0xd1, 0x1c, 0xea, 0x33, // IID4968 -#ifdef _LP64 - 0x42, 0x8a, 0x94, 0x83, 0xee, 0x35, 0x2e, 0x6f, // IID4969 - 0x41, 0x8a, 0x98, 0xb5, 0x77, 0xc3, 0x10, // IID4970 - 0x47, 0x8a, 0x84, 0x91, 0x2f, 0x18, 0x66, 0x7f, // IID4971 - 0x47, 0x8a, 0x8c, 0x5a, 0x36, 0x2e, 0xec, 0x62, // IID4972 - 0x47, 0x8a, 0x94, 0xa3, 0x8e, 0x54, 0x10, 0x7b, // IID4973 - 0x47, 0x8a, 0x9c, 0xec, 0x28, 0x05, 0x85, 0x52, // IID4974 - 0x47, 0x8a, 0xa4, 0xb5, 0x2d, 0x4f, 0xde, 0x8d, // IID4975 - 0x45, 0x8a, 0xae, 0x18, 0x89, 0xb4, 0x78, // IID4976 - 0xd5, 0x25, 0x8a, 0xb4, 0xc7, 0xed, 0x71, 0x12, 0x10, // IID4977 - 0xd5, 0x34, 0x8a, 0xbc, 0x48, 0x47, 0x43, 0x3d, 0x7f, // IID4978 - 0xd5, 0x50, 0x8a, 0x81, 0x24, 0x43, 0x18, 0x98, // IID4979 - 0xd5, 0x70, 0x8a, 0x8c, 0x5a, 0x9b, 0xb7, 0xbb, 0x98, // IID4980 - 0xd5, 0x50, 0x8a, 0x93, 0x61, 0x30, 0xf8, 0x7b, // IID4981 - 0xd5, 0x70, 0x8a, 0x9c, 0x6c, 0xc8, 0x64, 0x3a, 0x11, // IID4982 - 0xd5, 0x70, 0x8a, 0xa4, 0xb5, 0xc1, 0x2e, 0xd2, 0xc4, // IID4983 - 0xd5, 0x70, 0x8a, 0xac, 0x3e, 0xe6, 0x64, 0x42, 0x4d, // IID4984 - 0xd5, 0x72, 0x8a, 0xb4, 0xc7, 0x0a, 0xa5, 0xcc, 0x41, // IID4985 - 0xd5, 0x73, 0x8a, 0xbc, 0x88, 0x63, 0x6d, 0x6e, 0x4c, // IID4986 - 0xd5, 0x55, 0x8a, 0x81, 0xcc, 0x2e, 0x50, 0x16, // IID4987 - 0xd5, 0x77, 0x8a, 0x8c, 0xda, 0xcc, 0x79, 0xaf, 0x26, // IID4988 - 0xd5, 0x77, 0x8a, 0x94, 0x63, 0xb1, 0x18, 0x96, 0x20, // IID4989 - 0xd5, 0x55, 0x8a, 0x9c, 0x24, 0xfd, 0xb0, 0x7f, 0x82, // IID4990 - 0xd5, 0x77, 0x8a, 0xa4, 0xf5, 0x7b, 0x4f, 0x0f, 0x4d, // IID4991 - 0xd5, 0x77, 0x8a, 0xac, 0x7e, 0x8b, 0x00, 0x89, 0x75, // IID4992 - 0xd5, 0x55, 0x8a, 0xb7, 0x5a, 0x0d, 0x61, 0x33, // IID4993 - 0xd5, 0x44, 0x8a, 0xbc, 0x91, 0x30, 0x09, 0x70, 0xe7, // IID4994 -#endif // _LP64 - 0x8b, 0x8c, 0xda, 0x85, 0xc3, 0x71, 0xf0, // IID4995 -#ifdef _LP64 - 0x42, 0x8b, 0x94, 0xc3, 0xaa, 0x62, 0x36, 0x57, // IID4996 - 0x41, 0x8b, 0x98, 0x5d, 0x96, 0x38, 0xaa, // IID4997 - 0x47, 0x8b, 0x84, 0x51, 0x52, 0xbb, 0x91, 0x95, // IID4998 - 0x47, 0x8b, 0x8c, 0x1a, 0x9c, 0x4b, 0xf6, 0x8d, // IID4999 - 0x47, 0x8b, 0x94, 0xe3, 0xa7, 0x94, 0x91, 0xbc, // IID5000 - 0x45, 0x8b, 0x9c, 0x24, 0x9c, 0xdd, 0xc3, 0xec, // IID5001 - 0x47, 0x8b, 0xa4, 0x75, 0xc9, 0x04, 0x39, 0xfe, // IID5002 - 0x47, 0x8b, 0xac, 0xbe, 0x53, 0x2d, 0x53, 0x1b, // IID5003 - 0xd5, 0x25, 0x8b, 0xb4, 0x07, 0x8c, 0xaa, 0x0c, 0xa5, // IID5004 - 0xd5, 0x34, 0x8b, 0xbc, 0x88, 0xea, 0x2e, 0xb3, 0xed, // IID5005 - 0xd5, 0x70, 0x8b, 0x84, 0x11, 0x2a, 0xe4, 0x44, 0xd6, // IID5006 - 0xd5, 0x70, 0x8b, 0x8c, 0x9a, 0xa8, 0xce, 0xd6, 0xbf, // IID5007 - 0xd5, 0x70, 0x8b, 0x94, 0xa3, 0x14, 0xa4, 0x17, 0x08, // IID5008 - 0xd5, 0x50, 0x8b, 0x9c, 0x24, 0xa6, 0xca, 0xdb, 0x4d, // IID5009 - 0xd5, 0x70, 0x8b, 0xa4, 0x35, 0xd2, 0x3a, 0x9b, 0xcc, // IID5010 - 0xd5, 0x70, 0x8b, 0xac, 0xbe, 0x3a, 0x61, 0x94, 0x6b, // IID5011 - 0xd5, 0x50, 0x8b, 0xb7, 0x71, 0xbc, 0x66, 0x91, // IID5012 - 0xd5, 0x73, 0x8b, 0xbc, 0xc8, 0x4c, 0xfc, 0x56, 0xa3, // IID5013 - 0xd5, 0x77, 0x8b, 0x84, 0x51, 0xbf, 0x9c, 0x32, 0xc5, // IID5014 - 0xd5, 0x77, 0x8b, 0x8c, 0xda, 0xec, 0x0c, 0x74, 0xd5, // IID5015 - 0xd5, 0x77, 0x8b, 0x94, 0x23, 0x11, 0x54, 0xfe, 0xaa, // IID5016 - 0xd5, 0x77, 0x8b, 0x9c, 0xac, 0x11, 0x91, 0xde, 0x62, // IID5017 - 0xd5, 0x55, 0x8b, 0xa5, 0x35, 0xde, 0x47, 0x06, // IID5018 - 0xd5, 0x55, 0x8b, 0xae, 0x5f, 0x11, 0x2f, 0xb9, // IID5019 - 0xd5, 0x55, 0x8b, 0xb4, 0x0f, 0xec, 0x7f, 0xd8, 0xce, // IID5020 - 0xd5, 0x44, 0x8b, 0xb9, 0x1b, 0xf2, 0x38, 0xde, // IID5021 -#endif // _LP64 - 0x8d, 0x8c, 0xda, 0x82, 0xbc, 0x93, 0x60, // IID5022 -#ifdef _LP64 - 0x8d, 0x93, 0xa4, 0x39, 0xd8, 0xa2, // IID5023 - 0x43, 0x8d, 0x9c, 0x88, 0x4f, 0xf0, 0xd5, 0x10, // IID5024 - 0x47, 0x8d, 0x84, 0x51, 0x94, 0xc8, 0x3f, 0x87, // IID5025 - 0x47, 0x8d, 0x8c, 0x5a, 0xa7, 0x0a, 0x83, 0xde, // IID5026 - 0x47, 0x8d, 0x94, 0xe3, 0x15, 0x89, 0x70, 0xfb, // IID5027 - 0x45, 0x8d, 0x9c, 0x24, 0x70, 0xe1, 0xb3, 0x07, // IID5028 - 0x45, 0x8d, 0xa5, 0xe2, 0x3d, 0xc8, 0xcc, // IID5029 - 0x47, 0x8d, 0xac, 0x7e, 0x55, 0xb3, 0xd6, 0x1e, // IID5030 - 0xd5, 0x25, 0x8d, 0xb4, 0x07, 0xe5, 0x1e, 0x61, 0xab, // IID5031 - 0xd5, 0x34, 0x8d, 0xbc, 0xc8, 0xf9, 0xa4, 0xf3, 0x65, // IID5032 - 0xd5, 0x70, 0x8d, 0x84, 0x91, 0xaf, 0x04, 0xbe, 0x9a, // IID5033 - 0xd5, 0x70, 0x8d, 0x8c, 0xda, 0xac, 0xc5, 0xfe, 0xe9, // IID5034 - 0xd5, 0x50, 0x8d, 0x93, 0x86, 0x8c, 0x15, 0x66, // IID5035 - 0xd5, 0x50, 0x8d, 0x9c, 0x24, 0x13, 0x47, 0x4b, 0x39, // IID5036 - 0xd5, 0x70, 0x8d, 0xa4, 0xb5, 0x60, 0xd6, 0x45, 0x6e, // IID5037 - 0xd5, 0x50, 0x8d, 0xae, 0x4c, 0xb9, 0x91, 0x4c, // IID5038 - 0xd5, 0x72, 0x8d, 0xb4, 0xc7, 0x8e, 0xee, 0x9c, 0x17, // IID5039 - 0xd5, 0x73, 0x8d, 0xbc, 0x48, 0x7d, 0xb9, 0xa7, 0x7b, // IID5040 - 0xd5, 0x77, 0x8d, 0x84, 0xd1, 0xd6, 0x80, 0x73, 0xa1, // IID5041 - 0xd5, 0x77, 0x8d, 0x8c, 0xda, 0x9e, 0x51, 0x5a, 0xaa, // IID5042 - 0xd5, 0x77, 0x8d, 0x94, 0xa3, 0x8c, 0xd7, 0x15, 0xc1, // IID5043 - 0xd5, 0x77, 0x8d, 0x9c, 0xec, 0x50, 0x81, 0x43, 0xf9, // IID5044 - 0xd5, 0x77, 0x8d, 0xa4, 0xb5, 0x23, 0x5e, 0x78, 0x5c, // IID5045 - 0xd5, 0x77, 0x8d, 0xac, 0xfe, 0x77, 0x32, 0x7b, 0xa0, // IID5046 - 0xd5, 0x55, 0x8d, 0xb4, 0x0f, 0xa3, 0xdd, 0x39, 0x8a, // IID5047 - 0xd5, 0x44, 0x8d, 0xb9, 0x85, 0xdb, 0x24, 0xa5, // IID5048 -#endif // _LP64 - 0x86, 0x8c, 0x5a, 0x52, 0x9a, 0xe9, 0x5f, // IID5049 -#ifdef _LP64 - 0x42, 0x86, 0x94, 0x43, 0x19, 0x1f, 0x9e, 0xcf, // IID5050 - 0x43, 0x86, 0x9c, 0xc8, 0xf7, 0x96, 0x4a, 0x2a, // IID5051 - 0x47, 0x86, 0x84, 0xd1, 0x44, 0xaa, 0x39, 0x6c, // IID5052 - 0x47, 0x86, 0x8c, 0x9a, 0x28, 0xd3, 0xdd, 0x17, // IID5053 - 0x47, 0x86, 0x94, 0xe3, 0x6d, 0xf5, 0x46, 0x60, // IID5054 - 0x45, 0x86, 0x9c, 0x24, 0x98, 0xfd, 0x5b, 0xc8, // IID5055 - 0x47, 0x86, 0xa4, 0x75, 0x46, 0xa5, 0xa1, 0xef, // IID5056 - 0x47, 0x86, 0xac, 0xfe, 0xae, 0x07, 0x7d, 0xba, // IID5057 - 0x45, 0x86, 0xb7, 0x7c, 0xdc, 0xc4, 0xb3, // IID5058 - 0xd5, 0x14, 0x86, 0xb8, 0x8c, 0xef, 0x5a, 0x3a, // IID5059 - 0xd5, 0x50, 0x86, 0x81, 0xab, 0x7c, 0x45, 0x6e, // IID5060 - 0xd5, 0x70, 0x86, 0x8c, 0x9a, 0x94, 0xe3, 0xe7, 0xb1, // IID5061 - 0xd5, 0x70, 0x86, 0x94, 0x63, 0x34, 0x27, 0x8f, 0x9e, // IID5062 - 0xd5, 0x70, 0x86, 0x9c, 0x2c, 0xcc, 0x20, 0xc4, 0x49, // IID5063 - 0xd5, 0x70, 0x86, 0xa4, 0x35, 0x25, 0xf8, 0xe4, 0x81, // IID5064 - 0xd5, 0x50, 0x86, 0xae, 0x74, 0xc8, 0xe2, 0xf9, // IID5065 - 0xd5, 0x72, 0x86, 0xb4, 0x87, 0x86, 0xd5, 0xee, 0xda, // IID5066 - 0xd5, 0x51, 0x86, 0xb8, 0xfd, 0x08, 0xf4, 0x0b, // IID5067 - 0xd5, 0x55, 0x86, 0x81, 0xd8, 0x42, 0x2b, 0xfb, // IID5068 - 0xd5, 0x77, 0x86, 0x8c, 0x1a, 0x55, 0xd0, 0x00, 0x58, // IID5069 - 0xd5, 0x77, 0x86, 0x94, 0xa3, 0x09, 0x37, 0x89, 0xf9, // IID5070 - 0xd5, 0x77, 0x86, 0x9c, 0x2c, 0x84, 0xbd, 0x0c, 0x03, // IID5071 - 0xd5, 0x77, 0x86, 0xa4, 0x35, 0xf3, 0x51, 0xdb, 0xa2, // IID5072 - 0xd5, 0x77, 0x86, 0xac, 0x7e, 0x52, 0xf1, 0x98, 0x3f, // IID5073 - 0xd5, 0x55, 0x86, 0xb4, 0x8f, 0x7f, 0xf6, 0xeb, 0xf5, // IID5074 - 0xd5, 0x44, 0x86, 0xb9, 0x94, 0x95, 0xc6, 0xde, // IID5075 -#endif // _LP64 - 0x66, 0x87, 0x8c, 0x5a, 0x8a, 0x4d, 0x4a, 0xb8, // IID5076 -#ifdef _LP64 - 0x66, 0x87, 0x93, 0x93, 0x29, 0xe9, 0x95, // IID5077 - 0x66, 0x43, 0x87, 0x9c, 0x48, 0x35, 0xfb, 0x64, 0xe0, // IID5078 - 0x66, 0x45, 0x87, 0x81, 0x6a, 0x90, 0x5c, 0x62, // IID5079 - 0x66, 0x47, 0x87, 0x8c, 0x1a, 0xeb, 0xb0, 0xf0, 0x00, // IID5080 - 0x66, 0x47, 0x87, 0x94, 0xa3, 0xb7, 0x41, 0x9b, 0xc9, // IID5081 - 0x66, 0x47, 0x87, 0x9c, 0x6c, 0xf8, 0xde, 0xcf, 0x47, // IID5082 - 0x66, 0x47, 0x87, 0xa4, 0xf5, 0xb5, 0x90, 0x2d, 0x09, // IID5083 - 0x66, 0x47, 0x87, 0xac, 0xfe, 0x31, 0xa2, 0x0f, 0x37, // IID5084 - 0x66, 0xd5, 0x25, 0x87, 0xb4, 0x07, 0x47, 0x04, 0xa9, 0x32, // IID5085 - 0x66, 0xd5, 0x34, 0x87, 0xbc, 0x48, 0x5a, 0xac, 0x9f, 0x58, // IID5086 - 0x66, 0xd5, 0x70, 0x87, 0x84, 0x91, 0xc6, 0xdb, 0xfb, 0x60, // IID5087 - 0x66, 0xd5, 0x70, 0x87, 0x8c, 0x9a, 0x79, 0x6b, 0x8b, 0xe1, // IID5088 - 0x66, 0xd5, 0x50, 0x87, 0x93, 0xb0, 0x0a, 0xd9, 0xf4, // IID5089 - 0x66, 0xd5, 0x70, 0x87, 0x9c, 0xac, 0x3d, 0x2d, 0xe8, 0x98, // IID5090 - 0x66, 0xd5, 0x70, 0x87, 0xa4, 0xf5, 0xcb, 0x15, 0x5c, 0x8d, // IID5091 - 0x66, 0xd5, 0x50, 0x87, 0xae, 0x5a, 0x3e, 0xbe, 0xb4, // IID5092 - 0x66, 0xd5, 0x50, 0x87, 0xb7, 0x76, 0x4b, 0xce, 0x2b, // IID5093 - 0x66, 0xd5, 0x73, 0x87, 0xbc, 0x88, 0xed, 0xf4, 0x85, 0x58, // IID5094 - 0x66, 0xd5, 0x55, 0x87, 0x81, 0x55, 0x33, 0xec, 0xb3, // IID5095 - 0x66, 0xd5, 0x77, 0x87, 0x8c, 0x9a, 0xc0, 0x98, 0xe4, 0xc6, // IID5096 - 0x66, 0xd5, 0x55, 0x87, 0x93, 0xcb, 0x59, 0xbe, 0x85, // IID5097 - 0x66, 0xd5, 0x77, 0x87, 0x9c, 0x2c, 0x0c, 0xd0, 0x45, 0xf9, // IID5098 - 0x66, 0xd5, 0x77, 0x87, 0xa4, 0x35, 0xbf, 0xb4, 0xd1, 0x2d, // IID5099 - 0x66, 0xd5, 0x77, 0x87, 0xac, 0xfe, 0x9a, 0xc8, 0x33, 0x69, // IID5100 - 0x66, 0xd5, 0x55, 0x87, 0xb7, 0xb4, 0xad, 0x94, 0xca, // IID5101 - 0x66, 0xd5, 0x44, 0x87, 0xbc, 0x11, 0x19, 0x7c, 0xd8, 0xc9, // IID5102 -#endif // _LP64 - 0x87, 0x8a, 0x1e, 0xe3, 0xbd, 0x1c, // IID5103 -#ifdef _LP64 - 0x42, 0x87, 0x94, 0x83, 0x75, 0x06, 0x50, 0xea, // IID5104 - 0x43, 0x87, 0x9c, 0x88, 0x2c, 0x0c, 0x32, 0xc8, // IID5105 - 0x47, 0x87, 0x84, 0x11, 0x23, 0x3e, 0x18, 0x9a, // IID5106 - 0x47, 0x87, 0x8c, 0xda, 0xae, 0x7b, 0xc1, 0x74, // IID5107 - 0x47, 0x87, 0x94, 0xa3, 0xf0, 0x2e, 0x15, 0x66, // IID5108 - 0x47, 0x87, 0x9c, 0xac, 0x00, 0x81, 0x62, 0x58, // IID5109 - 0x47, 0x87, 0xa4, 0xb5, 0x87, 0xad, 0x5f, 0xfa, // IID5110 - 0x47, 0x87, 0xac, 0x7e, 0xcb, 0x64, 0xb8, 0xbb, // IID5111 - 0xd5, 0x25, 0x87, 0xb4, 0x07, 0xbd, 0x53, 0xb5, 0x83, // IID5112 - 0xd5, 0x14, 0x87, 0xb8, 0x36, 0xeb, 0xc9, 0xb4, // IID5113 - 0xd5, 0x70, 0x87, 0x84, 0x11, 0x9c, 0x60, 0x63, 0xca, // IID5114 - 0xd5, 0x70, 0x87, 0x8c, 0x5a, 0xc4, 0xe6, 0x2f, 0xb2, // IID5115 - 0xd5, 0x70, 0x87, 0x94, 0x23, 0x44, 0xaa, 0x6f, 0xe8, // IID5116 - 0xd5, 0x70, 0x87, 0x9c, 0x6c, 0xa2, 0x3c, 0x25, 0xcc, // IID5117 - 0xd5, 0x70, 0x87, 0xa4, 0x35, 0xc2, 0xed, 0xc2, 0x72, // IID5118 - 0xd5, 0x70, 0x87, 0xac, 0xbe, 0x10, 0xf7, 0x23, 0x3e, // IID5119 - 0xd5, 0x50, 0x87, 0xb7, 0x02, 0x05, 0x08, 0xa7, // IID5120 - 0xd5, 0x51, 0x87, 0xb8, 0x70, 0x6f, 0x9d, 0x00, // IID5121 - 0xd5, 0x77, 0x87, 0x84, 0xd1, 0x21, 0x72, 0x99, 0x40, // IID5122 - 0xd5, 0x77, 0x87, 0x8c, 0x9a, 0x79, 0xb4, 0x2b, 0xdc, // IID5123 - 0xd5, 0x77, 0x87, 0x94, 0x23, 0x94, 0x8c, 0x40, 0x9e, // IID5124 - 0xd5, 0x55, 0x87, 0x9c, 0x24, 0x86, 0xc7, 0x07, 0xbf, // IID5125 - 0xd5, 0x77, 0x87, 0xa4, 0xf5, 0xbf, 0xb5, 0xe8, 0xee, // IID5126 - 0xd5, 0x77, 0x87, 0xac, 0xfe, 0xed, 0x56, 0x5b, 0x49, // IID5127 - 0xd5, 0x55, 0x87, 0xb7, 0x9b, 0x55, 0x12, 0xe4, // IID5128 - 0xd5, 0x44, 0x87, 0xbc, 0x11, 0xc6, 0x13, 0x94, 0x94, // IID5129 -#endif // _LP64 - 0x85, 0x8a, 0xa0, 0x86, 0x3e, 0xe1, // IID5130 -#ifdef _LP64 - 0x42, 0x85, 0x94, 0x03, 0x7a, 0x17, 0x84, 0xbc, // IID5131 - 0x43, 0x85, 0x9c, 0x08, 0x90, 0xf7, 0xdd, 0xfd, // IID5132 - 0x47, 0x85, 0x84, 0xd1, 0x8a, 0xc0, 0xc2, 0x31, // IID5133 - 0x47, 0x85, 0x8c, 0xda, 0x3b, 0xaf, 0xc3, 0xd6, // IID5134 - 0x45, 0x85, 0x93, 0x3d, 0xa3, 0x77, 0x13, // IID5135 - 0x47, 0x85, 0x9c, 0xac, 0x6d, 0xb5, 0x88, 0xde, // IID5136 - 0x47, 0x85, 0xa4, 0x35, 0x38, 0x4d, 0xad, 0x4b, // IID5137 - 0x47, 0x85, 0xac, 0x7e, 0xba, 0x1c, 0x68, 0x73, // IID5138 - 0xd5, 0x25, 0x85, 0xb4, 0x87, 0x0d, 0x72, 0x3b, 0x21, // IID5139 - 0xd5, 0x14, 0x85, 0xb8, 0xca, 0x56, 0x75, 0xdc, // IID5140 - 0xd5, 0x70, 0x85, 0x84, 0x11, 0x1f, 0x1d, 0xb1, 0xcd, // IID5141 - 0xd5, 0x70, 0x85, 0x8c, 0x5a, 0xd4, 0x80, 0xab, 0xdb, // IID5142 - 0xd5, 0x70, 0x85, 0x94, 0x63, 0xf0, 0xf6, 0xdc, 0x6b, // IID5143 - 0xd5, 0x70, 0x85, 0x9c, 0xac, 0xea, 0xcf, 0x93, 0x19, // IID5144 - 0xd5, 0x70, 0x85, 0xa4, 0xb5, 0xe9, 0xfb, 0x3e, 0x57, // IID5145 - 0xd5, 0x70, 0x85, 0xac, 0x7e, 0xfc, 0x5a, 0x56, 0xa7, // IID5146 - 0xd5, 0x72, 0x85, 0xb4, 0xc7, 0xd1, 0xda, 0xc9, 0xed, // IID5147 - 0xd5, 0x73, 0x85, 0xbc, 0x88, 0x1a, 0xd4, 0x43, 0xf9, // IID5148 - 0xd5, 0x55, 0x85, 0x81, 0x41, 0x1b, 0xcd, 0xae, // IID5149 - 0xd5, 0x77, 0x85, 0x8c, 0xda, 0x11, 0xe2, 0x82, 0xf0, // IID5150 - 0xd5, 0x77, 0x85, 0x94, 0x63, 0x49, 0xf5, 0x22, 0x33, // IID5151 - 0xd5, 0x77, 0x85, 0x9c, 0x6c, 0x2a, 0x74, 0xc4, 0x8d, // IID5152 - 0xd5, 0x77, 0x85, 0xa4, 0xf5, 0x7c, 0xcc, 0xe6, 0x4b, // IID5153 - 0xd5, 0x77, 0x85, 0xac, 0x3e, 0x15, 0x84, 0x64, 0x06, // IID5154 - 0xd5, 0x55, 0x85, 0xb4, 0x0f, 0x47, 0x1c, 0xa3, 0xa1, // IID5155 - 0xd5, 0x44, 0x85, 0xb9, 0x14, 0x1c, 0x8a, 0x2f, // IID5156 -#endif // _LP64 - 0x80, 0xc1, 0x01, // IID5157 - 0x80, 0xc1, 0x04, // IID5158 - 0x80, 0xc1, 0x10, // IID5159 - 0x80, 0xc1, 0x40, // IID5160 - 0x80, 0xc2, 0x01, // IID5161 - 0x80, 0xc2, 0x04, // IID5162 - 0x80, 0xc2, 0x10, // IID5163 - 0x80, 0xc2, 0x40, // IID5164 - 0x80, 0xc3, 0x01, // IID5165 - 0x80, 0xc3, 0x04, // IID5166 - 0x80, 0xc3, 0x10, // IID5167 - 0x80, 0xc3, 0x40, // IID5168 -#ifdef _LP64 - 0x41, 0x80, 0xc0, 0x01, // IID5169 - 0x41, 0x80, 0xc0, 0x04, // IID5170 - 0x41, 0x80, 0xc0, 0x10, // IID5171 - 0x41, 0x80, 0xc0, 0x40, // IID5172 - 0x41, 0x80, 0xc1, 0x01, // IID5173 - 0x41, 0x80, 0xc1, 0x04, // IID5174 - 0x41, 0x80, 0xc1, 0x10, // IID5175 - 0x41, 0x80, 0xc1, 0x40, // IID5176 - 0x41, 0x80, 0xc2, 0x01, // IID5177 - 0x41, 0x80, 0xc2, 0x04, // IID5178 - 0x41, 0x80, 0xc2, 0x10, // IID5179 - 0x41, 0x80, 0xc2, 0x40, // IID5180 - 0x41, 0x80, 0xc3, 0x01, // IID5181 - 0x41, 0x80, 0xc3, 0x04, // IID5182 - 0x41, 0x80, 0xc3, 0x10, // IID5183 - 0x41, 0x80, 0xc3, 0x40, // IID5184 - 0x41, 0x80, 0xc4, 0x01, // IID5185 - 0x41, 0x80, 0xc4, 0x04, // IID5186 - 0x41, 0x80, 0xc4, 0x10, // IID5187 - 0x41, 0x80, 0xc4, 0x40, // IID5188 - 0x41, 0x80, 0xc5, 0x01, // IID5189 - 0x41, 0x80, 0xc5, 0x04, // IID5190 - 0x41, 0x80, 0xc5, 0x10, // IID5191 - 0x41, 0x80, 0xc5, 0x40, // IID5192 - 0x41, 0x80, 0xc6, 0x01, // IID5193 - 0x41, 0x80, 0xc6, 0x04, // IID5194 - 0x41, 0x80, 0xc6, 0x10, // IID5195 - 0x41, 0x80, 0xc6, 0x40, // IID5196 - 0x41, 0x80, 0xc7, 0x01, // IID5197 - 0x41, 0x80, 0xc7, 0x04, // IID5198 - 0x41, 0x80, 0xc7, 0x10, // IID5199 - 0x41, 0x80, 0xc7, 0x40, // IID5200 - 0xd5, 0x10, 0x80, 0xc0, 0x01, // IID5201 - 0xd5, 0x10, 0x80, 0xc0, 0x04, // IID5202 - 0xd5, 0x10, 0x80, 0xc0, 0x10, // IID5203 - 0xd5, 0x10, 0x80, 0xc0, 0x40, // IID5204 - 0xd5, 0x10, 0x80, 0xc1, 0x01, // IID5205 - 0xd5, 0x10, 0x80, 0xc1, 0x04, // IID5206 - 0xd5, 0x10, 0x80, 0xc1, 0x10, // IID5207 - 0xd5, 0x10, 0x80, 0xc1, 0x40, // IID5208 - 0xd5, 0x10, 0x80, 0xc2, 0x01, // IID5209 - 0xd5, 0x10, 0x80, 0xc2, 0x04, // IID5210 - 0xd5, 0x10, 0x80, 0xc2, 0x10, // IID5211 - 0xd5, 0x10, 0x80, 0xc2, 0x40, // IID5212 - 0xd5, 0x10, 0x80, 0xc3, 0x01, // IID5213 - 0xd5, 0x10, 0x80, 0xc3, 0x04, // IID5214 - 0xd5, 0x10, 0x80, 0xc3, 0x10, // IID5215 - 0xd5, 0x10, 0x80, 0xc3, 0x40, // IID5216 - 0xd5, 0x10, 0x80, 0xc4, 0x01, // IID5217 - 0xd5, 0x10, 0x80, 0xc4, 0x04, // IID5218 - 0xd5, 0x10, 0x80, 0xc4, 0x10, // IID5219 - 0xd5, 0x10, 0x80, 0xc4, 0x40, // IID5220 - 0xd5, 0x10, 0x80, 0xc5, 0x01, // IID5221 - 0xd5, 0x10, 0x80, 0xc5, 0x04, // IID5222 - 0xd5, 0x10, 0x80, 0xc5, 0x10, // IID5223 - 0xd5, 0x10, 0x80, 0xc5, 0x40, // IID5224 - 0xd5, 0x10, 0x80, 0xc6, 0x01, // IID5225 - 0xd5, 0x10, 0x80, 0xc6, 0x04, // IID5226 - 0xd5, 0x10, 0x80, 0xc6, 0x10, // IID5227 - 0xd5, 0x10, 0x80, 0xc6, 0x40, // IID5228 - 0xd5, 0x10, 0x80, 0xc7, 0x01, // IID5229 - 0xd5, 0x10, 0x80, 0xc7, 0x04, // IID5230 - 0xd5, 0x10, 0x80, 0xc7, 0x10, // IID5231 - 0xd5, 0x10, 0x80, 0xc7, 0x40, // IID5232 - 0xd5, 0x11, 0x80, 0xc0, 0x01, // IID5233 - 0xd5, 0x11, 0x80, 0xc0, 0x04, // IID5234 - 0xd5, 0x11, 0x80, 0xc0, 0x10, // IID5235 - 0xd5, 0x11, 0x80, 0xc0, 0x40, // IID5236 - 0xd5, 0x11, 0x80, 0xc1, 0x01, // IID5237 - 0xd5, 0x11, 0x80, 0xc1, 0x04, // IID5238 - 0xd5, 0x11, 0x80, 0xc1, 0x10, // IID5239 - 0xd5, 0x11, 0x80, 0xc1, 0x40, // IID5240 - 0xd5, 0x11, 0x80, 0xc2, 0x01, // IID5241 - 0xd5, 0x11, 0x80, 0xc2, 0x04, // IID5242 - 0xd5, 0x11, 0x80, 0xc2, 0x10, // IID5243 - 0xd5, 0x11, 0x80, 0xc2, 0x40, // IID5244 - 0xd5, 0x11, 0x80, 0xc3, 0x01, // IID5245 - 0xd5, 0x11, 0x80, 0xc3, 0x04, // IID5246 - 0xd5, 0x11, 0x80, 0xc3, 0x10, // IID5247 - 0xd5, 0x11, 0x80, 0xc3, 0x40, // IID5248 - 0xd5, 0x11, 0x80, 0xc4, 0x01, // IID5249 - 0xd5, 0x11, 0x80, 0xc4, 0x04, // IID5250 - 0xd5, 0x11, 0x80, 0xc4, 0x10, // IID5251 - 0xd5, 0x11, 0x80, 0xc4, 0x40, // IID5252 - 0xd5, 0x11, 0x80, 0xc5, 0x01, // IID5253 - 0xd5, 0x11, 0x80, 0xc5, 0x04, // IID5254 - 0xd5, 0x11, 0x80, 0xc5, 0x10, // IID5255 - 0xd5, 0x11, 0x80, 0xc5, 0x40, // IID5256 - 0xd5, 0x11, 0x80, 0xc6, 0x01, // IID5257 - 0xd5, 0x11, 0x80, 0xc6, 0x04, // IID5258 - 0xd5, 0x11, 0x80, 0xc6, 0x10, // IID5259 - 0xd5, 0x11, 0x80, 0xc6, 0x40, // IID5260 - 0xd5, 0x11, 0x80, 0xc7, 0x01, // IID5261 - 0xd5, 0x11, 0x80, 0xc7, 0x04, // IID5262 - 0xd5, 0x11, 0x80, 0xc7, 0x10, // IID5263 - 0xd5, 0x11, 0x80, 0xc7, 0x40, // IID5264 -#endif // _LP64 - 0x83, 0xc1, 0x01, // IID5265 - 0x83, 0xc1, 0x10, // IID5266 - 0x81, 0xc1, 0x00, 0x01, 0x00, 0x00, // IID5267 - 0x81, 0xc1, 0x00, 0x10, 0x00, 0x00, // IID5268 - 0x81, 0xc1, 0x00, 0x00, 0x01, 0x00, // IID5269 - 0x81, 0xc1, 0x00, 0x00, 0x10, 0x00, // IID5270 - 0x81, 0xc1, 0x00, 0x00, 0x00, 0x01, // IID5271 - 0x81, 0xc1, 0x00, 0x00, 0x00, 0x10, // IID5272 - 0x83, 0xc2, 0x01, // IID5273 - 0x83, 0xc2, 0x10, // IID5274 - 0x81, 0xc2, 0x00, 0x01, 0x00, 0x00, // IID5275 - 0x81, 0xc2, 0x00, 0x10, 0x00, 0x00, // IID5276 - 0x81, 0xc2, 0x00, 0x00, 0x01, 0x00, // IID5277 - 0x81, 0xc2, 0x00, 0x00, 0x10, 0x00, // IID5278 - 0x81, 0xc2, 0x00, 0x00, 0x00, 0x01, // IID5279 - 0x81, 0xc2, 0x00, 0x00, 0x00, 0x10, // IID5280 - 0x83, 0xc3, 0x01, // IID5281 - 0x83, 0xc3, 0x10, // IID5282 - 0x81, 0xc3, 0x00, 0x01, 0x00, 0x00, // IID5283 - 0x81, 0xc3, 0x00, 0x10, 0x00, 0x00, // IID5284 - 0x81, 0xc3, 0x00, 0x00, 0x01, 0x00, // IID5285 - 0x81, 0xc3, 0x00, 0x00, 0x10, 0x00, // IID5286 - 0x81, 0xc3, 0x00, 0x00, 0x00, 0x01, // IID5287 - 0x81, 0xc3, 0x00, 0x00, 0x00, 0x10, // IID5288 -#ifdef _LP64 - 0x41, 0x83, 0xc0, 0x01, // IID5289 - 0x41, 0x83, 0xc0, 0x10, // IID5290 - 0x41, 0x81, 0xc0, 0x00, 0x01, 0x00, 0x00, // IID5291 - 0x41, 0x81, 0xc0, 0x00, 0x10, 0x00, 0x00, // IID5292 - 0x41, 0x81, 0xc0, 0x00, 0x00, 0x01, 0x00, // IID5293 - 0x41, 0x81, 0xc0, 0x00, 0x00, 0x10, 0x00, // IID5294 - 0x41, 0x81, 0xc0, 0x00, 0x00, 0x00, 0x01, // IID5295 - 0x41, 0x81, 0xc0, 0x00, 0x00, 0x00, 0x10, // IID5296 - 0x41, 0x83, 0xc1, 0x01, // IID5297 - 0x41, 0x83, 0xc1, 0x10, // IID5298 - 0x41, 0x81, 0xc1, 0x00, 0x01, 0x00, 0x00, // IID5299 - 0x41, 0x81, 0xc1, 0x00, 0x10, 0x00, 0x00, // IID5300 - 0x41, 0x81, 0xc1, 0x00, 0x00, 0x01, 0x00, // IID5301 - 0x41, 0x81, 0xc1, 0x00, 0x00, 0x10, 0x00, // IID5302 - 0x41, 0x81, 0xc1, 0x00, 0x00, 0x00, 0x01, // IID5303 - 0x41, 0x81, 0xc1, 0x00, 0x00, 0x00, 0x10, // IID5304 - 0x41, 0x83, 0xc2, 0x01, // IID5305 - 0x41, 0x83, 0xc2, 0x10, // IID5306 - 0x41, 0x81, 0xc2, 0x00, 0x01, 0x00, 0x00, // IID5307 - 0x41, 0x81, 0xc2, 0x00, 0x10, 0x00, 0x00, // IID5308 - 0x41, 0x81, 0xc2, 0x00, 0x00, 0x01, 0x00, // IID5309 - 0x41, 0x81, 0xc2, 0x00, 0x00, 0x10, 0x00, // IID5310 - 0x41, 0x81, 0xc2, 0x00, 0x00, 0x00, 0x01, // IID5311 - 0x41, 0x81, 0xc2, 0x00, 0x00, 0x00, 0x10, // IID5312 - 0x41, 0x83, 0xc3, 0x01, // IID5313 - 0x41, 0x83, 0xc3, 0x10, // IID5314 - 0x41, 0x81, 0xc3, 0x00, 0x01, 0x00, 0x00, // IID5315 - 0x41, 0x81, 0xc3, 0x00, 0x10, 0x00, 0x00, // IID5316 - 0x41, 0x81, 0xc3, 0x00, 0x00, 0x01, 0x00, // IID5317 - 0x41, 0x81, 0xc3, 0x00, 0x00, 0x10, 0x00, // IID5318 - 0x41, 0x81, 0xc3, 0x00, 0x00, 0x00, 0x01, // IID5319 - 0x41, 0x81, 0xc3, 0x00, 0x00, 0x00, 0x10, // IID5320 - 0x41, 0x83, 0xc4, 0x01, // IID5321 - 0x41, 0x83, 0xc4, 0x10, // IID5322 - 0x41, 0x81, 0xc4, 0x00, 0x01, 0x00, 0x00, // IID5323 - 0x41, 0x81, 0xc4, 0x00, 0x10, 0x00, 0x00, // IID5324 - 0x41, 0x81, 0xc4, 0x00, 0x00, 0x01, 0x00, // IID5325 - 0x41, 0x81, 0xc4, 0x00, 0x00, 0x10, 0x00, // IID5326 - 0x41, 0x81, 0xc4, 0x00, 0x00, 0x00, 0x01, // IID5327 - 0x41, 0x81, 0xc4, 0x00, 0x00, 0x00, 0x10, // IID5328 - 0x41, 0x83, 0xc5, 0x01, // IID5329 - 0x41, 0x83, 0xc5, 0x10, // IID5330 - 0x41, 0x81, 0xc5, 0x00, 0x01, 0x00, 0x00, // IID5331 - 0x41, 0x81, 0xc5, 0x00, 0x10, 0x00, 0x00, // IID5332 - 0x41, 0x81, 0xc5, 0x00, 0x00, 0x01, 0x00, // IID5333 - 0x41, 0x81, 0xc5, 0x00, 0x00, 0x10, 0x00, // IID5334 - 0x41, 0x81, 0xc5, 0x00, 0x00, 0x00, 0x01, // IID5335 - 0x41, 0x81, 0xc5, 0x00, 0x00, 0x00, 0x10, // IID5336 - 0x41, 0x83, 0xc6, 0x01, // IID5337 - 0x41, 0x83, 0xc6, 0x10, // IID5338 - 0x41, 0x81, 0xc6, 0x00, 0x01, 0x00, 0x00, // IID5339 - 0x41, 0x81, 0xc6, 0x00, 0x10, 0x00, 0x00, // IID5340 - 0x41, 0x81, 0xc6, 0x00, 0x00, 0x01, 0x00, // IID5341 - 0x41, 0x81, 0xc6, 0x00, 0x00, 0x10, 0x00, // IID5342 - 0x41, 0x81, 0xc6, 0x00, 0x00, 0x00, 0x01, // IID5343 - 0x41, 0x81, 0xc6, 0x00, 0x00, 0x00, 0x10, // IID5344 - 0x41, 0x83, 0xc7, 0x01, // IID5345 - 0x41, 0x83, 0xc7, 0x10, // IID5346 - 0x41, 0x81, 0xc7, 0x00, 0x01, 0x00, 0x00, // IID5347 - 0x41, 0x81, 0xc7, 0x00, 0x10, 0x00, 0x00, // IID5348 - 0x41, 0x81, 0xc7, 0x00, 0x00, 0x01, 0x00, // IID5349 - 0x41, 0x81, 0xc7, 0x00, 0x00, 0x10, 0x00, // IID5350 - 0x41, 0x81, 0xc7, 0x00, 0x00, 0x00, 0x01, // IID5351 - 0x41, 0x81, 0xc7, 0x00, 0x00, 0x00, 0x10, // IID5352 - 0xd5, 0x10, 0x83, 0xc0, 0x01, // IID5353 - 0xd5, 0x10, 0x83, 0xc0, 0x10, // IID5354 - 0xd5, 0x10, 0x81, 0xc0, 0x00, 0x01, 0x00, 0x00, // IID5355 - 0xd5, 0x10, 0x81, 0xc0, 0x00, 0x10, 0x00, 0x00, // IID5356 - 0xd5, 0x10, 0x81, 0xc0, 0x00, 0x00, 0x01, 0x00, // IID5357 - 0xd5, 0x10, 0x81, 0xc0, 0x00, 0x00, 0x10, 0x00, // IID5358 - 0xd5, 0x10, 0x81, 0xc0, 0x00, 0x00, 0x00, 0x01, // IID5359 - 0xd5, 0x10, 0x81, 0xc0, 0x00, 0x00, 0x00, 0x10, // IID5360 - 0xd5, 0x10, 0x83, 0xc1, 0x01, // IID5361 - 0xd5, 0x10, 0x83, 0xc1, 0x10, // IID5362 - 0xd5, 0x10, 0x81, 0xc1, 0x00, 0x01, 0x00, 0x00, // IID5363 - 0xd5, 0x10, 0x81, 0xc1, 0x00, 0x10, 0x00, 0x00, // IID5364 - 0xd5, 0x10, 0x81, 0xc1, 0x00, 0x00, 0x01, 0x00, // IID5365 - 0xd5, 0x10, 0x81, 0xc1, 0x00, 0x00, 0x10, 0x00, // IID5366 - 0xd5, 0x10, 0x81, 0xc1, 0x00, 0x00, 0x00, 0x01, // IID5367 - 0xd5, 0x10, 0x81, 0xc1, 0x00, 0x00, 0x00, 0x10, // IID5368 - 0xd5, 0x10, 0x83, 0xc2, 0x01, // IID5369 - 0xd5, 0x10, 0x83, 0xc2, 0x10, // IID5370 - 0xd5, 0x10, 0x81, 0xc2, 0x00, 0x01, 0x00, 0x00, // IID5371 - 0xd5, 0x10, 0x81, 0xc2, 0x00, 0x10, 0x00, 0x00, // IID5372 - 0xd5, 0x10, 0x81, 0xc2, 0x00, 0x00, 0x01, 0x00, // IID5373 - 0xd5, 0x10, 0x81, 0xc2, 0x00, 0x00, 0x10, 0x00, // IID5374 - 0xd5, 0x10, 0x81, 0xc2, 0x00, 0x00, 0x00, 0x01, // IID5375 - 0xd5, 0x10, 0x81, 0xc2, 0x00, 0x00, 0x00, 0x10, // IID5376 - 0xd5, 0x10, 0x83, 0xc3, 0x01, // IID5377 - 0xd5, 0x10, 0x83, 0xc3, 0x10, // IID5378 - 0xd5, 0x10, 0x81, 0xc3, 0x00, 0x01, 0x00, 0x00, // IID5379 - 0xd5, 0x10, 0x81, 0xc3, 0x00, 0x10, 0x00, 0x00, // IID5380 - 0xd5, 0x10, 0x81, 0xc3, 0x00, 0x00, 0x01, 0x00, // IID5381 - 0xd5, 0x10, 0x81, 0xc3, 0x00, 0x00, 0x10, 0x00, // IID5382 - 0xd5, 0x10, 0x81, 0xc3, 0x00, 0x00, 0x00, 0x01, // IID5383 - 0xd5, 0x10, 0x81, 0xc3, 0x00, 0x00, 0x00, 0x10, // IID5384 - 0xd5, 0x10, 0x83, 0xc4, 0x01, // IID5385 - 0xd5, 0x10, 0x83, 0xc4, 0x10, // IID5386 - 0xd5, 0x10, 0x81, 0xc4, 0x00, 0x01, 0x00, 0x00, // IID5387 - 0xd5, 0x10, 0x81, 0xc4, 0x00, 0x10, 0x00, 0x00, // IID5388 - 0xd5, 0x10, 0x81, 0xc4, 0x00, 0x00, 0x01, 0x00, // IID5389 - 0xd5, 0x10, 0x81, 0xc4, 0x00, 0x00, 0x10, 0x00, // IID5390 - 0xd5, 0x10, 0x81, 0xc4, 0x00, 0x00, 0x00, 0x01, // IID5391 - 0xd5, 0x10, 0x81, 0xc4, 0x00, 0x00, 0x00, 0x10, // IID5392 - 0xd5, 0x10, 0x83, 0xc5, 0x01, // IID5393 - 0xd5, 0x10, 0x83, 0xc5, 0x10, // IID5394 - 0xd5, 0x10, 0x81, 0xc5, 0x00, 0x01, 0x00, 0x00, // IID5395 - 0xd5, 0x10, 0x81, 0xc5, 0x00, 0x10, 0x00, 0x00, // IID5396 - 0xd5, 0x10, 0x81, 0xc5, 0x00, 0x00, 0x01, 0x00, // IID5397 - 0xd5, 0x10, 0x81, 0xc5, 0x00, 0x00, 0x10, 0x00, // IID5398 - 0xd5, 0x10, 0x81, 0xc5, 0x00, 0x00, 0x00, 0x01, // IID5399 - 0xd5, 0x10, 0x81, 0xc5, 0x00, 0x00, 0x00, 0x10, // IID5400 - 0xd5, 0x10, 0x83, 0xc6, 0x01, // IID5401 - 0xd5, 0x10, 0x83, 0xc6, 0x10, // IID5402 - 0xd5, 0x10, 0x81, 0xc6, 0x00, 0x01, 0x00, 0x00, // IID5403 - 0xd5, 0x10, 0x81, 0xc6, 0x00, 0x10, 0x00, 0x00, // IID5404 - 0xd5, 0x10, 0x81, 0xc6, 0x00, 0x00, 0x01, 0x00, // IID5405 - 0xd5, 0x10, 0x81, 0xc6, 0x00, 0x00, 0x10, 0x00, // IID5406 - 0xd5, 0x10, 0x81, 0xc6, 0x00, 0x00, 0x00, 0x01, // IID5407 - 0xd5, 0x10, 0x81, 0xc6, 0x00, 0x00, 0x00, 0x10, // IID5408 - 0xd5, 0x10, 0x83, 0xc7, 0x01, // IID5409 - 0xd5, 0x10, 0x83, 0xc7, 0x10, // IID5410 - 0xd5, 0x10, 0x81, 0xc7, 0x00, 0x01, 0x00, 0x00, // IID5411 - 0xd5, 0x10, 0x81, 0xc7, 0x00, 0x10, 0x00, 0x00, // IID5412 - 0xd5, 0x10, 0x81, 0xc7, 0x00, 0x00, 0x01, 0x00, // IID5413 - 0xd5, 0x10, 0x81, 0xc7, 0x00, 0x00, 0x10, 0x00, // IID5414 - 0xd5, 0x10, 0x81, 0xc7, 0x00, 0x00, 0x00, 0x01, // IID5415 - 0xd5, 0x10, 0x81, 0xc7, 0x00, 0x00, 0x00, 0x10, // IID5416 - 0xd5, 0x11, 0x83, 0xc0, 0x01, // IID5417 - 0xd5, 0x11, 0x83, 0xc0, 0x10, // IID5418 - 0xd5, 0x11, 0x81, 0xc0, 0x00, 0x01, 0x00, 0x00, // IID5419 - 0xd5, 0x11, 0x81, 0xc0, 0x00, 0x10, 0x00, 0x00, // IID5420 - 0xd5, 0x11, 0x81, 0xc0, 0x00, 0x00, 0x01, 0x00, // IID5421 - 0xd5, 0x11, 0x81, 0xc0, 0x00, 0x00, 0x10, 0x00, // IID5422 - 0xd5, 0x11, 0x81, 0xc0, 0x00, 0x00, 0x00, 0x01, // IID5423 - 0xd5, 0x11, 0x81, 0xc0, 0x00, 0x00, 0x00, 0x10, // IID5424 - 0xd5, 0x11, 0x83, 0xc1, 0x01, // IID5425 - 0xd5, 0x11, 0x83, 0xc1, 0x10, // IID5426 - 0xd5, 0x11, 0x81, 0xc1, 0x00, 0x01, 0x00, 0x00, // IID5427 - 0xd5, 0x11, 0x81, 0xc1, 0x00, 0x10, 0x00, 0x00, // IID5428 - 0xd5, 0x11, 0x81, 0xc1, 0x00, 0x00, 0x01, 0x00, // IID5429 - 0xd5, 0x11, 0x81, 0xc1, 0x00, 0x00, 0x10, 0x00, // IID5430 - 0xd5, 0x11, 0x81, 0xc1, 0x00, 0x00, 0x00, 0x01, // IID5431 - 0xd5, 0x11, 0x81, 0xc1, 0x00, 0x00, 0x00, 0x10, // IID5432 - 0xd5, 0x11, 0x83, 0xc2, 0x01, // IID5433 - 0xd5, 0x11, 0x83, 0xc2, 0x10, // IID5434 - 0xd5, 0x11, 0x81, 0xc2, 0x00, 0x01, 0x00, 0x00, // IID5435 - 0xd5, 0x11, 0x81, 0xc2, 0x00, 0x10, 0x00, 0x00, // IID5436 - 0xd5, 0x11, 0x81, 0xc2, 0x00, 0x00, 0x01, 0x00, // IID5437 - 0xd5, 0x11, 0x81, 0xc2, 0x00, 0x00, 0x10, 0x00, // IID5438 - 0xd5, 0x11, 0x81, 0xc2, 0x00, 0x00, 0x00, 0x01, // IID5439 - 0xd5, 0x11, 0x81, 0xc2, 0x00, 0x00, 0x00, 0x10, // IID5440 - 0xd5, 0x11, 0x83, 0xc3, 0x01, // IID5441 - 0xd5, 0x11, 0x83, 0xc3, 0x10, // IID5442 - 0xd5, 0x11, 0x81, 0xc3, 0x00, 0x01, 0x00, 0x00, // IID5443 - 0xd5, 0x11, 0x81, 0xc3, 0x00, 0x10, 0x00, 0x00, // IID5444 - 0xd5, 0x11, 0x81, 0xc3, 0x00, 0x00, 0x01, 0x00, // IID5445 - 0xd5, 0x11, 0x81, 0xc3, 0x00, 0x00, 0x10, 0x00, // IID5446 - 0xd5, 0x11, 0x81, 0xc3, 0x00, 0x00, 0x00, 0x01, // IID5447 - 0xd5, 0x11, 0x81, 0xc3, 0x00, 0x00, 0x00, 0x10, // IID5448 - 0xd5, 0x11, 0x83, 0xc4, 0x01, // IID5449 - 0xd5, 0x11, 0x83, 0xc4, 0x10, // IID5450 - 0xd5, 0x11, 0x81, 0xc4, 0x00, 0x01, 0x00, 0x00, // IID5451 - 0xd5, 0x11, 0x81, 0xc4, 0x00, 0x10, 0x00, 0x00, // IID5452 - 0xd5, 0x11, 0x81, 0xc4, 0x00, 0x00, 0x01, 0x00, // IID5453 - 0xd5, 0x11, 0x81, 0xc4, 0x00, 0x00, 0x10, 0x00, // IID5454 - 0xd5, 0x11, 0x81, 0xc4, 0x00, 0x00, 0x00, 0x01, // IID5455 - 0xd5, 0x11, 0x81, 0xc4, 0x00, 0x00, 0x00, 0x10, // IID5456 - 0xd5, 0x11, 0x83, 0xc5, 0x01, // IID5457 - 0xd5, 0x11, 0x83, 0xc5, 0x10, // IID5458 - 0xd5, 0x11, 0x81, 0xc5, 0x00, 0x01, 0x00, 0x00, // IID5459 - 0xd5, 0x11, 0x81, 0xc5, 0x00, 0x10, 0x00, 0x00, // IID5460 - 0xd5, 0x11, 0x81, 0xc5, 0x00, 0x00, 0x01, 0x00, // IID5461 - 0xd5, 0x11, 0x81, 0xc5, 0x00, 0x00, 0x10, 0x00, // IID5462 - 0xd5, 0x11, 0x81, 0xc5, 0x00, 0x00, 0x00, 0x01, // IID5463 - 0xd5, 0x11, 0x81, 0xc5, 0x00, 0x00, 0x00, 0x10, // IID5464 - 0xd5, 0x11, 0x83, 0xc6, 0x01, // IID5465 - 0xd5, 0x11, 0x83, 0xc6, 0x10, // IID5466 - 0xd5, 0x11, 0x81, 0xc6, 0x00, 0x01, 0x00, 0x00, // IID5467 - 0xd5, 0x11, 0x81, 0xc6, 0x00, 0x10, 0x00, 0x00, // IID5468 - 0xd5, 0x11, 0x81, 0xc6, 0x00, 0x00, 0x01, 0x00, // IID5469 - 0xd5, 0x11, 0x81, 0xc6, 0x00, 0x00, 0x10, 0x00, // IID5470 - 0xd5, 0x11, 0x81, 0xc6, 0x00, 0x00, 0x00, 0x01, // IID5471 - 0xd5, 0x11, 0x81, 0xc6, 0x00, 0x00, 0x00, 0x10, // IID5472 - 0xd5, 0x11, 0x83, 0xc7, 0x01, // IID5473 - 0xd5, 0x11, 0x83, 0xc7, 0x10, // IID5474 - 0xd5, 0x11, 0x81, 0xc7, 0x00, 0x01, 0x00, 0x00, // IID5475 - 0xd5, 0x11, 0x81, 0xc7, 0x00, 0x10, 0x00, 0x00, // IID5476 - 0xd5, 0x11, 0x81, 0xc7, 0x00, 0x00, 0x01, 0x00, // IID5477 - 0xd5, 0x11, 0x81, 0xc7, 0x00, 0x00, 0x10, 0x00, // IID5478 - 0xd5, 0x11, 0x81, 0xc7, 0x00, 0x00, 0x00, 0x01, // IID5479 - 0xd5, 0x11, 0x81, 0xc7, 0x00, 0x00, 0x00, 0x10, // IID5480 -#endif // _LP64 - 0x83, 0xe1, 0x01, // IID5481 - 0x83, 0xe1, 0x10, // IID5482 - 0x81, 0xe1, 0x00, 0x01, 0x00, 0x00, // IID5483 - 0x81, 0xe1, 0x00, 0x10, 0x00, 0x00, // IID5484 - 0x81, 0xe1, 0x00, 0x00, 0x01, 0x00, // IID5485 - 0x81, 0xe1, 0x00, 0x00, 0x10, 0x00, // IID5486 - 0x81, 0xe1, 0x00, 0x00, 0x00, 0x01, // IID5487 - 0x81, 0xe1, 0x00, 0x00, 0x00, 0x10, // IID5488 - 0x83, 0xe2, 0x01, // IID5489 - 0x83, 0xe2, 0x10, // IID5490 - 0x81, 0xe2, 0x00, 0x01, 0x00, 0x00, // IID5491 - 0x81, 0xe2, 0x00, 0x10, 0x00, 0x00, // IID5492 - 0x81, 0xe2, 0x00, 0x00, 0x01, 0x00, // IID5493 - 0x81, 0xe2, 0x00, 0x00, 0x10, 0x00, // IID5494 - 0x81, 0xe2, 0x00, 0x00, 0x00, 0x01, // IID5495 - 0x81, 0xe2, 0x00, 0x00, 0x00, 0x10, // IID5496 - 0x83, 0xe3, 0x01, // IID5497 - 0x83, 0xe3, 0x10, // IID5498 - 0x81, 0xe3, 0x00, 0x01, 0x00, 0x00, // IID5499 - 0x81, 0xe3, 0x00, 0x10, 0x00, 0x00, // IID5500 - 0x81, 0xe3, 0x00, 0x00, 0x01, 0x00, // IID5501 - 0x81, 0xe3, 0x00, 0x00, 0x10, 0x00, // IID5502 - 0x81, 0xe3, 0x00, 0x00, 0x00, 0x01, // IID5503 - 0x81, 0xe3, 0x00, 0x00, 0x00, 0x10, // IID5504 -#ifdef _LP64 - 0x41, 0x83, 0xe0, 0x01, // IID5505 - 0x41, 0x83, 0xe0, 0x10, // IID5506 - 0x41, 0x81, 0xe0, 0x00, 0x01, 0x00, 0x00, // IID5507 - 0x41, 0x81, 0xe0, 0x00, 0x10, 0x00, 0x00, // IID5508 - 0x41, 0x81, 0xe0, 0x00, 0x00, 0x01, 0x00, // IID5509 - 0x41, 0x81, 0xe0, 0x00, 0x00, 0x10, 0x00, // IID5510 - 0x41, 0x81, 0xe0, 0x00, 0x00, 0x00, 0x01, // IID5511 - 0x41, 0x81, 0xe0, 0x00, 0x00, 0x00, 0x10, // IID5512 - 0x41, 0x83, 0xe1, 0x01, // IID5513 - 0x41, 0x83, 0xe1, 0x10, // IID5514 - 0x41, 0x81, 0xe1, 0x00, 0x01, 0x00, 0x00, // IID5515 - 0x41, 0x81, 0xe1, 0x00, 0x10, 0x00, 0x00, // IID5516 - 0x41, 0x81, 0xe1, 0x00, 0x00, 0x01, 0x00, // IID5517 - 0x41, 0x81, 0xe1, 0x00, 0x00, 0x10, 0x00, // IID5518 - 0x41, 0x81, 0xe1, 0x00, 0x00, 0x00, 0x01, // IID5519 - 0x41, 0x81, 0xe1, 0x00, 0x00, 0x00, 0x10, // IID5520 - 0x41, 0x83, 0xe2, 0x01, // IID5521 - 0x41, 0x83, 0xe2, 0x10, // IID5522 - 0x41, 0x81, 0xe2, 0x00, 0x01, 0x00, 0x00, // IID5523 - 0x41, 0x81, 0xe2, 0x00, 0x10, 0x00, 0x00, // IID5524 - 0x41, 0x81, 0xe2, 0x00, 0x00, 0x01, 0x00, // IID5525 - 0x41, 0x81, 0xe2, 0x00, 0x00, 0x10, 0x00, // IID5526 - 0x41, 0x81, 0xe2, 0x00, 0x00, 0x00, 0x01, // IID5527 - 0x41, 0x81, 0xe2, 0x00, 0x00, 0x00, 0x10, // IID5528 - 0x41, 0x83, 0xe3, 0x01, // IID5529 - 0x41, 0x83, 0xe3, 0x10, // IID5530 - 0x41, 0x81, 0xe3, 0x00, 0x01, 0x00, 0x00, // IID5531 - 0x41, 0x81, 0xe3, 0x00, 0x10, 0x00, 0x00, // IID5532 - 0x41, 0x81, 0xe3, 0x00, 0x00, 0x01, 0x00, // IID5533 - 0x41, 0x81, 0xe3, 0x00, 0x00, 0x10, 0x00, // IID5534 - 0x41, 0x81, 0xe3, 0x00, 0x00, 0x00, 0x01, // IID5535 - 0x41, 0x81, 0xe3, 0x00, 0x00, 0x00, 0x10, // IID5536 - 0x41, 0x83, 0xe4, 0x01, // IID5537 - 0x41, 0x83, 0xe4, 0x10, // IID5538 - 0x41, 0x81, 0xe4, 0x00, 0x01, 0x00, 0x00, // IID5539 - 0x41, 0x81, 0xe4, 0x00, 0x10, 0x00, 0x00, // IID5540 - 0x41, 0x81, 0xe4, 0x00, 0x00, 0x01, 0x00, // IID5541 - 0x41, 0x81, 0xe4, 0x00, 0x00, 0x10, 0x00, // IID5542 - 0x41, 0x81, 0xe4, 0x00, 0x00, 0x00, 0x01, // IID5543 - 0x41, 0x81, 0xe4, 0x00, 0x00, 0x00, 0x10, // IID5544 - 0x41, 0x83, 0xe5, 0x01, // IID5545 - 0x41, 0x83, 0xe5, 0x10, // IID5546 - 0x41, 0x81, 0xe5, 0x00, 0x01, 0x00, 0x00, // IID5547 - 0x41, 0x81, 0xe5, 0x00, 0x10, 0x00, 0x00, // IID5548 - 0x41, 0x81, 0xe5, 0x00, 0x00, 0x01, 0x00, // IID5549 - 0x41, 0x81, 0xe5, 0x00, 0x00, 0x10, 0x00, // IID5550 - 0x41, 0x81, 0xe5, 0x00, 0x00, 0x00, 0x01, // IID5551 - 0x41, 0x81, 0xe5, 0x00, 0x00, 0x00, 0x10, // IID5552 - 0x41, 0x83, 0xe6, 0x01, // IID5553 - 0x41, 0x83, 0xe6, 0x10, // IID5554 - 0x41, 0x81, 0xe6, 0x00, 0x01, 0x00, 0x00, // IID5555 - 0x41, 0x81, 0xe6, 0x00, 0x10, 0x00, 0x00, // IID5556 - 0x41, 0x81, 0xe6, 0x00, 0x00, 0x01, 0x00, // IID5557 - 0x41, 0x81, 0xe6, 0x00, 0x00, 0x10, 0x00, // IID5558 - 0x41, 0x81, 0xe6, 0x00, 0x00, 0x00, 0x01, // IID5559 - 0x41, 0x81, 0xe6, 0x00, 0x00, 0x00, 0x10, // IID5560 - 0x41, 0x83, 0xe7, 0x01, // IID5561 - 0x41, 0x83, 0xe7, 0x10, // IID5562 - 0x41, 0x81, 0xe7, 0x00, 0x01, 0x00, 0x00, // IID5563 - 0x41, 0x81, 0xe7, 0x00, 0x10, 0x00, 0x00, // IID5564 - 0x41, 0x81, 0xe7, 0x00, 0x00, 0x01, 0x00, // IID5565 - 0x41, 0x81, 0xe7, 0x00, 0x00, 0x10, 0x00, // IID5566 - 0x41, 0x81, 0xe7, 0x00, 0x00, 0x00, 0x01, // IID5567 - 0x41, 0x81, 0xe7, 0x00, 0x00, 0x00, 0x10, // IID5568 - 0xd5, 0x10, 0x83, 0xe0, 0x01, // IID5569 - 0xd5, 0x10, 0x83, 0xe0, 0x10, // IID5570 - 0xd5, 0x10, 0x81, 0xe0, 0x00, 0x01, 0x00, 0x00, // IID5571 - 0xd5, 0x10, 0x81, 0xe0, 0x00, 0x10, 0x00, 0x00, // IID5572 - 0xd5, 0x10, 0x81, 0xe0, 0x00, 0x00, 0x01, 0x00, // IID5573 - 0xd5, 0x10, 0x81, 0xe0, 0x00, 0x00, 0x10, 0x00, // IID5574 - 0xd5, 0x10, 0x81, 0xe0, 0x00, 0x00, 0x00, 0x01, // IID5575 - 0xd5, 0x10, 0x81, 0xe0, 0x00, 0x00, 0x00, 0x10, // IID5576 - 0xd5, 0x10, 0x83, 0xe1, 0x01, // IID5577 - 0xd5, 0x10, 0x83, 0xe1, 0x10, // IID5578 - 0xd5, 0x10, 0x81, 0xe1, 0x00, 0x01, 0x00, 0x00, // IID5579 - 0xd5, 0x10, 0x81, 0xe1, 0x00, 0x10, 0x00, 0x00, // IID5580 - 0xd5, 0x10, 0x81, 0xe1, 0x00, 0x00, 0x01, 0x00, // IID5581 - 0xd5, 0x10, 0x81, 0xe1, 0x00, 0x00, 0x10, 0x00, // IID5582 - 0xd5, 0x10, 0x81, 0xe1, 0x00, 0x00, 0x00, 0x01, // IID5583 - 0xd5, 0x10, 0x81, 0xe1, 0x00, 0x00, 0x00, 0x10, // IID5584 - 0xd5, 0x10, 0x83, 0xe2, 0x01, // IID5585 - 0xd5, 0x10, 0x83, 0xe2, 0x10, // IID5586 - 0xd5, 0x10, 0x81, 0xe2, 0x00, 0x01, 0x00, 0x00, // IID5587 - 0xd5, 0x10, 0x81, 0xe2, 0x00, 0x10, 0x00, 0x00, // IID5588 - 0xd5, 0x10, 0x81, 0xe2, 0x00, 0x00, 0x01, 0x00, // IID5589 - 0xd5, 0x10, 0x81, 0xe2, 0x00, 0x00, 0x10, 0x00, // IID5590 - 0xd5, 0x10, 0x81, 0xe2, 0x00, 0x00, 0x00, 0x01, // IID5591 - 0xd5, 0x10, 0x81, 0xe2, 0x00, 0x00, 0x00, 0x10, // IID5592 - 0xd5, 0x10, 0x83, 0xe3, 0x01, // IID5593 - 0xd5, 0x10, 0x83, 0xe3, 0x10, // IID5594 - 0xd5, 0x10, 0x81, 0xe3, 0x00, 0x01, 0x00, 0x00, // IID5595 - 0xd5, 0x10, 0x81, 0xe3, 0x00, 0x10, 0x00, 0x00, // IID5596 - 0xd5, 0x10, 0x81, 0xe3, 0x00, 0x00, 0x01, 0x00, // IID5597 - 0xd5, 0x10, 0x81, 0xe3, 0x00, 0x00, 0x10, 0x00, // IID5598 - 0xd5, 0x10, 0x81, 0xe3, 0x00, 0x00, 0x00, 0x01, // IID5599 - 0xd5, 0x10, 0x81, 0xe3, 0x00, 0x00, 0x00, 0x10, // IID5600 - 0xd5, 0x10, 0x83, 0xe4, 0x01, // IID5601 - 0xd5, 0x10, 0x83, 0xe4, 0x10, // IID5602 - 0xd5, 0x10, 0x81, 0xe4, 0x00, 0x01, 0x00, 0x00, // IID5603 - 0xd5, 0x10, 0x81, 0xe4, 0x00, 0x10, 0x00, 0x00, // IID5604 - 0xd5, 0x10, 0x81, 0xe4, 0x00, 0x00, 0x01, 0x00, // IID5605 - 0xd5, 0x10, 0x81, 0xe4, 0x00, 0x00, 0x10, 0x00, // IID5606 - 0xd5, 0x10, 0x81, 0xe4, 0x00, 0x00, 0x00, 0x01, // IID5607 - 0xd5, 0x10, 0x81, 0xe4, 0x00, 0x00, 0x00, 0x10, // IID5608 - 0xd5, 0x10, 0x83, 0xe5, 0x01, // IID5609 - 0xd5, 0x10, 0x83, 0xe5, 0x10, // IID5610 - 0xd5, 0x10, 0x81, 0xe5, 0x00, 0x01, 0x00, 0x00, // IID5611 - 0xd5, 0x10, 0x81, 0xe5, 0x00, 0x10, 0x00, 0x00, // IID5612 - 0xd5, 0x10, 0x81, 0xe5, 0x00, 0x00, 0x01, 0x00, // IID5613 - 0xd5, 0x10, 0x81, 0xe5, 0x00, 0x00, 0x10, 0x00, // IID5614 - 0xd5, 0x10, 0x81, 0xe5, 0x00, 0x00, 0x00, 0x01, // IID5615 - 0xd5, 0x10, 0x81, 0xe5, 0x00, 0x00, 0x00, 0x10, // IID5616 - 0xd5, 0x10, 0x83, 0xe6, 0x01, // IID5617 - 0xd5, 0x10, 0x83, 0xe6, 0x10, // IID5618 - 0xd5, 0x10, 0x81, 0xe6, 0x00, 0x01, 0x00, 0x00, // IID5619 - 0xd5, 0x10, 0x81, 0xe6, 0x00, 0x10, 0x00, 0x00, // IID5620 - 0xd5, 0x10, 0x81, 0xe6, 0x00, 0x00, 0x01, 0x00, // IID5621 - 0xd5, 0x10, 0x81, 0xe6, 0x00, 0x00, 0x10, 0x00, // IID5622 - 0xd5, 0x10, 0x81, 0xe6, 0x00, 0x00, 0x00, 0x01, // IID5623 - 0xd5, 0x10, 0x81, 0xe6, 0x00, 0x00, 0x00, 0x10, // IID5624 - 0xd5, 0x10, 0x83, 0xe7, 0x01, // IID5625 - 0xd5, 0x10, 0x83, 0xe7, 0x10, // IID5626 - 0xd5, 0x10, 0x81, 0xe7, 0x00, 0x01, 0x00, 0x00, // IID5627 - 0xd5, 0x10, 0x81, 0xe7, 0x00, 0x10, 0x00, 0x00, // IID5628 - 0xd5, 0x10, 0x81, 0xe7, 0x00, 0x00, 0x01, 0x00, // IID5629 - 0xd5, 0x10, 0x81, 0xe7, 0x00, 0x00, 0x10, 0x00, // IID5630 - 0xd5, 0x10, 0x81, 0xe7, 0x00, 0x00, 0x00, 0x01, // IID5631 - 0xd5, 0x10, 0x81, 0xe7, 0x00, 0x00, 0x00, 0x10, // IID5632 - 0xd5, 0x11, 0x83, 0xe0, 0x01, // IID5633 - 0xd5, 0x11, 0x83, 0xe0, 0x10, // IID5634 - 0xd5, 0x11, 0x81, 0xe0, 0x00, 0x01, 0x00, 0x00, // IID5635 - 0xd5, 0x11, 0x81, 0xe0, 0x00, 0x10, 0x00, 0x00, // IID5636 - 0xd5, 0x11, 0x81, 0xe0, 0x00, 0x00, 0x01, 0x00, // IID5637 - 0xd5, 0x11, 0x81, 0xe0, 0x00, 0x00, 0x10, 0x00, // IID5638 - 0xd5, 0x11, 0x81, 0xe0, 0x00, 0x00, 0x00, 0x01, // IID5639 - 0xd5, 0x11, 0x81, 0xe0, 0x00, 0x00, 0x00, 0x10, // IID5640 - 0xd5, 0x11, 0x83, 0xe1, 0x01, // IID5641 - 0xd5, 0x11, 0x83, 0xe1, 0x10, // IID5642 - 0xd5, 0x11, 0x81, 0xe1, 0x00, 0x01, 0x00, 0x00, // IID5643 - 0xd5, 0x11, 0x81, 0xe1, 0x00, 0x10, 0x00, 0x00, // IID5644 - 0xd5, 0x11, 0x81, 0xe1, 0x00, 0x00, 0x01, 0x00, // IID5645 - 0xd5, 0x11, 0x81, 0xe1, 0x00, 0x00, 0x10, 0x00, // IID5646 - 0xd5, 0x11, 0x81, 0xe1, 0x00, 0x00, 0x00, 0x01, // IID5647 - 0xd5, 0x11, 0x81, 0xe1, 0x00, 0x00, 0x00, 0x10, // IID5648 - 0xd5, 0x11, 0x83, 0xe2, 0x01, // IID5649 - 0xd5, 0x11, 0x83, 0xe2, 0x10, // IID5650 - 0xd5, 0x11, 0x81, 0xe2, 0x00, 0x01, 0x00, 0x00, // IID5651 - 0xd5, 0x11, 0x81, 0xe2, 0x00, 0x10, 0x00, 0x00, // IID5652 - 0xd5, 0x11, 0x81, 0xe2, 0x00, 0x00, 0x01, 0x00, // IID5653 - 0xd5, 0x11, 0x81, 0xe2, 0x00, 0x00, 0x10, 0x00, // IID5654 - 0xd5, 0x11, 0x81, 0xe2, 0x00, 0x00, 0x00, 0x01, // IID5655 - 0xd5, 0x11, 0x81, 0xe2, 0x00, 0x00, 0x00, 0x10, // IID5656 - 0xd5, 0x11, 0x83, 0xe3, 0x01, // IID5657 - 0xd5, 0x11, 0x83, 0xe3, 0x10, // IID5658 - 0xd5, 0x11, 0x81, 0xe3, 0x00, 0x01, 0x00, 0x00, // IID5659 - 0xd5, 0x11, 0x81, 0xe3, 0x00, 0x10, 0x00, 0x00, // IID5660 - 0xd5, 0x11, 0x81, 0xe3, 0x00, 0x00, 0x01, 0x00, // IID5661 - 0xd5, 0x11, 0x81, 0xe3, 0x00, 0x00, 0x10, 0x00, // IID5662 - 0xd5, 0x11, 0x81, 0xe3, 0x00, 0x00, 0x00, 0x01, // IID5663 - 0xd5, 0x11, 0x81, 0xe3, 0x00, 0x00, 0x00, 0x10, // IID5664 - 0xd5, 0x11, 0x83, 0xe4, 0x01, // IID5665 - 0xd5, 0x11, 0x83, 0xe4, 0x10, // IID5666 - 0xd5, 0x11, 0x81, 0xe4, 0x00, 0x01, 0x00, 0x00, // IID5667 - 0xd5, 0x11, 0x81, 0xe4, 0x00, 0x10, 0x00, 0x00, // IID5668 - 0xd5, 0x11, 0x81, 0xe4, 0x00, 0x00, 0x01, 0x00, // IID5669 - 0xd5, 0x11, 0x81, 0xe4, 0x00, 0x00, 0x10, 0x00, // IID5670 - 0xd5, 0x11, 0x81, 0xe4, 0x00, 0x00, 0x00, 0x01, // IID5671 - 0xd5, 0x11, 0x81, 0xe4, 0x00, 0x00, 0x00, 0x10, // IID5672 - 0xd5, 0x11, 0x83, 0xe5, 0x01, // IID5673 - 0xd5, 0x11, 0x83, 0xe5, 0x10, // IID5674 - 0xd5, 0x11, 0x81, 0xe5, 0x00, 0x01, 0x00, 0x00, // IID5675 - 0xd5, 0x11, 0x81, 0xe5, 0x00, 0x10, 0x00, 0x00, // IID5676 - 0xd5, 0x11, 0x81, 0xe5, 0x00, 0x00, 0x01, 0x00, // IID5677 - 0xd5, 0x11, 0x81, 0xe5, 0x00, 0x00, 0x10, 0x00, // IID5678 - 0xd5, 0x11, 0x81, 0xe5, 0x00, 0x00, 0x00, 0x01, // IID5679 - 0xd5, 0x11, 0x81, 0xe5, 0x00, 0x00, 0x00, 0x10, // IID5680 - 0xd5, 0x11, 0x83, 0xe6, 0x01, // IID5681 - 0xd5, 0x11, 0x83, 0xe6, 0x10, // IID5682 - 0xd5, 0x11, 0x81, 0xe6, 0x00, 0x01, 0x00, 0x00, // IID5683 - 0xd5, 0x11, 0x81, 0xe6, 0x00, 0x10, 0x00, 0x00, // IID5684 - 0xd5, 0x11, 0x81, 0xe6, 0x00, 0x00, 0x01, 0x00, // IID5685 - 0xd5, 0x11, 0x81, 0xe6, 0x00, 0x00, 0x10, 0x00, // IID5686 - 0xd5, 0x11, 0x81, 0xe6, 0x00, 0x00, 0x00, 0x01, // IID5687 - 0xd5, 0x11, 0x81, 0xe6, 0x00, 0x00, 0x00, 0x10, // IID5688 - 0xd5, 0x11, 0x83, 0xe7, 0x01, // IID5689 - 0xd5, 0x11, 0x83, 0xe7, 0x10, // IID5690 - 0xd5, 0x11, 0x81, 0xe7, 0x00, 0x01, 0x00, 0x00, // IID5691 - 0xd5, 0x11, 0x81, 0xe7, 0x00, 0x10, 0x00, 0x00, // IID5692 - 0xd5, 0x11, 0x81, 0xe7, 0x00, 0x00, 0x01, 0x00, // IID5693 - 0xd5, 0x11, 0x81, 0xe7, 0x00, 0x00, 0x10, 0x00, // IID5694 - 0xd5, 0x11, 0x81, 0xe7, 0x00, 0x00, 0x00, 0x01, // IID5695 - 0xd5, 0x11, 0x81, 0xe7, 0x00, 0x00, 0x00, 0x10, // IID5696 -#endif // _LP64 - 0x83, 0xd1, 0x01, // IID5697 - 0x83, 0xd1, 0x10, // IID5698 - 0x81, 0xd1, 0x00, 0x01, 0x00, 0x00, // IID5699 - 0x81, 0xd1, 0x00, 0x10, 0x00, 0x00, // IID5700 - 0x81, 0xd1, 0x00, 0x00, 0x01, 0x00, // IID5701 - 0x81, 0xd1, 0x00, 0x00, 0x10, 0x00, // IID5702 - 0x81, 0xd1, 0x00, 0x00, 0x00, 0x01, // IID5703 - 0x81, 0xd1, 0x00, 0x00, 0x00, 0x10, // IID5704 - 0x83, 0xd2, 0x01, // IID5705 - 0x83, 0xd2, 0x10, // IID5706 - 0x81, 0xd2, 0x00, 0x01, 0x00, 0x00, // IID5707 - 0x81, 0xd2, 0x00, 0x10, 0x00, 0x00, // IID5708 - 0x81, 0xd2, 0x00, 0x00, 0x01, 0x00, // IID5709 - 0x81, 0xd2, 0x00, 0x00, 0x10, 0x00, // IID5710 - 0x81, 0xd2, 0x00, 0x00, 0x00, 0x01, // IID5711 - 0x81, 0xd2, 0x00, 0x00, 0x00, 0x10, // IID5712 - 0x83, 0xd3, 0x01, // IID5713 - 0x83, 0xd3, 0x10, // IID5714 - 0x81, 0xd3, 0x00, 0x01, 0x00, 0x00, // IID5715 - 0x81, 0xd3, 0x00, 0x10, 0x00, 0x00, // IID5716 - 0x81, 0xd3, 0x00, 0x00, 0x01, 0x00, // IID5717 - 0x81, 0xd3, 0x00, 0x00, 0x10, 0x00, // IID5718 - 0x81, 0xd3, 0x00, 0x00, 0x00, 0x01, // IID5719 - 0x81, 0xd3, 0x00, 0x00, 0x00, 0x10, // IID5720 -#ifdef _LP64 - 0x41, 0x83, 0xd0, 0x01, // IID5721 - 0x41, 0x83, 0xd0, 0x10, // IID5722 - 0x41, 0x81, 0xd0, 0x00, 0x01, 0x00, 0x00, // IID5723 - 0x41, 0x81, 0xd0, 0x00, 0x10, 0x00, 0x00, // IID5724 - 0x41, 0x81, 0xd0, 0x00, 0x00, 0x01, 0x00, // IID5725 - 0x41, 0x81, 0xd0, 0x00, 0x00, 0x10, 0x00, // IID5726 - 0x41, 0x81, 0xd0, 0x00, 0x00, 0x00, 0x01, // IID5727 - 0x41, 0x81, 0xd0, 0x00, 0x00, 0x00, 0x10, // IID5728 - 0x41, 0x83, 0xd1, 0x01, // IID5729 - 0x41, 0x83, 0xd1, 0x10, // IID5730 - 0x41, 0x81, 0xd1, 0x00, 0x01, 0x00, 0x00, // IID5731 - 0x41, 0x81, 0xd1, 0x00, 0x10, 0x00, 0x00, // IID5732 - 0x41, 0x81, 0xd1, 0x00, 0x00, 0x01, 0x00, // IID5733 - 0x41, 0x81, 0xd1, 0x00, 0x00, 0x10, 0x00, // IID5734 - 0x41, 0x81, 0xd1, 0x00, 0x00, 0x00, 0x01, // IID5735 - 0x41, 0x81, 0xd1, 0x00, 0x00, 0x00, 0x10, // IID5736 - 0x41, 0x83, 0xd2, 0x01, // IID5737 - 0x41, 0x83, 0xd2, 0x10, // IID5738 - 0x41, 0x81, 0xd2, 0x00, 0x01, 0x00, 0x00, // IID5739 - 0x41, 0x81, 0xd2, 0x00, 0x10, 0x00, 0x00, // IID5740 - 0x41, 0x81, 0xd2, 0x00, 0x00, 0x01, 0x00, // IID5741 - 0x41, 0x81, 0xd2, 0x00, 0x00, 0x10, 0x00, // IID5742 - 0x41, 0x81, 0xd2, 0x00, 0x00, 0x00, 0x01, // IID5743 - 0x41, 0x81, 0xd2, 0x00, 0x00, 0x00, 0x10, // IID5744 - 0x41, 0x83, 0xd3, 0x01, // IID5745 - 0x41, 0x83, 0xd3, 0x10, // IID5746 - 0x41, 0x81, 0xd3, 0x00, 0x01, 0x00, 0x00, // IID5747 - 0x41, 0x81, 0xd3, 0x00, 0x10, 0x00, 0x00, // IID5748 - 0x41, 0x81, 0xd3, 0x00, 0x00, 0x01, 0x00, // IID5749 - 0x41, 0x81, 0xd3, 0x00, 0x00, 0x10, 0x00, // IID5750 - 0x41, 0x81, 0xd3, 0x00, 0x00, 0x00, 0x01, // IID5751 - 0x41, 0x81, 0xd3, 0x00, 0x00, 0x00, 0x10, // IID5752 - 0x41, 0x83, 0xd4, 0x01, // IID5753 - 0x41, 0x83, 0xd4, 0x10, // IID5754 - 0x41, 0x81, 0xd4, 0x00, 0x01, 0x00, 0x00, // IID5755 - 0x41, 0x81, 0xd4, 0x00, 0x10, 0x00, 0x00, // IID5756 - 0x41, 0x81, 0xd4, 0x00, 0x00, 0x01, 0x00, // IID5757 - 0x41, 0x81, 0xd4, 0x00, 0x00, 0x10, 0x00, // IID5758 - 0x41, 0x81, 0xd4, 0x00, 0x00, 0x00, 0x01, // IID5759 - 0x41, 0x81, 0xd4, 0x00, 0x00, 0x00, 0x10, // IID5760 - 0x41, 0x83, 0xd5, 0x01, // IID5761 - 0x41, 0x83, 0xd5, 0x10, // IID5762 - 0x41, 0x81, 0xd5, 0x00, 0x01, 0x00, 0x00, // IID5763 - 0x41, 0x81, 0xd5, 0x00, 0x10, 0x00, 0x00, // IID5764 - 0x41, 0x81, 0xd5, 0x00, 0x00, 0x01, 0x00, // IID5765 - 0x41, 0x81, 0xd5, 0x00, 0x00, 0x10, 0x00, // IID5766 - 0x41, 0x81, 0xd5, 0x00, 0x00, 0x00, 0x01, // IID5767 - 0x41, 0x81, 0xd5, 0x00, 0x00, 0x00, 0x10, // IID5768 - 0x41, 0x83, 0xd6, 0x01, // IID5769 - 0x41, 0x83, 0xd6, 0x10, // IID5770 - 0x41, 0x81, 0xd6, 0x00, 0x01, 0x00, 0x00, // IID5771 - 0x41, 0x81, 0xd6, 0x00, 0x10, 0x00, 0x00, // IID5772 - 0x41, 0x81, 0xd6, 0x00, 0x00, 0x01, 0x00, // IID5773 - 0x41, 0x81, 0xd6, 0x00, 0x00, 0x10, 0x00, // IID5774 - 0x41, 0x81, 0xd6, 0x00, 0x00, 0x00, 0x01, // IID5775 - 0x41, 0x81, 0xd6, 0x00, 0x00, 0x00, 0x10, // IID5776 - 0x41, 0x83, 0xd7, 0x01, // IID5777 - 0x41, 0x83, 0xd7, 0x10, // IID5778 - 0x41, 0x81, 0xd7, 0x00, 0x01, 0x00, 0x00, // IID5779 - 0x41, 0x81, 0xd7, 0x00, 0x10, 0x00, 0x00, // IID5780 - 0x41, 0x81, 0xd7, 0x00, 0x00, 0x01, 0x00, // IID5781 - 0x41, 0x81, 0xd7, 0x00, 0x00, 0x10, 0x00, // IID5782 - 0x41, 0x81, 0xd7, 0x00, 0x00, 0x00, 0x01, // IID5783 - 0x41, 0x81, 0xd7, 0x00, 0x00, 0x00, 0x10, // IID5784 - 0xd5, 0x10, 0x83, 0xd0, 0x01, // IID5785 - 0xd5, 0x10, 0x83, 0xd0, 0x10, // IID5786 - 0xd5, 0x10, 0x81, 0xd0, 0x00, 0x01, 0x00, 0x00, // IID5787 - 0xd5, 0x10, 0x81, 0xd0, 0x00, 0x10, 0x00, 0x00, // IID5788 - 0xd5, 0x10, 0x81, 0xd0, 0x00, 0x00, 0x01, 0x00, // IID5789 - 0xd5, 0x10, 0x81, 0xd0, 0x00, 0x00, 0x10, 0x00, // IID5790 - 0xd5, 0x10, 0x81, 0xd0, 0x00, 0x00, 0x00, 0x01, // IID5791 - 0xd5, 0x10, 0x81, 0xd0, 0x00, 0x00, 0x00, 0x10, // IID5792 - 0xd5, 0x10, 0x83, 0xd1, 0x01, // IID5793 - 0xd5, 0x10, 0x83, 0xd1, 0x10, // IID5794 - 0xd5, 0x10, 0x81, 0xd1, 0x00, 0x01, 0x00, 0x00, // IID5795 - 0xd5, 0x10, 0x81, 0xd1, 0x00, 0x10, 0x00, 0x00, // IID5796 - 0xd5, 0x10, 0x81, 0xd1, 0x00, 0x00, 0x01, 0x00, // IID5797 - 0xd5, 0x10, 0x81, 0xd1, 0x00, 0x00, 0x10, 0x00, // IID5798 - 0xd5, 0x10, 0x81, 0xd1, 0x00, 0x00, 0x00, 0x01, // IID5799 - 0xd5, 0x10, 0x81, 0xd1, 0x00, 0x00, 0x00, 0x10, // IID5800 - 0xd5, 0x10, 0x83, 0xd2, 0x01, // IID5801 - 0xd5, 0x10, 0x83, 0xd2, 0x10, // IID5802 - 0xd5, 0x10, 0x81, 0xd2, 0x00, 0x01, 0x00, 0x00, // IID5803 - 0xd5, 0x10, 0x81, 0xd2, 0x00, 0x10, 0x00, 0x00, // IID5804 - 0xd5, 0x10, 0x81, 0xd2, 0x00, 0x00, 0x01, 0x00, // IID5805 - 0xd5, 0x10, 0x81, 0xd2, 0x00, 0x00, 0x10, 0x00, // IID5806 - 0xd5, 0x10, 0x81, 0xd2, 0x00, 0x00, 0x00, 0x01, // IID5807 - 0xd5, 0x10, 0x81, 0xd2, 0x00, 0x00, 0x00, 0x10, // IID5808 - 0xd5, 0x10, 0x83, 0xd3, 0x01, // IID5809 - 0xd5, 0x10, 0x83, 0xd3, 0x10, // IID5810 - 0xd5, 0x10, 0x81, 0xd3, 0x00, 0x01, 0x00, 0x00, // IID5811 - 0xd5, 0x10, 0x81, 0xd3, 0x00, 0x10, 0x00, 0x00, // IID5812 - 0xd5, 0x10, 0x81, 0xd3, 0x00, 0x00, 0x01, 0x00, // IID5813 - 0xd5, 0x10, 0x81, 0xd3, 0x00, 0x00, 0x10, 0x00, // IID5814 - 0xd5, 0x10, 0x81, 0xd3, 0x00, 0x00, 0x00, 0x01, // IID5815 - 0xd5, 0x10, 0x81, 0xd3, 0x00, 0x00, 0x00, 0x10, // IID5816 - 0xd5, 0x10, 0x83, 0xd4, 0x01, // IID5817 - 0xd5, 0x10, 0x83, 0xd4, 0x10, // IID5818 - 0xd5, 0x10, 0x81, 0xd4, 0x00, 0x01, 0x00, 0x00, // IID5819 - 0xd5, 0x10, 0x81, 0xd4, 0x00, 0x10, 0x00, 0x00, // IID5820 - 0xd5, 0x10, 0x81, 0xd4, 0x00, 0x00, 0x01, 0x00, // IID5821 - 0xd5, 0x10, 0x81, 0xd4, 0x00, 0x00, 0x10, 0x00, // IID5822 - 0xd5, 0x10, 0x81, 0xd4, 0x00, 0x00, 0x00, 0x01, // IID5823 - 0xd5, 0x10, 0x81, 0xd4, 0x00, 0x00, 0x00, 0x10, // IID5824 - 0xd5, 0x10, 0x83, 0xd5, 0x01, // IID5825 - 0xd5, 0x10, 0x83, 0xd5, 0x10, // IID5826 - 0xd5, 0x10, 0x81, 0xd5, 0x00, 0x01, 0x00, 0x00, // IID5827 - 0xd5, 0x10, 0x81, 0xd5, 0x00, 0x10, 0x00, 0x00, // IID5828 - 0xd5, 0x10, 0x81, 0xd5, 0x00, 0x00, 0x01, 0x00, // IID5829 - 0xd5, 0x10, 0x81, 0xd5, 0x00, 0x00, 0x10, 0x00, // IID5830 - 0xd5, 0x10, 0x81, 0xd5, 0x00, 0x00, 0x00, 0x01, // IID5831 - 0xd5, 0x10, 0x81, 0xd5, 0x00, 0x00, 0x00, 0x10, // IID5832 - 0xd5, 0x10, 0x83, 0xd6, 0x01, // IID5833 - 0xd5, 0x10, 0x83, 0xd6, 0x10, // IID5834 - 0xd5, 0x10, 0x81, 0xd6, 0x00, 0x01, 0x00, 0x00, // IID5835 - 0xd5, 0x10, 0x81, 0xd6, 0x00, 0x10, 0x00, 0x00, // IID5836 - 0xd5, 0x10, 0x81, 0xd6, 0x00, 0x00, 0x01, 0x00, // IID5837 - 0xd5, 0x10, 0x81, 0xd6, 0x00, 0x00, 0x10, 0x00, // IID5838 - 0xd5, 0x10, 0x81, 0xd6, 0x00, 0x00, 0x00, 0x01, // IID5839 - 0xd5, 0x10, 0x81, 0xd6, 0x00, 0x00, 0x00, 0x10, // IID5840 - 0xd5, 0x10, 0x83, 0xd7, 0x01, // IID5841 - 0xd5, 0x10, 0x83, 0xd7, 0x10, // IID5842 - 0xd5, 0x10, 0x81, 0xd7, 0x00, 0x01, 0x00, 0x00, // IID5843 - 0xd5, 0x10, 0x81, 0xd7, 0x00, 0x10, 0x00, 0x00, // IID5844 - 0xd5, 0x10, 0x81, 0xd7, 0x00, 0x00, 0x01, 0x00, // IID5845 - 0xd5, 0x10, 0x81, 0xd7, 0x00, 0x00, 0x10, 0x00, // IID5846 - 0xd5, 0x10, 0x81, 0xd7, 0x00, 0x00, 0x00, 0x01, // IID5847 - 0xd5, 0x10, 0x81, 0xd7, 0x00, 0x00, 0x00, 0x10, // IID5848 - 0xd5, 0x11, 0x83, 0xd0, 0x01, // IID5849 - 0xd5, 0x11, 0x83, 0xd0, 0x10, // IID5850 - 0xd5, 0x11, 0x81, 0xd0, 0x00, 0x01, 0x00, 0x00, // IID5851 - 0xd5, 0x11, 0x81, 0xd0, 0x00, 0x10, 0x00, 0x00, // IID5852 - 0xd5, 0x11, 0x81, 0xd0, 0x00, 0x00, 0x01, 0x00, // IID5853 - 0xd5, 0x11, 0x81, 0xd0, 0x00, 0x00, 0x10, 0x00, // IID5854 - 0xd5, 0x11, 0x81, 0xd0, 0x00, 0x00, 0x00, 0x01, // IID5855 - 0xd5, 0x11, 0x81, 0xd0, 0x00, 0x00, 0x00, 0x10, // IID5856 - 0xd5, 0x11, 0x83, 0xd1, 0x01, // IID5857 - 0xd5, 0x11, 0x83, 0xd1, 0x10, // IID5858 - 0xd5, 0x11, 0x81, 0xd1, 0x00, 0x01, 0x00, 0x00, // IID5859 - 0xd5, 0x11, 0x81, 0xd1, 0x00, 0x10, 0x00, 0x00, // IID5860 - 0xd5, 0x11, 0x81, 0xd1, 0x00, 0x00, 0x01, 0x00, // IID5861 - 0xd5, 0x11, 0x81, 0xd1, 0x00, 0x00, 0x10, 0x00, // IID5862 - 0xd5, 0x11, 0x81, 0xd1, 0x00, 0x00, 0x00, 0x01, // IID5863 - 0xd5, 0x11, 0x81, 0xd1, 0x00, 0x00, 0x00, 0x10, // IID5864 - 0xd5, 0x11, 0x83, 0xd2, 0x01, // IID5865 - 0xd5, 0x11, 0x83, 0xd2, 0x10, // IID5866 - 0xd5, 0x11, 0x81, 0xd2, 0x00, 0x01, 0x00, 0x00, // IID5867 - 0xd5, 0x11, 0x81, 0xd2, 0x00, 0x10, 0x00, 0x00, // IID5868 - 0xd5, 0x11, 0x81, 0xd2, 0x00, 0x00, 0x01, 0x00, // IID5869 - 0xd5, 0x11, 0x81, 0xd2, 0x00, 0x00, 0x10, 0x00, // IID5870 - 0xd5, 0x11, 0x81, 0xd2, 0x00, 0x00, 0x00, 0x01, // IID5871 - 0xd5, 0x11, 0x81, 0xd2, 0x00, 0x00, 0x00, 0x10, // IID5872 - 0xd5, 0x11, 0x83, 0xd3, 0x01, // IID5873 - 0xd5, 0x11, 0x83, 0xd3, 0x10, // IID5874 - 0xd5, 0x11, 0x81, 0xd3, 0x00, 0x01, 0x00, 0x00, // IID5875 - 0xd5, 0x11, 0x81, 0xd3, 0x00, 0x10, 0x00, 0x00, // IID5876 - 0xd5, 0x11, 0x81, 0xd3, 0x00, 0x00, 0x01, 0x00, // IID5877 - 0xd5, 0x11, 0x81, 0xd3, 0x00, 0x00, 0x10, 0x00, // IID5878 - 0xd5, 0x11, 0x81, 0xd3, 0x00, 0x00, 0x00, 0x01, // IID5879 - 0xd5, 0x11, 0x81, 0xd3, 0x00, 0x00, 0x00, 0x10, // IID5880 - 0xd5, 0x11, 0x83, 0xd4, 0x01, // IID5881 - 0xd5, 0x11, 0x83, 0xd4, 0x10, // IID5882 - 0xd5, 0x11, 0x81, 0xd4, 0x00, 0x01, 0x00, 0x00, // IID5883 - 0xd5, 0x11, 0x81, 0xd4, 0x00, 0x10, 0x00, 0x00, // IID5884 - 0xd5, 0x11, 0x81, 0xd4, 0x00, 0x00, 0x01, 0x00, // IID5885 - 0xd5, 0x11, 0x81, 0xd4, 0x00, 0x00, 0x10, 0x00, // IID5886 - 0xd5, 0x11, 0x81, 0xd4, 0x00, 0x00, 0x00, 0x01, // IID5887 - 0xd5, 0x11, 0x81, 0xd4, 0x00, 0x00, 0x00, 0x10, // IID5888 - 0xd5, 0x11, 0x83, 0xd5, 0x01, // IID5889 - 0xd5, 0x11, 0x83, 0xd5, 0x10, // IID5890 - 0xd5, 0x11, 0x81, 0xd5, 0x00, 0x01, 0x00, 0x00, // IID5891 - 0xd5, 0x11, 0x81, 0xd5, 0x00, 0x10, 0x00, 0x00, // IID5892 - 0xd5, 0x11, 0x81, 0xd5, 0x00, 0x00, 0x01, 0x00, // IID5893 - 0xd5, 0x11, 0x81, 0xd5, 0x00, 0x00, 0x10, 0x00, // IID5894 - 0xd5, 0x11, 0x81, 0xd5, 0x00, 0x00, 0x00, 0x01, // IID5895 - 0xd5, 0x11, 0x81, 0xd5, 0x00, 0x00, 0x00, 0x10, // IID5896 - 0xd5, 0x11, 0x83, 0xd6, 0x01, // IID5897 - 0xd5, 0x11, 0x83, 0xd6, 0x10, // IID5898 - 0xd5, 0x11, 0x81, 0xd6, 0x00, 0x01, 0x00, 0x00, // IID5899 - 0xd5, 0x11, 0x81, 0xd6, 0x00, 0x10, 0x00, 0x00, // IID5900 - 0xd5, 0x11, 0x81, 0xd6, 0x00, 0x00, 0x01, 0x00, // IID5901 - 0xd5, 0x11, 0x81, 0xd6, 0x00, 0x00, 0x10, 0x00, // IID5902 - 0xd5, 0x11, 0x81, 0xd6, 0x00, 0x00, 0x00, 0x01, // IID5903 - 0xd5, 0x11, 0x81, 0xd6, 0x00, 0x00, 0x00, 0x10, // IID5904 - 0xd5, 0x11, 0x83, 0xd7, 0x01, // IID5905 - 0xd5, 0x11, 0x83, 0xd7, 0x10, // IID5906 - 0xd5, 0x11, 0x81, 0xd7, 0x00, 0x01, 0x00, 0x00, // IID5907 - 0xd5, 0x11, 0x81, 0xd7, 0x00, 0x10, 0x00, 0x00, // IID5908 - 0xd5, 0x11, 0x81, 0xd7, 0x00, 0x00, 0x01, 0x00, // IID5909 - 0xd5, 0x11, 0x81, 0xd7, 0x00, 0x00, 0x10, 0x00, // IID5910 - 0xd5, 0x11, 0x81, 0xd7, 0x00, 0x00, 0x00, 0x01, // IID5911 - 0xd5, 0x11, 0x81, 0xd7, 0x00, 0x00, 0x00, 0x10, // IID5912 -#endif // _LP64 - 0x80, 0xf9, 0x01, // IID5913 - 0x80, 0xf9, 0x04, // IID5914 - 0x80, 0xf9, 0x10, // IID5915 - 0x80, 0xf9, 0x40, // IID5916 - 0x80, 0xfa, 0x01, // IID5917 - 0x80, 0xfa, 0x04, // IID5918 - 0x80, 0xfa, 0x10, // IID5919 - 0x80, 0xfa, 0x40, // IID5920 - 0x80, 0xfb, 0x01, // IID5921 - 0x80, 0xfb, 0x04, // IID5922 - 0x80, 0xfb, 0x10, // IID5923 - 0x80, 0xfb, 0x40, // IID5924 -#ifdef _LP64 - 0x41, 0x80, 0xf8, 0x01, // IID5925 - 0x41, 0x80, 0xf8, 0x04, // IID5926 - 0x41, 0x80, 0xf8, 0x10, // IID5927 - 0x41, 0x80, 0xf8, 0x40, // IID5928 - 0x41, 0x80, 0xf9, 0x01, // IID5929 - 0x41, 0x80, 0xf9, 0x04, // IID5930 - 0x41, 0x80, 0xf9, 0x10, // IID5931 - 0x41, 0x80, 0xf9, 0x40, // IID5932 - 0x41, 0x80, 0xfa, 0x01, // IID5933 - 0x41, 0x80, 0xfa, 0x04, // IID5934 - 0x41, 0x80, 0xfa, 0x10, // IID5935 - 0x41, 0x80, 0xfa, 0x40, // IID5936 - 0x41, 0x80, 0xfb, 0x01, // IID5937 - 0x41, 0x80, 0xfb, 0x04, // IID5938 - 0x41, 0x80, 0xfb, 0x10, // IID5939 - 0x41, 0x80, 0xfb, 0x40, // IID5940 - 0x41, 0x80, 0xfc, 0x01, // IID5941 - 0x41, 0x80, 0xfc, 0x04, // IID5942 - 0x41, 0x80, 0xfc, 0x10, // IID5943 - 0x41, 0x80, 0xfc, 0x40, // IID5944 - 0x41, 0x80, 0xfd, 0x01, // IID5945 - 0x41, 0x80, 0xfd, 0x04, // IID5946 - 0x41, 0x80, 0xfd, 0x10, // IID5947 - 0x41, 0x80, 0xfd, 0x40, // IID5948 - 0x41, 0x80, 0xfe, 0x01, // IID5949 - 0x41, 0x80, 0xfe, 0x04, // IID5950 - 0x41, 0x80, 0xfe, 0x10, // IID5951 - 0x41, 0x80, 0xfe, 0x40, // IID5952 - 0x41, 0x80, 0xff, 0x01, // IID5953 - 0x41, 0x80, 0xff, 0x04, // IID5954 - 0x41, 0x80, 0xff, 0x10, // IID5955 - 0x41, 0x80, 0xff, 0x40, // IID5956 - 0xd5, 0x10, 0x80, 0xf8, 0x01, // IID5957 - 0xd5, 0x10, 0x80, 0xf8, 0x04, // IID5958 - 0xd5, 0x10, 0x80, 0xf8, 0x10, // IID5959 - 0xd5, 0x10, 0x80, 0xf8, 0x40, // IID5960 - 0xd5, 0x10, 0x80, 0xf9, 0x01, // IID5961 - 0xd5, 0x10, 0x80, 0xf9, 0x04, // IID5962 - 0xd5, 0x10, 0x80, 0xf9, 0x10, // IID5963 - 0xd5, 0x10, 0x80, 0xf9, 0x40, // IID5964 - 0xd5, 0x10, 0x80, 0xfa, 0x01, // IID5965 - 0xd5, 0x10, 0x80, 0xfa, 0x04, // IID5966 - 0xd5, 0x10, 0x80, 0xfa, 0x10, // IID5967 - 0xd5, 0x10, 0x80, 0xfa, 0x40, // IID5968 - 0xd5, 0x10, 0x80, 0xfb, 0x01, // IID5969 - 0xd5, 0x10, 0x80, 0xfb, 0x04, // IID5970 - 0xd5, 0x10, 0x80, 0xfb, 0x10, // IID5971 - 0xd5, 0x10, 0x80, 0xfb, 0x40, // IID5972 - 0xd5, 0x10, 0x80, 0xfc, 0x01, // IID5973 - 0xd5, 0x10, 0x80, 0xfc, 0x04, // IID5974 - 0xd5, 0x10, 0x80, 0xfc, 0x10, // IID5975 - 0xd5, 0x10, 0x80, 0xfc, 0x40, // IID5976 - 0xd5, 0x10, 0x80, 0xfd, 0x01, // IID5977 - 0xd5, 0x10, 0x80, 0xfd, 0x04, // IID5978 - 0xd5, 0x10, 0x80, 0xfd, 0x10, // IID5979 - 0xd5, 0x10, 0x80, 0xfd, 0x40, // IID5980 - 0xd5, 0x10, 0x80, 0xfe, 0x01, // IID5981 - 0xd5, 0x10, 0x80, 0xfe, 0x04, // IID5982 - 0xd5, 0x10, 0x80, 0xfe, 0x10, // IID5983 - 0xd5, 0x10, 0x80, 0xfe, 0x40, // IID5984 - 0xd5, 0x10, 0x80, 0xff, 0x01, // IID5985 - 0xd5, 0x10, 0x80, 0xff, 0x04, // IID5986 - 0xd5, 0x10, 0x80, 0xff, 0x10, // IID5987 - 0xd5, 0x10, 0x80, 0xff, 0x40, // IID5988 - 0xd5, 0x11, 0x80, 0xf8, 0x01, // IID5989 - 0xd5, 0x11, 0x80, 0xf8, 0x04, // IID5990 - 0xd5, 0x11, 0x80, 0xf8, 0x10, // IID5991 - 0xd5, 0x11, 0x80, 0xf8, 0x40, // IID5992 - 0xd5, 0x11, 0x80, 0xf9, 0x01, // IID5993 - 0xd5, 0x11, 0x80, 0xf9, 0x04, // IID5994 - 0xd5, 0x11, 0x80, 0xf9, 0x10, // IID5995 - 0xd5, 0x11, 0x80, 0xf9, 0x40, // IID5996 - 0xd5, 0x11, 0x80, 0xfa, 0x01, // IID5997 - 0xd5, 0x11, 0x80, 0xfa, 0x04, // IID5998 - 0xd5, 0x11, 0x80, 0xfa, 0x10, // IID5999 - 0xd5, 0x11, 0x80, 0xfa, 0x40, // IID6000 - 0xd5, 0x11, 0x80, 0xfb, 0x01, // IID6001 - 0xd5, 0x11, 0x80, 0xfb, 0x04, // IID6002 - 0xd5, 0x11, 0x80, 0xfb, 0x10, // IID6003 - 0xd5, 0x11, 0x80, 0xfb, 0x40, // IID6004 - 0xd5, 0x11, 0x80, 0xfc, 0x01, // IID6005 - 0xd5, 0x11, 0x80, 0xfc, 0x04, // IID6006 - 0xd5, 0x11, 0x80, 0xfc, 0x10, // IID6007 - 0xd5, 0x11, 0x80, 0xfc, 0x40, // IID6008 - 0xd5, 0x11, 0x80, 0xfd, 0x01, // IID6009 - 0xd5, 0x11, 0x80, 0xfd, 0x04, // IID6010 - 0xd5, 0x11, 0x80, 0xfd, 0x10, // IID6011 - 0xd5, 0x11, 0x80, 0xfd, 0x40, // IID6012 - 0xd5, 0x11, 0x80, 0xfe, 0x01, // IID6013 - 0xd5, 0x11, 0x80, 0xfe, 0x04, // IID6014 - 0xd5, 0x11, 0x80, 0xfe, 0x10, // IID6015 - 0xd5, 0x11, 0x80, 0xfe, 0x40, // IID6016 - 0xd5, 0x11, 0x80, 0xff, 0x01, // IID6017 - 0xd5, 0x11, 0x80, 0xff, 0x04, // IID6018 - 0xd5, 0x11, 0x80, 0xff, 0x10, // IID6019 - 0xd5, 0x11, 0x80, 0xff, 0x40, // IID6020 -#endif // _LP64 - 0x83, 0xf9, 0x01, // IID6021 - 0x83, 0xf9, 0x10, // IID6022 - 0x81, 0xf9, 0x00, 0x01, 0x00, 0x00, // IID6023 - 0x81, 0xf9, 0x00, 0x10, 0x00, 0x00, // IID6024 - 0x81, 0xf9, 0x00, 0x00, 0x01, 0x00, // IID6025 - 0x81, 0xf9, 0x00, 0x00, 0x10, 0x00, // IID6026 - 0x81, 0xf9, 0x00, 0x00, 0x00, 0x01, // IID6027 - 0x81, 0xf9, 0x00, 0x00, 0x00, 0x10, // IID6028 - 0x83, 0xfa, 0x01, // IID6029 - 0x83, 0xfa, 0x10, // IID6030 - 0x81, 0xfa, 0x00, 0x01, 0x00, 0x00, // IID6031 - 0x81, 0xfa, 0x00, 0x10, 0x00, 0x00, // IID6032 - 0x81, 0xfa, 0x00, 0x00, 0x01, 0x00, // IID6033 - 0x81, 0xfa, 0x00, 0x00, 0x10, 0x00, // IID6034 - 0x81, 0xfa, 0x00, 0x00, 0x00, 0x01, // IID6035 - 0x81, 0xfa, 0x00, 0x00, 0x00, 0x10, // IID6036 - 0x83, 0xfb, 0x01, // IID6037 - 0x83, 0xfb, 0x10, // IID6038 - 0x81, 0xfb, 0x00, 0x01, 0x00, 0x00, // IID6039 - 0x81, 0xfb, 0x00, 0x10, 0x00, 0x00, // IID6040 - 0x81, 0xfb, 0x00, 0x00, 0x01, 0x00, // IID6041 - 0x81, 0xfb, 0x00, 0x00, 0x10, 0x00, // IID6042 - 0x81, 0xfb, 0x00, 0x00, 0x00, 0x01, // IID6043 - 0x81, 0xfb, 0x00, 0x00, 0x00, 0x10, // IID6044 -#ifdef _LP64 - 0x41, 0x83, 0xf8, 0x01, // IID6045 - 0x41, 0x83, 0xf8, 0x10, // IID6046 - 0x41, 0x81, 0xf8, 0x00, 0x01, 0x00, 0x00, // IID6047 - 0x41, 0x81, 0xf8, 0x00, 0x10, 0x00, 0x00, // IID6048 - 0x41, 0x81, 0xf8, 0x00, 0x00, 0x01, 0x00, // IID6049 - 0x41, 0x81, 0xf8, 0x00, 0x00, 0x10, 0x00, // IID6050 - 0x41, 0x81, 0xf8, 0x00, 0x00, 0x00, 0x01, // IID6051 - 0x41, 0x81, 0xf8, 0x00, 0x00, 0x00, 0x10, // IID6052 - 0x41, 0x83, 0xf9, 0x01, // IID6053 - 0x41, 0x83, 0xf9, 0x10, // IID6054 - 0x41, 0x81, 0xf9, 0x00, 0x01, 0x00, 0x00, // IID6055 - 0x41, 0x81, 0xf9, 0x00, 0x10, 0x00, 0x00, // IID6056 - 0x41, 0x81, 0xf9, 0x00, 0x00, 0x01, 0x00, // IID6057 - 0x41, 0x81, 0xf9, 0x00, 0x00, 0x10, 0x00, // IID6058 - 0x41, 0x81, 0xf9, 0x00, 0x00, 0x00, 0x01, // IID6059 - 0x41, 0x81, 0xf9, 0x00, 0x00, 0x00, 0x10, // IID6060 - 0x41, 0x83, 0xfa, 0x01, // IID6061 - 0x41, 0x83, 0xfa, 0x10, // IID6062 - 0x41, 0x81, 0xfa, 0x00, 0x01, 0x00, 0x00, // IID6063 - 0x41, 0x81, 0xfa, 0x00, 0x10, 0x00, 0x00, // IID6064 - 0x41, 0x81, 0xfa, 0x00, 0x00, 0x01, 0x00, // IID6065 - 0x41, 0x81, 0xfa, 0x00, 0x00, 0x10, 0x00, // IID6066 - 0x41, 0x81, 0xfa, 0x00, 0x00, 0x00, 0x01, // IID6067 - 0x41, 0x81, 0xfa, 0x00, 0x00, 0x00, 0x10, // IID6068 - 0x41, 0x83, 0xfb, 0x01, // IID6069 - 0x41, 0x83, 0xfb, 0x10, // IID6070 - 0x41, 0x81, 0xfb, 0x00, 0x01, 0x00, 0x00, // IID6071 - 0x41, 0x81, 0xfb, 0x00, 0x10, 0x00, 0x00, // IID6072 - 0x41, 0x81, 0xfb, 0x00, 0x00, 0x01, 0x00, // IID6073 - 0x41, 0x81, 0xfb, 0x00, 0x00, 0x10, 0x00, // IID6074 - 0x41, 0x81, 0xfb, 0x00, 0x00, 0x00, 0x01, // IID6075 - 0x41, 0x81, 0xfb, 0x00, 0x00, 0x00, 0x10, // IID6076 - 0x41, 0x83, 0xfc, 0x01, // IID6077 - 0x41, 0x83, 0xfc, 0x10, // IID6078 - 0x41, 0x81, 0xfc, 0x00, 0x01, 0x00, 0x00, // IID6079 - 0x41, 0x81, 0xfc, 0x00, 0x10, 0x00, 0x00, // IID6080 - 0x41, 0x81, 0xfc, 0x00, 0x00, 0x01, 0x00, // IID6081 - 0x41, 0x81, 0xfc, 0x00, 0x00, 0x10, 0x00, // IID6082 - 0x41, 0x81, 0xfc, 0x00, 0x00, 0x00, 0x01, // IID6083 - 0x41, 0x81, 0xfc, 0x00, 0x00, 0x00, 0x10, // IID6084 - 0x41, 0x83, 0xfd, 0x01, // IID6085 - 0x41, 0x83, 0xfd, 0x10, // IID6086 - 0x41, 0x81, 0xfd, 0x00, 0x01, 0x00, 0x00, // IID6087 - 0x41, 0x81, 0xfd, 0x00, 0x10, 0x00, 0x00, // IID6088 - 0x41, 0x81, 0xfd, 0x00, 0x00, 0x01, 0x00, // IID6089 - 0x41, 0x81, 0xfd, 0x00, 0x00, 0x10, 0x00, // IID6090 - 0x41, 0x81, 0xfd, 0x00, 0x00, 0x00, 0x01, // IID6091 - 0x41, 0x81, 0xfd, 0x00, 0x00, 0x00, 0x10, // IID6092 - 0x41, 0x83, 0xfe, 0x01, // IID6093 - 0x41, 0x83, 0xfe, 0x10, // IID6094 - 0x41, 0x81, 0xfe, 0x00, 0x01, 0x00, 0x00, // IID6095 - 0x41, 0x81, 0xfe, 0x00, 0x10, 0x00, 0x00, // IID6096 - 0x41, 0x81, 0xfe, 0x00, 0x00, 0x01, 0x00, // IID6097 - 0x41, 0x81, 0xfe, 0x00, 0x00, 0x10, 0x00, // IID6098 - 0x41, 0x81, 0xfe, 0x00, 0x00, 0x00, 0x01, // IID6099 - 0x41, 0x81, 0xfe, 0x00, 0x00, 0x00, 0x10, // IID6100 - 0x41, 0x83, 0xff, 0x01, // IID6101 - 0x41, 0x83, 0xff, 0x10, // IID6102 - 0x41, 0x81, 0xff, 0x00, 0x01, 0x00, 0x00, // IID6103 - 0x41, 0x81, 0xff, 0x00, 0x10, 0x00, 0x00, // IID6104 - 0x41, 0x81, 0xff, 0x00, 0x00, 0x01, 0x00, // IID6105 - 0x41, 0x81, 0xff, 0x00, 0x00, 0x10, 0x00, // IID6106 - 0x41, 0x81, 0xff, 0x00, 0x00, 0x00, 0x01, // IID6107 - 0x41, 0x81, 0xff, 0x00, 0x00, 0x00, 0x10, // IID6108 - 0xd5, 0x10, 0x83, 0xf8, 0x01, // IID6109 - 0xd5, 0x10, 0x83, 0xf8, 0x10, // IID6110 - 0xd5, 0x10, 0x81, 0xf8, 0x00, 0x01, 0x00, 0x00, // IID6111 - 0xd5, 0x10, 0x81, 0xf8, 0x00, 0x10, 0x00, 0x00, // IID6112 - 0xd5, 0x10, 0x81, 0xf8, 0x00, 0x00, 0x01, 0x00, // IID6113 - 0xd5, 0x10, 0x81, 0xf8, 0x00, 0x00, 0x10, 0x00, // IID6114 - 0xd5, 0x10, 0x81, 0xf8, 0x00, 0x00, 0x00, 0x01, // IID6115 - 0xd5, 0x10, 0x81, 0xf8, 0x00, 0x00, 0x00, 0x10, // IID6116 - 0xd5, 0x10, 0x83, 0xf9, 0x01, // IID6117 - 0xd5, 0x10, 0x83, 0xf9, 0x10, // IID6118 - 0xd5, 0x10, 0x81, 0xf9, 0x00, 0x01, 0x00, 0x00, // IID6119 - 0xd5, 0x10, 0x81, 0xf9, 0x00, 0x10, 0x00, 0x00, // IID6120 - 0xd5, 0x10, 0x81, 0xf9, 0x00, 0x00, 0x01, 0x00, // IID6121 - 0xd5, 0x10, 0x81, 0xf9, 0x00, 0x00, 0x10, 0x00, // IID6122 - 0xd5, 0x10, 0x81, 0xf9, 0x00, 0x00, 0x00, 0x01, // IID6123 - 0xd5, 0x10, 0x81, 0xf9, 0x00, 0x00, 0x00, 0x10, // IID6124 - 0xd5, 0x10, 0x83, 0xfa, 0x01, // IID6125 - 0xd5, 0x10, 0x83, 0xfa, 0x10, // IID6126 - 0xd5, 0x10, 0x81, 0xfa, 0x00, 0x01, 0x00, 0x00, // IID6127 - 0xd5, 0x10, 0x81, 0xfa, 0x00, 0x10, 0x00, 0x00, // IID6128 - 0xd5, 0x10, 0x81, 0xfa, 0x00, 0x00, 0x01, 0x00, // IID6129 - 0xd5, 0x10, 0x81, 0xfa, 0x00, 0x00, 0x10, 0x00, // IID6130 - 0xd5, 0x10, 0x81, 0xfa, 0x00, 0x00, 0x00, 0x01, // IID6131 - 0xd5, 0x10, 0x81, 0xfa, 0x00, 0x00, 0x00, 0x10, // IID6132 - 0xd5, 0x10, 0x83, 0xfb, 0x01, // IID6133 - 0xd5, 0x10, 0x83, 0xfb, 0x10, // IID6134 - 0xd5, 0x10, 0x81, 0xfb, 0x00, 0x01, 0x00, 0x00, // IID6135 - 0xd5, 0x10, 0x81, 0xfb, 0x00, 0x10, 0x00, 0x00, // IID6136 - 0xd5, 0x10, 0x81, 0xfb, 0x00, 0x00, 0x01, 0x00, // IID6137 - 0xd5, 0x10, 0x81, 0xfb, 0x00, 0x00, 0x10, 0x00, // IID6138 - 0xd5, 0x10, 0x81, 0xfb, 0x00, 0x00, 0x00, 0x01, // IID6139 - 0xd5, 0x10, 0x81, 0xfb, 0x00, 0x00, 0x00, 0x10, // IID6140 - 0xd5, 0x10, 0x83, 0xfc, 0x01, // IID6141 - 0xd5, 0x10, 0x83, 0xfc, 0x10, // IID6142 - 0xd5, 0x10, 0x81, 0xfc, 0x00, 0x01, 0x00, 0x00, // IID6143 - 0xd5, 0x10, 0x81, 0xfc, 0x00, 0x10, 0x00, 0x00, // IID6144 - 0xd5, 0x10, 0x81, 0xfc, 0x00, 0x00, 0x01, 0x00, // IID6145 - 0xd5, 0x10, 0x81, 0xfc, 0x00, 0x00, 0x10, 0x00, // IID6146 - 0xd5, 0x10, 0x81, 0xfc, 0x00, 0x00, 0x00, 0x01, // IID6147 - 0xd5, 0x10, 0x81, 0xfc, 0x00, 0x00, 0x00, 0x10, // IID6148 - 0xd5, 0x10, 0x83, 0xfd, 0x01, // IID6149 - 0xd5, 0x10, 0x83, 0xfd, 0x10, // IID6150 - 0xd5, 0x10, 0x81, 0xfd, 0x00, 0x01, 0x00, 0x00, // IID6151 - 0xd5, 0x10, 0x81, 0xfd, 0x00, 0x10, 0x00, 0x00, // IID6152 - 0xd5, 0x10, 0x81, 0xfd, 0x00, 0x00, 0x01, 0x00, // IID6153 - 0xd5, 0x10, 0x81, 0xfd, 0x00, 0x00, 0x10, 0x00, // IID6154 - 0xd5, 0x10, 0x81, 0xfd, 0x00, 0x00, 0x00, 0x01, // IID6155 - 0xd5, 0x10, 0x81, 0xfd, 0x00, 0x00, 0x00, 0x10, // IID6156 - 0xd5, 0x10, 0x83, 0xfe, 0x01, // IID6157 - 0xd5, 0x10, 0x83, 0xfe, 0x10, // IID6158 - 0xd5, 0x10, 0x81, 0xfe, 0x00, 0x01, 0x00, 0x00, // IID6159 - 0xd5, 0x10, 0x81, 0xfe, 0x00, 0x10, 0x00, 0x00, // IID6160 - 0xd5, 0x10, 0x81, 0xfe, 0x00, 0x00, 0x01, 0x00, // IID6161 - 0xd5, 0x10, 0x81, 0xfe, 0x00, 0x00, 0x10, 0x00, // IID6162 - 0xd5, 0x10, 0x81, 0xfe, 0x00, 0x00, 0x00, 0x01, // IID6163 - 0xd5, 0x10, 0x81, 0xfe, 0x00, 0x00, 0x00, 0x10, // IID6164 - 0xd5, 0x10, 0x83, 0xff, 0x01, // IID6165 - 0xd5, 0x10, 0x83, 0xff, 0x10, // IID6166 - 0xd5, 0x10, 0x81, 0xff, 0x00, 0x01, 0x00, 0x00, // IID6167 - 0xd5, 0x10, 0x81, 0xff, 0x00, 0x10, 0x00, 0x00, // IID6168 - 0xd5, 0x10, 0x81, 0xff, 0x00, 0x00, 0x01, 0x00, // IID6169 - 0xd5, 0x10, 0x81, 0xff, 0x00, 0x00, 0x10, 0x00, // IID6170 - 0xd5, 0x10, 0x81, 0xff, 0x00, 0x00, 0x00, 0x01, // IID6171 - 0xd5, 0x10, 0x81, 0xff, 0x00, 0x00, 0x00, 0x10, // IID6172 - 0xd5, 0x11, 0x83, 0xf8, 0x01, // IID6173 - 0xd5, 0x11, 0x83, 0xf8, 0x10, // IID6174 - 0xd5, 0x11, 0x81, 0xf8, 0x00, 0x01, 0x00, 0x00, // IID6175 - 0xd5, 0x11, 0x81, 0xf8, 0x00, 0x10, 0x00, 0x00, // IID6176 - 0xd5, 0x11, 0x81, 0xf8, 0x00, 0x00, 0x01, 0x00, // IID6177 - 0xd5, 0x11, 0x81, 0xf8, 0x00, 0x00, 0x10, 0x00, // IID6178 - 0xd5, 0x11, 0x81, 0xf8, 0x00, 0x00, 0x00, 0x01, // IID6179 - 0xd5, 0x11, 0x81, 0xf8, 0x00, 0x00, 0x00, 0x10, // IID6180 - 0xd5, 0x11, 0x83, 0xf9, 0x01, // IID6181 - 0xd5, 0x11, 0x83, 0xf9, 0x10, // IID6182 - 0xd5, 0x11, 0x81, 0xf9, 0x00, 0x01, 0x00, 0x00, // IID6183 - 0xd5, 0x11, 0x81, 0xf9, 0x00, 0x10, 0x00, 0x00, // IID6184 - 0xd5, 0x11, 0x81, 0xf9, 0x00, 0x00, 0x01, 0x00, // IID6185 - 0xd5, 0x11, 0x81, 0xf9, 0x00, 0x00, 0x10, 0x00, // IID6186 - 0xd5, 0x11, 0x81, 0xf9, 0x00, 0x00, 0x00, 0x01, // IID6187 - 0xd5, 0x11, 0x81, 0xf9, 0x00, 0x00, 0x00, 0x10, // IID6188 - 0xd5, 0x11, 0x83, 0xfa, 0x01, // IID6189 - 0xd5, 0x11, 0x83, 0xfa, 0x10, // IID6190 - 0xd5, 0x11, 0x81, 0xfa, 0x00, 0x01, 0x00, 0x00, // IID6191 - 0xd5, 0x11, 0x81, 0xfa, 0x00, 0x10, 0x00, 0x00, // IID6192 - 0xd5, 0x11, 0x81, 0xfa, 0x00, 0x00, 0x01, 0x00, // IID6193 - 0xd5, 0x11, 0x81, 0xfa, 0x00, 0x00, 0x10, 0x00, // IID6194 - 0xd5, 0x11, 0x81, 0xfa, 0x00, 0x00, 0x00, 0x01, // IID6195 - 0xd5, 0x11, 0x81, 0xfa, 0x00, 0x00, 0x00, 0x10, // IID6196 - 0xd5, 0x11, 0x83, 0xfb, 0x01, // IID6197 - 0xd5, 0x11, 0x83, 0xfb, 0x10, // IID6198 - 0xd5, 0x11, 0x81, 0xfb, 0x00, 0x01, 0x00, 0x00, // IID6199 - 0xd5, 0x11, 0x81, 0xfb, 0x00, 0x10, 0x00, 0x00, // IID6200 - 0xd5, 0x11, 0x81, 0xfb, 0x00, 0x00, 0x01, 0x00, // IID6201 - 0xd5, 0x11, 0x81, 0xfb, 0x00, 0x00, 0x10, 0x00, // IID6202 - 0xd5, 0x11, 0x81, 0xfb, 0x00, 0x00, 0x00, 0x01, // IID6203 - 0xd5, 0x11, 0x81, 0xfb, 0x00, 0x00, 0x00, 0x10, // IID6204 - 0xd5, 0x11, 0x83, 0xfc, 0x01, // IID6205 - 0xd5, 0x11, 0x83, 0xfc, 0x10, // IID6206 - 0xd5, 0x11, 0x81, 0xfc, 0x00, 0x01, 0x00, 0x00, // IID6207 - 0xd5, 0x11, 0x81, 0xfc, 0x00, 0x10, 0x00, 0x00, // IID6208 - 0xd5, 0x11, 0x81, 0xfc, 0x00, 0x00, 0x01, 0x00, // IID6209 - 0xd5, 0x11, 0x81, 0xfc, 0x00, 0x00, 0x10, 0x00, // IID6210 - 0xd5, 0x11, 0x81, 0xfc, 0x00, 0x00, 0x00, 0x01, // IID6211 - 0xd5, 0x11, 0x81, 0xfc, 0x00, 0x00, 0x00, 0x10, // IID6212 - 0xd5, 0x11, 0x83, 0xfd, 0x01, // IID6213 - 0xd5, 0x11, 0x83, 0xfd, 0x10, // IID6214 - 0xd5, 0x11, 0x81, 0xfd, 0x00, 0x01, 0x00, 0x00, // IID6215 - 0xd5, 0x11, 0x81, 0xfd, 0x00, 0x10, 0x00, 0x00, // IID6216 - 0xd5, 0x11, 0x81, 0xfd, 0x00, 0x00, 0x01, 0x00, // IID6217 - 0xd5, 0x11, 0x81, 0xfd, 0x00, 0x00, 0x10, 0x00, // IID6218 - 0xd5, 0x11, 0x81, 0xfd, 0x00, 0x00, 0x00, 0x01, // IID6219 - 0xd5, 0x11, 0x81, 0xfd, 0x00, 0x00, 0x00, 0x10, // IID6220 - 0xd5, 0x11, 0x83, 0xfe, 0x01, // IID6221 - 0xd5, 0x11, 0x83, 0xfe, 0x10, // IID6222 - 0xd5, 0x11, 0x81, 0xfe, 0x00, 0x01, 0x00, 0x00, // IID6223 - 0xd5, 0x11, 0x81, 0xfe, 0x00, 0x10, 0x00, 0x00, // IID6224 - 0xd5, 0x11, 0x81, 0xfe, 0x00, 0x00, 0x01, 0x00, // IID6225 - 0xd5, 0x11, 0x81, 0xfe, 0x00, 0x00, 0x10, 0x00, // IID6226 - 0xd5, 0x11, 0x81, 0xfe, 0x00, 0x00, 0x00, 0x01, // IID6227 - 0xd5, 0x11, 0x81, 0xfe, 0x00, 0x00, 0x00, 0x10, // IID6228 - 0xd5, 0x11, 0x83, 0xff, 0x01, // IID6229 - 0xd5, 0x11, 0x83, 0xff, 0x10, // IID6230 - 0xd5, 0x11, 0x81, 0xff, 0x00, 0x01, 0x00, 0x00, // IID6231 - 0xd5, 0x11, 0x81, 0xff, 0x00, 0x10, 0x00, 0x00, // IID6232 - 0xd5, 0x11, 0x81, 0xff, 0x00, 0x00, 0x01, 0x00, // IID6233 - 0xd5, 0x11, 0x81, 0xff, 0x00, 0x00, 0x10, 0x00, // IID6234 - 0xd5, 0x11, 0x81, 0xff, 0x00, 0x00, 0x00, 0x01, // IID6235 - 0xd5, 0x11, 0x81, 0xff, 0x00, 0x00, 0x00, 0x10, // IID6236 -#endif // _LP64 - 0xd1, 0xd1, // IID6237 - 0xc1, 0xd1, 0x02, // IID6238 - 0xc1, 0xd1, 0x04, // IID6239 - 0xc1, 0xd1, 0x08, // IID6240 - 0xc1, 0xd1, 0x10, // IID6241 - 0xd1, 0xd2, // IID6242 - 0xc1, 0xd2, 0x02, // IID6243 - 0xc1, 0xd2, 0x04, // IID6244 - 0xc1, 0xd2, 0x08, // IID6245 - 0xc1, 0xd2, 0x10, // IID6246 - 0xd1, 0xd3, // IID6247 - 0xc1, 0xd3, 0x02, // IID6248 - 0xc1, 0xd3, 0x04, // IID6249 - 0xc1, 0xd3, 0x08, // IID6250 - 0xc1, 0xd3, 0x10, // IID6251 -#ifdef _LP64 - 0x41, 0xd1, 0xd0, // IID6252 - 0x41, 0xc1, 0xd0, 0x02, // IID6253 - 0x41, 0xc1, 0xd0, 0x04, // IID6254 - 0x41, 0xc1, 0xd0, 0x08, // IID6255 - 0x41, 0xc1, 0xd0, 0x10, // IID6256 - 0x41, 0xd1, 0xd1, // IID6257 - 0x41, 0xc1, 0xd1, 0x02, // IID6258 - 0x41, 0xc1, 0xd1, 0x04, // IID6259 - 0x41, 0xc1, 0xd1, 0x08, // IID6260 - 0x41, 0xc1, 0xd1, 0x10, // IID6261 - 0x41, 0xd1, 0xd2, // IID6262 - 0x41, 0xc1, 0xd2, 0x02, // IID6263 - 0x41, 0xc1, 0xd2, 0x04, // IID6264 - 0x41, 0xc1, 0xd2, 0x08, // IID6265 - 0x41, 0xc1, 0xd2, 0x10, // IID6266 - 0x41, 0xd1, 0xd3, // IID6267 - 0x41, 0xc1, 0xd3, 0x02, // IID6268 - 0x41, 0xc1, 0xd3, 0x04, // IID6269 - 0x41, 0xc1, 0xd3, 0x08, // IID6270 - 0x41, 0xc1, 0xd3, 0x10, // IID6271 - 0x41, 0xd1, 0xd4, // IID6272 - 0x41, 0xc1, 0xd4, 0x02, // IID6273 - 0x41, 0xc1, 0xd4, 0x04, // IID6274 - 0x41, 0xc1, 0xd4, 0x08, // IID6275 - 0x41, 0xc1, 0xd4, 0x10, // IID6276 - 0x41, 0xd1, 0xd5, // IID6277 - 0x41, 0xc1, 0xd5, 0x02, // IID6278 - 0x41, 0xc1, 0xd5, 0x04, // IID6279 - 0x41, 0xc1, 0xd5, 0x08, // IID6280 - 0x41, 0xc1, 0xd5, 0x10, // IID6281 - 0x41, 0xd1, 0xd6, // IID6282 - 0x41, 0xc1, 0xd6, 0x02, // IID6283 - 0x41, 0xc1, 0xd6, 0x04, // IID6284 - 0x41, 0xc1, 0xd6, 0x08, // IID6285 - 0x41, 0xc1, 0xd6, 0x10, // IID6286 - 0x41, 0xd1, 0xd7, // IID6287 - 0x41, 0xc1, 0xd7, 0x02, // IID6288 - 0x41, 0xc1, 0xd7, 0x04, // IID6289 - 0x41, 0xc1, 0xd7, 0x08, // IID6290 - 0x41, 0xc1, 0xd7, 0x10, // IID6291 - 0xd5, 0x10, 0xd1, 0xd0, // IID6292 - 0xd5, 0x10, 0xc1, 0xd0, 0x02, // IID6293 - 0xd5, 0x10, 0xc1, 0xd0, 0x04, // IID6294 - 0xd5, 0x10, 0xc1, 0xd0, 0x08, // IID6295 - 0xd5, 0x10, 0xc1, 0xd0, 0x10, // IID6296 - 0xd5, 0x10, 0xd1, 0xd1, // IID6297 - 0xd5, 0x10, 0xc1, 0xd1, 0x02, // IID6298 - 0xd5, 0x10, 0xc1, 0xd1, 0x04, // IID6299 - 0xd5, 0x10, 0xc1, 0xd1, 0x08, // IID6300 - 0xd5, 0x10, 0xc1, 0xd1, 0x10, // IID6301 - 0xd5, 0x10, 0xd1, 0xd2, // IID6302 - 0xd5, 0x10, 0xc1, 0xd2, 0x02, // IID6303 - 0xd5, 0x10, 0xc1, 0xd2, 0x04, // IID6304 - 0xd5, 0x10, 0xc1, 0xd2, 0x08, // IID6305 - 0xd5, 0x10, 0xc1, 0xd2, 0x10, // IID6306 - 0xd5, 0x10, 0xd1, 0xd3, // IID6307 - 0xd5, 0x10, 0xc1, 0xd3, 0x02, // IID6308 - 0xd5, 0x10, 0xc1, 0xd3, 0x04, // IID6309 - 0xd5, 0x10, 0xc1, 0xd3, 0x08, // IID6310 - 0xd5, 0x10, 0xc1, 0xd3, 0x10, // IID6311 - 0xd5, 0x10, 0xd1, 0xd4, // IID6312 - 0xd5, 0x10, 0xc1, 0xd4, 0x02, // IID6313 - 0xd5, 0x10, 0xc1, 0xd4, 0x04, // IID6314 - 0xd5, 0x10, 0xc1, 0xd4, 0x08, // IID6315 - 0xd5, 0x10, 0xc1, 0xd4, 0x10, // IID6316 - 0xd5, 0x10, 0xd1, 0xd5, // IID6317 - 0xd5, 0x10, 0xc1, 0xd5, 0x02, // IID6318 - 0xd5, 0x10, 0xc1, 0xd5, 0x04, // IID6319 - 0xd5, 0x10, 0xc1, 0xd5, 0x08, // IID6320 - 0xd5, 0x10, 0xc1, 0xd5, 0x10, // IID6321 - 0xd5, 0x10, 0xd1, 0xd6, // IID6322 - 0xd5, 0x10, 0xc1, 0xd6, 0x02, // IID6323 - 0xd5, 0x10, 0xc1, 0xd6, 0x04, // IID6324 - 0xd5, 0x10, 0xc1, 0xd6, 0x08, // IID6325 - 0xd5, 0x10, 0xc1, 0xd6, 0x10, // IID6326 - 0xd5, 0x10, 0xd1, 0xd7, // IID6327 - 0xd5, 0x10, 0xc1, 0xd7, 0x02, // IID6328 - 0xd5, 0x10, 0xc1, 0xd7, 0x04, // IID6329 - 0xd5, 0x10, 0xc1, 0xd7, 0x08, // IID6330 - 0xd5, 0x10, 0xc1, 0xd7, 0x10, // IID6331 - 0xd5, 0x11, 0xd1, 0xd0, // IID6332 - 0xd5, 0x11, 0xc1, 0xd0, 0x02, // IID6333 - 0xd5, 0x11, 0xc1, 0xd0, 0x04, // IID6334 - 0xd5, 0x11, 0xc1, 0xd0, 0x08, // IID6335 - 0xd5, 0x11, 0xc1, 0xd0, 0x10, // IID6336 - 0xd5, 0x11, 0xd1, 0xd1, // IID6337 - 0xd5, 0x11, 0xc1, 0xd1, 0x02, // IID6338 - 0xd5, 0x11, 0xc1, 0xd1, 0x04, // IID6339 - 0xd5, 0x11, 0xc1, 0xd1, 0x08, // IID6340 - 0xd5, 0x11, 0xc1, 0xd1, 0x10, // IID6341 - 0xd5, 0x11, 0xd1, 0xd2, // IID6342 - 0xd5, 0x11, 0xc1, 0xd2, 0x02, // IID6343 - 0xd5, 0x11, 0xc1, 0xd2, 0x04, // IID6344 - 0xd5, 0x11, 0xc1, 0xd2, 0x08, // IID6345 - 0xd5, 0x11, 0xc1, 0xd2, 0x10, // IID6346 - 0xd5, 0x11, 0xd1, 0xd3, // IID6347 - 0xd5, 0x11, 0xc1, 0xd3, 0x02, // IID6348 - 0xd5, 0x11, 0xc1, 0xd3, 0x04, // IID6349 - 0xd5, 0x11, 0xc1, 0xd3, 0x08, // IID6350 - 0xd5, 0x11, 0xc1, 0xd3, 0x10, // IID6351 - 0xd5, 0x11, 0xd1, 0xd4, // IID6352 - 0xd5, 0x11, 0xc1, 0xd4, 0x02, // IID6353 - 0xd5, 0x11, 0xc1, 0xd4, 0x04, // IID6354 - 0xd5, 0x11, 0xc1, 0xd4, 0x08, // IID6355 - 0xd5, 0x11, 0xc1, 0xd4, 0x10, // IID6356 - 0xd5, 0x11, 0xd1, 0xd5, // IID6357 - 0xd5, 0x11, 0xc1, 0xd5, 0x02, // IID6358 - 0xd5, 0x11, 0xc1, 0xd5, 0x04, // IID6359 - 0xd5, 0x11, 0xc1, 0xd5, 0x08, // IID6360 - 0xd5, 0x11, 0xc1, 0xd5, 0x10, // IID6361 - 0xd5, 0x11, 0xd1, 0xd6, // IID6362 - 0xd5, 0x11, 0xc1, 0xd6, 0x02, // IID6363 - 0xd5, 0x11, 0xc1, 0xd6, 0x04, // IID6364 - 0xd5, 0x11, 0xc1, 0xd6, 0x08, // IID6365 - 0xd5, 0x11, 0xc1, 0xd6, 0x10, // IID6366 - 0xd5, 0x11, 0xd1, 0xd7, // IID6367 - 0xd5, 0x11, 0xc1, 0xd7, 0x02, // IID6368 - 0xd5, 0x11, 0xc1, 0xd7, 0x04, // IID6369 - 0xd5, 0x11, 0xc1, 0xd7, 0x08, // IID6370 - 0xd5, 0x11, 0xc1, 0xd7, 0x10, // IID6371 -#endif // _LP64 - 0xd1, 0xc1, // IID6372 - 0xc1, 0xc1, 0x02, // IID6373 - 0xc1, 0xc1, 0x04, // IID6374 - 0xc1, 0xc1, 0x08, // IID6375 - 0xc1, 0xc1, 0x10, // IID6376 - 0xd1, 0xc2, // IID6377 - 0xc1, 0xc2, 0x02, // IID6378 - 0xc1, 0xc2, 0x04, // IID6379 - 0xc1, 0xc2, 0x08, // IID6380 - 0xc1, 0xc2, 0x10, // IID6381 - 0xd1, 0xc3, // IID6382 - 0xc1, 0xc3, 0x02, // IID6383 - 0xc1, 0xc3, 0x04, // IID6384 - 0xc1, 0xc3, 0x08, // IID6385 - 0xc1, 0xc3, 0x10, // IID6386 -#ifdef _LP64 - 0x41, 0xd1, 0xc0, // IID6387 - 0x41, 0xc1, 0xc0, 0x02, // IID6388 - 0x41, 0xc1, 0xc0, 0x04, // IID6389 - 0x41, 0xc1, 0xc0, 0x08, // IID6390 - 0x41, 0xc1, 0xc0, 0x10, // IID6391 - 0x41, 0xd1, 0xc1, // IID6392 - 0x41, 0xc1, 0xc1, 0x02, // IID6393 - 0x41, 0xc1, 0xc1, 0x04, // IID6394 - 0x41, 0xc1, 0xc1, 0x08, // IID6395 - 0x41, 0xc1, 0xc1, 0x10, // IID6396 - 0x41, 0xd1, 0xc2, // IID6397 - 0x41, 0xc1, 0xc2, 0x02, // IID6398 - 0x41, 0xc1, 0xc2, 0x04, // IID6399 - 0x41, 0xc1, 0xc2, 0x08, // IID6400 - 0x41, 0xc1, 0xc2, 0x10, // IID6401 - 0x41, 0xd1, 0xc3, // IID6402 - 0x41, 0xc1, 0xc3, 0x02, // IID6403 - 0x41, 0xc1, 0xc3, 0x04, // IID6404 - 0x41, 0xc1, 0xc3, 0x08, // IID6405 - 0x41, 0xc1, 0xc3, 0x10, // IID6406 - 0x41, 0xd1, 0xc4, // IID6407 - 0x41, 0xc1, 0xc4, 0x02, // IID6408 - 0x41, 0xc1, 0xc4, 0x04, // IID6409 - 0x41, 0xc1, 0xc4, 0x08, // IID6410 - 0x41, 0xc1, 0xc4, 0x10, // IID6411 - 0x41, 0xd1, 0xc5, // IID6412 - 0x41, 0xc1, 0xc5, 0x02, // IID6413 - 0x41, 0xc1, 0xc5, 0x04, // IID6414 - 0x41, 0xc1, 0xc5, 0x08, // IID6415 - 0x41, 0xc1, 0xc5, 0x10, // IID6416 - 0x41, 0xd1, 0xc6, // IID6417 - 0x41, 0xc1, 0xc6, 0x02, // IID6418 - 0x41, 0xc1, 0xc6, 0x04, // IID6419 - 0x41, 0xc1, 0xc6, 0x08, // IID6420 - 0x41, 0xc1, 0xc6, 0x10, // IID6421 - 0x41, 0xd1, 0xc7, // IID6422 - 0x41, 0xc1, 0xc7, 0x02, // IID6423 - 0x41, 0xc1, 0xc7, 0x04, // IID6424 - 0x41, 0xc1, 0xc7, 0x08, // IID6425 - 0x41, 0xc1, 0xc7, 0x10, // IID6426 - 0xd5, 0x10, 0xd1, 0xc0, // IID6427 - 0xd5, 0x10, 0xc1, 0xc0, 0x02, // IID6428 - 0xd5, 0x10, 0xc1, 0xc0, 0x04, // IID6429 - 0xd5, 0x10, 0xc1, 0xc0, 0x08, // IID6430 - 0xd5, 0x10, 0xc1, 0xc0, 0x10, // IID6431 - 0xd5, 0x10, 0xd1, 0xc1, // IID6432 - 0xd5, 0x10, 0xc1, 0xc1, 0x02, // IID6433 - 0xd5, 0x10, 0xc1, 0xc1, 0x04, // IID6434 - 0xd5, 0x10, 0xc1, 0xc1, 0x08, // IID6435 - 0xd5, 0x10, 0xc1, 0xc1, 0x10, // IID6436 - 0xd5, 0x10, 0xd1, 0xc2, // IID6437 - 0xd5, 0x10, 0xc1, 0xc2, 0x02, // IID6438 - 0xd5, 0x10, 0xc1, 0xc2, 0x04, // IID6439 - 0xd5, 0x10, 0xc1, 0xc2, 0x08, // IID6440 - 0xd5, 0x10, 0xc1, 0xc2, 0x10, // IID6441 - 0xd5, 0x10, 0xd1, 0xc3, // IID6442 - 0xd5, 0x10, 0xc1, 0xc3, 0x02, // IID6443 - 0xd5, 0x10, 0xc1, 0xc3, 0x04, // IID6444 - 0xd5, 0x10, 0xc1, 0xc3, 0x08, // IID6445 - 0xd5, 0x10, 0xc1, 0xc3, 0x10, // IID6446 - 0xd5, 0x10, 0xd1, 0xc4, // IID6447 - 0xd5, 0x10, 0xc1, 0xc4, 0x02, // IID6448 - 0xd5, 0x10, 0xc1, 0xc4, 0x04, // IID6449 - 0xd5, 0x10, 0xc1, 0xc4, 0x08, // IID6450 - 0xd5, 0x10, 0xc1, 0xc4, 0x10, // IID6451 - 0xd5, 0x10, 0xd1, 0xc5, // IID6452 - 0xd5, 0x10, 0xc1, 0xc5, 0x02, // IID6453 - 0xd5, 0x10, 0xc1, 0xc5, 0x04, // IID6454 - 0xd5, 0x10, 0xc1, 0xc5, 0x08, // IID6455 - 0xd5, 0x10, 0xc1, 0xc5, 0x10, // IID6456 - 0xd5, 0x10, 0xd1, 0xc6, // IID6457 - 0xd5, 0x10, 0xc1, 0xc6, 0x02, // IID6458 - 0xd5, 0x10, 0xc1, 0xc6, 0x04, // IID6459 - 0xd5, 0x10, 0xc1, 0xc6, 0x08, // IID6460 - 0xd5, 0x10, 0xc1, 0xc6, 0x10, // IID6461 - 0xd5, 0x10, 0xd1, 0xc7, // IID6462 - 0xd5, 0x10, 0xc1, 0xc7, 0x02, // IID6463 - 0xd5, 0x10, 0xc1, 0xc7, 0x04, // IID6464 - 0xd5, 0x10, 0xc1, 0xc7, 0x08, // IID6465 - 0xd5, 0x10, 0xc1, 0xc7, 0x10, // IID6466 - 0xd5, 0x11, 0xd1, 0xc0, // IID6467 - 0xd5, 0x11, 0xc1, 0xc0, 0x02, // IID6468 - 0xd5, 0x11, 0xc1, 0xc0, 0x04, // IID6469 - 0xd5, 0x11, 0xc1, 0xc0, 0x08, // IID6470 - 0xd5, 0x11, 0xc1, 0xc0, 0x10, // IID6471 - 0xd5, 0x11, 0xd1, 0xc1, // IID6472 - 0xd5, 0x11, 0xc1, 0xc1, 0x02, // IID6473 - 0xd5, 0x11, 0xc1, 0xc1, 0x04, // IID6474 - 0xd5, 0x11, 0xc1, 0xc1, 0x08, // IID6475 - 0xd5, 0x11, 0xc1, 0xc1, 0x10, // IID6476 - 0xd5, 0x11, 0xd1, 0xc2, // IID6477 - 0xd5, 0x11, 0xc1, 0xc2, 0x02, // IID6478 - 0xd5, 0x11, 0xc1, 0xc2, 0x04, // IID6479 - 0xd5, 0x11, 0xc1, 0xc2, 0x08, // IID6480 - 0xd5, 0x11, 0xc1, 0xc2, 0x10, // IID6481 - 0xd5, 0x11, 0xd1, 0xc3, // IID6482 - 0xd5, 0x11, 0xc1, 0xc3, 0x02, // IID6483 - 0xd5, 0x11, 0xc1, 0xc3, 0x04, // IID6484 - 0xd5, 0x11, 0xc1, 0xc3, 0x08, // IID6485 - 0xd5, 0x11, 0xc1, 0xc3, 0x10, // IID6486 - 0xd5, 0x11, 0xd1, 0xc4, // IID6487 - 0xd5, 0x11, 0xc1, 0xc4, 0x02, // IID6488 - 0xd5, 0x11, 0xc1, 0xc4, 0x04, // IID6489 - 0xd5, 0x11, 0xc1, 0xc4, 0x08, // IID6490 - 0xd5, 0x11, 0xc1, 0xc4, 0x10, // IID6491 - 0xd5, 0x11, 0xd1, 0xc5, // IID6492 - 0xd5, 0x11, 0xc1, 0xc5, 0x02, // IID6493 - 0xd5, 0x11, 0xc1, 0xc5, 0x04, // IID6494 - 0xd5, 0x11, 0xc1, 0xc5, 0x08, // IID6495 - 0xd5, 0x11, 0xc1, 0xc5, 0x10, // IID6496 - 0xd5, 0x11, 0xd1, 0xc6, // IID6497 - 0xd5, 0x11, 0xc1, 0xc6, 0x02, // IID6498 - 0xd5, 0x11, 0xc1, 0xc6, 0x04, // IID6499 - 0xd5, 0x11, 0xc1, 0xc6, 0x08, // IID6500 - 0xd5, 0x11, 0xc1, 0xc6, 0x10, // IID6501 - 0xd5, 0x11, 0xd1, 0xc7, // IID6502 - 0xd5, 0x11, 0xc1, 0xc7, 0x02, // IID6503 - 0xd5, 0x11, 0xc1, 0xc7, 0x04, // IID6504 - 0xd5, 0x11, 0xc1, 0xc7, 0x08, // IID6505 - 0xd5, 0x11, 0xc1, 0xc7, 0x10, // IID6506 -#endif // _LP64 - 0xd1, 0xc9, // IID6507 - 0xc1, 0xc9, 0x02, // IID6508 - 0xc1, 0xc9, 0x04, // IID6509 - 0xc1, 0xc9, 0x08, // IID6510 - 0xc1, 0xc9, 0x10, // IID6511 - 0xd1, 0xca, // IID6512 - 0xc1, 0xca, 0x02, // IID6513 - 0xc1, 0xca, 0x04, // IID6514 - 0xc1, 0xca, 0x08, // IID6515 - 0xc1, 0xca, 0x10, // IID6516 - 0xd1, 0xcb, // IID6517 - 0xc1, 0xcb, 0x02, // IID6518 - 0xc1, 0xcb, 0x04, // IID6519 - 0xc1, 0xcb, 0x08, // IID6520 - 0xc1, 0xcb, 0x10, // IID6521 -#ifdef _LP64 - 0x41, 0xd1, 0xc8, // IID6522 - 0x41, 0xc1, 0xc8, 0x02, // IID6523 - 0x41, 0xc1, 0xc8, 0x04, // IID6524 - 0x41, 0xc1, 0xc8, 0x08, // IID6525 - 0x41, 0xc1, 0xc8, 0x10, // IID6526 - 0x41, 0xd1, 0xc9, // IID6527 - 0x41, 0xc1, 0xc9, 0x02, // IID6528 - 0x41, 0xc1, 0xc9, 0x04, // IID6529 - 0x41, 0xc1, 0xc9, 0x08, // IID6530 - 0x41, 0xc1, 0xc9, 0x10, // IID6531 - 0x41, 0xd1, 0xca, // IID6532 - 0x41, 0xc1, 0xca, 0x02, // IID6533 - 0x41, 0xc1, 0xca, 0x04, // IID6534 - 0x41, 0xc1, 0xca, 0x08, // IID6535 - 0x41, 0xc1, 0xca, 0x10, // IID6536 - 0x41, 0xd1, 0xcb, // IID6537 - 0x41, 0xc1, 0xcb, 0x02, // IID6538 - 0x41, 0xc1, 0xcb, 0x04, // IID6539 - 0x41, 0xc1, 0xcb, 0x08, // IID6540 - 0x41, 0xc1, 0xcb, 0x10, // IID6541 - 0x41, 0xd1, 0xcc, // IID6542 - 0x41, 0xc1, 0xcc, 0x02, // IID6543 - 0x41, 0xc1, 0xcc, 0x04, // IID6544 - 0x41, 0xc1, 0xcc, 0x08, // IID6545 - 0x41, 0xc1, 0xcc, 0x10, // IID6546 - 0x41, 0xd1, 0xcd, // IID6547 - 0x41, 0xc1, 0xcd, 0x02, // IID6548 - 0x41, 0xc1, 0xcd, 0x04, // IID6549 - 0x41, 0xc1, 0xcd, 0x08, // IID6550 - 0x41, 0xc1, 0xcd, 0x10, // IID6551 - 0x41, 0xd1, 0xce, // IID6552 - 0x41, 0xc1, 0xce, 0x02, // IID6553 - 0x41, 0xc1, 0xce, 0x04, // IID6554 - 0x41, 0xc1, 0xce, 0x08, // IID6555 - 0x41, 0xc1, 0xce, 0x10, // IID6556 - 0x41, 0xd1, 0xcf, // IID6557 - 0x41, 0xc1, 0xcf, 0x02, // IID6558 - 0x41, 0xc1, 0xcf, 0x04, // IID6559 - 0x41, 0xc1, 0xcf, 0x08, // IID6560 - 0x41, 0xc1, 0xcf, 0x10, // IID6561 - 0xd5, 0x10, 0xd1, 0xc8, // IID6562 - 0xd5, 0x10, 0xc1, 0xc8, 0x02, // IID6563 - 0xd5, 0x10, 0xc1, 0xc8, 0x04, // IID6564 - 0xd5, 0x10, 0xc1, 0xc8, 0x08, // IID6565 - 0xd5, 0x10, 0xc1, 0xc8, 0x10, // IID6566 - 0xd5, 0x10, 0xd1, 0xc9, // IID6567 - 0xd5, 0x10, 0xc1, 0xc9, 0x02, // IID6568 - 0xd5, 0x10, 0xc1, 0xc9, 0x04, // IID6569 - 0xd5, 0x10, 0xc1, 0xc9, 0x08, // IID6570 - 0xd5, 0x10, 0xc1, 0xc9, 0x10, // IID6571 - 0xd5, 0x10, 0xd1, 0xca, // IID6572 - 0xd5, 0x10, 0xc1, 0xca, 0x02, // IID6573 - 0xd5, 0x10, 0xc1, 0xca, 0x04, // IID6574 - 0xd5, 0x10, 0xc1, 0xca, 0x08, // IID6575 - 0xd5, 0x10, 0xc1, 0xca, 0x10, // IID6576 - 0xd5, 0x10, 0xd1, 0xcb, // IID6577 - 0xd5, 0x10, 0xc1, 0xcb, 0x02, // IID6578 - 0xd5, 0x10, 0xc1, 0xcb, 0x04, // IID6579 - 0xd5, 0x10, 0xc1, 0xcb, 0x08, // IID6580 - 0xd5, 0x10, 0xc1, 0xcb, 0x10, // IID6581 - 0xd5, 0x10, 0xd1, 0xcc, // IID6582 - 0xd5, 0x10, 0xc1, 0xcc, 0x02, // IID6583 - 0xd5, 0x10, 0xc1, 0xcc, 0x04, // IID6584 - 0xd5, 0x10, 0xc1, 0xcc, 0x08, // IID6585 - 0xd5, 0x10, 0xc1, 0xcc, 0x10, // IID6586 - 0xd5, 0x10, 0xd1, 0xcd, // IID6587 - 0xd5, 0x10, 0xc1, 0xcd, 0x02, // IID6588 - 0xd5, 0x10, 0xc1, 0xcd, 0x04, // IID6589 - 0xd5, 0x10, 0xc1, 0xcd, 0x08, // IID6590 - 0xd5, 0x10, 0xc1, 0xcd, 0x10, // IID6591 - 0xd5, 0x10, 0xd1, 0xce, // IID6592 - 0xd5, 0x10, 0xc1, 0xce, 0x02, // IID6593 - 0xd5, 0x10, 0xc1, 0xce, 0x04, // IID6594 - 0xd5, 0x10, 0xc1, 0xce, 0x08, // IID6595 - 0xd5, 0x10, 0xc1, 0xce, 0x10, // IID6596 - 0xd5, 0x10, 0xd1, 0xcf, // IID6597 - 0xd5, 0x10, 0xc1, 0xcf, 0x02, // IID6598 - 0xd5, 0x10, 0xc1, 0xcf, 0x04, // IID6599 - 0xd5, 0x10, 0xc1, 0xcf, 0x08, // IID6600 - 0xd5, 0x10, 0xc1, 0xcf, 0x10, // IID6601 - 0xd5, 0x11, 0xd1, 0xc8, // IID6602 - 0xd5, 0x11, 0xc1, 0xc8, 0x02, // IID6603 - 0xd5, 0x11, 0xc1, 0xc8, 0x04, // IID6604 - 0xd5, 0x11, 0xc1, 0xc8, 0x08, // IID6605 - 0xd5, 0x11, 0xc1, 0xc8, 0x10, // IID6606 - 0xd5, 0x11, 0xd1, 0xc9, // IID6607 - 0xd5, 0x11, 0xc1, 0xc9, 0x02, // IID6608 - 0xd5, 0x11, 0xc1, 0xc9, 0x04, // IID6609 - 0xd5, 0x11, 0xc1, 0xc9, 0x08, // IID6610 - 0xd5, 0x11, 0xc1, 0xc9, 0x10, // IID6611 - 0xd5, 0x11, 0xd1, 0xca, // IID6612 - 0xd5, 0x11, 0xc1, 0xca, 0x02, // IID6613 - 0xd5, 0x11, 0xc1, 0xca, 0x04, // IID6614 - 0xd5, 0x11, 0xc1, 0xca, 0x08, // IID6615 - 0xd5, 0x11, 0xc1, 0xca, 0x10, // IID6616 - 0xd5, 0x11, 0xd1, 0xcb, // IID6617 - 0xd5, 0x11, 0xc1, 0xcb, 0x02, // IID6618 - 0xd5, 0x11, 0xc1, 0xcb, 0x04, // IID6619 - 0xd5, 0x11, 0xc1, 0xcb, 0x08, // IID6620 - 0xd5, 0x11, 0xc1, 0xcb, 0x10, // IID6621 - 0xd5, 0x11, 0xd1, 0xcc, // IID6622 - 0xd5, 0x11, 0xc1, 0xcc, 0x02, // IID6623 - 0xd5, 0x11, 0xc1, 0xcc, 0x04, // IID6624 - 0xd5, 0x11, 0xc1, 0xcc, 0x08, // IID6625 - 0xd5, 0x11, 0xc1, 0xcc, 0x10, // IID6626 - 0xd5, 0x11, 0xd1, 0xcd, // IID6627 - 0xd5, 0x11, 0xc1, 0xcd, 0x02, // IID6628 - 0xd5, 0x11, 0xc1, 0xcd, 0x04, // IID6629 - 0xd5, 0x11, 0xc1, 0xcd, 0x08, // IID6630 - 0xd5, 0x11, 0xc1, 0xcd, 0x10, // IID6631 - 0xd5, 0x11, 0xd1, 0xce, // IID6632 - 0xd5, 0x11, 0xc1, 0xce, 0x02, // IID6633 - 0xd5, 0x11, 0xc1, 0xce, 0x04, // IID6634 - 0xd5, 0x11, 0xc1, 0xce, 0x08, // IID6635 - 0xd5, 0x11, 0xc1, 0xce, 0x10, // IID6636 - 0xd5, 0x11, 0xd1, 0xcf, // IID6637 - 0xd5, 0x11, 0xc1, 0xcf, 0x02, // IID6638 - 0xd5, 0x11, 0xc1, 0xcf, 0x04, // IID6639 - 0xd5, 0x11, 0xc1, 0xcf, 0x08, // IID6640 - 0xd5, 0x11, 0xc1, 0xcf, 0x10, // IID6641 -#endif // _LP64 - 0xd1, 0xf9, // IID6642 - 0xc1, 0xf9, 0x02, // IID6643 - 0xc1, 0xf9, 0x04, // IID6644 - 0xc1, 0xf9, 0x08, // IID6645 - 0xc1, 0xf9, 0x10, // IID6646 - 0xd1, 0xfa, // IID6647 - 0xc1, 0xfa, 0x02, // IID6648 - 0xc1, 0xfa, 0x04, // IID6649 - 0xc1, 0xfa, 0x08, // IID6650 - 0xc1, 0xfa, 0x10, // IID6651 - 0xd1, 0xfb, // IID6652 - 0xc1, 0xfb, 0x02, // IID6653 - 0xc1, 0xfb, 0x04, // IID6654 - 0xc1, 0xfb, 0x08, // IID6655 - 0xc1, 0xfb, 0x10, // IID6656 -#ifdef _LP64 - 0x41, 0xd1, 0xf8, // IID6657 - 0x41, 0xc1, 0xf8, 0x02, // IID6658 - 0x41, 0xc1, 0xf8, 0x04, // IID6659 - 0x41, 0xc1, 0xf8, 0x08, // IID6660 - 0x41, 0xc1, 0xf8, 0x10, // IID6661 - 0x41, 0xd1, 0xf9, // IID6662 - 0x41, 0xc1, 0xf9, 0x02, // IID6663 - 0x41, 0xc1, 0xf9, 0x04, // IID6664 - 0x41, 0xc1, 0xf9, 0x08, // IID6665 - 0x41, 0xc1, 0xf9, 0x10, // IID6666 - 0x41, 0xd1, 0xfa, // IID6667 - 0x41, 0xc1, 0xfa, 0x02, // IID6668 - 0x41, 0xc1, 0xfa, 0x04, // IID6669 - 0x41, 0xc1, 0xfa, 0x08, // IID6670 - 0x41, 0xc1, 0xfa, 0x10, // IID6671 - 0x41, 0xd1, 0xfb, // IID6672 - 0x41, 0xc1, 0xfb, 0x02, // IID6673 - 0x41, 0xc1, 0xfb, 0x04, // IID6674 - 0x41, 0xc1, 0xfb, 0x08, // IID6675 - 0x41, 0xc1, 0xfb, 0x10, // IID6676 - 0x41, 0xd1, 0xfc, // IID6677 - 0x41, 0xc1, 0xfc, 0x02, // IID6678 - 0x41, 0xc1, 0xfc, 0x04, // IID6679 - 0x41, 0xc1, 0xfc, 0x08, // IID6680 - 0x41, 0xc1, 0xfc, 0x10, // IID6681 - 0x41, 0xd1, 0xfd, // IID6682 - 0x41, 0xc1, 0xfd, 0x02, // IID6683 - 0x41, 0xc1, 0xfd, 0x04, // IID6684 - 0x41, 0xc1, 0xfd, 0x08, // IID6685 - 0x41, 0xc1, 0xfd, 0x10, // IID6686 - 0x41, 0xd1, 0xfe, // IID6687 - 0x41, 0xc1, 0xfe, 0x02, // IID6688 - 0x41, 0xc1, 0xfe, 0x04, // IID6689 - 0x41, 0xc1, 0xfe, 0x08, // IID6690 - 0x41, 0xc1, 0xfe, 0x10, // IID6691 - 0x41, 0xd1, 0xff, // IID6692 - 0x41, 0xc1, 0xff, 0x02, // IID6693 - 0x41, 0xc1, 0xff, 0x04, // IID6694 - 0x41, 0xc1, 0xff, 0x08, // IID6695 - 0x41, 0xc1, 0xff, 0x10, // IID6696 - 0xd5, 0x10, 0xd1, 0xf8, // IID6697 - 0xd5, 0x10, 0xc1, 0xf8, 0x02, // IID6698 - 0xd5, 0x10, 0xc1, 0xf8, 0x04, // IID6699 - 0xd5, 0x10, 0xc1, 0xf8, 0x08, // IID6700 - 0xd5, 0x10, 0xc1, 0xf8, 0x10, // IID6701 - 0xd5, 0x10, 0xd1, 0xf9, // IID6702 - 0xd5, 0x10, 0xc1, 0xf9, 0x02, // IID6703 - 0xd5, 0x10, 0xc1, 0xf9, 0x04, // IID6704 - 0xd5, 0x10, 0xc1, 0xf9, 0x08, // IID6705 - 0xd5, 0x10, 0xc1, 0xf9, 0x10, // IID6706 - 0xd5, 0x10, 0xd1, 0xfa, // IID6707 - 0xd5, 0x10, 0xc1, 0xfa, 0x02, // IID6708 - 0xd5, 0x10, 0xc1, 0xfa, 0x04, // IID6709 - 0xd5, 0x10, 0xc1, 0xfa, 0x08, // IID6710 - 0xd5, 0x10, 0xc1, 0xfa, 0x10, // IID6711 - 0xd5, 0x10, 0xd1, 0xfb, // IID6712 - 0xd5, 0x10, 0xc1, 0xfb, 0x02, // IID6713 - 0xd5, 0x10, 0xc1, 0xfb, 0x04, // IID6714 - 0xd5, 0x10, 0xc1, 0xfb, 0x08, // IID6715 - 0xd5, 0x10, 0xc1, 0xfb, 0x10, // IID6716 - 0xd5, 0x10, 0xd1, 0xfc, // IID6717 - 0xd5, 0x10, 0xc1, 0xfc, 0x02, // IID6718 - 0xd5, 0x10, 0xc1, 0xfc, 0x04, // IID6719 - 0xd5, 0x10, 0xc1, 0xfc, 0x08, // IID6720 - 0xd5, 0x10, 0xc1, 0xfc, 0x10, // IID6721 - 0xd5, 0x10, 0xd1, 0xfd, // IID6722 - 0xd5, 0x10, 0xc1, 0xfd, 0x02, // IID6723 - 0xd5, 0x10, 0xc1, 0xfd, 0x04, // IID6724 - 0xd5, 0x10, 0xc1, 0xfd, 0x08, // IID6725 - 0xd5, 0x10, 0xc1, 0xfd, 0x10, // IID6726 - 0xd5, 0x10, 0xd1, 0xfe, // IID6727 - 0xd5, 0x10, 0xc1, 0xfe, 0x02, // IID6728 - 0xd5, 0x10, 0xc1, 0xfe, 0x04, // IID6729 - 0xd5, 0x10, 0xc1, 0xfe, 0x08, // IID6730 - 0xd5, 0x10, 0xc1, 0xfe, 0x10, // IID6731 - 0xd5, 0x10, 0xd1, 0xff, // IID6732 - 0xd5, 0x10, 0xc1, 0xff, 0x02, // IID6733 - 0xd5, 0x10, 0xc1, 0xff, 0x04, // IID6734 - 0xd5, 0x10, 0xc1, 0xff, 0x08, // IID6735 - 0xd5, 0x10, 0xc1, 0xff, 0x10, // IID6736 - 0xd5, 0x11, 0xd1, 0xf8, // IID6737 - 0xd5, 0x11, 0xc1, 0xf8, 0x02, // IID6738 - 0xd5, 0x11, 0xc1, 0xf8, 0x04, // IID6739 - 0xd5, 0x11, 0xc1, 0xf8, 0x08, // IID6740 - 0xd5, 0x11, 0xc1, 0xf8, 0x10, // IID6741 - 0xd5, 0x11, 0xd1, 0xf9, // IID6742 - 0xd5, 0x11, 0xc1, 0xf9, 0x02, // IID6743 - 0xd5, 0x11, 0xc1, 0xf9, 0x04, // IID6744 - 0xd5, 0x11, 0xc1, 0xf9, 0x08, // IID6745 - 0xd5, 0x11, 0xc1, 0xf9, 0x10, // IID6746 - 0xd5, 0x11, 0xd1, 0xfa, // IID6747 - 0xd5, 0x11, 0xc1, 0xfa, 0x02, // IID6748 - 0xd5, 0x11, 0xc1, 0xfa, 0x04, // IID6749 - 0xd5, 0x11, 0xc1, 0xfa, 0x08, // IID6750 - 0xd5, 0x11, 0xc1, 0xfa, 0x10, // IID6751 - 0xd5, 0x11, 0xd1, 0xfb, // IID6752 - 0xd5, 0x11, 0xc1, 0xfb, 0x02, // IID6753 - 0xd5, 0x11, 0xc1, 0xfb, 0x04, // IID6754 - 0xd5, 0x11, 0xc1, 0xfb, 0x08, // IID6755 - 0xd5, 0x11, 0xc1, 0xfb, 0x10, // IID6756 - 0xd5, 0x11, 0xd1, 0xfc, // IID6757 - 0xd5, 0x11, 0xc1, 0xfc, 0x02, // IID6758 - 0xd5, 0x11, 0xc1, 0xfc, 0x04, // IID6759 - 0xd5, 0x11, 0xc1, 0xfc, 0x08, // IID6760 - 0xd5, 0x11, 0xc1, 0xfc, 0x10, // IID6761 - 0xd5, 0x11, 0xd1, 0xfd, // IID6762 - 0xd5, 0x11, 0xc1, 0xfd, 0x02, // IID6763 - 0xd5, 0x11, 0xc1, 0xfd, 0x04, // IID6764 - 0xd5, 0x11, 0xc1, 0xfd, 0x08, // IID6765 - 0xd5, 0x11, 0xc1, 0xfd, 0x10, // IID6766 - 0xd5, 0x11, 0xd1, 0xfe, // IID6767 - 0xd5, 0x11, 0xc1, 0xfe, 0x02, // IID6768 - 0xd5, 0x11, 0xc1, 0xfe, 0x04, // IID6769 - 0xd5, 0x11, 0xc1, 0xfe, 0x08, // IID6770 - 0xd5, 0x11, 0xc1, 0xfe, 0x10, // IID6771 - 0xd5, 0x11, 0xd1, 0xff, // IID6772 - 0xd5, 0x11, 0xc1, 0xff, 0x02, // IID6773 - 0xd5, 0x11, 0xc1, 0xff, 0x04, // IID6774 - 0xd5, 0x11, 0xc1, 0xff, 0x08, // IID6775 - 0xd5, 0x11, 0xc1, 0xff, 0x10, // IID6776 -#endif // _LP64 - 0xd1, 0xe1, // IID6777 - 0xc1, 0xe1, 0x02, // IID6778 - 0xc1, 0xe1, 0x04, // IID6779 - 0xc1, 0xe1, 0x08, // IID6780 - 0xc1, 0xe1, 0x10, // IID6781 - 0xd1, 0xe2, // IID6782 - 0xc1, 0xe2, 0x02, // IID6783 - 0xc1, 0xe2, 0x04, // IID6784 - 0xc1, 0xe2, 0x08, // IID6785 - 0xc1, 0xe2, 0x10, // IID6786 - 0xd1, 0xe3, // IID6787 - 0xc1, 0xe3, 0x02, // IID6788 - 0xc1, 0xe3, 0x04, // IID6789 - 0xc1, 0xe3, 0x08, // IID6790 - 0xc1, 0xe3, 0x10, // IID6791 -#ifdef _LP64 - 0x41, 0xd1, 0xe0, // IID6792 - 0x41, 0xc1, 0xe0, 0x02, // IID6793 - 0x41, 0xc1, 0xe0, 0x04, // IID6794 - 0x41, 0xc1, 0xe0, 0x08, // IID6795 - 0x41, 0xc1, 0xe0, 0x10, // IID6796 - 0x41, 0xd1, 0xe1, // IID6797 - 0x41, 0xc1, 0xe1, 0x02, // IID6798 - 0x41, 0xc1, 0xe1, 0x04, // IID6799 - 0x41, 0xc1, 0xe1, 0x08, // IID6800 - 0x41, 0xc1, 0xe1, 0x10, // IID6801 - 0x41, 0xd1, 0xe2, // IID6802 - 0x41, 0xc1, 0xe2, 0x02, // IID6803 - 0x41, 0xc1, 0xe2, 0x04, // IID6804 - 0x41, 0xc1, 0xe2, 0x08, // IID6805 - 0x41, 0xc1, 0xe2, 0x10, // IID6806 - 0x41, 0xd1, 0xe3, // IID6807 - 0x41, 0xc1, 0xe3, 0x02, // IID6808 - 0x41, 0xc1, 0xe3, 0x04, // IID6809 - 0x41, 0xc1, 0xe3, 0x08, // IID6810 - 0x41, 0xc1, 0xe3, 0x10, // IID6811 - 0x41, 0xd1, 0xe4, // IID6812 - 0x41, 0xc1, 0xe4, 0x02, // IID6813 - 0x41, 0xc1, 0xe4, 0x04, // IID6814 - 0x41, 0xc1, 0xe4, 0x08, // IID6815 - 0x41, 0xc1, 0xe4, 0x10, // IID6816 - 0x41, 0xd1, 0xe5, // IID6817 - 0x41, 0xc1, 0xe5, 0x02, // IID6818 - 0x41, 0xc1, 0xe5, 0x04, // IID6819 - 0x41, 0xc1, 0xe5, 0x08, // IID6820 - 0x41, 0xc1, 0xe5, 0x10, // IID6821 - 0x41, 0xd1, 0xe6, // IID6822 - 0x41, 0xc1, 0xe6, 0x02, // IID6823 - 0x41, 0xc1, 0xe6, 0x04, // IID6824 - 0x41, 0xc1, 0xe6, 0x08, // IID6825 - 0x41, 0xc1, 0xe6, 0x10, // IID6826 - 0x41, 0xd1, 0xe7, // IID6827 - 0x41, 0xc1, 0xe7, 0x02, // IID6828 - 0x41, 0xc1, 0xe7, 0x04, // IID6829 - 0x41, 0xc1, 0xe7, 0x08, // IID6830 - 0x41, 0xc1, 0xe7, 0x10, // IID6831 - 0xd5, 0x10, 0xd1, 0xe0, // IID6832 - 0xd5, 0x10, 0xc1, 0xe0, 0x02, // IID6833 - 0xd5, 0x10, 0xc1, 0xe0, 0x04, // IID6834 - 0xd5, 0x10, 0xc1, 0xe0, 0x08, // IID6835 - 0xd5, 0x10, 0xc1, 0xe0, 0x10, // IID6836 - 0xd5, 0x10, 0xd1, 0xe1, // IID6837 - 0xd5, 0x10, 0xc1, 0xe1, 0x02, // IID6838 - 0xd5, 0x10, 0xc1, 0xe1, 0x04, // IID6839 - 0xd5, 0x10, 0xc1, 0xe1, 0x08, // IID6840 - 0xd5, 0x10, 0xc1, 0xe1, 0x10, // IID6841 - 0xd5, 0x10, 0xd1, 0xe2, // IID6842 - 0xd5, 0x10, 0xc1, 0xe2, 0x02, // IID6843 - 0xd5, 0x10, 0xc1, 0xe2, 0x04, // IID6844 - 0xd5, 0x10, 0xc1, 0xe2, 0x08, // IID6845 - 0xd5, 0x10, 0xc1, 0xe2, 0x10, // IID6846 - 0xd5, 0x10, 0xd1, 0xe3, // IID6847 - 0xd5, 0x10, 0xc1, 0xe3, 0x02, // IID6848 - 0xd5, 0x10, 0xc1, 0xe3, 0x04, // IID6849 - 0xd5, 0x10, 0xc1, 0xe3, 0x08, // IID6850 - 0xd5, 0x10, 0xc1, 0xe3, 0x10, // IID6851 - 0xd5, 0x10, 0xd1, 0xe4, // IID6852 - 0xd5, 0x10, 0xc1, 0xe4, 0x02, // IID6853 - 0xd5, 0x10, 0xc1, 0xe4, 0x04, // IID6854 - 0xd5, 0x10, 0xc1, 0xe4, 0x08, // IID6855 - 0xd5, 0x10, 0xc1, 0xe4, 0x10, // IID6856 - 0xd5, 0x10, 0xd1, 0xe5, // IID6857 - 0xd5, 0x10, 0xc1, 0xe5, 0x02, // IID6858 - 0xd5, 0x10, 0xc1, 0xe5, 0x04, // IID6859 - 0xd5, 0x10, 0xc1, 0xe5, 0x08, // IID6860 - 0xd5, 0x10, 0xc1, 0xe5, 0x10, // IID6861 - 0xd5, 0x10, 0xd1, 0xe6, // IID6862 - 0xd5, 0x10, 0xc1, 0xe6, 0x02, // IID6863 - 0xd5, 0x10, 0xc1, 0xe6, 0x04, // IID6864 - 0xd5, 0x10, 0xc1, 0xe6, 0x08, // IID6865 - 0xd5, 0x10, 0xc1, 0xe6, 0x10, // IID6866 - 0xd5, 0x10, 0xd1, 0xe7, // IID6867 - 0xd5, 0x10, 0xc1, 0xe7, 0x02, // IID6868 - 0xd5, 0x10, 0xc1, 0xe7, 0x04, // IID6869 - 0xd5, 0x10, 0xc1, 0xe7, 0x08, // IID6870 - 0xd5, 0x10, 0xc1, 0xe7, 0x10, // IID6871 - 0xd5, 0x11, 0xd1, 0xe0, // IID6872 - 0xd5, 0x11, 0xc1, 0xe0, 0x02, // IID6873 - 0xd5, 0x11, 0xc1, 0xe0, 0x04, // IID6874 - 0xd5, 0x11, 0xc1, 0xe0, 0x08, // IID6875 - 0xd5, 0x11, 0xc1, 0xe0, 0x10, // IID6876 - 0xd5, 0x11, 0xd1, 0xe1, // IID6877 - 0xd5, 0x11, 0xc1, 0xe1, 0x02, // IID6878 - 0xd5, 0x11, 0xc1, 0xe1, 0x04, // IID6879 - 0xd5, 0x11, 0xc1, 0xe1, 0x08, // IID6880 - 0xd5, 0x11, 0xc1, 0xe1, 0x10, // IID6881 - 0xd5, 0x11, 0xd1, 0xe2, // IID6882 - 0xd5, 0x11, 0xc1, 0xe2, 0x02, // IID6883 - 0xd5, 0x11, 0xc1, 0xe2, 0x04, // IID6884 - 0xd5, 0x11, 0xc1, 0xe2, 0x08, // IID6885 - 0xd5, 0x11, 0xc1, 0xe2, 0x10, // IID6886 - 0xd5, 0x11, 0xd1, 0xe3, // IID6887 - 0xd5, 0x11, 0xc1, 0xe3, 0x02, // IID6888 - 0xd5, 0x11, 0xc1, 0xe3, 0x04, // IID6889 - 0xd5, 0x11, 0xc1, 0xe3, 0x08, // IID6890 - 0xd5, 0x11, 0xc1, 0xe3, 0x10, // IID6891 - 0xd5, 0x11, 0xd1, 0xe4, // IID6892 - 0xd5, 0x11, 0xc1, 0xe4, 0x02, // IID6893 - 0xd5, 0x11, 0xc1, 0xe4, 0x04, // IID6894 - 0xd5, 0x11, 0xc1, 0xe4, 0x08, // IID6895 - 0xd5, 0x11, 0xc1, 0xe4, 0x10, // IID6896 - 0xd5, 0x11, 0xd1, 0xe5, // IID6897 - 0xd5, 0x11, 0xc1, 0xe5, 0x02, // IID6898 - 0xd5, 0x11, 0xc1, 0xe5, 0x04, // IID6899 - 0xd5, 0x11, 0xc1, 0xe5, 0x08, // IID6900 - 0xd5, 0x11, 0xc1, 0xe5, 0x10, // IID6901 - 0xd5, 0x11, 0xd1, 0xe6, // IID6902 - 0xd5, 0x11, 0xc1, 0xe6, 0x02, // IID6903 - 0xd5, 0x11, 0xc1, 0xe6, 0x04, // IID6904 - 0xd5, 0x11, 0xc1, 0xe6, 0x08, // IID6905 - 0xd5, 0x11, 0xc1, 0xe6, 0x10, // IID6906 - 0xd5, 0x11, 0xd1, 0xe7, // IID6907 - 0xd5, 0x11, 0xc1, 0xe7, 0x02, // IID6908 - 0xd5, 0x11, 0xc1, 0xe7, 0x04, // IID6909 - 0xd5, 0x11, 0xc1, 0xe7, 0x08, // IID6910 - 0xd5, 0x11, 0xc1, 0xe7, 0x10, // IID6911 -#endif // _LP64 - 0x83, 0xd9, 0x01, // IID6912 - 0x83, 0xd9, 0x10, // IID6913 - 0x81, 0xd9, 0x00, 0x01, 0x00, 0x00, // IID6914 - 0x81, 0xd9, 0x00, 0x10, 0x00, 0x00, // IID6915 - 0x81, 0xd9, 0x00, 0x00, 0x01, 0x00, // IID6916 - 0x81, 0xd9, 0x00, 0x00, 0x10, 0x00, // IID6917 - 0x81, 0xd9, 0x00, 0x00, 0x00, 0x01, // IID6918 - 0x81, 0xd9, 0x00, 0x00, 0x00, 0x10, // IID6919 - 0x83, 0xda, 0x01, // IID6920 - 0x83, 0xda, 0x10, // IID6921 - 0x81, 0xda, 0x00, 0x01, 0x00, 0x00, // IID6922 - 0x81, 0xda, 0x00, 0x10, 0x00, 0x00, // IID6923 - 0x81, 0xda, 0x00, 0x00, 0x01, 0x00, // IID6924 - 0x81, 0xda, 0x00, 0x00, 0x10, 0x00, // IID6925 - 0x81, 0xda, 0x00, 0x00, 0x00, 0x01, // IID6926 - 0x81, 0xda, 0x00, 0x00, 0x00, 0x10, // IID6927 - 0x83, 0xdb, 0x01, // IID6928 - 0x83, 0xdb, 0x10, // IID6929 - 0x81, 0xdb, 0x00, 0x01, 0x00, 0x00, // IID6930 - 0x81, 0xdb, 0x00, 0x10, 0x00, 0x00, // IID6931 - 0x81, 0xdb, 0x00, 0x00, 0x01, 0x00, // IID6932 - 0x81, 0xdb, 0x00, 0x00, 0x10, 0x00, // IID6933 - 0x81, 0xdb, 0x00, 0x00, 0x00, 0x01, // IID6934 - 0x81, 0xdb, 0x00, 0x00, 0x00, 0x10, // IID6935 -#ifdef _LP64 - 0x41, 0x83, 0xd8, 0x01, // IID6936 - 0x41, 0x83, 0xd8, 0x10, // IID6937 - 0x41, 0x81, 0xd8, 0x00, 0x01, 0x00, 0x00, // IID6938 - 0x41, 0x81, 0xd8, 0x00, 0x10, 0x00, 0x00, // IID6939 - 0x41, 0x81, 0xd8, 0x00, 0x00, 0x01, 0x00, // IID6940 - 0x41, 0x81, 0xd8, 0x00, 0x00, 0x10, 0x00, // IID6941 - 0x41, 0x81, 0xd8, 0x00, 0x00, 0x00, 0x01, // IID6942 - 0x41, 0x81, 0xd8, 0x00, 0x00, 0x00, 0x10, // IID6943 - 0x41, 0x83, 0xd9, 0x01, // IID6944 - 0x41, 0x83, 0xd9, 0x10, // IID6945 - 0x41, 0x81, 0xd9, 0x00, 0x01, 0x00, 0x00, // IID6946 - 0x41, 0x81, 0xd9, 0x00, 0x10, 0x00, 0x00, // IID6947 - 0x41, 0x81, 0xd9, 0x00, 0x00, 0x01, 0x00, // IID6948 - 0x41, 0x81, 0xd9, 0x00, 0x00, 0x10, 0x00, // IID6949 - 0x41, 0x81, 0xd9, 0x00, 0x00, 0x00, 0x01, // IID6950 - 0x41, 0x81, 0xd9, 0x00, 0x00, 0x00, 0x10, // IID6951 - 0x41, 0x83, 0xda, 0x01, // IID6952 - 0x41, 0x83, 0xda, 0x10, // IID6953 - 0x41, 0x81, 0xda, 0x00, 0x01, 0x00, 0x00, // IID6954 - 0x41, 0x81, 0xda, 0x00, 0x10, 0x00, 0x00, // IID6955 - 0x41, 0x81, 0xda, 0x00, 0x00, 0x01, 0x00, // IID6956 - 0x41, 0x81, 0xda, 0x00, 0x00, 0x10, 0x00, // IID6957 - 0x41, 0x81, 0xda, 0x00, 0x00, 0x00, 0x01, // IID6958 - 0x41, 0x81, 0xda, 0x00, 0x00, 0x00, 0x10, // IID6959 - 0x41, 0x83, 0xdb, 0x01, // IID6960 - 0x41, 0x83, 0xdb, 0x10, // IID6961 - 0x41, 0x81, 0xdb, 0x00, 0x01, 0x00, 0x00, // IID6962 - 0x41, 0x81, 0xdb, 0x00, 0x10, 0x00, 0x00, // IID6963 - 0x41, 0x81, 0xdb, 0x00, 0x00, 0x01, 0x00, // IID6964 - 0x41, 0x81, 0xdb, 0x00, 0x00, 0x10, 0x00, // IID6965 - 0x41, 0x81, 0xdb, 0x00, 0x00, 0x00, 0x01, // IID6966 - 0x41, 0x81, 0xdb, 0x00, 0x00, 0x00, 0x10, // IID6967 - 0x41, 0x83, 0xdc, 0x01, // IID6968 - 0x41, 0x83, 0xdc, 0x10, // IID6969 - 0x41, 0x81, 0xdc, 0x00, 0x01, 0x00, 0x00, // IID6970 - 0x41, 0x81, 0xdc, 0x00, 0x10, 0x00, 0x00, // IID6971 - 0x41, 0x81, 0xdc, 0x00, 0x00, 0x01, 0x00, // IID6972 - 0x41, 0x81, 0xdc, 0x00, 0x00, 0x10, 0x00, // IID6973 - 0x41, 0x81, 0xdc, 0x00, 0x00, 0x00, 0x01, // IID6974 - 0x41, 0x81, 0xdc, 0x00, 0x00, 0x00, 0x10, // IID6975 - 0x41, 0x83, 0xdd, 0x01, // IID6976 - 0x41, 0x83, 0xdd, 0x10, // IID6977 - 0x41, 0x81, 0xdd, 0x00, 0x01, 0x00, 0x00, // IID6978 - 0x41, 0x81, 0xdd, 0x00, 0x10, 0x00, 0x00, // IID6979 - 0x41, 0x81, 0xdd, 0x00, 0x00, 0x01, 0x00, // IID6980 - 0x41, 0x81, 0xdd, 0x00, 0x00, 0x10, 0x00, // IID6981 - 0x41, 0x81, 0xdd, 0x00, 0x00, 0x00, 0x01, // IID6982 - 0x41, 0x81, 0xdd, 0x00, 0x00, 0x00, 0x10, // IID6983 - 0x41, 0x83, 0xde, 0x01, // IID6984 - 0x41, 0x83, 0xde, 0x10, // IID6985 - 0x41, 0x81, 0xde, 0x00, 0x01, 0x00, 0x00, // IID6986 - 0x41, 0x81, 0xde, 0x00, 0x10, 0x00, 0x00, // IID6987 - 0x41, 0x81, 0xde, 0x00, 0x00, 0x01, 0x00, // IID6988 - 0x41, 0x81, 0xde, 0x00, 0x00, 0x10, 0x00, // IID6989 - 0x41, 0x81, 0xde, 0x00, 0x00, 0x00, 0x01, // IID6990 - 0x41, 0x81, 0xde, 0x00, 0x00, 0x00, 0x10, // IID6991 - 0x41, 0x83, 0xdf, 0x01, // IID6992 - 0x41, 0x83, 0xdf, 0x10, // IID6993 - 0x41, 0x81, 0xdf, 0x00, 0x01, 0x00, 0x00, // IID6994 - 0x41, 0x81, 0xdf, 0x00, 0x10, 0x00, 0x00, // IID6995 - 0x41, 0x81, 0xdf, 0x00, 0x00, 0x01, 0x00, // IID6996 - 0x41, 0x81, 0xdf, 0x00, 0x00, 0x10, 0x00, // IID6997 - 0x41, 0x81, 0xdf, 0x00, 0x00, 0x00, 0x01, // IID6998 - 0x41, 0x81, 0xdf, 0x00, 0x00, 0x00, 0x10, // IID6999 - 0xd5, 0x10, 0x83, 0xd8, 0x01, // IID7000 - 0xd5, 0x10, 0x83, 0xd8, 0x10, // IID7001 - 0xd5, 0x10, 0x81, 0xd8, 0x00, 0x01, 0x00, 0x00, // IID7002 - 0xd5, 0x10, 0x81, 0xd8, 0x00, 0x10, 0x00, 0x00, // IID7003 - 0xd5, 0x10, 0x81, 0xd8, 0x00, 0x00, 0x01, 0x00, // IID7004 - 0xd5, 0x10, 0x81, 0xd8, 0x00, 0x00, 0x10, 0x00, // IID7005 - 0xd5, 0x10, 0x81, 0xd8, 0x00, 0x00, 0x00, 0x01, // IID7006 - 0xd5, 0x10, 0x81, 0xd8, 0x00, 0x00, 0x00, 0x10, // IID7007 - 0xd5, 0x10, 0x83, 0xd9, 0x01, // IID7008 - 0xd5, 0x10, 0x83, 0xd9, 0x10, // IID7009 - 0xd5, 0x10, 0x81, 0xd9, 0x00, 0x01, 0x00, 0x00, // IID7010 - 0xd5, 0x10, 0x81, 0xd9, 0x00, 0x10, 0x00, 0x00, // IID7011 - 0xd5, 0x10, 0x81, 0xd9, 0x00, 0x00, 0x01, 0x00, // IID7012 - 0xd5, 0x10, 0x81, 0xd9, 0x00, 0x00, 0x10, 0x00, // IID7013 - 0xd5, 0x10, 0x81, 0xd9, 0x00, 0x00, 0x00, 0x01, // IID7014 - 0xd5, 0x10, 0x81, 0xd9, 0x00, 0x00, 0x00, 0x10, // IID7015 - 0xd5, 0x10, 0x83, 0xda, 0x01, // IID7016 - 0xd5, 0x10, 0x83, 0xda, 0x10, // IID7017 - 0xd5, 0x10, 0x81, 0xda, 0x00, 0x01, 0x00, 0x00, // IID7018 - 0xd5, 0x10, 0x81, 0xda, 0x00, 0x10, 0x00, 0x00, // IID7019 - 0xd5, 0x10, 0x81, 0xda, 0x00, 0x00, 0x01, 0x00, // IID7020 - 0xd5, 0x10, 0x81, 0xda, 0x00, 0x00, 0x10, 0x00, // IID7021 - 0xd5, 0x10, 0x81, 0xda, 0x00, 0x00, 0x00, 0x01, // IID7022 - 0xd5, 0x10, 0x81, 0xda, 0x00, 0x00, 0x00, 0x10, // IID7023 - 0xd5, 0x10, 0x83, 0xdb, 0x01, // IID7024 - 0xd5, 0x10, 0x83, 0xdb, 0x10, // IID7025 - 0xd5, 0x10, 0x81, 0xdb, 0x00, 0x01, 0x00, 0x00, // IID7026 - 0xd5, 0x10, 0x81, 0xdb, 0x00, 0x10, 0x00, 0x00, // IID7027 - 0xd5, 0x10, 0x81, 0xdb, 0x00, 0x00, 0x01, 0x00, // IID7028 - 0xd5, 0x10, 0x81, 0xdb, 0x00, 0x00, 0x10, 0x00, // IID7029 - 0xd5, 0x10, 0x81, 0xdb, 0x00, 0x00, 0x00, 0x01, // IID7030 - 0xd5, 0x10, 0x81, 0xdb, 0x00, 0x00, 0x00, 0x10, // IID7031 - 0xd5, 0x10, 0x83, 0xdc, 0x01, // IID7032 - 0xd5, 0x10, 0x83, 0xdc, 0x10, // IID7033 - 0xd5, 0x10, 0x81, 0xdc, 0x00, 0x01, 0x00, 0x00, // IID7034 - 0xd5, 0x10, 0x81, 0xdc, 0x00, 0x10, 0x00, 0x00, // IID7035 - 0xd5, 0x10, 0x81, 0xdc, 0x00, 0x00, 0x01, 0x00, // IID7036 - 0xd5, 0x10, 0x81, 0xdc, 0x00, 0x00, 0x10, 0x00, // IID7037 - 0xd5, 0x10, 0x81, 0xdc, 0x00, 0x00, 0x00, 0x01, // IID7038 - 0xd5, 0x10, 0x81, 0xdc, 0x00, 0x00, 0x00, 0x10, // IID7039 - 0xd5, 0x10, 0x83, 0xdd, 0x01, // IID7040 - 0xd5, 0x10, 0x83, 0xdd, 0x10, // IID7041 - 0xd5, 0x10, 0x81, 0xdd, 0x00, 0x01, 0x00, 0x00, // IID7042 - 0xd5, 0x10, 0x81, 0xdd, 0x00, 0x10, 0x00, 0x00, // IID7043 - 0xd5, 0x10, 0x81, 0xdd, 0x00, 0x00, 0x01, 0x00, // IID7044 - 0xd5, 0x10, 0x81, 0xdd, 0x00, 0x00, 0x10, 0x00, // IID7045 - 0xd5, 0x10, 0x81, 0xdd, 0x00, 0x00, 0x00, 0x01, // IID7046 - 0xd5, 0x10, 0x81, 0xdd, 0x00, 0x00, 0x00, 0x10, // IID7047 - 0xd5, 0x10, 0x83, 0xde, 0x01, // IID7048 - 0xd5, 0x10, 0x83, 0xde, 0x10, // IID7049 - 0xd5, 0x10, 0x81, 0xde, 0x00, 0x01, 0x00, 0x00, // IID7050 - 0xd5, 0x10, 0x81, 0xde, 0x00, 0x10, 0x00, 0x00, // IID7051 - 0xd5, 0x10, 0x81, 0xde, 0x00, 0x00, 0x01, 0x00, // IID7052 - 0xd5, 0x10, 0x81, 0xde, 0x00, 0x00, 0x10, 0x00, // IID7053 - 0xd5, 0x10, 0x81, 0xde, 0x00, 0x00, 0x00, 0x01, // IID7054 - 0xd5, 0x10, 0x81, 0xde, 0x00, 0x00, 0x00, 0x10, // IID7055 - 0xd5, 0x10, 0x83, 0xdf, 0x01, // IID7056 - 0xd5, 0x10, 0x83, 0xdf, 0x10, // IID7057 - 0xd5, 0x10, 0x81, 0xdf, 0x00, 0x01, 0x00, 0x00, // IID7058 - 0xd5, 0x10, 0x81, 0xdf, 0x00, 0x10, 0x00, 0x00, // IID7059 - 0xd5, 0x10, 0x81, 0xdf, 0x00, 0x00, 0x01, 0x00, // IID7060 - 0xd5, 0x10, 0x81, 0xdf, 0x00, 0x00, 0x10, 0x00, // IID7061 - 0xd5, 0x10, 0x81, 0xdf, 0x00, 0x00, 0x00, 0x01, // IID7062 - 0xd5, 0x10, 0x81, 0xdf, 0x00, 0x00, 0x00, 0x10, // IID7063 - 0xd5, 0x11, 0x83, 0xd8, 0x01, // IID7064 - 0xd5, 0x11, 0x83, 0xd8, 0x10, // IID7065 - 0xd5, 0x11, 0x81, 0xd8, 0x00, 0x01, 0x00, 0x00, // IID7066 - 0xd5, 0x11, 0x81, 0xd8, 0x00, 0x10, 0x00, 0x00, // IID7067 - 0xd5, 0x11, 0x81, 0xd8, 0x00, 0x00, 0x01, 0x00, // IID7068 - 0xd5, 0x11, 0x81, 0xd8, 0x00, 0x00, 0x10, 0x00, // IID7069 - 0xd5, 0x11, 0x81, 0xd8, 0x00, 0x00, 0x00, 0x01, // IID7070 - 0xd5, 0x11, 0x81, 0xd8, 0x00, 0x00, 0x00, 0x10, // IID7071 - 0xd5, 0x11, 0x83, 0xd9, 0x01, // IID7072 - 0xd5, 0x11, 0x83, 0xd9, 0x10, // IID7073 - 0xd5, 0x11, 0x81, 0xd9, 0x00, 0x01, 0x00, 0x00, // IID7074 - 0xd5, 0x11, 0x81, 0xd9, 0x00, 0x10, 0x00, 0x00, // IID7075 - 0xd5, 0x11, 0x81, 0xd9, 0x00, 0x00, 0x01, 0x00, // IID7076 - 0xd5, 0x11, 0x81, 0xd9, 0x00, 0x00, 0x10, 0x00, // IID7077 - 0xd5, 0x11, 0x81, 0xd9, 0x00, 0x00, 0x00, 0x01, // IID7078 - 0xd5, 0x11, 0x81, 0xd9, 0x00, 0x00, 0x00, 0x10, // IID7079 - 0xd5, 0x11, 0x83, 0xda, 0x01, // IID7080 - 0xd5, 0x11, 0x83, 0xda, 0x10, // IID7081 - 0xd5, 0x11, 0x81, 0xda, 0x00, 0x01, 0x00, 0x00, // IID7082 - 0xd5, 0x11, 0x81, 0xda, 0x00, 0x10, 0x00, 0x00, // IID7083 - 0xd5, 0x11, 0x81, 0xda, 0x00, 0x00, 0x01, 0x00, // IID7084 - 0xd5, 0x11, 0x81, 0xda, 0x00, 0x00, 0x10, 0x00, // IID7085 - 0xd5, 0x11, 0x81, 0xda, 0x00, 0x00, 0x00, 0x01, // IID7086 - 0xd5, 0x11, 0x81, 0xda, 0x00, 0x00, 0x00, 0x10, // IID7087 - 0xd5, 0x11, 0x83, 0xdb, 0x01, // IID7088 - 0xd5, 0x11, 0x83, 0xdb, 0x10, // IID7089 - 0xd5, 0x11, 0x81, 0xdb, 0x00, 0x01, 0x00, 0x00, // IID7090 - 0xd5, 0x11, 0x81, 0xdb, 0x00, 0x10, 0x00, 0x00, // IID7091 - 0xd5, 0x11, 0x81, 0xdb, 0x00, 0x00, 0x01, 0x00, // IID7092 - 0xd5, 0x11, 0x81, 0xdb, 0x00, 0x00, 0x10, 0x00, // IID7093 - 0xd5, 0x11, 0x81, 0xdb, 0x00, 0x00, 0x00, 0x01, // IID7094 - 0xd5, 0x11, 0x81, 0xdb, 0x00, 0x00, 0x00, 0x10, // IID7095 - 0xd5, 0x11, 0x83, 0xdc, 0x01, // IID7096 - 0xd5, 0x11, 0x83, 0xdc, 0x10, // IID7097 - 0xd5, 0x11, 0x81, 0xdc, 0x00, 0x01, 0x00, 0x00, // IID7098 - 0xd5, 0x11, 0x81, 0xdc, 0x00, 0x10, 0x00, 0x00, // IID7099 - 0xd5, 0x11, 0x81, 0xdc, 0x00, 0x00, 0x01, 0x00, // IID7100 - 0xd5, 0x11, 0x81, 0xdc, 0x00, 0x00, 0x10, 0x00, // IID7101 - 0xd5, 0x11, 0x81, 0xdc, 0x00, 0x00, 0x00, 0x01, // IID7102 - 0xd5, 0x11, 0x81, 0xdc, 0x00, 0x00, 0x00, 0x10, // IID7103 - 0xd5, 0x11, 0x83, 0xdd, 0x01, // IID7104 - 0xd5, 0x11, 0x83, 0xdd, 0x10, // IID7105 - 0xd5, 0x11, 0x81, 0xdd, 0x00, 0x01, 0x00, 0x00, // IID7106 - 0xd5, 0x11, 0x81, 0xdd, 0x00, 0x10, 0x00, 0x00, // IID7107 - 0xd5, 0x11, 0x81, 0xdd, 0x00, 0x00, 0x01, 0x00, // IID7108 - 0xd5, 0x11, 0x81, 0xdd, 0x00, 0x00, 0x10, 0x00, // IID7109 - 0xd5, 0x11, 0x81, 0xdd, 0x00, 0x00, 0x00, 0x01, // IID7110 - 0xd5, 0x11, 0x81, 0xdd, 0x00, 0x00, 0x00, 0x10, // IID7111 - 0xd5, 0x11, 0x83, 0xde, 0x01, // IID7112 - 0xd5, 0x11, 0x83, 0xde, 0x10, // IID7113 - 0xd5, 0x11, 0x81, 0xde, 0x00, 0x01, 0x00, 0x00, // IID7114 - 0xd5, 0x11, 0x81, 0xde, 0x00, 0x10, 0x00, 0x00, // IID7115 - 0xd5, 0x11, 0x81, 0xde, 0x00, 0x00, 0x01, 0x00, // IID7116 - 0xd5, 0x11, 0x81, 0xde, 0x00, 0x00, 0x10, 0x00, // IID7117 - 0xd5, 0x11, 0x81, 0xde, 0x00, 0x00, 0x00, 0x01, // IID7118 - 0xd5, 0x11, 0x81, 0xde, 0x00, 0x00, 0x00, 0x10, // IID7119 - 0xd5, 0x11, 0x83, 0xdf, 0x01, // IID7120 - 0xd5, 0x11, 0x83, 0xdf, 0x10, // IID7121 - 0xd5, 0x11, 0x81, 0xdf, 0x00, 0x01, 0x00, 0x00, // IID7122 - 0xd5, 0x11, 0x81, 0xdf, 0x00, 0x10, 0x00, 0x00, // IID7123 - 0xd5, 0x11, 0x81, 0xdf, 0x00, 0x00, 0x01, 0x00, // IID7124 - 0xd5, 0x11, 0x81, 0xdf, 0x00, 0x00, 0x10, 0x00, // IID7125 - 0xd5, 0x11, 0x81, 0xdf, 0x00, 0x00, 0x00, 0x01, // IID7126 - 0xd5, 0x11, 0x81, 0xdf, 0x00, 0x00, 0x00, 0x10, // IID7127 -#endif // _LP64 - 0xd1, 0xe1, // IID7128 - 0xc1, 0xe1, 0x02, // IID7129 - 0xc1, 0xe1, 0x04, // IID7130 - 0xc1, 0xe1, 0x08, // IID7131 - 0xc1, 0xe1, 0x10, // IID7132 - 0xd1, 0xe2, // IID7133 - 0xc1, 0xe2, 0x02, // IID7134 - 0xc1, 0xe2, 0x04, // IID7135 - 0xc1, 0xe2, 0x08, // IID7136 - 0xc1, 0xe2, 0x10, // IID7137 - 0xd1, 0xe3, // IID7138 - 0xc1, 0xe3, 0x02, // IID7139 - 0xc1, 0xe3, 0x04, // IID7140 - 0xc1, 0xe3, 0x08, // IID7141 - 0xc1, 0xe3, 0x10, // IID7142 -#ifdef _LP64 - 0x41, 0xd1, 0xe0, // IID7143 - 0x41, 0xc1, 0xe0, 0x02, // IID7144 - 0x41, 0xc1, 0xe0, 0x04, // IID7145 - 0x41, 0xc1, 0xe0, 0x08, // IID7146 - 0x41, 0xc1, 0xe0, 0x10, // IID7147 - 0x41, 0xd1, 0xe1, // IID7148 - 0x41, 0xc1, 0xe1, 0x02, // IID7149 - 0x41, 0xc1, 0xe1, 0x04, // IID7150 - 0x41, 0xc1, 0xe1, 0x08, // IID7151 - 0x41, 0xc1, 0xe1, 0x10, // IID7152 - 0x41, 0xd1, 0xe2, // IID7153 - 0x41, 0xc1, 0xe2, 0x02, // IID7154 - 0x41, 0xc1, 0xe2, 0x04, // IID7155 - 0x41, 0xc1, 0xe2, 0x08, // IID7156 - 0x41, 0xc1, 0xe2, 0x10, // IID7157 - 0x41, 0xd1, 0xe3, // IID7158 - 0x41, 0xc1, 0xe3, 0x02, // IID7159 - 0x41, 0xc1, 0xe3, 0x04, // IID7160 - 0x41, 0xc1, 0xe3, 0x08, // IID7161 - 0x41, 0xc1, 0xe3, 0x10, // IID7162 - 0x41, 0xd1, 0xe4, // IID7163 - 0x41, 0xc1, 0xe4, 0x02, // IID7164 - 0x41, 0xc1, 0xe4, 0x04, // IID7165 - 0x41, 0xc1, 0xe4, 0x08, // IID7166 - 0x41, 0xc1, 0xe4, 0x10, // IID7167 - 0x41, 0xd1, 0xe5, // IID7168 - 0x41, 0xc1, 0xe5, 0x02, // IID7169 - 0x41, 0xc1, 0xe5, 0x04, // IID7170 - 0x41, 0xc1, 0xe5, 0x08, // IID7171 - 0x41, 0xc1, 0xe5, 0x10, // IID7172 - 0x41, 0xd1, 0xe6, // IID7173 - 0x41, 0xc1, 0xe6, 0x02, // IID7174 - 0x41, 0xc1, 0xe6, 0x04, // IID7175 - 0x41, 0xc1, 0xe6, 0x08, // IID7176 - 0x41, 0xc1, 0xe6, 0x10, // IID7177 - 0x41, 0xd1, 0xe7, // IID7178 - 0x41, 0xc1, 0xe7, 0x02, // IID7179 - 0x41, 0xc1, 0xe7, 0x04, // IID7180 - 0x41, 0xc1, 0xe7, 0x08, // IID7181 - 0x41, 0xc1, 0xe7, 0x10, // IID7182 - 0xd5, 0x10, 0xd1, 0xe0, // IID7183 - 0xd5, 0x10, 0xc1, 0xe0, 0x02, // IID7184 - 0xd5, 0x10, 0xc1, 0xe0, 0x04, // IID7185 - 0xd5, 0x10, 0xc1, 0xe0, 0x08, // IID7186 - 0xd5, 0x10, 0xc1, 0xe0, 0x10, // IID7187 - 0xd5, 0x10, 0xd1, 0xe1, // IID7188 - 0xd5, 0x10, 0xc1, 0xe1, 0x02, // IID7189 - 0xd5, 0x10, 0xc1, 0xe1, 0x04, // IID7190 - 0xd5, 0x10, 0xc1, 0xe1, 0x08, // IID7191 - 0xd5, 0x10, 0xc1, 0xe1, 0x10, // IID7192 - 0xd5, 0x10, 0xd1, 0xe2, // IID7193 - 0xd5, 0x10, 0xc1, 0xe2, 0x02, // IID7194 - 0xd5, 0x10, 0xc1, 0xe2, 0x04, // IID7195 - 0xd5, 0x10, 0xc1, 0xe2, 0x08, // IID7196 - 0xd5, 0x10, 0xc1, 0xe2, 0x10, // IID7197 - 0xd5, 0x10, 0xd1, 0xe3, // IID7198 - 0xd5, 0x10, 0xc1, 0xe3, 0x02, // IID7199 - 0xd5, 0x10, 0xc1, 0xe3, 0x04, // IID7200 - 0xd5, 0x10, 0xc1, 0xe3, 0x08, // IID7201 - 0xd5, 0x10, 0xc1, 0xe3, 0x10, // IID7202 - 0xd5, 0x10, 0xd1, 0xe4, // IID7203 - 0xd5, 0x10, 0xc1, 0xe4, 0x02, // IID7204 - 0xd5, 0x10, 0xc1, 0xe4, 0x04, // IID7205 - 0xd5, 0x10, 0xc1, 0xe4, 0x08, // IID7206 - 0xd5, 0x10, 0xc1, 0xe4, 0x10, // IID7207 - 0xd5, 0x10, 0xd1, 0xe5, // IID7208 - 0xd5, 0x10, 0xc1, 0xe5, 0x02, // IID7209 - 0xd5, 0x10, 0xc1, 0xe5, 0x04, // IID7210 - 0xd5, 0x10, 0xc1, 0xe5, 0x08, // IID7211 - 0xd5, 0x10, 0xc1, 0xe5, 0x10, // IID7212 - 0xd5, 0x10, 0xd1, 0xe6, // IID7213 - 0xd5, 0x10, 0xc1, 0xe6, 0x02, // IID7214 - 0xd5, 0x10, 0xc1, 0xe6, 0x04, // IID7215 - 0xd5, 0x10, 0xc1, 0xe6, 0x08, // IID7216 - 0xd5, 0x10, 0xc1, 0xe6, 0x10, // IID7217 - 0xd5, 0x10, 0xd1, 0xe7, // IID7218 - 0xd5, 0x10, 0xc1, 0xe7, 0x02, // IID7219 - 0xd5, 0x10, 0xc1, 0xe7, 0x04, // IID7220 - 0xd5, 0x10, 0xc1, 0xe7, 0x08, // IID7221 - 0xd5, 0x10, 0xc1, 0xe7, 0x10, // IID7222 - 0xd5, 0x11, 0xd1, 0xe0, // IID7223 - 0xd5, 0x11, 0xc1, 0xe0, 0x02, // IID7224 - 0xd5, 0x11, 0xc1, 0xe0, 0x04, // IID7225 - 0xd5, 0x11, 0xc1, 0xe0, 0x08, // IID7226 - 0xd5, 0x11, 0xc1, 0xe0, 0x10, // IID7227 - 0xd5, 0x11, 0xd1, 0xe1, // IID7228 - 0xd5, 0x11, 0xc1, 0xe1, 0x02, // IID7229 - 0xd5, 0x11, 0xc1, 0xe1, 0x04, // IID7230 - 0xd5, 0x11, 0xc1, 0xe1, 0x08, // IID7231 - 0xd5, 0x11, 0xc1, 0xe1, 0x10, // IID7232 - 0xd5, 0x11, 0xd1, 0xe2, // IID7233 - 0xd5, 0x11, 0xc1, 0xe2, 0x02, // IID7234 - 0xd5, 0x11, 0xc1, 0xe2, 0x04, // IID7235 - 0xd5, 0x11, 0xc1, 0xe2, 0x08, // IID7236 - 0xd5, 0x11, 0xc1, 0xe2, 0x10, // IID7237 - 0xd5, 0x11, 0xd1, 0xe3, // IID7238 - 0xd5, 0x11, 0xc1, 0xe3, 0x02, // IID7239 - 0xd5, 0x11, 0xc1, 0xe3, 0x04, // IID7240 - 0xd5, 0x11, 0xc1, 0xe3, 0x08, // IID7241 - 0xd5, 0x11, 0xc1, 0xe3, 0x10, // IID7242 - 0xd5, 0x11, 0xd1, 0xe4, // IID7243 - 0xd5, 0x11, 0xc1, 0xe4, 0x02, // IID7244 - 0xd5, 0x11, 0xc1, 0xe4, 0x04, // IID7245 - 0xd5, 0x11, 0xc1, 0xe4, 0x08, // IID7246 - 0xd5, 0x11, 0xc1, 0xe4, 0x10, // IID7247 - 0xd5, 0x11, 0xd1, 0xe5, // IID7248 - 0xd5, 0x11, 0xc1, 0xe5, 0x02, // IID7249 - 0xd5, 0x11, 0xc1, 0xe5, 0x04, // IID7250 - 0xd5, 0x11, 0xc1, 0xe5, 0x08, // IID7251 - 0xd5, 0x11, 0xc1, 0xe5, 0x10, // IID7252 - 0xd5, 0x11, 0xd1, 0xe6, // IID7253 - 0xd5, 0x11, 0xc1, 0xe6, 0x02, // IID7254 - 0xd5, 0x11, 0xc1, 0xe6, 0x04, // IID7255 - 0xd5, 0x11, 0xc1, 0xe6, 0x08, // IID7256 - 0xd5, 0x11, 0xc1, 0xe6, 0x10, // IID7257 - 0xd5, 0x11, 0xd1, 0xe7, // IID7258 - 0xd5, 0x11, 0xc1, 0xe7, 0x02, // IID7259 - 0xd5, 0x11, 0xc1, 0xe7, 0x04, // IID7260 - 0xd5, 0x11, 0xc1, 0xe7, 0x08, // IID7261 - 0xd5, 0x11, 0xc1, 0xe7, 0x10, // IID7262 -#endif // _LP64 - 0xd1, 0xe9, // IID7263 - 0xc1, 0xe9, 0x02, // IID7264 - 0xc1, 0xe9, 0x04, // IID7265 - 0xc1, 0xe9, 0x08, // IID7266 - 0xc1, 0xe9, 0x10, // IID7267 - 0xd1, 0xea, // IID7268 - 0xc1, 0xea, 0x02, // IID7269 - 0xc1, 0xea, 0x04, // IID7270 - 0xc1, 0xea, 0x08, // IID7271 - 0xc1, 0xea, 0x10, // IID7272 - 0xd1, 0xeb, // IID7273 - 0xc1, 0xeb, 0x02, // IID7274 - 0xc1, 0xeb, 0x04, // IID7275 - 0xc1, 0xeb, 0x08, // IID7276 - 0xc1, 0xeb, 0x10, // IID7277 -#ifdef _LP64 - 0x41, 0xd1, 0xe8, // IID7278 - 0x41, 0xc1, 0xe8, 0x02, // IID7279 - 0x41, 0xc1, 0xe8, 0x04, // IID7280 - 0x41, 0xc1, 0xe8, 0x08, // IID7281 - 0x41, 0xc1, 0xe8, 0x10, // IID7282 - 0x41, 0xd1, 0xe9, // IID7283 - 0x41, 0xc1, 0xe9, 0x02, // IID7284 - 0x41, 0xc1, 0xe9, 0x04, // IID7285 - 0x41, 0xc1, 0xe9, 0x08, // IID7286 - 0x41, 0xc1, 0xe9, 0x10, // IID7287 - 0x41, 0xd1, 0xea, // IID7288 - 0x41, 0xc1, 0xea, 0x02, // IID7289 - 0x41, 0xc1, 0xea, 0x04, // IID7290 - 0x41, 0xc1, 0xea, 0x08, // IID7291 - 0x41, 0xc1, 0xea, 0x10, // IID7292 - 0x41, 0xd1, 0xeb, // IID7293 - 0x41, 0xc1, 0xeb, 0x02, // IID7294 - 0x41, 0xc1, 0xeb, 0x04, // IID7295 - 0x41, 0xc1, 0xeb, 0x08, // IID7296 - 0x41, 0xc1, 0xeb, 0x10, // IID7297 - 0x41, 0xd1, 0xec, // IID7298 - 0x41, 0xc1, 0xec, 0x02, // IID7299 - 0x41, 0xc1, 0xec, 0x04, // IID7300 - 0x41, 0xc1, 0xec, 0x08, // IID7301 - 0x41, 0xc1, 0xec, 0x10, // IID7302 - 0x41, 0xd1, 0xed, // IID7303 - 0x41, 0xc1, 0xed, 0x02, // IID7304 - 0x41, 0xc1, 0xed, 0x04, // IID7305 - 0x41, 0xc1, 0xed, 0x08, // IID7306 - 0x41, 0xc1, 0xed, 0x10, // IID7307 - 0x41, 0xd1, 0xee, // IID7308 - 0x41, 0xc1, 0xee, 0x02, // IID7309 - 0x41, 0xc1, 0xee, 0x04, // IID7310 - 0x41, 0xc1, 0xee, 0x08, // IID7311 - 0x41, 0xc1, 0xee, 0x10, // IID7312 - 0x41, 0xd1, 0xef, // IID7313 - 0x41, 0xc1, 0xef, 0x02, // IID7314 - 0x41, 0xc1, 0xef, 0x04, // IID7315 - 0x41, 0xc1, 0xef, 0x08, // IID7316 - 0x41, 0xc1, 0xef, 0x10, // IID7317 - 0xd5, 0x10, 0xd1, 0xe8, // IID7318 - 0xd5, 0x10, 0xc1, 0xe8, 0x02, // IID7319 - 0xd5, 0x10, 0xc1, 0xe8, 0x04, // IID7320 - 0xd5, 0x10, 0xc1, 0xe8, 0x08, // IID7321 - 0xd5, 0x10, 0xc1, 0xe8, 0x10, // IID7322 - 0xd5, 0x10, 0xd1, 0xe9, // IID7323 - 0xd5, 0x10, 0xc1, 0xe9, 0x02, // IID7324 - 0xd5, 0x10, 0xc1, 0xe9, 0x04, // IID7325 - 0xd5, 0x10, 0xc1, 0xe9, 0x08, // IID7326 - 0xd5, 0x10, 0xc1, 0xe9, 0x10, // IID7327 - 0xd5, 0x10, 0xd1, 0xea, // IID7328 - 0xd5, 0x10, 0xc1, 0xea, 0x02, // IID7329 - 0xd5, 0x10, 0xc1, 0xea, 0x04, // IID7330 - 0xd5, 0x10, 0xc1, 0xea, 0x08, // IID7331 - 0xd5, 0x10, 0xc1, 0xea, 0x10, // IID7332 - 0xd5, 0x10, 0xd1, 0xeb, // IID7333 - 0xd5, 0x10, 0xc1, 0xeb, 0x02, // IID7334 - 0xd5, 0x10, 0xc1, 0xeb, 0x04, // IID7335 - 0xd5, 0x10, 0xc1, 0xeb, 0x08, // IID7336 - 0xd5, 0x10, 0xc1, 0xeb, 0x10, // IID7337 - 0xd5, 0x10, 0xd1, 0xec, // IID7338 - 0xd5, 0x10, 0xc1, 0xec, 0x02, // IID7339 - 0xd5, 0x10, 0xc1, 0xec, 0x04, // IID7340 - 0xd5, 0x10, 0xc1, 0xec, 0x08, // IID7341 - 0xd5, 0x10, 0xc1, 0xec, 0x10, // IID7342 - 0xd5, 0x10, 0xd1, 0xed, // IID7343 - 0xd5, 0x10, 0xc1, 0xed, 0x02, // IID7344 - 0xd5, 0x10, 0xc1, 0xed, 0x04, // IID7345 - 0xd5, 0x10, 0xc1, 0xed, 0x08, // IID7346 - 0xd5, 0x10, 0xc1, 0xed, 0x10, // IID7347 - 0xd5, 0x10, 0xd1, 0xee, // IID7348 - 0xd5, 0x10, 0xc1, 0xee, 0x02, // IID7349 - 0xd5, 0x10, 0xc1, 0xee, 0x04, // IID7350 - 0xd5, 0x10, 0xc1, 0xee, 0x08, // IID7351 - 0xd5, 0x10, 0xc1, 0xee, 0x10, // IID7352 - 0xd5, 0x10, 0xd1, 0xef, // IID7353 - 0xd5, 0x10, 0xc1, 0xef, 0x02, // IID7354 - 0xd5, 0x10, 0xc1, 0xef, 0x04, // IID7355 - 0xd5, 0x10, 0xc1, 0xef, 0x08, // IID7356 - 0xd5, 0x10, 0xc1, 0xef, 0x10, // IID7357 - 0xd5, 0x11, 0xd1, 0xe8, // IID7358 - 0xd5, 0x11, 0xc1, 0xe8, 0x02, // IID7359 - 0xd5, 0x11, 0xc1, 0xe8, 0x04, // IID7360 - 0xd5, 0x11, 0xc1, 0xe8, 0x08, // IID7361 - 0xd5, 0x11, 0xc1, 0xe8, 0x10, // IID7362 - 0xd5, 0x11, 0xd1, 0xe9, // IID7363 - 0xd5, 0x11, 0xc1, 0xe9, 0x02, // IID7364 - 0xd5, 0x11, 0xc1, 0xe9, 0x04, // IID7365 - 0xd5, 0x11, 0xc1, 0xe9, 0x08, // IID7366 - 0xd5, 0x11, 0xc1, 0xe9, 0x10, // IID7367 - 0xd5, 0x11, 0xd1, 0xea, // IID7368 - 0xd5, 0x11, 0xc1, 0xea, 0x02, // IID7369 - 0xd5, 0x11, 0xc1, 0xea, 0x04, // IID7370 - 0xd5, 0x11, 0xc1, 0xea, 0x08, // IID7371 - 0xd5, 0x11, 0xc1, 0xea, 0x10, // IID7372 - 0xd5, 0x11, 0xd1, 0xeb, // IID7373 - 0xd5, 0x11, 0xc1, 0xeb, 0x02, // IID7374 - 0xd5, 0x11, 0xc1, 0xeb, 0x04, // IID7375 - 0xd5, 0x11, 0xc1, 0xeb, 0x08, // IID7376 - 0xd5, 0x11, 0xc1, 0xeb, 0x10, // IID7377 - 0xd5, 0x11, 0xd1, 0xec, // IID7378 - 0xd5, 0x11, 0xc1, 0xec, 0x02, // IID7379 - 0xd5, 0x11, 0xc1, 0xec, 0x04, // IID7380 - 0xd5, 0x11, 0xc1, 0xec, 0x08, // IID7381 - 0xd5, 0x11, 0xc1, 0xec, 0x10, // IID7382 - 0xd5, 0x11, 0xd1, 0xed, // IID7383 - 0xd5, 0x11, 0xc1, 0xed, 0x02, // IID7384 - 0xd5, 0x11, 0xc1, 0xed, 0x04, // IID7385 - 0xd5, 0x11, 0xc1, 0xed, 0x08, // IID7386 - 0xd5, 0x11, 0xc1, 0xed, 0x10, // IID7387 - 0xd5, 0x11, 0xd1, 0xee, // IID7388 - 0xd5, 0x11, 0xc1, 0xee, 0x02, // IID7389 - 0xd5, 0x11, 0xc1, 0xee, 0x04, // IID7390 - 0xd5, 0x11, 0xc1, 0xee, 0x08, // IID7391 - 0xd5, 0x11, 0xc1, 0xee, 0x10, // IID7392 - 0xd5, 0x11, 0xd1, 0xef, // IID7393 - 0xd5, 0x11, 0xc1, 0xef, 0x02, // IID7394 - 0xd5, 0x11, 0xc1, 0xef, 0x04, // IID7395 - 0xd5, 0x11, 0xc1, 0xef, 0x08, // IID7396 - 0xd5, 0x11, 0xc1, 0xef, 0x10, // IID7397 -#endif // _LP64 - 0x83, 0xe9, 0x01, // IID7398 - 0x83, 0xe9, 0x10, // IID7399 - 0x81, 0xe9, 0x00, 0x01, 0x00, 0x00, // IID7400 - 0x81, 0xe9, 0x00, 0x10, 0x00, 0x00, // IID7401 - 0x81, 0xe9, 0x00, 0x00, 0x01, 0x00, // IID7402 - 0x81, 0xe9, 0x00, 0x00, 0x10, 0x00, // IID7403 - 0x81, 0xe9, 0x00, 0x00, 0x00, 0x01, // IID7404 - 0x81, 0xe9, 0x00, 0x00, 0x00, 0x10, // IID7405 - 0x83, 0xea, 0x01, // IID7406 - 0x83, 0xea, 0x10, // IID7407 - 0x81, 0xea, 0x00, 0x01, 0x00, 0x00, // IID7408 - 0x81, 0xea, 0x00, 0x10, 0x00, 0x00, // IID7409 - 0x81, 0xea, 0x00, 0x00, 0x01, 0x00, // IID7410 - 0x81, 0xea, 0x00, 0x00, 0x10, 0x00, // IID7411 - 0x81, 0xea, 0x00, 0x00, 0x00, 0x01, // IID7412 - 0x81, 0xea, 0x00, 0x00, 0x00, 0x10, // IID7413 - 0x83, 0xeb, 0x01, // IID7414 - 0x83, 0xeb, 0x10, // IID7415 - 0x81, 0xeb, 0x00, 0x01, 0x00, 0x00, // IID7416 - 0x81, 0xeb, 0x00, 0x10, 0x00, 0x00, // IID7417 - 0x81, 0xeb, 0x00, 0x00, 0x01, 0x00, // IID7418 - 0x81, 0xeb, 0x00, 0x00, 0x10, 0x00, // IID7419 - 0x81, 0xeb, 0x00, 0x00, 0x00, 0x01, // IID7420 - 0x81, 0xeb, 0x00, 0x00, 0x00, 0x10, // IID7421 -#ifdef _LP64 - 0x41, 0x83, 0xe8, 0x01, // IID7422 - 0x41, 0x83, 0xe8, 0x10, // IID7423 - 0x41, 0x81, 0xe8, 0x00, 0x01, 0x00, 0x00, // IID7424 - 0x41, 0x81, 0xe8, 0x00, 0x10, 0x00, 0x00, // IID7425 - 0x41, 0x81, 0xe8, 0x00, 0x00, 0x01, 0x00, // IID7426 - 0x41, 0x81, 0xe8, 0x00, 0x00, 0x10, 0x00, // IID7427 - 0x41, 0x81, 0xe8, 0x00, 0x00, 0x00, 0x01, // IID7428 - 0x41, 0x81, 0xe8, 0x00, 0x00, 0x00, 0x10, // IID7429 - 0x41, 0x83, 0xe9, 0x01, // IID7430 - 0x41, 0x83, 0xe9, 0x10, // IID7431 - 0x41, 0x81, 0xe9, 0x00, 0x01, 0x00, 0x00, // IID7432 - 0x41, 0x81, 0xe9, 0x00, 0x10, 0x00, 0x00, // IID7433 - 0x41, 0x81, 0xe9, 0x00, 0x00, 0x01, 0x00, // IID7434 - 0x41, 0x81, 0xe9, 0x00, 0x00, 0x10, 0x00, // IID7435 - 0x41, 0x81, 0xe9, 0x00, 0x00, 0x00, 0x01, // IID7436 - 0x41, 0x81, 0xe9, 0x00, 0x00, 0x00, 0x10, // IID7437 - 0x41, 0x83, 0xea, 0x01, // IID7438 - 0x41, 0x83, 0xea, 0x10, // IID7439 - 0x41, 0x81, 0xea, 0x00, 0x01, 0x00, 0x00, // IID7440 - 0x41, 0x81, 0xea, 0x00, 0x10, 0x00, 0x00, // IID7441 - 0x41, 0x81, 0xea, 0x00, 0x00, 0x01, 0x00, // IID7442 - 0x41, 0x81, 0xea, 0x00, 0x00, 0x10, 0x00, // IID7443 - 0x41, 0x81, 0xea, 0x00, 0x00, 0x00, 0x01, // IID7444 - 0x41, 0x81, 0xea, 0x00, 0x00, 0x00, 0x10, // IID7445 - 0x41, 0x83, 0xeb, 0x01, // IID7446 - 0x41, 0x83, 0xeb, 0x10, // IID7447 - 0x41, 0x81, 0xeb, 0x00, 0x01, 0x00, 0x00, // IID7448 - 0x41, 0x81, 0xeb, 0x00, 0x10, 0x00, 0x00, // IID7449 - 0x41, 0x81, 0xeb, 0x00, 0x00, 0x01, 0x00, // IID7450 - 0x41, 0x81, 0xeb, 0x00, 0x00, 0x10, 0x00, // IID7451 - 0x41, 0x81, 0xeb, 0x00, 0x00, 0x00, 0x01, // IID7452 - 0x41, 0x81, 0xeb, 0x00, 0x00, 0x00, 0x10, // IID7453 - 0x41, 0x83, 0xec, 0x01, // IID7454 - 0x41, 0x83, 0xec, 0x10, // IID7455 - 0x41, 0x81, 0xec, 0x00, 0x01, 0x00, 0x00, // IID7456 - 0x41, 0x81, 0xec, 0x00, 0x10, 0x00, 0x00, // IID7457 - 0x41, 0x81, 0xec, 0x00, 0x00, 0x01, 0x00, // IID7458 - 0x41, 0x81, 0xec, 0x00, 0x00, 0x10, 0x00, // IID7459 - 0x41, 0x81, 0xec, 0x00, 0x00, 0x00, 0x01, // IID7460 - 0x41, 0x81, 0xec, 0x00, 0x00, 0x00, 0x10, // IID7461 - 0x41, 0x83, 0xed, 0x01, // IID7462 - 0x41, 0x83, 0xed, 0x10, // IID7463 - 0x41, 0x81, 0xed, 0x00, 0x01, 0x00, 0x00, // IID7464 - 0x41, 0x81, 0xed, 0x00, 0x10, 0x00, 0x00, // IID7465 - 0x41, 0x81, 0xed, 0x00, 0x00, 0x01, 0x00, // IID7466 - 0x41, 0x81, 0xed, 0x00, 0x00, 0x10, 0x00, // IID7467 - 0x41, 0x81, 0xed, 0x00, 0x00, 0x00, 0x01, // IID7468 - 0x41, 0x81, 0xed, 0x00, 0x00, 0x00, 0x10, // IID7469 - 0x41, 0x83, 0xee, 0x01, // IID7470 - 0x41, 0x83, 0xee, 0x10, // IID7471 - 0x41, 0x81, 0xee, 0x00, 0x01, 0x00, 0x00, // IID7472 - 0x41, 0x81, 0xee, 0x00, 0x10, 0x00, 0x00, // IID7473 - 0x41, 0x81, 0xee, 0x00, 0x00, 0x01, 0x00, // IID7474 - 0x41, 0x81, 0xee, 0x00, 0x00, 0x10, 0x00, // IID7475 - 0x41, 0x81, 0xee, 0x00, 0x00, 0x00, 0x01, // IID7476 - 0x41, 0x81, 0xee, 0x00, 0x00, 0x00, 0x10, // IID7477 - 0x41, 0x83, 0xef, 0x01, // IID7478 - 0x41, 0x83, 0xef, 0x10, // IID7479 - 0x41, 0x81, 0xef, 0x00, 0x01, 0x00, 0x00, // IID7480 - 0x41, 0x81, 0xef, 0x00, 0x10, 0x00, 0x00, // IID7481 - 0x41, 0x81, 0xef, 0x00, 0x00, 0x01, 0x00, // IID7482 - 0x41, 0x81, 0xef, 0x00, 0x00, 0x10, 0x00, // IID7483 - 0x41, 0x81, 0xef, 0x00, 0x00, 0x00, 0x01, // IID7484 - 0x41, 0x81, 0xef, 0x00, 0x00, 0x00, 0x10, // IID7485 - 0xd5, 0x10, 0x83, 0xe8, 0x01, // IID7486 - 0xd5, 0x10, 0x83, 0xe8, 0x10, // IID7487 - 0xd5, 0x10, 0x81, 0xe8, 0x00, 0x01, 0x00, 0x00, // IID7488 - 0xd5, 0x10, 0x81, 0xe8, 0x00, 0x10, 0x00, 0x00, // IID7489 - 0xd5, 0x10, 0x81, 0xe8, 0x00, 0x00, 0x01, 0x00, // IID7490 - 0xd5, 0x10, 0x81, 0xe8, 0x00, 0x00, 0x10, 0x00, // IID7491 - 0xd5, 0x10, 0x81, 0xe8, 0x00, 0x00, 0x00, 0x01, // IID7492 - 0xd5, 0x10, 0x81, 0xe8, 0x00, 0x00, 0x00, 0x10, // IID7493 - 0xd5, 0x10, 0x83, 0xe9, 0x01, // IID7494 - 0xd5, 0x10, 0x83, 0xe9, 0x10, // IID7495 - 0xd5, 0x10, 0x81, 0xe9, 0x00, 0x01, 0x00, 0x00, // IID7496 - 0xd5, 0x10, 0x81, 0xe9, 0x00, 0x10, 0x00, 0x00, // IID7497 - 0xd5, 0x10, 0x81, 0xe9, 0x00, 0x00, 0x01, 0x00, // IID7498 - 0xd5, 0x10, 0x81, 0xe9, 0x00, 0x00, 0x10, 0x00, // IID7499 - 0xd5, 0x10, 0x81, 0xe9, 0x00, 0x00, 0x00, 0x01, // IID7500 - 0xd5, 0x10, 0x81, 0xe9, 0x00, 0x00, 0x00, 0x10, // IID7501 - 0xd5, 0x10, 0x83, 0xea, 0x01, // IID7502 - 0xd5, 0x10, 0x83, 0xea, 0x10, // IID7503 - 0xd5, 0x10, 0x81, 0xea, 0x00, 0x01, 0x00, 0x00, // IID7504 - 0xd5, 0x10, 0x81, 0xea, 0x00, 0x10, 0x00, 0x00, // IID7505 - 0xd5, 0x10, 0x81, 0xea, 0x00, 0x00, 0x01, 0x00, // IID7506 - 0xd5, 0x10, 0x81, 0xea, 0x00, 0x00, 0x10, 0x00, // IID7507 - 0xd5, 0x10, 0x81, 0xea, 0x00, 0x00, 0x00, 0x01, // IID7508 - 0xd5, 0x10, 0x81, 0xea, 0x00, 0x00, 0x00, 0x10, // IID7509 - 0xd5, 0x10, 0x83, 0xeb, 0x01, // IID7510 - 0xd5, 0x10, 0x83, 0xeb, 0x10, // IID7511 - 0xd5, 0x10, 0x81, 0xeb, 0x00, 0x01, 0x00, 0x00, // IID7512 - 0xd5, 0x10, 0x81, 0xeb, 0x00, 0x10, 0x00, 0x00, // IID7513 - 0xd5, 0x10, 0x81, 0xeb, 0x00, 0x00, 0x01, 0x00, // IID7514 - 0xd5, 0x10, 0x81, 0xeb, 0x00, 0x00, 0x10, 0x00, // IID7515 - 0xd5, 0x10, 0x81, 0xeb, 0x00, 0x00, 0x00, 0x01, // IID7516 - 0xd5, 0x10, 0x81, 0xeb, 0x00, 0x00, 0x00, 0x10, // IID7517 - 0xd5, 0x10, 0x83, 0xec, 0x01, // IID7518 - 0xd5, 0x10, 0x83, 0xec, 0x10, // IID7519 - 0xd5, 0x10, 0x81, 0xec, 0x00, 0x01, 0x00, 0x00, // IID7520 - 0xd5, 0x10, 0x81, 0xec, 0x00, 0x10, 0x00, 0x00, // IID7521 - 0xd5, 0x10, 0x81, 0xec, 0x00, 0x00, 0x01, 0x00, // IID7522 - 0xd5, 0x10, 0x81, 0xec, 0x00, 0x00, 0x10, 0x00, // IID7523 - 0xd5, 0x10, 0x81, 0xec, 0x00, 0x00, 0x00, 0x01, // IID7524 - 0xd5, 0x10, 0x81, 0xec, 0x00, 0x00, 0x00, 0x10, // IID7525 - 0xd5, 0x10, 0x83, 0xed, 0x01, // IID7526 - 0xd5, 0x10, 0x83, 0xed, 0x10, // IID7527 - 0xd5, 0x10, 0x81, 0xed, 0x00, 0x01, 0x00, 0x00, // IID7528 - 0xd5, 0x10, 0x81, 0xed, 0x00, 0x10, 0x00, 0x00, // IID7529 - 0xd5, 0x10, 0x81, 0xed, 0x00, 0x00, 0x01, 0x00, // IID7530 - 0xd5, 0x10, 0x81, 0xed, 0x00, 0x00, 0x10, 0x00, // IID7531 - 0xd5, 0x10, 0x81, 0xed, 0x00, 0x00, 0x00, 0x01, // IID7532 - 0xd5, 0x10, 0x81, 0xed, 0x00, 0x00, 0x00, 0x10, // IID7533 - 0xd5, 0x10, 0x83, 0xee, 0x01, // IID7534 - 0xd5, 0x10, 0x83, 0xee, 0x10, // IID7535 - 0xd5, 0x10, 0x81, 0xee, 0x00, 0x01, 0x00, 0x00, // IID7536 - 0xd5, 0x10, 0x81, 0xee, 0x00, 0x10, 0x00, 0x00, // IID7537 - 0xd5, 0x10, 0x81, 0xee, 0x00, 0x00, 0x01, 0x00, // IID7538 - 0xd5, 0x10, 0x81, 0xee, 0x00, 0x00, 0x10, 0x00, // IID7539 - 0xd5, 0x10, 0x81, 0xee, 0x00, 0x00, 0x00, 0x01, // IID7540 - 0xd5, 0x10, 0x81, 0xee, 0x00, 0x00, 0x00, 0x10, // IID7541 - 0xd5, 0x10, 0x83, 0xef, 0x01, // IID7542 - 0xd5, 0x10, 0x83, 0xef, 0x10, // IID7543 - 0xd5, 0x10, 0x81, 0xef, 0x00, 0x01, 0x00, 0x00, // IID7544 - 0xd5, 0x10, 0x81, 0xef, 0x00, 0x10, 0x00, 0x00, // IID7545 - 0xd5, 0x10, 0x81, 0xef, 0x00, 0x00, 0x01, 0x00, // IID7546 - 0xd5, 0x10, 0x81, 0xef, 0x00, 0x00, 0x10, 0x00, // IID7547 - 0xd5, 0x10, 0x81, 0xef, 0x00, 0x00, 0x00, 0x01, // IID7548 - 0xd5, 0x10, 0x81, 0xef, 0x00, 0x00, 0x00, 0x10, // IID7549 - 0xd5, 0x11, 0x83, 0xe8, 0x01, // IID7550 - 0xd5, 0x11, 0x83, 0xe8, 0x10, // IID7551 - 0xd5, 0x11, 0x81, 0xe8, 0x00, 0x01, 0x00, 0x00, // IID7552 - 0xd5, 0x11, 0x81, 0xe8, 0x00, 0x10, 0x00, 0x00, // IID7553 - 0xd5, 0x11, 0x81, 0xe8, 0x00, 0x00, 0x01, 0x00, // IID7554 - 0xd5, 0x11, 0x81, 0xe8, 0x00, 0x00, 0x10, 0x00, // IID7555 - 0xd5, 0x11, 0x81, 0xe8, 0x00, 0x00, 0x00, 0x01, // IID7556 - 0xd5, 0x11, 0x81, 0xe8, 0x00, 0x00, 0x00, 0x10, // IID7557 - 0xd5, 0x11, 0x83, 0xe9, 0x01, // IID7558 - 0xd5, 0x11, 0x83, 0xe9, 0x10, // IID7559 - 0xd5, 0x11, 0x81, 0xe9, 0x00, 0x01, 0x00, 0x00, // IID7560 - 0xd5, 0x11, 0x81, 0xe9, 0x00, 0x10, 0x00, 0x00, // IID7561 - 0xd5, 0x11, 0x81, 0xe9, 0x00, 0x00, 0x01, 0x00, // IID7562 - 0xd5, 0x11, 0x81, 0xe9, 0x00, 0x00, 0x10, 0x00, // IID7563 - 0xd5, 0x11, 0x81, 0xe9, 0x00, 0x00, 0x00, 0x01, // IID7564 - 0xd5, 0x11, 0x81, 0xe9, 0x00, 0x00, 0x00, 0x10, // IID7565 - 0xd5, 0x11, 0x83, 0xea, 0x01, // IID7566 - 0xd5, 0x11, 0x83, 0xea, 0x10, // IID7567 - 0xd5, 0x11, 0x81, 0xea, 0x00, 0x01, 0x00, 0x00, // IID7568 - 0xd5, 0x11, 0x81, 0xea, 0x00, 0x10, 0x00, 0x00, // IID7569 - 0xd5, 0x11, 0x81, 0xea, 0x00, 0x00, 0x01, 0x00, // IID7570 - 0xd5, 0x11, 0x81, 0xea, 0x00, 0x00, 0x10, 0x00, // IID7571 - 0xd5, 0x11, 0x81, 0xea, 0x00, 0x00, 0x00, 0x01, // IID7572 - 0xd5, 0x11, 0x81, 0xea, 0x00, 0x00, 0x00, 0x10, // IID7573 - 0xd5, 0x11, 0x83, 0xeb, 0x01, // IID7574 - 0xd5, 0x11, 0x83, 0xeb, 0x10, // IID7575 - 0xd5, 0x11, 0x81, 0xeb, 0x00, 0x01, 0x00, 0x00, // IID7576 - 0xd5, 0x11, 0x81, 0xeb, 0x00, 0x10, 0x00, 0x00, // IID7577 - 0xd5, 0x11, 0x81, 0xeb, 0x00, 0x00, 0x01, 0x00, // IID7578 - 0xd5, 0x11, 0x81, 0xeb, 0x00, 0x00, 0x10, 0x00, // IID7579 - 0xd5, 0x11, 0x81, 0xeb, 0x00, 0x00, 0x00, 0x01, // IID7580 - 0xd5, 0x11, 0x81, 0xeb, 0x00, 0x00, 0x00, 0x10, // IID7581 - 0xd5, 0x11, 0x83, 0xec, 0x01, // IID7582 - 0xd5, 0x11, 0x83, 0xec, 0x10, // IID7583 - 0xd5, 0x11, 0x81, 0xec, 0x00, 0x01, 0x00, 0x00, // IID7584 - 0xd5, 0x11, 0x81, 0xec, 0x00, 0x10, 0x00, 0x00, // IID7585 - 0xd5, 0x11, 0x81, 0xec, 0x00, 0x00, 0x01, 0x00, // IID7586 - 0xd5, 0x11, 0x81, 0xec, 0x00, 0x00, 0x10, 0x00, // IID7587 - 0xd5, 0x11, 0x81, 0xec, 0x00, 0x00, 0x00, 0x01, // IID7588 - 0xd5, 0x11, 0x81, 0xec, 0x00, 0x00, 0x00, 0x10, // IID7589 - 0xd5, 0x11, 0x83, 0xed, 0x01, // IID7590 - 0xd5, 0x11, 0x83, 0xed, 0x10, // IID7591 - 0xd5, 0x11, 0x81, 0xed, 0x00, 0x01, 0x00, 0x00, // IID7592 - 0xd5, 0x11, 0x81, 0xed, 0x00, 0x10, 0x00, 0x00, // IID7593 - 0xd5, 0x11, 0x81, 0xed, 0x00, 0x00, 0x01, 0x00, // IID7594 - 0xd5, 0x11, 0x81, 0xed, 0x00, 0x00, 0x10, 0x00, // IID7595 - 0xd5, 0x11, 0x81, 0xed, 0x00, 0x00, 0x00, 0x01, // IID7596 - 0xd5, 0x11, 0x81, 0xed, 0x00, 0x00, 0x00, 0x10, // IID7597 - 0xd5, 0x11, 0x83, 0xee, 0x01, // IID7598 - 0xd5, 0x11, 0x83, 0xee, 0x10, // IID7599 - 0xd5, 0x11, 0x81, 0xee, 0x00, 0x01, 0x00, 0x00, // IID7600 - 0xd5, 0x11, 0x81, 0xee, 0x00, 0x10, 0x00, 0x00, // IID7601 - 0xd5, 0x11, 0x81, 0xee, 0x00, 0x00, 0x01, 0x00, // IID7602 - 0xd5, 0x11, 0x81, 0xee, 0x00, 0x00, 0x10, 0x00, // IID7603 - 0xd5, 0x11, 0x81, 0xee, 0x00, 0x00, 0x00, 0x01, // IID7604 - 0xd5, 0x11, 0x81, 0xee, 0x00, 0x00, 0x00, 0x10, // IID7605 - 0xd5, 0x11, 0x83, 0xef, 0x01, // IID7606 - 0xd5, 0x11, 0x83, 0xef, 0x10, // IID7607 - 0xd5, 0x11, 0x81, 0xef, 0x00, 0x01, 0x00, 0x00, // IID7608 - 0xd5, 0x11, 0x81, 0xef, 0x00, 0x10, 0x00, 0x00, // IID7609 - 0xd5, 0x11, 0x81, 0xef, 0x00, 0x00, 0x01, 0x00, // IID7610 - 0xd5, 0x11, 0x81, 0xef, 0x00, 0x00, 0x10, 0x00, // IID7611 - 0xd5, 0x11, 0x81, 0xef, 0x00, 0x00, 0x00, 0x01, // IID7612 - 0xd5, 0x11, 0x81, 0xef, 0x00, 0x00, 0x00, 0x10, // IID7613 -#endif // _LP64 - 0x83, 0xf1, 0x01, // IID7614 - 0x83, 0xf1, 0x10, // IID7615 - 0x81, 0xf1, 0x00, 0x01, 0x00, 0x00, // IID7616 - 0x81, 0xf1, 0x00, 0x10, 0x00, 0x00, // IID7617 - 0x81, 0xf1, 0x00, 0x00, 0x01, 0x00, // IID7618 - 0x81, 0xf1, 0x00, 0x00, 0x10, 0x00, // IID7619 - 0x81, 0xf1, 0x00, 0x00, 0x00, 0x01, // IID7620 - 0x81, 0xf1, 0x00, 0x00, 0x00, 0x10, // IID7621 - 0x83, 0xf2, 0x01, // IID7622 - 0x83, 0xf2, 0x10, // IID7623 - 0x81, 0xf2, 0x00, 0x01, 0x00, 0x00, // IID7624 - 0x81, 0xf2, 0x00, 0x10, 0x00, 0x00, // IID7625 - 0x81, 0xf2, 0x00, 0x00, 0x01, 0x00, // IID7626 - 0x81, 0xf2, 0x00, 0x00, 0x10, 0x00, // IID7627 - 0x81, 0xf2, 0x00, 0x00, 0x00, 0x01, // IID7628 - 0x81, 0xf2, 0x00, 0x00, 0x00, 0x10, // IID7629 - 0x83, 0xf3, 0x01, // IID7630 - 0x83, 0xf3, 0x10, // IID7631 - 0x81, 0xf3, 0x00, 0x01, 0x00, 0x00, // IID7632 - 0x81, 0xf3, 0x00, 0x10, 0x00, 0x00, // IID7633 - 0x81, 0xf3, 0x00, 0x00, 0x01, 0x00, // IID7634 - 0x81, 0xf3, 0x00, 0x00, 0x10, 0x00, // IID7635 - 0x81, 0xf3, 0x00, 0x00, 0x00, 0x01, // IID7636 - 0x81, 0xf3, 0x00, 0x00, 0x00, 0x10, // IID7637 -#ifdef _LP64 - 0x41, 0x83, 0xf0, 0x01, // IID7638 - 0x41, 0x83, 0xf0, 0x10, // IID7639 - 0x41, 0x81, 0xf0, 0x00, 0x01, 0x00, 0x00, // IID7640 - 0x41, 0x81, 0xf0, 0x00, 0x10, 0x00, 0x00, // IID7641 - 0x41, 0x81, 0xf0, 0x00, 0x00, 0x01, 0x00, // IID7642 - 0x41, 0x81, 0xf0, 0x00, 0x00, 0x10, 0x00, // IID7643 - 0x41, 0x81, 0xf0, 0x00, 0x00, 0x00, 0x01, // IID7644 - 0x41, 0x81, 0xf0, 0x00, 0x00, 0x00, 0x10, // IID7645 - 0x41, 0x83, 0xf1, 0x01, // IID7646 - 0x41, 0x83, 0xf1, 0x10, // IID7647 - 0x41, 0x81, 0xf1, 0x00, 0x01, 0x00, 0x00, // IID7648 - 0x41, 0x81, 0xf1, 0x00, 0x10, 0x00, 0x00, // IID7649 - 0x41, 0x81, 0xf1, 0x00, 0x00, 0x01, 0x00, // IID7650 - 0x41, 0x81, 0xf1, 0x00, 0x00, 0x10, 0x00, // IID7651 - 0x41, 0x81, 0xf1, 0x00, 0x00, 0x00, 0x01, // IID7652 - 0x41, 0x81, 0xf1, 0x00, 0x00, 0x00, 0x10, // IID7653 - 0x41, 0x83, 0xf2, 0x01, // IID7654 - 0x41, 0x83, 0xf2, 0x10, // IID7655 - 0x41, 0x81, 0xf2, 0x00, 0x01, 0x00, 0x00, // IID7656 - 0x41, 0x81, 0xf2, 0x00, 0x10, 0x00, 0x00, // IID7657 - 0x41, 0x81, 0xf2, 0x00, 0x00, 0x01, 0x00, // IID7658 - 0x41, 0x81, 0xf2, 0x00, 0x00, 0x10, 0x00, // IID7659 - 0x41, 0x81, 0xf2, 0x00, 0x00, 0x00, 0x01, // IID7660 - 0x41, 0x81, 0xf2, 0x00, 0x00, 0x00, 0x10, // IID7661 - 0x41, 0x83, 0xf3, 0x01, // IID7662 - 0x41, 0x83, 0xf3, 0x10, // IID7663 - 0x41, 0x81, 0xf3, 0x00, 0x01, 0x00, 0x00, // IID7664 - 0x41, 0x81, 0xf3, 0x00, 0x10, 0x00, 0x00, // IID7665 - 0x41, 0x81, 0xf3, 0x00, 0x00, 0x01, 0x00, // IID7666 - 0x41, 0x81, 0xf3, 0x00, 0x00, 0x10, 0x00, // IID7667 - 0x41, 0x81, 0xf3, 0x00, 0x00, 0x00, 0x01, // IID7668 - 0x41, 0x81, 0xf3, 0x00, 0x00, 0x00, 0x10, // IID7669 - 0x41, 0x83, 0xf4, 0x01, // IID7670 - 0x41, 0x83, 0xf4, 0x10, // IID7671 - 0x41, 0x81, 0xf4, 0x00, 0x01, 0x00, 0x00, // IID7672 - 0x41, 0x81, 0xf4, 0x00, 0x10, 0x00, 0x00, // IID7673 - 0x41, 0x81, 0xf4, 0x00, 0x00, 0x01, 0x00, // IID7674 - 0x41, 0x81, 0xf4, 0x00, 0x00, 0x10, 0x00, // IID7675 - 0x41, 0x81, 0xf4, 0x00, 0x00, 0x00, 0x01, // IID7676 - 0x41, 0x81, 0xf4, 0x00, 0x00, 0x00, 0x10, // IID7677 - 0x41, 0x83, 0xf5, 0x01, // IID7678 - 0x41, 0x83, 0xf5, 0x10, // IID7679 - 0x41, 0x81, 0xf5, 0x00, 0x01, 0x00, 0x00, // IID7680 - 0x41, 0x81, 0xf5, 0x00, 0x10, 0x00, 0x00, // IID7681 - 0x41, 0x81, 0xf5, 0x00, 0x00, 0x01, 0x00, // IID7682 - 0x41, 0x81, 0xf5, 0x00, 0x00, 0x10, 0x00, // IID7683 - 0x41, 0x81, 0xf5, 0x00, 0x00, 0x00, 0x01, // IID7684 - 0x41, 0x81, 0xf5, 0x00, 0x00, 0x00, 0x10, // IID7685 - 0x41, 0x83, 0xf6, 0x01, // IID7686 - 0x41, 0x83, 0xf6, 0x10, // IID7687 - 0x41, 0x81, 0xf6, 0x00, 0x01, 0x00, 0x00, // IID7688 - 0x41, 0x81, 0xf6, 0x00, 0x10, 0x00, 0x00, // IID7689 - 0x41, 0x81, 0xf6, 0x00, 0x00, 0x01, 0x00, // IID7690 - 0x41, 0x81, 0xf6, 0x00, 0x00, 0x10, 0x00, // IID7691 - 0x41, 0x81, 0xf6, 0x00, 0x00, 0x00, 0x01, // IID7692 - 0x41, 0x81, 0xf6, 0x00, 0x00, 0x00, 0x10, // IID7693 - 0x41, 0x83, 0xf7, 0x01, // IID7694 - 0x41, 0x83, 0xf7, 0x10, // IID7695 - 0x41, 0x81, 0xf7, 0x00, 0x01, 0x00, 0x00, // IID7696 - 0x41, 0x81, 0xf7, 0x00, 0x10, 0x00, 0x00, // IID7697 - 0x41, 0x81, 0xf7, 0x00, 0x00, 0x01, 0x00, // IID7698 - 0x41, 0x81, 0xf7, 0x00, 0x00, 0x10, 0x00, // IID7699 - 0x41, 0x81, 0xf7, 0x00, 0x00, 0x00, 0x01, // IID7700 - 0x41, 0x81, 0xf7, 0x00, 0x00, 0x00, 0x10, // IID7701 - 0xd5, 0x10, 0x83, 0xf0, 0x01, // IID7702 - 0xd5, 0x10, 0x83, 0xf0, 0x10, // IID7703 - 0xd5, 0x10, 0x81, 0xf0, 0x00, 0x01, 0x00, 0x00, // IID7704 - 0xd5, 0x10, 0x81, 0xf0, 0x00, 0x10, 0x00, 0x00, // IID7705 - 0xd5, 0x10, 0x81, 0xf0, 0x00, 0x00, 0x01, 0x00, // IID7706 - 0xd5, 0x10, 0x81, 0xf0, 0x00, 0x00, 0x10, 0x00, // IID7707 - 0xd5, 0x10, 0x81, 0xf0, 0x00, 0x00, 0x00, 0x01, // IID7708 - 0xd5, 0x10, 0x81, 0xf0, 0x00, 0x00, 0x00, 0x10, // IID7709 - 0xd5, 0x10, 0x83, 0xf1, 0x01, // IID7710 - 0xd5, 0x10, 0x83, 0xf1, 0x10, // IID7711 - 0xd5, 0x10, 0x81, 0xf1, 0x00, 0x01, 0x00, 0x00, // IID7712 - 0xd5, 0x10, 0x81, 0xf1, 0x00, 0x10, 0x00, 0x00, // IID7713 - 0xd5, 0x10, 0x81, 0xf1, 0x00, 0x00, 0x01, 0x00, // IID7714 - 0xd5, 0x10, 0x81, 0xf1, 0x00, 0x00, 0x10, 0x00, // IID7715 - 0xd5, 0x10, 0x81, 0xf1, 0x00, 0x00, 0x00, 0x01, // IID7716 - 0xd5, 0x10, 0x81, 0xf1, 0x00, 0x00, 0x00, 0x10, // IID7717 - 0xd5, 0x10, 0x83, 0xf2, 0x01, // IID7718 - 0xd5, 0x10, 0x83, 0xf2, 0x10, // IID7719 - 0xd5, 0x10, 0x81, 0xf2, 0x00, 0x01, 0x00, 0x00, // IID7720 - 0xd5, 0x10, 0x81, 0xf2, 0x00, 0x10, 0x00, 0x00, // IID7721 - 0xd5, 0x10, 0x81, 0xf2, 0x00, 0x00, 0x01, 0x00, // IID7722 - 0xd5, 0x10, 0x81, 0xf2, 0x00, 0x00, 0x10, 0x00, // IID7723 - 0xd5, 0x10, 0x81, 0xf2, 0x00, 0x00, 0x00, 0x01, // IID7724 - 0xd5, 0x10, 0x81, 0xf2, 0x00, 0x00, 0x00, 0x10, // IID7725 - 0xd5, 0x10, 0x83, 0xf3, 0x01, // IID7726 - 0xd5, 0x10, 0x83, 0xf3, 0x10, // IID7727 - 0xd5, 0x10, 0x81, 0xf3, 0x00, 0x01, 0x00, 0x00, // IID7728 - 0xd5, 0x10, 0x81, 0xf3, 0x00, 0x10, 0x00, 0x00, // IID7729 - 0xd5, 0x10, 0x81, 0xf3, 0x00, 0x00, 0x01, 0x00, // IID7730 - 0xd5, 0x10, 0x81, 0xf3, 0x00, 0x00, 0x10, 0x00, // IID7731 - 0xd5, 0x10, 0x81, 0xf3, 0x00, 0x00, 0x00, 0x01, // IID7732 - 0xd5, 0x10, 0x81, 0xf3, 0x00, 0x00, 0x00, 0x10, // IID7733 - 0xd5, 0x10, 0x83, 0xf4, 0x01, // IID7734 - 0xd5, 0x10, 0x83, 0xf4, 0x10, // IID7735 - 0xd5, 0x10, 0x81, 0xf4, 0x00, 0x01, 0x00, 0x00, // IID7736 - 0xd5, 0x10, 0x81, 0xf4, 0x00, 0x10, 0x00, 0x00, // IID7737 - 0xd5, 0x10, 0x81, 0xf4, 0x00, 0x00, 0x01, 0x00, // IID7738 - 0xd5, 0x10, 0x81, 0xf4, 0x00, 0x00, 0x10, 0x00, // IID7739 - 0xd5, 0x10, 0x81, 0xf4, 0x00, 0x00, 0x00, 0x01, // IID7740 - 0xd5, 0x10, 0x81, 0xf4, 0x00, 0x00, 0x00, 0x10, // IID7741 - 0xd5, 0x10, 0x83, 0xf5, 0x01, // IID7742 - 0xd5, 0x10, 0x83, 0xf5, 0x10, // IID7743 - 0xd5, 0x10, 0x81, 0xf5, 0x00, 0x01, 0x00, 0x00, // IID7744 - 0xd5, 0x10, 0x81, 0xf5, 0x00, 0x10, 0x00, 0x00, // IID7745 - 0xd5, 0x10, 0x81, 0xf5, 0x00, 0x00, 0x01, 0x00, // IID7746 - 0xd5, 0x10, 0x81, 0xf5, 0x00, 0x00, 0x10, 0x00, // IID7747 - 0xd5, 0x10, 0x81, 0xf5, 0x00, 0x00, 0x00, 0x01, // IID7748 - 0xd5, 0x10, 0x81, 0xf5, 0x00, 0x00, 0x00, 0x10, // IID7749 - 0xd5, 0x10, 0x83, 0xf6, 0x01, // IID7750 - 0xd5, 0x10, 0x83, 0xf6, 0x10, // IID7751 - 0xd5, 0x10, 0x81, 0xf6, 0x00, 0x01, 0x00, 0x00, // IID7752 - 0xd5, 0x10, 0x81, 0xf6, 0x00, 0x10, 0x00, 0x00, // IID7753 - 0xd5, 0x10, 0x81, 0xf6, 0x00, 0x00, 0x01, 0x00, // IID7754 - 0xd5, 0x10, 0x81, 0xf6, 0x00, 0x00, 0x10, 0x00, // IID7755 - 0xd5, 0x10, 0x81, 0xf6, 0x00, 0x00, 0x00, 0x01, // IID7756 - 0xd5, 0x10, 0x81, 0xf6, 0x00, 0x00, 0x00, 0x10, // IID7757 - 0xd5, 0x10, 0x83, 0xf7, 0x01, // IID7758 - 0xd5, 0x10, 0x83, 0xf7, 0x10, // IID7759 - 0xd5, 0x10, 0x81, 0xf7, 0x00, 0x01, 0x00, 0x00, // IID7760 - 0xd5, 0x10, 0x81, 0xf7, 0x00, 0x10, 0x00, 0x00, // IID7761 - 0xd5, 0x10, 0x81, 0xf7, 0x00, 0x00, 0x01, 0x00, // IID7762 - 0xd5, 0x10, 0x81, 0xf7, 0x00, 0x00, 0x10, 0x00, // IID7763 - 0xd5, 0x10, 0x81, 0xf7, 0x00, 0x00, 0x00, 0x01, // IID7764 - 0xd5, 0x10, 0x81, 0xf7, 0x00, 0x00, 0x00, 0x10, // IID7765 - 0xd5, 0x11, 0x83, 0xf0, 0x01, // IID7766 - 0xd5, 0x11, 0x83, 0xf0, 0x10, // IID7767 - 0xd5, 0x11, 0x81, 0xf0, 0x00, 0x01, 0x00, 0x00, // IID7768 - 0xd5, 0x11, 0x81, 0xf0, 0x00, 0x10, 0x00, 0x00, // IID7769 - 0xd5, 0x11, 0x81, 0xf0, 0x00, 0x00, 0x01, 0x00, // IID7770 - 0xd5, 0x11, 0x81, 0xf0, 0x00, 0x00, 0x10, 0x00, // IID7771 - 0xd5, 0x11, 0x81, 0xf0, 0x00, 0x00, 0x00, 0x01, // IID7772 - 0xd5, 0x11, 0x81, 0xf0, 0x00, 0x00, 0x00, 0x10, // IID7773 - 0xd5, 0x11, 0x83, 0xf1, 0x01, // IID7774 - 0xd5, 0x11, 0x83, 0xf1, 0x10, // IID7775 - 0xd5, 0x11, 0x81, 0xf1, 0x00, 0x01, 0x00, 0x00, // IID7776 - 0xd5, 0x11, 0x81, 0xf1, 0x00, 0x10, 0x00, 0x00, // IID7777 - 0xd5, 0x11, 0x81, 0xf1, 0x00, 0x00, 0x01, 0x00, // IID7778 - 0xd5, 0x11, 0x81, 0xf1, 0x00, 0x00, 0x10, 0x00, // IID7779 - 0xd5, 0x11, 0x81, 0xf1, 0x00, 0x00, 0x00, 0x01, // IID7780 - 0xd5, 0x11, 0x81, 0xf1, 0x00, 0x00, 0x00, 0x10, // IID7781 - 0xd5, 0x11, 0x83, 0xf2, 0x01, // IID7782 - 0xd5, 0x11, 0x83, 0xf2, 0x10, // IID7783 - 0xd5, 0x11, 0x81, 0xf2, 0x00, 0x01, 0x00, 0x00, // IID7784 - 0xd5, 0x11, 0x81, 0xf2, 0x00, 0x10, 0x00, 0x00, // IID7785 - 0xd5, 0x11, 0x81, 0xf2, 0x00, 0x00, 0x01, 0x00, // IID7786 - 0xd5, 0x11, 0x81, 0xf2, 0x00, 0x00, 0x10, 0x00, // IID7787 - 0xd5, 0x11, 0x81, 0xf2, 0x00, 0x00, 0x00, 0x01, // IID7788 - 0xd5, 0x11, 0x81, 0xf2, 0x00, 0x00, 0x00, 0x10, // IID7789 - 0xd5, 0x11, 0x83, 0xf3, 0x01, // IID7790 - 0xd5, 0x11, 0x83, 0xf3, 0x10, // IID7791 - 0xd5, 0x11, 0x81, 0xf3, 0x00, 0x01, 0x00, 0x00, // IID7792 - 0xd5, 0x11, 0x81, 0xf3, 0x00, 0x10, 0x00, 0x00, // IID7793 - 0xd5, 0x11, 0x81, 0xf3, 0x00, 0x00, 0x01, 0x00, // IID7794 - 0xd5, 0x11, 0x81, 0xf3, 0x00, 0x00, 0x10, 0x00, // IID7795 - 0xd5, 0x11, 0x81, 0xf3, 0x00, 0x00, 0x00, 0x01, // IID7796 - 0xd5, 0x11, 0x81, 0xf3, 0x00, 0x00, 0x00, 0x10, // IID7797 - 0xd5, 0x11, 0x83, 0xf4, 0x01, // IID7798 - 0xd5, 0x11, 0x83, 0xf4, 0x10, // IID7799 - 0xd5, 0x11, 0x81, 0xf4, 0x00, 0x01, 0x00, 0x00, // IID7800 - 0xd5, 0x11, 0x81, 0xf4, 0x00, 0x10, 0x00, 0x00, // IID7801 - 0xd5, 0x11, 0x81, 0xf4, 0x00, 0x00, 0x01, 0x00, // IID7802 - 0xd5, 0x11, 0x81, 0xf4, 0x00, 0x00, 0x10, 0x00, // IID7803 - 0xd5, 0x11, 0x81, 0xf4, 0x00, 0x00, 0x00, 0x01, // IID7804 - 0xd5, 0x11, 0x81, 0xf4, 0x00, 0x00, 0x00, 0x10, // IID7805 - 0xd5, 0x11, 0x83, 0xf5, 0x01, // IID7806 - 0xd5, 0x11, 0x83, 0xf5, 0x10, // IID7807 - 0xd5, 0x11, 0x81, 0xf5, 0x00, 0x01, 0x00, 0x00, // IID7808 - 0xd5, 0x11, 0x81, 0xf5, 0x00, 0x10, 0x00, 0x00, // IID7809 - 0xd5, 0x11, 0x81, 0xf5, 0x00, 0x00, 0x01, 0x00, // IID7810 - 0xd5, 0x11, 0x81, 0xf5, 0x00, 0x00, 0x10, 0x00, // IID7811 - 0xd5, 0x11, 0x81, 0xf5, 0x00, 0x00, 0x00, 0x01, // IID7812 - 0xd5, 0x11, 0x81, 0xf5, 0x00, 0x00, 0x00, 0x10, // IID7813 - 0xd5, 0x11, 0x83, 0xf6, 0x01, // IID7814 - 0xd5, 0x11, 0x83, 0xf6, 0x10, // IID7815 - 0xd5, 0x11, 0x81, 0xf6, 0x00, 0x01, 0x00, 0x00, // IID7816 - 0xd5, 0x11, 0x81, 0xf6, 0x00, 0x10, 0x00, 0x00, // IID7817 - 0xd5, 0x11, 0x81, 0xf6, 0x00, 0x00, 0x01, 0x00, // IID7818 - 0xd5, 0x11, 0x81, 0xf6, 0x00, 0x00, 0x10, 0x00, // IID7819 - 0xd5, 0x11, 0x81, 0xf6, 0x00, 0x00, 0x00, 0x01, // IID7820 - 0xd5, 0x11, 0x81, 0xf6, 0x00, 0x00, 0x00, 0x10, // IID7821 - 0xd5, 0x11, 0x83, 0xf7, 0x01, // IID7822 - 0xd5, 0x11, 0x83, 0xf7, 0x10, // IID7823 - 0xd5, 0x11, 0x81, 0xf7, 0x00, 0x01, 0x00, 0x00, // IID7824 - 0xd5, 0x11, 0x81, 0xf7, 0x00, 0x10, 0x00, 0x00, // IID7825 - 0xd5, 0x11, 0x81, 0xf7, 0x00, 0x00, 0x01, 0x00, // IID7826 - 0xd5, 0x11, 0x81, 0xf7, 0x00, 0x00, 0x10, 0x00, // IID7827 - 0xd5, 0x11, 0x81, 0xf7, 0x00, 0x00, 0x00, 0x01, // IID7828 - 0xd5, 0x11, 0x81, 0xf7, 0x00, 0x00, 0x00, 0x10, // IID7829 -#endif // _LP64 - 0xb9, 0x01, 0x00, 0x00, 0x00, // IID7830 - 0xb9, 0x10, 0x00, 0x00, 0x00, // IID7831 - 0xb9, 0x00, 0x01, 0x00, 0x00, // IID7832 - 0xb9, 0x00, 0x10, 0x00, 0x00, // IID7833 - 0xb9, 0x00, 0x00, 0x01, 0x00, // IID7834 - 0xb9, 0x00, 0x00, 0x10, 0x00, // IID7835 - 0xb9, 0x00, 0x00, 0x00, 0x01, // IID7836 - 0xb9, 0x00, 0x00, 0x00, 0x10, // IID7837 - 0xba, 0x01, 0x00, 0x00, 0x00, // IID7838 - 0xba, 0x10, 0x00, 0x00, 0x00, // IID7839 - 0xba, 0x00, 0x01, 0x00, 0x00, // IID7840 - 0xba, 0x00, 0x10, 0x00, 0x00, // IID7841 - 0xba, 0x00, 0x00, 0x01, 0x00, // IID7842 - 0xba, 0x00, 0x00, 0x10, 0x00, // IID7843 - 0xba, 0x00, 0x00, 0x00, 0x01, // IID7844 - 0xba, 0x00, 0x00, 0x00, 0x10, // IID7845 - 0xbb, 0x01, 0x00, 0x00, 0x00, // IID7846 - 0xbb, 0x10, 0x00, 0x00, 0x00, // IID7847 - 0xbb, 0x00, 0x01, 0x00, 0x00, // IID7848 - 0xbb, 0x00, 0x10, 0x00, 0x00, // IID7849 - 0xbb, 0x00, 0x00, 0x01, 0x00, // IID7850 - 0xbb, 0x00, 0x00, 0x10, 0x00, // IID7851 - 0xbb, 0x00, 0x00, 0x00, 0x01, // IID7852 - 0xbb, 0x00, 0x00, 0x00, 0x10, // IID7853 -#ifdef _LP64 - 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, // IID7854 - 0x41, 0xb8, 0x10, 0x00, 0x00, 0x00, // IID7855 - 0x41, 0xb8, 0x00, 0x01, 0x00, 0x00, // IID7856 - 0x41, 0xb8, 0x00, 0x10, 0x00, 0x00, // IID7857 - 0x41, 0xb8, 0x00, 0x00, 0x01, 0x00, // IID7858 - 0x41, 0xb8, 0x00, 0x00, 0x10, 0x00, // IID7859 - 0x41, 0xb8, 0x00, 0x00, 0x00, 0x01, // IID7860 - 0x41, 0xb8, 0x00, 0x00, 0x00, 0x10, // IID7861 - 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, // IID7862 - 0x41, 0xb9, 0x10, 0x00, 0x00, 0x00, // IID7863 - 0x41, 0xb9, 0x00, 0x01, 0x00, 0x00, // IID7864 - 0x41, 0xb9, 0x00, 0x10, 0x00, 0x00, // IID7865 - 0x41, 0xb9, 0x00, 0x00, 0x01, 0x00, // IID7866 - 0x41, 0xb9, 0x00, 0x00, 0x10, 0x00, // IID7867 - 0x41, 0xb9, 0x00, 0x00, 0x00, 0x01, // IID7868 - 0x41, 0xb9, 0x00, 0x00, 0x00, 0x10, // IID7869 - 0x41, 0xba, 0x01, 0x00, 0x00, 0x00, // IID7870 - 0x41, 0xba, 0x10, 0x00, 0x00, 0x00, // IID7871 - 0x41, 0xba, 0x00, 0x01, 0x00, 0x00, // IID7872 - 0x41, 0xba, 0x00, 0x10, 0x00, 0x00, // IID7873 - 0x41, 0xba, 0x00, 0x00, 0x01, 0x00, // IID7874 - 0x41, 0xba, 0x00, 0x00, 0x10, 0x00, // IID7875 - 0x41, 0xba, 0x00, 0x00, 0x00, 0x01, // IID7876 - 0x41, 0xba, 0x00, 0x00, 0x00, 0x10, // IID7877 - 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, // IID7878 - 0x41, 0xbb, 0x10, 0x00, 0x00, 0x00, // IID7879 - 0x41, 0xbb, 0x00, 0x01, 0x00, 0x00, // IID7880 - 0x41, 0xbb, 0x00, 0x10, 0x00, 0x00, // IID7881 - 0x41, 0xbb, 0x00, 0x00, 0x01, 0x00, // IID7882 - 0x41, 0xbb, 0x00, 0x00, 0x10, 0x00, // IID7883 - 0x41, 0xbb, 0x00, 0x00, 0x00, 0x01, // IID7884 - 0x41, 0xbb, 0x00, 0x00, 0x00, 0x10, // IID7885 - 0x41, 0xbc, 0x01, 0x00, 0x00, 0x00, // IID7886 - 0x41, 0xbc, 0x10, 0x00, 0x00, 0x00, // IID7887 - 0x41, 0xbc, 0x00, 0x01, 0x00, 0x00, // IID7888 - 0x41, 0xbc, 0x00, 0x10, 0x00, 0x00, // IID7889 - 0x41, 0xbc, 0x00, 0x00, 0x01, 0x00, // IID7890 - 0x41, 0xbc, 0x00, 0x00, 0x10, 0x00, // IID7891 - 0x41, 0xbc, 0x00, 0x00, 0x00, 0x01, // IID7892 - 0x41, 0xbc, 0x00, 0x00, 0x00, 0x10, // IID7893 - 0x41, 0xbd, 0x01, 0x00, 0x00, 0x00, // IID7894 - 0x41, 0xbd, 0x10, 0x00, 0x00, 0x00, // IID7895 - 0x41, 0xbd, 0x00, 0x01, 0x00, 0x00, // IID7896 - 0x41, 0xbd, 0x00, 0x10, 0x00, 0x00, // IID7897 - 0x41, 0xbd, 0x00, 0x00, 0x01, 0x00, // IID7898 - 0x41, 0xbd, 0x00, 0x00, 0x10, 0x00, // IID7899 - 0x41, 0xbd, 0x00, 0x00, 0x00, 0x01, // IID7900 - 0x41, 0xbd, 0x00, 0x00, 0x00, 0x10, // IID7901 - 0x41, 0xbe, 0x01, 0x00, 0x00, 0x00, // IID7902 - 0x41, 0xbe, 0x10, 0x00, 0x00, 0x00, // IID7903 - 0x41, 0xbe, 0x00, 0x01, 0x00, 0x00, // IID7904 - 0x41, 0xbe, 0x00, 0x10, 0x00, 0x00, // IID7905 - 0x41, 0xbe, 0x00, 0x00, 0x01, 0x00, // IID7906 - 0x41, 0xbe, 0x00, 0x00, 0x10, 0x00, // IID7907 - 0x41, 0xbe, 0x00, 0x00, 0x00, 0x01, // IID7908 - 0x41, 0xbe, 0x00, 0x00, 0x00, 0x10, // IID7909 - 0x41, 0xbf, 0x01, 0x00, 0x00, 0x00, // IID7910 - 0x41, 0xbf, 0x10, 0x00, 0x00, 0x00, // IID7911 - 0x41, 0xbf, 0x00, 0x01, 0x00, 0x00, // IID7912 - 0x41, 0xbf, 0x00, 0x10, 0x00, 0x00, // IID7913 - 0x41, 0xbf, 0x00, 0x00, 0x01, 0x00, // IID7914 - 0x41, 0xbf, 0x00, 0x00, 0x10, 0x00, // IID7915 - 0x41, 0xbf, 0x00, 0x00, 0x00, 0x01, // IID7916 - 0x41, 0xbf, 0x00, 0x00, 0x00, 0x10, // IID7917 - 0xd5, 0x10, 0xb8, 0x01, 0x00, 0x00, 0x00, // IID7918 - 0xd5, 0x10, 0xb8, 0x10, 0x00, 0x00, 0x00, // IID7919 - 0xd5, 0x10, 0xb8, 0x00, 0x01, 0x00, 0x00, // IID7920 - 0xd5, 0x10, 0xb8, 0x00, 0x10, 0x00, 0x00, // IID7921 - 0xd5, 0x10, 0xb8, 0x00, 0x00, 0x01, 0x00, // IID7922 - 0xd5, 0x10, 0xb8, 0x00, 0x00, 0x10, 0x00, // IID7923 - 0xd5, 0x10, 0xb8, 0x00, 0x00, 0x00, 0x01, // IID7924 - 0xd5, 0x10, 0xb8, 0x00, 0x00, 0x00, 0x10, // IID7925 - 0xd5, 0x10, 0xb9, 0x01, 0x00, 0x00, 0x00, // IID7926 - 0xd5, 0x10, 0xb9, 0x10, 0x00, 0x00, 0x00, // IID7927 - 0xd5, 0x10, 0xb9, 0x00, 0x01, 0x00, 0x00, // IID7928 - 0xd5, 0x10, 0xb9, 0x00, 0x10, 0x00, 0x00, // IID7929 - 0xd5, 0x10, 0xb9, 0x00, 0x00, 0x01, 0x00, // IID7930 - 0xd5, 0x10, 0xb9, 0x00, 0x00, 0x10, 0x00, // IID7931 - 0xd5, 0x10, 0xb9, 0x00, 0x00, 0x00, 0x01, // IID7932 - 0xd5, 0x10, 0xb9, 0x00, 0x00, 0x00, 0x10, // IID7933 - 0xd5, 0x10, 0xba, 0x01, 0x00, 0x00, 0x00, // IID7934 - 0xd5, 0x10, 0xba, 0x10, 0x00, 0x00, 0x00, // IID7935 - 0xd5, 0x10, 0xba, 0x00, 0x01, 0x00, 0x00, // IID7936 - 0xd5, 0x10, 0xba, 0x00, 0x10, 0x00, 0x00, // IID7937 - 0xd5, 0x10, 0xba, 0x00, 0x00, 0x01, 0x00, // IID7938 - 0xd5, 0x10, 0xba, 0x00, 0x00, 0x10, 0x00, // IID7939 - 0xd5, 0x10, 0xba, 0x00, 0x00, 0x00, 0x01, // IID7940 - 0xd5, 0x10, 0xba, 0x00, 0x00, 0x00, 0x10, // IID7941 - 0xd5, 0x10, 0xbb, 0x01, 0x00, 0x00, 0x00, // IID7942 - 0xd5, 0x10, 0xbb, 0x10, 0x00, 0x00, 0x00, // IID7943 - 0xd5, 0x10, 0xbb, 0x00, 0x01, 0x00, 0x00, // IID7944 - 0xd5, 0x10, 0xbb, 0x00, 0x10, 0x00, 0x00, // IID7945 - 0xd5, 0x10, 0xbb, 0x00, 0x00, 0x01, 0x00, // IID7946 - 0xd5, 0x10, 0xbb, 0x00, 0x00, 0x10, 0x00, // IID7947 - 0xd5, 0x10, 0xbb, 0x00, 0x00, 0x00, 0x01, // IID7948 - 0xd5, 0x10, 0xbb, 0x00, 0x00, 0x00, 0x10, // IID7949 - 0xd5, 0x10, 0xbc, 0x01, 0x00, 0x00, 0x00, // IID7950 - 0xd5, 0x10, 0xbc, 0x10, 0x00, 0x00, 0x00, // IID7951 - 0xd5, 0x10, 0xbc, 0x00, 0x01, 0x00, 0x00, // IID7952 - 0xd5, 0x10, 0xbc, 0x00, 0x10, 0x00, 0x00, // IID7953 - 0xd5, 0x10, 0xbc, 0x00, 0x00, 0x01, 0x00, // IID7954 - 0xd5, 0x10, 0xbc, 0x00, 0x00, 0x10, 0x00, // IID7955 - 0xd5, 0x10, 0xbc, 0x00, 0x00, 0x00, 0x01, // IID7956 - 0xd5, 0x10, 0xbc, 0x00, 0x00, 0x00, 0x10, // IID7957 - 0xd5, 0x10, 0xbd, 0x01, 0x00, 0x00, 0x00, // IID7958 - 0xd5, 0x10, 0xbd, 0x10, 0x00, 0x00, 0x00, // IID7959 - 0xd5, 0x10, 0xbd, 0x00, 0x01, 0x00, 0x00, // IID7960 - 0xd5, 0x10, 0xbd, 0x00, 0x10, 0x00, 0x00, // IID7961 - 0xd5, 0x10, 0xbd, 0x00, 0x00, 0x01, 0x00, // IID7962 - 0xd5, 0x10, 0xbd, 0x00, 0x00, 0x10, 0x00, // IID7963 - 0xd5, 0x10, 0xbd, 0x00, 0x00, 0x00, 0x01, // IID7964 - 0xd5, 0x10, 0xbd, 0x00, 0x00, 0x00, 0x10, // IID7965 - 0xd5, 0x10, 0xbe, 0x01, 0x00, 0x00, 0x00, // IID7966 - 0xd5, 0x10, 0xbe, 0x10, 0x00, 0x00, 0x00, // IID7967 - 0xd5, 0x10, 0xbe, 0x00, 0x01, 0x00, 0x00, // IID7968 - 0xd5, 0x10, 0xbe, 0x00, 0x10, 0x00, 0x00, // IID7969 - 0xd5, 0x10, 0xbe, 0x00, 0x00, 0x01, 0x00, // IID7970 - 0xd5, 0x10, 0xbe, 0x00, 0x00, 0x10, 0x00, // IID7971 - 0xd5, 0x10, 0xbe, 0x00, 0x00, 0x00, 0x01, // IID7972 - 0xd5, 0x10, 0xbe, 0x00, 0x00, 0x00, 0x10, // IID7973 - 0xd5, 0x10, 0xbf, 0x01, 0x00, 0x00, 0x00, // IID7974 - 0xd5, 0x10, 0xbf, 0x10, 0x00, 0x00, 0x00, // IID7975 - 0xd5, 0x10, 0xbf, 0x00, 0x01, 0x00, 0x00, // IID7976 - 0xd5, 0x10, 0xbf, 0x00, 0x10, 0x00, 0x00, // IID7977 - 0xd5, 0x10, 0xbf, 0x00, 0x00, 0x01, 0x00, // IID7978 - 0xd5, 0x10, 0xbf, 0x00, 0x00, 0x10, 0x00, // IID7979 - 0xd5, 0x10, 0xbf, 0x00, 0x00, 0x00, 0x01, // IID7980 - 0xd5, 0x10, 0xbf, 0x00, 0x00, 0x00, 0x10, // IID7981 - 0xd5, 0x11, 0xb8, 0x01, 0x00, 0x00, 0x00, // IID7982 - 0xd5, 0x11, 0xb8, 0x10, 0x00, 0x00, 0x00, // IID7983 - 0xd5, 0x11, 0xb8, 0x00, 0x01, 0x00, 0x00, // IID7984 - 0xd5, 0x11, 0xb8, 0x00, 0x10, 0x00, 0x00, // IID7985 - 0xd5, 0x11, 0xb8, 0x00, 0x00, 0x01, 0x00, // IID7986 - 0xd5, 0x11, 0xb8, 0x00, 0x00, 0x10, 0x00, // IID7987 - 0xd5, 0x11, 0xb8, 0x00, 0x00, 0x00, 0x01, // IID7988 - 0xd5, 0x11, 0xb8, 0x00, 0x00, 0x00, 0x10, // IID7989 - 0xd5, 0x11, 0xb9, 0x01, 0x00, 0x00, 0x00, // IID7990 - 0xd5, 0x11, 0xb9, 0x10, 0x00, 0x00, 0x00, // IID7991 - 0xd5, 0x11, 0xb9, 0x00, 0x01, 0x00, 0x00, // IID7992 - 0xd5, 0x11, 0xb9, 0x00, 0x10, 0x00, 0x00, // IID7993 - 0xd5, 0x11, 0xb9, 0x00, 0x00, 0x01, 0x00, // IID7994 - 0xd5, 0x11, 0xb9, 0x00, 0x00, 0x10, 0x00, // IID7995 - 0xd5, 0x11, 0xb9, 0x00, 0x00, 0x00, 0x01, // IID7996 - 0xd5, 0x11, 0xb9, 0x00, 0x00, 0x00, 0x10, // IID7997 - 0xd5, 0x11, 0xba, 0x01, 0x00, 0x00, 0x00, // IID7998 - 0xd5, 0x11, 0xba, 0x10, 0x00, 0x00, 0x00, // IID7999 - 0xd5, 0x11, 0xba, 0x00, 0x01, 0x00, 0x00, // IID8000 - 0xd5, 0x11, 0xba, 0x00, 0x10, 0x00, 0x00, // IID8001 - 0xd5, 0x11, 0xba, 0x00, 0x00, 0x01, 0x00, // IID8002 - 0xd5, 0x11, 0xba, 0x00, 0x00, 0x10, 0x00, // IID8003 - 0xd5, 0x11, 0xba, 0x00, 0x00, 0x00, 0x01, // IID8004 - 0xd5, 0x11, 0xba, 0x00, 0x00, 0x00, 0x10, // IID8005 - 0xd5, 0x11, 0xbb, 0x01, 0x00, 0x00, 0x00, // IID8006 - 0xd5, 0x11, 0xbb, 0x10, 0x00, 0x00, 0x00, // IID8007 - 0xd5, 0x11, 0xbb, 0x00, 0x01, 0x00, 0x00, // IID8008 - 0xd5, 0x11, 0xbb, 0x00, 0x10, 0x00, 0x00, // IID8009 - 0xd5, 0x11, 0xbb, 0x00, 0x00, 0x01, 0x00, // IID8010 - 0xd5, 0x11, 0xbb, 0x00, 0x00, 0x10, 0x00, // IID8011 - 0xd5, 0x11, 0xbb, 0x00, 0x00, 0x00, 0x01, // IID8012 - 0xd5, 0x11, 0xbb, 0x00, 0x00, 0x00, 0x10, // IID8013 - 0xd5, 0x11, 0xbc, 0x01, 0x00, 0x00, 0x00, // IID8014 - 0xd5, 0x11, 0xbc, 0x10, 0x00, 0x00, 0x00, // IID8015 - 0xd5, 0x11, 0xbc, 0x00, 0x01, 0x00, 0x00, // IID8016 - 0xd5, 0x11, 0xbc, 0x00, 0x10, 0x00, 0x00, // IID8017 - 0xd5, 0x11, 0xbc, 0x00, 0x00, 0x01, 0x00, // IID8018 - 0xd5, 0x11, 0xbc, 0x00, 0x00, 0x10, 0x00, // IID8019 - 0xd5, 0x11, 0xbc, 0x00, 0x00, 0x00, 0x01, // IID8020 - 0xd5, 0x11, 0xbc, 0x00, 0x00, 0x00, 0x10, // IID8021 - 0xd5, 0x11, 0xbd, 0x01, 0x00, 0x00, 0x00, // IID8022 - 0xd5, 0x11, 0xbd, 0x10, 0x00, 0x00, 0x00, // IID8023 - 0xd5, 0x11, 0xbd, 0x00, 0x01, 0x00, 0x00, // IID8024 - 0xd5, 0x11, 0xbd, 0x00, 0x10, 0x00, 0x00, // IID8025 - 0xd5, 0x11, 0xbd, 0x00, 0x00, 0x01, 0x00, // IID8026 - 0xd5, 0x11, 0xbd, 0x00, 0x00, 0x10, 0x00, // IID8027 - 0xd5, 0x11, 0xbd, 0x00, 0x00, 0x00, 0x01, // IID8028 - 0xd5, 0x11, 0xbd, 0x00, 0x00, 0x00, 0x10, // IID8029 - 0xd5, 0x11, 0xbe, 0x01, 0x00, 0x00, 0x00, // IID8030 - 0xd5, 0x11, 0xbe, 0x10, 0x00, 0x00, 0x00, // IID8031 - 0xd5, 0x11, 0xbe, 0x00, 0x01, 0x00, 0x00, // IID8032 - 0xd5, 0x11, 0xbe, 0x00, 0x10, 0x00, 0x00, // IID8033 - 0xd5, 0x11, 0xbe, 0x00, 0x00, 0x01, 0x00, // IID8034 - 0xd5, 0x11, 0xbe, 0x00, 0x00, 0x10, 0x00, // IID8035 - 0xd5, 0x11, 0xbe, 0x00, 0x00, 0x00, 0x01, // IID8036 - 0xd5, 0x11, 0xbe, 0x00, 0x00, 0x00, 0x10, // IID8037 - 0xd5, 0x11, 0xbf, 0x01, 0x00, 0x00, 0x00, // IID8038 - 0xd5, 0x11, 0xbf, 0x10, 0x00, 0x00, 0x00, // IID8039 - 0xd5, 0x11, 0xbf, 0x00, 0x01, 0x00, 0x00, // IID8040 - 0xd5, 0x11, 0xbf, 0x00, 0x10, 0x00, 0x00, // IID8041 - 0xd5, 0x11, 0xbf, 0x00, 0x00, 0x01, 0x00, // IID8042 - 0xd5, 0x11, 0xbf, 0x00, 0x00, 0x10, 0x00, // IID8043 - 0xd5, 0x11, 0xbf, 0x00, 0x00, 0x00, 0x01, // IID8044 - 0xd5, 0x11, 0xbf, 0x00, 0x00, 0x00, 0x10, // IID8045 -#endif // _LP64 - 0xf6, 0xc1, 0x01, // IID8046 - 0xf6, 0xc1, 0x04, // IID8047 - 0xf6, 0xc1, 0x10, // IID8048 - 0xf6, 0xc1, 0x40, // IID8049 - 0xf6, 0xc2, 0x01, // IID8050 - 0xf6, 0xc2, 0x04, // IID8051 - 0xf6, 0xc2, 0x10, // IID8052 - 0xf6, 0xc2, 0x40, // IID8053 - 0xf6, 0xc3, 0x01, // IID8054 - 0xf6, 0xc3, 0x04, // IID8055 - 0xf6, 0xc3, 0x10, // IID8056 - 0xf6, 0xc3, 0x40, // IID8057 -#ifdef _LP64 - 0x41, 0xf6, 0xc0, 0x01, // IID8058 - 0x41, 0xf6, 0xc0, 0x04, // IID8059 - 0x41, 0xf6, 0xc0, 0x10, // IID8060 - 0x41, 0xf6, 0xc0, 0x40, // IID8061 - 0x41, 0xf6, 0xc1, 0x01, // IID8062 - 0x41, 0xf6, 0xc1, 0x04, // IID8063 - 0x41, 0xf6, 0xc1, 0x10, // IID8064 - 0x41, 0xf6, 0xc1, 0x40, // IID8065 - 0x41, 0xf6, 0xc2, 0x01, // IID8066 - 0x41, 0xf6, 0xc2, 0x04, // IID8067 - 0x41, 0xf6, 0xc2, 0x10, // IID8068 - 0x41, 0xf6, 0xc2, 0x40, // IID8069 - 0x41, 0xf6, 0xc3, 0x01, // IID8070 - 0x41, 0xf6, 0xc3, 0x04, // IID8071 - 0x41, 0xf6, 0xc3, 0x10, // IID8072 - 0x41, 0xf6, 0xc3, 0x40, // IID8073 - 0x41, 0xf6, 0xc4, 0x01, // IID8074 - 0x41, 0xf6, 0xc4, 0x04, // IID8075 - 0x41, 0xf6, 0xc4, 0x10, // IID8076 - 0x41, 0xf6, 0xc4, 0x40, // IID8077 - 0x41, 0xf6, 0xc5, 0x01, // IID8078 - 0x41, 0xf6, 0xc5, 0x04, // IID8079 - 0x41, 0xf6, 0xc5, 0x10, // IID8080 - 0x41, 0xf6, 0xc5, 0x40, // IID8081 - 0x41, 0xf6, 0xc6, 0x01, // IID8082 - 0x41, 0xf6, 0xc6, 0x04, // IID8083 - 0x41, 0xf6, 0xc6, 0x10, // IID8084 - 0x41, 0xf6, 0xc6, 0x40, // IID8085 - 0x41, 0xf6, 0xc7, 0x01, // IID8086 - 0x41, 0xf6, 0xc7, 0x04, // IID8087 - 0x41, 0xf6, 0xc7, 0x10, // IID8088 - 0x41, 0xf6, 0xc7, 0x40, // IID8089 - 0xd5, 0x10, 0xf6, 0xc0, 0x01, // IID8090 - 0xd5, 0x10, 0xf6, 0xc0, 0x04, // IID8091 - 0xd5, 0x10, 0xf6, 0xc0, 0x10, // IID8092 - 0xd5, 0x10, 0xf6, 0xc0, 0x40, // IID8093 - 0xd5, 0x10, 0xf6, 0xc1, 0x01, // IID8094 - 0xd5, 0x10, 0xf6, 0xc1, 0x04, // IID8095 - 0xd5, 0x10, 0xf6, 0xc1, 0x10, // IID8096 - 0xd5, 0x10, 0xf6, 0xc1, 0x40, // IID8097 - 0xd5, 0x10, 0xf6, 0xc2, 0x01, // IID8098 - 0xd5, 0x10, 0xf6, 0xc2, 0x04, // IID8099 - 0xd5, 0x10, 0xf6, 0xc2, 0x10, // IID8100 - 0xd5, 0x10, 0xf6, 0xc2, 0x40, // IID8101 - 0xd5, 0x10, 0xf6, 0xc3, 0x01, // IID8102 - 0xd5, 0x10, 0xf6, 0xc3, 0x04, // IID8103 - 0xd5, 0x10, 0xf6, 0xc3, 0x10, // IID8104 - 0xd5, 0x10, 0xf6, 0xc3, 0x40, // IID8105 - 0xd5, 0x10, 0xf6, 0xc4, 0x01, // IID8106 - 0xd5, 0x10, 0xf6, 0xc4, 0x04, // IID8107 - 0xd5, 0x10, 0xf6, 0xc4, 0x10, // IID8108 - 0xd5, 0x10, 0xf6, 0xc4, 0x40, // IID8109 - 0xd5, 0x10, 0xf6, 0xc5, 0x01, // IID8110 - 0xd5, 0x10, 0xf6, 0xc5, 0x04, // IID8111 - 0xd5, 0x10, 0xf6, 0xc5, 0x10, // IID8112 - 0xd5, 0x10, 0xf6, 0xc5, 0x40, // IID8113 - 0xd5, 0x10, 0xf6, 0xc6, 0x01, // IID8114 - 0xd5, 0x10, 0xf6, 0xc6, 0x04, // IID8115 - 0xd5, 0x10, 0xf6, 0xc6, 0x10, // IID8116 - 0xd5, 0x10, 0xf6, 0xc6, 0x40, // IID8117 - 0xd5, 0x10, 0xf6, 0xc7, 0x01, // IID8118 - 0xd5, 0x10, 0xf6, 0xc7, 0x04, // IID8119 - 0xd5, 0x10, 0xf6, 0xc7, 0x10, // IID8120 - 0xd5, 0x10, 0xf6, 0xc7, 0x40, // IID8121 - 0xd5, 0x11, 0xf6, 0xc0, 0x01, // IID8122 - 0xd5, 0x11, 0xf6, 0xc0, 0x04, // IID8123 - 0xd5, 0x11, 0xf6, 0xc0, 0x10, // IID8124 - 0xd5, 0x11, 0xf6, 0xc0, 0x40, // IID8125 - 0xd5, 0x11, 0xf6, 0xc1, 0x01, // IID8126 - 0xd5, 0x11, 0xf6, 0xc1, 0x04, // IID8127 - 0xd5, 0x11, 0xf6, 0xc1, 0x10, // IID8128 - 0xd5, 0x11, 0xf6, 0xc1, 0x40, // IID8129 - 0xd5, 0x11, 0xf6, 0xc2, 0x01, // IID8130 - 0xd5, 0x11, 0xf6, 0xc2, 0x04, // IID8131 - 0xd5, 0x11, 0xf6, 0xc2, 0x10, // IID8132 - 0xd5, 0x11, 0xf6, 0xc2, 0x40, // IID8133 - 0xd5, 0x11, 0xf6, 0xc3, 0x01, // IID8134 - 0xd5, 0x11, 0xf6, 0xc3, 0x04, // IID8135 - 0xd5, 0x11, 0xf6, 0xc3, 0x10, // IID8136 - 0xd5, 0x11, 0xf6, 0xc3, 0x40, // IID8137 - 0xd5, 0x11, 0xf6, 0xc4, 0x01, // IID8138 - 0xd5, 0x11, 0xf6, 0xc4, 0x04, // IID8139 - 0xd5, 0x11, 0xf6, 0xc4, 0x10, // IID8140 - 0xd5, 0x11, 0xf6, 0xc4, 0x40, // IID8141 - 0xd5, 0x11, 0xf6, 0xc5, 0x01, // IID8142 - 0xd5, 0x11, 0xf6, 0xc5, 0x04, // IID8143 - 0xd5, 0x11, 0xf6, 0xc5, 0x10, // IID8144 - 0xd5, 0x11, 0xf6, 0xc5, 0x40, // IID8145 - 0xd5, 0x11, 0xf6, 0xc6, 0x01, // IID8146 - 0xd5, 0x11, 0xf6, 0xc6, 0x04, // IID8147 - 0xd5, 0x11, 0xf6, 0xc6, 0x10, // IID8148 - 0xd5, 0x11, 0xf6, 0xc6, 0x40, // IID8149 - 0xd5, 0x11, 0xf6, 0xc7, 0x01, // IID8150 - 0xd5, 0x11, 0xf6, 0xc7, 0x04, // IID8151 - 0xd5, 0x11, 0xf6, 0xc7, 0x10, // IID8152 - 0xd5, 0x11, 0xf6, 0xc7, 0x40, // IID8153 -#endif // _LP64 - 0xf7, 0xc1, 0x00, 0x00, 0x01, 0x00, // IID8154 - 0xf7, 0xc1, 0x00, 0x00, 0x04, 0x00, // IID8155 - 0xf7, 0xc1, 0x00, 0x00, 0x10, 0x00, // IID8156 - 0xf7, 0xc1, 0x00, 0x00, 0x40, 0x00, // IID8157 - 0xf7, 0xc1, 0x00, 0x00, 0x00, 0x01, // IID8158 - 0xf7, 0xc1, 0x00, 0x00, 0x00, 0x04, // IID8159 - 0xf7, 0xc1, 0x00, 0x00, 0x00, 0x10, // IID8160 - 0xf7, 0xc1, 0x00, 0x00, 0x00, 0x40, // IID8161 - 0xf7, 0xc2, 0x00, 0x00, 0x01, 0x00, // IID8162 - 0xf7, 0xc2, 0x00, 0x00, 0x04, 0x00, // IID8163 - 0xf7, 0xc2, 0x00, 0x00, 0x10, 0x00, // IID8164 - 0xf7, 0xc2, 0x00, 0x00, 0x40, 0x00, // IID8165 - 0xf7, 0xc2, 0x00, 0x00, 0x00, 0x01, // IID8166 - 0xf7, 0xc2, 0x00, 0x00, 0x00, 0x04, // IID8167 - 0xf7, 0xc2, 0x00, 0x00, 0x00, 0x10, // IID8168 - 0xf7, 0xc2, 0x00, 0x00, 0x00, 0x40, // IID8169 - 0xf7, 0xc3, 0x00, 0x00, 0x01, 0x00, // IID8170 - 0xf7, 0xc3, 0x00, 0x00, 0x04, 0x00, // IID8171 - 0xf7, 0xc3, 0x00, 0x00, 0x10, 0x00, // IID8172 - 0xf7, 0xc3, 0x00, 0x00, 0x40, 0x00, // IID8173 - 0xf7, 0xc3, 0x00, 0x00, 0x00, 0x01, // IID8174 - 0xf7, 0xc3, 0x00, 0x00, 0x00, 0x04, // IID8175 - 0xf7, 0xc3, 0x00, 0x00, 0x00, 0x10, // IID8176 - 0xf7, 0xc3, 0x00, 0x00, 0x00, 0x40, // IID8177 -#ifdef _LP64 - 0x41, 0xf7, 0xc0, 0x00, 0x00, 0x01, 0x00, // IID8178 - 0x41, 0xf7, 0xc0, 0x00, 0x00, 0x04, 0x00, // IID8179 - 0x41, 0xf7, 0xc0, 0x00, 0x00, 0x10, 0x00, // IID8180 - 0x41, 0xf7, 0xc0, 0x00, 0x00, 0x40, 0x00, // IID8181 - 0x41, 0xf7, 0xc0, 0x00, 0x00, 0x00, 0x01, // IID8182 - 0x41, 0xf7, 0xc0, 0x00, 0x00, 0x00, 0x04, // IID8183 - 0x41, 0xf7, 0xc0, 0x00, 0x00, 0x00, 0x10, // IID8184 - 0x41, 0xf7, 0xc0, 0x00, 0x00, 0x00, 0x40, // IID8185 - 0x41, 0xf7, 0xc1, 0x00, 0x00, 0x01, 0x00, // IID8186 - 0x41, 0xf7, 0xc1, 0x00, 0x00, 0x04, 0x00, // IID8187 - 0x41, 0xf7, 0xc1, 0x00, 0x00, 0x10, 0x00, // IID8188 - 0x41, 0xf7, 0xc1, 0x00, 0x00, 0x40, 0x00, // IID8189 - 0x41, 0xf7, 0xc1, 0x00, 0x00, 0x00, 0x01, // IID8190 - 0x41, 0xf7, 0xc1, 0x00, 0x00, 0x00, 0x04, // IID8191 - 0x41, 0xf7, 0xc1, 0x00, 0x00, 0x00, 0x10, // IID8192 - 0x41, 0xf7, 0xc1, 0x00, 0x00, 0x00, 0x40, // IID8193 - 0x41, 0xf7, 0xc2, 0x00, 0x00, 0x01, 0x00, // IID8194 - 0x41, 0xf7, 0xc2, 0x00, 0x00, 0x04, 0x00, // IID8195 - 0x41, 0xf7, 0xc2, 0x00, 0x00, 0x10, 0x00, // IID8196 - 0x41, 0xf7, 0xc2, 0x00, 0x00, 0x40, 0x00, // IID8197 - 0x41, 0xf7, 0xc2, 0x00, 0x00, 0x00, 0x01, // IID8198 - 0x41, 0xf7, 0xc2, 0x00, 0x00, 0x00, 0x04, // IID8199 - 0x41, 0xf7, 0xc2, 0x00, 0x00, 0x00, 0x10, // IID8200 - 0x41, 0xf7, 0xc2, 0x00, 0x00, 0x00, 0x40, // IID8201 - 0x41, 0xf7, 0xc3, 0x00, 0x00, 0x01, 0x00, // IID8202 - 0x41, 0xf7, 0xc3, 0x00, 0x00, 0x04, 0x00, // IID8203 - 0x41, 0xf7, 0xc3, 0x00, 0x00, 0x10, 0x00, // IID8204 - 0x41, 0xf7, 0xc3, 0x00, 0x00, 0x40, 0x00, // IID8205 - 0x41, 0xf7, 0xc3, 0x00, 0x00, 0x00, 0x01, // IID8206 - 0x41, 0xf7, 0xc3, 0x00, 0x00, 0x00, 0x04, // IID8207 - 0x41, 0xf7, 0xc3, 0x00, 0x00, 0x00, 0x10, // IID8208 - 0x41, 0xf7, 0xc3, 0x00, 0x00, 0x00, 0x40, // IID8209 - 0x41, 0xf7, 0xc4, 0x00, 0x00, 0x01, 0x00, // IID8210 - 0x41, 0xf7, 0xc4, 0x00, 0x00, 0x04, 0x00, // IID8211 - 0x41, 0xf7, 0xc4, 0x00, 0x00, 0x10, 0x00, // IID8212 - 0x41, 0xf7, 0xc4, 0x00, 0x00, 0x40, 0x00, // IID8213 - 0x41, 0xf7, 0xc4, 0x00, 0x00, 0x00, 0x01, // IID8214 - 0x41, 0xf7, 0xc4, 0x00, 0x00, 0x00, 0x04, // IID8215 - 0x41, 0xf7, 0xc4, 0x00, 0x00, 0x00, 0x10, // IID8216 - 0x41, 0xf7, 0xc4, 0x00, 0x00, 0x00, 0x40, // IID8217 - 0x41, 0xf7, 0xc5, 0x00, 0x00, 0x01, 0x00, // IID8218 - 0x41, 0xf7, 0xc5, 0x00, 0x00, 0x04, 0x00, // IID8219 - 0x41, 0xf7, 0xc5, 0x00, 0x00, 0x10, 0x00, // IID8220 - 0x41, 0xf7, 0xc5, 0x00, 0x00, 0x40, 0x00, // IID8221 - 0x41, 0xf7, 0xc5, 0x00, 0x00, 0x00, 0x01, // IID8222 - 0x41, 0xf7, 0xc5, 0x00, 0x00, 0x00, 0x04, // IID8223 - 0x41, 0xf7, 0xc5, 0x00, 0x00, 0x00, 0x10, // IID8224 - 0x41, 0xf7, 0xc5, 0x00, 0x00, 0x00, 0x40, // IID8225 - 0x41, 0xf7, 0xc6, 0x00, 0x00, 0x01, 0x00, // IID8226 - 0x41, 0xf7, 0xc6, 0x00, 0x00, 0x04, 0x00, // IID8227 - 0x41, 0xf7, 0xc6, 0x00, 0x00, 0x10, 0x00, // IID8228 - 0x41, 0xf7, 0xc6, 0x00, 0x00, 0x40, 0x00, // IID8229 - 0x41, 0xf7, 0xc6, 0x00, 0x00, 0x00, 0x01, // IID8230 - 0x41, 0xf7, 0xc6, 0x00, 0x00, 0x00, 0x04, // IID8231 - 0x41, 0xf7, 0xc6, 0x00, 0x00, 0x00, 0x10, // IID8232 - 0x41, 0xf7, 0xc6, 0x00, 0x00, 0x00, 0x40, // IID8233 - 0x41, 0xf7, 0xc7, 0x00, 0x00, 0x01, 0x00, // IID8234 - 0x41, 0xf7, 0xc7, 0x00, 0x00, 0x04, 0x00, // IID8235 - 0x41, 0xf7, 0xc7, 0x00, 0x00, 0x10, 0x00, // IID8236 - 0x41, 0xf7, 0xc7, 0x00, 0x00, 0x40, 0x00, // IID8237 - 0x41, 0xf7, 0xc7, 0x00, 0x00, 0x00, 0x01, // IID8238 - 0x41, 0xf7, 0xc7, 0x00, 0x00, 0x00, 0x04, // IID8239 - 0x41, 0xf7, 0xc7, 0x00, 0x00, 0x00, 0x10, // IID8240 - 0x41, 0xf7, 0xc7, 0x00, 0x00, 0x00, 0x40, // IID8241 - 0xd5, 0x10, 0xf7, 0xc0, 0x00, 0x00, 0x01, 0x00, // IID8242 - 0xd5, 0x10, 0xf7, 0xc0, 0x00, 0x00, 0x04, 0x00, // IID8243 - 0xd5, 0x10, 0xf7, 0xc0, 0x00, 0x00, 0x10, 0x00, // IID8244 - 0xd5, 0x10, 0xf7, 0xc0, 0x00, 0x00, 0x40, 0x00, // IID8245 - 0xd5, 0x10, 0xf7, 0xc0, 0x00, 0x00, 0x00, 0x01, // IID8246 - 0xd5, 0x10, 0xf7, 0xc0, 0x00, 0x00, 0x00, 0x04, // IID8247 - 0xd5, 0x10, 0xf7, 0xc0, 0x00, 0x00, 0x00, 0x10, // IID8248 - 0xd5, 0x10, 0xf7, 0xc0, 0x00, 0x00, 0x00, 0x40, // IID8249 - 0xd5, 0x10, 0xf7, 0xc1, 0x00, 0x00, 0x01, 0x00, // IID8250 - 0xd5, 0x10, 0xf7, 0xc1, 0x00, 0x00, 0x04, 0x00, // IID8251 - 0xd5, 0x10, 0xf7, 0xc1, 0x00, 0x00, 0x10, 0x00, // IID8252 - 0xd5, 0x10, 0xf7, 0xc1, 0x00, 0x00, 0x40, 0x00, // IID8253 - 0xd5, 0x10, 0xf7, 0xc1, 0x00, 0x00, 0x00, 0x01, // IID8254 - 0xd5, 0x10, 0xf7, 0xc1, 0x00, 0x00, 0x00, 0x04, // IID8255 - 0xd5, 0x10, 0xf7, 0xc1, 0x00, 0x00, 0x00, 0x10, // IID8256 - 0xd5, 0x10, 0xf7, 0xc1, 0x00, 0x00, 0x00, 0x40, // IID8257 - 0xd5, 0x10, 0xf7, 0xc2, 0x00, 0x00, 0x01, 0x00, // IID8258 - 0xd5, 0x10, 0xf7, 0xc2, 0x00, 0x00, 0x04, 0x00, // IID8259 - 0xd5, 0x10, 0xf7, 0xc2, 0x00, 0x00, 0x10, 0x00, // IID8260 - 0xd5, 0x10, 0xf7, 0xc2, 0x00, 0x00, 0x40, 0x00, // IID8261 - 0xd5, 0x10, 0xf7, 0xc2, 0x00, 0x00, 0x00, 0x01, // IID8262 - 0xd5, 0x10, 0xf7, 0xc2, 0x00, 0x00, 0x00, 0x04, // IID8263 - 0xd5, 0x10, 0xf7, 0xc2, 0x00, 0x00, 0x00, 0x10, // IID8264 - 0xd5, 0x10, 0xf7, 0xc2, 0x00, 0x00, 0x00, 0x40, // IID8265 - 0xd5, 0x10, 0xf7, 0xc3, 0x00, 0x00, 0x01, 0x00, // IID8266 - 0xd5, 0x10, 0xf7, 0xc3, 0x00, 0x00, 0x04, 0x00, // IID8267 - 0xd5, 0x10, 0xf7, 0xc3, 0x00, 0x00, 0x10, 0x00, // IID8268 - 0xd5, 0x10, 0xf7, 0xc3, 0x00, 0x00, 0x40, 0x00, // IID8269 - 0xd5, 0x10, 0xf7, 0xc3, 0x00, 0x00, 0x00, 0x01, // IID8270 - 0xd5, 0x10, 0xf7, 0xc3, 0x00, 0x00, 0x00, 0x04, // IID8271 - 0xd5, 0x10, 0xf7, 0xc3, 0x00, 0x00, 0x00, 0x10, // IID8272 - 0xd5, 0x10, 0xf7, 0xc3, 0x00, 0x00, 0x00, 0x40, // IID8273 - 0xd5, 0x10, 0xf7, 0xc4, 0x00, 0x00, 0x01, 0x00, // IID8274 - 0xd5, 0x10, 0xf7, 0xc4, 0x00, 0x00, 0x04, 0x00, // IID8275 - 0xd5, 0x10, 0xf7, 0xc4, 0x00, 0x00, 0x10, 0x00, // IID8276 - 0xd5, 0x10, 0xf7, 0xc4, 0x00, 0x00, 0x40, 0x00, // IID8277 - 0xd5, 0x10, 0xf7, 0xc4, 0x00, 0x00, 0x00, 0x01, // IID8278 - 0xd5, 0x10, 0xf7, 0xc4, 0x00, 0x00, 0x00, 0x04, // IID8279 - 0xd5, 0x10, 0xf7, 0xc4, 0x00, 0x00, 0x00, 0x10, // IID8280 - 0xd5, 0x10, 0xf7, 0xc4, 0x00, 0x00, 0x00, 0x40, // IID8281 - 0xd5, 0x10, 0xf7, 0xc5, 0x00, 0x00, 0x01, 0x00, // IID8282 - 0xd5, 0x10, 0xf7, 0xc5, 0x00, 0x00, 0x04, 0x00, // IID8283 - 0xd5, 0x10, 0xf7, 0xc5, 0x00, 0x00, 0x10, 0x00, // IID8284 - 0xd5, 0x10, 0xf7, 0xc5, 0x00, 0x00, 0x40, 0x00, // IID8285 - 0xd5, 0x10, 0xf7, 0xc5, 0x00, 0x00, 0x00, 0x01, // IID8286 - 0xd5, 0x10, 0xf7, 0xc5, 0x00, 0x00, 0x00, 0x04, // IID8287 - 0xd5, 0x10, 0xf7, 0xc5, 0x00, 0x00, 0x00, 0x10, // IID8288 - 0xd5, 0x10, 0xf7, 0xc5, 0x00, 0x00, 0x00, 0x40, // IID8289 - 0xd5, 0x10, 0xf7, 0xc6, 0x00, 0x00, 0x01, 0x00, // IID8290 - 0xd5, 0x10, 0xf7, 0xc6, 0x00, 0x00, 0x04, 0x00, // IID8291 - 0xd5, 0x10, 0xf7, 0xc6, 0x00, 0x00, 0x10, 0x00, // IID8292 - 0xd5, 0x10, 0xf7, 0xc6, 0x00, 0x00, 0x40, 0x00, // IID8293 - 0xd5, 0x10, 0xf7, 0xc6, 0x00, 0x00, 0x00, 0x01, // IID8294 - 0xd5, 0x10, 0xf7, 0xc6, 0x00, 0x00, 0x00, 0x04, // IID8295 - 0xd5, 0x10, 0xf7, 0xc6, 0x00, 0x00, 0x00, 0x10, // IID8296 - 0xd5, 0x10, 0xf7, 0xc6, 0x00, 0x00, 0x00, 0x40, // IID8297 - 0xd5, 0x10, 0xf7, 0xc7, 0x00, 0x00, 0x01, 0x00, // IID8298 - 0xd5, 0x10, 0xf7, 0xc7, 0x00, 0x00, 0x04, 0x00, // IID8299 - 0xd5, 0x10, 0xf7, 0xc7, 0x00, 0x00, 0x10, 0x00, // IID8300 - 0xd5, 0x10, 0xf7, 0xc7, 0x00, 0x00, 0x40, 0x00, // IID8301 - 0xd5, 0x10, 0xf7, 0xc7, 0x00, 0x00, 0x00, 0x01, // IID8302 - 0xd5, 0x10, 0xf7, 0xc7, 0x00, 0x00, 0x00, 0x04, // IID8303 - 0xd5, 0x10, 0xf7, 0xc7, 0x00, 0x00, 0x00, 0x10, // IID8304 - 0xd5, 0x10, 0xf7, 0xc7, 0x00, 0x00, 0x00, 0x40, // IID8305 - 0xd5, 0x11, 0xf7, 0xc0, 0x00, 0x00, 0x01, 0x00, // IID8306 - 0xd5, 0x11, 0xf7, 0xc0, 0x00, 0x00, 0x04, 0x00, // IID8307 - 0xd5, 0x11, 0xf7, 0xc0, 0x00, 0x00, 0x10, 0x00, // IID8308 - 0xd5, 0x11, 0xf7, 0xc0, 0x00, 0x00, 0x40, 0x00, // IID8309 - 0xd5, 0x11, 0xf7, 0xc0, 0x00, 0x00, 0x00, 0x01, // IID8310 - 0xd5, 0x11, 0xf7, 0xc0, 0x00, 0x00, 0x00, 0x04, // IID8311 - 0xd5, 0x11, 0xf7, 0xc0, 0x00, 0x00, 0x00, 0x10, // IID8312 - 0xd5, 0x11, 0xf7, 0xc0, 0x00, 0x00, 0x00, 0x40, // IID8313 - 0xd5, 0x11, 0xf7, 0xc1, 0x00, 0x00, 0x01, 0x00, // IID8314 - 0xd5, 0x11, 0xf7, 0xc1, 0x00, 0x00, 0x04, 0x00, // IID8315 - 0xd5, 0x11, 0xf7, 0xc1, 0x00, 0x00, 0x10, 0x00, // IID8316 - 0xd5, 0x11, 0xf7, 0xc1, 0x00, 0x00, 0x40, 0x00, // IID8317 - 0xd5, 0x11, 0xf7, 0xc1, 0x00, 0x00, 0x00, 0x01, // IID8318 - 0xd5, 0x11, 0xf7, 0xc1, 0x00, 0x00, 0x00, 0x04, // IID8319 - 0xd5, 0x11, 0xf7, 0xc1, 0x00, 0x00, 0x00, 0x10, // IID8320 - 0xd5, 0x11, 0xf7, 0xc1, 0x00, 0x00, 0x00, 0x40, // IID8321 - 0xd5, 0x11, 0xf7, 0xc2, 0x00, 0x00, 0x01, 0x00, // IID8322 - 0xd5, 0x11, 0xf7, 0xc2, 0x00, 0x00, 0x04, 0x00, // IID8323 - 0xd5, 0x11, 0xf7, 0xc2, 0x00, 0x00, 0x10, 0x00, // IID8324 - 0xd5, 0x11, 0xf7, 0xc2, 0x00, 0x00, 0x40, 0x00, // IID8325 - 0xd5, 0x11, 0xf7, 0xc2, 0x00, 0x00, 0x00, 0x01, // IID8326 - 0xd5, 0x11, 0xf7, 0xc2, 0x00, 0x00, 0x00, 0x04, // IID8327 - 0xd5, 0x11, 0xf7, 0xc2, 0x00, 0x00, 0x00, 0x10, // IID8328 - 0xd5, 0x11, 0xf7, 0xc2, 0x00, 0x00, 0x00, 0x40, // IID8329 - 0xd5, 0x11, 0xf7, 0xc3, 0x00, 0x00, 0x01, 0x00, // IID8330 - 0xd5, 0x11, 0xf7, 0xc3, 0x00, 0x00, 0x04, 0x00, // IID8331 - 0xd5, 0x11, 0xf7, 0xc3, 0x00, 0x00, 0x10, 0x00, // IID8332 - 0xd5, 0x11, 0xf7, 0xc3, 0x00, 0x00, 0x40, 0x00, // IID8333 - 0xd5, 0x11, 0xf7, 0xc3, 0x00, 0x00, 0x00, 0x01, // IID8334 - 0xd5, 0x11, 0xf7, 0xc3, 0x00, 0x00, 0x00, 0x04, // IID8335 - 0xd5, 0x11, 0xf7, 0xc3, 0x00, 0x00, 0x00, 0x10, // IID8336 - 0xd5, 0x11, 0xf7, 0xc3, 0x00, 0x00, 0x00, 0x40, // IID8337 - 0xd5, 0x11, 0xf7, 0xc4, 0x00, 0x00, 0x01, 0x00, // IID8338 - 0xd5, 0x11, 0xf7, 0xc4, 0x00, 0x00, 0x04, 0x00, // IID8339 - 0xd5, 0x11, 0xf7, 0xc4, 0x00, 0x00, 0x10, 0x00, // IID8340 - 0xd5, 0x11, 0xf7, 0xc4, 0x00, 0x00, 0x40, 0x00, // IID8341 - 0xd5, 0x11, 0xf7, 0xc4, 0x00, 0x00, 0x00, 0x01, // IID8342 - 0xd5, 0x11, 0xf7, 0xc4, 0x00, 0x00, 0x00, 0x04, // IID8343 - 0xd5, 0x11, 0xf7, 0xc4, 0x00, 0x00, 0x00, 0x10, // IID8344 - 0xd5, 0x11, 0xf7, 0xc4, 0x00, 0x00, 0x00, 0x40, // IID8345 - 0xd5, 0x11, 0xf7, 0xc5, 0x00, 0x00, 0x01, 0x00, // IID8346 - 0xd5, 0x11, 0xf7, 0xc5, 0x00, 0x00, 0x04, 0x00, // IID8347 - 0xd5, 0x11, 0xf7, 0xc5, 0x00, 0x00, 0x10, 0x00, // IID8348 - 0xd5, 0x11, 0xf7, 0xc5, 0x00, 0x00, 0x40, 0x00, // IID8349 - 0xd5, 0x11, 0xf7, 0xc5, 0x00, 0x00, 0x00, 0x01, // IID8350 - 0xd5, 0x11, 0xf7, 0xc5, 0x00, 0x00, 0x00, 0x04, // IID8351 - 0xd5, 0x11, 0xf7, 0xc5, 0x00, 0x00, 0x00, 0x10, // IID8352 - 0xd5, 0x11, 0xf7, 0xc5, 0x00, 0x00, 0x00, 0x40, // IID8353 - 0xd5, 0x11, 0xf7, 0xc6, 0x00, 0x00, 0x01, 0x00, // IID8354 - 0xd5, 0x11, 0xf7, 0xc6, 0x00, 0x00, 0x04, 0x00, // IID8355 - 0xd5, 0x11, 0xf7, 0xc6, 0x00, 0x00, 0x10, 0x00, // IID8356 - 0xd5, 0x11, 0xf7, 0xc6, 0x00, 0x00, 0x40, 0x00, // IID8357 - 0xd5, 0x11, 0xf7, 0xc6, 0x00, 0x00, 0x00, 0x01, // IID8358 - 0xd5, 0x11, 0xf7, 0xc6, 0x00, 0x00, 0x00, 0x04, // IID8359 - 0xd5, 0x11, 0xf7, 0xc6, 0x00, 0x00, 0x00, 0x10, // IID8360 - 0xd5, 0x11, 0xf7, 0xc6, 0x00, 0x00, 0x00, 0x40, // IID8361 - 0xd5, 0x11, 0xf7, 0xc7, 0x00, 0x00, 0x01, 0x00, // IID8362 - 0xd5, 0x11, 0xf7, 0xc7, 0x00, 0x00, 0x04, 0x00, // IID8363 - 0xd5, 0x11, 0xf7, 0xc7, 0x00, 0x00, 0x10, 0x00, // IID8364 - 0xd5, 0x11, 0xf7, 0xc7, 0x00, 0x00, 0x40, 0x00, // IID8365 - 0xd5, 0x11, 0xf7, 0xc7, 0x00, 0x00, 0x00, 0x01, // IID8366 - 0xd5, 0x11, 0xf7, 0xc7, 0x00, 0x00, 0x00, 0x04, // IID8367 - 0xd5, 0x11, 0xf7, 0xc7, 0x00, 0x00, 0x00, 0x10, // IID8368 - 0xd5, 0x11, 0xf7, 0xc7, 0x00, 0x00, 0x00, 0x40, // IID8369 -#endif // _LP64 - 0x81, 0xe9, 0x00, 0x00, 0x01, 0x00, // IID8370 - 0x81, 0xe9, 0x00, 0x00, 0x04, 0x00, // IID8371 - 0x81, 0xe9, 0x00, 0x00, 0x10, 0x00, // IID8372 - 0x81, 0xe9, 0x00, 0x00, 0x40, 0x00, // IID8373 - 0x81, 0xe9, 0x00, 0x00, 0x00, 0x01, // IID8374 - 0x81, 0xe9, 0x00, 0x00, 0x00, 0x04, // IID8375 - 0x81, 0xe9, 0x00, 0x00, 0x00, 0x10, // IID8376 - 0x81, 0xe9, 0x00, 0x00, 0x00, 0x40, // IID8377 - 0x81, 0xea, 0x00, 0x00, 0x01, 0x00, // IID8378 - 0x81, 0xea, 0x00, 0x00, 0x04, 0x00, // IID8379 - 0x81, 0xea, 0x00, 0x00, 0x10, 0x00, // IID8380 - 0x81, 0xea, 0x00, 0x00, 0x40, 0x00, // IID8381 - 0x81, 0xea, 0x00, 0x00, 0x00, 0x01, // IID8382 - 0x81, 0xea, 0x00, 0x00, 0x00, 0x04, // IID8383 - 0x81, 0xea, 0x00, 0x00, 0x00, 0x10, // IID8384 - 0x81, 0xea, 0x00, 0x00, 0x00, 0x40, // IID8385 - 0x81, 0xeb, 0x00, 0x00, 0x01, 0x00, // IID8386 - 0x81, 0xeb, 0x00, 0x00, 0x04, 0x00, // IID8387 - 0x81, 0xeb, 0x00, 0x00, 0x10, 0x00, // IID8388 - 0x81, 0xeb, 0x00, 0x00, 0x40, 0x00, // IID8389 - 0x81, 0xeb, 0x00, 0x00, 0x00, 0x01, // IID8390 - 0x81, 0xeb, 0x00, 0x00, 0x00, 0x04, // IID8391 - 0x81, 0xeb, 0x00, 0x00, 0x00, 0x10, // IID8392 - 0x81, 0xeb, 0x00, 0x00, 0x00, 0x40, // IID8393 -#ifdef _LP64 - 0x41, 0x81, 0xe8, 0x00, 0x00, 0x01, 0x00, // IID8394 - 0x41, 0x81, 0xe8, 0x00, 0x00, 0x04, 0x00, // IID8395 - 0x41, 0x81, 0xe8, 0x00, 0x00, 0x10, 0x00, // IID8396 - 0x41, 0x81, 0xe8, 0x00, 0x00, 0x40, 0x00, // IID8397 - 0x41, 0x81, 0xe8, 0x00, 0x00, 0x00, 0x01, // IID8398 - 0x41, 0x81, 0xe8, 0x00, 0x00, 0x00, 0x04, // IID8399 - 0x41, 0x81, 0xe8, 0x00, 0x00, 0x00, 0x10, // IID8400 - 0x41, 0x81, 0xe8, 0x00, 0x00, 0x00, 0x40, // IID8401 - 0x41, 0x81, 0xe9, 0x00, 0x00, 0x01, 0x00, // IID8402 - 0x41, 0x81, 0xe9, 0x00, 0x00, 0x04, 0x00, // IID8403 - 0x41, 0x81, 0xe9, 0x00, 0x00, 0x10, 0x00, // IID8404 - 0x41, 0x81, 0xe9, 0x00, 0x00, 0x40, 0x00, // IID8405 - 0x41, 0x81, 0xe9, 0x00, 0x00, 0x00, 0x01, // IID8406 - 0x41, 0x81, 0xe9, 0x00, 0x00, 0x00, 0x04, // IID8407 - 0x41, 0x81, 0xe9, 0x00, 0x00, 0x00, 0x10, // IID8408 - 0x41, 0x81, 0xe9, 0x00, 0x00, 0x00, 0x40, // IID8409 - 0x41, 0x81, 0xea, 0x00, 0x00, 0x01, 0x00, // IID8410 - 0x41, 0x81, 0xea, 0x00, 0x00, 0x04, 0x00, // IID8411 - 0x41, 0x81, 0xea, 0x00, 0x00, 0x10, 0x00, // IID8412 - 0x41, 0x81, 0xea, 0x00, 0x00, 0x40, 0x00, // IID8413 - 0x41, 0x81, 0xea, 0x00, 0x00, 0x00, 0x01, // IID8414 - 0x41, 0x81, 0xea, 0x00, 0x00, 0x00, 0x04, // IID8415 - 0x41, 0x81, 0xea, 0x00, 0x00, 0x00, 0x10, // IID8416 - 0x41, 0x81, 0xea, 0x00, 0x00, 0x00, 0x40, // IID8417 - 0x41, 0x81, 0xeb, 0x00, 0x00, 0x01, 0x00, // IID8418 - 0x41, 0x81, 0xeb, 0x00, 0x00, 0x04, 0x00, // IID8419 - 0x41, 0x81, 0xeb, 0x00, 0x00, 0x10, 0x00, // IID8420 - 0x41, 0x81, 0xeb, 0x00, 0x00, 0x40, 0x00, // IID8421 - 0x41, 0x81, 0xeb, 0x00, 0x00, 0x00, 0x01, // IID8422 - 0x41, 0x81, 0xeb, 0x00, 0x00, 0x00, 0x04, // IID8423 - 0x41, 0x81, 0xeb, 0x00, 0x00, 0x00, 0x10, // IID8424 - 0x41, 0x81, 0xeb, 0x00, 0x00, 0x00, 0x40, // IID8425 - 0x41, 0x81, 0xec, 0x00, 0x00, 0x01, 0x00, // IID8426 - 0x41, 0x81, 0xec, 0x00, 0x00, 0x04, 0x00, // IID8427 - 0x41, 0x81, 0xec, 0x00, 0x00, 0x10, 0x00, // IID8428 - 0x41, 0x81, 0xec, 0x00, 0x00, 0x40, 0x00, // IID8429 - 0x41, 0x81, 0xec, 0x00, 0x00, 0x00, 0x01, // IID8430 - 0x41, 0x81, 0xec, 0x00, 0x00, 0x00, 0x04, // IID8431 - 0x41, 0x81, 0xec, 0x00, 0x00, 0x00, 0x10, // IID8432 - 0x41, 0x81, 0xec, 0x00, 0x00, 0x00, 0x40, // IID8433 - 0x41, 0x81, 0xed, 0x00, 0x00, 0x01, 0x00, // IID8434 - 0x41, 0x81, 0xed, 0x00, 0x00, 0x04, 0x00, // IID8435 - 0x41, 0x81, 0xed, 0x00, 0x00, 0x10, 0x00, // IID8436 - 0x41, 0x81, 0xed, 0x00, 0x00, 0x40, 0x00, // IID8437 - 0x41, 0x81, 0xed, 0x00, 0x00, 0x00, 0x01, // IID8438 - 0x41, 0x81, 0xed, 0x00, 0x00, 0x00, 0x04, // IID8439 - 0x41, 0x81, 0xed, 0x00, 0x00, 0x00, 0x10, // IID8440 - 0x41, 0x81, 0xed, 0x00, 0x00, 0x00, 0x40, // IID8441 - 0x41, 0x81, 0xee, 0x00, 0x00, 0x01, 0x00, // IID8442 - 0x41, 0x81, 0xee, 0x00, 0x00, 0x04, 0x00, // IID8443 - 0x41, 0x81, 0xee, 0x00, 0x00, 0x10, 0x00, // IID8444 - 0x41, 0x81, 0xee, 0x00, 0x00, 0x40, 0x00, // IID8445 - 0x41, 0x81, 0xee, 0x00, 0x00, 0x00, 0x01, // IID8446 - 0x41, 0x81, 0xee, 0x00, 0x00, 0x00, 0x04, // IID8447 - 0x41, 0x81, 0xee, 0x00, 0x00, 0x00, 0x10, // IID8448 - 0x41, 0x81, 0xee, 0x00, 0x00, 0x00, 0x40, // IID8449 - 0x41, 0x81, 0xef, 0x00, 0x00, 0x01, 0x00, // IID8450 - 0x41, 0x81, 0xef, 0x00, 0x00, 0x04, 0x00, // IID8451 - 0x41, 0x81, 0xef, 0x00, 0x00, 0x10, 0x00, // IID8452 - 0x41, 0x81, 0xef, 0x00, 0x00, 0x40, 0x00, // IID8453 - 0x41, 0x81, 0xef, 0x00, 0x00, 0x00, 0x01, // IID8454 - 0x41, 0x81, 0xef, 0x00, 0x00, 0x00, 0x04, // IID8455 - 0x41, 0x81, 0xef, 0x00, 0x00, 0x00, 0x10, // IID8456 - 0x41, 0x81, 0xef, 0x00, 0x00, 0x00, 0x40, // IID8457 - 0xd5, 0x10, 0x81, 0xe8, 0x00, 0x00, 0x01, 0x00, // IID8458 - 0xd5, 0x10, 0x81, 0xe8, 0x00, 0x00, 0x04, 0x00, // IID8459 - 0xd5, 0x10, 0x81, 0xe8, 0x00, 0x00, 0x10, 0x00, // IID8460 - 0xd5, 0x10, 0x81, 0xe8, 0x00, 0x00, 0x40, 0x00, // IID8461 - 0xd5, 0x10, 0x81, 0xe8, 0x00, 0x00, 0x00, 0x01, // IID8462 - 0xd5, 0x10, 0x81, 0xe8, 0x00, 0x00, 0x00, 0x04, // IID8463 - 0xd5, 0x10, 0x81, 0xe8, 0x00, 0x00, 0x00, 0x10, // IID8464 - 0xd5, 0x10, 0x81, 0xe8, 0x00, 0x00, 0x00, 0x40, // IID8465 - 0xd5, 0x10, 0x81, 0xe9, 0x00, 0x00, 0x01, 0x00, // IID8466 - 0xd5, 0x10, 0x81, 0xe9, 0x00, 0x00, 0x04, 0x00, // IID8467 - 0xd5, 0x10, 0x81, 0xe9, 0x00, 0x00, 0x10, 0x00, // IID8468 - 0xd5, 0x10, 0x81, 0xe9, 0x00, 0x00, 0x40, 0x00, // IID8469 - 0xd5, 0x10, 0x81, 0xe9, 0x00, 0x00, 0x00, 0x01, // IID8470 - 0xd5, 0x10, 0x81, 0xe9, 0x00, 0x00, 0x00, 0x04, // IID8471 - 0xd5, 0x10, 0x81, 0xe9, 0x00, 0x00, 0x00, 0x10, // IID8472 - 0xd5, 0x10, 0x81, 0xe9, 0x00, 0x00, 0x00, 0x40, // IID8473 - 0xd5, 0x10, 0x81, 0xea, 0x00, 0x00, 0x01, 0x00, // IID8474 - 0xd5, 0x10, 0x81, 0xea, 0x00, 0x00, 0x04, 0x00, // IID8475 - 0xd5, 0x10, 0x81, 0xea, 0x00, 0x00, 0x10, 0x00, // IID8476 - 0xd5, 0x10, 0x81, 0xea, 0x00, 0x00, 0x40, 0x00, // IID8477 - 0xd5, 0x10, 0x81, 0xea, 0x00, 0x00, 0x00, 0x01, // IID8478 - 0xd5, 0x10, 0x81, 0xea, 0x00, 0x00, 0x00, 0x04, // IID8479 - 0xd5, 0x10, 0x81, 0xea, 0x00, 0x00, 0x00, 0x10, // IID8480 - 0xd5, 0x10, 0x81, 0xea, 0x00, 0x00, 0x00, 0x40, // IID8481 - 0xd5, 0x10, 0x81, 0xeb, 0x00, 0x00, 0x01, 0x00, // IID8482 - 0xd5, 0x10, 0x81, 0xeb, 0x00, 0x00, 0x04, 0x00, // IID8483 - 0xd5, 0x10, 0x81, 0xeb, 0x00, 0x00, 0x10, 0x00, // IID8484 - 0xd5, 0x10, 0x81, 0xeb, 0x00, 0x00, 0x40, 0x00, // IID8485 - 0xd5, 0x10, 0x81, 0xeb, 0x00, 0x00, 0x00, 0x01, // IID8486 - 0xd5, 0x10, 0x81, 0xeb, 0x00, 0x00, 0x00, 0x04, // IID8487 - 0xd5, 0x10, 0x81, 0xeb, 0x00, 0x00, 0x00, 0x10, // IID8488 - 0xd5, 0x10, 0x81, 0xeb, 0x00, 0x00, 0x00, 0x40, // IID8489 - 0xd5, 0x10, 0x81, 0xec, 0x00, 0x00, 0x01, 0x00, // IID8490 - 0xd5, 0x10, 0x81, 0xec, 0x00, 0x00, 0x04, 0x00, // IID8491 - 0xd5, 0x10, 0x81, 0xec, 0x00, 0x00, 0x10, 0x00, // IID8492 - 0xd5, 0x10, 0x81, 0xec, 0x00, 0x00, 0x40, 0x00, // IID8493 - 0xd5, 0x10, 0x81, 0xec, 0x00, 0x00, 0x00, 0x01, // IID8494 - 0xd5, 0x10, 0x81, 0xec, 0x00, 0x00, 0x00, 0x04, // IID8495 - 0xd5, 0x10, 0x81, 0xec, 0x00, 0x00, 0x00, 0x10, // IID8496 - 0xd5, 0x10, 0x81, 0xec, 0x00, 0x00, 0x00, 0x40, // IID8497 - 0xd5, 0x10, 0x81, 0xed, 0x00, 0x00, 0x01, 0x00, // IID8498 - 0xd5, 0x10, 0x81, 0xed, 0x00, 0x00, 0x04, 0x00, // IID8499 - 0xd5, 0x10, 0x81, 0xed, 0x00, 0x00, 0x10, 0x00, // IID8500 - 0xd5, 0x10, 0x81, 0xed, 0x00, 0x00, 0x40, 0x00, // IID8501 - 0xd5, 0x10, 0x81, 0xed, 0x00, 0x00, 0x00, 0x01, // IID8502 - 0xd5, 0x10, 0x81, 0xed, 0x00, 0x00, 0x00, 0x04, // IID8503 - 0xd5, 0x10, 0x81, 0xed, 0x00, 0x00, 0x00, 0x10, // IID8504 - 0xd5, 0x10, 0x81, 0xed, 0x00, 0x00, 0x00, 0x40, // IID8505 - 0xd5, 0x10, 0x81, 0xee, 0x00, 0x00, 0x01, 0x00, // IID8506 - 0xd5, 0x10, 0x81, 0xee, 0x00, 0x00, 0x04, 0x00, // IID8507 - 0xd5, 0x10, 0x81, 0xee, 0x00, 0x00, 0x10, 0x00, // IID8508 - 0xd5, 0x10, 0x81, 0xee, 0x00, 0x00, 0x40, 0x00, // IID8509 - 0xd5, 0x10, 0x81, 0xee, 0x00, 0x00, 0x00, 0x01, // IID8510 - 0xd5, 0x10, 0x81, 0xee, 0x00, 0x00, 0x00, 0x04, // IID8511 - 0xd5, 0x10, 0x81, 0xee, 0x00, 0x00, 0x00, 0x10, // IID8512 - 0xd5, 0x10, 0x81, 0xee, 0x00, 0x00, 0x00, 0x40, // IID8513 - 0xd5, 0x10, 0x81, 0xef, 0x00, 0x00, 0x01, 0x00, // IID8514 - 0xd5, 0x10, 0x81, 0xef, 0x00, 0x00, 0x04, 0x00, // IID8515 - 0xd5, 0x10, 0x81, 0xef, 0x00, 0x00, 0x10, 0x00, // IID8516 - 0xd5, 0x10, 0x81, 0xef, 0x00, 0x00, 0x40, 0x00, // IID8517 - 0xd5, 0x10, 0x81, 0xef, 0x00, 0x00, 0x00, 0x01, // IID8518 - 0xd5, 0x10, 0x81, 0xef, 0x00, 0x00, 0x00, 0x04, // IID8519 - 0xd5, 0x10, 0x81, 0xef, 0x00, 0x00, 0x00, 0x10, // IID8520 - 0xd5, 0x10, 0x81, 0xef, 0x00, 0x00, 0x00, 0x40, // IID8521 - 0xd5, 0x11, 0x81, 0xe8, 0x00, 0x00, 0x01, 0x00, // IID8522 - 0xd5, 0x11, 0x81, 0xe8, 0x00, 0x00, 0x04, 0x00, // IID8523 - 0xd5, 0x11, 0x81, 0xe8, 0x00, 0x00, 0x10, 0x00, // IID8524 - 0xd5, 0x11, 0x81, 0xe8, 0x00, 0x00, 0x40, 0x00, // IID8525 - 0xd5, 0x11, 0x81, 0xe8, 0x00, 0x00, 0x00, 0x01, // IID8526 - 0xd5, 0x11, 0x81, 0xe8, 0x00, 0x00, 0x00, 0x04, // IID8527 - 0xd5, 0x11, 0x81, 0xe8, 0x00, 0x00, 0x00, 0x10, // IID8528 - 0xd5, 0x11, 0x81, 0xe8, 0x00, 0x00, 0x00, 0x40, // IID8529 - 0xd5, 0x11, 0x81, 0xe9, 0x00, 0x00, 0x01, 0x00, // IID8530 - 0xd5, 0x11, 0x81, 0xe9, 0x00, 0x00, 0x04, 0x00, // IID8531 - 0xd5, 0x11, 0x81, 0xe9, 0x00, 0x00, 0x10, 0x00, // IID8532 - 0xd5, 0x11, 0x81, 0xe9, 0x00, 0x00, 0x40, 0x00, // IID8533 - 0xd5, 0x11, 0x81, 0xe9, 0x00, 0x00, 0x00, 0x01, // IID8534 - 0xd5, 0x11, 0x81, 0xe9, 0x00, 0x00, 0x00, 0x04, // IID8535 - 0xd5, 0x11, 0x81, 0xe9, 0x00, 0x00, 0x00, 0x10, // IID8536 - 0xd5, 0x11, 0x81, 0xe9, 0x00, 0x00, 0x00, 0x40, // IID8537 - 0xd5, 0x11, 0x81, 0xea, 0x00, 0x00, 0x01, 0x00, // IID8538 - 0xd5, 0x11, 0x81, 0xea, 0x00, 0x00, 0x04, 0x00, // IID8539 - 0xd5, 0x11, 0x81, 0xea, 0x00, 0x00, 0x10, 0x00, // IID8540 - 0xd5, 0x11, 0x81, 0xea, 0x00, 0x00, 0x40, 0x00, // IID8541 - 0xd5, 0x11, 0x81, 0xea, 0x00, 0x00, 0x00, 0x01, // IID8542 - 0xd5, 0x11, 0x81, 0xea, 0x00, 0x00, 0x00, 0x04, // IID8543 - 0xd5, 0x11, 0x81, 0xea, 0x00, 0x00, 0x00, 0x10, // IID8544 - 0xd5, 0x11, 0x81, 0xea, 0x00, 0x00, 0x00, 0x40, // IID8545 - 0xd5, 0x11, 0x81, 0xeb, 0x00, 0x00, 0x01, 0x00, // IID8546 - 0xd5, 0x11, 0x81, 0xeb, 0x00, 0x00, 0x04, 0x00, // IID8547 - 0xd5, 0x11, 0x81, 0xeb, 0x00, 0x00, 0x10, 0x00, // IID8548 - 0xd5, 0x11, 0x81, 0xeb, 0x00, 0x00, 0x40, 0x00, // IID8549 - 0xd5, 0x11, 0x81, 0xeb, 0x00, 0x00, 0x00, 0x01, // IID8550 - 0xd5, 0x11, 0x81, 0xeb, 0x00, 0x00, 0x00, 0x04, // IID8551 - 0xd5, 0x11, 0x81, 0xeb, 0x00, 0x00, 0x00, 0x10, // IID8552 - 0xd5, 0x11, 0x81, 0xeb, 0x00, 0x00, 0x00, 0x40, // IID8553 - 0xd5, 0x11, 0x81, 0xec, 0x00, 0x00, 0x01, 0x00, // IID8554 - 0xd5, 0x11, 0x81, 0xec, 0x00, 0x00, 0x04, 0x00, // IID8555 - 0xd5, 0x11, 0x81, 0xec, 0x00, 0x00, 0x10, 0x00, // IID8556 - 0xd5, 0x11, 0x81, 0xec, 0x00, 0x00, 0x40, 0x00, // IID8557 - 0xd5, 0x11, 0x81, 0xec, 0x00, 0x00, 0x00, 0x01, // IID8558 - 0xd5, 0x11, 0x81, 0xec, 0x00, 0x00, 0x00, 0x04, // IID8559 - 0xd5, 0x11, 0x81, 0xec, 0x00, 0x00, 0x00, 0x10, // IID8560 - 0xd5, 0x11, 0x81, 0xec, 0x00, 0x00, 0x00, 0x40, // IID8561 - 0xd5, 0x11, 0x81, 0xed, 0x00, 0x00, 0x01, 0x00, // IID8562 - 0xd5, 0x11, 0x81, 0xed, 0x00, 0x00, 0x04, 0x00, // IID8563 - 0xd5, 0x11, 0x81, 0xed, 0x00, 0x00, 0x10, 0x00, // IID8564 - 0xd5, 0x11, 0x81, 0xed, 0x00, 0x00, 0x40, 0x00, // IID8565 - 0xd5, 0x11, 0x81, 0xed, 0x00, 0x00, 0x00, 0x01, // IID8566 - 0xd5, 0x11, 0x81, 0xed, 0x00, 0x00, 0x00, 0x04, // IID8567 - 0xd5, 0x11, 0x81, 0xed, 0x00, 0x00, 0x00, 0x10, // IID8568 - 0xd5, 0x11, 0x81, 0xed, 0x00, 0x00, 0x00, 0x40, // IID8569 - 0xd5, 0x11, 0x81, 0xee, 0x00, 0x00, 0x01, 0x00, // IID8570 - 0xd5, 0x11, 0x81, 0xee, 0x00, 0x00, 0x04, 0x00, // IID8571 - 0xd5, 0x11, 0x81, 0xee, 0x00, 0x00, 0x10, 0x00, // IID8572 - 0xd5, 0x11, 0x81, 0xee, 0x00, 0x00, 0x40, 0x00, // IID8573 - 0xd5, 0x11, 0x81, 0xee, 0x00, 0x00, 0x00, 0x01, // IID8574 - 0xd5, 0x11, 0x81, 0xee, 0x00, 0x00, 0x00, 0x04, // IID8575 - 0xd5, 0x11, 0x81, 0xee, 0x00, 0x00, 0x00, 0x10, // IID8576 - 0xd5, 0x11, 0x81, 0xee, 0x00, 0x00, 0x00, 0x40, // IID8577 - 0xd5, 0x11, 0x81, 0xef, 0x00, 0x00, 0x01, 0x00, // IID8578 - 0xd5, 0x11, 0x81, 0xef, 0x00, 0x00, 0x04, 0x00, // IID8579 - 0xd5, 0x11, 0x81, 0xef, 0x00, 0x00, 0x10, 0x00, // IID8580 - 0xd5, 0x11, 0x81, 0xef, 0x00, 0x00, 0x40, 0x00, // IID8581 - 0xd5, 0x11, 0x81, 0xef, 0x00, 0x00, 0x00, 0x01, // IID8582 - 0xd5, 0x11, 0x81, 0xef, 0x00, 0x00, 0x00, 0x04, // IID8583 - 0xd5, 0x11, 0x81, 0xef, 0x00, 0x00, 0x00, 0x10, // IID8584 - 0xd5, 0x11, 0x81, 0xef, 0x00, 0x00, 0x00, 0x40, // IID8585 -#endif // _LP64 - 0x0f, 0x40, 0x8c, 0x1a, 0x9a, 0xd7, 0x43, 0xeb, // IID8586 -#ifdef _LP64 - 0x0f, 0x40, 0x93, 0x8b, 0xb1, 0x19, 0xb2, // IID8587 - 0x43, 0x0f, 0x40, 0x9c, 0x48, 0x02, 0xdd, 0xb7, 0xac, // IID8588 - 0x47, 0x0f, 0x40, 0x84, 0xd1, 0x1e, 0x53, 0x46, 0x90, // IID8589 - 0x47, 0x0f, 0x40, 0x8c, 0x5a, 0x26, 0x35, 0x90, 0x69, // IID8590 - 0x47, 0x0f, 0x40, 0x94, 0x23, 0x2b, 0xf0, 0xbc, 0x86, // IID8591 - 0x47, 0x0f, 0x40, 0x9c, 0x6c, 0xab, 0x3f, 0x7f, 0x7e, // IID8592 - 0x47, 0x0f, 0x40, 0xa4, 0x75, 0x27, 0xe6, 0x98, 0x17, // IID8593 - 0x47, 0x0f, 0x40, 0xac, 0x3e, 0x38, 0x3c, 0x2f, 0xf1, // IID8594 - 0xd5, 0xa5, 0x40, 0xb4, 0x87, 0x9c, 0xb4, 0x45, 0xcf, // IID8595 - 0xd5, 0x94, 0x40, 0xb8, 0x8c, 0xbe, 0xd6, 0xfa, // IID8596 - 0xd5, 0xf0, 0x40, 0x84, 0x51, 0x67, 0x87, 0x0a, 0x26, // IID8597 - 0xd5, 0xf0, 0x40, 0x8c, 0x1a, 0xe3, 0xd6, 0x1f, 0x67, // IID8598 - 0xd5, 0xf0, 0x40, 0x94, 0xa3, 0x03, 0xb2, 0x4d, 0x54, // IID8599 - 0xd5, 0xd0, 0x40, 0x9c, 0x24, 0x1f, 0x06, 0xcd, 0x6f, // IID8600 - 0xd5, 0xd0, 0x40, 0xa5, 0x1b, 0x9a, 0x59, 0x4f, // IID8601 - 0xd5, 0xd0, 0x40, 0xae, 0x4d, 0x4a, 0x4a, 0x99, // IID8602 - 0xd5, 0xf2, 0x40, 0xb4, 0x87, 0x7e, 0x89, 0xc7, 0xc0, // IID8603 - 0xd5, 0xf3, 0x40, 0xbc, 0x48, 0x38, 0xd2, 0x0f, 0x39, // IID8604 - 0xd5, 0xd5, 0x40, 0x81, 0x8a, 0xb5, 0x0c, 0x62, // IID8605 - 0xd5, 0xf7, 0x40, 0x8c, 0x1a, 0xe2, 0xde, 0x29, 0xf5, // IID8606 - 0xd5, 0xd5, 0x40, 0x93, 0x9f, 0x03, 0xc1, 0xa6, // IID8607 - 0xd5, 0xf7, 0x40, 0x9c, 0xec, 0x59, 0x7b, 0xa6, 0x46, // IID8608 - 0xd5, 0xf7, 0x40, 0xa4, 0xf5, 0x29, 0x17, 0x15, 0x9c, // IID8609 - 0xd5, 0xf7, 0x40, 0xac, 0x7e, 0xa1, 0x42, 0x55, 0x78, // IID8610 - 0xd5, 0xd5, 0x40, 0xb4, 0x0f, 0x4b, 0x97, 0xa1, 0x40, // IID8611 - 0xd5, 0xc4, 0x40, 0xbc, 0x91, 0x21, 0x18, 0xb9, 0xbf, // IID8612 -#endif // _LP64 - 0x0f, 0x41, 0x8c, 0x5a, 0x6d, 0x65, 0xcd, 0xbc, // IID8613 -#ifdef _LP64 - 0x0f, 0x41, 0x93, 0xef, 0xd8, 0xab, 0x40, // IID8614 - 0x43, 0x0f, 0x41, 0x9c, 0x48, 0xc3, 0x66, 0x20, 0x9b, // IID8615 - 0x45, 0x0f, 0x41, 0x81, 0xf6, 0xf9, 0xad, 0xc8, // IID8616 - 0x47, 0x0f, 0x41, 0x8c, 0x9a, 0x02, 0x9c, 0xf9, 0x6c, // IID8617 - 0x47, 0x0f, 0x41, 0x94, 0x23, 0xb4, 0xda, 0xb6, 0xf8, // IID8618 - 0x45, 0x0f, 0x41, 0x9c, 0x24, 0x48, 0xf0, 0x63, 0xc6, // IID8619 - 0x45, 0x0f, 0x41, 0xa5, 0xae, 0xb7, 0xbe, 0xd2, // IID8620 - 0x47, 0x0f, 0x41, 0xac, 0x3e, 0xc2, 0xc9, 0x62, 0xc9, // IID8621 - 0xd5, 0xa5, 0x41, 0xb4, 0x87, 0x83, 0x0d, 0xdb, 0xc7, // IID8622 - 0xd5, 0xb4, 0x41, 0xbc, 0x88, 0x38, 0x95, 0x02, 0x26, // IID8623 - 0xd5, 0xf0, 0x41, 0x84, 0xd1, 0xe9, 0x5c, 0xdc, 0x22, // IID8624 - 0xd5, 0xf0, 0x41, 0x8c, 0x5a, 0x0b, 0x1d, 0x9f, 0x2f, // IID8625 - 0xd5, 0xd0, 0x41, 0x93, 0xca, 0x53, 0x40, 0x9f, // IID8626 - 0xd5, 0xf0, 0x41, 0x9c, 0xac, 0x9f, 0x7b, 0x17, 0x34, // IID8627 - 0xd5, 0xf0, 0x41, 0xa4, 0xb5, 0x99, 0xb2, 0xc8, 0x86, // IID8628 - 0xd5, 0xf0, 0x41, 0xac, 0x3e, 0x37, 0xea, 0xcd, 0x18, // IID8629 - 0xd5, 0xf2, 0x41, 0xb4, 0x87, 0x6a, 0x64, 0x7c, 0x98, // IID8630 - 0xd5, 0xf3, 0x41, 0xbc, 0x88, 0x49, 0x55, 0x21, 0x26, // IID8631 - 0xd5, 0xf7, 0x41, 0x84, 0xd1, 0xd8, 0x17, 0xad, 0x92, // IID8632 - 0xd5, 0xf7, 0x41, 0x8c, 0x9a, 0x79, 0x6f, 0x2c, 0x7e, // IID8633 - 0xd5, 0xf7, 0x41, 0x94, 0xe3, 0x65, 0x75, 0xbc, 0x6b, // IID8634 - 0xd5, 0xf7, 0x41, 0x9c, 0xec, 0x7c, 0x71, 0x05, 0xb4, // IID8635 - 0xd5, 0xd5, 0x41, 0xa5, 0x19, 0x1c, 0xa7, 0xdb, // IID8636 - 0xd5, 0xf7, 0x41, 0xac, 0x7e, 0x9a, 0x9e, 0x5c, 0xc8, // IID8637 - 0xd5, 0xd5, 0x41, 0xb4, 0xcf, 0xaa, 0xf4, 0x38, 0xc9, // IID8638 - 0xd5, 0xc4, 0x41, 0xb9, 0xf8, 0x97, 0xc4, 0x23, // IID8639 -#endif // _LP64 - 0x0f, 0x42, 0x8c, 0x1a, 0xb5, 0x53, 0x9f, 0x0e, // IID8640 -#ifdef _LP64 - 0x42, 0x0f, 0x42, 0x94, 0x03, 0x68, 0x09, 0xa9, 0xe8, // IID8641 - 0x41, 0x0f, 0x42, 0x98, 0x7b, 0xac, 0xc7, 0x52, // IID8642 - 0x47, 0x0f, 0x42, 0x84, 0x91, 0x31, 0xb0, 0x7a, 0x76, // IID8643 - 0x45, 0x0f, 0x42, 0x8a, 0xa2, 0x37, 0x03, 0xe6, // IID8644 - 0x45, 0x0f, 0x42, 0x93, 0xe2, 0xb8, 0x98, 0x0b, // IID8645 - 0x47, 0x0f, 0x42, 0x9c, 0x6c, 0x52, 0x35, 0x37, 0xaa, // IID8646 - 0x47, 0x0f, 0x42, 0xa4, 0xb5, 0xab, 0x92, 0xd5, 0x48, // IID8647 - 0x47, 0x0f, 0x42, 0xac, 0xfe, 0xf4, 0x68, 0xfb, 0x5b, // IID8648 - 0xd5, 0xa5, 0x42, 0xb4, 0x47, 0x9d, 0xaf, 0x58, 0x3f, // IID8649 - 0xd5, 0xb4, 0x42, 0xbc, 0x48, 0xa1, 0x78, 0x67, 0x61, // IID8650 - 0xd5, 0xf0, 0x42, 0x84, 0x91, 0xd0, 0x70, 0xe9, 0x34, // IID8651 - 0xd5, 0xd0, 0x42, 0x8a, 0x42, 0x4a, 0xa5, 0xc0, // IID8652 - 0xd5, 0xf0, 0x42, 0x94, 0xe3, 0x4f, 0xfe, 0x9e, 0x51, // IID8653 - 0xd5, 0xd0, 0x42, 0x9c, 0x24, 0xe2, 0xb6, 0xf7, 0x6f, // IID8654 - 0xd5, 0xf0, 0x42, 0xa4, 0xb5, 0x24, 0xf5, 0x7d, 0x50, // IID8655 - 0xd5, 0xf0, 0x42, 0xac, 0x7e, 0xc8, 0x94, 0xd1, 0xd5, // IID8656 - 0xd5, 0xf2, 0x42, 0xb4, 0x87, 0xaa, 0x90, 0xf9, 0xd9, // IID8657 - 0xd5, 0xf3, 0x42, 0xbc, 0x08, 0x74, 0xb5, 0x09, 0xd1, // IID8658 - 0xd5, 0xf7, 0x42, 0x84, 0x91, 0xec, 0xc4, 0x56, 0x5c, // IID8659 - 0xd5, 0xd5, 0x42, 0x8a, 0xb3, 0x5e, 0xf8, 0x66, // IID8660 - 0xd5, 0xf7, 0x42, 0x94, 0xa3, 0x8a, 0xc0, 0xec, 0x65, // IID8661 - 0xd5, 0xf7, 0x42, 0x9c, 0xec, 0xa0, 0xee, 0x6e, 0xa7, // IID8662 - 0xd5, 0xf7, 0x42, 0xa4, 0x75, 0xe9, 0xf2, 0x04, 0xc5, // IID8663 - 0xd5, 0xf7, 0x42, 0xac, 0x7e, 0x7b, 0xfc, 0x1b, 0xae, // IID8664 - 0xd5, 0xd5, 0x42, 0xb4, 0x8f, 0x65, 0xa6, 0x65, 0x26, // IID8665 - 0xd5, 0xc4, 0x42, 0xbc, 0x11, 0xd4, 0xd6, 0xae, 0xb7, // IID8666 -#endif // _LP64 - 0x0f, 0x43, 0x8c, 0x1a, 0x99, 0x2a, 0xcb, 0x6c, // IID8667 -#ifdef _LP64 - 0x0f, 0x43, 0x93, 0x4e, 0x84, 0x2d, 0x0d, // IID8668 - 0x43, 0x0f, 0x43, 0x9c, 0x08, 0xf4, 0x14, 0x86, 0x07, // IID8669 - 0x47, 0x0f, 0x43, 0x84, 0x91, 0xfa, 0x62, 0x34, 0x7f, // IID8670 - 0x47, 0x0f, 0x43, 0x8c, 0x9a, 0x35, 0x49, 0x4b, 0x21, // IID8671 - 0x47, 0x0f, 0x43, 0x94, 0xa3, 0x39, 0xdc, 0xc0, 0x67, // IID8672 - 0x47, 0x0f, 0x43, 0x9c, 0x6c, 0x4b, 0x6a, 0x49, 0x01, // IID8673 - 0x47, 0x0f, 0x43, 0xa4, 0x75, 0xc7, 0x1e, 0xa1, 0xa0, // IID8674 - 0x45, 0x0f, 0x43, 0xae, 0x54, 0x21, 0x34, 0xa4, // IID8675 - 0xd5, 0xa5, 0x43, 0xb4, 0x87, 0xf0, 0xe6, 0xfa, 0x23, // IID8676 - 0xd5, 0xb4, 0x43, 0xbc, 0x48, 0xd9, 0x12, 0xab, 0x4d, // IID8677 - 0xd5, 0xf0, 0x43, 0x84, 0x91, 0x6a, 0xa0, 0x12, 0x0f, // IID8678 - 0xd5, 0xf0, 0x43, 0x8c, 0x5a, 0xb7, 0xe7, 0x9a, 0xf2, // IID8679 - 0xd5, 0xf0, 0x43, 0x94, 0x23, 0x15, 0xd3, 0xf8, 0xe0, // IID8680 - 0xd5, 0xd0, 0x43, 0x9c, 0x24, 0x31, 0x7b, 0x1d, 0x48, // IID8681 - 0xd5, 0xf0, 0x43, 0xa4, 0x75, 0x2c, 0xaa, 0xcd, 0x1f, // IID8682 - 0xd5, 0xd0, 0x43, 0xae, 0xb2, 0x4e, 0xb1, 0x9d, // IID8683 - 0xd5, 0xf2, 0x43, 0xb4, 0x87, 0x75, 0xf7, 0x75, 0xa8, // IID8684 - 0xd5, 0xd1, 0x43, 0xb8, 0xc3, 0xe8, 0xfa, 0xb2, // IID8685 - 0xd5, 0xf7, 0x43, 0x84, 0xd1, 0x09, 0xe8, 0x2b, 0xe2, // IID8686 - 0xd5, 0xd5, 0x43, 0x8a, 0x75, 0x13, 0x67, 0x48, // IID8687 - 0xd5, 0xf7, 0x43, 0x94, 0x23, 0xac, 0xaf, 0x50, 0x4a, // IID8688 - 0xd5, 0xf7, 0x43, 0x9c, 0xac, 0x4e, 0x62, 0xf9, 0x29, // IID8689 - 0xd5, 0xf7, 0x43, 0xa4, 0x35, 0x5a, 0x77, 0x2d, 0xce, // IID8690 - 0xd5, 0xd5, 0x43, 0xae, 0x2e, 0x82, 0x5e, 0x22, // IID8691 - 0xd5, 0xd5, 0x43, 0xb4, 0x8f, 0x6c, 0x46, 0x10, 0xea, // IID8692 - 0xd5, 0xc4, 0x43, 0xbc, 0x11, 0x88, 0x2e, 0xe6, 0x73, // IID8693 -#endif // _LP64 - 0x0f, 0x44, 0x8c, 0x1a, 0x89, 0xfa, 0xe9, 0xc1, // IID8694 -#ifdef _LP64 - 0x42, 0x0f, 0x44, 0x94, 0x83, 0x05, 0x43, 0x13, 0xe2, // IID8695 - 0x43, 0x0f, 0x44, 0x9c, 0x88, 0xd0, 0xf9, 0x53, 0x65, // IID8696 - 0x47, 0x0f, 0x44, 0x84, 0x11, 0x6f, 0x59, 0xc3, 0x66, // IID8697 - 0x47, 0x0f, 0x44, 0x8c, 0x9a, 0xfb, 0x4b, 0x55, 0xf2, // IID8698 - 0x47, 0x0f, 0x44, 0x94, 0x23, 0x1c, 0xb0, 0xc4, 0x74, // IID8699 - 0x45, 0x0f, 0x44, 0x9c, 0x24, 0x40, 0x2f, 0xde, 0xb7, // IID8700 - 0x45, 0x0f, 0x44, 0xa5, 0x08, 0x44, 0x27, 0xa5, // IID8701 - 0x47, 0x0f, 0x44, 0xac, 0x7e, 0xb9, 0x7a, 0xaf, 0x9a, // IID8702 - 0xd5, 0xa5, 0x44, 0xb4, 0x87, 0xa6, 0xe2, 0x8a, 0xb3, // IID8703 - 0xd5, 0xb4, 0x44, 0xbc, 0xc8, 0x9b, 0x95, 0xa2, 0xac, // IID8704 - 0xd5, 0xf0, 0x44, 0x84, 0x91, 0xb9, 0x6e, 0xa7, 0x70, // IID8705 - 0xd5, 0xf0, 0x44, 0x8c, 0x1a, 0x97, 0x20, 0x0c, 0xa6, // IID8706 - 0xd5, 0xf0, 0x44, 0x94, 0x63, 0x38, 0xee, 0x49, 0x3b, // IID8707 - 0xd5, 0xd0, 0x44, 0x9c, 0x24, 0x9f, 0x7b, 0x09, 0xd9, // IID8708 - 0xd5, 0xd0, 0x44, 0xa5, 0x06, 0x92, 0x7b, 0x4a, // IID8709 - 0xd5, 0xf0, 0x44, 0xac, 0xbe, 0x60, 0xb9, 0xfc, 0x60, // IID8710 - 0xd5, 0xf2, 0x44, 0xb4, 0x47, 0x14, 0x51, 0x65, 0x63, // IID8711 - 0xd5, 0xf3, 0x44, 0xbc, 0x08, 0x1c, 0x01, 0x31, 0x28, // IID8712 - 0xd5, 0xf7, 0x44, 0x84, 0x51, 0x5f, 0x39, 0x8a, 0x25, // IID8713 - 0xd5, 0xf7, 0x44, 0x8c, 0xda, 0x05, 0x71, 0x8a, 0xc1, // IID8714 - 0xd5, 0xd5, 0x44, 0x93, 0xa0, 0xe7, 0x06, 0x24, // IID8715 - 0xd5, 0xd5, 0x44, 0x9c, 0x24, 0x46, 0x29, 0x54, 0x08, // IID8716 - 0xd5, 0xf7, 0x44, 0xa4, 0xf5, 0x63, 0x5b, 0x78, 0x75, // IID8717 - 0xd5, 0xf7, 0x44, 0xac, 0xbe, 0x48, 0x39, 0x71, 0x0a, // IID8718 - 0xd5, 0xd5, 0x44, 0xb4, 0x0f, 0x6b, 0x7f, 0x18, 0xbe, // IID8719 - 0xd5, 0xc4, 0x44, 0xbc, 0x91, 0x02, 0xfb, 0xa4, 0xda, // IID8720 -#endif // _LP64 - 0x0f, 0x45, 0x8c, 0x9a, 0x6d, 0xf7, 0xc9, 0x0c, // IID8721 -#ifdef _LP64 - 0x0f, 0x45, 0x93, 0x09, 0xb0, 0xa8, 0x8a, // IID8722 - 0x41, 0x0f, 0x45, 0x98, 0x45, 0x18, 0x11, 0xab, // IID8723 - 0x47, 0x0f, 0x45, 0x84, 0x91, 0x67, 0xe3, 0x1b, 0xca, // IID8724 - 0x45, 0x0f, 0x45, 0x8a, 0xd2, 0xe2, 0x2d, 0x1a, // IID8725 - 0x47, 0x0f, 0x45, 0x94, 0xe3, 0xf2, 0x64, 0x05, 0x7f, // IID8726 - 0x47, 0x0f, 0x45, 0x9c, 0x2c, 0x2a, 0x48, 0x40, 0x91, // IID8727 - 0x47, 0x0f, 0x45, 0xa4, 0xf5, 0x19, 0x5d, 0xff, 0xba, // IID8728 - 0x45, 0x0f, 0x45, 0xae, 0xd8, 0x0b, 0x26, 0x79, // IID8729 - 0x45, 0x0f, 0x45, 0xb7, 0x26, 0xd8, 0xe6, 0xec, // IID8730 - 0xd5, 0xb4, 0x45, 0xbc, 0xc8, 0xfe, 0xb2, 0x7a, 0x0a, // IID8731 - 0xd5, 0xf0, 0x45, 0x84, 0x11, 0x07, 0xc0, 0xc6, 0xd0, // IID8732 - 0xd5, 0xf0, 0x45, 0x8c, 0x1a, 0x7e, 0x33, 0x52, 0xc8, // IID8733 - 0xd5, 0xd0, 0x45, 0x93, 0x79, 0x70, 0x9e, 0xfd, // IID8734 - 0xd5, 0xf0, 0x45, 0x9c, 0x2c, 0x32, 0xda, 0x46, 0xc6, // IID8735 - 0xd5, 0xf0, 0x45, 0xa4, 0xf5, 0xb9, 0x8b, 0xbb, 0xd9, // IID8736 - 0xd5, 0xf0, 0x45, 0xac, 0x3e, 0xef, 0xab, 0xdf, 0xca, // IID8737 - 0xd5, 0xf2, 0x45, 0xb4, 0x07, 0x66, 0x20, 0xf0, 0x18, // IID8738 - 0xd5, 0xf3, 0x45, 0xbc, 0x48, 0xca, 0xdf, 0x1a, 0x4a, // IID8739 - 0xd5, 0xf7, 0x45, 0x84, 0xd1, 0xf1, 0xad, 0x79, 0x19, // IID8740 - 0xd5, 0xf7, 0x45, 0x8c, 0x5a, 0x78, 0x09, 0x52, 0xa9, // IID8741 - 0xd5, 0xd5, 0x45, 0x93, 0x8d, 0x12, 0xbb, 0x34, // IID8742 - 0xd5, 0xf7, 0x45, 0x9c, 0xac, 0xce, 0x2b, 0xff, 0x64, // IID8743 - 0xd5, 0xf7, 0x45, 0xa4, 0xb5, 0xe6, 0x6e, 0x9b, 0x7d, // IID8744 - 0xd5, 0xf7, 0x45, 0xac, 0xfe, 0x27, 0x56, 0x56, 0xed, // IID8745 - 0xd5, 0xd5, 0x45, 0xb4, 0x0f, 0x86, 0xb4, 0x3b, 0xfd, // IID8746 - 0xd5, 0xc4, 0x45, 0xbc, 0xd1, 0xd5, 0x21, 0x23, 0xa6, // IID8747 -#endif // _LP64 - 0x0f, 0x46, 0x8c, 0x5a, 0xb1, 0xe4, 0x2b, 0x71, // IID8748 -#ifdef _LP64 - 0x0f, 0x46, 0x93, 0x54, 0x70, 0x2e, 0x1b, // IID8749 - 0x43, 0x0f, 0x46, 0x9c, 0x48, 0xac, 0xcc, 0xdd, 0xda, // IID8750 - 0x47, 0x0f, 0x46, 0x84, 0x51, 0x5d, 0x4f, 0x57, 0x66, // IID8751 - 0x45, 0x0f, 0x46, 0x8a, 0x4d, 0x20, 0x6e, 0x34, // IID8752 - 0x47, 0x0f, 0x46, 0x94, 0xe3, 0x1a, 0xc7, 0xd9, 0xa2, // IID8753 - 0x45, 0x0f, 0x46, 0x9c, 0x24, 0xd4, 0xaf, 0xfe, 0x2e, // IID8754 - 0x47, 0x0f, 0x46, 0xa4, 0xb5, 0xe6, 0xd9, 0x01, 0xc6, // IID8755 - 0x47, 0x0f, 0x46, 0xac, 0xbe, 0xf0, 0x01, 0x09, 0x23, // IID8756 - 0xd5, 0xa5, 0x46, 0xb4, 0x07, 0xc1, 0xbb, 0x5c, 0xca, // IID8757 - 0xd5, 0xb4, 0x46, 0xbc, 0x48, 0x5b, 0xae, 0xce, 0x6e, // IID8758 - 0xd5, 0xd0, 0x46, 0x81, 0x97, 0xe7, 0x6c, 0xde, // IID8759 - 0xd5, 0xf0, 0x46, 0x8c, 0x5a, 0x92, 0x9c, 0x75, 0x02, // IID8760 - 0xd5, 0xf0, 0x46, 0x94, 0xa3, 0x2c, 0x09, 0xee, 0x95, // IID8761 - 0xd5, 0xf0, 0x46, 0x9c, 0xec, 0x11, 0xd7, 0xcd, 0x14, // IID8762 - 0xd5, 0xf0, 0x46, 0xa4, 0x35, 0xac, 0xcd, 0x8d, 0x7c, // IID8763 - 0xd5, 0xf0, 0x46, 0xac, 0xfe, 0xa7, 0xf3, 0x35, 0xfa, // IID8764 - 0xd5, 0xf2, 0x46, 0xb4, 0x87, 0x2b, 0x4e, 0x1c, 0xeb, // IID8765 - 0xd5, 0xf3, 0x46, 0xbc, 0x88, 0x45, 0xd7, 0xc8, 0xc5, // IID8766 - 0xd5, 0xf7, 0x46, 0x84, 0x91, 0xd4, 0xa2, 0x84, 0xae, // IID8767 - 0xd5, 0xf7, 0x46, 0x8c, 0x5a, 0xcc, 0xfa, 0x87, 0x40, // IID8768 - 0xd5, 0xf7, 0x46, 0x94, 0x63, 0x19, 0xac, 0x74, 0x5e, // IID8769 - 0xd5, 0xd5, 0x46, 0x9c, 0x24, 0xf1, 0x65, 0x6f, 0xe7, // IID8770 - 0xd5, 0xf7, 0x46, 0xa4, 0x75, 0xb1, 0xd3, 0x56, 0xda, // IID8771 - 0xd5, 0xf7, 0x46, 0xac, 0x3e, 0x93, 0x54, 0x85, 0x3c, // IID8772 - 0xd5, 0xd5, 0x46, 0xb4, 0xcf, 0x6b, 0xdd, 0xe1, 0x22, // IID8773 - 0xd5, 0xc4, 0x46, 0xbc, 0x11, 0xde, 0x51, 0xe1, 0x74, // IID8774 -#endif // _LP64 - 0x0f, 0x47, 0x8c, 0x1a, 0x7e, 0x15, 0xfe, 0x37, // IID8775 -#ifdef _LP64 - 0x42, 0x0f, 0x47, 0x94, 0x43, 0xd7, 0x94, 0xc6, 0x3a, // IID8776 - 0x43, 0x0f, 0x47, 0x9c, 0x88, 0x9a, 0x1b, 0x04, 0x34, // IID8777 - 0x47, 0x0f, 0x47, 0x84, 0x91, 0x92, 0x61, 0xe3, 0x31, // IID8778 - 0x47, 0x0f, 0x47, 0x8c, 0x1a, 0x5e, 0xc2, 0x9b, 0x30, // IID8779 - 0x47, 0x0f, 0x47, 0x94, 0x23, 0xdf, 0xfc, 0x00, 0x8d, // IID8780 - 0x47, 0x0f, 0x47, 0x9c, 0x2c, 0x31, 0xd6, 0xb6, 0x28, // IID8781 - 0x47, 0x0f, 0x47, 0xa4, 0xb5, 0xcc, 0x30, 0x15, 0x24, // IID8782 - 0x45, 0x0f, 0x47, 0xae, 0x3b, 0x18, 0x3e, 0xa9, // IID8783 - 0xd5, 0xa5, 0x47, 0xb4, 0x47, 0x5d, 0x47, 0x6d, 0x69, // IID8784 - 0xd5, 0xb4, 0x47, 0xbc, 0x08, 0xf4, 0x65, 0x85, 0x12, // IID8785 - 0xd5, 0xf0, 0x47, 0x84, 0xd1, 0xb2, 0x4a, 0x91, 0x32, // IID8786 - 0xd5, 0xf0, 0x47, 0x8c, 0x9a, 0x2f, 0x96, 0xbb, 0x8e, // IID8787 - 0xd5, 0xd0, 0x47, 0x93, 0xf9, 0x36, 0x57, 0xe9, // IID8788 - 0xd5, 0xf0, 0x47, 0x9c, 0x6c, 0xf0, 0xb1, 0xb3, 0xe8, // IID8789 - 0xd5, 0xf0, 0x47, 0xa4, 0xf5, 0x3f, 0x04, 0x39, 0xa1, // IID8790 - 0xd5, 0xf0, 0x47, 0xac, 0x7e, 0x81, 0xb1, 0x3c, 0xdd, // IID8791 - 0xd5, 0xd0, 0x47, 0xb7, 0xfb, 0xd2, 0x36, 0x33, // IID8792 - 0xd5, 0xf3, 0x47, 0xbc, 0x88, 0x95, 0x51, 0x73, 0x64, // IID8793 - 0xd5, 0xf7, 0x47, 0x84, 0x51, 0xcd, 0xfe, 0x34, 0xb4, // IID8794 - 0xd5, 0xf7, 0x47, 0x8c, 0xda, 0x7b, 0xa9, 0xd5, 0x9f, // IID8795 - 0xd5, 0xf7, 0x47, 0x94, 0x23, 0x7d, 0xfd, 0x5d, 0xd1, // IID8796 - 0xd5, 0xf7, 0x47, 0x9c, 0xec, 0xe9, 0x39, 0x6d, 0x66, // IID8797 - 0xd5, 0xf7, 0x47, 0xa4, 0xf5, 0xaa, 0xa3, 0x94, 0x6c, // IID8798 - 0xd5, 0xf7, 0x47, 0xac, 0xfe, 0x09, 0x90, 0x2f, 0x2c, // IID8799 - 0xd5, 0xd5, 0x47, 0xb4, 0x0f, 0x7b, 0x56, 0xbe, 0xc6, // IID8800 - 0xd5, 0xc4, 0x47, 0xbc, 0x51, 0x9a, 0xbd, 0xbf, 0x86, // IID8801 -#endif // _LP64 - 0x0f, 0x48, 0x8c, 0x1a, 0x38, 0x89, 0x52, 0x38, // IID8802 -#ifdef _LP64 - 0x42, 0x0f, 0x48, 0x94, 0x43, 0x0c, 0x03, 0x7c, 0x19, // IID8803 - 0x43, 0x0f, 0x48, 0x9c, 0x08, 0xfd, 0xba, 0x3e, 0x02, // IID8804 - 0x47, 0x0f, 0x48, 0x84, 0x51, 0x09, 0xa2, 0xcf, 0x11, // IID8805 - 0x47, 0x0f, 0x48, 0x8c, 0x1a, 0x53, 0xc0, 0x5e, 0x0a, // IID8806 - 0x47, 0x0f, 0x48, 0x94, 0xe3, 0xa3, 0x80, 0x37, 0xaf, // IID8807 - 0x47, 0x0f, 0x48, 0x9c, 0xac, 0xc7, 0xc2, 0xf6, 0x78, // IID8808 - 0x45, 0x0f, 0x48, 0xa5, 0xc9, 0x19, 0xdb, 0x66, // IID8809 - 0x47, 0x0f, 0x48, 0xac, 0xfe, 0xfb, 0xcb, 0x66, 0xdf, // IID8810 - 0xd5, 0xa5, 0x48, 0xb4, 0x07, 0x4e, 0x0f, 0xc4, 0xc6, // IID8811 - 0xd5, 0xb4, 0x48, 0xbc, 0x48, 0x59, 0x7d, 0x05, 0x5b, // IID8812 - 0xd5, 0xf0, 0x48, 0x84, 0x11, 0xea, 0xa7, 0xfd, 0xa3, // IID8813 - 0xd5, 0xf0, 0x48, 0x8c, 0xda, 0xb2, 0xf7, 0xe8, 0x8e, // IID8814 - 0xd5, 0xd0, 0x48, 0x93, 0x55, 0x9b, 0x9b, 0xde, // IID8815 - 0xd5, 0xf0, 0x48, 0x9c, 0x6c, 0x84, 0xda, 0xbb, 0x5b, // IID8816 - 0xd5, 0xd0, 0x48, 0xa5, 0xa1, 0x2e, 0xd3, 0x1e, // IID8817 - 0xd5, 0xf0, 0x48, 0xac, 0xbe, 0x40, 0xc1, 0x44, 0x65, // IID8818 - 0xd5, 0xf2, 0x48, 0xb4, 0xc7, 0x4b, 0x2b, 0x46, 0x02, // IID8819 - 0xd5, 0xd1, 0x48, 0xb8, 0xbd, 0x96, 0xa9, 0x9a, // IID8820 - 0xd5, 0xf7, 0x48, 0x84, 0xd1, 0xa7, 0x0b, 0x00, 0x9e, // IID8821 - 0xd5, 0xd5, 0x48, 0x8a, 0xa7, 0x42, 0x19, 0x46, // IID8822 - 0xd5, 0xf7, 0x48, 0x94, 0x23, 0xd8, 0xb5, 0x41, 0xe3, // IID8823 - 0xd5, 0xf7, 0x48, 0x9c, 0x2c, 0x5b, 0x42, 0x90, 0xe6, // IID8824 - 0xd5, 0xd5, 0x48, 0xa5, 0x71, 0xf7, 0xd0, 0x18, // IID8825 - 0xd5, 0xf7, 0x48, 0xac, 0xfe, 0x68, 0x74, 0xa1, 0x7b, // IID8826 - 0xd5, 0xd5, 0x48, 0xb4, 0x8f, 0x4c, 0xd0, 0xad, 0xd9, // IID8827 - 0xd5, 0xc4, 0x48, 0xbc, 0x11, 0x5b, 0x53, 0x15, 0x1f, // IID8828 -#endif // _LP64 - 0x0f, 0x49, 0x8a, 0x76, 0x7c, 0x2e, 0x65, // IID8829 -#ifdef _LP64 - 0x42, 0x0f, 0x49, 0x94, 0xc3, 0xfe, 0xcd, 0x34, 0x9f, // IID8830 - 0x43, 0x0f, 0x49, 0x9c, 0x88, 0xa7, 0x84, 0x08, 0x3d, // IID8831 - 0x47, 0x0f, 0x49, 0x84, 0x11, 0xa3, 0x33, 0xc6, 0x6d, // IID8832 - 0x47, 0x0f, 0x49, 0x8c, 0x5a, 0xc4, 0xc9, 0xb0, 0xe0, // IID8833 - 0x47, 0x0f, 0x49, 0x94, 0xa3, 0x08, 0xba, 0xb1, 0x8f, // IID8834 - 0x47, 0x0f, 0x49, 0x9c, 0x2c, 0x9a, 0xe6, 0x07, 0x2c, // IID8835 - 0x47, 0x0f, 0x49, 0xa4, 0xf5, 0xf9, 0xf3, 0x31, 0xfd, // IID8836 - 0x47, 0x0f, 0x49, 0xac, 0x3e, 0xc9, 0xaf, 0x5e, 0x8c, // IID8837 - 0x45, 0x0f, 0x49, 0xb7, 0x76, 0xe7, 0xbd, 0x65, // IID8838 - 0xd5, 0xb4, 0x49, 0xbc, 0x88, 0x88, 0xdf, 0xb5, 0xa5, // IID8839 - 0xd5, 0xf0, 0x49, 0x84, 0x91, 0x02, 0xae, 0xec, 0xb2, // IID8840 - 0xd5, 0xf0, 0x49, 0x8c, 0x5a, 0x7b, 0x84, 0x45, 0xc9, // IID8841 - 0xd5, 0xf0, 0x49, 0x94, 0xa3, 0xca, 0x3e, 0x4b, 0x39, // IID8842 - 0xd5, 0xf0, 0x49, 0x9c, 0x6c, 0xf8, 0x8d, 0x8a, 0xc7, // IID8843 - 0xd5, 0xf0, 0x49, 0xa4, 0xb5, 0x57, 0x66, 0xd7, 0xdc, // IID8844 - 0xd5, 0xf0, 0x49, 0xac, 0x7e, 0xd4, 0x96, 0x93, 0x9b, // IID8845 - 0xd5, 0xf2, 0x49, 0xb4, 0xc7, 0x77, 0x64, 0x2c, 0x90, // IID8846 - 0xd5, 0xf3, 0x49, 0xbc, 0x88, 0x24, 0x6a, 0x39, 0x54, // IID8847 - 0xd5, 0xf7, 0x49, 0x84, 0x91, 0xfe, 0x15, 0x86, 0xe0, // IID8848 - 0xd5, 0xf7, 0x49, 0x8c, 0x1a, 0x91, 0x1a, 0xe0, 0xcc, // IID8849 - 0xd5, 0xf7, 0x49, 0x94, 0xa3, 0x82, 0x27, 0x37, 0xfd, // IID8850 - 0xd5, 0xf7, 0x49, 0x9c, 0xec, 0x15, 0x24, 0x36, 0x62, // IID8851 - 0xd5, 0xf7, 0x49, 0xa4, 0x75, 0xba, 0x61, 0xe7, 0x3a, // IID8852 - 0xd5, 0xf7, 0x49, 0xac, 0x7e, 0xa8, 0x8d, 0x0d, 0xad, // IID8853 - 0xd5, 0xd5, 0x49, 0xb4, 0x0f, 0xb9, 0xc1, 0x23, 0x94, // IID8854 - 0xd5, 0xc4, 0x49, 0xbc, 0xd1, 0x40, 0x2d, 0x0b, 0x80, // IID8855 -#endif // _LP64 - 0x0f, 0x4a, 0x8c, 0x9a, 0x92, 0x97, 0x4b, 0x80, // IID8856 -#ifdef _LP64 - 0x0f, 0x4a, 0x93, 0xcd, 0x55, 0xe1, 0x3c, // IID8857 - 0x41, 0x0f, 0x4a, 0x98, 0xdc, 0x52, 0x1f, 0x42, // IID8858 - 0x45, 0x0f, 0x4a, 0x81, 0xfe, 0xbc, 0x3f, 0xfd, // IID8859 - 0x47, 0x0f, 0x4a, 0x8c, 0x9a, 0xe8, 0x80, 0xf7, 0xef, // IID8860 - 0x47, 0x0f, 0x4a, 0x94, 0x23, 0x8c, 0xd6, 0x07, 0x74, // IID8861 - 0x47, 0x0f, 0x4a, 0x9c, 0xac, 0xa8, 0xe5, 0xa8, 0xd4, // IID8862 - 0x47, 0x0f, 0x4a, 0xa4, 0x35, 0x37, 0x8d, 0x23, 0x2e, // IID8863 - 0x47, 0x0f, 0x4a, 0xac, 0x7e, 0x76, 0xdd, 0x93, 0xeb, // IID8864 - 0xd5, 0xa5, 0x4a, 0xb4, 0x47, 0x14, 0x36, 0x59, 0xfb, // IID8865 - 0xd5, 0xb4, 0x4a, 0xbc, 0xc8, 0x88, 0xd8, 0x91, 0x71, // IID8866 - 0xd5, 0xf0, 0x4a, 0x84, 0x91, 0x43, 0x27, 0x6a, 0xaf, // IID8867 - 0xd5, 0xf0, 0x4a, 0x8c, 0x5a, 0x1f, 0x3a, 0x32, 0x50, // IID8868 - 0xd5, 0xf0, 0x4a, 0x94, 0xe3, 0x83, 0x90, 0x3b, 0xfb, // IID8869 - 0xd5, 0xf0, 0x4a, 0x9c, 0xac, 0x7f, 0x82, 0x77, 0x19, // IID8870 - 0xd5, 0xf0, 0x4a, 0xa4, 0x75, 0xeb, 0x31, 0x3f, 0x69, // IID8871 - 0xd5, 0xf0, 0x4a, 0xac, 0xfe, 0x58, 0xdc, 0x34, 0x07, // IID8872 - 0xd5, 0xf2, 0x4a, 0xb4, 0x47, 0x60, 0xed, 0xcc, 0x74, // IID8873 - 0xd5, 0xf3, 0x4a, 0xbc, 0x48, 0xc2, 0x45, 0x8b, 0xc6, // IID8874 - 0xd5, 0xf7, 0x4a, 0x84, 0x51, 0x48, 0xa1, 0xa7, 0x97, // IID8875 - 0xd5, 0xf7, 0x4a, 0x8c, 0xda, 0xa3, 0xa3, 0x7e, 0x5c, // IID8876 - 0xd5, 0xf7, 0x4a, 0x94, 0x63, 0xab, 0xf2, 0x3c, 0xe2, // IID8877 - 0xd5, 0xf7, 0x4a, 0x9c, 0x6c, 0xf1, 0xff, 0x23, 0x4d, // IID8878 - 0xd5, 0xd5, 0x4a, 0xa5, 0xad, 0x9e, 0x3b, 0x21, // IID8879 - 0xd5, 0xd5, 0x4a, 0xae, 0xaf, 0x5a, 0xaf, 0x4c, // IID8880 - 0xd5, 0xd5, 0x4a, 0xb7, 0x86, 0xf2, 0x63, 0xa5, // IID8881 - 0xd5, 0xc4, 0x4a, 0xb9, 0xe4, 0x37, 0xfe, 0x20, // IID8882 -#endif // _LP64 - 0x0f, 0x4b, 0x8c, 0xda, 0xc3, 0xf7, 0xae, 0xf6, // IID8883 -#ifdef _LP64 - 0x42, 0x0f, 0x4b, 0x94, 0x03, 0x9e, 0xd4, 0xfb, 0x9d, // IID8884 - 0x43, 0x0f, 0x4b, 0x9c, 0x88, 0x95, 0x0b, 0x52, 0x85, // IID8885 - 0x47, 0x0f, 0x4b, 0x84, 0x91, 0x98, 0xb1, 0xb4, 0xa4, // IID8886 - 0x47, 0x0f, 0x4b, 0x8c, 0xda, 0x86, 0x53, 0x58, 0x49, // IID8887 - 0x47, 0x0f, 0x4b, 0x94, 0xa3, 0x4c, 0x02, 0x01, 0x2f, // IID8888 - 0x47, 0x0f, 0x4b, 0x9c, 0x6c, 0x59, 0x3b, 0xf6, 0xbc, // IID8889 - 0x45, 0x0f, 0x4b, 0xa5, 0x3e, 0x5b, 0x24, 0x17, // IID8890 - 0x47, 0x0f, 0x4b, 0xac, 0xfe, 0x46, 0xcd, 0x7f, 0x2b, // IID8891 - 0xd5, 0xa5, 0x4b, 0xb4, 0xc7, 0x60, 0xac, 0xda, 0x81, // IID8892 - 0xd5, 0xb4, 0x4b, 0xbc, 0x88, 0x81, 0xb5, 0x9b, 0x25, // IID8893 - 0xd5, 0xf0, 0x4b, 0x84, 0xd1, 0x01, 0x8b, 0xf8, 0xe1, // IID8894 - 0xd5, 0xf0, 0x4b, 0x8c, 0x5a, 0xc0, 0x39, 0xd5, 0x88, // IID8895 - 0xd5, 0xf0, 0x4b, 0x94, 0xa3, 0xcd, 0xca, 0xf5, 0x06, // IID8896 - 0xd5, 0xd0, 0x4b, 0x9c, 0x24, 0xe0, 0x17, 0x74, 0x83, // IID8897 - 0xd5, 0xd0, 0x4b, 0xa5, 0x13, 0x53, 0xa4, 0xbd, // IID8898 - 0xd5, 0xf0, 0x4b, 0xac, 0x7e, 0xe9, 0x7a, 0x2f, 0xec, // IID8899 - 0xd5, 0xf2, 0x4b, 0xb4, 0xc7, 0x6f, 0x66, 0x5b, 0x5b, // IID8900 - 0xd5, 0xf3, 0x4b, 0xbc, 0x08, 0x0e, 0x80, 0x31, 0x0a, // IID8901 - 0xd5, 0xf7, 0x4b, 0x84, 0x51, 0x92, 0x2c, 0xbc, 0x45, // IID8902 - 0xd5, 0xf7, 0x4b, 0x8c, 0x9a, 0x16, 0x2e, 0x80, 0xfb, // IID8903 - 0xd5, 0xf7, 0x4b, 0x94, 0x63, 0xc2, 0x14, 0x06, 0x5b, // IID8904 - 0xd5, 0xd5, 0x4b, 0x9c, 0x24, 0xdf, 0xe7, 0xef, 0xef, // IID8905 - 0xd5, 0xf7, 0x4b, 0xa4, 0xb5, 0xff, 0xfe, 0x4f, 0x81, // IID8906 - 0xd5, 0xf7, 0x4b, 0xac, 0xfe, 0xf0, 0xf5, 0x71, 0x38, // IID8907 - 0xd5, 0xd5, 0x4b, 0xb7, 0x29, 0x37, 0x18, 0x3d, // IID8908 - 0xd5, 0xc4, 0x4b, 0xbc, 0x11, 0x29, 0xc7, 0x2d, 0x33, // IID8909 -#endif // _LP64 - 0x0f, 0x4c, 0x8c, 0x9a, 0xf4, 0x43, 0xfd, 0x98, // IID8910 -#ifdef _LP64 - 0x42, 0x0f, 0x4c, 0x94, 0x83, 0x6c, 0xe7, 0xed, 0xd9, // IID8911 - 0x41, 0x0f, 0x4c, 0x98, 0x7d, 0x4b, 0x49, 0x96, // IID8912 - 0x47, 0x0f, 0x4c, 0x84, 0x91, 0x25, 0x92, 0x74, 0x8b, // IID8913 - 0x47, 0x0f, 0x4c, 0x8c, 0x1a, 0xa7, 0x9c, 0x77, 0xdf, // IID8914 - 0x47, 0x0f, 0x4c, 0x94, 0xa3, 0xe3, 0xb4, 0xd9, 0x61, // IID8915 - 0x45, 0x0f, 0x4c, 0x9c, 0x24, 0x1e, 0xe3, 0x75, 0xc5, // IID8916 - 0x47, 0x0f, 0x4c, 0xa4, 0xb5, 0xea, 0x45, 0xa4, 0x51, // IID8917 - 0x47, 0x0f, 0x4c, 0xac, 0xfe, 0x36, 0x81, 0x19, 0x0d, // IID8918 - 0xd5, 0xa5, 0x4c, 0xb4, 0x47, 0x4b, 0x03, 0x70, 0xc5, // IID8919 - 0xd5, 0xb4, 0x4c, 0xbc, 0x08, 0xcc, 0xc2, 0x99, 0x9e, // IID8920 - 0xd5, 0xf0, 0x4c, 0x84, 0xd1, 0x91, 0xf5, 0x52, 0x57, // IID8921 - 0xd5, 0xf0, 0x4c, 0x8c, 0x5a, 0x67, 0xc1, 0xbd, 0x80, // IID8922 - 0xd5, 0xf0, 0x4c, 0x94, 0xa3, 0x85, 0x24, 0x9b, 0xae, // IID8923 - 0xd5, 0xf0, 0x4c, 0x9c, 0x2c, 0x77, 0xf1, 0x7c, 0x08, // IID8924 - 0xd5, 0xd0, 0x4c, 0xa5, 0x2d, 0x0f, 0x7c, 0x86, // IID8925 - 0xd5, 0xf0, 0x4c, 0xac, 0x7e, 0x96, 0x47, 0xa7, 0xb6, // IID8926 - 0xd5, 0xf2, 0x4c, 0xb4, 0x87, 0x70, 0x0d, 0x19, 0xb8, // IID8927 - 0xd5, 0xf3, 0x4c, 0xbc, 0xc8, 0xce, 0x12, 0x84, 0x1d, // IID8928 - 0xd5, 0xd5, 0x4c, 0x81, 0x09, 0x2b, 0x2c, 0x87, // IID8929 - 0xd5, 0xf7, 0x4c, 0x8c, 0x1a, 0xf6, 0xd1, 0x4c, 0x86, // IID8930 - 0xd5, 0xf7, 0x4c, 0x94, 0x23, 0xa7, 0xdc, 0x80, 0x3b, // IID8931 - 0xd5, 0xd5, 0x4c, 0x9c, 0x24, 0x84, 0x81, 0x54, 0x73, // IID8932 - 0xd5, 0xf7, 0x4c, 0xa4, 0xf5, 0xc7, 0x79, 0x4f, 0x91, // IID8933 - 0xd5, 0xf7, 0x4c, 0xac, 0x7e, 0xa0, 0x49, 0xc7, 0x14, // IID8934 - 0xd5, 0xd5, 0x4c, 0xb4, 0x0f, 0xaf, 0xf4, 0x54, 0x4e, // IID8935 - 0xd5, 0xc4, 0x4c, 0xbc, 0x11, 0x91, 0xc5, 0xd2, 0xdf, // IID8936 -#endif // _LP64 - 0x0f, 0x4d, 0x8c, 0x5a, 0xb4, 0x17, 0x2d, 0x0e, // IID8937 -#ifdef _LP64 - 0x42, 0x0f, 0x4d, 0x94, 0x83, 0xe7, 0xca, 0xf5, 0x1d, // IID8938 - 0x43, 0x0f, 0x4d, 0x9c, 0x88, 0x26, 0x4d, 0x93, 0x70, // IID8939 - 0x47, 0x0f, 0x4d, 0x84, 0xd1, 0x08, 0x71, 0x89, 0x02, // IID8940 - 0x47, 0x0f, 0x4d, 0x8c, 0x1a, 0x10, 0xc3, 0x11, 0x16, // IID8941 - 0x47, 0x0f, 0x4d, 0x94, 0xa3, 0xe5, 0x99, 0x5f, 0xb4, // IID8942 - 0x45, 0x0f, 0x4d, 0x9c, 0x24, 0x5e, 0xf1, 0x23, 0x4c, // IID8943 - 0x47, 0x0f, 0x4d, 0xa4, 0x75, 0x93, 0x7e, 0x91, 0x0f, // IID8944 - 0x47, 0x0f, 0x4d, 0xac, 0xbe, 0x07, 0x42, 0x73, 0x11, // IID8945 - 0xd5, 0xa5, 0x4d, 0xb4, 0xc7, 0x86, 0x42, 0x00, 0x8f, // IID8946 - 0xd5, 0x94, 0x4d, 0xb8, 0x0a, 0xad, 0x92, 0x2f, // IID8947 - 0xd5, 0xf0, 0x4d, 0x84, 0x91, 0xf5, 0xa0, 0x06, 0xf5, // IID8948 - 0xd5, 0xf0, 0x4d, 0x8c, 0xda, 0x8b, 0x6f, 0x1f, 0x86, // IID8949 - 0xd5, 0xd0, 0x4d, 0x93, 0x91, 0x18, 0xe6, 0x20, // IID8950 - 0xd5, 0xf0, 0x4d, 0x9c, 0xec, 0x1f, 0xa2, 0xca, 0xb3, // IID8951 - 0xd5, 0xf0, 0x4d, 0xa4, 0x75, 0x1c, 0x55, 0x4d, 0x66, // IID8952 - 0xd5, 0xf0, 0x4d, 0xac, 0x7e, 0x7c, 0xc1, 0x3a, 0x4f, // IID8953 - 0xd5, 0xf2, 0x4d, 0xb4, 0x47, 0x10, 0xec, 0x31, 0x99, // IID8954 - 0xd5, 0xd1, 0x4d, 0xb8, 0x83, 0xd2, 0xb2, 0x76, // IID8955 - 0xd5, 0xf7, 0x4d, 0x84, 0x11, 0x66, 0x49, 0xb4, 0x81, // IID8956 - 0xd5, 0xf7, 0x4d, 0x8c, 0xda, 0xb4, 0x37, 0x88, 0x46, // IID8957 - 0xd5, 0xf7, 0x4d, 0x94, 0x23, 0xf1, 0x18, 0xde, 0xf7, // IID8958 - 0xd5, 0xf7, 0x4d, 0x9c, 0xac, 0x62, 0x90, 0x87, 0xa5, // IID8959 - 0xd5, 0xf7, 0x4d, 0xa4, 0xf5, 0x04, 0xfa, 0x8b, 0x9c, // IID8960 - 0xd5, 0xf7, 0x4d, 0xac, 0xbe, 0xa5, 0xf3, 0xb4, 0x7a, // IID8961 - 0xd5, 0xd5, 0x4d, 0xb4, 0xcf, 0x33, 0xb8, 0xcd, 0x01, // IID8962 - 0xd5, 0xc4, 0x4d, 0xbc, 0x11, 0x9a, 0xb1, 0xb2, 0x41, // IID8963 -#endif // _LP64 - 0x0f, 0x4e, 0x8a, 0x5f, 0xad, 0x1a, 0xcf, // IID8964 -#ifdef _LP64 - 0x42, 0x0f, 0x4e, 0x94, 0x83, 0x6c, 0x92, 0x74, 0xf0, // IID8965 - 0x41, 0x0f, 0x4e, 0x98, 0x4c, 0x93, 0x0b, 0x00, // IID8966 - 0x47, 0x0f, 0x4e, 0x84, 0x11, 0xa5, 0x72, 0x66, 0x54, // IID8967 - 0x47, 0x0f, 0x4e, 0x8c, 0x1a, 0x89, 0x6f, 0x8e, 0x7c, // IID8968 - 0x47, 0x0f, 0x4e, 0x94, 0x23, 0x56, 0x20, 0x01, 0x98, // IID8969 - 0x47, 0x0f, 0x4e, 0x9c, 0xac, 0xb6, 0xea, 0xea, 0xaa, // IID8970 - 0x47, 0x0f, 0x4e, 0xa4, 0xf5, 0x08, 0x86, 0x6a, 0x10, // IID8971 - 0x47, 0x0f, 0x4e, 0xac, 0xfe, 0xf5, 0x41, 0x46, 0x0c, // IID8972 - 0x45, 0x0f, 0x4e, 0xb7, 0x1b, 0x84, 0xf1, 0x9d, // IID8973 - 0xd5, 0xb4, 0x4e, 0xbc, 0x08, 0xec, 0x2f, 0xff, 0x43, // IID8974 - 0xd5, 0xf0, 0x4e, 0x84, 0x11, 0x14, 0x36, 0xe7, 0x02, // IID8975 - 0xd5, 0xf0, 0x4e, 0x8c, 0x5a, 0x75, 0x87, 0xff, 0xec, // IID8976 - 0xd5, 0xd0, 0x4e, 0x93, 0x75, 0x80, 0x01, 0x8a, // IID8977 - 0xd5, 0xf0, 0x4e, 0x9c, 0x2c, 0xca, 0x50, 0x53, 0x80, // IID8978 - 0xd5, 0xf0, 0x4e, 0xa4, 0xf5, 0x8f, 0xe5, 0xab, 0xd8, // IID8979 - 0xd5, 0xf0, 0x4e, 0xac, 0xbe, 0x12, 0x84, 0xce, 0x95, // IID8980 - 0xd5, 0xf2, 0x4e, 0xb4, 0x47, 0x75, 0xb2, 0x0d, 0x16, // IID8981 - 0xd5, 0xf3, 0x4e, 0xbc, 0x88, 0xa3, 0x0e, 0xc5, 0x50, // IID8982 - 0xd5, 0xf7, 0x4e, 0x84, 0x51, 0x47, 0x76, 0x98, 0x84, // IID8983 - 0xd5, 0xf7, 0x4e, 0x8c, 0x1a, 0x7a, 0x96, 0xb3, 0x1b, // IID8984 - 0xd5, 0xf7, 0x4e, 0x94, 0x63, 0xf8, 0x54, 0x92, 0xa5, // IID8985 - 0xd5, 0xf7, 0x4e, 0x9c, 0x6c, 0x8b, 0x1e, 0x82, 0xa3, // IID8986 - 0xd5, 0xf7, 0x4e, 0xa4, 0xf5, 0x9d, 0x96, 0x3c, 0xa4, // IID8987 - 0xd5, 0xf7, 0x4e, 0xac, 0xfe, 0x27, 0xa7, 0x5d, 0xbc, // IID8988 - 0xd5, 0xd5, 0x4e, 0xb7, 0xf4, 0x33, 0x23, 0x30, // IID8989 - 0xd5, 0xc4, 0x4e, 0xbc, 0xd1, 0x63, 0x32, 0x3b, 0xfc, // IID8990 -#endif // _LP64 - 0x0f, 0x4f, 0x8c, 0x9a, 0x48, 0x2f, 0xaf, 0xa7, // IID8991 -#ifdef _LP64 - 0x42, 0x0f, 0x4f, 0x94, 0x43, 0xa2, 0x7d, 0xd6, 0x45, // IID8992 - 0x43, 0x0f, 0x4f, 0x9c, 0xc8, 0xc6, 0x1a, 0x03, 0xe0, // IID8993 - 0x47, 0x0f, 0x4f, 0x84, 0xd1, 0x1d, 0x5c, 0x48, 0xdb, // IID8994 - 0x47, 0x0f, 0x4f, 0x8c, 0xda, 0xbf, 0xde, 0x9c, 0x2e, // IID8995 - 0x47, 0x0f, 0x4f, 0x94, 0x23, 0x68, 0x47, 0x8f, 0x27, // IID8996 - 0x47, 0x0f, 0x4f, 0x9c, 0x6c, 0x73, 0xa8, 0x3e, 0x34, // IID8997 - 0x47, 0x0f, 0x4f, 0xa4, 0xf5, 0x22, 0xc7, 0x87, 0xf3, // IID8998 - 0x47, 0x0f, 0x4f, 0xac, 0x3e, 0xb8, 0x81, 0x51, 0xb3, // IID8999 - 0xd5, 0xa5, 0x4f, 0xb4, 0x47, 0x26, 0x57, 0xd2, 0x6e, // IID9000 - 0xd5, 0xb4, 0x4f, 0xbc, 0x48, 0x12, 0x34, 0xe9, 0x1b, // IID9001 - 0xd5, 0xf0, 0x4f, 0x84, 0xd1, 0xb2, 0xe4, 0x83, 0x8b, // IID9002 - 0xd5, 0xf0, 0x4f, 0x8c, 0x9a, 0x0c, 0xe0, 0x33, 0x71, // IID9003 - 0xd5, 0xf0, 0x4f, 0x94, 0xa3, 0xe4, 0xd1, 0x53, 0xc5, // IID9004 - 0xd5, 0xf0, 0x4f, 0x9c, 0x2c, 0x49, 0xa7, 0x91, 0xe7, // IID9005 - 0xd5, 0xf0, 0x4f, 0xa4, 0x35, 0x3c, 0xce, 0x0f, 0xec, // IID9006 - 0xd5, 0xf0, 0x4f, 0xac, 0x7e, 0xb2, 0x2b, 0x94, 0xf8, // IID9007 - 0xd5, 0xf2, 0x4f, 0xb4, 0x47, 0xe5, 0xc1, 0x50, 0x7f, // IID9008 - 0xd5, 0xf3, 0x4f, 0xbc, 0x88, 0x21, 0x56, 0x0f, 0xff, // IID9009 - 0xd5, 0xd5, 0x4f, 0x81, 0xb4, 0x08, 0xb6, 0xed, // IID9010 - 0xd5, 0xd5, 0x4f, 0x8a, 0xa1, 0x1c, 0x37, 0x6c, // IID9011 - 0xd5, 0xf7, 0x4f, 0x94, 0x63, 0x14, 0x4d, 0x37, 0xbd, // IID9012 - 0xd5, 0xf7, 0x4f, 0x9c, 0xec, 0x48, 0x78, 0x36, 0x54, // IID9013 - 0xd5, 0xf7, 0x4f, 0xa4, 0xf5, 0x9b, 0x73, 0xe8, 0x77, // IID9014 - 0xd5, 0xd5, 0x4f, 0xae, 0xdd, 0x14, 0x79, 0xa6, // IID9015 - 0xd5, 0xd5, 0x4f, 0xb7, 0xc7, 0xb0, 0xe1, 0x56, // IID9016 - 0xd5, 0xc4, 0x4f, 0xbc, 0x91, 0x77, 0x96, 0x7c, 0x76, // IID9017 -#endif // _LP64 - 0x0f, 0x90, 0xc1, // IID9018 - 0x0f, 0x90, 0xc2, // IID9019 - 0x0f, 0x90, 0xc3, // IID9020 -#ifdef _LP64 - 0x41, 0x0f, 0x90, 0xc0, // IID9021 - 0x41, 0x0f, 0x90, 0xc1, // IID9022 - 0x41, 0x0f, 0x90, 0xc2, // IID9023 - 0x41, 0x0f, 0x90, 0xc3, // IID9024 - 0x41, 0x0f, 0x90, 0xc4, // IID9025 - 0x41, 0x0f, 0x90, 0xc5, // IID9026 - 0x41, 0x0f, 0x90, 0xc6, // IID9027 - 0x41, 0x0f, 0x90, 0xc7, // IID9028 - 0xd5, 0x90, 0x90, 0xc0, // IID9029 - 0xd5, 0x90, 0x90, 0xc1, // IID9030 - 0xd5, 0x90, 0x90, 0xc2, // IID9031 - 0xd5, 0x90, 0x90, 0xc3, // IID9032 - 0xd5, 0x90, 0x90, 0xc4, // IID9033 - 0xd5, 0x90, 0x90, 0xc5, // IID9034 - 0xd5, 0x90, 0x90, 0xc6, // IID9035 - 0xd5, 0x90, 0x90, 0xc7, // IID9036 - 0xd5, 0x91, 0x90, 0xc0, // IID9037 - 0xd5, 0x91, 0x90, 0xc1, // IID9038 - 0xd5, 0x91, 0x90, 0xc2, // IID9039 - 0xd5, 0x91, 0x90, 0xc3, // IID9040 - 0xd5, 0x91, 0x90, 0xc4, // IID9041 - 0xd5, 0x91, 0x90, 0xc5, // IID9042 - 0xd5, 0x91, 0x90, 0xc6, // IID9043 - 0xd5, 0x91, 0x90, 0xc7, // IID9044 -#endif // _LP64 - 0x0f, 0x91, 0xc1, // IID9045 - 0x0f, 0x91, 0xc2, // IID9046 - 0x0f, 0x91, 0xc3, // IID9047 -#ifdef _LP64 - 0x41, 0x0f, 0x91, 0xc0, // IID9048 - 0x41, 0x0f, 0x91, 0xc1, // IID9049 - 0x41, 0x0f, 0x91, 0xc2, // IID9050 - 0x41, 0x0f, 0x91, 0xc3, // IID9051 - 0x41, 0x0f, 0x91, 0xc4, // IID9052 - 0x41, 0x0f, 0x91, 0xc5, // IID9053 - 0x41, 0x0f, 0x91, 0xc6, // IID9054 - 0x41, 0x0f, 0x91, 0xc7, // IID9055 - 0xd5, 0x90, 0x91, 0xc0, // IID9056 - 0xd5, 0x90, 0x91, 0xc1, // IID9057 - 0xd5, 0x90, 0x91, 0xc2, // IID9058 - 0xd5, 0x90, 0x91, 0xc3, // IID9059 - 0xd5, 0x90, 0x91, 0xc4, // IID9060 - 0xd5, 0x90, 0x91, 0xc5, // IID9061 - 0xd5, 0x90, 0x91, 0xc6, // IID9062 - 0xd5, 0x90, 0x91, 0xc7, // IID9063 - 0xd5, 0x91, 0x91, 0xc0, // IID9064 - 0xd5, 0x91, 0x91, 0xc1, // IID9065 - 0xd5, 0x91, 0x91, 0xc2, // IID9066 - 0xd5, 0x91, 0x91, 0xc3, // IID9067 - 0xd5, 0x91, 0x91, 0xc4, // IID9068 - 0xd5, 0x91, 0x91, 0xc5, // IID9069 - 0xd5, 0x91, 0x91, 0xc6, // IID9070 - 0xd5, 0x91, 0x91, 0xc7, // IID9071 -#endif // _LP64 - 0x0f, 0x92, 0xc1, // IID9072 - 0x0f, 0x92, 0xc2, // IID9073 - 0x0f, 0x92, 0xc3, // IID9074 -#ifdef _LP64 - 0x41, 0x0f, 0x92, 0xc0, // IID9075 - 0x41, 0x0f, 0x92, 0xc1, // IID9076 - 0x41, 0x0f, 0x92, 0xc2, // IID9077 - 0x41, 0x0f, 0x92, 0xc3, // IID9078 - 0x41, 0x0f, 0x92, 0xc4, // IID9079 - 0x41, 0x0f, 0x92, 0xc5, // IID9080 - 0x41, 0x0f, 0x92, 0xc6, // IID9081 - 0x41, 0x0f, 0x92, 0xc7, // IID9082 - 0xd5, 0x90, 0x92, 0xc0, // IID9083 - 0xd5, 0x90, 0x92, 0xc1, // IID9084 - 0xd5, 0x90, 0x92, 0xc2, // IID9085 - 0xd5, 0x90, 0x92, 0xc3, // IID9086 - 0xd5, 0x90, 0x92, 0xc4, // IID9087 - 0xd5, 0x90, 0x92, 0xc5, // IID9088 - 0xd5, 0x90, 0x92, 0xc6, // IID9089 - 0xd5, 0x90, 0x92, 0xc7, // IID9090 - 0xd5, 0x91, 0x92, 0xc0, // IID9091 - 0xd5, 0x91, 0x92, 0xc1, // IID9092 - 0xd5, 0x91, 0x92, 0xc2, // IID9093 - 0xd5, 0x91, 0x92, 0xc3, // IID9094 - 0xd5, 0x91, 0x92, 0xc4, // IID9095 - 0xd5, 0x91, 0x92, 0xc5, // IID9096 - 0xd5, 0x91, 0x92, 0xc6, // IID9097 - 0xd5, 0x91, 0x92, 0xc7, // IID9098 -#endif // _LP64 - 0x0f, 0x93, 0xc1, // IID9099 - 0x0f, 0x93, 0xc2, // IID9100 - 0x0f, 0x93, 0xc3, // IID9101 -#ifdef _LP64 - 0x41, 0x0f, 0x93, 0xc0, // IID9102 - 0x41, 0x0f, 0x93, 0xc1, // IID9103 - 0x41, 0x0f, 0x93, 0xc2, // IID9104 - 0x41, 0x0f, 0x93, 0xc3, // IID9105 - 0x41, 0x0f, 0x93, 0xc4, // IID9106 - 0x41, 0x0f, 0x93, 0xc5, // IID9107 - 0x41, 0x0f, 0x93, 0xc6, // IID9108 - 0x41, 0x0f, 0x93, 0xc7, // IID9109 - 0xd5, 0x90, 0x93, 0xc0, // IID9110 - 0xd5, 0x90, 0x93, 0xc1, // IID9111 - 0xd5, 0x90, 0x93, 0xc2, // IID9112 - 0xd5, 0x90, 0x93, 0xc3, // IID9113 - 0xd5, 0x90, 0x93, 0xc4, // IID9114 - 0xd5, 0x90, 0x93, 0xc5, // IID9115 - 0xd5, 0x90, 0x93, 0xc6, // IID9116 - 0xd5, 0x90, 0x93, 0xc7, // IID9117 - 0xd5, 0x91, 0x93, 0xc0, // IID9118 - 0xd5, 0x91, 0x93, 0xc1, // IID9119 - 0xd5, 0x91, 0x93, 0xc2, // IID9120 - 0xd5, 0x91, 0x93, 0xc3, // IID9121 - 0xd5, 0x91, 0x93, 0xc4, // IID9122 - 0xd5, 0x91, 0x93, 0xc5, // IID9123 - 0xd5, 0x91, 0x93, 0xc6, // IID9124 - 0xd5, 0x91, 0x93, 0xc7, // IID9125 -#endif // _LP64 - 0x0f, 0x94, 0xc1, // IID9126 - 0x0f, 0x94, 0xc2, // IID9127 - 0x0f, 0x94, 0xc3, // IID9128 -#ifdef _LP64 - 0x41, 0x0f, 0x94, 0xc0, // IID9129 - 0x41, 0x0f, 0x94, 0xc1, // IID9130 - 0x41, 0x0f, 0x94, 0xc2, // IID9131 - 0x41, 0x0f, 0x94, 0xc3, // IID9132 - 0x41, 0x0f, 0x94, 0xc4, // IID9133 - 0x41, 0x0f, 0x94, 0xc5, // IID9134 - 0x41, 0x0f, 0x94, 0xc6, // IID9135 - 0x41, 0x0f, 0x94, 0xc7, // IID9136 - 0xd5, 0x90, 0x94, 0xc0, // IID9137 - 0xd5, 0x90, 0x94, 0xc1, // IID9138 - 0xd5, 0x90, 0x94, 0xc2, // IID9139 - 0xd5, 0x90, 0x94, 0xc3, // IID9140 - 0xd5, 0x90, 0x94, 0xc4, // IID9141 - 0xd5, 0x90, 0x94, 0xc5, // IID9142 - 0xd5, 0x90, 0x94, 0xc6, // IID9143 - 0xd5, 0x90, 0x94, 0xc7, // IID9144 - 0xd5, 0x91, 0x94, 0xc0, // IID9145 - 0xd5, 0x91, 0x94, 0xc1, // IID9146 - 0xd5, 0x91, 0x94, 0xc2, // IID9147 - 0xd5, 0x91, 0x94, 0xc3, // IID9148 - 0xd5, 0x91, 0x94, 0xc4, // IID9149 - 0xd5, 0x91, 0x94, 0xc5, // IID9150 - 0xd5, 0x91, 0x94, 0xc6, // IID9151 - 0xd5, 0x91, 0x94, 0xc7, // IID9152 -#endif // _LP64 - 0x0f, 0x95, 0xc1, // IID9153 - 0x0f, 0x95, 0xc2, // IID9154 - 0x0f, 0x95, 0xc3, // IID9155 -#ifdef _LP64 - 0x41, 0x0f, 0x95, 0xc0, // IID9156 - 0x41, 0x0f, 0x95, 0xc1, // IID9157 - 0x41, 0x0f, 0x95, 0xc2, // IID9158 - 0x41, 0x0f, 0x95, 0xc3, // IID9159 - 0x41, 0x0f, 0x95, 0xc4, // IID9160 - 0x41, 0x0f, 0x95, 0xc5, // IID9161 - 0x41, 0x0f, 0x95, 0xc6, // IID9162 - 0x41, 0x0f, 0x95, 0xc7, // IID9163 - 0xd5, 0x90, 0x95, 0xc0, // IID9164 - 0xd5, 0x90, 0x95, 0xc1, // IID9165 - 0xd5, 0x90, 0x95, 0xc2, // IID9166 - 0xd5, 0x90, 0x95, 0xc3, // IID9167 - 0xd5, 0x90, 0x95, 0xc4, // IID9168 - 0xd5, 0x90, 0x95, 0xc5, // IID9169 - 0xd5, 0x90, 0x95, 0xc6, // IID9170 - 0xd5, 0x90, 0x95, 0xc7, // IID9171 - 0xd5, 0x91, 0x95, 0xc0, // IID9172 - 0xd5, 0x91, 0x95, 0xc1, // IID9173 - 0xd5, 0x91, 0x95, 0xc2, // IID9174 - 0xd5, 0x91, 0x95, 0xc3, // IID9175 - 0xd5, 0x91, 0x95, 0xc4, // IID9176 - 0xd5, 0x91, 0x95, 0xc5, // IID9177 - 0xd5, 0x91, 0x95, 0xc6, // IID9178 - 0xd5, 0x91, 0x95, 0xc7, // IID9179 -#endif // _LP64 - 0x0f, 0x96, 0xc1, // IID9180 - 0x0f, 0x96, 0xc2, // IID9181 - 0x0f, 0x96, 0xc3, // IID9182 -#ifdef _LP64 - 0x41, 0x0f, 0x96, 0xc0, // IID9183 - 0x41, 0x0f, 0x96, 0xc1, // IID9184 - 0x41, 0x0f, 0x96, 0xc2, // IID9185 - 0x41, 0x0f, 0x96, 0xc3, // IID9186 - 0x41, 0x0f, 0x96, 0xc4, // IID9187 - 0x41, 0x0f, 0x96, 0xc5, // IID9188 - 0x41, 0x0f, 0x96, 0xc6, // IID9189 - 0x41, 0x0f, 0x96, 0xc7, // IID9190 - 0xd5, 0x90, 0x96, 0xc0, // IID9191 - 0xd5, 0x90, 0x96, 0xc1, // IID9192 - 0xd5, 0x90, 0x96, 0xc2, // IID9193 - 0xd5, 0x90, 0x96, 0xc3, // IID9194 - 0xd5, 0x90, 0x96, 0xc4, // IID9195 - 0xd5, 0x90, 0x96, 0xc5, // IID9196 - 0xd5, 0x90, 0x96, 0xc6, // IID9197 - 0xd5, 0x90, 0x96, 0xc7, // IID9198 - 0xd5, 0x91, 0x96, 0xc0, // IID9199 - 0xd5, 0x91, 0x96, 0xc1, // IID9200 - 0xd5, 0x91, 0x96, 0xc2, // IID9201 - 0xd5, 0x91, 0x96, 0xc3, // IID9202 - 0xd5, 0x91, 0x96, 0xc4, // IID9203 - 0xd5, 0x91, 0x96, 0xc5, // IID9204 - 0xd5, 0x91, 0x96, 0xc6, // IID9205 - 0xd5, 0x91, 0x96, 0xc7, // IID9206 -#endif // _LP64 - 0x0f, 0x97, 0xc1, // IID9207 - 0x0f, 0x97, 0xc2, // IID9208 - 0x0f, 0x97, 0xc3, // IID9209 -#ifdef _LP64 - 0x41, 0x0f, 0x97, 0xc0, // IID9210 - 0x41, 0x0f, 0x97, 0xc1, // IID9211 - 0x41, 0x0f, 0x97, 0xc2, // IID9212 - 0x41, 0x0f, 0x97, 0xc3, // IID9213 - 0x41, 0x0f, 0x97, 0xc4, // IID9214 - 0x41, 0x0f, 0x97, 0xc5, // IID9215 - 0x41, 0x0f, 0x97, 0xc6, // IID9216 - 0x41, 0x0f, 0x97, 0xc7, // IID9217 - 0xd5, 0x90, 0x97, 0xc0, // IID9218 - 0xd5, 0x90, 0x97, 0xc1, // IID9219 - 0xd5, 0x90, 0x97, 0xc2, // IID9220 - 0xd5, 0x90, 0x97, 0xc3, // IID9221 - 0xd5, 0x90, 0x97, 0xc4, // IID9222 - 0xd5, 0x90, 0x97, 0xc5, // IID9223 - 0xd5, 0x90, 0x97, 0xc6, // IID9224 - 0xd5, 0x90, 0x97, 0xc7, // IID9225 - 0xd5, 0x91, 0x97, 0xc0, // IID9226 - 0xd5, 0x91, 0x97, 0xc1, // IID9227 - 0xd5, 0x91, 0x97, 0xc2, // IID9228 - 0xd5, 0x91, 0x97, 0xc3, // IID9229 - 0xd5, 0x91, 0x97, 0xc4, // IID9230 - 0xd5, 0x91, 0x97, 0xc5, // IID9231 - 0xd5, 0x91, 0x97, 0xc6, // IID9232 - 0xd5, 0x91, 0x97, 0xc7, // IID9233 -#endif // _LP64 - 0x0f, 0x98, 0xc1, // IID9234 - 0x0f, 0x98, 0xc2, // IID9235 - 0x0f, 0x98, 0xc3, // IID9236 -#ifdef _LP64 - 0x41, 0x0f, 0x98, 0xc0, // IID9237 - 0x41, 0x0f, 0x98, 0xc1, // IID9238 - 0x41, 0x0f, 0x98, 0xc2, // IID9239 - 0x41, 0x0f, 0x98, 0xc3, // IID9240 - 0x41, 0x0f, 0x98, 0xc4, // IID9241 - 0x41, 0x0f, 0x98, 0xc5, // IID9242 - 0x41, 0x0f, 0x98, 0xc6, // IID9243 - 0x41, 0x0f, 0x98, 0xc7, // IID9244 - 0xd5, 0x90, 0x98, 0xc0, // IID9245 - 0xd5, 0x90, 0x98, 0xc1, // IID9246 - 0xd5, 0x90, 0x98, 0xc2, // IID9247 - 0xd5, 0x90, 0x98, 0xc3, // IID9248 - 0xd5, 0x90, 0x98, 0xc4, // IID9249 - 0xd5, 0x90, 0x98, 0xc5, // IID9250 - 0xd5, 0x90, 0x98, 0xc6, // IID9251 - 0xd5, 0x90, 0x98, 0xc7, // IID9252 - 0xd5, 0x91, 0x98, 0xc0, // IID9253 - 0xd5, 0x91, 0x98, 0xc1, // IID9254 - 0xd5, 0x91, 0x98, 0xc2, // IID9255 - 0xd5, 0x91, 0x98, 0xc3, // IID9256 - 0xd5, 0x91, 0x98, 0xc4, // IID9257 - 0xd5, 0x91, 0x98, 0xc5, // IID9258 - 0xd5, 0x91, 0x98, 0xc6, // IID9259 - 0xd5, 0x91, 0x98, 0xc7, // IID9260 -#endif // _LP64 - 0x0f, 0x99, 0xc1, // IID9261 - 0x0f, 0x99, 0xc2, // IID9262 - 0x0f, 0x99, 0xc3, // IID9263 -#ifdef _LP64 - 0x41, 0x0f, 0x99, 0xc0, // IID9264 - 0x41, 0x0f, 0x99, 0xc1, // IID9265 - 0x41, 0x0f, 0x99, 0xc2, // IID9266 - 0x41, 0x0f, 0x99, 0xc3, // IID9267 - 0x41, 0x0f, 0x99, 0xc4, // IID9268 - 0x41, 0x0f, 0x99, 0xc5, // IID9269 - 0x41, 0x0f, 0x99, 0xc6, // IID9270 - 0x41, 0x0f, 0x99, 0xc7, // IID9271 - 0xd5, 0x90, 0x99, 0xc0, // IID9272 - 0xd5, 0x90, 0x99, 0xc1, // IID9273 - 0xd5, 0x90, 0x99, 0xc2, // IID9274 - 0xd5, 0x90, 0x99, 0xc3, // IID9275 - 0xd5, 0x90, 0x99, 0xc4, // IID9276 - 0xd5, 0x90, 0x99, 0xc5, // IID9277 - 0xd5, 0x90, 0x99, 0xc6, // IID9278 - 0xd5, 0x90, 0x99, 0xc7, // IID9279 - 0xd5, 0x91, 0x99, 0xc0, // IID9280 - 0xd5, 0x91, 0x99, 0xc1, // IID9281 - 0xd5, 0x91, 0x99, 0xc2, // IID9282 - 0xd5, 0x91, 0x99, 0xc3, // IID9283 - 0xd5, 0x91, 0x99, 0xc4, // IID9284 - 0xd5, 0x91, 0x99, 0xc5, // IID9285 - 0xd5, 0x91, 0x99, 0xc6, // IID9286 - 0xd5, 0x91, 0x99, 0xc7, // IID9287 -#endif // _LP64 - 0x0f, 0x9a, 0xc1, // IID9288 - 0x0f, 0x9a, 0xc2, // IID9289 - 0x0f, 0x9a, 0xc3, // IID9290 -#ifdef _LP64 - 0x41, 0x0f, 0x9a, 0xc0, // IID9291 - 0x41, 0x0f, 0x9a, 0xc1, // IID9292 - 0x41, 0x0f, 0x9a, 0xc2, // IID9293 - 0x41, 0x0f, 0x9a, 0xc3, // IID9294 - 0x41, 0x0f, 0x9a, 0xc4, // IID9295 - 0x41, 0x0f, 0x9a, 0xc5, // IID9296 - 0x41, 0x0f, 0x9a, 0xc6, // IID9297 - 0x41, 0x0f, 0x9a, 0xc7, // IID9298 - 0xd5, 0x90, 0x9a, 0xc0, // IID9299 - 0xd5, 0x90, 0x9a, 0xc1, // IID9300 - 0xd5, 0x90, 0x9a, 0xc2, // IID9301 - 0xd5, 0x90, 0x9a, 0xc3, // IID9302 - 0xd5, 0x90, 0x9a, 0xc4, // IID9303 - 0xd5, 0x90, 0x9a, 0xc5, // IID9304 - 0xd5, 0x90, 0x9a, 0xc6, // IID9305 - 0xd5, 0x90, 0x9a, 0xc7, // IID9306 - 0xd5, 0x91, 0x9a, 0xc0, // IID9307 - 0xd5, 0x91, 0x9a, 0xc1, // IID9308 - 0xd5, 0x91, 0x9a, 0xc2, // IID9309 - 0xd5, 0x91, 0x9a, 0xc3, // IID9310 - 0xd5, 0x91, 0x9a, 0xc4, // IID9311 - 0xd5, 0x91, 0x9a, 0xc5, // IID9312 - 0xd5, 0x91, 0x9a, 0xc6, // IID9313 - 0xd5, 0x91, 0x9a, 0xc7, // IID9314 -#endif // _LP64 - 0x0f, 0x9b, 0xc1, // IID9315 - 0x0f, 0x9b, 0xc2, // IID9316 - 0x0f, 0x9b, 0xc3, // IID9317 -#ifdef _LP64 - 0x41, 0x0f, 0x9b, 0xc0, // IID9318 - 0x41, 0x0f, 0x9b, 0xc1, // IID9319 - 0x41, 0x0f, 0x9b, 0xc2, // IID9320 - 0x41, 0x0f, 0x9b, 0xc3, // IID9321 - 0x41, 0x0f, 0x9b, 0xc4, // IID9322 - 0x41, 0x0f, 0x9b, 0xc5, // IID9323 - 0x41, 0x0f, 0x9b, 0xc6, // IID9324 - 0x41, 0x0f, 0x9b, 0xc7, // IID9325 - 0xd5, 0x90, 0x9b, 0xc0, // IID9326 - 0xd5, 0x90, 0x9b, 0xc1, // IID9327 - 0xd5, 0x90, 0x9b, 0xc2, // IID9328 - 0xd5, 0x90, 0x9b, 0xc3, // IID9329 - 0xd5, 0x90, 0x9b, 0xc4, // IID9330 - 0xd5, 0x90, 0x9b, 0xc5, // IID9331 - 0xd5, 0x90, 0x9b, 0xc6, // IID9332 - 0xd5, 0x90, 0x9b, 0xc7, // IID9333 - 0xd5, 0x91, 0x9b, 0xc0, // IID9334 - 0xd5, 0x91, 0x9b, 0xc1, // IID9335 - 0xd5, 0x91, 0x9b, 0xc2, // IID9336 - 0xd5, 0x91, 0x9b, 0xc3, // IID9337 - 0xd5, 0x91, 0x9b, 0xc4, // IID9338 - 0xd5, 0x91, 0x9b, 0xc5, // IID9339 - 0xd5, 0x91, 0x9b, 0xc6, // IID9340 - 0xd5, 0x91, 0x9b, 0xc7, // IID9341 -#endif // _LP64 - 0x0f, 0x9c, 0xc1, // IID9342 - 0x0f, 0x9c, 0xc2, // IID9343 - 0x0f, 0x9c, 0xc3, // IID9344 -#ifdef _LP64 - 0x41, 0x0f, 0x9c, 0xc0, // IID9345 - 0x41, 0x0f, 0x9c, 0xc1, // IID9346 - 0x41, 0x0f, 0x9c, 0xc2, // IID9347 - 0x41, 0x0f, 0x9c, 0xc3, // IID9348 - 0x41, 0x0f, 0x9c, 0xc4, // IID9349 - 0x41, 0x0f, 0x9c, 0xc5, // IID9350 - 0x41, 0x0f, 0x9c, 0xc6, // IID9351 - 0x41, 0x0f, 0x9c, 0xc7, // IID9352 - 0xd5, 0x90, 0x9c, 0xc0, // IID9353 - 0xd5, 0x90, 0x9c, 0xc1, // IID9354 - 0xd5, 0x90, 0x9c, 0xc2, // IID9355 - 0xd5, 0x90, 0x9c, 0xc3, // IID9356 - 0xd5, 0x90, 0x9c, 0xc4, // IID9357 - 0xd5, 0x90, 0x9c, 0xc5, // IID9358 - 0xd5, 0x90, 0x9c, 0xc6, // IID9359 - 0xd5, 0x90, 0x9c, 0xc7, // IID9360 - 0xd5, 0x91, 0x9c, 0xc0, // IID9361 - 0xd5, 0x91, 0x9c, 0xc1, // IID9362 - 0xd5, 0x91, 0x9c, 0xc2, // IID9363 - 0xd5, 0x91, 0x9c, 0xc3, // IID9364 - 0xd5, 0x91, 0x9c, 0xc4, // IID9365 - 0xd5, 0x91, 0x9c, 0xc5, // IID9366 - 0xd5, 0x91, 0x9c, 0xc6, // IID9367 - 0xd5, 0x91, 0x9c, 0xc7, // IID9368 -#endif // _LP64 - 0x0f, 0x9d, 0xc1, // IID9369 - 0x0f, 0x9d, 0xc2, // IID9370 - 0x0f, 0x9d, 0xc3, // IID9371 -#ifdef _LP64 - 0x41, 0x0f, 0x9d, 0xc0, // IID9372 - 0x41, 0x0f, 0x9d, 0xc1, // IID9373 - 0x41, 0x0f, 0x9d, 0xc2, // IID9374 - 0x41, 0x0f, 0x9d, 0xc3, // IID9375 - 0x41, 0x0f, 0x9d, 0xc4, // IID9376 - 0x41, 0x0f, 0x9d, 0xc5, // IID9377 - 0x41, 0x0f, 0x9d, 0xc6, // IID9378 - 0x41, 0x0f, 0x9d, 0xc7, // IID9379 - 0xd5, 0x90, 0x9d, 0xc0, // IID9380 - 0xd5, 0x90, 0x9d, 0xc1, // IID9381 - 0xd5, 0x90, 0x9d, 0xc2, // IID9382 - 0xd5, 0x90, 0x9d, 0xc3, // IID9383 - 0xd5, 0x90, 0x9d, 0xc4, // IID9384 - 0xd5, 0x90, 0x9d, 0xc5, // IID9385 - 0xd5, 0x90, 0x9d, 0xc6, // IID9386 - 0xd5, 0x90, 0x9d, 0xc7, // IID9387 - 0xd5, 0x91, 0x9d, 0xc0, // IID9388 - 0xd5, 0x91, 0x9d, 0xc1, // IID9389 - 0xd5, 0x91, 0x9d, 0xc2, // IID9390 - 0xd5, 0x91, 0x9d, 0xc3, // IID9391 - 0xd5, 0x91, 0x9d, 0xc4, // IID9392 - 0xd5, 0x91, 0x9d, 0xc5, // IID9393 - 0xd5, 0x91, 0x9d, 0xc6, // IID9394 - 0xd5, 0x91, 0x9d, 0xc7, // IID9395 -#endif // _LP64 - 0x0f, 0x9e, 0xc1, // IID9396 - 0x0f, 0x9e, 0xc2, // IID9397 - 0x0f, 0x9e, 0xc3, // IID9398 -#ifdef _LP64 - 0x41, 0x0f, 0x9e, 0xc0, // IID9399 - 0x41, 0x0f, 0x9e, 0xc1, // IID9400 - 0x41, 0x0f, 0x9e, 0xc2, // IID9401 - 0x41, 0x0f, 0x9e, 0xc3, // IID9402 - 0x41, 0x0f, 0x9e, 0xc4, // IID9403 - 0x41, 0x0f, 0x9e, 0xc5, // IID9404 - 0x41, 0x0f, 0x9e, 0xc6, // IID9405 - 0x41, 0x0f, 0x9e, 0xc7, // IID9406 - 0xd5, 0x90, 0x9e, 0xc0, // IID9407 - 0xd5, 0x90, 0x9e, 0xc1, // IID9408 - 0xd5, 0x90, 0x9e, 0xc2, // IID9409 - 0xd5, 0x90, 0x9e, 0xc3, // IID9410 - 0xd5, 0x90, 0x9e, 0xc4, // IID9411 - 0xd5, 0x90, 0x9e, 0xc5, // IID9412 - 0xd5, 0x90, 0x9e, 0xc6, // IID9413 - 0xd5, 0x90, 0x9e, 0xc7, // IID9414 - 0xd5, 0x91, 0x9e, 0xc0, // IID9415 - 0xd5, 0x91, 0x9e, 0xc1, // IID9416 - 0xd5, 0x91, 0x9e, 0xc2, // IID9417 - 0xd5, 0x91, 0x9e, 0xc3, // IID9418 - 0xd5, 0x91, 0x9e, 0xc4, // IID9419 - 0xd5, 0x91, 0x9e, 0xc5, // IID9420 - 0xd5, 0x91, 0x9e, 0xc6, // IID9421 - 0xd5, 0x91, 0x9e, 0xc7, // IID9422 -#endif // _LP64 - 0x0f, 0x9f, 0xc1, // IID9423 - 0x0f, 0x9f, 0xc2, // IID9424 - 0x0f, 0x9f, 0xc3, // IID9425 -#ifdef _LP64 - 0x41, 0x0f, 0x9f, 0xc0, // IID9426 - 0x41, 0x0f, 0x9f, 0xc1, // IID9427 - 0x41, 0x0f, 0x9f, 0xc2, // IID9428 - 0x41, 0x0f, 0x9f, 0xc3, // IID9429 - 0x41, 0x0f, 0x9f, 0xc4, // IID9430 - 0x41, 0x0f, 0x9f, 0xc5, // IID9431 - 0x41, 0x0f, 0x9f, 0xc6, // IID9432 - 0x41, 0x0f, 0x9f, 0xc7, // IID9433 - 0xd5, 0x90, 0x9f, 0xc0, // IID9434 - 0xd5, 0x90, 0x9f, 0xc1, // IID9435 - 0xd5, 0x90, 0x9f, 0xc2, // IID9436 - 0xd5, 0x90, 0x9f, 0xc3, // IID9437 - 0xd5, 0x90, 0x9f, 0xc4, // IID9438 - 0xd5, 0x90, 0x9f, 0xc5, // IID9439 - 0xd5, 0x90, 0x9f, 0xc6, // IID9440 - 0xd5, 0x90, 0x9f, 0xc7, // IID9441 - 0xd5, 0x91, 0x9f, 0xc0, // IID9442 - 0xd5, 0x91, 0x9f, 0xc1, // IID9443 - 0xd5, 0x91, 0x9f, 0xc2, // IID9444 - 0xd5, 0x91, 0x9f, 0xc3, // IID9445 - 0xd5, 0x91, 0x9f, 0xc4, // IID9446 - 0xd5, 0x91, 0x9f, 0xc5, // IID9447 - 0xd5, 0x91, 0x9f, 0xc6, // IID9448 - 0xd5, 0x91, 0x9f, 0xc7, // IID9449 -#endif // _LP64 - 0xf7, 0xf1, // IID9450 - 0xf7, 0xf2, // IID9451 - 0xf7, 0xf3, // IID9452 -#ifdef _LP64 - 0x41, 0xf7, 0xf0, // IID9453 - 0x41, 0xf7, 0xf1, // IID9454 - 0x41, 0xf7, 0xf2, // IID9455 - 0x41, 0xf7, 0xf3, // IID9456 - 0x41, 0xf7, 0xf4, // IID9457 - 0x41, 0xf7, 0xf5, // IID9458 - 0x41, 0xf7, 0xf6, // IID9459 - 0x41, 0xf7, 0xf7, // IID9460 - 0xd5, 0x10, 0xf7, 0xf0, // IID9461 - 0xd5, 0x10, 0xf7, 0xf1, // IID9462 - 0xd5, 0x10, 0xf7, 0xf2, // IID9463 - 0xd5, 0x10, 0xf7, 0xf3, // IID9464 - 0xd5, 0x10, 0xf7, 0xf4, // IID9465 - 0xd5, 0x10, 0xf7, 0xf5, // IID9466 - 0xd5, 0x10, 0xf7, 0xf6, // IID9467 - 0xd5, 0x10, 0xf7, 0xf7, // IID9468 - 0xd5, 0x11, 0xf7, 0xf0, // IID9469 - 0xd5, 0x11, 0xf7, 0xf1, // IID9470 - 0xd5, 0x11, 0xf7, 0xf2, // IID9471 - 0xd5, 0x11, 0xf7, 0xf3, // IID9472 - 0xd5, 0x11, 0xf7, 0xf4, // IID9473 - 0xd5, 0x11, 0xf7, 0xf5, // IID9474 - 0xd5, 0x11, 0xf7, 0xf6, // IID9475 - 0xd5, 0x11, 0xf7, 0xf7, // IID9476 -#endif // _LP64 - 0xf7, 0xf9, // IID9477 - 0xf7, 0xfa, // IID9478 - 0xf7, 0xfb, // IID9479 -#ifdef _LP64 - 0x41, 0xf7, 0xf8, // IID9480 - 0x41, 0xf7, 0xf9, // IID9481 - 0x41, 0xf7, 0xfa, // IID9482 - 0x41, 0xf7, 0xfb, // IID9483 - 0x41, 0xf7, 0xfc, // IID9484 - 0x41, 0xf7, 0xfd, // IID9485 - 0x41, 0xf7, 0xfe, // IID9486 - 0x41, 0xf7, 0xff, // IID9487 - 0xd5, 0x10, 0xf7, 0xf8, // IID9488 - 0xd5, 0x10, 0xf7, 0xf9, // IID9489 - 0xd5, 0x10, 0xf7, 0xfa, // IID9490 - 0xd5, 0x10, 0xf7, 0xfb, // IID9491 - 0xd5, 0x10, 0xf7, 0xfc, // IID9492 - 0xd5, 0x10, 0xf7, 0xfd, // IID9493 - 0xd5, 0x10, 0xf7, 0xfe, // IID9494 - 0xd5, 0x10, 0xf7, 0xff, // IID9495 - 0xd5, 0x11, 0xf7, 0xf8, // IID9496 - 0xd5, 0x11, 0xf7, 0xf9, // IID9497 - 0xd5, 0x11, 0xf7, 0xfa, // IID9498 - 0xd5, 0x11, 0xf7, 0xfb, // IID9499 - 0xd5, 0x11, 0xf7, 0xfc, // IID9500 - 0xd5, 0x11, 0xf7, 0xfd, // IID9501 - 0xd5, 0x11, 0xf7, 0xfe, // IID9502 - 0xd5, 0x11, 0xf7, 0xff, // IID9503 -#endif // _LP64 - 0xf7, 0xe9, // IID9504 - 0xf7, 0xea, // IID9505 - 0xf7, 0xeb, // IID9506 -#ifdef _LP64 - 0x41, 0xf7, 0xe8, // IID9507 - 0x41, 0xf7, 0xe9, // IID9508 - 0x41, 0xf7, 0xea, // IID9509 - 0x41, 0xf7, 0xeb, // IID9510 - 0x41, 0xf7, 0xec, // IID9511 - 0x41, 0xf7, 0xed, // IID9512 - 0x41, 0xf7, 0xee, // IID9513 - 0x41, 0xf7, 0xef, // IID9514 - 0xd5, 0x10, 0xf7, 0xe8, // IID9515 - 0xd5, 0x10, 0xf7, 0xe9, // IID9516 - 0xd5, 0x10, 0xf7, 0xea, // IID9517 - 0xd5, 0x10, 0xf7, 0xeb, // IID9518 - 0xd5, 0x10, 0xf7, 0xec, // IID9519 - 0xd5, 0x10, 0xf7, 0xed, // IID9520 - 0xd5, 0x10, 0xf7, 0xee, // IID9521 - 0xd5, 0x10, 0xf7, 0xef, // IID9522 - 0xd5, 0x11, 0xf7, 0xe8, // IID9523 - 0xd5, 0x11, 0xf7, 0xe9, // IID9524 - 0xd5, 0x11, 0xf7, 0xea, // IID9525 - 0xd5, 0x11, 0xf7, 0xeb, // IID9526 - 0xd5, 0x11, 0xf7, 0xec, // IID9527 - 0xd5, 0x11, 0xf7, 0xed, // IID9528 - 0xd5, 0x11, 0xf7, 0xee, // IID9529 - 0xd5, 0x11, 0xf7, 0xef, // IID9530 -#endif // _LP64 - 0xf7, 0xe1, // IID9531 - 0xf7, 0xe2, // IID9532 - 0xf7, 0xe3, // IID9533 -#ifdef _LP64 - 0x41, 0xf7, 0xe0, // IID9534 - 0x41, 0xf7, 0xe1, // IID9535 - 0x41, 0xf7, 0xe2, // IID9536 - 0x41, 0xf7, 0xe3, // IID9537 - 0x41, 0xf7, 0xe4, // IID9538 - 0x41, 0xf7, 0xe5, // IID9539 - 0x41, 0xf7, 0xe6, // IID9540 - 0x41, 0xf7, 0xe7, // IID9541 - 0xd5, 0x10, 0xf7, 0xe0, // IID9542 - 0xd5, 0x10, 0xf7, 0xe1, // IID9543 - 0xd5, 0x10, 0xf7, 0xe2, // IID9544 - 0xd5, 0x10, 0xf7, 0xe3, // IID9545 - 0xd5, 0x10, 0xf7, 0xe4, // IID9546 - 0xd5, 0x10, 0xf7, 0xe5, // IID9547 - 0xd5, 0x10, 0xf7, 0xe6, // IID9548 - 0xd5, 0x10, 0xf7, 0xe7, // IID9549 - 0xd5, 0x11, 0xf7, 0xe0, // IID9550 - 0xd5, 0x11, 0xf7, 0xe1, // IID9551 - 0xd5, 0x11, 0xf7, 0xe2, // IID9552 - 0xd5, 0x11, 0xf7, 0xe3, // IID9553 - 0xd5, 0x11, 0xf7, 0xe4, // IID9554 - 0xd5, 0x11, 0xf7, 0xe5, // IID9555 - 0xd5, 0x11, 0xf7, 0xe6, // IID9556 - 0xd5, 0x11, 0xf7, 0xe7, // IID9557 -#endif // _LP64 - 0xf7, 0xd9, // IID9558 - 0xf7, 0xda, // IID9559 - 0xf7, 0xdb, // IID9560 -#ifdef _LP64 - 0x41, 0xf7, 0xd8, // IID9561 - 0x41, 0xf7, 0xd9, // IID9562 - 0x41, 0xf7, 0xda, // IID9563 - 0x41, 0xf7, 0xdb, // IID9564 - 0x41, 0xf7, 0xdc, // IID9565 - 0x41, 0xf7, 0xdd, // IID9566 - 0x41, 0xf7, 0xde, // IID9567 - 0x41, 0xf7, 0xdf, // IID9568 - 0xd5, 0x10, 0xf7, 0xd8, // IID9569 - 0xd5, 0x10, 0xf7, 0xd9, // IID9570 - 0xd5, 0x10, 0xf7, 0xda, // IID9571 - 0xd5, 0x10, 0xf7, 0xdb, // IID9572 - 0xd5, 0x10, 0xf7, 0xdc, // IID9573 - 0xd5, 0x10, 0xf7, 0xdd, // IID9574 - 0xd5, 0x10, 0xf7, 0xde, // IID9575 - 0xd5, 0x10, 0xf7, 0xdf, // IID9576 - 0xd5, 0x11, 0xf7, 0xd8, // IID9577 - 0xd5, 0x11, 0xf7, 0xd9, // IID9578 - 0xd5, 0x11, 0xf7, 0xda, // IID9579 - 0xd5, 0x11, 0xf7, 0xdb, // IID9580 - 0xd5, 0x11, 0xf7, 0xdc, // IID9581 - 0xd5, 0x11, 0xf7, 0xdd, // IID9582 - 0xd5, 0x11, 0xf7, 0xde, // IID9583 - 0xd5, 0x11, 0xf7, 0xdf, // IID9584 -#endif // _LP64 - 0xf7, 0xd1, // IID9585 - 0xf7, 0xd2, // IID9586 - 0xf7, 0xd3, // IID9587 -#ifdef _LP64 - 0x41, 0xf7, 0xd0, // IID9588 - 0x41, 0xf7, 0xd1, // IID9589 - 0x41, 0xf7, 0xd2, // IID9590 - 0x41, 0xf7, 0xd3, // IID9591 - 0x41, 0xf7, 0xd4, // IID9592 - 0x41, 0xf7, 0xd5, // IID9593 - 0x41, 0xf7, 0xd6, // IID9594 - 0x41, 0xf7, 0xd7, // IID9595 - 0xd5, 0x10, 0xf7, 0xd0, // IID9596 - 0xd5, 0x10, 0xf7, 0xd1, // IID9597 - 0xd5, 0x10, 0xf7, 0xd2, // IID9598 - 0xd5, 0x10, 0xf7, 0xd3, // IID9599 - 0xd5, 0x10, 0xf7, 0xd4, // IID9600 - 0xd5, 0x10, 0xf7, 0xd5, // IID9601 - 0xd5, 0x10, 0xf7, 0xd6, // IID9602 - 0xd5, 0x10, 0xf7, 0xd7, // IID9603 - 0xd5, 0x11, 0xf7, 0xd0, // IID9604 - 0xd5, 0x11, 0xf7, 0xd1, // IID9605 - 0xd5, 0x11, 0xf7, 0xd2, // IID9606 - 0xd5, 0x11, 0xf7, 0xd3, // IID9607 - 0xd5, 0x11, 0xf7, 0xd4, // IID9608 - 0xd5, 0x11, 0xf7, 0xd5, // IID9609 - 0xd5, 0x11, 0xf7, 0xd6, // IID9610 - 0xd5, 0x11, 0xf7, 0xd7, // IID9611 -#endif // _LP64 - 0xd3, 0xc1, // IID9612 - 0xd3, 0xc2, // IID9613 - 0xd3, 0xc3, // IID9614 -#ifdef _LP64 - 0x41, 0xd3, 0xc0, // IID9615 - 0x41, 0xd3, 0xc1, // IID9616 - 0x41, 0xd3, 0xc2, // IID9617 - 0x41, 0xd3, 0xc3, // IID9618 - 0x41, 0xd3, 0xc4, // IID9619 - 0x41, 0xd3, 0xc5, // IID9620 - 0x41, 0xd3, 0xc6, // IID9621 - 0x41, 0xd3, 0xc7, // IID9622 - 0xd5, 0x10, 0xd3, 0xc0, // IID9623 - 0xd5, 0x10, 0xd3, 0xc1, // IID9624 - 0xd5, 0x10, 0xd3, 0xc2, // IID9625 - 0xd5, 0x10, 0xd3, 0xc3, // IID9626 - 0xd5, 0x10, 0xd3, 0xc4, // IID9627 - 0xd5, 0x10, 0xd3, 0xc5, // IID9628 - 0xd5, 0x10, 0xd3, 0xc6, // IID9629 - 0xd5, 0x10, 0xd3, 0xc7, // IID9630 - 0xd5, 0x11, 0xd3, 0xc0, // IID9631 - 0xd5, 0x11, 0xd3, 0xc1, // IID9632 - 0xd5, 0x11, 0xd3, 0xc2, // IID9633 - 0xd5, 0x11, 0xd3, 0xc3, // IID9634 - 0xd5, 0x11, 0xd3, 0xc4, // IID9635 - 0xd5, 0x11, 0xd3, 0xc5, // IID9636 - 0xd5, 0x11, 0xd3, 0xc6, // IID9637 - 0xd5, 0x11, 0xd3, 0xc7, // IID9638 -#endif // _LP64 - 0xd3, 0xc9, // IID9639 - 0xd3, 0xca, // IID9640 - 0xd3, 0xcb, // IID9641 -#ifdef _LP64 - 0x41, 0xd3, 0xc8, // IID9642 - 0x41, 0xd3, 0xc9, // IID9643 - 0x41, 0xd3, 0xca, // IID9644 - 0x41, 0xd3, 0xcb, // IID9645 - 0x41, 0xd3, 0xcc, // IID9646 - 0x41, 0xd3, 0xcd, // IID9647 - 0x41, 0xd3, 0xce, // IID9648 - 0x41, 0xd3, 0xcf, // IID9649 - 0xd5, 0x10, 0xd3, 0xc8, // IID9650 - 0xd5, 0x10, 0xd3, 0xc9, // IID9651 - 0xd5, 0x10, 0xd3, 0xca, // IID9652 - 0xd5, 0x10, 0xd3, 0xcb, // IID9653 - 0xd5, 0x10, 0xd3, 0xcc, // IID9654 - 0xd5, 0x10, 0xd3, 0xcd, // IID9655 - 0xd5, 0x10, 0xd3, 0xce, // IID9656 - 0xd5, 0x10, 0xd3, 0xcf, // IID9657 - 0xd5, 0x11, 0xd3, 0xc8, // IID9658 - 0xd5, 0x11, 0xd3, 0xc9, // IID9659 - 0xd5, 0x11, 0xd3, 0xca, // IID9660 - 0xd5, 0x11, 0xd3, 0xcb, // IID9661 - 0xd5, 0x11, 0xd3, 0xcc, // IID9662 - 0xd5, 0x11, 0xd3, 0xcd, // IID9663 - 0xd5, 0x11, 0xd3, 0xce, // IID9664 - 0xd5, 0x11, 0xd3, 0xcf, // IID9665 -#endif // _LP64 - 0xd3, 0xf9, // IID9666 - 0xd3, 0xfa, // IID9667 - 0xd3, 0xfb, // IID9668 -#ifdef _LP64 - 0x41, 0xd3, 0xf8, // IID9669 - 0x41, 0xd3, 0xf9, // IID9670 - 0x41, 0xd3, 0xfa, // IID9671 - 0x41, 0xd3, 0xfb, // IID9672 - 0x41, 0xd3, 0xfc, // IID9673 - 0x41, 0xd3, 0xfd, // IID9674 - 0x41, 0xd3, 0xfe, // IID9675 - 0x41, 0xd3, 0xff, // IID9676 - 0xd5, 0x10, 0xd3, 0xf8, // IID9677 - 0xd5, 0x10, 0xd3, 0xf9, // IID9678 - 0xd5, 0x10, 0xd3, 0xfa, // IID9679 - 0xd5, 0x10, 0xd3, 0xfb, // IID9680 - 0xd5, 0x10, 0xd3, 0xfc, // IID9681 - 0xd5, 0x10, 0xd3, 0xfd, // IID9682 - 0xd5, 0x10, 0xd3, 0xfe, // IID9683 - 0xd5, 0x10, 0xd3, 0xff, // IID9684 - 0xd5, 0x11, 0xd3, 0xf8, // IID9685 - 0xd5, 0x11, 0xd3, 0xf9, // IID9686 - 0xd5, 0x11, 0xd3, 0xfa, // IID9687 - 0xd5, 0x11, 0xd3, 0xfb, // IID9688 - 0xd5, 0x11, 0xd3, 0xfc, // IID9689 - 0xd5, 0x11, 0xd3, 0xfd, // IID9690 - 0xd5, 0x11, 0xd3, 0xfe, // IID9691 - 0xd5, 0x11, 0xd3, 0xff, // IID9692 -#endif // _LP64 - 0xd3, 0xe1, // IID9693 - 0xd3, 0xe2, // IID9694 - 0xd3, 0xe3, // IID9695 -#ifdef _LP64 - 0x41, 0xd3, 0xe0, // IID9696 - 0x41, 0xd3, 0xe1, // IID9697 - 0x41, 0xd3, 0xe2, // IID9698 - 0x41, 0xd3, 0xe3, // IID9699 - 0x41, 0xd3, 0xe4, // IID9700 - 0x41, 0xd3, 0xe5, // IID9701 - 0x41, 0xd3, 0xe6, // IID9702 - 0x41, 0xd3, 0xe7, // IID9703 - 0xd5, 0x10, 0xd3, 0xe0, // IID9704 - 0xd5, 0x10, 0xd3, 0xe1, // IID9705 - 0xd5, 0x10, 0xd3, 0xe2, // IID9706 - 0xd5, 0x10, 0xd3, 0xe3, // IID9707 - 0xd5, 0x10, 0xd3, 0xe4, // IID9708 - 0xd5, 0x10, 0xd3, 0xe5, // IID9709 - 0xd5, 0x10, 0xd3, 0xe6, // IID9710 - 0xd5, 0x10, 0xd3, 0xe7, // IID9711 - 0xd5, 0x11, 0xd3, 0xe0, // IID9712 - 0xd5, 0x11, 0xd3, 0xe1, // IID9713 - 0xd5, 0x11, 0xd3, 0xe2, // IID9714 - 0xd5, 0x11, 0xd3, 0xe3, // IID9715 - 0xd5, 0x11, 0xd3, 0xe4, // IID9716 - 0xd5, 0x11, 0xd3, 0xe5, // IID9717 - 0xd5, 0x11, 0xd3, 0xe6, // IID9718 - 0xd5, 0x11, 0xd3, 0xe7, // IID9719 -#endif // _LP64 - 0xd3, 0xe1, // IID9720 - 0xd3, 0xe2, // IID9721 - 0xd3, 0xe3, // IID9722 -#ifdef _LP64 - 0x41, 0xd3, 0xe0, // IID9723 - 0x41, 0xd3, 0xe1, // IID9724 - 0x41, 0xd3, 0xe2, // IID9725 - 0x41, 0xd3, 0xe3, // IID9726 - 0x41, 0xd3, 0xe4, // IID9727 - 0x41, 0xd3, 0xe5, // IID9728 - 0x41, 0xd3, 0xe6, // IID9729 - 0x41, 0xd3, 0xe7, // IID9730 - 0xd5, 0x10, 0xd3, 0xe0, // IID9731 - 0xd5, 0x10, 0xd3, 0xe1, // IID9732 - 0xd5, 0x10, 0xd3, 0xe2, // IID9733 - 0xd5, 0x10, 0xd3, 0xe3, // IID9734 - 0xd5, 0x10, 0xd3, 0xe4, // IID9735 - 0xd5, 0x10, 0xd3, 0xe5, // IID9736 - 0xd5, 0x10, 0xd3, 0xe6, // IID9737 - 0xd5, 0x10, 0xd3, 0xe7, // IID9738 - 0xd5, 0x11, 0xd3, 0xe0, // IID9739 - 0xd5, 0x11, 0xd3, 0xe1, // IID9740 - 0xd5, 0x11, 0xd3, 0xe2, // IID9741 - 0xd5, 0x11, 0xd3, 0xe3, // IID9742 - 0xd5, 0x11, 0xd3, 0xe4, // IID9743 - 0xd5, 0x11, 0xd3, 0xe5, // IID9744 - 0xd5, 0x11, 0xd3, 0xe6, // IID9745 - 0xd5, 0x11, 0xd3, 0xe7, // IID9746 -#endif // _LP64 - 0xd3, 0xe9, // IID9747 - 0xd3, 0xea, // IID9748 - 0xd3, 0xeb, // IID9749 -#ifdef _LP64 - 0x41, 0xd3, 0xe8, // IID9750 - 0x41, 0xd3, 0xe9, // IID9751 - 0x41, 0xd3, 0xea, // IID9752 - 0x41, 0xd3, 0xeb, // IID9753 - 0x41, 0xd3, 0xec, // IID9754 - 0x41, 0xd3, 0xed, // IID9755 - 0x41, 0xd3, 0xee, // IID9756 - 0x41, 0xd3, 0xef, // IID9757 - 0xd5, 0x10, 0xd3, 0xe8, // IID9758 - 0xd5, 0x10, 0xd3, 0xe9, // IID9759 - 0xd5, 0x10, 0xd3, 0xea, // IID9760 - 0xd5, 0x10, 0xd3, 0xeb, // IID9761 - 0xd5, 0x10, 0xd3, 0xec, // IID9762 - 0xd5, 0x10, 0xd3, 0xed, // IID9763 - 0xd5, 0x10, 0xd3, 0xee, // IID9764 - 0xd5, 0x10, 0xd3, 0xef, // IID9765 - 0xd5, 0x11, 0xd3, 0xe8, // IID9766 - 0xd5, 0x11, 0xd3, 0xe9, // IID9767 - 0xd5, 0x11, 0xd3, 0xea, // IID9768 - 0xd5, 0x11, 0xd3, 0xeb, // IID9769 - 0xd5, 0x11, 0xd3, 0xec, // IID9770 - 0xd5, 0x11, 0xd3, 0xed, // IID9771 - 0xd5, 0x11, 0xd3, 0xee, // IID9772 - 0xd5, 0x11, 0xd3, 0xef, // IID9773 -#endif // _LP64 - 0xff, 0xc1, // IID9774 - 0xff, 0xc2, // IID9775 - 0xff, 0xc3, // IID9776 -#ifdef _LP64 - 0x41, 0xff, 0xc0, // IID9777 - 0x41, 0xff, 0xc1, // IID9778 - 0x41, 0xff, 0xc2, // IID9779 - 0x41, 0xff, 0xc3, // IID9780 - 0x41, 0xff, 0xc4, // IID9781 - 0x41, 0xff, 0xc5, // IID9782 - 0x41, 0xff, 0xc6, // IID9783 - 0x41, 0xff, 0xc7, // IID9784 - 0xd5, 0x10, 0xff, 0xc0, // IID9785 - 0xd5, 0x10, 0xff, 0xc1, // IID9786 - 0xd5, 0x10, 0xff, 0xc2, // IID9787 - 0xd5, 0x10, 0xff, 0xc3, // IID9788 - 0xd5, 0x10, 0xff, 0xc4, // IID9789 - 0xd5, 0x10, 0xff, 0xc5, // IID9790 - 0xd5, 0x10, 0xff, 0xc6, // IID9791 - 0xd5, 0x10, 0xff, 0xc7, // IID9792 - 0xd5, 0x11, 0xff, 0xc0, // IID9793 - 0xd5, 0x11, 0xff, 0xc1, // IID9794 - 0xd5, 0x11, 0xff, 0xc2, // IID9795 - 0xd5, 0x11, 0xff, 0xc3, // IID9796 - 0xd5, 0x11, 0xff, 0xc4, // IID9797 - 0xd5, 0x11, 0xff, 0xc5, // IID9798 - 0xd5, 0x11, 0xff, 0xc6, // IID9799 - 0xd5, 0x11, 0xff, 0xc7, // IID9800 -#endif // _LP64 - 0xff, 0xc9, // IID9801 - 0xff, 0xca, // IID9802 - 0xff, 0xcb, // IID9803 -#ifdef _LP64 - 0x41, 0xff, 0xc8, // IID9804 - 0x41, 0xff, 0xc9, // IID9805 - 0x41, 0xff, 0xca, // IID9806 - 0x41, 0xff, 0xcb, // IID9807 - 0x41, 0xff, 0xcc, // IID9808 - 0x41, 0xff, 0xcd, // IID9809 - 0x41, 0xff, 0xce, // IID9810 - 0x41, 0xff, 0xcf, // IID9811 - 0xd5, 0x10, 0xff, 0xc8, // IID9812 - 0xd5, 0x10, 0xff, 0xc9, // IID9813 - 0xd5, 0x10, 0xff, 0xca, // IID9814 - 0xd5, 0x10, 0xff, 0xcb, // IID9815 - 0xd5, 0x10, 0xff, 0xcc, // IID9816 - 0xd5, 0x10, 0xff, 0xcd, // IID9817 - 0xd5, 0x10, 0xff, 0xce, // IID9818 - 0xd5, 0x10, 0xff, 0xcf, // IID9819 - 0xd5, 0x11, 0xff, 0xc8, // IID9820 - 0xd5, 0x11, 0xff, 0xc9, // IID9821 - 0xd5, 0x11, 0xff, 0xca, // IID9822 - 0xd5, 0x11, 0xff, 0xcb, // IID9823 - 0xd5, 0x11, 0xff, 0xcc, // IID9824 - 0xd5, 0x11, 0xff, 0xcd, // IID9825 - 0xd5, 0x11, 0xff, 0xce, // IID9826 - 0xd5, 0x11, 0xff, 0xcf, // IID9827 -#endif // _LP64 - 0xf7, 0xa4, 0xd1, 0x39, 0x40, 0x0d, 0xc2, // IID9828 - 0xf7, 0xa4, 0x9a, 0x54, 0x57, 0x31, 0xfa, // IID9829 -#ifdef _LP64 - 0xf7, 0xa3, 0xc3, 0xde, 0x47, 0x03, // IID9830 - 0x43, 0xf7, 0xa4, 0x08, 0x95, 0x95, 0x09, 0x97, // IID9831 - 0x43, 0xf7, 0xa4, 0x91, 0x5d, 0x2a, 0x47, 0xef, // IID9832 - 0x41, 0xf7, 0xa2, 0x94, 0xc0, 0x9f, 0x6f, // IID9833 - 0x43, 0xf7, 0xa4, 0x23, 0x53, 0x3c, 0xe2, 0x8e, // IID9834 - 0x43, 0xf7, 0xa4, 0x6c, 0xaa, 0xb5, 0x8c, 0xff, // IID9835 - 0x43, 0xf7, 0xa4, 0xf5, 0x19, 0x22, 0x77, 0xa0, // IID9836 - 0x43, 0xf7, 0xa4, 0xfe, 0x41, 0xc7, 0x22, 0x47, // IID9837 - 0xd5, 0x21, 0xf7, 0xa4, 0xc7, 0x00, 0x4e, 0xe2, 0x57, // IID9838 - 0xd5, 0x30, 0xf7, 0xa4, 0x88, 0xbf, 0xa4, 0x79, 0x95, // IID9839 - 0xd5, 0x30, 0xf7, 0xa4, 0xd1, 0x08, 0x76, 0x1c, 0x06, // IID9840 - 0xd5, 0x30, 0xf7, 0xa4, 0x1a, 0x73, 0x24, 0x47, 0x91, // IID9841 - 0xd5, 0x30, 0xf7, 0xa4, 0x63, 0x9e, 0x88, 0x50, 0x6f, // IID9842 - 0xd5, 0x30, 0xf7, 0xa4, 0x2c, 0xb0, 0xfc, 0xe3, 0x3d, // IID9843 - 0xd5, 0x30, 0xf7, 0xa4, 0x35, 0x88, 0xf2, 0xf1, 0x3f, // IID9844 - 0xd5, 0x30, 0xf7, 0xa4, 0x3e, 0xbc, 0x7d, 0x7a, 0x14, // IID9845 - 0xd5, 0x32, 0xf7, 0xa4, 0xc7, 0x96, 0x72, 0xf1, 0xcd, // IID9846 - 0xd5, 0x33, 0xf7, 0xa4, 0x08, 0x95, 0x90, 0x78, 0x86, // IID9847 - 0xd5, 0x33, 0xf7, 0xa4, 0x51, 0x8f, 0x67, 0x2d, 0xd0, // IID9848 - 0xd5, 0x33, 0xf7, 0xa4, 0x5a, 0x8d, 0x01, 0xfb, 0x1a, // IID9849 - 0xd5, 0x33, 0xf7, 0xa4, 0xa3, 0xfc, 0x4d, 0x04, 0x4d, // IID9850 - 0xd5, 0x33, 0xf7, 0xa4, 0x2c, 0xad, 0xf3, 0x30, 0x15, // IID9851 - 0xd5, 0x33, 0xf7, 0xa4, 0x35, 0xf2, 0x76, 0xb0, 0x0e, // IID9852 - 0xd5, 0x33, 0xf7, 0xa4, 0xfe, 0x7b, 0xff, 0xd4, 0x87, // IID9853 - 0xd5, 0x11, 0xf7, 0xa4, 0x8f, 0xc9, 0x67, 0x37, 0xef, // IID9854 -#endif // _LP64 - 0xf7, 0x9c, 0xd1, 0x62, 0xad, 0x31, 0xa7, // IID9855 - 0xf7, 0x9a, 0x55, 0xf6, 0xb7, 0x5a, // IID9856 -#ifdef _LP64 - 0x42, 0xf7, 0x9c, 0x43, 0xa5, 0x52, 0xf8, 0xe2, // IID9857 - 0x43, 0xf7, 0x9c, 0xc8, 0x7b, 0xf7, 0xa9, 0xd9, // IID9858 - 0x43, 0xf7, 0x9c, 0x51, 0xb9, 0xfd, 0x41, 0x36, // IID9859 - 0x43, 0xf7, 0x9c, 0x5a, 0xfb, 0x49, 0x07, 0x49, // IID9860 - 0x43, 0xf7, 0x9c, 0x63, 0x96, 0x3f, 0xf5, 0x2d, // IID9861 - 0x43, 0xf7, 0x9c, 0xec, 0x0e, 0x9b, 0x45, 0xd9, // IID9862 - 0x43, 0xf7, 0x9c, 0xf5, 0x46, 0xa7, 0xbc, 0xb4, // IID9863 - 0x43, 0xf7, 0x9c, 0xbe, 0x0a, 0x34, 0xc6, 0x31, // IID9864 - 0xd5, 0x21, 0xf7, 0x9c, 0xc7, 0xe4, 0x14, 0x10, 0x59, // IID9865 - 0xd5, 0x10, 0xf7, 0x98, 0x2f, 0xd1, 0x26, 0xd5, // IID9866 - 0xd5, 0x10, 0xf7, 0x99, 0x8e, 0x53, 0x09, 0x00, // IID9867 - 0xd5, 0x30, 0xf7, 0x9c, 0xda, 0x88, 0xec, 0xe5, 0xb4, // IID9868 - 0xd5, 0x30, 0xf7, 0x9c, 0xa3, 0x6a, 0x14, 0xf3, 0xc0, // IID9869 - 0xd5, 0x30, 0xf7, 0x9c, 0x6c, 0xe6, 0x6c, 0xd7, 0xcd, // IID9870 - 0xd5, 0x30, 0xf7, 0x9c, 0xf5, 0x6f, 0x2d, 0x83, 0x4f, // IID9871 - 0xd5, 0x30, 0xf7, 0x9c, 0xbe, 0xfb, 0x6a, 0xba, 0x21, // IID9872 - 0xd5, 0x32, 0xf7, 0x9c, 0x47, 0x5a, 0x21, 0xa8, 0x31, // IID9873 - 0xd5, 0x11, 0xf7, 0x98, 0xe1, 0x82, 0xf1, 0xbf, // IID9874 - 0xd5, 0x33, 0xf7, 0x9c, 0x91, 0x99, 0x5b, 0xe7, 0x26, // IID9875 - 0xd5, 0x33, 0xf7, 0x9c, 0x5a, 0xe3, 0x5e, 0x67, 0xa8, // IID9876 - 0xd5, 0x33, 0xf7, 0x9c, 0xa3, 0xed, 0xa1, 0x0e, 0x8b, // IID9877 - 0xd5, 0x33, 0xf7, 0x9c, 0x6c, 0x7e, 0xd7, 0xd5, 0xfc, // IID9878 - 0xd5, 0x11, 0xf7, 0x9d, 0xc8, 0xc0, 0x33, 0x50, // IID9879 - 0xd5, 0x33, 0xf7, 0x9c, 0xbe, 0x9e, 0x64, 0x23, 0x73, // IID9880 - 0xd5, 0x11, 0xf7, 0x9c, 0x8f, 0x36, 0x3c, 0x0f, 0x19, // IID9881 -#endif // _LP64 - 0xd3, 0xb9, 0xea, 0x7e, 0x4a, 0x8e, // IID9882 - 0xd3, 0xbc, 0x9a, 0x29, 0x7f, 0x95, 0xa5, // IID9883 -#ifdef _LP64 - 0x42, 0xd3, 0xbc, 0x03, 0x3d, 0xdd, 0xf3, 0xdc, // IID9884 - 0x43, 0xd3, 0xbc, 0x08, 0x7e, 0xdf, 0x0c, 0xfe, // IID9885 - 0x41, 0xd3, 0xb9, 0xdc, 0xf8, 0x8c, 0xa5, // IID9886 - 0x43, 0xd3, 0xbc, 0x5a, 0x5f, 0x60, 0xa7, 0xb6, // IID9887 - 0x43, 0xd3, 0xbc, 0x23, 0x5a, 0x7e, 0xde, 0x42, // IID9888 - 0x43, 0xd3, 0xbc, 0xec, 0x20, 0x54, 0xf2, 0x56, // IID9889 - 0x43, 0xd3, 0xbc, 0x35, 0xdc, 0x7d, 0x54, 0xfb, // IID9890 - 0x43, 0xd3, 0xbc, 0xfe, 0x9f, 0x94, 0xe7, 0x10, // IID9891 - 0xd5, 0x21, 0xd3, 0xbc, 0x47, 0x70, 0x61, 0xbe, 0x67, // IID9892 - 0xd5, 0x30, 0xd3, 0xbc, 0x48, 0xbf, 0x4a, 0xef, 0x83, // IID9893 - 0xd5, 0x30, 0xd3, 0xbc, 0x11, 0xe9, 0xfd, 0x3a, 0x25, // IID9894 - 0xd5, 0x30, 0xd3, 0xbc, 0x5a, 0x9f, 0xe8, 0x13, 0x9d, // IID9895 - 0xd5, 0x30, 0xd3, 0xbc, 0xe3, 0x00, 0xcb, 0x05, 0x97, // IID9896 - 0xd5, 0x30, 0xd3, 0xbc, 0x2c, 0x0a, 0xe9, 0x4b, 0xb6, // IID9897 - 0xd5, 0x10, 0xd3, 0xbd, 0x02, 0xa5, 0xfe, 0x10, // IID9898 - 0xd5, 0x10, 0xd3, 0xbe, 0x33, 0xc9, 0xbf, 0x16, // IID9899 - 0xd5, 0x32, 0xd3, 0xbc, 0x47, 0xc3, 0x7e, 0x61, 0x06, // IID9900 - 0xd5, 0x33, 0xd3, 0xbc, 0x88, 0x3c, 0x09, 0x02, 0x6e, // IID9901 - 0xd5, 0x11, 0xd3, 0xb9, 0x16, 0xb0, 0xe0, 0x02, // IID9902 - 0xd5, 0x11, 0xd3, 0xba, 0x71, 0x54, 0x3c, 0x62, // IID9903 - 0xd5, 0x33, 0xd3, 0xbc, 0xa3, 0xb9, 0x1b, 0x26, 0xf0, // IID9904 - 0xd5, 0x33, 0xd3, 0xbc, 0xac, 0x7b, 0x9f, 0xfa, 0x84, // IID9905 - 0xd5, 0x33, 0xd3, 0xbc, 0xb5, 0x28, 0x4b, 0x25, 0x2f, // IID9906 - 0xd5, 0x33, 0xd3, 0xbc, 0xbe, 0xa4, 0xa4, 0x0f, 0x7b, // IID9907 - 0xd5, 0x11, 0xd3, 0xbc, 0x0f, 0xcc, 0x66, 0x67, 0x93, // IID9908 -#endif // _LP64 - 0xd3, 0xa4, 0x11, 0xdf, 0x8a, 0x83, 0x02, // IID9909 - 0xd3, 0xa2, 0xe7, 0xf5, 0x52, 0xb8, // IID9910 -#ifdef _LP64 - 0x42, 0xd3, 0xa4, 0x83, 0xd3, 0x5e, 0x8e, 0x3d, // IID9911 - 0x43, 0xd3, 0xa4, 0xc8, 0x2d, 0xc2, 0x0b, 0x2f, // IID9912 - 0x43, 0xd3, 0xa4, 0x51, 0xe7, 0xa0, 0x4e, 0x01, // IID9913 - 0x43, 0xd3, 0xa4, 0x1a, 0x98, 0xc8, 0xd9, 0x3a, // IID9914 - 0x41, 0xd3, 0xa3, 0xc8, 0x2c, 0x47, 0x7b, // IID9915 - 0x43, 0xd3, 0xa4, 0xac, 0xeb, 0xc5, 0xff, 0xf9, // IID9916 - 0x43, 0xd3, 0xa4, 0x75, 0x14, 0x40, 0x60, 0x15, // IID9917 - 0x41, 0xd3, 0xa6, 0x3d, 0x84, 0x7c, 0xe6, // IID9918 - 0x41, 0xd3, 0xa7, 0xfc, 0x97, 0x4f, 0xea, // IID9919 - 0xd5, 0x10, 0xd3, 0xa0, 0xca, 0x62, 0x02, 0xc1, // IID9920 - 0xd5, 0x30, 0xd3, 0xa4, 0xd1, 0x11, 0x50, 0x71, 0xeb, // IID9921 - 0xd5, 0x30, 0xd3, 0xa4, 0x5a, 0x61, 0x02, 0xd5, 0x28, // IID9922 - 0xd5, 0x30, 0xd3, 0xa4, 0x63, 0x53, 0x86, 0xa0, 0xd6, // IID9923 - 0xd5, 0x30, 0xd3, 0xa4, 0xac, 0x8e, 0xf7, 0xf1, 0xbd, // IID9924 - 0xd5, 0x10, 0xd3, 0xa5, 0xff, 0xd1, 0x52, 0x3b, // IID9925 - 0xd5, 0x30, 0xd3, 0xa4, 0x3e, 0xb2, 0xae, 0x1a, 0x3c, // IID9926 - 0xd5, 0x32, 0xd3, 0xa4, 0x47, 0xf9, 0x1a, 0x9d, 0x8b, // IID9927 - 0xd5, 0x33, 0xd3, 0xa4, 0x48, 0x6e, 0x11, 0xe2, 0x5e, // IID9928 - 0xd5, 0x33, 0xd3, 0xa4, 0x11, 0x8a, 0x99, 0xce, 0xb8, // IID9929 - 0xd5, 0x11, 0xd3, 0xa2, 0xd3, 0x24, 0x60, 0x35, // IID9930 - 0xd5, 0x33, 0xd3, 0xa4, 0xe3, 0x69, 0xc0, 0x8b, 0x70, // IID9931 - 0xd5, 0x33, 0xd3, 0xa4, 0xac, 0x5f, 0x5c, 0x4d, 0x49, // IID9932 - 0xd5, 0x33, 0xd3, 0xa4, 0x75, 0x05, 0xf9, 0xdb, 0x6d, // IID9933 - 0xd5, 0x33, 0xd3, 0xa4, 0xbe, 0x8d, 0x61, 0x0c, 0x4e, // IID9934 - 0xd5, 0x11, 0xd3, 0xa4, 0x4f, 0x44, 0x30, 0xa3, 0x4c, // IID9935 -#endif // _LP64 - 0xd3, 0xac, 0xd1, 0x03, 0x45, 0x0b, 0x8f, // IID9936 - 0xd3, 0xac, 0x1a, 0xe1, 0x83, 0x2e, 0x2e, // IID9937 -#ifdef _LP64 - 0x42, 0xd3, 0xac, 0xc3, 0x3b, 0x97, 0xb7, 0x12, // IID9938 - 0x43, 0xd3, 0xac, 0x88, 0x12, 0x4c, 0x5f, 0xfe, // IID9939 - 0x41, 0xd3, 0xa9, 0x4b, 0x10, 0x64, 0xa2, // IID9940 - 0x43, 0xd3, 0xac, 0x9a, 0x31, 0x1e, 0x86, 0xf4, // IID9941 - 0x41, 0xd3, 0xab, 0xd6, 0xd5, 0xfb, 0xe4, // IID9942 - 0x41, 0xd3, 0xac, 0x24, 0x58, 0xfb, 0xdb, 0x1c, // IID9943 - 0x43, 0xd3, 0xac, 0xb5, 0x52, 0x1d, 0xe1, 0xc1, // IID9944 - 0x43, 0xd3, 0xac, 0xbe, 0xff, 0xc9, 0x36, 0x31, // IID9945 - 0xd5, 0x21, 0xd3, 0xac, 0x07, 0x34, 0x91, 0x9d, 0x6c, // IID9946 - 0xd5, 0x30, 0xd3, 0xac, 0x08, 0x68, 0x7f, 0xcb, 0x88, // IID9947 - 0xd5, 0x30, 0xd3, 0xac, 0x11, 0xd3, 0xbb, 0x8e, 0xbb, // IID9948 - 0xd5, 0x30, 0xd3, 0xac, 0x1a, 0xee, 0x42, 0x00, 0x31, // IID9949 - 0xd5, 0x30, 0xd3, 0xac, 0x63, 0xf6, 0xb7, 0xec, 0xdd, // IID9950 - 0xd5, 0x30, 0xd3, 0xac, 0x6c, 0x40, 0x4b, 0xbf, 0xbe, // IID9951 - 0xd5, 0x30, 0xd3, 0xac, 0xb5, 0xbf, 0x10, 0x3e, 0xdf, // IID9952 - 0xd5, 0x30, 0xd3, 0xac, 0xbe, 0xba, 0x72, 0xe1, 0x87, // IID9953 - 0xd5, 0x32, 0xd3, 0xac, 0xc7, 0xf8, 0x9c, 0x89, 0xf7, // IID9954 - 0xd5, 0x33, 0xd3, 0xac, 0xc8, 0x73, 0xe2, 0x9f, 0x20, // IID9955 - 0xd5, 0x33, 0xd3, 0xac, 0x51, 0xeb, 0xd1, 0x0b, 0xa1, // IID9956 - 0xd5, 0x33, 0xd3, 0xac, 0x1a, 0x1e, 0x3c, 0x6e, 0xde, // IID9957 - 0xd5, 0x33, 0xd3, 0xac, 0xe3, 0x43, 0x26, 0x49, 0xb8, // IID9958 - 0xd5, 0x11, 0xd3, 0xac, 0x24, 0x00, 0x26, 0xf3, 0xef, // IID9959 - 0xd5, 0x33, 0xd3, 0xac, 0xf5, 0xfe, 0xc1, 0x42, 0x6f, // IID9960 - 0xd5, 0x33, 0xd3, 0xac, 0xfe, 0x19, 0xc6, 0x8d, 0xa6, // IID9961 - 0xd5, 0x11, 0xd3, 0xac, 0x8f, 0xd3, 0xd7, 0x0b, 0x34, // IID9962 -#endif // _LP64 - 0xff, 0x84, 0x11, 0xaf, 0xc1, 0x39, 0x1c, // IID9963 - 0xff, 0x84, 0x5a, 0x31, 0x73, 0x2c, 0x01, // IID9964 -#ifdef _LP64 - 0x42, 0xff, 0x84, 0xc3, 0x11, 0x8b, 0x00, 0x4e, // IID9965 - 0x41, 0xff, 0x80, 0x0b, 0x63, 0x4f, 0xd2, // IID9966 - 0x41, 0xff, 0x81, 0xf4, 0x8c, 0x37, 0xb8, // IID9967 - 0x43, 0xff, 0x84, 0x5a, 0x7a, 0x21, 0xf6, 0x92, // IID9968 - 0x43, 0xff, 0x84, 0x23, 0xec, 0x3a, 0x78, 0x03, // IID9969 - 0x43, 0xff, 0x84, 0xac, 0x23, 0xe5, 0x63, 0x31, // IID9970 - 0x43, 0xff, 0x84, 0xb5, 0xbb, 0x2b, 0xae, 0x07, // IID9971 - 0x43, 0xff, 0x84, 0xfe, 0x72, 0xc6, 0xe7, 0x02, // IID9972 - 0x41, 0xff, 0x87, 0x19, 0xca, 0xff, 0x7c, // IID9973 - 0xd5, 0x30, 0xff, 0x84, 0x48, 0xdf, 0x5f, 0xdb, 0x72, // IID9974 - 0xd5, 0x30, 0xff, 0x84, 0x51, 0xc8, 0x5a, 0x53, 0x2e, // IID9975 - 0xd5, 0x30, 0xff, 0x84, 0x5a, 0x50, 0xb8, 0x9e, 0x21, // IID9976 - 0xd5, 0x30, 0xff, 0x84, 0x63, 0x72, 0xd6, 0x60, 0x78, // IID9977 - 0xd5, 0x30, 0xff, 0x84, 0x6c, 0xcf, 0x37, 0xac, 0x0b, // IID9978 - 0xd5, 0x30, 0xff, 0x84, 0xf5, 0x18, 0x04, 0xd3, 0x65, // IID9979 - 0xd5, 0x30, 0xff, 0x84, 0xfe, 0xe4, 0x00, 0x05, 0x0b, // IID9980 - 0xd5, 0x32, 0xff, 0x84, 0xc7, 0xa2, 0x41, 0x31, 0x69, // IID9981 - 0xd5, 0x33, 0xff, 0x84, 0xc8, 0x1e, 0x91, 0x9d, 0xc6, // IID9982 - 0xd5, 0x33, 0xff, 0x84, 0x91, 0xd8, 0xc8, 0x99, 0x8b, // IID9983 - 0xd5, 0x33, 0xff, 0x84, 0x1a, 0xf8, 0x43, 0x48, 0x41, // IID9984 - 0xd5, 0x33, 0xff, 0x84, 0xa3, 0x86, 0xe7, 0x81, 0x06, // IID9985 - 0xd5, 0x11, 0xff, 0x84, 0x24, 0x9c, 0x5f, 0xff, 0x2d, // IID9986 - 0xd5, 0x11, 0xff, 0x85, 0x6d, 0x0c, 0x0f, 0x8e, // IID9987 - 0xd5, 0x33, 0xff, 0x84, 0xbe, 0x85, 0x94, 0x0f, 0x1b, // IID9988 - 0xd5, 0x11, 0xff, 0x84, 0xcf, 0xea, 0x05, 0xc7, 0xce, // IID9989 -#endif // _LP64 - 0xff, 0x8c, 0x51, 0x42, 0xdb, 0x40, 0x55, // IID9990 - 0xff, 0x8c, 0xda, 0xdb, 0x76, 0x82, 0xcc, // IID9991 -#ifdef _LP64 - 0x42, 0xff, 0x8c, 0x83, 0xf0, 0x5a, 0x1f, 0x14, // IID9992 - 0x43, 0xff, 0x8c, 0x88, 0x6b, 0xd4, 0x45, 0x06, // IID9993 - 0x43, 0xff, 0x8c, 0x51, 0x2d, 0xdb, 0x54, 0x30, // IID9994 - 0x43, 0xff, 0x8c, 0x9a, 0xe5, 0x44, 0x36, 0x32, // IID9995 - 0x41, 0xff, 0x8b, 0x20, 0xe7, 0x3b, 0x6d, // IID9996 - 0x43, 0xff, 0x8c, 0xac, 0xee, 0x49, 0x32, 0xce, // IID9997 - 0x43, 0xff, 0x8c, 0xf5, 0x6e, 0x37, 0x02, 0xce, // IID9998 - 0x43, 0xff, 0x8c, 0xfe, 0xac, 0xe9, 0x1c, 0x61, // IID9999 - 0xd5, 0x21, 0xff, 0x8c, 0x87, 0x45, 0x14, 0xa8, 0x3c, // IID10000 - 0xd5, 0x30, 0xff, 0x8c, 0x48, 0x0c, 0x8b, 0x89, 0x8b, // IID10001 - 0xd5, 0x30, 0xff, 0x8c, 0x51, 0x8e, 0xc0, 0xe9, 0xf6, // IID10002 - 0xd5, 0x30, 0xff, 0x8c, 0x9a, 0x11, 0x97, 0xc6, 0x20, // IID10003 - 0xd5, 0x30, 0xff, 0x8c, 0xa3, 0x2d, 0xdf, 0x0c, 0x64, // IID10004 - 0xd5, 0x30, 0xff, 0x8c, 0x2c, 0xd6, 0x43, 0x78, 0x76, // IID10005 - 0xd5, 0x30, 0xff, 0x8c, 0xb5, 0xa0, 0x10, 0x5d, 0x7f, // IID10006 - 0xd5, 0x30, 0xff, 0x8c, 0xbe, 0xa4, 0x45, 0xe0, 0xb7, // IID10007 - 0xd5, 0x32, 0xff, 0x8c, 0x07, 0x3e, 0xf6, 0x57, 0xf5, // IID10008 - 0xd5, 0x33, 0xff, 0x8c, 0xc8, 0x9c, 0x17, 0x53, 0xa7, // IID10009 - 0xd5, 0x33, 0xff, 0x8c, 0x91, 0x93, 0x25, 0xad, 0x69, // IID10010 - 0xd5, 0x33, 0xff, 0x8c, 0x1a, 0xeb, 0x48, 0xd0, 0x0c, // IID10011 - 0xd5, 0x33, 0xff, 0x8c, 0x63, 0x57, 0x58, 0xae, 0x07, // IID10012 - 0xd5, 0x11, 0xff, 0x8c, 0x24, 0xb9, 0xce, 0x23, 0xd3, // IID10013 - 0xd5, 0x33, 0xff, 0x8c, 0x75, 0x57, 0xd8, 0xd9, 0xcf, // IID10014 - 0xd5, 0x33, 0xff, 0x8c, 0xfe, 0xb5, 0x74, 0xc7, 0xd0, // IID10015 - 0xd5, 0x11, 0xff, 0x8c, 0x4f, 0xd4, 0xa4, 0x59, 0xce, // IID10016 -#endif // _LP64 - 0x6b, 0x8a, 0x84, 0x46, 0x40, 0xc3, 0x01, // IID10017 - 0x6b, 0x8c, 0x1a, 0x36, 0xde, 0x97, 0x9b, 0x10, // IID10018 - 0x69, 0x8c, 0x9a, 0x1c, 0xd7, 0xf4, 0x0f, 0x00, 0x01, 0x00, 0x00, // IID10019 - 0x69, 0x8c, 0x9a, 0x7d, 0xa1, 0x94, 0xb8, 0x00, 0x10, 0x00, 0x00, // IID10020 - 0x69, 0x8c, 0xda, 0x99, 0x99, 0x9e, 0xb1, 0x00, 0x00, 0x01, 0x00, // IID10021 - 0x69, 0x8a, 0xe9, 0x61, 0x15, 0x5c, 0x00, 0x00, 0x10, 0x00, // IID10022 - 0x69, 0x8c, 0xda, 0xa3, 0xc4, 0x6a, 0xc0, 0x00, 0x00, 0x00, 0x01, // IID10023 - 0x69, 0x8c, 0xda, 0xa1, 0xb5, 0x50, 0x49, 0x00, 0x00, 0x00, 0x10, // IID10024 -#ifdef _LP64 - 0x42, 0x6b, 0x94, 0x03, 0xe8, 0x2f, 0xe0, 0xc8, 0x01, // IID10025 - 0x42, 0x6b, 0x94, 0x43, 0x79, 0x61, 0x2d, 0xf2, 0x10, // IID10026 - 0x69, 0x93, 0xc4, 0x0d, 0xf0, 0x27, 0x00, 0x01, 0x00, 0x00, // IID10027 - 0x42, 0x69, 0x94, 0x83, 0x98, 0xb8, 0xc9, 0xcf, 0x00, 0x10, 0x00, 0x00, // IID10028 - 0x42, 0x69, 0x94, 0x83, 0xde, 0x4f, 0x87, 0xdf, 0x00, 0x00, 0x01, 0x00, // IID10029 - 0x42, 0x69, 0x94, 0x43, 0x59, 0x8d, 0x11, 0x75, 0x00, 0x00, 0x10, 0x00, // IID10030 - 0x42, 0x69, 0x94, 0x43, 0xf9, 0xfb, 0x91, 0xb4, 0x00, 0x00, 0x00, 0x01, // IID10031 - 0x42, 0x69, 0x94, 0x83, 0xe5, 0x65, 0x12, 0xd8, 0x00, 0x00, 0x00, 0x10, // IID10032 - 0x41, 0x6b, 0x98, 0x0c, 0xd0, 0x20, 0x34, 0x01, // IID10033 - 0x43, 0x6b, 0x9c, 0x88, 0x29, 0x67, 0xa0, 0x7c, 0x10, // IID10034 - 0x43, 0x69, 0x9c, 0x88, 0xaf, 0x51, 0xc0, 0xdb, 0x00, 0x01, 0x00, 0x00, // IID10035 - 0x43, 0x69, 0x9c, 0x88, 0x59, 0xc5, 0x01, 0x61, 0x00, 0x10, 0x00, 0x00, // IID10036 - 0x41, 0x69, 0x98, 0xc7, 0x59, 0xf1, 0xb0, 0x00, 0x00, 0x01, 0x00, // IID10037 - 0x43, 0x69, 0x9c, 0x08, 0x6a, 0xf6, 0x2c, 0xb5, 0x00, 0x00, 0x10, 0x00, // IID10038 - 0x43, 0x69, 0x9c, 0x48, 0xbf, 0xa2, 0xc5, 0x39, 0x00, 0x00, 0x00, 0x01, // IID10039 - 0x43, 0x69, 0x9c, 0xc8, 0x56, 0x4b, 0x84, 0x6c, 0x00, 0x00, 0x00, 0x10, // IID10040 - 0x47, 0x6b, 0x84, 0x11, 0xec, 0x95, 0xec, 0x09, 0x01, // IID10041 - 0x47, 0x6b, 0x84, 0x91, 0x29, 0xef, 0xe4, 0xb0, 0x10, // IID10042 - 0x47, 0x69, 0x84, 0x51, 0xf4, 0x26, 0x57, 0x55, 0x00, 0x01, 0x00, 0x00, // IID10043 - 0x47, 0x69, 0x84, 0x11, 0x2b, 0x21, 0xe8, 0x77, 0x00, 0x10, 0x00, 0x00, // IID10044 - 0x47, 0x69, 0x84, 0x51, 0x6e, 0xee, 0xf9, 0x1c, 0x00, 0x00, 0x01, 0x00, // IID10045 - 0x47, 0x69, 0x84, 0x11, 0x40, 0xee, 0x19, 0xf8, 0x00, 0x00, 0x10, 0x00, // IID10046 - 0x47, 0x69, 0x84, 0xd1, 0xf6, 0x97, 0x34, 0xdc, 0x00, 0x00, 0x00, 0x01, // IID10047 - 0x47, 0x69, 0x84, 0xd1, 0xf7, 0x40, 0x9f, 0x73, 0x00, 0x00, 0x00, 0x10, // IID10048 - 0x47, 0x6b, 0x8c, 0x1a, 0x66, 0xb8, 0xf8, 0x80, 0x01, // IID10049 - 0x45, 0x6b, 0x8a, 0x55, 0xf7, 0x7e, 0x5e, 0x10, // IID10050 - 0x47, 0x69, 0x8c, 0x9a, 0x64, 0x3b, 0x30, 0xf3, 0x00, 0x01, 0x00, 0x00, // IID10051 - 0x45, 0x69, 0x8a, 0xa1, 0x68, 0xb3, 0x02, 0x00, 0x10, 0x00, 0x00, // IID10052 - 0x47, 0x69, 0x8c, 0x9a, 0x8a, 0x30, 0x05, 0x92, 0x00, 0x00, 0x01, 0x00, // IID10053 - 0x47, 0x69, 0x8c, 0xda, 0x28, 0xe3, 0xac, 0xb0, 0x00, 0x00, 0x10, 0x00, // IID10054 - 0x47, 0x69, 0x8c, 0x5a, 0x22, 0xcb, 0xca, 0x27, 0x00, 0x00, 0x00, 0x01, // IID10055 - 0x47, 0x69, 0x8c, 0x5a, 0x4d, 0x05, 0x23, 0xc0, 0x00, 0x00, 0x00, 0x10, // IID10056 - 0x47, 0x6b, 0x94, 0xe3, 0xcc, 0x6a, 0x8f, 0xca, 0x01, // IID10057 - 0x47, 0x6b, 0x94, 0x23, 0x6c, 0x9a, 0x11, 0x18, 0x10, // IID10058 - 0x47, 0x69, 0x94, 0x23, 0x0b, 0xd9, 0x53, 0x07, 0x00, 0x01, 0x00, 0x00, // IID10059 - 0x47, 0x69, 0x94, 0x63, 0x41, 0xe8, 0x28, 0x74, 0x00, 0x10, 0x00, 0x00, // IID10060 - 0x47, 0x69, 0x94, 0xe3, 0xb4, 0xf3, 0x41, 0x14, 0x00, 0x00, 0x01, 0x00, // IID10061 - 0x47, 0x69, 0x94, 0xa3, 0x25, 0x81, 0x91, 0xcf, 0x00, 0x00, 0x10, 0x00, // IID10062 - 0x47, 0x69, 0x94, 0x23, 0x76, 0x3b, 0xb3, 0x6d, 0x00, 0x00, 0x00, 0x01, // IID10063 - 0x47, 0x69, 0x94, 0xa3, 0xfe, 0xa9, 0xb8, 0x59, 0x00, 0x00, 0x00, 0x10, // IID10064 - 0x47, 0x6b, 0x9c, 0x2c, 0x88, 0xac, 0x28, 0xf3, 0x01, // IID10065 - 0x47, 0x6b, 0x9c, 0xec, 0xff, 0xa6, 0x68, 0x04, 0x10, // IID10066 - 0x47, 0x69, 0x9c, 0xec, 0x50, 0x6b, 0xbf, 0x71, 0x00, 0x01, 0x00, 0x00, // IID10067 - 0x47, 0x69, 0x9c, 0x6c, 0xd8, 0x83, 0xb2, 0x3a, 0x00, 0x10, 0x00, 0x00, // IID10068 - 0x47, 0x69, 0x9c, 0x2c, 0xec, 0x64, 0x60, 0x84, 0x00, 0x00, 0x01, 0x00, // IID10069 - 0x47, 0x69, 0x9c, 0xac, 0x58, 0xa1, 0x3d, 0x98, 0x00, 0x00, 0x10, 0x00, // IID10070 - 0x45, 0x69, 0x9c, 0x24, 0x1b, 0xc0, 0xab, 0x81, 0x00, 0x00, 0x00, 0x01, // IID10071 - 0x47, 0x69, 0x9c, 0x6c, 0xab, 0xb7, 0x92, 0xf6, 0x00, 0x00, 0x00, 0x10, // IID10072 - 0x47, 0x6b, 0xa4, 0x35, 0x23, 0x2e, 0x2e, 0xf6, 0x01, // IID10073 - 0x45, 0x6b, 0xa5, 0x60, 0x86, 0x06, 0xdb, 0x10, // IID10074 - 0x45, 0x69, 0xa5, 0x8b, 0x67, 0x67, 0x1d, 0x00, 0x01, 0x00, 0x00, // IID10075 - 0x47, 0x69, 0xa4, 0x75, 0xe0, 0x68, 0xf4, 0x61, 0x00, 0x10, 0x00, 0x00, // IID10076 - 0x47, 0x69, 0xa4, 0x75, 0xb2, 0xde, 0xc1, 0x6a, 0x00, 0x00, 0x01, 0x00, // IID10077 - 0x47, 0x69, 0xa4, 0xb5, 0xbf, 0x66, 0xbc, 0x43, 0x00, 0x00, 0x10, 0x00, // IID10078 - 0x47, 0x69, 0xa4, 0xb5, 0x0d, 0x7b, 0xb5, 0xb5, 0x00, 0x00, 0x00, 0x01, // IID10079 - 0x47, 0x69, 0xa4, 0xb5, 0x39, 0xfb, 0xea, 0xf7, 0x00, 0x00, 0x00, 0x10, // IID10080 - 0x47, 0x6b, 0xac, 0xfe, 0x1f, 0xad, 0x77, 0x9a, 0x01, // IID10081 - 0x47, 0x6b, 0xac, 0x7e, 0x0e, 0x03, 0xea, 0x06, 0x10, // IID10082 - 0x47, 0x69, 0xac, 0x3e, 0xe5, 0x3a, 0xc9, 0x61, 0x00, 0x01, 0x00, 0x00, // IID10083 - 0x47, 0x69, 0xac, 0xfe, 0x6a, 0xcb, 0x24, 0x47, 0x00, 0x10, 0x00, 0x00, // IID10084 - 0x45, 0x69, 0xae, 0x39, 0x16, 0x22, 0x45, 0x00, 0x00, 0x01, 0x00, // IID10085 - 0x47, 0x69, 0xac, 0x3e, 0xff, 0xad, 0x03, 0xc1, 0x00, 0x00, 0x10, 0x00, // IID10086 - 0x47, 0x69, 0xac, 0x7e, 0xd3, 0x1a, 0x93, 0x77, 0x00, 0x00, 0x00, 0x01, // IID10087 - 0x45, 0x69, 0xae, 0x2c, 0x9b, 0xdf, 0x7f, 0x00, 0x00, 0x00, 0x10, // IID10088 - 0xd5, 0x25, 0x6b, 0xb4, 0x07, 0x60, 0x31, 0x1f, 0x12, 0x01, // IID10089 - 0xd5, 0x25, 0x6b, 0xb4, 0xc7, 0x7c, 0xf9, 0xfc, 0x30, 0x10, // IID10090 - 0xd5, 0x25, 0x69, 0xb4, 0x07, 0x1c, 0xd0, 0x4b, 0x13, 0x00, 0x01, 0x00, 0x00, // IID10091 - 0x45, 0x69, 0xb7, 0xff, 0x59, 0xea, 0x76, 0x00, 0x10, 0x00, 0x00, // IID10092 - 0xd5, 0x25, 0x69, 0xb4, 0x47, 0xd2, 0xc4, 0xc2, 0xa9, 0x00, 0x00, 0x01, 0x00, // IID10093 - 0x45, 0x69, 0xb7, 0x43, 0xee, 0xeb, 0x12, 0x00, 0x00, 0x10, 0x00, // IID10094 - 0xd5, 0x25, 0x69, 0xb4, 0xc7, 0xf5, 0x2d, 0x95, 0x21, 0x00, 0x00, 0x00, 0x01, // IID10095 - 0xd5, 0x25, 0x69, 0xb4, 0xc7, 0x31, 0x47, 0x39, 0x41, 0x00, 0x00, 0x00, 0x10, // IID10096 - 0xd5, 0x34, 0x6b, 0xbc, 0x08, 0x56, 0xec, 0xa5, 0x4b, 0x01, // IID10097 - 0xd5, 0x34, 0x6b, 0xbc, 0xc8, 0x7e, 0xc2, 0x76, 0x75, 0x10, // IID10098 - 0xd5, 0x34, 0x69, 0xbc, 0xc8, 0xd1, 0x13, 0x4d, 0xfa, 0x00, 0x01, 0x00, 0x00, // IID10099 - 0xd5, 0x14, 0x69, 0xb8, 0xdf, 0xd6, 0x0d, 0x6a, 0x00, 0x10, 0x00, 0x00, // IID10100 - 0xd5, 0x34, 0x69, 0xbc, 0x08, 0xc2, 0x85, 0x97, 0xd3, 0x00, 0x00, 0x01, 0x00, // IID10101 - 0xd5, 0x34, 0x69, 0xbc, 0xc8, 0x78, 0x2f, 0x4a, 0xb9, 0x00, 0x00, 0x10, 0x00, // IID10102 - 0xd5, 0x34, 0x69, 0xbc, 0x08, 0xc1, 0xf0, 0xb0, 0x5c, 0x00, 0x00, 0x00, 0x01, // IID10103 - 0xd5, 0x34, 0x69, 0xbc, 0x48, 0x09, 0xbd, 0x85, 0xc3, 0x00, 0x00, 0x00, 0x10, // IID10104 - 0xd5, 0x70, 0x6b, 0x84, 0x11, 0x99, 0x0b, 0x35, 0x1f, 0x01, // IID10105 - 0xd5, 0x70, 0x6b, 0x84, 0x11, 0x1b, 0x81, 0xb7, 0x76, 0x10, // IID10106 - 0xd5, 0x70, 0x69, 0x84, 0xd1, 0x52, 0x88, 0x55, 0xea, 0x00, 0x01, 0x00, 0x00, // IID10107 - 0xd5, 0x50, 0x69, 0x81, 0x92, 0xb6, 0x29, 0x77, 0x00, 0x10, 0x00, 0x00, // IID10108 - 0xd5, 0x70, 0x69, 0x84, 0x91, 0x92, 0xa0, 0x60, 0xf3, 0x00, 0x00, 0x01, 0x00, // IID10109 - 0xd5, 0x70, 0x69, 0x84, 0x51, 0x1f, 0x99, 0x94, 0xd6, 0x00, 0x00, 0x10, 0x00, // IID10110 - 0xd5, 0x70, 0x69, 0x84, 0x11, 0x06, 0xd7, 0xbe, 0x9c, 0x00, 0x00, 0x00, 0x01, // IID10111 - 0xd5, 0x70, 0x69, 0x84, 0x91, 0x5b, 0x86, 0x21, 0xac, 0x00, 0x00, 0x00, 0x10, // IID10112 - 0xd5, 0x70, 0x6b, 0x8c, 0xda, 0xcf, 0x92, 0xa8, 0xcc, 0x01, // IID10113 - 0xd5, 0x70, 0x6b, 0x8c, 0x5a, 0xf0, 0xbb, 0x3e, 0x50, 0x10, // IID10114 - 0xd5, 0x70, 0x69, 0x8c, 0x5a, 0x81, 0x0a, 0xd7, 0x3e, 0x00, 0x01, 0x00, 0x00, // IID10115 - 0xd5, 0x50, 0x69, 0x8a, 0xd4, 0xbf, 0x15, 0x70, 0x00, 0x10, 0x00, 0x00, // IID10116 - 0xd5, 0x70, 0x69, 0x8c, 0x9a, 0x99, 0x04, 0x45, 0xfd, 0x00, 0x00, 0x01, 0x00, // IID10117 - 0xd5, 0x50, 0x69, 0x8a, 0x35, 0xa2, 0xe9, 0x8e, 0x00, 0x00, 0x10, 0x00, // IID10118 - 0xd5, 0x70, 0x69, 0x8c, 0x1a, 0xaa, 0x1b, 0xd6, 0x32, 0x00, 0x00, 0x00, 0x01, // IID10119 - 0xd5, 0x70, 0x69, 0x8c, 0x5a, 0xa2, 0x9b, 0x2e, 0xe7, 0x00, 0x00, 0x00, 0x10, // IID10120 - 0xd5, 0x70, 0x6b, 0x94, 0x23, 0xb5, 0xad, 0x94, 0xbb, 0x01, // IID10121 - 0xd5, 0x70, 0x6b, 0x94, 0xe3, 0xe3, 0xe6, 0x0e, 0xf2, 0x10, // IID10122 - 0xd5, 0x70, 0x69, 0x94, 0xe3, 0x86, 0xd1, 0x68, 0x1b, 0x00, 0x01, 0x00, 0x00, // IID10123 - 0xd5, 0x70, 0x69, 0x94, 0xe3, 0xac, 0xd9, 0x56, 0x9c, 0x00, 0x10, 0x00, 0x00, // IID10124 - 0xd5, 0x50, 0x69, 0x93, 0x58, 0x21, 0xe6, 0x39, 0x00, 0x00, 0x01, 0x00, // IID10125 - 0xd5, 0x70, 0x69, 0x94, 0x63, 0xd6, 0x28, 0x94, 0xe4, 0x00, 0x00, 0x10, 0x00, // IID10126 - 0xd5, 0x70, 0x69, 0x94, 0xe3, 0xb8, 0x27, 0x8c, 0x05, 0x00, 0x00, 0x00, 0x01, // IID10127 - 0xd5, 0x50, 0x69, 0x93, 0x7f, 0xd6, 0xf7, 0x11, 0x00, 0x00, 0x00, 0x10, // IID10128 - 0xd5, 0x70, 0x6b, 0x9c, 0x6c, 0x41, 0xf5, 0x3a, 0x20, 0x01, // IID10129 - 0xd5, 0x50, 0x6b, 0x9c, 0x24, 0xd3, 0x18, 0x11, 0xc8, 0x10, // IID10130 - 0xd5, 0x70, 0x69, 0x9c, 0x6c, 0x6b, 0xbb, 0x9b, 0x9f, 0x00, 0x01, 0x00, 0x00, // IID10131 - 0xd5, 0x50, 0x69, 0x9c, 0x24, 0x5d, 0xc1, 0x93, 0xa6, 0x00, 0x10, 0x00, 0x00, // IID10132 - 0xd5, 0x70, 0x69, 0x9c, 0x2c, 0xeb, 0xfd, 0x2b, 0xe1, 0x00, 0x00, 0x01, 0x00, // IID10133 - 0xd5, 0x70, 0x69, 0x9c, 0xec, 0x78, 0xb4, 0x0c, 0x5c, 0x00, 0x00, 0x10, 0x00, // IID10134 - 0xd5, 0x70, 0x69, 0x9c, 0x2c, 0xf5, 0xd5, 0x92, 0x08, 0x00, 0x00, 0x00, 0x01, // IID10135 - 0xd5, 0x50, 0x69, 0x9c, 0x24, 0xbb, 0xd8, 0xb0, 0x6d, 0x00, 0x00, 0x00, 0x10, // IID10136 - 0xd5, 0x70, 0x6b, 0xa4, 0xb5, 0x24, 0xad, 0xd4, 0xa7, 0x01, // IID10137 - 0xd5, 0x70, 0x6b, 0xa4, 0xb5, 0x65, 0x56, 0xf8, 0x21, 0x10, // IID10138 - 0xd5, 0x70, 0x69, 0xa4, 0x35, 0x09, 0xe3, 0x97, 0x4c, 0x00, 0x01, 0x00, 0x00, // IID10139 - 0xd5, 0x70, 0x69, 0xa4, 0xf5, 0x11, 0x91, 0x9b, 0x7c, 0x00, 0x10, 0x00, 0x00, // IID10140 - 0xd5, 0x70, 0x69, 0xa4, 0x75, 0xa7, 0x31, 0xa2, 0x5c, 0x00, 0x00, 0x01, 0x00, // IID10141 - 0xd5, 0x70, 0x69, 0xa4, 0x75, 0x62, 0x5a, 0x3b, 0x88, 0x00, 0x00, 0x10, 0x00, // IID10142 - 0xd5, 0x70, 0x69, 0xa4, 0xb5, 0x8b, 0x63, 0x0b, 0x3c, 0x00, 0x00, 0x00, 0x01, // IID10143 - 0xd5, 0x70, 0x69, 0xa4, 0xb5, 0x80, 0xbe, 0x9c, 0xfb, 0x00, 0x00, 0x00, 0x10, // IID10144 - 0xd5, 0x70, 0x6b, 0xac, 0xbe, 0x49, 0xe6, 0x73, 0x64, 0x01, // IID10145 - 0xd5, 0x70, 0x6b, 0xac, 0x3e, 0x1c, 0x40, 0xdc, 0x82, 0x10, // IID10146 - 0xd5, 0x70, 0x69, 0xac, 0xfe, 0x96, 0x11, 0x02, 0xb4, 0x00, 0x01, 0x00, 0x00, // IID10147 - 0xd5, 0x70, 0x69, 0xac, 0xbe, 0x70, 0x55, 0x08, 0x7f, 0x00, 0x10, 0x00, 0x00, // IID10148 - 0xd5, 0x50, 0x69, 0xae, 0x2b, 0x19, 0x54, 0xf8, 0x00, 0x00, 0x01, 0x00, // IID10149 - 0xd5, 0x70, 0x69, 0xac, 0xfe, 0x45, 0xba, 0x67, 0xbf, 0x00, 0x00, 0x10, 0x00, // IID10150 - 0xd5, 0x70, 0x69, 0xac, 0x7e, 0x5a, 0x63, 0xa4, 0xb8, 0x00, 0x00, 0x00, 0x01, // IID10151 - 0xd5, 0x70, 0x69, 0xac, 0x7e, 0xa6, 0x51, 0x93, 0xa1, 0x00, 0x00, 0x00, 0x10, // IID10152 - 0xd5, 0x72, 0x6b, 0xb4, 0xc7, 0xd3, 0xd9, 0x2c, 0x86, 0x01, // IID10153 - 0xd5, 0x72, 0x6b, 0xb4, 0x47, 0xb5, 0x4f, 0xa7, 0x01, 0x10, // IID10154 - 0xd5, 0x72, 0x69, 0xb4, 0x87, 0xfd, 0x15, 0x44, 0x80, 0x00, 0x01, 0x00, 0x00, // IID10155 - 0xd5, 0x72, 0x69, 0xb4, 0x07, 0xbc, 0xb0, 0x2c, 0x6f, 0x00, 0x10, 0x00, 0x00, // IID10156 - 0xd5, 0x72, 0x69, 0xb4, 0x87, 0xc4, 0xd1, 0x4c, 0x6a, 0x00, 0x00, 0x01, 0x00, // IID10157 - 0xd5, 0x72, 0x69, 0xb4, 0xc7, 0xb3, 0x41, 0x6e, 0xdf, 0x00, 0x00, 0x10, 0x00, // IID10158 - 0xd5, 0x72, 0x69, 0xb4, 0x87, 0x59, 0x69, 0xd9, 0x6b, 0x00, 0x00, 0x00, 0x01, // IID10159 - 0xd5, 0x72, 0x69, 0xb4, 0x87, 0x24, 0x53, 0xae, 0xc0, 0x00, 0x00, 0x00, 0x10, // IID10160 - 0xd5, 0x73, 0x6b, 0xbc, 0x88, 0x59, 0xef, 0xe1, 0x71, 0x01, // IID10161 - 0xd5, 0x73, 0x6b, 0xbc, 0x48, 0xb4, 0x1c, 0x0c, 0x46, 0x10, // IID10162 - 0xd5, 0x73, 0x69, 0xbc, 0xc8, 0x1d, 0xf1, 0x7a, 0x50, 0x00, 0x01, 0x00, 0x00, // IID10163 - 0xd5, 0x73, 0x69, 0xbc, 0xc8, 0x36, 0x2e, 0x46, 0xd6, 0x00, 0x10, 0x00, 0x00, // IID10164 - 0xd5, 0x73, 0x69, 0xbc, 0xc8, 0xce, 0x90, 0xe3, 0x81, 0x00, 0x00, 0x01, 0x00, // IID10165 - 0xd5, 0x73, 0x69, 0xbc, 0xc8, 0x3c, 0x23, 0xf9, 0xe4, 0x00, 0x00, 0x10, 0x00, // IID10166 - 0xd5, 0x73, 0x69, 0xbc, 0x08, 0xfe, 0x06, 0xa7, 0x91, 0x00, 0x00, 0x00, 0x01, // IID10167 - 0xd5, 0x73, 0x69, 0xbc, 0x88, 0x6d, 0xb7, 0x71, 0x41, 0x00, 0x00, 0x00, 0x10, // IID10168 - 0xd5, 0x55, 0x6b, 0x81, 0x25, 0x3c, 0xd6, 0x02, 0x01, // IID10169 - 0xd5, 0x77, 0x6b, 0x84, 0x91, 0x1a, 0x38, 0x5a, 0x57, 0x10, // IID10170 - 0xd5, 0x77, 0x69, 0x84, 0x91, 0xd9, 0xfe, 0xf2, 0x9c, 0x00, 0x01, 0x00, 0x00, // IID10171 - 0xd5, 0x77, 0x69, 0x84, 0x51, 0xab, 0x48, 0x8a, 0x40, 0x00, 0x10, 0x00, 0x00, // IID10172 - 0xd5, 0x77, 0x69, 0x84, 0x51, 0xe8, 0x02, 0x14, 0x16, 0x00, 0x00, 0x01, 0x00, // IID10173 - 0xd5, 0x77, 0x69, 0x84, 0xd1, 0x7e, 0xd1, 0x71, 0xfe, 0x00, 0x00, 0x10, 0x00, // IID10174 - 0xd5, 0x77, 0x69, 0x84, 0x91, 0x21, 0xc8, 0x9d, 0xf5, 0x00, 0x00, 0x00, 0x01, // IID10175 - 0xd5, 0x77, 0x69, 0x84, 0x91, 0xfb, 0x1a, 0x8f, 0x26, 0x00, 0x00, 0x00, 0x10, // IID10176 - 0xd5, 0x77, 0x6b, 0x8c, 0x5a, 0x2f, 0x47, 0xf7, 0x33, 0x01, // IID10177 - 0xd5, 0x55, 0x6b, 0x8a, 0x2e, 0x11, 0x11, 0xd8, 0x10, // IID10178 - 0xd5, 0x77, 0x69, 0x8c, 0x5a, 0x7f, 0xf5, 0x8b, 0x46, 0x00, 0x01, 0x00, 0x00, // IID10179 - 0xd5, 0x77, 0x69, 0x8c, 0xda, 0xa4, 0xfc, 0xd3, 0x36, 0x00, 0x10, 0x00, 0x00, // IID10180 - 0xd5, 0x77, 0x69, 0x8c, 0x5a, 0x18, 0xaa, 0x68, 0x07, 0x00, 0x00, 0x01, 0x00, // IID10181 - 0xd5, 0x55, 0x69, 0x8a, 0x60, 0xab, 0x5b, 0x15, 0x00, 0x00, 0x10, 0x00, // IID10182 - 0xd5, 0x77, 0x69, 0x8c, 0xda, 0x74, 0x0e, 0xac, 0xb3, 0x00, 0x00, 0x00, 0x01, // IID10183 - 0xd5, 0x55, 0x69, 0x8a, 0xd4, 0x53, 0x53, 0x8e, 0x00, 0x00, 0x00, 0x10, // IID10184 - 0xd5, 0x77, 0x6b, 0x94, 0x23, 0x2c, 0x81, 0x2e, 0x08, 0x01, // IID10185 - 0xd5, 0x77, 0x6b, 0x94, 0x63, 0xd9, 0x56, 0xf8, 0x40, 0x10, // IID10186 - 0xd5, 0x77, 0x69, 0x94, 0xe3, 0x40, 0x6f, 0x0c, 0x0a, 0x00, 0x01, 0x00, 0x00, // IID10187 - 0xd5, 0x77, 0x69, 0x94, 0x63, 0x0c, 0x44, 0x80, 0x42, 0x00, 0x10, 0x00, 0x00, // IID10188 - 0xd5, 0x77, 0x69, 0x94, 0x23, 0xaa, 0x4f, 0x3c, 0x63, 0x00, 0x00, 0x01, 0x00, // IID10189 - 0xd5, 0x77, 0x69, 0x94, 0xa3, 0x70, 0x32, 0x2a, 0xc8, 0x00, 0x00, 0x10, 0x00, // IID10190 - 0xd5, 0x77, 0x69, 0x94, 0x63, 0x6e, 0xa6, 0x1b, 0x88, 0x00, 0x00, 0x00, 0x01, // IID10191 - 0xd5, 0x55, 0x69, 0x93, 0x29, 0xd6, 0x1c, 0x49, 0x00, 0x00, 0x00, 0x10, // IID10192 - 0xd5, 0x77, 0x6b, 0x9c, 0xec, 0x44, 0x7b, 0xf6, 0x8b, 0x01, // IID10193 - 0xd5, 0x77, 0x6b, 0x9c, 0x2c, 0x85, 0xa5, 0xc9, 0x3a, 0x10, // IID10194 - 0xd5, 0x77, 0x69, 0x9c, 0x2c, 0xd6, 0xcd, 0x86, 0x7a, 0x00, 0x01, 0x00, 0x00, // IID10195 - 0xd5, 0x77, 0x69, 0x9c, 0x6c, 0xf6, 0xb1, 0x9c, 0x60, 0x00, 0x10, 0x00, 0x00, // IID10196 - 0xd5, 0x77, 0x69, 0x9c, 0xec, 0x62, 0xa1, 0xb9, 0x93, 0x00, 0x00, 0x01, 0x00, // IID10197 - 0xd5, 0x55, 0x69, 0x9c, 0x24, 0x9b, 0xeb, 0x12, 0xda, 0x00, 0x00, 0x10, 0x00, // IID10198 - 0xd5, 0x77, 0x69, 0x9c, 0x2c, 0xdb, 0x56, 0xad, 0x79, 0x00, 0x00, 0x00, 0x01, // IID10199 - 0xd5, 0x77, 0x69, 0x9c, 0x2c, 0x8b, 0x92, 0x9c, 0x9a, 0x00, 0x00, 0x00, 0x10, // IID10200 - 0xd5, 0x77, 0x6b, 0xa4, 0xf5, 0xb8, 0x1b, 0x9e, 0x39, 0x01, // IID10201 - 0xd5, 0x77, 0x6b, 0xa4, 0xf5, 0x1d, 0x88, 0x20, 0x74, 0x10, // IID10202 - 0xd5, 0x77, 0x69, 0xa4, 0x75, 0xdd, 0x9b, 0xf6, 0x00, 0x00, 0x01, 0x00, 0x00, // IID10203 - 0xd5, 0x77, 0x69, 0xa4, 0x75, 0x0b, 0x51, 0x1b, 0x49, 0x00, 0x10, 0x00, 0x00, // IID10204 - 0xd5, 0x77, 0x69, 0xa4, 0x35, 0x46, 0x7b, 0xd1, 0xff, 0x00, 0x00, 0x01, 0x00, // IID10205 - 0xd5, 0x77, 0x69, 0xa4, 0xf5, 0x55, 0xc4, 0x4d, 0x14, 0x00, 0x00, 0x10, 0x00, // IID10206 - 0xd5, 0x77, 0x69, 0xa4, 0x75, 0x1d, 0xf2, 0xf4, 0x27, 0x00, 0x00, 0x00, 0x01, // IID10207 - 0xd5, 0x77, 0x69, 0xa4, 0xf5, 0xc2, 0xb5, 0xca, 0x73, 0x00, 0x00, 0x00, 0x10, // IID10208 - 0xd5, 0x77, 0x6b, 0xac, 0xfe, 0x82, 0x44, 0xeb, 0x12, 0x01, // IID10209 - 0xd5, 0x77, 0x6b, 0xac, 0x3e, 0x36, 0xd7, 0x34, 0x22, 0x10, // IID10210 - 0xd5, 0x55, 0x69, 0xae, 0x0d, 0x0f, 0x3b, 0x2c, 0x00, 0x01, 0x00, 0x00, // IID10211 - 0xd5, 0x77, 0x69, 0xac, 0xfe, 0x6e, 0x70, 0xbf, 0x14, 0x00, 0x10, 0x00, 0x00, // IID10212 - 0xd5, 0x77, 0x69, 0xac, 0xbe, 0xdb, 0xa4, 0x61, 0xb7, 0x00, 0x00, 0x01, 0x00, // IID10213 - 0xd5, 0x77, 0x69, 0xac, 0xfe, 0x43, 0x10, 0x8d, 0x20, 0x00, 0x00, 0x10, 0x00, // IID10214 - 0xd5, 0x77, 0x69, 0xac, 0xfe, 0x55, 0x69, 0x3b, 0x18, 0x00, 0x00, 0x00, 0x01, // IID10215 - 0xd5, 0x77, 0x69, 0xac, 0xbe, 0xc1, 0xb3, 0x8c, 0xfc, 0x00, 0x00, 0x00, 0x10, // IID10216 - 0xd5, 0x55, 0x6b, 0xb4, 0x8f, 0x44, 0x85, 0x45, 0xf4, 0x01, // IID10217 - 0xd5, 0x55, 0x6b, 0xb4, 0x0f, 0x05, 0x4c, 0x68, 0x9c, 0x10, // IID10218 - 0xd5, 0x55, 0x69, 0xb7, 0x77, 0x83, 0xea, 0x48, 0x00, 0x01, 0x00, 0x00, // IID10219 - 0xd5, 0x55, 0x69, 0xb7, 0xe9, 0xca, 0x07, 0xa7, 0x00, 0x10, 0x00, 0x00, // IID10220 - 0xd5, 0x55, 0x69, 0xb7, 0xa5, 0x56, 0xac, 0x19, 0x00, 0x00, 0x01, 0x00, // IID10221 - 0xd5, 0x55, 0x69, 0xb4, 0x0f, 0x49, 0x36, 0xd7, 0xf3, 0x00, 0x00, 0x10, 0x00, // IID10222 - 0xd5, 0x55, 0x69, 0xb4, 0x8f, 0xe5, 0xbd, 0xfb, 0xd0, 0x00, 0x00, 0x00, 0x01, // IID10223 - 0xd5, 0x55, 0x69, 0xb4, 0xcf, 0x95, 0xc9, 0xf0, 0xed, 0x00, 0x00, 0x00, 0x10, // IID10224 - 0xd5, 0x44, 0x6b, 0xb9, 0x9e, 0x18, 0xcc, 0xc5, 0x01, // IID10225 - 0xd5, 0x44, 0x6b, 0xbc, 0x51, 0xeb, 0xf7, 0x7e, 0xbb, 0x10, // IID10226 - 0xd5, 0x44, 0x69, 0xb9, 0x68, 0x5f, 0xc7, 0x65, 0x00, 0x01, 0x00, 0x00, // IID10227 - 0xd5, 0x44, 0x69, 0xbc, 0x91, 0x7b, 0x36, 0xb1, 0x8a, 0x00, 0x10, 0x00, 0x00, // IID10228 - 0xd5, 0x44, 0x69, 0xb9, 0x72, 0xd5, 0x9e, 0x8f, 0x00, 0x00, 0x01, 0x00, // IID10229 - 0xd5, 0x44, 0x69, 0xbc, 0xd1, 0x5b, 0xa6, 0xaf, 0x45, 0x00, 0x00, 0x10, 0x00, // IID10230 - 0xd5, 0x44, 0x69, 0xbc, 0x11, 0x4c, 0xd1, 0x21, 0x30, 0x00, 0x00, 0x00, 0x01, // IID10231 - 0xd5, 0x44, 0x69, 0xbc, 0xd1, 0x83, 0xae, 0xc3, 0xaf, 0x00, 0x00, 0x00, 0x10, // IID10232 -#endif // _LP64 - 0x6b, 0xca, 0x01, // IID10233 - 0x6b, 0xca, 0x10, // IID10234 - 0x69, 0xca, 0x00, 0x01, 0x00, 0x00, // IID10235 - 0x69, 0xca, 0x00, 0x10, 0x00, 0x00, // IID10236 - 0x69, 0xca, 0x00, 0x00, 0x01, 0x00, // IID10237 - 0x69, 0xca, 0x00, 0x00, 0x10, 0x00, // IID10238 - 0x69, 0xca, 0x00, 0x00, 0x00, 0x01, // IID10239 - 0x69, 0xca, 0x00, 0x00, 0x00, 0x10, // IID10240 - 0x6b, 0xd3, 0x01, // IID10241 - 0x6b, 0xd3, 0x10, // IID10242 - 0x69, 0xd3, 0x00, 0x01, 0x00, 0x00, // IID10243 - 0x69, 0xd3, 0x00, 0x10, 0x00, 0x00, // IID10244 - 0x69, 0xd3, 0x00, 0x00, 0x01, 0x00, // IID10245 - 0x69, 0xd3, 0x00, 0x00, 0x10, 0x00, // IID10246 - 0x69, 0xd3, 0x00, 0x00, 0x00, 0x01, // IID10247 - 0x69, 0xd3, 0x00, 0x00, 0x00, 0x10, // IID10248 -#ifdef _LP64 - 0x41, 0x6b, 0xd8, 0x01, // IID10249 - 0x41, 0x6b, 0xd8, 0x10, // IID10250 - 0x41, 0x69, 0xd8, 0x00, 0x01, 0x00, 0x00, // IID10251 - 0x41, 0x69, 0xd8, 0x00, 0x10, 0x00, 0x00, // IID10252 - 0x41, 0x69, 0xd8, 0x00, 0x00, 0x01, 0x00, // IID10253 - 0x41, 0x69, 0xd8, 0x00, 0x00, 0x10, 0x00, // IID10254 - 0x41, 0x69, 0xd8, 0x00, 0x00, 0x00, 0x01, // IID10255 - 0x41, 0x69, 0xd8, 0x00, 0x00, 0x00, 0x10, // IID10256 - 0x45, 0x6b, 0xc1, 0x01, // IID10257 - 0x45, 0x6b, 0xc1, 0x10, // IID10258 - 0x45, 0x69, 0xc1, 0x00, 0x01, 0x00, 0x00, // IID10259 - 0x45, 0x69, 0xc1, 0x00, 0x10, 0x00, 0x00, // IID10260 - 0x45, 0x69, 0xc1, 0x00, 0x00, 0x01, 0x00, // IID10261 - 0x45, 0x69, 0xc1, 0x00, 0x00, 0x10, 0x00, // IID10262 - 0x45, 0x69, 0xc1, 0x00, 0x00, 0x00, 0x01, // IID10263 - 0x45, 0x69, 0xc1, 0x00, 0x00, 0x00, 0x10, // IID10264 - 0x45, 0x6b, 0xca, 0x01, // IID10265 - 0x45, 0x6b, 0xca, 0x10, // IID10266 - 0x45, 0x69, 0xca, 0x00, 0x01, 0x00, 0x00, // IID10267 - 0x45, 0x69, 0xca, 0x00, 0x10, 0x00, 0x00, // IID10268 - 0x45, 0x69, 0xca, 0x00, 0x00, 0x01, 0x00, // IID10269 - 0x45, 0x69, 0xca, 0x00, 0x00, 0x10, 0x00, // IID10270 - 0x45, 0x69, 0xca, 0x00, 0x00, 0x00, 0x01, // IID10271 - 0x45, 0x69, 0xca, 0x00, 0x00, 0x00, 0x10, // IID10272 - 0x45, 0x6b, 0xd3, 0x01, // IID10273 - 0x45, 0x6b, 0xd3, 0x10, // IID10274 - 0x45, 0x69, 0xd3, 0x00, 0x01, 0x00, 0x00, // IID10275 - 0x45, 0x69, 0xd3, 0x00, 0x10, 0x00, 0x00, // IID10276 - 0x45, 0x69, 0xd3, 0x00, 0x00, 0x01, 0x00, // IID10277 - 0x45, 0x69, 0xd3, 0x00, 0x00, 0x10, 0x00, // IID10278 - 0x45, 0x69, 0xd3, 0x00, 0x00, 0x00, 0x01, // IID10279 - 0x45, 0x69, 0xd3, 0x00, 0x00, 0x00, 0x10, // IID10280 - 0x45, 0x6b, 0xdc, 0x01, // IID10281 - 0x45, 0x6b, 0xdc, 0x10, // IID10282 - 0x45, 0x69, 0xdc, 0x00, 0x01, 0x00, 0x00, // IID10283 - 0x45, 0x69, 0xdc, 0x00, 0x10, 0x00, 0x00, // IID10284 - 0x45, 0x69, 0xdc, 0x00, 0x00, 0x01, 0x00, // IID10285 - 0x45, 0x69, 0xdc, 0x00, 0x00, 0x10, 0x00, // IID10286 - 0x45, 0x69, 0xdc, 0x00, 0x00, 0x00, 0x01, // IID10287 - 0x45, 0x69, 0xdc, 0x00, 0x00, 0x00, 0x10, // IID10288 - 0x45, 0x6b, 0xe5, 0x01, // IID10289 - 0x45, 0x6b, 0xe5, 0x10, // IID10290 - 0x45, 0x69, 0xe5, 0x00, 0x01, 0x00, 0x00, // IID10291 - 0x45, 0x69, 0xe5, 0x00, 0x10, 0x00, 0x00, // IID10292 - 0x45, 0x69, 0xe5, 0x00, 0x00, 0x01, 0x00, // IID10293 - 0x45, 0x69, 0xe5, 0x00, 0x00, 0x10, 0x00, // IID10294 - 0x45, 0x69, 0xe5, 0x00, 0x00, 0x00, 0x01, // IID10295 - 0x45, 0x69, 0xe5, 0x00, 0x00, 0x00, 0x10, // IID10296 - 0x45, 0x6b, 0xee, 0x01, // IID10297 - 0x45, 0x6b, 0xee, 0x10, // IID10298 - 0x45, 0x69, 0xee, 0x00, 0x01, 0x00, 0x00, // IID10299 - 0x45, 0x69, 0xee, 0x00, 0x10, 0x00, 0x00, // IID10300 - 0x45, 0x69, 0xee, 0x00, 0x00, 0x01, 0x00, // IID10301 - 0x45, 0x69, 0xee, 0x00, 0x00, 0x10, 0x00, // IID10302 - 0x45, 0x69, 0xee, 0x00, 0x00, 0x00, 0x01, // IID10303 - 0x45, 0x69, 0xee, 0x00, 0x00, 0x00, 0x10, // IID10304 - 0x45, 0x6b, 0xf7, 0x01, // IID10305 - 0x45, 0x6b, 0xf7, 0x10, // IID10306 - 0x45, 0x69, 0xf7, 0x00, 0x01, 0x00, 0x00, // IID10307 - 0x45, 0x69, 0xf7, 0x00, 0x10, 0x00, 0x00, // IID10308 - 0x45, 0x69, 0xf7, 0x00, 0x00, 0x01, 0x00, // IID10309 - 0x45, 0x69, 0xf7, 0x00, 0x00, 0x10, 0x00, // IID10310 - 0x45, 0x69, 0xf7, 0x00, 0x00, 0x00, 0x01, // IID10311 - 0x45, 0x69, 0xf7, 0x00, 0x00, 0x00, 0x10, // IID10312 - 0xd5, 0x14, 0x6b, 0xf8, 0x01, // IID10313 - 0xd5, 0x14, 0x6b, 0xf8, 0x10, // IID10314 - 0xd5, 0x14, 0x69, 0xf8, 0x00, 0x01, 0x00, 0x00, // IID10315 - 0xd5, 0x14, 0x69, 0xf8, 0x00, 0x10, 0x00, 0x00, // IID10316 - 0xd5, 0x14, 0x69, 0xf8, 0x00, 0x00, 0x01, 0x00, // IID10317 - 0xd5, 0x14, 0x69, 0xf8, 0x00, 0x00, 0x10, 0x00, // IID10318 - 0xd5, 0x14, 0x69, 0xf8, 0x00, 0x00, 0x00, 0x01, // IID10319 - 0xd5, 0x14, 0x69, 0xf8, 0x00, 0x00, 0x00, 0x10, // IID10320 - 0xd5, 0x50, 0x6b, 0xc1, 0x01, // IID10321 - 0xd5, 0x50, 0x6b, 0xc1, 0x10, // IID10322 - 0xd5, 0x50, 0x69, 0xc1, 0x00, 0x01, 0x00, 0x00, // IID10323 - 0xd5, 0x50, 0x69, 0xc1, 0x00, 0x10, 0x00, 0x00, // IID10324 - 0xd5, 0x50, 0x69, 0xc1, 0x00, 0x00, 0x01, 0x00, // IID10325 - 0xd5, 0x50, 0x69, 0xc1, 0x00, 0x00, 0x10, 0x00, // IID10326 - 0xd5, 0x50, 0x69, 0xc1, 0x00, 0x00, 0x00, 0x01, // IID10327 - 0xd5, 0x50, 0x69, 0xc1, 0x00, 0x00, 0x00, 0x10, // IID10328 - 0xd5, 0x50, 0x6b, 0xca, 0x01, // IID10329 - 0xd5, 0x50, 0x6b, 0xca, 0x10, // IID10330 - 0xd5, 0x50, 0x69, 0xca, 0x00, 0x01, 0x00, 0x00, // IID10331 - 0xd5, 0x50, 0x69, 0xca, 0x00, 0x10, 0x00, 0x00, // IID10332 - 0xd5, 0x50, 0x69, 0xca, 0x00, 0x00, 0x01, 0x00, // IID10333 - 0xd5, 0x50, 0x69, 0xca, 0x00, 0x00, 0x10, 0x00, // IID10334 - 0xd5, 0x50, 0x69, 0xca, 0x00, 0x00, 0x00, 0x01, // IID10335 - 0xd5, 0x50, 0x69, 0xca, 0x00, 0x00, 0x00, 0x10, // IID10336 - 0xd5, 0x50, 0x6b, 0xd3, 0x01, // IID10337 - 0xd5, 0x50, 0x6b, 0xd3, 0x10, // IID10338 - 0xd5, 0x50, 0x69, 0xd3, 0x00, 0x01, 0x00, 0x00, // IID10339 - 0xd5, 0x50, 0x69, 0xd3, 0x00, 0x10, 0x00, 0x00, // IID10340 - 0xd5, 0x50, 0x69, 0xd3, 0x00, 0x00, 0x01, 0x00, // IID10341 - 0xd5, 0x50, 0x69, 0xd3, 0x00, 0x00, 0x10, 0x00, // IID10342 - 0xd5, 0x50, 0x69, 0xd3, 0x00, 0x00, 0x00, 0x01, // IID10343 - 0xd5, 0x50, 0x69, 0xd3, 0x00, 0x00, 0x00, 0x10, // IID10344 - 0xd5, 0x50, 0x6b, 0xdc, 0x01, // IID10345 - 0xd5, 0x50, 0x6b, 0xdc, 0x10, // IID10346 - 0xd5, 0x50, 0x69, 0xdc, 0x00, 0x01, 0x00, 0x00, // IID10347 - 0xd5, 0x50, 0x69, 0xdc, 0x00, 0x10, 0x00, 0x00, // IID10348 - 0xd5, 0x50, 0x69, 0xdc, 0x00, 0x00, 0x01, 0x00, // IID10349 - 0xd5, 0x50, 0x69, 0xdc, 0x00, 0x00, 0x10, 0x00, // IID10350 - 0xd5, 0x50, 0x69, 0xdc, 0x00, 0x00, 0x00, 0x01, // IID10351 - 0xd5, 0x50, 0x69, 0xdc, 0x00, 0x00, 0x00, 0x10, // IID10352 - 0xd5, 0x50, 0x6b, 0xe5, 0x01, // IID10353 - 0xd5, 0x50, 0x6b, 0xe5, 0x10, // IID10354 - 0xd5, 0x50, 0x69, 0xe5, 0x00, 0x01, 0x00, 0x00, // IID10355 - 0xd5, 0x50, 0x69, 0xe5, 0x00, 0x10, 0x00, 0x00, // IID10356 - 0xd5, 0x50, 0x69, 0xe5, 0x00, 0x00, 0x01, 0x00, // IID10357 - 0xd5, 0x50, 0x69, 0xe5, 0x00, 0x00, 0x10, 0x00, // IID10358 - 0xd5, 0x50, 0x69, 0xe5, 0x00, 0x00, 0x00, 0x01, // IID10359 - 0xd5, 0x50, 0x69, 0xe5, 0x00, 0x00, 0x00, 0x10, // IID10360 - 0xd5, 0x50, 0x6b, 0xee, 0x01, // IID10361 - 0xd5, 0x50, 0x6b, 0xee, 0x10, // IID10362 - 0xd5, 0x50, 0x69, 0xee, 0x00, 0x01, 0x00, 0x00, // IID10363 - 0xd5, 0x50, 0x69, 0xee, 0x00, 0x10, 0x00, 0x00, // IID10364 - 0xd5, 0x50, 0x69, 0xee, 0x00, 0x00, 0x01, 0x00, // IID10365 - 0xd5, 0x50, 0x69, 0xee, 0x00, 0x00, 0x10, 0x00, // IID10366 - 0xd5, 0x50, 0x69, 0xee, 0x00, 0x00, 0x00, 0x01, // IID10367 - 0xd5, 0x50, 0x69, 0xee, 0x00, 0x00, 0x00, 0x10, // IID10368 - 0xd5, 0x50, 0x6b, 0xf7, 0x01, // IID10369 - 0xd5, 0x50, 0x6b, 0xf7, 0x10, // IID10370 - 0xd5, 0x50, 0x69, 0xf7, 0x00, 0x01, 0x00, 0x00, // IID10371 - 0xd5, 0x50, 0x69, 0xf7, 0x00, 0x10, 0x00, 0x00, // IID10372 - 0xd5, 0x50, 0x69, 0xf7, 0x00, 0x00, 0x01, 0x00, // IID10373 - 0xd5, 0x50, 0x69, 0xf7, 0x00, 0x00, 0x10, 0x00, // IID10374 - 0xd5, 0x50, 0x69, 0xf7, 0x00, 0x00, 0x00, 0x01, // IID10375 - 0xd5, 0x50, 0x69, 0xf7, 0x00, 0x00, 0x00, 0x10, // IID10376 - 0xd5, 0x51, 0x6b, 0xf8, 0x01, // IID10377 - 0xd5, 0x51, 0x6b, 0xf8, 0x10, // IID10378 - 0xd5, 0x51, 0x69, 0xf8, 0x00, 0x01, 0x00, 0x00, // IID10379 - 0xd5, 0x51, 0x69, 0xf8, 0x00, 0x10, 0x00, 0x00, // IID10380 - 0xd5, 0x51, 0x69, 0xf8, 0x00, 0x00, 0x01, 0x00, // IID10381 - 0xd5, 0x51, 0x69, 0xf8, 0x00, 0x00, 0x10, 0x00, // IID10382 - 0xd5, 0x51, 0x69, 0xf8, 0x00, 0x00, 0x00, 0x01, // IID10383 - 0xd5, 0x51, 0x69, 0xf8, 0x00, 0x00, 0x00, 0x10, // IID10384 - 0xd5, 0x55, 0x6b, 0xc1, 0x01, // IID10385 - 0xd5, 0x55, 0x6b, 0xc1, 0x10, // IID10386 - 0xd5, 0x55, 0x69, 0xc1, 0x00, 0x01, 0x00, 0x00, // IID10387 - 0xd5, 0x55, 0x69, 0xc1, 0x00, 0x10, 0x00, 0x00, // IID10388 - 0xd5, 0x55, 0x69, 0xc1, 0x00, 0x00, 0x01, 0x00, // IID10389 - 0xd5, 0x55, 0x69, 0xc1, 0x00, 0x00, 0x10, 0x00, // IID10390 - 0xd5, 0x55, 0x69, 0xc1, 0x00, 0x00, 0x00, 0x01, // IID10391 - 0xd5, 0x55, 0x69, 0xc1, 0x00, 0x00, 0x00, 0x10, // IID10392 - 0xd5, 0x55, 0x6b, 0xca, 0x01, // IID10393 - 0xd5, 0x55, 0x6b, 0xca, 0x10, // IID10394 - 0xd5, 0x55, 0x69, 0xca, 0x00, 0x01, 0x00, 0x00, // IID10395 - 0xd5, 0x55, 0x69, 0xca, 0x00, 0x10, 0x00, 0x00, // IID10396 - 0xd5, 0x55, 0x69, 0xca, 0x00, 0x00, 0x01, 0x00, // IID10397 - 0xd5, 0x55, 0x69, 0xca, 0x00, 0x00, 0x10, 0x00, // IID10398 - 0xd5, 0x55, 0x69, 0xca, 0x00, 0x00, 0x00, 0x01, // IID10399 - 0xd5, 0x55, 0x69, 0xca, 0x00, 0x00, 0x00, 0x10, // IID10400 - 0xd5, 0x55, 0x6b, 0xd3, 0x01, // IID10401 - 0xd5, 0x55, 0x6b, 0xd3, 0x10, // IID10402 - 0xd5, 0x55, 0x69, 0xd3, 0x00, 0x01, 0x00, 0x00, // IID10403 - 0xd5, 0x55, 0x69, 0xd3, 0x00, 0x10, 0x00, 0x00, // IID10404 - 0xd5, 0x55, 0x69, 0xd3, 0x00, 0x00, 0x01, 0x00, // IID10405 - 0xd5, 0x55, 0x69, 0xd3, 0x00, 0x00, 0x10, 0x00, // IID10406 - 0xd5, 0x55, 0x69, 0xd3, 0x00, 0x00, 0x00, 0x01, // IID10407 - 0xd5, 0x55, 0x69, 0xd3, 0x00, 0x00, 0x00, 0x10, // IID10408 - 0xd5, 0x55, 0x6b, 0xdc, 0x01, // IID10409 - 0xd5, 0x55, 0x6b, 0xdc, 0x10, // IID10410 - 0xd5, 0x55, 0x69, 0xdc, 0x00, 0x01, 0x00, 0x00, // IID10411 - 0xd5, 0x55, 0x69, 0xdc, 0x00, 0x10, 0x00, 0x00, // IID10412 - 0xd5, 0x55, 0x69, 0xdc, 0x00, 0x00, 0x01, 0x00, // IID10413 - 0xd5, 0x55, 0x69, 0xdc, 0x00, 0x00, 0x10, 0x00, // IID10414 - 0xd5, 0x55, 0x69, 0xdc, 0x00, 0x00, 0x00, 0x01, // IID10415 - 0xd5, 0x55, 0x69, 0xdc, 0x00, 0x00, 0x00, 0x10, // IID10416 - 0xd5, 0x55, 0x6b, 0xe5, 0x01, // IID10417 - 0xd5, 0x55, 0x6b, 0xe5, 0x10, // IID10418 - 0xd5, 0x55, 0x69, 0xe5, 0x00, 0x01, 0x00, 0x00, // IID10419 - 0xd5, 0x55, 0x69, 0xe5, 0x00, 0x10, 0x00, 0x00, // IID10420 - 0xd5, 0x55, 0x69, 0xe5, 0x00, 0x00, 0x01, 0x00, // IID10421 - 0xd5, 0x55, 0x69, 0xe5, 0x00, 0x00, 0x10, 0x00, // IID10422 - 0xd5, 0x55, 0x69, 0xe5, 0x00, 0x00, 0x00, 0x01, // IID10423 - 0xd5, 0x55, 0x69, 0xe5, 0x00, 0x00, 0x00, 0x10, // IID10424 - 0xd5, 0x55, 0x6b, 0xee, 0x01, // IID10425 - 0xd5, 0x55, 0x6b, 0xee, 0x10, // IID10426 - 0xd5, 0x55, 0x69, 0xee, 0x00, 0x01, 0x00, 0x00, // IID10427 - 0xd5, 0x55, 0x69, 0xee, 0x00, 0x10, 0x00, 0x00, // IID10428 - 0xd5, 0x55, 0x69, 0xee, 0x00, 0x00, 0x01, 0x00, // IID10429 - 0xd5, 0x55, 0x69, 0xee, 0x00, 0x00, 0x10, 0x00, // IID10430 - 0xd5, 0x55, 0x69, 0xee, 0x00, 0x00, 0x00, 0x01, // IID10431 - 0xd5, 0x55, 0x69, 0xee, 0x00, 0x00, 0x00, 0x10, // IID10432 - 0xd5, 0x55, 0x6b, 0xf7, 0x01, // IID10433 - 0xd5, 0x55, 0x6b, 0xf7, 0x10, // IID10434 - 0xd5, 0x55, 0x69, 0xf7, 0x00, 0x01, 0x00, 0x00, // IID10435 - 0xd5, 0x55, 0x69, 0xf7, 0x00, 0x10, 0x00, 0x00, // IID10436 - 0xd5, 0x55, 0x69, 0xf7, 0x00, 0x00, 0x01, 0x00, // IID10437 - 0xd5, 0x55, 0x69, 0xf7, 0x00, 0x00, 0x10, 0x00, // IID10438 - 0xd5, 0x55, 0x69, 0xf7, 0x00, 0x00, 0x00, 0x01, // IID10439 - 0xd5, 0x55, 0x69, 0xf7, 0x00, 0x00, 0x00, 0x10, // IID10440 - 0xd5, 0x44, 0x6b, 0xf9, 0x01, // IID10441 - 0xd5, 0x44, 0x6b, 0xf9, 0x10, // IID10442 - 0xd5, 0x44, 0x69, 0xf9, 0x00, 0x01, 0x00, 0x00, // IID10443 - 0xd5, 0x44, 0x69, 0xf9, 0x00, 0x10, 0x00, 0x00, // IID10444 - 0xd5, 0x44, 0x69, 0xf9, 0x00, 0x00, 0x01, 0x00, // IID10445 - 0xd5, 0x44, 0x69, 0xf9, 0x00, 0x00, 0x10, 0x00, // IID10446 - 0xd5, 0x44, 0x69, 0xf9, 0x00, 0x00, 0x00, 0x01, // IID10447 - 0xd5, 0x44, 0x69, 0xf9, 0x00, 0x00, 0x00, 0x10, // IID10448 -#endif // _LP64 - 0x0f, 0xa4, 0xd1, 0x01, // IID10449 - 0x0f, 0xa4, 0xd1, 0x02, // IID10450 - 0x0f, 0xa4, 0xd1, 0x04, // IID10451 - 0x0f, 0xa4, 0xd1, 0x08, // IID10452 - 0x0f, 0xa4, 0xd1, 0x10, // IID10453 - 0x0f, 0xa4, 0xda, 0x01, // IID10454 - 0x0f, 0xa4, 0xda, 0x02, // IID10455 - 0x0f, 0xa4, 0xda, 0x04, // IID10456 - 0x0f, 0xa4, 0xda, 0x08, // IID10457 - 0x0f, 0xa4, 0xda, 0x10, // IID10458 -#ifdef _LP64 - 0x44, 0x0f, 0xa4, 0xc3, 0x01, // IID10459 - 0x44, 0x0f, 0xa4, 0xc3, 0x02, // IID10460 - 0x44, 0x0f, 0xa4, 0xc3, 0x04, // IID10461 - 0x44, 0x0f, 0xa4, 0xc3, 0x08, // IID10462 - 0x44, 0x0f, 0xa4, 0xc3, 0x10, // IID10463 - 0x45, 0x0f, 0xa4, 0xc8, 0x01, // IID10464 - 0x45, 0x0f, 0xa4, 0xc8, 0x02, // IID10465 - 0x45, 0x0f, 0xa4, 0xc8, 0x04, // IID10466 - 0x45, 0x0f, 0xa4, 0xc8, 0x08, // IID10467 - 0x45, 0x0f, 0xa4, 0xc8, 0x10, // IID10468 - 0x45, 0x0f, 0xa4, 0xd1, 0x01, // IID10469 - 0x45, 0x0f, 0xa4, 0xd1, 0x02, // IID10470 - 0x45, 0x0f, 0xa4, 0xd1, 0x04, // IID10471 - 0x45, 0x0f, 0xa4, 0xd1, 0x08, // IID10472 - 0x45, 0x0f, 0xa4, 0xd1, 0x10, // IID10473 - 0x45, 0x0f, 0xa4, 0xda, 0x01, // IID10474 - 0x45, 0x0f, 0xa4, 0xda, 0x02, // IID10475 - 0x45, 0x0f, 0xa4, 0xda, 0x04, // IID10476 - 0x45, 0x0f, 0xa4, 0xda, 0x08, // IID10477 - 0x45, 0x0f, 0xa4, 0xda, 0x10, // IID10478 - 0x45, 0x0f, 0xa4, 0xe3, 0x01, // IID10479 - 0x45, 0x0f, 0xa4, 0xe3, 0x02, // IID10480 - 0x45, 0x0f, 0xa4, 0xe3, 0x04, // IID10481 - 0x45, 0x0f, 0xa4, 0xe3, 0x08, // IID10482 - 0x45, 0x0f, 0xa4, 0xe3, 0x10, // IID10483 - 0x45, 0x0f, 0xa4, 0xec, 0x01, // IID10484 - 0x45, 0x0f, 0xa4, 0xec, 0x02, // IID10485 - 0x45, 0x0f, 0xa4, 0xec, 0x04, // IID10486 - 0x45, 0x0f, 0xa4, 0xec, 0x08, // IID10487 - 0x45, 0x0f, 0xa4, 0xec, 0x10, // IID10488 - 0x45, 0x0f, 0xa4, 0xf5, 0x01, // IID10489 - 0x45, 0x0f, 0xa4, 0xf5, 0x02, // IID10490 - 0x45, 0x0f, 0xa4, 0xf5, 0x04, // IID10491 - 0x45, 0x0f, 0xa4, 0xf5, 0x08, // IID10492 - 0x45, 0x0f, 0xa4, 0xf5, 0x10, // IID10493 - 0x45, 0x0f, 0xa4, 0xfe, 0x01, // IID10494 - 0x45, 0x0f, 0xa4, 0xfe, 0x02, // IID10495 - 0x45, 0x0f, 0xa4, 0xfe, 0x04, // IID10496 - 0x45, 0x0f, 0xa4, 0xfe, 0x08, // IID10497 - 0x45, 0x0f, 0xa4, 0xfe, 0x10, // IID10498 - 0xd5, 0xc1, 0xa4, 0xc7, 0x01, // IID10499 - 0xd5, 0xc1, 0xa4, 0xc7, 0x02, // IID10500 - 0xd5, 0xc1, 0xa4, 0xc7, 0x04, // IID10501 - 0xd5, 0xc1, 0xa4, 0xc7, 0x08, // IID10502 - 0xd5, 0xc1, 0xa4, 0xc7, 0x10, // IID10503 - 0xd5, 0xd0, 0xa4, 0xc8, 0x01, // IID10504 - 0xd5, 0xd0, 0xa4, 0xc8, 0x02, // IID10505 - 0xd5, 0xd0, 0xa4, 0xc8, 0x04, // IID10506 - 0xd5, 0xd0, 0xa4, 0xc8, 0x08, // IID10507 - 0xd5, 0xd0, 0xa4, 0xc8, 0x10, // IID10508 - 0xd5, 0xd0, 0xa4, 0xd1, 0x01, // IID10509 - 0xd5, 0xd0, 0xa4, 0xd1, 0x02, // IID10510 - 0xd5, 0xd0, 0xa4, 0xd1, 0x04, // IID10511 - 0xd5, 0xd0, 0xa4, 0xd1, 0x08, // IID10512 - 0xd5, 0xd0, 0xa4, 0xd1, 0x10, // IID10513 - 0xd5, 0xd0, 0xa4, 0xda, 0x01, // IID10514 - 0xd5, 0xd0, 0xa4, 0xda, 0x02, // IID10515 - 0xd5, 0xd0, 0xa4, 0xda, 0x04, // IID10516 - 0xd5, 0xd0, 0xa4, 0xda, 0x08, // IID10517 - 0xd5, 0xd0, 0xa4, 0xda, 0x10, // IID10518 - 0xd5, 0xd0, 0xa4, 0xe3, 0x01, // IID10519 - 0xd5, 0xd0, 0xa4, 0xe3, 0x02, // IID10520 - 0xd5, 0xd0, 0xa4, 0xe3, 0x04, // IID10521 - 0xd5, 0xd0, 0xa4, 0xe3, 0x08, // IID10522 - 0xd5, 0xd0, 0xa4, 0xe3, 0x10, // IID10523 - 0xd5, 0xd0, 0xa4, 0xec, 0x01, // IID10524 - 0xd5, 0xd0, 0xa4, 0xec, 0x02, // IID10525 - 0xd5, 0xd0, 0xa4, 0xec, 0x04, // IID10526 - 0xd5, 0xd0, 0xa4, 0xec, 0x08, // IID10527 - 0xd5, 0xd0, 0xa4, 0xec, 0x10, // IID10528 - 0xd5, 0xd0, 0xa4, 0xf5, 0x01, // IID10529 - 0xd5, 0xd0, 0xa4, 0xf5, 0x02, // IID10530 - 0xd5, 0xd0, 0xa4, 0xf5, 0x04, // IID10531 - 0xd5, 0xd0, 0xa4, 0xf5, 0x08, // IID10532 - 0xd5, 0xd0, 0xa4, 0xf5, 0x10, // IID10533 - 0xd5, 0xd0, 0xa4, 0xfe, 0x01, // IID10534 - 0xd5, 0xd0, 0xa4, 0xfe, 0x02, // IID10535 - 0xd5, 0xd0, 0xa4, 0xfe, 0x04, // IID10536 - 0xd5, 0xd0, 0xa4, 0xfe, 0x08, // IID10537 - 0xd5, 0xd0, 0xa4, 0xfe, 0x10, // IID10538 - 0xd5, 0xd4, 0xa4, 0xc7, 0x01, // IID10539 - 0xd5, 0xd4, 0xa4, 0xc7, 0x02, // IID10540 - 0xd5, 0xd4, 0xa4, 0xc7, 0x04, // IID10541 - 0xd5, 0xd4, 0xa4, 0xc7, 0x08, // IID10542 - 0xd5, 0xd4, 0xa4, 0xc7, 0x10, // IID10543 - 0xd5, 0xd5, 0xa4, 0xc8, 0x01, // IID10544 - 0xd5, 0xd5, 0xa4, 0xc8, 0x02, // IID10545 - 0xd5, 0xd5, 0xa4, 0xc8, 0x04, // IID10546 - 0xd5, 0xd5, 0xa4, 0xc8, 0x08, // IID10547 - 0xd5, 0xd5, 0xa4, 0xc8, 0x10, // IID10548 - 0xd5, 0xd5, 0xa4, 0xd1, 0x01, // IID10549 - 0xd5, 0xd5, 0xa4, 0xd1, 0x02, // IID10550 - 0xd5, 0xd5, 0xa4, 0xd1, 0x04, // IID10551 - 0xd5, 0xd5, 0xa4, 0xd1, 0x08, // IID10552 - 0xd5, 0xd5, 0xa4, 0xd1, 0x10, // IID10553 - 0xd5, 0xd5, 0xa4, 0xda, 0x01, // IID10554 - 0xd5, 0xd5, 0xa4, 0xda, 0x02, // IID10555 - 0xd5, 0xd5, 0xa4, 0xda, 0x04, // IID10556 - 0xd5, 0xd5, 0xa4, 0xda, 0x08, // IID10557 - 0xd5, 0xd5, 0xa4, 0xda, 0x10, // IID10558 - 0xd5, 0xd5, 0xa4, 0xe3, 0x01, // IID10559 - 0xd5, 0xd5, 0xa4, 0xe3, 0x02, // IID10560 - 0xd5, 0xd5, 0xa4, 0xe3, 0x04, // IID10561 - 0xd5, 0xd5, 0xa4, 0xe3, 0x08, // IID10562 - 0xd5, 0xd5, 0xa4, 0xe3, 0x10, // IID10563 - 0xd5, 0xd5, 0xa4, 0xec, 0x01, // IID10564 - 0xd5, 0xd5, 0xa4, 0xec, 0x02, // IID10565 - 0xd5, 0xd5, 0xa4, 0xec, 0x04, // IID10566 - 0xd5, 0xd5, 0xa4, 0xec, 0x08, // IID10567 - 0xd5, 0xd5, 0xa4, 0xec, 0x10, // IID10568 - 0xd5, 0xd5, 0xa4, 0xf5, 0x01, // IID10569 - 0xd5, 0xd5, 0xa4, 0xf5, 0x02, // IID10570 - 0xd5, 0xd5, 0xa4, 0xf5, 0x04, // IID10571 - 0xd5, 0xd5, 0xa4, 0xf5, 0x08, // IID10572 - 0xd5, 0xd5, 0xa4, 0xf5, 0x10, // IID10573 - 0xd5, 0xd5, 0xa4, 0xfe, 0x01, // IID10574 - 0xd5, 0xd5, 0xa4, 0xfe, 0x02, // IID10575 - 0xd5, 0xd5, 0xa4, 0xfe, 0x04, // IID10576 - 0xd5, 0xd5, 0xa4, 0xfe, 0x08, // IID10577 - 0xd5, 0xd5, 0xa4, 0xfe, 0x10, // IID10578 - 0xd5, 0x91, 0xa4, 0xcf, 0x01, // IID10579 - 0xd5, 0x91, 0xa4, 0xcf, 0x02, // IID10580 - 0xd5, 0x91, 0xa4, 0xcf, 0x04, // IID10581 - 0xd5, 0x91, 0xa4, 0xcf, 0x08, // IID10582 - 0xd5, 0x91, 0xa4, 0xcf, 0x10, // IID10583 -#endif // _LP64 - 0x0f, 0xac, 0xd1, 0x01, // IID10584 - 0x0f, 0xac, 0xd1, 0x02, // IID10585 - 0x0f, 0xac, 0xd1, 0x04, // IID10586 - 0x0f, 0xac, 0xd1, 0x08, // IID10587 - 0x0f, 0xac, 0xd1, 0x10, // IID10588 - 0x0f, 0xac, 0xda, 0x01, // IID10589 - 0x0f, 0xac, 0xda, 0x02, // IID10590 - 0x0f, 0xac, 0xda, 0x04, // IID10591 - 0x0f, 0xac, 0xda, 0x08, // IID10592 - 0x0f, 0xac, 0xda, 0x10, // IID10593 -#ifdef _LP64 - 0x44, 0x0f, 0xac, 0xc3, 0x01, // IID10594 - 0x44, 0x0f, 0xac, 0xc3, 0x02, // IID10595 - 0x44, 0x0f, 0xac, 0xc3, 0x04, // IID10596 - 0x44, 0x0f, 0xac, 0xc3, 0x08, // IID10597 - 0x44, 0x0f, 0xac, 0xc3, 0x10, // IID10598 - 0x45, 0x0f, 0xac, 0xc8, 0x01, // IID10599 - 0x45, 0x0f, 0xac, 0xc8, 0x02, // IID10600 - 0x45, 0x0f, 0xac, 0xc8, 0x04, // IID10601 - 0x45, 0x0f, 0xac, 0xc8, 0x08, // IID10602 - 0x45, 0x0f, 0xac, 0xc8, 0x10, // IID10603 - 0x45, 0x0f, 0xac, 0xd1, 0x01, // IID10604 - 0x45, 0x0f, 0xac, 0xd1, 0x02, // IID10605 - 0x45, 0x0f, 0xac, 0xd1, 0x04, // IID10606 - 0x45, 0x0f, 0xac, 0xd1, 0x08, // IID10607 - 0x45, 0x0f, 0xac, 0xd1, 0x10, // IID10608 - 0x45, 0x0f, 0xac, 0xda, 0x01, // IID10609 - 0x45, 0x0f, 0xac, 0xda, 0x02, // IID10610 - 0x45, 0x0f, 0xac, 0xda, 0x04, // IID10611 - 0x45, 0x0f, 0xac, 0xda, 0x08, // IID10612 - 0x45, 0x0f, 0xac, 0xda, 0x10, // IID10613 - 0x45, 0x0f, 0xac, 0xe3, 0x01, // IID10614 - 0x45, 0x0f, 0xac, 0xe3, 0x02, // IID10615 - 0x45, 0x0f, 0xac, 0xe3, 0x04, // IID10616 - 0x45, 0x0f, 0xac, 0xe3, 0x08, // IID10617 - 0x45, 0x0f, 0xac, 0xe3, 0x10, // IID10618 - 0x45, 0x0f, 0xac, 0xec, 0x01, // IID10619 - 0x45, 0x0f, 0xac, 0xec, 0x02, // IID10620 - 0x45, 0x0f, 0xac, 0xec, 0x04, // IID10621 - 0x45, 0x0f, 0xac, 0xec, 0x08, // IID10622 - 0x45, 0x0f, 0xac, 0xec, 0x10, // IID10623 - 0x45, 0x0f, 0xac, 0xf5, 0x01, // IID10624 - 0x45, 0x0f, 0xac, 0xf5, 0x02, // IID10625 - 0x45, 0x0f, 0xac, 0xf5, 0x04, // IID10626 - 0x45, 0x0f, 0xac, 0xf5, 0x08, // IID10627 - 0x45, 0x0f, 0xac, 0xf5, 0x10, // IID10628 - 0x45, 0x0f, 0xac, 0xfe, 0x01, // IID10629 - 0x45, 0x0f, 0xac, 0xfe, 0x02, // IID10630 - 0x45, 0x0f, 0xac, 0xfe, 0x04, // IID10631 - 0x45, 0x0f, 0xac, 0xfe, 0x08, // IID10632 - 0x45, 0x0f, 0xac, 0xfe, 0x10, // IID10633 - 0xd5, 0xc1, 0xac, 0xc7, 0x01, // IID10634 - 0xd5, 0xc1, 0xac, 0xc7, 0x02, // IID10635 - 0xd5, 0xc1, 0xac, 0xc7, 0x04, // IID10636 - 0xd5, 0xc1, 0xac, 0xc7, 0x08, // IID10637 - 0xd5, 0xc1, 0xac, 0xc7, 0x10, // IID10638 - 0xd5, 0xd0, 0xac, 0xc8, 0x01, // IID10639 - 0xd5, 0xd0, 0xac, 0xc8, 0x02, // IID10640 - 0xd5, 0xd0, 0xac, 0xc8, 0x04, // IID10641 - 0xd5, 0xd0, 0xac, 0xc8, 0x08, // IID10642 - 0xd5, 0xd0, 0xac, 0xc8, 0x10, // IID10643 - 0xd5, 0xd0, 0xac, 0xd1, 0x01, // IID10644 - 0xd5, 0xd0, 0xac, 0xd1, 0x02, // IID10645 - 0xd5, 0xd0, 0xac, 0xd1, 0x04, // IID10646 - 0xd5, 0xd0, 0xac, 0xd1, 0x08, // IID10647 - 0xd5, 0xd0, 0xac, 0xd1, 0x10, // IID10648 - 0xd5, 0xd0, 0xac, 0xda, 0x01, // IID10649 - 0xd5, 0xd0, 0xac, 0xda, 0x02, // IID10650 - 0xd5, 0xd0, 0xac, 0xda, 0x04, // IID10651 - 0xd5, 0xd0, 0xac, 0xda, 0x08, // IID10652 - 0xd5, 0xd0, 0xac, 0xda, 0x10, // IID10653 - 0xd5, 0xd0, 0xac, 0xe3, 0x01, // IID10654 - 0xd5, 0xd0, 0xac, 0xe3, 0x02, // IID10655 - 0xd5, 0xd0, 0xac, 0xe3, 0x04, // IID10656 - 0xd5, 0xd0, 0xac, 0xe3, 0x08, // IID10657 - 0xd5, 0xd0, 0xac, 0xe3, 0x10, // IID10658 - 0xd5, 0xd0, 0xac, 0xec, 0x01, // IID10659 - 0xd5, 0xd0, 0xac, 0xec, 0x02, // IID10660 - 0xd5, 0xd0, 0xac, 0xec, 0x04, // IID10661 - 0xd5, 0xd0, 0xac, 0xec, 0x08, // IID10662 - 0xd5, 0xd0, 0xac, 0xec, 0x10, // IID10663 - 0xd5, 0xd0, 0xac, 0xf5, 0x01, // IID10664 - 0xd5, 0xd0, 0xac, 0xf5, 0x02, // IID10665 - 0xd5, 0xd0, 0xac, 0xf5, 0x04, // IID10666 - 0xd5, 0xd0, 0xac, 0xf5, 0x08, // IID10667 - 0xd5, 0xd0, 0xac, 0xf5, 0x10, // IID10668 - 0xd5, 0xd0, 0xac, 0xfe, 0x01, // IID10669 - 0xd5, 0xd0, 0xac, 0xfe, 0x02, // IID10670 - 0xd5, 0xd0, 0xac, 0xfe, 0x04, // IID10671 - 0xd5, 0xd0, 0xac, 0xfe, 0x08, // IID10672 - 0xd5, 0xd0, 0xac, 0xfe, 0x10, // IID10673 - 0xd5, 0xd4, 0xac, 0xc7, 0x01, // IID10674 - 0xd5, 0xd4, 0xac, 0xc7, 0x02, // IID10675 - 0xd5, 0xd4, 0xac, 0xc7, 0x04, // IID10676 - 0xd5, 0xd4, 0xac, 0xc7, 0x08, // IID10677 - 0xd5, 0xd4, 0xac, 0xc7, 0x10, // IID10678 - 0xd5, 0xd5, 0xac, 0xc8, 0x01, // IID10679 - 0xd5, 0xd5, 0xac, 0xc8, 0x02, // IID10680 - 0xd5, 0xd5, 0xac, 0xc8, 0x04, // IID10681 - 0xd5, 0xd5, 0xac, 0xc8, 0x08, // IID10682 - 0xd5, 0xd5, 0xac, 0xc8, 0x10, // IID10683 - 0xd5, 0xd5, 0xac, 0xd1, 0x01, // IID10684 - 0xd5, 0xd5, 0xac, 0xd1, 0x02, // IID10685 - 0xd5, 0xd5, 0xac, 0xd1, 0x04, // IID10686 - 0xd5, 0xd5, 0xac, 0xd1, 0x08, // IID10687 - 0xd5, 0xd5, 0xac, 0xd1, 0x10, // IID10688 - 0xd5, 0xd5, 0xac, 0xda, 0x01, // IID10689 - 0xd5, 0xd5, 0xac, 0xda, 0x02, // IID10690 - 0xd5, 0xd5, 0xac, 0xda, 0x04, // IID10691 - 0xd5, 0xd5, 0xac, 0xda, 0x08, // IID10692 - 0xd5, 0xd5, 0xac, 0xda, 0x10, // IID10693 - 0xd5, 0xd5, 0xac, 0xe3, 0x01, // IID10694 - 0xd5, 0xd5, 0xac, 0xe3, 0x02, // IID10695 - 0xd5, 0xd5, 0xac, 0xe3, 0x04, // IID10696 - 0xd5, 0xd5, 0xac, 0xe3, 0x08, // IID10697 - 0xd5, 0xd5, 0xac, 0xe3, 0x10, // IID10698 - 0xd5, 0xd5, 0xac, 0xec, 0x01, // IID10699 - 0xd5, 0xd5, 0xac, 0xec, 0x02, // IID10700 - 0xd5, 0xd5, 0xac, 0xec, 0x04, // IID10701 - 0xd5, 0xd5, 0xac, 0xec, 0x08, // IID10702 - 0xd5, 0xd5, 0xac, 0xec, 0x10, // IID10703 - 0xd5, 0xd5, 0xac, 0xf5, 0x01, // IID10704 - 0xd5, 0xd5, 0xac, 0xf5, 0x02, // IID10705 - 0xd5, 0xd5, 0xac, 0xf5, 0x04, // IID10706 - 0xd5, 0xd5, 0xac, 0xf5, 0x08, // IID10707 - 0xd5, 0xd5, 0xac, 0xf5, 0x10, // IID10708 - 0xd5, 0xd5, 0xac, 0xfe, 0x01, // IID10709 - 0xd5, 0xd5, 0xac, 0xfe, 0x02, // IID10710 - 0xd5, 0xd5, 0xac, 0xfe, 0x04, // IID10711 - 0xd5, 0xd5, 0xac, 0xfe, 0x08, // IID10712 - 0xd5, 0xd5, 0xac, 0xfe, 0x10, // IID10713 - 0xd5, 0x91, 0xac, 0xcf, 0x01, // IID10714 - 0xd5, 0x91, 0xac, 0xcf, 0x02, // IID10715 - 0xd5, 0x91, 0xac, 0xcf, 0x04, // IID10716 - 0xd5, 0x91, 0xac, 0xcf, 0x08, // IID10717 - 0xd5, 0x91, 0xac, 0xcf, 0x10, // IID10718 -#endif // _LP64 - 0x0f, 0xb6, 0x8a, 0x67, 0x18, 0x1b, 0x97, // IID10719 -#ifdef _LP64 - 0x42, 0x0f, 0xb6, 0x94, 0x43, 0x30, 0xdc, 0x94, 0xc9, // IID10720 - 0x43, 0x0f, 0xb6, 0x9c, 0x88, 0xab, 0x1d, 0x18, 0x33, // IID10721 - 0x47, 0x0f, 0xb6, 0x84, 0x91, 0xf1, 0x39, 0x04, 0xfb, // IID10722 - 0x47, 0x0f, 0xb6, 0x8c, 0x9a, 0xe2, 0x67, 0x74, 0x94, // IID10723 - 0x47, 0x0f, 0xb6, 0x94, 0xe3, 0xc7, 0x26, 0x63, 0x93, // IID10724 - 0x47, 0x0f, 0xb6, 0x9c, 0xac, 0xd7, 0xc1, 0x4f, 0xc7, // IID10725 - 0x47, 0x0f, 0xb6, 0xa4, 0xf5, 0x4b, 0x7a, 0x03, 0x4f, // IID10726 - 0x47, 0x0f, 0xb6, 0xac, 0xfe, 0x15, 0x47, 0xe6, 0x83, // IID10727 - 0x45, 0x0f, 0xb6, 0xb7, 0xf4, 0xeb, 0xce, 0x44, // IID10728 - 0xd5, 0x94, 0xb6, 0xb8, 0x1e, 0xdb, 0x24, 0x41, // IID10729 - 0xd5, 0xf0, 0xb6, 0x84, 0x51, 0xc2, 0xfa, 0x8a, 0xa8, // IID10730 - 0xd5, 0xd0, 0xb6, 0x8a, 0x61, 0x98, 0x73, 0x6e, // IID10731 - 0xd5, 0xf0, 0xb6, 0x94, 0xa3, 0xdf, 0xc3, 0xda, 0x7e, // IID10732 - 0xd5, 0xf0, 0xb6, 0x9c, 0x6c, 0x82, 0x6a, 0x1c, 0x0a, // IID10733 - 0xd5, 0xf0, 0xb6, 0xa4, 0x75, 0x5c, 0xd7, 0xb5, 0xd8, // IID10734 - 0xd5, 0xf0, 0xb6, 0xac, 0xbe, 0x69, 0x66, 0xd3, 0x35, // IID10735 - 0xd5, 0xf2, 0xb6, 0xb4, 0x07, 0xa2, 0x45, 0x9e, 0x15, // IID10736 - 0xd5, 0xf3, 0xb6, 0xbc, 0xc8, 0xaa, 0xc2, 0xd9, 0xbd, // IID10737 - 0xd5, 0xf7, 0xb6, 0x84, 0x11, 0xc8, 0xab, 0xa8, 0xd4, // IID10738 - 0xd5, 0xd5, 0xb6, 0x8a, 0x61, 0xcd, 0xeb, 0xa1, // IID10739 - 0xd5, 0xd5, 0xb6, 0x93, 0xa1, 0x4d, 0x40, 0xd3, // IID10740 - 0xd5, 0xf7, 0xb6, 0x9c, 0x2c, 0xaf, 0x86, 0x10, 0xb5, // IID10741 - 0xd5, 0xf7, 0xb6, 0xa4, 0xf5, 0xa7, 0xee, 0xbc, 0xb7, // IID10742 - 0xd5, 0xf7, 0xb6, 0xac, 0x7e, 0x29, 0xb6, 0x4f, 0x04, // IID10743 - 0xd5, 0xd5, 0xb6, 0xb4, 0x8f, 0x6d, 0x75, 0x9f, 0xf7, // IID10744 - 0xd5, 0xc4, 0xb6, 0xbc, 0x51, 0x38, 0x24, 0x67, 0xb7, // IID10745 -#endif // _LP64 - 0x0f, 0xb7, 0x8c, 0x5a, 0xc0, 0x4c, 0x83, 0xcc, // IID10746 -#ifdef _LP64 - 0x0f, 0xb7, 0x93, 0x71, 0x2f, 0xd2, 0x44, // IID10747 - 0x43, 0x0f, 0xb7, 0x9c, 0x88, 0x14, 0xe4, 0xe7, 0xd9, // IID10748 - 0x45, 0x0f, 0xb7, 0x81, 0x0f, 0x2d, 0x73, 0x3d, // IID10749 - 0x47, 0x0f, 0xb7, 0x8c, 0xda, 0xb3, 0x88, 0x26, 0x15, // IID10750 - 0x47, 0x0f, 0xb7, 0x94, 0xa3, 0x7e, 0xe8, 0xe2, 0x45, // IID10751 - 0x47, 0x0f, 0xb7, 0x9c, 0xec, 0x8c, 0x61, 0xfe, 0xca, // IID10752 - 0x47, 0x0f, 0xb7, 0xa4, 0xf5, 0xa8, 0xce, 0x1d, 0x05, // IID10753 - 0x45, 0x0f, 0xb7, 0xae, 0xd5, 0xf3, 0x90, 0x61, // IID10754 - 0xd5, 0xa5, 0xb7, 0xb4, 0x87, 0x83, 0x87, 0x5a, 0x36, // IID10755 - 0xd5, 0x94, 0xb7, 0xb8, 0x95, 0x15, 0xb3, 0x83, // IID10756 - 0xd5, 0xf0, 0xb7, 0x84, 0x11, 0x5d, 0xb3, 0x7f, 0xfa, // IID10757 - 0xd5, 0xf0, 0xb7, 0x8c, 0x1a, 0x2d, 0x84, 0x8b, 0xcb, // IID10758 - 0xd5, 0xd0, 0xb7, 0x93, 0x4f, 0xc8, 0x98, 0x19, // IID10759 - 0xd5, 0xf0, 0xb7, 0x9c, 0xac, 0xed, 0xa5, 0xf9, 0x04, // IID10760 - 0xd5, 0xf0, 0xb7, 0xa4, 0xf5, 0x5c, 0x83, 0x5e, 0x2c, // IID10761 - 0xd5, 0xf0, 0xb7, 0xac, 0xbe, 0xd2, 0xa5, 0xcb, 0x7f, // IID10762 - 0xd5, 0xf2, 0xb7, 0xb4, 0x07, 0xdc, 0x84, 0xe4, 0x49, // IID10763 - 0xd5, 0xf3, 0xb7, 0xbc, 0x88, 0x13, 0x31, 0xd6, 0x8a, // IID10764 - 0xd5, 0xd5, 0xb7, 0x81, 0x08, 0x3f, 0xd3, 0x86, // IID10765 - 0xd5, 0xd5, 0xb7, 0x8a, 0x4f, 0xbb, 0xb8, 0x1a, // IID10766 - 0xd5, 0xf7, 0xb7, 0x94, 0xa3, 0x6e, 0x44, 0xaf, 0x7c, // IID10767 - 0xd5, 0xf7, 0xb7, 0x9c, 0xac, 0xbe, 0xa4, 0xc2, 0xa5, // IID10768 - 0xd5, 0xf7, 0xb7, 0xa4, 0xf5, 0xb6, 0x00, 0xfc, 0xb4, // IID10769 - 0xd5, 0xf7, 0xb7, 0xac, 0x7e, 0xb4, 0x06, 0xd3, 0xa2, // IID10770 - 0xd5, 0xd5, 0xb7, 0xb4, 0x8f, 0xef, 0x93, 0x05, 0x92, // IID10771 - 0xd5, 0xc4, 0xb7, 0xbc, 0x51, 0xbd, 0xde, 0xd9, 0x18, // IID10772 -#endif // _LP64 - 0x0f, 0xbe, 0x8c, 0x9a, 0x60, 0x9c, 0x00, 0x16, // IID10773 -#ifdef _LP64 - 0x42, 0x0f, 0xbe, 0x94, 0x83, 0x78, 0x9b, 0xe0, 0x31, // IID10774 - 0x41, 0x0f, 0xbe, 0x98, 0xaa, 0xa8, 0xf3, 0x2c, // IID10775 - 0x47, 0x0f, 0xbe, 0x84, 0xd1, 0x6d, 0xe2, 0xd2, 0x64, // IID10776 - 0x45, 0x0f, 0xbe, 0x8a, 0x97, 0xc4, 0x9b, 0x7b, // IID10777 - 0x47, 0x0f, 0xbe, 0x94, 0x23, 0x8a, 0x4b, 0xc9, 0x21, // IID10778 - 0x47, 0x0f, 0xbe, 0x9c, 0x2c, 0x7c, 0x0a, 0xec, 0x82, // IID10779 - 0x47, 0x0f, 0xbe, 0xa4, 0x35, 0x27, 0xec, 0x16, 0x5c, // IID10780 - 0x47, 0x0f, 0xbe, 0xac, 0xbe, 0xb0, 0xa1, 0x61, 0x43, // IID10781 - 0xd5, 0xa5, 0xbe, 0xb4, 0x87, 0x95, 0xe9, 0x7d, 0xf7, // IID10782 - 0xd5, 0xb4, 0xbe, 0xbc, 0x48, 0x50, 0x63, 0xcb, 0xb5, // IID10783 - 0xd5, 0xf0, 0xbe, 0x84, 0xd1, 0x5d, 0x8d, 0xde, 0x4f, // IID10784 - 0xd5, 0xf0, 0xbe, 0x8c, 0x9a, 0x08, 0xd2, 0x18, 0x71, // IID10785 - 0xd5, 0xf0, 0xbe, 0x94, 0x23, 0x88, 0x56, 0x1f, 0xa2, // IID10786 - 0xd5, 0xd0, 0xbe, 0x9c, 0x24, 0xd6, 0xdd, 0xc3, 0xae, // IID10787 - 0xd5, 0xf0, 0xbe, 0xa4, 0xf5, 0x03, 0x4d, 0x1e, 0xba, // IID10788 - 0xd5, 0xf0, 0xbe, 0xac, 0x3e, 0xcb, 0x6c, 0x62, 0x42, // IID10789 - 0xd5, 0xf2, 0xbe, 0xb4, 0x07, 0x25, 0xca, 0x02, 0x15, // IID10790 - 0xd5, 0xf3, 0xbe, 0xbc, 0xc8, 0xa8, 0xed, 0x85, 0x74, // IID10791 - 0xd5, 0xf7, 0xbe, 0x84, 0xd1, 0x9e, 0x74, 0xa9, 0x28, // IID10792 - 0xd5, 0xf7, 0xbe, 0x8c, 0x9a, 0x98, 0x63, 0x28, 0x0f, // IID10793 - 0xd5, 0xf7, 0xbe, 0x94, 0x63, 0x0e, 0xdb, 0x67, 0x14, // IID10794 - 0xd5, 0xf7, 0xbe, 0x9c, 0xec, 0xbe, 0xd0, 0x4a, 0x9e, // IID10795 - 0xd5, 0xf7, 0xbe, 0xa4, 0xb5, 0x81, 0xda, 0x9f, 0xc9, // IID10796 - 0xd5, 0xf7, 0xbe, 0xac, 0x3e, 0xc8, 0x9b, 0x27, 0xe3, // IID10797 - 0xd5, 0xd5, 0xbe, 0xb4, 0xcf, 0x93, 0x51, 0x03, 0x71, // IID10798 - 0xd5, 0xc4, 0xbe, 0xbc, 0x11, 0x71, 0xba, 0xc8, 0x66, // IID10799 -#endif // _LP64 - 0x0f, 0xbf, 0x8c, 0x1a, 0xff, 0x01, 0xde, 0x39, // IID10800 -#ifdef _LP64 - 0x42, 0x0f, 0xbf, 0x94, 0x83, 0xd4, 0xbd, 0xf2, 0x16, // IID10801 - 0x41, 0x0f, 0xbf, 0x98, 0x62, 0xb9, 0x70, 0x78, // IID10802 - 0x47, 0x0f, 0xbf, 0x84, 0x11, 0xdc, 0x82, 0x1a, 0x97, // IID10803 - 0x47, 0x0f, 0xbf, 0x8c, 0x5a, 0xdc, 0x71, 0xa0, 0xe2, // IID10804 - 0x47, 0x0f, 0xbf, 0x94, 0x63, 0x62, 0x3e, 0x1b, 0x8f, // IID10805 - 0x45, 0x0f, 0xbf, 0x9c, 0x24, 0x0e, 0xdc, 0xcf, 0xb1, // IID10806 - 0x47, 0x0f, 0xbf, 0xa4, 0x35, 0x22, 0x34, 0x20, 0xe5, // IID10807 - 0x47, 0x0f, 0xbf, 0xac, 0xfe, 0x4b, 0xdb, 0x0b, 0xbe, // IID10808 - 0xd5, 0xa5, 0xbf, 0xb4, 0x07, 0xfa, 0xb6, 0xed, 0x71, // IID10809 - 0xd5, 0xb4, 0xbf, 0xbc, 0x08, 0xdc, 0xdd, 0x67, 0xf2, // IID10810 - 0xd5, 0xf0, 0xbf, 0x84, 0x51, 0x31, 0x54, 0xff, 0xcc, // IID10811 - 0xd5, 0xf0, 0xbf, 0x8c, 0xda, 0x3a, 0xf8, 0xf7, 0xd3, // IID10812 - 0xd5, 0xf0, 0xbf, 0x94, 0x23, 0x69, 0x10, 0x4c, 0x87, // IID10813 - 0xd5, 0xd0, 0xbf, 0x9c, 0x24, 0x94, 0x3a, 0x13, 0xfd, // IID10814 - 0xd5, 0xf0, 0xbf, 0xa4, 0x75, 0x38, 0xc8, 0x25, 0x6a, // IID10815 - 0xd5, 0xf0, 0xbf, 0xac, 0xbe, 0x26, 0xc0, 0x84, 0x78, // IID10816 - 0xd5, 0xf2, 0xbf, 0xb4, 0x87, 0xbc, 0x57, 0xc1, 0x0f, // IID10817 - 0xd5, 0xf3, 0xbf, 0xbc, 0x08, 0xb6, 0x87, 0x7e, 0x5e, // IID10818 - 0xd5, 0xf7, 0xbf, 0x84, 0x11, 0x20, 0xe7, 0xa3, 0x35, // IID10819 - 0xd5, 0xd5, 0xbf, 0x8a, 0x2f, 0xd4, 0x49, 0x40, // IID10820 - 0xd5, 0xf7, 0xbf, 0x94, 0xa3, 0x09, 0x77, 0x48, 0x47, // IID10821 - 0xd5, 0xf7, 0xbf, 0x9c, 0x2c, 0xd4, 0xa6, 0x3b, 0x11, // IID10822 - 0xd5, 0xf7, 0xbf, 0xa4, 0x75, 0x8e, 0xf5, 0xb5, 0x7b, // IID10823 - 0xd5, 0xf7, 0xbf, 0xac, 0xbe, 0xd4, 0x67, 0x19, 0x27, // IID10824 - 0xd5, 0xd5, 0xbf, 0xb4, 0x8f, 0xc5, 0x64, 0x0b, 0x0e, // IID10825 - 0xd5, 0xc4, 0xbf, 0xb9, 0x8c, 0x90, 0x97, 0x99, // IID10826 -#endif // _LP64 - 0x0f, 0xb6, 0xca, // IID10827 - 0x0f, 0xb6, 0xd3, // IID10828 -#ifdef _LP64 - 0x41, 0x0f, 0xb6, 0xd8, // IID10829 - 0x45, 0x0f, 0xb6, 0xc1, // IID10830 - 0x45, 0x0f, 0xb6, 0xca, // IID10831 - 0x45, 0x0f, 0xb6, 0xd3, // IID10832 - 0x45, 0x0f, 0xb6, 0xdc, // IID10833 - 0x45, 0x0f, 0xb6, 0xe5, // IID10834 - 0x45, 0x0f, 0xb6, 0xee, // IID10835 - 0x45, 0x0f, 0xb6, 0xf7, // IID10836 - 0xd5, 0x94, 0xb6, 0xf8, // IID10837 - 0xd5, 0xd0, 0xb6, 0xc1, // IID10838 - 0xd5, 0xd0, 0xb6, 0xca, // IID10839 - 0xd5, 0xd0, 0xb6, 0xd3, // IID10840 - 0xd5, 0xd0, 0xb6, 0xdc, // IID10841 - 0xd5, 0xd0, 0xb6, 0xe5, // IID10842 - 0xd5, 0xd0, 0xb6, 0xee, // IID10843 - 0xd5, 0xd0, 0xb6, 0xf7, // IID10844 - 0xd5, 0xd1, 0xb6, 0xf8, // IID10845 - 0xd5, 0xd5, 0xb6, 0xc1, // IID10846 - 0xd5, 0xd5, 0xb6, 0xca, // IID10847 - 0xd5, 0xd5, 0xb6, 0xd3, // IID10848 - 0xd5, 0xd5, 0xb6, 0xdc, // IID10849 - 0xd5, 0xd5, 0xb6, 0xe5, // IID10850 - 0xd5, 0xd5, 0xb6, 0xee, // IID10851 - 0xd5, 0xd5, 0xb6, 0xf7, // IID10852 - 0xd5, 0xc4, 0xb6, 0xf9, // IID10853 -#endif // _LP64 - 0x0f, 0xb7, 0xca, // IID10854 - 0x0f, 0xb7, 0xd3, // IID10855 -#ifdef _LP64 - 0x41, 0x0f, 0xb7, 0xd8, // IID10856 - 0x45, 0x0f, 0xb7, 0xc1, // IID10857 - 0x45, 0x0f, 0xb7, 0xca, // IID10858 - 0x45, 0x0f, 0xb7, 0xd3, // IID10859 - 0x45, 0x0f, 0xb7, 0xdc, // IID10860 - 0x45, 0x0f, 0xb7, 0xe5, // IID10861 - 0x45, 0x0f, 0xb7, 0xee, // IID10862 - 0x45, 0x0f, 0xb7, 0xf7, // IID10863 - 0xd5, 0x94, 0xb7, 0xf8, // IID10864 - 0xd5, 0xd0, 0xb7, 0xc1, // IID10865 - 0xd5, 0xd0, 0xb7, 0xca, // IID10866 - 0xd5, 0xd0, 0xb7, 0xd3, // IID10867 - 0xd5, 0xd0, 0xb7, 0xdc, // IID10868 - 0xd5, 0xd0, 0xb7, 0xe5, // IID10869 - 0xd5, 0xd0, 0xb7, 0xee, // IID10870 - 0xd5, 0xd0, 0xb7, 0xf7, // IID10871 - 0xd5, 0xd1, 0xb7, 0xf8, // IID10872 - 0xd5, 0xd5, 0xb7, 0xc1, // IID10873 - 0xd5, 0xd5, 0xb7, 0xca, // IID10874 - 0xd5, 0xd5, 0xb7, 0xd3, // IID10875 - 0xd5, 0xd5, 0xb7, 0xdc, // IID10876 - 0xd5, 0xd5, 0xb7, 0xe5, // IID10877 - 0xd5, 0xd5, 0xb7, 0xee, // IID10878 - 0xd5, 0xd5, 0xb7, 0xf7, // IID10879 - 0xd5, 0xc4, 0xb7, 0xf9, // IID10880 -#endif // _LP64 - 0x0f, 0xbe, 0xca, // IID10881 - 0x0f, 0xbe, 0xd3, // IID10882 -#ifdef _LP64 - 0x41, 0x0f, 0xbe, 0xd8, // IID10883 - 0x45, 0x0f, 0xbe, 0xc1, // IID10884 - 0x45, 0x0f, 0xbe, 0xca, // IID10885 - 0x45, 0x0f, 0xbe, 0xd3, // IID10886 - 0x45, 0x0f, 0xbe, 0xdc, // IID10887 - 0x45, 0x0f, 0xbe, 0xe5, // IID10888 - 0x45, 0x0f, 0xbe, 0xee, // IID10889 - 0x45, 0x0f, 0xbe, 0xf7, // IID10890 - 0xd5, 0x94, 0xbe, 0xf8, // IID10891 - 0xd5, 0xd0, 0xbe, 0xc1, // IID10892 - 0xd5, 0xd0, 0xbe, 0xca, // IID10893 - 0xd5, 0xd0, 0xbe, 0xd3, // IID10894 - 0xd5, 0xd0, 0xbe, 0xdc, // IID10895 - 0xd5, 0xd0, 0xbe, 0xe5, // IID10896 - 0xd5, 0xd0, 0xbe, 0xee, // IID10897 - 0xd5, 0xd0, 0xbe, 0xf7, // IID10898 - 0xd5, 0xd1, 0xbe, 0xf8, // IID10899 - 0xd5, 0xd5, 0xbe, 0xc1, // IID10900 - 0xd5, 0xd5, 0xbe, 0xca, // IID10901 - 0xd5, 0xd5, 0xbe, 0xd3, // IID10902 - 0xd5, 0xd5, 0xbe, 0xdc, // IID10903 - 0xd5, 0xd5, 0xbe, 0xe5, // IID10904 - 0xd5, 0xd5, 0xbe, 0xee, // IID10905 - 0xd5, 0xd5, 0xbe, 0xf7, // IID10906 - 0xd5, 0xc4, 0xbe, 0xf9, // IID10907 -#endif // _LP64 - 0x0f, 0xbf, 0xca, // IID10908 - 0x0f, 0xbf, 0xd3, // IID10909 -#ifdef _LP64 - 0x41, 0x0f, 0xbf, 0xd8, // IID10910 - 0x45, 0x0f, 0xbf, 0xc1, // IID10911 - 0x45, 0x0f, 0xbf, 0xca, // IID10912 - 0x45, 0x0f, 0xbf, 0xd3, // IID10913 - 0x45, 0x0f, 0xbf, 0xdc, // IID10914 - 0x45, 0x0f, 0xbf, 0xe5, // IID10915 - 0x45, 0x0f, 0xbf, 0xee, // IID10916 - 0x45, 0x0f, 0xbf, 0xf7, // IID10917 - 0xd5, 0x94, 0xbf, 0xf8, // IID10918 - 0xd5, 0xd0, 0xbf, 0xc1, // IID10919 - 0xd5, 0xd0, 0xbf, 0xca, // IID10920 - 0xd5, 0xd0, 0xbf, 0xd3, // IID10921 - 0xd5, 0xd0, 0xbf, 0xdc, // IID10922 - 0xd5, 0xd0, 0xbf, 0xe5, // IID10923 - 0xd5, 0xd0, 0xbf, 0xee, // IID10924 - 0xd5, 0xd0, 0xbf, 0xf7, // IID10925 - 0xd5, 0xd1, 0xbf, 0xf8, // IID10926 - 0xd5, 0xd5, 0xbf, 0xc1, // IID10927 - 0xd5, 0xd5, 0xbf, 0xca, // IID10928 - 0xd5, 0xd5, 0xbf, 0xd3, // IID10929 - 0xd5, 0xd5, 0xbf, 0xdc, // IID10930 - 0xd5, 0xd5, 0xbf, 0xe5, // IID10931 - 0xd5, 0xd5, 0xbf, 0xee, // IID10932 - 0xd5, 0xd5, 0xbf, 0xf7, // IID10933 - 0xd5, 0xc4, 0xbf, 0xf9, // IID10934 -#endif // _LP64 - 0x0f, 0xb0, 0x8c, 0xda, 0xe4, 0xd2, 0xb8, 0x51, // IID10935 -#ifdef _LP64 - 0x0f, 0xb0, 0x93, 0xbc, 0x08, 0xc9, 0x2a, // IID10936 - 0x41, 0x0f, 0xb0, 0x98, 0xcc, 0xb5, 0xf9, 0x7c, // IID10937 - 0x47, 0x0f, 0xb0, 0x84, 0xd1, 0x10, 0x23, 0x6e, 0x5d, // IID10938 - 0x47, 0x0f, 0xb0, 0x8c, 0x5a, 0xc0, 0x77, 0xff, 0xa2, // IID10939 - 0x47, 0x0f, 0xb0, 0x94, 0x63, 0xfb, 0x3a, 0xcc, 0x0d, // IID10940 - 0x47, 0x0f, 0xb0, 0x9c, 0x6c, 0x1a, 0xd4, 0x9b, 0xc5, // IID10941 - 0x47, 0x0f, 0xb0, 0xa4, 0xb5, 0x22, 0x45, 0x4a, 0x76, // IID10942 - 0x47, 0x0f, 0xb0, 0xac, 0x3e, 0x4d, 0x0c, 0x9d, 0xc1, // IID10943 - 0xd5, 0xa5, 0xb0, 0xb4, 0x87, 0xe5, 0x61, 0x4d, 0xbe, // IID10944 - 0xd5, 0xb4, 0xb0, 0xbc, 0x48, 0xbd, 0x58, 0xc3, 0x1b, // IID10945 - 0xd5, 0xf0, 0xb0, 0x84, 0x51, 0x1a, 0x4e, 0x44, 0x90, // IID10946 - 0xd5, 0xf0, 0xb0, 0x8c, 0x1a, 0xb6, 0x68, 0x53, 0x6c, // IID10947 - 0xd5, 0xd0, 0xb0, 0x93, 0xf5, 0x18, 0xc0, 0xdf, // IID10948 - 0xd5, 0xf0, 0xb0, 0x9c, 0xec, 0x7e, 0x43, 0xd8, 0x44, // IID10949 - 0xd5, 0xf0, 0xb0, 0xa4, 0xb5, 0x41, 0xde, 0xc6, 0x14, // IID10950 - 0xd5, 0xf0, 0xb0, 0xac, 0x3e, 0x20, 0x42, 0x57, 0x89, // IID10951 - 0xd5, 0xf2, 0xb0, 0xb4, 0x47, 0x81, 0xd6, 0xa4, 0xee, // IID10952 - 0xd5, 0xf3, 0xb0, 0xbc, 0x08, 0x4f, 0x3e, 0xa5, 0x2f, // IID10953 - 0xd5, 0xf7, 0xb0, 0x84, 0xd1, 0xca, 0x1a, 0xe6, 0x2b, // IID10954 - 0xd5, 0xd5, 0xb0, 0x8a, 0x51, 0xe1, 0x32, 0xdf, // IID10955 - 0xd5, 0xf7, 0xb0, 0x94, 0x63, 0x87, 0x02, 0x7c, 0xb9, // IID10956 - 0xd5, 0xd5, 0xb0, 0x9c, 0x24, 0x35, 0x6c, 0x35, 0x92, // IID10957 - 0xd5, 0xf7, 0xb0, 0xa4, 0x35, 0x97, 0x12, 0xd4, 0x3f, // IID10958 - 0xd5, 0xd5, 0xb0, 0xae, 0x7e, 0xe7, 0xeb, 0x62, // IID10959 - 0xd5, 0xd5, 0xb0, 0xb4, 0x0f, 0xde, 0x66, 0x4a, 0x7d, // IID10960 - 0xd5, 0xc4, 0xb0, 0xb9, 0x2b, 0xba, 0x94, 0x5e, // IID10961 -#endif // _LP64 - 0x66, 0x0f, 0xb1, 0x8c, 0x1a, 0xff, 0x59, 0x4f, 0xcd, // IID10962 -#ifdef _LP64 - 0x66, 0x42, 0x0f, 0xb1, 0x94, 0xc3, 0x8d, 0x44, 0x7a, 0x00, // IID10963 - 0x66, 0x43, 0x0f, 0xb1, 0x9c, 0x88, 0x6e, 0x55, 0x65, 0x04, // IID10964 - 0x66, 0x47, 0x0f, 0xb1, 0x84, 0xd1, 0x50, 0x21, 0xe8, 0x11, // IID10965 - 0x66, 0x47, 0x0f, 0xb1, 0x8c, 0xda, 0xdf, 0xa0, 0x06, 0xf7, // IID10966 - 0x66, 0x47, 0x0f, 0xb1, 0x94, 0x63, 0x43, 0x66, 0xc4, 0x22, // IID10967 - 0x66, 0x47, 0x0f, 0xb1, 0x9c, 0xec, 0x30, 0x43, 0x3d, 0x4f, // IID10968 - 0x66, 0x47, 0x0f, 0xb1, 0xa4, 0xb5, 0x67, 0x5a, 0xf1, 0x05, // IID10969 - 0x66, 0x47, 0x0f, 0xb1, 0xac, 0xbe, 0x82, 0x7a, 0x7e, 0xae, // IID10970 - 0x66, 0xd5, 0xa5, 0xb1, 0xb4, 0x07, 0x9a, 0xd7, 0x32, 0xf7, // IID10971 - 0x66, 0xd5, 0xb4, 0xb1, 0xbc, 0x88, 0x26, 0x06, 0xed, 0x8a, // IID10972 - 0x66, 0xd5, 0xd0, 0xb1, 0x81, 0x76, 0x9e, 0xdb, 0x7e, // IID10973 - 0x66, 0xd5, 0xf0, 0xb1, 0x8c, 0xda, 0x28, 0x97, 0xa6, 0x10, // IID10974 - 0x66, 0xd5, 0xf0, 0xb1, 0x94, 0xa3, 0x67, 0x82, 0xf9, 0x7d, // IID10975 - 0x66, 0xd5, 0xf0, 0xb1, 0x9c, 0x6c, 0xba, 0x92, 0x5f, 0x32, // IID10976 - 0x66, 0xd5, 0xf0, 0xb1, 0xa4, 0xf5, 0x9f, 0x4e, 0x62, 0x93, // IID10977 - 0x66, 0xd5, 0xf0, 0xb1, 0xac, 0xfe, 0xa8, 0x87, 0xf7, 0xae, // IID10978 - 0x66, 0xd5, 0xf2, 0xb1, 0xb4, 0x07, 0x6d, 0xcf, 0xe4, 0xe2, // IID10979 - 0x66, 0xd5, 0xf3, 0xb1, 0xbc, 0x88, 0x91, 0xf1, 0xd1, 0x8b, // IID10980 - 0x66, 0xd5, 0xf7, 0xb1, 0x84, 0xd1, 0x0b, 0x2a, 0xb9, 0x93, // IID10981 - 0x66, 0xd5, 0xf7, 0xb1, 0x8c, 0xda, 0x61, 0xae, 0x3d, 0xd6, // IID10982 - 0x66, 0xd5, 0xf7, 0xb1, 0x94, 0x23, 0x58, 0x90, 0x04, 0xa8, // IID10983 - 0x66, 0xd5, 0xf7, 0xb1, 0x9c, 0x6c, 0xfa, 0xe4, 0xfb, 0x82, // IID10984 - 0x66, 0xd5, 0xf7, 0xb1, 0xa4, 0x35, 0xde, 0x84, 0xa3, 0x1a, // IID10985 - 0x66, 0xd5, 0xd5, 0xb1, 0xae, 0xc3, 0xb3, 0xb0, 0x05, // IID10986 - 0x66, 0xd5, 0xd5, 0xb1, 0xb4, 0xcf, 0xbb, 0xe8, 0x07, 0x03, // IID10987 - 0x66, 0xd5, 0xc4, 0xb1, 0xbc, 0x11, 0x57, 0x76, 0x22, 0xd4, // IID10988 -#endif // _LP64 - 0x0f, 0xb1, 0x8c, 0x5a, 0x44, 0xb4, 0x2b, 0x2c, // IID10989 -#ifdef _LP64 - 0x42, 0x0f, 0xb1, 0x94, 0x03, 0xbe, 0x8a, 0x32, 0x06, // IID10990 - 0x43, 0x0f, 0xb1, 0x9c, 0x88, 0xd6, 0xc7, 0x5a, 0x1e, // IID10991 - 0x47, 0x0f, 0xb1, 0x84, 0x51, 0x76, 0x3f, 0xc5, 0xbc, // IID10992 - 0x47, 0x0f, 0xb1, 0x8c, 0x5a, 0x8e, 0xc6, 0x04, 0x8c, // IID10993 - 0x47, 0x0f, 0xb1, 0x94, 0x23, 0xb1, 0xcf, 0x31, 0x5c, // IID10994 - 0x47, 0x0f, 0xb1, 0x9c, 0x6c, 0x05, 0x65, 0x73, 0x69, // IID10995 - 0x47, 0x0f, 0xb1, 0xa4, 0x75, 0xad, 0x42, 0x6c, 0x64, // IID10996 - 0x47, 0x0f, 0xb1, 0xac, 0xfe, 0xe6, 0x8a, 0x6b, 0x92, // IID10997 - 0xd5, 0xa5, 0xb1, 0xb4, 0x87, 0xd4, 0x52, 0xff, 0x6c, // IID10998 - 0xd5, 0x94, 0xb1, 0xb8, 0xa5, 0xc2, 0x1b, 0xa8, // IID10999 - 0xd5, 0xf0, 0xb1, 0x84, 0x11, 0xba, 0x7f, 0x55, 0x68, // IID11000 - 0xd5, 0xf0, 0xb1, 0x8c, 0x1a, 0x13, 0xf9, 0xd6, 0x03, // IID11001 - 0xd5, 0xd0, 0xb1, 0x93, 0x5e, 0x57, 0x23, 0x83, // IID11002 - 0xd5, 0xd0, 0xb1, 0x9c, 0x24, 0xc0, 0x58, 0x39, 0x27, // IID11003 - 0xd5, 0xf0, 0xb1, 0xa4, 0xf5, 0x2d, 0xac, 0x0b, 0x20, // IID11004 - 0xd5, 0xf0, 0xb1, 0xac, 0x3e, 0x67, 0xbe, 0x57, 0x72, // IID11005 - 0xd5, 0xf2, 0xb1, 0xb4, 0x47, 0x77, 0xd1, 0x66, 0x74, // IID11006 - 0xd5, 0xf3, 0xb1, 0xbc, 0xc8, 0xb0, 0x08, 0x62, 0x08, // IID11007 - 0xd5, 0xf7, 0xb1, 0x84, 0x91, 0xf4, 0x9d, 0x90, 0x59, // IID11008 - 0xd5, 0xf7, 0xb1, 0x8c, 0x5a, 0xd9, 0xf9, 0x66, 0x79, // IID11009 - 0xd5, 0xd5, 0xb1, 0x93, 0x70, 0xdf, 0xef, 0x6b, // IID11010 - 0xd5, 0xf7, 0xb1, 0x9c, 0xec, 0x76, 0x1a, 0x5f, 0xae, // IID11011 - 0xd5, 0xf7, 0xb1, 0xa4, 0xf5, 0x0f, 0xf4, 0xf9, 0x7e, // IID11012 - 0xd5, 0xd5, 0xb1, 0xae, 0xff, 0x7b, 0x98, 0x78, // IID11013 - 0xd5, 0xd5, 0xb1, 0xb4, 0x8f, 0xbe, 0x26, 0x44, 0x5d, // IID11014 - 0xd5, 0xc4, 0xb1, 0xbc, 0x11, 0x42, 0x42, 0x27, 0x06, // IID11015 - 0x48, 0x13, 0xca, // IID11016 - 0x48, 0x13, 0xd3, // IID11017 - 0x49, 0x13, 0xd8, // IID11018 - 0x4d, 0x13, 0xc1, // IID11019 - 0x4d, 0x13, 0xca, // IID11020 - 0x4d, 0x13, 0xd3, // IID11021 - 0x4d, 0x13, 0xdc, // IID11022 - 0x4d, 0x13, 0xe5, // IID11023 - 0x4d, 0x13, 0xee, // IID11024 - 0x4d, 0x13, 0xf7, // IID11025 - 0xd5, 0x1c, 0x13, 0xf8, // IID11026 - 0xd5, 0x58, 0x13, 0xc1, // IID11027 - 0xd5, 0x58, 0x13, 0xca, // IID11028 - 0xd5, 0x58, 0x13, 0xd3, // IID11029 - 0xd5, 0x58, 0x13, 0xdc, // IID11030 - 0xd5, 0x58, 0x13, 0xe5, // IID11031 - 0xd5, 0x58, 0x13, 0xee, // IID11032 - 0xd5, 0x58, 0x13, 0xf7, // IID11033 - 0xd5, 0x59, 0x13, 0xf8, // IID11034 - 0xd5, 0x5d, 0x13, 0xc1, // IID11035 - 0xd5, 0x5d, 0x13, 0xca, // IID11036 - 0xd5, 0x5d, 0x13, 0xd3, // IID11037 - 0xd5, 0x5d, 0x13, 0xdc, // IID11038 - 0xd5, 0x5d, 0x13, 0xe5, // IID11039 - 0xd5, 0x5d, 0x13, 0xee, // IID11040 - 0xd5, 0x5d, 0x13, 0xf7, // IID11041 - 0xd5, 0x4c, 0x13, 0xf9, // IID11042 - 0x48, 0x3b, 0xca, // IID11043 - 0x48, 0x3b, 0xd3, // IID11044 - 0x49, 0x3b, 0xd8, // IID11045 - 0x4d, 0x3b, 0xc1, // IID11046 - 0x4d, 0x3b, 0xca, // IID11047 - 0x4d, 0x3b, 0xd3, // IID11048 - 0x4d, 0x3b, 0xdc, // IID11049 - 0x4d, 0x3b, 0xe5, // IID11050 - 0x4d, 0x3b, 0xee, // IID11051 - 0x4d, 0x3b, 0xf7, // IID11052 - 0xd5, 0x1c, 0x3b, 0xf8, // IID11053 - 0xd5, 0x58, 0x3b, 0xc1, // IID11054 - 0xd5, 0x58, 0x3b, 0xca, // IID11055 - 0xd5, 0x58, 0x3b, 0xd3, // IID11056 - 0xd5, 0x58, 0x3b, 0xdc, // IID11057 - 0xd5, 0x58, 0x3b, 0xe5, // IID11058 - 0xd5, 0x58, 0x3b, 0xee, // IID11059 - 0xd5, 0x58, 0x3b, 0xf7, // IID11060 - 0xd5, 0x59, 0x3b, 0xf8, // IID11061 - 0xd5, 0x5d, 0x3b, 0xc1, // IID11062 - 0xd5, 0x5d, 0x3b, 0xca, // IID11063 - 0xd5, 0x5d, 0x3b, 0xd3, // IID11064 - 0xd5, 0x5d, 0x3b, 0xdc, // IID11065 - 0xd5, 0x5d, 0x3b, 0xe5, // IID11066 - 0xd5, 0x5d, 0x3b, 0xee, // IID11067 - 0xd5, 0x5d, 0x3b, 0xf7, // IID11068 - 0xd5, 0x4c, 0x3b, 0xf9, // IID11069 - 0x48, 0x0f, 0xaf, 0xca, // IID11070 - 0x48, 0x0f, 0xaf, 0xd3, // IID11071 - 0x49, 0x0f, 0xaf, 0xd8, // IID11072 - 0x4d, 0x0f, 0xaf, 0xc1, // IID11073 - 0x4d, 0x0f, 0xaf, 0xca, // IID11074 - 0x4d, 0x0f, 0xaf, 0xd3, // IID11075 - 0x4d, 0x0f, 0xaf, 0xdc, // IID11076 - 0x4d, 0x0f, 0xaf, 0xe5, // IID11077 - 0x4d, 0x0f, 0xaf, 0xee, // IID11078 - 0x4d, 0x0f, 0xaf, 0xf7, // IID11079 - 0xd5, 0x9c, 0xaf, 0xf8, // IID11080 - 0xd5, 0xd8, 0xaf, 0xc1, // IID11081 - 0xd5, 0xd8, 0xaf, 0xca, // IID11082 - 0xd5, 0xd8, 0xaf, 0xd3, // IID11083 - 0xd5, 0xd8, 0xaf, 0xdc, // IID11084 - 0xd5, 0xd8, 0xaf, 0xe5, // IID11085 - 0xd5, 0xd8, 0xaf, 0xee, // IID11086 - 0xd5, 0xd8, 0xaf, 0xf7, // IID11087 - 0xd5, 0xd9, 0xaf, 0xf8, // IID11088 - 0xd5, 0xdd, 0xaf, 0xc1, // IID11089 - 0xd5, 0xdd, 0xaf, 0xca, // IID11090 - 0xd5, 0xdd, 0xaf, 0xd3, // IID11091 - 0xd5, 0xdd, 0xaf, 0xdc, // IID11092 - 0xd5, 0xdd, 0xaf, 0xe5, // IID11093 - 0xd5, 0xdd, 0xaf, 0xee, // IID11094 - 0xd5, 0xdd, 0xaf, 0xf7, // IID11095 - 0xd5, 0xcc, 0xaf, 0xf9, // IID11096 - 0xf3, 0x48, 0x0f, 0xb8, 0xca, // IID11097 - 0xf3, 0x48, 0x0f, 0xb8, 0xd3, // IID11098 - 0xf3, 0x49, 0x0f, 0xb8, 0xd8, // IID11099 - 0xf3, 0x4d, 0x0f, 0xb8, 0xc1, // IID11100 - 0xf3, 0x4d, 0x0f, 0xb8, 0xca, // IID11101 - 0xf3, 0x4d, 0x0f, 0xb8, 0xd3, // IID11102 - 0xf3, 0x4d, 0x0f, 0xb8, 0xdc, // IID11103 - 0xf3, 0x4d, 0x0f, 0xb8, 0xe5, // IID11104 - 0xf3, 0x4d, 0x0f, 0xb8, 0xee, // IID11105 - 0xf3, 0x4d, 0x0f, 0xb8, 0xf7, // IID11106 - 0xf3, 0xd5, 0x9c, 0xb8, 0xf8, // IID11107 - 0xf3, 0xd5, 0xd8, 0xb8, 0xc1, // IID11108 - 0xf3, 0xd5, 0xd8, 0xb8, 0xca, // IID11109 - 0xf3, 0xd5, 0xd8, 0xb8, 0xd3, // IID11110 - 0xf3, 0xd5, 0xd8, 0xb8, 0xdc, // IID11111 - 0xf3, 0xd5, 0xd8, 0xb8, 0xe5, // IID11112 - 0xf3, 0xd5, 0xd8, 0xb8, 0xee, // IID11113 - 0xf3, 0xd5, 0xd8, 0xb8, 0xf7, // IID11114 - 0xf3, 0xd5, 0xd9, 0xb8, 0xf8, // IID11115 - 0xf3, 0xd5, 0xdd, 0xb8, 0xc1, // IID11116 - 0xf3, 0xd5, 0xdd, 0xb8, 0xca, // IID11117 - 0xf3, 0xd5, 0xdd, 0xb8, 0xd3, // IID11118 - 0xf3, 0xd5, 0xdd, 0xb8, 0xdc, // IID11119 - 0xf3, 0xd5, 0xdd, 0xb8, 0xe5, // IID11120 - 0xf3, 0xd5, 0xdd, 0xb8, 0xee, // IID11121 - 0xf3, 0xd5, 0xdd, 0xb8, 0xf7, // IID11122 - 0xf3, 0xd5, 0xcc, 0xb8, 0xf9, // IID11123 - 0x48, 0x1b, 0xca, // IID11124 - 0x48, 0x1b, 0xd3, // IID11125 - 0x49, 0x1b, 0xd8, // IID11126 - 0x4d, 0x1b, 0xc1, // IID11127 - 0x4d, 0x1b, 0xca, // IID11128 - 0x4d, 0x1b, 0xd3, // IID11129 - 0x4d, 0x1b, 0xdc, // IID11130 - 0x4d, 0x1b, 0xe5, // IID11131 - 0x4d, 0x1b, 0xee, // IID11132 - 0x4d, 0x1b, 0xf7, // IID11133 - 0xd5, 0x1c, 0x1b, 0xf8, // IID11134 - 0xd5, 0x58, 0x1b, 0xc1, // IID11135 - 0xd5, 0x58, 0x1b, 0xca, // IID11136 - 0xd5, 0x58, 0x1b, 0xd3, // IID11137 - 0xd5, 0x58, 0x1b, 0xdc, // IID11138 - 0xd5, 0x58, 0x1b, 0xe5, // IID11139 - 0xd5, 0x58, 0x1b, 0xee, // IID11140 - 0xd5, 0x58, 0x1b, 0xf7, // IID11141 - 0xd5, 0x59, 0x1b, 0xf8, // IID11142 - 0xd5, 0x5d, 0x1b, 0xc1, // IID11143 - 0xd5, 0x5d, 0x1b, 0xca, // IID11144 - 0xd5, 0x5d, 0x1b, 0xd3, // IID11145 - 0xd5, 0x5d, 0x1b, 0xdc, // IID11146 - 0xd5, 0x5d, 0x1b, 0xe5, // IID11147 - 0xd5, 0x5d, 0x1b, 0xee, // IID11148 - 0xd5, 0x5d, 0x1b, 0xf7, // IID11149 - 0xd5, 0x4c, 0x1b, 0xf9, // IID11150 - 0x48, 0x2b, 0xca, // IID11151 - 0x48, 0x2b, 0xd3, // IID11152 - 0x49, 0x2b, 0xd8, // IID11153 - 0x4d, 0x2b, 0xc1, // IID11154 - 0x4d, 0x2b, 0xca, // IID11155 - 0x4d, 0x2b, 0xd3, // IID11156 - 0x4d, 0x2b, 0xdc, // IID11157 - 0x4d, 0x2b, 0xe5, // IID11158 - 0x4d, 0x2b, 0xee, // IID11159 - 0x4d, 0x2b, 0xf7, // IID11160 - 0xd5, 0x1c, 0x2b, 0xf8, // IID11161 - 0xd5, 0x58, 0x2b, 0xc1, // IID11162 - 0xd5, 0x58, 0x2b, 0xca, // IID11163 - 0xd5, 0x58, 0x2b, 0xd3, // IID11164 - 0xd5, 0x58, 0x2b, 0xdc, // IID11165 - 0xd5, 0x58, 0x2b, 0xe5, // IID11166 - 0xd5, 0x58, 0x2b, 0xee, // IID11167 - 0xd5, 0x58, 0x2b, 0xf7, // IID11168 - 0xd5, 0x59, 0x2b, 0xf8, // IID11169 - 0xd5, 0x5d, 0x2b, 0xc1, // IID11170 - 0xd5, 0x5d, 0x2b, 0xca, // IID11171 - 0xd5, 0x5d, 0x2b, 0xd3, // IID11172 - 0xd5, 0x5d, 0x2b, 0xdc, // IID11173 - 0xd5, 0x5d, 0x2b, 0xe5, // IID11174 - 0xd5, 0x5d, 0x2b, 0xee, // IID11175 - 0xd5, 0x5d, 0x2b, 0xf7, // IID11176 - 0xd5, 0x4c, 0x2b, 0xf9, // IID11177 - 0xf3, 0x48, 0x0f, 0xbc, 0xca, // IID11178 - 0xf3, 0x48, 0x0f, 0xbc, 0xd3, // IID11179 - 0xf3, 0x49, 0x0f, 0xbc, 0xd8, // IID11180 - 0xf3, 0x4d, 0x0f, 0xbc, 0xc1, // IID11181 - 0xf3, 0x4d, 0x0f, 0xbc, 0xca, // IID11182 - 0xf3, 0x4d, 0x0f, 0xbc, 0xd3, // IID11183 - 0xf3, 0x4d, 0x0f, 0xbc, 0xdc, // IID11184 - 0xf3, 0x4d, 0x0f, 0xbc, 0xe5, // IID11185 - 0xf3, 0x4d, 0x0f, 0xbc, 0xee, // IID11186 - 0xf3, 0x4d, 0x0f, 0xbc, 0xf7, // IID11187 - 0xf3, 0xd5, 0x9c, 0xbc, 0xf8, // IID11188 - 0xf3, 0xd5, 0xd8, 0xbc, 0xc1, // IID11189 - 0xf3, 0xd5, 0xd8, 0xbc, 0xca, // IID11190 - 0xf3, 0xd5, 0xd8, 0xbc, 0xd3, // IID11191 - 0xf3, 0xd5, 0xd8, 0xbc, 0xdc, // IID11192 - 0xf3, 0xd5, 0xd8, 0xbc, 0xe5, // IID11193 - 0xf3, 0xd5, 0xd8, 0xbc, 0xee, // IID11194 - 0xf3, 0xd5, 0xd8, 0xbc, 0xf7, // IID11195 - 0xf3, 0xd5, 0xd9, 0xbc, 0xf8, // IID11196 - 0xf3, 0xd5, 0xdd, 0xbc, 0xc1, // IID11197 - 0xf3, 0xd5, 0xdd, 0xbc, 0xca, // IID11198 - 0xf3, 0xd5, 0xdd, 0xbc, 0xd3, // IID11199 - 0xf3, 0xd5, 0xdd, 0xbc, 0xdc, // IID11200 - 0xf3, 0xd5, 0xdd, 0xbc, 0xe5, // IID11201 - 0xf3, 0xd5, 0xdd, 0xbc, 0xee, // IID11202 - 0xf3, 0xd5, 0xdd, 0xbc, 0xf7, // IID11203 - 0xf3, 0xd5, 0xcc, 0xbc, 0xf9, // IID11204 - 0xf3, 0x48, 0x0f, 0xbd, 0xca, // IID11205 - 0xf3, 0x48, 0x0f, 0xbd, 0xd3, // IID11206 - 0xf3, 0x49, 0x0f, 0xbd, 0xd8, // IID11207 - 0xf3, 0x4d, 0x0f, 0xbd, 0xc1, // IID11208 - 0xf3, 0x4d, 0x0f, 0xbd, 0xca, // IID11209 - 0xf3, 0x4d, 0x0f, 0xbd, 0xd3, // IID11210 - 0xf3, 0x4d, 0x0f, 0xbd, 0xdc, // IID11211 - 0xf3, 0x4d, 0x0f, 0xbd, 0xe5, // IID11212 - 0xf3, 0x4d, 0x0f, 0xbd, 0xee, // IID11213 - 0xf3, 0x4d, 0x0f, 0xbd, 0xf7, // IID11214 - 0xf3, 0xd5, 0x9c, 0xbd, 0xf8, // IID11215 - 0xf3, 0xd5, 0xd8, 0xbd, 0xc1, // IID11216 - 0xf3, 0xd5, 0xd8, 0xbd, 0xca, // IID11217 - 0xf3, 0xd5, 0xd8, 0xbd, 0xd3, // IID11218 - 0xf3, 0xd5, 0xd8, 0xbd, 0xdc, // IID11219 - 0xf3, 0xd5, 0xd8, 0xbd, 0xe5, // IID11220 - 0xf3, 0xd5, 0xd8, 0xbd, 0xee, // IID11221 - 0xf3, 0xd5, 0xd8, 0xbd, 0xf7, // IID11222 - 0xf3, 0xd5, 0xd9, 0xbd, 0xf8, // IID11223 - 0xf3, 0xd5, 0xdd, 0xbd, 0xc1, // IID11224 - 0xf3, 0xd5, 0xdd, 0xbd, 0xca, // IID11225 - 0xf3, 0xd5, 0xdd, 0xbd, 0xd3, // IID11226 - 0xf3, 0xd5, 0xdd, 0xbd, 0xdc, // IID11227 - 0xf3, 0xd5, 0xdd, 0xbd, 0xe5, // IID11228 - 0xf3, 0xd5, 0xdd, 0xbd, 0xee, // IID11229 - 0xf3, 0xd5, 0xdd, 0xbd, 0xf7, // IID11230 - 0xf3, 0xd5, 0xcc, 0xbd, 0xf9, // IID11231 - 0x48, 0x03, 0xca, // IID11232 - 0x48, 0x03, 0xd3, // IID11233 - 0x49, 0x03, 0xd8, // IID11234 - 0x4d, 0x03, 0xc1, // IID11235 - 0x4d, 0x03, 0xca, // IID11236 - 0x4d, 0x03, 0xd3, // IID11237 - 0x4d, 0x03, 0xdc, // IID11238 - 0x4d, 0x03, 0xe5, // IID11239 - 0x4d, 0x03, 0xee, // IID11240 - 0x4d, 0x03, 0xf7, // IID11241 - 0xd5, 0x1c, 0x03, 0xf8, // IID11242 - 0xd5, 0x58, 0x03, 0xc1, // IID11243 - 0xd5, 0x58, 0x03, 0xca, // IID11244 - 0xd5, 0x58, 0x03, 0xd3, // IID11245 - 0xd5, 0x58, 0x03, 0xdc, // IID11246 - 0xd5, 0x58, 0x03, 0xe5, // IID11247 - 0xd5, 0x58, 0x03, 0xee, // IID11248 - 0xd5, 0x58, 0x03, 0xf7, // IID11249 - 0xd5, 0x59, 0x03, 0xf8, // IID11250 - 0xd5, 0x5d, 0x03, 0xc1, // IID11251 - 0xd5, 0x5d, 0x03, 0xca, // IID11252 - 0xd5, 0x5d, 0x03, 0xd3, // IID11253 - 0xd5, 0x5d, 0x03, 0xdc, // IID11254 - 0xd5, 0x5d, 0x03, 0xe5, // IID11255 - 0xd5, 0x5d, 0x03, 0xee, // IID11256 - 0xd5, 0x5d, 0x03, 0xf7, // IID11257 - 0xd5, 0x4c, 0x03, 0xf9, // IID11258 - 0x48, 0x23, 0xca, // IID11259 - 0x48, 0x23, 0xd3, // IID11260 - 0x49, 0x23, 0xd8, // IID11261 - 0x4d, 0x23, 0xc1, // IID11262 - 0x4d, 0x23, 0xca, // IID11263 - 0x4d, 0x23, 0xd3, // IID11264 - 0x4d, 0x23, 0xdc, // IID11265 - 0x4d, 0x23, 0xe5, // IID11266 - 0x4d, 0x23, 0xee, // IID11267 - 0x4d, 0x23, 0xf7, // IID11268 - 0xd5, 0x1c, 0x23, 0xf8, // IID11269 - 0xd5, 0x58, 0x23, 0xc1, // IID11270 - 0xd5, 0x58, 0x23, 0xca, // IID11271 - 0xd5, 0x58, 0x23, 0xd3, // IID11272 - 0xd5, 0x58, 0x23, 0xdc, // IID11273 - 0xd5, 0x58, 0x23, 0xe5, // IID11274 - 0xd5, 0x58, 0x23, 0xee, // IID11275 - 0xd5, 0x58, 0x23, 0xf7, // IID11276 - 0xd5, 0x59, 0x23, 0xf8, // IID11277 - 0xd5, 0x5d, 0x23, 0xc1, // IID11278 - 0xd5, 0x5d, 0x23, 0xca, // IID11279 - 0xd5, 0x5d, 0x23, 0xd3, // IID11280 - 0xd5, 0x5d, 0x23, 0xdc, // IID11281 - 0xd5, 0x5d, 0x23, 0xe5, // IID11282 - 0xd5, 0x5d, 0x23, 0xee, // IID11283 - 0xd5, 0x5d, 0x23, 0xf7, // IID11284 - 0xd5, 0x4c, 0x23, 0xf9, // IID11285 - 0x48, 0x0b, 0xca, // IID11286 - 0x48, 0x0b, 0xd3, // IID11287 - 0x49, 0x0b, 0xd8, // IID11288 - 0x4d, 0x0b, 0xc1, // IID11289 - 0x4d, 0x0b, 0xca, // IID11290 - 0x4d, 0x0b, 0xd3, // IID11291 - 0x4d, 0x0b, 0xdc, // IID11292 - 0x4d, 0x0b, 0xe5, // IID11293 - 0x4d, 0x0b, 0xee, // IID11294 - 0x4d, 0x0b, 0xf7, // IID11295 - 0xd5, 0x1c, 0x0b, 0xf8, // IID11296 - 0xd5, 0x58, 0x0b, 0xc1, // IID11297 - 0xd5, 0x58, 0x0b, 0xca, // IID11298 - 0xd5, 0x58, 0x0b, 0xd3, // IID11299 - 0xd5, 0x58, 0x0b, 0xdc, // IID11300 - 0xd5, 0x58, 0x0b, 0xe5, // IID11301 - 0xd5, 0x58, 0x0b, 0xee, // IID11302 - 0xd5, 0x58, 0x0b, 0xf7, // IID11303 - 0xd5, 0x59, 0x0b, 0xf8, // IID11304 - 0xd5, 0x5d, 0x0b, 0xc1, // IID11305 - 0xd5, 0x5d, 0x0b, 0xca, // IID11306 - 0xd5, 0x5d, 0x0b, 0xd3, // IID11307 - 0xd5, 0x5d, 0x0b, 0xdc, // IID11308 - 0xd5, 0x5d, 0x0b, 0xe5, // IID11309 - 0xd5, 0x5d, 0x0b, 0xee, // IID11310 - 0xd5, 0x5d, 0x0b, 0xf7, // IID11311 - 0xd5, 0x4c, 0x0b, 0xf9, // IID11312 - 0x48, 0x33, 0xca, // IID11313 - 0x48, 0x33, 0xd3, // IID11314 - 0x49, 0x33, 0xd8, // IID11315 - 0x4d, 0x33, 0xc1, // IID11316 - 0x4d, 0x33, 0xca, // IID11317 - 0x4d, 0x33, 0xd3, // IID11318 - 0x4d, 0x33, 0xdc, // IID11319 - 0x4d, 0x33, 0xe5, // IID11320 - 0x4d, 0x33, 0xee, // IID11321 - 0x4d, 0x33, 0xf7, // IID11322 - 0xd5, 0x1c, 0x33, 0xf8, // IID11323 - 0xd5, 0x58, 0x33, 0xc1, // IID11324 - 0xd5, 0x58, 0x33, 0xca, // IID11325 - 0xd5, 0x58, 0x33, 0xd3, // IID11326 - 0xd5, 0x58, 0x33, 0xdc, // IID11327 - 0xd5, 0x58, 0x33, 0xe5, // IID11328 - 0xd5, 0x58, 0x33, 0xee, // IID11329 - 0xd5, 0x58, 0x33, 0xf7, // IID11330 - 0xd5, 0x59, 0x33, 0xf8, // IID11331 - 0xd5, 0x5d, 0x33, 0xc1, // IID11332 - 0xd5, 0x5d, 0x33, 0xca, // IID11333 - 0xd5, 0x5d, 0x33, 0xd3, // IID11334 - 0xd5, 0x5d, 0x33, 0xdc, // IID11335 - 0xd5, 0x5d, 0x33, 0xe5, // IID11336 - 0xd5, 0x5d, 0x33, 0xee, // IID11337 - 0xd5, 0x5d, 0x33, 0xf7, // IID11338 - 0xd5, 0x4c, 0x33, 0xf9, // IID11339 - 0x48, 0x8b, 0xca, // IID11340 - 0x48, 0x8b, 0xd3, // IID11341 - 0x49, 0x8b, 0xd8, // IID11342 - 0x4d, 0x8b, 0xc1, // IID11343 - 0x4d, 0x8b, 0xca, // IID11344 - 0x4d, 0x8b, 0xd3, // IID11345 - 0x4d, 0x8b, 0xdc, // IID11346 - 0x4d, 0x8b, 0xe5, // IID11347 - 0x4d, 0x8b, 0xee, // IID11348 - 0x4d, 0x8b, 0xf7, // IID11349 - 0xd5, 0x1c, 0x8b, 0xf8, // IID11350 - 0xd5, 0x58, 0x8b, 0xc1, // IID11351 - 0xd5, 0x58, 0x8b, 0xca, // IID11352 - 0xd5, 0x58, 0x8b, 0xd3, // IID11353 - 0xd5, 0x58, 0x8b, 0xdc, // IID11354 - 0xd5, 0x58, 0x8b, 0xe5, // IID11355 - 0xd5, 0x58, 0x8b, 0xee, // IID11356 - 0xd5, 0x58, 0x8b, 0xf7, // IID11357 - 0xd5, 0x59, 0x8b, 0xf8, // IID11358 - 0xd5, 0x5d, 0x8b, 0xc1, // IID11359 - 0xd5, 0x5d, 0x8b, 0xca, // IID11360 - 0xd5, 0x5d, 0x8b, 0xd3, // IID11361 - 0xd5, 0x5d, 0x8b, 0xdc, // IID11362 - 0xd5, 0x5d, 0x8b, 0xe5, // IID11363 - 0xd5, 0x5d, 0x8b, 0xee, // IID11364 - 0xd5, 0x5d, 0x8b, 0xf7, // IID11365 - 0xd5, 0x4c, 0x8b, 0xf9, // IID11366 - 0x48, 0x0f, 0xbc, 0xca, // IID11367 - 0x48, 0x0f, 0xbc, 0xd3, // IID11368 - 0x49, 0x0f, 0xbc, 0xd8, // IID11369 - 0x4d, 0x0f, 0xbc, 0xc1, // IID11370 - 0x4d, 0x0f, 0xbc, 0xca, // IID11371 - 0x4d, 0x0f, 0xbc, 0xd3, // IID11372 - 0x4d, 0x0f, 0xbc, 0xdc, // IID11373 - 0x4d, 0x0f, 0xbc, 0xe5, // IID11374 - 0x4d, 0x0f, 0xbc, 0xee, // IID11375 - 0x4d, 0x0f, 0xbc, 0xf7, // IID11376 - 0xd5, 0x9c, 0xbc, 0xf8, // IID11377 - 0xd5, 0xd8, 0xbc, 0xc1, // IID11378 - 0xd5, 0xd8, 0xbc, 0xca, // IID11379 - 0xd5, 0xd8, 0xbc, 0xd3, // IID11380 - 0xd5, 0xd8, 0xbc, 0xdc, // IID11381 - 0xd5, 0xd8, 0xbc, 0xe5, // IID11382 - 0xd5, 0xd8, 0xbc, 0xee, // IID11383 - 0xd5, 0xd8, 0xbc, 0xf7, // IID11384 - 0xd5, 0xd9, 0xbc, 0xf8, // IID11385 - 0xd5, 0xdd, 0xbc, 0xc1, // IID11386 - 0xd5, 0xdd, 0xbc, 0xca, // IID11387 - 0xd5, 0xdd, 0xbc, 0xd3, // IID11388 - 0xd5, 0xdd, 0xbc, 0xdc, // IID11389 - 0xd5, 0xdd, 0xbc, 0xe5, // IID11390 - 0xd5, 0xdd, 0xbc, 0xee, // IID11391 - 0xd5, 0xdd, 0xbc, 0xf7, // IID11392 - 0xd5, 0xcc, 0xbc, 0xf9, // IID11393 - 0x48, 0x0f, 0xbd, 0xca, // IID11394 - 0x48, 0x0f, 0xbd, 0xd3, // IID11395 - 0x49, 0x0f, 0xbd, 0xd8, // IID11396 - 0x4d, 0x0f, 0xbd, 0xc1, // IID11397 - 0x4d, 0x0f, 0xbd, 0xca, // IID11398 - 0x4d, 0x0f, 0xbd, 0xd3, // IID11399 - 0x4d, 0x0f, 0xbd, 0xdc, // IID11400 - 0x4d, 0x0f, 0xbd, 0xe5, // IID11401 - 0x4d, 0x0f, 0xbd, 0xee, // IID11402 - 0x4d, 0x0f, 0xbd, 0xf7, // IID11403 - 0xd5, 0x9c, 0xbd, 0xf8, // IID11404 - 0xd5, 0xd8, 0xbd, 0xc1, // IID11405 - 0xd5, 0xd8, 0xbd, 0xca, // IID11406 - 0xd5, 0xd8, 0xbd, 0xd3, // IID11407 - 0xd5, 0xd8, 0xbd, 0xdc, // IID11408 - 0xd5, 0xd8, 0xbd, 0xe5, // IID11409 - 0xd5, 0xd8, 0xbd, 0xee, // IID11410 - 0xd5, 0xd8, 0xbd, 0xf7, // IID11411 - 0xd5, 0xd9, 0xbd, 0xf8, // IID11412 - 0xd5, 0xdd, 0xbd, 0xc1, // IID11413 - 0xd5, 0xdd, 0xbd, 0xca, // IID11414 - 0xd5, 0xdd, 0xbd, 0xd3, // IID11415 - 0xd5, 0xdd, 0xbd, 0xdc, // IID11416 - 0xd5, 0xdd, 0xbd, 0xe5, // IID11417 - 0xd5, 0xdd, 0xbd, 0xee, // IID11418 - 0xd5, 0xdd, 0xbd, 0xf7, // IID11419 - 0xd5, 0xcc, 0xbd, 0xf9, // IID11420 - 0x48, 0x0f, 0xa3, 0xd1, // IID11421 - 0x48, 0x0f, 0xa3, 0xda, // IID11422 - 0x4c, 0x0f, 0xa3, 0xc3, // IID11423 - 0x4d, 0x0f, 0xa3, 0xc8, // IID11424 - 0x4d, 0x0f, 0xa3, 0xd1, // IID11425 - 0x4d, 0x0f, 0xa3, 0xda, // IID11426 - 0x4d, 0x0f, 0xa3, 0xe3, // IID11427 - 0x4d, 0x0f, 0xa3, 0xec, // IID11428 - 0x4d, 0x0f, 0xa3, 0xf5, // IID11429 - 0x4d, 0x0f, 0xa3, 0xfe, // IID11430 - 0xd5, 0xc9, 0xa3, 0xc7, // IID11431 - 0xd5, 0xd8, 0xa3, 0xc8, // IID11432 - 0xd5, 0xd8, 0xa3, 0xd1, // IID11433 - 0xd5, 0xd8, 0xa3, 0xda, // IID11434 - 0xd5, 0xd8, 0xa3, 0xe3, // IID11435 - 0xd5, 0xd8, 0xa3, 0xec, // IID11436 - 0xd5, 0xd8, 0xa3, 0xf5, // IID11437 - 0xd5, 0xd8, 0xa3, 0xfe, // IID11438 - 0xd5, 0xdc, 0xa3, 0xc7, // IID11439 - 0xd5, 0xdd, 0xa3, 0xc8, // IID11440 - 0xd5, 0xdd, 0xa3, 0xd1, // IID11441 - 0xd5, 0xdd, 0xa3, 0xda, // IID11442 - 0xd5, 0xdd, 0xa3, 0xe3, // IID11443 - 0xd5, 0xdd, 0xa3, 0xec, // IID11444 - 0xd5, 0xdd, 0xa3, 0xf5, // IID11445 - 0xd5, 0xdd, 0xa3, 0xfe, // IID11446 - 0xd5, 0x99, 0xa3, 0xcf, // IID11447 - 0x48, 0x87, 0xca, // IID11448 - 0x48, 0x87, 0xd3, // IID11449 - 0x49, 0x87, 0xd8, // IID11450 - 0x4d, 0x87, 0xc1, // IID11451 - 0x4d, 0x87, 0xca, // IID11452 - 0x4d, 0x87, 0xd3, // IID11453 - 0x4d, 0x87, 0xdc, // IID11454 - 0x4d, 0x87, 0xe5, // IID11455 - 0x4d, 0x87, 0xee, // IID11456 - 0x4d, 0x87, 0xf7, // IID11457 - 0xd5, 0x1c, 0x87, 0xf8, // IID11458 - 0xd5, 0x58, 0x87, 0xc1, // IID11459 - 0xd5, 0x58, 0x87, 0xca, // IID11460 - 0xd5, 0x58, 0x87, 0xd3, // IID11461 - 0xd5, 0x58, 0x87, 0xdc, // IID11462 - 0xd5, 0x58, 0x87, 0xe5, // IID11463 - 0xd5, 0x58, 0x87, 0xee, // IID11464 - 0xd5, 0x58, 0x87, 0xf7, // IID11465 - 0xd5, 0x59, 0x87, 0xf8, // IID11466 - 0xd5, 0x5d, 0x87, 0xc1, // IID11467 - 0xd5, 0x5d, 0x87, 0xca, // IID11468 - 0xd5, 0x5d, 0x87, 0xd3, // IID11469 - 0xd5, 0x5d, 0x87, 0xdc, // IID11470 - 0xd5, 0x5d, 0x87, 0xe5, // IID11471 - 0xd5, 0x5d, 0x87, 0xee, // IID11472 - 0xd5, 0x5d, 0x87, 0xf7, // IID11473 - 0xd5, 0x4c, 0x87, 0xf9, // IID11474 - 0x48, 0x85, 0xca, // IID11475 - 0x48, 0x85, 0xd3, // IID11476 - 0x49, 0x85, 0xd8, // IID11477 - 0x4d, 0x85, 0xc1, // IID11478 - 0x4d, 0x85, 0xca, // IID11479 - 0x4d, 0x85, 0xd3, // IID11480 - 0x4d, 0x85, 0xdc, // IID11481 - 0x4d, 0x85, 0xe5, // IID11482 - 0x4d, 0x85, 0xee, // IID11483 - 0x4d, 0x85, 0xf7, // IID11484 - 0xd5, 0x1c, 0x85, 0xf8, // IID11485 - 0xd5, 0x58, 0x85, 0xc1, // IID11486 - 0xd5, 0x58, 0x85, 0xca, // IID11487 - 0xd5, 0x58, 0x85, 0xd3, // IID11488 - 0xd5, 0x58, 0x85, 0xdc, // IID11489 - 0xd5, 0x58, 0x85, 0xe5, // IID11490 - 0xd5, 0x58, 0x85, 0xee, // IID11491 - 0xd5, 0x58, 0x85, 0xf7, // IID11492 - 0xd5, 0x59, 0x85, 0xf8, // IID11493 - 0xd5, 0x5d, 0x85, 0xc1, // IID11494 - 0xd5, 0x5d, 0x85, 0xca, // IID11495 - 0xd5, 0x5d, 0x85, 0xd3, // IID11496 - 0xd5, 0x5d, 0x85, 0xdc, // IID11497 - 0xd5, 0x5d, 0x85, 0xe5, // IID11498 - 0xd5, 0x5d, 0x85, 0xee, // IID11499 - 0xd5, 0x5d, 0x85, 0xf7, // IID11500 - 0xd5, 0x4c, 0x85, 0xf9, // IID11501 - 0x48, 0x01, 0x8a, 0xf0, 0x88, 0x21, 0xa3, // IID11502 - 0x4a, 0x01, 0x94, 0x43, 0xd4, 0x07, 0xeb, 0x98, // IID11503 - 0x4b, 0x01, 0x9c, 0x48, 0xca, 0xea, 0xdb, 0x8b, // IID11504 - 0x4f, 0x01, 0x84, 0xd1, 0x0b, 0x3d, 0x2c, 0xca, // IID11505 - 0x4f, 0x01, 0x8c, 0x9a, 0xcc, 0xd7, 0xef, 0xa1, // IID11506 - 0x4f, 0x01, 0x94, 0x63, 0x84, 0x01, 0xbd, 0x47, // IID11507 - 0x4f, 0x01, 0x9c, 0xec, 0x46, 0x37, 0xb7, 0x44, // IID11508 - 0x4f, 0x01, 0xa4, 0xf5, 0x9c, 0x17, 0xd0, 0x79, // IID11509 - 0x4f, 0x01, 0xac, 0xfe, 0x52, 0xb7, 0x34, 0xe7, // IID11510 - 0xd5, 0x2d, 0x01, 0xb4, 0x87, 0xe1, 0xaf, 0x8b, 0x74, // IID11511 - 0xd5, 0x3c, 0x01, 0xbc, 0x88, 0x7e, 0x0b, 0xcf, 0x9a, // IID11512 - 0xd5, 0x78, 0x01, 0x84, 0x91, 0x46, 0xf8, 0xd3, 0xc5, // IID11513 - 0xd5, 0x78, 0x01, 0x8c, 0x5a, 0xc4, 0x77, 0x80, 0xd6, // IID11514 - 0xd5, 0x78, 0x01, 0x94, 0x23, 0x7b, 0xa9, 0xd1, 0x89, // IID11515 - 0xd5, 0x78, 0x01, 0x9c, 0x6c, 0x13, 0xd7, 0x27, 0xda, // IID11516 - 0xd5, 0x78, 0x01, 0xa4, 0x75, 0x13, 0x01, 0xb7, 0xd8, // IID11517 - 0xd5, 0x78, 0x01, 0xac, 0x3e, 0xdf, 0x06, 0xfe, 0x6e, // IID11518 - 0xd5, 0x7a, 0x01, 0xb4, 0xc7, 0x37, 0x66, 0xfd, 0x9b, // IID11519 - 0xd5, 0x7b, 0x01, 0xbc, 0x88, 0xc4, 0x65, 0xe1, 0x76, // IID11520 - 0xd5, 0x7f, 0x01, 0x84, 0x51, 0x7e, 0xf5, 0x09, 0x63, // IID11521 - 0xd5, 0x7f, 0x01, 0x8c, 0x5a, 0x99, 0x8b, 0x14, 0x28, // IID11522 - 0xd5, 0x7f, 0x01, 0x94, 0x63, 0x80, 0xf6, 0x70, 0x98, // IID11523 - 0xd5, 0x5d, 0x01, 0x9c, 0x24, 0xa6, 0xcd, 0xee, 0x09, // IID11524 - 0xd5, 0x7f, 0x01, 0xa4, 0xf5, 0x22, 0x41, 0x92, 0x08, // IID11525 - 0xd5, 0x7f, 0x01, 0xac, 0xfe, 0x49, 0x9e, 0x45, 0x4c, // IID11526 - 0xd5, 0x5d, 0x01, 0xb4, 0xcf, 0x4c, 0xc2, 0x88, 0x53, // IID11527 - 0xd5, 0x4c, 0x01, 0xb9, 0x83, 0x88, 0x45, 0x35, // IID11528 - 0x48, 0x21, 0x8a, 0xe5, 0xac, 0x4c, 0x55, // IID11529 - 0x4a, 0x21, 0x94, 0x43, 0xf1, 0xb8, 0xb7, 0xcf, // IID11530 - 0x4b, 0x21, 0x9c, 0xc8, 0x49, 0x8a, 0xc4, 0x49, // IID11531 - 0x4f, 0x21, 0x84, 0xd1, 0xd5, 0x35, 0x9d, 0x93, // IID11532 - 0x4f, 0x21, 0x8c, 0x9a, 0x7a, 0xd2, 0x64, 0x2a, // IID11533 - 0x4f, 0x21, 0x94, 0x63, 0x3d, 0x93, 0x49, 0xfc, // IID11534 - 0x4f, 0x21, 0x9c, 0x2c, 0xa9, 0x92, 0x67, 0x51, // IID11535 - 0x4f, 0x21, 0xa4, 0x35, 0xc5, 0x76, 0xd5, 0x9b, // IID11536 - 0x4f, 0x21, 0xac, 0xbe, 0x2a, 0xe6, 0x09, 0xee, // IID11537 - 0xd5, 0x2d, 0x21, 0xb4, 0xc7, 0x64, 0x45, 0x60, 0x6a, // IID11538 - 0xd5, 0x3c, 0x21, 0xbc, 0x08, 0x8b, 0xf2, 0x13, 0x93, // IID11539 - 0xd5, 0x78, 0x21, 0x84, 0x11, 0x81, 0x35, 0x8b, 0x53, // IID11540 - 0xd5, 0x78, 0x21, 0x8c, 0xda, 0x87, 0xa8, 0x70, 0x24, // IID11541 - 0xd5, 0x78, 0x21, 0x94, 0xe3, 0xdb, 0xba, 0x76, 0x2d, // IID11542 - 0xd5, 0x58, 0x21, 0x9c, 0x24, 0x7d, 0x3f, 0xaa, 0xb4, // IID11543 - 0xd5, 0x78, 0x21, 0xa4, 0xf5, 0xbb, 0x32, 0x5d, 0xbf, // IID11544 - 0xd5, 0x78, 0x21, 0xac, 0x7e, 0x5d, 0xe7, 0x9f, 0xac, // IID11545 - 0xd5, 0x7a, 0x21, 0xb4, 0x47, 0x58, 0xe8, 0x6f, 0x72, // IID11546 - 0xd5, 0x7b, 0x21, 0xbc, 0x88, 0x22, 0x53, 0xd3, 0xe9, // IID11547 - 0xd5, 0x7f, 0x21, 0x84, 0x91, 0x17, 0x11, 0xf9, 0x32, // IID11548 - 0xd5, 0x7f, 0x21, 0x8c, 0xda, 0xa0, 0x3c, 0xe0, 0x71, // IID11549 - 0xd5, 0x7f, 0x21, 0x94, 0x23, 0x04, 0x01, 0x3e, 0x23, // IID11550 - 0xd5, 0x7f, 0x21, 0x9c, 0xac, 0xc5, 0x66, 0x28, 0x1c, // IID11551 - 0xd5, 0x5d, 0x21, 0xa5, 0xf0, 0x8d, 0x2c, 0x8c, // IID11552 - 0xd5, 0x7f, 0x21, 0xac, 0x3e, 0xa4, 0x78, 0xdf, 0xaf, // IID11553 - 0xd5, 0x5d, 0x21, 0xb4, 0x8f, 0x46, 0x37, 0xdd, 0x36, // IID11554 - 0xd5, 0x4c, 0x21, 0xbc, 0x91, 0x14, 0x8a, 0x8c, 0xf9, // IID11555 - 0x48, 0x39, 0x8a, 0x9a, 0xf2, 0x0d, 0xe9, // IID11556 - 0x4a, 0x39, 0x94, 0xc3, 0xaf, 0x47, 0x39, 0x92, // IID11557 - 0x49, 0x39, 0x98, 0xaa, 0x07, 0x95, 0x2a, // IID11558 - 0x4f, 0x39, 0x84, 0x51, 0x4f, 0x83, 0x06, 0x37, // IID11559 - 0x4f, 0x39, 0x8c, 0xda, 0xa6, 0x31, 0xc1, 0xbd, // IID11560 - 0x4f, 0x39, 0x94, 0x63, 0x32, 0xd0, 0xd8, 0x4d, // IID11561 - 0x4f, 0x39, 0x9c, 0xec, 0xcc, 0x6f, 0x88, 0x27, // IID11562 - 0x4f, 0x39, 0xa4, 0x35, 0xb5, 0x11, 0xec, 0x7e, // IID11563 - 0x4f, 0x39, 0xac, 0x3e, 0x1e, 0xae, 0x9b, 0xb2, // IID11564 - 0x4d, 0x39, 0xb7, 0x8d, 0x11, 0xe4, 0x96, // IID11565 - 0xd5, 0x3c, 0x39, 0xbc, 0x08, 0xcd, 0xe6, 0xa1, 0x13, // IID11566 - 0xd5, 0x78, 0x39, 0x84, 0x51, 0x9f, 0x1c, 0x8c, 0xec, // IID11567 - 0xd5, 0x78, 0x39, 0x8c, 0x5a, 0x60, 0xf9, 0x8b, 0xa2, // IID11568 - 0xd5, 0x78, 0x39, 0x94, 0xe3, 0xc3, 0x84, 0x14, 0xcd, // IID11569 - 0xd5, 0x78, 0x39, 0x9c, 0xec, 0x1e, 0x83, 0xd7, 0x75, // IID11570 - 0xd5, 0x58, 0x39, 0xa5, 0x91, 0x20, 0x61, 0x6b, // IID11571 - 0xd5, 0x78, 0x39, 0xac, 0xbe, 0xf5, 0xff, 0x62, 0x46, // IID11572 - 0xd5, 0x7a, 0x39, 0xb4, 0x87, 0x76, 0x51, 0x1e, 0xd2, // IID11573 - 0xd5, 0x7b, 0x39, 0xbc, 0x08, 0x82, 0x01, 0xc0, 0xf1, // IID11574 - 0xd5, 0x7f, 0x39, 0x84, 0xd1, 0x66, 0xad, 0x08, 0x1e, // IID11575 - 0xd5, 0x7f, 0x39, 0x8c, 0xda, 0x8f, 0xad, 0xfd, 0xd7, // IID11576 - 0xd5, 0x5d, 0x39, 0x93, 0x11, 0xab, 0x8b, 0x0c, // IID11577 - 0xd5, 0x7f, 0x39, 0x9c, 0x2c, 0x4f, 0xd8, 0xbf, 0x42, // IID11578 - 0xd5, 0x7f, 0x39, 0xa4, 0xb5, 0x1b, 0x57, 0x34, 0x31, // IID11579 - 0xd5, 0x7f, 0x39, 0xac, 0x7e, 0xd2, 0x6d, 0x7d, 0xbf, // IID11580 - 0xd5, 0x5d, 0x39, 0xb4, 0x4f, 0x1a, 0xfc, 0xc8, 0x23, // IID11581 - 0xd5, 0x4c, 0x39, 0xbc, 0x91, 0xa2, 0xe4, 0x34, 0x6b, // IID11582 - 0x48, 0x09, 0x8c, 0x9a, 0x43, 0x91, 0xda, 0x6b, // IID11583 - 0x4a, 0x09, 0x94, 0x83, 0xb4, 0xd4, 0x49, 0xef, // IID11584 - 0x4b, 0x09, 0x9c, 0x88, 0xa1, 0x17, 0x04, 0xb6, // IID11585 - 0x4d, 0x09, 0x81, 0x44, 0x74, 0x77, 0xe3, // IID11586 - 0x4f, 0x09, 0x8c, 0x9a, 0x95, 0xff, 0x75, 0x36, // IID11587 - 0x4f, 0x09, 0x94, 0x23, 0x70, 0x05, 0x9f, 0x0b, // IID11588 - 0x4d, 0x09, 0x9c, 0x24, 0x08, 0xfd, 0xd7, 0x81, // IID11589 - 0x4f, 0x09, 0xa4, 0xb5, 0x92, 0x87, 0x96, 0x81, // IID11590 - 0x4f, 0x09, 0xac, 0x3e, 0x0a, 0xf8, 0x4a, 0xd0, // IID11591 - 0xd5, 0x2d, 0x09, 0xb4, 0xc7, 0x11, 0x58, 0x8e, 0x36, // IID11592 - 0xd5, 0x1c, 0x09, 0xb8, 0xca, 0x61, 0x40, 0x5a, // IID11593 - 0xd5, 0x78, 0x09, 0x84, 0x51, 0xb0, 0xf7, 0x1e, 0x42, // IID11594 - 0xd5, 0x78, 0x09, 0x8c, 0x1a, 0xe5, 0x22, 0xa5, 0x02, // IID11595 - 0xd5, 0x78, 0x09, 0x94, 0x23, 0x9c, 0x71, 0x7d, 0xd6, // IID11596 - 0xd5, 0x58, 0x09, 0x9c, 0x24, 0xcb, 0xe7, 0x73, 0x5c, // IID11597 - 0xd5, 0x58, 0x09, 0xa5, 0x35, 0x67, 0x91, 0x90, // IID11598 - 0xd5, 0x58, 0x09, 0xae, 0xb6, 0xba, 0xb6, 0x6d, // IID11599 - 0xd5, 0x7a, 0x09, 0xb4, 0xc7, 0x04, 0x78, 0xc6, 0x92, // IID11600 - 0xd5, 0x59, 0x09, 0xb8, 0x06, 0x6c, 0xf1, 0xe6, // IID11601 - 0xd5, 0x7f, 0x09, 0x84, 0x91, 0x12, 0x21, 0xf1, 0xeb, // IID11602 - 0xd5, 0x7f, 0x09, 0x8c, 0x9a, 0x98, 0xc9, 0x2f, 0xc1, // IID11603 - 0xd5, 0x5d, 0x09, 0x93, 0xf2, 0xd3, 0xf4, 0xb3, // IID11604 - 0xd5, 0x7f, 0x09, 0x9c, 0x2c, 0xcc, 0xfb, 0xc3, 0xff, // IID11605 - 0xd5, 0x7f, 0x09, 0xa4, 0xb5, 0x5d, 0xd6, 0xd1, 0xd6, // IID11606 - 0xd5, 0x5d, 0x09, 0xae, 0x13, 0xb4, 0xe5, 0xd9, // IID11607 - 0xd5, 0x5d, 0x09, 0xb4, 0x0f, 0x1b, 0xdf, 0x72, 0x4d, // IID11608 - 0xd5, 0x4c, 0x09, 0xbc, 0xd1, 0x21, 0xcc, 0xf1, 0x03, // IID11609 - 0x48, 0x31, 0x8c, 0x1a, 0x2b, 0x6e, 0x36, 0xeb, // IID11610 - 0x4a, 0x31, 0x94, 0x43, 0xc4, 0x57, 0xbb, 0x94, // IID11611 - 0x4b, 0x31, 0x9c, 0x48, 0x15, 0x6c, 0x5d, 0x4a, // IID11612 - 0x4f, 0x31, 0x84, 0x51, 0x21, 0x69, 0x60, 0x75, // IID11613 - 0x4f, 0x31, 0x8c, 0xda, 0xad, 0x5f, 0x56, 0x13, // IID11614 - 0x4d, 0x31, 0x93, 0x51, 0x9b, 0xd5, 0x17, // IID11615 - 0x4f, 0x31, 0x9c, 0xac, 0x8e, 0xa0, 0x95, 0xa8, // IID11616 - 0x4f, 0x31, 0xa4, 0x75, 0x5f, 0xfb, 0x08, 0x0b, // IID11617 - 0x4f, 0x31, 0xac, 0x3e, 0x17, 0x59, 0x24, 0x22, // IID11618 - 0x4d, 0x31, 0xb7, 0x2d, 0xac, 0x7c, 0xdc, // IID11619 - 0xd5, 0x3c, 0x31, 0xbc, 0x08, 0xd3, 0x97, 0x6f, 0x31, // IID11620 - 0xd5, 0x58, 0x31, 0x81, 0xea, 0x48, 0x4c, 0xea, // IID11621 - 0xd5, 0x58, 0x31, 0x8a, 0x0c, 0x02, 0x81, 0x10, // IID11622 - 0xd5, 0x58, 0x31, 0x93, 0x1a, 0x7d, 0x6d, 0x37, // IID11623 - 0xd5, 0x78, 0x31, 0x9c, 0x2c, 0x18, 0x1e, 0xe3, 0xf8, // IID11624 - 0xd5, 0x58, 0x31, 0xa5, 0x4c, 0xeb, 0xda, 0x96, // IID11625 - 0xd5, 0x78, 0x31, 0xac, 0xfe, 0x99, 0x96, 0x5d, 0xc9, // IID11626 - 0xd5, 0x7a, 0x31, 0xb4, 0x87, 0x2c, 0xaa, 0x34, 0x39, // IID11627 - 0xd5, 0x7b, 0x31, 0xbc, 0x48, 0x40, 0x6d, 0xe3, 0xe3, // IID11628 - 0xd5, 0x5d, 0x31, 0x81, 0x81, 0x6a, 0x34, 0x12, // IID11629 - 0xd5, 0x5d, 0x31, 0x8a, 0x4c, 0x24, 0xcc, 0x10, // IID11630 - 0xd5, 0x5d, 0x31, 0x93, 0x86, 0x40, 0x8c, 0xfc, // IID11631 - 0xd5, 0x7f, 0x31, 0x9c, 0x6c, 0xfc, 0x52, 0x8d, 0x7a, // IID11632 - 0xd5, 0x5d, 0x31, 0xa5, 0xf5, 0x7b, 0x34, 0xc4, // IID11633 - 0xd5, 0x7f, 0x31, 0xac, 0xfe, 0xf1, 0x9a, 0x39, 0xd8, // IID11634 - 0xd5, 0x5d, 0x31, 0xb4, 0xcf, 0x25, 0xb0, 0xbb, 0x56, // IID11635 - 0xd5, 0x4c, 0x31, 0xbc, 0xd1, 0xbc, 0x71, 0x4a, 0xa9, // IID11636 - 0x48, 0x29, 0x8c, 0xda, 0xeb, 0x8e, 0x28, 0xd9, // IID11637 - 0x4a, 0x29, 0x94, 0x83, 0x93, 0x03, 0x8b, 0xd0, // IID11638 - 0x4b, 0x29, 0x9c, 0x48, 0x72, 0xb6, 0xf7, 0x04, // IID11639 - 0x4f, 0x29, 0x84, 0x91, 0x0f, 0xaa, 0x96, 0x4e, // IID11640 - 0x4f, 0x29, 0x8c, 0x1a, 0x6b, 0xc3, 0xb2, 0x19, // IID11641 - 0x4f, 0x29, 0x94, 0x23, 0xcd, 0x38, 0x52, 0xa4, // IID11642 - 0x4f, 0x29, 0x9c, 0x6c, 0xb8, 0x85, 0xae, 0x82, // IID11643 - 0x4f, 0x29, 0xa4, 0x75, 0xb3, 0x99, 0x1c, 0x38, // IID11644 - 0x4f, 0x29, 0xac, 0xfe, 0xc3, 0xf6, 0xf9, 0x22, // IID11645 - 0xd5, 0x2d, 0x29, 0xb4, 0x47, 0x4a, 0x28, 0x33, 0x76, // IID11646 - 0xd5, 0x3c, 0x29, 0xbc, 0x08, 0x36, 0x21, 0x08, 0x4f, // IID11647 - 0xd5, 0x78, 0x29, 0x84, 0x91, 0x30, 0x6c, 0xd1, 0x97, // IID11648 - 0xd5, 0x78, 0x29, 0x8c, 0x9a, 0xae, 0x7c, 0x99, 0x1a, // IID11649 - 0xd5, 0x58, 0x29, 0x93, 0xd8, 0xed, 0xbf, 0x1a, // IID11650 - 0xd5, 0x78, 0x29, 0x9c, 0x2c, 0x5d, 0x3e, 0xbf, 0x52, // IID11651 - 0xd5, 0x78, 0x29, 0xa4, 0xb5, 0x22, 0xd7, 0x36, 0x94, // IID11652 - 0xd5, 0x58, 0x29, 0xae, 0x8c, 0x4f, 0x7c, 0x54, // IID11653 - 0xd5, 0x58, 0x29, 0xb7, 0x64, 0x8b, 0x0c, 0xf9, // IID11654 - 0xd5, 0x7b, 0x29, 0xbc, 0x48, 0x35, 0x0a, 0x48, 0x59, // IID11655 - 0xd5, 0x7f, 0x29, 0x84, 0xd1, 0x73, 0x88, 0xf9, 0x76, // IID11656 - 0xd5, 0x5d, 0x29, 0x8a, 0xea, 0x59, 0xa8, 0x24, // IID11657 - 0xd5, 0x7f, 0x29, 0x94, 0x23, 0xea, 0xf4, 0x13, 0x29, // IID11658 - 0xd5, 0x7f, 0x29, 0x9c, 0xac, 0xed, 0x68, 0xf1, 0x6c, // IID11659 - 0xd5, 0x7f, 0x29, 0xa4, 0x75, 0x3a, 0x7d, 0xbc, 0x61, // IID11660 - 0xd5, 0x7f, 0x29, 0xac, 0x7e, 0x19, 0x8e, 0xb3, 0x85, // IID11661 - 0xd5, 0x5d, 0x29, 0xb4, 0x8f, 0x56, 0xb7, 0xb9, 0xb8, // IID11662 - 0xd5, 0x4c, 0x29, 0xbc, 0x91, 0x0b, 0x94, 0xd5, 0x8e, // IID11663 - 0x48, 0x89, 0x8a, 0xd8, 0x6f, 0xe1, 0xa8, // IID11664 - 0x4a, 0x89, 0x94, 0x83, 0x3e, 0x99, 0x22, 0x82, // IID11665 - 0x4b, 0x89, 0x9c, 0xc8, 0x20, 0x77, 0x6f, 0xe1, // IID11666 - 0x4f, 0x89, 0x84, 0x91, 0xde, 0xf4, 0xd3, 0xea, // IID11667 - 0x4d, 0x89, 0x8a, 0xe8, 0xaf, 0x8a, 0xa0, // IID11668 - 0x4f, 0x89, 0x94, 0x63, 0xfa, 0x57, 0x76, 0xf9, // IID11669 - 0x4f, 0x89, 0x9c, 0x6c, 0x37, 0x70, 0x0b, 0xfb, // IID11670 - 0x4f, 0x89, 0xa4, 0x75, 0xc4, 0x54, 0x54, 0xde, // IID11671 - 0x4f, 0x89, 0xac, 0xbe, 0xdc, 0x88, 0x49, 0x6f, // IID11672 - 0xd5, 0x2d, 0x89, 0xb4, 0xc7, 0xe9, 0x9e, 0xdd, 0xc8, // IID11673 - 0xd5, 0x3c, 0x89, 0xbc, 0x48, 0xd6, 0x9c, 0x41, 0x1d, // IID11674 - 0xd5, 0x78, 0x89, 0x84, 0x51, 0x61, 0xb7, 0xfa, 0x8a, // IID11675 - 0xd5, 0x78, 0x89, 0x8c, 0x5a, 0xe6, 0xf4, 0x23, 0x69, // IID11676 - 0xd5, 0x58, 0x89, 0x93, 0xd4, 0x5a, 0x38, 0xa3, // IID11677 - 0xd5, 0x78, 0x89, 0x9c, 0x6c, 0x42, 0x47, 0x2e, 0xfe, // IID11678 - 0xd5, 0x78, 0x89, 0xa4, 0xf5, 0xf0, 0x27, 0x57, 0x89, // IID11679 - 0xd5, 0x78, 0x89, 0xac, 0xbe, 0xfa, 0xa0, 0xc8, 0x63, // IID11680 - 0xd5, 0x58, 0x89, 0xb7, 0x0d, 0x6b, 0x8b, 0xd7, // IID11681 - 0xd5, 0x7b, 0x89, 0xbc, 0x48, 0x84, 0x8e, 0x45, 0x19, // IID11682 - 0xd5, 0x7f, 0x89, 0x84, 0x11, 0x24, 0x8d, 0x04, 0x0c, // IID11683 - 0xd5, 0x7f, 0x89, 0x8c, 0x1a, 0x9f, 0xff, 0xe4, 0x16, // IID11684 - 0xd5, 0x7f, 0x89, 0x94, 0xa3, 0xd6, 0x8a, 0x37, 0x58, // IID11685 - 0xd5, 0x7f, 0x89, 0x9c, 0x6c, 0x28, 0x18, 0x9c, 0xf0, // IID11686 - 0xd5, 0x7f, 0x89, 0xa4, 0xb5, 0x5d, 0x07, 0x32, 0x20, // IID11687 - 0xd5, 0x7f, 0x89, 0xac, 0x7e, 0xfb, 0x40, 0x02, 0xb7, // IID11688 - 0xd5, 0x5d, 0x89, 0xb4, 0xcf, 0x95, 0x1b, 0x99, 0x2e, // IID11689 - 0xd5, 0x4c, 0x89, 0xbc, 0x11, 0x6a, 0x78, 0x8e, 0x56, // IID11690 - 0x48, 0x0f, 0xc1, 0x8c, 0xda, 0xe6, 0x8a, 0xf8, 0xc5, // IID11691 - 0x48, 0x0f, 0xc1, 0x93, 0x37, 0xdc, 0x7c, 0xd2, // IID11692 - 0x4b, 0x0f, 0xc1, 0x9c, 0x08, 0x59, 0xb4, 0x79, 0x4c, // IID11693 - 0x4d, 0x0f, 0xc1, 0x81, 0xde, 0xed, 0xde, 0xb9, // IID11694 - 0x4f, 0x0f, 0xc1, 0x8c, 0x9a, 0x02, 0x37, 0xbd, 0x3e, // IID11695 - 0x4d, 0x0f, 0xc1, 0x93, 0xa1, 0x7f, 0x72, 0x20, // IID11696 - 0x4f, 0x0f, 0xc1, 0x9c, 0xac, 0xea, 0x10, 0x9e, 0x72, // IID11697 - 0x4f, 0x0f, 0xc1, 0xa4, 0x35, 0x18, 0x78, 0x9b, 0xfa, // IID11698 - 0x4d, 0x0f, 0xc1, 0xae, 0x86, 0xc7, 0xc4, 0xb5, // IID11699 - 0xd5, 0xad, 0xc1, 0xb4, 0x07, 0xb3, 0xb8, 0xee, 0x83, // IID11700 - 0xd5, 0xbc, 0xc1, 0xbc, 0x08, 0x04, 0x21, 0x2f, 0xc7, // IID11701 - 0xd5, 0xf8, 0xc1, 0x84, 0xd1, 0xe6, 0xa4, 0x68, 0x88, // IID11702 - 0xd5, 0xf8, 0xc1, 0x8c, 0x1a, 0x8b, 0xdc, 0xe4, 0x9f, // IID11703 - 0xd5, 0xf8, 0xc1, 0x94, 0x63, 0x65, 0xd9, 0x43, 0x47, // IID11704 - 0xd5, 0xf8, 0xc1, 0x9c, 0x6c, 0x9f, 0xf9, 0xff, 0x2b, // IID11705 - 0xd5, 0xf8, 0xc1, 0xa4, 0x35, 0x56, 0x2e, 0x6e, 0xce, // IID11706 - 0xd5, 0xf8, 0xc1, 0xac, 0x3e, 0x8b, 0x65, 0x99, 0xf4, // IID11707 - 0xd5, 0xd8, 0xc1, 0xb7, 0xfe, 0x8f, 0xe2, 0xcd, // IID11708 - 0xd5, 0xfb, 0xc1, 0xbc, 0x48, 0x39, 0x5e, 0x30, 0xce, // IID11709 - 0xd5, 0xff, 0xc1, 0x84, 0x51, 0xd9, 0xea, 0xea, 0xb8, // IID11710 - 0xd5, 0xff, 0xc1, 0x8c, 0x5a, 0x75, 0x21, 0x50, 0x00, // IID11711 - 0xd5, 0xff, 0xc1, 0x94, 0xe3, 0x75, 0xc3, 0x6d, 0x2b, // IID11712 - 0xd5, 0xff, 0xc1, 0x9c, 0xec, 0xd6, 0x3e, 0x79, 0x7c, // IID11713 - 0xd5, 0xff, 0xc1, 0xa4, 0xb5, 0xc1, 0x47, 0xe0, 0x0b, // IID11714 - 0xd5, 0xdd, 0xc1, 0xae, 0xe9, 0x0e, 0xd7, 0x4c, // IID11715 - 0xd5, 0xdd, 0xc1, 0xb7, 0xa6, 0x4c, 0xad, 0xdd, // IID11716 - 0xd5, 0xcc, 0xc1, 0xb9, 0x45, 0x9d, 0x59, 0x7b, // IID11717 - 0x48, 0x83, 0xa4, 0x91, 0xda, 0x9b, 0xbd, 0xb1, 0x01, // IID11718 - 0x48, 0x83, 0xa4, 0x1a, 0x8e, 0x22, 0x72, 0x87, 0x01, // IID11719 - 0x4a, 0x83, 0xa4, 0x03, 0xd5, 0x5b, 0x83, 0xe7, 0x01, // IID11720 - 0x4b, 0x83, 0xa4, 0x48, 0xa7, 0x8a, 0x21, 0x2f, 0x01, // IID11721 - 0x49, 0x83, 0xa1, 0x72, 0xc8, 0x5c, 0x82, 0x01, // IID11722 - 0x4b, 0x83, 0xa4, 0x9a, 0xc8, 0xec, 0xa6, 0x41, 0x01, // IID11723 - 0x4b, 0x83, 0xa4, 0xa3, 0x13, 0x47, 0x06, 0x25, 0x01, // IID11724 - 0x4b, 0x83, 0xa4, 0xec, 0xde, 0xbc, 0x5e, 0x74, 0x01, // IID11725 - 0x4b, 0x83, 0xa4, 0xb5, 0xd8, 0x15, 0x2c, 0x86, 0x01, // IID11726 - 0x4b, 0x83, 0xa4, 0xfe, 0x20, 0x12, 0xbb, 0xc3, 0x01, // IID11727 - 0xd5, 0x29, 0x83, 0xa4, 0x87, 0xbb, 0x32, 0x41, 0xaf, 0x01, // IID11728 - 0xd5, 0x38, 0x83, 0xa4, 0x48, 0x5b, 0x57, 0xc1, 0x17, 0x01, // IID11729 - 0xd5, 0x38, 0x83, 0xa4, 0x91, 0x49, 0x89, 0x80, 0x53, 0x01, // IID11730 - 0xd5, 0x38, 0x83, 0xa4, 0x9a, 0x67, 0x41, 0x2a, 0xd0, 0x01, // IID11731 - 0xd5, 0x38, 0x83, 0xa4, 0x23, 0xc6, 0x65, 0xfc, 0xa7, 0x01, // IID11732 - 0xd5, 0x38, 0x83, 0xa4, 0x2c, 0x1d, 0x6a, 0x4e, 0x63, 0x01, // IID11733 - 0xd5, 0x38, 0x83, 0xa4, 0x75, 0xe0, 0x72, 0xbb, 0xc1, 0x01, // IID11734 - 0xd5, 0x18, 0x83, 0xa6, 0x46, 0x16, 0x35, 0x09, 0x01, // IID11735 - 0xd5, 0x3a, 0x83, 0xa4, 0xc7, 0x6e, 0xcc, 0xa6, 0x97, 0x01, // IID11736 - 0xd5, 0x19, 0x83, 0xa0, 0x48, 0x27, 0x87, 0x42, 0x01, // IID11737 - 0xd5, 0x3b, 0x83, 0xa4, 0xd1, 0x97, 0x6f, 0x21, 0xc2, 0x01, // IID11738 - 0xd5, 0x3b, 0x83, 0xa4, 0xda, 0xd2, 0x23, 0x04, 0x21, 0x01, // IID11739 - 0xd5, 0x3b, 0x83, 0xa4, 0xe3, 0x3c, 0xd2, 0xdb, 0xd1, 0x01, // IID11740 - 0xd5, 0x3b, 0x83, 0xa4, 0x2c, 0x1d, 0x1c, 0x57, 0x07, 0x01, // IID11741 - 0xd5, 0x19, 0x83, 0xa5, 0x41, 0x2e, 0xc5, 0x8a, 0x01, // IID11742 - 0xd5, 0x19, 0x83, 0xa6, 0x33, 0x72, 0xe3, 0x92, 0x01, // IID11743 - 0xd5, 0x19, 0x83, 0xa4, 0x8f, 0xaa, 0x1a, 0x24, 0x78, 0x01, // IID11744 - 0x48, 0x83, 0xa4, 0xd1, 0x35, 0x05, 0xbf, 0xfb, 0x10, // IID11745 - 0x48, 0x83, 0xa4, 0x1a, 0x09, 0xdb, 0x8a, 0x81, 0x10, // IID11746 - 0x4a, 0x83, 0xa4, 0x43, 0x91, 0x7e, 0x63, 0x86, 0x10, // IID11747 - 0x4b, 0x83, 0xa4, 0xc8, 0x71, 0x76, 0x39, 0x4d, 0x10, // IID11748 - 0x4b, 0x83, 0xa4, 0xd1, 0x91, 0xc1, 0x5d, 0xf6, 0x10, // IID11749 - 0x49, 0x83, 0xa2, 0x0e, 0x6d, 0x8b, 0x65, 0x10, // IID11750 - 0x4b, 0x83, 0xa4, 0xe3, 0xc8, 0x64, 0xdd, 0xc4, 0x10, // IID11751 - 0x4b, 0x83, 0xa4, 0x6c, 0x68, 0xe7, 0xb7, 0x31, 0x10, // IID11752 - 0x4b, 0x83, 0xa4, 0x75, 0x0a, 0x3a, 0x5d, 0x6f, 0x10, // IID11753 - 0x4b, 0x83, 0xa4, 0xbe, 0x44, 0xa8, 0x05, 0xaf, 0x10, // IID11754 - 0xd5, 0x29, 0x83, 0xa4, 0xc7, 0x5d, 0x93, 0x1e, 0x10, 0x10, // IID11755 - 0xd5, 0x38, 0x83, 0xa4, 0xc8, 0x58, 0xff, 0x59, 0xf8, 0x10, // IID11756 - 0xd5, 0x38, 0x83, 0xa4, 0xd1, 0xbd, 0x51, 0xd7, 0x2a, 0x10, // IID11757 - 0xd5, 0x18, 0x83, 0xa2, 0xe5, 0x44, 0x3e, 0x93, 0x10, // IID11758 - 0xd5, 0x38, 0x83, 0xa4, 0xe3, 0x35, 0xc7, 0xd7, 0x43, 0x10, // IID11759 - 0xd5, 0x38, 0x83, 0xa4, 0x6c, 0xb5, 0x74, 0xea, 0x2b, 0x10, // IID11760 - 0xd5, 0x38, 0x83, 0xa4, 0x35, 0x85, 0x32, 0xbf, 0xa1, 0x10, // IID11761 - 0xd5, 0x38, 0x83, 0xa4, 0x7e, 0x83, 0x75, 0x4a, 0x5f, 0x10, // IID11762 - 0xd5, 0x3a, 0x83, 0xa4, 0x87, 0x5c, 0x1a, 0xef, 0x95, 0x10, // IID11763 - 0xd5, 0x3b, 0x83, 0xa4, 0x88, 0x3c, 0xd9, 0x5b, 0x23, 0x10, // IID11764 - 0xd5, 0x3b, 0x83, 0xa4, 0x51, 0x21, 0x78, 0xdc, 0x6a, 0x10, // IID11765 - 0xd5, 0x3b, 0x83, 0xa4, 0x9a, 0x0c, 0xaa, 0xa2, 0xbe, 0x10, // IID11766 - 0xd5, 0x3b, 0x83, 0xa4, 0x23, 0x11, 0xc4, 0x5d, 0xb4, 0x10, // IID11767 - 0xd5, 0x3b, 0x83, 0xa4, 0xec, 0x41, 0xa5, 0x9c, 0x4e, 0x10, // IID11768 - 0xd5, 0x19, 0x83, 0xa5, 0x72, 0xf1, 0xca, 0xf8, 0x10, // IID11769 - 0xd5, 0x3b, 0x83, 0xa4, 0x7e, 0x41, 0x62, 0x8d, 0xee, 0x10, // IID11770 - 0xd5, 0x19, 0x83, 0xa4, 0xcf, 0x6b, 0xe4, 0xe5, 0xf2, 0x10, // IID11771 - 0x48, 0x81, 0xa4, 0x51, 0x48, 0x8d, 0xc1, 0xda, 0x00, 0x01, 0x00, 0x00, // IID11772 - 0x48, 0x81, 0xa4, 0x5a, 0xba, 0x98, 0x20, 0x5f, 0x00, 0x01, 0x00, 0x00, // IID11773 - 0x4a, 0x81, 0xa4, 0x43, 0x69, 0x74, 0x77, 0x89, 0x00, 0x01, 0x00, 0x00, // IID11774 - 0x49, 0x81, 0xa0, 0xd6, 0x8c, 0xb1, 0x84, 0x00, 0x01, 0x00, 0x00, // IID11775 - 0x4b, 0x81, 0xa4, 0x11, 0xd5, 0x16, 0x10, 0xf9, 0x00, 0x01, 0x00, 0x00, // IID11776 - 0x4b, 0x81, 0xa4, 0x9a, 0x77, 0x48, 0x96, 0xa0, 0x00, 0x01, 0x00, 0x00, // IID11777 - 0x4b, 0x81, 0xa4, 0x63, 0x01, 0xa4, 0x1e, 0xf2, 0x00, 0x01, 0x00, 0x00, // IID11778 - 0x4b, 0x81, 0xa4, 0x6c, 0x3e, 0x3c, 0xe7, 0xd6, 0x00, 0x01, 0x00, 0x00, // IID11779 - 0x49, 0x81, 0xa5, 0xa5, 0xff, 0x15, 0x81, 0x00, 0x01, 0x00, 0x00, // IID11780 - 0x4b, 0x81, 0xa4, 0x3e, 0x60, 0x77, 0xfa, 0xc6, 0x00, 0x01, 0x00, 0x00, // IID11781 - 0xd5, 0x29, 0x81, 0xa4, 0xc7, 0x4d, 0x3e, 0x80, 0x7c, 0x00, 0x01, 0x00, 0x00, // IID11782 - 0xd5, 0x38, 0x81, 0xa4, 0x08, 0xf6, 0xce, 0xc5, 0xa5, 0x00, 0x01, 0x00, 0x00, // IID11783 - 0xd5, 0x18, 0x81, 0xa1, 0x35, 0x8b, 0x64, 0x77, 0x00, 0x01, 0x00, 0x00, // IID11784 - 0xd5, 0x38, 0x81, 0xa4, 0x5a, 0xed, 0x07, 0x5a, 0xb6, 0x00, 0x01, 0x00, 0x00, // IID11785 - 0xd5, 0x38, 0x81, 0xa4, 0x63, 0xf0, 0x36, 0xe5, 0xf7, 0x00, 0x01, 0x00, 0x00, // IID11786 - 0xd5, 0x18, 0x81, 0xa4, 0x24, 0xf9, 0x65, 0xf1, 0xcd, 0x00, 0x01, 0x00, 0x00, // IID11787 - 0xd5, 0x38, 0x81, 0xa4, 0x75, 0x98, 0x83, 0x11, 0x80, 0x00, 0x01, 0x00, 0x00, // IID11788 - 0xd5, 0x38, 0x81, 0xa4, 0x3e, 0xf1, 0x61, 0xe4, 0x0b, 0x00, 0x01, 0x00, 0x00, // IID11789 - 0xd5, 0x3a, 0x81, 0xa4, 0xc7, 0x55, 0x7b, 0x7d, 0x36, 0x00, 0x01, 0x00, 0x00, // IID11790 - 0xd5, 0x19, 0x81, 0xa0, 0x85, 0xca, 0x71, 0x20, 0x00, 0x01, 0x00, 0x00, // IID11791 - 0xd5, 0x3b, 0x81, 0xa4, 0x11, 0xb6, 0x16, 0x5d, 0x41, 0x00, 0x01, 0x00, 0x00, // IID11792 - 0xd5, 0x3b, 0x81, 0xa4, 0x5a, 0xe4, 0x78, 0xd3, 0x1f, 0x00, 0x01, 0x00, 0x00, // IID11793 - 0xd5, 0x3b, 0x81, 0xa4, 0xe3, 0x69, 0x2a, 0x11, 0x09, 0x00, 0x01, 0x00, 0x00, // IID11794 - 0xd5, 0x3b, 0x81, 0xa4, 0x2c, 0x8c, 0x81, 0x0c, 0x71, 0x00, 0x01, 0x00, 0x00, // IID11795 - 0xd5, 0x19, 0x81, 0xa5, 0x32, 0x46, 0x3b, 0xce, 0x00, 0x01, 0x00, 0x00, // IID11796 - 0xd5, 0x19, 0x81, 0xa6, 0x1a, 0xf9, 0x35, 0xa8, 0x00, 0x01, 0x00, 0x00, // IID11797 - 0xd5, 0x19, 0x81, 0xa7, 0xc2, 0x11, 0x3f, 0x8d, 0x00, 0x01, 0x00, 0x00, // IID11798 - 0x48, 0x81, 0xa4, 0x11, 0xa2, 0x4b, 0x09, 0xc7, 0x00, 0x10, 0x00, 0x00, // IID11799 - 0x48, 0x81, 0xa2, 0x83, 0x2e, 0xe1, 0x65, 0x00, 0x10, 0x00, 0x00, // IID11800 - 0x4a, 0x81, 0xa4, 0xc3, 0x4a, 0xc4, 0x69, 0xfb, 0x00, 0x10, 0x00, 0x00, // IID11801 - 0x4b, 0x81, 0xa4, 0x08, 0x97, 0x9e, 0x92, 0x84, 0x00, 0x10, 0x00, 0x00, // IID11802 - 0x4b, 0x81, 0xa4, 0xd1, 0x16, 0x50, 0x02, 0x82, 0x00, 0x10, 0x00, 0x00, // IID11803 - 0x49, 0x81, 0xa2, 0x35, 0x90, 0x95, 0x3f, 0x00, 0x10, 0x00, 0x00, // IID11804 - 0x4b, 0x81, 0xa4, 0xa3, 0xa9, 0xad, 0xcd, 0xa2, 0x00, 0x10, 0x00, 0x00, // IID11805 - 0x4b, 0x81, 0xa4, 0xac, 0xc3, 0xa7, 0x8d, 0x2b, 0x00, 0x10, 0x00, 0x00, // IID11806 - 0x4b, 0x81, 0xa4, 0x35, 0x52, 0xc2, 0x4f, 0x8b, 0x00, 0x10, 0x00, 0x00, // IID11807 - 0x4b, 0x81, 0xa4, 0xbe, 0x5d, 0xe4, 0xf9, 0x9c, 0x00, 0x10, 0x00, 0x00, // IID11808 - 0xd5, 0x29, 0x81, 0xa4, 0x47, 0x84, 0x4e, 0xaf, 0x2c, 0x00, 0x10, 0x00, 0x00, // IID11809 - 0xd5, 0x38, 0x81, 0xa4, 0x88, 0xe6, 0x28, 0xc8, 0x58, 0x00, 0x10, 0x00, 0x00, // IID11810 - 0xd5, 0x18, 0x81, 0xa1, 0xff, 0xa3, 0x94, 0xc2, 0x00, 0x10, 0x00, 0x00, // IID11811 - 0xd5, 0x18, 0x81, 0xa2, 0x2f, 0x4e, 0x1e, 0xe1, 0x00, 0x10, 0x00, 0x00, // IID11812 - 0xd5, 0x38, 0x81, 0xa4, 0x23, 0xd8, 0xb5, 0xbb, 0xec, 0x00, 0x10, 0x00, 0x00, // IID11813 - 0xd5, 0x38, 0x81, 0xa4, 0x6c, 0xd8, 0x5d, 0xb2, 0x08, 0x00, 0x10, 0x00, 0x00, // IID11814 - 0xd5, 0x18, 0x81, 0xa5, 0xa3, 0x22, 0xfe, 0x5e, 0x00, 0x10, 0x00, 0x00, // IID11815 - 0xd5, 0x38, 0x81, 0xa4, 0xbe, 0xf4, 0x68, 0xea, 0xa1, 0x00, 0x10, 0x00, 0x00, // IID11816 - 0xd5, 0x3a, 0x81, 0xa4, 0x87, 0x33, 0xe0, 0x88, 0xa6, 0x00, 0x10, 0x00, 0x00, // IID11817 - 0xd5, 0x19, 0x81, 0xa0, 0x21, 0x25, 0x12, 0x44, 0x00, 0x10, 0x00, 0x00, // IID11818 - 0xd5, 0x3b, 0x81, 0xa4, 0x51, 0x69, 0x57, 0x8f, 0xb1, 0x00, 0x10, 0x00, 0x00, // IID11819 - 0xd5, 0x3b, 0x81, 0xa4, 0x1a, 0x87, 0x6b, 0x92, 0x6f, 0x00, 0x10, 0x00, 0x00, // IID11820 - 0xd5, 0x19, 0x81, 0xa3, 0xca, 0xb1, 0xc1, 0xcb, 0x00, 0x10, 0x00, 0x00, // IID11821 - 0xd5, 0x3b, 0x81, 0xa4, 0xec, 0x4a, 0x24, 0x05, 0xf4, 0x00, 0x10, 0x00, 0x00, // IID11822 - 0xd5, 0x3b, 0x81, 0xa4, 0x75, 0xa9, 0x0f, 0x48, 0x3a, 0x00, 0x10, 0x00, 0x00, // IID11823 - 0xd5, 0x3b, 0x81, 0xa4, 0xfe, 0xf4, 0x9f, 0xd5, 0xb2, 0x00, 0x10, 0x00, 0x00, // IID11824 - 0xd5, 0x19, 0x81, 0xa4, 0x8f, 0xf0, 0x8a, 0xd9, 0x62, 0x00, 0x10, 0x00, 0x00, // IID11825 - 0x48, 0x81, 0xa4, 0xd1, 0x5e, 0x20, 0x28, 0x8f, 0x00, 0x00, 0x01, 0x00, // IID11826 - 0x48, 0x81, 0xa4, 0xda, 0xf1, 0x36, 0x96, 0x35, 0x00, 0x00, 0x01, 0x00, // IID11827 - 0x4a, 0x81, 0xa4, 0xc3, 0xba, 0x5b, 0xb2, 0x7c, 0x00, 0x00, 0x01, 0x00, // IID11828 - 0x49, 0x81, 0xa0, 0x0e, 0x32, 0x85, 0x89, 0x00, 0x00, 0x01, 0x00, // IID11829 - 0x49, 0x81, 0xa1, 0x0c, 0xce, 0x3f, 0xa1, 0x00, 0x00, 0x01, 0x00, // IID11830 - 0x4b, 0x81, 0xa4, 0x5a, 0x9c, 0x8f, 0x46, 0xbd, 0x00, 0x00, 0x01, 0x00, // IID11831 - 0x4b, 0x81, 0xa4, 0xa3, 0xae, 0x01, 0xf3, 0xca, 0x00, 0x00, 0x01, 0x00, // IID11832 - 0x4b, 0x81, 0xa4, 0xec, 0x01, 0xe4, 0x09, 0xfe, 0x00, 0x00, 0x01, 0x00, // IID11833 - 0x4b, 0x81, 0xa4, 0xb5, 0xe3, 0x6d, 0xb6, 0x53, 0x00, 0x00, 0x01, 0x00, // IID11834 - 0x49, 0x81, 0xa6, 0x72, 0x64, 0xc8, 0x80, 0x00, 0x00, 0x01, 0x00, // IID11835 - 0xd5, 0x29, 0x81, 0xa4, 0xc7, 0xe9, 0x5e, 0xaa, 0x4d, 0x00, 0x00, 0x01, 0x00, // IID11836 - 0xd5, 0x38, 0x81, 0xa4, 0x48, 0xf8, 0xa5, 0xe6, 0x1b, 0x00, 0x00, 0x01, 0x00, // IID11837 - 0xd5, 0x38, 0x81, 0xa4, 0x51, 0x9c, 0x26, 0x22, 0x44, 0x00, 0x00, 0x01, 0x00, // IID11838 - 0xd5, 0x38, 0x81, 0xa4, 0x9a, 0x3f, 0xbc, 0xb7, 0x45, 0x00, 0x00, 0x01, 0x00, // IID11839 - 0xd5, 0x38, 0x81, 0xa4, 0xa3, 0xcd, 0x51, 0xd8, 0x22, 0x00, 0x00, 0x01, 0x00, // IID11840 - 0xd5, 0x38, 0x81, 0xa4, 0xac, 0x65, 0x38, 0x84, 0x86, 0x00, 0x00, 0x01, 0x00, // IID11841 - 0xd5, 0x38, 0x81, 0xa4, 0xb5, 0x24, 0x5b, 0x45, 0xd1, 0x00, 0x00, 0x01, 0x00, // IID11842 - 0xd5, 0x38, 0x81, 0xa4, 0xbe, 0x82, 0xe3, 0xb1, 0x61, 0x00, 0x00, 0x01, 0x00, // IID11843 - 0xd5, 0x3a, 0x81, 0xa4, 0xc7, 0x0a, 0x4f, 0x25, 0xb1, 0x00, 0x00, 0x01, 0x00, // IID11844 - 0xd5, 0x3b, 0x81, 0xa4, 0x48, 0x36, 0x6d, 0xf5, 0xd0, 0x00, 0x00, 0x01, 0x00, // IID11845 - 0xd5, 0x3b, 0x81, 0xa4, 0xd1, 0x84, 0xa9, 0xce, 0x63, 0x00, 0x00, 0x01, 0x00, // IID11846 - 0xd5, 0x3b, 0x81, 0xa4, 0x5a, 0x29, 0x31, 0x5c, 0xe6, 0x00, 0x00, 0x01, 0x00, // IID11847 - 0xd5, 0x19, 0x81, 0xa3, 0x07, 0xae, 0xff, 0xf2, 0x00, 0x00, 0x01, 0x00, // IID11848 - 0xd5, 0x3b, 0x81, 0xa4, 0x2c, 0x3a, 0x4a, 0x16, 0x11, 0x00, 0x00, 0x01, 0x00, // IID11849 - 0xd5, 0x3b, 0x81, 0xa4, 0xb5, 0xe6, 0x85, 0x04, 0xa6, 0x00, 0x00, 0x01, 0x00, // IID11850 - 0xd5, 0x3b, 0x81, 0xa4, 0x3e, 0xcd, 0xd6, 0x7b, 0x22, 0x00, 0x00, 0x01, 0x00, // IID11851 - 0xd5, 0x19, 0x81, 0xa4, 0x4f, 0xf6, 0xab, 0x37, 0xb7, 0x00, 0x00, 0x01, 0x00, // IID11852 - 0x48, 0x81, 0xa4, 0x91, 0xf8, 0x11, 0xc6, 0xd3, 0x00, 0x00, 0x10, 0x00, // IID11853 - 0x48, 0x81, 0xa4, 0x9a, 0x74, 0xdf, 0x1a, 0x42, 0x00, 0x00, 0x10, 0x00, // IID11854 - 0x4a, 0x81, 0xa4, 0x43, 0xcc, 0xf0, 0x32, 0x6f, 0x00, 0x00, 0x10, 0x00, // IID11855 - 0x4b, 0x81, 0xa4, 0x08, 0x55, 0x83, 0x68, 0x98, 0x00, 0x00, 0x10, 0x00, // IID11856 - 0x4b, 0x81, 0xa4, 0x11, 0xf7, 0x6d, 0x5f, 0xf1, 0x00, 0x00, 0x10, 0x00, // IID11857 - 0x4b, 0x81, 0xa4, 0x9a, 0x56, 0x57, 0xad, 0x0f, 0x00, 0x00, 0x10, 0x00, // IID11858 - 0x4b, 0x81, 0xa4, 0xe3, 0x1a, 0x1b, 0xa5, 0xb4, 0x00, 0x00, 0x10, 0x00, // IID11859 - 0x4b, 0x81, 0xa4, 0xec, 0xae, 0xa8, 0x4f, 0xf7, 0x00, 0x00, 0x10, 0x00, // IID11860 - 0x4b, 0x81, 0xa4, 0x35, 0xa5, 0xb3, 0xde, 0x33, 0x00, 0x00, 0x10, 0x00, // IID11861 - 0x49, 0x81, 0xa6, 0xec, 0x9b, 0xb4, 0x17, 0x00, 0x00, 0x10, 0x00, // IID11862 - 0xd5, 0x29, 0x81, 0xa4, 0x87, 0x31, 0x9d, 0x70, 0x1b, 0x00, 0x00, 0x10, 0x00, // IID11863 - 0xd5, 0x38, 0x81, 0xa4, 0x88, 0xb6, 0x64, 0xef, 0x78, 0x00, 0x00, 0x10, 0x00, // IID11864 - 0xd5, 0x38, 0x81, 0xa4, 0xd1, 0x3c, 0xa5, 0xae, 0x03, 0x00, 0x00, 0x10, 0x00, // IID11865 - 0xd5, 0x38, 0x81, 0xa4, 0xda, 0xf7, 0xe7, 0x0d, 0x51, 0x00, 0x00, 0x10, 0x00, // IID11866 - 0xd5, 0x38, 0x81, 0xa4, 0xa3, 0x03, 0x9d, 0x12, 0x4e, 0x00, 0x00, 0x10, 0x00, // IID11867 - 0xd5, 0x38, 0x81, 0xa4, 0xec, 0xa3, 0xa4, 0x94, 0x53, 0x00, 0x00, 0x10, 0x00, // IID11868 - 0xd5, 0x38, 0x81, 0xa4, 0xb5, 0xf9, 0xf8, 0x57, 0xd3, 0x00, 0x00, 0x10, 0x00, // IID11869 - 0xd5, 0x38, 0x81, 0xa4, 0x3e, 0xa4, 0x31, 0xb4, 0x54, 0x00, 0x00, 0x10, 0x00, // IID11870 - 0xd5, 0x3a, 0x81, 0xa4, 0x07, 0xef, 0xab, 0x31, 0x93, 0x00, 0x00, 0x10, 0x00, // IID11871 - 0xd5, 0x19, 0x81, 0xa0, 0xe5, 0x6e, 0x9e, 0x10, 0x00, 0x00, 0x10, 0x00, // IID11872 - 0xd5, 0x3b, 0x81, 0xa4, 0x51, 0xee, 0x17, 0xd4, 0xa0, 0x00, 0x00, 0x10, 0x00, // IID11873 - 0xd5, 0x3b, 0x81, 0xa4, 0xda, 0xed, 0xf2, 0xdb, 0xda, 0x00, 0x00, 0x10, 0x00, // IID11874 - 0xd5, 0x19, 0x81, 0xa3, 0x88, 0x10, 0x89, 0x78, 0x00, 0x00, 0x10, 0x00, // IID11875 - 0xd5, 0x3b, 0x81, 0xa4, 0xac, 0x7e, 0x04, 0x85, 0x20, 0x00, 0x00, 0x10, 0x00, // IID11876 - 0xd5, 0x3b, 0x81, 0xa4, 0x75, 0xed, 0xc3, 0x88, 0xaf, 0x00, 0x00, 0x10, 0x00, // IID11877 - 0xd5, 0x19, 0x81, 0xa6, 0x18, 0x98, 0x00, 0x88, 0x00, 0x00, 0x10, 0x00, // IID11878 - 0xd5, 0x19, 0x81, 0xa7, 0xd2, 0x81, 0x53, 0xcc, 0x00, 0x00, 0x10, 0x00, // IID11879 - 0x48, 0x81, 0xa4, 0x51, 0x70, 0x61, 0x65, 0x3a, 0x00, 0x00, 0x00, 0x01, // IID11880 - 0x48, 0x81, 0xa2, 0xe7, 0x8c, 0x9a, 0xd4, 0x00, 0x00, 0x00, 0x01, // IID11881 - 0x4a, 0x81, 0xa4, 0x03, 0x47, 0x0e, 0xcc, 0x1c, 0x00, 0x00, 0x00, 0x01, // IID11882 - 0x4b, 0x81, 0xa4, 0x48, 0x7c, 0xdb, 0x5f, 0x3e, 0x00, 0x00, 0x00, 0x01, // IID11883 - 0x4b, 0x81, 0xa4, 0x51, 0x17, 0xe3, 0x24, 0x03, 0x00, 0x00, 0x00, 0x01, // IID11884 - 0x4b, 0x81, 0xa4, 0x5a, 0x82, 0xdf, 0x7d, 0x6f, 0x00, 0x00, 0x00, 0x01, // IID11885 - 0x4b, 0x81, 0xa4, 0xa3, 0x43, 0x02, 0x09, 0x9d, 0x00, 0x00, 0x00, 0x01, // IID11886 - 0x4b, 0x81, 0xa4, 0xac, 0xa2, 0xc2, 0x4c, 0xb8, 0x00, 0x00, 0x00, 0x01, // IID11887 - 0x4b, 0x81, 0xa4, 0xb5, 0xbb, 0x9d, 0x81, 0xc1, 0x00, 0x00, 0x00, 0x01, // IID11888 - 0x4b, 0x81, 0xa4, 0xbe, 0x38, 0xca, 0x52, 0x24, 0x00, 0x00, 0x00, 0x01, // IID11889 - 0x49, 0x81, 0xa7, 0xc2, 0x2b, 0xd0, 0xd4, 0x00, 0x00, 0x00, 0x01, // IID11890 - 0xd5, 0x38, 0x81, 0xa4, 0xc8, 0xec, 0x46, 0xe1, 0x0b, 0x00, 0x00, 0x00, 0x01, // IID11891 - 0xd5, 0x38, 0x81, 0xa4, 0x11, 0x3f, 0x59, 0x28, 0x8a, 0x00, 0x00, 0x00, 0x01, // IID11892 - 0xd5, 0x18, 0x81, 0xa2, 0xe3, 0xc9, 0xa9, 0xf5, 0x00, 0x00, 0x00, 0x01, // IID11893 - 0xd5, 0x38, 0x81, 0xa4, 0xe3, 0xe2, 0x87, 0x9a, 0x54, 0x00, 0x00, 0x00, 0x01, // IID11894 - 0xd5, 0x18, 0x81, 0xa4, 0x24, 0x6f, 0xaf, 0x3b, 0x95, 0x00, 0x00, 0x00, 0x01, // IID11895 - 0xd5, 0x38, 0x81, 0xa4, 0x35, 0x07, 0xbb, 0x94, 0x1f, 0x00, 0x00, 0x00, 0x01, // IID11896 - 0xd5, 0x18, 0x81, 0xa6, 0xa7, 0x43, 0xb4, 0xaf, 0x00, 0x00, 0x00, 0x01, // IID11897 - 0xd5, 0x3a, 0x81, 0xa4, 0x47, 0x62, 0x92, 0x7a, 0x65, 0x00, 0x00, 0x00, 0x01, // IID11898 - 0xd5, 0x3b, 0x81, 0xa4, 0x88, 0x6e, 0xaa, 0x95, 0xe3, 0x00, 0x00, 0x00, 0x01, // IID11899 - 0xd5, 0x3b, 0x81, 0xa4, 0x91, 0x3a, 0x8a, 0xc9, 0x28, 0x00, 0x00, 0x00, 0x01, // IID11900 - 0xd5, 0x3b, 0x81, 0xa4, 0x9a, 0x49, 0x2e, 0x63, 0xa2, 0x00, 0x00, 0x00, 0x01, // IID11901 - 0xd5, 0x3b, 0x81, 0xa4, 0xa3, 0x04, 0x4a, 0x49, 0x61, 0x00, 0x00, 0x00, 0x01, // IID11902 - 0xd5, 0x3b, 0x81, 0xa4, 0x2c, 0xde, 0x93, 0xfc, 0xff, 0x00, 0x00, 0x00, 0x01, // IID11903 - 0xd5, 0x3b, 0x81, 0xa4, 0xf5, 0x71, 0xfa, 0x77, 0xba, 0x00, 0x00, 0x00, 0x01, // IID11904 - 0xd5, 0x19, 0x81, 0xa6, 0x91, 0x70, 0xed, 0x7b, 0x00, 0x00, 0x00, 0x01, // IID11905 - 0xd5, 0x19, 0x81, 0xa4, 0x4f, 0xa2, 0x9a, 0xbc, 0xd8, 0x00, 0x00, 0x00, 0x01, // IID11906 - 0x48, 0x81, 0xa4, 0x91, 0x20, 0xc3, 0x73, 0x28, 0x00, 0x00, 0x00, 0x10, // IID11907 - 0x48, 0x81, 0xa4, 0x1a, 0x71, 0xf4, 0x53, 0xb8, 0x00, 0x00, 0x00, 0x10, // IID11908 - 0x4a, 0x81, 0xa4, 0x03, 0x34, 0x9f, 0xb7, 0x72, 0x00, 0x00, 0x00, 0x10, // IID11909 - 0x4b, 0x81, 0xa4, 0x88, 0x57, 0xbf, 0xb5, 0x48, 0x00, 0x00, 0x00, 0x10, // IID11910 - 0x4b, 0x81, 0xa4, 0x51, 0x64, 0xac, 0xe9, 0x31, 0x00, 0x00, 0x00, 0x10, // IID11911 - 0x4b, 0x81, 0xa4, 0x9a, 0x8b, 0x61, 0xa7, 0x7e, 0x00, 0x00, 0x00, 0x10, // IID11912 - 0x4b, 0x81, 0xa4, 0xa3, 0x84, 0x80, 0xa9, 0x03, 0x00, 0x00, 0x00, 0x10, // IID11913 - 0x4b, 0x81, 0xa4, 0x2c, 0xdc, 0x09, 0x7c, 0x6a, 0x00, 0x00, 0x00, 0x10, // IID11914 - 0x4b, 0x81, 0xa4, 0xb5, 0x23, 0xd4, 0xb2, 0x92, 0x00, 0x00, 0x00, 0x10, // IID11915 - 0x4b, 0x81, 0xa4, 0x3e, 0x7a, 0x37, 0xfb, 0xd3, 0x00, 0x00, 0x00, 0x10, // IID11916 - 0xd5, 0x29, 0x81, 0xa4, 0xc7, 0x96, 0x27, 0xdf, 0x84, 0x00, 0x00, 0x00, 0x10, // IID11917 - 0xd5, 0x38, 0x81, 0xa4, 0x08, 0x30, 0xb1, 0xa9, 0x1f, 0x00, 0x00, 0x00, 0x10, // IID11918 - 0xd5, 0x38, 0x81, 0xa4, 0x91, 0xa3, 0xe1, 0xbb, 0x09, 0x00, 0x00, 0x00, 0x10, // IID11919 - 0xd5, 0x38, 0x81, 0xa4, 0xda, 0x1f, 0x83, 0x03, 0x12, 0x00, 0x00, 0x00, 0x10, // IID11920 - 0xd5, 0x38, 0x81, 0xa4, 0xe3, 0xd8, 0xdc, 0xfd, 0x55, 0x00, 0x00, 0x00, 0x10, // IID11921 - 0xd5, 0x18, 0x81, 0xa4, 0x24, 0x3b, 0x68, 0xd6, 0xcd, 0x00, 0x00, 0x00, 0x10, // IID11922 - 0xd5, 0x38, 0x81, 0xa4, 0xf5, 0x37, 0x7d, 0x7e, 0x45, 0x00, 0x00, 0x00, 0x10, // IID11923 - 0xd5, 0x38, 0x81, 0xa4, 0x7e, 0x02, 0xfc, 0x42, 0x6e, 0x00, 0x00, 0x00, 0x10, // IID11924 - 0xd5, 0x3a, 0x81, 0xa4, 0x47, 0x29, 0xda, 0x1b, 0x50, 0x00, 0x00, 0x00, 0x10, // IID11925 - 0xd5, 0x3b, 0x81, 0xa4, 0x08, 0xd5, 0x30, 0x95, 0xc3, 0x00, 0x00, 0x00, 0x10, // IID11926 - 0xd5, 0x3b, 0x81, 0xa4, 0x11, 0x01, 0x7b, 0xf7, 0x7e, 0x00, 0x00, 0x00, 0x10, // IID11927 - 0xd5, 0x3b, 0x81, 0xa4, 0x9a, 0xb7, 0x97, 0xce, 0x64, 0x00, 0x00, 0x00, 0x10, // IID11928 - 0xd5, 0x3b, 0x81, 0xa4, 0xa3, 0x3f, 0x72, 0x8e, 0x8d, 0x00, 0x00, 0x00, 0x10, // IID11929 - 0xd5, 0x19, 0x81, 0xa4, 0x24, 0x9f, 0xd1, 0x85, 0x63, 0x00, 0x00, 0x00, 0x10, // IID11930 - 0xd5, 0x19, 0x81, 0xa5, 0xb0, 0x76, 0x98, 0x21, 0x00, 0x00, 0x00, 0x10, // IID11931 - 0xd5, 0x19, 0x81, 0xa6, 0x68, 0xc8, 0x07, 0xf2, 0x00, 0x00, 0x00, 0x10, // IID11932 - 0xd5, 0x19, 0x81, 0xa4, 0x0f, 0xf3, 0xf0, 0xe3, 0xb1, 0x00, 0x00, 0x00, 0x10, // IID11933 - 0x48, 0x83, 0x84, 0xd1, 0x86, 0x18, 0xad, 0x00, 0x01, // IID11934 - 0x48, 0x83, 0x84, 0x9a, 0x87, 0xa1, 0xf7, 0xb1, 0x01, // IID11935 - 0x48, 0x83, 0x83, 0x1d, 0x66, 0x64, 0x34, 0x01, // IID11936 - 0x4b, 0x83, 0x84, 0xc8, 0xbe, 0x8d, 0xb1, 0xc6, 0x01, // IID11937 - 0x4b, 0x83, 0x84, 0x11, 0x6e, 0xd7, 0x28, 0x1d, 0x01, // IID11938 - 0x49, 0x83, 0x82, 0xdc, 0xbf, 0x76, 0x33, 0x01, // IID11939 - 0x4b, 0x83, 0x84, 0x63, 0xeb, 0xe9, 0xb0, 0x27, 0x01, // IID11940 - 0x4b, 0x83, 0x84, 0x2c, 0x29, 0xa3, 0x98, 0xd9, 0x01, // IID11941 - 0x4b, 0x83, 0x84, 0xb5, 0xe4, 0x03, 0xd7, 0x3d, 0x01, // IID11942 - 0x4b, 0x83, 0x84, 0x7e, 0x74, 0x94, 0x2f, 0xf4, 0x01, // IID11943 - 0xd5, 0x29, 0x83, 0x84, 0xc7, 0xe4, 0xe4, 0x5f, 0x19, 0x01, // IID11944 - 0xd5, 0x38, 0x83, 0x84, 0x88, 0xa0, 0xfb, 0xe4, 0xac, 0x01, // IID11945 - 0xd5, 0x38, 0x83, 0x84, 0x11, 0xb2, 0xdc, 0xe6, 0x9a, 0x01, // IID11946 - 0xd5, 0x18, 0x83, 0x82, 0x2e, 0x6c, 0xb3, 0xb9, 0x01, // IID11947 - 0xd5, 0x38, 0x83, 0x84, 0xe3, 0xda, 0xc0, 0xf3, 0x9f, 0x01, // IID11948 - 0xd5, 0x38, 0x83, 0x84, 0xac, 0x89, 0x31, 0xf5, 0xe9, 0x01, // IID11949 - 0xd5, 0x18, 0x83, 0x85, 0x27, 0x51, 0xb7, 0x70, 0x01, // IID11950 - 0xd5, 0x38, 0x83, 0x84, 0x7e, 0xa2, 0xbd, 0xef, 0xdf, 0x01, // IID11951 - 0xd5, 0x3a, 0x83, 0x84, 0x47, 0x9f, 0x7a, 0xf6, 0xbb, 0x01, // IID11952 - 0xd5, 0x3b, 0x83, 0x84, 0xc8, 0x4b, 0x7f, 0x65, 0x18, 0x01, // IID11953 - 0xd5, 0x3b, 0x83, 0x84, 0x51, 0xf9, 0x55, 0x95, 0x8d, 0x01, // IID11954 - 0xd5, 0x3b, 0x83, 0x84, 0xda, 0x38, 0xf2, 0x1c, 0x6e, 0x01, // IID11955 - 0xd5, 0x3b, 0x83, 0x84, 0x23, 0x97, 0xa8, 0x34, 0xf5, 0x01, // IID11956 - 0xd5, 0x3b, 0x83, 0x84, 0xac, 0x1b, 0x08, 0x7c, 0xc3, 0x01, // IID11957 - 0xd5, 0x3b, 0x83, 0x84, 0xf5, 0xb4, 0x2a, 0xd5, 0xa6, 0x01, // IID11958 - 0xd5, 0x19, 0x83, 0x86, 0x98, 0x98, 0xbe, 0x61, 0x01, // IID11959 - 0xd5, 0x19, 0x83, 0x84, 0xcf, 0x51, 0x8e, 0x1a, 0xe3, 0x01, // IID11960 - 0x48, 0x83, 0x81, 0x5c, 0x86, 0xbb, 0xb9, 0x10, // IID11961 - 0x48, 0x83, 0x84, 0x9a, 0x7e, 0x74, 0x4a, 0x79, 0x10, // IID11962 - 0x48, 0x83, 0x83, 0xb8, 0x04, 0xfa, 0x99, 0x10, // IID11963 - 0x4b, 0x83, 0x84, 0x88, 0xce, 0x52, 0x90, 0x20, 0x10, // IID11964 - 0x4b, 0x83, 0x84, 0x91, 0x2b, 0xc4, 0xf3, 0x8e, 0x10, // IID11965 - 0x4b, 0x83, 0x84, 0x5a, 0x8c, 0x07, 0x22, 0x7b, 0x10, // IID11966 - 0x4b, 0x83, 0x84, 0x63, 0x8f, 0x7f, 0xa8, 0xfa, 0x10, // IID11967 - 0x4b, 0x83, 0x84, 0x6c, 0xa8, 0xa9, 0xce, 0xff, 0x10, // IID11968 - 0x4b, 0x83, 0x84, 0x75, 0xb2, 0xc6, 0xb4, 0xdb, 0x10, // IID11969 - 0x49, 0x83, 0x86, 0x25, 0x42, 0x2d, 0xb4, 0x10, // IID11970 - 0xd5, 0x29, 0x83, 0x84, 0xc7, 0xd1, 0x13, 0x96, 0x29, 0x10, // IID11971 - 0xd5, 0x38, 0x83, 0x84, 0xc8, 0x06, 0xd8, 0xcf, 0x95, 0x10, // IID11972 - 0xd5, 0x38, 0x83, 0x84, 0x51, 0x16, 0xac, 0xda, 0xe6, 0x10, // IID11973 - 0xd5, 0x38, 0x83, 0x84, 0x9a, 0xc4, 0x4e, 0xb7, 0x95, 0x10, // IID11974 - 0xd5, 0x38, 0x83, 0x84, 0x23, 0x13, 0xe3, 0xb8, 0x08, 0x10, // IID11975 - 0xd5, 0x38, 0x83, 0x84, 0x2c, 0xb8, 0xf4, 0x28, 0x20, 0x10, // IID11976 - 0xd5, 0x38, 0x83, 0x84, 0x35, 0xfd, 0x70, 0x08, 0xbc, 0x10, // IID11977 - 0xd5, 0x38, 0x83, 0x84, 0xbe, 0xa4, 0x11, 0xcb, 0x84, 0x10, // IID11978 - 0xd5, 0x3a, 0x83, 0x84, 0x47, 0xc4, 0x7f, 0x4b, 0x26, 0x10, // IID11979 - 0xd5, 0x3b, 0x83, 0x84, 0xc8, 0xf0, 0x03, 0x13, 0x93, 0x10, // IID11980 - 0xd5, 0x3b, 0x83, 0x84, 0xd1, 0x6e, 0x06, 0xb7, 0x29, 0x10, // IID11981 - 0xd5, 0x3b, 0x83, 0x84, 0x5a, 0x69, 0x5e, 0x00, 0x3e, 0x10, // IID11982 - 0xd5, 0x3b, 0x83, 0x84, 0xa3, 0xf6, 0xea, 0x85, 0x5d, 0x10, // IID11983 - 0xd5, 0x3b, 0x83, 0x84, 0x6c, 0x18, 0xf3, 0xb7, 0x33, 0x10, // IID11984 - 0xd5, 0x19, 0x83, 0x85, 0x32, 0x44, 0xe2, 0xe9, 0x10, // IID11985 - 0xd5, 0x3b, 0x83, 0x84, 0xbe, 0x7a, 0xe8, 0x83, 0x63, 0x10, // IID11986 - 0xd5, 0x19, 0x83, 0x84, 0x0f, 0x40, 0x88, 0x06, 0x93, 0x10, // IID11987 - 0x48, 0x81, 0x84, 0x51, 0xda, 0x16, 0x97, 0x79, 0x00, 0x01, 0x00, 0x00, // IID11988 - 0x48, 0x81, 0x84, 0x9a, 0xd8, 0x08, 0x1c, 0x34, 0x00, 0x01, 0x00, 0x00, // IID11989 - 0x4a, 0x81, 0x84, 0x43, 0x67, 0x38, 0x73, 0xfd, 0x00, 0x01, 0x00, 0x00, // IID11990 - 0x4b, 0x81, 0x84, 0x88, 0x89, 0xd4, 0xc4, 0x88, 0x00, 0x01, 0x00, 0x00, // IID11991 - 0x4b, 0x81, 0x84, 0x51, 0x62, 0x8c, 0x44, 0x52, 0x00, 0x01, 0x00, 0x00, // IID11992 - 0x4b, 0x81, 0x84, 0x9a, 0x87, 0x46, 0x28, 0x2c, 0x00, 0x01, 0x00, 0x00, // IID11993 - 0x4b, 0x81, 0x84, 0xa3, 0x80, 0x7b, 0x57, 0x5d, 0x00, 0x01, 0x00, 0x00, // IID11994 - 0x49, 0x81, 0x84, 0x24, 0x4e, 0x8e, 0x37, 0xe6, 0x00, 0x01, 0x00, 0x00, // IID11995 - 0x49, 0x81, 0x85, 0x4e, 0x5a, 0x5f, 0x86, 0x00, 0x01, 0x00, 0x00, // IID11996 - 0x4b, 0x81, 0x84, 0x3e, 0xd3, 0x0e, 0xac, 0xb7, 0x00, 0x01, 0x00, 0x00, // IID11997 - 0xd5, 0x29, 0x81, 0x84, 0xc7, 0x95, 0x69, 0xfa, 0x3d, 0x00, 0x01, 0x00, 0x00, // IID11998 - 0xd5, 0x38, 0x81, 0x84, 0xc8, 0xbf, 0xc5, 0xd0, 0xe2, 0x00, 0x01, 0x00, 0x00, // IID11999 - 0xd5, 0x38, 0x81, 0x84, 0x51, 0x29, 0xff, 0x2b, 0x07, 0x00, 0x01, 0x00, 0x00, // IID12000 - 0xd5, 0x38, 0x81, 0x84, 0xda, 0x24, 0xfe, 0x1b, 0xc8, 0x00, 0x01, 0x00, 0x00, // IID12001 - 0xd5, 0x38, 0x81, 0x84, 0x63, 0xa8, 0x16, 0x62, 0xb8, 0x00, 0x01, 0x00, 0x00, // IID12002 - 0xd5, 0x18, 0x81, 0x84, 0x24, 0x14, 0x1d, 0x38, 0x73, 0x00, 0x01, 0x00, 0x00, // IID12003 - 0xd5, 0x38, 0x81, 0x84, 0xf5, 0x64, 0xa3, 0x9a, 0x76, 0x00, 0x01, 0x00, 0x00, // IID12004 - 0xd5, 0x38, 0x81, 0x84, 0x3e, 0xb6, 0xa4, 0x16, 0xbb, 0x00, 0x01, 0x00, 0x00, // IID12005 - 0xd5, 0x3a, 0x81, 0x84, 0x47, 0x40, 0xa5, 0xdb, 0xfe, 0x00, 0x01, 0x00, 0x00, // IID12006 - 0xd5, 0x3b, 0x81, 0x84, 0x88, 0xfd, 0xa3, 0xa9, 0x9d, 0x00, 0x01, 0x00, 0x00, // IID12007 - 0xd5, 0x3b, 0x81, 0x84, 0x11, 0x18, 0xc5, 0x6d, 0xe8, 0x00, 0x01, 0x00, 0x00, // IID12008 - 0xd5, 0x3b, 0x81, 0x84, 0x1a, 0x34, 0x19, 0x76, 0xfa, 0x00, 0x01, 0x00, 0x00, // IID12009 - 0xd5, 0x3b, 0x81, 0x84, 0x23, 0x2c, 0x4b, 0x07, 0x94, 0x00, 0x01, 0x00, 0x00, // IID12010 - 0xd5, 0x3b, 0x81, 0x84, 0x6c, 0x0a, 0xda, 0xd8, 0x74, 0x00, 0x01, 0x00, 0x00, // IID12011 - 0xd5, 0x3b, 0x81, 0x84, 0xf5, 0x12, 0x76, 0xdb, 0xbf, 0x00, 0x01, 0x00, 0x00, // IID12012 - 0xd5, 0x3b, 0x81, 0x84, 0x3e, 0xb9, 0xa8, 0x7b, 0x26, 0x00, 0x01, 0x00, 0x00, // IID12013 - 0xd5, 0x19, 0x81, 0x87, 0xcf, 0xac, 0x3a, 0x21, 0x00, 0x01, 0x00, 0x00, // IID12014 - 0x48, 0x81, 0x84, 0x51, 0xc9, 0xe0, 0x89, 0x67, 0x00, 0x10, 0x00, 0x00, // IID12015 - 0x48, 0x81, 0x84, 0x5a, 0x0d, 0x65, 0x5c, 0x39, 0x00, 0x10, 0x00, 0x00, // IID12016 - 0x48, 0x81, 0x83, 0x52, 0x60, 0xb8, 0x44, 0x00, 0x10, 0x00, 0x00, // IID12017 - 0x4b, 0x81, 0x84, 0x88, 0x0e, 0x61, 0x43, 0xd7, 0x00, 0x10, 0x00, 0x00, // IID12018 - 0x49, 0x81, 0x81, 0xae, 0x65, 0x1a, 0x69, 0x00, 0x10, 0x00, 0x00, // IID12019 - 0x4b, 0x81, 0x84, 0xda, 0x62, 0x7f, 0xfe, 0xc3, 0x00, 0x10, 0x00, 0x00, // IID12020 - 0x49, 0x81, 0x83, 0x8a, 0x99, 0xd2, 0x0f, 0x00, 0x10, 0x00, 0x00, // IID12021 - 0x4b, 0x81, 0x84, 0xec, 0x04, 0x4a, 0x89, 0xcf, 0x00, 0x10, 0x00, 0x00, // IID12022 - 0x4b, 0x81, 0x84, 0x35, 0xac, 0xc0, 0x04, 0xf7, 0x00, 0x10, 0x00, 0x00, // IID12023 - 0x49, 0x81, 0x86, 0xb5, 0x84, 0xfc, 0xef, 0x00, 0x10, 0x00, 0x00, // IID12024 - 0x49, 0x81, 0x87, 0x0e, 0xfa, 0xa1, 0x1b, 0x00, 0x10, 0x00, 0x00, // IID12025 - 0xd5, 0x38, 0x81, 0x84, 0x48, 0x6a, 0x98, 0x31, 0x68, 0x00, 0x10, 0x00, 0x00, // IID12026 - 0xd5, 0x38, 0x81, 0x84, 0x91, 0x13, 0x0d, 0xd7, 0xa9, 0x00, 0x10, 0x00, 0x00, // IID12027 - 0xd5, 0x18, 0x81, 0x82, 0x75, 0xc1, 0x13, 0x1c, 0x00, 0x10, 0x00, 0x00, // IID12028 - 0xd5, 0x38, 0x81, 0x84, 0xe3, 0xbc, 0x58, 0xa2, 0x8c, 0x00, 0x10, 0x00, 0x00, // IID12029 - 0xd5, 0x18, 0x81, 0x84, 0x24, 0xcd, 0xe8, 0xd2, 0xe0, 0x00, 0x10, 0x00, 0x00, // IID12030 - 0xd5, 0x38, 0x81, 0x84, 0xb5, 0xef, 0x18, 0x3f, 0x61, 0x00, 0x10, 0x00, 0x00, // IID12031 - 0xd5, 0x38, 0x81, 0x84, 0xbe, 0x60, 0xf4, 0x4b, 0x65, 0x00, 0x10, 0x00, 0x00, // IID12032 - 0xd5, 0x3a, 0x81, 0x84, 0x07, 0x07, 0xd6, 0xdd, 0xba, 0x00, 0x10, 0x00, 0x00, // IID12033 - 0xd5, 0x3b, 0x81, 0x84, 0xc8, 0xa9, 0xc7, 0x6f, 0xbc, 0x00, 0x10, 0x00, 0x00, // IID12034 - 0xd5, 0x3b, 0x81, 0x84, 0x51, 0xb3, 0x3a, 0x5d, 0xaa, 0x00, 0x10, 0x00, 0x00, // IID12035 - 0xd5, 0x3b, 0x81, 0x84, 0xda, 0x80, 0x37, 0x3f, 0xc1, 0x00, 0x10, 0x00, 0x00, // IID12036 - 0xd5, 0x3b, 0x81, 0x84, 0x23, 0x96, 0x7c, 0x55, 0xc6, 0x00, 0x10, 0x00, 0x00, // IID12037 - 0xd5, 0x3b, 0x81, 0x84, 0x2c, 0x79, 0x90, 0x14, 0x28, 0x00, 0x10, 0x00, 0x00, // IID12038 - 0xd5, 0x3b, 0x81, 0x84, 0xf5, 0x96, 0x72, 0xb2, 0x36, 0x00, 0x10, 0x00, 0x00, // IID12039 - 0xd5, 0x19, 0x81, 0x86, 0x89, 0x8b, 0x59, 0xee, 0x00, 0x10, 0x00, 0x00, // IID12040 - 0xd5, 0x19, 0x81, 0x84, 0x0f, 0xe2, 0x16, 0xe3, 0xbf, 0x00, 0x10, 0x00, 0x00, // IID12041 - 0x48, 0x81, 0x84, 0x51, 0xb9, 0x14, 0x40, 0x61, 0x00, 0x00, 0x01, 0x00, // IID12042 - 0x48, 0x81, 0x84, 0x1a, 0x43, 0x77, 0xa1, 0x22, 0x00, 0x00, 0x01, 0x00, // IID12043 - 0x4a, 0x81, 0x84, 0x43, 0xcc, 0xb2, 0xcf, 0xa0, 0x00, 0x00, 0x01, 0x00, // IID12044 - 0x49, 0x81, 0x80, 0x9b, 0xf7, 0xfa, 0xa4, 0x00, 0x00, 0x01, 0x00, // IID12045 - 0x4b, 0x81, 0x84, 0xd1, 0x94, 0x1a, 0x5c, 0xb1, 0x00, 0x00, 0x01, 0x00, // IID12046 - 0x49, 0x81, 0x82, 0xb9, 0x59, 0x99, 0x2e, 0x00, 0x00, 0x01, 0x00, // IID12047 - 0x4b, 0x81, 0x84, 0x23, 0x2b, 0x53, 0x19, 0x0f, 0x00, 0x00, 0x01, 0x00, // IID12048 - 0x49, 0x81, 0x84, 0x24, 0xd2, 0xc4, 0x4d, 0x7a, 0x00, 0x00, 0x01, 0x00, // IID12049 - 0x4b, 0x81, 0x84, 0xb5, 0x65, 0xe0, 0x81, 0x7f, 0x00, 0x00, 0x01, 0x00, // IID12050 - 0x4b, 0x81, 0x84, 0x7e, 0x6f, 0x82, 0xa7, 0xb2, 0x00, 0x00, 0x01, 0x00, // IID12051 - 0xd5, 0x29, 0x81, 0x84, 0xc7, 0x3d, 0xe7, 0x7b, 0x6c, 0x00, 0x00, 0x01, 0x00, // IID12052 - 0xd5, 0x38, 0x81, 0x84, 0x48, 0x3c, 0x30, 0xb3, 0x15, 0x00, 0x00, 0x01, 0x00, // IID12053 - 0xd5, 0x38, 0x81, 0x84, 0x11, 0xb7, 0xcb, 0xd3, 0x85, 0x00, 0x00, 0x01, 0x00, // IID12054 - 0xd5, 0x18, 0x81, 0x82, 0x4f, 0x7c, 0x35, 0x2d, 0x00, 0x00, 0x01, 0x00, // IID12055 - 0xd5, 0x38, 0x81, 0x84, 0xa3, 0x1f, 0x13, 0xb2, 0x66, 0x00, 0x00, 0x01, 0x00, // IID12056 - 0xd5, 0x38, 0x81, 0x84, 0xec, 0xdf, 0x8c, 0x08, 0x49, 0x00, 0x00, 0x01, 0x00, // IID12057 - 0xd5, 0x38, 0x81, 0x84, 0x75, 0x2b, 0x1e, 0x64, 0x66, 0x00, 0x00, 0x01, 0x00, // IID12058 - 0xd5, 0x38, 0x81, 0x84, 0x3e, 0x97, 0x7d, 0xbb, 0x4d, 0x00, 0x00, 0x01, 0x00, // IID12059 - 0xd5, 0x3a, 0x81, 0x84, 0xc7, 0x0d, 0x53, 0x32, 0xdb, 0x00, 0x00, 0x01, 0x00, // IID12060 - 0xd5, 0x3b, 0x81, 0x84, 0xc8, 0x1e, 0xf5, 0x7c, 0x50, 0x00, 0x00, 0x01, 0x00, // IID12061 - 0xd5, 0x19, 0x81, 0x81, 0x7f, 0x3c, 0x54, 0xe6, 0x00, 0x00, 0x01, 0x00, // IID12062 - 0xd5, 0x3b, 0x81, 0x84, 0x1a, 0xfb, 0xcd, 0xbe, 0x9e, 0x00, 0x00, 0x01, 0x00, // IID12063 - 0xd5, 0x3b, 0x81, 0x84, 0xa3, 0xf8, 0x08, 0x6c, 0x60, 0x00, 0x00, 0x01, 0x00, // IID12064 - 0xd5, 0x3b, 0x81, 0x84, 0x2c, 0x47, 0xe0, 0x57, 0xb0, 0x00, 0x00, 0x01, 0x00, // IID12065 - 0xd5, 0x19, 0x81, 0x85, 0xb3, 0x55, 0xe4, 0xd7, 0x00, 0x00, 0x01, 0x00, // IID12066 - 0xd5, 0x3b, 0x81, 0x84, 0x7e, 0x16, 0x8a, 0x23, 0x84, 0x00, 0x00, 0x01, 0x00, // IID12067 - 0xd5, 0x19, 0x81, 0x84, 0xcf, 0x23, 0x2d, 0x8b, 0x36, 0x00, 0x00, 0x01, 0x00, // IID12068 - 0x48, 0x81, 0x84, 0x11, 0xd6, 0xb0, 0x6e, 0x35, 0x00, 0x00, 0x10, 0x00, // IID12069 - 0x48, 0x81, 0x82, 0x10, 0xcb, 0x19, 0x80, 0x00, 0x00, 0x10, 0x00, // IID12070 - 0x4a, 0x81, 0x84, 0x03, 0x44, 0xd8, 0x52, 0xa9, 0x00, 0x00, 0x10, 0x00, // IID12071 - 0x4b, 0x81, 0x84, 0x08, 0x67, 0x08, 0x3b, 0xe3, 0x00, 0x00, 0x10, 0x00, // IID12072 - 0x4b, 0x81, 0x84, 0x11, 0x52, 0x4d, 0x14, 0xd5, 0x00, 0x00, 0x10, 0x00, // IID12073 - 0x4b, 0x81, 0x84, 0x5a, 0x2e, 0x20, 0x51, 0x69, 0x00, 0x00, 0x10, 0x00, // IID12074 - 0x49, 0x81, 0x83, 0x58, 0x13, 0x96, 0x39, 0x00, 0x00, 0x10, 0x00, // IID12075 - 0x4b, 0x81, 0x84, 0x2c, 0x4b, 0xd6, 0xad, 0xa3, 0x00, 0x00, 0x10, 0x00, // IID12076 - 0x49, 0x81, 0x85, 0x27, 0xa8, 0xab, 0xb7, 0x00, 0x00, 0x10, 0x00, // IID12077 - 0x49, 0x81, 0x86, 0x0e, 0x9a, 0x65, 0x0d, 0x00, 0x00, 0x10, 0x00, // IID12078 - 0xd5, 0x29, 0x81, 0x84, 0x47, 0x85, 0x4d, 0x1b, 0x18, 0x00, 0x00, 0x10, 0x00, // IID12079 - 0xd5, 0x38, 0x81, 0x84, 0xc8, 0x8f, 0xdc, 0x2b, 0x9c, 0x00, 0x00, 0x10, 0x00, // IID12080 - 0xd5, 0x38, 0x81, 0x84, 0x51, 0x7b, 0x29, 0x5c, 0x62, 0x00, 0x00, 0x10, 0x00, // IID12081 - 0xd5, 0x38, 0x81, 0x84, 0x5a, 0x30, 0x42, 0xb8, 0x7b, 0x00, 0x00, 0x10, 0x00, // IID12082 - 0xd5, 0x38, 0x81, 0x84, 0x63, 0xb6, 0x4b, 0x18, 0x78, 0x00, 0x00, 0x10, 0x00, // IID12083 - 0xd5, 0x18, 0x81, 0x84, 0x24, 0xf9, 0xdc, 0xb2, 0x6d, 0x00, 0x00, 0x10, 0x00, // IID12084 - 0xd5, 0x18, 0x81, 0x85, 0xc8, 0x62, 0x97, 0xec, 0x00, 0x00, 0x10, 0x00, // IID12085 - 0xd5, 0x38, 0x81, 0x84, 0x7e, 0x68, 0x62, 0x73, 0x33, 0x00, 0x00, 0x10, 0x00, // IID12086 - 0xd5, 0x3a, 0x81, 0x84, 0xc7, 0x0c, 0x8f, 0x19, 0x16, 0x00, 0x00, 0x10, 0x00, // IID12087 - 0xd5, 0x3b, 0x81, 0x84, 0xc8, 0x20, 0x8a, 0xe7, 0x65, 0x00, 0x00, 0x10, 0x00, // IID12088 - 0xd5, 0x3b, 0x81, 0x84, 0x91, 0x71, 0xbf, 0xe3, 0x04, 0x00, 0x00, 0x10, 0x00, // IID12089 - 0xd5, 0x3b, 0x81, 0x84, 0x5a, 0x64, 0xd6, 0xbb, 0xb9, 0x00, 0x00, 0x10, 0x00, // IID12090 - 0xd5, 0x19, 0x81, 0x83, 0x10, 0x57, 0x8e, 0xc7, 0x00, 0x00, 0x10, 0x00, // IID12091 - 0xd5, 0x3b, 0x81, 0x84, 0xec, 0x9c, 0xe2, 0x70, 0xda, 0x00, 0x00, 0x10, 0x00, // IID12092 - 0xd5, 0x3b, 0x81, 0x84, 0xf5, 0x53, 0x98, 0x63, 0x98, 0x00, 0x00, 0x10, 0x00, // IID12093 - 0xd5, 0x3b, 0x81, 0x84, 0x7e, 0xc2, 0xba, 0xbd, 0x28, 0x00, 0x00, 0x10, 0x00, // IID12094 - 0xd5, 0x19, 0x81, 0x84, 0xcf, 0xfb, 0x89, 0x64, 0x25, 0x00, 0x00, 0x10, 0x00, // IID12095 - 0x48, 0x81, 0x84, 0x11, 0x46, 0xdb, 0x4f, 0xdb, 0x00, 0x00, 0x00, 0x01, // IID12096 - 0x48, 0x81, 0x84, 0x5a, 0xc3, 0x98, 0x0d, 0xbd, 0x00, 0x00, 0x00, 0x01, // IID12097 - 0x4a, 0x81, 0x84, 0x43, 0x5a, 0xde, 0x45, 0xce, 0x00, 0x00, 0x00, 0x01, // IID12098 - 0x4b, 0x81, 0x84, 0x48, 0x5b, 0xca, 0xf8, 0x6a, 0x00, 0x00, 0x00, 0x01, // IID12099 - 0x4b, 0x81, 0x84, 0x11, 0x68, 0x6c, 0xbd, 0xde, 0x00, 0x00, 0x00, 0x01, // IID12100 - 0x49, 0x81, 0x82, 0x9c, 0x9f, 0xa1, 0x65, 0x00, 0x00, 0x00, 0x01, // IID12101 - 0x4b, 0x81, 0x84, 0xa3, 0x0e, 0xea, 0xa4, 0xd0, 0x00, 0x00, 0x00, 0x01, // IID12102 - 0x4b, 0x81, 0x84, 0x6c, 0xe2, 0xc8, 0xc9, 0xb2, 0x00, 0x00, 0x00, 0x01, // IID12103 - 0x4b, 0x81, 0x84, 0xb5, 0x96, 0x8c, 0xbd, 0xd9, 0x00, 0x00, 0x00, 0x01, // IID12104 - 0x4b, 0x81, 0x84, 0xfe, 0x64, 0x36, 0x05, 0x0a, 0x00, 0x00, 0x00, 0x01, // IID12105 - 0x49, 0x81, 0x87, 0x3e, 0x6c, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x01, // IID12106 - 0xd5, 0x18, 0x81, 0x80, 0x7b, 0x48, 0x1f, 0x74, 0x00, 0x00, 0x00, 0x01, // IID12107 - 0xd5, 0x38, 0x81, 0x84, 0x91, 0xe3, 0xc1, 0xeb, 0x38, 0x00, 0x00, 0x00, 0x01, // IID12108 - 0xd5, 0x38, 0x81, 0x84, 0x9a, 0x3c, 0x95, 0xf2, 0x7c, 0x00, 0x00, 0x00, 0x01, // IID12109 - 0xd5, 0x38, 0x81, 0x84, 0xe3, 0x20, 0x43, 0xa9, 0x3d, 0x00, 0x00, 0x00, 0x01, // IID12110 - 0xd5, 0x18, 0x81, 0x84, 0x24, 0x5c, 0x7f, 0x01, 0xdf, 0x00, 0x00, 0x00, 0x01, // IID12111 - 0xd5, 0x38, 0x81, 0x84, 0xf5, 0x6b, 0xaa, 0x35, 0x9b, 0x00, 0x00, 0x00, 0x01, // IID12112 - 0xd5, 0x38, 0x81, 0x84, 0xbe, 0x91, 0xbb, 0x80, 0x7a, 0x00, 0x00, 0x00, 0x01, // IID12113 - 0xd5, 0x3a, 0x81, 0x84, 0x47, 0x3f, 0xf4, 0x77, 0x0d, 0x00, 0x00, 0x00, 0x01, // IID12114 - 0xd5, 0x3b, 0x81, 0x84, 0xc8, 0xf1, 0xa5, 0xc6, 0x79, 0x00, 0x00, 0x00, 0x01, // IID12115 - 0xd5, 0x3b, 0x81, 0x84, 0x51, 0xd5, 0x97, 0x8d, 0xa1, 0x00, 0x00, 0x00, 0x01, // IID12116 - 0xd5, 0x3b, 0x81, 0x84, 0x1a, 0x3d, 0x1d, 0xd8, 0x32, 0x00, 0x00, 0x00, 0x01, // IID12117 - 0xd5, 0x19, 0x81, 0x83, 0xe8, 0xf9, 0x35, 0xee, 0x00, 0x00, 0x00, 0x01, // IID12118 - 0xd5, 0x3b, 0x81, 0x84, 0x2c, 0xa6, 0xa5, 0x16, 0xb4, 0x00, 0x00, 0x00, 0x01, // IID12119 - 0xd5, 0x3b, 0x81, 0x84, 0x75, 0x22, 0xeb, 0x5f, 0x10, 0x00, 0x00, 0x00, 0x01, // IID12120 - 0xd5, 0x19, 0x81, 0x86, 0x0f, 0xed, 0x76, 0xb4, 0x00, 0x00, 0x00, 0x01, // IID12121 - 0xd5, 0x19, 0x81, 0x84, 0xcf, 0xcc, 0x29, 0x52, 0x8e, 0x00, 0x00, 0x00, 0x01, // IID12122 - 0x48, 0x81, 0x84, 0x51, 0xe7, 0x8a, 0x8b, 0x89, 0x00, 0x00, 0x00, 0x10, // IID12123 - 0x48, 0x81, 0x84, 0x1a, 0xde, 0xeb, 0x6f, 0x34, 0x00, 0x00, 0x00, 0x10, // IID12124 - 0x48, 0x81, 0x83, 0x9f, 0xb4, 0x71, 0xd0, 0x00, 0x00, 0x00, 0x10, // IID12125 - 0x4b, 0x81, 0x84, 0xc8, 0x8c, 0xd6, 0x61, 0x6d, 0x00, 0x00, 0x00, 0x10, // IID12126 - 0x4b, 0x81, 0x84, 0x91, 0xed, 0x9f, 0xae, 0x18, 0x00, 0x00, 0x00, 0x10, // IID12127 - 0x4b, 0x81, 0x84, 0xda, 0x88, 0xcf, 0xbb, 0x10, 0x00, 0x00, 0x00, 0x10, // IID12128 - 0x4b, 0x81, 0x84, 0xe3, 0xad, 0xc8, 0x74, 0xc6, 0x00, 0x00, 0x00, 0x10, // IID12129 - 0x4b, 0x81, 0x84, 0xac, 0x77, 0xcd, 0x94, 0x2a, 0x00, 0x00, 0x00, 0x10, // IID12130 - 0x49, 0x81, 0x85, 0xb2, 0xc0, 0xb1, 0xf2, 0x00, 0x00, 0x00, 0x10, // IID12131 - 0x4b, 0x81, 0x84, 0xbe, 0x0c, 0xf4, 0x8c, 0x08, 0x00, 0x00, 0x00, 0x10, // IID12132 - 0x49, 0x81, 0x87, 0xb8, 0x73, 0xab, 0x99, 0x00, 0x00, 0x00, 0x10, // IID12133 - 0xd5, 0x38, 0x81, 0x84, 0x88, 0xa1, 0x5e, 0xc3, 0x2d, 0x00, 0x00, 0x00, 0x10, // IID12134 - 0xd5, 0x38, 0x81, 0x84, 0x51, 0x71, 0xad, 0x69, 0xb6, 0x00, 0x00, 0x00, 0x10, // IID12135 - 0xd5, 0x38, 0x81, 0x84, 0xda, 0xa4, 0xad, 0x34, 0x59, 0x00, 0x00, 0x00, 0x10, // IID12136 - 0xd5, 0x38, 0x81, 0x84, 0x63, 0x0c, 0x9f, 0x3d, 0x7d, 0x00, 0x00, 0x00, 0x10, // IID12137 - 0xd5, 0x38, 0x81, 0x84, 0xac, 0x74, 0x74, 0xbe, 0xa0, 0x00, 0x00, 0x00, 0x10, // IID12138 - 0xd5, 0x38, 0x81, 0x84, 0x75, 0xfa, 0x46, 0x38, 0xef, 0x00, 0x00, 0x00, 0x10, // IID12139 - 0xd5, 0x38, 0x81, 0x84, 0xfe, 0xeb, 0x4b, 0xc5, 0xbf, 0x00, 0x00, 0x00, 0x10, // IID12140 - 0xd5, 0x3a, 0x81, 0x84, 0x87, 0x9d, 0xd1, 0xa2, 0x42, 0x00, 0x00, 0x00, 0x10, // IID12141 - 0xd5, 0x3b, 0x81, 0x84, 0x48, 0xbd, 0xf8, 0x20, 0xf4, 0x00, 0x00, 0x00, 0x10, // IID12142 - 0xd5, 0x3b, 0x81, 0x84, 0x51, 0xa9, 0x75, 0x93, 0x7a, 0x00, 0x00, 0x00, 0x10, // IID12143 - 0xd5, 0x19, 0x81, 0x82, 0xa4, 0x34, 0x92, 0x61, 0x00, 0x00, 0x00, 0x10, // IID12144 - 0xd5, 0x3b, 0x81, 0x84, 0x63, 0x2f, 0x43, 0xb3, 0x4e, 0x00, 0x00, 0x00, 0x10, // IID12145 - 0xd5, 0x19, 0x81, 0x84, 0x24, 0x01, 0x25, 0xaa, 0x3d, 0x00, 0x00, 0x00, 0x10, // IID12146 - 0xd5, 0x3b, 0x81, 0x84, 0x75, 0x1f, 0x13, 0x36, 0x34, 0x00, 0x00, 0x00, 0x10, // IID12147 - 0xd5, 0x3b, 0x81, 0x84, 0x7e, 0xaa, 0x13, 0x6d, 0x26, 0x00, 0x00, 0x00, 0x10, // IID12148 - 0xd5, 0x19, 0x81, 0x84, 0xcf, 0x99, 0x85, 0xea, 0xa1, 0x00, 0x00, 0x00, 0x10, // IID12149 - 0x48, 0x83, 0xbc, 0x51, 0xf1, 0x59, 0x95, 0xd3, 0x01, // IID12150 - 0x48, 0x83, 0xbc, 0x9a, 0xd8, 0xc9, 0x7b, 0x26, 0x01, // IID12151 - 0x48, 0x83, 0xbb, 0xa4, 0x6e, 0x41, 0xfc, 0x01, // IID12152 - 0x4b, 0x83, 0xbc, 0xc8, 0xf7, 0xaa, 0x6a, 0xb2, 0x01, // IID12153 - 0x49, 0x83, 0xb9, 0x06, 0xa4, 0xca, 0x48, 0x01, // IID12154 - 0x4b, 0x83, 0xbc, 0x1a, 0x13, 0x45, 0xd2, 0x7b, 0x01, // IID12155 - 0x4b, 0x83, 0xbc, 0x23, 0x39, 0x99, 0xd9, 0xf6, 0x01, // IID12156 - 0x4b, 0x83, 0xbc, 0xec, 0x39, 0x53, 0x46, 0x3b, 0x01, // IID12157 - 0x4b, 0x83, 0xbc, 0x35, 0x2c, 0xf1, 0xfb, 0x27, 0x01, // IID12158 - 0x4b, 0x83, 0xbc, 0x3e, 0xf6, 0x44, 0x0f, 0x17, 0x01, // IID12159 - 0xd5, 0x29, 0x83, 0xbc, 0x47, 0x54, 0x9c, 0x85, 0xaa, 0x01, // IID12160 - 0xd5, 0x38, 0x83, 0xbc, 0x48, 0x07, 0x0f, 0x68, 0x7f, 0x01, // IID12161 - 0xd5, 0x38, 0x83, 0xbc, 0x91, 0x35, 0xbb, 0x37, 0xda, 0x01, // IID12162 - 0xd5, 0x38, 0x83, 0xbc, 0x1a, 0x2f, 0x43, 0xb0, 0x51, 0x01, // IID12163 - 0xd5, 0x38, 0x83, 0xbc, 0x63, 0x62, 0xa0, 0x8c, 0x1d, 0x01, // IID12164 - 0xd5, 0x38, 0x83, 0xbc, 0xec, 0x66, 0x50, 0x1b, 0x10, 0x01, // IID12165 - 0xd5, 0x18, 0x83, 0xbd, 0xb9, 0x12, 0xf2, 0x08, 0x01, // IID12166 - 0xd5, 0x18, 0x83, 0xbe, 0x3c, 0x01, 0x29, 0xa3, 0x01, // IID12167 - 0xd5, 0x3a, 0x83, 0xbc, 0x87, 0x27, 0x02, 0x99, 0x96, 0x01, // IID12168 - 0xd5, 0x3b, 0x83, 0xbc, 0xc8, 0x83, 0x9a, 0xbe, 0x9f, 0x01, // IID12169 - 0xd5, 0x3b, 0x83, 0xbc, 0xd1, 0xa1, 0x16, 0xdc, 0x90, 0x01, // IID12170 - 0xd5, 0x3b, 0x83, 0xbc, 0x9a, 0xf5, 0x7b, 0x30, 0x2f, 0x01, // IID12171 - 0xd5, 0x3b, 0x83, 0xbc, 0x63, 0x07, 0x3b, 0x62, 0x78, 0x01, // IID12172 - 0xd5, 0x3b, 0x83, 0xbc, 0xac, 0xe3, 0xf0, 0x79, 0xf2, 0x01, // IID12173 - 0xd5, 0x3b, 0x83, 0xbc, 0xb5, 0xdd, 0x16, 0xbb, 0x72, 0x01, // IID12174 - 0xd5, 0x3b, 0x83, 0xbc, 0xbe, 0xc6, 0xf3, 0x36, 0x99, 0x01, // IID12175 - 0xd5, 0x19, 0x83, 0xbf, 0x4a, 0x8b, 0x99, 0x3b, 0x01, // IID12176 - 0x48, 0x83, 0xb9, 0x6c, 0x4f, 0x6a, 0x2e, 0x10, // IID12177 - 0x48, 0x83, 0xbc, 0x9a, 0xcc, 0x73, 0xf7, 0x44, 0x10, // IID12178 - 0x4a, 0x83, 0xbc, 0x83, 0x69, 0xc8, 0x0a, 0xaf, 0x10, // IID12179 - 0x49, 0x83, 0xb8, 0xd3, 0x0e, 0x6d, 0xcf, 0x10, // IID12180 - 0x4b, 0x83, 0xbc, 0x91, 0xe1, 0x78, 0xc0, 0x9e, 0x10, // IID12181 - 0x49, 0x83, 0xba, 0x43, 0xe4, 0x84, 0x3a, 0x10, // IID12182 - 0x4b, 0x83, 0xbc, 0xa3, 0x8c, 0x24, 0x6b, 0x3b, 0x10, // IID12183 - 0x4b, 0x83, 0xbc, 0xec, 0x2b, 0xdb, 0xa0, 0xb7, 0x10, // IID12184 - 0x49, 0x83, 0xbd, 0x70, 0x87, 0xb2, 0x60, 0x10, // IID12185 - 0x4b, 0x83, 0xbc, 0xbe, 0xc5, 0x85, 0xcd, 0xc1, 0x10, // IID12186 - 0xd5, 0x29, 0x83, 0xbc, 0xc7, 0x38, 0x29, 0xe5, 0x91, 0x10, // IID12187 - 0xd5, 0x38, 0x83, 0xbc, 0x88, 0xaa, 0x57, 0x22, 0xe0, 0x10, // IID12188 - 0xd5, 0x38, 0x83, 0xbc, 0x51, 0xfd, 0x9a, 0x13, 0xfb, 0x10, // IID12189 - 0xd5, 0x38, 0x83, 0xbc, 0x9a, 0x01, 0xac, 0x00, 0xf2, 0x10, // IID12190 - 0xd5, 0x38, 0x83, 0xbc, 0x63, 0x73, 0xd6, 0x9d, 0xa1, 0x10, // IID12191 - 0xd5, 0x18, 0x83, 0xbc, 0x24, 0xe9, 0xaf, 0x6b, 0x78, 0x10, // IID12192 - 0xd5, 0x38, 0x83, 0xbc, 0x35, 0x29, 0xfc, 0xdf, 0x6c, 0x10, // IID12193 - 0xd5, 0x38, 0x83, 0xbc, 0x7e, 0x8e, 0x5b, 0xf5, 0x1e, 0x10, // IID12194 - 0xd5, 0x3a, 0x83, 0xbc, 0x07, 0x79, 0x78, 0xe0, 0x77, 0x10, // IID12195 - 0xd5, 0x3b, 0x83, 0xbc, 0x48, 0x0c, 0xc8, 0xb1, 0x60, 0x10, // IID12196 - 0xd5, 0x3b, 0x83, 0xbc, 0x51, 0xfa, 0xd8, 0xc6, 0x44, 0x10, // IID12197 - 0xd5, 0x3b, 0x83, 0xbc, 0x5a, 0xe1, 0x98, 0xb6, 0x46, 0x10, // IID12198 - 0xd5, 0x3b, 0x83, 0xbc, 0xa3, 0x2b, 0x96, 0xff, 0xa6, 0x10, // IID12199 - 0xd5, 0x3b, 0x83, 0xbc, 0x2c, 0x83, 0x36, 0xb0, 0xf2, 0x10, // IID12200 - 0xd5, 0x3b, 0x83, 0xbc, 0x75, 0x44, 0xdb, 0x87, 0x67, 0x10, // IID12201 - 0xd5, 0x3b, 0x83, 0xbc, 0xbe, 0xee, 0x4d, 0x02, 0xae, 0x10, // IID12202 - 0xd5, 0x19, 0x83, 0xbf, 0xac, 0x76, 0x8d, 0x17, 0x10, // IID12203 - 0x48, 0x81, 0xbc, 0x91, 0x15, 0xc2, 0xd3, 0xea, 0x00, 0x01, 0x00, 0x00, // IID12204 - 0x48, 0x81, 0xba, 0xf6, 0x70, 0xfa, 0x64, 0x00, 0x01, 0x00, 0x00, // IID12205 - 0x48, 0x81, 0xbb, 0xfe, 0x53, 0xff, 0xcb, 0x00, 0x01, 0x00, 0x00, // IID12206 - 0x49, 0x81, 0xb8, 0xfc, 0x8e, 0xaf, 0xc7, 0x00, 0x01, 0x00, 0x00, // IID12207 - 0x4b, 0x81, 0xbc, 0x51, 0x8a, 0x05, 0xde, 0xc0, 0x00, 0x01, 0x00, 0x00, // IID12208 - 0x4b, 0x81, 0xbc, 0x1a, 0x92, 0xd3, 0xaa, 0xe9, 0x00, 0x01, 0x00, 0x00, // IID12209 - 0x4b, 0x81, 0xbc, 0x23, 0x43, 0x09, 0xd8, 0x58, 0x00, 0x01, 0x00, 0x00, // IID12210 - 0x49, 0x81, 0xbc, 0x24, 0x26, 0x38, 0x99, 0xa8, 0x00, 0x01, 0x00, 0x00, // IID12211 - 0x4b, 0x81, 0xbc, 0x35, 0xfe, 0xcb, 0x81, 0x76, 0x00, 0x01, 0x00, 0x00, // IID12212 - 0x49, 0x81, 0xbe, 0x6f, 0x13, 0x36, 0x1e, 0x00, 0x01, 0x00, 0x00, // IID12213 - 0x49, 0x81, 0xbf, 0x01, 0x9c, 0xf5, 0xc8, 0x00, 0x01, 0x00, 0x00, // IID12214 - 0xd5, 0x18, 0x81, 0xb8, 0xf5, 0x48, 0x5e, 0x97, 0x00, 0x01, 0x00, 0x00, // IID12215 - 0xd5, 0x38, 0x81, 0xbc, 0xd1, 0xe5, 0x29, 0xd6, 0x68, 0x00, 0x01, 0x00, 0x00, // IID12216 - 0xd5, 0x38, 0x81, 0xbc, 0x9a, 0x81, 0xc4, 0x2c, 0x48, 0x00, 0x01, 0x00, 0x00, // IID12217 - 0xd5, 0x38, 0x81, 0xbc, 0xe3, 0xef, 0x6a, 0x72, 0xd6, 0x00, 0x01, 0x00, 0x00, // IID12218 - 0xd5, 0x38, 0x81, 0xbc, 0xec, 0x2b, 0xec, 0x0f, 0xf0, 0x00, 0x01, 0x00, 0x00, // IID12219 - 0xd5, 0x38, 0x81, 0xbc, 0xf5, 0x3e, 0x0c, 0x6e, 0x0f, 0x00, 0x01, 0x00, 0x00, // IID12220 - 0xd5, 0x18, 0x81, 0xbe, 0xaf, 0x14, 0xbd, 0xab, 0x00, 0x01, 0x00, 0x00, // IID12221 - 0xd5, 0x3a, 0x81, 0xbc, 0x87, 0xf4, 0x21, 0x72, 0x79, 0x00, 0x01, 0x00, 0x00, // IID12222 - 0xd5, 0x3b, 0x81, 0xbc, 0xc8, 0x63, 0xe4, 0x6b, 0xbe, 0x00, 0x01, 0x00, 0x00, // IID12223 - 0xd5, 0x3b, 0x81, 0xbc, 0x11, 0xb1, 0xb7, 0xa2, 0x9a, 0x00, 0x01, 0x00, 0x00, // IID12224 - 0xd5, 0x3b, 0x81, 0xbc, 0x9a, 0x75, 0x28, 0xd4, 0x36, 0x00, 0x01, 0x00, 0x00, // IID12225 - 0xd5, 0x3b, 0x81, 0xbc, 0x63, 0xf9, 0xbc, 0xe6, 0xec, 0x00, 0x01, 0x00, 0x00, // IID12226 - 0xd5, 0x19, 0x81, 0xbc, 0x24, 0xd6, 0x84, 0x92, 0x34, 0x00, 0x01, 0x00, 0x00, // IID12227 - 0xd5, 0x3b, 0x81, 0xbc, 0x75, 0xf8, 0x0b, 0x40, 0x84, 0x00, 0x01, 0x00, 0x00, // IID12228 - 0xd5, 0x3b, 0x81, 0xbc, 0xfe, 0xe1, 0xb1, 0xbc, 0x57, 0x00, 0x01, 0x00, 0x00, // IID12229 - 0xd5, 0x19, 0x81, 0xbc, 0x8f, 0xbb, 0xaf, 0x88, 0x44, 0x00, 0x01, 0x00, 0x00, // IID12230 - 0x48, 0x81, 0xbc, 0x51, 0x90, 0x92, 0xe1, 0x0a, 0x00, 0x10, 0x00, 0x00, // IID12231 - 0x48, 0x81, 0xba, 0x23, 0x73, 0x43, 0x96, 0x00, 0x10, 0x00, 0x00, // IID12232 - 0x4a, 0x81, 0xbc, 0x83, 0xd4, 0x07, 0xdb, 0x1d, 0x00, 0x10, 0x00, 0x00, // IID12233 - 0x4b, 0x81, 0xbc, 0x48, 0xa9, 0x11, 0x09, 0x10, 0x00, 0x10, 0x00, 0x00, // IID12234 - 0x4b, 0x81, 0xbc, 0x51, 0x96, 0xb9, 0x6e, 0xd4, 0x00, 0x10, 0x00, 0x00, // IID12235 - 0x4b, 0x81, 0xbc, 0x5a, 0x19, 0xbe, 0xce, 0xa1, 0x00, 0x10, 0x00, 0x00, // IID12236 - 0x4b, 0x81, 0xbc, 0xa3, 0x08, 0x1e, 0xee, 0xf8, 0x00, 0x10, 0x00, 0x00, // IID12237 - 0x4b, 0x81, 0xbc, 0x2c, 0x85, 0xb2, 0xc9, 0x87, 0x00, 0x10, 0x00, 0x00, // IID12238 - 0x4b, 0x81, 0xbc, 0xf5, 0x21, 0x28, 0x6f, 0x0a, 0x00, 0x10, 0x00, 0x00, // IID12239 - 0x4b, 0x81, 0xbc, 0x7e, 0x3b, 0xa6, 0x1f, 0x3e, 0x00, 0x10, 0x00, 0x00, // IID12240 - 0xd5, 0x29, 0x81, 0xbc, 0x07, 0xb9, 0xdd, 0xcc, 0xfc, 0x00, 0x10, 0x00, 0x00, // IID12241 - 0xd5, 0x38, 0x81, 0xbc, 0xc8, 0xf0, 0x13, 0xc2, 0x13, 0x00, 0x10, 0x00, 0x00, // IID12242 - 0xd5, 0x38, 0x81, 0xbc, 0x11, 0x66, 0xce, 0xd7, 0xd8, 0x00, 0x10, 0x00, 0x00, // IID12243 - 0xd5, 0x38, 0x81, 0xbc, 0x1a, 0x7c, 0x5f, 0xf8, 0x92, 0x00, 0x10, 0x00, 0x00, // IID12244 - 0xd5, 0x38, 0x81, 0xbc, 0x63, 0x92, 0x1c, 0x7c, 0x5c, 0x00, 0x10, 0x00, 0x00, // IID12245 - 0xd5, 0x38, 0x81, 0xbc, 0x6c, 0xfc, 0x36, 0x95, 0x69, 0x00, 0x10, 0x00, 0x00, // IID12246 - 0xd5, 0x38, 0x81, 0xbc, 0x35, 0x0b, 0x37, 0xe1, 0x14, 0x00, 0x10, 0x00, 0x00, // IID12247 - 0xd5, 0x38, 0x81, 0xbc, 0x3e, 0x01, 0x11, 0x55, 0xe3, 0x00, 0x10, 0x00, 0x00, // IID12248 - 0xd5, 0x18, 0x81, 0xbf, 0x72, 0xad, 0x91, 0x40, 0x00, 0x10, 0x00, 0x00, // IID12249 - 0xd5, 0x3b, 0x81, 0xbc, 0x48, 0xbb, 0xd5, 0x1a, 0x1e, 0x00, 0x10, 0x00, 0x00, // IID12250 - 0xd5, 0x19, 0x81, 0xb9, 0xb2, 0x65, 0x55, 0x1b, 0x00, 0x10, 0x00, 0x00, // IID12251 - 0xd5, 0x3b, 0x81, 0xbc, 0x1a, 0x41, 0x7f, 0x29, 0x19, 0x00, 0x10, 0x00, 0x00, // IID12252 - 0xd5, 0x3b, 0x81, 0xbc, 0xa3, 0xfe, 0x4d, 0xb4, 0xd5, 0x00, 0x10, 0x00, 0x00, // IID12253 - 0xd5, 0x19, 0x81, 0xbc, 0x24, 0x80, 0x1a, 0x71, 0x70, 0x00, 0x10, 0x00, 0x00, // IID12254 - 0xd5, 0x3b, 0x81, 0xbc, 0xb5, 0xe1, 0x9c, 0xea, 0x8a, 0x00, 0x10, 0x00, 0x00, // IID12255 - 0xd5, 0x3b, 0x81, 0xbc, 0x3e, 0x08, 0x09, 0xc7, 0xd4, 0x00, 0x10, 0x00, 0x00, // IID12256 - 0xd5, 0x19, 0x81, 0xbc, 0x0f, 0xf4, 0x6f, 0x4f, 0x42, 0x00, 0x10, 0x00, 0x00, // IID12257 - 0x48, 0x81, 0xb9, 0x5a, 0xf1, 0xa8, 0xad, 0x00, 0x00, 0x01, 0x00, // IID12258 - 0x48, 0x81, 0xbc, 0x9a, 0x5a, 0x7b, 0xef, 0x10, 0x00, 0x00, 0x01, 0x00, // IID12259 - 0x4a, 0x81, 0xbc, 0x83, 0xe9, 0x57, 0xd1, 0x15, 0x00, 0x00, 0x01, 0x00, // IID12260 - 0x4b, 0x81, 0xbc, 0x88, 0xcd, 0xe7, 0xcc, 0x35, 0x00, 0x00, 0x01, 0x00, // IID12261 - 0x49, 0x81, 0xb9, 0x30, 0xb1, 0x0f, 0xf8, 0x00, 0x00, 0x01, 0x00, // IID12262 - 0x4b, 0x81, 0xbc, 0x9a, 0x60, 0xa8, 0xd8, 0x9a, 0x00, 0x00, 0x01, 0x00, // IID12263 - 0x4b, 0x81, 0xbc, 0xe3, 0x9d, 0xe9, 0xc2, 0xb6, 0x00, 0x00, 0x01, 0x00, // IID12264 - 0x4b, 0x81, 0xbc, 0xec, 0xac, 0x2b, 0xf2, 0x03, 0x00, 0x00, 0x01, 0x00, // IID12265 - 0x4b, 0x81, 0xbc, 0xb5, 0x7f, 0xb5, 0x53, 0x2e, 0x00, 0x00, 0x01, 0x00, // IID12266 - 0x4b, 0x81, 0xbc, 0xbe, 0xba, 0xd8, 0x40, 0xaa, 0x00, 0x00, 0x01, 0x00, // IID12267 - 0xd5, 0x29, 0x81, 0xbc, 0x87, 0x82, 0x42, 0x5f, 0xa8, 0x00, 0x00, 0x01, 0x00, // IID12268 - 0xd5, 0x38, 0x81, 0xbc, 0x48, 0x04, 0x30, 0xf3, 0x88, 0x00, 0x00, 0x01, 0x00, // IID12269 - 0xd5, 0x38, 0x81, 0xbc, 0x91, 0x62, 0x90, 0x5d, 0x3b, 0x00, 0x00, 0x01, 0x00, // IID12270 - 0xd5, 0x38, 0x81, 0xbc, 0x9a, 0x55, 0x00, 0xc5, 0xda, 0x00, 0x00, 0x01, 0x00, // IID12271 - 0xd5, 0x38, 0x81, 0xbc, 0xe3, 0x3e, 0x8e, 0xf0, 0x67, 0x00, 0x00, 0x01, 0x00, // IID12272 - 0xd5, 0x38, 0x81, 0xbc, 0xac, 0x8f, 0xb3, 0xac, 0xd3, 0x00, 0x00, 0x01, 0x00, // IID12273 - 0xd5, 0x38, 0x81, 0xbc, 0x35, 0x2b, 0x13, 0x41, 0x92, 0x00, 0x00, 0x01, 0x00, // IID12274 - 0xd5, 0x38, 0x81, 0xbc, 0xbe, 0x31, 0x35, 0x12, 0x80, 0x00, 0x00, 0x01, 0x00, // IID12275 - 0xd5, 0x3a, 0x81, 0xbc, 0x07, 0x9c, 0x0e, 0x35, 0xdb, 0x00, 0x00, 0x01, 0x00, // IID12276 - 0xd5, 0x3b, 0x81, 0xbc, 0xc8, 0x18, 0x47, 0xfc, 0x82, 0x00, 0x00, 0x01, 0x00, // IID12277 - 0xd5, 0x3b, 0x81, 0xbc, 0x11, 0x04, 0x9e, 0x17, 0xab, 0x00, 0x00, 0x01, 0x00, // IID12278 - 0xd5, 0x19, 0x81, 0xba, 0x7b, 0x75, 0x7b, 0x6b, 0x00, 0x00, 0x01, 0x00, // IID12279 - 0xd5, 0x3b, 0x81, 0xbc, 0xa3, 0xaa, 0x31, 0xd9, 0x5b, 0x00, 0x00, 0x01, 0x00, // IID12280 - 0xd5, 0x3b, 0x81, 0xbc, 0x6c, 0xde, 0xff, 0x01, 0xc6, 0x00, 0x00, 0x01, 0x00, // IID12281 - 0xd5, 0x3b, 0x81, 0xbc, 0x35, 0x38, 0xf7, 0xc5, 0x6c, 0x00, 0x00, 0x01, 0x00, // IID12282 - 0xd5, 0x3b, 0x81, 0xbc, 0xbe, 0x77, 0xba, 0x4a, 0x5a, 0x00, 0x00, 0x01, 0x00, // IID12283 - 0xd5, 0x19, 0x81, 0xbc, 0x0f, 0x29, 0xe9, 0x04, 0x9b, 0x00, 0x00, 0x01, 0x00, // IID12284 - 0x48, 0x81, 0xbc, 0xd1, 0xe6, 0x9b, 0xd2, 0x9b, 0x00, 0x00, 0x10, 0x00, // IID12285 - 0x48, 0x81, 0xbc, 0x1a, 0xf2, 0x89, 0x92, 0xe0, 0x00, 0x00, 0x10, 0x00, // IID12286 - 0x48, 0x81, 0xbb, 0x56, 0x5e, 0x00, 0xcc, 0x00, 0x00, 0x10, 0x00, // IID12287 - 0x4b, 0x81, 0xbc, 0xc8, 0xfa, 0x6d, 0x58, 0x8a, 0x00, 0x00, 0x10, 0x00, // IID12288 - 0x4b, 0x81, 0xbc, 0x91, 0xef, 0x06, 0x60, 0x94, 0x00, 0x00, 0x10, 0x00, // IID12289 - 0x4b, 0x81, 0xbc, 0x9a, 0x92, 0xdc, 0x76, 0x46, 0x00, 0x00, 0x10, 0x00, // IID12290 - 0x49, 0x81, 0xbb, 0x98, 0x18, 0x49, 0x9a, 0x00, 0x00, 0x10, 0x00, // IID12291 - 0x4b, 0x81, 0xbc, 0xac, 0xa3, 0xee, 0xb3, 0x29, 0x00, 0x00, 0x10, 0x00, // IID12292 - 0x49, 0x81, 0xbd, 0xdb, 0x81, 0x42, 0x7b, 0x00, 0x00, 0x10, 0x00, // IID12293 - 0x49, 0x81, 0xbe, 0x42, 0x33, 0x4c, 0xe5, 0x00, 0x00, 0x10, 0x00, // IID12294 - 0xd5, 0x29, 0x81, 0xbc, 0xc7, 0x82, 0x60, 0x1a, 0x61, 0x00, 0x00, 0x10, 0x00, // IID12295 - 0xd5, 0x38, 0x81, 0xbc, 0x88, 0x81, 0xca, 0x96, 0x73, 0x00, 0x00, 0x10, 0x00, // IID12296 - 0xd5, 0x38, 0x81, 0xbc, 0xd1, 0x52, 0x87, 0xd6, 0xfc, 0x00, 0x00, 0x10, 0x00, // IID12297 - 0xd5, 0x38, 0x81, 0xbc, 0x1a, 0xb3, 0x56, 0xb7, 0xed, 0x00, 0x00, 0x10, 0x00, // IID12298 - 0xd5, 0x38, 0x81, 0xbc, 0x63, 0xae, 0xc5, 0xb7, 0x03, 0x00, 0x00, 0x10, 0x00, // IID12299 - 0xd5, 0x38, 0x81, 0xbc, 0x6c, 0x5a, 0xfc, 0xa1, 0xc8, 0x00, 0x00, 0x10, 0x00, // IID12300 - 0xd5, 0x38, 0x81, 0xbc, 0xf5, 0xe0, 0x67, 0x88, 0x77, 0x00, 0x00, 0x10, 0x00, // IID12301 - 0xd5, 0x38, 0x81, 0xbc, 0xfe, 0xbd, 0xea, 0x6d, 0x5f, 0x00, 0x00, 0x10, 0x00, // IID12302 - 0xd5, 0x3a, 0x81, 0xbc, 0x47, 0xe2, 0x37, 0xbb, 0xa3, 0x00, 0x00, 0x10, 0x00, // IID12303 - 0xd5, 0x3b, 0x81, 0xbc, 0xc8, 0xd5, 0xbf, 0x50, 0x9e, 0x00, 0x00, 0x10, 0x00, // IID12304 - 0xd5, 0x19, 0x81, 0xb9, 0x1c, 0xf3, 0xb7, 0xb6, 0x00, 0x00, 0x10, 0x00, // IID12305 - 0xd5, 0x3b, 0x81, 0xbc, 0x9a, 0xc2, 0x13, 0xe4, 0x64, 0x00, 0x00, 0x10, 0x00, // IID12306 - 0xd5, 0x3b, 0x81, 0xbc, 0x23, 0x6f, 0xb7, 0x9e, 0x94, 0x00, 0x00, 0x10, 0x00, // IID12307 - 0xd5, 0x3b, 0x81, 0xbc, 0x6c, 0x68, 0x8b, 0x3d, 0x2e, 0x00, 0x00, 0x10, 0x00, // IID12308 - 0xd5, 0x3b, 0x81, 0xbc, 0xb5, 0x31, 0x17, 0x79, 0x1b, 0x00, 0x00, 0x10, 0x00, // IID12309 - 0xd5, 0x3b, 0x81, 0xbc, 0x3e, 0xce, 0x6e, 0x2f, 0xf3, 0x00, 0x00, 0x10, 0x00, // IID12310 - 0xd5, 0x19, 0x81, 0xbc, 0x8f, 0xd3, 0xc2, 0x90, 0x62, 0x00, 0x00, 0x10, 0x00, // IID12311 - 0x48, 0x81, 0xbc, 0xd1, 0x2c, 0x97, 0xad, 0x33, 0x00, 0x00, 0x00, 0x01, // IID12312 - 0x48, 0x81, 0xbc, 0x1a, 0xc0, 0x37, 0xf3, 0x8d, 0x00, 0x00, 0x00, 0x01, // IID12313 - 0x4a, 0x81, 0xbc, 0x83, 0xf0, 0x4e, 0x38, 0x47, 0x00, 0x00, 0x00, 0x01, // IID12314 - 0x4b, 0x81, 0xbc, 0x48, 0xcc, 0xd9, 0x42, 0xd7, 0x00, 0x00, 0x00, 0x01, // IID12315 - 0x4b, 0x81, 0xbc, 0xd1, 0xad, 0xd1, 0xa8, 0x3c, 0x00, 0x00, 0x00, 0x01, // IID12316 - 0x49, 0x81, 0xba, 0xda, 0x42, 0xb7, 0xc3, 0x00, 0x00, 0x00, 0x01, // IID12317 - 0x4b, 0x81, 0xbc, 0x63, 0x2a, 0x3e, 0x6e, 0x5c, 0x00, 0x00, 0x00, 0x01, // IID12318 - 0x4b, 0x81, 0xbc, 0x6c, 0x47, 0xff, 0xa5, 0xc5, 0x00, 0x00, 0x00, 0x01, // IID12319 - 0x4b, 0x81, 0xbc, 0xb5, 0x8b, 0xcd, 0x40, 0x95, 0x00, 0x00, 0x00, 0x01, // IID12320 - 0x49, 0x81, 0xbe, 0x6e, 0xbd, 0xb0, 0x62, 0x00, 0x00, 0x00, 0x01, // IID12321 - 0xd5, 0x29, 0x81, 0xbc, 0x87, 0xc0, 0xb6, 0x1f, 0x4a, 0x00, 0x00, 0x00, 0x01, // IID12322 - 0xd5, 0x18, 0x81, 0xb8, 0x11, 0x6e, 0x16, 0x2f, 0x00, 0x00, 0x00, 0x01, // IID12323 - 0xd5, 0x38, 0x81, 0xbc, 0x11, 0x5a, 0xd2, 0x43, 0x1a, 0x00, 0x00, 0x00, 0x01, // IID12324 - 0xd5, 0x38, 0x81, 0xbc, 0xda, 0x30, 0xf6, 0x6a, 0x9b, 0x00, 0x00, 0x00, 0x01, // IID12325 - 0xd5, 0x38, 0x81, 0xbc, 0x63, 0x20, 0x2d, 0xce, 0x13, 0x00, 0x00, 0x00, 0x01, // IID12326 - 0xd5, 0x38, 0x81, 0xbc, 0x6c, 0x1c, 0x67, 0x9d, 0x9f, 0x00, 0x00, 0x00, 0x01, // IID12327 - 0xd5, 0x38, 0x81, 0xbc, 0xf5, 0xde, 0x69, 0x3d, 0xcd, 0x00, 0x00, 0x00, 0x01, // IID12328 - 0xd5, 0x38, 0x81, 0xbc, 0xbe, 0xa6, 0xe1, 0xe2, 0x6b, 0x00, 0x00, 0x00, 0x01, // IID12329 - 0xd5, 0x18, 0x81, 0xbf, 0x47, 0xa2, 0x16, 0xef, 0x00, 0x00, 0x00, 0x01, // IID12330 - 0xd5, 0x3b, 0x81, 0xbc, 0x88, 0x4c, 0x23, 0xbc, 0xf0, 0x00, 0x00, 0x00, 0x01, // IID12331 - 0xd5, 0x3b, 0x81, 0xbc, 0xd1, 0x61, 0x07, 0x2a, 0xad, 0x00, 0x00, 0x00, 0x01, // IID12332 - 0xd5, 0x3b, 0x81, 0xbc, 0x5a, 0x4f, 0x71, 0x6a, 0x6a, 0x00, 0x00, 0x00, 0x01, // IID12333 - 0xd5, 0x3b, 0x81, 0xbc, 0xa3, 0x04, 0x8e, 0xca, 0x7d, 0x00, 0x00, 0x00, 0x01, // IID12334 - 0xd5, 0x3b, 0x81, 0xbc, 0xac, 0x7a, 0xb1, 0xcf, 0x06, 0x00, 0x00, 0x00, 0x01, // IID12335 - 0xd5, 0x3b, 0x81, 0xbc, 0x35, 0x5b, 0xe2, 0x50, 0xb3, 0x00, 0x00, 0x00, 0x01, // IID12336 - 0xd5, 0x3b, 0x81, 0xbc, 0xbe, 0xae, 0xb2, 0xf9, 0x7e, 0x00, 0x00, 0x00, 0x01, // IID12337 - 0xd5, 0x19, 0x81, 0xbc, 0x0f, 0x94, 0xff, 0x52, 0xae, 0x00, 0x00, 0x00, 0x01, // IID12338 - 0x48, 0x81, 0xbc, 0xd1, 0x38, 0x1e, 0x62, 0x1a, 0x00, 0x00, 0x00, 0x10, // IID12339 - 0x48, 0x81, 0xba, 0xaf, 0xa4, 0x81, 0xd8, 0x00, 0x00, 0x00, 0x10, // IID12340 - 0x4a, 0x81, 0xbc, 0x03, 0x30, 0xd4, 0xa2, 0x20, 0x00, 0x00, 0x00, 0x10, // IID12341 - 0x4b, 0x81, 0xbc, 0x08, 0xf0, 0xd2, 0xe4, 0x3a, 0x00, 0x00, 0x00, 0x10, // IID12342 - 0x4b, 0x81, 0xbc, 0xd1, 0xce, 0x05, 0x47, 0xf4, 0x00, 0x00, 0x00, 0x10, // IID12343 - 0x4b, 0x81, 0xbc, 0x5a, 0x9a, 0x1e, 0x99, 0xbb, 0x00, 0x00, 0x00, 0x10, // IID12344 - 0x4b, 0x81, 0xbc, 0x63, 0xc1, 0x2d, 0xe5, 0x40, 0x00, 0x00, 0x00, 0x10, // IID12345 - 0x49, 0x81, 0xbc, 0x24, 0xbb, 0x2d, 0xd6, 0x17, 0x00, 0x00, 0x00, 0x10, // IID12346 - 0x4b, 0x81, 0xbc, 0x35, 0xa4, 0x15, 0x6f, 0x46, 0x00, 0x00, 0x00, 0x10, // IID12347 - 0x49, 0x81, 0xbe, 0xcc, 0x68, 0x0d, 0xf7, 0x00, 0x00, 0x00, 0x10, // IID12348 - 0xd5, 0x29, 0x81, 0xbc, 0x47, 0xaa, 0x6e, 0x83, 0x74, 0x00, 0x00, 0x00, 0x10, // IID12349 - 0xd5, 0x38, 0x81, 0xbc, 0x88, 0x5a, 0x60, 0x31, 0x79, 0x00, 0x00, 0x00, 0x10, // IID12350 - 0xd5, 0x38, 0x81, 0xbc, 0x11, 0xd2, 0x58, 0x9a, 0x9a, 0x00, 0x00, 0x00, 0x10, // IID12351 - 0xd5, 0x38, 0x81, 0xbc, 0x5a, 0x6b, 0x87, 0x20, 0x19, 0x00, 0x00, 0x00, 0x10, // IID12352 - 0xd5, 0x18, 0x81, 0xbb, 0xb4, 0x5c, 0x6e, 0x50, 0x00, 0x00, 0x00, 0x10, // IID12353 - 0xd5, 0x38, 0x81, 0xbc, 0x2c, 0xd4, 0x8d, 0x5c, 0xaa, 0x00, 0x00, 0x00, 0x10, // IID12354 - 0xd5, 0x38, 0x81, 0xbc, 0xb5, 0x41, 0xcf, 0x86, 0x74, 0x00, 0x00, 0x00, 0x10, // IID12355 - 0xd5, 0x38, 0x81, 0xbc, 0xbe, 0x00, 0x00, 0x66, 0x17, 0x00, 0x00, 0x00, 0x10, // IID12356 - 0xd5, 0x3a, 0x81, 0xbc, 0x87, 0x28, 0xe3, 0x37, 0x9b, 0x00, 0x00, 0x00, 0x10, // IID12357 - 0xd5, 0x3b, 0x81, 0xbc, 0xc8, 0x9f, 0x36, 0x36, 0x43, 0x00, 0x00, 0x00, 0x10, // IID12358 - 0xd5, 0x3b, 0x81, 0xbc, 0x11, 0x88, 0x53, 0xb3, 0xe4, 0x00, 0x00, 0x00, 0x10, // IID12359 - 0xd5, 0x19, 0x81, 0xba, 0x10, 0x06, 0xe5, 0x1f, 0x00, 0x00, 0x00, 0x10, // IID12360 - 0xd5, 0x3b, 0x81, 0xbc, 0xe3, 0x51, 0xa8, 0x23, 0x0e, 0x00, 0x00, 0x00, 0x10, // IID12361 - 0xd5, 0x3b, 0x81, 0xbc, 0x2c, 0x96, 0x1b, 0x70, 0xca, 0x00, 0x00, 0x00, 0x10, // IID12362 - 0xd5, 0x3b, 0x81, 0xbc, 0x75, 0xd1, 0xd8, 0x82, 0xe3, 0x00, 0x00, 0x00, 0x10, // IID12363 - 0xd5, 0x3b, 0x81, 0xbc, 0x3e, 0x1a, 0xce, 0xc7, 0x02, 0x00, 0x00, 0x00, 0x10, // IID12364 - 0xd5, 0x19, 0x81, 0xbc, 0x8f, 0xd9, 0xc1, 0xfe, 0x35, 0x00, 0x00, 0x00, 0x10, // IID12365 - 0x48, 0xd1, 0xbc, 0x91, 0x43, 0xc1, 0xfc, 0x63, // IID12366 - 0x48, 0xd1, 0xba, 0xbf, 0x0c, 0x4f, 0x49, // IID12367 - 0x4a, 0xd1, 0xbc, 0x03, 0x19, 0x17, 0x63, 0x21, // IID12368 - 0x4b, 0xd1, 0xbc, 0xc8, 0x99, 0xa7, 0x44, 0xd3, // IID12369 - 0x49, 0xd1, 0xb9, 0x7d, 0x08, 0x9a, 0x0d, // IID12370 - 0x4b, 0xd1, 0xbc, 0x5a, 0x14, 0x2e, 0x59, 0xd1, // IID12371 - 0x4b, 0xd1, 0xbc, 0x63, 0x46, 0x10, 0x06, 0x4e, // IID12372 - 0x4b, 0xd1, 0xbc, 0xec, 0xc5, 0x73, 0x40, 0x54, // IID12373 - 0x49, 0xd1, 0xbd, 0xa5, 0x69, 0x7e, 0xb0, // IID12374 - 0x49, 0xd1, 0xbe, 0x6e, 0xa8, 0x42, 0x01, // IID12375 - 0x49, 0xd1, 0xbf, 0x48, 0xad, 0xd7, 0xa8, // IID12376 - 0xd5, 0x18, 0xd1, 0xb8, 0x3b, 0xe3, 0xd4, 0x13, // IID12377 - 0xd5, 0x38, 0xd1, 0xbc, 0xd1, 0xd3, 0xe7, 0x2c, 0xa6, // IID12378 - 0xd5, 0x18, 0xd1, 0xba, 0xe2, 0xa6, 0xa2, 0xed, // IID12379 - 0xd5, 0x38, 0xd1, 0xbc, 0xa3, 0x46, 0x3d, 0x63, 0xc5, // IID12380 - 0xd5, 0x38, 0xd1, 0xbc, 0xec, 0xf4, 0x59, 0x0c, 0x8b, // IID12381 - 0xd5, 0x38, 0xd1, 0xbc, 0x75, 0x33, 0x04, 0x35, 0x18, // IID12382 - 0xd5, 0x38, 0xd1, 0xbc, 0xbe, 0xed, 0xb2, 0x60, 0xd2, // IID12383 - 0xd5, 0x18, 0xd1, 0xbf, 0x85, 0x30, 0xa9, 0x7c, // IID12384 - 0xd5, 0x3b, 0xd1, 0xbc, 0x88, 0x49, 0x1a, 0x75, 0x61, // IID12385 - 0xd5, 0x3b, 0xd1, 0xbc, 0x51, 0x2c, 0x18, 0xc4, 0x42, // IID12386 - 0xd5, 0x3b, 0xd1, 0xbc, 0xda, 0x7a, 0x95, 0xee, 0x0c, // IID12387 - 0xd5, 0x3b, 0xd1, 0xbc, 0x23, 0x4c, 0xa9, 0x5e, 0xa1, // IID12388 - 0xd5, 0x3b, 0xd1, 0xbc, 0x6c, 0xec, 0x26, 0x1d, 0x1c, // IID12389 - 0xd5, 0x3b, 0xd1, 0xbc, 0xf5, 0x59, 0xea, 0xb0, 0xeb, // IID12390 - 0xd5, 0x3b, 0xd1, 0xbc, 0xbe, 0xf4, 0xd9, 0xb4, 0x7b, // IID12391 - 0xd5, 0x19, 0xd1, 0xbf, 0x37, 0xff, 0x85, 0x91, // IID12392 - 0x48, 0xc1, 0xbc, 0xd1, 0x1c, 0x0e, 0xee, 0xcb, 0x02, // IID12393 - 0x48, 0xc1, 0xbc, 0x1a, 0x45, 0x3a, 0x3d, 0x4d, 0x02, // IID12394 - 0x4a, 0xc1, 0xbc, 0x03, 0x46, 0xcf, 0xe9, 0xd0, 0x02, // IID12395 - 0x4b, 0xc1, 0xbc, 0x88, 0xc0, 0x37, 0xe3, 0xcd, 0x02, // IID12396 - 0x49, 0xc1, 0xb9, 0x4e, 0x94, 0xd6, 0x8e, 0x02, // IID12397 - 0x4b, 0xc1, 0xbc, 0x5a, 0x19, 0x8b, 0x27, 0x63, 0x02, // IID12398 - 0x4b, 0xc1, 0xbc, 0x23, 0x86, 0x54, 0x16, 0x70, 0x02, // IID12399 - 0x4b, 0xc1, 0xbc, 0xac, 0xbc, 0x08, 0x5c, 0x9f, 0x02, // IID12400 - 0x49, 0xc1, 0xbd, 0x47, 0x54, 0xa2, 0x7b, 0x02, // IID12401 - 0x4b, 0xc1, 0xbc, 0x3e, 0x51, 0xe2, 0xf5, 0xef, 0x02, // IID12402 - 0xd5, 0x29, 0xc1, 0xbc, 0x07, 0x52, 0x9a, 0x49, 0xda, 0x02, // IID12403 - 0xd5, 0x18, 0xc1, 0xb8, 0xde, 0x4e, 0xc1, 0xb8, 0x02, // IID12404 - 0xd5, 0x38, 0xc1, 0xbc, 0x91, 0x70, 0x5c, 0x46, 0x23, 0x02, // IID12405 - 0xd5, 0x38, 0xc1, 0xbc, 0x1a, 0x0d, 0xd1, 0x7a, 0x2e, 0x02, // IID12406 - 0xd5, 0x38, 0xc1, 0xbc, 0xe3, 0x74, 0xc3, 0x8e, 0x07, 0x02, // IID12407 - 0xd5, 0x38, 0xc1, 0xbc, 0x6c, 0x46, 0x69, 0x2f, 0x91, 0x02, // IID12408 - 0xd5, 0x38, 0xc1, 0xbc, 0x75, 0xd2, 0x08, 0xea, 0xd1, 0x02, // IID12409 - 0xd5, 0x38, 0xc1, 0xbc, 0x3e, 0xa8, 0xe0, 0x3c, 0xdf, 0x02, // IID12410 - 0xd5, 0x3a, 0xc1, 0xbc, 0x47, 0xfb, 0x36, 0x28, 0xc0, 0x02, // IID12411 - 0xd5, 0x3b, 0xc1, 0xbc, 0xc8, 0xc1, 0xb2, 0xba, 0xcf, 0x02, // IID12412 - 0xd5, 0x3b, 0xc1, 0xbc, 0xd1, 0xc5, 0x22, 0xe8, 0xed, 0x02, // IID12413 - 0xd5, 0x3b, 0xc1, 0xbc, 0x5a, 0xbc, 0xdb, 0xd7, 0xd5, 0x02, // IID12414 - 0xd5, 0x19, 0xc1, 0xbb, 0xa9, 0x6c, 0xe3, 0xbe, 0x02, // IID12415 - 0xd5, 0x19, 0xc1, 0xbc, 0x24, 0xc3, 0x39, 0x8c, 0x05, 0x02, // IID12416 - 0xd5, 0x3b, 0xc1, 0xbc, 0x75, 0x63, 0x48, 0xed, 0x33, 0x02, // IID12417 - 0xd5, 0x3b, 0xc1, 0xbc, 0xbe, 0xce, 0x33, 0xb4, 0x2f, 0x02, // IID12418 - 0xd5, 0x19, 0xc1, 0xbc, 0x0f, 0x1c, 0x71, 0x7f, 0x75, 0x02, // IID12419 - 0x48, 0xc1, 0xb9, 0xd4, 0xff, 0x81, 0x37, 0x04, // IID12420 - 0x48, 0xc1, 0xba, 0x36, 0x74, 0xfa, 0x74, 0x04, // IID12421 - 0x4a, 0xc1, 0xbc, 0x03, 0xc5, 0xe5, 0xba, 0x90, 0x04, // IID12422 - 0x4b, 0xc1, 0xbc, 0x08, 0xfb, 0x70, 0xf6, 0xda, 0x04, // IID12423 - 0x49, 0xc1, 0xb9, 0x56, 0x84, 0x0c, 0x52, 0x04, // IID12424 - 0x49, 0xc1, 0xba, 0xb8, 0x9e, 0xaf, 0x04, 0x04, // IID12425 - 0x4b, 0xc1, 0xbc, 0x23, 0x94, 0xfc, 0x44, 0x38, 0x04, // IID12426 - 0x49, 0xc1, 0xbc, 0x24, 0x1d, 0xb2, 0x65, 0x15, 0x04, // IID12427 - 0x4b, 0xc1, 0xbc, 0xf5, 0xa2, 0x68, 0x71, 0x1c, 0x04, // IID12428 - 0x4b, 0xc1, 0xbc, 0xfe, 0x9e, 0x01, 0x05, 0x94, 0x04, // IID12429 - 0xd5, 0x29, 0xc1, 0xbc, 0x07, 0x70, 0xfb, 0x80, 0xfc, 0x04, // IID12430 - 0xd5, 0x38, 0xc1, 0xbc, 0x08, 0x03, 0xe5, 0xa8, 0x08, 0x04, // IID12431 - 0xd5, 0x38, 0xc1, 0xbc, 0x51, 0x41, 0x0a, 0x3a, 0x85, 0x04, // IID12432 - 0xd5, 0x38, 0xc1, 0xbc, 0x1a, 0x64, 0x18, 0x19, 0x2f, 0x04, // IID12433 - 0xd5, 0x38, 0xc1, 0xbc, 0xa3, 0xf4, 0x79, 0x1b, 0xd3, 0x04, // IID12434 - 0xd5, 0x38, 0xc1, 0xbc, 0xec, 0x20, 0x63, 0x68, 0x64, 0x04, // IID12435 - 0xd5, 0x38, 0xc1, 0xbc, 0x75, 0xcd, 0xd5, 0x51, 0x3b, 0x04, // IID12436 - 0xd5, 0x38, 0xc1, 0xbc, 0xbe, 0xeb, 0x0e, 0x03, 0x23, 0x04, // IID12437 - 0xd5, 0x3a, 0xc1, 0xbc, 0x87, 0x7d, 0x69, 0x7e, 0xd1, 0x04, // IID12438 - 0xd5, 0x3b, 0xc1, 0xbc, 0x88, 0x70, 0x11, 0xc1, 0x23, 0x04, // IID12439 - 0xd5, 0x3b, 0xc1, 0xbc, 0x51, 0x36, 0x35, 0x21, 0x6a, 0x04, // IID12440 - 0xd5, 0x3b, 0xc1, 0xbc, 0xda, 0x9d, 0x0b, 0x9b, 0xa8, 0x04, // IID12441 - 0xd5, 0x19, 0xc1, 0xbb, 0xbf, 0x62, 0x58, 0x85, 0x04, // IID12442 - 0xd5, 0x3b, 0xc1, 0xbc, 0x6c, 0x87, 0x76, 0x1d, 0xab, 0x04, // IID12443 - 0xd5, 0x3b, 0xc1, 0xbc, 0x75, 0xab, 0xd4, 0xf6, 0xbe, 0x04, // IID12444 - 0xd5, 0x3b, 0xc1, 0xbc, 0xfe, 0x8e, 0x33, 0x5a, 0xf3, 0x04, // IID12445 - 0xd5, 0x19, 0xc1, 0xbf, 0x74, 0x80, 0xa0, 0xf0, 0x04, // IID12446 - 0x48, 0xc1, 0xbc, 0x11, 0x64, 0xeb, 0xe6, 0x4d, 0x08, // IID12447 - 0x48, 0xc1, 0xbc, 0x9a, 0x11, 0x0e, 0x9b, 0xb9, 0x08, // IID12448 - 0x4a, 0xc1, 0xbc, 0x03, 0x6d, 0xf7, 0x02, 0x9d, 0x08, // IID12449 - 0x4b, 0xc1, 0xbc, 0x08, 0xb8, 0x37, 0x18, 0xe0, 0x08, // IID12450 - 0x4b, 0xc1, 0xbc, 0x91, 0x5a, 0x0a, 0xc0, 0xdb, 0x08, // IID12451 - 0x49, 0xc1, 0xba, 0xa7, 0xa7, 0xbb, 0x39, 0x08, // IID12452 - 0x49, 0xc1, 0xbb, 0xef, 0x76, 0x18, 0x0a, 0x08, // IID12453 - 0x4b, 0xc1, 0xbc, 0x2c, 0xa1, 0xcd, 0x74, 0xdb, 0x08, // IID12454 - 0x4b, 0xc1, 0xbc, 0xb5, 0xf1, 0x73, 0x56, 0x9e, 0x08, // IID12455 - 0x4b, 0xc1, 0xbc, 0x7e, 0x87, 0x0b, 0x6f, 0x6a, 0x08, // IID12456 - 0xd5, 0x29, 0xc1, 0xbc, 0x47, 0x2c, 0x77, 0xd4, 0x68, 0x08, // IID12457 - 0xd5, 0x38, 0xc1, 0xbc, 0xc8, 0x5e, 0xa7, 0xce, 0x73, 0x08, // IID12458 - 0xd5, 0x38, 0xc1, 0xbc, 0x11, 0x95, 0xc2, 0x2d, 0x41, 0x08, // IID12459 - 0xd5, 0x38, 0xc1, 0xbc, 0xda, 0xe3, 0x2a, 0xbb, 0xfc, 0x08, // IID12460 - 0xd5, 0x38, 0xc1, 0xbc, 0x23, 0xc0, 0xb4, 0xd9, 0xe4, 0x08, // IID12461 - 0xd5, 0x18, 0xc1, 0xbc, 0x24, 0x0a, 0xd0, 0xd1, 0xd3, 0x08, // IID12462 - 0xd5, 0x38, 0xc1, 0xbc, 0xb5, 0x00, 0x4e, 0x41, 0xb5, 0x08, // IID12463 - 0xd5, 0x18, 0xc1, 0xbe, 0xd9, 0x5b, 0x8b, 0x48, 0x08, // IID12464 - 0xd5, 0x3a, 0xc1, 0xbc, 0x87, 0x33, 0xa6, 0x31, 0x1b, 0x08, // IID12465 - 0xd5, 0x3b, 0xc1, 0xbc, 0x88, 0xe3, 0x03, 0xed, 0xa5, 0x08, // IID12466 - 0xd5, 0x3b, 0xc1, 0xbc, 0x51, 0x57, 0x02, 0xfd, 0x4f, 0x08, // IID12467 - 0xd5, 0x3b, 0xc1, 0xbc, 0x5a, 0x21, 0x35, 0x27, 0xc0, 0x08, // IID12468 - 0xd5, 0x3b, 0xc1, 0xbc, 0xe3, 0x3c, 0x7a, 0x12, 0xbf, 0x08, // IID12469 - 0xd5, 0x19, 0xc1, 0xbc, 0x24, 0x2a, 0xe3, 0x5d, 0xba, 0x08, // IID12470 - 0xd5, 0x19, 0xc1, 0xbd, 0xf0, 0xc7, 0x62, 0xd6, 0x08, // IID12471 - 0xd5, 0x19, 0xc1, 0xbe, 0x0d, 0x86, 0xbd, 0xa9, 0x08, // IID12472 - 0xd5, 0x19, 0xc1, 0xbf, 0xa8, 0xaf, 0xbb, 0x63, 0x08, // IID12473 - 0x48, 0xc1, 0xbc, 0x51, 0x7a, 0xee, 0x93, 0x99, 0x10, // IID12474 - 0x48, 0xc1, 0xbc, 0x9a, 0xb0, 0x50, 0x6f, 0x72, 0x10, // IID12475 - 0x4a, 0xc1, 0xbc, 0x03, 0x17, 0x9d, 0x59, 0x92, 0x10, // IID12476 - 0x4b, 0xc1, 0xbc, 0x88, 0x71, 0x46, 0xe0, 0xca, 0x10, // IID12477 - 0x4b, 0xc1, 0xbc, 0x11, 0xdb, 0xb7, 0x9e, 0xd3, 0x10, // IID12478 - 0x49, 0xc1, 0xba, 0xe6, 0xd6, 0xbe, 0xd8, 0x10, // IID12479 - 0x49, 0xc1, 0xbb, 0xa5, 0xea, 0x98, 0xe8, 0x10, // IID12480 - 0x4b, 0xc1, 0xbc, 0xac, 0x95, 0xff, 0x4a, 0xd8, 0x10, // IID12481 - 0x4b, 0xc1, 0xbc, 0xb5, 0xed, 0xaf, 0xb6, 0x0d, 0x10, // IID12482 - 0x4b, 0xc1, 0xbc, 0xfe, 0x54, 0x8c, 0x45, 0x0c, 0x10, // IID12483 - 0xd5, 0x29, 0xc1, 0xbc, 0x87, 0x15, 0x04, 0xe0, 0xf0, 0x10, // IID12484 - 0xd5, 0x38, 0xc1, 0xbc, 0x48, 0x5c, 0x8e, 0x21, 0x17, 0x10, // IID12485 - 0xd5, 0x38, 0xc1, 0xbc, 0x11, 0x1b, 0x39, 0x5b, 0x18, 0x10, // IID12486 - 0xd5, 0x18, 0xc1, 0xba, 0x3d, 0x12, 0xe9, 0x21, 0x10, // IID12487 - 0xd5, 0x38, 0xc1, 0xbc, 0xa3, 0x9d, 0xc7, 0xfa, 0x21, 0x10, // IID12488 - 0xd5, 0x18, 0xc1, 0xbc, 0x24, 0xc7, 0x44, 0xe4, 0xd2, 0x10, // IID12489 - 0xd5, 0x38, 0xc1, 0xbc, 0x35, 0x52, 0x00, 0x79, 0xee, 0x10, // IID12490 - 0xd5, 0x38, 0xc1, 0xbc, 0x3e, 0x9f, 0x11, 0xa8, 0xae, 0x10, // IID12491 - 0xd5, 0x3a, 0xc1, 0xbc, 0x47, 0xae, 0xed, 0x0b, 0xf3, 0x10, // IID12492 - 0xd5, 0x3b, 0xc1, 0xbc, 0xc8, 0x17, 0x63, 0xcc, 0x06, 0x10, // IID12493 - 0xd5, 0x3b, 0xc1, 0xbc, 0x11, 0x69, 0x51, 0xb3, 0x36, 0x10, // IID12494 - 0xd5, 0x3b, 0xc1, 0xbc, 0x5a, 0x30, 0xfe, 0x63, 0xc1, 0x10, // IID12495 - 0xd5, 0x3b, 0xc1, 0xbc, 0x63, 0x7d, 0xf1, 0x0f, 0x8c, 0x10, // IID12496 - 0xd5, 0x3b, 0xc1, 0xbc, 0xac, 0x1b, 0x57, 0x2b, 0x10, 0x10, // IID12497 - 0xd5, 0x19, 0xc1, 0xbd, 0xea, 0x0b, 0xbd, 0xe6, 0x10, // IID12498 - 0xd5, 0x3b, 0xc1, 0xbc, 0xbe, 0x9e, 0x9b, 0xc3, 0xf9, 0x10, // IID12499 - 0xd5, 0x19, 0xc1, 0xbc, 0x4f, 0x66, 0x85, 0xc4, 0x83, 0x10, // IID12500 - 0x48, 0xd1, 0xa4, 0x91, 0x60, 0xec, 0x13, 0x6b, // IID12501 - 0x48, 0xd1, 0xa4, 0xda, 0x32, 0x9a, 0x80, 0xa6, // IID12502 - 0x4a, 0xd1, 0xa4, 0x83, 0x46, 0x8e, 0x01, 0x2b, // IID12503 - 0x4b, 0xd1, 0xa4, 0x08, 0xd7, 0xab, 0x3b, 0xe4, // IID12504 - 0x49, 0xd1, 0xa1, 0x09, 0x6e, 0xcf, 0xe7, // IID12505 - 0x4b, 0xd1, 0xa4, 0x9a, 0x70, 0xc2, 0x65, 0xfe, // IID12506 - 0x4b, 0xd1, 0xa4, 0x23, 0x13, 0x69, 0x51, 0x88, // IID12507 - 0x4b, 0xd1, 0xa4, 0x2c, 0x63, 0xcb, 0x56, 0x7d, // IID12508 - 0x4b, 0xd1, 0xa4, 0xb5, 0x68, 0x43, 0xf5, 0x4a, // IID12509 - 0x4b, 0xd1, 0xa4, 0xfe, 0x2a, 0xd5, 0xb4, 0xa2, // IID12510 - 0x49, 0xd1, 0xa7, 0x12, 0xda, 0xb5, 0x63, // IID12511 - 0xd5, 0x38, 0xd1, 0xa4, 0xc8, 0x79, 0x53, 0xe7, 0x08, // IID12512 - 0xd5, 0x18, 0xd1, 0xa1, 0xd3, 0x50, 0xda, 0x9c, // IID12513 - 0xd5, 0x38, 0xd1, 0xa4, 0x1a, 0x31, 0x94, 0x7f, 0xbd, // IID12514 - 0xd5, 0x18, 0xd1, 0xa3, 0xce, 0x40, 0x5d, 0xb0, // IID12515 - 0xd5, 0x38, 0xd1, 0xa4, 0xac, 0x73, 0x26, 0xe6, 0x90, // IID12516 - 0xd5, 0x38, 0xd1, 0xa4, 0xb5, 0x24, 0x6d, 0x81, 0x0f, // IID12517 - 0xd5, 0x38, 0xd1, 0xa4, 0x7e, 0xf3, 0x40, 0xd8, 0x5e, // IID12518 - 0xd5, 0x3a, 0xd1, 0xa4, 0xc7, 0x0a, 0x62, 0xb7, 0x01, // IID12519 - 0xd5, 0x3b, 0xd1, 0xa4, 0xc8, 0x02, 0x61, 0xa5, 0x67, // IID12520 - 0xd5, 0x3b, 0xd1, 0xa4, 0xd1, 0xf2, 0xc2, 0x9a, 0x4b, // IID12521 - 0xd5, 0x19, 0xd1, 0xa2, 0x20, 0x26, 0x4c, 0x5c, // IID12522 - 0xd5, 0x3b, 0xd1, 0xa4, 0xe3, 0xe3, 0xbb, 0x05, 0xc5, // IID12523 - 0xd5, 0x3b, 0xd1, 0xa4, 0xac, 0xdb, 0xa9, 0x75, 0x1e, // IID12524 - 0xd5, 0x3b, 0xd1, 0xa4, 0x75, 0xa9, 0x1a, 0x59, 0x4f, // IID12525 - 0xd5, 0x19, 0xd1, 0xa6, 0x1e, 0x74, 0xd8, 0x8d, // IID12526 - 0xd5, 0x19, 0xd1, 0xa7, 0xb8, 0xa7, 0xf3, 0x56, // IID12527 - 0x48, 0xc1, 0xa4, 0x11, 0x91, 0x57, 0x90, 0xdf, 0x02, // IID12528 - 0x48, 0xc1, 0xa2, 0x42, 0x71, 0x9b, 0x24, 0x02, // IID12529 - 0x4a, 0xc1, 0xa4, 0x43, 0xc4, 0xf9, 0x44, 0x9a, 0x02, // IID12530 - 0x4b, 0xc1, 0xa4, 0x08, 0xa7, 0x23, 0xc5, 0x2d, 0x02, // IID12531 - 0x4b, 0xc1, 0xa4, 0x51, 0x26, 0xe1, 0xd9, 0x51, 0x02, // IID12532 - 0x49, 0xc1, 0xa2, 0x27, 0x6f, 0xa9, 0x72, 0x02, // IID12533 - 0x4b, 0xc1, 0xa4, 0x23, 0x74, 0x89, 0xe9, 0x33, 0x02, // IID12534 - 0x49, 0xc1, 0xa4, 0x24, 0x0d, 0x9d, 0x37, 0x58, 0x02, // IID12535 - 0x49, 0xc1, 0xa5, 0xc4, 0x47, 0x26, 0xb9, 0x02, // IID12536 - 0x4b, 0xc1, 0xa4, 0xbe, 0x30, 0x67, 0x3e, 0x38, 0x02, // IID12537 - 0xd5, 0x29, 0xc1, 0xa4, 0xc7, 0xf7, 0x2e, 0x5d, 0x59, 0x02, // IID12538 - 0xd5, 0x38, 0xc1, 0xa4, 0x48, 0xb6, 0xd7, 0x43, 0x26, 0x02, // IID12539 - 0xd5, 0x38, 0xc1, 0xa4, 0x91, 0xe3, 0x96, 0x49, 0x91, 0x02, // IID12540 - 0xd5, 0x38, 0xc1, 0xa4, 0xda, 0xe9, 0x8c, 0xcc, 0x04, 0x02, // IID12541 - 0xd5, 0x38, 0xc1, 0xa4, 0x63, 0x54, 0x5b, 0x15, 0xce, 0x02, // IID12542 - 0xd5, 0x38, 0xc1, 0xa4, 0x6c, 0x0e, 0xb7, 0x93, 0xdd, 0x02, // IID12543 - 0xd5, 0x18, 0xc1, 0xa5, 0xc5, 0x02, 0xde, 0xe3, 0x02, // IID12544 - 0xd5, 0x38, 0xc1, 0xa4, 0xfe, 0x40, 0x05, 0x84, 0xce, 0x02, // IID12545 - 0xd5, 0x18, 0xc1, 0xa7, 0xbb, 0x08, 0x08, 0xd4, 0x02, // IID12546 - 0xd5, 0x3b, 0xc1, 0xa4, 0x08, 0x5b, 0x91, 0xa5, 0xc7, 0x02, // IID12547 - 0xd5, 0x3b, 0xc1, 0xa4, 0x91, 0x69, 0x5b, 0xa1, 0x5e, 0x02, // IID12548 - 0xd5, 0x3b, 0xc1, 0xa4, 0x1a, 0x25, 0x8d, 0xb3, 0x1b, 0x02, // IID12549 - 0xd5, 0x3b, 0xc1, 0xa4, 0xe3, 0x59, 0x41, 0x91, 0x7b, 0x02, // IID12550 - 0xd5, 0x19, 0xc1, 0xa4, 0x24, 0x4a, 0x89, 0x0c, 0xf1, 0x02, // IID12551 - 0xd5, 0x19, 0xc1, 0xa5, 0xdd, 0xd4, 0x6c, 0x0f, 0x02, // IID12552 - 0xd5, 0x3b, 0xc1, 0xa4, 0x3e, 0xa6, 0x49, 0xe6, 0x25, 0x02, // IID12553 - 0xd5, 0x19, 0xc1, 0xa4, 0x8f, 0xe5, 0xfb, 0x86, 0xca, 0x02, // IID12554 - 0x48, 0xc1, 0xa4, 0x91, 0x67, 0x0e, 0xd7, 0xe5, 0x04, // IID12555 - 0x48, 0xc1, 0xa4, 0x1a, 0x0d, 0xa4, 0xda, 0x51, 0x04, // IID12556 - 0x48, 0xc1, 0xa3, 0xee, 0x24, 0x01, 0x83, 0x04, // IID12557 - 0x4b, 0xc1, 0xa4, 0x88, 0x31, 0x2b, 0x8b, 0x8c, 0x04, // IID12558 - 0x4b, 0xc1, 0xa4, 0x11, 0x30, 0x6f, 0x26, 0x75, 0x04, // IID12559 - 0x4b, 0xc1, 0xa4, 0x5a, 0x69, 0x03, 0x18, 0x0f, 0x04, // IID12560 - 0x49, 0xc1, 0xa3, 0xf1, 0xe7, 0x72, 0x03, 0x04, // IID12561 - 0x49, 0xc1, 0xa4, 0x24, 0xef, 0xc9, 0xe3, 0xea, 0x04, // IID12562 - 0x4b, 0xc1, 0xa4, 0x75, 0xce, 0xef, 0x4c, 0x68, 0x04, // IID12563 - 0x4b, 0xc1, 0xa4, 0x3e, 0x84, 0xdf, 0xed, 0xa1, 0x04, // IID12564 - 0x49, 0xc1, 0xa7, 0xe0, 0xa9, 0xb8, 0xb4, 0x04, // IID12565 - 0xd5, 0x38, 0xc1, 0xa4, 0xc8, 0xf2, 0x00, 0xc2, 0x44, 0x04, // IID12566 - 0xd5, 0x38, 0xc1, 0xa4, 0x11, 0xf3, 0x2f, 0x14, 0xe2, 0x04, // IID12567 - 0xd5, 0x38, 0xc1, 0xa4, 0x1a, 0x73, 0x5b, 0xd2, 0xfe, 0x04, // IID12568 - 0xd5, 0x38, 0xc1, 0xa4, 0xa3, 0xe6, 0xea, 0xf3, 0x10, 0x04, // IID12569 - 0xd5, 0x38, 0xc1, 0xa4, 0x6c, 0x4d, 0x39, 0xb6, 0x4d, 0x04, // IID12570 - 0xd5, 0x18, 0xc1, 0xa5, 0x8e, 0x7c, 0xbb, 0x2c, 0x04, // IID12571 - 0xd5, 0x38, 0xc1, 0xa4, 0xfe, 0x8d, 0x34, 0xc9, 0x1a, 0x04, // IID12572 - 0xd5, 0x3a, 0xc1, 0xa4, 0x07, 0xcc, 0x1c, 0xf8, 0xe3, 0x04, // IID12573 - 0xd5, 0x19, 0xc1, 0xa0, 0xc3, 0x50, 0xdc, 0x7c, 0x04, // IID12574 - 0xd5, 0x3b, 0xc1, 0xa4, 0x11, 0x78, 0xc9, 0x41, 0x65, 0x04, // IID12575 - 0xd5, 0x3b, 0xc1, 0xa4, 0x9a, 0x94, 0x96, 0xc4, 0xeb, 0x04, // IID12576 - 0xd5, 0x3b, 0xc1, 0xa4, 0x63, 0xb7, 0xad, 0x05, 0xd6, 0x04, // IID12577 - 0xd5, 0x19, 0xc1, 0xa4, 0x24, 0x33, 0x7a, 0x54, 0xd4, 0x04, // IID12578 - 0xd5, 0x3b, 0xc1, 0xa4, 0x75, 0xb3, 0x75, 0x54, 0x13, 0x04, // IID12579 - 0xd5, 0x3b, 0xc1, 0xa4, 0x7e, 0x5a, 0xdb, 0x07, 0x33, 0x04, // IID12580 - 0xd5, 0x19, 0xc1, 0xa4, 0xcf, 0x10, 0x05, 0x54, 0xd3, 0x04, // IID12581 - 0x48, 0xc1, 0xa4, 0xd1, 0x7a, 0xa8, 0x69, 0x3f, 0x08, // IID12582 - 0x48, 0xc1, 0xa4, 0x9a, 0x89, 0x49, 0x8b, 0x70, 0x08, // IID12583 - 0x48, 0xc1, 0xa3, 0x32, 0xfd, 0xe9, 0x12, 0x08, // IID12584 - 0x4b, 0xc1, 0xa4, 0x88, 0xdf, 0x96, 0x44, 0x99, 0x08, // IID12585 - 0x4b, 0xc1, 0xa4, 0xd1, 0xbd, 0x62, 0xa1, 0xeb, 0x08, // IID12586 - 0x4b, 0xc1, 0xa4, 0xda, 0xbb, 0xd0, 0x74, 0x62, 0x08, // IID12587 - 0x4b, 0xc1, 0xa4, 0x63, 0x7d, 0xdb, 0x57, 0xe0, 0x08, // IID12588 - 0x4b, 0xc1, 0xa4, 0x2c, 0xcc, 0xc4, 0x40, 0xd0, 0x08, // IID12589 - 0x4b, 0xc1, 0xa4, 0x35, 0xb0, 0xb7, 0x27, 0xce, 0x08, // IID12590 - 0x49, 0xc1, 0xa6, 0x7e, 0x52, 0x38, 0x5c, 0x08, // IID12591 - 0x49, 0xc1, 0xa7, 0x51, 0x58, 0xf8, 0x56, 0x08, // IID12592 - 0xd5, 0x38, 0xc1, 0xa4, 0x48, 0x4c, 0xf4, 0x64, 0xe9, 0x08, // IID12593 - 0xd5, 0x18, 0xc1, 0xa1, 0x39, 0x64, 0xde, 0x05, 0x08, // IID12594 - 0xd5, 0x38, 0xc1, 0xa4, 0x9a, 0x51, 0x68, 0x45, 0xe9, 0x08, // IID12595 - 0xd5, 0x38, 0xc1, 0xa4, 0x63, 0x2b, 0x16, 0xd7, 0x03, 0x08, // IID12596 - 0xd5, 0x18, 0xc1, 0xa4, 0x24, 0x30, 0x3f, 0x1a, 0x78, 0x08, // IID12597 - 0xd5, 0x38, 0xc1, 0xa4, 0xb5, 0xba, 0xe2, 0x8b, 0xea, 0x08, // IID12598 - 0xd5, 0x18, 0xc1, 0xa6, 0x1e, 0x58, 0xd7, 0xdd, 0x08, // IID12599 - 0xd5, 0x18, 0xc1, 0xa7, 0x30, 0x4c, 0x18, 0xf8, 0x08, // IID12600 - 0xd5, 0x3b, 0xc1, 0xa4, 0xc8, 0xd6, 0x84, 0xcc, 0x85, 0x08, // IID12601 - 0xd5, 0x3b, 0xc1, 0xa4, 0x51, 0x8e, 0x3f, 0x42, 0x6b, 0x08, // IID12602 - 0xd5, 0x19, 0xc1, 0xa2, 0xee, 0x23, 0x6b, 0x3e, 0x08, // IID12603 - 0xd5, 0x3b, 0xc1, 0xa4, 0xa3, 0xe1, 0x36, 0x9a, 0xe4, 0x08, // IID12604 - 0xd5, 0x19, 0xc1, 0xa4, 0x24, 0x87, 0x9f, 0xfe, 0x74, 0x08, // IID12605 - 0xd5, 0x3b, 0xc1, 0xa4, 0x35, 0xd0, 0x62, 0xc0, 0x3d, 0x08, // IID12606 - 0xd5, 0x3b, 0xc1, 0xa4, 0x7e, 0xe5, 0x1e, 0xaa, 0x99, 0x08, // IID12607 - 0xd5, 0x19, 0xc1, 0xa4, 0x8f, 0x46, 0xe8, 0xed, 0xb0, 0x08, // IID12608 - 0x48, 0xc1, 0xa4, 0x91, 0x86, 0x00, 0x9c, 0x73, 0x10, // IID12609 - 0x48, 0xc1, 0xa4, 0x9a, 0x59, 0x41, 0x8f, 0x34, 0x10, // IID12610 - 0x48, 0xc1, 0xa3, 0x64, 0xe6, 0xcd, 0x0e, 0x10, // IID12611 - 0x4b, 0xc1, 0xa4, 0x08, 0x16, 0x66, 0x2c, 0x6d, 0x10, // IID12612 - 0x49, 0xc1, 0xa1, 0xaa, 0x1f, 0x0a, 0x6e, 0x10, // IID12613 - 0x49, 0xc1, 0xa2, 0xfa, 0xc9, 0x17, 0x95, 0x10, // IID12614 - 0x4b, 0xc1, 0xa4, 0x63, 0x40, 0xec, 0xd3, 0xce, 0x10, // IID12615 - 0x4b, 0xc1, 0xa4, 0xac, 0x99, 0x21, 0xbd, 0x5d, 0x10, // IID12616 - 0x4b, 0xc1, 0xa4, 0xb5, 0xae, 0xd8, 0x96, 0x79, 0x10, // IID12617 - 0x4b, 0xc1, 0xa4, 0xfe, 0xcc, 0xa7, 0x5e, 0x0d, 0x10, // IID12618 - 0xd5, 0x29, 0xc1, 0xa4, 0x87, 0x3f, 0xed, 0xc2, 0x9a, 0x10, // IID12619 - 0xd5, 0x38, 0xc1, 0xa4, 0xc8, 0x71, 0x0b, 0x8d, 0xec, 0x10, // IID12620 - 0xd5, 0x38, 0xc1, 0xa4, 0x51, 0x90, 0x5e, 0x22, 0x65, 0x10, // IID12621 - 0xd5, 0x38, 0xc1, 0xa4, 0x1a, 0x7b, 0x00, 0x09, 0x1e, 0x10, // IID12622 - 0xd5, 0x38, 0xc1, 0xa4, 0xe3, 0x06, 0x8e, 0x44, 0x58, 0x10, // IID12623 - 0xd5, 0x38, 0xc1, 0xa4, 0xec, 0xfa, 0x1e, 0xc3, 0x4b, 0x10, // IID12624 - 0xd5, 0x38, 0xc1, 0xa4, 0xf5, 0x50, 0x60, 0xc7, 0xb5, 0x10, // IID12625 - 0xd5, 0x38, 0xc1, 0xa4, 0xbe, 0x41, 0x9c, 0x61, 0x29, 0x10, // IID12626 - 0xd5, 0x3a, 0xc1, 0xa4, 0x47, 0x27, 0xad, 0x7d, 0x76, 0x10, // IID12627 - 0xd5, 0x19, 0xc1, 0xa0, 0xcb, 0x63, 0x10, 0xd4, 0x10, // IID12628 - 0xd5, 0x3b, 0xc1, 0xa4, 0x51, 0x5c, 0x15, 0xa0, 0x0d, 0x10, // IID12629 - 0xd5, 0x3b, 0xc1, 0xa4, 0x5a, 0xd0, 0x4b, 0x71, 0xca, 0x10, // IID12630 - 0xd5, 0x3b, 0xc1, 0xa4, 0x23, 0xe0, 0xd4, 0xd1, 0x0f, 0x10, // IID12631 - 0xd5, 0x3b, 0xc1, 0xa4, 0xec, 0x9d, 0xb5, 0x40, 0x2c, 0x10, // IID12632 - 0xd5, 0x19, 0xc1, 0xa5, 0xb6, 0x75, 0x6f, 0x57, 0x10, // IID12633 - 0xd5, 0x3b, 0xc1, 0xa4, 0x3e, 0x87, 0xb3, 0x1d, 0x98, 0x10, // IID12634 - 0xd5, 0x19, 0xc1, 0xa4, 0x4f, 0x4c, 0xf4, 0x44, 0x12, 0x10, // IID12635 - 0x48, 0x83, 0x9c, 0x91, 0x19, 0x87, 0xc3, 0x4d, 0x01, // IID12636 - 0x48, 0x83, 0x9c, 0x5a, 0x57, 0x0e, 0x20, 0x93, 0x01, // IID12637 - 0x4a, 0x83, 0x9c, 0xc3, 0x34, 0xf6, 0x57, 0xa9, 0x01, // IID12638 - 0x4b, 0x83, 0x9c, 0xc8, 0x9a, 0xd4, 0xc9, 0xb9, 0x01, // IID12639 - 0x4b, 0x83, 0x9c, 0x51, 0x6a, 0x02, 0xb6, 0xe8, 0x01, // IID12640 - 0x4b, 0x83, 0x9c, 0xda, 0x38, 0x1a, 0xfc, 0x72, 0x01, // IID12641 - 0x4b, 0x83, 0x9c, 0x23, 0x38, 0x9b, 0x24, 0xe8, 0x01, // IID12642 - 0x4b, 0x83, 0x9c, 0x6c, 0x9e, 0xdf, 0x35, 0x97, 0x01, // IID12643 - 0x4b, 0x83, 0x9c, 0xf5, 0x52, 0x1a, 0x6e, 0x13, 0x01, // IID12644 - 0x4b, 0x83, 0x9c, 0x7e, 0xad, 0x1c, 0xef, 0xcc, 0x01, // IID12645 - 0xd5, 0x29, 0x83, 0x9c, 0x87, 0xb1, 0xf6, 0x1d, 0xdd, 0x01, // IID12646 - 0xd5, 0x38, 0x83, 0x9c, 0xc8, 0x5b, 0xf8, 0x35, 0xbc, 0x01, // IID12647 - 0xd5, 0x38, 0x83, 0x9c, 0x91, 0xff, 0x1f, 0x54, 0x33, 0x01, // IID12648 - 0xd5, 0x38, 0x83, 0x9c, 0x5a, 0xb2, 0x8a, 0xfd, 0xb9, 0x01, // IID12649 - 0xd5, 0x38, 0x83, 0x9c, 0x63, 0x79, 0x7c, 0x9f, 0x39, 0x01, // IID12650 - 0xd5, 0x38, 0x83, 0x9c, 0x2c, 0x88, 0xe4, 0x7d, 0x8a, 0x01, // IID12651 - 0xd5, 0x18, 0x83, 0x9d, 0x99, 0x42, 0x11, 0xfa, 0x01, // IID12652 - 0xd5, 0x18, 0x83, 0x9e, 0x5d, 0xe5, 0x51, 0x8e, 0x01, // IID12653 - 0xd5, 0x3a, 0x83, 0x9c, 0x47, 0xf1, 0xde, 0x93, 0xb5, 0x01, // IID12654 - 0xd5, 0x3b, 0x83, 0x9c, 0x48, 0x3d, 0xdb, 0xa6, 0xb1, 0x01, // IID12655 - 0xd5, 0x3b, 0x83, 0x9c, 0xd1, 0x62, 0x91, 0xe8, 0xfb, 0x01, // IID12656 - 0xd5, 0x3b, 0x83, 0x9c, 0xda, 0xc0, 0x8f, 0x34, 0xa7, 0x01, // IID12657 - 0xd5, 0x3b, 0x83, 0x9c, 0x23, 0xda, 0x26, 0xfc, 0xc7, 0x01, // IID12658 - 0xd5, 0x3b, 0x83, 0x9c, 0xec, 0xec, 0x80, 0x56, 0xd4, 0x01, // IID12659 - 0xd5, 0x3b, 0x83, 0x9c, 0x35, 0xa7, 0x3e, 0x02, 0x9c, 0x01, // IID12660 - 0xd5, 0x3b, 0x83, 0x9c, 0x7e, 0x5a, 0x92, 0xd8, 0x03, 0x01, // IID12661 - 0xd5, 0x19, 0x83, 0x9c, 0x8f, 0xfd, 0x06, 0xbf, 0xb2, 0x01, // IID12662 - 0x48, 0x83, 0x9c, 0x11, 0x96, 0x3f, 0xf1, 0x18, 0x10, // IID12663 - 0x48, 0x83, 0x9a, 0xbe, 0x98, 0x0e, 0x5f, 0x10, // IID12664 - 0x4a, 0x83, 0x9c, 0x03, 0xa1, 0xfd, 0xed, 0x78, 0x10, // IID12665 - 0x4b, 0x83, 0x9c, 0x88, 0xd4, 0x8e, 0xdd, 0x1f, 0x10, // IID12666 - 0x4b, 0x83, 0x9c, 0x51, 0x40, 0x0d, 0xc0, 0x51, 0x10, // IID12667 - 0x4b, 0x83, 0x9c, 0x9a, 0xcb, 0xbe, 0x3e, 0xb5, 0x10, // IID12668 - 0x4b, 0x83, 0x9c, 0xe3, 0x5e, 0x7f, 0x7e, 0xd8, 0x10, // IID12669 - 0x4b, 0x83, 0x9c, 0xac, 0xf5, 0xc4, 0xb9, 0xe6, 0x10, // IID12670 - 0x4b, 0x83, 0x9c, 0xf5, 0x58, 0xbf, 0x65, 0x01, 0x10, // IID12671 - 0x4b, 0x83, 0x9c, 0xfe, 0x46, 0xb1, 0x5c, 0xc2, 0x10, // IID12672 - 0x49, 0x83, 0x9f, 0xdd, 0x80, 0xf2, 0x88, 0x10, // IID12673 - 0xd5, 0x38, 0x83, 0x9c, 0xc8, 0xd8, 0x04, 0x00, 0x28, 0x10, // IID12674 - 0xd5, 0x38, 0x83, 0x9c, 0x91, 0x27, 0xc1, 0x12, 0xfc, 0x10, // IID12675 - 0xd5, 0x18, 0x83, 0x9a, 0xd7, 0x85, 0xce, 0xf6, 0x10, // IID12676 - 0xd5, 0x38, 0x83, 0x9c, 0x23, 0x4d, 0x95, 0x91, 0x0a, 0x10, // IID12677 - 0xd5, 0x38, 0x83, 0x9c, 0xec, 0x9e, 0xfb, 0x6f, 0x0c, 0x10, // IID12678 - 0xd5, 0x38, 0x83, 0x9c, 0x35, 0x53, 0xb2, 0x06, 0xfc, 0x10, // IID12679 - 0xd5, 0x38, 0x83, 0x9c, 0xbe, 0xc9, 0xaf, 0xf7, 0x9f, 0x10, // IID12680 - 0xd5, 0x3a, 0x83, 0x9c, 0x87, 0xd9, 0x49, 0xb5, 0x7f, 0x10, // IID12681 - 0xd5, 0x3b, 0x83, 0x9c, 0x08, 0x64, 0x78, 0xdb, 0xab, 0x10, // IID12682 - 0xd5, 0x3b, 0x83, 0x9c, 0x91, 0x26, 0x18, 0xd8, 0x19, 0x10, // IID12683 - 0xd5, 0x3b, 0x83, 0x9c, 0xda, 0x6d, 0x0a, 0x0b, 0x61, 0x10, // IID12684 - 0xd5, 0x3b, 0x83, 0x9c, 0x63, 0x13, 0x86, 0xad, 0x4e, 0x10, // IID12685 - 0xd5, 0x3b, 0x83, 0x9c, 0xec, 0xa3, 0xb6, 0xa2, 0x4d, 0x10, // IID12686 - 0xd5, 0x3b, 0x83, 0x9c, 0xb5, 0x04, 0x8d, 0xeb, 0x5e, 0x10, // IID12687 - 0xd5, 0x19, 0x83, 0x9e, 0xd4, 0x45, 0x6f, 0x93, 0x10, // IID12688 - 0xd5, 0x19, 0x83, 0x9c, 0xcf, 0x0a, 0xc2, 0xa0, 0x86, 0x10, // IID12689 - 0x48, 0x81, 0x9c, 0x91, 0x2e, 0x83, 0x1a, 0x25, 0x00, 0x01, 0x00, 0x00, // IID12690 - 0x48, 0x81, 0x9c, 0x1a, 0x1d, 0xe7, 0x81, 0x11, 0x00, 0x01, 0x00, 0x00, // IID12691 - 0x4a, 0x81, 0x9c, 0xc3, 0xe6, 0x1e, 0x63, 0x80, 0x00, 0x01, 0x00, 0x00, // IID12692 - 0x4b, 0x81, 0x9c, 0x08, 0xd4, 0x89, 0x51, 0x1d, 0x00, 0x01, 0x00, 0x00, // IID12693 - 0x4b, 0x81, 0x9c, 0xd1, 0xff, 0xda, 0x47, 0x3e, 0x00, 0x01, 0x00, 0x00, // IID12694 - 0x4b, 0x81, 0x9c, 0xda, 0x7b, 0x62, 0x19, 0xb2, 0x00, 0x01, 0x00, 0x00, // IID12695 - 0x4b, 0x81, 0x9c, 0xe3, 0xb9, 0x7b, 0xee, 0xdb, 0x00, 0x01, 0x00, 0x00, // IID12696 - 0x4b, 0x81, 0x9c, 0x2c, 0x19, 0x56, 0x78, 0x97, 0x00, 0x01, 0x00, 0x00, // IID12697 - 0x4b, 0x81, 0x9c, 0x35, 0xb3, 0xb9, 0x6a, 0x1e, 0x00, 0x01, 0x00, 0x00, // IID12698 - 0x49, 0x81, 0x9e, 0xae, 0x46, 0xb4, 0x12, 0x00, 0x01, 0x00, 0x00, // IID12699 - 0xd5, 0x29, 0x81, 0x9c, 0x47, 0x3c, 0x95, 0x9e, 0xf1, 0x00, 0x01, 0x00, 0x00, // IID12700 - 0xd5, 0x38, 0x81, 0x9c, 0xc8, 0xe9, 0x4c, 0x69, 0x1f, 0x00, 0x01, 0x00, 0x00, // IID12701 - 0xd5, 0x38, 0x81, 0x9c, 0x11, 0x24, 0x89, 0x52, 0x46, 0x00, 0x01, 0x00, 0x00, // IID12702 - 0xd5, 0x38, 0x81, 0x9c, 0x1a, 0x3a, 0x9e, 0xdd, 0x5a, 0x00, 0x01, 0x00, 0x00, // IID12703 - 0xd5, 0x18, 0x81, 0x9b, 0xbc, 0x85, 0xf2, 0x4d, 0x00, 0x01, 0x00, 0x00, // IID12704 - 0xd5, 0x38, 0x81, 0x9c, 0xec, 0x27, 0xda, 0x31, 0xe5, 0x00, 0x01, 0x00, 0x00, // IID12705 - 0xd5, 0x38, 0x81, 0x9c, 0xb5, 0x96, 0x52, 0xf5, 0x44, 0x00, 0x01, 0x00, 0x00, // IID12706 - 0xd5, 0x38, 0x81, 0x9c, 0x3e, 0x94, 0x89, 0x98, 0x37, 0x00, 0x01, 0x00, 0x00, // IID12707 - 0xd5, 0x3a, 0x81, 0x9c, 0x87, 0x8b, 0x6c, 0xf6, 0xff, 0x00, 0x01, 0x00, 0x00, // IID12708 - 0xd5, 0x3b, 0x81, 0x9c, 0x88, 0x89, 0x49, 0xa3, 0x08, 0x00, 0x01, 0x00, 0x00, // IID12709 - 0xd5, 0x3b, 0x81, 0x9c, 0x11, 0x6d, 0x54, 0x3b, 0x30, 0x00, 0x01, 0x00, 0x00, // IID12710 - 0xd5, 0x3b, 0x81, 0x9c, 0x9a, 0x78, 0x45, 0x6c, 0xfc, 0x00, 0x01, 0x00, 0x00, // IID12711 - 0xd5, 0x3b, 0x81, 0x9c, 0xe3, 0xb4, 0x8d, 0x7a, 0x6b, 0x00, 0x01, 0x00, 0x00, // IID12712 - 0xd5, 0x19, 0x81, 0x9c, 0x24, 0xa0, 0x2b, 0x38, 0x7c, 0x00, 0x01, 0x00, 0x00, // IID12713 - 0xd5, 0x3b, 0x81, 0x9c, 0x35, 0x08, 0x03, 0x40, 0xa0, 0x00, 0x01, 0x00, 0x00, // IID12714 - 0xd5, 0x3b, 0x81, 0x9c, 0x3e, 0xb3, 0xb0, 0xeb, 0x86, 0x00, 0x01, 0x00, 0x00, // IID12715 - 0xd5, 0x19, 0x81, 0x9c, 0x4f, 0xf6, 0x27, 0x1a, 0xeb, 0x00, 0x01, 0x00, 0x00, // IID12716 - 0x48, 0x81, 0x9c, 0x11, 0xf1, 0x3e, 0xd8, 0x9c, 0x00, 0x10, 0x00, 0x00, // IID12717 - 0x48, 0x81, 0x9c, 0x9a, 0xc3, 0xa4, 0xb8, 0xaa, 0x00, 0x10, 0x00, 0x00, // IID12718 - 0x4a, 0x81, 0x9c, 0x83, 0x31, 0xef, 0x64, 0x52, 0x00, 0x10, 0x00, 0x00, // IID12719 - 0x4b, 0x81, 0x9c, 0xc8, 0x62, 0xf3, 0x0c, 0xff, 0x00, 0x10, 0x00, 0x00, // IID12720 - 0x4b, 0x81, 0x9c, 0x11, 0x37, 0xf2, 0xe5, 0x08, 0x00, 0x10, 0x00, 0x00, // IID12721 - 0x4b, 0x81, 0x9c, 0x9a, 0x30, 0xbb, 0x0f, 0xed, 0x00, 0x10, 0x00, 0x00, // IID12722 - 0x4b, 0x81, 0x9c, 0xa3, 0xd3, 0x6c, 0x57, 0x7e, 0x00, 0x10, 0x00, 0x00, // IID12723 - 0x49, 0x81, 0x9c, 0x24, 0x8f, 0x8d, 0xb9, 0x31, 0x00, 0x10, 0x00, 0x00, // IID12724 - 0x4b, 0x81, 0x9c, 0xf5, 0x56, 0x3f, 0xe4, 0x21, 0x00, 0x10, 0x00, 0x00, // IID12725 - 0x49, 0x81, 0x9e, 0x03, 0xc3, 0xda, 0x74, 0x00, 0x10, 0x00, 0x00, // IID12726 - 0xd5, 0x29, 0x81, 0x9c, 0xc7, 0xc1, 0x37, 0xf8, 0x8c, 0x00, 0x10, 0x00, 0x00, // IID12727 - 0xd5, 0x38, 0x81, 0x9c, 0x88, 0x09, 0x76, 0xa0, 0x29, 0x00, 0x10, 0x00, 0x00, // IID12728 - 0xd5, 0x38, 0x81, 0x9c, 0x11, 0x57, 0x70, 0xe4, 0x7d, 0x00, 0x10, 0x00, 0x00, // IID12729 - 0xd5, 0x38, 0x81, 0x9c, 0x9a, 0xd8, 0xe9, 0xf3, 0xa6, 0x00, 0x10, 0x00, 0x00, // IID12730 - 0xd5, 0x38, 0x81, 0x9c, 0xa3, 0x9c, 0x61, 0xea, 0x6d, 0x00, 0x10, 0x00, 0x00, // IID12731 - 0xd5, 0x38, 0x81, 0x9c, 0x2c, 0x04, 0x28, 0x43, 0x61, 0x00, 0x10, 0x00, 0x00, // IID12732 - 0xd5, 0x38, 0x81, 0x9c, 0xf5, 0xeb, 0x10, 0xe7, 0x22, 0x00, 0x10, 0x00, 0x00, // IID12733 - 0xd5, 0x38, 0x81, 0x9c, 0x3e, 0xec, 0x3b, 0xd9, 0x57, 0x00, 0x10, 0x00, 0x00, // IID12734 - 0xd5, 0x18, 0x81, 0x9f, 0xf9, 0x98, 0x12, 0x01, 0x00, 0x10, 0x00, 0x00, // IID12735 - 0xd5, 0x3b, 0x81, 0x9c, 0x08, 0xcd, 0xfe, 0x0b, 0x59, 0x00, 0x10, 0x00, 0x00, // IID12736 - 0xd5, 0x3b, 0x81, 0x9c, 0x11, 0x48, 0x9f, 0x58, 0xbf, 0x00, 0x10, 0x00, 0x00, // IID12737 - 0xd5, 0x3b, 0x81, 0x9c, 0xda, 0xb4, 0xde, 0xff, 0x2c, 0x00, 0x10, 0x00, 0x00, // IID12738 - 0xd5, 0x3b, 0x81, 0x9c, 0x23, 0x4a, 0x22, 0xe6, 0x1e, 0x00, 0x10, 0x00, 0x00, // IID12739 - 0xd5, 0x3b, 0x81, 0x9c, 0x2c, 0x09, 0xc1, 0x61, 0x38, 0x00, 0x10, 0x00, 0x00, // IID12740 - 0xd5, 0x19, 0x81, 0x9d, 0x4d, 0xf9, 0xe5, 0x4a, 0x00, 0x10, 0x00, 0x00, // IID12741 - 0xd5, 0x19, 0x81, 0x9e, 0x7b, 0xe5, 0x9d, 0x34, 0x00, 0x10, 0x00, 0x00, // IID12742 - 0xd5, 0x19, 0x81, 0x9c, 0xcf, 0x25, 0x8e, 0x42, 0xe8, 0x00, 0x10, 0x00, 0x00, // IID12743 - 0x48, 0x81, 0x9c, 0x11, 0x03, 0xf2, 0x14, 0x9b, 0x00, 0x00, 0x01, 0x00, // IID12744 - 0x48, 0x81, 0x9a, 0x1a, 0x0a, 0xf5, 0xfc, 0x00, 0x00, 0x01, 0x00, // IID12745 - 0x4a, 0x81, 0x9c, 0x03, 0x4d, 0x4e, 0x65, 0xaa, 0x00, 0x00, 0x01, 0x00, // IID12746 - 0x49, 0x81, 0x98, 0x45, 0xb4, 0x8b, 0x20, 0x00, 0x00, 0x01, 0x00, // IID12747 - 0x4b, 0x81, 0x9c, 0x11, 0x99, 0x10, 0x27, 0x46, 0x00, 0x00, 0x01, 0x00, // IID12748 - 0x4b, 0x81, 0x9c, 0x9a, 0x1a, 0x02, 0xbc, 0xea, 0x00, 0x00, 0x01, 0x00, // IID12749 - 0x4b, 0x81, 0x9c, 0xe3, 0x48, 0xea, 0xdd, 0x6d, 0x00, 0x00, 0x01, 0x00, // IID12750 - 0x4b, 0x81, 0x9c, 0xac, 0xf4, 0x40, 0x58, 0x5e, 0x00, 0x00, 0x01, 0x00, // IID12751 - 0x4b, 0x81, 0x9c, 0x75, 0x0a, 0x09, 0x89, 0x78, 0x00, 0x00, 0x01, 0x00, // IID12752 - 0x4b, 0x81, 0x9c, 0xbe, 0x11, 0x19, 0xc4, 0xd1, 0x00, 0x00, 0x01, 0x00, // IID12753 - 0xd5, 0x29, 0x81, 0x9c, 0x07, 0x20, 0x0f, 0x76, 0x70, 0x00, 0x00, 0x01, 0x00, // IID12754 - 0xd5, 0x38, 0x81, 0x9c, 0x08, 0xb6, 0xda, 0x98, 0x03, 0x00, 0x00, 0x01, 0x00, // IID12755 - 0xd5, 0x38, 0x81, 0x9c, 0x51, 0xf0, 0xf6, 0xed, 0xb3, 0x00, 0x00, 0x01, 0x00, // IID12756 - 0xd5, 0x18, 0x81, 0x9a, 0xb9, 0x24, 0xd1, 0x4d, 0x00, 0x00, 0x01, 0x00, // IID12757 - 0xd5, 0x38, 0x81, 0x9c, 0x23, 0x5f, 0xaa, 0xef, 0xe5, 0x00, 0x00, 0x01, 0x00, // IID12758 - 0xd5, 0x38, 0x81, 0x9c, 0xac, 0x14, 0xf2, 0xc2, 0xb3, 0x00, 0x00, 0x01, 0x00, // IID12759 - 0xd5, 0x38, 0x81, 0x9c, 0x75, 0x10, 0x11, 0x6f, 0x28, 0x00, 0x00, 0x01, 0x00, // IID12760 - 0xd5, 0x38, 0x81, 0x9c, 0x3e, 0x6a, 0xcb, 0x81, 0xa1, 0x00, 0x00, 0x01, 0x00, // IID12761 - 0xd5, 0x3a, 0x81, 0x9c, 0x47, 0xcf, 0x89, 0x22, 0x1c, 0x00, 0x00, 0x01, 0x00, // IID12762 - 0xd5, 0x3b, 0x81, 0x9c, 0xc8, 0xcf, 0x65, 0x7a, 0x26, 0x00, 0x00, 0x01, 0x00, // IID12763 - 0xd5, 0x3b, 0x81, 0x9c, 0x11, 0xb8, 0xdf, 0x6c, 0x95, 0x00, 0x00, 0x01, 0x00, // IID12764 - 0xd5, 0x3b, 0x81, 0x9c, 0x5a, 0xce, 0x56, 0x22, 0x99, 0x00, 0x00, 0x01, 0x00, // IID12765 - 0xd5, 0x3b, 0x81, 0x9c, 0xa3, 0xc7, 0x3d, 0xa2, 0x7c, 0x00, 0x00, 0x01, 0x00, // IID12766 - 0xd5, 0x3b, 0x81, 0x9c, 0xec, 0x2a, 0x52, 0x56, 0xcf, 0x00, 0x00, 0x01, 0x00, // IID12767 - 0xd5, 0x19, 0x81, 0x9d, 0xcc, 0x3f, 0x8e, 0x39, 0x00, 0x00, 0x01, 0x00, // IID12768 - 0xd5, 0x3b, 0x81, 0x9c, 0xfe, 0xb3, 0x72, 0xf6, 0x66, 0x00, 0x00, 0x01, 0x00, // IID12769 - 0xd5, 0x19, 0x81, 0x9f, 0xad, 0x78, 0x84, 0xfa, 0x00, 0x00, 0x01, 0x00, // IID12770 - 0x48, 0x81, 0x9c, 0x51, 0x8c, 0x0e, 0xf0, 0x71, 0x00, 0x00, 0x10, 0x00, // IID12771 - 0x48, 0x81, 0x9c, 0x5a, 0xba, 0xf0, 0x17, 0x26, 0x00, 0x00, 0x10, 0x00, // IID12772 - 0x48, 0x81, 0x9b, 0x0a, 0x0a, 0x72, 0x67, 0x00, 0x00, 0x10, 0x00, // IID12773 - 0x4b, 0x81, 0x9c, 0x08, 0x4f, 0x7a, 0xdc, 0x18, 0x00, 0x00, 0x10, 0x00, // IID12774 - 0x49, 0x81, 0x99, 0x5c, 0x72, 0x8e, 0x12, 0x00, 0x00, 0x10, 0x00, // IID12775 - 0x4b, 0x81, 0x9c, 0x1a, 0xf1, 0xd8, 0xf3, 0x5d, 0x00, 0x00, 0x10, 0x00, // IID12776 - 0x4b, 0x81, 0x9c, 0x23, 0x27, 0xeb, 0xaf, 0xda, 0x00, 0x00, 0x10, 0x00, // IID12777 - 0x49, 0x81, 0x9c, 0x24, 0x05, 0x6f, 0x36, 0xcf, 0x00, 0x00, 0x10, 0x00, // IID12778 - 0x4b, 0x81, 0x9c, 0xb5, 0xe6, 0x0a, 0xa5, 0x2d, 0x00, 0x00, 0x10, 0x00, // IID12779 - 0x4b, 0x81, 0x9c, 0xfe, 0x1b, 0x8d, 0x09, 0xff, 0x00, 0x00, 0x10, 0x00, // IID12780 - 0xd5, 0x29, 0x81, 0x9c, 0x87, 0x2e, 0xa2, 0x94, 0xe4, 0x00, 0x00, 0x10, 0x00, // IID12781 - 0xd5, 0x38, 0x81, 0x9c, 0x88, 0x9e, 0xb1, 0x28, 0x7b, 0x00, 0x00, 0x10, 0x00, // IID12782 - 0xd5, 0x38, 0x81, 0x9c, 0x91, 0x6b, 0x4c, 0xe0, 0xb5, 0x00, 0x00, 0x10, 0x00, // IID12783 - 0xd5, 0x38, 0x81, 0x9c, 0x9a, 0xb2, 0xd5, 0xfc, 0xae, 0x00, 0x00, 0x10, 0x00, // IID12784 - 0xd5, 0x38, 0x81, 0x9c, 0xa3, 0x7f, 0xe5, 0x49, 0xe1, 0x00, 0x00, 0x10, 0x00, // IID12785 - 0xd5, 0x38, 0x81, 0x9c, 0x2c, 0xc4, 0x27, 0xd6, 0x8e, 0x00, 0x00, 0x10, 0x00, // IID12786 - 0xd5, 0x38, 0x81, 0x9c, 0xb5, 0xa4, 0x87, 0xeb, 0x23, 0x00, 0x00, 0x10, 0x00, // IID12787 - 0xd5, 0x18, 0x81, 0x9e, 0xfe, 0xd1, 0xbf, 0x2d, 0x00, 0x00, 0x10, 0x00, // IID12788 - 0xd5, 0x3a, 0x81, 0x9c, 0x47, 0x67, 0x4e, 0x3f, 0x5b, 0x00, 0x00, 0x10, 0x00, // IID12789 - 0xd5, 0x19, 0x81, 0x98, 0xb3, 0xd1, 0xf2, 0x0e, 0x00, 0x00, 0x10, 0x00, // IID12790 - 0xd5, 0x3b, 0x81, 0x9c, 0xd1, 0x15, 0xae, 0x9c, 0x04, 0x00, 0x00, 0x10, 0x00, // IID12791 - 0xd5, 0x3b, 0x81, 0x9c, 0x5a, 0xad, 0x5e, 0xb5, 0x7f, 0x00, 0x00, 0x10, 0x00, // IID12792 - 0xd5, 0x3b, 0x81, 0x9c, 0x63, 0x18, 0x6f, 0x44, 0x31, 0x00, 0x00, 0x10, 0x00, // IID12793 - 0xd5, 0x3b, 0x81, 0x9c, 0x2c, 0xaf, 0x44, 0x19, 0x6d, 0x00, 0x00, 0x10, 0x00, // IID12794 - 0xd5, 0x19, 0x81, 0x9d, 0x55, 0x7a, 0xcf, 0x99, 0x00, 0x00, 0x10, 0x00, // IID12795 - 0xd5, 0x3b, 0x81, 0x9c, 0x7e, 0xe0, 0x96, 0x6a, 0xb4, 0x00, 0x00, 0x10, 0x00, // IID12796 - 0xd5, 0x19, 0x81, 0x9c, 0x8f, 0xd4, 0x53, 0x28, 0x65, 0x00, 0x00, 0x10, 0x00, // IID12797 - 0x48, 0x81, 0x9c, 0x11, 0xa8, 0x45, 0xa6, 0xff, 0x00, 0x00, 0x00, 0x01, // IID12798 - 0x48, 0x81, 0x9c, 0x1a, 0x9c, 0x1b, 0x96, 0x58, 0x00, 0x00, 0x00, 0x01, // IID12799 - 0x4a, 0x81, 0x9c, 0x03, 0x5e, 0x46, 0x79, 0x90, 0x00, 0x00, 0x00, 0x01, // IID12800 - 0x4b, 0x81, 0x9c, 0x88, 0xd7, 0x47, 0xb4, 0xe4, 0x00, 0x00, 0x00, 0x01, // IID12801 - 0x4b, 0x81, 0x9c, 0x51, 0x9b, 0x3f, 0xe3, 0xb9, 0x00, 0x00, 0x00, 0x01, // IID12802 - 0x4b, 0x81, 0x9c, 0x1a, 0x26, 0x22, 0x06, 0xbb, 0x00, 0x00, 0x00, 0x01, // IID12803 - 0x4b, 0x81, 0x9c, 0xa3, 0x4f, 0x9c, 0xa7, 0x8d, 0x00, 0x00, 0x00, 0x01, // IID12804 - 0x4b, 0x81, 0x9c, 0x2c, 0x5c, 0x06, 0xb3, 0xb5, 0x00, 0x00, 0x00, 0x01, // IID12805 - 0x4b, 0x81, 0x9c, 0x75, 0x1a, 0x92, 0x80, 0x31, 0x00, 0x00, 0x00, 0x01, // IID12806 - 0x4b, 0x81, 0x9c, 0xfe, 0x11, 0x03, 0xf5, 0x11, 0x00, 0x00, 0x00, 0x01, // IID12807 - 0xd5, 0x29, 0x81, 0x9c, 0x87, 0x75, 0x4c, 0xbc, 0x88, 0x00, 0x00, 0x00, 0x01, // IID12808 - 0xd5, 0x18, 0x81, 0x98, 0xe4, 0x73, 0x9f, 0x38, 0x00, 0x00, 0x00, 0x01, // IID12809 - 0xd5, 0x38, 0x81, 0x9c, 0x51, 0xd4, 0x22, 0x9e, 0x66, 0x00, 0x00, 0x00, 0x01, // IID12810 - 0xd5, 0x38, 0x81, 0x9c, 0xda, 0x87, 0xc8, 0x1a, 0x3b, 0x00, 0x00, 0x00, 0x01, // IID12811 - 0xd5, 0x38, 0x81, 0x9c, 0xe3, 0x86, 0xb6, 0x09, 0xd0, 0x00, 0x00, 0x00, 0x01, // IID12812 - 0xd5, 0x38, 0x81, 0x9c, 0xec, 0xac, 0x2d, 0x57, 0x6e, 0x00, 0x00, 0x00, 0x01, // IID12813 - 0xd5, 0x38, 0x81, 0x9c, 0x35, 0x79, 0xe1, 0xb5, 0xca, 0x00, 0x00, 0x00, 0x01, // IID12814 - 0xd5, 0x38, 0x81, 0x9c, 0xbe, 0x9a, 0x92, 0x52, 0xeb, 0x00, 0x00, 0x00, 0x01, // IID12815 - 0xd5, 0x3a, 0x81, 0x9c, 0x07, 0x24, 0xcb, 0x53, 0x0a, 0x00, 0x00, 0x00, 0x01, // IID12816 - 0xd5, 0x3b, 0x81, 0x9c, 0xc8, 0x07, 0x80, 0xa8, 0xb2, 0x00, 0x00, 0x00, 0x01, // IID12817 - 0xd5, 0x3b, 0x81, 0x9c, 0xd1, 0xc7, 0xec, 0x60, 0x21, 0x00, 0x00, 0x00, 0x01, // IID12818 - 0xd5, 0x3b, 0x81, 0x9c, 0x5a, 0x7e, 0xf9, 0x23, 0x68, 0x00, 0x00, 0x00, 0x01, // IID12819 - 0xd5, 0x19, 0x81, 0x9b, 0x60, 0x14, 0xe2, 0xe4, 0x00, 0x00, 0x00, 0x01, // IID12820 - 0xd5, 0x3b, 0x81, 0x9c, 0xec, 0xd5, 0xa7, 0x09, 0x42, 0x00, 0x00, 0x00, 0x01, // IID12821 - 0xd5, 0x3b, 0x81, 0x9c, 0x75, 0x57, 0xda, 0x78, 0xc7, 0x00, 0x00, 0x00, 0x01, // IID12822 - 0xd5, 0x3b, 0x81, 0x9c, 0x7e, 0x4f, 0x04, 0xaa, 0x67, 0x00, 0x00, 0x00, 0x01, // IID12823 - 0xd5, 0x19, 0x81, 0x9c, 0x0f, 0x72, 0x6c, 0x28, 0x88, 0x00, 0x00, 0x00, 0x01, // IID12824 - 0x48, 0x81, 0x99, 0x77, 0x09, 0xd0, 0xa0, 0x00, 0x00, 0x00, 0x10, // IID12825 - 0x48, 0x81, 0x9c, 0x5a, 0x2a, 0xb1, 0xa9, 0x33, 0x00, 0x00, 0x00, 0x10, // IID12826 - 0x4a, 0x81, 0x9c, 0xc3, 0xf7, 0x3f, 0xf5, 0xbd, 0x00, 0x00, 0x00, 0x10, // IID12827 - 0x4b, 0x81, 0x9c, 0x48, 0x97, 0x6c, 0x2a, 0x9f, 0x00, 0x00, 0x00, 0x10, // IID12828 - 0x49, 0x81, 0x99, 0xc4, 0xed, 0x10, 0xfa, 0x00, 0x00, 0x00, 0x10, // IID12829 - 0x4b, 0x81, 0x9c, 0x1a, 0x47, 0x85, 0xff, 0xf2, 0x00, 0x00, 0x00, 0x10, // IID12830 - 0x4b, 0x81, 0x9c, 0xa3, 0xa3, 0x4c, 0x60, 0x6d, 0x00, 0x00, 0x00, 0x10, // IID12831 - 0x49, 0x81, 0x9c, 0x24, 0xaa, 0xeb, 0xb5, 0x0e, 0x00, 0x00, 0x00, 0x10, // IID12832 - 0x49, 0x81, 0x9d, 0xd9, 0x20, 0xe4, 0xa5, 0x00, 0x00, 0x00, 0x10, // IID12833 - 0x4b, 0x81, 0x9c, 0x7e, 0xb5, 0x3f, 0x3b, 0x9c, 0x00, 0x00, 0x00, 0x10, // IID12834 - 0xd5, 0x29, 0x81, 0x9c, 0x87, 0xb5, 0x83, 0xf8, 0xdc, 0x00, 0x00, 0x00, 0x10, // IID12835 - 0xd5, 0x38, 0x81, 0x9c, 0xc8, 0x67, 0x40, 0x77, 0x6b, 0x00, 0x00, 0x00, 0x10, // IID12836 - 0xd5, 0x38, 0x81, 0x9c, 0x11, 0x93, 0xf1, 0xfc, 0xcd, 0x00, 0x00, 0x00, 0x10, // IID12837 - 0xd5, 0x38, 0x81, 0x9c, 0x1a, 0x7d, 0xa7, 0xd7, 0x36, 0x00, 0x00, 0x00, 0x10, // IID12838 - 0xd5, 0x18, 0x81, 0x9b, 0x03, 0x8e, 0xf8, 0x82, 0x00, 0x00, 0x00, 0x10, // IID12839 - 0xd5, 0x38, 0x81, 0x9c, 0x6c, 0x46, 0xa8, 0x6d, 0x85, 0x00, 0x00, 0x00, 0x10, // IID12840 - 0xd5, 0x38, 0x81, 0x9c, 0x75, 0x26, 0x64, 0x57, 0x78, 0x00, 0x00, 0x00, 0x10, // IID12841 - 0xd5, 0x38, 0x81, 0x9c, 0xfe, 0x40, 0xef, 0x6e, 0x4d, 0x00, 0x00, 0x00, 0x10, // IID12842 - 0xd5, 0x18, 0x81, 0x9f, 0xc8, 0x55, 0xf6, 0x40, 0x00, 0x00, 0x00, 0x10, // IID12843 - 0xd5, 0x19, 0x81, 0x98, 0x2b, 0xcb, 0x41, 0x7f, 0x00, 0x00, 0x00, 0x10, // IID12844 - 0xd5, 0x3b, 0x81, 0x9c, 0x51, 0x0d, 0xc5, 0x39, 0x25, 0x00, 0x00, 0x00, 0x10, // IID12845 - 0xd5, 0x3b, 0x81, 0x9c, 0x1a, 0xe9, 0x70, 0x4a, 0x1a, 0x00, 0x00, 0x00, 0x10, // IID12846 - 0xd5, 0x3b, 0x81, 0x9c, 0xe3, 0xcd, 0xf2, 0x38, 0xf0, 0x00, 0x00, 0x00, 0x10, // IID12847 - 0xd5, 0x3b, 0x81, 0x9c, 0xac, 0x5e, 0x2d, 0xb7, 0x4d, 0x00, 0x00, 0x00, 0x10, // IID12848 - 0xd5, 0x19, 0x81, 0x9d, 0x34, 0xce, 0xa7, 0x65, 0x00, 0x00, 0x00, 0x10, // IID12849 - 0xd5, 0x19, 0x81, 0x9e, 0x90, 0xbc, 0x4e, 0x19, 0x00, 0x00, 0x00, 0x10, // IID12850 - 0xd5, 0x19, 0x81, 0x9c, 0xcf, 0xc3, 0xce, 0x0d, 0xf3, 0x00, 0x00, 0x00, 0x10, // IID12851 - 0x48, 0xd1, 0xac, 0x11, 0x70, 0x3e, 0xec, 0x65, // IID12852 - 0x48, 0xd1, 0xac, 0x9a, 0xdc, 0x82, 0xd4, 0x51, // IID12853 - 0x48, 0xd1, 0xab, 0x7f, 0xd1, 0x34, 0xd8, // IID12854 - 0x49, 0xd1, 0xa8, 0x0d, 0x66, 0x01, 0x68, // IID12855 - 0x4b, 0xd1, 0xac, 0xd1, 0xbe, 0x99, 0xd5, 0x47, // IID12856 - 0x4b, 0xd1, 0xac, 0xda, 0x97, 0x4d, 0xf2, 0x7e, // IID12857 - 0x4b, 0xd1, 0xac, 0x23, 0x68, 0xb7, 0xdd, 0x3e, // IID12858 - 0x4b, 0xd1, 0xac, 0x2c, 0xe8, 0xbb, 0xe0, 0xdb, // IID12859 - 0x49, 0xd1, 0xad, 0x24, 0xdd, 0x6b, 0x04, // IID12860 - 0x4b, 0xd1, 0xac, 0xbe, 0x09, 0xa9, 0xe6, 0x5e, // IID12861 - 0xd5, 0x29, 0xd1, 0xac, 0x07, 0x00, 0xd6, 0x0f, 0x5f, // IID12862 - 0xd5, 0x18, 0xd1, 0xa8, 0x95, 0x6f, 0xd3, 0x0d, // IID12863 - 0xd5, 0x38, 0xd1, 0xac, 0x51, 0xde, 0x07, 0x5b, 0x61, // IID12864 - 0xd5, 0x38, 0xd1, 0xac, 0xda, 0xb3, 0xde, 0x93, 0x29, // IID12865 - 0xd5, 0x38, 0xd1, 0xac, 0xa3, 0x4b, 0x28, 0x6f, 0x9d, // IID12866 - 0xd5, 0x38, 0xd1, 0xac, 0xac, 0x8d, 0xcc, 0xab, 0x1e, // IID12867 - 0xd5, 0x38, 0xd1, 0xac, 0xf5, 0xcc, 0x1d, 0xbc, 0xbf, // IID12868 - 0xd5, 0x38, 0xd1, 0xac, 0x3e, 0xaa, 0x3a, 0x4a, 0xc4, // IID12869 - 0xd5, 0x3a, 0xd1, 0xac, 0x87, 0x04, 0x7d, 0x90, 0x7f, // IID12870 - 0xd5, 0x3b, 0xd1, 0xac, 0x48, 0x22, 0x65, 0x71, 0x6c, // IID12871 - 0xd5, 0x3b, 0xd1, 0xac, 0x91, 0x0e, 0xc0, 0xa4, 0x59, // IID12872 - 0xd5, 0x3b, 0xd1, 0xac, 0xda, 0xf1, 0x23, 0x1d, 0xaf, // IID12873 - 0xd5, 0x19, 0xd1, 0xab, 0x79, 0xf5, 0x67, 0xdc, // IID12874 - 0xd5, 0x3b, 0xd1, 0xac, 0xac, 0xa6, 0x2b, 0x6c, 0x83, // IID12875 - 0xd5, 0x19, 0xd1, 0xad, 0x13, 0x4f, 0x3b, 0xba, // IID12876 - 0xd5, 0x3b, 0xd1, 0xac, 0x7e, 0xea, 0x4c, 0x6a, 0x44, // IID12877 - 0xd5, 0x19, 0xd1, 0xac, 0x4f, 0xfe, 0x7b, 0xf5, 0xf4, // IID12878 - 0x48, 0xc1, 0xac, 0xd1, 0x64, 0x43, 0x0c, 0x75, 0x02, // IID12879 - 0x48, 0xc1, 0xac, 0x9a, 0x02, 0xf2, 0x4a, 0x95, 0x02, // IID12880 - 0x4a, 0xc1, 0xac, 0x83, 0x3f, 0x94, 0x7f, 0xea, 0x02, // IID12881 - 0x4b, 0xc1, 0xac, 0xc8, 0x3c, 0x0f, 0x67, 0x2c, 0x02, // IID12882 - 0x4b, 0xc1, 0xac, 0x51, 0xde, 0xc9, 0xff, 0x5c, 0x02, // IID12883 - 0x49, 0xc1, 0xaa, 0x3c, 0xd7, 0x05, 0xe2, 0x02, // IID12884 - 0x4b, 0xc1, 0xac, 0xe3, 0x4d, 0x12, 0x54, 0x07, 0x02, // IID12885 - 0x49, 0xc1, 0xac, 0x24, 0x22, 0x5b, 0x86, 0x20, 0x02, // IID12886 - 0x4b, 0xc1, 0xac, 0xf5, 0x4b, 0x0f, 0x71, 0xbb, 0x02, // IID12887 - 0x4b, 0xc1, 0xac, 0xfe, 0xf9, 0x18, 0x3e, 0xe2, 0x02, // IID12888 - 0xd5, 0x29, 0xc1, 0xac, 0xc7, 0x33, 0xa7, 0xb7, 0x21, 0x02, // IID12889 - 0xd5, 0x38, 0xc1, 0xac, 0x48, 0x7f, 0xe8, 0xf3, 0x38, 0x02, // IID12890 - 0xd5, 0x18, 0xc1, 0xa9, 0x39, 0xe0, 0xc6, 0xcb, 0x02, // IID12891 - 0xd5, 0x38, 0xc1, 0xac, 0x1a, 0x86, 0xd6, 0x18, 0xdb, 0x02, // IID12892 - 0xd5, 0x38, 0xc1, 0xac, 0x23, 0xe4, 0xd2, 0xab, 0x7c, 0x02, // IID12893 - 0xd5, 0x38, 0xc1, 0xac, 0xec, 0x2d, 0xc8, 0x37, 0x52, 0x02, // IID12894 - 0xd5, 0x18, 0xc1, 0xad, 0x5c, 0xd2, 0xde, 0xb5, 0x02, // IID12895 - 0xd5, 0x38, 0xc1, 0xac, 0xfe, 0xfe, 0x8d, 0x0e, 0xee, 0x02, // IID12896 - 0xd5, 0x3a, 0xc1, 0xac, 0xc7, 0x31, 0x1f, 0x56, 0x32, 0x02, // IID12897 - 0xd5, 0x3b, 0xc1, 0xac, 0x48, 0x7a, 0xb0, 0xfe, 0xf5, 0x02, // IID12898 - 0xd5, 0x3b, 0xc1, 0xac, 0x91, 0xd0, 0x96, 0x04, 0x7a, 0x02, // IID12899 - 0xd5, 0x19, 0xc1, 0xaa, 0x4d, 0xb4, 0x31, 0xc0, 0x02, // IID12900 - 0xd5, 0x3b, 0xc1, 0xac, 0x63, 0xb5, 0x97, 0x5b, 0xe6, 0x02, // IID12901 - 0xd5, 0x19, 0xc1, 0xac, 0x24, 0x5c, 0x6d, 0x69, 0xfa, 0x02, // IID12902 - 0xd5, 0x3b, 0xc1, 0xac, 0x75, 0x2d, 0x8a, 0xec, 0xd3, 0x02, // IID12903 - 0xd5, 0x19, 0xc1, 0xae, 0xcd, 0x67, 0xba, 0xee, 0x02, // IID12904 - 0xd5, 0x19, 0xc1, 0xac, 0x8f, 0x99, 0x77, 0xd7, 0x01, 0x02, // IID12905 - 0x48, 0xc1, 0xa9, 0xa5, 0xb7, 0x48, 0x0f, 0x04, // IID12906 - 0x48, 0xc1, 0xac, 0x5a, 0xcf, 0x6b, 0x73, 0x65, 0x04, // IID12907 - 0x4a, 0xc1, 0xac, 0x83, 0x3d, 0xc9, 0xe2, 0x5e, 0x04, // IID12908 - 0x4b, 0xc1, 0xac, 0xc8, 0xa5, 0xb9, 0xeb, 0x96, 0x04, // IID12909 - 0x4b, 0xc1, 0xac, 0xd1, 0x27, 0x8e, 0xb3, 0x3e, 0x04, // IID12910 - 0x4b, 0xc1, 0xac, 0x5a, 0xd9, 0xcc, 0x1e, 0x8c, 0x04, // IID12911 - 0x4b, 0xc1, 0xac, 0x23, 0x0d, 0xad, 0x32, 0x92, 0x04, // IID12912 - 0x49, 0xc1, 0xac, 0x24, 0x31, 0x3d, 0xdf, 0x14, 0x04, // IID12913 - 0x4b, 0xc1, 0xac, 0xf5, 0x89, 0x16, 0x37, 0xf5, 0x04, // IID12914 - 0x4b, 0xc1, 0xac, 0x7e, 0x86, 0x38, 0x90, 0x4c, 0x04, // IID12915 - 0xd5, 0x29, 0xc1, 0xac, 0xc7, 0x7d, 0xeb, 0x89, 0xb3, 0x04, // IID12916 - 0xd5, 0x38, 0xc1, 0xac, 0x48, 0x5f, 0x17, 0xde, 0x69, 0x04, // IID12917 - 0xd5, 0x18, 0xc1, 0xa9, 0x0f, 0x8d, 0x57, 0x89, 0x04, // IID12918 - 0xd5, 0x38, 0xc1, 0xac, 0xda, 0x17, 0x89, 0x29, 0x72, 0x04, // IID12919 - 0xd5, 0x18, 0xc1, 0xab, 0xb7, 0x53, 0xc6, 0xb2, 0x04, // IID12920 - 0xd5, 0x38, 0xc1, 0xac, 0x6c, 0xe9, 0x17, 0x98, 0xd7, 0x04, // IID12921 - 0xd5, 0x38, 0xc1, 0xac, 0x75, 0x63, 0xf9, 0x65, 0x9f, 0x04, // IID12922 - 0xd5, 0x18, 0xc1, 0xae, 0x3e, 0xc1, 0xdd, 0xd2, 0x04, // IID12923 - 0xd5, 0x3a, 0xc1, 0xac, 0x87, 0xf8, 0xa2, 0xd5, 0xc4, 0x04, // IID12924 - 0xd5, 0x3b, 0xc1, 0xac, 0x48, 0x58, 0xbe, 0xa0, 0xaa, 0x04, // IID12925 - 0xd5, 0x3b, 0xc1, 0xac, 0x11, 0x73, 0xe7, 0xdf, 0x28, 0x04, // IID12926 - 0xd5, 0x19, 0xc1, 0xaa, 0xa6, 0x44, 0x8d, 0x68, 0x04, // IID12927 - 0xd5, 0x3b, 0xc1, 0xac, 0xe3, 0x05, 0xc0, 0xf4, 0xdb, 0x04, // IID12928 - 0xd5, 0x19, 0xc1, 0xac, 0x24, 0x9a, 0xcf, 0xb2, 0x86, 0x04, // IID12929 - 0xd5, 0x3b, 0xc1, 0xac, 0xb5, 0x8f, 0x50, 0x79, 0xa2, 0x04, // IID12930 - 0xd5, 0x19, 0xc1, 0xae, 0x8d, 0xd2, 0x9a, 0x59, 0x04, // IID12931 - 0xd5, 0x19, 0xc1, 0xac, 0x4f, 0xf0, 0x36, 0x4d, 0x2a, 0x04, // IID12932 - 0x48, 0xc1, 0xac, 0xd1, 0xf0, 0xb3, 0x08, 0x4a, 0x08, // IID12933 - 0x48, 0xc1, 0xac, 0x5a, 0x15, 0x46, 0xaa, 0x4b, 0x08, // IID12934 - 0x48, 0xc1, 0xab, 0x66, 0x2e, 0x5c, 0x0d, 0x08, // IID12935 - 0x4b, 0xc1, 0xac, 0xc8, 0x74, 0xd9, 0xdd, 0x46, 0x08, // IID12936 - 0x49, 0xc1, 0xa9, 0x7b, 0xfc, 0xb9, 0x23, 0x08, // IID12937 - 0x4b, 0xc1, 0xac, 0x5a, 0x8d, 0xe5, 0x59, 0x76, 0x08, // IID12938 - 0x4b, 0xc1, 0xac, 0xe3, 0xae, 0x1d, 0x4c, 0x59, 0x08, // IID12939 - 0x49, 0xc1, 0xac, 0x24, 0xa2, 0x5c, 0x17, 0x3f, 0x08, // IID12940 - 0x4b, 0xc1, 0xac, 0xb5, 0x68, 0xb9, 0x46, 0x37, 0x08, // IID12941 - 0x4b, 0xc1, 0xac, 0xbe, 0x9a, 0x80, 0x7d, 0xcc, 0x08, // IID12942 - 0x49, 0xc1, 0xaf, 0x76, 0x52, 0x48, 0x4c, 0x08, // IID12943 - 0xd5, 0x38, 0xc1, 0xac, 0x48, 0x08, 0x6b, 0xdd, 0xbd, 0x08, // IID12944 - 0xd5, 0x38, 0xc1, 0xac, 0x91, 0x69, 0xed, 0xac, 0xd9, 0x08, // IID12945 - 0xd5, 0x38, 0xc1, 0xac, 0x5a, 0x3d, 0xd4, 0x77, 0x1b, 0x08, // IID12946 - 0xd5, 0x18, 0xc1, 0xab, 0x66, 0x26, 0x4a, 0xd8, 0x08, // IID12947 - 0xd5, 0x38, 0xc1, 0xac, 0x2c, 0x05, 0x72, 0x34, 0x1b, 0x08, // IID12948 - 0xd5, 0x38, 0xc1, 0xac, 0x35, 0x00, 0xf1, 0xf7, 0x05, 0x08, // IID12949 - 0xd5, 0x38, 0xc1, 0xac, 0xfe, 0xa0, 0xfa, 0x9d, 0x21, 0x08, // IID12950 - 0xd5, 0x3a, 0xc1, 0xac, 0x47, 0xfa, 0xb6, 0xbf, 0xbe, 0x08, // IID12951 - 0xd5, 0x3b, 0xc1, 0xac, 0x08, 0x0e, 0x67, 0x43, 0x24, 0x08, // IID12952 - 0xd5, 0x3b, 0xc1, 0xac, 0x51, 0x4e, 0x3d, 0x02, 0x5e, 0x08, // IID12953 - 0xd5, 0x19, 0xc1, 0xaa, 0xcb, 0xde, 0x43, 0x92, 0x08, // IID12954 - 0xd5, 0x19, 0xc1, 0xab, 0x4b, 0x9f, 0xe5, 0x73, 0x08, // IID12955 - 0xd5, 0x19, 0xc1, 0xac, 0x24, 0xee, 0x10, 0x20, 0xf3, 0x08, // IID12956 - 0xd5, 0x3b, 0xc1, 0xac, 0x35, 0x6a, 0xe9, 0x36, 0x16, 0x08, // IID12957 - 0xd5, 0x19, 0xc1, 0xae, 0x36, 0xe7, 0xa5, 0x34, 0x08, // IID12958 - 0xd5, 0x19, 0xc1, 0xac, 0x0f, 0x35, 0x03, 0x20, 0x3f, 0x08, // IID12959 - 0x48, 0xc1, 0xac, 0x11, 0x4c, 0x2b, 0xdb, 0x73, 0x10, // IID12960 - 0x48, 0xc1, 0xac, 0x5a, 0xca, 0xe2, 0x8c, 0xb1, 0x10, // IID12961 - 0x48, 0xc1, 0xab, 0x54, 0x3c, 0x72, 0xee, 0x10, // IID12962 - 0x49, 0xc1, 0xa8, 0x7a, 0xd4, 0x5d, 0x57, 0x10, // IID12963 - 0x4b, 0xc1, 0xac, 0x91, 0xff, 0xdf, 0x12, 0xb2, 0x10, // IID12964 - 0x4b, 0xc1, 0xac, 0x1a, 0x6b, 0x92, 0xce, 0xd7, 0x10, // IID12965 - 0x4b, 0xc1, 0xac, 0xe3, 0xf3, 0x33, 0x55, 0xd2, 0x10, // IID12966 - 0x4b, 0xc1, 0xac, 0xec, 0x53, 0xdf, 0x63, 0x01, 0x10, // IID12967 - 0x4b, 0xc1, 0xac, 0x75, 0xf6, 0x3f, 0xa6, 0x16, 0x10, // IID12968 - 0x4b, 0xc1, 0xac, 0xbe, 0x72, 0x0e, 0x4d, 0x52, 0x10, // IID12969 - 0x49, 0xc1, 0xaf, 0xa2, 0x90, 0xb3, 0x6c, 0x10, // IID12970 - 0xd5, 0x38, 0xc1, 0xac, 0x88, 0x24, 0x6d, 0x11, 0x9b, 0x10, // IID12971 - 0xd5, 0x38, 0xc1, 0xac, 0xd1, 0xc4, 0xce, 0x4c, 0xe8, 0x10, // IID12972 - 0xd5, 0x38, 0xc1, 0xac, 0x1a, 0x0a, 0x2f, 0x07, 0x34, 0x10, // IID12973 - 0xd5, 0x38, 0xc1, 0xac, 0x23, 0x35, 0x64, 0x49, 0x0c, 0x10, // IID12974 - 0xd5, 0x38, 0xc1, 0xac, 0x2c, 0xe4, 0xcd, 0xe0, 0x19, 0x10, // IID12975 - 0xd5, 0x38, 0xc1, 0xac, 0x35, 0xff, 0x65, 0xe5, 0x20, 0x10, // IID12976 - 0xd5, 0x38, 0xc1, 0xac, 0xfe, 0x15, 0x81, 0xc6, 0x6c, 0x10, // IID12977 - 0xd5, 0x3a, 0xc1, 0xac, 0x07, 0x9c, 0x8e, 0x80, 0xf9, 0x10, // IID12978 - 0xd5, 0x3b, 0xc1, 0xac, 0x48, 0x23, 0xba, 0xba, 0xd9, 0x10, // IID12979 - 0xd5, 0x3b, 0xc1, 0xac, 0x51, 0x3d, 0x45, 0x5b, 0xd3, 0x10, // IID12980 - 0xd5, 0x3b, 0xc1, 0xac, 0x1a, 0x0f, 0xba, 0x00, 0x48, 0x10, // IID12981 - 0xd5, 0x3b, 0xc1, 0xac, 0x63, 0xa0, 0x4c, 0xe0, 0x8d, 0x10, // IID12982 - 0xd5, 0x3b, 0xc1, 0xac, 0x2c, 0xfe, 0x01, 0xcd, 0xdb, 0x10, // IID12983 - 0xd5, 0x3b, 0xc1, 0xac, 0x35, 0x52, 0x65, 0x6a, 0xc8, 0x10, // IID12984 - 0xd5, 0x3b, 0xc1, 0xac, 0x3e, 0x2b, 0x62, 0xb1, 0x74, 0x10, // IID12985 - 0xd5, 0x19, 0xc1, 0xac, 0x0f, 0x38, 0x54, 0xc5, 0x87, 0x10, // IID12986 - 0x48, 0x83, 0xac, 0x51, 0x48, 0xc8, 0x7b, 0xe2, 0x01, // IID12987 - 0x48, 0x83, 0xac, 0x9a, 0x1f, 0xff, 0xee, 0xaa, 0x01, // IID12988 - 0x4a, 0x83, 0xac, 0x83, 0x62, 0x7c, 0x29, 0x6d, 0x01, // IID12989 - 0x4b, 0x83, 0xac, 0x48, 0x21, 0xe5, 0x92, 0x6e, 0x01, // IID12990 - 0x4b, 0x83, 0xac, 0xd1, 0xf6, 0x28, 0x81, 0xb2, 0x01, // IID12991 - 0x49, 0x83, 0xaa, 0x63, 0x53, 0x19, 0x6b, 0x01, // IID12992 - 0x4b, 0x83, 0xac, 0x23, 0x91, 0x2e, 0x0e, 0x2c, 0x01, // IID12993 - 0x49, 0x83, 0xac, 0x24, 0xa9, 0x11, 0x65, 0xbf, 0x01, // IID12994 - 0x4b, 0x83, 0xac, 0xf5, 0xca, 0x3c, 0x60, 0xbe, 0x01, // IID12995 - 0x49, 0x83, 0xae, 0xff, 0xbb, 0x19, 0xc1, 0x01, // IID12996 - 0x49, 0x83, 0xaf, 0x1e, 0x58, 0xc9, 0x44, 0x01, // IID12997 - 0xd5, 0x38, 0x83, 0xac, 0x88, 0xd5, 0x74, 0xc3, 0xd3, 0x01, // IID12998 - 0xd5, 0x38, 0x83, 0xac, 0x51, 0x07, 0x20, 0x09, 0xf0, 0x01, // IID12999 - 0xd5, 0x38, 0x83, 0xac, 0x9a, 0xa0, 0x4c, 0x8b, 0xa9, 0x01, // IID13000 - 0xd5, 0x18, 0x83, 0xab, 0xe4, 0x23, 0x64, 0x4a, 0x01, // IID13001 - 0xd5, 0x18, 0x83, 0xac, 0x24, 0xfe, 0x1d, 0x1d, 0x14, 0x01, // IID13002 - 0xd5, 0x38, 0x83, 0xac, 0x75, 0x9e, 0xe1, 0x95, 0x61, 0x01, // IID13003 - 0xd5, 0x18, 0x83, 0xae, 0x81, 0x15, 0x6a, 0x52, 0x01, // IID13004 - 0xd5, 0x18, 0x83, 0xaf, 0x87, 0x75, 0x11, 0x71, 0x01, // IID13005 - 0xd5, 0x3b, 0x83, 0xac, 0xc8, 0x1a, 0x7b, 0x8a, 0x0a, 0x01, // IID13006 - 0xd5, 0x19, 0x83, 0xa9, 0xcc, 0x26, 0x6f, 0xa1, 0x01, // IID13007 - 0xd5, 0x3b, 0x83, 0xac, 0x5a, 0x11, 0xa6, 0x4e, 0x30, 0x01, // IID13008 - 0xd5, 0x19, 0x83, 0xab, 0x99, 0xc6, 0x97, 0x49, 0x01, // IID13009 - 0xd5, 0x3b, 0x83, 0xac, 0xec, 0x28, 0xbc, 0xfb, 0x34, 0x01, // IID13010 - 0xd5, 0x3b, 0x83, 0xac, 0x75, 0xb5, 0x37, 0x36, 0xf9, 0x01, // IID13011 - 0xd5, 0x19, 0x83, 0xae, 0x35, 0xd7, 0xe1, 0x9b, 0x01, // IID13012 - 0xd5, 0x19, 0x83, 0xac, 0xcf, 0xb3, 0x60, 0xdd, 0xb4, 0x01, // IID13013 - 0x48, 0x83, 0xac, 0x11, 0xa1, 0x3f, 0x1c, 0x85, 0x10, // IID13014 - 0x48, 0x83, 0xac, 0x1a, 0x63, 0x3d, 0x75, 0x6c, 0x10, // IID13015 - 0x4a, 0x83, 0xac, 0xc3, 0xca, 0x64, 0xd7, 0x61, 0x10, // IID13016 - 0x4b, 0x83, 0xac, 0x48, 0x88, 0x26, 0x17, 0x40, 0x10, // IID13017 - 0x4b, 0x83, 0xac, 0xd1, 0x24, 0xbc, 0x59, 0x19, 0x10, // IID13018 - 0x4b, 0x83, 0xac, 0x9a, 0x3e, 0x02, 0x4e, 0x7c, 0x10, // IID13019 - 0x4b, 0x83, 0xac, 0xe3, 0x7d, 0x0d, 0xb5, 0x6a, 0x10, // IID13020 - 0x4b, 0x83, 0xac, 0xac, 0xcf, 0xad, 0x70, 0x2f, 0x10, // IID13021 - 0x4b, 0x83, 0xac, 0xb5, 0xa0, 0xa4, 0x1f, 0x00, 0x10, // IID13022 - 0x4b, 0x83, 0xac, 0x3e, 0x63, 0x53, 0xea, 0x56, 0x10, // IID13023 - 0xd5, 0x29, 0x83, 0xac, 0x87, 0x9b, 0x3a, 0x84, 0x3b, 0x10, // IID13024 - 0xd5, 0x38, 0x83, 0xac, 0xc8, 0xb7, 0xff, 0x06, 0x80, 0x10, // IID13025 - 0xd5, 0x38, 0x83, 0xac, 0x11, 0x0f, 0x40, 0xfb, 0x19, 0x10, // IID13026 - 0xd5, 0x38, 0x83, 0xac, 0xda, 0x88, 0x5b, 0x64, 0xb1, 0x10, // IID13027 - 0xd5, 0x38, 0x83, 0xac, 0x23, 0xeb, 0xe9, 0x78, 0x52, 0x10, // IID13028 - 0xd5, 0x38, 0x83, 0xac, 0xec, 0x04, 0xf0, 0xd5, 0x75, 0x10, // IID13029 - 0xd5, 0x38, 0x83, 0xac, 0x35, 0x80, 0xe1, 0x2c, 0xb7, 0x10, // IID13030 - 0xd5, 0x38, 0x83, 0xac, 0xbe, 0x6d, 0x32, 0xcc, 0xeb, 0x10, // IID13031 - 0xd5, 0x3a, 0x83, 0xac, 0x87, 0x66, 0x77, 0x9b, 0x59, 0x10, // IID13032 - 0xd5, 0x19, 0x83, 0xa8, 0x60, 0x27, 0xcb, 0x78, 0x10, // IID13033 - 0xd5, 0x3b, 0x83, 0xac, 0xd1, 0xa2, 0x2c, 0x73, 0x85, 0x10, // IID13034 - 0xd5, 0x19, 0x83, 0xaa, 0xa1, 0x11, 0x60, 0xb7, 0x10, // IID13035 - 0xd5, 0x3b, 0x83, 0xac, 0xa3, 0xc0, 0x21, 0x6b, 0x87, 0x10, // IID13036 - 0xd5, 0x3b, 0x83, 0xac, 0x2c, 0xab, 0xbc, 0xc2, 0x8e, 0x10, // IID13037 - 0xd5, 0x3b, 0x83, 0xac, 0x75, 0x61, 0xcb, 0x35, 0xb1, 0x10, // IID13038 - 0xd5, 0x19, 0x83, 0xae, 0x3c, 0xc8, 0x8d, 0xa6, 0x10, // IID13039 - 0xd5, 0x19, 0x83, 0xaf, 0x78, 0x92, 0xe0, 0x45, 0x10, // IID13040 - 0x48, 0x81, 0xac, 0x51, 0x91, 0x33, 0xd8, 0x52, 0x00, 0x01, 0x00, 0x00, // IID13041 - 0x48, 0x81, 0xac, 0xda, 0xc8, 0xf2, 0xe5, 0x72, 0x00, 0x01, 0x00, 0x00, // IID13042 - 0x4a, 0x81, 0xac, 0x83, 0x22, 0x32, 0x97, 0x11, 0x00, 0x01, 0x00, 0x00, // IID13043 - 0x49, 0x81, 0xa8, 0x6b, 0xec, 0x3e, 0xe7, 0x00, 0x01, 0x00, 0x00, // IID13044 - 0x4b, 0x81, 0xac, 0x51, 0x1a, 0x81, 0xab, 0x38, 0x00, 0x01, 0x00, 0x00, // IID13045 - 0x4b, 0x81, 0xac, 0xda, 0x38, 0x87, 0x7e, 0xcb, 0x00, 0x01, 0x00, 0x00, // IID13046 - 0x4b, 0x81, 0xac, 0xa3, 0x75, 0x17, 0xa2, 0xd8, 0x00, 0x01, 0x00, 0x00, // IID13047 - 0x49, 0x81, 0xac, 0x24, 0xb9, 0x4a, 0x40, 0x9f, 0x00, 0x01, 0x00, 0x00, // IID13048 - 0x4b, 0x81, 0xac, 0x75, 0xbb, 0xf2, 0x48, 0x88, 0x00, 0x01, 0x00, 0x00, // IID13049 - 0x4b, 0x81, 0xac, 0x7e, 0x24, 0x95, 0xdf, 0xc5, 0x00, 0x01, 0x00, 0x00, // IID13050 - 0xd5, 0x29, 0x81, 0xac, 0xc7, 0xfa, 0x3a, 0x9d, 0xbf, 0x00, 0x01, 0x00, 0x00, // IID13051 - 0xd5, 0x38, 0x81, 0xac, 0x08, 0x86, 0xcd, 0x7c, 0x14, 0x00, 0x01, 0x00, 0x00, // IID13052 - 0xd5, 0x38, 0x81, 0xac, 0x91, 0x17, 0x04, 0xb8, 0x7b, 0x00, 0x01, 0x00, 0x00, // IID13053 - 0xd5, 0x18, 0x81, 0xaa, 0x22, 0x4b, 0x8b, 0x67, 0x00, 0x01, 0x00, 0x00, // IID13054 - 0xd5, 0x18, 0x81, 0xab, 0xbc, 0x6a, 0x9b, 0xfd, 0x00, 0x01, 0x00, 0x00, // IID13055 - 0xd5, 0x38, 0x81, 0xac, 0xec, 0x04, 0xe9, 0x8a, 0xcd, 0x00, 0x01, 0x00, 0x00, // IID13056 - 0xd5, 0x38, 0x81, 0xac, 0xf5, 0x6a, 0xd3, 0x47, 0xea, 0x00, 0x01, 0x00, 0x00, // IID13057 - 0xd5, 0x38, 0x81, 0xac, 0xfe, 0xb1, 0x60, 0xed, 0x8f, 0x00, 0x01, 0x00, 0x00, // IID13058 - 0xd5, 0x3a, 0x81, 0xac, 0xc7, 0x67, 0xda, 0xd6, 0xf2, 0x00, 0x01, 0x00, 0x00, // IID13059 - 0xd5, 0x19, 0x81, 0xa8, 0xed, 0xcc, 0x76, 0x44, 0x00, 0x01, 0x00, 0x00, // IID13060 - 0xd5, 0x3b, 0x81, 0xac, 0xd1, 0x3c, 0xf0, 0xb6, 0xc9, 0x00, 0x01, 0x00, 0x00, // IID13061 - 0xd5, 0x3b, 0x81, 0xac, 0x5a, 0x05, 0xf6, 0x83, 0xc2, 0x00, 0x01, 0x00, 0x00, // IID13062 - 0xd5, 0x3b, 0x81, 0xac, 0xe3, 0x83, 0x7a, 0xdf, 0xbf, 0x00, 0x01, 0x00, 0x00, // IID13063 - 0xd5, 0x3b, 0x81, 0xac, 0xac, 0xf0, 0xc1, 0xeb, 0x06, 0x00, 0x01, 0x00, 0x00, // IID13064 - 0xd5, 0x19, 0x81, 0xad, 0x6a, 0xd1, 0xec, 0x8e, 0x00, 0x01, 0x00, 0x00, // IID13065 - 0xd5, 0x3b, 0x81, 0xac, 0xbe, 0x85, 0x1b, 0xfb, 0xcd, 0x00, 0x01, 0x00, 0x00, // IID13066 - 0xd5, 0x19, 0x81, 0xac, 0x0f, 0xba, 0x43, 0xc8, 0xe8, 0x00, 0x01, 0x00, 0x00, // IID13067 - 0x48, 0x81, 0xac, 0x11, 0xec, 0x5b, 0xb0, 0x2c, 0x00, 0x10, 0x00, 0x00, // IID13068 - 0x48, 0x81, 0xaa, 0x4f, 0xbc, 0xb2, 0xff, 0x00, 0x10, 0x00, 0x00, // IID13069 - 0x4a, 0x81, 0xac, 0x03, 0x45, 0x50, 0x2d, 0xc8, 0x00, 0x10, 0x00, 0x00, // IID13070 - 0x4b, 0x81, 0xac, 0x48, 0x74, 0x8e, 0xc9, 0xe3, 0x00, 0x10, 0x00, 0x00, // IID13071 - 0x49, 0x81, 0xa9, 0x86, 0xe4, 0xb3, 0x48, 0x00, 0x10, 0x00, 0x00, // IID13072 - 0x4b, 0x81, 0xac, 0x9a, 0x12, 0x06, 0xd9, 0xf6, 0x00, 0x10, 0x00, 0x00, // IID13073 - 0x4b, 0x81, 0xac, 0xa3, 0xc3, 0x02, 0x69, 0xd0, 0x00, 0x10, 0x00, 0x00, // IID13074 - 0x4b, 0x81, 0xac, 0xac, 0x58, 0x8d, 0x00, 0xc0, 0x00, 0x10, 0x00, 0x00, // IID13075 - 0x4b, 0x81, 0xac, 0x35, 0x91, 0x18, 0x35, 0x77, 0x00, 0x10, 0x00, 0x00, // IID13076 - 0x4b, 0x81, 0xac, 0xfe, 0xe9, 0x6f, 0x27, 0x01, 0x00, 0x10, 0x00, 0x00, // IID13077 - 0xd5, 0x29, 0x81, 0xac, 0xc7, 0x4b, 0xeb, 0xc1, 0xb7, 0x00, 0x10, 0x00, 0x00, // IID13078 - 0xd5, 0x18, 0x81, 0xa8, 0x4d, 0x3c, 0x4b, 0x57, 0x00, 0x10, 0x00, 0x00, // IID13079 - 0xd5, 0x38, 0x81, 0xac, 0x51, 0xed, 0xa8, 0x66, 0xec, 0x00, 0x10, 0x00, 0x00, // IID13080 - 0xd5, 0x38, 0x81, 0xac, 0xda, 0x33, 0x4f, 0x08, 0xd6, 0x00, 0x10, 0x00, 0x00, // IID13081 - 0xd5, 0x38, 0x81, 0xac, 0x23, 0xe1, 0xba, 0x2b, 0xc4, 0x00, 0x10, 0x00, 0x00, // IID13082 - 0xd5, 0x18, 0x81, 0xac, 0x24, 0xb3, 0xc2, 0x5a, 0xb7, 0x00, 0x10, 0x00, 0x00, // IID13083 - 0xd5, 0x18, 0x81, 0xad, 0xa2, 0xa8, 0x24, 0x70, 0x00, 0x10, 0x00, 0x00, // IID13084 - 0xd5, 0x18, 0x81, 0xae, 0x45, 0xe1, 0x63, 0x54, 0x00, 0x10, 0x00, 0x00, // IID13085 - 0xd5, 0x3a, 0x81, 0xac, 0xc7, 0x6d, 0xc4, 0x62, 0x60, 0x00, 0x10, 0x00, 0x00, // IID13086 - 0xd5, 0x19, 0x81, 0xa8, 0xbc, 0x87, 0x62, 0xea, 0x00, 0x10, 0x00, 0x00, // IID13087 - 0xd5, 0x3b, 0x81, 0xac, 0x91, 0xb6, 0xd9, 0x33, 0x45, 0x00, 0x10, 0x00, 0x00, // IID13088 - 0xd5, 0x3b, 0x81, 0xac, 0x9a, 0x74, 0x0f, 0xb4, 0x32, 0x00, 0x10, 0x00, 0x00, // IID13089 - 0xd5, 0x3b, 0x81, 0xac, 0xe3, 0x59, 0xa7, 0x22, 0x1b, 0x00, 0x10, 0x00, 0x00, // IID13090 - 0xd5, 0x3b, 0x81, 0xac, 0xec, 0x93, 0x3a, 0x84, 0xbf, 0x00, 0x10, 0x00, 0x00, // IID13091 - 0xd5, 0x3b, 0x81, 0xac, 0x35, 0x6b, 0x32, 0xf2, 0x18, 0x00, 0x10, 0x00, 0x00, // IID13092 - 0xd5, 0x3b, 0x81, 0xac, 0xfe, 0x0b, 0x6f, 0x55, 0xa0, 0x00, 0x10, 0x00, 0x00, // IID13093 - 0xd5, 0x19, 0x81, 0xaf, 0x15, 0x49, 0xac, 0x2c, 0x00, 0x10, 0x00, 0x00, // IID13094 - 0x48, 0x81, 0xac, 0x11, 0xf6, 0x12, 0x0d, 0xf3, 0x00, 0x00, 0x01, 0x00, // IID13095 - 0x48, 0x81, 0xac, 0x5a, 0x01, 0x37, 0x89, 0x51, 0x00, 0x00, 0x01, 0x00, // IID13096 - 0x48, 0x81, 0xab, 0x63, 0xcf, 0x10, 0xf1, 0x00, 0x00, 0x01, 0x00, // IID13097 - 0x4b, 0x81, 0xac, 0x48, 0x79, 0xd0, 0xef, 0x11, 0x00, 0x00, 0x01, 0x00, // IID13098 - 0x4b, 0x81, 0xac, 0x11, 0x07, 0x5d, 0x18, 0xd5, 0x00, 0x00, 0x01, 0x00, // IID13099 - 0x4b, 0x81, 0xac, 0x1a, 0xb5, 0xbe, 0x05, 0xf1, 0x00, 0x00, 0x01, 0x00, // IID13100 - 0x4b, 0x81, 0xac, 0xe3, 0x83, 0x3d, 0x4e, 0x41, 0x00, 0x00, 0x01, 0x00, // IID13101 - 0x49, 0x81, 0xac, 0x24, 0x92, 0x05, 0xaa, 0x41, 0x00, 0x00, 0x01, 0x00, // IID13102 - 0x4b, 0x81, 0xac, 0x75, 0x3c, 0x7c, 0x8e, 0x4f, 0x00, 0x00, 0x01, 0x00, // IID13103 - 0x49, 0x81, 0xae, 0x8f, 0x21, 0xe7, 0xb7, 0x00, 0x00, 0x01, 0x00, // IID13104 - 0xd5, 0x29, 0x81, 0xac, 0xc7, 0xe4, 0x1e, 0x40, 0x8a, 0x00, 0x00, 0x01, 0x00, // IID13105 - 0xd5, 0x38, 0x81, 0xac, 0x08, 0xd8, 0x73, 0xa6, 0x6a, 0x00, 0x00, 0x01, 0x00, // IID13106 - 0xd5, 0x38, 0x81, 0xac, 0x51, 0x0f, 0x55, 0x50, 0xcb, 0x00, 0x00, 0x01, 0x00, // IID13107 - 0xd5, 0x38, 0x81, 0xac, 0x5a, 0x01, 0xef, 0x28, 0xb7, 0x00, 0x00, 0x01, 0x00, // IID13108 - 0xd5, 0x38, 0x81, 0xac, 0xe3, 0xa1, 0xdb, 0xe9, 0xd7, 0x00, 0x00, 0x01, 0x00, // IID13109 - 0xd5, 0x18, 0x81, 0xac, 0x24, 0x5b, 0x7f, 0x0b, 0x70, 0x00, 0x00, 0x01, 0x00, // IID13110 - 0xd5, 0x38, 0x81, 0xac, 0xb5, 0x95, 0x2a, 0xf0, 0xeb, 0x00, 0x00, 0x01, 0x00, // IID13111 - 0xd5, 0x38, 0x81, 0xac, 0x3e, 0xd4, 0x45, 0x51, 0x30, 0x00, 0x00, 0x01, 0x00, // IID13112 - 0xd5, 0x3a, 0x81, 0xac, 0x47, 0x1d, 0x99, 0x1f, 0x8e, 0x00, 0x00, 0x01, 0x00, // IID13113 - 0xd5, 0x3b, 0x81, 0xac, 0x88, 0x67, 0x3e, 0x02, 0x2b, 0x00, 0x00, 0x01, 0x00, // IID13114 - 0xd5, 0x3b, 0x81, 0xac, 0x91, 0x33, 0xa0, 0xe9, 0xe4, 0x00, 0x00, 0x01, 0x00, // IID13115 - 0xd5, 0x3b, 0x81, 0xac, 0x9a, 0xe3, 0xa4, 0x76, 0xb3, 0x00, 0x00, 0x01, 0x00, // IID13116 - 0xd5, 0x3b, 0x81, 0xac, 0x63, 0x0c, 0xd9, 0xd1, 0x2e, 0x00, 0x00, 0x01, 0x00, // IID13117 - 0xd5, 0x3b, 0x81, 0xac, 0x6c, 0xce, 0x27, 0x0e, 0x5e, 0x00, 0x00, 0x01, 0x00, // IID13118 - 0xd5, 0x3b, 0x81, 0xac, 0xf5, 0x76, 0xdd, 0x57, 0x12, 0x00, 0x00, 0x01, 0x00, // IID13119 - 0xd5, 0x3b, 0x81, 0xac, 0x7e, 0xcc, 0xc3, 0xef, 0xe2, 0x00, 0x00, 0x01, 0x00, // IID13120 - 0xd5, 0x19, 0x81, 0xac, 0xcf, 0x81, 0xa3, 0xee, 0x6a, 0x00, 0x00, 0x01, 0x00, // IID13121 - 0x48, 0x81, 0xac, 0xd1, 0x46, 0xbe, 0x9c, 0x4b, 0x00, 0x00, 0x10, 0x00, // IID13122 - 0x48, 0x81, 0xac, 0x9a, 0x09, 0x53, 0xaf, 0xa2, 0x00, 0x00, 0x10, 0x00, // IID13123 - 0x4a, 0x81, 0xac, 0x83, 0xa5, 0x14, 0x5a, 0xb5, 0x00, 0x00, 0x10, 0x00, // IID13124 - 0x4b, 0x81, 0xac, 0xc8, 0x12, 0x66, 0xc9, 0x71, 0x00, 0x00, 0x10, 0x00, // IID13125 - 0x4b, 0x81, 0xac, 0xd1, 0x8d, 0xca, 0xb1, 0x2b, 0x00, 0x00, 0x10, 0x00, // IID13126 - 0x4b, 0x81, 0xac, 0x9a, 0xdb, 0xc9, 0x22, 0xf5, 0x00, 0x00, 0x10, 0x00, // IID13127 - 0x4b, 0x81, 0xac, 0xa3, 0x33, 0x41, 0x1d, 0xd5, 0x00, 0x00, 0x10, 0x00, // IID13128 - 0x4b, 0x81, 0xac, 0x6c, 0xeb, 0xd7, 0x86, 0x3a, 0x00, 0x00, 0x10, 0x00, // IID13129 - 0x4b, 0x81, 0xac, 0x75, 0xf1, 0x7d, 0xdd, 0x15, 0x00, 0x00, 0x10, 0x00, // IID13130 - 0x4b, 0x81, 0xac, 0xbe, 0x77, 0xc7, 0x53, 0xd6, 0x00, 0x00, 0x10, 0x00, // IID13131 - 0x49, 0x81, 0xaf, 0xf1, 0x80, 0x6a, 0x03, 0x00, 0x00, 0x10, 0x00, // IID13132 - 0xd5, 0x38, 0x81, 0xac, 0x08, 0xe3, 0xd8, 0xd2, 0xff, 0x00, 0x00, 0x10, 0x00, // IID13133 - 0xd5, 0x38, 0x81, 0xac, 0x91, 0xa7, 0x96, 0xd8, 0x2b, 0x00, 0x00, 0x10, 0x00, // IID13134 - 0xd5, 0x38, 0x81, 0xac, 0x9a, 0x9b, 0xf9, 0xeb, 0xcb, 0x00, 0x00, 0x10, 0x00, // IID13135 - 0xd5, 0x38, 0x81, 0xac, 0x63, 0x3b, 0x79, 0x80, 0xa2, 0x00, 0x00, 0x10, 0x00, // IID13136 - 0xd5, 0x38, 0x81, 0xac, 0x6c, 0x11, 0x3d, 0xd9, 0xfd, 0x00, 0x00, 0x10, 0x00, // IID13137 - 0xd5, 0x38, 0x81, 0xac, 0xf5, 0xb7, 0xaf, 0x91, 0x7f, 0x00, 0x00, 0x10, 0x00, // IID13138 - 0xd5, 0x38, 0x81, 0xac, 0x7e, 0x43, 0xfb, 0x06, 0x77, 0x00, 0x00, 0x10, 0x00, // IID13139 - 0xd5, 0x18, 0x81, 0xaf, 0xa4, 0xca, 0xdd, 0xbb, 0x00, 0x00, 0x10, 0x00, // IID13140 - 0xd5, 0x3b, 0x81, 0xac, 0x48, 0x7f, 0xd9, 0x84, 0xb4, 0x00, 0x00, 0x10, 0x00, // IID13141 - 0xd5, 0x3b, 0x81, 0xac, 0x51, 0xb6, 0x53, 0xf8, 0x00, 0x00, 0x00, 0x10, 0x00, // IID13142 - 0xd5, 0x3b, 0x81, 0xac, 0x1a, 0x17, 0x11, 0x8d, 0x98, 0x00, 0x00, 0x10, 0x00, // IID13143 - 0xd5, 0x3b, 0x81, 0xac, 0xa3, 0x56, 0x45, 0x55, 0x42, 0x00, 0x00, 0x10, 0x00, // IID13144 - 0xd5, 0x3b, 0x81, 0xac, 0xec, 0x1d, 0x29, 0xf5, 0xa2, 0x00, 0x00, 0x10, 0x00, // IID13145 - 0xd5, 0x3b, 0x81, 0xac, 0x35, 0xe2, 0xf7, 0xb3, 0x4c, 0x00, 0x00, 0x10, 0x00, // IID13146 - 0xd5, 0x19, 0x81, 0xae, 0xdb, 0x0c, 0x98, 0x13, 0x00, 0x00, 0x10, 0x00, // IID13147 - 0xd5, 0x19, 0x81, 0xac, 0x0f, 0x72, 0x2b, 0x45, 0xc1, 0x00, 0x00, 0x10, 0x00, // IID13148 - 0x48, 0x81, 0xac, 0x51, 0x12, 0x2f, 0x5e, 0x74, 0x00, 0x00, 0x00, 0x01, // IID13149 - 0x48, 0x81, 0xac, 0x9a, 0xa0, 0xa3, 0xec, 0x74, 0x00, 0x00, 0x00, 0x01, // IID13150 - 0x48, 0x81, 0xab, 0x87, 0xa9, 0x48, 0x46, 0x00, 0x00, 0x00, 0x01, // IID13151 - 0x4b, 0x81, 0xac, 0x88, 0x81, 0xa8, 0xc9, 0xb8, 0x00, 0x00, 0x00, 0x01, // IID13152 - 0x4b, 0x81, 0xac, 0xd1, 0x08, 0xfc, 0xb1, 0x40, 0x00, 0x00, 0x00, 0x01, // IID13153 - 0x4b, 0x81, 0xac, 0x1a, 0xa9, 0x7e, 0x63, 0x15, 0x00, 0x00, 0x00, 0x01, // IID13154 - 0x4b, 0x81, 0xac, 0xe3, 0x63, 0xb2, 0x0e, 0x5e, 0x00, 0x00, 0x00, 0x01, // IID13155 - 0x4b, 0x81, 0xac, 0x6c, 0xe9, 0x6e, 0x5c, 0x82, 0x00, 0x00, 0x00, 0x01, // IID13156 - 0x4b, 0x81, 0xac, 0x75, 0xba, 0xd4, 0x17, 0xc4, 0x00, 0x00, 0x00, 0x01, // IID13157 - 0x4b, 0x81, 0xac, 0xfe, 0xe9, 0x98, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x01, // IID13158 - 0x49, 0x81, 0xaf, 0xf8, 0x71, 0x7d, 0x4f, 0x00, 0x00, 0x00, 0x01, // IID13159 - 0xd5, 0x18, 0x81, 0xa8, 0xcd, 0xdb, 0x95, 0xb3, 0x00, 0x00, 0x00, 0x01, // IID13160 - 0xd5, 0x38, 0x81, 0xac, 0x11, 0x3e, 0x07, 0x0d, 0xd2, 0x00, 0x00, 0x00, 0x01, // IID13161 - 0xd5, 0x38, 0x81, 0xac, 0x1a, 0x9d, 0x62, 0x3b, 0xa8, 0x00, 0x00, 0x00, 0x01, // IID13162 - 0xd5, 0x38, 0x81, 0xac, 0xe3, 0x85, 0xa5, 0xd1, 0xf7, 0x00, 0x00, 0x00, 0x01, // IID13163 - 0xd5, 0x38, 0x81, 0xac, 0xac, 0xec, 0xe4, 0xdd, 0xd2, 0x00, 0x00, 0x00, 0x01, // IID13164 - 0xd5, 0x18, 0x81, 0xad, 0xc0, 0xfe, 0x2b, 0x7f, 0x00, 0x00, 0x00, 0x01, // IID13165 - 0xd5, 0x38, 0x81, 0xac, 0xfe, 0x56, 0x4d, 0x1b, 0x9c, 0x00, 0x00, 0x00, 0x01, // IID13166 - 0xd5, 0x3a, 0x81, 0xac, 0x47, 0x64, 0x23, 0x64, 0xed, 0x00, 0x00, 0x00, 0x01, // IID13167 - 0xd5, 0x19, 0x81, 0xa8, 0x19, 0x70, 0x84, 0x53, 0x00, 0x00, 0x00, 0x01, // IID13168 - 0xd5, 0x3b, 0x81, 0xac, 0x11, 0x4a, 0x2f, 0x55, 0x48, 0x00, 0x00, 0x00, 0x01, // IID13169 - 0xd5, 0x3b, 0x81, 0xac, 0x9a, 0xb2, 0x7c, 0x87, 0xb3, 0x00, 0x00, 0x00, 0x01, // IID13170 - 0xd5, 0x19, 0x81, 0xab, 0x91, 0x12, 0x21, 0xd8, 0x00, 0x00, 0x00, 0x01, // IID13171 - 0xd5, 0x3b, 0x81, 0xac, 0xac, 0x7d, 0x7d, 0xc5, 0xe1, 0x00, 0x00, 0x00, 0x01, // IID13172 - 0xd5, 0x3b, 0x81, 0xac, 0x75, 0x5b, 0xe7, 0x04, 0x6b, 0x00, 0x00, 0x00, 0x01, // IID13173 - 0xd5, 0x19, 0x81, 0xae, 0x11, 0x93, 0xb3, 0x10, 0x00, 0x00, 0x00, 0x01, // IID13174 - 0xd5, 0x19, 0x81, 0xac, 0x0f, 0x36, 0x9c, 0x74, 0xd2, 0x00, 0x00, 0x00, 0x01, // IID13175 - 0x48, 0x81, 0xac, 0xd1, 0x06, 0xf2, 0x76, 0x2d, 0x00, 0x00, 0x00, 0x10, // IID13176 - 0x48, 0x81, 0xaa, 0xa5, 0xbe, 0x7a, 0x7c, 0x00, 0x00, 0x00, 0x10, // IID13177 - 0x4a, 0x81, 0xac, 0x43, 0x82, 0xff, 0xa2, 0x39, 0x00, 0x00, 0x00, 0x10, // IID13178 - 0x4b, 0x81, 0xac, 0xc8, 0x2a, 0x9a, 0xbd, 0x6c, 0x00, 0x00, 0x00, 0x10, // IID13179 - 0x4b, 0x81, 0xac, 0x51, 0xe0, 0x73, 0x8b, 0x54, 0x00, 0x00, 0x00, 0x10, // IID13180 - 0x49, 0x81, 0xaa, 0xab, 0x24, 0x39, 0x37, 0x00, 0x00, 0x00, 0x10, // IID13181 - 0x4b, 0x81, 0xac, 0x63, 0xdf, 0x91, 0x4b, 0xad, 0x00, 0x00, 0x00, 0x10, // IID13182 - 0x49, 0x81, 0xac, 0x24, 0x01, 0xd3, 0x44, 0xfb, 0x00, 0x00, 0x00, 0x10, // IID13183 - 0x4b, 0x81, 0xac, 0xf5, 0xda, 0x6f, 0x5c, 0x42, 0x00, 0x00, 0x00, 0x10, // IID13184 - 0x4b, 0x81, 0xac, 0xfe, 0xf8, 0xf4, 0x49, 0x23, 0x00, 0x00, 0x00, 0x10, // IID13185 - 0xd5, 0x29, 0x81, 0xac, 0x47, 0x3c, 0xce, 0xe6, 0x54, 0x00, 0x00, 0x00, 0x10, // IID13186 - 0xd5, 0x38, 0x81, 0xac, 0x88, 0x1f, 0x1d, 0x0f, 0xf6, 0x00, 0x00, 0x00, 0x10, // IID13187 - 0xd5, 0x18, 0x81, 0xa9, 0x0e, 0x4f, 0x07, 0xa3, 0x00, 0x00, 0x00, 0x10, // IID13188 - 0xd5, 0x18, 0x81, 0xaa, 0xca, 0x0f, 0xd7, 0xaf, 0x00, 0x00, 0x00, 0x10, // IID13189 - 0xd5, 0x38, 0x81, 0xac, 0x23, 0xac, 0xb5, 0xf5, 0x52, 0x00, 0x00, 0x00, 0x10, // IID13190 - 0xd5, 0x38, 0x81, 0xac, 0xec, 0x0e, 0x7e, 0x54, 0x4f, 0x00, 0x00, 0x00, 0x10, // IID13191 - 0xd5, 0x38, 0x81, 0xac, 0x75, 0x3f, 0x4d, 0xef, 0x4e, 0x00, 0x00, 0x00, 0x10, // IID13192 - 0xd5, 0x38, 0x81, 0xac, 0xbe, 0xbb, 0x61, 0x66, 0xb8, 0x00, 0x00, 0x00, 0x10, // IID13193 - 0xd5, 0x3a, 0x81, 0xac, 0x87, 0xf1, 0x90, 0x7c, 0xf4, 0x00, 0x00, 0x00, 0x10, // IID13194 - 0xd5, 0x3b, 0x81, 0xac, 0x08, 0xba, 0x17, 0x85, 0xdd, 0x00, 0x00, 0x00, 0x10, // IID13195 - 0xd5, 0x3b, 0x81, 0xac, 0x91, 0x2a, 0x1d, 0x17, 0xcb, 0x00, 0x00, 0x00, 0x10, // IID13196 - 0xd5, 0x19, 0x81, 0xaa, 0x32, 0xc2, 0x25, 0xf3, 0x00, 0x00, 0x00, 0x10, // IID13197 - 0xd5, 0x3b, 0x81, 0xac, 0xe3, 0x7f, 0xcf, 0x74, 0xc9, 0x00, 0x00, 0x00, 0x10, // IID13198 - 0xd5, 0x3b, 0x81, 0xac, 0xec, 0x3e, 0xf6, 0x21, 0x2f, 0x00, 0x00, 0x00, 0x10, // IID13199 - 0xd5, 0x3b, 0x81, 0xac, 0xf5, 0x31, 0xfe, 0xbc, 0xa7, 0x00, 0x00, 0x00, 0x10, // IID13200 - 0xd5, 0x3b, 0x81, 0xac, 0x3e, 0x18, 0x05, 0x5b, 0x21, 0x00, 0x00, 0x00, 0x10, // IID13201 - 0xd5, 0x19, 0x81, 0xaf, 0xfe, 0x0d, 0xa1, 0x06, 0x00, 0x00, 0x00, 0x10, // IID13202 - 0x48, 0x83, 0xb4, 0x91, 0x41, 0x8d, 0x5a, 0xb2, 0x01, // IID13203 - 0x48, 0x83, 0xb4, 0x9a, 0x31, 0x49, 0x66, 0x89, 0x01, // IID13204 - 0x4a, 0x83, 0xb4, 0x83, 0x8a, 0xcc, 0x8c, 0xec, 0x01, // IID13205 - 0x4b, 0x83, 0xb4, 0x48, 0x25, 0xd6, 0x59, 0x41, 0x01, // IID13206 - 0x4b, 0x83, 0xb4, 0x91, 0x80, 0xf5, 0x5a, 0xe5, 0x01, // IID13207 - 0x49, 0x83, 0xb2, 0x66, 0x9a, 0x61, 0x17, 0x01, // IID13208 - 0x49, 0x83, 0xb3, 0x0e, 0x5a, 0x01, 0x12, 0x01, // IID13209 - 0x4b, 0x83, 0xb4, 0x6c, 0xfe, 0xae, 0x0b, 0x5f, 0x01, // IID13210 - 0x4b, 0x83, 0xb4, 0xb5, 0xd8, 0x85, 0xd4, 0x20, 0x01, // IID13211 - 0x4b, 0x83, 0xb4, 0xfe, 0xbb, 0xc6, 0xa6, 0x10, 0x01, // IID13212 - 0xd5, 0x29, 0x83, 0xb4, 0xc7, 0x8e, 0x7f, 0xba, 0xc1, 0x01, // IID13213 - 0xd5, 0x38, 0x83, 0xb4, 0x88, 0x10, 0x34, 0x76, 0x79, 0x01, // IID13214 - 0xd5, 0x18, 0x83, 0xb1, 0x9e, 0x19, 0xd6, 0x3e, 0x01, // IID13215 - 0xd5, 0x38, 0x83, 0xb4, 0x9a, 0x93, 0x89, 0xaf, 0x2a, 0x01, // IID13216 - 0xd5, 0x38, 0x83, 0xb4, 0xe3, 0xa3, 0x4f, 0xc0, 0x07, 0x01, // IID13217 - 0xd5, 0x18, 0x83, 0xb4, 0x24, 0x0c, 0x66, 0x35, 0x52, 0x01, // IID13218 - 0xd5, 0x18, 0x83, 0xb5, 0xdd, 0xc1, 0xdc, 0xed, 0x01, // IID13219 - 0xd5, 0x38, 0x83, 0xb4, 0x7e, 0x5e, 0x18, 0x14, 0xa0, 0x01, // IID13220 - 0xd5, 0x3a, 0x83, 0xb4, 0x47, 0xb3, 0x76, 0x3b, 0x7f, 0x01, // IID13221 - 0xd5, 0x3b, 0x83, 0xb4, 0x88, 0x54, 0xf9, 0x7e, 0x4e, 0x01, // IID13222 - 0xd5, 0x3b, 0x83, 0xb4, 0x91, 0x1f, 0xeb, 0x7f, 0x6f, 0x01, // IID13223 - 0xd5, 0x19, 0x83, 0xb2, 0xa8, 0xcb, 0x1d, 0x9d, 0x01, // IID13224 - 0xd5, 0x3b, 0x83, 0xb4, 0x23, 0xc5, 0x1d, 0x59, 0x86, 0x01, // IID13225 - 0xd5, 0x3b, 0x83, 0xb4, 0x2c, 0xf1, 0x96, 0xfb, 0xdd, 0x01, // IID13226 - 0xd5, 0x3b, 0x83, 0xb4, 0x75, 0x92, 0x51, 0x1c, 0xbb, 0x01, // IID13227 - 0xd5, 0x3b, 0x83, 0xb4, 0x3e, 0x66, 0x4e, 0xf1, 0x95, 0x01, // IID13228 - 0xd5, 0x19, 0x83, 0xb4, 0x8f, 0x3c, 0x61, 0xe3, 0x39, 0x01, // IID13229 - 0x48, 0x83, 0xb4, 0x51, 0xca, 0x35, 0xab, 0x68, 0x10, // IID13230 - 0x48, 0x83, 0xb4, 0x5a, 0xbe, 0x7b, 0x36, 0x6d, 0x10, // IID13231 - 0x4a, 0x83, 0xb4, 0x03, 0xb6, 0xc7, 0xb4, 0x3a, 0x10, // IID13232 - 0x4b, 0x83, 0xb4, 0xc8, 0xf3, 0x95, 0xb4, 0xb0, 0x10, // IID13233 - 0x4b, 0x83, 0xb4, 0x91, 0xdd, 0x3d, 0x6a, 0xf5, 0x10, // IID13234 - 0x4b, 0x83, 0xb4, 0xda, 0xda, 0xd4, 0xdb, 0x8d, 0x10, // IID13235 - 0x4b, 0x83, 0xb4, 0xa3, 0xbb, 0xc0, 0x85, 0x00, 0x10, // IID13236 - 0x4b, 0x83, 0xb4, 0xac, 0x1d, 0xb9, 0xe4, 0xcf, 0x10, // IID13237 - 0x4b, 0x83, 0xb4, 0xf5, 0x8d, 0xe9, 0xbb, 0x63, 0x10, // IID13238 - 0x4b, 0x83, 0xb4, 0xfe, 0x49, 0x8f, 0x19, 0xf1, 0x10, // IID13239 - 0xd5, 0x29, 0x83, 0xb4, 0xc7, 0x6b, 0x2b, 0x99, 0x55, 0x10, // IID13240 - 0xd5, 0x38, 0x83, 0xb4, 0x08, 0x1e, 0x18, 0xa6, 0x45, 0x10, // IID13241 - 0xd5, 0x38, 0x83, 0xb4, 0x91, 0xd7, 0x36, 0x03, 0x0b, 0x10, // IID13242 - 0xd5, 0x18, 0x83, 0xb2, 0xc2, 0x46, 0x3d, 0xca, 0x10, // IID13243 - 0xd5, 0x18, 0x83, 0xb3, 0x68, 0xc7, 0x4c, 0xe3, 0x10, // IID13244 - 0xd5, 0x38, 0x83, 0xb4, 0x2c, 0x4b, 0x6f, 0x93, 0x7c, 0x10, // IID13245 - 0xd5, 0x38, 0x83, 0xb4, 0xf5, 0x66, 0x96, 0xd3, 0x96, 0x10, // IID13246 - 0xd5, 0x38, 0x83, 0xb4, 0xfe, 0x42, 0x7a, 0xa9, 0x1e, 0x10, // IID13247 - 0xd5, 0x18, 0x83, 0xb7, 0x23, 0x68, 0x53, 0x3c, 0x10, // IID13248 - 0xd5, 0x3b, 0x83, 0xb4, 0x88, 0x5a, 0xb9, 0xd2, 0x02, 0x10, // IID13249 - 0xd5, 0x3b, 0x83, 0xb4, 0x51, 0x0b, 0x71, 0x49, 0x94, 0x10, // IID13250 - 0xd5, 0x3b, 0x83, 0xb4, 0xda, 0x86, 0xd4, 0x30, 0x01, 0x10, // IID13251 - 0xd5, 0x3b, 0x83, 0xb4, 0xe3, 0xc9, 0xa4, 0xbf, 0xa4, 0x10, // IID13252 - 0xd5, 0x3b, 0x83, 0xb4, 0xac, 0xf7, 0x33, 0xf5, 0xc3, 0x10, // IID13253 - 0xd5, 0x3b, 0x83, 0xb4, 0xf5, 0x24, 0x27, 0xf1, 0xd8, 0x10, // IID13254 - 0xd5, 0x3b, 0x83, 0xb4, 0x3e, 0xda, 0x46, 0xf5, 0xbc, 0x10, // IID13255 - 0xd5, 0x19, 0x83, 0xb4, 0x0f, 0xf1, 0x2f, 0x5a, 0xd8, 0x10, // IID13256 - 0x48, 0x81, 0xb4, 0x11, 0xee, 0xf2, 0xc2, 0x51, 0x00, 0x01, 0x00, 0x00, // IID13257 - 0x48, 0x81, 0xb4, 0x9a, 0x1d, 0xd3, 0x2f, 0x9d, 0x00, 0x01, 0x00, 0x00, // IID13258 - 0x4a, 0x81, 0xb4, 0x83, 0xee, 0x23, 0x53, 0xe1, 0x00, 0x01, 0x00, 0x00, // IID13259 - 0x4b, 0x81, 0xb4, 0xc8, 0x9d, 0x11, 0x8c, 0x72, 0x00, 0x01, 0x00, 0x00, // IID13260 - 0x4b, 0x81, 0xb4, 0xd1, 0x5a, 0xf3, 0x00, 0xf8, 0x00, 0x01, 0x00, 0x00, // IID13261 - 0x4b, 0x81, 0xb4, 0x9a, 0xd3, 0x99, 0xde, 0x5f, 0x00, 0x01, 0x00, 0x00, // IID13262 - 0x49, 0x81, 0xb3, 0xc9, 0xeb, 0x5c, 0x5a, 0x00, 0x01, 0x00, 0x00, // IID13263 - 0x4b, 0x81, 0xb4, 0x2c, 0xf8, 0x79, 0x8d, 0xa6, 0x00, 0x01, 0x00, 0x00, // IID13264 - 0x4b, 0x81, 0xb4, 0xb5, 0xb3, 0x69, 0xfe, 0x41, 0x00, 0x01, 0x00, 0x00, // IID13265 - 0x4b, 0x81, 0xb4, 0xfe, 0x41, 0xbc, 0x18, 0xba, 0x00, 0x01, 0x00, 0x00, // IID13266 - 0xd5, 0x29, 0x81, 0xb4, 0xc7, 0x74, 0xe9, 0xb4, 0x5d, 0x00, 0x01, 0x00, 0x00, // IID13267 - 0xd5, 0x38, 0x81, 0xb4, 0x08, 0x49, 0xf7, 0x4a, 0xc1, 0x00, 0x01, 0x00, 0x00, // IID13268 - 0xd5, 0x38, 0x81, 0xb4, 0x51, 0x57, 0x8e, 0x8c, 0x3c, 0x00, 0x01, 0x00, 0x00, // IID13269 - 0xd5, 0x18, 0x81, 0xb2, 0x0a, 0x53, 0xc1, 0x1e, 0x00, 0x01, 0x00, 0x00, // IID13270 - 0xd5, 0x38, 0x81, 0xb4, 0xe3, 0xb9, 0x66, 0x95, 0x09, 0x00, 0x01, 0x00, 0x00, // IID13271 - 0xd5, 0x38, 0x81, 0xb4, 0xac, 0xaf, 0x6c, 0x2e, 0x84, 0x00, 0x01, 0x00, 0x00, // IID13272 - 0xd5, 0x38, 0x81, 0xb4, 0x75, 0x09, 0xc1, 0x01, 0x48, 0x00, 0x01, 0x00, 0x00, // IID13273 - 0xd5, 0x18, 0x81, 0xb6, 0xfb, 0x3b, 0xf4, 0x5e, 0x00, 0x01, 0x00, 0x00, // IID13274 - 0xd5, 0x18, 0x81, 0xb7, 0xae, 0xf3, 0x2f, 0xb1, 0x00, 0x01, 0x00, 0x00, // IID13275 - 0xd5, 0x19, 0x81, 0xb0, 0xd9, 0x9a, 0xca, 0x1c, 0x00, 0x01, 0x00, 0x00, // IID13276 - 0xd5, 0x3b, 0x81, 0xb4, 0x51, 0xa1, 0x0f, 0xee, 0xc7, 0x00, 0x01, 0x00, 0x00, // IID13277 - 0xd5, 0x3b, 0x81, 0xb4, 0xda, 0x78, 0xc3, 0xce, 0x11, 0x00, 0x01, 0x00, 0x00, // IID13278 - 0xd5, 0x3b, 0x81, 0xb4, 0xa3, 0x5b, 0x2e, 0x92, 0x0f, 0x00, 0x01, 0x00, 0x00, // IID13279 - 0xd5, 0x3b, 0x81, 0xb4, 0xec, 0x7f, 0xf4, 0xed, 0x89, 0x00, 0x01, 0x00, 0x00, // IID13280 - 0xd5, 0x3b, 0x81, 0xb4, 0x35, 0x21, 0x9d, 0xfc, 0x3d, 0x00, 0x01, 0x00, 0x00, // IID13281 - 0xd5, 0x3b, 0x81, 0xb4, 0xbe, 0x82, 0xfd, 0xd7, 0x9f, 0x00, 0x01, 0x00, 0x00, // IID13282 - 0xd5, 0x19, 0x81, 0xb4, 0x4f, 0x36, 0x0e, 0x7d, 0xf4, 0x00, 0x01, 0x00, 0x00, // IID13283 - 0x48, 0x81, 0xb4, 0x51, 0xa3, 0x55, 0x2d, 0xbe, 0x00, 0x10, 0x00, 0x00, // IID13284 - 0x48, 0x81, 0xb4, 0x9a, 0x8d, 0xe9, 0xeb, 0x0d, 0x00, 0x10, 0x00, 0x00, // IID13285 - 0x4a, 0x81, 0xb4, 0x43, 0x60, 0x5d, 0xbe, 0x5c, 0x00, 0x10, 0x00, 0x00, // IID13286 - 0x4b, 0x81, 0xb4, 0x48, 0x53, 0xbe, 0xe1, 0x83, 0x00, 0x10, 0x00, 0x00, // IID13287 - 0x49, 0x81, 0xb1, 0x23, 0x36, 0xdd, 0x3f, 0x00, 0x10, 0x00, 0x00, // IID13288 - 0x4b, 0x81, 0xb4, 0x9a, 0xb5, 0x5c, 0xa2, 0x52, 0x00, 0x10, 0x00, 0x00, // IID13289 - 0x4b, 0x81, 0xb4, 0xa3, 0xce, 0xda, 0x89, 0x41, 0x00, 0x10, 0x00, 0x00, // IID13290 - 0x4b, 0x81, 0xb4, 0x6c, 0xe1, 0xa2, 0x85, 0x29, 0x00, 0x10, 0x00, 0x00, // IID13291 - 0x49, 0x81, 0xb5, 0xb1, 0x00, 0xdb, 0xd5, 0x00, 0x10, 0x00, 0x00, // IID13292 - 0x4b, 0x81, 0xb4, 0x3e, 0xde, 0x3a, 0xcf, 0xac, 0x00, 0x10, 0x00, 0x00, // IID13293 - 0x49, 0x81, 0xb7, 0x7f, 0x56, 0xe4, 0x12, 0x00, 0x10, 0x00, 0x00, // IID13294 - 0xd5, 0x38, 0x81, 0xb4, 0xc8, 0x2e, 0x84, 0xa4, 0xb0, 0x00, 0x10, 0x00, 0x00, // IID13295 - 0xd5, 0x38, 0x81, 0xb4, 0x11, 0x9e, 0x57, 0xce, 0x8c, 0x00, 0x10, 0x00, 0x00, // IID13296 - 0xd5, 0x38, 0x81, 0xb4, 0x1a, 0x70, 0xef, 0x12, 0xc0, 0x00, 0x10, 0x00, 0x00, // IID13297 - 0xd5, 0x38, 0x81, 0xb4, 0xa3, 0x2b, 0xe0, 0x53, 0x2d, 0x00, 0x10, 0x00, 0x00, // IID13298 - 0xd5, 0x38, 0x81, 0xb4, 0xac, 0x43, 0x01, 0x34, 0xb7, 0x00, 0x10, 0x00, 0x00, // IID13299 - 0xd5, 0x38, 0x81, 0xb4, 0xf5, 0x9c, 0xd9, 0x10, 0x03, 0x00, 0x10, 0x00, 0x00, // IID13300 - 0xd5, 0x18, 0x81, 0xb6, 0xd5, 0x3f, 0xbd, 0x8f, 0x00, 0x10, 0x00, 0x00, // IID13301 - 0xd5, 0x3a, 0x81, 0xb4, 0x87, 0xeb, 0x4a, 0xfe, 0xf7, 0x00, 0x10, 0x00, 0x00, // IID13302 - 0xd5, 0x3b, 0x81, 0xb4, 0x48, 0x97, 0xf2, 0x77, 0x79, 0x00, 0x10, 0x00, 0x00, // IID13303 - 0xd5, 0x3b, 0x81, 0xb4, 0xd1, 0x23, 0x10, 0xc9, 0xdc, 0x00, 0x10, 0x00, 0x00, // IID13304 - 0xd5, 0x3b, 0x81, 0xb4, 0x1a, 0x9f, 0xc5, 0x1a, 0xe4, 0x00, 0x10, 0x00, 0x00, // IID13305 - 0xd5, 0x3b, 0x81, 0xb4, 0x23, 0xa2, 0x61, 0xeb, 0xca, 0x00, 0x10, 0x00, 0x00, // IID13306 - 0xd5, 0x3b, 0x81, 0xb4, 0x2c, 0xff, 0xe3, 0x5d, 0x39, 0x00, 0x10, 0x00, 0x00, // IID13307 - 0xd5, 0x3b, 0x81, 0xb4, 0xf5, 0xe7, 0x60, 0xee, 0xcb, 0x00, 0x10, 0x00, 0x00, // IID13308 - 0xd5, 0x3b, 0x81, 0xb4, 0xfe, 0xb3, 0x74, 0x1f, 0x3c, 0x00, 0x10, 0x00, 0x00, // IID13309 - 0xd5, 0x19, 0x81, 0xb4, 0x4f, 0x4b, 0x0e, 0xd5, 0xca, 0x00, 0x10, 0x00, 0x00, // IID13310 - 0x48, 0x81, 0xb1, 0xe7, 0x14, 0x6c, 0x2f, 0x00, 0x00, 0x01, 0x00, // IID13311 - 0x48, 0x81, 0xb4, 0x5a, 0xf8, 0xf8, 0x39, 0x69, 0x00, 0x00, 0x01, 0x00, // IID13312 - 0x4a, 0x81, 0xb4, 0xc3, 0x8e, 0x5e, 0x24, 0x52, 0x00, 0x00, 0x01, 0x00, // IID13313 - 0x4b, 0x81, 0xb4, 0x88, 0x0d, 0x7f, 0x87, 0x47, 0x00, 0x00, 0x01, 0x00, // IID13314 - 0x4b, 0x81, 0xb4, 0x11, 0xaf, 0xc3, 0x47, 0xc8, 0x00, 0x00, 0x01, 0x00, // IID13315 - 0x4b, 0x81, 0xb4, 0x9a, 0x5c, 0x91, 0x0f, 0x21, 0x00, 0x00, 0x01, 0x00, // IID13316 - 0x4b, 0x81, 0xb4, 0xe3, 0x2c, 0x89, 0x29, 0xde, 0x00, 0x00, 0x01, 0x00, // IID13317 - 0x4b, 0x81, 0xb4, 0x2c, 0x15, 0xc6, 0x8f, 0xf0, 0x00, 0x00, 0x01, 0x00, // IID13318 - 0x4b, 0x81, 0xb4, 0xb5, 0xb8, 0x16, 0x44, 0xd9, 0x00, 0x00, 0x01, 0x00, // IID13319 - 0x4b, 0x81, 0xb4, 0x7e, 0x97, 0x67, 0x78, 0x18, 0x00, 0x00, 0x01, 0x00, // IID13320 - 0xd5, 0x29, 0x81, 0xb4, 0xc7, 0x59, 0x4c, 0x88, 0x1e, 0x00, 0x00, 0x01, 0x00, // IID13321 - 0xd5, 0x38, 0x81, 0xb4, 0xc8, 0xfd, 0x02, 0x86, 0xc8, 0x00, 0x00, 0x01, 0x00, // IID13322 - 0xd5, 0x38, 0x81, 0xb4, 0x11, 0x9c, 0x41, 0x69, 0xff, 0x00, 0x00, 0x01, 0x00, // IID13323 - 0xd5, 0x38, 0x81, 0xb4, 0x1a, 0x3b, 0xff, 0xd2, 0xda, 0x00, 0x00, 0x01, 0x00, // IID13324 - 0xd5, 0x38, 0x81, 0xb4, 0x63, 0xce, 0x19, 0x25, 0x0a, 0x00, 0x00, 0x01, 0x00, // IID13325 - 0xd5, 0x38, 0x81, 0xb4, 0xec, 0x09, 0xfe, 0xdf, 0xf7, 0x00, 0x00, 0x01, 0x00, // IID13326 - 0xd5, 0x38, 0x81, 0xb4, 0xf5, 0x19, 0x19, 0x48, 0x8e, 0x00, 0x00, 0x01, 0x00, // IID13327 - 0xd5, 0x38, 0x81, 0xb4, 0xfe, 0x42, 0xbc, 0x2f, 0x2b, 0x00, 0x00, 0x01, 0x00, // IID13328 - 0xd5, 0x3a, 0x81, 0xb4, 0x47, 0x63, 0x0a, 0x7b, 0x56, 0x00, 0x00, 0x01, 0x00, // IID13329 - 0xd5, 0x3b, 0x81, 0xb4, 0x08, 0xe2, 0x9e, 0x3c, 0x7d, 0x00, 0x00, 0x01, 0x00, // IID13330 - 0xd5, 0x19, 0x81, 0xb1, 0x24, 0x13, 0x31, 0x46, 0x00, 0x00, 0x01, 0x00, // IID13331 - 0xd5, 0x3b, 0x81, 0xb4, 0x1a, 0x08, 0x0f, 0x82, 0x90, 0x00, 0x00, 0x01, 0x00, // IID13332 - 0xd5, 0x3b, 0x81, 0xb4, 0xe3, 0x0a, 0x7d, 0x2a, 0x46, 0x00, 0x00, 0x01, 0x00, // IID13333 - 0xd5, 0x3b, 0x81, 0xb4, 0xac, 0x54, 0xb9, 0xe5, 0x06, 0x00, 0x00, 0x01, 0x00, // IID13334 - 0xd5, 0x19, 0x81, 0xb5, 0x79, 0xda, 0x00, 0x16, 0x00, 0x00, 0x01, 0x00, // IID13335 - 0xd5, 0x19, 0x81, 0xb6, 0x43, 0x8f, 0x7a, 0x46, 0x00, 0x00, 0x01, 0x00, // IID13336 - 0xd5, 0x19, 0x81, 0xb7, 0x6e, 0x7e, 0xc1, 0x88, 0x00, 0x00, 0x01, 0x00, // IID13337 - 0x48, 0x81, 0xb4, 0x91, 0xee, 0xfe, 0xb3, 0x5d, 0x00, 0x00, 0x10, 0x00, // IID13338 - 0x48, 0x81, 0xb4, 0x9a, 0x0f, 0x20, 0x80, 0xb1, 0x00, 0x00, 0x10, 0x00, // IID13339 - 0x4a, 0x81, 0xb4, 0x03, 0x03, 0xfc, 0x89, 0xad, 0x00, 0x00, 0x10, 0x00, // IID13340 - 0x49, 0x81, 0xb0, 0x57, 0x78, 0x6b, 0xbe, 0x00, 0x00, 0x10, 0x00, // IID13341 - 0x4b, 0x81, 0xb4, 0x11, 0x0b, 0x2d, 0x81, 0xae, 0x00, 0x00, 0x10, 0x00, // IID13342 - 0x4b, 0x81, 0xb4, 0x5a, 0x04, 0xf5, 0xf4, 0x83, 0x00, 0x00, 0x10, 0x00, // IID13343 - 0x4b, 0x81, 0xb4, 0x23, 0x2b, 0xd7, 0xb7, 0x1f, 0x00, 0x00, 0x10, 0x00, // IID13344 - 0x4b, 0x81, 0xb4, 0xec, 0xe0, 0x89, 0xdd, 0x29, 0x00, 0x00, 0x10, 0x00, // IID13345 - 0x49, 0x81, 0xb5, 0x9e, 0xb9, 0x33, 0xa8, 0x00, 0x00, 0x10, 0x00, // IID13346 - 0x4b, 0x81, 0xb4, 0xbe, 0x56, 0x83, 0x2c, 0xc4, 0x00, 0x00, 0x10, 0x00, // IID13347 - 0xd5, 0x29, 0x81, 0xb4, 0x07, 0x74, 0x1a, 0x5b, 0x1a, 0x00, 0x00, 0x10, 0x00, // IID13348 - 0xd5, 0x38, 0x81, 0xb4, 0xc8, 0x43, 0xfc, 0xa9, 0x62, 0x00, 0x00, 0x10, 0x00, // IID13349 - 0xd5, 0x18, 0x81, 0xb1, 0x39, 0xbf, 0xd5, 0x0d, 0x00, 0x00, 0x10, 0x00, // IID13350 - 0xd5, 0x38, 0x81, 0xb4, 0x1a, 0xe7, 0x90, 0x27, 0xcd, 0x00, 0x00, 0x10, 0x00, // IID13351 - 0xd5, 0x38, 0x81, 0xb4, 0x63, 0xfc, 0x15, 0xc4, 0x9c, 0x00, 0x00, 0x10, 0x00, // IID13352 - 0xd5, 0x38, 0x81, 0xb4, 0x2c, 0xce, 0x54, 0x05, 0x9e, 0x00, 0x00, 0x10, 0x00, // IID13353 - 0xd5, 0x38, 0x81, 0xb4, 0x75, 0x5c, 0xc6, 0xec, 0x52, 0x00, 0x00, 0x10, 0x00, // IID13354 - 0xd5, 0x38, 0x81, 0xb4, 0x7e, 0x44, 0x55, 0x08, 0x40, 0x00, 0x00, 0x10, 0x00, // IID13355 - 0xd5, 0x3a, 0x81, 0xb4, 0x47, 0x8e, 0x69, 0x32, 0x5b, 0x00, 0x00, 0x10, 0x00, // IID13356 - 0xd5, 0x3b, 0x81, 0xb4, 0xc8, 0x89, 0x81, 0x5f, 0x60, 0x00, 0x00, 0x10, 0x00, // IID13357 - 0xd5, 0x3b, 0x81, 0xb4, 0x91, 0x48, 0x5c, 0x2a, 0xcb, 0x00, 0x00, 0x10, 0x00, // IID13358 - 0xd5, 0x19, 0x81, 0xb2, 0x77, 0xb8, 0x8b, 0xf3, 0x00, 0x00, 0x10, 0x00, // IID13359 - 0xd5, 0x3b, 0x81, 0xb4, 0xa3, 0x94, 0xb3, 0xa6, 0x98, 0x00, 0x00, 0x10, 0x00, // IID13360 - 0xd5, 0x19, 0x81, 0xb4, 0x24, 0x58, 0x23, 0x88, 0xe4, 0x00, 0x00, 0x10, 0x00, // IID13361 - 0xd5, 0x19, 0x81, 0xb5, 0xaa, 0x72, 0x1f, 0x2f, 0x00, 0x00, 0x10, 0x00, // IID13362 - 0xd5, 0x19, 0x81, 0xb6, 0x30, 0x66, 0x03, 0x3c, 0x00, 0x00, 0x10, 0x00, // IID13363 - 0xd5, 0x19, 0x81, 0xb4, 0x8f, 0x3d, 0x0a, 0xb7, 0x1d, 0x00, 0x00, 0x10, 0x00, // IID13364 - 0x48, 0x81, 0xb4, 0x91, 0xb3, 0x71, 0xb5, 0x70, 0x00, 0x00, 0x00, 0x01, // IID13365 - 0x48, 0x81, 0xb4, 0x5a, 0xa2, 0xed, 0x9f, 0xf9, 0x00, 0x00, 0x00, 0x01, // IID13366 - 0x4a, 0x81, 0xb4, 0x83, 0x3b, 0xd7, 0x3d, 0xb8, 0x00, 0x00, 0x00, 0x01, // IID13367 - 0x4b, 0x81, 0xb4, 0x08, 0xc7, 0x84, 0x1d, 0x66, 0x00, 0x00, 0x00, 0x01, // IID13368 - 0x4b, 0x81, 0xb4, 0x11, 0x24, 0xd3, 0x73, 0xe5, 0x00, 0x00, 0x00, 0x01, // IID13369 - 0x4b, 0x81, 0xb4, 0x5a, 0x5d, 0x02, 0xdc, 0x13, 0x00, 0x00, 0x00, 0x01, // IID13370 - 0x4b, 0x81, 0xb4, 0x23, 0xc5, 0x21, 0x8a, 0x95, 0x00, 0x00, 0x00, 0x01, // IID13371 - 0x49, 0x81, 0xb4, 0x24, 0x41, 0xbf, 0x9c, 0x82, 0x00, 0x00, 0x00, 0x01, // IID13372 - 0x4b, 0x81, 0xb4, 0x75, 0x0f, 0x61, 0xc5, 0xcb, 0x00, 0x00, 0x00, 0x01, // IID13373 - 0x49, 0x81, 0xb6, 0x00, 0xde, 0xb5, 0x69, 0x00, 0x00, 0x00, 0x01, // IID13374 - 0xd5, 0x29, 0x81, 0xb4, 0xc7, 0x0b, 0x5f, 0x47, 0x86, 0x00, 0x00, 0x00, 0x01, // IID13375 - 0xd5, 0x38, 0x81, 0xb4, 0x88, 0x04, 0x69, 0x49, 0xe8, 0x00, 0x00, 0x00, 0x01, // IID13376 - 0xd5, 0x38, 0x81, 0xb4, 0x51, 0xd9, 0x44, 0x6f, 0x9b, 0x00, 0x00, 0x00, 0x01, // IID13377 - 0xd5, 0x38, 0x81, 0xb4, 0x5a, 0x83, 0x22, 0xe8, 0x78, 0x00, 0x00, 0x00, 0x01, // IID13378 - 0xd5, 0x38, 0x81, 0xb4, 0xa3, 0x1b, 0x23, 0xf0, 0x42, 0x00, 0x00, 0x00, 0x01, // IID13379 - 0xd5, 0x38, 0x81, 0xb4, 0xac, 0x41, 0x69, 0xd3, 0x9a, 0x00, 0x00, 0x00, 0x01, // IID13380 - 0xd5, 0x38, 0x81, 0xb4, 0xf5, 0x18, 0x30, 0x2b, 0x0c, 0x00, 0x00, 0x00, 0x01, // IID13381 - 0xd5, 0x38, 0x81, 0xb4, 0xbe, 0xc6, 0x45, 0x5b, 0x13, 0x00, 0x00, 0x00, 0x01, // IID13382 - 0xd5, 0x3a, 0x81, 0xb4, 0x07, 0x3d, 0xf5, 0xce, 0x88, 0x00, 0x00, 0x00, 0x01, // IID13383 - 0xd5, 0x3b, 0x81, 0xb4, 0x88, 0x22, 0xba, 0xbc, 0x32, 0x00, 0x00, 0x00, 0x01, // IID13384 - 0xd5, 0x3b, 0x81, 0xb4, 0xd1, 0x3d, 0x95, 0x03, 0xb0, 0x00, 0x00, 0x00, 0x01, // IID13385 - 0xd5, 0x19, 0x81, 0xb2, 0x96, 0xed, 0xb7, 0xc9, 0x00, 0x00, 0x00, 0x01, // IID13386 - 0xd5, 0x3b, 0x81, 0xb4, 0x63, 0xa3, 0xcf, 0xae, 0x0a, 0x00, 0x00, 0x00, 0x01, // IID13387 - 0xd5, 0x19, 0x81, 0xb4, 0x24, 0x6a, 0xe3, 0x35, 0x85, 0x00, 0x00, 0x00, 0x01, // IID13388 - 0xd5, 0x3b, 0x81, 0xb4, 0x35, 0xd6, 0x00, 0x73, 0x0b, 0x00, 0x00, 0x00, 0x01, // IID13389 - 0xd5, 0x3b, 0x81, 0xb4, 0xbe, 0xd2, 0xd7, 0x77, 0x9e, 0x00, 0x00, 0x00, 0x01, // IID13390 - 0xd5, 0x19, 0x81, 0xb4, 0x4f, 0x3b, 0x72, 0x3e, 0xb3, 0x00, 0x00, 0x00, 0x01, // IID13391 - 0x48, 0x81, 0xb4, 0xd1, 0x9b, 0x90, 0x09, 0x47, 0x00, 0x00, 0x00, 0x10, // IID13392 - 0x48, 0x81, 0xb2, 0xba, 0xa8, 0xa4, 0xa6, 0x00, 0x00, 0x00, 0x10, // IID13393 - 0x4a, 0x81, 0xb4, 0x43, 0x03, 0x59, 0xcd, 0xbf, 0x00, 0x00, 0x00, 0x10, // IID13394 - 0x4b, 0x81, 0xb4, 0x88, 0x78, 0x9a, 0x37, 0x90, 0x00, 0x00, 0x00, 0x10, // IID13395 - 0x4b, 0x81, 0xb4, 0x51, 0xc6, 0x45, 0x12, 0x60, 0x00, 0x00, 0x00, 0x10, // IID13396 - 0x4b, 0x81, 0xb4, 0xda, 0x52, 0x06, 0x20, 0xd5, 0x00, 0x00, 0x00, 0x10, // IID13397 - 0x4b, 0x81, 0xb4, 0x63, 0x48, 0x35, 0x25, 0xc4, 0x00, 0x00, 0x00, 0x10, // IID13398 - 0x4b, 0x81, 0xb4, 0xac, 0xc8, 0x50, 0xe7, 0xb3, 0x00, 0x00, 0x00, 0x10, // IID13399 - 0x49, 0x81, 0xb5, 0x4b, 0x28, 0x39, 0x2e, 0x00, 0x00, 0x00, 0x10, // IID13400 - 0x4b, 0x81, 0xb4, 0x7e, 0x70, 0x4d, 0x61, 0x15, 0x00, 0x00, 0x00, 0x10, // IID13401 - 0xd5, 0x29, 0x81, 0xb4, 0x07, 0x15, 0xa7, 0x5d, 0xb1, 0x00, 0x00, 0x00, 0x10, // IID13402 - 0xd5, 0x38, 0x81, 0xb4, 0x48, 0x82, 0x37, 0xb9, 0xce, 0x00, 0x00, 0x00, 0x10, // IID13403 - 0xd5, 0x18, 0x81, 0xb1, 0xf4, 0xee, 0xcb, 0xd1, 0x00, 0x00, 0x00, 0x10, // IID13404 - 0xd5, 0x38, 0x81, 0xb4, 0x9a, 0x2e, 0xdb, 0x91, 0x8c, 0x00, 0x00, 0x00, 0x10, // IID13405 - 0xd5, 0x38, 0x81, 0xb4, 0x63, 0x0f, 0xfb, 0x67, 0x0b, 0x00, 0x00, 0x00, 0x10, // IID13406 - 0xd5, 0x38, 0x81, 0xb4, 0x6c, 0x0a, 0x49, 0xbb, 0x1a, 0x00, 0x00, 0x00, 0x10, // IID13407 - 0xd5, 0x38, 0x81, 0xb4, 0xb5, 0xa5, 0x9e, 0x3b, 0xff, 0x00, 0x00, 0x00, 0x10, // IID13408 - 0xd5, 0x38, 0x81, 0xb4, 0xbe, 0x07, 0x65, 0xcf, 0xe8, 0x00, 0x00, 0x00, 0x10, // IID13409 - 0xd5, 0x3a, 0x81, 0xb4, 0x87, 0x73, 0x57, 0x7d, 0x7d, 0x00, 0x00, 0x00, 0x10, // IID13410 - 0xd5, 0x3b, 0x81, 0xb4, 0x48, 0x6b, 0xd0, 0xd7, 0x91, 0x00, 0x00, 0x00, 0x10, // IID13411 - 0xd5, 0x3b, 0x81, 0xb4, 0xd1, 0x34, 0xdb, 0xc5, 0x9a, 0x00, 0x00, 0x00, 0x10, // IID13412 - 0xd5, 0x3b, 0x81, 0xb4, 0x5a, 0x91, 0xd1, 0x45, 0x1f, 0x00, 0x00, 0x00, 0x10, // IID13413 - 0xd5, 0x3b, 0x81, 0xb4, 0x63, 0xe6, 0xc8, 0xda, 0xa8, 0x00, 0x00, 0x00, 0x10, // IID13414 - 0xd5, 0x3b, 0x81, 0xb4, 0xac, 0x13, 0xb1, 0x99, 0x39, 0x00, 0x00, 0x00, 0x10, // IID13415 - 0xd5, 0x3b, 0x81, 0xb4, 0xb5, 0x57, 0xad, 0x81, 0x36, 0x00, 0x00, 0x00, 0x10, // IID13416 - 0xd5, 0x19, 0x81, 0xb6, 0x8e, 0x89, 0xbf, 0x32, 0x00, 0x00, 0x00, 0x10, // IID13417 - 0xd5, 0x19, 0x81, 0xb4, 0x0f, 0x6e, 0xf3, 0x55, 0xc1, 0x00, 0x00, 0x00, 0x10, // IID13418 - 0x48, 0x83, 0x8c, 0x91, 0xe3, 0xf3, 0x42, 0xc6, 0x01, // IID13419 - 0x48, 0x83, 0x8c, 0x9a, 0x24, 0x2a, 0x21, 0x5e, 0x01, // IID13420 - 0x4a, 0x83, 0x8c, 0x83, 0x37, 0x50, 0x70, 0x11, 0x01, // IID13421 - 0x4b, 0x83, 0x8c, 0x48, 0x20, 0xc6, 0xd9, 0x31, 0x01, // IID13422 - 0x4b, 0x83, 0x8c, 0xd1, 0x16, 0xb1, 0xd2, 0x8e, 0x01, // IID13423 - 0x4b, 0x83, 0x8c, 0xda, 0x34, 0xb7, 0x7a, 0xed, 0x01, // IID13424 - 0x4b, 0x83, 0x8c, 0xa3, 0xbf, 0x72, 0x7e, 0x28, 0x01, // IID13425 - 0x4b, 0x83, 0x8c, 0xec, 0xd6, 0x4b, 0x67, 0x9c, 0x01, // IID13426 - 0x4b, 0x83, 0x8c, 0xf5, 0xb2, 0x00, 0xa5, 0x31, 0x01, // IID13427 - 0x4b, 0x83, 0x8c, 0x7e, 0xb5, 0x4d, 0xd7, 0xb8, 0x01, // IID13428 - 0xd5, 0x29, 0x83, 0x8c, 0x87, 0xbf, 0x85, 0xa3, 0x90, 0x01, // IID13429 - 0xd5, 0x18, 0x83, 0x88, 0xe6, 0x87, 0x74, 0x3a, 0x01, // IID13430 - 0xd5, 0x38, 0x83, 0x8c, 0x91, 0x98, 0xea, 0x2a, 0x87, 0x01, // IID13431 - 0xd5, 0x38, 0x83, 0x8c, 0x9a, 0x29, 0x6f, 0x6a, 0x97, 0x01, // IID13432 - 0xd5, 0x18, 0x83, 0x8b, 0x61, 0x33, 0x36, 0xbd, 0x01, // IID13433 - 0xd5, 0x38, 0x83, 0x8c, 0xac, 0x24, 0xf5, 0xb0, 0x19, 0x01, // IID13434 - 0xd5, 0x18, 0x83, 0x8d, 0xb1, 0xdc, 0x7f, 0xd5, 0x01, // IID13435 - 0xd5, 0x18, 0x83, 0x8e, 0x54, 0x8b, 0x99, 0xd9, 0x01, // IID13436 - 0xd5, 0x18, 0x83, 0x8f, 0x3e, 0xe7, 0x96, 0x39, 0x01, // IID13437 - 0xd5, 0x3b, 0x83, 0x8c, 0xc8, 0x97, 0x7d, 0xf3, 0xb2, 0x01, // IID13438 - 0xd5, 0x3b, 0x83, 0x8c, 0x51, 0xb7, 0xde, 0x2f, 0x88, 0x01, // IID13439 - 0xd5, 0x3b, 0x83, 0x8c, 0x5a, 0xef, 0x04, 0xa3, 0x47, 0x01, // IID13440 - 0xd5, 0x3b, 0x83, 0x8c, 0xa3, 0x70, 0xb8, 0x4e, 0xcd, 0x01, // IID13441 - 0xd5, 0x3b, 0x83, 0x8c, 0xec, 0xd8, 0x85, 0xeb, 0x3a, 0x01, // IID13442 - 0xd5, 0x19, 0x83, 0x8d, 0xa1, 0x1d, 0x0b, 0x47, 0x01, // IID13443 - 0xd5, 0x3b, 0x83, 0x8c, 0x7e, 0xa1, 0x1a, 0x3f, 0xf8, 0x01, // IID13444 - 0xd5, 0x19, 0x83, 0x8f, 0xf6, 0xc3, 0x5a, 0x40, 0x01, // IID13445 - 0x48, 0x83, 0x8c, 0xd1, 0xa1, 0x90, 0xa1, 0x7a, 0x10, // IID13446 - 0x48, 0x83, 0x8c, 0x1a, 0x87, 0x28, 0xa4, 0x37, 0x10, // IID13447 - 0x4a, 0x83, 0x8c, 0x83, 0xb1, 0x2c, 0x48, 0xa0, 0x10, // IID13448 - 0x4b, 0x83, 0x8c, 0x08, 0x8c, 0xef, 0x0d, 0x2d, 0x10, // IID13449 - 0x4b, 0x83, 0x8c, 0x91, 0xe2, 0xdb, 0x9a, 0x9e, 0x10, // IID13450 - 0x4b, 0x83, 0x8c, 0x1a, 0xc9, 0xa4, 0x6a, 0xcc, 0x10, // IID13451 - 0x4b, 0x83, 0x8c, 0x23, 0x00, 0x23, 0xc9, 0xf9, 0x10, // IID13452 - 0x4b, 0x83, 0x8c, 0xec, 0xb0, 0xc1, 0x80, 0x43, 0x10, // IID13453 - 0x4b, 0x83, 0x8c, 0x75, 0xd4, 0xd8, 0x54, 0x8f, 0x10, // IID13454 - 0x4b, 0x83, 0x8c, 0x3e, 0xc7, 0xac, 0x70, 0x01, 0x10, // IID13455 - 0x49, 0x83, 0x8f, 0x10, 0x6c, 0x96, 0xd1, 0x10, // IID13456 - 0xd5, 0x18, 0x83, 0x88, 0x39, 0x67, 0xa1, 0xb4, 0x10, // IID13457 - 0xd5, 0x38, 0x83, 0x8c, 0x91, 0xad, 0x45, 0x6e, 0xec, 0x10, // IID13458 - 0xd5, 0x38, 0x83, 0x8c, 0xda, 0xd2, 0x1a, 0x80, 0x33, 0x10, // IID13459 - 0xd5, 0x38, 0x83, 0x8c, 0x63, 0x24, 0xa6, 0x32, 0x29, 0x10, // IID13460 - 0xd5, 0x38, 0x83, 0x8c, 0x2c, 0xf3, 0xe7, 0x29, 0xf7, 0x10, // IID13461 - 0xd5, 0x18, 0x83, 0x8d, 0x69, 0x3b, 0xc7, 0xcb, 0x10, // IID13462 - 0xd5, 0x18, 0x83, 0x8e, 0x76, 0x1c, 0x27, 0xb0, 0x10, // IID13463 - 0xd5, 0x18, 0x83, 0x8f, 0x21, 0xb6, 0xd8, 0x88, 0x10, // IID13464 - 0xd5, 0x3b, 0x83, 0x8c, 0x08, 0xc4, 0xb9, 0xf5, 0x0b, 0x10, // IID13465 - 0xd5, 0x19, 0x83, 0x89, 0xb6, 0x89, 0x84, 0xc5, 0x10, // IID13466 - 0xd5, 0x19, 0x83, 0x8a, 0xf4, 0x95, 0x58, 0x04, 0x10, // IID13467 - 0xd5, 0x3b, 0x83, 0x8c, 0xa3, 0xba, 0xf5, 0x17, 0x6d, 0x10, // IID13468 - 0xd5, 0x19, 0x83, 0x8c, 0x24, 0x0f, 0x54, 0x44, 0xd1, 0x10, // IID13469 - 0xd5, 0x3b, 0x83, 0x8c, 0xf5, 0xab, 0x48, 0xb4, 0xf7, 0x10, // IID13470 - 0xd5, 0x3b, 0x83, 0x8c, 0x3e, 0x23, 0xfe, 0x92, 0x5a, 0x10, // IID13471 - 0xd5, 0x19, 0x83, 0x8c, 0x4f, 0xaa, 0x32, 0xa3, 0x83, 0x10, // IID13472 - 0x48, 0x81, 0x8c, 0xd1, 0x0a, 0x67, 0xc8, 0x3b, 0x00, 0x01, 0x00, 0x00, // IID13473 - 0x48, 0x81, 0x8a, 0xc9, 0x8d, 0x92, 0x1c, 0x00, 0x01, 0x00, 0x00, // IID13474 - 0x4a, 0x81, 0x8c, 0xc3, 0x46, 0x03, 0x83, 0x7f, 0x00, 0x01, 0x00, 0x00, // IID13475 - 0x4b, 0x81, 0x8c, 0xc8, 0x31, 0x7b, 0xdb, 0x05, 0x00, 0x01, 0x00, 0x00, // IID13476 - 0x4b, 0x81, 0x8c, 0x11, 0x3c, 0x57, 0x9d, 0xdb, 0x00, 0x01, 0x00, 0x00, // IID13477 - 0x4b, 0x81, 0x8c, 0x9a, 0x9f, 0xb7, 0x94, 0xf2, 0x00, 0x01, 0x00, 0x00, // IID13478 - 0x49, 0x81, 0x8b, 0x84, 0x36, 0x50, 0xac, 0x00, 0x01, 0x00, 0x00, // IID13479 - 0x4b, 0x81, 0x8c, 0xec, 0x6b, 0xc6, 0xb1, 0xed, 0x00, 0x01, 0x00, 0x00, // IID13480 - 0x4b, 0x81, 0x8c, 0x35, 0x16, 0xa1, 0xb0, 0x1b, 0x00, 0x01, 0x00, 0x00, // IID13481 - 0x4b, 0x81, 0x8c, 0x7e, 0x0e, 0xed, 0x62, 0x24, 0x00, 0x01, 0x00, 0x00, // IID13482 - 0x49, 0x81, 0x8f, 0xab, 0x5e, 0x5d, 0x3b, 0x00, 0x01, 0x00, 0x00, // IID13483 - 0xd5, 0x18, 0x81, 0x88, 0x4c, 0x61, 0x6f, 0x4a, 0x00, 0x01, 0x00, 0x00, // IID13484 - 0xd5, 0x38, 0x81, 0x8c, 0x91, 0x10, 0xad, 0x1e, 0xd0, 0x00, 0x01, 0x00, 0x00, // IID13485 - 0xd5, 0x38, 0x81, 0x8c, 0x9a, 0xdc, 0x87, 0xbc, 0x75, 0x00, 0x01, 0x00, 0x00, // IID13486 - 0xd5, 0x18, 0x81, 0x8b, 0x3f, 0xaa, 0xa2, 0x06, 0x00, 0x01, 0x00, 0x00, // IID13487 - 0xd5, 0x18, 0x81, 0x8c, 0x24, 0xec, 0xbb, 0x12, 0x7a, 0x00, 0x01, 0x00, 0x00, // IID13488 - 0xd5, 0x38, 0x81, 0x8c, 0x75, 0xba, 0x9e, 0xb1, 0x39, 0x00, 0x01, 0x00, 0x00, // IID13489 - 0xd5, 0x38, 0x81, 0x8c, 0xfe, 0xfa, 0xa3, 0x0a, 0x89, 0x00, 0x01, 0x00, 0x00, // IID13490 - 0xd5, 0x3a, 0x81, 0x8c, 0x07, 0xfc, 0x08, 0x42, 0x13, 0x00, 0x01, 0x00, 0x00, // IID13491 - 0xd5, 0x3b, 0x81, 0x8c, 0xc8, 0xbc, 0xf7, 0xe2, 0xed, 0x00, 0x01, 0x00, 0x00, // IID13492 - 0xd5, 0x3b, 0x81, 0x8c, 0x51, 0xcf, 0x82, 0x64, 0x9b, 0x00, 0x01, 0x00, 0x00, // IID13493 - 0xd5, 0x19, 0x81, 0x8a, 0x5c, 0x01, 0xa9, 0x21, 0x00, 0x01, 0x00, 0x00, // IID13494 - 0xd5, 0x19, 0x81, 0x8b, 0x13, 0xc4, 0x1d, 0xee, 0x00, 0x01, 0x00, 0x00, // IID13495 - 0xd5, 0x19, 0x81, 0x8c, 0x24, 0x01, 0x27, 0xae, 0xe5, 0x00, 0x01, 0x00, 0x00, // IID13496 - 0xd5, 0x3b, 0x81, 0x8c, 0xb5, 0xea, 0xf4, 0x69, 0xde, 0x00, 0x01, 0x00, 0x00, // IID13497 - 0xd5, 0x3b, 0x81, 0x8c, 0x7e, 0xb5, 0xfe, 0x8b, 0x45, 0x00, 0x01, 0x00, 0x00, // IID13498 - 0xd5, 0x19, 0x81, 0x8f, 0xc3, 0x5d, 0x1b, 0x01, 0x00, 0x01, 0x00, 0x00, // IID13499 - 0x48, 0x81, 0x8c, 0x51, 0xdc, 0xc8, 0xbc, 0x2e, 0x00, 0x10, 0x00, 0x00, // IID13500 - 0x48, 0x81, 0x8c, 0x5a, 0xc8, 0xff, 0xac, 0xbb, 0x00, 0x10, 0x00, 0x00, // IID13501 - 0x48, 0x81, 0x8b, 0xf8, 0x97, 0x96, 0x8d, 0x00, 0x10, 0x00, 0x00, // IID13502 - 0x49, 0x81, 0x88, 0x16, 0x90, 0xea, 0x3d, 0x00, 0x10, 0x00, 0x00, // IID13503 - 0x4b, 0x81, 0x8c, 0x11, 0x9b, 0xd5, 0x8f, 0x0f, 0x00, 0x10, 0x00, 0x00, // IID13504 - 0x4b, 0x81, 0x8c, 0x9a, 0x82, 0xf9, 0x84, 0xac, 0x00, 0x10, 0x00, 0x00, // IID13505 - 0x4b, 0x81, 0x8c, 0x23, 0x07, 0xec, 0xc0, 0xc9, 0x00, 0x10, 0x00, 0x00, // IID13506 - 0x4b, 0x81, 0x8c, 0x6c, 0xd9, 0x52, 0xdf, 0xbf, 0x00, 0x10, 0x00, 0x00, // IID13507 - 0x49, 0x81, 0x8d, 0xb3, 0xef, 0x96, 0x48, 0x00, 0x10, 0x00, 0x00, // IID13508 - 0x4b, 0x81, 0x8c, 0xbe, 0x7c, 0x92, 0xb7, 0xf6, 0x00, 0x10, 0x00, 0x00, // IID13509 - 0xd5, 0x29, 0x81, 0x8c, 0x87, 0xdc, 0xbe, 0xf2, 0x3e, 0x00, 0x10, 0x00, 0x00, // IID13510 - 0xd5, 0x38, 0x81, 0x8c, 0x08, 0x6c, 0x56, 0x7c, 0xb9, 0x00, 0x10, 0x00, 0x00, // IID13511 - 0xd5, 0x38, 0x81, 0x8c, 0xd1, 0x90, 0x2b, 0x30, 0xcc, 0x00, 0x10, 0x00, 0x00, // IID13512 - 0xd5, 0x38, 0x81, 0x8c, 0x5a, 0x41, 0x16, 0x6f, 0x09, 0x00, 0x10, 0x00, 0x00, // IID13513 - 0xd5, 0x38, 0x81, 0x8c, 0xa3, 0xce, 0x56, 0xd7, 0x23, 0x00, 0x10, 0x00, 0x00, // IID13514 - 0xd5, 0x38, 0x81, 0x8c, 0x2c, 0x3c, 0xc2, 0x92, 0xf1, 0x00, 0x10, 0x00, 0x00, // IID13515 - 0xd5, 0x38, 0x81, 0x8c, 0xb5, 0xd4, 0x7d, 0x02, 0x14, 0x00, 0x10, 0x00, 0x00, // IID13516 - 0xd5, 0x38, 0x81, 0x8c, 0x3e, 0xa0, 0xf6, 0x3f, 0xe7, 0x00, 0x10, 0x00, 0x00, // IID13517 - 0xd5, 0x3a, 0x81, 0x8c, 0xc7, 0xac, 0x92, 0xe6, 0x6d, 0x00, 0x10, 0x00, 0x00, // IID13518 - 0xd5, 0x3b, 0x81, 0x8c, 0x48, 0xcd, 0x36, 0x95, 0xd3, 0x00, 0x10, 0x00, 0x00, // IID13519 - 0xd5, 0x3b, 0x81, 0x8c, 0x11, 0xb2, 0x36, 0xc0, 0x3d, 0x00, 0x10, 0x00, 0x00, // IID13520 - 0xd5, 0x3b, 0x81, 0x8c, 0xda, 0xf7, 0xe3, 0x89, 0xb8, 0x00, 0x10, 0x00, 0x00, // IID13521 - 0xd5, 0x3b, 0x81, 0x8c, 0x23, 0x66, 0xd0, 0xfd, 0x4e, 0x00, 0x10, 0x00, 0x00, // IID13522 - 0xd5, 0x19, 0x81, 0x8c, 0x24, 0x24, 0x25, 0xab, 0xac, 0x00, 0x10, 0x00, 0x00, // IID13523 - 0xd5, 0x3b, 0x81, 0x8c, 0xf5, 0x69, 0xb9, 0x0e, 0x88, 0x00, 0x10, 0x00, 0x00, // IID13524 - 0xd5, 0x3b, 0x81, 0x8c, 0x3e, 0x49, 0x0b, 0x1c, 0x73, 0x00, 0x10, 0x00, 0x00, // IID13525 - 0xd5, 0x19, 0x81, 0x8c, 0x0f, 0x5a, 0x48, 0xf8, 0x5d, 0x00, 0x10, 0x00, 0x00, // IID13526 - 0x48, 0x81, 0x8c, 0x51, 0xda, 0x1a, 0xb8, 0xe5, 0x00, 0x00, 0x01, 0x00, // IID13527 - 0x48, 0x81, 0x8c, 0x9a, 0x57, 0x71, 0xf8, 0xed, 0x00, 0x00, 0x01, 0x00, // IID13528 - 0x48, 0x81, 0x8b, 0x9c, 0x68, 0xd6, 0x5c, 0x00, 0x00, 0x01, 0x00, // IID13529 - 0x49, 0x81, 0x88, 0xfe, 0xe9, 0xba, 0xc1, 0x00, 0x00, 0x01, 0x00, // IID13530 - 0x49, 0x81, 0x89, 0xaf, 0x07, 0x06, 0xee, 0x00, 0x00, 0x01, 0x00, // IID13531 - 0x4b, 0x81, 0x8c, 0x9a, 0x30, 0x2d, 0xa8, 0x8b, 0x00, 0x00, 0x01, 0x00, // IID13532 - 0x4b, 0x81, 0x8c, 0xa3, 0xfe, 0x90, 0xb8, 0xf5, 0x00, 0x00, 0x01, 0x00, // IID13533 - 0x49, 0x81, 0x8c, 0x24, 0x3b, 0x69, 0xe7, 0x40, 0x00, 0x00, 0x01, 0x00, // IID13534 - 0x4b, 0x81, 0x8c, 0xf5, 0xed, 0x75, 0xcf, 0x26, 0x00, 0x00, 0x01, 0x00, // IID13535 - 0x4b, 0x81, 0x8c, 0xfe, 0x32, 0xdc, 0x94, 0x82, 0x00, 0x00, 0x01, 0x00, // IID13536 - 0xd5, 0x29, 0x81, 0x8c, 0x47, 0xb0, 0xc6, 0x5f, 0x4c, 0x00, 0x00, 0x01, 0x00, // IID13537 - 0xd5, 0x18, 0x81, 0x88, 0xbb, 0x4e, 0xb7, 0xab, 0x00, 0x00, 0x01, 0x00, // IID13538 - 0xd5, 0x38, 0x81, 0x8c, 0x11, 0x29, 0xa4, 0x92, 0x4e, 0x00, 0x00, 0x01, 0x00, // IID13539 - 0xd5, 0x38, 0x81, 0x8c, 0x5a, 0xbb, 0x00, 0x92, 0x8e, 0x00, 0x00, 0x01, 0x00, // IID13540 - 0xd5, 0x38, 0x81, 0x8c, 0xe3, 0x6a, 0x95, 0xfd, 0xfb, 0x00, 0x00, 0x01, 0x00, // IID13541 - 0xd5, 0x38, 0x81, 0x8c, 0xec, 0x28, 0x59, 0x6d, 0x10, 0x00, 0x00, 0x01, 0x00, // IID13542 - 0xd5, 0x18, 0x81, 0x8d, 0xb5, 0x5a, 0x86, 0x2e, 0x00, 0x00, 0x01, 0x00, // IID13543 - 0xd5, 0x38, 0x81, 0x8c, 0x3e, 0x83, 0x37, 0x03, 0x1e, 0x00, 0x00, 0x01, 0x00, // IID13544 - 0xd5, 0x3a, 0x81, 0x8c, 0x47, 0x5a, 0x5e, 0x94, 0xfa, 0x00, 0x00, 0x01, 0x00, // IID13545 - 0xd5, 0x3b, 0x81, 0x8c, 0xc8, 0xde, 0x78, 0x0f, 0xc8, 0x00, 0x00, 0x01, 0x00, // IID13546 - 0xd5, 0x3b, 0x81, 0x8c, 0x51, 0xf0, 0xd6, 0x06, 0x50, 0x00, 0x00, 0x01, 0x00, // IID13547 - 0xd5, 0x3b, 0x81, 0x8c, 0x1a, 0x0a, 0xfb, 0x06, 0x41, 0x00, 0x00, 0x01, 0x00, // IID13548 - 0xd5, 0x19, 0x81, 0x8b, 0x14, 0x2a, 0xcd, 0x95, 0x00, 0x00, 0x01, 0x00, // IID13549 - 0xd5, 0x19, 0x81, 0x8c, 0x24, 0x7f, 0x44, 0xfd, 0x8a, 0x00, 0x00, 0x01, 0x00, // IID13550 - 0xd5, 0x3b, 0x81, 0x8c, 0x75, 0x93, 0x0a, 0x8a, 0x47, 0x00, 0x00, 0x01, 0x00, // IID13551 - 0xd5, 0x3b, 0x81, 0x8c, 0xfe, 0xb9, 0x98, 0x5e, 0xe5, 0x00, 0x00, 0x01, 0x00, // IID13552 - 0xd5, 0x19, 0x81, 0x8c, 0x4f, 0x80, 0xd6, 0x84, 0x85, 0x00, 0x00, 0x01, 0x00, // IID13553 - 0x48, 0x81, 0x8c, 0xd1, 0x6a, 0x36, 0x9d, 0xa9, 0x00, 0x00, 0x10, 0x00, // IID13554 - 0x48, 0x81, 0x8a, 0x52, 0xca, 0xd8, 0x29, 0x00, 0x00, 0x10, 0x00, // IID13555 - 0x4a, 0x81, 0x8c, 0x03, 0x78, 0x09, 0xc7, 0xdf, 0x00, 0x00, 0x10, 0x00, // IID13556 - 0x4b, 0x81, 0x8c, 0x08, 0xd8, 0x29, 0xfa, 0x97, 0x00, 0x00, 0x10, 0x00, // IID13557 - 0x4b, 0x81, 0x8c, 0x51, 0xb5, 0x48, 0x0d, 0xfa, 0x00, 0x00, 0x10, 0x00, // IID13558 - 0x4b, 0x81, 0x8c, 0x9a, 0x21, 0x95, 0x2d, 0x7d, 0x00, 0x00, 0x10, 0x00, // IID13559 - 0x4b, 0x81, 0x8c, 0xa3, 0x2d, 0xae, 0x9f, 0x6d, 0x00, 0x00, 0x10, 0x00, // IID13560 - 0x4b, 0x81, 0x8c, 0xec, 0x5f, 0x53, 0x75, 0x1b, 0x00, 0x00, 0x10, 0x00, // IID13561 - 0x49, 0x81, 0x8d, 0xf1, 0xd7, 0xc1, 0xf0, 0x00, 0x00, 0x10, 0x00, // IID13562 - 0x4b, 0x81, 0x8c, 0x3e, 0x3b, 0x8a, 0x06, 0x89, 0x00, 0x00, 0x10, 0x00, // IID13563 - 0x49, 0x81, 0x8f, 0x46, 0x70, 0xb8, 0x67, 0x00, 0x00, 0x10, 0x00, // IID13564 - 0xd5, 0x38, 0x81, 0x8c, 0x08, 0x29, 0x11, 0x80, 0x08, 0x00, 0x00, 0x10, 0x00, // IID13565 - 0xd5, 0x38, 0x81, 0x8c, 0x91, 0x41, 0xff, 0x9d, 0x6b, 0x00, 0x00, 0x10, 0x00, // IID13566 - 0xd5, 0x38, 0x81, 0x8c, 0x1a, 0x1f, 0xa5, 0x72, 0x85, 0x00, 0x00, 0x10, 0x00, // IID13567 - 0xd5, 0x38, 0x81, 0x8c, 0xe3, 0x38, 0x28, 0x3b, 0x7c, 0x00, 0x00, 0x10, 0x00, // IID13568 - 0xd5, 0x38, 0x81, 0x8c, 0xec, 0x95, 0x3f, 0x66, 0xe9, 0x00, 0x00, 0x10, 0x00, // IID13569 - 0xd5, 0x38, 0x81, 0x8c, 0xb5, 0xa8, 0x02, 0xb4, 0x7f, 0x00, 0x00, 0x10, 0x00, // IID13570 - 0xd5, 0x38, 0x81, 0x8c, 0x3e, 0x69, 0xf7, 0x5d, 0x73, 0x00, 0x00, 0x10, 0x00, // IID13571 - 0xd5, 0x3a, 0x81, 0x8c, 0x87, 0xe0, 0x03, 0x1f, 0x9e, 0x00, 0x00, 0x10, 0x00, // IID13572 - 0xd5, 0x19, 0x81, 0x88, 0xdc, 0x9b, 0x8f, 0xe8, 0x00, 0x00, 0x10, 0x00, // IID13573 - 0xd5, 0x3b, 0x81, 0x8c, 0xd1, 0xe6, 0x5b, 0xd9, 0xeb, 0x00, 0x00, 0x10, 0x00, // IID13574 - 0xd5, 0x3b, 0x81, 0x8c, 0x1a, 0x3f, 0xb0, 0x47, 0x18, 0x00, 0x00, 0x10, 0x00, // IID13575 - 0xd5, 0x3b, 0x81, 0x8c, 0xe3, 0xd8, 0xdd, 0x7b, 0xdf, 0x00, 0x00, 0x10, 0x00, // IID13576 - 0xd5, 0x3b, 0x81, 0x8c, 0x2c, 0xc2, 0x25, 0x01, 0x96, 0x00, 0x00, 0x10, 0x00, // IID13577 - 0xd5, 0x3b, 0x81, 0x8c, 0xf5, 0x94, 0xfb, 0xb2, 0x08, 0x00, 0x00, 0x10, 0x00, // IID13578 - 0xd5, 0x3b, 0x81, 0x8c, 0x3e, 0xe8, 0xa6, 0x28, 0xc2, 0x00, 0x00, 0x10, 0x00, // IID13579 - 0xd5, 0x19, 0x81, 0x8c, 0x8f, 0xcd, 0x95, 0x36, 0x5a, 0x00, 0x00, 0x10, 0x00, // IID13580 - 0x48, 0x81, 0x8c, 0x91, 0xa9, 0x58, 0xe4, 0xfb, 0x00, 0x00, 0x00, 0x01, // IID13581 - 0x48, 0x81, 0x8c, 0x1a, 0xf5, 0xdc, 0xff, 0x1c, 0x00, 0x00, 0x00, 0x01, // IID13582 - 0x48, 0x81, 0x8b, 0xb4, 0x2d, 0x47, 0x20, 0x00, 0x00, 0x00, 0x01, // IID13583 - 0x4b, 0x81, 0x8c, 0x48, 0x47, 0xb2, 0x7c, 0x79, 0x00, 0x00, 0x00, 0x01, // IID13584 - 0x4b, 0x81, 0x8c, 0x11, 0xa0, 0x72, 0x2a, 0xb4, 0x00, 0x00, 0x00, 0x01, // IID13585 - 0x49, 0x81, 0x8a, 0xe4, 0x8b, 0xcd, 0xf3, 0x00, 0x00, 0x00, 0x01, // IID13586 - 0x4b, 0x81, 0x8c, 0x63, 0xb2, 0xb9, 0x58, 0xc5, 0x00, 0x00, 0x00, 0x01, // IID13587 - 0x4b, 0x81, 0x8c, 0x6c, 0x08, 0x87, 0xcc, 0x6d, 0x00, 0x00, 0x00, 0x01, // IID13588 - 0x4b, 0x81, 0x8c, 0xb5, 0x80, 0x72, 0x03, 0xfc, 0x00, 0x00, 0x00, 0x01, // IID13589 - 0x4b, 0x81, 0x8c, 0xbe, 0xf5, 0xf6, 0xd9, 0xa1, 0x00, 0x00, 0x00, 0x01, // IID13590 - 0xd5, 0x29, 0x81, 0x8c, 0x87, 0x56, 0xc9, 0x60, 0x7d, 0x00, 0x00, 0x00, 0x01, // IID13591 - 0xd5, 0x38, 0x81, 0x8c, 0x08, 0xa0, 0x94, 0xcd, 0xb7, 0x00, 0x00, 0x00, 0x01, // IID13592 - 0xd5, 0x38, 0x81, 0x8c, 0x51, 0xe8, 0xb6, 0x8b, 0xaa, 0x00, 0x00, 0x00, 0x01, // IID13593 - 0xd5, 0x38, 0x81, 0x8c, 0x5a, 0xd6, 0x7e, 0x7a, 0x30, 0x00, 0x00, 0x00, 0x01, // IID13594 - 0xd5, 0x38, 0x81, 0x8c, 0x23, 0xa3, 0x44, 0x5e, 0xad, 0x00, 0x00, 0x00, 0x01, // IID13595 - 0xd5, 0x38, 0x81, 0x8c, 0x6c, 0x22, 0x3e, 0xef, 0xaf, 0x00, 0x00, 0x00, 0x01, // IID13596 - 0xd5, 0x38, 0x81, 0x8c, 0xf5, 0x51, 0x4b, 0x53, 0xe8, 0x00, 0x00, 0x00, 0x01, // IID13597 - 0xd5, 0x38, 0x81, 0x8c, 0x7e, 0xe8, 0x5b, 0x53, 0xef, 0x00, 0x00, 0x00, 0x01, // IID13598 - 0xd5, 0x3a, 0x81, 0x8c, 0x47, 0xed, 0x56, 0x58, 0x46, 0x00, 0x00, 0x00, 0x01, // IID13599 - 0xd5, 0x3b, 0x81, 0x8c, 0x08, 0xb7, 0x94, 0x23, 0x53, 0x00, 0x00, 0x00, 0x01, // IID13600 - 0xd5, 0x3b, 0x81, 0x8c, 0x11, 0xa9, 0xdb, 0xc4, 0xa5, 0x00, 0x00, 0x00, 0x01, // IID13601 - 0xd5, 0x3b, 0x81, 0x8c, 0xda, 0x9b, 0x67, 0x12, 0x6c, 0x00, 0x00, 0x00, 0x01, // IID13602 - 0xd5, 0x19, 0x81, 0x8b, 0x6b, 0xb9, 0x8a, 0xb6, 0x00, 0x00, 0x00, 0x01, // IID13603 - 0xd5, 0x19, 0x81, 0x8c, 0x24, 0x5b, 0x33, 0x31, 0xbc, 0x00, 0x00, 0x00, 0x01, // IID13604 - 0xd5, 0x3b, 0x81, 0x8c, 0xb5, 0x21, 0x36, 0x99, 0xb7, 0x00, 0x00, 0x00, 0x01, // IID13605 - 0xd5, 0x19, 0x81, 0x8e, 0x07, 0xdc, 0xe2, 0x7b, 0x00, 0x00, 0x00, 0x01, // IID13606 - 0xd5, 0x19, 0x81, 0x8c, 0xcf, 0xe4, 0x3f, 0xd1, 0x57, 0x00, 0x00, 0x00, 0x01, // IID13607 - 0x48, 0x81, 0x8c, 0xd1, 0x41, 0x06, 0x69, 0x82, 0x00, 0x00, 0x00, 0x10, // IID13608 - 0x48, 0x81, 0x8c, 0xda, 0x39, 0xad, 0x99, 0x0d, 0x00, 0x00, 0x00, 0x10, // IID13609 - 0x4a, 0x81, 0x8c, 0x43, 0x05, 0x34, 0xd6, 0x74, 0x00, 0x00, 0x00, 0x10, // IID13610 - 0x49, 0x81, 0x88, 0x7a, 0x7f, 0x9f, 0x83, 0x00, 0x00, 0x00, 0x10, // IID13611 - 0x4b, 0x81, 0x8c, 0x51, 0x1d, 0x25, 0x5e, 0x7c, 0x00, 0x00, 0x00, 0x10, // IID13612 - 0x4b, 0x81, 0x8c, 0x5a, 0x67, 0x42, 0xf2, 0xe6, 0x00, 0x00, 0x00, 0x10, // IID13613 - 0x49, 0x81, 0x8b, 0xaf, 0xe7, 0x7f, 0x5f, 0x00, 0x00, 0x00, 0x10, // IID13614 - 0x49, 0x81, 0x8c, 0x24, 0x3a, 0x95, 0xdd, 0x76, 0x00, 0x00, 0x00, 0x10, // IID13615 - 0x4b, 0x81, 0x8c, 0xb5, 0xd9, 0xa2, 0xb9, 0x64, 0x00, 0x00, 0x00, 0x10, // IID13616 - 0x49, 0x81, 0x8e, 0xa8, 0x66, 0xe6, 0x70, 0x00, 0x00, 0x00, 0x10, // IID13617 - 0x49, 0x81, 0x8f, 0x52, 0x07, 0x47, 0xf4, 0x00, 0x00, 0x00, 0x10, // IID13618 - 0xd5, 0x18, 0x81, 0x88, 0x9a, 0xb7, 0x75, 0x34, 0x00, 0x00, 0x00, 0x10, // IID13619 - 0xd5, 0x38, 0x81, 0x8c, 0x11, 0x0b, 0x96, 0x62, 0xd5, 0x00, 0x00, 0x00, 0x10, // IID13620 - 0xd5, 0x38, 0x81, 0x8c, 0x1a, 0x8f, 0x8a, 0xff, 0xa9, 0x00, 0x00, 0x00, 0x10, // IID13621 - 0xd5, 0x38, 0x81, 0x8c, 0x23, 0x6a, 0x48, 0x68, 0xd8, 0x00, 0x00, 0x00, 0x10, // IID13622 - 0xd5, 0x38, 0x81, 0x8c, 0xac, 0x86, 0x49, 0xff, 0x9e, 0x00, 0x00, 0x00, 0x10, // IID13623 - 0xd5, 0x38, 0x81, 0x8c, 0xf5, 0xad, 0xce, 0xb2, 0xb9, 0x00, 0x00, 0x00, 0x10, // IID13624 - 0xd5, 0x38, 0x81, 0x8c, 0xbe, 0xc9, 0x0b, 0x48, 0x4b, 0x00, 0x00, 0x00, 0x10, // IID13625 - 0xd5, 0x18, 0x81, 0x8f, 0xd1, 0xd5, 0x9c, 0xe7, 0x00, 0x00, 0x00, 0x10, // IID13626 - 0xd5, 0x3b, 0x81, 0x8c, 0x48, 0xa4, 0xad, 0x1f, 0x6d, 0x00, 0x00, 0x00, 0x10, // IID13627 - 0xd5, 0x3b, 0x81, 0x8c, 0x91, 0x65, 0x8b, 0x10, 0xf5, 0x00, 0x00, 0x00, 0x10, // IID13628 - 0xd5, 0x19, 0x81, 0x8a, 0xf0, 0xba, 0x3a, 0x43, 0x00, 0x00, 0x00, 0x10, // IID13629 - 0xd5, 0x3b, 0x81, 0x8c, 0xe3, 0x01, 0xe9, 0x3a, 0x25, 0x00, 0x00, 0x00, 0x10, // IID13630 - 0xd5, 0x3b, 0x81, 0x8c, 0xac, 0xab, 0x46, 0x05, 0xfe, 0x00, 0x00, 0x00, 0x10, // IID13631 - 0xd5, 0x3b, 0x81, 0x8c, 0x75, 0x45, 0x8d, 0x0d, 0xa9, 0x00, 0x00, 0x00, 0x10, // IID13632 - 0xd5, 0x3b, 0x81, 0x8c, 0x3e, 0xc5, 0xa0, 0xc2, 0xb2, 0x00, 0x00, 0x00, 0x10, // IID13633 - 0xd5, 0x19, 0x81, 0x8c, 0x8f, 0x67, 0xd2, 0xc6, 0x1e, 0x00, 0x00, 0x00, 0x10, // IID13634 - 0x48, 0xc7, 0x84, 0x11, 0xa1, 0x63, 0xa8, 0x97, 0x01, 0x00, 0x00, 0x00, // IID13635 - 0x48, 0xc7, 0x84, 0x1a, 0x38, 0x69, 0x4e, 0x77, 0x01, 0x00, 0x00, 0x00, // IID13636 - 0x4a, 0xc7, 0x84, 0x43, 0xb9, 0x46, 0x2b, 0xd8, 0x01, 0x00, 0x00, 0x00, // IID13637 - 0x49, 0xc7, 0x80, 0x19, 0x54, 0x19, 0x34, 0x01, 0x00, 0x00, 0x00, // IID13638 - 0x4b, 0xc7, 0x84, 0x91, 0x1c, 0x6c, 0x4c, 0xda, 0x01, 0x00, 0x00, 0x00, // IID13639 - 0x4b, 0xc7, 0x84, 0xda, 0xb8, 0x80, 0x56, 0xa4, 0x01, 0x00, 0x00, 0x00, // IID13640 - 0x4b, 0xc7, 0x84, 0x23, 0x04, 0x2b, 0x2d, 0x55, 0x01, 0x00, 0x00, 0x00, // IID13641 - 0x49, 0xc7, 0x84, 0x24, 0xa2, 0xdf, 0x93, 0x42, 0x01, 0x00, 0x00, 0x00, // IID13642 - 0x4b, 0xc7, 0x84, 0xf5, 0x86, 0x0e, 0x29, 0xa0, 0x01, 0x00, 0x00, 0x00, // IID13643 - 0x4b, 0xc7, 0x84, 0x7e, 0xa1, 0x02, 0x71, 0x3f, 0x01, 0x00, 0x00, 0x00, // IID13644 - 0xd5, 0x29, 0xc7, 0x84, 0x47, 0xeb, 0x20, 0x3a, 0x8c, 0x01, 0x00, 0x00, 0x00, // IID13645 - 0xd5, 0x38, 0xc7, 0x84, 0xc8, 0x3b, 0x86, 0x3e, 0x74, 0x01, 0x00, 0x00, 0x00, // IID13646 - 0xd5, 0x18, 0xc7, 0x81, 0xb0, 0x6e, 0x81, 0x41, 0x01, 0x00, 0x00, 0x00, // IID13647 - 0xd5, 0x38, 0xc7, 0x84, 0x9a, 0x1d, 0x30, 0xfe, 0xf4, 0x01, 0x00, 0x00, 0x00, // IID13648 - 0xd5, 0x38, 0xc7, 0x84, 0xa3, 0x24, 0x0c, 0x44, 0xda, 0x01, 0x00, 0x00, 0x00, // IID13649 - 0xd5, 0x18, 0xc7, 0x84, 0x24, 0x9d, 0xd5, 0x5e, 0x62, 0x01, 0x00, 0x00, 0x00, // IID13650 - 0xd5, 0x38, 0xc7, 0x84, 0xf5, 0x38, 0x3a, 0xad, 0x09, 0x01, 0x00, 0x00, 0x00, // IID13651 - 0xd5, 0x38, 0xc7, 0x84, 0x7e, 0x17, 0xe2, 0x3b, 0x9f, 0x01, 0x00, 0x00, 0x00, // IID13652 - 0xd5, 0x3a, 0xc7, 0x84, 0x07, 0x63, 0xca, 0xec, 0x81, 0x01, 0x00, 0x00, 0x00, // IID13653 - 0xd5, 0x3b, 0xc7, 0x84, 0x48, 0x22, 0x74, 0x84, 0xc3, 0x01, 0x00, 0x00, 0x00, // IID13654 - 0xd5, 0x3b, 0xc7, 0x84, 0xd1, 0x53, 0xe6, 0xae, 0x0d, 0x01, 0x00, 0x00, 0x00, // IID13655 - 0xd5, 0x3b, 0xc7, 0x84, 0x5a, 0xe7, 0x13, 0xdf, 0x76, 0x01, 0x00, 0x00, 0x00, // IID13656 - 0xd5, 0x19, 0xc7, 0x83, 0x6d, 0xb8, 0x13, 0x57, 0x01, 0x00, 0x00, 0x00, // IID13657 - 0xd5, 0x3b, 0xc7, 0x84, 0xac, 0x2a, 0x51, 0xbc, 0x1b, 0x01, 0x00, 0x00, 0x00, // IID13658 - 0xd5, 0x3b, 0xc7, 0x84, 0xb5, 0xbb, 0x29, 0xef, 0x6f, 0x01, 0x00, 0x00, 0x00, // IID13659 - 0xd5, 0x3b, 0xc7, 0x84, 0xfe, 0x7b, 0x20, 0xe0, 0x33, 0x01, 0x00, 0x00, 0x00, // IID13660 - 0xd5, 0x19, 0xc7, 0x84, 0xcf, 0x63, 0xe9, 0x1b, 0x11, 0x01, 0x00, 0x00, 0x00, // IID13661 - 0x48, 0xc7, 0x81, 0x48, 0x78, 0x28, 0xc6, 0x10, 0x00, 0x00, 0x00, // IID13662 - 0x48, 0xc7, 0x84, 0xda, 0xfd, 0xe4, 0xd5, 0x02, 0x10, 0x00, 0x00, 0x00, // IID13663 - 0x4a, 0xc7, 0x84, 0x03, 0xda, 0xe2, 0x28, 0x9f, 0x10, 0x00, 0x00, 0x00, // IID13664 - 0x4b, 0xc7, 0x84, 0x48, 0xd9, 0x30, 0x5a, 0xa7, 0x10, 0x00, 0x00, 0x00, // IID13665 - 0x49, 0xc7, 0x81, 0xba, 0x92, 0x45, 0x60, 0x10, 0x00, 0x00, 0x00, // IID13666 - 0x4b, 0xc7, 0x84, 0x9a, 0xdf, 0xa9, 0x31, 0xf9, 0x10, 0x00, 0x00, 0x00, // IID13667 - 0x4b, 0xc7, 0x84, 0x63, 0x5a, 0x97, 0x03, 0x79, 0x10, 0x00, 0x00, 0x00, // IID13668 - 0x4b, 0xc7, 0x84, 0x2c, 0xf6, 0x57, 0x68, 0x87, 0x10, 0x00, 0x00, 0x00, // IID13669 - 0x4b, 0xc7, 0x84, 0xb5, 0x9d, 0x2d, 0x3b, 0x42, 0x10, 0x00, 0x00, 0x00, // IID13670 - 0x4b, 0xc7, 0x84, 0xfe, 0x23, 0xe7, 0x37, 0xc9, 0x10, 0x00, 0x00, 0x00, // IID13671 - 0x49, 0xc7, 0x87, 0x09, 0x9b, 0x0f, 0x63, 0x10, 0x00, 0x00, 0x00, // IID13672 - 0xd5, 0x38, 0xc7, 0x84, 0xc8, 0xf6, 0xcf, 0x85, 0x59, 0x10, 0x00, 0x00, 0x00, // IID13673 - 0xd5, 0x38, 0xc7, 0x84, 0xd1, 0xa9, 0x07, 0x86, 0x63, 0x10, 0x00, 0x00, 0x00, // IID13674 - 0xd5, 0x38, 0xc7, 0x84, 0x1a, 0xd9, 0xda, 0x75, 0x75, 0x10, 0x00, 0x00, 0x00, // IID13675 - 0xd5, 0x38, 0xc7, 0x84, 0xe3, 0x2c, 0xd5, 0x59, 0x81, 0x10, 0x00, 0x00, 0x00, // IID13676 - 0xd5, 0x18, 0xc7, 0x84, 0x24, 0x19, 0x1f, 0xba, 0x5f, 0x10, 0x00, 0x00, 0x00, // IID13677 - 0xd5, 0x18, 0xc7, 0x85, 0x97, 0x17, 0xea, 0xb0, 0x10, 0x00, 0x00, 0x00, // IID13678 - 0xd5, 0x38, 0xc7, 0x84, 0x7e, 0xe9, 0xa7, 0x10, 0x6f, 0x10, 0x00, 0x00, 0x00, // IID13679 - 0xd5, 0x3a, 0xc7, 0x84, 0x07, 0xf0, 0x90, 0xc9, 0x63, 0x10, 0x00, 0x00, 0x00, // IID13680 - 0xd5, 0x3b, 0xc7, 0x84, 0x08, 0xb7, 0x1e, 0xf1, 0xe7, 0x10, 0x00, 0x00, 0x00, // IID13681 - 0xd5, 0x3b, 0xc7, 0x84, 0xd1, 0xbd, 0xa7, 0x51, 0xe6, 0x10, 0x00, 0x00, 0x00, // IID13682 - 0xd5, 0x3b, 0xc7, 0x84, 0xda, 0x31, 0x2e, 0x1f, 0x57, 0x10, 0x00, 0x00, 0x00, // IID13683 - 0xd5, 0x19, 0xc7, 0x83, 0xfa, 0xb8, 0xbd, 0x34, 0x10, 0x00, 0x00, 0x00, // IID13684 - 0xd5, 0x3b, 0xc7, 0x84, 0xac, 0x4a, 0x11, 0x31, 0x7e, 0x10, 0x00, 0x00, 0x00, // IID13685 - 0xd5, 0x19, 0xc7, 0x85, 0x4c, 0x91, 0xd5, 0xc8, 0x10, 0x00, 0x00, 0x00, // IID13686 - 0xd5, 0x3b, 0xc7, 0x84, 0xbe, 0xf0, 0x77, 0xcd, 0xfb, 0x10, 0x00, 0x00, 0x00, // IID13687 - 0xd5, 0x19, 0xc7, 0x84, 0x0f, 0x19, 0x16, 0x09, 0xaa, 0x10, 0x00, 0x00, 0x00, // IID13688 - 0x48, 0xc7, 0x84, 0x11, 0x53, 0x43, 0x92, 0xfe, 0x00, 0x01, 0x00, 0x00, // IID13689 - 0x48, 0xc7, 0x84, 0xda, 0x79, 0xca, 0x10, 0x67, 0x00, 0x01, 0x00, 0x00, // IID13690 - 0x4a, 0xc7, 0x84, 0x43, 0xf8, 0xb2, 0xdc, 0x6c, 0x00, 0x01, 0x00, 0x00, // IID13691 - 0x4b, 0xc7, 0x84, 0x48, 0xb3, 0xce, 0x10, 0xd9, 0x00, 0x01, 0x00, 0x00, // IID13692 - 0x4b, 0xc7, 0x84, 0x91, 0x3f, 0xb4, 0x93, 0x72, 0x00, 0x01, 0x00, 0x00, // IID13693 - 0x4b, 0xc7, 0x84, 0xda, 0xab, 0x14, 0x83, 0x85, 0x00, 0x01, 0x00, 0x00, // IID13694 - 0x4b, 0xc7, 0x84, 0x23, 0xec, 0x6f, 0x46, 0xa3, 0x00, 0x01, 0x00, 0x00, // IID13695 - 0x49, 0xc7, 0x84, 0x24, 0xf1, 0xb5, 0x0e, 0x1a, 0x00, 0x01, 0x00, 0x00, // IID13696 - 0x4b, 0xc7, 0x84, 0x75, 0x14, 0x6d, 0x51, 0xb8, 0x00, 0x01, 0x00, 0x00, // IID13697 - 0x4b, 0xc7, 0x84, 0x3e, 0x57, 0xbd, 0x70, 0x3c, 0x00, 0x01, 0x00, 0x00, // IID13698 - 0x49, 0xc7, 0x87, 0x16, 0x29, 0x17, 0x7f, 0x00, 0x01, 0x00, 0x00, // IID13699 - 0xd5, 0x38, 0xc7, 0x84, 0x48, 0x53, 0xcd, 0xba, 0x8b, 0x00, 0x01, 0x00, 0x00, // IID13700 - 0xd5, 0x38, 0xc7, 0x84, 0x91, 0xf2, 0xf8, 0xc8, 0xb2, 0x00, 0x01, 0x00, 0x00, // IID13701 - 0xd5, 0x38, 0xc7, 0x84, 0x1a, 0x07, 0x6b, 0x32, 0x1e, 0x00, 0x01, 0x00, 0x00, // IID13702 - 0xd5, 0x38, 0xc7, 0x84, 0xa3, 0xec, 0x1a, 0xd8, 0x82, 0x00, 0x01, 0x00, 0x00, // IID13703 - 0xd5, 0x38, 0xc7, 0x84, 0x6c, 0xa0, 0x8b, 0x5f, 0xd4, 0x00, 0x01, 0x00, 0x00, // IID13704 - 0xd5, 0x38, 0xc7, 0x84, 0x35, 0xd8, 0x69, 0x14, 0x44, 0x00, 0x01, 0x00, 0x00, // IID13705 - 0xd5, 0x38, 0xc7, 0x84, 0xbe, 0x18, 0xca, 0x6a, 0x33, 0x00, 0x01, 0x00, 0x00, // IID13706 - 0xd5, 0x3a, 0xc7, 0x84, 0x47, 0x95, 0x1f, 0x3a, 0x1f, 0x00, 0x01, 0x00, 0x00, // IID13707 - 0xd5, 0x3b, 0xc7, 0x84, 0x88, 0x89, 0x68, 0x96, 0x9b, 0x00, 0x01, 0x00, 0x00, // IID13708 - 0xd5, 0x3b, 0xc7, 0x84, 0x91, 0xb4, 0x73, 0x4d, 0xcd, 0x00, 0x01, 0x00, 0x00, // IID13709 - 0xd5, 0x3b, 0xc7, 0x84, 0xda, 0xce, 0xb4, 0x12, 0xb1, 0x00, 0x01, 0x00, 0x00, // IID13710 - 0xd5, 0x3b, 0xc7, 0x84, 0xe3, 0x47, 0xad, 0x5c, 0x3d, 0x00, 0x01, 0x00, 0x00, // IID13711 - 0xd5, 0x3b, 0xc7, 0x84, 0x6c, 0x59, 0x33, 0x44, 0xea, 0x00, 0x01, 0x00, 0x00, // IID13712 - 0xd5, 0x3b, 0xc7, 0x84, 0xf5, 0xf7, 0x43, 0xe6, 0x54, 0x00, 0x01, 0x00, 0x00, // IID13713 - 0xd5, 0x3b, 0xc7, 0x84, 0xfe, 0x0a, 0xdc, 0x54, 0x74, 0x00, 0x01, 0x00, 0x00, // IID13714 - 0xd5, 0x19, 0xc7, 0x84, 0xcf, 0x29, 0x9b, 0x6d, 0xb4, 0x00, 0x01, 0x00, 0x00, // IID13715 - 0x48, 0xc7, 0x84, 0xd1, 0x55, 0xf8, 0x3f, 0x4c, 0x00, 0x10, 0x00, 0x00, // IID13716 - 0x48, 0xc7, 0x82, 0x9b, 0x49, 0xf4, 0xbe, 0x00, 0x10, 0x00, 0x00, // IID13717 - 0x4a, 0xc7, 0x84, 0x43, 0x5f, 0x24, 0xca, 0x04, 0x00, 0x10, 0x00, 0x00, // IID13718 - 0x4b, 0xc7, 0x84, 0xc8, 0x4e, 0xfc, 0x6d, 0x7a, 0x00, 0x10, 0x00, 0x00, // IID13719 - 0x4b, 0xc7, 0x84, 0xd1, 0xd2, 0x4f, 0x94, 0x6c, 0x00, 0x10, 0x00, 0x00, // IID13720 - 0x49, 0xc7, 0x82, 0x8d, 0x93, 0xd7, 0x4f, 0x00, 0x10, 0x00, 0x00, // IID13721 - 0x4b, 0xc7, 0x84, 0x63, 0x19, 0x9f, 0x92, 0xd6, 0x00, 0x10, 0x00, 0x00, // IID13722 - 0x49, 0xc7, 0x84, 0x24, 0x90, 0x2b, 0x75, 0x0c, 0x00, 0x10, 0x00, 0x00, // IID13723 - 0x49, 0xc7, 0x85, 0x58, 0x2c, 0x60, 0x9a, 0x00, 0x10, 0x00, 0x00, // IID13724 - 0x4b, 0xc7, 0x84, 0xfe, 0xd9, 0xa6, 0x33, 0x7c, 0x00, 0x10, 0x00, 0x00, // IID13725 - 0xd5, 0x29, 0xc7, 0x84, 0x47, 0xea, 0xfd, 0x6e, 0xfd, 0x00, 0x10, 0x00, 0x00, // IID13726 - 0xd5, 0x38, 0xc7, 0x84, 0x88, 0xce, 0x44, 0x10, 0x8e, 0x00, 0x10, 0x00, 0x00, // IID13727 - 0xd5, 0x18, 0xc7, 0x81, 0xd4, 0x70, 0x1b, 0xfe, 0x00, 0x10, 0x00, 0x00, // IID13728 - 0xd5, 0x38, 0xc7, 0x84, 0x1a, 0x5b, 0xb8, 0x94, 0xde, 0x00, 0x10, 0x00, 0x00, // IID13729 - 0xd5, 0x38, 0xc7, 0x84, 0xe3, 0x3d, 0xf7, 0xfb, 0xb7, 0x00, 0x10, 0x00, 0x00, // IID13730 - 0xd5, 0x38, 0xc7, 0x84, 0x2c, 0x30, 0xed, 0x38, 0xef, 0x00, 0x10, 0x00, 0x00, // IID13731 - 0xd5, 0x18, 0xc7, 0x85, 0xe6, 0x48, 0x07, 0x0b, 0x00, 0x10, 0x00, 0x00, // IID13732 - 0xd5, 0x38, 0xc7, 0x84, 0x7e, 0xcc, 0xa1, 0x12, 0x19, 0x00, 0x10, 0x00, 0x00, // IID13733 - 0xd5, 0x3a, 0xc7, 0x84, 0x07, 0x11, 0x5d, 0x66, 0xe8, 0x00, 0x10, 0x00, 0x00, // IID13734 - 0xd5, 0x3b, 0xc7, 0x84, 0x08, 0xd5, 0x79, 0xb7, 0x25, 0x00, 0x10, 0x00, 0x00, // IID13735 - 0xd5, 0x3b, 0xc7, 0x84, 0x51, 0x01, 0xfb, 0x98, 0x2b, 0x00, 0x10, 0x00, 0x00, // IID13736 - 0xd5, 0x3b, 0xc7, 0x84, 0xda, 0xe7, 0xdd, 0xd8, 0x29, 0x00, 0x10, 0x00, 0x00, // IID13737 - 0xd5, 0x3b, 0xc7, 0x84, 0x63, 0x9c, 0xdd, 0x5c, 0xad, 0x00, 0x10, 0x00, 0x00, // IID13738 - 0xd5, 0x19, 0xc7, 0x84, 0x24, 0xd2, 0x50, 0xcf, 0x06, 0x00, 0x10, 0x00, 0x00, // IID13739 - 0xd5, 0x3b, 0xc7, 0x84, 0x35, 0x98, 0xea, 0x49, 0xad, 0x00, 0x10, 0x00, 0x00, // IID13740 - 0xd5, 0x3b, 0xc7, 0x84, 0x7e, 0xcd, 0x83, 0x4f, 0xe2, 0x00, 0x10, 0x00, 0x00, // IID13741 - 0xd5, 0x19, 0xc7, 0x84, 0x4f, 0xd4, 0x13, 0x4e, 0xb1, 0x00, 0x10, 0x00, 0x00, // IID13742 - 0x48, 0xc7, 0x84, 0xd1, 0x06, 0xb2, 0xf6, 0xa4, 0x00, 0x00, 0x01, 0x00, // IID13743 - 0x48, 0xc7, 0x84, 0x9a, 0x29, 0x05, 0x76, 0x5c, 0x00, 0x00, 0x01, 0x00, // IID13744 - 0x4a, 0xc7, 0x84, 0xc3, 0x70, 0xeb, 0x38, 0xb4, 0x00, 0x00, 0x01, 0x00, // IID13745 - 0x49, 0xc7, 0x80, 0xc6, 0xdd, 0x57, 0x32, 0x00, 0x00, 0x01, 0x00, // IID13746 - 0x4b, 0xc7, 0x84, 0x11, 0x3e, 0xc5, 0xc6, 0xa2, 0x00, 0x00, 0x01, 0x00, // IID13747 - 0x49, 0xc7, 0x82, 0x72, 0x3c, 0x7f, 0xec, 0x00, 0x00, 0x01, 0x00, // IID13748 - 0x4b, 0xc7, 0x84, 0xa3, 0x4f, 0x6c, 0x6f, 0xeb, 0x00, 0x00, 0x01, 0x00, // IID13749 - 0x4b, 0xc7, 0x84, 0xec, 0x78, 0x49, 0xf6, 0x25, 0x00, 0x00, 0x01, 0x00, // IID13750 - 0x4b, 0xc7, 0x84, 0x35, 0x8c, 0x5d, 0xf9, 0x4b, 0x00, 0x00, 0x01, 0x00, // IID13751 - 0x49, 0xc7, 0x86, 0x4f, 0x28, 0xb6, 0xa8, 0x00, 0x00, 0x01, 0x00, // IID13752 - 0xd5, 0x29, 0xc7, 0x84, 0xc7, 0x0d, 0xad, 0xa7, 0xe0, 0x00, 0x00, 0x01, 0x00, // IID13753 - 0xd5, 0x38, 0xc7, 0x84, 0x88, 0xca, 0x80, 0x27, 0x4f, 0x00, 0x00, 0x01, 0x00, // IID13754 - 0xd5, 0x18, 0xc7, 0x81, 0x85, 0x98, 0xdb, 0x74, 0x00, 0x00, 0x01, 0x00, // IID13755 - 0xd5, 0x18, 0xc7, 0x82, 0x67, 0x0a, 0x02, 0x46, 0x00, 0x00, 0x01, 0x00, // IID13756 - 0xd5, 0x38, 0xc7, 0x84, 0xe3, 0x0c, 0x31, 0x27, 0xec, 0x00, 0x00, 0x01, 0x00, // IID13757 - 0xd5, 0x38, 0xc7, 0x84, 0xec, 0x18, 0x58, 0x49, 0xac, 0x00, 0x00, 0x01, 0x00, // IID13758 - 0xd5, 0x38, 0xc7, 0x84, 0x75, 0xea, 0xff, 0x9e, 0xc6, 0x00, 0x00, 0x01, 0x00, // IID13759 - 0xd5, 0x38, 0xc7, 0x84, 0x7e, 0xd9, 0x29, 0x65, 0x85, 0x00, 0x00, 0x01, 0x00, // IID13760 - 0xd5, 0x3a, 0xc7, 0x84, 0x47, 0x70, 0x13, 0x4d, 0xfc, 0x00, 0x00, 0x01, 0x00, // IID13761 - 0xd5, 0x3b, 0xc7, 0x84, 0xc8, 0x47, 0xca, 0x39, 0x3f, 0x00, 0x00, 0x01, 0x00, // IID13762 - 0xd5, 0x3b, 0xc7, 0x84, 0x51, 0xb7, 0xf7, 0xf3, 0x58, 0x00, 0x00, 0x01, 0x00, // IID13763 - 0xd5, 0x19, 0xc7, 0x82, 0xce, 0x97, 0xbc, 0x7a, 0x00, 0x00, 0x01, 0x00, // IID13764 - 0xd5, 0x3b, 0xc7, 0x84, 0x23, 0xcf, 0x1e, 0xf9, 0x45, 0x00, 0x00, 0x01, 0x00, // IID13765 - 0xd5, 0x19, 0xc7, 0x84, 0x24, 0xd3, 0xfe, 0x71, 0x6a, 0x00, 0x00, 0x01, 0x00, // IID13766 - 0xd5, 0x3b, 0xc7, 0x84, 0x35, 0x37, 0x6b, 0xa5, 0x13, 0x00, 0x00, 0x01, 0x00, // IID13767 - 0xd5, 0x3b, 0xc7, 0x84, 0x3e, 0x0c, 0x17, 0x2b, 0x85, 0x00, 0x00, 0x01, 0x00, // IID13768 - 0xd5, 0x19, 0xc7, 0x84, 0x4f, 0x69, 0x86, 0xe4, 0xbb, 0x00, 0x00, 0x01, 0x00, // IID13769 - 0x48, 0xc7, 0x84, 0x91, 0xef, 0xa8, 0xaa, 0x4a, 0x00, 0x00, 0x10, 0x00, // IID13770 - 0x48, 0xc7, 0x84, 0x1a, 0x64, 0x4e, 0xaf, 0xb7, 0x00, 0x00, 0x10, 0x00, // IID13771 - 0x4a, 0xc7, 0x84, 0x43, 0xb7, 0x10, 0x59, 0x50, 0x00, 0x00, 0x10, 0x00, // IID13772 - 0x49, 0xc7, 0x80, 0x20, 0xb5, 0xd9, 0x39, 0x00, 0x00, 0x10, 0x00, // IID13773 - 0x4b, 0xc7, 0x84, 0x51, 0x9e, 0xec, 0x5b, 0x95, 0x00, 0x00, 0x10, 0x00, // IID13774 - 0x4b, 0xc7, 0x84, 0x5a, 0xf5, 0x40, 0xfa, 0x8a, 0x00, 0x00, 0x10, 0x00, // IID13775 - 0x4b, 0xc7, 0x84, 0x23, 0xcc, 0x60, 0xb5, 0x93, 0x00, 0x00, 0x10, 0x00, // IID13776 - 0x4b, 0xc7, 0x84, 0x6c, 0x17, 0xd3, 0x36, 0xa8, 0x00, 0x00, 0x10, 0x00, // IID13777 - 0x4b, 0xc7, 0x84, 0xb5, 0x3c, 0x50, 0x75, 0xf8, 0x00, 0x00, 0x10, 0x00, // IID13778 - 0x4b, 0xc7, 0x84, 0xbe, 0xdd, 0xc0, 0x92, 0xf6, 0x00, 0x00, 0x10, 0x00, // IID13779 - 0x49, 0xc7, 0x87, 0x92, 0x21, 0x49, 0x9c, 0x00, 0x00, 0x10, 0x00, // IID13780 - 0xd5, 0x38, 0xc7, 0x84, 0xc8, 0xb3, 0x11, 0x69, 0x4a, 0x00, 0x00, 0x10, 0x00, // IID13781 - 0xd5, 0x38, 0xc7, 0x84, 0x51, 0x5c, 0x99, 0xf7, 0x2e, 0x00, 0x00, 0x10, 0x00, // IID13782 - 0xd5, 0x38, 0xc7, 0x84, 0x9a, 0xd4, 0xb0, 0x03, 0xc4, 0x00, 0x00, 0x10, 0x00, // IID13783 - 0xd5, 0x18, 0xc7, 0x83, 0x9d, 0x82, 0xa7, 0x39, 0x00, 0x00, 0x10, 0x00, // IID13784 - 0xd5, 0x38, 0xc7, 0x84, 0xac, 0xec, 0xdb, 0x7f, 0x2c, 0x00, 0x00, 0x10, 0x00, // IID13785 - 0xd5, 0x38, 0xc7, 0x84, 0xf5, 0x21, 0x52, 0xac, 0xf4, 0x00, 0x00, 0x10, 0x00, // IID13786 - 0xd5, 0x18, 0xc7, 0x86, 0x10, 0x5e, 0xcc, 0x66, 0x00, 0x00, 0x10, 0x00, // IID13787 - 0xd5, 0x3a, 0xc7, 0x84, 0x87, 0x94, 0x06, 0x97, 0xbb, 0x00, 0x00, 0x10, 0x00, // IID13788 - 0xd5, 0x3b, 0xc7, 0x84, 0x48, 0xe0, 0xda, 0x3c, 0x41, 0x00, 0x00, 0x10, 0x00, // IID13789 - 0xd5, 0x19, 0xc7, 0x81, 0xe2, 0x87, 0x15, 0x5d, 0x00, 0x00, 0x10, 0x00, // IID13790 - 0xd5, 0x19, 0xc7, 0x82, 0x1b, 0x3c, 0x07, 0x27, 0x00, 0x00, 0x10, 0x00, // IID13791 - 0xd5, 0x19, 0xc7, 0x83, 0x7f, 0x08, 0xe7, 0xb2, 0x00, 0x00, 0x10, 0x00, // IID13792 - 0xd5, 0x3b, 0xc7, 0x84, 0xac, 0xc9, 0x94, 0x1d, 0x69, 0x00, 0x00, 0x10, 0x00, // IID13793 - 0xd5, 0x3b, 0xc7, 0x84, 0xb5, 0x95, 0x6e, 0x40, 0x82, 0x00, 0x00, 0x10, 0x00, // IID13794 - 0xd5, 0x19, 0xc7, 0x86, 0x84, 0x24, 0xce, 0xcf, 0x00, 0x00, 0x10, 0x00, // IID13795 - 0xd5, 0x19, 0xc7, 0x84, 0x8f, 0x00, 0x5f, 0x4b, 0x69, 0x00, 0x00, 0x10, 0x00, // IID13796 - 0x48, 0xc7, 0x81, 0xf8, 0xb9, 0x64, 0x15, 0x00, 0x00, 0x00, 0x01, // IID13797 - 0x48, 0xc7, 0x84, 0x9a, 0x0c, 0x15, 0xc8, 0x6d, 0x00, 0x00, 0x00, 0x01, // IID13798 - 0x4a, 0xc7, 0x84, 0xc3, 0xe0, 0x1e, 0x49, 0xac, 0x00, 0x00, 0x00, 0x01, // IID13799 - 0x4b, 0xc7, 0x84, 0x08, 0x32, 0x8b, 0xa3, 0xcc, 0x00, 0x00, 0x00, 0x01, // IID13800 - 0x4b, 0xc7, 0x84, 0x11, 0x30, 0xa2, 0x7d, 0x3a, 0x00, 0x00, 0x00, 0x01, // IID13801 - 0x49, 0xc7, 0x82, 0xaf, 0xfc, 0xf7, 0x5e, 0x00, 0x00, 0x00, 0x01, // IID13802 - 0x4b, 0xc7, 0x84, 0xe3, 0x27, 0x20, 0xfd, 0x38, 0x00, 0x00, 0x00, 0x01, // IID13803 - 0x4b, 0xc7, 0x84, 0x2c, 0x0b, 0x34, 0x16, 0x8f, 0x00, 0x00, 0x00, 0x01, // IID13804 - 0x49, 0xc7, 0x85, 0x91, 0x4c, 0x20, 0x07, 0x00, 0x00, 0x00, 0x01, // IID13805 - 0x4b, 0xc7, 0x84, 0x3e, 0xc3, 0x5c, 0x0b, 0x4f, 0x00, 0x00, 0x00, 0x01, // IID13806 - 0xd5, 0x29, 0xc7, 0x84, 0x87, 0xed, 0xea, 0x8d, 0xa9, 0x00, 0x00, 0x00, 0x01, // IID13807 - 0xd5, 0x38, 0xc7, 0x84, 0x48, 0x81, 0x99, 0xa1, 0x90, 0x00, 0x00, 0x00, 0x01, // IID13808 - 0xd5, 0x38, 0xc7, 0x84, 0x11, 0xa9, 0x48, 0x96, 0x32, 0x00, 0x00, 0x00, 0x01, // IID13809 - 0xd5, 0x38, 0xc7, 0x84, 0xda, 0x01, 0xae, 0x06, 0x6b, 0x00, 0x00, 0x00, 0x01, // IID13810 - 0xd5, 0x38, 0xc7, 0x84, 0x23, 0x0e, 0x7c, 0xe2, 0x19, 0x00, 0x00, 0x00, 0x01, // IID13811 - 0xd5, 0x18, 0xc7, 0x84, 0x24, 0x55, 0x5a, 0xa2, 0x33, 0x00, 0x00, 0x00, 0x01, // IID13812 - 0xd5, 0x38, 0xc7, 0x84, 0xb5, 0x25, 0x29, 0xd7, 0x33, 0x00, 0x00, 0x00, 0x01, // IID13813 - 0xd5, 0x38, 0xc7, 0x84, 0xbe, 0xd0, 0x3a, 0x7e, 0xe5, 0x00, 0x00, 0x00, 0x01, // IID13814 - 0xd5, 0x3a, 0xc7, 0x84, 0x07, 0x1a, 0x0b, 0x67, 0x16, 0x00, 0x00, 0x00, 0x01, // IID13815 - 0xd5, 0x19, 0xc7, 0x80, 0x70, 0xaa, 0xde, 0x1e, 0x00, 0x00, 0x00, 0x01, // IID13816 - 0xd5, 0x3b, 0xc7, 0x84, 0xd1, 0x85, 0xef, 0x05, 0x46, 0x00, 0x00, 0x00, 0x01, // IID13817 - 0xd5, 0x3b, 0xc7, 0x84, 0x5a, 0x55, 0xd0, 0xac, 0x04, 0x00, 0x00, 0x00, 0x01, // IID13818 - 0xd5, 0x3b, 0xc7, 0x84, 0xa3, 0x4e, 0xef, 0xa1, 0xa6, 0x00, 0x00, 0x00, 0x01, // IID13819 - 0xd5, 0x19, 0xc7, 0x84, 0x24, 0xfb, 0x80, 0x65, 0xd6, 0x00, 0x00, 0x00, 0x01, // IID13820 - 0xd5, 0x19, 0xc7, 0x85, 0x85, 0x3a, 0xa2, 0x7a, 0x00, 0x00, 0x00, 0x01, // IID13821 - 0xd5, 0x3b, 0xc7, 0x84, 0x7e, 0x08, 0xb4, 0x8e, 0xa9, 0x00, 0x00, 0x00, 0x01, // IID13822 - 0xd5, 0x19, 0xc7, 0x84, 0xcf, 0x92, 0x2c, 0x37, 0x19, 0x00, 0x00, 0x00, 0x01, // IID13823 - 0x48, 0xc7, 0x84, 0xd1, 0xa6, 0xf8, 0x0a, 0x8b, 0x00, 0x00, 0x00, 0x10, // IID13824 - 0x48, 0xc7, 0x84, 0xda, 0xcd, 0x45, 0x74, 0x1e, 0x00, 0x00, 0x00, 0x10, // IID13825 - 0x4a, 0xc7, 0x84, 0x83, 0x19, 0x7f, 0x00, 0xae, 0x00, 0x00, 0x00, 0x10, // IID13826 - 0x49, 0xc7, 0x80, 0x2f, 0x62, 0x07, 0x35, 0x00, 0x00, 0x00, 0x10, // IID13827 - 0x4b, 0xc7, 0x84, 0x11, 0x61, 0x54, 0x7f, 0xf7, 0x00, 0x00, 0x00, 0x10, // IID13828 - 0x4b, 0xc7, 0x84, 0x5a, 0x62, 0x02, 0x57, 0xd0, 0x00, 0x00, 0x00, 0x10, // IID13829 - 0x49, 0xc7, 0x83, 0x5e, 0x2e, 0x56, 0x34, 0x00, 0x00, 0x00, 0x10, // IID13830 - 0x4b, 0xc7, 0x84, 0x6c, 0x1d, 0x81, 0x09, 0x61, 0x00, 0x00, 0x00, 0x10, // IID13831 - 0x4b, 0xc7, 0x84, 0xb5, 0x9e, 0x0e, 0xa1, 0x2b, 0x00, 0x00, 0x00, 0x10, // IID13832 - 0x4b, 0xc7, 0x84, 0xfe, 0xdb, 0x2e, 0x41, 0xbe, 0x00, 0x00, 0x00, 0x10, // IID13833 - 0xd5, 0x29, 0xc7, 0x84, 0x07, 0xb0, 0xae, 0xb3, 0x9c, 0x00, 0x00, 0x00, 0x10, // IID13834 - 0xd5, 0x38, 0xc7, 0x84, 0xc8, 0x06, 0x42, 0x67, 0xdf, 0x00, 0x00, 0x00, 0x10, // IID13835 - 0xd5, 0x18, 0xc7, 0x81, 0x76, 0x8a, 0x5e, 0x31, 0x00, 0x00, 0x00, 0x10, // IID13836 - 0xd5, 0x38, 0xc7, 0x84, 0xda, 0x7b, 0xec, 0xe3, 0x50, 0x00, 0x00, 0x00, 0x10, // IID13837 - 0xd5, 0x18, 0xc7, 0x83, 0xc2, 0x5b, 0x96, 0xcc, 0x00, 0x00, 0x00, 0x10, // IID13838 - 0xd5, 0x38, 0xc7, 0x84, 0x2c, 0x22, 0x1e, 0xc0, 0x0e, 0x00, 0x00, 0x00, 0x10, // IID13839 - 0xd5, 0x38, 0xc7, 0x84, 0xf5, 0xb0, 0x2f, 0x8e, 0x2f, 0x00, 0x00, 0x00, 0x10, // IID13840 - 0xd5, 0x18, 0xc7, 0x86, 0xce, 0x8e, 0x7e, 0x7b, 0x00, 0x00, 0x00, 0x10, // IID13841 - 0xd5, 0x3a, 0xc7, 0x84, 0xc7, 0x66, 0x31, 0x14, 0x00, 0x00, 0x00, 0x00, 0x10, // IID13842 - 0xd5, 0x3b, 0xc7, 0x84, 0xc8, 0x77, 0xcf, 0x4c, 0xd8, 0x00, 0x00, 0x00, 0x10, // IID13843 - 0xd5, 0x3b, 0xc7, 0x84, 0x11, 0x81, 0x42, 0x4e, 0x87, 0x00, 0x00, 0x00, 0x10, // IID13844 - 0xd5, 0x3b, 0xc7, 0x84, 0x1a, 0x78, 0x1b, 0x81, 0x5b, 0x00, 0x00, 0x00, 0x10, // IID13845 - 0xd5, 0x3b, 0xc7, 0x84, 0xe3, 0xb0, 0xe7, 0x0b, 0xc0, 0x00, 0x00, 0x00, 0x10, // IID13846 - 0xd5, 0x3b, 0xc7, 0x84, 0xec, 0x2d, 0x43, 0xfa, 0x50, 0x00, 0x00, 0x00, 0x10, // IID13847 - 0xd5, 0x3b, 0xc7, 0x84, 0x35, 0x31, 0x39, 0x19, 0x06, 0x00, 0x00, 0x00, 0x10, // IID13848 - 0xd5, 0x3b, 0xc7, 0x84, 0x7e, 0x05, 0xf6, 0xda, 0xc9, 0x00, 0x00, 0x00, 0x10, // IID13849 - 0xd5, 0x19, 0xc7, 0x84, 0x0f, 0xd0, 0x39, 0xb0, 0x09, 0x00, 0x00, 0x00, 0x10, // IID13850 - 0x48, 0xf7, 0x81, 0x9d, 0xfb, 0xb7, 0x6f, 0xff, 0xff, 0xff, 0xff, // IID13851 - 0x48, 0xf7, 0x82, 0x69, 0x87, 0xff, 0x2a, 0xff, 0xff, 0xff, 0xff, // IID13852 - 0x4a, 0xf7, 0x84, 0x83, 0xc1, 0xed, 0xe7, 0xe0, 0xff, 0xff, 0xff, 0xff, // IID13853 - 0x4b, 0xf7, 0x84, 0x08, 0x4a, 0x7f, 0x70, 0xae, 0xff, 0xff, 0xff, 0xff, // IID13854 - 0x4b, 0xf7, 0x84, 0xd1, 0xb6, 0xdb, 0xc6, 0x83, 0xff, 0xff, 0xff, 0xff, // IID13855 - 0x4b, 0xf7, 0x84, 0x1a, 0x2c, 0x8d, 0x4d, 0x28, 0xff, 0xff, 0xff, 0xff, // IID13856 - 0x4b, 0xf7, 0x84, 0xa3, 0x6a, 0xfd, 0x7e, 0x9d, 0xff, 0xff, 0xff, 0xff, // IID13857 - 0x49, 0xf7, 0x84, 0x24, 0x7d, 0x98, 0xd0, 0x51, 0xff, 0xff, 0xff, 0xff, // IID13858 - 0x4b, 0xf7, 0x84, 0xb5, 0xeb, 0x75, 0x73, 0xe3, 0xff, 0xff, 0xff, 0xff, // IID13859 - 0x4b, 0xf7, 0x84, 0xfe, 0xb1, 0x0f, 0xb0, 0xb6, 0xff, 0xff, 0xff, 0xff, // IID13860 - 0x49, 0xf7, 0x87, 0x90, 0x8e, 0x2f, 0x81, 0xff, 0xff, 0xff, 0xff, // IID13861 - 0xd5, 0x38, 0xf7, 0x84, 0x88, 0xc2, 0xae, 0x99, 0x5a, 0xff, 0xff, 0xff, 0xff, // IID13862 - 0xd5, 0x38, 0xf7, 0x84, 0x91, 0x08, 0x73, 0x31, 0xe9, 0xff, 0xff, 0xff, 0xff, // IID13863 - 0xd5, 0x38, 0xf7, 0x84, 0x9a, 0x46, 0x27, 0xc9, 0x7e, 0xff, 0xff, 0xff, 0xff, // IID13864 - 0xd5, 0x38, 0xf7, 0x84, 0x23, 0x50, 0x19, 0x41, 0x61, 0xff, 0xff, 0xff, 0xff, // IID13865 - 0xd5, 0x38, 0xf7, 0x84, 0xec, 0xcc, 0x5f, 0xa4, 0x44, 0xff, 0xff, 0xff, 0xff, // IID13866 - 0xd5, 0x18, 0xf7, 0x85, 0xdb, 0x79, 0x48, 0x8d, 0xff, 0xff, 0xff, 0xff, // IID13867 - 0xd5, 0x38, 0xf7, 0x84, 0x7e, 0x4d, 0xd5, 0x9d, 0x57, 0xff, 0xff, 0xff, 0xff, // IID13868 - 0xd5, 0x3a, 0xf7, 0x84, 0x47, 0xd3, 0x9c, 0x6f, 0x06, 0xff, 0xff, 0xff, 0xff, // IID13869 - 0xd5, 0x3b, 0xf7, 0x84, 0x88, 0x24, 0xa5, 0x5b, 0xaf, 0xff, 0xff, 0xff, 0xff, // IID13870 - 0xd5, 0x3b, 0xf7, 0x84, 0x91, 0x98, 0x33, 0xfe, 0x4e, 0xff, 0xff, 0xff, 0xff, // IID13871 - 0xd5, 0x3b, 0xf7, 0x84, 0x9a, 0x6f, 0x41, 0x35, 0x7c, 0xff, 0xff, 0xff, 0xff, // IID13872 - 0xd5, 0x3b, 0xf7, 0x84, 0xa3, 0x0e, 0x78, 0xdc, 0x43, 0xff, 0xff, 0xff, 0xff, // IID13873 - 0xd5, 0x3b, 0xf7, 0x84, 0xec, 0x71, 0x04, 0x20, 0xbd, 0xff, 0xff, 0xff, 0xff, // IID13874 - 0xd5, 0x3b, 0xf7, 0x84, 0xf5, 0xe4, 0x7b, 0xfb, 0x26, 0xff, 0xff, 0xff, 0xff, // IID13875 - 0xd5, 0x3b, 0xf7, 0x84, 0x3e, 0x3a, 0x5c, 0xb7, 0xa5, 0xff, 0xff, 0xff, 0xff, // IID13876 - 0xd5, 0x19, 0xf7, 0x84, 0x4f, 0x66, 0x45, 0x91, 0x5d, 0xff, 0xff, 0xff, 0xff, // IID13877 - 0x48, 0xf7, 0x84, 0x91, 0xa6, 0xe8, 0x5c, 0x4b, 0xf0, 0xff, 0xff, 0xff, // IID13878 - 0x48, 0xf7, 0x82, 0xbf, 0xcc, 0x3c, 0x72, 0xf0, 0xff, 0xff, 0xff, // IID13879 - 0x4a, 0xf7, 0x84, 0x43, 0x85, 0xd4, 0x6d, 0x00, 0xf0, 0xff, 0xff, 0xff, // IID13880 - 0x4b, 0xf7, 0x84, 0x08, 0x73, 0xa5, 0xbd, 0x80, 0xf0, 0xff, 0xff, 0xff, // IID13881 - 0x4b, 0xf7, 0x84, 0x91, 0x32, 0x68, 0x1c, 0xf4, 0xf0, 0xff, 0xff, 0xff, // IID13882 - 0x4b, 0xf7, 0x84, 0x9a, 0x7e, 0x66, 0x04, 0x59, 0xf0, 0xff, 0xff, 0xff, // IID13883 - 0x4b, 0xf7, 0x84, 0x23, 0x8f, 0xac, 0x17, 0xa0, 0xf0, 0xff, 0xff, 0xff, // IID13884 - 0x4b, 0xf7, 0x84, 0x2c, 0x2f, 0x50, 0xd7, 0x9c, 0xf0, 0xff, 0xff, 0xff, // IID13885 - 0x49, 0xf7, 0x85, 0xe7, 0xa7, 0x78, 0x2f, 0xf0, 0xff, 0xff, 0xff, // IID13886 - 0x4b, 0xf7, 0x84, 0x7e, 0x8a, 0x58, 0xe0, 0x09, 0xf0, 0xff, 0xff, 0xff, // IID13887 - 0x49, 0xf7, 0x87, 0xfb, 0x5e, 0xe2, 0x8b, 0xf0, 0xff, 0xff, 0xff, // IID13888 - 0xd5, 0x38, 0xf7, 0x84, 0x88, 0xf8, 0x4b, 0x58, 0x6b, 0xf0, 0xff, 0xff, 0xff, // IID13889 - 0xd5, 0x38, 0xf7, 0x84, 0x11, 0x1b, 0xe6, 0x43, 0xbe, 0xf0, 0xff, 0xff, 0xff, // IID13890 - 0xd5, 0x18, 0xf7, 0x82, 0x14, 0x10, 0x61, 0x19, 0xf0, 0xff, 0xff, 0xff, // IID13891 - 0xd5, 0x38, 0xf7, 0x84, 0xa3, 0x30, 0xc7, 0xeb, 0xb8, 0xf0, 0xff, 0xff, 0xff, // IID13892 - 0xd5, 0x38, 0xf7, 0x84, 0xac, 0x0c, 0x70, 0xcb, 0xb1, 0xf0, 0xff, 0xff, 0xff, // IID13893 - 0xd5, 0x38, 0xf7, 0x84, 0x35, 0x0b, 0x87, 0xa2, 0xd7, 0xf0, 0xff, 0xff, 0xff, // IID13894 - 0xd5, 0x38, 0xf7, 0x84, 0xbe, 0x6c, 0xe5, 0x1e, 0xfa, 0xf0, 0xff, 0xff, 0xff, // IID13895 - 0xd5, 0x3a, 0xf7, 0x84, 0x87, 0xd1, 0x61, 0x27, 0x00, 0xf0, 0xff, 0xff, 0xff, // IID13896 - 0xd5, 0x3b, 0xf7, 0x84, 0x48, 0x6d, 0x1d, 0x62, 0x1b, 0xf0, 0xff, 0xff, 0xff, // IID13897 - 0xd5, 0x3b, 0xf7, 0x84, 0x11, 0xaa, 0x13, 0x2b, 0x91, 0xf0, 0xff, 0xff, 0xff, // IID13898 - 0xd5, 0x19, 0xf7, 0x82, 0x65, 0x33, 0x38, 0x38, 0xf0, 0xff, 0xff, 0xff, // IID13899 - 0xd5, 0x3b, 0xf7, 0x84, 0x63, 0x94, 0xf8, 0xc2, 0x6e, 0xf0, 0xff, 0xff, 0xff, // IID13900 - 0xd5, 0x3b, 0xf7, 0x84, 0x6c, 0x58, 0x91, 0xfb, 0xd2, 0xf0, 0xff, 0xff, 0xff, // IID13901 - 0xd5, 0x3b, 0xf7, 0x84, 0x35, 0x75, 0x8a, 0xc7, 0x56, 0xf0, 0xff, 0xff, 0xff, // IID13902 - 0xd5, 0x3b, 0xf7, 0x84, 0x3e, 0x78, 0xa6, 0x58, 0xff, 0xf0, 0xff, 0xff, 0xff, // IID13903 - 0xd5, 0x19, 0xf7, 0x84, 0x4f, 0x3a, 0x36, 0xa6, 0x30, 0xf0, 0xff, 0xff, 0xff, // IID13904 - 0x48, 0xf7, 0x81, 0xe3, 0xaf, 0x06, 0x9a, 0x00, 0xff, 0xff, 0xff, // IID13905 - 0x48, 0xf7, 0x84, 0x5a, 0xa2, 0x19, 0xf1, 0x96, 0x00, 0xff, 0xff, 0xff, // IID13906 - 0x4a, 0xf7, 0x84, 0x83, 0x78, 0xc6, 0x20, 0x44, 0x00, 0xff, 0xff, 0xff, // IID13907 - 0x4b, 0xf7, 0x84, 0xc8, 0xdb, 0xd0, 0x8e, 0x40, 0x00, 0xff, 0xff, 0xff, // IID13908 - 0x4b, 0xf7, 0x84, 0x91, 0xbe, 0x56, 0x95, 0x07, 0x00, 0xff, 0xff, 0xff, // IID13909 - 0x4b, 0xf7, 0x84, 0x9a, 0xcf, 0x14, 0xdf, 0x5f, 0x00, 0xff, 0xff, 0xff, // IID13910 - 0x4b, 0xf7, 0x84, 0x23, 0x21, 0x1c, 0x5d, 0xee, 0x00, 0xff, 0xff, 0xff, // IID13911 - 0x4b, 0xf7, 0x84, 0xec, 0x2f, 0x41, 0xc7, 0x47, 0x00, 0xff, 0xff, 0xff, // IID13912 - 0x49, 0xf7, 0x85, 0x65, 0x2c, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, // IID13913 - 0x4b, 0xf7, 0x84, 0x3e, 0x5f, 0x31, 0xe8, 0x7d, 0x00, 0xff, 0xff, 0xff, // IID13914 - 0xd5, 0x29, 0xf7, 0x84, 0x87, 0xb8, 0x3d, 0x69, 0x14, 0x00, 0xff, 0xff, 0xff, // IID13915 - 0xd5, 0x38, 0xf7, 0x84, 0x88, 0x80, 0x35, 0x0b, 0x4e, 0x00, 0xff, 0xff, 0xff, // IID13916 - 0xd5, 0x38, 0xf7, 0x84, 0x91, 0x83, 0x88, 0x25, 0x77, 0x00, 0xff, 0xff, 0xff, // IID13917 - 0xd5, 0x38, 0xf7, 0x84, 0x1a, 0x6c, 0xf5, 0x2e, 0xc9, 0x00, 0xff, 0xff, 0xff, // IID13918 - 0xd5, 0x38, 0xf7, 0x84, 0xe3, 0xd1, 0x97, 0xaa, 0x7e, 0x00, 0xff, 0xff, 0xff, // IID13919 - 0xd5, 0x18, 0xf7, 0x84, 0x24, 0x5f, 0x41, 0x62, 0x63, 0x00, 0xff, 0xff, 0xff, // IID13920 - 0xd5, 0x38, 0xf7, 0x84, 0x35, 0xca, 0xde, 0xf0, 0x0d, 0x00, 0xff, 0xff, 0xff, // IID13921 - 0xd5, 0x18, 0xf7, 0x86, 0xac, 0x52, 0x15, 0x3c, 0x00, 0xff, 0xff, 0xff, // IID13922 - 0xd5, 0x3a, 0xf7, 0x84, 0x07, 0x78, 0xfc, 0xf3, 0x3d, 0x00, 0xff, 0xff, 0xff, // IID13923 - 0xd5, 0x19, 0xf7, 0x80, 0xba, 0x34, 0x75, 0xca, 0x00, 0xff, 0xff, 0xff, // IID13924 - 0xd5, 0x3b, 0xf7, 0x84, 0x51, 0x8b, 0x34, 0xe9, 0xff, 0x00, 0xff, 0xff, 0xff, // IID13925 - 0xd5, 0x3b, 0xf7, 0x84, 0x5a, 0x20, 0xb3, 0xf2, 0x54, 0x00, 0xff, 0xff, 0xff, // IID13926 - 0xd5, 0x3b, 0xf7, 0x84, 0xe3, 0x28, 0xc0, 0x8b, 0x59, 0x00, 0xff, 0xff, 0xff, // IID13927 - 0xd5, 0x3b, 0xf7, 0x84, 0x2c, 0x4c, 0x8c, 0x3b, 0x2c, 0x00, 0xff, 0xff, 0xff, // IID13928 - 0xd5, 0x3b, 0xf7, 0x84, 0xb5, 0x5b, 0xc9, 0x04, 0x60, 0x00, 0xff, 0xff, 0xff, // IID13929 - 0xd5, 0x3b, 0xf7, 0x84, 0x7e, 0x91, 0xae, 0x5e, 0xd8, 0x00, 0xff, 0xff, 0xff, // IID13930 - 0xd5, 0x19, 0xf7, 0x84, 0x4f, 0x75, 0xb7, 0x66, 0x58, 0x00, 0xff, 0xff, 0xff, // IID13931 - 0x48, 0xf7, 0x81, 0x12, 0x05, 0xe7, 0x23, 0x00, 0xf0, 0xff, 0xff, // IID13932 - 0x48, 0xf7, 0x82, 0xd4, 0x44, 0x40, 0x1b, 0x00, 0xf0, 0xff, 0xff, // IID13933 - 0x48, 0xf7, 0x83, 0x9c, 0x43, 0x0b, 0x4e, 0x00, 0xf0, 0xff, 0xff, // IID13934 - 0x4b, 0xf7, 0x84, 0x48, 0x06, 0xaf, 0x9c, 0x35, 0x00, 0xf0, 0xff, 0xff, // IID13935 - 0x4b, 0xf7, 0x84, 0x51, 0xce, 0x7f, 0xc7, 0x83, 0x00, 0xf0, 0xff, 0xff, // IID13936 - 0x49, 0xf7, 0x82, 0x65, 0xef, 0x12, 0xd8, 0x00, 0xf0, 0xff, 0xff, // IID13937 - 0x4b, 0xf7, 0x84, 0x23, 0xd0, 0x3f, 0x73, 0x87, 0x00, 0xf0, 0xff, 0xff, // IID13938 - 0x4b, 0xf7, 0x84, 0xec, 0xbf, 0x9e, 0x47, 0xd7, 0x00, 0xf0, 0xff, 0xff, // IID13939 - 0x49, 0xf7, 0x85, 0x87, 0x21, 0x49, 0x85, 0x00, 0xf0, 0xff, 0xff, // IID13940 - 0x4b, 0xf7, 0x84, 0xfe, 0x67, 0xff, 0x9a, 0xe3, 0x00, 0xf0, 0xff, 0xff, // IID13941 - 0xd5, 0x29, 0xf7, 0x84, 0x87, 0xeb, 0x04, 0x8b, 0xf2, 0x00, 0xf0, 0xff, 0xff, // IID13942 - 0xd5, 0x38, 0xf7, 0x84, 0x48, 0x08, 0x41, 0xc4, 0xa3, 0x00, 0xf0, 0xff, 0xff, // IID13943 - 0xd5, 0x18, 0xf7, 0x81, 0xcf, 0x49, 0x7f, 0x76, 0x00, 0xf0, 0xff, 0xff, // IID13944 - 0xd5, 0x38, 0xf7, 0x84, 0x9a, 0x11, 0x60, 0x0c, 0xa5, 0x00, 0xf0, 0xff, 0xff, // IID13945 - 0xd5, 0x38, 0xf7, 0x84, 0x63, 0xc3, 0x23, 0xe7, 0xc5, 0x00, 0xf0, 0xff, 0xff, // IID13946 - 0xd5, 0x18, 0xf7, 0x84, 0x24, 0x2d, 0x1f, 0x54, 0xf6, 0x00, 0xf0, 0xff, 0xff, // IID13947 - 0xd5, 0x38, 0xf7, 0x84, 0xf5, 0x4e, 0x66, 0x48, 0x91, 0x00, 0xf0, 0xff, 0xff, // IID13948 - 0xd5, 0x18, 0xf7, 0x86, 0x69, 0x02, 0xdf, 0x51, 0x00, 0xf0, 0xff, 0xff, // IID13949 - 0xd5, 0x3a, 0xf7, 0x84, 0x07, 0xa6, 0x05, 0x71, 0x51, 0x00, 0xf0, 0xff, 0xff, // IID13950 - 0xd5, 0x3b, 0xf7, 0x84, 0x48, 0xdb, 0x60, 0x0e, 0x0e, 0x00, 0xf0, 0xff, 0xff, // IID13951 - 0xd5, 0x3b, 0xf7, 0x84, 0x11, 0x4a, 0x23, 0x2c, 0xb8, 0x00, 0xf0, 0xff, 0xff, // IID13952 - 0xd5, 0x3b, 0xf7, 0x84, 0x9a, 0xe4, 0xef, 0x28, 0x4d, 0x00, 0xf0, 0xff, 0xff, // IID13953 - 0xd5, 0x19, 0xf7, 0x83, 0x58, 0x33, 0xb6, 0x30, 0x00, 0xf0, 0xff, 0xff, // IID13954 - 0xd5, 0x3b, 0xf7, 0x84, 0x6c, 0x7a, 0x84, 0xa0, 0x35, 0x00, 0xf0, 0xff, 0xff, // IID13955 - 0xd5, 0x3b, 0xf7, 0x84, 0x35, 0x97, 0xf6, 0x42, 0xf1, 0x00, 0xf0, 0xff, 0xff, // IID13956 - 0xd5, 0x19, 0xf7, 0x86, 0xa9, 0xc4, 0x4e, 0xf4, 0x00, 0xf0, 0xff, 0xff, // IID13957 - 0xd5, 0x19, 0xf7, 0x84, 0xcf, 0x12, 0x1e, 0x6e, 0xca, 0x00, 0xf0, 0xff, 0xff, // IID13958 - 0x48, 0xf7, 0x81, 0xe1, 0x75, 0x01, 0x89, 0x00, 0x00, 0xff, 0xff, // IID13959 - 0x48, 0xf7, 0x84, 0x1a, 0x68, 0x44, 0x77, 0xa1, 0x00, 0x00, 0xff, 0xff, // IID13960 - 0x4a, 0xf7, 0x84, 0x03, 0x63, 0xf2, 0x3e, 0x52, 0x00, 0x00, 0xff, 0xff, // IID13961 - 0x49, 0xf7, 0x80, 0xc8, 0x27, 0x04, 0xf7, 0x00, 0x00, 0xff, 0xff, // IID13962 - 0x4b, 0xf7, 0x84, 0x91, 0xff, 0x6c, 0xb9, 0x2b, 0x00, 0x00, 0xff, 0xff, // IID13963 - 0x49, 0xf7, 0x82, 0x8c, 0x2b, 0xe4, 0x07, 0x00, 0x00, 0xff, 0xff, // IID13964 - 0x4b, 0xf7, 0x84, 0xe3, 0x5d, 0x7d, 0x1a, 0x04, 0x00, 0x00, 0xff, 0xff, // IID13965 - 0x4b, 0xf7, 0x84, 0x2c, 0x01, 0x0d, 0x7b, 0x2c, 0x00, 0x00, 0xff, 0xff, // IID13966 - 0x4b, 0xf7, 0x84, 0x75, 0x18, 0x74, 0x65, 0xe7, 0x00, 0x00, 0xff, 0xff, // IID13967 - 0x4b, 0xf7, 0x84, 0xfe, 0x20, 0x3a, 0x81, 0x66, 0x00, 0x00, 0xff, 0xff, // IID13968 - 0xd5, 0x29, 0xf7, 0x84, 0x07, 0x45, 0x68, 0x50, 0x38, 0x00, 0x00, 0xff, 0xff, // IID13969 - 0xd5, 0x38, 0xf7, 0x84, 0x88, 0xa1, 0xc9, 0xdd, 0xa7, 0x00, 0x00, 0xff, 0xff, // IID13970 - 0xd5, 0x38, 0xf7, 0x84, 0x91, 0xf0, 0x14, 0x30, 0x79, 0x00, 0x00, 0xff, 0xff, // IID13971 - 0xd5, 0x38, 0xf7, 0x84, 0x1a, 0x3d, 0xc3, 0x0b, 0xb7, 0x00, 0x00, 0xff, 0xff, // IID13972 - 0xd5, 0x38, 0xf7, 0x84, 0xa3, 0x12, 0x38, 0x3b, 0x96, 0x00, 0x00, 0xff, 0xff, // IID13973 - 0xd5, 0x38, 0xf7, 0x84, 0x2c, 0x34, 0xa0, 0x27, 0x7a, 0x00, 0x00, 0xff, 0xff, // IID13974 - 0xd5, 0x38, 0xf7, 0x84, 0xb5, 0xd8, 0x73, 0x37, 0x5e, 0x00, 0x00, 0xff, 0xff, // IID13975 - 0xd5, 0x18, 0xf7, 0x86, 0x7b, 0x05, 0xef, 0x59, 0x00, 0x00, 0xff, 0xff, // IID13976 - 0xd5, 0x18, 0xf7, 0x87, 0x25, 0x03, 0x23, 0x63, 0x00, 0x00, 0xff, 0xff, // IID13977 - 0xd5, 0x3b, 0xf7, 0x84, 0x48, 0x89, 0xd7, 0xf2, 0x01, 0x00, 0x00, 0xff, 0xff, // IID13978 - 0xd5, 0x3b, 0xf7, 0x84, 0xd1, 0xfb, 0xc4, 0xe5, 0xa1, 0x00, 0x00, 0xff, 0xff, // IID13979 - 0xd5, 0x3b, 0xf7, 0x84, 0x5a, 0xc5, 0xa3, 0x91, 0xcd, 0x00, 0x00, 0xff, 0xff, // IID13980 - 0xd5, 0x3b, 0xf7, 0x84, 0x63, 0x25, 0x49, 0x66, 0x7c, 0x00, 0x00, 0xff, 0xff, // IID13981 - 0xd5, 0x19, 0xf7, 0x84, 0x24, 0x15, 0x57, 0x26, 0xaa, 0x00, 0x00, 0xff, 0xff, // IID13982 - 0xd5, 0x3b, 0xf7, 0x84, 0xb5, 0xb0, 0x4b, 0x9a, 0xff, 0x00, 0x00, 0xff, 0xff, // IID13983 - 0xd5, 0x19, 0xf7, 0x86, 0xb8, 0xd3, 0xa6, 0xfe, 0x00, 0x00, 0xff, 0xff, // IID13984 - 0xd5, 0x19, 0xf7, 0x84, 0x0f, 0x25, 0xde, 0xd4, 0x7d, 0x00, 0x00, 0xff, 0xff, // IID13985 - 0x48, 0xf7, 0x84, 0xd1, 0xa9, 0x9f, 0xbe, 0xc1, 0x00, 0x00, 0xf0, 0xff, // IID13986 - 0x48, 0xf7, 0x84, 0x1a, 0x99, 0xd2, 0x54, 0x1b, 0x00, 0x00, 0xf0, 0xff, // IID13987 - 0x4a, 0xf7, 0x84, 0x43, 0xbb, 0xf6, 0x1d, 0x1f, 0x00, 0x00, 0xf0, 0xff, // IID13988 - 0x4b, 0xf7, 0x84, 0x88, 0x7c, 0x05, 0x1d, 0x0a, 0x00, 0x00, 0xf0, 0xff, // IID13989 - 0x4b, 0xf7, 0x84, 0x51, 0x03, 0x25, 0x90, 0x1b, 0x00, 0x00, 0xf0, 0xff, // IID13990 - 0x4b, 0xf7, 0x84, 0xda, 0x80, 0x62, 0x40, 0xb2, 0x00, 0x00, 0xf0, 0xff, // IID13991 - 0x49, 0xf7, 0x83, 0x48, 0xd1, 0x33, 0xf7, 0x00, 0x00, 0xf0, 0xff, // IID13992 - 0x4b, 0xf7, 0x84, 0xec, 0xa8, 0x54, 0x2a, 0xd7, 0x00, 0x00, 0xf0, 0xff, // IID13993 - 0x4b, 0xf7, 0x84, 0xf5, 0x81, 0x31, 0x57, 0xe6, 0x00, 0x00, 0xf0, 0xff, // IID13994 - 0x49, 0xf7, 0x86, 0x62, 0xfe, 0x5c, 0x09, 0x00, 0x00, 0xf0, 0xff, // IID13995 - 0xd5, 0x29, 0xf7, 0x84, 0x47, 0xa8, 0x90, 0xd7, 0x32, 0x00, 0x00, 0xf0, 0xff, // IID13996 - 0xd5, 0x38, 0xf7, 0x84, 0x88, 0x81, 0xef, 0xb5, 0x44, 0x00, 0x00, 0xf0, 0xff, // IID13997 - 0xd5, 0x38, 0xf7, 0x84, 0x11, 0x0f, 0x14, 0x2a, 0x7c, 0x00, 0x00, 0xf0, 0xff, // IID13998 - 0xd5, 0x38, 0xf7, 0x84, 0x1a, 0x99, 0x43, 0x0e, 0x20, 0x00, 0x00, 0xf0, 0xff, // IID13999 - 0xd5, 0x18, 0xf7, 0x83, 0x20, 0x4c, 0x1c, 0xf4, 0x00, 0x00, 0xf0, 0xff, // IID14000 - 0xd5, 0x38, 0xf7, 0x84, 0x2c, 0xc1, 0xc7, 0x80, 0x1f, 0x00, 0x00, 0xf0, 0xff, // IID14001 - 0xd5, 0x38, 0xf7, 0x84, 0x35, 0xfd, 0x10, 0x5c, 0x14, 0x00, 0x00, 0xf0, 0xff, // IID14002 - 0xd5, 0x38, 0xf7, 0x84, 0x7e, 0x13, 0x53, 0x92, 0xb3, 0x00, 0x00, 0xf0, 0xff, // IID14003 - 0xd5, 0x3a, 0xf7, 0x84, 0xc7, 0x60, 0x9c, 0x93, 0x8d, 0x00, 0x00, 0xf0, 0xff, // IID14004 - 0xd5, 0x3b, 0xf7, 0x84, 0xc8, 0xb6, 0x74, 0x99, 0xa3, 0x00, 0x00, 0xf0, 0xff, // IID14005 - 0xd5, 0x3b, 0xf7, 0x84, 0x91, 0x3a, 0xa2, 0x2e, 0xf8, 0x00, 0x00, 0xf0, 0xff, // IID14006 - 0xd5, 0x3b, 0xf7, 0x84, 0x5a, 0x95, 0x8c, 0x67, 0xb0, 0x00, 0x00, 0xf0, 0xff, // IID14007 - 0xd5, 0x3b, 0xf7, 0x84, 0xe3, 0x1b, 0xff, 0x44, 0x52, 0x00, 0x00, 0xf0, 0xff, // IID14008 - 0xd5, 0x3b, 0xf7, 0x84, 0xac, 0x06, 0x9e, 0xe5, 0x7d, 0x00, 0x00, 0xf0, 0xff, // IID14009 - 0xd5, 0x3b, 0xf7, 0x84, 0xf5, 0x0b, 0x86, 0xb1, 0x78, 0x00, 0x00, 0xf0, 0xff, // IID14010 - 0xd5, 0x3b, 0xf7, 0x84, 0xbe, 0x6b, 0x11, 0xe9, 0x40, 0x00, 0x00, 0xf0, 0xff, // IID14011 - 0xd5, 0x19, 0xf7, 0x84, 0x4f, 0x20, 0x2a, 0x63, 0x9f, 0x00, 0x00, 0xf0, 0xff, // IID14012 - 0x48, 0xf7, 0x84, 0x51, 0x91, 0x7e, 0x32, 0xe9, 0x00, 0x00, 0x00, 0xff, // IID14013 - 0x48, 0xf7, 0x84, 0x1a, 0x39, 0xa1, 0xf0, 0x4b, 0x00, 0x00, 0x00, 0xff, // IID14014 - 0x4a, 0xf7, 0x84, 0x03, 0xb6, 0x43, 0x20, 0xb7, 0x00, 0x00, 0x00, 0xff, // IID14015 - 0x4b, 0xf7, 0x84, 0xc8, 0xf4, 0x69, 0xe6, 0xcb, 0x00, 0x00, 0x00, 0xff, // IID14016 - 0x4b, 0xf7, 0x84, 0x11, 0x0e, 0x87, 0xf0, 0x20, 0x00, 0x00, 0x00, 0xff, // IID14017 - 0x4b, 0xf7, 0x84, 0x1a, 0x3c, 0xdc, 0x56, 0x89, 0x00, 0x00, 0x00, 0xff, // IID14018 - 0x4b, 0xf7, 0x84, 0x23, 0x0e, 0x44, 0x52, 0x1f, 0x00, 0x00, 0x00, 0xff, // IID14019 - 0x4b, 0xf7, 0x84, 0xec, 0x6f, 0x76, 0x53, 0xff, 0x00, 0x00, 0x00, 0xff, // IID14020 - 0x4b, 0xf7, 0x84, 0x75, 0xa1, 0x5b, 0x80, 0x43, 0x00, 0x00, 0x00, 0xff, // IID14021 - 0x49, 0xf7, 0x86, 0x06, 0x42, 0xf5, 0x43, 0x00, 0x00, 0x00, 0xff, // IID14022 - 0xd5, 0x29, 0xf7, 0x84, 0x47, 0x7c, 0xb1, 0x72, 0x07, 0x00, 0x00, 0x00, 0xff, // IID14023 - 0xd5, 0x38, 0xf7, 0x84, 0x88, 0x2d, 0xa9, 0x64, 0xa9, 0x00, 0x00, 0x00, 0xff, // IID14024 - 0xd5, 0x38, 0xf7, 0x84, 0x51, 0x59, 0x27, 0x2e, 0x3b, 0x00, 0x00, 0x00, 0xff, // IID14025 - 0xd5, 0x38, 0xf7, 0x84, 0x9a, 0x33, 0xef, 0x14, 0x3f, 0x00, 0x00, 0x00, 0xff, // IID14026 - 0xd5, 0x38, 0xf7, 0x84, 0x23, 0x13, 0x69, 0x0f, 0xdc, 0x00, 0x00, 0x00, 0xff, // IID14027 - 0xd5, 0x18, 0xf7, 0x84, 0x24, 0x9e, 0xca, 0x39, 0xa8, 0x00, 0x00, 0x00, 0xff, // IID14028 - 0xd5, 0x38, 0xf7, 0x84, 0x75, 0xf9, 0xdf, 0xfe, 0x0f, 0x00, 0x00, 0x00, 0xff, // IID14029 - 0xd5, 0x38, 0xf7, 0x84, 0x3e, 0xe4, 0x1e, 0xd3, 0x47, 0x00, 0x00, 0x00, 0xff, // IID14030 - 0xd5, 0x18, 0xf7, 0x87, 0xdd, 0xac, 0x1c, 0x69, 0x00, 0x00, 0x00, 0xff, // IID14031 - 0xd5, 0x3b, 0xf7, 0x84, 0x08, 0x6c, 0x24, 0x8c, 0x39, 0x00, 0x00, 0x00, 0xff, // IID14032 - 0xd5, 0x3b, 0xf7, 0x84, 0x51, 0xf4, 0x5f, 0x65, 0x40, 0x00, 0x00, 0x00, 0xff, // IID14033 - 0xd5, 0x3b, 0xf7, 0x84, 0x9a, 0x2d, 0x2d, 0x1c, 0x6f, 0x00, 0x00, 0x00, 0xff, // IID14034 - 0xd5, 0x3b, 0xf7, 0x84, 0xa3, 0x78, 0x40, 0xdf, 0x7d, 0x00, 0x00, 0x00, 0xff, // IID14035 - 0xd5, 0x3b, 0xf7, 0x84, 0x2c, 0xe3, 0x70, 0x7f, 0xe7, 0x00, 0x00, 0x00, 0xff, // IID14036 - 0xd5, 0x3b, 0xf7, 0x84, 0x75, 0x59, 0xa4, 0x43, 0xde, 0x00, 0x00, 0x00, 0xff, // IID14037 - 0xd5, 0x19, 0xf7, 0x86, 0xc8, 0x97, 0xb3, 0xa4, 0x00, 0x00, 0x00, 0xff, // IID14038 - 0xd5, 0x19, 0xf7, 0x84, 0x4f, 0x73, 0xde, 0xd0, 0xdb, 0x00, 0x00, 0x00, 0xff, // IID14039 - 0x48, 0xf7, 0x84, 0x91, 0x26, 0x72, 0xe7, 0x13, 0x00, 0x00, 0x00, 0xf0, // IID14040 - 0x48, 0xf7, 0x82, 0xfe, 0xe5, 0xe7, 0x5c, 0x00, 0x00, 0x00, 0xf0, // IID14041 - 0x4a, 0xf7, 0x84, 0xc3, 0x12, 0xae, 0x8a, 0x1f, 0x00, 0x00, 0x00, 0xf0, // IID14042 - 0x4b, 0xf7, 0x84, 0x48, 0x1d, 0x91, 0x12, 0xf4, 0x00, 0x00, 0x00, 0xf0, // IID14043 - 0x4b, 0xf7, 0x84, 0x51, 0x92, 0x14, 0x76, 0x48, 0x00, 0x00, 0x00, 0xf0, // IID14044 - 0x4b, 0xf7, 0x84, 0x5a, 0xe6, 0xc5, 0x82, 0xb6, 0x00, 0x00, 0x00, 0xf0, // IID14045 - 0x4b, 0xf7, 0x84, 0xa3, 0x9c, 0x75, 0xda, 0xfc, 0x00, 0x00, 0x00, 0xf0, // IID14046 - 0x4b, 0xf7, 0x84, 0x6c, 0xf9, 0x97, 0x33, 0xb0, 0x00, 0x00, 0x00, 0xf0, // IID14047 - 0x4b, 0xf7, 0x84, 0xb5, 0x1b, 0x61, 0xac, 0xff, 0x00, 0x00, 0x00, 0xf0, // IID14048 - 0x4b, 0xf7, 0x84, 0x7e, 0x0a, 0x52, 0x2c, 0x67, 0x00, 0x00, 0x00, 0xf0, // IID14049 - 0x49, 0xf7, 0x87, 0x99, 0xdf, 0xe2, 0x4b, 0x00, 0x00, 0x00, 0xf0, // IID14050 - 0xd5, 0x38, 0xf7, 0x84, 0xc8, 0xb0, 0xd7, 0x1f, 0xe4, 0x00, 0x00, 0x00, 0xf0, // IID14051 - 0xd5, 0x38, 0xf7, 0x84, 0xd1, 0xdc, 0xf5, 0xd4, 0x8d, 0x00, 0x00, 0x00, 0xf0, // IID14052 - 0xd5, 0x38, 0xf7, 0x84, 0x9a, 0xf4, 0xef, 0x68, 0x19, 0x00, 0x00, 0x00, 0xf0, // IID14053 - 0xd5, 0x38, 0xf7, 0x84, 0xe3, 0xb0, 0xb3, 0x9f, 0x32, 0x00, 0x00, 0x00, 0xf0, // IID14054 - 0xd5, 0x38, 0xf7, 0x84, 0xac, 0x18, 0x22, 0xee, 0xae, 0x00, 0x00, 0x00, 0xf0, // IID14055 - 0xd5, 0x38, 0xf7, 0x84, 0xf5, 0xc8, 0xe1, 0xdb, 0x2d, 0x00, 0x00, 0x00, 0xf0, // IID14056 - 0xd5, 0x38, 0xf7, 0x84, 0x7e, 0x16, 0x27, 0xf2, 0x28, 0x00, 0x00, 0x00, 0xf0, // IID14057 - 0xd5, 0x3a, 0xf7, 0x84, 0x87, 0x90, 0x17, 0xef, 0x90, 0x00, 0x00, 0x00, 0xf0, // IID14058 - 0xd5, 0x3b, 0xf7, 0x84, 0x08, 0x90, 0x38, 0xfb, 0x45, 0x00, 0x00, 0x00, 0xf0, // IID14059 - 0xd5, 0x3b, 0xf7, 0x84, 0x51, 0x07, 0x8f, 0xbd, 0x8f, 0x00, 0x00, 0x00, 0xf0, // IID14060 - 0xd5, 0x19, 0xf7, 0x82, 0x74, 0x41, 0x4e, 0x20, 0x00, 0x00, 0x00, 0xf0, // IID14061 - 0xd5, 0x3b, 0xf7, 0x84, 0x23, 0xca, 0x77, 0xa1, 0xca, 0x00, 0x00, 0x00, 0xf0, // IID14062 - 0xd5, 0x3b, 0xf7, 0x84, 0xac, 0x7d, 0x3b, 0x75, 0xf0, 0x00, 0x00, 0x00, 0xf0, // IID14063 - 0xd5, 0x3b, 0xf7, 0x84, 0x35, 0xbd, 0x6f, 0x1c, 0x89, 0x00, 0x00, 0x00, 0xf0, // IID14064 - 0xd5, 0x3b, 0xf7, 0x84, 0x7e, 0xe6, 0x57, 0x8d, 0x03, 0x00, 0x00, 0x00, 0xf0, // IID14065 - 0xd5, 0x19, 0xf7, 0x84, 0x4f, 0x81, 0x26, 0x83, 0xdd, 0x00, 0x00, 0x00, 0xf0, // IID14066 - 0x48, 0x03, 0x8c, 0xda, 0xc2, 0xd2, 0x2b, 0x45, // IID14067 - 0x4a, 0x03, 0x94, 0x83, 0xcc, 0xb2, 0xe1, 0x33, // IID14068 - 0x4b, 0x03, 0x9c, 0x88, 0x4b, 0xb4, 0x83, 0x28, // IID14069 - 0x4f, 0x03, 0x84, 0x11, 0xe8, 0xe8, 0x87, 0x59, // IID14070 - 0x4f, 0x03, 0x8c, 0x9a, 0x4e, 0xf0, 0x89, 0xdc, // IID14071 - 0x4d, 0x03, 0x93, 0x4a, 0x17, 0x37, 0x28, // IID14072 - 0x4d, 0x03, 0x9c, 0x24, 0xda, 0x07, 0xa9, 0x21, // IID14073 - 0x4f, 0x03, 0xa4, 0x75, 0x76, 0x3a, 0x60, 0x9b, // IID14074 - 0x4d, 0x03, 0xae, 0xd0, 0x8a, 0xe1, 0x78, // IID14075 - 0xd5, 0x2d, 0x03, 0xb4, 0x87, 0xd0, 0x32, 0x87, 0xd4, // IID14076 - 0xd5, 0x3c, 0x03, 0xbc, 0x88, 0x51, 0x69, 0x2d, 0x45, // IID14077 - 0xd5, 0x78, 0x03, 0x84, 0xd1, 0xa8, 0xd6, 0x4e, 0x6a, // IID14078 - 0xd5, 0x78, 0x03, 0x8c, 0x5a, 0x6c, 0x92, 0x48, 0x37, // IID14079 - 0xd5, 0x78, 0x03, 0x94, 0xa3, 0x63, 0xd0, 0x94, 0x97, // IID14080 - 0xd5, 0x78, 0x03, 0x9c, 0xac, 0x5c, 0x09, 0x6e, 0xc0, // IID14081 - 0xd5, 0x78, 0x03, 0xa4, 0xf5, 0x6c, 0xc3, 0x30, 0x77, // IID14082 - 0xd5, 0x78, 0x03, 0xac, 0x3e, 0x7d, 0xce, 0xef, 0x67, // IID14083 - 0xd5, 0x7a, 0x03, 0xb4, 0xc7, 0x4f, 0x04, 0x79, 0x03, // IID14084 - 0xd5, 0x7b, 0x03, 0xbc, 0x08, 0x59, 0xc6, 0x92, 0x8d, // IID14085 - 0xd5, 0x7f, 0x03, 0x84, 0xd1, 0x4a, 0x82, 0x9a, 0x87, // IID14086 - 0xd5, 0x7f, 0x03, 0x8c, 0x9a, 0xf5, 0xc6, 0x6d, 0x3a, // IID14087 - 0xd5, 0x7f, 0x03, 0x94, 0x23, 0x5f, 0x02, 0x27, 0x2f, // IID14088 - 0xd5, 0x7f, 0x03, 0x9c, 0x6c, 0x71, 0x21, 0x9e, 0xd9, // IID14089 - 0xd5, 0x5d, 0x03, 0xa5, 0x7c, 0xda, 0x12, 0x2e, // IID14090 - 0xd5, 0x5d, 0x03, 0xae, 0x7d, 0xd7, 0x38, 0x69, // IID14091 - 0xd5, 0x5d, 0x03, 0xb4, 0xcf, 0x01, 0x8c, 0xd3, 0x9e, // IID14092 - 0xd5, 0x4c, 0x03, 0xb9, 0x92, 0x70, 0x74, 0xbd, // IID14093 - 0x48, 0x23, 0x8c, 0x1a, 0xbb, 0x49, 0xac, 0x9d, // IID14094 - 0x4a, 0x23, 0x94, 0x83, 0x1a, 0xfd, 0x92, 0x5e, // IID14095 - 0x4b, 0x23, 0x9c, 0x08, 0xbf, 0xe5, 0xcf, 0x2a, // IID14096 - 0x4f, 0x23, 0x84, 0x91, 0x14, 0x01, 0x9f, 0xe8, // IID14097 - 0x4f, 0x23, 0x8c, 0x5a, 0xd5, 0xb6, 0x97, 0xed, // IID14098 - 0x4f, 0x23, 0x94, 0xe3, 0x8c, 0x85, 0x67, 0xf4, // IID14099 - 0x4f, 0x23, 0x9c, 0x2c, 0x6b, 0x00, 0x61, 0x1f, // IID14100 - 0x4d, 0x23, 0xa5, 0x89, 0xc2, 0x7f, 0x4c, // IID14101 - 0x4f, 0x23, 0xac, 0xfe, 0xe1, 0xd5, 0x8a, 0xbf, // IID14102 - 0xd5, 0x2d, 0x23, 0xb4, 0x87, 0x49, 0x8b, 0xa2, 0x70, // IID14103 - 0xd5, 0x3c, 0x23, 0xbc, 0x48, 0xdc, 0x2a, 0x6c, 0x23, // IID14104 - 0xd5, 0x78, 0x23, 0x84, 0xd1, 0xb0, 0xaf, 0xb7, 0x9e, // IID14105 - 0xd5, 0x78, 0x23, 0x8c, 0x9a, 0x3e, 0xda, 0xee, 0xcd, // IID14106 - 0xd5, 0x58, 0x23, 0x93, 0x4e, 0xba, 0x83, 0x72, // IID14107 - 0xd5, 0x78, 0x23, 0x9c, 0x2c, 0xde, 0x89, 0x6c, 0x40, // IID14108 - 0xd5, 0x78, 0x23, 0xa4, 0x35, 0x44, 0x34, 0x11, 0x05, // IID14109 - 0xd5, 0x78, 0x23, 0xac, 0x7e, 0xb1, 0xc4, 0x38, 0xa4, // IID14110 - 0xd5, 0x7a, 0x23, 0xb4, 0x07, 0xdc, 0xb5, 0xc0, 0x96, // IID14111 - 0xd5, 0x59, 0x23, 0xb8, 0x00, 0xdc, 0x6c, 0xc5, // IID14112 - 0xd5, 0x7f, 0x23, 0x84, 0x91, 0x22, 0xed, 0xf8, 0xce, // IID14113 - 0xd5, 0x7f, 0x23, 0x8c, 0xda, 0x49, 0xae, 0x56, 0x6e, // IID14114 - 0xd5, 0x7f, 0x23, 0x94, 0xe3, 0xbc, 0xdd, 0x50, 0x40, // IID14115 - 0xd5, 0x5d, 0x23, 0x9c, 0x24, 0x4e, 0x5e, 0x09, 0x9b, // IID14116 - 0xd5, 0x7f, 0x23, 0xa4, 0xb5, 0xed, 0x61, 0x74, 0xb8, // IID14117 - 0xd5, 0x7f, 0x23, 0xac, 0xbe, 0xa7, 0x19, 0xc9, 0x98, // IID14118 - 0xd5, 0x5d, 0x23, 0xb7, 0x32, 0x47, 0x46, 0x21, // IID14119 - 0xd5, 0x4c, 0x23, 0xbc, 0x91, 0x6f, 0xd3, 0x38, 0x26, // IID14120 - 0x48, 0x3b, 0x8c, 0xda, 0xdf, 0x4a, 0xb7, 0x15, // IID14121 - 0x4a, 0x3b, 0x94, 0x03, 0xfe, 0x2e, 0xed, 0xd3, // IID14122 - 0x4b, 0x3b, 0x9c, 0x08, 0xc2, 0x81, 0x24, 0x79, // IID14123 - 0x4f, 0x3b, 0x84, 0x51, 0x45, 0x35, 0x33, 0xb8, // IID14124 - 0x4f, 0x3b, 0x8c, 0x1a, 0x1f, 0x59, 0x9e, 0xce, // IID14125 - 0x4f, 0x3b, 0x94, 0xe3, 0x28, 0x28, 0xe4, 0xf2, // IID14126 - 0x4f, 0x3b, 0x9c, 0xac, 0x8a, 0xea, 0x3b, 0x6f, // IID14127 - 0x4f, 0x3b, 0xa4, 0xb5, 0x95, 0xd6, 0x50, 0x2c, // IID14128 - 0x4f, 0x3b, 0xac, 0xbe, 0x25, 0x14, 0xef, 0x1f, // IID14129 - 0xd5, 0x2d, 0x3b, 0xb4, 0x87, 0x99, 0x7a, 0xff, 0xe9, // IID14130 - 0xd5, 0x1c, 0x3b, 0xb8, 0xe2, 0xa1, 0x63, 0x21, // IID14131 - 0xd5, 0x78, 0x3b, 0x84, 0x91, 0x78, 0x61, 0x7a, 0x33, // IID14132 - 0xd5, 0x58, 0x3b, 0x8a, 0xe6, 0x47, 0x73, 0x07, // IID14133 - 0xd5, 0x78, 0x3b, 0x94, 0xe3, 0x75, 0xa0, 0xb9, 0xfd, // IID14134 - 0xd5, 0x58, 0x3b, 0x9c, 0x24, 0x01, 0xad, 0xa6, 0x63, // IID14135 - 0xd5, 0x78, 0x3b, 0xa4, 0x75, 0x7c, 0x7a, 0xee, 0x5d, // IID14136 - 0xd5, 0x78, 0x3b, 0xac, 0x3e, 0x08, 0x2d, 0x84, 0x38, // IID14137 - 0xd5, 0x7a, 0x3b, 0xb4, 0x87, 0xd2, 0x78, 0xf5, 0x9c, // IID14138 - 0xd5, 0x7b, 0x3b, 0xbc, 0x08, 0x81, 0xa7, 0xca, 0xad, // IID14139 - 0xd5, 0x7f, 0x3b, 0x84, 0x91, 0x9f, 0xaa, 0xc2, 0xd5, // IID14140 - 0xd5, 0x7f, 0x3b, 0x8c, 0x5a, 0xb6, 0x5c, 0xeb, 0xac, // IID14141 - 0xd5, 0x5d, 0x3b, 0x93, 0xf1, 0x4c, 0xe0, 0x98, // IID14142 - 0xd5, 0x7f, 0x3b, 0x9c, 0xec, 0x49, 0x87, 0x29, 0x7f, // IID14143 - 0xd5, 0x7f, 0x3b, 0xa4, 0xb5, 0xc4, 0x54, 0xbe, 0xc9, // IID14144 - 0xd5, 0x7f, 0x3b, 0xac, 0x7e, 0x09, 0x53, 0x9f, 0xe2, // IID14145 - 0xd5, 0x5d, 0x3b, 0xb4, 0xcf, 0x55, 0xc2, 0x19, 0xf0, // IID14146 - 0xd5, 0x4c, 0x3b, 0xbc, 0x11, 0xb2, 0xdc, 0x40, 0x8a, // IID14147 - 0xf3, 0x48, 0x0f, 0xbd, 0x8c, 0x1a, 0x2d, 0xa3, 0x2a, 0x60, // IID14148 - 0xf3, 0x48, 0x0f, 0xbd, 0x93, 0x9d, 0x92, 0x40, 0x93, // IID14149 - 0xf3, 0x4b, 0x0f, 0xbd, 0x9c, 0x08, 0x89, 0x5c, 0xa5, 0xba, // IID14150 - 0xf3, 0x4d, 0x0f, 0xbd, 0x81, 0xc2, 0x31, 0xfe, 0xc2, // IID14151 - 0xf3, 0x4f, 0x0f, 0xbd, 0x8c, 0x1a, 0x66, 0x71, 0x90, 0xa8, // IID14152 - 0xf3, 0x4f, 0x0f, 0xbd, 0x94, 0xa3, 0x0c, 0xb1, 0x5a, 0xb4, // IID14153 - 0xf3, 0x4f, 0x0f, 0xbd, 0x9c, 0xac, 0xe2, 0xeb, 0x65, 0x16, // IID14154 - 0xf3, 0x4f, 0x0f, 0xbd, 0xa4, 0xb5, 0xd1, 0x39, 0xb3, 0x3b, // IID14155 - 0xf3, 0x4f, 0x0f, 0xbd, 0xac, 0x3e, 0x82, 0x61, 0x9e, 0x52, // IID14156 - 0xf3, 0xd5, 0xad, 0xbd, 0xb4, 0x07, 0x8f, 0x70, 0xf1, 0xe0, // IID14157 - 0xf3, 0xd5, 0xbc, 0xbd, 0xbc, 0x08, 0xa3, 0x41, 0x77, 0x28, // IID14158 - 0xf3, 0xd5, 0xf8, 0xbd, 0x84, 0xd1, 0x0e, 0xde, 0x51, 0xc4, // IID14159 - 0xf3, 0xd5, 0xf8, 0xbd, 0x8c, 0x5a, 0x3d, 0xd7, 0xd1, 0x80, // IID14160 - 0xf3, 0xd5, 0xf8, 0xbd, 0x94, 0xe3, 0x83, 0x24, 0x4f, 0xb8, // IID14161 - 0xf3, 0xd5, 0xf8, 0xbd, 0x9c, 0x6c, 0xc8, 0xed, 0x58, 0x87, // IID14162 - 0xf3, 0xd5, 0xf8, 0xbd, 0xa4, 0xf5, 0x5b, 0x56, 0x47, 0x6a, // IID14163 - 0xf3, 0xd5, 0xf8, 0xbd, 0xac, 0xfe, 0x80, 0x31, 0x59, 0xbf, // IID14164 - 0xf3, 0xd5, 0xd8, 0xbd, 0xb7, 0xb3, 0x0a, 0xdc, 0xf0, // IID14165 - 0xf3, 0xd5, 0xfb, 0xbd, 0xbc, 0x48, 0x8c, 0x90, 0x7f, 0x3d, // IID14166 - 0xf3, 0xd5, 0xff, 0xbd, 0x84, 0x91, 0x65, 0x6e, 0x00, 0x11, // IID14167 - 0xf3, 0xd5, 0xff, 0xbd, 0x8c, 0x5a, 0x38, 0x88, 0x8b, 0x7b, // IID14168 - 0xf3, 0xd5, 0xff, 0xbd, 0x94, 0x63, 0xb0, 0xd9, 0xb4, 0x97, // IID14169 - 0xf3, 0xd5, 0xff, 0xbd, 0x9c, 0xac, 0x1a, 0xdc, 0xf2, 0x86, // IID14170 - 0xf3, 0xd5, 0xff, 0xbd, 0xa4, 0x75, 0x22, 0x41, 0x03, 0x93, // IID14171 - 0xf3, 0xd5, 0xff, 0xbd, 0xac, 0x7e, 0x7b, 0x79, 0xaf, 0x41, // IID14172 - 0xf3, 0xd5, 0xdd, 0xbd, 0xb7, 0xcc, 0x41, 0x98, 0x3a, // IID14173 - 0xf3, 0xd5, 0xcc, 0xbd, 0xbc, 0x11, 0xa0, 0x66, 0xc4, 0x7e, // IID14174 - 0x48, 0x0b, 0x8c, 0xda, 0x54, 0x6d, 0x28, 0xdf, // IID14175 - 0x4a, 0x0b, 0x94, 0x83, 0x92, 0x1c, 0xf7, 0x06, // IID14176 - 0x4b, 0x0b, 0x9c, 0x88, 0xd7, 0xbb, 0x00, 0xde, // IID14177 - 0x4f, 0x0b, 0x84, 0xd1, 0x4d, 0xa9, 0x0f, 0x52, // IID14178 - 0x4f, 0x0b, 0x8c, 0xda, 0x6e, 0x15, 0x6d, 0x02, // IID14179 - 0x4f, 0x0b, 0x94, 0xa3, 0x8e, 0x1f, 0x50, 0x52, // IID14180 - 0x4d, 0x0b, 0x9c, 0x24, 0x9f, 0x1f, 0xc2, 0xbf, // IID14181 - 0x4f, 0x0b, 0xa4, 0xb5, 0x2f, 0x78, 0xf1, 0xc2, // IID14182 - 0x4f, 0x0b, 0xac, 0xbe, 0x4b, 0x43, 0xf0, 0x18, // IID14183 - 0xd5, 0x2d, 0x0b, 0xb4, 0xc7, 0x31, 0x6c, 0xbf, 0xea, // IID14184 - 0xd5, 0x1c, 0x0b, 0xb8, 0xd4, 0x9e, 0x3a, 0xc6, // IID14185 - 0xd5, 0x78, 0x0b, 0x84, 0xd1, 0x8f, 0x11, 0xfc, 0x60, // IID14186 - 0xd5, 0x78, 0x0b, 0x8c, 0xda, 0x64, 0x4c, 0x29, 0x15, // IID14187 - 0xd5, 0x78, 0x0b, 0x94, 0xa3, 0x45, 0x26, 0xf1, 0xc9, // IID14188 - 0xd5, 0x78, 0x0b, 0x9c, 0xac, 0xf4, 0xe2, 0xde, 0x84, // IID14189 - 0xd5, 0x78, 0x0b, 0xa4, 0xb5, 0x22, 0xdc, 0x33, 0xfc, // IID14190 - 0xd5, 0x78, 0x0b, 0xac, 0xbe, 0x7a, 0xb8, 0x10, 0x1e, // IID14191 - 0xd5, 0x58, 0x0b, 0xb7, 0x8f, 0x8d, 0x8b, 0x2b, // IID14192 - 0xd5, 0x7b, 0x0b, 0xbc, 0x08, 0x29, 0x3e, 0x87, 0x16, // IID14193 - 0xd5, 0x7f, 0x0b, 0x84, 0x91, 0xb9, 0xfc, 0x44, 0x6b, // IID14194 - 0xd5, 0x7f, 0x0b, 0x8c, 0x9a, 0xf6, 0xa3, 0xc6, 0x6f, // IID14195 - 0xd5, 0x7f, 0x0b, 0x94, 0xa3, 0x1d, 0x47, 0x60, 0x61, // IID14196 - 0xd5, 0x7f, 0x0b, 0x9c, 0x6c, 0x5b, 0xa4, 0xb0, 0xd7, // IID14197 - 0xd5, 0x7f, 0x0b, 0xa4, 0x75, 0x89, 0x2d, 0xc7, 0xf9, // IID14198 - 0xd5, 0x7f, 0x0b, 0xac, 0xbe, 0x46, 0x16, 0xd0, 0xf3, // IID14199 - 0xd5, 0x5d, 0x0b, 0xb4, 0xcf, 0xde, 0x89, 0x3f, 0x82, // IID14200 - 0xd5, 0x4c, 0x0b, 0xbc, 0x91, 0x99, 0x7f, 0xb7, 0xff, // IID14201 - 0x48, 0x13, 0x8c, 0x5a, 0xd2, 0x8a, 0x80, 0x56, // IID14202 - 0x4a, 0x13, 0x94, 0xc3, 0x5d, 0x07, 0xbb, 0x8e, // IID14203 - 0x4b, 0x13, 0x9c, 0x48, 0x5a, 0xca, 0xce, 0xe2, // IID14204 - 0x4f, 0x13, 0x84, 0xd1, 0x0e, 0xb1, 0xf5, 0x7e, // IID14205 - 0x4d, 0x13, 0x8a, 0xf3, 0x75, 0xbb, 0x1d, // IID14206 - 0x4f, 0x13, 0x94, 0xa3, 0x52, 0x7b, 0xfe, 0x65, // IID14207 - 0x4d, 0x13, 0x9c, 0x24, 0x3a, 0x77, 0x18, 0x7c, // IID14208 - 0x4f, 0x13, 0xa4, 0x75, 0xf7, 0x54, 0xdc, 0x1c, // IID14209 - 0x4f, 0x13, 0xac, 0x7e, 0xf1, 0xad, 0xf7, 0x49, // IID14210 - 0x4d, 0x13, 0xb7, 0xae, 0xb7, 0x34, 0x73, // IID14211 - 0xd5, 0x3c, 0x13, 0xbc, 0xc8, 0xf3, 0xe3, 0x66, 0x98, // IID14212 - 0xd5, 0x78, 0x13, 0x84, 0x91, 0xd7, 0x2c, 0x9f, 0x02, // IID14213 - 0xd5, 0x78, 0x13, 0x8c, 0xda, 0xa6, 0x22, 0x32, 0x39, // IID14214 - 0xd5, 0x78, 0x13, 0x94, 0x63, 0x42, 0xb3, 0x51, 0xff, // IID14215 - 0xd5, 0x78, 0x13, 0x9c, 0x2c, 0xaf, 0x7d, 0x2d, 0xc6, // IID14216 - 0xd5, 0x58, 0x13, 0xa5, 0x8c, 0xe4, 0x10, 0x01, // IID14217 - 0xd5, 0x78, 0x13, 0xac, 0x7e, 0xf9, 0xa1, 0x00, 0xa5, // IID14218 - 0xd5, 0x58, 0x13, 0xb7, 0xb4, 0xe5, 0xdb, 0x4b, // IID14219 - 0xd5, 0x7b, 0x13, 0xbc, 0x88, 0x6b, 0xac, 0xdf, 0x85, // IID14220 - 0xd5, 0x5d, 0x13, 0x81, 0x97, 0x56, 0x03, 0xed, // IID14221 - 0xd5, 0x7f, 0x13, 0x8c, 0x5a, 0x8d, 0x69, 0xca, 0x4c, // IID14222 - 0xd5, 0x7f, 0x13, 0x94, 0xa3, 0xdd, 0xb5, 0xc8, 0xcf, // IID14223 - 0xd5, 0x7f, 0x13, 0x9c, 0x6c, 0xbb, 0xde, 0x07, 0x9f, // IID14224 - 0xd5, 0x5d, 0x13, 0xa5, 0xe9, 0xde, 0x8a, 0x5c, // IID14225 - 0xd5, 0x7f, 0x13, 0xac, 0xbe, 0xc0, 0x3f, 0xdd, 0xdf, // IID14226 - 0xd5, 0x5d, 0x13, 0xb4, 0x4f, 0x7f, 0x01, 0xe6, 0x92, // IID14227 - 0xd5, 0x4c, 0x13, 0xbc, 0x91, 0x10, 0x96, 0x6a, 0xd7, // IID14228 - 0x48, 0x0f, 0xaf, 0x8c, 0x5a, 0xeb, 0x2f, 0xd7, 0xcd, // IID14229 - 0x48, 0x0f, 0xaf, 0x93, 0xa1, 0x62, 0xbc, 0xa1, // IID14230 - 0x4b, 0x0f, 0xaf, 0x9c, 0xc8, 0x33, 0xd0, 0xd5, 0x78, // IID14231 - 0x4f, 0x0f, 0xaf, 0x84, 0xd1, 0xf4, 0x37, 0x06, 0x8c, // IID14232 - 0x4f, 0x0f, 0xaf, 0x8c, 0xda, 0xdd, 0x29, 0xed, 0x10, // IID14233 - 0x4d, 0x0f, 0xaf, 0x93, 0x96, 0xeb, 0x2b, 0xcd, // IID14234 - 0x4d, 0x0f, 0xaf, 0x9c, 0x24, 0x3f, 0xe5, 0xc4, 0xec, // IID14235 - 0x4f, 0x0f, 0xaf, 0xa4, 0x75, 0x45, 0xcf, 0xb8, 0x1b, // IID14236 - 0x4f, 0x0f, 0xaf, 0xac, 0x7e, 0xfc, 0xf9, 0x6a, 0xdc, // IID14237 - 0xd5, 0xad, 0xaf, 0xb4, 0xc7, 0x72, 0x92, 0xe7, 0x23, // IID14238 - 0xd5, 0x9c, 0xaf, 0xb8, 0x5d, 0xe9, 0xfc, 0xdf, // IID14239 - 0xd5, 0xf8, 0xaf, 0x84, 0x51, 0x1a, 0xb7, 0xb8, 0x9a, // IID14240 - 0xd5, 0xf8, 0xaf, 0x8c, 0x1a, 0x61, 0xb4, 0x26, 0x6d, // IID14241 - 0xd5, 0xf8, 0xaf, 0x94, 0xa3, 0x08, 0x01, 0x9a, 0xb7, // IID14242 - 0xd5, 0xd8, 0xaf, 0x9c, 0x24, 0xc2, 0x36, 0x24, 0x64, // IID14243 - 0xd5, 0xd8, 0xaf, 0xa5, 0xf3, 0x35, 0x20, 0xf9, // IID14244 - 0xd5, 0xf8, 0xaf, 0xac, 0x3e, 0x8a, 0x42, 0x9a, 0xa5, // IID14245 - 0xd5, 0xfa, 0xaf, 0xb4, 0x47, 0x59, 0xc8, 0x11, 0x9c, // IID14246 - 0xd5, 0xfb, 0xaf, 0xbc, 0x88, 0xdb, 0x53, 0x20, 0x22, // IID14247 - 0xd5, 0xff, 0xaf, 0x84, 0x11, 0xa5, 0xb0, 0x7f, 0x1e, // IID14248 - 0xd5, 0xdd, 0xaf, 0x8a, 0xd6, 0xad, 0xd2, 0x7b, // IID14249 - 0xd5, 0xff, 0xaf, 0x94, 0x63, 0x49, 0xd3, 0xfe, 0xe2, // IID14250 - 0xd5, 0xdd, 0xaf, 0x9c, 0x24, 0x3c, 0x49, 0xc3, 0x7e, // IID14251 - 0xd5, 0xff, 0xaf, 0xa4, 0xf5, 0xd1, 0xbd, 0x16, 0xcb, // IID14252 - 0xd5, 0xff, 0xaf, 0xac, 0xbe, 0x9c, 0x9e, 0x47, 0x25, // IID14253 - 0xd5, 0xdd, 0xaf, 0xb4, 0xcf, 0xad, 0x47, 0xd9, 0xc0, // IID14254 - 0xd5, 0xcc, 0xaf, 0xbc, 0x91, 0x08, 0x88, 0xae, 0xaf, // IID14255 - 0xf3, 0x48, 0x0f, 0xb8, 0x8c, 0x5a, 0x70, 0x96, 0xd9, 0xe2, // IID14256 - 0xf3, 0x4a, 0x0f, 0xb8, 0x94, 0xc3, 0x05, 0xcd, 0x75, 0x18, // IID14257 - 0xf3, 0x49, 0x0f, 0xb8, 0x98, 0xf3, 0x4a, 0x0a, 0x9b, // IID14258 - 0xf3, 0x4f, 0x0f, 0xb8, 0x84, 0x51, 0x3e, 0xc2, 0x68, 0x8f, // IID14259 - 0xf3, 0x4d, 0x0f, 0xb8, 0x8a, 0xd7, 0x4b, 0x67, 0x0b, // IID14260 - 0xf3, 0x4d, 0x0f, 0xb8, 0x93, 0x77, 0x48, 0xfe, 0x6d, // IID14261 - 0xf3, 0x4f, 0x0f, 0xb8, 0x9c, 0xec, 0x42, 0xfb, 0x1c, 0x72, // IID14262 - 0xf3, 0x4f, 0x0f, 0xb8, 0xa4, 0x35, 0x86, 0x9e, 0x4a, 0x78, // IID14263 - 0xf3, 0x4d, 0x0f, 0xb8, 0xae, 0x9c, 0x44, 0x33, 0x09, // IID14264 - 0xf3, 0xd5, 0xad, 0xb8, 0xb4, 0x47, 0x7b, 0xc0, 0x91, 0xeb, // IID14265 - 0xf3, 0xd5, 0xbc, 0xb8, 0xbc, 0x88, 0x36, 0x6b, 0xac, 0x1f, // IID14266 - 0xf3, 0xd5, 0xf8, 0xb8, 0x84, 0x11, 0xe1, 0xbd, 0x10, 0x66, // IID14267 - 0xf3, 0xd5, 0xd8, 0xb8, 0x8a, 0xac, 0x70, 0xeb, 0x9f, // IID14268 - 0xf3, 0xd5, 0xd8, 0xb8, 0x93, 0xc6, 0x0b, 0x1a, 0xeb, // IID14269 - 0xf3, 0xd5, 0xd8, 0xb8, 0x9c, 0x24, 0x23, 0x41, 0x3f, 0x52, // IID14270 - 0xf3, 0xd5, 0xf8, 0xb8, 0xa4, 0x35, 0x5a, 0x5c, 0x5c, 0x35, // IID14271 - 0xf3, 0xd5, 0xd8, 0xb8, 0xae, 0x20, 0x82, 0x8a, 0x05, // IID14272 - 0xf3, 0xd5, 0xfa, 0xb8, 0xb4, 0x87, 0xd3, 0x63, 0x20, 0x88, // IID14273 - 0xf3, 0xd5, 0xfb, 0xb8, 0xbc, 0xc8, 0xf6, 0xa6, 0x11, 0xdd, // IID14274 - 0xf3, 0xd5, 0xff, 0xb8, 0x84, 0x51, 0x03, 0xde, 0x40, 0xdb, // IID14275 - 0xf3, 0xd5, 0xff, 0xb8, 0x8c, 0xda, 0x2e, 0x05, 0xe9, 0x24, // IID14276 - 0xf3, 0xd5, 0xdd, 0xb8, 0x93, 0x9a, 0x4f, 0xa3, 0x06, // IID14277 - 0xf3, 0xd5, 0xdd, 0xb8, 0x9c, 0x24, 0xec, 0xc7, 0xb6, 0x75, // IID14278 - 0xf3, 0xd5, 0xff, 0xb8, 0xa4, 0x35, 0x99, 0xc0, 0xfb, 0x12, // IID14279 - 0xf3, 0xd5, 0xff, 0xb8, 0xac, 0xfe, 0xc9, 0x3f, 0x0e, 0xe4, // IID14280 - 0xf3, 0xd5, 0xdd, 0xb8, 0xb4, 0x4f, 0x3f, 0x57, 0x3f, 0x18, // IID14281 - 0xf3, 0xd5, 0xcc, 0xb8, 0xb9, 0x3d, 0xc5, 0x9e, 0x17, // IID14282 - 0x48, 0x1b, 0x8a, 0xc6, 0xca, 0x5b, 0xe9, // IID14283 - 0x4a, 0x1b, 0x94, 0xc3, 0xb1, 0x58, 0x6e, 0x2a, // IID14284 - 0x4b, 0x1b, 0x9c, 0x08, 0xc8, 0xfd, 0x37, 0x54, // IID14285 - 0x4d, 0x1b, 0x81, 0x9b, 0xdc, 0xa7, 0xfa, // IID14286 - 0x4f, 0x1b, 0x8c, 0x5a, 0x44, 0x7e, 0x93, 0xd6, // IID14287 - 0x4f, 0x1b, 0x94, 0x23, 0x33, 0xb5, 0x9b, 0x04, // IID14288 - 0x4f, 0x1b, 0x9c, 0x2c, 0x5f, 0xec, 0x5b, 0x2d, // IID14289 - 0x4f, 0x1b, 0xa4, 0x75, 0x85, 0x2d, 0xe9, 0xef, // IID14290 - 0x4f, 0x1b, 0xac, 0xbe, 0xc3, 0xc5, 0x60, 0xd1, // IID14291 - 0xd5, 0x2d, 0x1b, 0xb4, 0xc7, 0x4e, 0x53, 0x8b, 0x3d, // IID14292 - 0xd5, 0x3c, 0x1b, 0xbc, 0x48, 0x5e, 0x26, 0xaf, 0xfa, // IID14293 - 0xd5, 0x78, 0x1b, 0x84, 0x91, 0x67, 0x6a, 0x69, 0xf3, // IID14294 - 0xd5, 0x78, 0x1b, 0x8c, 0x9a, 0xfd, 0x5e, 0xc4, 0x6d, // IID14295 - 0xd5, 0x78, 0x1b, 0x94, 0xa3, 0x03, 0xa0, 0xdc, 0x78, // IID14296 - 0xd5, 0x78, 0x1b, 0x9c, 0xec, 0x02, 0x99, 0x5f, 0x5e, // IID14297 - 0xd5, 0x78, 0x1b, 0xa4, 0x75, 0x15, 0xc4, 0xb9, 0x8c, // IID14298 - 0xd5, 0x78, 0x1b, 0xac, 0xfe, 0xc3, 0x63, 0xbc, 0xdc, // IID14299 - 0xd5, 0x7a, 0x1b, 0xb4, 0xc7, 0x9e, 0x57, 0x5b, 0xa7, // IID14300 - 0xd5, 0x7b, 0x1b, 0xbc, 0x88, 0x29, 0x92, 0xd7, 0xd8, // IID14301 - 0xd5, 0x7f, 0x1b, 0x84, 0x11, 0x22, 0xb1, 0xe6, 0xd6, // IID14302 - 0xd5, 0x5d, 0x1b, 0x8a, 0x05, 0xde, 0x09, 0xd0, // IID14303 - 0xd5, 0x5d, 0x1b, 0x93, 0x3d, 0x80, 0xc8, 0x3b, // IID14304 - 0xd5, 0x7f, 0x1b, 0x9c, 0xec, 0x52, 0xd8, 0x1e, 0xf1, // IID14305 - 0xd5, 0x7f, 0x1b, 0xa4, 0x35, 0xae, 0xa2, 0xaa, 0xa9, // IID14306 - 0xd5, 0x7f, 0x1b, 0xac, 0xbe, 0xf9, 0x38, 0x7f, 0x31, // IID14307 - 0xd5, 0x5d, 0x1b, 0xb4, 0xcf, 0x6b, 0x2c, 0x24, 0x7d, // IID14308 - 0xd5, 0x4c, 0x1b, 0xbc, 0x51, 0x99, 0x4b, 0x62, 0x01, // IID14309 - 0x48, 0x2b, 0x8c, 0x9a, 0xf1, 0x83, 0x7c, 0x02, // IID14310 - 0x4a, 0x2b, 0x94, 0x83, 0x91, 0x54, 0x79, 0xf3, // IID14311 - 0x4b, 0x2b, 0x9c, 0x08, 0x22, 0x7b, 0xf9, 0x9f, // IID14312 - 0x4f, 0x2b, 0x84, 0xd1, 0x51, 0x96, 0xde, 0x90, // IID14313 - 0x4f, 0x2b, 0x8c, 0x9a, 0x99, 0x2e, 0xc5, 0x43, // IID14314 - 0x4f, 0x2b, 0x94, 0xa3, 0x3c, 0x15, 0xf2, 0xaf, // IID14315 - 0x4f, 0x2b, 0x9c, 0x6c, 0x2d, 0xd4, 0x34, 0x2f, // IID14316 - 0x4f, 0x2b, 0xa4, 0x75, 0x80, 0x64, 0xa3, 0x97, // IID14317 - 0x4f, 0x2b, 0xac, 0xbe, 0xd4, 0xac, 0xd9, 0x56, // IID14318 - 0xd5, 0x2d, 0x2b, 0xb4, 0x87, 0x9f, 0x4b, 0x6d, 0x7c, // IID14319 - 0xd5, 0x1c, 0x2b, 0xb8, 0x82, 0x08, 0x4c, 0x1a, // IID14320 - 0xd5, 0x58, 0x2b, 0x81, 0x88, 0x5d, 0x51, 0x07, // IID14321 - 0xd5, 0x58, 0x2b, 0x8a, 0x6d, 0x27, 0x48, 0x65, // IID14322 - 0xd5, 0x78, 0x2b, 0x94, 0x63, 0xb8, 0xee, 0x48, 0x2d, // IID14323 - 0xd5, 0x78, 0x2b, 0x9c, 0xec, 0xd6, 0x05, 0xd9, 0x4e, // IID14324 - 0xd5, 0x78, 0x2b, 0xa4, 0xb5, 0xb7, 0xe2, 0x5e, 0x8b, // IID14325 - 0xd5, 0x78, 0x2b, 0xac, 0xfe, 0x10, 0xa5, 0x20, 0x47, // IID14326 - 0xd5, 0x7a, 0x2b, 0xb4, 0xc7, 0xdc, 0x65, 0xd5, 0xc5, // IID14327 - 0xd5, 0x7b, 0x2b, 0xbc, 0xc8, 0xa7, 0xbb, 0x51, 0xad, // IID14328 - 0xd5, 0x7f, 0x2b, 0x84, 0x51, 0x6f, 0x3e, 0x4a, 0x9a, // IID14329 - 0xd5, 0x5d, 0x2b, 0x8a, 0x26, 0x05, 0xf7, 0xc8, // IID14330 - 0xd5, 0x5d, 0x2b, 0x93, 0x45, 0xb3, 0x35, 0xdf, // IID14331 - 0xd5, 0x7f, 0x2b, 0x9c, 0xac, 0x58, 0x11, 0x64, 0x63, // IID14332 - 0xd5, 0x7f, 0x2b, 0xa4, 0xf5, 0xb8, 0x01, 0xb0, 0x22, // IID14333 - 0xd5, 0x7f, 0x2b, 0xac, 0xfe, 0xdf, 0x59, 0x70, 0xde, // IID14334 - 0xd5, 0x5d, 0x2b, 0xb4, 0x8f, 0xcc, 0x24, 0xd8, 0x06, // IID14335 - 0xd5, 0x4c, 0x2b, 0xbc, 0x51, 0x82, 0x82, 0x8e, 0x03, // IID14336 - 0xf3, 0x48, 0x0f, 0xbc, 0x8c, 0x1a, 0x3a, 0x3e, 0x77, 0x0e, // IID14337 - 0xf3, 0x4a, 0x0f, 0xbc, 0x94, 0x43, 0x61, 0xd3, 0xc8, 0xa6, // IID14338 - 0xf3, 0x4b, 0x0f, 0xbc, 0x9c, 0xc8, 0x01, 0x5d, 0x1d, 0x7b, // IID14339 - 0xf3, 0x4d, 0x0f, 0xbc, 0x81, 0x95, 0x06, 0x44, 0x4e, // IID14340 - 0xf3, 0x4f, 0x0f, 0xbc, 0x8c, 0x1a, 0x86, 0x1f, 0xb2, 0x32, // IID14341 - 0xf3, 0x4f, 0x0f, 0xbc, 0x94, 0x23, 0x11, 0x29, 0xd3, 0xef, // IID14342 - 0xf3, 0x4f, 0x0f, 0xbc, 0x9c, 0xac, 0xb5, 0x03, 0xdc, 0x88, // IID14343 - 0xf3, 0x4f, 0x0f, 0xbc, 0xa4, 0x75, 0x68, 0xca, 0xa4, 0xc1, // IID14344 - 0xf3, 0x4f, 0x0f, 0xbc, 0xac, 0x3e, 0x51, 0xb0, 0xc0, 0x6b, // IID14345 - 0xf3, 0xd5, 0xad, 0xbc, 0xb4, 0x87, 0xc6, 0xfb, 0x3a, 0xb5, // IID14346 - 0xf3, 0xd5, 0xbc, 0xbc, 0xbc, 0xc8, 0x7f, 0xa8, 0xe2, 0x29, // IID14347 - 0xf3, 0xd5, 0xf8, 0xbc, 0x84, 0x51, 0x7e, 0x6b, 0xe6, 0x25, // IID14348 - 0xf3, 0xd5, 0xf8, 0xbc, 0x8c, 0x1a, 0xcc, 0x5a, 0xea, 0xc2, // IID14349 - 0xf3, 0xd5, 0xf8, 0xbc, 0x94, 0x63, 0x38, 0x91, 0x5a, 0x42, // IID14350 - 0xf3, 0xd5, 0xf8, 0xbc, 0x9c, 0xac, 0x23, 0x71, 0x75, 0x60, // IID14351 - 0xf3, 0xd5, 0xd8, 0xbc, 0xa5, 0x3b, 0x68, 0xf7, 0xff, // IID14352 - 0xf3, 0xd5, 0xf8, 0xbc, 0xac, 0x3e, 0xb6, 0x10, 0x36, 0x2b, // IID14353 - 0xf3, 0xd5, 0xfa, 0xbc, 0xb4, 0xc7, 0x54, 0xcc, 0xe7, 0x64, // IID14354 - 0xf3, 0xd5, 0xd9, 0xbc, 0xb8, 0xca, 0x18, 0xa7, 0x6e, // IID14355 - 0xf3, 0xd5, 0xdd, 0xbc, 0x81, 0xc2, 0x43, 0x78, 0xcf, // IID14356 - 0xf3, 0xd5, 0xff, 0xbc, 0x8c, 0x5a, 0x07, 0x0e, 0x8a, 0xee, // IID14357 - 0xf3, 0xd5, 0xff, 0xbc, 0x94, 0x23, 0x23, 0xe7, 0x38, 0x50, // IID14358 - 0xf3, 0xd5, 0xff, 0xbc, 0x9c, 0x6c, 0xec, 0xf8, 0x69, 0x13, // IID14359 - 0xf3, 0xd5, 0xff, 0xbc, 0xa4, 0x75, 0xfa, 0x98, 0x0f, 0xab, // IID14360 - 0xf3, 0xd5, 0xdd, 0xbc, 0xae, 0x93, 0x8a, 0xfd, 0x3f, // IID14361 - 0xf3, 0xd5, 0xdd, 0xbc, 0xb4, 0x4f, 0xc9, 0x22, 0xd7, 0x38, // IID14362 - 0xf3, 0xd5, 0xcc, 0xbc, 0xbc, 0xd1, 0x6c, 0xc7, 0xa7, 0xda, // IID14363 - 0x48, 0x33, 0x8a, 0xe1, 0x8f, 0xb7, 0x23, // IID14364 - 0x48, 0x33, 0x93, 0xb4, 0x73, 0xfe, 0xb8, // IID14365 - 0x4b, 0x33, 0x9c, 0x08, 0xdc, 0x83, 0xb3, 0x69, // IID14366 - 0x4f, 0x33, 0x84, 0x11, 0x32, 0x11, 0x63, 0x52, // IID14367 - 0x4f, 0x33, 0x8c, 0x9a, 0x0b, 0x55, 0x03, 0xea, // IID14368 - 0x4f, 0x33, 0x94, 0x23, 0xf7, 0x07, 0x49, 0xe1, // IID14369 - 0x4f, 0x33, 0x9c, 0x6c, 0x4e, 0x6e, 0x1f, 0x58, // IID14370 - 0x4f, 0x33, 0xa4, 0xf5, 0x3e, 0xc8, 0xe0, 0x2a, // IID14371 - 0x4f, 0x33, 0xac, 0xfe, 0x30, 0xd6, 0xf9, 0x08, // IID14372 - 0xd5, 0x2d, 0x33, 0xb4, 0x47, 0x4e, 0x50, 0xde, 0x61, // IID14373 - 0xd5, 0x1c, 0x33, 0xb8, 0x69, 0x16, 0xd4, 0xd2, // IID14374 - 0xd5, 0x78, 0x33, 0x84, 0xd1, 0x13, 0x10, 0x9b, 0x3d, // IID14375 - 0xd5, 0x58, 0x33, 0x8a, 0xc6, 0x7f, 0x5c, 0xaa, // IID14376 - 0xd5, 0x78, 0x33, 0x94, 0xe3, 0xbc, 0x04, 0xad, 0x56, // IID14377 - 0xd5, 0x78, 0x33, 0x9c, 0x6c, 0xf3, 0xed, 0x07, 0x1c, // IID14378 - 0xd5, 0x78, 0x33, 0xa4, 0xf5, 0xc5, 0x66, 0x50, 0x71, // IID14379 - 0xd5, 0x78, 0x33, 0xac, 0xfe, 0x75, 0x32, 0xcd, 0xf3, // IID14380 - 0xd5, 0x7a, 0x33, 0xb4, 0xc7, 0xaf, 0xee, 0x03, 0x50, // IID14381 - 0xd5, 0x7b, 0x33, 0xbc, 0x88, 0x44, 0xc1, 0x39, 0xf9, // IID14382 - 0xd5, 0x5d, 0x33, 0x81, 0x80, 0x2e, 0xaa, 0xe0, // IID14383 - 0xd5, 0x7f, 0x33, 0x8c, 0x1a, 0x9e, 0x72, 0xf5, 0x52, // IID14384 - 0xd5, 0x7f, 0x33, 0x94, 0x63, 0xc6, 0x52, 0x8f, 0x1b, // IID14385 - 0xd5, 0x7f, 0x33, 0x9c, 0xec, 0x6a, 0x07, 0x5a, 0xc4, // IID14386 - 0xd5, 0x7f, 0x33, 0xa4, 0xb5, 0xea, 0xa8, 0x00, 0x14, // IID14387 - 0xd5, 0x7f, 0x33, 0xac, 0x7e, 0x2b, 0x22, 0x83, 0xfb, // IID14388 - 0xd5, 0x5d, 0x33, 0xb4, 0xcf, 0xac, 0x45, 0xd0, 0x0e, // IID14389 - 0xd5, 0x4c, 0x33, 0xbc, 0x51, 0x04, 0x42, 0x28, 0x2d, // IID14390 - 0x48, 0x8b, 0x8c, 0x9a, 0x03, 0x91, 0x9e, 0xc7, // IID14391 - 0x48, 0x8b, 0x93, 0x10, 0x4a, 0x87, 0x66, // IID14392 - 0x4b, 0x8b, 0x9c, 0x88, 0x55, 0x76, 0x4e, 0xe5, // IID14393 - 0x4f, 0x8b, 0x84, 0x51, 0x3e, 0x4c, 0x5f, 0x70, // IID14394 - 0x4f, 0x8b, 0x8c, 0x1a, 0x42, 0x1e, 0x5d, 0xd3, // IID14395 - 0x4f, 0x8b, 0x94, 0xe3, 0xa7, 0x75, 0xb6, 0x4c, // IID14396 - 0x4d, 0x8b, 0x9c, 0x24, 0x92, 0xa2, 0x06, 0xb7, // IID14397 - 0x4f, 0x8b, 0xa4, 0xb5, 0x26, 0x33, 0x54, 0x7b, // IID14398 - 0x4f, 0x8b, 0xac, 0xbe, 0x82, 0xc7, 0x3f, 0xff, // IID14399 - 0xd5, 0x2d, 0x8b, 0xb4, 0x47, 0x38, 0x0d, 0x84, 0x56, // IID14400 - 0xd5, 0x3c, 0x8b, 0xbc, 0x88, 0x38, 0x8d, 0x1b, 0xb4, // IID14401 - 0xd5, 0x78, 0x8b, 0x84, 0xd1, 0x77, 0xc5, 0x39, 0x6f, // IID14402 - 0xd5, 0x78, 0x8b, 0x8c, 0x5a, 0x01, 0xa1, 0xdb, 0xa4, // IID14403 - 0xd5, 0x78, 0x8b, 0x94, 0xe3, 0x03, 0x81, 0x1f, 0x70, // IID14404 - 0xd5, 0x58, 0x8b, 0x9c, 0x24, 0x6d, 0xec, 0x04, 0x20, // IID14405 - 0xd5, 0x58, 0x8b, 0xa5, 0x83, 0x6e, 0x49, 0x9b, // IID14406 - 0xd5, 0x58, 0x8b, 0xae, 0xfb, 0xe6, 0xfc, 0xb6, // IID14407 - 0xd5, 0x7a, 0x8b, 0xb4, 0xc7, 0x4f, 0xa3, 0xd2, 0x0e, // IID14408 - 0xd5, 0x7b, 0x8b, 0xbc, 0x08, 0xbe, 0xd5, 0x14, 0xb3, // IID14409 - 0xd5, 0x5d, 0x8b, 0x81, 0xac, 0xc6, 0x0b, 0x11, // IID14410 - 0xd5, 0x5d, 0x8b, 0x8a, 0xd6, 0xc8, 0x07, 0xff, // IID14411 - 0xd5, 0x7f, 0x8b, 0x94, 0xe3, 0x9e, 0x52, 0xbd, 0x1a, // IID14412 - 0xd5, 0x7f, 0x8b, 0x9c, 0x6c, 0xca, 0xe3, 0xd5, 0x00, // IID14413 - 0xd5, 0x7f, 0x8b, 0xa4, 0x75, 0xee, 0x96, 0x35, 0x28, // IID14414 - 0xd5, 0x5d, 0x8b, 0xae, 0x54, 0x02, 0xbd, 0x07, // IID14415 - 0xd5, 0x5d, 0x8b, 0xb4, 0x4f, 0x4f, 0xfd, 0x05, 0x02, // IID14416 - 0xd5, 0x4c, 0x8b, 0xbc, 0xd1, 0xfe, 0xac, 0x9e, 0x73, // IID14417 - 0x48, 0x8d, 0x8c, 0x9a, 0x0b, 0x82, 0x9d, 0x14, // IID14418 - 0x4a, 0x8d, 0x94, 0x43, 0xf0, 0x3b, 0xe4, 0x33, // IID14419 - 0x4b, 0x8d, 0x9c, 0x88, 0x48, 0xf2, 0x6c, 0xf8, // IID14420 - 0x4f, 0x8d, 0x84, 0x51, 0xca, 0x6d, 0xe3, 0x39, // IID14421 - 0x4f, 0x8d, 0x8c, 0xda, 0xbc, 0x4c, 0x63, 0xed, // IID14422 - 0x4f, 0x8d, 0x94, 0xe3, 0x79, 0x43, 0xa2, 0x5b, // IID14423 - 0x4f, 0x8d, 0x9c, 0x2c, 0xf0, 0x0c, 0xdc, 0x8f, // IID14424 - 0x4f, 0x8d, 0xa4, 0x35, 0x34, 0x08, 0x29, 0x34, // IID14425 - 0x4f, 0x8d, 0xac, 0x3e, 0x0f, 0x5f, 0x1f, 0x90, // IID14426 - 0xd5, 0x2d, 0x8d, 0xb4, 0x87, 0x32, 0x07, 0xfb, 0xf5, // IID14427 - 0xd5, 0x3c, 0x8d, 0xbc, 0x08, 0x79, 0x05, 0x87, 0xbf, // IID14428 - 0xd5, 0x78, 0x8d, 0x84, 0x91, 0x33, 0xf8, 0x88, 0xfb, // IID14429 - 0xd5, 0x78, 0x8d, 0x8c, 0x5a, 0x00, 0x4a, 0x05, 0x7c, // IID14430 - 0xd5, 0x78, 0x8d, 0x94, 0x23, 0xc1, 0xdf, 0x7f, 0x7d, // IID14431 - 0xd5, 0x78, 0x8d, 0x9c, 0xec, 0x67, 0xc9, 0x1b, 0xf3, // IID14432 - 0xd5, 0x58, 0x8d, 0xa5, 0x0f, 0x1f, 0x81, 0x73, // IID14433 - 0xd5, 0x78, 0x8d, 0xac, 0x3e, 0x54, 0xd1, 0xe4, 0x93, // IID14434 - 0xd5, 0x7a, 0x8d, 0xb4, 0xc7, 0xab, 0x91, 0x7c, 0xff, // IID14435 - 0xd5, 0x7b, 0x8d, 0xbc, 0xc8, 0xc4, 0xdb, 0x96, 0x12, // IID14436 - 0xd5, 0x5d, 0x8d, 0x81, 0x2a, 0x21, 0x19, 0x26, // IID14437 - 0xd5, 0x7f, 0x8d, 0x8c, 0x1a, 0x79, 0x0b, 0x0b, 0x1a, // IID14438 - 0xd5, 0x7f, 0x8d, 0x94, 0xa3, 0x18, 0x8a, 0xc3, 0x8c, // IID14439 - 0xd5, 0x7f, 0x8d, 0x9c, 0xec, 0xca, 0x48, 0xd3, 0x34, // IID14440 - 0xd5, 0x7f, 0x8d, 0xa4, 0x35, 0xd9, 0xc0, 0xcd, 0x6e, // IID14441 - 0xd5, 0x7f, 0x8d, 0xac, 0xbe, 0x33, 0xbc, 0xa0, 0xf3, // IID14442 - 0xd5, 0x5d, 0x8d, 0xb4, 0x4f, 0xb3, 0x8d, 0x62, 0x87, // IID14443 - 0xd5, 0x4c, 0x8d, 0xb9, 0x41, 0xc3, 0xa8, 0xde, // IID14444 - 0xf2, 0x48, 0x0f, 0x2c, 0x8c, 0xda, 0xd1, 0x46, 0xaf, 0x85, // IID14445 - 0xf2, 0x48, 0x0f, 0x2c, 0x93, 0xc6, 0xc3, 0x5b, 0x5b, // IID14446 - 0xf2, 0x4b, 0x0f, 0x2c, 0x9c, 0x88, 0x2d, 0xad, 0x63, 0xbb, // IID14447 - 0xf2, 0x4f, 0x0f, 0x2c, 0x84, 0xd1, 0x39, 0x28, 0x56, 0x9a, // IID14448 - 0xf2, 0x4f, 0x0f, 0x2c, 0x8c, 0xda, 0xaa, 0x3e, 0x5f, 0x44, // IID14449 - 0xf2, 0x4f, 0x0f, 0x2c, 0x94, 0x23, 0x13, 0x4a, 0x66, 0x54, // IID14450 - 0xf2, 0x4f, 0x0f, 0x2c, 0x9c, 0xac, 0xdf, 0xd6, 0xa1, 0xb5, // IID14451 - 0xf2, 0x4f, 0x0f, 0x2c, 0xa4, 0xb5, 0x1f, 0x1f, 0x93, 0xe3, // IID14452 - 0xf2, 0x4f, 0x0f, 0x2c, 0xac, 0xbe, 0xd6, 0x13, 0x7a, 0x41, // IID14453 - 0xf2, 0x4d, 0x0f, 0x2c, 0xb7, 0x5d, 0x9d, 0x45, 0x0e, // IID14454 - 0xf2, 0xd5, 0xbc, 0x2c, 0xbc, 0xc8, 0x77, 0xdb, 0x7a, 0xe0, // IID14455 - 0xf2, 0xd5, 0xf8, 0x2c, 0x84, 0x91, 0x31, 0x3f, 0xac, 0x2f, // IID14456 - 0xf2, 0xd5, 0xd8, 0x2c, 0x8a, 0x1f, 0xa6, 0xcd, 0xb1, // IID14457 - 0xf2, 0xd5, 0xf8, 0x2c, 0x94, 0x23, 0xf9, 0x12, 0xe7, 0x3d, // IID14458 - 0xf2, 0xd5, 0xf8, 0x2c, 0x9c, 0x2c, 0x4f, 0xbf, 0xaf, 0x73, // IID14459 - 0xf2, 0xd5, 0xf8, 0x2c, 0xa4, 0xf5, 0xdf, 0xd3, 0x16, 0x9e, // IID14460 - 0xf2, 0xd5, 0xf8, 0x2c, 0xac, 0x3e, 0x15, 0xa1, 0x0c, 0x92, // IID14461 - 0xf2, 0xd5, 0xfa, 0x2c, 0xb4, 0x47, 0x25, 0x34, 0x3d, 0x61, // IID14462 - 0xf2, 0xd5, 0xfb, 0x2c, 0xbc, 0x08, 0xe0, 0xa5, 0x3b, 0x8a, // IID14463 - 0xf2, 0xd5, 0xff, 0x2c, 0x84, 0x11, 0xef, 0xd6, 0xcc, 0x95, // IID14464 - 0xf2, 0xd5, 0xff, 0x2c, 0x8c, 0x5a, 0xa7, 0x94, 0x71, 0xc4, // IID14465 - 0xf2, 0xd5, 0xff, 0x2c, 0x94, 0xe3, 0xec, 0xdd, 0x21, 0x3c, // IID14466 - 0xf2, 0xd5, 0xff, 0x2c, 0x9c, 0x6c, 0xc0, 0x39, 0x4e, 0x14, // IID14467 - 0xf2, 0xd5, 0xff, 0x2c, 0xa4, 0x75, 0x04, 0x0f, 0x76, 0xda, // IID14468 - 0xf2, 0xd5, 0xff, 0x2c, 0xac, 0xbe, 0x8e, 0x71, 0xee, 0x2c, // IID14469 - 0xf2, 0xd5, 0xdd, 0x2c, 0xb4, 0x8f, 0x29, 0x50, 0x2c, 0xa4, // IID14470 - 0xf2, 0xd5, 0xcc, 0x2c, 0xbc, 0x91, 0x6d, 0xbd, 0xe3, 0xb5, // IID14471 - 0x48, 0x87, 0x8c, 0x9a, 0x62, 0x80, 0x42, 0x9a, // IID14472 - 0x4a, 0x87, 0x94, 0x03, 0xc4, 0x42, 0x97, 0x99, // IID14473 - 0x4b, 0x87, 0x9c, 0x48, 0x31, 0x80, 0xe2, 0xd4, // IID14474 - 0x4d, 0x87, 0x81, 0xdb, 0x55, 0x17, 0xb0, // IID14475 - 0x4f, 0x87, 0x8c, 0xda, 0xda, 0x7b, 0x10, 0x7c, // IID14476 - 0x4f, 0x87, 0x94, 0xa3, 0xb7, 0x7f, 0x5b, 0xac, // IID14477 - 0x4d, 0x87, 0x9c, 0x24, 0x96, 0xfe, 0x12, 0x2e, // IID14478 - 0x4d, 0x87, 0xa5, 0x0a, 0x14, 0x94, 0xd3, // IID14479 - 0x4d, 0x87, 0xae, 0xf4, 0x8d, 0x38, 0x71, // IID14480 - 0xd5, 0x2d, 0x87, 0xb4, 0x47, 0x1c, 0x7e, 0xa5, 0x8f, // IID14481 - 0xd5, 0x3c, 0x87, 0xbc, 0x48, 0xe8, 0x7a, 0x09, 0x0f, // IID14482 - 0xd5, 0x78, 0x87, 0x84, 0xd1, 0x1a, 0x43, 0x42, 0x64, // IID14483 - 0xd5, 0x58, 0x87, 0x8a, 0xd7, 0x8f, 0xed, 0x22, // IID14484 - 0xd5, 0x78, 0x87, 0x94, 0xe3, 0xe6, 0xaf, 0x40, 0x04, // IID14485 - 0xd5, 0x78, 0x87, 0x9c, 0xec, 0x25, 0x9c, 0xc3, 0xab, // IID14486 - 0xd5, 0x78, 0x87, 0xa4, 0xf5, 0x5d, 0x68, 0x2c, 0x17, // IID14487 - 0xd5, 0x78, 0x87, 0xac, 0xbe, 0x96, 0x95, 0x7b, 0x9e, // IID14488 - 0xd5, 0x7a, 0x87, 0xb4, 0xc7, 0xe1, 0x02, 0x74, 0xa9, // IID14489 - 0xd5, 0x7b, 0x87, 0xbc, 0xc8, 0xe7, 0x3c, 0x4d, 0x7f, // IID14490 - 0xd5, 0x7f, 0x87, 0x84, 0x51, 0x0d, 0xaa, 0xc3, 0x31, // IID14491 - 0xd5, 0x5d, 0x87, 0x8a, 0x23, 0x14, 0x02, 0x1c, // IID14492 - 0xd5, 0x7f, 0x87, 0x94, 0xe3, 0xb6, 0xc6, 0x28, 0xc5, // IID14493 - 0xd5, 0x7f, 0x87, 0x9c, 0xac, 0xf0, 0x53, 0x44, 0x0a, // IID14494 - 0xd5, 0x7f, 0x87, 0xa4, 0x35, 0xef, 0x89, 0x15, 0xa1, // IID14495 - 0xd5, 0x7f, 0x87, 0xac, 0xbe, 0x6f, 0x15, 0xfa, 0xab, // IID14496 - 0xd5, 0x5d, 0x87, 0xb4, 0x0f, 0x33, 0xd2, 0xc9, 0x5c, // IID14497 - 0xd5, 0x4c, 0x87, 0xb9, 0x60, 0xb3, 0xdc, 0xe6, // IID14498 - 0x48, 0x85, 0x8c, 0x1a, 0xdf, 0x4b, 0xe1, 0xb9, // IID14499 - 0x48, 0x85, 0x93, 0xd6, 0x2f, 0x06, 0x3d, // IID14500 - 0x4b, 0x85, 0x9c, 0x88, 0xad, 0x9a, 0xc9, 0x0d, // IID14501 - 0x4f, 0x85, 0x84, 0xd1, 0xb4, 0x20, 0xe0, 0xab, // IID14502 - 0x4f, 0x85, 0x8c, 0x1a, 0x00, 0xba, 0xea, 0xa1, // IID14503 - 0x4f, 0x85, 0x94, 0xe3, 0x80, 0x6b, 0x23, 0x9e, // IID14504 - 0x4f, 0x85, 0x9c, 0x6c, 0xf7, 0xac, 0xbc, 0xf4, // IID14505 - 0x4f, 0x85, 0xa4, 0xf5, 0x03, 0x51, 0xc9, 0xcd, // IID14506 - 0x4d, 0x85, 0xae, 0x8f, 0x00, 0x83, 0xdf, // IID14507 - 0xd5, 0x2d, 0x85, 0xb4, 0x87, 0x79, 0x8d, 0xe9, 0x47, // IID14508 - 0xd5, 0x3c, 0x85, 0xbc, 0x88, 0xa9, 0x29, 0xca, 0xc2, // IID14509 - 0xd5, 0x78, 0x85, 0x84, 0x91, 0x15, 0x94, 0x0c, 0x48, // IID14510 - 0xd5, 0x78, 0x85, 0x8c, 0x9a, 0x35, 0x98, 0xc5, 0x5a, // IID14511 - 0xd5, 0x78, 0x85, 0x94, 0xe3, 0x29, 0x57, 0xbf, 0xd6, // IID14512 - 0xd5, 0x78, 0x85, 0x9c, 0xec, 0x2e, 0x5b, 0xbc, 0x07, // IID14513 - 0xd5, 0x58, 0x85, 0xa5, 0xcb, 0xb5, 0x1b, 0x05, // IID14514 - 0xd5, 0x78, 0x85, 0xac, 0xfe, 0xc6, 0xee, 0x7a, 0x8d, // IID14515 - 0xd5, 0x58, 0x85, 0xb7, 0x34, 0x63, 0x5d, 0xe1, // IID14516 - 0xd5, 0x7b, 0x85, 0xbc, 0x88, 0x51, 0x81, 0x29, 0x98, // IID14517 - 0xd5, 0x7f, 0x85, 0x84, 0xd1, 0x92, 0x89, 0xb6, 0x94, // IID14518 - 0xd5, 0x7f, 0x85, 0x8c, 0x5a, 0x9c, 0xae, 0x94, 0xf1, // IID14519 - 0xd5, 0x7f, 0x85, 0x94, 0xe3, 0xa7, 0xcc, 0x33, 0xdb, // IID14520 - 0xd5, 0x7f, 0x85, 0x9c, 0x2c, 0x7b, 0x78, 0x67, 0x2f, // IID14521 - 0xd5, 0x5d, 0x85, 0xa5, 0x20, 0xd4, 0x7f, 0x66, // IID14522 - 0xd5, 0x7f, 0x85, 0xac, 0x3e, 0xb8, 0xf0, 0x5a, 0x8a, // IID14523 - 0xd5, 0x5d, 0x85, 0xb7, 0x13, 0x42, 0x40, 0x62, // IID14524 - 0xd5, 0x4c, 0x85, 0xbc, 0x51, 0x71, 0xfb, 0x58, 0x34, // IID14525 - 0x48, 0x83, 0xc1, 0x01, // IID14526 - 0x48, 0x83, 0xc1, 0x10, // IID14527 - 0x48, 0x81, 0xc1, 0x00, 0x01, 0x00, 0x00, // IID14528 - 0x48, 0x81, 0xc1, 0x00, 0x10, 0x00, 0x00, // IID14529 - 0x48, 0x81, 0xc1, 0x00, 0x00, 0x01, 0x00, // IID14530 - 0x48, 0x81, 0xc1, 0x00, 0x00, 0x10, 0x00, // IID14531 - 0x48, 0x81, 0xc1, 0x00, 0x00, 0x00, 0x01, // IID14532 - 0x48, 0x81, 0xc1, 0x00, 0x00, 0x00, 0x10, // IID14533 - 0x48, 0x83, 0xc2, 0x01, // IID14534 - 0x48, 0x83, 0xc2, 0x10, // IID14535 - 0x48, 0x81, 0xc2, 0x00, 0x01, 0x00, 0x00, // IID14536 - 0x48, 0x81, 0xc2, 0x00, 0x10, 0x00, 0x00, // IID14537 - 0x48, 0x81, 0xc2, 0x00, 0x00, 0x01, 0x00, // IID14538 - 0x48, 0x81, 0xc2, 0x00, 0x00, 0x10, 0x00, // IID14539 - 0x48, 0x81, 0xc2, 0x00, 0x00, 0x00, 0x01, // IID14540 - 0x48, 0x81, 0xc2, 0x00, 0x00, 0x00, 0x10, // IID14541 - 0x48, 0x83, 0xc3, 0x01, // IID14542 - 0x48, 0x83, 0xc3, 0x10, // IID14543 - 0x48, 0x81, 0xc3, 0x00, 0x01, 0x00, 0x00, // IID14544 - 0x48, 0x81, 0xc3, 0x00, 0x10, 0x00, 0x00, // IID14545 - 0x48, 0x81, 0xc3, 0x00, 0x00, 0x01, 0x00, // IID14546 - 0x48, 0x81, 0xc3, 0x00, 0x00, 0x10, 0x00, // IID14547 - 0x48, 0x81, 0xc3, 0x00, 0x00, 0x00, 0x01, // IID14548 - 0x48, 0x81, 0xc3, 0x00, 0x00, 0x00, 0x10, // IID14549 - 0x49, 0x83, 0xc0, 0x01, // IID14550 - 0x49, 0x83, 0xc0, 0x10, // IID14551 - 0x49, 0x81, 0xc0, 0x00, 0x01, 0x00, 0x00, // IID14552 - 0x49, 0x81, 0xc0, 0x00, 0x10, 0x00, 0x00, // IID14553 - 0x49, 0x81, 0xc0, 0x00, 0x00, 0x01, 0x00, // IID14554 - 0x49, 0x81, 0xc0, 0x00, 0x00, 0x10, 0x00, // IID14555 - 0x49, 0x81, 0xc0, 0x00, 0x00, 0x00, 0x01, // IID14556 - 0x49, 0x81, 0xc0, 0x00, 0x00, 0x00, 0x10, // IID14557 - 0x49, 0x83, 0xc1, 0x01, // IID14558 - 0x49, 0x83, 0xc1, 0x10, // IID14559 - 0x49, 0x81, 0xc1, 0x00, 0x01, 0x00, 0x00, // IID14560 - 0x49, 0x81, 0xc1, 0x00, 0x10, 0x00, 0x00, // IID14561 - 0x49, 0x81, 0xc1, 0x00, 0x00, 0x01, 0x00, // IID14562 - 0x49, 0x81, 0xc1, 0x00, 0x00, 0x10, 0x00, // IID14563 - 0x49, 0x81, 0xc1, 0x00, 0x00, 0x00, 0x01, // IID14564 - 0x49, 0x81, 0xc1, 0x00, 0x00, 0x00, 0x10, // IID14565 - 0x49, 0x83, 0xc2, 0x01, // IID14566 - 0x49, 0x83, 0xc2, 0x10, // IID14567 - 0x49, 0x81, 0xc2, 0x00, 0x01, 0x00, 0x00, // IID14568 - 0x49, 0x81, 0xc2, 0x00, 0x10, 0x00, 0x00, // IID14569 - 0x49, 0x81, 0xc2, 0x00, 0x00, 0x01, 0x00, // IID14570 - 0x49, 0x81, 0xc2, 0x00, 0x00, 0x10, 0x00, // IID14571 - 0x49, 0x81, 0xc2, 0x00, 0x00, 0x00, 0x01, // IID14572 - 0x49, 0x81, 0xc2, 0x00, 0x00, 0x00, 0x10, // IID14573 - 0x49, 0x83, 0xc3, 0x01, // IID14574 - 0x49, 0x83, 0xc3, 0x10, // IID14575 - 0x49, 0x81, 0xc3, 0x00, 0x01, 0x00, 0x00, // IID14576 - 0x49, 0x81, 0xc3, 0x00, 0x10, 0x00, 0x00, // IID14577 - 0x49, 0x81, 0xc3, 0x00, 0x00, 0x01, 0x00, // IID14578 - 0x49, 0x81, 0xc3, 0x00, 0x00, 0x10, 0x00, // IID14579 - 0x49, 0x81, 0xc3, 0x00, 0x00, 0x00, 0x01, // IID14580 - 0x49, 0x81, 0xc3, 0x00, 0x00, 0x00, 0x10, // IID14581 - 0x49, 0x83, 0xc4, 0x01, // IID14582 - 0x49, 0x83, 0xc4, 0x10, // IID14583 - 0x49, 0x81, 0xc4, 0x00, 0x01, 0x00, 0x00, // IID14584 - 0x49, 0x81, 0xc4, 0x00, 0x10, 0x00, 0x00, // IID14585 - 0x49, 0x81, 0xc4, 0x00, 0x00, 0x01, 0x00, // IID14586 - 0x49, 0x81, 0xc4, 0x00, 0x00, 0x10, 0x00, // IID14587 - 0x49, 0x81, 0xc4, 0x00, 0x00, 0x00, 0x01, // IID14588 - 0x49, 0x81, 0xc4, 0x00, 0x00, 0x00, 0x10, // IID14589 - 0x49, 0x83, 0xc5, 0x01, // IID14590 - 0x49, 0x83, 0xc5, 0x10, // IID14591 - 0x49, 0x81, 0xc5, 0x00, 0x01, 0x00, 0x00, // IID14592 - 0x49, 0x81, 0xc5, 0x00, 0x10, 0x00, 0x00, // IID14593 - 0x49, 0x81, 0xc5, 0x00, 0x00, 0x01, 0x00, // IID14594 - 0x49, 0x81, 0xc5, 0x00, 0x00, 0x10, 0x00, // IID14595 - 0x49, 0x81, 0xc5, 0x00, 0x00, 0x00, 0x01, // IID14596 - 0x49, 0x81, 0xc5, 0x00, 0x00, 0x00, 0x10, // IID14597 - 0x49, 0x83, 0xc6, 0x01, // IID14598 - 0x49, 0x83, 0xc6, 0x10, // IID14599 - 0x49, 0x81, 0xc6, 0x00, 0x01, 0x00, 0x00, // IID14600 - 0x49, 0x81, 0xc6, 0x00, 0x10, 0x00, 0x00, // IID14601 - 0x49, 0x81, 0xc6, 0x00, 0x00, 0x01, 0x00, // IID14602 - 0x49, 0x81, 0xc6, 0x00, 0x00, 0x10, 0x00, // IID14603 - 0x49, 0x81, 0xc6, 0x00, 0x00, 0x00, 0x01, // IID14604 - 0x49, 0x81, 0xc6, 0x00, 0x00, 0x00, 0x10, // IID14605 - 0x49, 0x83, 0xc7, 0x01, // IID14606 - 0x49, 0x83, 0xc7, 0x10, // IID14607 - 0x49, 0x81, 0xc7, 0x00, 0x01, 0x00, 0x00, // IID14608 - 0x49, 0x81, 0xc7, 0x00, 0x10, 0x00, 0x00, // IID14609 - 0x49, 0x81, 0xc7, 0x00, 0x00, 0x01, 0x00, // IID14610 - 0x49, 0x81, 0xc7, 0x00, 0x00, 0x10, 0x00, // IID14611 - 0x49, 0x81, 0xc7, 0x00, 0x00, 0x00, 0x01, // IID14612 - 0x49, 0x81, 0xc7, 0x00, 0x00, 0x00, 0x10, // IID14613 - 0xd5, 0x18, 0x83, 0xc0, 0x01, // IID14614 - 0xd5, 0x18, 0x83, 0xc0, 0x10, // IID14615 - 0xd5, 0x18, 0x81, 0xc0, 0x00, 0x01, 0x00, 0x00, // IID14616 - 0xd5, 0x18, 0x81, 0xc0, 0x00, 0x10, 0x00, 0x00, // IID14617 - 0xd5, 0x18, 0x81, 0xc0, 0x00, 0x00, 0x01, 0x00, // IID14618 - 0xd5, 0x18, 0x81, 0xc0, 0x00, 0x00, 0x10, 0x00, // IID14619 - 0xd5, 0x18, 0x81, 0xc0, 0x00, 0x00, 0x00, 0x01, // IID14620 - 0xd5, 0x18, 0x81, 0xc0, 0x00, 0x00, 0x00, 0x10, // IID14621 - 0xd5, 0x18, 0x83, 0xc1, 0x01, // IID14622 - 0xd5, 0x18, 0x83, 0xc1, 0x10, // IID14623 - 0xd5, 0x18, 0x81, 0xc1, 0x00, 0x01, 0x00, 0x00, // IID14624 - 0xd5, 0x18, 0x81, 0xc1, 0x00, 0x10, 0x00, 0x00, // IID14625 - 0xd5, 0x18, 0x81, 0xc1, 0x00, 0x00, 0x01, 0x00, // IID14626 - 0xd5, 0x18, 0x81, 0xc1, 0x00, 0x00, 0x10, 0x00, // IID14627 - 0xd5, 0x18, 0x81, 0xc1, 0x00, 0x00, 0x00, 0x01, // IID14628 - 0xd5, 0x18, 0x81, 0xc1, 0x00, 0x00, 0x00, 0x10, // IID14629 - 0xd5, 0x18, 0x83, 0xc2, 0x01, // IID14630 - 0xd5, 0x18, 0x83, 0xc2, 0x10, // IID14631 - 0xd5, 0x18, 0x81, 0xc2, 0x00, 0x01, 0x00, 0x00, // IID14632 - 0xd5, 0x18, 0x81, 0xc2, 0x00, 0x10, 0x00, 0x00, // IID14633 - 0xd5, 0x18, 0x81, 0xc2, 0x00, 0x00, 0x01, 0x00, // IID14634 - 0xd5, 0x18, 0x81, 0xc2, 0x00, 0x00, 0x10, 0x00, // IID14635 - 0xd5, 0x18, 0x81, 0xc2, 0x00, 0x00, 0x00, 0x01, // IID14636 - 0xd5, 0x18, 0x81, 0xc2, 0x00, 0x00, 0x00, 0x10, // IID14637 - 0xd5, 0x18, 0x83, 0xc3, 0x01, // IID14638 - 0xd5, 0x18, 0x83, 0xc3, 0x10, // IID14639 - 0xd5, 0x18, 0x81, 0xc3, 0x00, 0x01, 0x00, 0x00, // IID14640 - 0xd5, 0x18, 0x81, 0xc3, 0x00, 0x10, 0x00, 0x00, // IID14641 - 0xd5, 0x18, 0x81, 0xc3, 0x00, 0x00, 0x01, 0x00, // IID14642 - 0xd5, 0x18, 0x81, 0xc3, 0x00, 0x00, 0x10, 0x00, // IID14643 - 0xd5, 0x18, 0x81, 0xc3, 0x00, 0x00, 0x00, 0x01, // IID14644 - 0xd5, 0x18, 0x81, 0xc3, 0x00, 0x00, 0x00, 0x10, // IID14645 - 0xd5, 0x18, 0x83, 0xc4, 0x01, // IID14646 - 0xd5, 0x18, 0x83, 0xc4, 0x10, // IID14647 - 0xd5, 0x18, 0x81, 0xc4, 0x00, 0x01, 0x00, 0x00, // IID14648 - 0xd5, 0x18, 0x81, 0xc4, 0x00, 0x10, 0x00, 0x00, // IID14649 - 0xd5, 0x18, 0x81, 0xc4, 0x00, 0x00, 0x01, 0x00, // IID14650 - 0xd5, 0x18, 0x81, 0xc4, 0x00, 0x00, 0x10, 0x00, // IID14651 - 0xd5, 0x18, 0x81, 0xc4, 0x00, 0x00, 0x00, 0x01, // IID14652 - 0xd5, 0x18, 0x81, 0xc4, 0x00, 0x00, 0x00, 0x10, // IID14653 - 0xd5, 0x18, 0x83, 0xc5, 0x01, // IID14654 - 0xd5, 0x18, 0x83, 0xc5, 0x10, // IID14655 - 0xd5, 0x18, 0x81, 0xc5, 0x00, 0x01, 0x00, 0x00, // IID14656 - 0xd5, 0x18, 0x81, 0xc5, 0x00, 0x10, 0x00, 0x00, // IID14657 - 0xd5, 0x18, 0x81, 0xc5, 0x00, 0x00, 0x01, 0x00, // IID14658 - 0xd5, 0x18, 0x81, 0xc5, 0x00, 0x00, 0x10, 0x00, // IID14659 - 0xd5, 0x18, 0x81, 0xc5, 0x00, 0x00, 0x00, 0x01, // IID14660 - 0xd5, 0x18, 0x81, 0xc5, 0x00, 0x00, 0x00, 0x10, // IID14661 - 0xd5, 0x18, 0x83, 0xc6, 0x01, // IID14662 - 0xd5, 0x18, 0x83, 0xc6, 0x10, // IID14663 - 0xd5, 0x18, 0x81, 0xc6, 0x00, 0x01, 0x00, 0x00, // IID14664 - 0xd5, 0x18, 0x81, 0xc6, 0x00, 0x10, 0x00, 0x00, // IID14665 - 0xd5, 0x18, 0x81, 0xc6, 0x00, 0x00, 0x01, 0x00, // IID14666 - 0xd5, 0x18, 0x81, 0xc6, 0x00, 0x00, 0x10, 0x00, // IID14667 - 0xd5, 0x18, 0x81, 0xc6, 0x00, 0x00, 0x00, 0x01, // IID14668 - 0xd5, 0x18, 0x81, 0xc6, 0x00, 0x00, 0x00, 0x10, // IID14669 - 0xd5, 0x18, 0x83, 0xc7, 0x01, // IID14670 - 0xd5, 0x18, 0x83, 0xc7, 0x10, // IID14671 - 0xd5, 0x18, 0x81, 0xc7, 0x00, 0x01, 0x00, 0x00, // IID14672 - 0xd5, 0x18, 0x81, 0xc7, 0x00, 0x10, 0x00, 0x00, // IID14673 - 0xd5, 0x18, 0x81, 0xc7, 0x00, 0x00, 0x01, 0x00, // IID14674 - 0xd5, 0x18, 0x81, 0xc7, 0x00, 0x00, 0x10, 0x00, // IID14675 - 0xd5, 0x18, 0x81, 0xc7, 0x00, 0x00, 0x00, 0x01, // IID14676 - 0xd5, 0x18, 0x81, 0xc7, 0x00, 0x00, 0x00, 0x10, // IID14677 - 0xd5, 0x19, 0x83, 0xc0, 0x01, // IID14678 - 0xd5, 0x19, 0x83, 0xc0, 0x10, // IID14679 - 0xd5, 0x19, 0x81, 0xc0, 0x00, 0x01, 0x00, 0x00, // IID14680 - 0xd5, 0x19, 0x81, 0xc0, 0x00, 0x10, 0x00, 0x00, // IID14681 - 0xd5, 0x19, 0x81, 0xc0, 0x00, 0x00, 0x01, 0x00, // IID14682 - 0xd5, 0x19, 0x81, 0xc0, 0x00, 0x00, 0x10, 0x00, // IID14683 - 0xd5, 0x19, 0x81, 0xc0, 0x00, 0x00, 0x00, 0x01, // IID14684 - 0xd5, 0x19, 0x81, 0xc0, 0x00, 0x00, 0x00, 0x10, // IID14685 - 0xd5, 0x19, 0x83, 0xc1, 0x01, // IID14686 - 0xd5, 0x19, 0x83, 0xc1, 0x10, // IID14687 - 0xd5, 0x19, 0x81, 0xc1, 0x00, 0x01, 0x00, 0x00, // IID14688 - 0xd5, 0x19, 0x81, 0xc1, 0x00, 0x10, 0x00, 0x00, // IID14689 - 0xd5, 0x19, 0x81, 0xc1, 0x00, 0x00, 0x01, 0x00, // IID14690 - 0xd5, 0x19, 0x81, 0xc1, 0x00, 0x00, 0x10, 0x00, // IID14691 - 0xd5, 0x19, 0x81, 0xc1, 0x00, 0x00, 0x00, 0x01, // IID14692 - 0xd5, 0x19, 0x81, 0xc1, 0x00, 0x00, 0x00, 0x10, // IID14693 - 0xd5, 0x19, 0x83, 0xc2, 0x01, // IID14694 - 0xd5, 0x19, 0x83, 0xc2, 0x10, // IID14695 - 0xd5, 0x19, 0x81, 0xc2, 0x00, 0x01, 0x00, 0x00, // IID14696 - 0xd5, 0x19, 0x81, 0xc2, 0x00, 0x10, 0x00, 0x00, // IID14697 - 0xd5, 0x19, 0x81, 0xc2, 0x00, 0x00, 0x01, 0x00, // IID14698 - 0xd5, 0x19, 0x81, 0xc2, 0x00, 0x00, 0x10, 0x00, // IID14699 - 0xd5, 0x19, 0x81, 0xc2, 0x00, 0x00, 0x00, 0x01, // IID14700 - 0xd5, 0x19, 0x81, 0xc2, 0x00, 0x00, 0x00, 0x10, // IID14701 - 0xd5, 0x19, 0x83, 0xc3, 0x01, // IID14702 - 0xd5, 0x19, 0x83, 0xc3, 0x10, // IID14703 - 0xd5, 0x19, 0x81, 0xc3, 0x00, 0x01, 0x00, 0x00, // IID14704 - 0xd5, 0x19, 0x81, 0xc3, 0x00, 0x10, 0x00, 0x00, // IID14705 - 0xd5, 0x19, 0x81, 0xc3, 0x00, 0x00, 0x01, 0x00, // IID14706 - 0xd5, 0x19, 0x81, 0xc3, 0x00, 0x00, 0x10, 0x00, // IID14707 - 0xd5, 0x19, 0x81, 0xc3, 0x00, 0x00, 0x00, 0x01, // IID14708 - 0xd5, 0x19, 0x81, 0xc3, 0x00, 0x00, 0x00, 0x10, // IID14709 - 0xd5, 0x19, 0x83, 0xc4, 0x01, // IID14710 - 0xd5, 0x19, 0x83, 0xc4, 0x10, // IID14711 - 0xd5, 0x19, 0x81, 0xc4, 0x00, 0x01, 0x00, 0x00, // IID14712 - 0xd5, 0x19, 0x81, 0xc4, 0x00, 0x10, 0x00, 0x00, // IID14713 - 0xd5, 0x19, 0x81, 0xc4, 0x00, 0x00, 0x01, 0x00, // IID14714 - 0xd5, 0x19, 0x81, 0xc4, 0x00, 0x00, 0x10, 0x00, // IID14715 - 0xd5, 0x19, 0x81, 0xc4, 0x00, 0x00, 0x00, 0x01, // IID14716 - 0xd5, 0x19, 0x81, 0xc4, 0x00, 0x00, 0x00, 0x10, // IID14717 - 0xd5, 0x19, 0x83, 0xc5, 0x01, // IID14718 - 0xd5, 0x19, 0x83, 0xc5, 0x10, // IID14719 - 0xd5, 0x19, 0x81, 0xc5, 0x00, 0x01, 0x00, 0x00, // IID14720 - 0xd5, 0x19, 0x81, 0xc5, 0x00, 0x10, 0x00, 0x00, // IID14721 - 0xd5, 0x19, 0x81, 0xc5, 0x00, 0x00, 0x01, 0x00, // IID14722 - 0xd5, 0x19, 0x81, 0xc5, 0x00, 0x00, 0x10, 0x00, // IID14723 - 0xd5, 0x19, 0x81, 0xc5, 0x00, 0x00, 0x00, 0x01, // IID14724 - 0xd5, 0x19, 0x81, 0xc5, 0x00, 0x00, 0x00, 0x10, // IID14725 - 0xd5, 0x19, 0x83, 0xc6, 0x01, // IID14726 - 0xd5, 0x19, 0x83, 0xc6, 0x10, // IID14727 - 0xd5, 0x19, 0x81, 0xc6, 0x00, 0x01, 0x00, 0x00, // IID14728 - 0xd5, 0x19, 0x81, 0xc6, 0x00, 0x10, 0x00, 0x00, // IID14729 - 0xd5, 0x19, 0x81, 0xc6, 0x00, 0x00, 0x01, 0x00, // IID14730 - 0xd5, 0x19, 0x81, 0xc6, 0x00, 0x00, 0x10, 0x00, // IID14731 - 0xd5, 0x19, 0x81, 0xc6, 0x00, 0x00, 0x00, 0x01, // IID14732 - 0xd5, 0x19, 0x81, 0xc6, 0x00, 0x00, 0x00, 0x10, // IID14733 - 0xd5, 0x19, 0x83, 0xc7, 0x01, // IID14734 - 0xd5, 0x19, 0x83, 0xc7, 0x10, // IID14735 - 0xd5, 0x19, 0x81, 0xc7, 0x00, 0x01, 0x00, 0x00, // IID14736 - 0xd5, 0x19, 0x81, 0xc7, 0x00, 0x10, 0x00, 0x00, // IID14737 - 0xd5, 0x19, 0x81, 0xc7, 0x00, 0x00, 0x01, 0x00, // IID14738 - 0xd5, 0x19, 0x81, 0xc7, 0x00, 0x00, 0x10, 0x00, // IID14739 - 0xd5, 0x19, 0x81, 0xc7, 0x00, 0x00, 0x00, 0x01, // IID14740 - 0xd5, 0x19, 0x81, 0xc7, 0x00, 0x00, 0x00, 0x10, // IID14741 - 0x48, 0x83, 0xe1, 0x01, // IID14742 - 0x48, 0x83, 0xe1, 0x10, // IID14743 - 0x48, 0x81, 0xe1, 0x00, 0x01, 0x00, 0x00, // IID14744 - 0x48, 0x81, 0xe1, 0x00, 0x10, 0x00, 0x00, // IID14745 - 0x48, 0x81, 0xe1, 0x00, 0x00, 0x01, 0x00, // IID14746 - 0x48, 0x81, 0xe1, 0x00, 0x00, 0x10, 0x00, // IID14747 - 0x48, 0x81, 0xe1, 0x00, 0x00, 0x00, 0x01, // IID14748 - 0x48, 0x81, 0xe1, 0x00, 0x00, 0x00, 0x10, // IID14749 - 0x48, 0x83, 0xe2, 0x01, // IID14750 - 0x48, 0x83, 0xe2, 0x10, // IID14751 - 0x48, 0x81, 0xe2, 0x00, 0x01, 0x00, 0x00, // IID14752 - 0x48, 0x81, 0xe2, 0x00, 0x10, 0x00, 0x00, // IID14753 - 0x48, 0x81, 0xe2, 0x00, 0x00, 0x01, 0x00, // IID14754 - 0x48, 0x81, 0xe2, 0x00, 0x00, 0x10, 0x00, // IID14755 - 0x48, 0x81, 0xe2, 0x00, 0x00, 0x00, 0x01, // IID14756 - 0x48, 0x81, 0xe2, 0x00, 0x00, 0x00, 0x10, // IID14757 - 0x48, 0x83, 0xe3, 0x01, // IID14758 - 0x48, 0x83, 0xe3, 0x10, // IID14759 - 0x48, 0x81, 0xe3, 0x00, 0x01, 0x00, 0x00, // IID14760 - 0x48, 0x81, 0xe3, 0x00, 0x10, 0x00, 0x00, // IID14761 - 0x48, 0x81, 0xe3, 0x00, 0x00, 0x01, 0x00, // IID14762 - 0x48, 0x81, 0xe3, 0x00, 0x00, 0x10, 0x00, // IID14763 - 0x48, 0x81, 0xe3, 0x00, 0x00, 0x00, 0x01, // IID14764 - 0x48, 0x81, 0xe3, 0x00, 0x00, 0x00, 0x10, // IID14765 - 0x49, 0x83, 0xe0, 0x01, // IID14766 - 0x49, 0x83, 0xe0, 0x10, // IID14767 - 0x49, 0x81, 0xe0, 0x00, 0x01, 0x00, 0x00, // IID14768 - 0x49, 0x81, 0xe0, 0x00, 0x10, 0x00, 0x00, // IID14769 - 0x49, 0x81, 0xe0, 0x00, 0x00, 0x01, 0x00, // IID14770 - 0x49, 0x81, 0xe0, 0x00, 0x00, 0x10, 0x00, // IID14771 - 0x49, 0x81, 0xe0, 0x00, 0x00, 0x00, 0x01, // IID14772 - 0x49, 0x81, 0xe0, 0x00, 0x00, 0x00, 0x10, // IID14773 - 0x49, 0x83, 0xe1, 0x01, // IID14774 - 0x49, 0x83, 0xe1, 0x10, // IID14775 - 0x49, 0x81, 0xe1, 0x00, 0x01, 0x00, 0x00, // IID14776 - 0x49, 0x81, 0xe1, 0x00, 0x10, 0x00, 0x00, // IID14777 - 0x49, 0x81, 0xe1, 0x00, 0x00, 0x01, 0x00, // IID14778 - 0x49, 0x81, 0xe1, 0x00, 0x00, 0x10, 0x00, // IID14779 - 0x49, 0x81, 0xe1, 0x00, 0x00, 0x00, 0x01, // IID14780 - 0x49, 0x81, 0xe1, 0x00, 0x00, 0x00, 0x10, // IID14781 - 0x49, 0x83, 0xe2, 0x01, // IID14782 - 0x49, 0x83, 0xe2, 0x10, // IID14783 - 0x49, 0x81, 0xe2, 0x00, 0x01, 0x00, 0x00, // IID14784 - 0x49, 0x81, 0xe2, 0x00, 0x10, 0x00, 0x00, // IID14785 - 0x49, 0x81, 0xe2, 0x00, 0x00, 0x01, 0x00, // IID14786 - 0x49, 0x81, 0xe2, 0x00, 0x00, 0x10, 0x00, // IID14787 - 0x49, 0x81, 0xe2, 0x00, 0x00, 0x00, 0x01, // IID14788 - 0x49, 0x81, 0xe2, 0x00, 0x00, 0x00, 0x10, // IID14789 - 0x49, 0x83, 0xe3, 0x01, // IID14790 - 0x49, 0x83, 0xe3, 0x10, // IID14791 - 0x49, 0x81, 0xe3, 0x00, 0x01, 0x00, 0x00, // IID14792 - 0x49, 0x81, 0xe3, 0x00, 0x10, 0x00, 0x00, // IID14793 - 0x49, 0x81, 0xe3, 0x00, 0x00, 0x01, 0x00, // IID14794 - 0x49, 0x81, 0xe3, 0x00, 0x00, 0x10, 0x00, // IID14795 - 0x49, 0x81, 0xe3, 0x00, 0x00, 0x00, 0x01, // IID14796 - 0x49, 0x81, 0xe3, 0x00, 0x00, 0x00, 0x10, // IID14797 - 0x49, 0x83, 0xe4, 0x01, // IID14798 - 0x49, 0x83, 0xe4, 0x10, // IID14799 - 0x49, 0x81, 0xe4, 0x00, 0x01, 0x00, 0x00, // IID14800 - 0x49, 0x81, 0xe4, 0x00, 0x10, 0x00, 0x00, // IID14801 - 0x49, 0x81, 0xe4, 0x00, 0x00, 0x01, 0x00, // IID14802 - 0x49, 0x81, 0xe4, 0x00, 0x00, 0x10, 0x00, // IID14803 - 0x49, 0x81, 0xe4, 0x00, 0x00, 0x00, 0x01, // IID14804 - 0x49, 0x81, 0xe4, 0x00, 0x00, 0x00, 0x10, // IID14805 - 0x49, 0x83, 0xe5, 0x01, // IID14806 - 0x49, 0x83, 0xe5, 0x10, // IID14807 - 0x49, 0x81, 0xe5, 0x00, 0x01, 0x00, 0x00, // IID14808 - 0x49, 0x81, 0xe5, 0x00, 0x10, 0x00, 0x00, // IID14809 - 0x49, 0x81, 0xe5, 0x00, 0x00, 0x01, 0x00, // IID14810 - 0x49, 0x81, 0xe5, 0x00, 0x00, 0x10, 0x00, // IID14811 - 0x49, 0x81, 0xe5, 0x00, 0x00, 0x00, 0x01, // IID14812 - 0x49, 0x81, 0xe5, 0x00, 0x00, 0x00, 0x10, // IID14813 - 0x49, 0x83, 0xe6, 0x01, // IID14814 - 0x49, 0x83, 0xe6, 0x10, // IID14815 - 0x49, 0x81, 0xe6, 0x00, 0x01, 0x00, 0x00, // IID14816 - 0x49, 0x81, 0xe6, 0x00, 0x10, 0x00, 0x00, // IID14817 - 0x49, 0x81, 0xe6, 0x00, 0x00, 0x01, 0x00, // IID14818 - 0x49, 0x81, 0xe6, 0x00, 0x00, 0x10, 0x00, // IID14819 - 0x49, 0x81, 0xe6, 0x00, 0x00, 0x00, 0x01, // IID14820 - 0x49, 0x81, 0xe6, 0x00, 0x00, 0x00, 0x10, // IID14821 - 0x49, 0x83, 0xe7, 0x01, // IID14822 - 0x49, 0x83, 0xe7, 0x10, // IID14823 - 0x49, 0x81, 0xe7, 0x00, 0x01, 0x00, 0x00, // IID14824 - 0x49, 0x81, 0xe7, 0x00, 0x10, 0x00, 0x00, // IID14825 - 0x49, 0x81, 0xe7, 0x00, 0x00, 0x01, 0x00, // IID14826 - 0x49, 0x81, 0xe7, 0x00, 0x00, 0x10, 0x00, // IID14827 - 0x49, 0x81, 0xe7, 0x00, 0x00, 0x00, 0x01, // IID14828 - 0x49, 0x81, 0xe7, 0x00, 0x00, 0x00, 0x10, // IID14829 - 0xd5, 0x18, 0x83, 0xe0, 0x01, // IID14830 - 0xd5, 0x18, 0x83, 0xe0, 0x10, // IID14831 - 0xd5, 0x18, 0x81, 0xe0, 0x00, 0x01, 0x00, 0x00, // IID14832 - 0xd5, 0x18, 0x81, 0xe0, 0x00, 0x10, 0x00, 0x00, // IID14833 - 0xd5, 0x18, 0x81, 0xe0, 0x00, 0x00, 0x01, 0x00, // IID14834 - 0xd5, 0x18, 0x81, 0xe0, 0x00, 0x00, 0x10, 0x00, // IID14835 - 0xd5, 0x18, 0x81, 0xe0, 0x00, 0x00, 0x00, 0x01, // IID14836 - 0xd5, 0x18, 0x81, 0xe0, 0x00, 0x00, 0x00, 0x10, // IID14837 - 0xd5, 0x18, 0x83, 0xe1, 0x01, // IID14838 - 0xd5, 0x18, 0x83, 0xe1, 0x10, // IID14839 - 0xd5, 0x18, 0x81, 0xe1, 0x00, 0x01, 0x00, 0x00, // IID14840 - 0xd5, 0x18, 0x81, 0xe1, 0x00, 0x10, 0x00, 0x00, // IID14841 - 0xd5, 0x18, 0x81, 0xe1, 0x00, 0x00, 0x01, 0x00, // IID14842 - 0xd5, 0x18, 0x81, 0xe1, 0x00, 0x00, 0x10, 0x00, // IID14843 - 0xd5, 0x18, 0x81, 0xe1, 0x00, 0x00, 0x00, 0x01, // IID14844 - 0xd5, 0x18, 0x81, 0xe1, 0x00, 0x00, 0x00, 0x10, // IID14845 - 0xd5, 0x18, 0x83, 0xe2, 0x01, // IID14846 - 0xd5, 0x18, 0x83, 0xe2, 0x10, // IID14847 - 0xd5, 0x18, 0x81, 0xe2, 0x00, 0x01, 0x00, 0x00, // IID14848 - 0xd5, 0x18, 0x81, 0xe2, 0x00, 0x10, 0x00, 0x00, // IID14849 - 0xd5, 0x18, 0x81, 0xe2, 0x00, 0x00, 0x01, 0x00, // IID14850 - 0xd5, 0x18, 0x81, 0xe2, 0x00, 0x00, 0x10, 0x00, // IID14851 - 0xd5, 0x18, 0x81, 0xe2, 0x00, 0x00, 0x00, 0x01, // IID14852 - 0xd5, 0x18, 0x81, 0xe2, 0x00, 0x00, 0x00, 0x10, // IID14853 - 0xd5, 0x18, 0x83, 0xe3, 0x01, // IID14854 - 0xd5, 0x18, 0x83, 0xe3, 0x10, // IID14855 - 0xd5, 0x18, 0x81, 0xe3, 0x00, 0x01, 0x00, 0x00, // IID14856 - 0xd5, 0x18, 0x81, 0xe3, 0x00, 0x10, 0x00, 0x00, // IID14857 - 0xd5, 0x18, 0x81, 0xe3, 0x00, 0x00, 0x01, 0x00, // IID14858 - 0xd5, 0x18, 0x81, 0xe3, 0x00, 0x00, 0x10, 0x00, // IID14859 - 0xd5, 0x18, 0x81, 0xe3, 0x00, 0x00, 0x00, 0x01, // IID14860 - 0xd5, 0x18, 0x81, 0xe3, 0x00, 0x00, 0x00, 0x10, // IID14861 - 0xd5, 0x18, 0x83, 0xe4, 0x01, // IID14862 - 0xd5, 0x18, 0x83, 0xe4, 0x10, // IID14863 - 0xd5, 0x18, 0x81, 0xe4, 0x00, 0x01, 0x00, 0x00, // IID14864 - 0xd5, 0x18, 0x81, 0xe4, 0x00, 0x10, 0x00, 0x00, // IID14865 - 0xd5, 0x18, 0x81, 0xe4, 0x00, 0x00, 0x01, 0x00, // IID14866 - 0xd5, 0x18, 0x81, 0xe4, 0x00, 0x00, 0x10, 0x00, // IID14867 - 0xd5, 0x18, 0x81, 0xe4, 0x00, 0x00, 0x00, 0x01, // IID14868 - 0xd5, 0x18, 0x81, 0xe4, 0x00, 0x00, 0x00, 0x10, // IID14869 - 0xd5, 0x18, 0x83, 0xe5, 0x01, // IID14870 - 0xd5, 0x18, 0x83, 0xe5, 0x10, // IID14871 - 0xd5, 0x18, 0x81, 0xe5, 0x00, 0x01, 0x00, 0x00, // IID14872 - 0xd5, 0x18, 0x81, 0xe5, 0x00, 0x10, 0x00, 0x00, // IID14873 - 0xd5, 0x18, 0x81, 0xe5, 0x00, 0x00, 0x01, 0x00, // IID14874 - 0xd5, 0x18, 0x81, 0xe5, 0x00, 0x00, 0x10, 0x00, // IID14875 - 0xd5, 0x18, 0x81, 0xe5, 0x00, 0x00, 0x00, 0x01, // IID14876 - 0xd5, 0x18, 0x81, 0xe5, 0x00, 0x00, 0x00, 0x10, // IID14877 - 0xd5, 0x18, 0x83, 0xe6, 0x01, // IID14878 - 0xd5, 0x18, 0x83, 0xe6, 0x10, // IID14879 - 0xd5, 0x18, 0x81, 0xe6, 0x00, 0x01, 0x00, 0x00, // IID14880 - 0xd5, 0x18, 0x81, 0xe6, 0x00, 0x10, 0x00, 0x00, // IID14881 - 0xd5, 0x18, 0x81, 0xe6, 0x00, 0x00, 0x01, 0x00, // IID14882 - 0xd5, 0x18, 0x81, 0xe6, 0x00, 0x00, 0x10, 0x00, // IID14883 - 0xd5, 0x18, 0x81, 0xe6, 0x00, 0x00, 0x00, 0x01, // IID14884 - 0xd5, 0x18, 0x81, 0xe6, 0x00, 0x00, 0x00, 0x10, // IID14885 - 0xd5, 0x18, 0x83, 0xe7, 0x01, // IID14886 - 0xd5, 0x18, 0x83, 0xe7, 0x10, // IID14887 - 0xd5, 0x18, 0x81, 0xe7, 0x00, 0x01, 0x00, 0x00, // IID14888 - 0xd5, 0x18, 0x81, 0xe7, 0x00, 0x10, 0x00, 0x00, // IID14889 - 0xd5, 0x18, 0x81, 0xe7, 0x00, 0x00, 0x01, 0x00, // IID14890 - 0xd5, 0x18, 0x81, 0xe7, 0x00, 0x00, 0x10, 0x00, // IID14891 - 0xd5, 0x18, 0x81, 0xe7, 0x00, 0x00, 0x00, 0x01, // IID14892 - 0xd5, 0x18, 0x81, 0xe7, 0x00, 0x00, 0x00, 0x10, // IID14893 - 0xd5, 0x19, 0x83, 0xe0, 0x01, // IID14894 - 0xd5, 0x19, 0x83, 0xe0, 0x10, // IID14895 - 0xd5, 0x19, 0x81, 0xe0, 0x00, 0x01, 0x00, 0x00, // IID14896 - 0xd5, 0x19, 0x81, 0xe0, 0x00, 0x10, 0x00, 0x00, // IID14897 - 0xd5, 0x19, 0x81, 0xe0, 0x00, 0x00, 0x01, 0x00, // IID14898 - 0xd5, 0x19, 0x81, 0xe0, 0x00, 0x00, 0x10, 0x00, // IID14899 - 0xd5, 0x19, 0x81, 0xe0, 0x00, 0x00, 0x00, 0x01, // IID14900 - 0xd5, 0x19, 0x81, 0xe0, 0x00, 0x00, 0x00, 0x10, // IID14901 - 0xd5, 0x19, 0x83, 0xe1, 0x01, // IID14902 - 0xd5, 0x19, 0x83, 0xe1, 0x10, // IID14903 - 0xd5, 0x19, 0x81, 0xe1, 0x00, 0x01, 0x00, 0x00, // IID14904 - 0xd5, 0x19, 0x81, 0xe1, 0x00, 0x10, 0x00, 0x00, // IID14905 - 0xd5, 0x19, 0x81, 0xe1, 0x00, 0x00, 0x01, 0x00, // IID14906 - 0xd5, 0x19, 0x81, 0xe1, 0x00, 0x00, 0x10, 0x00, // IID14907 - 0xd5, 0x19, 0x81, 0xe1, 0x00, 0x00, 0x00, 0x01, // IID14908 - 0xd5, 0x19, 0x81, 0xe1, 0x00, 0x00, 0x00, 0x10, // IID14909 - 0xd5, 0x19, 0x83, 0xe2, 0x01, // IID14910 - 0xd5, 0x19, 0x83, 0xe2, 0x10, // IID14911 - 0xd5, 0x19, 0x81, 0xe2, 0x00, 0x01, 0x00, 0x00, // IID14912 - 0xd5, 0x19, 0x81, 0xe2, 0x00, 0x10, 0x00, 0x00, // IID14913 - 0xd5, 0x19, 0x81, 0xe2, 0x00, 0x00, 0x01, 0x00, // IID14914 - 0xd5, 0x19, 0x81, 0xe2, 0x00, 0x00, 0x10, 0x00, // IID14915 - 0xd5, 0x19, 0x81, 0xe2, 0x00, 0x00, 0x00, 0x01, // IID14916 - 0xd5, 0x19, 0x81, 0xe2, 0x00, 0x00, 0x00, 0x10, // IID14917 - 0xd5, 0x19, 0x83, 0xe3, 0x01, // IID14918 - 0xd5, 0x19, 0x83, 0xe3, 0x10, // IID14919 - 0xd5, 0x19, 0x81, 0xe3, 0x00, 0x01, 0x00, 0x00, // IID14920 - 0xd5, 0x19, 0x81, 0xe3, 0x00, 0x10, 0x00, 0x00, // IID14921 - 0xd5, 0x19, 0x81, 0xe3, 0x00, 0x00, 0x01, 0x00, // IID14922 - 0xd5, 0x19, 0x81, 0xe3, 0x00, 0x00, 0x10, 0x00, // IID14923 - 0xd5, 0x19, 0x81, 0xe3, 0x00, 0x00, 0x00, 0x01, // IID14924 - 0xd5, 0x19, 0x81, 0xe3, 0x00, 0x00, 0x00, 0x10, // IID14925 - 0xd5, 0x19, 0x83, 0xe4, 0x01, // IID14926 - 0xd5, 0x19, 0x83, 0xe4, 0x10, // IID14927 - 0xd5, 0x19, 0x81, 0xe4, 0x00, 0x01, 0x00, 0x00, // IID14928 - 0xd5, 0x19, 0x81, 0xe4, 0x00, 0x10, 0x00, 0x00, // IID14929 - 0xd5, 0x19, 0x81, 0xe4, 0x00, 0x00, 0x01, 0x00, // IID14930 - 0xd5, 0x19, 0x81, 0xe4, 0x00, 0x00, 0x10, 0x00, // IID14931 - 0xd5, 0x19, 0x81, 0xe4, 0x00, 0x00, 0x00, 0x01, // IID14932 - 0xd5, 0x19, 0x81, 0xe4, 0x00, 0x00, 0x00, 0x10, // IID14933 - 0xd5, 0x19, 0x83, 0xe5, 0x01, // IID14934 - 0xd5, 0x19, 0x83, 0xe5, 0x10, // IID14935 - 0xd5, 0x19, 0x81, 0xe5, 0x00, 0x01, 0x00, 0x00, // IID14936 - 0xd5, 0x19, 0x81, 0xe5, 0x00, 0x10, 0x00, 0x00, // IID14937 - 0xd5, 0x19, 0x81, 0xe5, 0x00, 0x00, 0x01, 0x00, // IID14938 - 0xd5, 0x19, 0x81, 0xe5, 0x00, 0x00, 0x10, 0x00, // IID14939 - 0xd5, 0x19, 0x81, 0xe5, 0x00, 0x00, 0x00, 0x01, // IID14940 - 0xd5, 0x19, 0x81, 0xe5, 0x00, 0x00, 0x00, 0x10, // IID14941 - 0xd5, 0x19, 0x83, 0xe6, 0x01, // IID14942 - 0xd5, 0x19, 0x83, 0xe6, 0x10, // IID14943 - 0xd5, 0x19, 0x81, 0xe6, 0x00, 0x01, 0x00, 0x00, // IID14944 - 0xd5, 0x19, 0x81, 0xe6, 0x00, 0x10, 0x00, 0x00, // IID14945 - 0xd5, 0x19, 0x81, 0xe6, 0x00, 0x00, 0x01, 0x00, // IID14946 - 0xd5, 0x19, 0x81, 0xe6, 0x00, 0x00, 0x10, 0x00, // IID14947 - 0xd5, 0x19, 0x81, 0xe6, 0x00, 0x00, 0x00, 0x01, // IID14948 - 0xd5, 0x19, 0x81, 0xe6, 0x00, 0x00, 0x00, 0x10, // IID14949 - 0xd5, 0x19, 0x83, 0xe7, 0x01, // IID14950 - 0xd5, 0x19, 0x83, 0xe7, 0x10, // IID14951 - 0xd5, 0x19, 0x81, 0xe7, 0x00, 0x01, 0x00, 0x00, // IID14952 - 0xd5, 0x19, 0x81, 0xe7, 0x00, 0x10, 0x00, 0x00, // IID14953 - 0xd5, 0x19, 0x81, 0xe7, 0x00, 0x00, 0x01, 0x00, // IID14954 - 0xd5, 0x19, 0x81, 0xe7, 0x00, 0x00, 0x10, 0x00, // IID14955 - 0xd5, 0x19, 0x81, 0xe7, 0x00, 0x00, 0x00, 0x01, // IID14956 - 0xd5, 0x19, 0x81, 0xe7, 0x00, 0x00, 0x00, 0x10, // IID14957 - 0x48, 0x83, 0xd1, 0x01, // IID14958 - 0x48, 0x83, 0xd1, 0x10, // IID14959 - 0x48, 0x81, 0xd1, 0x00, 0x01, 0x00, 0x00, // IID14960 - 0x48, 0x81, 0xd1, 0x00, 0x10, 0x00, 0x00, // IID14961 - 0x48, 0x81, 0xd1, 0x00, 0x00, 0x01, 0x00, // IID14962 - 0x48, 0x81, 0xd1, 0x00, 0x00, 0x10, 0x00, // IID14963 - 0x48, 0x81, 0xd1, 0x00, 0x00, 0x00, 0x01, // IID14964 - 0x48, 0x81, 0xd1, 0x00, 0x00, 0x00, 0x10, // IID14965 - 0x48, 0x83, 0xd2, 0x01, // IID14966 - 0x48, 0x83, 0xd2, 0x10, // IID14967 - 0x48, 0x81, 0xd2, 0x00, 0x01, 0x00, 0x00, // IID14968 - 0x48, 0x81, 0xd2, 0x00, 0x10, 0x00, 0x00, // IID14969 - 0x48, 0x81, 0xd2, 0x00, 0x00, 0x01, 0x00, // IID14970 - 0x48, 0x81, 0xd2, 0x00, 0x00, 0x10, 0x00, // IID14971 - 0x48, 0x81, 0xd2, 0x00, 0x00, 0x00, 0x01, // IID14972 - 0x48, 0x81, 0xd2, 0x00, 0x00, 0x00, 0x10, // IID14973 - 0x48, 0x83, 0xd3, 0x01, // IID14974 - 0x48, 0x83, 0xd3, 0x10, // IID14975 - 0x48, 0x81, 0xd3, 0x00, 0x01, 0x00, 0x00, // IID14976 - 0x48, 0x81, 0xd3, 0x00, 0x10, 0x00, 0x00, // IID14977 - 0x48, 0x81, 0xd3, 0x00, 0x00, 0x01, 0x00, // IID14978 - 0x48, 0x81, 0xd3, 0x00, 0x00, 0x10, 0x00, // IID14979 - 0x48, 0x81, 0xd3, 0x00, 0x00, 0x00, 0x01, // IID14980 - 0x48, 0x81, 0xd3, 0x00, 0x00, 0x00, 0x10, // IID14981 - 0x49, 0x83, 0xd0, 0x01, // IID14982 - 0x49, 0x83, 0xd0, 0x10, // IID14983 - 0x49, 0x81, 0xd0, 0x00, 0x01, 0x00, 0x00, // IID14984 - 0x49, 0x81, 0xd0, 0x00, 0x10, 0x00, 0x00, // IID14985 - 0x49, 0x81, 0xd0, 0x00, 0x00, 0x01, 0x00, // IID14986 - 0x49, 0x81, 0xd0, 0x00, 0x00, 0x10, 0x00, // IID14987 - 0x49, 0x81, 0xd0, 0x00, 0x00, 0x00, 0x01, // IID14988 - 0x49, 0x81, 0xd0, 0x00, 0x00, 0x00, 0x10, // IID14989 - 0x49, 0x83, 0xd1, 0x01, // IID14990 - 0x49, 0x83, 0xd1, 0x10, // IID14991 - 0x49, 0x81, 0xd1, 0x00, 0x01, 0x00, 0x00, // IID14992 - 0x49, 0x81, 0xd1, 0x00, 0x10, 0x00, 0x00, // IID14993 - 0x49, 0x81, 0xd1, 0x00, 0x00, 0x01, 0x00, // IID14994 - 0x49, 0x81, 0xd1, 0x00, 0x00, 0x10, 0x00, // IID14995 - 0x49, 0x81, 0xd1, 0x00, 0x00, 0x00, 0x01, // IID14996 - 0x49, 0x81, 0xd1, 0x00, 0x00, 0x00, 0x10, // IID14997 - 0x49, 0x83, 0xd2, 0x01, // IID14998 - 0x49, 0x83, 0xd2, 0x10, // IID14999 - 0x49, 0x81, 0xd2, 0x00, 0x01, 0x00, 0x00, // IID15000 - 0x49, 0x81, 0xd2, 0x00, 0x10, 0x00, 0x00, // IID15001 - 0x49, 0x81, 0xd2, 0x00, 0x00, 0x01, 0x00, // IID15002 - 0x49, 0x81, 0xd2, 0x00, 0x00, 0x10, 0x00, // IID15003 - 0x49, 0x81, 0xd2, 0x00, 0x00, 0x00, 0x01, // IID15004 - 0x49, 0x81, 0xd2, 0x00, 0x00, 0x00, 0x10, // IID15005 - 0x49, 0x83, 0xd3, 0x01, // IID15006 - 0x49, 0x83, 0xd3, 0x10, // IID15007 - 0x49, 0x81, 0xd3, 0x00, 0x01, 0x00, 0x00, // IID15008 - 0x49, 0x81, 0xd3, 0x00, 0x10, 0x00, 0x00, // IID15009 - 0x49, 0x81, 0xd3, 0x00, 0x00, 0x01, 0x00, // IID15010 - 0x49, 0x81, 0xd3, 0x00, 0x00, 0x10, 0x00, // IID15011 - 0x49, 0x81, 0xd3, 0x00, 0x00, 0x00, 0x01, // IID15012 - 0x49, 0x81, 0xd3, 0x00, 0x00, 0x00, 0x10, // IID15013 - 0x49, 0x83, 0xd4, 0x01, // IID15014 - 0x49, 0x83, 0xd4, 0x10, // IID15015 - 0x49, 0x81, 0xd4, 0x00, 0x01, 0x00, 0x00, // IID15016 - 0x49, 0x81, 0xd4, 0x00, 0x10, 0x00, 0x00, // IID15017 - 0x49, 0x81, 0xd4, 0x00, 0x00, 0x01, 0x00, // IID15018 - 0x49, 0x81, 0xd4, 0x00, 0x00, 0x10, 0x00, // IID15019 - 0x49, 0x81, 0xd4, 0x00, 0x00, 0x00, 0x01, // IID15020 - 0x49, 0x81, 0xd4, 0x00, 0x00, 0x00, 0x10, // IID15021 - 0x49, 0x83, 0xd5, 0x01, // IID15022 - 0x49, 0x83, 0xd5, 0x10, // IID15023 - 0x49, 0x81, 0xd5, 0x00, 0x01, 0x00, 0x00, // IID15024 - 0x49, 0x81, 0xd5, 0x00, 0x10, 0x00, 0x00, // IID15025 - 0x49, 0x81, 0xd5, 0x00, 0x00, 0x01, 0x00, // IID15026 - 0x49, 0x81, 0xd5, 0x00, 0x00, 0x10, 0x00, // IID15027 - 0x49, 0x81, 0xd5, 0x00, 0x00, 0x00, 0x01, // IID15028 - 0x49, 0x81, 0xd5, 0x00, 0x00, 0x00, 0x10, // IID15029 - 0x49, 0x83, 0xd6, 0x01, // IID15030 - 0x49, 0x83, 0xd6, 0x10, // IID15031 - 0x49, 0x81, 0xd6, 0x00, 0x01, 0x00, 0x00, // IID15032 - 0x49, 0x81, 0xd6, 0x00, 0x10, 0x00, 0x00, // IID15033 - 0x49, 0x81, 0xd6, 0x00, 0x00, 0x01, 0x00, // IID15034 - 0x49, 0x81, 0xd6, 0x00, 0x00, 0x10, 0x00, // IID15035 - 0x49, 0x81, 0xd6, 0x00, 0x00, 0x00, 0x01, // IID15036 - 0x49, 0x81, 0xd6, 0x00, 0x00, 0x00, 0x10, // IID15037 - 0x49, 0x83, 0xd7, 0x01, // IID15038 - 0x49, 0x83, 0xd7, 0x10, // IID15039 - 0x49, 0x81, 0xd7, 0x00, 0x01, 0x00, 0x00, // IID15040 - 0x49, 0x81, 0xd7, 0x00, 0x10, 0x00, 0x00, // IID15041 - 0x49, 0x81, 0xd7, 0x00, 0x00, 0x01, 0x00, // IID15042 - 0x49, 0x81, 0xd7, 0x00, 0x00, 0x10, 0x00, // IID15043 - 0x49, 0x81, 0xd7, 0x00, 0x00, 0x00, 0x01, // IID15044 - 0x49, 0x81, 0xd7, 0x00, 0x00, 0x00, 0x10, // IID15045 - 0xd5, 0x18, 0x83, 0xd0, 0x01, // IID15046 - 0xd5, 0x18, 0x83, 0xd0, 0x10, // IID15047 - 0xd5, 0x18, 0x81, 0xd0, 0x00, 0x01, 0x00, 0x00, // IID15048 - 0xd5, 0x18, 0x81, 0xd0, 0x00, 0x10, 0x00, 0x00, // IID15049 - 0xd5, 0x18, 0x81, 0xd0, 0x00, 0x00, 0x01, 0x00, // IID15050 - 0xd5, 0x18, 0x81, 0xd0, 0x00, 0x00, 0x10, 0x00, // IID15051 - 0xd5, 0x18, 0x81, 0xd0, 0x00, 0x00, 0x00, 0x01, // IID15052 - 0xd5, 0x18, 0x81, 0xd0, 0x00, 0x00, 0x00, 0x10, // IID15053 - 0xd5, 0x18, 0x83, 0xd1, 0x01, // IID15054 - 0xd5, 0x18, 0x83, 0xd1, 0x10, // IID15055 - 0xd5, 0x18, 0x81, 0xd1, 0x00, 0x01, 0x00, 0x00, // IID15056 - 0xd5, 0x18, 0x81, 0xd1, 0x00, 0x10, 0x00, 0x00, // IID15057 - 0xd5, 0x18, 0x81, 0xd1, 0x00, 0x00, 0x01, 0x00, // IID15058 - 0xd5, 0x18, 0x81, 0xd1, 0x00, 0x00, 0x10, 0x00, // IID15059 - 0xd5, 0x18, 0x81, 0xd1, 0x00, 0x00, 0x00, 0x01, // IID15060 - 0xd5, 0x18, 0x81, 0xd1, 0x00, 0x00, 0x00, 0x10, // IID15061 - 0xd5, 0x18, 0x83, 0xd2, 0x01, // IID15062 - 0xd5, 0x18, 0x83, 0xd2, 0x10, // IID15063 - 0xd5, 0x18, 0x81, 0xd2, 0x00, 0x01, 0x00, 0x00, // IID15064 - 0xd5, 0x18, 0x81, 0xd2, 0x00, 0x10, 0x00, 0x00, // IID15065 - 0xd5, 0x18, 0x81, 0xd2, 0x00, 0x00, 0x01, 0x00, // IID15066 - 0xd5, 0x18, 0x81, 0xd2, 0x00, 0x00, 0x10, 0x00, // IID15067 - 0xd5, 0x18, 0x81, 0xd2, 0x00, 0x00, 0x00, 0x01, // IID15068 - 0xd5, 0x18, 0x81, 0xd2, 0x00, 0x00, 0x00, 0x10, // IID15069 - 0xd5, 0x18, 0x83, 0xd3, 0x01, // IID15070 - 0xd5, 0x18, 0x83, 0xd3, 0x10, // IID15071 - 0xd5, 0x18, 0x81, 0xd3, 0x00, 0x01, 0x00, 0x00, // IID15072 - 0xd5, 0x18, 0x81, 0xd3, 0x00, 0x10, 0x00, 0x00, // IID15073 - 0xd5, 0x18, 0x81, 0xd3, 0x00, 0x00, 0x01, 0x00, // IID15074 - 0xd5, 0x18, 0x81, 0xd3, 0x00, 0x00, 0x10, 0x00, // IID15075 - 0xd5, 0x18, 0x81, 0xd3, 0x00, 0x00, 0x00, 0x01, // IID15076 - 0xd5, 0x18, 0x81, 0xd3, 0x00, 0x00, 0x00, 0x10, // IID15077 - 0xd5, 0x18, 0x83, 0xd4, 0x01, // IID15078 - 0xd5, 0x18, 0x83, 0xd4, 0x10, // IID15079 - 0xd5, 0x18, 0x81, 0xd4, 0x00, 0x01, 0x00, 0x00, // IID15080 - 0xd5, 0x18, 0x81, 0xd4, 0x00, 0x10, 0x00, 0x00, // IID15081 - 0xd5, 0x18, 0x81, 0xd4, 0x00, 0x00, 0x01, 0x00, // IID15082 - 0xd5, 0x18, 0x81, 0xd4, 0x00, 0x00, 0x10, 0x00, // IID15083 - 0xd5, 0x18, 0x81, 0xd4, 0x00, 0x00, 0x00, 0x01, // IID15084 - 0xd5, 0x18, 0x81, 0xd4, 0x00, 0x00, 0x00, 0x10, // IID15085 - 0xd5, 0x18, 0x83, 0xd5, 0x01, // IID15086 - 0xd5, 0x18, 0x83, 0xd5, 0x10, // IID15087 - 0xd5, 0x18, 0x81, 0xd5, 0x00, 0x01, 0x00, 0x00, // IID15088 - 0xd5, 0x18, 0x81, 0xd5, 0x00, 0x10, 0x00, 0x00, // IID15089 - 0xd5, 0x18, 0x81, 0xd5, 0x00, 0x00, 0x01, 0x00, // IID15090 - 0xd5, 0x18, 0x81, 0xd5, 0x00, 0x00, 0x10, 0x00, // IID15091 - 0xd5, 0x18, 0x81, 0xd5, 0x00, 0x00, 0x00, 0x01, // IID15092 - 0xd5, 0x18, 0x81, 0xd5, 0x00, 0x00, 0x00, 0x10, // IID15093 - 0xd5, 0x18, 0x83, 0xd6, 0x01, // IID15094 - 0xd5, 0x18, 0x83, 0xd6, 0x10, // IID15095 - 0xd5, 0x18, 0x81, 0xd6, 0x00, 0x01, 0x00, 0x00, // IID15096 - 0xd5, 0x18, 0x81, 0xd6, 0x00, 0x10, 0x00, 0x00, // IID15097 - 0xd5, 0x18, 0x81, 0xd6, 0x00, 0x00, 0x01, 0x00, // IID15098 - 0xd5, 0x18, 0x81, 0xd6, 0x00, 0x00, 0x10, 0x00, // IID15099 - 0xd5, 0x18, 0x81, 0xd6, 0x00, 0x00, 0x00, 0x01, // IID15100 - 0xd5, 0x18, 0x81, 0xd6, 0x00, 0x00, 0x00, 0x10, // IID15101 - 0xd5, 0x18, 0x83, 0xd7, 0x01, // IID15102 - 0xd5, 0x18, 0x83, 0xd7, 0x10, // IID15103 - 0xd5, 0x18, 0x81, 0xd7, 0x00, 0x01, 0x00, 0x00, // IID15104 - 0xd5, 0x18, 0x81, 0xd7, 0x00, 0x10, 0x00, 0x00, // IID15105 - 0xd5, 0x18, 0x81, 0xd7, 0x00, 0x00, 0x01, 0x00, // IID15106 - 0xd5, 0x18, 0x81, 0xd7, 0x00, 0x00, 0x10, 0x00, // IID15107 - 0xd5, 0x18, 0x81, 0xd7, 0x00, 0x00, 0x00, 0x01, // IID15108 - 0xd5, 0x18, 0x81, 0xd7, 0x00, 0x00, 0x00, 0x10, // IID15109 - 0xd5, 0x19, 0x83, 0xd0, 0x01, // IID15110 - 0xd5, 0x19, 0x83, 0xd0, 0x10, // IID15111 - 0xd5, 0x19, 0x81, 0xd0, 0x00, 0x01, 0x00, 0x00, // IID15112 - 0xd5, 0x19, 0x81, 0xd0, 0x00, 0x10, 0x00, 0x00, // IID15113 - 0xd5, 0x19, 0x81, 0xd0, 0x00, 0x00, 0x01, 0x00, // IID15114 - 0xd5, 0x19, 0x81, 0xd0, 0x00, 0x00, 0x10, 0x00, // IID15115 - 0xd5, 0x19, 0x81, 0xd0, 0x00, 0x00, 0x00, 0x01, // IID15116 - 0xd5, 0x19, 0x81, 0xd0, 0x00, 0x00, 0x00, 0x10, // IID15117 - 0xd5, 0x19, 0x83, 0xd1, 0x01, // IID15118 - 0xd5, 0x19, 0x83, 0xd1, 0x10, // IID15119 - 0xd5, 0x19, 0x81, 0xd1, 0x00, 0x01, 0x00, 0x00, // IID15120 - 0xd5, 0x19, 0x81, 0xd1, 0x00, 0x10, 0x00, 0x00, // IID15121 - 0xd5, 0x19, 0x81, 0xd1, 0x00, 0x00, 0x01, 0x00, // IID15122 - 0xd5, 0x19, 0x81, 0xd1, 0x00, 0x00, 0x10, 0x00, // IID15123 - 0xd5, 0x19, 0x81, 0xd1, 0x00, 0x00, 0x00, 0x01, // IID15124 - 0xd5, 0x19, 0x81, 0xd1, 0x00, 0x00, 0x00, 0x10, // IID15125 - 0xd5, 0x19, 0x83, 0xd2, 0x01, // IID15126 - 0xd5, 0x19, 0x83, 0xd2, 0x10, // IID15127 - 0xd5, 0x19, 0x81, 0xd2, 0x00, 0x01, 0x00, 0x00, // IID15128 - 0xd5, 0x19, 0x81, 0xd2, 0x00, 0x10, 0x00, 0x00, // IID15129 - 0xd5, 0x19, 0x81, 0xd2, 0x00, 0x00, 0x01, 0x00, // IID15130 - 0xd5, 0x19, 0x81, 0xd2, 0x00, 0x00, 0x10, 0x00, // IID15131 - 0xd5, 0x19, 0x81, 0xd2, 0x00, 0x00, 0x00, 0x01, // IID15132 - 0xd5, 0x19, 0x81, 0xd2, 0x00, 0x00, 0x00, 0x10, // IID15133 - 0xd5, 0x19, 0x83, 0xd3, 0x01, // IID15134 - 0xd5, 0x19, 0x83, 0xd3, 0x10, // IID15135 - 0xd5, 0x19, 0x81, 0xd3, 0x00, 0x01, 0x00, 0x00, // IID15136 - 0xd5, 0x19, 0x81, 0xd3, 0x00, 0x10, 0x00, 0x00, // IID15137 - 0xd5, 0x19, 0x81, 0xd3, 0x00, 0x00, 0x01, 0x00, // IID15138 - 0xd5, 0x19, 0x81, 0xd3, 0x00, 0x00, 0x10, 0x00, // IID15139 - 0xd5, 0x19, 0x81, 0xd3, 0x00, 0x00, 0x00, 0x01, // IID15140 - 0xd5, 0x19, 0x81, 0xd3, 0x00, 0x00, 0x00, 0x10, // IID15141 - 0xd5, 0x19, 0x83, 0xd4, 0x01, // IID15142 - 0xd5, 0x19, 0x83, 0xd4, 0x10, // IID15143 - 0xd5, 0x19, 0x81, 0xd4, 0x00, 0x01, 0x00, 0x00, // IID15144 - 0xd5, 0x19, 0x81, 0xd4, 0x00, 0x10, 0x00, 0x00, // IID15145 - 0xd5, 0x19, 0x81, 0xd4, 0x00, 0x00, 0x01, 0x00, // IID15146 - 0xd5, 0x19, 0x81, 0xd4, 0x00, 0x00, 0x10, 0x00, // IID15147 - 0xd5, 0x19, 0x81, 0xd4, 0x00, 0x00, 0x00, 0x01, // IID15148 - 0xd5, 0x19, 0x81, 0xd4, 0x00, 0x00, 0x00, 0x10, // IID15149 - 0xd5, 0x19, 0x83, 0xd5, 0x01, // IID15150 - 0xd5, 0x19, 0x83, 0xd5, 0x10, // IID15151 - 0xd5, 0x19, 0x81, 0xd5, 0x00, 0x01, 0x00, 0x00, // IID15152 - 0xd5, 0x19, 0x81, 0xd5, 0x00, 0x10, 0x00, 0x00, // IID15153 - 0xd5, 0x19, 0x81, 0xd5, 0x00, 0x00, 0x01, 0x00, // IID15154 - 0xd5, 0x19, 0x81, 0xd5, 0x00, 0x00, 0x10, 0x00, // IID15155 - 0xd5, 0x19, 0x81, 0xd5, 0x00, 0x00, 0x00, 0x01, // IID15156 - 0xd5, 0x19, 0x81, 0xd5, 0x00, 0x00, 0x00, 0x10, // IID15157 - 0xd5, 0x19, 0x83, 0xd6, 0x01, // IID15158 - 0xd5, 0x19, 0x83, 0xd6, 0x10, // IID15159 - 0xd5, 0x19, 0x81, 0xd6, 0x00, 0x01, 0x00, 0x00, // IID15160 - 0xd5, 0x19, 0x81, 0xd6, 0x00, 0x10, 0x00, 0x00, // IID15161 - 0xd5, 0x19, 0x81, 0xd6, 0x00, 0x00, 0x01, 0x00, // IID15162 - 0xd5, 0x19, 0x81, 0xd6, 0x00, 0x00, 0x10, 0x00, // IID15163 - 0xd5, 0x19, 0x81, 0xd6, 0x00, 0x00, 0x00, 0x01, // IID15164 - 0xd5, 0x19, 0x81, 0xd6, 0x00, 0x00, 0x00, 0x10, // IID15165 - 0xd5, 0x19, 0x83, 0xd7, 0x01, // IID15166 - 0xd5, 0x19, 0x83, 0xd7, 0x10, // IID15167 - 0xd5, 0x19, 0x81, 0xd7, 0x00, 0x01, 0x00, 0x00, // IID15168 - 0xd5, 0x19, 0x81, 0xd7, 0x00, 0x10, 0x00, 0x00, // IID15169 - 0xd5, 0x19, 0x81, 0xd7, 0x00, 0x00, 0x01, 0x00, // IID15170 - 0xd5, 0x19, 0x81, 0xd7, 0x00, 0x00, 0x10, 0x00, // IID15171 - 0xd5, 0x19, 0x81, 0xd7, 0x00, 0x00, 0x00, 0x01, // IID15172 - 0xd5, 0x19, 0x81, 0xd7, 0x00, 0x00, 0x00, 0x10, // IID15173 - 0x48, 0x83, 0xf9, 0x01, // IID15174 - 0x48, 0x83, 0xf9, 0x10, // IID15175 - 0x48, 0x81, 0xf9, 0x00, 0x01, 0x00, 0x00, // IID15176 - 0x48, 0x81, 0xf9, 0x00, 0x10, 0x00, 0x00, // IID15177 - 0x48, 0x81, 0xf9, 0x00, 0x00, 0x01, 0x00, // IID15178 - 0x48, 0x81, 0xf9, 0x00, 0x00, 0x10, 0x00, // IID15179 - 0x48, 0x81, 0xf9, 0x00, 0x00, 0x00, 0x01, // IID15180 - 0x48, 0x81, 0xf9, 0x00, 0x00, 0x00, 0x10, // IID15181 - 0x48, 0x83, 0xfa, 0x01, // IID15182 - 0x48, 0x83, 0xfa, 0x10, // IID15183 - 0x48, 0x81, 0xfa, 0x00, 0x01, 0x00, 0x00, // IID15184 - 0x48, 0x81, 0xfa, 0x00, 0x10, 0x00, 0x00, // IID15185 - 0x48, 0x81, 0xfa, 0x00, 0x00, 0x01, 0x00, // IID15186 - 0x48, 0x81, 0xfa, 0x00, 0x00, 0x10, 0x00, // IID15187 - 0x48, 0x81, 0xfa, 0x00, 0x00, 0x00, 0x01, // IID15188 - 0x48, 0x81, 0xfa, 0x00, 0x00, 0x00, 0x10, // IID15189 - 0x48, 0x83, 0xfb, 0x01, // IID15190 - 0x48, 0x83, 0xfb, 0x10, // IID15191 - 0x48, 0x81, 0xfb, 0x00, 0x01, 0x00, 0x00, // IID15192 - 0x48, 0x81, 0xfb, 0x00, 0x10, 0x00, 0x00, // IID15193 - 0x48, 0x81, 0xfb, 0x00, 0x00, 0x01, 0x00, // IID15194 - 0x48, 0x81, 0xfb, 0x00, 0x00, 0x10, 0x00, // IID15195 - 0x48, 0x81, 0xfb, 0x00, 0x00, 0x00, 0x01, // IID15196 - 0x48, 0x81, 0xfb, 0x00, 0x00, 0x00, 0x10, // IID15197 - 0x49, 0x83, 0xf8, 0x01, // IID15198 - 0x49, 0x83, 0xf8, 0x10, // IID15199 - 0x49, 0x81, 0xf8, 0x00, 0x01, 0x00, 0x00, // IID15200 - 0x49, 0x81, 0xf8, 0x00, 0x10, 0x00, 0x00, // IID15201 - 0x49, 0x81, 0xf8, 0x00, 0x00, 0x01, 0x00, // IID15202 - 0x49, 0x81, 0xf8, 0x00, 0x00, 0x10, 0x00, // IID15203 - 0x49, 0x81, 0xf8, 0x00, 0x00, 0x00, 0x01, // IID15204 - 0x49, 0x81, 0xf8, 0x00, 0x00, 0x00, 0x10, // IID15205 - 0x49, 0x83, 0xf9, 0x01, // IID15206 - 0x49, 0x83, 0xf9, 0x10, // IID15207 - 0x49, 0x81, 0xf9, 0x00, 0x01, 0x00, 0x00, // IID15208 - 0x49, 0x81, 0xf9, 0x00, 0x10, 0x00, 0x00, // IID15209 - 0x49, 0x81, 0xf9, 0x00, 0x00, 0x01, 0x00, // IID15210 - 0x49, 0x81, 0xf9, 0x00, 0x00, 0x10, 0x00, // IID15211 - 0x49, 0x81, 0xf9, 0x00, 0x00, 0x00, 0x01, // IID15212 - 0x49, 0x81, 0xf9, 0x00, 0x00, 0x00, 0x10, // IID15213 - 0x49, 0x83, 0xfa, 0x01, // IID15214 - 0x49, 0x83, 0xfa, 0x10, // IID15215 - 0x49, 0x81, 0xfa, 0x00, 0x01, 0x00, 0x00, // IID15216 - 0x49, 0x81, 0xfa, 0x00, 0x10, 0x00, 0x00, // IID15217 - 0x49, 0x81, 0xfa, 0x00, 0x00, 0x01, 0x00, // IID15218 - 0x49, 0x81, 0xfa, 0x00, 0x00, 0x10, 0x00, // IID15219 - 0x49, 0x81, 0xfa, 0x00, 0x00, 0x00, 0x01, // IID15220 - 0x49, 0x81, 0xfa, 0x00, 0x00, 0x00, 0x10, // IID15221 - 0x49, 0x83, 0xfb, 0x01, // IID15222 - 0x49, 0x83, 0xfb, 0x10, // IID15223 - 0x49, 0x81, 0xfb, 0x00, 0x01, 0x00, 0x00, // IID15224 - 0x49, 0x81, 0xfb, 0x00, 0x10, 0x00, 0x00, // IID15225 - 0x49, 0x81, 0xfb, 0x00, 0x00, 0x01, 0x00, // IID15226 - 0x49, 0x81, 0xfb, 0x00, 0x00, 0x10, 0x00, // IID15227 - 0x49, 0x81, 0xfb, 0x00, 0x00, 0x00, 0x01, // IID15228 - 0x49, 0x81, 0xfb, 0x00, 0x00, 0x00, 0x10, // IID15229 - 0x49, 0x83, 0xfc, 0x01, // IID15230 - 0x49, 0x83, 0xfc, 0x10, // IID15231 - 0x49, 0x81, 0xfc, 0x00, 0x01, 0x00, 0x00, // IID15232 - 0x49, 0x81, 0xfc, 0x00, 0x10, 0x00, 0x00, // IID15233 - 0x49, 0x81, 0xfc, 0x00, 0x00, 0x01, 0x00, // IID15234 - 0x49, 0x81, 0xfc, 0x00, 0x00, 0x10, 0x00, // IID15235 - 0x49, 0x81, 0xfc, 0x00, 0x00, 0x00, 0x01, // IID15236 - 0x49, 0x81, 0xfc, 0x00, 0x00, 0x00, 0x10, // IID15237 - 0x49, 0x83, 0xfd, 0x01, // IID15238 - 0x49, 0x83, 0xfd, 0x10, // IID15239 - 0x49, 0x81, 0xfd, 0x00, 0x01, 0x00, 0x00, // IID15240 - 0x49, 0x81, 0xfd, 0x00, 0x10, 0x00, 0x00, // IID15241 - 0x49, 0x81, 0xfd, 0x00, 0x00, 0x01, 0x00, // IID15242 - 0x49, 0x81, 0xfd, 0x00, 0x00, 0x10, 0x00, // IID15243 - 0x49, 0x81, 0xfd, 0x00, 0x00, 0x00, 0x01, // IID15244 - 0x49, 0x81, 0xfd, 0x00, 0x00, 0x00, 0x10, // IID15245 - 0x49, 0x83, 0xfe, 0x01, // IID15246 - 0x49, 0x83, 0xfe, 0x10, // IID15247 - 0x49, 0x81, 0xfe, 0x00, 0x01, 0x00, 0x00, // IID15248 - 0x49, 0x81, 0xfe, 0x00, 0x10, 0x00, 0x00, // IID15249 - 0x49, 0x81, 0xfe, 0x00, 0x00, 0x01, 0x00, // IID15250 - 0x49, 0x81, 0xfe, 0x00, 0x00, 0x10, 0x00, // IID15251 - 0x49, 0x81, 0xfe, 0x00, 0x00, 0x00, 0x01, // IID15252 - 0x49, 0x81, 0xfe, 0x00, 0x00, 0x00, 0x10, // IID15253 - 0x49, 0x83, 0xff, 0x01, // IID15254 - 0x49, 0x83, 0xff, 0x10, // IID15255 - 0x49, 0x81, 0xff, 0x00, 0x01, 0x00, 0x00, // IID15256 - 0x49, 0x81, 0xff, 0x00, 0x10, 0x00, 0x00, // IID15257 - 0x49, 0x81, 0xff, 0x00, 0x00, 0x01, 0x00, // IID15258 - 0x49, 0x81, 0xff, 0x00, 0x00, 0x10, 0x00, // IID15259 - 0x49, 0x81, 0xff, 0x00, 0x00, 0x00, 0x01, // IID15260 - 0x49, 0x81, 0xff, 0x00, 0x00, 0x00, 0x10, // IID15261 - 0xd5, 0x18, 0x83, 0xf8, 0x01, // IID15262 - 0xd5, 0x18, 0x83, 0xf8, 0x10, // IID15263 - 0xd5, 0x18, 0x81, 0xf8, 0x00, 0x01, 0x00, 0x00, // IID15264 - 0xd5, 0x18, 0x81, 0xf8, 0x00, 0x10, 0x00, 0x00, // IID15265 - 0xd5, 0x18, 0x81, 0xf8, 0x00, 0x00, 0x01, 0x00, // IID15266 - 0xd5, 0x18, 0x81, 0xf8, 0x00, 0x00, 0x10, 0x00, // IID15267 - 0xd5, 0x18, 0x81, 0xf8, 0x00, 0x00, 0x00, 0x01, // IID15268 - 0xd5, 0x18, 0x81, 0xf8, 0x00, 0x00, 0x00, 0x10, // IID15269 - 0xd5, 0x18, 0x83, 0xf9, 0x01, // IID15270 - 0xd5, 0x18, 0x83, 0xf9, 0x10, // IID15271 - 0xd5, 0x18, 0x81, 0xf9, 0x00, 0x01, 0x00, 0x00, // IID15272 - 0xd5, 0x18, 0x81, 0xf9, 0x00, 0x10, 0x00, 0x00, // IID15273 - 0xd5, 0x18, 0x81, 0xf9, 0x00, 0x00, 0x01, 0x00, // IID15274 - 0xd5, 0x18, 0x81, 0xf9, 0x00, 0x00, 0x10, 0x00, // IID15275 - 0xd5, 0x18, 0x81, 0xf9, 0x00, 0x00, 0x00, 0x01, // IID15276 - 0xd5, 0x18, 0x81, 0xf9, 0x00, 0x00, 0x00, 0x10, // IID15277 - 0xd5, 0x18, 0x83, 0xfa, 0x01, // IID15278 - 0xd5, 0x18, 0x83, 0xfa, 0x10, // IID15279 - 0xd5, 0x18, 0x81, 0xfa, 0x00, 0x01, 0x00, 0x00, // IID15280 - 0xd5, 0x18, 0x81, 0xfa, 0x00, 0x10, 0x00, 0x00, // IID15281 - 0xd5, 0x18, 0x81, 0xfa, 0x00, 0x00, 0x01, 0x00, // IID15282 - 0xd5, 0x18, 0x81, 0xfa, 0x00, 0x00, 0x10, 0x00, // IID15283 - 0xd5, 0x18, 0x81, 0xfa, 0x00, 0x00, 0x00, 0x01, // IID15284 - 0xd5, 0x18, 0x81, 0xfa, 0x00, 0x00, 0x00, 0x10, // IID15285 - 0xd5, 0x18, 0x83, 0xfb, 0x01, // IID15286 - 0xd5, 0x18, 0x83, 0xfb, 0x10, // IID15287 - 0xd5, 0x18, 0x81, 0xfb, 0x00, 0x01, 0x00, 0x00, // IID15288 - 0xd5, 0x18, 0x81, 0xfb, 0x00, 0x10, 0x00, 0x00, // IID15289 - 0xd5, 0x18, 0x81, 0xfb, 0x00, 0x00, 0x01, 0x00, // IID15290 - 0xd5, 0x18, 0x81, 0xfb, 0x00, 0x00, 0x10, 0x00, // IID15291 - 0xd5, 0x18, 0x81, 0xfb, 0x00, 0x00, 0x00, 0x01, // IID15292 - 0xd5, 0x18, 0x81, 0xfb, 0x00, 0x00, 0x00, 0x10, // IID15293 - 0xd5, 0x18, 0x83, 0xfc, 0x01, // IID15294 - 0xd5, 0x18, 0x83, 0xfc, 0x10, // IID15295 - 0xd5, 0x18, 0x81, 0xfc, 0x00, 0x01, 0x00, 0x00, // IID15296 - 0xd5, 0x18, 0x81, 0xfc, 0x00, 0x10, 0x00, 0x00, // IID15297 - 0xd5, 0x18, 0x81, 0xfc, 0x00, 0x00, 0x01, 0x00, // IID15298 - 0xd5, 0x18, 0x81, 0xfc, 0x00, 0x00, 0x10, 0x00, // IID15299 - 0xd5, 0x18, 0x81, 0xfc, 0x00, 0x00, 0x00, 0x01, // IID15300 - 0xd5, 0x18, 0x81, 0xfc, 0x00, 0x00, 0x00, 0x10, // IID15301 - 0xd5, 0x18, 0x83, 0xfd, 0x01, // IID15302 - 0xd5, 0x18, 0x83, 0xfd, 0x10, // IID15303 - 0xd5, 0x18, 0x81, 0xfd, 0x00, 0x01, 0x00, 0x00, // IID15304 - 0xd5, 0x18, 0x81, 0xfd, 0x00, 0x10, 0x00, 0x00, // IID15305 - 0xd5, 0x18, 0x81, 0xfd, 0x00, 0x00, 0x01, 0x00, // IID15306 - 0xd5, 0x18, 0x81, 0xfd, 0x00, 0x00, 0x10, 0x00, // IID15307 - 0xd5, 0x18, 0x81, 0xfd, 0x00, 0x00, 0x00, 0x01, // IID15308 - 0xd5, 0x18, 0x81, 0xfd, 0x00, 0x00, 0x00, 0x10, // IID15309 - 0xd5, 0x18, 0x83, 0xfe, 0x01, // IID15310 - 0xd5, 0x18, 0x83, 0xfe, 0x10, // IID15311 - 0xd5, 0x18, 0x81, 0xfe, 0x00, 0x01, 0x00, 0x00, // IID15312 - 0xd5, 0x18, 0x81, 0xfe, 0x00, 0x10, 0x00, 0x00, // IID15313 - 0xd5, 0x18, 0x81, 0xfe, 0x00, 0x00, 0x01, 0x00, // IID15314 - 0xd5, 0x18, 0x81, 0xfe, 0x00, 0x00, 0x10, 0x00, // IID15315 - 0xd5, 0x18, 0x81, 0xfe, 0x00, 0x00, 0x00, 0x01, // IID15316 - 0xd5, 0x18, 0x81, 0xfe, 0x00, 0x00, 0x00, 0x10, // IID15317 - 0xd5, 0x18, 0x83, 0xff, 0x01, // IID15318 - 0xd5, 0x18, 0x83, 0xff, 0x10, // IID15319 - 0xd5, 0x18, 0x81, 0xff, 0x00, 0x01, 0x00, 0x00, // IID15320 - 0xd5, 0x18, 0x81, 0xff, 0x00, 0x10, 0x00, 0x00, // IID15321 - 0xd5, 0x18, 0x81, 0xff, 0x00, 0x00, 0x01, 0x00, // IID15322 - 0xd5, 0x18, 0x81, 0xff, 0x00, 0x00, 0x10, 0x00, // IID15323 - 0xd5, 0x18, 0x81, 0xff, 0x00, 0x00, 0x00, 0x01, // IID15324 - 0xd5, 0x18, 0x81, 0xff, 0x00, 0x00, 0x00, 0x10, // IID15325 - 0xd5, 0x19, 0x83, 0xf8, 0x01, // IID15326 - 0xd5, 0x19, 0x83, 0xf8, 0x10, // IID15327 - 0xd5, 0x19, 0x81, 0xf8, 0x00, 0x01, 0x00, 0x00, // IID15328 - 0xd5, 0x19, 0x81, 0xf8, 0x00, 0x10, 0x00, 0x00, // IID15329 - 0xd5, 0x19, 0x81, 0xf8, 0x00, 0x00, 0x01, 0x00, // IID15330 - 0xd5, 0x19, 0x81, 0xf8, 0x00, 0x00, 0x10, 0x00, // IID15331 - 0xd5, 0x19, 0x81, 0xf8, 0x00, 0x00, 0x00, 0x01, // IID15332 - 0xd5, 0x19, 0x81, 0xf8, 0x00, 0x00, 0x00, 0x10, // IID15333 - 0xd5, 0x19, 0x83, 0xf9, 0x01, // IID15334 - 0xd5, 0x19, 0x83, 0xf9, 0x10, // IID15335 - 0xd5, 0x19, 0x81, 0xf9, 0x00, 0x01, 0x00, 0x00, // IID15336 - 0xd5, 0x19, 0x81, 0xf9, 0x00, 0x10, 0x00, 0x00, // IID15337 - 0xd5, 0x19, 0x81, 0xf9, 0x00, 0x00, 0x01, 0x00, // IID15338 - 0xd5, 0x19, 0x81, 0xf9, 0x00, 0x00, 0x10, 0x00, // IID15339 - 0xd5, 0x19, 0x81, 0xf9, 0x00, 0x00, 0x00, 0x01, // IID15340 - 0xd5, 0x19, 0x81, 0xf9, 0x00, 0x00, 0x00, 0x10, // IID15341 - 0xd5, 0x19, 0x83, 0xfa, 0x01, // IID15342 - 0xd5, 0x19, 0x83, 0xfa, 0x10, // IID15343 - 0xd5, 0x19, 0x81, 0xfa, 0x00, 0x01, 0x00, 0x00, // IID15344 - 0xd5, 0x19, 0x81, 0xfa, 0x00, 0x10, 0x00, 0x00, // IID15345 - 0xd5, 0x19, 0x81, 0xfa, 0x00, 0x00, 0x01, 0x00, // IID15346 - 0xd5, 0x19, 0x81, 0xfa, 0x00, 0x00, 0x10, 0x00, // IID15347 - 0xd5, 0x19, 0x81, 0xfa, 0x00, 0x00, 0x00, 0x01, // IID15348 - 0xd5, 0x19, 0x81, 0xfa, 0x00, 0x00, 0x00, 0x10, // IID15349 - 0xd5, 0x19, 0x83, 0xfb, 0x01, // IID15350 - 0xd5, 0x19, 0x83, 0xfb, 0x10, // IID15351 - 0xd5, 0x19, 0x81, 0xfb, 0x00, 0x01, 0x00, 0x00, // IID15352 - 0xd5, 0x19, 0x81, 0xfb, 0x00, 0x10, 0x00, 0x00, // IID15353 - 0xd5, 0x19, 0x81, 0xfb, 0x00, 0x00, 0x01, 0x00, // IID15354 - 0xd5, 0x19, 0x81, 0xfb, 0x00, 0x00, 0x10, 0x00, // IID15355 - 0xd5, 0x19, 0x81, 0xfb, 0x00, 0x00, 0x00, 0x01, // IID15356 - 0xd5, 0x19, 0x81, 0xfb, 0x00, 0x00, 0x00, 0x10, // IID15357 - 0xd5, 0x19, 0x83, 0xfc, 0x01, // IID15358 - 0xd5, 0x19, 0x83, 0xfc, 0x10, // IID15359 - 0xd5, 0x19, 0x81, 0xfc, 0x00, 0x01, 0x00, 0x00, // IID15360 - 0xd5, 0x19, 0x81, 0xfc, 0x00, 0x10, 0x00, 0x00, // IID15361 - 0xd5, 0x19, 0x81, 0xfc, 0x00, 0x00, 0x01, 0x00, // IID15362 - 0xd5, 0x19, 0x81, 0xfc, 0x00, 0x00, 0x10, 0x00, // IID15363 - 0xd5, 0x19, 0x81, 0xfc, 0x00, 0x00, 0x00, 0x01, // IID15364 - 0xd5, 0x19, 0x81, 0xfc, 0x00, 0x00, 0x00, 0x10, // IID15365 - 0xd5, 0x19, 0x83, 0xfd, 0x01, // IID15366 - 0xd5, 0x19, 0x83, 0xfd, 0x10, // IID15367 - 0xd5, 0x19, 0x81, 0xfd, 0x00, 0x01, 0x00, 0x00, // IID15368 - 0xd5, 0x19, 0x81, 0xfd, 0x00, 0x10, 0x00, 0x00, // IID15369 - 0xd5, 0x19, 0x81, 0xfd, 0x00, 0x00, 0x01, 0x00, // IID15370 - 0xd5, 0x19, 0x81, 0xfd, 0x00, 0x00, 0x10, 0x00, // IID15371 - 0xd5, 0x19, 0x81, 0xfd, 0x00, 0x00, 0x00, 0x01, // IID15372 - 0xd5, 0x19, 0x81, 0xfd, 0x00, 0x00, 0x00, 0x10, // IID15373 - 0xd5, 0x19, 0x83, 0xfe, 0x01, // IID15374 - 0xd5, 0x19, 0x83, 0xfe, 0x10, // IID15375 - 0xd5, 0x19, 0x81, 0xfe, 0x00, 0x01, 0x00, 0x00, // IID15376 - 0xd5, 0x19, 0x81, 0xfe, 0x00, 0x10, 0x00, 0x00, // IID15377 - 0xd5, 0x19, 0x81, 0xfe, 0x00, 0x00, 0x01, 0x00, // IID15378 - 0xd5, 0x19, 0x81, 0xfe, 0x00, 0x00, 0x10, 0x00, // IID15379 - 0xd5, 0x19, 0x81, 0xfe, 0x00, 0x00, 0x00, 0x01, // IID15380 - 0xd5, 0x19, 0x81, 0xfe, 0x00, 0x00, 0x00, 0x10, // IID15381 - 0xd5, 0x19, 0x83, 0xff, 0x01, // IID15382 - 0xd5, 0x19, 0x83, 0xff, 0x10, // IID15383 - 0xd5, 0x19, 0x81, 0xff, 0x00, 0x01, 0x00, 0x00, // IID15384 - 0xd5, 0x19, 0x81, 0xff, 0x00, 0x10, 0x00, 0x00, // IID15385 - 0xd5, 0x19, 0x81, 0xff, 0x00, 0x00, 0x01, 0x00, // IID15386 - 0xd5, 0x19, 0x81, 0xff, 0x00, 0x00, 0x10, 0x00, // IID15387 - 0xd5, 0x19, 0x81, 0xff, 0x00, 0x00, 0x00, 0x01, // IID15388 - 0xd5, 0x19, 0x81, 0xff, 0x00, 0x00, 0x00, 0x10, // IID15389 - 0x48, 0xd1, 0xd1, // IID15390 - 0x48, 0xc1, 0xd1, 0x02, // IID15391 - 0x48, 0xc1, 0xd1, 0x04, // IID15392 - 0x48, 0xc1, 0xd1, 0x08, // IID15393 - 0x48, 0xc1, 0xd1, 0x10, // IID15394 - 0x48, 0xd1, 0xd2, // IID15395 - 0x48, 0xc1, 0xd2, 0x02, // IID15396 - 0x48, 0xc1, 0xd2, 0x04, // IID15397 - 0x48, 0xc1, 0xd2, 0x08, // IID15398 - 0x48, 0xc1, 0xd2, 0x10, // IID15399 - 0x48, 0xd1, 0xd3, // IID15400 - 0x48, 0xc1, 0xd3, 0x02, // IID15401 - 0x48, 0xc1, 0xd3, 0x04, // IID15402 - 0x48, 0xc1, 0xd3, 0x08, // IID15403 - 0x48, 0xc1, 0xd3, 0x10, // IID15404 - 0x49, 0xd1, 0xd0, // IID15405 - 0x49, 0xc1, 0xd0, 0x02, // IID15406 - 0x49, 0xc1, 0xd0, 0x04, // IID15407 - 0x49, 0xc1, 0xd0, 0x08, // IID15408 - 0x49, 0xc1, 0xd0, 0x10, // IID15409 - 0x49, 0xd1, 0xd1, // IID15410 - 0x49, 0xc1, 0xd1, 0x02, // IID15411 - 0x49, 0xc1, 0xd1, 0x04, // IID15412 - 0x49, 0xc1, 0xd1, 0x08, // IID15413 - 0x49, 0xc1, 0xd1, 0x10, // IID15414 - 0x49, 0xd1, 0xd2, // IID15415 - 0x49, 0xc1, 0xd2, 0x02, // IID15416 - 0x49, 0xc1, 0xd2, 0x04, // IID15417 - 0x49, 0xc1, 0xd2, 0x08, // IID15418 - 0x49, 0xc1, 0xd2, 0x10, // IID15419 - 0x49, 0xd1, 0xd3, // IID15420 - 0x49, 0xc1, 0xd3, 0x02, // IID15421 - 0x49, 0xc1, 0xd3, 0x04, // IID15422 - 0x49, 0xc1, 0xd3, 0x08, // IID15423 - 0x49, 0xc1, 0xd3, 0x10, // IID15424 - 0x49, 0xd1, 0xd4, // IID15425 - 0x49, 0xc1, 0xd4, 0x02, // IID15426 - 0x49, 0xc1, 0xd4, 0x04, // IID15427 - 0x49, 0xc1, 0xd4, 0x08, // IID15428 - 0x49, 0xc1, 0xd4, 0x10, // IID15429 - 0x49, 0xd1, 0xd5, // IID15430 - 0x49, 0xc1, 0xd5, 0x02, // IID15431 - 0x49, 0xc1, 0xd5, 0x04, // IID15432 - 0x49, 0xc1, 0xd5, 0x08, // IID15433 - 0x49, 0xc1, 0xd5, 0x10, // IID15434 - 0x49, 0xd1, 0xd6, // IID15435 - 0x49, 0xc1, 0xd6, 0x02, // IID15436 - 0x49, 0xc1, 0xd6, 0x04, // IID15437 - 0x49, 0xc1, 0xd6, 0x08, // IID15438 - 0x49, 0xc1, 0xd6, 0x10, // IID15439 - 0x49, 0xd1, 0xd7, // IID15440 - 0x49, 0xc1, 0xd7, 0x02, // IID15441 - 0x49, 0xc1, 0xd7, 0x04, // IID15442 - 0x49, 0xc1, 0xd7, 0x08, // IID15443 - 0x49, 0xc1, 0xd7, 0x10, // IID15444 - 0xd5, 0x18, 0xd1, 0xd0, // IID15445 - 0xd5, 0x18, 0xc1, 0xd0, 0x02, // IID15446 - 0xd5, 0x18, 0xc1, 0xd0, 0x04, // IID15447 - 0xd5, 0x18, 0xc1, 0xd0, 0x08, // IID15448 - 0xd5, 0x18, 0xc1, 0xd0, 0x10, // IID15449 - 0xd5, 0x18, 0xd1, 0xd1, // IID15450 - 0xd5, 0x18, 0xc1, 0xd1, 0x02, // IID15451 - 0xd5, 0x18, 0xc1, 0xd1, 0x04, // IID15452 - 0xd5, 0x18, 0xc1, 0xd1, 0x08, // IID15453 - 0xd5, 0x18, 0xc1, 0xd1, 0x10, // IID15454 - 0xd5, 0x18, 0xd1, 0xd2, // IID15455 - 0xd5, 0x18, 0xc1, 0xd2, 0x02, // IID15456 - 0xd5, 0x18, 0xc1, 0xd2, 0x04, // IID15457 - 0xd5, 0x18, 0xc1, 0xd2, 0x08, // IID15458 - 0xd5, 0x18, 0xc1, 0xd2, 0x10, // IID15459 - 0xd5, 0x18, 0xd1, 0xd3, // IID15460 - 0xd5, 0x18, 0xc1, 0xd3, 0x02, // IID15461 - 0xd5, 0x18, 0xc1, 0xd3, 0x04, // IID15462 - 0xd5, 0x18, 0xc1, 0xd3, 0x08, // IID15463 - 0xd5, 0x18, 0xc1, 0xd3, 0x10, // IID15464 - 0xd5, 0x18, 0xd1, 0xd4, // IID15465 - 0xd5, 0x18, 0xc1, 0xd4, 0x02, // IID15466 - 0xd5, 0x18, 0xc1, 0xd4, 0x04, // IID15467 - 0xd5, 0x18, 0xc1, 0xd4, 0x08, // IID15468 - 0xd5, 0x18, 0xc1, 0xd4, 0x10, // IID15469 - 0xd5, 0x18, 0xd1, 0xd5, // IID15470 - 0xd5, 0x18, 0xc1, 0xd5, 0x02, // IID15471 - 0xd5, 0x18, 0xc1, 0xd5, 0x04, // IID15472 - 0xd5, 0x18, 0xc1, 0xd5, 0x08, // IID15473 - 0xd5, 0x18, 0xc1, 0xd5, 0x10, // IID15474 - 0xd5, 0x18, 0xd1, 0xd6, // IID15475 - 0xd5, 0x18, 0xc1, 0xd6, 0x02, // IID15476 - 0xd5, 0x18, 0xc1, 0xd6, 0x04, // IID15477 - 0xd5, 0x18, 0xc1, 0xd6, 0x08, // IID15478 - 0xd5, 0x18, 0xc1, 0xd6, 0x10, // IID15479 - 0xd5, 0x18, 0xd1, 0xd7, // IID15480 - 0xd5, 0x18, 0xc1, 0xd7, 0x02, // IID15481 - 0xd5, 0x18, 0xc1, 0xd7, 0x04, // IID15482 - 0xd5, 0x18, 0xc1, 0xd7, 0x08, // IID15483 - 0xd5, 0x18, 0xc1, 0xd7, 0x10, // IID15484 - 0xd5, 0x19, 0xd1, 0xd0, // IID15485 - 0xd5, 0x19, 0xc1, 0xd0, 0x02, // IID15486 - 0xd5, 0x19, 0xc1, 0xd0, 0x04, // IID15487 - 0xd5, 0x19, 0xc1, 0xd0, 0x08, // IID15488 - 0xd5, 0x19, 0xc1, 0xd0, 0x10, // IID15489 - 0xd5, 0x19, 0xd1, 0xd1, // IID15490 - 0xd5, 0x19, 0xc1, 0xd1, 0x02, // IID15491 - 0xd5, 0x19, 0xc1, 0xd1, 0x04, // IID15492 - 0xd5, 0x19, 0xc1, 0xd1, 0x08, // IID15493 - 0xd5, 0x19, 0xc1, 0xd1, 0x10, // IID15494 - 0xd5, 0x19, 0xd1, 0xd2, // IID15495 - 0xd5, 0x19, 0xc1, 0xd2, 0x02, // IID15496 - 0xd5, 0x19, 0xc1, 0xd2, 0x04, // IID15497 - 0xd5, 0x19, 0xc1, 0xd2, 0x08, // IID15498 - 0xd5, 0x19, 0xc1, 0xd2, 0x10, // IID15499 - 0xd5, 0x19, 0xd1, 0xd3, // IID15500 - 0xd5, 0x19, 0xc1, 0xd3, 0x02, // IID15501 - 0xd5, 0x19, 0xc1, 0xd3, 0x04, // IID15502 - 0xd5, 0x19, 0xc1, 0xd3, 0x08, // IID15503 - 0xd5, 0x19, 0xc1, 0xd3, 0x10, // IID15504 - 0xd5, 0x19, 0xd1, 0xd4, // IID15505 - 0xd5, 0x19, 0xc1, 0xd4, 0x02, // IID15506 - 0xd5, 0x19, 0xc1, 0xd4, 0x04, // IID15507 - 0xd5, 0x19, 0xc1, 0xd4, 0x08, // IID15508 - 0xd5, 0x19, 0xc1, 0xd4, 0x10, // IID15509 - 0xd5, 0x19, 0xd1, 0xd5, // IID15510 - 0xd5, 0x19, 0xc1, 0xd5, 0x02, // IID15511 - 0xd5, 0x19, 0xc1, 0xd5, 0x04, // IID15512 - 0xd5, 0x19, 0xc1, 0xd5, 0x08, // IID15513 - 0xd5, 0x19, 0xc1, 0xd5, 0x10, // IID15514 - 0xd5, 0x19, 0xd1, 0xd6, // IID15515 - 0xd5, 0x19, 0xc1, 0xd6, 0x02, // IID15516 - 0xd5, 0x19, 0xc1, 0xd6, 0x04, // IID15517 - 0xd5, 0x19, 0xc1, 0xd6, 0x08, // IID15518 - 0xd5, 0x19, 0xc1, 0xd6, 0x10, // IID15519 - 0xd5, 0x19, 0xd1, 0xd7, // IID15520 - 0xd5, 0x19, 0xc1, 0xd7, 0x02, // IID15521 - 0xd5, 0x19, 0xc1, 0xd7, 0x04, // IID15522 - 0xd5, 0x19, 0xc1, 0xd7, 0x08, // IID15523 - 0xd5, 0x19, 0xc1, 0xd7, 0x10, // IID15524 - 0x48, 0xd1, 0xd9, // IID15525 - 0x48, 0xc1, 0xd9, 0x02, // IID15526 - 0x48, 0xc1, 0xd9, 0x04, // IID15527 - 0x48, 0xc1, 0xd9, 0x08, // IID15528 - 0x48, 0xc1, 0xd9, 0x10, // IID15529 - 0x48, 0xd1, 0xda, // IID15530 - 0x48, 0xc1, 0xda, 0x02, // IID15531 - 0x48, 0xc1, 0xda, 0x04, // IID15532 - 0x48, 0xc1, 0xda, 0x08, // IID15533 - 0x48, 0xc1, 0xda, 0x10, // IID15534 - 0x48, 0xd1, 0xdb, // IID15535 - 0x48, 0xc1, 0xdb, 0x02, // IID15536 - 0x48, 0xc1, 0xdb, 0x04, // IID15537 - 0x48, 0xc1, 0xdb, 0x08, // IID15538 - 0x48, 0xc1, 0xdb, 0x10, // IID15539 - 0x49, 0xd1, 0xd8, // IID15540 - 0x49, 0xc1, 0xd8, 0x02, // IID15541 - 0x49, 0xc1, 0xd8, 0x04, // IID15542 - 0x49, 0xc1, 0xd8, 0x08, // IID15543 - 0x49, 0xc1, 0xd8, 0x10, // IID15544 - 0x49, 0xd1, 0xd9, // IID15545 - 0x49, 0xc1, 0xd9, 0x02, // IID15546 - 0x49, 0xc1, 0xd9, 0x04, // IID15547 - 0x49, 0xc1, 0xd9, 0x08, // IID15548 - 0x49, 0xc1, 0xd9, 0x10, // IID15549 - 0x49, 0xd1, 0xda, // IID15550 - 0x49, 0xc1, 0xda, 0x02, // IID15551 - 0x49, 0xc1, 0xda, 0x04, // IID15552 - 0x49, 0xc1, 0xda, 0x08, // IID15553 - 0x49, 0xc1, 0xda, 0x10, // IID15554 - 0x49, 0xd1, 0xdb, // IID15555 - 0x49, 0xc1, 0xdb, 0x02, // IID15556 - 0x49, 0xc1, 0xdb, 0x04, // IID15557 - 0x49, 0xc1, 0xdb, 0x08, // IID15558 - 0x49, 0xc1, 0xdb, 0x10, // IID15559 - 0x49, 0xd1, 0xdc, // IID15560 - 0x49, 0xc1, 0xdc, 0x02, // IID15561 - 0x49, 0xc1, 0xdc, 0x04, // IID15562 - 0x49, 0xc1, 0xdc, 0x08, // IID15563 - 0x49, 0xc1, 0xdc, 0x10, // IID15564 - 0x49, 0xd1, 0xdd, // IID15565 - 0x49, 0xc1, 0xdd, 0x02, // IID15566 - 0x49, 0xc1, 0xdd, 0x04, // IID15567 - 0x49, 0xc1, 0xdd, 0x08, // IID15568 - 0x49, 0xc1, 0xdd, 0x10, // IID15569 - 0x49, 0xd1, 0xde, // IID15570 - 0x49, 0xc1, 0xde, 0x02, // IID15571 - 0x49, 0xc1, 0xde, 0x04, // IID15572 - 0x49, 0xc1, 0xde, 0x08, // IID15573 - 0x49, 0xc1, 0xde, 0x10, // IID15574 - 0x49, 0xd1, 0xdf, // IID15575 - 0x49, 0xc1, 0xdf, 0x02, // IID15576 - 0x49, 0xc1, 0xdf, 0x04, // IID15577 - 0x49, 0xc1, 0xdf, 0x08, // IID15578 - 0x49, 0xc1, 0xdf, 0x10, // IID15579 - 0xd5, 0x18, 0xd1, 0xd8, // IID15580 - 0xd5, 0x18, 0xc1, 0xd8, 0x02, // IID15581 - 0xd5, 0x18, 0xc1, 0xd8, 0x04, // IID15582 - 0xd5, 0x18, 0xc1, 0xd8, 0x08, // IID15583 - 0xd5, 0x18, 0xc1, 0xd8, 0x10, // IID15584 - 0xd5, 0x18, 0xd1, 0xd9, // IID15585 - 0xd5, 0x18, 0xc1, 0xd9, 0x02, // IID15586 - 0xd5, 0x18, 0xc1, 0xd9, 0x04, // IID15587 - 0xd5, 0x18, 0xc1, 0xd9, 0x08, // IID15588 - 0xd5, 0x18, 0xc1, 0xd9, 0x10, // IID15589 - 0xd5, 0x18, 0xd1, 0xda, // IID15590 - 0xd5, 0x18, 0xc1, 0xda, 0x02, // IID15591 - 0xd5, 0x18, 0xc1, 0xda, 0x04, // IID15592 - 0xd5, 0x18, 0xc1, 0xda, 0x08, // IID15593 - 0xd5, 0x18, 0xc1, 0xda, 0x10, // IID15594 - 0xd5, 0x18, 0xd1, 0xdb, // IID15595 - 0xd5, 0x18, 0xc1, 0xdb, 0x02, // IID15596 - 0xd5, 0x18, 0xc1, 0xdb, 0x04, // IID15597 - 0xd5, 0x18, 0xc1, 0xdb, 0x08, // IID15598 - 0xd5, 0x18, 0xc1, 0xdb, 0x10, // IID15599 - 0xd5, 0x18, 0xd1, 0xdc, // IID15600 - 0xd5, 0x18, 0xc1, 0xdc, 0x02, // IID15601 - 0xd5, 0x18, 0xc1, 0xdc, 0x04, // IID15602 - 0xd5, 0x18, 0xc1, 0xdc, 0x08, // IID15603 - 0xd5, 0x18, 0xc1, 0xdc, 0x10, // IID15604 - 0xd5, 0x18, 0xd1, 0xdd, // IID15605 - 0xd5, 0x18, 0xc1, 0xdd, 0x02, // IID15606 - 0xd5, 0x18, 0xc1, 0xdd, 0x04, // IID15607 - 0xd5, 0x18, 0xc1, 0xdd, 0x08, // IID15608 - 0xd5, 0x18, 0xc1, 0xdd, 0x10, // IID15609 - 0xd5, 0x18, 0xd1, 0xde, // IID15610 - 0xd5, 0x18, 0xc1, 0xde, 0x02, // IID15611 - 0xd5, 0x18, 0xc1, 0xde, 0x04, // IID15612 - 0xd5, 0x18, 0xc1, 0xde, 0x08, // IID15613 - 0xd5, 0x18, 0xc1, 0xde, 0x10, // IID15614 - 0xd5, 0x18, 0xd1, 0xdf, // IID15615 - 0xd5, 0x18, 0xc1, 0xdf, 0x02, // IID15616 - 0xd5, 0x18, 0xc1, 0xdf, 0x04, // IID15617 - 0xd5, 0x18, 0xc1, 0xdf, 0x08, // IID15618 - 0xd5, 0x18, 0xc1, 0xdf, 0x10, // IID15619 - 0xd5, 0x19, 0xd1, 0xd8, // IID15620 - 0xd5, 0x19, 0xc1, 0xd8, 0x02, // IID15621 - 0xd5, 0x19, 0xc1, 0xd8, 0x04, // IID15622 - 0xd5, 0x19, 0xc1, 0xd8, 0x08, // IID15623 - 0xd5, 0x19, 0xc1, 0xd8, 0x10, // IID15624 - 0xd5, 0x19, 0xd1, 0xd9, // IID15625 - 0xd5, 0x19, 0xc1, 0xd9, 0x02, // IID15626 - 0xd5, 0x19, 0xc1, 0xd9, 0x04, // IID15627 - 0xd5, 0x19, 0xc1, 0xd9, 0x08, // IID15628 - 0xd5, 0x19, 0xc1, 0xd9, 0x10, // IID15629 - 0xd5, 0x19, 0xd1, 0xda, // IID15630 - 0xd5, 0x19, 0xc1, 0xda, 0x02, // IID15631 - 0xd5, 0x19, 0xc1, 0xda, 0x04, // IID15632 - 0xd5, 0x19, 0xc1, 0xda, 0x08, // IID15633 - 0xd5, 0x19, 0xc1, 0xda, 0x10, // IID15634 - 0xd5, 0x19, 0xd1, 0xdb, // IID15635 - 0xd5, 0x19, 0xc1, 0xdb, 0x02, // IID15636 - 0xd5, 0x19, 0xc1, 0xdb, 0x04, // IID15637 - 0xd5, 0x19, 0xc1, 0xdb, 0x08, // IID15638 - 0xd5, 0x19, 0xc1, 0xdb, 0x10, // IID15639 - 0xd5, 0x19, 0xd1, 0xdc, // IID15640 - 0xd5, 0x19, 0xc1, 0xdc, 0x02, // IID15641 - 0xd5, 0x19, 0xc1, 0xdc, 0x04, // IID15642 - 0xd5, 0x19, 0xc1, 0xdc, 0x08, // IID15643 - 0xd5, 0x19, 0xc1, 0xdc, 0x10, // IID15644 - 0xd5, 0x19, 0xd1, 0xdd, // IID15645 - 0xd5, 0x19, 0xc1, 0xdd, 0x02, // IID15646 - 0xd5, 0x19, 0xc1, 0xdd, 0x04, // IID15647 - 0xd5, 0x19, 0xc1, 0xdd, 0x08, // IID15648 - 0xd5, 0x19, 0xc1, 0xdd, 0x10, // IID15649 - 0xd5, 0x19, 0xd1, 0xde, // IID15650 - 0xd5, 0x19, 0xc1, 0xde, 0x02, // IID15651 - 0xd5, 0x19, 0xc1, 0xde, 0x04, // IID15652 - 0xd5, 0x19, 0xc1, 0xde, 0x08, // IID15653 - 0xd5, 0x19, 0xc1, 0xde, 0x10, // IID15654 - 0xd5, 0x19, 0xd1, 0xdf, // IID15655 - 0xd5, 0x19, 0xc1, 0xdf, 0x02, // IID15656 - 0xd5, 0x19, 0xc1, 0xdf, 0x04, // IID15657 - 0xd5, 0x19, 0xc1, 0xdf, 0x08, // IID15658 - 0xd5, 0x19, 0xc1, 0xdf, 0x10, // IID15659 - 0x48, 0xd1, 0xc1, // IID15660 - 0x48, 0xc1, 0xc1, 0x02, // IID15661 - 0x48, 0xc1, 0xc1, 0x04, // IID15662 - 0x48, 0xc1, 0xc1, 0x08, // IID15663 - 0x48, 0xc1, 0xc1, 0x10, // IID15664 - 0x48, 0xd1, 0xc2, // IID15665 - 0x48, 0xc1, 0xc2, 0x02, // IID15666 - 0x48, 0xc1, 0xc2, 0x04, // IID15667 - 0x48, 0xc1, 0xc2, 0x08, // IID15668 - 0x48, 0xc1, 0xc2, 0x10, // IID15669 - 0x48, 0xd1, 0xc3, // IID15670 - 0x48, 0xc1, 0xc3, 0x02, // IID15671 - 0x48, 0xc1, 0xc3, 0x04, // IID15672 - 0x48, 0xc1, 0xc3, 0x08, // IID15673 - 0x48, 0xc1, 0xc3, 0x10, // IID15674 - 0x49, 0xd1, 0xc0, // IID15675 - 0x49, 0xc1, 0xc0, 0x02, // IID15676 - 0x49, 0xc1, 0xc0, 0x04, // IID15677 - 0x49, 0xc1, 0xc0, 0x08, // IID15678 - 0x49, 0xc1, 0xc0, 0x10, // IID15679 - 0x49, 0xd1, 0xc1, // IID15680 - 0x49, 0xc1, 0xc1, 0x02, // IID15681 - 0x49, 0xc1, 0xc1, 0x04, // IID15682 - 0x49, 0xc1, 0xc1, 0x08, // IID15683 - 0x49, 0xc1, 0xc1, 0x10, // IID15684 - 0x49, 0xd1, 0xc2, // IID15685 - 0x49, 0xc1, 0xc2, 0x02, // IID15686 - 0x49, 0xc1, 0xc2, 0x04, // IID15687 - 0x49, 0xc1, 0xc2, 0x08, // IID15688 - 0x49, 0xc1, 0xc2, 0x10, // IID15689 - 0x49, 0xd1, 0xc3, // IID15690 - 0x49, 0xc1, 0xc3, 0x02, // IID15691 - 0x49, 0xc1, 0xc3, 0x04, // IID15692 - 0x49, 0xc1, 0xc3, 0x08, // IID15693 - 0x49, 0xc1, 0xc3, 0x10, // IID15694 - 0x49, 0xd1, 0xc4, // IID15695 - 0x49, 0xc1, 0xc4, 0x02, // IID15696 - 0x49, 0xc1, 0xc4, 0x04, // IID15697 - 0x49, 0xc1, 0xc4, 0x08, // IID15698 - 0x49, 0xc1, 0xc4, 0x10, // IID15699 - 0x49, 0xd1, 0xc5, // IID15700 - 0x49, 0xc1, 0xc5, 0x02, // IID15701 - 0x49, 0xc1, 0xc5, 0x04, // IID15702 - 0x49, 0xc1, 0xc5, 0x08, // IID15703 - 0x49, 0xc1, 0xc5, 0x10, // IID15704 - 0x49, 0xd1, 0xc6, // IID15705 - 0x49, 0xc1, 0xc6, 0x02, // IID15706 - 0x49, 0xc1, 0xc6, 0x04, // IID15707 - 0x49, 0xc1, 0xc6, 0x08, // IID15708 - 0x49, 0xc1, 0xc6, 0x10, // IID15709 - 0x49, 0xd1, 0xc7, // IID15710 - 0x49, 0xc1, 0xc7, 0x02, // IID15711 - 0x49, 0xc1, 0xc7, 0x04, // IID15712 - 0x49, 0xc1, 0xc7, 0x08, // IID15713 - 0x49, 0xc1, 0xc7, 0x10, // IID15714 - 0xd5, 0x18, 0xd1, 0xc0, // IID15715 - 0xd5, 0x18, 0xc1, 0xc0, 0x02, // IID15716 - 0xd5, 0x18, 0xc1, 0xc0, 0x04, // IID15717 - 0xd5, 0x18, 0xc1, 0xc0, 0x08, // IID15718 - 0xd5, 0x18, 0xc1, 0xc0, 0x10, // IID15719 - 0xd5, 0x18, 0xd1, 0xc1, // IID15720 - 0xd5, 0x18, 0xc1, 0xc1, 0x02, // IID15721 - 0xd5, 0x18, 0xc1, 0xc1, 0x04, // IID15722 - 0xd5, 0x18, 0xc1, 0xc1, 0x08, // IID15723 - 0xd5, 0x18, 0xc1, 0xc1, 0x10, // IID15724 - 0xd5, 0x18, 0xd1, 0xc2, // IID15725 - 0xd5, 0x18, 0xc1, 0xc2, 0x02, // IID15726 - 0xd5, 0x18, 0xc1, 0xc2, 0x04, // IID15727 - 0xd5, 0x18, 0xc1, 0xc2, 0x08, // IID15728 - 0xd5, 0x18, 0xc1, 0xc2, 0x10, // IID15729 - 0xd5, 0x18, 0xd1, 0xc3, // IID15730 - 0xd5, 0x18, 0xc1, 0xc3, 0x02, // IID15731 - 0xd5, 0x18, 0xc1, 0xc3, 0x04, // IID15732 - 0xd5, 0x18, 0xc1, 0xc3, 0x08, // IID15733 - 0xd5, 0x18, 0xc1, 0xc3, 0x10, // IID15734 - 0xd5, 0x18, 0xd1, 0xc4, // IID15735 - 0xd5, 0x18, 0xc1, 0xc4, 0x02, // IID15736 - 0xd5, 0x18, 0xc1, 0xc4, 0x04, // IID15737 - 0xd5, 0x18, 0xc1, 0xc4, 0x08, // IID15738 - 0xd5, 0x18, 0xc1, 0xc4, 0x10, // IID15739 - 0xd5, 0x18, 0xd1, 0xc5, // IID15740 - 0xd5, 0x18, 0xc1, 0xc5, 0x02, // IID15741 - 0xd5, 0x18, 0xc1, 0xc5, 0x04, // IID15742 - 0xd5, 0x18, 0xc1, 0xc5, 0x08, // IID15743 - 0xd5, 0x18, 0xc1, 0xc5, 0x10, // IID15744 - 0xd5, 0x18, 0xd1, 0xc6, // IID15745 - 0xd5, 0x18, 0xc1, 0xc6, 0x02, // IID15746 - 0xd5, 0x18, 0xc1, 0xc6, 0x04, // IID15747 - 0xd5, 0x18, 0xc1, 0xc6, 0x08, // IID15748 - 0xd5, 0x18, 0xc1, 0xc6, 0x10, // IID15749 - 0xd5, 0x18, 0xd1, 0xc7, // IID15750 - 0xd5, 0x18, 0xc1, 0xc7, 0x02, // IID15751 - 0xd5, 0x18, 0xc1, 0xc7, 0x04, // IID15752 - 0xd5, 0x18, 0xc1, 0xc7, 0x08, // IID15753 - 0xd5, 0x18, 0xc1, 0xc7, 0x10, // IID15754 - 0xd5, 0x19, 0xd1, 0xc0, // IID15755 - 0xd5, 0x19, 0xc1, 0xc0, 0x02, // IID15756 - 0xd5, 0x19, 0xc1, 0xc0, 0x04, // IID15757 - 0xd5, 0x19, 0xc1, 0xc0, 0x08, // IID15758 - 0xd5, 0x19, 0xc1, 0xc0, 0x10, // IID15759 - 0xd5, 0x19, 0xd1, 0xc1, // IID15760 - 0xd5, 0x19, 0xc1, 0xc1, 0x02, // IID15761 - 0xd5, 0x19, 0xc1, 0xc1, 0x04, // IID15762 - 0xd5, 0x19, 0xc1, 0xc1, 0x08, // IID15763 - 0xd5, 0x19, 0xc1, 0xc1, 0x10, // IID15764 - 0xd5, 0x19, 0xd1, 0xc2, // IID15765 - 0xd5, 0x19, 0xc1, 0xc2, 0x02, // IID15766 - 0xd5, 0x19, 0xc1, 0xc2, 0x04, // IID15767 - 0xd5, 0x19, 0xc1, 0xc2, 0x08, // IID15768 - 0xd5, 0x19, 0xc1, 0xc2, 0x10, // IID15769 - 0xd5, 0x19, 0xd1, 0xc3, // IID15770 - 0xd5, 0x19, 0xc1, 0xc3, 0x02, // IID15771 - 0xd5, 0x19, 0xc1, 0xc3, 0x04, // IID15772 - 0xd5, 0x19, 0xc1, 0xc3, 0x08, // IID15773 - 0xd5, 0x19, 0xc1, 0xc3, 0x10, // IID15774 - 0xd5, 0x19, 0xd1, 0xc4, // IID15775 - 0xd5, 0x19, 0xc1, 0xc4, 0x02, // IID15776 - 0xd5, 0x19, 0xc1, 0xc4, 0x04, // IID15777 - 0xd5, 0x19, 0xc1, 0xc4, 0x08, // IID15778 - 0xd5, 0x19, 0xc1, 0xc4, 0x10, // IID15779 - 0xd5, 0x19, 0xd1, 0xc5, // IID15780 - 0xd5, 0x19, 0xc1, 0xc5, 0x02, // IID15781 - 0xd5, 0x19, 0xc1, 0xc5, 0x04, // IID15782 - 0xd5, 0x19, 0xc1, 0xc5, 0x08, // IID15783 - 0xd5, 0x19, 0xc1, 0xc5, 0x10, // IID15784 - 0xd5, 0x19, 0xd1, 0xc6, // IID15785 - 0xd5, 0x19, 0xc1, 0xc6, 0x02, // IID15786 - 0xd5, 0x19, 0xc1, 0xc6, 0x04, // IID15787 - 0xd5, 0x19, 0xc1, 0xc6, 0x08, // IID15788 - 0xd5, 0x19, 0xc1, 0xc6, 0x10, // IID15789 - 0xd5, 0x19, 0xd1, 0xc7, // IID15790 - 0xd5, 0x19, 0xc1, 0xc7, 0x02, // IID15791 - 0xd5, 0x19, 0xc1, 0xc7, 0x04, // IID15792 - 0xd5, 0x19, 0xc1, 0xc7, 0x08, // IID15793 - 0xd5, 0x19, 0xc1, 0xc7, 0x10, // IID15794 - 0x48, 0xd1, 0xc9, // IID15795 - 0x48, 0xc1, 0xc9, 0x02, // IID15796 - 0x48, 0xc1, 0xc9, 0x04, // IID15797 - 0x48, 0xc1, 0xc9, 0x08, // IID15798 - 0x48, 0xc1, 0xc9, 0x10, // IID15799 - 0x48, 0xd1, 0xca, // IID15800 - 0x48, 0xc1, 0xca, 0x02, // IID15801 - 0x48, 0xc1, 0xca, 0x04, // IID15802 - 0x48, 0xc1, 0xca, 0x08, // IID15803 - 0x48, 0xc1, 0xca, 0x10, // IID15804 - 0x48, 0xd1, 0xcb, // IID15805 - 0x48, 0xc1, 0xcb, 0x02, // IID15806 - 0x48, 0xc1, 0xcb, 0x04, // IID15807 - 0x48, 0xc1, 0xcb, 0x08, // IID15808 - 0x48, 0xc1, 0xcb, 0x10, // IID15809 - 0x49, 0xd1, 0xc8, // IID15810 - 0x49, 0xc1, 0xc8, 0x02, // IID15811 - 0x49, 0xc1, 0xc8, 0x04, // IID15812 - 0x49, 0xc1, 0xc8, 0x08, // IID15813 - 0x49, 0xc1, 0xc8, 0x10, // IID15814 - 0x49, 0xd1, 0xc9, // IID15815 - 0x49, 0xc1, 0xc9, 0x02, // IID15816 - 0x49, 0xc1, 0xc9, 0x04, // IID15817 - 0x49, 0xc1, 0xc9, 0x08, // IID15818 - 0x49, 0xc1, 0xc9, 0x10, // IID15819 - 0x49, 0xd1, 0xca, // IID15820 - 0x49, 0xc1, 0xca, 0x02, // IID15821 - 0x49, 0xc1, 0xca, 0x04, // IID15822 - 0x49, 0xc1, 0xca, 0x08, // IID15823 - 0x49, 0xc1, 0xca, 0x10, // IID15824 - 0x49, 0xd1, 0xcb, // IID15825 - 0x49, 0xc1, 0xcb, 0x02, // IID15826 - 0x49, 0xc1, 0xcb, 0x04, // IID15827 - 0x49, 0xc1, 0xcb, 0x08, // IID15828 - 0x49, 0xc1, 0xcb, 0x10, // IID15829 - 0x49, 0xd1, 0xcc, // IID15830 - 0x49, 0xc1, 0xcc, 0x02, // IID15831 - 0x49, 0xc1, 0xcc, 0x04, // IID15832 - 0x49, 0xc1, 0xcc, 0x08, // IID15833 - 0x49, 0xc1, 0xcc, 0x10, // IID15834 - 0x49, 0xd1, 0xcd, // IID15835 - 0x49, 0xc1, 0xcd, 0x02, // IID15836 - 0x49, 0xc1, 0xcd, 0x04, // IID15837 - 0x49, 0xc1, 0xcd, 0x08, // IID15838 - 0x49, 0xc1, 0xcd, 0x10, // IID15839 - 0x49, 0xd1, 0xce, // IID15840 - 0x49, 0xc1, 0xce, 0x02, // IID15841 - 0x49, 0xc1, 0xce, 0x04, // IID15842 - 0x49, 0xc1, 0xce, 0x08, // IID15843 - 0x49, 0xc1, 0xce, 0x10, // IID15844 - 0x49, 0xd1, 0xcf, // IID15845 - 0x49, 0xc1, 0xcf, 0x02, // IID15846 - 0x49, 0xc1, 0xcf, 0x04, // IID15847 - 0x49, 0xc1, 0xcf, 0x08, // IID15848 - 0x49, 0xc1, 0xcf, 0x10, // IID15849 - 0xd5, 0x18, 0xd1, 0xc8, // IID15850 - 0xd5, 0x18, 0xc1, 0xc8, 0x02, // IID15851 - 0xd5, 0x18, 0xc1, 0xc8, 0x04, // IID15852 - 0xd5, 0x18, 0xc1, 0xc8, 0x08, // IID15853 - 0xd5, 0x18, 0xc1, 0xc8, 0x10, // IID15854 - 0xd5, 0x18, 0xd1, 0xc9, // IID15855 - 0xd5, 0x18, 0xc1, 0xc9, 0x02, // IID15856 - 0xd5, 0x18, 0xc1, 0xc9, 0x04, // IID15857 - 0xd5, 0x18, 0xc1, 0xc9, 0x08, // IID15858 - 0xd5, 0x18, 0xc1, 0xc9, 0x10, // IID15859 - 0xd5, 0x18, 0xd1, 0xca, // IID15860 - 0xd5, 0x18, 0xc1, 0xca, 0x02, // IID15861 - 0xd5, 0x18, 0xc1, 0xca, 0x04, // IID15862 - 0xd5, 0x18, 0xc1, 0xca, 0x08, // IID15863 - 0xd5, 0x18, 0xc1, 0xca, 0x10, // IID15864 - 0xd5, 0x18, 0xd1, 0xcb, // IID15865 - 0xd5, 0x18, 0xc1, 0xcb, 0x02, // IID15866 - 0xd5, 0x18, 0xc1, 0xcb, 0x04, // IID15867 - 0xd5, 0x18, 0xc1, 0xcb, 0x08, // IID15868 - 0xd5, 0x18, 0xc1, 0xcb, 0x10, // IID15869 - 0xd5, 0x18, 0xd1, 0xcc, // IID15870 - 0xd5, 0x18, 0xc1, 0xcc, 0x02, // IID15871 - 0xd5, 0x18, 0xc1, 0xcc, 0x04, // IID15872 - 0xd5, 0x18, 0xc1, 0xcc, 0x08, // IID15873 - 0xd5, 0x18, 0xc1, 0xcc, 0x10, // IID15874 - 0xd5, 0x18, 0xd1, 0xcd, // IID15875 - 0xd5, 0x18, 0xc1, 0xcd, 0x02, // IID15876 - 0xd5, 0x18, 0xc1, 0xcd, 0x04, // IID15877 - 0xd5, 0x18, 0xc1, 0xcd, 0x08, // IID15878 - 0xd5, 0x18, 0xc1, 0xcd, 0x10, // IID15879 - 0xd5, 0x18, 0xd1, 0xce, // IID15880 - 0xd5, 0x18, 0xc1, 0xce, 0x02, // IID15881 - 0xd5, 0x18, 0xc1, 0xce, 0x04, // IID15882 - 0xd5, 0x18, 0xc1, 0xce, 0x08, // IID15883 - 0xd5, 0x18, 0xc1, 0xce, 0x10, // IID15884 - 0xd5, 0x18, 0xd1, 0xcf, // IID15885 - 0xd5, 0x18, 0xc1, 0xcf, 0x02, // IID15886 - 0xd5, 0x18, 0xc1, 0xcf, 0x04, // IID15887 - 0xd5, 0x18, 0xc1, 0xcf, 0x08, // IID15888 - 0xd5, 0x18, 0xc1, 0xcf, 0x10, // IID15889 - 0xd5, 0x19, 0xd1, 0xc8, // IID15890 - 0xd5, 0x19, 0xc1, 0xc8, 0x02, // IID15891 - 0xd5, 0x19, 0xc1, 0xc8, 0x04, // IID15892 - 0xd5, 0x19, 0xc1, 0xc8, 0x08, // IID15893 - 0xd5, 0x19, 0xc1, 0xc8, 0x10, // IID15894 - 0xd5, 0x19, 0xd1, 0xc9, // IID15895 - 0xd5, 0x19, 0xc1, 0xc9, 0x02, // IID15896 - 0xd5, 0x19, 0xc1, 0xc9, 0x04, // IID15897 - 0xd5, 0x19, 0xc1, 0xc9, 0x08, // IID15898 - 0xd5, 0x19, 0xc1, 0xc9, 0x10, // IID15899 - 0xd5, 0x19, 0xd1, 0xca, // IID15900 - 0xd5, 0x19, 0xc1, 0xca, 0x02, // IID15901 - 0xd5, 0x19, 0xc1, 0xca, 0x04, // IID15902 - 0xd5, 0x19, 0xc1, 0xca, 0x08, // IID15903 - 0xd5, 0x19, 0xc1, 0xca, 0x10, // IID15904 - 0xd5, 0x19, 0xd1, 0xcb, // IID15905 - 0xd5, 0x19, 0xc1, 0xcb, 0x02, // IID15906 - 0xd5, 0x19, 0xc1, 0xcb, 0x04, // IID15907 - 0xd5, 0x19, 0xc1, 0xcb, 0x08, // IID15908 - 0xd5, 0x19, 0xc1, 0xcb, 0x10, // IID15909 - 0xd5, 0x19, 0xd1, 0xcc, // IID15910 - 0xd5, 0x19, 0xc1, 0xcc, 0x02, // IID15911 - 0xd5, 0x19, 0xc1, 0xcc, 0x04, // IID15912 - 0xd5, 0x19, 0xc1, 0xcc, 0x08, // IID15913 - 0xd5, 0x19, 0xc1, 0xcc, 0x10, // IID15914 - 0xd5, 0x19, 0xd1, 0xcd, // IID15915 - 0xd5, 0x19, 0xc1, 0xcd, 0x02, // IID15916 - 0xd5, 0x19, 0xc1, 0xcd, 0x04, // IID15917 - 0xd5, 0x19, 0xc1, 0xcd, 0x08, // IID15918 - 0xd5, 0x19, 0xc1, 0xcd, 0x10, // IID15919 - 0xd5, 0x19, 0xd1, 0xce, // IID15920 - 0xd5, 0x19, 0xc1, 0xce, 0x02, // IID15921 - 0xd5, 0x19, 0xc1, 0xce, 0x04, // IID15922 - 0xd5, 0x19, 0xc1, 0xce, 0x08, // IID15923 - 0xd5, 0x19, 0xc1, 0xce, 0x10, // IID15924 - 0xd5, 0x19, 0xd1, 0xcf, // IID15925 - 0xd5, 0x19, 0xc1, 0xcf, 0x02, // IID15926 - 0xd5, 0x19, 0xc1, 0xcf, 0x04, // IID15927 - 0xd5, 0x19, 0xc1, 0xcf, 0x08, // IID15928 - 0xd5, 0x19, 0xc1, 0xcf, 0x10, // IID15929 - 0x48, 0xd1, 0xf9, // IID15930 - 0x48, 0xc1, 0xf9, 0x02, // IID15931 - 0x48, 0xc1, 0xf9, 0x04, // IID15932 - 0x48, 0xc1, 0xf9, 0x08, // IID15933 - 0x48, 0xc1, 0xf9, 0x10, // IID15934 - 0x48, 0xd1, 0xfa, // IID15935 - 0x48, 0xc1, 0xfa, 0x02, // IID15936 - 0x48, 0xc1, 0xfa, 0x04, // IID15937 - 0x48, 0xc1, 0xfa, 0x08, // IID15938 - 0x48, 0xc1, 0xfa, 0x10, // IID15939 - 0x48, 0xd1, 0xfb, // IID15940 - 0x48, 0xc1, 0xfb, 0x02, // IID15941 - 0x48, 0xc1, 0xfb, 0x04, // IID15942 - 0x48, 0xc1, 0xfb, 0x08, // IID15943 - 0x48, 0xc1, 0xfb, 0x10, // IID15944 - 0x49, 0xd1, 0xf8, // IID15945 - 0x49, 0xc1, 0xf8, 0x02, // IID15946 - 0x49, 0xc1, 0xf8, 0x04, // IID15947 - 0x49, 0xc1, 0xf8, 0x08, // IID15948 - 0x49, 0xc1, 0xf8, 0x10, // IID15949 - 0x49, 0xd1, 0xf9, // IID15950 - 0x49, 0xc1, 0xf9, 0x02, // IID15951 - 0x49, 0xc1, 0xf9, 0x04, // IID15952 - 0x49, 0xc1, 0xf9, 0x08, // IID15953 - 0x49, 0xc1, 0xf9, 0x10, // IID15954 - 0x49, 0xd1, 0xfa, // IID15955 - 0x49, 0xc1, 0xfa, 0x02, // IID15956 - 0x49, 0xc1, 0xfa, 0x04, // IID15957 - 0x49, 0xc1, 0xfa, 0x08, // IID15958 - 0x49, 0xc1, 0xfa, 0x10, // IID15959 - 0x49, 0xd1, 0xfb, // IID15960 - 0x49, 0xc1, 0xfb, 0x02, // IID15961 - 0x49, 0xc1, 0xfb, 0x04, // IID15962 - 0x49, 0xc1, 0xfb, 0x08, // IID15963 - 0x49, 0xc1, 0xfb, 0x10, // IID15964 - 0x49, 0xd1, 0xfc, // IID15965 - 0x49, 0xc1, 0xfc, 0x02, // IID15966 - 0x49, 0xc1, 0xfc, 0x04, // IID15967 - 0x49, 0xc1, 0xfc, 0x08, // IID15968 - 0x49, 0xc1, 0xfc, 0x10, // IID15969 - 0x49, 0xd1, 0xfd, // IID15970 - 0x49, 0xc1, 0xfd, 0x02, // IID15971 - 0x49, 0xc1, 0xfd, 0x04, // IID15972 - 0x49, 0xc1, 0xfd, 0x08, // IID15973 - 0x49, 0xc1, 0xfd, 0x10, // IID15974 - 0x49, 0xd1, 0xfe, // IID15975 - 0x49, 0xc1, 0xfe, 0x02, // IID15976 - 0x49, 0xc1, 0xfe, 0x04, // IID15977 - 0x49, 0xc1, 0xfe, 0x08, // IID15978 - 0x49, 0xc1, 0xfe, 0x10, // IID15979 - 0x49, 0xd1, 0xff, // IID15980 - 0x49, 0xc1, 0xff, 0x02, // IID15981 - 0x49, 0xc1, 0xff, 0x04, // IID15982 - 0x49, 0xc1, 0xff, 0x08, // IID15983 - 0x49, 0xc1, 0xff, 0x10, // IID15984 - 0xd5, 0x18, 0xd1, 0xf8, // IID15985 - 0xd5, 0x18, 0xc1, 0xf8, 0x02, // IID15986 - 0xd5, 0x18, 0xc1, 0xf8, 0x04, // IID15987 - 0xd5, 0x18, 0xc1, 0xf8, 0x08, // IID15988 - 0xd5, 0x18, 0xc1, 0xf8, 0x10, // IID15989 - 0xd5, 0x18, 0xd1, 0xf9, // IID15990 - 0xd5, 0x18, 0xc1, 0xf9, 0x02, // IID15991 - 0xd5, 0x18, 0xc1, 0xf9, 0x04, // IID15992 - 0xd5, 0x18, 0xc1, 0xf9, 0x08, // IID15993 - 0xd5, 0x18, 0xc1, 0xf9, 0x10, // IID15994 - 0xd5, 0x18, 0xd1, 0xfa, // IID15995 - 0xd5, 0x18, 0xc1, 0xfa, 0x02, // IID15996 - 0xd5, 0x18, 0xc1, 0xfa, 0x04, // IID15997 - 0xd5, 0x18, 0xc1, 0xfa, 0x08, // IID15998 - 0xd5, 0x18, 0xc1, 0xfa, 0x10, // IID15999 - 0xd5, 0x18, 0xd1, 0xfb, // IID16000 - 0xd5, 0x18, 0xc1, 0xfb, 0x02, // IID16001 - 0xd5, 0x18, 0xc1, 0xfb, 0x04, // IID16002 - 0xd5, 0x18, 0xc1, 0xfb, 0x08, // IID16003 - 0xd5, 0x18, 0xc1, 0xfb, 0x10, // IID16004 - 0xd5, 0x18, 0xd1, 0xfc, // IID16005 - 0xd5, 0x18, 0xc1, 0xfc, 0x02, // IID16006 - 0xd5, 0x18, 0xc1, 0xfc, 0x04, // IID16007 - 0xd5, 0x18, 0xc1, 0xfc, 0x08, // IID16008 - 0xd5, 0x18, 0xc1, 0xfc, 0x10, // IID16009 - 0xd5, 0x18, 0xd1, 0xfd, // IID16010 - 0xd5, 0x18, 0xc1, 0xfd, 0x02, // IID16011 - 0xd5, 0x18, 0xc1, 0xfd, 0x04, // IID16012 - 0xd5, 0x18, 0xc1, 0xfd, 0x08, // IID16013 - 0xd5, 0x18, 0xc1, 0xfd, 0x10, // IID16014 - 0xd5, 0x18, 0xd1, 0xfe, // IID16015 - 0xd5, 0x18, 0xc1, 0xfe, 0x02, // IID16016 - 0xd5, 0x18, 0xc1, 0xfe, 0x04, // IID16017 - 0xd5, 0x18, 0xc1, 0xfe, 0x08, // IID16018 - 0xd5, 0x18, 0xc1, 0xfe, 0x10, // IID16019 - 0xd5, 0x18, 0xd1, 0xff, // IID16020 - 0xd5, 0x18, 0xc1, 0xff, 0x02, // IID16021 - 0xd5, 0x18, 0xc1, 0xff, 0x04, // IID16022 - 0xd5, 0x18, 0xc1, 0xff, 0x08, // IID16023 - 0xd5, 0x18, 0xc1, 0xff, 0x10, // IID16024 - 0xd5, 0x19, 0xd1, 0xf8, // IID16025 - 0xd5, 0x19, 0xc1, 0xf8, 0x02, // IID16026 - 0xd5, 0x19, 0xc1, 0xf8, 0x04, // IID16027 - 0xd5, 0x19, 0xc1, 0xf8, 0x08, // IID16028 - 0xd5, 0x19, 0xc1, 0xf8, 0x10, // IID16029 - 0xd5, 0x19, 0xd1, 0xf9, // IID16030 - 0xd5, 0x19, 0xc1, 0xf9, 0x02, // IID16031 - 0xd5, 0x19, 0xc1, 0xf9, 0x04, // IID16032 - 0xd5, 0x19, 0xc1, 0xf9, 0x08, // IID16033 - 0xd5, 0x19, 0xc1, 0xf9, 0x10, // IID16034 - 0xd5, 0x19, 0xd1, 0xfa, // IID16035 - 0xd5, 0x19, 0xc1, 0xfa, 0x02, // IID16036 - 0xd5, 0x19, 0xc1, 0xfa, 0x04, // IID16037 - 0xd5, 0x19, 0xc1, 0xfa, 0x08, // IID16038 - 0xd5, 0x19, 0xc1, 0xfa, 0x10, // IID16039 - 0xd5, 0x19, 0xd1, 0xfb, // IID16040 - 0xd5, 0x19, 0xc1, 0xfb, 0x02, // IID16041 - 0xd5, 0x19, 0xc1, 0xfb, 0x04, // IID16042 - 0xd5, 0x19, 0xc1, 0xfb, 0x08, // IID16043 - 0xd5, 0x19, 0xc1, 0xfb, 0x10, // IID16044 - 0xd5, 0x19, 0xd1, 0xfc, // IID16045 - 0xd5, 0x19, 0xc1, 0xfc, 0x02, // IID16046 - 0xd5, 0x19, 0xc1, 0xfc, 0x04, // IID16047 - 0xd5, 0x19, 0xc1, 0xfc, 0x08, // IID16048 - 0xd5, 0x19, 0xc1, 0xfc, 0x10, // IID16049 - 0xd5, 0x19, 0xd1, 0xfd, // IID16050 - 0xd5, 0x19, 0xc1, 0xfd, 0x02, // IID16051 - 0xd5, 0x19, 0xc1, 0xfd, 0x04, // IID16052 - 0xd5, 0x19, 0xc1, 0xfd, 0x08, // IID16053 - 0xd5, 0x19, 0xc1, 0xfd, 0x10, // IID16054 - 0xd5, 0x19, 0xd1, 0xfe, // IID16055 - 0xd5, 0x19, 0xc1, 0xfe, 0x02, // IID16056 - 0xd5, 0x19, 0xc1, 0xfe, 0x04, // IID16057 - 0xd5, 0x19, 0xc1, 0xfe, 0x08, // IID16058 - 0xd5, 0x19, 0xc1, 0xfe, 0x10, // IID16059 - 0xd5, 0x19, 0xd1, 0xff, // IID16060 - 0xd5, 0x19, 0xc1, 0xff, 0x02, // IID16061 - 0xd5, 0x19, 0xc1, 0xff, 0x04, // IID16062 - 0xd5, 0x19, 0xc1, 0xff, 0x08, // IID16063 - 0xd5, 0x19, 0xc1, 0xff, 0x10, // IID16064 - 0x48, 0xd1, 0xe1, // IID16065 - 0x48, 0xc1, 0xe1, 0x02, // IID16066 - 0x48, 0xc1, 0xe1, 0x04, // IID16067 - 0x48, 0xc1, 0xe1, 0x08, // IID16068 - 0x48, 0xc1, 0xe1, 0x10, // IID16069 - 0x48, 0xd1, 0xe2, // IID16070 - 0x48, 0xc1, 0xe2, 0x02, // IID16071 - 0x48, 0xc1, 0xe2, 0x04, // IID16072 - 0x48, 0xc1, 0xe2, 0x08, // IID16073 - 0x48, 0xc1, 0xe2, 0x10, // IID16074 - 0x48, 0xd1, 0xe3, // IID16075 - 0x48, 0xc1, 0xe3, 0x02, // IID16076 - 0x48, 0xc1, 0xe3, 0x04, // IID16077 - 0x48, 0xc1, 0xe3, 0x08, // IID16078 - 0x48, 0xc1, 0xe3, 0x10, // IID16079 - 0x49, 0xd1, 0xe0, // IID16080 - 0x49, 0xc1, 0xe0, 0x02, // IID16081 - 0x49, 0xc1, 0xe0, 0x04, // IID16082 - 0x49, 0xc1, 0xe0, 0x08, // IID16083 - 0x49, 0xc1, 0xe0, 0x10, // IID16084 - 0x49, 0xd1, 0xe1, // IID16085 - 0x49, 0xc1, 0xe1, 0x02, // IID16086 - 0x49, 0xc1, 0xe1, 0x04, // IID16087 - 0x49, 0xc1, 0xe1, 0x08, // IID16088 - 0x49, 0xc1, 0xe1, 0x10, // IID16089 - 0x49, 0xd1, 0xe2, // IID16090 - 0x49, 0xc1, 0xe2, 0x02, // IID16091 - 0x49, 0xc1, 0xe2, 0x04, // IID16092 - 0x49, 0xc1, 0xe2, 0x08, // IID16093 - 0x49, 0xc1, 0xe2, 0x10, // IID16094 - 0x49, 0xd1, 0xe3, // IID16095 - 0x49, 0xc1, 0xe3, 0x02, // IID16096 - 0x49, 0xc1, 0xe3, 0x04, // IID16097 - 0x49, 0xc1, 0xe3, 0x08, // IID16098 - 0x49, 0xc1, 0xe3, 0x10, // IID16099 - 0x49, 0xd1, 0xe4, // IID16100 - 0x49, 0xc1, 0xe4, 0x02, // IID16101 - 0x49, 0xc1, 0xe4, 0x04, // IID16102 - 0x49, 0xc1, 0xe4, 0x08, // IID16103 - 0x49, 0xc1, 0xe4, 0x10, // IID16104 - 0x49, 0xd1, 0xe5, // IID16105 - 0x49, 0xc1, 0xe5, 0x02, // IID16106 - 0x49, 0xc1, 0xe5, 0x04, // IID16107 - 0x49, 0xc1, 0xe5, 0x08, // IID16108 - 0x49, 0xc1, 0xe5, 0x10, // IID16109 - 0x49, 0xd1, 0xe6, // IID16110 - 0x49, 0xc1, 0xe6, 0x02, // IID16111 - 0x49, 0xc1, 0xe6, 0x04, // IID16112 - 0x49, 0xc1, 0xe6, 0x08, // IID16113 - 0x49, 0xc1, 0xe6, 0x10, // IID16114 - 0x49, 0xd1, 0xe7, // IID16115 - 0x49, 0xc1, 0xe7, 0x02, // IID16116 - 0x49, 0xc1, 0xe7, 0x04, // IID16117 - 0x49, 0xc1, 0xe7, 0x08, // IID16118 - 0x49, 0xc1, 0xe7, 0x10, // IID16119 - 0xd5, 0x18, 0xd1, 0xe0, // IID16120 - 0xd5, 0x18, 0xc1, 0xe0, 0x02, // IID16121 - 0xd5, 0x18, 0xc1, 0xe0, 0x04, // IID16122 - 0xd5, 0x18, 0xc1, 0xe0, 0x08, // IID16123 - 0xd5, 0x18, 0xc1, 0xe0, 0x10, // IID16124 - 0xd5, 0x18, 0xd1, 0xe1, // IID16125 - 0xd5, 0x18, 0xc1, 0xe1, 0x02, // IID16126 - 0xd5, 0x18, 0xc1, 0xe1, 0x04, // IID16127 - 0xd5, 0x18, 0xc1, 0xe1, 0x08, // IID16128 - 0xd5, 0x18, 0xc1, 0xe1, 0x10, // IID16129 - 0xd5, 0x18, 0xd1, 0xe2, // IID16130 - 0xd5, 0x18, 0xc1, 0xe2, 0x02, // IID16131 - 0xd5, 0x18, 0xc1, 0xe2, 0x04, // IID16132 - 0xd5, 0x18, 0xc1, 0xe2, 0x08, // IID16133 - 0xd5, 0x18, 0xc1, 0xe2, 0x10, // IID16134 - 0xd5, 0x18, 0xd1, 0xe3, // IID16135 - 0xd5, 0x18, 0xc1, 0xe3, 0x02, // IID16136 - 0xd5, 0x18, 0xc1, 0xe3, 0x04, // IID16137 - 0xd5, 0x18, 0xc1, 0xe3, 0x08, // IID16138 - 0xd5, 0x18, 0xc1, 0xe3, 0x10, // IID16139 - 0xd5, 0x18, 0xd1, 0xe4, // IID16140 - 0xd5, 0x18, 0xc1, 0xe4, 0x02, // IID16141 - 0xd5, 0x18, 0xc1, 0xe4, 0x04, // IID16142 - 0xd5, 0x18, 0xc1, 0xe4, 0x08, // IID16143 - 0xd5, 0x18, 0xc1, 0xe4, 0x10, // IID16144 - 0xd5, 0x18, 0xd1, 0xe5, // IID16145 - 0xd5, 0x18, 0xc1, 0xe5, 0x02, // IID16146 - 0xd5, 0x18, 0xc1, 0xe5, 0x04, // IID16147 - 0xd5, 0x18, 0xc1, 0xe5, 0x08, // IID16148 - 0xd5, 0x18, 0xc1, 0xe5, 0x10, // IID16149 - 0xd5, 0x18, 0xd1, 0xe6, // IID16150 - 0xd5, 0x18, 0xc1, 0xe6, 0x02, // IID16151 - 0xd5, 0x18, 0xc1, 0xe6, 0x04, // IID16152 - 0xd5, 0x18, 0xc1, 0xe6, 0x08, // IID16153 - 0xd5, 0x18, 0xc1, 0xe6, 0x10, // IID16154 - 0xd5, 0x18, 0xd1, 0xe7, // IID16155 - 0xd5, 0x18, 0xc1, 0xe7, 0x02, // IID16156 - 0xd5, 0x18, 0xc1, 0xe7, 0x04, // IID16157 - 0xd5, 0x18, 0xc1, 0xe7, 0x08, // IID16158 - 0xd5, 0x18, 0xc1, 0xe7, 0x10, // IID16159 - 0xd5, 0x19, 0xd1, 0xe0, // IID16160 - 0xd5, 0x19, 0xc1, 0xe0, 0x02, // IID16161 - 0xd5, 0x19, 0xc1, 0xe0, 0x04, // IID16162 - 0xd5, 0x19, 0xc1, 0xe0, 0x08, // IID16163 - 0xd5, 0x19, 0xc1, 0xe0, 0x10, // IID16164 - 0xd5, 0x19, 0xd1, 0xe1, // IID16165 - 0xd5, 0x19, 0xc1, 0xe1, 0x02, // IID16166 - 0xd5, 0x19, 0xc1, 0xe1, 0x04, // IID16167 - 0xd5, 0x19, 0xc1, 0xe1, 0x08, // IID16168 - 0xd5, 0x19, 0xc1, 0xe1, 0x10, // IID16169 - 0xd5, 0x19, 0xd1, 0xe2, // IID16170 - 0xd5, 0x19, 0xc1, 0xe2, 0x02, // IID16171 - 0xd5, 0x19, 0xc1, 0xe2, 0x04, // IID16172 - 0xd5, 0x19, 0xc1, 0xe2, 0x08, // IID16173 - 0xd5, 0x19, 0xc1, 0xe2, 0x10, // IID16174 - 0xd5, 0x19, 0xd1, 0xe3, // IID16175 - 0xd5, 0x19, 0xc1, 0xe3, 0x02, // IID16176 - 0xd5, 0x19, 0xc1, 0xe3, 0x04, // IID16177 - 0xd5, 0x19, 0xc1, 0xe3, 0x08, // IID16178 - 0xd5, 0x19, 0xc1, 0xe3, 0x10, // IID16179 - 0xd5, 0x19, 0xd1, 0xe4, // IID16180 - 0xd5, 0x19, 0xc1, 0xe4, 0x02, // IID16181 - 0xd5, 0x19, 0xc1, 0xe4, 0x04, // IID16182 - 0xd5, 0x19, 0xc1, 0xe4, 0x08, // IID16183 - 0xd5, 0x19, 0xc1, 0xe4, 0x10, // IID16184 - 0xd5, 0x19, 0xd1, 0xe5, // IID16185 - 0xd5, 0x19, 0xc1, 0xe5, 0x02, // IID16186 - 0xd5, 0x19, 0xc1, 0xe5, 0x04, // IID16187 - 0xd5, 0x19, 0xc1, 0xe5, 0x08, // IID16188 - 0xd5, 0x19, 0xc1, 0xe5, 0x10, // IID16189 - 0xd5, 0x19, 0xd1, 0xe6, // IID16190 - 0xd5, 0x19, 0xc1, 0xe6, 0x02, // IID16191 - 0xd5, 0x19, 0xc1, 0xe6, 0x04, // IID16192 - 0xd5, 0x19, 0xc1, 0xe6, 0x08, // IID16193 - 0xd5, 0x19, 0xc1, 0xe6, 0x10, // IID16194 - 0xd5, 0x19, 0xd1, 0xe7, // IID16195 - 0xd5, 0x19, 0xc1, 0xe7, 0x02, // IID16196 - 0xd5, 0x19, 0xc1, 0xe7, 0x04, // IID16197 - 0xd5, 0x19, 0xc1, 0xe7, 0x08, // IID16198 - 0xd5, 0x19, 0xc1, 0xe7, 0x10, // IID16199 - 0x48, 0x83, 0xd9, 0x01, // IID16200 - 0x48, 0x83, 0xd9, 0x10, // IID16201 - 0x48, 0x81, 0xd9, 0x00, 0x01, 0x00, 0x00, // IID16202 - 0x48, 0x81, 0xd9, 0x00, 0x10, 0x00, 0x00, // IID16203 - 0x48, 0x81, 0xd9, 0x00, 0x00, 0x01, 0x00, // IID16204 - 0x48, 0x81, 0xd9, 0x00, 0x00, 0x10, 0x00, // IID16205 - 0x48, 0x81, 0xd9, 0x00, 0x00, 0x00, 0x01, // IID16206 - 0x48, 0x81, 0xd9, 0x00, 0x00, 0x00, 0x10, // IID16207 - 0x48, 0x83, 0xda, 0x01, // IID16208 - 0x48, 0x83, 0xda, 0x10, // IID16209 - 0x48, 0x81, 0xda, 0x00, 0x01, 0x00, 0x00, // IID16210 - 0x48, 0x81, 0xda, 0x00, 0x10, 0x00, 0x00, // IID16211 - 0x48, 0x81, 0xda, 0x00, 0x00, 0x01, 0x00, // IID16212 - 0x48, 0x81, 0xda, 0x00, 0x00, 0x10, 0x00, // IID16213 - 0x48, 0x81, 0xda, 0x00, 0x00, 0x00, 0x01, // IID16214 - 0x48, 0x81, 0xda, 0x00, 0x00, 0x00, 0x10, // IID16215 - 0x48, 0x83, 0xdb, 0x01, // IID16216 - 0x48, 0x83, 0xdb, 0x10, // IID16217 - 0x48, 0x81, 0xdb, 0x00, 0x01, 0x00, 0x00, // IID16218 - 0x48, 0x81, 0xdb, 0x00, 0x10, 0x00, 0x00, // IID16219 - 0x48, 0x81, 0xdb, 0x00, 0x00, 0x01, 0x00, // IID16220 - 0x48, 0x81, 0xdb, 0x00, 0x00, 0x10, 0x00, // IID16221 - 0x48, 0x81, 0xdb, 0x00, 0x00, 0x00, 0x01, // IID16222 - 0x48, 0x81, 0xdb, 0x00, 0x00, 0x00, 0x10, // IID16223 - 0x49, 0x83, 0xd8, 0x01, // IID16224 - 0x49, 0x83, 0xd8, 0x10, // IID16225 - 0x49, 0x81, 0xd8, 0x00, 0x01, 0x00, 0x00, // IID16226 - 0x49, 0x81, 0xd8, 0x00, 0x10, 0x00, 0x00, // IID16227 - 0x49, 0x81, 0xd8, 0x00, 0x00, 0x01, 0x00, // IID16228 - 0x49, 0x81, 0xd8, 0x00, 0x00, 0x10, 0x00, // IID16229 - 0x49, 0x81, 0xd8, 0x00, 0x00, 0x00, 0x01, // IID16230 - 0x49, 0x81, 0xd8, 0x00, 0x00, 0x00, 0x10, // IID16231 - 0x49, 0x83, 0xd9, 0x01, // IID16232 - 0x49, 0x83, 0xd9, 0x10, // IID16233 - 0x49, 0x81, 0xd9, 0x00, 0x01, 0x00, 0x00, // IID16234 - 0x49, 0x81, 0xd9, 0x00, 0x10, 0x00, 0x00, // IID16235 - 0x49, 0x81, 0xd9, 0x00, 0x00, 0x01, 0x00, // IID16236 - 0x49, 0x81, 0xd9, 0x00, 0x00, 0x10, 0x00, // IID16237 - 0x49, 0x81, 0xd9, 0x00, 0x00, 0x00, 0x01, // IID16238 - 0x49, 0x81, 0xd9, 0x00, 0x00, 0x00, 0x10, // IID16239 - 0x49, 0x83, 0xda, 0x01, // IID16240 - 0x49, 0x83, 0xda, 0x10, // IID16241 - 0x49, 0x81, 0xda, 0x00, 0x01, 0x00, 0x00, // IID16242 - 0x49, 0x81, 0xda, 0x00, 0x10, 0x00, 0x00, // IID16243 - 0x49, 0x81, 0xda, 0x00, 0x00, 0x01, 0x00, // IID16244 - 0x49, 0x81, 0xda, 0x00, 0x00, 0x10, 0x00, // IID16245 - 0x49, 0x81, 0xda, 0x00, 0x00, 0x00, 0x01, // IID16246 - 0x49, 0x81, 0xda, 0x00, 0x00, 0x00, 0x10, // IID16247 - 0x49, 0x83, 0xdb, 0x01, // IID16248 - 0x49, 0x83, 0xdb, 0x10, // IID16249 - 0x49, 0x81, 0xdb, 0x00, 0x01, 0x00, 0x00, // IID16250 - 0x49, 0x81, 0xdb, 0x00, 0x10, 0x00, 0x00, // IID16251 - 0x49, 0x81, 0xdb, 0x00, 0x00, 0x01, 0x00, // IID16252 - 0x49, 0x81, 0xdb, 0x00, 0x00, 0x10, 0x00, // IID16253 - 0x49, 0x81, 0xdb, 0x00, 0x00, 0x00, 0x01, // IID16254 - 0x49, 0x81, 0xdb, 0x00, 0x00, 0x00, 0x10, // IID16255 - 0x49, 0x83, 0xdc, 0x01, // IID16256 - 0x49, 0x83, 0xdc, 0x10, // IID16257 - 0x49, 0x81, 0xdc, 0x00, 0x01, 0x00, 0x00, // IID16258 - 0x49, 0x81, 0xdc, 0x00, 0x10, 0x00, 0x00, // IID16259 - 0x49, 0x81, 0xdc, 0x00, 0x00, 0x01, 0x00, // IID16260 - 0x49, 0x81, 0xdc, 0x00, 0x00, 0x10, 0x00, // IID16261 - 0x49, 0x81, 0xdc, 0x00, 0x00, 0x00, 0x01, // IID16262 - 0x49, 0x81, 0xdc, 0x00, 0x00, 0x00, 0x10, // IID16263 - 0x49, 0x83, 0xdd, 0x01, // IID16264 - 0x49, 0x83, 0xdd, 0x10, // IID16265 - 0x49, 0x81, 0xdd, 0x00, 0x01, 0x00, 0x00, // IID16266 - 0x49, 0x81, 0xdd, 0x00, 0x10, 0x00, 0x00, // IID16267 - 0x49, 0x81, 0xdd, 0x00, 0x00, 0x01, 0x00, // IID16268 - 0x49, 0x81, 0xdd, 0x00, 0x00, 0x10, 0x00, // IID16269 - 0x49, 0x81, 0xdd, 0x00, 0x00, 0x00, 0x01, // IID16270 - 0x49, 0x81, 0xdd, 0x00, 0x00, 0x00, 0x10, // IID16271 - 0x49, 0x83, 0xde, 0x01, // IID16272 - 0x49, 0x83, 0xde, 0x10, // IID16273 - 0x49, 0x81, 0xde, 0x00, 0x01, 0x00, 0x00, // IID16274 - 0x49, 0x81, 0xde, 0x00, 0x10, 0x00, 0x00, // IID16275 - 0x49, 0x81, 0xde, 0x00, 0x00, 0x01, 0x00, // IID16276 - 0x49, 0x81, 0xde, 0x00, 0x00, 0x10, 0x00, // IID16277 - 0x49, 0x81, 0xde, 0x00, 0x00, 0x00, 0x01, // IID16278 - 0x49, 0x81, 0xde, 0x00, 0x00, 0x00, 0x10, // IID16279 - 0x49, 0x83, 0xdf, 0x01, // IID16280 - 0x49, 0x83, 0xdf, 0x10, // IID16281 - 0x49, 0x81, 0xdf, 0x00, 0x01, 0x00, 0x00, // IID16282 - 0x49, 0x81, 0xdf, 0x00, 0x10, 0x00, 0x00, // IID16283 - 0x49, 0x81, 0xdf, 0x00, 0x00, 0x01, 0x00, // IID16284 - 0x49, 0x81, 0xdf, 0x00, 0x00, 0x10, 0x00, // IID16285 - 0x49, 0x81, 0xdf, 0x00, 0x00, 0x00, 0x01, // IID16286 - 0x49, 0x81, 0xdf, 0x00, 0x00, 0x00, 0x10, // IID16287 - 0xd5, 0x18, 0x83, 0xd8, 0x01, // IID16288 - 0xd5, 0x18, 0x83, 0xd8, 0x10, // IID16289 - 0xd5, 0x18, 0x81, 0xd8, 0x00, 0x01, 0x00, 0x00, // IID16290 - 0xd5, 0x18, 0x81, 0xd8, 0x00, 0x10, 0x00, 0x00, // IID16291 - 0xd5, 0x18, 0x81, 0xd8, 0x00, 0x00, 0x01, 0x00, // IID16292 - 0xd5, 0x18, 0x81, 0xd8, 0x00, 0x00, 0x10, 0x00, // IID16293 - 0xd5, 0x18, 0x81, 0xd8, 0x00, 0x00, 0x00, 0x01, // IID16294 - 0xd5, 0x18, 0x81, 0xd8, 0x00, 0x00, 0x00, 0x10, // IID16295 - 0xd5, 0x18, 0x83, 0xd9, 0x01, // IID16296 - 0xd5, 0x18, 0x83, 0xd9, 0x10, // IID16297 - 0xd5, 0x18, 0x81, 0xd9, 0x00, 0x01, 0x00, 0x00, // IID16298 - 0xd5, 0x18, 0x81, 0xd9, 0x00, 0x10, 0x00, 0x00, // IID16299 - 0xd5, 0x18, 0x81, 0xd9, 0x00, 0x00, 0x01, 0x00, // IID16300 - 0xd5, 0x18, 0x81, 0xd9, 0x00, 0x00, 0x10, 0x00, // IID16301 - 0xd5, 0x18, 0x81, 0xd9, 0x00, 0x00, 0x00, 0x01, // IID16302 - 0xd5, 0x18, 0x81, 0xd9, 0x00, 0x00, 0x00, 0x10, // IID16303 - 0xd5, 0x18, 0x83, 0xda, 0x01, // IID16304 - 0xd5, 0x18, 0x83, 0xda, 0x10, // IID16305 - 0xd5, 0x18, 0x81, 0xda, 0x00, 0x01, 0x00, 0x00, // IID16306 - 0xd5, 0x18, 0x81, 0xda, 0x00, 0x10, 0x00, 0x00, // IID16307 - 0xd5, 0x18, 0x81, 0xda, 0x00, 0x00, 0x01, 0x00, // IID16308 - 0xd5, 0x18, 0x81, 0xda, 0x00, 0x00, 0x10, 0x00, // IID16309 - 0xd5, 0x18, 0x81, 0xda, 0x00, 0x00, 0x00, 0x01, // IID16310 - 0xd5, 0x18, 0x81, 0xda, 0x00, 0x00, 0x00, 0x10, // IID16311 - 0xd5, 0x18, 0x83, 0xdb, 0x01, // IID16312 - 0xd5, 0x18, 0x83, 0xdb, 0x10, // IID16313 - 0xd5, 0x18, 0x81, 0xdb, 0x00, 0x01, 0x00, 0x00, // IID16314 - 0xd5, 0x18, 0x81, 0xdb, 0x00, 0x10, 0x00, 0x00, // IID16315 - 0xd5, 0x18, 0x81, 0xdb, 0x00, 0x00, 0x01, 0x00, // IID16316 - 0xd5, 0x18, 0x81, 0xdb, 0x00, 0x00, 0x10, 0x00, // IID16317 - 0xd5, 0x18, 0x81, 0xdb, 0x00, 0x00, 0x00, 0x01, // IID16318 - 0xd5, 0x18, 0x81, 0xdb, 0x00, 0x00, 0x00, 0x10, // IID16319 - 0xd5, 0x18, 0x83, 0xdc, 0x01, // IID16320 - 0xd5, 0x18, 0x83, 0xdc, 0x10, // IID16321 - 0xd5, 0x18, 0x81, 0xdc, 0x00, 0x01, 0x00, 0x00, // IID16322 - 0xd5, 0x18, 0x81, 0xdc, 0x00, 0x10, 0x00, 0x00, // IID16323 - 0xd5, 0x18, 0x81, 0xdc, 0x00, 0x00, 0x01, 0x00, // IID16324 - 0xd5, 0x18, 0x81, 0xdc, 0x00, 0x00, 0x10, 0x00, // IID16325 - 0xd5, 0x18, 0x81, 0xdc, 0x00, 0x00, 0x00, 0x01, // IID16326 - 0xd5, 0x18, 0x81, 0xdc, 0x00, 0x00, 0x00, 0x10, // IID16327 - 0xd5, 0x18, 0x83, 0xdd, 0x01, // IID16328 - 0xd5, 0x18, 0x83, 0xdd, 0x10, // IID16329 - 0xd5, 0x18, 0x81, 0xdd, 0x00, 0x01, 0x00, 0x00, // IID16330 - 0xd5, 0x18, 0x81, 0xdd, 0x00, 0x10, 0x00, 0x00, // IID16331 - 0xd5, 0x18, 0x81, 0xdd, 0x00, 0x00, 0x01, 0x00, // IID16332 - 0xd5, 0x18, 0x81, 0xdd, 0x00, 0x00, 0x10, 0x00, // IID16333 - 0xd5, 0x18, 0x81, 0xdd, 0x00, 0x00, 0x00, 0x01, // IID16334 - 0xd5, 0x18, 0x81, 0xdd, 0x00, 0x00, 0x00, 0x10, // IID16335 - 0xd5, 0x18, 0x83, 0xde, 0x01, // IID16336 - 0xd5, 0x18, 0x83, 0xde, 0x10, // IID16337 - 0xd5, 0x18, 0x81, 0xde, 0x00, 0x01, 0x00, 0x00, // IID16338 - 0xd5, 0x18, 0x81, 0xde, 0x00, 0x10, 0x00, 0x00, // IID16339 - 0xd5, 0x18, 0x81, 0xde, 0x00, 0x00, 0x01, 0x00, // IID16340 - 0xd5, 0x18, 0x81, 0xde, 0x00, 0x00, 0x10, 0x00, // IID16341 - 0xd5, 0x18, 0x81, 0xde, 0x00, 0x00, 0x00, 0x01, // IID16342 - 0xd5, 0x18, 0x81, 0xde, 0x00, 0x00, 0x00, 0x10, // IID16343 - 0xd5, 0x18, 0x83, 0xdf, 0x01, // IID16344 - 0xd5, 0x18, 0x83, 0xdf, 0x10, // IID16345 - 0xd5, 0x18, 0x81, 0xdf, 0x00, 0x01, 0x00, 0x00, // IID16346 - 0xd5, 0x18, 0x81, 0xdf, 0x00, 0x10, 0x00, 0x00, // IID16347 - 0xd5, 0x18, 0x81, 0xdf, 0x00, 0x00, 0x01, 0x00, // IID16348 - 0xd5, 0x18, 0x81, 0xdf, 0x00, 0x00, 0x10, 0x00, // IID16349 - 0xd5, 0x18, 0x81, 0xdf, 0x00, 0x00, 0x00, 0x01, // IID16350 - 0xd5, 0x18, 0x81, 0xdf, 0x00, 0x00, 0x00, 0x10, // IID16351 - 0xd5, 0x19, 0x83, 0xd8, 0x01, // IID16352 - 0xd5, 0x19, 0x83, 0xd8, 0x10, // IID16353 - 0xd5, 0x19, 0x81, 0xd8, 0x00, 0x01, 0x00, 0x00, // IID16354 - 0xd5, 0x19, 0x81, 0xd8, 0x00, 0x10, 0x00, 0x00, // IID16355 - 0xd5, 0x19, 0x81, 0xd8, 0x00, 0x00, 0x01, 0x00, // IID16356 - 0xd5, 0x19, 0x81, 0xd8, 0x00, 0x00, 0x10, 0x00, // IID16357 - 0xd5, 0x19, 0x81, 0xd8, 0x00, 0x00, 0x00, 0x01, // IID16358 - 0xd5, 0x19, 0x81, 0xd8, 0x00, 0x00, 0x00, 0x10, // IID16359 - 0xd5, 0x19, 0x83, 0xd9, 0x01, // IID16360 - 0xd5, 0x19, 0x83, 0xd9, 0x10, // IID16361 - 0xd5, 0x19, 0x81, 0xd9, 0x00, 0x01, 0x00, 0x00, // IID16362 - 0xd5, 0x19, 0x81, 0xd9, 0x00, 0x10, 0x00, 0x00, // IID16363 - 0xd5, 0x19, 0x81, 0xd9, 0x00, 0x00, 0x01, 0x00, // IID16364 - 0xd5, 0x19, 0x81, 0xd9, 0x00, 0x00, 0x10, 0x00, // IID16365 - 0xd5, 0x19, 0x81, 0xd9, 0x00, 0x00, 0x00, 0x01, // IID16366 - 0xd5, 0x19, 0x81, 0xd9, 0x00, 0x00, 0x00, 0x10, // IID16367 - 0xd5, 0x19, 0x83, 0xda, 0x01, // IID16368 - 0xd5, 0x19, 0x83, 0xda, 0x10, // IID16369 - 0xd5, 0x19, 0x81, 0xda, 0x00, 0x01, 0x00, 0x00, // IID16370 - 0xd5, 0x19, 0x81, 0xda, 0x00, 0x10, 0x00, 0x00, // IID16371 - 0xd5, 0x19, 0x81, 0xda, 0x00, 0x00, 0x01, 0x00, // IID16372 - 0xd5, 0x19, 0x81, 0xda, 0x00, 0x00, 0x10, 0x00, // IID16373 - 0xd5, 0x19, 0x81, 0xda, 0x00, 0x00, 0x00, 0x01, // IID16374 - 0xd5, 0x19, 0x81, 0xda, 0x00, 0x00, 0x00, 0x10, // IID16375 - 0xd5, 0x19, 0x83, 0xdb, 0x01, // IID16376 - 0xd5, 0x19, 0x83, 0xdb, 0x10, // IID16377 - 0xd5, 0x19, 0x81, 0xdb, 0x00, 0x01, 0x00, 0x00, // IID16378 - 0xd5, 0x19, 0x81, 0xdb, 0x00, 0x10, 0x00, 0x00, // IID16379 - 0xd5, 0x19, 0x81, 0xdb, 0x00, 0x00, 0x01, 0x00, // IID16380 - 0xd5, 0x19, 0x81, 0xdb, 0x00, 0x00, 0x10, 0x00, // IID16381 - 0xd5, 0x19, 0x81, 0xdb, 0x00, 0x00, 0x00, 0x01, // IID16382 - 0xd5, 0x19, 0x81, 0xdb, 0x00, 0x00, 0x00, 0x10, // IID16383 - 0xd5, 0x19, 0x83, 0xdc, 0x01, // IID16384 - 0xd5, 0x19, 0x83, 0xdc, 0x10, // IID16385 - 0xd5, 0x19, 0x81, 0xdc, 0x00, 0x01, 0x00, 0x00, // IID16386 - 0xd5, 0x19, 0x81, 0xdc, 0x00, 0x10, 0x00, 0x00, // IID16387 - 0xd5, 0x19, 0x81, 0xdc, 0x00, 0x00, 0x01, 0x00, // IID16388 - 0xd5, 0x19, 0x81, 0xdc, 0x00, 0x00, 0x10, 0x00, // IID16389 - 0xd5, 0x19, 0x81, 0xdc, 0x00, 0x00, 0x00, 0x01, // IID16390 - 0xd5, 0x19, 0x81, 0xdc, 0x00, 0x00, 0x00, 0x10, // IID16391 - 0xd5, 0x19, 0x83, 0xdd, 0x01, // IID16392 - 0xd5, 0x19, 0x83, 0xdd, 0x10, // IID16393 - 0xd5, 0x19, 0x81, 0xdd, 0x00, 0x01, 0x00, 0x00, // IID16394 - 0xd5, 0x19, 0x81, 0xdd, 0x00, 0x10, 0x00, 0x00, // IID16395 - 0xd5, 0x19, 0x81, 0xdd, 0x00, 0x00, 0x01, 0x00, // IID16396 - 0xd5, 0x19, 0x81, 0xdd, 0x00, 0x00, 0x10, 0x00, // IID16397 - 0xd5, 0x19, 0x81, 0xdd, 0x00, 0x00, 0x00, 0x01, // IID16398 - 0xd5, 0x19, 0x81, 0xdd, 0x00, 0x00, 0x00, 0x10, // IID16399 - 0xd5, 0x19, 0x83, 0xde, 0x01, // IID16400 - 0xd5, 0x19, 0x83, 0xde, 0x10, // IID16401 - 0xd5, 0x19, 0x81, 0xde, 0x00, 0x01, 0x00, 0x00, // IID16402 - 0xd5, 0x19, 0x81, 0xde, 0x00, 0x10, 0x00, 0x00, // IID16403 - 0xd5, 0x19, 0x81, 0xde, 0x00, 0x00, 0x01, 0x00, // IID16404 - 0xd5, 0x19, 0x81, 0xde, 0x00, 0x00, 0x10, 0x00, // IID16405 - 0xd5, 0x19, 0x81, 0xde, 0x00, 0x00, 0x00, 0x01, // IID16406 - 0xd5, 0x19, 0x81, 0xde, 0x00, 0x00, 0x00, 0x10, // IID16407 - 0xd5, 0x19, 0x83, 0xdf, 0x01, // IID16408 - 0xd5, 0x19, 0x83, 0xdf, 0x10, // IID16409 - 0xd5, 0x19, 0x81, 0xdf, 0x00, 0x01, 0x00, 0x00, // IID16410 - 0xd5, 0x19, 0x81, 0xdf, 0x00, 0x10, 0x00, 0x00, // IID16411 - 0xd5, 0x19, 0x81, 0xdf, 0x00, 0x00, 0x01, 0x00, // IID16412 - 0xd5, 0x19, 0x81, 0xdf, 0x00, 0x00, 0x10, 0x00, // IID16413 - 0xd5, 0x19, 0x81, 0xdf, 0x00, 0x00, 0x00, 0x01, // IID16414 - 0xd5, 0x19, 0x81, 0xdf, 0x00, 0x00, 0x00, 0x10, // IID16415 - 0x48, 0xd1, 0xe1, // IID16416 - 0x48, 0xc1, 0xe1, 0x02, // IID16417 - 0x48, 0xc1, 0xe1, 0x04, // IID16418 - 0x48, 0xc1, 0xe1, 0x08, // IID16419 - 0x48, 0xc1, 0xe1, 0x10, // IID16420 - 0x48, 0xd1, 0xe2, // IID16421 - 0x48, 0xc1, 0xe2, 0x02, // IID16422 - 0x48, 0xc1, 0xe2, 0x04, // IID16423 - 0x48, 0xc1, 0xe2, 0x08, // IID16424 - 0x48, 0xc1, 0xe2, 0x10, // IID16425 - 0x48, 0xd1, 0xe3, // IID16426 - 0x48, 0xc1, 0xe3, 0x02, // IID16427 - 0x48, 0xc1, 0xe3, 0x04, // IID16428 - 0x48, 0xc1, 0xe3, 0x08, // IID16429 - 0x48, 0xc1, 0xe3, 0x10, // IID16430 - 0x49, 0xd1, 0xe0, // IID16431 - 0x49, 0xc1, 0xe0, 0x02, // IID16432 - 0x49, 0xc1, 0xe0, 0x04, // IID16433 - 0x49, 0xc1, 0xe0, 0x08, // IID16434 - 0x49, 0xc1, 0xe0, 0x10, // IID16435 - 0x49, 0xd1, 0xe1, // IID16436 - 0x49, 0xc1, 0xe1, 0x02, // IID16437 - 0x49, 0xc1, 0xe1, 0x04, // IID16438 - 0x49, 0xc1, 0xe1, 0x08, // IID16439 - 0x49, 0xc1, 0xe1, 0x10, // IID16440 - 0x49, 0xd1, 0xe2, // IID16441 - 0x49, 0xc1, 0xe2, 0x02, // IID16442 - 0x49, 0xc1, 0xe2, 0x04, // IID16443 - 0x49, 0xc1, 0xe2, 0x08, // IID16444 - 0x49, 0xc1, 0xe2, 0x10, // IID16445 - 0x49, 0xd1, 0xe3, // IID16446 - 0x49, 0xc1, 0xe3, 0x02, // IID16447 - 0x49, 0xc1, 0xe3, 0x04, // IID16448 - 0x49, 0xc1, 0xe3, 0x08, // IID16449 - 0x49, 0xc1, 0xe3, 0x10, // IID16450 - 0x49, 0xd1, 0xe4, // IID16451 - 0x49, 0xc1, 0xe4, 0x02, // IID16452 - 0x49, 0xc1, 0xe4, 0x04, // IID16453 - 0x49, 0xc1, 0xe4, 0x08, // IID16454 - 0x49, 0xc1, 0xe4, 0x10, // IID16455 - 0x49, 0xd1, 0xe5, // IID16456 - 0x49, 0xc1, 0xe5, 0x02, // IID16457 - 0x49, 0xc1, 0xe5, 0x04, // IID16458 - 0x49, 0xc1, 0xe5, 0x08, // IID16459 - 0x49, 0xc1, 0xe5, 0x10, // IID16460 - 0x49, 0xd1, 0xe6, // IID16461 - 0x49, 0xc1, 0xe6, 0x02, // IID16462 - 0x49, 0xc1, 0xe6, 0x04, // IID16463 - 0x49, 0xc1, 0xe6, 0x08, // IID16464 - 0x49, 0xc1, 0xe6, 0x10, // IID16465 - 0x49, 0xd1, 0xe7, // IID16466 - 0x49, 0xc1, 0xe7, 0x02, // IID16467 - 0x49, 0xc1, 0xe7, 0x04, // IID16468 - 0x49, 0xc1, 0xe7, 0x08, // IID16469 - 0x49, 0xc1, 0xe7, 0x10, // IID16470 - 0xd5, 0x18, 0xd1, 0xe0, // IID16471 - 0xd5, 0x18, 0xc1, 0xe0, 0x02, // IID16472 - 0xd5, 0x18, 0xc1, 0xe0, 0x04, // IID16473 - 0xd5, 0x18, 0xc1, 0xe0, 0x08, // IID16474 - 0xd5, 0x18, 0xc1, 0xe0, 0x10, // IID16475 - 0xd5, 0x18, 0xd1, 0xe1, // IID16476 - 0xd5, 0x18, 0xc1, 0xe1, 0x02, // IID16477 - 0xd5, 0x18, 0xc1, 0xe1, 0x04, // IID16478 - 0xd5, 0x18, 0xc1, 0xe1, 0x08, // IID16479 - 0xd5, 0x18, 0xc1, 0xe1, 0x10, // IID16480 - 0xd5, 0x18, 0xd1, 0xe2, // IID16481 - 0xd5, 0x18, 0xc1, 0xe2, 0x02, // IID16482 - 0xd5, 0x18, 0xc1, 0xe2, 0x04, // IID16483 - 0xd5, 0x18, 0xc1, 0xe2, 0x08, // IID16484 - 0xd5, 0x18, 0xc1, 0xe2, 0x10, // IID16485 - 0xd5, 0x18, 0xd1, 0xe3, // IID16486 - 0xd5, 0x18, 0xc1, 0xe3, 0x02, // IID16487 - 0xd5, 0x18, 0xc1, 0xe3, 0x04, // IID16488 - 0xd5, 0x18, 0xc1, 0xe3, 0x08, // IID16489 - 0xd5, 0x18, 0xc1, 0xe3, 0x10, // IID16490 - 0xd5, 0x18, 0xd1, 0xe4, // IID16491 - 0xd5, 0x18, 0xc1, 0xe4, 0x02, // IID16492 - 0xd5, 0x18, 0xc1, 0xe4, 0x04, // IID16493 - 0xd5, 0x18, 0xc1, 0xe4, 0x08, // IID16494 - 0xd5, 0x18, 0xc1, 0xe4, 0x10, // IID16495 - 0xd5, 0x18, 0xd1, 0xe5, // IID16496 - 0xd5, 0x18, 0xc1, 0xe5, 0x02, // IID16497 - 0xd5, 0x18, 0xc1, 0xe5, 0x04, // IID16498 - 0xd5, 0x18, 0xc1, 0xe5, 0x08, // IID16499 - 0xd5, 0x18, 0xc1, 0xe5, 0x10, // IID16500 - 0xd5, 0x18, 0xd1, 0xe6, // IID16501 - 0xd5, 0x18, 0xc1, 0xe6, 0x02, // IID16502 - 0xd5, 0x18, 0xc1, 0xe6, 0x04, // IID16503 - 0xd5, 0x18, 0xc1, 0xe6, 0x08, // IID16504 - 0xd5, 0x18, 0xc1, 0xe6, 0x10, // IID16505 - 0xd5, 0x18, 0xd1, 0xe7, // IID16506 - 0xd5, 0x18, 0xc1, 0xe7, 0x02, // IID16507 - 0xd5, 0x18, 0xc1, 0xe7, 0x04, // IID16508 - 0xd5, 0x18, 0xc1, 0xe7, 0x08, // IID16509 - 0xd5, 0x18, 0xc1, 0xe7, 0x10, // IID16510 - 0xd5, 0x19, 0xd1, 0xe0, // IID16511 - 0xd5, 0x19, 0xc1, 0xe0, 0x02, // IID16512 - 0xd5, 0x19, 0xc1, 0xe0, 0x04, // IID16513 - 0xd5, 0x19, 0xc1, 0xe0, 0x08, // IID16514 - 0xd5, 0x19, 0xc1, 0xe0, 0x10, // IID16515 - 0xd5, 0x19, 0xd1, 0xe1, // IID16516 - 0xd5, 0x19, 0xc1, 0xe1, 0x02, // IID16517 - 0xd5, 0x19, 0xc1, 0xe1, 0x04, // IID16518 - 0xd5, 0x19, 0xc1, 0xe1, 0x08, // IID16519 - 0xd5, 0x19, 0xc1, 0xe1, 0x10, // IID16520 - 0xd5, 0x19, 0xd1, 0xe2, // IID16521 - 0xd5, 0x19, 0xc1, 0xe2, 0x02, // IID16522 - 0xd5, 0x19, 0xc1, 0xe2, 0x04, // IID16523 - 0xd5, 0x19, 0xc1, 0xe2, 0x08, // IID16524 - 0xd5, 0x19, 0xc1, 0xe2, 0x10, // IID16525 - 0xd5, 0x19, 0xd1, 0xe3, // IID16526 - 0xd5, 0x19, 0xc1, 0xe3, 0x02, // IID16527 - 0xd5, 0x19, 0xc1, 0xe3, 0x04, // IID16528 - 0xd5, 0x19, 0xc1, 0xe3, 0x08, // IID16529 - 0xd5, 0x19, 0xc1, 0xe3, 0x10, // IID16530 - 0xd5, 0x19, 0xd1, 0xe4, // IID16531 - 0xd5, 0x19, 0xc1, 0xe4, 0x02, // IID16532 - 0xd5, 0x19, 0xc1, 0xe4, 0x04, // IID16533 - 0xd5, 0x19, 0xc1, 0xe4, 0x08, // IID16534 - 0xd5, 0x19, 0xc1, 0xe4, 0x10, // IID16535 - 0xd5, 0x19, 0xd1, 0xe5, // IID16536 - 0xd5, 0x19, 0xc1, 0xe5, 0x02, // IID16537 - 0xd5, 0x19, 0xc1, 0xe5, 0x04, // IID16538 - 0xd5, 0x19, 0xc1, 0xe5, 0x08, // IID16539 - 0xd5, 0x19, 0xc1, 0xe5, 0x10, // IID16540 - 0xd5, 0x19, 0xd1, 0xe6, // IID16541 - 0xd5, 0x19, 0xc1, 0xe6, 0x02, // IID16542 - 0xd5, 0x19, 0xc1, 0xe6, 0x04, // IID16543 - 0xd5, 0x19, 0xc1, 0xe6, 0x08, // IID16544 - 0xd5, 0x19, 0xc1, 0xe6, 0x10, // IID16545 - 0xd5, 0x19, 0xd1, 0xe7, // IID16546 - 0xd5, 0x19, 0xc1, 0xe7, 0x02, // IID16547 - 0xd5, 0x19, 0xc1, 0xe7, 0x04, // IID16548 - 0xd5, 0x19, 0xc1, 0xe7, 0x08, // IID16549 - 0xd5, 0x19, 0xc1, 0xe7, 0x10, // IID16550 - 0x48, 0xd1, 0xe9, // IID16551 - 0x48, 0xc1, 0xe9, 0x02, // IID16552 - 0x48, 0xc1, 0xe9, 0x04, // IID16553 - 0x48, 0xc1, 0xe9, 0x08, // IID16554 - 0x48, 0xc1, 0xe9, 0x10, // IID16555 - 0x48, 0xd1, 0xea, // IID16556 - 0x48, 0xc1, 0xea, 0x02, // IID16557 - 0x48, 0xc1, 0xea, 0x04, // IID16558 - 0x48, 0xc1, 0xea, 0x08, // IID16559 - 0x48, 0xc1, 0xea, 0x10, // IID16560 - 0x48, 0xd1, 0xeb, // IID16561 - 0x48, 0xc1, 0xeb, 0x02, // IID16562 - 0x48, 0xc1, 0xeb, 0x04, // IID16563 - 0x48, 0xc1, 0xeb, 0x08, // IID16564 - 0x48, 0xc1, 0xeb, 0x10, // IID16565 - 0x49, 0xd1, 0xe8, // IID16566 - 0x49, 0xc1, 0xe8, 0x02, // IID16567 - 0x49, 0xc1, 0xe8, 0x04, // IID16568 - 0x49, 0xc1, 0xe8, 0x08, // IID16569 - 0x49, 0xc1, 0xe8, 0x10, // IID16570 - 0x49, 0xd1, 0xe9, // IID16571 - 0x49, 0xc1, 0xe9, 0x02, // IID16572 - 0x49, 0xc1, 0xe9, 0x04, // IID16573 - 0x49, 0xc1, 0xe9, 0x08, // IID16574 - 0x49, 0xc1, 0xe9, 0x10, // IID16575 - 0x49, 0xd1, 0xea, // IID16576 - 0x49, 0xc1, 0xea, 0x02, // IID16577 - 0x49, 0xc1, 0xea, 0x04, // IID16578 - 0x49, 0xc1, 0xea, 0x08, // IID16579 - 0x49, 0xc1, 0xea, 0x10, // IID16580 - 0x49, 0xd1, 0xeb, // IID16581 - 0x49, 0xc1, 0xeb, 0x02, // IID16582 - 0x49, 0xc1, 0xeb, 0x04, // IID16583 - 0x49, 0xc1, 0xeb, 0x08, // IID16584 - 0x49, 0xc1, 0xeb, 0x10, // IID16585 - 0x49, 0xd1, 0xec, // IID16586 - 0x49, 0xc1, 0xec, 0x02, // IID16587 - 0x49, 0xc1, 0xec, 0x04, // IID16588 - 0x49, 0xc1, 0xec, 0x08, // IID16589 - 0x49, 0xc1, 0xec, 0x10, // IID16590 - 0x49, 0xd1, 0xed, // IID16591 - 0x49, 0xc1, 0xed, 0x02, // IID16592 - 0x49, 0xc1, 0xed, 0x04, // IID16593 - 0x49, 0xc1, 0xed, 0x08, // IID16594 - 0x49, 0xc1, 0xed, 0x10, // IID16595 - 0x49, 0xd1, 0xee, // IID16596 - 0x49, 0xc1, 0xee, 0x02, // IID16597 - 0x49, 0xc1, 0xee, 0x04, // IID16598 - 0x49, 0xc1, 0xee, 0x08, // IID16599 - 0x49, 0xc1, 0xee, 0x10, // IID16600 - 0x49, 0xd1, 0xef, // IID16601 - 0x49, 0xc1, 0xef, 0x02, // IID16602 - 0x49, 0xc1, 0xef, 0x04, // IID16603 - 0x49, 0xc1, 0xef, 0x08, // IID16604 - 0x49, 0xc1, 0xef, 0x10, // IID16605 - 0xd5, 0x18, 0xd1, 0xe8, // IID16606 - 0xd5, 0x18, 0xc1, 0xe8, 0x02, // IID16607 - 0xd5, 0x18, 0xc1, 0xe8, 0x04, // IID16608 - 0xd5, 0x18, 0xc1, 0xe8, 0x08, // IID16609 - 0xd5, 0x18, 0xc1, 0xe8, 0x10, // IID16610 - 0xd5, 0x18, 0xd1, 0xe9, // IID16611 - 0xd5, 0x18, 0xc1, 0xe9, 0x02, // IID16612 - 0xd5, 0x18, 0xc1, 0xe9, 0x04, // IID16613 - 0xd5, 0x18, 0xc1, 0xe9, 0x08, // IID16614 - 0xd5, 0x18, 0xc1, 0xe9, 0x10, // IID16615 - 0xd5, 0x18, 0xd1, 0xea, // IID16616 - 0xd5, 0x18, 0xc1, 0xea, 0x02, // IID16617 - 0xd5, 0x18, 0xc1, 0xea, 0x04, // IID16618 - 0xd5, 0x18, 0xc1, 0xea, 0x08, // IID16619 - 0xd5, 0x18, 0xc1, 0xea, 0x10, // IID16620 - 0xd5, 0x18, 0xd1, 0xeb, // IID16621 - 0xd5, 0x18, 0xc1, 0xeb, 0x02, // IID16622 - 0xd5, 0x18, 0xc1, 0xeb, 0x04, // IID16623 - 0xd5, 0x18, 0xc1, 0xeb, 0x08, // IID16624 - 0xd5, 0x18, 0xc1, 0xeb, 0x10, // IID16625 - 0xd5, 0x18, 0xd1, 0xec, // IID16626 - 0xd5, 0x18, 0xc1, 0xec, 0x02, // IID16627 - 0xd5, 0x18, 0xc1, 0xec, 0x04, // IID16628 - 0xd5, 0x18, 0xc1, 0xec, 0x08, // IID16629 - 0xd5, 0x18, 0xc1, 0xec, 0x10, // IID16630 - 0xd5, 0x18, 0xd1, 0xed, // IID16631 - 0xd5, 0x18, 0xc1, 0xed, 0x02, // IID16632 - 0xd5, 0x18, 0xc1, 0xed, 0x04, // IID16633 - 0xd5, 0x18, 0xc1, 0xed, 0x08, // IID16634 - 0xd5, 0x18, 0xc1, 0xed, 0x10, // IID16635 - 0xd5, 0x18, 0xd1, 0xee, // IID16636 - 0xd5, 0x18, 0xc1, 0xee, 0x02, // IID16637 - 0xd5, 0x18, 0xc1, 0xee, 0x04, // IID16638 - 0xd5, 0x18, 0xc1, 0xee, 0x08, // IID16639 - 0xd5, 0x18, 0xc1, 0xee, 0x10, // IID16640 - 0xd5, 0x18, 0xd1, 0xef, // IID16641 - 0xd5, 0x18, 0xc1, 0xef, 0x02, // IID16642 - 0xd5, 0x18, 0xc1, 0xef, 0x04, // IID16643 - 0xd5, 0x18, 0xc1, 0xef, 0x08, // IID16644 - 0xd5, 0x18, 0xc1, 0xef, 0x10, // IID16645 - 0xd5, 0x19, 0xd1, 0xe8, // IID16646 - 0xd5, 0x19, 0xc1, 0xe8, 0x02, // IID16647 - 0xd5, 0x19, 0xc1, 0xe8, 0x04, // IID16648 - 0xd5, 0x19, 0xc1, 0xe8, 0x08, // IID16649 - 0xd5, 0x19, 0xc1, 0xe8, 0x10, // IID16650 - 0xd5, 0x19, 0xd1, 0xe9, // IID16651 - 0xd5, 0x19, 0xc1, 0xe9, 0x02, // IID16652 - 0xd5, 0x19, 0xc1, 0xe9, 0x04, // IID16653 - 0xd5, 0x19, 0xc1, 0xe9, 0x08, // IID16654 - 0xd5, 0x19, 0xc1, 0xe9, 0x10, // IID16655 - 0xd5, 0x19, 0xd1, 0xea, // IID16656 - 0xd5, 0x19, 0xc1, 0xea, 0x02, // IID16657 - 0xd5, 0x19, 0xc1, 0xea, 0x04, // IID16658 - 0xd5, 0x19, 0xc1, 0xea, 0x08, // IID16659 - 0xd5, 0x19, 0xc1, 0xea, 0x10, // IID16660 - 0xd5, 0x19, 0xd1, 0xeb, // IID16661 - 0xd5, 0x19, 0xc1, 0xeb, 0x02, // IID16662 - 0xd5, 0x19, 0xc1, 0xeb, 0x04, // IID16663 - 0xd5, 0x19, 0xc1, 0xeb, 0x08, // IID16664 - 0xd5, 0x19, 0xc1, 0xeb, 0x10, // IID16665 - 0xd5, 0x19, 0xd1, 0xec, // IID16666 - 0xd5, 0x19, 0xc1, 0xec, 0x02, // IID16667 - 0xd5, 0x19, 0xc1, 0xec, 0x04, // IID16668 - 0xd5, 0x19, 0xc1, 0xec, 0x08, // IID16669 - 0xd5, 0x19, 0xc1, 0xec, 0x10, // IID16670 - 0xd5, 0x19, 0xd1, 0xed, // IID16671 - 0xd5, 0x19, 0xc1, 0xed, 0x02, // IID16672 - 0xd5, 0x19, 0xc1, 0xed, 0x04, // IID16673 - 0xd5, 0x19, 0xc1, 0xed, 0x08, // IID16674 - 0xd5, 0x19, 0xc1, 0xed, 0x10, // IID16675 - 0xd5, 0x19, 0xd1, 0xee, // IID16676 - 0xd5, 0x19, 0xc1, 0xee, 0x02, // IID16677 - 0xd5, 0x19, 0xc1, 0xee, 0x04, // IID16678 - 0xd5, 0x19, 0xc1, 0xee, 0x08, // IID16679 - 0xd5, 0x19, 0xc1, 0xee, 0x10, // IID16680 - 0xd5, 0x19, 0xd1, 0xef, // IID16681 - 0xd5, 0x19, 0xc1, 0xef, 0x02, // IID16682 - 0xd5, 0x19, 0xc1, 0xef, 0x04, // IID16683 - 0xd5, 0x19, 0xc1, 0xef, 0x08, // IID16684 - 0xd5, 0x19, 0xc1, 0xef, 0x10, // IID16685 - 0x48, 0x83, 0xe9, 0x01, // IID16686 - 0x48, 0x83, 0xe9, 0x10, // IID16687 - 0x48, 0x81, 0xe9, 0x00, 0x01, 0x00, 0x00, // IID16688 - 0x48, 0x81, 0xe9, 0x00, 0x10, 0x00, 0x00, // IID16689 - 0x48, 0x81, 0xe9, 0x00, 0x00, 0x01, 0x00, // IID16690 - 0x48, 0x81, 0xe9, 0x00, 0x00, 0x10, 0x00, // IID16691 - 0x48, 0x81, 0xe9, 0x00, 0x00, 0x00, 0x01, // IID16692 - 0x48, 0x81, 0xe9, 0x00, 0x00, 0x00, 0x10, // IID16693 - 0x48, 0x83, 0xea, 0x01, // IID16694 - 0x48, 0x83, 0xea, 0x10, // IID16695 - 0x48, 0x81, 0xea, 0x00, 0x01, 0x00, 0x00, // IID16696 - 0x48, 0x81, 0xea, 0x00, 0x10, 0x00, 0x00, // IID16697 - 0x48, 0x81, 0xea, 0x00, 0x00, 0x01, 0x00, // IID16698 - 0x48, 0x81, 0xea, 0x00, 0x00, 0x10, 0x00, // IID16699 - 0x48, 0x81, 0xea, 0x00, 0x00, 0x00, 0x01, // IID16700 - 0x48, 0x81, 0xea, 0x00, 0x00, 0x00, 0x10, // IID16701 - 0x48, 0x83, 0xeb, 0x01, // IID16702 - 0x48, 0x83, 0xeb, 0x10, // IID16703 - 0x48, 0x81, 0xeb, 0x00, 0x01, 0x00, 0x00, // IID16704 - 0x48, 0x81, 0xeb, 0x00, 0x10, 0x00, 0x00, // IID16705 - 0x48, 0x81, 0xeb, 0x00, 0x00, 0x01, 0x00, // IID16706 - 0x48, 0x81, 0xeb, 0x00, 0x00, 0x10, 0x00, // IID16707 - 0x48, 0x81, 0xeb, 0x00, 0x00, 0x00, 0x01, // IID16708 - 0x48, 0x81, 0xeb, 0x00, 0x00, 0x00, 0x10, // IID16709 - 0x49, 0x83, 0xe8, 0x01, // IID16710 - 0x49, 0x83, 0xe8, 0x10, // IID16711 - 0x49, 0x81, 0xe8, 0x00, 0x01, 0x00, 0x00, // IID16712 - 0x49, 0x81, 0xe8, 0x00, 0x10, 0x00, 0x00, // IID16713 - 0x49, 0x81, 0xe8, 0x00, 0x00, 0x01, 0x00, // IID16714 - 0x49, 0x81, 0xe8, 0x00, 0x00, 0x10, 0x00, // IID16715 - 0x49, 0x81, 0xe8, 0x00, 0x00, 0x00, 0x01, // IID16716 - 0x49, 0x81, 0xe8, 0x00, 0x00, 0x00, 0x10, // IID16717 - 0x49, 0x83, 0xe9, 0x01, // IID16718 - 0x49, 0x83, 0xe9, 0x10, // IID16719 - 0x49, 0x81, 0xe9, 0x00, 0x01, 0x00, 0x00, // IID16720 - 0x49, 0x81, 0xe9, 0x00, 0x10, 0x00, 0x00, // IID16721 - 0x49, 0x81, 0xe9, 0x00, 0x00, 0x01, 0x00, // IID16722 - 0x49, 0x81, 0xe9, 0x00, 0x00, 0x10, 0x00, // IID16723 - 0x49, 0x81, 0xe9, 0x00, 0x00, 0x00, 0x01, // IID16724 - 0x49, 0x81, 0xe9, 0x00, 0x00, 0x00, 0x10, // IID16725 - 0x49, 0x83, 0xea, 0x01, // IID16726 - 0x49, 0x83, 0xea, 0x10, // IID16727 - 0x49, 0x81, 0xea, 0x00, 0x01, 0x00, 0x00, // IID16728 - 0x49, 0x81, 0xea, 0x00, 0x10, 0x00, 0x00, // IID16729 - 0x49, 0x81, 0xea, 0x00, 0x00, 0x01, 0x00, // IID16730 - 0x49, 0x81, 0xea, 0x00, 0x00, 0x10, 0x00, // IID16731 - 0x49, 0x81, 0xea, 0x00, 0x00, 0x00, 0x01, // IID16732 - 0x49, 0x81, 0xea, 0x00, 0x00, 0x00, 0x10, // IID16733 - 0x49, 0x83, 0xeb, 0x01, // IID16734 - 0x49, 0x83, 0xeb, 0x10, // IID16735 - 0x49, 0x81, 0xeb, 0x00, 0x01, 0x00, 0x00, // IID16736 - 0x49, 0x81, 0xeb, 0x00, 0x10, 0x00, 0x00, // IID16737 - 0x49, 0x81, 0xeb, 0x00, 0x00, 0x01, 0x00, // IID16738 - 0x49, 0x81, 0xeb, 0x00, 0x00, 0x10, 0x00, // IID16739 - 0x49, 0x81, 0xeb, 0x00, 0x00, 0x00, 0x01, // IID16740 - 0x49, 0x81, 0xeb, 0x00, 0x00, 0x00, 0x10, // IID16741 - 0x49, 0x83, 0xec, 0x01, // IID16742 - 0x49, 0x83, 0xec, 0x10, // IID16743 - 0x49, 0x81, 0xec, 0x00, 0x01, 0x00, 0x00, // IID16744 - 0x49, 0x81, 0xec, 0x00, 0x10, 0x00, 0x00, // IID16745 - 0x49, 0x81, 0xec, 0x00, 0x00, 0x01, 0x00, // IID16746 - 0x49, 0x81, 0xec, 0x00, 0x00, 0x10, 0x00, // IID16747 - 0x49, 0x81, 0xec, 0x00, 0x00, 0x00, 0x01, // IID16748 - 0x49, 0x81, 0xec, 0x00, 0x00, 0x00, 0x10, // IID16749 - 0x49, 0x83, 0xed, 0x01, // IID16750 - 0x49, 0x83, 0xed, 0x10, // IID16751 - 0x49, 0x81, 0xed, 0x00, 0x01, 0x00, 0x00, // IID16752 - 0x49, 0x81, 0xed, 0x00, 0x10, 0x00, 0x00, // IID16753 - 0x49, 0x81, 0xed, 0x00, 0x00, 0x01, 0x00, // IID16754 - 0x49, 0x81, 0xed, 0x00, 0x00, 0x10, 0x00, // IID16755 - 0x49, 0x81, 0xed, 0x00, 0x00, 0x00, 0x01, // IID16756 - 0x49, 0x81, 0xed, 0x00, 0x00, 0x00, 0x10, // IID16757 - 0x49, 0x83, 0xee, 0x01, // IID16758 - 0x49, 0x83, 0xee, 0x10, // IID16759 - 0x49, 0x81, 0xee, 0x00, 0x01, 0x00, 0x00, // IID16760 - 0x49, 0x81, 0xee, 0x00, 0x10, 0x00, 0x00, // IID16761 - 0x49, 0x81, 0xee, 0x00, 0x00, 0x01, 0x00, // IID16762 - 0x49, 0x81, 0xee, 0x00, 0x00, 0x10, 0x00, // IID16763 - 0x49, 0x81, 0xee, 0x00, 0x00, 0x00, 0x01, // IID16764 - 0x49, 0x81, 0xee, 0x00, 0x00, 0x00, 0x10, // IID16765 - 0x49, 0x83, 0xef, 0x01, // IID16766 - 0x49, 0x83, 0xef, 0x10, // IID16767 - 0x49, 0x81, 0xef, 0x00, 0x01, 0x00, 0x00, // IID16768 - 0x49, 0x81, 0xef, 0x00, 0x10, 0x00, 0x00, // IID16769 - 0x49, 0x81, 0xef, 0x00, 0x00, 0x01, 0x00, // IID16770 - 0x49, 0x81, 0xef, 0x00, 0x00, 0x10, 0x00, // IID16771 - 0x49, 0x81, 0xef, 0x00, 0x00, 0x00, 0x01, // IID16772 - 0x49, 0x81, 0xef, 0x00, 0x00, 0x00, 0x10, // IID16773 - 0xd5, 0x18, 0x83, 0xe8, 0x01, // IID16774 - 0xd5, 0x18, 0x83, 0xe8, 0x10, // IID16775 - 0xd5, 0x18, 0x81, 0xe8, 0x00, 0x01, 0x00, 0x00, // IID16776 - 0xd5, 0x18, 0x81, 0xe8, 0x00, 0x10, 0x00, 0x00, // IID16777 - 0xd5, 0x18, 0x81, 0xe8, 0x00, 0x00, 0x01, 0x00, // IID16778 - 0xd5, 0x18, 0x81, 0xe8, 0x00, 0x00, 0x10, 0x00, // IID16779 - 0xd5, 0x18, 0x81, 0xe8, 0x00, 0x00, 0x00, 0x01, // IID16780 - 0xd5, 0x18, 0x81, 0xe8, 0x00, 0x00, 0x00, 0x10, // IID16781 - 0xd5, 0x18, 0x83, 0xe9, 0x01, // IID16782 - 0xd5, 0x18, 0x83, 0xe9, 0x10, // IID16783 - 0xd5, 0x18, 0x81, 0xe9, 0x00, 0x01, 0x00, 0x00, // IID16784 - 0xd5, 0x18, 0x81, 0xe9, 0x00, 0x10, 0x00, 0x00, // IID16785 - 0xd5, 0x18, 0x81, 0xe9, 0x00, 0x00, 0x01, 0x00, // IID16786 - 0xd5, 0x18, 0x81, 0xe9, 0x00, 0x00, 0x10, 0x00, // IID16787 - 0xd5, 0x18, 0x81, 0xe9, 0x00, 0x00, 0x00, 0x01, // IID16788 - 0xd5, 0x18, 0x81, 0xe9, 0x00, 0x00, 0x00, 0x10, // IID16789 - 0xd5, 0x18, 0x83, 0xea, 0x01, // IID16790 - 0xd5, 0x18, 0x83, 0xea, 0x10, // IID16791 - 0xd5, 0x18, 0x81, 0xea, 0x00, 0x01, 0x00, 0x00, // IID16792 - 0xd5, 0x18, 0x81, 0xea, 0x00, 0x10, 0x00, 0x00, // IID16793 - 0xd5, 0x18, 0x81, 0xea, 0x00, 0x00, 0x01, 0x00, // IID16794 - 0xd5, 0x18, 0x81, 0xea, 0x00, 0x00, 0x10, 0x00, // IID16795 - 0xd5, 0x18, 0x81, 0xea, 0x00, 0x00, 0x00, 0x01, // IID16796 - 0xd5, 0x18, 0x81, 0xea, 0x00, 0x00, 0x00, 0x10, // IID16797 - 0xd5, 0x18, 0x83, 0xeb, 0x01, // IID16798 - 0xd5, 0x18, 0x83, 0xeb, 0x10, // IID16799 - 0xd5, 0x18, 0x81, 0xeb, 0x00, 0x01, 0x00, 0x00, // IID16800 - 0xd5, 0x18, 0x81, 0xeb, 0x00, 0x10, 0x00, 0x00, // IID16801 - 0xd5, 0x18, 0x81, 0xeb, 0x00, 0x00, 0x01, 0x00, // IID16802 - 0xd5, 0x18, 0x81, 0xeb, 0x00, 0x00, 0x10, 0x00, // IID16803 - 0xd5, 0x18, 0x81, 0xeb, 0x00, 0x00, 0x00, 0x01, // IID16804 - 0xd5, 0x18, 0x81, 0xeb, 0x00, 0x00, 0x00, 0x10, // IID16805 - 0xd5, 0x18, 0x83, 0xec, 0x01, // IID16806 - 0xd5, 0x18, 0x83, 0xec, 0x10, // IID16807 - 0xd5, 0x18, 0x81, 0xec, 0x00, 0x01, 0x00, 0x00, // IID16808 - 0xd5, 0x18, 0x81, 0xec, 0x00, 0x10, 0x00, 0x00, // IID16809 - 0xd5, 0x18, 0x81, 0xec, 0x00, 0x00, 0x01, 0x00, // IID16810 - 0xd5, 0x18, 0x81, 0xec, 0x00, 0x00, 0x10, 0x00, // IID16811 - 0xd5, 0x18, 0x81, 0xec, 0x00, 0x00, 0x00, 0x01, // IID16812 - 0xd5, 0x18, 0x81, 0xec, 0x00, 0x00, 0x00, 0x10, // IID16813 - 0xd5, 0x18, 0x83, 0xed, 0x01, // IID16814 - 0xd5, 0x18, 0x83, 0xed, 0x10, // IID16815 - 0xd5, 0x18, 0x81, 0xed, 0x00, 0x01, 0x00, 0x00, // IID16816 - 0xd5, 0x18, 0x81, 0xed, 0x00, 0x10, 0x00, 0x00, // IID16817 - 0xd5, 0x18, 0x81, 0xed, 0x00, 0x00, 0x01, 0x00, // IID16818 - 0xd5, 0x18, 0x81, 0xed, 0x00, 0x00, 0x10, 0x00, // IID16819 - 0xd5, 0x18, 0x81, 0xed, 0x00, 0x00, 0x00, 0x01, // IID16820 - 0xd5, 0x18, 0x81, 0xed, 0x00, 0x00, 0x00, 0x10, // IID16821 - 0xd5, 0x18, 0x83, 0xee, 0x01, // IID16822 - 0xd5, 0x18, 0x83, 0xee, 0x10, // IID16823 - 0xd5, 0x18, 0x81, 0xee, 0x00, 0x01, 0x00, 0x00, // IID16824 - 0xd5, 0x18, 0x81, 0xee, 0x00, 0x10, 0x00, 0x00, // IID16825 - 0xd5, 0x18, 0x81, 0xee, 0x00, 0x00, 0x01, 0x00, // IID16826 - 0xd5, 0x18, 0x81, 0xee, 0x00, 0x00, 0x10, 0x00, // IID16827 - 0xd5, 0x18, 0x81, 0xee, 0x00, 0x00, 0x00, 0x01, // IID16828 - 0xd5, 0x18, 0x81, 0xee, 0x00, 0x00, 0x00, 0x10, // IID16829 - 0xd5, 0x18, 0x83, 0xef, 0x01, // IID16830 - 0xd5, 0x18, 0x83, 0xef, 0x10, // IID16831 - 0xd5, 0x18, 0x81, 0xef, 0x00, 0x01, 0x00, 0x00, // IID16832 - 0xd5, 0x18, 0x81, 0xef, 0x00, 0x10, 0x00, 0x00, // IID16833 - 0xd5, 0x18, 0x81, 0xef, 0x00, 0x00, 0x01, 0x00, // IID16834 - 0xd5, 0x18, 0x81, 0xef, 0x00, 0x00, 0x10, 0x00, // IID16835 - 0xd5, 0x18, 0x81, 0xef, 0x00, 0x00, 0x00, 0x01, // IID16836 - 0xd5, 0x18, 0x81, 0xef, 0x00, 0x00, 0x00, 0x10, // IID16837 - 0xd5, 0x19, 0x83, 0xe8, 0x01, // IID16838 - 0xd5, 0x19, 0x83, 0xe8, 0x10, // IID16839 - 0xd5, 0x19, 0x81, 0xe8, 0x00, 0x01, 0x00, 0x00, // IID16840 - 0xd5, 0x19, 0x81, 0xe8, 0x00, 0x10, 0x00, 0x00, // IID16841 - 0xd5, 0x19, 0x81, 0xe8, 0x00, 0x00, 0x01, 0x00, // IID16842 - 0xd5, 0x19, 0x81, 0xe8, 0x00, 0x00, 0x10, 0x00, // IID16843 - 0xd5, 0x19, 0x81, 0xe8, 0x00, 0x00, 0x00, 0x01, // IID16844 - 0xd5, 0x19, 0x81, 0xe8, 0x00, 0x00, 0x00, 0x10, // IID16845 - 0xd5, 0x19, 0x83, 0xe9, 0x01, // IID16846 - 0xd5, 0x19, 0x83, 0xe9, 0x10, // IID16847 - 0xd5, 0x19, 0x81, 0xe9, 0x00, 0x01, 0x00, 0x00, // IID16848 - 0xd5, 0x19, 0x81, 0xe9, 0x00, 0x10, 0x00, 0x00, // IID16849 - 0xd5, 0x19, 0x81, 0xe9, 0x00, 0x00, 0x01, 0x00, // IID16850 - 0xd5, 0x19, 0x81, 0xe9, 0x00, 0x00, 0x10, 0x00, // IID16851 - 0xd5, 0x19, 0x81, 0xe9, 0x00, 0x00, 0x00, 0x01, // IID16852 - 0xd5, 0x19, 0x81, 0xe9, 0x00, 0x00, 0x00, 0x10, // IID16853 - 0xd5, 0x19, 0x83, 0xea, 0x01, // IID16854 - 0xd5, 0x19, 0x83, 0xea, 0x10, // IID16855 - 0xd5, 0x19, 0x81, 0xea, 0x00, 0x01, 0x00, 0x00, // IID16856 - 0xd5, 0x19, 0x81, 0xea, 0x00, 0x10, 0x00, 0x00, // IID16857 - 0xd5, 0x19, 0x81, 0xea, 0x00, 0x00, 0x01, 0x00, // IID16858 - 0xd5, 0x19, 0x81, 0xea, 0x00, 0x00, 0x10, 0x00, // IID16859 - 0xd5, 0x19, 0x81, 0xea, 0x00, 0x00, 0x00, 0x01, // IID16860 - 0xd5, 0x19, 0x81, 0xea, 0x00, 0x00, 0x00, 0x10, // IID16861 - 0xd5, 0x19, 0x83, 0xeb, 0x01, // IID16862 - 0xd5, 0x19, 0x83, 0xeb, 0x10, // IID16863 - 0xd5, 0x19, 0x81, 0xeb, 0x00, 0x01, 0x00, 0x00, // IID16864 - 0xd5, 0x19, 0x81, 0xeb, 0x00, 0x10, 0x00, 0x00, // IID16865 - 0xd5, 0x19, 0x81, 0xeb, 0x00, 0x00, 0x01, 0x00, // IID16866 - 0xd5, 0x19, 0x81, 0xeb, 0x00, 0x00, 0x10, 0x00, // IID16867 - 0xd5, 0x19, 0x81, 0xeb, 0x00, 0x00, 0x00, 0x01, // IID16868 - 0xd5, 0x19, 0x81, 0xeb, 0x00, 0x00, 0x00, 0x10, // IID16869 - 0xd5, 0x19, 0x83, 0xec, 0x01, // IID16870 - 0xd5, 0x19, 0x83, 0xec, 0x10, // IID16871 - 0xd5, 0x19, 0x81, 0xec, 0x00, 0x01, 0x00, 0x00, // IID16872 - 0xd5, 0x19, 0x81, 0xec, 0x00, 0x10, 0x00, 0x00, // IID16873 - 0xd5, 0x19, 0x81, 0xec, 0x00, 0x00, 0x01, 0x00, // IID16874 - 0xd5, 0x19, 0x81, 0xec, 0x00, 0x00, 0x10, 0x00, // IID16875 - 0xd5, 0x19, 0x81, 0xec, 0x00, 0x00, 0x00, 0x01, // IID16876 - 0xd5, 0x19, 0x81, 0xec, 0x00, 0x00, 0x00, 0x10, // IID16877 - 0xd5, 0x19, 0x83, 0xed, 0x01, // IID16878 - 0xd5, 0x19, 0x83, 0xed, 0x10, // IID16879 - 0xd5, 0x19, 0x81, 0xed, 0x00, 0x01, 0x00, 0x00, // IID16880 - 0xd5, 0x19, 0x81, 0xed, 0x00, 0x10, 0x00, 0x00, // IID16881 - 0xd5, 0x19, 0x81, 0xed, 0x00, 0x00, 0x01, 0x00, // IID16882 - 0xd5, 0x19, 0x81, 0xed, 0x00, 0x00, 0x10, 0x00, // IID16883 - 0xd5, 0x19, 0x81, 0xed, 0x00, 0x00, 0x00, 0x01, // IID16884 - 0xd5, 0x19, 0x81, 0xed, 0x00, 0x00, 0x00, 0x10, // IID16885 - 0xd5, 0x19, 0x83, 0xee, 0x01, // IID16886 - 0xd5, 0x19, 0x83, 0xee, 0x10, // IID16887 - 0xd5, 0x19, 0x81, 0xee, 0x00, 0x01, 0x00, 0x00, // IID16888 - 0xd5, 0x19, 0x81, 0xee, 0x00, 0x10, 0x00, 0x00, // IID16889 - 0xd5, 0x19, 0x81, 0xee, 0x00, 0x00, 0x01, 0x00, // IID16890 - 0xd5, 0x19, 0x81, 0xee, 0x00, 0x00, 0x10, 0x00, // IID16891 - 0xd5, 0x19, 0x81, 0xee, 0x00, 0x00, 0x00, 0x01, // IID16892 - 0xd5, 0x19, 0x81, 0xee, 0x00, 0x00, 0x00, 0x10, // IID16893 - 0xd5, 0x19, 0x83, 0xef, 0x01, // IID16894 - 0xd5, 0x19, 0x83, 0xef, 0x10, // IID16895 - 0xd5, 0x19, 0x81, 0xef, 0x00, 0x01, 0x00, 0x00, // IID16896 - 0xd5, 0x19, 0x81, 0xef, 0x00, 0x10, 0x00, 0x00, // IID16897 - 0xd5, 0x19, 0x81, 0xef, 0x00, 0x00, 0x01, 0x00, // IID16898 - 0xd5, 0x19, 0x81, 0xef, 0x00, 0x00, 0x10, 0x00, // IID16899 - 0xd5, 0x19, 0x81, 0xef, 0x00, 0x00, 0x00, 0x01, // IID16900 - 0xd5, 0x19, 0x81, 0xef, 0x00, 0x00, 0x00, 0x10, // IID16901 - 0x48, 0x83, 0xf1, 0x01, // IID16902 - 0x48, 0x83, 0xf1, 0x10, // IID16903 - 0x48, 0x81, 0xf1, 0x00, 0x01, 0x00, 0x00, // IID16904 - 0x48, 0x81, 0xf1, 0x00, 0x10, 0x00, 0x00, // IID16905 - 0x48, 0x81, 0xf1, 0x00, 0x00, 0x01, 0x00, // IID16906 - 0x48, 0x81, 0xf1, 0x00, 0x00, 0x10, 0x00, // IID16907 - 0x48, 0x81, 0xf1, 0x00, 0x00, 0x00, 0x01, // IID16908 - 0x48, 0x81, 0xf1, 0x00, 0x00, 0x00, 0x10, // IID16909 - 0x48, 0x83, 0xf2, 0x01, // IID16910 - 0x48, 0x83, 0xf2, 0x10, // IID16911 - 0x48, 0x81, 0xf2, 0x00, 0x01, 0x00, 0x00, // IID16912 - 0x48, 0x81, 0xf2, 0x00, 0x10, 0x00, 0x00, // IID16913 - 0x48, 0x81, 0xf2, 0x00, 0x00, 0x01, 0x00, // IID16914 - 0x48, 0x81, 0xf2, 0x00, 0x00, 0x10, 0x00, // IID16915 - 0x48, 0x81, 0xf2, 0x00, 0x00, 0x00, 0x01, // IID16916 - 0x48, 0x81, 0xf2, 0x00, 0x00, 0x00, 0x10, // IID16917 - 0x48, 0x83, 0xf3, 0x01, // IID16918 - 0x48, 0x83, 0xf3, 0x10, // IID16919 - 0x48, 0x81, 0xf3, 0x00, 0x01, 0x00, 0x00, // IID16920 - 0x48, 0x81, 0xf3, 0x00, 0x10, 0x00, 0x00, // IID16921 - 0x48, 0x81, 0xf3, 0x00, 0x00, 0x01, 0x00, // IID16922 - 0x48, 0x81, 0xf3, 0x00, 0x00, 0x10, 0x00, // IID16923 - 0x48, 0x81, 0xf3, 0x00, 0x00, 0x00, 0x01, // IID16924 - 0x48, 0x81, 0xf3, 0x00, 0x00, 0x00, 0x10, // IID16925 - 0x49, 0x83, 0xf0, 0x01, // IID16926 - 0x49, 0x83, 0xf0, 0x10, // IID16927 - 0x49, 0x81, 0xf0, 0x00, 0x01, 0x00, 0x00, // IID16928 - 0x49, 0x81, 0xf0, 0x00, 0x10, 0x00, 0x00, // IID16929 - 0x49, 0x81, 0xf0, 0x00, 0x00, 0x01, 0x00, // IID16930 - 0x49, 0x81, 0xf0, 0x00, 0x00, 0x10, 0x00, // IID16931 - 0x49, 0x81, 0xf0, 0x00, 0x00, 0x00, 0x01, // IID16932 - 0x49, 0x81, 0xf0, 0x00, 0x00, 0x00, 0x10, // IID16933 - 0x49, 0x83, 0xf1, 0x01, // IID16934 - 0x49, 0x83, 0xf1, 0x10, // IID16935 - 0x49, 0x81, 0xf1, 0x00, 0x01, 0x00, 0x00, // IID16936 - 0x49, 0x81, 0xf1, 0x00, 0x10, 0x00, 0x00, // IID16937 - 0x49, 0x81, 0xf1, 0x00, 0x00, 0x01, 0x00, // IID16938 - 0x49, 0x81, 0xf1, 0x00, 0x00, 0x10, 0x00, // IID16939 - 0x49, 0x81, 0xf1, 0x00, 0x00, 0x00, 0x01, // IID16940 - 0x49, 0x81, 0xf1, 0x00, 0x00, 0x00, 0x10, // IID16941 - 0x49, 0x83, 0xf2, 0x01, // IID16942 - 0x49, 0x83, 0xf2, 0x10, // IID16943 - 0x49, 0x81, 0xf2, 0x00, 0x01, 0x00, 0x00, // IID16944 - 0x49, 0x81, 0xf2, 0x00, 0x10, 0x00, 0x00, // IID16945 - 0x49, 0x81, 0xf2, 0x00, 0x00, 0x01, 0x00, // IID16946 - 0x49, 0x81, 0xf2, 0x00, 0x00, 0x10, 0x00, // IID16947 - 0x49, 0x81, 0xf2, 0x00, 0x00, 0x00, 0x01, // IID16948 - 0x49, 0x81, 0xf2, 0x00, 0x00, 0x00, 0x10, // IID16949 - 0x49, 0x83, 0xf3, 0x01, // IID16950 - 0x49, 0x83, 0xf3, 0x10, // IID16951 - 0x49, 0x81, 0xf3, 0x00, 0x01, 0x00, 0x00, // IID16952 - 0x49, 0x81, 0xf3, 0x00, 0x10, 0x00, 0x00, // IID16953 - 0x49, 0x81, 0xf3, 0x00, 0x00, 0x01, 0x00, // IID16954 - 0x49, 0x81, 0xf3, 0x00, 0x00, 0x10, 0x00, // IID16955 - 0x49, 0x81, 0xf3, 0x00, 0x00, 0x00, 0x01, // IID16956 - 0x49, 0x81, 0xf3, 0x00, 0x00, 0x00, 0x10, // IID16957 - 0x49, 0x83, 0xf4, 0x01, // IID16958 - 0x49, 0x83, 0xf4, 0x10, // IID16959 - 0x49, 0x81, 0xf4, 0x00, 0x01, 0x00, 0x00, // IID16960 - 0x49, 0x81, 0xf4, 0x00, 0x10, 0x00, 0x00, // IID16961 - 0x49, 0x81, 0xf4, 0x00, 0x00, 0x01, 0x00, // IID16962 - 0x49, 0x81, 0xf4, 0x00, 0x00, 0x10, 0x00, // IID16963 - 0x49, 0x81, 0xf4, 0x00, 0x00, 0x00, 0x01, // IID16964 - 0x49, 0x81, 0xf4, 0x00, 0x00, 0x00, 0x10, // IID16965 - 0x49, 0x83, 0xf5, 0x01, // IID16966 - 0x49, 0x83, 0xf5, 0x10, // IID16967 - 0x49, 0x81, 0xf5, 0x00, 0x01, 0x00, 0x00, // IID16968 - 0x49, 0x81, 0xf5, 0x00, 0x10, 0x00, 0x00, // IID16969 - 0x49, 0x81, 0xf5, 0x00, 0x00, 0x01, 0x00, // IID16970 - 0x49, 0x81, 0xf5, 0x00, 0x00, 0x10, 0x00, // IID16971 - 0x49, 0x81, 0xf5, 0x00, 0x00, 0x00, 0x01, // IID16972 - 0x49, 0x81, 0xf5, 0x00, 0x00, 0x00, 0x10, // IID16973 - 0x49, 0x83, 0xf6, 0x01, // IID16974 - 0x49, 0x83, 0xf6, 0x10, // IID16975 - 0x49, 0x81, 0xf6, 0x00, 0x01, 0x00, 0x00, // IID16976 - 0x49, 0x81, 0xf6, 0x00, 0x10, 0x00, 0x00, // IID16977 - 0x49, 0x81, 0xf6, 0x00, 0x00, 0x01, 0x00, // IID16978 - 0x49, 0x81, 0xf6, 0x00, 0x00, 0x10, 0x00, // IID16979 - 0x49, 0x81, 0xf6, 0x00, 0x00, 0x00, 0x01, // IID16980 - 0x49, 0x81, 0xf6, 0x00, 0x00, 0x00, 0x10, // IID16981 - 0x49, 0x83, 0xf7, 0x01, // IID16982 - 0x49, 0x83, 0xf7, 0x10, // IID16983 - 0x49, 0x81, 0xf7, 0x00, 0x01, 0x00, 0x00, // IID16984 - 0x49, 0x81, 0xf7, 0x00, 0x10, 0x00, 0x00, // IID16985 - 0x49, 0x81, 0xf7, 0x00, 0x00, 0x01, 0x00, // IID16986 - 0x49, 0x81, 0xf7, 0x00, 0x00, 0x10, 0x00, // IID16987 - 0x49, 0x81, 0xf7, 0x00, 0x00, 0x00, 0x01, // IID16988 - 0x49, 0x81, 0xf7, 0x00, 0x00, 0x00, 0x10, // IID16989 - 0xd5, 0x18, 0x83, 0xf0, 0x01, // IID16990 - 0xd5, 0x18, 0x83, 0xf0, 0x10, // IID16991 - 0xd5, 0x18, 0x81, 0xf0, 0x00, 0x01, 0x00, 0x00, // IID16992 - 0xd5, 0x18, 0x81, 0xf0, 0x00, 0x10, 0x00, 0x00, // IID16993 - 0xd5, 0x18, 0x81, 0xf0, 0x00, 0x00, 0x01, 0x00, // IID16994 - 0xd5, 0x18, 0x81, 0xf0, 0x00, 0x00, 0x10, 0x00, // IID16995 - 0xd5, 0x18, 0x81, 0xf0, 0x00, 0x00, 0x00, 0x01, // IID16996 - 0xd5, 0x18, 0x81, 0xf0, 0x00, 0x00, 0x00, 0x10, // IID16997 - 0xd5, 0x18, 0x83, 0xf1, 0x01, // IID16998 - 0xd5, 0x18, 0x83, 0xf1, 0x10, // IID16999 - 0xd5, 0x18, 0x81, 0xf1, 0x00, 0x01, 0x00, 0x00, // IID17000 - 0xd5, 0x18, 0x81, 0xf1, 0x00, 0x10, 0x00, 0x00, // IID17001 - 0xd5, 0x18, 0x81, 0xf1, 0x00, 0x00, 0x01, 0x00, // IID17002 - 0xd5, 0x18, 0x81, 0xf1, 0x00, 0x00, 0x10, 0x00, // IID17003 - 0xd5, 0x18, 0x81, 0xf1, 0x00, 0x00, 0x00, 0x01, // IID17004 - 0xd5, 0x18, 0x81, 0xf1, 0x00, 0x00, 0x00, 0x10, // IID17005 - 0xd5, 0x18, 0x83, 0xf2, 0x01, // IID17006 - 0xd5, 0x18, 0x83, 0xf2, 0x10, // IID17007 - 0xd5, 0x18, 0x81, 0xf2, 0x00, 0x01, 0x00, 0x00, // IID17008 - 0xd5, 0x18, 0x81, 0xf2, 0x00, 0x10, 0x00, 0x00, // IID17009 - 0xd5, 0x18, 0x81, 0xf2, 0x00, 0x00, 0x01, 0x00, // IID17010 - 0xd5, 0x18, 0x81, 0xf2, 0x00, 0x00, 0x10, 0x00, // IID17011 - 0xd5, 0x18, 0x81, 0xf2, 0x00, 0x00, 0x00, 0x01, // IID17012 - 0xd5, 0x18, 0x81, 0xf2, 0x00, 0x00, 0x00, 0x10, // IID17013 - 0xd5, 0x18, 0x83, 0xf3, 0x01, // IID17014 - 0xd5, 0x18, 0x83, 0xf3, 0x10, // IID17015 - 0xd5, 0x18, 0x81, 0xf3, 0x00, 0x01, 0x00, 0x00, // IID17016 - 0xd5, 0x18, 0x81, 0xf3, 0x00, 0x10, 0x00, 0x00, // IID17017 - 0xd5, 0x18, 0x81, 0xf3, 0x00, 0x00, 0x01, 0x00, // IID17018 - 0xd5, 0x18, 0x81, 0xf3, 0x00, 0x00, 0x10, 0x00, // IID17019 - 0xd5, 0x18, 0x81, 0xf3, 0x00, 0x00, 0x00, 0x01, // IID17020 - 0xd5, 0x18, 0x81, 0xf3, 0x00, 0x00, 0x00, 0x10, // IID17021 - 0xd5, 0x18, 0x83, 0xf4, 0x01, // IID17022 - 0xd5, 0x18, 0x83, 0xf4, 0x10, // IID17023 - 0xd5, 0x18, 0x81, 0xf4, 0x00, 0x01, 0x00, 0x00, // IID17024 - 0xd5, 0x18, 0x81, 0xf4, 0x00, 0x10, 0x00, 0x00, // IID17025 - 0xd5, 0x18, 0x81, 0xf4, 0x00, 0x00, 0x01, 0x00, // IID17026 - 0xd5, 0x18, 0x81, 0xf4, 0x00, 0x00, 0x10, 0x00, // IID17027 - 0xd5, 0x18, 0x81, 0xf4, 0x00, 0x00, 0x00, 0x01, // IID17028 - 0xd5, 0x18, 0x81, 0xf4, 0x00, 0x00, 0x00, 0x10, // IID17029 - 0xd5, 0x18, 0x83, 0xf5, 0x01, // IID17030 - 0xd5, 0x18, 0x83, 0xf5, 0x10, // IID17031 - 0xd5, 0x18, 0x81, 0xf5, 0x00, 0x01, 0x00, 0x00, // IID17032 - 0xd5, 0x18, 0x81, 0xf5, 0x00, 0x10, 0x00, 0x00, // IID17033 - 0xd5, 0x18, 0x81, 0xf5, 0x00, 0x00, 0x01, 0x00, // IID17034 - 0xd5, 0x18, 0x81, 0xf5, 0x00, 0x00, 0x10, 0x00, // IID17035 - 0xd5, 0x18, 0x81, 0xf5, 0x00, 0x00, 0x00, 0x01, // IID17036 - 0xd5, 0x18, 0x81, 0xf5, 0x00, 0x00, 0x00, 0x10, // IID17037 - 0xd5, 0x18, 0x83, 0xf6, 0x01, // IID17038 - 0xd5, 0x18, 0x83, 0xf6, 0x10, // IID17039 - 0xd5, 0x18, 0x81, 0xf6, 0x00, 0x01, 0x00, 0x00, // IID17040 - 0xd5, 0x18, 0x81, 0xf6, 0x00, 0x10, 0x00, 0x00, // IID17041 - 0xd5, 0x18, 0x81, 0xf6, 0x00, 0x00, 0x01, 0x00, // IID17042 - 0xd5, 0x18, 0x81, 0xf6, 0x00, 0x00, 0x10, 0x00, // IID17043 - 0xd5, 0x18, 0x81, 0xf6, 0x00, 0x00, 0x00, 0x01, // IID17044 - 0xd5, 0x18, 0x81, 0xf6, 0x00, 0x00, 0x00, 0x10, // IID17045 - 0xd5, 0x18, 0x83, 0xf7, 0x01, // IID17046 - 0xd5, 0x18, 0x83, 0xf7, 0x10, // IID17047 - 0xd5, 0x18, 0x81, 0xf7, 0x00, 0x01, 0x00, 0x00, // IID17048 - 0xd5, 0x18, 0x81, 0xf7, 0x00, 0x10, 0x00, 0x00, // IID17049 - 0xd5, 0x18, 0x81, 0xf7, 0x00, 0x00, 0x01, 0x00, // IID17050 - 0xd5, 0x18, 0x81, 0xf7, 0x00, 0x00, 0x10, 0x00, // IID17051 - 0xd5, 0x18, 0x81, 0xf7, 0x00, 0x00, 0x00, 0x01, // IID17052 - 0xd5, 0x18, 0x81, 0xf7, 0x00, 0x00, 0x00, 0x10, // IID17053 - 0xd5, 0x19, 0x83, 0xf0, 0x01, // IID17054 - 0xd5, 0x19, 0x83, 0xf0, 0x10, // IID17055 - 0xd5, 0x19, 0x81, 0xf0, 0x00, 0x01, 0x00, 0x00, // IID17056 - 0xd5, 0x19, 0x81, 0xf0, 0x00, 0x10, 0x00, 0x00, // IID17057 - 0xd5, 0x19, 0x81, 0xf0, 0x00, 0x00, 0x01, 0x00, // IID17058 - 0xd5, 0x19, 0x81, 0xf0, 0x00, 0x00, 0x10, 0x00, // IID17059 - 0xd5, 0x19, 0x81, 0xf0, 0x00, 0x00, 0x00, 0x01, // IID17060 - 0xd5, 0x19, 0x81, 0xf0, 0x00, 0x00, 0x00, 0x10, // IID17061 - 0xd5, 0x19, 0x83, 0xf1, 0x01, // IID17062 - 0xd5, 0x19, 0x83, 0xf1, 0x10, // IID17063 - 0xd5, 0x19, 0x81, 0xf1, 0x00, 0x01, 0x00, 0x00, // IID17064 - 0xd5, 0x19, 0x81, 0xf1, 0x00, 0x10, 0x00, 0x00, // IID17065 - 0xd5, 0x19, 0x81, 0xf1, 0x00, 0x00, 0x01, 0x00, // IID17066 - 0xd5, 0x19, 0x81, 0xf1, 0x00, 0x00, 0x10, 0x00, // IID17067 - 0xd5, 0x19, 0x81, 0xf1, 0x00, 0x00, 0x00, 0x01, // IID17068 - 0xd5, 0x19, 0x81, 0xf1, 0x00, 0x00, 0x00, 0x10, // IID17069 - 0xd5, 0x19, 0x83, 0xf2, 0x01, // IID17070 - 0xd5, 0x19, 0x83, 0xf2, 0x10, // IID17071 - 0xd5, 0x19, 0x81, 0xf2, 0x00, 0x01, 0x00, 0x00, // IID17072 - 0xd5, 0x19, 0x81, 0xf2, 0x00, 0x10, 0x00, 0x00, // IID17073 - 0xd5, 0x19, 0x81, 0xf2, 0x00, 0x00, 0x01, 0x00, // IID17074 - 0xd5, 0x19, 0x81, 0xf2, 0x00, 0x00, 0x10, 0x00, // IID17075 - 0xd5, 0x19, 0x81, 0xf2, 0x00, 0x00, 0x00, 0x01, // IID17076 - 0xd5, 0x19, 0x81, 0xf2, 0x00, 0x00, 0x00, 0x10, // IID17077 - 0xd5, 0x19, 0x83, 0xf3, 0x01, // IID17078 - 0xd5, 0x19, 0x83, 0xf3, 0x10, // IID17079 - 0xd5, 0x19, 0x81, 0xf3, 0x00, 0x01, 0x00, 0x00, // IID17080 - 0xd5, 0x19, 0x81, 0xf3, 0x00, 0x10, 0x00, 0x00, // IID17081 - 0xd5, 0x19, 0x81, 0xf3, 0x00, 0x00, 0x01, 0x00, // IID17082 - 0xd5, 0x19, 0x81, 0xf3, 0x00, 0x00, 0x10, 0x00, // IID17083 - 0xd5, 0x19, 0x81, 0xf3, 0x00, 0x00, 0x00, 0x01, // IID17084 - 0xd5, 0x19, 0x81, 0xf3, 0x00, 0x00, 0x00, 0x10, // IID17085 - 0xd5, 0x19, 0x83, 0xf4, 0x01, // IID17086 - 0xd5, 0x19, 0x83, 0xf4, 0x10, // IID17087 - 0xd5, 0x19, 0x81, 0xf4, 0x00, 0x01, 0x00, 0x00, // IID17088 - 0xd5, 0x19, 0x81, 0xf4, 0x00, 0x10, 0x00, 0x00, // IID17089 - 0xd5, 0x19, 0x81, 0xf4, 0x00, 0x00, 0x01, 0x00, // IID17090 - 0xd5, 0x19, 0x81, 0xf4, 0x00, 0x00, 0x10, 0x00, // IID17091 - 0xd5, 0x19, 0x81, 0xf4, 0x00, 0x00, 0x00, 0x01, // IID17092 - 0xd5, 0x19, 0x81, 0xf4, 0x00, 0x00, 0x00, 0x10, // IID17093 - 0xd5, 0x19, 0x83, 0xf5, 0x01, // IID17094 - 0xd5, 0x19, 0x83, 0xf5, 0x10, // IID17095 - 0xd5, 0x19, 0x81, 0xf5, 0x00, 0x01, 0x00, 0x00, // IID17096 - 0xd5, 0x19, 0x81, 0xf5, 0x00, 0x10, 0x00, 0x00, // IID17097 - 0xd5, 0x19, 0x81, 0xf5, 0x00, 0x00, 0x01, 0x00, // IID17098 - 0xd5, 0x19, 0x81, 0xf5, 0x00, 0x00, 0x10, 0x00, // IID17099 - 0xd5, 0x19, 0x81, 0xf5, 0x00, 0x00, 0x00, 0x01, // IID17100 - 0xd5, 0x19, 0x81, 0xf5, 0x00, 0x00, 0x00, 0x10, // IID17101 - 0xd5, 0x19, 0x83, 0xf6, 0x01, // IID17102 - 0xd5, 0x19, 0x83, 0xf6, 0x10, // IID17103 - 0xd5, 0x19, 0x81, 0xf6, 0x00, 0x01, 0x00, 0x00, // IID17104 - 0xd5, 0x19, 0x81, 0xf6, 0x00, 0x10, 0x00, 0x00, // IID17105 - 0xd5, 0x19, 0x81, 0xf6, 0x00, 0x00, 0x01, 0x00, // IID17106 - 0xd5, 0x19, 0x81, 0xf6, 0x00, 0x00, 0x10, 0x00, // IID17107 - 0xd5, 0x19, 0x81, 0xf6, 0x00, 0x00, 0x00, 0x01, // IID17108 - 0xd5, 0x19, 0x81, 0xf6, 0x00, 0x00, 0x00, 0x10, // IID17109 - 0xd5, 0x19, 0x83, 0xf7, 0x01, // IID17110 - 0xd5, 0x19, 0x83, 0xf7, 0x10, // IID17111 - 0xd5, 0x19, 0x81, 0xf7, 0x00, 0x01, 0x00, 0x00, // IID17112 - 0xd5, 0x19, 0x81, 0xf7, 0x00, 0x10, 0x00, 0x00, // IID17113 - 0xd5, 0x19, 0x81, 0xf7, 0x00, 0x00, 0x01, 0x00, // IID17114 - 0xd5, 0x19, 0x81, 0xf7, 0x00, 0x00, 0x10, 0x00, // IID17115 - 0xd5, 0x19, 0x81, 0xf7, 0x00, 0x00, 0x00, 0x01, // IID17116 - 0xd5, 0x19, 0x81, 0xf7, 0x00, 0x00, 0x00, 0x10, // IID17117 - 0x48, 0xc7, 0xc1, 0x01, 0x00, 0x00, 0x00, // IID17118 - 0x48, 0xc7, 0xc1, 0x10, 0x00, 0x00, 0x00, // IID17119 - 0x48, 0xc7, 0xc1, 0x00, 0x01, 0x00, 0x00, // IID17120 - 0x48, 0xc7, 0xc1, 0x00, 0x10, 0x00, 0x00, // IID17121 - 0x48, 0xc7, 0xc1, 0x00, 0x00, 0x01, 0x00, // IID17122 - 0x48, 0xc7, 0xc1, 0x00, 0x00, 0x10, 0x00, // IID17123 - 0x48, 0xc7, 0xc1, 0x00, 0x00, 0x00, 0x01, // IID17124 - 0x48, 0xc7, 0xc1, 0x00, 0x00, 0x00, 0x10, // IID17125 - 0x48, 0xc7, 0xc2, 0x01, 0x00, 0x00, 0x00, // IID17126 - 0x48, 0xc7, 0xc2, 0x10, 0x00, 0x00, 0x00, // IID17127 - 0x48, 0xc7, 0xc2, 0x00, 0x01, 0x00, 0x00, // IID17128 - 0x48, 0xc7, 0xc2, 0x00, 0x10, 0x00, 0x00, // IID17129 - 0x48, 0xc7, 0xc2, 0x00, 0x00, 0x01, 0x00, // IID17130 - 0x48, 0xc7, 0xc2, 0x00, 0x00, 0x10, 0x00, // IID17131 - 0x48, 0xc7, 0xc2, 0x00, 0x00, 0x00, 0x01, // IID17132 - 0x48, 0xc7, 0xc2, 0x00, 0x00, 0x00, 0x10, // IID17133 - 0x48, 0xc7, 0xc3, 0x01, 0x00, 0x00, 0x00, // IID17134 - 0x48, 0xc7, 0xc3, 0x10, 0x00, 0x00, 0x00, // IID17135 - 0x48, 0xc7, 0xc3, 0x00, 0x01, 0x00, 0x00, // IID17136 - 0x48, 0xc7, 0xc3, 0x00, 0x10, 0x00, 0x00, // IID17137 - 0x48, 0xc7, 0xc3, 0x00, 0x00, 0x01, 0x00, // IID17138 - 0x48, 0xc7, 0xc3, 0x00, 0x00, 0x10, 0x00, // IID17139 - 0x48, 0xc7, 0xc3, 0x00, 0x00, 0x00, 0x01, // IID17140 - 0x48, 0xc7, 0xc3, 0x00, 0x00, 0x00, 0x10, // IID17141 - 0x49, 0xc7, 0xc0, 0x01, 0x00, 0x00, 0x00, // IID17142 - 0x49, 0xc7, 0xc0, 0x10, 0x00, 0x00, 0x00, // IID17143 - 0x49, 0xc7, 0xc0, 0x00, 0x01, 0x00, 0x00, // IID17144 - 0x49, 0xc7, 0xc0, 0x00, 0x10, 0x00, 0x00, // IID17145 - 0x49, 0xc7, 0xc0, 0x00, 0x00, 0x01, 0x00, // IID17146 - 0x49, 0xc7, 0xc0, 0x00, 0x00, 0x10, 0x00, // IID17147 - 0x49, 0xc7, 0xc0, 0x00, 0x00, 0x00, 0x01, // IID17148 - 0x49, 0xc7, 0xc0, 0x00, 0x00, 0x00, 0x10, // IID17149 - 0x49, 0xc7, 0xc1, 0x01, 0x00, 0x00, 0x00, // IID17150 - 0x49, 0xc7, 0xc1, 0x10, 0x00, 0x00, 0x00, // IID17151 - 0x49, 0xc7, 0xc1, 0x00, 0x01, 0x00, 0x00, // IID17152 - 0x49, 0xc7, 0xc1, 0x00, 0x10, 0x00, 0x00, // IID17153 - 0x49, 0xc7, 0xc1, 0x00, 0x00, 0x01, 0x00, // IID17154 - 0x49, 0xc7, 0xc1, 0x00, 0x00, 0x10, 0x00, // IID17155 - 0x49, 0xc7, 0xc1, 0x00, 0x00, 0x00, 0x01, // IID17156 - 0x49, 0xc7, 0xc1, 0x00, 0x00, 0x00, 0x10, // IID17157 - 0x49, 0xc7, 0xc2, 0x01, 0x00, 0x00, 0x00, // IID17158 - 0x49, 0xc7, 0xc2, 0x10, 0x00, 0x00, 0x00, // IID17159 - 0x49, 0xc7, 0xc2, 0x00, 0x01, 0x00, 0x00, // IID17160 - 0x49, 0xc7, 0xc2, 0x00, 0x10, 0x00, 0x00, // IID17161 - 0x49, 0xc7, 0xc2, 0x00, 0x00, 0x01, 0x00, // IID17162 - 0x49, 0xc7, 0xc2, 0x00, 0x00, 0x10, 0x00, // IID17163 - 0x49, 0xc7, 0xc2, 0x00, 0x00, 0x00, 0x01, // IID17164 - 0x49, 0xc7, 0xc2, 0x00, 0x00, 0x00, 0x10, // IID17165 - 0x49, 0xc7, 0xc3, 0x01, 0x00, 0x00, 0x00, // IID17166 - 0x49, 0xc7, 0xc3, 0x10, 0x00, 0x00, 0x00, // IID17167 - 0x49, 0xc7, 0xc3, 0x00, 0x01, 0x00, 0x00, // IID17168 - 0x49, 0xc7, 0xc3, 0x00, 0x10, 0x00, 0x00, // IID17169 - 0x49, 0xc7, 0xc3, 0x00, 0x00, 0x01, 0x00, // IID17170 - 0x49, 0xc7, 0xc3, 0x00, 0x00, 0x10, 0x00, // IID17171 - 0x49, 0xc7, 0xc3, 0x00, 0x00, 0x00, 0x01, // IID17172 - 0x49, 0xc7, 0xc3, 0x00, 0x00, 0x00, 0x10, // IID17173 - 0x49, 0xc7, 0xc4, 0x01, 0x00, 0x00, 0x00, // IID17174 - 0x49, 0xc7, 0xc4, 0x10, 0x00, 0x00, 0x00, // IID17175 - 0x49, 0xc7, 0xc4, 0x00, 0x01, 0x00, 0x00, // IID17176 - 0x49, 0xc7, 0xc4, 0x00, 0x10, 0x00, 0x00, // IID17177 - 0x49, 0xc7, 0xc4, 0x00, 0x00, 0x01, 0x00, // IID17178 - 0x49, 0xc7, 0xc4, 0x00, 0x00, 0x10, 0x00, // IID17179 - 0x49, 0xc7, 0xc4, 0x00, 0x00, 0x00, 0x01, // IID17180 - 0x49, 0xc7, 0xc4, 0x00, 0x00, 0x00, 0x10, // IID17181 - 0x49, 0xc7, 0xc5, 0x01, 0x00, 0x00, 0x00, // IID17182 - 0x49, 0xc7, 0xc5, 0x10, 0x00, 0x00, 0x00, // IID17183 - 0x49, 0xc7, 0xc5, 0x00, 0x01, 0x00, 0x00, // IID17184 - 0x49, 0xc7, 0xc5, 0x00, 0x10, 0x00, 0x00, // IID17185 - 0x49, 0xc7, 0xc5, 0x00, 0x00, 0x01, 0x00, // IID17186 - 0x49, 0xc7, 0xc5, 0x00, 0x00, 0x10, 0x00, // IID17187 - 0x49, 0xc7, 0xc5, 0x00, 0x00, 0x00, 0x01, // IID17188 - 0x49, 0xc7, 0xc5, 0x00, 0x00, 0x00, 0x10, // IID17189 - 0x49, 0xc7, 0xc6, 0x01, 0x00, 0x00, 0x00, // IID17190 - 0x49, 0xc7, 0xc6, 0x10, 0x00, 0x00, 0x00, // IID17191 - 0x49, 0xc7, 0xc6, 0x00, 0x01, 0x00, 0x00, // IID17192 - 0x49, 0xc7, 0xc6, 0x00, 0x10, 0x00, 0x00, // IID17193 - 0x49, 0xc7, 0xc6, 0x00, 0x00, 0x01, 0x00, // IID17194 - 0x49, 0xc7, 0xc6, 0x00, 0x00, 0x10, 0x00, // IID17195 - 0x49, 0xc7, 0xc6, 0x00, 0x00, 0x00, 0x01, // IID17196 - 0x49, 0xc7, 0xc6, 0x00, 0x00, 0x00, 0x10, // IID17197 - 0x49, 0xc7, 0xc7, 0x01, 0x00, 0x00, 0x00, // IID17198 - 0x49, 0xc7, 0xc7, 0x10, 0x00, 0x00, 0x00, // IID17199 - 0x49, 0xc7, 0xc7, 0x00, 0x01, 0x00, 0x00, // IID17200 - 0x49, 0xc7, 0xc7, 0x00, 0x10, 0x00, 0x00, // IID17201 - 0x49, 0xc7, 0xc7, 0x00, 0x00, 0x01, 0x00, // IID17202 - 0x49, 0xc7, 0xc7, 0x00, 0x00, 0x10, 0x00, // IID17203 - 0x49, 0xc7, 0xc7, 0x00, 0x00, 0x00, 0x01, // IID17204 - 0x49, 0xc7, 0xc7, 0x00, 0x00, 0x00, 0x10, // IID17205 - 0xd5, 0x18, 0xc7, 0xc0, 0x01, 0x00, 0x00, 0x00, // IID17206 - 0xd5, 0x18, 0xc7, 0xc0, 0x10, 0x00, 0x00, 0x00, // IID17207 - 0xd5, 0x18, 0xc7, 0xc0, 0x00, 0x01, 0x00, 0x00, // IID17208 - 0xd5, 0x18, 0xc7, 0xc0, 0x00, 0x10, 0x00, 0x00, // IID17209 - 0xd5, 0x18, 0xc7, 0xc0, 0x00, 0x00, 0x01, 0x00, // IID17210 - 0xd5, 0x18, 0xc7, 0xc0, 0x00, 0x00, 0x10, 0x00, // IID17211 - 0xd5, 0x18, 0xc7, 0xc0, 0x00, 0x00, 0x00, 0x01, // IID17212 - 0xd5, 0x18, 0xc7, 0xc0, 0x00, 0x00, 0x00, 0x10, // IID17213 - 0xd5, 0x18, 0xc7, 0xc1, 0x01, 0x00, 0x00, 0x00, // IID17214 - 0xd5, 0x18, 0xc7, 0xc1, 0x10, 0x00, 0x00, 0x00, // IID17215 - 0xd5, 0x18, 0xc7, 0xc1, 0x00, 0x01, 0x00, 0x00, // IID17216 - 0xd5, 0x18, 0xc7, 0xc1, 0x00, 0x10, 0x00, 0x00, // IID17217 - 0xd5, 0x18, 0xc7, 0xc1, 0x00, 0x00, 0x01, 0x00, // IID17218 - 0xd5, 0x18, 0xc7, 0xc1, 0x00, 0x00, 0x10, 0x00, // IID17219 - 0xd5, 0x18, 0xc7, 0xc1, 0x00, 0x00, 0x00, 0x01, // IID17220 - 0xd5, 0x18, 0xc7, 0xc1, 0x00, 0x00, 0x00, 0x10, // IID17221 - 0xd5, 0x18, 0xc7, 0xc2, 0x01, 0x00, 0x00, 0x00, // IID17222 - 0xd5, 0x18, 0xc7, 0xc2, 0x10, 0x00, 0x00, 0x00, // IID17223 - 0xd5, 0x18, 0xc7, 0xc2, 0x00, 0x01, 0x00, 0x00, // IID17224 - 0xd5, 0x18, 0xc7, 0xc2, 0x00, 0x10, 0x00, 0x00, // IID17225 - 0xd5, 0x18, 0xc7, 0xc2, 0x00, 0x00, 0x01, 0x00, // IID17226 - 0xd5, 0x18, 0xc7, 0xc2, 0x00, 0x00, 0x10, 0x00, // IID17227 - 0xd5, 0x18, 0xc7, 0xc2, 0x00, 0x00, 0x00, 0x01, // IID17228 - 0xd5, 0x18, 0xc7, 0xc2, 0x00, 0x00, 0x00, 0x10, // IID17229 - 0xd5, 0x18, 0xc7, 0xc3, 0x01, 0x00, 0x00, 0x00, // IID17230 - 0xd5, 0x18, 0xc7, 0xc3, 0x10, 0x00, 0x00, 0x00, // IID17231 - 0xd5, 0x18, 0xc7, 0xc3, 0x00, 0x01, 0x00, 0x00, // IID17232 - 0xd5, 0x18, 0xc7, 0xc3, 0x00, 0x10, 0x00, 0x00, // IID17233 - 0xd5, 0x18, 0xc7, 0xc3, 0x00, 0x00, 0x01, 0x00, // IID17234 - 0xd5, 0x18, 0xc7, 0xc3, 0x00, 0x00, 0x10, 0x00, // IID17235 - 0xd5, 0x18, 0xc7, 0xc3, 0x00, 0x00, 0x00, 0x01, // IID17236 - 0xd5, 0x18, 0xc7, 0xc3, 0x00, 0x00, 0x00, 0x10, // IID17237 - 0xd5, 0x18, 0xc7, 0xc4, 0x01, 0x00, 0x00, 0x00, // IID17238 - 0xd5, 0x18, 0xc7, 0xc4, 0x10, 0x00, 0x00, 0x00, // IID17239 - 0xd5, 0x18, 0xc7, 0xc4, 0x00, 0x01, 0x00, 0x00, // IID17240 - 0xd5, 0x18, 0xc7, 0xc4, 0x00, 0x10, 0x00, 0x00, // IID17241 - 0xd5, 0x18, 0xc7, 0xc4, 0x00, 0x00, 0x01, 0x00, // IID17242 - 0xd5, 0x18, 0xc7, 0xc4, 0x00, 0x00, 0x10, 0x00, // IID17243 - 0xd5, 0x18, 0xc7, 0xc4, 0x00, 0x00, 0x00, 0x01, // IID17244 - 0xd5, 0x18, 0xc7, 0xc4, 0x00, 0x00, 0x00, 0x10, // IID17245 - 0xd5, 0x18, 0xc7, 0xc5, 0x01, 0x00, 0x00, 0x00, // IID17246 - 0xd5, 0x18, 0xc7, 0xc5, 0x10, 0x00, 0x00, 0x00, // IID17247 - 0xd5, 0x18, 0xc7, 0xc5, 0x00, 0x01, 0x00, 0x00, // IID17248 - 0xd5, 0x18, 0xc7, 0xc5, 0x00, 0x10, 0x00, 0x00, // IID17249 - 0xd5, 0x18, 0xc7, 0xc5, 0x00, 0x00, 0x01, 0x00, // IID17250 - 0xd5, 0x18, 0xc7, 0xc5, 0x00, 0x00, 0x10, 0x00, // IID17251 - 0xd5, 0x18, 0xc7, 0xc5, 0x00, 0x00, 0x00, 0x01, // IID17252 - 0xd5, 0x18, 0xc7, 0xc5, 0x00, 0x00, 0x00, 0x10, // IID17253 - 0xd5, 0x18, 0xc7, 0xc6, 0x01, 0x00, 0x00, 0x00, // IID17254 - 0xd5, 0x18, 0xc7, 0xc6, 0x10, 0x00, 0x00, 0x00, // IID17255 - 0xd5, 0x18, 0xc7, 0xc6, 0x00, 0x01, 0x00, 0x00, // IID17256 - 0xd5, 0x18, 0xc7, 0xc6, 0x00, 0x10, 0x00, 0x00, // IID17257 - 0xd5, 0x18, 0xc7, 0xc6, 0x00, 0x00, 0x01, 0x00, // IID17258 - 0xd5, 0x18, 0xc7, 0xc6, 0x00, 0x00, 0x10, 0x00, // IID17259 - 0xd5, 0x18, 0xc7, 0xc6, 0x00, 0x00, 0x00, 0x01, // IID17260 - 0xd5, 0x18, 0xc7, 0xc6, 0x00, 0x00, 0x00, 0x10, // IID17261 - 0xd5, 0x18, 0xc7, 0xc7, 0x01, 0x00, 0x00, 0x00, // IID17262 - 0xd5, 0x18, 0xc7, 0xc7, 0x10, 0x00, 0x00, 0x00, // IID17263 - 0xd5, 0x18, 0xc7, 0xc7, 0x00, 0x01, 0x00, 0x00, // IID17264 - 0xd5, 0x18, 0xc7, 0xc7, 0x00, 0x10, 0x00, 0x00, // IID17265 - 0xd5, 0x18, 0xc7, 0xc7, 0x00, 0x00, 0x01, 0x00, // IID17266 - 0xd5, 0x18, 0xc7, 0xc7, 0x00, 0x00, 0x10, 0x00, // IID17267 - 0xd5, 0x18, 0xc7, 0xc7, 0x00, 0x00, 0x00, 0x01, // IID17268 - 0xd5, 0x18, 0xc7, 0xc7, 0x00, 0x00, 0x00, 0x10, // IID17269 - 0xd5, 0x19, 0xc7, 0xc0, 0x01, 0x00, 0x00, 0x00, // IID17270 - 0xd5, 0x19, 0xc7, 0xc0, 0x10, 0x00, 0x00, 0x00, // IID17271 - 0xd5, 0x19, 0xc7, 0xc0, 0x00, 0x01, 0x00, 0x00, // IID17272 - 0xd5, 0x19, 0xc7, 0xc0, 0x00, 0x10, 0x00, 0x00, // IID17273 - 0xd5, 0x19, 0xc7, 0xc0, 0x00, 0x00, 0x01, 0x00, // IID17274 - 0xd5, 0x19, 0xc7, 0xc0, 0x00, 0x00, 0x10, 0x00, // IID17275 - 0xd5, 0x19, 0xc7, 0xc0, 0x00, 0x00, 0x00, 0x01, // IID17276 - 0xd5, 0x19, 0xc7, 0xc0, 0x00, 0x00, 0x00, 0x10, // IID17277 - 0xd5, 0x19, 0xc7, 0xc1, 0x01, 0x00, 0x00, 0x00, // IID17278 - 0xd5, 0x19, 0xc7, 0xc1, 0x10, 0x00, 0x00, 0x00, // IID17279 - 0xd5, 0x19, 0xc7, 0xc1, 0x00, 0x01, 0x00, 0x00, // IID17280 - 0xd5, 0x19, 0xc7, 0xc1, 0x00, 0x10, 0x00, 0x00, // IID17281 - 0xd5, 0x19, 0xc7, 0xc1, 0x00, 0x00, 0x01, 0x00, // IID17282 - 0xd5, 0x19, 0xc7, 0xc1, 0x00, 0x00, 0x10, 0x00, // IID17283 - 0xd5, 0x19, 0xc7, 0xc1, 0x00, 0x00, 0x00, 0x01, // IID17284 - 0xd5, 0x19, 0xc7, 0xc1, 0x00, 0x00, 0x00, 0x10, // IID17285 - 0xd5, 0x19, 0xc7, 0xc2, 0x01, 0x00, 0x00, 0x00, // IID17286 - 0xd5, 0x19, 0xc7, 0xc2, 0x10, 0x00, 0x00, 0x00, // IID17287 - 0xd5, 0x19, 0xc7, 0xc2, 0x00, 0x01, 0x00, 0x00, // IID17288 - 0xd5, 0x19, 0xc7, 0xc2, 0x00, 0x10, 0x00, 0x00, // IID17289 - 0xd5, 0x19, 0xc7, 0xc2, 0x00, 0x00, 0x01, 0x00, // IID17290 - 0xd5, 0x19, 0xc7, 0xc2, 0x00, 0x00, 0x10, 0x00, // IID17291 - 0xd5, 0x19, 0xc7, 0xc2, 0x00, 0x00, 0x00, 0x01, // IID17292 - 0xd5, 0x19, 0xc7, 0xc2, 0x00, 0x00, 0x00, 0x10, // IID17293 - 0xd5, 0x19, 0xc7, 0xc3, 0x01, 0x00, 0x00, 0x00, // IID17294 - 0xd5, 0x19, 0xc7, 0xc3, 0x10, 0x00, 0x00, 0x00, // IID17295 - 0xd5, 0x19, 0xc7, 0xc3, 0x00, 0x01, 0x00, 0x00, // IID17296 - 0xd5, 0x19, 0xc7, 0xc3, 0x00, 0x10, 0x00, 0x00, // IID17297 - 0xd5, 0x19, 0xc7, 0xc3, 0x00, 0x00, 0x01, 0x00, // IID17298 - 0xd5, 0x19, 0xc7, 0xc3, 0x00, 0x00, 0x10, 0x00, // IID17299 - 0xd5, 0x19, 0xc7, 0xc3, 0x00, 0x00, 0x00, 0x01, // IID17300 - 0xd5, 0x19, 0xc7, 0xc3, 0x00, 0x00, 0x00, 0x10, // IID17301 - 0xd5, 0x19, 0xc7, 0xc4, 0x01, 0x00, 0x00, 0x00, // IID17302 - 0xd5, 0x19, 0xc7, 0xc4, 0x10, 0x00, 0x00, 0x00, // IID17303 - 0xd5, 0x19, 0xc7, 0xc4, 0x00, 0x01, 0x00, 0x00, // IID17304 - 0xd5, 0x19, 0xc7, 0xc4, 0x00, 0x10, 0x00, 0x00, // IID17305 - 0xd5, 0x19, 0xc7, 0xc4, 0x00, 0x00, 0x01, 0x00, // IID17306 - 0xd5, 0x19, 0xc7, 0xc4, 0x00, 0x00, 0x10, 0x00, // IID17307 - 0xd5, 0x19, 0xc7, 0xc4, 0x00, 0x00, 0x00, 0x01, // IID17308 - 0xd5, 0x19, 0xc7, 0xc4, 0x00, 0x00, 0x00, 0x10, // IID17309 - 0xd5, 0x19, 0xc7, 0xc5, 0x01, 0x00, 0x00, 0x00, // IID17310 - 0xd5, 0x19, 0xc7, 0xc5, 0x10, 0x00, 0x00, 0x00, // IID17311 - 0xd5, 0x19, 0xc7, 0xc5, 0x00, 0x01, 0x00, 0x00, // IID17312 - 0xd5, 0x19, 0xc7, 0xc5, 0x00, 0x10, 0x00, 0x00, // IID17313 - 0xd5, 0x19, 0xc7, 0xc5, 0x00, 0x00, 0x01, 0x00, // IID17314 - 0xd5, 0x19, 0xc7, 0xc5, 0x00, 0x00, 0x10, 0x00, // IID17315 - 0xd5, 0x19, 0xc7, 0xc5, 0x00, 0x00, 0x00, 0x01, // IID17316 - 0xd5, 0x19, 0xc7, 0xc5, 0x00, 0x00, 0x00, 0x10, // IID17317 - 0xd5, 0x19, 0xc7, 0xc6, 0x01, 0x00, 0x00, 0x00, // IID17318 - 0xd5, 0x19, 0xc7, 0xc6, 0x10, 0x00, 0x00, 0x00, // IID17319 - 0xd5, 0x19, 0xc7, 0xc6, 0x00, 0x01, 0x00, 0x00, // IID17320 - 0xd5, 0x19, 0xc7, 0xc6, 0x00, 0x10, 0x00, 0x00, // IID17321 - 0xd5, 0x19, 0xc7, 0xc6, 0x00, 0x00, 0x01, 0x00, // IID17322 - 0xd5, 0x19, 0xc7, 0xc6, 0x00, 0x00, 0x10, 0x00, // IID17323 - 0xd5, 0x19, 0xc7, 0xc6, 0x00, 0x00, 0x00, 0x01, // IID17324 - 0xd5, 0x19, 0xc7, 0xc6, 0x00, 0x00, 0x00, 0x10, // IID17325 - 0xd5, 0x19, 0xc7, 0xc7, 0x01, 0x00, 0x00, 0x00, // IID17326 - 0xd5, 0x19, 0xc7, 0xc7, 0x10, 0x00, 0x00, 0x00, // IID17327 - 0xd5, 0x19, 0xc7, 0xc7, 0x00, 0x01, 0x00, 0x00, // IID17328 - 0xd5, 0x19, 0xc7, 0xc7, 0x00, 0x10, 0x00, 0x00, // IID17329 - 0xd5, 0x19, 0xc7, 0xc7, 0x00, 0x00, 0x01, 0x00, // IID17330 - 0xd5, 0x19, 0xc7, 0xc7, 0x00, 0x00, 0x10, 0x00, // IID17331 - 0xd5, 0x19, 0xc7, 0xc7, 0x00, 0x00, 0x00, 0x01, // IID17332 - 0xd5, 0x19, 0xc7, 0xc7, 0x00, 0x00, 0x00, 0x10, // IID17333 - 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // IID17334 - 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, // IID17335 - 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, // IID17336 - 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // IID17337 - 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // IID17338 - 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, // IID17339 - 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, // IID17340 - 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, // IID17341 - 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, // IID17342 - 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, // IID17343 - 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, // IID17344 - 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, // IID17345 - 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, // IID17346 - 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, // IID17347 - 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // IID17348 - 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, // IID17349 - 0x48, 0xba, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // IID17350 - 0x48, 0xba, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, // IID17351 - 0x48, 0xba, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, // IID17352 - 0x48, 0xba, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // IID17353 - 0x48, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // IID17354 - 0x48, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, // IID17355 - 0x48, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, // IID17356 - 0x48, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, // IID17357 - 0x48, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, // IID17358 - 0x48, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, // IID17359 - 0x48, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, // IID17360 - 0x48, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, // IID17361 - 0x48, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, // IID17362 - 0x48, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, // IID17363 - 0x48, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // IID17364 - 0x48, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, // IID17365 - 0x48, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // IID17366 - 0x48, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, // IID17367 - 0x48, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, // IID17368 - 0x48, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // IID17369 - 0x48, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // IID17370 - 0x48, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, // IID17371 - 0x48, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, // IID17372 - 0x48, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, // IID17373 - 0x48, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, // IID17374 - 0x48, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, // IID17375 - 0x48, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, // IID17376 - 0x48, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, // IID17377 - 0x48, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, // IID17378 - 0x48, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, // IID17379 - 0x48, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // IID17380 - 0x48, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, // IID17381 - 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // IID17382 - 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, // IID17383 - 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, // IID17384 - 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // IID17385 - 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // IID17386 - 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, // IID17387 - 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, // IID17388 - 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, // IID17389 - 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, // IID17390 - 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, // IID17391 - 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, // IID17392 - 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, // IID17393 - 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, // IID17394 - 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, // IID17395 - 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // IID17396 - 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, // IID17397 - 0x49, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // IID17398 - 0x49, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, // IID17399 - 0x49, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, // IID17400 - 0x49, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // IID17401 - 0x49, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // IID17402 - 0x49, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, // IID17403 - 0x49, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, // IID17404 - 0x49, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, // IID17405 - 0x49, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, // IID17406 - 0x49, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, // IID17407 - 0x49, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, // IID17408 - 0x49, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, // IID17409 - 0x49, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, // IID17410 - 0x49, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, // IID17411 - 0x49, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // IID17412 - 0x49, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, // IID17413 - 0x49, 0xba, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // IID17414 - 0x49, 0xba, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, // IID17415 - 0x49, 0xba, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, // IID17416 - 0x49, 0xba, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // IID17417 - 0x49, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // IID17418 - 0x49, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, // IID17419 - 0x49, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, // IID17420 - 0x49, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, // IID17421 - 0x49, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, // IID17422 - 0x49, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, // IID17423 - 0x49, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, // IID17424 - 0x49, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, // IID17425 - 0x49, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, // IID17426 - 0x49, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, // IID17427 - 0x49, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // IID17428 - 0x49, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, // IID17429 - 0x49, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // IID17430 - 0x49, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, // IID17431 - 0x49, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, // IID17432 - 0x49, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // IID17433 - 0x49, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // IID17434 - 0x49, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, // IID17435 - 0x49, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, // IID17436 - 0x49, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, // IID17437 - 0x49, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, // IID17438 - 0x49, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, // IID17439 - 0x49, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, // IID17440 - 0x49, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, // IID17441 - 0x49, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, // IID17442 - 0x49, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, // IID17443 - 0x49, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // IID17444 - 0x49, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, // IID17445 - 0x49, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // IID17446 - 0x49, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, // IID17447 - 0x49, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, // IID17448 - 0x49, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // IID17449 - 0x49, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // IID17450 - 0x49, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, // IID17451 - 0x49, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, // IID17452 - 0x49, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, // IID17453 - 0x49, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, // IID17454 - 0x49, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, // IID17455 - 0x49, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, // IID17456 - 0x49, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, // IID17457 - 0x49, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, // IID17458 - 0x49, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, // IID17459 - 0x49, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // IID17460 - 0x49, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, // IID17461 - 0x49, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // IID17462 - 0x49, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, // IID17463 - 0x49, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, // IID17464 - 0x49, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // IID17465 - 0x49, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // IID17466 - 0x49, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, // IID17467 - 0x49, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, // IID17468 - 0x49, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, // IID17469 - 0x49, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, // IID17470 - 0x49, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, // IID17471 - 0x49, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, // IID17472 - 0x49, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, // IID17473 - 0x49, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, // IID17474 - 0x49, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, // IID17475 - 0x49, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // IID17476 - 0x49, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, // IID17477 - 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // IID17478 - 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, // IID17479 - 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, // IID17480 - 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // IID17481 - 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // IID17482 - 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, // IID17483 - 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, // IID17484 - 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, // IID17485 - 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, // IID17486 - 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, // IID17487 - 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, // IID17488 - 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, // IID17489 - 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, // IID17490 - 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, // IID17491 - 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // IID17492 - 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, // IID17493 - 0x49, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // IID17494 - 0x49, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, // IID17495 - 0x49, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, // IID17496 - 0x49, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // IID17497 - 0x49, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // IID17498 - 0x49, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, // IID17499 - 0x49, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, // IID17500 - 0x49, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, // IID17501 - 0x49, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, // IID17502 - 0x49, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, // IID17503 - 0x49, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, // IID17504 - 0x49, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, // IID17505 - 0x49, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, // IID17506 - 0x49, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, // IID17507 - 0x49, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // IID17508 - 0x49, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, // IID17509 - 0xd5, 0x18, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // IID17510 - 0xd5, 0x18, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, // IID17511 - 0xd5, 0x18, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, // IID17512 - 0xd5, 0x18, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // IID17513 - 0xd5, 0x18, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // IID17514 - 0xd5, 0x18, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, // IID17515 - 0xd5, 0x18, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, // IID17516 - 0xd5, 0x18, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, // IID17517 - 0xd5, 0x18, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, // IID17518 - 0xd5, 0x18, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, // IID17519 - 0xd5, 0x18, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, // IID17520 - 0xd5, 0x18, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, // IID17521 - 0xd5, 0x18, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, // IID17522 - 0xd5, 0x18, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, // IID17523 - 0xd5, 0x18, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // IID17524 - 0xd5, 0x18, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, // IID17525 - 0xd5, 0x18, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // IID17526 - 0xd5, 0x18, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, // IID17527 - 0xd5, 0x18, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, // IID17528 - 0xd5, 0x18, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // IID17529 - 0xd5, 0x18, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // IID17530 - 0xd5, 0x18, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, // IID17531 - 0xd5, 0x18, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, // IID17532 - 0xd5, 0x18, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, // IID17533 - 0xd5, 0x18, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, // IID17534 - 0xd5, 0x18, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, // IID17535 - 0xd5, 0x18, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, // IID17536 - 0xd5, 0x18, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, // IID17537 - 0xd5, 0x18, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, // IID17538 - 0xd5, 0x18, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, // IID17539 - 0xd5, 0x18, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // IID17540 - 0xd5, 0x18, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, // IID17541 - 0xd5, 0x18, 0xba, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // IID17542 - 0xd5, 0x18, 0xba, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, // IID17543 - 0xd5, 0x18, 0xba, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, // IID17544 - 0xd5, 0x18, 0xba, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // IID17545 - 0xd5, 0x18, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // IID17546 - 0xd5, 0x18, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, // IID17547 - 0xd5, 0x18, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, // IID17548 - 0xd5, 0x18, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, // IID17549 - 0xd5, 0x18, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, // IID17550 - 0xd5, 0x18, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, // IID17551 - 0xd5, 0x18, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, // IID17552 - 0xd5, 0x18, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, // IID17553 - 0xd5, 0x18, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, // IID17554 - 0xd5, 0x18, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, // IID17555 - 0xd5, 0x18, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // IID17556 - 0xd5, 0x18, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, // IID17557 - 0xd5, 0x18, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // IID17558 - 0xd5, 0x18, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, // IID17559 - 0xd5, 0x18, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, // IID17560 - 0xd5, 0x18, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // IID17561 - 0xd5, 0x18, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // IID17562 - 0xd5, 0x18, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, // IID17563 - 0xd5, 0x18, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, // IID17564 - 0xd5, 0x18, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, // IID17565 - 0xd5, 0x18, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, // IID17566 - 0xd5, 0x18, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, // IID17567 - 0xd5, 0x18, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, // IID17568 - 0xd5, 0x18, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, // IID17569 - 0xd5, 0x18, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, // IID17570 - 0xd5, 0x18, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, // IID17571 - 0xd5, 0x18, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // IID17572 - 0xd5, 0x18, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, // IID17573 - 0xd5, 0x18, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // IID17574 - 0xd5, 0x18, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, // IID17575 - 0xd5, 0x18, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, // IID17576 - 0xd5, 0x18, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // IID17577 - 0xd5, 0x18, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // IID17578 - 0xd5, 0x18, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, // IID17579 - 0xd5, 0x18, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, // IID17580 - 0xd5, 0x18, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, // IID17581 - 0xd5, 0x18, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, // IID17582 - 0xd5, 0x18, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, // IID17583 - 0xd5, 0x18, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, // IID17584 - 0xd5, 0x18, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, // IID17585 - 0xd5, 0x18, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, // IID17586 - 0xd5, 0x18, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, // IID17587 - 0xd5, 0x18, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // IID17588 - 0xd5, 0x18, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, // IID17589 - 0xd5, 0x18, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // IID17590 - 0xd5, 0x18, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, // IID17591 - 0xd5, 0x18, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, // IID17592 - 0xd5, 0x18, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // IID17593 - 0xd5, 0x18, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // IID17594 - 0xd5, 0x18, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, // IID17595 - 0xd5, 0x18, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, // IID17596 - 0xd5, 0x18, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, // IID17597 - 0xd5, 0x18, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, // IID17598 - 0xd5, 0x18, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, // IID17599 - 0xd5, 0x18, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, // IID17600 - 0xd5, 0x18, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, // IID17601 - 0xd5, 0x18, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, // IID17602 - 0xd5, 0x18, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, // IID17603 - 0xd5, 0x18, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // IID17604 - 0xd5, 0x18, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, // IID17605 - 0xd5, 0x18, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // IID17606 - 0xd5, 0x18, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, // IID17607 - 0xd5, 0x18, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, // IID17608 - 0xd5, 0x18, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // IID17609 - 0xd5, 0x18, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // IID17610 - 0xd5, 0x18, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, // IID17611 - 0xd5, 0x18, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, // IID17612 - 0xd5, 0x18, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, // IID17613 - 0xd5, 0x18, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, // IID17614 - 0xd5, 0x18, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, // IID17615 - 0xd5, 0x18, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, // IID17616 - 0xd5, 0x18, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, // IID17617 - 0xd5, 0x18, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, // IID17618 - 0xd5, 0x18, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, // IID17619 - 0xd5, 0x18, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // IID17620 - 0xd5, 0x18, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, // IID17621 - 0xd5, 0x18, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // IID17622 - 0xd5, 0x18, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, // IID17623 - 0xd5, 0x18, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, // IID17624 - 0xd5, 0x18, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // IID17625 - 0xd5, 0x18, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // IID17626 - 0xd5, 0x18, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, // IID17627 - 0xd5, 0x18, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, // IID17628 - 0xd5, 0x18, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, // IID17629 - 0xd5, 0x18, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, // IID17630 - 0xd5, 0x18, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, // IID17631 - 0xd5, 0x18, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, // IID17632 - 0xd5, 0x18, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, // IID17633 - 0xd5, 0x18, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, // IID17634 - 0xd5, 0x18, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, // IID17635 - 0xd5, 0x18, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // IID17636 - 0xd5, 0x18, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, // IID17637 - 0xd5, 0x19, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // IID17638 - 0xd5, 0x19, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, // IID17639 - 0xd5, 0x19, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, // IID17640 - 0xd5, 0x19, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // IID17641 - 0xd5, 0x19, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // IID17642 - 0xd5, 0x19, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, // IID17643 - 0xd5, 0x19, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, // IID17644 - 0xd5, 0x19, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, // IID17645 - 0xd5, 0x19, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, // IID17646 - 0xd5, 0x19, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, // IID17647 - 0xd5, 0x19, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, // IID17648 - 0xd5, 0x19, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, // IID17649 - 0xd5, 0x19, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, // IID17650 - 0xd5, 0x19, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, // IID17651 - 0xd5, 0x19, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // IID17652 - 0xd5, 0x19, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, // IID17653 - 0xd5, 0x19, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // IID17654 - 0xd5, 0x19, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, // IID17655 - 0xd5, 0x19, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, // IID17656 - 0xd5, 0x19, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // IID17657 - 0xd5, 0x19, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // IID17658 - 0xd5, 0x19, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, // IID17659 - 0xd5, 0x19, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, // IID17660 - 0xd5, 0x19, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, // IID17661 - 0xd5, 0x19, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, // IID17662 - 0xd5, 0x19, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, // IID17663 - 0xd5, 0x19, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, // IID17664 - 0xd5, 0x19, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, // IID17665 - 0xd5, 0x19, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, // IID17666 - 0xd5, 0x19, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, // IID17667 - 0xd5, 0x19, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // IID17668 - 0xd5, 0x19, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, // IID17669 - 0xd5, 0x19, 0xba, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // IID17670 - 0xd5, 0x19, 0xba, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, // IID17671 - 0xd5, 0x19, 0xba, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, // IID17672 - 0xd5, 0x19, 0xba, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // IID17673 - 0xd5, 0x19, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // IID17674 - 0xd5, 0x19, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, // IID17675 - 0xd5, 0x19, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, // IID17676 - 0xd5, 0x19, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, // IID17677 - 0xd5, 0x19, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, // IID17678 - 0xd5, 0x19, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, // IID17679 - 0xd5, 0x19, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, // IID17680 - 0xd5, 0x19, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, // IID17681 - 0xd5, 0x19, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, // IID17682 - 0xd5, 0x19, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, // IID17683 - 0xd5, 0x19, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // IID17684 - 0xd5, 0x19, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, // IID17685 - 0xd5, 0x19, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // IID17686 - 0xd5, 0x19, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, // IID17687 - 0xd5, 0x19, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, // IID17688 - 0xd5, 0x19, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // IID17689 - 0xd5, 0x19, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // IID17690 - 0xd5, 0x19, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, // IID17691 - 0xd5, 0x19, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, // IID17692 - 0xd5, 0x19, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, // IID17693 - 0xd5, 0x19, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, // IID17694 - 0xd5, 0x19, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, // IID17695 - 0xd5, 0x19, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, // IID17696 - 0xd5, 0x19, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, // IID17697 - 0xd5, 0x19, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, // IID17698 - 0xd5, 0x19, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, // IID17699 - 0xd5, 0x19, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // IID17700 - 0xd5, 0x19, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, // IID17701 - 0xd5, 0x19, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // IID17702 - 0xd5, 0x19, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, // IID17703 - 0xd5, 0x19, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, // IID17704 - 0xd5, 0x19, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // IID17705 - 0xd5, 0x19, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // IID17706 - 0xd5, 0x19, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, // IID17707 - 0xd5, 0x19, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, // IID17708 - 0xd5, 0x19, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, // IID17709 - 0xd5, 0x19, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, // IID17710 - 0xd5, 0x19, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, // IID17711 - 0xd5, 0x19, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, // IID17712 - 0xd5, 0x19, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, // IID17713 - 0xd5, 0x19, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, // IID17714 - 0xd5, 0x19, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, // IID17715 - 0xd5, 0x19, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // IID17716 - 0xd5, 0x19, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, // IID17717 - 0xd5, 0x19, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // IID17718 - 0xd5, 0x19, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, // IID17719 - 0xd5, 0x19, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, // IID17720 - 0xd5, 0x19, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // IID17721 - 0xd5, 0x19, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // IID17722 - 0xd5, 0x19, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, // IID17723 - 0xd5, 0x19, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, // IID17724 - 0xd5, 0x19, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, // IID17725 - 0xd5, 0x19, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, // IID17726 - 0xd5, 0x19, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, // IID17727 - 0xd5, 0x19, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, // IID17728 - 0xd5, 0x19, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, // IID17729 - 0xd5, 0x19, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, // IID17730 - 0xd5, 0x19, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, // IID17731 - 0xd5, 0x19, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // IID17732 - 0xd5, 0x19, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, // IID17733 - 0xd5, 0x19, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // IID17734 - 0xd5, 0x19, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, // IID17735 - 0xd5, 0x19, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, // IID17736 - 0xd5, 0x19, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // IID17737 - 0xd5, 0x19, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // IID17738 - 0xd5, 0x19, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, // IID17739 - 0xd5, 0x19, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, // IID17740 - 0xd5, 0x19, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, // IID17741 - 0xd5, 0x19, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, // IID17742 - 0xd5, 0x19, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, // IID17743 - 0xd5, 0x19, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, // IID17744 - 0xd5, 0x19, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, // IID17745 - 0xd5, 0x19, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, // IID17746 - 0xd5, 0x19, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, // IID17747 - 0xd5, 0x19, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // IID17748 - 0xd5, 0x19, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, // IID17749 - 0xd5, 0x19, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, // IID17750 - 0xd5, 0x19, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, // IID17751 - 0xd5, 0x19, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, // IID17752 - 0xd5, 0x19, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // IID17753 - 0xd5, 0x19, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // IID17754 - 0xd5, 0x19, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, // IID17755 - 0xd5, 0x19, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, // IID17756 - 0xd5, 0x19, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, // IID17757 - 0xd5, 0x19, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, // IID17758 - 0xd5, 0x19, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, // IID17759 - 0xd5, 0x19, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, // IID17760 - 0xd5, 0x19, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, // IID17761 - 0xd5, 0x19, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, // IID17762 - 0xd5, 0x19, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, // IID17763 - 0xd5, 0x19, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // IID17764 - 0xd5, 0x19, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, // IID17765 - 0x48, 0x0f, 0xba, 0xe1, 0x01, // IID17766 - 0x48, 0x0f, 0xba, 0xe1, 0x04, // IID17767 - 0x48, 0x0f, 0xba, 0xe1, 0x10, // IID17768 - 0x48, 0x0f, 0xba, 0xe1, 0x40, // IID17769 - 0x48, 0x0f, 0xba, 0xe2, 0x01, // IID17770 - 0x48, 0x0f, 0xba, 0xe2, 0x04, // IID17771 - 0x48, 0x0f, 0xba, 0xe2, 0x10, // IID17772 - 0x48, 0x0f, 0xba, 0xe2, 0x40, // IID17773 - 0x48, 0x0f, 0xba, 0xe3, 0x01, // IID17774 - 0x48, 0x0f, 0xba, 0xe3, 0x04, // IID17775 - 0x48, 0x0f, 0xba, 0xe3, 0x10, // IID17776 - 0x48, 0x0f, 0xba, 0xe3, 0x40, // IID17777 - 0x49, 0x0f, 0xba, 0xe0, 0x01, // IID17778 - 0x49, 0x0f, 0xba, 0xe0, 0x04, // IID17779 - 0x49, 0x0f, 0xba, 0xe0, 0x10, // IID17780 - 0x49, 0x0f, 0xba, 0xe0, 0x40, // IID17781 - 0x49, 0x0f, 0xba, 0xe1, 0x01, // IID17782 - 0x49, 0x0f, 0xba, 0xe1, 0x04, // IID17783 - 0x49, 0x0f, 0xba, 0xe1, 0x10, // IID17784 - 0x49, 0x0f, 0xba, 0xe1, 0x40, // IID17785 - 0x49, 0x0f, 0xba, 0xe2, 0x01, // IID17786 - 0x49, 0x0f, 0xba, 0xe2, 0x04, // IID17787 - 0x49, 0x0f, 0xba, 0xe2, 0x10, // IID17788 - 0x49, 0x0f, 0xba, 0xe2, 0x40, // IID17789 - 0x49, 0x0f, 0xba, 0xe3, 0x01, // IID17790 - 0x49, 0x0f, 0xba, 0xe3, 0x04, // IID17791 - 0x49, 0x0f, 0xba, 0xe3, 0x10, // IID17792 - 0x49, 0x0f, 0xba, 0xe3, 0x40, // IID17793 - 0x49, 0x0f, 0xba, 0xe4, 0x01, // IID17794 - 0x49, 0x0f, 0xba, 0xe4, 0x04, // IID17795 - 0x49, 0x0f, 0xba, 0xe4, 0x10, // IID17796 - 0x49, 0x0f, 0xba, 0xe4, 0x40, // IID17797 - 0x49, 0x0f, 0xba, 0xe5, 0x01, // IID17798 - 0x49, 0x0f, 0xba, 0xe5, 0x04, // IID17799 - 0x49, 0x0f, 0xba, 0xe5, 0x10, // IID17800 - 0x49, 0x0f, 0xba, 0xe5, 0x40, // IID17801 - 0x49, 0x0f, 0xba, 0xe6, 0x01, // IID17802 - 0x49, 0x0f, 0xba, 0xe6, 0x04, // IID17803 - 0x49, 0x0f, 0xba, 0xe6, 0x10, // IID17804 - 0x49, 0x0f, 0xba, 0xe6, 0x40, // IID17805 - 0x49, 0x0f, 0xba, 0xe7, 0x01, // IID17806 - 0x49, 0x0f, 0xba, 0xe7, 0x04, // IID17807 - 0x49, 0x0f, 0xba, 0xe7, 0x10, // IID17808 - 0x49, 0x0f, 0xba, 0xe7, 0x40, // IID17809 - 0xd5, 0x98, 0xba, 0xe0, 0x01, // IID17810 - 0xd5, 0x98, 0xba, 0xe0, 0x04, // IID17811 - 0xd5, 0x98, 0xba, 0xe0, 0x10, // IID17812 - 0xd5, 0x98, 0xba, 0xe0, 0x40, // IID17813 - 0xd5, 0x98, 0xba, 0xe1, 0x01, // IID17814 - 0xd5, 0x98, 0xba, 0xe1, 0x04, // IID17815 - 0xd5, 0x98, 0xba, 0xe1, 0x10, // IID17816 - 0xd5, 0x98, 0xba, 0xe1, 0x40, // IID17817 - 0xd5, 0x98, 0xba, 0xe2, 0x01, // IID17818 - 0xd5, 0x98, 0xba, 0xe2, 0x04, // IID17819 - 0xd5, 0x98, 0xba, 0xe2, 0x10, // IID17820 - 0xd5, 0x98, 0xba, 0xe2, 0x40, // IID17821 - 0xd5, 0x98, 0xba, 0xe3, 0x01, // IID17822 - 0xd5, 0x98, 0xba, 0xe3, 0x04, // IID17823 - 0xd5, 0x98, 0xba, 0xe3, 0x10, // IID17824 - 0xd5, 0x98, 0xba, 0xe3, 0x40, // IID17825 - 0xd5, 0x98, 0xba, 0xe4, 0x01, // IID17826 - 0xd5, 0x98, 0xba, 0xe4, 0x04, // IID17827 - 0xd5, 0x98, 0xba, 0xe4, 0x10, // IID17828 - 0xd5, 0x98, 0xba, 0xe4, 0x40, // IID17829 - 0xd5, 0x98, 0xba, 0xe5, 0x01, // IID17830 - 0xd5, 0x98, 0xba, 0xe5, 0x04, // IID17831 - 0xd5, 0x98, 0xba, 0xe5, 0x10, // IID17832 - 0xd5, 0x98, 0xba, 0xe5, 0x40, // IID17833 - 0xd5, 0x98, 0xba, 0xe6, 0x01, // IID17834 - 0xd5, 0x98, 0xba, 0xe6, 0x04, // IID17835 - 0xd5, 0x98, 0xba, 0xe6, 0x10, // IID17836 - 0xd5, 0x98, 0xba, 0xe6, 0x40, // IID17837 - 0xd5, 0x98, 0xba, 0xe7, 0x01, // IID17838 - 0xd5, 0x98, 0xba, 0xe7, 0x04, // IID17839 - 0xd5, 0x98, 0xba, 0xe7, 0x10, // IID17840 - 0xd5, 0x98, 0xba, 0xe7, 0x40, // IID17841 - 0xd5, 0x99, 0xba, 0xe0, 0x01, // IID17842 - 0xd5, 0x99, 0xba, 0xe0, 0x04, // IID17843 - 0xd5, 0x99, 0xba, 0xe0, 0x10, // IID17844 - 0xd5, 0x99, 0xba, 0xe0, 0x40, // IID17845 - 0xd5, 0x99, 0xba, 0xe1, 0x01, // IID17846 - 0xd5, 0x99, 0xba, 0xe1, 0x04, // IID17847 - 0xd5, 0x99, 0xba, 0xe1, 0x10, // IID17848 - 0xd5, 0x99, 0xba, 0xe1, 0x40, // IID17849 - 0xd5, 0x99, 0xba, 0xe2, 0x01, // IID17850 - 0xd5, 0x99, 0xba, 0xe2, 0x04, // IID17851 - 0xd5, 0x99, 0xba, 0xe2, 0x10, // IID17852 - 0xd5, 0x99, 0xba, 0xe2, 0x40, // IID17853 - 0xd5, 0x99, 0xba, 0xe3, 0x01, // IID17854 - 0xd5, 0x99, 0xba, 0xe3, 0x04, // IID17855 - 0xd5, 0x99, 0xba, 0xe3, 0x10, // IID17856 - 0xd5, 0x99, 0xba, 0xe3, 0x40, // IID17857 - 0xd5, 0x99, 0xba, 0xe4, 0x01, // IID17858 - 0xd5, 0x99, 0xba, 0xe4, 0x04, // IID17859 - 0xd5, 0x99, 0xba, 0xe4, 0x10, // IID17860 - 0xd5, 0x99, 0xba, 0xe4, 0x40, // IID17861 - 0xd5, 0x99, 0xba, 0xe5, 0x01, // IID17862 - 0xd5, 0x99, 0xba, 0xe5, 0x04, // IID17863 - 0xd5, 0x99, 0xba, 0xe5, 0x10, // IID17864 - 0xd5, 0x99, 0xba, 0xe5, 0x40, // IID17865 - 0xd5, 0x99, 0xba, 0xe6, 0x01, // IID17866 - 0xd5, 0x99, 0xba, 0xe6, 0x04, // IID17867 - 0xd5, 0x99, 0xba, 0xe6, 0x10, // IID17868 - 0xd5, 0x99, 0xba, 0xe6, 0x40, // IID17869 - 0xd5, 0x99, 0xba, 0xe7, 0x01, // IID17870 - 0xd5, 0x99, 0xba, 0xe7, 0x04, // IID17871 - 0xd5, 0x99, 0xba, 0xe7, 0x10, // IID17872 - 0xd5, 0x99, 0xba, 0xe7, 0x40, // IID17873 - 0x48, 0xf7, 0xc1, 0xff, 0xff, 0xff, 0xff, // IID17874 - 0x48, 0xf7, 0xc1, 0xf0, 0xff, 0xff, 0xff, // IID17875 - 0x48, 0xf7, 0xc1, 0x00, 0xff, 0xff, 0xff, // IID17876 - 0x48, 0xf7, 0xc1, 0x00, 0xf0, 0xff, 0xff, // IID17877 - 0x48, 0xf7, 0xc1, 0x00, 0x00, 0xff, 0xff, // IID17878 - 0x48, 0xf7, 0xc1, 0x00, 0x00, 0xf0, 0xff, // IID17879 - 0x48, 0xf7, 0xc1, 0x00, 0x00, 0x00, 0xff, // IID17880 - 0x48, 0xf7, 0xc1, 0x00, 0x00, 0x00, 0xf0, // IID17881 - 0x48, 0xf7, 0xc2, 0xff, 0xff, 0xff, 0xff, // IID17882 - 0x48, 0xf7, 0xc2, 0xf0, 0xff, 0xff, 0xff, // IID17883 - 0x48, 0xf7, 0xc2, 0x00, 0xff, 0xff, 0xff, // IID17884 - 0x48, 0xf7, 0xc2, 0x00, 0xf0, 0xff, 0xff, // IID17885 - 0x48, 0xf7, 0xc2, 0x00, 0x00, 0xff, 0xff, // IID17886 - 0x48, 0xf7, 0xc2, 0x00, 0x00, 0xf0, 0xff, // IID17887 - 0x48, 0xf7, 0xc2, 0x00, 0x00, 0x00, 0xff, // IID17888 - 0x48, 0xf7, 0xc2, 0x00, 0x00, 0x00, 0xf0, // IID17889 - 0x48, 0xf7, 0xc3, 0xff, 0xff, 0xff, 0xff, // IID17890 - 0x48, 0xf7, 0xc3, 0xf0, 0xff, 0xff, 0xff, // IID17891 - 0x48, 0xf7, 0xc3, 0x00, 0xff, 0xff, 0xff, // IID17892 - 0x48, 0xf7, 0xc3, 0x00, 0xf0, 0xff, 0xff, // IID17893 - 0x48, 0xf7, 0xc3, 0x00, 0x00, 0xff, 0xff, // IID17894 - 0x48, 0xf7, 0xc3, 0x00, 0x00, 0xf0, 0xff, // IID17895 - 0x48, 0xf7, 0xc3, 0x00, 0x00, 0x00, 0xff, // IID17896 - 0x48, 0xf7, 0xc3, 0x00, 0x00, 0x00, 0xf0, // IID17897 - 0x49, 0xf7, 0xc0, 0xff, 0xff, 0xff, 0xff, // IID17898 - 0x49, 0xf7, 0xc0, 0xf0, 0xff, 0xff, 0xff, // IID17899 - 0x49, 0xf7, 0xc0, 0x00, 0xff, 0xff, 0xff, // IID17900 - 0x49, 0xf7, 0xc0, 0x00, 0xf0, 0xff, 0xff, // IID17901 - 0x49, 0xf7, 0xc0, 0x00, 0x00, 0xff, 0xff, // IID17902 - 0x49, 0xf7, 0xc0, 0x00, 0x00, 0xf0, 0xff, // IID17903 - 0x49, 0xf7, 0xc0, 0x00, 0x00, 0x00, 0xff, // IID17904 - 0x49, 0xf7, 0xc0, 0x00, 0x00, 0x00, 0xf0, // IID17905 - 0x49, 0xf7, 0xc1, 0xff, 0xff, 0xff, 0xff, // IID17906 - 0x49, 0xf7, 0xc1, 0xf0, 0xff, 0xff, 0xff, // IID17907 - 0x49, 0xf7, 0xc1, 0x00, 0xff, 0xff, 0xff, // IID17908 - 0x49, 0xf7, 0xc1, 0x00, 0xf0, 0xff, 0xff, // IID17909 - 0x49, 0xf7, 0xc1, 0x00, 0x00, 0xff, 0xff, // IID17910 - 0x49, 0xf7, 0xc1, 0x00, 0x00, 0xf0, 0xff, // IID17911 - 0x49, 0xf7, 0xc1, 0x00, 0x00, 0x00, 0xff, // IID17912 - 0x49, 0xf7, 0xc1, 0x00, 0x00, 0x00, 0xf0, // IID17913 - 0x49, 0xf7, 0xc2, 0xff, 0xff, 0xff, 0xff, // IID17914 - 0x49, 0xf7, 0xc2, 0xf0, 0xff, 0xff, 0xff, // IID17915 - 0x49, 0xf7, 0xc2, 0x00, 0xff, 0xff, 0xff, // IID17916 - 0x49, 0xf7, 0xc2, 0x00, 0xf0, 0xff, 0xff, // IID17917 - 0x49, 0xf7, 0xc2, 0x00, 0x00, 0xff, 0xff, // IID17918 - 0x49, 0xf7, 0xc2, 0x00, 0x00, 0xf0, 0xff, // IID17919 - 0x49, 0xf7, 0xc2, 0x00, 0x00, 0x00, 0xff, // IID17920 - 0x49, 0xf7, 0xc2, 0x00, 0x00, 0x00, 0xf0, // IID17921 - 0x49, 0xf7, 0xc3, 0xff, 0xff, 0xff, 0xff, // IID17922 - 0x49, 0xf7, 0xc3, 0xf0, 0xff, 0xff, 0xff, // IID17923 - 0x49, 0xf7, 0xc3, 0x00, 0xff, 0xff, 0xff, // IID17924 - 0x49, 0xf7, 0xc3, 0x00, 0xf0, 0xff, 0xff, // IID17925 - 0x49, 0xf7, 0xc3, 0x00, 0x00, 0xff, 0xff, // IID17926 - 0x49, 0xf7, 0xc3, 0x00, 0x00, 0xf0, 0xff, // IID17927 - 0x49, 0xf7, 0xc3, 0x00, 0x00, 0x00, 0xff, // IID17928 - 0x49, 0xf7, 0xc3, 0x00, 0x00, 0x00, 0xf0, // IID17929 - 0x49, 0xf7, 0xc4, 0xff, 0xff, 0xff, 0xff, // IID17930 - 0x49, 0xf7, 0xc4, 0xf0, 0xff, 0xff, 0xff, // IID17931 - 0x49, 0xf7, 0xc4, 0x00, 0xff, 0xff, 0xff, // IID17932 - 0x49, 0xf7, 0xc4, 0x00, 0xf0, 0xff, 0xff, // IID17933 - 0x49, 0xf7, 0xc4, 0x00, 0x00, 0xff, 0xff, // IID17934 - 0x49, 0xf7, 0xc4, 0x00, 0x00, 0xf0, 0xff, // IID17935 - 0x49, 0xf7, 0xc4, 0x00, 0x00, 0x00, 0xff, // IID17936 - 0x49, 0xf7, 0xc4, 0x00, 0x00, 0x00, 0xf0, // IID17937 - 0x49, 0xf7, 0xc5, 0xff, 0xff, 0xff, 0xff, // IID17938 - 0x49, 0xf7, 0xc5, 0xf0, 0xff, 0xff, 0xff, // IID17939 - 0x49, 0xf7, 0xc5, 0x00, 0xff, 0xff, 0xff, // IID17940 - 0x49, 0xf7, 0xc5, 0x00, 0xf0, 0xff, 0xff, // IID17941 - 0x49, 0xf7, 0xc5, 0x00, 0x00, 0xff, 0xff, // IID17942 - 0x49, 0xf7, 0xc5, 0x00, 0x00, 0xf0, 0xff, // IID17943 - 0x49, 0xf7, 0xc5, 0x00, 0x00, 0x00, 0xff, // IID17944 - 0x49, 0xf7, 0xc5, 0x00, 0x00, 0x00, 0xf0, // IID17945 - 0x49, 0xf7, 0xc6, 0xff, 0xff, 0xff, 0xff, // IID17946 - 0x49, 0xf7, 0xc6, 0xf0, 0xff, 0xff, 0xff, // IID17947 - 0x49, 0xf7, 0xc6, 0x00, 0xff, 0xff, 0xff, // IID17948 - 0x49, 0xf7, 0xc6, 0x00, 0xf0, 0xff, 0xff, // IID17949 - 0x49, 0xf7, 0xc6, 0x00, 0x00, 0xff, 0xff, // IID17950 - 0x49, 0xf7, 0xc6, 0x00, 0x00, 0xf0, 0xff, // IID17951 - 0x49, 0xf7, 0xc6, 0x00, 0x00, 0x00, 0xff, // IID17952 - 0x49, 0xf7, 0xc6, 0x00, 0x00, 0x00, 0xf0, // IID17953 - 0x49, 0xf7, 0xc7, 0xff, 0xff, 0xff, 0xff, // IID17954 - 0x49, 0xf7, 0xc7, 0xf0, 0xff, 0xff, 0xff, // IID17955 - 0x49, 0xf7, 0xc7, 0x00, 0xff, 0xff, 0xff, // IID17956 - 0x49, 0xf7, 0xc7, 0x00, 0xf0, 0xff, 0xff, // IID17957 - 0x49, 0xf7, 0xc7, 0x00, 0x00, 0xff, 0xff, // IID17958 - 0x49, 0xf7, 0xc7, 0x00, 0x00, 0xf0, 0xff, // IID17959 - 0x49, 0xf7, 0xc7, 0x00, 0x00, 0x00, 0xff, // IID17960 - 0x49, 0xf7, 0xc7, 0x00, 0x00, 0x00, 0xf0, // IID17961 - 0xd5, 0x18, 0xf7, 0xc0, 0xff, 0xff, 0xff, 0xff, // IID17962 - 0xd5, 0x18, 0xf7, 0xc0, 0xf0, 0xff, 0xff, 0xff, // IID17963 - 0xd5, 0x18, 0xf7, 0xc0, 0x00, 0xff, 0xff, 0xff, // IID17964 - 0xd5, 0x18, 0xf7, 0xc0, 0x00, 0xf0, 0xff, 0xff, // IID17965 - 0xd5, 0x18, 0xf7, 0xc0, 0x00, 0x00, 0xff, 0xff, // IID17966 - 0xd5, 0x18, 0xf7, 0xc0, 0x00, 0x00, 0xf0, 0xff, // IID17967 - 0xd5, 0x18, 0xf7, 0xc0, 0x00, 0x00, 0x00, 0xff, // IID17968 - 0xd5, 0x18, 0xf7, 0xc0, 0x00, 0x00, 0x00, 0xf0, // IID17969 - 0xd5, 0x18, 0xf7, 0xc1, 0xff, 0xff, 0xff, 0xff, // IID17970 - 0xd5, 0x18, 0xf7, 0xc1, 0xf0, 0xff, 0xff, 0xff, // IID17971 - 0xd5, 0x18, 0xf7, 0xc1, 0x00, 0xff, 0xff, 0xff, // IID17972 - 0xd5, 0x18, 0xf7, 0xc1, 0x00, 0xf0, 0xff, 0xff, // IID17973 - 0xd5, 0x18, 0xf7, 0xc1, 0x00, 0x00, 0xff, 0xff, // IID17974 - 0xd5, 0x18, 0xf7, 0xc1, 0x00, 0x00, 0xf0, 0xff, // IID17975 - 0xd5, 0x18, 0xf7, 0xc1, 0x00, 0x00, 0x00, 0xff, // IID17976 - 0xd5, 0x18, 0xf7, 0xc1, 0x00, 0x00, 0x00, 0xf0, // IID17977 - 0xd5, 0x18, 0xf7, 0xc2, 0xff, 0xff, 0xff, 0xff, // IID17978 - 0xd5, 0x18, 0xf7, 0xc2, 0xf0, 0xff, 0xff, 0xff, // IID17979 - 0xd5, 0x18, 0xf7, 0xc2, 0x00, 0xff, 0xff, 0xff, // IID17980 - 0xd5, 0x18, 0xf7, 0xc2, 0x00, 0xf0, 0xff, 0xff, // IID17981 - 0xd5, 0x18, 0xf7, 0xc2, 0x00, 0x00, 0xff, 0xff, // IID17982 - 0xd5, 0x18, 0xf7, 0xc2, 0x00, 0x00, 0xf0, 0xff, // IID17983 - 0xd5, 0x18, 0xf7, 0xc2, 0x00, 0x00, 0x00, 0xff, // IID17984 - 0xd5, 0x18, 0xf7, 0xc2, 0x00, 0x00, 0x00, 0xf0, // IID17985 - 0xd5, 0x18, 0xf7, 0xc3, 0xff, 0xff, 0xff, 0xff, // IID17986 - 0xd5, 0x18, 0xf7, 0xc3, 0xf0, 0xff, 0xff, 0xff, // IID17987 - 0xd5, 0x18, 0xf7, 0xc3, 0x00, 0xff, 0xff, 0xff, // IID17988 - 0xd5, 0x18, 0xf7, 0xc3, 0x00, 0xf0, 0xff, 0xff, // IID17989 - 0xd5, 0x18, 0xf7, 0xc3, 0x00, 0x00, 0xff, 0xff, // IID17990 - 0xd5, 0x18, 0xf7, 0xc3, 0x00, 0x00, 0xf0, 0xff, // IID17991 - 0xd5, 0x18, 0xf7, 0xc3, 0x00, 0x00, 0x00, 0xff, // IID17992 - 0xd5, 0x18, 0xf7, 0xc3, 0x00, 0x00, 0x00, 0xf0, // IID17993 - 0xd5, 0x18, 0xf7, 0xc4, 0xff, 0xff, 0xff, 0xff, // IID17994 - 0xd5, 0x18, 0xf7, 0xc4, 0xf0, 0xff, 0xff, 0xff, // IID17995 - 0xd5, 0x18, 0xf7, 0xc4, 0x00, 0xff, 0xff, 0xff, // IID17996 - 0xd5, 0x18, 0xf7, 0xc4, 0x00, 0xf0, 0xff, 0xff, // IID17997 - 0xd5, 0x18, 0xf7, 0xc4, 0x00, 0x00, 0xff, 0xff, // IID17998 - 0xd5, 0x18, 0xf7, 0xc4, 0x00, 0x00, 0xf0, 0xff, // IID17999 - 0xd5, 0x18, 0xf7, 0xc4, 0x00, 0x00, 0x00, 0xff, // IID18000 - 0xd5, 0x18, 0xf7, 0xc4, 0x00, 0x00, 0x00, 0xf0, // IID18001 - 0xd5, 0x18, 0xf7, 0xc5, 0xff, 0xff, 0xff, 0xff, // IID18002 - 0xd5, 0x18, 0xf7, 0xc5, 0xf0, 0xff, 0xff, 0xff, // IID18003 - 0xd5, 0x18, 0xf7, 0xc5, 0x00, 0xff, 0xff, 0xff, // IID18004 - 0xd5, 0x18, 0xf7, 0xc5, 0x00, 0xf0, 0xff, 0xff, // IID18005 - 0xd5, 0x18, 0xf7, 0xc5, 0x00, 0x00, 0xff, 0xff, // IID18006 - 0xd5, 0x18, 0xf7, 0xc5, 0x00, 0x00, 0xf0, 0xff, // IID18007 - 0xd5, 0x18, 0xf7, 0xc5, 0x00, 0x00, 0x00, 0xff, // IID18008 - 0xd5, 0x18, 0xf7, 0xc5, 0x00, 0x00, 0x00, 0xf0, // IID18009 - 0xd5, 0x18, 0xf7, 0xc6, 0xff, 0xff, 0xff, 0xff, // IID18010 - 0xd5, 0x18, 0xf7, 0xc6, 0xf0, 0xff, 0xff, 0xff, // IID18011 - 0xd5, 0x18, 0xf7, 0xc6, 0x00, 0xff, 0xff, 0xff, // IID18012 - 0xd5, 0x18, 0xf7, 0xc6, 0x00, 0xf0, 0xff, 0xff, // IID18013 - 0xd5, 0x18, 0xf7, 0xc6, 0x00, 0x00, 0xff, 0xff, // IID18014 - 0xd5, 0x18, 0xf7, 0xc6, 0x00, 0x00, 0xf0, 0xff, // IID18015 - 0xd5, 0x18, 0xf7, 0xc6, 0x00, 0x00, 0x00, 0xff, // IID18016 - 0xd5, 0x18, 0xf7, 0xc6, 0x00, 0x00, 0x00, 0xf0, // IID18017 - 0xd5, 0x18, 0xf7, 0xc7, 0xff, 0xff, 0xff, 0xff, // IID18018 - 0xd5, 0x18, 0xf7, 0xc7, 0xf0, 0xff, 0xff, 0xff, // IID18019 - 0xd5, 0x18, 0xf7, 0xc7, 0x00, 0xff, 0xff, 0xff, // IID18020 - 0xd5, 0x18, 0xf7, 0xc7, 0x00, 0xf0, 0xff, 0xff, // IID18021 - 0xd5, 0x18, 0xf7, 0xc7, 0x00, 0x00, 0xff, 0xff, // IID18022 - 0xd5, 0x18, 0xf7, 0xc7, 0x00, 0x00, 0xf0, 0xff, // IID18023 - 0xd5, 0x18, 0xf7, 0xc7, 0x00, 0x00, 0x00, 0xff, // IID18024 - 0xd5, 0x18, 0xf7, 0xc7, 0x00, 0x00, 0x00, 0xf0, // IID18025 - 0xd5, 0x19, 0xf7, 0xc0, 0xff, 0xff, 0xff, 0xff, // IID18026 - 0xd5, 0x19, 0xf7, 0xc0, 0xf0, 0xff, 0xff, 0xff, // IID18027 - 0xd5, 0x19, 0xf7, 0xc0, 0x00, 0xff, 0xff, 0xff, // IID18028 - 0xd5, 0x19, 0xf7, 0xc0, 0x00, 0xf0, 0xff, 0xff, // IID18029 - 0xd5, 0x19, 0xf7, 0xc0, 0x00, 0x00, 0xff, 0xff, // IID18030 - 0xd5, 0x19, 0xf7, 0xc0, 0x00, 0x00, 0xf0, 0xff, // IID18031 - 0xd5, 0x19, 0xf7, 0xc0, 0x00, 0x00, 0x00, 0xff, // IID18032 - 0xd5, 0x19, 0xf7, 0xc0, 0x00, 0x00, 0x00, 0xf0, // IID18033 - 0xd5, 0x19, 0xf7, 0xc1, 0xff, 0xff, 0xff, 0xff, // IID18034 - 0xd5, 0x19, 0xf7, 0xc1, 0xf0, 0xff, 0xff, 0xff, // IID18035 - 0xd5, 0x19, 0xf7, 0xc1, 0x00, 0xff, 0xff, 0xff, // IID18036 - 0xd5, 0x19, 0xf7, 0xc1, 0x00, 0xf0, 0xff, 0xff, // IID18037 - 0xd5, 0x19, 0xf7, 0xc1, 0x00, 0x00, 0xff, 0xff, // IID18038 - 0xd5, 0x19, 0xf7, 0xc1, 0x00, 0x00, 0xf0, 0xff, // IID18039 - 0xd5, 0x19, 0xf7, 0xc1, 0x00, 0x00, 0x00, 0xff, // IID18040 - 0xd5, 0x19, 0xf7, 0xc1, 0x00, 0x00, 0x00, 0xf0, // IID18041 - 0xd5, 0x19, 0xf7, 0xc2, 0xff, 0xff, 0xff, 0xff, // IID18042 - 0xd5, 0x19, 0xf7, 0xc2, 0xf0, 0xff, 0xff, 0xff, // IID18043 - 0xd5, 0x19, 0xf7, 0xc2, 0x00, 0xff, 0xff, 0xff, // IID18044 - 0xd5, 0x19, 0xf7, 0xc2, 0x00, 0xf0, 0xff, 0xff, // IID18045 - 0xd5, 0x19, 0xf7, 0xc2, 0x00, 0x00, 0xff, 0xff, // IID18046 - 0xd5, 0x19, 0xf7, 0xc2, 0x00, 0x00, 0xf0, 0xff, // IID18047 - 0xd5, 0x19, 0xf7, 0xc2, 0x00, 0x00, 0x00, 0xff, // IID18048 - 0xd5, 0x19, 0xf7, 0xc2, 0x00, 0x00, 0x00, 0xf0, // IID18049 - 0xd5, 0x19, 0xf7, 0xc3, 0xff, 0xff, 0xff, 0xff, // IID18050 - 0xd5, 0x19, 0xf7, 0xc3, 0xf0, 0xff, 0xff, 0xff, // IID18051 - 0xd5, 0x19, 0xf7, 0xc3, 0x00, 0xff, 0xff, 0xff, // IID18052 - 0xd5, 0x19, 0xf7, 0xc3, 0x00, 0xf0, 0xff, 0xff, // IID18053 - 0xd5, 0x19, 0xf7, 0xc3, 0x00, 0x00, 0xff, 0xff, // IID18054 - 0xd5, 0x19, 0xf7, 0xc3, 0x00, 0x00, 0xf0, 0xff, // IID18055 - 0xd5, 0x19, 0xf7, 0xc3, 0x00, 0x00, 0x00, 0xff, // IID18056 - 0xd5, 0x19, 0xf7, 0xc3, 0x00, 0x00, 0x00, 0xf0, // IID18057 - 0xd5, 0x19, 0xf7, 0xc4, 0xff, 0xff, 0xff, 0xff, // IID18058 - 0xd5, 0x19, 0xf7, 0xc4, 0xf0, 0xff, 0xff, 0xff, // IID18059 - 0xd5, 0x19, 0xf7, 0xc4, 0x00, 0xff, 0xff, 0xff, // IID18060 - 0xd5, 0x19, 0xf7, 0xc4, 0x00, 0xf0, 0xff, 0xff, // IID18061 - 0xd5, 0x19, 0xf7, 0xc4, 0x00, 0x00, 0xff, 0xff, // IID18062 - 0xd5, 0x19, 0xf7, 0xc4, 0x00, 0x00, 0xf0, 0xff, // IID18063 - 0xd5, 0x19, 0xf7, 0xc4, 0x00, 0x00, 0x00, 0xff, // IID18064 - 0xd5, 0x19, 0xf7, 0xc4, 0x00, 0x00, 0x00, 0xf0, // IID18065 - 0xd5, 0x19, 0xf7, 0xc5, 0xff, 0xff, 0xff, 0xff, // IID18066 - 0xd5, 0x19, 0xf7, 0xc5, 0xf0, 0xff, 0xff, 0xff, // IID18067 - 0xd5, 0x19, 0xf7, 0xc5, 0x00, 0xff, 0xff, 0xff, // IID18068 - 0xd5, 0x19, 0xf7, 0xc5, 0x00, 0xf0, 0xff, 0xff, // IID18069 - 0xd5, 0x19, 0xf7, 0xc5, 0x00, 0x00, 0xff, 0xff, // IID18070 - 0xd5, 0x19, 0xf7, 0xc5, 0x00, 0x00, 0xf0, 0xff, // IID18071 - 0xd5, 0x19, 0xf7, 0xc5, 0x00, 0x00, 0x00, 0xff, // IID18072 - 0xd5, 0x19, 0xf7, 0xc5, 0x00, 0x00, 0x00, 0xf0, // IID18073 - 0xd5, 0x19, 0xf7, 0xc6, 0xff, 0xff, 0xff, 0xff, // IID18074 - 0xd5, 0x19, 0xf7, 0xc6, 0xf0, 0xff, 0xff, 0xff, // IID18075 - 0xd5, 0x19, 0xf7, 0xc6, 0x00, 0xff, 0xff, 0xff, // IID18076 - 0xd5, 0x19, 0xf7, 0xc6, 0x00, 0xf0, 0xff, 0xff, // IID18077 - 0xd5, 0x19, 0xf7, 0xc6, 0x00, 0x00, 0xff, 0xff, // IID18078 - 0xd5, 0x19, 0xf7, 0xc6, 0x00, 0x00, 0xf0, 0xff, // IID18079 - 0xd5, 0x19, 0xf7, 0xc6, 0x00, 0x00, 0x00, 0xff, // IID18080 - 0xd5, 0x19, 0xf7, 0xc6, 0x00, 0x00, 0x00, 0xf0, // IID18081 - 0xd5, 0x19, 0xf7, 0xc7, 0xff, 0xff, 0xff, 0xff, // IID18082 - 0xd5, 0x19, 0xf7, 0xc7, 0xf0, 0xff, 0xff, 0xff, // IID18083 - 0xd5, 0x19, 0xf7, 0xc7, 0x00, 0xff, 0xff, 0xff, // IID18084 - 0xd5, 0x19, 0xf7, 0xc7, 0x00, 0xf0, 0xff, 0xff, // IID18085 - 0xd5, 0x19, 0xf7, 0xc7, 0x00, 0x00, 0xff, 0xff, // IID18086 - 0xd5, 0x19, 0xf7, 0xc7, 0x00, 0x00, 0xf0, 0xff, // IID18087 - 0xd5, 0x19, 0xf7, 0xc7, 0x00, 0x00, 0x00, 0xff, // IID18088 - 0xd5, 0x19, 0xf7, 0xc7, 0x00, 0x00, 0x00, 0xf0, // IID18089 - 0x48, 0x81, 0xc9, 0x00, 0x00, 0x01, 0x00, // IID18090 - 0x48, 0x81, 0xc9, 0x00, 0x00, 0x04, 0x00, // IID18091 - 0x48, 0x81, 0xc9, 0x00, 0x00, 0x10, 0x00, // IID18092 - 0x48, 0x81, 0xc9, 0x00, 0x00, 0x40, 0x00, // IID18093 - 0x48, 0x81, 0xc9, 0x00, 0x00, 0x00, 0x01, // IID18094 - 0x48, 0x81, 0xc9, 0x00, 0x00, 0x00, 0x04, // IID18095 - 0x48, 0x81, 0xc9, 0x00, 0x00, 0x00, 0x10, // IID18096 - 0x48, 0x81, 0xc9, 0x00, 0x00, 0x00, 0x40, // IID18097 - 0x48, 0x81, 0xca, 0x00, 0x00, 0x01, 0x00, // IID18098 - 0x48, 0x81, 0xca, 0x00, 0x00, 0x04, 0x00, // IID18099 - 0x48, 0x81, 0xca, 0x00, 0x00, 0x10, 0x00, // IID18100 - 0x48, 0x81, 0xca, 0x00, 0x00, 0x40, 0x00, // IID18101 - 0x48, 0x81, 0xca, 0x00, 0x00, 0x00, 0x01, // IID18102 - 0x48, 0x81, 0xca, 0x00, 0x00, 0x00, 0x04, // IID18103 - 0x48, 0x81, 0xca, 0x00, 0x00, 0x00, 0x10, // IID18104 - 0x48, 0x81, 0xca, 0x00, 0x00, 0x00, 0x40, // IID18105 - 0x48, 0x81, 0xcb, 0x00, 0x00, 0x01, 0x00, // IID18106 - 0x48, 0x81, 0xcb, 0x00, 0x00, 0x04, 0x00, // IID18107 - 0x48, 0x81, 0xcb, 0x00, 0x00, 0x10, 0x00, // IID18108 - 0x48, 0x81, 0xcb, 0x00, 0x00, 0x40, 0x00, // IID18109 - 0x48, 0x81, 0xcb, 0x00, 0x00, 0x00, 0x01, // IID18110 - 0x48, 0x81, 0xcb, 0x00, 0x00, 0x00, 0x04, // IID18111 - 0x48, 0x81, 0xcb, 0x00, 0x00, 0x00, 0x10, // IID18112 - 0x48, 0x81, 0xcb, 0x00, 0x00, 0x00, 0x40, // IID18113 - 0x49, 0x81, 0xc8, 0x00, 0x00, 0x01, 0x00, // IID18114 - 0x49, 0x81, 0xc8, 0x00, 0x00, 0x04, 0x00, // IID18115 - 0x49, 0x81, 0xc8, 0x00, 0x00, 0x10, 0x00, // IID18116 - 0x49, 0x81, 0xc8, 0x00, 0x00, 0x40, 0x00, // IID18117 - 0x49, 0x81, 0xc8, 0x00, 0x00, 0x00, 0x01, // IID18118 - 0x49, 0x81, 0xc8, 0x00, 0x00, 0x00, 0x04, // IID18119 - 0x49, 0x81, 0xc8, 0x00, 0x00, 0x00, 0x10, // IID18120 - 0x49, 0x81, 0xc8, 0x00, 0x00, 0x00, 0x40, // IID18121 - 0x49, 0x81, 0xc9, 0x00, 0x00, 0x01, 0x00, // IID18122 - 0x49, 0x81, 0xc9, 0x00, 0x00, 0x04, 0x00, // IID18123 - 0x49, 0x81, 0xc9, 0x00, 0x00, 0x10, 0x00, // IID18124 - 0x49, 0x81, 0xc9, 0x00, 0x00, 0x40, 0x00, // IID18125 - 0x49, 0x81, 0xc9, 0x00, 0x00, 0x00, 0x01, // IID18126 - 0x49, 0x81, 0xc9, 0x00, 0x00, 0x00, 0x04, // IID18127 - 0x49, 0x81, 0xc9, 0x00, 0x00, 0x00, 0x10, // IID18128 - 0x49, 0x81, 0xc9, 0x00, 0x00, 0x00, 0x40, // IID18129 - 0x49, 0x81, 0xca, 0x00, 0x00, 0x01, 0x00, // IID18130 - 0x49, 0x81, 0xca, 0x00, 0x00, 0x04, 0x00, // IID18131 - 0x49, 0x81, 0xca, 0x00, 0x00, 0x10, 0x00, // IID18132 - 0x49, 0x81, 0xca, 0x00, 0x00, 0x40, 0x00, // IID18133 - 0x49, 0x81, 0xca, 0x00, 0x00, 0x00, 0x01, // IID18134 - 0x49, 0x81, 0xca, 0x00, 0x00, 0x00, 0x04, // IID18135 - 0x49, 0x81, 0xca, 0x00, 0x00, 0x00, 0x10, // IID18136 - 0x49, 0x81, 0xca, 0x00, 0x00, 0x00, 0x40, // IID18137 - 0x49, 0x81, 0xcb, 0x00, 0x00, 0x01, 0x00, // IID18138 - 0x49, 0x81, 0xcb, 0x00, 0x00, 0x04, 0x00, // IID18139 - 0x49, 0x81, 0xcb, 0x00, 0x00, 0x10, 0x00, // IID18140 - 0x49, 0x81, 0xcb, 0x00, 0x00, 0x40, 0x00, // IID18141 - 0x49, 0x81, 0xcb, 0x00, 0x00, 0x00, 0x01, // IID18142 - 0x49, 0x81, 0xcb, 0x00, 0x00, 0x00, 0x04, // IID18143 - 0x49, 0x81, 0xcb, 0x00, 0x00, 0x00, 0x10, // IID18144 - 0x49, 0x81, 0xcb, 0x00, 0x00, 0x00, 0x40, // IID18145 - 0x49, 0x81, 0xcc, 0x00, 0x00, 0x01, 0x00, // IID18146 - 0x49, 0x81, 0xcc, 0x00, 0x00, 0x04, 0x00, // IID18147 - 0x49, 0x81, 0xcc, 0x00, 0x00, 0x10, 0x00, // IID18148 - 0x49, 0x81, 0xcc, 0x00, 0x00, 0x40, 0x00, // IID18149 - 0x49, 0x81, 0xcc, 0x00, 0x00, 0x00, 0x01, // IID18150 - 0x49, 0x81, 0xcc, 0x00, 0x00, 0x00, 0x04, // IID18151 - 0x49, 0x81, 0xcc, 0x00, 0x00, 0x00, 0x10, // IID18152 - 0x49, 0x81, 0xcc, 0x00, 0x00, 0x00, 0x40, // IID18153 - 0x49, 0x81, 0xcd, 0x00, 0x00, 0x01, 0x00, // IID18154 - 0x49, 0x81, 0xcd, 0x00, 0x00, 0x04, 0x00, // IID18155 - 0x49, 0x81, 0xcd, 0x00, 0x00, 0x10, 0x00, // IID18156 - 0x49, 0x81, 0xcd, 0x00, 0x00, 0x40, 0x00, // IID18157 - 0x49, 0x81, 0xcd, 0x00, 0x00, 0x00, 0x01, // IID18158 - 0x49, 0x81, 0xcd, 0x00, 0x00, 0x00, 0x04, // IID18159 - 0x49, 0x81, 0xcd, 0x00, 0x00, 0x00, 0x10, // IID18160 - 0x49, 0x81, 0xcd, 0x00, 0x00, 0x00, 0x40, // IID18161 - 0x49, 0x81, 0xce, 0x00, 0x00, 0x01, 0x00, // IID18162 - 0x49, 0x81, 0xce, 0x00, 0x00, 0x04, 0x00, // IID18163 - 0x49, 0x81, 0xce, 0x00, 0x00, 0x10, 0x00, // IID18164 - 0x49, 0x81, 0xce, 0x00, 0x00, 0x40, 0x00, // IID18165 - 0x49, 0x81, 0xce, 0x00, 0x00, 0x00, 0x01, // IID18166 - 0x49, 0x81, 0xce, 0x00, 0x00, 0x00, 0x04, // IID18167 - 0x49, 0x81, 0xce, 0x00, 0x00, 0x00, 0x10, // IID18168 - 0x49, 0x81, 0xce, 0x00, 0x00, 0x00, 0x40, // IID18169 - 0x49, 0x81, 0xcf, 0x00, 0x00, 0x01, 0x00, // IID18170 - 0x49, 0x81, 0xcf, 0x00, 0x00, 0x04, 0x00, // IID18171 - 0x49, 0x81, 0xcf, 0x00, 0x00, 0x10, 0x00, // IID18172 - 0x49, 0x81, 0xcf, 0x00, 0x00, 0x40, 0x00, // IID18173 - 0x49, 0x81, 0xcf, 0x00, 0x00, 0x00, 0x01, // IID18174 - 0x49, 0x81, 0xcf, 0x00, 0x00, 0x00, 0x04, // IID18175 - 0x49, 0x81, 0xcf, 0x00, 0x00, 0x00, 0x10, // IID18176 - 0x49, 0x81, 0xcf, 0x00, 0x00, 0x00, 0x40, // IID18177 - 0xd5, 0x18, 0x81, 0xc8, 0x00, 0x00, 0x01, 0x00, // IID18178 - 0xd5, 0x18, 0x81, 0xc8, 0x00, 0x00, 0x04, 0x00, // IID18179 - 0xd5, 0x18, 0x81, 0xc8, 0x00, 0x00, 0x10, 0x00, // IID18180 - 0xd5, 0x18, 0x81, 0xc8, 0x00, 0x00, 0x40, 0x00, // IID18181 - 0xd5, 0x18, 0x81, 0xc8, 0x00, 0x00, 0x00, 0x01, // IID18182 - 0xd5, 0x18, 0x81, 0xc8, 0x00, 0x00, 0x00, 0x04, // IID18183 - 0xd5, 0x18, 0x81, 0xc8, 0x00, 0x00, 0x00, 0x10, // IID18184 - 0xd5, 0x18, 0x81, 0xc8, 0x00, 0x00, 0x00, 0x40, // IID18185 - 0xd5, 0x18, 0x81, 0xc9, 0x00, 0x00, 0x01, 0x00, // IID18186 - 0xd5, 0x18, 0x81, 0xc9, 0x00, 0x00, 0x04, 0x00, // IID18187 - 0xd5, 0x18, 0x81, 0xc9, 0x00, 0x00, 0x10, 0x00, // IID18188 - 0xd5, 0x18, 0x81, 0xc9, 0x00, 0x00, 0x40, 0x00, // IID18189 - 0xd5, 0x18, 0x81, 0xc9, 0x00, 0x00, 0x00, 0x01, // IID18190 - 0xd5, 0x18, 0x81, 0xc9, 0x00, 0x00, 0x00, 0x04, // IID18191 - 0xd5, 0x18, 0x81, 0xc9, 0x00, 0x00, 0x00, 0x10, // IID18192 - 0xd5, 0x18, 0x81, 0xc9, 0x00, 0x00, 0x00, 0x40, // IID18193 - 0xd5, 0x18, 0x81, 0xca, 0x00, 0x00, 0x01, 0x00, // IID18194 - 0xd5, 0x18, 0x81, 0xca, 0x00, 0x00, 0x04, 0x00, // IID18195 - 0xd5, 0x18, 0x81, 0xca, 0x00, 0x00, 0x10, 0x00, // IID18196 - 0xd5, 0x18, 0x81, 0xca, 0x00, 0x00, 0x40, 0x00, // IID18197 - 0xd5, 0x18, 0x81, 0xca, 0x00, 0x00, 0x00, 0x01, // IID18198 - 0xd5, 0x18, 0x81, 0xca, 0x00, 0x00, 0x00, 0x04, // IID18199 - 0xd5, 0x18, 0x81, 0xca, 0x00, 0x00, 0x00, 0x10, // IID18200 - 0xd5, 0x18, 0x81, 0xca, 0x00, 0x00, 0x00, 0x40, // IID18201 - 0xd5, 0x18, 0x81, 0xcb, 0x00, 0x00, 0x01, 0x00, // IID18202 - 0xd5, 0x18, 0x81, 0xcb, 0x00, 0x00, 0x04, 0x00, // IID18203 - 0xd5, 0x18, 0x81, 0xcb, 0x00, 0x00, 0x10, 0x00, // IID18204 - 0xd5, 0x18, 0x81, 0xcb, 0x00, 0x00, 0x40, 0x00, // IID18205 - 0xd5, 0x18, 0x81, 0xcb, 0x00, 0x00, 0x00, 0x01, // IID18206 - 0xd5, 0x18, 0x81, 0xcb, 0x00, 0x00, 0x00, 0x04, // IID18207 - 0xd5, 0x18, 0x81, 0xcb, 0x00, 0x00, 0x00, 0x10, // IID18208 - 0xd5, 0x18, 0x81, 0xcb, 0x00, 0x00, 0x00, 0x40, // IID18209 - 0xd5, 0x18, 0x81, 0xcc, 0x00, 0x00, 0x01, 0x00, // IID18210 - 0xd5, 0x18, 0x81, 0xcc, 0x00, 0x00, 0x04, 0x00, // IID18211 - 0xd5, 0x18, 0x81, 0xcc, 0x00, 0x00, 0x10, 0x00, // IID18212 - 0xd5, 0x18, 0x81, 0xcc, 0x00, 0x00, 0x40, 0x00, // IID18213 - 0xd5, 0x18, 0x81, 0xcc, 0x00, 0x00, 0x00, 0x01, // IID18214 - 0xd5, 0x18, 0x81, 0xcc, 0x00, 0x00, 0x00, 0x04, // IID18215 - 0xd5, 0x18, 0x81, 0xcc, 0x00, 0x00, 0x00, 0x10, // IID18216 - 0xd5, 0x18, 0x81, 0xcc, 0x00, 0x00, 0x00, 0x40, // IID18217 - 0xd5, 0x18, 0x81, 0xcd, 0x00, 0x00, 0x01, 0x00, // IID18218 - 0xd5, 0x18, 0x81, 0xcd, 0x00, 0x00, 0x04, 0x00, // IID18219 - 0xd5, 0x18, 0x81, 0xcd, 0x00, 0x00, 0x10, 0x00, // IID18220 - 0xd5, 0x18, 0x81, 0xcd, 0x00, 0x00, 0x40, 0x00, // IID18221 - 0xd5, 0x18, 0x81, 0xcd, 0x00, 0x00, 0x00, 0x01, // IID18222 - 0xd5, 0x18, 0x81, 0xcd, 0x00, 0x00, 0x00, 0x04, // IID18223 - 0xd5, 0x18, 0x81, 0xcd, 0x00, 0x00, 0x00, 0x10, // IID18224 - 0xd5, 0x18, 0x81, 0xcd, 0x00, 0x00, 0x00, 0x40, // IID18225 - 0xd5, 0x18, 0x81, 0xce, 0x00, 0x00, 0x01, 0x00, // IID18226 - 0xd5, 0x18, 0x81, 0xce, 0x00, 0x00, 0x04, 0x00, // IID18227 - 0xd5, 0x18, 0x81, 0xce, 0x00, 0x00, 0x10, 0x00, // IID18228 - 0xd5, 0x18, 0x81, 0xce, 0x00, 0x00, 0x40, 0x00, // IID18229 - 0xd5, 0x18, 0x81, 0xce, 0x00, 0x00, 0x00, 0x01, // IID18230 - 0xd5, 0x18, 0x81, 0xce, 0x00, 0x00, 0x00, 0x04, // IID18231 - 0xd5, 0x18, 0x81, 0xce, 0x00, 0x00, 0x00, 0x10, // IID18232 - 0xd5, 0x18, 0x81, 0xce, 0x00, 0x00, 0x00, 0x40, // IID18233 - 0xd5, 0x18, 0x81, 0xcf, 0x00, 0x00, 0x01, 0x00, // IID18234 - 0xd5, 0x18, 0x81, 0xcf, 0x00, 0x00, 0x04, 0x00, // IID18235 - 0xd5, 0x18, 0x81, 0xcf, 0x00, 0x00, 0x10, 0x00, // IID18236 - 0xd5, 0x18, 0x81, 0xcf, 0x00, 0x00, 0x40, 0x00, // IID18237 - 0xd5, 0x18, 0x81, 0xcf, 0x00, 0x00, 0x00, 0x01, // IID18238 - 0xd5, 0x18, 0x81, 0xcf, 0x00, 0x00, 0x00, 0x04, // IID18239 - 0xd5, 0x18, 0x81, 0xcf, 0x00, 0x00, 0x00, 0x10, // IID18240 - 0xd5, 0x18, 0x81, 0xcf, 0x00, 0x00, 0x00, 0x40, // IID18241 - 0xd5, 0x19, 0x81, 0xc8, 0x00, 0x00, 0x01, 0x00, // IID18242 - 0xd5, 0x19, 0x81, 0xc8, 0x00, 0x00, 0x04, 0x00, // IID18243 - 0xd5, 0x19, 0x81, 0xc8, 0x00, 0x00, 0x10, 0x00, // IID18244 - 0xd5, 0x19, 0x81, 0xc8, 0x00, 0x00, 0x40, 0x00, // IID18245 - 0xd5, 0x19, 0x81, 0xc8, 0x00, 0x00, 0x00, 0x01, // IID18246 - 0xd5, 0x19, 0x81, 0xc8, 0x00, 0x00, 0x00, 0x04, // IID18247 - 0xd5, 0x19, 0x81, 0xc8, 0x00, 0x00, 0x00, 0x10, // IID18248 - 0xd5, 0x19, 0x81, 0xc8, 0x00, 0x00, 0x00, 0x40, // IID18249 - 0xd5, 0x19, 0x81, 0xc9, 0x00, 0x00, 0x01, 0x00, // IID18250 - 0xd5, 0x19, 0x81, 0xc9, 0x00, 0x00, 0x04, 0x00, // IID18251 - 0xd5, 0x19, 0x81, 0xc9, 0x00, 0x00, 0x10, 0x00, // IID18252 - 0xd5, 0x19, 0x81, 0xc9, 0x00, 0x00, 0x40, 0x00, // IID18253 - 0xd5, 0x19, 0x81, 0xc9, 0x00, 0x00, 0x00, 0x01, // IID18254 - 0xd5, 0x19, 0x81, 0xc9, 0x00, 0x00, 0x00, 0x04, // IID18255 - 0xd5, 0x19, 0x81, 0xc9, 0x00, 0x00, 0x00, 0x10, // IID18256 - 0xd5, 0x19, 0x81, 0xc9, 0x00, 0x00, 0x00, 0x40, // IID18257 - 0xd5, 0x19, 0x81, 0xca, 0x00, 0x00, 0x01, 0x00, // IID18258 - 0xd5, 0x19, 0x81, 0xca, 0x00, 0x00, 0x04, 0x00, // IID18259 - 0xd5, 0x19, 0x81, 0xca, 0x00, 0x00, 0x10, 0x00, // IID18260 - 0xd5, 0x19, 0x81, 0xca, 0x00, 0x00, 0x40, 0x00, // IID18261 - 0xd5, 0x19, 0x81, 0xca, 0x00, 0x00, 0x00, 0x01, // IID18262 - 0xd5, 0x19, 0x81, 0xca, 0x00, 0x00, 0x00, 0x04, // IID18263 - 0xd5, 0x19, 0x81, 0xca, 0x00, 0x00, 0x00, 0x10, // IID18264 - 0xd5, 0x19, 0x81, 0xca, 0x00, 0x00, 0x00, 0x40, // IID18265 - 0xd5, 0x19, 0x81, 0xcb, 0x00, 0x00, 0x01, 0x00, // IID18266 - 0xd5, 0x19, 0x81, 0xcb, 0x00, 0x00, 0x04, 0x00, // IID18267 - 0xd5, 0x19, 0x81, 0xcb, 0x00, 0x00, 0x10, 0x00, // IID18268 - 0xd5, 0x19, 0x81, 0xcb, 0x00, 0x00, 0x40, 0x00, // IID18269 - 0xd5, 0x19, 0x81, 0xcb, 0x00, 0x00, 0x00, 0x01, // IID18270 - 0xd5, 0x19, 0x81, 0xcb, 0x00, 0x00, 0x00, 0x04, // IID18271 - 0xd5, 0x19, 0x81, 0xcb, 0x00, 0x00, 0x00, 0x10, // IID18272 - 0xd5, 0x19, 0x81, 0xcb, 0x00, 0x00, 0x00, 0x40, // IID18273 - 0xd5, 0x19, 0x81, 0xcc, 0x00, 0x00, 0x01, 0x00, // IID18274 - 0xd5, 0x19, 0x81, 0xcc, 0x00, 0x00, 0x04, 0x00, // IID18275 - 0xd5, 0x19, 0x81, 0xcc, 0x00, 0x00, 0x10, 0x00, // IID18276 - 0xd5, 0x19, 0x81, 0xcc, 0x00, 0x00, 0x40, 0x00, // IID18277 - 0xd5, 0x19, 0x81, 0xcc, 0x00, 0x00, 0x00, 0x01, // IID18278 - 0xd5, 0x19, 0x81, 0xcc, 0x00, 0x00, 0x00, 0x04, // IID18279 - 0xd5, 0x19, 0x81, 0xcc, 0x00, 0x00, 0x00, 0x10, // IID18280 - 0xd5, 0x19, 0x81, 0xcc, 0x00, 0x00, 0x00, 0x40, // IID18281 - 0xd5, 0x19, 0x81, 0xcd, 0x00, 0x00, 0x01, 0x00, // IID18282 - 0xd5, 0x19, 0x81, 0xcd, 0x00, 0x00, 0x04, 0x00, // IID18283 - 0xd5, 0x19, 0x81, 0xcd, 0x00, 0x00, 0x10, 0x00, // IID18284 - 0xd5, 0x19, 0x81, 0xcd, 0x00, 0x00, 0x40, 0x00, // IID18285 - 0xd5, 0x19, 0x81, 0xcd, 0x00, 0x00, 0x00, 0x01, // IID18286 - 0xd5, 0x19, 0x81, 0xcd, 0x00, 0x00, 0x00, 0x04, // IID18287 - 0xd5, 0x19, 0x81, 0xcd, 0x00, 0x00, 0x00, 0x10, // IID18288 - 0xd5, 0x19, 0x81, 0xcd, 0x00, 0x00, 0x00, 0x40, // IID18289 - 0xd5, 0x19, 0x81, 0xce, 0x00, 0x00, 0x01, 0x00, // IID18290 - 0xd5, 0x19, 0x81, 0xce, 0x00, 0x00, 0x04, 0x00, // IID18291 - 0xd5, 0x19, 0x81, 0xce, 0x00, 0x00, 0x10, 0x00, // IID18292 - 0xd5, 0x19, 0x81, 0xce, 0x00, 0x00, 0x40, 0x00, // IID18293 - 0xd5, 0x19, 0x81, 0xce, 0x00, 0x00, 0x00, 0x01, // IID18294 - 0xd5, 0x19, 0x81, 0xce, 0x00, 0x00, 0x00, 0x04, // IID18295 - 0xd5, 0x19, 0x81, 0xce, 0x00, 0x00, 0x00, 0x10, // IID18296 - 0xd5, 0x19, 0x81, 0xce, 0x00, 0x00, 0x00, 0x40, // IID18297 - 0xd5, 0x19, 0x81, 0xcf, 0x00, 0x00, 0x01, 0x00, // IID18298 - 0xd5, 0x19, 0x81, 0xcf, 0x00, 0x00, 0x04, 0x00, // IID18299 - 0xd5, 0x19, 0x81, 0xcf, 0x00, 0x00, 0x10, 0x00, // IID18300 - 0xd5, 0x19, 0x81, 0xcf, 0x00, 0x00, 0x40, 0x00, // IID18301 - 0xd5, 0x19, 0x81, 0xcf, 0x00, 0x00, 0x00, 0x01, // IID18302 - 0xd5, 0x19, 0x81, 0xcf, 0x00, 0x00, 0x00, 0x04, // IID18303 - 0xd5, 0x19, 0x81, 0xcf, 0x00, 0x00, 0x00, 0x10, // IID18304 - 0xd5, 0x19, 0x81, 0xcf, 0x00, 0x00, 0x00, 0x40, // IID18305 - 0x48, 0x81, 0xe9, 0x00, 0x00, 0x01, 0x00, // IID18306 - 0x48, 0x81, 0xe9, 0x00, 0x00, 0x04, 0x00, // IID18307 - 0x48, 0x81, 0xe9, 0x00, 0x00, 0x10, 0x00, // IID18308 - 0x48, 0x81, 0xe9, 0x00, 0x00, 0x40, 0x00, // IID18309 - 0x48, 0x81, 0xe9, 0x00, 0x00, 0x00, 0x01, // IID18310 - 0x48, 0x81, 0xe9, 0x00, 0x00, 0x00, 0x04, // IID18311 - 0x48, 0x81, 0xe9, 0x00, 0x00, 0x00, 0x10, // IID18312 - 0x48, 0x81, 0xe9, 0x00, 0x00, 0x00, 0x40, // IID18313 - 0x48, 0x81, 0xea, 0x00, 0x00, 0x01, 0x00, // IID18314 - 0x48, 0x81, 0xea, 0x00, 0x00, 0x04, 0x00, // IID18315 - 0x48, 0x81, 0xea, 0x00, 0x00, 0x10, 0x00, // IID18316 - 0x48, 0x81, 0xea, 0x00, 0x00, 0x40, 0x00, // IID18317 - 0x48, 0x81, 0xea, 0x00, 0x00, 0x00, 0x01, // IID18318 - 0x48, 0x81, 0xea, 0x00, 0x00, 0x00, 0x04, // IID18319 - 0x48, 0x81, 0xea, 0x00, 0x00, 0x00, 0x10, // IID18320 - 0x48, 0x81, 0xea, 0x00, 0x00, 0x00, 0x40, // IID18321 - 0x48, 0x81, 0xeb, 0x00, 0x00, 0x01, 0x00, // IID18322 - 0x48, 0x81, 0xeb, 0x00, 0x00, 0x04, 0x00, // IID18323 - 0x48, 0x81, 0xeb, 0x00, 0x00, 0x10, 0x00, // IID18324 - 0x48, 0x81, 0xeb, 0x00, 0x00, 0x40, 0x00, // IID18325 - 0x48, 0x81, 0xeb, 0x00, 0x00, 0x00, 0x01, // IID18326 - 0x48, 0x81, 0xeb, 0x00, 0x00, 0x00, 0x04, // IID18327 - 0x48, 0x81, 0xeb, 0x00, 0x00, 0x00, 0x10, // IID18328 - 0x48, 0x81, 0xeb, 0x00, 0x00, 0x00, 0x40, // IID18329 - 0x49, 0x81, 0xe8, 0x00, 0x00, 0x01, 0x00, // IID18330 - 0x49, 0x81, 0xe8, 0x00, 0x00, 0x04, 0x00, // IID18331 - 0x49, 0x81, 0xe8, 0x00, 0x00, 0x10, 0x00, // IID18332 - 0x49, 0x81, 0xe8, 0x00, 0x00, 0x40, 0x00, // IID18333 - 0x49, 0x81, 0xe8, 0x00, 0x00, 0x00, 0x01, // IID18334 - 0x49, 0x81, 0xe8, 0x00, 0x00, 0x00, 0x04, // IID18335 - 0x49, 0x81, 0xe8, 0x00, 0x00, 0x00, 0x10, // IID18336 - 0x49, 0x81, 0xe8, 0x00, 0x00, 0x00, 0x40, // IID18337 - 0x49, 0x81, 0xe9, 0x00, 0x00, 0x01, 0x00, // IID18338 - 0x49, 0x81, 0xe9, 0x00, 0x00, 0x04, 0x00, // IID18339 - 0x49, 0x81, 0xe9, 0x00, 0x00, 0x10, 0x00, // IID18340 - 0x49, 0x81, 0xe9, 0x00, 0x00, 0x40, 0x00, // IID18341 - 0x49, 0x81, 0xe9, 0x00, 0x00, 0x00, 0x01, // IID18342 - 0x49, 0x81, 0xe9, 0x00, 0x00, 0x00, 0x04, // IID18343 - 0x49, 0x81, 0xe9, 0x00, 0x00, 0x00, 0x10, // IID18344 - 0x49, 0x81, 0xe9, 0x00, 0x00, 0x00, 0x40, // IID18345 - 0x49, 0x81, 0xea, 0x00, 0x00, 0x01, 0x00, // IID18346 - 0x49, 0x81, 0xea, 0x00, 0x00, 0x04, 0x00, // IID18347 - 0x49, 0x81, 0xea, 0x00, 0x00, 0x10, 0x00, // IID18348 - 0x49, 0x81, 0xea, 0x00, 0x00, 0x40, 0x00, // IID18349 - 0x49, 0x81, 0xea, 0x00, 0x00, 0x00, 0x01, // IID18350 - 0x49, 0x81, 0xea, 0x00, 0x00, 0x00, 0x04, // IID18351 - 0x49, 0x81, 0xea, 0x00, 0x00, 0x00, 0x10, // IID18352 - 0x49, 0x81, 0xea, 0x00, 0x00, 0x00, 0x40, // IID18353 - 0x49, 0x81, 0xeb, 0x00, 0x00, 0x01, 0x00, // IID18354 - 0x49, 0x81, 0xeb, 0x00, 0x00, 0x04, 0x00, // IID18355 - 0x49, 0x81, 0xeb, 0x00, 0x00, 0x10, 0x00, // IID18356 - 0x49, 0x81, 0xeb, 0x00, 0x00, 0x40, 0x00, // IID18357 - 0x49, 0x81, 0xeb, 0x00, 0x00, 0x00, 0x01, // IID18358 - 0x49, 0x81, 0xeb, 0x00, 0x00, 0x00, 0x04, // IID18359 - 0x49, 0x81, 0xeb, 0x00, 0x00, 0x00, 0x10, // IID18360 - 0x49, 0x81, 0xeb, 0x00, 0x00, 0x00, 0x40, // IID18361 - 0x49, 0x81, 0xec, 0x00, 0x00, 0x01, 0x00, // IID18362 - 0x49, 0x81, 0xec, 0x00, 0x00, 0x04, 0x00, // IID18363 - 0x49, 0x81, 0xec, 0x00, 0x00, 0x10, 0x00, // IID18364 - 0x49, 0x81, 0xec, 0x00, 0x00, 0x40, 0x00, // IID18365 - 0x49, 0x81, 0xec, 0x00, 0x00, 0x00, 0x01, // IID18366 - 0x49, 0x81, 0xec, 0x00, 0x00, 0x00, 0x04, // IID18367 - 0x49, 0x81, 0xec, 0x00, 0x00, 0x00, 0x10, // IID18368 - 0x49, 0x81, 0xec, 0x00, 0x00, 0x00, 0x40, // IID18369 - 0x49, 0x81, 0xed, 0x00, 0x00, 0x01, 0x00, // IID18370 - 0x49, 0x81, 0xed, 0x00, 0x00, 0x04, 0x00, // IID18371 - 0x49, 0x81, 0xed, 0x00, 0x00, 0x10, 0x00, // IID18372 - 0x49, 0x81, 0xed, 0x00, 0x00, 0x40, 0x00, // IID18373 - 0x49, 0x81, 0xed, 0x00, 0x00, 0x00, 0x01, // IID18374 - 0x49, 0x81, 0xed, 0x00, 0x00, 0x00, 0x04, // IID18375 - 0x49, 0x81, 0xed, 0x00, 0x00, 0x00, 0x10, // IID18376 - 0x49, 0x81, 0xed, 0x00, 0x00, 0x00, 0x40, // IID18377 - 0x49, 0x81, 0xee, 0x00, 0x00, 0x01, 0x00, // IID18378 - 0x49, 0x81, 0xee, 0x00, 0x00, 0x04, 0x00, // IID18379 - 0x49, 0x81, 0xee, 0x00, 0x00, 0x10, 0x00, // IID18380 - 0x49, 0x81, 0xee, 0x00, 0x00, 0x40, 0x00, // IID18381 - 0x49, 0x81, 0xee, 0x00, 0x00, 0x00, 0x01, // IID18382 - 0x49, 0x81, 0xee, 0x00, 0x00, 0x00, 0x04, // IID18383 - 0x49, 0x81, 0xee, 0x00, 0x00, 0x00, 0x10, // IID18384 - 0x49, 0x81, 0xee, 0x00, 0x00, 0x00, 0x40, // IID18385 - 0x49, 0x81, 0xef, 0x00, 0x00, 0x01, 0x00, // IID18386 - 0x49, 0x81, 0xef, 0x00, 0x00, 0x04, 0x00, // IID18387 - 0x49, 0x81, 0xef, 0x00, 0x00, 0x10, 0x00, // IID18388 - 0x49, 0x81, 0xef, 0x00, 0x00, 0x40, 0x00, // IID18389 - 0x49, 0x81, 0xef, 0x00, 0x00, 0x00, 0x01, // IID18390 - 0x49, 0x81, 0xef, 0x00, 0x00, 0x00, 0x04, // IID18391 - 0x49, 0x81, 0xef, 0x00, 0x00, 0x00, 0x10, // IID18392 - 0x49, 0x81, 0xef, 0x00, 0x00, 0x00, 0x40, // IID18393 - 0xd5, 0x18, 0x81, 0xe8, 0x00, 0x00, 0x01, 0x00, // IID18394 - 0xd5, 0x18, 0x81, 0xe8, 0x00, 0x00, 0x04, 0x00, // IID18395 - 0xd5, 0x18, 0x81, 0xe8, 0x00, 0x00, 0x10, 0x00, // IID18396 - 0xd5, 0x18, 0x81, 0xe8, 0x00, 0x00, 0x40, 0x00, // IID18397 - 0xd5, 0x18, 0x81, 0xe8, 0x00, 0x00, 0x00, 0x01, // IID18398 - 0xd5, 0x18, 0x81, 0xe8, 0x00, 0x00, 0x00, 0x04, // IID18399 - 0xd5, 0x18, 0x81, 0xe8, 0x00, 0x00, 0x00, 0x10, // IID18400 - 0xd5, 0x18, 0x81, 0xe8, 0x00, 0x00, 0x00, 0x40, // IID18401 - 0xd5, 0x18, 0x81, 0xe9, 0x00, 0x00, 0x01, 0x00, // IID18402 - 0xd5, 0x18, 0x81, 0xe9, 0x00, 0x00, 0x04, 0x00, // IID18403 - 0xd5, 0x18, 0x81, 0xe9, 0x00, 0x00, 0x10, 0x00, // IID18404 - 0xd5, 0x18, 0x81, 0xe9, 0x00, 0x00, 0x40, 0x00, // IID18405 - 0xd5, 0x18, 0x81, 0xe9, 0x00, 0x00, 0x00, 0x01, // IID18406 - 0xd5, 0x18, 0x81, 0xe9, 0x00, 0x00, 0x00, 0x04, // IID18407 - 0xd5, 0x18, 0x81, 0xe9, 0x00, 0x00, 0x00, 0x10, // IID18408 - 0xd5, 0x18, 0x81, 0xe9, 0x00, 0x00, 0x00, 0x40, // IID18409 - 0xd5, 0x18, 0x81, 0xea, 0x00, 0x00, 0x01, 0x00, // IID18410 - 0xd5, 0x18, 0x81, 0xea, 0x00, 0x00, 0x04, 0x00, // IID18411 - 0xd5, 0x18, 0x81, 0xea, 0x00, 0x00, 0x10, 0x00, // IID18412 - 0xd5, 0x18, 0x81, 0xea, 0x00, 0x00, 0x40, 0x00, // IID18413 - 0xd5, 0x18, 0x81, 0xea, 0x00, 0x00, 0x00, 0x01, // IID18414 - 0xd5, 0x18, 0x81, 0xea, 0x00, 0x00, 0x00, 0x04, // IID18415 - 0xd5, 0x18, 0x81, 0xea, 0x00, 0x00, 0x00, 0x10, // IID18416 - 0xd5, 0x18, 0x81, 0xea, 0x00, 0x00, 0x00, 0x40, // IID18417 - 0xd5, 0x18, 0x81, 0xeb, 0x00, 0x00, 0x01, 0x00, // IID18418 - 0xd5, 0x18, 0x81, 0xeb, 0x00, 0x00, 0x04, 0x00, // IID18419 - 0xd5, 0x18, 0x81, 0xeb, 0x00, 0x00, 0x10, 0x00, // IID18420 - 0xd5, 0x18, 0x81, 0xeb, 0x00, 0x00, 0x40, 0x00, // IID18421 - 0xd5, 0x18, 0x81, 0xeb, 0x00, 0x00, 0x00, 0x01, // IID18422 - 0xd5, 0x18, 0x81, 0xeb, 0x00, 0x00, 0x00, 0x04, // IID18423 - 0xd5, 0x18, 0x81, 0xeb, 0x00, 0x00, 0x00, 0x10, // IID18424 - 0xd5, 0x18, 0x81, 0xeb, 0x00, 0x00, 0x00, 0x40, // IID18425 - 0xd5, 0x18, 0x81, 0xec, 0x00, 0x00, 0x01, 0x00, // IID18426 - 0xd5, 0x18, 0x81, 0xec, 0x00, 0x00, 0x04, 0x00, // IID18427 - 0xd5, 0x18, 0x81, 0xec, 0x00, 0x00, 0x10, 0x00, // IID18428 - 0xd5, 0x18, 0x81, 0xec, 0x00, 0x00, 0x40, 0x00, // IID18429 - 0xd5, 0x18, 0x81, 0xec, 0x00, 0x00, 0x00, 0x01, // IID18430 - 0xd5, 0x18, 0x81, 0xec, 0x00, 0x00, 0x00, 0x04, // IID18431 - 0xd5, 0x18, 0x81, 0xec, 0x00, 0x00, 0x00, 0x10, // IID18432 - 0xd5, 0x18, 0x81, 0xec, 0x00, 0x00, 0x00, 0x40, // IID18433 - 0xd5, 0x18, 0x81, 0xed, 0x00, 0x00, 0x01, 0x00, // IID18434 - 0xd5, 0x18, 0x81, 0xed, 0x00, 0x00, 0x04, 0x00, // IID18435 - 0xd5, 0x18, 0x81, 0xed, 0x00, 0x00, 0x10, 0x00, // IID18436 - 0xd5, 0x18, 0x81, 0xed, 0x00, 0x00, 0x40, 0x00, // IID18437 - 0xd5, 0x18, 0x81, 0xed, 0x00, 0x00, 0x00, 0x01, // IID18438 - 0xd5, 0x18, 0x81, 0xed, 0x00, 0x00, 0x00, 0x04, // IID18439 - 0xd5, 0x18, 0x81, 0xed, 0x00, 0x00, 0x00, 0x10, // IID18440 - 0xd5, 0x18, 0x81, 0xed, 0x00, 0x00, 0x00, 0x40, // IID18441 - 0xd5, 0x18, 0x81, 0xee, 0x00, 0x00, 0x01, 0x00, // IID18442 - 0xd5, 0x18, 0x81, 0xee, 0x00, 0x00, 0x04, 0x00, // IID18443 - 0xd5, 0x18, 0x81, 0xee, 0x00, 0x00, 0x10, 0x00, // IID18444 - 0xd5, 0x18, 0x81, 0xee, 0x00, 0x00, 0x40, 0x00, // IID18445 - 0xd5, 0x18, 0x81, 0xee, 0x00, 0x00, 0x00, 0x01, // IID18446 - 0xd5, 0x18, 0x81, 0xee, 0x00, 0x00, 0x00, 0x04, // IID18447 - 0xd5, 0x18, 0x81, 0xee, 0x00, 0x00, 0x00, 0x10, // IID18448 - 0xd5, 0x18, 0x81, 0xee, 0x00, 0x00, 0x00, 0x40, // IID18449 - 0xd5, 0x18, 0x81, 0xef, 0x00, 0x00, 0x01, 0x00, // IID18450 - 0xd5, 0x18, 0x81, 0xef, 0x00, 0x00, 0x04, 0x00, // IID18451 - 0xd5, 0x18, 0x81, 0xef, 0x00, 0x00, 0x10, 0x00, // IID18452 - 0xd5, 0x18, 0x81, 0xef, 0x00, 0x00, 0x40, 0x00, // IID18453 - 0xd5, 0x18, 0x81, 0xef, 0x00, 0x00, 0x00, 0x01, // IID18454 - 0xd5, 0x18, 0x81, 0xef, 0x00, 0x00, 0x00, 0x04, // IID18455 - 0xd5, 0x18, 0x81, 0xef, 0x00, 0x00, 0x00, 0x10, // IID18456 - 0xd5, 0x18, 0x81, 0xef, 0x00, 0x00, 0x00, 0x40, // IID18457 - 0xd5, 0x19, 0x81, 0xe8, 0x00, 0x00, 0x01, 0x00, // IID18458 - 0xd5, 0x19, 0x81, 0xe8, 0x00, 0x00, 0x04, 0x00, // IID18459 - 0xd5, 0x19, 0x81, 0xe8, 0x00, 0x00, 0x10, 0x00, // IID18460 - 0xd5, 0x19, 0x81, 0xe8, 0x00, 0x00, 0x40, 0x00, // IID18461 - 0xd5, 0x19, 0x81, 0xe8, 0x00, 0x00, 0x00, 0x01, // IID18462 - 0xd5, 0x19, 0x81, 0xe8, 0x00, 0x00, 0x00, 0x04, // IID18463 - 0xd5, 0x19, 0x81, 0xe8, 0x00, 0x00, 0x00, 0x10, // IID18464 - 0xd5, 0x19, 0x81, 0xe8, 0x00, 0x00, 0x00, 0x40, // IID18465 - 0xd5, 0x19, 0x81, 0xe9, 0x00, 0x00, 0x01, 0x00, // IID18466 - 0xd5, 0x19, 0x81, 0xe9, 0x00, 0x00, 0x04, 0x00, // IID18467 - 0xd5, 0x19, 0x81, 0xe9, 0x00, 0x00, 0x10, 0x00, // IID18468 - 0xd5, 0x19, 0x81, 0xe9, 0x00, 0x00, 0x40, 0x00, // IID18469 - 0xd5, 0x19, 0x81, 0xe9, 0x00, 0x00, 0x00, 0x01, // IID18470 - 0xd5, 0x19, 0x81, 0xe9, 0x00, 0x00, 0x00, 0x04, // IID18471 - 0xd5, 0x19, 0x81, 0xe9, 0x00, 0x00, 0x00, 0x10, // IID18472 - 0xd5, 0x19, 0x81, 0xe9, 0x00, 0x00, 0x00, 0x40, // IID18473 - 0xd5, 0x19, 0x81, 0xea, 0x00, 0x00, 0x01, 0x00, // IID18474 - 0xd5, 0x19, 0x81, 0xea, 0x00, 0x00, 0x04, 0x00, // IID18475 - 0xd5, 0x19, 0x81, 0xea, 0x00, 0x00, 0x10, 0x00, // IID18476 - 0xd5, 0x19, 0x81, 0xea, 0x00, 0x00, 0x40, 0x00, // IID18477 - 0xd5, 0x19, 0x81, 0xea, 0x00, 0x00, 0x00, 0x01, // IID18478 - 0xd5, 0x19, 0x81, 0xea, 0x00, 0x00, 0x00, 0x04, // IID18479 - 0xd5, 0x19, 0x81, 0xea, 0x00, 0x00, 0x00, 0x10, // IID18480 - 0xd5, 0x19, 0x81, 0xea, 0x00, 0x00, 0x00, 0x40, // IID18481 - 0xd5, 0x19, 0x81, 0xeb, 0x00, 0x00, 0x01, 0x00, // IID18482 - 0xd5, 0x19, 0x81, 0xeb, 0x00, 0x00, 0x04, 0x00, // IID18483 - 0xd5, 0x19, 0x81, 0xeb, 0x00, 0x00, 0x10, 0x00, // IID18484 - 0xd5, 0x19, 0x81, 0xeb, 0x00, 0x00, 0x40, 0x00, // IID18485 - 0xd5, 0x19, 0x81, 0xeb, 0x00, 0x00, 0x00, 0x01, // IID18486 - 0xd5, 0x19, 0x81, 0xeb, 0x00, 0x00, 0x00, 0x04, // IID18487 - 0xd5, 0x19, 0x81, 0xeb, 0x00, 0x00, 0x00, 0x10, // IID18488 - 0xd5, 0x19, 0x81, 0xeb, 0x00, 0x00, 0x00, 0x40, // IID18489 - 0xd5, 0x19, 0x81, 0xec, 0x00, 0x00, 0x01, 0x00, // IID18490 - 0xd5, 0x19, 0x81, 0xec, 0x00, 0x00, 0x04, 0x00, // IID18491 - 0xd5, 0x19, 0x81, 0xec, 0x00, 0x00, 0x10, 0x00, // IID18492 - 0xd5, 0x19, 0x81, 0xec, 0x00, 0x00, 0x40, 0x00, // IID18493 - 0xd5, 0x19, 0x81, 0xec, 0x00, 0x00, 0x00, 0x01, // IID18494 - 0xd5, 0x19, 0x81, 0xec, 0x00, 0x00, 0x00, 0x04, // IID18495 - 0xd5, 0x19, 0x81, 0xec, 0x00, 0x00, 0x00, 0x10, // IID18496 - 0xd5, 0x19, 0x81, 0xec, 0x00, 0x00, 0x00, 0x40, // IID18497 - 0xd5, 0x19, 0x81, 0xed, 0x00, 0x00, 0x01, 0x00, // IID18498 - 0xd5, 0x19, 0x81, 0xed, 0x00, 0x00, 0x04, 0x00, // IID18499 - 0xd5, 0x19, 0x81, 0xed, 0x00, 0x00, 0x10, 0x00, // IID18500 - 0xd5, 0x19, 0x81, 0xed, 0x00, 0x00, 0x40, 0x00, // IID18501 - 0xd5, 0x19, 0x81, 0xed, 0x00, 0x00, 0x00, 0x01, // IID18502 - 0xd5, 0x19, 0x81, 0xed, 0x00, 0x00, 0x00, 0x04, // IID18503 - 0xd5, 0x19, 0x81, 0xed, 0x00, 0x00, 0x00, 0x10, // IID18504 - 0xd5, 0x19, 0x81, 0xed, 0x00, 0x00, 0x00, 0x40, // IID18505 - 0xd5, 0x19, 0x81, 0xee, 0x00, 0x00, 0x01, 0x00, // IID18506 - 0xd5, 0x19, 0x81, 0xee, 0x00, 0x00, 0x04, 0x00, // IID18507 - 0xd5, 0x19, 0x81, 0xee, 0x00, 0x00, 0x10, 0x00, // IID18508 - 0xd5, 0x19, 0x81, 0xee, 0x00, 0x00, 0x40, 0x00, // IID18509 - 0xd5, 0x19, 0x81, 0xee, 0x00, 0x00, 0x00, 0x01, // IID18510 - 0xd5, 0x19, 0x81, 0xee, 0x00, 0x00, 0x00, 0x04, // IID18511 - 0xd5, 0x19, 0x81, 0xee, 0x00, 0x00, 0x00, 0x10, // IID18512 - 0xd5, 0x19, 0x81, 0xee, 0x00, 0x00, 0x00, 0x40, // IID18513 - 0xd5, 0x19, 0x81, 0xef, 0x00, 0x00, 0x01, 0x00, // IID18514 - 0xd5, 0x19, 0x81, 0xef, 0x00, 0x00, 0x04, 0x00, // IID18515 - 0xd5, 0x19, 0x81, 0xef, 0x00, 0x00, 0x10, 0x00, // IID18516 - 0xd5, 0x19, 0x81, 0xef, 0x00, 0x00, 0x40, 0x00, // IID18517 - 0xd5, 0x19, 0x81, 0xef, 0x00, 0x00, 0x00, 0x01, // IID18518 - 0xd5, 0x19, 0x81, 0xef, 0x00, 0x00, 0x00, 0x04, // IID18519 - 0xd5, 0x19, 0x81, 0xef, 0x00, 0x00, 0x00, 0x10, // IID18520 - 0xd5, 0x19, 0x81, 0xef, 0x00, 0x00, 0x00, 0x40, // IID18521 - 0x48, 0x0f, 0x40, 0x8c, 0xda, 0xce, 0x9a, 0x5e, 0x18, // IID18522 - 0x4a, 0x0f, 0x40, 0x94, 0x03, 0x38, 0xd8, 0xdd, 0x7a, // IID18523 - 0x4b, 0x0f, 0x40, 0x9c, 0x88, 0x3e, 0xc3, 0x26, 0x6f, // IID18524 - 0x4f, 0x0f, 0x40, 0x84, 0x11, 0x6b, 0xee, 0x80, 0xf3, // IID18525 - 0x4f, 0x0f, 0x40, 0x8c, 0x9a, 0x84, 0xea, 0x54, 0x4e, // IID18526 - 0x4f, 0x0f, 0x40, 0x94, 0xe3, 0x5e, 0x48, 0xe7, 0xc2, // IID18527 - 0x4d, 0x0f, 0x40, 0x9c, 0x24, 0x81, 0xb0, 0xbe, 0x8f, // IID18528 - 0x4f, 0x0f, 0x40, 0xa4, 0x75, 0xb7, 0x24, 0x65, 0xb4, // IID18529 - 0x4f, 0x0f, 0x40, 0xac, 0x7e, 0x6f, 0x18, 0xae, 0xc4, // IID18530 - 0xd5, 0xad, 0x40, 0xb4, 0x07, 0xad, 0xca, 0x3a, 0x33, // IID18531 - 0xd5, 0xbc, 0x40, 0xbc, 0x48, 0xc0, 0x2b, 0x83, 0x28, // IID18532 - 0xd5, 0xf8, 0x40, 0x84, 0x11, 0x7e, 0x7a, 0x3f, 0xf3, // IID18533 - 0xd5, 0xf8, 0x40, 0x8c, 0xda, 0x56, 0xbf, 0x93, 0x6e, // IID18534 - 0xd5, 0xf8, 0x40, 0x94, 0xe3, 0x50, 0x86, 0xaa, 0x92, // IID18535 - 0xd5, 0xf8, 0x40, 0x9c, 0x6c, 0x6c, 0xaa, 0x0c, 0x34, // IID18536 - 0xd5, 0xf8, 0x40, 0xa4, 0x75, 0x48, 0x3e, 0x34, 0x86, // IID18537 - 0xd5, 0xf8, 0x40, 0xac, 0xfe, 0x60, 0xf4, 0x5f, 0x50, // IID18538 - 0xd5, 0xfa, 0x40, 0xb4, 0x47, 0x53, 0x95, 0x18, 0x33, // IID18539 - 0xd5, 0xfb, 0x40, 0xbc, 0x08, 0x98, 0x02, 0x60, 0x95, // IID18540 - 0xd5, 0xff, 0x40, 0x84, 0xd1, 0x56, 0xcd, 0x37, 0x4c, // IID18541 - 0xd5, 0xff, 0x40, 0x8c, 0x1a, 0x4e, 0x38, 0xc2, 0xd6, // IID18542 - 0xd5, 0xff, 0x40, 0x94, 0xa3, 0x50, 0xf2, 0xb4, 0xc5, // IID18543 - 0xd5, 0xff, 0x40, 0x9c, 0x6c, 0x2a, 0xc0, 0x20, 0xf2, // IID18544 - 0xd5, 0xff, 0x40, 0xa4, 0xb5, 0xf7, 0x48, 0xb0, 0x19, // IID18545 - 0xd5, 0xff, 0x40, 0xac, 0xbe, 0xa3, 0x61, 0x41, 0x61, // IID18546 - 0xd5, 0xdd, 0x40, 0xb7, 0x93, 0x55, 0x94, 0xf8, // IID18547 - 0xd5, 0xcc, 0x40, 0xbc, 0x11, 0xaa, 0x9f, 0xfa, 0x22, // IID18548 - 0x48, 0x0f, 0x41, 0x8c, 0x9a, 0xd3, 0x8c, 0xdb, 0x04, // IID18549 - 0x4a, 0x0f, 0x41, 0x94, 0xc3, 0x41, 0x6a, 0x42, 0xcc, // IID18550 - 0x49, 0x0f, 0x41, 0x98, 0x1b, 0xf0, 0x40, 0xa5, // IID18551 - 0x4f, 0x0f, 0x41, 0x84, 0xd1, 0x16, 0x41, 0xd9, 0xc4, // IID18552 - 0x4f, 0x0f, 0x41, 0x8c, 0x9a, 0xb1, 0x3e, 0x01, 0xbf, // IID18553 - 0x4f, 0x0f, 0x41, 0x94, 0xa3, 0x93, 0x2f, 0xfe, 0xa3, // IID18554 - 0x4f, 0x0f, 0x41, 0x9c, 0x2c, 0x5d, 0x41, 0x9c, 0x45, // IID18555 - 0x4d, 0x0f, 0x41, 0xa5, 0x66, 0x78, 0xde, 0x9f, // IID18556 - 0x4f, 0x0f, 0x41, 0xac, 0xfe, 0x55, 0x1a, 0xd7, 0xd7, // IID18557 - 0xd5, 0xad, 0x41, 0xb4, 0x47, 0x85, 0xd1, 0xe3, 0xbc, // IID18558 - 0xd5, 0xbc, 0x41, 0xbc, 0xc8, 0x31, 0x51, 0x52, 0xb8, // IID18559 - 0xd5, 0xf8, 0x41, 0x84, 0x11, 0x5e, 0xba, 0x08, 0x6b, // IID18560 - 0xd5, 0xf8, 0x41, 0x8c, 0x9a, 0x13, 0x41, 0xd9, 0x6c, // IID18561 - 0xd5, 0xf8, 0x41, 0x94, 0x23, 0xcc, 0xe6, 0x98, 0x3a, // IID18562 - 0xd5, 0xf8, 0x41, 0x9c, 0xac, 0xf1, 0x71, 0x06, 0xce, // IID18563 - 0xd5, 0xf8, 0x41, 0xa4, 0x75, 0xe4, 0x59, 0xf4, 0x13, // IID18564 - 0xd5, 0xd8, 0x41, 0xae, 0x3d, 0x57, 0x6f, 0x2a, // IID18565 - 0xd5, 0xfa, 0x41, 0xb4, 0x07, 0x75, 0x6b, 0xe0, 0x39, // IID18566 - 0xd5, 0xfb, 0x41, 0xbc, 0x88, 0x1d, 0x4c, 0x57, 0x57, // IID18567 - 0xd5, 0xff, 0x41, 0x84, 0xd1, 0xa5, 0x02, 0xcd, 0x1d, // IID18568 - 0xd5, 0xff, 0x41, 0x8c, 0x1a, 0x77, 0x8f, 0x66, 0xfa, // IID18569 - 0xd5, 0xff, 0x41, 0x94, 0xa3, 0x9a, 0x37, 0xfc, 0x51, // IID18570 - 0xd5, 0xff, 0x41, 0x9c, 0xec, 0x3c, 0x58, 0x92, 0x79, // IID18571 - 0xd5, 0xdd, 0x41, 0xa5, 0xab, 0x39, 0x6c, 0x7e, // IID18572 - 0xd5, 0xff, 0x41, 0xac, 0xfe, 0xa6, 0x88, 0xa5, 0x9d, // IID18573 - 0xd5, 0xdd, 0x41, 0xb4, 0xcf, 0x9a, 0xb4, 0xdf, 0xc6, // IID18574 - 0xd5, 0xcc, 0x41, 0xbc, 0xd1, 0x55, 0x14, 0x29, 0xc9, // IID18575 - 0x48, 0x0f, 0x42, 0x8a, 0xc6, 0x74, 0xba, 0xbe, // IID18576 - 0x4a, 0x0f, 0x42, 0x94, 0x03, 0xb3, 0xe9, 0x19, 0x9b, // IID18577 - 0x49, 0x0f, 0x42, 0x98, 0x9b, 0x54, 0xe3, 0x0a, // IID18578 - 0x4d, 0x0f, 0x42, 0x81, 0x54, 0xb6, 0x40, 0xde, // IID18579 - 0x4f, 0x0f, 0x42, 0x8c, 0x9a, 0xd1, 0x71, 0x55, 0xcc, // IID18580 - 0x4d, 0x0f, 0x42, 0x93, 0x99, 0x36, 0x11, 0x7e, // IID18581 - 0x4f, 0x0f, 0x42, 0x9c, 0xec, 0xa1, 0x33, 0x0f, 0xef, // IID18582 - 0x4f, 0x0f, 0x42, 0xa4, 0xb5, 0x63, 0x7c, 0xc9, 0x7c, // IID18583 - 0x4f, 0x0f, 0x42, 0xac, 0xfe, 0x0b, 0x5a, 0x38, 0xbc, // IID18584 - 0xd5, 0xad, 0x42, 0xb4, 0xc7, 0x8e, 0xf4, 0xcc, 0x15, // IID18585 - 0xd5, 0xbc, 0x42, 0xbc, 0xc8, 0x94, 0x60, 0xd3, 0x7f, // IID18586 - 0xd5, 0xf8, 0x42, 0x84, 0x51, 0xeb, 0x03, 0xcc, 0x69, // IID18587 - 0xd5, 0xf8, 0x42, 0x8c, 0x5a, 0xd6, 0x13, 0xc6, 0xd6, // IID18588 - 0xd5, 0xf8, 0x42, 0x94, 0x23, 0x27, 0x25, 0x45, 0x59, // IID18589 - 0xd5, 0xf8, 0x42, 0x9c, 0xec, 0xcf, 0x1d, 0x88, 0x26, // IID18590 - 0xd5, 0xd8, 0x42, 0xa5, 0xfa, 0x69, 0xb9, 0x34, // IID18591 - 0xd5, 0xd8, 0x42, 0xae, 0xb0, 0xed, 0x63, 0x7f, // IID18592 - 0xd5, 0xfa, 0x42, 0xb4, 0xc7, 0x84, 0xef, 0x75, 0x64, // IID18593 - 0xd5, 0xfb, 0x42, 0xbc, 0xc8, 0x8d, 0xd5, 0x08, 0x98, // IID18594 - 0xd5, 0xff, 0x42, 0x84, 0xd1, 0xbe, 0x09, 0x5f, 0xb7, // IID18595 - 0xd5, 0xff, 0x42, 0x8c, 0x1a, 0x9a, 0x8e, 0x69, 0x08, // IID18596 - 0xd5, 0xff, 0x42, 0x94, 0x23, 0x82, 0xc8, 0xd4, 0x85, // IID18597 - 0xd5, 0xff, 0x42, 0x9c, 0xec, 0xbe, 0x6a, 0x91, 0x8c, // IID18598 - 0xd5, 0xff, 0x42, 0xa4, 0x75, 0xde, 0x09, 0x17, 0x5e, // IID18599 - 0xd5, 0xff, 0x42, 0xac, 0xfe, 0xe3, 0xbd, 0x05, 0x5a, // IID18600 - 0xd5, 0xdd, 0x42, 0xb4, 0x0f, 0x3b, 0x0c, 0x03, 0x85, // IID18601 - 0xd5, 0xcc, 0x42, 0xb9, 0x36, 0x5c, 0x95, 0x6e, // IID18602 - 0x48, 0x0f, 0x43, 0x8c, 0x5a, 0x75, 0x72, 0x56, 0x3f, // IID18603 - 0x4a, 0x0f, 0x43, 0x94, 0xc3, 0x92, 0xd3, 0x64, 0x05, // IID18604 - 0x49, 0x0f, 0x43, 0x98, 0x37, 0x06, 0xb5, 0x17, // IID18605 - 0x4f, 0x0f, 0x43, 0x84, 0xd1, 0x11, 0xf1, 0x8f, 0xaa, // IID18606 - 0x4f, 0x0f, 0x43, 0x8c, 0x5a, 0x6c, 0xfe, 0x2b, 0xe8, // IID18607 - 0x4f, 0x0f, 0x43, 0x94, 0xe3, 0xee, 0x09, 0xe2, 0x7d, // IID18608 - 0x4f, 0x0f, 0x43, 0x9c, 0x6c, 0xda, 0x88, 0xd5, 0x28, // IID18609 - 0x4d, 0x0f, 0x43, 0xa5, 0xce, 0x62, 0x24, 0x50, // IID18610 - 0x4f, 0x0f, 0x43, 0xac, 0xfe, 0x76, 0xb1, 0xee, 0xb8, // IID18611 - 0xd5, 0xad, 0x43, 0xb4, 0x07, 0xa7, 0x56, 0x56, 0xf1, // IID18612 - 0xd5, 0x9c, 0x43, 0xb8, 0x52, 0xcc, 0xe0, 0x60, // IID18613 - 0xd5, 0xf8, 0x43, 0x84, 0x11, 0xe0, 0xf5, 0xf4, 0x8d, // IID18614 - 0xd5, 0xf8, 0x43, 0x8c, 0xda, 0x7d, 0x50, 0xd0, 0x07, // IID18615 - 0xd5, 0xf8, 0x43, 0x94, 0x63, 0x5e, 0xb7, 0x16, 0xa4, // IID18616 - 0xd5, 0xf8, 0x43, 0x9c, 0x6c, 0x6f, 0x77, 0x9c, 0x52, // IID18617 - 0xd5, 0xd8, 0x43, 0xa5, 0xf3, 0x21, 0xf9, 0x92, // IID18618 - 0xd5, 0xd8, 0x43, 0xae, 0xe2, 0xf3, 0x64, 0x7d, // IID18619 - 0xd5, 0xfa, 0x43, 0xb4, 0x87, 0x83, 0x6c, 0x3d, 0xee, // IID18620 - 0xd5, 0xfb, 0x43, 0xbc, 0x88, 0xa3, 0xbf, 0xb9, 0x16, // IID18621 - 0xd5, 0xff, 0x43, 0x84, 0xd1, 0x97, 0x52, 0xba, 0x65, // IID18622 - 0xd5, 0xff, 0x43, 0x8c, 0x1a, 0x18, 0x54, 0x90, 0x1a, // IID18623 - 0xd5, 0xff, 0x43, 0x94, 0xa3, 0x75, 0x4d, 0xf9, 0x99, // IID18624 - 0xd5, 0xff, 0x43, 0x9c, 0xec, 0x38, 0x51, 0xe8, 0x4d, // IID18625 - 0xd5, 0xdd, 0x43, 0xa5, 0xa3, 0x41, 0x5a, 0x3f, // IID18626 - 0xd5, 0xff, 0x43, 0xac, 0xbe, 0xc3, 0x35, 0xc8, 0xc0, // IID18627 - 0xd5, 0xdd, 0x43, 0xb4, 0x0f, 0x6e, 0x72, 0xf2, 0x38, // IID18628 - 0xd5, 0xcc, 0x43, 0xbc, 0x91, 0x15, 0x18, 0xc5, 0x8f, // IID18629 - 0x48, 0x0f, 0x44, 0x8c, 0xda, 0x93, 0x4f, 0xa1, 0x0c, // IID18630 - 0x4a, 0x0f, 0x44, 0x94, 0x03, 0xa5, 0x3a, 0x72, 0xda, // IID18631 - 0x4b, 0x0f, 0x44, 0x9c, 0x88, 0xd0, 0x65, 0x88, 0xc2, // IID18632 - 0x4f, 0x0f, 0x44, 0x84, 0x91, 0x19, 0xf8, 0xae, 0x4e, // IID18633 - 0x4f, 0x0f, 0x44, 0x8c, 0x5a, 0x86, 0x93, 0x02, 0x70, // IID18634 - 0x4f, 0x0f, 0x44, 0x94, 0x63, 0xc2, 0x27, 0x9a, 0xf1, // IID18635 - 0x4f, 0x0f, 0x44, 0x9c, 0x6c, 0xf8, 0x42, 0x86, 0xba, // IID18636 - 0x4f, 0x0f, 0x44, 0xa4, 0xf5, 0x06, 0x83, 0x04, 0xd1, // IID18637 - 0x4f, 0x0f, 0x44, 0xac, 0x3e, 0x56, 0x1c, 0xbf, 0xa2, // IID18638 - 0xd5, 0xad, 0x44, 0xb4, 0x07, 0xbc, 0x13, 0x2a, 0xba, // IID18639 - 0xd5, 0x9c, 0x44, 0xb8, 0xd6, 0x14, 0x1d, 0x73, // IID18640 - 0xd5, 0xf8, 0x44, 0x84, 0x91, 0x0a, 0x97, 0xdb, 0x51, // IID18641 - 0xd5, 0xf8, 0x44, 0x8c, 0x5a, 0xda, 0xde, 0xb2, 0x3e, // IID18642 - 0xd5, 0xd8, 0x44, 0x93, 0x9b, 0xf6, 0x92, 0x13, // IID18643 - 0xd5, 0xf8, 0x44, 0x9c, 0x2c, 0x00, 0x4b, 0x0c, 0x47, // IID18644 - 0xd5, 0xd8, 0x44, 0xa5, 0xfa, 0x0b, 0xc4, 0xab, // IID18645 - 0xd5, 0xf8, 0x44, 0xac, 0x3e, 0xd4, 0x58, 0x07, 0xd8, // IID18646 - 0xd5, 0xfa, 0x44, 0xb4, 0x47, 0x3f, 0x47, 0x08, 0xd5, // IID18647 - 0xd5, 0xfb, 0x44, 0xbc, 0x48, 0x44, 0x08, 0x3a, 0xa7, // IID18648 - 0xd5, 0xff, 0x44, 0x84, 0x91, 0xfc, 0xc6, 0x1f, 0xcf, // IID18649 - 0xd5, 0xff, 0x44, 0x8c, 0x5a, 0x88, 0x90, 0x58, 0xc2, // IID18650 - 0xd5, 0xff, 0x44, 0x94, 0xa3, 0x50, 0x88, 0xc2, 0xb6, // IID18651 - 0xd5, 0xdd, 0x44, 0x9c, 0x24, 0x23, 0x42, 0xd3, 0x01, // IID18652 - 0xd5, 0xdd, 0x44, 0xa5, 0x84, 0x7f, 0xa3, 0x9f, // IID18653 - 0xd5, 0xff, 0x44, 0xac, 0x3e, 0x85, 0x80, 0xc3, 0x28, // IID18654 - 0xd5, 0xdd, 0x44, 0xb7, 0x61, 0x42, 0x62, 0xe4, // IID18655 - 0xd5, 0xcc, 0x44, 0xb9, 0x9e, 0x61, 0xa7, 0xfc, // IID18656 - 0x48, 0x0f, 0x45, 0x8c, 0x5a, 0xed, 0x1c, 0xf5, 0x42, // IID18657 - 0x4a, 0x0f, 0x45, 0x94, 0xc3, 0x66, 0x7e, 0xe4, 0x32, // IID18658 - 0x4b, 0x0f, 0x45, 0x9c, 0x08, 0x7e, 0xc8, 0x78, 0x19, // IID18659 - 0x4f, 0x0f, 0x45, 0x84, 0xd1, 0x02, 0xc1, 0x33, 0x3b, // IID18660 - 0x4f, 0x0f, 0x45, 0x8c, 0x9a, 0xb7, 0xa9, 0xe9, 0x7b, // IID18661 - 0x4f, 0x0f, 0x45, 0x94, 0xe3, 0x94, 0xea, 0xed, 0x36, // IID18662 - 0x4f, 0x0f, 0x45, 0x9c, 0xac, 0xc6, 0x27, 0xb1, 0x39, // IID18663 - 0x4d, 0x0f, 0x45, 0xa5, 0x43, 0x6d, 0xb6, 0xc7, // IID18664 - 0x4f, 0x0f, 0x45, 0xac, 0x7e, 0x69, 0xcc, 0x64, 0x45, // IID18665 - 0xd5, 0xad, 0x45, 0xb4, 0x47, 0x3a, 0x18, 0x86, 0xca, // IID18666 - 0xd5, 0xbc, 0x45, 0xbc, 0x88, 0xb8, 0xea, 0xdb, 0xa8, // IID18667 - 0xd5, 0xf8, 0x45, 0x84, 0x51, 0x87, 0x5a, 0x65, 0x38, // IID18668 - 0xd5, 0xf8, 0x45, 0x8c, 0x1a, 0x89, 0xa5, 0x78, 0xcf, // IID18669 - 0xd5, 0xd8, 0x45, 0x93, 0x4b, 0x1e, 0x54, 0xa0, // IID18670 - 0xd5, 0xd8, 0x45, 0x9c, 0x24, 0x9d, 0x85, 0xd1, 0x2d, // IID18671 - 0xd5, 0xd8, 0x45, 0xa5, 0xce, 0x25, 0x86, 0x2d, // IID18672 - 0xd5, 0xf8, 0x45, 0xac, 0x3e, 0x82, 0x7f, 0x2c, 0xc3, // IID18673 - 0xd5, 0xd8, 0x45, 0xb7, 0x6e, 0xaf, 0x34, 0x68, // IID18674 - 0xd5, 0xd9, 0x45, 0xb8, 0x23, 0x4e, 0x1d, 0xc7, // IID18675 - 0xd5, 0xff, 0x45, 0x84, 0x51, 0xe4, 0xdd, 0x0d, 0x02, // IID18676 - 0xd5, 0xff, 0x45, 0x8c, 0x5a, 0x2d, 0x21, 0x7d, 0x88, // IID18677 - 0xd5, 0xff, 0x45, 0x94, 0x23, 0xb7, 0x05, 0x04, 0x49, // IID18678 - 0xd5, 0xdd, 0x45, 0x9c, 0x24, 0xfd, 0x03, 0x1b, 0xa0, // IID18679 - 0xd5, 0xff, 0x45, 0xa4, 0x35, 0x3c, 0xe0, 0x78, 0xbb, // IID18680 - 0xd5, 0xff, 0x45, 0xac, 0xfe, 0x1b, 0x3b, 0x67, 0x0f, // IID18681 - 0xd5, 0xdd, 0x45, 0xb4, 0x8f, 0xf0, 0x90, 0x88, 0xe0, // IID18682 - 0xd5, 0xcc, 0x45, 0xb9, 0x25, 0xb2, 0x26, 0x57, // IID18683 - 0x48, 0x0f, 0x46, 0x8c, 0x9a, 0xe0, 0xb6, 0xf7, 0xf1, // IID18684 - 0x4a, 0x0f, 0x46, 0x94, 0xc3, 0xd9, 0x01, 0xff, 0xe2, // IID18685 - 0x4b, 0x0f, 0x46, 0x9c, 0xc8, 0x81, 0x2f, 0xea, 0x61, // IID18686 - 0x4d, 0x0f, 0x46, 0x81, 0x31, 0xa8, 0x60, 0x26, // IID18687 - 0x4f, 0x0f, 0x46, 0x8c, 0x9a, 0x1b, 0x08, 0x9a, 0x61, // IID18688 - 0x4f, 0x0f, 0x46, 0x94, 0x63, 0xf0, 0xb4, 0x5a, 0x71, // IID18689 - 0x4f, 0x0f, 0x46, 0x9c, 0x2c, 0x26, 0x40, 0x5f, 0x66, // IID18690 - 0x4d, 0x0f, 0x46, 0xa5, 0x8e, 0x5c, 0xf9, 0x34, // IID18691 - 0x4f, 0x0f, 0x46, 0xac, 0x7e, 0x53, 0x37, 0x51, 0x69, // IID18692 - 0xd5, 0xad, 0x46, 0xb4, 0xc7, 0x62, 0x2a, 0x13, 0x0d, // IID18693 - 0xd5, 0xbc, 0x46, 0xbc, 0x08, 0xe1, 0x8b, 0x1c, 0xbf, // IID18694 - 0xd5, 0xd8, 0x46, 0x81, 0x0f, 0x70, 0xea, 0x4e, // IID18695 - 0xd5, 0xf8, 0x46, 0x8c, 0x9a, 0x9a, 0x08, 0xa6, 0x52, // IID18696 - 0xd5, 0xd8, 0x46, 0x93, 0x3c, 0x12, 0xf4, 0xb3, // IID18697 - 0xd5, 0xd8, 0x46, 0x9c, 0x24, 0x69, 0x76, 0x96, 0x55, // IID18698 - 0xd5, 0xf8, 0x46, 0xa4, 0xf5, 0xc5, 0x02, 0x95, 0x1f, // IID18699 - 0xd5, 0xf8, 0x46, 0xac, 0x7e, 0xe7, 0x35, 0x8f, 0x64, // IID18700 - 0xd5, 0xfa, 0x46, 0xb4, 0x47, 0x11, 0xa4, 0xdc, 0x0e, // IID18701 - 0xd5, 0xfb, 0x46, 0xbc, 0xc8, 0x32, 0xf7, 0x30, 0x4a, // IID18702 - 0xd5, 0xdd, 0x46, 0x81, 0xfc, 0x4b, 0xdc, 0x18, // IID18703 - 0xd5, 0xff, 0x46, 0x8c, 0x1a, 0x8e, 0x04, 0xe5, 0x63, // IID18704 - 0xd5, 0xff, 0x46, 0x94, 0xa3, 0x86, 0x66, 0xee, 0x93, // IID18705 - 0xd5, 0xff, 0x46, 0x9c, 0xac, 0x96, 0xde, 0x69, 0x53, // IID18706 - 0xd5, 0xff, 0x46, 0xa4, 0x75, 0xa6, 0x8e, 0x02, 0x35, // IID18707 - 0xd5, 0xff, 0x46, 0xac, 0xfe, 0x18, 0x9f, 0xef, 0xed, // IID18708 - 0xd5, 0xdd, 0x46, 0xb4, 0xcf, 0x1b, 0xd1, 0x3b, 0x3b, // IID18709 - 0xd5, 0xcc, 0x46, 0xbc, 0x91, 0xe4, 0xe1, 0x9e, 0xd6, // IID18710 - 0x48, 0x0f, 0x47, 0x8c, 0x1a, 0xe3, 0x07, 0x95, 0xd0, // IID18711 - 0x4a, 0x0f, 0x47, 0x94, 0xc3, 0xeb, 0x15, 0x81, 0x12, // IID18712 - 0x49, 0x0f, 0x47, 0x98, 0x38, 0xdc, 0x8e, 0x94, // IID18713 - 0x4f, 0x0f, 0x47, 0x84, 0x91, 0xd5, 0x4b, 0x3d, 0x82, // IID18714 - 0x4f, 0x0f, 0x47, 0x8c, 0x5a, 0x4d, 0xe4, 0xd2, 0x17, // IID18715 - 0x4f, 0x0f, 0x47, 0x94, 0x63, 0x2d, 0xc7, 0xf2, 0xfd, // IID18716 - 0x4f, 0x0f, 0x47, 0x9c, 0xec, 0x30, 0xd5, 0xa6, 0x6b, // IID18717 - 0x4d, 0x0f, 0x47, 0xa5, 0x0e, 0x53, 0x36, 0xdc, // IID18718 - 0x4f, 0x0f, 0x47, 0xac, 0x7e, 0xaa, 0x25, 0x7a, 0x52, // IID18719 - 0x4d, 0x0f, 0x47, 0xb7, 0x25, 0xbc, 0x85, 0xf7, // IID18720 - 0xd5, 0xbc, 0x47, 0xbc, 0xc8, 0xde, 0x01, 0x51, 0x89, // IID18721 - 0xd5, 0xf8, 0x47, 0x84, 0x51, 0xd0, 0xd5, 0xd1, 0x0d, // IID18722 - 0xd5, 0xf8, 0x47, 0x8c, 0x9a, 0x1c, 0xd5, 0x5a, 0x3c, // IID18723 - 0xd5, 0xd8, 0x47, 0x93, 0x62, 0x41, 0x0e, 0xa7, // IID18724 - 0xd5, 0xf8, 0x47, 0x9c, 0x2c, 0x90, 0xf2, 0xae, 0x48, // IID18725 - 0xd5, 0xf8, 0x47, 0xa4, 0x35, 0x49, 0x14, 0x1a, 0xd6, // IID18726 - 0xd5, 0xf8, 0x47, 0xac, 0xfe, 0x22, 0x11, 0x1e, 0xf2, // IID18727 - 0xd5, 0xfa, 0x47, 0xb4, 0x07, 0xa3, 0x22, 0x91, 0x29, // IID18728 - 0xd5, 0xfb, 0x47, 0xbc, 0x48, 0xd0, 0x1d, 0xf1, 0xee, // IID18729 - 0xd5, 0xdd, 0x47, 0x81, 0xfd, 0xed, 0x97, 0x40, // IID18730 - 0xd5, 0xff, 0x47, 0x8c, 0x9a, 0x4b, 0x00, 0xb7, 0x80, // IID18731 - 0xd5, 0xff, 0x47, 0x94, 0x63, 0xd5, 0x76, 0x09, 0xd0, // IID18732 - 0xd5, 0xdd, 0x47, 0x9c, 0x24, 0x0b, 0xba, 0x07, 0x93, // IID18733 - 0xd5, 0xff, 0x47, 0xa4, 0xb5, 0x5c, 0xfe, 0xcf, 0x8d, // IID18734 - 0xd5, 0xff, 0x47, 0xac, 0x3e, 0x83, 0x3a, 0xdf, 0x0a, // IID18735 - 0xd5, 0xdd, 0x47, 0xb4, 0xcf, 0x28, 0xa9, 0x1a, 0x18, // IID18736 - 0xd5, 0xcc, 0x47, 0xbc, 0xd1, 0x8f, 0xe2, 0x84, 0x10, // IID18737 - 0x48, 0x0f, 0x48, 0x8c, 0x5a, 0xea, 0xc1, 0x3d, 0x3a, // IID18738 - 0x48, 0x0f, 0x48, 0x93, 0x05, 0x3a, 0x43, 0xd6, // IID18739 - 0x49, 0x0f, 0x48, 0x98, 0x0c, 0x4f, 0xc7, 0x80, // IID18740 - 0x4f, 0x0f, 0x48, 0x84, 0x51, 0x17, 0xc7, 0xb2, 0x8a, // IID18741 - 0x4f, 0x0f, 0x48, 0x8c, 0xda, 0x1d, 0x1d, 0x98, 0xd0, // IID18742 - 0x4f, 0x0f, 0x48, 0x94, 0xe3, 0x78, 0x4c, 0xba, 0x31, // IID18743 - 0x4f, 0x0f, 0x48, 0x9c, 0x2c, 0xa8, 0x8c, 0x4b, 0xe7, // IID18744 - 0x4f, 0x0f, 0x48, 0xa4, 0x75, 0xc8, 0x6d, 0x3b, 0xd5, // IID18745 - 0x4f, 0x0f, 0x48, 0xac, 0x7e, 0xc5, 0x78, 0x6b, 0xd8, // IID18746 - 0xd5, 0xad, 0x48, 0xb4, 0x07, 0x31, 0xdb, 0x73, 0x3d, // IID18747 - 0xd5, 0xbc, 0x48, 0xbc, 0x48, 0x30, 0xde, 0xe7, 0xe0, // IID18748 - 0xd5, 0xd8, 0x48, 0x81, 0x52, 0x01, 0x86, 0x6d, // IID18749 - 0xd5, 0xd8, 0x48, 0x8a, 0xbc, 0x50, 0x35, 0xc6, // IID18750 - 0xd5, 0xf8, 0x48, 0x94, 0xe3, 0x9d, 0x88, 0xcd, 0x9a, // IID18751 - 0xd5, 0xf8, 0x48, 0x9c, 0x2c, 0xba, 0x21, 0xaf, 0xb0, // IID18752 - 0xd5, 0xf8, 0x48, 0xa4, 0x35, 0x83, 0x6a, 0xd0, 0x26, // IID18753 - 0xd5, 0xf8, 0x48, 0xac, 0xbe, 0x75, 0xe0, 0x64, 0x57, // IID18754 - 0xd5, 0xfa, 0x48, 0xb4, 0xc7, 0x7e, 0x2a, 0xff, 0x68, // IID18755 - 0xd5, 0xd9, 0x48, 0xb8, 0xd5, 0x07, 0xe0, 0xf1, // IID18756 - 0xd5, 0xff, 0x48, 0x84, 0x51, 0x81, 0x6f, 0xbf, 0x33, // IID18757 - 0xd5, 0xff, 0x48, 0x8c, 0x5a, 0xac, 0xf6, 0x1a, 0x34, // IID18758 - 0xd5, 0xff, 0x48, 0x94, 0xe3, 0xca, 0x17, 0x87, 0xeb, // IID18759 - 0xd5, 0xff, 0x48, 0x9c, 0x2c, 0x57, 0x84, 0x26, 0xaf, // IID18760 - 0xd5, 0xff, 0x48, 0xa4, 0x35, 0x7d, 0xde, 0x3d, 0x0c, // IID18761 - 0xd5, 0xdd, 0x48, 0xae, 0xda, 0x70, 0xf7, 0xde, // IID18762 - 0xd5, 0xdd, 0x48, 0xb4, 0xcf, 0xb2, 0x06, 0x67, 0x55, // IID18763 - 0xd5, 0xcc, 0x48, 0xbc, 0xd1, 0x71, 0x1c, 0x2d, 0xeb, // IID18764 - 0x48, 0x0f, 0x49, 0x8c, 0x9a, 0xd8, 0xf0, 0x85, 0x23, // IID18765 - 0x4a, 0x0f, 0x49, 0x94, 0x83, 0xce, 0xab, 0x3c, 0x14, // IID18766 - 0x4b, 0x0f, 0x49, 0x9c, 0x88, 0x80, 0xcc, 0x7d, 0x06, // IID18767 - 0x4d, 0x0f, 0x49, 0x81, 0xa5, 0xa1, 0x2e, 0xb7, // IID18768 - 0x4d, 0x0f, 0x49, 0x8a, 0xd4, 0xb1, 0x6d, 0x0b, // IID18769 - 0x4f, 0x0f, 0x49, 0x94, 0xe3, 0xc9, 0xe6, 0xe1, 0xc1, // IID18770 - 0x4f, 0x0f, 0x49, 0x9c, 0xec, 0xfb, 0x02, 0xde, 0xea, // IID18771 - 0x4f, 0x0f, 0x49, 0xa4, 0x75, 0x26, 0x70, 0x77, 0x71, // IID18772 - 0x4f, 0x0f, 0x49, 0xac, 0x7e, 0x7d, 0x7e, 0x88, 0xd5, // IID18773 - 0xd5, 0xad, 0x49, 0xb4, 0xc7, 0xec, 0xe0, 0x37, 0x96, // IID18774 - 0xd5, 0xbc, 0x49, 0xbc, 0x88, 0x07, 0x99, 0x6f, 0x08, // IID18775 - 0xd5, 0xf8, 0x49, 0x84, 0x91, 0x55, 0x49, 0x35, 0x15, // IID18776 - 0xd5, 0xf8, 0x49, 0x8c, 0x5a, 0xa5, 0xb0, 0x2a, 0x64, // IID18777 - 0xd5, 0xf8, 0x49, 0x94, 0xe3, 0x29, 0x7d, 0x66, 0xca, // IID18778 - 0xd5, 0xf8, 0x49, 0x9c, 0xec, 0x64, 0x8d, 0x5f, 0x61, // IID18779 - 0xd5, 0xf8, 0x49, 0xa4, 0xf5, 0x89, 0x5c, 0xb8, 0x17, // IID18780 - 0xd5, 0xf8, 0x49, 0xac, 0xbe, 0x9a, 0x10, 0x33, 0xf1, // IID18781 - 0xd5, 0xfa, 0x49, 0xb4, 0xc7, 0x97, 0x48, 0xbb, 0x10, // IID18782 - 0xd5, 0xd9, 0x49, 0xb8, 0xc5, 0x86, 0xd8, 0x7b, // IID18783 - 0xd5, 0xff, 0x49, 0x84, 0x11, 0x92, 0xe7, 0x51, 0xc6, // IID18784 - 0xd5, 0xff, 0x49, 0x8c, 0x9a, 0x6b, 0x08, 0xd6, 0x3c, // IID18785 - 0xd5, 0xff, 0x49, 0x94, 0x63, 0x39, 0x19, 0xfa, 0x3d, // IID18786 - 0xd5, 0xff, 0x49, 0x9c, 0xec, 0x0f, 0xa0, 0xd4, 0x9d, // IID18787 - 0xd5, 0xff, 0x49, 0xa4, 0x35, 0x1e, 0xaa, 0xfd, 0x02, // IID18788 - 0xd5, 0xff, 0x49, 0xac, 0x3e, 0xfc, 0x1d, 0x84, 0x35, // IID18789 - 0xd5, 0xdd, 0x49, 0xb4, 0x4f, 0x9e, 0x2c, 0xbd, 0x6e, // IID18790 - 0xd5, 0xcc, 0x49, 0xbc, 0xd1, 0x38, 0xf5, 0xca, 0x75, // IID18791 - 0x48, 0x0f, 0x4a, 0x8a, 0xa1, 0xf5, 0xd1, 0x2e, // IID18792 - 0x4a, 0x0f, 0x4a, 0x94, 0x83, 0xec, 0xbb, 0x36, 0xf0, // IID18793 - 0x4b, 0x0f, 0x4a, 0x9c, 0x48, 0x01, 0x7f, 0xad, 0xff, // IID18794 - 0x4f, 0x0f, 0x4a, 0x84, 0x91, 0x97, 0x56, 0xcf, 0xb3, // IID18795 - 0x4f, 0x0f, 0x4a, 0x8c, 0xda, 0xce, 0xf3, 0xf0, 0x08, // IID18796 - 0x4d, 0x0f, 0x4a, 0x93, 0x51, 0xe0, 0xf6, 0x3d, // IID18797 - 0x4f, 0x0f, 0x4a, 0x9c, 0xac, 0x65, 0x49, 0x2c, 0xc1, // IID18798 - 0x4d, 0x0f, 0x4a, 0xa5, 0xf2, 0x57, 0xf2, 0xb4, // IID18799 - 0x4f, 0x0f, 0x4a, 0xac, 0xbe, 0xff, 0x74, 0x81, 0x01, // IID18800 - 0xd5, 0xad, 0x4a, 0xb4, 0x87, 0x32, 0xa4, 0xbf, 0x4d, // IID18801 - 0xd5, 0x9c, 0x4a, 0xb8, 0x98, 0xbd, 0x40, 0xdd, // IID18802 - 0xd5, 0xf8, 0x4a, 0x84, 0xd1, 0x59, 0x40, 0x18, 0xcf, // IID18803 - 0xd5, 0xf8, 0x4a, 0x8c, 0xda, 0x25, 0x9f, 0x3b, 0x1d, // IID18804 - 0xd5, 0xf8, 0x4a, 0x94, 0x23, 0xcb, 0x5d, 0xeb, 0xee, // IID18805 - 0xd5, 0xf8, 0x4a, 0x9c, 0xec, 0xe7, 0xa9, 0x18, 0xdd, // IID18806 - 0xd5, 0xf8, 0x4a, 0xa4, 0x75, 0x46, 0x1d, 0x4c, 0x1d, // IID18807 - 0xd5, 0xf8, 0x4a, 0xac, 0xfe, 0x51, 0x24, 0xb4, 0x9d, // IID18808 - 0xd5, 0xfa, 0x4a, 0xb4, 0x47, 0xce, 0x81, 0x28, 0xcf, // IID18809 - 0xd5, 0xfb, 0x4a, 0xbc, 0x48, 0x8f, 0x65, 0x15, 0xe5, // IID18810 - 0xd5, 0xff, 0x4a, 0x84, 0x51, 0xd3, 0x16, 0x7c, 0x69, // IID18811 - 0xd5, 0xff, 0x4a, 0x8c, 0x9a, 0x44, 0x68, 0x07, 0xa7, // IID18812 - 0xd5, 0xff, 0x4a, 0x94, 0xa3, 0x5d, 0xf2, 0x67, 0x00, // IID18813 - 0xd5, 0xff, 0x4a, 0x9c, 0xac, 0x71, 0x9c, 0x7a, 0xf7, // IID18814 - 0xd5, 0xdd, 0x4a, 0xa5, 0xc4, 0xa2, 0x08, 0x56, // IID18815 - 0xd5, 0xff, 0x4a, 0xac, 0x7e, 0x98, 0x40, 0x80, 0x24, // IID18816 - 0xd5, 0xdd, 0x4a, 0xb4, 0x4f, 0x62, 0x54, 0xd6, 0x60, // IID18817 - 0xd5, 0xcc, 0x4a, 0xbc, 0xd1, 0xa2, 0xb4, 0xe6, 0x65, // IID18818 - 0x48, 0x0f, 0x4b, 0x8c, 0x5a, 0x76, 0x80, 0xed, 0x31, // IID18819 - 0x48, 0x0f, 0x4b, 0x93, 0x73, 0x72, 0x04, 0xf1, // IID18820 - 0x49, 0x0f, 0x4b, 0x98, 0x24, 0x1b, 0x0e, 0x78, // IID18821 - 0x4f, 0x0f, 0x4b, 0x84, 0xd1, 0xea, 0xa9, 0x84, 0x71, // IID18822 - 0x4d, 0x0f, 0x4b, 0x8a, 0x55, 0x26, 0x96, 0x78, // IID18823 - 0x4f, 0x0f, 0x4b, 0x94, 0x23, 0xeb, 0xe2, 0xc8, 0x79, // IID18824 - 0x4f, 0x0f, 0x4b, 0x9c, 0x2c, 0xf6, 0x36, 0x6d, 0x40, // IID18825 - 0x4f, 0x0f, 0x4b, 0xa4, 0x35, 0xc4, 0xe1, 0x5c, 0xad, // IID18826 - 0x4d, 0x0f, 0x4b, 0xae, 0x3b, 0xf5, 0xbb, 0xce, // IID18827 - 0xd5, 0xad, 0x4b, 0xb4, 0x87, 0xe3, 0x52, 0x2d, 0xa5, // IID18828 - 0xd5, 0xbc, 0x4b, 0xbc, 0x48, 0x0f, 0x60, 0xab, 0x6a, // IID18829 - 0xd5, 0xf8, 0x4b, 0x84, 0x11, 0x31, 0x24, 0xa6, 0xfc, // IID18830 - 0xd5, 0xf8, 0x4b, 0x8c, 0x1a, 0x44, 0x21, 0xa4, 0x15, // IID18831 - 0xd5, 0xd8, 0x4b, 0x93, 0x89, 0xc4, 0xe4, 0x2b, // IID18832 - 0xd5, 0xf8, 0x4b, 0x9c, 0xac, 0xa7, 0xc6, 0x64, 0x9a, // IID18833 - 0xd5, 0xd8, 0x4b, 0xa5, 0x3e, 0x82, 0x88, 0xa2, // IID18834 - 0xd5, 0xf8, 0x4b, 0xac, 0xfe, 0x0d, 0x38, 0x37, 0x61, // IID18835 - 0xd5, 0xfa, 0x4b, 0xb4, 0x07, 0x87, 0xef, 0x35, 0xb7, // IID18836 - 0xd5, 0xfb, 0x4b, 0xbc, 0x88, 0xb3, 0x8d, 0x9d, 0x35, // IID18837 - 0xd5, 0xff, 0x4b, 0x84, 0x11, 0x64, 0xa1, 0x6b, 0x8c, // IID18838 - 0xd5, 0xff, 0x4b, 0x8c, 0x9a, 0x1c, 0x38, 0x2f, 0xe3, // IID18839 - 0xd5, 0xff, 0x4b, 0x94, 0x23, 0x3d, 0xfb, 0x31, 0xa3, // IID18840 - 0xd5, 0xff, 0x4b, 0x9c, 0xec, 0xea, 0x8d, 0xf4, 0x1e, // IID18841 - 0xd5, 0xff, 0x4b, 0xa4, 0xb5, 0xd7, 0x43, 0x1f, 0x03, // IID18842 - 0xd5, 0xff, 0x4b, 0xac, 0x7e, 0x55, 0x07, 0xee, 0x90, // IID18843 - 0xd5, 0xdd, 0x4b, 0xb4, 0x8f, 0x42, 0xb9, 0x1a, 0x5c, // IID18844 - 0xd5, 0xcc, 0x4b, 0xbc, 0x51, 0x5d, 0x8d, 0x14, 0x5b, // IID18845 - 0x48, 0x0f, 0x4c, 0x8c, 0x9a, 0xc5, 0xc5, 0x9c, 0x4a, // IID18846 - 0x4a, 0x0f, 0x4c, 0x94, 0x83, 0xf8, 0xbe, 0xec, 0x41, // IID18847 - 0x4b, 0x0f, 0x4c, 0x9c, 0xc8, 0x4e, 0xf8, 0x12, 0x43, // IID18848 - 0x4f, 0x0f, 0x4c, 0x84, 0xd1, 0x78, 0xff, 0x27, 0x9f, // IID18849 - 0x4f, 0x0f, 0x4c, 0x8c, 0x1a, 0xb6, 0x6e, 0xd5, 0x19, // IID18850 - 0x4f, 0x0f, 0x4c, 0x94, 0x63, 0x46, 0x6f, 0xca, 0xa4, // IID18851 - 0x4f, 0x0f, 0x4c, 0x9c, 0xec, 0x5f, 0xfd, 0x39, 0x64, // IID18852 - 0x4f, 0x0f, 0x4c, 0xa4, 0x75, 0xb7, 0xa0, 0xd2, 0xef, // IID18853 - 0x4d, 0x0f, 0x4c, 0xae, 0x2d, 0x11, 0x80, 0x7d, // IID18854 - 0xd5, 0xad, 0x4c, 0xb4, 0x07, 0x86, 0xf1, 0x4d, 0x61, // IID18855 - 0xd5, 0xbc, 0x4c, 0xbc, 0x88, 0xfd, 0x70, 0x90, 0xd4, // IID18856 - 0xd5, 0xf8, 0x4c, 0x84, 0x51, 0x05, 0xfa, 0x9a, 0xcc, // IID18857 - 0xd5, 0xd8, 0x4c, 0x8a, 0x4d, 0xaf, 0x48, 0xd0, // IID18858 - 0xd5, 0xf8, 0x4c, 0x94, 0xe3, 0x26, 0x7b, 0x9f, 0xb3, // IID18859 - 0xd5, 0xd8, 0x4c, 0x9c, 0x24, 0x67, 0x51, 0x1c, 0x49, // IID18860 - 0xd5, 0xd8, 0x4c, 0xa5, 0xff, 0x67, 0xf6, 0x34, // IID18861 - 0xd5, 0xf8, 0x4c, 0xac, 0x7e, 0x29, 0x54, 0x22, 0xbf, // IID18862 - 0xd5, 0xfa, 0x4c, 0xb4, 0x47, 0x98, 0xf2, 0x5a, 0xcf, // IID18863 - 0xd5, 0xd9, 0x4c, 0xb8, 0x4f, 0x76, 0xaa, 0x1b, // IID18864 - 0xd5, 0xdd, 0x4c, 0x81, 0xfa, 0x27, 0x03, 0xc9, // IID18865 - 0xd5, 0xff, 0x4c, 0x8c, 0x9a, 0x53, 0xec, 0x9d, 0x32, // IID18866 - 0xd5, 0xff, 0x4c, 0x94, 0xa3, 0xf8, 0x91, 0x3c, 0xf8, // IID18867 - 0xd5, 0xdd, 0x4c, 0x9c, 0x24, 0xea, 0x42, 0xf6, 0xee, // IID18868 - 0xd5, 0xff, 0x4c, 0xa4, 0xb5, 0x2f, 0x56, 0xdc, 0xac, // IID18869 - 0xd5, 0xdd, 0x4c, 0xae, 0x68, 0xd6, 0x8c, 0xba, // IID18870 - 0xd5, 0xdd, 0x4c, 0xb4, 0x8f, 0xc0, 0x9f, 0x27, 0x45, // IID18871 - 0xd5, 0xcc, 0x4c, 0xbc, 0x11, 0x1f, 0xf9, 0x0c, 0x49, // IID18872 - 0x48, 0x0f, 0x4d, 0x8c, 0x5a, 0x07, 0xd7, 0x4b, 0xf2, // IID18873 - 0x4a, 0x0f, 0x4d, 0x94, 0x43, 0x83, 0x27, 0x8b, 0x01, // IID18874 - 0x4b, 0x0f, 0x4d, 0x9c, 0x88, 0xb1, 0xba, 0x32, 0xcd, // IID18875 - 0x4f, 0x0f, 0x4d, 0x84, 0x51, 0x64, 0x37, 0xca, 0x5c, // IID18876 - 0x4d, 0x0f, 0x4d, 0x8a, 0x69, 0x2c, 0x7b, 0x1a, // IID18877 - 0x4d, 0x0f, 0x4d, 0x93, 0x5b, 0xb1, 0x90, 0x0e, // IID18878 - 0x4f, 0x0f, 0x4d, 0x9c, 0x2c, 0xe3, 0x8d, 0x6d, 0x9d, // IID18879 - 0x4f, 0x0f, 0x4d, 0xa4, 0xf5, 0xb8, 0xbd, 0xe9, 0x2a, // IID18880 - 0x4f, 0x0f, 0x4d, 0xac, 0xfe, 0xf7, 0x1f, 0xdb, 0x98, // IID18881 - 0xd5, 0xad, 0x4d, 0xb4, 0x07, 0x52, 0xcc, 0x51, 0x90, // IID18882 - 0xd5, 0xbc, 0x4d, 0xbc, 0x48, 0xc1, 0xde, 0x17, 0xf8, // IID18883 - 0xd5, 0xf8, 0x4d, 0x84, 0x51, 0x29, 0xfc, 0x69, 0xcb, // IID18884 - 0xd5, 0xf8, 0x4d, 0x8c, 0x5a, 0x27, 0xfe, 0x8c, 0x3b, // IID18885 - 0xd5, 0xf8, 0x4d, 0x94, 0xa3, 0x8d, 0x34, 0x3a, 0x97, // IID18886 - 0xd5, 0xf8, 0x4d, 0x9c, 0xac, 0x10, 0x20, 0x99, 0x3d, // IID18887 - 0xd5, 0xf8, 0x4d, 0xa4, 0xb5, 0x03, 0x47, 0xde, 0x29, // IID18888 - 0xd5, 0xf8, 0x4d, 0xac, 0x7e, 0x53, 0xd5, 0xaa, 0x08, // IID18889 - 0xd5, 0xfa, 0x4d, 0xb4, 0x07, 0x70, 0x63, 0x72, 0x63, // IID18890 - 0xd5, 0xfb, 0x4d, 0xbc, 0x48, 0xcd, 0x45, 0xfd, 0x8d, // IID18891 - 0xd5, 0xff, 0x4d, 0x84, 0x51, 0x8e, 0xc1, 0xae, 0x6d, // IID18892 - 0xd5, 0xff, 0x4d, 0x8c, 0x5a, 0x38, 0xf7, 0x98, 0x4f, // IID18893 - 0xd5, 0xff, 0x4d, 0x94, 0x23, 0x76, 0x06, 0xe0, 0xf7, // IID18894 - 0xd5, 0xff, 0x4d, 0x9c, 0xac, 0x2d, 0x2e, 0x56, 0xd7, // IID18895 - 0xd5, 0xff, 0x4d, 0xa4, 0xf5, 0xf2, 0xeb, 0x7e, 0x01, // IID18896 - 0xd5, 0xff, 0x4d, 0xac, 0xbe, 0x61, 0xaa, 0x9b, 0x13, // IID18897 - 0xd5, 0xdd, 0x4d, 0xb4, 0x4f, 0xb8, 0xbb, 0x17, 0x9b, // IID18898 - 0xd5, 0xcc, 0x4d, 0xb9, 0x43, 0x00, 0x3a, 0x6f, // IID18899 - 0x48, 0x0f, 0x4e, 0x8c, 0x5a, 0xee, 0xe2, 0xc7, 0xa3, // IID18900 - 0x4a, 0x0f, 0x4e, 0x94, 0x03, 0x22, 0x75, 0x20, 0x8d, // IID18901 - 0x49, 0x0f, 0x4e, 0x98, 0x3b, 0xe6, 0x5c, 0x29, // IID18902 - 0x4f, 0x0f, 0x4e, 0x84, 0x11, 0x2b, 0x8b, 0xbc, 0x03, // IID18903 - 0x4f, 0x0f, 0x4e, 0x8c, 0x5a, 0xe2, 0xbb, 0xcf, 0xaf, // IID18904 - 0x4f, 0x0f, 0x4e, 0x94, 0x23, 0x05, 0x27, 0xcc, 0x0d, // IID18905 - 0x4f, 0x0f, 0x4e, 0x9c, 0x2c, 0x1d, 0xaf, 0xa9, 0x23, // IID18906 - 0x4f, 0x0f, 0x4e, 0xa4, 0xf5, 0x0f, 0x79, 0x48, 0xbf, // IID18907 - 0x4f, 0x0f, 0x4e, 0xac, 0xbe, 0xe0, 0x79, 0x2b, 0xe0, // IID18908 - 0xd5, 0xad, 0x4e, 0xb4, 0xc7, 0xcc, 0x91, 0x56, 0x18, // IID18909 - 0xd5, 0x9c, 0x4e, 0xb8, 0xec, 0x8d, 0x51, 0x16, // IID18910 - 0xd5, 0xf8, 0x4e, 0x84, 0xd1, 0x25, 0xf1, 0xd0, 0x27, // IID18911 - 0xd5, 0xf8, 0x4e, 0x8c, 0x9a, 0xdb, 0x00, 0x6d, 0xed, // IID18912 - 0xd5, 0xf8, 0x4e, 0x94, 0x23, 0xa4, 0x84, 0x85, 0x00, // IID18913 - 0xd5, 0xd8, 0x4e, 0x9c, 0x24, 0xdc, 0xb0, 0xc6, 0x69, // IID18914 - 0xd5, 0xf8, 0x4e, 0xa4, 0xb5, 0x31, 0x34, 0xe5, 0x8d, // IID18915 - 0xd5, 0xf8, 0x4e, 0xac, 0xbe, 0x40, 0x10, 0x17, 0x8e, // IID18916 - 0xd5, 0xd8, 0x4e, 0xb7, 0xbc, 0x0d, 0x0c, 0x85, // IID18917 - 0xd5, 0xd9, 0x4e, 0xb8, 0x74, 0x9d, 0x3b, 0x33, // IID18918 - 0xd5, 0xdd, 0x4e, 0x81, 0xba, 0x35, 0xc6, 0x8e, // IID18919 - 0xd5, 0xdd, 0x4e, 0x8a, 0x3b, 0x85, 0xb1, 0x38, // IID18920 - 0xd5, 0xff, 0x4e, 0x94, 0x23, 0x42, 0xc7, 0xb5, 0x57, // IID18921 - 0xd5, 0xff, 0x4e, 0x9c, 0xec, 0x84, 0x3a, 0xc4, 0x62, // IID18922 - 0xd5, 0xff, 0x4e, 0xa4, 0xb5, 0x84, 0xe1, 0x09, 0x99, // IID18923 - 0xd5, 0xff, 0x4e, 0xac, 0xbe, 0x6a, 0x8e, 0xcb, 0x2b, // IID18924 - 0xd5, 0xdd, 0x4e, 0xb7, 0xe7, 0x9d, 0xd6, 0x7a, // IID18925 - 0xd5, 0xcc, 0x4e, 0xb9, 0xca, 0x56, 0x18, 0xb8, // IID18926 - 0x48, 0x0f, 0x4f, 0x8c, 0x9a, 0x70, 0xff, 0xe6, 0x07, // IID18927 - 0x4a, 0x0f, 0x4f, 0x94, 0x43, 0x81, 0x4c, 0xb3, 0x3d, // IID18928 - 0x4b, 0x0f, 0x4f, 0x9c, 0x48, 0x5d, 0xcd, 0x14, 0xd3, // IID18929 - 0x4d, 0x0f, 0x4f, 0x81, 0x45, 0x20, 0x69, 0xaf, // IID18930 - 0x4d, 0x0f, 0x4f, 0x8a, 0xfa, 0x09, 0x31, 0x22, // IID18931 - 0x4f, 0x0f, 0x4f, 0x94, 0xe3, 0x69, 0xee, 0x1c, 0x86, // IID18932 - 0x4f, 0x0f, 0x4f, 0x9c, 0xac, 0x69, 0x84, 0x80, 0x04, // IID18933 - 0x4d, 0x0f, 0x4f, 0xa5, 0x34, 0x28, 0xa2, 0x25, // IID18934 - 0x4f, 0x0f, 0x4f, 0xac, 0xfe, 0x2d, 0x46, 0xea, 0x7c, // IID18935 - 0xd5, 0xad, 0x4f, 0xb4, 0x87, 0xd5, 0x7a, 0x0f, 0x3e, // IID18936 - 0xd5, 0x9c, 0x4f, 0xb8, 0x2d, 0x8c, 0x11, 0xdd, // IID18937 - 0xd5, 0xf8, 0x4f, 0x84, 0xd1, 0x80, 0xab, 0x93, 0x42, // IID18938 - 0xd5, 0xf8, 0x4f, 0x8c, 0x9a, 0x3f, 0x9f, 0xdc, 0x2d, // IID18939 - 0xd5, 0xf8, 0x4f, 0x94, 0xe3, 0x38, 0xbd, 0xda, 0x92, // IID18940 - 0xd5, 0xf8, 0x4f, 0x9c, 0x6c, 0xd4, 0x87, 0x10, 0x0e, // IID18941 - 0xd5, 0xf8, 0x4f, 0xa4, 0xb5, 0xd2, 0x56, 0x99, 0xbe, // IID18942 - 0xd5, 0xf8, 0x4f, 0xac, 0x7e, 0x62, 0x6a, 0xbf, 0x75, // IID18943 - 0xd5, 0xd8, 0x4f, 0xb7, 0xa3, 0xcc, 0xee, 0x92, // IID18944 - 0xd5, 0xfb, 0x4f, 0xbc, 0x08, 0x40, 0x17, 0xae, 0xc8, // IID18945 - 0xd5, 0xff, 0x4f, 0x84, 0x11, 0xa9, 0x36, 0xec, 0x60, // IID18946 - 0xd5, 0xff, 0x4f, 0x8c, 0xda, 0x24, 0x91, 0xef, 0xeb, // IID18947 - 0xd5, 0xdd, 0x4f, 0x93, 0x48, 0xb9, 0xd0, 0xad, // IID18948 - 0xd5, 0xff, 0x4f, 0x9c, 0xac, 0xee, 0xc3, 0x40, 0xde, // IID18949 - 0xd5, 0xff, 0x4f, 0xa4, 0xf5, 0x25, 0xaa, 0x38, 0x06, // IID18950 - 0xd5, 0xdd, 0x4f, 0xae, 0xe3, 0x5d, 0x20, 0x5b, // IID18951 - 0xd5, 0xdd, 0x4f, 0xb4, 0xcf, 0xa4, 0x70, 0x46, 0x4e, // IID18952 - 0xd5, 0xcc, 0x4f, 0xbc, 0xd1, 0x4c, 0x85, 0x13, 0x04, // IID18953 - 0xff, 0xd1, // IID18954 - 0xff, 0xd2, // IID18955 - 0xff, 0xd3, // IID18956 - 0x41, 0xff, 0xd0, // IID18957 - 0x41, 0xff, 0xd1, // IID18958 - 0x41, 0xff, 0xd2, // IID18959 - 0x41, 0xff, 0xd3, // IID18960 - 0x41, 0xff, 0xd4, // IID18961 - 0x41, 0xff, 0xd5, // IID18962 - 0x41, 0xff, 0xd6, // IID18963 - 0x41, 0xff, 0xd7, // IID18964 - 0xd5, 0x10, 0xff, 0xd0, // IID18965 - 0xd5, 0x10, 0xff, 0xd1, // IID18966 - 0xd5, 0x10, 0xff, 0xd2, // IID18967 - 0xd5, 0x10, 0xff, 0xd3, // IID18968 - 0xd5, 0x10, 0xff, 0xd4, // IID18969 - 0xd5, 0x10, 0xff, 0xd5, // IID18970 - 0xd5, 0x10, 0xff, 0xd6, // IID18971 - 0xd5, 0x10, 0xff, 0xd7, // IID18972 - 0xd5, 0x11, 0xff, 0xd0, // IID18973 - 0xd5, 0x11, 0xff, 0xd1, // IID18974 - 0xd5, 0x11, 0xff, 0xd2, // IID18975 - 0xd5, 0x11, 0xff, 0xd3, // IID18976 - 0xd5, 0x11, 0xff, 0xd4, // IID18977 - 0xd5, 0x11, 0xff, 0xd5, // IID18978 - 0xd5, 0x11, 0xff, 0xd6, // IID18979 - 0xd5, 0x11, 0xff, 0xd7, // IID18980 - 0x48, 0xf7, 0xf1, // IID18981 - 0x48, 0xf7, 0xf2, // IID18982 - 0x48, 0xf7, 0xf3, // IID18983 - 0x49, 0xf7, 0xf0, // IID18984 - 0x49, 0xf7, 0xf1, // IID18985 - 0x49, 0xf7, 0xf2, // IID18986 - 0x49, 0xf7, 0xf3, // IID18987 - 0x49, 0xf7, 0xf4, // IID18988 - 0x49, 0xf7, 0xf5, // IID18989 - 0x49, 0xf7, 0xf6, // IID18990 - 0x49, 0xf7, 0xf7, // IID18991 - 0xd5, 0x18, 0xf7, 0xf0, // IID18992 - 0xd5, 0x18, 0xf7, 0xf1, // IID18993 - 0xd5, 0x18, 0xf7, 0xf2, // IID18994 - 0xd5, 0x18, 0xf7, 0xf3, // IID18995 - 0xd5, 0x18, 0xf7, 0xf4, // IID18996 - 0xd5, 0x18, 0xf7, 0xf5, // IID18997 - 0xd5, 0x18, 0xf7, 0xf6, // IID18998 - 0xd5, 0x18, 0xf7, 0xf7, // IID18999 - 0xd5, 0x19, 0xf7, 0xf0, // IID19000 - 0xd5, 0x19, 0xf7, 0xf1, // IID19001 - 0xd5, 0x19, 0xf7, 0xf2, // IID19002 - 0xd5, 0x19, 0xf7, 0xf3, // IID19003 - 0xd5, 0x19, 0xf7, 0xf4, // IID19004 - 0xd5, 0x19, 0xf7, 0xf5, // IID19005 - 0xd5, 0x19, 0xf7, 0xf6, // IID19006 - 0xd5, 0x19, 0xf7, 0xf7, // IID19007 - 0x48, 0xf7, 0xf9, // IID19008 - 0x48, 0xf7, 0xfa, // IID19009 - 0x48, 0xf7, 0xfb, // IID19010 - 0x49, 0xf7, 0xf8, // IID19011 - 0x49, 0xf7, 0xf9, // IID19012 - 0x49, 0xf7, 0xfa, // IID19013 - 0x49, 0xf7, 0xfb, // IID19014 - 0x49, 0xf7, 0xfc, // IID19015 - 0x49, 0xf7, 0xfd, // IID19016 - 0x49, 0xf7, 0xfe, // IID19017 - 0x49, 0xf7, 0xff, // IID19018 - 0xd5, 0x18, 0xf7, 0xf8, // IID19019 - 0xd5, 0x18, 0xf7, 0xf9, // IID19020 - 0xd5, 0x18, 0xf7, 0xfa, // IID19021 - 0xd5, 0x18, 0xf7, 0xfb, // IID19022 - 0xd5, 0x18, 0xf7, 0xfc, // IID19023 - 0xd5, 0x18, 0xf7, 0xfd, // IID19024 - 0xd5, 0x18, 0xf7, 0xfe, // IID19025 - 0xd5, 0x18, 0xf7, 0xff, // IID19026 - 0xd5, 0x19, 0xf7, 0xf8, // IID19027 - 0xd5, 0x19, 0xf7, 0xf9, // IID19028 - 0xd5, 0x19, 0xf7, 0xfa, // IID19029 - 0xd5, 0x19, 0xf7, 0xfb, // IID19030 - 0xd5, 0x19, 0xf7, 0xfc, // IID19031 - 0xd5, 0x19, 0xf7, 0xfd, // IID19032 - 0xd5, 0x19, 0xf7, 0xfe, // IID19033 - 0xd5, 0x19, 0xf7, 0xff, // IID19034 - 0x48, 0xf7, 0xe9, // IID19035 - 0x48, 0xf7, 0xea, // IID19036 - 0x48, 0xf7, 0xeb, // IID19037 - 0x49, 0xf7, 0xe8, // IID19038 - 0x49, 0xf7, 0xe9, // IID19039 - 0x49, 0xf7, 0xea, // IID19040 - 0x49, 0xf7, 0xeb, // IID19041 - 0x49, 0xf7, 0xec, // IID19042 - 0x49, 0xf7, 0xed, // IID19043 - 0x49, 0xf7, 0xee, // IID19044 - 0x49, 0xf7, 0xef, // IID19045 - 0xd5, 0x18, 0xf7, 0xe8, // IID19046 - 0xd5, 0x18, 0xf7, 0xe9, // IID19047 - 0xd5, 0x18, 0xf7, 0xea, // IID19048 - 0xd5, 0x18, 0xf7, 0xeb, // IID19049 - 0xd5, 0x18, 0xf7, 0xec, // IID19050 - 0xd5, 0x18, 0xf7, 0xed, // IID19051 - 0xd5, 0x18, 0xf7, 0xee, // IID19052 - 0xd5, 0x18, 0xf7, 0xef, // IID19053 - 0xd5, 0x19, 0xf7, 0xe8, // IID19054 - 0xd5, 0x19, 0xf7, 0xe9, // IID19055 - 0xd5, 0x19, 0xf7, 0xea, // IID19056 - 0xd5, 0x19, 0xf7, 0xeb, // IID19057 - 0xd5, 0x19, 0xf7, 0xec, // IID19058 - 0xd5, 0x19, 0xf7, 0xed, // IID19059 - 0xd5, 0x19, 0xf7, 0xee, // IID19060 - 0xd5, 0x19, 0xf7, 0xef, // IID19061 - 0x48, 0xf7, 0xe1, // IID19062 - 0x48, 0xf7, 0xe2, // IID19063 - 0x48, 0xf7, 0xe3, // IID19064 - 0x49, 0xf7, 0xe0, // IID19065 - 0x49, 0xf7, 0xe1, // IID19066 - 0x49, 0xf7, 0xe2, // IID19067 - 0x49, 0xf7, 0xe3, // IID19068 - 0x49, 0xf7, 0xe4, // IID19069 - 0x49, 0xf7, 0xe5, // IID19070 - 0x49, 0xf7, 0xe6, // IID19071 - 0x49, 0xf7, 0xe7, // IID19072 - 0xd5, 0x18, 0xf7, 0xe0, // IID19073 - 0xd5, 0x18, 0xf7, 0xe1, // IID19074 - 0xd5, 0x18, 0xf7, 0xe2, // IID19075 - 0xd5, 0x18, 0xf7, 0xe3, // IID19076 - 0xd5, 0x18, 0xf7, 0xe4, // IID19077 - 0xd5, 0x18, 0xf7, 0xe5, // IID19078 - 0xd5, 0x18, 0xf7, 0xe6, // IID19079 - 0xd5, 0x18, 0xf7, 0xe7, // IID19080 - 0xd5, 0x19, 0xf7, 0xe0, // IID19081 - 0xd5, 0x19, 0xf7, 0xe1, // IID19082 - 0xd5, 0x19, 0xf7, 0xe2, // IID19083 - 0xd5, 0x19, 0xf7, 0xe3, // IID19084 - 0xd5, 0x19, 0xf7, 0xe4, // IID19085 - 0xd5, 0x19, 0xf7, 0xe5, // IID19086 - 0xd5, 0x19, 0xf7, 0xe6, // IID19087 - 0xd5, 0x19, 0xf7, 0xe7, // IID19088 - 0x48, 0xf7, 0xd9, // IID19089 - 0x48, 0xf7, 0xda, // IID19090 - 0x48, 0xf7, 0xdb, // IID19091 - 0x49, 0xf7, 0xd8, // IID19092 - 0x49, 0xf7, 0xd9, // IID19093 - 0x49, 0xf7, 0xda, // IID19094 - 0x49, 0xf7, 0xdb, // IID19095 - 0x49, 0xf7, 0xdc, // IID19096 - 0x49, 0xf7, 0xdd, // IID19097 - 0x49, 0xf7, 0xde, // IID19098 - 0x49, 0xf7, 0xdf, // IID19099 - 0xd5, 0x18, 0xf7, 0xd8, // IID19100 - 0xd5, 0x18, 0xf7, 0xd9, // IID19101 - 0xd5, 0x18, 0xf7, 0xda, // IID19102 - 0xd5, 0x18, 0xf7, 0xdb, // IID19103 - 0xd5, 0x18, 0xf7, 0xdc, // IID19104 - 0xd5, 0x18, 0xf7, 0xdd, // IID19105 - 0xd5, 0x18, 0xf7, 0xde, // IID19106 - 0xd5, 0x18, 0xf7, 0xdf, // IID19107 - 0xd5, 0x19, 0xf7, 0xd8, // IID19108 - 0xd5, 0x19, 0xf7, 0xd9, // IID19109 - 0xd5, 0x19, 0xf7, 0xda, // IID19110 - 0xd5, 0x19, 0xf7, 0xdb, // IID19111 - 0xd5, 0x19, 0xf7, 0xdc, // IID19112 - 0xd5, 0x19, 0xf7, 0xdd, // IID19113 - 0xd5, 0x19, 0xf7, 0xde, // IID19114 - 0xd5, 0x19, 0xf7, 0xdf, // IID19115 - 0x48, 0xf7, 0xd1, // IID19116 - 0x48, 0xf7, 0xd2, // IID19117 - 0x48, 0xf7, 0xd3, // IID19118 - 0x49, 0xf7, 0xd0, // IID19119 - 0x49, 0xf7, 0xd1, // IID19120 - 0x49, 0xf7, 0xd2, // IID19121 - 0x49, 0xf7, 0xd3, // IID19122 - 0x49, 0xf7, 0xd4, // IID19123 - 0x49, 0xf7, 0xd5, // IID19124 - 0x49, 0xf7, 0xd6, // IID19125 - 0x49, 0xf7, 0xd7, // IID19126 - 0xd5, 0x18, 0xf7, 0xd0, // IID19127 - 0xd5, 0x18, 0xf7, 0xd1, // IID19128 - 0xd5, 0x18, 0xf7, 0xd2, // IID19129 - 0xd5, 0x18, 0xf7, 0xd3, // IID19130 - 0xd5, 0x18, 0xf7, 0xd4, // IID19131 - 0xd5, 0x18, 0xf7, 0xd5, // IID19132 - 0xd5, 0x18, 0xf7, 0xd6, // IID19133 - 0xd5, 0x18, 0xf7, 0xd7, // IID19134 - 0xd5, 0x19, 0xf7, 0xd0, // IID19135 - 0xd5, 0x19, 0xf7, 0xd1, // IID19136 - 0xd5, 0x19, 0xf7, 0xd2, // IID19137 - 0xd5, 0x19, 0xf7, 0xd3, // IID19138 - 0xd5, 0x19, 0xf7, 0xd4, // IID19139 - 0xd5, 0x19, 0xf7, 0xd5, // IID19140 - 0xd5, 0x19, 0xf7, 0xd6, // IID19141 - 0xd5, 0x19, 0xf7, 0xd7, // IID19142 - 0x48, 0xd3, 0xc1, // IID19143 - 0x48, 0xd3, 0xc2, // IID19144 - 0x48, 0xd3, 0xc3, // IID19145 - 0x49, 0xd3, 0xc0, // IID19146 - 0x49, 0xd3, 0xc1, // IID19147 - 0x49, 0xd3, 0xc2, // IID19148 - 0x49, 0xd3, 0xc3, // IID19149 - 0x49, 0xd3, 0xc4, // IID19150 - 0x49, 0xd3, 0xc5, // IID19151 - 0x49, 0xd3, 0xc6, // IID19152 - 0x49, 0xd3, 0xc7, // IID19153 - 0xd5, 0x18, 0xd3, 0xc0, // IID19154 - 0xd5, 0x18, 0xd3, 0xc1, // IID19155 - 0xd5, 0x18, 0xd3, 0xc2, // IID19156 - 0xd5, 0x18, 0xd3, 0xc3, // IID19157 - 0xd5, 0x18, 0xd3, 0xc4, // IID19158 - 0xd5, 0x18, 0xd3, 0xc5, // IID19159 - 0xd5, 0x18, 0xd3, 0xc6, // IID19160 - 0xd5, 0x18, 0xd3, 0xc7, // IID19161 - 0xd5, 0x19, 0xd3, 0xc0, // IID19162 - 0xd5, 0x19, 0xd3, 0xc1, // IID19163 - 0xd5, 0x19, 0xd3, 0xc2, // IID19164 - 0xd5, 0x19, 0xd3, 0xc3, // IID19165 - 0xd5, 0x19, 0xd3, 0xc4, // IID19166 - 0xd5, 0x19, 0xd3, 0xc5, // IID19167 - 0xd5, 0x19, 0xd3, 0xc6, // IID19168 - 0xd5, 0x19, 0xd3, 0xc7, // IID19169 - 0x48, 0xd3, 0xc9, // IID19170 - 0x48, 0xd3, 0xca, // IID19171 - 0x48, 0xd3, 0xcb, // IID19172 - 0x49, 0xd3, 0xc8, // IID19173 - 0x49, 0xd3, 0xc9, // IID19174 - 0x49, 0xd3, 0xca, // IID19175 - 0x49, 0xd3, 0xcb, // IID19176 - 0x49, 0xd3, 0xcc, // IID19177 - 0x49, 0xd3, 0xcd, // IID19178 - 0x49, 0xd3, 0xce, // IID19179 - 0x49, 0xd3, 0xcf, // IID19180 - 0xd5, 0x18, 0xd3, 0xc8, // IID19181 - 0xd5, 0x18, 0xd3, 0xc9, // IID19182 - 0xd5, 0x18, 0xd3, 0xca, // IID19183 - 0xd5, 0x18, 0xd3, 0xcb, // IID19184 - 0xd5, 0x18, 0xd3, 0xcc, // IID19185 - 0xd5, 0x18, 0xd3, 0xcd, // IID19186 - 0xd5, 0x18, 0xd3, 0xce, // IID19187 - 0xd5, 0x18, 0xd3, 0xcf, // IID19188 - 0xd5, 0x19, 0xd3, 0xc8, // IID19189 - 0xd5, 0x19, 0xd3, 0xc9, // IID19190 - 0xd5, 0x19, 0xd3, 0xca, // IID19191 - 0xd5, 0x19, 0xd3, 0xcb, // IID19192 - 0xd5, 0x19, 0xd3, 0xcc, // IID19193 - 0xd5, 0x19, 0xd3, 0xcd, // IID19194 - 0xd5, 0x19, 0xd3, 0xce, // IID19195 - 0xd5, 0x19, 0xd3, 0xcf, // IID19196 - 0x48, 0xd3, 0xf9, // IID19197 - 0x48, 0xd3, 0xfa, // IID19198 - 0x48, 0xd3, 0xfb, // IID19199 - 0x49, 0xd3, 0xf8, // IID19200 - 0x49, 0xd3, 0xf9, // IID19201 - 0x49, 0xd3, 0xfa, // IID19202 - 0x49, 0xd3, 0xfb, // IID19203 - 0x49, 0xd3, 0xfc, // IID19204 - 0x49, 0xd3, 0xfd, // IID19205 - 0x49, 0xd3, 0xfe, // IID19206 - 0x49, 0xd3, 0xff, // IID19207 - 0xd5, 0x18, 0xd3, 0xf8, // IID19208 - 0xd5, 0x18, 0xd3, 0xf9, // IID19209 - 0xd5, 0x18, 0xd3, 0xfa, // IID19210 - 0xd5, 0x18, 0xd3, 0xfb, // IID19211 - 0xd5, 0x18, 0xd3, 0xfc, // IID19212 - 0xd5, 0x18, 0xd3, 0xfd, // IID19213 - 0xd5, 0x18, 0xd3, 0xfe, // IID19214 - 0xd5, 0x18, 0xd3, 0xff, // IID19215 - 0xd5, 0x19, 0xd3, 0xf8, // IID19216 - 0xd5, 0x19, 0xd3, 0xf9, // IID19217 - 0xd5, 0x19, 0xd3, 0xfa, // IID19218 - 0xd5, 0x19, 0xd3, 0xfb, // IID19219 - 0xd5, 0x19, 0xd3, 0xfc, // IID19220 - 0xd5, 0x19, 0xd3, 0xfd, // IID19221 - 0xd5, 0x19, 0xd3, 0xfe, // IID19222 - 0xd5, 0x19, 0xd3, 0xff, // IID19223 - 0x48, 0xd3, 0xe1, // IID19224 - 0x48, 0xd3, 0xe2, // IID19225 - 0x48, 0xd3, 0xe3, // IID19226 - 0x49, 0xd3, 0xe0, // IID19227 - 0x49, 0xd3, 0xe1, // IID19228 - 0x49, 0xd3, 0xe2, // IID19229 - 0x49, 0xd3, 0xe3, // IID19230 - 0x49, 0xd3, 0xe4, // IID19231 - 0x49, 0xd3, 0xe5, // IID19232 - 0x49, 0xd3, 0xe6, // IID19233 - 0x49, 0xd3, 0xe7, // IID19234 - 0xd5, 0x18, 0xd3, 0xe0, // IID19235 - 0xd5, 0x18, 0xd3, 0xe1, // IID19236 - 0xd5, 0x18, 0xd3, 0xe2, // IID19237 - 0xd5, 0x18, 0xd3, 0xe3, // IID19238 - 0xd5, 0x18, 0xd3, 0xe4, // IID19239 - 0xd5, 0x18, 0xd3, 0xe5, // IID19240 - 0xd5, 0x18, 0xd3, 0xe6, // IID19241 - 0xd5, 0x18, 0xd3, 0xe7, // IID19242 - 0xd5, 0x19, 0xd3, 0xe0, // IID19243 - 0xd5, 0x19, 0xd3, 0xe1, // IID19244 - 0xd5, 0x19, 0xd3, 0xe2, // IID19245 - 0xd5, 0x19, 0xd3, 0xe3, // IID19246 - 0xd5, 0x19, 0xd3, 0xe4, // IID19247 - 0xd5, 0x19, 0xd3, 0xe5, // IID19248 - 0xd5, 0x19, 0xd3, 0xe6, // IID19249 - 0xd5, 0x19, 0xd3, 0xe7, // IID19250 - 0x48, 0xd3, 0xe1, // IID19251 - 0x48, 0xd3, 0xe2, // IID19252 - 0x48, 0xd3, 0xe3, // IID19253 - 0x49, 0xd3, 0xe0, // IID19254 - 0x49, 0xd3, 0xe1, // IID19255 - 0x49, 0xd3, 0xe2, // IID19256 - 0x49, 0xd3, 0xe3, // IID19257 - 0x49, 0xd3, 0xe4, // IID19258 - 0x49, 0xd3, 0xe5, // IID19259 - 0x49, 0xd3, 0xe6, // IID19260 - 0x49, 0xd3, 0xe7, // IID19261 - 0xd5, 0x18, 0xd3, 0xe0, // IID19262 - 0xd5, 0x18, 0xd3, 0xe1, // IID19263 - 0xd5, 0x18, 0xd3, 0xe2, // IID19264 - 0xd5, 0x18, 0xd3, 0xe3, // IID19265 - 0xd5, 0x18, 0xd3, 0xe4, // IID19266 - 0xd5, 0x18, 0xd3, 0xe5, // IID19267 - 0xd5, 0x18, 0xd3, 0xe6, // IID19268 - 0xd5, 0x18, 0xd3, 0xe7, // IID19269 - 0xd5, 0x19, 0xd3, 0xe0, // IID19270 - 0xd5, 0x19, 0xd3, 0xe1, // IID19271 - 0xd5, 0x19, 0xd3, 0xe2, // IID19272 - 0xd5, 0x19, 0xd3, 0xe3, // IID19273 - 0xd5, 0x19, 0xd3, 0xe4, // IID19274 - 0xd5, 0x19, 0xd3, 0xe5, // IID19275 - 0xd5, 0x19, 0xd3, 0xe6, // IID19276 - 0xd5, 0x19, 0xd3, 0xe7, // IID19277 - 0x48, 0xd3, 0xe9, // IID19278 - 0x48, 0xd3, 0xea, // IID19279 - 0x48, 0xd3, 0xeb, // IID19280 - 0x49, 0xd3, 0xe8, // IID19281 - 0x49, 0xd3, 0xe9, // IID19282 - 0x49, 0xd3, 0xea, // IID19283 - 0x49, 0xd3, 0xeb, // IID19284 - 0x49, 0xd3, 0xec, // IID19285 - 0x49, 0xd3, 0xed, // IID19286 - 0x49, 0xd3, 0xee, // IID19287 - 0x49, 0xd3, 0xef, // IID19288 - 0xd5, 0x18, 0xd3, 0xe8, // IID19289 - 0xd5, 0x18, 0xd3, 0xe9, // IID19290 - 0xd5, 0x18, 0xd3, 0xea, // IID19291 - 0xd5, 0x18, 0xd3, 0xeb, // IID19292 - 0xd5, 0x18, 0xd3, 0xec, // IID19293 - 0xd5, 0x18, 0xd3, 0xed, // IID19294 - 0xd5, 0x18, 0xd3, 0xee, // IID19295 - 0xd5, 0x18, 0xd3, 0xef, // IID19296 - 0xd5, 0x19, 0xd3, 0xe8, // IID19297 - 0xd5, 0x19, 0xd3, 0xe9, // IID19298 - 0xd5, 0x19, 0xd3, 0xea, // IID19299 - 0xd5, 0x19, 0xd3, 0xeb, // IID19300 - 0xd5, 0x19, 0xd3, 0xec, // IID19301 - 0xd5, 0x19, 0xd3, 0xed, // IID19302 - 0xd5, 0x19, 0xd3, 0xee, // IID19303 - 0xd5, 0x19, 0xd3, 0xef, // IID19304 - 0x48, 0xff, 0xc1, // IID19305 - 0x48, 0xff, 0xc2, // IID19306 - 0x48, 0xff, 0xc3, // IID19307 - 0x49, 0xff, 0xc0, // IID19308 - 0x49, 0xff, 0xc1, // IID19309 - 0x49, 0xff, 0xc2, // IID19310 - 0x49, 0xff, 0xc3, // IID19311 - 0x49, 0xff, 0xc4, // IID19312 - 0x49, 0xff, 0xc5, // IID19313 - 0x49, 0xff, 0xc6, // IID19314 - 0x49, 0xff, 0xc7, // IID19315 - 0xd5, 0x18, 0xff, 0xc0, // IID19316 - 0xd5, 0x18, 0xff, 0xc1, // IID19317 - 0xd5, 0x18, 0xff, 0xc2, // IID19318 - 0xd5, 0x18, 0xff, 0xc3, // IID19319 - 0xd5, 0x18, 0xff, 0xc4, // IID19320 - 0xd5, 0x18, 0xff, 0xc5, // IID19321 - 0xd5, 0x18, 0xff, 0xc6, // IID19322 - 0xd5, 0x18, 0xff, 0xc7, // IID19323 - 0xd5, 0x19, 0xff, 0xc0, // IID19324 - 0xd5, 0x19, 0xff, 0xc1, // IID19325 - 0xd5, 0x19, 0xff, 0xc2, // IID19326 - 0xd5, 0x19, 0xff, 0xc3, // IID19327 - 0xd5, 0x19, 0xff, 0xc4, // IID19328 - 0xd5, 0x19, 0xff, 0xc5, // IID19329 - 0xd5, 0x19, 0xff, 0xc6, // IID19330 - 0xd5, 0x19, 0xff, 0xc7, // IID19331 - 0x48, 0xff, 0xc9, // IID19332 - 0x48, 0xff, 0xca, // IID19333 - 0x48, 0xff, 0xcb, // IID19334 - 0x49, 0xff, 0xc8, // IID19335 - 0x49, 0xff, 0xc9, // IID19336 - 0x49, 0xff, 0xca, // IID19337 - 0x49, 0xff, 0xcb, // IID19338 - 0x49, 0xff, 0xcc, // IID19339 - 0x49, 0xff, 0xcd, // IID19340 - 0x49, 0xff, 0xce, // IID19341 - 0x49, 0xff, 0xcf, // IID19342 - 0xd5, 0x18, 0xff, 0xc8, // IID19343 - 0xd5, 0x18, 0xff, 0xc9, // IID19344 - 0xd5, 0x18, 0xff, 0xca, // IID19345 - 0xd5, 0x18, 0xff, 0xcb, // IID19346 - 0xd5, 0x18, 0xff, 0xcc, // IID19347 - 0xd5, 0x18, 0xff, 0xcd, // IID19348 - 0xd5, 0x18, 0xff, 0xce, // IID19349 - 0xd5, 0x18, 0xff, 0xcf, // IID19350 - 0xd5, 0x19, 0xff, 0xc8, // IID19351 - 0xd5, 0x19, 0xff, 0xc9, // IID19352 - 0xd5, 0x19, 0xff, 0xca, // IID19353 - 0xd5, 0x19, 0xff, 0xcb, // IID19354 - 0xd5, 0x19, 0xff, 0xcc, // IID19355 - 0xd5, 0x19, 0xff, 0xcd, // IID19356 - 0xd5, 0x19, 0xff, 0xce, // IID19357 - 0xd5, 0x19, 0xff, 0xcf, // IID19358 - 0xd5, 0x08, 0x51, // IID19359 - 0xd5, 0x08, 0x52, // IID19360 - 0xd5, 0x08, 0x53, // IID19361 - 0xd5, 0x09, 0x50, // IID19362 - 0xd5, 0x09, 0x51, // IID19363 - 0xd5, 0x09, 0x52, // IID19364 - 0xd5, 0x09, 0x53, // IID19365 - 0xd5, 0x09, 0x54, // IID19366 - 0xd5, 0x09, 0x55, // IID19367 - 0xd5, 0x09, 0x56, // IID19368 - 0xd5, 0x09, 0x57, // IID19369 - 0xd5, 0x18, 0x50, // IID19370 - 0xd5, 0x18, 0x51, // IID19371 - 0xd5, 0x18, 0x52, // IID19372 - 0xd5, 0x18, 0x53, // IID19373 - 0xd5, 0x18, 0x54, // IID19374 - 0xd5, 0x18, 0x55, // IID19375 - 0xd5, 0x18, 0x56, // IID19376 - 0xd5, 0x18, 0x57, // IID19377 - 0xd5, 0x19, 0x50, // IID19378 - 0xd5, 0x19, 0x51, // IID19379 - 0xd5, 0x19, 0x52, // IID19380 - 0xd5, 0x19, 0x53, // IID19381 - 0xd5, 0x19, 0x54, // IID19382 - 0xd5, 0x19, 0x55, // IID19383 - 0xd5, 0x19, 0x56, // IID19384 - 0xd5, 0x19, 0x57, // IID19385 - 0xd5, 0x08, 0x59, // IID19386 - 0xd5, 0x08, 0x5a, // IID19387 - 0xd5, 0x08, 0x5b, // IID19388 - 0xd5, 0x09, 0x58, // IID19389 - 0xd5, 0x09, 0x59, // IID19390 - 0xd5, 0x09, 0x5a, // IID19391 - 0xd5, 0x09, 0x5b, // IID19392 - 0xd5, 0x09, 0x5c, // IID19393 - 0xd5, 0x09, 0x5d, // IID19394 - 0xd5, 0x09, 0x5e, // IID19395 - 0xd5, 0x09, 0x5f, // IID19396 - 0xd5, 0x18, 0x58, // IID19397 - 0xd5, 0x18, 0x59, // IID19398 - 0xd5, 0x18, 0x5a, // IID19399 - 0xd5, 0x18, 0x5b, // IID19400 - 0xd5, 0x18, 0x5c, // IID19401 - 0xd5, 0x18, 0x5d, // IID19402 - 0xd5, 0x18, 0x5e, // IID19403 - 0xd5, 0x18, 0x5f, // IID19404 - 0xd5, 0x19, 0x58, // IID19405 - 0xd5, 0x19, 0x59, // IID19406 - 0xd5, 0x19, 0x5a, // IID19407 - 0xd5, 0x19, 0x5b, // IID19408 - 0xd5, 0x19, 0x5c, // IID19409 - 0xd5, 0x19, 0x5d, // IID19410 - 0xd5, 0x19, 0x5e, // IID19411 - 0xd5, 0x19, 0x5f, // IID19412 - 0xff, 0x91, 0x91, 0x66, 0x89, 0x73, // IID19413 - 0xff, 0x94, 0x1a, 0x4d, 0x41, 0x5e, 0x3d, // IID19414 - 0x42, 0xff, 0x94, 0x43, 0xb6, 0x23, 0x70, 0xc1, // IID19415 - 0x43, 0xff, 0x94, 0xc8, 0x12, 0xeb, 0x35, 0xc6, // IID19416 - 0x41, 0xff, 0x91, 0x44, 0x8e, 0xdc, 0xdf, // IID19417 - 0x43, 0xff, 0x94, 0x1a, 0x8d, 0xc5, 0xf9, 0x20, // IID19418 - 0x43, 0xff, 0x94, 0x63, 0x13, 0xf9, 0xf9, 0x6f, // IID19419 - 0x43, 0xff, 0x94, 0x6c, 0xeb, 0x3f, 0x3b, 0xa3, // IID19420 - 0x43, 0xff, 0x94, 0x75, 0xa6, 0xff, 0xc8, 0xaf, // IID19421 - 0x43, 0xff, 0x94, 0x3e, 0xf7, 0x0a, 0x8d, 0x71, // IID19422 - 0xd5, 0x21, 0xff, 0x94, 0xc7, 0xfe, 0xbd, 0xf2, 0xac, // IID19423 - 0xd5, 0x30, 0xff, 0x94, 0xc8, 0x2c, 0xd0, 0x99, 0x2c, // IID19424 - 0xd5, 0x10, 0xff, 0x91, 0xa0, 0x37, 0x16, 0x99, // IID19425 - 0xd5, 0x30, 0xff, 0x94, 0xda, 0xa1, 0x22, 0xf6, 0xe5, // IID19426 - 0xd5, 0x30, 0xff, 0x94, 0x63, 0xf4, 0xa2, 0xfd, 0x78, // IID19427 - 0xd5, 0x30, 0xff, 0x94, 0x6c, 0xae, 0x67, 0x15, 0xc0, // IID19428 - 0xd5, 0x10, 0xff, 0x95, 0x35, 0x81, 0x3a, 0x87, // IID19429 - 0xd5, 0x10, 0xff, 0x96, 0xf2, 0x54, 0x7f, 0xe9, // IID19430 - 0xd5, 0x32, 0xff, 0x94, 0x47, 0x5d, 0x9a, 0x3b, 0xf4, // IID19431 - 0xd5, 0x33, 0xff, 0x94, 0x88, 0x42, 0x96, 0xbe, 0xec, // IID19432 - 0xd5, 0x33, 0xff, 0x94, 0x51, 0xcf, 0x66, 0x2f, 0x05, // IID19433 - 0xd5, 0x33, 0xff, 0x94, 0xda, 0xe3, 0x48, 0x95, 0x55, // IID19434 - 0xd5, 0x33, 0xff, 0x94, 0xa3, 0x4d, 0x67, 0x2c, 0x79, // IID19435 - 0xd5, 0x33, 0xff, 0x94, 0xac, 0xd6, 0x62, 0x69, 0x05, // IID19436 - 0xd5, 0x33, 0xff, 0x94, 0xb5, 0x91, 0x99, 0xb3, 0x7e, // IID19437 - 0xd5, 0x33, 0xff, 0x94, 0xfe, 0x45, 0x28, 0xac, 0xdc, // IID19438 - 0xd5, 0x11, 0xff, 0x94, 0x0f, 0x13, 0xa6, 0xb0, 0xe4, // IID19439 - 0x48, 0xf7, 0xa4, 0x91, 0xa3, 0x23, 0xba, 0x5a, // IID19440 - 0x48, 0xf7, 0xa2, 0x1e, 0x47, 0x71, 0x26, // IID19441 - 0x4a, 0xf7, 0xa4, 0x43, 0xec, 0xa5, 0xcb, 0x51, // IID19442 - 0x4b, 0xf7, 0xa4, 0xc8, 0xad, 0xb4, 0x0d, 0x24, // IID19443 - 0x49, 0xf7, 0xa1, 0x8d, 0x7a, 0x35, 0x9f, // IID19444 - 0x4b, 0xf7, 0xa4, 0xda, 0x1d, 0x34, 0x06, 0x28, // IID19445 - 0x4b, 0xf7, 0xa4, 0x23, 0x90, 0x4c, 0xe9, 0xfe, // IID19446 - 0x4b, 0xf7, 0xa4, 0xec, 0xe6, 0xf0, 0x00, 0x55, // IID19447 - 0x4b, 0xf7, 0xa4, 0x75, 0x86, 0xb7, 0x34, 0xd7, // IID19448 - 0x4b, 0xf7, 0xa4, 0x3e, 0xd9, 0xba, 0x2c, 0x99, // IID19449 - 0x49, 0xf7, 0xa7, 0xc4, 0xeb, 0x18, 0x0a, // IID19450 - 0xd5, 0x38, 0xf7, 0xa4, 0x48, 0xa3, 0xb0, 0x98, 0xb9, // IID19451 - 0xd5, 0x38, 0xf7, 0xa4, 0x11, 0x31, 0x19, 0x0d, 0x94, // IID19452 - 0xd5, 0x38, 0xf7, 0xa4, 0x5a, 0x41, 0xc9, 0x40, 0x0f, // IID19453 - 0xd5, 0x18, 0xf7, 0xa3, 0xfe, 0x42, 0x73, 0x15, // IID19454 - 0xd5, 0x38, 0xf7, 0xa4, 0xec, 0x02, 0xd6, 0x14, 0x53, // IID19455 - 0xd5, 0x18, 0xf7, 0xa5, 0x5e, 0x8c, 0x4e, 0x61, // IID19456 - 0xd5, 0x38, 0xf7, 0xa4, 0xfe, 0x62, 0x23, 0xae, 0x8c, // IID19457 - 0xd5, 0x3a, 0xf7, 0xa4, 0x87, 0x47, 0x6a, 0xc4, 0x96, // IID19458 - 0xd5, 0x3b, 0xf7, 0xa4, 0x48, 0x61, 0xbc, 0xb1, 0xb7, // IID19459 - 0xd5, 0x3b, 0xf7, 0xa4, 0x11, 0xb4, 0x7a, 0x3b, 0x81, // IID19460 - 0xd5, 0x3b, 0xf7, 0xa4, 0x1a, 0x34, 0x2f, 0x3d, 0x96, // IID19461 - 0xd5, 0x3b, 0xf7, 0xa4, 0xa3, 0xf3, 0x59, 0x1a, 0x24, // IID19462 - 0xd5, 0x3b, 0xf7, 0xa4, 0x6c, 0xc0, 0x69, 0x98, 0x9d, // IID19463 - 0xd5, 0x3b, 0xf7, 0xa4, 0x75, 0xe8, 0xba, 0xaa, 0x50, // IID19464 - 0xd5, 0x3b, 0xf7, 0xa4, 0x7e, 0xa5, 0xc6, 0x21, 0x4d, // IID19465 - 0xd5, 0x19, 0xf7, 0xa7, 0x63, 0xaf, 0xed, 0xcb, // IID19466 - 0x48, 0xf7, 0x9c, 0x91, 0x0f, 0x31, 0xea, 0x45, // IID19467 - 0x48, 0xf7, 0x9c, 0x5a, 0x77, 0x4b, 0x25, 0x42, // IID19468 - 0x4a, 0xf7, 0x9c, 0xc3, 0x48, 0x86, 0xbc, 0x81, // IID19469 - 0x49, 0xf7, 0x98, 0x39, 0xad, 0x56, 0xa1, // IID19470 - 0x4b, 0xf7, 0x9c, 0xd1, 0x25, 0xe7, 0xb7, 0x44, // IID19471 - 0x4b, 0xf7, 0x9c, 0x9a, 0xe2, 0x97, 0x58, 0x34, // IID19472 - 0x49, 0xf7, 0x9b, 0x4b, 0x8c, 0x7f, 0x2f, // IID19473 - 0x4b, 0xf7, 0x9c, 0xac, 0x04, 0x32, 0x53, 0xb8, // IID19474 - 0x4b, 0xf7, 0x9c, 0xf5, 0x7e, 0x4f, 0x64, 0x15, // IID19475 - 0x49, 0xf7, 0x9e, 0x22, 0x56, 0x74, 0x24, // IID19476 - 0x49, 0xf7, 0x9f, 0x35, 0x5f, 0xb0, 0x2c, // IID19477 - 0xd5, 0x38, 0xf7, 0x9c, 0x48, 0x67, 0xf5, 0x33, 0x67, // IID19478 - 0xd5, 0x38, 0xf7, 0x9c, 0x91, 0x5a, 0xd7, 0xe2, 0x3c, // IID19479 - 0xd5, 0x38, 0xf7, 0x9c, 0xda, 0xbf, 0xc0, 0x95, 0xdb, // IID19480 - 0xd5, 0x38, 0xf7, 0x9c, 0x63, 0xd1, 0xa7, 0x90, 0xe9, // IID19481 - 0xd5, 0x38, 0xf7, 0x9c, 0xec, 0xc5, 0x64, 0xd4, 0xa8, // IID19482 - 0xd5, 0x38, 0xf7, 0x9c, 0x75, 0x58, 0x77, 0x6f, 0xdc, // IID19483 - 0xd5, 0x18, 0xf7, 0x9e, 0xa2, 0x18, 0x48, 0x40, // IID19484 - 0xd5, 0x3a, 0xf7, 0x9c, 0x07, 0xcb, 0x65, 0x98, 0x32, // IID19485 - 0xd5, 0x3b, 0xf7, 0x9c, 0xc8, 0xc1, 0xbc, 0x6c, 0xa0, // IID19486 - 0xd5, 0x3b, 0xf7, 0x9c, 0x51, 0x72, 0x8e, 0x38, 0x27, // IID19487 - 0xd5, 0x3b, 0xf7, 0x9c, 0x9a, 0x43, 0xcc, 0xda, 0x93, // IID19488 - 0xd5, 0x3b, 0xf7, 0x9c, 0xe3, 0x60, 0xab, 0x8c, 0x77, // IID19489 - 0xd5, 0x3b, 0xf7, 0x9c, 0x2c, 0x49, 0xea, 0x3d, 0x80, // IID19490 - 0xd5, 0x3b, 0xf7, 0x9c, 0xf5, 0x5c, 0xaa, 0xce, 0x80, // IID19491 - 0xd5, 0x19, 0xf7, 0x9e, 0x7f, 0x73, 0x4e, 0x60, // IID19492 - 0xd5, 0x19, 0xf7, 0x9f, 0xb7, 0xbe, 0xa2, 0x68, // IID19493 - 0x48, 0xd3, 0xbc, 0x11, 0xd1, 0x37, 0x62, 0x8b, // IID19494 - 0x48, 0xd3, 0xbc, 0x5a, 0xae, 0x60, 0x20, 0xff, // IID19495 - 0x4a, 0xd3, 0xbc, 0x03, 0x52, 0x88, 0xa9, 0x80, // IID19496 - 0x4b, 0xd3, 0xbc, 0x88, 0x93, 0xf6, 0x52, 0xea, // IID19497 - 0x4b, 0xd3, 0xbc, 0x51, 0x0b, 0x80, 0xec, 0x6c, // IID19498 - 0x4b, 0xd3, 0xbc, 0xda, 0x6d, 0x23, 0x41, 0x9f, // IID19499 - 0x49, 0xd3, 0xbb, 0x9d, 0x33, 0x37, 0x2c, // IID19500 - 0x4b, 0xd3, 0xbc, 0xec, 0xc9, 0x12, 0x34, 0x8f, // IID19501 - 0x4b, 0xd3, 0xbc, 0xf5, 0x18, 0xfc, 0x99, 0xa1, // IID19502 - 0x4b, 0xd3, 0xbc, 0xfe, 0xc8, 0xb1, 0x02, 0x6e, // IID19503 - 0xd5, 0x29, 0xd3, 0xbc, 0xc7, 0x7e, 0x88, 0x0d, 0x53, // IID19504 - 0xd5, 0x38, 0xd3, 0xbc, 0x08, 0x1b, 0xea, 0xee, 0xbf, // IID19505 - 0xd5, 0x38, 0xd3, 0xbc, 0xd1, 0xce, 0xf8, 0x17, 0x8f, // IID19506 - 0xd5, 0x38, 0xd3, 0xbc, 0x9a, 0xe3, 0x5c, 0xdf, 0xa5, // IID19507 - 0xd5, 0x38, 0xd3, 0xbc, 0x63, 0x5b, 0x8a, 0xf5, 0xba, // IID19508 - 0xd5, 0x38, 0xd3, 0xbc, 0x2c, 0xaf, 0x27, 0x2d, 0x2f, // IID19509 - 0xd5, 0x38, 0xd3, 0xbc, 0xb5, 0xe5, 0x94, 0x42, 0x0d, // IID19510 - 0xd5, 0x38, 0xd3, 0xbc, 0x3e, 0x72, 0x15, 0x92, 0xf2, // IID19511 - 0xd5, 0x3a, 0xd3, 0xbc, 0x47, 0x7d, 0x25, 0x2d, 0xf0, // IID19512 - 0xd5, 0x3b, 0xd3, 0xbc, 0x08, 0x3b, 0xfd, 0x21, 0xcd, // IID19513 - 0xd5, 0x3b, 0xd3, 0xbc, 0x91, 0x1d, 0x77, 0x7a, 0x70, // IID19514 - 0xd5, 0x19, 0xd3, 0xba, 0x6e, 0xa1, 0x70, 0x28, // IID19515 - 0xd5, 0x3b, 0xd3, 0xbc, 0x63, 0xb4, 0xbe, 0x1f, 0x6e, // IID19516 - 0xd5, 0x3b, 0xd3, 0xbc, 0xec, 0x0e, 0x28, 0x81, 0x01, // IID19517 - 0xd5, 0x3b, 0xd3, 0xbc, 0x75, 0x7e, 0x09, 0xef, 0x36, // IID19518 - 0xd5, 0x3b, 0xd3, 0xbc, 0xfe, 0x2c, 0x6b, 0x73, 0x3b, // IID19519 - 0xd5, 0x19, 0xd3, 0xbc, 0x4f, 0x71, 0xe6, 0xf7, 0xb8, // IID19520 - 0x48, 0xd3, 0xa1, 0x50, 0xcd, 0x08, 0x59, // IID19521 - 0x48, 0xd3, 0xa4, 0x9a, 0xed, 0xb3, 0x99, 0x8b, // IID19522 - 0x48, 0xd3, 0xa3, 0xd2, 0xd5, 0x4b, 0x1f, // IID19523 - 0x49, 0xd3, 0xa0, 0xd2, 0xd2, 0xe2, 0x46, // IID19524 - 0x4b, 0xd3, 0xa4, 0xd1, 0x9c, 0x85, 0x81, 0x36, // IID19525 - 0x49, 0xd3, 0xa2, 0xdb, 0x57, 0xd8, 0x35, // IID19526 - 0x49, 0xd3, 0xa3, 0x88, 0xad, 0x0f, 0xc1, // IID19527 - 0x4b, 0xd3, 0xa4, 0xec, 0x91, 0x6e, 0x0a, 0xa3, // IID19528 - 0x49, 0xd3, 0xa5, 0x6a, 0x28, 0x3f, 0xf2, // IID19529 - 0x4b, 0xd3, 0xa4, 0x3e, 0x29, 0x71, 0xe2, 0x06, // IID19530 - 0xd5, 0x29, 0xd3, 0xa4, 0x87, 0x1e, 0x95, 0xf4, 0xa9, // IID19531 - 0xd5, 0x38, 0xd3, 0xa4, 0xc8, 0x80, 0x22, 0xcc, 0x91, // IID19532 - 0xd5, 0x38, 0xd3, 0xa4, 0x91, 0x95, 0xa7, 0x5d, 0x56, // IID19533 - 0xd5, 0x38, 0xd3, 0xa4, 0x9a, 0x92, 0x04, 0x47, 0x5d, // IID19534 - 0xd5, 0x38, 0xd3, 0xa4, 0xe3, 0x89, 0x29, 0xe5, 0x77, // IID19535 - 0xd5, 0x18, 0xd3, 0xa4, 0x24, 0xc1, 0x8d, 0x4f, 0x2d, // IID19536 - 0xd5, 0x38, 0xd3, 0xa4, 0xb5, 0xfd, 0x47, 0x59, 0xac, // IID19537 - 0xd5, 0x38, 0xd3, 0xa4, 0xbe, 0x68, 0xcd, 0x58, 0xc9, // IID19538 - 0xd5, 0x3a, 0xd3, 0xa4, 0x87, 0x19, 0xf1, 0x50, 0x5c, // IID19539 - 0xd5, 0x3b, 0xd3, 0xa4, 0xc8, 0xa9, 0x0e, 0x31, 0x27, // IID19540 - 0xd5, 0x3b, 0xd3, 0xa4, 0xd1, 0xe2, 0x5e, 0xc0, 0xfb, // IID19541 - 0xd5, 0x3b, 0xd3, 0xa4, 0x5a, 0xef, 0x5f, 0xd9, 0x41, // IID19542 - 0xd5, 0x3b, 0xd3, 0xa4, 0x63, 0xef, 0x42, 0x13, 0x02, // IID19543 - 0xd5, 0x3b, 0xd3, 0xa4, 0x2c, 0xd0, 0x05, 0x53, 0xb9, // IID19544 - 0xd5, 0x3b, 0xd3, 0xa4, 0x75, 0xa0, 0x9f, 0x37, 0x87, // IID19545 - 0xd5, 0x3b, 0xd3, 0xa4, 0xfe, 0x6d, 0xb7, 0xd6, 0xa7, // IID19546 - 0xd5, 0x19, 0xd3, 0xa4, 0x0f, 0x2a, 0x4e, 0x62, 0x9e, // IID19547 - 0x48, 0xd3, 0xac, 0x11, 0x13, 0x2c, 0x54, 0xfc, // IID19548 - 0x48, 0xd3, 0xac, 0x9a, 0x47, 0xe4, 0xe3, 0xcd, // IID19549 - 0x4a, 0xd3, 0xac, 0x03, 0x28, 0x1b, 0x02, 0x34, // IID19550 - 0x4b, 0xd3, 0xac, 0x08, 0x5f, 0x54, 0x50, 0x43, // IID19551 - 0x49, 0xd3, 0xa9, 0xff, 0x1a, 0x13, 0xdc, // IID19552 - 0x4b, 0xd3, 0xac, 0x1a, 0x1e, 0xc1, 0xa3, 0x44, // IID19553 - 0x4b, 0xd3, 0xac, 0xe3, 0x61, 0xbd, 0xfb, 0xd5, // IID19554 - 0x4b, 0xd3, 0xac, 0x2c, 0xd2, 0x13, 0xe8, 0x78, // IID19555 - 0x4b, 0xd3, 0xac, 0x35, 0x07, 0x4d, 0x66, 0xc6, // IID19556 - 0x49, 0xd3, 0xae, 0x43, 0x02, 0xad, 0x57, // IID19557 - 0xd5, 0x29, 0xd3, 0xac, 0x47, 0x6a, 0x27, 0xba, 0xc1, // IID19558 - 0xd5, 0x38, 0xd3, 0xac, 0x88, 0x67, 0x8d, 0x3f, 0xba, // IID19559 - 0xd5, 0x18, 0xd3, 0xa9, 0x85, 0xc1, 0x37, 0x61, // IID19560 - 0xd5, 0x38, 0xd3, 0xac, 0x9a, 0x18, 0x01, 0xbb, 0xa0, // IID19561 - 0xd5, 0x18, 0xd3, 0xab, 0x09, 0xce, 0x1d, 0xc4, // IID19562 - 0xd5, 0x38, 0xd3, 0xac, 0x6c, 0x8a, 0x16, 0x5e, 0x9b, // IID19563 - 0xd5, 0x38, 0xd3, 0xac, 0x35, 0x4b, 0xb2, 0xd0, 0xf6, // IID19564 - 0xd5, 0x38, 0xd3, 0xac, 0xbe, 0x27, 0xec, 0x18, 0xf5, // IID19565 - 0xd5, 0x3a, 0xd3, 0xac, 0xc7, 0x0b, 0x08, 0x80, 0x87, // IID19566 - 0xd5, 0x3b, 0xd3, 0xac, 0x48, 0xea, 0x83, 0xd4, 0xf5, // IID19567 - 0xd5, 0x19, 0xd3, 0xa9, 0xed, 0x34, 0xce, 0xe6, // IID19568 - 0xd5, 0x19, 0xd3, 0xaa, 0x46, 0x4c, 0x43, 0x83, // IID19569 - 0xd5, 0x3b, 0xd3, 0xac, 0x23, 0x5b, 0x2c, 0xf2, 0xfa, // IID19570 - 0xd5, 0x19, 0xd3, 0xac, 0x24, 0x81, 0x30, 0x01, 0xd8, // IID19571 - 0xd5, 0x3b, 0xd3, 0xac, 0xf5, 0x28, 0x7a, 0x8f, 0x01, // IID19572 - 0xd5, 0x3b, 0xd3, 0xac, 0x7e, 0x0b, 0xd4, 0xfe, 0xcb, // IID19573 - 0xd5, 0x19, 0xd3, 0xaf, 0x3d, 0x41, 0x66, 0x9b, // IID19574 - 0x48, 0xff, 0x84, 0x11, 0x90, 0x97, 0xa6, 0x68, // IID19575 - 0x48, 0xff, 0x82, 0x86, 0x8e, 0x00, 0x70, // IID19576 - 0x4a, 0xff, 0x84, 0x03, 0xd2, 0x3c, 0x48, 0x9f, // IID19577 - 0x4b, 0xff, 0x84, 0x08, 0xfa, 0xba, 0xac, 0xe3, // IID19578 - 0x4b, 0xff, 0x84, 0x91, 0xa3, 0xde, 0xf3, 0x06, // IID19579 - 0x4b, 0xff, 0x84, 0x1a, 0x19, 0x9a, 0xd7, 0x2f, // IID19580 - 0x4b, 0xff, 0x84, 0x23, 0x4a, 0x46, 0xe8, 0x67, // IID19581 - 0x4b, 0xff, 0x84, 0xac, 0x5b, 0xdd, 0x72, 0xe3, // IID19582 - 0x4b, 0xff, 0x84, 0xf5, 0x36, 0xff, 0xcc, 0xd6, // IID19583 - 0x4b, 0xff, 0x84, 0x3e, 0xa6, 0xb7, 0x8d, 0x2f, // IID19584 - 0xd5, 0x29, 0xff, 0x84, 0x87, 0xc3, 0xfd, 0x23, 0x9d, // IID19585 - 0xd5, 0x38, 0xff, 0x84, 0xc8, 0x65, 0xb3, 0x2c, 0xe2, // IID19586 - 0xd5, 0x38, 0xff, 0x84, 0xd1, 0x2d, 0xc4, 0xee, 0x61, // IID19587 - 0xd5, 0x18, 0xff, 0x82, 0xcf, 0xb1, 0xee, 0x05, // IID19588 - 0xd5, 0x38, 0xff, 0x84, 0x63, 0x45, 0x42, 0x27, 0xac, // IID19589 - 0xd5, 0x18, 0xff, 0x84, 0x24, 0x3c, 0xbd, 0x7a, 0xc2, // IID19590 - 0xd5, 0x18, 0xff, 0x85, 0x06, 0xba, 0xc3, 0xab, // IID19591 - 0xd5, 0x38, 0xff, 0x84, 0x3e, 0xcd, 0x94, 0xd1, 0xae, // IID19592 - 0xd5, 0x3a, 0xff, 0x84, 0x87, 0x06, 0x70, 0x43, 0xf7, // IID19593 - 0xd5, 0x3b, 0xff, 0x84, 0xc8, 0xcb, 0x86, 0xb4, 0x37, // IID19594 - 0xd5, 0x3b, 0xff, 0x84, 0xd1, 0x3b, 0x74, 0xc8, 0x07, // IID19595 - 0xd5, 0x19, 0xff, 0x82, 0x59, 0x34, 0xb3, 0x1b, // IID19596 - 0xd5, 0x3b, 0xff, 0x84, 0x63, 0x5a, 0xb9, 0x2b, 0xa6, // IID19597 - 0xd5, 0x3b, 0xff, 0x84, 0x6c, 0x7c, 0xa4, 0xf1, 0x96, // IID19598 - 0xd5, 0x3b, 0xff, 0x84, 0x35, 0x7b, 0x17, 0xcf, 0xb4, // IID19599 - 0xd5, 0x3b, 0xff, 0x84, 0xfe, 0xf0, 0x2b, 0x1d, 0xd0, // IID19600 - 0xd5, 0x19, 0xff, 0x87, 0x6f, 0x65, 0x29, 0x9e, // IID19601 - 0x48, 0xff, 0x89, 0x39, 0xe5, 0xd7, 0x85, // IID19602 - 0x48, 0xff, 0x8c, 0x9a, 0x81, 0x1f, 0x99, 0xa7, // IID19603 - 0x48, 0xff, 0x8b, 0x37, 0x59, 0x89, 0x4a, // IID19604 - 0x49, 0xff, 0x88, 0xdf, 0xa5, 0x32, 0xfd, // IID19605 - 0x4b, 0xff, 0x8c, 0x11, 0x01, 0xc4, 0xda, 0xf1, // IID19606 - 0x49, 0xff, 0x8a, 0x46, 0x5b, 0xbc, 0xcb, // IID19607 - 0x4b, 0xff, 0x8c, 0x63, 0x01, 0x48, 0x8b, 0xd5, // IID19608 - 0x4b, 0xff, 0x8c, 0x6c, 0xa6, 0x77, 0x92, 0x8d, // IID19609 - 0x4b, 0xff, 0x8c, 0xb5, 0x7f, 0x0f, 0xb0, 0x34, // IID19610 - 0x4b, 0xff, 0x8c, 0x3e, 0x97, 0x2b, 0x32, 0x18, // IID19611 - 0xd5, 0x29, 0xff, 0x8c, 0x87, 0xb1, 0x05, 0x47, 0xfe, // IID19612 - 0xd5, 0x38, 0xff, 0x8c, 0x88, 0xe9, 0x52, 0x65, 0xc4, // IID19613 - 0xd5, 0x38, 0xff, 0x8c, 0xd1, 0x15, 0x33, 0xd7, 0x90, // IID19614 - 0xd5, 0x38, 0xff, 0x8c, 0x5a, 0x71, 0x47, 0x18, 0x18, // IID19615 - 0xd5, 0x18, 0xff, 0x8b, 0x2d, 0x4d, 0x31, 0xde, // IID19616 - 0xd5, 0x18, 0xff, 0x8c, 0x24, 0xc8, 0x4c, 0x4a, 0xbc, // IID19617 - 0xd5, 0x18, 0xff, 0x8d, 0x96, 0x18, 0xf9, 0x1b, // IID19618 - 0xd5, 0x38, 0xff, 0x8c, 0x3e, 0xf2, 0xe9, 0xb0, 0x20, // IID19619 - 0xd5, 0x3a, 0xff, 0x8c, 0x07, 0xc7, 0xea, 0x3f, 0xb1, // IID19620 - 0xd5, 0x3b, 0xff, 0x8c, 0x88, 0xfc, 0xb3, 0xf9, 0xa7, // IID19621 - 0xd5, 0x3b, 0xff, 0x8c, 0xd1, 0x60, 0xf7, 0x3b, 0xe9, // IID19622 - 0xd5, 0x3b, 0xff, 0x8c, 0x1a, 0x3f, 0x15, 0xdb, 0x82, // IID19623 - 0xd5, 0x3b, 0xff, 0x8c, 0xa3, 0x29, 0x54, 0xd6, 0x6e, // IID19624 - 0xd5, 0x3b, 0xff, 0x8c, 0x6c, 0x44, 0x9d, 0x95, 0x81, // IID19625 - 0xd5, 0x3b, 0xff, 0x8c, 0x75, 0xf0, 0x14, 0x90, 0x1d, // IID19626 - 0xd5, 0x3b, 0xff, 0x8c, 0x7e, 0xee, 0x41, 0x2f, 0xaa, // IID19627 - 0xd5, 0x19, 0xff, 0x8c, 0xcf, 0x74, 0xe7, 0x86, 0x73, // IID19628 - 0x48, 0x6b, 0x8c, 0x9a, 0xf0, 0x06, 0xe0, 0x73, 0x01, // IID19629 - 0x48, 0x6b, 0x8c, 0x5a, 0x48, 0x79, 0x15, 0xe8, 0x10, // IID19630 - 0x48, 0x69, 0x8c, 0x5a, 0x42, 0x05, 0x6c, 0x36, 0x00, 0x01, 0x00, 0x00, // IID19631 - 0x48, 0x69, 0x8c, 0x1a, 0x80, 0x66, 0x6b, 0x1e, 0x00, 0x10, 0x00, 0x00, // IID19632 - 0x48, 0x69, 0x8c, 0x9a, 0x36, 0x25, 0xd3, 0x94, 0x00, 0x00, 0x01, 0x00, // IID19633 - 0x48, 0x69, 0x8a, 0x61, 0xfb, 0x42, 0xdd, 0x00, 0x00, 0x10, 0x00, // IID19634 - 0x48, 0x69, 0x8c, 0x9a, 0xeb, 0x53, 0xb5, 0xbe, 0x00, 0x00, 0x00, 0x01, // IID19635 - 0x48, 0x69, 0x8c, 0x9a, 0xcb, 0x20, 0xc4, 0x0b, 0x00, 0x00, 0x00, 0x10, // IID19636 - 0x4a, 0x6b, 0x94, 0x03, 0xef, 0x9a, 0x0d, 0x10, 0x01, // IID19637 - 0x48, 0x6b, 0x93, 0x2c, 0xca, 0x11, 0x8b, 0x10, // IID19638 - 0x4a, 0x69, 0x94, 0x03, 0xe6, 0x03, 0x07, 0xc4, 0x00, 0x01, 0x00, 0x00, // IID19639 - 0x4a, 0x69, 0x94, 0x83, 0x0a, 0x84, 0x47, 0x79, 0x00, 0x10, 0x00, 0x00, // IID19640 - 0x4a, 0x69, 0x94, 0xc3, 0x77, 0x9b, 0x27, 0xd3, 0x00, 0x00, 0x01, 0x00, // IID19641 - 0x4a, 0x69, 0x94, 0x03, 0xef, 0xff, 0xe7, 0x2c, 0x00, 0x00, 0x10, 0x00, // IID19642 - 0x4a, 0x69, 0x94, 0x03, 0xe5, 0xe6, 0x26, 0x9b, 0x00, 0x00, 0x00, 0x01, // IID19643 - 0x4a, 0x69, 0x94, 0xc3, 0x8a, 0x73, 0x82, 0x2e, 0x00, 0x00, 0x00, 0x10, // IID19644 - 0x4b, 0x6b, 0x9c, 0xc8, 0x9f, 0xb0, 0x81, 0x29, 0x01, // IID19645 - 0x4b, 0x6b, 0x9c, 0xc8, 0x2f, 0x1e, 0x9b, 0x36, 0x10, // IID19646 - 0x4b, 0x69, 0x9c, 0x08, 0x3f, 0x1b, 0xb5, 0x4e, 0x00, 0x01, 0x00, 0x00, // IID19647 - 0x49, 0x69, 0x98, 0xa9, 0xb2, 0x5d, 0x1e, 0x00, 0x10, 0x00, 0x00, // IID19648 - 0x4b, 0x69, 0x9c, 0xc8, 0x2c, 0xb2, 0x7e, 0xf7, 0x00, 0x00, 0x01, 0x00, // IID19649 - 0x4b, 0x69, 0x9c, 0x88, 0xd7, 0xce, 0x4f, 0xde, 0x00, 0x00, 0x10, 0x00, // IID19650 - 0x4b, 0x69, 0x9c, 0xc8, 0xda, 0x3d, 0x4c, 0x68, 0x00, 0x00, 0x00, 0x01, // IID19651 - 0x4b, 0x69, 0x9c, 0x48, 0xa3, 0xd8, 0x40, 0xb9, 0x00, 0x00, 0x00, 0x10, // IID19652 - 0x4f, 0x6b, 0x84, 0x51, 0xbf, 0x3a, 0x69, 0x27, 0x01, // IID19653 - 0x4f, 0x6b, 0x84, 0x91, 0x3d, 0xa3, 0x6a, 0xdc, 0x10, // IID19654 - 0x4d, 0x69, 0x81, 0xf2, 0xd1, 0xba, 0xb7, 0x00, 0x01, 0x00, 0x00, // IID19655 - 0x4f, 0x69, 0x84, 0xd1, 0x2a, 0xb8, 0x67, 0x47, 0x00, 0x10, 0x00, 0x00, // IID19656 - 0x4f, 0x69, 0x84, 0x51, 0x7d, 0xce, 0xb6, 0x83, 0x00, 0x00, 0x01, 0x00, // IID19657 - 0x4f, 0x69, 0x84, 0x91, 0x46, 0xa6, 0x59, 0x38, 0x00, 0x00, 0x10, 0x00, // IID19658 - 0x4f, 0x69, 0x84, 0x51, 0xb4, 0x6d, 0x27, 0x3a, 0x00, 0x00, 0x00, 0x01, // IID19659 - 0x4f, 0x69, 0x84, 0x11, 0xb8, 0x53, 0xbc, 0x47, 0x00, 0x00, 0x00, 0x10, // IID19660 - 0x4d, 0x6b, 0x8a, 0x96, 0x97, 0x81, 0x0b, 0x01, // IID19661 - 0x4f, 0x6b, 0x8c, 0x5a, 0x3d, 0xb5, 0x98, 0xbb, 0x10, // IID19662 - 0x4f, 0x69, 0x8c, 0x9a, 0x8b, 0xb7, 0xb7, 0x87, 0x00, 0x01, 0x00, 0x00, // IID19663 - 0x4f, 0x69, 0x8c, 0xda, 0xb9, 0xce, 0xc8, 0xda, 0x00, 0x10, 0x00, 0x00, // IID19664 - 0x4f, 0x69, 0x8c, 0x9a, 0x19, 0x61, 0x2f, 0x5f, 0x00, 0x00, 0x01, 0x00, // IID19665 - 0x4f, 0x69, 0x8c, 0x5a, 0xa0, 0xc2, 0xa2, 0x72, 0x00, 0x00, 0x10, 0x00, // IID19666 - 0x4f, 0x69, 0x8c, 0x5a, 0x2b, 0x74, 0x92, 0xe2, 0x00, 0x00, 0x00, 0x01, // IID19667 - 0x4f, 0x69, 0x8c, 0xda, 0x66, 0xe2, 0x79, 0xac, 0x00, 0x00, 0x00, 0x10, // IID19668 - 0x4f, 0x6b, 0x94, 0x63, 0x99, 0x3b, 0xf7, 0x67, 0x01, // IID19669 - 0x4f, 0x6b, 0x94, 0x23, 0x45, 0x01, 0xb9, 0x10, 0x10, // IID19670 - 0x4f, 0x69, 0x94, 0xa3, 0xfc, 0xb8, 0xc9, 0xf2, 0x00, 0x01, 0x00, 0x00, // IID19671 - 0x4f, 0x69, 0x94, 0x23, 0xf9, 0x82, 0xdd, 0x18, 0x00, 0x10, 0x00, 0x00, // IID19672 - 0x4f, 0x69, 0x94, 0x63, 0xf0, 0xcd, 0xf1, 0x21, 0x00, 0x00, 0x01, 0x00, // IID19673 - 0x4f, 0x69, 0x94, 0x23, 0x4e, 0xdb, 0x08, 0x2e, 0x00, 0x00, 0x10, 0x00, // IID19674 - 0x4f, 0x69, 0x94, 0xe3, 0x33, 0xfe, 0x56, 0x59, 0x00, 0x00, 0x00, 0x01, // IID19675 - 0x4d, 0x69, 0x93, 0xb2, 0x57, 0x23, 0xb6, 0x00, 0x00, 0x00, 0x10, // IID19676 - 0x4f, 0x6b, 0x9c, 0xac, 0x08, 0x36, 0x93, 0x54, 0x01, // IID19677 - 0x4f, 0x6b, 0x9c, 0xec, 0x8a, 0x27, 0xbb, 0x48, 0x10, // IID19678 - 0x4d, 0x69, 0x9c, 0x24, 0xd2, 0x96, 0xba, 0xfd, 0x00, 0x01, 0x00, 0x00, // IID19679 - 0x4d, 0x69, 0x9c, 0x24, 0x76, 0x69, 0xf9, 0xbf, 0x00, 0x10, 0x00, 0x00, // IID19680 - 0x4f, 0x69, 0x9c, 0x6c, 0x14, 0xd2, 0xfa, 0x6c, 0x00, 0x00, 0x01, 0x00, // IID19681 - 0x4f, 0x69, 0x9c, 0xec, 0xa1, 0xb7, 0x12, 0x45, 0x00, 0x00, 0x10, 0x00, // IID19682 - 0x4f, 0x69, 0x9c, 0x2c, 0xd7, 0x2d, 0x95, 0xb0, 0x00, 0x00, 0x00, 0x01, // IID19683 - 0x4f, 0x69, 0x9c, 0xac, 0xa9, 0xe2, 0x94, 0x8f, 0x00, 0x00, 0x00, 0x10, // IID19684 - 0x4f, 0x6b, 0xa4, 0x75, 0xb3, 0xf5, 0x8c, 0xda, 0x01, // IID19685 - 0x4f, 0x6b, 0xa4, 0xf5, 0x9e, 0xfd, 0x1f, 0x2b, 0x10, // IID19686 - 0x4f, 0x69, 0xa4, 0xb5, 0x04, 0xe0, 0x9a, 0x11, 0x00, 0x01, 0x00, 0x00, // IID19687 - 0x4d, 0x69, 0xa5, 0xcf, 0xc7, 0xbf, 0xf2, 0x00, 0x10, 0x00, 0x00, // IID19688 - 0x4f, 0x69, 0xa4, 0xf5, 0x8a, 0x18, 0x9b, 0x36, 0x00, 0x00, 0x01, 0x00, // IID19689 - 0x4f, 0x69, 0xa4, 0xf5, 0x6f, 0x63, 0xca, 0x30, 0x00, 0x00, 0x10, 0x00, // IID19690 - 0x4f, 0x69, 0xa4, 0x75, 0xd5, 0xa5, 0xf7, 0x04, 0x00, 0x00, 0x00, 0x01, // IID19691 - 0x4f, 0x69, 0xa4, 0xf5, 0x70, 0x75, 0xad, 0xe3, 0x00, 0x00, 0x00, 0x10, // IID19692 - 0x4f, 0x6b, 0xac, 0xfe, 0x50, 0x8d, 0x7f, 0xf0, 0x01, // IID19693 - 0x4f, 0x6b, 0xac, 0x3e, 0xa4, 0x2a, 0xa2, 0x9f, 0x10, // IID19694 - 0x4f, 0x69, 0xac, 0xbe, 0xd5, 0x6f, 0x10, 0x62, 0x00, 0x01, 0x00, 0x00, // IID19695 - 0x4f, 0x69, 0xac, 0xfe, 0xd0, 0x42, 0x19, 0x44, 0x00, 0x10, 0x00, 0x00, // IID19696 - 0x4f, 0x69, 0xac, 0xfe, 0xa5, 0xa2, 0x81, 0xac, 0x00, 0x00, 0x01, 0x00, // IID19697 - 0x4f, 0x69, 0xac, 0x3e, 0x7f, 0xa0, 0xfd, 0xc5, 0x00, 0x00, 0x10, 0x00, // IID19698 - 0x4f, 0x69, 0xac, 0x3e, 0xbb, 0xf3, 0x57, 0xd0, 0x00, 0x00, 0x00, 0x01, // IID19699 - 0x4f, 0x69, 0xac, 0x7e, 0x3e, 0x1e, 0x31, 0x4f, 0x00, 0x00, 0x00, 0x10, // IID19700 - 0x4d, 0x6b, 0xb7, 0xb6, 0xdb, 0x30, 0x3a, 0x01, // IID19701 - 0xd5, 0x2d, 0x6b, 0xb4, 0x07, 0xbc, 0x22, 0x1f, 0x46, 0x10, // IID19702 - 0xd5, 0x2d, 0x69, 0xb4, 0x47, 0xdd, 0x62, 0x68, 0x3b, 0x00, 0x01, 0x00, 0x00, // IID19703 - 0xd5, 0x2d, 0x69, 0xb4, 0x87, 0xff, 0x1a, 0x41, 0x7b, 0x00, 0x10, 0x00, 0x00, // IID19704 - 0xd5, 0x2d, 0x69, 0xb4, 0x07, 0xe7, 0xea, 0xc5, 0x4b, 0x00, 0x00, 0x01, 0x00, // IID19705 - 0xd5, 0x2d, 0x69, 0xb4, 0x87, 0x91, 0x0e, 0x7b, 0x05, 0x00, 0x00, 0x10, 0x00, // IID19706 - 0xd5, 0x2d, 0x69, 0xb4, 0x07, 0x95, 0xd7, 0xac, 0x7c, 0x00, 0x00, 0x00, 0x01, // IID19707 - 0x4d, 0x69, 0xb7, 0x6c, 0x82, 0x14, 0xe5, 0x00, 0x00, 0x00, 0x10, // IID19708 - 0xd5, 0x3c, 0x6b, 0xbc, 0xc8, 0xc6, 0xd9, 0x77, 0x95, 0x01, // IID19709 - 0xd5, 0x3c, 0x6b, 0xbc, 0x88, 0x96, 0xd8, 0x90, 0x16, 0x10, // IID19710 - 0xd5, 0x3c, 0x69, 0xbc, 0xc8, 0x06, 0x85, 0x49, 0xb0, 0x00, 0x01, 0x00, 0x00, // IID19711 - 0xd5, 0x3c, 0x69, 0xbc, 0xc8, 0x74, 0xd2, 0xff, 0x30, 0x00, 0x10, 0x00, 0x00, // IID19712 - 0xd5, 0x3c, 0x69, 0xbc, 0x48, 0x6f, 0x83, 0x75, 0x35, 0x00, 0x00, 0x01, 0x00, // IID19713 - 0xd5, 0x3c, 0x69, 0xbc, 0x08, 0xcd, 0x9f, 0xf0, 0x09, 0x00, 0x00, 0x10, 0x00, // IID19714 - 0xd5, 0x3c, 0x69, 0xbc, 0x48, 0x5d, 0xfe, 0x9d, 0xe2, 0x00, 0x00, 0x00, 0x01, // IID19715 - 0xd5, 0x3c, 0x69, 0xbc, 0xc8, 0xf2, 0x66, 0xb2, 0x6f, 0x00, 0x00, 0x00, 0x10, // IID19716 - 0xd5, 0x78, 0x6b, 0x84, 0x11, 0x3e, 0x55, 0x0b, 0xe4, 0x01, // IID19717 - 0xd5, 0x78, 0x6b, 0x84, 0x91, 0xa3, 0xc3, 0xb3, 0x8f, 0x10, // IID19718 - 0xd5, 0x78, 0x69, 0x84, 0x11, 0x77, 0x4a, 0xb0, 0xcc, 0x00, 0x01, 0x00, 0x00, // IID19719 - 0xd5, 0x78, 0x69, 0x84, 0xd1, 0xbd, 0xf0, 0xb1, 0x5f, 0x00, 0x10, 0x00, 0x00, // IID19720 - 0xd5, 0x78, 0x69, 0x84, 0x91, 0x7b, 0xd3, 0x1a, 0xc8, 0x00, 0x00, 0x01, 0x00, // IID19721 - 0xd5, 0x78, 0x69, 0x84, 0x51, 0xb9, 0x6c, 0xa6, 0x70, 0x00, 0x00, 0x10, 0x00, // IID19722 - 0xd5, 0x78, 0x69, 0x84, 0x11, 0xc6, 0x09, 0xa4, 0x95, 0x00, 0x00, 0x00, 0x01, // IID19723 - 0xd5, 0x78, 0x69, 0x84, 0x11, 0xcd, 0x12, 0x08, 0xca, 0x00, 0x00, 0x00, 0x10, // IID19724 - 0xd5, 0x78, 0x6b, 0x8c, 0x1a, 0x88, 0xea, 0x12, 0xa9, 0x01, // IID19725 - 0xd5, 0x78, 0x6b, 0x8c, 0xda, 0x4c, 0xc0, 0x63, 0x21, 0x10, // IID19726 - 0xd5, 0x78, 0x69, 0x8c, 0x5a, 0xbb, 0x3e, 0x5b, 0xd2, 0x00, 0x01, 0x00, 0x00, // IID19727 - 0xd5, 0x78, 0x69, 0x8c, 0x5a, 0xda, 0x31, 0x95, 0xd1, 0x00, 0x10, 0x00, 0x00, // IID19728 - 0xd5, 0x78, 0x69, 0x8c, 0xda, 0x8c, 0xcb, 0x11, 0xc5, 0x00, 0x00, 0x01, 0x00, // IID19729 - 0xd5, 0x78, 0x69, 0x8c, 0xda, 0x03, 0x35, 0x23, 0x72, 0x00, 0x00, 0x10, 0x00, // IID19730 - 0xd5, 0x78, 0x69, 0x8c, 0x9a, 0x49, 0x6b, 0x25, 0xb5, 0x00, 0x00, 0x00, 0x01, // IID19731 - 0xd5, 0x78, 0x69, 0x8c, 0x5a, 0xa1, 0x8d, 0xc8, 0xcd, 0x00, 0x00, 0x00, 0x10, // IID19732 - 0xd5, 0x78, 0x6b, 0x94, 0xa3, 0xcf, 0x6f, 0xf3, 0x41, 0x01, // IID19733 - 0xd5, 0x78, 0x6b, 0x94, 0x63, 0xf2, 0xdd, 0x8a, 0x3d, 0x10, // IID19734 - 0xd5, 0x78, 0x69, 0x94, 0x63, 0xa3, 0x11, 0xb7, 0x5b, 0x00, 0x01, 0x00, 0x00, // IID19735 - 0xd5, 0x78, 0x69, 0x94, 0xa3, 0xfb, 0xa0, 0x03, 0x4b, 0x00, 0x10, 0x00, 0x00, // IID19736 - 0xd5, 0x78, 0x69, 0x94, 0xa3, 0x34, 0xa4, 0x27, 0xa6, 0x00, 0x00, 0x01, 0x00, // IID19737 - 0xd5, 0x58, 0x69, 0x93, 0x36, 0x7d, 0x77, 0x0e, 0x00, 0x00, 0x10, 0x00, // IID19738 - 0xd5, 0x78, 0x69, 0x94, 0xa3, 0xb0, 0x70, 0x39, 0x10, 0x00, 0x00, 0x00, 0x01, // IID19739 - 0xd5, 0x58, 0x69, 0x93, 0x83, 0x8a, 0x62, 0x6a, 0x00, 0x00, 0x00, 0x10, // IID19740 - 0xd5, 0x78, 0x6b, 0x9c, 0x6c, 0x2f, 0x83, 0x5b, 0x96, 0x01, // IID19741 - 0xd5, 0x78, 0x6b, 0x9c, 0x2c, 0x15, 0x08, 0x06, 0x32, 0x10, // IID19742 - 0xd5, 0x58, 0x69, 0x9c, 0x24, 0x81, 0x22, 0xff, 0x3d, 0x00, 0x01, 0x00, 0x00, // IID19743 - 0xd5, 0x78, 0x69, 0x9c, 0xec, 0x8d, 0x0f, 0x86, 0xc1, 0x00, 0x10, 0x00, 0x00, // IID19744 - 0xd5, 0x78, 0x69, 0x9c, 0x6c, 0x42, 0xfd, 0x8c, 0x13, 0x00, 0x00, 0x01, 0x00, // IID19745 - 0xd5, 0x78, 0x69, 0x9c, 0xac, 0xde, 0x1b, 0x0b, 0x63, 0x00, 0x00, 0x10, 0x00, // IID19746 - 0xd5, 0x78, 0x69, 0x9c, 0x6c, 0xa5, 0xa3, 0xe9, 0x07, 0x00, 0x00, 0x00, 0x01, // IID19747 - 0xd5, 0x78, 0x69, 0x9c, 0xac, 0xcc, 0xea, 0x6a, 0x3b, 0x00, 0x00, 0x00, 0x10, // IID19748 - 0xd5, 0x78, 0x6b, 0xa4, 0xb5, 0x5c, 0xa6, 0xd4, 0x4f, 0x01, // IID19749 - 0xd5, 0x78, 0x6b, 0xa4, 0x35, 0x93, 0x74, 0xc1, 0x05, 0x10, // IID19750 - 0xd5, 0x78, 0x69, 0xa4, 0x75, 0x63, 0x22, 0x6c, 0x29, 0x00, 0x01, 0x00, 0x00, // IID19751 - 0xd5, 0x58, 0x69, 0xa5, 0x57, 0x69, 0x00, 0x97, 0x00, 0x10, 0x00, 0x00, // IID19752 - 0xd5, 0x58, 0x69, 0xa5, 0xa0, 0x15, 0x8d, 0x6b, 0x00, 0x00, 0x01, 0x00, // IID19753 - 0xd5, 0x78, 0x69, 0xa4, 0xf5, 0x99, 0xec, 0x05, 0x76, 0x00, 0x00, 0x10, 0x00, // IID19754 - 0xd5, 0x78, 0x69, 0xa4, 0x35, 0x60, 0x20, 0x24, 0xfc, 0x00, 0x00, 0x00, 0x01, // IID19755 - 0xd5, 0x78, 0x69, 0xa4, 0x75, 0x5c, 0x97, 0x19, 0x6e, 0x00, 0x00, 0x00, 0x10, // IID19756 - 0xd5, 0x78, 0x6b, 0xac, 0x7e, 0x94, 0xbb, 0x38, 0x5f, 0x01, // IID19757 - 0xd5, 0x78, 0x6b, 0xac, 0x7e, 0x2f, 0x81, 0x6d, 0x32, 0x10, // IID19758 - 0xd5, 0x58, 0x69, 0xae, 0xd5, 0xb1, 0xbd, 0x72, 0x00, 0x01, 0x00, 0x00, // IID19759 - 0xd5, 0x78, 0x69, 0xac, 0x7e, 0xcc, 0x5f, 0x47, 0x74, 0x00, 0x10, 0x00, 0x00, // IID19760 - 0xd5, 0x58, 0x69, 0xae, 0x2e, 0x9a, 0xe4, 0xf2, 0x00, 0x00, 0x01, 0x00, // IID19761 - 0xd5, 0x78, 0x69, 0xac, 0x7e, 0x0e, 0x32, 0x5e, 0xc5, 0x00, 0x00, 0x10, 0x00, // IID19762 - 0xd5, 0x78, 0x69, 0xac, 0x3e, 0x43, 0x1f, 0x8f, 0xf1, 0x00, 0x00, 0x00, 0x01, // IID19763 - 0xd5, 0x78, 0x69, 0xac, 0xfe, 0xeb, 0xd8, 0x7b, 0x0c, 0x00, 0x00, 0x00, 0x10, // IID19764 - 0xd5, 0x7a, 0x6b, 0xb4, 0x47, 0xc7, 0x86, 0x62, 0x28, 0x01, // IID19765 - 0xd5, 0x7a, 0x6b, 0xb4, 0x07, 0x8a, 0xfc, 0xfa, 0x9b, 0x10, // IID19766 - 0xd5, 0x7a, 0x69, 0xb4, 0x07, 0xde, 0xcc, 0x3d, 0xf3, 0x00, 0x01, 0x00, 0x00, // IID19767 - 0xd5, 0x7a, 0x69, 0xb4, 0xc7, 0xf0, 0xa7, 0xd1, 0x23, 0x00, 0x10, 0x00, 0x00, // IID19768 - 0xd5, 0x7a, 0x69, 0xb4, 0x07, 0x46, 0x83, 0x94, 0x2b, 0x00, 0x00, 0x01, 0x00, // IID19769 - 0xd5, 0x7a, 0x69, 0xb4, 0x87, 0xc2, 0x1b, 0xb1, 0x9f, 0x00, 0x00, 0x10, 0x00, // IID19770 - 0xd5, 0x58, 0x69, 0xb7, 0x16, 0xf5, 0xd6, 0xc4, 0x00, 0x00, 0x00, 0x01, // IID19771 - 0xd5, 0x7a, 0x69, 0xb4, 0x47, 0x65, 0x83, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x10, // IID19772 - 0xd5, 0x59, 0x6b, 0xb8, 0xcc, 0x88, 0xb5, 0x93, 0x01, // IID19773 - 0xd5, 0x7b, 0x6b, 0xbc, 0x48, 0xbb, 0x0d, 0xbc, 0x18, 0x10, // IID19774 - 0xd5, 0x7b, 0x69, 0xbc, 0xc8, 0xd5, 0x67, 0xa7, 0x5f, 0x00, 0x01, 0x00, 0x00, // IID19775 - 0xd5, 0x7b, 0x69, 0xbc, 0xc8, 0x5d, 0xa1, 0x8e, 0x4f, 0x00, 0x10, 0x00, 0x00, // IID19776 - 0xd5, 0x7b, 0x69, 0xbc, 0x88, 0x51, 0x93, 0x1c, 0xb3, 0x00, 0x00, 0x01, 0x00, // IID19777 - 0xd5, 0x7b, 0x69, 0xbc, 0x88, 0xe9, 0x30, 0xd9, 0x03, 0x00, 0x00, 0x10, 0x00, // IID19778 - 0xd5, 0x7b, 0x69, 0xbc, 0x08, 0xb4, 0x41, 0x0b, 0x29, 0x00, 0x00, 0x00, 0x01, // IID19779 - 0xd5, 0x7b, 0x69, 0xbc, 0x88, 0x8d, 0x4b, 0x6b, 0x24, 0x00, 0x00, 0x00, 0x10, // IID19780 - 0xd5, 0x7f, 0x6b, 0x84, 0x11, 0x50, 0x7e, 0xa5, 0x1d, 0x01, // IID19781 - 0xd5, 0x7f, 0x6b, 0x84, 0x51, 0x4e, 0x0d, 0x15, 0xc6, 0x10, // IID19782 - 0xd5, 0x7f, 0x69, 0x84, 0xd1, 0x19, 0xe5, 0xd0, 0xdf, 0x00, 0x01, 0x00, 0x00, // IID19783 - 0xd5, 0x7f, 0x69, 0x84, 0x11, 0x3e, 0xfe, 0x39, 0x38, 0x00, 0x10, 0x00, 0x00, // IID19784 - 0xd5, 0x7f, 0x69, 0x84, 0xd1, 0x79, 0x37, 0x2e, 0xdf, 0x00, 0x00, 0x01, 0x00, // IID19785 - 0xd5, 0x5d, 0x69, 0x81, 0x6d, 0xc2, 0xab, 0x70, 0x00, 0x00, 0x10, 0x00, // IID19786 - 0xd5, 0x5d, 0x69, 0x81, 0xf9, 0x20, 0xdb, 0xd3, 0x00, 0x00, 0x00, 0x01, // IID19787 - 0xd5, 0x7f, 0x69, 0x84, 0x11, 0x1a, 0xb6, 0x10, 0x9f, 0x00, 0x00, 0x00, 0x10, // IID19788 - 0xd5, 0x7f, 0x6b, 0x8c, 0xda, 0x7c, 0xd5, 0x92, 0x21, 0x01, // IID19789 - 0xd5, 0x7f, 0x6b, 0x8c, 0xda, 0x66, 0xee, 0x0c, 0x57, 0x10, // IID19790 - 0xd5, 0x7f, 0x69, 0x8c, 0x5a, 0x5c, 0xdf, 0x5d, 0x5e, 0x00, 0x01, 0x00, 0x00, // IID19791 - 0xd5, 0x7f, 0x69, 0x8c, 0x9a, 0xf8, 0x2d, 0xb7, 0xb7, 0x00, 0x10, 0x00, 0x00, // IID19792 - 0xd5, 0x5d, 0x69, 0x8a, 0xa6, 0xac, 0x9d, 0xc0, 0x00, 0x00, 0x01, 0x00, // IID19793 - 0xd5, 0x7f, 0x69, 0x8c, 0x9a, 0x16, 0x5c, 0x27, 0x51, 0x00, 0x00, 0x10, 0x00, // IID19794 - 0xd5, 0x7f, 0x69, 0x8c, 0xda, 0xc3, 0x07, 0xe6, 0x4e, 0x00, 0x00, 0x00, 0x01, // IID19795 - 0xd5, 0x7f, 0x69, 0x8c, 0x1a, 0xc9, 0x9c, 0xa5, 0x64, 0x00, 0x00, 0x00, 0x10, // IID19796 - 0xd5, 0x5d, 0x6b, 0x93, 0x41, 0xfa, 0xf0, 0x66, 0x01, // IID19797 - 0xd5, 0x7f, 0x6b, 0x94, 0xe3, 0xe8, 0xb9, 0xb6, 0xa0, 0x10, // IID19798 - 0xd5, 0x5d, 0x69, 0x93, 0x99, 0xa4, 0x55, 0x85, 0x00, 0x01, 0x00, 0x00, // IID19799 - 0xd5, 0x7f, 0x69, 0x94, 0x63, 0xc3, 0xa6, 0xb4, 0xa9, 0x00, 0x10, 0x00, 0x00, // IID19800 - 0xd5, 0x7f, 0x69, 0x94, 0x63, 0x77, 0xa8, 0x7a, 0x6b, 0x00, 0x00, 0x01, 0x00, // IID19801 - 0xd5, 0x7f, 0x69, 0x94, 0xe3, 0x71, 0xa9, 0x6a, 0x11, 0x00, 0x00, 0x10, 0x00, // IID19802 - 0xd5, 0x7f, 0x69, 0x94, 0xa3, 0x39, 0xe2, 0xc7, 0xab, 0x00, 0x00, 0x00, 0x01, // IID19803 - 0xd5, 0x7f, 0x69, 0x94, 0xa3, 0x06, 0xdc, 0x74, 0xfd, 0x00, 0x00, 0x00, 0x10, // IID19804 - 0xd5, 0x5d, 0x6b, 0x9c, 0x24, 0xef, 0x49, 0x80, 0xb1, 0x01, // IID19805 - 0xd5, 0x7f, 0x6b, 0x9c, 0xac, 0x44, 0xae, 0x6c, 0x38, 0x10, // IID19806 - 0xd5, 0x5d, 0x69, 0x9c, 0x24, 0x57, 0xf9, 0xab, 0xda, 0x00, 0x01, 0x00, 0x00, // IID19807 - 0xd5, 0x7f, 0x69, 0x9c, 0x6c, 0xc2, 0xfe, 0x58, 0x0b, 0x00, 0x10, 0x00, 0x00, // IID19808 - 0xd5, 0x7f, 0x69, 0x9c, 0x2c, 0x86, 0xdf, 0xa6, 0x0d, 0x00, 0x00, 0x01, 0x00, // IID19809 - 0xd5, 0x7f, 0x69, 0x9c, 0x6c, 0x94, 0xec, 0x8b, 0x44, 0x00, 0x00, 0x10, 0x00, // IID19810 - 0xd5, 0x7f, 0x69, 0x9c, 0xec, 0xc5, 0x64, 0xbf, 0x8b, 0x00, 0x00, 0x00, 0x01, // IID19811 - 0xd5, 0x7f, 0x69, 0x9c, 0x2c, 0x6d, 0x35, 0xef, 0x68, 0x00, 0x00, 0x00, 0x10, // IID19812 - 0xd5, 0x7f, 0x6b, 0xa4, 0xb5, 0x58, 0x90, 0xa9, 0xcf, 0x01, // IID19813 - 0xd5, 0x7f, 0x6b, 0xa4, 0xb5, 0x73, 0x48, 0x17, 0xda, 0x10, // IID19814 - 0xd5, 0x7f, 0x69, 0xa4, 0xb5, 0x58, 0x58, 0x4f, 0x1f, 0x00, 0x01, 0x00, 0x00, // IID19815 - 0xd5, 0x7f, 0x69, 0xa4, 0x35, 0xc2, 0x50, 0x30, 0x3c, 0x00, 0x10, 0x00, 0x00, // IID19816 - 0xd5, 0x5d, 0x69, 0xa5, 0xc3, 0xcb, 0x22, 0x1d, 0x00, 0x00, 0x01, 0x00, // IID19817 - 0xd5, 0x7f, 0x69, 0xa4, 0xb5, 0x03, 0x7b, 0xb9, 0x91, 0x00, 0x00, 0x10, 0x00, // IID19818 - 0xd5, 0x7f, 0x69, 0xa4, 0x75, 0xe4, 0xa6, 0x85, 0x0a, 0x00, 0x00, 0x00, 0x01, // IID19819 - 0xd5, 0x7f, 0x69, 0xa4, 0xf5, 0x43, 0x34, 0x6d, 0xad, 0x00, 0x00, 0x00, 0x10, // IID19820 - 0xd5, 0x7f, 0x6b, 0xac, 0xbe, 0xf4, 0xb9, 0x32, 0x25, 0x01, // IID19821 - 0xd5, 0x7f, 0x6b, 0xac, 0xbe, 0x4c, 0x97, 0xc1, 0x77, 0x10, // IID19822 - 0xd5, 0x7f, 0x69, 0xac, 0x7e, 0xbe, 0xe5, 0x1b, 0x58, 0x00, 0x01, 0x00, 0x00, // IID19823 - 0xd5, 0x5d, 0x69, 0xae, 0x0d, 0xf8, 0xd4, 0x95, 0x00, 0x10, 0x00, 0x00, // IID19824 - 0xd5, 0x7f, 0x69, 0xac, 0x7e, 0x32, 0x4f, 0xea, 0xdf, 0x00, 0x00, 0x01, 0x00, // IID19825 - 0xd5, 0x7f, 0x69, 0xac, 0x7e, 0x81, 0x18, 0x42, 0xbd, 0x00, 0x00, 0x10, 0x00, // IID19826 - 0xd5, 0x7f, 0x69, 0xac, 0xfe, 0xf9, 0xdc, 0xcc, 0xb2, 0x00, 0x00, 0x00, 0x01, // IID19827 - 0xd5, 0x7f, 0x69, 0xac, 0xfe, 0xb6, 0xf1, 0x05, 0x08, 0x00, 0x00, 0x00, 0x10, // IID19828 - 0xd5, 0x5d, 0x6b, 0xb4, 0xcf, 0xc0, 0x34, 0x22, 0x0b, 0x01, // IID19829 - 0xd5, 0x5d, 0x6b, 0xb7, 0x2f, 0xaa, 0xd2, 0x30, 0x10, // IID19830 - 0xd5, 0x5d, 0x69, 0xb7, 0x3c, 0x05, 0x30, 0x9c, 0x00, 0x01, 0x00, 0x00, // IID19831 - 0xd5, 0x5d, 0x69, 0xb7, 0xb3, 0x0a, 0x27, 0x56, 0x00, 0x10, 0x00, 0x00, // IID19832 - 0xd5, 0x5d, 0x69, 0xb4, 0x0f, 0x6b, 0x5e, 0x95, 0xe8, 0x00, 0x00, 0x01, 0x00, // IID19833 - 0xd5, 0x5d, 0x69, 0xb4, 0x8f, 0xb2, 0x0e, 0x64, 0x94, 0x00, 0x00, 0x10, 0x00, // IID19834 - 0xd5, 0x5d, 0x69, 0xb4, 0x4f, 0x02, 0x52, 0x32, 0xa6, 0x00, 0x00, 0x00, 0x01, // IID19835 - 0xd5, 0x5d, 0x69, 0xb4, 0xcf, 0xcc, 0x10, 0xc7, 0x62, 0x00, 0x00, 0x00, 0x10, // IID19836 - 0xd5, 0x4c, 0x6b, 0xb9, 0xee, 0x47, 0xa1, 0x2b, 0x01, // IID19837 - 0xd5, 0x4c, 0x6b, 0xbc, 0x51, 0xba, 0xdd, 0x03, 0xf5, 0x10, // IID19838 - 0xd5, 0x4c, 0x69, 0xbc, 0x91, 0x45, 0xf0, 0x8d, 0xf8, 0x00, 0x01, 0x00, 0x00, // IID19839 - 0xd5, 0x4c, 0x69, 0xbc, 0x51, 0xfc, 0x76, 0x8a, 0xb5, 0x00, 0x10, 0x00, 0x00, // IID19840 - 0xd5, 0x4c, 0x69, 0xbc, 0xd1, 0x33, 0x4a, 0x58, 0xc3, 0x00, 0x00, 0x01, 0x00, // IID19841 - 0xd5, 0x4c, 0x69, 0xbc, 0x91, 0x66, 0xed, 0x05, 0x46, 0x00, 0x00, 0x10, 0x00, // IID19842 - 0xd5, 0x4c, 0x69, 0xbc, 0x51, 0xc6, 0x84, 0xe7, 0xd7, 0x00, 0x00, 0x00, 0x01, // IID19843 - 0xd5, 0x4c, 0x69, 0xb9, 0x52, 0xb8, 0xc0, 0x30, 0x00, 0x00, 0x00, 0x10, // IID19844 - 0x48, 0x6b, 0xca, 0x01, // IID19845 - 0x48, 0x6b, 0xca, 0x10, // IID19846 - 0x48, 0x69, 0xca, 0x00, 0x01, 0x00, 0x00, // IID19847 - 0x48, 0x69, 0xca, 0x00, 0x10, 0x00, 0x00, // IID19848 - 0x48, 0x69, 0xca, 0x00, 0x00, 0x01, 0x00, // IID19849 - 0x48, 0x69, 0xca, 0x00, 0x00, 0x10, 0x00, // IID19850 - 0x48, 0x69, 0xca, 0x00, 0x00, 0x00, 0x01, // IID19851 - 0x48, 0x69, 0xca, 0x00, 0x00, 0x00, 0x10, // IID19852 - 0x48, 0x6b, 0xd3, 0x01, // IID19853 - 0x48, 0x6b, 0xd3, 0x10, // IID19854 - 0x48, 0x69, 0xd3, 0x00, 0x01, 0x00, 0x00, // IID19855 - 0x48, 0x69, 0xd3, 0x00, 0x10, 0x00, 0x00, // IID19856 - 0x48, 0x69, 0xd3, 0x00, 0x00, 0x01, 0x00, // IID19857 - 0x48, 0x69, 0xd3, 0x00, 0x00, 0x10, 0x00, // IID19858 - 0x48, 0x69, 0xd3, 0x00, 0x00, 0x00, 0x01, // IID19859 - 0x48, 0x69, 0xd3, 0x00, 0x00, 0x00, 0x10, // IID19860 - 0x49, 0x6b, 0xd8, 0x01, // IID19861 - 0x49, 0x6b, 0xd8, 0x10, // IID19862 - 0x49, 0x69, 0xd8, 0x00, 0x01, 0x00, 0x00, // IID19863 - 0x49, 0x69, 0xd8, 0x00, 0x10, 0x00, 0x00, // IID19864 - 0x49, 0x69, 0xd8, 0x00, 0x00, 0x01, 0x00, // IID19865 - 0x49, 0x69, 0xd8, 0x00, 0x00, 0x10, 0x00, // IID19866 - 0x49, 0x69, 0xd8, 0x00, 0x00, 0x00, 0x01, // IID19867 - 0x49, 0x69, 0xd8, 0x00, 0x00, 0x00, 0x10, // IID19868 - 0x4d, 0x6b, 0xc1, 0x01, // IID19869 - 0x4d, 0x6b, 0xc1, 0x10, // IID19870 - 0x4d, 0x69, 0xc1, 0x00, 0x01, 0x00, 0x00, // IID19871 - 0x4d, 0x69, 0xc1, 0x00, 0x10, 0x00, 0x00, // IID19872 - 0x4d, 0x69, 0xc1, 0x00, 0x00, 0x01, 0x00, // IID19873 - 0x4d, 0x69, 0xc1, 0x00, 0x00, 0x10, 0x00, // IID19874 - 0x4d, 0x69, 0xc1, 0x00, 0x00, 0x00, 0x01, // IID19875 - 0x4d, 0x69, 0xc1, 0x00, 0x00, 0x00, 0x10, // IID19876 - 0x4d, 0x6b, 0xca, 0x01, // IID19877 - 0x4d, 0x6b, 0xca, 0x10, // IID19878 - 0x4d, 0x69, 0xca, 0x00, 0x01, 0x00, 0x00, // IID19879 - 0x4d, 0x69, 0xca, 0x00, 0x10, 0x00, 0x00, // IID19880 - 0x4d, 0x69, 0xca, 0x00, 0x00, 0x01, 0x00, // IID19881 - 0x4d, 0x69, 0xca, 0x00, 0x00, 0x10, 0x00, // IID19882 - 0x4d, 0x69, 0xca, 0x00, 0x00, 0x00, 0x01, // IID19883 - 0x4d, 0x69, 0xca, 0x00, 0x00, 0x00, 0x10, // IID19884 - 0x4d, 0x6b, 0xd3, 0x01, // IID19885 - 0x4d, 0x6b, 0xd3, 0x10, // IID19886 - 0x4d, 0x69, 0xd3, 0x00, 0x01, 0x00, 0x00, // IID19887 - 0x4d, 0x69, 0xd3, 0x00, 0x10, 0x00, 0x00, // IID19888 - 0x4d, 0x69, 0xd3, 0x00, 0x00, 0x01, 0x00, // IID19889 - 0x4d, 0x69, 0xd3, 0x00, 0x00, 0x10, 0x00, // IID19890 - 0x4d, 0x69, 0xd3, 0x00, 0x00, 0x00, 0x01, // IID19891 - 0x4d, 0x69, 0xd3, 0x00, 0x00, 0x00, 0x10, // IID19892 - 0x4d, 0x6b, 0xdc, 0x01, // IID19893 - 0x4d, 0x6b, 0xdc, 0x10, // IID19894 - 0x4d, 0x69, 0xdc, 0x00, 0x01, 0x00, 0x00, // IID19895 - 0x4d, 0x69, 0xdc, 0x00, 0x10, 0x00, 0x00, // IID19896 - 0x4d, 0x69, 0xdc, 0x00, 0x00, 0x01, 0x00, // IID19897 - 0x4d, 0x69, 0xdc, 0x00, 0x00, 0x10, 0x00, // IID19898 - 0x4d, 0x69, 0xdc, 0x00, 0x00, 0x00, 0x01, // IID19899 - 0x4d, 0x69, 0xdc, 0x00, 0x00, 0x00, 0x10, // IID19900 - 0x4d, 0x6b, 0xe5, 0x01, // IID19901 - 0x4d, 0x6b, 0xe5, 0x10, // IID19902 - 0x4d, 0x69, 0xe5, 0x00, 0x01, 0x00, 0x00, // IID19903 - 0x4d, 0x69, 0xe5, 0x00, 0x10, 0x00, 0x00, // IID19904 - 0x4d, 0x69, 0xe5, 0x00, 0x00, 0x01, 0x00, // IID19905 - 0x4d, 0x69, 0xe5, 0x00, 0x00, 0x10, 0x00, // IID19906 - 0x4d, 0x69, 0xe5, 0x00, 0x00, 0x00, 0x01, // IID19907 - 0x4d, 0x69, 0xe5, 0x00, 0x00, 0x00, 0x10, // IID19908 - 0x4d, 0x6b, 0xee, 0x01, // IID19909 - 0x4d, 0x6b, 0xee, 0x10, // IID19910 - 0x4d, 0x69, 0xee, 0x00, 0x01, 0x00, 0x00, // IID19911 - 0x4d, 0x69, 0xee, 0x00, 0x10, 0x00, 0x00, // IID19912 - 0x4d, 0x69, 0xee, 0x00, 0x00, 0x01, 0x00, // IID19913 - 0x4d, 0x69, 0xee, 0x00, 0x00, 0x10, 0x00, // IID19914 - 0x4d, 0x69, 0xee, 0x00, 0x00, 0x00, 0x01, // IID19915 - 0x4d, 0x69, 0xee, 0x00, 0x00, 0x00, 0x10, // IID19916 - 0x4d, 0x6b, 0xf7, 0x01, // IID19917 - 0x4d, 0x6b, 0xf7, 0x10, // IID19918 - 0x4d, 0x69, 0xf7, 0x00, 0x01, 0x00, 0x00, // IID19919 - 0x4d, 0x69, 0xf7, 0x00, 0x10, 0x00, 0x00, // IID19920 - 0x4d, 0x69, 0xf7, 0x00, 0x00, 0x01, 0x00, // IID19921 - 0x4d, 0x69, 0xf7, 0x00, 0x00, 0x10, 0x00, // IID19922 - 0x4d, 0x69, 0xf7, 0x00, 0x00, 0x00, 0x01, // IID19923 - 0x4d, 0x69, 0xf7, 0x00, 0x00, 0x00, 0x10, // IID19924 - 0xd5, 0x1c, 0x6b, 0xf8, 0x01, // IID19925 - 0xd5, 0x1c, 0x6b, 0xf8, 0x10, // IID19926 - 0xd5, 0x1c, 0x69, 0xf8, 0x00, 0x01, 0x00, 0x00, // IID19927 - 0xd5, 0x1c, 0x69, 0xf8, 0x00, 0x10, 0x00, 0x00, // IID19928 - 0xd5, 0x1c, 0x69, 0xf8, 0x00, 0x00, 0x01, 0x00, // IID19929 - 0xd5, 0x1c, 0x69, 0xf8, 0x00, 0x00, 0x10, 0x00, // IID19930 - 0xd5, 0x1c, 0x69, 0xf8, 0x00, 0x00, 0x00, 0x01, // IID19931 - 0xd5, 0x1c, 0x69, 0xf8, 0x00, 0x00, 0x00, 0x10, // IID19932 - 0xd5, 0x58, 0x6b, 0xc1, 0x01, // IID19933 - 0xd5, 0x58, 0x6b, 0xc1, 0x10, // IID19934 - 0xd5, 0x58, 0x69, 0xc1, 0x00, 0x01, 0x00, 0x00, // IID19935 - 0xd5, 0x58, 0x69, 0xc1, 0x00, 0x10, 0x00, 0x00, // IID19936 - 0xd5, 0x58, 0x69, 0xc1, 0x00, 0x00, 0x01, 0x00, // IID19937 - 0xd5, 0x58, 0x69, 0xc1, 0x00, 0x00, 0x10, 0x00, // IID19938 - 0xd5, 0x58, 0x69, 0xc1, 0x00, 0x00, 0x00, 0x01, // IID19939 - 0xd5, 0x58, 0x69, 0xc1, 0x00, 0x00, 0x00, 0x10, // IID19940 - 0xd5, 0x58, 0x6b, 0xca, 0x01, // IID19941 - 0xd5, 0x58, 0x6b, 0xca, 0x10, // IID19942 - 0xd5, 0x58, 0x69, 0xca, 0x00, 0x01, 0x00, 0x00, // IID19943 - 0xd5, 0x58, 0x69, 0xca, 0x00, 0x10, 0x00, 0x00, // IID19944 - 0xd5, 0x58, 0x69, 0xca, 0x00, 0x00, 0x01, 0x00, // IID19945 - 0xd5, 0x58, 0x69, 0xca, 0x00, 0x00, 0x10, 0x00, // IID19946 - 0xd5, 0x58, 0x69, 0xca, 0x00, 0x00, 0x00, 0x01, // IID19947 - 0xd5, 0x58, 0x69, 0xca, 0x00, 0x00, 0x00, 0x10, // IID19948 - 0xd5, 0x58, 0x6b, 0xd3, 0x01, // IID19949 - 0xd5, 0x58, 0x6b, 0xd3, 0x10, // IID19950 - 0xd5, 0x58, 0x69, 0xd3, 0x00, 0x01, 0x00, 0x00, // IID19951 - 0xd5, 0x58, 0x69, 0xd3, 0x00, 0x10, 0x00, 0x00, // IID19952 - 0xd5, 0x58, 0x69, 0xd3, 0x00, 0x00, 0x01, 0x00, // IID19953 - 0xd5, 0x58, 0x69, 0xd3, 0x00, 0x00, 0x10, 0x00, // IID19954 - 0xd5, 0x58, 0x69, 0xd3, 0x00, 0x00, 0x00, 0x01, // IID19955 - 0xd5, 0x58, 0x69, 0xd3, 0x00, 0x00, 0x00, 0x10, // IID19956 - 0xd5, 0x58, 0x6b, 0xdc, 0x01, // IID19957 - 0xd5, 0x58, 0x6b, 0xdc, 0x10, // IID19958 - 0xd5, 0x58, 0x69, 0xdc, 0x00, 0x01, 0x00, 0x00, // IID19959 - 0xd5, 0x58, 0x69, 0xdc, 0x00, 0x10, 0x00, 0x00, // IID19960 - 0xd5, 0x58, 0x69, 0xdc, 0x00, 0x00, 0x01, 0x00, // IID19961 - 0xd5, 0x58, 0x69, 0xdc, 0x00, 0x00, 0x10, 0x00, // IID19962 - 0xd5, 0x58, 0x69, 0xdc, 0x00, 0x00, 0x00, 0x01, // IID19963 - 0xd5, 0x58, 0x69, 0xdc, 0x00, 0x00, 0x00, 0x10, // IID19964 - 0xd5, 0x58, 0x6b, 0xe5, 0x01, // IID19965 - 0xd5, 0x58, 0x6b, 0xe5, 0x10, // IID19966 - 0xd5, 0x58, 0x69, 0xe5, 0x00, 0x01, 0x00, 0x00, // IID19967 - 0xd5, 0x58, 0x69, 0xe5, 0x00, 0x10, 0x00, 0x00, // IID19968 - 0xd5, 0x58, 0x69, 0xe5, 0x00, 0x00, 0x01, 0x00, // IID19969 - 0xd5, 0x58, 0x69, 0xe5, 0x00, 0x00, 0x10, 0x00, // IID19970 - 0xd5, 0x58, 0x69, 0xe5, 0x00, 0x00, 0x00, 0x01, // IID19971 - 0xd5, 0x58, 0x69, 0xe5, 0x00, 0x00, 0x00, 0x10, // IID19972 - 0xd5, 0x58, 0x6b, 0xee, 0x01, // IID19973 - 0xd5, 0x58, 0x6b, 0xee, 0x10, // IID19974 - 0xd5, 0x58, 0x69, 0xee, 0x00, 0x01, 0x00, 0x00, // IID19975 - 0xd5, 0x58, 0x69, 0xee, 0x00, 0x10, 0x00, 0x00, // IID19976 - 0xd5, 0x58, 0x69, 0xee, 0x00, 0x00, 0x01, 0x00, // IID19977 - 0xd5, 0x58, 0x69, 0xee, 0x00, 0x00, 0x10, 0x00, // IID19978 - 0xd5, 0x58, 0x69, 0xee, 0x00, 0x00, 0x00, 0x01, // IID19979 - 0xd5, 0x58, 0x69, 0xee, 0x00, 0x00, 0x00, 0x10, // IID19980 - 0xd5, 0x58, 0x6b, 0xf7, 0x01, // IID19981 - 0xd5, 0x58, 0x6b, 0xf7, 0x10, // IID19982 - 0xd5, 0x58, 0x69, 0xf7, 0x00, 0x01, 0x00, 0x00, // IID19983 - 0xd5, 0x58, 0x69, 0xf7, 0x00, 0x10, 0x00, 0x00, // IID19984 - 0xd5, 0x58, 0x69, 0xf7, 0x00, 0x00, 0x01, 0x00, // IID19985 - 0xd5, 0x58, 0x69, 0xf7, 0x00, 0x00, 0x10, 0x00, // IID19986 - 0xd5, 0x58, 0x69, 0xf7, 0x00, 0x00, 0x00, 0x01, // IID19987 - 0xd5, 0x58, 0x69, 0xf7, 0x00, 0x00, 0x00, 0x10, // IID19988 - 0xd5, 0x59, 0x6b, 0xf8, 0x01, // IID19989 - 0xd5, 0x59, 0x6b, 0xf8, 0x10, // IID19990 - 0xd5, 0x59, 0x69, 0xf8, 0x00, 0x01, 0x00, 0x00, // IID19991 - 0xd5, 0x59, 0x69, 0xf8, 0x00, 0x10, 0x00, 0x00, // IID19992 - 0xd5, 0x59, 0x69, 0xf8, 0x00, 0x00, 0x01, 0x00, // IID19993 - 0xd5, 0x59, 0x69, 0xf8, 0x00, 0x00, 0x10, 0x00, // IID19994 - 0xd5, 0x59, 0x69, 0xf8, 0x00, 0x00, 0x00, 0x01, // IID19995 - 0xd5, 0x59, 0x69, 0xf8, 0x00, 0x00, 0x00, 0x10, // IID19996 - 0xd5, 0x5d, 0x6b, 0xc1, 0x01, // IID19997 - 0xd5, 0x5d, 0x6b, 0xc1, 0x10, // IID19998 - 0xd5, 0x5d, 0x69, 0xc1, 0x00, 0x01, 0x00, 0x00, // IID19999 - 0xd5, 0x5d, 0x69, 0xc1, 0x00, 0x10, 0x00, 0x00, // IID20000 - 0xd5, 0x5d, 0x69, 0xc1, 0x00, 0x00, 0x01, 0x00, // IID20001 - 0xd5, 0x5d, 0x69, 0xc1, 0x00, 0x00, 0x10, 0x00, // IID20002 - 0xd5, 0x5d, 0x69, 0xc1, 0x00, 0x00, 0x00, 0x01, // IID20003 - 0xd5, 0x5d, 0x69, 0xc1, 0x00, 0x00, 0x00, 0x10, // IID20004 - 0xd5, 0x5d, 0x6b, 0xca, 0x01, // IID20005 - 0xd5, 0x5d, 0x6b, 0xca, 0x10, // IID20006 - 0xd5, 0x5d, 0x69, 0xca, 0x00, 0x01, 0x00, 0x00, // IID20007 - 0xd5, 0x5d, 0x69, 0xca, 0x00, 0x10, 0x00, 0x00, // IID20008 - 0xd5, 0x5d, 0x69, 0xca, 0x00, 0x00, 0x01, 0x00, // IID20009 - 0xd5, 0x5d, 0x69, 0xca, 0x00, 0x00, 0x10, 0x00, // IID20010 - 0xd5, 0x5d, 0x69, 0xca, 0x00, 0x00, 0x00, 0x01, // IID20011 - 0xd5, 0x5d, 0x69, 0xca, 0x00, 0x00, 0x00, 0x10, // IID20012 - 0xd5, 0x5d, 0x6b, 0xd3, 0x01, // IID20013 - 0xd5, 0x5d, 0x6b, 0xd3, 0x10, // IID20014 - 0xd5, 0x5d, 0x69, 0xd3, 0x00, 0x01, 0x00, 0x00, // IID20015 - 0xd5, 0x5d, 0x69, 0xd3, 0x00, 0x10, 0x00, 0x00, // IID20016 - 0xd5, 0x5d, 0x69, 0xd3, 0x00, 0x00, 0x01, 0x00, // IID20017 - 0xd5, 0x5d, 0x69, 0xd3, 0x00, 0x00, 0x10, 0x00, // IID20018 - 0xd5, 0x5d, 0x69, 0xd3, 0x00, 0x00, 0x00, 0x01, // IID20019 - 0xd5, 0x5d, 0x69, 0xd3, 0x00, 0x00, 0x00, 0x10, // IID20020 - 0xd5, 0x5d, 0x6b, 0xdc, 0x01, // IID20021 - 0xd5, 0x5d, 0x6b, 0xdc, 0x10, // IID20022 - 0xd5, 0x5d, 0x69, 0xdc, 0x00, 0x01, 0x00, 0x00, // IID20023 - 0xd5, 0x5d, 0x69, 0xdc, 0x00, 0x10, 0x00, 0x00, // IID20024 - 0xd5, 0x5d, 0x69, 0xdc, 0x00, 0x00, 0x01, 0x00, // IID20025 - 0xd5, 0x5d, 0x69, 0xdc, 0x00, 0x00, 0x10, 0x00, // IID20026 - 0xd5, 0x5d, 0x69, 0xdc, 0x00, 0x00, 0x00, 0x01, // IID20027 - 0xd5, 0x5d, 0x69, 0xdc, 0x00, 0x00, 0x00, 0x10, // IID20028 - 0xd5, 0x5d, 0x6b, 0xe5, 0x01, // IID20029 - 0xd5, 0x5d, 0x6b, 0xe5, 0x10, // IID20030 - 0xd5, 0x5d, 0x69, 0xe5, 0x00, 0x01, 0x00, 0x00, // IID20031 - 0xd5, 0x5d, 0x69, 0xe5, 0x00, 0x10, 0x00, 0x00, // IID20032 - 0xd5, 0x5d, 0x69, 0xe5, 0x00, 0x00, 0x01, 0x00, // IID20033 - 0xd5, 0x5d, 0x69, 0xe5, 0x00, 0x00, 0x10, 0x00, // IID20034 - 0xd5, 0x5d, 0x69, 0xe5, 0x00, 0x00, 0x00, 0x01, // IID20035 - 0xd5, 0x5d, 0x69, 0xe5, 0x00, 0x00, 0x00, 0x10, // IID20036 - 0xd5, 0x5d, 0x6b, 0xee, 0x01, // IID20037 - 0xd5, 0x5d, 0x6b, 0xee, 0x10, // IID20038 - 0xd5, 0x5d, 0x69, 0xee, 0x00, 0x01, 0x00, 0x00, // IID20039 - 0xd5, 0x5d, 0x69, 0xee, 0x00, 0x10, 0x00, 0x00, // IID20040 - 0xd5, 0x5d, 0x69, 0xee, 0x00, 0x00, 0x01, 0x00, // IID20041 - 0xd5, 0x5d, 0x69, 0xee, 0x00, 0x00, 0x10, 0x00, // IID20042 - 0xd5, 0x5d, 0x69, 0xee, 0x00, 0x00, 0x00, 0x01, // IID20043 - 0xd5, 0x5d, 0x69, 0xee, 0x00, 0x00, 0x00, 0x10, // IID20044 - 0xd5, 0x5d, 0x6b, 0xf7, 0x01, // IID20045 - 0xd5, 0x5d, 0x6b, 0xf7, 0x10, // IID20046 - 0xd5, 0x5d, 0x69, 0xf7, 0x00, 0x01, 0x00, 0x00, // IID20047 - 0xd5, 0x5d, 0x69, 0xf7, 0x00, 0x10, 0x00, 0x00, // IID20048 - 0xd5, 0x5d, 0x69, 0xf7, 0x00, 0x00, 0x01, 0x00, // IID20049 - 0xd5, 0x5d, 0x69, 0xf7, 0x00, 0x00, 0x10, 0x00, // IID20050 - 0xd5, 0x5d, 0x69, 0xf7, 0x00, 0x00, 0x00, 0x01, // IID20051 - 0xd5, 0x5d, 0x69, 0xf7, 0x00, 0x00, 0x00, 0x10, // IID20052 - 0xd5, 0x4c, 0x6b, 0xf9, 0x01, // IID20053 - 0xd5, 0x4c, 0x6b, 0xf9, 0x10, // IID20054 - 0xd5, 0x4c, 0x69, 0xf9, 0x00, 0x01, 0x00, 0x00, // IID20055 - 0xd5, 0x4c, 0x69, 0xf9, 0x00, 0x10, 0x00, 0x00, // IID20056 - 0xd5, 0x4c, 0x69, 0xf9, 0x00, 0x00, 0x01, 0x00, // IID20057 - 0xd5, 0x4c, 0x69, 0xf9, 0x00, 0x00, 0x10, 0x00, // IID20058 - 0xd5, 0x4c, 0x69, 0xf9, 0x00, 0x00, 0x00, 0x01, // IID20059 - 0xd5, 0x4c, 0x69, 0xf9, 0x00, 0x00, 0x00, 0x10, // IID20060 - 0x48, 0x0f, 0xa4, 0xd1, 0x01, // IID20061 - 0x48, 0x0f, 0xa4, 0xd1, 0x02, // IID20062 - 0x48, 0x0f, 0xa4, 0xd1, 0x04, // IID20063 - 0x48, 0x0f, 0xa4, 0xd1, 0x08, // IID20064 - 0x48, 0x0f, 0xa4, 0xd1, 0x10, // IID20065 - 0x48, 0x0f, 0xa4, 0xda, 0x01, // IID20066 - 0x48, 0x0f, 0xa4, 0xda, 0x02, // IID20067 - 0x48, 0x0f, 0xa4, 0xda, 0x04, // IID20068 - 0x48, 0x0f, 0xa4, 0xda, 0x08, // IID20069 - 0x48, 0x0f, 0xa4, 0xda, 0x10, // IID20070 - 0x4c, 0x0f, 0xa4, 0xc3, 0x01, // IID20071 - 0x4c, 0x0f, 0xa4, 0xc3, 0x02, // IID20072 - 0x4c, 0x0f, 0xa4, 0xc3, 0x04, // IID20073 - 0x4c, 0x0f, 0xa4, 0xc3, 0x08, // IID20074 - 0x4c, 0x0f, 0xa4, 0xc3, 0x10, // IID20075 - 0x4d, 0x0f, 0xa4, 0xc8, 0x01, // IID20076 - 0x4d, 0x0f, 0xa4, 0xc8, 0x02, // IID20077 - 0x4d, 0x0f, 0xa4, 0xc8, 0x04, // IID20078 - 0x4d, 0x0f, 0xa4, 0xc8, 0x08, // IID20079 - 0x4d, 0x0f, 0xa4, 0xc8, 0x10, // IID20080 - 0x4d, 0x0f, 0xa4, 0xd1, 0x01, // IID20081 - 0x4d, 0x0f, 0xa4, 0xd1, 0x02, // IID20082 - 0x4d, 0x0f, 0xa4, 0xd1, 0x04, // IID20083 - 0x4d, 0x0f, 0xa4, 0xd1, 0x08, // IID20084 - 0x4d, 0x0f, 0xa4, 0xd1, 0x10, // IID20085 - 0x4d, 0x0f, 0xa4, 0xda, 0x01, // IID20086 - 0x4d, 0x0f, 0xa4, 0xda, 0x02, // IID20087 - 0x4d, 0x0f, 0xa4, 0xda, 0x04, // IID20088 - 0x4d, 0x0f, 0xa4, 0xda, 0x08, // IID20089 - 0x4d, 0x0f, 0xa4, 0xda, 0x10, // IID20090 - 0x4d, 0x0f, 0xa4, 0xe3, 0x01, // IID20091 - 0x4d, 0x0f, 0xa4, 0xe3, 0x02, // IID20092 - 0x4d, 0x0f, 0xa4, 0xe3, 0x04, // IID20093 - 0x4d, 0x0f, 0xa4, 0xe3, 0x08, // IID20094 - 0x4d, 0x0f, 0xa4, 0xe3, 0x10, // IID20095 - 0x4d, 0x0f, 0xa4, 0xec, 0x01, // IID20096 - 0x4d, 0x0f, 0xa4, 0xec, 0x02, // IID20097 - 0x4d, 0x0f, 0xa4, 0xec, 0x04, // IID20098 - 0x4d, 0x0f, 0xa4, 0xec, 0x08, // IID20099 - 0x4d, 0x0f, 0xa4, 0xec, 0x10, // IID20100 - 0x4d, 0x0f, 0xa4, 0xf5, 0x01, // IID20101 - 0x4d, 0x0f, 0xa4, 0xf5, 0x02, // IID20102 - 0x4d, 0x0f, 0xa4, 0xf5, 0x04, // IID20103 - 0x4d, 0x0f, 0xa4, 0xf5, 0x08, // IID20104 - 0x4d, 0x0f, 0xa4, 0xf5, 0x10, // IID20105 - 0x4d, 0x0f, 0xa4, 0xfe, 0x01, // IID20106 - 0x4d, 0x0f, 0xa4, 0xfe, 0x02, // IID20107 - 0x4d, 0x0f, 0xa4, 0xfe, 0x04, // IID20108 - 0x4d, 0x0f, 0xa4, 0xfe, 0x08, // IID20109 - 0x4d, 0x0f, 0xa4, 0xfe, 0x10, // IID20110 - 0xd5, 0xc9, 0xa4, 0xc7, 0x01, // IID20111 - 0xd5, 0xc9, 0xa4, 0xc7, 0x02, // IID20112 - 0xd5, 0xc9, 0xa4, 0xc7, 0x04, // IID20113 - 0xd5, 0xc9, 0xa4, 0xc7, 0x08, // IID20114 - 0xd5, 0xc9, 0xa4, 0xc7, 0x10, // IID20115 - 0xd5, 0xd8, 0xa4, 0xc8, 0x01, // IID20116 - 0xd5, 0xd8, 0xa4, 0xc8, 0x02, // IID20117 - 0xd5, 0xd8, 0xa4, 0xc8, 0x04, // IID20118 - 0xd5, 0xd8, 0xa4, 0xc8, 0x08, // IID20119 - 0xd5, 0xd8, 0xa4, 0xc8, 0x10, // IID20120 - 0xd5, 0xd8, 0xa4, 0xd1, 0x01, // IID20121 - 0xd5, 0xd8, 0xa4, 0xd1, 0x02, // IID20122 - 0xd5, 0xd8, 0xa4, 0xd1, 0x04, // IID20123 - 0xd5, 0xd8, 0xa4, 0xd1, 0x08, // IID20124 - 0xd5, 0xd8, 0xa4, 0xd1, 0x10, // IID20125 - 0xd5, 0xd8, 0xa4, 0xda, 0x01, // IID20126 - 0xd5, 0xd8, 0xa4, 0xda, 0x02, // IID20127 - 0xd5, 0xd8, 0xa4, 0xda, 0x04, // IID20128 - 0xd5, 0xd8, 0xa4, 0xda, 0x08, // IID20129 - 0xd5, 0xd8, 0xa4, 0xda, 0x10, // IID20130 - 0xd5, 0xd8, 0xa4, 0xe3, 0x01, // IID20131 - 0xd5, 0xd8, 0xa4, 0xe3, 0x02, // IID20132 - 0xd5, 0xd8, 0xa4, 0xe3, 0x04, // IID20133 - 0xd5, 0xd8, 0xa4, 0xe3, 0x08, // IID20134 - 0xd5, 0xd8, 0xa4, 0xe3, 0x10, // IID20135 - 0xd5, 0xd8, 0xa4, 0xec, 0x01, // IID20136 - 0xd5, 0xd8, 0xa4, 0xec, 0x02, // IID20137 - 0xd5, 0xd8, 0xa4, 0xec, 0x04, // IID20138 - 0xd5, 0xd8, 0xa4, 0xec, 0x08, // IID20139 - 0xd5, 0xd8, 0xa4, 0xec, 0x10, // IID20140 - 0xd5, 0xd8, 0xa4, 0xf5, 0x01, // IID20141 - 0xd5, 0xd8, 0xa4, 0xf5, 0x02, // IID20142 - 0xd5, 0xd8, 0xa4, 0xf5, 0x04, // IID20143 - 0xd5, 0xd8, 0xa4, 0xf5, 0x08, // IID20144 - 0xd5, 0xd8, 0xa4, 0xf5, 0x10, // IID20145 - 0xd5, 0xd8, 0xa4, 0xfe, 0x01, // IID20146 - 0xd5, 0xd8, 0xa4, 0xfe, 0x02, // IID20147 - 0xd5, 0xd8, 0xa4, 0xfe, 0x04, // IID20148 - 0xd5, 0xd8, 0xa4, 0xfe, 0x08, // IID20149 - 0xd5, 0xd8, 0xa4, 0xfe, 0x10, // IID20150 - 0xd5, 0xdc, 0xa4, 0xc7, 0x01, // IID20151 - 0xd5, 0xdc, 0xa4, 0xc7, 0x02, // IID20152 - 0xd5, 0xdc, 0xa4, 0xc7, 0x04, // IID20153 - 0xd5, 0xdc, 0xa4, 0xc7, 0x08, // IID20154 - 0xd5, 0xdc, 0xa4, 0xc7, 0x10, // IID20155 - 0xd5, 0xdd, 0xa4, 0xc8, 0x01, // IID20156 - 0xd5, 0xdd, 0xa4, 0xc8, 0x02, // IID20157 - 0xd5, 0xdd, 0xa4, 0xc8, 0x04, // IID20158 - 0xd5, 0xdd, 0xa4, 0xc8, 0x08, // IID20159 - 0xd5, 0xdd, 0xa4, 0xc8, 0x10, // IID20160 - 0xd5, 0xdd, 0xa4, 0xd1, 0x01, // IID20161 - 0xd5, 0xdd, 0xa4, 0xd1, 0x02, // IID20162 - 0xd5, 0xdd, 0xa4, 0xd1, 0x04, // IID20163 - 0xd5, 0xdd, 0xa4, 0xd1, 0x08, // IID20164 - 0xd5, 0xdd, 0xa4, 0xd1, 0x10, // IID20165 - 0xd5, 0xdd, 0xa4, 0xda, 0x01, // IID20166 - 0xd5, 0xdd, 0xa4, 0xda, 0x02, // IID20167 - 0xd5, 0xdd, 0xa4, 0xda, 0x04, // IID20168 - 0xd5, 0xdd, 0xa4, 0xda, 0x08, // IID20169 - 0xd5, 0xdd, 0xa4, 0xda, 0x10, // IID20170 - 0xd5, 0xdd, 0xa4, 0xe3, 0x01, // IID20171 - 0xd5, 0xdd, 0xa4, 0xe3, 0x02, // IID20172 - 0xd5, 0xdd, 0xa4, 0xe3, 0x04, // IID20173 - 0xd5, 0xdd, 0xa4, 0xe3, 0x08, // IID20174 - 0xd5, 0xdd, 0xa4, 0xe3, 0x10, // IID20175 - 0xd5, 0xdd, 0xa4, 0xec, 0x01, // IID20176 - 0xd5, 0xdd, 0xa4, 0xec, 0x02, // IID20177 - 0xd5, 0xdd, 0xa4, 0xec, 0x04, // IID20178 - 0xd5, 0xdd, 0xa4, 0xec, 0x08, // IID20179 - 0xd5, 0xdd, 0xa4, 0xec, 0x10, // IID20180 - 0xd5, 0xdd, 0xa4, 0xf5, 0x01, // IID20181 - 0xd5, 0xdd, 0xa4, 0xf5, 0x02, // IID20182 - 0xd5, 0xdd, 0xa4, 0xf5, 0x04, // IID20183 - 0xd5, 0xdd, 0xa4, 0xf5, 0x08, // IID20184 - 0xd5, 0xdd, 0xa4, 0xf5, 0x10, // IID20185 - 0xd5, 0xdd, 0xa4, 0xfe, 0x01, // IID20186 - 0xd5, 0xdd, 0xa4, 0xfe, 0x02, // IID20187 - 0xd5, 0xdd, 0xa4, 0xfe, 0x04, // IID20188 - 0xd5, 0xdd, 0xa4, 0xfe, 0x08, // IID20189 - 0xd5, 0xdd, 0xa4, 0xfe, 0x10, // IID20190 - 0xd5, 0x99, 0xa4, 0xcf, 0x01, // IID20191 - 0xd5, 0x99, 0xa4, 0xcf, 0x02, // IID20192 - 0xd5, 0x99, 0xa4, 0xcf, 0x04, // IID20193 - 0xd5, 0x99, 0xa4, 0xcf, 0x08, // IID20194 - 0xd5, 0x99, 0xa4, 0xcf, 0x10, // IID20195 - 0x48, 0x0f, 0xac, 0xd1, 0x01, // IID20196 - 0x48, 0x0f, 0xac, 0xd1, 0x02, // IID20197 - 0x48, 0x0f, 0xac, 0xd1, 0x04, // IID20198 - 0x48, 0x0f, 0xac, 0xd1, 0x08, // IID20199 - 0x48, 0x0f, 0xac, 0xd1, 0x10, // IID20200 - 0x48, 0x0f, 0xac, 0xda, 0x01, // IID20201 - 0x48, 0x0f, 0xac, 0xda, 0x02, // IID20202 - 0x48, 0x0f, 0xac, 0xda, 0x04, // IID20203 - 0x48, 0x0f, 0xac, 0xda, 0x08, // IID20204 - 0x48, 0x0f, 0xac, 0xda, 0x10, // IID20205 - 0x4c, 0x0f, 0xac, 0xc3, 0x01, // IID20206 - 0x4c, 0x0f, 0xac, 0xc3, 0x02, // IID20207 - 0x4c, 0x0f, 0xac, 0xc3, 0x04, // IID20208 - 0x4c, 0x0f, 0xac, 0xc3, 0x08, // IID20209 - 0x4c, 0x0f, 0xac, 0xc3, 0x10, // IID20210 - 0x4d, 0x0f, 0xac, 0xc8, 0x01, // IID20211 - 0x4d, 0x0f, 0xac, 0xc8, 0x02, // IID20212 - 0x4d, 0x0f, 0xac, 0xc8, 0x04, // IID20213 - 0x4d, 0x0f, 0xac, 0xc8, 0x08, // IID20214 - 0x4d, 0x0f, 0xac, 0xc8, 0x10, // IID20215 - 0x4d, 0x0f, 0xac, 0xd1, 0x01, // IID20216 - 0x4d, 0x0f, 0xac, 0xd1, 0x02, // IID20217 - 0x4d, 0x0f, 0xac, 0xd1, 0x04, // IID20218 - 0x4d, 0x0f, 0xac, 0xd1, 0x08, // IID20219 - 0x4d, 0x0f, 0xac, 0xd1, 0x10, // IID20220 - 0x4d, 0x0f, 0xac, 0xda, 0x01, // IID20221 - 0x4d, 0x0f, 0xac, 0xda, 0x02, // IID20222 - 0x4d, 0x0f, 0xac, 0xda, 0x04, // IID20223 - 0x4d, 0x0f, 0xac, 0xda, 0x08, // IID20224 - 0x4d, 0x0f, 0xac, 0xda, 0x10, // IID20225 - 0x4d, 0x0f, 0xac, 0xe3, 0x01, // IID20226 - 0x4d, 0x0f, 0xac, 0xe3, 0x02, // IID20227 - 0x4d, 0x0f, 0xac, 0xe3, 0x04, // IID20228 - 0x4d, 0x0f, 0xac, 0xe3, 0x08, // IID20229 - 0x4d, 0x0f, 0xac, 0xe3, 0x10, // IID20230 - 0x4d, 0x0f, 0xac, 0xec, 0x01, // IID20231 - 0x4d, 0x0f, 0xac, 0xec, 0x02, // IID20232 - 0x4d, 0x0f, 0xac, 0xec, 0x04, // IID20233 - 0x4d, 0x0f, 0xac, 0xec, 0x08, // IID20234 - 0x4d, 0x0f, 0xac, 0xec, 0x10, // IID20235 - 0x4d, 0x0f, 0xac, 0xf5, 0x01, // IID20236 - 0x4d, 0x0f, 0xac, 0xf5, 0x02, // IID20237 - 0x4d, 0x0f, 0xac, 0xf5, 0x04, // IID20238 - 0x4d, 0x0f, 0xac, 0xf5, 0x08, // IID20239 - 0x4d, 0x0f, 0xac, 0xf5, 0x10, // IID20240 - 0x4d, 0x0f, 0xac, 0xfe, 0x01, // IID20241 - 0x4d, 0x0f, 0xac, 0xfe, 0x02, // IID20242 - 0x4d, 0x0f, 0xac, 0xfe, 0x04, // IID20243 - 0x4d, 0x0f, 0xac, 0xfe, 0x08, // IID20244 - 0x4d, 0x0f, 0xac, 0xfe, 0x10, // IID20245 - 0xd5, 0xc9, 0xac, 0xc7, 0x01, // IID20246 - 0xd5, 0xc9, 0xac, 0xc7, 0x02, // IID20247 - 0xd5, 0xc9, 0xac, 0xc7, 0x04, // IID20248 - 0xd5, 0xc9, 0xac, 0xc7, 0x08, // IID20249 - 0xd5, 0xc9, 0xac, 0xc7, 0x10, // IID20250 - 0xd5, 0xd8, 0xac, 0xc8, 0x01, // IID20251 - 0xd5, 0xd8, 0xac, 0xc8, 0x02, // IID20252 - 0xd5, 0xd8, 0xac, 0xc8, 0x04, // IID20253 - 0xd5, 0xd8, 0xac, 0xc8, 0x08, // IID20254 - 0xd5, 0xd8, 0xac, 0xc8, 0x10, // IID20255 - 0xd5, 0xd8, 0xac, 0xd1, 0x01, // IID20256 - 0xd5, 0xd8, 0xac, 0xd1, 0x02, // IID20257 - 0xd5, 0xd8, 0xac, 0xd1, 0x04, // IID20258 - 0xd5, 0xd8, 0xac, 0xd1, 0x08, // IID20259 - 0xd5, 0xd8, 0xac, 0xd1, 0x10, // IID20260 - 0xd5, 0xd8, 0xac, 0xda, 0x01, // IID20261 - 0xd5, 0xd8, 0xac, 0xda, 0x02, // IID20262 - 0xd5, 0xd8, 0xac, 0xda, 0x04, // IID20263 - 0xd5, 0xd8, 0xac, 0xda, 0x08, // IID20264 - 0xd5, 0xd8, 0xac, 0xda, 0x10, // IID20265 - 0xd5, 0xd8, 0xac, 0xe3, 0x01, // IID20266 - 0xd5, 0xd8, 0xac, 0xe3, 0x02, // IID20267 - 0xd5, 0xd8, 0xac, 0xe3, 0x04, // IID20268 - 0xd5, 0xd8, 0xac, 0xe3, 0x08, // IID20269 - 0xd5, 0xd8, 0xac, 0xe3, 0x10, // IID20270 - 0xd5, 0xd8, 0xac, 0xec, 0x01, // IID20271 - 0xd5, 0xd8, 0xac, 0xec, 0x02, // IID20272 - 0xd5, 0xd8, 0xac, 0xec, 0x04, // IID20273 - 0xd5, 0xd8, 0xac, 0xec, 0x08, // IID20274 - 0xd5, 0xd8, 0xac, 0xec, 0x10, // IID20275 - 0xd5, 0xd8, 0xac, 0xf5, 0x01, // IID20276 - 0xd5, 0xd8, 0xac, 0xf5, 0x02, // IID20277 - 0xd5, 0xd8, 0xac, 0xf5, 0x04, // IID20278 - 0xd5, 0xd8, 0xac, 0xf5, 0x08, // IID20279 - 0xd5, 0xd8, 0xac, 0xf5, 0x10, // IID20280 - 0xd5, 0xd8, 0xac, 0xfe, 0x01, // IID20281 - 0xd5, 0xd8, 0xac, 0xfe, 0x02, // IID20282 - 0xd5, 0xd8, 0xac, 0xfe, 0x04, // IID20283 - 0xd5, 0xd8, 0xac, 0xfe, 0x08, // IID20284 - 0xd5, 0xd8, 0xac, 0xfe, 0x10, // IID20285 - 0xd5, 0xdc, 0xac, 0xc7, 0x01, // IID20286 - 0xd5, 0xdc, 0xac, 0xc7, 0x02, // IID20287 - 0xd5, 0xdc, 0xac, 0xc7, 0x04, // IID20288 - 0xd5, 0xdc, 0xac, 0xc7, 0x08, // IID20289 - 0xd5, 0xdc, 0xac, 0xc7, 0x10, // IID20290 - 0xd5, 0xdd, 0xac, 0xc8, 0x01, // IID20291 - 0xd5, 0xdd, 0xac, 0xc8, 0x02, // IID20292 - 0xd5, 0xdd, 0xac, 0xc8, 0x04, // IID20293 - 0xd5, 0xdd, 0xac, 0xc8, 0x08, // IID20294 - 0xd5, 0xdd, 0xac, 0xc8, 0x10, // IID20295 - 0xd5, 0xdd, 0xac, 0xd1, 0x01, // IID20296 - 0xd5, 0xdd, 0xac, 0xd1, 0x02, // IID20297 - 0xd5, 0xdd, 0xac, 0xd1, 0x04, // IID20298 - 0xd5, 0xdd, 0xac, 0xd1, 0x08, // IID20299 - 0xd5, 0xdd, 0xac, 0xd1, 0x10, // IID20300 - 0xd5, 0xdd, 0xac, 0xda, 0x01, // IID20301 - 0xd5, 0xdd, 0xac, 0xda, 0x02, // IID20302 - 0xd5, 0xdd, 0xac, 0xda, 0x04, // IID20303 - 0xd5, 0xdd, 0xac, 0xda, 0x08, // IID20304 - 0xd5, 0xdd, 0xac, 0xda, 0x10, // IID20305 - 0xd5, 0xdd, 0xac, 0xe3, 0x01, // IID20306 - 0xd5, 0xdd, 0xac, 0xe3, 0x02, // IID20307 - 0xd5, 0xdd, 0xac, 0xe3, 0x04, // IID20308 - 0xd5, 0xdd, 0xac, 0xe3, 0x08, // IID20309 - 0xd5, 0xdd, 0xac, 0xe3, 0x10, // IID20310 - 0xd5, 0xdd, 0xac, 0xec, 0x01, // IID20311 - 0xd5, 0xdd, 0xac, 0xec, 0x02, // IID20312 - 0xd5, 0xdd, 0xac, 0xec, 0x04, // IID20313 - 0xd5, 0xdd, 0xac, 0xec, 0x08, // IID20314 - 0xd5, 0xdd, 0xac, 0xec, 0x10, // IID20315 - 0xd5, 0xdd, 0xac, 0xf5, 0x01, // IID20316 - 0xd5, 0xdd, 0xac, 0xf5, 0x02, // IID20317 - 0xd5, 0xdd, 0xac, 0xf5, 0x04, // IID20318 - 0xd5, 0xdd, 0xac, 0xf5, 0x08, // IID20319 - 0xd5, 0xdd, 0xac, 0xf5, 0x10, // IID20320 - 0xd5, 0xdd, 0xac, 0xfe, 0x01, // IID20321 - 0xd5, 0xdd, 0xac, 0xfe, 0x02, // IID20322 - 0xd5, 0xdd, 0xac, 0xfe, 0x04, // IID20323 - 0xd5, 0xdd, 0xac, 0xfe, 0x08, // IID20324 - 0xd5, 0xdd, 0xac, 0xfe, 0x10, // IID20325 - 0xd5, 0x99, 0xac, 0xcf, 0x01, // IID20326 - 0xd5, 0x99, 0xac, 0xcf, 0x02, // IID20327 - 0xd5, 0x99, 0xac, 0xcf, 0x04, // IID20328 - 0xd5, 0x99, 0xac, 0xcf, 0x08, // IID20329 - 0xd5, 0x99, 0xac, 0xcf, 0x10, // IID20330 - 0x62, 0xf4, 0x74, 0x18, 0x8f, 0xc2, // IID20331 - 0x62, 0xf4, 0x6c, 0x18, 0x8f, 0xc3, // IID20332 - 0x62, 0xd4, 0x64, 0x18, 0x8f, 0xc0, // IID20333 - 0x62, 0xd4, 0x3c, 0x18, 0x8f, 0xc1, // IID20334 - 0x62, 0xd4, 0x34, 0x18, 0x8f, 0xc2, // IID20335 - 0x62, 0xd4, 0x2c, 0x18, 0x8f, 0xc3, // IID20336 - 0x62, 0xd4, 0x24, 0x18, 0x8f, 0xc4, // IID20337 - 0x62, 0xd4, 0x1c, 0x18, 0x8f, 0xc5, // IID20338 - 0x62, 0xd4, 0x14, 0x18, 0x8f, 0xc6, // IID20339 - 0x62, 0xd4, 0x0c, 0x18, 0x8f, 0xc7, // IID20340 - 0x62, 0xfc, 0x04, 0x18, 0x8f, 0xc0, // IID20341 - 0x62, 0xfc, 0x7c, 0x10, 0x8f, 0xc1, // IID20342 - 0x62, 0xfc, 0x74, 0x10, 0x8f, 0xc2, // IID20343 - 0x62, 0xfc, 0x6c, 0x10, 0x8f, 0xc3, // IID20344 - 0x62, 0xfc, 0x64, 0x10, 0x8f, 0xc4, // IID20345 - 0x62, 0xfc, 0x5c, 0x10, 0x8f, 0xc5, // IID20346 - 0x62, 0xfc, 0x54, 0x10, 0x8f, 0xc6, // IID20347 - 0x62, 0xfc, 0x4c, 0x10, 0x8f, 0xc7, // IID20348 - 0x62, 0xdc, 0x44, 0x10, 0x8f, 0xc0, // IID20349 - 0x62, 0xdc, 0x3c, 0x10, 0x8f, 0xc1, // IID20350 - 0x62, 0xdc, 0x34, 0x10, 0x8f, 0xc2, // IID20351 - 0x62, 0xdc, 0x2c, 0x10, 0x8f, 0xc3, // IID20352 - 0x62, 0xdc, 0x24, 0x10, 0x8f, 0xc4, // IID20353 - 0x62, 0xdc, 0x1c, 0x10, 0x8f, 0xc5, // IID20354 - 0x62, 0xdc, 0x14, 0x10, 0x8f, 0xc6, // IID20355 - 0x62, 0xdc, 0x0c, 0x10, 0x8f, 0xc7, // IID20356 - 0x62, 0xf4, 0x04, 0x10, 0x8f, 0xc1, // IID20357 - 0x62, 0xf4, 0xf4, 0x18, 0x8f, 0xc2, // IID20358 - 0x62, 0xf4, 0xec, 0x18, 0x8f, 0xc3, // IID20359 - 0x62, 0xd4, 0xe4, 0x18, 0x8f, 0xc0, // IID20360 - 0x62, 0xd4, 0xbc, 0x18, 0x8f, 0xc1, // IID20361 - 0x62, 0xd4, 0xb4, 0x18, 0x8f, 0xc2, // IID20362 - 0x62, 0xd4, 0xac, 0x18, 0x8f, 0xc3, // IID20363 - 0x62, 0xd4, 0xa4, 0x18, 0x8f, 0xc4, // IID20364 - 0x62, 0xd4, 0x9c, 0x18, 0x8f, 0xc5, // IID20365 - 0x62, 0xd4, 0x94, 0x18, 0x8f, 0xc6, // IID20366 - 0x62, 0xd4, 0x8c, 0x18, 0x8f, 0xc7, // IID20367 - 0x62, 0xfc, 0x84, 0x18, 0x8f, 0xc0, // IID20368 - 0x62, 0xfc, 0xfc, 0x10, 0x8f, 0xc1, // IID20369 - 0x62, 0xfc, 0xf4, 0x10, 0x8f, 0xc2, // IID20370 - 0x62, 0xfc, 0xec, 0x10, 0x8f, 0xc3, // IID20371 - 0x62, 0xfc, 0xe4, 0x10, 0x8f, 0xc4, // IID20372 - 0x62, 0xfc, 0xdc, 0x10, 0x8f, 0xc5, // IID20373 - 0x62, 0xfc, 0xd4, 0x10, 0x8f, 0xc6, // IID20374 - 0x62, 0xfc, 0xcc, 0x10, 0x8f, 0xc7, // IID20375 - 0x62, 0xdc, 0xc4, 0x10, 0x8f, 0xc0, // IID20376 - 0x62, 0xdc, 0xbc, 0x10, 0x8f, 0xc1, // IID20377 - 0x62, 0xdc, 0xb4, 0x10, 0x8f, 0xc2, // IID20378 - 0x62, 0xdc, 0xac, 0x10, 0x8f, 0xc3, // IID20379 - 0x62, 0xdc, 0xa4, 0x10, 0x8f, 0xc4, // IID20380 - 0x62, 0xdc, 0x9c, 0x10, 0x8f, 0xc5, // IID20381 - 0x62, 0xdc, 0x94, 0x10, 0x8f, 0xc6, // IID20382 - 0x62, 0xdc, 0x8c, 0x10, 0x8f, 0xc7, // IID20383 - 0x62, 0xf4, 0x84, 0x10, 0x8f, 0xc1, // IID20384 - 0x62, 0xf4, 0x74, 0x18, 0xff, 0xf2, // IID20385 - 0x62, 0xf4, 0x6c, 0x18, 0xff, 0xf3, // IID20386 - 0x62, 0xd4, 0x64, 0x18, 0xff, 0xf0, // IID20387 - 0x62, 0xd4, 0x3c, 0x18, 0xff, 0xf1, // IID20388 - 0x62, 0xd4, 0x34, 0x18, 0xff, 0xf2, // IID20389 - 0x62, 0xd4, 0x2c, 0x18, 0xff, 0xf3, // IID20390 - 0x62, 0xd4, 0x24, 0x18, 0xff, 0xf4, // IID20391 - 0x62, 0xd4, 0x1c, 0x18, 0xff, 0xf5, // IID20392 - 0x62, 0xd4, 0x14, 0x18, 0xff, 0xf6, // IID20393 - 0x62, 0xd4, 0x0c, 0x18, 0xff, 0xf7, // IID20394 - 0x62, 0xfc, 0x04, 0x18, 0xff, 0xf0, // IID20395 - 0x62, 0xfc, 0x7c, 0x10, 0xff, 0xf1, // IID20396 - 0x62, 0xfc, 0x74, 0x10, 0xff, 0xf2, // IID20397 - 0x62, 0xfc, 0x6c, 0x10, 0xff, 0xf3, // IID20398 - 0x62, 0xfc, 0x64, 0x10, 0xff, 0xf4, // IID20399 - 0x62, 0xfc, 0x5c, 0x10, 0xff, 0xf5, // IID20400 - 0x62, 0xfc, 0x54, 0x10, 0xff, 0xf6, // IID20401 - 0x62, 0xfc, 0x4c, 0x10, 0xff, 0xf7, // IID20402 - 0x62, 0xdc, 0x44, 0x10, 0xff, 0xf0, // IID20403 - 0x62, 0xdc, 0x3c, 0x10, 0xff, 0xf1, // IID20404 - 0x62, 0xdc, 0x34, 0x10, 0xff, 0xf2, // IID20405 - 0x62, 0xdc, 0x2c, 0x10, 0xff, 0xf3, // IID20406 - 0x62, 0xdc, 0x24, 0x10, 0xff, 0xf4, // IID20407 - 0x62, 0xdc, 0x1c, 0x10, 0xff, 0xf5, // IID20408 - 0x62, 0xdc, 0x14, 0x10, 0xff, 0xf6, // IID20409 - 0x62, 0xdc, 0x0c, 0x10, 0xff, 0xf7, // IID20410 - 0x62, 0xf4, 0x04, 0x10, 0xff, 0xf1, // IID20411 - 0x62, 0xf4, 0xf4, 0x18, 0xff, 0xf2, // IID20412 - 0x62, 0xf4, 0xec, 0x18, 0xff, 0xf3, // IID20413 - 0x62, 0xd4, 0xe4, 0x18, 0xff, 0xf0, // IID20414 - 0x62, 0xd4, 0xbc, 0x18, 0xff, 0xf1, // IID20415 - 0x62, 0xd4, 0xb4, 0x18, 0xff, 0xf2, // IID20416 - 0x62, 0xd4, 0xac, 0x18, 0xff, 0xf3, // IID20417 - 0x62, 0xd4, 0xa4, 0x18, 0xff, 0xf4, // IID20418 - 0x62, 0xd4, 0x9c, 0x18, 0xff, 0xf5, // IID20419 - 0x62, 0xd4, 0x94, 0x18, 0xff, 0xf6, // IID20420 - 0x62, 0xd4, 0x8c, 0x18, 0xff, 0xf7, // IID20421 - 0x62, 0xfc, 0x84, 0x18, 0xff, 0xf0, // IID20422 - 0x62, 0xfc, 0xfc, 0x10, 0xff, 0xf1, // IID20423 - 0x62, 0xfc, 0xf4, 0x10, 0xff, 0xf2, // IID20424 - 0x62, 0xfc, 0xec, 0x10, 0xff, 0xf3, // IID20425 - 0x62, 0xfc, 0xe4, 0x10, 0xff, 0xf4, // IID20426 - 0x62, 0xfc, 0xdc, 0x10, 0xff, 0xf5, // IID20427 - 0x62, 0xfc, 0xd4, 0x10, 0xff, 0xf6, // IID20428 - 0x62, 0xfc, 0xcc, 0x10, 0xff, 0xf7, // IID20429 - 0x62, 0xdc, 0xc4, 0x10, 0xff, 0xf0, // IID20430 - 0x62, 0xdc, 0xbc, 0x10, 0xff, 0xf1, // IID20431 - 0x62, 0xdc, 0xb4, 0x10, 0xff, 0xf2, // IID20432 - 0x62, 0xdc, 0xac, 0x10, 0xff, 0xf3, // IID20433 - 0x62, 0xdc, 0xa4, 0x10, 0xff, 0xf4, // IID20434 - 0x62, 0xdc, 0x9c, 0x10, 0xff, 0xf5, // IID20435 - 0x62, 0xdc, 0x94, 0x10, 0xff, 0xf6, // IID20436 - 0x62, 0xdc, 0x8c, 0x10, 0xff, 0xf7, // IID20437 - 0x62, 0xf4, 0x84, 0x10, 0xff, 0xf1, // IID20438 - 0x48, 0x0f, 0xb6, 0x8c, 0x5a, 0xfe, 0xba, 0xeb, 0x6b, // IID20439 - 0x4a, 0x0f, 0xb6, 0x94, 0x03, 0xfe, 0xe5, 0xb6, 0xc8, // IID20440 - 0x49, 0x0f, 0xb6, 0x98, 0x6b, 0x72, 0x55, 0x13, // IID20441 - 0x4f, 0x0f, 0xb6, 0x84, 0x91, 0x46, 0x77, 0x47, 0x28, // IID20442 - 0x4d, 0x0f, 0xb6, 0x8a, 0x94, 0xf4, 0x73, 0x5c, // IID20443 - 0x4f, 0x0f, 0xb6, 0x94, 0x23, 0xf8, 0xc8, 0x6d, 0xb2, // IID20444 - 0x4f, 0x0f, 0xb6, 0x9c, 0xac, 0x43, 0x72, 0xfc, 0xf2, // IID20445 - 0x4f, 0x0f, 0xb6, 0xa4, 0x35, 0x90, 0x2d, 0xc4, 0x04, // IID20446 - 0x4f, 0x0f, 0xb6, 0xac, 0x7e, 0x19, 0x90, 0xbe, 0x24, // IID20447 - 0xd5, 0xad, 0xb6, 0xb4, 0x07, 0x16, 0xd2, 0x0f, 0xe3, // IID20448 - 0xd5, 0xbc, 0xb6, 0xbc, 0x08, 0x94, 0xb0, 0xc6, 0xef, // IID20449 - 0xd5, 0xd8, 0xb6, 0x81, 0x13, 0x93, 0x54, 0xb6, // IID20450 - 0xd5, 0xf8, 0xb6, 0x8c, 0x1a, 0x15, 0x10, 0xf8, 0x70, // IID20451 - 0xd5, 0xf8, 0xb6, 0x94, 0xe3, 0x2c, 0xda, 0xc8, 0x6a, // IID20452 - 0xd5, 0xf8, 0xb6, 0x9c, 0xec, 0x37, 0x6b, 0xef, 0x5f, // IID20453 - 0xd5, 0xf8, 0xb6, 0xa4, 0x35, 0xc3, 0x43, 0x76, 0xcb, // IID20454 - 0xd5, 0xf8, 0xb6, 0xac, 0xbe, 0x32, 0x04, 0x9e, 0x24, // IID20455 - 0xd5, 0xfa, 0xb6, 0xb4, 0xc7, 0x09, 0x6f, 0xd8, 0x56, // IID20456 - 0xd5, 0xfb, 0xb6, 0xbc, 0x88, 0xf2, 0x0b, 0x61, 0x82, // IID20457 - 0xd5, 0xdd, 0xb6, 0x81, 0xf4, 0x97, 0x9a, 0xa0, // IID20458 - 0xd5, 0xff, 0xb6, 0x8c, 0x1a, 0xd8, 0x64, 0x68, 0x69, // IID20459 - 0xd5, 0xdd, 0xb6, 0x93, 0x53, 0x70, 0x4e, 0x6b, // IID20460 - 0xd5, 0xff, 0xb6, 0x9c, 0x2c, 0xee, 0x2f, 0x2a, 0xc2, // IID20461 - 0xd5, 0xdd, 0xb6, 0xa5, 0xb3, 0xe4, 0x20, 0x54, // IID20462 - 0xd5, 0xff, 0xb6, 0xac, 0x3e, 0xfe, 0xd8, 0x0b, 0x38, // IID20463 - 0xd5, 0xdd, 0xb6, 0xb4, 0x0f, 0x73, 0x58, 0xa9, 0x5b, // IID20464 - 0xd5, 0xcc, 0xb6, 0xb9, 0x6a, 0xa7, 0xb1, 0xc5, // IID20465 - 0x48, 0x0f, 0xb7, 0x8a, 0x5b, 0x1d, 0xa6, 0x89, // IID20466 - 0x48, 0x0f, 0xb7, 0x93, 0xc2, 0xe6, 0x28, 0xc0, // IID20467 - 0x4b, 0x0f, 0xb7, 0x9c, 0x88, 0x0f, 0xe9, 0x3a, 0x63, // IID20468 - 0x4f, 0x0f, 0xb7, 0x84, 0x91, 0x51, 0x45, 0x04, 0xbb, // IID20469 - 0x4f, 0x0f, 0xb7, 0x8c, 0x9a, 0x22, 0x0d, 0x4f, 0x52, // IID20470 - 0x4f, 0x0f, 0xb7, 0x94, 0xa3, 0xb3, 0x58, 0x57, 0x50, // IID20471 - 0x4f, 0x0f, 0xb7, 0x9c, 0xac, 0x52, 0xb2, 0x8e, 0x0b, // IID20472 - 0x4f, 0x0f, 0xb7, 0xa4, 0xf5, 0xc7, 0x21, 0xf7, 0xe1, // IID20473 - 0x4f, 0x0f, 0xb7, 0xac, 0x3e, 0x18, 0x84, 0xd5, 0xc6, // IID20474 - 0xd5, 0xad, 0xb7, 0xb4, 0x47, 0x1c, 0x70, 0xbd, 0x54, // IID20475 - 0xd5, 0xbc, 0xb7, 0xbc, 0x48, 0xed, 0x12, 0xf1, 0x78, // IID20476 - 0xd5, 0xf8, 0xb7, 0x84, 0xd1, 0x52, 0xd1, 0x4f, 0x61, // IID20477 - 0xd5, 0xf8, 0xb7, 0x8c, 0x1a, 0x5e, 0x6e, 0x47, 0xcc, // IID20478 - 0xd5, 0xf8, 0xb7, 0x94, 0xe3, 0xd7, 0x2c, 0x27, 0x0e, // IID20479 - 0xd5, 0xf8, 0xb7, 0x9c, 0x6c, 0xb8, 0x80, 0xda, 0xb6, // IID20480 - 0xd5, 0xf8, 0xb7, 0xa4, 0x35, 0xc2, 0xf3, 0x79, 0x66, // IID20481 - 0xd5, 0xf8, 0xb7, 0xac, 0x3e, 0x15, 0xad, 0x0c, 0xa8, // IID20482 - 0xd5, 0xfa, 0xb7, 0xb4, 0xc7, 0xd3, 0x57, 0xde, 0x0b, // IID20483 - 0xd5, 0xfb, 0xb7, 0xbc, 0xc8, 0xcb, 0x08, 0x91, 0x11, // IID20484 - 0xd5, 0xff, 0xb7, 0x84, 0x51, 0x18, 0x94, 0x76, 0x61, // IID20485 - 0xd5, 0xff, 0xb7, 0x8c, 0x5a, 0xa4, 0xf8, 0x85, 0x98, // IID20486 - 0xd5, 0xff, 0xb7, 0x94, 0x23, 0xd1, 0xc0, 0x1b, 0x2c, // IID20487 - 0xd5, 0xff, 0xb7, 0x9c, 0x2c, 0x74, 0x90, 0xed, 0x21, // IID20488 - 0xd5, 0xff, 0xb7, 0xa4, 0x35, 0xf2, 0xcc, 0x53, 0xc3, // IID20489 - 0xd5, 0xff, 0xb7, 0xac, 0x3e, 0x6a, 0x08, 0xf7, 0xf1, // IID20490 - 0xd5, 0xdd, 0xb7, 0xb4, 0x0f, 0xff, 0xc2, 0xed, 0xb6, // IID20491 - 0xd5, 0xcc, 0xb7, 0xbc, 0xd1, 0xe2, 0x4c, 0xb5, 0xb9, // IID20492 - 0x48, 0x0f, 0xbe, 0x8c, 0xda, 0xee, 0xbf, 0x82, 0x15, // IID20493 - 0x4a, 0x0f, 0xbe, 0x94, 0x03, 0x8c, 0x10, 0xa9, 0xf2, // IID20494 - 0x49, 0x0f, 0xbe, 0x98, 0xa9, 0x03, 0x07, 0x24, // IID20495 - 0x4f, 0x0f, 0xbe, 0x84, 0x51, 0x37, 0x04, 0xcc, 0x6d, // IID20496 - 0x4d, 0x0f, 0xbe, 0x8a, 0x19, 0x14, 0x73, 0x7d, // IID20497 - 0x4f, 0x0f, 0xbe, 0x94, 0x63, 0x2b, 0x15, 0x4c, 0x1c, // IID20498 - 0x4f, 0x0f, 0xbe, 0x9c, 0xac, 0xa3, 0x79, 0x2b, 0xf7, // IID20499 - 0x4f, 0x0f, 0xbe, 0xa4, 0x75, 0xe3, 0xa6, 0x1e, 0xd2, // IID20500 - 0x4f, 0x0f, 0xbe, 0xac, 0x3e, 0xe3, 0x3f, 0x13, 0x9e, // IID20501 - 0xd5, 0xad, 0xbe, 0xb4, 0x07, 0x48, 0xdd, 0x06, 0x47, // IID20502 - 0xd5, 0xbc, 0xbe, 0xbc, 0x08, 0xa1, 0x94, 0x17, 0x77, // IID20503 - 0xd5, 0xf8, 0xbe, 0x84, 0xd1, 0xa7, 0xd1, 0x82, 0x9f, // IID20504 - 0xd5, 0xd8, 0xbe, 0x8a, 0x43, 0x05, 0x0d, 0x47, // IID20505 - 0xd5, 0xf8, 0xbe, 0x94, 0x63, 0x7e, 0x6f, 0x45, 0x29, // IID20506 - 0xd5, 0xd8, 0xbe, 0x9c, 0x24, 0x20, 0x04, 0x08, 0x1e, // IID20507 - 0xd5, 0xf8, 0xbe, 0xa4, 0xb5, 0xe0, 0xea, 0x26, 0x65, // IID20508 - 0xd5, 0xf8, 0xbe, 0xac, 0x3e, 0xdf, 0x79, 0xde, 0xd4, // IID20509 - 0xd5, 0xfa, 0xbe, 0xb4, 0x07, 0x3a, 0x2c, 0xa4, 0x7f, // IID20510 - 0xd5, 0xd9, 0xbe, 0xb8, 0x13, 0xa2, 0xd4, 0xb3, // IID20511 - 0xd5, 0xff, 0xbe, 0x84, 0x11, 0x94, 0x52, 0x8a, 0x40, // IID20512 - 0xd5, 0xdd, 0xbe, 0x8a, 0x3c, 0xe6, 0x93, 0xbe, // IID20513 - 0xd5, 0xff, 0xbe, 0x94, 0x23, 0x16, 0xb4, 0x2d, 0x97, // IID20514 - 0xd5, 0xff, 0xbe, 0x9c, 0x2c, 0xbb, 0x6a, 0x50, 0x42, // IID20515 - 0xd5, 0xff, 0xbe, 0xa4, 0xb5, 0x08, 0x0d, 0x22, 0xf5, // IID20516 - 0xd5, 0xdd, 0xbe, 0xae, 0xee, 0xdf, 0xfa, 0xdd, // IID20517 - 0xd5, 0xdd, 0xbe, 0xb4, 0xcf, 0xe8, 0xd3, 0x1b, 0x70, // IID20518 - 0xd5, 0xcc, 0xbe, 0xbc, 0x11, 0x3f, 0x11, 0x6d, 0x94, // IID20519 - 0x48, 0x0f, 0xbf, 0x8c, 0x5a, 0x0d, 0x8d, 0xa8, 0x0c, // IID20520 - 0x4a, 0x0f, 0xbf, 0x94, 0x43, 0xe5, 0x1b, 0x31, 0xc2, // IID20521 - 0x4b, 0x0f, 0xbf, 0x9c, 0xc8, 0x4c, 0xa2, 0xd6, 0xec, // IID20522 - 0x4f, 0x0f, 0xbf, 0x84, 0x11, 0xe5, 0x02, 0x93, 0x80, // IID20523 - 0x4f, 0x0f, 0xbf, 0x8c, 0x5a, 0x36, 0x00, 0xe1, 0xd9, // IID20524 - 0x4f, 0x0f, 0xbf, 0x94, 0xa3, 0x7a, 0xd0, 0x2c, 0x62, // IID20525 - 0x4f, 0x0f, 0xbf, 0x9c, 0xec, 0x00, 0x04, 0x78, 0x8e, // IID20526 - 0x4f, 0x0f, 0xbf, 0xa4, 0xb5, 0x9f, 0x5d, 0x4c, 0xe0, // IID20527 - 0x4d, 0x0f, 0xbf, 0xae, 0xf0, 0xb9, 0x81, 0xf5, // IID20528 - 0xd5, 0xad, 0xbf, 0xb4, 0x07, 0xae, 0x84, 0xa5, 0xd3, // IID20529 - 0xd5, 0xbc, 0xbf, 0xbc, 0x08, 0x3f, 0x58, 0x64, 0x34, // IID20530 - 0xd5, 0xf8, 0xbf, 0x84, 0xd1, 0x4f, 0xaf, 0x79, 0x03, // IID20531 - 0xd5, 0xf8, 0xbf, 0x8c, 0x9a, 0xbb, 0xd2, 0x6d, 0x35, // IID20532 - 0xd5, 0xd8, 0xbf, 0x93, 0x3b, 0xc0, 0xf7, 0xaa, // IID20533 - 0xd5, 0xf8, 0xbf, 0x9c, 0xec, 0xe4, 0x9a, 0x4b, 0x70, // IID20534 - 0xd5, 0xf8, 0xbf, 0xa4, 0xb5, 0x91, 0x52, 0xcc, 0x65, // IID20535 - 0xd5, 0xf8, 0xbf, 0xac, 0xbe, 0x06, 0x68, 0x64, 0x7a, // IID20536 - 0xd5, 0xfa, 0xbf, 0xb4, 0xc7, 0xe6, 0x38, 0x6e, 0xbc, // IID20537 - 0xd5, 0xfb, 0xbf, 0xbc, 0x48, 0x9b, 0x01, 0xfd, 0x33, // IID20538 - 0xd5, 0xff, 0xbf, 0x84, 0xd1, 0xe0, 0x59, 0xb6, 0x91, // IID20539 - 0xd5, 0xff, 0xbf, 0x8c, 0x1a, 0xa0, 0x5f, 0xd5, 0x0b, // IID20540 - 0xd5, 0xff, 0xbf, 0x94, 0xa3, 0x2f, 0x2e, 0xda, 0x5b, // IID20541 - 0xd5, 0xff, 0xbf, 0x9c, 0xec, 0xbb, 0xc2, 0x64, 0x9a, // IID20542 - 0xd5, 0xff, 0xbf, 0xa4, 0x75, 0x3f, 0x0a, 0xdb, 0x63, // IID20543 - 0xd5, 0xdd, 0xbf, 0xae, 0x8a, 0xa7, 0x74, 0xf8, // IID20544 - 0xd5, 0xdd, 0xbf, 0xb4, 0x0f, 0x11, 0xba, 0xd7, 0x11, // IID20545 - 0xd5, 0xcc, 0xbf, 0xb9, 0xd3, 0xc1, 0x2c, 0x7a, // IID20546 - 0x48, 0x0f, 0xb6, 0xca, // IID20547 - 0x48, 0x0f, 0xb6, 0xd3, // IID20548 - 0x49, 0x0f, 0xb6, 0xd8, // IID20549 - 0x4d, 0x0f, 0xb6, 0xc1, // IID20550 - 0x4d, 0x0f, 0xb6, 0xca, // IID20551 - 0x4d, 0x0f, 0xb6, 0xd3, // IID20552 - 0x4d, 0x0f, 0xb6, 0xdc, // IID20553 - 0x4d, 0x0f, 0xb6, 0xe5, // IID20554 - 0x4d, 0x0f, 0xb6, 0xee, // IID20555 - 0x4d, 0x0f, 0xb6, 0xf7, // IID20556 - 0xd5, 0x9c, 0xb6, 0xf8, // IID20557 - 0xd5, 0xd8, 0xb6, 0xc1, // IID20558 - 0xd5, 0xd8, 0xb6, 0xca, // IID20559 - 0xd5, 0xd8, 0xb6, 0xd3, // IID20560 - 0xd5, 0xd8, 0xb6, 0xdc, // IID20561 - 0xd5, 0xd8, 0xb6, 0xe5, // IID20562 - 0xd5, 0xd8, 0xb6, 0xee, // IID20563 - 0xd5, 0xd8, 0xb6, 0xf7, // IID20564 - 0xd5, 0xd9, 0xb6, 0xf8, // IID20565 - 0xd5, 0xdd, 0xb6, 0xc1, // IID20566 - 0xd5, 0xdd, 0xb6, 0xca, // IID20567 - 0xd5, 0xdd, 0xb6, 0xd3, // IID20568 - 0xd5, 0xdd, 0xb6, 0xdc, // IID20569 - 0xd5, 0xdd, 0xb6, 0xe5, // IID20570 - 0xd5, 0xdd, 0xb6, 0xee, // IID20571 - 0xd5, 0xdd, 0xb6, 0xf7, // IID20572 - 0xd5, 0xcc, 0xb6, 0xf9, // IID20573 - 0x48, 0x0f, 0xb7, 0xca, // IID20574 - 0x48, 0x0f, 0xb7, 0xd3, // IID20575 - 0x49, 0x0f, 0xb7, 0xd8, // IID20576 - 0x4d, 0x0f, 0xb7, 0xc1, // IID20577 - 0x4d, 0x0f, 0xb7, 0xca, // IID20578 - 0x4d, 0x0f, 0xb7, 0xd3, // IID20579 - 0x4d, 0x0f, 0xb7, 0xdc, // IID20580 - 0x4d, 0x0f, 0xb7, 0xe5, // IID20581 - 0x4d, 0x0f, 0xb7, 0xee, // IID20582 - 0x4d, 0x0f, 0xb7, 0xf7, // IID20583 - 0xd5, 0x9c, 0xb7, 0xf8, // IID20584 - 0xd5, 0xd8, 0xb7, 0xc1, // IID20585 - 0xd5, 0xd8, 0xb7, 0xca, // IID20586 - 0xd5, 0xd8, 0xb7, 0xd3, // IID20587 - 0xd5, 0xd8, 0xb7, 0xdc, // IID20588 - 0xd5, 0xd8, 0xb7, 0xe5, // IID20589 - 0xd5, 0xd8, 0xb7, 0xee, // IID20590 - 0xd5, 0xd8, 0xb7, 0xf7, // IID20591 - 0xd5, 0xd9, 0xb7, 0xf8, // IID20592 - 0xd5, 0xdd, 0xb7, 0xc1, // IID20593 - 0xd5, 0xdd, 0xb7, 0xca, // IID20594 - 0xd5, 0xdd, 0xb7, 0xd3, // IID20595 - 0xd5, 0xdd, 0xb7, 0xdc, // IID20596 - 0xd5, 0xdd, 0xb7, 0xe5, // IID20597 - 0xd5, 0xdd, 0xb7, 0xee, // IID20598 - 0xd5, 0xdd, 0xb7, 0xf7, // IID20599 - 0xd5, 0xcc, 0xb7, 0xf9, // IID20600 - 0x48, 0x0f, 0xbe, 0xca, // IID20601 - 0x48, 0x0f, 0xbe, 0xd3, // IID20602 - 0x49, 0x0f, 0xbe, 0xd8, // IID20603 - 0x4d, 0x0f, 0xbe, 0xc1, // IID20604 - 0x4d, 0x0f, 0xbe, 0xca, // IID20605 - 0x4d, 0x0f, 0xbe, 0xd3, // IID20606 - 0x4d, 0x0f, 0xbe, 0xdc, // IID20607 - 0x4d, 0x0f, 0xbe, 0xe5, // IID20608 - 0x4d, 0x0f, 0xbe, 0xee, // IID20609 - 0x4d, 0x0f, 0xbe, 0xf7, // IID20610 - 0xd5, 0x9c, 0xbe, 0xf8, // IID20611 - 0xd5, 0xd8, 0xbe, 0xc1, // IID20612 - 0xd5, 0xd8, 0xbe, 0xca, // IID20613 - 0xd5, 0xd8, 0xbe, 0xd3, // IID20614 - 0xd5, 0xd8, 0xbe, 0xdc, // IID20615 - 0xd5, 0xd8, 0xbe, 0xe5, // IID20616 - 0xd5, 0xd8, 0xbe, 0xee, // IID20617 - 0xd5, 0xd8, 0xbe, 0xf7, // IID20618 - 0xd5, 0xd9, 0xbe, 0xf8, // IID20619 - 0xd5, 0xdd, 0xbe, 0xc1, // IID20620 - 0xd5, 0xdd, 0xbe, 0xca, // IID20621 - 0xd5, 0xdd, 0xbe, 0xd3, // IID20622 - 0xd5, 0xdd, 0xbe, 0xdc, // IID20623 - 0xd5, 0xdd, 0xbe, 0xe5, // IID20624 - 0xd5, 0xdd, 0xbe, 0xee, // IID20625 - 0xd5, 0xdd, 0xbe, 0xf7, // IID20626 - 0xd5, 0xcc, 0xbe, 0xf9, // IID20627 - 0x48, 0x0f, 0xbf, 0xca, // IID20628 - 0x48, 0x0f, 0xbf, 0xd3, // IID20629 - 0x49, 0x0f, 0xbf, 0xd8, // IID20630 - 0x4d, 0x0f, 0xbf, 0xc1, // IID20631 - 0x4d, 0x0f, 0xbf, 0xca, // IID20632 - 0x4d, 0x0f, 0xbf, 0xd3, // IID20633 - 0x4d, 0x0f, 0xbf, 0xdc, // IID20634 - 0x4d, 0x0f, 0xbf, 0xe5, // IID20635 - 0x4d, 0x0f, 0xbf, 0xee, // IID20636 - 0x4d, 0x0f, 0xbf, 0xf7, // IID20637 - 0xd5, 0x9c, 0xbf, 0xf8, // IID20638 - 0xd5, 0xd8, 0xbf, 0xc1, // IID20639 - 0xd5, 0xd8, 0xbf, 0xca, // IID20640 - 0xd5, 0xd8, 0xbf, 0xd3, // IID20641 - 0xd5, 0xd8, 0xbf, 0xdc, // IID20642 - 0xd5, 0xd8, 0xbf, 0xe5, // IID20643 - 0xd5, 0xd8, 0xbf, 0xee, // IID20644 - 0xd5, 0xd8, 0xbf, 0xf7, // IID20645 - 0xd5, 0xd9, 0xbf, 0xf8, // IID20646 - 0xd5, 0xdd, 0xbf, 0xc1, // IID20647 - 0xd5, 0xdd, 0xbf, 0xca, // IID20648 - 0xd5, 0xdd, 0xbf, 0xd3, // IID20649 - 0xd5, 0xdd, 0xbf, 0xdc, // IID20650 - 0xd5, 0xdd, 0xbf, 0xe5, // IID20651 - 0xd5, 0xdd, 0xbf, 0xee, // IID20652 - 0xd5, 0xdd, 0xbf, 0xf7, // IID20653 - 0xd5, 0xcc, 0xbf, 0xf9, // IID20654 - 0x48, 0x0f, 0xb1, 0x8c, 0x5a, 0x25, 0xe7, 0x31, 0x5d, // IID20655 - 0x4a, 0x0f, 0xb1, 0x94, 0x03, 0xcf, 0x7d, 0xec, 0x8f, // IID20656 - 0x4b, 0x0f, 0xb1, 0x9c, 0x08, 0xb9, 0x0b, 0xb8, 0xd5, // IID20657 - 0x4d, 0x0f, 0xb1, 0x81, 0x2d, 0x49, 0x2e, 0xaf, // IID20658 - 0x4f, 0x0f, 0xb1, 0x8c, 0x5a, 0x92, 0x68, 0x38, 0xa6, // IID20659 - 0x4f, 0x0f, 0xb1, 0x94, 0x23, 0x0d, 0xe3, 0x7c, 0x9b, // IID20660 - 0x4f, 0x0f, 0xb1, 0x9c, 0x6c, 0x16, 0x66, 0x0d, 0x07, // IID20661 - 0x4f, 0x0f, 0xb1, 0xa4, 0xb5, 0x55, 0xb6, 0xdc, 0x03, // IID20662 - 0x4d, 0x0f, 0xb1, 0xae, 0xba, 0x3b, 0x62, 0xda, // IID20663 - 0xd5, 0xad, 0xb1, 0xb4, 0xc7, 0xe9, 0x1c, 0x52, 0x28, // IID20664 - 0xd5, 0xbc, 0xb1, 0xbc, 0x88, 0x2a, 0xd5, 0x2f, 0x0b, // IID20665 - 0xd5, 0xd8, 0xb1, 0x81, 0x94, 0xd2, 0xef, 0xc0, // IID20666 - 0xd5, 0xf8, 0xb1, 0x8c, 0x9a, 0xab, 0xae, 0x41, 0xbc, // IID20667 - 0xd5, 0xf8, 0xb1, 0x94, 0xa3, 0xd3, 0xfc, 0xfa, 0x3b, // IID20668 - 0xd5, 0xf8, 0xb1, 0x9c, 0xac, 0x06, 0x0d, 0x44, 0xff, // IID20669 - 0xd5, 0xd8, 0xb1, 0xa5, 0x32, 0x12, 0x32, 0x79, // IID20670 - 0xd5, 0xd8, 0xb1, 0xae, 0x15, 0xbd, 0xba, 0x57, // IID20671 - 0xd5, 0xfa, 0xb1, 0xb4, 0x07, 0xfa, 0x2c, 0x95, 0xab, // IID20672 - 0xd5, 0xfb, 0xb1, 0xbc, 0x88, 0xc3, 0x13, 0x10, 0x9c, // IID20673 - 0xd5, 0xff, 0xb1, 0x84, 0x91, 0x9c, 0xfe, 0xa8, 0xfd, // IID20674 - 0xd5, 0xff, 0xb1, 0x8c, 0x1a, 0x57, 0x9a, 0x0f, 0x4b, // IID20675 - 0xd5, 0xdd, 0xb1, 0x93, 0xfc, 0x79, 0xdb, 0x48, // IID20676 - 0xd5, 0xff, 0xb1, 0x9c, 0x6c, 0xc6, 0x2f, 0xb6, 0x1f, // IID20677 - 0xd5, 0xff, 0xb1, 0xa4, 0x35, 0x14, 0x13, 0x48, 0x0f, // IID20678 - 0xd5, 0xff, 0xb1, 0xac, 0xbe, 0xe0, 0x6f, 0xc8, 0x6b, // IID20679 - 0xd5, 0xdd, 0xb1, 0xb4, 0xcf, 0xbb, 0xdf, 0x57, 0x98, // IID20680 - 0xd5, 0xcc, 0xb1, 0xbc, 0xd1, 0x93, 0xe2, 0x75, 0x81, // IID20681 -#endif // _LP64 - }; - - static const unsigned int insns_lens[] = - { - 3, // IID0 - 3, // IID1 -#ifdef _LP64 - 4, // IID2 - 4, // IID3 - 4, // IID4 - 4, // IID5 - 4, // IID6 - 4, // IID7 - 4, // IID8 - 4, // IID9 - 4, // IID10 - 4, // IID11 - 4, // IID12 - 4, // IID13 - 4, // IID14 - 4, // IID15 - 4, // IID16 - 4, // IID17 - 4, // IID18 - 4, // IID19 - 4, // IID20 - 4, // IID21 - 4, // IID22 - 4, // IID23 - 4, // IID24 - 4, // IID25 - 4, // IID26 -#endif // _LP64 - 3, // IID27 - 3, // IID28 -#ifdef _LP64 - 4, // IID29 - 4, // IID30 - 4, // IID31 - 4, // IID32 - 4, // IID33 - 4, // IID34 - 4, // IID35 - 4, // IID36 - 4, // IID37 - 4, // IID38 - 4, // IID39 - 4, // IID40 - 4, // IID41 - 4, // IID42 - 4, // IID43 - 4, // IID44 - 4, // IID45 - 4, // IID46 - 4, // IID47 - 4, // IID48 - 4, // IID49 - 4, // IID50 - 4, // IID51 - 4, // IID52 - 4, // IID53 -#endif // _LP64 - 2, // IID54 - 2, // IID55 -#ifdef _LP64 - 3, // IID56 - 3, // IID57 - 3, // IID58 - 3, // IID59 - 3, // IID60 - 3, // IID61 - 3, // IID62 - 3, // IID63 - 4, // IID64 - 4, // IID65 - 4, // IID66 - 4, // IID67 - 4, // IID68 - 4, // IID69 - 4, // IID70 - 4, // IID71 - 4, // IID72 - 4, // IID73 - 4, // IID74 - 4, // IID75 - 4, // IID76 - 4, // IID77 - 4, // IID78 - 4, // IID79 - 4, // IID80 -#endif // _LP64 - 2, // IID81 - 2, // IID82 -#ifdef _LP64 - 3, // IID83 - 3, // IID84 - 3, // IID85 - 3, // IID86 - 3, // IID87 - 3, // IID88 - 3, // IID89 - 3, // IID90 - 4, // IID91 - 4, // IID92 - 4, // IID93 - 4, // IID94 - 4, // IID95 - 4, // IID96 - 4, // IID97 - 4, // IID98 - 4, // IID99 - 4, // IID100 - 4, // IID101 - 4, // IID102 - 4, // IID103 - 4, // IID104 - 4, // IID105 - 4, // IID106 - 4, // IID107 -#endif // _LP64 - 3, // IID108 - 3, // IID109 -#ifdef _LP64 - 4, // IID110 - 4, // IID111 - 4, // IID112 - 4, // IID113 - 4, // IID114 - 4, // IID115 - 4, // IID116 - 4, // IID117 - 4, // IID118 - 4, // IID119 - 4, // IID120 - 4, // IID121 - 4, // IID122 - 4, // IID123 - 4, // IID124 - 4, // IID125 - 4, // IID126 - 4, // IID127 - 4, // IID128 - 4, // IID129 - 4, // IID130 - 4, // IID131 - 4, // IID132 - 4, // IID133 - 4, // IID134 -#endif // _LP64 - 4, // IID135 - 4, // IID136 -#ifdef _LP64 - 5, // IID137 - 5, // IID138 - 5, // IID139 - 5, // IID140 - 5, // IID141 - 5, // IID142 - 5, // IID143 - 5, // IID144 - 5, // IID145 - 5, // IID146 - 5, // IID147 - 5, // IID148 - 5, // IID149 - 5, // IID150 - 5, // IID151 - 5, // IID152 - 5, // IID153 - 5, // IID154 - 5, // IID155 - 5, // IID156 - 5, // IID157 - 5, // IID158 - 5, // IID159 - 5, // IID160 - 5, // IID161 -#endif // _LP64 - 2, // IID162 - 2, // IID163 -#ifdef _LP64 - 3, // IID164 - 3, // IID165 - 3, // IID166 - 3, // IID167 - 3, // IID168 - 3, // IID169 - 3, // IID170 - 3, // IID171 - 4, // IID172 - 4, // IID173 - 4, // IID174 - 4, // IID175 - 4, // IID176 - 4, // IID177 - 4, // IID178 - 4, // IID179 - 4, // IID180 - 4, // IID181 - 4, // IID182 - 4, // IID183 - 4, // IID184 - 4, // IID185 - 4, // IID186 - 4, // IID187 - 4, // IID188 -#endif // _LP64 - 2, // IID189 - 2, // IID190 -#ifdef _LP64 - 3, // IID191 - 3, // IID192 - 3, // IID193 - 3, // IID194 - 3, // IID195 - 3, // IID196 - 3, // IID197 - 3, // IID198 - 4, // IID199 - 4, // IID200 - 4, // IID201 - 4, // IID202 - 4, // IID203 - 4, // IID204 - 4, // IID205 - 4, // IID206 - 4, // IID207 - 4, // IID208 - 4, // IID209 - 4, // IID210 - 4, // IID211 - 4, // IID212 - 4, // IID213 - 4, // IID214 - 4, // IID215 -#endif // _LP64 - 4, // IID216 - 4, // IID217 -#ifdef _LP64 - 5, // IID218 - 5, // IID219 - 5, // IID220 - 5, // IID221 - 5, // IID222 - 5, // IID223 - 5, // IID224 - 5, // IID225 - 5, // IID226 - 5, // IID227 - 5, // IID228 - 5, // IID229 - 5, // IID230 - 5, // IID231 - 5, // IID232 - 5, // IID233 - 5, // IID234 - 5, // IID235 - 5, // IID236 - 5, // IID237 - 5, // IID238 - 5, // IID239 - 5, // IID240 - 5, // IID241 - 5, // IID242 -#endif // _LP64 - 4, // IID243 - 4, // IID244 -#ifdef _LP64 - 5, // IID245 - 5, // IID246 - 5, // IID247 - 5, // IID248 - 5, // IID249 - 5, // IID250 - 5, // IID251 - 5, // IID252 - 5, // IID253 - 5, // IID254 - 5, // IID255 - 5, // IID256 - 5, // IID257 - 5, // IID258 - 5, // IID259 - 5, // IID260 - 5, // IID261 - 5, // IID262 - 5, // IID263 - 5, // IID264 - 5, // IID265 - 5, // IID266 - 5, // IID267 - 5, // IID268 - 5, // IID269 -#endif // _LP64 - 2, // IID270 - 2, // IID271 -#ifdef _LP64 - 3, // IID272 - 3, // IID273 - 3, // IID274 - 3, // IID275 - 3, // IID276 - 3, // IID277 - 3, // IID278 - 3, // IID279 - 4, // IID280 - 4, // IID281 - 4, // IID282 - 4, // IID283 - 4, // IID284 - 4, // IID285 - 4, // IID286 - 4, // IID287 - 4, // IID288 - 4, // IID289 - 4, // IID290 - 4, // IID291 - 4, // IID292 - 4, // IID293 - 4, // IID294 - 4, // IID295 - 4, // IID296 -#endif // _LP64 - 2, // IID297 - 2, // IID298 -#ifdef _LP64 - 3, // IID299 - 3, // IID300 - 3, // IID301 - 3, // IID302 - 3, // IID303 - 3, // IID304 - 3, // IID305 - 3, // IID306 - 4, // IID307 - 4, // IID308 - 4, // IID309 - 4, // IID310 - 4, // IID311 - 4, // IID312 - 4, // IID313 - 4, // IID314 - 4, // IID315 - 4, // IID316 - 4, // IID317 - 4, // IID318 - 4, // IID319 - 4, // IID320 - 4, // IID321 - 4, // IID322 - 4, // IID323 -#endif // _LP64 - 2, // IID324 - 2, // IID325 -#ifdef _LP64 - 3, // IID326 - 3, // IID327 - 3, // IID328 - 3, // IID329 - 3, // IID330 - 3, // IID331 - 3, // IID332 - 3, // IID333 - 4, // IID334 - 4, // IID335 - 4, // IID336 - 4, // IID337 - 4, // IID338 - 4, // IID339 - 4, // IID340 - 4, // IID341 - 4, // IID342 - 4, // IID343 - 4, // IID344 - 4, // IID345 - 4, // IID346 - 4, // IID347 - 4, // IID348 - 4, // IID349 - 4, // IID350 -#endif // _LP64 - 2, // IID351 - 2, // IID352 -#ifdef _LP64 - 3, // IID353 - 3, // IID354 - 3, // IID355 - 3, // IID356 - 3, // IID357 - 3, // IID358 - 3, // IID359 - 3, // IID360 - 4, // IID361 - 4, // IID362 - 4, // IID363 - 4, // IID364 - 4, // IID365 - 4, // IID366 - 4, // IID367 - 4, // IID368 - 4, // IID369 - 4, // IID370 - 4, // IID371 - 4, // IID372 - 4, // IID373 - 4, // IID374 - 4, // IID375 - 4, // IID376 - 4, // IID377 -#endif // _LP64 - 2, // IID378 - 2, // IID379 -#ifdef _LP64 - 3, // IID380 - 3, // IID381 - 3, // IID382 - 3, // IID383 - 3, // IID384 - 3, // IID385 - 3, // IID386 - 3, // IID387 - 4, // IID388 - 4, // IID389 - 4, // IID390 - 4, // IID391 - 4, // IID392 - 4, // IID393 - 4, // IID394 - 4, // IID395 - 4, // IID396 - 4, // IID397 - 4, // IID398 - 4, // IID399 - 4, // IID400 - 4, // IID401 - 4, // IID402 - 4, // IID403 - 4, // IID404 -#endif // _LP64 - 3, // IID405 - 3, // IID406 -#ifdef _LP64 - 4, // IID407 - 4, // IID408 - 4, // IID409 - 4, // IID410 - 4, // IID411 - 4, // IID412 - 4, // IID413 - 4, // IID414 - 4, // IID415 - 4, // IID416 - 4, // IID417 - 4, // IID418 - 4, // IID419 - 4, // IID420 - 4, // IID421 - 4, // IID422 - 4, // IID423 - 4, // IID424 - 4, // IID425 - 4, // IID426 - 4, // IID427 - 4, // IID428 - 4, // IID429 - 4, // IID430 - 4, // IID431 -#endif // _LP64 - 3, // IID432 - 3, // IID433 -#ifdef _LP64 - 4, // IID434 - 4, // IID435 - 4, // IID436 - 4, // IID437 - 4, // IID438 - 4, // IID439 - 4, // IID440 - 4, // IID441 - 4, // IID442 - 4, // IID443 - 4, // IID444 - 4, // IID445 - 4, // IID446 - 4, // IID447 - 4, // IID448 - 4, // IID449 - 4, // IID450 - 4, // IID451 - 4, // IID452 - 4, // IID453 - 4, // IID454 - 4, // IID455 - 4, // IID456 - 4, // IID457 - 4, // IID458 -#endif // _LP64 - 2, // IID459 - 2, // IID460 -#ifdef _LP64 - 3, // IID461 - 3, // IID462 - 3, // IID463 - 3, // IID464 - 3, // IID465 - 3, // IID466 - 3, // IID467 - 3, // IID468 - 4, // IID469 - 4, // IID470 - 4, // IID471 - 4, // IID472 - 4, // IID473 - 4, // IID474 - 4, // IID475 - 4, // IID476 - 4, // IID477 - 4, // IID478 - 4, // IID479 - 4, // IID480 - 4, // IID481 - 4, // IID482 - 4, // IID483 - 4, // IID484 - 4, // IID485 -#endif // _LP64 - 2, // IID486 - 2, // IID487 -#ifdef _LP64 - 3, // IID488 - 3, // IID489 - 3, // IID490 - 3, // IID491 - 3, // IID492 - 3, // IID493 - 3, // IID494 - 3, // IID495 - 4, // IID496 - 4, // IID497 - 4, // IID498 - 4, // IID499 - 4, // IID500 - 4, // IID501 - 4, // IID502 - 4, // IID503 - 4, // IID504 - 4, // IID505 - 4, // IID506 - 4, // IID507 - 4, // IID508 - 4, // IID509 - 4, // IID510 - 4, // IID511 - 4, // IID512 -#endif // _LP64 - 7, // IID513 -#ifdef _LP64 - 6, // IID514 - 7, // IID515 - 8, // IID516 - 8, // IID517 - 8, // IID518 - 8, // IID519 - 7, // IID520 - 7, // IID521 - 9, // IID522 - 9, // IID523 - 9, // IID524 - 9, // IID525 - 9, // IID526 - 9, // IID527 - 9, // IID528 - 8, // IID529 - 9, // IID530 - 9, // IID531 - 8, // IID532 - 9, // IID533 - 9, // IID534 - 9, // IID535 - 9, // IID536 - 9, // IID537 - 9, // IID538 - 9, // IID539 -#endif // _LP64 - 7, // IID540 -#ifdef _LP64 - 9, // IID541 - 9, // IID542 - 9, // IID543 - 9, // IID544 - 8, // IID545 - 9, // IID546 - 9, // IID547 - 9, // IID548 - 10, // IID549 - 10, // IID550 - 9, // IID551 - 10, // IID552 - 10, // IID553 - 10, // IID554 - 10, // IID555 - 10, // IID556 - 9, // IID557 - 10, // IID558 - 9, // IID559 - 10, // IID560 - 10, // IID561 - 10, // IID562 - 10, // IID563 - 9, // IID564 - 10, // IID565 - 10, // IID566 -#endif // _LP64 - 6, // IID567 -#ifdef _LP64 - 6, // IID568 - 8, // IID569 - 8, // IID570 - 8, // IID571 - 8, // IID572 - 8, // IID573 - 8, // IID574 - 8, // IID575 - 7, // IID576 - 9, // IID577 - 9, // IID578 - 9, // IID579 - 8, // IID580 - 9, // IID581 - 9, // IID582 - 9, // IID583 - 9, // IID584 - 9, // IID585 - 9, // IID586 - 9, // IID587 - 9, // IID588 - 9, // IID589 - 9, // IID590 - 9, // IID591 - 9, // IID592 - 8, // IID593 -#endif // _LP64 - 7, // IID594 -#ifdef _LP64 - 8, // IID595 - 8, // IID596 - 8, // IID597 - 8, // IID598 - 8, // IID599 - 8, // IID600 - 8, // IID601 - 8, // IID602 - 9, // IID603 - 9, // IID604 - 9, // IID605 - 9, // IID606 - 9, // IID607 - 9, // IID608 - 9, // IID609 - 9, // IID610 - 9, // IID611 - 9, // IID612 - 9, // IID613 - 9, // IID614 - 9, // IID615 - 9, // IID616 - 9, // IID617 - 9, // IID618 - 9, // IID619 - 9, // IID620 -#endif // _LP64 - 7, // IID621 -#ifdef _LP64 - 8, // IID622 - 7, // IID623 - 8, // IID624 - 8, // IID625 - 7, // IID626 - 8, // IID627 - 8, // IID628 - 8, // IID629 - 9, // IID630 - 8, // IID631 - 9, // IID632 - 9, // IID633 - 8, // IID634 - 9, // IID635 - 9, // IID636 - 9, // IID637 - 9, // IID638 - 9, // IID639 - 8, // IID640 - 9, // IID641 - 8, // IID642 - 9, // IID643 - 9, // IID644 - 9, // IID645 - 8, // IID646 - 9, // IID647 -#endif // _LP64 - 6, // IID648 -#ifdef _LP64 - 8, // IID649 - 8, // IID650 - 8, // IID651 - 8, // IID652 - 8, // IID653 - 8, // IID654 - 8, // IID655 - 8, // IID656 - 9, // IID657 - 8, // IID658 - 8, // IID659 - 9, // IID660 - 9, // IID661 - 9, // IID662 - 9, // IID663 - 9, // IID664 - 9, // IID665 - 8, // IID666 - 8, // IID667 - 8, // IID668 - 8, // IID669 - 9, // IID670 - 9, // IID671 - 9, // IID672 - 9, // IID673 - 9, // IID674 -#endif // _LP64 - 6, // IID675 -#ifdef _LP64 - 8, // IID676 - 8, // IID677 - 7, // IID678 - 8, // IID679 - 8, // IID680 - 8, // IID681 - 8, // IID682 - 7, // IID683 - 9, // IID684 - 9, // IID685 - 8, // IID686 - 9, // IID687 - 9, // IID688 - 9, // IID689 - 9, // IID690 - 9, // IID691 - 9, // IID692 - 9, // IID693 - 9, // IID694 - 8, // IID695 - 9, // IID696 - 9, // IID697 - 9, // IID698 - 9, // IID699 - 9, // IID700 - 8, // IID701 -#endif // _LP64 - 7, // IID702 -#ifdef _LP64 - 9, // IID703 - 9, // IID704 - 9, // IID705 - 9, // IID706 - 9, // IID707 - 9, // IID708 - 9, // IID709 - 9, // IID710 - 10, // IID711 - 10, // IID712 - 10, // IID713 - 10, // IID714 - 10, // IID715 - 10, // IID716 - 10, // IID717 - 10, // IID718 - 10, // IID719 - 10, // IID720 - 10, // IID721 - 10, // IID722 - 10, // IID723 - 10, // IID724 - 10, // IID725 - 10, // IID726 - 10, // IID727 - 10, // IID728 -#endif // _LP64 - 7, // IID729 -#ifdef _LP64 - 8, // IID730 - 7, // IID731 - 8, // IID732 - 8, // IID733 - 8, // IID734 - 8, // IID735 - 8, // IID736 - 8, // IID737 - 9, // IID738 - 9, // IID739 - 9, // IID740 - 9, // IID741 - 9, // IID742 - 9, // IID743 - 8, // IID744 - 9, // IID745 - 9, // IID746 - 9, // IID747 - 8, // IID748 - 9, // IID749 - 8, // IID750 - 9, // IID751 - 9, // IID752 - 8, // IID753 - 9, // IID754 - 9, // IID755 -#endif // _LP64 - 6, // IID756 -#ifdef _LP64 - 6, // IID757 - 8, // IID758 - 8, // IID759 - 8, // IID760 - 8, // IID761 - 8, // IID762 - 8, // IID763 - 8, // IID764 - 9, // IID765 - 8, // IID766 - 9, // IID767 - 9, // IID768 - 9, // IID769 - 9, // IID770 - 9, // IID771 - 9, // IID772 - 9, // IID773 - 8, // IID774 - 8, // IID775 - 9, // IID776 - 9, // IID777 - 9, // IID778 - 9, // IID779 - 9, // IID780 - 9, // IID781 - 9, // IID782 -#endif // _LP64 - 7, // IID783 -#ifdef _LP64 - 8, // IID784 - 8, // IID785 - 7, // IID786 - 8, // IID787 - 7, // IID788 - 8, // IID789 - 8, // IID790 - 7, // IID791 - 9, // IID792 - 9, // IID793 - 9, // IID794 - 8, // IID795 - 9, // IID796 - 9, // IID797 - 9, // IID798 - 9, // IID799 - 9, // IID800 - 9, // IID801 - 8, // IID802 - 8, // IID803 - 8, // IID804 - 9, // IID805 - 9, // IID806 - 9, // IID807 - 9, // IID808 - 9, // IID809 -#endif // _LP64 - 7, // IID810 -#ifdef _LP64 - 6, // IID811 - 8, // IID812 - 8, // IID813 - 8, // IID814 - 8, // IID815 - 8, // IID816 - 8, // IID817 - 8, // IID818 - 9, // IID819 - 9, // IID820 - 9, // IID821 - 9, // IID822 - 9, // IID823 - 9, // IID824 - 9, // IID825 - 9, // IID826 - 8, // IID827 - 9, // IID828 - 9, // IID829 - 9, // IID830 - 9, // IID831 - 9, // IID832 - 9, // IID833 - 9, // IID834 - 8, // IID835 - 9, // IID836 -#endif // _LP64 - 6, // IID837 -#ifdef _LP64 - 8, // IID838 - 8, // IID839 - 7, // IID840 - 7, // IID841 - 8, // IID842 - 8, // IID843 - 8, // IID844 - 8, // IID845 - 9, // IID846 - 9, // IID847 - 9, // IID848 - 8, // IID849 - 9, // IID850 - 9, // IID851 - 9, // IID852 - 9, // IID853 - 9, // IID854 - 9, // IID855 - 9, // IID856 - 9, // IID857 - 9, // IID858 - 9, // IID859 - 8, // IID860 - 9, // IID861 - 8, // IID862 - 9, // IID863 -#endif // _LP64 - 7, // IID864 -#ifdef _LP64 - 8, // IID865 - 8, // IID866 - 8, // IID867 - 8, // IID868 - 8, // IID869 - 8, // IID870 - 8, // IID871 - 8, // IID872 - 9, // IID873 - 8, // IID874 - 9, // IID875 - 8, // IID876 - 9, // IID877 - 9, // IID878 - 9, // IID879 - 9, // IID880 - 8, // IID881 - 9, // IID882 - 9, // IID883 - 9, // IID884 - 9, // IID885 - 9, // IID886 - 9, // IID887 - 9, // IID888 - 9, // IID889 - 8, // IID890 -#endif // _LP64 - 6, // IID891 -#ifdef _LP64 - 8, // IID892 - 8, // IID893 - 8, // IID894 - 8, // IID895 - 8, // IID896 - 8, // IID897 - 7, // IID898 - 8, // IID899 - 9, // IID900 - 8, // IID901 - 9, // IID902 - 9, // IID903 - 8, // IID904 - 9, // IID905 - 9, // IID906 - 9, // IID907 - 9, // IID908 - 9, // IID909 - 9, // IID910 - 8, // IID911 - 9, // IID912 - 9, // IID913 - 9, // IID914 - 9, // IID915 - 9, // IID916 - 8, // IID917 -#endif // _LP64 - 6, // IID918 -#ifdef _LP64 - 8, // IID919 - 7, // IID920 - 8, // IID921 - 8, // IID922 - 7, // IID923 - 8, // IID924 - 8, // IID925 - 8, // IID926 - 9, // IID927 - 9, // IID928 - 9, // IID929 - 9, // IID930 - 9, // IID931 - 9, // IID932 - 8, // IID933 - 8, // IID934 - 9, // IID935 - 9, // IID936 - 9, // IID937 - 9, // IID938 - 9, // IID939 - 9, // IID940 - 9, // IID941 - 9, // IID942 - 9, // IID943 - 9, // IID944 -#endif // _LP64 - 7, // IID945 -#ifdef _LP64 - 9, // IID946 - 9, // IID947 - 8, // IID948 - 9, // IID949 - 9, // IID950 - 9, // IID951 - 9, // IID952 - 9, // IID953 - 9, // IID954 - 9, // IID955 - 9, // IID956 - 9, // IID957 - 9, // IID958 - 9, // IID959 - 9, // IID960 - 9, // IID961 - 9, // IID962 - 9, // IID963 - 9, // IID964 - 9, // IID965 - 9, // IID966 - 9, // IID967 - 9, // IID968 - 9, // IID969 - 9, // IID970 - 9, // IID971 -#endif // _LP64 - 9, // IID972 -#ifdef _LP64 - 10, // IID973 - 9, // IID974 - 10, // IID975 - 10, // IID976 - 10, // IID977 - 10, // IID978 - 10, // IID979 - 10, // IID980 - 10, // IID981 - 10, // IID982 - 10, // IID983 - 10, // IID984 - 10, // IID985 - 10, // IID986 - 10, // IID987 - 10, // IID988 - 10, // IID989 - 10, // IID990 - 10, // IID991 - 10, // IID992 - 10, // IID993 - 10, // IID994 - 10, // IID995 - 10, // IID996 - 10, // IID997 - 10, // IID998 -#endif // _LP64 - 8, // IID999 -#ifdef _LP64 - 9, // IID1000 - 9, // IID1001 - 9, // IID1002 - 9, // IID1003 - 9, // IID1004 - 9, // IID1005 - 9, // IID1006 - 9, // IID1007 - 9, // IID1008 - 8, // IID1009 - 8, // IID1010 - 9, // IID1011 - 8, // IID1012 - 9, // IID1013 - 9, // IID1014 - 8, // IID1015 - 9, // IID1016 - 8, // IID1017 - 8, // IID1018 - 9, // IID1019 - 8, // IID1020 - 9, // IID1021 - 9, // IID1022 - 9, // IID1023 - 9, // IID1024 - 9, // IID1025 -#endif // _LP64 - 8, // IID1026 - 8, // IID1027 -#ifdef _LP64 - 7, // IID1028 - 9, // IID1029 - 9, // IID1030 - 8, // IID1031 - 9, // IID1032 - 9, // IID1033 - 8, // IID1034 - 9, // IID1035 - 10, // IID1036 - 10, // IID1037 - 10, // IID1038 - 10, // IID1039 - 10, // IID1040 - 10, // IID1041 - 10, // IID1042 - 10, // IID1043 - 10, // IID1044 - 9, // IID1045 - 10, // IID1046 - 9, // IID1047 - 9, // IID1048 - 10, // IID1049 - 9, // IID1050 - 10, // IID1051 - 10, // IID1052 - 8, // IID1053 - 8, // IID1054 - 9, // IID1055 - 9, // IID1056 - 9, // IID1057 - 9, // IID1058 - 8, // IID1059 - 9, // IID1060 - 9, // IID1061 - 9, // IID1062 - 10, // IID1063 - 10, // IID1064 - 10, // IID1065 - 10, // IID1066 - 10, // IID1067 - 10, // IID1068 - 10, // IID1069 - 10, // IID1070 - 10, // IID1071 - 9, // IID1072 - 10, // IID1073 - 9, // IID1074 - 10, // IID1075 - 10, // IID1076 - 10, // IID1077 - 10, // IID1078 - 10, // IID1079 - 11, // IID1080 - 10, // IID1081 - 12, // IID1082 - 12, // IID1083 - 12, // IID1084 - 12, // IID1085 - 12, // IID1086 - 12, // IID1087 - 11, // IID1088 - 12, // IID1089 - 13, // IID1090 - 13, // IID1091 - 13, // IID1092 - 13, // IID1093 - 13, // IID1094 - 13, // IID1095 - 13, // IID1096 - 13, // IID1097 - 12, // IID1098 - 13, // IID1099 - 12, // IID1100 - 13, // IID1101 - 13, // IID1102 - 13, // IID1103 - 13, // IID1104 - 13, // IID1105 - 13, // IID1106 - 11, // IID1107 - 11, // IID1108 - 12, // IID1109 - 12, // IID1110 - 12, // IID1111 - 12, // IID1112 - 11, // IID1113 - 12, // IID1114 - 12, // IID1115 - 11, // IID1116 - 13, // IID1117 - 12, // IID1118 - 13, // IID1119 - 13, // IID1120 - 13, // IID1121 - 13, // IID1122 - 12, // IID1123 - 13, // IID1124 - 13, // IID1125 - 13, // IID1126 - 13, // IID1127 - 13, // IID1128 - 13, // IID1129 - 13, // IID1130 - 12, // IID1131 - 12, // IID1132 - 13, // IID1133 - 11, // IID1134 - 11, // IID1135 - 12, // IID1136 - 12, // IID1137 - 12, // IID1138 - 12, // IID1139 - 12, // IID1140 - 12, // IID1141 - 11, // IID1142 - 12, // IID1143 - 13, // IID1144 - 13, // IID1145 - 13, // IID1146 - 13, // IID1147 - 13, // IID1148 - 13, // IID1149 - 13, // IID1150 - 13, // IID1151 - 13, // IID1152 - 13, // IID1153 - 13, // IID1154 - 13, // IID1155 - 13, // IID1156 - 13, // IID1157 - 13, // IID1158 - 13, // IID1159 - 12, // IID1160 - 11, // IID1161 - 11, // IID1162 - 12, // IID1163 - 12, // IID1164 - 12, // IID1165 - 11, // IID1166 - 12, // IID1167 - 12, // IID1168 - 12, // IID1169 - 12, // IID1170 - 13, // IID1171 - 13, // IID1172 - 13, // IID1173 - 12, // IID1174 - 13, // IID1175 - 13, // IID1176 - 12, // IID1177 - 13, // IID1178 - 13, // IID1179 - 12, // IID1180 - 13, // IID1181 - 12, // IID1182 - 13, // IID1183 - 13, // IID1184 - 13, // IID1185 - 13, // IID1186 - 13, // IID1187 - 10, // IID1188 - 10, // IID1189 - 12, // IID1190 - 12, // IID1191 - 11, // IID1192 - 11, // IID1193 - 12, // IID1194 - 12, // IID1195 - 12, // IID1196 - 12, // IID1197 - 13, // IID1198 - 13, // IID1199 - 13, // IID1200 - 13, // IID1201 - 13, // IID1202 - 13, // IID1203 - 13, // IID1204 - 12, // IID1205 - 13, // IID1206 - 12, // IID1207 - 13, // IID1208 - 13, // IID1209 - 12, // IID1210 - 13, // IID1211 - 13, // IID1212 - 13, // IID1213 - 13, // IID1214 - 11, // IID1215 - 11, // IID1216 - 12, // IID1217 - 12, // IID1218 - 12, // IID1219 - 12, // IID1220 - 12, // IID1221 - 12, // IID1222 - 12, // IID1223 - 12, // IID1224 - 13, // IID1225 - 13, // IID1226 - 13, // IID1227 - 13, // IID1228 - 12, // IID1229 - 13, // IID1230 - 13, // IID1231 - 13, // IID1232 - 13, // IID1233 - 13, // IID1234 - 13, // IID1235 - 13, // IID1236 - 13, // IID1237 - 13, // IID1238 - 13, // IID1239 - 13, // IID1240 - 13, // IID1241 -#endif // _LP64 - 8, // IID1242 - 8, // IID1243 -#ifdef _LP64 - 9, // IID1244 - 9, // IID1245 - 9, // IID1246 - 9, // IID1247 - 9, // IID1248 - 9, // IID1249 - 9, // IID1250 - 9, // IID1251 - 10, // IID1252 - 9, // IID1253 - 10, // IID1254 - 10, // IID1255 - 10, // IID1256 - 10, // IID1257 - 10, // IID1258 - 10, // IID1259 - 10, // IID1260 - 9, // IID1261 - 10, // IID1262 - 10, // IID1263 - 9, // IID1264 - 10, // IID1265 - 10, // IID1266 - 10, // IID1267 - 9, // IID1268 - 7, // IID1269 - 7, // IID1270 - 9, // IID1271 - 9, // IID1272 - 9, // IID1273 - 9, // IID1274 - 9, // IID1275 - 9, // IID1276 - 9, // IID1277 - 8, // IID1278 - 10, // IID1279 - 10, // IID1280 - 10, // IID1281 - 10, // IID1282 - 10, // IID1283 - 10, // IID1284 - 10, // IID1285 - 10, // IID1286 - 9, // IID1287 - 10, // IID1288 - 10, // IID1289 - 9, // IID1290 - 10, // IID1291 - 10, // IID1292 - 10, // IID1293 - 10, // IID1294 - 10, // IID1295 - 11, // IID1296 - 10, // IID1297 - 12, // IID1298 - 12, // IID1299 - 12, // IID1300 - 12, // IID1301 - 12, // IID1302 - 12, // IID1303 - 12, // IID1304 - 12, // IID1305 - 13, // IID1306 - 13, // IID1307 - 13, // IID1308 - 13, // IID1309 - 13, // IID1310 - 13, // IID1311 - 12, // IID1312 - 13, // IID1313 - 13, // IID1314 - 13, // IID1315 - 12, // IID1316 - 13, // IID1317 - 13, // IID1318 - 13, // IID1319 - 13, // IID1320 - 13, // IID1321 - 13, // IID1322 - 11, // IID1323 - 11, // IID1324 - 12, // IID1325 - 12, // IID1326 - 11, // IID1327 - 12, // IID1328 - 12, // IID1329 - 12, // IID1330 - 12, // IID1331 - 12, // IID1332 - 13, // IID1333 - 13, // IID1334 - 13, // IID1335 - 13, // IID1336 - 13, // IID1337 - 13, // IID1338 - 13, // IID1339 - 12, // IID1340 - 12, // IID1341 - 13, // IID1342 - 13, // IID1343 - 13, // IID1344 - 13, // IID1345 - 13, // IID1346 - 13, // IID1347 - 13, // IID1348 - 13, // IID1349 - 11, // IID1350 - 11, // IID1351 - 12, // IID1352 - 12, // IID1353 - 12, // IID1354 - 11, // IID1355 - 12, // IID1356 - 12, // IID1357 - 12, // IID1358 - 12, // IID1359 - 13, // IID1360 - 13, // IID1361 - 12, // IID1362 - 13, // IID1363 - 12, // IID1364 - 13, // IID1365 - 12, // IID1366 - 12, // IID1367 - 13, // IID1368 - 12, // IID1369 - 13, // IID1370 - 13, // IID1371 - 12, // IID1372 - 13, // IID1373 - 13, // IID1374 - 13, // IID1375 - 13, // IID1376 - 11, // IID1377 - 11, // IID1378 - 12, // IID1379 - 12, // IID1380 - 12, // IID1381 - 12, // IID1382 - 12, // IID1383 - 12, // IID1384 - 12, // IID1385 - 11, // IID1386 - 13, // IID1387 - 13, // IID1388 - 12, // IID1389 - 13, // IID1390 - 12, // IID1391 - 13, // IID1392 - 13, // IID1393 - 13, // IID1394 - 13, // IID1395 - 12, // IID1396 - 13, // IID1397 - 13, // IID1398 - 12, // IID1399 - 13, // IID1400 - 13, // IID1401 - 13, // IID1402 - 13, // IID1403 - 11, // IID1404 - 11, // IID1405 - 12, // IID1406 - 11, // IID1407 - 11, // IID1408 - 12, // IID1409 - 12, // IID1410 - 12, // IID1411 - 12, // IID1412 - 12, // IID1413 - 13, // IID1414 - 13, // IID1415 - 13, // IID1416 - 13, // IID1417 - 13, // IID1418 - 13, // IID1419 - 12, // IID1420 - 13, // IID1421 - 13, // IID1422 - 13, // IID1423 - 12, // IID1424 - 13, // IID1425 - 12, // IID1426 - 13, // IID1427 - 12, // IID1428 - 13, // IID1429 - 13, // IID1430 - 11, // IID1431 - 11, // IID1432 - 12, // IID1433 - 12, // IID1434 - 12, // IID1435 - 12, // IID1436 - 12, // IID1437 - 12, // IID1438 - 12, // IID1439 - 11, // IID1440 - 13, // IID1441 - 13, // IID1442 - 13, // IID1443 - 13, // IID1444 - 13, // IID1445 - 13, // IID1446 - 13, // IID1447 - 13, // IID1448 - 12, // IID1449 - 13, // IID1450 - 13, // IID1451 - 12, // IID1452 - 13, // IID1453 - 13, // IID1454 - 13, // IID1455 - 13, // IID1456 - 13, // IID1457 -#endif // _LP64 - 8, // IID1458 - 8, // IID1459 -#ifdef _LP64 - 9, // IID1460 - 9, // IID1461 - 9, // IID1462 - 9, // IID1463 - 9, // IID1464 - 9, // IID1465 - 9, // IID1466 - 8, // IID1467 - 8, // IID1468 - 10, // IID1469 - 10, // IID1470 - 10, // IID1471 - 10, // IID1472 - 10, // IID1473 - 10, // IID1474 - 10, // IID1475 - 10, // IID1476 - 10, // IID1477 - 9, // IID1478 - 9, // IID1479 - 10, // IID1480 - 10, // IID1481 - 10, // IID1482 - 9, // IID1483 - 10, // IID1484 - 8, // IID1485 - 8, // IID1486 - 9, // IID1487 - 8, // IID1488 - 9, // IID1489 - 9, // IID1490 - 8, // IID1491 - 9, // IID1492 - 8, // IID1493 - 9, // IID1494 - 8, // IID1495 - 10, // IID1496 - 10, // IID1497 - 10, // IID1498 - 10, // IID1499 - 10, // IID1500 - 9, // IID1501 - 10, // IID1502 - 10, // IID1503 - 10, // IID1504 - 10, // IID1505 - 10, // IID1506 - 10, // IID1507 - 10, // IID1508 - 10, // IID1509 - 10, // IID1510 - 10, // IID1511 - 7, // IID1512 - 8, // IID1513 - 9, // IID1514 - 9, // IID1515 - 9, // IID1516 - 8, // IID1517 - 8, // IID1518 - 9, // IID1519 - 9, // IID1520 - 9, // IID1521 - 8, // IID1522 - 10, // IID1523 - 10, // IID1524 - 10, // IID1525 - 10, // IID1526 - 10, // IID1527 - 9, // IID1528 - 10, // IID1529 - 9, // IID1530 - 10, // IID1531 - 10, // IID1532 - 10, // IID1533 - 10, // IID1534 - 10, // IID1535 - 10, // IID1536 - 10, // IID1537 - 10, // IID1538 - 8, // IID1539 - 8, // IID1540 - 9, // IID1541 - 9, // IID1542 - 9, // IID1543 - 8, // IID1544 - 8, // IID1545 - 9, // IID1546 - 9, // IID1547 - 9, // IID1548 - 10, // IID1549 - 10, // IID1550 - 10, // IID1551 - 9, // IID1552 - 9, // IID1553 - 10, // IID1554 - 10, // IID1555 - 10, // IID1556 - 10, // IID1557 - 9, // IID1558 - 10, // IID1559 - 10, // IID1560 - 10, // IID1561 - 10, // IID1562 - 10, // IID1563 - 9, // IID1564 - 10, // IID1565 -#endif // _LP64 - 10, // IID1566 - 10, // IID1567 -#ifdef _LP64 - 11, // IID1568 - 10, // IID1569 - 10, // IID1570 - 11, // IID1571 - 11, // IID1572 - 11, // IID1573 - 11, // IID1574 - 11, // IID1575 - 12, // IID1576 - 12, // IID1577 - 12, // IID1578 - 12, // IID1579 - 11, // IID1580 - 12, // IID1581 - 12, // IID1582 - 12, // IID1583 - 12, // IID1584 - 12, // IID1585 - 12, // IID1586 - 12, // IID1587 - 11, // IID1588 - 12, // IID1589 - 12, // IID1590 - 12, // IID1591 - 12, // IID1592 - 10, // IID1593 - 10, // IID1594 - 11, // IID1595 - 11, // IID1596 - 11, // IID1597 - 11, // IID1598 - 11, // IID1599 - 11, // IID1600 - 11, // IID1601 - 11, // IID1602 - 12, // IID1603 - 12, // IID1604 - 11, // IID1605 - 11, // IID1606 - 12, // IID1607 - 12, // IID1608 - 12, // IID1609 - 11, // IID1610 - 12, // IID1611 - 12, // IID1612 - 12, // IID1613 - 12, // IID1614 - 12, // IID1615 - 12, // IID1616 - 12, // IID1617 - 11, // IID1618 - 12, // IID1619 - 10, // IID1620 - 9, // IID1621 - 11, // IID1622 - 10, // IID1623 - 11, // IID1624 - 11, // IID1625 - 11, // IID1626 - 11, // IID1627 - 11, // IID1628 - 10, // IID1629 - 12, // IID1630 - 12, // IID1631 - 12, // IID1632 - 12, // IID1633 - 12, // IID1634 - 12, // IID1635 - 11, // IID1636 - 12, // IID1637 - 12, // IID1638 - 12, // IID1639 - 12, // IID1640 - 12, // IID1641 - 11, // IID1642 - 12, // IID1643 - 12, // IID1644 - 11, // IID1645 - 11, // IID1646 - 10, // IID1647 - 10, // IID1648 - 9, // IID1649 - 11, // IID1650 - 11, // IID1651 - 10, // IID1652 - 11, // IID1653 - 11, // IID1654 - 10, // IID1655 - 11, // IID1656 - 12, // IID1657 - 11, // IID1658 - 11, // IID1659 - 12, // IID1660 - 12, // IID1661 - 12, // IID1662 - 12, // IID1663 - 12, // IID1664 - 12, // IID1665 - 12, // IID1666 - 12, // IID1667 - 12, // IID1668 - 12, // IID1669 - 12, // IID1670 - 12, // IID1671 - 12, // IID1672 - 12, // IID1673 -#endif // _LP64 - 8, // IID1674 - 8, // IID1675 -#ifdef _LP64 - 9, // IID1676 - 9, // IID1677 - 9, // IID1678 - 9, // IID1679 - 8, // IID1680 - 9, // IID1681 - 9, // IID1682 - 9, // IID1683 - 10, // IID1684 - 10, // IID1685 - 10, // IID1686 - 10, // IID1687 - 9, // IID1688 - 10, // IID1689 - 10, // IID1690 - 10, // IID1691 - 9, // IID1692 - 9, // IID1693 - 10, // IID1694 - 10, // IID1695 - 10, // IID1696 - 10, // IID1697 - 9, // IID1698 - 10, // IID1699 - 10, // IID1700 - 8, // IID1701 - 8, // IID1702 - 9, // IID1703 - 9, // IID1704 - 8, // IID1705 - 9, // IID1706 - 8, // IID1707 - 9, // IID1708 - 9, // IID1709 - 8, // IID1710 - 10, // IID1711 - 10, // IID1712 - 10, // IID1713 - 10, // IID1714 - 9, // IID1715 - 10, // IID1716 - 10, // IID1717 - 10, // IID1718 - 10, // IID1719 - 10, // IID1720 - 9, // IID1721 - 10, // IID1722 - 10, // IID1723 - 10, // IID1724 - 10, // IID1725 - 9, // IID1726 - 10, // IID1727 - 10, // IID1728 - 11, // IID1729 - 12, // IID1730 - 11, // IID1731 - 12, // IID1732 - 12, // IID1733 - 12, // IID1734 - 12, // IID1735 - 12, // IID1736 - 12, // IID1737 - 13, // IID1738 - 13, // IID1739 - 13, // IID1740 - 13, // IID1741 - 12, // IID1742 - 13, // IID1743 - 13, // IID1744 - 12, // IID1745 - 13, // IID1746 - 13, // IID1747 - 13, // IID1748 - 13, // IID1749 - 13, // IID1750 - 13, // IID1751 - 13, // IID1752 - 13, // IID1753 - 13, // IID1754 - 11, // IID1755 - 11, // IID1756 - 10, // IID1757 - 11, // IID1758 - 12, // IID1759 - 12, // IID1760 - 12, // IID1761 - 12, // IID1762 - 11, // IID1763 - 12, // IID1764 - 13, // IID1765 - 13, // IID1766 - 12, // IID1767 - 12, // IID1768 - 13, // IID1769 - 13, // IID1770 - 13, // IID1771 - 13, // IID1772 - 13, // IID1773 - 13, // IID1774 - 13, // IID1775 - 12, // IID1776 - 12, // IID1777 - 13, // IID1778 - 13, // IID1779 - 13, // IID1780 - 13, // IID1781 - 11, // IID1782 - 11, // IID1783 - 12, // IID1784 - 11, // IID1785 - 12, // IID1786 - 12, // IID1787 - 11, // IID1788 - 12, // IID1789 - 11, // IID1790 - 11, // IID1791 - 13, // IID1792 - 12, // IID1793 - 13, // IID1794 - 13, // IID1795 - 13, // IID1796 - 13, // IID1797 - 13, // IID1798 - 13, // IID1799 - 13, // IID1800 - 13, // IID1801 - 12, // IID1802 - 13, // IID1803 - 12, // IID1804 - 13, // IID1805 - 13, // IID1806 - 13, // IID1807 - 12, // IID1808 - 11, // IID1809 - 11, // IID1810 - 10, // IID1811 - 12, // IID1812 - 12, // IID1813 - 12, // IID1814 - 12, // IID1815 - 12, // IID1816 - 12, // IID1817 - 12, // IID1818 - 13, // IID1819 - 13, // IID1820 - 13, // IID1821 - 13, // IID1822 - 13, // IID1823 - 13, // IID1824 - 13, // IID1825 - 13, // IID1826 - 12, // IID1827 - 13, // IID1828 - 13, // IID1829 - 13, // IID1830 - 13, // IID1831 - 13, // IID1832 - 13, // IID1833 - 13, // IID1834 - 13, // IID1835 - 11, // IID1836 - 11, // IID1837 - 12, // IID1838 - 12, // IID1839 - 12, // IID1840 - 12, // IID1841 - 11, // IID1842 - 12, // IID1843 - 12, // IID1844 - 12, // IID1845 - 13, // IID1846 - 13, // IID1847 - 13, // IID1848 - 13, // IID1849 - 13, // IID1850 - 13, // IID1851 - 12, // IID1852 - 13, // IID1853 - 13, // IID1854 - 13, // IID1855 - 13, // IID1856 - 12, // IID1857 - 13, // IID1858 - 13, // IID1859 - 13, // IID1860 - 13, // IID1861 - 13, // IID1862 - 10, // IID1863 - 11, // IID1864 - 12, // IID1865 - 11, // IID1866 - 11, // IID1867 - 11, // IID1868 - 12, // IID1869 - 12, // IID1870 - 12, // IID1871 - 12, // IID1872 - 13, // IID1873 - 13, // IID1874 - 13, // IID1875 - 13, // IID1876 - 13, // IID1877 - 13, // IID1878 - 13, // IID1879 - 13, // IID1880 - 13, // IID1881 - 13, // IID1882 - 12, // IID1883 - 13, // IID1884 - 13, // IID1885 - 13, // IID1886 - 12, // IID1887 - 13, // IID1888 - 13, // IID1889 -#endif // _LP64 - 8, // IID1890 - 8, // IID1891 -#ifdef _LP64 - 9, // IID1892 - 9, // IID1893 - 9, // IID1894 - 9, // IID1895 - 9, // IID1896 - 9, // IID1897 - 9, // IID1898 - 9, // IID1899 - 10, // IID1900 - 10, // IID1901 - 10, // IID1902 - 10, // IID1903 - 10, // IID1904 - 10, // IID1905 - 10, // IID1906 - 10, // IID1907 - 10, // IID1908 - 10, // IID1909 - 10, // IID1910 - 10, // IID1911 - 10, // IID1912 - 10, // IID1913 - 10, // IID1914 - 9, // IID1915 - 10, // IID1916 - 7, // IID1917 - 7, // IID1918 - 7, // IID1919 - 8, // IID1920 - 9, // IID1921 - 9, // IID1922 - 9, // IID1923 - 9, // IID1924 - 9, // IID1925 - 9, // IID1926 - 10, // IID1927 - 10, // IID1928 - 9, // IID1929 - 10, // IID1930 - 9, // IID1931 - 10, // IID1932 - 9, // IID1933 - 10, // IID1934 - 10, // IID1935 - 9, // IID1936 - 10, // IID1937 - 10, // IID1938 - 10, // IID1939 - 10, // IID1940 - 10, // IID1941 - 10, // IID1942 - 10, // IID1943 - 8, // IID1944 - 8, // IID1945 - 9, // IID1946 - 9, // IID1947 - 9, // IID1948 - 8, // IID1949 - 9, // IID1950 - 9, // IID1951 - 9, // IID1952 - 9, // IID1953 - 10, // IID1954 - 10, // IID1955 - 10, // IID1956 - 10, // IID1957 - 10, // IID1958 - 10, // IID1959 - 10, // IID1960 - 10, // IID1961 - 10, // IID1962 - 9, // IID1963 - 9, // IID1964 - 10, // IID1965 - 10, // IID1966 - 10, // IID1967 - 10, // IID1968 - 9, // IID1969 - 10, // IID1970 - 8, // IID1971 - 8, // IID1972 - 9, // IID1973 - 9, // IID1974 - 9, // IID1975 - 9, // IID1976 - 9, // IID1977 - 9, // IID1978 - 9, // IID1979 - 9, // IID1980 - 10, // IID1981 - 10, // IID1982 - 10, // IID1983 - 10, // IID1984 - 10, // IID1985 - 10, // IID1986 - 10, // IID1987 - 10, // IID1988 - 10, // IID1989 - 10, // IID1990 - 10, // IID1991 - 10, // IID1992 - 10, // IID1993 - 10, // IID1994 - 10, // IID1995 - 9, // IID1996 - 10, // IID1997 -#endif // _LP64 - 9, // IID1998 - 10, // IID1999 -#ifdef _LP64 - 9, // IID2000 - 11, // IID2001 - 11, // IID2002 - 11, // IID2003 - 11, // IID2004 - 11, // IID2005 - 11, // IID2006 - 11, // IID2007 - 10, // IID2008 - 12, // IID2009 - 12, // IID2010 - 12, // IID2011 - 12, // IID2012 - 12, // IID2013 - 12, // IID2014 - 12, // IID2015 - 12, // IID2016 - 12, // IID2017 - 11, // IID2018 - 12, // IID2019 - 12, // IID2020 - 12, // IID2021 - 12, // IID2022 - 12, // IID2023 - 12, // IID2024 - 10, // IID2025 - 10, // IID2026 - 11, // IID2027 - 11, // IID2028 - 11, // IID2029 - 11, // IID2030 - 11, // IID2031 - 11, // IID2032 - 10, // IID2033 - 11, // IID2034 - 12, // IID2035 - 12, // IID2036 - 12, // IID2037 - 12, // IID2038 - 12, // IID2039 - 12, // IID2040 - 12, // IID2041 - 12, // IID2042 - 12, // IID2043 - 12, // IID2044 - 12, // IID2045 - 12, // IID2046 - 12, // IID2047 - 12, // IID2048 - 12, // IID2049 - 12, // IID2050 - 12, // IID2051 - 10, // IID2052 - 10, // IID2053 - 11, // IID2054 - 11, // IID2055 - 11, // IID2056 - 10, // IID2057 - 11, // IID2058 - 11, // IID2059 - 11, // IID2060 - 11, // IID2061 - 12, // IID2062 - 12, // IID2063 - 11, // IID2064 - 12, // IID2065 - 11, // IID2066 - 12, // IID2067 - 12, // IID2068 - 12, // IID2069 - 12, // IID2070 - 12, // IID2071 - 11, // IID2072 - 12, // IID2073 - 11, // IID2074 - 12, // IID2075 - 12, // IID2076 - 12, // IID2077 - 12, // IID2078 - 9, // IID2079 - 10, // IID2080 - 11, // IID2081 - 10, // IID2082 - 11, // IID2083 - 11, // IID2084 - 10, // IID2085 - 11, // IID2086 - 11, // IID2087 - 11, // IID2088 - 12, // IID2089 - 12, // IID2090 - 11, // IID2091 - 11, // IID2092 - 12, // IID2093 - 12, // IID2094 - 12, // IID2095 - 12, // IID2096 - 12, // IID2097 - 12, // IID2098 - 12, // IID2099 - 12, // IID2100 - 12, // IID2101 - 12, // IID2102 - 11, // IID2103 - 12, // IID2104 - 11, // IID2105 -#endif // _LP64 - 8, // IID2106 - 8, // IID2107 -#ifdef _LP64 - 9, // IID2108 - 9, // IID2109 - 9, // IID2110 - 9, // IID2111 - 9, // IID2112 - 9, // IID2113 - 8, // IID2114 - 9, // IID2115 - 10, // IID2116 - 10, // IID2117 - 10, // IID2118 - 10, // IID2119 - 9, // IID2120 - 10, // IID2121 - 10, // IID2122 - 9, // IID2123 - 10, // IID2124 - 9, // IID2125 - 10, // IID2126 - 10, // IID2127 - 10, // IID2128 - 10, // IID2129 - 10, // IID2130 - 10, // IID2131 - 9, // IID2132 - 8, // IID2133 - 8, // IID2134 - 7, // IID2135 - 8, // IID2136 - 8, // IID2137 - 9, // IID2138 - 9, // IID2139 - 9, // IID2140 - 9, // IID2141 - 9, // IID2142 - 10, // IID2143 - 10, // IID2144 - 10, // IID2145 - 9, // IID2146 - 10, // IID2147 - 10, // IID2148 - 9, // IID2149 - 10, // IID2150 - 10, // IID2151 - 10, // IID2152 - 10, // IID2153 - 10, // IID2154 - 10, // IID2155 - 10, // IID2156 - 10, // IID2157 - 10, // IID2158 - 10, // IID2159 - 11, // IID2160 - 11, // IID2161 - 12, // IID2162 - 12, // IID2163 - 12, // IID2164 - 11, // IID2165 - 12, // IID2166 - 12, // IID2167 - 11, // IID2168 - 12, // IID2169 - 13, // IID2170 - 13, // IID2171 - 13, // IID2172 - 13, // IID2173 - 13, // IID2174 - 13, // IID2175 - 13, // IID2176 - 13, // IID2177 - 12, // IID2178 - 13, // IID2179 - 13, // IID2180 - 13, // IID2181 - 13, // IID2182 - 13, // IID2183 - 12, // IID2184 - 12, // IID2185 - 13, // IID2186 - 11, // IID2187 - 11, // IID2188 - 12, // IID2189 - 12, // IID2190 - 11, // IID2191 - 11, // IID2192 - 12, // IID2193 - 12, // IID2194 - 12, // IID2195 - 11, // IID2196 - 11, // IID2197 - 13, // IID2198 - 13, // IID2199 - 12, // IID2200 - 13, // IID2201 - 13, // IID2202 - 12, // IID2203 - 13, // IID2204 - 13, // IID2205 - 13, // IID2206 - 13, // IID2207 - 12, // IID2208 - 13, // IID2209 - 13, // IID2210 - 13, // IID2211 - 13, // IID2212 - 12, // IID2213 - 11, // IID2214 - 11, // IID2215 - 12, // IID2216 - 12, // IID2217 - 12, // IID2218 - 12, // IID2219 - 12, // IID2220 - 12, // IID2221 - 12, // IID2222 - 12, // IID2223 - 13, // IID2224 - 13, // IID2225 - 12, // IID2226 - 13, // IID2227 - 13, // IID2228 - 13, // IID2229 - 12, // IID2230 - 13, // IID2231 - 13, // IID2232 - 13, // IID2233 - 12, // IID2234 - 13, // IID2235 - 13, // IID2236 - 13, // IID2237 - 13, // IID2238 - 12, // IID2239 - 13, // IID2240 - 11, // IID2241 - 11, // IID2242 - 10, // IID2243 - 12, // IID2244 - 11, // IID2245 - 12, // IID2246 - 12, // IID2247 - 12, // IID2248 - 12, // IID2249 - 12, // IID2250 - 11, // IID2251 - 13, // IID2252 - 13, // IID2253 - 13, // IID2254 - 13, // IID2255 - 13, // IID2256 - 13, // IID2257 - 13, // IID2258 - 13, // IID2259 - 13, // IID2260 - 13, // IID2261 - 13, // IID2262 - 13, // IID2263 - 13, // IID2264 - 12, // IID2265 - 13, // IID2266 - 13, // IID2267 - 11, // IID2268 - 10, // IID2269 - 12, // IID2270 - 12, // IID2271 - 12, // IID2272 - 12, // IID2273 - 12, // IID2274 - 12, // IID2275 - 12, // IID2276 - 12, // IID2277 - 13, // IID2278 - 13, // IID2279 - 13, // IID2280 - 13, // IID2281 - 13, // IID2282 - 13, // IID2283 - 13, // IID2284 - 13, // IID2285 - 13, // IID2286 - 12, // IID2287 - 13, // IID2288 - 13, // IID2289 - 13, // IID2290 - 13, // IID2291 - 13, // IID2292 - 12, // IID2293 - 13, // IID2294 - 11, // IID2295 - 11, // IID2296 - 10, // IID2297 - 12, // IID2298 - 12, // IID2299 - 12, // IID2300 - 12, // IID2301 - 12, // IID2302 - 11, // IID2303 - 12, // IID2304 - 13, // IID2305 - 13, // IID2306 - 13, // IID2307 - 13, // IID2308 - 12, // IID2309 - 13, // IID2310 - 12, // IID2311 - 13, // IID2312 - 13, // IID2313 - 13, // IID2314 - 13, // IID2315 - 13, // IID2316 - 13, // IID2317 - 13, // IID2318 - 13, // IID2319 - 13, // IID2320 - 12, // IID2321 -#endif // _LP64 - 6, // IID2322 - 7, // IID2323 -#ifdef _LP64 - 8, // IID2324 - 8, // IID2325 - 8, // IID2326 - 8, // IID2327 - 8, // IID2328 - 8, // IID2329 - 8, // IID2330 - 8, // IID2331 - 9, // IID2332 - 9, // IID2333 - 8, // IID2334 - 9, // IID2335 - 9, // IID2336 - 9, // IID2337 - 9, // IID2338 - 9, // IID2339 - 9, // IID2340 - 9, // IID2341 - 9, // IID2342 - 9, // IID2343 - 9, // IID2344 - 9, // IID2345 - 9, // IID2346 - 9, // IID2347 - 9, // IID2348 - 7, // IID2349 - 7, // IID2350 - 7, // IID2351 - 9, // IID2352 - 9, // IID2353 - 9, // IID2354 - 8, // IID2355 - 9, // IID2356 - 9, // IID2357 - 9, // IID2358 - 10, // IID2359 - 10, // IID2360 - 10, // IID2361 - 10, // IID2362 - 9, // IID2363 - 10, // IID2364 - 10, // IID2365 - 10, // IID2366 - 10, // IID2367 - 9, // IID2368 - 10, // IID2369 - 10, // IID2370 - 10, // IID2371 - 10, // IID2372 - 10, // IID2373 - 9, // IID2374 - 10, // IID2375 - 8, // IID2376 - 8, // IID2377 - 9, // IID2378 - 9, // IID2379 - 8, // IID2380 - 9, // IID2381 - 9, // IID2382 - 9, // IID2383 - 8, // IID2384 - 9, // IID2385 - 10, // IID2386 - 9, // IID2387 - 9, // IID2388 - 10, // IID2389 - 10, // IID2390 - 10, // IID2391 - 10, // IID2392 - 9, // IID2393 - 10, // IID2394 - 10, // IID2395 - 10, // IID2396 - 10, // IID2397 - 10, // IID2398 - 10, // IID2399 - 10, // IID2400 - 10, // IID2401 - 10, // IID2402 - 8, // IID2403 - 8, // IID2404 - 9, // IID2405 - 9, // IID2406 - 9, // IID2407 - 9, // IID2408 - 8, // IID2409 - 9, // IID2410 - 9, // IID2411 - 8, // IID2412 - 10, // IID2413 - 10, // IID2414 - 9, // IID2415 - 10, // IID2416 - 9, // IID2417 - 10, // IID2418 - 9, // IID2419 - 10, // IID2420 - 10, // IID2421 - 10, // IID2422 - 10, // IID2423 - 10, // IID2424 - 10, // IID2425 - 10, // IID2426 - 10, // IID2427 - 9, // IID2428 - 9, // IID2429 - 7, // IID2430 - 7, // IID2431 - 9, // IID2432 - 8, // IID2433 - 9, // IID2434 - 9, // IID2435 - 9, // IID2436 - 9, // IID2437 - 8, // IID2438 - 9, // IID2439 - 10, // IID2440 - 10, // IID2441 - 10, // IID2442 - 10, // IID2443 - 9, // IID2444 - 10, // IID2445 - 9, // IID2446 - 9, // IID2447 - 10, // IID2448 - 9, // IID2449 - 9, // IID2450 - 10, // IID2451 - 10, // IID2452 - 10, // IID2453 - 10, // IID2454 - 10, // IID2455 - 9, // IID2456 -#endif // _LP64 - 6, // IID2457 - 7, // IID2458 -#ifdef _LP64 - 6, // IID2459 - 8, // IID2460 - 8, // IID2461 - 8, // IID2462 - 7, // IID2463 - 8, // IID2464 - 8, // IID2465 - 8, // IID2466 - 9, // IID2467 - 8, // IID2468 - 9, // IID2469 - 8, // IID2470 - 9, // IID2471 - 9, // IID2472 - 9, // IID2473 - 9, // IID2474 - 9, // IID2475 - 8, // IID2476 - 9, // IID2477 - 9, // IID2478 - 9, // IID2479 - 9, // IID2480 - 8, // IID2481 - 9, // IID2482 - 9, // IID2483 - 8, // IID2484 - 8, // IID2485 - 9, // IID2486 - 8, // IID2487 - 9, // IID2488 - 9, // IID2489 - 9, // IID2490 - 9, // IID2491 - 9, // IID2492 - 9, // IID2493 - 10, // IID2494 - 10, // IID2495 - 10, // IID2496 - 10, // IID2497 - 10, // IID2498 - 10, // IID2499 - 10, // IID2500 - 10, // IID2501 - 10, // IID2502 - 10, // IID2503 - 10, // IID2504 - 10, // IID2505 - 10, // IID2506 - 10, // IID2507 - 10, // IID2508 - 10, // IID2509 - 10, // IID2510 - 8, // IID2511 - 7, // IID2512 - 7, // IID2513 - 9, // IID2514 - 9, // IID2515 - 9, // IID2516 - 9, // IID2517 - 9, // IID2518 - 9, // IID2519 - 8, // IID2520 - 10, // IID2521 - 10, // IID2522 - 10, // IID2523 - 9, // IID2524 - 10, // IID2525 - 10, // IID2526 - 10, // IID2527 - 10, // IID2528 - 10, // IID2529 - 10, // IID2530 - 10, // IID2531 - 10, // IID2532 - 9, // IID2533 - 10, // IID2534 - 10, // IID2535 - 9, // IID2536 - 10, // IID2537 - 8, // IID2538 - 8, // IID2539 - 9, // IID2540 - 9, // IID2541 - 9, // IID2542 - 9, // IID2543 - 9, // IID2544 - 9, // IID2545 - 9, // IID2546 - 9, // IID2547 - 10, // IID2548 - 10, // IID2549 - 9, // IID2550 - 10, // IID2551 - 9, // IID2552 - 10, // IID2553 - 10, // IID2554 - 10, // IID2555 - 9, // IID2556 - 9, // IID2557 - 10, // IID2558 - 10, // IID2559 - 9, // IID2560 - 10, // IID2561 - 10, // IID2562 - 10, // IID2563 - 10, // IID2564 - 8, // IID2565 - 8, // IID2566 - 7, // IID2567 - 9, // IID2568 - 9, // IID2569 - 9, // IID2570 - 8, // IID2571 - 9, // IID2572 - 9, // IID2573 - 9, // IID2574 - 10, // IID2575 - 9, // IID2576 - 10, // IID2577 - 10, // IID2578 - 9, // IID2579 - 10, // IID2580 - 10, // IID2581 - 10, // IID2582 - 10, // IID2583 - 10, // IID2584 - 10, // IID2585 - 10, // IID2586 - 10, // IID2587 - 10, // IID2588 - 10, // IID2589 - 10, // IID2590 - 9, // IID2591 -#endif // _LP64 - 7, // IID2592 - 8, // IID2593 -#ifdef _LP64 - 9, // IID2594 - 9, // IID2595 - 9, // IID2596 - 9, // IID2597 - 9, // IID2598 - 9, // IID2599 - 9, // IID2600 - 9, // IID2601 - 8, // IID2602 - 10, // IID2603 - 10, // IID2604 - 9, // IID2605 - 9, // IID2606 - 10, // IID2607 - 10, // IID2608 - 10, // IID2609 - 10, // IID2610 - 10, // IID2611 - 10, // IID2612 - 10, // IID2613 - 10, // IID2614 - 10, // IID2615 - 9, // IID2616 - 10, // IID2617 - 10, // IID2618 - 8, // IID2619 - 8, // IID2620 - 9, // IID2621 - 9, // IID2622 - 8, // IID2623 - 9, // IID2624 - 9, // IID2625 - 9, // IID2626 - 9, // IID2627 - 9, // IID2628 - 10, // IID2629 - 10, // IID2630 - 10, // IID2631 - 10, // IID2632 - 10, // IID2633 - 10, // IID2634 - 10, // IID2635 - 10, // IID2636 - 10, // IID2637 - 10, // IID2638 - 9, // IID2639 - 10, // IID2640 - 10, // IID2641 - 10, // IID2642 - 10, // IID2643 - 10, // IID2644 - 10, // IID2645 - 11, // IID2646 - 11, // IID2647 - 12, // IID2648 - 12, // IID2649 - 12, // IID2650 - 12, // IID2651 - 12, // IID2652 - 12, // IID2653 - 12, // IID2654 - 11, // IID2655 - 11, // IID2656 - 13, // IID2657 - 12, // IID2658 - 13, // IID2659 - 13, // IID2660 - 13, // IID2661 - 13, // IID2662 - 13, // IID2663 - 13, // IID2664 - 12, // IID2665 - 13, // IID2666 - 13, // IID2667 - 13, // IID2668 - 13, // IID2669 - 12, // IID2670 - 13, // IID2671 - 13, // IID2672 - 11, // IID2673 - 11, // IID2674 - 12, // IID2675 - 12, // IID2676 - 12, // IID2677 - 12, // IID2678 - 12, // IID2679 - 12, // IID2680 - 11, // IID2681 - 12, // IID2682 - 13, // IID2683 - 12, // IID2684 - 12, // IID2685 - 13, // IID2686 - 13, // IID2687 - 13, // IID2688 - 13, // IID2689 - 13, // IID2690 - 12, // IID2691 - 13, // IID2692 - 13, // IID2693 - 13, // IID2694 - 12, // IID2695 - 13, // IID2696 - 13, // IID2697 - 13, // IID2698 - 13, // IID2699 - 10, // IID2700 - 10, // IID2701 - 12, // IID2702 - 12, // IID2703 - 12, // IID2704 - 12, // IID2705 - 12, // IID2706 - 12, // IID2707 - 12, // IID2708 - 12, // IID2709 - 13, // IID2710 - 13, // IID2711 - 13, // IID2712 - 13, // IID2713 - 13, // IID2714 - 13, // IID2715 - 13, // IID2716 - 13, // IID2717 - 13, // IID2718 - 13, // IID2719 - 13, // IID2720 - 13, // IID2721 - 13, // IID2722 - 13, // IID2723 - 13, // IID2724 - 13, // IID2725 - 12, // IID2726 - 11, // IID2727 - 11, // IID2728 - 12, // IID2729 - 12, // IID2730 - 11, // IID2731 - 12, // IID2732 - 12, // IID2733 - 12, // IID2734 - 12, // IID2735 - 12, // IID2736 - 13, // IID2737 - 13, // IID2738 - 13, // IID2739 - 13, // IID2740 - 13, // IID2741 - 13, // IID2742 - 13, // IID2743 - 12, // IID2744 - 13, // IID2745 - 13, // IID2746 - 13, // IID2747 - 13, // IID2748 - 13, // IID2749 - 13, // IID2750 - 13, // IID2751 - 12, // IID2752 - 13, // IID2753 - 10, // IID2754 - 11, // IID2755 - 12, // IID2756 - 12, // IID2757 - 12, // IID2758 - 12, // IID2759 - 11, // IID2760 - 12, // IID2761 - 11, // IID2762 - 11, // IID2763 - 13, // IID2764 - 13, // IID2765 - 13, // IID2766 - 13, // IID2767 - 13, // IID2768 - 13, // IID2769 - 13, // IID2770 - 13, // IID2771 - 13, // IID2772 - 13, // IID2773 - 12, // IID2774 - 13, // IID2775 - 13, // IID2776 - 13, // IID2777 - 12, // IID2778 - 13, // IID2779 - 13, // IID2780 - 11, // IID2781 - 11, // IID2782 - 12, // IID2783 - 12, // IID2784 - 12, // IID2785 - 12, // IID2786 - 12, // IID2787 - 12, // IID2788 - 11, // IID2789 - 12, // IID2790 - 13, // IID2791 - 13, // IID2792 - 13, // IID2793 - 13, // IID2794 - 13, // IID2795 - 13, // IID2796 - 13, // IID2797 - 13, // IID2798 - 13, // IID2799 - 13, // IID2800 - 13, // IID2801 - 12, // IID2802 - 12, // IID2803 - 13, // IID2804 - 13, // IID2805 - 12, // IID2806 - 13, // IID2807 -#endif // _LP64 - 7, // IID2808 - 7, // IID2809 -#ifdef _LP64 - 8, // IID2810 - 8, // IID2811 - 8, // IID2812 - 8, // IID2813 - 8, // IID2814 - 8, // IID2815 - 8, // IID2816 - 7, // IID2817 - 9, // IID2818 - 9, // IID2819 - 8, // IID2820 - 9, // IID2821 - 8, // IID2822 - 9, // IID2823 - 9, // IID2824 - 9, // IID2825 - 9, // IID2826 - 8, // IID2827 - 9, // IID2828 - 9, // IID2829 - 9, // IID2830 - 9, // IID2831 - 9, // IID2832 - 9, // IID2833 - 9, // IID2834 - 8, // IID2835 - 8, // IID2836 - 9, // IID2837 - 8, // IID2838 - 9, // IID2839 - 8, // IID2840 - 9, // IID2841 - 9, // IID2842 - 9, // IID2843 - 9, // IID2844 - 10, // IID2845 - 10, // IID2846 - 10, // IID2847 - 9, // IID2848 - 9, // IID2849 - 10, // IID2850 - 10, // IID2851 - 10, // IID2852 - 9, // IID2853 - 10, // IID2854 - 10, // IID2855 - 10, // IID2856 - 10, // IID2857 - 10, // IID2858 - 9, // IID2859 - 9, // IID2860 - 9, // IID2861 - 8, // IID2862 - 8, // IID2863 - 9, // IID2864 - 9, // IID2865 - 9, // IID2866 - 9, // IID2867 - 9, // IID2868 - 9, // IID2869 - 9, // IID2870 - 9, // IID2871 - 10, // IID2872 - 10, // IID2873 - 10, // IID2874 - 10, // IID2875 - 10, // IID2876 - 10, // IID2877 - 9, // IID2878 - 9, // IID2879 - 9, // IID2880 - 10, // IID2881 - 10, // IID2882 - 9, // IID2883 - 10, // IID2884 - 10, // IID2885 - 10, // IID2886 - 9, // IID2887 - 10, // IID2888 - 8, // IID2889 - 8, // IID2890 - 9, // IID2891 - 9, // IID2892 - 9, // IID2893 - 9, // IID2894 - 9, // IID2895 - 9, // IID2896 - 9, // IID2897 - 9, // IID2898 - 8, // IID2899 - 10, // IID2900 - 10, // IID2901 - 10, // IID2902 - 10, // IID2903 - 10, // IID2904 - 10, // IID2905 - 10, // IID2906 - 10, // IID2907 - 10, // IID2908 - 9, // IID2909 - 10, // IID2910 - 9, // IID2911 - 10, // IID2912 - 10, // IID2913 - 10, // IID2914 - 9, // IID2915 - 8, // IID2916 - 8, // IID2917 - 9, // IID2918 - 8, // IID2919 - 9, // IID2920 - 9, // IID2921 - 9, // IID2922 - 9, // IID2923 - 8, // IID2924 - 8, // IID2925 - 10, // IID2926 - 10, // IID2927 - 10, // IID2928 - 10, // IID2929 - 10, // IID2930 - 10, // IID2931 - 10, // IID2932 - 10, // IID2933 - 9, // IID2934 - 10, // IID2935 - 9, // IID2936 - 10, // IID2937 - 10, // IID2938 - 10, // IID2939 - 10, // IID2940 - 10, // IID2941 - 10, // IID2942 -#endif // _LP64 - 7, // IID2943 - 8, // IID2944 -#ifdef _LP64 - 9, // IID2945 - 9, // IID2946 - 8, // IID2947 - 9, // IID2948 - 9, // IID2949 - 9, // IID2950 - 8, // IID2951 - 9, // IID2952 - 10, // IID2953 - 10, // IID2954 - 9, // IID2955 - 10, // IID2956 - 10, // IID2957 - 10, // IID2958 - 10, // IID2959 - 9, // IID2960 - 10, // IID2961 - 9, // IID2962 - 10, // IID2963 - 10, // IID2964 - 10, // IID2965 - 10, // IID2966 - 10, // IID2967 - 10, // IID2968 - 10, // IID2969 - 8, // IID2970 - 8, // IID2971 - 7, // IID2972 - 9, // IID2973 - 9, // IID2974 - 9, // IID2975 - 9, // IID2976 - 9, // IID2977 - 9, // IID2978 - 9, // IID2979 - 10, // IID2980 - 10, // IID2981 - 10, // IID2982 - 10, // IID2983 - 10, // IID2984 - 10, // IID2985 - 9, // IID2986 - 10, // IID2987 - 10, // IID2988 - 10, // IID2989 - 10, // IID2990 - 10, // IID2991 - 10, // IID2992 - 10, // IID2993 - 10, // IID2994 - 10, // IID2995 - 10, // IID2996 - 11, // IID2997 - 11, // IID2998 - 12, // IID2999 - 11, // IID3000 - 12, // IID3001 - 12, // IID3002 - 12, // IID3003 - 12, // IID3004 - 12, // IID3005 - 12, // IID3006 - 13, // IID3007 - 13, // IID3008 - 13, // IID3009 - 13, // IID3010 - 13, // IID3011 - 13, // IID3012 - 13, // IID3013 - 12, // IID3014 - 13, // IID3015 - 13, // IID3016 - 12, // IID3017 - 13, // IID3018 - 13, // IID3019 - 13, // IID3020 - 13, // IID3021 - 13, // IID3022 - 13, // IID3023 - 11, // IID3024 - 11, // IID3025 - 12, // IID3026 - 12, // IID3027 - 12, // IID3028 - 11, // IID3029 - 11, // IID3030 - 12, // IID3031 - 12, // IID3032 - 12, // IID3033 - 11, // IID3034 - 13, // IID3035 - 13, // IID3036 - 13, // IID3037 - 13, // IID3038 - 13, // IID3039 - 13, // IID3040 - 12, // IID3041 - 13, // IID3042 - 13, // IID3043 - 13, // IID3044 - 13, // IID3045 - 13, // IID3046 - 13, // IID3047 - 13, // IID3048 - 13, // IID3049 - 13, // IID3050 - 11, // IID3051 - 11, // IID3052 - 12, // IID3053 - 12, // IID3054 - 12, // IID3055 - 12, // IID3056 - 12, // IID3057 - 12, // IID3058 - 12, // IID3059 - 12, // IID3060 - 11, // IID3061 - 13, // IID3062 - 13, // IID3063 - 12, // IID3064 - 13, // IID3065 - 13, // IID3066 - 13, // IID3067 - 13, // IID3068 - 13, // IID3069 - 13, // IID3070 - 13, // IID3071 - 13, // IID3072 - 12, // IID3073 - 13, // IID3074 - 13, // IID3075 - 12, // IID3076 - 13, // IID3077 - 11, // IID3078 - 11, // IID3079 - 12, // IID3080 - 12, // IID3081 - 12, // IID3082 - 12, // IID3083 - 12, // IID3084 - 12, // IID3085 - 12, // IID3086 - 12, // IID3087 - 13, // IID3088 - 13, // IID3089 - 13, // IID3090 - 13, // IID3091 - 12, // IID3092 - 13, // IID3093 - 13, // IID3094 - 13, // IID3095 - 13, // IID3096 - 13, // IID3097 - 13, // IID3098 - 12, // IID3099 - 13, // IID3100 - 13, // IID3101 - 13, // IID3102 - 13, // IID3103 - 13, // IID3104 - 11, // IID3105 - 11, // IID3106 - 12, // IID3107 - 12, // IID3108 - 11, // IID3109 - 12, // IID3110 - 12, // IID3111 - 12, // IID3112 - 11, // IID3113 - 12, // IID3114 - 13, // IID3115 - 13, // IID3116 - 13, // IID3117 - 13, // IID3118 - 12, // IID3119 - 13, // IID3120 - 13, // IID3121 - 13, // IID3122 - 12, // IID3123 - 13, // IID3124 - 12, // IID3125 - 13, // IID3126 - 12, // IID3127 - 13, // IID3128 - 13, // IID3129 - 13, // IID3130 - 13, // IID3131 - 11, // IID3132 - 11, // IID3133 - 12, // IID3134 - 12, // IID3135 - 12, // IID3136 - 11, // IID3137 - 12, // IID3138 - 12, // IID3139 - 12, // IID3140 - 12, // IID3141 - 13, // IID3142 - 13, // IID3143 - 13, // IID3144 - 12, // IID3145 - 13, // IID3146 - 13, // IID3147 - 12, // IID3148 - 12, // IID3149 - 12, // IID3150 - 13, // IID3151 - 12, // IID3152 - 13, // IID3153 - 13, // IID3154 - 13, // IID3155 - 12, // IID3156 - 13, // IID3157 - 13, // IID3158 -#endif // _LP64 - 8, // IID3159 - 8, // IID3160 -#ifdef _LP64 - 9, // IID3161 - 8, // IID3162 - 9, // IID3163 - 9, // IID3164 - 9, // IID3165 - 9, // IID3166 - 9, // IID3167 - 9, // IID3168 - 10, // IID3169 - 10, // IID3170 - 10, // IID3171 - 10, // IID3172 - 9, // IID3173 - 10, // IID3174 - 10, // IID3175 - 10, // IID3176 - 10, // IID3177 - 10, // IID3178 - 10, // IID3179 - 10, // IID3180 - 10, // IID3181 - 10, // IID3182 - 9, // IID3183 - 9, // IID3184 - 10, // IID3185 - 8, // IID3186 - 8, // IID3187 - 9, // IID3188 - 9, // IID3189 - 9, // IID3190 - 9, // IID3191 - 9, // IID3192 - 9, // IID3193 - 9, // IID3194 - 9, // IID3195 - 10, // IID3196 - 10, // IID3197 - 10, // IID3198 - 10, // IID3199 - 10, // IID3200 - 10, // IID3201 - 10, // IID3202 - 10, // IID3203 - 10, // IID3204 - 10, // IID3205 - 10, // IID3206 - 10, // IID3207 - 10, // IID3208 - 10, // IID3209 - 10, // IID3210 - 10, // IID3211 - 10, // IID3212 - 11, // IID3213 - 10, // IID3214 - 12, // IID3215 - 12, // IID3216 - 11, // IID3217 - 12, // IID3218 - 12, // IID3219 - 12, // IID3220 - 12, // IID3221 - 12, // IID3222 - 13, // IID3223 - 13, // IID3224 - 13, // IID3225 - 13, // IID3226 - 13, // IID3227 - 13, // IID3228 - 13, // IID3229 - 13, // IID3230 - 13, // IID3231 - 13, // IID3232 - 12, // IID3233 - 13, // IID3234 - 13, // IID3235 - 13, // IID3236 - 12, // IID3237 - 12, // IID3238 - 12, // IID3239 - 11, // IID3240 - 10, // IID3241 - 10, // IID3242 - 12, // IID3243 - 12, // IID3244 - 12, // IID3245 - 12, // IID3246 - 12, // IID3247 - 12, // IID3248 - 12, // IID3249 - 13, // IID3250 - 12, // IID3251 - 13, // IID3252 - 13, // IID3253 - 13, // IID3254 - 13, // IID3255 - 13, // IID3256 - 13, // IID3257 - 13, // IID3258 - 13, // IID3259 - 13, // IID3260 - 13, // IID3261 - 13, // IID3262 - 13, // IID3263 - 13, // IID3264 - 13, // IID3265 - 13, // IID3266 - 10, // IID3267 - 11, // IID3268 - 12, // IID3269 - 11, // IID3270 - 12, // IID3271 - 12, // IID3272 - 12, // IID3273 - 12, // IID3274 - 12, // IID3275 - 12, // IID3276 - 13, // IID3277 - 13, // IID3278 - 13, // IID3279 - 13, // IID3280 - 13, // IID3281 - 13, // IID3282 - 13, // IID3283 - 13, // IID3284 - 13, // IID3285 - 13, // IID3286 - 13, // IID3287 - 13, // IID3288 - 12, // IID3289 - 13, // IID3290 - 13, // IID3291 - 13, // IID3292 - 13, // IID3293 - 11, // IID3294 - 10, // IID3295 - 12, // IID3296 - 12, // IID3297 - 12, // IID3298 - 12, // IID3299 - 12, // IID3300 - 12, // IID3301 - 12, // IID3302 - 12, // IID3303 - 13, // IID3304 - 12, // IID3305 - 12, // IID3306 - 13, // IID3307 - 13, // IID3308 - 13, // IID3309 - 13, // IID3310 - 13, // IID3311 - 13, // IID3312 - 12, // IID3313 - 13, // IID3314 - 13, // IID3315 - 13, // IID3316 - 13, // IID3317 - 13, // IID3318 - 13, // IID3319 - 12, // IID3320 - 11, // IID3321 - 10, // IID3322 - 12, // IID3323 - 12, // IID3324 - 12, // IID3325 - 12, // IID3326 - 12, // IID3327 - 12, // IID3328 - 12, // IID3329 - 12, // IID3330 - 13, // IID3331 - 12, // IID3332 - 13, // IID3333 - 12, // IID3334 - 12, // IID3335 - 13, // IID3336 - 13, // IID3337 - 13, // IID3338 - 13, // IID3339 - 13, // IID3340 - 13, // IID3341 - 13, // IID3342 - 13, // IID3343 - 13, // IID3344 - 13, // IID3345 - 13, // IID3346 - 13, // IID3347 - 11, // IID3348 - 11, // IID3349 - 12, // IID3350 - 11, // IID3351 - 12, // IID3352 - 11, // IID3353 - 12, // IID3354 - 12, // IID3355 - 12, // IID3356 - 11, // IID3357 - 13, // IID3358 - 13, // IID3359 - 12, // IID3360 - 13, // IID3361 - 13, // IID3362 - 13, // IID3363 - 13, // IID3364 - 13, // IID3365 - 12, // IID3366 - 13, // IID3367 - 13, // IID3368 - 12, // IID3369 - 13, // IID3370 - 13, // IID3371 - 13, // IID3372 - 13, // IID3373 - 13, // IID3374 -#endif // _LP64 - 8, // IID3375 - 8, // IID3376 -#ifdef _LP64 - 7, // IID3377 - 8, // IID3378 - 8, // IID3379 - 8, // IID3380 - 8, // IID3381 - 9, // IID3382 - 9, // IID3383 - 9, // IID3384 - 10, // IID3385 - 9, // IID3386 - 10, // IID3387 - 9, // IID3388 - 10, // IID3389 - 10, // IID3390 - 9, // IID3391 - 10, // IID3392 - 9, // IID3393 - 10, // IID3394 - 10, // IID3395 - 10, // IID3396 - 9, // IID3397 - 10, // IID3398 - 10, // IID3399 - 10, // IID3400 - 10, // IID3401 - 8, // IID3402 - 8, // IID3403 - 7, // IID3404 - 8, // IID3405 - 8, // IID3406 - 9, // IID3407 - 9, // IID3408 - 9, // IID3409 - 9, // IID3410 - 9, // IID3411 - 10, // IID3412 - 10, // IID3413 - 10, // IID3414 - 10, // IID3415 - 9, // IID3416 - 10, // IID3417 - 10, // IID3418 - 10, // IID3419 - 10, // IID3420 - 9, // IID3421 - 10, // IID3422 - 10, // IID3423 - 10, // IID3424 - 10, // IID3425 - 10, // IID3426 - 10, // IID3427 - 10, // IID3428 - 7, // IID3429 - 8, // IID3430 - 9, // IID3431 - 8, // IID3432 - 9, // IID3433 - 9, // IID3434 - 9, // IID3435 - 9, // IID3436 - 9, // IID3437 - 9, // IID3438 - 8, // IID3439 - 9, // IID3440 - 10, // IID3441 - 10, // IID3442 - 10, // IID3443 - 10, // IID3444 - 10, // IID3445 - 10, // IID3446 - 10, // IID3447 - 10, // IID3448 - 10, // IID3449 - 10, // IID3450 - 9, // IID3451 - 10, // IID3452 - 10, // IID3453 - 10, // IID3454 - 10, // IID3455 - 8, // IID3456 - 8, // IID3457 - 7, // IID3458 - 9, // IID3459 - 8, // IID3460 - 9, // IID3461 - 9, // IID3462 - 9, // IID3463 - 9, // IID3464 - 8, // IID3465 - 10, // IID3466 - 10, // IID3467 - 10, // IID3468 - 10, // IID3469 - 10, // IID3470 - 10, // IID3471 - 10, // IID3472 - 10, // IID3473 - 10, // IID3474 - 10, // IID3475 - 9, // IID3476 - 10, // IID3477 - 10, // IID3478 - 10, // IID3479 - 10, // IID3480 - 10, // IID3481 - 9, // IID3482 -#endif // _LP64 - 8, // IID3483 - 8, // IID3484 -#ifdef _LP64 - 9, // IID3485 - 9, // IID3486 - 9, // IID3487 - 9, // IID3488 - 9, // IID3489 - 9, // IID3490 - 9, // IID3491 - 9, // IID3492 - 10, // IID3493 - 10, // IID3494 - 10, // IID3495 - 10, // IID3496 - 10, // IID3497 - 10, // IID3498 - 10, // IID3499 - 10, // IID3500 - 10, // IID3501 - 9, // IID3502 - 9, // IID3503 - 10, // IID3504 - 10, // IID3505 - 10, // IID3506 - 10, // IID3507 - 10, // IID3508 - 10, // IID3509 - 8, // IID3510 - 8, // IID3511 - 9, // IID3512 - 9, // IID3513 - 9, // IID3514 - 9, // IID3515 - 9, // IID3516 - 9, // IID3517 - 9, // IID3518 - 9, // IID3519 - 8, // IID3520 - 10, // IID3521 - 10, // IID3522 - 10, // IID3523 - 10, // IID3524 - 10, // IID3525 - 10, // IID3526 - 9, // IID3527 - 10, // IID3528 - 10, // IID3529 - 10, // IID3530 - 10, // IID3531 - 10, // IID3532 - 10, // IID3533 - 10, // IID3534 - 10, // IID3535 - 10, // IID3536 - 11, // IID3537 - 10, // IID3538 - 12, // IID3539 - 12, // IID3540 - 11, // IID3541 - 12, // IID3542 - 11, // IID3543 - 12, // IID3544 - 12, // IID3545 - 12, // IID3546 - 13, // IID3547 - 13, // IID3548 - 12, // IID3549 - 13, // IID3550 - 13, // IID3551 - 13, // IID3552 - 13, // IID3553 - 13, // IID3554 - 13, // IID3555 - 13, // IID3556 - 13, // IID3557 - 12, // IID3558 - 13, // IID3559 - 13, // IID3560 - 12, // IID3561 - 13, // IID3562 - 12, // IID3563 - 11, // IID3564 - 11, // IID3565 - 12, // IID3566 - 12, // IID3567 - 12, // IID3568 - 12, // IID3569 - 12, // IID3570 - 12, // IID3571 - 11, // IID3572 - 12, // IID3573 - 13, // IID3574 - 13, // IID3575 - 13, // IID3576 - 13, // IID3577 - 13, // IID3578 - 13, // IID3579 - 12, // IID3580 - 13, // IID3581 - 13, // IID3582 - 12, // IID3583 - 13, // IID3584 - 12, // IID3585 - 13, // IID3586 - 13, // IID3587 - 13, // IID3588 - 13, // IID3589 - 13, // IID3590 - 11, // IID3591 - 11, // IID3592 - 12, // IID3593 - 12, // IID3594 - 12, // IID3595 - 12, // IID3596 - 12, // IID3597 - 12, // IID3598 - 11, // IID3599 - 12, // IID3600 - 13, // IID3601 - 13, // IID3602 - 13, // IID3603 - 13, // IID3604 - 13, // IID3605 - 13, // IID3606 - 12, // IID3607 - 13, // IID3608 - 13, // IID3609 - 13, // IID3610 - 13, // IID3611 - 13, // IID3612 - 13, // IID3613 - 13, // IID3614 - 12, // IID3615 - 13, // IID3616 - 13, // IID3617 - 11, // IID3618 - 11, // IID3619 - 12, // IID3620 - 12, // IID3621 - 12, // IID3622 - 12, // IID3623 - 11, // IID3624 - 12, // IID3625 - 11, // IID3626 - 11, // IID3627 - 13, // IID3628 - 13, // IID3629 - 13, // IID3630 - 13, // IID3631 - 13, // IID3632 - 13, // IID3633 - 13, // IID3634 - 13, // IID3635 - 12, // IID3636 - 13, // IID3637 - 13, // IID3638 - 13, // IID3639 - 13, // IID3640 - 13, // IID3641 - 13, // IID3642 - 13, // IID3643 - 13, // IID3644 - 11, // IID3645 - 10, // IID3646 - 12, // IID3647 - 12, // IID3648 - 12, // IID3649 - 11, // IID3650 - 12, // IID3651 - 12, // IID3652 - 12, // IID3653 - 12, // IID3654 - 13, // IID3655 - 12, // IID3656 - 13, // IID3657 - 13, // IID3658 - 13, // IID3659 - 13, // IID3660 - 13, // IID3661 - 12, // IID3662 - 12, // IID3663 - 13, // IID3664 - 13, // IID3665 - 13, // IID3666 - 12, // IID3667 - 13, // IID3668 - 13, // IID3669 - 13, // IID3670 - 13, // IID3671 - 11, // IID3672 - 11, // IID3673 - 10, // IID3674 - 12, // IID3675 - 12, // IID3676 - 12, // IID3677 - 12, // IID3678 - 12, // IID3679 - 11, // IID3680 - 12, // IID3681 - 11, // IID3682 - 13, // IID3683 - 13, // IID3684 - 13, // IID3685 - 13, // IID3686 - 13, // IID3687 - 13, // IID3688 - 13, // IID3689 - 13, // IID3690 - 13, // IID3691 - 13, // IID3692 - 13, // IID3693 - 13, // IID3694 - 13, // IID3695 - 13, // IID3696 - 12, // IID3697 - 12, // IID3698 -#endif // _LP64 - 8, // IID3699 - 8, // IID3700 -#ifdef _LP64 - 9, // IID3701 - 9, // IID3702 - 9, // IID3703 - 9, // IID3704 - 8, // IID3705 - 9, // IID3706 - 9, // IID3707 - 9, // IID3708 - 10, // IID3709 - 10, // IID3710 - 10, // IID3711 - 10, // IID3712 - 10, // IID3713 - 10, // IID3714 - 10, // IID3715 - 10, // IID3716 - 10, // IID3717 - 9, // IID3718 - 9, // IID3719 - 9, // IID3720 - 10, // IID3721 - 10, // IID3722 - 10, // IID3723 - 10, // IID3724 - 9, // IID3725 - 8, // IID3726 - 8, // IID3727 - 9, // IID3728 - 8, // IID3729 - 9, // IID3730 - 8, // IID3731 - 9, // IID3732 - 9, // IID3733 - 9, // IID3734 - 9, // IID3735 - 10, // IID3736 - 9, // IID3737 - 10, // IID3738 - 9, // IID3739 - 10, // IID3740 - 10, // IID3741 - 9, // IID3742 - 10, // IID3743 - 10, // IID3744 - 10, // IID3745 - 9, // IID3746 - 9, // IID3747 - 10, // IID3748 - 10, // IID3749 - 9, // IID3750 - 9, // IID3751 - 9, // IID3752 - 8, // IID3753 - 7, // IID3754 - 9, // IID3755 - 9, // IID3756 - 9, // IID3757 - 9, // IID3758 - 9, // IID3759 - 9, // IID3760 - 9, // IID3761 - 9, // IID3762 - 10, // IID3763 - 10, // IID3764 - 10, // IID3765 - 9, // IID3766 - 10, // IID3767 - 10, // IID3768 - 10, // IID3769 - 9, // IID3770 - 9, // IID3771 - 10, // IID3772 - 10, // IID3773 - 10, // IID3774 - 10, // IID3775 - 10, // IID3776 - 10, // IID3777 - 10, // IID3778 - 10, // IID3779 - 7, // IID3780 - 8, // IID3781 - 9, // IID3782 - 9, // IID3783 - 9, // IID3784 - 9, // IID3785 - 9, // IID3786 - 9, // IID3787 - 8, // IID3788 - 9, // IID3789 - 10, // IID3790 - 9, // IID3791 - 10, // IID3792 - 10, // IID3793 - 10, // IID3794 - 10, // IID3795 - 10, // IID3796 - 10, // IID3797 - 10, // IID3798 - 10, // IID3799 - 9, // IID3800 - 9, // IID3801 - 10, // IID3802 - 10, // IID3803 - 10, // IID3804 - 10, // IID3805 - 10, // IID3806 -#endif // _LP64 - 11, // IID3807 - 11, // IID3808 -#ifdef _LP64 - 12, // IID3809 - 11, // IID3810 - 11, // IID3811 - 12, // IID3812 - 12, // IID3813 - 12, // IID3814 - 12, // IID3815 - 12, // IID3816 - 13, // IID3817 - 12, // IID3818 - 12, // IID3819 - 13, // IID3820 - 13, // IID3821 - 13, // IID3822 - 13, // IID3823 - 12, // IID3824 - 12, // IID3825 - 13, // IID3826 - 13, // IID3827 - 13, // IID3828 - 13, // IID3829 - 13, // IID3830 - 13, // IID3831 - 12, // IID3832 - 13, // IID3833 - 11, // IID3834 - 10, // IID3835 - 12, // IID3836 - 12, // IID3837 - 12, // IID3838 - 11, // IID3839 - 12, // IID3840 - 12, // IID3841 - 12, // IID3842 - 12, // IID3843 - 11, // IID3844 - 13, // IID3845 - 13, // IID3846 - 13, // IID3847 - 13, // IID3848 - 13, // IID3849 - 13, // IID3850 - 13, // IID3851 - 13, // IID3852 - 13, // IID3853 - 13, // IID3854 - 13, // IID3855 - 13, // IID3856 - 13, // IID3857 - 13, // IID3858 - 13, // IID3859 - 13, // IID3860 - 11, // IID3861 - 11, // IID3862 - 12, // IID3863 - 12, // IID3864 - 12, // IID3865 - 12, // IID3866 - 11, // IID3867 - 12, // IID3868 - 12, // IID3869 - 12, // IID3870 - 11, // IID3871 - 13, // IID3872 - 12, // IID3873 - 13, // IID3874 - 13, // IID3875 - 13, // IID3876 - 13, // IID3877 - 13, // IID3878 - 12, // IID3879 - 13, // IID3880 - 13, // IID3881 - 13, // IID3882 - 12, // IID3883 - 13, // IID3884 - 13, // IID3885 - 13, // IID3886 - 12, // IID3887 - 11, // IID3888 - 10, // IID3889 - 12, // IID3890 - 12, // IID3891 - 12, // IID3892 - 11, // IID3893 - 12, // IID3894 - 12, // IID3895 - 12, // IID3896 - 11, // IID3897 - 11, // IID3898 - 13, // IID3899 - 13, // IID3900 - 13, // IID3901 - 13, // IID3902 - 13, // IID3903 - 12, // IID3904 - 13, // IID3905 - 13, // IID3906 - 13, // IID3907 - 13, // IID3908 - 13, // IID3909 - 13, // IID3910 - 13, // IID3911 - 13, // IID3912 - 12, // IID3913 - 13, // IID3914 - 11, // IID3915 - 10, // IID3916 - 10, // IID3917 - 11, // IID3918 - 11, // IID3919 - 11, // IID3920 - 12, // IID3921 - 12, // IID3922 - 11, // IID3923 - 12, // IID3924 - 13, // IID3925 - 13, // IID3926 - 13, // IID3927 - 13, // IID3928 - 13, // IID3929 - 13, // IID3930 - 12, // IID3931 - 13, // IID3932 - 13, // IID3933 - 13, // IID3934 - 13, // IID3935 - 13, // IID3936 - 13, // IID3937 - 13, // IID3938 - 13, // IID3939 - 13, // IID3940 - 12, // IID3941 - 11, // IID3942 - 11, // IID3943 - 12, // IID3944 - 12, // IID3945 - 11, // IID3946 - 12, // IID3947 - 12, // IID3948 - 12, // IID3949 - 12, // IID3950 - 12, // IID3951 - 11, // IID3952 - 13, // IID3953 - 13, // IID3954 - 13, // IID3955 - 13, // IID3956 - 13, // IID3957 - 13, // IID3958 - 13, // IID3959 - 12, // IID3960 - 13, // IID3961 - 12, // IID3962 - 13, // IID3963 - 13, // IID3964 - 13, // IID3965 - 12, // IID3966 - 12, // IID3967 - 13, // IID3968 - 11, // IID3969 - 10, // IID3970 - 12, // IID3971 - 12, // IID3972 - 12, // IID3973 - 12, // IID3974 - 11, // IID3975 - 12, // IID3976 - 12, // IID3977 - 12, // IID3978 - 13, // IID3979 - 13, // IID3980 - 12, // IID3981 - 12, // IID3982 - 12, // IID3983 - 13, // IID3984 - 12, // IID3985 - 13, // IID3986 - 13, // IID3987 - 13, // IID3988 - 13, // IID3989 - 13, // IID3990 - 13, // IID3991 - 13, // IID3992 - 13, // IID3993 - 13, // IID3994 - 13, // IID3995 - 11, // IID3996 - 11, // IID3997 - 12, // IID3998 - 12, // IID3999 - 12, // IID4000 - 11, // IID4001 - 12, // IID4002 - 12, // IID4003 - 11, // IID4004 - 12, // IID4005 - 13, // IID4006 - 13, // IID4007 - 13, // IID4008 - 13, // IID4009 - 13, // IID4010 - 13, // IID4011 - 12, // IID4012 - 13, // IID4013 - 12, // IID4014 - 13, // IID4015 - 12, // IID4016 - 13, // IID4017 - 13, // IID4018 - 13, // IID4019 - 12, // IID4020 - 13, // IID4021 - 12, // IID4022 -#endif // _LP64 - 8, // IID4023 - 8, // IID4024 -#ifdef _LP64 - 9, // IID4025 - 9, // IID4026 - 8, // IID4027 - 8, // IID4028 - 9, // IID4029 - 9, // IID4030 - 9, // IID4031 - 9, // IID4032 - 10, // IID4033 - 9, // IID4034 - 10, // IID4035 - 10, // IID4036 - 10, // IID4037 - 10, // IID4038 - 10, // IID4039 - 10, // IID4040 - 10, // IID4041 - 10, // IID4042 - 10, // IID4043 - 10, // IID4044 - 10, // IID4045 - 10, // IID4046 - 10, // IID4047 - 10, // IID4048 - 10, // IID4049 - 8, // IID4050 - 7, // IID4051 - 9, // IID4052 - 9, // IID4053 - 9, // IID4054 - 9, // IID4055 - 8, // IID4056 - 9, // IID4057 - 8, // IID4058 - 9, // IID4059 - 10, // IID4060 - 9, // IID4061 - 10, // IID4062 - 10, // IID4063 - 10, // IID4064 - 10, // IID4065 - 10, // IID4066 - 10, // IID4067 - 10, // IID4068 - 10, // IID4069 - 9, // IID4070 - 9, // IID4071 - 9, // IID4072 - 10, // IID4073 - 10, // IID4074 - 10, // IID4075 - 10, // IID4076 - 8, // IID4077 - 8, // IID4078 - 9, // IID4079 - 9, // IID4080 - 9, // IID4081 - 9, // IID4082 - 9, // IID4083 - 9, // IID4084 - 9, // IID4085 - 8, // IID4086 - 10, // IID4087 - 10, // IID4088 - 10, // IID4089 - 10, // IID4090 - 10, // IID4091 - 10, // IID4092 - 10, // IID4093 - 10, // IID4094 - 10, // IID4095 - 10, // IID4096 - 10, // IID4097 - 10, // IID4098 - 9, // IID4099 - 10, // IID4100 - 10, // IID4101 - 9, // IID4102 - 10, // IID4103 - 7, // IID4104 - 8, // IID4105 - 9, // IID4106 - 9, // IID4107 - 9, // IID4108 - 9, // IID4109 - 8, // IID4110 - 9, // IID4111 - 8, // IID4112 - 9, // IID4113 - 10, // IID4114 - 9, // IID4115 - 10, // IID4116 - 10, // IID4117 - 10, // IID4118 - 10, // IID4119 - 10, // IID4120 - 10, // IID4121 - 10, // IID4122 - 10, // IID4123 - 10, // IID4124 - 10, // IID4125 - 10, // IID4126 - 10, // IID4127 - 10, // IID4128 - 10, // IID4129 - 10, // IID4130 -#endif // _LP64 - 10, // IID4131 - 11, // IID4132 -#ifdef _LP64 - 12, // IID4133 - 12, // IID4134 - 12, // IID4135 - 12, // IID4136 - 12, // IID4137 - 12, // IID4138 - 11, // IID4139 - 12, // IID4140 - 13, // IID4141 - 13, // IID4142 - 13, // IID4143 - 12, // IID4144 - 12, // IID4145 - 13, // IID4146 - 13, // IID4147 - 12, // IID4148 - 13, // IID4149 - 13, // IID4150 - 13, // IID4151 - 13, // IID4152 - 13, // IID4153 - 13, // IID4154 - 13, // IID4155 - 13, // IID4156 - 12, // IID4157 - 10, // IID4158 - 11, // IID4159 - 10, // IID4160 - 12, // IID4161 - 12, // IID4162 - 12, // IID4163 - 12, // IID4164 - 12, // IID4165 - 11, // IID4166 - 12, // IID4167 - 13, // IID4168 - 13, // IID4169 - 13, // IID4170 - 13, // IID4171 - 13, // IID4172 - 13, // IID4173 - 13, // IID4174 - 13, // IID4175 - 13, // IID4176 - 12, // IID4177 - 13, // IID4178 - 13, // IID4179 - 13, // IID4180 - 13, // IID4181 - 12, // IID4182 - 13, // IID4183 - 13, // IID4184 - 11, // IID4185 - 11, // IID4186 - 12, // IID4187 - 12, // IID4188 - 11, // IID4189 - 12, // IID4190 - 12, // IID4191 - 12, // IID4192 - 12, // IID4193 - 12, // IID4194 - 13, // IID4195 - 12, // IID4196 - 13, // IID4197 - 13, // IID4198 - 13, // IID4199 - 13, // IID4200 - 13, // IID4201 - 13, // IID4202 - 13, // IID4203 - 13, // IID4204 - 12, // IID4205 - 13, // IID4206 - 12, // IID4207 - 13, // IID4208 - 13, // IID4209 - 13, // IID4210 - 13, // IID4211 - 11, // IID4212 - 11, // IID4213 - 12, // IID4214 - 12, // IID4215 - 12, // IID4216 - 12, // IID4217 - 12, // IID4218 - 12, // IID4219 - 12, // IID4220 - 11, // IID4221 - 13, // IID4222 - 13, // IID4223 - 13, // IID4224 - 12, // IID4225 - 12, // IID4226 - 13, // IID4227 - 13, // IID4228 - 12, // IID4229 - 13, // IID4230 - 12, // IID4231 - 13, // IID4232 - 12, // IID4233 - 12, // IID4234 - 13, // IID4235 - 13, // IID4236 - 12, // IID4237 - 13, // IID4238 - 10, // IID4239 - 10, // IID4240 - 12, // IID4241 - 12, // IID4242 - 12, // IID4243 - 12, // IID4244 - 12, // IID4245 - 12, // IID4246 - 12, // IID4247 - 12, // IID4248 - 13, // IID4249 - 13, // IID4250 - 13, // IID4251 - 13, // IID4252 - 13, // IID4253 - 13, // IID4254 - 12, // IID4255 - 12, // IID4256 - 12, // IID4257 - 13, // IID4258 - 13, // IID4259 - 13, // IID4260 - 13, // IID4261 - 13, // IID4262 - 13, // IID4263 - 13, // IID4264 - 13, // IID4265 - 11, // IID4266 - 11, // IID4267 - 10, // IID4268 - 12, // IID4269 - 12, // IID4270 - 12, // IID4271 - 12, // IID4272 - 12, // IID4273 - 12, // IID4274 - 12, // IID4275 - 13, // IID4276 - 13, // IID4277 - 13, // IID4278 - 13, // IID4279 - 13, // IID4280 - 13, // IID4281 - 13, // IID4282 - 13, // IID4283 - 13, // IID4284 - 13, // IID4285 - 13, // IID4286 - 13, // IID4287 - 13, // IID4288 - 13, // IID4289 - 13, // IID4290 - 13, // IID4291 - 13, // IID4292 - 11, // IID4293 - 10, // IID4294 - 12, // IID4295 - 12, // IID4296 - 12, // IID4297 - 12, // IID4298 - 12, // IID4299 - 12, // IID4300 - 12, // IID4301 - 12, // IID4302 - 13, // IID4303 - 13, // IID4304 - 13, // IID4305 - 13, // IID4306 - 12, // IID4307 - 13, // IID4308 - 13, // IID4309 - 13, // IID4310 - 13, // IID4311 - 12, // IID4312 - 12, // IID4313 - 13, // IID4314 - 13, // IID4315 - 13, // IID4316 - 12, // IID4317 - 13, // IID4318 - 12, // IID4319 - 10, // IID4320 - 11, // IID4321 - 12, // IID4322 - 12, // IID4323 - 12, // IID4324 - 12, // IID4325 - 11, // IID4326 - 12, // IID4327 - 12, // IID4328 - 12, // IID4329 - 13, // IID4330 - 13, // IID4331 - 13, // IID4332 - 12, // IID4333 - 13, // IID4334 - 13, // IID4335 - 13, // IID4336 - 13, // IID4337 - 13, // IID4338 - 13, // IID4339 - 13, // IID4340 - 13, // IID4341 - 13, // IID4342 - 13, // IID4343 - 13, // IID4344 - 12, // IID4345 - 12, // IID4346 -#endif // _LP64 - 10, // IID4347 - 11, // IID4348 -#ifdef _LP64 - 10, // IID4349 - 11, // IID4350 - 12, // IID4351 - 12, // IID4352 - 12, // IID4353 - 12, // IID4354 - 11, // IID4355 - 11, // IID4356 - 13, // IID4357 - 12, // IID4358 - 13, // IID4359 - 13, // IID4360 - 13, // IID4361 - 13, // IID4362 - 13, // IID4363 - 12, // IID4364 - 13, // IID4365 - 12, // IID4366 - 13, // IID4367 - 12, // IID4368 - 12, // IID4369 - 13, // IID4370 - 13, // IID4371 - 13, // IID4372 - 13, // IID4373 - 11, // IID4374 - 10, // IID4375 - 12, // IID4376 - 12, // IID4377 - 12, // IID4378 - 12, // IID4379 - 12, // IID4380 - 12, // IID4381 - 11, // IID4382 - 12, // IID4383 - 13, // IID4384 - 13, // IID4385 - 13, // IID4386 - 12, // IID4387 - 13, // IID4388 - 13, // IID4389 - 13, // IID4390 - 12, // IID4391 - 13, // IID4392 - 13, // IID4393 - 13, // IID4394 - 13, // IID4395 - 12, // IID4396 - 13, // IID4397 - 13, // IID4398 - 13, // IID4399 - 13, // IID4400 - 10, // IID4401 - 10, // IID4402 - 12, // IID4403 - 12, // IID4404 - 12, // IID4405 - 12, // IID4406 - 12, // IID4407 - 12, // IID4408 - 11, // IID4409 - 12, // IID4410 - 13, // IID4411 - 13, // IID4412 - 13, // IID4413 - 12, // IID4414 - 13, // IID4415 - 13, // IID4416 - 13, // IID4417 - 13, // IID4418 - 13, // IID4419 - 13, // IID4420 - 13, // IID4421 - 12, // IID4422 - 13, // IID4423 - 13, // IID4424 - 13, // IID4425 - 13, // IID4426 - 13, // IID4427 - 11, // IID4428 - 11, // IID4429 - 10, // IID4430 - 12, // IID4431 - 12, // IID4432 - 12, // IID4433 - 12, // IID4434 - 12, // IID4435 - 12, // IID4436 - 12, // IID4437 - 13, // IID4438 - 13, // IID4439 - 13, // IID4440 - 13, // IID4441 - 12, // IID4442 - 13, // IID4443 - 13, // IID4444 - 13, // IID4445 - 13, // IID4446 - 13, // IID4447 - 13, // IID4448 - 12, // IID4449 - 13, // IID4450 - 13, // IID4451 - 13, // IID4452 - 13, // IID4453 - 13, // IID4454 - 11, // IID4455 - 10, // IID4456 - 12, // IID4457 - 12, // IID4458 - 12, // IID4459 - 12, // IID4460 - 12, // IID4461 - 12, // IID4462 - 12, // IID4463 - 12, // IID4464 - 13, // IID4465 - 13, // IID4466 - 12, // IID4467 - 13, // IID4468 - 12, // IID4469 - 13, // IID4470 - 12, // IID4471 - 13, // IID4472 - 12, // IID4473 - 13, // IID4474 - 13, // IID4475 - 13, // IID4476 - 13, // IID4477 - 13, // IID4478 - 13, // IID4479 - 13, // IID4480 - 12, // IID4481 - 11, // IID4482 - 11, // IID4483 - 12, // IID4484 - 12, // IID4485 - 11, // IID4486 - 12, // IID4487 - 12, // IID4488 - 12, // IID4489 - 12, // IID4490 - 12, // IID4491 - 11, // IID4492 - 13, // IID4493 - 13, // IID4494 - 13, // IID4495 - 13, // IID4496 - 13, // IID4497 - 12, // IID4498 - 13, // IID4499 - 13, // IID4500 - 12, // IID4501 - 12, // IID4502 - 13, // IID4503 - 12, // IID4504 - 13, // IID4505 - 13, // IID4506 - 13, // IID4507 - 13, // IID4508 - 11, // IID4509 - 11, // IID4510 - 10, // IID4511 - 12, // IID4512 - 12, // IID4513 - 11, // IID4514 - 12, // IID4515 - 12, // IID4516 - 12, // IID4517 - 12, // IID4518 - 11, // IID4519 - 13, // IID4520 - 13, // IID4521 - 13, // IID4522 - 13, // IID4523 - 13, // IID4524 - 13, // IID4525 - 13, // IID4526 - 13, // IID4527 - 12, // IID4528 - 13, // IID4529 - 13, // IID4530 - 13, // IID4531 - 13, // IID4532 - 13, // IID4533 - 13, // IID4534 - 13, // IID4535 - 11, // IID4536 - 11, // IID4537 - 12, // IID4538 - 12, // IID4539 - 12, // IID4540 - 12, // IID4541 - 12, // IID4542 - 12, // IID4543 - 12, // IID4544 - 12, // IID4545 - 13, // IID4546 - 13, // IID4547 - 13, // IID4548 - 13, // IID4549 - 12, // IID4550 - 13, // IID4551 - 13, // IID4552 - 13, // IID4553 - 13, // IID4554 - 13, // IID4555 - 13, // IID4556 - 13, // IID4557 - 13, // IID4558 - 13, // IID4559 - 13, // IID4560 - 12, // IID4561 - 13, // IID4562 -#endif // _LP64 - 6, // IID4563 -#ifdef _LP64 - 8, // IID4564 - 8, // IID4565 - 8, // IID4566 - 7, // IID4567 - 8, // IID4568 - 8, // IID4569 - 8, // IID4570 - 7, // IID4571 - 9, // IID4572 - 9, // IID4573 - 9, // IID4574 - 9, // IID4575 - 8, // IID4576 - 9, // IID4577 - 9, // IID4578 - 9, // IID4579 - 9, // IID4580 - 9, // IID4581 - 9, // IID4582 - 9, // IID4583 - 8, // IID4584 - 9, // IID4585 - 9, // IID4586 - 9, // IID4587 - 9, // IID4588 - 9, // IID4589 -#endif // _LP64 - 6, // IID4590 -#ifdef _LP64 - 8, // IID4591 - 8, // IID4592 - 7, // IID4593 - 8, // IID4594 - 8, // IID4595 - 8, // IID4596 - 8, // IID4597 - 7, // IID4598 - 7, // IID4599 - 9, // IID4600 - 9, // IID4601 - 8, // IID4602 - 9, // IID4603 - 9, // IID4604 - 9, // IID4605 - 9, // IID4606 - 8, // IID4607 - 9, // IID4608 - 9, // IID4609 - 9, // IID4610 - 9, // IID4611 - 9, // IID4612 - 9, // IID4613 - 9, // IID4614 - 9, // IID4615 - 9, // IID4616 -#endif // _LP64 - 7, // IID4617 -#ifdef _LP64 - 8, // IID4618 - 8, // IID4619 - 7, // IID4620 - 8, // IID4621 - 8, // IID4622 - 8, // IID4623 - 8, // IID4624 - 7, // IID4625 - 9, // IID4626 - 9, // IID4627 - 9, // IID4628 - 9, // IID4629 - 9, // IID4630 - 9, // IID4631 - 8, // IID4632 - 9, // IID4633 - 8, // IID4634 - 9, // IID4635 - 9, // IID4636 - 9, // IID4637 - 9, // IID4638 - 9, // IID4639 - 9, // IID4640 - 9, // IID4641 - 8, // IID4642 - 9, // IID4643 -#endif // _LP64 - 7, // IID4644 -#ifdef _LP64 - 8, // IID4645 - 8, // IID4646 - 8, // IID4647 - 8, // IID4648 - 8, // IID4649 - 8, // IID4650 - 8, // IID4651 - 8, // IID4652 - 9, // IID4653 - 9, // IID4654 - 8, // IID4655 - 9, // IID4656 - 9, // IID4657 - 9, // IID4658 - 9, // IID4659 - 9, // IID4660 - 9, // IID4661 - 9, // IID4662 - 9, // IID4663 - 9, // IID4664 - 8, // IID4665 - 9, // IID4666 - 8, // IID4667 - 9, // IID4668 - 9, // IID4669 - 9, // IID4670 -#endif // _LP64 - 9, // IID4671 -#ifdef _LP64 - 8, // IID4672 - 10, // IID4673 - 10, // IID4674 - 10, // IID4675 - 10, // IID4676 - 10, // IID4677 - 10, // IID4678 - 9, // IID4679 - 10, // IID4680 - 10, // IID4681 - 10, // IID4682 - 10, // IID4683 - 10, // IID4684 - 10, // IID4685 - 10, // IID4686 - 10, // IID4687 - 10, // IID4688 - 10, // IID4689 - 10, // IID4690 - 10, // IID4691 - 10, // IID4692 - 10, // IID4693 - 10, // IID4694 - 9, // IID4695 - 10, // IID4696 - 10, // IID4697 -#endif // _LP64 - 7, // IID4698 -#ifdef _LP64 - 8, // IID4699 - 8, // IID4700 - 8, // IID4701 - 8, // IID4702 - 8, // IID4703 - 8, // IID4704 - 8, // IID4705 - 7, // IID4706 - 9, // IID4707 - 8, // IID4708 - 9, // IID4709 - 9, // IID4710 - 9, // IID4711 - 9, // IID4712 - 9, // IID4713 - 9, // IID4714 - 9, // IID4715 - 8, // IID4716 - 8, // IID4717 - 9, // IID4718 - 9, // IID4719 - 9, // IID4720 - 9, // IID4721 - 8, // IID4722 - 8, // IID4723 - 8, // IID4724 -#endif // _LP64 - 7, // IID4725 -#ifdef _LP64 - 8, // IID4726 - 7, // IID4727 - 7, // IID4728 - 7, // IID4729 - 8, // IID4730 - 8, // IID4731 - 8, // IID4732 - 8, // IID4733 - 9, // IID4734 - 9, // IID4735 - 9, // IID4736 - 9, // IID4737 - 9, // IID4738 - 9, // IID4739 - 8, // IID4740 - 8, // IID4741 - 9, // IID4742 - 9, // IID4743 - 9, // IID4744 - 9, // IID4745 - 9, // IID4746 - 9, // IID4747 - 9, // IID4748 - 9, // IID4749 - 9, // IID4750 - 8, // IID4751 -#endif // _LP64 - 8, // IID4752 -#ifdef _LP64 - 9, // IID4753 - 9, // IID4754 - 9, // IID4755 - 9, // IID4756 - 8, // IID4757 - 9, // IID4758 - 8, // IID4759 - 9, // IID4760 - 8, // IID4761 - 9, // IID4762 - 9, // IID4763 - 9, // IID4764 - 9, // IID4765 - 9, // IID4766 - 9, // IID4767 - 9, // IID4768 - 8, // IID4769 - 9, // IID4770 - 9, // IID4771 - 9, // IID4772 - 9, // IID4773 - 9, // IID4774 - 9, // IID4775 - 9, // IID4776 - 9, // IID4777 - 9, // IID4778 -#endif // _LP64 - 9, // IID4779 -#ifdef _LP64 - 10, // IID4780 - 10, // IID4781 - 10, // IID4782 - 10, // IID4783 - 10, // IID4784 - 10, // IID4785 - 10, // IID4786 - 10, // IID4787 - 10, // IID4788 - 10, // IID4789 - 10, // IID4790 - 10, // IID4791 - 10, // IID4792 - 10, // IID4793 - 9, // IID4794 - 10, // IID4795 - 9, // IID4796 - 9, // IID4797 - 10, // IID4798 - 9, // IID4799 - 10, // IID4800 - 10, // IID4801 - 10, // IID4802 - 10, // IID4803 - 10, // IID4804 - 9, // IID4805 -#endif // _LP64 - 7, // IID4806 -#ifdef _LP64 - 8, // IID4807 - 8, // IID4808 - 7, // IID4809 - 8, // IID4810 - 8, // IID4811 - 8, // IID4812 - 8, // IID4813 - 8, // IID4814 - 9, // IID4815 - 9, // IID4816 - 9, // IID4817 - 9, // IID4818 - 9, // IID4819 - 9, // IID4820 - 9, // IID4821 - 8, // IID4822 - 8, // IID4823 - 9, // IID4824 - 9, // IID4825 - 9, // IID4826 - 9, // IID4827 - 9, // IID4828 - 8, // IID4829 - 8, // IID4830 - 9, // IID4831 - 9, // IID4832 -#endif // _LP64 - 7, // IID4833 -#ifdef _LP64 - 8, // IID4834 - 8, // IID4835 - 8, // IID4836 - 8, // IID4837 - 8, // IID4838 - 8, // IID4839 - 8, // IID4840 - 8, // IID4841 - 9, // IID4842 - 9, // IID4843 - 9, // IID4844 - 8, // IID4845 - 9, // IID4846 - 9, // IID4847 - 8, // IID4848 - 9, // IID4849 - 9, // IID4850 - 9, // IID4851 - 9, // IID4852 - 9, // IID4853 - 8, // IID4854 - 9, // IID4855 - 9, // IID4856 - 8, // IID4857 - 9, // IID4858 - 9, // IID4859 -#endif // _LP64 - 9, // IID4860 -#ifdef _LP64 - 8, // IID4861 - 10, // IID4862 - 10, // IID4863 - 10, // IID4864 - 10, // IID4865 - 10, // IID4866 - 9, // IID4867 - 10, // IID4868 - 10, // IID4869 - 10, // IID4870 - 10, // IID4871 - 10, // IID4872 - 10, // IID4873 - 10, // IID4874 - 10, // IID4875 - 10, // IID4876 - 9, // IID4877 - 9, // IID4878 - 10, // IID4879 - 10, // IID4880 - 10, // IID4881 - 10, // IID4882 - 10, // IID4883 - 10, // IID4884 - 10, // IID4885 - 10, // IID4886 -#endif // _LP64 - 7, // IID4887 -#ifdef _LP64 - 8, // IID4888 - 8, // IID4889 - 7, // IID4890 - 8, // IID4891 - 7, // IID4892 - 8, // IID4893 - 7, // IID4894 - 7, // IID4895 - 9, // IID4896 - 9, // IID4897 - 8, // IID4898 - 9, // IID4899 - 9, // IID4900 - 9, // IID4901 - 9, // IID4902 - 8, // IID4903 - 9, // IID4904 - 8, // IID4905 - 8, // IID4906 - 9, // IID4907 - 9, // IID4908 - 9, // IID4909 - 9, // IID4910 - 9, // IID4911 - 9, // IID4912 - 8, // IID4913 -#endif // _LP64 - 7, // IID4914 -#ifdef _LP64 - 9, // IID4915 - 8, // IID4916 - 8, // IID4917 - 9, // IID4918 - 9, // IID4919 - 9, // IID4920 - 8, // IID4921 - 9, // IID4922 - 10, // IID4923 - 10, // IID4924 - 10, // IID4925 - 10, // IID4926 - 10, // IID4927 - 10, // IID4928 - 10, // IID4929 - 10, // IID4930 - 9, // IID4931 - 10, // IID4932 - 10, // IID4933 - 10, // IID4934 - 10, // IID4935 - 10, // IID4936 - 10, // IID4937 - 10, // IID4938 - 10, // IID4939 - 10, // IID4940 -#endif // _LP64 - 7, // IID4941 -#ifdef _LP64 - 6, // IID4942 - 8, // IID4943 - 8, // IID4944 - 8, // IID4945 - 7, // IID4946 - 8, // IID4947 - 8, // IID4948 - 8, // IID4949 - 9, // IID4950 - 9, // IID4951 - 9, // IID4952 - 9, // IID4953 - 9, // IID4954 - 9, // IID4955 - 9, // IID4956 - 9, // IID4957 - 9, // IID4958 - 9, // IID4959 - 9, // IID4960 - 9, // IID4961 - 9, // IID4962 - 9, // IID4963 - 8, // IID4964 - 8, // IID4965 - 8, // IID4966 - 9, // IID4967 -#endif // _LP64 - 7, // IID4968 -#ifdef _LP64 - 8, // IID4969 - 7, // IID4970 - 8, // IID4971 - 8, // IID4972 - 8, // IID4973 - 8, // IID4974 - 8, // IID4975 - 7, // IID4976 - 9, // IID4977 - 9, // IID4978 - 8, // IID4979 - 9, // IID4980 - 8, // IID4981 - 9, // IID4982 - 9, // IID4983 - 9, // IID4984 - 9, // IID4985 - 9, // IID4986 - 8, // IID4987 - 9, // IID4988 - 9, // IID4989 - 9, // IID4990 - 9, // IID4991 - 9, // IID4992 - 8, // IID4993 - 9, // IID4994 -#endif // _LP64 - 7, // IID4995 -#ifdef _LP64 - 8, // IID4996 - 7, // IID4997 - 8, // IID4998 - 8, // IID4999 - 8, // IID5000 - 8, // IID5001 - 8, // IID5002 - 8, // IID5003 - 9, // IID5004 - 9, // IID5005 - 9, // IID5006 - 9, // IID5007 - 9, // IID5008 - 9, // IID5009 - 9, // IID5010 - 9, // IID5011 - 8, // IID5012 - 9, // IID5013 - 9, // IID5014 - 9, // IID5015 - 9, // IID5016 - 9, // IID5017 - 8, // IID5018 - 8, // IID5019 - 9, // IID5020 - 8, // IID5021 -#endif // _LP64 - 7, // IID5022 -#ifdef _LP64 - 6, // IID5023 - 8, // IID5024 - 8, // IID5025 - 8, // IID5026 - 8, // IID5027 - 8, // IID5028 - 7, // IID5029 - 8, // IID5030 - 9, // IID5031 - 9, // IID5032 - 9, // IID5033 - 9, // IID5034 - 8, // IID5035 - 9, // IID5036 - 9, // IID5037 - 8, // IID5038 - 9, // IID5039 - 9, // IID5040 - 9, // IID5041 - 9, // IID5042 - 9, // IID5043 - 9, // IID5044 - 9, // IID5045 - 9, // IID5046 - 9, // IID5047 - 8, // IID5048 -#endif // _LP64 - 7, // IID5049 -#ifdef _LP64 - 8, // IID5050 - 8, // IID5051 - 8, // IID5052 - 8, // IID5053 - 8, // IID5054 - 8, // IID5055 - 8, // IID5056 - 8, // IID5057 - 7, // IID5058 - 8, // IID5059 - 8, // IID5060 - 9, // IID5061 - 9, // IID5062 - 9, // IID5063 - 9, // IID5064 - 8, // IID5065 - 9, // IID5066 - 8, // IID5067 - 8, // IID5068 - 9, // IID5069 - 9, // IID5070 - 9, // IID5071 - 9, // IID5072 - 9, // IID5073 - 9, // IID5074 - 8, // IID5075 -#endif // _LP64 - 8, // IID5076 -#ifdef _LP64 - 7, // IID5077 - 9, // IID5078 - 8, // IID5079 - 9, // IID5080 - 9, // IID5081 - 9, // IID5082 - 9, // IID5083 - 9, // IID5084 - 10, // IID5085 - 10, // IID5086 - 10, // IID5087 - 10, // IID5088 - 9, // IID5089 - 10, // IID5090 - 10, // IID5091 - 9, // IID5092 - 9, // IID5093 - 10, // IID5094 - 9, // IID5095 - 10, // IID5096 - 9, // IID5097 - 10, // IID5098 - 10, // IID5099 - 10, // IID5100 - 9, // IID5101 - 10, // IID5102 -#endif // _LP64 - 6, // IID5103 -#ifdef _LP64 - 8, // IID5104 - 8, // IID5105 - 8, // IID5106 - 8, // IID5107 - 8, // IID5108 - 8, // IID5109 - 8, // IID5110 - 8, // IID5111 - 9, // IID5112 - 8, // IID5113 - 9, // IID5114 - 9, // IID5115 - 9, // IID5116 - 9, // IID5117 - 9, // IID5118 - 9, // IID5119 - 8, // IID5120 - 8, // IID5121 - 9, // IID5122 - 9, // IID5123 - 9, // IID5124 - 9, // IID5125 - 9, // IID5126 - 9, // IID5127 - 8, // IID5128 - 9, // IID5129 -#endif // _LP64 - 6, // IID5130 -#ifdef _LP64 - 8, // IID5131 - 8, // IID5132 - 8, // IID5133 - 8, // IID5134 - 7, // IID5135 - 8, // IID5136 - 8, // IID5137 - 8, // IID5138 - 9, // IID5139 - 8, // IID5140 - 9, // IID5141 - 9, // IID5142 - 9, // IID5143 - 9, // IID5144 - 9, // IID5145 - 9, // IID5146 - 9, // IID5147 - 9, // IID5148 - 8, // IID5149 - 9, // IID5150 - 9, // IID5151 - 9, // IID5152 - 9, // IID5153 - 9, // IID5154 - 9, // IID5155 - 8, // IID5156 -#endif // _LP64 - 3, // IID5157 - 3, // IID5158 - 3, // IID5159 - 3, // IID5160 - 3, // IID5161 - 3, // IID5162 - 3, // IID5163 - 3, // IID5164 - 3, // IID5165 - 3, // IID5166 - 3, // IID5167 - 3, // IID5168 -#ifdef _LP64 - 4, // IID5169 - 4, // IID5170 - 4, // IID5171 - 4, // IID5172 - 4, // IID5173 - 4, // IID5174 - 4, // IID5175 - 4, // IID5176 - 4, // IID5177 - 4, // IID5178 - 4, // IID5179 - 4, // IID5180 - 4, // IID5181 - 4, // IID5182 - 4, // IID5183 - 4, // IID5184 - 4, // IID5185 - 4, // IID5186 - 4, // IID5187 - 4, // IID5188 - 4, // IID5189 - 4, // IID5190 - 4, // IID5191 - 4, // IID5192 - 4, // IID5193 - 4, // IID5194 - 4, // IID5195 - 4, // IID5196 - 4, // IID5197 - 4, // IID5198 - 4, // IID5199 - 4, // IID5200 - 5, // IID5201 - 5, // IID5202 - 5, // IID5203 - 5, // IID5204 - 5, // IID5205 - 5, // IID5206 - 5, // IID5207 - 5, // IID5208 - 5, // IID5209 - 5, // IID5210 - 5, // IID5211 - 5, // IID5212 - 5, // IID5213 - 5, // IID5214 - 5, // IID5215 - 5, // IID5216 - 5, // IID5217 - 5, // IID5218 - 5, // IID5219 - 5, // IID5220 - 5, // IID5221 - 5, // IID5222 - 5, // IID5223 - 5, // IID5224 - 5, // IID5225 - 5, // IID5226 - 5, // IID5227 - 5, // IID5228 - 5, // IID5229 - 5, // IID5230 - 5, // IID5231 - 5, // IID5232 - 5, // IID5233 - 5, // IID5234 - 5, // IID5235 - 5, // IID5236 - 5, // IID5237 - 5, // IID5238 - 5, // IID5239 - 5, // IID5240 - 5, // IID5241 - 5, // IID5242 - 5, // IID5243 - 5, // IID5244 - 5, // IID5245 - 5, // IID5246 - 5, // IID5247 - 5, // IID5248 - 5, // IID5249 - 5, // IID5250 - 5, // IID5251 - 5, // IID5252 - 5, // IID5253 - 5, // IID5254 - 5, // IID5255 - 5, // IID5256 - 5, // IID5257 - 5, // IID5258 - 5, // IID5259 - 5, // IID5260 - 5, // IID5261 - 5, // IID5262 - 5, // IID5263 - 5, // IID5264 -#endif // _LP64 - 3, // IID5265 - 3, // IID5266 - 6, // IID5267 - 6, // IID5268 - 6, // IID5269 - 6, // IID5270 - 6, // IID5271 - 6, // IID5272 - 3, // IID5273 - 3, // IID5274 - 6, // IID5275 - 6, // IID5276 - 6, // IID5277 - 6, // IID5278 - 6, // IID5279 - 6, // IID5280 - 3, // IID5281 - 3, // IID5282 - 6, // IID5283 - 6, // IID5284 - 6, // IID5285 - 6, // IID5286 - 6, // IID5287 - 6, // IID5288 -#ifdef _LP64 - 4, // IID5289 - 4, // IID5290 - 7, // IID5291 - 7, // IID5292 - 7, // IID5293 - 7, // IID5294 - 7, // IID5295 - 7, // IID5296 - 4, // IID5297 - 4, // IID5298 - 7, // IID5299 - 7, // IID5300 - 7, // IID5301 - 7, // IID5302 - 7, // IID5303 - 7, // IID5304 - 4, // IID5305 - 4, // IID5306 - 7, // IID5307 - 7, // IID5308 - 7, // IID5309 - 7, // IID5310 - 7, // IID5311 - 7, // IID5312 - 4, // IID5313 - 4, // IID5314 - 7, // IID5315 - 7, // IID5316 - 7, // IID5317 - 7, // IID5318 - 7, // IID5319 - 7, // IID5320 - 4, // IID5321 - 4, // IID5322 - 7, // IID5323 - 7, // IID5324 - 7, // IID5325 - 7, // IID5326 - 7, // IID5327 - 7, // IID5328 - 4, // IID5329 - 4, // IID5330 - 7, // IID5331 - 7, // IID5332 - 7, // IID5333 - 7, // IID5334 - 7, // IID5335 - 7, // IID5336 - 4, // IID5337 - 4, // IID5338 - 7, // IID5339 - 7, // IID5340 - 7, // IID5341 - 7, // IID5342 - 7, // IID5343 - 7, // IID5344 - 4, // IID5345 - 4, // IID5346 - 7, // IID5347 - 7, // IID5348 - 7, // IID5349 - 7, // IID5350 - 7, // IID5351 - 7, // IID5352 - 5, // IID5353 - 5, // IID5354 - 8, // IID5355 - 8, // IID5356 - 8, // IID5357 - 8, // IID5358 - 8, // IID5359 - 8, // IID5360 - 5, // IID5361 - 5, // IID5362 - 8, // IID5363 - 8, // IID5364 - 8, // IID5365 - 8, // IID5366 - 8, // IID5367 - 8, // IID5368 - 5, // IID5369 - 5, // IID5370 - 8, // IID5371 - 8, // IID5372 - 8, // IID5373 - 8, // IID5374 - 8, // IID5375 - 8, // IID5376 - 5, // IID5377 - 5, // IID5378 - 8, // IID5379 - 8, // IID5380 - 8, // IID5381 - 8, // IID5382 - 8, // IID5383 - 8, // IID5384 - 5, // IID5385 - 5, // IID5386 - 8, // IID5387 - 8, // IID5388 - 8, // IID5389 - 8, // IID5390 - 8, // IID5391 - 8, // IID5392 - 5, // IID5393 - 5, // IID5394 - 8, // IID5395 - 8, // IID5396 - 8, // IID5397 - 8, // IID5398 - 8, // IID5399 - 8, // IID5400 - 5, // IID5401 - 5, // IID5402 - 8, // IID5403 - 8, // IID5404 - 8, // IID5405 - 8, // IID5406 - 8, // IID5407 - 8, // IID5408 - 5, // IID5409 - 5, // IID5410 - 8, // IID5411 - 8, // IID5412 - 8, // IID5413 - 8, // IID5414 - 8, // IID5415 - 8, // IID5416 - 5, // IID5417 - 5, // IID5418 - 8, // IID5419 - 8, // IID5420 - 8, // IID5421 - 8, // IID5422 - 8, // IID5423 - 8, // IID5424 - 5, // IID5425 - 5, // IID5426 - 8, // IID5427 - 8, // IID5428 - 8, // IID5429 - 8, // IID5430 - 8, // IID5431 - 8, // IID5432 - 5, // IID5433 - 5, // IID5434 - 8, // IID5435 - 8, // IID5436 - 8, // IID5437 - 8, // IID5438 - 8, // IID5439 - 8, // IID5440 - 5, // IID5441 - 5, // IID5442 - 8, // IID5443 - 8, // IID5444 - 8, // IID5445 - 8, // IID5446 - 8, // IID5447 - 8, // IID5448 - 5, // IID5449 - 5, // IID5450 - 8, // IID5451 - 8, // IID5452 - 8, // IID5453 - 8, // IID5454 - 8, // IID5455 - 8, // IID5456 - 5, // IID5457 - 5, // IID5458 - 8, // IID5459 - 8, // IID5460 - 8, // IID5461 - 8, // IID5462 - 8, // IID5463 - 8, // IID5464 - 5, // IID5465 - 5, // IID5466 - 8, // IID5467 - 8, // IID5468 - 8, // IID5469 - 8, // IID5470 - 8, // IID5471 - 8, // IID5472 - 5, // IID5473 - 5, // IID5474 - 8, // IID5475 - 8, // IID5476 - 8, // IID5477 - 8, // IID5478 - 8, // IID5479 - 8, // IID5480 -#endif // _LP64 - 3, // IID5481 - 3, // IID5482 - 6, // IID5483 - 6, // IID5484 - 6, // IID5485 - 6, // IID5486 - 6, // IID5487 - 6, // IID5488 - 3, // IID5489 - 3, // IID5490 - 6, // IID5491 - 6, // IID5492 - 6, // IID5493 - 6, // IID5494 - 6, // IID5495 - 6, // IID5496 - 3, // IID5497 - 3, // IID5498 - 6, // IID5499 - 6, // IID5500 - 6, // IID5501 - 6, // IID5502 - 6, // IID5503 - 6, // IID5504 -#ifdef _LP64 - 4, // IID5505 - 4, // IID5506 - 7, // IID5507 - 7, // IID5508 - 7, // IID5509 - 7, // IID5510 - 7, // IID5511 - 7, // IID5512 - 4, // IID5513 - 4, // IID5514 - 7, // IID5515 - 7, // IID5516 - 7, // IID5517 - 7, // IID5518 - 7, // IID5519 - 7, // IID5520 - 4, // IID5521 - 4, // IID5522 - 7, // IID5523 - 7, // IID5524 - 7, // IID5525 - 7, // IID5526 - 7, // IID5527 - 7, // IID5528 - 4, // IID5529 - 4, // IID5530 - 7, // IID5531 - 7, // IID5532 - 7, // IID5533 - 7, // IID5534 - 7, // IID5535 - 7, // IID5536 - 4, // IID5537 - 4, // IID5538 - 7, // IID5539 - 7, // IID5540 - 7, // IID5541 - 7, // IID5542 - 7, // IID5543 - 7, // IID5544 - 4, // IID5545 - 4, // IID5546 - 7, // IID5547 - 7, // IID5548 - 7, // IID5549 - 7, // IID5550 - 7, // IID5551 - 7, // IID5552 - 4, // IID5553 - 4, // IID5554 - 7, // IID5555 - 7, // IID5556 - 7, // IID5557 - 7, // IID5558 - 7, // IID5559 - 7, // IID5560 - 4, // IID5561 - 4, // IID5562 - 7, // IID5563 - 7, // IID5564 - 7, // IID5565 - 7, // IID5566 - 7, // IID5567 - 7, // IID5568 - 5, // IID5569 - 5, // IID5570 - 8, // IID5571 - 8, // IID5572 - 8, // IID5573 - 8, // IID5574 - 8, // IID5575 - 8, // IID5576 - 5, // IID5577 - 5, // IID5578 - 8, // IID5579 - 8, // IID5580 - 8, // IID5581 - 8, // IID5582 - 8, // IID5583 - 8, // IID5584 - 5, // IID5585 - 5, // IID5586 - 8, // IID5587 - 8, // IID5588 - 8, // IID5589 - 8, // IID5590 - 8, // IID5591 - 8, // IID5592 - 5, // IID5593 - 5, // IID5594 - 8, // IID5595 - 8, // IID5596 - 8, // IID5597 - 8, // IID5598 - 8, // IID5599 - 8, // IID5600 - 5, // IID5601 - 5, // IID5602 - 8, // IID5603 - 8, // IID5604 - 8, // IID5605 - 8, // IID5606 - 8, // IID5607 - 8, // IID5608 - 5, // IID5609 - 5, // IID5610 - 8, // IID5611 - 8, // IID5612 - 8, // IID5613 - 8, // IID5614 - 8, // IID5615 - 8, // IID5616 - 5, // IID5617 - 5, // IID5618 - 8, // IID5619 - 8, // IID5620 - 8, // IID5621 - 8, // IID5622 - 8, // IID5623 - 8, // IID5624 - 5, // IID5625 - 5, // IID5626 - 8, // IID5627 - 8, // IID5628 - 8, // IID5629 - 8, // IID5630 - 8, // IID5631 - 8, // IID5632 - 5, // IID5633 - 5, // IID5634 - 8, // IID5635 - 8, // IID5636 - 8, // IID5637 - 8, // IID5638 - 8, // IID5639 - 8, // IID5640 - 5, // IID5641 - 5, // IID5642 - 8, // IID5643 - 8, // IID5644 - 8, // IID5645 - 8, // IID5646 - 8, // IID5647 - 8, // IID5648 - 5, // IID5649 - 5, // IID5650 - 8, // IID5651 - 8, // IID5652 - 8, // IID5653 - 8, // IID5654 - 8, // IID5655 - 8, // IID5656 - 5, // IID5657 - 5, // IID5658 - 8, // IID5659 - 8, // IID5660 - 8, // IID5661 - 8, // IID5662 - 8, // IID5663 - 8, // IID5664 - 5, // IID5665 - 5, // IID5666 - 8, // IID5667 - 8, // IID5668 - 8, // IID5669 - 8, // IID5670 - 8, // IID5671 - 8, // IID5672 - 5, // IID5673 - 5, // IID5674 - 8, // IID5675 - 8, // IID5676 - 8, // IID5677 - 8, // IID5678 - 8, // IID5679 - 8, // IID5680 - 5, // IID5681 - 5, // IID5682 - 8, // IID5683 - 8, // IID5684 - 8, // IID5685 - 8, // IID5686 - 8, // IID5687 - 8, // IID5688 - 5, // IID5689 - 5, // IID5690 - 8, // IID5691 - 8, // IID5692 - 8, // IID5693 - 8, // IID5694 - 8, // IID5695 - 8, // IID5696 -#endif // _LP64 - 3, // IID5697 - 3, // IID5698 - 6, // IID5699 - 6, // IID5700 - 6, // IID5701 - 6, // IID5702 - 6, // IID5703 - 6, // IID5704 - 3, // IID5705 - 3, // IID5706 - 6, // IID5707 - 6, // IID5708 - 6, // IID5709 - 6, // IID5710 - 6, // IID5711 - 6, // IID5712 - 3, // IID5713 - 3, // IID5714 - 6, // IID5715 - 6, // IID5716 - 6, // IID5717 - 6, // IID5718 - 6, // IID5719 - 6, // IID5720 -#ifdef _LP64 - 4, // IID5721 - 4, // IID5722 - 7, // IID5723 - 7, // IID5724 - 7, // IID5725 - 7, // IID5726 - 7, // IID5727 - 7, // IID5728 - 4, // IID5729 - 4, // IID5730 - 7, // IID5731 - 7, // IID5732 - 7, // IID5733 - 7, // IID5734 - 7, // IID5735 - 7, // IID5736 - 4, // IID5737 - 4, // IID5738 - 7, // IID5739 - 7, // IID5740 - 7, // IID5741 - 7, // IID5742 - 7, // IID5743 - 7, // IID5744 - 4, // IID5745 - 4, // IID5746 - 7, // IID5747 - 7, // IID5748 - 7, // IID5749 - 7, // IID5750 - 7, // IID5751 - 7, // IID5752 - 4, // IID5753 - 4, // IID5754 - 7, // IID5755 - 7, // IID5756 - 7, // IID5757 - 7, // IID5758 - 7, // IID5759 - 7, // IID5760 - 4, // IID5761 - 4, // IID5762 - 7, // IID5763 - 7, // IID5764 - 7, // IID5765 - 7, // IID5766 - 7, // IID5767 - 7, // IID5768 - 4, // IID5769 - 4, // IID5770 - 7, // IID5771 - 7, // IID5772 - 7, // IID5773 - 7, // IID5774 - 7, // IID5775 - 7, // IID5776 - 4, // IID5777 - 4, // IID5778 - 7, // IID5779 - 7, // IID5780 - 7, // IID5781 - 7, // IID5782 - 7, // IID5783 - 7, // IID5784 - 5, // IID5785 - 5, // IID5786 - 8, // IID5787 - 8, // IID5788 - 8, // IID5789 - 8, // IID5790 - 8, // IID5791 - 8, // IID5792 - 5, // IID5793 - 5, // IID5794 - 8, // IID5795 - 8, // IID5796 - 8, // IID5797 - 8, // IID5798 - 8, // IID5799 - 8, // IID5800 - 5, // IID5801 - 5, // IID5802 - 8, // IID5803 - 8, // IID5804 - 8, // IID5805 - 8, // IID5806 - 8, // IID5807 - 8, // IID5808 - 5, // IID5809 - 5, // IID5810 - 8, // IID5811 - 8, // IID5812 - 8, // IID5813 - 8, // IID5814 - 8, // IID5815 - 8, // IID5816 - 5, // IID5817 - 5, // IID5818 - 8, // IID5819 - 8, // IID5820 - 8, // IID5821 - 8, // IID5822 - 8, // IID5823 - 8, // IID5824 - 5, // IID5825 - 5, // IID5826 - 8, // IID5827 - 8, // IID5828 - 8, // IID5829 - 8, // IID5830 - 8, // IID5831 - 8, // IID5832 - 5, // IID5833 - 5, // IID5834 - 8, // IID5835 - 8, // IID5836 - 8, // IID5837 - 8, // IID5838 - 8, // IID5839 - 8, // IID5840 - 5, // IID5841 - 5, // IID5842 - 8, // IID5843 - 8, // IID5844 - 8, // IID5845 - 8, // IID5846 - 8, // IID5847 - 8, // IID5848 - 5, // IID5849 - 5, // IID5850 - 8, // IID5851 - 8, // IID5852 - 8, // IID5853 - 8, // IID5854 - 8, // IID5855 - 8, // IID5856 - 5, // IID5857 - 5, // IID5858 - 8, // IID5859 - 8, // IID5860 - 8, // IID5861 - 8, // IID5862 - 8, // IID5863 - 8, // IID5864 - 5, // IID5865 - 5, // IID5866 - 8, // IID5867 - 8, // IID5868 - 8, // IID5869 - 8, // IID5870 - 8, // IID5871 - 8, // IID5872 - 5, // IID5873 - 5, // IID5874 - 8, // IID5875 - 8, // IID5876 - 8, // IID5877 - 8, // IID5878 - 8, // IID5879 - 8, // IID5880 - 5, // IID5881 - 5, // IID5882 - 8, // IID5883 - 8, // IID5884 - 8, // IID5885 - 8, // IID5886 - 8, // IID5887 - 8, // IID5888 - 5, // IID5889 - 5, // IID5890 - 8, // IID5891 - 8, // IID5892 - 8, // IID5893 - 8, // IID5894 - 8, // IID5895 - 8, // IID5896 - 5, // IID5897 - 5, // IID5898 - 8, // IID5899 - 8, // IID5900 - 8, // IID5901 - 8, // IID5902 - 8, // IID5903 - 8, // IID5904 - 5, // IID5905 - 5, // IID5906 - 8, // IID5907 - 8, // IID5908 - 8, // IID5909 - 8, // IID5910 - 8, // IID5911 - 8, // IID5912 -#endif // _LP64 - 3, // IID5913 - 3, // IID5914 - 3, // IID5915 - 3, // IID5916 - 3, // IID5917 - 3, // IID5918 - 3, // IID5919 - 3, // IID5920 - 3, // IID5921 - 3, // IID5922 - 3, // IID5923 - 3, // IID5924 -#ifdef _LP64 - 4, // IID5925 - 4, // IID5926 - 4, // IID5927 - 4, // IID5928 - 4, // IID5929 - 4, // IID5930 - 4, // IID5931 - 4, // IID5932 - 4, // IID5933 - 4, // IID5934 - 4, // IID5935 - 4, // IID5936 - 4, // IID5937 - 4, // IID5938 - 4, // IID5939 - 4, // IID5940 - 4, // IID5941 - 4, // IID5942 - 4, // IID5943 - 4, // IID5944 - 4, // IID5945 - 4, // IID5946 - 4, // IID5947 - 4, // IID5948 - 4, // IID5949 - 4, // IID5950 - 4, // IID5951 - 4, // IID5952 - 4, // IID5953 - 4, // IID5954 - 4, // IID5955 - 4, // IID5956 - 5, // IID5957 - 5, // IID5958 - 5, // IID5959 - 5, // IID5960 - 5, // IID5961 - 5, // IID5962 - 5, // IID5963 - 5, // IID5964 - 5, // IID5965 - 5, // IID5966 - 5, // IID5967 - 5, // IID5968 - 5, // IID5969 - 5, // IID5970 - 5, // IID5971 - 5, // IID5972 - 5, // IID5973 - 5, // IID5974 - 5, // IID5975 - 5, // IID5976 - 5, // IID5977 - 5, // IID5978 - 5, // IID5979 - 5, // IID5980 - 5, // IID5981 - 5, // IID5982 - 5, // IID5983 - 5, // IID5984 - 5, // IID5985 - 5, // IID5986 - 5, // IID5987 - 5, // IID5988 - 5, // IID5989 - 5, // IID5990 - 5, // IID5991 - 5, // IID5992 - 5, // IID5993 - 5, // IID5994 - 5, // IID5995 - 5, // IID5996 - 5, // IID5997 - 5, // IID5998 - 5, // IID5999 - 5, // IID6000 - 5, // IID6001 - 5, // IID6002 - 5, // IID6003 - 5, // IID6004 - 5, // IID6005 - 5, // IID6006 - 5, // IID6007 - 5, // IID6008 - 5, // IID6009 - 5, // IID6010 - 5, // IID6011 - 5, // IID6012 - 5, // IID6013 - 5, // IID6014 - 5, // IID6015 - 5, // IID6016 - 5, // IID6017 - 5, // IID6018 - 5, // IID6019 - 5, // IID6020 -#endif // _LP64 - 3, // IID6021 - 3, // IID6022 - 6, // IID6023 - 6, // IID6024 - 6, // IID6025 - 6, // IID6026 - 6, // IID6027 - 6, // IID6028 - 3, // IID6029 - 3, // IID6030 - 6, // IID6031 - 6, // IID6032 - 6, // IID6033 - 6, // IID6034 - 6, // IID6035 - 6, // IID6036 - 3, // IID6037 - 3, // IID6038 - 6, // IID6039 - 6, // IID6040 - 6, // IID6041 - 6, // IID6042 - 6, // IID6043 - 6, // IID6044 -#ifdef _LP64 - 4, // IID6045 - 4, // IID6046 - 7, // IID6047 - 7, // IID6048 - 7, // IID6049 - 7, // IID6050 - 7, // IID6051 - 7, // IID6052 - 4, // IID6053 - 4, // IID6054 - 7, // IID6055 - 7, // IID6056 - 7, // IID6057 - 7, // IID6058 - 7, // IID6059 - 7, // IID6060 - 4, // IID6061 - 4, // IID6062 - 7, // IID6063 - 7, // IID6064 - 7, // IID6065 - 7, // IID6066 - 7, // IID6067 - 7, // IID6068 - 4, // IID6069 - 4, // IID6070 - 7, // IID6071 - 7, // IID6072 - 7, // IID6073 - 7, // IID6074 - 7, // IID6075 - 7, // IID6076 - 4, // IID6077 - 4, // IID6078 - 7, // IID6079 - 7, // IID6080 - 7, // IID6081 - 7, // IID6082 - 7, // IID6083 - 7, // IID6084 - 4, // IID6085 - 4, // IID6086 - 7, // IID6087 - 7, // IID6088 - 7, // IID6089 - 7, // IID6090 - 7, // IID6091 - 7, // IID6092 - 4, // IID6093 - 4, // IID6094 - 7, // IID6095 - 7, // IID6096 - 7, // IID6097 - 7, // IID6098 - 7, // IID6099 - 7, // IID6100 - 4, // IID6101 - 4, // IID6102 - 7, // IID6103 - 7, // IID6104 - 7, // IID6105 - 7, // IID6106 - 7, // IID6107 - 7, // IID6108 - 5, // IID6109 - 5, // IID6110 - 8, // IID6111 - 8, // IID6112 - 8, // IID6113 - 8, // IID6114 - 8, // IID6115 - 8, // IID6116 - 5, // IID6117 - 5, // IID6118 - 8, // IID6119 - 8, // IID6120 - 8, // IID6121 - 8, // IID6122 - 8, // IID6123 - 8, // IID6124 - 5, // IID6125 - 5, // IID6126 - 8, // IID6127 - 8, // IID6128 - 8, // IID6129 - 8, // IID6130 - 8, // IID6131 - 8, // IID6132 - 5, // IID6133 - 5, // IID6134 - 8, // IID6135 - 8, // IID6136 - 8, // IID6137 - 8, // IID6138 - 8, // IID6139 - 8, // IID6140 - 5, // IID6141 - 5, // IID6142 - 8, // IID6143 - 8, // IID6144 - 8, // IID6145 - 8, // IID6146 - 8, // IID6147 - 8, // IID6148 - 5, // IID6149 - 5, // IID6150 - 8, // IID6151 - 8, // IID6152 - 8, // IID6153 - 8, // IID6154 - 8, // IID6155 - 8, // IID6156 - 5, // IID6157 - 5, // IID6158 - 8, // IID6159 - 8, // IID6160 - 8, // IID6161 - 8, // IID6162 - 8, // IID6163 - 8, // IID6164 - 5, // IID6165 - 5, // IID6166 - 8, // IID6167 - 8, // IID6168 - 8, // IID6169 - 8, // IID6170 - 8, // IID6171 - 8, // IID6172 - 5, // IID6173 - 5, // IID6174 - 8, // IID6175 - 8, // IID6176 - 8, // IID6177 - 8, // IID6178 - 8, // IID6179 - 8, // IID6180 - 5, // IID6181 - 5, // IID6182 - 8, // IID6183 - 8, // IID6184 - 8, // IID6185 - 8, // IID6186 - 8, // IID6187 - 8, // IID6188 - 5, // IID6189 - 5, // IID6190 - 8, // IID6191 - 8, // IID6192 - 8, // IID6193 - 8, // IID6194 - 8, // IID6195 - 8, // IID6196 - 5, // IID6197 - 5, // IID6198 - 8, // IID6199 - 8, // IID6200 - 8, // IID6201 - 8, // IID6202 - 8, // IID6203 - 8, // IID6204 - 5, // IID6205 - 5, // IID6206 - 8, // IID6207 - 8, // IID6208 - 8, // IID6209 - 8, // IID6210 - 8, // IID6211 - 8, // IID6212 - 5, // IID6213 - 5, // IID6214 - 8, // IID6215 - 8, // IID6216 - 8, // IID6217 - 8, // IID6218 - 8, // IID6219 - 8, // IID6220 - 5, // IID6221 - 5, // IID6222 - 8, // IID6223 - 8, // IID6224 - 8, // IID6225 - 8, // IID6226 - 8, // IID6227 - 8, // IID6228 - 5, // IID6229 - 5, // IID6230 - 8, // IID6231 - 8, // IID6232 - 8, // IID6233 - 8, // IID6234 - 8, // IID6235 - 8, // IID6236 -#endif // _LP64 - 2, // IID6237 - 3, // IID6238 - 3, // IID6239 - 3, // IID6240 - 3, // IID6241 - 2, // IID6242 - 3, // IID6243 - 3, // IID6244 - 3, // IID6245 - 3, // IID6246 - 2, // IID6247 - 3, // IID6248 - 3, // IID6249 - 3, // IID6250 - 3, // IID6251 -#ifdef _LP64 - 3, // IID6252 - 4, // IID6253 - 4, // IID6254 - 4, // IID6255 - 4, // IID6256 - 3, // IID6257 - 4, // IID6258 - 4, // IID6259 - 4, // IID6260 - 4, // IID6261 - 3, // IID6262 - 4, // IID6263 - 4, // IID6264 - 4, // IID6265 - 4, // IID6266 - 3, // IID6267 - 4, // IID6268 - 4, // IID6269 - 4, // IID6270 - 4, // IID6271 - 3, // IID6272 - 4, // IID6273 - 4, // IID6274 - 4, // IID6275 - 4, // IID6276 - 3, // IID6277 - 4, // IID6278 - 4, // IID6279 - 4, // IID6280 - 4, // IID6281 - 3, // IID6282 - 4, // IID6283 - 4, // IID6284 - 4, // IID6285 - 4, // IID6286 - 3, // IID6287 - 4, // IID6288 - 4, // IID6289 - 4, // IID6290 - 4, // IID6291 - 4, // IID6292 - 5, // IID6293 - 5, // IID6294 - 5, // IID6295 - 5, // IID6296 - 4, // IID6297 - 5, // IID6298 - 5, // IID6299 - 5, // IID6300 - 5, // IID6301 - 4, // IID6302 - 5, // IID6303 - 5, // IID6304 - 5, // IID6305 - 5, // IID6306 - 4, // IID6307 - 5, // IID6308 - 5, // IID6309 - 5, // IID6310 - 5, // IID6311 - 4, // IID6312 - 5, // IID6313 - 5, // IID6314 - 5, // IID6315 - 5, // IID6316 - 4, // IID6317 - 5, // IID6318 - 5, // IID6319 - 5, // IID6320 - 5, // IID6321 - 4, // IID6322 - 5, // IID6323 - 5, // IID6324 - 5, // IID6325 - 5, // IID6326 - 4, // IID6327 - 5, // IID6328 - 5, // IID6329 - 5, // IID6330 - 5, // IID6331 - 4, // IID6332 - 5, // IID6333 - 5, // IID6334 - 5, // IID6335 - 5, // IID6336 - 4, // IID6337 - 5, // IID6338 - 5, // IID6339 - 5, // IID6340 - 5, // IID6341 - 4, // IID6342 - 5, // IID6343 - 5, // IID6344 - 5, // IID6345 - 5, // IID6346 - 4, // IID6347 - 5, // IID6348 - 5, // IID6349 - 5, // IID6350 - 5, // IID6351 - 4, // IID6352 - 5, // IID6353 - 5, // IID6354 - 5, // IID6355 - 5, // IID6356 - 4, // IID6357 - 5, // IID6358 - 5, // IID6359 - 5, // IID6360 - 5, // IID6361 - 4, // IID6362 - 5, // IID6363 - 5, // IID6364 - 5, // IID6365 - 5, // IID6366 - 4, // IID6367 - 5, // IID6368 - 5, // IID6369 - 5, // IID6370 - 5, // IID6371 -#endif // _LP64 - 2, // IID6372 - 3, // IID6373 - 3, // IID6374 - 3, // IID6375 - 3, // IID6376 - 2, // IID6377 - 3, // IID6378 - 3, // IID6379 - 3, // IID6380 - 3, // IID6381 - 2, // IID6382 - 3, // IID6383 - 3, // IID6384 - 3, // IID6385 - 3, // IID6386 -#ifdef _LP64 - 3, // IID6387 - 4, // IID6388 - 4, // IID6389 - 4, // IID6390 - 4, // IID6391 - 3, // IID6392 - 4, // IID6393 - 4, // IID6394 - 4, // IID6395 - 4, // IID6396 - 3, // IID6397 - 4, // IID6398 - 4, // IID6399 - 4, // IID6400 - 4, // IID6401 - 3, // IID6402 - 4, // IID6403 - 4, // IID6404 - 4, // IID6405 - 4, // IID6406 - 3, // IID6407 - 4, // IID6408 - 4, // IID6409 - 4, // IID6410 - 4, // IID6411 - 3, // IID6412 - 4, // IID6413 - 4, // IID6414 - 4, // IID6415 - 4, // IID6416 - 3, // IID6417 - 4, // IID6418 - 4, // IID6419 - 4, // IID6420 - 4, // IID6421 - 3, // IID6422 - 4, // IID6423 - 4, // IID6424 - 4, // IID6425 - 4, // IID6426 - 4, // IID6427 - 5, // IID6428 - 5, // IID6429 - 5, // IID6430 - 5, // IID6431 - 4, // IID6432 - 5, // IID6433 - 5, // IID6434 - 5, // IID6435 - 5, // IID6436 - 4, // IID6437 - 5, // IID6438 - 5, // IID6439 - 5, // IID6440 - 5, // IID6441 - 4, // IID6442 - 5, // IID6443 - 5, // IID6444 - 5, // IID6445 - 5, // IID6446 - 4, // IID6447 - 5, // IID6448 - 5, // IID6449 - 5, // IID6450 - 5, // IID6451 - 4, // IID6452 - 5, // IID6453 - 5, // IID6454 - 5, // IID6455 - 5, // IID6456 - 4, // IID6457 - 5, // IID6458 - 5, // IID6459 - 5, // IID6460 - 5, // IID6461 - 4, // IID6462 - 5, // IID6463 - 5, // IID6464 - 5, // IID6465 - 5, // IID6466 - 4, // IID6467 - 5, // IID6468 - 5, // IID6469 - 5, // IID6470 - 5, // IID6471 - 4, // IID6472 - 5, // IID6473 - 5, // IID6474 - 5, // IID6475 - 5, // IID6476 - 4, // IID6477 - 5, // IID6478 - 5, // IID6479 - 5, // IID6480 - 5, // IID6481 - 4, // IID6482 - 5, // IID6483 - 5, // IID6484 - 5, // IID6485 - 5, // IID6486 - 4, // IID6487 - 5, // IID6488 - 5, // IID6489 - 5, // IID6490 - 5, // IID6491 - 4, // IID6492 - 5, // IID6493 - 5, // IID6494 - 5, // IID6495 - 5, // IID6496 - 4, // IID6497 - 5, // IID6498 - 5, // IID6499 - 5, // IID6500 - 5, // IID6501 - 4, // IID6502 - 5, // IID6503 - 5, // IID6504 - 5, // IID6505 - 5, // IID6506 -#endif // _LP64 - 2, // IID6507 - 3, // IID6508 - 3, // IID6509 - 3, // IID6510 - 3, // IID6511 - 2, // IID6512 - 3, // IID6513 - 3, // IID6514 - 3, // IID6515 - 3, // IID6516 - 2, // IID6517 - 3, // IID6518 - 3, // IID6519 - 3, // IID6520 - 3, // IID6521 -#ifdef _LP64 - 3, // IID6522 - 4, // IID6523 - 4, // IID6524 - 4, // IID6525 - 4, // IID6526 - 3, // IID6527 - 4, // IID6528 - 4, // IID6529 - 4, // IID6530 - 4, // IID6531 - 3, // IID6532 - 4, // IID6533 - 4, // IID6534 - 4, // IID6535 - 4, // IID6536 - 3, // IID6537 - 4, // IID6538 - 4, // IID6539 - 4, // IID6540 - 4, // IID6541 - 3, // IID6542 - 4, // IID6543 - 4, // IID6544 - 4, // IID6545 - 4, // IID6546 - 3, // IID6547 - 4, // IID6548 - 4, // IID6549 - 4, // IID6550 - 4, // IID6551 - 3, // IID6552 - 4, // IID6553 - 4, // IID6554 - 4, // IID6555 - 4, // IID6556 - 3, // IID6557 - 4, // IID6558 - 4, // IID6559 - 4, // IID6560 - 4, // IID6561 - 4, // IID6562 - 5, // IID6563 - 5, // IID6564 - 5, // IID6565 - 5, // IID6566 - 4, // IID6567 - 5, // IID6568 - 5, // IID6569 - 5, // IID6570 - 5, // IID6571 - 4, // IID6572 - 5, // IID6573 - 5, // IID6574 - 5, // IID6575 - 5, // IID6576 - 4, // IID6577 - 5, // IID6578 - 5, // IID6579 - 5, // IID6580 - 5, // IID6581 - 4, // IID6582 - 5, // IID6583 - 5, // IID6584 - 5, // IID6585 - 5, // IID6586 - 4, // IID6587 - 5, // IID6588 - 5, // IID6589 - 5, // IID6590 - 5, // IID6591 - 4, // IID6592 - 5, // IID6593 - 5, // IID6594 - 5, // IID6595 - 5, // IID6596 - 4, // IID6597 - 5, // IID6598 - 5, // IID6599 - 5, // IID6600 - 5, // IID6601 - 4, // IID6602 - 5, // IID6603 - 5, // IID6604 - 5, // IID6605 - 5, // IID6606 - 4, // IID6607 - 5, // IID6608 - 5, // IID6609 - 5, // IID6610 - 5, // IID6611 - 4, // IID6612 - 5, // IID6613 - 5, // IID6614 - 5, // IID6615 - 5, // IID6616 - 4, // IID6617 - 5, // IID6618 - 5, // IID6619 - 5, // IID6620 - 5, // IID6621 - 4, // IID6622 - 5, // IID6623 - 5, // IID6624 - 5, // IID6625 - 5, // IID6626 - 4, // IID6627 - 5, // IID6628 - 5, // IID6629 - 5, // IID6630 - 5, // IID6631 - 4, // IID6632 - 5, // IID6633 - 5, // IID6634 - 5, // IID6635 - 5, // IID6636 - 4, // IID6637 - 5, // IID6638 - 5, // IID6639 - 5, // IID6640 - 5, // IID6641 -#endif // _LP64 - 2, // IID6642 - 3, // IID6643 - 3, // IID6644 - 3, // IID6645 - 3, // IID6646 - 2, // IID6647 - 3, // IID6648 - 3, // IID6649 - 3, // IID6650 - 3, // IID6651 - 2, // IID6652 - 3, // IID6653 - 3, // IID6654 - 3, // IID6655 - 3, // IID6656 -#ifdef _LP64 - 3, // IID6657 - 4, // IID6658 - 4, // IID6659 - 4, // IID6660 - 4, // IID6661 - 3, // IID6662 - 4, // IID6663 - 4, // IID6664 - 4, // IID6665 - 4, // IID6666 - 3, // IID6667 - 4, // IID6668 - 4, // IID6669 - 4, // IID6670 - 4, // IID6671 - 3, // IID6672 - 4, // IID6673 - 4, // IID6674 - 4, // IID6675 - 4, // IID6676 - 3, // IID6677 - 4, // IID6678 - 4, // IID6679 - 4, // IID6680 - 4, // IID6681 - 3, // IID6682 - 4, // IID6683 - 4, // IID6684 - 4, // IID6685 - 4, // IID6686 - 3, // IID6687 - 4, // IID6688 - 4, // IID6689 - 4, // IID6690 - 4, // IID6691 - 3, // IID6692 - 4, // IID6693 - 4, // IID6694 - 4, // IID6695 - 4, // IID6696 - 4, // IID6697 - 5, // IID6698 - 5, // IID6699 - 5, // IID6700 - 5, // IID6701 - 4, // IID6702 - 5, // IID6703 - 5, // IID6704 - 5, // IID6705 - 5, // IID6706 - 4, // IID6707 - 5, // IID6708 - 5, // IID6709 - 5, // IID6710 - 5, // IID6711 - 4, // IID6712 - 5, // IID6713 - 5, // IID6714 - 5, // IID6715 - 5, // IID6716 - 4, // IID6717 - 5, // IID6718 - 5, // IID6719 - 5, // IID6720 - 5, // IID6721 - 4, // IID6722 - 5, // IID6723 - 5, // IID6724 - 5, // IID6725 - 5, // IID6726 - 4, // IID6727 - 5, // IID6728 - 5, // IID6729 - 5, // IID6730 - 5, // IID6731 - 4, // IID6732 - 5, // IID6733 - 5, // IID6734 - 5, // IID6735 - 5, // IID6736 - 4, // IID6737 - 5, // IID6738 - 5, // IID6739 - 5, // IID6740 - 5, // IID6741 - 4, // IID6742 - 5, // IID6743 - 5, // IID6744 - 5, // IID6745 - 5, // IID6746 - 4, // IID6747 - 5, // IID6748 - 5, // IID6749 - 5, // IID6750 - 5, // IID6751 - 4, // IID6752 - 5, // IID6753 - 5, // IID6754 - 5, // IID6755 - 5, // IID6756 - 4, // IID6757 - 5, // IID6758 - 5, // IID6759 - 5, // IID6760 - 5, // IID6761 - 4, // IID6762 - 5, // IID6763 - 5, // IID6764 - 5, // IID6765 - 5, // IID6766 - 4, // IID6767 - 5, // IID6768 - 5, // IID6769 - 5, // IID6770 - 5, // IID6771 - 4, // IID6772 - 5, // IID6773 - 5, // IID6774 - 5, // IID6775 - 5, // IID6776 -#endif // _LP64 - 2, // IID6777 - 3, // IID6778 - 3, // IID6779 - 3, // IID6780 - 3, // IID6781 - 2, // IID6782 - 3, // IID6783 - 3, // IID6784 - 3, // IID6785 - 3, // IID6786 - 2, // IID6787 - 3, // IID6788 - 3, // IID6789 - 3, // IID6790 - 3, // IID6791 -#ifdef _LP64 - 3, // IID6792 - 4, // IID6793 - 4, // IID6794 - 4, // IID6795 - 4, // IID6796 - 3, // IID6797 - 4, // IID6798 - 4, // IID6799 - 4, // IID6800 - 4, // IID6801 - 3, // IID6802 - 4, // IID6803 - 4, // IID6804 - 4, // IID6805 - 4, // IID6806 - 3, // IID6807 - 4, // IID6808 - 4, // IID6809 - 4, // IID6810 - 4, // IID6811 - 3, // IID6812 - 4, // IID6813 - 4, // IID6814 - 4, // IID6815 - 4, // IID6816 - 3, // IID6817 - 4, // IID6818 - 4, // IID6819 - 4, // IID6820 - 4, // IID6821 - 3, // IID6822 - 4, // IID6823 - 4, // IID6824 - 4, // IID6825 - 4, // IID6826 - 3, // IID6827 - 4, // IID6828 - 4, // IID6829 - 4, // IID6830 - 4, // IID6831 - 4, // IID6832 - 5, // IID6833 - 5, // IID6834 - 5, // IID6835 - 5, // IID6836 - 4, // IID6837 - 5, // IID6838 - 5, // IID6839 - 5, // IID6840 - 5, // IID6841 - 4, // IID6842 - 5, // IID6843 - 5, // IID6844 - 5, // IID6845 - 5, // IID6846 - 4, // IID6847 - 5, // IID6848 - 5, // IID6849 - 5, // IID6850 - 5, // IID6851 - 4, // IID6852 - 5, // IID6853 - 5, // IID6854 - 5, // IID6855 - 5, // IID6856 - 4, // IID6857 - 5, // IID6858 - 5, // IID6859 - 5, // IID6860 - 5, // IID6861 - 4, // IID6862 - 5, // IID6863 - 5, // IID6864 - 5, // IID6865 - 5, // IID6866 - 4, // IID6867 - 5, // IID6868 - 5, // IID6869 - 5, // IID6870 - 5, // IID6871 - 4, // IID6872 - 5, // IID6873 - 5, // IID6874 - 5, // IID6875 - 5, // IID6876 - 4, // IID6877 - 5, // IID6878 - 5, // IID6879 - 5, // IID6880 - 5, // IID6881 - 4, // IID6882 - 5, // IID6883 - 5, // IID6884 - 5, // IID6885 - 5, // IID6886 - 4, // IID6887 - 5, // IID6888 - 5, // IID6889 - 5, // IID6890 - 5, // IID6891 - 4, // IID6892 - 5, // IID6893 - 5, // IID6894 - 5, // IID6895 - 5, // IID6896 - 4, // IID6897 - 5, // IID6898 - 5, // IID6899 - 5, // IID6900 - 5, // IID6901 - 4, // IID6902 - 5, // IID6903 - 5, // IID6904 - 5, // IID6905 - 5, // IID6906 - 4, // IID6907 - 5, // IID6908 - 5, // IID6909 - 5, // IID6910 - 5, // IID6911 -#endif // _LP64 - 3, // IID6912 - 3, // IID6913 - 6, // IID6914 - 6, // IID6915 - 6, // IID6916 - 6, // IID6917 - 6, // IID6918 - 6, // IID6919 - 3, // IID6920 - 3, // IID6921 - 6, // IID6922 - 6, // IID6923 - 6, // IID6924 - 6, // IID6925 - 6, // IID6926 - 6, // IID6927 - 3, // IID6928 - 3, // IID6929 - 6, // IID6930 - 6, // IID6931 - 6, // IID6932 - 6, // IID6933 - 6, // IID6934 - 6, // IID6935 -#ifdef _LP64 - 4, // IID6936 - 4, // IID6937 - 7, // IID6938 - 7, // IID6939 - 7, // IID6940 - 7, // IID6941 - 7, // IID6942 - 7, // IID6943 - 4, // IID6944 - 4, // IID6945 - 7, // IID6946 - 7, // IID6947 - 7, // IID6948 - 7, // IID6949 - 7, // IID6950 - 7, // IID6951 - 4, // IID6952 - 4, // IID6953 - 7, // IID6954 - 7, // IID6955 - 7, // IID6956 - 7, // IID6957 - 7, // IID6958 - 7, // IID6959 - 4, // IID6960 - 4, // IID6961 - 7, // IID6962 - 7, // IID6963 - 7, // IID6964 - 7, // IID6965 - 7, // IID6966 - 7, // IID6967 - 4, // IID6968 - 4, // IID6969 - 7, // IID6970 - 7, // IID6971 - 7, // IID6972 - 7, // IID6973 - 7, // IID6974 - 7, // IID6975 - 4, // IID6976 - 4, // IID6977 - 7, // IID6978 - 7, // IID6979 - 7, // IID6980 - 7, // IID6981 - 7, // IID6982 - 7, // IID6983 - 4, // IID6984 - 4, // IID6985 - 7, // IID6986 - 7, // IID6987 - 7, // IID6988 - 7, // IID6989 - 7, // IID6990 - 7, // IID6991 - 4, // IID6992 - 4, // IID6993 - 7, // IID6994 - 7, // IID6995 - 7, // IID6996 - 7, // IID6997 - 7, // IID6998 - 7, // IID6999 - 5, // IID7000 - 5, // IID7001 - 8, // IID7002 - 8, // IID7003 - 8, // IID7004 - 8, // IID7005 - 8, // IID7006 - 8, // IID7007 - 5, // IID7008 - 5, // IID7009 - 8, // IID7010 - 8, // IID7011 - 8, // IID7012 - 8, // IID7013 - 8, // IID7014 - 8, // IID7015 - 5, // IID7016 - 5, // IID7017 - 8, // IID7018 - 8, // IID7019 - 8, // IID7020 - 8, // IID7021 - 8, // IID7022 - 8, // IID7023 - 5, // IID7024 - 5, // IID7025 - 8, // IID7026 - 8, // IID7027 - 8, // IID7028 - 8, // IID7029 - 8, // IID7030 - 8, // IID7031 - 5, // IID7032 - 5, // IID7033 - 8, // IID7034 - 8, // IID7035 - 8, // IID7036 - 8, // IID7037 - 8, // IID7038 - 8, // IID7039 - 5, // IID7040 - 5, // IID7041 - 8, // IID7042 - 8, // IID7043 - 8, // IID7044 - 8, // IID7045 - 8, // IID7046 - 8, // IID7047 - 5, // IID7048 - 5, // IID7049 - 8, // IID7050 - 8, // IID7051 - 8, // IID7052 - 8, // IID7053 - 8, // IID7054 - 8, // IID7055 - 5, // IID7056 - 5, // IID7057 - 8, // IID7058 - 8, // IID7059 - 8, // IID7060 - 8, // IID7061 - 8, // IID7062 - 8, // IID7063 - 5, // IID7064 - 5, // IID7065 - 8, // IID7066 - 8, // IID7067 - 8, // IID7068 - 8, // IID7069 - 8, // IID7070 - 8, // IID7071 - 5, // IID7072 - 5, // IID7073 - 8, // IID7074 - 8, // IID7075 - 8, // IID7076 - 8, // IID7077 - 8, // IID7078 - 8, // IID7079 - 5, // IID7080 - 5, // IID7081 - 8, // IID7082 - 8, // IID7083 - 8, // IID7084 - 8, // IID7085 - 8, // IID7086 - 8, // IID7087 - 5, // IID7088 - 5, // IID7089 - 8, // IID7090 - 8, // IID7091 - 8, // IID7092 - 8, // IID7093 - 8, // IID7094 - 8, // IID7095 - 5, // IID7096 - 5, // IID7097 - 8, // IID7098 - 8, // IID7099 - 8, // IID7100 - 8, // IID7101 - 8, // IID7102 - 8, // IID7103 - 5, // IID7104 - 5, // IID7105 - 8, // IID7106 - 8, // IID7107 - 8, // IID7108 - 8, // IID7109 - 8, // IID7110 - 8, // IID7111 - 5, // IID7112 - 5, // IID7113 - 8, // IID7114 - 8, // IID7115 - 8, // IID7116 - 8, // IID7117 - 8, // IID7118 - 8, // IID7119 - 5, // IID7120 - 5, // IID7121 - 8, // IID7122 - 8, // IID7123 - 8, // IID7124 - 8, // IID7125 - 8, // IID7126 - 8, // IID7127 -#endif // _LP64 - 2, // IID7128 - 3, // IID7129 - 3, // IID7130 - 3, // IID7131 - 3, // IID7132 - 2, // IID7133 - 3, // IID7134 - 3, // IID7135 - 3, // IID7136 - 3, // IID7137 - 2, // IID7138 - 3, // IID7139 - 3, // IID7140 - 3, // IID7141 - 3, // IID7142 -#ifdef _LP64 - 3, // IID7143 - 4, // IID7144 - 4, // IID7145 - 4, // IID7146 - 4, // IID7147 - 3, // IID7148 - 4, // IID7149 - 4, // IID7150 - 4, // IID7151 - 4, // IID7152 - 3, // IID7153 - 4, // IID7154 - 4, // IID7155 - 4, // IID7156 - 4, // IID7157 - 3, // IID7158 - 4, // IID7159 - 4, // IID7160 - 4, // IID7161 - 4, // IID7162 - 3, // IID7163 - 4, // IID7164 - 4, // IID7165 - 4, // IID7166 - 4, // IID7167 - 3, // IID7168 - 4, // IID7169 - 4, // IID7170 - 4, // IID7171 - 4, // IID7172 - 3, // IID7173 - 4, // IID7174 - 4, // IID7175 - 4, // IID7176 - 4, // IID7177 - 3, // IID7178 - 4, // IID7179 - 4, // IID7180 - 4, // IID7181 - 4, // IID7182 - 4, // IID7183 - 5, // IID7184 - 5, // IID7185 - 5, // IID7186 - 5, // IID7187 - 4, // IID7188 - 5, // IID7189 - 5, // IID7190 - 5, // IID7191 - 5, // IID7192 - 4, // IID7193 - 5, // IID7194 - 5, // IID7195 - 5, // IID7196 - 5, // IID7197 - 4, // IID7198 - 5, // IID7199 - 5, // IID7200 - 5, // IID7201 - 5, // IID7202 - 4, // IID7203 - 5, // IID7204 - 5, // IID7205 - 5, // IID7206 - 5, // IID7207 - 4, // IID7208 - 5, // IID7209 - 5, // IID7210 - 5, // IID7211 - 5, // IID7212 - 4, // IID7213 - 5, // IID7214 - 5, // IID7215 - 5, // IID7216 - 5, // IID7217 - 4, // IID7218 - 5, // IID7219 - 5, // IID7220 - 5, // IID7221 - 5, // IID7222 - 4, // IID7223 - 5, // IID7224 - 5, // IID7225 - 5, // IID7226 - 5, // IID7227 - 4, // IID7228 - 5, // IID7229 - 5, // IID7230 - 5, // IID7231 - 5, // IID7232 - 4, // IID7233 - 5, // IID7234 - 5, // IID7235 - 5, // IID7236 - 5, // IID7237 - 4, // IID7238 - 5, // IID7239 - 5, // IID7240 - 5, // IID7241 - 5, // IID7242 - 4, // IID7243 - 5, // IID7244 - 5, // IID7245 - 5, // IID7246 - 5, // IID7247 - 4, // IID7248 - 5, // IID7249 - 5, // IID7250 - 5, // IID7251 - 5, // IID7252 - 4, // IID7253 - 5, // IID7254 - 5, // IID7255 - 5, // IID7256 - 5, // IID7257 - 4, // IID7258 - 5, // IID7259 - 5, // IID7260 - 5, // IID7261 - 5, // IID7262 -#endif // _LP64 - 2, // IID7263 - 3, // IID7264 - 3, // IID7265 - 3, // IID7266 - 3, // IID7267 - 2, // IID7268 - 3, // IID7269 - 3, // IID7270 - 3, // IID7271 - 3, // IID7272 - 2, // IID7273 - 3, // IID7274 - 3, // IID7275 - 3, // IID7276 - 3, // IID7277 -#ifdef _LP64 - 3, // IID7278 - 4, // IID7279 - 4, // IID7280 - 4, // IID7281 - 4, // IID7282 - 3, // IID7283 - 4, // IID7284 - 4, // IID7285 - 4, // IID7286 - 4, // IID7287 - 3, // IID7288 - 4, // IID7289 - 4, // IID7290 - 4, // IID7291 - 4, // IID7292 - 3, // IID7293 - 4, // IID7294 - 4, // IID7295 - 4, // IID7296 - 4, // IID7297 - 3, // IID7298 - 4, // IID7299 - 4, // IID7300 - 4, // IID7301 - 4, // IID7302 - 3, // IID7303 - 4, // IID7304 - 4, // IID7305 - 4, // IID7306 - 4, // IID7307 - 3, // IID7308 - 4, // IID7309 - 4, // IID7310 - 4, // IID7311 - 4, // IID7312 - 3, // IID7313 - 4, // IID7314 - 4, // IID7315 - 4, // IID7316 - 4, // IID7317 - 4, // IID7318 - 5, // IID7319 - 5, // IID7320 - 5, // IID7321 - 5, // IID7322 - 4, // IID7323 - 5, // IID7324 - 5, // IID7325 - 5, // IID7326 - 5, // IID7327 - 4, // IID7328 - 5, // IID7329 - 5, // IID7330 - 5, // IID7331 - 5, // IID7332 - 4, // IID7333 - 5, // IID7334 - 5, // IID7335 - 5, // IID7336 - 5, // IID7337 - 4, // IID7338 - 5, // IID7339 - 5, // IID7340 - 5, // IID7341 - 5, // IID7342 - 4, // IID7343 - 5, // IID7344 - 5, // IID7345 - 5, // IID7346 - 5, // IID7347 - 4, // IID7348 - 5, // IID7349 - 5, // IID7350 - 5, // IID7351 - 5, // IID7352 - 4, // IID7353 - 5, // IID7354 - 5, // IID7355 - 5, // IID7356 - 5, // IID7357 - 4, // IID7358 - 5, // IID7359 - 5, // IID7360 - 5, // IID7361 - 5, // IID7362 - 4, // IID7363 - 5, // IID7364 - 5, // IID7365 - 5, // IID7366 - 5, // IID7367 - 4, // IID7368 - 5, // IID7369 - 5, // IID7370 - 5, // IID7371 - 5, // IID7372 - 4, // IID7373 - 5, // IID7374 - 5, // IID7375 - 5, // IID7376 - 5, // IID7377 - 4, // IID7378 - 5, // IID7379 - 5, // IID7380 - 5, // IID7381 - 5, // IID7382 - 4, // IID7383 - 5, // IID7384 - 5, // IID7385 - 5, // IID7386 - 5, // IID7387 - 4, // IID7388 - 5, // IID7389 - 5, // IID7390 - 5, // IID7391 - 5, // IID7392 - 4, // IID7393 - 5, // IID7394 - 5, // IID7395 - 5, // IID7396 - 5, // IID7397 -#endif // _LP64 - 3, // IID7398 - 3, // IID7399 - 6, // IID7400 - 6, // IID7401 - 6, // IID7402 - 6, // IID7403 - 6, // IID7404 - 6, // IID7405 - 3, // IID7406 - 3, // IID7407 - 6, // IID7408 - 6, // IID7409 - 6, // IID7410 - 6, // IID7411 - 6, // IID7412 - 6, // IID7413 - 3, // IID7414 - 3, // IID7415 - 6, // IID7416 - 6, // IID7417 - 6, // IID7418 - 6, // IID7419 - 6, // IID7420 - 6, // IID7421 -#ifdef _LP64 - 4, // IID7422 - 4, // IID7423 - 7, // IID7424 - 7, // IID7425 - 7, // IID7426 - 7, // IID7427 - 7, // IID7428 - 7, // IID7429 - 4, // IID7430 - 4, // IID7431 - 7, // IID7432 - 7, // IID7433 - 7, // IID7434 - 7, // IID7435 - 7, // IID7436 - 7, // IID7437 - 4, // IID7438 - 4, // IID7439 - 7, // IID7440 - 7, // IID7441 - 7, // IID7442 - 7, // IID7443 - 7, // IID7444 - 7, // IID7445 - 4, // IID7446 - 4, // IID7447 - 7, // IID7448 - 7, // IID7449 - 7, // IID7450 - 7, // IID7451 - 7, // IID7452 - 7, // IID7453 - 4, // IID7454 - 4, // IID7455 - 7, // IID7456 - 7, // IID7457 - 7, // IID7458 - 7, // IID7459 - 7, // IID7460 - 7, // IID7461 - 4, // IID7462 - 4, // IID7463 - 7, // IID7464 - 7, // IID7465 - 7, // IID7466 - 7, // IID7467 - 7, // IID7468 - 7, // IID7469 - 4, // IID7470 - 4, // IID7471 - 7, // IID7472 - 7, // IID7473 - 7, // IID7474 - 7, // IID7475 - 7, // IID7476 - 7, // IID7477 - 4, // IID7478 - 4, // IID7479 - 7, // IID7480 - 7, // IID7481 - 7, // IID7482 - 7, // IID7483 - 7, // IID7484 - 7, // IID7485 - 5, // IID7486 - 5, // IID7487 - 8, // IID7488 - 8, // IID7489 - 8, // IID7490 - 8, // IID7491 - 8, // IID7492 - 8, // IID7493 - 5, // IID7494 - 5, // IID7495 - 8, // IID7496 - 8, // IID7497 - 8, // IID7498 - 8, // IID7499 - 8, // IID7500 - 8, // IID7501 - 5, // IID7502 - 5, // IID7503 - 8, // IID7504 - 8, // IID7505 - 8, // IID7506 - 8, // IID7507 - 8, // IID7508 - 8, // IID7509 - 5, // IID7510 - 5, // IID7511 - 8, // IID7512 - 8, // IID7513 - 8, // IID7514 - 8, // IID7515 - 8, // IID7516 - 8, // IID7517 - 5, // IID7518 - 5, // IID7519 - 8, // IID7520 - 8, // IID7521 - 8, // IID7522 - 8, // IID7523 - 8, // IID7524 - 8, // IID7525 - 5, // IID7526 - 5, // IID7527 - 8, // IID7528 - 8, // IID7529 - 8, // IID7530 - 8, // IID7531 - 8, // IID7532 - 8, // IID7533 - 5, // IID7534 - 5, // IID7535 - 8, // IID7536 - 8, // IID7537 - 8, // IID7538 - 8, // IID7539 - 8, // IID7540 - 8, // IID7541 - 5, // IID7542 - 5, // IID7543 - 8, // IID7544 - 8, // IID7545 - 8, // IID7546 - 8, // IID7547 - 8, // IID7548 - 8, // IID7549 - 5, // IID7550 - 5, // IID7551 - 8, // IID7552 - 8, // IID7553 - 8, // IID7554 - 8, // IID7555 - 8, // IID7556 - 8, // IID7557 - 5, // IID7558 - 5, // IID7559 - 8, // IID7560 - 8, // IID7561 - 8, // IID7562 - 8, // IID7563 - 8, // IID7564 - 8, // IID7565 - 5, // IID7566 - 5, // IID7567 - 8, // IID7568 - 8, // IID7569 - 8, // IID7570 - 8, // IID7571 - 8, // IID7572 - 8, // IID7573 - 5, // IID7574 - 5, // IID7575 - 8, // IID7576 - 8, // IID7577 - 8, // IID7578 - 8, // IID7579 - 8, // IID7580 - 8, // IID7581 - 5, // IID7582 - 5, // IID7583 - 8, // IID7584 - 8, // IID7585 - 8, // IID7586 - 8, // IID7587 - 8, // IID7588 - 8, // IID7589 - 5, // IID7590 - 5, // IID7591 - 8, // IID7592 - 8, // IID7593 - 8, // IID7594 - 8, // IID7595 - 8, // IID7596 - 8, // IID7597 - 5, // IID7598 - 5, // IID7599 - 8, // IID7600 - 8, // IID7601 - 8, // IID7602 - 8, // IID7603 - 8, // IID7604 - 8, // IID7605 - 5, // IID7606 - 5, // IID7607 - 8, // IID7608 - 8, // IID7609 - 8, // IID7610 - 8, // IID7611 - 8, // IID7612 - 8, // IID7613 -#endif // _LP64 - 3, // IID7614 - 3, // IID7615 - 6, // IID7616 - 6, // IID7617 - 6, // IID7618 - 6, // IID7619 - 6, // IID7620 - 6, // IID7621 - 3, // IID7622 - 3, // IID7623 - 6, // IID7624 - 6, // IID7625 - 6, // IID7626 - 6, // IID7627 - 6, // IID7628 - 6, // IID7629 - 3, // IID7630 - 3, // IID7631 - 6, // IID7632 - 6, // IID7633 - 6, // IID7634 - 6, // IID7635 - 6, // IID7636 - 6, // IID7637 -#ifdef _LP64 - 4, // IID7638 - 4, // IID7639 - 7, // IID7640 - 7, // IID7641 - 7, // IID7642 - 7, // IID7643 - 7, // IID7644 - 7, // IID7645 - 4, // IID7646 - 4, // IID7647 - 7, // IID7648 - 7, // IID7649 - 7, // IID7650 - 7, // IID7651 - 7, // IID7652 - 7, // IID7653 - 4, // IID7654 - 4, // IID7655 - 7, // IID7656 - 7, // IID7657 - 7, // IID7658 - 7, // IID7659 - 7, // IID7660 - 7, // IID7661 - 4, // IID7662 - 4, // IID7663 - 7, // IID7664 - 7, // IID7665 - 7, // IID7666 - 7, // IID7667 - 7, // IID7668 - 7, // IID7669 - 4, // IID7670 - 4, // IID7671 - 7, // IID7672 - 7, // IID7673 - 7, // IID7674 - 7, // IID7675 - 7, // IID7676 - 7, // IID7677 - 4, // IID7678 - 4, // IID7679 - 7, // IID7680 - 7, // IID7681 - 7, // IID7682 - 7, // IID7683 - 7, // IID7684 - 7, // IID7685 - 4, // IID7686 - 4, // IID7687 - 7, // IID7688 - 7, // IID7689 - 7, // IID7690 - 7, // IID7691 - 7, // IID7692 - 7, // IID7693 - 4, // IID7694 - 4, // IID7695 - 7, // IID7696 - 7, // IID7697 - 7, // IID7698 - 7, // IID7699 - 7, // IID7700 - 7, // IID7701 - 5, // IID7702 - 5, // IID7703 - 8, // IID7704 - 8, // IID7705 - 8, // IID7706 - 8, // IID7707 - 8, // IID7708 - 8, // IID7709 - 5, // IID7710 - 5, // IID7711 - 8, // IID7712 - 8, // IID7713 - 8, // IID7714 - 8, // IID7715 - 8, // IID7716 - 8, // IID7717 - 5, // IID7718 - 5, // IID7719 - 8, // IID7720 - 8, // IID7721 - 8, // IID7722 - 8, // IID7723 - 8, // IID7724 - 8, // IID7725 - 5, // IID7726 - 5, // IID7727 - 8, // IID7728 - 8, // IID7729 - 8, // IID7730 - 8, // IID7731 - 8, // IID7732 - 8, // IID7733 - 5, // IID7734 - 5, // IID7735 - 8, // IID7736 - 8, // IID7737 - 8, // IID7738 - 8, // IID7739 - 8, // IID7740 - 8, // IID7741 - 5, // IID7742 - 5, // IID7743 - 8, // IID7744 - 8, // IID7745 - 8, // IID7746 - 8, // IID7747 - 8, // IID7748 - 8, // IID7749 - 5, // IID7750 - 5, // IID7751 - 8, // IID7752 - 8, // IID7753 - 8, // IID7754 - 8, // IID7755 - 8, // IID7756 - 8, // IID7757 - 5, // IID7758 - 5, // IID7759 - 8, // IID7760 - 8, // IID7761 - 8, // IID7762 - 8, // IID7763 - 8, // IID7764 - 8, // IID7765 - 5, // IID7766 - 5, // IID7767 - 8, // IID7768 - 8, // IID7769 - 8, // IID7770 - 8, // IID7771 - 8, // IID7772 - 8, // IID7773 - 5, // IID7774 - 5, // IID7775 - 8, // IID7776 - 8, // IID7777 - 8, // IID7778 - 8, // IID7779 - 8, // IID7780 - 8, // IID7781 - 5, // IID7782 - 5, // IID7783 - 8, // IID7784 - 8, // IID7785 - 8, // IID7786 - 8, // IID7787 - 8, // IID7788 - 8, // IID7789 - 5, // IID7790 - 5, // IID7791 - 8, // IID7792 - 8, // IID7793 - 8, // IID7794 - 8, // IID7795 - 8, // IID7796 - 8, // IID7797 - 5, // IID7798 - 5, // IID7799 - 8, // IID7800 - 8, // IID7801 - 8, // IID7802 - 8, // IID7803 - 8, // IID7804 - 8, // IID7805 - 5, // IID7806 - 5, // IID7807 - 8, // IID7808 - 8, // IID7809 - 8, // IID7810 - 8, // IID7811 - 8, // IID7812 - 8, // IID7813 - 5, // IID7814 - 5, // IID7815 - 8, // IID7816 - 8, // IID7817 - 8, // IID7818 - 8, // IID7819 - 8, // IID7820 - 8, // IID7821 - 5, // IID7822 - 5, // IID7823 - 8, // IID7824 - 8, // IID7825 - 8, // IID7826 - 8, // IID7827 - 8, // IID7828 - 8, // IID7829 -#endif // _LP64 - 5, // IID7830 - 5, // IID7831 - 5, // IID7832 - 5, // IID7833 - 5, // IID7834 - 5, // IID7835 - 5, // IID7836 - 5, // IID7837 - 5, // IID7838 - 5, // IID7839 - 5, // IID7840 - 5, // IID7841 - 5, // IID7842 - 5, // IID7843 - 5, // IID7844 - 5, // IID7845 - 5, // IID7846 - 5, // IID7847 - 5, // IID7848 - 5, // IID7849 - 5, // IID7850 - 5, // IID7851 - 5, // IID7852 - 5, // IID7853 -#ifdef _LP64 - 6, // IID7854 - 6, // IID7855 - 6, // IID7856 - 6, // IID7857 - 6, // IID7858 - 6, // IID7859 - 6, // IID7860 - 6, // IID7861 - 6, // IID7862 - 6, // IID7863 - 6, // IID7864 - 6, // IID7865 - 6, // IID7866 - 6, // IID7867 - 6, // IID7868 - 6, // IID7869 - 6, // IID7870 - 6, // IID7871 - 6, // IID7872 - 6, // IID7873 - 6, // IID7874 - 6, // IID7875 - 6, // IID7876 - 6, // IID7877 - 6, // IID7878 - 6, // IID7879 - 6, // IID7880 - 6, // IID7881 - 6, // IID7882 - 6, // IID7883 - 6, // IID7884 - 6, // IID7885 - 6, // IID7886 - 6, // IID7887 - 6, // IID7888 - 6, // IID7889 - 6, // IID7890 - 6, // IID7891 - 6, // IID7892 - 6, // IID7893 - 6, // IID7894 - 6, // IID7895 - 6, // IID7896 - 6, // IID7897 - 6, // IID7898 - 6, // IID7899 - 6, // IID7900 - 6, // IID7901 - 6, // IID7902 - 6, // IID7903 - 6, // IID7904 - 6, // IID7905 - 6, // IID7906 - 6, // IID7907 - 6, // IID7908 - 6, // IID7909 - 6, // IID7910 - 6, // IID7911 - 6, // IID7912 - 6, // IID7913 - 6, // IID7914 - 6, // IID7915 - 6, // IID7916 - 6, // IID7917 - 7, // IID7918 - 7, // IID7919 - 7, // IID7920 - 7, // IID7921 - 7, // IID7922 - 7, // IID7923 - 7, // IID7924 - 7, // IID7925 - 7, // IID7926 - 7, // IID7927 - 7, // IID7928 - 7, // IID7929 - 7, // IID7930 - 7, // IID7931 - 7, // IID7932 - 7, // IID7933 - 7, // IID7934 - 7, // IID7935 - 7, // IID7936 - 7, // IID7937 - 7, // IID7938 - 7, // IID7939 - 7, // IID7940 - 7, // IID7941 - 7, // IID7942 - 7, // IID7943 - 7, // IID7944 - 7, // IID7945 - 7, // IID7946 - 7, // IID7947 - 7, // IID7948 - 7, // IID7949 - 7, // IID7950 - 7, // IID7951 - 7, // IID7952 - 7, // IID7953 - 7, // IID7954 - 7, // IID7955 - 7, // IID7956 - 7, // IID7957 - 7, // IID7958 - 7, // IID7959 - 7, // IID7960 - 7, // IID7961 - 7, // IID7962 - 7, // IID7963 - 7, // IID7964 - 7, // IID7965 - 7, // IID7966 - 7, // IID7967 - 7, // IID7968 - 7, // IID7969 - 7, // IID7970 - 7, // IID7971 - 7, // IID7972 - 7, // IID7973 - 7, // IID7974 - 7, // IID7975 - 7, // IID7976 - 7, // IID7977 - 7, // IID7978 - 7, // IID7979 - 7, // IID7980 - 7, // IID7981 - 7, // IID7982 - 7, // IID7983 - 7, // IID7984 - 7, // IID7985 - 7, // IID7986 - 7, // IID7987 - 7, // IID7988 - 7, // IID7989 - 7, // IID7990 - 7, // IID7991 - 7, // IID7992 - 7, // IID7993 - 7, // IID7994 - 7, // IID7995 - 7, // IID7996 - 7, // IID7997 - 7, // IID7998 - 7, // IID7999 - 7, // IID8000 - 7, // IID8001 - 7, // IID8002 - 7, // IID8003 - 7, // IID8004 - 7, // IID8005 - 7, // IID8006 - 7, // IID8007 - 7, // IID8008 - 7, // IID8009 - 7, // IID8010 - 7, // IID8011 - 7, // IID8012 - 7, // IID8013 - 7, // IID8014 - 7, // IID8015 - 7, // IID8016 - 7, // IID8017 - 7, // IID8018 - 7, // IID8019 - 7, // IID8020 - 7, // IID8021 - 7, // IID8022 - 7, // IID8023 - 7, // IID8024 - 7, // IID8025 - 7, // IID8026 - 7, // IID8027 - 7, // IID8028 - 7, // IID8029 - 7, // IID8030 - 7, // IID8031 - 7, // IID8032 - 7, // IID8033 - 7, // IID8034 - 7, // IID8035 - 7, // IID8036 - 7, // IID8037 - 7, // IID8038 - 7, // IID8039 - 7, // IID8040 - 7, // IID8041 - 7, // IID8042 - 7, // IID8043 - 7, // IID8044 - 7, // IID8045 -#endif // _LP64 - 3, // IID8046 - 3, // IID8047 - 3, // IID8048 - 3, // IID8049 - 3, // IID8050 - 3, // IID8051 - 3, // IID8052 - 3, // IID8053 - 3, // IID8054 - 3, // IID8055 - 3, // IID8056 - 3, // IID8057 -#ifdef _LP64 - 4, // IID8058 - 4, // IID8059 - 4, // IID8060 - 4, // IID8061 - 4, // IID8062 - 4, // IID8063 - 4, // IID8064 - 4, // IID8065 - 4, // IID8066 - 4, // IID8067 - 4, // IID8068 - 4, // IID8069 - 4, // IID8070 - 4, // IID8071 - 4, // IID8072 - 4, // IID8073 - 4, // IID8074 - 4, // IID8075 - 4, // IID8076 - 4, // IID8077 - 4, // IID8078 - 4, // IID8079 - 4, // IID8080 - 4, // IID8081 - 4, // IID8082 - 4, // IID8083 - 4, // IID8084 - 4, // IID8085 - 4, // IID8086 - 4, // IID8087 - 4, // IID8088 - 4, // IID8089 - 5, // IID8090 - 5, // IID8091 - 5, // IID8092 - 5, // IID8093 - 5, // IID8094 - 5, // IID8095 - 5, // IID8096 - 5, // IID8097 - 5, // IID8098 - 5, // IID8099 - 5, // IID8100 - 5, // IID8101 - 5, // IID8102 - 5, // IID8103 - 5, // IID8104 - 5, // IID8105 - 5, // IID8106 - 5, // IID8107 - 5, // IID8108 - 5, // IID8109 - 5, // IID8110 - 5, // IID8111 - 5, // IID8112 - 5, // IID8113 - 5, // IID8114 - 5, // IID8115 - 5, // IID8116 - 5, // IID8117 - 5, // IID8118 - 5, // IID8119 - 5, // IID8120 - 5, // IID8121 - 5, // IID8122 - 5, // IID8123 - 5, // IID8124 - 5, // IID8125 - 5, // IID8126 - 5, // IID8127 - 5, // IID8128 - 5, // IID8129 - 5, // IID8130 - 5, // IID8131 - 5, // IID8132 - 5, // IID8133 - 5, // IID8134 - 5, // IID8135 - 5, // IID8136 - 5, // IID8137 - 5, // IID8138 - 5, // IID8139 - 5, // IID8140 - 5, // IID8141 - 5, // IID8142 - 5, // IID8143 - 5, // IID8144 - 5, // IID8145 - 5, // IID8146 - 5, // IID8147 - 5, // IID8148 - 5, // IID8149 - 5, // IID8150 - 5, // IID8151 - 5, // IID8152 - 5, // IID8153 -#endif // _LP64 - 6, // IID8154 - 6, // IID8155 - 6, // IID8156 - 6, // IID8157 - 6, // IID8158 - 6, // IID8159 - 6, // IID8160 - 6, // IID8161 - 6, // IID8162 - 6, // IID8163 - 6, // IID8164 - 6, // IID8165 - 6, // IID8166 - 6, // IID8167 - 6, // IID8168 - 6, // IID8169 - 6, // IID8170 - 6, // IID8171 - 6, // IID8172 - 6, // IID8173 - 6, // IID8174 - 6, // IID8175 - 6, // IID8176 - 6, // IID8177 -#ifdef _LP64 - 7, // IID8178 - 7, // IID8179 - 7, // IID8180 - 7, // IID8181 - 7, // IID8182 - 7, // IID8183 - 7, // IID8184 - 7, // IID8185 - 7, // IID8186 - 7, // IID8187 - 7, // IID8188 - 7, // IID8189 - 7, // IID8190 - 7, // IID8191 - 7, // IID8192 - 7, // IID8193 - 7, // IID8194 - 7, // IID8195 - 7, // IID8196 - 7, // IID8197 - 7, // IID8198 - 7, // IID8199 - 7, // IID8200 - 7, // IID8201 - 7, // IID8202 - 7, // IID8203 - 7, // IID8204 - 7, // IID8205 - 7, // IID8206 - 7, // IID8207 - 7, // IID8208 - 7, // IID8209 - 7, // IID8210 - 7, // IID8211 - 7, // IID8212 - 7, // IID8213 - 7, // IID8214 - 7, // IID8215 - 7, // IID8216 - 7, // IID8217 - 7, // IID8218 - 7, // IID8219 - 7, // IID8220 - 7, // IID8221 - 7, // IID8222 - 7, // IID8223 - 7, // IID8224 - 7, // IID8225 - 7, // IID8226 - 7, // IID8227 - 7, // IID8228 - 7, // IID8229 - 7, // IID8230 - 7, // IID8231 - 7, // IID8232 - 7, // IID8233 - 7, // IID8234 - 7, // IID8235 - 7, // IID8236 - 7, // IID8237 - 7, // IID8238 - 7, // IID8239 - 7, // IID8240 - 7, // IID8241 - 8, // IID8242 - 8, // IID8243 - 8, // IID8244 - 8, // IID8245 - 8, // IID8246 - 8, // IID8247 - 8, // IID8248 - 8, // IID8249 - 8, // IID8250 - 8, // IID8251 - 8, // IID8252 - 8, // IID8253 - 8, // IID8254 - 8, // IID8255 - 8, // IID8256 - 8, // IID8257 - 8, // IID8258 - 8, // IID8259 - 8, // IID8260 - 8, // IID8261 - 8, // IID8262 - 8, // IID8263 - 8, // IID8264 - 8, // IID8265 - 8, // IID8266 - 8, // IID8267 - 8, // IID8268 - 8, // IID8269 - 8, // IID8270 - 8, // IID8271 - 8, // IID8272 - 8, // IID8273 - 8, // IID8274 - 8, // IID8275 - 8, // IID8276 - 8, // IID8277 - 8, // IID8278 - 8, // IID8279 - 8, // IID8280 - 8, // IID8281 - 8, // IID8282 - 8, // IID8283 - 8, // IID8284 - 8, // IID8285 - 8, // IID8286 - 8, // IID8287 - 8, // IID8288 - 8, // IID8289 - 8, // IID8290 - 8, // IID8291 - 8, // IID8292 - 8, // IID8293 - 8, // IID8294 - 8, // IID8295 - 8, // IID8296 - 8, // IID8297 - 8, // IID8298 - 8, // IID8299 - 8, // IID8300 - 8, // IID8301 - 8, // IID8302 - 8, // IID8303 - 8, // IID8304 - 8, // IID8305 - 8, // IID8306 - 8, // IID8307 - 8, // IID8308 - 8, // IID8309 - 8, // IID8310 - 8, // IID8311 - 8, // IID8312 - 8, // IID8313 - 8, // IID8314 - 8, // IID8315 - 8, // IID8316 - 8, // IID8317 - 8, // IID8318 - 8, // IID8319 - 8, // IID8320 - 8, // IID8321 - 8, // IID8322 - 8, // IID8323 - 8, // IID8324 - 8, // IID8325 - 8, // IID8326 - 8, // IID8327 - 8, // IID8328 - 8, // IID8329 - 8, // IID8330 - 8, // IID8331 - 8, // IID8332 - 8, // IID8333 - 8, // IID8334 - 8, // IID8335 - 8, // IID8336 - 8, // IID8337 - 8, // IID8338 - 8, // IID8339 - 8, // IID8340 - 8, // IID8341 - 8, // IID8342 - 8, // IID8343 - 8, // IID8344 - 8, // IID8345 - 8, // IID8346 - 8, // IID8347 - 8, // IID8348 - 8, // IID8349 - 8, // IID8350 - 8, // IID8351 - 8, // IID8352 - 8, // IID8353 - 8, // IID8354 - 8, // IID8355 - 8, // IID8356 - 8, // IID8357 - 8, // IID8358 - 8, // IID8359 - 8, // IID8360 - 8, // IID8361 - 8, // IID8362 - 8, // IID8363 - 8, // IID8364 - 8, // IID8365 - 8, // IID8366 - 8, // IID8367 - 8, // IID8368 - 8, // IID8369 -#endif // _LP64 - 6, // IID8370 - 6, // IID8371 - 6, // IID8372 - 6, // IID8373 - 6, // IID8374 - 6, // IID8375 - 6, // IID8376 - 6, // IID8377 - 6, // IID8378 - 6, // IID8379 - 6, // IID8380 - 6, // IID8381 - 6, // IID8382 - 6, // IID8383 - 6, // IID8384 - 6, // IID8385 - 6, // IID8386 - 6, // IID8387 - 6, // IID8388 - 6, // IID8389 - 6, // IID8390 - 6, // IID8391 - 6, // IID8392 - 6, // IID8393 -#ifdef _LP64 - 7, // IID8394 - 7, // IID8395 - 7, // IID8396 - 7, // IID8397 - 7, // IID8398 - 7, // IID8399 - 7, // IID8400 - 7, // IID8401 - 7, // IID8402 - 7, // IID8403 - 7, // IID8404 - 7, // IID8405 - 7, // IID8406 - 7, // IID8407 - 7, // IID8408 - 7, // IID8409 - 7, // IID8410 - 7, // IID8411 - 7, // IID8412 - 7, // IID8413 - 7, // IID8414 - 7, // IID8415 - 7, // IID8416 - 7, // IID8417 - 7, // IID8418 - 7, // IID8419 - 7, // IID8420 - 7, // IID8421 - 7, // IID8422 - 7, // IID8423 - 7, // IID8424 - 7, // IID8425 - 7, // IID8426 - 7, // IID8427 - 7, // IID8428 - 7, // IID8429 - 7, // IID8430 - 7, // IID8431 - 7, // IID8432 - 7, // IID8433 - 7, // IID8434 - 7, // IID8435 - 7, // IID8436 - 7, // IID8437 - 7, // IID8438 - 7, // IID8439 - 7, // IID8440 - 7, // IID8441 - 7, // IID8442 - 7, // IID8443 - 7, // IID8444 - 7, // IID8445 - 7, // IID8446 - 7, // IID8447 - 7, // IID8448 - 7, // IID8449 - 7, // IID8450 - 7, // IID8451 - 7, // IID8452 - 7, // IID8453 - 7, // IID8454 - 7, // IID8455 - 7, // IID8456 - 7, // IID8457 - 8, // IID8458 - 8, // IID8459 - 8, // IID8460 - 8, // IID8461 - 8, // IID8462 - 8, // IID8463 - 8, // IID8464 - 8, // IID8465 - 8, // IID8466 - 8, // IID8467 - 8, // IID8468 - 8, // IID8469 - 8, // IID8470 - 8, // IID8471 - 8, // IID8472 - 8, // IID8473 - 8, // IID8474 - 8, // IID8475 - 8, // IID8476 - 8, // IID8477 - 8, // IID8478 - 8, // IID8479 - 8, // IID8480 - 8, // IID8481 - 8, // IID8482 - 8, // IID8483 - 8, // IID8484 - 8, // IID8485 - 8, // IID8486 - 8, // IID8487 - 8, // IID8488 - 8, // IID8489 - 8, // IID8490 - 8, // IID8491 - 8, // IID8492 - 8, // IID8493 - 8, // IID8494 - 8, // IID8495 - 8, // IID8496 - 8, // IID8497 - 8, // IID8498 - 8, // IID8499 - 8, // IID8500 - 8, // IID8501 - 8, // IID8502 - 8, // IID8503 - 8, // IID8504 - 8, // IID8505 - 8, // IID8506 - 8, // IID8507 - 8, // IID8508 - 8, // IID8509 - 8, // IID8510 - 8, // IID8511 - 8, // IID8512 - 8, // IID8513 - 8, // IID8514 - 8, // IID8515 - 8, // IID8516 - 8, // IID8517 - 8, // IID8518 - 8, // IID8519 - 8, // IID8520 - 8, // IID8521 - 8, // IID8522 - 8, // IID8523 - 8, // IID8524 - 8, // IID8525 - 8, // IID8526 - 8, // IID8527 - 8, // IID8528 - 8, // IID8529 - 8, // IID8530 - 8, // IID8531 - 8, // IID8532 - 8, // IID8533 - 8, // IID8534 - 8, // IID8535 - 8, // IID8536 - 8, // IID8537 - 8, // IID8538 - 8, // IID8539 - 8, // IID8540 - 8, // IID8541 - 8, // IID8542 - 8, // IID8543 - 8, // IID8544 - 8, // IID8545 - 8, // IID8546 - 8, // IID8547 - 8, // IID8548 - 8, // IID8549 - 8, // IID8550 - 8, // IID8551 - 8, // IID8552 - 8, // IID8553 - 8, // IID8554 - 8, // IID8555 - 8, // IID8556 - 8, // IID8557 - 8, // IID8558 - 8, // IID8559 - 8, // IID8560 - 8, // IID8561 - 8, // IID8562 - 8, // IID8563 - 8, // IID8564 - 8, // IID8565 - 8, // IID8566 - 8, // IID8567 - 8, // IID8568 - 8, // IID8569 - 8, // IID8570 - 8, // IID8571 - 8, // IID8572 - 8, // IID8573 - 8, // IID8574 - 8, // IID8575 - 8, // IID8576 - 8, // IID8577 - 8, // IID8578 - 8, // IID8579 - 8, // IID8580 - 8, // IID8581 - 8, // IID8582 - 8, // IID8583 - 8, // IID8584 - 8, // IID8585 -#endif // _LP64 - 8, // IID8586 -#ifdef _LP64 - 7, // IID8587 - 9, // IID8588 - 9, // IID8589 - 9, // IID8590 - 9, // IID8591 - 9, // IID8592 - 9, // IID8593 - 9, // IID8594 - 9, // IID8595 - 8, // IID8596 - 9, // IID8597 - 9, // IID8598 - 9, // IID8599 - 9, // IID8600 - 8, // IID8601 - 8, // IID8602 - 9, // IID8603 - 9, // IID8604 - 8, // IID8605 - 9, // IID8606 - 8, // IID8607 - 9, // IID8608 - 9, // IID8609 - 9, // IID8610 - 9, // IID8611 - 9, // IID8612 -#endif // _LP64 - 8, // IID8613 -#ifdef _LP64 - 7, // IID8614 - 9, // IID8615 - 8, // IID8616 - 9, // IID8617 - 9, // IID8618 - 9, // IID8619 - 8, // IID8620 - 9, // IID8621 - 9, // IID8622 - 9, // IID8623 - 9, // IID8624 - 9, // IID8625 - 8, // IID8626 - 9, // IID8627 - 9, // IID8628 - 9, // IID8629 - 9, // IID8630 - 9, // IID8631 - 9, // IID8632 - 9, // IID8633 - 9, // IID8634 - 9, // IID8635 - 8, // IID8636 - 9, // IID8637 - 9, // IID8638 - 8, // IID8639 -#endif // _LP64 - 8, // IID8640 -#ifdef _LP64 - 9, // IID8641 - 8, // IID8642 - 9, // IID8643 - 8, // IID8644 - 8, // IID8645 - 9, // IID8646 - 9, // IID8647 - 9, // IID8648 - 9, // IID8649 - 9, // IID8650 - 9, // IID8651 - 8, // IID8652 - 9, // IID8653 - 9, // IID8654 - 9, // IID8655 - 9, // IID8656 - 9, // IID8657 - 9, // IID8658 - 9, // IID8659 - 8, // IID8660 - 9, // IID8661 - 9, // IID8662 - 9, // IID8663 - 9, // IID8664 - 9, // IID8665 - 9, // IID8666 -#endif // _LP64 - 8, // IID8667 -#ifdef _LP64 - 7, // IID8668 - 9, // IID8669 - 9, // IID8670 - 9, // IID8671 - 9, // IID8672 - 9, // IID8673 - 9, // IID8674 - 8, // IID8675 - 9, // IID8676 - 9, // IID8677 - 9, // IID8678 - 9, // IID8679 - 9, // IID8680 - 9, // IID8681 - 9, // IID8682 - 8, // IID8683 - 9, // IID8684 - 8, // IID8685 - 9, // IID8686 - 8, // IID8687 - 9, // IID8688 - 9, // IID8689 - 9, // IID8690 - 8, // IID8691 - 9, // IID8692 - 9, // IID8693 -#endif // _LP64 - 8, // IID8694 -#ifdef _LP64 - 9, // IID8695 - 9, // IID8696 - 9, // IID8697 - 9, // IID8698 - 9, // IID8699 - 9, // IID8700 - 8, // IID8701 - 9, // IID8702 - 9, // IID8703 - 9, // IID8704 - 9, // IID8705 - 9, // IID8706 - 9, // IID8707 - 9, // IID8708 - 8, // IID8709 - 9, // IID8710 - 9, // IID8711 - 9, // IID8712 - 9, // IID8713 - 9, // IID8714 - 8, // IID8715 - 9, // IID8716 - 9, // IID8717 - 9, // IID8718 - 9, // IID8719 - 9, // IID8720 -#endif // _LP64 - 8, // IID8721 -#ifdef _LP64 - 7, // IID8722 - 8, // IID8723 - 9, // IID8724 - 8, // IID8725 - 9, // IID8726 - 9, // IID8727 - 9, // IID8728 - 8, // IID8729 - 8, // IID8730 - 9, // IID8731 - 9, // IID8732 - 9, // IID8733 - 8, // IID8734 - 9, // IID8735 - 9, // IID8736 - 9, // IID8737 - 9, // IID8738 - 9, // IID8739 - 9, // IID8740 - 9, // IID8741 - 8, // IID8742 - 9, // IID8743 - 9, // IID8744 - 9, // IID8745 - 9, // IID8746 - 9, // IID8747 -#endif // _LP64 - 8, // IID8748 -#ifdef _LP64 - 7, // IID8749 - 9, // IID8750 - 9, // IID8751 - 8, // IID8752 - 9, // IID8753 - 9, // IID8754 - 9, // IID8755 - 9, // IID8756 - 9, // IID8757 - 9, // IID8758 - 8, // IID8759 - 9, // IID8760 - 9, // IID8761 - 9, // IID8762 - 9, // IID8763 - 9, // IID8764 - 9, // IID8765 - 9, // IID8766 - 9, // IID8767 - 9, // IID8768 - 9, // IID8769 - 9, // IID8770 - 9, // IID8771 - 9, // IID8772 - 9, // IID8773 - 9, // IID8774 -#endif // _LP64 - 8, // IID8775 -#ifdef _LP64 - 9, // IID8776 - 9, // IID8777 - 9, // IID8778 - 9, // IID8779 - 9, // IID8780 - 9, // IID8781 - 9, // IID8782 - 8, // IID8783 - 9, // IID8784 - 9, // IID8785 - 9, // IID8786 - 9, // IID8787 - 8, // IID8788 - 9, // IID8789 - 9, // IID8790 - 9, // IID8791 - 8, // IID8792 - 9, // IID8793 - 9, // IID8794 - 9, // IID8795 - 9, // IID8796 - 9, // IID8797 - 9, // IID8798 - 9, // IID8799 - 9, // IID8800 - 9, // IID8801 -#endif // _LP64 - 8, // IID8802 -#ifdef _LP64 - 9, // IID8803 - 9, // IID8804 - 9, // IID8805 - 9, // IID8806 - 9, // IID8807 - 9, // IID8808 - 8, // IID8809 - 9, // IID8810 - 9, // IID8811 - 9, // IID8812 - 9, // IID8813 - 9, // IID8814 - 8, // IID8815 - 9, // IID8816 - 8, // IID8817 - 9, // IID8818 - 9, // IID8819 - 8, // IID8820 - 9, // IID8821 - 8, // IID8822 - 9, // IID8823 - 9, // IID8824 - 8, // IID8825 - 9, // IID8826 - 9, // IID8827 - 9, // IID8828 -#endif // _LP64 - 7, // IID8829 -#ifdef _LP64 - 9, // IID8830 - 9, // IID8831 - 9, // IID8832 - 9, // IID8833 - 9, // IID8834 - 9, // IID8835 - 9, // IID8836 - 9, // IID8837 - 8, // IID8838 - 9, // IID8839 - 9, // IID8840 - 9, // IID8841 - 9, // IID8842 - 9, // IID8843 - 9, // IID8844 - 9, // IID8845 - 9, // IID8846 - 9, // IID8847 - 9, // IID8848 - 9, // IID8849 - 9, // IID8850 - 9, // IID8851 - 9, // IID8852 - 9, // IID8853 - 9, // IID8854 - 9, // IID8855 -#endif // _LP64 - 8, // IID8856 -#ifdef _LP64 - 7, // IID8857 - 8, // IID8858 - 8, // IID8859 - 9, // IID8860 - 9, // IID8861 - 9, // IID8862 - 9, // IID8863 - 9, // IID8864 - 9, // IID8865 - 9, // IID8866 - 9, // IID8867 - 9, // IID8868 - 9, // IID8869 - 9, // IID8870 - 9, // IID8871 - 9, // IID8872 - 9, // IID8873 - 9, // IID8874 - 9, // IID8875 - 9, // IID8876 - 9, // IID8877 - 9, // IID8878 - 8, // IID8879 - 8, // IID8880 - 8, // IID8881 - 8, // IID8882 -#endif // _LP64 - 8, // IID8883 -#ifdef _LP64 - 9, // IID8884 - 9, // IID8885 - 9, // IID8886 - 9, // IID8887 - 9, // IID8888 - 9, // IID8889 - 8, // IID8890 - 9, // IID8891 - 9, // IID8892 - 9, // IID8893 - 9, // IID8894 - 9, // IID8895 - 9, // IID8896 - 9, // IID8897 - 8, // IID8898 - 9, // IID8899 - 9, // IID8900 - 9, // IID8901 - 9, // IID8902 - 9, // IID8903 - 9, // IID8904 - 9, // IID8905 - 9, // IID8906 - 9, // IID8907 - 8, // IID8908 - 9, // IID8909 -#endif // _LP64 - 8, // IID8910 -#ifdef _LP64 - 9, // IID8911 - 8, // IID8912 - 9, // IID8913 - 9, // IID8914 - 9, // IID8915 - 9, // IID8916 - 9, // IID8917 - 9, // IID8918 - 9, // IID8919 - 9, // IID8920 - 9, // IID8921 - 9, // IID8922 - 9, // IID8923 - 9, // IID8924 - 8, // IID8925 - 9, // IID8926 - 9, // IID8927 - 9, // IID8928 - 8, // IID8929 - 9, // IID8930 - 9, // IID8931 - 9, // IID8932 - 9, // IID8933 - 9, // IID8934 - 9, // IID8935 - 9, // IID8936 -#endif // _LP64 - 8, // IID8937 -#ifdef _LP64 - 9, // IID8938 - 9, // IID8939 - 9, // IID8940 - 9, // IID8941 - 9, // IID8942 - 9, // IID8943 - 9, // IID8944 - 9, // IID8945 - 9, // IID8946 - 8, // IID8947 - 9, // IID8948 - 9, // IID8949 - 8, // IID8950 - 9, // IID8951 - 9, // IID8952 - 9, // IID8953 - 9, // IID8954 - 8, // IID8955 - 9, // IID8956 - 9, // IID8957 - 9, // IID8958 - 9, // IID8959 - 9, // IID8960 - 9, // IID8961 - 9, // IID8962 - 9, // IID8963 -#endif // _LP64 - 7, // IID8964 -#ifdef _LP64 - 9, // IID8965 - 8, // IID8966 - 9, // IID8967 - 9, // IID8968 - 9, // IID8969 - 9, // IID8970 - 9, // IID8971 - 9, // IID8972 - 8, // IID8973 - 9, // IID8974 - 9, // IID8975 - 9, // IID8976 - 8, // IID8977 - 9, // IID8978 - 9, // IID8979 - 9, // IID8980 - 9, // IID8981 - 9, // IID8982 - 9, // IID8983 - 9, // IID8984 - 9, // IID8985 - 9, // IID8986 - 9, // IID8987 - 9, // IID8988 - 8, // IID8989 - 9, // IID8990 -#endif // _LP64 - 8, // IID8991 -#ifdef _LP64 - 9, // IID8992 - 9, // IID8993 - 9, // IID8994 - 9, // IID8995 - 9, // IID8996 - 9, // IID8997 - 9, // IID8998 - 9, // IID8999 - 9, // IID9000 - 9, // IID9001 - 9, // IID9002 - 9, // IID9003 - 9, // IID9004 - 9, // IID9005 - 9, // IID9006 - 9, // IID9007 - 9, // IID9008 - 9, // IID9009 - 8, // IID9010 - 8, // IID9011 - 9, // IID9012 - 9, // IID9013 - 9, // IID9014 - 8, // IID9015 - 8, // IID9016 - 9, // IID9017 -#endif // _LP64 - 3, // IID9018 - 3, // IID9019 - 3, // IID9020 -#ifdef _LP64 - 4, // IID9021 - 4, // IID9022 - 4, // IID9023 - 4, // IID9024 - 4, // IID9025 - 4, // IID9026 - 4, // IID9027 - 4, // IID9028 - 4, // IID9029 - 4, // IID9030 - 4, // IID9031 - 4, // IID9032 - 4, // IID9033 - 4, // IID9034 - 4, // IID9035 - 4, // IID9036 - 4, // IID9037 - 4, // IID9038 - 4, // IID9039 - 4, // IID9040 - 4, // IID9041 - 4, // IID9042 - 4, // IID9043 - 4, // IID9044 -#endif // _LP64 - 3, // IID9045 - 3, // IID9046 - 3, // IID9047 -#ifdef _LP64 - 4, // IID9048 - 4, // IID9049 - 4, // IID9050 - 4, // IID9051 - 4, // IID9052 - 4, // IID9053 - 4, // IID9054 - 4, // IID9055 - 4, // IID9056 - 4, // IID9057 - 4, // IID9058 - 4, // IID9059 - 4, // IID9060 - 4, // IID9061 - 4, // IID9062 - 4, // IID9063 - 4, // IID9064 - 4, // IID9065 - 4, // IID9066 - 4, // IID9067 - 4, // IID9068 - 4, // IID9069 - 4, // IID9070 - 4, // IID9071 -#endif // _LP64 - 3, // IID9072 - 3, // IID9073 - 3, // IID9074 -#ifdef _LP64 - 4, // IID9075 - 4, // IID9076 - 4, // IID9077 - 4, // IID9078 - 4, // IID9079 - 4, // IID9080 - 4, // IID9081 - 4, // IID9082 - 4, // IID9083 - 4, // IID9084 - 4, // IID9085 - 4, // IID9086 - 4, // IID9087 - 4, // IID9088 - 4, // IID9089 - 4, // IID9090 - 4, // IID9091 - 4, // IID9092 - 4, // IID9093 - 4, // IID9094 - 4, // IID9095 - 4, // IID9096 - 4, // IID9097 - 4, // IID9098 -#endif // _LP64 - 3, // IID9099 - 3, // IID9100 - 3, // IID9101 -#ifdef _LP64 - 4, // IID9102 - 4, // IID9103 - 4, // IID9104 - 4, // IID9105 - 4, // IID9106 - 4, // IID9107 - 4, // IID9108 - 4, // IID9109 - 4, // IID9110 - 4, // IID9111 - 4, // IID9112 - 4, // IID9113 - 4, // IID9114 - 4, // IID9115 - 4, // IID9116 - 4, // IID9117 - 4, // IID9118 - 4, // IID9119 - 4, // IID9120 - 4, // IID9121 - 4, // IID9122 - 4, // IID9123 - 4, // IID9124 - 4, // IID9125 -#endif // _LP64 - 3, // IID9126 - 3, // IID9127 - 3, // IID9128 -#ifdef _LP64 - 4, // IID9129 - 4, // IID9130 - 4, // IID9131 - 4, // IID9132 - 4, // IID9133 - 4, // IID9134 - 4, // IID9135 - 4, // IID9136 - 4, // IID9137 - 4, // IID9138 - 4, // IID9139 - 4, // IID9140 - 4, // IID9141 - 4, // IID9142 - 4, // IID9143 - 4, // IID9144 - 4, // IID9145 - 4, // IID9146 - 4, // IID9147 - 4, // IID9148 - 4, // IID9149 - 4, // IID9150 - 4, // IID9151 - 4, // IID9152 -#endif // _LP64 - 3, // IID9153 - 3, // IID9154 - 3, // IID9155 -#ifdef _LP64 - 4, // IID9156 - 4, // IID9157 - 4, // IID9158 - 4, // IID9159 - 4, // IID9160 - 4, // IID9161 - 4, // IID9162 - 4, // IID9163 - 4, // IID9164 - 4, // IID9165 - 4, // IID9166 - 4, // IID9167 - 4, // IID9168 - 4, // IID9169 - 4, // IID9170 - 4, // IID9171 - 4, // IID9172 - 4, // IID9173 - 4, // IID9174 - 4, // IID9175 - 4, // IID9176 - 4, // IID9177 - 4, // IID9178 - 4, // IID9179 -#endif // _LP64 - 3, // IID9180 - 3, // IID9181 - 3, // IID9182 -#ifdef _LP64 - 4, // IID9183 - 4, // IID9184 - 4, // IID9185 - 4, // IID9186 - 4, // IID9187 - 4, // IID9188 - 4, // IID9189 - 4, // IID9190 - 4, // IID9191 - 4, // IID9192 - 4, // IID9193 - 4, // IID9194 - 4, // IID9195 - 4, // IID9196 - 4, // IID9197 - 4, // IID9198 - 4, // IID9199 - 4, // IID9200 - 4, // IID9201 - 4, // IID9202 - 4, // IID9203 - 4, // IID9204 - 4, // IID9205 - 4, // IID9206 -#endif // _LP64 - 3, // IID9207 - 3, // IID9208 - 3, // IID9209 -#ifdef _LP64 - 4, // IID9210 - 4, // IID9211 - 4, // IID9212 - 4, // IID9213 - 4, // IID9214 - 4, // IID9215 - 4, // IID9216 - 4, // IID9217 - 4, // IID9218 - 4, // IID9219 - 4, // IID9220 - 4, // IID9221 - 4, // IID9222 - 4, // IID9223 - 4, // IID9224 - 4, // IID9225 - 4, // IID9226 - 4, // IID9227 - 4, // IID9228 - 4, // IID9229 - 4, // IID9230 - 4, // IID9231 - 4, // IID9232 - 4, // IID9233 -#endif // _LP64 - 3, // IID9234 - 3, // IID9235 - 3, // IID9236 -#ifdef _LP64 - 4, // IID9237 - 4, // IID9238 - 4, // IID9239 - 4, // IID9240 - 4, // IID9241 - 4, // IID9242 - 4, // IID9243 - 4, // IID9244 - 4, // IID9245 - 4, // IID9246 - 4, // IID9247 - 4, // IID9248 - 4, // IID9249 - 4, // IID9250 - 4, // IID9251 - 4, // IID9252 - 4, // IID9253 - 4, // IID9254 - 4, // IID9255 - 4, // IID9256 - 4, // IID9257 - 4, // IID9258 - 4, // IID9259 - 4, // IID9260 -#endif // _LP64 - 3, // IID9261 - 3, // IID9262 - 3, // IID9263 -#ifdef _LP64 - 4, // IID9264 - 4, // IID9265 - 4, // IID9266 - 4, // IID9267 - 4, // IID9268 - 4, // IID9269 - 4, // IID9270 - 4, // IID9271 - 4, // IID9272 - 4, // IID9273 - 4, // IID9274 - 4, // IID9275 - 4, // IID9276 - 4, // IID9277 - 4, // IID9278 - 4, // IID9279 - 4, // IID9280 - 4, // IID9281 - 4, // IID9282 - 4, // IID9283 - 4, // IID9284 - 4, // IID9285 - 4, // IID9286 - 4, // IID9287 -#endif // _LP64 - 3, // IID9288 - 3, // IID9289 - 3, // IID9290 -#ifdef _LP64 - 4, // IID9291 - 4, // IID9292 - 4, // IID9293 - 4, // IID9294 - 4, // IID9295 - 4, // IID9296 - 4, // IID9297 - 4, // IID9298 - 4, // IID9299 - 4, // IID9300 - 4, // IID9301 - 4, // IID9302 - 4, // IID9303 - 4, // IID9304 - 4, // IID9305 - 4, // IID9306 - 4, // IID9307 - 4, // IID9308 - 4, // IID9309 - 4, // IID9310 - 4, // IID9311 - 4, // IID9312 - 4, // IID9313 - 4, // IID9314 -#endif // _LP64 - 3, // IID9315 - 3, // IID9316 - 3, // IID9317 -#ifdef _LP64 - 4, // IID9318 - 4, // IID9319 - 4, // IID9320 - 4, // IID9321 - 4, // IID9322 - 4, // IID9323 - 4, // IID9324 - 4, // IID9325 - 4, // IID9326 - 4, // IID9327 - 4, // IID9328 - 4, // IID9329 - 4, // IID9330 - 4, // IID9331 - 4, // IID9332 - 4, // IID9333 - 4, // IID9334 - 4, // IID9335 - 4, // IID9336 - 4, // IID9337 - 4, // IID9338 - 4, // IID9339 - 4, // IID9340 - 4, // IID9341 -#endif // _LP64 - 3, // IID9342 - 3, // IID9343 - 3, // IID9344 -#ifdef _LP64 - 4, // IID9345 - 4, // IID9346 - 4, // IID9347 - 4, // IID9348 - 4, // IID9349 - 4, // IID9350 - 4, // IID9351 - 4, // IID9352 - 4, // IID9353 - 4, // IID9354 - 4, // IID9355 - 4, // IID9356 - 4, // IID9357 - 4, // IID9358 - 4, // IID9359 - 4, // IID9360 - 4, // IID9361 - 4, // IID9362 - 4, // IID9363 - 4, // IID9364 - 4, // IID9365 - 4, // IID9366 - 4, // IID9367 - 4, // IID9368 -#endif // _LP64 - 3, // IID9369 - 3, // IID9370 - 3, // IID9371 -#ifdef _LP64 - 4, // IID9372 - 4, // IID9373 - 4, // IID9374 - 4, // IID9375 - 4, // IID9376 - 4, // IID9377 - 4, // IID9378 - 4, // IID9379 - 4, // IID9380 - 4, // IID9381 - 4, // IID9382 - 4, // IID9383 - 4, // IID9384 - 4, // IID9385 - 4, // IID9386 - 4, // IID9387 - 4, // IID9388 - 4, // IID9389 - 4, // IID9390 - 4, // IID9391 - 4, // IID9392 - 4, // IID9393 - 4, // IID9394 - 4, // IID9395 -#endif // _LP64 - 3, // IID9396 - 3, // IID9397 - 3, // IID9398 -#ifdef _LP64 - 4, // IID9399 - 4, // IID9400 - 4, // IID9401 - 4, // IID9402 - 4, // IID9403 - 4, // IID9404 - 4, // IID9405 - 4, // IID9406 - 4, // IID9407 - 4, // IID9408 - 4, // IID9409 - 4, // IID9410 - 4, // IID9411 - 4, // IID9412 - 4, // IID9413 - 4, // IID9414 - 4, // IID9415 - 4, // IID9416 - 4, // IID9417 - 4, // IID9418 - 4, // IID9419 - 4, // IID9420 - 4, // IID9421 - 4, // IID9422 -#endif // _LP64 - 3, // IID9423 - 3, // IID9424 - 3, // IID9425 -#ifdef _LP64 - 4, // IID9426 - 4, // IID9427 - 4, // IID9428 - 4, // IID9429 - 4, // IID9430 - 4, // IID9431 - 4, // IID9432 - 4, // IID9433 - 4, // IID9434 - 4, // IID9435 - 4, // IID9436 - 4, // IID9437 - 4, // IID9438 - 4, // IID9439 - 4, // IID9440 - 4, // IID9441 - 4, // IID9442 - 4, // IID9443 - 4, // IID9444 - 4, // IID9445 - 4, // IID9446 - 4, // IID9447 - 4, // IID9448 - 4, // IID9449 -#endif // _LP64 - 2, // IID9450 - 2, // IID9451 - 2, // IID9452 -#ifdef _LP64 - 3, // IID9453 - 3, // IID9454 - 3, // IID9455 - 3, // IID9456 - 3, // IID9457 - 3, // IID9458 - 3, // IID9459 - 3, // IID9460 - 4, // IID9461 - 4, // IID9462 - 4, // IID9463 - 4, // IID9464 - 4, // IID9465 - 4, // IID9466 - 4, // IID9467 - 4, // IID9468 - 4, // IID9469 - 4, // IID9470 - 4, // IID9471 - 4, // IID9472 - 4, // IID9473 - 4, // IID9474 - 4, // IID9475 - 4, // IID9476 -#endif // _LP64 - 2, // IID9477 - 2, // IID9478 - 2, // IID9479 -#ifdef _LP64 - 3, // IID9480 - 3, // IID9481 - 3, // IID9482 - 3, // IID9483 - 3, // IID9484 - 3, // IID9485 - 3, // IID9486 - 3, // IID9487 - 4, // IID9488 - 4, // IID9489 - 4, // IID9490 - 4, // IID9491 - 4, // IID9492 - 4, // IID9493 - 4, // IID9494 - 4, // IID9495 - 4, // IID9496 - 4, // IID9497 - 4, // IID9498 - 4, // IID9499 - 4, // IID9500 - 4, // IID9501 - 4, // IID9502 - 4, // IID9503 -#endif // _LP64 - 2, // IID9504 - 2, // IID9505 - 2, // IID9506 -#ifdef _LP64 - 3, // IID9507 - 3, // IID9508 - 3, // IID9509 - 3, // IID9510 - 3, // IID9511 - 3, // IID9512 - 3, // IID9513 - 3, // IID9514 - 4, // IID9515 - 4, // IID9516 - 4, // IID9517 - 4, // IID9518 - 4, // IID9519 - 4, // IID9520 - 4, // IID9521 - 4, // IID9522 - 4, // IID9523 - 4, // IID9524 - 4, // IID9525 - 4, // IID9526 - 4, // IID9527 - 4, // IID9528 - 4, // IID9529 - 4, // IID9530 -#endif // _LP64 - 2, // IID9531 - 2, // IID9532 - 2, // IID9533 -#ifdef _LP64 - 3, // IID9534 - 3, // IID9535 - 3, // IID9536 - 3, // IID9537 - 3, // IID9538 - 3, // IID9539 - 3, // IID9540 - 3, // IID9541 - 4, // IID9542 - 4, // IID9543 - 4, // IID9544 - 4, // IID9545 - 4, // IID9546 - 4, // IID9547 - 4, // IID9548 - 4, // IID9549 - 4, // IID9550 - 4, // IID9551 - 4, // IID9552 - 4, // IID9553 - 4, // IID9554 - 4, // IID9555 - 4, // IID9556 - 4, // IID9557 -#endif // _LP64 - 2, // IID9558 - 2, // IID9559 - 2, // IID9560 -#ifdef _LP64 - 3, // IID9561 - 3, // IID9562 - 3, // IID9563 - 3, // IID9564 - 3, // IID9565 - 3, // IID9566 - 3, // IID9567 - 3, // IID9568 - 4, // IID9569 - 4, // IID9570 - 4, // IID9571 - 4, // IID9572 - 4, // IID9573 - 4, // IID9574 - 4, // IID9575 - 4, // IID9576 - 4, // IID9577 - 4, // IID9578 - 4, // IID9579 - 4, // IID9580 - 4, // IID9581 - 4, // IID9582 - 4, // IID9583 - 4, // IID9584 -#endif // _LP64 - 2, // IID9585 - 2, // IID9586 - 2, // IID9587 -#ifdef _LP64 - 3, // IID9588 - 3, // IID9589 - 3, // IID9590 - 3, // IID9591 - 3, // IID9592 - 3, // IID9593 - 3, // IID9594 - 3, // IID9595 - 4, // IID9596 - 4, // IID9597 - 4, // IID9598 - 4, // IID9599 - 4, // IID9600 - 4, // IID9601 - 4, // IID9602 - 4, // IID9603 - 4, // IID9604 - 4, // IID9605 - 4, // IID9606 - 4, // IID9607 - 4, // IID9608 - 4, // IID9609 - 4, // IID9610 - 4, // IID9611 -#endif // _LP64 - 2, // IID9612 - 2, // IID9613 - 2, // IID9614 -#ifdef _LP64 - 3, // IID9615 - 3, // IID9616 - 3, // IID9617 - 3, // IID9618 - 3, // IID9619 - 3, // IID9620 - 3, // IID9621 - 3, // IID9622 - 4, // IID9623 - 4, // IID9624 - 4, // IID9625 - 4, // IID9626 - 4, // IID9627 - 4, // IID9628 - 4, // IID9629 - 4, // IID9630 - 4, // IID9631 - 4, // IID9632 - 4, // IID9633 - 4, // IID9634 - 4, // IID9635 - 4, // IID9636 - 4, // IID9637 - 4, // IID9638 -#endif // _LP64 - 2, // IID9639 - 2, // IID9640 - 2, // IID9641 -#ifdef _LP64 - 3, // IID9642 - 3, // IID9643 - 3, // IID9644 - 3, // IID9645 - 3, // IID9646 - 3, // IID9647 - 3, // IID9648 - 3, // IID9649 - 4, // IID9650 - 4, // IID9651 - 4, // IID9652 - 4, // IID9653 - 4, // IID9654 - 4, // IID9655 - 4, // IID9656 - 4, // IID9657 - 4, // IID9658 - 4, // IID9659 - 4, // IID9660 - 4, // IID9661 - 4, // IID9662 - 4, // IID9663 - 4, // IID9664 - 4, // IID9665 -#endif // _LP64 - 2, // IID9666 - 2, // IID9667 - 2, // IID9668 -#ifdef _LP64 - 3, // IID9669 - 3, // IID9670 - 3, // IID9671 - 3, // IID9672 - 3, // IID9673 - 3, // IID9674 - 3, // IID9675 - 3, // IID9676 - 4, // IID9677 - 4, // IID9678 - 4, // IID9679 - 4, // IID9680 - 4, // IID9681 - 4, // IID9682 - 4, // IID9683 - 4, // IID9684 - 4, // IID9685 - 4, // IID9686 - 4, // IID9687 - 4, // IID9688 - 4, // IID9689 - 4, // IID9690 - 4, // IID9691 - 4, // IID9692 -#endif // _LP64 - 2, // IID9693 - 2, // IID9694 - 2, // IID9695 -#ifdef _LP64 - 3, // IID9696 - 3, // IID9697 - 3, // IID9698 - 3, // IID9699 - 3, // IID9700 - 3, // IID9701 - 3, // IID9702 - 3, // IID9703 - 4, // IID9704 - 4, // IID9705 - 4, // IID9706 - 4, // IID9707 - 4, // IID9708 - 4, // IID9709 - 4, // IID9710 - 4, // IID9711 - 4, // IID9712 - 4, // IID9713 - 4, // IID9714 - 4, // IID9715 - 4, // IID9716 - 4, // IID9717 - 4, // IID9718 - 4, // IID9719 -#endif // _LP64 - 2, // IID9720 - 2, // IID9721 - 2, // IID9722 -#ifdef _LP64 - 3, // IID9723 - 3, // IID9724 - 3, // IID9725 - 3, // IID9726 - 3, // IID9727 - 3, // IID9728 - 3, // IID9729 - 3, // IID9730 - 4, // IID9731 - 4, // IID9732 - 4, // IID9733 - 4, // IID9734 - 4, // IID9735 - 4, // IID9736 - 4, // IID9737 - 4, // IID9738 - 4, // IID9739 - 4, // IID9740 - 4, // IID9741 - 4, // IID9742 - 4, // IID9743 - 4, // IID9744 - 4, // IID9745 - 4, // IID9746 -#endif // _LP64 - 2, // IID9747 - 2, // IID9748 - 2, // IID9749 -#ifdef _LP64 - 3, // IID9750 - 3, // IID9751 - 3, // IID9752 - 3, // IID9753 - 3, // IID9754 - 3, // IID9755 - 3, // IID9756 - 3, // IID9757 - 4, // IID9758 - 4, // IID9759 - 4, // IID9760 - 4, // IID9761 - 4, // IID9762 - 4, // IID9763 - 4, // IID9764 - 4, // IID9765 - 4, // IID9766 - 4, // IID9767 - 4, // IID9768 - 4, // IID9769 - 4, // IID9770 - 4, // IID9771 - 4, // IID9772 - 4, // IID9773 -#endif // _LP64 - 2, // IID9774 - 2, // IID9775 - 2, // IID9776 -#ifdef _LP64 - 3, // IID9777 - 3, // IID9778 - 3, // IID9779 - 3, // IID9780 - 3, // IID9781 - 3, // IID9782 - 3, // IID9783 - 3, // IID9784 - 4, // IID9785 - 4, // IID9786 - 4, // IID9787 - 4, // IID9788 - 4, // IID9789 - 4, // IID9790 - 4, // IID9791 - 4, // IID9792 - 4, // IID9793 - 4, // IID9794 - 4, // IID9795 - 4, // IID9796 - 4, // IID9797 - 4, // IID9798 - 4, // IID9799 - 4, // IID9800 -#endif // _LP64 - 2, // IID9801 - 2, // IID9802 - 2, // IID9803 -#ifdef _LP64 - 3, // IID9804 - 3, // IID9805 - 3, // IID9806 - 3, // IID9807 - 3, // IID9808 - 3, // IID9809 - 3, // IID9810 - 3, // IID9811 - 4, // IID9812 - 4, // IID9813 - 4, // IID9814 - 4, // IID9815 - 4, // IID9816 - 4, // IID9817 - 4, // IID9818 - 4, // IID9819 - 4, // IID9820 - 4, // IID9821 - 4, // IID9822 - 4, // IID9823 - 4, // IID9824 - 4, // IID9825 - 4, // IID9826 - 4, // IID9827 -#endif // _LP64 - 7, // IID9828 - 7, // IID9829 -#ifdef _LP64 - 6, // IID9830 - 8, // IID9831 - 8, // IID9832 - 7, // IID9833 - 8, // IID9834 - 8, // IID9835 - 8, // IID9836 - 8, // IID9837 - 9, // IID9838 - 9, // IID9839 - 9, // IID9840 - 9, // IID9841 - 9, // IID9842 - 9, // IID9843 - 9, // IID9844 - 9, // IID9845 - 9, // IID9846 - 9, // IID9847 - 9, // IID9848 - 9, // IID9849 - 9, // IID9850 - 9, // IID9851 - 9, // IID9852 - 9, // IID9853 - 9, // IID9854 -#endif // _LP64 - 7, // IID9855 - 6, // IID9856 -#ifdef _LP64 - 8, // IID9857 - 8, // IID9858 - 8, // IID9859 - 8, // IID9860 - 8, // IID9861 - 8, // IID9862 - 8, // IID9863 - 8, // IID9864 - 9, // IID9865 - 8, // IID9866 - 8, // IID9867 - 9, // IID9868 - 9, // IID9869 - 9, // IID9870 - 9, // IID9871 - 9, // IID9872 - 9, // IID9873 - 8, // IID9874 - 9, // IID9875 - 9, // IID9876 - 9, // IID9877 - 9, // IID9878 - 8, // IID9879 - 9, // IID9880 - 9, // IID9881 -#endif // _LP64 - 6, // IID9882 - 7, // IID9883 -#ifdef _LP64 - 8, // IID9884 - 8, // IID9885 - 7, // IID9886 - 8, // IID9887 - 8, // IID9888 - 8, // IID9889 - 8, // IID9890 - 8, // IID9891 - 9, // IID9892 - 9, // IID9893 - 9, // IID9894 - 9, // IID9895 - 9, // IID9896 - 9, // IID9897 - 8, // IID9898 - 8, // IID9899 - 9, // IID9900 - 9, // IID9901 - 8, // IID9902 - 8, // IID9903 - 9, // IID9904 - 9, // IID9905 - 9, // IID9906 - 9, // IID9907 - 9, // IID9908 -#endif // _LP64 - 7, // IID9909 - 6, // IID9910 -#ifdef _LP64 - 8, // IID9911 - 8, // IID9912 - 8, // IID9913 - 8, // IID9914 - 7, // IID9915 - 8, // IID9916 - 8, // IID9917 - 7, // IID9918 - 7, // IID9919 - 8, // IID9920 - 9, // IID9921 - 9, // IID9922 - 9, // IID9923 - 9, // IID9924 - 8, // IID9925 - 9, // IID9926 - 9, // IID9927 - 9, // IID9928 - 9, // IID9929 - 8, // IID9930 - 9, // IID9931 - 9, // IID9932 - 9, // IID9933 - 9, // IID9934 - 9, // IID9935 -#endif // _LP64 - 7, // IID9936 - 7, // IID9937 -#ifdef _LP64 - 8, // IID9938 - 8, // IID9939 - 7, // IID9940 - 8, // IID9941 - 7, // IID9942 - 8, // IID9943 - 8, // IID9944 - 8, // IID9945 - 9, // IID9946 - 9, // IID9947 - 9, // IID9948 - 9, // IID9949 - 9, // IID9950 - 9, // IID9951 - 9, // IID9952 - 9, // IID9953 - 9, // IID9954 - 9, // IID9955 - 9, // IID9956 - 9, // IID9957 - 9, // IID9958 - 9, // IID9959 - 9, // IID9960 - 9, // IID9961 - 9, // IID9962 -#endif // _LP64 - 7, // IID9963 - 7, // IID9964 -#ifdef _LP64 - 8, // IID9965 - 7, // IID9966 - 7, // IID9967 - 8, // IID9968 - 8, // IID9969 - 8, // IID9970 - 8, // IID9971 - 8, // IID9972 - 7, // IID9973 - 9, // IID9974 - 9, // IID9975 - 9, // IID9976 - 9, // IID9977 - 9, // IID9978 - 9, // IID9979 - 9, // IID9980 - 9, // IID9981 - 9, // IID9982 - 9, // IID9983 - 9, // IID9984 - 9, // IID9985 - 9, // IID9986 - 8, // IID9987 - 9, // IID9988 - 9, // IID9989 -#endif // _LP64 - 7, // IID9990 - 7, // IID9991 -#ifdef _LP64 - 8, // IID9992 - 8, // IID9993 - 8, // IID9994 - 8, // IID9995 - 7, // IID9996 - 8, // IID9997 - 8, // IID9998 - 8, // IID9999 - 9, // IID10000 - 9, // IID10001 - 9, // IID10002 - 9, // IID10003 - 9, // IID10004 - 9, // IID10005 - 9, // IID10006 - 9, // IID10007 - 9, // IID10008 - 9, // IID10009 - 9, // IID10010 - 9, // IID10011 - 9, // IID10012 - 9, // IID10013 - 9, // IID10014 - 9, // IID10015 - 9, // IID10016 -#endif // _LP64 - 7, // IID10017 - 8, // IID10018 - 11, // IID10019 - 11, // IID10020 - 11, // IID10021 - 10, // IID10022 - 11, // IID10023 - 11, // IID10024 -#ifdef _LP64 - 9, // IID10025 - 9, // IID10026 - 10, // IID10027 - 12, // IID10028 - 12, // IID10029 - 12, // IID10030 - 12, // IID10031 - 12, // IID10032 - 8, // IID10033 - 9, // IID10034 - 12, // IID10035 - 12, // IID10036 - 11, // IID10037 - 12, // IID10038 - 12, // IID10039 - 12, // IID10040 - 9, // IID10041 - 9, // IID10042 - 12, // IID10043 - 12, // IID10044 - 12, // IID10045 - 12, // IID10046 - 12, // IID10047 - 12, // IID10048 - 9, // IID10049 - 8, // IID10050 - 12, // IID10051 - 11, // IID10052 - 12, // IID10053 - 12, // IID10054 - 12, // IID10055 - 12, // IID10056 - 9, // IID10057 - 9, // IID10058 - 12, // IID10059 - 12, // IID10060 - 12, // IID10061 - 12, // IID10062 - 12, // IID10063 - 12, // IID10064 - 9, // IID10065 - 9, // IID10066 - 12, // IID10067 - 12, // IID10068 - 12, // IID10069 - 12, // IID10070 - 12, // IID10071 - 12, // IID10072 - 9, // IID10073 - 8, // IID10074 - 11, // IID10075 - 12, // IID10076 - 12, // IID10077 - 12, // IID10078 - 12, // IID10079 - 12, // IID10080 - 9, // IID10081 - 9, // IID10082 - 12, // IID10083 - 12, // IID10084 - 11, // IID10085 - 12, // IID10086 - 12, // IID10087 - 11, // IID10088 - 10, // IID10089 - 10, // IID10090 - 13, // IID10091 - 11, // IID10092 - 13, // IID10093 - 11, // IID10094 - 13, // IID10095 - 13, // IID10096 - 10, // IID10097 - 10, // IID10098 - 13, // IID10099 - 12, // IID10100 - 13, // IID10101 - 13, // IID10102 - 13, // IID10103 - 13, // IID10104 - 10, // IID10105 - 10, // IID10106 - 13, // IID10107 - 12, // IID10108 - 13, // IID10109 - 13, // IID10110 - 13, // IID10111 - 13, // IID10112 - 10, // IID10113 - 10, // IID10114 - 13, // IID10115 - 12, // IID10116 - 13, // IID10117 - 12, // IID10118 - 13, // IID10119 - 13, // IID10120 - 10, // IID10121 - 10, // IID10122 - 13, // IID10123 - 13, // IID10124 - 12, // IID10125 - 13, // IID10126 - 13, // IID10127 - 12, // IID10128 - 10, // IID10129 - 10, // IID10130 - 13, // IID10131 - 13, // IID10132 - 13, // IID10133 - 13, // IID10134 - 13, // IID10135 - 13, // IID10136 - 10, // IID10137 - 10, // IID10138 - 13, // IID10139 - 13, // IID10140 - 13, // IID10141 - 13, // IID10142 - 13, // IID10143 - 13, // IID10144 - 10, // IID10145 - 10, // IID10146 - 13, // IID10147 - 13, // IID10148 - 12, // IID10149 - 13, // IID10150 - 13, // IID10151 - 13, // IID10152 - 10, // IID10153 - 10, // IID10154 - 13, // IID10155 - 13, // IID10156 - 13, // IID10157 - 13, // IID10158 - 13, // IID10159 - 13, // IID10160 - 10, // IID10161 - 10, // IID10162 - 13, // IID10163 - 13, // IID10164 - 13, // IID10165 - 13, // IID10166 - 13, // IID10167 - 13, // IID10168 - 9, // IID10169 - 10, // IID10170 - 13, // IID10171 - 13, // IID10172 - 13, // IID10173 - 13, // IID10174 - 13, // IID10175 - 13, // IID10176 - 10, // IID10177 - 9, // IID10178 - 13, // IID10179 - 13, // IID10180 - 13, // IID10181 - 12, // IID10182 - 13, // IID10183 - 12, // IID10184 - 10, // IID10185 - 10, // IID10186 - 13, // IID10187 - 13, // IID10188 - 13, // IID10189 - 13, // IID10190 - 13, // IID10191 - 12, // IID10192 - 10, // IID10193 - 10, // IID10194 - 13, // IID10195 - 13, // IID10196 - 13, // IID10197 - 13, // IID10198 - 13, // IID10199 - 13, // IID10200 - 10, // IID10201 - 10, // IID10202 - 13, // IID10203 - 13, // IID10204 - 13, // IID10205 - 13, // IID10206 - 13, // IID10207 - 13, // IID10208 - 10, // IID10209 - 10, // IID10210 - 12, // IID10211 - 13, // IID10212 - 13, // IID10213 - 13, // IID10214 - 13, // IID10215 - 13, // IID10216 - 10, // IID10217 - 10, // IID10218 - 12, // IID10219 - 12, // IID10220 - 12, // IID10221 - 13, // IID10222 - 13, // IID10223 - 13, // IID10224 - 9, // IID10225 - 10, // IID10226 - 12, // IID10227 - 13, // IID10228 - 12, // IID10229 - 13, // IID10230 - 13, // IID10231 - 13, // IID10232 -#endif // _LP64 - 3, // IID10233 - 3, // IID10234 - 6, // IID10235 - 6, // IID10236 - 6, // IID10237 - 6, // IID10238 - 6, // IID10239 - 6, // IID10240 - 3, // IID10241 - 3, // IID10242 - 6, // IID10243 - 6, // IID10244 - 6, // IID10245 - 6, // IID10246 - 6, // IID10247 - 6, // IID10248 -#ifdef _LP64 - 4, // IID10249 - 4, // IID10250 - 7, // IID10251 - 7, // IID10252 - 7, // IID10253 - 7, // IID10254 - 7, // IID10255 - 7, // IID10256 - 4, // IID10257 - 4, // IID10258 - 7, // IID10259 - 7, // IID10260 - 7, // IID10261 - 7, // IID10262 - 7, // IID10263 - 7, // IID10264 - 4, // IID10265 - 4, // IID10266 - 7, // IID10267 - 7, // IID10268 - 7, // IID10269 - 7, // IID10270 - 7, // IID10271 - 7, // IID10272 - 4, // IID10273 - 4, // IID10274 - 7, // IID10275 - 7, // IID10276 - 7, // IID10277 - 7, // IID10278 - 7, // IID10279 - 7, // IID10280 - 4, // IID10281 - 4, // IID10282 - 7, // IID10283 - 7, // IID10284 - 7, // IID10285 - 7, // IID10286 - 7, // IID10287 - 7, // IID10288 - 4, // IID10289 - 4, // IID10290 - 7, // IID10291 - 7, // IID10292 - 7, // IID10293 - 7, // IID10294 - 7, // IID10295 - 7, // IID10296 - 4, // IID10297 - 4, // IID10298 - 7, // IID10299 - 7, // IID10300 - 7, // IID10301 - 7, // IID10302 - 7, // IID10303 - 7, // IID10304 - 4, // IID10305 - 4, // IID10306 - 7, // IID10307 - 7, // IID10308 - 7, // IID10309 - 7, // IID10310 - 7, // IID10311 - 7, // IID10312 - 5, // IID10313 - 5, // IID10314 - 8, // IID10315 - 8, // IID10316 - 8, // IID10317 - 8, // IID10318 - 8, // IID10319 - 8, // IID10320 - 5, // IID10321 - 5, // IID10322 - 8, // IID10323 - 8, // IID10324 - 8, // IID10325 - 8, // IID10326 - 8, // IID10327 - 8, // IID10328 - 5, // IID10329 - 5, // IID10330 - 8, // IID10331 - 8, // IID10332 - 8, // IID10333 - 8, // IID10334 - 8, // IID10335 - 8, // IID10336 - 5, // IID10337 - 5, // IID10338 - 8, // IID10339 - 8, // IID10340 - 8, // IID10341 - 8, // IID10342 - 8, // IID10343 - 8, // IID10344 - 5, // IID10345 - 5, // IID10346 - 8, // IID10347 - 8, // IID10348 - 8, // IID10349 - 8, // IID10350 - 8, // IID10351 - 8, // IID10352 - 5, // IID10353 - 5, // IID10354 - 8, // IID10355 - 8, // IID10356 - 8, // IID10357 - 8, // IID10358 - 8, // IID10359 - 8, // IID10360 - 5, // IID10361 - 5, // IID10362 - 8, // IID10363 - 8, // IID10364 - 8, // IID10365 - 8, // IID10366 - 8, // IID10367 - 8, // IID10368 - 5, // IID10369 - 5, // IID10370 - 8, // IID10371 - 8, // IID10372 - 8, // IID10373 - 8, // IID10374 - 8, // IID10375 - 8, // IID10376 - 5, // IID10377 - 5, // IID10378 - 8, // IID10379 - 8, // IID10380 - 8, // IID10381 - 8, // IID10382 - 8, // IID10383 - 8, // IID10384 - 5, // IID10385 - 5, // IID10386 - 8, // IID10387 - 8, // IID10388 - 8, // IID10389 - 8, // IID10390 - 8, // IID10391 - 8, // IID10392 - 5, // IID10393 - 5, // IID10394 - 8, // IID10395 - 8, // IID10396 - 8, // IID10397 - 8, // IID10398 - 8, // IID10399 - 8, // IID10400 - 5, // IID10401 - 5, // IID10402 - 8, // IID10403 - 8, // IID10404 - 8, // IID10405 - 8, // IID10406 - 8, // IID10407 - 8, // IID10408 - 5, // IID10409 - 5, // IID10410 - 8, // IID10411 - 8, // IID10412 - 8, // IID10413 - 8, // IID10414 - 8, // IID10415 - 8, // IID10416 - 5, // IID10417 - 5, // IID10418 - 8, // IID10419 - 8, // IID10420 - 8, // IID10421 - 8, // IID10422 - 8, // IID10423 - 8, // IID10424 - 5, // IID10425 - 5, // IID10426 - 8, // IID10427 - 8, // IID10428 - 8, // IID10429 - 8, // IID10430 - 8, // IID10431 - 8, // IID10432 - 5, // IID10433 - 5, // IID10434 - 8, // IID10435 - 8, // IID10436 - 8, // IID10437 - 8, // IID10438 - 8, // IID10439 - 8, // IID10440 - 5, // IID10441 - 5, // IID10442 - 8, // IID10443 - 8, // IID10444 - 8, // IID10445 - 8, // IID10446 - 8, // IID10447 - 8, // IID10448 -#endif // _LP64 - 4, // IID10449 - 4, // IID10450 - 4, // IID10451 - 4, // IID10452 - 4, // IID10453 - 4, // IID10454 - 4, // IID10455 - 4, // IID10456 - 4, // IID10457 - 4, // IID10458 -#ifdef _LP64 - 5, // IID10459 - 5, // IID10460 - 5, // IID10461 - 5, // IID10462 - 5, // IID10463 - 5, // IID10464 - 5, // IID10465 - 5, // IID10466 - 5, // IID10467 - 5, // IID10468 - 5, // IID10469 - 5, // IID10470 - 5, // IID10471 - 5, // IID10472 - 5, // IID10473 - 5, // IID10474 - 5, // IID10475 - 5, // IID10476 - 5, // IID10477 - 5, // IID10478 - 5, // IID10479 - 5, // IID10480 - 5, // IID10481 - 5, // IID10482 - 5, // IID10483 - 5, // IID10484 - 5, // IID10485 - 5, // IID10486 - 5, // IID10487 - 5, // IID10488 - 5, // IID10489 - 5, // IID10490 - 5, // IID10491 - 5, // IID10492 - 5, // IID10493 - 5, // IID10494 - 5, // IID10495 - 5, // IID10496 - 5, // IID10497 - 5, // IID10498 - 5, // IID10499 - 5, // IID10500 - 5, // IID10501 - 5, // IID10502 - 5, // IID10503 - 5, // IID10504 - 5, // IID10505 - 5, // IID10506 - 5, // IID10507 - 5, // IID10508 - 5, // IID10509 - 5, // IID10510 - 5, // IID10511 - 5, // IID10512 - 5, // IID10513 - 5, // IID10514 - 5, // IID10515 - 5, // IID10516 - 5, // IID10517 - 5, // IID10518 - 5, // IID10519 - 5, // IID10520 - 5, // IID10521 - 5, // IID10522 - 5, // IID10523 - 5, // IID10524 - 5, // IID10525 - 5, // IID10526 - 5, // IID10527 - 5, // IID10528 - 5, // IID10529 - 5, // IID10530 - 5, // IID10531 - 5, // IID10532 - 5, // IID10533 - 5, // IID10534 - 5, // IID10535 - 5, // IID10536 - 5, // IID10537 - 5, // IID10538 - 5, // IID10539 - 5, // IID10540 - 5, // IID10541 - 5, // IID10542 - 5, // IID10543 - 5, // IID10544 - 5, // IID10545 - 5, // IID10546 - 5, // IID10547 - 5, // IID10548 - 5, // IID10549 - 5, // IID10550 - 5, // IID10551 - 5, // IID10552 - 5, // IID10553 - 5, // IID10554 - 5, // IID10555 - 5, // IID10556 - 5, // IID10557 - 5, // IID10558 - 5, // IID10559 - 5, // IID10560 - 5, // IID10561 - 5, // IID10562 - 5, // IID10563 - 5, // IID10564 - 5, // IID10565 - 5, // IID10566 - 5, // IID10567 - 5, // IID10568 - 5, // IID10569 - 5, // IID10570 - 5, // IID10571 - 5, // IID10572 - 5, // IID10573 - 5, // IID10574 - 5, // IID10575 - 5, // IID10576 - 5, // IID10577 - 5, // IID10578 - 5, // IID10579 - 5, // IID10580 - 5, // IID10581 - 5, // IID10582 - 5, // IID10583 -#endif // _LP64 - 4, // IID10584 - 4, // IID10585 - 4, // IID10586 - 4, // IID10587 - 4, // IID10588 - 4, // IID10589 - 4, // IID10590 - 4, // IID10591 - 4, // IID10592 - 4, // IID10593 -#ifdef _LP64 - 5, // IID10594 - 5, // IID10595 - 5, // IID10596 - 5, // IID10597 - 5, // IID10598 - 5, // IID10599 - 5, // IID10600 - 5, // IID10601 - 5, // IID10602 - 5, // IID10603 - 5, // IID10604 - 5, // IID10605 - 5, // IID10606 - 5, // IID10607 - 5, // IID10608 - 5, // IID10609 - 5, // IID10610 - 5, // IID10611 - 5, // IID10612 - 5, // IID10613 - 5, // IID10614 - 5, // IID10615 - 5, // IID10616 - 5, // IID10617 - 5, // IID10618 - 5, // IID10619 - 5, // IID10620 - 5, // IID10621 - 5, // IID10622 - 5, // IID10623 - 5, // IID10624 - 5, // IID10625 - 5, // IID10626 - 5, // IID10627 - 5, // IID10628 - 5, // IID10629 - 5, // IID10630 - 5, // IID10631 - 5, // IID10632 - 5, // IID10633 - 5, // IID10634 - 5, // IID10635 - 5, // IID10636 - 5, // IID10637 - 5, // IID10638 - 5, // IID10639 - 5, // IID10640 - 5, // IID10641 - 5, // IID10642 - 5, // IID10643 - 5, // IID10644 - 5, // IID10645 - 5, // IID10646 - 5, // IID10647 - 5, // IID10648 - 5, // IID10649 - 5, // IID10650 - 5, // IID10651 - 5, // IID10652 - 5, // IID10653 - 5, // IID10654 - 5, // IID10655 - 5, // IID10656 - 5, // IID10657 - 5, // IID10658 - 5, // IID10659 - 5, // IID10660 - 5, // IID10661 - 5, // IID10662 - 5, // IID10663 - 5, // IID10664 - 5, // IID10665 - 5, // IID10666 - 5, // IID10667 - 5, // IID10668 - 5, // IID10669 - 5, // IID10670 - 5, // IID10671 - 5, // IID10672 - 5, // IID10673 - 5, // IID10674 - 5, // IID10675 - 5, // IID10676 - 5, // IID10677 - 5, // IID10678 - 5, // IID10679 - 5, // IID10680 - 5, // IID10681 - 5, // IID10682 - 5, // IID10683 - 5, // IID10684 - 5, // IID10685 - 5, // IID10686 - 5, // IID10687 - 5, // IID10688 - 5, // IID10689 - 5, // IID10690 - 5, // IID10691 - 5, // IID10692 - 5, // IID10693 - 5, // IID10694 - 5, // IID10695 - 5, // IID10696 - 5, // IID10697 - 5, // IID10698 - 5, // IID10699 - 5, // IID10700 - 5, // IID10701 - 5, // IID10702 - 5, // IID10703 - 5, // IID10704 - 5, // IID10705 - 5, // IID10706 - 5, // IID10707 - 5, // IID10708 - 5, // IID10709 - 5, // IID10710 - 5, // IID10711 - 5, // IID10712 - 5, // IID10713 - 5, // IID10714 - 5, // IID10715 - 5, // IID10716 - 5, // IID10717 - 5, // IID10718 -#endif // _LP64 - 7, // IID10719 -#ifdef _LP64 - 9, // IID10720 - 9, // IID10721 - 9, // IID10722 - 9, // IID10723 - 9, // IID10724 - 9, // IID10725 - 9, // IID10726 - 9, // IID10727 - 8, // IID10728 - 8, // IID10729 - 9, // IID10730 - 8, // IID10731 - 9, // IID10732 - 9, // IID10733 - 9, // IID10734 - 9, // IID10735 - 9, // IID10736 - 9, // IID10737 - 9, // IID10738 - 8, // IID10739 - 8, // IID10740 - 9, // IID10741 - 9, // IID10742 - 9, // IID10743 - 9, // IID10744 - 9, // IID10745 -#endif // _LP64 - 8, // IID10746 -#ifdef _LP64 - 7, // IID10747 - 9, // IID10748 - 8, // IID10749 - 9, // IID10750 - 9, // IID10751 - 9, // IID10752 - 9, // IID10753 - 8, // IID10754 - 9, // IID10755 - 8, // IID10756 - 9, // IID10757 - 9, // IID10758 - 8, // IID10759 - 9, // IID10760 - 9, // IID10761 - 9, // IID10762 - 9, // IID10763 - 9, // IID10764 - 8, // IID10765 - 8, // IID10766 - 9, // IID10767 - 9, // IID10768 - 9, // IID10769 - 9, // IID10770 - 9, // IID10771 - 9, // IID10772 -#endif // _LP64 - 8, // IID10773 -#ifdef _LP64 - 9, // IID10774 - 8, // IID10775 - 9, // IID10776 - 8, // IID10777 - 9, // IID10778 - 9, // IID10779 - 9, // IID10780 - 9, // IID10781 - 9, // IID10782 - 9, // IID10783 - 9, // IID10784 - 9, // IID10785 - 9, // IID10786 - 9, // IID10787 - 9, // IID10788 - 9, // IID10789 - 9, // IID10790 - 9, // IID10791 - 9, // IID10792 - 9, // IID10793 - 9, // IID10794 - 9, // IID10795 - 9, // IID10796 - 9, // IID10797 - 9, // IID10798 - 9, // IID10799 -#endif // _LP64 - 8, // IID10800 -#ifdef _LP64 - 9, // IID10801 - 8, // IID10802 - 9, // IID10803 - 9, // IID10804 - 9, // IID10805 - 9, // IID10806 - 9, // IID10807 - 9, // IID10808 - 9, // IID10809 - 9, // IID10810 - 9, // IID10811 - 9, // IID10812 - 9, // IID10813 - 9, // IID10814 - 9, // IID10815 - 9, // IID10816 - 9, // IID10817 - 9, // IID10818 - 9, // IID10819 - 8, // IID10820 - 9, // IID10821 - 9, // IID10822 - 9, // IID10823 - 9, // IID10824 - 9, // IID10825 - 8, // IID10826 -#endif // _LP64 - 3, // IID10827 - 3, // IID10828 -#ifdef _LP64 - 4, // IID10829 - 4, // IID10830 - 4, // IID10831 - 4, // IID10832 - 4, // IID10833 - 4, // IID10834 - 4, // IID10835 - 4, // IID10836 - 4, // IID10837 - 4, // IID10838 - 4, // IID10839 - 4, // IID10840 - 4, // IID10841 - 4, // IID10842 - 4, // IID10843 - 4, // IID10844 - 4, // IID10845 - 4, // IID10846 - 4, // IID10847 - 4, // IID10848 - 4, // IID10849 - 4, // IID10850 - 4, // IID10851 - 4, // IID10852 - 4, // IID10853 -#endif // _LP64 - 3, // IID10854 - 3, // IID10855 -#ifdef _LP64 - 4, // IID10856 - 4, // IID10857 - 4, // IID10858 - 4, // IID10859 - 4, // IID10860 - 4, // IID10861 - 4, // IID10862 - 4, // IID10863 - 4, // IID10864 - 4, // IID10865 - 4, // IID10866 - 4, // IID10867 - 4, // IID10868 - 4, // IID10869 - 4, // IID10870 - 4, // IID10871 - 4, // IID10872 - 4, // IID10873 - 4, // IID10874 - 4, // IID10875 - 4, // IID10876 - 4, // IID10877 - 4, // IID10878 - 4, // IID10879 - 4, // IID10880 -#endif // _LP64 - 3, // IID10881 - 3, // IID10882 -#ifdef _LP64 - 4, // IID10883 - 4, // IID10884 - 4, // IID10885 - 4, // IID10886 - 4, // IID10887 - 4, // IID10888 - 4, // IID10889 - 4, // IID10890 - 4, // IID10891 - 4, // IID10892 - 4, // IID10893 - 4, // IID10894 - 4, // IID10895 - 4, // IID10896 - 4, // IID10897 - 4, // IID10898 - 4, // IID10899 - 4, // IID10900 - 4, // IID10901 - 4, // IID10902 - 4, // IID10903 - 4, // IID10904 - 4, // IID10905 - 4, // IID10906 - 4, // IID10907 -#endif // _LP64 - 3, // IID10908 - 3, // IID10909 -#ifdef _LP64 - 4, // IID10910 - 4, // IID10911 - 4, // IID10912 - 4, // IID10913 - 4, // IID10914 - 4, // IID10915 - 4, // IID10916 - 4, // IID10917 - 4, // IID10918 - 4, // IID10919 - 4, // IID10920 - 4, // IID10921 - 4, // IID10922 - 4, // IID10923 - 4, // IID10924 - 4, // IID10925 - 4, // IID10926 - 4, // IID10927 - 4, // IID10928 - 4, // IID10929 - 4, // IID10930 - 4, // IID10931 - 4, // IID10932 - 4, // IID10933 - 4, // IID10934 -#endif // _LP64 - 8, // IID10935 -#ifdef _LP64 - 7, // IID10936 - 8, // IID10937 - 9, // IID10938 - 9, // IID10939 - 9, // IID10940 - 9, // IID10941 - 9, // IID10942 - 9, // IID10943 - 9, // IID10944 - 9, // IID10945 - 9, // IID10946 - 9, // IID10947 - 8, // IID10948 - 9, // IID10949 - 9, // IID10950 - 9, // IID10951 - 9, // IID10952 - 9, // IID10953 - 9, // IID10954 - 8, // IID10955 - 9, // IID10956 - 9, // IID10957 - 9, // IID10958 - 8, // IID10959 - 9, // IID10960 - 8, // IID10961 -#endif // _LP64 - 9, // IID10962 -#ifdef _LP64 - 10, // IID10963 - 10, // IID10964 - 10, // IID10965 - 10, // IID10966 - 10, // IID10967 - 10, // IID10968 - 10, // IID10969 - 10, // IID10970 - 10, // IID10971 - 10, // IID10972 - 9, // IID10973 - 10, // IID10974 - 10, // IID10975 - 10, // IID10976 - 10, // IID10977 - 10, // IID10978 - 10, // IID10979 - 10, // IID10980 - 10, // IID10981 - 10, // IID10982 - 10, // IID10983 - 10, // IID10984 - 10, // IID10985 - 9, // IID10986 - 10, // IID10987 - 10, // IID10988 -#endif // _LP64 - 8, // IID10989 -#ifdef _LP64 - 9, // IID10990 - 9, // IID10991 - 9, // IID10992 - 9, // IID10993 - 9, // IID10994 - 9, // IID10995 - 9, // IID10996 - 9, // IID10997 - 9, // IID10998 - 8, // IID10999 - 9, // IID11000 - 9, // IID11001 - 8, // IID11002 - 9, // IID11003 - 9, // IID11004 - 9, // IID11005 - 9, // IID11006 - 9, // IID11007 - 9, // IID11008 - 9, // IID11009 - 8, // IID11010 - 9, // IID11011 - 9, // IID11012 - 8, // IID11013 - 9, // IID11014 - 9, // IID11015 - 3, // IID11016 - 3, // IID11017 - 3, // IID11018 - 3, // IID11019 - 3, // IID11020 - 3, // IID11021 - 3, // IID11022 - 3, // IID11023 - 3, // IID11024 - 3, // IID11025 - 4, // IID11026 - 4, // IID11027 - 4, // IID11028 - 4, // IID11029 - 4, // IID11030 - 4, // IID11031 - 4, // IID11032 - 4, // IID11033 - 4, // IID11034 - 4, // IID11035 - 4, // IID11036 - 4, // IID11037 - 4, // IID11038 - 4, // IID11039 - 4, // IID11040 - 4, // IID11041 - 4, // IID11042 - 3, // IID11043 - 3, // IID11044 - 3, // IID11045 - 3, // IID11046 - 3, // IID11047 - 3, // IID11048 - 3, // IID11049 - 3, // IID11050 - 3, // IID11051 - 3, // IID11052 - 4, // IID11053 - 4, // IID11054 - 4, // IID11055 - 4, // IID11056 - 4, // IID11057 - 4, // IID11058 - 4, // IID11059 - 4, // IID11060 - 4, // IID11061 - 4, // IID11062 - 4, // IID11063 - 4, // IID11064 - 4, // IID11065 - 4, // IID11066 - 4, // IID11067 - 4, // IID11068 - 4, // IID11069 - 4, // IID11070 - 4, // IID11071 - 4, // IID11072 - 4, // IID11073 - 4, // IID11074 - 4, // IID11075 - 4, // IID11076 - 4, // IID11077 - 4, // IID11078 - 4, // IID11079 - 4, // IID11080 - 4, // IID11081 - 4, // IID11082 - 4, // IID11083 - 4, // IID11084 - 4, // IID11085 - 4, // IID11086 - 4, // IID11087 - 4, // IID11088 - 4, // IID11089 - 4, // IID11090 - 4, // IID11091 - 4, // IID11092 - 4, // IID11093 - 4, // IID11094 - 4, // IID11095 - 4, // IID11096 - 5, // IID11097 - 5, // IID11098 - 5, // IID11099 - 5, // IID11100 - 5, // IID11101 - 5, // IID11102 - 5, // IID11103 - 5, // IID11104 - 5, // IID11105 - 5, // IID11106 - 5, // IID11107 - 5, // IID11108 - 5, // IID11109 - 5, // IID11110 - 5, // IID11111 - 5, // IID11112 - 5, // IID11113 - 5, // IID11114 - 5, // IID11115 - 5, // IID11116 - 5, // IID11117 - 5, // IID11118 - 5, // IID11119 - 5, // IID11120 - 5, // IID11121 - 5, // IID11122 - 5, // IID11123 - 3, // IID11124 - 3, // IID11125 - 3, // IID11126 - 3, // IID11127 - 3, // IID11128 - 3, // IID11129 - 3, // IID11130 - 3, // IID11131 - 3, // IID11132 - 3, // IID11133 - 4, // IID11134 - 4, // IID11135 - 4, // IID11136 - 4, // IID11137 - 4, // IID11138 - 4, // IID11139 - 4, // IID11140 - 4, // IID11141 - 4, // IID11142 - 4, // IID11143 - 4, // IID11144 - 4, // IID11145 - 4, // IID11146 - 4, // IID11147 - 4, // IID11148 - 4, // IID11149 - 4, // IID11150 - 3, // IID11151 - 3, // IID11152 - 3, // IID11153 - 3, // IID11154 - 3, // IID11155 - 3, // IID11156 - 3, // IID11157 - 3, // IID11158 - 3, // IID11159 - 3, // IID11160 - 4, // IID11161 - 4, // IID11162 - 4, // IID11163 - 4, // IID11164 - 4, // IID11165 - 4, // IID11166 - 4, // IID11167 - 4, // IID11168 - 4, // IID11169 - 4, // IID11170 - 4, // IID11171 - 4, // IID11172 - 4, // IID11173 - 4, // IID11174 - 4, // IID11175 - 4, // IID11176 - 4, // IID11177 - 5, // IID11178 - 5, // IID11179 - 5, // IID11180 - 5, // IID11181 - 5, // IID11182 - 5, // IID11183 - 5, // IID11184 - 5, // IID11185 - 5, // IID11186 - 5, // IID11187 - 5, // IID11188 - 5, // IID11189 - 5, // IID11190 - 5, // IID11191 - 5, // IID11192 - 5, // IID11193 - 5, // IID11194 - 5, // IID11195 - 5, // IID11196 - 5, // IID11197 - 5, // IID11198 - 5, // IID11199 - 5, // IID11200 - 5, // IID11201 - 5, // IID11202 - 5, // IID11203 - 5, // IID11204 - 5, // IID11205 - 5, // IID11206 - 5, // IID11207 - 5, // IID11208 - 5, // IID11209 - 5, // IID11210 - 5, // IID11211 - 5, // IID11212 - 5, // IID11213 - 5, // IID11214 - 5, // IID11215 - 5, // IID11216 - 5, // IID11217 - 5, // IID11218 - 5, // IID11219 - 5, // IID11220 - 5, // IID11221 - 5, // IID11222 - 5, // IID11223 - 5, // IID11224 - 5, // IID11225 - 5, // IID11226 - 5, // IID11227 - 5, // IID11228 - 5, // IID11229 - 5, // IID11230 - 5, // IID11231 - 3, // IID11232 - 3, // IID11233 - 3, // IID11234 - 3, // IID11235 - 3, // IID11236 - 3, // IID11237 - 3, // IID11238 - 3, // IID11239 - 3, // IID11240 - 3, // IID11241 - 4, // IID11242 - 4, // IID11243 - 4, // IID11244 - 4, // IID11245 - 4, // IID11246 - 4, // IID11247 - 4, // IID11248 - 4, // IID11249 - 4, // IID11250 - 4, // IID11251 - 4, // IID11252 - 4, // IID11253 - 4, // IID11254 - 4, // IID11255 - 4, // IID11256 - 4, // IID11257 - 4, // IID11258 - 3, // IID11259 - 3, // IID11260 - 3, // IID11261 - 3, // IID11262 - 3, // IID11263 - 3, // IID11264 - 3, // IID11265 - 3, // IID11266 - 3, // IID11267 - 3, // IID11268 - 4, // IID11269 - 4, // IID11270 - 4, // IID11271 - 4, // IID11272 - 4, // IID11273 - 4, // IID11274 - 4, // IID11275 - 4, // IID11276 - 4, // IID11277 - 4, // IID11278 - 4, // IID11279 - 4, // IID11280 - 4, // IID11281 - 4, // IID11282 - 4, // IID11283 - 4, // IID11284 - 4, // IID11285 - 3, // IID11286 - 3, // IID11287 - 3, // IID11288 - 3, // IID11289 - 3, // IID11290 - 3, // IID11291 - 3, // IID11292 - 3, // IID11293 - 3, // IID11294 - 3, // IID11295 - 4, // IID11296 - 4, // IID11297 - 4, // IID11298 - 4, // IID11299 - 4, // IID11300 - 4, // IID11301 - 4, // IID11302 - 4, // IID11303 - 4, // IID11304 - 4, // IID11305 - 4, // IID11306 - 4, // IID11307 - 4, // IID11308 - 4, // IID11309 - 4, // IID11310 - 4, // IID11311 - 4, // IID11312 - 3, // IID11313 - 3, // IID11314 - 3, // IID11315 - 3, // IID11316 - 3, // IID11317 - 3, // IID11318 - 3, // IID11319 - 3, // IID11320 - 3, // IID11321 - 3, // IID11322 - 4, // IID11323 - 4, // IID11324 - 4, // IID11325 - 4, // IID11326 - 4, // IID11327 - 4, // IID11328 - 4, // IID11329 - 4, // IID11330 - 4, // IID11331 - 4, // IID11332 - 4, // IID11333 - 4, // IID11334 - 4, // IID11335 - 4, // IID11336 - 4, // IID11337 - 4, // IID11338 - 4, // IID11339 - 3, // IID11340 - 3, // IID11341 - 3, // IID11342 - 3, // IID11343 - 3, // IID11344 - 3, // IID11345 - 3, // IID11346 - 3, // IID11347 - 3, // IID11348 - 3, // IID11349 - 4, // IID11350 - 4, // IID11351 - 4, // IID11352 - 4, // IID11353 - 4, // IID11354 - 4, // IID11355 - 4, // IID11356 - 4, // IID11357 - 4, // IID11358 - 4, // IID11359 - 4, // IID11360 - 4, // IID11361 - 4, // IID11362 - 4, // IID11363 - 4, // IID11364 - 4, // IID11365 - 4, // IID11366 - 4, // IID11367 - 4, // IID11368 - 4, // IID11369 - 4, // IID11370 - 4, // IID11371 - 4, // IID11372 - 4, // IID11373 - 4, // IID11374 - 4, // IID11375 - 4, // IID11376 - 4, // IID11377 - 4, // IID11378 - 4, // IID11379 - 4, // IID11380 - 4, // IID11381 - 4, // IID11382 - 4, // IID11383 - 4, // IID11384 - 4, // IID11385 - 4, // IID11386 - 4, // IID11387 - 4, // IID11388 - 4, // IID11389 - 4, // IID11390 - 4, // IID11391 - 4, // IID11392 - 4, // IID11393 - 4, // IID11394 - 4, // IID11395 - 4, // IID11396 - 4, // IID11397 - 4, // IID11398 - 4, // IID11399 - 4, // IID11400 - 4, // IID11401 - 4, // IID11402 - 4, // IID11403 - 4, // IID11404 - 4, // IID11405 - 4, // IID11406 - 4, // IID11407 - 4, // IID11408 - 4, // IID11409 - 4, // IID11410 - 4, // IID11411 - 4, // IID11412 - 4, // IID11413 - 4, // IID11414 - 4, // IID11415 - 4, // IID11416 - 4, // IID11417 - 4, // IID11418 - 4, // IID11419 - 4, // IID11420 - 4, // IID11421 - 4, // IID11422 - 4, // IID11423 - 4, // IID11424 - 4, // IID11425 - 4, // IID11426 - 4, // IID11427 - 4, // IID11428 - 4, // IID11429 - 4, // IID11430 - 4, // IID11431 - 4, // IID11432 - 4, // IID11433 - 4, // IID11434 - 4, // IID11435 - 4, // IID11436 - 4, // IID11437 - 4, // IID11438 - 4, // IID11439 - 4, // IID11440 - 4, // IID11441 - 4, // IID11442 - 4, // IID11443 - 4, // IID11444 - 4, // IID11445 - 4, // IID11446 - 4, // IID11447 - 3, // IID11448 - 3, // IID11449 - 3, // IID11450 - 3, // IID11451 - 3, // IID11452 - 3, // IID11453 - 3, // IID11454 - 3, // IID11455 - 3, // IID11456 - 3, // IID11457 - 4, // IID11458 - 4, // IID11459 - 4, // IID11460 - 4, // IID11461 - 4, // IID11462 - 4, // IID11463 - 4, // IID11464 - 4, // IID11465 - 4, // IID11466 - 4, // IID11467 - 4, // IID11468 - 4, // IID11469 - 4, // IID11470 - 4, // IID11471 - 4, // IID11472 - 4, // IID11473 - 4, // IID11474 - 3, // IID11475 - 3, // IID11476 - 3, // IID11477 - 3, // IID11478 - 3, // IID11479 - 3, // IID11480 - 3, // IID11481 - 3, // IID11482 - 3, // IID11483 - 3, // IID11484 - 4, // IID11485 - 4, // IID11486 - 4, // IID11487 - 4, // IID11488 - 4, // IID11489 - 4, // IID11490 - 4, // IID11491 - 4, // IID11492 - 4, // IID11493 - 4, // IID11494 - 4, // IID11495 - 4, // IID11496 - 4, // IID11497 - 4, // IID11498 - 4, // IID11499 - 4, // IID11500 - 4, // IID11501 - 7, // IID11502 - 8, // IID11503 - 8, // IID11504 - 8, // IID11505 - 8, // IID11506 - 8, // IID11507 - 8, // IID11508 - 8, // IID11509 - 8, // IID11510 - 9, // IID11511 - 9, // IID11512 - 9, // IID11513 - 9, // IID11514 - 9, // IID11515 - 9, // IID11516 - 9, // IID11517 - 9, // IID11518 - 9, // IID11519 - 9, // IID11520 - 9, // IID11521 - 9, // IID11522 - 9, // IID11523 - 9, // IID11524 - 9, // IID11525 - 9, // IID11526 - 9, // IID11527 - 8, // IID11528 - 7, // IID11529 - 8, // IID11530 - 8, // IID11531 - 8, // IID11532 - 8, // IID11533 - 8, // IID11534 - 8, // IID11535 - 8, // IID11536 - 8, // IID11537 - 9, // IID11538 - 9, // IID11539 - 9, // IID11540 - 9, // IID11541 - 9, // IID11542 - 9, // IID11543 - 9, // IID11544 - 9, // IID11545 - 9, // IID11546 - 9, // IID11547 - 9, // IID11548 - 9, // IID11549 - 9, // IID11550 - 9, // IID11551 - 8, // IID11552 - 9, // IID11553 - 9, // IID11554 - 9, // IID11555 - 7, // IID11556 - 8, // IID11557 - 7, // IID11558 - 8, // IID11559 - 8, // IID11560 - 8, // IID11561 - 8, // IID11562 - 8, // IID11563 - 8, // IID11564 - 7, // IID11565 - 9, // IID11566 - 9, // IID11567 - 9, // IID11568 - 9, // IID11569 - 9, // IID11570 - 8, // IID11571 - 9, // IID11572 - 9, // IID11573 - 9, // IID11574 - 9, // IID11575 - 9, // IID11576 - 8, // IID11577 - 9, // IID11578 - 9, // IID11579 - 9, // IID11580 - 9, // IID11581 - 9, // IID11582 - 8, // IID11583 - 8, // IID11584 - 8, // IID11585 - 7, // IID11586 - 8, // IID11587 - 8, // IID11588 - 8, // IID11589 - 8, // IID11590 - 8, // IID11591 - 9, // IID11592 - 8, // IID11593 - 9, // IID11594 - 9, // IID11595 - 9, // IID11596 - 9, // IID11597 - 8, // IID11598 - 8, // IID11599 - 9, // IID11600 - 8, // IID11601 - 9, // IID11602 - 9, // IID11603 - 8, // IID11604 - 9, // IID11605 - 9, // IID11606 - 8, // IID11607 - 9, // IID11608 - 9, // IID11609 - 8, // IID11610 - 8, // IID11611 - 8, // IID11612 - 8, // IID11613 - 8, // IID11614 - 7, // IID11615 - 8, // IID11616 - 8, // IID11617 - 8, // IID11618 - 7, // IID11619 - 9, // IID11620 - 8, // IID11621 - 8, // IID11622 - 8, // IID11623 - 9, // IID11624 - 8, // IID11625 - 9, // IID11626 - 9, // IID11627 - 9, // IID11628 - 8, // IID11629 - 8, // IID11630 - 8, // IID11631 - 9, // IID11632 - 8, // IID11633 - 9, // IID11634 - 9, // IID11635 - 9, // IID11636 - 8, // IID11637 - 8, // IID11638 - 8, // IID11639 - 8, // IID11640 - 8, // IID11641 - 8, // IID11642 - 8, // IID11643 - 8, // IID11644 - 8, // IID11645 - 9, // IID11646 - 9, // IID11647 - 9, // IID11648 - 9, // IID11649 - 8, // IID11650 - 9, // IID11651 - 9, // IID11652 - 8, // IID11653 - 8, // IID11654 - 9, // IID11655 - 9, // IID11656 - 8, // IID11657 - 9, // IID11658 - 9, // IID11659 - 9, // IID11660 - 9, // IID11661 - 9, // IID11662 - 9, // IID11663 - 7, // IID11664 - 8, // IID11665 - 8, // IID11666 - 8, // IID11667 - 7, // IID11668 - 8, // IID11669 - 8, // IID11670 - 8, // IID11671 - 8, // IID11672 - 9, // IID11673 - 9, // IID11674 - 9, // IID11675 - 9, // IID11676 - 8, // IID11677 - 9, // IID11678 - 9, // IID11679 - 9, // IID11680 - 8, // IID11681 - 9, // IID11682 - 9, // IID11683 - 9, // IID11684 - 9, // IID11685 - 9, // IID11686 - 9, // IID11687 - 9, // IID11688 - 9, // IID11689 - 9, // IID11690 - 9, // IID11691 - 8, // IID11692 - 9, // IID11693 - 8, // IID11694 - 9, // IID11695 - 8, // IID11696 - 9, // IID11697 - 9, // IID11698 - 8, // IID11699 - 9, // IID11700 - 9, // IID11701 - 9, // IID11702 - 9, // IID11703 - 9, // IID11704 - 9, // IID11705 - 9, // IID11706 - 9, // IID11707 - 8, // IID11708 - 9, // IID11709 - 9, // IID11710 - 9, // IID11711 - 9, // IID11712 - 9, // IID11713 - 9, // IID11714 - 8, // IID11715 - 8, // IID11716 - 8, // IID11717 - 9, // IID11718 - 9, // IID11719 - 9, // IID11720 - 9, // IID11721 - 8, // IID11722 - 9, // IID11723 - 9, // IID11724 - 9, // IID11725 - 9, // IID11726 - 9, // IID11727 - 10, // IID11728 - 10, // IID11729 - 10, // IID11730 - 10, // IID11731 - 10, // IID11732 - 10, // IID11733 - 10, // IID11734 - 9, // IID11735 - 10, // IID11736 - 9, // IID11737 - 10, // IID11738 - 10, // IID11739 - 10, // IID11740 - 10, // IID11741 - 9, // IID11742 - 9, // IID11743 - 10, // IID11744 - 9, // IID11745 - 9, // IID11746 - 9, // IID11747 - 9, // IID11748 - 9, // IID11749 - 8, // IID11750 - 9, // IID11751 - 9, // IID11752 - 9, // IID11753 - 9, // IID11754 - 10, // IID11755 - 10, // IID11756 - 10, // IID11757 - 9, // IID11758 - 10, // IID11759 - 10, // IID11760 - 10, // IID11761 - 10, // IID11762 - 10, // IID11763 - 10, // IID11764 - 10, // IID11765 - 10, // IID11766 - 10, // IID11767 - 10, // IID11768 - 9, // IID11769 - 10, // IID11770 - 10, // IID11771 - 12, // IID11772 - 12, // IID11773 - 12, // IID11774 - 11, // IID11775 - 12, // IID11776 - 12, // IID11777 - 12, // IID11778 - 12, // IID11779 - 11, // IID11780 - 12, // IID11781 - 13, // IID11782 - 13, // IID11783 - 12, // IID11784 - 13, // IID11785 - 13, // IID11786 - 13, // IID11787 - 13, // IID11788 - 13, // IID11789 - 13, // IID11790 - 12, // IID11791 - 13, // IID11792 - 13, // IID11793 - 13, // IID11794 - 13, // IID11795 - 12, // IID11796 - 12, // IID11797 - 12, // IID11798 - 12, // IID11799 - 11, // IID11800 - 12, // IID11801 - 12, // IID11802 - 12, // IID11803 - 11, // IID11804 - 12, // IID11805 - 12, // IID11806 - 12, // IID11807 - 12, // IID11808 - 13, // IID11809 - 13, // IID11810 - 12, // IID11811 - 12, // IID11812 - 13, // IID11813 - 13, // IID11814 - 12, // IID11815 - 13, // IID11816 - 13, // IID11817 - 12, // IID11818 - 13, // IID11819 - 13, // IID11820 - 12, // IID11821 - 13, // IID11822 - 13, // IID11823 - 13, // IID11824 - 13, // IID11825 - 12, // IID11826 - 12, // IID11827 - 12, // IID11828 - 11, // IID11829 - 11, // IID11830 - 12, // IID11831 - 12, // IID11832 - 12, // IID11833 - 12, // IID11834 - 11, // IID11835 - 13, // IID11836 - 13, // IID11837 - 13, // IID11838 - 13, // IID11839 - 13, // IID11840 - 13, // IID11841 - 13, // IID11842 - 13, // IID11843 - 13, // IID11844 - 13, // IID11845 - 13, // IID11846 - 13, // IID11847 - 12, // IID11848 - 13, // IID11849 - 13, // IID11850 - 13, // IID11851 - 13, // IID11852 - 12, // IID11853 - 12, // IID11854 - 12, // IID11855 - 12, // IID11856 - 12, // IID11857 - 12, // IID11858 - 12, // IID11859 - 12, // IID11860 - 12, // IID11861 - 11, // IID11862 - 13, // IID11863 - 13, // IID11864 - 13, // IID11865 - 13, // IID11866 - 13, // IID11867 - 13, // IID11868 - 13, // IID11869 - 13, // IID11870 - 13, // IID11871 - 12, // IID11872 - 13, // IID11873 - 13, // IID11874 - 12, // IID11875 - 13, // IID11876 - 13, // IID11877 - 12, // IID11878 - 12, // IID11879 - 12, // IID11880 - 11, // IID11881 - 12, // IID11882 - 12, // IID11883 - 12, // IID11884 - 12, // IID11885 - 12, // IID11886 - 12, // IID11887 - 12, // IID11888 - 12, // IID11889 - 11, // IID11890 - 13, // IID11891 - 13, // IID11892 - 12, // IID11893 - 13, // IID11894 - 13, // IID11895 - 13, // IID11896 - 12, // IID11897 - 13, // IID11898 - 13, // IID11899 - 13, // IID11900 - 13, // IID11901 - 13, // IID11902 - 13, // IID11903 - 13, // IID11904 - 12, // IID11905 - 13, // IID11906 - 12, // IID11907 - 12, // IID11908 - 12, // IID11909 - 12, // IID11910 - 12, // IID11911 - 12, // IID11912 - 12, // IID11913 - 12, // IID11914 - 12, // IID11915 - 12, // IID11916 - 13, // IID11917 - 13, // IID11918 - 13, // IID11919 - 13, // IID11920 - 13, // IID11921 - 13, // IID11922 - 13, // IID11923 - 13, // IID11924 - 13, // IID11925 - 13, // IID11926 - 13, // IID11927 - 13, // IID11928 - 13, // IID11929 - 13, // IID11930 - 12, // IID11931 - 12, // IID11932 - 13, // IID11933 - 9, // IID11934 - 9, // IID11935 - 8, // IID11936 - 9, // IID11937 - 9, // IID11938 - 8, // IID11939 - 9, // IID11940 - 9, // IID11941 - 9, // IID11942 - 9, // IID11943 - 10, // IID11944 - 10, // IID11945 - 10, // IID11946 - 9, // IID11947 - 10, // IID11948 - 10, // IID11949 - 9, // IID11950 - 10, // IID11951 - 10, // IID11952 - 10, // IID11953 - 10, // IID11954 - 10, // IID11955 - 10, // IID11956 - 10, // IID11957 - 10, // IID11958 - 9, // IID11959 - 10, // IID11960 - 8, // IID11961 - 9, // IID11962 - 8, // IID11963 - 9, // IID11964 - 9, // IID11965 - 9, // IID11966 - 9, // IID11967 - 9, // IID11968 - 9, // IID11969 - 8, // IID11970 - 10, // IID11971 - 10, // IID11972 - 10, // IID11973 - 10, // IID11974 - 10, // IID11975 - 10, // IID11976 - 10, // IID11977 - 10, // IID11978 - 10, // IID11979 - 10, // IID11980 - 10, // IID11981 - 10, // IID11982 - 10, // IID11983 - 10, // IID11984 - 9, // IID11985 - 10, // IID11986 - 10, // IID11987 - 12, // IID11988 - 12, // IID11989 - 12, // IID11990 - 12, // IID11991 - 12, // IID11992 - 12, // IID11993 - 12, // IID11994 - 12, // IID11995 - 11, // IID11996 - 12, // IID11997 - 13, // IID11998 - 13, // IID11999 - 13, // IID12000 - 13, // IID12001 - 13, // IID12002 - 13, // IID12003 - 13, // IID12004 - 13, // IID12005 - 13, // IID12006 - 13, // IID12007 - 13, // IID12008 - 13, // IID12009 - 13, // IID12010 - 13, // IID12011 - 13, // IID12012 - 13, // IID12013 - 12, // IID12014 - 12, // IID12015 - 12, // IID12016 - 11, // IID12017 - 12, // IID12018 - 11, // IID12019 - 12, // IID12020 - 11, // IID12021 - 12, // IID12022 - 12, // IID12023 - 11, // IID12024 - 11, // IID12025 - 13, // IID12026 - 13, // IID12027 - 12, // IID12028 - 13, // IID12029 - 13, // IID12030 - 13, // IID12031 - 13, // IID12032 - 13, // IID12033 - 13, // IID12034 - 13, // IID12035 - 13, // IID12036 - 13, // IID12037 - 13, // IID12038 - 13, // IID12039 - 12, // IID12040 - 13, // IID12041 - 12, // IID12042 - 12, // IID12043 - 12, // IID12044 - 11, // IID12045 - 12, // IID12046 - 11, // IID12047 - 12, // IID12048 - 12, // IID12049 - 12, // IID12050 - 12, // IID12051 - 13, // IID12052 - 13, // IID12053 - 13, // IID12054 - 12, // IID12055 - 13, // IID12056 - 13, // IID12057 - 13, // IID12058 - 13, // IID12059 - 13, // IID12060 - 13, // IID12061 - 12, // IID12062 - 13, // IID12063 - 13, // IID12064 - 13, // IID12065 - 12, // IID12066 - 13, // IID12067 - 13, // IID12068 - 12, // IID12069 - 11, // IID12070 - 12, // IID12071 - 12, // IID12072 - 12, // IID12073 - 12, // IID12074 - 11, // IID12075 - 12, // IID12076 - 11, // IID12077 - 11, // IID12078 - 13, // IID12079 - 13, // IID12080 - 13, // IID12081 - 13, // IID12082 - 13, // IID12083 - 13, // IID12084 - 12, // IID12085 - 13, // IID12086 - 13, // IID12087 - 13, // IID12088 - 13, // IID12089 - 13, // IID12090 - 12, // IID12091 - 13, // IID12092 - 13, // IID12093 - 13, // IID12094 - 13, // IID12095 - 12, // IID12096 - 12, // IID12097 - 12, // IID12098 - 12, // IID12099 - 12, // IID12100 - 11, // IID12101 - 12, // IID12102 - 12, // IID12103 - 12, // IID12104 - 12, // IID12105 - 11, // IID12106 - 12, // IID12107 - 13, // IID12108 - 13, // IID12109 - 13, // IID12110 - 13, // IID12111 - 13, // IID12112 - 13, // IID12113 - 13, // IID12114 - 13, // IID12115 - 13, // IID12116 - 13, // IID12117 - 12, // IID12118 - 13, // IID12119 - 13, // IID12120 - 12, // IID12121 - 13, // IID12122 - 12, // IID12123 - 12, // IID12124 - 11, // IID12125 - 12, // IID12126 - 12, // IID12127 - 12, // IID12128 - 12, // IID12129 - 12, // IID12130 - 11, // IID12131 - 12, // IID12132 - 11, // IID12133 - 13, // IID12134 - 13, // IID12135 - 13, // IID12136 - 13, // IID12137 - 13, // IID12138 - 13, // IID12139 - 13, // IID12140 - 13, // IID12141 - 13, // IID12142 - 13, // IID12143 - 12, // IID12144 - 13, // IID12145 - 13, // IID12146 - 13, // IID12147 - 13, // IID12148 - 13, // IID12149 - 9, // IID12150 - 9, // IID12151 - 8, // IID12152 - 9, // IID12153 - 8, // IID12154 - 9, // IID12155 - 9, // IID12156 - 9, // IID12157 - 9, // IID12158 - 9, // IID12159 - 10, // IID12160 - 10, // IID12161 - 10, // IID12162 - 10, // IID12163 - 10, // IID12164 - 10, // IID12165 - 9, // IID12166 - 9, // IID12167 - 10, // IID12168 - 10, // IID12169 - 10, // IID12170 - 10, // IID12171 - 10, // IID12172 - 10, // IID12173 - 10, // IID12174 - 10, // IID12175 - 9, // IID12176 - 8, // IID12177 - 9, // IID12178 - 9, // IID12179 - 8, // IID12180 - 9, // IID12181 - 8, // IID12182 - 9, // IID12183 - 9, // IID12184 - 8, // IID12185 - 9, // IID12186 - 10, // IID12187 - 10, // IID12188 - 10, // IID12189 - 10, // IID12190 - 10, // IID12191 - 10, // IID12192 - 10, // IID12193 - 10, // IID12194 - 10, // IID12195 - 10, // IID12196 - 10, // IID12197 - 10, // IID12198 - 10, // IID12199 - 10, // IID12200 - 10, // IID12201 - 10, // IID12202 - 9, // IID12203 - 12, // IID12204 - 11, // IID12205 - 11, // IID12206 - 11, // IID12207 - 12, // IID12208 - 12, // IID12209 - 12, // IID12210 - 12, // IID12211 - 12, // IID12212 - 11, // IID12213 - 11, // IID12214 - 12, // IID12215 - 13, // IID12216 - 13, // IID12217 - 13, // IID12218 - 13, // IID12219 - 13, // IID12220 - 12, // IID12221 - 13, // IID12222 - 13, // IID12223 - 13, // IID12224 - 13, // IID12225 - 13, // IID12226 - 13, // IID12227 - 13, // IID12228 - 13, // IID12229 - 13, // IID12230 - 12, // IID12231 - 11, // IID12232 - 12, // IID12233 - 12, // IID12234 - 12, // IID12235 - 12, // IID12236 - 12, // IID12237 - 12, // IID12238 - 12, // IID12239 - 12, // IID12240 - 13, // IID12241 - 13, // IID12242 - 13, // IID12243 - 13, // IID12244 - 13, // IID12245 - 13, // IID12246 - 13, // IID12247 - 13, // IID12248 - 12, // IID12249 - 13, // IID12250 - 12, // IID12251 - 13, // IID12252 - 13, // IID12253 - 13, // IID12254 - 13, // IID12255 - 13, // IID12256 - 13, // IID12257 - 11, // IID12258 - 12, // IID12259 - 12, // IID12260 - 12, // IID12261 - 11, // IID12262 - 12, // IID12263 - 12, // IID12264 - 12, // IID12265 - 12, // IID12266 - 12, // IID12267 - 13, // IID12268 - 13, // IID12269 - 13, // IID12270 - 13, // IID12271 - 13, // IID12272 - 13, // IID12273 - 13, // IID12274 - 13, // IID12275 - 13, // IID12276 - 13, // IID12277 - 13, // IID12278 - 12, // IID12279 - 13, // IID12280 - 13, // IID12281 - 13, // IID12282 - 13, // IID12283 - 13, // IID12284 - 12, // IID12285 - 12, // IID12286 - 11, // IID12287 - 12, // IID12288 - 12, // IID12289 - 12, // IID12290 - 11, // IID12291 - 12, // IID12292 - 11, // IID12293 - 11, // IID12294 - 13, // IID12295 - 13, // IID12296 - 13, // IID12297 - 13, // IID12298 - 13, // IID12299 - 13, // IID12300 - 13, // IID12301 - 13, // IID12302 - 13, // IID12303 - 13, // IID12304 - 12, // IID12305 - 13, // IID12306 - 13, // IID12307 - 13, // IID12308 - 13, // IID12309 - 13, // IID12310 - 13, // IID12311 - 12, // IID12312 - 12, // IID12313 - 12, // IID12314 - 12, // IID12315 - 12, // IID12316 - 11, // IID12317 - 12, // IID12318 - 12, // IID12319 - 12, // IID12320 - 11, // IID12321 - 13, // IID12322 - 12, // IID12323 - 13, // IID12324 - 13, // IID12325 - 13, // IID12326 - 13, // IID12327 - 13, // IID12328 - 13, // IID12329 - 12, // IID12330 - 13, // IID12331 - 13, // IID12332 - 13, // IID12333 - 13, // IID12334 - 13, // IID12335 - 13, // IID12336 - 13, // IID12337 - 13, // IID12338 - 12, // IID12339 - 11, // IID12340 - 12, // IID12341 - 12, // IID12342 - 12, // IID12343 - 12, // IID12344 - 12, // IID12345 - 12, // IID12346 - 12, // IID12347 - 11, // IID12348 - 13, // IID12349 - 13, // IID12350 - 13, // IID12351 - 13, // IID12352 - 12, // IID12353 - 13, // IID12354 - 13, // IID12355 - 13, // IID12356 - 13, // IID12357 - 13, // IID12358 - 13, // IID12359 - 12, // IID12360 - 13, // IID12361 - 13, // IID12362 - 13, // IID12363 - 13, // IID12364 - 13, // IID12365 - 8, // IID12366 - 7, // IID12367 - 8, // IID12368 - 8, // IID12369 - 7, // IID12370 - 8, // IID12371 - 8, // IID12372 - 8, // IID12373 - 7, // IID12374 - 7, // IID12375 - 7, // IID12376 - 8, // IID12377 - 9, // IID12378 - 8, // IID12379 - 9, // IID12380 - 9, // IID12381 - 9, // IID12382 - 9, // IID12383 - 8, // IID12384 - 9, // IID12385 - 9, // IID12386 - 9, // IID12387 - 9, // IID12388 - 9, // IID12389 - 9, // IID12390 - 9, // IID12391 - 8, // IID12392 - 9, // IID12393 - 9, // IID12394 - 9, // IID12395 - 9, // IID12396 - 8, // IID12397 - 9, // IID12398 - 9, // IID12399 - 9, // IID12400 - 8, // IID12401 - 9, // IID12402 - 10, // IID12403 - 9, // IID12404 - 10, // IID12405 - 10, // IID12406 - 10, // IID12407 - 10, // IID12408 - 10, // IID12409 - 10, // IID12410 - 10, // IID12411 - 10, // IID12412 - 10, // IID12413 - 10, // IID12414 - 9, // IID12415 - 10, // IID12416 - 10, // IID12417 - 10, // IID12418 - 10, // IID12419 - 8, // IID12420 - 8, // IID12421 - 9, // IID12422 - 9, // IID12423 - 8, // IID12424 - 8, // IID12425 - 9, // IID12426 - 9, // IID12427 - 9, // IID12428 - 9, // IID12429 - 10, // IID12430 - 10, // IID12431 - 10, // IID12432 - 10, // IID12433 - 10, // IID12434 - 10, // IID12435 - 10, // IID12436 - 10, // IID12437 - 10, // IID12438 - 10, // IID12439 - 10, // IID12440 - 10, // IID12441 - 9, // IID12442 - 10, // IID12443 - 10, // IID12444 - 10, // IID12445 - 9, // IID12446 - 9, // IID12447 - 9, // IID12448 - 9, // IID12449 - 9, // IID12450 - 9, // IID12451 - 8, // IID12452 - 8, // IID12453 - 9, // IID12454 - 9, // IID12455 - 9, // IID12456 - 10, // IID12457 - 10, // IID12458 - 10, // IID12459 - 10, // IID12460 - 10, // IID12461 - 10, // IID12462 - 10, // IID12463 - 9, // IID12464 - 10, // IID12465 - 10, // IID12466 - 10, // IID12467 - 10, // IID12468 - 10, // IID12469 - 10, // IID12470 - 9, // IID12471 - 9, // IID12472 - 9, // IID12473 - 9, // IID12474 - 9, // IID12475 - 9, // IID12476 - 9, // IID12477 - 9, // IID12478 - 8, // IID12479 - 8, // IID12480 - 9, // IID12481 - 9, // IID12482 - 9, // IID12483 - 10, // IID12484 - 10, // IID12485 - 10, // IID12486 - 9, // IID12487 - 10, // IID12488 - 10, // IID12489 - 10, // IID12490 - 10, // IID12491 - 10, // IID12492 - 10, // IID12493 - 10, // IID12494 - 10, // IID12495 - 10, // IID12496 - 10, // IID12497 - 9, // IID12498 - 10, // IID12499 - 10, // IID12500 - 8, // IID12501 - 8, // IID12502 - 8, // IID12503 - 8, // IID12504 - 7, // IID12505 - 8, // IID12506 - 8, // IID12507 - 8, // IID12508 - 8, // IID12509 - 8, // IID12510 - 7, // IID12511 - 9, // IID12512 - 8, // IID12513 - 9, // IID12514 - 8, // IID12515 - 9, // IID12516 - 9, // IID12517 - 9, // IID12518 - 9, // IID12519 - 9, // IID12520 - 9, // IID12521 - 8, // IID12522 - 9, // IID12523 - 9, // IID12524 - 9, // IID12525 - 8, // IID12526 - 8, // IID12527 - 9, // IID12528 - 8, // IID12529 - 9, // IID12530 - 9, // IID12531 - 9, // IID12532 - 8, // IID12533 - 9, // IID12534 - 9, // IID12535 - 8, // IID12536 - 9, // IID12537 - 10, // IID12538 - 10, // IID12539 - 10, // IID12540 - 10, // IID12541 - 10, // IID12542 - 10, // IID12543 - 9, // IID12544 - 10, // IID12545 - 9, // IID12546 - 10, // IID12547 - 10, // IID12548 - 10, // IID12549 - 10, // IID12550 - 10, // IID12551 - 9, // IID12552 - 10, // IID12553 - 10, // IID12554 - 9, // IID12555 - 9, // IID12556 - 8, // IID12557 - 9, // IID12558 - 9, // IID12559 - 9, // IID12560 - 8, // IID12561 - 9, // IID12562 - 9, // IID12563 - 9, // IID12564 - 8, // IID12565 - 10, // IID12566 - 10, // IID12567 - 10, // IID12568 - 10, // IID12569 - 10, // IID12570 - 9, // IID12571 - 10, // IID12572 - 10, // IID12573 - 9, // IID12574 - 10, // IID12575 - 10, // IID12576 - 10, // IID12577 - 10, // IID12578 - 10, // IID12579 - 10, // IID12580 - 10, // IID12581 - 9, // IID12582 - 9, // IID12583 - 8, // IID12584 - 9, // IID12585 - 9, // IID12586 - 9, // IID12587 - 9, // IID12588 - 9, // IID12589 - 9, // IID12590 - 8, // IID12591 - 8, // IID12592 - 10, // IID12593 - 9, // IID12594 - 10, // IID12595 - 10, // IID12596 - 10, // IID12597 - 10, // IID12598 - 9, // IID12599 - 9, // IID12600 - 10, // IID12601 - 10, // IID12602 - 9, // IID12603 - 10, // IID12604 - 10, // IID12605 - 10, // IID12606 - 10, // IID12607 - 10, // IID12608 - 9, // IID12609 - 9, // IID12610 - 8, // IID12611 - 9, // IID12612 - 8, // IID12613 - 8, // IID12614 - 9, // IID12615 - 9, // IID12616 - 9, // IID12617 - 9, // IID12618 - 10, // IID12619 - 10, // IID12620 - 10, // IID12621 - 10, // IID12622 - 10, // IID12623 - 10, // IID12624 - 10, // IID12625 - 10, // IID12626 - 10, // IID12627 - 9, // IID12628 - 10, // IID12629 - 10, // IID12630 - 10, // IID12631 - 10, // IID12632 - 9, // IID12633 - 10, // IID12634 - 10, // IID12635 - 9, // IID12636 - 9, // IID12637 - 9, // IID12638 - 9, // IID12639 - 9, // IID12640 - 9, // IID12641 - 9, // IID12642 - 9, // IID12643 - 9, // IID12644 - 9, // IID12645 - 10, // IID12646 - 10, // IID12647 - 10, // IID12648 - 10, // IID12649 - 10, // IID12650 - 10, // IID12651 - 9, // IID12652 - 9, // IID12653 - 10, // IID12654 - 10, // IID12655 - 10, // IID12656 - 10, // IID12657 - 10, // IID12658 - 10, // IID12659 - 10, // IID12660 - 10, // IID12661 - 10, // IID12662 - 9, // IID12663 - 8, // IID12664 - 9, // IID12665 - 9, // IID12666 - 9, // IID12667 - 9, // IID12668 - 9, // IID12669 - 9, // IID12670 - 9, // IID12671 - 9, // IID12672 - 8, // IID12673 - 10, // IID12674 - 10, // IID12675 - 9, // IID12676 - 10, // IID12677 - 10, // IID12678 - 10, // IID12679 - 10, // IID12680 - 10, // IID12681 - 10, // IID12682 - 10, // IID12683 - 10, // IID12684 - 10, // IID12685 - 10, // IID12686 - 10, // IID12687 - 9, // IID12688 - 10, // IID12689 - 12, // IID12690 - 12, // IID12691 - 12, // IID12692 - 12, // IID12693 - 12, // IID12694 - 12, // IID12695 - 12, // IID12696 - 12, // IID12697 - 12, // IID12698 - 11, // IID12699 - 13, // IID12700 - 13, // IID12701 - 13, // IID12702 - 13, // IID12703 - 12, // IID12704 - 13, // IID12705 - 13, // IID12706 - 13, // IID12707 - 13, // IID12708 - 13, // IID12709 - 13, // IID12710 - 13, // IID12711 - 13, // IID12712 - 13, // IID12713 - 13, // IID12714 - 13, // IID12715 - 13, // IID12716 - 12, // IID12717 - 12, // IID12718 - 12, // IID12719 - 12, // IID12720 - 12, // IID12721 - 12, // IID12722 - 12, // IID12723 - 12, // IID12724 - 12, // IID12725 - 11, // IID12726 - 13, // IID12727 - 13, // IID12728 - 13, // IID12729 - 13, // IID12730 - 13, // IID12731 - 13, // IID12732 - 13, // IID12733 - 13, // IID12734 - 12, // IID12735 - 13, // IID12736 - 13, // IID12737 - 13, // IID12738 - 13, // IID12739 - 13, // IID12740 - 12, // IID12741 - 12, // IID12742 - 13, // IID12743 - 12, // IID12744 - 11, // IID12745 - 12, // IID12746 - 11, // IID12747 - 12, // IID12748 - 12, // IID12749 - 12, // IID12750 - 12, // IID12751 - 12, // IID12752 - 12, // IID12753 - 13, // IID12754 - 13, // IID12755 - 13, // IID12756 - 12, // IID12757 - 13, // IID12758 - 13, // IID12759 - 13, // IID12760 - 13, // IID12761 - 13, // IID12762 - 13, // IID12763 - 13, // IID12764 - 13, // IID12765 - 13, // IID12766 - 13, // IID12767 - 12, // IID12768 - 13, // IID12769 - 12, // IID12770 - 12, // IID12771 - 12, // IID12772 - 11, // IID12773 - 12, // IID12774 - 11, // IID12775 - 12, // IID12776 - 12, // IID12777 - 12, // IID12778 - 12, // IID12779 - 12, // IID12780 - 13, // IID12781 - 13, // IID12782 - 13, // IID12783 - 13, // IID12784 - 13, // IID12785 - 13, // IID12786 - 13, // IID12787 - 12, // IID12788 - 13, // IID12789 - 12, // IID12790 - 13, // IID12791 - 13, // IID12792 - 13, // IID12793 - 13, // IID12794 - 12, // IID12795 - 13, // IID12796 - 13, // IID12797 - 12, // IID12798 - 12, // IID12799 - 12, // IID12800 - 12, // IID12801 - 12, // IID12802 - 12, // IID12803 - 12, // IID12804 - 12, // IID12805 - 12, // IID12806 - 12, // IID12807 - 13, // IID12808 - 12, // IID12809 - 13, // IID12810 - 13, // IID12811 - 13, // IID12812 - 13, // IID12813 - 13, // IID12814 - 13, // IID12815 - 13, // IID12816 - 13, // IID12817 - 13, // IID12818 - 13, // IID12819 - 12, // IID12820 - 13, // IID12821 - 13, // IID12822 - 13, // IID12823 - 13, // IID12824 - 11, // IID12825 - 12, // IID12826 - 12, // IID12827 - 12, // IID12828 - 11, // IID12829 - 12, // IID12830 - 12, // IID12831 - 12, // IID12832 - 11, // IID12833 - 12, // IID12834 - 13, // IID12835 - 13, // IID12836 - 13, // IID12837 - 13, // IID12838 - 12, // IID12839 - 13, // IID12840 - 13, // IID12841 - 13, // IID12842 - 12, // IID12843 - 12, // IID12844 - 13, // IID12845 - 13, // IID12846 - 13, // IID12847 - 13, // IID12848 - 12, // IID12849 - 12, // IID12850 - 13, // IID12851 - 8, // IID12852 - 8, // IID12853 - 7, // IID12854 - 7, // IID12855 - 8, // IID12856 - 8, // IID12857 - 8, // IID12858 - 8, // IID12859 - 7, // IID12860 - 8, // IID12861 - 9, // IID12862 - 8, // IID12863 - 9, // IID12864 - 9, // IID12865 - 9, // IID12866 - 9, // IID12867 - 9, // IID12868 - 9, // IID12869 - 9, // IID12870 - 9, // IID12871 - 9, // IID12872 - 9, // IID12873 - 8, // IID12874 - 9, // IID12875 - 8, // IID12876 - 9, // IID12877 - 9, // IID12878 - 9, // IID12879 - 9, // IID12880 - 9, // IID12881 - 9, // IID12882 - 9, // IID12883 - 8, // IID12884 - 9, // IID12885 - 9, // IID12886 - 9, // IID12887 - 9, // IID12888 - 10, // IID12889 - 10, // IID12890 - 9, // IID12891 - 10, // IID12892 - 10, // IID12893 - 10, // IID12894 - 9, // IID12895 - 10, // IID12896 - 10, // IID12897 - 10, // IID12898 - 10, // IID12899 - 9, // IID12900 - 10, // IID12901 - 10, // IID12902 - 10, // IID12903 - 9, // IID12904 - 10, // IID12905 - 8, // IID12906 - 9, // IID12907 - 9, // IID12908 - 9, // IID12909 - 9, // IID12910 - 9, // IID12911 - 9, // IID12912 - 9, // IID12913 - 9, // IID12914 - 9, // IID12915 - 10, // IID12916 - 10, // IID12917 - 9, // IID12918 - 10, // IID12919 - 9, // IID12920 - 10, // IID12921 - 10, // IID12922 - 9, // IID12923 - 10, // IID12924 - 10, // IID12925 - 10, // IID12926 - 9, // IID12927 - 10, // IID12928 - 10, // IID12929 - 10, // IID12930 - 9, // IID12931 - 10, // IID12932 - 9, // IID12933 - 9, // IID12934 - 8, // IID12935 - 9, // IID12936 - 8, // IID12937 - 9, // IID12938 - 9, // IID12939 - 9, // IID12940 - 9, // IID12941 - 9, // IID12942 - 8, // IID12943 - 10, // IID12944 - 10, // IID12945 - 10, // IID12946 - 9, // IID12947 - 10, // IID12948 - 10, // IID12949 - 10, // IID12950 - 10, // IID12951 - 10, // IID12952 - 10, // IID12953 - 9, // IID12954 - 9, // IID12955 - 10, // IID12956 - 10, // IID12957 - 9, // IID12958 - 10, // IID12959 - 9, // IID12960 - 9, // IID12961 - 8, // IID12962 - 8, // IID12963 - 9, // IID12964 - 9, // IID12965 - 9, // IID12966 - 9, // IID12967 - 9, // IID12968 - 9, // IID12969 - 8, // IID12970 - 10, // IID12971 - 10, // IID12972 - 10, // IID12973 - 10, // IID12974 - 10, // IID12975 - 10, // IID12976 - 10, // IID12977 - 10, // IID12978 - 10, // IID12979 - 10, // IID12980 - 10, // IID12981 - 10, // IID12982 - 10, // IID12983 - 10, // IID12984 - 10, // IID12985 - 10, // IID12986 - 9, // IID12987 - 9, // IID12988 - 9, // IID12989 - 9, // IID12990 - 9, // IID12991 - 8, // IID12992 - 9, // IID12993 - 9, // IID12994 - 9, // IID12995 - 8, // IID12996 - 8, // IID12997 - 10, // IID12998 - 10, // IID12999 - 10, // IID13000 - 9, // IID13001 - 10, // IID13002 - 10, // IID13003 - 9, // IID13004 - 9, // IID13005 - 10, // IID13006 - 9, // IID13007 - 10, // IID13008 - 9, // IID13009 - 10, // IID13010 - 10, // IID13011 - 9, // IID13012 - 10, // IID13013 - 9, // IID13014 - 9, // IID13015 - 9, // IID13016 - 9, // IID13017 - 9, // IID13018 - 9, // IID13019 - 9, // IID13020 - 9, // IID13021 - 9, // IID13022 - 9, // IID13023 - 10, // IID13024 - 10, // IID13025 - 10, // IID13026 - 10, // IID13027 - 10, // IID13028 - 10, // IID13029 - 10, // IID13030 - 10, // IID13031 - 10, // IID13032 - 9, // IID13033 - 10, // IID13034 - 9, // IID13035 - 10, // IID13036 - 10, // IID13037 - 10, // IID13038 - 9, // IID13039 - 9, // IID13040 - 12, // IID13041 - 12, // IID13042 - 12, // IID13043 - 11, // IID13044 - 12, // IID13045 - 12, // IID13046 - 12, // IID13047 - 12, // IID13048 - 12, // IID13049 - 12, // IID13050 - 13, // IID13051 - 13, // IID13052 - 13, // IID13053 - 12, // IID13054 - 12, // IID13055 - 13, // IID13056 - 13, // IID13057 - 13, // IID13058 - 13, // IID13059 - 12, // IID13060 - 13, // IID13061 - 13, // IID13062 - 13, // IID13063 - 13, // IID13064 - 12, // IID13065 - 13, // IID13066 - 13, // IID13067 - 12, // IID13068 - 11, // IID13069 - 12, // IID13070 - 12, // IID13071 - 11, // IID13072 - 12, // IID13073 - 12, // IID13074 - 12, // IID13075 - 12, // IID13076 - 12, // IID13077 - 13, // IID13078 - 12, // IID13079 - 13, // IID13080 - 13, // IID13081 - 13, // IID13082 - 13, // IID13083 - 12, // IID13084 - 12, // IID13085 - 13, // IID13086 - 12, // IID13087 - 13, // IID13088 - 13, // IID13089 - 13, // IID13090 - 13, // IID13091 - 13, // IID13092 - 13, // IID13093 - 12, // IID13094 - 12, // IID13095 - 12, // IID13096 - 11, // IID13097 - 12, // IID13098 - 12, // IID13099 - 12, // IID13100 - 12, // IID13101 - 12, // IID13102 - 12, // IID13103 - 11, // IID13104 - 13, // IID13105 - 13, // IID13106 - 13, // IID13107 - 13, // IID13108 - 13, // IID13109 - 13, // IID13110 - 13, // IID13111 - 13, // IID13112 - 13, // IID13113 - 13, // IID13114 - 13, // IID13115 - 13, // IID13116 - 13, // IID13117 - 13, // IID13118 - 13, // IID13119 - 13, // IID13120 - 13, // IID13121 - 12, // IID13122 - 12, // IID13123 - 12, // IID13124 - 12, // IID13125 - 12, // IID13126 - 12, // IID13127 - 12, // IID13128 - 12, // IID13129 - 12, // IID13130 - 12, // IID13131 - 11, // IID13132 - 13, // IID13133 - 13, // IID13134 - 13, // IID13135 - 13, // IID13136 - 13, // IID13137 - 13, // IID13138 - 13, // IID13139 - 12, // IID13140 - 13, // IID13141 - 13, // IID13142 - 13, // IID13143 - 13, // IID13144 - 13, // IID13145 - 13, // IID13146 - 12, // IID13147 - 13, // IID13148 - 12, // IID13149 - 12, // IID13150 - 11, // IID13151 - 12, // IID13152 - 12, // IID13153 - 12, // IID13154 - 12, // IID13155 - 12, // IID13156 - 12, // IID13157 - 12, // IID13158 - 11, // IID13159 - 12, // IID13160 - 13, // IID13161 - 13, // IID13162 - 13, // IID13163 - 13, // IID13164 - 12, // IID13165 - 13, // IID13166 - 13, // IID13167 - 12, // IID13168 - 13, // IID13169 - 13, // IID13170 - 12, // IID13171 - 13, // IID13172 - 13, // IID13173 - 12, // IID13174 - 13, // IID13175 - 12, // IID13176 - 11, // IID13177 - 12, // IID13178 - 12, // IID13179 - 12, // IID13180 - 11, // IID13181 - 12, // IID13182 - 12, // IID13183 - 12, // IID13184 - 12, // IID13185 - 13, // IID13186 - 13, // IID13187 - 12, // IID13188 - 12, // IID13189 - 13, // IID13190 - 13, // IID13191 - 13, // IID13192 - 13, // IID13193 - 13, // IID13194 - 13, // IID13195 - 13, // IID13196 - 12, // IID13197 - 13, // IID13198 - 13, // IID13199 - 13, // IID13200 - 13, // IID13201 - 12, // IID13202 - 9, // IID13203 - 9, // IID13204 - 9, // IID13205 - 9, // IID13206 - 9, // IID13207 - 8, // IID13208 - 8, // IID13209 - 9, // IID13210 - 9, // IID13211 - 9, // IID13212 - 10, // IID13213 - 10, // IID13214 - 9, // IID13215 - 10, // IID13216 - 10, // IID13217 - 10, // IID13218 - 9, // IID13219 - 10, // IID13220 - 10, // IID13221 - 10, // IID13222 - 10, // IID13223 - 9, // IID13224 - 10, // IID13225 - 10, // IID13226 - 10, // IID13227 - 10, // IID13228 - 10, // IID13229 - 9, // IID13230 - 9, // IID13231 - 9, // IID13232 - 9, // IID13233 - 9, // IID13234 - 9, // IID13235 - 9, // IID13236 - 9, // IID13237 - 9, // IID13238 - 9, // IID13239 - 10, // IID13240 - 10, // IID13241 - 10, // IID13242 - 9, // IID13243 - 9, // IID13244 - 10, // IID13245 - 10, // IID13246 - 10, // IID13247 - 9, // IID13248 - 10, // IID13249 - 10, // IID13250 - 10, // IID13251 - 10, // IID13252 - 10, // IID13253 - 10, // IID13254 - 10, // IID13255 - 10, // IID13256 - 12, // IID13257 - 12, // IID13258 - 12, // IID13259 - 12, // IID13260 - 12, // IID13261 - 12, // IID13262 - 11, // IID13263 - 12, // IID13264 - 12, // IID13265 - 12, // IID13266 - 13, // IID13267 - 13, // IID13268 - 13, // IID13269 - 12, // IID13270 - 13, // IID13271 - 13, // IID13272 - 13, // IID13273 - 12, // IID13274 - 12, // IID13275 - 12, // IID13276 - 13, // IID13277 - 13, // IID13278 - 13, // IID13279 - 13, // IID13280 - 13, // IID13281 - 13, // IID13282 - 13, // IID13283 - 12, // IID13284 - 12, // IID13285 - 12, // IID13286 - 12, // IID13287 - 11, // IID13288 - 12, // IID13289 - 12, // IID13290 - 12, // IID13291 - 11, // IID13292 - 12, // IID13293 - 11, // IID13294 - 13, // IID13295 - 13, // IID13296 - 13, // IID13297 - 13, // IID13298 - 13, // IID13299 - 13, // IID13300 - 12, // IID13301 - 13, // IID13302 - 13, // IID13303 - 13, // IID13304 - 13, // IID13305 - 13, // IID13306 - 13, // IID13307 - 13, // IID13308 - 13, // IID13309 - 13, // IID13310 - 11, // IID13311 - 12, // IID13312 - 12, // IID13313 - 12, // IID13314 - 12, // IID13315 - 12, // IID13316 - 12, // IID13317 - 12, // IID13318 - 12, // IID13319 - 12, // IID13320 - 13, // IID13321 - 13, // IID13322 - 13, // IID13323 - 13, // IID13324 - 13, // IID13325 - 13, // IID13326 - 13, // IID13327 - 13, // IID13328 - 13, // IID13329 - 13, // IID13330 - 12, // IID13331 - 13, // IID13332 - 13, // IID13333 - 13, // IID13334 - 12, // IID13335 - 12, // IID13336 - 12, // IID13337 - 12, // IID13338 - 12, // IID13339 - 12, // IID13340 - 11, // IID13341 - 12, // IID13342 - 12, // IID13343 - 12, // IID13344 - 12, // IID13345 - 11, // IID13346 - 12, // IID13347 - 13, // IID13348 - 13, // IID13349 - 12, // IID13350 - 13, // IID13351 - 13, // IID13352 - 13, // IID13353 - 13, // IID13354 - 13, // IID13355 - 13, // IID13356 - 13, // IID13357 - 13, // IID13358 - 12, // IID13359 - 13, // IID13360 - 13, // IID13361 - 12, // IID13362 - 12, // IID13363 - 13, // IID13364 - 12, // IID13365 - 12, // IID13366 - 12, // IID13367 - 12, // IID13368 - 12, // IID13369 - 12, // IID13370 - 12, // IID13371 - 12, // IID13372 - 12, // IID13373 - 11, // IID13374 - 13, // IID13375 - 13, // IID13376 - 13, // IID13377 - 13, // IID13378 - 13, // IID13379 - 13, // IID13380 - 13, // IID13381 - 13, // IID13382 - 13, // IID13383 - 13, // IID13384 - 13, // IID13385 - 12, // IID13386 - 13, // IID13387 - 13, // IID13388 - 13, // IID13389 - 13, // IID13390 - 13, // IID13391 - 12, // IID13392 - 11, // IID13393 - 12, // IID13394 - 12, // IID13395 - 12, // IID13396 - 12, // IID13397 - 12, // IID13398 - 12, // IID13399 - 11, // IID13400 - 12, // IID13401 - 13, // IID13402 - 13, // IID13403 - 12, // IID13404 - 13, // IID13405 - 13, // IID13406 - 13, // IID13407 - 13, // IID13408 - 13, // IID13409 - 13, // IID13410 - 13, // IID13411 - 13, // IID13412 - 13, // IID13413 - 13, // IID13414 - 13, // IID13415 - 13, // IID13416 - 12, // IID13417 - 13, // IID13418 - 9, // IID13419 - 9, // IID13420 - 9, // IID13421 - 9, // IID13422 - 9, // IID13423 - 9, // IID13424 - 9, // IID13425 - 9, // IID13426 - 9, // IID13427 - 9, // IID13428 - 10, // IID13429 - 9, // IID13430 - 10, // IID13431 - 10, // IID13432 - 9, // IID13433 - 10, // IID13434 - 9, // IID13435 - 9, // IID13436 - 9, // IID13437 - 10, // IID13438 - 10, // IID13439 - 10, // IID13440 - 10, // IID13441 - 10, // IID13442 - 9, // IID13443 - 10, // IID13444 - 9, // IID13445 - 9, // IID13446 - 9, // IID13447 - 9, // IID13448 - 9, // IID13449 - 9, // IID13450 - 9, // IID13451 - 9, // IID13452 - 9, // IID13453 - 9, // IID13454 - 9, // IID13455 - 8, // IID13456 - 9, // IID13457 - 10, // IID13458 - 10, // IID13459 - 10, // IID13460 - 10, // IID13461 - 9, // IID13462 - 9, // IID13463 - 9, // IID13464 - 10, // IID13465 - 9, // IID13466 - 9, // IID13467 - 10, // IID13468 - 10, // IID13469 - 10, // IID13470 - 10, // IID13471 - 10, // IID13472 - 12, // IID13473 - 11, // IID13474 - 12, // IID13475 - 12, // IID13476 - 12, // IID13477 - 12, // IID13478 - 11, // IID13479 - 12, // IID13480 - 12, // IID13481 - 12, // IID13482 - 11, // IID13483 - 12, // IID13484 - 13, // IID13485 - 13, // IID13486 - 12, // IID13487 - 13, // IID13488 - 13, // IID13489 - 13, // IID13490 - 13, // IID13491 - 13, // IID13492 - 13, // IID13493 - 12, // IID13494 - 12, // IID13495 - 13, // IID13496 - 13, // IID13497 - 13, // IID13498 - 12, // IID13499 - 12, // IID13500 - 12, // IID13501 - 11, // IID13502 - 11, // IID13503 - 12, // IID13504 - 12, // IID13505 - 12, // IID13506 - 12, // IID13507 - 11, // IID13508 - 12, // IID13509 - 13, // IID13510 - 13, // IID13511 - 13, // IID13512 - 13, // IID13513 - 13, // IID13514 - 13, // IID13515 - 13, // IID13516 - 13, // IID13517 - 13, // IID13518 - 13, // IID13519 - 13, // IID13520 - 13, // IID13521 - 13, // IID13522 - 13, // IID13523 - 13, // IID13524 - 13, // IID13525 - 13, // IID13526 - 12, // IID13527 - 12, // IID13528 - 11, // IID13529 - 11, // IID13530 - 11, // IID13531 - 12, // IID13532 - 12, // IID13533 - 12, // IID13534 - 12, // IID13535 - 12, // IID13536 - 13, // IID13537 - 12, // IID13538 - 13, // IID13539 - 13, // IID13540 - 13, // IID13541 - 13, // IID13542 - 12, // IID13543 - 13, // IID13544 - 13, // IID13545 - 13, // IID13546 - 13, // IID13547 - 13, // IID13548 - 12, // IID13549 - 13, // IID13550 - 13, // IID13551 - 13, // IID13552 - 13, // IID13553 - 12, // IID13554 - 11, // IID13555 - 12, // IID13556 - 12, // IID13557 - 12, // IID13558 - 12, // IID13559 - 12, // IID13560 - 12, // IID13561 - 11, // IID13562 - 12, // IID13563 - 11, // IID13564 - 13, // IID13565 - 13, // IID13566 - 13, // IID13567 - 13, // IID13568 - 13, // IID13569 - 13, // IID13570 - 13, // IID13571 - 13, // IID13572 - 12, // IID13573 - 13, // IID13574 - 13, // IID13575 - 13, // IID13576 - 13, // IID13577 - 13, // IID13578 - 13, // IID13579 - 13, // IID13580 - 12, // IID13581 - 12, // IID13582 - 11, // IID13583 - 12, // IID13584 - 12, // IID13585 - 11, // IID13586 - 12, // IID13587 - 12, // IID13588 - 12, // IID13589 - 12, // IID13590 - 13, // IID13591 - 13, // IID13592 - 13, // IID13593 - 13, // IID13594 - 13, // IID13595 - 13, // IID13596 - 13, // IID13597 - 13, // IID13598 - 13, // IID13599 - 13, // IID13600 - 13, // IID13601 - 13, // IID13602 - 12, // IID13603 - 13, // IID13604 - 13, // IID13605 - 12, // IID13606 - 13, // IID13607 - 12, // IID13608 - 12, // IID13609 - 12, // IID13610 - 11, // IID13611 - 12, // IID13612 - 12, // IID13613 - 11, // IID13614 - 12, // IID13615 - 12, // IID13616 - 11, // IID13617 - 11, // IID13618 - 12, // IID13619 - 13, // IID13620 - 13, // IID13621 - 13, // IID13622 - 13, // IID13623 - 13, // IID13624 - 13, // IID13625 - 12, // IID13626 - 13, // IID13627 - 13, // IID13628 - 12, // IID13629 - 13, // IID13630 - 13, // IID13631 - 13, // IID13632 - 13, // IID13633 - 13, // IID13634 - 12, // IID13635 - 12, // IID13636 - 12, // IID13637 - 11, // IID13638 - 12, // IID13639 - 12, // IID13640 - 12, // IID13641 - 12, // IID13642 - 12, // IID13643 - 12, // IID13644 - 13, // IID13645 - 13, // IID13646 - 12, // IID13647 - 13, // IID13648 - 13, // IID13649 - 13, // IID13650 - 13, // IID13651 - 13, // IID13652 - 13, // IID13653 - 13, // IID13654 - 13, // IID13655 - 13, // IID13656 - 12, // IID13657 - 13, // IID13658 - 13, // IID13659 - 13, // IID13660 - 13, // IID13661 - 11, // IID13662 - 12, // IID13663 - 12, // IID13664 - 12, // IID13665 - 11, // IID13666 - 12, // IID13667 - 12, // IID13668 - 12, // IID13669 - 12, // IID13670 - 12, // IID13671 - 11, // IID13672 - 13, // IID13673 - 13, // IID13674 - 13, // IID13675 - 13, // IID13676 - 13, // IID13677 - 12, // IID13678 - 13, // IID13679 - 13, // IID13680 - 13, // IID13681 - 13, // IID13682 - 13, // IID13683 - 12, // IID13684 - 13, // IID13685 - 12, // IID13686 - 13, // IID13687 - 13, // IID13688 - 12, // IID13689 - 12, // IID13690 - 12, // IID13691 - 12, // IID13692 - 12, // IID13693 - 12, // IID13694 - 12, // IID13695 - 12, // IID13696 - 12, // IID13697 - 12, // IID13698 - 11, // IID13699 - 13, // IID13700 - 13, // IID13701 - 13, // IID13702 - 13, // IID13703 - 13, // IID13704 - 13, // IID13705 - 13, // IID13706 - 13, // IID13707 - 13, // IID13708 - 13, // IID13709 - 13, // IID13710 - 13, // IID13711 - 13, // IID13712 - 13, // IID13713 - 13, // IID13714 - 13, // IID13715 - 12, // IID13716 - 11, // IID13717 - 12, // IID13718 - 12, // IID13719 - 12, // IID13720 - 11, // IID13721 - 12, // IID13722 - 12, // IID13723 - 11, // IID13724 - 12, // IID13725 - 13, // IID13726 - 13, // IID13727 - 12, // IID13728 - 13, // IID13729 - 13, // IID13730 - 13, // IID13731 - 12, // IID13732 - 13, // IID13733 - 13, // IID13734 - 13, // IID13735 - 13, // IID13736 - 13, // IID13737 - 13, // IID13738 - 13, // IID13739 - 13, // IID13740 - 13, // IID13741 - 13, // IID13742 - 12, // IID13743 - 12, // IID13744 - 12, // IID13745 - 11, // IID13746 - 12, // IID13747 - 11, // IID13748 - 12, // IID13749 - 12, // IID13750 - 12, // IID13751 - 11, // IID13752 - 13, // IID13753 - 13, // IID13754 - 12, // IID13755 - 12, // IID13756 - 13, // IID13757 - 13, // IID13758 - 13, // IID13759 - 13, // IID13760 - 13, // IID13761 - 13, // IID13762 - 13, // IID13763 - 12, // IID13764 - 13, // IID13765 - 13, // IID13766 - 13, // IID13767 - 13, // IID13768 - 13, // IID13769 - 12, // IID13770 - 12, // IID13771 - 12, // IID13772 - 11, // IID13773 - 12, // IID13774 - 12, // IID13775 - 12, // IID13776 - 12, // IID13777 - 12, // IID13778 - 12, // IID13779 - 11, // IID13780 - 13, // IID13781 - 13, // IID13782 - 13, // IID13783 - 12, // IID13784 - 13, // IID13785 - 13, // IID13786 - 12, // IID13787 - 13, // IID13788 - 13, // IID13789 - 12, // IID13790 - 12, // IID13791 - 12, // IID13792 - 13, // IID13793 - 13, // IID13794 - 12, // IID13795 - 13, // IID13796 - 11, // IID13797 - 12, // IID13798 - 12, // IID13799 - 12, // IID13800 - 12, // IID13801 - 11, // IID13802 - 12, // IID13803 - 12, // IID13804 - 11, // IID13805 - 12, // IID13806 - 13, // IID13807 - 13, // IID13808 - 13, // IID13809 - 13, // IID13810 - 13, // IID13811 - 13, // IID13812 - 13, // IID13813 - 13, // IID13814 - 13, // IID13815 - 12, // IID13816 - 13, // IID13817 - 13, // IID13818 - 13, // IID13819 - 13, // IID13820 - 12, // IID13821 - 13, // IID13822 - 13, // IID13823 - 12, // IID13824 - 12, // IID13825 - 12, // IID13826 - 11, // IID13827 - 12, // IID13828 - 12, // IID13829 - 11, // IID13830 - 12, // IID13831 - 12, // IID13832 - 12, // IID13833 - 13, // IID13834 - 13, // IID13835 - 12, // IID13836 - 13, // IID13837 - 12, // IID13838 - 13, // IID13839 - 13, // IID13840 - 12, // IID13841 - 13, // IID13842 - 13, // IID13843 - 13, // IID13844 - 13, // IID13845 - 13, // IID13846 - 13, // IID13847 - 13, // IID13848 - 13, // IID13849 - 13, // IID13850 - 11, // IID13851 - 11, // IID13852 - 12, // IID13853 - 12, // IID13854 - 12, // IID13855 - 12, // IID13856 - 12, // IID13857 - 12, // IID13858 - 12, // IID13859 - 12, // IID13860 - 11, // IID13861 - 13, // IID13862 - 13, // IID13863 - 13, // IID13864 - 13, // IID13865 - 13, // IID13866 - 12, // IID13867 - 13, // IID13868 - 13, // IID13869 - 13, // IID13870 - 13, // IID13871 - 13, // IID13872 - 13, // IID13873 - 13, // IID13874 - 13, // IID13875 - 13, // IID13876 - 13, // IID13877 - 12, // IID13878 - 11, // IID13879 - 12, // IID13880 - 12, // IID13881 - 12, // IID13882 - 12, // IID13883 - 12, // IID13884 - 12, // IID13885 - 11, // IID13886 - 12, // IID13887 - 11, // IID13888 - 13, // IID13889 - 13, // IID13890 - 12, // IID13891 - 13, // IID13892 - 13, // IID13893 - 13, // IID13894 - 13, // IID13895 - 13, // IID13896 - 13, // IID13897 - 13, // IID13898 - 12, // IID13899 - 13, // IID13900 - 13, // IID13901 - 13, // IID13902 - 13, // IID13903 - 13, // IID13904 - 11, // IID13905 - 12, // IID13906 - 12, // IID13907 - 12, // IID13908 - 12, // IID13909 - 12, // IID13910 - 12, // IID13911 - 12, // IID13912 - 11, // IID13913 - 12, // IID13914 - 13, // IID13915 - 13, // IID13916 - 13, // IID13917 - 13, // IID13918 - 13, // IID13919 - 13, // IID13920 - 13, // IID13921 - 12, // IID13922 - 13, // IID13923 - 12, // IID13924 - 13, // IID13925 - 13, // IID13926 - 13, // IID13927 - 13, // IID13928 - 13, // IID13929 - 13, // IID13930 - 13, // IID13931 - 11, // IID13932 - 11, // IID13933 - 11, // IID13934 - 12, // IID13935 - 12, // IID13936 - 11, // IID13937 - 12, // IID13938 - 12, // IID13939 - 11, // IID13940 - 12, // IID13941 - 13, // IID13942 - 13, // IID13943 - 12, // IID13944 - 13, // IID13945 - 13, // IID13946 - 13, // IID13947 - 13, // IID13948 - 12, // IID13949 - 13, // IID13950 - 13, // IID13951 - 13, // IID13952 - 13, // IID13953 - 12, // IID13954 - 13, // IID13955 - 13, // IID13956 - 12, // IID13957 - 13, // IID13958 - 11, // IID13959 - 12, // IID13960 - 12, // IID13961 - 11, // IID13962 - 12, // IID13963 - 11, // IID13964 - 12, // IID13965 - 12, // IID13966 - 12, // IID13967 - 12, // IID13968 - 13, // IID13969 - 13, // IID13970 - 13, // IID13971 - 13, // IID13972 - 13, // IID13973 - 13, // IID13974 - 13, // IID13975 - 12, // IID13976 - 12, // IID13977 - 13, // IID13978 - 13, // IID13979 - 13, // IID13980 - 13, // IID13981 - 13, // IID13982 - 13, // IID13983 - 12, // IID13984 - 13, // IID13985 - 12, // IID13986 - 12, // IID13987 - 12, // IID13988 - 12, // IID13989 - 12, // IID13990 - 12, // IID13991 - 11, // IID13992 - 12, // IID13993 - 12, // IID13994 - 11, // IID13995 - 13, // IID13996 - 13, // IID13997 - 13, // IID13998 - 13, // IID13999 - 12, // IID14000 - 13, // IID14001 - 13, // IID14002 - 13, // IID14003 - 13, // IID14004 - 13, // IID14005 - 13, // IID14006 - 13, // IID14007 - 13, // IID14008 - 13, // IID14009 - 13, // IID14010 - 13, // IID14011 - 13, // IID14012 - 12, // IID14013 - 12, // IID14014 - 12, // IID14015 - 12, // IID14016 - 12, // IID14017 - 12, // IID14018 - 12, // IID14019 - 12, // IID14020 - 12, // IID14021 - 11, // IID14022 - 13, // IID14023 - 13, // IID14024 - 13, // IID14025 - 13, // IID14026 - 13, // IID14027 - 13, // IID14028 - 13, // IID14029 - 13, // IID14030 - 12, // IID14031 - 13, // IID14032 - 13, // IID14033 - 13, // IID14034 - 13, // IID14035 - 13, // IID14036 - 13, // IID14037 - 12, // IID14038 - 13, // IID14039 - 12, // IID14040 - 11, // IID14041 - 12, // IID14042 - 12, // IID14043 - 12, // IID14044 - 12, // IID14045 - 12, // IID14046 - 12, // IID14047 - 12, // IID14048 - 12, // IID14049 - 11, // IID14050 - 13, // IID14051 - 13, // IID14052 - 13, // IID14053 - 13, // IID14054 - 13, // IID14055 - 13, // IID14056 - 13, // IID14057 - 13, // IID14058 - 13, // IID14059 - 13, // IID14060 - 12, // IID14061 - 13, // IID14062 - 13, // IID14063 - 13, // IID14064 - 13, // IID14065 - 13, // IID14066 - 8, // IID14067 - 8, // IID14068 - 8, // IID14069 - 8, // IID14070 - 8, // IID14071 - 7, // IID14072 - 8, // IID14073 - 8, // IID14074 - 7, // IID14075 - 9, // IID14076 - 9, // IID14077 - 9, // IID14078 - 9, // IID14079 - 9, // IID14080 - 9, // IID14081 - 9, // IID14082 - 9, // IID14083 - 9, // IID14084 - 9, // IID14085 - 9, // IID14086 - 9, // IID14087 - 9, // IID14088 - 9, // IID14089 - 8, // IID14090 - 8, // IID14091 - 9, // IID14092 - 8, // IID14093 - 8, // IID14094 - 8, // IID14095 - 8, // IID14096 - 8, // IID14097 - 8, // IID14098 - 8, // IID14099 - 8, // IID14100 - 7, // IID14101 - 8, // IID14102 - 9, // IID14103 - 9, // IID14104 - 9, // IID14105 - 9, // IID14106 - 8, // IID14107 - 9, // IID14108 - 9, // IID14109 - 9, // IID14110 - 9, // IID14111 - 8, // IID14112 - 9, // IID14113 - 9, // IID14114 - 9, // IID14115 - 9, // IID14116 - 9, // IID14117 - 9, // IID14118 - 8, // IID14119 - 9, // IID14120 - 8, // IID14121 - 8, // IID14122 - 8, // IID14123 - 8, // IID14124 - 8, // IID14125 - 8, // IID14126 - 8, // IID14127 - 8, // IID14128 - 8, // IID14129 - 9, // IID14130 - 8, // IID14131 - 9, // IID14132 - 8, // IID14133 - 9, // IID14134 - 9, // IID14135 - 9, // IID14136 - 9, // IID14137 - 9, // IID14138 - 9, // IID14139 - 9, // IID14140 - 9, // IID14141 - 8, // IID14142 - 9, // IID14143 - 9, // IID14144 - 9, // IID14145 - 9, // IID14146 - 9, // IID14147 - 10, // IID14148 - 9, // IID14149 - 10, // IID14150 - 9, // IID14151 - 10, // IID14152 - 10, // IID14153 - 10, // IID14154 - 10, // IID14155 - 10, // IID14156 - 10, // IID14157 - 10, // IID14158 - 10, // IID14159 - 10, // IID14160 - 10, // IID14161 - 10, // IID14162 - 10, // IID14163 - 10, // IID14164 - 9, // IID14165 - 10, // IID14166 - 10, // IID14167 - 10, // IID14168 - 10, // IID14169 - 10, // IID14170 - 10, // IID14171 - 10, // IID14172 - 9, // IID14173 - 10, // IID14174 - 8, // IID14175 - 8, // IID14176 - 8, // IID14177 - 8, // IID14178 - 8, // IID14179 - 8, // IID14180 - 8, // IID14181 - 8, // IID14182 - 8, // IID14183 - 9, // IID14184 - 8, // IID14185 - 9, // IID14186 - 9, // IID14187 - 9, // IID14188 - 9, // IID14189 - 9, // IID14190 - 9, // IID14191 - 8, // IID14192 - 9, // IID14193 - 9, // IID14194 - 9, // IID14195 - 9, // IID14196 - 9, // IID14197 - 9, // IID14198 - 9, // IID14199 - 9, // IID14200 - 9, // IID14201 - 8, // IID14202 - 8, // IID14203 - 8, // IID14204 - 8, // IID14205 - 7, // IID14206 - 8, // IID14207 - 8, // IID14208 - 8, // IID14209 - 8, // IID14210 - 7, // IID14211 - 9, // IID14212 - 9, // IID14213 - 9, // IID14214 - 9, // IID14215 - 9, // IID14216 - 8, // IID14217 - 9, // IID14218 - 8, // IID14219 - 9, // IID14220 - 8, // IID14221 - 9, // IID14222 - 9, // IID14223 - 9, // IID14224 - 8, // IID14225 - 9, // IID14226 - 9, // IID14227 - 9, // IID14228 - 9, // IID14229 - 8, // IID14230 - 9, // IID14231 - 9, // IID14232 - 9, // IID14233 - 8, // IID14234 - 9, // IID14235 - 9, // IID14236 - 9, // IID14237 - 9, // IID14238 - 8, // IID14239 - 9, // IID14240 - 9, // IID14241 - 9, // IID14242 - 9, // IID14243 - 8, // IID14244 - 9, // IID14245 - 9, // IID14246 - 9, // IID14247 - 9, // IID14248 - 8, // IID14249 - 9, // IID14250 - 9, // IID14251 - 9, // IID14252 - 9, // IID14253 - 9, // IID14254 - 9, // IID14255 - 10, // IID14256 - 10, // IID14257 - 9, // IID14258 - 10, // IID14259 - 9, // IID14260 - 9, // IID14261 - 10, // IID14262 - 10, // IID14263 - 9, // IID14264 - 10, // IID14265 - 10, // IID14266 - 10, // IID14267 - 9, // IID14268 - 9, // IID14269 - 10, // IID14270 - 10, // IID14271 - 9, // IID14272 - 10, // IID14273 - 10, // IID14274 - 10, // IID14275 - 10, // IID14276 - 9, // IID14277 - 10, // IID14278 - 10, // IID14279 - 10, // IID14280 - 10, // IID14281 - 9, // IID14282 - 7, // IID14283 - 8, // IID14284 - 8, // IID14285 - 7, // IID14286 - 8, // IID14287 - 8, // IID14288 - 8, // IID14289 - 8, // IID14290 - 8, // IID14291 - 9, // IID14292 - 9, // IID14293 - 9, // IID14294 - 9, // IID14295 - 9, // IID14296 - 9, // IID14297 - 9, // IID14298 - 9, // IID14299 - 9, // IID14300 - 9, // IID14301 - 9, // IID14302 - 8, // IID14303 - 8, // IID14304 - 9, // IID14305 - 9, // IID14306 - 9, // IID14307 - 9, // IID14308 - 9, // IID14309 - 8, // IID14310 - 8, // IID14311 - 8, // IID14312 - 8, // IID14313 - 8, // IID14314 - 8, // IID14315 - 8, // IID14316 - 8, // IID14317 - 8, // IID14318 - 9, // IID14319 - 8, // IID14320 - 8, // IID14321 - 8, // IID14322 - 9, // IID14323 - 9, // IID14324 - 9, // IID14325 - 9, // IID14326 - 9, // IID14327 - 9, // IID14328 - 9, // IID14329 - 8, // IID14330 - 8, // IID14331 - 9, // IID14332 - 9, // IID14333 - 9, // IID14334 - 9, // IID14335 - 9, // IID14336 - 10, // IID14337 - 10, // IID14338 - 10, // IID14339 - 9, // IID14340 - 10, // IID14341 - 10, // IID14342 - 10, // IID14343 - 10, // IID14344 - 10, // IID14345 - 10, // IID14346 - 10, // IID14347 - 10, // IID14348 - 10, // IID14349 - 10, // IID14350 - 10, // IID14351 - 9, // IID14352 - 10, // IID14353 - 10, // IID14354 - 9, // IID14355 - 9, // IID14356 - 10, // IID14357 - 10, // IID14358 - 10, // IID14359 - 10, // IID14360 - 9, // IID14361 - 10, // IID14362 - 10, // IID14363 - 7, // IID14364 - 7, // IID14365 - 8, // IID14366 - 8, // IID14367 - 8, // IID14368 - 8, // IID14369 - 8, // IID14370 - 8, // IID14371 - 8, // IID14372 - 9, // IID14373 - 8, // IID14374 - 9, // IID14375 - 8, // IID14376 - 9, // IID14377 - 9, // IID14378 - 9, // IID14379 - 9, // IID14380 - 9, // IID14381 - 9, // IID14382 - 8, // IID14383 - 9, // IID14384 - 9, // IID14385 - 9, // IID14386 - 9, // IID14387 - 9, // IID14388 - 9, // IID14389 - 9, // IID14390 - 8, // IID14391 - 7, // IID14392 - 8, // IID14393 - 8, // IID14394 - 8, // IID14395 - 8, // IID14396 - 8, // IID14397 - 8, // IID14398 - 8, // IID14399 - 9, // IID14400 - 9, // IID14401 - 9, // IID14402 - 9, // IID14403 - 9, // IID14404 - 9, // IID14405 - 8, // IID14406 - 8, // IID14407 - 9, // IID14408 - 9, // IID14409 - 8, // IID14410 - 8, // IID14411 - 9, // IID14412 - 9, // IID14413 - 9, // IID14414 - 8, // IID14415 - 9, // IID14416 - 9, // IID14417 - 8, // IID14418 - 8, // IID14419 - 8, // IID14420 - 8, // IID14421 - 8, // IID14422 - 8, // IID14423 - 8, // IID14424 - 8, // IID14425 - 8, // IID14426 - 9, // IID14427 - 9, // IID14428 - 9, // IID14429 - 9, // IID14430 - 9, // IID14431 - 9, // IID14432 - 8, // IID14433 - 9, // IID14434 - 9, // IID14435 - 9, // IID14436 - 8, // IID14437 - 9, // IID14438 - 9, // IID14439 - 9, // IID14440 - 9, // IID14441 - 9, // IID14442 - 9, // IID14443 - 8, // IID14444 - 10, // IID14445 - 9, // IID14446 - 10, // IID14447 - 10, // IID14448 - 10, // IID14449 - 10, // IID14450 - 10, // IID14451 - 10, // IID14452 - 10, // IID14453 - 9, // IID14454 - 10, // IID14455 - 10, // IID14456 - 9, // IID14457 - 10, // IID14458 - 10, // IID14459 - 10, // IID14460 - 10, // IID14461 - 10, // IID14462 - 10, // IID14463 - 10, // IID14464 - 10, // IID14465 - 10, // IID14466 - 10, // IID14467 - 10, // IID14468 - 10, // IID14469 - 10, // IID14470 - 10, // IID14471 - 8, // IID14472 - 8, // IID14473 - 8, // IID14474 - 7, // IID14475 - 8, // IID14476 - 8, // IID14477 - 8, // IID14478 - 7, // IID14479 - 7, // IID14480 - 9, // IID14481 - 9, // IID14482 - 9, // IID14483 - 8, // IID14484 - 9, // IID14485 - 9, // IID14486 - 9, // IID14487 - 9, // IID14488 - 9, // IID14489 - 9, // IID14490 - 9, // IID14491 - 8, // IID14492 - 9, // IID14493 - 9, // IID14494 - 9, // IID14495 - 9, // IID14496 - 9, // IID14497 - 8, // IID14498 - 8, // IID14499 - 7, // IID14500 - 8, // IID14501 - 8, // IID14502 - 8, // IID14503 - 8, // IID14504 - 8, // IID14505 - 8, // IID14506 - 7, // IID14507 - 9, // IID14508 - 9, // IID14509 - 9, // IID14510 - 9, // IID14511 - 9, // IID14512 - 9, // IID14513 - 8, // IID14514 - 9, // IID14515 - 8, // IID14516 - 9, // IID14517 - 9, // IID14518 - 9, // IID14519 - 9, // IID14520 - 9, // IID14521 - 8, // IID14522 - 9, // IID14523 - 8, // IID14524 - 9, // IID14525 - 4, // IID14526 - 4, // IID14527 - 7, // IID14528 - 7, // IID14529 - 7, // IID14530 - 7, // IID14531 - 7, // IID14532 - 7, // IID14533 - 4, // IID14534 - 4, // IID14535 - 7, // IID14536 - 7, // IID14537 - 7, // IID14538 - 7, // IID14539 - 7, // IID14540 - 7, // IID14541 - 4, // IID14542 - 4, // IID14543 - 7, // IID14544 - 7, // IID14545 - 7, // IID14546 - 7, // IID14547 - 7, // IID14548 - 7, // IID14549 - 4, // IID14550 - 4, // IID14551 - 7, // IID14552 - 7, // IID14553 - 7, // IID14554 - 7, // IID14555 - 7, // IID14556 - 7, // IID14557 - 4, // IID14558 - 4, // IID14559 - 7, // IID14560 - 7, // IID14561 - 7, // IID14562 - 7, // IID14563 - 7, // IID14564 - 7, // IID14565 - 4, // IID14566 - 4, // IID14567 - 7, // IID14568 - 7, // IID14569 - 7, // IID14570 - 7, // IID14571 - 7, // IID14572 - 7, // IID14573 - 4, // IID14574 - 4, // IID14575 - 7, // IID14576 - 7, // IID14577 - 7, // IID14578 - 7, // IID14579 - 7, // IID14580 - 7, // IID14581 - 4, // IID14582 - 4, // IID14583 - 7, // IID14584 - 7, // IID14585 - 7, // IID14586 - 7, // IID14587 - 7, // IID14588 - 7, // IID14589 - 4, // IID14590 - 4, // IID14591 - 7, // IID14592 - 7, // IID14593 - 7, // IID14594 - 7, // IID14595 - 7, // IID14596 - 7, // IID14597 - 4, // IID14598 - 4, // IID14599 - 7, // IID14600 - 7, // IID14601 - 7, // IID14602 - 7, // IID14603 - 7, // IID14604 - 7, // IID14605 - 4, // IID14606 - 4, // IID14607 - 7, // IID14608 - 7, // IID14609 - 7, // IID14610 - 7, // IID14611 - 7, // IID14612 - 7, // IID14613 - 5, // IID14614 - 5, // IID14615 - 8, // IID14616 - 8, // IID14617 - 8, // IID14618 - 8, // IID14619 - 8, // IID14620 - 8, // IID14621 - 5, // IID14622 - 5, // IID14623 - 8, // IID14624 - 8, // IID14625 - 8, // IID14626 - 8, // IID14627 - 8, // IID14628 - 8, // IID14629 - 5, // IID14630 - 5, // IID14631 - 8, // IID14632 - 8, // IID14633 - 8, // IID14634 - 8, // IID14635 - 8, // IID14636 - 8, // IID14637 - 5, // IID14638 - 5, // IID14639 - 8, // IID14640 - 8, // IID14641 - 8, // IID14642 - 8, // IID14643 - 8, // IID14644 - 8, // IID14645 - 5, // IID14646 - 5, // IID14647 - 8, // IID14648 - 8, // IID14649 - 8, // IID14650 - 8, // IID14651 - 8, // IID14652 - 8, // IID14653 - 5, // IID14654 - 5, // IID14655 - 8, // IID14656 - 8, // IID14657 - 8, // IID14658 - 8, // IID14659 - 8, // IID14660 - 8, // IID14661 - 5, // IID14662 - 5, // IID14663 - 8, // IID14664 - 8, // IID14665 - 8, // IID14666 - 8, // IID14667 - 8, // IID14668 - 8, // IID14669 - 5, // IID14670 - 5, // IID14671 - 8, // IID14672 - 8, // IID14673 - 8, // IID14674 - 8, // IID14675 - 8, // IID14676 - 8, // IID14677 - 5, // IID14678 - 5, // IID14679 - 8, // IID14680 - 8, // IID14681 - 8, // IID14682 - 8, // IID14683 - 8, // IID14684 - 8, // IID14685 - 5, // IID14686 - 5, // IID14687 - 8, // IID14688 - 8, // IID14689 - 8, // IID14690 - 8, // IID14691 - 8, // IID14692 - 8, // IID14693 - 5, // IID14694 - 5, // IID14695 - 8, // IID14696 - 8, // IID14697 - 8, // IID14698 - 8, // IID14699 - 8, // IID14700 - 8, // IID14701 - 5, // IID14702 - 5, // IID14703 - 8, // IID14704 - 8, // IID14705 - 8, // IID14706 - 8, // IID14707 - 8, // IID14708 - 8, // IID14709 - 5, // IID14710 - 5, // IID14711 - 8, // IID14712 - 8, // IID14713 - 8, // IID14714 - 8, // IID14715 - 8, // IID14716 - 8, // IID14717 - 5, // IID14718 - 5, // IID14719 - 8, // IID14720 - 8, // IID14721 - 8, // IID14722 - 8, // IID14723 - 8, // IID14724 - 8, // IID14725 - 5, // IID14726 - 5, // IID14727 - 8, // IID14728 - 8, // IID14729 - 8, // IID14730 - 8, // IID14731 - 8, // IID14732 - 8, // IID14733 - 5, // IID14734 - 5, // IID14735 - 8, // IID14736 - 8, // IID14737 - 8, // IID14738 - 8, // IID14739 - 8, // IID14740 - 8, // IID14741 - 4, // IID14742 - 4, // IID14743 - 7, // IID14744 - 7, // IID14745 - 7, // IID14746 - 7, // IID14747 - 7, // IID14748 - 7, // IID14749 - 4, // IID14750 - 4, // IID14751 - 7, // IID14752 - 7, // IID14753 - 7, // IID14754 - 7, // IID14755 - 7, // IID14756 - 7, // IID14757 - 4, // IID14758 - 4, // IID14759 - 7, // IID14760 - 7, // IID14761 - 7, // IID14762 - 7, // IID14763 - 7, // IID14764 - 7, // IID14765 - 4, // IID14766 - 4, // IID14767 - 7, // IID14768 - 7, // IID14769 - 7, // IID14770 - 7, // IID14771 - 7, // IID14772 - 7, // IID14773 - 4, // IID14774 - 4, // IID14775 - 7, // IID14776 - 7, // IID14777 - 7, // IID14778 - 7, // IID14779 - 7, // IID14780 - 7, // IID14781 - 4, // IID14782 - 4, // IID14783 - 7, // IID14784 - 7, // IID14785 - 7, // IID14786 - 7, // IID14787 - 7, // IID14788 - 7, // IID14789 - 4, // IID14790 - 4, // IID14791 - 7, // IID14792 - 7, // IID14793 - 7, // IID14794 - 7, // IID14795 - 7, // IID14796 - 7, // IID14797 - 4, // IID14798 - 4, // IID14799 - 7, // IID14800 - 7, // IID14801 - 7, // IID14802 - 7, // IID14803 - 7, // IID14804 - 7, // IID14805 - 4, // IID14806 - 4, // IID14807 - 7, // IID14808 - 7, // IID14809 - 7, // IID14810 - 7, // IID14811 - 7, // IID14812 - 7, // IID14813 - 4, // IID14814 - 4, // IID14815 - 7, // IID14816 - 7, // IID14817 - 7, // IID14818 - 7, // IID14819 - 7, // IID14820 - 7, // IID14821 - 4, // IID14822 - 4, // IID14823 - 7, // IID14824 - 7, // IID14825 - 7, // IID14826 - 7, // IID14827 - 7, // IID14828 - 7, // IID14829 - 5, // IID14830 - 5, // IID14831 - 8, // IID14832 - 8, // IID14833 - 8, // IID14834 - 8, // IID14835 - 8, // IID14836 - 8, // IID14837 - 5, // IID14838 - 5, // IID14839 - 8, // IID14840 - 8, // IID14841 - 8, // IID14842 - 8, // IID14843 - 8, // IID14844 - 8, // IID14845 - 5, // IID14846 - 5, // IID14847 - 8, // IID14848 - 8, // IID14849 - 8, // IID14850 - 8, // IID14851 - 8, // IID14852 - 8, // IID14853 - 5, // IID14854 - 5, // IID14855 - 8, // IID14856 - 8, // IID14857 - 8, // IID14858 - 8, // IID14859 - 8, // IID14860 - 8, // IID14861 - 5, // IID14862 - 5, // IID14863 - 8, // IID14864 - 8, // IID14865 - 8, // IID14866 - 8, // IID14867 - 8, // IID14868 - 8, // IID14869 - 5, // IID14870 - 5, // IID14871 - 8, // IID14872 - 8, // IID14873 - 8, // IID14874 - 8, // IID14875 - 8, // IID14876 - 8, // IID14877 - 5, // IID14878 - 5, // IID14879 - 8, // IID14880 - 8, // IID14881 - 8, // IID14882 - 8, // IID14883 - 8, // IID14884 - 8, // IID14885 - 5, // IID14886 - 5, // IID14887 - 8, // IID14888 - 8, // IID14889 - 8, // IID14890 - 8, // IID14891 - 8, // IID14892 - 8, // IID14893 - 5, // IID14894 - 5, // IID14895 - 8, // IID14896 - 8, // IID14897 - 8, // IID14898 - 8, // IID14899 - 8, // IID14900 - 8, // IID14901 - 5, // IID14902 - 5, // IID14903 - 8, // IID14904 - 8, // IID14905 - 8, // IID14906 - 8, // IID14907 - 8, // IID14908 - 8, // IID14909 - 5, // IID14910 - 5, // IID14911 - 8, // IID14912 - 8, // IID14913 - 8, // IID14914 - 8, // IID14915 - 8, // IID14916 - 8, // IID14917 - 5, // IID14918 - 5, // IID14919 - 8, // IID14920 - 8, // IID14921 - 8, // IID14922 - 8, // IID14923 - 8, // IID14924 - 8, // IID14925 - 5, // IID14926 - 5, // IID14927 - 8, // IID14928 - 8, // IID14929 - 8, // IID14930 - 8, // IID14931 - 8, // IID14932 - 8, // IID14933 - 5, // IID14934 - 5, // IID14935 - 8, // IID14936 - 8, // IID14937 - 8, // IID14938 - 8, // IID14939 - 8, // IID14940 - 8, // IID14941 - 5, // IID14942 - 5, // IID14943 - 8, // IID14944 - 8, // IID14945 - 8, // IID14946 - 8, // IID14947 - 8, // IID14948 - 8, // IID14949 - 5, // IID14950 - 5, // IID14951 - 8, // IID14952 - 8, // IID14953 - 8, // IID14954 - 8, // IID14955 - 8, // IID14956 - 8, // IID14957 - 4, // IID14958 - 4, // IID14959 - 7, // IID14960 - 7, // IID14961 - 7, // IID14962 - 7, // IID14963 - 7, // IID14964 - 7, // IID14965 - 4, // IID14966 - 4, // IID14967 - 7, // IID14968 - 7, // IID14969 - 7, // IID14970 - 7, // IID14971 - 7, // IID14972 - 7, // IID14973 - 4, // IID14974 - 4, // IID14975 - 7, // IID14976 - 7, // IID14977 - 7, // IID14978 - 7, // IID14979 - 7, // IID14980 - 7, // IID14981 - 4, // IID14982 - 4, // IID14983 - 7, // IID14984 - 7, // IID14985 - 7, // IID14986 - 7, // IID14987 - 7, // IID14988 - 7, // IID14989 - 4, // IID14990 - 4, // IID14991 - 7, // IID14992 - 7, // IID14993 - 7, // IID14994 - 7, // IID14995 - 7, // IID14996 - 7, // IID14997 - 4, // IID14998 - 4, // IID14999 - 7, // IID15000 - 7, // IID15001 - 7, // IID15002 - 7, // IID15003 - 7, // IID15004 - 7, // IID15005 - 4, // IID15006 - 4, // IID15007 - 7, // IID15008 - 7, // IID15009 - 7, // IID15010 - 7, // IID15011 - 7, // IID15012 - 7, // IID15013 - 4, // IID15014 - 4, // IID15015 - 7, // IID15016 - 7, // IID15017 - 7, // IID15018 - 7, // IID15019 - 7, // IID15020 - 7, // IID15021 - 4, // IID15022 - 4, // IID15023 - 7, // IID15024 - 7, // IID15025 - 7, // IID15026 - 7, // IID15027 - 7, // IID15028 - 7, // IID15029 - 4, // IID15030 - 4, // IID15031 - 7, // IID15032 - 7, // IID15033 - 7, // IID15034 - 7, // IID15035 - 7, // IID15036 - 7, // IID15037 - 4, // IID15038 - 4, // IID15039 - 7, // IID15040 - 7, // IID15041 - 7, // IID15042 - 7, // IID15043 - 7, // IID15044 - 7, // IID15045 - 5, // IID15046 - 5, // IID15047 - 8, // IID15048 - 8, // IID15049 - 8, // IID15050 - 8, // IID15051 - 8, // IID15052 - 8, // IID15053 - 5, // IID15054 - 5, // IID15055 - 8, // IID15056 - 8, // IID15057 - 8, // IID15058 - 8, // IID15059 - 8, // IID15060 - 8, // IID15061 - 5, // IID15062 - 5, // IID15063 - 8, // IID15064 - 8, // IID15065 - 8, // IID15066 - 8, // IID15067 - 8, // IID15068 - 8, // IID15069 - 5, // IID15070 - 5, // IID15071 - 8, // IID15072 - 8, // IID15073 - 8, // IID15074 - 8, // IID15075 - 8, // IID15076 - 8, // IID15077 - 5, // IID15078 - 5, // IID15079 - 8, // IID15080 - 8, // IID15081 - 8, // IID15082 - 8, // IID15083 - 8, // IID15084 - 8, // IID15085 - 5, // IID15086 - 5, // IID15087 - 8, // IID15088 - 8, // IID15089 - 8, // IID15090 - 8, // IID15091 - 8, // IID15092 - 8, // IID15093 - 5, // IID15094 - 5, // IID15095 - 8, // IID15096 - 8, // IID15097 - 8, // IID15098 - 8, // IID15099 - 8, // IID15100 - 8, // IID15101 - 5, // IID15102 - 5, // IID15103 - 8, // IID15104 - 8, // IID15105 - 8, // IID15106 - 8, // IID15107 - 8, // IID15108 - 8, // IID15109 - 5, // IID15110 - 5, // IID15111 - 8, // IID15112 - 8, // IID15113 - 8, // IID15114 - 8, // IID15115 - 8, // IID15116 - 8, // IID15117 - 5, // IID15118 - 5, // IID15119 - 8, // IID15120 - 8, // IID15121 - 8, // IID15122 - 8, // IID15123 - 8, // IID15124 - 8, // IID15125 - 5, // IID15126 - 5, // IID15127 - 8, // IID15128 - 8, // IID15129 - 8, // IID15130 - 8, // IID15131 - 8, // IID15132 - 8, // IID15133 - 5, // IID15134 - 5, // IID15135 - 8, // IID15136 - 8, // IID15137 - 8, // IID15138 - 8, // IID15139 - 8, // IID15140 - 8, // IID15141 - 5, // IID15142 - 5, // IID15143 - 8, // IID15144 - 8, // IID15145 - 8, // IID15146 - 8, // IID15147 - 8, // IID15148 - 8, // IID15149 - 5, // IID15150 - 5, // IID15151 - 8, // IID15152 - 8, // IID15153 - 8, // IID15154 - 8, // IID15155 - 8, // IID15156 - 8, // IID15157 - 5, // IID15158 - 5, // IID15159 - 8, // IID15160 - 8, // IID15161 - 8, // IID15162 - 8, // IID15163 - 8, // IID15164 - 8, // IID15165 - 5, // IID15166 - 5, // IID15167 - 8, // IID15168 - 8, // IID15169 - 8, // IID15170 - 8, // IID15171 - 8, // IID15172 - 8, // IID15173 - 4, // IID15174 - 4, // IID15175 - 7, // IID15176 - 7, // IID15177 - 7, // IID15178 - 7, // IID15179 - 7, // IID15180 - 7, // IID15181 - 4, // IID15182 - 4, // IID15183 - 7, // IID15184 - 7, // IID15185 - 7, // IID15186 - 7, // IID15187 - 7, // IID15188 - 7, // IID15189 - 4, // IID15190 - 4, // IID15191 - 7, // IID15192 - 7, // IID15193 - 7, // IID15194 - 7, // IID15195 - 7, // IID15196 - 7, // IID15197 - 4, // IID15198 - 4, // IID15199 - 7, // IID15200 - 7, // IID15201 - 7, // IID15202 - 7, // IID15203 - 7, // IID15204 - 7, // IID15205 - 4, // IID15206 - 4, // IID15207 - 7, // IID15208 - 7, // IID15209 - 7, // IID15210 - 7, // IID15211 - 7, // IID15212 - 7, // IID15213 - 4, // IID15214 - 4, // IID15215 - 7, // IID15216 - 7, // IID15217 - 7, // IID15218 - 7, // IID15219 - 7, // IID15220 - 7, // IID15221 - 4, // IID15222 - 4, // IID15223 - 7, // IID15224 - 7, // IID15225 - 7, // IID15226 - 7, // IID15227 - 7, // IID15228 - 7, // IID15229 - 4, // IID15230 - 4, // IID15231 - 7, // IID15232 - 7, // IID15233 - 7, // IID15234 - 7, // IID15235 - 7, // IID15236 - 7, // IID15237 - 4, // IID15238 - 4, // IID15239 - 7, // IID15240 - 7, // IID15241 - 7, // IID15242 - 7, // IID15243 - 7, // IID15244 - 7, // IID15245 - 4, // IID15246 - 4, // IID15247 - 7, // IID15248 - 7, // IID15249 - 7, // IID15250 - 7, // IID15251 - 7, // IID15252 - 7, // IID15253 - 4, // IID15254 - 4, // IID15255 - 7, // IID15256 - 7, // IID15257 - 7, // IID15258 - 7, // IID15259 - 7, // IID15260 - 7, // IID15261 - 5, // IID15262 - 5, // IID15263 - 8, // IID15264 - 8, // IID15265 - 8, // IID15266 - 8, // IID15267 - 8, // IID15268 - 8, // IID15269 - 5, // IID15270 - 5, // IID15271 - 8, // IID15272 - 8, // IID15273 - 8, // IID15274 - 8, // IID15275 - 8, // IID15276 - 8, // IID15277 - 5, // IID15278 - 5, // IID15279 - 8, // IID15280 - 8, // IID15281 - 8, // IID15282 - 8, // IID15283 - 8, // IID15284 - 8, // IID15285 - 5, // IID15286 - 5, // IID15287 - 8, // IID15288 - 8, // IID15289 - 8, // IID15290 - 8, // IID15291 - 8, // IID15292 - 8, // IID15293 - 5, // IID15294 - 5, // IID15295 - 8, // IID15296 - 8, // IID15297 - 8, // IID15298 - 8, // IID15299 - 8, // IID15300 - 8, // IID15301 - 5, // IID15302 - 5, // IID15303 - 8, // IID15304 - 8, // IID15305 - 8, // IID15306 - 8, // IID15307 - 8, // IID15308 - 8, // IID15309 - 5, // IID15310 - 5, // IID15311 - 8, // IID15312 - 8, // IID15313 - 8, // IID15314 - 8, // IID15315 - 8, // IID15316 - 8, // IID15317 - 5, // IID15318 - 5, // IID15319 - 8, // IID15320 - 8, // IID15321 - 8, // IID15322 - 8, // IID15323 - 8, // IID15324 - 8, // IID15325 - 5, // IID15326 - 5, // IID15327 - 8, // IID15328 - 8, // IID15329 - 8, // IID15330 - 8, // IID15331 - 8, // IID15332 - 8, // IID15333 - 5, // IID15334 - 5, // IID15335 - 8, // IID15336 - 8, // IID15337 - 8, // IID15338 - 8, // IID15339 - 8, // IID15340 - 8, // IID15341 - 5, // IID15342 - 5, // IID15343 - 8, // IID15344 - 8, // IID15345 - 8, // IID15346 - 8, // IID15347 - 8, // IID15348 - 8, // IID15349 - 5, // IID15350 - 5, // IID15351 - 8, // IID15352 - 8, // IID15353 - 8, // IID15354 - 8, // IID15355 - 8, // IID15356 - 8, // IID15357 - 5, // IID15358 - 5, // IID15359 - 8, // IID15360 - 8, // IID15361 - 8, // IID15362 - 8, // IID15363 - 8, // IID15364 - 8, // IID15365 - 5, // IID15366 - 5, // IID15367 - 8, // IID15368 - 8, // IID15369 - 8, // IID15370 - 8, // IID15371 - 8, // IID15372 - 8, // IID15373 - 5, // IID15374 - 5, // IID15375 - 8, // IID15376 - 8, // IID15377 - 8, // IID15378 - 8, // IID15379 - 8, // IID15380 - 8, // IID15381 - 5, // IID15382 - 5, // IID15383 - 8, // IID15384 - 8, // IID15385 - 8, // IID15386 - 8, // IID15387 - 8, // IID15388 - 8, // IID15389 - 3, // IID15390 - 4, // IID15391 - 4, // IID15392 - 4, // IID15393 - 4, // IID15394 - 3, // IID15395 - 4, // IID15396 - 4, // IID15397 - 4, // IID15398 - 4, // IID15399 - 3, // IID15400 - 4, // IID15401 - 4, // IID15402 - 4, // IID15403 - 4, // IID15404 - 3, // IID15405 - 4, // IID15406 - 4, // IID15407 - 4, // IID15408 - 4, // IID15409 - 3, // IID15410 - 4, // IID15411 - 4, // IID15412 - 4, // IID15413 - 4, // IID15414 - 3, // IID15415 - 4, // IID15416 - 4, // IID15417 - 4, // IID15418 - 4, // IID15419 - 3, // IID15420 - 4, // IID15421 - 4, // IID15422 - 4, // IID15423 - 4, // IID15424 - 3, // IID15425 - 4, // IID15426 - 4, // IID15427 - 4, // IID15428 - 4, // IID15429 - 3, // IID15430 - 4, // IID15431 - 4, // IID15432 - 4, // IID15433 - 4, // IID15434 - 3, // IID15435 - 4, // IID15436 - 4, // IID15437 - 4, // IID15438 - 4, // IID15439 - 3, // IID15440 - 4, // IID15441 - 4, // IID15442 - 4, // IID15443 - 4, // IID15444 - 4, // IID15445 - 5, // IID15446 - 5, // IID15447 - 5, // IID15448 - 5, // IID15449 - 4, // IID15450 - 5, // IID15451 - 5, // IID15452 - 5, // IID15453 - 5, // IID15454 - 4, // IID15455 - 5, // IID15456 - 5, // IID15457 - 5, // IID15458 - 5, // IID15459 - 4, // IID15460 - 5, // IID15461 - 5, // IID15462 - 5, // IID15463 - 5, // IID15464 - 4, // IID15465 - 5, // IID15466 - 5, // IID15467 - 5, // IID15468 - 5, // IID15469 - 4, // IID15470 - 5, // IID15471 - 5, // IID15472 - 5, // IID15473 - 5, // IID15474 - 4, // IID15475 - 5, // IID15476 - 5, // IID15477 - 5, // IID15478 - 5, // IID15479 - 4, // IID15480 - 5, // IID15481 - 5, // IID15482 - 5, // IID15483 - 5, // IID15484 - 4, // IID15485 - 5, // IID15486 - 5, // IID15487 - 5, // IID15488 - 5, // IID15489 - 4, // IID15490 - 5, // IID15491 - 5, // IID15492 - 5, // IID15493 - 5, // IID15494 - 4, // IID15495 - 5, // IID15496 - 5, // IID15497 - 5, // IID15498 - 5, // IID15499 - 4, // IID15500 - 5, // IID15501 - 5, // IID15502 - 5, // IID15503 - 5, // IID15504 - 4, // IID15505 - 5, // IID15506 - 5, // IID15507 - 5, // IID15508 - 5, // IID15509 - 4, // IID15510 - 5, // IID15511 - 5, // IID15512 - 5, // IID15513 - 5, // IID15514 - 4, // IID15515 - 5, // IID15516 - 5, // IID15517 - 5, // IID15518 - 5, // IID15519 - 4, // IID15520 - 5, // IID15521 - 5, // IID15522 - 5, // IID15523 - 5, // IID15524 - 3, // IID15525 - 4, // IID15526 - 4, // IID15527 - 4, // IID15528 - 4, // IID15529 - 3, // IID15530 - 4, // IID15531 - 4, // IID15532 - 4, // IID15533 - 4, // IID15534 - 3, // IID15535 - 4, // IID15536 - 4, // IID15537 - 4, // IID15538 - 4, // IID15539 - 3, // IID15540 - 4, // IID15541 - 4, // IID15542 - 4, // IID15543 - 4, // IID15544 - 3, // IID15545 - 4, // IID15546 - 4, // IID15547 - 4, // IID15548 - 4, // IID15549 - 3, // IID15550 - 4, // IID15551 - 4, // IID15552 - 4, // IID15553 - 4, // IID15554 - 3, // IID15555 - 4, // IID15556 - 4, // IID15557 - 4, // IID15558 - 4, // IID15559 - 3, // IID15560 - 4, // IID15561 - 4, // IID15562 - 4, // IID15563 - 4, // IID15564 - 3, // IID15565 - 4, // IID15566 - 4, // IID15567 - 4, // IID15568 - 4, // IID15569 - 3, // IID15570 - 4, // IID15571 - 4, // IID15572 - 4, // IID15573 - 4, // IID15574 - 3, // IID15575 - 4, // IID15576 - 4, // IID15577 - 4, // IID15578 - 4, // IID15579 - 4, // IID15580 - 5, // IID15581 - 5, // IID15582 - 5, // IID15583 - 5, // IID15584 - 4, // IID15585 - 5, // IID15586 - 5, // IID15587 - 5, // IID15588 - 5, // IID15589 - 4, // IID15590 - 5, // IID15591 - 5, // IID15592 - 5, // IID15593 - 5, // IID15594 - 4, // IID15595 - 5, // IID15596 - 5, // IID15597 - 5, // IID15598 - 5, // IID15599 - 4, // IID15600 - 5, // IID15601 - 5, // IID15602 - 5, // IID15603 - 5, // IID15604 - 4, // IID15605 - 5, // IID15606 - 5, // IID15607 - 5, // IID15608 - 5, // IID15609 - 4, // IID15610 - 5, // IID15611 - 5, // IID15612 - 5, // IID15613 - 5, // IID15614 - 4, // IID15615 - 5, // IID15616 - 5, // IID15617 - 5, // IID15618 - 5, // IID15619 - 4, // IID15620 - 5, // IID15621 - 5, // IID15622 - 5, // IID15623 - 5, // IID15624 - 4, // IID15625 - 5, // IID15626 - 5, // IID15627 - 5, // IID15628 - 5, // IID15629 - 4, // IID15630 - 5, // IID15631 - 5, // IID15632 - 5, // IID15633 - 5, // IID15634 - 4, // IID15635 - 5, // IID15636 - 5, // IID15637 - 5, // IID15638 - 5, // IID15639 - 4, // IID15640 - 5, // IID15641 - 5, // IID15642 - 5, // IID15643 - 5, // IID15644 - 4, // IID15645 - 5, // IID15646 - 5, // IID15647 - 5, // IID15648 - 5, // IID15649 - 4, // IID15650 - 5, // IID15651 - 5, // IID15652 - 5, // IID15653 - 5, // IID15654 - 4, // IID15655 - 5, // IID15656 - 5, // IID15657 - 5, // IID15658 - 5, // IID15659 - 3, // IID15660 - 4, // IID15661 - 4, // IID15662 - 4, // IID15663 - 4, // IID15664 - 3, // IID15665 - 4, // IID15666 - 4, // IID15667 - 4, // IID15668 - 4, // IID15669 - 3, // IID15670 - 4, // IID15671 - 4, // IID15672 - 4, // IID15673 - 4, // IID15674 - 3, // IID15675 - 4, // IID15676 - 4, // IID15677 - 4, // IID15678 - 4, // IID15679 - 3, // IID15680 - 4, // IID15681 - 4, // IID15682 - 4, // IID15683 - 4, // IID15684 - 3, // IID15685 - 4, // IID15686 - 4, // IID15687 - 4, // IID15688 - 4, // IID15689 - 3, // IID15690 - 4, // IID15691 - 4, // IID15692 - 4, // IID15693 - 4, // IID15694 - 3, // IID15695 - 4, // IID15696 - 4, // IID15697 - 4, // IID15698 - 4, // IID15699 - 3, // IID15700 - 4, // IID15701 - 4, // IID15702 - 4, // IID15703 - 4, // IID15704 - 3, // IID15705 - 4, // IID15706 - 4, // IID15707 - 4, // IID15708 - 4, // IID15709 - 3, // IID15710 - 4, // IID15711 - 4, // IID15712 - 4, // IID15713 - 4, // IID15714 - 4, // IID15715 - 5, // IID15716 - 5, // IID15717 - 5, // IID15718 - 5, // IID15719 - 4, // IID15720 - 5, // IID15721 - 5, // IID15722 - 5, // IID15723 - 5, // IID15724 - 4, // IID15725 - 5, // IID15726 - 5, // IID15727 - 5, // IID15728 - 5, // IID15729 - 4, // IID15730 - 5, // IID15731 - 5, // IID15732 - 5, // IID15733 - 5, // IID15734 - 4, // IID15735 - 5, // IID15736 - 5, // IID15737 - 5, // IID15738 - 5, // IID15739 - 4, // IID15740 - 5, // IID15741 - 5, // IID15742 - 5, // IID15743 - 5, // IID15744 - 4, // IID15745 - 5, // IID15746 - 5, // IID15747 - 5, // IID15748 - 5, // IID15749 - 4, // IID15750 - 5, // IID15751 - 5, // IID15752 - 5, // IID15753 - 5, // IID15754 - 4, // IID15755 - 5, // IID15756 - 5, // IID15757 - 5, // IID15758 - 5, // IID15759 - 4, // IID15760 - 5, // IID15761 - 5, // IID15762 - 5, // IID15763 - 5, // IID15764 - 4, // IID15765 - 5, // IID15766 - 5, // IID15767 - 5, // IID15768 - 5, // IID15769 - 4, // IID15770 - 5, // IID15771 - 5, // IID15772 - 5, // IID15773 - 5, // IID15774 - 4, // IID15775 - 5, // IID15776 - 5, // IID15777 - 5, // IID15778 - 5, // IID15779 - 4, // IID15780 - 5, // IID15781 - 5, // IID15782 - 5, // IID15783 - 5, // IID15784 - 4, // IID15785 - 5, // IID15786 - 5, // IID15787 - 5, // IID15788 - 5, // IID15789 - 4, // IID15790 - 5, // IID15791 - 5, // IID15792 - 5, // IID15793 - 5, // IID15794 - 3, // IID15795 - 4, // IID15796 - 4, // IID15797 - 4, // IID15798 - 4, // IID15799 - 3, // IID15800 - 4, // IID15801 - 4, // IID15802 - 4, // IID15803 - 4, // IID15804 - 3, // IID15805 - 4, // IID15806 - 4, // IID15807 - 4, // IID15808 - 4, // IID15809 - 3, // IID15810 - 4, // IID15811 - 4, // IID15812 - 4, // IID15813 - 4, // IID15814 - 3, // IID15815 - 4, // IID15816 - 4, // IID15817 - 4, // IID15818 - 4, // IID15819 - 3, // IID15820 - 4, // IID15821 - 4, // IID15822 - 4, // IID15823 - 4, // IID15824 - 3, // IID15825 - 4, // IID15826 - 4, // IID15827 - 4, // IID15828 - 4, // IID15829 - 3, // IID15830 - 4, // IID15831 - 4, // IID15832 - 4, // IID15833 - 4, // IID15834 - 3, // IID15835 - 4, // IID15836 - 4, // IID15837 - 4, // IID15838 - 4, // IID15839 - 3, // IID15840 - 4, // IID15841 - 4, // IID15842 - 4, // IID15843 - 4, // IID15844 - 3, // IID15845 - 4, // IID15846 - 4, // IID15847 - 4, // IID15848 - 4, // IID15849 - 4, // IID15850 - 5, // IID15851 - 5, // IID15852 - 5, // IID15853 - 5, // IID15854 - 4, // IID15855 - 5, // IID15856 - 5, // IID15857 - 5, // IID15858 - 5, // IID15859 - 4, // IID15860 - 5, // IID15861 - 5, // IID15862 - 5, // IID15863 - 5, // IID15864 - 4, // IID15865 - 5, // IID15866 - 5, // IID15867 - 5, // IID15868 - 5, // IID15869 - 4, // IID15870 - 5, // IID15871 - 5, // IID15872 - 5, // IID15873 - 5, // IID15874 - 4, // IID15875 - 5, // IID15876 - 5, // IID15877 - 5, // IID15878 - 5, // IID15879 - 4, // IID15880 - 5, // IID15881 - 5, // IID15882 - 5, // IID15883 - 5, // IID15884 - 4, // IID15885 - 5, // IID15886 - 5, // IID15887 - 5, // IID15888 - 5, // IID15889 - 4, // IID15890 - 5, // IID15891 - 5, // IID15892 - 5, // IID15893 - 5, // IID15894 - 4, // IID15895 - 5, // IID15896 - 5, // IID15897 - 5, // IID15898 - 5, // IID15899 - 4, // IID15900 - 5, // IID15901 - 5, // IID15902 - 5, // IID15903 - 5, // IID15904 - 4, // IID15905 - 5, // IID15906 - 5, // IID15907 - 5, // IID15908 - 5, // IID15909 - 4, // IID15910 - 5, // IID15911 - 5, // IID15912 - 5, // IID15913 - 5, // IID15914 - 4, // IID15915 - 5, // IID15916 - 5, // IID15917 - 5, // IID15918 - 5, // IID15919 - 4, // IID15920 - 5, // IID15921 - 5, // IID15922 - 5, // IID15923 - 5, // IID15924 - 4, // IID15925 - 5, // IID15926 - 5, // IID15927 - 5, // IID15928 - 5, // IID15929 - 3, // IID15930 - 4, // IID15931 - 4, // IID15932 - 4, // IID15933 - 4, // IID15934 - 3, // IID15935 - 4, // IID15936 - 4, // IID15937 - 4, // IID15938 - 4, // IID15939 - 3, // IID15940 - 4, // IID15941 - 4, // IID15942 - 4, // IID15943 - 4, // IID15944 - 3, // IID15945 - 4, // IID15946 - 4, // IID15947 - 4, // IID15948 - 4, // IID15949 - 3, // IID15950 - 4, // IID15951 - 4, // IID15952 - 4, // IID15953 - 4, // IID15954 - 3, // IID15955 - 4, // IID15956 - 4, // IID15957 - 4, // IID15958 - 4, // IID15959 - 3, // IID15960 - 4, // IID15961 - 4, // IID15962 - 4, // IID15963 - 4, // IID15964 - 3, // IID15965 - 4, // IID15966 - 4, // IID15967 - 4, // IID15968 - 4, // IID15969 - 3, // IID15970 - 4, // IID15971 - 4, // IID15972 - 4, // IID15973 - 4, // IID15974 - 3, // IID15975 - 4, // IID15976 - 4, // IID15977 - 4, // IID15978 - 4, // IID15979 - 3, // IID15980 - 4, // IID15981 - 4, // IID15982 - 4, // IID15983 - 4, // IID15984 - 4, // IID15985 - 5, // IID15986 - 5, // IID15987 - 5, // IID15988 - 5, // IID15989 - 4, // IID15990 - 5, // IID15991 - 5, // IID15992 - 5, // IID15993 - 5, // IID15994 - 4, // IID15995 - 5, // IID15996 - 5, // IID15997 - 5, // IID15998 - 5, // IID15999 - 4, // IID16000 - 5, // IID16001 - 5, // IID16002 - 5, // IID16003 - 5, // IID16004 - 4, // IID16005 - 5, // IID16006 - 5, // IID16007 - 5, // IID16008 - 5, // IID16009 - 4, // IID16010 - 5, // IID16011 - 5, // IID16012 - 5, // IID16013 - 5, // IID16014 - 4, // IID16015 - 5, // IID16016 - 5, // IID16017 - 5, // IID16018 - 5, // IID16019 - 4, // IID16020 - 5, // IID16021 - 5, // IID16022 - 5, // IID16023 - 5, // IID16024 - 4, // IID16025 - 5, // IID16026 - 5, // IID16027 - 5, // IID16028 - 5, // IID16029 - 4, // IID16030 - 5, // IID16031 - 5, // IID16032 - 5, // IID16033 - 5, // IID16034 - 4, // IID16035 - 5, // IID16036 - 5, // IID16037 - 5, // IID16038 - 5, // IID16039 - 4, // IID16040 - 5, // IID16041 - 5, // IID16042 - 5, // IID16043 - 5, // IID16044 - 4, // IID16045 - 5, // IID16046 - 5, // IID16047 - 5, // IID16048 - 5, // IID16049 - 4, // IID16050 - 5, // IID16051 - 5, // IID16052 - 5, // IID16053 - 5, // IID16054 - 4, // IID16055 - 5, // IID16056 - 5, // IID16057 - 5, // IID16058 - 5, // IID16059 - 4, // IID16060 - 5, // IID16061 - 5, // IID16062 - 5, // IID16063 - 5, // IID16064 - 3, // IID16065 - 4, // IID16066 - 4, // IID16067 - 4, // IID16068 - 4, // IID16069 - 3, // IID16070 - 4, // IID16071 - 4, // IID16072 - 4, // IID16073 - 4, // IID16074 - 3, // IID16075 - 4, // IID16076 - 4, // IID16077 - 4, // IID16078 - 4, // IID16079 - 3, // IID16080 - 4, // IID16081 - 4, // IID16082 - 4, // IID16083 - 4, // IID16084 - 3, // IID16085 - 4, // IID16086 - 4, // IID16087 - 4, // IID16088 - 4, // IID16089 - 3, // IID16090 - 4, // IID16091 - 4, // IID16092 - 4, // IID16093 - 4, // IID16094 - 3, // IID16095 - 4, // IID16096 - 4, // IID16097 - 4, // IID16098 - 4, // IID16099 - 3, // IID16100 - 4, // IID16101 - 4, // IID16102 - 4, // IID16103 - 4, // IID16104 - 3, // IID16105 - 4, // IID16106 - 4, // IID16107 - 4, // IID16108 - 4, // IID16109 - 3, // IID16110 - 4, // IID16111 - 4, // IID16112 - 4, // IID16113 - 4, // IID16114 - 3, // IID16115 - 4, // IID16116 - 4, // IID16117 - 4, // IID16118 - 4, // IID16119 - 4, // IID16120 - 5, // IID16121 - 5, // IID16122 - 5, // IID16123 - 5, // IID16124 - 4, // IID16125 - 5, // IID16126 - 5, // IID16127 - 5, // IID16128 - 5, // IID16129 - 4, // IID16130 - 5, // IID16131 - 5, // IID16132 - 5, // IID16133 - 5, // IID16134 - 4, // IID16135 - 5, // IID16136 - 5, // IID16137 - 5, // IID16138 - 5, // IID16139 - 4, // IID16140 - 5, // IID16141 - 5, // IID16142 - 5, // IID16143 - 5, // IID16144 - 4, // IID16145 - 5, // IID16146 - 5, // IID16147 - 5, // IID16148 - 5, // IID16149 - 4, // IID16150 - 5, // IID16151 - 5, // IID16152 - 5, // IID16153 - 5, // IID16154 - 4, // IID16155 - 5, // IID16156 - 5, // IID16157 - 5, // IID16158 - 5, // IID16159 - 4, // IID16160 - 5, // IID16161 - 5, // IID16162 - 5, // IID16163 - 5, // IID16164 - 4, // IID16165 - 5, // IID16166 - 5, // IID16167 - 5, // IID16168 - 5, // IID16169 - 4, // IID16170 - 5, // IID16171 - 5, // IID16172 - 5, // IID16173 - 5, // IID16174 - 4, // IID16175 - 5, // IID16176 - 5, // IID16177 - 5, // IID16178 - 5, // IID16179 - 4, // IID16180 - 5, // IID16181 - 5, // IID16182 - 5, // IID16183 - 5, // IID16184 - 4, // IID16185 - 5, // IID16186 - 5, // IID16187 - 5, // IID16188 - 5, // IID16189 - 4, // IID16190 - 5, // IID16191 - 5, // IID16192 - 5, // IID16193 - 5, // IID16194 - 4, // IID16195 - 5, // IID16196 - 5, // IID16197 - 5, // IID16198 - 5, // IID16199 - 4, // IID16200 - 4, // IID16201 - 7, // IID16202 - 7, // IID16203 - 7, // IID16204 - 7, // IID16205 - 7, // IID16206 - 7, // IID16207 - 4, // IID16208 - 4, // IID16209 - 7, // IID16210 - 7, // IID16211 - 7, // IID16212 - 7, // IID16213 - 7, // IID16214 - 7, // IID16215 - 4, // IID16216 - 4, // IID16217 - 7, // IID16218 - 7, // IID16219 - 7, // IID16220 - 7, // IID16221 - 7, // IID16222 - 7, // IID16223 - 4, // IID16224 - 4, // IID16225 - 7, // IID16226 - 7, // IID16227 - 7, // IID16228 - 7, // IID16229 - 7, // IID16230 - 7, // IID16231 - 4, // IID16232 - 4, // IID16233 - 7, // IID16234 - 7, // IID16235 - 7, // IID16236 - 7, // IID16237 - 7, // IID16238 - 7, // IID16239 - 4, // IID16240 - 4, // IID16241 - 7, // IID16242 - 7, // IID16243 - 7, // IID16244 - 7, // IID16245 - 7, // IID16246 - 7, // IID16247 - 4, // IID16248 - 4, // IID16249 - 7, // IID16250 - 7, // IID16251 - 7, // IID16252 - 7, // IID16253 - 7, // IID16254 - 7, // IID16255 - 4, // IID16256 - 4, // IID16257 - 7, // IID16258 - 7, // IID16259 - 7, // IID16260 - 7, // IID16261 - 7, // IID16262 - 7, // IID16263 - 4, // IID16264 - 4, // IID16265 - 7, // IID16266 - 7, // IID16267 - 7, // IID16268 - 7, // IID16269 - 7, // IID16270 - 7, // IID16271 - 4, // IID16272 - 4, // IID16273 - 7, // IID16274 - 7, // IID16275 - 7, // IID16276 - 7, // IID16277 - 7, // IID16278 - 7, // IID16279 - 4, // IID16280 - 4, // IID16281 - 7, // IID16282 - 7, // IID16283 - 7, // IID16284 - 7, // IID16285 - 7, // IID16286 - 7, // IID16287 - 5, // IID16288 - 5, // IID16289 - 8, // IID16290 - 8, // IID16291 - 8, // IID16292 - 8, // IID16293 - 8, // IID16294 - 8, // IID16295 - 5, // IID16296 - 5, // IID16297 - 8, // IID16298 - 8, // IID16299 - 8, // IID16300 - 8, // IID16301 - 8, // IID16302 - 8, // IID16303 - 5, // IID16304 - 5, // IID16305 - 8, // IID16306 - 8, // IID16307 - 8, // IID16308 - 8, // IID16309 - 8, // IID16310 - 8, // IID16311 - 5, // IID16312 - 5, // IID16313 - 8, // IID16314 - 8, // IID16315 - 8, // IID16316 - 8, // IID16317 - 8, // IID16318 - 8, // IID16319 - 5, // IID16320 - 5, // IID16321 - 8, // IID16322 - 8, // IID16323 - 8, // IID16324 - 8, // IID16325 - 8, // IID16326 - 8, // IID16327 - 5, // IID16328 - 5, // IID16329 - 8, // IID16330 - 8, // IID16331 - 8, // IID16332 - 8, // IID16333 - 8, // IID16334 - 8, // IID16335 - 5, // IID16336 - 5, // IID16337 - 8, // IID16338 - 8, // IID16339 - 8, // IID16340 - 8, // IID16341 - 8, // IID16342 - 8, // IID16343 - 5, // IID16344 - 5, // IID16345 - 8, // IID16346 - 8, // IID16347 - 8, // IID16348 - 8, // IID16349 - 8, // IID16350 - 8, // IID16351 - 5, // IID16352 - 5, // IID16353 - 8, // IID16354 - 8, // IID16355 - 8, // IID16356 - 8, // IID16357 - 8, // IID16358 - 8, // IID16359 - 5, // IID16360 - 5, // IID16361 - 8, // IID16362 - 8, // IID16363 - 8, // IID16364 - 8, // IID16365 - 8, // IID16366 - 8, // IID16367 - 5, // IID16368 - 5, // IID16369 - 8, // IID16370 - 8, // IID16371 - 8, // IID16372 - 8, // IID16373 - 8, // IID16374 - 8, // IID16375 - 5, // IID16376 - 5, // IID16377 - 8, // IID16378 - 8, // IID16379 - 8, // IID16380 - 8, // IID16381 - 8, // IID16382 - 8, // IID16383 - 5, // IID16384 - 5, // IID16385 - 8, // IID16386 - 8, // IID16387 - 8, // IID16388 - 8, // IID16389 - 8, // IID16390 - 8, // IID16391 - 5, // IID16392 - 5, // IID16393 - 8, // IID16394 - 8, // IID16395 - 8, // IID16396 - 8, // IID16397 - 8, // IID16398 - 8, // IID16399 - 5, // IID16400 - 5, // IID16401 - 8, // IID16402 - 8, // IID16403 - 8, // IID16404 - 8, // IID16405 - 8, // IID16406 - 8, // IID16407 - 5, // IID16408 - 5, // IID16409 - 8, // IID16410 - 8, // IID16411 - 8, // IID16412 - 8, // IID16413 - 8, // IID16414 - 8, // IID16415 - 3, // IID16416 - 4, // IID16417 - 4, // IID16418 - 4, // IID16419 - 4, // IID16420 - 3, // IID16421 - 4, // IID16422 - 4, // IID16423 - 4, // IID16424 - 4, // IID16425 - 3, // IID16426 - 4, // IID16427 - 4, // IID16428 - 4, // IID16429 - 4, // IID16430 - 3, // IID16431 - 4, // IID16432 - 4, // IID16433 - 4, // IID16434 - 4, // IID16435 - 3, // IID16436 - 4, // IID16437 - 4, // IID16438 - 4, // IID16439 - 4, // IID16440 - 3, // IID16441 - 4, // IID16442 - 4, // IID16443 - 4, // IID16444 - 4, // IID16445 - 3, // IID16446 - 4, // IID16447 - 4, // IID16448 - 4, // IID16449 - 4, // IID16450 - 3, // IID16451 - 4, // IID16452 - 4, // IID16453 - 4, // IID16454 - 4, // IID16455 - 3, // IID16456 - 4, // IID16457 - 4, // IID16458 - 4, // IID16459 - 4, // IID16460 - 3, // IID16461 - 4, // IID16462 - 4, // IID16463 - 4, // IID16464 - 4, // IID16465 - 3, // IID16466 - 4, // IID16467 - 4, // IID16468 - 4, // IID16469 - 4, // IID16470 - 4, // IID16471 - 5, // IID16472 - 5, // IID16473 - 5, // IID16474 - 5, // IID16475 - 4, // IID16476 - 5, // IID16477 - 5, // IID16478 - 5, // IID16479 - 5, // IID16480 - 4, // IID16481 - 5, // IID16482 - 5, // IID16483 - 5, // IID16484 - 5, // IID16485 - 4, // IID16486 - 5, // IID16487 - 5, // IID16488 - 5, // IID16489 - 5, // IID16490 - 4, // IID16491 - 5, // IID16492 - 5, // IID16493 - 5, // IID16494 - 5, // IID16495 - 4, // IID16496 - 5, // IID16497 - 5, // IID16498 - 5, // IID16499 - 5, // IID16500 - 4, // IID16501 - 5, // IID16502 - 5, // IID16503 - 5, // IID16504 - 5, // IID16505 - 4, // IID16506 - 5, // IID16507 - 5, // IID16508 - 5, // IID16509 - 5, // IID16510 - 4, // IID16511 - 5, // IID16512 - 5, // IID16513 - 5, // IID16514 - 5, // IID16515 - 4, // IID16516 - 5, // IID16517 - 5, // IID16518 - 5, // IID16519 - 5, // IID16520 - 4, // IID16521 - 5, // IID16522 - 5, // IID16523 - 5, // IID16524 - 5, // IID16525 - 4, // IID16526 - 5, // IID16527 - 5, // IID16528 - 5, // IID16529 - 5, // IID16530 - 4, // IID16531 - 5, // IID16532 - 5, // IID16533 - 5, // IID16534 - 5, // IID16535 - 4, // IID16536 - 5, // IID16537 - 5, // IID16538 - 5, // IID16539 - 5, // IID16540 - 4, // IID16541 - 5, // IID16542 - 5, // IID16543 - 5, // IID16544 - 5, // IID16545 - 4, // IID16546 - 5, // IID16547 - 5, // IID16548 - 5, // IID16549 - 5, // IID16550 - 3, // IID16551 - 4, // IID16552 - 4, // IID16553 - 4, // IID16554 - 4, // IID16555 - 3, // IID16556 - 4, // IID16557 - 4, // IID16558 - 4, // IID16559 - 4, // IID16560 - 3, // IID16561 - 4, // IID16562 - 4, // IID16563 - 4, // IID16564 - 4, // IID16565 - 3, // IID16566 - 4, // IID16567 - 4, // IID16568 - 4, // IID16569 - 4, // IID16570 - 3, // IID16571 - 4, // IID16572 - 4, // IID16573 - 4, // IID16574 - 4, // IID16575 - 3, // IID16576 - 4, // IID16577 - 4, // IID16578 - 4, // IID16579 - 4, // IID16580 - 3, // IID16581 - 4, // IID16582 - 4, // IID16583 - 4, // IID16584 - 4, // IID16585 - 3, // IID16586 - 4, // IID16587 - 4, // IID16588 - 4, // IID16589 - 4, // IID16590 - 3, // IID16591 - 4, // IID16592 - 4, // IID16593 - 4, // IID16594 - 4, // IID16595 - 3, // IID16596 - 4, // IID16597 - 4, // IID16598 - 4, // IID16599 - 4, // IID16600 - 3, // IID16601 - 4, // IID16602 - 4, // IID16603 - 4, // IID16604 - 4, // IID16605 - 4, // IID16606 - 5, // IID16607 - 5, // IID16608 - 5, // IID16609 - 5, // IID16610 - 4, // IID16611 - 5, // IID16612 - 5, // IID16613 - 5, // IID16614 - 5, // IID16615 - 4, // IID16616 - 5, // IID16617 - 5, // IID16618 - 5, // IID16619 - 5, // IID16620 - 4, // IID16621 - 5, // IID16622 - 5, // IID16623 - 5, // IID16624 - 5, // IID16625 - 4, // IID16626 - 5, // IID16627 - 5, // IID16628 - 5, // IID16629 - 5, // IID16630 - 4, // IID16631 - 5, // IID16632 - 5, // IID16633 - 5, // IID16634 - 5, // IID16635 - 4, // IID16636 - 5, // IID16637 - 5, // IID16638 - 5, // IID16639 - 5, // IID16640 - 4, // IID16641 - 5, // IID16642 - 5, // IID16643 - 5, // IID16644 - 5, // IID16645 - 4, // IID16646 - 5, // IID16647 - 5, // IID16648 - 5, // IID16649 - 5, // IID16650 - 4, // IID16651 - 5, // IID16652 - 5, // IID16653 - 5, // IID16654 - 5, // IID16655 - 4, // IID16656 - 5, // IID16657 - 5, // IID16658 - 5, // IID16659 - 5, // IID16660 - 4, // IID16661 - 5, // IID16662 - 5, // IID16663 - 5, // IID16664 - 5, // IID16665 - 4, // IID16666 - 5, // IID16667 - 5, // IID16668 - 5, // IID16669 - 5, // IID16670 - 4, // IID16671 - 5, // IID16672 - 5, // IID16673 - 5, // IID16674 - 5, // IID16675 - 4, // IID16676 - 5, // IID16677 - 5, // IID16678 - 5, // IID16679 - 5, // IID16680 - 4, // IID16681 - 5, // IID16682 - 5, // IID16683 - 5, // IID16684 - 5, // IID16685 - 4, // IID16686 - 4, // IID16687 - 7, // IID16688 - 7, // IID16689 - 7, // IID16690 - 7, // IID16691 - 7, // IID16692 - 7, // IID16693 - 4, // IID16694 - 4, // IID16695 - 7, // IID16696 - 7, // IID16697 - 7, // IID16698 - 7, // IID16699 - 7, // IID16700 - 7, // IID16701 - 4, // IID16702 - 4, // IID16703 - 7, // IID16704 - 7, // IID16705 - 7, // IID16706 - 7, // IID16707 - 7, // IID16708 - 7, // IID16709 - 4, // IID16710 - 4, // IID16711 - 7, // IID16712 - 7, // IID16713 - 7, // IID16714 - 7, // IID16715 - 7, // IID16716 - 7, // IID16717 - 4, // IID16718 - 4, // IID16719 - 7, // IID16720 - 7, // IID16721 - 7, // IID16722 - 7, // IID16723 - 7, // IID16724 - 7, // IID16725 - 4, // IID16726 - 4, // IID16727 - 7, // IID16728 - 7, // IID16729 - 7, // IID16730 - 7, // IID16731 - 7, // IID16732 - 7, // IID16733 - 4, // IID16734 - 4, // IID16735 - 7, // IID16736 - 7, // IID16737 - 7, // IID16738 - 7, // IID16739 - 7, // IID16740 - 7, // IID16741 - 4, // IID16742 - 4, // IID16743 - 7, // IID16744 - 7, // IID16745 - 7, // IID16746 - 7, // IID16747 - 7, // IID16748 - 7, // IID16749 - 4, // IID16750 - 4, // IID16751 - 7, // IID16752 - 7, // IID16753 - 7, // IID16754 - 7, // IID16755 - 7, // IID16756 - 7, // IID16757 - 4, // IID16758 - 4, // IID16759 - 7, // IID16760 - 7, // IID16761 - 7, // IID16762 - 7, // IID16763 - 7, // IID16764 - 7, // IID16765 - 4, // IID16766 - 4, // IID16767 - 7, // IID16768 - 7, // IID16769 - 7, // IID16770 - 7, // IID16771 - 7, // IID16772 - 7, // IID16773 - 5, // IID16774 - 5, // IID16775 - 8, // IID16776 - 8, // IID16777 - 8, // IID16778 - 8, // IID16779 - 8, // IID16780 - 8, // IID16781 - 5, // IID16782 - 5, // IID16783 - 8, // IID16784 - 8, // IID16785 - 8, // IID16786 - 8, // IID16787 - 8, // IID16788 - 8, // IID16789 - 5, // IID16790 - 5, // IID16791 - 8, // IID16792 - 8, // IID16793 - 8, // IID16794 - 8, // IID16795 - 8, // IID16796 - 8, // IID16797 - 5, // IID16798 - 5, // IID16799 - 8, // IID16800 - 8, // IID16801 - 8, // IID16802 - 8, // IID16803 - 8, // IID16804 - 8, // IID16805 - 5, // IID16806 - 5, // IID16807 - 8, // IID16808 - 8, // IID16809 - 8, // IID16810 - 8, // IID16811 - 8, // IID16812 - 8, // IID16813 - 5, // IID16814 - 5, // IID16815 - 8, // IID16816 - 8, // IID16817 - 8, // IID16818 - 8, // IID16819 - 8, // IID16820 - 8, // IID16821 - 5, // IID16822 - 5, // IID16823 - 8, // IID16824 - 8, // IID16825 - 8, // IID16826 - 8, // IID16827 - 8, // IID16828 - 8, // IID16829 - 5, // IID16830 - 5, // IID16831 - 8, // IID16832 - 8, // IID16833 - 8, // IID16834 - 8, // IID16835 - 8, // IID16836 - 8, // IID16837 - 5, // IID16838 - 5, // IID16839 - 8, // IID16840 - 8, // IID16841 - 8, // IID16842 - 8, // IID16843 - 8, // IID16844 - 8, // IID16845 - 5, // IID16846 - 5, // IID16847 - 8, // IID16848 - 8, // IID16849 - 8, // IID16850 - 8, // IID16851 - 8, // IID16852 - 8, // IID16853 - 5, // IID16854 - 5, // IID16855 - 8, // IID16856 - 8, // IID16857 - 8, // IID16858 - 8, // IID16859 - 8, // IID16860 - 8, // IID16861 - 5, // IID16862 - 5, // IID16863 - 8, // IID16864 - 8, // IID16865 - 8, // IID16866 - 8, // IID16867 - 8, // IID16868 - 8, // IID16869 - 5, // IID16870 - 5, // IID16871 - 8, // IID16872 - 8, // IID16873 - 8, // IID16874 - 8, // IID16875 - 8, // IID16876 - 8, // IID16877 - 5, // IID16878 - 5, // IID16879 - 8, // IID16880 - 8, // IID16881 - 8, // IID16882 - 8, // IID16883 - 8, // IID16884 - 8, // IID16885 - 5, // IID16886 - 5, // IID16887 - 8, // IID16888 - 8, // IID16889 - 8, // IID16890 - 8, // IID16891 - 8, // IID16892 - 8, // IID16893 - 5, // IID16894 - 5, // IID16895 - 8, // IID16896 - 8, // IID16897 - 8, // IID16898 - 8, // IID16899 - 8, // IID16900 - 8, // IID16901 - 4, // IID16902 - 4, // IID16903 - 7, // IID16904 - 7, // IID16905 - 7, // IID16906 - 7, // IID16907 - 7, // IID16908 - 7, // IID16909 - 4, // IID16910 - 4, // IID16911 - 7, // IID16912 - 7, // IID16913 - 7, // IID16914 - 7, // IID16915 - 7, // IID16916 - 7, // IID16917 - 4, // IID16918 - 4, // IID16919 - 7, // IID16920 - 7, // IID16921 - 7, // IID16922 - 7, // IID16923 - 7, // IID16924 - 7, // IID16925 - 4, // IID16926 - 4, // IID16927 - 7, // IID16928 - 7, // IID16929 - 7, // IID16930 - 7, // IID16931 - 7, // IID16932 - 7, // IID16933 - 4, // IID16934 - 4, // IID16935 - 7, // IID16936 - 7, // IID16937 - 7, // IID16938 - 7, // IID16939 - 7, // IID16940 - 7, // IID16941 - 4, // IID16942 - 4, // IID16943 - 7, // IID16944 - 7, // IID16945 - 7, // IID16946 - 7, // IID16947 - 7, // IID16948 - 7, // IID16949 - 4, // IID16950 - 4, // IID16951 - 7, // IID16952 - 7, // IID16953 - 7, // IID16954 - 7, // IID16955 - 7, // IID16956 - 7, // IID16957 - 4, // IID16958 - 4, // IID16959 - 7, // IID16960 - 7, // IID16961 - 7, // IID16962 - 7, // IID16963 - 7, // IID16964 - 7, // IID16965 - 4, // IID16966 - 4, // IID16967 - 7, // IID16968 - 7, // IID16969 - 7, // IID16970 - 7, // IID16971 - 7, // IID16972 - 7, // IID16973 - 4, // IID16974 - 4, // IID16975 - 7, // IID16976 - 7, // IID16977 - 7, // IID16978 - 7, // IID16979 - 7, // IID16980 - 7, // IID16981 - 4, // IID16982 - 4, // IID16983 - 7, // IID16984 - 7, // IID16985 - 7, // IID16986 - 7, // IID16987 - 7, // IID16988 - 7, // IID16989 - 5, // IID16990 - 5, // IID16991 - 8, // IID16992 - 8, // IID16993 - 8, // IID16994 - 8, // IID16995 - 8, // IID16996 - 8, // IID16997 - 5, // IID16998 - 5, // IID16999 - 8, // IID17000 - 8, // IID17001 - 8, // IID17002 - 8, // IID17003 - 8, // IID17004 - 8, // IID17005 - 5, // IID17006 - 5, // IID17007 - 8, // IID17008 - 8, // IID17009 - 8, // IID17010 - 8, // IID17011 - 8, // IID17012 - 8, // IID17013 - 5, // IID17014 - 5, // IID17015 - 8, // IID17016 - 8, // IID17017 - 8, // IID17018 - 8, // IID17019 - 8, // IID17020 - 8, // IID17021 - 5, // IID17022 - 5, // IID17023 - 8, // IID17024 - 8, // IID17025 - 8, // IID17026 - 8, // IID17027 - 8, // IID17028 - 8, // IID17029 - 5, // IID17030 - 5, // IID17031 - 8, // IID17032 - 8, // IID17033 - 8, // IID17034 - 8, // IID17035 - 8, // IID17036 - 8, // IID17037 - 5, // IID17038 - 5, // IID17039 - 8, // IID17040 - 8, // IID17041 - 8, // IID17042 - 8, // IID17043 - 8, // IID17044 - 8, // IID17045 - 5, // IID17046 - 5, // IID17047 - 8, // IID17048 - 8, // IID17049 - 8, // IID17050 - 8, // IID17051 - 8, // IID17052 - 8, // IID17053 - 5, // IID17054 - 5, // IID17055 - 8, // IID17056 - 8, // IID17057 - 8, // IID17058 - 8, // IID17059 - 8, // IID17060 - 8, // IID17061 - 5, // IID17062 - 5, // IID17063 - 8, // IID17064 - 8, // IID17065 - 8, // IID17066 - 8, // IID17067 - 8, // IID17068 - 8, // IID17069 - 5, // IID17070 - 5, // IID17071 - 8, // IID17072 - 8, // IID17073 - 8, // IID17074 - 8, // IID17075 - 8, // IID17076 - 8, // IID17077 - 5, // IID17078 - 5, // IID17079 - 8, // IID17080 - 8, // IID17081 - 8, // IID17082 - 8, // IID17083 - 8, // IID17084 - 8, // IID17085 - 5, // IID17086 - 5, // IID17087 - 8, // IID17088 - 8, // IID17089 - 8, // IID17090 - 8, // IID17091 - 8, // IID17092 - 8, // IID17093 - 5, // IID17094 - 5, // IID17095 - 8, // IID17096 - 8, // IID17097 - 8, // IID17098 - 8, // IID17099 - 8, // IID17100 - 8, // IID17101 - 5, // IID17102 - 5, // IID17103 - 8, // IID17104 - 8, // IID17105 - 8, // IID17106 - 8, // IID17107 - 8, // IID17108 - 8, // IID17109 - 5, // IID17110 - 5, // IID17111 - 8, // IID17112 - 8, // IID17113 - 8, // IID17114 - 8, // IID17115 - 8, // IID17116 - 8, // IID17117 - 7, // IID17118 - 7, // IID17119 - 7, // IID17120 - 7, // IID17121 - 7, // IID17122 - 7, // IID17123 - 7, // IID17124 - 7, // IID17125 - 7, // IID17126 - 7, // IID17127 - 7, // IID17128 - 7, // IID17129 - 7, // IID17130 - 7, // IID17131 - 7, // IID17132 - 7, // IID17133 - 7, // IID17134 - 7, // IID17135 - 7, // IID17136 - 7, // IID17137 - 7, // IID17138 - 7, // IID17139 - 7, // IID17140 - 7, // IID17141 - 7, // IID17142 - 7, // IID17143 - 7, // IID17144 - 7, // IID17145 - 7, // IID17146 - 7, // IID17147 - 7, // IID17148 - 7, // IID17149 - 7, // IID17150 - 7, // IID17151 - 7, // IID17152 - 7, // IID17153 - 7, // IID17154 - 7, // IID17155 - 7, // IID17156 - 7, // IID17157 - 7, // IID17158 - 7, // IID17159 - 7, // IID17160 - 7, // IID17161 - 7, // IID17162 - 7, // IID17163 - 7, // IID17164 - 7, // IID17165 - 7, // IID17166 - 7, // IID17167 - 7, // IID17168 - 7, // IID17169 - 7, // IID17170 - 7, // IID17171 - 7, // IID17172 - 7, // IID17173 - 7, // IID17174 - 7, // IID17175 - 7, // IID17176 - 7, // IID17177 - 7, // IID17178 - 7, // IID17179 - 7, // IID17180 - 7, // IID17181 - 7, // IID17182 - 7, // IID17183 - 7, // IID17184 - 7, // IID17185 - 7, // IID17186 - 7, // IID17187 - 7, // IID17188 - 7, // IID17189 - 7, // IID17190 - 7, // IID17191 - 7, // IID17192 - 7, // IID17193 - 7, // IID17194 - 7, // IID17195 - 7, // IID17196 - 7, // IID17197 - 7, // IID17198 - 7, // IID17199 - 7, // IID17200 - 7, // IID17201 - 7, // IID17202 - 7, // IID17203 - 7, // IID17204 - 7, // IID17205 - 8, // IID17206 - 8, // IID17207 - 8, // IID17208 - 8, // IID17209 - 8, // IID17210 - 8, // IID17211 - 8, // IID17212 - 8, // IID17213 - 8, // IID17214 - 8, // IID17215 - 8, // IID17216 - 8, // IID17217 - 8, // IID17218 - 8, // IID17219 - 8, // IID17220 - 8, // IID17221 - 8, // IID17222 - 8, // IID17223 - 8, // IID17224 - 8, // IID17225 - 8, // IID17226 - 8, // IID17227 - 8, // IID17228 - 8, // IID17229 - 8, // IID17230 - 8, // IID17231 - 8, // IID17232 - 8, // IID17233 - 8, // IID17234 - 8, // IID17235 - 8, // IID17236 - 8, // IID17237 - 8, // IID17238 - 8, // IID17239 - 8, // IID17240 - 8, // IID17241 - 8, // IID17242 - 8, // IID17243 - 8, // IID17244 - 8, // IID17245 - 8, // IID17246 - 8, // IID17247 - 8, // IID17248 - 8, // IID17249 - 8, // IID17250 - 8, // IID17251 - 8, // IID17252 - 8, // IID17253 - 8, // IID17254 - 8, // IID17255 - 8, // IID17256 - 8, // IID17257 - 8, // IID17258 - 8, // IID17259 - 8, // IID17260 - 8, // IID17261 - 8, // IID17262 - 8, // IID17263 - 8, // IID17264 - 8, // IID17265 - 8, // IID17266 - 8, // IID17267 - 8, // IID17268 - 8, // IID17269 - 8, // IID17270 - 8, // IID17271 - 8, // IID17272 - 8, // IID17273 - 8, // IID17274 - 8, // IID17275 - 8, // IID17276 - 8, // IID17277 - 8, // IID17278 - 8, // IID17279 - 8, // IID17280 - 8, // IID17281 - 8, // IID17282 - 8, // IID17283 - 8, // IID17284 - 8, // IID17285 - 8, // IID17286 - 8, // IID17287 - 8, // IID17288 - 8, // IID17289 - 8, // IID17290 - 8, // IID17291 - 8, // IID17292 - 8, // IID17293 - 8, // IID17294 - 8, // IID17295 - 8, // IID17296 - 8, // IID17297 - 8, // IID17298 - 8, // IID17299 - 8, // IID17300 - 8, // IID17301 - 8, // IID17302 - 8, // IID17303 - 8, // IID17304 - 8, // IID17305 - 8, // IID17306 - 8, // IID17307 - 8, // IID17308 - 8, // IID17309 - 8, // IID17310 - 8, // IID17311 - 8, // IID17312 - 8, // IID17313 - 8, // IID17314 - 8, // IID17315 - 8, // IID17316 - 8, // IID17317 - 8, // IID17318 - 8, // IID17319 - 8, // IID17320 - 8, // IID17321 - 8, // IID17322 - 8, // IID17323 - 8, // IID17324 - 8, // IID17325 - 8, // IID17326 - 8, // IID17327 - 8, // IID17328 - 8, // IID17329 - 8, // IID17330 - 8, // IID17331 - 8, // IID17332 - 8, // IID17333 - 10, // IID17334 - 10, // IID17335 - 10, // IID17336 - 10, // IID17337 - 10, // IID17338 - 10, // IID17339 - 10, // IID17340 - 10, // IID17341 - 10, // IID17342 - 10, // IID17343 - 10, // IID17344 - 10, // IID17345 - 10, // IID17346 - 10, // IID17347 - 10, // IID17348 - 10, // IID17349 - 10, // IID17350 - 10, // IID17351 - 10, // IID17352 - 10, // IID17353 - 10, // IID17354 - 10, // IID17355 - 10, // IID17356 - 10, // IID17357 - 10, // IID17358 - 10, // IID17359 - 10, // IID17360 - 10, // IID17361 - 10, // IID17362 - 10, // IID17363 - 10, // IID17364 - 10, // IID17365 - 10, // IID17366 - 10, // IID17367 - 10, // IID17368 - 10, // IID17369 - 10, // IID17370 - 10, // IID17371 - 10, // IID17372 - 10, // IID17373 - 10, // IID17374 - 10, // IID17375 - 10, // IID17376 - 10, // IID17377 - 10, // IID17378 - 10, // IID17379 - 10, // IID17380 - 10, // IID17381 - 10, // IID17382 - 10, // IID17383 - 10, // IID17384 - 10, // IID17385 - 10, // IID17386 - 10, // IID17387 - 10, // IID17388 - 10, // IID17389 - 10, // IID17390 - 10, // IID17391 - 10, // IID17392 - 10, // IID17393 - 10, // IID17394 - 10, // IID17395 - 10, // IID17396 - 10, // IID17397 - 10, // IID17398 - 10, // IID17399 - 10, // IID17400 - 10, // IID17401 - 10, // IID17402 - 10, // IID17403 - 10, // IID17404 - 10, // IID17405 - 10, // IID17406 - 10, // IID17407 - 10, // IID17408 - 10, // IID17409 - 10, // IID17410 - 10, // IID17411 - 10, // IID17412 - 10, // IID17413 - 10, // IID17414 - 10, // IID17415 - 10, // IID17416 - 10, // IID17417 - 10, // IID17418 - 10, // IID17419 - 10, // IID17420 - 10, // IID17421 - 10, // IID17422 - 10, // IID17423 - 10, // IID17424 - 10, // IID17425 - 10, // IID17426 - 10, // IID17427 - 10, // IID17428 - 10, // IID17429 - 10, // IID17430 - 10, // IID17431 - 10, // IID17432 - 10, // IID17433 - 10, // IID17434 - 10, // IID17435 - 10, // IID17436 - 10, // IID17437 - 10, // IID17438 - 10, // IID17439 - 10, // IID17440 - 10, // IID17441 - 10, // IID17442 - 10, // IID17443 - 10, // IID17444 - 10, // IID17445 - 10, // IID17446 - 10, // IID17447 - 10, // IID17448 - 10, // IID17449 - 10, // IID17450 - 10, // IID17451 - 10, // IID17452 - 10, // IID17453 - 10, // IID17454 - 10, // IID17455 - 10, // IID17456 - 10, // IID17457 - 10, // IID17458 - 10, // IID17459 - 10, // IID17460 - 10, // IID17461 - 10, // IID17462 - 10, // IID17463 - 10, // IID17464 - 10, // IID17465 - 10, // IID17466 - 10, // IID17467 - 10, // IID17468 - 10, // IID17469 - 10, // IID17470 - 10, // IID17471 - 10, // IID17472 - 10, // IID17473 - 10, // IID17474 - 10, // IID17475 - 10, // IID17476 - 10, // IID17477 - 10, // IID17478 - 10, // IID17479 - 10, // IID17480 - 10, // IID17481 - 10, // IID17482 - 10, // IID17483 - 10, // IID17484 - 10, // IID17485 - 10, // IID17486 - 10, // IID17487 - 10, // IID17488 - 10, // IID17489 - 10, // IID17490 - 10, // IID17491 - 10, // IID17492 - 10, // IID17493 - 10, // IID17494 - 10, // IID17495 - 10, // IID17496 - 10, // IID17497 - 10, // IID17498 - 10, // IID17499 - 10, // IID17500 - 10, // IID17501 - 10, // IID17502 - 10, // IID17503 - 10, // IID17504 - 10, // IID17505 - 10, // IID17506 - 10, // IID17507 - 10, // IID17508 - 10, // IID17509 - 11, // IID17510 - 11, // IID17511 - 11, // IID17512 - 11, // IID17513 - 11, // IID17514 - 11, // IID17515 - 11, // IID17516 - 11, // IID17517 - 11, // IID17518 - 11, // IID17519 - 11, // IID17520 - 11, // IID17521 - 11, // IID17522 - 11, // IID17523 - 11, // IID17524 - 11, // IID17525 - 11, // IID17526 - 11, // IID17527 - 11, // IID17528 - 11, // IID17529 - 11, // IID17530 - 11, // IID17531 - 11, // IID17532 - 11, // IID17533 - 11, // IID17534 - 11, // IID17535 - 11, // IID17536 - 11, // IID17537 - 11, // IID17538 - 11, // IID17539 - 11, // IID17540 - 11, // IID17541 - 11, // IID17542 - 11, // IID17543 - 11, // IID17544 - 11, // IID17545 - 11, // IID17546 - 11, // IID17547 - 11, // IID17548 - 11, // IID17549 - 11, // IID17550 - 11, // IID17551 - 11, // IID17552 - 11, // IID17553 - 11, // IID17554 - 11, // IID17555 - 11, // IID17556 - 11, // IID17557 - 11, // IID17558 - 11, // IID17559 - 11, // IID17560 - 11, // IID17561 - 11, // IID17562 - 11, // IID17563 - 11, // IID17564 - 11, // IID17565 - 11, // IID17566 - 11, // IID17567 - 11, // IID17568 - 11, // IID17569 - 11, // IID17570 - 11, // IID17571 - 11, // IID17572 - 11, // IID17573 - 11, // IID17574 - 11, // IID17575 - 11, // IID17576 - 11, // IID17577 - 11, // IID17578 - 11, // IID17579 - 11, // IID17580 - 11, // IID17581 - 11, // IID17582 - 11, // IID17583 - 11, // IID17584 - 11, // IID17585 - 11, // IID17586 - 11, // IID17587 - 11, // IID17588 - 11, // IID17589 - 11, // IID17590 - 11, // IID17591 - 11, // IID17592 - 11, // IID17593 - 11, // IID17594 - 11, // IID17595 - 11, // IID17596 - 11, // IID17597 - 11, // IID17598 - 11, // IID17599 - 11, // IID17600 - 11, // IID17601 - 11, // IID17602 - 11, // IID17603 - 11, // IID17604 - 11, // IID17605 - 11, // IID17606 - 11, // IID17607 - 11, // IID17608 - 11, // IID17609 - 11, // IID17610 - 11, // IID17611 - 11, // IID17612 - 11, // IID17613 - 11, // IID17614 - 11, // IID17615 - 11, // IID17616 - 11, // IID17617 - 11, // IID17618 - 11, // IID17619 - 11, // IID17620 - 11, // IID17621 - 11, // IID17622 - 11, // IID17623 - 11, // IID17624 - 11, // IID17625 - 11, // IID17626 - 11, // IID17627 - 11, // IID17628 - 11, // IID17629 - 11, // IID17630 - 11, // IID17631 - 11, // IID17632 - 11, // IID17633 - 11, // IID17634 - 11, // IID17635 - 11, // IID17636 - 11, // IID17637 - 11, // IID17638 - 11, // IID17639 - 11, // IID17640 - 11, // IID17641 - 11, // IID17642 - 11, // IID17643 - 11, // IID17644 - 11, // IID17645 - 11, // IID17646 - 11, // IID17647 - 11, // IID17648 - 11, // IID17649 - 11, // IID17650 - 11, // IID17651 - 11, // IID17652 - 11, // IID17653 - 11, // IID17654 - 11, // IID17655 - 11, // IID17656 - 11, // IID17657 - 11, // IID17658 - 11, // IID17659 - 11, // IID17660 - 11, // IID17661 - 11, // IID17662 - 11, // IID17663 - 11, // IID17664 - 11, // IID17665 - 11, // IID17666 - 11, // IID17667 - 11, // IID17668 - 11, // IID17669 - 11, // IID17670 - 11, // IID17671 - 11, // IID17672 - 11, // IID17673 - 11, // IID17674 - 11, // IID17675 - 11, // IID17676 - 11, // IID17677 - 11, // IID17678 - 11, // IID17679 - 11, // IID17680 - 11, // IID17681 - 11, // IID17682 - 11, // IID17683 - 11, // IID17684 - 11, // IID17685 - 11, // IID17686 - 11, // IID17687 - 11, // IID17688 - 11, // IID17689 - 11, // IID17690 - 11, // IID17691 - 11, // IID17692 - 11, // IID17693 - 11, // IID17694 - 11, // IID17695 - 11, // IID17696 - 11, // IID17697 - 11, // IID17698 - 11, // IID17699 - 11, // IID17700 - 11, // IID17701 - 11, // IID17702 - 11, // IID17703 - 11, // IID17704 - 11, // IID17705 - 11, // IID17706 - 11, // IID17707 - 11, // IID17708 - 11, // IID17709 - 11, // IID17710 - 11, // IID17711 - 11, // IID17712 - 11, // IID17713 - 11, // IID17714 - 11, // IID17715 - 11, // IID17716 - 11, // IID17717 - 11, // IID17718 - 11, // IID17719 - 11, // IID17720 - 11, // IID17721 - 11, // IID17722 - 11, // IID17723 - 11, // IID17724 - 11, // IID17725 - 11, // IID17726 - 11, // IID17727 - 11, // IID17728 - 11, // IID17729 - 11, // IID17730 - 11, // IID17731 - 11, // IID17732 - 11, // IID17733 - 11, // IID17734 - 11, // IID17735 - 11, // IID17736 - 11, // IID17737 - 11, // IID17738 - 11, // IID17739 - 11, // IID17740 - 11, // IID17741 - 11, // IID17742 - 11, // IID17743 - 11, // IID17744 - 11, // IID17745 - 11, // IID17746 - 11, // IID17747 - 11, // IID17748 - 11, // IID17749 - 11, // IID17750 - 11, // IID17751 - 11, // IID17752 - 11, // IID17753 - 11, // IID17754 - 11, // IID17755 - 11, // IID17756 - 11, // IID17757 - 11, // IID17758 - 11, // IID17759 - 11, // IID17760 - 11, // IID17761 - 11, // IID17762 - 11, // IID17763 - 11, // IID17764 - 11, // IID17765 - 5, // IID17766 - 5, // IID17767 - 5, // IID17768 - 5, // IID17769 - 5, // IID17770 - 5, // IID17771 - 5, // IID17772 - 5, // IID17773 - 5, // IID17774 - 5, // IID17775 - 5, // IID17776 - 5, // IID17777 - 5, // IID17778 - 5, // IID17779 - 5, // IID17780 - 5, // IID17781 - 5, // IID17782 - 5, // IID17783 - 5, // IID17784 - 5, // IID17785 - 5, // IID17786 - 5, // IID17787 - 5, // IID17788 - 5, // IID17789 - 5, // IID17790 - 5, // IID17791 - 5, // IID17792 - 5, // IID17793 - 5, // IID17794 - 5, // IID17795 - 5, // IID17796 - 5, // IID17797 - 5, // IID17798 - 5, // IID17799 - 5, // IID17800 - 5, // IID17801 - 5, // IID17802 - 5, // IID17803 - 5, // IID17804 - 5, // IID17805 - 5, // IID17806 - 5, // IID17807 - 5, // IID17808 - 5, // IID17809 - 5, // IID17810 - 5, // IID17811 - 5, // IID17812 - 5, // IID17813 - 5, // IID17814 - 5, // IID17815 - 5, // IID17816 - 5, // IID17817 - 5, // IID17818 - 5, // IID17819 - 5, // IID17820 - 5, // IID17821 - 5, // IID17822 - 5, // IID17823 - 5, // IID17824 - 5, // IID17825 - 5, // IID17826 - 5, // IID17827 - 5, // IID17828 - 5, // IID17829 - 5, // IID17830 - 5, // IID17831 - 5, // IID17832 - 5, // IID17833 - 5, // IID17834 - 5, // IID17835 - 5, // IID17836 - 5, // IID17837 - 5, // IID17838 - 5, // IID17839 - 5, // IID17840 - 5, // IID17841 - 5, // IID17842 - 5, // IID17843 - 5, // IID17844 - 5, // IID17845 - 5, // IID17846 - 5, // IID17847 - 5, // IID17848 - 5, // IID17849 - 5, // IID17850 - 5, // IID17851 - 5, // IID17852 - 5, // IID17853 - 5, // IID17854 - 5, // IID17855 - 5, // IID17856 - 5, // IID17857 - 5, // IID17858 - 5, // IID17859 - 5, // IID17860 - 5, // IID17861 - 5, // IID17862 - 5, // IID17863 - 5, // IID17864 - 5, // IID17865 - 5, // IID17866 - 5, // IID17867 - 5, // IID17868 - 5, // IID17869 - 5, // IID17870 - 5, // IID17871 - 5, // IID17872 - 5, // IID17873 - 7, // IID17874 - 7, // IID17875 - 7, // IID17876 - 7, // IID17877 - 7, // IID17878 - 7, // IID17879 - 7, // IID17880 - 7, // IID17881 - 7, // IID17882 - 7, // IID17883 - 7, // IID17884 - 7, // IID17885 - 7, // IID17886 - 7, // IID17887 - 7, // IID17888 - 7, // IID17889 - 7, // IID17890 - 7, // IID17891 - 7, // IID17892 - 7, // IID17893 - 7, // IID17894 - 7, // IID17895 - 7, // IID17896 - 7, // IID17897 - 7, // IID17898 - 7, // IID17899 - 7, // IID17900 - 7, // IID17901 - 7, // IID17902 - 7, // IID17903 - 7, // IID17904 - 7, // IID17905 - 7, // IID17906 - 7, // IID17907 - 7, // IID17908 - 7, // IID17909 - 7, // IID17910 - 7, // IID17911 - 7, // IID17912 - 7, // IID17913 - 7, // IID17914 - 7, // IID17915 - 7, // IID17916 - 7, // IID17917 - 7, // IID17918 - 7, // IID17919 - 7, // IID17920 - 7, // IID17921 - 7, // IID17922 - 7, // IID17923 - 7, // IID17924 - 7, // IID17925 - 7, // IID17926 - 7, // IID17927 - 7, // IID17928 - 7, // IID17929 - 7, // IID17930 - 7, // IID17931 - 7, // IID17932 - 7, // IID17933 - 7, // IID17934 - 7, // IID17935 - 7, // IID17936 - 7, // IID17937 - 7, // IID17938 - 7, // IID17939 - 7, // IID17940 - 7, // IID17941 - 7, // IID17942 - 7, // IID17943 - 7, // IID17944 - 7, // IID17945 - 7, // IID17946 - 7, // IID17947 - 7, // IID17948 - 7, // IID17949 - 7, // IID17950 - 7, // IID17951 - 7, // IID17952 - 7, // IID17953 - 7, // IID17954 - 7, // IID17955 - 7, // IID17956 - 7, // IID17957 - 7, // IID17958 - 7, // IID17959 - 7, // IID17960 - 7, // IID17961 - 8, // IID17962 - 8, // IID17963 - 8, // IID17964 - 8, // IID17965 - 8, // IID17966 - 8, // IID17967 - 8, // IID17968 - 8, // IID17969 - 8, // IID17970 - 8, // IID17971 - 8, // IID17972 - 8, // IID17973 - 8, // IID17974 - 8, // IID17975 - 8, // IID17976 - 8, // IID17977 - 8, // IID17978 - 8, // IID17979 - 8, // IID17980 - 8, // IID17981 - 8, // IID17982 - 8, // IID17983 - 8, // IID17984 - 8, // IID17985 - 8, // IID17986 - 8, // IID17987 - 8, // IID17988 - 8, // IID17989 - 8, // IID17990 - 8, // IID17991 - 8, // IID17992 - 8, // IID17993 - 8, // IID17994 - 8, // IID17995 - 8, // IID17996 - 8, // IID17997 - 8, // IID17998 - 8, // IID17999 - 8, // IID18000 - 8, // IID18001 - 8, // IID18002 - 8, // IID18003 - 8, // IID18004 - 8, // IID18005 - 8, // IID18006 - 8, // IID18007 - 8, // IID18008 - 8, // IID18009 - 8, // IID18010 - 8, // IID18011 - 8, // IID18012 - 8, // IID18013 - 8, // IID18014 - 8, // IID18015 - 8, // IID18016 - 8, // IID18017 - 8, // IID18018 - 8, // IID18019 - 8, // IID18020 - 8, // IID18021 - 8, // IID18022 - 8, // IID18023 - 8, // IID18024 - 8, // IID18025 - 8, // IID18026 - 8, // IID18027 - 8, // IID18028 - 8, // IID18029 - 8, // IID18030 - 8, // IID18031 - 8, // IID18032 - 8, // IID18033 - 8, // IID18034 - 8, // IID18035 - 8, // IID18036 - 8, // IID18037 - 8, // IID18038 - 8, // IID18039 - 8, // IID18040 - 8, // IID18041 - 8, // IID18042 - 8, // IID18043 - 8, // IID18044 - 8, // IID18045 - 8, // IID18046 - 8, // IID18047 - 8, // IID18048 - 8, // IID18049 - 8, // IID18050 - 8, // IID18051 - 8, // IID18052 - 8, // IID18053 - 8, // IID18054 - 8, // IID18055 - 8, // IID18056 - 8, // IID18057 - 8, // IID18058 - 8, // IID18059 - 8, // IID18060 - 8, // IID18061 - 8, // IID18062 - 8, // IID18063 - 8, // IID18064 - 8, // IID18065 - 8, // IID18066 - 8, // IID18067 - 8, // IID18068 - 8, // IID18069 - 8, // IID18070 - 8, // IID18071 - 8, // IID18072 - 8, // IID18073 - 8, // IID18074 - 8, // IID18075 - 8, // IID18076 - 8, // IID18077 - 8, // IID18078 - 8, // IID18079 - 8, // IID18080 - 8, // IID18081 - 8, // IID18082 - 8, // IID18083 - 8, // IID18084 - 8, // IID18085 - 8, // IID18086 - 8, // IID18087 - 8, // IID18088 - 8, // IID18089 - 7, // IID18090 - 7, // IID18091 - 7, // IID18092 - 7, // IID18093 - 7, // IID18094 - 7, // IID18095 - 7, // IID18096 - 7, // IID18097 - 7, // IID18098 - 7, // IID18099 - 7, // IID18100 - 7, // IID18101 - 7, // IID18102 - 7, // IID18103 - 7, // IID18104 - 7, // IID18105 - 7, // IID18106 - 7, // IID18107 - 7, // IID18108 - 7, // IID18109 - 7, // IID18110 - 7, // IID18111 - 7, // IID18112 - 7, // IID18113 - 7, // IID18114 - 7, // IID18115 - 7, // IID18116 - 7, // IID18117 - 7, // IID18118 - 7, // IID18119 - 7, // IID18120 - 7, // IID18121 - 7, // IID18122 - 7, // IID18123 - 7, // IID18124 - 7, // IID18125 - 7, // IID18126 - 7, // IID18127 - 7, // IID18128 - 7, // IID18129 - 7, // IID18130 - 7, // IID18131 - 7, // IID18132 - 7, // IID18133 - 7, // IID18134 - 7, // IID18135 - 7, // IID18136 - 7, // IID18137 - 7, // IID18138 - 7, // IID18139 - 7, // IID18140 - 7, // IID18141 - 7, // IID18142 - 7, // IID18143 - 7, // IID18144 - 7, // IID18145 - 7, // IID18146 - 7, // IID18147 - 7, // IID18148 - 7, // IID18149 - 7, // IID18150 - 7, // IID18151 - 7, // IID18152 - 7, // IID18153 - 7, // IID18154 - 7, // IID18155 - 7, // IID18156 - 7, // IID18157 - 7, // IID18158 - 7, // IID18159 - 7, // IID18160 - 7, // IID18161 - 7, // IID18162 - 7, // IID18163 - 7, // IID18164 - 7, // IID18165 - 7, // IID18166 - 7, // IID18167 - 7, // IID18168 - 7, // IID18169 - 7, // IID18170 - 7, // IID18171 - 7, // IID18172 - 7, // IID18173 - 7, // IID18174 - 7, // IID18175 - 7, // IID18176 - 7, // IID18177 - 8, // IID18178 - 8, // IID18179 - 8, // IID18180 - 8, // IID18181 - 8, // IID18182 - 8, // IID18183 - 8, // IID18184 - 8, // IID18185 - 8, // IID18186 - 8, // IID18187 - 8, // IID18188 - 8, // IID18189 - 8, // IID18190 - 8, // IID18191 - 8, // IID18192 - 8, // IID18193 - 8, // IID18194 - 8, // IID18195 - 8, // IID18196 - 8, // IID18197 - 8, // IID18198 - 8, // IID18199 - 8, // IID18200 - 8, // IID18201 - 8, // IID18202 - 8, // IID18203 - 8, // IID18204 - 8, // IID18205 - 8, // IID18206 - 8, // IID18207 - 8, // IID18208 - 8, // IID18209 - 8, // IID18210 - 8, // IID18211 - 8, // IID18212 - 8, // IID18213 - 8, // IID18214 - 8, // IID18215 - 8, // IID18216 - 8, // IID18217 - 8, // IID18218 - 8, // IID18219 - 8, // IID18220 - 8, // IID18221 - 8, // IID18222 - 8, // IID18223 - 8, // IID18224 - 8, // IID18225 - 8, // IID18226 - 8, // IID18227 - 8, // IID18228 - 8, // IID18229 - 8, // IID18230 - 8, // IID18231 - 8, // IID18232 - 8, // IID18233 - 8, // IID18234 - 8, // IID18235 - 8, // IID18236 - 8, // IID18237 - 8, // IID18238 - 8, // IID18239 - 8, // IID18240 - 8, // IID18241 - 8, // IID18242 - 8, // IID18243 - 8, // IID18244 - 8, // IID18245 - 8, // IID18246 - 8, // IID18247 - 8, // IID18248 - 8, // IID18249 - 8, // IID18250 - 8, // IID18251 - 8, // IID18252 - 8, // IID18253 - 8, // IID18254 - 8, // IID18255 - 8, // IID18256 - 8, // IID18257 - 8, // IID18258 - 8, // IID18259 - 8, // IID18260 - 8, // IID18261 - 8, // IID18262 - 8, // IID18263 - 8, // IID18264 - 8, // IID18265 - 8, // IID18266 - 8, // IID18267 - 8, // IID18268 - 8, // IID18269 - 8, // IID18270 - 8, // IID18271 - 8, // IID18272 - 8, // IID18273 - 8, // IID18274 - 8, // IID18275 - 8, // IID18276 - 8, // IID18277 - 8, // IID18278 - 8, // IID18279 - 8, // IID18280 - 8, // IID18281 - 8, // IID18282 - 8, // IID18283 - 8, // IID18284 - 8, // IID18285 - 8, // IID18286 - 8, // IID18287 - 8, // IID18288 - 8, // IID18289 - 8, // IID18290 - 8, // IID18291 - 8, // IID18292 - 8, // IID18293 - 8, // IID18294 - 8, // IID18295 - 8, // IID18296 - 8, // IID18297 - 8, // IID18298 - 8, // IID18299 - 8, // IID18300 - 8, // IID18301 - 8, // IID18302 - 8, // IID18303 - 8, // IID18304 - 8, // IID18305 - 7, // IID18306 - 7, // IID18307 - 7, // IID18308 - 7, // IID18309 - 7, // IID18310 - 7, // IID18311 - 7, // IID18312 - 7, // IID18313 - 7, // IID18314 - 7, // IID18315 - 7, // IID18316 - 7, // IID18317 - 7, // IID18318 - 7, // IID18319 - 7, // IID18320 - 7, // IID18321 - 7, // IID18322 - 7, // IID18323 - 7, // IID18324 - 7, // IID18325 - 7, // IID18326 - 7, // IID18327 - 7, // IID18328 - 7, // IID18329 - 7, // IID18330 - 7, // IID18331 - 7, // IID18332 - 7, // IID18333 - 7, // IID18334 - 7, // IID18335 - 7, // IID18336 - 7, // IID18337 - 7, // IID18338 - 7, // IID18339 - 7, // IID18340 - 7, // IID18341 - 7, // IID18342 - 7, // IID18343 - 7, // IID18344 - 7, // IID18345 - 7, // IID18346 - 7, // IID18347 - 7, // IID18348 - 7, // IID18349 - 7, // IID18350 - 7, // IID18351 - 7, // IID18352 - 7, // IID18353 - 7, // IID18354 - 7, // IID18355 - 7, // IID18356 - 7, // IID18357 - 7, // IID18358 - 7, // IID18359 - 7, // IID18360 - 7, // IID18361 - 7, // IID18362 - 7, // IID18363 - 7, // IID18364 - 7, // IID18365 - 7, // IID18366 - 7, // IID18367 - 7, // IID18368 - 7, // IID18369 - 7, // IID18370 - 7, // IID18371 - 7, // IID18372 - 7, // IID18373 - 7, // IID18374 - 7, // IID18375 - 7, // IID18376 - 7, // IID18377 - 7, // IID18378 - 7, // IID18379 - 7, // IID18380 - 7, // IID18381 - 7, // IID18382 - 7, // IID18383 - 7, // IID18384 - 7, // IID18385 - 7, // IID18386 - 7, // IID18387 - 7, // IID18388 - 7, // IID18389 - 7, // IID18390 - 7, // IID18391 - 7, // IID18392 - 7, // IID18393 - 8, // IID18394 - 8, // IID18395 - 8, // IID18396 - 8, // IID18397 - 8, // IID18398 - 8, // IID18399 - 8, // IID18400 - 8, // IID18401 - 8, // IID18402 - 8, // IID18403 - 8, // IID18404 - 8, // IID18405 - 8, // IID18406 - 8, // IID18407 - 8, // IID18408 - 8, // IID18409 - 8, // IID18410 - 8, // IID18411 - 8, // IID18412 - 8, // IID18413 - 8, // IID18414 - 8, // IID18415 - 8, // IID18416 - 8, // IID18417 - 8, // IID18418 - 8, // IID18419 - 8, // IID18420 - 8, // IID18421 - 8, // IID18422 - 8, // IID18423 - 8, // IID18424 - 8, // IID18425 - 8, // IID18426 - 8, // IID18427 - 8, // IID18428 - 8, // IID18429 - 8, // IID18430 - 8, // IID18431 - 8, // IID18432 - 8, // IID18433 - 8, // IID18434 - 8, // IID18435 - 8, // IID18436 - 8, // IID18437 - 8, // IID18438 - 8, // IID18439 - 8, // IID18440 - 8, // IID18441 - 8, // IID18442 - 8, // IID18443 - 8, // IID18444 - 8, // IID18445 - 8, // IID18446 - 8, // IID18447 - 8, // IID18448 - 8, // IID18449 - 8, // IID18450 - 8, // IID18451 - 8, // IID18452 - 8, // IID18453 - 8, // IID18454 - 8, // IID18455 - 8, // IID18456 - 8, // IID18457 - 8, // IID18458 - 8, // IID18459 - 8, // IID18460 - 8, // IID18461 - 8, // IID18462 - 8, // IID18463 - 8, // IID18464 - 8, // IID18465 - 8, // IID18466 - 8, // IID18467 - 8, // IID18468 - 8, // IID18469 - 8, // IID18470 - 8, // IID18471 - 8, // IID18472 - 8, // IID18473 - 8, // IID18474 - 8, // IID18475 - 8, // IID18476 - 8, // IID18477 - 8, // IID18478 - 8, // IID18479 - 8, // IID18480 - 8, // IID18481 - 8, // IID18482 - 8, // IID18483 - 8, // IID18484 - 8, // IID18485 - 8, // IID18486 - 8, // IID18487 - 8, // IID18488 - 8, // IID18489 - 8, // IID18490 - 8, // IID18491 - 8, // IID18492 - 8, // IID18493 - 8, // IID18494 - 8, // IID18495 - 8, // IID18496 - 8, // IID18497 - 8, // IID18498 - 8, // IID18499 - 8, // IID18500 - 8, // IID18501 - 8, // IID18502 - 8, // IID18503 - 8, // IID18504 - 8, // IID18505 - 8, // IID18506 - 8, // IID18507 - 8, // IID18508 - 8, // IID18509 - 8, // IID18510 - 8, // IID18511 - 8, // IID18512 - 8, // IID18513 - 8, // IID18514 - 8, // IID18515 - 8, // IID18516 - 8, // IID18517 - 8, // IID18518 - 8, // IID18519 - 8, // IID18520 - 8, // IID18521 - 9, // IID18522 - 9, // IID18523 - 9, // IID18524 - 9, // IID18525 - 9, // IID18526 - 9, // IID18527 - 9, // IID18528 - 9, // IID18529 - 9, // IID18530 - 9, // IID18531 - 9, // IID18532 - 9, // IID18533 - 9, // IID18534 - 9, // IID18535 - 9, // IID18536 - 9, // IID18537 - 9, // IID18538 - 9, // IID18539 - 9, // IID18540 - 9, // IID18541 - 9, // IID18542 - 9, // IID18543 - 9, // IID18544 - 9, // IID18545 - 9, // IID18546 - 8, // IID18547 - 9, // IID18548 - 9, // IID18549 - 9, // IID18550 - 8, // IID18551 - 9, // IID18552 - 9, // IID18553 - 9, // IID18554 - 9, // IID18555 - 8, // IID18556 - 9, // IID18557 - 9, // IID18558 - 9, // IID18559 - 9, // IID18560 - 9, // IID18561 - 9, // IID18562 - 9, // IID18563 - 9, // IID18564 - 8, // IID18565 - 9, // IID18566 - 9, // IID18567 - 9, // IID18568 - 9, // IID18569 - 9, // IID18570 - 9, // IID18571 - 8, // IID18572 - 9, // IID18573 - 9, // IID18574 - 9, // IID18575 - 8, // IID18576 - 9, // IID18577 - 8, // IID18578 - 8, // IID18579 - 9, // IID18580 - 8, // IID18581 - 9, // IID18582 - 9, // IID18583 - 9, // IID18584 - 9, // IID18585 - 9, // IID18586 - 9, // IID18587 - 9, // IID18588 - 9, // IID18589 - 9, // IID18590 - 8, // IID18591 - 8, // IID18592 - 9, // IID18593 - 9, // IID18594 - 9, // IID18595 - 9, // IID18596 - 9, // IID18597 - 9, // IID18598 - 9, // IID18599 - 9, // IID18600 - 9, // IID18601 - 8, // IID18602 - 9, // IID18603 - 9, // IID18604 - 8, // IID18605 - 9, // IID18606 - 9, // IID18607 - 9, // IID18608 - 9, // IID18609 - 8, // IID18610 - 9, // IID18611 - 9, // IID18612 - 8, // IID18613 - 9, // IID18614 - 9, // IID18615 - 9, // IID18616 - 9, // IID18617 - 8, // IID18618 - 8, // IID18619 - 9, // IID18620 - 9, // IID18621 - 9, // IID18622 - 9, // IID18623 - 9, // IID18624 - 9, // IID18625 - 8, // IID18626 - 9, // IID18627 - 9, // IID18628 - 9, // IID18629 - 9, // IID18630 - 9, // IID18631 - 9, // IID18632 - 9, // IID18633 - 9, // IID18634 - 9, // IID18635 - 9, // IID18636 - 9, // IID18637 - 9, // IID18638 - 9, // IID18639 - 8, // IID18640 - 9, // IID18641 - 9, // IID18642 - 8, // IID18643 - 9, // IID18644 - 8, // IID18645 - 9, // IID18646 - 9, // IID18647 - 9, // IID18648 - 9, // IID18649 - 9, // IID18650 - 9, // IID18651 - 9, // IID18652 - 8, // IID18653 - 9, // IID18654 - 8, // IID18655 - 8, // IID18656 - 9, // IID18657 - 9, // IID18658 - 9, // IID18659 - 9, // IID18660 - 9, // IID18661 - 9, // IID18662 - 9, // IID18663 - 8, // IID18664 - 9, // IID18665 - 9, // IID18666 - 9, // IID18667 - 9, // IID18668 - 9, // IID18669 - 8, // IID18670 - 9, // IID18671 - 8, // IID18672 - 9, // IID18673 - 8, // IID18674 - 8, // IID18675 - 9, // IID18676 - 9, // IID18677 - 9, // IID18678 - 9, // IID18679 - 9, // IID18680 - 9, // IID18681 - 9, // IID18682 - 8, // IID18683 - 9, // IID18684 - 9, // IID18685 - 9, // IID18686 - 8, // IID18687 - 9, // IID18688 - 9, // IID18689 - 9, // IID18690 - 8, // IID18691 - 9, // IID18692 - 9, // IID18693 - 9, // IID18694 - 8, // IID18695 - 9, // IID18696 - 8, // IID18697 - 9, // IID18698 - 9, // IID18699 - 9, // IID18700 - 9, // IID18701 - 9, // IID18702 - 8, // IID18703 - 9, // IID18704 - 9, // IID18705 - 9, // IID18706 - 9, // IID18707 - 9, // IID18708 - 9, // IID18709 - 9, // IID18710 - 9, // IID18711 - 9, // IID18712 - 8, // IID18713 - 9, // IID18714 - 9, // IID18715 - 9, // IID18716 - 9, // IID18717 - 8, // IID18718 - 9, // IID18719 - 8, // IID18720 - 9, // IID18721 - 9, // IID18722 - 9, // IID18723 - 8, // IID18724 - 9, // IID18725 - 9, // IID18726 - 9, // IID18727 - 9, // IID18728 - 9, // IID18729 - 8, // IID18730 - 9, // IID18731 - 9, // IID18732 - 9, // IID18733 - 9, // IID18734 - 9, // IID18735 - 9, // IID18736 - 9, // IID18737 - 9, // IID18738 - 8, // IID18739 - 8, // IID18740 - 9, // IID18741 - 9, // IID18742 - 9, // IID18743 - 9, // IID18744 - 9, // IID18745 - 9, // IID18746 - 9, // IID18747 - 9, // IID18748 - 8, // IID18749 - 8, // IID18750 - 9, // IID18751 - 9, // IID18752 - 9, // IID18753 - 9, // IID18754 - 9, // IID18755 - 8, // IID18756 - 9, // IID18757 - 9, // IID18758 - 9, // IID18759 - 9, // IID18760 - 9, // IID18761 - 8, // IID18762 - 9, // IID18763 - 9, // IID18764 - 9, // IID18765 - 9, // IID18766 - 9, // IID18767 - 8, // IID18768 - 8, // IID18769 - 9, // IID18770 - 9, // IID18771 - 9, // IID18772 - 9, // IID18773 - 9, // IID18774 - 9, // IID18775 - 9, // IID18776 - 9, // IID18777 - 9, // IID18778 - 9, // IID18779 - 9, // IID18780 - 9, // IID18781 - 9, // IID18782 - 8, // IID18783 - 9, // IID18784 - 9, // IID18785 - 9, // IID18786 - 9, // IID18787 - 9, // IID18788 - 9, // IID18789 - 9, // IID18790 - 9, // IID18791 - 8, // IID18792 - 9, // IID18793 - 9, // IID18794 - 9, // IID18795 - 9, // IID18796 - 8, // IID18797 - 9, // IID18798 - 8, // IID18799 - 9, // IID18800 - 9, // IID18801 - 8, // IID18802 - 9, // IID18803 - 9, // IID18804 - 9, // IID18805 - 9, // IID18806 - 9, // IID18807 - 9, // IID18808 - 9, // IID18809 - 9, // IID18810 - 9, // IID18811 - 9, // IID18812 - 9, // IID18813 - 9, // IID18814 - 8, // IID18815 - 9, // IID18816 - 9, // IID18817 - 9, // IID18818 - 9, // IID18819 - 8, // IID18820 - 8, // IID18821 - 9, // IID18822 - 8, // IID18823 - 9, // IID18824 - 9, // IID18825 - 9, // IID18826 - 8, // IID18827 - 9, // IID18828 - 9, // IID18829 - 9, // IID18830 - 9, // IID18831 - 8, // IID18832 - 9, // IID18833 - 8, // IID18834 - 9, // IID18835 - 9, // IID18836 - 9, // IID18837 - 9, // IID18838 - 9, // IID18839 - 9, // IID18840 - 9, // IID18841 - 9, // IID18842 - 9, // IID18843 - 9, // IID18844 - 9, // IID18845 - 9, // IID18846 - 9, // IID18847 - 9, // IID18848 - 9, // IID18849 - 9, // IID18850 - 9, // IID18851 - 9, // IID18852 - 9, // IID18853 - 8, // IID18854 - 9, // IID18855 - 9, // IID18856 - 9, // IID18857 - 8, // IID18858 - 9, // IID18859 - 9, // IID18860 - 8, // IID18861 - 9, // IID18862 - 9, // IID18863 - 8, // IID18864 - 8, // IID18865 - 9, // IID18866 - 9, // IID18867 - 9, // IID18868 - 9, // IID18869 - 8, // IID18870 - 9, // IID18871 - 9, // IID18872 - 9, // IID18873 - 9, // IID18874 - 9, // IID18875 - 9, // IID18876 - 8, // IID18877 - 8, // IID18878 - 9, // IID18879 - 9, // IID18880 - 9, // IID18881 - 9, // IID18882 - 9, // IID18883 - 9, // IID18884 - 9, // IID18885 - 9, // IID18886 - 9, // IID18887 - 9, // IID18888 - 9, // IID18889 - 9, // IID18890 - 9, // IID18891 - 9, // IID18892 - 9, // IID18893 - 9, // IID18894 - 9, // IID18895 - 9, // IID18896 - 9, // IID18897 - 9, // IID18898 - 8, // IID18899 - 9, // IID18900 - 9, // IID18901 - 8, // IID18902 - 9, // IID18903 - 9, // IID18904 - 9, // IID18905 - 9, // IID18906 - 9, // IID18907 - 9, // IID18908 - 9, // IID18909 - 8, // IID18910 - 9, // IID18911 - 9, // IID18912 - 9, // IID18913 - 9, // IID18914 - 9, // IID18915 - 9, // IID18916 - 8, // IID18917 - 8, // IID18918 - 8, // IID18919 - 8, // IID18920 - 9, // IID18921 - 9, // IID18922 - 9, // IID18923 - 9, // IID18924 - 8, // IID18925 - 8, // IID18926 - 9, // IID18927 - 9, // IID18928 - 9, // IID18929 - 8, // IID18930 - 8, // IID18931 - 9, // IID18932 - 9, // IID18933 - 8, // IID18934 - 9, // IID18935 - 9, // IID18936 - 8, // IID18937 - 9, // IID18938 - 9, // IID18939 - 9, // IID18940 - 9, // IID18941 - 9, // IID18942 - 9, // IID18943 - 8, // IID18944 - 9, // IID18945 - 9, // IID18946 - 9, // IID18947 - 8, // IID18948 - 9, // IID18949 - 9, // IID18950 - 8, // IID18951 - 9, // IID18952 - 9, // IID18953 - 2, // IID18954 - 2, // IID18955 - 2, // IID18956 - 3, // IID18957 - 3, // IID18958 - 3, // IID18959 - 3, // IID18960 - 3, // IID18961 - 3, // IID18962 - 3, // IID18963 - 3, // IID18964 - 4, // IID18965 - 4, // IID18966 - 4, // IID18967 - 4, // IID18968 - 4, // IID18969 - 4, // IID18970 - 4, // IID18971 - 4, // IID18972 - 4, // IID18973 - 4, // IID18974 - 4, // IID18975 - 4, // IID18976 - 4, // IID18977 - 4, // IID18978 - 4, // IID18979 - 4, // IID18980 - 3, // IID18981 - 3, // IID18982 - 3, // IID18983 - 3, // IID18984 - 3, // IID18985 - 3, // IID18986 - 3, // IID18987 - 3, // IID18988 - 3, // IID18989 - 3, // IID18990 - 3, // IID18991 - 4, // IID18992 - 4, // IID18993 - 4, // IID18994 - 4, // IID18995 - 4, // IID18996 - 4, // IID18997 - 4, // IID18998 - 4, // IID18999 - 4, // IID19000 - 4, // IID19001 - 4, // IID19002 - 4, // IID19003 - 4, // IID19004 - 4, // IID19005 - 4, // IID19006 - 4, // IID19007 - 3, // IID19008 - 3, // IID19009 - 3, // IID19010 - 3, // IID19011 - 3, // IID19012 - 3, // IID19013 - 3, // IID19014 - 3, // IID19015 - 3, // IID19016 - 3, // IID19017 - 3, // IID19018 - 4, // IID19019 - 4, // IID19020 - 4, // IID19021 - 4, // IID19022 - 4, // IID19023 - 4, // IID19024 - 4, // IID19025 - 4, // IID19026 - 4, // IID19027 - 4, // IID19028 - 4, // IID19029 - 4, // IID19030 - 4, // IID19031 - 4, // IID19032 - 4, // IID19033 - 4, // IID19034 - 3, // IID19035 - 3, // IID19036 - 3, // IID19037 - 3, // IID19038 - 3, // IID19039 - 3, // IID19040 - 3, // IID19041 - 3, // IID19042 - 3, // IID19043 - 3, // IID19044 - 3, // IID19045 - 4, // IID19046 - 4, // IID19047 - 4, // IID19048 - 4, // IID19049 - 4, // IID19050 - 4, // IID19051 - 4, // IID19052 - 4, // IID19053 - 4, // IID19054 - 4, // IID19055 - 4, // IID19056 - 4, // IID19057 - 4, // IID19058 - 4, // IID19059 - 4, // IID19060 - 4, // IID19061 - 3, // IID19062 - 3, // IID19063 - 3, // IID19064 - 3, // IID19065 - 3, // IID19066 - 3, // IID19067 - 3, // IID19068 - 3, // IID19069 - 3, // IID19070 - 3, // IID19071 - 3, // IID19072 - 4, // IID19073 - 4, // IID19074 - 4, // IID19075 - 4, // IID19076 - 4, // IID19077 - 4, // IID19078 - 4, // IID19079 - 4, // IID19080 - 4, // IID19081 - 4, // IID19082 - 4, // IID19083 - 4, // IID19084 - 4, // IID19085 - 4, // IID19086 - 4, // IID19087 - 4, // IID19088 - 3, // IID19089 - 3, // IID19090 - 3, // IID19091 - 3, // IID19092 - 3, // IID19093 - 3, // IID19094 - 3, // IID19095 - 3, // IID19096 - 3, // IID19097 - 3, // IID19098 - 3, // IID19099 - 4, // IID19100 - 4, // IID19101 - 4, // IID19102 - 4, // IID19103 - 4, // IID19104 - 4, // IID19105 - 4, // IID19106 - 4, // IID19107 - 4, // IID19108 - 4, // IID19109 - 4, // IID19110 - 4, // IID19111 - 4, // IID19112 - 4, // IID19113 - 4, // IID19114 - 4, // IID19115 - 3, // IID19116 - 3, // IID19117 - 3, // IID19118 - 3, // IID19119 - 3, // IID19120 - 3, // IID19121 - 3, // IID19122 - 3, // IID19123 - 3, // IID19124 - 3, // IID19125 - 3, // IID19126 - 4, // IID19127 - 4, // IID19128 - 4, // IID19129 - 4, // IID19130 - 4, // IID19131 - 4, // IID19132 - 4, // IID19133 - 4, // IID19134 - 4, // IID19135 - 4, // IID19136 - 4, // IID19137 - 4, // IID19138 - 4, // IID19139 - 4, // IID19140 - 4, // IID19141 - 4, // IID19142 - 3, // IID19143 - 3, // IID19144 - 3, // IID19145 - 3, // IID19146 - 3, // IID19147 - 3, // IID19148 - 3, // IID19149 - 3, // IID19150 - 3, // IID19151 - 3, // IID19152 - 3, // IID19153 - 4, // IID19154 - 4, // IID19155 - 4, // IID19156 - 4, // IID19157 - 4, // IID19158 - 4, // IID19159 - 4, // IID19160 - 4, // IID19161 - 4, // IID19162 - 4, // IID19163 - 4, // IID19164 - 4, // IID19165 - 4, // IID19166 - 4, // IID19167 - 4, // IID19168 - 4, // IID19169 - 3, // IID19170 - 3, // IID19171 - 3, // IID19172 - 3, // IID19173 - 3, // IID19174 - 3, // IID19175 - 3, // IID19176 - 3, // IID19177 - 3, // IID19178 - 3, // IID19179 - 3, // IID19180 - 4, // IID19181 - 4, // IID19182 - 4, // IID19183 - 4, // IID19184 - 4, // IID19185 - 4, // IID19186 - 4, // IID19187 - 4, // IID19188 - 4, // IID19189 - 4, // IID19190 - 4, // IID19191 - 4, // IID19192 - 4, // IID19193 - 4, // IID19194 - 4, // IID19195 - 4, // IID19196 - 3, // IID19197 - 3, // IID19198 - 3, // IID19199 - 3, // IID19200 - 3, // IID19201 - 3, // IID19202 - 3, // IID19203 - 3, // IID19204 - 3, // IID19205 - 3, // IID19206 - 3, // IID19207 - 4, // IID19208 - 4, // IID19209 - 4, // IID19210 - 4, // IID19211 - 4, // IID19212 - 4, // IID19213 - 4, // IID19214 - 4, // IID19215 - 4, // IID19216 - 4, // IID19217 - 4, // IID19218 - 4, // IID19219 - 4, // IID19220 - 4, // IID19221 - 4, // IID19222 - 4, // IID19223 - 3, // IID19224 - 3, // IID19225 - 3, // IID19226 - 3, // IID19227 - 3, // IID19228 - 3, // IID19229 - 3, // IID19230 - 3, // IID19231 - 3, // IID19232 - 3, // IID19233 - 3, // IID19234 - 4, // IID19235 - 4, // IID19236 - 4, // IID19237 - 4, // IID19238 - 4, // IID19239 - 4, // IID19240 - 4, // IID19241 - 4, // IID19242 - 4, // IID19243 - 4, // IID19244 - 4, // IID19245 - 4, // IID19246 - 4, // IID19247 - 4, // IID19248 - 4, // IID19249 - 4, // IID19250 - 3, // IID19251 - 3, // IID19252 - 3, // IID19253 - 3, // IID19254 - 3, // IID19255 - 3, // IID19256 - 3, // IID19257 - 3, // IID19258 - 3, // IID19259 - 3, // IID19260 - 3, // IID19261 - 4, // IID19262 - 4, // IID19263 - 4, // IID19264 - 4, // IID19265 - 4, // IID19266 - 4, // IID19267 - 4, // IID19268 - 4, // IID19269 - 4, // IID19270 - 4, // IID19271 - 4, // IID19272 - 4, // IID19273 - 4, // IID19274 - 4, // IID19275 - 4, // IID19276 - 4, // IID19277 - 3, // IID19278 - 3, // IID19279 - 3, // IID19280 - 3, // IID19281 - 3, // IID19282 - 3, // IID19283 - 3, // IID19284 - 3, // IID19285 - 3, // IID19286 - 3, // IID19287 - 3, // IID19288 - 4, // IID19289 - 4, // IID19290 - 4, // IID19291 - 4, // IID19292 - 4, // IID19293 - 4, // IID19294 - 4, // IID19295 - 4, // IID19296 - 4, // IID19297 - 4, // IID19298 - 4, // IID19299 - 4, // IID19300 - 4, // IID19301 - 4, // IID19302 - 4, // IID19303 - 4, // IID19304 - 3, // IID19305 - 3, // IID19306 - 3, // IID19307 - 3, // IID19308 - 3, // IID19309 - 3, // IID19310 - 3, // IID19311 - 3, // IID19312 - 3, // IID19313 - 3, // IID19314 - 3, // IID19315 - 4, // IID19316 - 4, // IID19317 - 4, // IID19318 - 4, // IID19319 - 4, // IID19320 - 4, // IID19321 - 4, // IID19322 - 4, // IID19323 - 4, // IID19324 - 4, // IID19325 - 4, // IID19326 - 4, // IID19327 - 4, // IID19328 - 4, // IID19329 - 4, // IID19330 - 4, // IID19331 - 3, // IID19332 - 3, // IID19333 - 3, // IID19334 - 3, // IID19335 - 3, // IID19336 - 3, // IID19337 - 3, // IID19338 - 3, // IID19339 - 3, // IID19340 - 3, // IID19341 - 3, // IID19342 - 4, // IID19343 - 4, // IID19344 - 4, // IID19345 - 4, // IID19346 - 4, // IID19347 - 4, // IID19348 - 4, // IID19349 - 4, // IID19350 - 4, // IID19351 - 4, // IID19352 - 4, // IID19353 - 4, // IID19354 - 4, // IID19355 - 4, // IID19356 - 4, // IID19357 - 4, // IID19358 - 3, // IID19359 - 3, // IID19360 - 3, // IID19361 - 3, // IID19362 - 3, // IID19363 - 3, // IID19364 - 3, // IID19365 - 3, // IID19366 - 3, // IID19367 - 3, // IID19368 - 3, // IID19369 - 3, // IID19370 - 3, // IID19371 - 3, // IID19372 - 3, // IID19373 - 3, // IID19374 - 3, // IID19375 - 3, // IID19376 - 3, // IID19377 - 3, // IID19378 - 3, // IID19379 - 3, // IID19380 - 3, // IID19381 - 3, // IID19382 - 3, // IID19383 - 3, // IID19384 - 3, // IID19385 - 3, // IID19386 - 3, // IID19387 - 3, // IID19388 - 3, // IID19389 - 3, // IID19390 - 3, // IID19391 - 3, // IID19392 - 3, // IID19393 - 3, // IID19394 - 3, // IID19395 - 3, // IID19396 - 3, // IID19397 - 3, // IID19398 - 3, // IID19399 - 3, // IID19400 - 3, // IID19401 - 3, // IID19402 - 3, // IID19403 - 3, // IID19404 - 3, // IID19405 - 3, // IID19406 - 3, // IID19407 - 3, // IID19408 - 3, // IID19409 - 3, // IID19410 - 3, // IID19411 - 3, // IID19412 - 6, // IID19413 - 7, // IID19414 - 8, // IID19415 - 8, // IID19416 - 7, // IID19417 - 8, // IID19418 - 8, // IID19419 - 8, // IID19420 - 8, // IID19421 - 8, // IID19422 - 9, // IID19423 - 9, // IID19424 - 8, // IID19425 - 9, // IID19426 - 9, // IID19427 - 9, // IID19428 - 8, // IID19429 - 8, // IID19430 - 9, // IID19431 - 9, // IID19432 - 9, // IID19433 - 9, // IID19434 - 9, // IID19435 - 9, // IID19436 - 9, // IID19437 - 9, // IID19438 - 9, // IID19439 - 8, // IID19440 - 7, // IID19441 - 8, // IID19442 - 8, // IID19443 - 7, // IID19444 - 8, // IID19445 - 8, // IID19446 - 8, // IID19447 - 8, // IID19448 - 8, // IID19449 - 7, // IID19450 - 9, // IID19451 - 9, // IID19452 - 9, // IID19453 - 8, // IID19454 - 9, // IID19455 - 8, // IID19456 - 9, // IID19457 - 9, // IID19458 - 9, // IID19459 - 9, // IID19460 - 9, // IID19461 - 9, // IID19462 - 9, // IID19463 - 9, // IID19464 - 9, // IID19465 - 8, // IID19466 - 8, // IID19467 - 8, // IID19468 - 8, // IID19469 - 7, // IID19470 - 8, // IID19471 - 8, // IID19472 - 7, // IID19473 - 8, // IID19474 - 8, // IID19475 - 7, // IID19476 - 7, // IID19477 - 9, // IID19478 - 9, // IID19479 - 9, // IID19480 - 9, // IID19481 - 9, // IID19482 - 9, // IID19483 - 8, // IID19484 - 9, // IID19485 - 9, // IID19486 - 9, // IID19487 - 9, // IID19488 - 9, // IID19489 - 9, // IID19490 - 9, // IID19491 - 8, // IID19492 - 8, // IID19493 - 8, // IID19494 - 8, // IID19495 - 8, // IID19496 - 8, // IID19497 - 8, // IID19498 - 8, // IID19499 - 7, // IID19500 - 8, // IID19501 - 8, // IID19502 - 8, // IID19503 - 9, // IID19504 - 9, // IID19505 - 9, // IID19506 - 9, // IID19507 - 9, // IID19508 - 9, // IID19509 - 9, // IID19510 - 9, // IID19511 - 9, // IID19512 - 9, // IID19513 - 9, // IID19514 - 8, // IID19515 - 9, // IID19516 - 9, // IID19517 - 9, // IID19518 - 9, // IID19519 - 9, // IID19520 - 7, // IID19521 - 8, // IID19522 - 7, // IID19523 - 7, // IID19524 - 8, // IID19525 - 7, // IID19526 - 7, // IID19527 - 8, // IID19528 - 7, // IID19529 - 8, // IID19530 - 9, // IID19531 - 9, // IID19532 - 9, // IID19533 - 9, // IID19534 - 9, // IID19535 - 9, // IID19536 - 9, // IID19537 - 9, // IID19538 - 9, // IID19539 - 9, // IID19540 - 9, // IID19541 - 9, // IID19542 - 9, // IID19543 - 9, // IID19544 - 9, // IID19545 - 9, // IID19546 - 9, // IID19547 - 8, // IID19548 - 8, // IID19549 - 8, // IID19550 - 8, // IID19551 - 7, // IID19552 - 8, // IID19553 - 8, // IID19554 - 8, // IID19555 - 8, // IID19556 - 7, // IID19557 - 9, // IID19558 - 9, // IID19559 - 8, // IID19560 - 9, // IID19561 - 8, // IID19562 - 9, // IID19563 - 9, // IID19564 - 9, // IID19565 - 9, // IID19566 - 9, // IID19567 - 8, // IID19568 - 8, // IID19569 - 9, // IID19570 - 9, // IID19571 - 9, // IID19572 - 9, // IID19573 - 8, // IID19574 - 8, // IID19575 - 7, // IID19576 - 8, // IID19577 - 8, // IID19578 - 8, // IID19579 - 8, // IID19580 - 8, // IID19581 - 8, // IID19582 - 8, // IID19583 - 8, // IID19584 - 9, // IID19585 - 9, // IID19586 - 9, // IID19587 - 8, // IID19588 - 9, // IID19589 - 9, // IID19590 - 8, // IID19591 - 9, // IID19592 - 9, // IID19593 - 9, // IID19594 - 9, // IID19595 - 8, // IID19596 - 9, // IID19597 - 9, // IID19598 - 9, // IID19599 - 9, // IID19600 - 8, // IID19601 - 7, // IID19602 - 8, // IID19603 - 7, // IID19604 - 7, // IID19605 - 8, // IID19606 - 7, // IID19607 - 8, // IID19608 - 8, // IID19609 - 8, // IID19610 - 8, // IID19611 - 9, // IID19612 - 9, // IID19613 - 9, // IID19614 - 9, // IID19615 - 8, // IID19616 - 9, // IID19617 - 8, // IID19618 - 9, // IID19619 - 9, // IID19620 - 9, // IID19621 - 9, // IID19622 - 9, // IID19623 - 9, // IID19624 - 9, // IID19625 - 9, // IID19626 - 9, // IID19627 - 9, // IID19628 - 9, // IID19629 - 9, // IID19630 - 12, // IID19631 - 12, // IID19632 - 12, // IID19633 - 11, // IID19634 - 12, // IID19635 - 12, // IID19636 - 9, // IID19637 - 8, // IID19638 - 12, // IID19639 - 12, // IID19640 - 12, // IID19641 - 12, // IID19642 - 12, // IID19643 - 12, // IID19644 - 9, // IID19645 - 9, // IID19646 - 12, // IID19647 - 11, // IID19648 - 12, // IID19649 - 12, // IID19650 - 12, // IID19651 - 12, // IID19652 - 9, // IID19653 - 9, // IID19654 - 11, // IID19655 - 12, // IID19656 - 12, // IID19657 - 12, // IID19658 - 12, // IID19659 - 12, // IID19660 - 8, // IID19661 - 9, // IID19662 - 12, // IID19663 - 12, // IID19664 - 12, // IID19665 - 12, // IID19666 - 12, // IID19667 - 12, // IID19668 - 9, // IID19669 - 9, // IID19670 - 12, // IID19671 - 12, // IID19672 - 12, // IID19673 - 12, // IID19674 - 12, // IID19675 - 11, // IID19676 - 9, // IID19677 - 9, // IID19678 - 12, // IID19679 - 12, // IID19680 - 12, // IID19681 - 12, // IID19682 - 12, // IID19683 - 12, // IID19684 - 9, // IID19685 - 9, // IID19686 - 12, // IID19687 - 11, // IID19688 - 12, // IID19689 - 12, // IID19690 - 12, // IID19691 - 12, // IID19692 - 9, // IID19693 - 9, // IID19694 - 12, // IID19695 - 12, // IID19696 - 12, // IID19697 - 12, // IID19698 - 12, // IID19699 - 12, // IID19700 - 8, // IID19701 - 10, // IID19702 - 13, // IID19703 - 13, // IID19704 - 13, // IID19705 - 13, // IID19706 - 13, // IID19707 - 11, // IID19708 - 10, // IID19709 - 10, // IID19710 - 13, // IID19711 - 13, // IID19712 - 13, // IID19713 - 13, // IID19714 - 13, // IID19715 - 13, // IID19716 - 10, // IID19717 - 10, // IID19718 - 13, // IID19719 - 13, // IID19720 - 13, // IID19721 - 13, // IID19722 - 13, // IID19723 - 13, // IID19724 - 10, // IID19725 - 10, // IID19726 - 13, // IID19727 - 13, // IID19728 - 13, // IID19729 - 13, // IID19730 - 13, // IID19731 - 13, // IID19732 - 10, // IID19733 - 10, // IID19734 - 13, // IID19735 - 13, // IID19736 - 13, // IID19737 - 12, // IID19738 - 13, // IID19739 - 12, // IID19740 - 10, // IID19741 - 10, // IID19742 - 13, // IID19743 - 13, // IID19744 - 13, // IID19745 - 13, // IID19746 - 13, // IID19747 - 13, // IID19748 - 10, // IID19749 - 10, // IID19750 - 13, // IID19751 - 12, // IID19752 - 12, // IID19753 - 13, // IID19754 - 13, // IID19755 - 13, // IID19756 - 10, // IID19757 - 10, // IID19758 - 12, // IID19759 - 13, // IID19760 - 12, // IID19761 - 13, // IID19762 - 13, // IID19763 - 13, // IID19764 - 10, // IID19765 - 10, // IID19766 - 13, // IID19767 - 13, // IID19768 - 13, // IID19769 - 13, // IID19770 - 12, // IID19771 - 13, // IID19772 - 9, // IID19773 - 10, // IID19774 - 13, // IID19775 - 13, // IID19776 - 13, // IID19777 - 13, // IID19778 - 13, // IID19779 - 13, // IID19780 - 10, // IID19781 - 10, // IID19782 - 13, // IID19783 - 13, // IID19784 - 13, // IID19785 - 12, // IID19786 - 12, // IID19787 - 13, // IID19788 - 10, // IID19789 - 10, // IID19790 - 13, // IID19791 - 13, // IID19792 - 12, // IID19793 - 13, // IID19794 - 13, // IID19795 - 13, // IID19796 - 9, // IID19797 - 10, // IID19798 - 12, // IID19799 - 13, // IID19800 - 13, // IID19801 - 13, // IID19802 - 13, // IID19803 - 13, // IID19804 - 10, // IID19805 - 10, // IID19806 - 13, // IID19807 - 13, // IID19808 - 13, // IID19809 - 13, // IID19810 - 13, // IID19811 - 13, // IID19812 - 10, // IID19813 - 10, // IID19814 - 13, // IID19815 - 13, // IID19816 - 12, // IID19817 - 13, // IID19818 - 13, // IID19819 - 13, // IID19820 - 10, // IID19821 - 10, // IID19822 - 13, // IID19823 - 12, // IID19824 - 13, // IID19825 - 13, // IID19826 - 13, // IID19827 - 13, // IID19828 - 10, // IID19829 - 9, // IID19830 - 12, // IID19831 - 12, // IID19832 - 13, // IID19833 - 13, // IID19834 - 13, // IID19835 - 13, // IID19836 - 9, // IID19837 - 10, // IID19838 - 13, // IID19839 - 13, // IID19840 - 13, // IID19841 - 13, // IID19842 - 13, // IID19843 - 12, // IID19844 - 4, // IID19845 - 4, // IID19846 - 7, // IID19847 - 7, // IID19848 - 7, // IID19849 - 7, // IID19850 - 7, // IID19851 - 7, // IID19852 - 4, // IID19853 - 4, // IID19854 - 7, // IID19855 - 7, // IID19856 - 7, // IID19857 - 7, // IID19858 - 7, // IID19859 - 7, // IID19860 - 4, // IID19861 - 4, // IID19862 - 7, // IID19863 - 7, // IID19864 - 7, // IID19865 - 7, // IID19866 - 7, // IID19867 - 7, // IID19868 - 4, // IID19869 - 4, // IID19870 - 7, // IID19871 - 7, // IID19872 - 7, // IID19873 - 7, // IID19874 - 7, // IID19875 - 7, // IID19876 - 4, // IID19877 - 4, // IID19878 - 7, // IID19879 - 7, // IID19880 - 7, // IID19881 - 7, // IID19882 - 7, // IID19883 - 7, // IID19884 - 4, // IID19885 - 4, // IID19886 - 7, // IID19887 - 7, // IID19888 - 7, // IID19889 - 7, // IID19890 - 7, // IID19891 - 7, // IID19892 - 4, // IID19893 - 4, // IID19894 - 7, // IID19895 - 7, // IID19896 - 7, // IID19897 - 7, // IID19898 - 7, // IID19899 - 7, // IID19900 - 4, // IID19901 - 4, // IID19902 - 7, // IID19903 - 7, // IID19904 - 7, // IID19905 - 7, // IID19906 - 7, // IID19907 - 7, // IID19908 - 4, // IID19909 - 4, // IID19910 - 7, // IID19911 - 7, // IID19912 - 7, // IID19913 - 7, // IID19914 - 7, // IID19915 - 7, // IID19916 - 4, // IID19917 - 4, // IID19918 - 7, // IID19919 - 7, // IID19920 - 7, // IID19921 - 7, // IID19922 - 7, // IID19923 - 7, // IID19924 - 5, // IID19925 - 5, // IID19926 - 8, // IID19927 - 8, // IID19928 - 8, // IID19929 - 8, // IID19930 - 8, // IID19931 - 8, // IID19932 - 5, // IID19933 - 5, // IID19934 - 8, // IID19935 - 8, // IID19936 - 8, // IID19937 - 8, // IID19938 - 8, // IID19939 - 8, // IID19940 - 5, // IID19941 - 5, // IID19942 - 8, // IID19943 - 8, // IID19944 - 8, // IID19945 - 8, // IID19946 - 8, // IID19947 - 8, // IID19948 - 5, // IID19949 - 5, // IID19950 - 8, // IID19951 - 8, // IID19952 - 8, // IID19953 - 8, // IID19954 - 8, // IID19955 - 8, // IID19956 - 5, // IID19957 - 5, // IID19958 - 8, // IID19959 - 8, // IID19960 - 8, // IID19961 - 8, // IID19962 - 8, // IID19963 - 8, // IID19964 - 5, // IID19965 - 5, // IID19966 - 8, // IID19967 - 8, // IID19968 - 8, // IID19969 - 8, // IID19970 - 8, // IID19971 - 8, // IID19972 - 5, // IID19973 - 5, // IID19974 - 8, // IID19975 - 8, // IID19976 - 8, // IID19977 - 8, // IID19978 - 8, // IID19979 - 8, // IID19980 - 5, // IID19981 - 5, // IID19982 - 8, // IID19983 - 8, // IID19984 - 8, // IID19985 - 8, // IID19986 - 8, // IID19987 - 8, // IID19988 - 5, // IID19989 - 5, // IID19990 - 8, // IID19991 - 8, // IID19992 - 8, // IID19993 - 8, // IID19994 - 8, // IID19995 - 8, // IID19996 - 5, // IID19997 - 5, // IID19998 - 8, // IID19999 - 8, // IID20000 - 8, // IID20001 - 8, // IID20002 - 8, // IID20003 - 8, // IID20004 - 5, // IID20005 - 5, // IID20006 - 8, // IID20007 - 8, // IID20008 - 8, // IID20009 - 8, // IID20010 - 8, // IID20011 - 8, // IID20012 - 5, // IID20013 - 5, // IID20014 - 8, // IID20015 - 8, // IID20016 - 8, // IID20017 - 8, // IID20018 - 8, // IID20019 - 8, // IID20020 - 5, // IID20021 - 5, // IID20022 - 8, // IID20023 - 8, // IID20024 - 8, // IID20025 - 8, // IID20026 - 8, // IID20027 - 8, // IID20028 - 5, // IID20029 - 5, // IID20030 - 8, // IID20031 - 8, // IID20032 - 8, // IID20033 - 8, // IID20034 - 8, // IID20035 - 8, // IID20036 - 5, // IID20037 - 5, // IID20038 - 8, // IID20039 - 8, // IID20040 - 8, // IID20041 - 8, // IID20042 - 8, // IID20043 - 8, // IID20044 - 5, // IID20045 - 5, // IID20046 - 8, // IID20047 - 8, // IID20048 - 8, // IID20049 - 8, // IID20050 - 8, // IID20051 - 8, // IID20052 - 5, // IID20053 - 5, // IID20054 - 8, // IID20055 - 8, // IID20056 - 8, // IID20057 - 8, // IID20058 - 8, // IID20059 - 8, // IID20060 - 5, // IID20061 - 5, // IID20062 - 5, // IID20063 - 5, // IID20064 - 5, // IID20065 - 5, // IID20066 - 5, // IID20067 - 5, // IID20068 - 5, // IID20069 - 5, // IID20070 - 5, // IID20071 - 5, // IID20072 - 5, // IID20073 - 5, // IID20074 - 5, // IID20075 - 5, // IID20076 - 5, // IID20077 - 5, // IID20078 - 5, // IID20079 - 5, // IID20080 - 5, // IID20081 - 5, // IID20082 - 5, // IID20083 - 5, // IID20084 - 5, // IID20085 - 5, // IID20086 - 5, // IID20087 - 5, // IID20088 - 5, // IID20089 - 5, // IID20090 - 5, // IID20091 - 5, // IID20092 - 5, // IID20093 - 5, // IID20094 - 5, // IID20095 - 5, // IID20096 - 5, // IID20097 - 5, // IID20098 - 5, // IID20099 - 5, // IID20100 - 5, // IID20101 - 5, // IID20102 - 5, // IID20103 - 5, // IID20104 - 5, // IID20105 - 5, // IID20106 - 5, // IID20107 - 5, // IID20108 - 5, // IID20109 - 5, // IID20110 - 5, // IID20111 - 5, // IID20112 - 5, // IID20113 - 5, // IID20114 - 5, // IID20115 - 5, // IID20116 - 5, // IID20117 - 5, // IID20118 - 5, // IID20119 - 5, // IID20120 - 5, // IID20121 - 5, // IID20122 - 5, // IID20123 - 5, // IID20124 - 5, // IID20125 - 5, // IID20126 - 5, // IID20127 - 5, // IID20128 - 5, // IID20129 - 5, // IID20130 - 5, // IID20131 - 5, // IID20132 - 5, // IID20133 - 5, // IID20134 - 5, // IID20135 - 5, // IID20136 - 5, // IID20137 - 5, // IID20138 - 5, // IID20139 - 5, // IID20140 - 5, // IID20141 - 5, // IID20142 - 5, // IID20143 - 5, // IID20144 - 5, // IID20145 - 5, // IID20146 - 5, // IID20147 - 5, // IID20148 - 5, // IID20149 - 5, // IID20150 - 5, // IID20151 - 5, // IID20152 - 5, // IID20153 - 5, // IID20154 - 5, // IID20155 - 5, // IID20156 - 5, // IID20157 - 5, // IID20158 - 5, // IID20159 - 5, // IID20160 - 5, // IID20161 - 5, // IID20162 - 5, // IID20163 - 5, // IID20164 - 5, // IID20165 - 5, // IID20166 - 5, // IID20167 - 5, // IID20168 - 5, // IID20169 - 5, // IID20170 - 5, // IID20171 - 5, // IID20172 - 5, // IID20173 - 5, // IID20174 - 5, // IID20175 - 5, // IID20176 - 5, // IID20177 - 5, // IID20178 - 5, // IID20179 - 5, // IID20180 - 5, // IID20181 - 5, // IID20182 - 5, // IID20183 - 5, // IID20184 - 5, // IID20185 - 5, // IID20186 - 5, // IID20187 - 5, // IID20188 - 5, // IID20189 - 5, // IID20190 - 5, // IID20191 - 5, // IID20192 - 5, // IID20193 - 5, // IID20194 - 5, // IID20195 - 5, // IID20196 - 5, // IID20197 - 5, // IID20198 - 5, // IID20199 - 5, // IID20200 - 5, // IID20201 - 5, // IID20202 - 5, // IID20203 - 5, // IID20204 - 5, // IID20205 - 5, // IID20206 - 5, // IID20207 - 5, // IID20208 - 5, // IID20209 - 5, // IID20210 - 5, // IID20211 - 5, // IID20212 - 5, // IID20213 - 5, // IID20214 - 5, // IID20215 - 5, // IID20216 - 5, // IID20217 - 5, // IID20218 - 5, // IID20219 - 5, // IID20220 - 5, // IID20221 - 5, // IID20222 - 5, // IID20223 - 5, // IID20224 - 5, // IID20225 - 5, // IID20226 - 5, // IID20227 - 5, // IID20228 - 5, // IID20229 - 5, // IID20230 - 5, // IID20231 - 5, // IID20232 - 5, // IID20233 - 5, // IID20234 - 5, // IID20235 - 5, // IID20236 - 5, // IID20237 - 5, // IID20238 - 5, // IID20239 - 5, // IID20240 - 5, // IID20241 - 5, // IID20242 - 5, // IID20243 - 5, // IID20244 - 5, // IID20245 - 5, // IID20246 - 5, // IID20247 - 5, // IID20248 - 5, // IID20249 - 5, // IID20250 - 5, // IID20251 - 5, // IID20252 - 5, // IID20253 - 5, // IID20254 - 5, // IID20255 - 5, // IID20256 - 5, // IID20257 - 5, // IID20258 - 5, // IID20259 - 5, // IID20260 - 5, // IID20261 - 5, // IID20262 - 5, // IID20263 - 5, // IID20264 - 5, // IID20265 - 5, // IID20266 - 5, // IID20267 - 5, // IID20268 - 5, // IID20269 - 5, // IID20270 - 5, // IID20271 - 5, // IID20272 - 5, // IID20273 - 5, // IID20274 - 5, // IID20275 - 5, // IID20276 - 5, // IID20277 - 5, // IID20278 - 5, // IID20279 - 5, // IID20280 - 5, // IID20281 - 5, // IID20282 - 5, // IID20283 - 5, // IID20284 - 5, // IID20285 - 5, // IID20286 - 5, // IID20287 - 5, // IID20288 - 5, // IID20289 - 5, // IID20290 - 5, // IID20291 - 5, // IID20292 - 5, // IID20293 - 5, // IID20294 - 5, // IID20295 - 5, // IID20296 - 5, // IID20297 - 5, // IID20298 - 5, // IID20299 - 5, // IID20300 - 5, // IID20301 - 5, // IID20302 - 5, // IID20303 - 5, // IID20304 - 5, // IID20305 - 5, // IID20306 - 5, // IID20307 - 5, // IID20308 - 5, // IID20309 - 5, // IID20310 - 5, // IID20311 - 5, // IID20312 - 5, // IID20313 - 5, // IID20314 - 5, // IID20315 - 5, // IID20316 - 5, // IID20317 - 5, // IID20318 - 5, // IID20319 - 5, // IID20320 - 5, // IID20321 - 5, // IID20322 - 5, // IID20323 - 5, // IID20324 - 5, // IID20325 - 5, // IID20326 - 5, // IID20327 - 5, // IID20328 - 5, // IID20329 - 5, // IID20330 - 6, // IID20331 - 6, // IID20332 - 6, // IID20333 - 6, // IID20334 - 6, // IID20335 - 6, // IID20336 - 6, // IID20337 - 6, // IID20338 - 6, // IID20339 - 6, // IID20340 - 6, // IID20341 - 6, // IID20342 - 6, // IID20343 - 6, // IID20344 - 6, // IID20345 - 6, // IID20346 - 6, // IID20347 - 6, // IID20348 - 6, // IID20349 - 6, // IID20350 - 6, // IID20351 - 6, // IID20352 - 6, // IID20353 - 6, // IID20354 - 6, // IID20355 - 6, // IID20356 - 6, // IID20357 - 6, // IID20358 - 6, // IID20359 - 6, // IID20360 - 6, // IID20361 - 6, // IID20362 - 6, // IID20363 - 6, // IID20364 - 6, // IID20365 - 6, // IID20366 - 6, // IID20367 - 6, // IID20368 - 6, // IID20369 - 6, // IID20370 - 6, // IID20371 - 6, // IID20372 - 6, // IID20373 - 6, // IID20374 - 6, // IID20375 - 6, // IID20376 - 6, // IID20377 - 6, // IID20378 - 6, // IID20379 - 6, // IID20380 - 6, // IID20381 - 6, // IID20382 - 6, // IID20383 - 6, // IID20384 - 6, // IID20385 - 6, // IID20386 - 6, // IID20387 - 6, // IID20388 - 6, // IID20389 - 6, // IID20390 - 6, // IID20391 - 6, // IID20392 - 6, // IID20393 - 6, // IID20394 - 6, // IID20395 - 6, // IID20396 - 6, // IID20397 - 6, // IID20398 - 6, // IID20399 - 6, // IID20400 - 6, // IID20401 - 6, // IID20402 - 6, // IID20403 - 6, // IID20404 - 6, // IID20405 - 6, // IID20406 - 6, // IID20407 - 6, // IID20408 - 6, // IID20409 - 6, // IID20410 - 6, // IID20411 - 6, // IID20412 - 6, // IID20413 - 6, // IID20414 - 6, // IID20415 - 6, // IID20416 - 6, // IID20417 - 6, // IID20418 - 6, // IID20419 - 6, // IID20420 - 6, // IID20421 - 6, // IID20422 - 6, // IID20423 - 6, // IID20424 - 6, // IID20425 - 6, // IID20426 - 6, // IID20427 - 6, // IID20428 - 6, // IID20429 - 6, // IID20430 - 6, // IID20431 - 6, // IID20432 - 6, // IID20433 - 6, // IID20434 - 6, // IID20435 - 6, // IID20436 - 6, // IID20437 - 6, // IID20438 - 9, // IID20439 - 9, // IID20440 - 8, // IID20441 - 9, // IID20442 - 8, // IID20443 - 9, // IID20444 - 9, // IID20445 - 9, // IID20446 - 9, // IID20447 - 9, // IID20448 - 9, // IID20449 - 8, // IID20450 - 9, // IID20451 - 9, // IID20452 - 9, // IID20453 - 9, // IID20454 - 9, // IID20455 - 9, // IID20456 - 9, // IID20457 - 8, // IID20458 - 9, // IID20459 - 8, // IID20460 - 9, // IID20461 - 8, // IID20462 - 9, // IID20463 - 9, // IID20464 - 8, // IID20465 - 8, // IID20466 - 8, // IID20467 - 9, // IID20468 - 9, // IID20469 - 9, // IID20470 - 9, // IID20471 - 9, // IID20472 - 9, // IID20473 - 9, // IID20474 - 9, // IID20475 - 9, // IID20476 - 9, // IID20477 - 9, // IID20478 - 9, // IID20479 - 9, // IID20480 - 9, // IID20481 - 9, // IID20482 - 9, // IID20483 - 9, // IID20484 - 9, // IID20485 - 9, // IID20486 - 9, // IID20487 - 9, // IID20488 - 9, // IID20489 - 9, // IID20490 - 9, // IID20491 - 9, // IID20492 - 9, // IID20493 - 9, // IID20494 - 8, // IID20495 - 9, // IID20496 - 8, // IID20497 - 9, // IID20498 - 9, // IID20499 - 9, // IID20500 - 9, // IID20501 - 9, // IID20502 - 9, // IID20503 - 9, // IID20504 - 8, // IID20505 - 9, // IID20506 - 9, // IID20507 - 9, // IID20508 - 9, // IID20509 - 9, // IID20510 - 8, // IID20511 - 9, // IID20512 - 8, // IID20513 - 9, // IID20514 - 9, // IID20515 - 9, // IID20516 - 8, // IID20517 - 9, // IID20518 - 9, // IID20519 - 9, // IID20520 - 9, // IID20521 - 9, // IID20522 - 9, // IID20523 - 9, // IID20524 - 9, // IID20525 - 9, // IID20526 - 9, // IID20527 - 8, // IID20528 - 9, // IID20529 - 9, // IID20530 - 9, // IID20531 - 9, // IID20532 - 8, // IID20533 - 9, // IID20534 - 9, // IID20535 - 9, // IID20536 - 9, // IID20537 - 9, // IID20538 - 9, // IID20539 - 9, // IID20540 - 9, // IID20541 - 9, // IID20542 - 9, // IID20543 - 8, // IID20544 - 9, // IID20545 - 8, // IID20546 - 4, // IID20547 - 4, // IID20548 - 4, // IID20549 - 4, // IID20550 - 4, // IID20551 - 4, // IID20552 - 4, // IID20553 - 4, // IID20554 - 4, // IID20555 - 4, // IID20556 - 4, // IID20557 - 4, // IID20558 - 4, // IID20559 - 4, // IID20560 - 4, // IID20561 - 4, // IID20562 - 4, // IID20563 - 4, // IID20564 - 4, // IID20565 - 4, // IID20566 - 4, // IID20567 - 4, // IID20568 - 4, // IID20569 - 4, // IID20570 - 4, // IID20571 - 4, // IID20572 - 4, // IID20573 - 4, // IID20574 - 4, // IID20575 - 4, // IID20576 - 4, // IID20577 - 4, // IID20578 - 4, // IID20579 - 4, // IID20580 - 4, // IID20581 - 4, // IID20582 - 4, // IID20583 - 4, // IID20584 - 4, // IID20585 - 4, // IID20586 - 4, // IID20587 - 4, // IID20588 - 4, // IID20589 - 4, // IID20590 - 4, // IID20591 - 4, // IID20592 - 4, // IID20593 - 4, // IID20594 - 4, // IID20595 - 4, // IID20596 - 4, // IID20597 - 4, // IID20598 - 4, // IID20599 - 4, // IID20600 - 4, // IID20601 - 4, // IID20602 - 4, // IID20603 - 4, // IID20604 - 4, // IID20605 - 4, // IID20606 - 4, // IID20607 - 4, // IID20608 - 4, // IID20609 - 4, // IID20610 - 4, // IID20611 - 4, // IID20612 - 4, // IID20613 - 4, // IID20614 - 4, // IID20615 - 4, // IID20616 - 4, // IID20617 - 4, // IID20618 - 4, // IID20619 - 4, // IID20620 - 4, // IID20621 - 4, // IID20622 - 4, // IID20623 - 4, // IID20624 - 4, // IID20625 - 4, // IID20626 - 4, // IID20627 - 4, // IID20628 - 4, // IID20629 - 4, // IID20630 - 4, // IID20631 - 4, // IID20632 - 4, // IID20633 - 4, // IID20634 - 4, // IID20635 - 4, // IID20636 - 4, // IID20637 - 4, // IID20638 - 4, // IID20639 - 4, // IID20640 - 4, // IID20641 - 4, // IID20642 - 4, // IID20643 - 4, // IID20644 - 4, // IID20645 - 4, // IID20646 - 4, // IID20647 - 4, // IID20648 - 4, // IID20649 - 4, // IID20650 - 4, // IID20651 - 4, // IID20652 - 4, // IID20653 - 4, // IID20654 - 9, // IID20655 - 9, // IID20656 - 9, // IID20657 - 8, // IID20658 - 9, // IID20659 - 9, // IID20660 - 9, // IID20661 - 9, // IID20662 - 8, // IID20663 - 9, // IID20664 - 9, // IID20665 - 8, // IID20666 - 9, // IID20667 - 9, // IID20668 - 9, // IID20669 - 8, // IID20670 - 8, // IID20671 - 9, // IID20672 - 9, // IID20673 - 9, // IID20674 - 9, // IID20675 - 8, // IID20676 - 9, // IID20677 - 9, // IID20678 - 9, // IID20679 - 9, // IID20680 - 9, // IID20681 -#endif // _LP64 - }; - - static const char* insns_strs[] = - { - "__ shldl(rcx, rdx);", // IID0 - "__ shldl(rdx, rbx);", // IID1 -#ifdef _LP64 - "__ shldl(rbx, r8);", // IID2 - "__ shldl(r8, r9);", // IID3 - "__ shldl(r9, r10);", // IID4 - "__ shldl(r10, r11);", // IID5 - "__ shldl(r11, r12);", // IID6 - "__ shldl(r12, r13);", // IID7 - "__ shldl(r13, r14);", // IID8 - "__ shldl(r14, r15);", // IID9 - "__ shldl(r15, r16);", // IID10 - "__ shldl(r16, r17);", // IID11 - "__ shldl(r17, r18);", // IID12 - "__ shldl(r18, r19);", // IID13 - "__ shldl(r19, r20);", // IID14 - "__ shldl(r20, r21);", // IID15 - "__ shldl(r21, r22);", // IID16 - "__ shldl(r22, r23);", // IID17 - "__ shldl(r23, r24);", // IID18 - "__ shldl(r24, r25);", // IID19 - "__ shldl(r25, r26);", // IID20 - "__ shldl(r26, r27);", // IID21 - "__ shldl(r27, r28);", // IID22 - "__ shldl(r28, r29);", // IID23 - "__ shldl(r29, r30);", // IID24 - "__ shldl(r30, r31);", // IID25 - "__ shldl(r31, rcx);", // IID26 -#endif // _LP64 - "__ shrdl(rcx, rdx);", // IID27 - "__ shrdl(rdx, rbx);", // IID28 -#ifdef _LP64 - "__ shrdl(rbx, r8);", // IID29 - "__ shrdl(r8, r9);", // IID30 - "__ shrdl(r9, r10);", // IID31 - "__ shrdl(r10, r11);", // IID32 - "__ shrdl(r11, r12);", // IID33 - "__ shrdl(r12, r13);", // IID34 - "__ shrdl(r13, r14);", // IID35 - "__ shrdl(r14, r15);", // IID36 - "__ shrdl(r15, r16);", // IID37 - "__ shrdl(r16, r17);", // IID38 - "__ shrdl(r17, r18);", // IID39 - "__ shrdl(r18, r19);", // IID40 - "__ shrdl(r19, r20);", // IID41 - "__ shrdl(r20, r21);", // IID42 - "__ shrdl(r21, r22);", // IID43 - "__ shrdl(r22, r23);", // IID44 - "__ shrdl(r23, r24);", // IID45 - "__ shrdl(r24, r25);", // IID46 - "__ shrdl(r25, r26);", // IID47 - "__ shrdl(r26, r27);", // IID48 - "__ shrdl(r27, r28);", // IID49 - "__ shrdl(r28, r29);", // IID50 - "__ shrdl(r29, r30);", // IID51 - "__ shrdl(r30, r31);", // IID52 - "__ shrdl(r31, rcx);", // IID53 -#endif // _LP64 - "__ adcl(rcx, rdx);", // IID54 - "__ adcl(rdx, rbx);", // IID55 -#ifdef _LP64 - "__ adcl(rbx, r8);", // IID56 - "__ adcl(r8, r9);", // IID57 - "__ adcl(r9, r10);", // IID58 - "__ adcl(r10, r11);", // IID59 - "__ adcl(r11, r12);", // IID60 - "__ adcl(r12, r13);", // IID61 - "__ adcl(r13, r14);", // IID62 - "__ adcl(r14, r15);", // IID63 - "__ adcl(r15, r16);", // IID64 - "__ adcl(r16, r17);", // IID65 - "__ adcl(r17, r18);", // IID66 - "__ adcl(r18, r19);", // IID67 - "__ adcl(r19, r20);", // IID68 - "__ adcl(r20, r21);", // IID69 - "__ adcl(r21, r22);", // IID70 - "__ adcl(r22, r23);", // IID71 - "__ adcl(r23, r24);", // IID72 - "__ adcl(r24, r25);", // IID73 - "__ adcl(r25, r26);", // IID74 - "__ adcl(r26, r27);", // IID75 - "__ adcl(r27, r28);", // IID76 - "__ adcl(r28, r29);", // IID77 - "__ adcl(r29, r30);", // IID78 - "__ adcl(r30, r31);", // IID79 - "__ adcl(r31, rcx);", // IID80 -#endif // _LP64 - "__ cmpl(rcx, rdx);", // IID81 - "__ cmpl(rdx, rbx);", // IID82 -#ifdef _LP64 - "__ cmpl(rbx, r8);", // IID83 - "__ cmpl(r8, r9);", // IID84 - "__ cmpl(r9, r10);", // IID85 - "__ cmpl(r10, r11);", // IID86 - "__ cmpl(r11, r12);", // IID87 - "__ cmpl(r12, r13);", // IID88 - "__ cmpl(r13, r14);", // IID89 - "__ cmpl(r14, r15);", // IID90 - "__ cmpl(r15, r16);", // IID91 - "__ cmpl(r16, r17);", // IID92 - "__ cmpl(r17, r18);", // IID93 - "__ cmpl(r18, r19);", // IID94 - "__ cmpl(r19, r20);", // IID95 - "__ cmpl(r20, r21);", // IID96 - "__ cmpl(r21, r22);", // IID97 - "__ cmpl(r22, r23);", // IID98 - "__ cmpl(r23, r24);", // IID99 - "__ cmpl(r24, r25);", // IID100 - "__ cmpl(r25, r26);", // IID101 - "__ cmpl(r26, r27);", // IID102 - "__ cmpl(r27, r28);", // IID103 - "__ cmpl(r28, r29);", // IID104 - "__ cmpl(r29, r30);", // IID105 - "__ cmpl(r30, r31);", // IID106 - "__ cmpl(r31, rcx);", // IID107 -#endif // _LP64 - "__ imull(rcx, rdx);", // IID108 - "__ imull(rdx, rbx);", // IID109 -#ifdef _LP64 - "__ imull(rbx, r8);", // IID110 - "__ imull(r8, r9);", // IID111 - "__ imull(r9, r10);", // IID112 - "__ imull(r10, r11);", // IID113 - "__ imull(r11, r12);", // IID114 - "__ imull(r12, r13);", // IID115 - "__ imull(r13, r14);", // IID116 - "__ imull(r14, r15);", // IID117 - "__ imull(r15, r16);", // IID118 - "__ imull(r16, r17);", // IID119 - "__ imull(r17, r18);", // IID120 - "__ imull(r18, r19);", // IID121 - "__ imull(r19, r20);", // IID122 - "__ imull(r20, r21);", // IID123 - "__ imull(r21, r22);", // IID124 - "__ imull(r22, r23);", // IID125 - "__ imull(r23, r24);", // IID126 - "__ imull(r24, r25);", // IID127 - "__ imull(r25, r26);", // IID128 - "__ imull(r26, r27);", // IID129 - "__ imull(r27, r28);", // IID130 - "__ imull(r28, r29);", // IID131 - "__ imull(r29, r30);", // IID132 - "__ imull(r30, r31);", // IID133 - "__ imull(r31, rcx);", // IID134 -#endif // _LP64 - "__ popcntl(rcx, rdx);", // IID135 - "__ popcntl(rdx, rbx);", // IID136 -#ifdef _LP64 - "__ popcntl(rbx, r8);", // IID137 - "__ popcntl(r8, r9);", // IID138 - "__ popcntl(r9, r10);", // IID139 - "__ popcntl(r10, r11);", // IID140 - "__ popcntl(r11, r12);", // IID141 - "__ popcntl(r12, r13);", // IID142 - "__ popcntl(r13, r14);", // IID143 - "__ popcntl(r14, r15);", // IID144 - "__ popcntl(r15, r16);", // IID145 - "__ popcntl(r16, r17);", // IID146 - "__ popcntl(r17, r18);", // IID147 - "__ popcntl(r18, r19);", // IID148 - "__ popcntl(r19, r20);", // IID149 - "__ popcntl(r20, r21);", // IID150 - "__ popcntl(r21, r22);", // IID151 - "__ popcntl(r22, r23);", // IID152 - "__ popcntl(r23, r24);", // IID153 - "__ popcntl(r24, r25);", // IID154 - "__ popcntl(r25, r26);", // IID155 - "__ popcntl(r26, r27);", // IID156 - "__ popcntl(r27, r28);", // IID157 - "__ popcntl(r28, r29);", // IID158 - "__ popcntl(r29, r30);", // IID159 - "__ popcntl(r30, r31);", // IID160 - "__ popcntl(r31, rcx);", // IID161 -#endif // _LP64 - "__ sbbl(rcx, rdx);", // IID162 - "__ sbbl(rdx, rbx);", // IID163 -#ifdef _LP64 - "__ sbbl(rbx, r8);", // IID164 - "__ sbbl(r8, r9);", // IID165 - "__ sbbl(r9, r10);", // IID166 - "__ sbbl(r10, r11);", // IID167 - "__ sbbl(r11, r12);", // IID168 - "__ sbbl(r12, r13);", // IID169 - "__ sbbl(r13, r14);", // IID170 - "__ sbbl(r14, r15);", // IID171 - "__ sbbl(r15, r16);", // IID172 - "__ sbbl(r16, r17);", // IID173 - "__ sbbl(r17, r18);", // IID174 - "__ sbbl(r18, r19);", // IID175 - "__ sbbl(r19, r20);", // IID176 - "__ sbbl(r20, r21);", // IID177 - "__ sbbl(r21, r22);", // IID178 - "__ sbbl(r22, r23);", // IID179 - "__ sbbl(r23, r24);", // IID180 - "__ sbbl(r24, r25);", // IID181 - "__ sbbl(r25, r26);", // IID182 - "__ sbbl(r26, r27);", // IID183 - "__ sbbl(r27, r28);", // IID184 - "__ sbbl(r28, r29);", // IID185 - "__ sbbl(r29, r30);", // IID186 - "__ sbbl(r30, r31);", // IID187 - "__ sbbl(r31, rcx);", // IID188 -#endif // _LP64 - "__ subl(rcx, rdx);", // IID189 - "__ subl(rdx, rbx);", // IID190 -#ifdef _LP64 - "__ subl(rbx, r8);", // IID191 - "__ subl(r8, r9);", // IID192 - "__ subl(r9, r10);", // IID193 - "__ subl(r10, r11);", // IID194 - "__ subl(r11, r12);", // IID195 - "__ subl(r12, r13);", // IID196 - "__ subl(r13, r14);", // IID197 - "__ subl(r14, r15);", // IID198 - "__ subl(r15, r16);", // IID199 - "__ subl(r16, r17);", // IID200 - "__ subl(r17, r18);", // IID201 - "__ subl(r18, r19);", // IID202 - "__ subl(r19, r20);", // IID203 - "__ subl(r20, r21);", // IID204 - "__ subl(r21, r22);", // IID205 - "__ subl(r22, r23);", // IID206 - "__ subl(r23, r24);", // IID207 - "__ subl(r24, r25);", // IID208 - "__ subl(r25, r26);", // IID209 - "__ subl(r26, r27);", // IID210 - "__ subl(r27, r28);", // IID211 - "__ subl(r28, r29);", // IID212 - "__ subl(r29, r30);", // IID213 - "__ subl(r30, r31);", // IID214 - "__ subl(r31, rcx);", // IID215 -#endif // _LP64 - "__ tzcntl(rcx, rdx);", // IID216 - "__ tzcntl(rdx, rbx);", // IID217 -#ifdef _LP64 - "__ tzcntl(rbx, r8);", // IID218 - "__ tzcntl(r8, r9);", // IID219 - "__ tzcntl(r9, r10);", // IID220 - "__ tzcntl(r10, r11);", // IID221 - "__ tzcntl(r11, r12);", // IID222 - "__ tzcntl(r12, r13);", // IID223 - "__ tzcntl(r13, r14);", // IID224 - "__ tzcntl(r14, r15);", // IID225 - "__ tzcntl(r15, r16);", // IID226 - "__ tzcntl(r16, r17);", // IID227 - "__ tzcntl(r17, r18);", // IID228 - "__ tzcntl(r18, r19);", // IID229 - "__ tzcntl(r19, r20);", // IID230 - "__ tzcntl(r20, r21);", // IID231 - "__ tzcntl(r21, r22);", // IID232 - "__ tzcntl(r22, r23);", // IID233 - "__ tzcntl(r23, r24);", // IID234 - "__ tzcntl(r24, r25);", // IID235 - "__ tzcntl(r25, r26);", // IID236 - "__ tzcntl(r26, r27);", // IID237 - "__ tzcntl(r27, r28);", // IID238 - "__ tzcntl(r28, r29);", // IID239 - "__ tzcntl(r29, r30);", // IID240 - "__ tzcntl(r30, r31);", // IID241 - "__ tzcntl(r31, rcx);", // IID242 -#endif // _LP64 - "__ lzcntl(rcx, rdx);", // IID243 - "__ lzcntl(rdx, rbx);", // IID244 -#ifdef _LP64 - "__ lzcntl(rbx, r8);", // IID245 - "__ lzcntl(r8, r9);", // IID246 - "__ lzcntl(r9, r10);", // IID247 - "__ lzcntl(r10, r11);", // IID248 - "__ lzcntl(r11, r12);", // IID249 - "__ lzcntl(r12, r13);", // IID250 - "__ lzcntl(r13, r14);", // IID251 - "__ lzcntl(r14, r15);", // IID252 - "__ lzcntl(r15, r16);", // IID253 - "__ lzcntl(r16, r17);", // IID254 - "__ lzcntl(r17, r18);", // IID255 - "__ lzcntl(r18, r19);", // IID256 - "__ lzcntl(r19, r20);", // IID257 - "__ lzcntl(r20, r21);", // IID258 - "__ lzcntl(r21, r22);", // IID259 - "__ lzcntl(r22, r23);", // IID260 - "__ lzcntl(r23, r24);", // IID261 - "__ lzcntl(r24, r25);", // IID262 - "__ lzcntl(r25, r26);", // IID263 - "__ lzcntl(r26, r27);", // IID264 - "__ lzcntl(r27, r28);", // IID265 - "__ lzcntl(r28, r29);", // IID266 - "__ lzcntl(r29, r30);", // IID267 - "__ lzcntl(r30, r31);", // IID268 - "__ lzcntl(r31, rcx);", // IID269 -#endif // _LP64 - "__ addl(rcx, rdx);", // IID270 - "__ addl(rdx, rbx);", // IID271 -#ifdef _LP64 - "__ addl(rbx, r8);", // IID272 - "__ addl(r8, r9);", // IID273 - "__ addl(r9, r10);", // IID274 - "__ addl(r10, r11);", // IID275 - "__ addl(r11, r12);", // IID276 - "__ addl(r12, r13);", // IID277 - "__ addl(r13, r14);", // IID278 - "__ addl(r14, r15);", // IID279 - "__ addl(r15, r16);", // IID280 - "__ addl(r16, r17);", // IID281 - "__ addl(r17, r18);", // IID282 - "__ addl(r18, r19);", // IID283 - "__ addl(r19, r20);", // IID284 - "__ addl(r20, r21);", // IID285 - "__ addl(r21, r22);", // IID286 - "__ addl(r22, r23);", // IID287 - "__ addl(r23, r24);", // IID288 - "__ addl(r24, r25);", // IID289 - "__ addl(r25, r26);", // IID290 - "__ addl(r26, r27);", // IID291 - "__ addl(r27, r28);", // IID292 - "__ addl(r28, r29);", // IID293 - "__ addl(r29, r30);", // IID294 - "__ addl(r30, r31);", // IID295 - "__ addl(r31, rcx);", // IID296 -#endif // _LP64 - "__ andl(rcx, rdx);", // IID297 - "__ andl(rdx, rbx);", // IID298 -#ifdef _LP64 - "__ andl(rbx, r8);", // IID299 - "__ andl(r8, r9);", // IID300 - "__ andl(r9, r10);", // IID301 - "__ andl(r10, r11);", // IID302 - "__ andl(r11, r12);", // IID303 - "__ andl(r12, r13);", // IID304 - "__ andl(r13, r14);", // IID305 - "__ andl(r14, r15);", // IID306 - "__ andl(r15, r16);", // IID307 - "__ andl(r16, r17);", // IID308 - "__ andl(r17, r18);", // IID309 - "__ andl(r18, r19);", // IID310 - "__ andl(r19, r20);", // IID311 - "__ andl(r20, r21);", // IID312 - "__ andl(r21, r22);", // IID313 - "__ andl(r22, r23);", // IID314 - "__ andl(r23, r24);", // IID315 - "__ andl(r24, r25);", // IID316 - "__ andl(r25, r26);", // IID317 - "__ andl(r26, r27);", // IID318 - "__ andl(r27, r28);", // IID319 - "__ andl(r28, r29);", // IID320 - "__ andl(r29, r30);", // IID321 - "__ andl(r30, r31);", // IID322 - "__ andl(r31, rcx);", // IID323 -#endif // _LP64 - "__ orl(rcx, rdx);", // IID324 - "__ orl(rdx, rbx);", // IID325 -#ifdef _LP64 - "__ orl(rbx, r8);", // IID326 - "__ orl(r8, r9);", // IID327 - "__ orl(r9, r10);", // IID328 - "__ orl(r10, r11);", // IID329 - "__ orl(r11, r12);", // IID330 - "__ orl(r12, r13);", // IID331 - "__ orl(r13, r14);", // IID332 - "__ orl(r14, r15);", // IID333 - "__ orl(r15, r16);", // IID334 - "__ orl(r16, r17);", // IID335 - "__ orl(r17, r18);", // IID336 - "__ orl(r18, r19);", // IID337 - "__ orl(r19, r20);", // IID338 - "__ orl(r20, r21);", // IID339 - "__ orl(r21, r22);", // IID340 - "__ orl(r22, r23);", // IID341 - "__ orl(r23, r24);", // IID342 - "__ orl(r24, r25);", // IID343 - "__ orl(r25, r26);", // IID344 - "__ orl(r26, r27);", // IID345 - "__ orl(r27, r28);", // IID346 - "__ orl(r28, r29);", // IID347 - "__ orl(r29, r30);", // IID348 - "__ orl(r30, r31);", // IID349 - "__ orl(r31, rcx);", // IID350 -#endif // _LP64 - "__ xorl(rcx, rdx);", // IID351 - "__ xorl(rdx, rbx);", // IID352 -#ifdef _LP64 - "__ xorl(rbx, r8);", // IID353 - "__ xorl(r8, r9);", // IID354 - "__ xorl(r9, r10);", // IID355 - "__ xorl(r10, r11);", // IID356 - "__ xorl(r11, r12);", // IID357 - "__ xorl(r12, r13);", // IID358 - "__ xorl(r13, r14);", // IID359 - "__ xorl(r14, r15);", // IID360 - "__ xorl(r15, r16);", // IID361 - "__ xorl(r16, r17);", // IID362 - "__ xorl(r17, r18);", // IID363 - "__ xorl(r18, r19);", // IID364 - "__ xorl(r19, r20);", // IID365 - "__ xorl(r20, r21);", // IID366 - "__ xorl(r21, r22);", // IID367 - "__ xorl(r22, r23);", // IID368 - "__ xorl(r23, r24);", // IID369 - "__ xorl(r24, r25);", // IID370 - "__ xorl(r25, r26);", // IID371 - "__ xorl(r26, r27);", // IID372 - "__ xorl(r27, r28);", // IID373 - "__ xorl(r28, r29);", // IID374 - "__ xorl(r29, r30);", // IID375 - "__ xorl(r30, r31);", // IID376 - "__ xorl(r31, rcx);", // IID377 -#endif // _LP64 - "__ movl(rcx, rdx);", // IID378 - "__ movl(rdx, rbx);", // IID379 -#ifdef _LP64 - "__ movl(rbx, r8);", // IID380 - "__ movl(r8, r9);", // IID381 - "__ movl(r9, r10);", // IID382 - "__ movl(r10, r11);", // IID383 - "__ movl(r11, r12);", // IID384 - "__ movl(r12, r13);", // IID385 - "__ movl(r13, r14);", // IID386 - "__ movl(r14, r15);", // IID387 - "__ movl(r15, r16);", // IID388 - "__ movl(r16, r17);", // IID389 - "__ movl(r17, r18);", // IID390 - "__ movl(r18, r19);", // IID391 - "__ movl(r19, r20);", // IID392 - "__ movl(r20, r21);", // IID393 - "__ movl(r21, r22);", // IID394 - "__ movl(r22, r23);", // IID395 - "__ movl(r23, r24);", // IID396 - "__ movl(r24, r25);", // IID397 - "__ movl(r25, r26);", // IID398 - "__ movl(r26, r27);", // IID399 - "__ movl(r27, r28);", // IID400 - "__ movl(r28, r29);", // IID401 - "__ movl(r29, r30);", // IID402 - "__ movl(r30, r31);", // IID403 - "__ movl(r31, rcx);", // IID404 -#endif // _LP64 - "__ bsfl(rcx, rdx);", // IID405 - "__ bsfl(rdx, rbx);", // IID406 -#ifdef _LP64 - "__ bsfl(rbx, r8);", // IID407 - "__ bsfl(r8, r9);", // IID408 - "__ bsfl(r9, r10);", // IID409 - "__ bsfl(r10, r11);", // IID410 - "__ bsfl(r11, r12);", // IID411 - "__ bsfl(r12, r13);", // IID412 - "__ bsfl(r13, r14);", // IID413 - "__ bsfl(r14, r15);", // IID414 - "__ bsfl(r15, r16);", // IID415 - "__ bsfl(r16, r17);", // IID416 - "__ bsfl(r17, r18);", // IID417 - "__ bsfl(r18, r19);", // IID418 - "__ bsfl(r19, r20);", // IID419 - "__ bsfl(r20, r21);", // IID420 - "__ bsfl(r21, r22);", // IID421 - "__ bsfl(r22, r23);", // IID422 - "__ bsfl(r23, r24);", // IID423 - "__ bsfl(r24, r25);", // IID424 - "__ bsfl(r25, r26);", // IID425 - "__ bsfl(r26, r27);", // IID426 - "__ bsfl(r27, r28);", // IID427 - "__ bsfl(r28, r29);", // IID428 - "__ bsfl(r29, r30);", // IID429 - "__ bsfl(r30, r31);", // IID430 - "__ bsfl(r31, rcx);", // IID431 -#endif // _LP64 - "__ bsrl(rcx, rdx);", // IID432 - "__ bsrl(rdx, rbx);", // IID433 -#ifdef _LP64 - "__ bsrl(rbx, r8);", // IID434 - "__ bsrl(r8, r9);", // IID435 - "__ bsrl(r9, r10);", // IID436 - "__ bsrl(r10, r11);", // IID437 - "__ bsrl(r11, r12);", // IID438 - "__ bsrl(r12, r13);", // IID439 - "__ bsrl(r13, r14);", // IID440 - "__ bsrl(r14, r15);", // IID441 - "__ bsrl(r15, r16);", // IID442 - "__ bsrl(r16, r17);", // IID443 - "__ bsrl(r17, r18);", // IID444 - "__ bsrl(r18, r19);", // IID445 - "__ bsrl(r19, r20);", // IID446 - "__ bsrl(r20, r21);", // IID447 - "__ bsrl(r21, r22);", // IID448 - "__ bsrl(r22, r23);", // IID449 - "__ bsrl(r23, r24);", // IID450 - "__ bsrl(r24, r25);", // IID451 - "__ bsrl(r25, r26);", // IID452 - "__ bsrl(r26, r27);", // IID453 - "__ bsrl(r27, r28);", // IID454 - "__ bsrl(r28, r29);", // IID455 - "__ bsrl(r29, r30);", // IID456 - "__ bsrl(r30, r31);", // IID457 - "__ bsrl(r31, rcx);", // IID458 -#endif // _LP64 - "__ xchgl(rcx, rdx);", // IID459 - "__ xchgl(rdx, rbx);", // IID460 -#ifdef _LP64 - "__ xchgl(rbx, r8);", // IID461 - "__ xchgl(r8, r9);", // IID462 - "__ xchgl(r9, r10);", // IID463 - "__ xchgl(r10, r11);", // IID464 - "__ xchgl(r11, r12);", // IID465 - "__ xchgl(r12, r13);", // IID466 - "__ xchgl(r13, r14);", // IID467 - "__ xchgl(r14, r15);", // IID468 - "__ xchgl(r15, r16);", // IID469 - "__ xchgl(r16, r17);", // IID470 - "__ xchgl(r17, r18);", // IID471 - "__ xchgl(r18, r19);", // IID472 - "__ xchgl(r19, r20);", // IID473 - "__ xchgl(r20, r21);", // IID474 - "__ xchgl(r21, r22);", // IID475 - "__ xchgl(r22, r23);", // IID476 - "__ xchgl(r23, r24);", // IID477 - "__ xchgl(r24, r25);", // IID478 - "__ xchgl(r25, r26);", // IID479 - "__ xchgl(r26, r27);", // IID480 - "__ xchgl(r27, r28);", // IID481 - "__ xchgl(r28, r29);", // IID482 - "__ xchgl(r29, r30);", // IID483 - "__ xchgl(r30, r31);", // IID484 - "__ xchgl(r31, rcx);", // IID485 -#endif // _LP64 - "__ testl(rcx, rdx);", // IID486 - "__ testl(rdx, rbx);", // IID487 -#ifdef _LP64 - "__ testl(rbx, r8);", // IID488 - "__ testl(r8, r9);", // IID489 - "__ testl(r9, r10);", // IID490 - "__ testl(r10, r11);", // IID491 - "__ testl(r11, r12);", // IID492 - "__ testl(r12, r13);", // IID493 - "__ testl(r13, r14);", // IID494 - "__ testl(r14, r15);", // IID495 - "__ testl(r15, r16);", // IID496 - "__ testl(r16, r17);", // IID497 - "__ testl(r17, r18);", // IID498 - "__ testl(r18, r19);", // IID499 - "__ testl(r19, r20);", // IID500 - "__ testl(r20, r21);", // IID501 - "__ testl(r21, r22);", // IID502 - "__ testl(r22, r23);", // IID503 - "__ testl(r23, r24);", // IID504 - "__ testl(r24, r25);", // IID505 - "__ testl(r25, r26);", // IID506 - "__ testl(r26, r27);", // IID507 - "__ testl(r27, r28);", // IID508 - "__ testl(r28, r29);", // IID509 - "__ testl(r29, r30);", // IID510 - "__ testl(r30, r31);", // IID511 - "__ testl(r31, rcx);", // IID512 -#endif // _LP64 - "__ addb(Address(rdx, rbx, (Address::ScaleFactor)3, -0x201ba425), rcx);", // IID513 -#ifdef _LP64 - "__ addb(Address(rbx, +0x743fca75), rdx);", // IID514 - "__ addb(Address(r8, -0x48b15bca), rbx);", // IID515 - "__ addb(Address(r9, r10, (Address::ScaleFactor)1, +0x4bf33f60), r8);", // IID516 - "__ addb(Address(r10, r11, (Address::ScaleFactor)0, -0x75adf4b9), r9);", // IID517 - "__ addb(Address(r11, r12, (Address::ScaleFactor)1, +0x77126d08), r10);", // IID518 - "__ addb(Address(r12, -0x4f0a4661), r11);", // IID519 - "__ addb(Address(r13, +0x2e2edf6a), r12);", // IID520 - "__ addb(Address(r14, +0x497db108), r13);", // IID521 - "__ addb(Address(r15, r16, (Address::ScaleFactor)2, +0x2353424c), r14);", // IID522 - "__ addb(Address(r16, r17, (Address::ScaleFactor)3, -0x36611541), r15);", // IID523 - "__ addb(Address(r17, r18, (Address::ScaleFactor)2, -0x6547062c), r16);", // IID524 - "__ addb(Address(r18, r19, (Address::ScaleFactor)1, -0x1475f3c1), r17);", // IID525 - "__ addb(Address(r19, r20, (Address::ScaleFactor)2, -0x6efcf54b), r18);", // IID526 - "__ addb(Address(r20, r21, (Address::ScaleFactor)2, -0x2655e247), r19);", // IID527 - "__ addb(Address(r21, r22, (Address::ScaleFactor)3, -0x151b7d21), r20);", // IID528 - "__ addb(Address(r22, -0x75ee80e4), r21);", // IID529 - "__ addb(Address(r23, r24, (Address::ScaleFactor)0, -0x6edca128), r22);", // IID530 - "__ addb(Address(r24, r25, (Address::ScaleFactor)2, +0x323056a1), r23);", // IID531 - "__ addb(Address(r25, +0x476b28ea), r24);", // IID532 - "__ addb(Address(r26, r27, (Address::ScaleFactor)3, -0x7e99a8c3), r25);", // IID533 - "__ addb(Address(r27, r28, (Address::ScaleFactor)0, +0x64d43106), r26);", // IID534 - "__ addb(Address(r28, +0x30d3bc8), r27);", // IID535 - "__ addb(Address(r29, r30, (Address::ScaleFactor)0, +0x6910ce54), r28);", // IID536 - "__ addb(Address(r30, r31, (Address::ScaleFactor)1, -0x14157bee), r29);", // IID537 - "__ addb(Address(r31, rcx, (Address::ScaleFactor)1, -0x7bac9aa2), r30);", // IID538 - "__ addb(Address(rcx, rdx, (Address::ScaleFactor)2, +0x6adc3a8d), r31);", // IID539 -#endif // _LP64 - "__ addw(Address(rdx, +0x661e59ef), rcx);", // IID540 -#ifdef _LP64 - "__ addw(Address(rbx, r8, (Address::ScaleFactor)2, -0x54ef3336), rdx);", // IID541 - "__ addw(Address(r8, r9, (Address::ScaleFactor)3, +0x21a4f9be), rbx);", // IID542 - "__ addw(Address(r9, r10, (Address::ScaleFactor)1, +0x7e9eebd7), r8);", // IID543 - "__ addw(Address(r10, r11, (Address::ScaleFactor)1, -0x76903be7), r9);", // IID544 - "__ addw(Address(r11, -0x1a2c463b), r10);", // IID545 - "__ addw(Address(r12, r13, (Address::ScaleFactor)1, +0x3dbac18c), r11);", // IID546 - "__ addw(Address(r13, r14, (Address::ScaleFactor)3, -0x349b6757), r12);", // IID547 - "__ addw(Address(r14, r15, (Address::ScaleFactor)1, +0x7493130d), r13);", // IID548 - "__ addw(Address(r15, r16, (Address::ScaleFactor)2, -0x7851f0ea), r14);", // IID549 - "__ addw(Address(r16, r17, (Address::ScaleFactor)0, -0x6127367c), r15);", // IID550 - "__ addw(Address(r17, +0x61159c48), r16);", // IID551 - "__ addw(Address(r18, r19, (Address::ScaleFactor)3, -0x615b8795), r17);", // IID552 - "__ addw(Address(r19, r20, (Address::ScaleFactor)2, -0x2e718fa5), r18);", // IID553 - "__ addw(Address(r20, r21, (Address::ScaleFactor)0, -0x63ff67d7), r19);", // IID554 - "__ addw(Address(r21, r22, (Address::ScaleFactor)2, -0x74240885), r20);", // IID555 - "__ addw(Address(r22, r23, (Address::ScaleFactor)3, -0xd1a2d3), r21);", // IID556 - "__ addw(Address(r23, -0x571dc6b8), r22);", // IID557 - "__ addw(Address(r24, r25, (Address::ScaleFactor)2, -0x7d05c9), r23);", // IID558 - "__ addw(Address(r25, +0x1badfa88), r24);", // IID559 - "__ addw(Address(r26, r27, (Address::ScaleFactor)2, +0x1add8f55), r25);", // IID560 - "__ addw(Address(r27, r28, (Address::ScaleFactor)2, +0x5eacade7), r26);", // IID561 - "__ addw(Address(r28, r29, (Address::ScaleFactor)0, -0x72b0da6b), r27);", // IID562 - "__ addw(Address(r29, r30, (Address::ScaleFactor)2, +0x5f491f21), r28);", // IID563 - "__ addw(Address(r30, +0x13073e15), r29);", // IID564 - "__ addw(Address(r31, rcx, (Address::ScaleFactor)1, -0x17bb9f95), r30);", // IID565 - "__ addw(Address(rcx, rdx, (Address::ScaleFactor)2, +0x65c7e031), r31);", // IID566 -#endif // _LP64 - "__ addl(Address(rdx, -0x3b0e6c6f), rcx);", // IID567 -#ifdef _LP64 - "__ addl(Address(rbx, -0x7e8bdf1b), rdx);", // IID568 - "__ addl(Address(r8, r9, (Address::ScaleFactor)2, -0x56348423), rbx);", // IID569 - "__ addl(Address(r9, r10, (Address::ScaleFactor)0, +0x4e7250fd), r8);", // IID570 - "__ addl(Address(r10, r11, (Address::ScaleFactor)0, -0x365d5a47), r9);", // IID571 - "__ addl(Address(r11, r12, (Address::ScaleFactor)3, -0x692fa7a3), r10);", // IID572 - "__ addl(Address(r12, r13, (Address::ScaleFactor)0, +0x2a758b49), r11);", // IID573 - "__ addl(Address(r13, r14, (Address::ScaleFactor)2, -0x51df9228), r12);", // IID574 - "__ addl(Address(r14, r15, (Address::ScaleFactor)2, +0x71cfec81), r13);", // IID575 - "__ addl(Address(r15, -0x6ea9e882), r14);", // IID576 - "__ addl(Address(r16, r17, (Address::ScaleFactor)1, +0x5a2b7d02), r15);", // IID577 - "__ addl(Address(r17, r18, (Address::ScaleFactor)0, -0xa6bfb75), r16);", // IID578 - "__ addl(Address(r18, r19, (Address::ScaleFactor)3, +0x5aa34e82), r17);", // IID579 - "__ addl(Address(r19, -0x10a5c445), r18);", // IID580 - "__ addl(Address(r20, r21, (Address::ScaleFactor)0, -0x6d9309da), r19);", // IID581 - "__ addl(Address(r21, r22, (Address::ScaleFactor)3, +0x52ac37d1), r20);", // IID582 - "__ addl(Address(r22, r23, (Address::ScaleFactor)0, -0x103e86ee), r21);", // IID583 - "__ addl(Address(r23, r24, (Address::ScaleFactor)3, +0x7061274b), r22);", // IID584 - "__ addl(Address(r24, r25, (Address::ScaleFactor)2, +0x7c45981c), r23);", // IID585 - "__ addl(Address(r25, r26, (Address::ScaleFactor)0, +0x24f00f6e), r24);", // IID586 - "__ addl(Address(r26, r27, (Address::ScaleFactor)0, -0x71a5e74), r25);", // IID587 - "__ addl(Address(r27, r28, (Address::ScaleFactor)1, +0x355f4c09), r26);", // IID588 - "__ addl(Address(r28, r29, (Address::ScaleFactor)3, +0x43c4885c), r27);", // IID589 - "__ addl(Address(r29, r30, (Address::ScaleFactor)2, -0x79841854), r28);", // IID590 - "__ addl(Address(r30, r31, (Address::ScaleFactor)3, -0x7f7b53ca), r29);", // IID591 - "__ addl(Address(r31, rcx, (Address::ScaleFactor)1, +0x29627da4), r30);", // IID592 - "__ addl(Address(rcx, -0x354f35e4), r31);", // IID593 -#endif // _LP64 - "__ adcl(Address(rdx, rbx, (Address::ScaleFactor)1, -0x60957bc1), rcx);", // IID594 -#ifdef _LP64 - "__ adcl(Address(rbx, r8, (Address::ScaleFactor)2, +0x3313418d), rdx);", // IID595 - "__ adcl(Address(r8, r9, (Address::ScaleFactor)2, -0x767e3c3c), rbx);", // IID596 - "__ adcl(Address(r9, r10, (Address::ScaleFactor)0, -0x182c6f23), r8);", // IID597 - "__ adcl(Address(r10, r11, (Address::ScaleFactor)3, +0x718f60cb), r9);", // IID598 - "__ adcl(Address(r11, r12, (Address::ScaleFactor)3, +0x12c70295), r10);", // IID599 - "__ adcl(Address(r12, -0x53aeec50), r11);", // IID600 - "__ adcl(Address(r13, r14, (Address::ScaleFactor)3, -0x330242c8), r12);", // IID601 - "__ adcl(Address(r14, r15, (Address::ScaleFactor)2, +0x2fb4f0c1), r13);", // IID602 - "__ adcl(Address(r15, r16, (Address::ScaleFactor)2, -0x1de8f040), r14);", // IID603 - "__ adcl(Address(r16, r17, (Address::ScaleFactor)1, +0xb5d60b2), r15);", // IID604 - "__ adcl(Address(r17, r18, (Address::ScaleFactor)1, -0x38be2377), r16);", // IID605 - "__ adcl(Address(r18, r19, (Address::ScaleFactor)2, -0xdbc3e9e), r17);", // IID606 - "__ adcl(Address(r19, r20, (Address::ScaleFactor)0, +0x7ef5e39e), r18);", // IID607 - "__ adcl(Address(r20, r21, (Address::ScaleFactor)2, -0x5f194072), r19);", // IID608 - "__ adcl(Address(r21, r22, (Address::ScaleFactor)1, -0x5df7b575), r20);", // IID609 - "__ adcl(Address(r22, r23, (Address::ScaleFactor)3, +0x63c7aa89), r21);", // IID610 - "__ adcl(Address(r23, r24, (Address::ScaleFactor)1, -0x5d9aef78), r22);", // IID611 - "__ adcl(Address(r24, r25, (Address::ScaleFactor)2, -0x44c56382), r23);", // IID612 - "__ adcl(Address(r25, r26, (Address::ScaleFactor)3, -0x56cb247a), r24);", // IID613 - "__ adcl(Address(r26, r27, (Address::ScaleFactor)3, +0x407d1ff3), r25);", // IID614 - "__ adcl(Address(r27, r28, (Address::ScaleFactor)0, -0x40d8db6a), r26);", // IID615 - "__ adcl(Address(r28, r29, (Address::ScaleFactor)3, +0x7ddf364e), r27);", // IID616 - "__ adcl(Address(r29, r30, (Address::ScaleFactor)2, +0x4f7fc906), r28);", // IID617 - "__ adcl(Address(r30, r31, (Address::ScaleFactor)1, +0x627bed2), r29);", // IID618 - "__ adcl(Address(r31, rcx, (Address::ScaleFactor)1, -0x6bcb79ab), r30);", // IID619 - "__ adcl(Address(rcx, rdx, (Address::ScaleFactor)3, -0x1dec5d6d), r31);", // IID620 -#endif // _LP64 - "__ andb(Address(rdx, rbx, (Address::ScaleFactor)3, -0x3f87e32a), rcx);", // IID621 -#ifdef _LP64 - "__ andb(Address(rbx, r8, (Address::ScaleFactor)2, +0x2441994b), rdx);", // IID622 - "__ andb(Address(r8, -0x7f520d27), rbx);", // IID623 - "__ andb(Address(r9, r10, (Address::ScaleFactor)1, +0x7dceab3), r8);", // IID624 - "__ andb(Address(r10, r11, (Address::ScaleFactor)0, -0x6fa75be3), r9);", // IID625 - "__ andb(Address(r11, -0x5c5bc46f), r10);", // IID626 - "__ andb(Address(r12, +0x3f2b28be), r11);", // IID627 - "__ andb(Address(r13, r14, (Address::ScaleFactor)1, +0x2b10501b), r12);", // IID628 - "__ andb(Address(r14, r15, (Address::ScaleFactor)1, +0x1cea1d37), r13);", // IID629 - "__ andb(Address(r15, r16, (Address::ScaleFactor)0, -0x66a2034), r14);", // IID630 - "__ andb(Address(r16, +0x226b1d05), r15);", // IID631 - "__ andb(Address(r17, r18, (Address::ScaleFactor)0, +0x17e73d7c), r16);", // IID632 - "__ andb(Address(r18, r19, (Address::ScaleFactor)0, +0x5e15afe9), r17);", // IID633 - "__ andb(Address(r19, -0x54fedf58), r18);", // IID634 - "__ andb(Address(r20, r21, (Address::ScaleFactor)0, +0x29284d73), r19);", // IID635 - "__ andb(Address(r21, r22, (Address::ScaleFactor)0, -0x1be6fb2a), r20);", // IID636 - "__ andb(Address(r22, r23, (Address::ScaleFactor)1, -0x1eeb6ee), r21);", // IID637 - "__ andb(Address(r23, r24, (Address::ScaleFactor)2, -0x60c3e869), r22);", // IID638 - "__ andb(Address(r24, r25, (Address::ScaleFactor)3, -0x5dd67eb), r23);", // IID639 - "__ andb(Address(r25, +0x36711286), r24);", // IID640 - "__ andb(Address(r26, r27, (Address::ScaleFactor)0, +0x438c0fe8), r25);", // IID641 - "__ andb(Address(r27, +0x5433b66c), r26);", // IID642 - "__ andb(Address(r28, r29, (Address::ScaleFactor)3, +0x26a5e3f0), r27);", // IID643 - "__ andb(Address(r29, r30, (Address::ScaleFactor)3, -0x106670dd), r28);", // IID644 - "__ andb(Address(r30, r31, (Address::ScaleFactor)3, -0x792146ef), r29);", // IID645 - "__ andb(Address(r31, +0x237e8d36), r30);", // IID646 - "__ andb(Address(rcx, rdx, (Address::ScaleFactor)1, -0x228bcc32), r31);", // IID647 -#endif // _LP64 - "__ andl(Address(rdx, +0x62aa990f), rcx);", // IID648 -#ifdef _LP64 - "__ andl(Address(rbx, r8, (Address::ScaleFactor)1, -0x6f250a6f), rdx);", // IID649 - "__ andl(Address(r8, r9, (Address::ScaleFactor)0, -0x4bd299ef), rbx);", // IID650 - "__ andl(Address(r9, r10, (Address::ScaleFactor)1, +0x27f735da), r8);", // IID651 - "__ andl(Address(r10, r11, (Address::ScaleFactor)2, +0x747a089d), r9);", // IID652 - "__ andl(Address(r11, r12, (Address::ScaleFactor)0, -0x147809d0), r10);", // IID653 - "__ andl(Address(r12, r13, (Address::ScaleFactor)1, +0x5490e713), r11);", // IID654 - "__ andl(Address(r13, r14, (Address::ScaleFactor)0, +0x1b02eccb), r12);", // IID655 - "__ andl(Address(r14, r15, (Address::ScaleFactor)3, +0x770ebe79), r13);", // IID656 - "__ andl(Address(r15, r16, (Address::ScaleFactor)2, +0x6c7cc52a), r14);", // IID657 - "__ andl(Address(r16, -0x3e6d76f), r15);", // IID658 - "__ andl(Address(r17, +0x189e3244), r16);", // IID659 - "__ andl(Address(r18, r19, (Address::ScaleFactor)3, +0x3fdd2b91), r17);", // IID660 - "__ andl(Address(r19, r20, (Address::ScaleFactor)3, -0x7e2e056a), r18);", // IID661 - "__ andl(Address(r20, r21, (Address::ScaleFactor)0, -0x29a29f85), r19);", // IID662 - "__ andl(Address(r21, r22, (Address::ScaleFactor)1, -0x25b3d068), r20);", // IID663 - "__ andl(Address(r22, r23, (Address::ScaleFactor)1, -0x417d609), r21);", // IID664 - "__ andl(Address(r23, r24, (Address::ScaleFactor)1, +0x21560ab1), r22);", // IID665 - "__ andl(Address(r24, +0x5a917c55), r23);", // IID666 - "__ andl(Address(r25, -0x2ec00c4), r24);", // IID667 - "__ andl(Address(r26, -0x46f0d0c8), r25);", // IID668 - "__ andl(Address(r27, -0x3801dc89), r26);", // IID669 - "__ andl(Address(r28, +0x5c495da1), r27);", // IID670 - "__ andl(Address(r29, r30, (Address::ScaleFactor)2, -0x23401bec), r28);", // IID671 - "__ andl(Address(r30, r31, (Address::ScaleFactor)3, -0xcd44863), r29);", // IID672 - "__ andl(Address(r31, rcx, (Address::ScaleFactor)3, +0x3735ed6b), r30);", // IID673 - "__ andl(Address(rcx, rdx, (Address::ScaleFactor)1, -0x75b44cb2), r31);", // IID674 -#endif // _LP64 - "__ cmpb(Address(rdx, -0x2a4bcf39), rcx);", // IID675 -#ifdef _LP64 - "__ cmpb(Address(rbx, r8, (Address::ScaleFactor)1, +0x1310b275), rdx);", // IID676 - "__ cmpb(Address(r8, r9, (Address::ScaleFactor)3, +0x17c28930), rbx);", // IID677 - "__ cmpb(Address(r9, -0x1f966804), r8);", // IID678 - "__ cmpb(Address(r10, r11, (Address::ScaleFactor)0, -0x79cd2a13), r9);", // IID679 - "__ cmpb(Address(r11, r12, (Address::ScaleFactor)3, +0x3e8c7622), r10);", // IID680 - "__ cmpb(Address(r12, r13, (Address::ScaleFactor)1, -0x781ff7ba), r11);", // IID681 - "__ cmpb(Address(r13, r14, (Address::ScaleFactor)0, -0x11b0c288), r12);", // IID682 - "__ cmpb(Address(r14, +0x79d5f27c), r13);", // IID683 - "__ cmpb(Address(r15, r16, (Address::ScaleFactor)0, -0x62aa433f), r14);", // IID684 - "__ cmpb(Address(r16, r17, (Address::ScaleFactor)3, -0x24b3f06a), r15);", // IID685 - "__ cmpb(Address(r17, -0x18e84ea4), r16);", // IID686 - "__ cmpb(Address(r18, r19, (Address::ScaleFactor)2, -0x28fd47c4), r17);", // IID687 - "__ cmpb(Address(r19, r20, (Address::ScaleFactor)2, -0x45262ee3), r18);", // IID688 - "__ cmpb(Address(r20, r21, (Address::ScaleFactor)3, -0x5b0b6ec8), r19);", // IID689 - "__ cmpb(Address(r21, r22, (Address::ScaleFactor)0, -0xca70c04), r20);", // IID690 - "__ cmpb(Address(r22, r23, (Address::ScaleFactor)2, +0x4c01298b), r21);", // IID691 - "__ cmpb(Address(r23, r24, (Address::ScaleFactor)3, +0x53f20546), r22);", // IID692 - "__ cmpb(Address(r24, r25, (Address::ScaleFactor)1, -0x38cef61f), r23);", // IID693 - "__ cmpb(Address(r25, r26, (Address::ScaleFactor)3, -0x3f885db6), r24);", // IID694 - "__ cmpb(Address(r26, -0x645f2e4d), r25);", // IID695 - "__ cmpb(Address(r27, r28, (Address::ScaleFactor)1, +0x77a9b6b1), r26);", // IID696 - "__ cmpb(Address(r28, r29, (Address::ScaleFactor)2, -0x76cb252c), r27);", // IID697 - "__ cmpb(Address(r29, r30, (Address::ScaleFactor)3, +0x432d2840), r28);", // IID698 - "__ cmpb(Address(r30, r31, (Address::ScaleFactor)1, -0x79b90662), r29);", // IID699 - "__ cmpb(Address(r31, rcx, (Address::ScaleFactor)1, -0x5c302e8d), r30);", // IID700 - "__ cmpb(Address(rcx, -0x77158cb9), r31);", // IID701 -#endif // _LP64 - "__ cmpw(Address(rdx, +0x295012ca), rcx);", // IID702 -#ifdef _LP64 - "__ cmpw(Address(rbx, r8, (Address::ScaleFactor)2, +0x11d7cec3), rdx);", // IID703 - "__ cmpw(Address(r8, r9, (Address::ScaleFactor)2, +0x3e72fda3), rbx);", // IID704 - "__ cmpw(Address(r9, r10, (Address::ScaleFactor)1, +0x532aee98), r8);", // IID705 - "__ cmpw(Address(r10, r11, (Address::ScaleFactor)1, +0x2f9d1b67), r9);", // IID706 - "__ cmpw(Address(r11, r12, (Address::ScaleFactor)3, -0x3f6a0048), r10);", // IID707 - "__ cmpw(Address(r12, r13, (Address::ScaleFactor)2, +0x749d1fa4), r11);", // IID708 - "__ cmpw(Address(r13, r14, (Address::ScaleFactor)1, +0x1d043538), r12);", // IID709 - "__ cmpw(Address(r14, r15, (Address::ScaleFactor)3, -0x748bd37a), r13);", // IID710 - "__ cmpw(Address(r15, r16, (Address::ScaleFactor)3, +0x6bb762ff), r14);", // IID711 - "__ cmpw(Address(r16, r17, (Address::ScaleFactor)3, -0x54b414d4), r15);", // IID712 - "__ cmpw(Address(r17, r18, (Address::ScaleFactor)2, +0x2c7a6b5b), r16);", // IID713 - "__ cmpw(Address(r18, r19, (Address::ScaleFactor)0, +0x4d05004b), r17);", // IID714 - "__ cmpw(Address(r19, r20, (Address::ScaleFactor)1, -0x5ace0d3e), r18);", // IID715 - "__ cmpw(Address(r20, r21, (Address::ScaleFactor)3, +0x71b9366f), r19);", // IID716 - "__ cmpw(Address(r21, r22, (Address::ScaleFactor)1, +0x5f95c215), r20);", // IID717 - "__ cmpw(Address(r22, r23, (Address::ScaleFactor)0, +0x378cb8c4), r21);", // IID718 - "__ cmpw(Address(r23, r24, (Address::ScaleFactor)1, -0x292daa4f), r22);", // IID719 - "__ cmpw(Address(r24, r25, (Address::ScaleFactor)0, +0x3bb7c4bb), r23);", // IID720 - "__ cmpw(Address(r25, r26, (Address::ScaleFactor)1, -0x2c4ef637), r24);", // IID721 - "__ cmpw(Address(r26, r27, (Address::ScaleFactor)3, -0x6a5ee6f1), r25);", // IID722 - "__ cmpw(Address(r27, r28, (Address::ScaleFactor)2, -0x2d2319af), r26);", // IID723 - "__ cmpw(Address(r28, r29, (Address::ScaleFactor)3, +0x58fed4f), r27);", // IID724 - "__ cmpw(Address(r29, r30, (Address::ScaleFactor)0, -0x47a0cd26), r28);", // IID725 - "__ cmpw(Address(r30, r31, (Address::ScaleFactor)0, -0xc931317), r29);", // IID726 - "__ cmpw(Address(r31, rcx, (Address::ScaleFactor)1, +0xbd30b0b), r30);", // IID727 - "__ cmpw(Address(rcx, rdx, (Address::ScaleFactor)3, -0x5a5b1c1f), r31);", // IID728 -#endif // _LP64 - "__ cmpl(Address(rdx, rbx, (Address::ScaleFactor)3, -0x258d7eec), rcx);", // IID729 -#ifdef _LP64 - "__ cmpl(Address(rbx, r8, (Address::ScaleFactor)1, +0x6ab7efc4), rdx);", // IID730 - "__ cmpl(Address(r8, -0x4572b667), rbx);", // IID731 - "__ cmpl(Address(r9, r10, (Address::ScaleFactor)3, +0x2e5dbcda), r8);", // IID732 - "__ cmpl(Address(r10, r11, (Address::ScaleFactor)3, +0x50a8c594), r9);", // IID733 - "__ cmpl(Address(r11, r12, (Address::ScaleFactor)2, -0xc1be1ec), r10);", // IID734 - "__ cmpl(Address(r12, r13, (Address::ScaleFactor)0, +0xbe389df), r11);", // IID735 - "__ cmpl(Address(r13, r14, (Address::ScaleFactor)1, -0x1edb30e8), r12);", // IID736 - "__ cmpl(Address(r14, r15, (Address::ScaleFactor)1, -0x206c1606), r13);", // IID737 - "__ cmpl(Address(r15, r16, (Address::ScaleFactor)0, +0x7dab5488), r14);", // IID738 - "__ cmpl(Address(r16, r17, (Address::ScaleFactor)1, +0x5be3fb1), r15);", // IID739 - "__ cmpl(Address(r17, r18, (Address::ScaleFactor)2, +0x6ae8537a), r16);", // IID740 - "__ cmpl(Address(r18, r19, (Address::ScaleFactor)1, +0x30ace87d), r17);", // IID741 - "__ cmpl(Address(r19, r20, (Address::ScaleFactor)3, -0x1252a00f), r18);", // IID742 - "__ cmpl(Address(r20, r21, (Address::ScaleFactor)3, +0x3bed4220), r19);", // IID743 - "__ cmpl(Address(r21, -0x772d5538), r20);", // IID744 - "__ cmpl(Address(r22, r23, (Address::ScaleFactor)3, -0x1af11faa), r21);", // IID745 - "__ cmpl(Address(r23, r24, (Address::ScaleFactor)3, +0x53e55261), r22);", // IID746 - "__ cmpl(Address(r24, r25, (Address::ScaleFactor)1, -0x4a99bcce), r23);", // IID747 - "__ cmpl(Address(r25, +0x37b632fd), r24);", // IID748 - "__ cmpl(Address(r26, r27, (Address::ScaleFactor)3, +0x177c052e), r25);", // IID749 - "__ cmpl(Address(r27, -0x24c4baaf), r26);", // IID750 - "__ cmpl(Address(r28, +0x3e3992dd), r27);", // IID751 - "__ cmpl(Address(r29, r30, (Address::ScaleFactor)2, -0x7ea8e0db), r28);", // IID752 - "__ cmpl(Address(r30, +0x36f2b387), r29);", // IID753 - "__ cmpl(Address(r31, rcx, (Address::ScaleFactor)0, +0x1fcbf38d), r30);", // IID754 - "__ cmpl(Address(rcx, rdx, (Address::ScaleFactor)2, -0x7f9699f2), r31);", // IID755 -#endif // _LP64 - "__ orb(Address(rdx, -0x75849247), rcx);", // IID756 -#ifdef _LP64 - "__ orb(Address(rbx, +0xd8c88df), rdx);", // IID757 - "__ orb(Address(r8, r9, (Address::ScaleFactor)1, +0x568f95d2), rbx);", // IID758 - "__ orb(Address(r9, r10, (Address::ScaleFactor)3, -0x464ff34e), r8);", // IID759 - "__ orb(Address(r10, r11, (Address::ScaleFactor)2, +0x37d7a014), r9);", // IID760 - "__ orb(Address(r11, r12, (Address::ScaleFactor)3, -0x420ecffc), r10);", // IID761 - "__ orb(Address(r12, r13, (Address::ScaleFactor)3, -0x48201474), r11);", // IID762 - "__ orb(Address(r13, r14, (Address::ScaleFactor)1, +0x1b0e7f54), r12);", // IID763 - "__ orb(Address(r14, r15, (Address::ScaleFactor)2, -0x39e9ad74), r13);", // IID764 - "__ orb(Address(r15, r16, (Address::ScaleFactor)1, +0x2d3e81a3), r14);", // IID765 - "__ orb(Address(r16, +0x79de6658), r15);", // IID766 - "__ orb(Address(r17, r18, (Address::ScaleFactor)2, -0x5365d860), r16);", // IID767 - "__ orb(Address(r18, r19, (Address::ScaleFactor)1, -0x376a1bd7), r17);", // IID768 - "__ orb(Address(r19, r20, (Address::ScaleFactor)0, -0x351adcfb), r18);", // IID769 - "__ orb(Address(r20, -0x4e380faa), r19);", // IID770 - "__ orb(Address(r21, r22, (Address::ScaleFactor)0, -0x1053b4de), r20);", // IID771 - "__ orb(Address(r22, r23, (Address::ScaleFactor)2, +0x7fa3e7fd), r21);", // IID772 - "__ orb(Address(r23, r24, (Address::ScaleFactor)1, -0xce46f86), r22);", // IID773 - "__ orb(Address(r24, +0x1c4a3fc7), r23);", // IID774 - "__ orb(Address(r25, -0x763a2e75), r24);", // IID775 - "__ orb(Address(r26, r27, (Address::ScaleFactor)0, +0x5f020960), r25);", // IID776 - "__ orb(Address(r27, r28, (Address::ScaleFactor)1, +0x56df203b), r26);", // IID777 - "__ orb(Address(r28, r29, (Address::ScaleFactor)1, -0x2a22ea08), r27);", // IID778 - "__ orb(Address(r29, r30, (Address::ScaleFactor)3, -0x73dde63a), r28);", // IID779 - "__ orb(Address(r30, r31, (Address::ScaleFactor)0, +0x44cd4981), r29);", // IID780 - "__ orb(Address(r31, rcx, (Address::ScaleFactor)0, -0x6423b190), r30);", // IID781 - "__ orb(Address(rcx, rdx, (Address::ScaleFactor)1, +0x7e3f0b47), r31);", // IID782 -#endif // _LP64 - "__ orl(Address(rdx, rbx, (Address::ScaleFactor)3, -0x7f936592), rcx);", // IID783 -#ifdef _LP64 - "__ orl(Address(rbx, r8, (Address::ScaleFactor)1, +0x157f4546), rdx);", // IID784 - "__ orl(Address(r8, r9, (Address::ScaleFactor)3, -0x42b1278c), rbx);", // IID785 - "__ orl(Address(r9, +0x7ea147bf), r8);", // IID786 - "__ orl(Address(r10, r11, (Address::ScaleFactor)3, -0x483ae909), r9);", // IID787 - "__ orl(Address(r11, +0x557bcfed), r10);", // IID788 - "__ orl(Address(r12, r13, (Address::ScaleFactor)1, +0x5d667755), r11);", // IID789 - "__ orl(Address(r13, r14, (Address::ScaleFactor)3, -0x96c08d3), r12);", // IID790 - "__ orl(Address(r14, -0x414e30eb), r13);", // IID791 - "__ orl(Address(r15, r16, (Address::ScaleFactor)1, +0x1f8b1dc2), r14);", // IID792 - "__ orl(Address(r16, r17, (Address::ScaleFactor)2, -0x642cdf60), r15);", // IID793 - "__ orl(Address(r17, r18, (Address::ScaleFactor)1, -0x1f493ee2), r16);", // IID794 - "__ orl(Address(r18, -0x712bf777), r17);", // IID795 - "__ orl(Address(r19, r20, (Address::ScaleFactor)2, -0x651c04c), r18);", // IID796 - "__ orl(Address(r20, r21, (Address::ScaleFactor)0, -0x625fac03), r19);", // IID797 - "__ orl(Address(r21, r22, (Address::ScaleFactor)3, -0x3312d783), r20);", // IID798 - "__ orl(Address(r22, r23, (Address::ScaleFactor)1, +0x5a205b3e), r21);", // IID799 - "__ orl(Address(r23, r24, (Address::ScaleFactor)3, +0x6e3f5666), r22);", // IID800 - "__ orl(Address(r24, r25, (Address::ScaleFactor)1, -0x36c8e71), r23);", // IID801 - "__ orl(Address(r25, +0x6b6942c4), r24);", // IID802 - "__ orl(Address(r26, +0x70cac7ce), r25);", // IID803 - "__ orl(Address(r27, -0x3ce8855f), r26);", // IID804 - "__ orl(Address(r28, r29, (Address::ScaleFactor)3, +0x64c68ec1), r27);", // IID805 - "__ orl(Address(r29, r30, (Address::ScaleFactor)3, +0x1459cf0d), r28);", // IID806 - "__ orl(Address(r30, r31, (Address::ScaleFactor)1, +0x47ba2ce6), r29);", // IID807 - "__ orl(Address(r31, rcx, (Address::ScaleFactor)0, +0x35c7882e), r30);", // IID808 - "__ orl(Address(rcx, rdx, (Address::ScaleFactor)2, +0x45b0d5fc), r31);", // IID809 -#endif // _LP64 - "__ xorb(Address(rdx, rbx, (Address::ScaleFactor)0, +0x7ad0a9f8), rcx);", // IID810 -#ifdef _LP64 - "__ xorb(Address(rbx, -0x59ea7841), rdx);", // IID811 - "__ xorb(Address(r8, r9, (Address::ScaleFactor)2, +0xfddef8), rbx);", // IID812 - "__ xorb(Address(r9, r10, (Address::ScaleFactor)3, +0x57a3b7cd), r8);", // IID813 - "__ xorb(Address(r10, r11, (Address::ScaleFactor)3, -0x53e3b4e7), r9);", // IID814 - "__ xorb(Address(r11, r12, (Address::ScaleFactor)2, -0x461ac049), r10);", // IID815 - "__ xorb(Address(r12, r13, (Address::ScaleFactor)3, +0x1b00bcfc), r11);", // IID816 - "__ xorb(Address(r13, r14, (Address::ScaleFactor)3, -0x7f3e0313), r12);", // IID817 - "__ xorb(Address(r14, r15, (Address::ScaleFactor)1, -0x4eadf1c2), r13);", // IID818 - "__ xorb(Address(r15, r16, (Address::ScaleFactor)1, -0x76071c0b), r14);", // IID819 - "__ xorb(Address(r16, r17, (Address::ScaleFactor)3, +0x15d0c757), r15);", // IID820 - "__ xorb(Address(r17, r18, (Address::ScaleFactor)2, +0x44a21258), r16);", // IID821 - "__ xorb(Address(r18, r19, (Address::ScaleFactor)0, +0x779097ec), r17);", // IID822 - "__ xorb(Address(r19, r20, (Address::ScaleFactor)1, +0x621b3b57), r18);", // IID823 - "__ xorb(Address(r20, -0x22b0dc93), r19);", // IID824 - "__ xorb(Address(r21, r22, (Address::ScaleFactor)3, +0x2591820c), r20);", // IID825 - "__ xorb(Address(r22, r23, (Address::ScaleFactor)1, -0x3ad4605a), r21);", // IID826 - "__ xorb(Address(r23, -0x7e007bb8), r22);", // IID827 - "__ xorb(Address(r24, r25, (Address::ScaleFactor)0, -0x3c74dfc6), r23);", // IID828 - "__ xorb(Address(r25, r26, (Address::ScaleFactor)3, +0x53d66e6e), r24);", // IID829 - "__ xorb(Address(r26, r27, (Address::ScaleFactor)2, -0xfd51a61), r25);", // IID830 - "__ xorb(Address(r27, r28, (Address::ScaleFactor)0, +0x2e073413), r26);", // IID831 - "__ xorb(Address(r28, r29, (Address::ScaleFactor)2, +0x2389d01f), r27);", // IID832 - "__ xorb(Address(r29, r30, (Address::ScaleFactor)0, -0x50a921f3), r28);", // IID833 - "__ xorb(Address(r30, r31, (Address::ScaleFactor)1, -0x7abd78e6), r29);", // IID834 - "__ xorb(Address(r31, -0x36ac932f), r30);", // IID835 - "__ xorb(Address(rcx, rdx, (Address::ScaleFactor)1, +0x1f38cf22), r31);", // IID836 -#endif // _LP64 - "__ xorl(Address(rdx, -0xd279df9), rcx);", // IID837 -#ifdef _LP64 - "__ xorl(Address(rbx, r8, (Address::ScaleFactor)2, -0x15837a6), rdx);", // IID838 - "__ xorl(Address(r8, r9, (Address::ScaleFactor)0, +0x4821e403), rbx);", // IID839 - "__ xorl(Address(r9, +0x44a54072), r8);", // IID840 - "__ xorl(Address(r10, -0x57def33), r9);", // IID841 - "__ xorl(Address(r11, r12, (Address::ScaleFactor)3, +0x392a23d5), r10);", // IID842 - "__ xorl(Address(r12, r13, (Address::ScaleFactor)1, -0x2fcad07b), r11);", // IID843 - "__ xorl(Address(r13, r14, (Address::ScaleFactor)2, -0x7703fe1a), r12);", // IID844 - "__ xorl(Address(r14, r15, (Address::ScaleFactor)2, -0xec09260), r13);", // IID845 - "__ xorl(Address(r15, r16, (Address::ScaleFactor)0, +0x7cf0b78), r14);", // IID846 - "__ xorl(Address(r16, r17, (Address::ScaleFactor)0, -0x3071b27d), r15);", // IID847 - "__ xorl(Address(r17, r18, (Address::ScaleFactor)2, +0xc14ae14), r16);", // IID848 - "__ xorl(Address(r18, +0x1203c546), r17);", // IID849 - "__ xorl(Address(r19, r20, (Address::ScaleFactor)0, -0x91bc49b), r18);", // IID850 - "__ xorl(Address(r20, r21, (Address::ScaleFactor)0, -0x707de87c), r19);", // IID851 - "__ xorl(Address(r21, r22, (Address::ScaleFactor)2, +0x53e6305), r20);", // IID852 - "__ xorl(Address(r22, r23, (Address::ScaleFactor)2, -0x72f66f4a), r21);", // IID853 - "__ xorl(Address(r23, r24, (Address::ScaleFactor)2, -0x2c5a7ec), r22);", // IID854 - "__ xorl(Address(r24, r25, (Address::ScaleFactor)2, -0x21466b0a), r23);", // IID855 - "__ xorl(Address(r25, r26, (Address::ScaleFactor)3, -0x12974427), r24);", // IID856 - "__ xorl(Address(r26, r27, (Address::ScaleFactor)0, -0x2a75e8bc), r25);", // IID857 - "__ xorl(Address(r27, r28, (Address::ScaleFactor)3, +0x48de2b4), r26);", // IID858 - "__ xorl(Address(r28, r29, (Address::ScaleFactor)3, +0x7054aa47), r27);", // IID859 - "__ xorl(Address(r29, -0x1996eef6), r28);", // IID860 - "__ xorl(Address(r30, r31, (Address::ScaleFactor)2, +0x227ff79e), r29);", // IID861 - "__ xorl(Address(r31, +0xca3fd88), r30);", // IID862 - "__ xorl(Address(rcx, rdx, (Address::ScaleFactor)0, -0x633362c6), r31);", // IID863 -#endif // _LP64 - "__ subl(Address(rdx, rbx, (Address::ScaleFactor)0, -0x3be908ba), rcx);", // IID864 -#ifdef _LP64 - "__ subl(Address(rbx, r8, (Address::ScaleFactor)3, +0x4fd240d9), rdx);", // IID865 - "__ subl(Address(r8, r9, (Address::ScaleFactor)0, -0x2dd625e8), rbx);", // IID866 - "__ subl(Address(r9, r10, (Address::ScaleFactor)0, -0xca1173c), r8);", // IID867 - "__ subl(Address(r10, r11, (Address::ScaleFactor)2, +0x263e4813), r9);", // IID868 - "__ subl(Address(r11, r12, (Address::ScaleFactor)2, -0x59215224), r10);", // IID869 - "__ subl(Address(r12, r13, (Address::ScaleFactor)0, +0x6913e49b), r11);", // IID870 - "__ subl(Address(r13, r14, (Address::ScaleFactor)0, +0x13da90b2), r12);", // IID871 - "__ subl(Address(r14, r15, (Address::ScaleFactor)0, -0x69c46b61), r13);", // IID872 - "__ subl(Address(r15, r16, (Address::ScaleFactor)3, -0x6f763212), r14);", // IID873 - "__ subl(Address(r16, +0x51f14a71), r15);", // IID874 - "__ subl(Address(r17, r18, (Address::ScaleFactor)1, +0x4aadbeec), r16);", // IID875 - "__ subl(Address(r18, +0x665fe0aa), r17);", // IID876 - "__ subl(Address(r19, r20, (Address::ScaleFactor)0, +0x12ccd802), r18);", // IID877 - "__ subl(Address(r20, r21, (Address::ScaleFactor)3, +0x174d2ff2), r19);", // IID878 - "__ subl(Address(r21, r22, (Address::ScaleFactor)2, -0x78f54f06), r20);", // IID879 - "__ subl(Address(r22, r23, (Address::ScaleFactor)0, +0x10fbf943), r21);", // IID880 - "__ subl(Address(r23, +0x10edb59f), r22);", // IID881 - "__ subl(Address(r24, r25, (Address::ScaleFactor)1, -0x5b8c9d77), r23);", // IID882 - "__ subl(Address(r25, r26, (Address::ScaleFactor)1, +0x8f43be2), r24);", // IID883 - "__ subl(Address(r26, r27, (Address::ScaleFactor)2, -0x6351ada7), r25);", // IID884 - "__ subl(Address(r27, r28, (Address::ScaleFactor)3, +0x57ea370e), r26);", // IID885 - "__ subl(Address(r28, r29, (Address::ScaleFactor)3, +0x33f32b94), r27);", // IID886 - "__ subl(Address(r29, r30, (Address::ScaleFactor)3, -0x14e7918e), r28);", // IID887 - "__ subl(Address(r30, r31, (Address::ScaleFactor)3, -0x7ef2e5c0), r29);", // IID888 - "__ subl(Address(r31, rcx, (Address::ScaleFactor)0, +0x71a113b8), r30);", // IID889 - "__ subl(Address(rcx, +0x5609d37), r31);", // IID890 -#endif // _LP64 - "__ movb(Address(rdx, +0x2899fc60), rcx);", // IID891 -#ifdef _LP64 - "__ movb(Address(rbx, r8, (Address::ScaleFactor)2, -0x6c7ff8a7), rdx);", // IID892 - "__ movb(Address(r8, r9, (Address::ScaleFactor)1, -0x5c4944a8), rbx);", // IID893 - "__ movb(Address(r9, r10, (Address::ScaleFactor)3, +0x156ca8e2), r8);", // IID894 - "__ movb(Address(r10, r11, (Address::ScaleFactor)0, +0x59da9ff8), r9);", // IID895 - "__ movb(Address(r11, r12, (Address::ScaleFactor)0, +0x6ae7bf27), r10);", // IID896 - "__ movb(Address(r12, +0x195a68f), r11);", // IID897 - "__ movb(Address(r13, +0x1774dcd0), r12);", // IID898 - "__ movb(Address(r14, r15, (Address::ScaleFactor)1, -0x6d011eef), r13);", // IID899 - "__ movb(Address(r15, r16, (Address::ScaleFactor)3, +0x260f5afa), r14);", // IID900 - "__ movb(Address(r16, +0x630ee80), r15);", // IID901 - "__ movb(Address(r17, r18, (Address::ScaleFactor)1, +0x2dfcc201), r16);", // IID902 - "__ movb(Address(r18, r19, (Address::ScaleFactor)0, +0x5a5b7576), r17);", // IID903 - "__ movb(Address(r19, +0x2f6e76e9), r18);", // IID904 - "__ movb(Address(r20, r21, (Address::ScaleFactor)2, -0x383f23f5), r19);", // IID905 - "__ movb(Address(r21, r22, (Address::ScaleFactor)3, -0x10d40adf), r20);", // IID906 - "__ movb(Address(r22, r23, (Address::ScaleFactor)2, +0x8df3057), r21);", // IID907 - "__ movb(Address(r23, r24, (Address::ScaleFactor)2, -0x2004ef1c), r22);", // IID908 - "__ movb(Address(r24, r25, (Address::ScaleFactor)1, -0x1f88b255), r23);", // IID909 - "__ movb(Address(r25, r26, (Address::ScaleFactor)2, +0x568aa945), r24);", // IID910 - "__ movb(Address(r26, +0x21f2f8b2), r25);", // IID911 - "__ movb(Address(r27, r28, (Address::ScaleFactor)3, +0xd7248e5), r26);", // IID912 - "__ movb(Address(r28, r29, (Address::ScaleFactor)1, +0x11d0196b), r27);", // IID913 - "__ movb(Address(r29, r30, (Address::ScaleFactor)1, -0x68dd97be), r28);", // IID914 - "__ movb(Address(r30, r31, (Address::ScaleFactor)3, +0x62241504), r29);", // IID915 - "__ movb(Address(r31, rcx, (Address::ScaleFactor)1, +0x74351d49), r30);", // IID916 - "__ movb(Address(rcx, -0x109c0f66), r31);", // IID917 -#endif // _LP64 - "__ movl(Address(rdx, -0x3ffb94c9), rcx);", // IID918 -#ifdef _LP64 - "__ movl(Address(rbx, r8, (Address::ScaleFactor)1, -0x2ec81927), rdx);", // IID919 - "__ movl(Address(r8, -0x430aa6e8), rbx);", // IID920 - "__ movl(Address(r9, r10, (Address::ScaleFactor)1, -0x35beb335), r8);", // IID921 - "__ movl(Address(r10, r11, (Address::ScaleFactor)2, +0x432edd3d), r9);", // IID922 - "__ movl(Address(r11, +0x99a62c), r10);", // IID923 - "__ movl(Address(r12, r13, (Address::ScaleFactor)3, -0x62e1905), r11);", // IID924 - "__ movl(Address(r13, r14, (Address::ScaleFactor)3, +0x4d60e579), r12);", // IID925 - "__ movl(Address(r14, r15, (Address::ScaleFactor)1, -0x31767c10), r13);", // IID926 - "__ movl(Address(r15, r16, (Address::ScaleFactor)3, -0x487ba491), r14);", // IID927 - "__ movl(Address(r16, r17, (Address::ScaleFactor)1, -0x3150d005), r15);", // IID928 - "__ movl(Address(r17, r18, (Address::ScaleFactor)3, -0x27bbc6a), r16);", // IID929 - "__ movl(Address(r18, r19, (Address::ScaleFactor)3, +0x37ff20a0), r17);", // IID930 - "__ movl(Address(r19, r20, (Address::ScaleFactor)3, -0x7c5eb8ad), r18);", // IID931 - "__ movl(Address(r20, r21, (Address::ScaleFactor)1, -0x582e9d6a), r19);", // IID932 - "__ movl(Address(r21, -0x10358dbf), r20);", // IID933 - "__ movl(Address(r22, -0x11698931), r21);", // IID934 - "__ movl(Address(r23, r24, (Address::ScaleFactor)0, -0x6dc6b79d), r22);", // IID935 - "__ movl(Address(r24, r25, (Address::ScaleFactor)2, +0x43dda2a5), r23);", // IID936 - "__ movl(Address(r25, r26, (Address::ScaleFactor)1, -0x63ee960b), r24);", // IID937 - "__ movl(Address(r26, r27, (Address::ScaleFactor)3, -0x85a467d), r25);", // IID938 - "__ movl(Address(r27, r28, (Address::ScaleFactor)1, -0x59dc267b), r26);", // IID939 - "__ movl(Address(r28, r29, (Address::ScaleFactor)3, +0x1899e440), r27);", // IID940 - "__ movl(Address(r29, r30, (Address::ScaleFactor)3, -0x5bfd25e9), r28);", // IID941 - "__ movl(Address(r30, r31, (Address::ScaleFactor)0, +0x3b7167b7), r29);", // IID942 - "__ movl(Address(r31, rcx, (Address::ScaleFactor)3, +0x4faeaf91), r30);", // IID943 - "__ movl(Address(rcx, rdx, (Address::ScaleFactor)0, -0x69d3ce71), r31);", // IID944 -#endif // _LP64 - "__ xaddb(Address(rdx, +0x502efa46), rcx);", // IID945 -#ifdef _LP64 - "__ xaddb(Address(rbx, r8, (Address::ScaleFactor)0, +0x9897189), rdx);", // IID946 - "__ xaddb(Address(r8, r9, (Address::ScaleFactor)3, -0x7bfb7872), rbx);", // IID947 - "__ xaddb(Address(r9, -0x3a1b7bec), r8);", // IID948 - "__ xaddb(Address(r10, r11, (Address::ScaleFactor)2, -0x32f807a0), r9);", // IID949 - "__ xaddb(Address(r11, r12, (Address::ScaleFactor)3, -0x4e468909), r10);", // IID950 - "__ xaddb(Address(r12, -0x4fb2949b), r11);", // IID951 - "__ xaddb(Address(r13, r14, (Address::ScaleFactor)3, -0x36a64193), r12);", // IID952 - "__ xaddb(Address(r14, r15, (Address::ScaleFactor)0, +0x5f8c77d8), r13);", // IID953 - "__ xaddb(Address(r15, r16, (Address::ScaleFactor)2, +0x456e9f36), r14);", // IID954 - "__ xaddb(Address(r16, r17, (Address::ScaleFactor)1, +0x5e4fa69), r15);", // IID955 - "__ xaddb(Address(r17, r18, (Address::ScaleFactor)0, -0x25c56e6), r16);", // IID956 - "__ xaddb(Address(r18, r19, (Address::ScaleFactor)0, -0x53593b7), r17);", // IID957 - "__ xaddb(Address(r19, r20, (Address::ScaleFactor)2, +0x3586b152), r18);", // IID958 - "__ xaddb(Address(r20, -0x12ddf677), r19);", // IID959 - "__ xaddb(Address(r21, r22, (Address::ScaleFactor)0, +0x3e91e6e1), r20);", // IID960 - "__ xaddb(Address(r22, r23, (Address::ScaleFactor)3, +0x5326f784), r21);", // IID961 - "__ xaddb(Address(r23, r24, (Address::ScaleFactor)2, +0x38ae4f46), r22);", // IID962 - "__ xaddb(Address(r24, r25, (Address::ScaleFactor)2, -0x26a3b517), r23);", // IID963 - "__ xaddb(Address(r25, r26, (Address::ScaleFactor)3, +0x6416ebe7), r24);", // IID964 - "__ xaddb(Address(r26, r27, (Address::ScaleFactor)0, +0x74164293), r25);", // IID965 - "__ xaddb(Address(r27, r28, (Address::ScaleFactor)0, +0x114e745e), r26);", // IID966 - "__ xaddb(Address(r28, r29, (Address::ScaleFactor)3, -0x4f28edb9), r27);", // IID967 - "__ xaddb(Address(r29, r30, (Address::ScaleFactor)0, +0x257830e5), r28);", // IID968 - "__ xaddb(Address(r30, r31, (Address::ScaleFactor)0, -0x63e81eda), r29);", // IID969 - "__ xaddb(Address(r31, rcx, (Address::ScaleFactor)1, -0x1c40fea9), r30);", // IID970 - "__ xaddb(Address(rcx, rdx, (Address::ScaleFactor)3, -0x3e1f0bed), r31);", // IID971 -#endif // _LP64 - "__ xaddw(Address(rdx, rbx, (Address::ScaleFactor)3, -0xf4c2c24), rcx);", // IID972 -#ifdef _LP64 - "__ xaddw(Address(rbx, r8, (Address::ScaleFactor)3, +0x52adc112), rdx);", // IID973 - "__ xaddw(Address(r8, -0x136e9c8c), rbx);", // IID974 - "__ xaddw(Address(r9, r10, (Address::ScaleFactor)0, +0x68f45686), r8);", // IID975 - "__ xaddw(Address(r10, r11, (Address::ScaleFactor)2, -0x109d415d), r9);", // IID976 - "__ xaddw(Address(r11, r12, (Address::ScaleFactor)1, +0x751c25bb), r10);", // IID977 - "__ xaddw(Address(r12, r13, (Address::ScaleFactor)2, +0x56fbde08), r11);", // IID978 - "__ xaddw(Address(r13, r14, (Address::ScaleFactor)3, +0x7ec2df5d), r12);", // IID979 - "__ xaddw(Address(r14, r15, (Address::ScaleFactor)0, -0x15234ced), r13);", // IID980 - "__ xaddw(Address(r15, r16, (Address::ScaleFactor)2, +0x7c6b4340), r14);", // IID981 - "__ xaddw(Address(r16, r17, (Address::ScaleFactor)1, -0x23d658fa), r15);", // IID982 - "__ xaddw(Address(r17, r18, (Address::ScaleFactor)2, -0x94e760d), r16);", // IID983 - "__ xaddw(Address(r18, r19, (Address::ScaleFactor)2, +0x5fbb0a7e), r17);", // IID984 - "__ xaddw(Address(r19, r20, (Address::ScaleFactor)3, +0x53111632), r18);", // IID985 - "__ xaddw(Address(r20, r21, (Address::ScaleFactor)2, +0x1f96a4ae), r19);", // IID986 - "__ xaddw(Address(r21, r22, (Address::ScaleFactor)0, -0x2b8217f), r20);", // IID987 - "__ xaddw(Address(r22, r23, (Address::ScaleFactor)3, +0x7b499e08), r21);", // IID988 - "__ xaddw(Address(r23, r24, (Address::ScaleFactor)2, +0x562ee161), r22);", // IID989 - "__ xaddw(Address(r24, r25, (Address::ScaleFactor)0, +0x5fc359a6), r23);", // IID990 - "__ xaddw(Address(r25, r26, (Address::ScaleFactor)1, +0x6bff816c), r24);", // IID991 - "__ xaddw(Address(r26, r27, (Address::ScaleFactor)1, -0x4bcd5e59), r25);", // IID992 - "__ xaddw(Address(r27, r28, (Address::ScaleFactor)2, -0x23a4d8a8), r26);", // IID993 - "__ xaddw(Address(r28, r29, (Address::ScaleFactor)0, +0x52182f0f), r27);", // IID994 - "__ xaddw(Address(r29, r30, (Address::ScaleFactor)1, -0x7c6578c8), r28);", // IID995 - "__ xaddw(Address(r30, r31, (Address::ScaleFactor)1, +0x6bfd1a40), r29);", // IID996 - "__ xaddw(Address(r31, rcx, (Address::ScaleFactor)1, -0x2c144e79), r30);", // IID997 - "__ xaddw(Address(rcx, rdx, (Address::ScaleFactor)2, -0x1ae5aff8), r31);", // IID998 -#endif // _LP64 - "__ xaddl(Address(rdx, rbx, (Address::ScaleFactor)2, +0x3d7b838d), rcx);", // IID999 -#ifdef _LP64 - "__ xaddl(Address(rbx, r8, (Address::ScaleFactor)3, -0x174b7ffc), rdx);", // IID1000 - "__ xaddl(Address(r8, r9, (Address::ScaleFactor)0, +0x29431add), rbx);", // IID1001 - "__ xaddl(Address(r9, r10, (Address::ScaleFactor)0, -0x394cc353), r8);", // IID1002 - "__ xaddl(Address(r10, r11, (Address::ScaleFactor)0, -0x463c6a76), r9);", // IID1003 - "__ xaddl(Address(r11, r12, (Address::ScaleFactor)3, +0x54d2cb28), r10);", // IID1004 - "__ xaddl(Address(r12, r13, (Address::ScaleFactor)0, -0x54cd730), r11);", // IID1005 - "__ xaddl(Address(r13, r14, (Address::ScaleFactor)3, -0x637ce395), r12);", // IID1006 - "__ xaddl(Address(r14, r15, (Address::ScaleFactor)2, -0x48f66777), r13);", // IID1007 - "__ xaddl(Address(r15, r16, (Address::ScaleFactor)2, +0x6ad4cd7a), r14);", // IID1008 - "__ xaddl(Address(r16, -0x20129707), r15);", // IID1009 - "__ xaddl(Address(r17, +0x5a7c7f1b), r16);", // IID1010 - "__ xaddl(Address(r18, r19, (Address::ScaleFactor)2, +0x7f21e995), r17);", // IID1011 - "__ xaddl(Address(r19, -0x14750607), r18);", // IID1012 - "__ xaddl(Address(r20, r21, (Address::ScaleFactor)0, -0x1dd7a8b8), r19);", // IID1013 - "__ xaddl(Address(r21, r22, (Address::ScaleFactor)2, +0x2203447), r20);", // IID1014 - "__ xaddl(Address(r22, -0x156d418a), r21);", // IID1015 - "__ xaddl(Address(r23, r24, (Address::ScaleFactor)3, -0x435dafc7), r22);", // IID1016 - "__ xaddl(Address(r24, +0x1f574faf), r23);", // IID1017 - "__ xaddl(Address(r25, +0x6ceb8a99), r24);", // IID1018 - "__ xaddl(Address(r26, r27, (Address::ScaleFactor)0, +0xe266f09), r25);", // IID1019 - "__ xaddl(Address(r27, +0x70eb5221), r26);", // IID1020 - "__ xaddl(Address(r28, r29, (Address::ScaleFactor)1, +0xcf1613b), r27);", // IID1021 - "__ xaddl(Address(r29, r30, (Address::ScaleFactor)2, -0x5466d765), r28);", // IID1022 - "__ xaddl(Address(r30, r31, (Address::ScaleFactor)1, +0x5924d2fd), r29);", // IID1023 - "__ xaddl(Address(r31, rcx, (Address::ScaleFactor)3, +0x5b472ea8), r30);", // IID1024 - "__ xaddl(Address(rcx, rdx, (Address::ScaleFactor)2, +0x74780797), r31);", // IID1025 -#endif // _LP64 - "__ adcl(Address(rcx, rdx, (Address::ScaleFactor)2, +0x2ee0db62), 1);", // IID1026 - "__ adcl(Address(rdx, rbx, (Address::ScaleFactor)1, +0x2ee19667), 1);", // IID1027 -#ifdef _LP64 - "__ adcl(Address(rbx, -0x5e81ddb4), 1);", // IID1028 - "__ adcl(Address(r8, r9, (Address::ScaleFactor)3, -0x409e5e85), 1);", // IID1029 - "__ adcl(Address(r9, r10, (Address::ScaleFactor)3, +0x697a482b), 1);", // IID1030 - "__ adcl(Address(r10, +0x7d5bbd58), 1);", // IID1031 - "__ adcl(Address(r11, r12, (Address::ScaleFactor)2, -0xb39f4e1), 1);", // IID1032 - "__ adcl(Address(r12, r13, (Address::ScaleFactor)1, +0x27642631), 1);", // IID1033 - "__ adcl(Address(r13, -0xa99680e), 1);", // IID1034 - "__ adcl(Address(r14, r15, (Address::ScaleFactor)0, -0x4b00891c), 1);", // IID1035 - "__ adcl(Address(r15, r16, (Address::ScaleFactor)0, -0x56c51eff), 1);", // IID1036 - "__ adcl(Address(r16, r17, (Address::ScaleFactor)2, +0x53d3de24), 1);", // IID1037 - "__ adcl(Address(r17, r18, (Address::ScaleFactor)0, +0x481c1324), 1);", // IID1038 - "__ adcl(Address(r18, r19, (Address::ScaleFactor)3, -0x66dc9132), 1);", // IID1039 - "__ adcl(Address(r19, r20, (Address::ScaleFactor)2, -0x2dd1de6b), 1);", // IID1040 - "__ adcl(Address(r20, r21, (Address::ScaleFactor)1, -0x69300b50), 1);", // IID1041 - "__ adcl(Address(r21, r22, (Address::ScaleFactor)3, +0x4a2e5370), 1);", // IID1042 - "__ adcl(Address(r22, r23, (Address::ScaleFactor)2, -0x5e3f28e6), 1);", // IID1043 - "__ adcl(Address(r23, r24, (Address::ScaleFactor)3, -0x7687534), 1);", // IID1044 - "__ adcl(Address(r24, -0x6631bcde), 1);", // IID1045 - "__ adcl(Address(r25, r26, (Address::ScaleFactor)0, +0x5479e63b), 1);", // IID1046 - "__ adcl(Address(r26, +0x2e3d2562), 1);", // IID1047 - "__ adcl(Address(r27, +0x5dc20fa8), 1);", // IID1048 - "__ adcl(Address(r28, r29, (Address::ScaleFactor)1, +0x406b84ba), 1);", // IID1049 - "__ adcl(Address(r29, -0x2ea6ae78), 1);", // IID1050 - "__ adcl(Address(r30, r31, (Address::ScaleFactor)2, -0x450889bb), 1);", // IID1051 - "__ adcl(Address(r31, rcx, (Address::ScaleFactor)1, +0x7b1074f1), 1);", // IID1052 - "__ adcl(Address(rcx, rdx, (Address::ScaleFactor)1, +0x4192d5b8), 16);", // IID1053 - "__ adcl(Address(rdx, rbx, (Address::ScaleFactor)2, -0x248684b0), 16);", // IID1054 - "__ adcl(Address(rbx, r8, (Address::ScaleFactor)0, -0x66a9b233), 16);", // IID1055 - "__ adcl(Address(r8, r9, (Address::ScaleFactor)0, +0x41e9a8b3), 16);", // IID1056 - "__ adcl(Address(r9, r10, (Address::ScaleFactor)2, +0x1b4f7b95), 16);", // IID1057 - "__ adcl(Address(r10, r11, (Address::ScaleFactor)1, +0x67c20913), 16);", // IID1058 - "__ adcl(Address(r11, -0x4b66d786), 16);", // IID1059 - "__ adcl(Address(r12, +0x3e60fffd), 16);", // IID1060 - "__ adcl(Address(r13, r14, (Address::ScaleFactor)3, +0x26587590), 16);", // IID1061 - "__ adcl(Address(r14, r15, (Address::ScaleFactor)2, +0x25fda305), 16);", // IID1062 - "__ adcl(Address(r15, r16, (Address::ScaleFactor)0, -0x1fdacc44), 16);", // IID1063 - "__ adcl(Address(r16, r17, (Address::ScaleFactor)3, -0x4971f0ed), 16);", // IID1064 - "__ adcl(Address(r17, r18, (Address::ScaleFactor)1, -0x34cfc717), 16);", // IID1065 - "__ adcl(Address(r18, r19, (Address::ScaleFactor)2, -0x3078c409), 16);", // IID1066 - "__ adcl(Address(r19, r20, (Address::ScaleFactor)2, -0x1fe0b887), 16);", // IID1067 - "__ adcl(Address(r20, r21, (Address::ScaleFactor)0, -0x3c181cb6), 16);", // IID1068 - "__ adcl(Address(r21, r22, (Address::ScaleFactor)2, +0x30ea4a21), 16);", // IID1069 - "__ adcl(Address(r22, r23, (Address::ScaleFactor)0, +0x63b2504), 16);", // IID1070 - "__ adcl(Address(r23, r24, (Address::ScaleFactor)0, +0x8329f0b), 16);", // IID1071 - "__ adcl(Address(r24, +0x125b7677), 16);", // IID1072 - "__ adcl(Address(r25, r26, (Address::ScaleFactor)1, +0x77cca61e), 16);", // IID1073 - "__ adcl(Address(r26, +0x4231125f), 16);", // IID1074 - "__ adcl(Address(r27, r28, (Address::ScaleFactor)0, +0x6d8e918a), 16);", // IID1075 - "__ adcl(Address(r28, r29, (Address::ScaleFactor)3, +0x77e8eab2), 16);", // IID1076 - "__ adcl(Address(r29, r30, (Address::ScaleFactor)0, +0x7d3f7447), 16);", // IID1077 - "__ adcl(Address(r30, r31, (Address::ScaleFactor)1, +0x744cb418), 16);", // IID1078 - "__ adcl(Address(r31, rcx, (Address::ScaleFactor)2, +0x7de657be), 16);", // IID1079 - "__ adcl(Address(rcx, rdx, (Address::ScaleFactor)0, -0x4e3cbfea), 256);", // IID1080 - "__ adcl(Address(rdx, +0x2962a551), 256);", // IID1081 - "__ adcl(Address(rbx, r8, (Address::ScaleFactor)2, +0x7754a996), 256);", // IID1082 - "__ adcl(Address(r8, r9, (Address::ScaleFactor)1, -0x771aec2a), 256);", // IID1083 - "__ adcl(Address(r9, r10, (Address::ScaleFactor)0, -0x79944e9b), 256);", // IID1084 - "__ adcl(Address(r10, r11, (Address::ScaleFactor)2, +0x69f67cb0), 256);", // IID1085 - "__ adcl(Address(r11, r12, (Address::ScaleFactor)1, +0x3696efe3), 256);", // IID1086 - "__ adcl(Address(r12, r13, (Address::ScaleFactor)3, -0x80d26a4), 256);", // IID1087 - "__ adcl(Address(r13, +0x53ea986a), 256);", // IID1088 - "__ adcl(Address(r14, r15, (Address::ScaleFactor)2, -0x779dafb4), 256);", // IID1089 - "__ adcl(Address(r15, r16, (Address::ScaleFactor)1, -0x6761dce4), 256);", // IID1090 - "__ adcl(Address(r16, r17, (Address::ScaleFactor)1, +0x2086863), 256);", // IID1091 - "__ adcl(Address(r17, r18, (Address::ScaleFactor)2, -0x75d4e7cb), 256);", // IID1092 - "__ adcl(Address(r18, r19, (Address::ScaleFactor)3, -0x480358ac), 256);", // IID1093 - "__ adcl(Address(r19, r20, (Address::ScaleFactor)0, -0x2f26eb56), 256);", // IID1094 - "__ adcl(Address(r20, r21, (Address::ScaleFactor)0, -0x3cec57eb), 256);", // IID1095 - "__ adcl(Address(r21, r22, (Address::ScaleFactor)1, +0xb147139), 256);", // IID1096 - "__ adcl(Address(r22, r23, (Address::ScaleFactor)1, -0x718c61e1), 256);", // IID1097 - "__ adcl(Address(r23, +0x3f7d6577), 256);", // IID1098 - "__ adcl(Address(r24, r25, (Address::ScaleFactor)3, +0x372dc031), 256);", // IID1099 - "__ adcl(Address(r25, -0x245e267f), 256);", // IID1100 - "__ adcl(Address(r26, r27, (Address::ScaleFactor)1, +0x4757ffd5), 256);", // IID1101 - "__ adcl(Address(r27, r28, (Address::ScaleFactor)0, +0x4a744193), 256);", // IID1102 - "__ adcl(Address(r28, r29, (Address::ScaleFactor)0, -0x424575e5), 256);", // IID1103 - "__ adcl(Address(r29, r30, (Address::ScaleFactor)0, +0x4e178d48), 256);", // IID1104 - "__ adcl(Address(r30, r31, (Address::ScaleFactor)1, -0x5e34ca92), 256);", // IID1105 - "__ adcl(Address(r31, rcx, (Address::ScaleFactor)0, -0x4d8f4a94), 256);", // IID1106 - "__ adcl(Address(rcx, rdx, (Address::ScaleFactor)1, +0x534d0637), 4096);", // IID1107 - "__ adcl(Address(rdx, rbx, (Address::ScaleFactor)0, +0x3fb1e1d7), 4096);", // IID1108 - "__ adcl(Address(rbx, r8, (Address::ScaleFactor)0, -0x2d21fe2), 4096);", // IID1109 - "__ adcl(Address(r8, r9, (Address::ScaleFactor)0, +0x3c194775), 4096);", // IID1110 - "__ adcl(Address(r9, r10, (Address::ScaleFactor)3, +0x58481466), 4096);", // IID1111 - "__ adcl(Address(r10, r11, (Address::ScaleFactor)0, -0x5508652d), 4096);", // IID1112 - "__ adcl(Address(r11, -0x37389499), 4096);", // IID1113 - "__ adcl(Address(r12, r13, (Address::ScaleFactor)3, -0x4b65498c), 4096);", // IID1114 - "__ adcl(Address(r13, r14, (Address::ScaleFactor)3, +0x34a91d3e), 4096);", // IID1115 - "__ adcl(Address(r14, +0x5e64608d), 4096);", // IID1116 - "__ adcl(Address(r15, r16, (Address::ScaleFactor)0, +0x5f5b4d40), 4096);", // IID1117 - "__ adcl(Address(r16, -0x1c5bcd45), 4096);", // IID1118 - "__ adcl(Address(r17, r18, (Address::ScaleFactor)3, +0x4f4411c1), 4096);", // IID1119 - "__ adcl(Address(r18, r19, (Address::ScaleFactor)0, -0x6165eea3), 4096);", // IID1120 - "__ adcl(Address(r19, r20, (Address::ScaleFactor)3, -0x78b51bfc), 4096);", // IID1121 - "__ adcl(Address(r20, -0x1c7bc4b8), 4096);", // IID1122 - "__ adcl(Address(r21, -0x7158c161), 4096);", // IID1123 - "__ adcl(Address(r22, r23, (Address::ScaleFactor)2, +0x70db10d), 4096);", // IID1124 - "__ adcl(Address(r23, r24, (Address::ScaleFactor)2, -0x35f0f12e), 4096);", // IID1125 - "__ adcl(Address(r24, r25, (Address::ScaleFactor)2, +0x49240fbd), 4096);", // IID1126 - "__ adcl(Address(r25, r26, (Address::ScaleFactor)3, +0x7f994ae7), 4096);", // IID1127 - "__ adcl(Address(r26, r27, (Address::ScaleFactor)1, -0x2b7640bd), 4096);", // IID1128 - "__ adcl(Address(r27, r28, (Address::ScaleFactor)0, -0x72436c78), 4096);", // IID1129 - "__ adcl(Address(r28, r29, (Address::ScaleFactor)0, -0x4562ab27), 4096);", // IID1130 - "__ adcl(Address(r29, -0x6d672379), 4096);", // IID1131 - "__ adcl(Address(r30, +0x37ebd2bb), 4096);", // IID1132 - "__ adcl(Address(r31, rcx, (Address::ScaleFactor)1, +0x5c19945), 4096);", // IID1133 - "__ adcl(Address(rcx, rdx, (Address::ScaleFactor)0, -0x2d6d5fac), 65536);", // IID1134 - "__ adcl(Address(rdx, rbx, (Address::ScaleFactor)1, -0x3db43174), 65536);", // IID1135 - "__ adcl(Address(rbx, r8, (Address::ScaleFactor)3, -0x1fac6e33), 65536);", // IID1136 - "__ adcl(Address(r8, r9, (Address::ScaleFactor)0, +0x25642d10), 65536);", // IID1137 - "__ adcl(Address(r9, r10, (Address::ScaleFactor)1, -0x703c2714), 65536);", // IID1138 - "__ adcl(Address(r10, r11, (Address::ScaleFactor)0, +0x4aa7de49), 65536);", // IID1139 - "__ adcl(Address(r11, r12, (Address::ScaleFactor)3, +0x26a1ed2f), 65536);", // IID1140 - "__ adcl(Address(r12, r13, (Address::ScaleFactor)3, -0x36ebc2e7), 65536);", // IID1141 - "__ adcl(Address(r13, -0x2081fe1d), 65536);", // IID1142 - "__ adcl(Address(r14, r15, (Address::ScaleFactor)2, -0x232c7bf6), 65536);", // IID1143 - "__ adcl(Address(r15, r16, (Address::ScaleFactor)3, +0x2f8a6e95), 65536);", // IID1144 - "__ adcl(Address(r16, r17, (Address::ScaleFactor)0, -0x2a09e509), 65536);", // IID1145 - "__ adcl(Address(r17, r18, (Address::ScaleFactor)0, +0x6483714d), 65536);", // IID1146 - "__ adcl(Address(r18, r19, (Address::ScaleFactor)0, +0x71f159ac), 65536);", // IID1147 - "__ adcl(Address(r19, r20, (Address::ScaleFactor)0, -0x63454cb6), 65536);", // IID1148 - "__ adcl(Address(r20, r21, (Address::ScaleFactor)3, +0x2dddaf24), 65536);", // IID1149 - "__ adcl(Address(r21, r22, (Address::ScaleFactor)1, +0x38c66a24), 65536);", // IID1150 - "__ adcl(Address(r22, r23, (Address::ScaleFactor)1, -0x7133415c), 65536);", // IID1151 - "__ adcl(Address(r23, r24, (Address::ScaleFactor)2, +0x1e8a18c), 65536);", // IID1152 - "__ adcl(Address(r24, r25, (Address::ScaleFactor)2, +0x69cf613b), 65536);", // IID1153 - "__ adcl(Address(r25, r26, (Address::ScaleFactor)3, -0x3fe6a8e0), 65536);", // IID1154 - "__ adcl(Address(r26, r27, (Address::ScaleFactor)1, +0x3670e7ff), 65536);", // IID1155 - "__ adcl(Address(r27, r28, (Address::ScaleFactor)3, +0x2bfa301f), 65536);", // IID1156 - "__ adcl(Address(r28, r29, (Address::ScaleFactor)2, +0x40c6fc63), 65536);", // IID1157 - "__ adcl(Address(r29, r30, (Address::ScaleFactor)1, +0x34afa3b0), 65536);", // IID1158 - "__ adcl(Address(r30, r31, (Address::ScaleFactor)2, -0x5c913af4), 65536);", // IID1159 - "__ adcl(Address(r31, +0x28bc53ba), 65536);", // IID1160 - "__ adcl(Address(rcx, rdx, (Address::ScaleFactor)0, -0x4536fad1), 1048576);", // IID1161 - "__ adcl(Address(rdx, rbx, (Address::ScaleFactor)1, -0x2c9fb8c9), 1048576);", // IID1162 - "__ adcl(Address(rbx, r8, (Address::ScaleFactor)1, -0x50fcf745), 1048576);", // IID1163 - "__ adcl(Address(r8, r9, (Address::ScaleFactor)0, -0x6f2313c2), 1048576);", // IID1164 - "__ adcl(Address(r9, r10, (Address::ScaleFactor)2, -0x6ea1ed89), 1048576);", // IID1165 - "__ adcl(Address(r10, -0x4b8389a3), 1048576);", // IID1166 - "__ adcl(Address(r11, r12, (Address::ScaleFactor)3, -0x5428f1d7), 1048576);", // IID1167 - "__ adcl(Address(r12, +0x66523bad), 1048576);", // IID1168 - "__ adcl(Address(r13, r14, (Address::ScaleFactor)3, +0x19ca699d), 1048576);", // IID1169 - "__ adcl(Address(r14, r15, (Address::ScaleFactor)2, +0x36658716), 1048576);", // IID1170 - "__ adcl(Address(r15, r16, (Address::ScaleFactor)0, +0x47145274), 1048576);", // IID1171 - "__ adcl(Address(r16, r17, (Address::ScaleFactor)1, +0x6e7fc99a), 1048576);", // IID1172 - "__ adcl(Address(r17, r18, (Address::ScaleFactor)2, -0x428f9a7c), 1048576);", // IID1173 - "__ adcl(Address(r18, -0x2b3500b), 1048576);", // IID1174 - "__ adcl(Address(r19, r20, (Address::ScaleFactor)2, +0x6891da33), 1048576);", // IID1175 - "__ adcl(Address(r20, r21, (Address::ScaleFactor)3, -0x160888aa), 1048576);", // IID1176 - "__ adcl(Address(r21, -0x2f3e099d), 1048576);", // IID1177 - "__ adcl(Address(r22, r23, (Address::ScaleFactor)0, +0x203bd357), 1048576);", // IID1178 - "__ adcl(Address(r23, r24, (Address::ScaleFactor)2, +0x799b6e83), 1048576);", // IID1179 - "__ adcl(Address(r24, -0x64b29106), 1048576);", // IID1180 - "__ adcl(Address(r25, r26, (Address::ScaleFactor)0, +0x549145c6), 1048576);", // IID1181 - "__ adcl(Address(r26, -0x3bfb800a), 1048576);", // IID1182 - "__ adcl(Address(r27, r28, (Address::ScaleFactor)3, -0x179ffd0), 1048576);", // IID1183 - "__ adcl(Address(r28, +0x6901ea3c), 1048576);", // IID1184 - "__ adcl(Address(r29, r30, (Address::ScaleFactor)1, +0x40b131a), 1048576);", // IID1185 - "__ adcl(Address(r30, r31, (Address::ScaleFactor)0, +0x48d005c8), 1048576);", // IID1186 - "__ adcl(Address(r31, rcx, (Address::ScaleFactor)3, -0x160028f8), 1048576);", // IID1187 - "__ adcl(Address(rcx, -0x723ce289), 16777216);", // IID1188 - "__ adcl(Address(rdx, +0x48f44d49), 16777216);", // IID1189 - "__ adcl(Address(rbx, r8, (Address::ScaleFactor)2, +0x5b434548), 16777216);", // IID1190 - "__ adcl(Address(r8, r9, (Address::ScaleFactor)3, -0x5d358cfd), 16777216);", // IID1191 - "__ adcl(Address(r9, +0x582ed869), 16777216);", // IID1192 - "__ adcl(Address(r10, +0x7d8a5db9), 16777216);", // IID1193 - "__ adcl(Address(r11, r12, (Address::ScaleFactor)2, +0x2cf76d55), 16777216);", // IID1194 - "__ adcl(Address(r12, -0x67564965), 16777216);", // IID1195 - "__ adcl(Address(r13, r14, (Address::ScaleFactor)0, -0x877c800), 16777216);", // IID1196 - "__ adcl(Address(r14, r15, (Address::ScaleFactor)1, +0x7ed6cc43), 16777216);", // IID1197 - "__ adcl(Address(r15, r16, (Address::ScaleFactor)1, -0x2ef89492), 16777216);", // IID1198 - "__ adcl(Address(r16, r17, (Address::ScaleFactor)1, +0x3c7e292c), 16777216);", // IID1199 - "__ adcl(Address(r17, r18, (Address::ScaleFactor)1, +0x5c5d66ef), 16777216);", // IID1200 - "__ adcl(Address(r18, r19, (Address::ScaleFactor)1, -0x73932ab4), 16777216);", // IID1201 - "__ adcl(Address(r19, r20, (Address::ScaleFactor)3, +0x7b8c6e0), 16777216);", // IID1202 - "__ adcl(Address(r20, r21, (Address::ScaleFactor)1, -0x1ea2a996), 16777216);", // IID1203 - "__ adcl(Address(r21, r22, (Address::ScaleFactor)0, -0x446499dd), 16777216);", // IID1204 - "__ adcl(Address(r22, +0x8e3be96), 16777216);", // IID1205 - "__ adcl(Address(r23, r24, (Address::ScaleFactor)0, +0x6dd35da), 16777216);", // IID1206 - "__ adcl(Address(r24, -0x6cf3b479), 16777216);", // IID1207 - "__ adcl(Address(r25, r26, (Address::ScaleFactor)1, +0x1b4a2871), 16777216);", // IID1208 - "__ adcl(Address(r26, r27, (Address::ScaleFactor)1, +0x53bdaaea), 16777216);", // IID1209 - "__ adcl(Address(r27, -0x3870c8ed), 16777216);", // IID1210 - "__ adcl(Address(r28, -0x116c7f0e), 16777216);", // IID1211 - "__ adcl(Address(r29, r30, (Address::ScaleFactor)3, -0x21f87486), 16777216);", // IID1212 - "__ adcl(Address(r30, r31, (Address::ScaleFactor)0, -0x74cef949), 16777216);", // IID1213 - "__ adcl(Address(r31, rcx, (Address::ScaleFactor)0, -0x63879059), 16777216);", // IID1214 - "__ adcl(Address(rcx, rdx, (Address::ScaleFactor)1, -0x4f1a1218), 268435456);", // IID1215 - "__ adcl(Address(rdx, rbx, (Address::ScaleFactor)3, +0x58d89dd9), 268435456);", // IID1216 - "__ adcl(Address(rbx, r8, (Address::ScaleFactor)1, -0x771f0ce9), 268435456);", // IID1217 - "__ adcl(Address(r8, r9, (Address::ScaleFactor)1, +0x703b029a), 268435456);", // IID1218 - "__ adcl(Address(r9, r10, (Address::ScaleFactor)2, -0x1b0cb4b0), 268435456);", // IID1219 - "__ adcl(Address(r10, r11, (Address::ScaleFactor)3, -0x5e766377), 268435456);", // IID1220 - "__ adcl(Address(r11, r12, (Address::ScaleFactor)1, +0x55503d62), 268435456);", // IID1221 - "__ adcl(Address(r12, r13, (Address::ScaleFactor)2, +0xc499123), 268435456);", // IID1222 - "__ adcl(Address(r13, r14, (Address::ScaleFactor)2, +0x2ce4c452), 268435456);", // IID1223 - "__ adcl(Address(r14, r15, (Address::ScaleFactor)0, -0x1c9cbeb2), 268435456);", // IID1224 - "__ adcl(Address(r15, r16, (Address::ScaleFactor)0, -0x335b421), 268435456);", // IID1225 - "__ adcl(Address(r16, r17, (Address::ScaleFactor)0, +0x130c7301), 268435456);", // IID1226 - "__ adcl(Address(r17, r18, (Address::ScaleFactor)0, -0x4699336b), 268435456);", // IID1227 - "__ adcl(Address(r18, r19, (Address::ScaleFactor)2, +0x3ae0feb4), 268435456);", // IID1228 - "__ adcl(Address(r19, +0x5188a91c), 268435456);", // IID1229 - "__ adcl(Address(r20, r21, (Address::ScaleFactor)3, -0x217378dc), 268435456);", // IID1230 - "__ adcl(Address(r21, r22, (Address::ScaleFactor)1, -0xdbf4f65), 268435456);", // IID1231 - "__ adcl(Address(r22, r23, (Address::ScaleFactor)3, +0xd91a8ec), 268435456);", // IID1232 - "__ adcl(Address(r23, r24, (Address::ScaleFactor)1, -0x46de7a0e), 268435456);", // IID1233 - "__ adcl(Address(r24, r25, (Address::ScaleFactor)3, +0x6e4112c0), 268435456);", // IID1234 - "__ adcl(Address(r25, r26, (Address::ScaleFactor)0, +0x21dd102d), 268435456);", // IID1235 - "__ adcl(Address(r26, r27, (Address::ScaleFactor)0, +0xf528aee), 268435456);", // IID1236 - "__ adcl(Address(r27, r28, (Address::ScaleFactor)3, -0x3f8969f2), 268435456);", // IID1237 - "__ adcl(Address(r28, +0x71807a0b), 268435456);", // IID1238 - "__ adcl(Address(r29, r30, (Address::ScaleFactor)2, +0x1bf2c7e2), 268435456);", // IID1239 - "__ adcl(Address(r30, r31, (Address::ScaleFactor)3, +0x1b2e50ca), 268435456);", // IID1240 - "__ adcl(Address(r31, rcx, (Address::ScaleFactor)0, -0x4ec611a0), 268435456);", // IID1241 -#endif // _LP64 - "__ andl(Address(rcx, rdx, (Address::ScaleFactor)1, -0x730cfc64), 1);", // IID1242 - "__ andl(Address(rdx, rbx, (Address::ScaleFactor)3, +0x4457e821), 1);", // IID1243 -#ifdef _LP64 - "__ andl(Address(rbx, r8, (Address::ScaleFactor)1, +0x51dceca4), 1);", // IID1244 - "__ andl(Address(r8, r9, (Address::ScaleFactor)0, +0x7ab8c466), 1);", // IID1245 - "__ andl(Address(r9, r10, (Address::ScaleFactor)2, +0xe2ebbcd), 1);", // IID1246 - "__ andl(Address(r10, r11, (Address::ScaleFactor)0, +0x4fcf3880), 1);", // IID1247 - "__ andl(Address(r11, r12, (Address::ScaleFactor)0, +0x5181f5ff), 1);", // IID1248 - "__ andl(Address(r12, r13, (Address::ScaleFactor)2, +0x38eb64f1), 1);", // IID1249 - "__ andl(Address(r13, r14, (Address::ScaleFactor)3, +0x1e956e2), 1);", // IID1250 - "__ andl(Address(r14, r15, (Address::ScaleFactor)1, -0x42494ba3), 1);", // IID1251 - "__ andl(Address(r15, r16, (Address::ScaleFactor)3, +0x640c7bf0), 1);", // IID1252 - "__ andl(Address(r16, +0x4b052b2e), 1);", // IID1253 - "__ andl(Address(r17, r18, (Address::ScaleFactor)3, +0x6dd7a95f), 1);", // IID1254 - "__ andl(Address(r18, r19, (Address::ScaleFactor)0, +0x68b34b46), 1);", // IID1255 - "__ andl(Address(r19, r20, (Address::ScaleFactor)2, -0x49099915), 1);", // IID1256 - "__ andl(Address(r20, r21, (Address::ScaleFactor)1, -0x47524fe0), 1);", // IID1257 - "__ andl(Address(r21, r22, (Address::ScaleFactor)1, +0x5d26d11a), 1);", // IID1258 - "__ andl(Address(r22, r23, (Address::ScaleFactor)2, -0x24d14f56), 1);", // IID1259 - "__ andl(Address(r23, r24, (Address::ScaleFactor)0, +0x3c22b54f), 1);", // IID1260 - "__ andl(Address(r24, +0x53a34323), 1);", // IID1261 - "__ andl(Address(r25, r26, (Address::ScaleFactor)2, +0x33c75e81), 1);", // IID1262 - "__ andl(Address(r26, r27, (Address::ScaleFactor)2, -0x5eb6c4bb), 1);", // IID1263 - "__ andl(Address(r27, -0x13c67c3b), 1);", // IID1264 - "__ andl(Address(r28, r29, (Address::ScaleFactor)3, -0x6c290356), 1);", // IID1265 - "__ andl(Address(r29, r30, (Address::ScaleFactor)2, -0x1b2eebcf), 1);", // IID1266 - "__ andl(Address(r30, r31, (Address::ScaleFactor)3, +0x5cd8197e), 1);", // IID1267 - "__ andl(Address(r31, -0xbdba296), 1);", // IID1268 - "__ andl(Address(rcx, -0x5e02d29b), 16);", // IID1269 - "__ andl(Address(rdx, +0x5ab161), 16);", // IID1270 - "__ andl(Address(rbx, r8, (Address::ScaleFactor)1, -0x17b2d6fa), 16);", // IID1271 - "__ andl(Address(r8, r9, (Address::ScaleFactor)2, -0x65a07e5a), 16);", // IID1272 - "__ andl(Address(r9, r10, (Address::ScaleFactor)3, +0x1e469f22), 16);", // IID1273 - "__ andl(Address(r10, r11, (Address::ScaleFactor)1, -0x1e83db3d), 16);", // IID1274 - "__ andl(Address(r11, r12, (Address::ScaleFactor)0, -0x1deb4643), 16);", // IID1275 - "__ andl(Address(r12, r13, (Address::ScaleFactor)1, +0x32083d39), 16);", // IID1276 - "__ andl(Address(r13, r14, (Address::ScaleFactor)1, -0x1227f66d), 16);", // IID1277 - "__ andl(Address(r14, -0x5349236d), 16);", // IID1278 - "__ andl(Address(r15, r16, (Address::ScaleFactor)1, -0x3d4b66f7), 16);", // IID1279 - "__ andl(Address(r16, r17, (Address::ScaleFactor)1, +0x5cbcfe8b), 16);", // IID1280 - "__ andl(Address(r17, r18, (Address::ScaleFactor)1, +0x6ea39860), 16);", // IID1281 - "__ andl(Address(r18, r19, (Address::ScaleFactor)3, -0x6cb66592), 16);", // IID1282 - "__ andl(Address(r19, r20, (Address::ScaleFactor)0, -0x552ef29a), 16);", // IID1283 - "__ andl(Address(r20, r21, (Address::ScaleFactor)2, -0x40d3942a), 16);", // IID1284 - "__ andl(Address(r21, r22, (Address::ScaleFactor)1, +0x3b06d985), 16);", // IID1285 - "__ andl(Address(r22, r23, (Address::ScaleFactor)0, -0x3e4c614a), 16);", // IID1286 - "__ andl(Address(r23, -0xd5002b5), 16);", // IID1287 - "__ andl(Address(r24, r25, (Address::ScaleFactor)0, -0x4597f904), 16);", // IID1288 - "__ andl(Address(r25, r26, (Address::ScaleFactor)0, +0x5dbd5205), 16);", // IID1289 - "__ andl(Address(r26, +0x54c23f20), 16);", // IID1290 - "__ andl(Address(r27, r28, (Address::ScaleFactor)2, +0x4757c7b5), 16);", // IID1291 - "__ andl(Address(r28, -0x177123d7), 16);", // IID1292 - "__ andl(Address(r29, r30, (Address::ScaleFactor)1, -0xb3b12fb), 16);", // IID1293 - "__ andl(Address(r30, r31, (Address::ScaleFactor)0, -0x7d737bc0), 16);", // IID1294 - "__ andl(Address(r31, rcx, (Address::ScaleFactor)0, -0x5db6c166), 16);", // IID1295 - "__ andl(Address(rcx, rdx, (Address::ScaleFactor)2, -0x33f8d452), 256);", // IID1296 - "__ andl(Address(rdx, -0x7175846a), 256);", // IID1297 - "__ andl(Address(rbx, r8, (Address::ScaleFactor)3, +0x6d37a581), 256);", // IID1298 - "__ andl(Address(r8, r9, (Address::ScaleFactor)1, -0x7da3df3a), 256);", // IID1299 - "__ andl(Address(r9, r10, (Address::ScaleFactor)1, +0x1202daa1), 256);", // IID1300 - "__ andl(Address(r10, r11, (Address::ScaleFactor)3, -0x2dec1338), 256);", // IID1301 - "__ andl(Address(r11, r12, (Address::ScaleFactor)1, +0x433d6da5), 256);", // IID1302 - "__ andl(Address(r12, r13, (Address::ScaleFactor)1, -0x39eac35), 256);", // IID1303 - "__ andl(Address(r13, r14, (Address::ScaleFactor)3, +0x63dd5b25), 256);", // IID1304 - "__ andl(Address(r14, r15, (Address::ScaleFactor)1, -0x2ba4e02f), 256);", // IID1305 - "__ andl(Address(r15, r16, (Address::ScaleFactor)0, +0x57492e05), 256);", // IID1306 - "__ andl(Address(r16, r17, (Address::ScaleFactor)0, +0x4dae0bf5), 256);", // IID1307 - "__ andl(Address(r17, r18, (Address::ScaleFactor)3, +0x6e888dad), 256);", // IID1308 - "__ andl(Address(r18, r19, (Address::ScaleFactor)0, +0x2060cc3e), 256);", // IID1309 - "__ andl(Address(r19, r20, (Address::ScaleFactor)1, +0x22a85180), 256);", // IID1310 - "__ andl(Address(r20, r21, (Address::ScaleFactor)0, +0x1126982d), 256);", // IID1311 - "__ andl(Address(r21, +0x4d3b0417), 256);", // IID1312 - "__ andl(Address(r22, r23, (Address::ScaleFactor)3, -0x2f5cca28), 256);", // IID1313 - "__ andl(Address(r23, r24, (Address::ScaleFactor)3, +0x5a02a8c), 256);", // IID1314 - "__ andl(Address(r24, r25, (Address::ScaleFactor)3, +0x56121615), 256);", // IID1315 - "__ andl(Address(r25, +0x6ba1f478), 256);", // IID1316 - "__ andl(Address(r26, r27, (Address::ScaleFactor)3, +0x64e62383), 256);", // IID1317 - "__ andl(Address(r27, r28, (Address::ScaleFactor)1, +0x5ed31e14), 256);", // IID1318 - "__ andl(Address(r28, r29, (Address::ScaleFactor)1, -0xdc38e66), 256);", // IID1319 - "__ andl(Address(r29, r30, (Address::ScaleFactor)1, +0x14ba88bd), 256);", // IID1320 - "__ andl(Address(r30, r31, (Address::ScaleFactor)0, +0x4e9add0c), 256);", // IID1321 - "__ andl(Address(r31, rcx, (Address::ScaleFactor)0, -0xcbf95d2), 256);", // IID1322 - "__ andl(Address(rcx, rdx, (Address::ScaleFactor)1, +0x55459478), 4096);", // IID1323 - "__ andl(Address(rdx, rbx, (Address::ScaleFactor)0, -0x779b62ec), 4096);", // IID1324 - "__ andl(Address(rbx, r8, (Address::ScaleFactor)3, -0x29665ac7), 4096);", // IID1325 - "__ andl(Address(r8, r9, (Address::ScaleFactor)2, +0x361052a7), 4096);", // IID1326 - "__ andl(Address(r9, -0x22d3e758), 4096);", // IID1327 - "__ andl(Address(r10, r11, (Address::ScaleFactor)1, +0x5e6e0409), 4096);", // IID1328 - "__ andl(Address(r11, r12, (Address::ScaleFactor)0, +0x38e8e552), 4096);", // IID1329 - "__ andl(Address(r12, r13, (Address::ScaleFactor)3, -0x2df79f28), 4096);", // IID1330 - "__ andl(Address(r13, r14, (Address::ScaleFactor)3, -0x571f673), 4096);", // IID1331 - "__ andl(Address(r14, r15, (Address::ScaleFactor)1, +0x25cd9b7a), 4096);", // IID1332 - "__ andl(Address(r15, r16, (Address::ScaleFactor)0, -0x3b649c56), 4096);", // IID1333 - "__ andl(Address(r16, r17, (Address::ScaleFactor)0, +0x2106941e), 4096);", // IID1334 - "__ andl(Address(r17, r18, (Address::ScaleFactor)1, +0x170ebb04), 4096);", // IID1335 - "__ andl(Address(r18, r19, (Address::ScaleFactor)1, +0x1f2b6a1f), 4096);", // IID1336 - "__ andl(Address(r19, r20, (Address::ScaleFactor)2, -0x5f61fd40), 4096);", // IID1337 - "__ andl(Address(r20, r21, (Address::ScaleFactor)2, -0x64be6c3d), 4096);", // IID1338 - "__ andl(Address(r21, r22, (Address::ScaleFactor)2, -0x7600b075), 4096);", // IID1339 - "__ andl(Address(r22, -0x482cdf71), 4096);", // IID1340 - "__ andl(Address(r23, +0x49409c9), 4096);", // IID1341 - "__ andl(Address(r24, r25, (Address::ScaleFactor)2, -0x5d14bf37), 4096);", // IID1342 - "__ andl(Address(r25, r26, (Address::ScaleFactor)1, +0x20a5f29c), 4096);", // IID1343 - "__ andl(Address(r26, r27, (Address::ScaleFactor)2, +0x76f7e4b6), 4096);", // IID1344 - "__ andl(Address(r27, r28, (Address::ScaleFactor)3, -0x45ed8977), 4096);", // IID1345 - "__ andl(Address(r28, -0x10ebb171), 4096);", // IID1346 - "__ andl(Address(r29, r30, (Address::ScaleFactor)0, -0x7104c8ff), 4096);", // IID1347 - "__ andl(Address(r30, r31, (Address::ScaleFactor)1, -0x67ed6e39), 4096);", // IID1348 - "__ andl(Address(r31, rcx, (Address::ScaleFactor)2, +0x7f8f8d69), 4096);", // IID1349 - "__ andl(Address(rcx, rdx, (Address::ScaleFactor)0, -0x7f22b972), 65536);", // IID1350 - "__ andl(Address(rdx, rbx, (Address::ScaleFactor)3, +0x498aa030), 65536);", // IID1351 - "__ andl(Address(rbx, r8, (Address::ScaleFactor)2, -0x9982656), 65536);", // IID1352 - "__ andl(Address(r8, r9, (Address::ScaleFactor)1, +0x41c36bb5), 65536);", // IID1353 - "__ andl(Address(r9, r10, (Address::ScaleFactor)2, -0x4c87f13d), 65536);", // IID1354 - "__ andl(Address(r10, -0x6928f05), 65536);", // IID1355 - "__ andl(Address(r11, r12, (Address::ScaleFactor)3, -0x984948b), 65536);", // IID1356 - "__ andl(Address(r12, r13, (Address::ScaleFactor)0, -0x21ac451f), 65536);", // IID1357 - "__ andl(Address(r13, r14, (Address::ScaleFactor)3, -0x1b0c688d), 65536);", // IID1358 - "__ andl(Address(r14, r15, (Address::ScaleFactor)3, -0x10a66afe), 65536);", // IID1359 - "__ andl(Address(r15, r16, (Address::ScaleFactor)2, -0x847e488), 65536);", // IID1360 - "__ andl(Address(r16, r17, (Address::ScaleFactor)1, -0x4e11b891), 65536);", // IID1361 - "__ andl(Address(r17, +0x7acc33d6), 65536);", // IID1362 - "__ andl(Address(r18, r19, (Address::ScaleFactor)1, -0x70e3419), 65536);", // IID1363 - "__ andl(Address(r19, -0x15d7bfb7), 65536);", // IID1364 - "__ andl(Address(r20, +0x5279c0c2), 65536);", // IID1365 - "__ andl(Address(r21, -0x2eb16704), 65536);", // IID1366 - "__ andl(Address(r22, +0x4558b389), 65536);", // IID1367 - "__ andl(Address(r23, r24, (Address::ScaleFactor)1, -0xf9a4a93), 65536);", // IID1368 - "__ andl(Address(r24, -0x77300c16), 65536);", // IID1369 - "__ andl(Address(r25, r26, (Address::ScaleFactor)3, -0x192745e4), 65536);", // IID1370 - "__ andl(Address(r26, r27, (Address::ScaleFactor)0, -0x1511e59a), 65536);", // IID1371 - "__ andl(Address(r27, -0x490de89c), 65536);", // IID1372 - "__ andl(Address(r28, r29, (Address::ScaleFactor)3, -0x6253cd69), 65536);", // IID1373 - "__ andl(Address(r29, r30, (Address::ScaleFactor)0, +0x7023b99), 65536);", // IID1374 - "__ andl(Address(r30, r31, (Address::ScaleFactor)1, -0x59f86ff1), 65536);", // IID1375 - "__ andl(Address(r31, rcx, (Address::ScaleFactor)0, +0x1307111d), 65536);", // IID1376 - "__ andl(Address(rcx, rdx, (Address::ScaleFactor)3, +0x443b5f8d), 1048576);", // IID1377 - "__ andl(Address(rdx, rbx, (Address::ScaleFactor)2, -0x5761c7e), 1048576);", // IID1378 - "__ andl(Address(rbx, r8, (Address::ScaleFactor)2, -0x5ad0d7f1), 1048576);", // IID1379 - "__ andl(Address(r8, r9, (Address::ScaleFactor)2, +0x64f4b78), 1048576);", // IID1380 - "__ andl(Address(r9, r10, (Address::ScaleFactor)0, +0x45db5f86), 1048576);", // IID1381 - "__ andl(Address(r10, r11, (Address::ScaleFactor)0, +0x7a8ea60d), 1048576);", // IID1382 - "__ andl(Address(r11, r12, (Address::ScaleFactor)0, -0x6df7c958), 1048576);", // IID1383 - "__ andl(Address(r12, r13, (Address::ScaleFactor)3, +0x62a59f31), 1048576);", // IID1384 - "__ andl(Address(r13, r14, (Address::ScaleFactor)0, +0x514c9868), 1048576);", // IID1385 - "__ andl(Address(r14, +0x5db88392), 1048576);", // IID1386 - "__ andl(Address(r15, r16, (Address::ScaleFactor)1, +0x689c379a), 1048576);", // IID1387 - "__ andl(Address(r16, r17, (Address::ScaleFactor)3, -0x41c80a83), 1048576);", // IID1388 - "__ andl(Address(r17, -0x15f68f59), 1048576);", // IID1389 - "__ andl(Address(r18, r19, (Address::ScaleFactor)1, -0x21dba491), 1048576);", // IID1390 - "__ andl(Address(r19, -0x53edce1), 1048576);", // IID1391 - "__ andl(Address(r20, r21, (Address::ScaleFactor)2, -0x5f124ace), 1048576);", // IID1392 - "__ andl(Address(r21, r22, (Address::ScaleFactor)1, -0x5c9a39c4), 1048576);", // IID1393 - "__ andl(Address(r22, r23, (Address::ScaleFactor)3, +0x329b72db), 1048576);", // IID1394 - "__ andl(Address(r23, r24, (Address::ScaleFactor)2, +0x4bede843), 1048576);", // IID1395 - "__ andl(Address(r24, -0x22ebbd2b), 1048576);", // IID1396 - "__ andl(Address(r25, r26, (Address::ScaleFactor)3, +0x16920a9), 1048576);", // IID1397 - "__ andl(Address(r26, r27, (Address::ScaleFactor)3, +0x67a36b92), 1048576);", // IID1398 - "__ andl(Address(r27, -0x7715b9f1), 1048576);", // IID1399 - "__ andl(Address(r28, r29, (Address::ScaleFactor)1, -0x49084699), 1048576);", // IID1400 - "__ andl(Address(r29, r30, (Address::ScaleFactor)2, -0x58e74f52), 1048576);", // IID1401 - "__ andl(Address(r30, r31, (Address::ScaleFactor)1, -0xb6511b7), 1048576);", // IID1402 - "__ andl(Address(r31, rcx, (Address::ScaleFactor)2, -0x76c8baa9), 1048576);", // IID1403 - "__ andl(Address(rcx, rdx, (Address::ScaleFactor)3, -0x55d3df5b), 16777216);", // IID1404 - "__ andl(Address(rdx, rbx, (Address::ScaleFactor)2, -0x6b333458), 16777216);", // IID1405 - "__ andl(Address(rbx, r8, (Address::ScaleFactor)3, +0x4b05f010), 16777216);", // IID1406 - "__ andl(Address(r8, -0x452bda6a), 16777216);", // IID1407 - "__ andl(Address(r9, -0x1a4d5966), 16777216);", // IID1408 - "__ andl(Address(r10, r11, (Address::ScaleFactor)1, -0x54992c7f), 16777216);", // IID1409 - "__ andl(Address(r11, r12, (Address::ScaleFactor)3, +0x79909bab), 16777216);", // IID1410 - "__ andl(Address(r12, -0x4b9d18ec), 16777216);", // IID1411 - "__ andl(Address(r13, r14, (Address::ScaleFactor)1, -0x504c8ec9), 16777216);", // IID1412 - "__ andl(Address(r14, r15, (Address::ScaleFactor)3, +0x46584f16), 16777216);", // IID1413 - "__ andl(Address(r15, r16, (Address::ScaleFactor)0, -0x7cd6cd98), 16777216);", // IID1414 - "__ andl(Address(r16, r17, (Address::ScaleFactor)0, -0x3aac21e9), 16777216);", // IID1415 - "__ andl(Address(r17, r18, (Address::ScaleFactor)2, -0x45fe1ea0), 16777216);", // IID1416 - "__ andl(Address(r18, r19, (Address::ScaleFactor)3, +0x29f3d1ff), 16777216);", // IID1417 - "__ andl(Address(r19, r20, (Address::ScaleFactor)1, -0x341d60f0), 16777216);", // IID1418 - "__ andl(Address(r20, r21, (Address::ScaleFactor)3, +0x285c53a4), 16777216);", // IID1419 - "__ andl(Address(r21, -0x4743a5b0), 16777216);", // IID1420 - "__ andl(Address(r22, r23, (Address::ScaleFactor)3, +0x5f5f5b7e), 16777216);", // IID1421 - "__ andl(Address(r23, r24, (Address::ScaleFactor)3, +0x1538fc14), 16777216);", // IID1422 - "__ andl(Address(r24, r25, (Address::ScaleFactor)1, +0x219f93c4), 16777216);", // IID1423 - "__ andl(Address(r25, +0x2c6013f1), 16777216);", // IID1424 - "__ andl(Address(r26, r27, (Address::ScaleFactor)1, +0x7ea27e1a), 16777216);", // IID1425 - "__ andl(Address(r27, -0xa7ce9a0), 16777216);", // IID1426 - "__ andl(Address(r28, r29, (Address::ScaleFactor)0, +0x1877dc76), 16777216);", // IID1427 - "__ andl(Address(r29, +0x7eaac152), 16777216);", // IID1428 - "__ andl(Address(r30, r31, (Address::ScaleFactor)1, +0x5ba7387c), 16777216);", // IID1429 - "__ andl(Address(r31, rcx, (Address::ScaleFactor)3, -0x4389c54b), 16777216);", // IID1430 - "__ andl(Address(rcx, rdx, (Address::ScaleFactor)2, +0x49de7ded), 268435456);", // IID1431 - "__ andl(Address(rdx, rbx, (Address::ScaleFactor)1, -0x29dc6faa), 268435456);", // IID1432 - "__ andl(Address(rbx, r8, (Address::ScaleFactor)2, -0x55f6d65d), 268435456);", // IID1433 - "__ andl(Address(r8, r9, (Address::ScaleFactor)1, -0x751cf24f), 268435456);", // IID1434 - "__ andl(Address(r9, r10, (Address::ScaleFactor)3, -0x18617431), 268435456);", // IID1435 - "__ andl(Address(r10, r11, (Address::ScaleFactor)1, -0x61b1c7d5), 268435456);", // IID1436 - "__ andl(Address(r11, r12, (Address::ScaleFactor)2, +0x65738d49), 268435456);", // IID1437 - "__ andl(Address(r12, r13, (Address::ScaleFactor)1, -0x42f1b310), 268435456);", // IID1438 - "__ andl(Address(r13, r14, (Address::ScaleFactor)3, -0x60ebf55f), 268435456);", // IID1439 - "__ andl(Address(r14, +0x5fc32f34), 268435456);", // IID1440 - "__ andl(Address(r15, r16, (Address::ScaleFactor)2, +0x25a158ff), 268435456);", // IID1441 - "__ andl(Address(r16, r17, (Address::ScaleFactor)3, -0x4c32596f), 268435456);", // IID1442 - "__ andl(Address(r17, r18, (Address::ScaleFactor)3, -0x43e5307d), 268435456);", // IID1443 - "__ andl(Address(r18, r19, (Address::ScaleFactor)2, +0x46cea795), 268435456);", // IID1444 - "__ andl(Address(r19, r20, (Address::ScaleFactor)0, +0x1be1e0b3), 268435456);", // IID1445 - "__ andl(Address(r20, r21, (Address::ScaleFactor)3, -0x7440989c), 268435456);", // IID1446 - "__ andl(Address(r21, r22, (Address::ScaleFactor)0, +0x33a05290), 268435456);", // IID1447 - "__ andl(Address(r22, r23, (Address::ScaleFactor)2, -0x4764c946), 268435456);", // IID1448 - "__ andl(Address(r23, +0x6aa3c967), 268435456);", // IID1449 - "__ andl(Address(r24, r25, (Address::ScaleFactor)2, -0x7901cc60), 268435456);", // IID1450 - "__ andl(Address(r25, r26, (Address::ScaleFactor)2, +0x6dce6387), 268435456);", // IID1451 - "__ andl(Address(r26, -0x72aef3d3), 268435456);", // IID1452 - "__ andl(Address(r27, r28, (Address::ScaleFactor)0, +0x4ab10c0a), 268435456);", // IID1453 - "__ andl(Address(r28, r29, (Address::ScaleFactor)3, -0x282d601c), 268435456);", // IID1454 - "__ andl(Address(r29, r30, (Address::ScaleFactor)1, +0x39cd6dde), 268435456);", // IID1455 - "__ andl(Address(r30, r31, (Address::ScaleFactor)3, -0x7fd0f3cd), 268435456);", // IID1456 - "__ andl(Address(r31, rcx, (Address::ScaleFactor)2, -0x6707785d), 268435456);", // IID1457 -#endif // _LP64 - "__ addb(Address(rcx, rdx, (Address::ScaleFactor)2, -0xcca301a), 1);", // IID1458 - "__ addb(Address(rdx, rbx, (Address::ScaleFactor)3, +0x109fc2b8), 1);", // IID1459 -#ifdef _LP64 - "__ addb(Address(rbx, r8, (Address::ScaleFactor)0, -0x570138c4), 1);", // IID1460 - "__ addb(Address(r8, r9, (Address::ScaleFactor)2, -0x28738ade), 1);", // IID1461 - "__ addb(Address(r9, r10, (Address::ScaleFactor)1, +0x578036a6), 1);", // IID1462 - "__ addb(Address(r10, r11, (Address::ScaleFactor)3, -0x6e202fb7), 1);", // IID1463 - "__ addb(Address(r11, r12, (Address::ScaleFactor)1, -0x3fb39eed), 1);", // IID1464 - "__ addb(Address(r12, r13, (Address::ScaleFactor)1, +0x610033e3), 1);", // IID1465 - "__ addb(Address(r13, r14, (Address::ScaleFactor)1, +0x1bb2db79), 1);", // IID1466 - "__ addb(Address(r14, +0x6c532ca5), 1);", // IID1467 - "__ addb(Address(r15, -0x29d2f16b), 1);", // IID1468 - "__ addb(Address(r16, r17, (Address::ScaleFactor)2, +0x4e63e0f3), 1);", // IID1469 - "__ addb(Address(r17, r18, (Address::ScaleFactor)1, -0x2ad8046), 1);", // IID1470 - "__ addb(Address(r18, r19, (Address::ScaleFactor)1, +0x4490daf2), 1);", // IID1471 - "__ addb(Address(r19, r20, (Address::ScaleFactor)1, +0x68a4b83d), 1);", // IID1472 - "__ addb(Address(r20, r21, (Address::ScaleFactor)1, -0x4e5c577c), 1);", // IID1473 - "__ addb(Address(r21, r22, (Address::ScaleFactor)2, +0x272c409c), 1);", // IID1474 - "__ addb(Address(r22, r23, (Address::ScaleFactor)2, -0x36dab49e), 1);", // IID1475 - "__ addb(Address(r23, r24, (Address::ScaleFactor)3, +0x36e9eaad), 1);", // IID1476 - "__ addb(Address(r24, r25, (Address::ScaleFactor)1, +0x38b0020c), 1);", // IID1477 - "__ addb(Address(r25, +0x3e76222b), 1);", // IID1478 - "__ addb(Address(r26, +0x231c22fd), 1);", // IID1479 - "__ addb(Address(r27, r28, (Address::ScaleFactor)3, -0x315fdb16), 1);", // IID1480 - "__ addb(Address(r28, r29, (Address::ScaleFactor)2, +0x3e5dc24a), 1);", // IID1481 - "__ addb(Address(r29, r30, (Address::ScaleFactor)2, -0x79c07174), 1);", // IID1482 - "__ addb(Address(r30, -0x59d05e9f), 1);", // IID1483 - "__ addb(Address(r31, rcx, (Address::ScaleFactor)0, -0x30a179a6), 1);", // IID1484 - "__ addb(Address(rcx, rdx, (Address::ScaleFactor)1, -0x5b246acf), 4);", // IID1485 - "__ addb(Address(rdx, rbx, (Address::ScaleFactor)0, -0x32e292f1), 4);", // IID1486 - "__ addb(Address(rbx, r8, (Address::ScaleFactor)0, -0x6484fa20), 4);", // IID1487 - "__ addb(Address(r8, -0x71cedc73), 4);", // IID1488 - "__ addb(Address(r9, r10, (Address::ScaleFactor)3, +0x7c1d0ce9), 4);", // IID1489 - "__ addb(Address(r10, r11, (Address::ScaleFactor)3, +0x2532d99), 4);", // IID1490 - "__ addb(Address(r11, +0x3e67cdcb), 4);", // IID1491 - "__ addb(Address(r12, r13, (Address::ScaleFactor)2, -0x41a70d27), 4);", // IID1492 - "__ addb(Address(r13, +0x6678f3d9), 4);", // IID1493 - "__ addb(Address(r14, r15, (Address::ScaleFactor)0, +0x2c7219ed), 4);", // IID1494 - "__ addb(Address(r15, +0x44e298c0), 4);", // IID1495 - "__ addb(Address(r16, r17, (Address::ScaleFactor)0, +0x6e388f1b), 4);", // IID1496 - "__ addb(Address(r17, r18, (Address::ScaleFactor)2, -0x6eab9fb), 4);", // IID1497 - "__ addb(Address(r18, r19, (Address::ScaleFactor)1, +0x50eac1a6), 4);", // IID1498 - "__ addb(Address(r19, r20, (Address::ScaleFactor)3, -0x3e431bbd), 4);", // IID1499 - "__ addb(Address(r20, r21, (Address::ScaleFactor)2, -0x262e37e1), 4);", // IID1500 - "__ addb(Address(r21, +0x71d757a0), 4);", // IID1501 - "__ addb(Address(r22, r23, (Address::ScaleFactor)1, +0x2696aa1d), 4);", // IID1502 - "__ addb(Address(r23, r24, (Address::ScaleFactor)2, -0x8d03b1c), 4);", // IID1503 - "__ addb(Address(r24, r25, (Address::ScaleFactor)2, +0x337ed2ef), 4);", // IID1504 - "__ addb(Address(r25, r26, (Address::ScaleFactor)3, -0x34ca397), 4);", // IID1505 - "__ addb(Address(r26, r27, (Address::ScaleFactor)0, -0x5282fdcd), 4);", // IID1506 - "__ addb(Address(r27, r28, (Address::ScaleFactor)2, -0x32c01fd), 4);", // IID1507 - "__ addb(Address(r28, r29, (Address::ScaleFactor)3, +0x75859f15), 4);", // IID1508 - "__ addb(Address(r29, r30, (Address::ScaleFactor)2, +0x4e0f3b1b), 4);", // IID1509 - "__ addb(Address(r30, r31, (Address::ScaleFactor)2, -0x26cc959f), 4);", // IID1510 - "__ addb(Address(r31, rcx, (Address::ScaleFactor)2, -0x6fa5b791), 4);", // IID1511 - "__ addb(Address(rcx, +0xd7d2776), 16);", // IID1512 - "__ addb(Address(rdx, rbx, (Address::ScaleFactor)2, -0x15fad602), 16);", // IID1513 - "__ addb(Address(rbx, r8, (Address::ScaleFactor)3, +0xc649a54), 16);", // IID1514 - "__ addb(Address(r8, r9, (Address::ScaleFactor)2, +0x48054b3b), 16);", // IID1515 - "__ addb(Address(r9, r10, (Address::ScaleFactor)3, -0x1f44482c), 16);", // IID1516 - "__ addb(Address(r10, +0x2667d4c7), 16);", // IID1517 - "__ addb(Address(r11, +0x66df331e), 16);", // IID1518 - "__ addb(Address(r12, r13, (Address::ScaleFactor)3, -0x4ffe0cd1), 16);", // IID1519 - "__ addb(Address(r13, r14, (Address::ScaleFactor)0, -0x4e4e9c9c), 16);", // IID1520 - "__ addb(Address(r14, r15, (Address::ScaleFactor)3, -0x38c63ca1), 16);", // IID1521 - "__ addb(Address(r15, -0x79609fb4), 16);", // IID1522 - "__ addb(Address(r16, r17, (Address::ScaleFactor)0, +0x6133d17c), 16);", // IID1523 - "__ addb(Address(r17, r18, (Address::ScaleFactor)3, -0x526e75c7), 16);", // IID1524 - "__ addb(Address(r18, r19, (Address::ScaleFactor)0, -0x153d70c5), 16);", // IID1525 - "__ addb(Address(r19, r20, (Address::ScaleFactor)0, -0x1af6c6d1), 16);", // IID1526 - "__ addb(Address(r20, r21, (Address::ScaleFactor)1, -0xd42c6c1), 16);", // IID1527 - "__ addb(Address(r21, -0x2cccd430), 16);", // IID1528 - "__ addb(Address(r22, r23, (Address::ScaleFactor)0, +0x1b11bd48), 16);", // IID1529 - "__ addb(Address(r23, -0x459f9716), 16);", // IID1530 - "__ addb(Address(r24, r25, (Address::ScaleFactor)0, +0x609d5f5f), 16);", // IID1531 - "__ addb(Address(r25, r26, (Address::ScaleFactor)3, -0x2f92e5e9), 16);", // IID1532 - "__ addb(Address(r26, r27, (Address::ScaleFactor)3, -0x3dab079f), 16);", // IID1533 - "__ addb(Address(r27, r28, (Address::ScaleFactor)2, -0x54ac693d), 16);", // IID1534 - "__ addb(Address(r28, -0x542c16de), 16);", // IID1535 - "__ addb(Address(r29, r30, (Address::ScaleFactor)0, -0x2a692af3), 16);", // IID1536 - "__ addb(Address(r30, r31, (Address::ScaleFactor)3, -0x2160e49c), 16);", // IID1537 - "__ addb(Address(r31, rcx, (Address::ScaleFactor)0, +0x4ba8c9c7), 16);", // IID1538 - "__ addb(Address(rcx, rdx, (Address::ScaleFactor)3, -0x75e68049), 64);", // IID1539 - "__ addb(Address(rdx, rbx, (Address::ScaleFactor)2, -0x527c5d6e), 64);", // IID1540 - "__ addb(Address(rbx, r8, (Address::ScaleFactor)1, +0xd401927), 64);", // IID1541 - "__ addb(Address(r8, r9, (Address::ScaleFactor)2, -0x2c487b45), 64);", // IID1542 - "__ addb(Address(r9, r10, (Address::ScaleFactor)1, -0x5d697a22), 64);", // IID1543 - "__ addb(Address(r10, -0x650877df), 64);", // IID1544 - "__ addb(Address(r11, -0x4bfa2076), 64);", // IID1545 - "__ addb(Address(r12, r13, (Address::ScaleFactor)2, +0x1a45dff1), 64);", // IID1546 - "__ addb(Address(r13, r14, (Address::ScaleFactor)3, -0x46a2317), 64);", // IID1547 - "__ addb(Address(r14, r15, (Address::ScaleFactor)0, +0x2d11e832), 64);", // IID1548 - "__ addb(Address(r15, r16, (Address::ScaleFactor)1, +0x22e07bf6), 64);", // IID1549 - "__ addb(Address(r16, r17, (Address::ScaleFactor)1, -0x2ac028b2), 64);", // IID1550 - "__ addb(Address(r17, r18, (Address::ScaleFactor)2, +0x56cf70af), 64);", // IID1551 - "__ addb(Address(r18, +0x203e562f), 64);", // IID1552 - "__ addb(Address(r19, -0x1caeafb5), 64);", // IID1553 - "__ addb(Address(r20, r21, (Address::ScaleFactor)1, -0x67b1d7e3), 64);", // IID1554 - "__ addb(Address(r21, r22, (Address::ScaleFactor)3, +0x6ec356ae), 64);", // IID1555 - "__ addb(Address(r22, r23, (Address::ScaleFactor)1, -0x21723942), 64);", // IID1556 - "__ addb(Address(r23, r24, (Address::ScaleFactor)2, +0x4b4b1e8d), 64);", // IID1557 - "__ addb(Address(r24, +0x22e7a267), 64);", // IID1558 - "__ addb(Address(r25, r26, (Address::ScaleFactor)0, -0x2bf12159), 64);", // IID1559 - "__ addb(Address(r26, r27, (Address::ScaleFactor)2, +0x4db7a137), 64);", // IID1560 - "__ addb(Address(r27, r28, (Address::ScaleFactor)0, +0x1c55f10c), 64);", // IID1561 - "__ addb(Address(r28, r29, (Address::ScaleFactor)0, -0x74e818f6), 64);", // IID1562 - "__ addb(Address(r29, r30, (Address::ScaleFactor)3, -0x5edeb769), 64);", // IID1563 - "__ addb(Address(r30, +0x4bb5eae6), 64);", // IID1564 - "__ addb(Address(r31, rcx, (Address::ScaleFactor)0, +0x14c1ff51), 64);", // IID1565 -#endif // _LP64 - "__ addw(Address(rcx, rdx, (Address::ScaleFactor)1, +0x17061d49), 256);", // IID1566 - "__ addw(Address(rdx, rbx, (Address::ScaleFactor)0, +0x767db662), 256);", // IID1567 -#ifdef _LP64 - "__ addw(Address(rbx, r8, (Address::ScaleFactor)0, -0x74576671), 256);", // IID1568 - "__ addw(Address(r8, +0x7767bd6d), 256);", // IID1569 - "__ addw(Address(r9, +0x5dc03997), 256);", // IID1570 - "__ addw(Address(r10, r11, (Address::ScaleFactor)1, +0x7c5a701), 256);", // IID1571 - "__ addw(Address(r11, r12, (Address::ScaleFactor)0, -0x6ee289ca), 256);", // IID1572 - "__ addw(Address(r12, r13, (Address::ScaleFactor)1, +0x5d662c23), 256);", // IID1573 - "__ addw(Address(r13, r14, (Address::ScaleFactor)1, -0x5d85dc5b), 256);", // IID1574 - "__ addw(Address(r14, r15, (Address::ScaleFactor)2, -0x19b2c41d), 256);", // IID1575 - "__ addw(Address(r15, r16, (Address::ScaleFactor)3, +0x6e9c49f7), 256);", // IID1576 - "__ addw(Address(r16, r17, (Address::ScaleFactor)0, +0x566b49c6), 256);", // IID1577 - "__ addw(Address(r17, r18, (Address::ScaleFactor)0, -0x2401cfb9), 256);", // IID1578 - "__ addw(Address(r18, r19, (Address::ScaleFactor)0, +0x1f8f2bd0), 256);", // IID1579 - "__ addw(Address(r19, +0x562d6f78), 256);", // IID1580 - "__ addw(Address(r20, r21, (Address::ScaleFactor)2, +0x4cec2dd8), 256);", // IID1581 - "__ addw(Address(r21, r22, (Address::ScaleFactor)2, +0x38804a4d), 256);", // IID1582 - "__ addw(Address(r22, r23, (Address::ScaleFactor)3, -0x677aef96), 256);", // IID1583 - "__ addw(Address(r23, r24, (Address::ScaleFactor)0, +0x2b96bb86), 256);", // IID1584 - "__ addw(Address(r24, r25, (Address::ScaleFactor)2, +0x71335142), 256);", // IID1585 - "__ addw(Address(r25, r26, (Address::ScaleFactor)1, +0x4f322a53), 256);", // IID1586 - "__ addw(Address(r26, r27, (Address::ScaleFactor)2, +0x3622d355), 256);", // IID1587 - "__ addw(Address(r27, +0x5d3773e7), 256);", // IID1588 - "__ addw(Address(r28, r29, (Address::ScaleFactor)1, -0x11a5d69c), 256);", // IID1589 - "__ addw(Address(r29, r30, (Address::ScaleFactor)1, +0x39fc027c), 256);", // IID1590 - "__ addw(Address(r30, r31, (Address::ScaleFactor)2, -0x2f85247f), 256);", // IID1591 - "__ addw(Address(r31, rcx, (Address::ScaleFactor)1, +0x1ef98fb1), 256);", // IID1592 - "__ addw(Address(rcx, rdx, (Address::ScaleFactor)2, -0x4dd35777), 1024);", // IID1593 - "__ addw(Address(rdx, rbx, (Address::ScaleFactor)2, +0x3bba04a9), 1024);", // IID1594 - "__ addw(Address(rbx, r8, (Address::ScaleFactor)0, -0x2a5ff153), 1024);", // IID1595 - "__ addw(Address(r8, r9, (Address::ScaleFactor)3, -0x4f577352), 1024);", // IID1596 - "__ addw(Address(r9, r10, (Address::ScaleFactor)2, -0x197accc2), 1024);", // IID1597 - "__ addw(Address(r10, r11, (Address::ScaleFactor)0, +0x10e73105), 1024);", // IID1598 - "__ addw(Address(r11, r12, (Address::ScaleFactor)2, +0x13ae2c97), 1024);", // IID1599 - "__ addw(Address(r12, r13, (Address::ScaleFactor)3, -0x6ad8b07c), 1024);", // IID1600 - "__ addw(Address(r13, r14, (Address::ScaleFactor)1, -0x375c1e), 1024);", // IID1601 - "__ addw(Address(r14, r15, (Address::ScaleFactor)2, +0x68595c51), 1024);", // IID1602 - "__ addw(Address(r15, r16, (Address::ScaleFactor)1, -0x13ba1681), 1024);", // IID1603 - "__ addw(Address(r16, r17, (Address::ScaleFactor)0, -0x7ecee8f7), 1024);", // IID1604 - "__ addw(Address(r17, +0x4c9a300d), 1024);", // IID1605 - "__ addw(Address(r18, -0x2bc6601e), 1024);", // IID1606 - "__ addw(Address(r19, r20, (Address::ScaleFactor)2, -0x78435f53), 1024);", // IID1607 - "__ addw(Address(r20, -0xb97c311), 1024);", // IID1608 - "__ addw(Address(r21, r22, (Address::ScaleFactor)1, -0x2c00a764), 1024);", // IID1609 - "__ addw(Address(r22, +0x475639d1), 1024);", // IID1610 - "__ addw(Address(r23, r24, (Address::ScaleFactor)3, -0x28bd49c1), 1024);", // IID1611 - "__ addw(Address(r24, r25, (Address::ScaleFactor)0, +0x7f4c1c4a), 1024);", // IID1612 - "__ addw(Address(r25, r26, (Address::ScaleFactor)1, -0x424cdd47), 1024);", // IID1613 - "__ addw(Address(r26, r27, (Address::ScaleFactor)0, +0x601a1ca2), 1024);", // IID1614 - "__ addw(Address(r27, r28, (Address::ScaleFactor)1, +0x69a3f232), 1024);", // IID1615 - "__ addw(Address(r28, r29, (Address::ScaleFactor)0, +0x4d70248f), 1024);", // IID1616 - "__ addw(Address(r29, r30, (Address::ScaleFactor)0, +0x30a7c8ec), 1024);", // IID1617 - "__ addw(Address(r30, -0x2707cfa7), 1024);", // IID1618 - "__ addw(Address(r31, rcx, (Address::ScaleFactor)1, -0x2bf4e75f), 1024);", // IID1619 - "__ addw(Address(rcx, rdx, (Address::ScaleFactor)2, +0xb4566f5), 4096);", // IID1620 - "__ addw(Address(rdx, -0x62cf1bd3), 4096);", // IID1621 - "__ addw(Address(rbx, r8, (Address::ScaleFactor)3, +0x485039ec), 4096);", // IID1622 - "__ addw(Address(r8, -0x5561f589), 4096);", // IID1623 - "__ addw(Address(r9, r10, (Address::ScaleFactor)1, +0x26bebb2f), 4096);", // IID1624 - "__ addw(Address(r10, r11, (Address::ScaleFactor)1, -0x1e52d0ff), 4096);", // IID1625 - "__ addw(Address(r11, r12, (Address::ScaleFactor)0, -0xa80ec3f), 4096);", // IID1626 - "__ addw(Address(r12, r13, (Address::ScaleFactor)3, -0x21d18ae8), 4096);", // IID1627 - "__ addw(Address(r13, r14, (Address::ScaleFactor)3, -0x1ebf1bc4), 4096);", // IID1628 - "__ addw(Address(r14, -0x42839e1f), 4096);", // IID1629 - "__ addw(Address(r15, r16, (Address::ScaleFactor)2, +0x1ee34abe), 4096);", // IID1630 - "__ addw(Address(r16, r17, (Address::ScaleFactor)2, +0x199ad2eb), 4096);", // IID1631 - "__ addw(Address(r17, r18, (Address::ScaleFactor)3, -0x724c2853), 4096);", // IID1632 - "__ addw(Address(r18, r19, (Address::ScaleFactor)1, +0x1eb2437c), 4096);", // IID1633 - "__ addw(Address(r19, r20, (Address::ScaleFactor)0, +0x35ee7de), 4096);", // IID1634 - "__ addw(Address(r20, r21, (Address::ScaleFactor)0, -0x14568388), 4096);", // IID1635 - "__ addw(Address(r21, -0x5f124b4d), 4096);", // IID1636 - "__ addw(Address(r22, r23, (Address::ScaleFactor)3, +0x43e2bf83), 4096);", // IID1637 - "__ addw(Address(r23, r24, (Address::ScaleFactor)1, +0x70af9b11), 4096);", // IID1638 - "__ addw(Address(r24, r25, (Address::ScaleFactor)0, -0x38e3886b), 4096);", // IID1639 - "__ addw(Address(r25, r26, (Address::ScaleFactor)1, -0x1bb3401f), 4096);", // IID1640 - "__ addw(Address(r26, r27, (Address::ScaleFactor)3, -0x4bcb5eeb), 4096);", // IID1641 - "__ addw(Address(r27, +0x7a3576c3), 4096);", // IID1642 - "__ addw(Address(r28, r29, (Address::ScaleFactor)2, +0x382e91d5), 4096);", // IID1643 - "__ addw(Address(r29, r30, (Address::ScaleFactor)2, +0x3feefa8c), 4096);", // IID1644 - "__ addw(Address(r30, -0x2bcf5a12), 4096);", // IID1645 - "__ addw(Address(r31, -0x65854292), 4096);", // IID1646 - "__ addw(Address(rcx, rdx, (Address::ScaleFactor)0, +0x65cfb1f9), 16384);", // IID1647 - "__ addw(Address(rdx, rbx, (Address::ScaleFactor)1, +0xc7c1c33), 16384);", // IID1648 - "__ addw(Address(rbx, -0x31d3e87b), 16384);", // IID1649 - "__ addw(Address(r8, r9, (Address::ScaleFactor)0, -0x3f4915fa), 16384);", // IID1650 - "__ addw(Address(r9, r10, (Address::ScaleFactor)1, +0x46495af8), 16384);", // IID1651 - "__ addw(Address(r10, -0x59a5dffa), 16384);", // IID1652 - "__ addw(Address(r11, r12, (Address::ScaleFactor)0, -0x403071ec), 16384);", // IID1653 - "__ addw(Address(r12, r13, (Address::ScaleFactor)3, +0x66d63562), 16384);", // IID1654 - "__ addw(Address(r13, -0x5ff24c30), 16384);", // IID1655 - "__ addw(Address(r14, r15, (Address::ScaleFactor)3, -0x12167cf4), 16384);", // IID1656 - "__ addw(Address(r15, r16, (Address::ScaleFactor)2, +0x6ea1d7f6), 16384);", // IID1657 - "__ addw(Address(r16, +0x1770caad), 16384);", // IID1658 - "__ addw(Address(r17, -0x55798dad), 16384);", // IID1659 - "__ addw(Address(r18, r19, (Address::ScaleFactor)1, +0x2468c0ee), 16384);", // IID1660 - "__ addw(Address(r19, r20, (Address::ScaleFactor)3, +0x647497f9), 16384);", // IID1661 - "__ addw(Address(r20, r21, (Address::ScaleFactor)0, +0x195c103e), 16384);", // IID1662 - "__ addw(Address(r21, r22, (Address::ScaleFactor)1, -0x5174eb0e), 16384);", // IID1663 - "__ addw(Address(r22, r23, (Address::ScaleFactor)0, -0x6854e3c0), 16384);", // IID1664 - "__ addw(Address(r23, r24, (Address::ScaleFactor)0, +0x404ce0be), 16384);", // IID1665 - "__ addw(Address(r24, r25, (Address::ScaleFactor)1, +0x37d6f5a8), 16384);", // IID1666 - "__ addw(Address(r25, r26, (Address::ScaleFactor)2, +0x3582a0f5), 16384);", // IID1667 - "__ addw(Address(r26, r27, (Address::ScaleFactor)0, -0x398512db), 16384);", // IID1668 - "__ addw(Address(r27, r28, (Address::ScaleFactor)0, -0x5af0a992), 16384);", // IID1669 - "__ addw(Address(r28, r29, (Address::ScaleFactor)2, -0x4260ce50), 16384);", // IID1670 - "__ addw(Address(r29, r30, (Address::ScaleFactor)3, +0x629cbb2d), 16384);", // IID1671 - "__ addw(Address(r30, r31, (Address::ScaleFactor)3, +0x7a240463), 16384);", // IID1672 - "__ addw(Address(r31, rcx, (Address::ScaleFactor)0, +0x576c91ab), 16384);", // IID1673 -#endif // _LP64 - "__ addl(Address(rcx, rdx, (Address::ScaleFactor)0, +0x1074939c), 1);", // IID1674 - "__ addl(Address(rdx, rbx, (Address::ScaleFactor)2, -0x5a2889c8), 1);", // IID1675 -#ifdef _LP64 - "__ addl(Address(rbx, r8, (Address::ScaleFactor)2, +0x1d1d0ec6), 1);", // IID1676 - "__ addl(Address(r8, r9, (Address::ScaleFactor)0, -0x3b318252), 1);", // IID1677 - "__ addl(Address(r9, r10, (Address::ScaleFactor)3, +0x12948b1e), 1);", // IID1678 - "__ addl(Address(r10, r11, (Address::ScaleFactor)3, +0x43f1b401), 1);", // IID1679 - "__ addl(Address(r11, +0x69c84019), 1);", // IID1680 - "__ addl(Address(r12, r13, (Address::ScaleFactor)0, -0x6aa59fc), 1);", // IID1681 - "__ addl(Address(r13, r14, (Address::ScaleFactor)2, -0x25f1a8bf), 1);", // IID1682 - "__ addl(Address(r14, r15, (Address::ScaleFactor)3, +0x5d8fc78a), 1);", // IID1683 - "__ addl(Address(r15, r16, (Address::ScaleFactor)1, +0x7e138525), 1);", // IID1684 - "__ addl(Address(r16, r17, (Address::ScaleFactor)2, -0x52055e58), 1);", // IID1685 - "__ addl(Address(r17, r18, (Address::ScaleFactor)3, -0x46f9523f), 1);", // IID1686 - "__ addl(Address(r18, r19, (Address::ScaleFactor)1, +0x2af952f8), 1);", // IID1687 - "__ addl(Address(r19, -0xcef821f), 1);", // IID1688 - "__ addl(Address(r20, r21, (Address::ScaleFactor)1, -0x59feb167), 1);", // IID1689 - "__ addl(Address(r21, r22, (Address::ScaleFactor)2, +0x4a9c6ed6), 1);", // IID1690 - "__ addl(Address(r22, r23, (Address::ScaleFactor)3, -0x48bffa3c), 1);", // IID1691 - "__ addl(Address(r23, +0x74855bec), 1);", // IID1692 - "__ addl(Address(r24, -0x3e5a63f4), 1);", // IID1693 - "__ addl(Address(r25, r26, (Address::ScaleFactor)2, +0x62d34b7a), 1);", // IID1694 - "__ addl(Address(r26, r27, (Address::ScaleFactor)3, +0x3ee34450), 1);", // IID1695 - "__ addl(Address(r27, r28, (Address::ScaleFactor)1, -0x5ece33f4), 1);", // IID1696 - "__ addl(Address(r28, -0x53face57), 1);", // IID1697 - "__ addl(Address(r29, -0x74bad3d3), 1);", // IID1698 - "__ addl(Address(r30, r31, (Address::ScaleFactor)3, +0x188cd3d), 1);", // IID1699 - "__ addl(Address(r31, rcx, (Address::ScaleFactor)1, -0x2773595), 1);", // IID1700 - "__ addl(Address(rcx, rdx, (Address::ScaleFactor)2, +0x1729818), 16);", // IID1701 - "__ addl(Address(rdx, rbx, (Address::ScaleFactor)3, -0x427897f8), 16);", // IID1702 - "__ addl(Address(rbx, r8, (Address::ScaleFactor)1, +0xc540ac4), 16);", // IID1703 - "__ addl(Address(r8, r9, (Address::ScaleFactor)1, +0x59c9872f), 16);", // IID1704 - "__ addl(Address(r9, -0x7fdae2e8), 16);", // IID1705 - "__ addl(Address(r10, r11, (Address::ScaleFactor)0, +0x1d1b31de), 16);", // IID1706 - "__ addl(Address(r11, -0x300366a9), 16);", // IID1707 - "__ addl(Address(r12, r13, (Address::ScaleFactor)0, -0x9b3cd50), 16);", // IID1708 - "__ addl(Address(r13, r14, (Address::ScaleFactor)2, +0x4fcc51a2), 16);", // IID1709 - "__ addl(Address(r14, -0x6ae1db97), 16);", // IID1710 - "__ addl(Address(r15, r16, (Address::ScaleFactor)0, +0x5cf04945), 16);", // IID1711 - "__ addl(Address(r16, r17, (Address::ScaleFactor)1, +0x3de4635d), 16);", // IID1712 - "__ addl(Address(r17, r18, (Address::ScaleFactor)0, +0x51a4744), 16);", // IID1713 - "__ addl(Address(r18, r19, (Address::ScaleFactor)0, +0x31b6b4f7), 16);", // IID1714 - "__ addl(Address(r19, -0x3ff7c817), 16);", // IID1715 - "__ addl(Address(r20, r21, (Address::ScaleFactor)2, +0x6af19f28), 16);", // IID1716 - "__ addl(Address(r21, r22, (Address::ScaleFactor)3, +0x237bf0dd), 16);", // IID1717 - "__ addl(Address(r22, r23, (Address::ScaleFactor)1, +0x4675b663), 16);", // IID1718 - "__ addl(Address(r23, r24, (Address::ScaleFactor)3, -0x2d1293e3), 16);", // IID1719 - "__ addl(Address(r24, r25, (Address::ScaleFactor)1, +0x75f4ece4), 16);", // IID1720 - "__ addl(Address(r25, +0x6e832aad), 16);", // IID1721 - "__ addl(Address(r26, r27, (Address::ScaleFactor)2, -0x76bb9897), 16);", // IID1722 - "__ addl(Address(r27, r28, (Address::ScaleFactor)3, +0x203dbae2), 16);", // IID1723 - "__ addl(Address(r28, r29, (Address::ScaleFactor)1, -0x21a5cf2), 16);", // IID1724 - "__ addl(Address(r29, r30, (Address::ScaleFactor)2, +0x762d191), 16);", // IID1725 - "__ addl(Address(r30, +0x6035f3e7), 16);", // IID1726 - "__ addl(Address(r31, rcx, (Address::ScaleFactor)2, -0x5ecbb55a), 16);", // IID1727 - "__ addl(Address(rcx, +0x961ea3e), 256);", // IID1728 - "__ addl(Address(rdx, rbx, (Address::ScaleFactor)2, +0x7135f631), 256);", // IID1729 - "__ addl(Address(rbx, r8, (Address::ScaleFactor)3, +0x1bf7099b), 256);", // IID1730 - "__ addl(Address(r8, +0x78934325), 256);", // IID1731 - "__ addl(Address(r9, r10, (Address::ScaleFactor)1, +0x6b0ed1eb), 256);", // IID1732 - "__ addl(Address(r10, r11, (Address::ScaleFactor)0, -0xc0edcf9), 256);", // IID1733 - "__ addl(Address(r11, r12, (Address::ScaleFactor)1, +0x5492b7bf), 256);", // IID1734 - "__ addl(Address(r12, r13, (Address::ScaleFactor)3, +0x1e913003), 256);", // IID1735 - "__ addl(Address(r13, r14, (Address::ScaleFactor)0, -0x2bfc9731), 256);", // IID1736 - "__ addl(Address(r14, r15, (Address::ScaleFactor)3, +0x16fd8b23), 256);", // IID1737 - "__ addl(Address(r15, r16, (Address::ScaleFactor)3, +0x536f7645), 256);", // IID1738 - "__ addl(Address(r16, r17, (Address::ScaleFactor)0, -0x40650983), 256);", // IID1739 - "__ addl(Address(r17, r18, (Address::ScaleFactor)1, -0x640769c5), 256);", // IID1740 - "__ addl(Address(r18, r19, (Address::ScaleFactor)2, -0x2e6fa86e), 256);", // IID1741 - "__ addl(Address(r19, +0x6603657c), 256);", // IID1742 - "__ addl(Address(r20, r21, (Address::ScaleFactor)1, +0x39ff54e4), 256);", // IID1743 - "__ addl(Address(r21, r22, (Address::ScaleFactor)0, +0x66261b87), 256);", // IID1744 - "__ addl(Address(r22, -0x2792e7f8), 256);", // IID1745 - "__ addl(Address(r23, r24, (Address::ScaleFactor)3, -0x28790bd4), 256);", // IID1746 - "__ addl(Address(r24, r25, (Address::ScaleFactor)1, -0x747315d4), 256);", // IID1747 - "__ addl(Address(r25, r26, (Address::ScaleFactor)2, -0x69a29190), 256);", // IID1748 - "__ addl(Address(r26, r27, (Address::ScaleFactor)2, -0x4ece0e05), 256);", // IID1749 - "__ addl(Address(r27, r28, (Address::ScaleFactor)0, -0xbd64b3d), 256);", // IID1750 - "__ addl(Address(r28, r29, (Address::ScaleFactor)0, +0x6f5a2e13), 256);", // IID1751 - "__ addl(Address(r29, r30, (Address::ScaleFactor)1, +0x1b1ca76b), 256);", // IID1752 - "__ addl(Address(r30, r31, (Address::ScaleFactor)1, +0x6c3b7bc2), 256);", // IID1753 - "__ addl(Address(r31, rcx, (Address::ScaleFactor)3, +0x3c1aef04), 256);", // IID1754 - "__ addl(Address(rcx, rdx, (Address::ScaleFactor)2, -0x4b8e9e40), 4096);", // IID1755 - "__ addl(Address(rdx, rbx, (Address::ScaleFactor)0, -0x470a4e9c), 4096);", // IID1756 - "__ addl(Address(rbx, +0xea80bc1), 4096);", // IID1757 - "__ addl(Address(r8, +0x33e61c5b), 4096);", // IID1758 - "__ addl(Address(r9, r10, (Address::ScaleFactor)2, +0x2c6df919), 4096);", // IID1759 - "__ addl(Address(r10, r11, (Address::ScaleFactor)0, +0x44671dd3), 4096);", // IID1760 - "__ addl(Address(r11, r12, (Address::ScaleFactor)0, -0x1b5cdef3), 4096);", // IID1761 - "__ addl(Address(r12, r13, (Address::ScaleFactor)0, -0x79a79542), 4096);", // IID1762 - "__ addl(Address(r13, +0x7ebb97cc), 4096);", // IID1763 - "__ addl(Address(r14, r15, (Address::ScaleFactor)1, -0x54ebe04), 4096);", // IID1764 - "__ addl(Address(r15, r16, (Address::ScaleFactor)2, +0x1e0d9358), 4096);", // IID1765 - "__ addl(Address(r16, r17, (Address::ScaleFactor)0, -0x4ed0cab4), 4096);", // IID1766 - "__ addl(Address(r17, +0x4052c3f), 4096);", // IID1767 - "__ addl(Address(r18, -0x2bac8c3d), 4096);", // IID1768 - "__ addl(Address(r19, r20, (Address::ScaleFactor)2, -0x1ef81834), 4096);", // IID1769 - "__ addl(Address(r20, r21, (Address::ScaleFactor)3, -0x7d631770), 4096);", // IID1770 - "__ addl(Address(r21, r22, (Address::ScaleFactor)1, -0x15394cbf), 4096);", // IID1771 - "__ addl(Address(r22, r23, (Address::ScaleFactor)3, -0x2a685761), 4096);", // IID1772 - "__ addl(Address(r23, r24, (Address::ScaleFactor)2, -0x52de2a84), 4096);", // IID1773 - "__ addl(Address(r24, r25, (Address::ScaleFactor)3, +0x7e0acaaf), 4096);", // IID1774 - "__ addl(Address(r25, r26, (Address::ScaleFactor)0, -0x675a86f0), 4096);", // IID1775 - "__ addl(Address(r26, +0x12fb8849), 4096);", // IID1776 - "__ addl(Address(r27, -0x22da69c9), 4096);", // IID1777 - "__ addl(Address(r28, r29, (Address::ScaleFactor)0, -0x4960aab), 4096);", // IID1778 - "__ addl(Address(r29, r30, (Address::ScaleFactor)0, -0x5b73cc62), 4096);", // IID1779 - "__ addl(Address(r30, r31, (Address::ScaleFactor)2, +0x36f46440), 4096);", // IID1780 - "__ addl(Address(r31, rcx, (Address::ScaleFactor)0, -0xf6a5879), 4096);", // IID1781 - "__ addl(Address(rcx, rdx, (Address::ScaleFactor)0, -0x58b83619), 65536);", // IID1782 - "__ addl(Address(rdx, rbx, (Address::ScaleFactor)0, +0x506c853d), 65536);", // IID1783 - "__ addl(Address(rbx, r8, (Address::ScaleFactor)1, -0xa90d95a), 65536);", // IID1784 - "__ addl(Address(r8, -0x16a9d5dd), 65536);", // IID1785 - "__ addl(Address(r9, r10, (Address::ScaleFactor)2, +0x5a2d3e13), 65536);", // IID1786 - "__ addl(Address(r10, r11, (Address::ScaleFactor)3, +0x3cf1a507), 65536);", // IID1787 - "__ addl(Address(r11, +0x64082880), 65536);", // IID1788 - "__ addl(Address(r12, r13, (Address::ScaleFactor)1, -0x782894ed), 65536);", // IID1789 - "__ addl(Address(r13, +0x75a18ce6), 65536);", // IID1790 - "__ addl(Address(r14, +0x588f4f38), 65536);", // IID1791 - "__ addl(Address(r15, r16, (Address::ScaleFactor)3, -0x52edb12a), 65536);", // IID1792 - "__ addl(Address(r16, +0x6c666df6), 65536);", // IID1793 - "__ addl(Address(r17, r18, (Address::ScaleFactor)3, +0x176180e), 65536);", // IID1794 - "__ addl(Address(r18, r19, (Address::ScaleFactor)1, +0x4c47baea), 65536);", // IID1795 - "__ addl(Address(r19, r20, (Address::ScaleFactor)3, -0x778f94ec), 65536);", // IID1796 - "__ addl(Address(r20, r21, (Address::ScaleFactor)1, +0x426226a1), 65536);", // IID1797 - "__ addl(Address(r21, r22, (Address::ScaleFactor)2, -0x3282f7d5), 65536);", // IID1798 - "__ addl(Address(r22, r23, (Address::ScaleFactor)0, -0x7a4a53b4), 65536);", // IID1799 - "__ addl(Address(r23, r24, (Address::ScaleFactor)2, -0x2a309522), 65536);", // IID1800 - "__ addl(Address(r24, r25, (Address::ScaleFactor)0, +0x3e8fc7e8), 65536);", // IID1801 - "__ addl(Address(r25, +0x5a1b3bf5), 65536);", // IID1802 - "__ addl(Address(r26, r27, (Address::ScaleFactor)0, +0x25831525), 65536);", // IID1803 - "__ addl(Address(r27, +0x27251e66), 65536);", // IID1804 - "__ addl(Address(r28, r29, (Address::ScaleFactor)2, -0x51295309), 65536);", // IID1805 - "__ addl(Address(r29, r30, (Address::ScaleFactor)2, -0x2eaece82), 65536);", // IID1806 - "__ addl(Address(r30, r31, (Address::ScaleFactor)1, -0x359caed5), 65536);", // IID1807 - "__ addl(Address(r31, -0x7859aee4), 65536);", // IID1808 - "__ addl(Address(rcx, rdx, (Address::ScaleFactor)3, +0x4d0b2880), 1048576);", // IID1809 - "__ addl(Address(rdx, rbx, (Address::ScaleFactor)1, +0x731c4d6f), 1048576);", // IID1810 - "__ addl(Address(rbx, +0x8b90620), 1048576);", // IID1811 - "__ addl(Address(r8, r9, (Address::ScaleFactor)1, +0x77994688), 1048576);", // IID1812 - "__ addl(Address(r9, r10, (Address::ScaleFactor)2, +0x15b6a009), 1048576);", // IID1813 - "__ addl(Address(r10, r11, (Address::ScaleFactor)2, +0x57ff9054), 1048576);", // IID1814 - "__ addl(Address(r11, r12, (Address::ScaleFactor)1, -0x1c460e93), 1048576);", // IID1815 - "__ addl(Address(r12, +0x1ce8d49c), 1048576);", // IID1816 - "__ addl(Address(r13, r14, (Address::ScaleFactor)0, +0x1c4b7e98), 1048576);", // IID1817 - "__ addl(Address(r14, r15, (Address::ScaleFactor)3, -0x68adc971), 1048576);", // IID1818 - "__ addl(Address(r15, r16, (Address::ScaleFactor)3, +0x4c2f19c2), 1048576);", // IID1819 - "__ addl(Address(r16, r17, (Address::ScaleFactor)1, +0x5b243075), 1048576);", // IID1820 - "__ addl(Address(r17, r18, (Address::ScaleFactor)3, -0x36f948e1), 1048576);", // IID1821 - "__ addl(Address(r18, r19, (Address::ScaleFactor)2, +0x71c8998d), 1048576);", // IID1822 - "__ addl(Address(r19, r20, (Address::ScaleFactor)1, -0x7fe7e8d5), 1048576);", // IID1823 - "__ addl(Address(r20, r21, (Address::ScaleFactor)0, -0x68788b6d), 1048576);", // IID1824 - "__ addl(Address(r21, r22, (Address::ScaleFactor)1, +0x47e62ac4), 1048576);", // IID1825 - "__ addl(Address(r22, r23, (Address::ScaleFactor)0, +0x337ad95e), 1048576);", // IID1826 - "__ addl(Address(r23, -0x26596e31), 1048576);", // IID1827 - "__ addl(Address(r24, r25, (Address::ScaleFactor)3, -0x6a9b120f), 1048576);", // IID1828 - "__ addl(Address(r25, r26, (Address::ScaleFactor)1, -0x69f66cf6), 1048576);", // IID1829 - "__ addl(Address(r26, r27, (Address::ScaleFactor)2, +0x166b43b7), 1048576);", // IID1830 - "__ addl(Address(r27, r28, (Address::ScaleFactor)1, +0x3b13cc70), 1048576);", // IID1831 - "__ addl(Address(r28, +0x7541bf8f), 1048576);", // IID1832 - "__ addl(Address(r29, r30, (Address::ScaleFactor)3, -0x4ce9160c), 1048576);", // IID1833 - "__ addl(Address(r30, r31, (Address::ScaleFactor)3, +0x7dc309b5), 1048576);", // IID1834 - "__ addl(Address(r31, rcx, (Address::ScaleFactor)1, -0x1d761a1d), 1048576);", // IID1835 - "__ addl(Address(rcx, rdx, (Address::ScaleFactor)1, +0x18330950), 16777216);", // IID1836 - "__ addl(Address(rdx, rbx, (Address::ScaleFactor)0, -0x14b31279), 16777216);", // IID1837 - "__ addl(Address(rbx, r8, (Address::ScaleFactor)2, -0x7268ef7a), 16777216);", // IID1838 - "__ addl(Address(r8, r9, (Address::ScaleFactor)1, +0x3fef065b), 16777216);", // IID1839 - "__ addl(Address(r9, r10, (Address::ScaleFactor)3, -0x374242df), 16777216);", // IID1840 - "__ addl(Address(r10, r11, (Address::ScaleFactor)0, -0x6358e81b), 16777216);", // IID1841 - "__ addl(Address(r11, +0x432943b8), 16777216);", // IID1842 - "__ addl(Address(r12, r13, (Address::ScaleFactor)0, +0x5aa0de65), 16777216);", // IID1843 - "__ addl(Address(r13, r14, (Address::ScaleFactor)0, -0x495e8e48), 16777216);", // IID1844 - "__ addl(Address(r14, r15, (Address::ScaleFactor)3, -0x4668780a), 16777216);", // IID1845 - "__ addl(Address(r15, r16, (Address::ScaleFactor)1, +0x4326e30d), 16777216);", // IID1846 - "__ addl(Address(r16, r17, (Address::ScaleFactor)1, -0x5f48b9d4), 16777216);", // IID1847 - "__ addl(Address(r17, r18, (Address::ScaleFactor)1, -0x48e6acfd), 16777216);", // IID1848 - "__ addl(Address(r18, r19, (Address::ScaleFactor)2, -0x78396262), 16777216);", // IID1849 - "__ addl(Address(r19, r20, (Address::ScaleFactor)1, +0x1323d59f), 16777216);", // IID1850 - "__ addl(Address(r20, r21, (Address::ScaleFactor)2, +0x7c431d91), 16777216);", // IID1851 - "__ addl(Address(r21, +0x2c943f3b), 16777216);", // IID1852 - "__ addl(Address(r22, r23, (Address::ScaleFactor)2, +0x704aab25), 16777216);", // IID1853 - "__ addl(Address(r23, r24, (Address::ScaleFactor)3, -0x75b421fe), 16777216);", // IID1854 - "__ addl(Address(r24, r25, (Address::ScaleFactor)1, +0x2352b21d), 16777216);", // IID1855 - "__ addl(Address(r25, r26, (Address::ScaleFactor)1, -0x3c186622), 16777216);", // IID1856 - "__ addl(Address(r26, +0x430d2910), 16777216);", // IID1857 - "__ addl(Address(r27, r28, (Address::ScaleFactor)3, -0x1ef2e367), 16777216);", // IID1858 - "__ addl(Address(r28, +0x2c26be32), 16777216);", // IID1859 - "__ addl(Address(r29, r30, (Address::ScaleFactor)2, +0x42bc02f7), 16777216);", // IID1860 - "__ addl(Address(r30, r31, (Address::ScaleFactor)3, +0x5e820b84), 16777216);", // IID1861 - "__ addl(Address(r31, rcx, (Address::ScaleFactor)0, -0x463446c), 16777216);", // IID1862 - "__ addl(Address(rcx, +0x75eb44df), 268435456);", // IID1863 - "__ addl(Address(rdx, rbx, (Address::ScaleFactor)3, +0x2ffae108), 268435456);", // IID1864 - "__ addl(Address(rbx, r8, (Address::ScaleFactor)0, -0x2d1e902d), 268435456);", // IID1865 - "__ addl(Address(r8, +0x716dc2f7), 268435456);", // IID1866 - "__ addl(Address(r9, -0x6b1bcddd), 268435456);", // IID1867 - "__ addl(Address(r10, +0x3f89f422), 268435456);", // IID1868 - "__ addl(Address(r11, r12, (Address::ScaleFactor)0, -0x5ce4d25), 268435456);", // IID1869 - "__ addl(Address(r12, r13, (Address::ScaleFactor)2, -0x285fde6f), 268435456);", // IID1870 - "__ addl(Address(r13, r14, (Address::ScaleFactor)1, +0x3d29e902), 268435456);", // IID1871 - "__ addl(Address(r14, r15, (Address::ScaleFactor)2, -0x5b1fc87b), 268435456);", // IID1872 - "__ addl(Address(r15, r16, (Address::ScaleFactor)0, +0x78d131e7), 268435456);", // IID1873 - "__ addl(Address(r16, r17, (Address::ScaleFactor)1, -0x1c56f2c1), 268435456);", // IID1874 - "__ addl(Address(r17, r18, (Address::ScaleFactor)1, -0x3b93c01b), 268435456);", // IID1875 - "__ addl(Address(r18, r19, (Address::ScaleFactor)0, +0x42a47273), 268435456);", // IID1876 - "__ addl(Address(r19, r20, (Address::ScaleFactor)3, -0x7a4a7408), 268435456);", // IID1877 - "__ addl(Address(r20, r21, (Address::ScaleFactor)0, +0x3042255a), 268435456);", // IID1878 - "__ addl(Address(r21, r22, (Address::ScaleFactor)3, +0x19ca69db), 268435456);", // IID1879 - "__ addl(Address(r22, r23, (Address::ScaleFactor)0, +0x19111553), 268435456);", // IID1880 - "__ addl(Address(r23, r24, (Address::ScaleFactor)1, -0x70107e8f), 268435456);", // IID1881 - "__ addl(Address(r24, r25, (Address::ScaleFactor)2, +0x696f86f), 268435456);", // IID1882 - "__ addl(Address(r25, +0x1cce9844), 268435456);", // IID1883 - "__ addl(Address(r26, r27, (Address::ScaleFactor)1, +0x76fb2d1a), 268435456);", // IID1884 - "__ addl(Address(r27, r28, (Address::ScaleFactor)2, -0x4234004), 268435456);", // IID1885 - "__ addl(Address(r28, r29, (Address::ScaleFactor)3, +0x657a58e9), 268435456);", // IID1886 - "__ addl(Address(r29, +0x1b084016), 268435456);", // IID1887 - "__ addl(Address(r30, r31, (Address::ScaleFactor)1, +0x733ccb6b), 268435456);", // IID1888 - "__ addl(Address(r31, rcx, (Address::ScaleFactor)1, +0x7471f498), 268435456);", // IID1889 -#endif // _LP64 - "__ cmpb(Address(rcx, rdx, (Address::ScaleFactor)3, +0x517b0a26), 1);", // IID1890 - "__ cmpb(Address(rdx, rbx, (Address::ScaleFactor)0, +0x385bed1f), 1);", // IID1891 -#ifdef _LP64 - "__ cmpb(Address(rbx, r8, (Address::ScaleFactor)1, +0x43ca8177), 1);", // IID1892 - "__ cmpb(Address(r8, r9, (Address::ScaleFactor)2, +0x6d5bdd87), 1);", // IID1893 - "__ cmpb(Address(r9, r10, (Address::ScaleFactor)3, +0x633b10a4), 1);", // IID1894 - "__ cmpb(Address(r10, r11, (Address::ScaleFactor)1, -0x431426f8), 1);", // IID1895 - "__ cmpb(Address(r11, r12, (Address::ScaleFactor)2, -0x4cde473a), 1);", // IID1896 - "__ cmpb(Address(r12, r13, (Address::ScaleFactor)3, +0x7708eb66), 1);", // IID1897 - "__ cmpb(Address(r13, r14, (Address::ScaleFactor)2, +0x2863b686), 1);", // IID1898 - "__ cmpb(Address(r14, r15, (Address::ScaleFactor)0, -0x457323da), 1);", // IID1899 - "__ cmpb(Address(r15, r16, (Address::ScaleFactor)3, +0x50328034), 1);", // IID1900 - "__ cmpb(Address(r16, r17, (Address::ScaleFactor)1, +0x2171c1a), 1);", // IID1901 - "__ cmpb(Address(r17, r18, (Address::ScaleFactor)2, +0x2aeba926), 1);", // IID1902 - "__ cmpb(Address(r18, r19, (Address::ScaleFactor)2, +0x5282fa05), 1);", // IID1903 - "__ cmpb(Address(r19, r20, (Address::ScaleFactor)0, -0x62071cf0), 1);", // IID1904 - "__ cmpb(Address(r20, r21, (Address::ScaleFactor)1, -0x60081d1), 1);", // IID1905 - "__ cmpb(Address(r21, r22, (Address::ScaleFactor)3, +0x5f75b68e), 1);", // IID1906 - "__ cmpb(Address(r22, r23, (Address::ScaleFactor)3, +0x44305835), 1);", // IID1907 - "__ cmpb(Address(r23, r24, (Address::ScaleFactor)1, -0xf4b4303), 1);", // IID1908 - "__ cmpb(Address(r24, r25, (Address::ScaleFactor)3, +0x56013f84), 1);", // IID1909 - "__ cmpb(Address(r25, r26, (Address::ScaleFactor)3, +0x3c6593e7), 1);", // IID1910 - "__ cmpb(Address(r26, r27, (Address::ScaleFactor)2, +0x69a6484e), 1);", // IID1911 - "__ cmpb(Address(r27, r28, (Address::ScaleFactor)0, +0x62012d31), 1);", // IID1912 - "__ cmpb(Address(r28, r29, (Address::ScaleFactor)3, +0x1e5aea4d), 1);", // IID1913 - "__ cmpb(Address(r29, r30, (Address::ScaleFactor)2, -0x4b82de58), 1);", // IID1914 - "__ cmpb(Address(r30, +0x6b9bcd65), 1);", // IID1915 - "__ cmpb(Address(r31, rcx, (Address::ScaleFactor)3, -0x6f577ebe), 1);", // IID1916 - "__ cmpb(Address(rcx, +0x1faeab01), 4);", // IID1917 - "__ cmpb(Address(rdx, +0x691c8a67), 4);", // IID1918 - "__ cmpb(Address(rbx, -0xa94a4b8), 4);", // IID1919 - "__ cmpb(Address(r8, -0x2f541f4d), 4);", // IID1920 - "__ cmpb(Address(r9, r10, (Address::ScaleFactor)2, +0x483290e6), 4);", // IID1921 - "__ cmpb(Address(r10, r11, (Address::ScaleFactor)3, -0x3cc50b79), 4);", // IID1922 - "__ cmpb(Address(r11, r12, (Address::ScaleFactor)3, +0x4e2b3555), 4);", // IID1923 - "__ cmpb(Address(r12, r13, (Address::ScaleFactor)3, +0x3b1231a2), 4);", // IID1924 - "__ cmpb(Address(r13, r14, (Address::ScaleFactor)0, +0xe30d431), 4);", // IID1925 - "__ cmpb(Address(r14, r15, (Address::ScaleFactor)0, +0x44f4b700), 4);", // IID1926 - "__ cmpb(Address(r15, r16, (Address::ScaleFactor)2, +0x58a2c775), 4);", // IID1927 - "__ cmpb(Address(r16, r17, (Address::ScaleFactor)3, +0x1fdf78f4), 4);", // IID1928 - "__ cmpb(Address(r17, -0x7f92249c), 4);", // IID1929 - "__ cmpb(Address(r18, r19, (Address::ScaleFactor)3, -0x55029ed6), 4);", // IID1930 - "__ cmpb(Address(r19, -0x29029cd9), 4);", // IID1931 - "__ cmpb(Address(r20, +0x176bd1a8), 4);", // IID1932 - "__ cmpb(Address(r21, +0x2a92aa89), 4);", // IID1933 - "__ cmpb(Address(r22, r23, (Address::ScaleFactor)3, -0x62c125e1), 4);", // IID1934 - "__ cmpb(Address(r23, r24, (Address::ScaleFactor)2, -0x5df6b040), 4);", // IID1935 - "__ cmpb(Address(r24, +0x4ef2b8d5), 4);", // IID1936 - "__ cmpb(Address(r25, r26, (Address::ScaleFactor)2, -0x79ae1a0b), 4);", // IID1937 - "__ cmpb(Address(r26, r27, (Address::ScaleFactor)0, +0x57580df3), 4);", // IID1938 - "__ cmpb(Address(r27, r28, (Address::ScaleFactor)1, +0x524123f7), 4);", // IID1939 - "__ cmpb(Address(r28, -0x3c14d9ec), 4);", // IID1940 - "__ cmpb(Address(r29, r30, (Address::ScaleFactor)1, +0x4df650f9), 4);", // IID1941 - "__ cmpb(Address(r30, r31, (Address::ScaleFactor)2, +0x6179d2b7), 4);", // IID1942 - "__ cmpb(Address(r31, rcx, (Address::ScaleFactor)0, +0x17801655), 4);", // IID1943 - "__ cmpb(Address(rcx, rdx, (Address::ScaleFactor)0, +0x63ca7e52), 16);", // IID1944 - "__ cmpb(Address(rdx, rbx, (Address::ScaleFactor)3, -0x1de6b586), 16);", // IID1945 - "__ cmpb(Address(rbx, r8, (Address::ScaleFactor)0, +0x3d184881), 16);", // IID1946 - "__ cmpb(Address(r8, r9, (Address::ScaleFactor)2, +0x3a106fee), 16);", // IID1947 - "__ cmpb(Address(r9, r10, (Address::ScaleFactor)2, +0x2cc4e336), 16);", // IID1948 - "__ cmpb(Address(r10, +0x683b10e1), 16);", // IID1949 - "__ cmpb(Address(r11, r12, (Address::ScaleFactor)2, -0x6e91a9b4), 16);", // IID1950 - "__ cmpb(Address(r12, r13, (Address::ScaleFactor)0, -0x2f36977a), 16);", // IID1951 - "__ cmpb(Address(r13, r14, (Address::ScaleFactor)1, +0x59962fd4), 16);", // IID1952 - "__ cmpb(Address(r14, r15, (Address::ScaleFactor)3, -0x593334b2), 16);", // IID1953 - "__ cmpb(Address(r15, r16, (Address::ScaleFactor)0, +0x326bbc6c), 16);", // IID1954 - "__ cmpb(Address(r16, r17, (Address::ScaleFactor)0, +0x48d8487f), 16);", // IID1955 - "__ cmpb(Address(r17, r18, (Address::ScaleFactor)1, -0x57c5b915), 16);", // IID1956 - "__ cmpb(Address(r18, r19, (Address::ScaleFactor)1, -0x40076d3), 16);", // IID1957 - "__ cmpb(Address(r19, r20, (Address::ScaleFactor)2, +0x5edbbb12), 16);", // IID1958 - "__ cmpb(Address(r20, r21, (Address::ScaleFactor)3, -0x343b5e52), 16);", // IID1959 - "__ cmpb(Address(r21, r22, (Address::ScaleFactor)3, +0x696d21b0), 16);", // IID1960 - "__ cmpb(Address(r22, r23, (Address::ScaleFactor)0, +0x3b59f00c), 16);", // IID1961 - "__ cmpb(Address(r23, r24, (Address::ScaleFactor)1, +0x4f34ea67), 16);", // IID1962 - "__ cmpb(Address(r24, -0x5e20bf1e), 16);", // IID1963 - "__ cmpb(Address(r25, -0x3129c09d), 16);", // IID1964 - "__ cmpb(Address(r26, r27, (Address::ScaleFactor)2, +0x3b4dd26c), 16);", // IID1965 - "__ cmpb(Address(r27, r28, (Address::ScaleFactor)0, -0x3115e2f3), 16);", // IID1966 - "__ cmpb(Address(r28, r29, (Address::ScaleFactor)3, -0x1c5192bc), 16);", // IID1967 - "__ cmpb(Address(r29, r30, (Address::ScaleFactor)2, -0x714a1a72), 16);", // IID1968 - "__ cmpb(Address(r30, -0x5e52a070), 16);", // IID1969 - "__ cmpb(Address(r31, rcx, (Address::ScaleFactor)3, -0x236aac15), 16);", // IID1970 - "__ cmpb(Address(rcx, rdx, (Address::ScaleFactor)3, -0xd96be1), 64);", // IID1971 - "__ cmpb(Address(rdx, rbx, (Address::ScaleFactor)2, +0x2cb5b962), 64);", // IID1972 - "__ cmpb(Address(rbx, r8, (Address::ScaleFactor)2, -0x5df7f587), 64);", // IID1973 - "__ cmpb(Address(r8, r9, (Address::ScaleFactor)0, -0x181ae285), 64);", // IID1974 - "__ cmpb(Address(r9, r10, (Address::ScaleFactor)2, -0x67b710d3), 64);", // IID1975 - "__ cmpb(Address(r10, r11, (Address::ScaleFactor)1, +0x34102ee7), 64);", // IID1976 - "__ cmpb(Address(r11, r12, (Address::ScaleFactor)1, +0x70663bc9), 64);", // IID1977 - "__ cmpb(Address(r12, r13, (Address::ScaleFactor)3, +0x282a1a23), 64);", // IID1978 - "__ cmpb(Address(r13, r14, (Address::ScaleFactor)3, +0x534e1a97), 64);", // IID1979 - "__ cmpb(Address(r14, r15, (Address::ScaleFactor)1, -0x2d5832d0), 64);", // IID1980 - "__ cmpb(Address(r15, r16, (Address::ScaleFactor)0, -0x1244eb95), 64);", // IID1981 - "__ cmpb(Address(r16, r17, (Address::ScaleFactor)0, -0x7a15c9ee), 64);", // IID1982 - "__ cmpb(Address(r17, r18, (Address::ScaleFactor)0, -0x9d813cc), 64);", // IID1983 - "__ cmpb(Address(r18, r19, (Address::ScaleFactor)2, -0x112f078), 64);", // IID1984 - "__ cmpb(Address(r19, r20, (Address::ScaleFactor)1, -0x21a4f1d1), 64);", // IID1985 - "__ cmpb(Address(r20, r21, (Address::ScaleFactor)3, +0x780bd422), 64);", // IID1986 - "__ cmpb(Address(r21, r22, (Address::ScaleFactor)1, +0x1aa7301d), 64);", // IID1987 - "__ cmpb(Address(r22, r23, (Address::ScaleFactor)3, +0x70ec8d82), 64);", // IID1988 - "__ cmpb(Address(r23, r24, (Address::ScaleFactor)0, -0x55e94195), 64);", // IID1989 - "__ cmpb(Address(r24, r25, (Address::ScaleFactor)2, -0x58d2bb78), 64);", // IID1990 - "__ cmpb(Address(r25, r26, (Address::ScaleFactor)2, -0x51f824a4), 64);", // IID1991 - "__ cmpb(Address(r26, r27, (Address::ScaleFactor)3, -0x5407a0a0), 64);", // IID1992 - "__ cmpb(Address(r27, r28, (Address::ScaleFactor)3, +0x6cab9820), 64);", // IID1993 - "__ cmpb(Address(r28, r29, (Address::ScaleFactor)3, -0x7679b6fa), 64);", // IID1994 - "__ cmpb(Address(r29, r30, (Address::ScaleFactor)0, +0x583f662a), 64);", // IID1995 - "__ cmpb(Address(r30, +0x572c7355), 64);", // IID1996 - "__ cmpb(Address(r31, rcx, (Address::ScaleFactor)0, +0x5a6ab218), 64);", // IID1997 -#endif // _LP64 - "__ cmpw(Address(rcx, -0xebb816f), 256);", // IID1998 - "__ cmpw(Address(rdx, rbx, (Address::ScaleFactor)0, +0x60a7cb70), 256);", // IID1999 -#ifdef _LP64 - "__ cmpw(Address(rbx, +0x33fa8045), 256);", // IID2000 - "__ cmpw(Address(r8, r9, (Address::ScaleFactor)3, +0x748a0edd), 256);", // IID2001 - "__ cmpw(Address(r9, r10, (Address::ScaleFactor)0, +0x38830eca), 256);", // IID2002 - "__ cmpw(Address(r10, r11, (Address::ScaleFactor)3, -0x63d989d9), 256);", // IID2003 - "__ cmpw(Address(r11, r12, (Address::ScaleFactor)1, -0x1e4a7318), 256);", // IID2004 - "__ cmpw(Address(r12, r13, (Address::ScaleFactor)2, -0x93fb8b4), 256);", // IID2005 - "__ cmpw(Address(r13, r14, (Address::ScaleFactor)3, +0x165ad89d), 256);", // IID2006 - "__ cmpw(Address(r14, r15, (Address::ScaleFactor)0, -0x29acc7dc), 256);", // IID2007 - "__ cmpw(Address(r15, -0x61d2d31f), 256);", // IID2008 - "__ cmpw(Address(r16, r17, (Address::ScaleFactor)3, -0x2513192), 256);", // IID2009 - "__ cmpw(Address(r17, r18, (Address::ScaleFactor)3, -0x3088c90d), 256);", // IID2010 - "__ cmpw(Address(r18, r19, (Address::ScaleFactor)3, -0x5700a61d), 256);", // IID2011 - "__ cmpw(Address(r19, r20, (Address::ScaleFactor)3, -0x130dfb41), 256);", // IID2012 - "__ cmpw(Address(r20, +0x5736e4bb), 256);", // IID2013 - "__ cmpw(Address(r21, r22, (Address::ScaleFactor)2, +0x42228b44), 256);", // IID2014 - "__ cmpw(Address(r22, r23, (Address::ScaleFactor)0, +0x2ed645c4), 256);", // IID2015 - "__ cmpw(Address(r23, r24, (Address::ScaleFactor)0, +0x15c40fc2), 256);", // IID2016 - "__ cmpw(Address(r24, r25, (Address::ScaleFactor)2, -0x76ce6b9f), 256);", // IID2017 - "__ cmpw(Address(r25, +0x414e047c), 256);", // IID2018 - "__ cmpw(Address(r26, r27, (Address::ScaleFactor)2, +0xf823afb), 256);", // IID2019 - "__ cmpw(Address(r27, r28, (Address::ScaleFactor)1, -0x5bbdcd3d), 256);", // IID2020 - "__ cmpw(Address(r28, r29, (Address::ScaleFactor)2, +0x2ece646f), 256);", // IID2021 - "__ cmpw(Address(r29, r30, (Address::ScaleFactor)2, +0x537a22bc), 256);", // IID2022 - "__ cmpw(Address(r30, r31, (Address::ScaleFactor)0, +0x1124a748), 256);", // IID2023 - "__ cmpw(Address(r31, rcx, (Address::ScaleFactor)0, +0x7950d761), 256);", // IID2024 - "__ cmpw(Address(rcx, rdx, (Address::ScaleFactor)3, -0x3bddc7c1), 1024);", // IID2025 - "__ cmpw(Address(rdx, rbx, (Address::ScaleFactor)1, -0x6d204c22), 1024);", // IID2026 - "__ cmpw(Address(rbx, r8, (Address::ScaleFactor)0, +0xbab6e0d), 1024);", // IID2027 - "__ cmpw(Address(r8, r9, (Address::ScaleFactor)1, -0x8c08b47), 1024);", // IID2028 - "__ cmpw(Address(r9, r10, (Address::ScaleFactor)3, +0x48683ca7), 1024);", // IID2029 - "__ cmpw(Address(r10, r11, (Address::ScaleFactor)1, -0x541f19db), 1024);", // IID2030 - "__ cmpw(Address(r11, r12, (Address::ScaleFactor)3, -0x1d826f95), 1024);", // IID2031 - "__ cmpw(Address(r12, r13, (Address::ScaleFactor)3, +0x17788323), 1024);", // IID2032 - "__ cmpw(Address(r13, +0x7a4f7262), 1024);", // IID2033 - "__ cmpw(Address(r14, r15, (Address::ScaleFactor)0, +0x5f6ef0e0), 1024);", // IID2034 - "__ cmpw(Address(r15, r16, (Address::ScaleFactor)1, +0x3bc796ff), 1024);", // IID2035 - "__ cmpw(Address(r16, r17, (Address::ScaleFactor)3, -0x1615c488), 1024);", // IID2036 - "__ cmpw(Address(r17, r18, (Address::ScaleFactor)3, +0x324da99f), 1024);", // IID2037 - "__ cmpw(Address(r18, r19, (Address::ScaleFactor)1, -0x77fc73f0), 1024);", // IID2038 - "__ cmpw(Address(r19, r20, (Address::ScaleFactor)1, +0x71d28355), 1024);", // IID2039 - "__ cmpw(Address(r20, r21, (Address::ScaleFactor)1, -0x65d7afbe), 1024);", // IID2040 - "__ cmpw(Address(r21, r22, (Address::ScaleFactor)3, -0x437ffcd5), 1024);", // IID2041 - "__ cmpw(Address(r22, r23, (Address::ScaleFactor)3, -0x14428066), 1024);", // IID2042 - "__ cmpw(Address(r23, r24, (Address::ScaleFactor)2, -0x78d472e5), 1024);", // IID2043 - "__ cmpw(Address(r24, r25, (Address::ScaleFactor)1, +0x5a679e8b), 1024);", // IID2044 - "__ cmpw(Address(r25, r26, (Address::ScaleFactor)0, -0x14c7fae1), 1024);", // IID2045 - "__ cmpw(Address(r26, r27, (Address::ScaleFactor)3, -0x3d92c019), 1024);", // IID2046 - "__ cmpw(Address(r27, r28, (Address::ScaleFactor)3, +0x16b9c472), 1024);", // IID2047 - "__ cmpw(Address(r28, r29, (Address::ScaleFactor)2, +0x3ceebcbe), 1024);", // IID2048 - "__ cmpw(Address(r29, r30, (Address::ScaleFactor)2, +0x685769a4), 1024);", // IID2049 - "__ cmpw(Address(r30, r31, (Address::ScaleFactor)3, +0x21a8282e), 1024);", // IID2050 - "__ cmpw(Address(r31, rcx, (Address::ScaleFactor)0, +0x7be7d8f9), 1024);", // IID2051 - "__ cmpw(Address(rcx, rdx, (Address::ScaleFactor)3, -0x57127cf5), 4096);", // IID2052 - "__ cmpw(Address(rdx, rbx, (Address::ScaleFactor)2, +0x70387b1a), 4096);", // IID2053 - "__ cmpw(Address(rbx, r8, (Address::ScaleFactor)3, -0x502ac885), 4096);", // IID2054 - "__ cmpw(Address(r8, r9, (Address::ScaleFactor)0, +0x1efa1e06), 4096);", // IID2055 - "__ cmpw(Address(r9, r10, (Address::ScaleFactor)0, +0x4931dcd7), 4096);", // IID2056 - "__ cmpw(Address(r10, -0x4b3dc08b), 4096);", // IID2057 - "__ cmpw(Address(r11, r12, (Address::ScaleFactor)3, -0x7db8dc6c), 4096);", // IID2058 - "__ cmpw(Address(r12, r13, (Address::ScaleFactor)3, +0x1b46d171), 4096);", // IID2059 - "__ cmpw(Address(r13, r14, (Address::ScaleFactor)3, -0x35b438bb), 4096);", // IID2060 - "__ cmpw(Address(r14, r15, (Address::ScaleFactor)2, -0x16280cf), 4096);", // IID2061 - "__ cmpw(Address(r15, r16, (Address::ScaleFactor)3, +0x538a55c7), 4096);", // IID2062 - "__ cmpw(Address(r16, r17, (Address::ScaleFactor)0, +0x41ffd682), 4096);", // IID2063 - "__ cmpw(Address(r17, +0x66c22f6), 4096);", // IID2064 - "__ cmpw(Address(r18, r19, (Address::ScaleFactor)2, -0x74a7d8d6), 4096);", // IID2065 - "__ cmpw(Address(r19, -0x6d868b81), 4096);", // IID2066 - "__ cmpw(Address(r20, r21, (Address::ScaleFactor)1, +0x3198a97b), 4096);", // IID2067 - "__ cmpw(Address(r21, r22, (Address::ScaleFactor)1, +0x76ddb696), 4096);", // IID2068 - "__ cmpw(Address(r22, r23, (Address::ScaleFactor)0, -0x3e5923fb), 4096);", // IID2069 - "__ cmpw(Address(r23, r24, (Address::ScaleFactor)1, -0x329573fd), 4096);", // IID2070 - "__ cmpw(Address(r24, r25, (Address::ScaleFactor)2, -0x3ac16e54), 4096);", // IID2071 - "__ cmpw(Address(r25, -0xb6dcd1c), 4096);", // IID2072 - "__ cmpw(Address(r26, r27, (Address::ScaleFactor)2, -0x1a7cb8bd), 4096);", // IID2073 - "__ cmpw(Address(r27, +0x5c5194b2), 4096);", // IID2074 - "__ cmpw(Address(r28, r29, (Address::ScaleFactor)2, +0x5f693fd8), 4096);", // IID2075 - "__ cmpw(Address(r29, r30, (Address::ScaleFactor)3, +0xcfd3537), 4096);", // IID2076 - "__ cmpw(Address(r30, r31, (Address::ScaleFactor)1, +0x2c47f77d), 4096);", // IID2077 - "__ cmpw(Address(r31, rcx, (Address::ScaleFactor)1, -0x210a8f63), 4096);", // IID2078 - "__ cmpw(Address(rcx, -0x743e288), 16384);", // IID2079 - "__ cmpw(Address(rdx, rbx, (Address::ScaleFactor)1, -0x42d68569), 16384);", // IID2080 - "__ cmpw(Address(rbx, r8, (Address::ScaleFactor)0, +0x5b1bbdb0), 16384);", // IID2081 - "__ cmpw(Address(r8, +0xa2c6361), 16384);", // IID2082 - "__ cmpw(Address(r9, r10, (Address::ScaleFactor)3, +0x62d4fc5c), 16384);", // IID2083 - "__ cmpw(Address(r10, r11, (Address::ScaleFactor)2, -0x326c0efa), 16384);", // IID2084 - "__ cmpw(Address(r11, +0xe56069f), 16384);", // IID2085 - "__ cmpw(Address(r12, r13, (Address::ScaleFactor)2, +0x1c81f661), 16384);", // IID2086 - "__ cmpw(Address(r13, r14, (Address::ScaleFactor)0, +0xa42dc0a), 16384);", // IID2087 - "__ cmpw(Address(r14, r15, (Address::ScaleFactor)3, +0x4eb12ddd), 16384);", // IID2088 - "__ cmpw(Address(r15, r16, (Address::ScaleFactor)2, -0x2bbf9c7c), 16384);", // IID2089 - "__ cmpw(Address(r16, r17, (Address::ScaleFactor)2, -0x49e9fe90), 16384);", // IID2090 - "__ cmpw(Address(r17, +0xa3e8b91), 16384);", // IID2091 - "__ cmpw(Address(r18, -0x6ad8fc11), 16384);", // IID2092 - "__ cmpw(Address(r19, r20, (Address::ScaleFactor)3, -0x4a7285e8), 16384);", // IID2093 - "__ cmpw(Address(r20, r21, (Address::ScaleFactor)3, +0x48ca88ea), 16384);", // IID2094 - "__ cmpw(Address(r21, r22, (Address::ScaleFactor)3, +0x33504242), 16384);", // IID2095 - "__ cmpw(Address(r22, r23, (Address::ScaleFactor)1, +0x4bbc662b), 16384);", // IID2096 - "__ cmpw(Address(r23, r24, (Address::ScaleFactor)2, +0x11fa8a23), 16384);", // IID2097 - "__ cmpw(Address(r24, r25, (Address::ScaleFactor)2, +0x2052a6f2), 16384);", // IID2098 - "__ cmpw(Address(r25, r26, (Address::ScaleFactor)3, -0x353faf72), 16384);", // IID2099 - "__ cmpw(Address(r26, r27, (Address::ScaleFactor)0, +0x54bff160), 16384);", // IID2100 - "__ cmpw(Address(r27, r28, (Address::ScaleFactor)3, +0x993323a), 16384);", // IID2101 - "__ cmpw(Address(r28, r29, (Address::ScaleFactor)3, -0x114f955e), 16384);", // IID2102 - "__ cmpw(Address(r29, +0x513b3041), 16384);", // IID2103 - "__ cmpw(Address(r30, r31, (Address::ScaleFactor)0, +0x7673ac3a), 16384);", // IID2104 - "__ cmpw(Address(r31, -0x23a8ac95), 16384);", // IID2105 -#endif // _LP64 - "__ cmpl(Address(rcx, rdx, (Address::ScaleFactor)3, -0x564a54b), 1);", // IID2106 - "__ cmpl(Address(rdx, rbx, (Address::ScaleFactor)3, -0xdb37d6b), 1);", // IID2107 -#ifdef _LP64 - "__ cmpl(Address(rbx, r8, (Address::ScaleFactor)2, +0x4f7c6736), 1);", // IID2108 - "__ cmpl(Address(r8, r9, (Address::ScaleFactor)1, +0x7073bf8f), 1);", // IID2109 - "__ cmpl(Address(r9, r10, (Address::ScaleFactor)1, -0x132203d9), 1);", // IID2110 - "__ cmpl(Address(r10, r11, (Address::ScaleFactor)0, +0x55e0b447), 1);", // IID2111 - "__ cmpl(Address(r11, r12, (Address::ScaleFactor)1, -0xc5a4b18), 1);", // IID2112 - "__ cmpl(Address(r12, -0x6c08105d), 1);", // IID2113 - "__ cmpl(Address(r13, -0x4bce0fe9), 1);", // IID2114 - "__ cmpl(Address(r14, r15, (Address::ScaleFactor)2, +0x6239c38d), 1);", // IID2115 - "__ cmpl(Address(r15, r16, (Address::ScaleFactor)3, -0x15eac4f7), 1);", // IID2116 - "__ cmpl(Address(r16, r17, (Address::ScaleFactor)0, -0x6aaf2e63), 1);", // IID2117 - "__ cmpl(Address(r17, r18, (Address::ScaleFactor)1, +0x744297a7), 1);", // IID2118 - "__ cmpl(Address(r18, r19, (Address::ScaleFactor)2, +0x3832a1af), 1);", // IID2119 - "__ cmpl(Address(r19, +0x4bb34bbd), 1);", // IID2120 - "__ cmpl(Address(r20, r21, (Address::ScaleFactor)2, +0x15294745), 1);", // IID2121 - "__ cmpl(Address(r21, r22, (Address::ScaleFactor)2, +0x32665852), 1);", // IID2122 - "__ cmpl(Address(r22, +0x2eed6edd), 1);", // IID2123 - "__ cmpl(Address(r23, r24, (Address::ScaleFactor)1, -0x60dc0dc0), 1);", // IID2124 - "__ cmpl(Address(r24, -0x14c9689d), 1);", // IID2125 - "__ cmpl(Address(r25, r26, (Address::ScaleFactor)0, -0x6bfac951), 1);", // IID2126 - "__ cmpl(Address(r26, r27, (Address::ScaleFactor)2, -0x5e75a12c), 1);", // IID2127 - "__ cmpl(Address(r27, r28, (Address::ScaleFactor)0, -0xfa6d46a), 1);", // IID2128 - "__ cmpl(Address(r28, r29, (Address::ScaleFactor)0, -0x1ea32a30), 1);", // IID2129 - "__ cmpl(Address(r29, r30, (Address::ScaleFactor)0, +0x525780d0), 1);", // IID2130 - "__ cmpl(Address(r30, r31, (Address::ScaleFactor)2, +0x29b6c38b), 1);", // IID2131 - "__ cmpl(Address(r31, +0x12b3df5c), 1);", // IID2132 - "__ cmpl(Address(rcx, rdx, (Address::ScaleFactor)3, -0x62ba9c73), 16);", // IID2133 - "__ cmpl(Address(rdx, rbx, (Address::ScaleFactor)1, -0x62e533e3), 16);", // IID2134 - "__ cmpl(Address(rbx, -0x6f36745c), 16);", // IID2135 - "__ cmpl(Address(r8, +0x24fb9554), 16);", // IID2136 - "__ cmpl(Address(r9, +0x623f00ba), 16);", // IID2137 - "__ cmpl(Address(r10, r11, (Address::ScaleFactor)3, -0x38190d79), 16);", // IID2138 - "__ cmpl(Address(r11, r12, (Address::ScaleFactor)0, -0x6ee49c), 16);", // IID2139 - "__ cmpl(Address(r12, r13, (Address::ScaleFactor)0, -0x265d0438), 16);", // IID2140 - "__ cmpl(Address(r13, r14, (Address::ScaleFactor)2, +0x7fe4a20), 16);", // IID2141 - "__ cmpl(Address(r14, r15, (Address::ScaleFactor)1, -0x158f95e1), 16);", // IID2142 - "__ cmpl(Address(r15, r16, (Address::ScaleFactor)0, -0x30dd9625), 16);", // IID2143 - "__ cmpl(Address(r16, r17, (Address::ScaleFactor)0, +0x22a10fd5), 16);", // IID2144 - "__ cmpl(Address(r17, r18, (Address::ScaleFactor)1, -0x3e92b2ed), 16);", // IID2145 - "__ cmpl(Address(r18, -0x574744e2), 16);", // IID2146 - "__ cmpl(Address(r19, r20, (Address::ScaleFactor)0, -0x3fb87a6c), 16);", // IID2147 - "__ cmpl(Address(r20, r21, (Address::ScaleFactor)0, -0x67b32207), 16);", // IID2148 - "__ cmpl(Address(r21, -0x1133bb7d), 16);", // IID2149 - "__ cmpl(Address(r22, r23, (Address::ScaleFactor)3, +0x4c41c5a0), 16);", // IID2150 - "__ cmpl(Address(r23, r24, (Address::ScaleFactor)1, -0x64dc482e), 16);", // IID2151 - "__ cmpl(Address(r24, r25, (Address::ScaleFactor)3, -0x17468001), 16);", // IID2152 - "__ cmpl(Address(r25, r26, (Address::ScaleFactor)2, +0x245e124d), 16);", // IID2153 - "__ cmpl(Address(r26, r27, (Address::ScaleFactor)0, +0x260a7326), 16);", // IID2154 - "__ cmpl(Address(r27, r28, (Address::ScaleFactor)0, +0x289dc4ef), 16);", // IID2155 - "__ cmpl(Address(r28, -0x4a58721f), 16);", // IID2156 - "__ cmpl(Address(r29, r30, (Address::ScaleFactor)1, -0x5b9d8103), 16);", // IID2157 - "__ cmpl(Address(r30, r31, (Address::ScaleFactor)3, +0xfd56c49), 16);", // IID2158 - "__ cmpl(Address(r31, rcx, (Address::ScaleFactor)1, +0x608c0e93), 16);", // IID2159 - "__ cmpl(Address(rcx, rdx, (Address::ScaleFactor)2, -0x2cf7eab), 256);", // IID2160 - "__ cmpl(Address(rdx, rbx, (Address::ScaleFactor)0, +0x37c9f36e), 256);", // IID2161 - "__ cmpl(Address(rbx, r8, (Address::ScaleFactor)0, -0x48b21641), 256);", // IID2162 - "__ cmpl(Address(r8, r9, (Address::ScaleFactor)0, +0x113d2aa7), 256);", // IID2163 - "__ cmpl(Address(r9, r10, (Address::ScaleFactor)1, +0x71729a98), 256);", // IID2164 - "__ cmpl(Address(r10, +0x5e83b6b4), 256);", // IID2165 - "__ cmpl(Address(r11, r12, (Address::ScaleFactor)3, -0x5dd8b9f6), 256);", // IID2166 - "__ cmpl(Address(r12, r13, (Address::ScaleFactor)1, +0x5150d3e6), 256);", // IID2167 - "__ cmpl(Address(r13, +0x66e05532), 256);", // IID2168 - "__ cmpl(Address(r14, r15, (Address::ScaleFactor)3, -0x75e95bdb), 256);", // IID2169 - "__ cmpl(Address(r15, r16, (Address::ScaleFactor)3, -0x7af7a44d), 256);", // IID2170 - "__ cmpl(Address(r16, r17, (Address::ScaleFactor)2, -0x530fabb9), 256);", // IID2171 - "__ cmpl(Address(r17, r18, (Address::ScaleFactor)0, +0x29846e56), 256);", // IID2172 - "__ cmpl(Address(r18, r19, (Address::ScaleFactor)3, +0x3148108a), 256);", // IID2173 - "__ cmpl(Address(r19, r20, (Address::ScaleFactor)1, -0x391298a1), 256);", // IID2174 - "__ cmpl(Address(r20, r21, (Address::ScaleFactor)2, -0xdb50696), 256);", // IID2175 - "__ cmpl(Address(r21, r22, (Address::ScaleFactor)0, -0x656b1bea), 256);", // IID2176 - "__ cmpl(Address(r22, r23, (Address::ScaleFactor)2, +0x6afabac), 256);", // IID2177 - "__ cmpl(Address(r23, +0x5f7ffbd9), 256);", // IID2178 - "__ cmpl(Address(r24, r25, (Address::ScaleFactor)2, -0x5033eedc), 256);", // IID2179 - "__ cmpl(Address(r25, r26, (Address::ScaleFactor)3, +0x5777cb4f), 256);", // IID2180 - "__ cmpl(Address(r26, r27, (Address::ScaleFactor)2, -0x7f6f6684), 256);", // IID2181 - "__ cmpl(Address(r27, r28, (Address::ScaleFactor)0, +0x4a3f5205), 256);", // IID2182 - "__ cmpl(Address(r28, r29, (Address::ScaleFactor)2, +0x34ce4973), 256);", // IID2183 - "__ cmpl(Address(r29, +0x38cb5e41), 256);", // IID2184 - "__ cmpl(Address(r30, +0x2ed9b57d), 256);", // IID2185 - "__ cmpl(Address(r31, rcx, (Address::ScaleFactor)3, -0x4b1db2dc), 256);", // IID2186 - "__ cmpl(Address(rcx, rdx, (Address::ScaleFactor)1, +0x10a7a38e), 4096);", // IID2187 - "__ cmpl(Address(rdx, rbx, (Address::ScaleFactor)2, -0x7eb9584e), 4096);", // IID2188 - "__ cmpl(Address(rbx, r8, (Address::ScaleFactor)0, -0x70b1c863), 4096);", // IID2189 - "__ cmpl(Address(r8, r9, (Address::ScaleFactor)1, -0x47b85ce7), 4096);", // IID2190 - "__ cmpl(Address(r9, -0x7deed99f), 4096);", // IID2191 - "__ cmpl(Address(r10, -0x3ef6d15d), 4096);", // IID2192 - "__ cmpl(Address(r11, r12, (Address::ScaleFactor)3, +0x48c47edf), 4096);", // IID2193 - "__ cmpl(Address(r12, r13, (Address::ScaleFactor)0, -0x35106c16), 4096);", // IID2194 - "__ cmpl(Address(r13, r14, (Address::ScaleFactor)1, +0x73ba2544), 4096);", // IID2195 - "__ cmpl(Address(r14, +0x375ae1cb), 4096);", // IID2196 - "__ cmpl(Address(r15, +0x55f3fbff), 4096);", // IID2197 - "__ cmpl(Address(r16, r17, (Address::ScaleFactor)0, +0x25ae33b1), 4096);", // IID2198 - "__ cmpl(Address(r17, r18, (Address::ScaleFactor)1, -0x5a3207e8), 4096);", // IID2199 - "__ cmpl(Address(r18, +0x71609311), 4096);", // IID2200 - "__ cmpl(Address(r19, r20, (Address::ScaleFactor)2, +0x4635630a), 4096);", // IID2201 - "__ cmpl(Address(r20, r21, (Address::ScaleFactor)1, +0x6ebb1128), 4096);", // IID2202 - "__ cmpl(Address(r21, +0x37f88894), 4096);", // IID2203 - "__ cmpl(Address(r22, r23, (Address::ScaleFactor)1, +0x63064393), 4096);", // IID2204 - "__ cmpl(Address(r23, r24, (Address::ScaleFactor)0, -0x19b5875e), 4096);", // IID2205 - "__ cmpl(Address(r24, r25, (Address::ScaleFactor)0, -0x64454066), 4096);", // IID2206 - "__ cmpl(Address(r25, r26, (Address::ScaleFactor)0, +0x189cf83f), 4096);", // IID2207 - "__ cmpl(Address(r26, -0x24905457), 4096);", // IID2208 - "__ cmpl(Address(r27, r28, (Address::ScaleFactor)3, -0x6343469e), 4096);", // IID2209 - "__ cmpl(Address(r28, r29, (Address::ScaleFactor)3, +0x76e73f86), 4096);", // IID2210 - "__ cmpl(Address(r29, r30, (Address::ScaleFactor)1, -0x6bd9b104), 4096);", // IID2211 - "__ cmpl(Address(r30, r31, (Address::ScaleFactor)2, +0x31806d61), 4096);", // IID2212 - "__ cmpl(Address(r31, -0x50d581fe), 4096);", // IID2213 - "__ cmpl(Address(rcx, rdx, (Address::ScaleFactor)1, +0x4317bc92), 65536);", // IID2214 - "__ cmpl(Address(rdx, rbx, (Address::ScaleFactor)0, +0x3376cb4c), 65536);", // IID2215 - "__ cmpl(Address(rbx, r8, (Address::ScaleFactor)1, -0x6add4201), 65536);", // IID2216 - "__ cmpl(Address(r8, r9, (Address::ScaleFactor)0, -0x410bdda3), 65536);", // IID2217 - "__ cmpl(Address(r9, r10, (Address::ScaleFactor)3, +0x22804704), 65536);", // IID2218 - "__ cmpl(Address(r10, r11, (Address::ScaleFactor)2, +0x303dfd1), 65536);", // IID2219 - "__ cmpl(Address(r11, r12, (Address::ScaleFactor)2, +0x27afced9), 65536);", // IID2220 - "__ cmpl(Address(r12, r13, (Address::ScaleFactor)0, -0x1a6402d4), 65536);", // IID2221 - "__ cmpl(Address(r13, r14, (Address::ScaleFactor)0, +0x19e4550b), 65536);", // IID2222 - "__ cmpl(Address(r14, r15, (Address::ScaleFactor)0, -0x30b53ce4), 65536);", // IID2223 - "__ cmpl(Address(r15, r16, (Address::ScaleFactor)2, -0x3ad97eb7), 65536);", // IID2224 - "__ cmpl(Address(r16, r17, (Address::ScaleFactor)2, -0xfe59504), 65536);", // IID2225 - "__ cmpl(Address(r17, -0x1d95091), 65536);", // IID2226 - "__ cmpl(Address(r18, r19, (Address::ScaleFactor)2, -0x44e89663), 65536);", // IID2227 - "__ cmpl(Address(r19, r20, (Address::ScaleFactor)0, -0x661c768b), 65536);", // IID2228 - "__ cmpl(Address(r20, r21, (Address::ScaleFactor)0, +0x451e598c), 65536);", // IID2229 - "__ cmpl(Address(r21, -0x20c234a3), 65536);", // IID2230 - "__ cmpl(Address(r22, r23, (Address::ScaleFactor)1, +0x18305ffb), 65536);", // IID2231 - "__ cmpl(Address(r23, r24, (Address::ScaleFactor)2, +0x752c5542), 65536);", // IID2232 - "__ cmpl(Address(r24, r25, (Address::ScaleFactor)1, -0x15db4dae), 65536);", // IID2233 - "__ cmpl(Address(r25, -0x61998bf), 65536);", // IID2234 - "__ cmpl(Address(r26, r27, (Address::ScaleFactor)2, -0x1eae9330), 65536);", // IID2235 - "__ cmpl(Address(r27, r28, (Address::ScaleFactor)3, -0x639c9ea), 65536);", // IID2236 - "__ cmpl(Address(r28, r29, (Address::ScaleFactor)3, +0x47027d68), 65536);", // IID2237 - "__ cmpl(Address(r29, r30, (Address::ScaleFactor)3, -0x39ba9100), 65536);", // IID2238 - "__ cmpl(Address(r30, +0x521a1332), 65536);", // IID2239 - "__ cmpl(Address(r31, rcx, (Address::ScaleFactor)0, +0x10dc436f), 65536);", // IID2240 - "__ cmpl(Address(rcx, rdx, (Address::ScaleFactor)2, -0xba9a101), 1048576);", // IID2241 - "__ cmpl(Address(rdx, rbx, (Address::ScaleFactor)2, -0x57ec3b85), 1048576);", // IID2242 - "__ cmpl(Address(rbx, +0x4ab73d0e), 1048576);", // IID2243 - "__ cmpl(Address(r8, r9, (Address::ScaleFactor)3, -0x70f8eaa7), 1048576);", // IID2244 - "__ cmpl(Address(r9, -0x54edaff7), 1048576);", // IID2245 - "__ cmpl(Address(r10, r11, (Address::ScaleFactor)0, -0x10b483c1), 1048576);", // IID2246 - "__ cmpl(Address(r11, r12, (Address::ScaleFactor)2, +0x5590cb95), 1048576);", // IID2247 - "__ cmpl(Address(r12, +0x7f4939d3), 1048576);", // IID2248 - "__ cmpl(Address(r13, r14, (Address::ScaleFactor)2, +0x310d6adc), 1048576);", // IID2249 - "__ cmpl(Address(r14, r15, (Address::ScaleFactor)1, +0x4e438aca), 1048576);", // IID2250 - "__ cmpl(Address(r15, -0x7cfe46fa), 1048576);", // IID2251 - "__ cmpl(Address(r16, r17, (Address::ScaleFactor)3, +0x4b0467a7), 1048576);", // IID2252 - "__ cmpl(Address(r17, r18, (Address::ScaleFactor)3, -0x5241db4c), 1048576);", // IID2253 - "__ cmpl(Address(r18, r19, (Address::ScaleFactor)3, -0x34c417ba), 1048576);", // IID2254 - "__ cmpl(Address(r19, r20, (Address::ScaleFactor)3, +0x7cd6f75c), 1048576);", // IID2255 - "__ cmpl(Address(r20, r21, (Address::ScaleFactor)1, +0x6a9e053), 1048576);", // IID2256 - "__ cmpl(Address(r21, r22, (Address::ScaleFactor)1, +0x2915fa08), 1048576);", // IID2257 - "__ cmpl(Address(r22, r23, (Address::ScaleFactor)2, -0x4a88de09), 1048576);", // IID2258 - "__ cmpl(Address(r23, r24, (Address::ScaleFactor)3, +0x15de1213), 1048576);", // IID2259 - "__ cmpl(Address(r24, r25, (Address::ScaleFactor)1, -0x43bd0e41), 1048576);", // IID2260 - "__ cmpl(Address(r25, r26, (Address::ScaleFactor)0, +0x6c8c6547), 1048576);", // IID2261 - "__ cmpl(Address(r26, r27, (Address::ScaleFactor)3, -0x3bafaa0e), 1048576);", // IID2262 - "__ cmpl(Address(r27, r28, (Address::ScaleFactor)1, -0x77358563), 1048576);", // IID2263 - "__ cmpl(Address(r28, r29, (Address::ScaleFactor)0, -0x5a7adf6b), 1048576);", // IID2264 - "__ cmpl(Address(r29, +0x39523480), 1048576);", // IID2265 - "__ cmpl(Address(r30, r31, (Address::ScaleFactor)1, +0x54e2f8cd), 1048576);", // IID2266 - "__ cmpl(Address(r31, rcx, (Address::ScaleFactor)0, +0x2117934c), 1048576);", // IID2267 - "__ cmpl(Address(rcx, rdx, (Address::ScaleFactor)3, -0x4987d228), 16777216);", // IID2268 - "__ cmpl(Address(rdx, +0x2b781157), 16777216);", // IID2269 - "__ cmpl(Address(rbx, r8, (Address::ScaleFactor)1, -0xc961f9), 16777216);", // IID2270 - "__ cmpl(Address(r8, r9, (Address::ScaleFactor)0, +0xe77d064), 16777216);", // IID2271 - "__ cmpl(Address(r9, r10, (Address::ScaleFactor)3, +0x75e4f85c), 16777216);", // IID2272 - "__ cmpl(Address(r10, r11, (Address::ScaleFactor)1, +0x23633c7c), 16777216);", // IID2273 - "__ cmpl(Address(r11, r12, (Address::ScaleFactor)0, -0x410863eb), 16777216);", // IID2274 - "__ cmpl(Address(r12, +0x6ed7b4bd), 16777216);", // IID2275 - "__ cmpl(Address(r13, r14, (Address::ScaleFactor)3, -0x4a431d5c), 16777216);", // IID2276 - "__ cmpl(Address(r14, r15, (Address::ScaleFactor)3, -0x103891bf), 16777216);", // IID2277 - "__ cmpl(Address(r15, r16, (Address::ScaleFactor)3, -0x646ffea0), 16777216);", // IID2278 - "__ cmpl(Address(r16, r17, (Address::ScaleFactor)1, -0x2625aa2c), 16777216);", // IID2279 - "__ cmpl(Address(r17, r18, (Address::ScaleFactor)0, -0x42c1ab9), 16777216);", // IID2280 - "__ cmpl(Address(r18, r19, (Address::ScaleFactor)1, +0x55861fd7), 16777216);", // IID2281 - "__ cmpl(Address(r19, r20, (Address::ScaleFactor)2, -0x72d830b7), 16777216);", // IID2282 - "__ cmpl(Address(r20, r21, (Address::ScaleFactor)0, +0x6a2ba3b0), 16777216);", // IID2283 - "__ cmpl(Address(r21, r22, (Address::ScaleFactor)0, +0x5d5d3fc1), 16777216);", // IID2284 - "__ cmpl(Address(r22, r23, (Address::ScaleFactor)2, -0x421d8a84), 16777216);", // IID2285 - "__ cmpl(Address(r23, r24, (Address::ScaleFactor)2, +0x35db8a4f), 16777216);", // IID2286 - "__ cmpl(Address(r24, +0x4a0f02f4), 16777216);", // IID2287 - "__ cmpl(Address(r25, r26, (Address::ScaleFactor)1, +0xea9ba2d), 16777216);", // IID2288 - "__ cmpl(Address(r26, r27, (Address::ScaleFactor)1, +0x9ac5564), 16777216);", // IID2289 - "__ cmpl(Address(r27, r28, (Address::ScaleFactor)3, -0x2257c13b), 16777216);", // IID2290 - "__ cmpl(Address(r28, +0x63372b78), 16777216);", // IID2291 - "__ cmpl(Address(r29, r30, (Address::ScaleFactor)3, +0x5c00e5e6), 16777216);", // IID2292 - "__ cmpl(Address(r30, +0x582a4103), 16777216);", // IID2293 - "__ cmpl(Address(r31, rcx, (Address::ScaleFactor)3, -0x2ae794eb), 16777216);", // IID2294 - "__ cmpl(Address(rcx, rdx, (Address::ScaleFactor)1, -0x1016e2eb), 268435456);", // IID2295 - "__ cmpl(Address(rdx, rbx, (Address::ScaleFactor)3, +0x3ecca053), 268435456);", // IID2296 - "__ cmpl(Address(rbx, +0x3c897f5f), 268435456);", // IID2297 - "__ cmpl(Address(r8, r9, (Address::ScaleFactor)1, -0x295f2f56), 268435456);", // IID2298 - "__ cmpl(Address(r9, r10, (Address::ScaleFactor)0, +0x6f166af2), 268435456);", // IID2299 - "__ cmpl(Address(r10, r11, (Address::ScaleFactor)2, -0x1c184a12), 268435456);", // IID2300 - "__ cmpl(Address(r11, r12, (Address::ScaleFactor)1, -0x5bda06f0), 268435456);", // IID2301 - "__ cmpl(Address(r12, r13, (Address::ScaleFactor)2, -0x3b393183), 268435456);", // IID2302 - "__ cmpl(Address(r13, +0xda60e7b), 268435456);", // IID2303 - "__ cmpl(Address(r14, r15, (Address::ScaleFactor)0, +0x32be9022), 268435456);", // IID2304 - "__ cmpl(Address(r15, r16, (Address::ScaleFactor)2, +0x9f10536), 268435456);", // IID2305 - "__ cmpl(Address(r16, r17, (Address::ScaleFactor)2, -0x29bf43b1), 268435456);", // IID2306 - "__ cmpl(Address(r17, r18, (Address::ScaleFactor)0, -0x7222b837), 268435456);", // IID2307 - "__ cmpl(Address(r18, r19, (Address::ScaleFactor)3, -0x3fcefae0), 268435456);", // IID2308 - "__ cmpl(Address(r19, +0x2448449b), 268435456);", // IID2309 - "__ cmpl(Address(r20, r21, (Address::ScaleFactor)0, -0x53df9ff0), 268435456);", // IID2310 - "__ cmpl(Address(r21, -0x355ce2ce), 268435456);", // IID2311 - "__ cmpl(Address(r22, r23, (Address::ScaleFactor)2, +0xfdf92ee), 268435456);", // IID2312 - "__ cmpl(Address(r23, r24, (Address::ScaleFactor)0, +0x57e8db82), 268435456);", // IID2313 - "__ cmpl(Address(r24, r25, (Address::ScaleFactor)3, -0x4c45c355), 268435456);", // IID2314 - "__ cmpl(Address(r25, r26, (Address::ScaleFactor)2, -0x5b5def9), 268435456);", // IID2315 - "__ cmpl(Address(r26, r27, (Address::ScaleFactor)0, -0x7bb8de47), 268435456);", // IID2316 - "__ cmpl(Address(r27, r28, (Address::ScaleFactor)0, +0x5ac226b7), 268435456);", // IID2317 - "__ cmpl(Address(r28, r29, (Address::ScaleFactor)1, +0x21e5d623), 268435456);", // IID2318 - "__ cmpl(Address(r29, r30, (Address::ScaleFactor)3, -0x33099f75), 268435456);", // IID2319 - "__ cmpl(Address(r30, r31, (Address::ScaleFactor)0, +0x5b28bfdc), 268435456);", // IID2320 - "__ cmpl(Address(r31, -0x6636265c), 268435456);", // IID2321 -#endif // _LP64 - "__ sarl(Address(rcx, -0x75ecb350), 1);", // IID2322 - "__ sarl(Address(rdx, rbx, (Address::ScaleFactor)1, -0x33d5ba03), 1);", // IID2323 -#ifdef _LP64 - "__ sarl(Address(rbx, r8, (Address::ScaleFactor)1, -0x79bb3929), 1);", // IID2324 - "__ sarl(Address(r8, r9, (Address::ScaleFactor)2, +0x8b3a2eb), 1);", // IID2325 - "__ sarl(Address(r9, r10, (Address::ScaleFactor)3, -0x65897d56), 1);", // IID2326 - "__ sarl(Address(r10, r11, (Address::ScaleFactor)1, -0x752aeab5), 1);", // IID2327 - "__ sarl(Address(r11, r12, (Address::ScaleFactor)0, +0x3647bfb1), 1);", // IID2328 - "__ sarl(Address(r12, r13, (Address::ScaleFactor)2, -0x76722445), 1);", // IID2329 - "__ sarl(Address(r13, r14, (Address::ScaleFactor)0, +0x441188d8), 1);", // IID2330 - "__ sarl(Address(r14, r15, (Address::ScaleFactor)3, +0x7cce9a09), 1);", // IID2331 - "__ sarl(Address(r15, r16, (Address::ScaleFactor)2, +0x10f547b6), 1);", // IID2332 - "__ sarl(Address(r16, r17, (Address::ScaleFactor)1, +0x3516eace), 1);", // IID2333 - "__ sarl(Address(r17, -0x6c459605), 1);", // IID2334 - "__ sarl(Address(r18, r19, (Address::ScaleFactor)1, +0x35494809), 1);", // IID2335 - "__ sarl(Address(r19, r20, (Address::ScaleFactor)3, +0x59b09add), 1);", // IID2336 - "__ sarl(Address(r20, r21, (Address::ScaleFactor)3, +0x1ebf908b), 1);", // IID2337 - "__ sarl(Address(r21, r22, (Address::ScaleFactor)1, -0x602dec72), 1);", // IID2338 - "__ sarl(Address(r22, r23, (Address::ScaleFactor)3, -0x7e6a79dd), 1);", // IID2339 - "__ sarl(Address(r23, r24, (Address::ScaleFactor)1, +0x78d65f2f), 1);", // IID2340 - "__ sarl(Address(r24, r25, (Address::ScaleFactor)2, +0x67e1c23a), 1);", // IID2341 - "__ sarl(Address(r25, r26, (Address::ScaleFactor)2, +0x7bafffe7), 1);", // IID2342 - "__ sarl(Address(r26, r27, (Address::ScaleFactor)2, +0x73aca561), 1);", // IID2343 - "__ sarl(Address(r27, r28, (Address::ScaleFactor)3, +0x7cc1339b), 1);", // IID2344 - "__ sarl(Address(r28, r29, (Address::ScaleFactor)1, -0x56b68cc5), 1);", // IID2345 - "__ sarl(Address(r29, r30, (Address::ScaleFactor)0, -0x7c0187eb), 1);", // IID2346 - "__ sarl(Address(r30, r31, (Address::ScaleFactor)3, -0x39b6cc0b), 1);", // IID2347 - "__ sarl(Address(r31, rcx, (Address::ScaleFactor)3, -0x6cfb3915), 1);", // IID2348 - "__ sarl(Address(rcx, +0x2a8999fd), 2);", // IID2349 - "__ sarl(Address(rdx, +0x4a3d433c), 2);", // IID2350 - "__ sarl(Address(rbx, +0x7a9c5248), 2);", // IID2351 - "__ sarl(Address(r8, r9, (Address::ScaleFactor)0, -0x7088c17f), 2);", // IID2352 - "__ sarl(Address(r9, r10, (Address::ScaleFactor)0, +0x1df50f31), 2);", // IID2353 - "__ sarl(Address(r10, r11, (Address::ScaleFactor)0, +0x39b5781f), 2);", // IID2354 - "__ sarl(Address(r11, -0x63076d6e), 2);", // IID2355 - "__ sarl(Address(r12, r13, (Address::ScaleFactor)3, -0x65a41efe), 2);", // IID2356 - "__ sarl(Address(r13, r14, (Address::ScaleFactor)2, +0x1e9ffa1c), 2);", // IID2357 - "__ sarl(Address(r14, r15, (Address::ScaleFactor)1, -0x4231bae4), 2);", // IID2358 - "__ sarl(Address(r15, r16, (Address::ScaleFactor)0, -0x66dc0a77), 2);", // IID2359 - "__ sarl(Address(r16, r17, (Address::ScaleFactor)2, -0x4547f632), 2);", // IID2360 - "__ sarl(Address(r17, r18, (Address::ScaleFactor)1, -0x1d8d904d), 2);", // IID2361 - "__ sarl(Address(r18, r19, (Address::ScaleFactor)0, -0x25ea19eb), 2);", // IID2362 - "__ sarl(Address(r19, -0x5eda44ac), 2);", // IID2363 - "__ sarl(Address(r20, r21, (Address::ScaleFactor)1, +0x44696d68), 2);", // IID2364 - "__ sarl(Address(r21, r22, (Address::ScaleFactor)3, +0x67317ef5), 2);", // IID2365 - "__ sarl(Address(r22, r23, (Address::ScaleFactor)3, -0x51ab2683), 2);", // IID2366 - "__ sarl(Address(r23, r24, (Address::ScaleFactor)0, -0x9bc65ca), 2);", // IID2367 - "__ sarl(Address(r24, +0x21ae9db0), 2);", // IID2368 - "__ sarl(Address(r25, r26, (Address::ScaleFactor)1, -0x5657235a), 2);", // IID2369 - "__ sarl(Address(r26, r27, (Address::ScaleFactor)2, +0x7940540e), 2);", // IID2370 - "__ sarl(Address(r27, r28, (Address::ScaleFactor)0, +0x1a12beea), 2);", // IID2371 - "__ sarl(Address(r28, r29, (Address::ScaleFactor)2, -0x1cd91788), 2);", // IID2372 - "__ sarl(Address(r29, r30, (Address::ScaleFactor)0, +0x3bce8941), 2);", // IID2373 - "__ sarl(Address(r30, +0x5219b3e7), 2);", // IID2374 - "__ sarl(Address(r31, rcx, (Address::ScaleFactor)3, -0x2b54cb68), 2);", // IID2375 - "__ sarl(Address(rcx, rdx, (Address::ScaleFactor)3, +0x49ecd8e2), 4);", // IID2376 - "__ sarl(Address(rdx, rbx, (Address::ScaleFactor)0, +0x76236021), 4);", // IID2377 - "__ sarl(Address(rbx, r8, (Address::ScaleFactor)3, -0x12fc1ead), 4);", // IID2378 - "__ sarl(Address(r8, r9, (Address::ScaleFactor)2, -0xd4a0a76), 4);", // IID2379 - "__ sarl(Address(r9, +0x5854f817), 4);", // IID2380 - "__ sarl(Address(r10, r11, (Address::ScaleFactor)3, +0x37a929ff), 4);", // IID2381 - "__ sarl(Address(r11, r12, (Address::ScaleFactor)0, +0x58025fa2), 4);", // IID2382 - "__ sarl(Address(r12, +0x69689c56), 4);", // IID2383 - "__ sarl(Address(r13, +0x56415056), 4);", // IID2384 - "__ sarl(Address(r14, r15, (Address::ScaleFactor)2, +0x1c7f354e), 4);", // IID2385 - "__ sarl(Address(r15, r16, (Address::ScaleFactor)2, +0x5efd7698), 4);", // IID2386 - "__ sarl(Address(r16, -0x58d93179), 4);", // IID2387 - "__ sarl(Address(r17, -0x5a7adc93), 4);", // IID2388 - "__ sarl(Address(r18, r19, (Address::ScaleFactor)1, +0x6decd566), 4);", // IID2389 - "__ sarl(Address(r19, r20, (Address::ScaleFactor)2, -0x7f873bfa), 4);", // IID2390 - "__ sarl(Address(r20, r21, (Address::ScaleFactor)1, +0x4aa73e7e), 4);", // IID2391 - "__ sarl(Address(r21, r22, (Address::ScaleFactor)2, +0x1fc2516c), 4);", // IID2392 - "__ sarl(Address(r22, -0x6d6a0d57), 4);", // IID2393 - "__ sarl(Address(r23, r24, (Address::ScaleFactor)2, -0x1c03c121), 4);", // IID2394 - "__ sarl(Address(r24, r25, (Address::ScaleFactor)3, +0x22fe4982), 4);", // IID2395 - "__ sarl(Address(r25, r26, (Address::ScaleFactor)0, +0x2b2a2036), 4);", // IID2396 - "__ sarl(Address(r26, r27, (Address::ScaleFactor)1, +0x5f2bd2bd), 4);", // IID2397 - "__ sarl(Address(r27, r28, (Address::ScaleFactor)1, -0x1fb604b7), 4);", // IID2398 - "__ sarl(Address(r28, +0x64e6520), 4);", // IID2399 - "__ sarl(Address(r29, r30, (Address::ScaleFactor)0, +0xc307cac), 4);", // IID2400 - "__ sarl(Address(r30, r31, (Address::ScaleFactor)1, -0x11877a1f), 4);", // IID2401 - "__ sarl(Address(r31, rcx, (Address::ScaleFactor)0, -0x7a631983), 4);", // IID2402 - "__ sarl(Address(rcx, rdx, (Address::ScaleFactor)0, +0x588556dd), 8);", // IID2403 - "__ sarl(Address(rdx, rbx, (Address::ScaleFactor)2, -0x7b655b1), 8);", // IID2404 - "__ sarl(Address(rbx, r8, (Address::ScaleFactor)3, +0x7d3d9f9b), 8);", // IID2405 - "__ sarl(Address(r8, r9, (Address::ScaleFactor)3, +0x140bfc81), 8);", // IID2406 - "__ sarl(Address(r9, r10, (Address::ScaleFactor)3, +0x5fc8dc78), 8);", // IID2407 - "__ sarl(Address(r10, r11, (Address::ScaleFactor)1, -0x3f461372), 8);", // IID2408 - "__ sarl(Address(r11, -0x6c4f7834), 8);", // IID2409 - "__ sarl(Address(r12, r13, (Address::ScaleFactor)0, -0x3c140440), 8);", // IID2410 - "__ sarl(Address(r13, r14, (Address::ScaleFactor)3, -0x1480d75f), 8);", // IID2411 - "__ sarl(Address(r14, +0xf82164b), 8);", // IID2412 - "__ sarl(Address(r15, r16, (Address::ScaleFactor)1, +0x31004916), 8);", // IID2413 - "__ sarl(Address(r16, r17, (Address::ScaleFactor)3, +0x539eecc0), 8);", // IID2414 - "__ sarl(Address(r17, +0x25802081), 8);", // IID2415 - "__ sarl(Address(r18, r19, (Address::ScaleFactor)0, +0x1416fb9b), 8);", // IID2416 - "__ sarl(Address(r19, +0x2f4a107f), 8);", // IID2417 - "__ sarl(Address(r20, r21, (Address::ScaleFactor)0, +0x641002a6), 8);", // IID2418 - "__ sarl(Address(r21, -0x25256ba6), 8);", // IID2419 - "__ sarl(Address(r22, r23, (Address::ScaleFactor)0, +0x35744cf5), 8);", // IID2420 - "__ sarl(Address(r23, r24, (Address::ScaleFactor)2, +0x3c34ddc8), 8);", // IID2421 - "__ sarl(Address(r24, r25, (Address::ScaleFactor)2, -0x6ee885df), 8);", // IID2422 - "__ sarl(Address(r25, r26, (Address::ScaleFactor)1, -0x3beeda85), 8);", // IID2423 - "__ sarl(Address(r26, r27, (Address::ScaleFactor)1, +0x2f7a8b22), 8);", // IID2424 - "__ sarl(Address(r27, r28, (Address::ScaleFactor)3, +0x2af00095), 8);", // IID2425 - "__ sarl(Address(r28, r29, (Address::ScaleFactor)2, -0x28e5b3f1), 8);", // IID2426 - "__ sarl(Address(r29, r30, (Address::ScaleFactor)0, +0x501c2233), 8);", // IID2427 - "__ sarl(Address(r30, -0x71f26d08), 8);", // IID2428 - "__ sarl(Address(r31, +0x19d9e644), 8);", // IID2429 - "__ sarl(Address(rcx, +0x4cae0a54), 16);", // IID2430 - "__ sarl(Address(rdx, -0x532aff31), 16);", // IID2431 - "__ sarl(Address(rbx, r8, (Address::ScaleFactor)2, +0x1efde76e), 16);", // IID2432 - "__ sarl(Address(r8, +0x467eee1a), 16);", // IID2433 - "__ sarl(Address(r9, r10, (Address::ScaleFactor)1, -0x4d933230), 16);", // IID2434 - "__ sarl(Address(r10, r11, (Address::ScaleFactor)0, -0x1e2824ae), 16);", // IID2435 - "__ sarl(Address(r11, r12, (Address::ScaleFactor)1, -0x6ad4d0db), 16);", // IID2436 - "__ sarl(Address(r12, +0x61633e2), 16);", // IID2437 - "__ sarl(Address(r13, -0x4ddc6510), 16);", // IID2438 - "__ sarl(Address(r14, r15, (Address::ScaleFactor)3, -0x5ce8dc22), 16);", // IID2439 - "__ sarl(Address(r15, r16, (Address::ScaleFactor)2, +0x33847920), 16);", // IID2440 - "__ sarl(Address(r16, r17, (Address::ScaleFactor)2, -0x48ffb9fb), 16);", // IID2441 - "__ sarl(Address(r17, r18, (Address::ScaleFactor)1, -0x7f16aacc), 16);", // IID2442 - "__ sarl(Address(r18, r19, (Address::ScaleFactor)2, +0x750bbad9), 16);", // IID2443 - "__ sarl(Address(r19, +0x1ed175bb), 16);", // IID2444 - "__ sarl(Address(r20, r21, (Address::ScaleFactor)3, +0x17798fc6), 16);", // IID2445 - "__ sarl(Address(r21, -0x76bbcfbb), 16);", // IID2446 - "__ sarl(Address(r22, -0x1842753d), 16);", // IID2447 - "__ sarl(Address(r23, r24, (Address::ScaleFactor)3, -0x716c483a), 16);", // IID2448 - "__ sarl(Address(r24, -0x1982bbb0), 16);", // IID2449 - "__ sarl(Address(r25, +0x7442a1c), 16);", // IID2450 - "__ sarl(Address(r26, r27, (Address::ScaleFactor)0, -0x14abe541), 16);", // IID2451 - "__ sarl(Address(r27, r28, (Address::ScaleFactor)3, +0x4bacab5f), 16);", // IID2452 - "__ sarl(Address(r28, r29, (Address::ScaleFactor)2, +0x163a9a88), 16);", // IID2453 - "__ sarl(Address(r29, r30, (Address::ScaleFactor)2, -0x746d7934), 16);", // IID2454 - "__ sarl(Address(r30, r31, (Address::ScaleFactor)1, +0x3be899ba), 16);", // IID2455 - "__ sarl(Address(r31, +0x555f941b), 16);", // IID2456 -#endif // _LP64 - "__ sall(Address(rcx, -0x62d44dcb), 1);", // IID2457 - "__ sall(Address(rdx, rbx, (Address::ScaleFactor)1, +0x51c7b44c), 1);", // IID2458 -#ifdef _LP64 - "__ sall(Address(rbx, -0x44365b3f), 1);", // IID2459 - "__ sall(Address(r8, r9, (Address::ScaleFactor)2, -0x3482d6b5), 1);", // IID2460 - "__ sall(Address(r9, r10, (Address::ScaleFactor)1, -0x63970c08), 1);", // IID2461 - "__ sall(Address(r10, r11, (Address::ScaleFactor)1, -0x2f0b5698), 1);", // IID2462 - "__ sall(Address(r11, +0x6abdddb9), 1);", // IID2463 - "__ sall(Address(r12, r13, (Address::ScaleFactor)0, +0x2fbc077c), 1);", // IID2464 - "__ sall(Address(r13, r14, (Address::ScaleFactor)2, -0xb4fb0ec), 1);", // IID2465 - "__ sall(Address(r14, r15, (Address::ScaleFactor)2, -0x171f99d7), 1);", // IID2466 - "__ sall(Address(r15, r16, (Address::ScaleFactor)3, +0x614bd596), 1);", // IID2467 - "__ sall(Address(r16, +0xe081ae9), 1);", // IID2468 - "__ sall(Address(r17, r18, (Address::ScaleFactor)1, +0x39670d1), 1);", // IID2469 - "__ sall(Address(r18, +0x2c93f1d5), 1);", // IID2470 - "__ sall(Address(r19, r20, (Address::ScaleFactor)0, -0x3d5c27c5), 1);", // IID2471 - "__ sall(Address(r20, r21, (Address::ScaleFactor)3, +0x4ba72c46), 1);", // IID2472 - "__ sall(Address(r21, r22, (Address::ScaleFactor)3, -0x1c7ddf9a), 1);", // IID2473 - "__ sall(Address(r22, r23, (Address::ScaleFactor)1, +0x136d8661), 1);", // IID2474 - "__ sall(Address(r23, r24, (Address::ScaleFactor)0, -0x194ae4), 1);", // IID2475 - "__ sall(Address(r24, -0x6a1eff85), 1);", // IID2476 - "__ sall(Address(r25, r26, (Address::ScaleFactor)1, +0x22c29628), 1);", // IID2477 - "__ sall(Address(r26, r27, (Address::ScaleFactor)2, -0xb6c2339), 1);", // IID2478 - "__ sall(Address(r27, r28, (Address::ScaleFactor)3, +0x64261b12), 1);", // IID2479 - "__ sall(Address(r28, +0x2234103), 1);", // IID2480 - "__ sall(Address(r29, +0x672d7da2), 1);", // IID2481 - "__ sall(Address(r30, r31, (Address::ScaleFactor)0, +0x2ffec71a), 1);", // IID2482 - "__ sall(Address(r31, rcx, (Address::ScaleFactor)0, +0x7f820a0d), 1);", // IID2483 - "__ sall(Address(rcx, rdx, (Address::ScaleFactor)2, +0x7b90666c), 2);", // IID2484 - "__ sall(Address(rdx, rbx, (Address::ScaleFactor)1, -0x258f3a2d), 2);", // IID2485 - "__ sall(Address(rbx, r8, (Address::ScaleFactor)3, -0x42fa526d), 2);", // IID2486 - "__ sall(Address(r8, +0x4754ac5a), 2);", // IID2487 - "__ sall(Address(r9, r10, (Address::ScaleFactor)1, -0x70035b35), 2);", // IID2488 - "__ sall(Address(r10, r11, (Address::ScaleFactor)3, +0xd29c7fe), 2);", // IID2489 - "__ sall(Address(r11, r12, (Address::ScaleFactor)1, +0x56a8fe36), 2);", // IID2490 - "__ sall(Address(r12, r13, (Address::ScaleFactor)1, +0x7b0ed6e8), 2);", // IID2491 - "__ sall(Address(r13, r14, (Address::ScaleFactor)3, +0x7eefe12c), 2);", // IID2492 - "__ sall(Address(r14, r15, (Address::ScaleFactor)0, +0x1d20c3cc), 2);", // IID2493 - "__ sall(Address(r15, r16, (Address::ScaleFactor)3, -0x471894b3), 2);", // IID2494 - "__ sall(Address(r16, r17, (Address::ScaleFactor)1, -0x99ec4b8), 2);", // IID2495 - "__ sall(Address(r17, r18, (Address::ScaleFactor)0, -0x492bdab7), 2);", // IID2496 - "__ sall(Address(r18, r19, (Address::ScaleFactor)1, +0x48f72837), 2);", // IID2497 - "__ sall(Address(r19, r20, (Address::ScaleFactor)2, +0x28a6c48), 2);", // IID2498 - "__ sall(Address(r20, r21, (Address::ScaleFactor)3, +0x746ea8), 2);", // IID2499 - "__ sall(Address(r21, r22, (Address::ScaleFactor)1, +0x61a77802), 2);", // IID2500 - "__ sall(Address(r22, r23, (Address::ScaleFactor)2, +0xff309b1), 2);", // IID2501 - "__ sall(Address(r23, r24, (Address::ScaleFactor)0, +0x4a59fec6), 2);", // IID2502 - "__ sall(Address(r24, r25, (Address::ScaleFactor)1, -0x7f9bcedf), 2);", // IID2503 - "__ sall(Address(r25, r26, (Address::ScaleFactor)2, +0x267a00ea), 2);", // IID2504 - "__ sall(Address(r26, r27, (Address::ScaleFactor)2, -0x4bbaf08c), 2);", // IID2505 - "__ sall(Address(r27, r28, (Address::ScaleFactor)2, +0x62b1b85), 2);", // IID2506 - "__ sall(Address(r28, r29, (Address::ScaleFactor)1, -0x70ba8cc8), 2);", // IID2507 - "__ sall(Address(r29, r30, (Address::ScaleFactor)0, +0x6652937f), 2);", // IID2508 - "__ sall(Address(r30, r31, (Address::ScaleFactor)0, -0x99e40ff), 2);", // IID2509 - "__ sall(Address(r31, rcx, (Address::ScaleFactor)3, +0x7653459e), 2);", // IID2510 - "__ sall(Address(rcx, rdx, (Address::ScaleFactor)0, -0x7663abcf), 4);", // IID2511 - "__ sall(Address(rdx, +0x7faf2227), 4);", // IID2512 - "__ sall(Address(rbx, -0x520f4043), 4);", // IID2513 - "__ sall(Address(r8, r9, (Address::ScaleFactor)3, -0x60b74439), 4);", // IID2514 - "__ sall(Address(r9, r10, (Address::ScaleFactor)1, +0x65341c3), 4);", // IID2515 - "__ sall(Address(r10, r11, (Address::ScaleFactor)1, -0x7ff35f3e), 4);", // IID2516 - "__ sall(Address(r11, r12, (Address::ScaleFactor)1, +0x2267449d), 4);", // IID2517 - "__ sall(Address(r12, r13, (Address::ScaleFactor)3, +0xb2f0642), 4);", // IID2518 - "__ sall(Address(r13, r14, (Address::ScaleFactor)2, +0x17e2911c), 4);", // IID2519 - "__ sall(Address(r14, -0x3f36f75f), 4);", // IID2520 - "__ sall(Address(r15, r16, (Address::ScaleFactor)2, -0x34995af1), 4);", // IID2521 - "__ sall(Address(r16, r17, (Address::ScaleFactor)0, -0x6ad73fcd), 4);", // IID2522 - "__ sall(Address(r17, r18, (Address::ScaleFactor)1, +0x7f66b102), 4);", // IID2523 - "__ sall(Address(r18, +0x35bd1923), 4);", // IID2524 - "__ sall(Address(r19, r20, (Address::ScaleFactor)0, -0x4622db08), 4);", // IID2525 - "__ sall(Address(r20, r21, (Address::ScaleFactor)1, +0x79db44be), 4);", // IID2526 - "__ sall(Address(r21, r22, (Address::ScaleFactor)2, +0x278e74e5), 4);", // IID2527 - "__ sall(Address(r22, r23, (Address::ScaleFactor)3, +0x4156295a), 4);", // IID2528 - "__ sall(Address(r23, r24, (Address::ScaleFactor)3, +0x28a8f921), 4);", // IID2529 - "__ sall(Address(r24, r25, (Address::ScaleFactor)3, +0x7571e927), 4);", // IID2530 - "__ sall(Address(r25, r26, (Address::ScaleFactor)2, +0x56de85db), 4);", // IID2531 - "__ sall(Address(r26, r27, (Address::ScaleFactor)1, -0x1a023434), 4);", // IID2532 - "__ sall(Address(r27, -0x2cca838f), 4);", // IID2533 - "__ sall(Address(r28, +0x38061158), 4);", // IID2534 - "__ sall(Address(r29, r30, (Address::ScaleFactor)3, -0x6fd0182b), 4);", // IID2535 - "__ sall(Address(r30, -0x17e703b4), 4);", // IID2536 - "__ sall(Address(r31, rcx, (Address::ScaleFactor)0, +0x2c27eb71), 4);", // IID2537 - "__ sall(Address(rcx, rdx, (Address::ScaleFactor)2, -0x718d112c), 8);", // IID2538 - "__ sall(Address(rdx, rbx, (Address::ScaleFactor)2, +0x2a0eaa57), 8);", // IID2539 - "__ sall(Address(rbx, r8, (Address::ScaleFactor)3, -0x13fc52a2), 8);", // IID2540 - "__ sall(Address(r8, r9, (Address::ScaleFactor)2, +0x1a1c0f8), 8);", // IID2541 - "__ sall(Address(r9, r10, (Address::ScaleFactor)2, +0x1592827), 8);", // IID2542 - "__ sall(Address(r10, r11, (Address::ScaleFactor)0, +0x58ae279), 8);", // IID2543 - "__ sall(Address(r11, r12, (Address::ScaleFactor)3, +0x31f6a814), 8);", // IID2544 - "__ sall(Address(r12, r13, (Address::ScaleFactor)1, -0xfcb229d), 8);", // IID2545 - "__ sall(Address(r13, r14, (Address::ScaleFactor)3, +0x12d91321), 8);", // IID2546 - "__ sall(Address(r14, r15, (Address::ScaleFactor)2, -0x4579fee5), 8);", // IID2547 - "__ sall(Address(r15, r16, (Address::ScaleFactor)0, +0xa3d5d01), 8);", // IID2548 - "__ sall(Address(r16, r17, (Address::ScaleFactor)0, -0x32411bf0), 8);", // IID2549 - "__ sall(Address(r17, +0x4b94b357), 8);", // IID2550 - "__ sall(Address(r18, r19, (Address::ScaleFactor)0, +0x52aec96e), 8);", // IID2551 - "__ sall(Address(r19, +0x2736b189), 8);", // IID2552 - "__ sall(Address(r20, r21, (Address::ScaleFactor)0, -0x5b0f811c), 8);", // IID2553 - "__ sall(Address(r21, r22, (Address::ScaleFactor)1, -0x63e305cf), 8);", // IID2554 - "__ sall(Address(r22, r23, (Address::ScaleFactor)3, -0x42e22b26), 8);", // IID2555 - "__ sall(Address(r23, +0x62a4f4c5), 8);", // IID2556 - "__ sall(Address(r24, +0x2cc62ee1), 8);", // IID2557 - "__ sall(Address(r25, r26, (Address::ScaleFactor)1, -0x3683383d), 8);", // IID2558 - "__ sall(Address(r26, r27, (Address::ScaleFactor)1, -0x7a3d7b6a), 8);", // IID2559 - "__ sall(Address(r27, -0x1b8bddd5), 8);", // IID2560 - "__ sall(Address(r28, r29, (Address::ScaleFactor)2, +0x2c3da53b), 8);", // IID2561 - "__ sall(Address(r29, r30, (Address::ScaleFactor)1, -0x17ceffb3), 8);", // IID2562 - "__ sall(Address(r30, r31, (Address::ScaleFactor)2, +0x45e59d93), 8);", // IID2563 - "__ sall(Address(r31, rcx, (Address::ScaleFactor)2, +0x2ca53fd7), 8);", // IID2564 - "__ sall(Address(rcx, rdx, (Address::ScaleFactor)1, -0x7ace68b0), 16);", // IID2565 - "__ sall(Address(rdx, rbx, (Address::ScaleFactor)2, +0x1bfa8fd7), 16);", // IID2566 - "__ sall(Address(rbx, -0x5d7d450e), 16);", // IID2567 - "__ sall(Address(r8, r9, (Address::ScaleFactor)0, +0x3f10a12b), 16);", // IID2568 - "__ sall(Address(r9, r10, (Address::ScaleFactor)2, +0x6f91cdbc), 16);", // IID2569 - "__ sall(Address(r10, r11, (Address::ScaleFactor)0, -0x7e2b05ac), 16);", // IID2570 - "__ sall(Address(r11, +0x2a441b3a), 16);", // IID2571 - "__ sall(Address(r12, r13, (Address::ScaleFactor)3, -0x5b731bb9), 16);", // IID2572 - "__ sall(Address(r13, r14, (Address::ScaleFactor)0, +0xe08ee30), 16);", // IID2573 - "__ sall(Address(r14, r15, (Address::ScaleFactor)0, +0x51a439d4), 16);", // IID2574 - "__ sall(Address(r15, r16, (Address::ScaleFactor)3, +0x4fa15ac3), 16);", // IID2575 - "__ sall(Address(r16, +0x443dd9c3), 16);", // IID2576 - "__ sall(Address(r17, r18, (Address::ScaleFactor)3, +0x13282f8c), 16);", // IID2577 - "__ sall(Address(r18, r19, (Address::ScaleFactor)3, -0x6db379f2), 16);", // IID2578 - "__ sall(Address(r19, -0x796b708b), 16);", // IID2579 - "__ sall(Address(r20, r21, (Address::ScaleFactor)1, +0x6e29da9a), 16);", // IID2580 - "__ sall(Address(r21, r22, (Address::ScaleFactor)0, +0xe85c157), 16);", // IID2581 - "__ sall(Address(r22, r23, (Address::ScaleFactor)1, +0x4ea01d2c), 16);", // IID2582 - "__ sall(Address(r23, r24, (Address::ScaleFactor)3, +0x4e37bf71), 16);", // IID2583 - "__ sall(Address(r24, r25, (Address::ScaleFactor)0, -0x5152a0c8), 16);", // IID2584 - "__ sall(Address(r25, r26, (Address::ScaleFactor)1, -0x336ea79), 16);", // IID2585 - "__ sall(Address(r26, r27, (Address::ScaleFactor)3, +0x506ec0e6), 16);", // IID2586 - "__ sall(Address(r27, r28, (Address::ScaleFactor)1, +0x1033fcb6), 16);", // IID2587 - "__ sall(Address(r28, r29, (Address::ScaleFactor)0, +0xa838a2e), 16);", // IID2588 - "__ sall(Address(r29, r30, (Address::ScaleFactor)1, +0x55c677d3), 16);", // IID2589 - "__ sall(Address(r30, r31, (Address::ScaleFactor)0, -0x3b602c44), 16);", // IID2590 - "__ sall(Address(r31, -0x14e6f271), 16);", // IID2591 -#endif // _LP64 - "__ sbbl(Address(rcx, -0x6a7b1768), 1);", // IID2592 - "__ sbbl(Address(rdx, rbx, (Address::ScaleFactor)0, -0x47bd742d), 1);", // IID2593 -#ifdef _LP64 - "__ sbbl(Address(rbx, r8, (Address::ScaleFactor)3, -0x3735a888), 1);", // IID2594 - "__ sbbl(Address(r8, r9, (Address::ScaleFactor)1, +0x108d87ed), 1);", // IID2595 - "__ sbbl(Address(r9, r10, (Address::ScaleFactor)2, +0x1f6ef88f), 1);", // IID2596 - "__ sbbl(Address(r10, r11, (Address::ScaleFactor)2, -0x3cdc5f8c), 1);", // IID2597 - "__ sbbl(Address(r11, r12, (Address::ScaleFactor)1, -0x4d60ad), 1);", // IID2598 - "__ sbbl(Address(r12, r13, (Address::ScaleFactor)2, +0x33413b99), 1);", // IID2599 - "__ sbbl(Address(r13, r14, (Address::ScaleFactor)3, -0x635f82ee), 1);", // IID2600 - "__ sbbl(Address(r14, r15, (Address::ScaleFactor)0, -0x18661896), 1);", // IID2601 - "__ sbbl(Address(r15, +0x32ad4f03), 1);", // IID2602 - "__ sbbl(Address(r16, r17, (Address::ScaleFactor)1, +0x59ff6e87), 1);", // IID2603 - "__ sbbl(Address(r17, r18, (Address::ScaleFactor)0, -0x4fd8b553), 1);", // IID2604 - "__ sbbl(Address(r18, -0x5e1aff6f), 1);", // IID2605 - "__ sbbl(Address(r19, -0x6dce069c), 1);", // IID2606 - "__ sbbl(Address(r20, r21, (Address::ScaleFactor)2, -0x1fa44b1), 1);", // IID2607 - "__ sbbl(Address(r21, r22, (Address::ScaleFactor)2, +0x74451d9d), 1);", // IID2608 - "__ sbbl(Address(r22, r23, (Address::ScaleFactor)3, -0x351e872a), 1);", // IID2609 - "__ sbbl(Address(r23, r24, (Address::ScaleFactor)0, +0x25adee43), 1);", // IID2610 - "__ sbbl(Address(r24, r25, (Address::ScaleFactor)0, +0x2938bd9e), 1);", // IID2611 - "__ sbbl(Address(r25, r26, (Address::ScaleFactor)3, -0x67fe125a), 1);", // IID2612 - "__ sbbl(Address(r26, r27, (Address::ScaleFactor)2, -0x59236bef), 1);", // IID2613 - "__ sbbl(Address(r27, r28, (Address::ScaleFactor)3, -0xbdcc938), 1);", // IID2614 - "__ sbbl(Address(r28, r29, (Address::ScaleFactor)1, +0x421f8c5b), 1);", // IID2615 - "__ sbbl(Address(r29, +0x410708a6), 1);", // IID2616 - "__ sbbl(Address(r30, r31, (Address::ScaleFactor)3, -0x45a14893), 1);", // IID2617 - "__ sbbl(Address(r31, rcx, (Address::ScaleFactor)1, +0x706c7996), 1);", // IID2618 - "__ sbbl(Address(rcx, rdx, (Address::ScaleFactor)1, +0x88fa50), 16);", // IID2619 - "__ sbbl(Address(rdx, rbx, (Address::ScaleFactor)2, -0x57207540), 16);", // IID2620 - "__ sbbl(Address(rbx, r8, (Address::ScaleFactor)0, -0x2f2c80d7), 16);", // IID2621 - "__ sbbl(Address(r8, r9, (Address::ScaleFactor)1, +0x3af766f9), 16);", // IID2622 - "__ sbbl(Address(r9, -0x5bb805bd), 16);", // IID2623 - "__ sbbl(Address(r10, r11, (Address::ScaleFactor)3, +0xceffb50), 16);", // IID2624 - "__ sbbl(Address(r11, r12, (Address::ScaleFactor)1, -0x4d003451), 16);", // IID2625 - "__ sbbl(Address(r12, -0x23a7659b), 16);", // IID2626 - "__ sbbl(Address(r13, r14, (Address::ScaleFactor)0, +0x57aa9bdc), 16);", // IID2627 - "__ sbbl(Address(r14, r15, (Address::ScaleFactor)3, -0x18eb0ca2), 16);", // IID2628 - "__ sbbl(Address(r15, r16, (Address::ScaleFactor)2, -0x1f82bb15), 16);", // IID2629 - "__ sbbl(Address(r16, r17, (Address::ScaleFactor)1, +0x9fac5bb), 16);", // IID2630 - "__ sbbl(Address(r17, r18, (Address::ScaleFactor)0, -0x43831473), 16);", // IID2631 - "__ sbbl(Address(r18, r19, (Address::ScaleFactor)2, -0x29b5b1e4), 16);", // IID2632 - "__ sbbl(Address(r19, r20, (Address::ScaleFactor)3, +0x38d2bbe6), 16);", // IID2633 - "__ sbbl(Address(r20, r21, (Address::ScaleFactor)1, -0x5e90849a), 16);", // IID2634 - "__ sbbl(Address(r21, r22, (Address::ScaleFactor)2, -0x6a66f796), 16);", // IID2635 - "__ sbbl(Address(r22, r23, (Address::ScaleFactor)3, +0x77b6ec18), 16);", // IID2636 - "__ sbbl(Address(r23, r24, (Address::ScaleFactor)0, -0x18400857), 16);", // IID2637 - "__ sbbl(Address(r24, r25, (Address::ScaleFactor)2, -0x78606314), 16);", // IID2638 - "__ sbbl(Address(r25, -0x64c023f9), 16);", // IID2639 - "__ sbbl(Address(r26, r27, (Address::ScaleFactor)0, -0x37924455), 16);", // IID2640 - "__ sbbl(Address(r27, r28, (Address::ScaleFactor)3, +0x5ccbaac7), 16);", // IID2641 - "__ sbbl(Address(r28, +0x579e2874), 16);", // IID2642 - "__ sbbl(Address(r29, r30, (Address::ScaleFactor)3, +0x47137a92), 16);", // IID2643 - "__ sbbl(Address(r30, r31, (Address::ScaleFactor)3, -0x291555ff), 16);", // IID2644 - "__ sbbl(Address(r31, rcx, (Address::ScaleFactor)3, +0x511f27d1), 16);", // IID2645 - "__ sbbl(Address(rcx, rdx, (Address::ScaleFactor)3, +0x5bbc1463), 256);", // IID2646 - "__ sbbl(Address(rdx, rbx, (Address::ScaleFactor)3, +0x53f5456f), 256);", // IID2647 - "__ sbbl(Address(rbx, r8, (Address::ScaleFactor)2, +0x7a80631d), 256);", // IID2648 - "__ sbbl(Address(r8, r9, (Address::ScaleFactor)1, +0x5c804ffc), 256);", // IID2649 - "__ sbbl(Address(r9, r10, (Address::ScaleFactor)0, +0x18552b08), 256);", // IID2650 - "__ sbbl(Address(r10, r11, (Address::ScaleFactor)0, +0x6e72aea7), 256);", // IID2651 - "__ sbbl(Address(r11, r12, (Address::ScaleFactor)1, -0x178f3b55), 256);", // IID2652 - "__ sbbl(Address(r12, r13, (Address::ScaleFactor)3, -0xedef708), 256);", // IID2653 - "__ sbbl(Address(r13, r14, (Address::ScaleFactor)3, +0xa90210d), 256);", // IID2654 - "__ sbbl(Address(r14, +0x4c97d625), 256);", // IID2655 - "__ sbbl(Address(r15, +0x48c860d0), 256);", // IID2656 - "__ sbbl(Address(r16, r17, (Address::ScaleFactor)3, +0x1a3d4ec2), 256);", // IID2657 - "__ sbbl(Address(r17, -0x6397a1e4), 256);", // IID2658 - "__ sbbl(Address(r18, r19, (Address::ScaleFactor)0, -0xb6d6987), 256);", // IID2659 - "__ sbbl(Address(r19, r20, (Address::ScaleFactor)0, +0x14159181), 256);", // IID2660 - "__ sbbl(Address(r20, r21, (Address::ScaleFactor)3, -0x21d97ae), 256);", // IID2661 - "__ sbbl(Address(r21, r22, (Address::ScaleFactor)0, -0x2ce3685), 256);", // IID2662 - "__ sbbl(Address(r22, r23, (Address::ScaleFactor)0, +0x52492904), 256);", // IID2663 - "__ sbbl(Address(r23, r24, (Address::ScaleFactor)3, -0x6d18f5df), 256);", // IID2664 - "__ sbbl(Address(r24, +0x22f3b590), 256);", // IID2665 - "__ sbbl(Address(r25, r26, (Address::ScaleFactor)2, -0x6f2ed6f2), 256);", // IID2666 - "__ sbbl(Address(r26, r27, (Address::ScaleFactor)3, +0x3c3dec48), 256);", // IID2667 - "__ sbbl(Address(r27, r28, (Address::ScaleFactor)3, +0xea315b2), 256);", // IID2668 - "__ sbbl(Address(r28, -0x5608cea0), 256);", // IID2669 - "__ sbbl(Address(r29, -0x5ce9b7c6), 256);", // IID2670 - "__ sbbl(Address(r30, r31, (Address::ScaleFactor)1, -0x76236e6f), 256);", // IID2671 - "__ sbbl(Address(r31, rcx, (Address::ScaleFactor)2, +0x70624f66), 256);", // IID2672 - "__ sbbl(Address(rcx, rdx, (Address::ScaleFactor)0, -0x59c230bd), 4096);", // IID2673 - "__ sbbl(Address(rdx, rbx, (Address::ScaleFactor)1, -0x1738773), 4096);", // IID2674 - "__ sbbl(Address(rbx, r8, (Address::ScaleFactor)2, -0x583f4618), 4096);", // IID2675 - "__ sbbl(Address(r8, r9, (Address::ScaleFactor)2, +0x10fffb2c), 4096);", // IID2676 - "__ sbbl(Address(r9, r10, (Address::ScaleFactor)0, -0x62a66a19), 4096);", // IID2677 - "__ sbbl(Address(r10, r11, (Address::ScaleFactor)3, -0x6212544b), 4096);", // IID2678 - "__ sbbl(Address(r11, r12, (Address::ScaleFactor)1, +0x73787b91), 4096);", // IID2679 - "__ sbbl(Address(r12, r13, (Address::ScaleFactor)0, -0x7abb7753), 4096);", // IID2680 - "__ sbbl(Address(r13, +0x47b90e9d), 4096);", // IID2681 - "__ sbbl(Address(r14, r15, (Address::ScaleFactor)0, +0x569ce906), 4096);", // IID2682 - "__ sbbl(Address(r15, r16, (Address::ScaleFactor)2, -0x582200c), 4096);", // IID2683 - "__ sbbl(Address(r16, -0x7b760ab1), 4096);", // IID2684 - "__ sbbl(Address(r17, +0x50b45e28), 4096);", // IID2685 - "__ sbbl(Address(r18, r19, (Address::ScaleFactor)2, -0xd923108), 4096);", // IID2686 - "__ sbbl(Address(r19, r20, (Address::ScaleFactor)0, -0x622ba9b1), 4096);", // IID2687 - "__ sbbl(Address(r20, r21, (Address::ScaleFactor)0, +0x4c55944e), 4096);", // IID2688 - "__ sbbl(Address(r21, r22, (Address::ScaleFactor)3, -0x1592de32), 4096);", // IID2689 - "__ sbbl(Address(r22, r23, (Address::ScaleFactor)1, +0x7f81a05f), 4096);", // IID2690 - "__ sbbl(Address(r23, -0x24b7013a), 4096);", // IID2691 - "__ sbbl(Address(r24, r25, (Address::ScaleFactor)3, -0x223e8b2b), 4096);", // IID2692 - "__ sbbl(Address(r25, r26, (Address::ScaleFactor)0, -0x4e0c2a5d), 4096);", // IID2693 - "__ sbbl(Address(r26, r27, (Address::ScaleFactor)1, -0x56813ee), 4096);", // IID2694 - "__ sbbl(Address(r27, +0x20918a47), 4096);", // IID2695 - "__ sbbl(Address(r28, r29, (Address::ScaleFactor)3, -0x6734acd4), 4096);", // IID2696 - "__ sbbl(Address(r29, r30, (Address::ScaleFactor)3, +0x194b4940), 4096);", // IID2697 - "__ sbbl(Address(r30, r31, (Address::ScaleFactor)2, -0xc3f9e5d), 4096);", // IID2698 - "__ sbbl(Address(r31, rcx, (Address::ScaleFactor)3, +0x1ee6af42), 4096);", // IID2699 - "__ sbbl(Address(rcx, +0x5c08ed38), 65536);", // IID2700 - "__ sbbl(Address(rdx, -0x2ff5fd0d), 65536);", // IID2701 - "__ sbbl(Address(rbx, r8, (Address::ScaleFactor)1, -0xc811164), 65536);", // IID2702 - "__ sbbl(Address(r8, r9, (Address::ScaleFactor)3, +0x334e4f04), 65536);", // IID2703 - "__ sbbl(Address(r9, r10, (Address::ScaleFactor)1, -0x69c1ed3), 65536);", // IID2704 - "__ sbbl(Address(r10, r11, (Address::ScaleFactor)1, +0x25dcdaf), 65536);", // IID2705 - "__ sbbl(Address(r11, r12, (Address::ScaleFactor)3, +0x7d62c68f), 65536);", // IID2706 - "__ sbbl(Address(r12, r13, (Address::ScaleFactor)1, +0x5b64175a), 65536);", // IID2707 - "__ sbbl(Address(r13, r14, (Address::ScaleFactor)1, -0x42044de2), 65536);", // IID2708 - "__ sbbl(Address(r14, r15, (Address::ScaleFactor)0, +0x52736d4d), 65536);", // IID2709 - "__ sbbl(Address(r15, r16, (Address::ScaleFactor)1, +0x10900764), 65536);", // IID2710 - "__ sbbl(Address(r16, r17, (Address::ScaleFactor)0, +0xa23bcab), 65536);", // IID2711 - "__ sbbl(Address(r17, r18, (Address::ScaleFactor)1, +0x75180a10), 65536);", // IID2712 - "__ sbbl(Address(r18, r19, (Address::ScaleFactor)1, +0x797ecd2e), 65536);", // IID2713 - "__ sbbl(Address(r19, r20, (Address::ScaleFactor)2, +0x1dd39bb8), 65536);", // IID2714 - "__ sbbl(Address(r20, r21, (Address::ScaleFactor)0, +0x74b180ec), 65536);", // IID2715 - "__ sbbl(Address(r21, r22, (Address::ScaleFactor)3, -0x5a40314e), 65536);", // IID2716 - "__ sbbl(Address(r22, r23, (Address::ScaleFactor)0, +0x7adbd820), 65536);", // IID2717 - "__ sbbl(Address(r23, r24, (Address::ScaleFactor)3, +0x48ea631b), 65536);", // IID2718 - "__ sbbl(Address(r24, r25, (Address::ScaleFactor)1, +0x2758ed4d), 65536);", // IID2719 - "__ sbbl(Address(r25, r26, (Address::ScaleFactor)3, +0xb892057), 65536);", // IID2720 - "__ sbbl(Address(r26, r27, (Address::ScaleFactor)3, +0x69bf3361), 65536);", // IID2721 - "__ sbbl(Address(r27, r28, (Address::ScaleFactor)2, -0x66573d8d), 65536);", // IID2722 - "__ sbbl(Address(r28, r29, (Address::ScaleFactor)0, +0x6dc44402), 65536);", // IID2723 - "__ sbbl(Address(r29, r30, (Address::ScaleFactor)1, -0x4f3d1774), 65536);", // IID2724 - "__ sbbl(Address(r30, r31, (Address::ScaleFactor)2, +0x3cfc4a94), 65536);", // IID2725 - "__ sbbl(Address(r31, -0x3911fde4), 65536);", // IID2726 - "__ sbbl(Address(rcx, rdx, (Address::ScaleFactor)1, +0x1328766f), 1048576);", // IID2727 - "__ sbbl(Address(rdx, rbx, (Address::ScaleFactor)3, +0x142ad73), 1048576);", // IID2728 - "__ sbbl(Address(rbx, r8, (Address::ScaleFactor)1, +0x11489e6e), 1048576);", // IID2729 - "__ sbbl(Address(r8, r9, (Address::ScaleFactor)3, -0x3b57a577), 1048576);", // IID2730 - "__ sbbl(Address(r9, -0x415591c2), 1048576);", // IID2731 - "__ sbbl(Address(r10, r11, (Address::ScaleFactor)3, +0x28679682), 1048576);", // IID2732 - "__ sbbl(Address(r11, r12, (Address::ScaleFactor)0, +0x7be8fa76), 1048576);", // IID2733 - "__ sbbl(Address(r12, r13, (Address::ScaleFactor)1, -0x799f288a), 1048576);", // IID2734 - "__ sbbl(Address(r13, r14, (Address::ScaleFactor)1, -0x2fbd6971), 1048576);", // IID2735 - "__ sbbl(Address(r14, r15, (Address::ScaleFactor)3, -0x4459dd02), 1048576);", // IID2736 - "__ sbbl(Address(r15, r16, (Address::ScaleFactor)0, +0x2bb886b6), 1048576);", // IID2737 - "__ sbbl(Address(r16, r17, (Address::ScaleFactor)3, +0xa069ffb), 1048576);", // IID2738 - "__ sbbl(Address(r17, r18, (Address::ScaleFactor)2, +0x750dfa50), 1048576);", // IID2739 - "__ sbbl(Address(r18, r19, (Address::ScaleFactor)2, +0x625498a8), 1048576);", // IID2740 - "__ sbbl(Address(r19, r20, (Address::ScaleFactor)3, +0x3adc1ef7), 1048576);", // IID2741 - "__ sbbl(Address(r20, r21, (Address::ScaleFactor)1, +0x2bd67be9), 1048576);", // IID2742 - "__ sbbl(Address(r21, r22, (Address::ScaleFactor)3, +0xc2c85b), 1048576);", // IID2743 - "__ sbbl(Address(r22, +0x7d9fb046), 1048576);", // IID2744 - "__ sbbl(Address(r23, r24, (Address::ScaleFactor)0, +0x71f6a59), 1048576);", // IID2745 - "__ sbbl(Address(r24, r25, (Address::ScaleFactor)3, -0x313b36fb), 1048576);", // IID2746 - "__ sbbl(Address(r25, r26, (Address::ScaleFactor)0, +0x29990425), 1048576);", // IID2747 - "__ sbbl(Address(r26, r27, (Address::ScaleFactor)1, +0x6d9e7ca4), 1048576);", // IID2748 - "__ sbbl(Address(r27, r28, (Address::ScaleFactor)0, -0x540f839), 1048576);", // IID2749 - "__ sbbl(Address(r28, r29, (Address::ScaleFactor)3, +0x16c49ac1), 1048576);", // IID2750 - "__ sbbl(Address(r29, r30, (Address::ScaleFactor)0, -0x6034f7d1), 1048576);", // IID2751 - "__ sbbl(Address(r30, -0x3c7b9e64), 1048576);", // IID2752 - "__ sbbl(Address(r31, rcx, (Address::ScaleFactor)1, +0x1d67be7a), 1048576);", // IID2753 - "__ sbbl(Address(rcx, -0x72e1384d), 16777216);", // IID2754 - "__ sbbl(Address(rdx, rbx, (Address::ScaleFactor)2, +0x5e67b1f9), 16777216);", // IID2755 - "__ sbbl(Address(rbx, r8, (Address::ScaleFactor)2, +0xd638182), 16777216);", // IID2756 - "__ sbbl(Address(r8, r9, (Address::ScaleFactor)2, -0x439f657), 16777216);", // IID2757 - "__ sbbl(Address(r9, r10, (Address::ScaleFactor)0, -0x110326c9), 16777216);", // IID2758 - "__ sbbl(Address(r10, r11, (Address::ScaleFactor)3, +0x66a42f5d), 16777216);", // IID2759 - "__ sbbl(Address(r11, -0x36177bb8), 16777216);", // IID2760 - "__ sbbl(Address(r12, r13, (Address::ScaleFactor)2, +0x7bbaa951), 16777216);", // IID2761 - "__ sbbl(Address(r13, -0x6c2e1c61), 16777216);", // IID2762 - "__ sbbl(Address(r14, -0x54adfaf2), 16777216);", // IID2763 - "__ sbbl(Address(r15, r16, (Address::ScaleFactor)2, -0x4fbb344f), 16777216);", // IID2764 - "__ sbbl(Address(r16, r17, (Address::ScaleFactor)2, +0x5252d565), 16777216);", // IID2765 - "__ sbbl(Address(r17, r18, (Address::ScaleFactor)3, +0x281aee33), 16777216);", // IID2766 - "__ sbbl(Address(r18, r19, (Address::ScaleFactor)1, +0x263d222d), 16777216);", // IID2767 - "__ sbbl(Address(r19, r20, (Address::ScaleFactor)0, -0x25480eef), 16777216);", // IID2768 - "__ sbbl(Address(r20, +0x2c21b6ba), 16777216);", // IID2769 - "__ sbbl(Address(r21, r22, (Address::ScaleFactor)3, +0x4bb2f9d5), 16777216);", // IID2770 - "__ sbbl(Address(r22, r23, (Address::ScaleFactor)3, -0x3bf8406f), 16777216);", // IID2771 - "__ sbbl(Address(r23, r24, (Address::ScaleFactor)2, +0x2d34fdff), 16777216);", // IID2772 - "__ sbbl(Address(r24, r25, (Address::ScaleFactor)2, -0x47c576a3), 16777216);", // IID2773 - "__ sbbl(Address(r25, -0x3f3071de), 16777216);", // IID2774 - "__ sbbl(Address(r26, r27, (Address::ScaleFactor)0, -0x211238ca), 16777216);", // IID2775 - "__ sbbl(Address(r27, r28, (Address::ScaleFactor)0, +0x8ca6133), 16777216);", // IID2776 - "__ sbbl(Address(r28, r29, (Address::ScaleFactor)2, -0x635958b3), 16777216);", // IID2777 - "__ sbbl(Address(r29, -0x76330363), 16777216);", // IID2778 - "__ sbbl(Address(r30, r31, (Address::ScaleFactor)0, -0x24ddacff), 16777216);", // IID2779 - "__ sbbl(Address(r31, rcx, (Address::ScaleFactor)1, +0x7522349), 16777216);", // IID2780 - "__ sbbl(Address(rcx, rdx, (Address::ScaleFactor)0, -0x32923f0a), 268435456);", // IID2781 - "__ sbbl(Address(rdx, rbx, (Address::ScaleFactor)3, +0x53991ef9), 268435456);", // IID2782 - "__ sbbl(Address(rbx, r8, (Address::ScaleFactor)0, -0x6fd007cc), 268435456);", // IID2783 - "__ sbbl(Address(r8, r9, (Address::ScaleFactor)1, +0x4ab7a3af), 268435456);", // IID2784 - "__ sbbl(Address(r9, r10, (Address::ScaleFactor)2, -0x6bde), 268435456);", // IID2785 - "__ sbbl(Address(r10, r11, (Address::ScaleFactor)3, +0x1d5a415e), 268435456);", // IID2786 - "__ sbbl(Address(r11, r12, (Address::ScaleFactor)3, +0x720e5487), 268435456);", // IID2787 - "__ sbbl(Address(r12, r13, (Address::ScaleFactor)1, -0x2633979c), 268435456);", // IID2788 - "__ sbbl(Address(r13, -0x7359c039), 268435456);", // IID2789 - "__ sbbl(Address(r14, r15, (Address::ScaleFactor)2, +0x5e223f30), 268435456);", // IID2790 - "__ sbbl(Address(r15, r16, (Address::ScaleFactor)1, +0x643cfc2d), 268435456);", // IID2791 - "__ sbbl(Address(r16, r17, (Address::ScaleFactor)1, -0x34b2bc54), 268435456);", // IID2792 - "__ sbbl(Address(r17, r18, (Address::ScaleFactor)1, +0x7a81994), 268435456);", // IID2793 - "__ sbbl(Address(r18, r19, (Address::ScaleFactor)1, +0x46b87f6d), 268435456);", // IID2794 - "__ sbbl(Address(r19, r20, (Address::ScaleFactor)0, +0x42bb9f1b), 268435456);", // IID2795 - "__ sbbl(Address(r20, r21, (Address::ScaleFactor)0, -0x5c9cdd22), 268435456);", // IID2796 - "__ sbbl(Address(r21, r22, (Address::ScaleFactor)2, +0x639a8d82), 268435456);", // IID2797 - "__ sbbl(Address(r22, r23, (Address::ScaleFactor)1, -0x5eb51a4f), 268435456);", // IID2798 - "__ sbbl(Address(r23, r24, (Address::ScaleFactor)0, -0x7baa07b4), 268435456);", // IID2799 - "__ sbbl(Address(r24, r25, (Address::ScaleFactor)2, -0x23c990f5), 268435456);", // IID2800 - "__ sbbl(Address(r25, r26, (Address::ScaleFactor)1, +0x621f959f), 268435456);", // IID2801 - "__ sbbl(Address(r26, -0x729d752d), 268435456);", // IID2802 - "__ sbbl(Address(r27, -0x6a25a919), 268435456);", // IID2803 - "__ sbbl(Address(r28, +0x58149485), 268435456);", // IID2804 - "__ sbbl(Address(r29, r30, (Address::ScaleFactor)2, -0x190898d2), 268435456);", // IID2805 - "__ sbbl(Address(r30, +0x2cf613b9), 268435456);", // IID2806 - "__ sbbl(Address(r31, rcx, (Address::ScaleFactor)0, +0x7b778694), 268435456);", // IID2807 -#endif // _LP64 - "__ shrl(Address(rcx, rdx, (Address::ScaleFactor)0, -0x4160a69e), 1);", // IID2808 - "__ shrl(Address(rdx, rbx, (Address::ScaleFactor)3, -0x75505568), 1);", // IID2809 -#ifdef _LP64 - "__ shrl(Address(rbx, r8, (Address::ScaleFactor)3, +0x3335cfe6), 1);", // IID2810 - "__ shrl(Address(r8, r9, (Address::ScaleFactor)0, +0x199f2fe1), 1);", // IID2811 - "__ shrl(Address(r9, r10, (Address::ScaleFactor)0, -0x3a334748), 1);", // IID2812 - "__ shrl(Address(r10, r11, (Address::ScaleFactor)2, -0x31e45bd2), 1);", // IID2813 - "__ shrl(Address(r11, r12, (Address::ScaleFactor)3, +0x1ffdc9a8), 1);", // IID2814 - "__ shrl(Address(r12, r13, (Address::ScaleFactor)3, +0x41d57c6c), 1);", // IID2815 - "__ shrl(Address(r13, r14, (Address::ScaleFactor)2, -0x4391715b), 1);", // IID2816 - "__ shrl(Address(r14, -0x4db41a03), 1);", // IID2817 - "__ shrl(Address(r15, r16, (Address::ScaleFactor)3, -0x21cfbf94), 1);", // IID2818 - "__ shrl(Address(r16, r17, (Address::ScaleFactor)3, -0xf62302d), 1);", // IID2819 - "__ shrl(Address(r17, -0x4627a866), 1);", // IID2820 - "__ shrl(Address(r18, r19, (Address::ScaleFactor)0, +0x776b9a46), 1);", // IID2821 - "__ shrl(Address(r19, -0x162c793b), 1);", // IID2822 - "__ shrl(Address(r20, r21, (Address::ScaleFactor)1, -0x5b2dbd02), 1);", // IID2823 - "__ shrl(Address(r21, r22, (Address::ScaleFactor)2, -0x3611acc4), 1);", // IID2824 - "__ shrl(Address(r22, r23, (Address::ScaleFactor)1, -0x67fd74bf), 1);", // IID2825 - "__ shrl(Address(r23, r24, (Address::ScaleFactor)0, -0x2486ebbe), 1);", // IID2826 - "__ shrl(Address(r24, -0x412da5ae), 1);", // IID2827 - "__ shrl(Address(r25, r26, (Address::ScaleFactor)2, +0x675eea52), 1);", // IID2828 - "__ shrl(Address(r26, r27, (Address::ScaleFactor)2, +0x4261ddcc), 1);", // IID2829 - "__ shrl(Address(r27, r28, (Address::ScaleFactor)1, -0x70ffd3b2), 1);", // IID2830 - "__ shrl(Address(r28, r29, (Address::ScaleFactor)2, -0x7fb7e9cb), 1);", // IID2831 - "__ shrl(Address(r29, r30, (Address::ScaleFactor)0, -0x649b508b), 1);", // IID2832 - "__ shrl(Address(r30, r31, (Address::ScaleFactor)1, -0x70e2cfde), 1);", // IID2833 - "__ shrl(Address(r31, rcx, (Address::ScaleFactor)1, +0x62a27429), 1);", // IID2834 - "__ shrl(Address(rcx, rdx, (Address::ScaleFactor)0, +0x523e2f65), 2);", // IID2835 - "__ shrl(Address(rdx, rbx, (Address::ScaleFactor)2, +0xfc9d6b0), 2);", // IID2836 - "__ shrl(Address(rbx, r8, (Address::ScaleFactor)2, +0x6442c2fd), 2);", // IID2837 - "__ shrl(Address(r8, +0x5c08cd5e), 2);", // IID2838 - "__ shrl(Address(r9, r10, (Address::ScaleFactor)0, -0x52b9569f), 2);", // IID2839 - "__ shrl(Address(r10, +0x3e92eb8e), 2);", // IID2840 - "__ shrl(Address(r11, r12, (Address::ScaleFactor)0, -0x70112419), 2);", // IID2841 - "__ shrl(Address(r12, r13, (Address::ScaleFactor)3, +0x6ceba58f), 2);", // IID2842 - "__ shrl(Address(r13, r14, (Address::ScaleFactor)3, +0x23c2f8cb), 2);", // IID2843 - "__ shrl(Address(r14, r15, (Address::ScaleFactor)0, -0x422bd335), 2);", // IID2844 - "__ shrl(Address(r15, r16, (Address::ScaleFactor)3, -0x5be19bbf), 2);", // IID2845 - "__ shrl(Address(r16, r17, (Address::ScaleFactor)2, -0x76ed1638), 2);", // IID2846 - "__ shrl(Address(r17, r18, (Address::ScaleFactor)3, -0x633ec307), 2);", // IID2847 - "__ shrl(Address(r18, +0x36541245), 2);", // IID2848 - "__ shrl(Address(r19, -0x7cc8e29a), 2);", // IID2849 - "__ shrl(Address(r20, r21, (Address::ScaleFactor)0, +0x362347ce), 2);", // IID2850 - "__ shrl(Address(r21, r22, (Address::ScaleFactor)1, +0x2df937b3), 2);", // IID2851 - "__ shrl(Address(r22, r23, (Address::ScaleFactor)1, -0x71241c8c), 2);", // IID2852 - "__ shrl(Address(r23, -0x42d1b39), 2);", // IID2853 - "__ shrl(Address(r24, r25, (Address::ScaleFactor)1, -0x2a65e476), 2);", // IID2854 - "__ shrl(Address(r25, r26, (Address::ScaleFactor)2, +0x18f56f90), 2);", // IID2855 - "__ shrl(Address(r26, r27, (Address::ScaleFactor)3, +0x42fa6a3d), 2);", // IID2856 - "__ shrl(Address(r27, r28, (Address::ScaleFactor)3, +0x53e2b5b6), 2);", // IID2857 - "__ shrl(Address(r28, r29, (Address::ScaleFactor)0, +0x5ba8d523), 2);", // IID2858 - "__ shrl(Address(r29, +0x5e1b5ab), 2);", // IID2859 - "__ shrl(Address(r30, -0x23bbdca9), 2);", // IID2860 - "__ shrl(Address(r31, +0x24c87350), 2);", // IID2861 - "__ shrl(Address(rcx, rdx, (Address::ScaleFactor)3, -0x2e9c1ef5), 4);", // IID2862 - "__ shrl(Address(rdx, rbx, (Address::ScaleFactor)0, +0x780b76d4), 4);", // IID2863 - "__ shrl(Address(rbx, r8, (Address::ScaleFactor)2, -0x67c37157), 4);", // IID2864 - "__ shrl(Address(r8, r9, (Address::ScaleFactor)0, +0x21db8db7), 4);", // IID2865 - "__ shrl(Address(r9, r10, (Address::ScaleFactor)0, +0x468e6037), 4);", // IID2866 - "__ shrl(Address(r10, r11, (Address::ScaleFactor)2, -0x37b9eff6), 4);", // IID2867 - "__ shrl(Address(r11, r12, (Address::ScaleFactor)3, -0x1bc9271c), 4);", // IID2868 - "__ shrl(Address(r12, r13, (Address::ScaleFactor)1, -0x6286f93a), 4);", // IID2869 - "__ shrl(Address(r13, r14, (Address::ScaleFactor)1, +0x833ea23), 4);", // IID2870 - "__ shrl(Address(r14, r15, (Address::ScaleFactor)3, -0x5cf53206), 4);", // IID2871 - "__ shrl(Address(r15, r16, (Address::ScaleFactor)0, -0xf81ad2c), 4);", // IID2872 - "__ shrl(Address(r16, r17, (Address::ScaleFactor)1, -0x5fccd48c), 4);", // IID2873 - "__ shrl(Address(r17, r18, (Address::ScaleFactor)1, -0x1973e6ff), 4);", // IID2874 - "__ shrl(Address(r18, r19, (Address::ScaleFactor)3, +0x63a6708a), 4);", // IID2875 - "__ shrl(Address(r19, r20, (Address::ScaleFactor)3, -0x51537ab3), 4);", // IID2876 - "__ shrl(Address(r20, r21, (Address::ScaleFactor)2, -0x7fba13ba), 4);", // IID2877 - "__ shrl(Address(r21, +0x409bc5e2), 4);", // IID2878 - "__ shrl(Address(r22, +0x75138cf4), 4);", // IID2879 - "__ shrl(Address(r23, +0x698e2f96), 4);", // IID2880 - "__ shrl(Address(r24, r25, (Address::ScaleFactor)3, +0x483a5d3a), 4);", // IID2881 - "__ shrl(Address(r25, r26, (Address::ScaleFactor)3, +0x6f1a4d02), 4);", // IID2882 - "__ shrl(Address(r26, -0x4fd1163c), 4);", // IID2883 - "__ shrl(Address(r27, r28, (Address::ScaleFactor)2, +0x237f638a), 4);", // IID2884 - "__ shrl(Address(r28, r29, (Address::ScaleFactor)1, +0x79790002), 4);", // IID2885 - "__ shrl(Address(r29, r30, (Address::ScaleFactor)2, +0x1bb11b09), 4);", // IID2886 - "__ shrl(Address(r30, +0x3eecffaa), 4);", // IID2887 - "__ shrl(Address(r31, rcx, (Address::ScaleFactor)0, +0x3ba461d6), 4);", // IID2888 - "__ shrl(Address(rcx, rdx, (Address::ScaleFactor)2, -0x65e1495d), 8);", // IID2889 - "__ shrl(Address(rdx, rbx, (Address::ScaleFactor)2, -0x6b4684c2), 8);", // IID2890 - "__ shrl(Address(rbx, r8, (Address::ScaleFactor)0, -0x2c578e5b), 8);", // IID2891 - "__ shrl(Address(r8, r9, (Address::ScaleFactor)2, +0x5bebd681), 8);", // IID2892 - "__ shrl(Address(r9, r10, (Address::ScaleFactor)0, -0x1f9fefb0), 8);", // IID2893 - "__ shrl(Address(r10, r11, (Address::ScaleFactor)2, -0x1f620b9), 8);", // IID2894 - "__ shrl(Address(r11, r12, (Address::ScaleFactor)3, -0x73868702), 8);", // IID2895 - "__ shrl(Address(r12, r13, (Address::ScaleFactor)3, +0x137d4a1e), 8);", // IID2896 - "__ shrl(Address(r13, r14, (Address::ScaleFactor)1, +0x6c44102c), 8);", // IID2897 - "__ shrl(Address(r14, r15, (Address::ScaleFactor)3, -0x3aa0f06f), 8);", // IID2898 - "__ shrl(Address(r15, +0x64c5d6a7), 8);", // IID2899 - "__ shrl(Address(r16, r17, (Address::ScaleFactor)2, +0x40e18a39), 8);", // IID2900 - "__ shrl(Address(r17, r18, (Address::ScaleFactor)0, -0x3e11ed3d), 8);", // IID2901 - "__ shrl(Address(r18, r19, (Address::ScaleFactor)2, -0x601f45c1), 8);", // IID2902 - "__ shrl(Address(r19, r20, (Address::ScaleFactor)3, -0x7f356e95), 8);", // IID2903 - "__ shrl(Address(r20, r21, (Address::ScaleFactor)1, +0x6d95421f), 8);", // IID2904 - "__ shrl(Address(r21, r22, (Address::ScaleFactor)2, +0x6a115f89), 8);", // IID2905 - "__ shrl(Address(r22, r23, (Address::ScaleFactor)3, -0x369f9311), 8);", // IID2906 - "__ shrl(Address(r23, r24, (Address::ScaleFactor)1, +0x2af72b70), 8);", // IID2907 - "__ shrl(Address(r24, r25, (Address::ScaleFactor)0, +0x1cc52db2), 8);", // IID2908 - "__ shrl(Address(r25, -0x4ca2d483), 8);", // IID2909 - "__ shrl(Address(r26, r27, (Address::ScaleFactor)1, -0x37607f5a), 8);", // IID2910 - "__ shrl(Address(r27, -0xc0970dc), 8);", // IID2911 - "__ shrl(Address(r28, r29, (Address::ScaleFactor)2, -0x3c0cc191), 8);", // IID2912 - "__ shrl(Address(r29, r30, (Address::ScaleFactor)0, -0x249cef7c), 8);", // IID2913 - "__ shrl(Address(r30, r31, (Address::ScaleFactor)2, +0x41f7dbf9), 8);", // IID2914 - "__ shrl(Address(r31, -0x15ed809a), 8);", // IID2915 - "__ shrl(Address(rcx, rdx, (Address::ScaleFactor)1, -0x2edffe47), 16);", // IID2916 - "__ shrl(Address(rdx, rbx, (Address::ScaleFactor)2, -0x6cddfc0b), 16);", // IID2917 - "__ shrl(Address(rbx, r8, (Address::ScaleFactor)2, +0x701659a9), 16);", // IID2918 - "__ shrl(Address(r8, +0x1a688261), 16);", // IID2919 - "__ shrl(Address(r9, r10, (Address::ScaleFactor)0, -0x367202e3), 16);", // IID2920 - "__ shrl(Address(r10, r11, (Address::ScaleFactor)3, +0x3f488073), 16);", // IID2921 - "__ shrl(Address(r11, r12, (Address::ScaleFactor)2, +0x3a1a29cf), 16);", // IID2922 - "__ shrl(Address(r12, r13, (Address::ScaleFactor)0, +0x4fa498ed), 16);", // IID2923 - "__ shrl(Address(r13, -0x2bb53839), 16);", // IID2924 - "__ shrl(Address(r14, +0x6af4ea94), 16);", // IID2925 - "__ shrl(Address(r15, r16, (Address::ScaleFactor)0, -0x13a8235d), 16);", // IID2926 - "__ shrl(Address(r16, r17, (Address::ScaleFactor)1, +0x312bd65b), 16);", // IID2927 - "__ shrl(Address(r17, r18, (Address::ScaleFactor)1, +0x751772e4), 16);", // IID2928 - "__ shrl(Address(r18, r19, (Address::ScaleFactor)2, +0x3d6c2691), 16);", // IID2929 - "__ shrl(Address(r19, r20, (Address::ScaleFactor)2, -0x1446398f), 16);", // IID2930 - "__ shrl(Address(r20, r21, (Address::ScaleFactor)2, +0x4f0fa58f), 16);", // IID2931 - "__ shrl(Address(r21, r22, (Address::ScaleFactor)0, +0x151a1af7), 16);", // IID2932 - "__ shrl(Address(r22, r23, (Address::ScaleFactor)1, +0x5aaa90f8), 16);", // IID2933 - "__ shrl(Address(r23, -0x4dd3146c), 16);", // IID2934 - "__ shrl(Address(r24, r25, (Address::ScaleFactor)1, +0x3e6cb268), 16);", // IID2935 - "__ shrl(Address(r25, +0x47ec7f95), 16);", // IID2936 - "__ shrl(Address(r26, r27, (Address::ScaleFactor)1, +0x5a0bb685), 16);", // IID2937 - "__ shrl(Address(r27, r28, (Address::ScaleFactor)0, +0x11feaba0), 16);", // IID2938 - "__ shrl(Address(r28, r29, (Address::ScaleFactor)2, -0x1ece8042), 16);", // IID2939 - "__ shrl(Address(r29, r30, (Address::ScaleFactor)2, -0x57f6be00), 16);", // IID2940 - "__ shrl(Address(r30, r31, (Address::ScaleFactor)2, -0x2e9b4099), 16);", // IID2941 - "__ shrl(Address(r31, rcx, (Address::ScaleFactor)1, -0x69b544e4), 16);", // IID2942 -#endif // _LP64 - "__ subl(Address(rcx, +0x47d6c80b), 1);", // IID2943 - "__ subl(Address(rdx, rbx, (Address::ScaleFactor)3, -0x38b919c0), 1);", // IID2944 -#ifdef _LP64 - "__ subl(Address(rbx, r8, (Address::ScaleFactor)2, -0x16800a50), 1);", // IID2945 - "__ subl(Address(r8, r9, (Address::ScaleFactor)1, -0x89f5494), 1);", // IID2946 - "__ subl(Address(r9, +0x429a18ea), 1);", // IID2947 - "__ subl(Address(r10, r11, (Address::ScaleFactor)2, -0xf7fa75), 1);", // IID2948 - "__ subl(Address(r11, r12, (Address::ScaleFactor)0, -0x7d6bb4df), 1);", // IID2949 - "__ subl(Address(r12, r13, (Address::ScaleFactor)1, +0x3279734c), 1);", // IID2950 - "__ subl(Address(r13, -0x678c3fea), 1);", // IID2951 - "__ subl(Address(r14, r15, (Address::ScaleFactor)3, -0x71337ede), 1);", // IID2952 - "__ subl(Address(r15, r16, (Address::ScaleFactor)3, -0x5f82dd63), 1);", // IID2953 - "__ subl(Address(r16, r17, (Address::ScaleFactor)0, +0x15887e0d), 1);", // IID2954 - "__ subl(Address(r17, -0x581694b0), 1);", // IID2955 - "__ subl(Address(r18, r19, (Address::ScaleFactor)1, +0x6cad8cda), 1);", // IID2956 - "__ subl(Address(r19, r20, (Address::ScaleFactor)1, +0x1cb7c58), 1);", // IID2957 - "__ subl(Address(r20, r21, (Address::ScaleFactor)2, -0x43e92019), 1);", // IID2958 - "__ subl(Address(r21, r22, (Address::ScaleFactor)3, -0x2e0181cf), 1);", // IID2959 - "__ subl(Address(r22, +0x23bee515), 1);", // IID2960 - "__ subl(Address(r23, r24, (Address::ScaleFactor)2, -0x5d85ba6), 1);", // IID2961 - "__ subl(Address(r24, +0x4df307c3), 1);", // IID2962 - "__ subl(Address(r25, r26, (Address::ScaleFactor)3, -0x11b25f37), 1);", // IID2963 - "__ subl(Address(r26, r27, (Address::ScaleFactor)2, +0x5ad8434d), 1);", // IID2964 - "__ subl(Address(r27, r28, (Address::ScaleFactor)1, -0x6651bccc), 1);", // IID2965 - "__ subl(Address(r28, r29, (Address::ScaleFactor)0, +0x4c7f44d9), 1);", // IID2966 - "__ subl(Address(r29, r30, (Address::ScaleFactor)3, +0x324c5f04), 1);", // IID2967 - "__ subl(Address(r30, r31, (Address::ScaleFactor)3, -0x1ea9f868), 1);", // IID2968 - "__ subl(Address(r31, rcx, (Address::ScaleFactor)0, -0x3ce87d94), 1);", // IID2969 - "__ subl(Address(rcx, rdx, (Address::ScaleFactor)1, -0x6e1cdedb), 16);", // IID2970 - "__ subl(Address(rdx, rbx, (Address::ScaleFactor)0, +0x14c5b711), 16);", // IID2971 - "__ subl(Address(rbx, -0x5d19245), 16);", // IID2972 - "__ subl(Address(r8, r9, (Address::ScaleFactor)3, +0x48abaeaf), 16);", // IID2973 - "__ subl(Address(r9, r10, (Address::ScaleFactor)2, -0x1807dc62), 16);", // IID2974 - "__ subl(Address(r10, r11, (Address::ScaleFactor)0, -0x6f8b8f5a), 16);", // IID2975 - "__ subl(Address(r11, r12, (Address::ScaleFactor)2, -0x77bd8e44), 16);", // IID2976 - "__ subl(Address(r12, r13, (Address::ScaleFactor)3, -0x6f82956e), 16);", // IID2977 - "__ subl(Address(r13, r14, (Address::ScaleFactor)3, -0x4d944628), 16);", // IID2978 - "__ subl(Address(r14, r15, (Address::ScaleFactor)1, +0x5cb921d4), 16);", // IID2979 - "__ subl(Address(r15, r16, (Address::ScaleFactor)0, -0x354e6e6e), 16);", // IID2980 - "__ subl(Address(r16, r17, (Address::ScaleFactor)3, +0x6ff2f8a8), 16);", // IID2981 - "__ subl(Address(r17, r18, (Address::ScaleFactor)3, +0x3416e765), 16);", // IID2982 - "__ subl(Address(r18, r19, (Address::ScaleFactor)2, +0x33ff9515), 16);", // IID2983 - "__ subl(Address(r19, r20, (Address::ScaleFactor)0, -0x22b7c553), 16);", // IID2984 - "__ subl(Address(r20, r21, (Address::ScaleFactor)2, +0x335e64f), 16);", // IID2985 - "__ subl(Address(r21, +0x220226d0), 16);", // IID2986 - "__ subl(Address(r22, r23, (Address::ScaleFactor)2, +0x1f59c62c), 16);", // IID2987 - "__ subl(Address(r23, r24, (Address::ScaleFactor)2, -0x48d1ea1d), 16);", // IID2988 - "__ subl(Address(r24, r25, (Address::ScaleFactor)0, -0x3e4a0798), 16);", // IID2989 - "__ subl(Address(r25, r26, (Address::ScaleFactor)1, -0xe422b8), 16);", // IID2990 - "__ subl(Address(r26, r27, (Address::ScaleFactor)0, -0x51a5e276), 16);", // IID2991 - "__ subl(Address(r27, r28, (Address::ScaleFactor)3, -0x65c9c1b4), 16);", // IID2992 - "__ subl(Address(r28, r29, (Address::ScaleFactor)3, -0x10a9940d), 16);", // IID2993 - "__ subl(Address(r29, r30, (Address::ScaleFactor)3, -0x5b1bc060), 16);", // IID2994 - "__ subl(Address(r30, r31, (Address::ScaleFactor)2, +0x4bd294b7), 16);", // IID2995 - "__ subl(Address(r31, rcx, (Address::ScaleFactor)2, +0x42d05a60), 16);", // IID2996 - "__ subl(Address(rcx, rdx, (Address::ScaleFactor)3, -0x504c139e), 256);", // IID2997 - "__ subl(Address(rdx, rbx, (Address::ScaleFactor)1, -0x320b697c), 256);", // IID2998 - "__ subl(Address(rbx, r8, (Address::ScaleFactor)1, -0x3a0f8dad), 256);", // IID2999 - "__ subl(Address(r8, -0x3b723cae), 256);", // IID3000 - "__ subl(Address(r9, r10, (Address::ScaleFactor)2, +0x1271e1b4), 256);", // IID3001 - "__ subl(Address(r10, r11, (Address::ScaleFactor)1, +0x6d1e25a8), 256);", // IID3002 - "__ subl(Address(r11, r12, (Address::ScaleFactor)1, +0x6bcf6f1c), 256);", // IID3003 - "__ subl(Address(r12, r13, (Address::ScaleFactor)0, +0x4780d677), 256);", // IID3004 - "__ subl(Address(r13, r14, (Address::ScaleFactor)3, -0x6cdcb30a), 256);", // IID3005 - "__ subl(Address(r14, r15, (Address::ScaleFactor)1, -0x5d02726a), 256);", // IID3006 - "__ subl(Address(r15, r16, (Address::ScaleFactor)2, -0x67c0e), 256);", // IID3007 - "__ subl(Address(r16, r17, (Address::ScaleFactor)2, -0x4ad3d16), 256);", // IID3008 - "__ subl(Address(r17, r18, (Address::ScaleFactor)0, +0x152fb85e), 256);", // IID3009 - "__ subl(Address(r18, r19, (Address::ScaleFactor)2, -0x5ac74da), 256);", // IID3010 - "__ subl(Address(r19, r20, (Address::ScaleFactor)1, +0x5ad31ac1), 256);", // IID3011 - "__ subl(Address(r20, r21, (Address::ScaleFactor)1, +0x46f2708f), 256);", // IID3012 - "__ subl(Address(r21, r22, (Address::ScaleFactor)1, -0x7e49bd98), 256);", // IID3013 - "__ subl(Address(r22, +0xa0e2a6), 256);", // IID3014 - "__ subl(Address(r23, r24, (Address::ScaleFactor)1, +0x6d183ce2), 256);", // IID3015 - "__ subl(Address(r24, r25, (Address::ScaleFactor)1, +0x42df3b4d), 256);", // IID3016 - "__ subl(Address(r25, +0x58029cd8), 256);", // IID3017 - "__ subl(Address(r26, r27, (Address::ScaleFactor)1, -0x70fbbc6b), 256);", // IID3018 - "__ subl(Address(r27, r28, (Address::ScaleFactor)1, +0x2b6e65b6), 256);", // IID3019 - "__ subl(Address(r28, r29, (Address::ScaleFactor)2, -0x641777f2), 256);", // IID3020 - "__ subl(Address(r29, r30, (Address::ScaleFactor)3, +0x74669253), 256);", // IID3021 - "__ subl(Address(r30, r31, (Address::ScaleFactor)0, +0x49c68fb4), 256);", // IID3022 - "__ subl(Address(r31, rcx, (Address::ScaleFactor)1, -0x64e5e63a), 256);", // IID3023 - "__ subl(Address(rcx, rdx, (Address::ScaleFactor)0, -0x39ec0eaf), 4096);", // IID3024 - "__ subl(Address(rdx, rbx, (Address::ScaleFactor)1, -0x1e18c192), 4096);", // IID3025 - "__ subl(Address(rbx, r8, (Address::ScaleFactor)2, -0x4c401d46), 4096);", // IID3026 - "__ subl(Address(r8, r9, (Address::ScaleFactor)3, -0x58d5f365), 4096);", // IID3027 - "__ subl(Address(r9, r10, (Address::ScaleFactor)2, +0x7b639235), 4096);", // IID3028 - "__ subl(Address(r10, +0x7c8910d5), 4096);", // IID3029 - "__ subl(Address(r11, +0x16b3c71c), 4096);", // IID3030 - "__ subl(Address(r12, -0x272815a6), 4096);", // IID3031 - "__ subl(Address(r13, r14, (Address::ScaleFactor)2, +0x41106fd1), 4096);", // IID3032 - "__ subl(Address(r14, r15, (Address::ScaleFactor)0, +0x662992b4), 4096);", // IID3033 - "__ subl(Address(r15, +0x4a038f83), 4096);", // IID3034 - "__ subl(Address(r16, r17, (Address::ScaleFactor)0, +0x7d1abe44), 4096);", // IID3035 - "__ subl(Address(r17, r18, (Address::ScaleFactor)2, +0x1cc4f382), 4096);", // IID3036 - "__ subl(Address(r18, r19, (Address::ScaleFactor)1, -0x11fe1ec0), 4096);", // IID3037 - "__ subl(Address(r19, r20, (Address::ScaleFactor)1, -0x4ba785bd), 4096);", // IID3038 - "__ subl(Address(r20, r21, (Address::ScaleFactor)0, +0x52c457ef), 4096);", // IID3039 - "__ subl(Address(r21, r22, (Address::ScaleFactor)1, -0x49203757), 4096);", // IID3040 - "__ subl(Address(r22, +0x5cc7a7e2), 4096);", // IID3041 - "__ subl(Address(r23, r24, (Address::ScaleFactor)3, +0x64a5d091), 4096);", // IID3042 - "__ subl(Address(r24, r25, (Address::ScaleFactor)2, -0x382a7f1c), 4096);", // IID3043 - "__ subl(Address(r25, r26, (Address::ScaleFactor)3, +0x62256d13), 4096);", // IID3044 - "__ subl(Address(r26, r27, (Address::ScaleFactor)3, +0x7e011511), 4096);", // IID3045 - "__ subl(Address(r27, r28, (Address::ScaleFactor)1, -0x3decf530), 4096);", // IID3046 - "__ subl(Address(r28, r29, (Address::ScaleFactor)2, +0x372b2bdd), 4096);", // IID3047 - "__ subl(Address(r29, r30, (Address::ScaleFactor)0, -0x311c5b3), 4096);", // IID3048 - "__ subl(Address(r30, r31, (Address::ScaleFactor)2, -0xedd3a1f), 4096);", // IID3049 - "__ subl(Address(r31, rcx, (Address::ScaleFactor)3, +0x6d0d76aa), 4096);", // IID3050 - "__ subl(Address(rcx, rdx, (Address::ScaleFactor)2, +0x6a5a1abc), 65536);", // IID3051 - "__ subl(Address(rdx, rbx, (Address::ScaleFactor)2, -0x645be86f), 65536);", // IID3052 - "__ subl(Address(rbx, r8, (Address::ScaleFactor)3, +0x6dbea86e), 65536);", // IID3053 - "__ subl(Address(r8, r9, (Address::ScaleFactor)3, +0x7f961777), 65536);", // IID3054 - "__ subl(Address(r9, r10, (Address::ScaleFactor)2, +0x124c716e), 65536);", // IID3055 - "__ subl(Address(r10, r11, (Address::ScaleFactor)2, +0x1582d13c), 65536);", // IID3056 - "__ subl(Address(r11, r12, (Address::ScaleFactor)2, -0x50f26210), 65536);", // IID3057 - "__ subl(Address(r12, -0x50eccf90), 65536);", // IID3058 - "__ subl(Address(r13, r14, (Address::ScaleFactor)0, +0x653170bc), 65536);", // IID3059 - "__ subl(Address(r14, r15, (Address::ScaleFactor)3, -0x3c1e4c10), 65536);", // IID3060 - "__ subl(Address(r15, +0x752c14ae), 65536);", // IID3061 - "__ subl(Address(r16, r17, (Address::ScaleFactor)0, +0x5a364046), 65536);", // IID3062 - "__ subl(Address(r17, r18, (Address::ScaleFactor)3, -0x2bcb32d), 65536);", // IID3063 - "__ subl(Address(r18, +0x68585857), 65536);", // IID3064 - "__ subl(Address(r19, r20, (Address::ScaleFactor)0, +0x65c65014), 65536);", // IID3065 - "__ subl(Address(r20, r21, (Address::ScaleFactor)1, -0x623bb956), 65536);", // IID3066 - "__ subl(Address(r21, r22, (Address::ScaleFactor)2, -0x636dd52e), 65536);", // IID3067 - "__ subl(Address(r22, r23, (Address::ScaleFactor)1, +0x3c91ca6d), 65536);", // IID3068 - "__ subl(Address(r23, r24, (Address::ScaleFactor)3, -0x7ca7e293), 65536);", // IID3069 - "__ subl(Address(r24, r25, (Address::ScaleFactor)3, -0x7c5c8952), 65536);", // IID3070 - "__ subl(Address(r25, r26, (Address::ScaleFactor)1, -0xe49ed18), 65536);", // IID3071 - "__ subl(Address(r26, r27, (Address::ScaleFactor)0, +0x380ad4aa), 65536);", // IID3072 - "__ subl(Address(r27, -0x483703d), 65536);", // IID3073 - "__ subl(Address(r28, r29, (Address::ScaleFactor)0, +0x9c5b762), 65536);", // IID3074 - "__ subl(Address(r29, r30, (Address::ScaleFactor)1, +0x40ac6c01), 65536);", // IID3075 - "__ subl(Address(r30, -0x2b901ed5), 65536);", // IID3076 - "__ subl(Address(r31, rcx, (Address::ScaleFactor)2, +0x3d5022ed), 65536);", // IID3077 - "__ subl(Address(rcx, rdx, (Address::ScaleFactor)3, +0x1a854192), 1048576);", // IID3078 - "__ subl(Address(rdx, rbx, (Address::ScaleFactor)1, +0x5aff24b9), 1048576);", // IID3079 - "__ subl(Address(rbx, r8, (Address::ScaleFactor)1, -0x3286225f), 1048576);", // IID3080 - "__ subl(Address(r8, r9, (Address::ScaleFactor)1, +0x3574319f), 1048576);", // IID3081 - "__ subl(Address(r9, r10, (Address::ScaleFactor)1, +0x7baea7e8), 1048576);", // IID3082 - "__ subl(Address(r10, r11, (Address::ScaleFactor)2, +0x389a3c6b), 1048576);", // IID3083 - "__ subl(Address(r11, r12, (Address::ScaleFactor)1, +0x71a3800a), 1048576);", // IID3084 - "__ subl(Address(r12, +0x256284e3), 1048576);", // IID3085 - "__ subl(Address(r13, r14, (Address::ScaleFactor)2, -0x400f85fe), 1048576);", // IID3086 - "__ subl(Address(r14, r15, (Address::ScaleFactor)2, -0x68077ddb), 1048576);", // IID3087 - "__ subl(Address(r15, r16, (Address::ScaleFactor)0, -0x59fdad53), 1048576);", // IID3088 - "__ subl(Address(r16, r17, (Address::ScaleFactor)0, +0x8d6fefc), 1048576);", // IID3089 - "__ subl(Address(r17, r18, (Address::ScaleFactor)1, +0xe6cc232), 1048576);", // IID3090 - "__ subl(Address(r18, r19, (Address::ScaleFactor)1, +0x550c07cc), 1048576);", // IID3091 - "__ subl(Address(r19, +0x11e2f693), 1048576);", // IID3092 - "__ subl(Address(r20, r21, (Address::ScaleFactor)2, +0x1457e10f), 1048576);", // IID3093 - "__ subl(Address(r21, r22, (Address::ScaleFactor)3, -0x41d16337), 1048576);", // IID3094 - "__ subl(Address(r22, r23, (Address::ScaleFactor)1, +0x22dd04f8), 1048576);", // IID3095 - "__ subl(Address(r23, r24, (Address::ScaleFactor)1, -0x3c426395), 1048576);", // IID3096 - "__ subl(Address(r24, r25, (Address::ScaleFactor)1, -0x4b98784c), 1048576);", // IID3097 - "__ subl(Address(r25, r26, (Address::ScaleFactor)0, -0x5221b905), 1048576);", // IID3098 - "__ subl(Address(r26, +0x4fa7a972), 1048576);", // IID3099 - "__ subl(Address(r27, r28, (Address::ScaleFactor)1, +0x2cc34840), 1048576);", // IID3100 - "__ subl(Address(r28, r29, (Address::ScaleFactor)0, +0x4ac1dd71), 1048576);", // IID3101 - "__ subl(Address(r29, r30, (Address::ScaleFactor)1, -0x5e8d78ed), 1048576);", // IID3102 - "__ subl(Address(r30, r31, (Address::ScaleFactor)3, +0x7b13ddc2), 1048576);", // IID3103 - "__ subl(Address(r31, rcx, (Address::ScaleFactor)3, -0x5792070), 1048576);", // IID3104 - "__ subl(Address(rcx, rdx, (Address::ScaleFactor)2, +0x544812e2), 16777216);", // IID3105 - "__ subl(Address(rdx, rbx, (Address::ScaleFactor)0, -0x4f04dd81), 16777216);", // IID3106 - "__ subl(Address(rbx, r8, (Address::ScaleFactor)2, -0x5a77c7c0), 16777216);", // IID3107 - "__ subl(Address(r8, r9, (Address::ScaleFactor)2, +0x27324e0f), 16777216);", // IID3108 - "__ subl(Address(r9, +0x2321807f), 16777216);", // IID3109 - "__ subl(Address(r10, r11, (Address::ScaleFactor)2, -0x64d1cc24), 16777216);", // IID3110 - "__ subl(Address(r11, r12, (Address::ScaleFactor)3, +0x51a000e0), 16777216);", // IID3111 - "__ subl(Address(r12, r13, (Address::ScaleFactor)0, +0x593b1f8c), 16777216);", // IID3112 - "__ subl(Address(r13, +0x1b39c1cf), 16777216);", // IID3113 - "__ subl(Address(r14, r15, (Address::ScaleFactor)0, -0xaea85d8), 16777216);", // IID3114 - "__ subl(Address(r15, r16, (Address::ScaleFactor)0, +0x14dbd47c), 16777216);", // IID3115 - "__ subl(Address(r16, r17, (Address::ScaleFactor)2, -0x7819a7db), 16777216);", // IID3116 - "__ subl(Address(r17, r18, (Address::ScaleFactor)1, -0x6fb4e2eb), 16777216);", // IID3117 - "__ subl(Address(r18, r19, (Address::ScaleFactor)3, -0x1d83eab6), 16777216);", // IID3118 - "__ subl(Address(r19, -0x4a365563), 16777216);", // IID3119 - "__ subl(Address(r20, r21, (Address::ScaleFactor)0, -0x14cae487), 16777216);", // IID3120 - "__ subl(Address(r21, r22, (Address::ScaleFactor)0, -0x65542a92), 16777216);", // IID3121 - "__ subl(Address(r22, r23, (Address::ScaleFactor)1, -0x477d8c81), 16777216);", // IID3122 - "__ subl(Address(r23, -0x1ba0a8d3), 16777216);", // IID3123 - "__ subl(Address(r24, r25, (Address::ScaleFactor)3, +0x69bef6c3), 16777216);", // IID3124 - "__ subl(Address(r25, -0x6dd50dbb), 16777216);", // IID3125 - "__ subl(Address(r26, r27, (Address::ScaleFactor)3, -0x349c9612), 16777216);", // IID3126 - "__ subl(Address(r27, -0x22d9c0c4), 16777216);", // IID3127 - "__ subl(Address(r28, r29, (Address::ScaleFactor)2, -0x499f8284), 16777216);", // IID3128 - "__ subl(Address(r29, r30, (Address::ScaleFactor)2, -0x42846f24), 16777216);", // IID3129 - "__ subl(Address(r30, r31, (Address::ScaleFactor)1, -0x3cbbfe93), 16777216);", // IID3130 - "__ subl(Address(r31, rcx, (Address::ScaleFactor)1, -0x374b83e1), 16777216);", // IID3131 - "__ subl(Address(rcx, rdx, (Address::ScaleFactor)2, -0x4578341e), 268435456);", // IID3132 - "__ subl(Address(rdx, rbx, (Address::ScaleFactor)0, +0x7e116fc), 268435456);", // IID3133 - "__ subl(Address(rbx, r8, (Address::ScaleFactor)0, +0x202da016), 268435456);", // IID3134 - "__ subl(Address(r8, r9, (Address::ScaleFactor)3, -0x7fd12432), 268435456);", // IID3135 - "__ subl(Address(r9, r10, (Address::ScaleFactor)2, -0x20dd0a26), 268435456);", // IID3136 - "__ subl(Address(r10, +0x12eb6439), 268435456);", // IID3137 - "__ subl(Address(r11, r12, (Address::ScaleFactor)2, +0x554c2dff), 268435456);", // IID3138 - "__ subl(Address(r12, +0x775c0f64), 268435456);", // IID3139 - "__ subl(Address(r13, r14, (Address::ScaleFactor)3, -0x67b14eca), 268435456);", // IID3140 - "__ subl(Address(r14, r15, (Address::ScaleFactor)0, +0x66b42c4), 268435456);", // IID3141 - "__ subl(Address(r15, r16, (Address::ScaleFactor)2, +0x66dce012), 268435456);", // IID3142 - "__ subl(Address(r16, r17, (Address::ScaleFactor)1, +0x50fd9832), 268435456);", // IID3143 - "__ subl(Address(r17, r18, (Address::ScaleFactor)2, +0x4dcb5af), 268435456);", // IID3144 - "__ subl(Address(r18, +0x53c70b8e), 268435456);", // IID3145 - "__ subl(Address(r19, r20, (Address::ScaleFactor)2, -0x493a5050), 268435456);", // IID3146 - "__ subl(Address(r20, r21, (Address::ScaleFactor)1, +0x5d7d9b98), 268435456);", // IID3147 - "__ subl(Address(r21, -0xb287e06), 268435456);", // IID3148 - "__ subl(Address(r22, +0x2a519a8a), 268435456);", // IID3149 - "__ subl(Address(r23, +0x4249ea7a), 268435456);", // IID3150 - "__ subl(Address(r24, r25, (Address::ScaleFactor)1, -0x4e230fbe), 268435456);", // IID3151 - "__ subl(Address(r25, +0x3e6bc374), 268435456);", // IID3152 - "__ subl(Address(r26, r27, (Address::ScaleFactor)3, -0x4c7029ec), 268435456);", // IID3153 - "__ subl(Address(r27, r28, (Address::ScaleFactor)2, -0x6e85e6b4), 268435456);", // IID3154 - "__ subl(Address(r28, r29, (Address::ScaleFactor)0, +0x48515790), 268435456);", // IID3155 - "__ subl(Address(r29, -0x4017e106), 268435456);", // IID3156 - "__ subl(Address(r30, r31, (Address::ScaleFactor)0, -0x645b9ea0), 268435456);", // IID3157 - "__ subl(Address(r31, rcx, (Address::ScaleFactor)3, -0x5ff20ad2), 268435456);", // IID3158 -#endif // _LP64 - "__ xorl(Address(rcx, rdx, (Address::ScaleFactor)3, +0x2f3f00af), 1);", // IID3159 - "__ xorl(Address(rdx, rbx, (Address::ScaleFactor)1, -0x1ffea386), 1);", // IID3160 -#ifdef _LP64 - "__ xorl(Address(rbx, r8, (Address::ScaleFactor)0, +0x9ffa94a), 1);", // IID3161 - "__ xorl(Address(r8, -0x28c5953f), 1);", // IID3162 - "__ xorl(Address(r9, r10, (Address::ScaleFactor)3, -0x315ba832), 1);", // IID3163 - "__ xorl(Address(r10, r11, (Address::ScaleFactor)0, +0x1e11e122), 1);", // IID3164 - "__ xorl(Address(r11, r12, (Address::ScaleFactor)0, -0xd4fbe20), 1);", // IID3165 - "__ xorl(Address(r12, r13, (Address::ScaleFactor)2, +0xe020eb1), 1);", // IID3166 - "__ xorl(Address(r13, r14, (Address::ScaleFactor)3, +0x5a7d6658), 1);", // IID3167 - "__ xorl(Address(r14, r15, (Address::ScaleFactor)2, +0x7df2d1ac), 1);", // IID3168 - "__ xorl(Address(r15, r16, (Address::ScaleFactor)0, +0x4c516457), 1);", // IID3169 - "__ xorl(Address(r16, r17, (Address::ScaleFactor)3, -0x6c58b516), 1);", // IID3170 - "__ xorl(Address(r17, r18, (Address::ScaleFactor)3, -0x3df43b8), 1);", // IID3171 - "__ xorl(Address(r18, r19, (Address::ScaleFactor)1, +0x5027b69), 1);", // IID3172 - "__ xorl(Address(r19, -0x36018963), 1);", // IID3173 - "__ xorl(Address(r20, r21, (Address::ScaleFactor)2, -0x346ccbbe), 1);", // IID3174 - "__ xorl(Address(r21, r22, (Address::ScaleFactor)0, -0x5fe5dbe1), 1);", // IID3175 - "__ xorl(Address(r22, r23, (Address::ScaleFactor)0, -0x2899d6f5), 1);", // IID3176 - "__ xorl(Address(r23, r24, (Address::ScaleFactor)1, -0x44e628e5), 1);", // IID3177 - "__ xorl(Address(r24, r25, (Address::ScaleFactor)2, +0xd36689b), 1);", // IID3178 - "__ xorl(Address(r25, r26, (Address::ScaleFactor)1, +0x42dd96ae), 1);", // IID3179 - "__ xorl(Address(r26, r27, (Address::ScaleFactor)1, -0x385083d5), 1);", // IID3180 - "__ xorl(Address(r27, r28, (Address::ScaleFactor)0, -0x6f502c2c), 1);", // IID3181 - "__ xorl(Address(r28, r29, (Address::ScaleFactor)0, -0x79489e2f), 1);", // IID3182 - "__ xorl(Address(r29, -0x365ef52b), 1);", // IID3183 - "__ xorl(Address(r30, -0x219e146a), 1);", // IID3184 - "__ xorl(Address(r31, rcx, (Address::ScaleFactor)1, +0x5879665), 1);", // IID3185 - "__ xorl(Address(rcx, rdx, (Address::ScaleFactor)3, -0x3247ee4f), 16);", // IID3186 - "__ xorl(Address(rdx, rbx, (Address::ScaleFactor)2, -0x70e1d616), 16);", // IID3187 - "__ xorl(Address(rbx, r8, (Address::ScaleFactor)2, +0x60e0fd27), 16);", // IID3188 - "__ xorl(Address(r8, r9, (Address::ScaleFactor)3, -0xf4d6d23), 16);", // IID3189 - "__ xorl(Address(r9, r10, (Address::ScaleFactor)3, -0x26796a29), 16);", // IID3190 - "__ xorl(Address(r10, r11, (Address::ScaleFactor)0, -0x6e53d3c8), 16);", // IID3191 - "__ xorl(Address(r11, r12, (Address::ScaleFactor)2, -0x4ada327d), 16);", // IID3192 - "__ xorl(Address(r12, -0x4bc30c2), 16);", // IID3193 - "__ xorl(Address(r13, r14, (Address::ScaleFactor)0, -0x5cf81d9f), 16);", // IID3194 - "__ xorl(Address(r14, r15, (Address::ScaleFactor)1, +0x130ba88a), 16);", // IID3195 - "__ xorl(Address(r15, r16, (Address::ScaleFactor)1, +0x36b34593), 16);", // IID3196 - "__ xorl(Address(r16, r17, (Address::ScaleFactor)3, +0x5a713674), 16);", // IID3197 - "__ xorl(Address(r17, r18, (Address::ScaleFactor)2, -0x3590931a), 16);", // IID3198 - "__ xorl(Address(r18, r19, (Address::ScaleFactor)1, +0x104f6b79), 16);", // IID3199 - "__ xorl(Address(r19, r20, (Address::ScaleFactor)0, -0x41b782ac), 16);", // IID3200 - "__ xorl(Address(r20, r21, (Address::ScaleFactor)2, -0x638a2948), 16);", // IID3201 - "__ xorl(Address(r21, r22, (Address::ScaleFactor)3, -0x7717fb51), 16);", // IID3202 - "__ xorl(Address(r22, r23, (Address::ScaleFactor)3, +0x63bd22c6), 16);", // IID3203 - "__ xorl(Address(r23, r24, (Address::ScaleFactor)0, +0x12ed89e5), 16);", // IID3204 - "__ xorl(Address(r24, r25, (Address::ScaleFactor)3, -0x7de09301), 16);", // IID3205 - "__ xorl(Address(r25, r26, (Address::ScaleFactor)1, +0x5c306c62), 16);", // IID3206 - "__ xorl(Address(r26, r27, (Address::ScaleFactor)1, -0xe658c3f), 16);", // IID3207 - "__ xorl(Address(r27, r28, (Address::ScaleFactor)0, +0x49d911fe), 16);", // IID3208 - "__ xorl(Address(r28, r29, (Address::ScaleFactor)0, -0x577ff8e0), 16);", // IID3209 - "__ xorl(Address(r29, r30, (Address::ScaleFactor)0, -0x24dc6705), 16);", // IID3210 - "__ xorl(Address(r30, r31, (Address::ScaleFactor)1, +0x5d02735d), 16);", // IID3211 - "__ xorl(Address(r31, rcx, (Address::ScaleFactor)2, +0x6c76a0), 16);", // IID3212 - "__ xorl(Address(rcx, rdx, (Address::ScaleFactor)0, -0x7864323f), 256);", // IID3213 - "__ xorl(Address(rdx, -0x52a37b61), 256);", // IID3214 - "__ xorl(Address(rbx, r8, (Address::ScaleFactor)0, +0x3e5d4c91), 256);", // IID3215 - "__ xorl(Address(r8, r9, (Address::ScaleFactor)2, +0x1d489ee8), 256);", // IID3216 - "__ xorl(Address(r9, +0x614c53ab), 256);", // IID3217 - "__ xorl(Address(r10, r11, (Address::ScaleFactor)3, -0x1a937ede), 256);", // IID3218 - "__ xorl(Address(r11, r12, (Address::ScaleFactor)2, +0x2a35fe83), 256);", // IID3219 - "__ xorl(Address(r12, r13, (Address::ScaleFactor)0, -0x772987b), 256);", // IID3220 - "__ xorl(Address(r13, r14, (Address::ScaleFactor)0, +0x525b033), 256);", // IID3221 - "__ xorl(Address(r14, r15, (Address::ScaleFactor)1, +0x170ceddf), 256);", // IID3222 - "__ xorl(Address(r15, r16, (Address::ScaleFactor)2, +0x41ceb2ec), 256);", // IID3223 - "__ xorl(Address(r16, r17, (Address::ScaleFactor)1, -0x4282666d), 256);", // IID3224 - "__ xorl(Address(r17, r18, (Address::ScaleFactor)1, -0xc9c2264), 256);", // IID3225 - "__ xorl(Address(r18, r19, (Address::ScaleFactor)1, -0x2ef83d19), 256);", // IID3226 - "__ xorl(Address(r19, r20, (Address::ScaleFactor)0, +0x4e16c55b), 256);", // IID3227 - "__ xorl(Address(r20, r21, (Address::ScaleFactor)0, -0x5545a25c), 256);", // IID3228 - "__ xorl(Address(r21, r22, (Address::ScaleFactor)0, -0x2f72d510), 256);", // IID3229 - "__ xorl(Address(r22, r23, (Address::ScaleFactor)0, -0x454d226f), 256);", // IID3230 - "__ xorl(Address(r23, r24, (Address::ScaleFactor)2, -0x63b45c37), 256);", // IID3231 - "__ xorl(Address(r24, r25, (Address::ScaleFactor)2, -0x60688efe), 256);", // IID3232 - "__ xorl(Address(r25, -0x5f9f7ded), 256);", // IID3233 - "__ xorl(Address(r26, r27, (Address::ScaleFactor)0, +0x48e6db06), 256);", // IID3234 - "__ xorl(Address(r27, r28, (Address::ScaleFactor)2, -0x2e08936), 256);", // IID3235 - "__ xorl(Address(r28, r29, (Address::ScaleFactor)0, +0x3b46dc90), 256);", // IID3236 - "__ xorl(Address(r29, +0x21697c11), 256);", // IID3237 - "__ xorl(Address(r30, +0x212f0561), 256);", // IID3238 - "__ xorl(Address(r31, -0x285be04a), 256);", // IID3239 - "__ xorl(Address(rcx, rdx, (Address::ScaleFactor)0, -0xd36ea25), 4096);", // IID3240 - "__ xorl(Address(rdx, +0x61719b89), 4096);", // IID3241 - "__ xorl(Address(rbx, -0x54ea35d8), 4096);", // IID3242 - "__ xorl(Address(r8, r9, (Address::ScaleFactor)3, -0x772b1d08), 4096);", // IID3243 - "__ xorl(Address(r9, r10, (Address::ScaleFactor)3, +0x20f0ca80), 4096);", // IID3244 - "__ xorl(Address(r10, r11, (Address::ScaleFactor)1, -0x97b2fa9), 4096);", // IID3245 - "__ xorl(Address(r11, r12, (Address::ScaleFactor)3, +0x11d9a322), 4096);", // IID3246 - "__ xorl(Address(r12, r13, (Address::ScaleFactor)1, +0x3522b7f7), 4096);", // IID3247 - "__ xorl(Address(r13, r14, (Address::ScaleFactor)3, -0x5dea15ea), 4096);", // IID3248 - "__ xorl(Address(r14, r15, (Address::ScaleFactor)2, +0x15b66502), 4096);", // IID3249 - "__ xorl(Address(r15, r16, (Address::ScaleFactor)3, +0x4359b8a4), 4096);", // IID3250 - "__ xorl(Address(r16, +0x552d19aa), 4096);", // IID3251 - "__ xorl(Address(r17, r18, (Address::ScaleFactor)0, +0x6107ba96), 4096);", // IID3252 - "__ xorl(Address(r18, r19, (Address::ScaleFactor)0, +0xb45fad7), 4096);", // IID3253 - "__ xorl(Address(r19, r20, (Address::ScaleFactor)1, +0x4cb2da1c), 4096);", // IID3254 - "__ xorl(Address(r20, r21, (Address::ScaleFactor)2, -0x1deeb1e7), 4096);", // IID3255 - "__ xorl(Address(r21, r22, (Address::ScaleFactor)1, +0x5f566370), 4096);", // IID3256 - "__ xorl(Address(r22, r23, (Address::ScaleFactor)1, -0x63eb73a5), 4096);", // IID3257 - "__ xorl(Address(r23, r24, (Address::ScaleFactor)2, -0x6d6d6466), 4096);", // IID3258 - "__ xorl(Address(r24, r25, (Address::ScaleFactor)1, +0x720b61ff), 4096);", // IID3259 - "__ xorl(Address(r25, r26, (Address::ScaleFactor)0, -0x6237dd82), 4096);", // IID3260 - "__ xorl(Address(r26, r27, (Address::ScaleFactor)0, -0x5060e876), 4096);", // IID3261 - "__ xorl(Address(r27, r28, (Address::ScaleFactor)3, -0x31efd7a2), 4096);", // IID3262 - "__ xorl(Address(r28, r29, (Address::ScaleFactor)3, +0x5658b007), 4096);", // IID3263 - "__ xorl(Address(r29, r30, (Address::ScaleFactor)3, -0x4fb995c9), 4096);", // IID3264 - "__ xorl(Address(r30, r31, (Address::ScaleFactor)0, -0x328494c5), 4096);", // IID3265 - "__ xorl(Address(r31, rcx, (Address::ScaleFactor)3, -0x23431e38), 4096);", // IID3266 - "__ xorl(Address(rcx, -0xd0feb4f), 65536);", // IID3267 - "__ xorl(Address(rdx, rbx, (Address::ScaleFactor)2, +0x58f4ce62), 65536);", // IID3268 - "__ xorl(Address(rbx, r8, (Address::ScaleFactor)0, -0x5e6e6dd0), 65536);", // IID3269 - "__ xorl(Address(r8, +0x14ec7015), 65536);", // IID3270 - "__ xorl(Address(r9, r10, (Address::ScaleFactor)0, +0x2af07b85), 65536);", // IID3271 - "__ xorl(Address(r10, r11, (Address::ScaleFactor)2, -0x25f3560), 65536);", // IID3272 - "__ xorl(Address(r11, r12, (Address::ScaleFactor)2, +0x1119761), 65536);", // IID3273 - "__ xorl(Address(r12, r13, (Address::ScaleFactor)0, -0x25b93c25), 65536);", // IID3274 - "__ xorl(Address(r13, r14, (Address::ScaleFactor)2, -0x76419fd7), 65536);", // IID3275 - "__ xorl(Address(r14, r15, (Address::ScaleFactor)3, +0x11e1b2ed), 65536);", // IID3276 - "__ xorl(Address(r15, r16, (Address::ScaleFactor)0, -0x3a515be3), 65536);", // IID3277 - "__ xorl(Address(r16, r17, (Address::ScaleFactor)1, +0x3063904b), 65536);", // IID3278 - "__ xorl(Address(r17, r18, (Address::ScaleFactor)1, -0x4b9d16d7), 65536);", // IID3279 - "__ xorl(Address(r18, r19, (Address::ScaleFactor)0, +0x6dc8886a), 65536);", // IID3280 - "__ xorl(Address(r19, r20, (Address::ScaleFactor)1, +0x20741bae), 65536);", // IID3281 - "__ xorl(Address(r20, r21, (Address::ScaleFactor)1, -0x61a2ee54), 65536);", // IID3282 - "__ xorl(Address(r21, r22, (Address::ScaleFactor)0, -0x69b0c46), 65536);", // IID3283 - "__ xorl(Address(r22, r23, (Address::ScaleFactor)1, +0x1b45dbfc), 65536);", // IID3284 - "__ xorl(Address(r23, r24, (Address::ScaleFactor)0, -0x34912085), 65536);", // IID3285 - "__ xorl(Address(r24, r25, (Address::ScaleFactor)2, -0x54a84c8a), 65536);", // IID3286 - "__ xorl(Address(r25, r26, (Address::ScaleFactor)2, -0x2b02bbe9), 65536);", // IID3287 - "__ xorl(Address(r26, r27, (Address::ScaleFactor)0, -0x62a27ba), 65536);", // IID3288 - "__ xorl(Address(r27, -0x197cd44b), 65536);", // IID3289 - "__ xorl(Address(r28, -0x231448b8), 65536);", // IID3290 - "__ xorl(Address(r29, r30, (Address::ScaleFactor)3, -0x1b1cf704), 65536);", // IID3291 - "__ xorl(Address(r30, r31, (Address::ScaleFactor)2, -0x30ca1cf5), 65536);", // IID3292 - "__ xorl(Address(r31, rcx, (Address::ScaleFactor)2, -0x39f6f203), 65536);", // IID3293 - "__ xorl(Address(rcx, rdx, (Address::ScaleFactor)3, +0x38675956), 1048576);", // IID3294 - "__ xorl(Address(rdx, +0x50775056), 1048576);", // IID3295 - "__ xorl(Address(rbx, r8, (Address::ScaleFactor)1, +0x24446f68), 1048576);", // IID3296 - "__ xorl(Address(r8, r9, (Address::ScaleFactor)3, +0x63d9548d), 1048576);", // IID3297 - "__ xorl(Address(r9, r10, (Address::ScaleFactor)1, +0x12ce333a), 1048576);", // IID3298 - "__ xorl(Address(r10, r11, (Address::ScaleFactor)3, +0x46050c68), 1048576);", // IID3299 - "__ xorl(Address(r11, r12, (Address::ScaleFactor)0, +0x6e390371), 1048576);", // IID3300 - "__ xorl(Address(r12, r13, (Address::ScaleFactor)1, -0x554ce95d), 1048576);", // IID3301 - "__ xorl(Address(r13, r14, (Address::ScaleFactor)3, +0x4a2cee7f), 1048576);", // IID3302 - "__ xorl(Address(r14, r15, (Address::ScaleFactor)1, -0x512f6fa8), 1048576);", // IID3303 - "__ xorl(Address(r15, r16, (Address::ScaleFactor)0, +0x7735130f), 1048576);", // IID3304 - "__ xorl(Address(r16, +0x373a967a), 1048576);", // IID3305 - "__ xorl(Address(r17, -0x78dea4f1), 1048576);", // IID3306 - "__ xorl(Address(r18, r19, (Address::ScaleFactor)2, -0x2115ad6f), 1048576);", // IID3307 - "__ xorl(Address(r19, r20, (Address::ScaleFactor)2, -0x455de397), 1048576);", // IID3308 - "__ xorl(Address(r20, r21, (Address::ScaleFactor)2, +0x22a00c63), 1048576);", // IID3309 - "__ xorl(Address(r21, r22, (Address::ScaleFactor)0, -0x18e2cc87), 1048576);", // IID3310 - "__ xorl(Address(r22, r23, (Address::ScaleFactor)2, -0xb20269a), 1048576);", // IID3311 - "__ xorl(Address(r23, r24, (Address::ScaleFactor)0, +0x30757eaa), 1048576);", // IID3312 - "__ xorl(Address(r24, -0x6d23487), 1048576);", // IID3313 - "__ xorl(Address(r25, r26, (Address::ScaleFactor)2, +0x57f60815), 1048576);", // IID3314 - "__ xorl(Address(r26, r27, (Address::ScaleFactor)2, -0x793007d0), 1048576);", // IID3315 - "__ xorl(Address(r27, r28, (Address::ScaleFactor)2, +0x29127b8f), 1048576);", // IID3316 - "__ xorl(Address(r28, r29, (Address::ScaleFactor)1, +0x49a88c0f), 1048576);", // IID3317 - "__ xorl(Address(r29, r30, (Address::ScaleFactor)2, +0x144cad2f), 1048576);", // IID3318 - "__ xorl(Address(r30, r31, (Address::ScaleFactor)1, +0x45a13153), 1048576);", // IID3319 - "__ xorl(Address(r31, +0x550884db), 1048576);", // IID3320 - "__ xorl(Address(rcx, rdx, (Address::ScaleFactor)1, +0x6eb08f27), 16777216);", // IID3321 - "__ xorl(Address(rdx, -0x1b3caefd), 16777216);", // IID3322 - "__ xorl(Address(rbx, r8, (Address::ScaleFactor)2, -0x87927ba), 16777216);", // IID3323 - "__ xorl(Address(r8, r9, (Address::ScaleFactor)2, -0x282120cf), 16777216);", // IID3324 - "__ xorl(Address(r9, r10, (Address::ScaleFactor)2, -0x7d87b7c), 16777216);", // IID3325 - "__ xorl(Address(r10, r11, (Address::ScaleFactor)0, +0x4c374d18), 16777216);", // IID3326 - "__ xorl(Address(r11, r12, (Address::ScaleFactor)3, -0x2de1c501), 16777216);", // IID3327 - "__ xorl(Address(r12, -0x3894d36d), 16777216);", // IID3328 - "__ xorl(Address(r13, r14, (Address::ScaleFactor)2, +0x27546ce3), 16777216);", // IID3329 - "__ xorl(Address(r14, r15, (Address::ScaleFactor)2, -0x58001b19), 16777216);", // IID3330 - "__ xorl(Address(r15, r16, (Address::ScaleFactor)1, -0x453b2fc9), 16777216);", // IID3331 - "__ xorl(Address(r16, +0xb5d9b49), 16777216);", // IID3332 - "__ xorl(Address(r17, r18, (Address::ScaleFactor)0, +0x2f7a7918), 16777216);", // IID3333 - "__ xorl(Address(r18, -0x3416c064), 16777216);", // IID3334 - "__ xorl(Address(r19, +0x74fc9a42), 16777216);", // IID3335 - "__ xorl(Address(r20, r21, (Address::ScaleFactor)2, +0x3323e9c9), 16777216);", // IID3336 - "__ xorl(Address(r21, r22, (Address::ScaleFactor)2, +0x4008ab1d), 16777216);", // IID3337 - "__ xorl(Address(r22, r23, (Address::ScaleFactor)2, +0x4f2a8c87), 16777216);", // IID3338 - "__ xorl(Address(r23, r24, (Address::ScaleFactor)3, -0x4a5844dc), 16777216);", // IID3339 - "__ xorl(Address(r24, r25, (Address::ScaleFactor)1, +0x7d092a14), 16777216);", // IID3340 - "__ xorl(Address(r25, r26, (Address::ScaleFactor)1, -0xe75db46), 16777216);", // IID3341 - "__ xorl(Address(r26, r27, (Address::ScaleFactor)1, +0x69d929ff), 16777216);", // IID3342 - "__ xorl(Address(r27, r28, (Address::ScaleFactor)0, +0xc03eb9a), 16777216);", // IID3343 - "__ xorl(Address(r28, r29, (Address::ScaleFactor)3, +0x3c2dae36), 16777216);", // IID3344 - "__ xorl(Address(r29, r30, (Address::ScaleFactor)3, +0x6d5f05f3), 16777216);", // IID3345 - "__ xorl(Address(r30, r31, (Address::ScaleFactor)3, -0x34bc1338), 16777216);", // IID3346 - "__ xorl(Address(r31, rcx, (Address::ScaleFactor)3, +0x7c2f0cc), 16777216);", // IID3347 - "__ xorl(Address(rcx, rdx, (Address::ScaleFactor)1, -0x33f347e5), 268435456);", // IID3348 - "__ xorl(Address(rdx, rbx, (Address::ScaleFactor)3, -0x436200e1), 268435456);", // IID3349 - "__ xorl(Address(rbx, r8, (Address::ScaleFactor)2, -0x596a12d5), 268435456);", // IID3350 - "__ xorl(Address(r8, -0x17d6a4c2), 268435456);", // IID3351 - "__ xorl(Address(r9, r10, (Address::ScaleFactor)2, +0x5f16d0ee), 268435456);", // IID3352 - "__ xorl(Address(r10, -0x6277f7b5), 268435456);", // IID3353 - "__ xorl(Address(r11, r12, (Address::ScaleFactor)2, -0x4aa29561), 268435456);", // IID3354 - "__ xorl(Address(r12, r13, (Address::ScaleFactor)0, -0x61f3a93a), 268435456);", // IID3355 - "__ xorl(Address(r13, r14, (Address::ScaleFactor)2, +0x988ca50), 268435456);", // IID3356 - "__ xorl(Address(r14, -0x2820abeb), 268435456);", // IID3357 - "__ xorl(Address(r15, r16, (Address::ScaleFactor)2, -0x26627b0d), 268435456);", // IID3358 - "__ xorl(Address(r16, r17, (Address::ScaleFactor)2, -0x6e416bce), 268435456);", // IID3359 - "__ xorl(Address(r17, -0x70203c5e), 268435456);", // IID3360 - "__ xorl(Address(r18, r19, (Address::ScaleFactor)3, -0x11aa3412), 268435456);", // IID3361 - "__ xorl(Address(r19, r20, (Address::ScaleFactor)0, -0x67edbf91), 268435456);", // IID3362 - "__ xorl(Address(r20, r21, (Address::ScaleFactor)2, +0x21287835), 268435456);", // IID3363 - "__ xorl(Address(r21, r22, (Address::ScaleFactor)1, -0x326188a3), 268435456);", // IID3364 - "__ xorl(Address(r22, r23, (Address::ScaleFactor)1, +0x4437a796), 268435456);", // IID3365 - "__ xorl(Address(r23, +0x6b256d2c), 268435456);", // IID3366 - "__ xorl(Address(r24, r25, (Address::ScaleFactor)3, -0x4f1bc8d3), 268435456);", // IID3367 - "__ xorl(Address(r25, r26, (Address::ScaleFactor)1, -0x3a0d5aad), 268435456);", // IID3368 - "__ xorl(Address(r26, -0x1fce3bb5), 268435456);", // IID3369 - "__ xorl(Address(r27, r28, (Address::ScaleFactor)0, +0x927ca9b), 268435456);", // IID3370 - "__ xorl(Address(r28, r29, (Address::ScaleFactor)0, -0x3243bd2c), 268435456);", // IID3371 - "__ xorl(Address(r29, r30, (Address::ScaleFactor)0, +0x71ecd00c), 268435456);", // IID3372 - "__ xorl(Address(r30, r31, (Address::ScaleFactor)2, -0x51fe06c4), 268435456);", // IID3373 - "__ xorl(Address(r31, rcx, (Address::ScaleFactor)3, +0x31bc5dd4), 268435456);", // IID3374 -#endif // _LP64 - "__ orb(Address(rcx, rdx, (Address::ScaleFactor)3, -0x53b2a454), 1);", // IID3375 - "__ orb(Address(rdx, rbx, (Address::ScaleFactor)3, -0xeddedaf), 1);", // IID3376 -#ifdef _LP64 - "__ orb(Address(rbx, +0x2e6966f3), 1);", // IID3377 - "__ orb(Address(r8, -0x5bf1041e), 1);", // IID3378 - "__ orb(Address(r9, -0x13e383d3), 1);", // IID3379 - "__ orb(Address(r10, -0x5c6ff8d5), 1);", // IID3380 - "__ orb(Address(r11, +0x2bc673f), 1);", // IID3381 - "__ orb(Address(r12, r13, (Address::ScaleFactor)0, -0x59d3aafa), 1);", // IID3382 - "__ orb(Address(r13, r14, (Address::ScaleFactor)3, -0x51ead8c8), 1);", // IID3383 - "__ orb(Address(r14, r15, (Address::ScaleFactor)2, +0x4cdab5c6), 1);", // IID3384 - "__ orb(Address(r15, r16, (Address::ScaleFactor)3, -0x5d73df54), 1);", // IID3385 - "__ orb(Address(r16, +0x371995ba), 1);", // IID3386 - "__ orb(Address(r17, r18, (Address::ScaleFactor)1, -0xab78da8), 1);", // IID3387 - "__ orb(Address(r18, +0x7ecd181a), 1);", // IID3388 - "__ orb(Address(r19, r20, (Address::ScaleFactor)0, -0x7b4000fe), 1);", // IID3389 - "__ orb(Address(r20, r21, (Address::ScaleFactor)1, -0x2c27b318), 1);", // IID3390 - "__ orb(Address(r21, +0x1953207d), 1);", // IID3391 - "__ orb(Address(r22, r23, (Address::ScaleFactor)2, -0x4b1c58bc), 1);", // IID3392 - "__ orb(Address(r23, -0x1cef3042), 1);", // IID3393 - "__ orb(Address(r24, r25, (Address::ScaleFactor)2, -0x3cec7278), 1);", // IID3394 - "__ orb(Address(r25, r26, (Address::ScaleFactor)0, -0xbda75e4), 1);", // IID3395 - "__ orb(Address(r26, r27, (Address::ScaleFactor)3, +0x5a1187b), 1);", // IID3396 - "__ orb(Address(r27, +0x7d6bfc91), 1);", // IID3397 - "__ orb(Address(r28, r29, (Address::ScaleFactor)1, +0x47ea4d53), 1);", // IID3398 - "__ orb(Address(r29, r30, (Address::ScaleFactor)0, -0x16615d4b), 1);", // IID3399 - "__ orb(Address(r30, r31, (Address::ScaleFactor)3, +0x713428dd), 1);", // IID3400 - "__ orb(Address(r31, rcx, (Address::ScaleFactor)0, -0x17233ec3), 1);", // IID3401 - "__ orb(Address(rcx, rdx, (Address::ScaleFactor)3, -0x41ea485), 4);", // IID3402 - "__ orb(Address(rdx, rbx, (Address::ScaleFactor)2, -0x11d596b4), 4);", // IID3403 - "__ orb(Address(rbx, -0x46476f2e), 4);", // IID3404 - "__ orb(Address(r8, +0x1c58f0da), 4);", // IID3405 - "__ orb(Address(r9, +0x24d2fc47), 4);", // IID3406 - "__ orb(Address(r10, r11, (Address::ScaleFactor)1, +0x31e20b81), 4);", // IID3407 - "__ orb(Address(r11, r12, (Address::ScaleFactor)1, +0xe622ca1), 4);", // IID3408 - "__ orb(Address(r12, r13, (Address::ScaleFactor)1, -0x6c970c6d), 4);", // IID3409 - "__ orb(Address(r13, r14, (Address::ScaleFactor)1, +0x135d0059), 4);", // IID3410 - "__ orb(Address(r14, r15, (Address::ScaleFactor)1, +0x140a0e40), 4);", // IID3411 - "__ orb(Address(r15, r16, (Address::ScaleFactor)0, -0x42cc7ca3), 4);", // IID3412 - "__ orb(Address(r16, r17, (Address::ScaleFactor)3, +0x38184c1e), 4);", // IID3413 - "__ orb(Address(r17, r18, (Address::ScaleFactor)0, -0x31d10b1e), 4);", // IID3414 - "__ orb(Address(r18, r19, (Address::ScaleFactor)2, -0x54de4cad), 4);", // IID3415 - "__ orb(Address(r19, +0x7f4f4a55), 4);", // IID3416 - "__ orb(Address(r20, r21, (Address::ScaleFactor)0, +0x4fbf8480), 4);", // IID3417 - "__ orb(Address(r21, r22, (Address::ScaleFactor)2, -0x7e1ec442), 4);", // IID3418 - "__ orb(Address(r22, r23, (Address::ScaleFactor)0, +0x4ea98833), 4);", // IID3419 - "__ orb(Address(r23, r24, (Address::ScaleFactor)2, -0x7fbcde38), 4);", // IID3420 - "__ orb(Address(r24, -0x3c9e03da), 4);", // IID3421 - "__ orb(Address(r25, r26, (Address::ScaleFactor)0, -0x54899787), 4);", // IID3422 - "__ orb(Address(r26, r27, (Address::ScaleFactor)3, -0x70223a8a), 4);", // IID3423 - "__ orb(Address(r27, r28, (Address::ScaleFactor)3, -0x7a1fba49), 4);", // IID3424 - "__ orb(Address(r28, r29, (Address::ScaleFactor)1, +0x2b980c82), 4);", // IID3425 - "__ orb(Address(r29, r30, (Address::ScaleFactor)3, -0x6a47873d), 4);", // IID3426 - "__ orb(Address(r30, r31, (Address::ScaleFactor)1, +0x53faac8a), 4);", // IID3427 - "__ orb(Address(r31, rcx, (Address::ScaleFactor)0, -0x2d94bc95), 4);", // IID3428 - "__ orb(Address(rcx, +0x25db3db3), 16);", // IID3429 - "__ orb(Address(rdx, rbx, (Address::ScaleFactor)0, +0x1dea5859), 16);", // IID3430 - "__ orb(Address(rbx, r8, (Address::ScaleFactor)2, +0x1fe026a3), 16);", // IID3431 - "__ orb(Address(r8, +0x322827), 16);", // IID3432 - "__ orb(Address(r9, r10, (Address::ScaleFactor)3, -0x32f6f691), 16);", // IID3433 - "__ orb(Address(r10, r11, (Address::ScaleFactor)3, +0x28aa4b8e), 16);", // IID3434 - "__ orb(Address(r11, r12, (Address::ScaleFactor)2, -0x5e32c9e8), 16);", // IID3435 - "__ orb(Address(r12, r13, (Address::ScaleFactor)2, +0x5a1f25b4), 16);", // IID3436 - "__ orb(Address(r13, r14, (Address::ScaleFactor)0, -0x4d519afd), 16);", // IID3437 - "__ orb(Address(r14, r15, (Address::ScaleFactor)2, +0x6b6ea620), 16);", // IID3438 - "__ orb(Address(r15, -0x62b19249), 16);", // IID3439 - "__ orb(Address(r16, +0x74f3c51f), 16);", // IID3440 - "__ orb(Address(r17, r18, (Address::ScaleFactor)2, +0x46dd165e), 16);", // IID3441 - "__ orb(Address(r18, r19, (Address::ScaleFactor)3, +0x731100c1), 16);", // IID3442 - "__ orb(Address(r19, r20, (Address::ScaleFactor)2, +0x4008b6f7), 16);", // IID3443 - "__ orb(Address(r20, r21, (Address::ScaleFactor)3, +0x7731dba5), 16);", // IID3444 - "__ orb(Address(r21, r22, (Address::ScaleFactor)2, -0x5fb9d01d), 16);", // IID3445 - "__ orb(Address(r22, r23, (Address::ScaleFactor)0, +0x4aad94be), 16);", // IID3446 - "__ orb(Address(r23, r24, (Address::ScaleFactor)3, +0x299853e), 16);", // IID3447 - "__ orb(Address(r24, r25, (Address::ScaleFactor)2, +0x286a55ee), 16);", // IID3448 - "__ orb(Address(r25, r26, (Address::ScaleFactor)1, +0x375a903f), 16);", // IID3449 - "__ orb(Address(r26, r27, (Address::ScaleFactor)0, -0x30bfb391), 16);", // IID3450 - "__ orb(Address(r27, -0x7c346d19), 16);", // IID3451 - "__ orb(Address(r28, r29, (Address::ScaleFactor)1, -0x1f19c032), 16);", // IID3452 - "__ orb(Address(r29, r30, (Address::ScaleFactor)0, -0x2480ec89), 16);", // IID3453 - "__ orb(Address(r30, r31, (Address::ScaleFactor)3, -0x7d13cbaa), 16);", // IID3454 - "__ orb(Address(r31, rcx, (Address::ScaleFactor)1, +0x34b5206), 16);", // IID3455 - "__ orb(Address(rcx, rdx, (Address::ScaleFactor)0, +0x2ba5f43d), 64);", // IID3456 - "__ orb(Address(rdx, rbx, (Address::ScaleFactor)3, -0x44540544), 64);", // IID3457 - "__ orb(Address(rbx, +0x61ecb55), 64);", // IID3458 - "__ orb(Address(r8, r9, (Address::ScaleFactor)1, -0x73fd7003), 64);", // IID3459 - "__ orb(Address(r9, -0x31c3bb47), 64);", // IID3460 - "__ orb(Address(r10, r11, (Address::ScaleFactor)3, +0x250b8017), 64);", // IID3461 - "__ orb(Address(r11, r12, (Address::ScaleFactor)2, -0x68195969), 64);", // IID3462 - "__ orb(Address(r12, -0x1eb88b81), 64);", // IID3463 - "__ orb(Address(r13, r14, (Address::ScaleFactor)3, +0xd2efaed), 64);", // IID3464 - "__ orb(Address(r14, -0x2d8f221), 64);", // IID3465 - "__ orb(Address(r15, r16, (Address::ScaleFactor)1, -0x6fc23bec), 64);", // IID3466 - "__ orb(Address(r16, r17, (Address::ScaleFactor)2, -0x305683f1), 64);", // IID3467 - "__ orb(Address(r17, r18, (Address::ScaleFactor)1, -0x71f518f5), 64);", // IID3468 - "__ orb(Address(r18, r19, (Address::ScaleFactor)1, -0x5f8db8b), 64);", // IID3469 - "__ orb(Address(r19, r20, (Address::ScaleFactor)3, -0x2a3e312f), 64);", // IID3470 - "__ orb(Address(r20, +0x737f39d1), 64);", // IID3471 - "__ orb(Address(r21, r22, (Address::ScaleFactor)0, +0x403ff0fa), 64);", // IID3472 - "__ orb(Address(r22, r23, (Address::ScaleFactor)3, +0x55cf8fcf), 64);", // IID3473 - "__ orb(Address(r23, r24, (Address::ScaleFactor)0, -0x24ebcb4f), 64);", // IID3474 - "__ orb(Address(r24, r25, (Address::ScaleFactor)1, -0x1e399b2a), 64);", // IID3475 - "__ orb(Address(r25, +0x6c7e555), 64);", // IID3476 - "__ orb(Address(r26, r27, (Address::ScaleFactor)2, -0x789cbd0c), 64);", // IID3477 - "__ orb(Address(r27, r28, (Address::ScaleFactor)3, +0x26b20146), 64);", // IID3478 - "__ orb(Address(r28, r29, (Address::ScaleFactor)3, +0x5fa27c58), 64);", // IID3479 - "__ orb(Address(r29, r30, (Address::ScaleFactor)2, -0x52fdc7e0), 64);", // IID3480 - "__ orb(Address(r30, r31, (Address::ScaleFactor)3, +0xba4c352), 64);", // IID3481 - "__ orb(Address(r31, +0x4e3906b7), 64);", // IID3482 -#endif // _LP64 - "__ orl(Address(rcx, rdx, (Address::ScaleFactor)0, +0x25588739), 1);", // IID3483 - "__ orl(Address(rdx, rbx, (Address::ScaleFactor)1, -0x7342cf56), 1);", // IID3484 -#ifdef _LP64 - "__ orl(Address(rbx, r8, (Address::ScaleFactor)3, +0x3aa3fa12), 1);", // IID3485 - "__ orl(Address(r8, r9, (Address::ScaleFactor)1, +0x2f344dc8), 1);", // IID3486 - "__ orl(Address(r9, r10, (Address::ScaleFactor)3, -0x2466b177), 1);", // IID3487 - "__ orl(Address(r10, r11, (Address::ScaleFactor)3, +0x3b1fc024), 1);", // IID3488 - "__ orl(Address(r11, r12, (Address::ScaleFactor)2, +0x5c050f3b), 1);", // IID3489 - "__ orl(Address(r12, -0x49e87123), 1);", // IID3490 - "__ orl(Address(r13, r14, (Address::ScaleFactor)3, +0x625c81c7), 1);", // IID3491 - "__ orl(Address(r14, r15, (Address::ScaleFactor)1, +0x3041739a), 1);", // IID3492 - "__ orl(Address(r15, r16, (Address::ScaleFactor)0, +0x1a95c02a), 1);", // IID3493 - "__ orl(Address(r16, r17, (Address::ScaleFactor)3, -0x6fb5af1a), 1);", // IID3494 - "__ orl(Address(r17, r18, (Address::ScaleFactor)1, -0x12171546), 1);", // IID3495 - "__ orl(Address(r18, r19, (Address::ScaleFactor)3, +0x1db1c608), 1);", // IID3496 - "__ orl(Address(r19, r20, (Address::ScaleFactor)3, +0x451c5f48), 1);", // IID3497 - "__ orl(Address(r20, r21, (Address::ScaleFactor)0, +0xc75472c), 1);", // IID3498 - "__ orl(Address(r21, r22, (Address::ScaleFactor)1, +0x3b48c7f1), 1);", // IID3499 - "__ orl(Address(r22, r23, (Address::ScaleFactor)3, +0x32b72eb), 1);", // IID3500 - "__ orl(Address(r23, r24, (Address::ScaleFactor)2, -0x54dbf2c2), 1);", // IID3501 - "__ orl(Address(r24, -0x32b13905), 1);", // IID3502 - "__ orl(Address(r25, +0x2cee800d), 1);", // IID3503 - "__ orl(Address(r26, r27, (Address::ScaleFactor)0, -0x60b371e), 1);", // IID3504 - "__ orl(Address(r27, r28, (Address::ScaleFactor)1, -0x7f2cd851), 1);", // IID3505 - "__ orl(Address(r28, r29, (Address::ScaleFactor)3, +0x313464fa), 1);", // IID3506 - "__ orl(Address(r29, r30, (Address::ScaleFactor)0, +0x71ec2fa7), 1);", // IID3507 - "__ orl(Address(r30, r31, (Address::ScaleFactor)2, +0x39f07075), 1);", // IID3508 - "__ orl(Address(r31, rcx, (Address::ScaleFactor)0, -0x135f5f8d), 1);", // IID3509 - "__ orl(Address(rcx, rdx, (Address::ScaleFactor)3, -0x2825716a), 16);", // IID3510 - "__ orl(Address(rdx, rbx, (Address::ScaleFactor)1, -0x42845288), 16);", // IID3511 - "__ orl(Address(rbx, r8, (Address::ScaleFactor)0, +0x66ef6a5f), 16);", // IID3512 - "__ orl(Address(r8, r9, (Address::ScaleFactor)3, +0x232758b3), 16);", // IID3513 - "__ orl(Address(r9, r10, (Address::ScaleFactor)1, -0x1a2220e5), 16);", // IID3514 - "__ orl(Address(r10, r11, (Address::ScaleFactor)3, -0x1fb95bb1), 16);", // IID3515 - "__ orl(Address(r11, r12, (Address::ScaleFactor)2, -0x115e2c1b), 16);", // IID3516 - "__ orl(Address(r12, r13, (Address::ScaleFactor)0, +0x73ed2940), 16);", // IID3517 - "__ orl(Address(r13, r14, (Address::ScaleFactor)2, -0x241858b0), 16);", // IID3518 - "__ orl(Address(r14, r15, (Address::ScaleFactor)3, -0x6eaee758), 16);", // IID3519 - "__ orl(Address(r15, +0x70722540), 16);", // IID3520 - "__ orl(Address(r16, r17, (Address::ScaleFactor)0, +0x219e3c6f), 16);", // IID3521 - "__ orl(Address(r17, r18, (Address::ScaleFactor)1, -0x2f7f212c), 16);", // IID3522 - "__ orl(Address(r18, r19, (Address::ScaleFactor)1, +0x1e7fbb7b), 16);", // IID3523 - "__ orl(Address(r19, r20, (Address::ScaleFactor)0, +0x49f2b984), 16);", // IID3524 - "__ orl(Address(r20, +0x9c26ce1), 16);", // IID3525 - "__ orl(Address(r21, r22, (Address::ScaleFactor)2, +0x7485e031), 16);", // IID3526 - "__ orl(Address(r22, -0x109073c3), 16);", // IID3527 - "__ orl(Address(r23, r24, (Address::ScaleFactor)0, -0x12d524f0), 16);", // IID3528 - "__ orl(Address(r24, r25, (Address::ScaleFactor)0, +0x6d46d6c5), 16);", // IID3529 - "__ orl(Address(r25, r26, (Address::ScaleFactor)0, +0x30683cbc), 16);", // IID3530 - "__ orl(Address(r26, r27, (Address::ScaleFactor)1, -0x2f32cae3), 16);", // IID3531 - "__ orl(Address(r27, r28, (Address::ScaleFactor)0, -0x5de32a3), 16);", // IID3532 - "__ orl(Address(r28, -0xff0accf), 16);", // IID3533 - "__ orl(Address(r29, r30, (Address::ScaleFactor)0, +0x55bfe791), 16);", // IID3534 - "__ orl(Address(r30, r31, (Address::ScaleFactor)1, +0x7f05b1d7), 16);", // IID3535 - "__ orl(Address(r31, rcx, (Address::ScaleFactor)0, +0x76c6b2e5), 16);", // IID3536 - "__ orl(Address(rcx, rdx, (Address::ScaleFactor)0, +0x2a99df9c), 256);", // IID3537 - "__ orl(Address(rdx, +0x76afb13f), 256);", // IID3538 - "__ orl(Address(rbx, r8, (Address::ScaleFactor)0, +0x766e8559), 256);", // IID3539 - "__ orl(Address(r8, r9, (Address::ScaleFactor)1, +0x3abc7636), 256);", // IID3540 - "__ orl(Address(r9, +0x28e38a55), 256);", // IID3541 - "__ orl(Address(r10, r11, (Address::ScaleFactor)3, -0x9b453bf), 256);", // IID3542 - "__ orl(Address(r11, +0x20726e02), 256);", // IID3543 - "__ orl(Address(r12, r13, (Address::ScaleFactor)2, +0x59a6ea69), 256);", // IID3544 - "__ orl(Address(r13, r14, (Address::ScaleFactor)2, -0x23b5b2c9), 256);", // IID3545 - "__ orl(Address(r14, r15, (Address::ScaleFactor)2, +0x508ddf22), 256);", // IID3546 - "__ orl(Address(r15, r16, (Address::ScaleFactor)0, -0x7934c94c), 256);", // IID3547 - "__ orl(Address(r16, r17, (Address::ScaleFactor)3, +0x2685bfdf), 256);", // IID3548 - "__ orl(Address(r17, -0x23715190), 256);", // IID3549 - "__ orl(Address(r18, r19, (Address::ScaleFactor)2, -0x5f1dce7f), 256);", // IID3550 - "__ orl(Address(r19, r20, (Address::ScaleFactor)1, +0x35a0fd6f), 256);", // IID3551 - "__ orl(Address(r20, -0x43ca6f88), 256);", // IID3552 - "__ orl(Address(r21, r22, (Address::ScaleFactor)3, -0x5507947), 256);", // IID3553 - "__ orl(Address(r22, r23, (Address::ScaleFactor)1, -0x31856dc9), 256);", // IID3554 - "__ orl(Address(r23, r24, (Address::ScaleFactor)3, -0x1ac6d8ef), 256);", // IID3555 - "__ orl(Address(r24, r25, (Address::ScaleFactor)0, -0x1323e15), 256);", // IID3556 - "__ orl(Address(r25, r26, (Address::ScaleFactor)1, -0x26d352a), 256);", // IID3557 - "__ orl(Address(r26, -0x39b5b19c), 256);", // IID3558 - "__ orl(Address(r27, r28, (Address::ScaleFactor)0, +0x59370666), 256);", // IID3559 - "__ orl(Address(r28, r29, (Address::ScaleFactor)2, -0x699f2ed3), 256);", // IID3560 - "__ orl(Address(r29, +0x3c0ed720), 256);", // IID3561 - "__ orl(Address(r30, r31, (Address::ScaleFactor)3, -0x70c9eb5), 256);", // IID3562 - "__ orl(Address(r31, +0x5ad06213), 256);", // IID3563 - "__ orl(Address(rcx, rdx, (Address::ScaleFactor)0, +0x2f7fa530), 4096);", // IID3564 - "__ orl(Address(rdx, rbx, (Address::ScaleFactor)3, -0xd3b2243), 4096);", // IID3565 - "__ orl(Address(rbx, r8, (Address::ScaleFactor)2, -0xfbfcf32), 4096);", // IID3566 - "__ orl(Address(r8, r9, (Address::ScaleFactor)3, -0xa7222b3), 4096);", // IID3567 - "__ orl(Address(r9, r10, (Address::ScaleFactor)2, +0x574026ed), 4096);", // IID3568 - "__ orl(Address(r10, r11, (Address::ScaleFactor)0, +0x3c47760c), 4096);", // IID3569 - "__ orl(Address(r11, r12, (Address::ScaleFactor)2, +0x191a8eda), 4096);", // IID3570 - "__ orl(Address(r12, r13, (Address::ScaleFactor)1, -0x59e6e828), 4096);", // IID3571 - "__ orl(Address(r13, +0x4e2e6d1b), 4096);", // IID3572 - "__ orl(Address(r14, r15, (Address::ScaleFactor)1, -0x361d8ed4), 4096);", // IID3573 - "__ orl(Address(r15, r16, (Address::ScaleFactor)3, -0x6fe9f0b0), 4096);", // IID3574 - "__ orl(Address(r16, r17, (Address::ScaleFactor)1, -0x73b59ccb), 4096);", // IID3575 - "__ orl(Address(r17, r18, (Address::ScaleFactor)3, +0x34b720e3), 4096);", // IID3576 - "__ orl(Address(r18, r19, (Address::ScaleFactor)2, -0x75be4480), 4096);", // IID3577 - "__ orl(Address(r19, r20, (Address::ScaleFactor)1, +0x215be35), 4096);", // IID3578 - "__ orl(Address(r20, r21, (Address::ScaleFactor)0, -0x75c7deb), 4096);", // IID3579 - "__ orl(Address(r21, -0x15e46792), 4096);", // IID3580 - "__ orl(Address(r22, r23, (Address::ScaleFactor)1, -0x6fe84aa1), 4096);", // IID3581 - "__ orl(Address(r23, r24, (Address::ScaleFactor)1, +0x6e59b694), 4096);", // IID3582 - "__ orl(Address(r24, -0x3432868f), 4096);", // IID3583 - "__ orl(Address(r25, r26, (Address::ScaleFactor)2, -0x434e81be), 4096);", // IID3584 - "__ orl(Address(r26, -0x5f6ece9a), 4096);", // IID3585 - "__ orl(Address(r27, r28, (Address::ScaleFactor)1, -0xa7c9533), 4096);", // IID3586 - "__ orl(Address(r28, r29, (Address::ScaleFactor)3, +0x693a61e2), 4096);", // IID3587 - "__ orl(Address(r29, r30, (Address::ScaleFactor)3, -0x4063d57d), 4096);", // IID3588 - "__ orl(Address(r30, r31, (Address::ScaleFactor)2, +0x11b1ef0d), 4096);", // IID3589 - "__ orl(Address(r31, rcx, (Address::ScaleFactor)3, +0x34e21585), 4096);", // IID3590 - "__ orl(Address(rcx, rdx, (Address::ScaleFactor)3, -0x35fafba8), 65536);", // IID3591 - "__ orl(Address(rdx, rbx, (Address::ScaleFactor)3, -0x61e16eb5), 65536);", // IID3592 - "__ orl(Address(rbx, r8, (Address::ScaleFactor)0, -0x26d27c13), 65536);", // IID3593 - "__ orl(Address(r8, r9, (Address::ScaleFactor)1, -0x3f25b144), 65536);", // IID3594 - "__ orl(Address(r9, r10, (Address::ScaleFactor)0, -0x664924e3), 65536);", // IID3595 - "__ orl(Address(r10, r11, (Address::ScaleFactor)1, +0x234e564a), 65536);", // IID3596 - "__ orl(Address(r11, r12, (Address::ScaleFactor)1, -0x303475f5), 65536);", // IID3597 - "__ orl(Address(r12, +0x786b9e73), 65536);", // IID3598 - "__ orl(Address(r13, -0x366a0611), 65536);", // IID3599 - "__ orl(Address(r14, r15, (Address::ScaleFactor)0, +0x72dc3f2b), 65536);", // IID3600 - "__ orl(Address(r15, r16, (Address::ScaleFactor)0, -0x432a2b1d), 65536);", // IID3601 - "__ orl(Address(r16, r17, (Address::ScaleFactor)2, +0x2c88a1b9), 65536);", // IID3602 - "__ orl(Address(r17, r18, (Address::ScaleFactor)1, +0x291acf76), 65536);", // IID3603 - "__ orl(Address(r18, r19, (Address::ScaleFactor)1, +0x6317233d), 65536);", // IID3604 - "__ orl(Address(r19, r20, (Address::ScaleFactor)3, +0x56f20ac6), 65536);", // IID3605 - "__ orl(Address(r20, r21, (Address::ScaleFactor)1, +0x51702f98), 65536);", // IID3606 - "__ orl(Address(r21, +0x455dc82d), 65536);", // IID3607 - "__ orl(Address(r22, r23, (Address::ScaleFactor)1, -0x22e140dd), 65536);", // IID3608 - "__ orl(Address(r23, r24, (Address::ScaleFactor)2, -0xfcab43d), 65536);", // IID3609 - "__ orl(Address(r24, r25, (Address::ScaleFactor)0, +0x1839d4c8), 65536);", // IID3610 - "__ orl(Address(r25, r26, (Address::ScaleFactor)0, +0x613713af), 65536);", // IID3611 - "__ orl(Address(r26, r27, (Address::ScaleFactor)0, +0x154ef6bc), 65536);", // IID3612 - "__ orl(Address(r27, r28, (Address::ScaleFactor)3, +0xe787b6c), 65536);", // IID3613 - "__ orl(Address(r28, r29, (Address::ScaleFactor)1, -0x28b421cd), 65536);", // IID3614 - "__ orl(Address(r29, +0x23c8c162), 65536);", // IID3615 - "__ orl(Address(r30, r31, (Address::ScaleFactor)3, +0x53ca7cee), 65536);", // IID3616 - "__ orl(Address(r31, rcx, (Address::ScaleFactor)3, -0x65ec4c6d), 65536);", // IID3617 - "__ orl(Address(rcx, rdx, (Address::ScaleFactor)1, -0x48d6d999), 1048576);", // IID3618 - "__ orl(Address(rdx, rbx, (Address::ScaleFactor)1, -0x40e74b74), 1048576);", // IID3619 - "__ orl(Address(rbx, r8, (Address::ScaleFactor)2, -0x6dc668ab), 1048576);", // IID3620 - "__ orl(Address(r8, r9, (Address::ScaleFactor)1, +0x1351aeea), 1048576);", // IID3621 - "__ orl(Address(r9, r10, (Address::ScaleFactor)0, -0x2c74028a), 1048576);", // IID3622 - "__ orl(Address(r10, r11, (Address::ScaleFactor)3, -0x2cdcf604), 1048576);", // IID3623 - "__ orl(Address(r11, -0x45c80177), 1048576);", // IID3624 - "__ orl(Address(r12, r13, (Address::ScaleFactor)0, +0x9405827), 1048576);", // IID3625 - "__ orl(Address(r13, -0x6bc41cc6), 1048576);", // IID3626 - "__ orl(Address(r14, +0x1b385a69), 1048576);", // IID3627 - "__ orl(Address(r15, r16, (Address::ScaleFactor)1, -0x72262e22), 1048576);", // IID3628 - "__ orl(Address(r16, r17, (Address::ScaleFactor)1, -0x2ce18433), 1048576);", // IID3629 - "__ orl(Address(r17, r18, (Address::ScaleFactor)1, +0x56e2bc7d), 1048576);", // IID3630 - "__ orl(Address(r18, r19, (Address::ScaleFactor)1, -0x2f18e9a3), 1048576);", // IID3631 - "__ orl(Address(r19, r20, (Address::ScaleFactor)1, -0x5c106c6c), 1048576);", // IID3632 - "__ orl(Address(r20, +0x6f164d8a), 1048576);", // IID3633 - "__ orl(Address(r21, r22, (Address::ScaleFactor)3, +0x6aee89e4), 1048576);", // IID3634 - "__ orl(Address(r22, r23, (Address::ScaleFactor)3, -0x112ed1b3), 1048576);", // IID3635 - "__ orl(Address(r23, -0x2f3432cb), 1048576);", // IID3636 - "__ orl(Address(r24, r25, (Address::ScaleFactor)0, +0x11e624cb), 1048576);", // IID3637 - "__ orl(Address(r25, r26, (Address::ScaleFactor)3, +0x55a183bd), 1048576);", // IID3638 - "__ orl(Address(r26, r27, (Address::ScaleFactor)2, +0x6a2fd6a6), 1048576);", // IID3639 - "__ orl(Address(r27, r28, (Address::ScaleFactor)0, +0x30b88546), 1048576);", // IID3640 - "__ orl(Address(r28, r29, (Address::ScaleFactor)3, -0x5de35e11), 1048576);", // IID3641 - "__ orl(Address(r29, r30, (Address::ScaleFactor)0, -0xe905990), 1048576);", // IID3642 - "__ orl(Address(r30, r31, (Address::ScaleFactor)2, +0x779a0deb), 1048576);", // IID3643 - "__ orl(Address(r31, rcx, (Address::ScaleFactor)2, +0x2788df7), 1048576);", // IID3644 - "__ orl(Address(rcx, rdx, (Address::ScaleFactor)3, -0x753f13c), 16777216);", // IID3645 - "__ orl(Address(rdx, +0x3d852a63), 16777216);", // IID3646 - "__ orl(Address(rbx, r8, (Address::ScaleFactor)1, +0x31de4c92), 16777216);", // IID3647 - "__ orl(Address(r8, r9, (Address::ScaleFactor)1, -0x61624a1f), 16777216);", // IID3648 - "__ orl(Address(r9, r10, (Address::ScaleFactor)1, -0x6967ce0b), 16777216);", // IID3649 - "__ orl(Address(r10, +0x435e4b70), 16777216);", // IID3650 - "__ orl(Address(r11, r12, (Address::ScaleFactor)3, -0x1bbf9606), 16777216);", // IID3651 - "__ orl(Address(r12, r13, (Address::ScaleFactor)3, -0x4b08c6d5), 16777216);", // IID3652 - "__ orl(Address(r13, r14, (Address::ScaleFactor)1, +0x1c32dc88), 16777216);", // IID3653 - "__ orl(Address(r14, r15, (Address::ScaleFactor)3, -0x155893e6), 16777216);", // IID3654 - "__ orl(Address(r15, r16, (Address::ScaleFactor)0, +0x21e85924), 16777216);", // IID3655 - "__ orl(Address(r16, +0x750147cf), 16777216);", // IID3656 - "__ orl(Address(r17, r18, (Address::ScaleFactor)1, -0x7660ca31), 16777216);", // IID3657 - "__ orl(Address(r18, r19, (Address::ScaleFactor)2, -0x466f4024), 16777216);", // IID3658 - "__ orl(Address(r19, r20, (Address::ScaleFactor)3, -0x4072544c), 16777216);", // IID3659 - "__ orl(Address(r20, r21, (Address::ScaleFactor)0, +0x4eef7f68), 16777216);", // IID3660 - "__ orl(Address(r21, r22, (Address::ScaleFactor)2, +0x71ec7938), 16777216);", // IID3661 - "__ orl(Address(r22, +0x71ccb9cb), 16777216);", // IID3662 - "__ orl(Address(r23, +0x333f8f40), 16777216);", // IID3663 - "__ orl(Address(r24, r25, (Address::ScaleFactor)1, -0x283c7f15), 16777216);", // IID3664 - "__ orl(Address(r25, r26, (Address::ScaleFactor)0, -0x447bf997), 16777216);", // IID3665 - "__ orl(Address(r26, r27, (Address::ScaleFactor)1, -0x47146744), 16777216);", // IID3666 - "__ orl(Address(r27, +0x12008544), 16777216);", // IID3667 - "__ orl(Address(r28, +0x360056bd), 16777216);", // IID3668 - "__ orl(Address(r29, r30, (Address::ScaleFactor)0, +0x1f8c7dc2), 16777216);", // IID3669 - "__ orl(Address(r30, r31, (Address::ScaleFactor)1, -0x2772efaf), 16777216);", // IID3670 - "__ orl(Address(r31, rcx, (Address::ScaleFactor)1, +0x34f3c551), 16777216);", // IID3671 - "__ orl(Address(rcx, rdx, (Address::ScaleFactor)0, -0x10ecbcf3), 268435456);", // IID3672 - "__ orl(Address(rdx, rbx, (Address::ScaleFactor)3, -0x82833e1), 268435456);", // IID3673 - "__ orl(Address(rbx, +0x75303f1a), 268435456);", // IID3674 - "__ orl(Address(r8, r9, (Address::ScaleFactor)1, +0x1d44ee75), 268435456);", // IID3675 - "__ orl(Address(r9, r10, (Address::ScaleFactor)0, +0x69425133), 268435456);", // IID3676 - "__ orl(Address(r10, r11, (Address::ScaleFactor)0, -0x1a3fdf3c), 268435456);", // IID3677 - "__ orl(Address(r11, r12, (Address::ScaleFactor)0, -0xb54464d), 268435456);", // IID3678 - "__ orl(Address(r12, r13, (Address::ScaleFactor)1, +0x194165c9), 268435456);", // IID3679 - "__ orl(Address(r13, +0x29ad2c62), 268435456);", // IID3680 - "__ orl(Address(r14, r15, (Address::ScaleFactor)1, -0x706cbe5b), 268435456);", // IID3681 - "__ orl(Address(r15, +0x1f2ce686), 268435456);", // IID3682 - "__ orl(Address(r16, r17, (Address::ScaleFactor)3, +0xf7613ba), 268435456);", // IID3683 - "__ orl(Address(r17, r18, (Address::ScaleFactor)1, +0x5f8a3561), 268435456);", // IID3684 - "__ orl(Address(r18, r19, (Address::ScaleFactor)0, +0x7e6f0839), 268435456);", // IID3685 - "__ orl(Address(r19, r20, (Address::ScaleFactor)1, +0x1c1c1755), 268435456);", // IID3686 - "__ orl(Address(r20, r21, (Address::ScaleFactor)0, -0x21b28c63), 268435456);", // IID3687 - "__ orl(Address(r21, r22, (Address::ScaleFactor)0, -0x3a1eb50b), 268435456);", // IID3688 - "__ orl(Address(r22, r23, (Address::ScaleFactor)3, +0x4040b358), 268435456);", // IID3689 - "__ orl(Address(r23, r24, (Address::ScaleFactor)1, -0x3a26cd4e), 268435456);", // IID3690 - "__ orl(Address(r24, r25, (Address::ScaleFactor)2, +0x4a2ce7ce), 268435456);", // IID3691 - "__ orl(Address(r25, r26, (Address::ScaleFactor)2, +0x3f155326), 268435456);", // IID3692 - "__ orl(Address(r26, r27, (Address::ScaleFactor)3, +0x519ce7d1), 268435456);", // IID3693 - "__ orl(Address(r27, r28, (Address::ScaleFactor)3, -0x2445ad4d), 268435456);", // IID3694 - "__ orl(Address(r28, r29, (Address::ScaleFactor)3, +0x3b77e6f2), 268435456);", // IID3695 - "__ orl(Address(r29, r30, (Address::ScaleFactor)0, -0x45358650), 268435456);", // IID3696 - "__ orl(Address(r30, +0x2d10a422), 268435456);", // IID3697 - "__ orl(Address(r31, -0x44f41193), 268435456);", // IID3698 -#endif // _LP64 - "__ movb(Address(rcx, rdx, (Address::ScaleFactor)1, -0x3125bac0), 1);", // IID3699 - "__ movb(Address(rdx, rbx, (Address::ScaleFactor)0, -0x2360b94b), 1);", // IID3700 -#ifdef _LP64 - "__ movb(Address(rbx, r8, (Address::ScaleFactor)3, +0x6ca6f4c7), 1);", // IID3701 - "__ movb(Address(r8, r9, (Address::ScaleFactor)1, +0x2cffc5f4), 1);", // IID3702 - "__ movb(Address(r9, r10, (Address::ScaleFactor)0, +0x61f292a1), 1);", // IID3703 - "__ movb(Address(r10, r11, (Address::ScaleFactor)0, -0xd53d543), 1);", // IID3704 - "__ movb(Address(r11, -0x6038ad3e), 1);", // IID3705 - "__ movb(Address(r12, +0x733e9661), 1);", // IID3706 - "__ movb(Address(r13, r14, (Address::ScaleFactor)3, +0x102d15e7), 1);", // IID3707 - "__ movb(Address(r14, r15, (Address::ScaleFactor)3, -0x417535fb), 1);", // IID3708 - "__ movb(Address(r15, r16, (Address::ScaleFactor)2, +0x7f355632), 1);", // IID3709 - "__ movb(Address(r16, r17, (Address::ScaleFactor)0, -0x2f46c4de), 1);", // IID3710 - "__ movb(Address(r17, r18, (Address::ScaleFactor)0, -0xd967699), 1);", // IID3711 - "__ movb(Address(r18, r19, (Address::ScaleFactor)3, -0x25833951), 1);", // IID3712 - "__ movb(Address(r19, r20, (Address::ScaleFactor)3, -0x436c9424), 1);", // IID3713 - "__ movb(Address(r20, r21, (Address::ScaleFactor)2, -0xcf04813), 1);", // IID3714 - "__ movb(Address(r21, r22, (Address::ScaleFactor)2, -0xae389bb), 1);", // IID3715 - "__ movb(Address(r22, r23, (Address::ScaleFactor)0, -0x324aa114), 1);", // IID3716 - "__ movb(Address(r23, r24, (Address::ScaleFactor)2, -0x2eaaf7ab), 1);", // IID3717 - "__ movb(Address(r24, +0x4fe6c34b), 1);", // IID3718 - "__ movb(Address(r25, -0x221e5daf), 1);", // IID3719 - "__ movb(Address(r26, +0x32ec7e3), 1);", // IID3720 - "__ movb(Address(r27, r28, (Address::ScaleFactor)1, +0x1bdfda25), 1);", // IID3721 - "__ movb(Address(r28, r29, (Address::ScaleFactor)3, -0x1618712f), 1);", // IID3722 - "__ movb(Address(r29, r30, (Address::ScaleFactor)0, +0x38bf644a), 1);", // IID3723 - "__ movb(Address(r30, r31, (Address::ScaleFactor)0, -0x1d8349a6), 1);", // IID3724 - "__ movb(Address(r31, -0x521b53fb), 1);", // IID3725 - "__ movb(Address(rcx, rdx, (Address::ScaleFactor)2, -0x1acc5035), 4);", // IID3726 - "__ movb(Address(rdx, rbx, (Address::ScaleFactor)3, +0x381f7cb4), 4);", // IID3727 - "__ movb(Address(rbx, r8, (Address::ScaleFactor)2, -0x79587ba), 4);", // IID3728 - "__ movb(Address(r8, -0x2ceaa95c), 4);", // IID3729 - "__ movb(Address(r9, r10, (Address::ScaleFactor)1, +0x3819a4aa), 4);", // IID3730 - "__ movb(Address(r10, +0x758ea9bc), 4);", // IID3731 - "__ movb(Address(r11, r12, (Address::ScaleFactor)2, -0x750bd238), 4);", // IID3732 - "__ movb(Address(r12, +0x4d2e7853), 4);", // IID3733 - "__ movb(Address(r13, r14, (Address::ScaleFactor)3, +0x1827ca82), 4);", // IID3734 - "__ movb(Address(r14, r15, (Address::ScaleFactor)3, -0x66b4d30e), 4);", // IID3735 - "__ movb(Address(r15, r16, (Address::ScaleFactor)0, +0x17b0a308), 4);", // IID3736 - "__ movb(Address(r16, -0x7d073eed), 4);", // IID3737 - "__ movb(Address(r17, r18, (Address::ScaleFactor)2, +0x3287225b), 4);", // IID3738 - "__ movb(Address(r18, +0x33166ac6), 4);", // IID3739 - "__ movb(Address(r19, r20, (Address::ScaleFactor)3, +0x405097f5), 4);", // IID3740 - "__ movb(Address(r20, r21, (Address::ScaleFactor)1, +0x87c8107), 4);", // IID3741 - "__ movb(Address(r21, -0x139f7c46), 4);", // IID3742 - "__ movb(Address(r22, r23, (Address::ScaleFactor)3, -0x2a1aeaff), 4);", // IID3743 - "__ movb(Address(r23, r24, (Address::ScaleFactor)0, -0x79b2f38d), 4);", // IID3744 - "__ movb(Address(r24, r25, (Address::ScaleFactor)3, -0xa6dfe64), 4);", // IID3745 - "__ movb(Address(r25, +0x443e43f), 4);", // IID3746 - "__ movb(Address(r26, -0x668869), 4);", // IID3747 - "__ movb(Address(r27, r28, (Address::ScaleFactor)1, -0x69229274), 4);", // IID3748 - "__ movb(Address(r28, r29, (Address::ScaleFactor)0, +0x272edd81), 4);", // IID3749 - "__ movb(Address(r29, +0x5fb8c58a), 4);", // IID3750 - "__ movb(Address(r30, +0x7b464f05), 4);", // IID3751 - "__ movb(Address(r31, +0x59b635b8), 4);", // IID3752 - "__ movb(Address(rcx, rdx, (Address::ScaleFactor)1, +0x12961635), 16);", // IID3753 - "__ movb(Address(rdx, +0x4be6e124), 16);", // IID3754 - "__ movb(Address(rbx, r8, (Address::ScaleFactor)2, +0xfcb2165), 16);", // IID3755 - "__ movb(Address(r8, r9, (Address::ScaleFactor)0, -0x6341f131), 16);", // IID3756 - "__ movb(Address(r9, r10, (Address::ScaleFactor)2, -0x5088391a), 16);", // IID3757 - "__ movb(Address(r10, r11, (Address::ScaleFactor)0, +0x13b48e1d), 16);", // IID3758 - "__ movb(Address(r11, r12, (Address::ScaleFactor)1, +0x3f518dda), 16);", // IID3759 - "__ movb(Address(r12, r13, (Address::ScaleFactor)0, +0x24f958cb), 16);", // IID3760 - "__ movb(Address(r13, r14, (Address::ScaleFactor)2, +0x3563bb49), 16);", // IID3761 - "__ movb(Address(r14, r15, (Address::ScaleFactor)3, -0x95c0f3b), 16);", // IID3762 - "__ movb(Address(r15, r16, (Address::ScaleFactor)3, +0x4150319b), 16);", // IID3763 - "__ movb(Address(r16, r17, (Address::ScaleFactor)2, +0x731fefda), 16);", // IID3764 - "__ movb(Address(r17, r18, (Address::ScaleFactor)1, -0x7ec35181), 16);", // IID3765 - "__ movb(Address(r18, -0x378fd018), 16);", // IID3766 - "__ movb(Address(r19, r20, (Address::ScaleFactor)2, +0x30824f55), 16);", // IID3767 - "__ movb(Address(r20, r21, (Address::ScaleFactor)0, -0x599c0f1), 16);", // IID3768 - "__ movb(Address(r21, r22, (Address::ScaleFactor)2, +0x6ad2557), 16);", // IID3769 - "__ movb(Address(r22, -0x72a9e57d), 16);", // IID3770 - "__ movb(Address(r23, -0x40a56883), 16);", // IID3771 - "__ movb(Address(r24, r25, (Address::ScaleFactor)2, -0x1c819597), 16);", // IID3772 - "__ movb(Address(r25, r26, (Address::ScaleFactor)1, +0x56b00afb), 16);", // IID3773 - "__ movb(Address(r26, r27, (Address::ScaleFactor)0, -0x78f940d8), 16);", // IID3774 - "__ movb(Address(r27, r28, (Address::ScaleFactor)1, +0x16f3f702), 16);", // IID3775 - "__ movb(Address(r28, +0x6b72a19d), 16);", // IID3776 - "__ movb(Address(r29, r30, (Address::ScaleFactor)0, +0x648b46cb), 16);", // IID3777 - "__ movb(Address(r30, r31, (Address::ScaleFactor)1, -0x56ba3659), 16);", // IID3778 - "__ movb(Address(r31, rcx, (Address::ScaleFactor)1, +0x1100d5d), 16);", // IID3779 - "__ movb(Address(rcx, +0x716a47e1), 64);", // IID3780 - "__ movb(Address(rdx, rbx, (Address::ScaleFactor)1, +0x655d7c45), 64);", // IID3781 - "__ movb(Address(rbx, r8, (Address::ScaleFactor)1, +0x54e8a571), 64);", // IID3782 - "__ movb(Address(r8, r9, (Address::ScaleFactor)2, -0x48e9cce9), 64);", // IID3783 - "__ movb(Address(r9, r10, (Address::ScaleFactor)0, -0x252300d), 64);", // IID3784 - "__ movb(Address(r10, r11, (Address::ScaleFactor)3, +0xbb6ba5d), 64);", // IID3785 - "__ movb(Address(r11, r12, (Address::ScaleFactor)3, -0x780e5f71), 64);", // IID3786 - "__ movb(Address(r12, r13, (Address::ScaleFactor)0, +0x49c96ff2), 64);", // IID3787 - "__ movb(Address(r13, +0x10eb505f), 64);", // IID3788 - "__ movb(Address(r14, r15, (Address::ScaleFactor)3, +0x4b310f72), 64);", // IID3789 - "__ movb(Address(r15, r16, (Address::ScaleFactor)2, -0x3e63146c), 64);", // IID3790 - "__ movb(Address(r16, +0x3a2934fc), 64);", // IID3791 - "__ movb(Address(r17, r18, (Address::ScaleFactor)1, -0x66144cf0), 64);", // IID3792 - "__ movb(Address(r18, r19, (Address::ScaleFactor)0, -0x2559c76c), 64);", // IID3793 - "__ movb(Address(r19, r20, (Address::ScaleFactor)2, +0x1202fa9e), 64);", // IID3794 - "__ movb(Address(r20, r21, (Address::ScaleFactor)2, -0x174dc8f3), 64);", // IID3795 - "__ movb(Address(r21, r22, (Address::ScaleFactor)0, -0x5e40d728), 64);", // IID3796 - "__ movb(Address(r22, r23, (Address::ScaleFactor)3, +0x24941b40), 64);", // IID3797 - "__ movb(Address(r23, r24, (Address::ScaleFactor)0, +0xe3315d2), 64);", // IID3798 - "__ movb(Address(r24, r25, (Address::ScaleFactor)2, +0x3f272b5d), 64);", // IID3799 - "__ movb(Address(r25, +0x7444bc3), 64);", // IID3800 - "__ movb(Address(r26, -0x5469a446), 64);", // IID3801 - "__ movb(Address(r27, r28, (Address::ScaleFactor)0, +0x7c5fbcfe), 64);", // IID3802 - "__ movb(Address(r28, r29, (Address::ScaleFactor)0, -0x50117aa7), 64);", // IID3803 - "__ movb(Address(r29, r30, (Address::ScaleFactor)1, +0x337f6f1b), 64);", // IID3804 - "__ movb(Address(r30, r31, (Address::ScaleFactor)0, -0x439049f3), 64);", // IID3805 - "__ movb(Address(r31, rcx, (Address::ScaleFactor)3, -0x898a41d), 64);", // IID3806 -#endif // _LP64 - "__ movl(Address(rcx, rdx, (Address::ScaleFactor)1, -0x750fbe33), 1);", // IID3807 - "__ movl(Address(rdx, rbx, (Address::ScaleFactor)2, +0x5f483bbd), 1);", // IID3808 -#ifdef _LP64 - "__ movl(Address(rbx, r8, (Address::ScaleFactor)1, -0x707a139d), 1);", // IID3809 - "__ movl(Address(r8, +0x4b9c3ffb), 1);", // IID3810 - "__ movl(Address(r9, -0x12921a6b), 1);", // IID3811 - "__ movl(Address(r10, r11, (Address::ScaleFactor)3, +0x723940c5), 1);", // IID3812 - "__ movl(Address(r11, r12, (Address::ScaleFactor)3, -0x163ece07), 1);", // IID3813 - "__ movl(Address(r12, -0x172b56b4), 1);", // IID3814 - "__ movl(Address(r13, r14, (Address::ScaleFactor)0, +0x25eeb381), 1);", // IID3815 - "__ movl(Address(r14, r15, (Address::ScaleFactor)1, -0x2a49e553), 1);", // IID3816 - "__ movl(Address(r15, r16, (Address::ScaleFactor)1, -0x26966c70), 1);", // IID3817 - "__ movl(Address(r16, +0x4c31b672), 1);", // IID3818 - "__ movl(Address(r17, +0x4cc9ab81), 1);", // IID3819 - "__ movl(Address(r18, r19, (Address::ScaleFactor)3, -0x4a2bbb42), 1);", // IID3820 - "__ movl(Address(r19, r20, (Address::ScaleFactor)3, +0xbd6e5c1), 1);", // IID3821 - "__ movl(Address(r20, r21, (Address::ScaleFactor)0, -0x16819dd9), 1);", // IID3822 - "__ movl(Address(r21, r22, (Address::ScaleFactor)2, -0x21d06e94), 1);", // IID3823 - "__ movl(Address(r22, +0x76dd6fb9), 1);", // IID3824 - "__ movl(Address(r23, -0x71f9314f), 1);", // IID3825 - "__ movl(Address(r24, r25, (Address::ScaleFactor)0, -0x1ada976a), 1);", // IID3826 - "__ movl(Address(r25, r26, (Address::ScaleFactor)2, -0x465c5ebe), 1);", // IID3827 - "__ movl(Address(r26, r27, (Address::ScaleFactor)2, +0x293d49b), 1);", // IID3828 - "__ movl(Address(r27, r28, (Address::ScaleFactor)2, +0x58046d1b), 1);", // IID3829 - "__ movl(Address(r28, r29, (Address::ScaleFactor)2, -0x44903a7a), 1);", // IID3830 - "__ movl(Address(r29, r30, (Address::ScaleFactor)1, +0x417fe3f0), 1);", // IID3831 - "__ movl(Address(r30, +0x10253479), 1);", // IID3832 - "__ movl(Address(r31, rcx, (Address::ScaleFactor)1, +0x989de9b), 1);", // IID3833 - "__ movl(Address(rcx, rdx, (Address::ScaleFactor)0, +0x240d437d), 16);", // IID3834 - "__ movl(Address(rdx, +0x45802e3d), 16);", // IID3835 - "__ movl(Address(rbx, r8, (Address::ScaleFactor)3, +0x2db50c5f), 16);", // IID3836 - "__ movl(Address(r8, r9, (Address::ScaleFactor)0, +0x6aa809b9), 16);", // IID3837 - "__ movl(Address(r9, r10, (Address::ScaleFactor)0, -0x5fb497c), 16);", // IID3838 - "__ movl(Address(r10, -0x2b250b99), 16);", // IID3839 - "__ movl(Address(r11, r12, (Address::ScaleFactor)1, -0x34a2d048), 16);", // IID3840 - "__ movl(Address(r12, r13, (Address::ScaleFactor)1, +0x17429117), 16);", // IID3841 - "__ movl(Address(r13, r14, (Address::ScaleFactor)1, +0x22af4be1), 16);", // IID3842 - "__ movl(Address(r14, r15, (Address::ScaleFactor)2, +0x20bb3559), 16);", // IID3843 - "__ movl(Address(r15, -0x2d4924cf), 16);", // IID3844 - "__ movl(Address(r16, r17, (Address::ScaleFactor)3, -0x74cfc25c), 16);", // IID3845 - "__ movl(Address(r17, r18, (Address::ScaleFactor)1, +0x264e6a71), 16);", // IID3846 - "__ movl(Address(r18, r19, (Address::ScaleFactor)1, -0x33a11109), 16);", // IID3847 - "__ movl(Address(r19, r20, (Address::ScaleFactor)1, +0x3fbeca59), 16);", // IID3848 - "__ movl(Address(r20, r21, (Address::ScaleFactor)2, +0x2a72a335), 16);", // IID3849 - "__ movl(Address(r21, r22, (Address::ScaleFactor)0, +0x23e0637d), 16);", // IID3850 - "__ movl(Address(r22, r23, (Address::ScaleFactor)2, -0x4e01c717), 16);", // IID3851 - "__ movl(Address(r23, r24, (Address::ScaleFactor)2, -0x49ecc6c3), 16);", // IID3852 - "__ movl(Address(r24, r25, (Address::ScaleFactor)0, -0x7494f97b), 16);", // IID3853 - "__ movl(Address(r25, r26, (Address::ScaleFactor)0, +0x366837f2), 16);", // IID3854 - "__ movl(Address(r26, r27, (Address::ScaleFactor)2, +0x6aca068), 16);", // IID3855 - "__ movl(Address(r27, r28, (Address::ScaleFactor)2, -0x59c06e47), 16);", // IID3856 - "__ movl(Address(r28, r29, (Address::ScaleFactor)3, +0x142d9a06), 16);", // IID3857 - "__ movl(Address(r29, r30, (Address::ScaleFactor)1, +0x2b7f9d8), 16);", // IID3858 - "__ movl(Address(r30, r31, (Address::ScaleFactor)1, +0x7b698427), 16);", // IID3859 - "__ movl(Address(r31, rcx, (Address::ScaleFactor)1, -0x5208d056), 16);", // IID3860 - "__ movl(Address(rcx, rdx, (Address::ScaleFactor)0, +0x6733ab55), 256);", // IID3861 - "__ movl(Address(rdx, rbx, (Address::ScaleFactor)2, +0x3545f259), 256);", // IID3862 - "__ movl(Address(rbx, r8, (Address::ScaleFactor)0, +0x59bcf4db), 256);", // IID3863 - "__ movl(Address(r8, r9, (Address::ScaleFactor)1, +0x7e0229b4), 256);", // IID3864 - "__ movl(Address(r9, r10, (Address::ScaleFactor)2, +0x4567821e), 256);", // IID3865 - "__ movl(Address(r10, r11, (Address::ScaleFactor)3, -0x37b9f715), 256);", // IID3866 - "__ movl(Address(r11, -0x383d37bc), 256);", // IID3867 - "__ movl(Address(r12, r13, (Address::ScaleFactor)0, +0x17fdb367), 256);", // IID3868 - "__ movl(Address(r13, r14, (Address::ScaleFactor)1, +0xc110267), 256);", // IID3869 - "__ movl(Address(r14, r15, (Address::ScaleFactor)0, -0x3e9f293f), 256);", // IID3870 - "__ movl(Address(r15, +0x49a6aa49), 256);", // IID3871 - "__ movl(Address(r16, r17, (Address::ScaleFactor)0, +0x3b8fedbd), 256);", // IID3872 - "__ movl(Address(r17, -0x131e1d08), 256);", // IID3873 - "__ movl(Address(r18, r19, (Address::ScaleFactor)2, -0x34f685e8), 256);", // IID3874 - "__ movl(Address(r19, r20, (Address::ScaleFactor)3, -0x62dd7cde), 256);", // IID3875 - "__ movl(Address(r20, r21, (Address::ScaleFactor)3, +0x69548591), 256);", // IID3876 - "__ movl(Address(r21, r22, (Address::ScaleFactor)0, -0x52e46bb4), 256);", // IID3877 - "__ movl(Address(r22, r23, (Address::ScaleFactor)3, -0x40dbfaf5), 256);", // IID3878 - "__ movl(Address(r23, +0x74e5e208), 256);", // IID3879 - "__ movl(Address(r24, r25, (Address::ScaleFactor)2, -0x82f09d0), 256);", // IID3880 - "__ movl(Address(r25, r26, (Address::ScaleFactor)2, +0x3e4c1669), 256);", // IID3881 - "__ movl(Address(r26, r27, (Address::ScaleFactor)1, -0x3f8468a8), 256);", // IID3882 - "__ movl(Address(r27, -0x3362803d), 256);", // IID3883 - "__ movl(Address(r28, r29, (Address::ScaleFactor)1, +0xdd958a8), 256);", // IID3884 - "__ movl(Address(r29, r30, (Address::ScaleFactor)2, +0x3a715992), 256);", // IID3885 - "__ movl(Address(r30, r31, (Address::ScaleFactor)1, +0x1c68bf46), 256);", // IID3886 - "__ movl(Address(r31, +0x4abfeda6), 256);", // IID3887 - "__ movl(Address(rcx, rdx, (Address::ScaleFactor)1, -0x4fa198b3), 4096);", // IID3888 - "__ movl(Address(rdx, +0x4b312019), 4096);", // IID3889 - "__ movl(Address(rbx, r8, (Address::ScaleFactor)1, +0x51e27f2f), 4096);", // IID3890 - "__ movl(Address(r8, r9, (Address::ScaleFactor)3, +0x52b471ba), 4096);", // IID3891 - "__ movl(Address(r9, r10, (Address::ScaleFactor)0, +0x2ffcb3c1), 4096);", // IID3892 - "__ movl(Address(r10, -0x5ee5240f), 4096);", // IID3893 - "__ movl(Address(r11, r12, (Address::ScaleFactor)2, -0x4ddb12d7), 4096);", // IID3894 - "__ movl(Address(r12, r13, (Address::ScaleFactor)2, +0x1dee7fa8), 4096);", // IID3895 - "__ movl(Address(r13, r14, (Address::ScaleFactor)3, +0x1c5594aa), 4096);", // IID3896 - "__ movl(Address(r14, +0xf375392), 4096);", // IID3897 - "__ movl(Address(r15, -0x509b8209), 4096);", // IID3898 - "__ movl(Address(r16, r17, (Address::ScaleFactor)0, -0x3ea3a4b5), 4096);", // IID3899 - "__ movl(Address(r17, r18, (Address::ScaleFactor)2, -0x421a7842), 4096);", // IID3900 - "__ movl(Address(r18, r19, (Address::ScaleFactor)2, -0x2f3dad58), 4096);", // IID3901 - "__ movl(Address(r19, r20, (Address::ScaleFactor)0, -0x3151d431), 4096);", // IID3902 - "__ movl(Address(r20, r21, (Address::ScaleFactor)3, -0x34743e6e), 4096);", // IID3903 - "__ movl(Address(r21, -0x14b84f3b), 4096);", // IID3904 - "__ movl(Address(r22, r23, (Address::ScaleFactor)0, -0x500637e3), 4096);", // IID3905 - "__ movl(Address(r23, r24, (Address::ScaleFactor)1, +0x6d4397f7), 4096);", // IID3906 - "__ movl(Address(r24, r25, (Address::ScaleFactor)0, -0xccd2489), 4096);", // IID3907 - "__ movl(Address(r25, r26, (Address::ScaleFactor)2, -0x698ab91c), 4096);", // IID3908 - "__ movl(Address(r26, r27, (Address::ScaleFactor)0, -0x1be8d671), 4096);", // IID3909 - "__ movl(Address(r27, r28, (Address::ScaleFactor)3, -0x374489e7), 4096);", // IID3910 - "__ movl(Address(r28, r29, (Address::ScaleFactor)3, -0x2baeb0f4), 4096);", // IID3911 - "__ movl(Address(r29, r30, (Address::ScaleFactor)3, +0x2df4c99d), 4096);", // IID3912 - "__ movl(Address(r30, -0x220560c3), 4096);", // IID3913 - "__ movl(Address(r31, rcx, (Address::ScaleFactor)0, +0x71bfd119), 4096);", // IID3914 - "__ movl(Address(rcx, rdx, (Address::ScaleFactor)1, -0x146654ad), 65536);", // IID3915 - "__ movl(Address(rdx, +0x244367bd), 65536);", // IID3916 - "__ movl(Address(rbx, -0x410b1981), 65536);", // IID3917 - "__ movl(Address(r8, -0x4c9f842), 65536);", // IID3918 - "__ movl(Address(r9, -0x4e7a3009), 65536);", // IID3919 - "__ movl(Address(r10, -0x6d6f94f5), 65536);", // IID3920 - "__ movl(Address(r11, r12, (Address::ScaleFactor)0, -0x1c48c3ba), 65536);", // IID3921 - "__ movl(Address(r12, +0x5f2afac2), 65536);", // IID3922 - "__ movl(Address(r13, -0x43828184), 65536);", // IID3923 - "__ movl(Address(r14, r15, (Address::ScaleFactor)2, -0x6961456c), 65536);", // IID3924 - "__ movl(Address(r15, r16, (Address::ScaleFactor)1, -0x5041d3b), 65536);", // IID3925 - "__ movl(Address(r16, r17, (Address::ScaleFactor)2, +0x5b4c7780), 65536);", // IID3926 - "__ movl(Address(r17, r18, (Address::ScaleFactor)0, +0x7c3fb55f), 65536);", // IID3927 - "__ movl(Address(r18, r19, (Address::ScaleFactor)1, -0x48d778b0), 65536);", // IID3928 - "__ movl(Address(r19, r20, (Address::ScaleFactor)2, -0x1a565a30), 65536);", // IID3929 - "__ movl(Address(r20, r21, (Address::ScaleFactor)2, -0x3c44fcd0), 65536);", // IID3930 - "__ movl(Address(r21, +0x7ee35e55), 65536);", // IID3931 - "__ movl(Address(r22, r23, (Address::ScaleFactor)2, +0x7a7b44d0), 65536);", // IID3932 - "__ movl(Address(r23, r24, (Address::ScaleFactor)3, -0x2dbdda7c), 65536);", // IID3933 - "__ movl(Address(r24, r25, (Address::ScaleFactor)1, -0xdefa621), 65536);", // IID3934 - "__ movl(Address(r25, r26, (Address::ScaleFactor)3, -0x6f05d50), 65536);", // IID3935 - "__ movl(Address(r26, r27, (Address::ScaleFactor)1, -0x2eec8e77), 65536);", // IID3936 - "__ movl(Address(r27, r28, (Address::ScaleFactor)1, +0x1bd54190), 65536);", // IID3937 - "__ movl(Address(r28, r29, (Address::ScaleFactor)2, -0x308a585c), 65536);", // IID3938 - "__ movl(Address(r29, r30, (Address::ScaleFactor)3, +0x5429bd57), 65536);", // IID3939 - "__ movl(Address(r30, r31, (Address::ScaleFactor)0, +0x6c8cde8a), 65536);", // IID3940 - "__ movl(Address(r31, -0x779e887), 65536);", // IID3941 - "__ movl(Address(rcx, rdx, (Address::ScaleFactor)2, -0x79131c7d), 1048576);", // IID3942 - "__ movl(Address(rdx, rbx, (Address::ScaleFactor)1, -0x14142bbc), 1048576);", // IID3943 - "__ movl(Address(rbx, r8, (Address::ScaleFactor)3, -0x3a0c2e59), 1048576);", // IID3944 - "__ movl(Address(r8, r9, (Address::ScaleFactor)1, +0x42f5629c), 1048576);", // IID3945 - "__ movl(Address(r9, -0x2b7bb6fb), 1048576);", // IID3946 - "__ movl(Address(r10, r11, (Address::ScaleFactor)0, -0x2182422), 1048576);", // IID3947 - "__ movl(Address(r11, r12, (Address::ScaleFactor)2, -0x3fc102b8), 1048576);", // IID3948 - "__ movl(Address(r12, +0xaa6a4a4), 1048576);", // IID3949 - "__ movl(Address(r13, r14, (Address::ScaleFactor)3, -0x18125265), 1048576);", // IID3950 - "__ movl(Address(r14, r15, (Address::ScaleFactor)1, -0x7c0e1c4c), 1048576);", // IID3951 - "__ movl(Address(r15, +0x695f503d), 1048576);", // IID3952 - "__ movl(Address(r16, r17, (Address::ScaleFactor)3, +0x527b6848), 1048576);", // IID3953 - "__ movl(Address(r17, r18, (Address::ScaleFactor)3, +0x660a3406), 1048576);", // IID3954 - "__ movl(Address(r18, r19, (Address::ScaleFactor)0, -0x2c433b58), 1048576);", // IID3955 - "__ movl(Address(r19, r20, (Address::ScaleFactor)2, +0xba3900a), 1048576);", // IID3956 - "__ movl(Address(r20, r21, (Address::ScaleFactor)1, -0x16148d76), 1048576);", // IID3957 - "__ movl(Address(r21, r22, (Address::ScaleFactor)2, -0x231b1b91), 1048576);", // IID3958 - "__ movl(Address(r22, r23, (Address::ScaleFactor)0, +0x222331ea), 1048576);", // IID3959 - "__ movl(Address(r23, +0x8513eef), 1048576);", // IID3960 - "__ movl(Address(r24, r25, (Address::ScaleFactor)3, -0xaacbcbe), 1048576);", // IID3961 - "__ movl(Address(r25, +0x298f83c4), 1048576);", // IID3962 - "__ movl(Address(r26, r27, (Address::ScaleFactor)2, -0x674098a), 1048576);", // IID3963 - "__ movl(Address(r27, r28, (Address::ScaleFactor)2, -0x9a3dcbb), 1048576);", // IID3964 - "__ movl(Address(r28, r29, (Address::ScaleFactor)0, -0x5a2110b), 1048576);", // IID3965 - "__ movl(Address(r29, +0x286ec555), 1048576);", // IID3966 - "__ movl(Address(r30, -0x430bb97d), 1048576);", // IID3967 - "__ movl(Address(r31, rcx, (Address::ScaleFactor)1, -0x447a616f), 1048576);", // IID3968 - "__ movl(Address(rcx, rdx, (Address::ScaleFactor)0, -0x9431846), 16777216);", // IID3969 - "__ movl(Address(rdx, +0x7189dece), 16777216);", // IID3970 - "__ movl(Address(rbx, r8, (Address::ScaleFactor)0, +0x3b379802), 16777216);", // IID3971 - "__ movl(Address(r8, r9, (Address::ScaleFactor)0, -0x1f2f3803), 16777216);", // IID3972 - "__ movl(Address(r9, r10, (Address::ScaleFactor)2, -0x65b315ab), 16777216);", // IID3973 - "__ movl(Address(r10, r11, (Address::ScaleFactor)3, -0x2183ab0c), 16777216);", // IID3974 - "__ movl(Address(r11, -0x68cf4715), 16777216);", // IID3975 - "__ movl(Address(r12, r13, (Address::ScaleFactor)2, +0x3c41fe72), 16777216);", // IID3976 - "__ movl(Address(r13, r14, (Address::ScaleFactor)2, +0x2dc9ad4d), 16777216);", // IID3977 - "__ movl(Address(r14, r15, (Address::ScaleFactor)2, +0x468b4cd5), 16777216);", // IID3978 - "__ movl(Address(r15, r16, (Address::ScaleFactor)2, -0x3dc3f901), 16777216);", // IID3979 - "__ movl(Address(r16, r17, (Address::ScaleFactor)3, +0x9513ffe), 16777216);", // IID3980 - "__ movl(Address(r17, +0x3968de3e), 16777216);", // IID3981 - "__ movl(Address(r18, -0x6686fc5e), 16777216);", // IID3982 - "__ movl(Address(r19, +0x10d0a4a3), 16777216);", // IID3983 - "__ movl(Address(r20, r21, (Address::ScaleFactor)2, +0x49c60c14), 16777216);", // IID3984 - "__ movl(Address(r21, +0x482205aa), 16777216);", // IID3985 - "__ movl(Address(r22, r23, (Address::ScaleFactor)1, -0x76105a9d), 16777216);", // IID3986 - "__ movl(Address(r23, r24, (Address::ScaleFactor)3, +0x680ca26a), 16777216);", // IID3987 - "__ movl(Address(r24, r25, (Address::ScaleFactor)0, +0x21581a48), 16777216);", // IID3988 - "__ movl(Address(r25, r26, (Address::ScaleFactor)1, -0x222ec354), 16777216);", // IID3989 - "__ movl(Address(r26, r27, (Address::ScaleFactor)1, +0x7504312e), 16777216);", // IID3990 - "__ movl(Address(r27, r28, (Address::ScaleFactor)0, +0x3f404aea), 16777216);", // IID3991 - "__ movl(Address(r28, r29, (Address::ScaleFactor)2, -0x6674e948), 16777216);", // IID3992 - "__ movl(Address(r29, r30, (Address::ScaleFactor)2, -0x576b8f75), 16777216);", // IID3993 - "__ movl(Address(r30, r31, (Address::ScaleFactor)3, +0x3aca9dc), 16777216);", // IID3994 - "__ movl(Address(r31, rcx, (Address::ScaleFactor)1, +0xf4a215), 16777216);", // IID3995 - "__ movl(Address(rcx, rdx, (Address::ScaleFactor)3, +0x58c64bd4), 268435456);", // IID3996 - "__ movl(Address(rdx, rbx, (Address::ScaleFactor)1, +0x4ea00d6f), 268435456);", // IID3997 - "__ movl(Address(rbx, r8, (Address::ScaleFactor)1, -0x6fd98e5d), 268435456);", // IID3998 - "__ movl(Address(r8, r9, (Address::ScaleFactor)3, +0x6f0c9612), 268435456);", // IID3999 - "__ movl(Address(r9, r10, (Address::ScaleFactor)1, -0x6bd1d672), 268435456);", // IID4000 - "__ movl(Address(r10, -0x139ed275), 268435456);", // IID4001 - "__ movl(Address(r11, r12, (Address::ScaleFactor)3, +0x3b5bafce), 268435456);", // IID4002 - "__ movl(Address(r12, r13, (Address::ScaleFactor)0, -0x5bb1372d), 268435456);", // IID4003 - "__ movl(Address(r13, +0x4af0cca8), 268435456);", // IID4004 - "__ movl(Address(r14, r15, (Address::ScaleFactor)2, +0x3fcb2d63), 268435456);", // IID4005 - "__ movl(Address(r15, r16, (Address::ScaleFactor)2, -0x2dbb23b9), 268435456);", // IID4006 - "__ movl(Address(r16, r17, (Address::ScaleFactor)1, -0x1b3f4121), 268435456);", // IID4007 - "__ movl(Address(r17, r18, (Address::ScaleFactor)2, -0x377cf10b), 268435456);", // IID4008 - "__ movl(Address(r18, r19, (Address::ScaleFactor)0, -0x9f95042), 268435456);", // IID4009 - "__ movl(Address(r19, r20, (Address::ScaleFactor)2, +0x1887a0b1), 268435456);", // IID4010 - "__ movl(Address(r20, r21, (Address::ScaleFactor)3, -0x3555d524), 268435456);", // IID4011 - "__ movl(Address(r21, -0x56c6b16d), 268435456);", // IID4012 - "__ movl(Address(r22, r23, (Address::ScaleFactor)1, -0x54eae37c), 268435456);", // IID4013 - "__ movl(Address(r23, -0x74129e91), 268435456);", // IID4014 - "__ movl(Address(r24, r25, (Address::ScaleFactor)1, +0x1a05e1b1), 268435456);", // IID4015 - "__ movl(Address(r25, -0x66abf015), 268435456);", // IID4016 - "__ movl(Address(r26, r27, (Address::ScaleFactor)3, -0x610553a6), 268435456);", // IID4017 - "__ movl(Address(r27, r28, (Address::ScaleFactor)3, +0x538ae9ba), 268435456);", // IID4018 - "__ movl(Address(r28, r29, (Address::ScaleFactor)3, +0x1657d2ef), 268435456);", // IID4019 - "__ movl(Address(r29, -0x56c84c5e), 268435456);", // IID4020 - "__ movl(Address(r30, r31, (Address::ScaleFactor)1, -0x69e48f92), 268435456);", // IID4021 - "__ movl(Address(r31, -0x48679829), 268435456);", // IID4022 -#endif // _LP64 - "__ testb(Address(rcx, rdx, (Address::ScaleFactor)3, +0x79865f6b), 1);", // IID4023 - "__ testb(Address(rdx, rbx, (Address::ScaleFactor)1, +0x7d3a6118), 1);", // IID4024 -#ifdef _LP64 - "__ testb(Address(rbx, r8, (Address::ScaleFactor)3, -0x5d4035bf), 1);", // IID4025 - "__ testb(Address(r8, r9, (Address::ScaleFactor)3, +0x2b93a3a4), 1);", // IID4026 - "__ testb(Address(r9, +0x71d0ef5b), 1);", // IID4027 - "__ testb(Address(r10, -0x58f4a4f), 1);", // IID4028 - "__ testb(Address(r11, r12, (Address::ScaleFactor)3, -0x7f36b315), 1);", // IID4029 - "__ testb(Address(r12, -0x4d72ac46), 1);", // IID4030 - "__ testb(Address(r13, r14, (Address::ScaleFactor)2, +0x243b33ff), 1);", // IID4031 - "__ testb(Address(r14, r15, (Address::ScaleFactor)0, +0x3f49c7c2), 1);", // IID4032 - "__ testb(Address(r15, r16, (Address::ScaleFactor)3, +0x60405b0c), 1);", // IID4033 - "__ testb(Address(r16, -0x522fbbc7), 1);", // IID4034 - "__ testb(Address(r17, r18, (Address::ScaleFactor)1, +0x466fb3b1), 1);", // IID4035 - "__ testb(Address(r18, r19, (Address::ScaleFactor)2, +0x2ccb9dd6), 1);", // IID4036 - "__ testb(Address(r19, r20, (Address::ScaleFactor)3, -0x6ce0480c), 1);", // IID4037 - "__ testb(Address(r20, r21, (Address::ScaleFactor)3, +0xcd23e49), 1);", // IID4038 - "__ testb(Address(r21, r22, (Address::ScaleFactor)2, +0x377d4600), 1);", // IID4039 - "__ testb(Address(r22, r23, (Address::ScaleFactor)3, -0x5cc2ec14), 1);", // IID4040 - "__ testb(Address(r23, r24, (Address::ScaleFactor)3, +0x28ba4d7d), 1);", // IID4041 - "__ testb(Address(r24, r25, (Address::ScaleFactor)0, -0x4e7927f3), 1);", // IID4042 - "__ testb(Address(r25, r26, (Address::ScaleFactor)3, +0xd510e2c), 1);", // IID4043 - "__ testb(Address(r26, r27, (Address::ScaleFactor)3, -0x1bdd2aee), 1);", // IID4044 - "__ testb(Address(r27, r28, (Address::ScaleFactor)1, +0x47d73a15), 1);", // IID4045 - "__ testb(Address(r28, r29, (Address::ScaleFactor)3, -0x55d1a6d6), 1);", // IID4046 - "__ testb(Address(r29, r30, (Address::ScaleFactor)2, +0x75f91f8d), 1);", // IID4047 - "__ testb(Address(r30, r31, (Address::ScaleFactor)3, +0x54733baf), 1);", // IID4048 - "__ testb(Address(r31, rcx, (Address::ScaleFactor)1, -0x66c5d541), 1);", // IID4049 - "__ testb(Address(rcx, rdx, (Address::ScaleFactor)2, -0x2c8fbe14), 4);", // IID4050 - "__ testb(Address(rdx, +0x3e5f2514), 4);", // IID4051 - "__ testb(Address(rbx, r8, (Address::ScaleFactor)1, +0x7a8d5da3), 4);", // IID4052 - "__ testb(Address(r8, r9, (Address::ScaleFactor)1, +0x2b122be9), 4);", // IID4053 - "__ testb(Address(r9, r10, (Address::ScaleFactor)1, -0x2a80652b), 4);", // IID4054 - "__ testb(Address(r10, r11, (Address::ScaleFactor)0, +0x2a9feadf), 4);", // IID4055 - "__ testb(Address(r11, -0x37df25fa), 4);", // IID4056 - "__ testb(Address(r12, r13, (Address::ScaleFactor)2, +0x7e95de9a), 4);", // IID4057 - "__ testb(Address(r13, -0x157a2dcf), 4);", // IID4058 - "__ testb(Address(r14, r15, (Address::ScaleFactor)0, -0x61d3b36c), 4);", // IID4059 - "__ testb(Address(r15, r16, (Address::ScaleFactor)2, +0xa36d104), 4);", // IID4060 - "__ testb(Address(r16, -0x258032d6), 4);", // IID4061 - "__ testb(Address(r17, r18, (Address::ScaleFactor)3, +0x339dcd88), 4);", // IID4062 - "__ testb(Address(r18, r19, (Address::ScaleFactor)3, -0x48c372c9), 4);", // IID4063 - "__ testb(Address(r19, r20, (Address::ScaleFactor)3, +0x23089c15), 4);", // IID4064 - "__ testb(Address(r20, r21, (Address::ScaleFactor)2, +0x2cb814ac), 4);", // IID4065 - "__ testb(Address(r21, r22, (Address::ScaleFactor)3, +0x180bfd3b), 4);", // IID4066 - "__ testb(Address(r22, r23, (Address::ScaleFactor)1, -0x14581ba0), 4);", // IID4067 - "__ testb(Address(r23, r24, (Address::ScaleFactor)1, -0x456cb3e6), 4);", // IID4068 - "__ testb(Address(r24, r25, (Address::ScaleFactor)3, -0x51f9bf33), 4);", // IID4069 - "__ testb(Address(r25, +0x3a24d36e), 4);", // IID4070 - "__ testb(Address(r26, +0x2396f515), 4);", // IID4071 - "__ testb(Address(r27, -0x6b44bc6b), 4);", // IID4072 - "__ testb(Address(r28, r29, (Address::ScaleFactor)2, -0x56c3ed2e), 4);", // IID4073 - "__ testb(Address(r29, r30, (Address::ScaleFactor)2, +0x564d0370), 4);", // IID4074 - "__ testb(Address(r30, r31, (Address::ScaleFactor)1, +0x58dc183), 4);", // IID4075 - "__ testb(Address(r31, rcx, (Address::ScaleFactor)0, +0x9e37dd3), 4);", // IID4076 - "__ testb(Address(rcx, rdx, (Address::ScaleFactor)3, -0x5f8d34f3), 16);", // IID4077 - "__ testb(Address(rdx, rbx, (Address::ScaleFactor)0, +0x74032377), 16);", // IID4078 - "__ testb(Address(rbx, r8, (Address::ScaleFactor)0, -0x2112ceca), 16);", // IID4079 - "__ testb(Address(r8, r9, (Address::ScaleFactor)1, -0x16622576), 16);", // IID4080 - "__ testb(Address(r9, r10, (Address::ScaleFactor)2, +0x6f769cc4), 16);", // IID4081 - "__ testb(Address(r10, r11, (Address::ScaleFactor)0, -0x147d18f5), 16);", // IID4082 - "__ testb(Address(r11, r12, (Address::ScaleFactor)2, +0x601039fb), 16);", // IID4083 - "__ testb(Address(r12, -0x1adc4166), 16);", // IID4084 - "__ testb(Address(r13, r14, (Address::ScaleFactor)3, +0x323963ee), 16);", // IID4085 - "__ testb(Address(r14, -0x13e315f), 16);", // IID4086 - "__ testb(Address(r15, r16, (Address::ScaleFactor)2, +0xff97258), 16);", // IID4087 - "__ testb(Address(r16, r17, (Address::ScaleFactor)0, +0x7ff6d4e1), 16);", // IID4088 - "__ testb(Address(r17, r18, (Address::ScaleFactor)3, +0x2b93dcf), 16);", // IID4089 - "__ testb(Address(r18, r19, (Address::ScaleFactor)1, +0x358d0296), 16);", // IID4090 - "__ testb(Address(r19, r20, (Address::ScaleFactor)1, +0x695226c6), 16);", // IID4091 - "__ testb(Address(r20, r21, (Address::ScaleFactor)2, -0x6f7cecea), 16);", // IID4092 - "__ testb(Address(r21, r22, (Address::ScaleFactor)0, -0x4f364dbd), 16);", // IID4093 - "__ testb(Address(r22, r23, (Address::ScaleFactor)3, -0xf7bdf01), 16);", // IID4094 - "__ testb(Address(r23, r24, (Address::ScaleFactor)3, +0x4f20b611), 16);", // IID4095 - "__ testb(Address(r24, r25, (Address::ScaleFactor)0, -0x5ff20ae6), 16);", // IID4096 - "__ testb(Address(r25, r26, (Address::ScaleFactor)3, +0x3b32558b), 16);", // IID4097 - "__ testb(Address(r26, r27, (Address::ScaleFactor)1, +0x44cabb62), 16);", // IID4098 - "__ testb(Address(r27, +0x2a026bf5), 16);", // IID4099 - "__ testb(Address(r28, r29, (Address::ScaleFactor)3, -0x261b0c5c), 16);", // IID4100 - "__ testb(Address(r29, r30, (Address::ScaleFactor)2, -0x78218920), 16);", // IID4101 - "__ testb(Address(r30, -0x28d32bf0), 16);", // IID4102 - "__ testb(Address(r31, rcx, (Address::ScaleFactor)0, -0x24e28a92), 16);", // IID4103 - "__ testb(Address(rcx, +0x4b3eacfb), 64);", // IID4104 - "__ testb(Address(rdx, rbx, (Address::ScaleFactor)2, -0x19cbae3f), 64);", // IID4105 - "__ testb(Address(rbx, r8, (Address::ScaleFactor)0, -0x5cc9fae5), 64);", // IID4106 - "__ testb(Address(r8, r9, (Address::ScaleFactor)0, +0x474df992), 64);", // IID4107 - "__ testb(Address(r9, r10, (Address::ScaleFactor)2, -0x7d165e6a), 64);", // IID4108 - "__ testb(Address(r10, r11, (Address::ScaleFactor)0, -0x6a8497be), 64);", // IID4109 - "__ testb(Address(r11, +0x706a8ec), 64);", // IID4110 - "__ testb(Address(r12, r13, (Address::ScaleFactor)3, +0x2f4c1258), 64);", // IID4111 - "__ testb(Address(r13, +0x411f6790), 64);", // IID4112 - "__ testb(Address(r14, r15, (Address::ScaleFactor)1, -0x15b7a85b), 64);", // IID4113 - "__ testb(Address(r15, r16, (Address::ScaleFactor)0, +0x52074c70), 64);", // IID4114 - "__ testb(Address(r16, +0x60c75ca0), 64);", // IID4115 - "__ testb(Address(r17, r18, (Address::ScaleFactor)3, -0xdf525b1), 64);", // IID4116 - "__ testb(Address(r18, r19, (Address::ScaleFactor)0, -0x7ec262dc), 64);", // IID4117 - "__ testb(Address(r19, r20, (Address::ScaleFactor)0, -0x1f779ea5), 64);", // IID4118 - "__ testb(Address(r20, r21, (Address::ScaleFactor)1, -0x7a48b247), 64);", // IID4119 - "__ testb(Address(r21, r22, (Address::ScaleFactor)0, -0x72e43dca), 64);", // IID4120 - "__ testb(Address(r22, r23, (Address::ScaleFactor)1, -0x7b41be3a), 64);", // IID4121 - "__ testb(Address(r23, r24, (Address::ScaleFactor)1, +0x54f9a8c2), 64);", // IID4122 - "__ testb(Address(r24, r25, (Address::ScaleFactor)0, +0x4c454144), 64);", // IID4123 - "__ testb(Address(r25, r26, (Address::ScaleFactor)2, -0x5698e858), 64);", // IID4124 - "__ testb(Address(r26, r27, (Address::ScaleFactor)1, -0x538e7645), 64);", // IID4125 - "__ testb(Address(r27, r28, (Address::ScaleFactor)2, -0x13c85f20), 64);", // IID4126 - "__ testb(Address(r28, r29, (Address::ScaleFactor)1, +0x1f49443e), 64);", // IID4127 - "__ testb(Address(r29, r30, (Address::ScaleFactor)1, +0x664f1b6b), 64);", // IID4128 - "__ testb(Address(r30, r31, (Address::ScaleFactor)0, +0x5897e51f), 64);", // IID4129 - "__ testb(Address(r31, rcx, (Address::ScaleFactor)1, +0x130b1cb7), 64);", // IID4130 -#endif // _LP64 - "__ testl(Address(rcx, -0x303dea2e), 65536);", // IID4131 - "__ testl(Address(rdx, rbx, (Address::ScaleFactor)3, +0x4d5d64b9), 65536);", // IID4132 -#ifdef _LP64 - "__ testl(Address(rbx, r8, (Address::ScaleFactor)2, -0x1408e2c5), 65536);", // IID4133 - "__ testl(Address(r8, r9, (Address::ScaleFactor)2, -0x705efb5d), 65536);", // IID4134 - "__ testl(Address(r9, r10, (Address::ScaleFactor)1, -0x26cd0fbb), 65536);", // IID4135 - "__ testl(Address(r10, r11, (Address::ScaleFactor)2, +0x627b18ba), 65536);", // IID4136 - "__ testl(Address(r11, r12, (Address::ScaleFactor)3, -0x12214063), 65536);", // IID4137 - "__ testl(Address(r12, r13, (Address::ScaleFactor)2, +0xea6f6f6), 65536);", // IID4138 - "__ testl(Address(r13, +0x404e4681), 65536);", // IID4139 - "__ testl(Address(r14, r15, (Address::ScaleFactor)0, -0x60986f79), 65536);", // IID4140 - "__ testl(Address(r15, r16, (Address::ScaleFactor)3, -0x421af46a), 65536);", // IID4141 - "__ testl(Address(r16, r17, (Address::ScaleFactor)0, +0x322f4421), 65536);", // IID4142 - "__ testl(Address(r17, r18, (Address::ScaleFactor)0, -0x26394dab), 65536);", // IID4143 - "__ testl(Address(r18, +0x7c314c93), 65536);", // IID4144 - "__ testl(Address(r19, -0x5bb508a5), 65536);", // IID4145 - "__ testl(Address(r20, -0xf6d9a46), 65536);", // IID4146 - "__ testl(Address(r21, r22, (Address::ScaleFactor)2, -0x11bbeece), 65536);", // IID4147 - "__ testl(Address(r22, -0x5101ad85), 65536);", // IID4148 - "__ testl(Address(r23, r24, (Address::ScaleFactor)0, -0x497ba2bf), 65536);", // IID4149 - "__ testl(Address(r24, r25, (Address::ScaleFactor)2, -0x2afeaa29), 65536);", // IID4150 - "__ testl(Address(r25, r26, (Address::ScaleFactor)2, -0x57368f46), 65536);", // IID4151 - "__ testl(Address(r26, r27, (Address::ScaleFactor)1, -0x49c588b7), 65536);", // IID4152 - "__ testl(Address(r27, r28, (Address::ScaleFactor)0, -0x6cb2ee26), 65536);", // IID4153 - "__ testl(Address(r28, r29, (Address::ScaleFactor)2, +0x5654eac), 65536);", // IID4154 - "__ testl(Address(r29, r30, (Address::ScaleFactor)3, +0x65fa2151), 65536);", // IID4155 - "__ testl(Address(r30, r31, (Address::ScaleFactor)2, -0x24141165), 65536);", // IID4156 - "__ testl(Address(r31, -0x4e4387ef), 65536);", // IID4157 - "__ testl(Address(rcx, -0x5e0afd80), 262144);", // IID4158 - "__ testl(Address(rdx, rbx, (Address::ScaleFactor)1, -0x605cbebf), 262144);", // IID4159 - "__ testl(Address(rbx, +0x6dec4797), 262144);", // IID4160 - "__ testl(Address(r8, r9, (Address::ScaleFactor)0, -0x2546631c), 262144);", // IID4161 - "__ testl(Address(r9, r10, (Address::ScaleFactor)0, -0x186b4d98), 262144);", // IID4162 - "__ testl(Address(r10, r11, (Address::ScaleFactor)3, +0x604edaad), 262144);", // IID4163 - "__ testl(Address(r11, r12, (Address::ScaleFactor)0, +0x530dbca2), 262144);", // IID4164 - "__ testl(Address(r12, -0x53840662), 262144);", // IID4165 - "__ testl(Address(r13, +0x5b5ba3ca), 262144);", // IID4166 - "__ testl(Address(r14, r15, (Address::ScaleFactor)3, -0x59ef95bd), 262144);", // IID4167 - "__ testl(Address(r15, r16, (Address::ScaleFactor)0, -0x1e60dfdb), 262144);", // IID4168 - "__ testl(Address(r16, r17, (Address::ScaleFactor)0, -0x4988041b), 262144);", // IID4169 - "__ testl(Address(r17, r18, (Address::ScaleFactor)2, +0x2b0036c9), 262144);", // IID4170 - "__ testl(Address(r18, r19, (Address::ScaleFactor)1, -0x698970d9), 262144);", // IID4171 - "__ testl(Address(r19, r20, (Address::ScaleFactor)2, -0xc8dc321), 262144);", // IID4172 - "__ testl(Address(r20, r21, (Address::ScaleFactor)1, -0x129f16e5), 262144);", // IID4173 - "__ testl(Address(r21, r22, (Address::ScaleFactor)2, +0x498e3d87), 262144);", // IID4174 - "__ testl(Address(r22, r23, (Address::ScaleFactor)2, -0x26f88b12), 262144);", // IID4175 - "__ testl(Address(r23, r24, (Address::ScaleFactor)0, -0x286b68df), 262144);", // IID4176 - "__ testl(Address(r24, -0x20b945d3), 262144);", // IID4177 - "__ testl(Address(r25, r26, (Address::ScaleFactor)1, +0x68c21611), 262144);", // IID4178 - "__ testl(Address(r26, r27, (Address::ScaleFactor)3, -0x557e1432), 262144);", // IID4179 - "__ testl(Address(r27, r28, (Address::ScaleFactor)2, +0x4d4afd02), 262144);", // IID4180 - "__ testl(Address(r28, r29, (Address::ScaleFactor)2, +0x3c8ae10), 262144);", // IID4181 - "__ testl(Address(r29, +0x62bcef3a), 262144);", // IID4182 - "__ testl(Address(r30, r31, (Address::ScaleFactor)0, -0x5a2b915f), 262144);", // IID4183 - "__ testl(Address(r31, rcx, (Address::ScaleFactor)0, +0x58d228cb), 262144);", // IID4184 - "__ testl(Address(rcx, rdx, (Address::ScaleFactor)1, -0x1f4a5462), 1048576);", // IID4185 - "__ testl(Address(rdx, rbx, (Address::ScaleFactor)2, +0x105de9bb), 1048576);", // IID4186 - "__ testl(Address(rbx, r8, (Address::ScaleFactor)2, -0x4a403f7d), 1048576);", // IID4187 - "__ testl(Address(r8, r9, (Address::ScaleFactor)3, -0x31278864), 1048576);", // IID4188 - "__ testl(Address(r9, -0x5bdd5bbf), 1048576);", // IID4189 - "__ testl(Address(r10, r11, (Address::ScaleFactor)0, +0x10fd7132), 1048576);", // IID4190 - "__ testl(Address(r11, r12, (Address::ScaleFactor)1, +0x1ed697c5), 1048576);", // IID4191 - "__ testl(Address(r12, r13, (Address::ScaleFactor)0, +0x67c8547b), 1048576);", // IID4192 - "__ testl(Address(r13, r14, (Address::ScaleFactor)0, +0x4a4001ab), 1048576);", // IID4193 - "__ testl(Address(r14, r15, (Address::ScaleFactor)1, +0x29a1864a), 1048576);", // IID4194 - "__ testl(Address(r15, r16, (Address::ScaleFactor)0, -0x7315c92a), 1048576);", // IID4195 - "__ testl(Address(r16, +0x1d9bbdb4), 1048576);", // IID4196 - "__ testl(Address(r17, r18, (Address::ScaleFactor)3, -0x44a78a53), 1048576);", // IID4197 - "__ testl(Address(r18, r19, (Address::ScaleFactor)2, -0x3829c84d), 1048576);", // IID4198 - "__ testl(Address(r19, r20, (Address::ScaleFactor)2, +0x5b2868f4), 1048576);", // IID4199 - "__ testl(Address(r20, r21, (Address::ScaleFactor)0, +0x44c5f5b), 1048576);", // IID4200 - "__ testl(Address(r21, r22, (Address::ScaleFactor)1, +0x6c417f70), 1048576);", // IID4201 - "__ testl(Address(r22, r23, (Address::ScaleFactor)0, -0x1ac600a0), 1048576);", // IID4202 - "__ testl(Address(r23, r24, (Address::ScaleFactor)3, +0x6a9d4dac), 1048576);", // IID4203 - "__ testl(Address(r24, r25, (Address::ScaleFactor)0, +0x19b8b6e0), 1048576);", // IID4204 - "__ testl(Address(r25, +0x2633c1c1), 1048576);", // IID4205 - "__ testl(Address(r26, r27, (Address::ScaleFactor)3, +0x5b785687), 1048576);", // IID4206 - "__ testl(Address(r27, -0x777166b1), 1048576);", // IID4207 - "__ testl(Address(r28, r29, (Address::ScaleFactor)3, -0x499e5dd7), 1048576);", // IID4208 - "__ testl(Address(r29, r30, (Address::ScaleFactor)1, -0x280ee3af), 1048576);", // IID4209 - "__ testl(Address(r30, r31, (Address::ScaleFactor)3, -0x3bb9124e), 1048576);", // IID4210 - "__ testl(Address(r31, rcx, (Address::ScaleFactor)2, -0x2bb5206b), 1048576);", // IID4211 - "__ testl(Address(rcx, rdx, (Address::ScaleFactor)3, +0x152aecae), 4194304);", // IID4212 - "__ testl(Address(rdx, rbx, (Address::ScaleFactor)2, -0x5ea1f500), 4194304);", // IID4213 - "__ testl(Address(rbx, r8, (Address::ScaleFactor)2, -0x76b10d30), 4194304);", // IID4214 - "__ testl(Address(r8, r9, (Address::ScaleFactor)3, -0x699a86f), 4194304);", // IID4215 - "__ testl(Address(r9, r10, (Address::ScaleFactor)2, +0x10dbb8b4), 4194304);", // IID4216 - "__ testl(Address(r10, r11, (Address::ScaleFactor)3, +0x3db0aa91), 4194304);", // IID4217 - "__ testl(Address(r11, r12, (Address::ScaleFactor)3, +0x21ffff17), 4194304);", // IID4218 - "__ testl(Address(r12, +0x1f2564ed), 4194304);", // IID4219 - "__ testl(Address(r13, r14, (Address::ScaleFactor)3, +0x7913f1e4), 4194304);", // IID4220 - "__ testl(Address(r14, -0x59011b8), 4194304);", // IID4221 - "__ testl(Address(r15, r16, (Address::ScaleFactor)0, -0x6579b64b), 4194304);", // IID4222 - "__ testl(Address(r16, r17, (Address::ScaleFactor)3, +0x169d7f24), 4194304);", // IID4223 - "__ testl(Address(r17, r18, (Address::ScaleFactor)3, -0x2d9112c9), 4194304);", // IID4224 - "__ testl(Address(r18, +0x25763bca), 4194304);", // IID4225 - "__ testl(Address(r19, -0x5cbd3bf6), 4194304);", // IID4226 - "__ testl(Address(r20, r21, (Address::ScaleFactor)0, -0x3d2bbebe), 4194304);", // IID4227 - "__ testl(Address(r21, r22, (Address::ScaleFactor)2, -0x14693943), 4194304);", // IID4228 - "__ testl(Address(r22, -0x209d357a), 4194304);", // IID4229 - "__ testl(Address(r23, r24, (Address::ScaleFactor)1, -0x2c33362a), 4194304);", // IID4230 - "__ testl(Address(r24, -0x1452bad2), 4194304);", // IID4231 - "__ testl(Address(r25, r26, (Address::ScaleFactor)3, +0x5dd0f531), 4194304);", // IID4232 - "__ testl(Address(r26, +0x20c65761), 4194304);", // IID4233 - "__ testl(Address(r27, -0x4c5b345b), 4194304);", // IID4234 - "__ testl(Address(r28, r29, (Address::ScaleFactor)3, +0x596eedcd), 4194304);", // IID4235 - "__ testl(Address(r29, r30, (Address::ScaleFactor)2, +0x4507ca), 4194304);", // IID4236 - "__ testl(Address(r30, -0x2b1b252b), 4194304);", // IID4237 - "__ testl(Address(r31, rcx, (Address::ScaleFactor)2, -0x57bfadd5), 4194304);", // IID4238 - "__ testl(Address(rcx, -0x2cbb008f), 16777216);", // IID4239 - "__ testl(Address(rdx, +0x547272b2), 16777216);", // IID4240 - "__ testl(Address(rbx, r8, (Address::ScaleFactor)1, -0x72846e9b), 16777216);", // IID4241 - "__ testl(Address(r8, r9, (Address::ScaleFactor)2, -0x79cdf2d8), 16777216);", // IID4242 - "__ testl(Address(r9, r10, (Address::ScaleFactor)1, +0xe672f48), 16777216);", // IID4243 - "__ testl(Address(r10, r11, (Address::ScaleFactor)1, -0x668b0fa3), 16777216);", // IID4244 - "__ testl(Address(r11, r12, (Address::ScaleFactor)2, -0x2f3a3d86), 16777216);", // IID4245 - "__ testl(Address(r12, r13, (Address::ScaleFactor)1, +0x42ac32e5), 16777216);", // IID4246 - "__ testl(Address(r13, r14, (Address::ScaleFactor)3, +0x6e8c62f2), 16777216);", // IID4247 - "__ testl(Address(r14, r15, (Address::ScaleFactor)0, -0x17b22e2a), 16777216);", // IID4248 - "__ testl(Address(r15, r16, (Address::ScaleFactor)2, +0x77bbdbec), 16777216);", // IID4249 - "__ testl(Address(r16, r17, (Address::ScaleFactor)3, -0x4a56f210), 16777216);", // IID4250 - "__ testl(Address(r17, r18, (Address::ScaleFactor)3, -0x11a61ecd), 16777216);", // IID4251 - "__ testl(Address(r18, r19, (Address::ScaleFactor)3, +0x63d76b55), 16777216);", // IID4252 - "__ testl(Address(r19, r20, (Address::ScaleFactor)3, -0x1d2fd0cc), 16777216);", // IID4253 - "__ testl(Address(r20, r21, (Address::ScaleFactor)2, -0x4cea4591), 16777216);", // IID4254 - "__ testl(Address(r21, +0x613b2474), 16777216);", // IID4255 - "__ testl(Address(r22, -0x5d157ec3), 16777216);", // IID4256 - "__ testl(Address(r23, -0x66116286), 16777216);", // IID4257 - "__ testl(Address(r24, r25, (Address::ScaleFactor)3, +0xb5f591a), 16777216);", // IID4258 - "__ testl(Address(r25, r26, (Address::ScaleFactor)3, +0x4c322dd0), 16777216);", // IID4259 - "__ testl(Address(r26, r27, (Address::ScaleFactor)0, +0x42f92df1), 16777216);", // IID4260 - "__ testl(Address(r27, r28, (Address::ScaleFactor)3, -0x71d4a043), 16777216);", // IID4261 - "__ testl(Address(r28, r29, (Address::ScaleFactor)0, -0x6f96b951), 16777216);", // IID4262 - "__ testl(Address(r29, r30, (Address::ScaleFactor)1, +0x37b5836), 16777216);", // IID4263 - "__ testl(Address(r30, r31, (Address::ScaleFactor)1, -0xa6ae9), 16777216);", // IID4264 - "__ testl(Address(r31, rcx, (Address::ScaleFactor)0, +0x50266838), 16777216);", // IID4265 - "__ testl(Address(rcx, rdx, (Address::ScaleFactor)0, -0x1d1d39d8), 67108864);", // IID4266 - "__ testl(Address(rdx, rbx, (Address::ScaleFactor)0, +0x169009d), 67108864);", // IID4267 - "__ testl(Address(rbx, +0x2f89dae8), 67108864);", // IID4268 - "__ testl(Address(r8, r9, (Address::ScaleFactor)0, +0x6ed5934f), 67108864);", // IID4269 - "__ testl(Address(r9, r10, (Address::ScaleFactor)0, -0x5491fcd1), 67108864);", // IID4270 - "__ testl(Address(r10, r11, (Address::ScaleFactor)2, -0x5f8d28e), 67108864);", // IID4271 - "__ testl(Address(r11, r12, (Address::ScaleFactor)2, -0x17583193), 67108864);", // IID4272 - "__ testl(Address(r12, r13, (Address::ScaleFactor)3, -0x8bcf9a), 67108864);", // IID4273 - "__ testl(Address(r13, r14, (Address::ScaleFactor)0, +0x5cb82028), 67108864);", // IID4274 - "__ testl(Address(r14, r15, (Address::ScaleFactor)3, -0x7a6b89e5), 67108864);", // IID4275 - "__ testl(Address(r15, r16, (Address::ScaleFactor)1, -0x1c7f33f3), 67108864);", // IID4276 - "__ testl(Address(r16, r17, (Address::ScaleFactor)1, -0x13088690), 67108864);", // IID4277 - "__ testl(Address(r17, r18, (Address::ScaleFactor)2, +0xb59d5ad), 67108864);", // IID4278 - "__ testl(Address(r18, r19, (Address::ScaleFactor)3, +0xfd768e), 67108864);", // IID4279 - "__ testl(Address(r19, r20, (Address::ScaleFactor)2, -0x232fb41b), 67108864);", // IID4280 - "__ testl(Address(r20, -0x7fe7505f), 67108864);", // IID4281 - "__ testl(Address(r21, r22, (Address::ScaleFactor)3, +0x4fd7406), 67108864);", // IID4282 - "__ testl(Address(r22, r23, (Address::ScaleFactor)0, -0x1ce52192), 67108864);", // IID4283 - "__ testl(Address(r23, r24, (Address::ScaleFactor)0, -0x44581f), 67108864);", // IID4284 - "__ testl(Address(r24, r25, (Address::ScaleFactor)1, +0x3099576a), 67108864);", // IID4285 - "__ testl(Address(r25, r26, (Address::ScaleFactor)1, -0x1a33a40b), 67108864);", // IID4286 - "__ testl(Address(r26, r27, (Address::ScaleFactor)3, +0x30e9d14), 67108864);", // IID4287 - "__ testl(Address(r27, r28, (Address::ScaleFactor)2, +0x7d5be2b9), 67108864);", // IID4288 - "__ testl(Address(r28, r29, (Address::ScaleFactor)3, +0x18960b0a), 67108864);", // IID4289 - "__ testl(Address(r29, r30, (Address::ScaleFactor)1, -0x567f6dfa), 67108864);", // IID4290 - "__ testl(Address(r30, r31, (Address::ScaleFactor)3, -0x2c3eab29), 67108864);", // IID4291 - "__ testl(Address(r31, rcx, (Address::ScaleFactor)2, +0x35ecf5e8), 67108864);", // IID4292 - "__ testl(Address(rcx, rdx, (Address::ScaleFactor)0, +0x47537b3a), 268435456);", // IID4293 - "__ testl(Address(rdx, +0x3d0c11f0), 268435456);", // IID4294 - "__ testl(Address(rbx, r8, (Address::ScaleFactor)0, -0x2d356326), 268435456);", // IID4295 - "__ testl(Address(r8, r9, (Address::ScaleFactor)0, -0xbe25e08), 268435456);", // IID4296 - "__ testl(Address(r9, r10, (Address::ScaleFactor)1, +0x73da9f10), 268435456);", // IID4297 - "__ testl(Address(r10, r11, (Address::ScaleFactor)2, -0x62fd9f41), 268435456);", // IID4298 - "__ testl(Address(r11, r12, (Address::ScaleFactor)0, -0x14b89b74), 268435456);", // IID4299 - "__ testl(Address(r12, +0x31f02edd), 268435456);", // IID4300 - "__ testl(Address(r13, r14, (Address::ScaleFactor)0, -0xd057915), 268435456);", // IID4301 - "__ testl(Address(r14, r15, (Address::ScaleFactor)3, +0x2cc24865), 268435456);", // IID4302 - "__ testl(Address(r15, r16, (Address::ScaleFactor)3, +0xf16518a), 268435456);", // IID4303 - "__ testl(Address(r16, r17, (Address::ScaleFactor)0, -0x37af9801), 268435456);", // IID4304 - "__ testl(Address(r17, r18, (Address::ScaleFactor)1, +0x2639ba28), 268435456);", // IID4305 - "__ testl(Address(r18, r19, (Address::ScaleFactor)2, -0x37171505), 268435456);", // IID4306 - "__ testl(Address(r19, -0x64e4e17f), 268435456);", // IID4307 - "__ testl(Address(r20, r21, (Address::ScaleFactor)1, +0x4763885a), 268435456);", // IID4308 - "__ testl(Address(r21, r22, (Address::ScaleFactor)1, -0x78a08775), 268435456);", // IID4309 - "__ testl(Address(r22, r23, (Address::ScaleFactor)0, -0x5692f453), 268435456);", // IID4310 - "__ testl(Address(r23, r24, (Address::ScaleFactor)0, -0x6ca5288d), 268435456);", // IID4311 - "__ testl(Address(r24, -0xa8651e2), 268435456);", // IID4312 - "__ testl(Address(r25, +0x1775654c), 268435456);", // IID4313 - "__ testl(Address(r26, r27, (Address::ScaleFactor)2, -0x28a29118), 268435456);", // IID4314 - "__ testl(Address(r27, r28, (Address::ScaleFactor)3, -0x4b03c260), 268435456);", // IID4315 - "__ testl(Address(r28, -0x194dc52b), 268435456);", // IID4316 - "__ testl(Address(r29, -0x5cdc9082), 268435456);", // IID4317 - "__ testl(Address(r30, r31, (Address::ScaleFactor)3, +0x67911203), 268435456);", // IID4318 - "__ testl(Address(r31, +0x57a64e13), 268435456);", // IID4319 - "__ testl(Address(rcx, +0x92aa74c), 1073741824);", // IID4320 - "__ testl(Address(rdx, rbx, (Address::ScaleFactor)3, +0x76ff2680), 1073741824);", // IID4321 - "__ testl(Address(rbx, r8, (Address::ScaleFactor)1, -0x47eaed50), 1073741824);", // IID4322 - "__ testl(Address(r8, r9, (Address::ScaleFactor)0, +0x1ccba6b9), 1073741824);", // IID4323 - "__ testl(Address(r9, r10, (Address::ScaleFactor)0, +0x496ac9c3), 1073741824);", // IID4324 - "__ testl(Address(r10, r11, (Address::ScaleFactor)2, +0x7e7c4b3c), 1073741824);", // IID4325 - "__ testl(Address(r11, +0x68384d6e), 1073741824);", // IID4326 - "__ testl(Address(r12, r13, (Address::ScaleFactor)2, -0x6cf084b6), 1073741824);", // IID4327 - "__ testl(Address(r13, r14, (Address::ScaleFactor)2, +0x39c01466), 1073741824);", // IID4328 - "__ testl(Address(r14, r15, (Address::ScaleFactor)3, -0x7283cf5a), 1073741824);", // IID4329 - "__ testl(Address(r15, r16, (Address::ScaleFactor)0, +0x5d2bb8e), 1073741824);", // IID4330 - "__ testl(Address(r16, r17, (Address::ScaleFactor)1, -0x393961ae), 1073741824);", // IID4331 - "__ testl(Address(r17, r18, (Address::ScaleFactor)3, +0x2c0d0a66), 1073741824);", // IID4332 - "__ testl(Address(r18, +0x27c71be9), 1073741824);", // IID4333 - "__ testl(Address(r19, r20, (Address::ScaleFactor)2, -0x10461e36), 1073741824);", // IID4334 - "__ testl(Address(r20, r21, (Address::ScaleFactor)3, +0x759b2413), 1073741824);", // IID4335 - "__ testl(Address(r21, r22, (Address::ScaleFactor)3, +0x68b8aebe), 1073741824);", // IID4336 - "__ testl(Address(r22, r23, (Address::ScaleFactor)1, +0x7dd463ca), 1073741824);", // IID4337 - "__ testl(Address(r23, r24, (Address::ScaleFactor)1, +0x3fd91ada), 1073741824);", // IID4338 - "__ testl(Address(r24, r25, (Address::ScaleFactor)2, -0x7b6bbedb), 1073741824);", // IID4339 - "__ testl(Address(r25, r26, (Address::ScaleFactor)1, +0x1d4f844a), 1073741824);", // IID4340 - "__ testl(Address(r26, r27, (Address::ScaleFactor)1, -0x208a8f1a), 1073741824);", // IID4341 - "__ testl(Address(r27, r28, (Address::ScaleFactor)1, +0x366b673c), 1073741824);", // IID4342 - "__ testl(Address(r28, +0x4312db33), 1073741824);", // IID4343 - "__ testl(Address(r29, r30, (Address::ScaleFactor)2, -0x3a0605d9), 1073741824);", // IID4344 - "__ testl(Address(r30, +0x2c23c220), 1073741824);", // IID4345 - "__ testl(Address(r31, -0x385e7703), 1073741824);", // IID4346 -#endif // _LP64 - "__ cmpl_imm32(Address(rcx, -0x2396e261), 65536);", // IID4347 - "__ cmpl_imm32(Address(rdx, rbx, (Address::ScaleFactor)1, -0x2a4d7fb8), 65536);", // IID4348 -#ifdef _LP64 - "__ cmpl_imm32(Address(rbx, -0x3890aefa), 65536);", // IID4349 - "__ cmpl_imm32(Address(r8, -0x5cafbfa0), 65536);", // IID4350 - "__ cmpl_imm32(Address(r9, r10, (Address::ScaleFactor)0, +0x6cd108e7), 65536);", // IID4351 - "__ cmpl_imm32(Address(r10, r11, (Address::ScaleFactor)2, +0x7ac00cf3), 65536);", // IID4352 - "__ cmpl_imm32(Address(r11, r12, (Address::ScaleFactor)3, +0xf70e4de), 65536);", // IID4353 - "__ cmpl_imm32(Address(r12, +0x75570160), 65536);", // IID4354 - "__ cmpl_imm32(Address(r13, +0x698316c8), 65536);", // IID4355 - "__ cmpl_imm32(Address(r14, +0x62668e54), 65536);", // IID4356 - "__ cmpl_imm32(Address(r15, r16, (Address::ScaleFactor)1, +0x1fdd3efc), 65536);", // IID4357 - "__ cmpl_imm32(Address(r16, -0x178936dd), 65536);", // IID4358 - "__ cmpl_imm32(Address(r17, r18, (Address::ScaleFactor)3, +0x35a3875b), 65536);", // IID4359 - "__ cmpl_imm32(Address(r18, r19, (Address::ScaleFactor)0, +0x16aeb663), 65536);", // IID4360 - "__ cmpl_imm32(Address(r19, r20, (Address::ScaleFactor)0, +0x3974c55f), 65536);", // IID4361 - "__ cmpl_imm32(Address(r20, r21, (Address::ScaleFactor)3, -0x4ab45c90), 65536);", // IID4362 - "__ cmpl_imm32(Address(r21, r22, (Address::ScaleFactor)2, -0x1c9a630), 65536);", // IID4363 - "__ cmpl_imm32(Address(r22, +0x4a8bae5), 65536);", // IID4364 - "__ cmpl_imm32(Address(r23, r24, (Address::ScaleFactor)3, -0x261d1f81), 65536);", // IID4365 - "__ cmpl_imm32(Address(r24, +0x5fe7733b), 65536);", // IID4366 - "__ cmpl_imm32(Address(r25, r26, (Address::ScaleFactor)0, +0x2cf13efd), 65536);", // IID4367 - "__ cmpl_imm32(Address(r26, +0x15d0e490), 65536);", // IID4368 - "__ cmpl_imm32(Address(r27, +0x292ee949), 65536);", // IID4369 - "__ cmpl_imm32(Address(r28, r29, (Address::ScaleFactor)2, +0x5e37c3dd), 65536);", // IID4370 - "__ cmpl_imm32(Address(r29, r30, (Address::ScaleFactor)3, +0x2e23b830), 65536);", // IID4371 - "__ cmpl_imm32(Address(r30, r31, (Address::ScaleFactor)0, +0x7b82efa8), 65536);", // IID4372 - "__ cmpl_imm32(Address(r31, rcx, (Address::ScaleFactor)2, +0x4ab36a22), 65536);", // IID4373 - "__ cmpl_imm32(Address(rcx, rdx, (Address::ScaleFactor)1, +0x65b64e0e), 262144);", // IID4374 - "__ cmpl_imm32(Address(rdx, -0x3152eeb9), 262144);", // IID4375 - "__ cmpl_imm32(Address(rbx, r8, (Address::ScaleFactor)0, +0x358988be), 262144);", // IID4376 - "__ cmpl_imm32(Address(r8, r9, (Address::ScaleFactor)0, -0x5449fea0), 262144);", // IID4377 - "__ cmpl_imm32(Address(r9, r10, (Address::ScaleFactor)2, +0x7ae9b910), 262144);", // IID4378 - "__ cmpl_imm32(Address(r10, r11, (Address::ScaleFactor)3, -0x67ca056d), 262144);", // IID4379 - "__ cmpl_imm32(Address(r11, r12, (Address::ScaleFactor)2, -0x5ad489df), 262144);", // IID4380 - "__ cmpl_imm32(Address(r12, -0x3d39090c), 262144);", // IID4381 - "__ cmpl_imm32(Address(r13, -0x68ed1957), 262144);", // IID4382 - "__ cmpl_imm32(Address(r14, r15, (Address::ScaleFactor)2, -0x3bfad6b2), 262144);", // IID4383 - "__ cmpl_imm32(Address(r15, r16, (Address::ScaleFactor)3, -0x2b5feabf), 262144);", // IID4384 - "__ cmpl_imm32(Address(r16, r17, (Address::ScaleFactor)3, +0x4c724078), 262144);", // IID4385 - "__ cmpl_imm32(Address(r17, r18, (Address::ScaleFactor)1, -0x28c891b1), 262144);", // IID4386 - "__ cmpl_imm32(Address(r18, -0x184a60df), 262144);", // IID4387 - "__ cmpl_imm32(Address(r19, r20, (Address::ScaleFactor)2, -0x5b10cc9e), 262144);", // IID4388 - "__ cmpl_imm32(Address(r20, -0x103ae59a), 262144);", // IID4389 - "__ cmpl_imm32(Address(r21, r22, (Address::ScaleFactor)2, +0x7e45c757), 262144);", // IID4390 - "__ cmpl_imm32(Address(r22, -0x6078f1e6), 262144);", // IID4391 - "__ cmpl_imm32(Address(r23, r24, (Address::ScaleFactor)3, +0x6178db93), 262144);", // IID4392 - "__ cmpl_imm32(Address(r24, r25, (Address::ScaleFactor)3, +0x29a4e275), 262144);", // IID4393 - "__ cmpl_imm32(Address(r25, r26, (Address::ScaleFactor)2, -0x6b6f0ff2), 262144);", // IID4394 - "__ cmpl_imm32(Address(r26, r27, (Address::ScaleFactor)0, +0x4fefe369), 262144);", // IID4395 - "__ cmpl_imm32(Address(r27, -0x8c75629), 262144);", // IID4396 - "__ cmpl_imm32(Address(r28, +0x28d3e7bf), 262144);", // IID4397 - "__ cmpl_imm32(Address(r29, r30, (Address::ScaleFactor)2, +0x72978eb), 262144);", // IID4398 - "__ cmpl_imm32(Address(r30, r31, (Address::ScaleFactor)3, -0x28eefcba), 262144);", // IID4399 - "__ cmpl_imm32(Address(r31, rcx, (Address::ScaleFactor)2, +0x38ad6681), 262144);", // IID4400 - "__ cmpl_imm32(Address(rcx, +0x24b93d86), 1048576);", // IID4401 - "__ cmpl_imm32(Address(rdx, +0x39afda0b), 1048576);", // IID4402 - "__ cmpl_imm32(Address(rbx, r8, (Address::ScaleFactor)2, -0x17ecc041), 1048576);", // IID4403 - "__ cmpl_imm32(Address(r8, r9, (Address::ScaleFactor)2, -0x5df0d01a), 1048576);", // IID4404 - "__ cmpl_imm32(Address(r9, r10, (Address::ScaleFactor)2, -0x5fe348d3), 1048576);", // IID4405 - "__ cmpl_imm32(Address(r10, r11, (Address::ScaleFactor)1, +0x58598e89), 1048576);", // IID4406 - "__ cmpl_imm32(Address(r11, r12, (Address::ScaleFactor)0, +0x4e06c1fc), 1048576);", // IID4407 - "__ cmpl_imm32(Address(r12, r13, (Address::ScaleFactor)2, -0x4835e9ad), 1048576);", // IID4408 - "__ cmpl_imm32(Address(r13, +0x524e20c1), 1048576);", // IID4409 - "__ cmpl_imm32(Address(r14, r15, (Address::ScaleFactor)2, +0xc81224), 1048576);", // IID4410 - "__ cmpl_imm32(Address(r15, r16, (Address::ScaleFactor)2, +0x282fd3d4), 1048576);", // IID4411 - "__ cmpl_imm32(Address(r16, r17, (Address::ScaleFactor)1, +0x64594aef), 1048576);", // IID4412 - "__ cmpl_imm32(Address(r17, r18, (Address::ScaleFactor)2, +0x3bf8235), 1048576);", // IID4413 - "__ cmpl_imm32(Address(r18, -0x79dcfe89), 1048576);", // IID4414 - "__ cmpl_imm32(Address(r19, r20, (Address::ScaleFactor)2, +0xbb15b96), 1048576);", // IID4415 - "__ cmpl_imm32(Address(r20, r21, (Address::ScaleFactor)2, -0x1dbaac87), 1048576);", // IID4416 - "__ cmpl_imm32(Address(r21, r22, (Address::ScaleFactor)3, -0x75fe2d5), 1048576);", // IID4417 - "__ cmpl_imm32(Address(r22, r23, (Address::ScaleFactor)2, -0x3ce43f2b), 1048576);", // IID4418 - "__ cmpl_imm32(Address(r23, r24, (Address::ScaleFactor)0, +0x3f2d9c3b), 1048576);", // IID4419 - "__ cmpl_imm32(Address(r24, r25, (Address::ScaleFactor)0, +0x7bc9beff), 1048576);", // IID4420 - "__ cmpl_imm32(Address(r25, r26, (Address::ScaleFactor)0, -0x54e1a3f6), 1048576);", // IID4421 - "__ cmpl_imm32(Address(r26, +0x50a08757), 1048576);", // IID4422 - "__ cmpl_imm32(Address(r27, r28, (Address::ScaleFactor)2, -0x7a6e73dc), 1048576);", // IID4423 - "__ cmpl_imm32(Address(r28, r29, (Address::ScaleFactor)2, -0x3a9edd58), 1048576);", // IID4424 - "__ cmpl_imm32(Address(r29, r30, (Address::ScaleFactor)1, +0x22f8363a), 1048576);", // IID4425 - "__ cmpl_imm32(Address(r30, r31, (Address::ScaleFactor)3, +0x1e848871), 1048576);", // IID4426 - "__ cmpl_imm32(Address(r31, rcx, (Address::ScaleFactor)1, +0x5966d9cf), 1048576);", // IID4427 - "__ cmpl_imm32(Address(rcx, rdx, (Address::ScaleFactor)3, +0x3a1fd249), 4194304);", // IID4428 - "__ cmpl_imm32(Address(rdx, rbx, (Address::ScaleFactor)0, -0x5103cd3b), 4194304);", // IID4429 - "__ cmpl_imm32(Address(rbx, +0xe2fa4ed), 4194304);", // IID4430 - "__ cmpl_imm32(Address(r8, r9, (Address::ScaleFactor)1, +0x372152a1), 4194304);", // IID4431 - "__ cmpl_imm32(Address(r9, r10, (Address::ScaleFactor)1, -0x19188b34), 4194304);", // IID4432 - "__ cmpl_imm32(Address(r10, r11, (Address::ScaleFactor)3, -0x3fe5d453), 4194304);", // IID4433 - "__ cmpl_imm32(Address(r11, r12, (Address::ScaleFactor)3, +0x76428b11), 4194304);", // IID4434 - "__ cmpl_imm32(Address(r12, r13, (Address::ScaleFactor)0, +0x560af67f), 4194304);", // IID4435 - "__ cmpl_imm32(Address(r13, r14, (Address::ScaleFactor)1, -0x65b3f1dc), 4194304);", // IID4436 - "__ cmpl_imm32(Address(r14, r15, (Address::ScaleFactor)3, -0x427f1bf0), 4194304);", // IID4437 - "__ cmpl_imm32(Address(r15, r16, (Address::ScaleFactor)2, -0x3c3e4773), 4194304);", // IID4438 - "__ cmpl_imm32(Address(r16, r17, (Address::ScaleFactor)1, +0x20a43441), 4194304);", // IID4439 - "__ cmpl_imm32(Address(r17, r18, (Address::ScaleFactor)1, +0x54344625), 4194304);", // IID4440 - "__ cmpl_imm32(Address(r18, r19, (Address::ScaleFactor)1, -0x129cbc4e), 4194304);", // IID4441 - "__ cmpl_imm32(Address(r19, +0x2bc8a5ae), 4194304);", // IID4442 - "__ cmpl_imm32(Address(r20, r21, (Address::ScaleFactor)3, -0x4a7f6607), 4194304);", // IID4443 - "__ cmpl_imm32(Address(r21, r22, (Address::ScaleFactor)1, +0x40f4b620), 4194304);", // IID4444 - "__ cmpl_imm32(Address(r22, r23, (Address::ScaleFactor)2, -0x4d25a471), 4194304);", // IID4445 - "__ cmpl_imm32(Address(r23, r24, (Address::ScaleFactor)2, +0x57211c17), 4194304);", // IID4446 - "__ cmpl_imm32(Address(r24, r25, (Address::ScaleFactor)2, -0x1b22c068), 4194304);", // IID4447 - "__ cmpl_imm32(Address(r25, r26, (Address::ScaleFactor)0, -0x737df8fc), 4194304);", // IID4448 - "__ cmpl_imm32(Address(r26, +0x60241acf), 4194304);", // IID4449 - "__ cmpl_imm32(Address(r27, r28, (Address::ScaleFactor)3, +0x3973ab1d), 4194304);", // IID4450 - "__ cmpl_imm32(Address(r28, r29, (Address::ScaleFactor)3, -0x293185e), 4194304);", // IID4451 - "__ cmpl_imm32(Address(r29, r30, (Address::ScaleFactor)3, +0x6f0626f), 4194304);", // IID4452 - "__ cmpl_imm32(Address(r30, r31, (Address::ScaleFactor)3, -0x367642a5), 4194304);", // IID4453 - "__ cmpl_imm32(Address(r31, rcx, (Address::ScaleFactor)1, +0x3c6195cf), 4194304);", // IID4454 - "__ cmpl_imm32(Address(rcx, rdx, (Address::ScaleFactor)2, +0x39d072a4), 16777216);", // IID4455 - "__ cmpl_imm32(Address(rdx, +0x94d19b0), 16777216);", // IID4456 - "__ cmpl_imm32(Address(rbx, r8, (Address::ScaleFactor)3, +0x263a9c9b), 16777216);", // IID4457 - "__ cmpl_imm32(Address(r8, r9, (Address::ScaleFactor)2, +0x7701be34), 16777216);", // IID4458 - "__ cmpl_imm32(Address(r9, r10, (Address::ScaleFactor)3, -0x5b050e79), 16777216);", // IID4459 - "__ cmpl_imm32(Address(r10, r11, (Address::ScaleFactor)1, -0x6cb865ac), 16777216);", // IID4460 - "__ cmpl_imm32(Address(r11, r12, (Address::ScaleFactor)1, -0x5038a8b), 16777216);", // IID4461 - "__ cmpl_imm32(Address(r12, r13, (Address::ScaleFactor)1, -0x75640bf9), 16777216);", // IID4462 - "__ cmpl_imm32(Address(r13, r14, (Address::ScaleFactor)0, +0x3ef1cebb), 16777216);", // IID4463 - "__ cmpl_imm32(Address(r14, r15, (Address::ScaleFactor)1, +0xd6e1749), 16777216);", // IID4464 - "__ cmpl_imm32(Address(r15, r16, (Address::ScaleFactor)2, +0x661ca3e), 16777216);", // IID4465 - "__ cmpl_imm32(Address(r16, r17, (Address::ScaleFactor)3, +0x6979d244), 16777216);", // IID4466 - "__ cmpl_imm32(Address(r17, +0x249fc5d6), 16777216);", // IID4467 - "__ cmpl_imm32(Address(r18, r19, (Address::ScaleFactor)2, -0x757fed4), 16777216);", // IID4468 - "__ cmpl_imm32(Address(r19, +0x79274e37), 16777216);", // IID4469 - "__ cmpl_imm32(Address(r20, r21, (Address::ScaleFactor)1, -0x428156d), 16777216);", // IID4470 - "__ cmpl_imm32(Address(r21, -0x6bfc60b1), 16777216);", // IID4471 - "__ cmpl_imm32(Address(r22, r23, (Address::ScaleFactor)3, -0x1c97cd6a), 16777216);", // IID4472 - "__ cmpl_imm32(Address(r23, +0x6420de0e), 16777216);", // IID4473 - "__ cmpl_imm32(Address(r24, r25, (Address::ScaleFactor)1, +0x147aab00), 16777216);", // IID4474 - "__ cmpl_imm32(Address(r25, r26, (Address::ScaleFactor)1, -0x7f29a7ed), 16777216);", // IID4475 - "__ cmpl_imm32(Address(r26, r27, (Address::ScaleFactor)1, -0x65621169), 16777216);", // IID4476 - "__ cmpl_imm32(Address(r27, r28, (Address::ScaleFactor)0, -0x2ea4493f), 16777216);", // IID4477 - "__ cmpl_imm32(Address(r28, -0x6d62ba6), 16777216);", // IID4478 - "__ cmpl_imm32(Address(r29, r30, (Address::ScaleFactor)0, +0x6eb95de7), 16777216);", // IID4479 - "__ cmpl_imm32(Address(r30, r31, (Address::ScaleFactor)2, +0x58d4325a), 16777216);", // IID4480 - "__ cmpl_imm32(Address(r31, -0x2500ed9a), 16777216);", // IID4481 - "__ cmpl_imm32(Address(rcx, rdx, (Address::ScaleFactor)3, -0x24bf1bc9), 67108864);", // IID4482 - "__ cmpl_imm32(Address(rdx, rbx, (Address::ScaleFactor)2, -0x22b5f437), 67108864);", // IID4483 - "__ cmpl_imm32(Address(rbx, r8, (Address::ScaleFactor)3, -0x6273ddc3), 67108864);", // IID4484 - "__ cmpl_imm32(Address(r8, r9, (Address::ScaleFactor)0, +0x583a29e), 67108864);", // IID4485 - "__ cmpl_imm32(Address(r9, +0x10934df2), 67108864);", // IID4486 - "__ cmpl_imm32(Address(r10, r11, (Address::ScaleFactor)2, +0x4a9d9558), 67108864);", // IID4487 - "__ cmpl_imm32(Address(r11, r12, (Address::ScaleFactor)1, -0xbac5848), 67108864);", // IID4488 - "__ cmpl_imm32(Address(r12, r13, (Address::ScaleFactor)0, +0x7167b366), 67108864);", // IID4489 - "__ cmpl_imm32(Address(r13, r14, (Address::ScaleFactor)0, -0x30d8e3b0), 67108864);", // IID4490 - "__ cmpl_imm32(Address(r14, r15, (Address::ScaleFactor)2, -0x7db15b64), 67108864);", // IID4491 - "__ cmpl_imm32(Address(r15, -0x38a282e1), 67108864);", // IID4492 - "__ cmpl_imm32(Address(r16, r17, (Address::ScaleFactor)1, -0x22c7ff82), 67108864);", // IID4493 - "__ cmpl_imm32(Address(r17, r18, (Address::ScaleFactor)1, -0x1df85694), 67108864);", // IID4494 - "__ cmpl_imm32(Address(r18, r19, (Address::ScaleFactor)2, +0x75dc4c9d), 67108864);", // IID4495 - "__ cmpl_imm32(Address(r19, r20, (Address::ScaleFactor)3, +0x603f704f), 67108864);", // IID4496 - "__ cmpl_imm32(Address(r20, r21, (Address::ScaleFactor)3, -0x760f27c), 67108864);", // IID4497 - "__ cmpl_imm32(Address(r21, +0x7305f2e8), 67108864);", // IID4498 - "__ cmpl_imm32(Address(r22, r23, (Address::ScaleFactor)1, +0x268dda56), 67108864);", // IID4499 - "__ cmpl_imm32(Address(r23, r24, (Address::ScaleFactor)2, +0x7daad80a), 67108864);", // IID4500 - "__ cmpl_imm32(Address(r24, +0x544554d9), 67108864);", // IID4501 - "__ cmpl_imm32(Address(r25, +0xd3c5d7f), 67108864);", // IID4502 - "__ cmpl_imm32(Address(r26, r27, (Address::ScaleFactor)2, -0x294f883a), 67108864);", // IID4503 - "__ cmpl_imm32(Address(r27, +0xe8e22f), 67108864);", // IID4504 - "__ cmpl_imm32(Address(r28, r29, (Address::ScaleFactor)2, -0x39f3b602), 67108864);", // IID4505 - "__ cmpl_imm32(Address(r29, r30, (Address::ScaleFactor)3, -0x5a3bf31), 67108864);", // IID4506 - "__ cmpl_imm32(Address(r30, r31, (Address::ScaleFactor)3, -0x285834f3), 67108864);", // IID4507 - "__ cmpl_imm32(Address(r31, rcx, (Address::ScaleFactor)3, -0x730f664), 67108864);", // IID4508 - "__ cmpl_imm32(Address(rcx, rdx, (Address::ScaleFactor)0, -0xf1850f0), 268435456);", // IID4509 - "__ cmpl_imm32(Address(rdx, rbx, (Address::ScaleFactor)2, -0x398ad092), 268435456);", // IID4510 - "__ cmpl_imm32(Address(rbx, -0x4ca2563a), 268435456);", // IID4511 - "__ cmpl_imm32(Address(r8, r9, (Address::ScaleFactor)2, -0x142b4ca3), 268435456);", // IID4512 - "__ cmpl_imm32(Address(r9, r10, (Address::ScaleFactor)2, +0x5eddddb9), 268435456);", // IID4513 - "__ cmpl_imm32(Address(r10, +0x36b7b515), 268435456);", // IID4514 - "__ cmpl_imm32(Address(r11, r12, (Address::ScaleFactor)2, +0x1d813fde), 268435456);", // IID4515 - "__ cmpl_imm32(Address(r12, -0x17b90b8e), 268435456);", // IID4516 - "__ cmpl_imm32(Address(r13, r14, (Address::ScaleFactor)2, +0x5a9aeb2d), 268435456);", // IID4517 - "__ cmpl_imm32(Address(r14, r15, (Address::ScaleFactor)3, -0x7d105eef), 268435456);", // IID4518 - "__ cmpl_imm32(Address(r15, +0x4c634468), 268435456);", // IID4519 - "__ cmpl_imm32(Address(r16, r17, (Address::ScaleFactor)0, -0x75d003c6), 268435456);", // IID4520 - "__ cmpl_imm32(Address(r17, r18, (Address::ScaleFactor)2, -0x37c7737a), 268435456);", // IID4521 - "__ cmpl_imm32(Address(r18, r19, (Address::ScaleFactor)1, +0x4c16f65a), 268435456);", // IID4522 - "__ cmpl_imm32(Address(r19, r20, (Address::ScaleFactor)2, -0x7f394efc), 268435456);", // IID4523 - "__ cmpl_imm32(Address(r20, r21, (Address::ScaleFactor)0, -0x12a2b5b), 268435456);", // IID4524 - "__ cmpl_imm32(Address(r21, r22, (Address::ScaleFactor)2, +0x1910da38), 268435456);", // IID4525 - "__ cmpl_imm32(Address(r22, r23, (Address::ScaleFactor)3, -0x481b1485), 268435456);", // IID4526 - "__ cmpl_imm32(Address(r23, r24, (Address::ScaleFactor)0, +0x3ac4a6f3), 268435456);", // IID4527 - "__ cmpl_imm32(Address(r24, -0x65ca3fa2), 268435456);", // IID4528 - "__ cmpl_imm32(Address(r25, r26, (Address::ScaleFactor)3, +0x20689863), 268435456);", // IID4529 - "__ cmpl_imm32(Address(r26, r27, (Address::ScaleFactor)1, -0x3912f634), 268435456);", // IID4530 - "__ cmpl_imm32(Address(r27, r28, (Address::ScaleFactor)1, +0x25897355), 268435456);", // IID4531 - "__ cmpl_imm32(Address(r28, r29, (Address::ScaleFactor)1, -0x2ddfc457), 268435456);", // IID4532 - "__ cmpl_imm32(Address(r29, r30, (Address::ScaleFactor)2, -0x19e828a), 268435456);", // IID4533 - "__ cmpl_imm32(Address(r30, r31, (Address::ScaleFactor)1, -0x7da8a9eb), 268435456);", // IID4534 - "__ cmpl_imm32(Address(r31, rcx, (Address::ScaleFactor)1, -0x5ce53caa), 268435456);", // IID4535 - "__ cmpl_imm32(Address(rcx, rdx, (Address::ScaleFactor)1, -0x157ec8a5), 1073741824);", // IID4536 - "__ cmpl_imm32(Address(rdx, rbx, (Address::ScaleFactor)2, -0x57efad87), 1073741824);", // IID4537 - "__ cmpl_imm32(Address(rbx, r8, (Address::ScaleFactor)3, +0x2acdc72d), 1073741824);", // IID4538 - "__ cmpl_imm32(Address(r8, r9, (Address::ScaleFactor)1, -0x675ca6f2), 1073741824);", // IID4539 - "__ cmpl_imm32(Address(r9, r10, (Address::ScaleFactor)3, -0x5e020d3a), 1073741824);", // IID4540 - "__ cmpl_imm32(Address(r10, r11, (Address::ScaleFactor)1, -0x7fd7eb63), 1073741824);", // IID4541 - "__ cmpl_imm32(Address(r11, r12, (Address::ScaleFactor)3, +0x245a1bf0), 1073741824);", // IID4542 - "__ cmpl_imm32(Address(r12, r13, (Address::ScaleFactor)1, -0x5a04164d), 1073741824);", // IID4543 - "__ cmpl_imm32(Address(r13, r14, (Address::ScaleFactor)0, -0x386f19f4), 1073741824);", // IID4544 - "__ cmpl_imm32(Address(r14, r15, (Address::ScaleFactor)2, -0x3a561bf), 1073741824);", // IID4545 - "__ cmpl_imm32(Address(r15, r16, (Address::ScaleFactor)0, -0x5839933c), 1073741824);", // IID4546 - "__ cmpl_imm32(Address(r16, r17, (Address::ScaleFactor)3, +0xdfb8788), 1073741824);", // IID4547 - "__ cmpl_imm32(Address(r17, r18, (Address::ScaleFactor)3, -0x4c667d2), 1073741824);", // IID4548 - "__ cmpl_imm32(Address(r18, r19, (Address::ScaleFactor)2, +0x21181f06), 1073741824);", // IID4549 - "__ cmpl_imm32(Address(r19, -0x40ef1830), 1073741824);", // IID4550 - "__ cmpl_imm32(Address(r20, r21, (Address::ScaleFactor)3, +0x4e80c9a), 1073741824);", // IID4551 - "__ cmpl_imm32(Address(r21, r22, (Address::ScaleFactor)2, +0x11629946), 1073741824);", // IID4552 - "__ cmpl_imm32(Address(r22, r23, (Address::ScaleFactor)1, +0x4ab0c490), 1073741824);", // IID4553 - "__ cmpl_imm32(Address(r23, r24, (Address::ScaleFactor)0, +0x6545db64), 1073741824);", // IID4554 - "__ cmpl_imm32(Address(r24, r25, (Address::ScaleFactor)3, +0x2cc9cee), 1073741824);", // IID4555 - "__ cmpl_imm32(Address(r25, r26, (Address::ScaleFactor)0, -0x70afaadc), 1073741824);", // IID4556 - "__ cmpl_imm32(Address(r26, r27, (Address::ScaleFactor)3, -0x27936848), 1073741824);", // IID4557 - "__ cmpl_imm32(Address(r27, r28, (Address::ScaleFactor)1, +0x24af85d9), 1073741824);", // IID4558 - "__ cmpl_imm32(Address(r28, r29, (Address::ScaleFactor)0, -0x42c569f), 1073741824);", // IID4559 - "__ cmpl_imm32(Address(r29, r30, (Address::ScaleFactor)1, +0x6e5650e1), 1073741824);", // IID4560 - "__ cmpl_imm32(Address(r30, -0x3ccbf103), 1073741824);", // IID4561 - "__ cmpl_imm32(Address(r31, rcx, (Address::ScaleFactor)2, -0x78795a2f), 1073741824);", // IID4562 -#endif // _LP64 - "__ addl(rcx, Address(rdx, +0x7189575b));", // IID4563 -#ifdef _LP64 - "__ addl(rdx, Address(rbx, r8, (Address::ScaleFactor)1, -0x6c98b581));", // IID4564 - "__ addl(rbx, Address(r8, r9, (Address::ScaleFactor)0, -0x379a6f12));", // IID4565 - "__ addl(r8, Address(r9, r10, (Address::ScaleFactor)0, -0x776e4ff6));", // IID4566 - "__ addl(r9, Address(r10, -0x169c4962));", // IID4567 - "__ addl(r10, Address(r11, r12, (Address::ScaleFactor)1, +0x468a16fc));", // IID4568 - "__ addl(r11, Address(r12, r13, (Address::ScaleFactor)3, -0x2ef87673));", // IID4569 - "__ addl(r12, Address(r13, r14, (Address::ScaleFactor)0, -0x8c7b862));", // IID4570 - "__ addl(r13, Address(r14, -0x320cf7f9));", // IID4571 - "__ addl(r14, Address(r15, r16, (Address::ScaleFactor)1, +0x7ffb79fe));", // IID4572 - "__ addl(r15, Address(r16, r17, (Address::ScaleFactor)0, -0x5cbd288));", // IID4573 - "__ addl(r16, Address(r17, r18, (Address::ScaleFactor)1, -0x2d64bb5e));", // IID4574 - "__ addl(r17, Address(r18, r19, (Address::ScaleFactor)1, -0x2b0eee20));", // IID4575 - "__ addl(r18, Address(r19, +0x20f6500e));", // IID4576 - "__ addl(r19, Address(r20, r21, (Address::ScaleFactor)1, -0xf2b5291));", // IID4577 - "__ addl(r20, Address(r21, r22, (Address::ScaleFactor)2, -0x3940e6d6));", // IID4578 - "__ addl(r21, Address(r22, r23, (Address::ScaleFactor)3, +0x1d028ab3));", // IID4579 - "__ addl(r22, Address(r23, r24, (Address::ScaleFactor)0, +0x5011b256));", // IID4580 - "__ addl(r23, Address(r24, r25, (Address::ScaleFactor)2, -0x2d548c6));", // IID4581 - "__ addl(r24, Address(r25, r26, (Address::ScaleFactor)0, +0x3c3703f2));", // IID4582 - "__ addl(r25, Address(r26, r27, (Address::ScaleFactor)2, -0x438fe04b));", // IID4583 - "__ addl(r26, Address(r27, +0x1e6b9378));", // IID4584 - "__ addl(r27, Address(r28, r29, (Address::ScaleFactor)2, -0x1a683cf1));", // IID4585 - "__ addl(r28, Address(r29, r30, (Address::ScaleFactor)2, -0x765952c5));", // IID4586 - "__ addl(r29, Address(r30, r31, (Address::ScaleFactor)0, -0x16c697db));", // IID4587 - "__ addl(r30, Address(r31, rcx, (Address::ScaleFactor)2, +0x43dc9d8f));", // IID4588 - "__ addl(r31, Address(rcx, rdx, (Address::ScaleFactor)2, -0x656f6703));", // IID4589 -#endif // _LP64 - "__ andl(rcx, Address(rdx, -0x52237e10));", // IID4590 -#ifdef _LP64 - "__ andl(rdx, Address(rbx, r8, (Address::ScaleFactor)3, +0x428dd01c));", // IID4591 - "__ andl(rbx, Address(r8, r9, (Address::ScaleFactor)0, +0x3da5bf66));", // IID4592 - "__ andl(r8, Address(r9, +0x1f6f5326));", // IID4593 - "__ andl(r9, Address(r10, r11, (Address::ScaleFactor)2, -0x36243a1e));", // IID4594 - "__ andl(r10, Address(r11, r12, (Address::ScaleFactor)2, -0x42391d4b));", // IID4595 - "__ andl(r11, Address(r12, -0x3e388ccd));", // IID4596 - "__ andl(r12, Address(r13, r14, (Address::ScaleFactor)3, +0x2ca5e2b2));", // IID4597 - "__ andl(r13, Address(r14, -0x4c6fb0a3));", // IID4598 - "__ andl(r14, Address(r15, -0x35120eca));", // IID4599 - "__ andl(r15, Address(r16, r17, (Address::ScaleFactor)0, -0x52103b6b));", // IID4600 - "__ andl(r16, Address(r17, r18, (Address::ScaleFactor)3, -0x28b4e64e));", // IID4601 - "__ andl(r17, Address(r18, +0x4579217c));", // IID4602 - "__ andl(r18, Address(r19, r20, (Address::ScaleFactor)2, +0x1edfcfe1));", // IID4603 - "__ andl(r19, Address(r20, r21, (Address::ScaleFactor)1, +0x1bd406fd));", // IID4604 - "__ andl(r20, Address(r21, r22, (Address::ScaleFactor)1, -0x6f3cdb30));", // IID4605 - "__ andl(r21, Address(r22, r23, (Address::ScaleFactor)3, +0x2ee9d9));", // IID4606 - "__ andl(r22, Address(r23, +0x5cd6046));", // IID4607 - "__ andl(r23, Address(r24, r25, (Address::ScaleFactor)3, +0x65135e83));", // IID4608 - "__ andl(r24, Address(r25, r26, (Address::ScaleFactor)0, -0x2c05ac86));", // IID4609 - "__ andl(r25, Address(r26, r27, (Address::ScaleFactor)2, -0x7cf472fa));", // IID4610 - "__ andl(r26, Address(r27, r28, (Address::ScaleFactor)2, +0x2ada310f));", // IID4611 - "__ andl(r27, Address(r28, r29, (Address::ScaleFactor)3, -0x36845412));", // IID4612 - "__ andl(r28, Address(r29, r30, (Address::ScaleFactor)0, +0x2cb72817));", // IID4613 - "__ andl(r29, Address(r30, r31, (Address::ScaleFactor)1, +0x66863527));", // IID4614 - "__ andl(r30, Address(r31, rcx, (Address::ScaleFactor)3, -0x6bc9d183));", // IID4615 - "__ andl(r31, Address(rcx, rdx, (Address::ScaleFactor)2, +0x5f01099a));", // IID4616 -#endif // _LP64 - "__ cmpb(rcx, Address(rdx, rbx, (Address::ScaleFactor)3, +0x3ccf357e));", // IID4617 -#ifdef _LP64 - "__ cmpb(rdx, Address(rbx, r8, (Address::ScaleFactor)0, -0x7ecd09c4));", // IID4618 - "__ cmpb(rbx, Address(r8, r9, (Address::ScaleFactor)3, -0x7f0c7384));", // IID4619 - "__ cmpb(r8, Address(r9, +0x4a1fea93));", // IID4620 - "__ cmpb(r9, Address(r10, r11, (Address::ScaleFactor)2, -0x625abf91));", // IID4621 - "__ cmpb(r10, Address(r11, r12, (Address::ScaleFactor)0, -0x3c332547));", // IID4622 - "__ cmpb(r11, Address(r12, r13, (Address::ScaleFactor)0, +0x9fec27e));", // IID4623 - "__ cmpb(r12, Address(r13, r14, (Address::ScaleFactor)3, +0x42e543b5));", // IID4624 - "__ cmpb(r13, Address(r14, -0x1c0e11de));", // IID4625 - "__ cmpb(r14, Address(r15, r16, (Address::ScaleFactor)2, +0x6cd2e926));", // IID4626 - "__ cmpb(r15, Address(r16, r17, (Address::ScaleFactor)1, +0x1af83491));", // IID4627 - "__ cmpb(r16, Address(r17, r18, (Address::ScaleFactor)0, +0x1cada226));", // IID4628 - "__ cmpb(r17, Address(r18, r19, (Address::ScaleFactor)0, -0x267acac0));", // IID4629 - "__ cmpb(r18, Address(r19, r20, (Address::ScaleFactor)0, +0x20ca3135));", // IID4630 - "__ cmpb(r19, Address(r20, r21, (Address::ScaleFactor)3, -0x6d59ed24));", // IID4631 - "__ cmpb(r20, Address(r21, -0x66476f4));", // IID4632 - "__ cmpb(r21, Address(r22, r23, (Address::ScaleFactor)1, -0x1fdd156a));", // IID4633 - "__ cmpb(r22, Address(r23, +0x69683f61));", // IID4634 - "__ cmpb(r23, Address(r24, r25, (Address::ScaleFactor)2, +0x28b83094));", // IID4635 - "__ cmpb(r24, Address(r25, r26, (Address::ScaleFactor)1, -0xed05b2b));", // IID4636 - "__ cmpb(r25, Address(r26, r27, (Address::ScaleFactor)0, +0x276424e4));", // IID4637 - "__ cmpb(r26, Address(r27, r28, (Address::ScaleFactor)2, +0x2a9b1892));", // IID4638 - "__ cmpb(r27, Address(r28, r29, (Address::ScaleFactor)2, +0x2855b4c1));", // IID4639 - "__ cmpb(r28, Address(r29, r30, (Address::ScaleFactor)0, +0x1eaddb37));", // IID4640 - "__ cmpb(r29, Address(r30, r31, (Address::ScaleFactor)2, -0x4af1d417));", // IID4641 - "__ cmpb(r30, Address(r31, +0x2be3c9fa));", // IID4642 - "__ cmpb(r31, Address(rcx, rdx, (Address::ScaleFactor)0, -0x6ca0e2cc));", // IID4643 -#endif // _LP64 - "__ cmpl(rcx, Address(rdx, rbx, (Address::ScaleFactor)0, +0x73ef9ba4));", // IID4644 -#ifdef _LP64 - "__ cmpl(rdx, Address(rbx, r8, (Address::ScaleFactor)0, -0x215ec004));", // IID4645 - "__ cmpl(rbx, Address(r8, r9, (Address::ScaleFactor)2, +0x419d1e08));", // IID4646 - "__ cmpl(r8, Address(r9, r10, (Address::ScaleFactor)1, -0x4f88498f));", // IID4647 - "__ cmpl(r9, Address(r10, r11, (Address::ScaleFactor)2, -0x4dd9436c));", // IID4648 - "__ cmpl(r10, Address(r11, r12, (Address::ScaleFactor)0, -0x1ca1aafd));", // IID4649 - "__ cmpl(r11, Address(r12, +0x2ca4b45a));", // IID4650 - "__ cmpl(r12, Address(r13, r14, (Address::ScaleFactor)2, +0x5d56a94a));", // IID4651 - "__ cmpl(r13, Address(r14, r15, (Address::ScaleFactor)0, +0x272490d2));", // IID4652 - "__ cmpl(r14, Address(r15, r16, (Address::ScaleFactor)1, +0x1c1390f));", // IID4653 - "__ cmpl(r15, Address(r16, r17, (Address::ScaleFactor)0, +0x22613b3b));", // IID4654 - "__ cmpl(r16, Address(r17, +0x7a2ca9bb));", // IID4655 - "__ cmpl(r17, Address(r18, r19, (Address::ScaleFactor)3, +0x18e87566));", // IID4656 - "__ cmpl(r18, Address(r19, r20, (Address::ScaleFactor)2, -0x17b6b971));", // IID4657 - "__ cmpl(r19, Address(r20, -0x52fa7cdc));", // IID4658 - "__ cmpl(r20, Address(r21, r22, (Address::ScaleFactor)3, -0x147290e7));", // IID4659 - "__ cmpl(r21, Address(r22, r23, (Address::ScaleFactor)2, +0x6814c13d));", // IID4660 - "__ cmpl(r22, Address(r23, r24, (Address::ScaleFactor)1, -0x5597023a));", // IID4661 - "__ cmpl(r23, Address(r24, r25, (Address::ScaleFactor)3, +0x4f39ba0b));", // IID4662 - "__ cmpl(r24, Address(r25, r26, (Address::ScaleFactor)1, +0x4b64bf3f));", // IID4663 - "__ cmpl(r25, Address(r26, r27, (Address::ScaleFactor)1, -0x1cf730fd));", // IID4664 - "__ cmpl(r26, Address(r27, +0x4c17daba));", // IID4665 - "__ cmpl(r27, Address(r28, -0x45162194));", // IID4666 - "__ cmpl(r28, Address(r29, -0x1a244410));", // IID4667 - "__ cmpl(r29, Address(r30, r31, (Address::ScaleFactor)0, +0x332ed57a));", // IID4668 - "__ cmpl(r30, Address(r31, rcx, (Address::ScaleFactor)2, -0x5bea72d7));", // IID4669 - "__ cmpl(r31, Address(rcx, rdx, (Address::ScaleFactor)3, -0x3e07051d));", // IID4670 -#endif // _LP64 - "__ lzcntl(rcx, Address(rdx, rbx, (Address::ScaleFactor)1, +0x5b2e34d));", // IID4671 -#ifdef _LP64 - "__ lzcntl(rdx, Address(rbx, +0x406e33c0));", // IID4672 - "__ lzcntl(rbx, Address(r8, r9, (Address::ScaleFactor)1, -0x4507b331));", // IID4673 - "__ lzcntl(r8, Address(r9, r10, (Address::ScaleFactor)3, -0x7a50f74a));", // IID4674 - "__ lzcntl(r9, Address(r10, r11, (Address::ScaleFactor)0, -0x74f026f));", // IID4675 - "__ lzcntl(r10, Address(r11, r12, (Address::ScaleFactor)0, +0x46da7452));", // IID4676 - "__ lzcntl(r11, Address(r12, -0x1b0b2c94));", // IID4677 - "__ lzcntl(r12, Address(r13, r14, (Address::ScaleFactor)1, +0x610c7551));", // IID4678 - "__ lzcntl(r13, Address(r14, +0x6ac4fc14));", // IID4679 - "__ lzcntl(r14, Address(r15, r16, (Address::ScaleFactor)0, -0x38f3bcf7));", // IID4680 - "__ lzcntl(r15, Address(r16, r17, (Address::ScaleFactor)0, +0x7c4ce186));", // IID4681 - "__ lzcntl(r16, Address(r17, r18, (Address::ScaleFactor)0, -0x45d8b2ad));", // IID4682 - "__ lzcntl(r17, Address(r18, r19, (Address::ScaleFactor)0, -0x50978732));", // IID4683 - "__ lzcntl(r18, Address(r19, r20, (Address::ScaleFactor)0, -0x3d018edb));", // IID4684 - "__ lzcntl(r19, Address(r20, r21, (Address::ScaleFactor)2, -0x2802d679));", // IID4685 - "__ lzcntl(r20, Address(r21, r22, (Address::ScaleFactor)0, -0x459c317));", // IID4686 - "__ lzcntl(r21, Address(r22, r23, (Address::ScaleFactor)3, +0x7637a7b4));", // IID4687 - "__ lzcntl(r22, Address(r23, r24, (Address::ScaleFactor)0, +0x7c0d4771));", // IID4688 - "__ lzcntl(r23, Address(r24, r25, (Address::ScaleFactor)3, +0x11736b3c));", // IID4689 - "__ lzcntl(r24, Address(r25, r26, (Address::ScaleFactor)0, -0x5d098718));", // IID4690 - "__ lzcntl(r25, Address(r26, r27, (Address::ScaleFactor)3, +0x5bcf7b41));", // IID4691 - "__ lzcntl(r26, Address(r27, r28, (Address::ScaleFactor)0, -0x7e3785e0));", // IID4692 - "__ lzcntl(r27, Address(r28, +0x5259eaa5));", // IID4693 - "__ lzcntl(r28, Address(r29, r30, (Address::ScaleFactor)2, +0x2bfb671b));", // IID4694 - "__ lzcntl(r29, Address(r30, -0x52b7dc44));", // IID4695 - "__ lzcntl(r30, Address(r31, rcx, (Address::ScaleFactor)3, +0x24c9c2db));", // IID4696 - "__ lzcntl(r31, Address(rcx, rdx, (Address::ScaleFactor)3, +0x28e1731b));", // IID4697 -#endif // _LP64 - "__ orl(rcx, Address(rdx, rbx, (Address::ScaleFactor)2, -0x7cf122e));", // IID4698 -#ifdef _LP64 - "__ orl(rdx, Address(rbx, r8, (Address::ScaleFactor)2, +0x5ee6ee86));", // IID4699 - "__ orl(rbx, Address(r8, r9, (Address::ScaleFactor)2, -0x4b8887e0));", // IID4700 - "__ orl(r8, Address(r9, r10, (Address::ScaleFactor)0, +0x152be061));", // IID4701 - "__ orl(r9, Address(r10, r11, (Address::ScaleFactor)0, -0xdd5d9be));", // IID4702 - "__ orl(r10, Address(r11, r12, (Address::ScaleFactor)1, -0x61c0b390));", // IID4703 - "__ orl(r11, Address(r12, r13, (Address::ScaleFactor)0, +0x3c5acc32));", // IID4704 - "__ orl(r12, Address(r13, r14, (Address::ScaleFactor)3, -0x64bf306));", // IID4705 - "__ orl(r13, Address(r14, -0x696366c6));", // IID4706 - "__ orl(r14, Address(r15, r16, (Address::ScaleFactor)1, -0x45b8d71b));", // IID4707 - "__ orl(r15, Address(r16, -0x78a6803f));", // IID4708 - "__ orl(r16, Address(r17, r18, (Address::ScaleFactor)0, -0x247ee49d));", // IID4709 - "__ orl(r17, Address(r18, r19, (Address::ScaleFactor)2, -0x2831cc40));", // IID4710 - "__ orl(r18, Address(r19, r20, (Address::ScaleFactor)3, +0x7e9274e9));", // IID4711 - "__ orl(r19, Address(r20, r21, (Address::ScaleFactor)0, -0xec58753));", // IID4712 - "__ orl(r20, Address(r21, r22, (Address::ScaleFactor)2, +0x1ca61a13));", // IID4713 - "__ orl(r21, Address(r22, r23, (Address::ScaleFactor)1, -0x558b7bad));", // IID4714 - "__ orl(r22, Address(r23, r24, (Address::ScaleFactor)1, +0x5a06b094));", // IID4715 - "__ orl(r23, Address(r24, -0x1b964288));", // IID4716 - "__ orl(r24, Address(r25, -0x3e81fa91));", // IID4717 - "__ orl(r25, Address(r26, r27, (Address::ScaleFactor)3, -0x65d783e7));", // IID4718 - "__ orl(r26, Address(r27, r28, (Address::ScaleFactor)2, +0x4761d8d8));", // IID4719 - "__ orl(r27, Address(r28, +0x68e01562));", // IID4720 - "__ orl(r28, Address(r29, r30, (Address::ScaleFactor)1, +0x5324b239));", // IID4721 - "__ orl(r29, Address(r30, -0x321d8901));", // IID4722 - "__ orl(r30, Address(r31, -0x27c4ebb8));", // IID4723 - "__ orl(r31, Address(rcx, +0x56c7872a));", // IID4724 -#endif // _LP64 - "__ adcl(rcx, Address(rdx, rbx, (Address::ScaleFactor)1, -0x3accfcad));", // IID4725 -#ifdef _LP64 - "__ adcl(rdx, Address(rbx, r8, (Address::ScaleFactor)2, +0x1be35c2a));", // IID4726 - "__ adcl(rbx, Address(r8, -0x52028a9c));", // IID4727 - "__ adcl(r8, Address(r9, -0x2458c9d7));", // IID4728 - "__ adcl(r9, Address(r10, -0x338421cd));", // IID4729 - "__ adcl(r10, Address(r11, r12, (Address::ScaleFactor)1, -0x42dae6fb));", // IID4730 - "__ adcl(r11, Address(r12, r13, (Address::ScaleFactor)3, -0x2734e5a9));", // IID4731 - "__ adcl(r12, Address(r13, r14, (Address::ScaleFactor)3, +0x74e0a8b));", // IID4732 - "__ adcl(r13, Address(r14, r15, (Address::ScaleFactor)3, +0x42808d7b));", // IID4733 - "__ adcl(r14, Address(r15, r16, (Address::ScaleFactor)0, +0x2a83b3c6));", // IID4734 - "__ adcl(r15, Address(r16, r17, (Address::ScaleFactor)2, +0x77dd3704));", // IID4735 - "__ adcl(r16, Address(r17, r18, (Address::ScaleFactor)0, -0x22f398b5));", // IID4736 - "__ adcl(r17, Address(r18, r19, (Address::ScaleFactor)3, +0x1b033d71));", // IID4737 - "__ adcl(r18, Address(r19, r20, (Address::ScaleFactor)0, -0x1bd9f510));", // IID4738 - "__ adcl(r19, Address(r20, r21, (Address::ScaleFactor)1, -0xb618dff));", // IID4739 - "__ adcl(r20, Address(r21, -0x503819f6));", // IID4740 - "__ adcl(r21, Address(r22, -0xdd504de));", // IID4741 - "__ adcl(r22, Address(r23, r24, (Address::ScaleFactor)0, -0x5b832440));", // IID4742 - "__ adcl(r23, Address(r24, r25, (Address::ScaleFactor)0, +0x2b17f604));", // IID4743 - "__ adcl(r24, Address(r25, r26, (Address::ScaleFactor)1, +0x501c9420));", // IID4744 - "__ adcl(r25, Address(r26, r27, (Address::ScaleFactor)3, +0x2bea7263));", // IID4745 - "__ adcl(r26, Address(r27, r28, (Address::ScaleFactor)0, +0x19c7227));", // IID4746 - "__ adcl(r27, Address(r28, r29, (Address::ScaleFactor)1, -0x2ebcfc96));", // IID4747 - "__ adcl(r28, Address(r29, r30, (Address::ScaleFactor)3, +0x6933220d));", // IID4748 - "__ adcl(r29, Address(r30, r31, (Address::ScaleFactor)2, +0x3e856228));", // IID4749 - "__ adcl(r30, Address(r31, rcx, (Address::ScaleFactor)1, +0x362fce52));", // IID4750 - "__ adcl(r31, Address(rcx, -0x77d2eccc));", // IID4751 -#endif // _LP64 - "__ imull(rcx, Address(rdx, rbx, (Address::ScaleFactor)1, +0x269c1243));", // IID4752 -#ifdef _LP64 - "__ imull(rdx, Address(rbx, r8, (Address::ScaleFactor)0, -0x49c27da1));", // IID4753 - "__ imull(rbx, Address(r8, r9, (Address::ScaleFactor)2, -0x75b6decd));", // IID4754 - "__ imull(r8, Address(r9, r10, (Address::ScaleFactor)3, +0x53c17c94));", // IID4755 - "__ imull(r9, Address(r10, r11, (Address::ScaleFactor)2, +0x3d6f2813));", // IID4756 - "__ imull(r10, Address(r11, -0x14565335));", // IID4757 - "__ imull(r11, Address(r12, r13, (Address::ScaleFactor)1, -0x200a2faa));", // IID4758 - "__ imull(r12, Address(r13, +0x62b3f073));", // IID4759 - "__ imull(r13, Address(r14, r15, (Address::ScaleFactor)3, -0x7bbcf468));", // IID4760 - "__ imull(r14, Address(r15, -0x3b0b3aa6));", // IID4761 - "__ imull(r15, Address(r16, r17, (Address::ScaleFactor)1, +0x1badcf4b));", // IID4762 - "__ imull(r16, Address(r17, r18, (Address::ScaleFactor)2, -0x6e4c8291));", // IID4763 - "__ imull(r17, Address(r18, r19, (Address::ScaleFactor)1, +0x5bf1ce62));", // IID4764 - "__ imull(r18, Address(r19, r20, (Address::ScaleFactor)1, +0xf2b81ef));", // IID4765 - "__ imull(r19, Address(r20, r21, (Address::ScaleFactor)1, +0x62a622e6));", // IID4766 - "__ imull(r20, Address(r21, r22, (Address::ScaleFactor)2, -0x2187afd));", // IID4767 - "__ imull(r21, Address(r22, r23, (Address::ScaleFactor)1, +0x1d008183));", // IID4768 - "__ imull(r22, Address(r23, -0x43661b2e));", // IID4769 - "__ imull(r23, Address(r24, r25, (Address::ScaleFactor)3, -0x6903690e));", // IID4770 - "__ imull(r24, Address(r25, r26, (Address::ScaleFactor)2, -0x66e93a95));", // IID4771 - "__ imull(r25, Address(r26, r27, (Address::ScaleFactor)1, +0xa7c9594));", // IID4772 - "__ imull(r26, Address(r27, r28, (Address::ScaleFactor)3, +0x749a0ed2));", // IID4773 - "__ imull(r27, Address(r28, r29, (Address::ScaleFactor)3, -0x23ccfedc));", // IID4774 - "__ imull(r28, Address(r29, r30, (Address::ScaleFactor)3, -0x24735ca5));", // IID4775 - "__ imull(r29, Address(r30, r31, (Address::ScaleFactor)3, +0x176d1f8e));", // IID4776 - "__ imull(r30, Address(r31, rcx, (Address::ScaleFactor)2, -0x6a36b5e4));", // IID4777 - "__ imull(r31, Address(rcx, rdx, (Address::ScaleFactor)1, -0x4609ada8));", // IID4778 -#endif // _LP64 - "__ popcntl(rcx, Address(rdx, rbx, (Address::ScaleFactor)0, -0x7277add7));", // IID4779 -#ifdef _LP64 - "__ popcntl(rdx, Address(rbx, r8, (Address::ScaleFactor)2, +0x5160eaa));", // IID4780 - "__ popcntl(rbx, Address(r8, r9, (Address::ScaleFactor)3, -0x6d4ca8ee));", // IID4781 - "__ popcntl(r8, Address(r9, r10, (Address::ScaleFactor)3, -0x61fb2fe3));", // IID4782 - "__ popcntl(r9, Address(r10, r11, (Address::ScaleFactor)0, -0x31e03721));", // IID4783 - "__ popcntl(r10, Address(r11, r12, (Address::ScaleFactor)0, +0x597d2a14));", // IID4784 - "__ popcntl(r11, Address(r12, r13, (Address::ScaleFactor)2, +0x2b08924));", // IID4785 - "__ popcntl(r12, Address(r13, r14, (Address::ScaleFactor)1, -0x5a6477ac));", // IID4786 - "__ popcntl(r13, Address(r14, r15, (Address::ScaleFactor)3, -0x5656bff5));", // IID4787 - "__ popcntl(r14, Address(r15, r16, (Address::ScaleFactor)2, -0x20c5b87a));", // IID4788 - "__ popcntl(r15, Address(r16, r17, (Address::ScaleFactor)2, +0x1a2a6f91));", // IID4789 - "__ popcntl(r16, Address(r17, r18, (Address::ScaleFactor)0, +0x7afe98cb));", // IID4790 - "__ popcntl(r17, Address(r18, r19, (Address::ScaleFactor)1, +0x3b259fca));", // IID4791 - "__ popcntl(r18, Address(r19, r20, (Address::ScaleFactor)2, -0x25e152c8));", // IID4792 - "__ popcntl(r19, Address(r20, r21, (Address::ScaleFactor)3, +0x6456f529));", // IID4793 - "__ popcntl(r20, Address(r21, +0x313d91f3));", // IID4794 - "__ popcntl(r21, Address(r22, r23, (Address::ScaleFactor)3, -0x1dad3be9));", // IID4795 - "__ popcntl(r22, Address(r23, -0x3d206686));", // IID4796 - "__ popcntl(r23, Address(r24, -0x4ae4d044));", // IID4797 - "__ popcntl(r24, Address(r25, r26, (Address::ScaleFactor)2, +0x5415a389));", // IID4798 - "__ popcntl(r25, Address(r26, -0x4674a9e7));", // IID4799 - "__ popcntl(r26, Address(r27, r28, (Address::ScaleFactor)1, +0x7328bc46));", // IID4800 - "__ popcntl(r27, Address(r28, r29, (Address::ScaleFactor)0, +0x2d8ef324));", // IID4801 - "__ popcntl(r28, Address(r29, r30, (Address::ScaleFactor)3, -0x1f6a44ef));", // IID4802 - "__ popcntl(r29, Address(r30, r31, (Address::ScaleFactor)0, +0x67d63d34));", // IID4803 - "__ popcntl(r30, Address(r31, rcx, (Address::ScaleFactor)2, +0x10dc29cd));", // IID4804 - "__ popcntl(r31, Address(rcx, -0xf5936d5));", // IID4805 -#endif // _LP64 - "__ sbbl(rcx, Address(rdx, rbx, (Address::ScaleFactor)0, +0x7b08b555));", // IID4806 -#ifdef _LP64 - "__ sbbl(rdx, Address(rbx, r8, (Address::ScaleFactor)3, +0x3a3d7695));", // IID4807 - "__ sbbl(rbx, Address(r8, r9, (Address::ScaleFactor)2, -0x136403c0));", // IID4808 - "__ sbbl(r8, Address(r9, +0x4b1beab2));", // IID4809 - "__ sbbl(r9, Address(r10, r11, (Address::ScaleFactor)2, -0x139c200c));", // IID4810 - "__ sbbl(r10, Address(r11, r12, (Address::ScaleFactor)3, -0x10f57174));", // IID4811 - "__ sbbl(r11, Address(r12, -0x105a53db));", // IID4812 - "__ sbbl(r12, Address(r13, r14, (Address::ScaleFactor)3, +0x2924e731));", // IID4813 - "__ sbbl(r13, Address(r14, r15, (Address::ScaleFactor)3, +0x680a20bd));", // IID4814 - "__ sbbl(r14, Address(r15, r16, (Address::ScaleFactor)0, -0x48ea8160));", // IID4815 - "__ sbbl(r15, Address(r16, r17, (Address::ScaleFactor)0, +0xcfe8b0));", // IID4816 - "__ sbbl(r16, Address(r17, r18, (Address::ScaleFactor)3, -0x578c3e1c));", // IID4817 - "__ sbbl(r17, Address(r18, r19, (Address::ScaleFactor)2, -0x7b1d357));", // IID4818 - "__ sbbl(r18, Address(r19, r20, (Address::ScaleFactor)1, +0x4948b9a9));", // IID4819 - "__ sbbl(r19, Address(r20, -0x1fddcef));", // IID4820 - "__ sbbl(r20, Address(r21, r22, (Address::ScaleFactor)2, -0x70ecf8a1));", // IID4821 - "__ sbbl(r21, Address(r22, +0x5a3da47f));", // IID4822 - "__ sbbl(r22, Address(r23, +0x2a4fd6ae));", // IID4823 - "__ sbbl(r23, Address(r24, r25, (Address::ScaleFactor)3, -0x96f495));", // IID4824 - "__ sbbl(r24, Address(r25, r26, (Address::ScaleFactor)0, -0x6cf4d0d9));", // IID4825 - "__ sbbl(r25, Address(r26, r27, (Address::ScaleFactor)2, +0x340b7f72));", // IID4826 - "__ sbbl(r26, Address(r27, r28, (Address::ScaleFactor)1, +0x5d4971c2));", // IID4827 - "__ sbbl(r27, Address(r28, r29, (Address::ScaleFactor)0, -0xd473b12));", // IID4828 - "__ sbbl(r28, Address(r29, -0x68efd76f));", // IID4829 - "__ sbbl(r29, Address(r30, +0x55bcb88d));", // IID4830 - "__ sbbl(r30, Address(r31, rcx, (Address::ScaleFactor)2, -0x174fdea9));", // IID4831 - "__ sbbl(r31, Address(rcx, rdx, (Address::ScaleFactor)3, -0x2e191440));", // IID4832 -#endif // _LP64 - "__ subl(rcx, Address(rdx, rbx, (Address::ScaleFactor)2, +0x560d7935));", // IID4833 -#ifdef _LP64 - "__ subl(rdx, Address(rbx, r8, (Address::ScaleFactor)2, +0x2dd7995a));", // IID4834 - "__ subl(rbx, Address(r8, r9, (Address::ScaleFactor)2, +0x7c44d8ac));", // IID4835 - "__ subl(r8, Address(r9, r10, (Address::ScaleFactor)0, +0x62de149f));", // IID4836 - "__ subl(r9, Address(r10, r11, (Address::ScaleFactor)3, +0x390bf310));", // IID4837 - "__ subl(r10, Address(r11, r12, (Address::ScaleFactor)1, -0x741600d0));", // IID4838 - "__ subl(r11, Address(r12, +0x605177c5));", // IID4839 - "__ subl(r12, Address(r13, r14, (Address::ScaleFactor)1, -0x4830b87));", // IID4840 - "__ subl(r13, Address(r14, r15, (Address::ScaleFactor)0, -0x788436cd));", // IID4841 - "__ subl(r14, Address(r15, r16, (Address::ScaleFactor)0, -0x3d7ea1f5));", // IID4842 - "__ subl(r15, Address(r16, r17, (Address::ScaleFactor)2, +0x592c4911));", // IID4843 - "__ subl(r16, Address(r17, r18, (Address::ScaleFactor)3, -0x3000512f));", // IID4844 - "__ subl(r17, Address(r18, -0x443efdb5));", // IID4845 - "__ subl(r18, Address(r19, r20, (Address::ScaleFactor)3, +0x6c791c6f));", // IID4846 - "__ subl(r19, Address(r20, -0x392981d7));", // IID4847 - "__ subl(r20, Address(r21, -0x6013a271));", // IID4848 - "__ subl(r21, Address(r22, r23, (Address::ScaleFactor)2, +0x420bc49d));", // IID4849 - "__ subl(r22, Address(r23, r24, (Address::ScaleFactor)0, +0x473ca457));", // IID4850 - "__ subl(r23, Address(r24, r25, (Address::ScaleFactor)1, +0x6495d8c1));", // IID4851 - "__ subl(r24, Address(r25, r26, (Address::ScaleFactor)2, +0x5c9f095e));", // IID4852 - "__ subl(r25, Address(r26, r27, (Address::ScaleFactor)0, -0xfe5c065));", // IID4853 - "__ subl(r26, Address(r27, +0x3c7c21c1));", // IID4854 - "__ subl(r27, Address(r28, r29, (Address::ScaleFactor)0, -0x3178a9b9));", // IID4855 - "__ subl(r28, Address(r29, r30, (Address::ScaleFactor)2, +0x761b0b23));", // IID4856 - "__ subl(r29, Address(r30, +0x62e6607c));", // IID4857 - "__ subl(r30, Address(r31, rcx, (Address::ScaleFactor)3, -0x1ce946c3));", // IID4858 - "__ subl(r31, Address(rcx, rdx, (Address::ScaleFactor)0, -0x25cbf1d5));", // IID4859 -#endif // _LP64 - "__ tzcntl(rcx, Address(rdx, rbx, (Address::ScaleFactor)3, +0x319ea32b));", // IID4860 -#ifdef _LP64 - "__ tzcntl(rdx, Address(rbx, -0x2cc769d3));", // IID4861 - "__ tzcntl(rbx, Address(r8, r9, (Address::ScaleFactor)1, -0x108d865f));", // IID4862 - "__ tzcntl(r8, Address(r9, r10, (Address::ScaleFactor)3, +0x75a4de01));", // IID4863 - "__ tzcntl(r9, Address(r10, r11, (Address::ScaleFactor)2, -0x1e1227ba));", // IID4864 - "__ tzcntl(r10, Address(r11, r12, (Address::ScaleFactor)2, -0x6d3ac6f6));", // IID4865 - "__ tzcntl(r11, Address(r12, -0x37bffcbb));", // IID4866 - "__ tzcntl(r12, Address(r13, +0x5d7c7531));", // IID4867 - "__ tzcntl(r13, Address(r14, r15, (Address::ScaleFactor)3, +0x3b86099d));", // IID4868 - "__ tzcntl(r14, Address(r15, r16, (Address::ScaleFactor)2, -0x3220dc78));", // IID4869 - "__ tzcntl(r15, Address(r16, r17, (Address::ScaleFactor)2, -0x66ee4520));", // IID4870 - "__ tzcntl(r16, Address(r17, r18, (Address::ScaleFactor)3, -0x47a8e8e0));", // IID4871 - "__ tzcntl(r17, Address(r18, r19, (Address::ScaleFactor)1, +0x4b102b97));", // IID4872 - "__ tzcntl(r18, Address(r19, r20, (Address::ScaleFactor)2, +0x3aa300a9));", // IID4873 - "__ tzcntl(r19, Address(r20, r21, (Address::ScaleFactor)1, +0x5f168253));", // IID4874 - "__ tzcntl(r20, Address(r21, r22, (Address::ScaleFactor)2, -0xc74da85));", // IID4875 - "__ tzcntl(r21, Address(r22, r23, (Address::ScaleFactor)0, +0x24080358));", // IID4876 - "__ tzcntl(r22, Address(r23, +0x51e7509f));", // IID4877 - "__ tzcntl(r23, Address(r24, -0x39202d24));", // IID4878 - "__ tzcntl(r24, Address(r25, r26, (Address::ScaleFactor)1, -0x595296f3));", // IID4879 - "__ tzcntl(r25, Address(r26, r27, (Address::ScaleFactor)2, +0x574d421));", // IID4880 - "__ tzcntl(r26, Address(r27, r28, (Address::ScaleFactor)3, -0x6b949976));", // IID4881 - "__ tzcntl(r27, Address(r28, r29, (Address::ScaleFactor)1, +0x23a09c7b));", // IID4882 - "__ tzcntl(r28, Address(r29, r30, (Address::ScaleFactor)0, +0xdd8fdd3));", // IID4883 - "__ tzcntl(r29, Address(r30, r31, (Address::ScaleFactor)1, +0x40b82736));", // IID4884 - "__ tzcntl(r30, Address(r31, rcx, (Address::ScaleFactor)0, +0x2056eb72));", // IID4885 - "__ tzcntl(r31, Address(rcx, rdx, (Address::ScaleFactor)3, +0x4c3167f0));", // IID4886 -#endif // _LP64 - "__ xorb(rcx, Address(rdx, rbx, (Address::ScaleFactor)2, +0x459469dc));", // IID4887 -#ifdef _LP64 - "__ xorb(rdx, Address(rbx, r8, (Address::ScaleFactor)2, -0x7c751505));", // IID4888 - "__ xorb(rbx, Address(r8, r9, (Address::ScaleFactor)1, -0x61a7bd72));", // IID4889 - "__ xorb(r8, Address(r9, +0x7012683));", // IID4890 - "__ xorb(r9, Address(r10, r11, (Address::ScaleFactor)0, +0x2dc7907e));", // IID4891 - "__ xorb(r10, Address(r11, +0x3033889d));", // IID4892 - "__ xorb(r11, Address(r12, -0x38e813ed));", // IID4893 - "__ xorb(r12, Address(r13, -0x7d0d7dfa));", // IID4894 - "__ xorb(r13, Address(r14, +0x22380f3d));", // IID4895 - "__ xorb(r14, Address(r15, r16, (Address::ScaleFactor)1, +0x9cb491a));", // IID4896 - "__ xorb(r15, Address(r16, r17, (Address::ScaleFactor)2, +0x17ad2b69));", // IID4897 - "__ xorb(r16, Address(r17, +0x628ff5b3));", // IID4898 - "__ xorb(r17, Address(r18, r19, (Address::ScaleFactor)0, -0x3553432c));", // IID4899 - "__ xorb(r18, Address(r19, r20, (Address::ScaleFactor)1, -0x553548dc));", // IID4900 - "__ xorb(r19, Address(r20, -0x67c97983));", // IID4901 - "__ xorb(r20, Address(r21, r22, (Address::ScaleFactor)2, +0x60ccc043));", // IID4902 - "__ xorb(r21, Address(r22, +0x47aa792e));", // IID4903 - "__ xorb(r22, Address(r23, r24, (Address::ScaleFactor)2, -0x260a9a93));", // IID4904 - "__ xorb(r23, Address(r24, +0x7db3e421));", // IID4905 - "__ xorb(r24, Address(r25, +0x3a446a5));", // IID4906 - "__ xorb(r25, Address(r26, r27, (Address::ScaleFactor)2, +0xa527b75));", // IID4907 - "__ xorb(r26, Address(r27, r28, (Address::ScaleFactor)0, +0x7e96f60c));", // IID4908 - "__ xorb(r27, Address(r28, +0x3f45f3c5));", // IID4909 - "__ xorb(r28, Address(r29, r30, (Address::ScaleFactor)1, +0x168246db));", // IID4910 - "__ xorb(r29, Address(r30, r31, (Address::ScaleFactor)0, -0x61861dcf));", // IID4911 - "__ xorb(r30, Address(r31, rcx, (Address::ScaleFactor)0, -0x3ef6dbb3));", // IID4912 - "__ xorb(r31, Address(rcx, -0xb559bd2));", // IID4913 -#endif // _LP64 - "__ xorw(rcx, Address(rdx, -0x62f6ef46));", // IID4914 -#ifdef _LP64 - "__ xorw(rdx, Address(rbx, r8, (Address::ScaleFactor)2, -0x4aaedbcd));", // IID4915 - "__ xorw(rbx, Address(r8, -0x3bb94c56));", // IID4916 - "__ xorw(r8, Address(r9, -0x3859af82));", // IID4917 - "__ xorw(r9, Address(r10, r11, (Address::ScaleFactor)3, +0x52a56164));", // IID4918 - "__ xorw(r10, Address(r11, r12, (Address::ScaleFactor)1, -0x6307ef0f));", // IID4919 - "__ xorw(r11, Address(r12, r13, (Address::ScaleFactor)2, -0x3615a069));", // IID4920 - "__ xorw(r12, Address(r13, -0x3a1a846a));", // IID4921 - "__ xorw(r13, Address(r14, r15, (Address::ScaleFactor)2, -0x77b94224));", // IID4922 - "__ xorw(r14, Address(r15, r16, (Address::ScaleFactor)3, +0x591ffe3c));", // IID4923 - "__ xorw(r15, Address(r16, r17, (Address::ScaleFactor)2, -0x181e6bee));", // IID4924 - "__ xorw(r16, Address(r17, r18, (Address::ScaleFactor)2, -0x59ec1930));", // IID4925 - "__ xorw(r17, Address(r18, r19, (Address::ScaleFactor)3, +0x175ac45d));", // IID4926 - "__ xorw(r18, Address(r19, r20, (Address::ScaleFactor)1, -0x319eb463));", // IID4927 - "__ xorw(r19, Address(r20, r21, (Address::ScaleFactor)2, -0x6b3d3e4d));", // IID4928 - "__ xorw(r20, Address(r21, r22, (Address::ScaleFactor)1, -0x5a51a0a2));", // IID4929 - "__ xorw(r21, Address(r22, r23, (Address::ScaleFactor)2, -0x15bd9e38));", // IID4930 - "__ xorw(r22, Address(r23, +0x376ad0f1));", // IID4931 - "__ xorw(r23, Address(r24, r25, (Address::ScaleFactor)1, +0x182d4cbf));", // IID4932 - "__ xorw(r24, Address(r25, r26, (Address::ScaleFactor)2, -0x5f5e7c44));", // IID4933 - "__ xorw(r25, Address(r26, r27, (Address::ScaleFactor)3, -0x1eea041e));", // IID4934 - "__ xorw(r26, Address(r27, r28, (Address::ScaleFactor)0, +0x4f3b80c2));", // IID4935 - "__ xorw(r27, Address(r28, +0xc2be562));", // IID4936 - "__ xorw(r28, Address(r29, r30, (Address::ScaleFactor)1, +0x3c19e487));", // IID4937 - "__ xorw(r29, Address(r30, r31, (Address::ScaleFactor)0, +0x24e44ea));", // IID4938 - "__ xorw(r30, Address(r31, rcx, (Address::ScaleFactor)3, +0x7bc5b9f));", // IID4939 - "__ xorw(r31, Address(rcx, rdx, (Address::ScaleFactor)3, -0x270296ce));", // IID4940 -#endif // _LP64 - "__ xorl(rcx, Address(rdx, rbx, (Address::ScaleFactor)3, +0x7bdbba22));", // IID4941 -#ifdef _LP64 - "__ xorl(rdx, Address(rbx, +0x1d9ea109));", // IID4942 - "__ xorl(rbx, Address(r8, r9, (Address::ScaleFactor)3, -0x7da3454c));", // IID4943 - "__ xorl(r8, Address(r9, r10, (Address::ScaleFactor)0, -0x7b05ca1d));", // IID4944 - "__ xorl(r9, Address(r10, r11, (Address::ScaleFactor)2, -0x3117ca5b));", // IID4945 - "__ xorl(r10, Address(r11, +0x181e2c9));", // IID4946 - "__ xorl(r11, Address(r12, r13, (Address::ScaleFactor)0, -0x7b2a0e9b));", // IID4947 - "__ xorl(r12, Address(r13, r14, (Address::ScaleFactor)3, -0x373fa4c7));", // IID4948 - "__ xorl(r13, Address(r14, r15, (Address::ScaleFactor)2, +0x300bd5db));", // IID4949 - "__ xorl(r14, Address(r15, r16, (Address::ScaleFactor)1, +0x62873caf));", // IID4950 - "__ xorl(r15, Address(r16, r17, (Address::ScaleFactor)1, -0x3e35ef58));", // IID4951 - "__ xorl(r16, Address(r17, r18, (Address::ScaleFactor)1, -0xd7b2daf));", // IID4952 - "__ xorl(r17, Address(r18, r19, (Address::ScaleFactor)0, +0x1138818e));", // IID4953 - "__ xorl(r18, Address(r19, r20, (Address::ScaleFactor)2, +0xd1fad7f));", // IID4954 - "__ xorl(r19, Address(r20, r21, (Address::ScaleFactor)3, -0x5ba17c84));", // IID4955 - "__ xorl(r20, Address(r21, r22, (Address::ScaleFactor)2, +0x12c91374));", // IID4956 - "__ xorl(r21, Address(r22, r23, (Address::ScaleFactor)1, +0x38c42d44));", // IID4957 - "__ xorl(r22, Address(r23, r24, (Address::ScaleFactor)0, +0x739ca529));", // IID4958 - "__ xorl(r23, Address(r24, r25, (Address::ScaleFactor)1, +0x3643ac88));", // IID4959 - "__ xorl(r24, Address(r25, r26, (Address::ScaleFactor)0, -0x4260b17d));", // IID4960 - "__ xorl(r25, Address(r26, r27, (Address::ScaleFactor)0, -0x3a2e00e2));", // IID4961 - "__ xorl(r26, Address(r27, r28, (Address::ScaleFactor)3, -0x1288117e));", // IID4962 - "__ xorl(r27, Address(r28, -0x1fd5af9));", // IID4963 - "__ xorl(r28, Address(r29, +0x57334343));", // IID4964 - "__ xorl(r29, Address(r30, +0x6a744fa));", // IID4965 - "__ xorl(r30, Address(r31, +0x6c0587dc));", // IID4966 - "__ xorl(r31, Address(rcx, rdx, (Address::ScaleFactor)2, -0x5a741d07));", // IID4967 -#endif // _LP64 - "__ movb(rcx, Address(rdx, rbx, (Address::ScaleFactor)0, +0x33ea1cd1));", // IID4968 -#ifdef _LP64 - "__ movb(rdx, Address(rbx, r8, (Address::ScaleFactor)2, +0x6f2e35ee));", // IID4969 - "__ movb(rbx, Address(r8, +0x10c377b5));", // IID4970 - "__ movb(r8, Address(r9, r10, (Address::ScaleFactor)2, +0x7f66182f));", // IID4971 - "__ movb(r9, Address(r10, r11, (Address::ScaleFactor)1, +0x62ec2e36));", // IID4972 - "__ movb(r10, Address(r11, r12, (Address::ScaleFactor)2, +0x7b10548e));", // IID4973 - "__ movb(r11, Address(r12, r13, (Address::ScaleFactor)3, +0x52850528));", // IID4974 - "__ movb(r12, Address(r13, r14, (Address::ScaleFactor)2, -0x7221b0d3));", // IID4975 - "__ movb(r13, Address(r14, +0x78b48918));", // IID4976 - "__ movb(r14, Address(r15, r16, (Address::ScaleFactor)3, +0x101271ed));", // IID4977 - "__ movb(r15, Address(r16, r17, (Address::ScaleFactor)1, +0x7f3d4347));", // IID4978 - "__ movb(r16, Address(r17, -0x67e7bcdc));", // IID4979 - "__ movb(r17, Address(r18, r19, (Address::ScaleFactor)1, -0x67444865));", // IID4980 - "__ movb(r18, Address(r19, +0x7bf83061));", // IID4981 - "__ movb(r19, Address(r20, r21, (Address::ScaleFactor)1, +0x113a64c8));", // IID4982 - "__ movb(r20, Address(r21, r22, (Address::ScaleFactor)2, -0x3b2dd13f));", // IID4983 - "__ movb(r21, Address(r22, r23, (Address::ScaleFactor)0, +0x4d4264e6));", // IID4984 - "__ movb(r22, Address(r23, r24, (Address::ScaleFactor)3, +0x41cca50a));", // IID4985 - "__ movb(r23, Address(r24, r25, (Address::ScaleFactor)2, +0x4c6e6d63));", // IID4986 - "__ movb(r24, Address(r25, +0x16502ecc));", // IID4987 - "__ movb(r25, Address(r26, r27, (Address::ScaleFactor)3, +0x26af79cc));", // IID4988 - "__ movb(r26, Address(r27, r28, (Address::ScaleFactor)1, +0x209618b1));", // IID4989 - "__ movb(r27, Address(r28, -0x7d804f03));", // IID4990 - "__ movb(r28, Address(r29, r30, (Address::ScaleFactor)3, +0x4d0f4f7b));", // IID4991 - "__ movb(r29, Address(r30, r31, (Address::ScaleFactor)1, +0x7589008b));", // IID4992 - "__ movb(r30, Address(r31, +0x33610d5a));", // IID4993 - "__ movb(r31, Address(rcx, rdx, (Address::ScaleFactor)2, -0x188ff6d0));", // IID4994 -#endif // _LP64 - "__ movl(rcx, Address(rdx, rbx, (Address::ScaleFactor)3, -0xf8e3c7b));", // IID4995 -#ifdef _LP64 - "__ movl(rdx, Address(rbx, r8, (Address::ScaleFactor)3, +0x573662aa));", // IID4996 - "__ movl(rbx, Address(r8, -0x55c769a3));", // IID4997 - "__ movl(r8, Address(r9, r10, (Address::ScaleFactor)1, -0x6a6e44ae));", // IID4998 - "__ movl(r9, Address(r10, r11, (Address::ScaleFactor)0, -0x7209b464));", // IID4999 - "__ movl(r10, Address(r11, r12, (Address::ScaleFactor)3, -0x436e6b59));", // IID5000 - "__ movl(r11, Address(r12, -0x133c2264));", // IID5001 - "__ movl(r12, Address(r13, r14, (Address::ScaleFactor)1, -0x1c6fb37));", // IID5002 - "__ movl(r13, Address(r14, r15, (Address::ScaleFactor)2, +0x1b532d53));", // IID5003 - "__ movl(r14, Address(r15, r16, (Address::ScaleFactor)0, -0x5af35574));", // IID5004 - "__ movl(r15, Address(r16, r17, (Address::ScaleFactor)2, -0x124cd116));", // IID5005 - "__ movl(r16, Address(r17, r18, (Address::ScaleFactor)0, -0x29bb1bd6));", // IID5006 - "__ movl(r17, Address(r18, r19, (Address::ScaleFactor)2, -0x40293158));", // IID5007 - "__ movl(r18, Address(r19, r20, (Address::ScaleFactor)2, +0x817a414));", // IID5008 - "__ movl(r19, Address(r20, +0x4ddbcaa6));", // IID5009 - "__ movl(r20, Address(r21, r22, (Address::ScaleFactor)0, -0x3364c52e));", // IID5010 - "__ movl(r21, Address(r22, r23, (Address::ScaleFactor)2, +0x6b94613a));", // IID5011 - "__ movl(r22, Address(r23, -0x6e99438f));", // IID5012 - "__ movl(r23, Address(r24, r25, (Address::ScaleFactor)3, -0x5ca903b4));", // IID5013 - "__ movl(r24, Address(r25, r26, (Address::ScaleFactor)1, -0x3acd6341));", // IID5014 - "__ movl(r25, Address(r26, r27, (Address::ScaleFactor)3, -0x2a8bf314));", // IID5015 - "__ movl(r26, Address(r27, r28, (Address::ScaleFactor)0, -0x5501abef));", // IID5016 - "__ movl(r27, Address(r28, r29, (Address::ScaleFactor)2, +0x62de9111));", // IID5017 - "__ movl(r28, Address(r29, +0x647de35));", // IID5018 - "__ movl(r29, Address(r30, -0x46d0eea1));", // IID5019 - "__ movl(r30, Address(r31, rcx, (Address::ScaleFactor)0, -0x31278014));", // IID5020 - "__ movl(r31, Address(rcx, -0x21c70de5));", // IID5021 -#endif // _LP64 - "__ leal(rcx, Address(rdx, rbx, (Address::ScaleFactor)3, +0x6093bc82));", // IID5022 -#ifdef _LP64 - "__ leal(rdx, Address(rbx, -0x5d27c65c));", // IID5023 - "__ leal(rbx, Address(r8, r9, (Address::ScaleFactor)2, +0x10d5f04f));", // IID5024 - "__ leal(r8, Address(r9, r10, (Address::ScaleFactor)1, -0x78c0376c));", // IID5025 - "__ leal(r9, Address(r10, r11, (Address::ScaleFactor)1, -0x217cf559));", // IID5026 - "__ leal(r10, Address(r11, r12, (Address::ScaleFactor)3, -0x48f76eb));", // IID5027 - "__ leal(r11, Address(r12, +0x7b3e170));", // IID5028 - "__ leal(r12, Address(r13, -0x3337c21e));", // IID5029 - "__ leal(r13, Address(r14, r15, (Address::ScaleFactor)1, +0x1ed6b355));", // IID5030 - "__ leal(r14, Address(r15, r16, (Address::ScaleFactor)0, -0x549ee11b));", // IID5031 - "__ leal(r15, Address(r16, r17, (Address::ScaleFactor)3, +0x65f3a4f9));", // IID5032 - "__ leal(r16, Address(r17, r18, (Address::ScaleFactor)2, -0x6541fb51));", // IID5033 - "__ leal(r17, Address(r18, r19, (Address::ScaleFactor)3, -0x16013a54));", // IID5034 - "__ leal(r18, Address(r19, +0x66158c86));", // IID5035 - "__ leal(r19, Address(r20, +0x394b4713));", // IID5036 - "__ leal(r20, Address(r21, r22, (Address::ScaleFactor)2, +0x6e45d660));", // IID5037 - "__ leal(r21, Address(r22, +0x4c91b94c));", // IID5038 - "__ leal(r22, Address(r23, r24, (Address::ScaleFactor)3, +0x179cee8e));", // IID5039 - "__ leal(r23, Address(r24, r25, (Address::ScaleFactor)1, +0x7ba7b97d));", // IID5040 - "__ leal(r24, Address(r25, r26, (Address::ScaleFactor)3, -0x5e8c7f2a));", // IID5041 - "__ leal(r25, Address(r26, r27, (Address::ScaleFactor)3, -0x55a5ae62));", // IID5042 - "__ leal(r26, Address(r27, r28, (Address::ScaleFactor)2, -0x3eea2874));", // IID5043 - "__ leal(r27, Address(r28, r29, (Address::ScaleFactor)3, -0x6bc7eb0));", // IID5044 - "__ leal(r28, Address(r29, r30, (Address::ScaleFactor)2, +0x5c785e23));", // IID5045 - "__ leal(r29, Address(r30, r31, (Address::ScaleFactor)3, -0x5f84cd89));", // IID5046 - "__ leal(r30, Address(r31, rcx, (Address::ScaleFactor)0, -0x75c6225d));", // IID5047 - "__ leal(r31, Address(rcx, -0x5adb247b));", // IID5048 -#endif // _LP64 - "__ xchgb(rcx, Address(rdx, rbx, (Address::ScaleFactor)1, +0x5fe99a52));", // IID5049 -#ifdef _LP64 - "__ xchgb(rdx, Address(rbx, r8, (Address::ScaleFactor)1, -0x3061e0e7));", // IID5050 - "__ xchgb(rbx, Address(r8, r9, (Address::ScaleFactor)3, +0x2a4a96f7));", // IID5051 - "__ xchgb(r8, Address(r9, r10, (Address::ScaleFactor)3, +0x6c39aa44));", // IID5052 - "__ xchgb(r9, Address(r10, r11, (Address::ScaleFactor)2, +0x17ddd328));", // IID5053 - "__ xchgb(r10, Address(r11, r12, (Address::ScaleFactor)3, +0x6046f56d));", // IID5054 - "__ xchgb(r11, Address(r12, -0x37a40268));", // IID5055 - "__ xchgb(r12, Address(r13, r14, (Address::ScaleFactor)1, -0x105e5aba));", // IID5056 - "__ xchgb(r13, Address(r14, r15, (Address::ScaleFactor)3, -0x4582f852));", // IID5057 - "__ xchgb(r14, Address(r15, -0x4c3b2384));", // IID5058 - "__ xchgb(r15, Address(r16, +0x3a5aef8c));", // IID5059 - "__ xchgb(r16, Address(r17, +0x6e457cab));", // IID5060 - "__ xchgb(r17, Address(r18, r19, (Address::ScaleFactor)2, -0x4e181c6c));", // IID5061 - "__ xchgb(r18, Address(r19, r20, (Address::ScaleFactor)1, -0x6170d8cc));", // IID5062 - "__ xchgb(r19, Address(r20, r21, (Address::ScaleFactor)0, +0x49c420cc));", // IID5063 - "__ xchgb(r20, Address(r21, r22, (Address::ScaleFactor)0, -0x7e1b07db));", // IID5064 - "__ xchgb(r21, Address(r22, -0x61d378c));", // IID5065 - "__ xchgb(r22, Address(r23, r24, (Address::ScaleFactor)2, -0x25112a7a));", // IID5066 - "__ xchgb(r23, Address(r24, +0xbf408fd));", // IID5067 - "__ xchgb(r24, Address(r25, -0x4d4bd28));", // IID5068 - "__ xchgb(r25, Address(r26, r27, (Address::ScaleFactor)0, +0x5800d055));", // IID5069 - "__ xchgb(r26, Address(r27, r28, (Address::ScaleFactor)2, -0x676c8f7));", // IID5070 - "__ xchgb(r27, Address(r28, r29, (Address::ScaleFactor)0, +0x30cbd84));", // IID5071 - "__ xchgb(r28, Address(r29, r30, (Address::ScaleFactor)0, -0x5d24ae0d));", // IID5072 - "__ xchgb(r29, Address(r30, r31, (Address::ScaleFactor)1, +0x3f98f152));", // IID5073 - "__ xchgb(r30, Address(r31, rcx, (Address::ScaleFactor)2, -0xa140981));", // IID5074 - "__ xchgb(r31, Address(rcx, -0x21396a6c));", // IID5075 -#endif // _LP64 - "__ xchgw(rcx, Address(rdx, rbx, (Address::ScaleFactor)1, -0x47b5b276));", // IID5076 -#ifdef _LP64 - "__ xchgw(rdx, Address(rbx, -0x6a16d66d));", // IID5077 - "__ xchgw(rbx, Address(r8, r9, (Address::ScaleFactor)1, -0x1f9b04cb));", // IID5078 - "__ xchgw(r8, Address(r9, +0x625c906a));", // IID5079 - "__ xchgw(r9, Address(r10, r11, (Address::ScaleFactor)0, +0xf0b0eb));", // IID5080 - "__ xchgw(r10, Address(r11, r12, (Address::ScaleFactor)2, -0x3664be49));", // IID5081 - "__ xchgw(r11, Address(r12, r13, (Address::ScaleFactor)1, +0x47cfdef8));", // IID5082 - "__ xchgw(r12, Address(r13, r14, (Address::ScaleFactor)3, +0x92d90b5));", // IID5083 - "__ xchgw(r13, Address(r14, r15, (Address::ScaleFactor)3, +0x370fa231));", // IID5084 - "__ xchgw(r14, Address(r15, r16, (Address::ScaleFactor)0, +0x32a90447));", // IID5085 - "__ xchgw(r15, Address(r16, r17, (Address::ScaleFactor)1, +0x589fac5a));", // IID5086 - "__ xchgw(r16, Address(r17, r18, (Address::ScaleFactor)2, +0x60fbdbc6));", // IID5087 - "__ xchgw(r17, Address(r18, r19, (Address::ScaleFactor)2, -0x1e749487));", // IID5088 - "__ xchgw(r18, Address(r19, -0xb26f550));", // IID5089 - "__ xchgw(r19, Address(r20, r21, (Address::ScaleFactor)2, -0x6717d2c3));", // IID5090 - "__ xchgw(r20, Address(r21, r22, (Address::ScaleFactor)3, -0x72a3ea35));", // IID5091 - "__ xchgw(r21, Address(r22, -0x4b41c1a6));", // IID5092 - "__ xchgw(r22, Address(r23, +0x2bce4b76));", // IID5093 - "__ xchgw(r23, Address(r24, r25, (Address::ScaleFactor)2, +0x5885f4ed));", // IID5094 - "__ xchgw(r24, Address(r25, -0x4c13ccab));", // IID5095 - "__ xchgw(r25, Address(r26, r27, (Address::ScaleFactor)2, -0x391b6740));", // IID5096 - "__ xchgw(r26, Address(r27, -0x7a41a635));", // IID5097 - "__ xchgw(r27, Address(r28, r29, (Address::ScaleFactor)0, -0x6ba2ff4));", // IID5098 - "__ xchgw(r28, Address(r29, r30, (Address::ScaleFactor)0, +0x2dd1b4bf));", // IID5099 - "__ xchgw(r29, Address(r30, r31, (Address::ScaleFactor)3, +0x6933c89a));", // IID5100 - "__ xchgw(r30, Address(r31, -0x356b524c));", // IID5101 - "__ xchgw(r31, Address(rcx, rdx, (Address::ScaleFactor)0, -0x362783e7));", // IID5102 -#endif // _LP64 - "__ xchgl(rcx, Address(rdx, +0x1cbde31e));", // IID5103 -#ifdef _LP64 - "__ xchgl(rdx, Address(rbx, r8, (Address::ScaleFactor)2, -0x15aff98b));", // IID5104 - "__ xchgl(rbx, Address(r8, r9, (Address::ScaleFactor)2, -0x37cdf3d4));", // IID5105 - "__ xchgl(r8, Address(r9, r10, (Address::ScaleFactor)0, -0x65e7c1dd));", // IID5106 - "__ xchgl(r9, Address(r10, r11, (Address::ScaleFactor)3, +0x74c17bae));", // IID5107 - "__ xchgl(r10, Address(r11, r12, (Address::ScaleFactor)2, +0x66152ef0));", // IID5108 - "__ xchgl(r11, Address(r12, r13, (Address::ScaleFactor)2, +0x58628100));", // IID5109 - "__ xchgl(r12, Address(r13, r14, (Address::ScaleFactor)2, -0x5a05279));", // IID5110 - "__ xchgl(r13, Address(r14, r15, (Address::ScaleFactor)1, -0x44479b35));", // IID5111 - "__ xchgl(r14, Address(r15, r16, (Address::ScaleFactor)0, -0x7c4aac43));", // IID5112 - "__ xchgl(r15, Address(r16, -0x4b3614ca));", // IID5113 - "__ xchgl(r16, Address(r17, r18, (Address::ScaleFactor)0, -0x359c9f64));", // IID5114 - "__ xchgl(r17, Address(r18, r19, (Address::ScaleFactor)1, -0x4dd0193c));", // IID5115 - "__ xchgl(r18, Address(r19, r20, (Address::ScaleFactor)0, -0x179055bc));", // IID5116 - "__ xchgl(r19, Address(r20, r21, (Address::ScaleFactor)1, -0x33dac35e));", // IID5117 - "__ xchgl(r20, Address(r21, r22, (Address::ScaleFactor)0, +0x72c2edc2));", // IID5118 - "__ xchgl(r21, Address(r22, r23, (Address::ScaleFactor)2, +0x3e23f710));", // IID5119 - "__ xchgl(r22, Address(r23, -0x58f7fafe));", // IID5120 - "__ xchgl(r23, Address(r24, +0x9d6f70));", // IID5121 - "__ xchgl(r24, Address(r25, r26, (Address::ScaleFactor)3, +0x40997221));", // IID5122 - "__ xchgl(r25, Address(r26, r27, (Address::ScaleFactor)2, -0x23d44b87));", // IID5123 - "__ xchgl(r26, Address(r27, r28, (Address::ScaleFactor)0, -0x61bf736c));", // IID5124 - "__ xchgl(r27, Address(r28, -0x40f8387a));", // IID5125 - "__ xchgl(r28, Address(r29, r30, (Address::ScaleFactor)3, -0x11174a41));", // IID5126 - "__ xchgl(r29, Address(r30, r31, (Address::ScaleFactor)3, +0x495b56ed));", // IID5127 - "__ xchgl(r30, Address(r31, -0x1bedaa65));", // IID5128 - "__ xchgl(r31, Address(rcx, rdx, (Address::ScaleFactor)0, -0x6b6bec3a));", // IID5129 -#endif // _LP64 - "__ testl(rcx, Address(rdx, -0x1ec17960));", // IID5130 -#ifdef _LP64 - "__ testl(rdx, Address(rbx, r8, (Address::ScaleFactor)0, -0x437be886));", // IID5131 - "__ testl(rbx, Address(r8, r9, (Address::ScaleFactor)0, -0x2220870));", // IID5132 - "__ testl(r8, Address(r9, r10, (Address::ScaleFactor)3, +0x31c2c08a));", // IID5133 - "__ testl(r9, Address(r10, r11, (Address::ScaleFactor)3, -0x293c50c5));", // IID5134 - "__ testl(r10, Address(r11, +0x1377a33d));", // IID5135 - "__ testl(r11, Address(r12, r13, (Address::ScaleFactor)2, -0x21774a93));", // IID5136 - "__ testl(r12, Address(r13, r14, (Address::ScaleFactor)0, +0x4bad4d38));", // IID5137 - "__ testl(r13, Address(r14, r15, (Address::ScaleFactor)1, +0x73681cba));", // IID5138 - "__ testl(r14, Address(r15, r16, (Address::ScaleFactor)2, +0x213b720d));", // IID5139 - "__ testl(r15, Address(r16, -0x238aa936));", // IID5140 - "__ testl(r16, Address(r17, r18, (Address::ScaleFactor)0, -0x324ee2e1));", // IID5141 - "__ testl(r17, Address(r18, r19, (Address::ScaleFactor)1, -0x24547f2c));", // IID5142 - "__ testl(r18, Address(r19, r20, (Address::ScaleFactor)1, +0x6bdcf6f0));", // IID5143 - "__ testl(r19, Address(r20, r21, (Address::ScaleFactor)2, +0x1993cfea));", // IID5144 - "__ testl(r20, Address(r21, r22, (Address::ScaleFactor)2, +0x573efbe9));", // IID5145 - "__ testl(r21, Address(r22, r23, (Address::ScaleFactor)1, -0x58a9a504));", // IID5146 - "__ testl(r22, Address(r23, r24, (Address::ScaleFactor)3, -0x1236252f));", // IID5147 - "__ testl(r23, Address(r24, r25, (Address::ScaleFactor)2, -0x6bc2be6));", // IID5148 - "__ testl(r24, Address(r25, -0x5132e4bf));", // IID5149 - "__ testl(r25, Address(r26, r27, (Address::ScaleFactor)3, -0xf7d1def));", // IID5150 - "__ testl(r26, Address(r27, r28, (Address::ScaleFactor)1, +0x3322f549));", // IID5151 - "__ testl(r27, Address(r28, r29, (Address::ScaleFactor)1, -0x723b8bd6));", // IID5152 - "__ testl(r28, Address(r29, r30, (Address::ScaleFactor)3, +0x4be6cc7c));", // IID5153 - "__ testl(r29, Address(r30, r31, (Address::ScaleFactor)0, +0x6648415));", // IID5154 - "__ testl(r30, Address(r31, rcx, (Address::ScaleFactor)0, -0x5e5ce3b9));", // IID5155 - "__ testl(r31, Address(rcx, +0x2f8a1c14));", // IID5156 -#endif // _LP64 - "__ addb(rcx, 1);", // IID5157 - "__ addb(rcx, 4);", // IID5158 - "__ addb(rcx, 16);", // IID5159 - "__ addb(rcx, 64);", // IID5160 - "__ addb(rdx, 1);", // IID5161 - "__ addb(rdx, 4);", // IID5162 - "__ addb(rdx, 16);", // IID5163 - "__ addb(rdx, 64);", // IID5164 - "__ addb(rbx, 1);", // IID5165 - "__ addb(rbx, 4);", // IID5166 - "__ addb(rbx, 16);", // IID5167 - "__ addb(rbx, 64);", // IID5168 -#ifdef _LP64 - "__ addb(r8, 1);", // IID5169 - "__ addb(r8, 4);", // IID5170 - "__ addb(r8, 16);", // IID5171 - "__ addb(r8, 64);", // IID5172 - "__ addb(r9, 1);", // IID5173 - "__ addb(r9, 4);", // IID5174 - "__ addb(r9, 16);", // IID5175 - "__ addb(r9, 64);", // IID5176 - "__ addb(r10, 1);", // IID5177 - "__ addb(r10, 4);", // IID5178 - "__ addb(r10, 16);", // IID5179 - "__ addb(r10, 64);", // IID5180 - "__ addb(r11, 1);", // IID5181 - "__ addb(r11, 4);", // IID5182 - "__ addb(r11, 16);", // IID5183 - "__ addb(r11, 64);", // IID5184 - "__ addb(r12, 1);", // IID5185 - "__ addb(r12, 4);", // IID5186 - "__ addb(r12, 16);", // IID5187 - "__ addb(r12, 64);", // IID5188 - "__ addb(r13, 1);", // IID5189 - "__ addb(r13, 4);", // IID5190 - "__ addb(r13, 16);", // IID5191 - "__ addb(r13, 64);", // IID5192 - "__ addb(r14, 1);", // IID5193 - "__ addb(r14, 4);", // IID5194 - "__ addb(r14, 16);", // IID5195 - "__ addb(r14, 64);", // IID5196 - "__ addb(r15, 1);", // IID5197 - "__ addb(r15, 4);", // IID5198 - "__ addb(r15, 16);", // IID5199 - "__ addb(r15, 64);", // IID5200 - "__ addb(r16, 1);", // IID5201 - "__ addb(r16, 4);", // IID5202 - "__ addb(r16, 16);", // IID5203 - "__ addb(r16, 64);", // IID5204 - "__ addb(r17, 1);", // IID5205 - "__ addb(r17, 4);", // IID5206 - "__ addb(r17, 16);", // IID5207 - "__ addb(r17, 64);", // IID5208 - "__ addb(r18, 1);", // IID5209 - "__ addb(r18, 4);", // IID5210 - "__ addb(r18, 16);", // IID5211 - "__ addb(r18, 64);", // IID5212 - "__ addb(r19, 1);", // IID5213 - "__ addb(r19, 4);", // IID5214 - "__ addb(r19, 16);", // IID5215 - "__ addb(r19, 64);", // IID5216 - "__ addb(r20, 1);", // IID5217 - "__ addb(r20, 4);", // IID5218 - "__ addb(r20, 16);", // IID5219 - "__ addb(r20, 64);", // IID5220 - "__ addb(r21, 1);", // IID5221 - "__ addb(r21, 4);", // IID5222 - "__ addb(r21, 16);", // IID5223 - "__ addb(r21, 64);", // IID5224 - "__ addb(r22, 1);", // IID5225 - "__ addb(r22, 4);", // IID5226 - "__ addb(r22, 16);", // IID5227 - "__ addb(r22, 64);", // IID5228 - "__ addb(r23, 1);", // IID5229 - "__ addb(r23, 4);", // IID5230 - "__ addb(r23, 16);", // IID5231 - "__ addb(r23, 64);", // IID5232 - "__ addb(r24, 1);", // IID5233 - "__ addb(r24, 4);", // IID5234 - "__ addb(r24, 16);", // IID5235 - "__ addb(r24, 64);", // IID5236 - "__ addb(r25, 1);", // IID5237 - "__ addb(r25, 4);", // IID5238 - "__ addb(r25, 16);", // IID5239 - "__ addb(r25, 64);", // IID5240 - "__ addb(r26, 1);", // IID5241 - "__ addb(r26, 4);", // IID5242 - "__ addb(r26, 16);", // IID5243 - "__ addb(r26, 64);", // IID5244 - "__ addb(r27, 1);", // IID5245 - "__ addb(r27, 4);", // IID5246 - "__ addb(r27, 16);", // IID5247 - "__ addb(r27, 64);", // IID5248 - "__ addb(r28, 1);", // IID5249 - "__ addb(r28, 4);", // IID5250 - "__ addb(r28, 16);", // IID5251 - "__ addb(r28, 64);", // IID5252 - "__ addb(r29, 1);", // IID5253 - "__ addb(r29, 4);", // IID5254 - "__ addb(r29, 16);", // IID5255 - "__ addb(r29, 64);", // IID5256 - "__ addb(r30, 1);", // IID5257 - "__ addb(r30, 4);", // IID5258 - "__ addb(r30, 16);", // IID5259 - "__ addb(r30, 64);", // IID5260 - "__ addb(r31, 1);", // IID5261 - "__ addb(r31, 4);", // IID5262 - "__ addb(r31, 16);", // IID5263 - "__ addb(r31, 64);", // IID5264 -#endif // _LP64 - "__ addl(rcx, 1);", // IID5265 - "__ addl(rcx, 16);", // IID5266 - "__ addl(rcx, 256);", // IID5267 - "__ addl(rcx, 4096);", // IID5268 - "__ addl(rcx, 65536);", // IID5269 - "__ addl(rcx, 1048576);", // IID5270 - "__ addl(rcx, 16777216);", // IID5271 - "__ addl(rcx, 268435456);", // IID5272 - "__ addl(rdx, 1);", // IID5273 - "__ addl(rdx, 16);", // IID5274 - "__ addl(rdx, 256);", // IID5275 - "__ addl(rdx, 4096);", // IID5276 - "__ addl(rdx, 65536);", // IID5277 - "__ addl(rdx, 1048576);", // IID5278 - "__ addl(rdx, 16777216);", // IID5279 - "__ addl(rdx, 268435456);", // IID5280 - "__ addl(rbx, 1);", // IID5281 - "__ addl(rbx, 16);", // IID5282 - "__ addl(rbx, 256);", // IID5283 - "__ addl(rbx, 4096);", // IID5284 - "__ addl(rbx, 65536);", // IID5285 - "__ addl(rbx, 1048576);", // IID5286 - "__ addl(rbx, 16777216);", // IID5287 - "__ addl(rbx, 268435456);", // IID5288 -#ifdef _LP64 - "__ addl(r8, 1);", // IID5289 - "__ addl(r8, 16);", // IID5290 - "__ addl(r8, 256);", // IID5291 - "__ addl(r8, 4096);", // IID5292 - "__ addl(r8, 65536);", // IID5293 - "__ addl(r8, 1048576);", // IID5294 - "__ addl(r8, 16777216);", // IID5295 - "__ addl(r8, 268435456);", // IID5296 - "__ addl(r9, 1);", // IID5297 - "__ addl(r9, 16);", // IID5298 - "__ addl(r9, 256);", // IID5299 - "__ addl(r9, 4096);", // IID5300 - "__ addl(r9, 65536);", // IID5301 - "__ addl(r9, 1048576);", // IID5302 - "__ addl(r9, 16777216);", // IID5303 - "__ addl(r9, 268435456);", // IID5304 - "__ addl(r10, 1);", // IID5305 - "__ addl(r10, 16);", // IID5306 - "__ addl(r10, 256);", // IID5307 - "__ addl(r10, 4096);", // IID5308 - "__ addl(r10, 65536);", // IID5309 - "__ addl(r10, 1048576);", // IID5310 - "__ addl(r10, 16777216);", // IID5311 - "__ addl(r10, 268435456);", // IID5312 - "__ addl(r11, 1);", // IID5313 - "__ addl(r11, 16);", // IID5314 - "__ addl(r11, 256);", // IID5315 - "__ addl(r11, 4096);", // IID5316 - "__ addl(r11, 65536);", // IID5317 - "__ addl(r11, 1048576);", // IID5318 - "__ addl(r11, 16777216);", // IID5319 - "__ addl(r11, 268435456);", // IID5320 - "__ addl(r12, 1);", // IID5321 - "__ addl(r12, 16);", // IID5322 - "__ addl(r12, 256);", // IID5323 - "__ addl(r12, 4096);", // IID5324 - "__ addl(r12, 65536);", // IID5325 - "__ addl(r12, 1048576);", // IID5326 - "__ addl(r12, 16777216);", // IID5327 - "__ addl(r12, 268435456);", // IID5328 - "__ addl(r13, 1);", // IID5329 - "__ addl(r13, 16);", // IID5330 - "__ addl(r13, 256);", // IID5331 - "__ addl(r13, 4096);", // IID5332 - "__ addl(r13, 65536);", // IID5333 - "__ addl(r13, 1048576);", // IID5334 - "__ addl(r13, 16777216);", // IID5335 - "__ addl(r13, 268435456);", // IID5336 - "__ addl(r14, 1);", // IID5337 - "__ addl(r14, 16);", // IID5338 - "__ addl(r14, 256);", // IID5339 - "__ addl(r14, 4096);", // IID5340 - "__ addl(r14, 65536);", // IID5341 - "__ addl(r14, 1048576);", // IID5342 - "__ addl(r14, 16777216);", // IID5343 - "__ addl(r14, 268435456);", // IID5344 - "__ addl(r15, 1);", // IID5345 - "__ addl(r15, 16);", // IID5346 - "__ addl(r15, 256);", // IID5347 - "__ addl(r15, 4096);", // IID5348 - "__ addl(r15, 65536);", // IID5349 - "__ addl(r15, 1048576);", // IID5350 - "__ addl(r15, 16777216);", // IID5351 - "__ addl(r15, 268435456);", // IID5352 - "__ addl(r16, 1);", // IID5353 - "__ addl(r16, 16);", // IID5354 - "__ addl(r16, 256);", // IID5355 - "__ addl(r16, 4096);", // IID5356 - "__ addl(r16, 65536);", // IID5357 - "__ addl(r16, 1048576);", // IID5358 - "__ addl(r16, 16777216);", // IID5359 - "__ addl(r16, 268435456);", // IID5360 - "__ addl(r17, 1);", // IID5361 - "__ addl(r17, 16);", // IID5362 - "__ addl(r17, 256);", // IID5363 - "__ addl(r17, 4096);", // IID5364 - "__ addl(r17, 65536);", // IID5365 - "__ addl(r17, 1048576);", // IID5366 - "__ addl(r17, 16777216);", // IID5367 - "__ addl(r17, 268435456);", // IID5368 - "__ addl(r18, 1);", // IID5369 - "__ addl(r18, 16);", // IID5370 - "__ addl(r18, 256);", // IID5371 - "__ addl(r18, 4096);", // IID5372 - "__ addl(r18, 65536);", // IID5373 - "__ addl(r18, 1048576);", // IID5374 - "__ addl(r18, 16777216);", // IID5375 - "__ addl(r18, 268435456);", // IID5376 - "__ addl(r19, 1);", // IID5377 - "__ addl(r19, 16);", // IID5378 - "__ addl(r19, 256);", // IID5379 - "__ addl(r19, 4096);", // IID5380 - "__ addl(r19, 65536);", // IID5381 - "__ addl(r19, 1048576);", // IID5382 - "__ addl(r19, 16777216);", // IID5383 - "__ addl(r19, 268435456);", // IID5384 - "__ addl(r20, 1);", // IID5385 - "__ addl(r20, 16);", // IID5386 - "__ addl(r20, 256);", // IID5387 - "__ addl(r20, 4096);", // IID5388 - "__ addl(r20, 65536);", // IID5389 - "__ addl(r20, 1048576);", // IID5390 - "__ addl(r20, 16777216);", // IID5391 - "__ addl(r20, 268435456);", // IID5392 - "__ addl(r21, 1);", // IID5393 - "__ addl(r21, 16);", // IID5394 - "__ addl(r21, 256);", // IID5395 - "__ addl(r21, 4096);", // IID5396 - "__ addl(r21, 65536);", // IID5397 - "__ addl(r21, 1048576);", // IID5398 - "__ addl(r21, 16777216);", // IID5399 - "__ addl(r21, 268435456);", // IID5400 - "__ addl(r22, 1);", // IID5401 - "__ addl(r22, 16);", // IID5402 - "__ addl(r22, 256);", // IID5403 - "__ addl(r22, 4096);", // IID5404 - "__ addl(r22, 65536);", // IID5405 - "__ addl(r22, 1048576);", // IID5406 - "__ addl(r22, 16777216);", // IID5407 - "__ addl(r22, 268435456);", // IID5408 - "__ addl(r23, 1);", // IID5409 - "__ addl(r23, 16);", // IID5410 - "__ addl(r23, 256);", // IID5411 - "__ addl(r23, 4096);", // IID5412 - "__ addl(r23, 65536);", // IID5413 - "__ addl(r23, 1048576);", // IID5414 - "__ addl(r23, 16777216);", // IID5415 - "__ addl(r23, 268435456);", // IID5416 - "__ addl(r24, 1);", // IID5417 - "__ addl(r24, 16);", // IID5418 - "__ addl(r24, 256);", // IID5419 - "__ addl(r24, 4096);", // IID5420 - "__ addl(r24, 65536);", // IID5421 - "__ addl(r24, 1048576);", // IID5422 - "__ addl(r24, 16777216);", // IID5423 - "__ addl(r24, 268435456);", // IID5424 - "__ addl(r25, 1);", // IID5425 - "__ addl(r25, 16);", // IID5426 - "__ addl(r25, 256);", // IID5427 - "__ addl(r25, 4096);", // IID5428 - "__ addl(r25, 65536);", // IID5429 - "__ addl(r25, 1048576);", // IID5430 - "__ addl(r25, 16777216);", // IID5431 - "__ addl(r25, 268435456);", // IID5432 - "__ addl(r26, 1);", // IID5433 - "__ addl(r26, 16);", // IID5434 - "__ addl(r26, 256);", // IID5435 - "__ addl(r26, 4096);", // IID5436 - "__ addl(r26, 65536);", // IID5437 - "__ addl(r26, 1048576);", // IID5438 - "__ addl(r26, 16777216);", // IID5439 - "__ addl(r26, 268435456);", // IID5440 - "__ addl(r27, 1);", // IID5441 - "__ addl(r27, 16);", // IID5442 - "__ addl(r27, 256);", // IID5443 - "__ addl(r27, 4096);", // IID5444 - "__ addl(r27, 65536);", // IID5445 - "__ addl(r27, 1048576);", // IID5446 - "__ addl(r27, 16777216);", // IID5447 - "__ addl(r27, 268435456);", // IID5448 - "__ addl(r28, 1);", // IID5449 - "__ addl(r28, 16);", // IID5450 - "__ addl(r28, 256);", // IID5451 - "__ addl(r28, 4096);", // IID5452 - "__ addl(r28, 65536);", // IID5453 - "__ addl(r28, 1048576);", // IID5454 - "__ addl(r28, 16777216);", // IID5455 - "__ addl(r28, 268435456);", // IID5456 - "__ addl(r29, 1);", // IID5457 - "__ addl(r29, 16);", // IID5458 - "__ addl(r29, 256);", // IID5459 - "__ addl(r29, 4096);", // IID5460 - "__ addl(r29, 65536);", // IID5461 - "__ addl(r29, 1048576);", // IID5462 - "__ addl(r29, 16777216);", // IID5463 - "__ addl(r29, 268435456);", // IID5464 - "__ addl(r30, 1);", // IID5465 - "__ addl(r30, 16);", // IID5466 - "__ addl(r30, 256);", // IID5467 - "__ addl(r30, 4096);", // IID5468 - "__ addl(r30, 65536);", // IID5469 - "__ addl(r30, 1048576);", // IID5470 - "__ addl(r30, 16777216);", // IID5471 - "__ addl(r30, 268435456);", // IID5472 - "__ addl(r31, 1);", // IID5473 - "__ addl(r31, 16);", // IID5474 - "__ addl(r31, 256);", // IID5475 - "__ addl(r31, 4096);", // IID5476 - "__ addl(r31, 65536);", // IID5477 - "__ addl(r31, 1048576);", // IID5478 - "__ addl(r31, 16777216);", // IID5479 - "__ addl(r31, 268435456);", // IID5480 -#endif // _LP64 - "__ andl(rcx, 1);", // IID5481 - "__ andl(rcx, 16);", // IID5482 - "__ andl(rcx, 256);", // IID5483 - "__ andl(rcx, 4096);", // IID5484 - "__ andl(rcx, 65536);", // IID5485 - "__ andl(rcx, 1048576);", // IID5486 - "__ andl(rcx, 16777216);", // IID5487 - "__ andl(rcx, 268435456);", // IID5488 - "__ andl(rdx, 1);", // IID5489 - "__ andl(rdx, 16);", // IID5490 - "__ andl(rdx, 256);", // IID5491 - "__ andl(rdx, 4096);", // IID5492 - "__ andl(rdx, 65536);", // IID5493 - "__ andl(rdx, 1048576);", // IID5494 - "__ andl(rdx, 16777216);", // IID5495 - "__ andl(rdx, 268435456);", // IID5496 - "__ andl(rbx, 1);", // IID5497 - "__ andl(rbx, 16);", // IID5498 - "__ andl(rbx, 256);", // IID5499 - "__ andl(rbx, 4096);", // IID5500 - "__ andl(rbx, 65536);", // IID5501 - "__ andl(rbx, 1048576);", // IID5502 - "__ andl(rbx, 16777216);", // IID5503 - "__ andl(rbx, 268435456);", // IID5504 -#ifdef _LP64 - "__ andl(r8, 1);", // IID5505 - "__ andl(r8, 16);", // IID5506 - "__ andl(r8, 256);", // IID5507 - "__ andl(r8, 4096);", // IID5508 - "__ andl(r8, 65536);", // IID5509 - "__ andl(r8, 1048576);", // IID5510 - "__ andl(r8, 16777216);", // IID5511 - "__ andl(r8, 268435456);", // IID5512 - "__ andl(r9, 1);", // IID5513 - "__ andl(r9, 16);", // IID5514 - "__ andl(r9, 256);", // IID5515 - "__ andl(r9, 4096);", // IID5516 - "__ andl(r9, 65536);", // IID5517 - "__ andl(r9, 1048576);", // IID5518 - "__ andl(r9, 16777216);", // IID5519 - "__ andl(r9, 268435456);", // IID5520 - "__ andl(r10, 1);", // IID5521 - "__ andl(r10, 16);", // IID5522 - "__ andl(r10, 256);", // IID5523 - "__ andl(r10, 4096);", // IID5524 - "__ andl(r10, 65536);", // IID5525 - "__ andl(r10, 1048576);", // IID5526 - "__ andl(r10, 16777216);", // IID5527 - "__ andl(r10, 268435456);", // IID5528 - "__ andl(r11, 1);", // IID5529 - "__ andl(r11, 16);", // IID5530 - "__ andl(r11, 256);", // IID5531 - "__ andl(r11, 4096);", // IID5532 - "__ andl(r11, 65536);", // IID5533 - "__ andl(r11, 1048576);", // IID5534 - "__ andl(r11, 16777216);", // IID5535 - "__ andl(r11, 268435456);", // IID5536 - "__ andl(r12, 1);", // IID5537 - "__ andl(r12, 16);", // IID5538 - "__ andl(r12, 256);", // IID5539 - "__ andl(r12, 4096);", // IID5540 - "__ andl(r12, 65536);", // IID5541 - "__ andl(r12, 1048576);", // IID5542 - "__ andl(r12, 16777216);", // IID5543 - "__ andl(r12, 268435456);", // IID5544 - "__ andl(r13, 1);", // IID5545 - "__ andl(r13, 16);", // IID5546 - "__ andl(r13, 256);", // IID5547 - "__ andl(r13, 4096);", // IID5548 - "__ andl(r13, 65536);", // IID5549 - "__ andl(r13, 1048576);", // IID5550 - "__ andl(r13, 16777216);", // IID5551 - "__ andl(r13, 268435456);", // IID5552 - "__ andl(r14, 1);", // IID5553 - "__ andl(r14, 16);", // IID5554 - "__ andl(r14, 256);", // IID5555 - "__ andl(r14, 4096);", // IID5556 - "__ andl(r14, 65536);", // IID5557 - "__ andl(r14, 1048576);", // IID5558 - "__ andl(r14, 16777216);", // IID5559 - "__ andl(r14, 268435456);", // IID5560 - "__ andl(r15, 1);", // IID5561 - "__ andl(r15, 16);", // IID5562 - "__ andl(r15, 256);", // IID5563 - "__ andl(r15, 4096);", // IID5564 - "__ andl(r15, 65536);", // IID5565 - "__ andl(r15, 1048576);", // IID5566 - "__ andl(r15, 16777216);", // IID5567 - "__ andl(r15, 268435456);", // IID5568 - "__ andl(r16, 1);", // IID5569 - "__ andl(r16, 16);", // IID5570 - "__ andl(r16, 256);", // IID5571 - "__ andl(r16, 4096);", // IID5572 - "__ andl(r16, 65536);", // IID5573 - "__ andl(r16, 1048576);", // IID5574 - "__ andl(r16, 16777216);", // IID5575 - "__ andl(r16, 268435456);", // IID5576 - "__ andl(r17, 1);", // IID5577 - "__ andl(r17, 16);", // IID5578 - "__ andl(r17, 256);", // IID5579 - "__ andl(r17, 4096);", // IID5580 - "__ andl(r17, 65536);", // IID5581 - "__ andl(r17, 1048576);", // IID5582 - "__ andl(r17, 16777216);", // IID5583 - "__ andl(r17, 268435456);", // IID5584 - "__ andl(r18, 1);", // IID5585 - "__ andl(r18, 16);", // IID5586 - "__ andl(r18, 256);", // IID5587 - "__ andl(r18, 4096);", // IID5588 - "__ andl(r18, 65536);", // IID5589 - "__ andl(r18, 1048576);", // IID5590 - "__ andl(r18, 16777216);", // IID5591 - "__ andl(r18, 268435456);", // IID5592 - "__ andl(r19, 1);", // IID5593 - "__ andl(r19, 16);", // IID5594 - "__ andl(r19, 256);", // IID5595 - "__ andl(r19, 4096);", // IID5596 - "__ andl(r19, 65536);", // IID5597 - "__ andl(r19, 1048576);", // IID5598 - "__ andl(r19, 16777216);", // IID5599 - "__ andl(r19, 268435456);", // IID5600 - "__ andl(r20, 1);", // IID5601 - "__ andl(r20, 16);", // IID5602 - "__ andl(r20, 256);", // IID5603 - "__ andl(r20, 4096);", // IID5604 - "__ andl(r20, 65536);", // IID5605 - "__ andl(r20, 1048576);", // IID5606 - "__ andl(r20, 16777216);", // IID5607 - "__ andl(r20, 268435456);", // IID5608 - "__ andl(r21, 1);", // IID5609 - "__ andl(r21, 16);", // IID5610 - "__ andl(r21, 256);", // IID5611 - "__ andl(r21, 4096);", // IID5612 - "__ andl(r21, 65536);", // IID5613 - "__ andl(r21, 1048576);", // IID5614 - "__ andl(r21, 16777216);", // IID5615 - "__ andl(r21, 268435456);", // IID5616 - "__ andl(r22, 1);", // IID5617 - "__ andl(r22, 16);", // IID5618 - "__ andl(r22, 256);", // IID5619 - "__ andl(r22, 4096);", // IID5620 - "__ andl(r22, 65536);", // IID5621 - "__ andl(r22, 1048576);", // IID5622 - "__ andl(r22, 16777216);", // IID5623 - "__ andl(r22, 268435456);", // IID5624 - "__ andl(r23, 1);", // IID5625 - "__ andl(r23, 16);", // IID5626 - "__ andl(r23, 256);", // IID5627 - "__ andl(r23, 4096);", // IID5628 - "__ andl(r23, 65536);", // IID5629 - "__ andl(r23, 1048576);", // IID5630 - "__ andl(r23, 16777216);", // IID5631 - "__ andl(r23, 268435456);", // IID5632 - "__ andl(r24, 1);", // IID5633 - "__ andl(r24, 16);", // IID5634 - "__ andl(r24, 256);", // IID5635 - "__ andl(r24, 4096);", // IID5636 - "__ andl(r24, 65536);", // IID5637 - "__ andl(r24, 1048576);", // IID5638 - "__ andl(r24, 16777216);", // IID5639 - "__ andl(r24, 268435456);", // IID5640 - "__ andl(r25, 1);", // IID5641 - "__ andl(r25, 16);", // IID5642 - "__ andl(r25, 256);", // IID5643 - "__ andl(r25, 4096);", // IID5644 - "__ andl(r25, 65536);", // IID5645 - "__ andl(r25, 1048576);", // IID5646 - "__ andl(r25, 16777216);", // IID5647 - "__ andl(r25, 268435456);", // IID5648 - "__ andl(r26, 1);", // IID5649 - "__ andl(r26, 16);", // IID5650 - "__ andl(r26, 256);", // IID5651 - "__ andl(r26, 4096);", // IID5652 - "__ andl(r26, 65536);", // IID5653 - "__ andl(r26, 1048576);", // IID5654 - "__ andl(r26, 16777216);", // IID5655 - "__ andl(r26, 268435456);", // IID5656 - "__ andl(r27, 1);", // IID5657 - "__ andl(r27, 16);", // IID5658 - "__ andl(r27, 256);", // IID5659 - "__ andl(r27, 4096);", // IID5660 - "__ andl(r27, 65536);", // IID5661 - "__ andl(r27, 1048576);", // IID5662 - "__ andl(r27, 16777216);", // IID5663 - "__ andl(r27, 268435456);", // IID5664 - "__ andl(r28, 1);", // IID5665 - "__ andl(r28, 16);", // IID5666 - "__ andl(r28, 256);", // IID5667 - "__ andl(r28, 4096);", // IID5668 - "__ andl(r28, 65536);", // IID5669 - "__ andl(r28, 1048576);", // IID5670 - "__ andl(r28, 16777216);", // IID5671 - "__ andl(r28, 268435456);", // IID5672 - "__ andl(r29, 1);", // IID5673 - "__ andl(r29, 16);", // IID5674 - "__ andl(r29, 256);", // IID5675 - "__ andl(r29, 4096);", // IID5676 - "__ andl(r29, 65536);", // IID5677 - "__ andl(r29, 1048576);", // IID5678 - "__ andl(r29, 16777216);", // IID5679 - "__ andl(r29, 268435456);", // IID5680 - "__ andl(r30, 1);", // IID5681 - "__ andl(r30, 16);", // IID5682 - "__ andl(r30, 256);", // IID5683 - "__ andl(r30, 4096);", // IID5684 - "__ andl(r30, 65536);", // IID5685 - "__ andl(r30, 1048576);", // IID5686 - "__ andl(r30, 16777216);", // IID5687 - "__ andl(r30, 268435456);", // IID5688 - "__ andl(r31, 1);", // IID5689 - "__ andl(r31, 16);", // IID5690 - "__ andl(r31, 256);", // IID5691 - "__ andl(r31, 4096);", // IID5692 - "__ andl(r31, 65536);", // IID5693 - "__ andl(r31, 1048576);", // IID5694 - "__ andl(r31, 16777216);", // IID5695 - "__ andl(r31, 268435456);", // IID5696 -#endif // _LP64 - "__ adcl(rcx, 1);", // IID5697 - "__ adcl(rcx, 16);", // IID5698 - "__ adcl(rcx, 256);", // IID5699 - "__ adcl(rcx, 4096);", // IID5700 - "__ adcl(rcx, 65536);", // IID5701 - "__ adcl(rcx, 1048576);", // IID5702 - "__ adcl(rcx, 16777216);", // IID5703 - "__ adcl(rcx, 268435456);", // IID5704 - "__ adcl(rdx, 1);", // IID5705 - "__ adcl(rdx, 16);", // IID5706 - "__ adcl(rdx, 256);", // IID5707 - "__ adcl(rdx, 4096);", // IID5708 - "__ adcl(rdx, 65536);", // IID5709 - "__ adcl(rdx, 1048576);", // IID5710 - "__ adcl(rdx, 16777216);", // IID5711 - "__ adcl(rdx, 268435456);", // IID5712 - "__ adcl(rbx, 1);", // IID5713 - "__ adcl(rbx, 16);", // IID5714 - "__ adcl(rbx, 256);", // IID5715 - "__ adcl(rbx, 4096);", // IID5716 - "__ adcl(rbx, 65536);", // IID5717 - "__ adcl(rbx, 1048576);", // IID5718 - "__ adcl(rbx, 16777216);", // IID5719 - "__ adcl(rbx, 268435456);", // IID5720 -#ifdef _LP64 - "__ adcl(r8, 1);", // IID5721 - "__ adcl(r8, 16);", // IID5722 - "__ adcl(r8, 256);", // IID5723 - "__ adcl(r8, 4096);", // IID5724 - "__ adcl(r8, 65536);", // IID5725 - "__ adcl(r8, 1048576);", // IID5726 - "__ adcl(r8, 16777216);", // IID5727 - "__ adcl(r8, 268435456);", // IID5728 - "__ adcl(r9, 1);", // IID5729 - "__ adcl(r9, 16);", // IID5730 - "__ adcl(r9, 256);", // IID5731 - "__ adcl(r9, 4096);", // IID5732 - "__ adcl(r9, 65536);", // IID5733 - "__ adcl(r9, 1048576);", // IID5734 - "__ adcl(r9, 16777216);", // IID5735 - "__ adcl(r9, 268435456);", // IID5736 - "__ adcl(r10, 1);", // IID5737 - "__ adcl(r10, 16);", // IID5738 - "__ adcl(r10, 256);", // IID5739 - "__ adcl(r10, 4096);", // IID5740 - "__ adcl(r10, 65536);", // IID5741 - "__ adcl(r10, 1048576);", // IID5742 - "__ adcl(r10, 16777216);", // IID5743 - "__ adcl(r10, 268435456);", // IID5744 - "__ adcl(r11, 1);", // IID5745 - "__ adcl(r11, 16);", // IID5746 - "__ adcl(r11, 256);", // IID5747 - "__ adcl(r11, 4096);", // IID5748 - "__ adcl(r11, 65536);", // IID5749 - "__ adcl(r11, 1048576);", // IID5750 - "__ adcl(r11, 16777216);", // IID5751 - "__ adcl(r11, 268435456);", // IID5752 - "__ adcl(r12, 1);", // IID5753 - "__ adcl(r12, 16);", // IID5754 - "__ adcl(r12, 256);", // IID5755 - "__ adcl(r12, 4096);", // IID5756 - "__ adcl(r12, 65536);", // IID5757 - "__ adcl(r12, 1048576);", // IID5758 - "__ adcl(r12, 16777216);", // IID5759 - "__ adcl(r12, 268435456);", // IID5760 - "__ adcl(r13, 1);", // IID5761 - "__ adcl(r13, 16);", // IID5762 - "__ adcl(r13, 256);", // IID5763 - "__ adcl(r13, 4096);", // IID5764 - "__ adcl(r13, 65536);", // IID5765 - "__ adcl(r13, 1048576);", // IID5766 - "__ adcl(r13, 16777216);", // IID5767 - "__ adcl(r13, 268435456);", // IID5768 - "__ adcl(r14, 1);", // IID5769 - "__ adcl(r14, 16);", // IID5770 - "__ adcl(r14, 256);", // IID5771 - "__ adcl(r14, 4096);", // IID5772 - "__ adcl(r14, 65536);", // IID5773 - "__ adcl(r14, 1048576);", // IID5774 - "__ adcl(r14, 16777216);", // IID5775 - "__ adcl(r14, 268435456);", // IID5776 - "__ adcl(r15, 1);", // IID5777 - "__ adcl(r15, 16);", // IID5778 - "__ adcl(r15, 256);", // IID5779 - "__ adcl(r15, 4096);", // IID5780 - "__ adcl(r15, 65536);", // IID5781 - "__ adcl(r15, 1048576);", // IID5782 - "__ adcl(r15, 16777216);", // IID5783 - "__ adcl(r15, 268435456);", // IID5784 - "__ adcl(r16, 1);", // IID5785 - "__ adcl(r16, 16);", // IID5786 - "__ adcl(r16, 256);", // IID5787 - "__ adcl(r16, 4096);", // IID5788 - "__ adcl(r16, 65536);", // IID5789 - "__ adcl(r16, 1048576);", // IID5790 - "__ adcl(r16, 16777216);", // IID5791 - "__ adcl(r16, 268435456);", // IID5792 - "__ adcl(r17, 1);", // IID5793 - "__ adcl(r17, 16);", // IID5794 - "__ adcl(r17, 256);", // IID5795 - "__ adcl(r17, 4096);", // IID5796 - "__ adcl(r17, 65536);", // IID5797 - "__ adcl(r17, 1048576);", // IID5798 - "__ adcl(r17, 16777216);", // IID5799 - "__ adcl(r17, 268435456);", // IID5800 - "__ adcl(r18, 1);", // IID5801 - "__ adcl(r18, 16);", // IID5802 - "__ adcl(r18, 256);", // IID5803 - "__ adcl(r18, 4096);", // IID5804 - "__ adcl(r18, 65536);", // IID5805 - "__ adcl(r18, 1048576);", // IID5806 - "__ adcl(r18, 16777216);", // IID5807 - "__ adcl(r18, 268435456);", // IID5808 - "__ adcl(r19, 1);", // IID5809 - "__ adcl(r19, 16);", // IID5810 - "__ adcl(r19, 256);", // IID5811 - "__ adcl(r19, 4096);", // IID5812 - "__ adcl(r19, 65536);", // IID5813 - "__ adcl(r19, 1048576);", // IID5814 - "__ adcl(r19, 16777216);", // IID5815 - "__ adcl(r19, 268435456);", // IID5816 - "__ adcl(r20, 1);", // IID5817 - "__ adcl(r20, 16);", // IID5818 - "__ adcl(r20, 256);", // IID5819 - "__ adcl(r20, 4096);", // IID5820 - "__ adcl(r20, 65536);", // IID5821 - "__ adcl(r20, 1048576);", // IID5822 - "__ adcl(r20, 16777216);", // IID5823 - "__ adcl(r20, 268435456);", // IID5824 - "__ adcl(r21, 1);", // IID5825 - "__ adcl(r21, 16);", // IID5826 - "__ adcl(r21, 256);", // IID5827 - "__ adcl(r21, 4096);", // IID5828 - "__ adcl(r21, 65536);", // IID5829 - "__ adcl(r21, 1048576);", // IID5830 - "__ adcl(r21, 16777216);", // IID5831 - "__ adcl(r21, 268435456);", // IID5832 - "__ adcl(r22, 1);", // IID5833 - "__ adcl(r22, 16);", // IID5834 - "__ adcl(r22, 256);", // IID5835 - "__ adcl(r22, 4096);", // IID5836 - "__ adcl(r22, 65536);", // IID5837 - "__ adcl(r22, 1048576);", // IID5838 - "__ adcl(r22, 16777216);", // IID5839 - "__ adcl(r22, 268435456);", // IID5840 - "__ adcl(r23, 1);", // IID5841 - "__ adcl(r23, 16);", // IID5842 - "__ adcl(r23, 256);", // IID5843 - "__ adcl(r23, 4096);", // IID5844 - "__ adcl(r23, 65536);", // IID5845 - "__ adcl(r23, 1048576);", // IID5846 - "__ adcl(r23, 16777216);", // IID5847 - "__ adcl(r23, 268435456);", // IID5848 - "__ adcl(r24, 1);", // IID5849 - "__ adcl(r24, 16);", // IID5850 - "__ adcl(r24, 256);", // IID5851 - "__ adcl(r24, 4096);", // IID5852 - "__ adcl(r24, 65536);", // IID5853 - "__ adcl(r24, 1048576);", // IID5854 - "__ adcl(r24, 16777216);", // IID5855 - "__ adcl(r24, 268435456);", // IID5856 - "__ adcl(r25, 1);", // IID5857 - "__ adcl(r25, 16);", // IID5858 - "__ adcl(r25, 256);", // IID5859 - "__ adcl(r25, 4096);", // IID5860 - "__ adcl(r25, 65536);", // IID5861 - "__ adcl(r25, 1048576);", // IID5862 - "__ adcl(r25, 16777216);", // IID5863 - "__ adcl(r25, 268435456);", // IID5864 - "__ adcl(r26, 1);", // IID5865 - "__ adcl(r26, 16);", // IID5866 - "__ adcl(r26, 256);", // IID5867 - "__ adcl(r26, 4096);", // IID5868 - "__ adcl(r26, 65536);", // IID5869 - "__ adcl(r26, 1048576);", // IID5870 - "__ adcl(r26, 16777216);", // IID5871 - "__ adcl(r26, 268435456);", // IID5872 - "__ adcl(r27, 1);", // IID5873 - "__ adcl(r27, 16);", // IID5874 - "__ adcl(r27, 256);", // IID5875 - "__ adcl(r27, 4096);", // IID5876 - "__ adcl(r27, 65536);", // IID5877 - "__ adcl(r27, 1048576);", // IID5878 - "__ adcl(r27, 16777216);", // IID5879 - "__ adcl(r27, 268435456);", // IID5880 - "__ adcl(r28, 1);", // IID5881 - "__ adcl(r28, 16);", // IID5882 - "__ adcl(r28, 256);", // IID5883 - "__ adcl(r28, 4096);", // IID5884 - "__ adcl(r28, 65536);", // IID5885 - "__ adcl(r28, 1048576);", // IID5886 - "__ adcl(r28, 16777216);", // IID5887 - "__ adcl(r28, 268435456);", // IID5888 - "__ adcl(r29, 1);", // IID5889 - "__ adcl(r29, 16);", // IID5890 - "__ adcl(r29, 256);", // IID5891 - "__ adcl(r29, 4096);", // IID5892 - "__ adcl(r29, 65536);", // IID5893 - "__ adcl(r29, 1048576);", // IID5894 - "__ adcl(r29, 16777216);", // IID5895 - "__ adcl(r29, 268435456);", // IID5896 - "__ adcl(r30, 1);", // IID5897 - "__ adcl(r30, 16);", // IID5898 - "__ adcl(r30, 256);", // IID5899 - "__ adcl(r30, 4096);", // IID5900 - "__ adcl(r30, 65536);", // IID5901 - "__ adcl(r30, 1048576);", // IID5902 - "__ adcl(r30, 16777216);", // IID5903 - "__ adcl(r30, 268435456);", // IID5904 - "__ adcl(r31, 1);", // IID5905 - "__ adcl(r31, 16);", // IID5906 - "__ adcl(r31, 256);", // IID5907 - "__ adcl(r31, 4096);", // IID5908 - "__ adcl(r31, 65536);", // IID5909 - "__ adcl(r31, 1048576);", // IID5910 - "__ adcl(r31, 16777216);", // IID5911 - "__ adcl(r31, 268435456);", // IID5912 -#endif // _LP64 - "__ cmpb(rcx, 1);", // IID5913 - "__ cmpb(rcx, 4);", // IID5914 - "__ cmpb(rcx, 16);", // IID5915 - "__ cmpb(rcx, 64);", // IID5916 - "__ cmpb(rdx, 1);", // IID5917 - "__ cmpb(rdx, 4);", // IID5918 - "__ cmpb(rdx, 16);", // IID5919 - "__ cmpb(rdx, 64);", // IID5920 - "__ cmpb(rbx, 1);", // IID5921 - "__ cmpb(rbx, 4);", // IID5922 - "__ cmpb(rbx, 16);", // IID5923 - "__ cmpb(rbx, 64);", // IID5924 -#ifdef _LP64 - "__ cmpb(r8, 1);", // IID5925 - "__ cmpb(r8, 4);", // IID5926 - "__ cmpb(r8, 16);", // IID5927 - "__ cmpb(r8, 64);", // IID5928 - "__ cmpb(r9, 1);", // IID5929 - "__ cmpb(r9, 4);", // IID5930 - "__ cmpb(r9, 16);", // IID5931 - "__ cmpb(r9, 64);", // IID5932 - "__ cmpb(r10, 1);", // IID5933 - "__ cmpb(r10, 4);", // IID5934 - "__ cmpb(r10, 16);", // IID5935 - "__ cmpb(r10, 64);", // IID5936 - "__ cmpb(r11, 1);", // IID5937 - "__ cmpb(r11, 4);", // IID5938 - "__ cmpb(r11, 16);", // IID5939 - "__ cmpb(r11, 64);", // IID5940 - "__ cmpb(r12, 1);", // IID5941 - "__ cmpb(r12, 4);", // IID5942 - "__ cmpb(r12, 16);", // IID5943 - "__ cmpb(r12, 64);", // IID5944 - "__ cmpb(r13, 1);", // IID5945 - "__ cmpb(r13, 4);", // IID5946 - "__ cmpb(r13, 16);", // IID5947 - "__ cmpb(r13, 64);", // IID5948 - "__ cmpb(r14, 1);", // IID5949 - "__ cmpb(r14, 4);", // IID5950 - "__ cmpb(r14, 16);", // IID5951 - "__ cmpb(r14, 64);", // IID5952 - "__ cmpb(r15, 1);", // IID5953 - "__ cmpb(r15, 4);", // IID5954 - "__ cmpb(r15, 16);", // IID5955 - "__ cmpb(r15, 64);", // IID5956 - "__ cmpb(r16, 1);", // IID5957 - "__ cmpb(r16, 4);", // IID5958 - "__ cmpb(r16, 16);", // IID5959 - "__ cmpb(r16, 64);", // IID5960 - "__ cmpb(r17, 1);", // IID5961 - "__ cmpb(r17, 4);", // IID5962 - "__ cmpb(r17, 16);", // IID5963 - "__ cmpb(r17, 64);", // IID5964 - "__ cmpb(r18, 1);", // IID5965 - "__ cmpb(r18, 4);", // IID5966 - "__ cmpb(r18, 16);", // IID5967 - "__ cmpb(r18, 64);", // IID5968 - "__ cmpb(r19, 1);", // IID5969 - "__ cmpb(r19, 4);", // IID5970 - "__ cmpb(r19, 16);", // IID5971 - "__ cmpb(r19, 64);", // IID5972 - "__ cmpb(r20, 1);", // IID5973 - "__ cmpb(r20, 4);", // IID5974 - "__ cmpb(r20, 16);", // IID5975 - "__ cmpb(r20, 64);", // IID5976 - "__ cmpb(r21, 1);", // IID5977 - "__ cmpb(r21, 4);", // IID5978 - "__ cmpb(r21, 16);", // IID5979 - "__ cmpb(r21, 64);", // IID5980 - "__ cmpb(r22, 1);", // IID5981 - "__ cmpb(r22, 4);", // IID5982 - "__ cmpb(r22, 16);", // IID5983 - "__ cmpb(r22, 64);", // IID5984 - "__ cmpb(r23, 1);", // IID5985 - "__ cmpb(r23, 4);", // IID5986 - "__ cmpb(r23, 16);", // IID5987 - "__ cmpb(r23, 64);", // IID5988 - "__ cmpb(r24, 1);", // IID5989 - "__ cmpb(r24, 4);", // IID5990 - "__ cmpb(r24, 16);", // IID5991 - "__ cmpb(r24, 64);", // IID5992 - "__ cmpb(r25, 1);", // IID5993 - "__ cmpb(r25, 4);", // IID5994 - "__ cmpb(r25, 16);", // IID5995 - "__ cmpb(r25, 64);", // IID5996 - "__ cmpb(r26, 1);", // IID5997 - "__ cmpb(r26, 4);", // IID5998 - "__ cmpb(r26, 16);", // IID5999 - "__ cmpb(r26, 64);", // IID6000 - "__ cmpb(r27, 1);", // IID6001 - "__ cmpb(r27, 4);", // IID6002 - "__ cmpb(r27, 16);", // IID6003 - "__ cmpb(r27, 64);", // IID6004 - "__ cmpb(r28, 1);", // IID6005 - "__ cmpb(r28, 4);", // IID6006 - "__ cmpb(r28, 16);", // IID6007 - "__ cmpb(r28, 64);", // IID6008 - "__ cmpb(r29, 1);", // IID6009 - "__ cmpb(r29, 4);", // IID6010 - "__ cmpb(r29, 16);", // IID6011 - "__ cmpb(r29, 64);", // IID6012 - "__ cmpb(r30, 1);", // IID6013 - "__ cmpb(r30, 4);", // IID6014 - "__ cmpb(r30, 16);", // IID6015 - "__ cmpb(r30, 64);", // IID6016 - "__ cmpb(r31, 1);", // IID6017 - "__ cmpb(r31, 4);", // IID6018 - "__ cmpb(r31, 16);", // IID6019 - "__ cmpb(r31, 64);", // IID6020 -#endif // _LP64 - "__ cmpl(rcx, 1);", // IID6021 - "__ cmpl(rcx, 16);", // IID6022 - "__ cmpl(rcx, 256);", // IID6023 - "__ cmpl(rcx, 4096);", // IID6024 - "__ cmpl(rcx, 65536);", // IID6025 - "__ cmpl(rcx, 1048576);", // IID6026 - "__ cmpl(rcx, 16777216);", // IID6027 - "__ cmpl(rcx, 268435456);", // IID6028 - "__ cmpl(rdx, 1);", // IID6029 - "__ cmpl(rdx, 16);", // IID6030 - "__ cmpl(rdx, 256);", // IID6031 - "__ cmpl(rdx, 4096);", // IID6032 - "__ cmpl(rdx, 65536);", // IID6033 - "__ cmpl(rdx, 1048576);", // IID6034 - "__ cmpl(rdx, 16777216);", // IID6035 - "__ cmpl(rdx, 268435456);", // IID6036 - "__ cmpl(rbx, 1);", // IID6037 - "__ cmpl(rbx, 16);", // IID6038 - "__ cmpl(rbx, 256);", // IID6039 - "__ cmpl(rbx, 4096);", // IID6040 - "__ cmpl(rbx, 65536);", // IID6041 - "__ cmpl(rbx, 1048576);", // IID6042 - "__ cmpl(rbx, 16777216);", // IID6043 - "__ cmpl(rbx, 268435456);", // IID6044 -#ifdef _LP64 - "__ cmpl(r8, 1);", // IID6045 - "__ cmpl(r8, 16);", // IID6046 - "__ cmpl(r8, 256);", // IID6047 - "__ cmpl(r8, 4096);", // IID6048 - "__ cmpl(r8, 65536);", // IID6049 - "__ cmpl(r8, 1048576);", // IID6050 - "__ cmpl(r8, 16777216);", // IID6051 - "__ cmpl(r8, 268435456);", // IID6052 - "__ cmpl(r9, 1);", // IID6053 - "__ cmpl(r9, 16);", // IID6054 - "__ cmpl(r9, 256);", // IID6055 - "__ cmpl(r9, 4096);", // IID6056 - "__ cmpl(r9, 65536);", // IID6057 - "__ cmpl(r9, 1048576);", // IID6058 - "__ cmpl(r9, 16777216);", // IID6059 - "__ cmpl(r9, 268435456);", // IID6060 - "__ cmpl(r10, 1);", // IID6061 - "__ cmpl(r10, 16);", // IID6062 - "__ cmpl(r10, 256);", // IID6063 - "__ cmpl(r10, 4096);", // IID6064 - "__ cmpl(r10, 65536);", // IID6065 - "__ cmpl(r10, 1048576);", // IID6066 - "__ cmpl(r10, 16777216);", // IID6067 - "__ cmpl(r10, 268435456);", // IID6068 - "__ cmpl(r11, 1);", // IID6069 - "__ cmpl(r11, 16);", // IID6070 - "__ cmpl(r11, 256);", // IID6071 - "__ cmpl(r11, 4096);", // IID6072 - "__ cmpl(r11, 65536);", // IID6073 - "__ cmpl(r11, 1048576);", // IID6074 - "__ cmpl(r11, 16777216);", // IID6075 - "__ cmpl(r11, 268435456);", // IID6076 - "__ cmpl(r12, 1);", // IID6077 - "__ cmpl(r12, 16);", // IID6078 - "__ cmpl(r12, 256);", // IID6079 - "__ cmpl(r12, 4096);", // IID6080 - "__ cmpl(r12, 65536);", // IID6081 - "__ cmpl(r12, 1048576);", // IID6082 - "__ cmpl(r12, 16777216);", // IID6083 - "__ cmpl(r12, 268435456);", // IID6084 - "__ cmpl(r13, 1);", // IID6085 - "__ cmpl(r13, 16);", // IID6086 - "__ cmpl(r13, 256);", // IID6087 - "__ cmpl(r13, 4096);", // IID6088 - "__ cmpl(r13, 65536);", // IID6089 - "__ cmpl(r13, 1048576);", // IID6090 - "__ cmpl(r13, 16777216);", // IID6091 - "__ cmpl(r13, 268435456);", // IID6092 - "__ cmpl(r14, 1);", // IID6093 - "__ cmpl(r14, 16);", // IID6094 - "__ cmpl(r14, 256);", // IID6095 - "__ cmpl(r14, 4096);", // IID6096 - "__ cmpl(r14, 65536);", // IID6097 - "__ cmpl(r14, 1048576);", // IID6098 - "__ cmpl(r14, 16777216);", // IID6099 - "__ cmpl(r14, 268435456);", // IID6100 - "__ cmpl(r15, 1);", // IID6101 - "__ cmpl(r15, 16);", // IID6102 - "__ cmpl(r15, 256);", // IID6103 - "__ cmpl(r15, 4096);", // IID6104 - "__ cmpl(r15, 65536);", // IID6105 - "__ cmpl(r15, 1048576);", // IID6106 - "__ cmpl(r15, 16777216);", // IID6107 - "__ cmpl(r15, 268435456);", // IID6108 - "__ cmpl(r16, 1);", // IID6109 - "__ cmpl(r16, 16);", // IID6110 - "__ cmpl(r16, 256);", // IID6111 - "__ cmpl(r16, 4096);", // IID6112 - "__ cmpl(r16, 65536);", // IID6113 - "__ cmpl(r16, 1048576);", // IID6114 - "__ cmpl(r16, 16777216);", // IID6115 - "__ cmpl(r16, 268435456);", // IID6116 - "__ cmpl(r17, 1);", // IID6117 - "__ cmpl(r17, 16);", // IID6118 - "__ cmpl(r17, 256);", // IID6119 - "__ cmpl(r17, 4096);", // IID6120 - "__ cmpl(r17, 65536);", // IID6121 - "__ cmpl(r17, 1048576);", // IID6122 - "__ cmpl(r17, 16777216);", // IID6123 - "__ cmpl(r17, 268435456);", // IID6124 - "__ cmpl(r18, 1);", // IID6125 - "__ cmpl(r18, 16);", // IID6126 - "__ cmpl(r18, 256);", // IID6127 - "__ cmpl(r18, 4096);", // IID6128 - "__ cmpl(r18, 65536);", // IID6129 - "__ cmpl(r18, 1048576);", // IID6130 - "__ cmpl(r18, 16777216);", // IID6131 - "__ cmpl(r18, 268435456);", // IID6132 - "__ cmpl(r19, 1);", // IID6133 - "__ cmpl(r19, 16);", // IID6134 - "__ cmpl(r19, 256);", // IID6135 - "__ cmpl(r19, 4096);", // IID6136 - "__ cmpl(r19, 65536);", // IID6137 - "__ cmpl(r19, 1048576);", // IID6138 - "__ cmpl(r19, 16777216);", // IID6139 - "__ cmpl(r19, 268435456);", // IID6140 - "__ cmpl(r20, 1);", // IID6141 - "__ cmpl(r20, 16);", // IID6142 - "__ cmpl(r20, 256);", // IID6143 - "__ cmpl(r20, 4096);", // IID6144 - "__ cmpl(r20, 65536);", // IID6145 - "__ cmpl(r20, 1048576);", // IID6146 - "__ cmpl(r20, 16777216);", // IID6147 - "__ cmpl(r20, 268435456);", // IID6148 - "__ cmpl(r21, 1);", // IID6149 - "__ cmpl(r21, 16);", // IID6150 - "__ cmpl(r21, 256);", // IID6151 - "__ cmpl(r21, 4096);", // IID6152 - "__ cmpl(r21, 65536);", // IID6153 - "__ cmpl(r21, 1048576);", // IID6154 - "__ cmpl(r21, 16777216);", // IID6155 - "__ cmpl(r21, 268435456);", // IID6156 - "__ cmpl(r22, 1);", // IID6157 - "__ cmpl(r22, 16);", // IID6158 - "__ cmpl(r22, 256);", // IID6159 - "__ cmpl(r22, 4096);", // IID6160 - "__ cmpl(r22, 65536);", // IID6161 - "__ cmpl(r22, 1048576);", // IID6162 - "__ cmpl(r22, 16777216);", // IID6163 - "__ cmpl(r22, 268435456);", // IID6164 - "__ cmpl(r23, 1);", // IID6165 - "__ cmpl(r23, 16);", // IID6166 - "__ cmpl(r23, 256);", // IID6167 - "__ cmpl(r23, 4096);", // IID6168 - "__ cmpl(r23, 65536);", // IID6169 - "__ cmpl(r23, 1048576);", // IID6170 - "__ cmpl(r23, 16777216);", // IID6171 - "__ cmpl(r23, 268435456);", // IID6172 - "__ cmpl(r24, 1);", // IID6173 - "__ cmpl(r24, 16);", // IID6174 - "__ cmpl(r24, 256);", // IID6175 - "__ cmpl(r24, 4096);", // IID6176 - "__ cmpl(r24, 65536);", // IID6177 - "__ cmpl(r24, 1048576);", // IID6178 - "__ cmpl(r24, 16777216);", // IID6179 - "__ cmpl(r24, 268435456);", // IID6180 - "__ cmpl(r25, 1);", // IID6181 - "__ cmpl(r25, 16);", // IID6182 - "__ cmpl(r25, 256);", // IID6183 - "__ cmpl(r25, 4096);", // IID6184 - "__ cmpl(r25, 65536);", // IID6185 - "__ cmpl(r25, 1048576);", // IID6186 - "__ cmpl(r25, 16777216);", // IID6187 - "__ cmpl(r25, 268435456);", // IID6188 - "__ cmpl(r26, 1);", // IID6189 - "__ cmpl(r26, 16);", // IID6190 - "__ cmpl(r26, 256);", // IID6191 - "__ cmpl(r26, 4096);", // IID6192 - "__ cmpl(r26, 65536);", // IID6193 - "__ cmpl(r26, 1048576);", // IID6194 - "__ cmpl(r26, 16777216);", // IID6195 - "__ cmpl(r26, 268435456);", // IID6196 - "__ cmpl(r27, 1);", // IID6197 - "__ cmpl(r27, 16);", // IID6198 - "__ cmpl(r27, 256);", // IID6199 - "__ cmpl(r27, 4096);", // IID6200 - "__ cmpl(r27, 65536);", // IID6201 - "__ cmpl(r27, 1048576);", // IID6202 - "__ cmpl(r27, 16777216);", // IID6203 - "__ cmpl(r27, 268435456);", // IID6204 - "__ cmpl(r28, 1);", // IID6205 - "__ cmpl(r28, 16);", // IID6206 - "__ cmpl(r28, 256);", // IID6207 - "__ cmpl(r28, 4096);", // IID6208 - "__ cmpl(r28, 65536);", // IID6209 - "__ cmpl(r28, 1048576);", // IID6210 - "__ cmpl(r28, 16777216);", // IID6211 - "__ cmpl(r28, 268435456);", // IID6212 - "__ cmpl(r29, 1);", // IID6213 - "__ cmpl(r29, 16);", // IID6214 - "__ cmpl(r29, 256);", // IID6215 - "__ cmpl(r29, 4096);", // IID6216 - "__ cmpl(r29, 65536);", // IID6217 - "__ cmpl(r29, 1048576);", // IID6218 - "__ cmpl(r29, 16777216);", // IID6219 - "__ cmpl(r29, 268435456);", // IID6220 - "__ cmpl(r30, 1);", // IID6221 - "__ cmpl(r30, 16);", // IID6222 - "__ cmpl(r30, 256);", // IID6223 - "__ cmpl(r30, 4096);", // IID6224 - "__ cmpl(r30, 65536);", // IID6225 - "__ cmpl(r30, 1048576);", // IID6226 - "__ cmpl(r30, 16777216);", // IID6227 - "__ cmpl(r30, 268435456);", // IID6228 - "__ cmpl(r31, 1);", // IID6229 - "__ cmpl(r31, 16);", // IID6230 - "__ cmpl(r31, 256);", // IID6231 - "__ cmpl(r31, 4096);", // IID6232 - "__ cmpl(r31, 65536);", // IID6233 - "__ cmpl(r31, 1048576);", // IID6234 - "__ cmpl(r31, 16777216);", // IID6235 - "__ cmpl(r31, 268435456);", // IID6236 -#endif // _LP64 - "__ rcll(rcx, 1);", // IID6237 - "__ rcll(rcx, 2);", // IID6238 - "__ rcll(rcx, 4);", // IID6239 - "__ rcll(rcx, 8);", // IID6240 - "__ rcll(rcx, 16);", // IID6241 - "__ rcll(rdx, 1);", // IID6242 - "__ rcll(rdx, 2);", // IID6243 - "__ rcll(rdx, 4);", // IID6244 - "__ rcll(rdx, 8);", // IID6245 - "__ rcll(rdx, 16);", // IID6246 - "__ rcll(rbx, 1);", // IID6247 - "__ rcll(rbx, 2);", // IID6248 - "__ rcll(rbx, 4);", // IID6249 - "__ rcll(rbx, 8);", // IID6250 - "__ rcll(rbx, 16);", // IID6251 -#ifdef _LP64 - "__ rcll(r8, 1);", // IID6252 - "__ rcll(r8, 2);", // IID6253 - "__ rcll(r8, 4);", // IID6254 - "__ rcll(r8, 8);", // IID6255 - "__ rcll(r8, 16);", // IID6256 - "__ rcll(r9, 1);", // IID6257 - "__ rcll(r9, 2);", // IID6258 - "__ rcll(r9, 4);", // IID6259 - "__ rcll(r9, 8);", // IID6260 - "__ rcll(r9, 16);", // IID6261 - "__ rcll(r10, 1);", // IID6262 - "__ rcll(r10, 2);", // IID6263 - "__ rcll(r10, 4);", // IID6264 - "__ rcll(r10, 8);", // IID6265 - "__ rcll(r10, 16);", // IID6266 - "__ rcll(r11, 1);", // IID6267 - "__ rcll(r11, 2);", // IID6268 - "__ rcll(r11, 4);", // IID6269 - "__ rcll(r11, 8);", // IID6270 - "__ rcll(r11, 16);", // IID6271 - "__ rcll(r12, 1);", // IID6272 - "__ rcll(r12, 2);", // IID6273 - "__ rcll(r12, 4);", // IID6274 - "__ rcll(r12, 8);", // IID6275 - "__ rcll(r12, 16);", // IID6276 - "__ rcll(r13, 1);", // IID6277 - "__ rcll(r13, 2);", // IID6278 - "__ rcll(r13, 4);", // IID6279 - "__ rcll(r13, 8);", // IID6280 - "__ rcll(r13, 16);", // IID6281 - "__ rcll(r14, 1);", // IID6282 - "__ rcll(r14, 2);", // IID6283 - "__ rcll(r14, 4);", // IID6284 - "__ rcll(r14, 8);", // IID6285 - "__ rcll(r14, 16);", // IID6286 - "__ rcll(r15, 1);", // IID6287 - "__ rcll(r15, 2);", // IID6288 - "__ rcll(r15, 4);", // IID6289 - "__ rcll(r15, 8);", // IID6290 - "__ rcll(r15, 16);", // IID6291 - "__ rcll(r16, 1);", // IID6292 - "__ rcll(r16, 2);", // IID6293 - "__ rcll(r16, 4);", // IID6294 - "__ rcll(r16, 8);", // IID6295 - "__ rcll(r16, 16);", // IID6296 - "__ rcll(r17, 1);", // IID6297 - "__ rcll(r17, 2);", // IID6298 - "__ rcll(r17, 4);", // IID6299 - "__ rcll(r17, 8);", // IID6300 - "__ rcll(r17, 16);", // IID6301 - "__ rcll(r18, 1);", // IID6302 - "__ rcll(r18, 2);", // IID6303 - "__ rcll(r18, 4);", // IID6304 - "__ rcll(r18, 8);", // IID6305 - "__ rcll(r18, 16);", // IID6306 - "__ rcll(r19, 1);", // IID6307 - "__ rcll(r19, 2);", // IID6308 - "__ rcll(r19, 4);", // IID6309 - "__ rcll(r19, 8);", // IID6310 - "__ rcll(r19, 16);", // IID6311 - "__ rcll(r20, 1);", // IID6312 - "__ rcll(r20, 2);", // IID6313 - "__ rcll(r20, 4);", // IID6314 - "__ rcll(r20, 8);", // IID6315 - "__ rcll(r20, 16);", // IID6316 - "__ rcll(r21, 1);", // IID6317 - "__ rcll(r21, 2);", // IID6318 - "__ rcll(r21, 4);", // IID6319 - "__ rcll(r21, 8);", // IID6320 - "__ rcll(r21, 16);", // IID6321 - "__ rcll(r22, 1);", // IID6322 - "__ rcll(r22, 2);", // IID6323 - "__ rcll(r22, 4);", // IID6324 - "__ rcll(r22, 8);", // IID6325 - "__ rcll(r22, 16);", // IID6326 - "__ rcll(r23, 1);", // IID6327 - "__ rcll(r23, 2);", // IID6328 - "__ rcll(r23, 4);", // IID6329 - "__ rcll(r23, 8);", // IID6330 - "__ rcll(r23, 16);", // IID6331 - "__ rcll(r24, 1);", // IID6332 - "__ rcll(r24, 2);", // IID6333 - "__ rcll(r24, 4);", // IID6334 - "__ rcll(r24, 8);", // IID6335 - "__ rcll(r24, 16);", // IID6336 - "__ rcll(r25, 1);", // IID6337 - "__ rcll(r25, 2);", // IID6338 - "__ rcll(r25, 4);", // IID6339 - "__ rcll(r25, 8);", // IID6340 - "__ rcll(r25, 16);", // IID6341 - "__ rcll(r26, 1);", // IID6342 - "__ rcll(r26, 2);", // IID6343 - "__ rcll(r26, 4);", // IID6344 - "__ rcll(r26, 8);", // IID6345 - "__ rcll(r26, 16);", // IID6346 - "__ rcll(r27, 1);", // IID6347 - "__ rcll(r27, 2);", // IID6348 - "__ rcll(r27, 4);", // IID6349 - "__ rcll(r27, 8);", // IID6350 - "__ rcll(r27, 16);", // IID6351 - "__ rcll(r28, 1);", // IID6352 - "__ rcll(r28, 2);", // IID6353 - "__ rcll(r28, 4);", // IID6354 - "__ rcll(r28, 8);", // IID6355 - "__ rcll(r28, 16);", // IID6356 - "__ rcll(r29, 1);", // IID6357 - "__ rcll(r29, 2);", // IID6358 - "__ rcll(r29, 4);", // IID6359 - "__ rcll(r29, 8);", // IID6360 - "__ rcll(r29, 16);", // IID6361 - "__ rcll(r30, 1);", // IID6362 - "__ rcll(r30, 2);", // IID6363 - "__ rcll(r30, 4);", // IID6364 - "__ rcll(r30, 8);", // IID6365 - "__ rcll(r30, 16);", // IID6366 - "__ rcll(r31, 1);", // IID6367 - "__ rcll(r31, 2);", // IID6368 - "__ rcll(r31, 4);", // IID6369 - "__ rcll(r31, 8);", // IID6370 - "__ rcll(r31, 16);", // IID6371 -#endif // _LP64 - "__ roll(rcx, 1);", // IID6372 - "__ roll(rcx, 2);", // IID6373 - "__ roll(rcx, 4);", // IID6374 - "__ roll(rcx, 8);", // IID6375 - "__ roll(rcx, 16);", // IID6376 - "__ roll(rdx, 1);", // IID6377 - "__ roll(rdx, 2);", // IID6378 - "__ roll(rdx, 4);", // IID6379 - "__ roll(rdx, 8);", // IID6380 - "__ roll(rdx, 16);", // IID6381 - "__ roll(rbx, 1);", // IID6382 - "__ roll(rbx, 2);", // IID6383 - "__ roll(rbx, 4);", // IID6384 - "__ roll(rbx, 8);", // IID6385 - "__ roll(rbx, 16);", // IID6386 -#ifdef _LP64 - "__ roll(r8, 1);", // IID6387 - "__ roll(r8, 2);", // IID6388 - "__ roll(r8, 4);", // IID6389 - "__ roll(r8, 8);", // IID6390 - "__ roll(r8, 16);", // IID6391 - "__ roll(r9, 1);", // IID6392 - "__ roll(r9, 2);", // IID6393 - "__ roll(r9, 4);", // IID6394 - "__ roll(r9, 8);", // IID6395 - "__ roll(r9, 16);", // IID6396 - "__ roll(r10, 1);", // IID6397 - "__ roll(r10, 2);", // IID6398 - "__ roll(r10, 4);", // IID6399 - "__ roll(r10, 8);", // IID6400 - "__ roll(r10, 16);", // IID6401 - "__ roll(r11, 1);", // IID6402 - "__ roll(r11, 2);", // IID6403 - "__ roll(r11, 4);", // IID6404 - "__ roll(r11, 8);", // IID6405 - "__ roll(r11, 16);", // IID6406 - "__ roll(r12, 1);", // IID6407 - "__ roll(r12, 2);", // IID6408 - "__ roll(r12, 4);", // IID6409 - "__ roll(r12, 8);", // IID6410 - "__ roll(r12, 16);", // IID6411 - "__ roll(r13, 1);", // IID6412 - "__ roll(r13, 2);", // IID6413 - "__ roll(r13, 4);", // IID6414 - "__ roll(r13, 8);", // IID6415 - "__ roll(r13, 16);", // IID6416 - "__ roll(r14, 1);", // IID6417 - "__ roll(r14, 2);", // IID6418 - "__ roll(r14, 4);", // IID6419 - "__ roll(r14, 8);", // IID6420 - "__ roll(r14, 16);", // IID6421 - "__ roll(r15, 1);", // IID6422 - "__ roll(r15, 2);", // IID6423 - "__ roll(r15, 4);", // IID6424 - "__ roll(r15, 8);", // IID6425 - "__ roll(r15, 16);", // IID6426 - "__ roll(r16, 1);", // IID6427 - "__ roll(r16, 2);", // IID6428 - "__ roll(r16, 4);", // IID6429 - "__ roll(r16, 8);", // IID6430 - "__ roll(r16, 16);", // IID6431 - "__ roll(r17, 1);", // IID6432 - "__ roll(r17, 2);", // IID6433 - "__ roll(r17, 4);", // IID6434 - "__ roll(r17, 8);", // IID6435 - "__ roll(r17, 16);", // IID6436 - "__ roll(r18, 1);", // IID6437 - "__ roll(r18, 2);", // IID6438 - "__ roll(r18, 4);", // IID6439 - "__ roll(r18, 8);", // IID6440 - "__ roll(r18, 16);", // IID6441 - "__ roll(r19, 1);", // IID6442 - "__ roll(r19, 2);", // IID6443 - "__ roll(r19, 4);", // IID6444 - "__ roll(r19, 8);", // IID6445 - "__ roll(r19, 16);", // IID6446 - "__ roll(r20, 1);", // IID6447 - "__ roll(r20, 2);", // IID6448 - "__ roll(r20, 4);", // IID6449 - "__ roll(r20, 8);", // IID6450 - "__ roll(r20, 16);", // IID6451 - "__ roll(r21, 1);", // IID6452 - "__ roll(r21, 2);", // IID6453 - "__ roll(r21, 4);", // IID6454 - "__ roll(r21, 8);", // IID6455 - "__ roll(r21, 16);", // IID6456 - "__ roll(r22, 1);", // IID6457 - "__ roll(r22, 2);", // IID6458 - "__ roll(r22, 4);", // IID6459 - "__ roll(r22, 8);", // IID6460 - "__ roll(r22, 16);", // IID6461 - "__ roll(r23, 1);", // IID6462 - "__ roll(r23, 2);", // IID6463 - "__ roll(r23, 4);", // IID6464 - "__ roll(r23, 8);", // IID6465 - "__ roll(r23, 16);", // IID6466 - "__ roll(r24, 1);", // IID6467 - "__ roll(r24, 2);", // IID6468 - "__ roll(r24, 4);", // IID6469 - "__ roll(r24, 8);", // IID6470 - "__ roll(r24, 16);", // IID6471 - "__ roll(r25, 1);", // IID6472 - "__ roll(r25, 2);", // IID6473 - "__ roll(r25, 4);", // IID6474 - "__ roll(r25, 8);", // IID6475 - "__ roll(r25, 16);", // IID6476 - "__ roll(r26, 1);", // IID6477 - "__ roll(r26, 2);", // IID6478 - "__ roll(r26, 4);", // IID6479 - "__ roll(r26, 8);", // IID6480 - "__ roll(r26, 16);", // IID6481 - "__ roll(r27, 1);", // IID6482 - "__ roll(r27, 2);", // IID6483 - "__ roll(r27, 4);", // IID6484 - "__ roll(r27, 8);", // IID6485 - "__ roll(r27, 16);", // IID6486 - "__ roll(r28, 1);", // IID6487 - "__ roll(r28, 2);", // IID6488 - "__ roll(r28, 4);", // IID6489 - "__ roll(r28, 8);", // IID6490 - "__ roll(r28, 16);", // IID6491 - "__ roll(r29, 1);", // IID6492 - "__ roll(r29, 2);", // IID6493 - "__ roll(r29, 4);", // IID6494 - "__ roll(r29, 8);", // IID6495 - "__ roll(r29, 16);", // IID6496 - "__ roll(r30, 1);", // IID6497 - "__ roll(r30, 2);", // IID6498 - "__ roll(r30, 4);", // IID6499 - "__ roll(r30, 8);", // IID6500 - "__ roll(r30, 16);", // IID6501 - "__ roll(r31, 1);", // IID6502 - "__ roll(r31, 2);", // IID6503 - "__ roll(r31, 4);", // IID6504 - "__ roll(r31, 8);", // IID6505 - "__ roll(r31, 16);", // IID6506 -#endif // _LP64 - "__ rorl(rcx, 1);", // IID6507 - "__ rorl(rcx, 2);", // IID6508 - "__ rorl(rcx, 4);", // IID6509 - "__ rorl(rcx, 8);", // IID6510 - "__ rorl(rcx, 16);", // IID6511 - "__ rorl(rdx, 1);", // IID6512 - "__ rorl(rdx, 2);", // IID6513 - "__ rorl(rdx, 4);", // IID6514 - "__ rorl(rdx, 8);", // IID6515 - "__ rorl(rdx, 16);", // IID6516 - "__ rorl(rbx, 1);", // IID6517 - "__ rorl(rbx, 2);", // IID6518 - "__ rorl(rbx, 4);", // IID6519 - "__ rorl(rbx, 8);", // IID6520 - "__ rorl(rbx, 16);", // IID6521 -#ifdef _LP64 - "__ rorl(r8, 1);", // IID6522 - "__ rorl(r8, 2);", // IID6523 - "__ rorl(r8, 4);", // IID6524 - "__ rorl(r8, 8);", // IID6525 - "__ rorl(r8, 16);", // IID6526 - "__ rorl(r9, 1);", // IID6527 - "__ rorl(r9, 2);", // IID6528 - "__ rorl(r9, 4);", // IID6529 - "__ rorl(r9, 8);", // IID6530 - "__ rorl(r9, 16);", // IID6531 - "__ rorl(r10, 1);", // IID6532 - "__ rorl(r10, 2);", // IID6533 - "__ rorl(r10, 4);", // IID6534 - "__ rorl(r10, 8);", // IID6535 - "__ rorl(r10, 16);", // IID6536 - "__ rorl(r11, 1);", // IID6537 - "__ rorl(r11, 2);", // IID6538 - "__ rorl(r11, 4);", // IID6539 - "__ rorl(r11, 8);", // IID6540 - "__ rorl(r11, 16);", // IID6541 - "__ rorl(r12, 1);", // IID6542 - "__ rorl(r12, 2);", // IID6543 - "__ rorl(r12, 4);", // IID6544 - "__ rorl(r12, 8);", // IID6545 - "__ rorl(r12, 16);", // IID6546 - "__ rorl(r13, 1);", // IID6547 - "__ rorl(r13, 2);", // IID6548 - "__ rorl(r13, 4);", // IID6549 - "__ rorl(r13, 8);", // IID6550 - "__ rorl(r13, 16);", // IID6551 - "__ rorl(r14, 1);", // IID6552 - "__ rorl(r14, 2);", // IID6553 - "__ rorl(r14, 4);", // IID6554 - "__ rorl(r14, 8);", // IID6555 - "__ rorl(r14, 16);", // IID6556 - "__ rorl(r15, 1);", // IID6557 - "__ rorl(r15, 2);", // IID6558 - "__ rorl(r15, 4);", // IID6559 - "__ rorl(r15, 8);", // IID6560 - "__ rorl(r15, 16);", // IID6561 - "__ rorl(r16, 1);", // IID6562 - "__ rorl(r16, 2);", // IID6563 - "__ rorl(r16, 4);", // IID6564 - "__ rorl(r16, 8);", // IID6565 - "__ rorl(r16, 16);", // IID6566 - "__ rorl(r17, 1);", // IID6567 - "__ rorl(r17, 2);", // IID6568 - "__ rorl(r17, 4);", // IID6569 - "__ rorl(r17, 8);", // IID6570 - "__ rorl(r17, 16);", // IID6571 - "__ rorl(r18, 1);", // IID6572 - "__ rorl(r18, 2);", // IID6573 - "__ rorl(r18, 4);", // IID6574 - "__ rorl(r18, 8);", // IID6575 - "__ rorl(r18, 16);", // IID6576 - "__ rorl(r19, 1);", // IID6577 - "__ rorl(r19, 2);", // IID6578 - "__ rorl(r19, 4);", // IID6579 - "__ rorl(r19, 8);", // IID6580 - "__ rorl(r19, 16);", // IID6581 - "__ rorl(r20, 1);", // IID6582 - "__ rorl(r20, 2);", // IID6583 - "__ rorl(r20, 4);", // IID6584 - "__ rorl(r20, 8);", // IID6585 - "__ rorl(r20, 16);", // IID6586 - "__ rorl(r21, 1);", // IID6587 - "__ rorl(r21, 2);", // IID6588 - "__ rorl(r21, 4);", // IID6589 - "__ rorl(r21, 8);", // IID6590 - "__ rorl(r21, 16);", // IID6591 - "__ rorl(r22, 1);", // IID6592 - "__ rorl(r22, 2);", // IID6593 - "__ rorl(r22, 4);", // IID6594 - "__ rorl(r22, 8);", // IID6595 - "__ rorl(r22, 16);", // IID6596 - "__ rorl(r23, 1);", // IID6597 - "__ rorl(r23, 2);", // IID6598 - "__ rorl(r23, 4);", // IID6599 - "__ rorl(r23, 8);", // IID6600 - "__ rorl(r23, 16);", // IID6601 - "__ rorl(r24, 1);", // IID6602 - "__ rorl(r24, 2);", // IID6603 - "__ rorl(r24, 4);", // IID6604 - "__ rorl(r24, 8);", // IID6605 - "__ rorl(r24, 16);", // IID6606 - "__ rorl(r25, 1);", // IID6607 - "__ rorl(r25, 2);", // IID6608 - "__ rorl(r25, 4);", // IID6609 - "__ rorl(r25, 8);", // IID6610 - "__ rorl(r25, 16);", // IID6611 - "__ rorl(r26, 1);", // IID6612 - "__ rorl(r26, 2);", // IID6613 - "__ rorl(r26, 4);", // IID6614 - "__ rorl(r26, 8);", // IID6615 - "__ rorl(r26, 16);", // IID6616 - "__ rorl(r27, 1);", // IID6617 - "__ rorl(r27, 2);", // IID6618 - "__ rorl(r27, 4);", // IID6619 - "__ rorl(r27, 8);", // IID6620 - "__ rorl(r27, 16);", // IID6621 - "__ rorl(r28, 1);", // IID6622 - "__ rorl(r28, 2);", // IID6623 - "__ rorl(r28, 4);", // IID6624 - "__ rorl(r28, 8);", // IID6625 - "__ rorl(r28, 16);", // IID6626 - "__ rorl(r29, 1);", // IID6627 - "__ rorl(r29, 2);", // IID6628 - "__ rorl(r29, 4);", // IID6629 - "__ rorl(r29, 8);", // IID6630 - "__ rorl(r29, 16);", // IID6631 - "__ rorl(r30, 1);", // IID6632 - "__ rorl(r30, 2);", // IID6633 - "__ rorl(r30, 4);", // IID6634 - "__ rorl(r30, 8);", // IID6635 - "__ rorl(r30, 16);", // IID6636 - "__ rorl(r31, 1);", // IID6637 - "__ rorl(r31, 2);", // IID6638 - "__ rorl(r31, 4);", // IID6639 - "__ rorl(r31, 8);", // IID6640 - "__ rorl(r31, 16);", // IID6641 -#endif // _LP64 - "__ sarl(rcx, 1);", // IID6642 - "__ sarl(rcx, 2);", // IID6643 - "__ sarl(rcx, 4);", // IID6644 - "__ sarl(rcx, 8);", // IID6645 - "__ sarl(rcx, 16);", // IID6646 - "__ sarl(rdx, 1);", // IID6647 - "__ sarl(rdx, 2);", // IID6648 - "__ sarl(rdx, 4);", // IID6649 - "__ sarl(rdx, 8);", // IID6650 - "__ sarl(rdx, 16);", // IID6651 - "__ sarl(rbx, 1);", // IID6652 - "__ sarl(rbx, 2);", // IID6653 - "__ sarl(rbx, 4);", // IID6654 - "__ sarl(rbx, 8);", // IID6655 - "__ sarl(rbx, 16);", // IID6656 -#ifdef _LP64 - "__ sarl(r8, 1);", // IID6657 - "__ sarl(r8, 2);", // IID6658 - "__ sarl(r8, 4);", // IID6659 - "__ sarl(r8, 8);", // IID6660 - "__ sarl(r8, 16);", // IID6661 - "__ sarl(r9, 1);", // IID6662 - "__ sarl(r9, 2);", // IID6663 - "__ sarl(r9, 4);", // IID6664 - "__ sarl(r9, 8);", // IID6665 - "__ sarl(r9, 16);", // IID6666 - "__ sarl(r10, 1);", // IID6667 - "__ sarl(r10, 2);", // IID6668 - "__ sarl(r10, 4);", // IID6669 - "__ sarl(r10, 8);", // IID6670 - "__ sarl(r10, 16);", // IID6671 - "__ sarl(r11, 1);", // IID6672 - "__ sarl(r11, 2);", // IID6673 - "__ sarl(r11, 4);", // IID6674 - "__ sarl(r11, 8);", // IID6675 - "__ sarl(r11, 16);", // IID6676 - "__ sarl(r12, 1);", // IID6677 - "__ sarl(r12, 2);", // IID6678 - "__ sarl(r12, 4);", // IID6679 - "__ sarl(r12, 8);", // IID6680 - "__ sarl(r12, 16);", // IID6681 - "__ sarl(r13, 1);", // IID6682 - "__ sarl(r13, 2);", // IID6683 - "__ sarl(r13, 4);", // IID6684 - "__ sarl(r13, 8);", // IID6685 - "__ sarl(r13, 16);", // IID6686 - "__ sarl(r14, 1);", // IID6687 - "__ sarl(r14, 2);", // IID6688 - "__ sarl(r14, 4);", // IID6689 - "__ sarl(r14, 8);", // IID6690 - "__ sarl(r14, 16);", // IID6691 - "__ sarl(r15, 1);", // IID6692 - "__ sarl(r15, 2);", // IID6693 - "__ sarl(r15, 4);", // IID6694 - "__ sarl(r15, 8);", // IID6695 - "__ sarl(r15, 16);", // IID6696 - "__ sarl(r16, 1);", // IID6697 - "__ sarl(r16, 2);", // IID6698 - "__ sarl(r16, 4);", // IID6699 - "__ sarl(r16, 8);", // IID6700 - "__ sarl(r16, 16);", // IID6701 - "__ sarl(r17, 1);", // IID6702 - "__ sarl(r17, 2);", // IID6703 - "__ sarl(r17, 4);", // IID6704 - "__ sarl(r17, 8);", // IID6705 - "__ sarl(r17, 16);", // IID6706 - "__ sarl(r18, 1);", // IID6707 - "__ sarl(r18, 2);", // IID6708 - "__ sarl(r18, 4);", // IID6709 - "__ sarl(r18, 8);", // IID6710 - "__ sarl(r18, 16);", // IID6711 - "__ sarl(r19, 1);", // IID6712 - "__ sarl(r19, 2);", // IID6713 - "__ sarl(r19, 4);", // IID6714 - "__ sarl(r19, 8);", // IID6715 - "__ sarl(r19, 16);", // IID6716 - "__ sarl(r20, 1);", // IID6717 - "__ sarl(r20, 2);", // IID6718 - "__ sarl(r20, 4);", // IID6719 - "__ sarl(r20, 8);", // IID6720 - "__ sarl(r20, 16);", // IID6721 - "__ sarl(r21, 1);", // IID6722 - "__ sarl(r21, 2);", // IID6723 - "__ sarl(r21, 4);", // IID6724 - "__ sarl(r21, 8);", // IID6725 - "__ sarl(r21, 16);", // IID6726 - "__ sarl(r22, 1);", // IID6727 - "__ sarl(r22, 2);", // IID6728 - "__ sarl(r22, 4);", // IID6729 - "__ sarl(r22, 8);", // IID6730 - "__ sarl(r22, 16);", // IID6731 - "__ sarl(r23, 1);", // IID6732 - "__ sarl(r23, 2);", // IID6733 - "__ sarl(r23, 4);", // IID6734 - "__ sarl(r23, 8);", // IID6735 - "__ sarl(r23, 16);", // IID6736 - "__ sarl(r24, 1);", // IID6737 - "__ sarl(r24, 2);", // IID6738 - "__ sarl(r24, 4);", // IID6739 - "__ sarl(r24, 8);", // IID6740 - "__ sarl(r24, 16);", // IID6741 - "__ sarl(r25, 1);", // IID6742 - "__ sarl(r25, 2);", // IID6743 - "__ sarl(r25, 4);", // IID6744 - "__ sarl(r25, 8);", // IID6745 - "__ sarl(r25, 16);", // IID6746 - "__ sarl(r26, 1);", // IID6747 - "__ sarl(r26, 2);", // IID6748 - "__ sarl(r26, 4);", // IID6749 - "__ sarl(r26, 8);", // IID6750 - "__ sarl(r26, 16);", // IID6751 - "__ sarl(r27, 1);", // IID6752 - "__ sarl(r27, 2);", // IID6753 - "__ sarl(r27, 4);", // IID6754 - "__ sarl(r27, 8);", // IID6755 - "__ sarl(r27, 16);", // IID6756 - "__ sarl(r28, 1);", // IID6757 - "__ sarl(r28, 2);", // IID6758 - "__ sarl(r28, 4);", // IID6759 - "__ sarl(r28, 8);", // IID6760 - "__ sarl(r28, 16);", // IID6761 - "__ sarl(r29, 1);", // IID6762 - "__ sarl(r29, 2);", // IID6763 - "__ sarl(r29, 4);", // IID6764 - "__ sarl(r29, 8);", // IID6765 - "__ sarl(r29, 16);", // IID6766 - "__ sarl(r30, 1);", // IID6767 - "__ sarl(r30, 2);", // IID6768 - "__ sarl(r30, 4);", // IID6769 - "__ sarl(r30, 8);", // IID6770 - "__ sarl(r30, 16);", // IID6771 - "__ sarl(r31, 1);", // IID6772 - "__ sarl(r31, 2);", // IID6773 - "__ sarl(r31, 4);", // IID6774 - "__ sarl(r31, 8);", // IID6775 - "__ sarl(r31, 16);", // IID6776 -#endif // _LP64 - "__ sall(rcx, 1);", // IID6777 - "__ sall(rcx, 2);", // IID6778 - "__ sall(rcx, 4);", // IID6779 - "__ sall(rcx, 8);", // IID6780 - "__ sall(rcx, 16);", // IID6781 - "__ sall(rdx, 1);", // IID6782 - "__ sall(rdx, 2);", // IID6783 - "__ sall(rdx, 4);", // IID6784 - "__ sall(rdx, 8);", // IID6785 - "__ sall(rdx, 16);", // IID6786 - "__ sall(rbx, 1);", // IID6787 - "__ sall(rbx, 2);", // IID6788 - "__ sall(rbx, 4);", // IID6789 - "__ sall(rbx, 8);", // IID6790 - "__ sall(rbx, 16);", // IID6791 -#ifdef _LP64 - "__ sall(r8, 1);", // IID6792 - "__ sall(r8, 2);", // IID6793 - "__ sall(r8, 4);", // IID6794 - "__ sall(r8, 8);", // IID6795 - "__ sall(r8, 16);", // IID6796 - "__ sall(r9, 1);", // IID6797 - "__ sall(r9, 2);", // IID6798 - "__ sall(r9, 4);", // IID6799 - "__ sall(r9, 8);", // IID6800 - "__ sall(r9, 16);", // IID6801 - "__ sall(r10, 1);", // IID6802 - "__ sall(r10, 2);", // IID6803 - "__ sall(r10, 4);", // IID6804 - "__ sall(r10, 8);", // IID6805 - "__ sall(r10, 16);", // IID6806 - "__ sall(r11, 1);", // IID6807 - "__ sall(r11, 2);", // IID6808 - "__ sall(r11, 4);", // IID6809 - "__ sall(r11, 8);", // IID6810 - "__ sall(r11, 16);", // IID6811 - "__ sall(r12, 1);", // IID6812 - "__ sall(r12, 2);", // IID6813 - "__ sall(r12, 4);", // IID6814 - "__ sall(r12, 8);", // IID6815 - "__ sall(r12, 16);", // IID6816 - "__ sall(r13, 1);", // IID6817 - "__ sall(r13, 2);", // IID6818 - "__ sall(r13, 4);", // IID6819 - "__ sall(r13, 8);", // IID6820 - "__ sall(r13, 16);", // IID6821 - "__ sall(r14, 1);", // IID6822 - "__ sall(r14, 2);", // IID6823 - "__ sall(r14, 4);", // IID6824 - "__ sall(r14, 8);", // IID6825 - "__ sall(r14, 16);", // IID6826 - "__ sall(r15, 1);", // IID6827 - "__ sall(r15, 2);", // IID6828 - "__ sall(r15, 4);", // IID6829 - "__ sall(r15, 8);", // IID6830 - "__ sall(r15, 16);", // IID6831 - "__ sall(r16, 1);", // IID6832 - "__ sall(r16, 2);", // IID6833 - "__ sall(r16, 4);", // IID6834 - "__ sall(r16, 8);", // IID6835 - "__ sall(r16, 16);", // IID6836 - "__ sall(r17, 1);", // IID6837 - "__ sall(r17, 2);", // IID6838 - "__ sall(r17, 4);", // IID6839 - "__ sall(r17, 8);", // IID6840 - "__ sall(r17, 16);", // IID6841 - "__ sall(r18, 1);", // IID6842 - "__ sall(r18, 2);", // IID6843 - "__ sall(r18, 4);", // IID6844 - "__ sall(r18, 8);", // IID6845 - "__ sall(r18, 16);", // IID6846 - "__ sall(r19, 1);", // IID6847 - "__ sall(r19, 2);", // IID6848 - "__ sall(r19, 4);", // IID6849 - "__ sall(r19, 8);", // IID6850 - "__ sall(r19, 16);", // IID6851 - "__ sall(r20, 1);", // IID6852 - "__ sall(r20, 2);", // IID6853 - "__ sall(r20, 4);", // IID6854 - "__ sall(r20, 8);", // IID6855 - "__ sall(r20, 16);", // IID6856 - "__ sall(r21, 1);", // IID6857 - "__ sall(r21, 2);", // IID6858 - "__ sall(r21, 4);", // IID6859 - "__ sall(r21, 8);", // IID6860 - "__ sall(r21, 16);", // IID6861 - "__ sall(r22, 1);", // IID6862 - "__ sall(r22, 2);", // IID6863 - "__ sall(r22, 4);", // IID6864 - "__ sall(r22, 8);", // IID6865 - "__ sall(r22, 16);", // IID6866 - "__ sall(r23, 1);", // IID6867 - "__ sall(r23, 2);", // IID6868 - "__ sall(r23, 4);", // IID6869 - "__ sall(r23, 8);", // IID6870 - "__ sall(r23, 16);", // IID6871 - "__ sall(r24, 1);", // IID6872 - "__ sall(r24, 2);", // IID6873 - "__ sall(r24, 4);", // IID6874 - "__ sall(r24, 8);", // IID6875 - "__ sall(r24, 16);", // IID6876 - "__ sall(r25, 1);", // IID6877 - "__ sall(r25, 2);", // IID6878 - "__ sall(r25, 4);", // IID6879 - "__ sall(r25, 8);", // IID6880 - "__ sall(r25, 16);", // IID6881 - "__ sall(r26, 1);", // IID6882 - "__ sall(r26, 2);", // IID6883 - "__ sall(r26, 4);", // IID6884 - "__ sall(r26, 8);", // IID6885 - "__ sall(r26, 16);", // IID6886 - "__ sall(r27, 1);", // IID6887 - "__ sall(r27, 2);", // IID6888 - "__ sall(r27, 4);", // IID6889 - "__ sall(r27, 8);", // IID6890 - "__ sall(r27, 16);", // IID6891 - "__ sall(r28, 1);", // IID6892 - "__ sall(r28, 2);", // IID6893 - "__ sall(r28, 4);", // IID6894 - "__ sall(r28, 8);", // IID6895 - "__ sall(r28, 16);", // IID6896 - "__ sall(r29, 1);", // IID6897 - "__ sall(r29, 2);", // IID6898 - "__ sall(r29, 4);", // IID6899 - "__ sall(r29, 8);", // IID6900 - "__ sall(r29, 16);", // IID6901 - "__ sall(r30, 1);", // IID6902 - "__ sall(r30, 2);", // IID6903 - "__ sall(r30, 4);", // IID6904 - "__ sall(r30, 8);", // IID6905 - "__ sall(r30, 16);", // IID6906 - "__ sall(r31, 1);", // IID6907 - "__ sall(r31, 2);", // IID6908 - "__ sall(r31, 4);", // IID6909 - "__ sall(r31, 8);", // IID6910 - "__ sall(r31, 16);", // IID6911 -#endif // _LP64 - "__ sbbl(rcx, 1);", // IID6912 - "__ sbbl(rcx, 16);", // IID6913 - "__ sbbl(rcx, 256);", // IID6914 - "__ sbbl(rcx, 4096);", // IID6915 - "__ sbbl(rcx, 65536);", // IID6916 - "__ sbbl(rcx, 1048576);", // IID6917 - "__ sbbl(rcx, 16777216);", // IID6918 - "__ sbbl(rcx, 268435456);", // IID6919 - "__ sbbl(rdx, 1);", // IID6920 - "__ sbbl(rdx, 16);", // IID6921 - "__ sbbl(rdx, 256);", // IID6922 - "__ sbbl(rdx, 4096);", // IID6923 - "__ sbbl(rdx, 65536);", // IID6924 - "__ sbbl(rdx, 1048576);", // IID6925 - "__ sbbl(rdx, 16777216);", // IID6926 - "__ sbbl(rdx, 268435456);", // IID6927 - "__ sbbl(rbx, 1);", // IID6928 - "__ sbbl(rbx, 16);", // IID6929 - "__ sbbl(rbx, 256);", // IID6930 - "__ sbbl(rbx, 4096);", // IID6931 - "__ sbbl(rbx, 65536);", // IID6932 - "__ sbbl(rbx, 1048576);", // IID6933 - "__ sbbl(rbx, 16777216);", // IID6934 - "__ sbbl(rbx, 268435456);", // IID6935 -#ifdef _LP64 - "__ sbbl(r8, 1);", // IID6936 - "__ sbbl(r8, 16);", // IID6937 - "__ sbbl(r8, 256);", // IID6938 - "__ sbbl(r8, 4096);", // IID6939 - "__ sbbl(r8, 65536);", // IID6940 - "__ sbbl(r8, 1048576);", // IID6941 - "__ sbbl(r8, 16777216);", // IID6942 - "__ sbbl(r8, 268435456);", // IID6943 - "__ sbbl(r9, 1);", // IID6944 - "__ sbbl(r9, 16);", // IID6945 - "__ sbbl(r9, 256);", // IID6946 - "__ sbbl(r9, 4096);", // IID6947 - "__ sbbl(r9, 65536);", // IID6948 - "__ sbbl(r9, 1048576);", // IID6949 - "__ sbbl(r9, 16777216);", // IID6950 - "__ sbbl(r9, 268435456);", // IID6951 - "__ sbbl(r10, 1);", // IID6952 - "__ sbbl(r10, 16);", // IID6953 - "__ sbbl(r10, 256);", // IID6954 - "__ sbbl(r10, 4096);", // IID6955 - "__ sbbl(r10, 65536);", // IID6956 - "__ sbbl(r10, 1048576);", // IID6957 - "__ sbbl(r10, 16777216);", // IID6958 - "__ sbbl(r10, 268435456);", // IID6959 - "__ sbbl(r11, 1);", // IID6960 - "__ sbbl(r11, 16);", // IID6961 - "__ sbbl(r11, 256);", // IID6962 - "__ sbbl(r11, 4096);", // IID6963 - "__ sbbl(r11, 65536);", // IID6964 - "__ sbbl(r11, 1048576);", // IID6965 - "__ sbbl(r11, 16777216);", // IID6966 - "__ sbbl(r11, 268435456);", // IID6967 - "__ sbbl(r12, 1);", // IID6968 - "__ sbbl(r12, 16);", // IID6969 - "__ sbbl(r12, 256);", // IID6970 - "__ sbbl(r12, 4096);", // IID6971 - "__ sbbl(r12, 65536);", // IID6972 - "__ sbbl(r12, 1048576);", // IID6973 - "__ sbbl(r12, 16777216);", // IID6974 - "__ sbbl(r12, 268435456);", // IID6975 - "__ sbbl(r13, 1);", // IID6976 - "__ sbbl(r13, 16);", // IID6977 - "__ sbbl(r13, 256);", // IID6978 - "__ sbbl(r13, 4096);", // IID6979 - "__ sbbl(r13, 65536);", // IID6980 - "__ sbbl(r13, 1048576);", // IID6981 - "__ sbbl(r13, 16777216);", // IID6982 - "__ sbbl(r13, 268435456);", // IID6983 - "__ sbbl(r14, 1);", // IID6984 - "__ sbbl(r14, 16);", // IID6985 - "__ sbbl(r14, 256);", // IID6986 - "__ sbbl(r14, 4096);", // IID6987 - "__ sbbl(r14, 65536);", // IID6988 - "__ sbbl(r14, 1048576);", // IID6989 - "__ sbbl(r14, 16777216);", // IID6990 - "__ sbbl(r14, 268435456);", // IID6991 - "__ sbbl(r15, 1);", // IID6992 - "__ sbbl(r15, 16);", // IID6993 - "__ sbbl(r15, 256);", // IID6994 - "__ sbbl(r15, 4096);", // IID6995 - "__ sbbl(r15, 65536);", // IID6996 - "__ sbbl(r15, 1048576);", // IID6997 - "__ sbbl(r15, 16777216);", // IID6998 - "__ sbbl(r15, 268435456);", // IID6999 - "__ sbbl(r16, 1);", // IID7000 - "__ sbbl(r16, 16);", // IID7001 - "__ sbbl(r16, 256);", // IID7002 - "__ sbbl(r16, 4096);", // IID7003 - "__ sbbl(r16, 65536);", // IID7004 - "__ sbbl(r16, 1048576);", // IID7005 - "__ sbbl(r16, 16777216);", // IID7006 - "__ sbbl(r16, 268435456);", // IID7007 - "__ sbbl(r17, 1);", // IID7008 - "__ sbbl(r17, 16);", // IID7009 - "__ sbbl(r17, 256);", // IID7010 - "__ sbbl(r17, 4096);", // IID7011 - "__ sbbl(r17, 65536);", // IID7012 - "__ sbbl(r17, 1048576);", // IID7013 - "__ sbbl(r17, 16777216);", // IID7014 - "__ sbbl(r17, 268435456);", // IID7015 - "__ sbbl(r18, 1);", // IID7016 - "__ sbbl(r18, 16);", // IID7017 - "__ sbbl(r18, 256);", // IID7018 - "__ sbbl(r18, 4096);", // IID7019 - "__ sbbl(r18, 65536);", // IID7020 - "__ sbbl(r18, 1048576);", // IID7021 - "__ sbbl(r18, 16777216);", // IID7022 - "__ sbbl(r18, 268435456);", // IID7023 - "__ sbbl(r19, 1);", // IID7024 - "__ sbbl(r19, 16);", // IID7025 - "__ sbbl(r19, 256);", // IID7026 - "__ sbbl(r19, 4096);", // IID7027 - "__ sbbl(r19, 65536);", // IID7028 - "__ sbbl(r19, 1048576);", // IID7029 - "__ sbbl(r19, 16777216);", // IID7030 - "__ sbbl(r19, 268435456);", // IID7031 - "__ sbbl(r20, 1);", // IID7032 - "__ sbbl(r20, 16);", // IID7033 - "__ sbbl(r20, 256);", // IID7034 - "__ sbbl(r20, 4096);", // IID7035 - "__ sbbl(r20, 65536);", // IID7036 - "__ sbbl(r20, 1048576);", // IID7037 - "__ sbbl(r20, 16777216);", // IID7038 - "__ sbbl(r20, 268435456);", // IID7039 - "__ sbbl(r21, 1);", // IID7040 - "__ sbbl(r21, 16);", // IID7041 - "__ sbbl(r21, 256);", // IID7042 - "__ sbbl(r21, 4096);", // IID7043 - "__ sbbl(r21, 65536);", // IID7044 - "__ sbbl(r21, 1048576);", // IID7045 - "__ sbbl(r21, 16777216);", // IID7046 - "__ sbbl(r21, 268435456);", // IID7047 - "__ sbbl(r22, 1);", // IID7048 - "__ sbbl(r22, 16);", // IID7049 - "__ sbbl(r22, 256);", // IID7050 - "__ sbbl(r22, 4096);", // IID7051 - "__ sbbl(r22, 65536);", // IID7052 - "__ sbbl(r22, 1048576);", // IID7053 - "__ sbbl(r22, 16777216);", // IID7054 - "__ sbbl(r22, 268435456);", // IID7055 - "__ sbbl(r23, 1);", // IID7056 - "__ sbbl(r23, 16);", // IID7057 - "__ sbbl(r23, 256);", // IID7058 - "__ sbbl(r23, 4096);", // IID7059 - "__ sbbl(r23, 65536);", // IID7060 - "__ sbbl(r23, 1048576);", // IID7061 - "__ sbbl(r23, 16777216);", // IID7062 - "__ sbbl(r23, 268435456);", // IID7063 - "__ sbbl(r24, 1);", // IID7064 - "__ sbbl(r24, 16);", // IID7065 - "__ sbbl(r24, 256);", // IID7066 - "__ sbbl(r24, 4096);", // IID7067 - "__ sbbl(r24, 65536);", // IID7068 - "__ sbbl(r24, 1048576);", // IID7069 - "__ sbbl(r24, 16777216);", // IID7070 - "__ sbbl(r24, 268435456);", // IID7071 - "__ sbbl(r25, 1);", // IID7072 - "__ sbbl(r25, 16);", // IID7073 - "__ sbbl(r25, 256);", // IID7074 - "__ sbbl(r25, 4096);", // IID7075 - "__ sbbl(r25, 65536);", // IID7076 - "__ sbbl(r25, 1048576);", // IID7077 - "__ sbbl(r25, 16777216);", // IID7078 - "__ sbbl(r25, 268435456);", // IID7079 - "__ sbbl(r26, 1);", // IID7080 - "__ sbbl(r26, 16);", // IID7081 - "__ sbbl(r26, 256);", // IID7082 - "__ sbbl(r26, 4096);", // IID7083 - "__ sbbl(r26, 65536);", // IID7084 - "__ sbbl(r26, 1048576);", // IID7085 - "__ sbbl(r26, 16777216);", // IID7086 - "__ sbbl(r26, 268435456);", // IID7087 - "__ sbbl(r27, 1);", // IID7088 - "__ sbbl(r27, 16);", // IID7089 - "__ sbbl(r27, 256);", // IID7090 - "__ sbbl(r27, 4096);", // IID7091 - "__ sbbl(r27, 65536);", // IID7092 - "__ sbbl(r27, 1048576);", // IID7093 - "__ sbbl(r27, 16777216);", // IID7094 - "__ sbbl(r27, 268435456);", // IID7095 - "__ sbbl(r28, 1);", // IID7096 - "__ sbbl(r28, 16);", // IID7097 - "__ sbbl(r28, 256);", // IID7098 - "__ sbbl(r28, 4096);", // IID7099 - "__ sbbl(r28, 65536);", // IID7100 - "__ sbbl(r28, 1048576);", // IID7101 - "__ sbbl(r28, 16777216);", // IID7102 - "__ sbbl(r28, 268435456);", // IID7103 - "__ sbbl(r29, 1);", // IID7104 - "__ sbbl(r29, 16);", // IID7105 - "__ sbbl(r29, 256);", // IID7106 - "__ sbbl(r29, 4096);", // IID7107 - "__ sbbl(r29, 65536);", // IID7108 - "__ sbbl(r29, 1048576);", // IID7109 - "__ sbbl(r29, 16777216);", // IID7110 - "__ sbbl(r29, 268435456);", // IID7111 - "__ sbbl(r30, 1);", // IID7112 - "__ sbbl(r30, 16);", // IID7113 - "__ sbbl(r30, 256);", // IID7114 - "__ sbbl(r30, 4096);", // IID7115 - "__ sbbl(r30, 65536);", // IID7116 - "__ sbbl(r30, 1048576);", // IID7117 - "__ sbbl(r30, 16777216);", // IID7118 - "__ sbbl(r30, 268435456);", // IID7119 - "__ sbbl(r31, 1);", // IID7120 - "__ sbbl(r31, 16);", // IID7121 - "__ sbbl(r31, 256);", // IID7122 - "__ sbbl(r31, 4096);", // IID7123 - "__ sbbl(r31, 65536);", // IID7124 - "__ sbbl(r31, 1048576);", // IID7125 - "__ sbbl(r31, 16777216);", // IID7126 - "__ sbbl(r31, 268435456);", // IID7127 -#endif // _LP64 - "__ shll(rcx, 1);", // IID7128 - "__ shll(rcx, 2);", // IID7129 - "__ shll(rcx, 4);", // IID7130 - "__ shll(rcx, 8);", // IID7131 - "__ shll(rcx, 16);", // IID7132 - "__ shll(rdx, 1);", // IID7133 - "__ shll(rdx, 2);", // IID7134 - "__ shll(rdx, 4);", // IID7135 - "__ shll(rdx, 8);", // IID7136 - "__ shll(rdx, 16);", // IID7137 - "__ shll(rbx, 1);", // IID7138 - "__ shll(rbx, 2);", // IID7139 - "__ shll(rbx, 4);", // IID7140 - "__ shll(rbx, 8);", // IID7141 - "__ shll(rbx, 16);", // IID7142 -#ifdef _LP64 - "__ shll(r8, 1);", // IID7143 - "__ shll(r8, 2);", // IID7144 - "__ shll(r8, 4);", // IID7145 - "__ shll(r8, 8);", // IID7146 - "__ shll(r8, 16);", // IID7147 - "__ shll(r9, 1);", // IID7148 - "__ shll(r9, 2);", // IID7149 - "__ shll(r9, 4);", // IID7150 - "__ shll(r9, 8);", // IID7151 - "__ shll(r9, 16);", // IID7152 - "__ shll(r10, 1);", // IID7153 - "__ shll(r10, 2);", // IID7154 - "__ shll(r10, 4);", // IID7155 - "__ shll(r10, 8);", // IID7156 - "__ shll(r10, 16);", // IID7157 - "__ shll(r11, 1);", // IID7158 - "__ shll(r11, 2);", // IID7159 - "__ shll(r11, 4);", // IID7160 - "__ shll(r11, 8);", // IID7161 - "__ shll(r11, 16);", // IID7162 - "__ shll(r12, 1);", // IID7163 - "__ shll(r12, 2);", // IID7164 - "__ shll(r12, 4);", // IID7165 - "__ shll(r12, 8);", // IID7166 - "__ shll(r12, 16);", // IID7167 - "__ shll(r13, 1);", // IID7168 - "__ shll(r13, 2);", // IID7169 - "__ shll(r13, 4);", // IID7170 - "__ shll(r13, 8);", // IID7171 - "__ shll(r13, 16);", // IID7172 - "__ shll(r14, 1);", // IID7173 - "__ shll(r14, 2);", // IID7174 - "__ shll(r14, 4);", // IID7175 - "__ shll(r14, 8);", // IID7176 - "__ shll(r14, 16);", // IID7177 - "__ shll(r15, 1);", // IID7178 - "__ shll(r15, 2);", // IID7179 - "__ shll(r15, 4);", // IID7180 - "__ shll(r15, 8);", // IID7181 - "__ shll(r15, 16);", // IID7182 - "__ shll(r16, 1);", // IID7183 - "__ shll(r16, 2);", // IID7184 - "__ shll(r16, 4);", // IID7185 - "__ shll(r16, 8);", // IID7186 - "__ shll(r16, 16);", // IID7187 - "__ shll(r17, 1);", // IID7188 - "__ shll(r17, 2);", // IID7189 - "__ shll(r17, 4);", // IID7190 - "__ shll(r17, 8);", // IID7191 - "__ shll(r17, 16);", // IID7192 - "__ shll(r18, 1);", // IID7193 - "__ shll(r18, 2);", // IID7194 - "__ shll(r18, 4);", // IID7195 - "__ shll(r18, 8);", // IID7196 - "__ shll(r18, 16);", // IID7197 - "__ shll(r19, 1);", // IID7198 - "__ shll(r19, 2);", // IID7199 - "__ shll(r19, 4);", // IID7200 - "__ shll(r19, 8);", // IID7201 - "__ shll(r19, 16);", // IID7202 - "__ shll(r20, 1);", // IID7203 - "__ shll(r20, 2);", // IID7204 - "__ shll(r20, 4);", // IID7205 - "__ shll(r20, 8);", // IID7206 - "__ shll(r20, 16);", // IID7207 - "__ shll(r21, 1);", // IID7208 - "__ shll(r21, 2);", // IID7209 - "__ shll(r21, 4);", // IID7210 - "__ shll(r21, 8);", // IID7211 - "__ shll(r21, 16);", // IID7212 - "__ shll(r22, 1);", // IID7213 - "__ shll(r22, 2);", // IID7214 - "__ shll(r22, 4);", // IID7215 - "__ shll(r22, 8);", // IID7216 - "__ shll(r22, 16);", // IID7217 - "__ shll(r23, 1);", // IID7218 - "__ shll(r23, 2);", // IID7219 - "__ shll(r23, 4);", // IID7220 - "__ shll(r23, 8);", // IID7221 - "__ shll(r23, 16);", // IID7222 - "__ shll(r24, 1);", // IID7223 - "__ shll(r24, 2);", // IID7224 - "__ shll(r24, 4);", // IID7225 - "__ shll(r24, 8);", // IID7226 - "__ shll(r24, 16);", // IID7227 - "__ shll(r25, 1);", // IID7228 - "__ shll(r25, 2);", // IID7229 - "__ shll(r25, 4);", // IID7230 - "__ shll(r25, 8);", // IID7231 - "__ shll(r25, 16);", // IID7232 - "__ shll(r26, 1);", // IID7233 - "__ shll(r26, 2);", // IID7234 - "__ shll(r26, 4);", // IID7235 - "__ shll(r26, 8);", // IID7236 - "__ shll(r26, 16);", // IID7237 - "__ shll(r27, 1);", // IID7238 - "__ shll(r27, 2);", // IID7239 - "__ shll(r27, 4);", // IID7240 - "__ shll(r27, 8);", // IID7241 - "__ shll(r27, 16);", // IID7242 - "__ shll(r28, 1);", // IID7243 - "__ shll(r28, 2);", // IID7244 - "__ shll(r28, 4);", // IID7245 - "__ shll(r28, 8);", // IID7246 - "__ shll(r28, 16);", // IID7247 - "__ shll(r29, 1);", // IID7248 - "__ shll(r29, 2);", // IID7249 - "__ shll(r29, 4);", // IID7250 - "__ shll(r29, 8);", // IID7251 - "__ shll(r29, 16);", // IID7252 - "__ shll(r30, 1);", // IID7253 - "__ shll(r30, 2);", // IID7254 - "__ shll(r30, 4);", // IID7255 - "__ shll(r30, 8);", // IID7256 - "__ shll(r30, 16);", // IID7257 - "__ shll(r31, 1);", // IID7258 - "__ shll(r31, 2);", // IID7259 - "__ shll(r31, 4);", // IID7260 - "__ shll(r31, 8);", // IID7261 - "__ shll(r31, 16);", // IID7262 -#endif // _LP64 - "__ shrl(rcx, 1);", // IID7263 - "__ shrl(rcx, 2);", // IID7264 - "__ shrl(rcx, 4);", // IID7265 - "__ shrl(rcx, 8);", // IID7266 - "__ shrl(rcx, 16);", // IID7267 - "__ shrl(rdx, 1);", // IID7268 - "__ shrl(rdx, 2);", // IID7269 - "__ shrl(rdx, 4);", // IID7270 - "__ shrl(rdx, 8);", // IID7271 - "__ shrl(rdx, 16);", // IID7272 - "__ shrl(rbx, 1);", // IID7273 - "__ shrl(rbx, 2);", // IID7274 - "__ shrl(rbx, 4);", // IID7275 - "__ shrl(rbx, 8);", // IID7276 - "__ shrl(rbx, 16);", // IID7277 -#ifdef _LP64 - "__ shrl(r8, 1);", // IID7278 - "__ shrl(r8, 2);", // IID7279 - "__ shrl(r8, 4);", // IID7280 - "__ shrl(r8, 8);", // IID7281 - "__ shrl(r8, 16);", // IID7282 - "__ shrl(r9, 1);", // IID7283 - "__ shrl(r9, 2);", // IID7284 - "__ shrl(r9, 4);", // IID7285 - "__ shrl(r9, 8);", // IID7286 - "__ shrl(r9, 16);", // IID7287 - "__ shrl(r10, 1);", // IID7288 - "__ shrl(r10, 2);", // IID7289 - "__ shrl(r10, 4);", // IID7290 - "__ shrl(r10, 8);", // IID7291 - "__ shrl(r10, 16);", // IID7292 - "__ shrl(r11, 1);", // IID7293 - "__ shrl(r11, 2);", // IID7294 - "__ shrl(r11, 4);", // IID7295 - "__ shrl(r11, 8);", // IID7296 - "__ shrl(r11, 16);", // IID7297 - "__ shrl(r12, 1);", // IID7298 - "__ shrl(r12, 2);", // IID7299 - "__ shrl(r12, 4);", // IID7300 - "__ shrl(r12, 8);", // IID7301 - "__ shrl(r12, 16);", // IID7302 - "__ shrl(r13, 1);", // IID7303 - "__ shrl(r13, 2);", // IID7304 - "__ shrl(r13, 4);", // IID7305 - "__ shrl(r13, 8);", // IID7306 - "__ shrl(r13, 16);", // IID7307 - "__ shrl(r14, 1);", // IID7308 - "__ shrl(r14, 2);", // IID7309 - "__ shrl(r14, 4);", // IID7310 - "__ shrl(r14, 8);", // IID7311 - "__ shrl(r14, 16);", // IID7312 - "__ shrl(r15, 1);", // IID7313 - "__ shrl(r15, 2);", // IID7314 - "__ shrl(r15, 4);", // IID7315 - "__ shrl(r15, 8);", // IID7316 - "__ shrl(r15, 16);", // IID7317 - "__ shrl(r16, 1);", // IID7318 - "__ shrl(r16, 2);", // IID7319 - "__ shrl(r16, 4);", // IID7320 - "__ shrl(r16, 8);", // IID7321 - "__ shrl(r16, 16);", // IID7322 - "__ shrl(r17, 1);", // IID7323 - "__ shrl(r17, 2);", // IID7324 - "__ shrl(r17, 4);", // IID7325 - "__ shrl(r17, 8);", // IID7326 - "__ shrl(r17, 16);", // IID7327 - "__ shrl(r18, 1);", // IID7328 - "__ shrl(r18, 2);", // IID7329 - "__ shrl(r18, 4);", // IID7330 - "__ shrl(r18, 8);", // IID7331 - "__ shrl(r18, 16);", // IID7332 - "__ shrl(r19, 1);", // IID7333 - "__ shrl(r19, 2);", // IID7334 - "__ shrl(r19, 4);", // IID7335 - "__ shrl(r19, 8);", // IID7336 - "__ shrl(r19, 16);", // IID7337 - "__ shrl(r20, 1);", // IID7338 - "__ shrl(r20, 2);", // IID7339 - "__ shrl(r20, 4);", // IID7340 - "__ shrl(r20, 8);", // IID7341 - "__ shrl(r20, 16);", // IID7342 - "__ shrl(r21, 1);", // IID7343 - "__ shrl(r21, 2);", // IID7344 - "__ shrl(r21, 4);", // IID7345 - "__ shrl(r21, 8);", // IID7346 - "__ shrl(r21, 16);", // IID7347 - "__ shrl(r22, 1);", // IID7348 - "__ shrl(r22, 2);", // IID7349 - "__ shrl(r22, 4);", // IID7350 - "__ shrl(r22, 8);", // IID7351 - "__ shrl(r22, 16);", // IID7352 - "__ shrl(r23, 1);", // IID7353 - "__ shrl(r23, 2);", // IID7354 - "__ shrl(r23, 4);", // IID7355 - "__ shrl(r23, 8);", // IID7356 - "__ shrl(r23, 16);", // IID7357 - "__ shrl(r24, 1);", // IID7358 - "__ shrl(r24, 2);", // IID7359 - "__ shrl(r24, 4);", // IID7360 - "__ shrl(r24, 8);", // IID7361 - "__ shrl(r24, 16);", // IID7362 - "__ shrl(r25, 1);", // IID7363 - "__ shrl(r25, 2);", // IID7364 - "__ shrl(r25, 4);", // IID7365 - "__ shrl(r25, 8);", // IID7366 - "__ shrl(r25, 16);", // IID7367 - "__ shrl(r26, 1);", // IID7368 - "__ shrl(r26, 2);", // IID7369 - "__ shrl(r26, 4);", // IID7370 - "__ shrl(r26, 8);", // IID7371 - "__ shrl(r26, 16);", // IID7372 - "__ shrl(r27, 1);", // IID7373 - "__ shrl(r27, 2);", // IID7374 - "__ shrl(r27, 4);", // IID7375 - "__ shrl(r27, 8);", // IID7376 - "__ shrl(r27, 16);", // IID7377 - "__ shrl(r28, 1);", // IID7378 - "__ shrl(r28, 2);", // IID7379 - "__ shrl(r28, 4);", // IID7380 - "__ shrl(r28, 8);", // IID7381 - "__ shrl(r28, 16);", // IID7382 - "__ shrl(r29, 1);", // IID7383 - "__ shrl(r29, 2);", // IID7384 - "__ shrl(r29, 4);", // IID7385 - "__ shrl(r29, 8);", // IID7386 - "__ shrl(r29, 16);", // IID7387 - "__ shrl(r30, 1);", // IID7388 - "__ shrl(r30, 2);", // IID7389 - "__ shrl(r30, 4);", // IID7390 - "__ shrl(r30, 8);", // IID7391 - "__ shrl(r30, 16);", // IID7392 - "__ shrl(r31, 1);", // IID7393 - "__ shrl(r31, 2);", // IID7394 - "__ shrl(r31, 4);", // IID7395 - "__ shrl(r31, 8);", // IID7396 - "__ shrl(r31, 16);", // IID7397 -#endif // _LP64 - "__ subl(rcx, 1);", // IID7398 - "__ subl(rcx, 16);", // IID7399 - "__ subl(rcx, 256);", // IID7400 - "__ subl(rcx, 4096);", // IID7401 - "__ subl(rcx, 65536);", // IID7402 - "__ subl(rcx, 1048576);", // IID7403 - "__ subl(rcx, 16777216);", // IID7404 - "__ subl(rcx, 268435456);", // IID7405 - "__ subl(rdx, 1);", // IID7406 - "__ subl(rdx, 16);", // IID7407 - "__ subl(rdx, 256);", // IID7408 - "__ subl(rdx, 4096);", // IID7409 - "__ subl(rdx, 65536);", // IID7410 - "__ subl(rdx, 1048576);", // IID7411 - "__ subl(rdx, 16777216);", // IID7412 - "__ subl(rdx, 268435456);", // IID7413 - "__ subl(rbx, 1);", // IID7414 - "__ subl(rbx, 16);", // IID7415 - "__ subl(rbx, 256);", // IID7416 - "__ subl(rbx, 4096);", // IID7417 - "__ subl(rbx, 65536);", // IID7418 - "__ subl(rbx, 1048576);", // IID7419 - "__ subl(rbx, 16777216);", // IID7420 - "__ subl(rbx, 268435456);", // IID7421 -#ifdef _LP64 - "__ subl(r8, 1);", // IID7422 - "__ subl(r8, 16);", // IID7423 - "__ subl(r8, 256);", // IID7424 - "__ subl(r8, 4096);", // IID7425 - "__ subl(r8, 65536);", // IID7426 - "__ subl(r8, 1048576);", // IID7427 - "__ subl(r8, 16777216);", // IID7428 - "__ subl(r8, 268435456);", // IID7429 - "__ subl(r9, 1);", // IID7430 - "__ subl(r9, 16);", // IID7431 - "__ subl(r9, 256);", // IID7432 - "__ subl(r9, 4096);", // IID7433 - "__ subl(r9, 65536);", // IID7434 - "__ subl(r9, 1048576);", // IID7435 - "__ subl(r9, 16777216);", // IID7436 - "__ subl(r9, 268435456);", // IID7437 - "__ subl(r10, 1);", // IID7438 - "__ subl(r10, 16);", // IID7439 - "__ subl(r10, 256);", // IID7440 - "__ subl(r10, 4096);", // IID7441 - "__ subl(r10, 65536);", // IID7442 - "__ subl(r10, 1048576);", // IID7443 - "__ subl(r10, 16777216);", // IID7444 - "__ subl(r10, 268435456);", // IID7445 - "__ subl(r11, 1);", // IID7446 - "__ subl(r11, 16);", // IID7447 - "__ subl(r11, 256);", // IID7448 - "__ subl(r11, 4096);", // IID7449 - "__ subl(r11, 65536);", // IID7450 - "__ subl(r11, 1048576);", // IID7451 - "__ subl(r11, 16777216);", // IID7452 - "__ subl(r11, 268435456);", // IID7453 - "__ subl(r12, 1);", // IID7454 - "__ subl(r12, 16);", // IID7455 - "__ subl(r12, 256);", // IID7456 - "__ subl(r12, 4096);", // IID7457 - "__ subl(r12, 65536);", // IID7458 - "__ subl(r12, 1048576);", // IID7459 - "__ subl(r12, 16777216);", // IID7460 - "__ subl(r12, 268435456);", // IID7461 - "__ subl(r13, 1);", // IID7462 - "__ subl(r13, 16);", // IID7463 - "__ subl(r13, 256);", // IID7464 - "__ subl(r13, 4096);", // IID7465 - "__ subl(r13, 65536);", // IID7466 - "__ subl(r13, 1048576);", // IID7467 - "__ subl(r13, 16777216);", // IID7468 - "__ subl(r13, 268435456);", // IID7469 - "__ subl(r14, 1);", // IID7470 - "__ subl(r14, 16);", // IID7471 - "__ subl(r14, 256);", // IID7472 - "__ subl(r14, 4096);", // IID7473 - "__ subl(r14, 65536);", // IID7474 - "__ subl(r14, 1048576);", // IID7475 - "__ subl(r14, 16777216);", // IID7476 - "__ subl(r14, 268435456);", // IID7477 - "__ subl(r15, 1);", // IID7478 - "__ subl(r15, 16);", // IID7479 - "__ subl(r15, 256);", // IID7480 - "__ subl(r15, 4096);", // IID7481 - "__ subl(r15, 65536);", // IID7482 - "__ subl(r15, 1048576);", // IID7483 - "__ subl(r15, 16777216);", // IID7484 - "__ subl(r15, 268435456);", // IID7485 - "__ subl(r16, 1);", // IID7486 - "__ subl(r16, 16);", // IID7487 - "__ subl(r16, 256);", // IID7488 - "__ subl(r16, 4096);", // IID7489 - "__ subl(r16, 65536);", // IID7490 - "__ subl(r16, 1048576);", // IID7491 - "__ subl(r16, 16777216);", // IID7492 - "__ subl(r16, 268435456);", // IID7493 - "__ subl(r17, 1);", // IID7494 - "__ subl(r17, 16);", // IID7495 - "__ subl(r17, 256);", // IID7496 - "__ subl(r17, 4096);", // IID7497 - "__ subl(r17, 65536);", // IID7498 - "__ subl(r17, 1048576);", // IID7499 - "__ subl(r17, 16777216);", // IID7500 - "__ subl(r17, 268435456);", // IID7501 - "__ subl(r18, 1);", // IID7502 - "__ subl(r18, 16);", // IID7503 - "__ subl(r18, 256);", // IID7504 - "__ subl(r18, 4096);", // IID7505 - "__ subl(r18, 65536);", // IID7506 - "__ subl(r18, 1048576);", // IID7507 - "__ subl(r18, 16777216);", // IID7508 - "__ subl(r18, 268435456);", // IID7509 - "__ subl(r19, 1);", // IID7510 - "__ subl(r19, 16);", // IID7511 - "__ subl(r19, 256);", // IID7512 - "__ subl(r19, 4096);", // IID7513 - "__ subl(r19, 65536);", // IID7514 - "__ subl(r19, 1048576);", // IID7515 - "__ subl(r19, 16777216);", // IID7516 - "__ subl(r19, 268435456);", // IID7517 - "__ subl(r20, 1);", // IID7518 - "__ subl(r20, 16);", // IID7519 - "__ subl(r20, 256);", // IID7520 - "__ subl(r20, 4096);", // IID7521 - "__ subl(r20, 65536);", // IID7522 - "__ subl(r20, 1048576);", // IID7523 - "__ subl(r20, 16777216);", // IID7524 - "__ subl(r20, 268435456);", // IID7525 - "__ subl(r21, 1);", // IID7526 - "__ subl(r21, 16);", // IID7527 - "__ subl(r21, 256);", // IID7528 - "__ subl(r21, 4096);", // IID7529 - "__ subl(r21, 65536);", // IID7530 - "__ subl(r21, 1048576);", // IID7531 - "__ subl(r21, 16777216);", // IID7532 - "__ subl(r21, 268435456);", // IID7533 - "__ subl(r22, 1);", // IID7534 - "__ subl(r22, 16);", // IID7535 - "__ subl(r22, 256);", // IID7536 - "__ subl(r22, 4096);", // IID7537 - "__ subl(r22, 65536);", // IID7538 - "__ subl(r22, 1048576);", // IID7539 - "__ subl(r22, 16777216);", // IID7540 - "__ subl(r22, 268435456);", // IID7541 - "__ subl(r23, 1);", // IID7542 - "__ subl(r23, 16);", // IID7543 - "__ subl(r23, 256);", // IID7544 - "__ subl(r23, 4096);", // IID7545 - "__ subl(r23, 65536);", // IID7546 - "__ subl(r23, 1048576);", // IID7547 - "__ subl(r23, 16777216);", // IID7548 - "__ subl(r23, 268435456);", // IID7549 - "__ subl(r24, 1);", // IID7550 - "__ subl(r24, 16);", // IID7551 - "__ subl(r24, 256);", // IID7552 - "__ subl(r24, 4096);", // IID7553 - "__ subl(r24, 65536);", // IID7554 - "__ subl(r24, 1048576);", // IID7555 - "__ subl(r24, 16777216);", // IID7556 - "__ subl(r24, 268435456);", // IID7557 - "__ subl(r25, 1);", // IID7558 - "__ subl(r25, 16);", // IID7559 - "__ subl(r25, 256);", // IID7560 - "__ subl(r25, 4096);", // IID7561 - "__ subl(r25, 65536);", // IID7562 - "__ subl(r25, 1048576);", // IID7563 - "__ subl(r25, 16777216);", // IID7564 - "__ subl(r25, 268435456);", // IID7565 - "__ subl(r26, 1);", // IID7566 - "__ subl(r26, 16);", // IID7567 - "__ subl(r26, 256);", // IID7568 - "__ subl(r26, 4096);", // IID7569 - "__ subl(r26, 65536);", // IID7570 - "__ subl(r26, 1048576);", // IID7571 - "__ subl(r26, 16777216);", // IID7572 - "__ subl(r26, 268435456);", // IID7573 - "__ subl(r27, 1);", // IID7574 - "__ subl(r27, 16);", // IID7575 - "__ subl(r27, 256);", // IID7576 - "__ subl(r27, 4096);", // IID7577 - "__ subl(r27, 65536);", // IID7578 - "__ subl(r27, 1048576);", // IID7579 - "__ subl(r27, 16777216);", // IID7580 - "__ subl(r27, 268435456);", // IID7581 - "__ subl(r28, 1);", // IID7582 - "__ subl(r28, 16);", // IID7583 - "__ subl(r28, 256);", // IID7584 - "__ subl(r28, 4096);", // IID7585 - "__ subl(r28, 65536);", // IID7586 - "__ subl(r28, 1048576);", // IID7587 - "__ subl(r28, 16777216);", // IID7588 - "__ subl(r28, 268435456);", // IID7589 - "__ subl(r29, 1);", // IID7590 - "__ subl(r29, 16);", // IID7591 - "__ subl(r29, 256);", // IID7592 - "__ subl(r29, 4096);", // IID7593 - "__ subl(r29, 65536);", // IID7594 - "__ subl(r29, 1048576);", // IID7595 - "__ subl(r29, 16777216);", // IID7596 - "__ subl(r29, 268435456);", // IID7597 - "__ subl(r30, 1);", // IID7598 - "__ subl(r30, 16);", // IID7599 - "__ subl(r30, 256);", // IID7600 - "__ subl(r30, 4096);", // IID7601 - "__ subl(r30, 65536);", // IID7602 - "__ subl(r30, 1048576);", // IID7603 - "__ subl(r30, 16777216);", // IID7604 - "__ subl(r30, 268435456);", // IID7605 - "__ subl(r31, 1);", // IID7606 - "__ subl(r31, 16);", // IID7607 - "__ subl(r31, 256);", // IID7608 - "__ subl(r31, 4096);", // IID7609 - "__ subl(r31, 65536);", // IID7610 - "__ subl(r31, 1048576);", // IID7611 - "__ subl(r31, 16777216);", // IID7612 - "__ subl(r31, 268435456);", // IID7613 -#endif // _LP64 - "__ xorl(rcx, 1);", // IID7614 - "__ xorl(rcx, 16);", // IID7615 - "__ xorl(rcx, 256);", // IID7616 - "__ xorl(rcx, 4096);", // IID7617 - "__ xorl(rcx, 65536);", // IID7618 - "__ xorl(rcx, 1048576);", // IID7619 - "__ xorl(rcx, 16777216);", // IID7620 - "__ xorl(rcx, 268435456);", // IID7621 - "__ xorl(rdx, 1);", // IID7622 - "__ xorl(rdx, 16);", // IID7623 - "__ xorl(rdx, 256);", // IID7624 - "__ xorl(rdx, 4096);", // IID7625 - "__ xorl(rdx, 65536);", // IID7626 - "__ xorl(rdx, 1048576);", // IID7627 - "__ xorl(rdx, 16777216);", // IID7628 - "__ xorl(rdx, 268435456);", // IID7629 - "__ xorl(rbx, 1);", // IID7630 - "__ xorl(rbx, 16);", // IID7631 - "__ xorl(rbx, 256);", // IID7632 - "__ xorl(rbx, 4096);", // IID7633 - "__ xorl(rbx, 65536);", // IID7634 - "__ xorl(rbx, 1048576);", // IID7635 - "__ xorl(rbx, 16777216);", // IID7636 - "__ xorl(rbx, 268435456);", // IID7637 -#ifdef _LP64 - "__ xorl(r8, 1);", // IID7638 - "__ xorl(r8, 16);", // IID7639 - "__ xorl(r8, 256);", // IID7640 - "__ xorl(r8, 4096);", // IID7641 - "__ xorl(r8, 65536);", // IID7642 - "__ xorl(r8, 1048576);", // IID7643 - "__ xorl(r8, 16777216);", // IID7644 - "__ xorl(r8, 268435456);", // IID7645 - "__ xorl(r9, 1);", // IID7646 - "__ xorl(r9, 16);", // IID7647 - "__ xorl(r9, 256);", // IID7648 - "__ xorl(r9, 4096);", // IID7649 - "__ xorl(r9, 65536);", // IID7650 - "__ xorl(r9, 1048576);", // IID7651 - "__ xorl(r9, 16777216);", // IID7652 - "__ xorl(r9, 268435456);", // IID7653 - "__ xorl(r10, 1);", // IID7654 - "__ xorl(r10, 16);", // IID7655 - "__ xorl(r10, 256);", // IID7656 - "__ xorl(r10, 4096);", // IID7657 - "__ xorl(r10, 65536);", // IID7658 - "__ xorl(r10, 1048576);", // IID7659 - "__ xorl(r10, 16777216);", // IID7660 - "__ xorl(r10, 268435456);", // IID7661 - "__ xorl(r11, 1);", // IID7662 - "__ xorl(r11, 16);", // IID7663 - "__ xorl(r11, 256);", // IID7664 - "__ xorl(r11, 4096);", // IID7665 - "__ xorl(r11, 65536);", // IID7666 - "__ xorl(r11, 1048576);", // IID7667 - "__ xorl(r11, 16777216);", // IID7668 - "__ xorl(r11, 268435456);", // IID7669 - "__ xorl(r12, 1);", // IID7670 - "__ xorl(r12, 16);", // IID7671 - "__ xorl(r12, 256);", // IID7672 - "__ xorl(r12, 4096);", // IID7673 - "__ xorl(r12, 65536);", // IID7674 - "__ xorl(r12, 1048576);", // IID7675 - "__ xorl(r12, 16777216);", // IID7676 - "__ xorl(r12, 268435456);", // IID7677 - "__ xorl(r13, 1);", // IID7678 - "__ xorl(r13, 16);", // IID7679 - "__ xorl(r13, 256);", // IID7680 - "__ xorl(r13, 4096);", // IID7681 - "__ xorl(r13, 65536);", // IID7682 - "__ xorl(r13, 1048576);", // IID7683 - "__ xorl(r13, 16777216);", // IID7684 - "__ xorl(r13, 268435456);", // IID7685 - "__ xorl(r14, 1);", // IID7686 - "__ xorl(r14, 16);", // IID7687 - "__ xorl(r14, 256);", // IID7688 - "__ xorl(r14, 4096);", // IID7689 - "__ xorl(r14, 65536);", // IID7690 - "__ xorl(r14, 1048576);", // IID7691 - "__ xorl(r14, 16777216);", // IID7692 - "__ xorl(r14, 268435456);", // IID7693 - "__ xorl(r15, 1);", // IID7694 - "__ xorl(r15, 16);", // IID7695 - "__ xorl(r15, 256);", // IID7696 - "__ xorl(r15, 4096);", // IID7697 - "__ xorl(r15, 65536);", // IID7698 - "__ xorl(r15, 1048576);", // IID7699 - "__ xorl(r15, 16777216);", // IID7700 - "__ xorl(r15, 268435456);", // IID7701 - "__ xorl(r16, 1);", // IID7702 - "__ xorl(r16, 16);", // IID7703 - "__ xorl(r16, 256);", // IID7704 - "__ xorl(r16, 4096);", // IID7705 - "__ xorl(r16, 65536);", // IID7706 - "__ xorl(r16, 1048576);", // IID7707 - "__ xorl(r16, 16777216);", // IID7708 - "__ xorl(r16, 268435456);", // IID7709 - "__ xorl(r17, 1);", // IID7710 - "__ xorl(r17, 16);", // IID7711 - "__ xorl(r17, 256);", // IID7712 - "__ xorl(r17, 4096);", // IID7713 - "__ xorl(r17, 65536);", // IID7714 - "__ xorl(r17, 1048576);", // IID7715 - "__ xorl(r17, 16777216);", // IID7716 - "__ xorl(r17, 268435456);", // IID7717 - "__ xorl(r18, 1);", // IID7718 - "__ xorl(r18, 16);", // IID7719 - "__ xorl(r18, 256);", // IID7720 - "__ xorl(r18, 4096);", // IID7721 - "__ xorl(r18, 65536);", // IID7722 - "__ xorl(r18, 1048576);", // IID7723 - "__ xorl(r18, 16777216);", // IID7724 - "__ xorl(r18, 268435456);", // IID7725 - "__ xorl(r19, 1);", // IID7726 - "__ xorl(r19, 16);", // IID7727 - "__ xorl(r19, 256);", // IID7728 - "__ xorl(r19, 4096);", // IID7729 - "__ xorl(r19, 65536);", // IID7730 - "__ xorl(r19, 1048576);", // IID7731 - "__ xorl(r19, 16777216);", // IID7732 - "__ xorl(r19, 268435456);", // IID7733 - "__ xorl(r20, 1);", // IID7734 - "__ xorl(r20, 16);", // IID7735 - "__ xorl(r20, 256);", // IID7736 - "__ xorl(r20, 4096);", // IID7737 - "__ xorl(r20, 65536);", // IID7738 - "__ xorl(r20, 1048576);", // IID7739 - "__ xorl(r20, 16777216);", // IID7740 - "__ xorl(r20, 268435456);", // IID7741 - "__ xorl(r21, 1);", // IID7742 - "__ xorl(r21, 16);", // IID7743 - "__ xorl(r21, 256);", // IID7744 - "__ xorl(r21, 4096);", // IID7745 - "__ xorl(r21, 65536);", // IID7746 - "__ xorl(r21, 1048576);", // IID7747 - "__ xorl(r21, 16777216);", // IID7748 - "__ xorl(r21, 268435456);", // IID7749 - "__ xorl(r22, 1);", // IID7750 - "__ xorl(r22, 16);", // IID7751 - "__ xorl(r22, 256);", // IID7752 - "__ xorl(r22, 4096);", // IID7753 - "__ xorl(r22, 65536);", // IID7754 - "__ xorl(r22, 1048576);", // IID7755 - "__ xorl(r22, 16777216);", // IID7756 - "__ xorl(r22, 268435456);", // IID7757 - "__ xorl(r23, 1);", // IID7758 - "__ xorl(r23, 16);", // IID7759 - "__ xorl(r23, 256);", // IID7760 - "__ xorl(r23, 4096);", // IID7761 - "__ xorl(r23, 65536);", // IID7762 - "__ xorl(r23, 1048576);", // IID7763 - "__ xorl(r23, 16777216);", // IID7764 - "__ xorl(r23, 268435456);", // IID7765 - "__ xorl(r24, 1);", // IID7766 - "__ xorl(r24, 16);", // IID7767 - "__ xorl(r24, 256);", // IID7768 - "__ xorl(r24, 4096);", // IID7769 - "__ xorl(r24, 65536);", // IID7770 - "__ xorl(r24, 1048576);", // IID7771 - "__ xorl(r24, 16777216);", // IID7772 - "__ xorl(r24, 268435456);", // IID7773 - "__ xorl(r25, 1);", // IID7774 - "__ xorl(r25, 16);", // IID7775 - "__ xorl(r25, 256);", // IID7776 - "__ xorl(r25, 4096);", // IID7777 - "__ xorl(r25, 65536);", // IID7778 - "__ xorl(r25, 1048576);", // IID7779 - "__ xorl(r25, 16777216);", // IID7780 - "__ xorl(r25, 268435456);", // IID7781 - "__ xorl(r26, 1);", // IID7782 - "__ xorl(r26, 16);", // IID7783 - "__ xorl(r26, 256);", // IID7784 - "__ xorl(r26, 4096);", // IID7785 - "__ xorl(r26, 65536);", // IID7786 - "__ xorl(r26, 1048576);", // IID7787 - "__ xorl(r26, 16777216);", // IID7788 - "__ xorl(r26, 268435456);", // IID7789 - "__ xorl(r27, 1);", // IID7790 - "__ xorl(r27, 16);", // IID7791 - "__ xorl(r27, 256);", // IID7792 - "__ xorl(r27, 4096);", // IID7793 - "__ xorl(r27, 65536);", // IID7794 - "__ xorl(r27, 1048576);", // IID7795 - "__ xorl(r27, 16777216);", // IID7796 - "__ xorl(r27, 268435456);", // IID7797 - "__ xorl(r28, 1);", // IID7798 - "__ xorl(r28, 16);", // IID7799 - "__ xorl(r28, 256);", // IID7800 - "__ xorl(r28, 4096);", // IID7801 - "__ xorl(r28, 65536);", // IID7802 - "__ xorl(r28, 1048576);", // IID7803 - "__ xorl(r28, 16777216);", // IID7804 - "__ xorl(r28, 268435456);", // IID7805 - "__ xorl(r29, 1);", // IID7806 - "__ xorl(r29, 16);", // IID7807 - "__ xorl(r29, 256);", // IID7808 - "__ xorl(r29, 4096);", // IID7809 - "__ xorl(r29, 65536);", // IID7810 - "__ xorl(r29, 1048576);", // IID7811 - "__ xorl(r29, 16777216);", // IID7812 - "__ xorl(r29, 268435456);", // IID7813 - "__ xorl(r30, 1);", // IID7814 - "__ xorl(r30, 16);", // IID7815 - "__ xorl(r30, 256);", // IID7816 - "__ xorl(r30, 4096);", // IID7817 - "__ xorl(r30, 65536);", // IID7818 - "__ xorl(r30, 1048576);", // IID7819 - "__ xorl(r30, 16777216);", // IID7820 - "__ xorl(r30, 268435456);", // IID7821 - "__ xorl(r31, 1);", // IID7822 - "__ xorl(r31, 16);", // IID7823 - "__ xorl(r31, 256);", // IID7824 - "__ xorl(r31, 4096);", // IID7825 - "__ xorl(r31, 65536);", // IID7826 - "__ xorl(r31, 1048576);", // IID7827 - "__ xorl(r31, 16777216);", // IID7828 - "__ xorl(r31, 268435456);", // IID7829 -#endif // _LP64 - "__ movl(rcx, 1);", // IID7830 - "__ movl(rcx, 16);", // IID7831 - "__ movl(rcx, 256);", // IID7832 - "__ movl(rcx, 4096);", // IID7833 - "__ movl(rcx, 65536);", // IID7834 - "__ movl(rcx, 1048576);", // IID7835 - "__ movl(rcx, 16777216);", // IID7836 - "__ movl(rcx, 268435456);", // IID7837 - "__ movl(rdx, 1);", // IID7838 - "__ movl(rdx, 16);", // IID7839 - "__ movl(rdx, 256);", // IID7840 - "__ movl(rdx, 4096);", // IID7841 - "__ movl(rdx, 65536);", // IID7842 - "__ movl(rdx, 1048576);", // IID7843 - "__ movl(rdx, 16777216);", // IID7844 - "__ movl(rdx, 268435456);", // IID7845 - "__ movl(rbx, 1);", // IID7846 - "__ movl(rbx, 16);", // IID7847 - "__ movl(rbx, 256);", // IID7848 - "__ movl(rbx, 4096);", // IID7849 - "__ movl(rbx, 65536);", // IID7850 - "__ movl(rbx, 1048576);", // IID7851 - "__ movl(rbx, 16777216);", // IID7852 - "__ movl(rbx, 268435456);", // IID7853 -#ifdef _LP64 - "__ movl(r8, 1);", // IID7854 - "__ movl(r8, 16);", // IID7855 - "__ movl(r8, 256);", // IID7856 - "__ movl(r8, 4096);", // IID7857 - "__ movl(r8, 65536);", // IID7858 - "__ movl(r8, 1048576);", // IID7859 - "__ movl(r8, 16777216);", // IID7860 - "__ movl(r8, 268435456);", // IID7861 - "__ movl(r9, 1);", // IID7862 - "__ movl(r9, 16);", // IID7863 - "__ movl(r9, 256);", // IID7864 - "__ movl(r9, 4096);", // IID7865 - "__ movl(r9, 65536);", // IID7866 - "__ movl(r9, 1048576);", // IID7867 - "__ movl(r9, 16777216);", // IID7868 - "__ movl(r9, 268435456);", // IID7869 - "__ movl(r10, 1);", // IID7870 - "__ movl(r10, 16);", // IID7871 - "__ movl(r10, 256);", // IID7872 - "__ movl(r10, 4096);", // IID7873 - "__ movl(r10, 65536);", // IID7874 - "__ movl(r10, 1048576);", // IID7875 - "__ movl(r10, 16777216);", // IID7876 - "__ movl(r10, 268435456);", // IID7877 - "__ movl(r11, 1);", // IID7878 - "__ movl(r11, 16);", // IID7879 - "__ movl(r11, 256);", // IID7880 - "__ movl(r11, 4096);", // IID7881 - "__ movl(r11, 65536);", // IID7882 - "__ movl(r11, 1048576);", // IID7883 - "__ movl(r11, 16777216);", // IID7884 - "__ movl(r11, 268435456);", // IID7885 - "__ movl(r12, 1);", // IID7886 - "__ movl(r12, 16);", // IID7887 - "__ movl(r12, 256);", // IID7888 - "__ movl(r12, 4096);", // IID7889 - "__ movl(r12, 65536);", // IID7890 - "__ movl(r12, 1048576);", // IID7891 - "__ movl(r12, 16777216);", // IID7892 - "__ movl(r12, 268435456);", // IID7893 - "__ movl(r13, 1);", // IID7894 - "__ movl(r13, 16);", // IID7895 - "__ movl(r13, 256);", // IID7896 - "__ movl(r13, 4096);", // IID7897 - "__ movl(r13, 65536);", // IID7898 - "__ movl(r13, 1048576);", // IID7899 - "__ movl(r13, 16777216);", // IID7900 - "__ movl(r13, 268435456);", // IID7901 - "__ movl(r14, 1);", // IID7902 - "__ movl(r14, 16);", // IID7903 - "__ movl(r14, 256);", // IID7904 - "__ movl(r14, 4096);", // IID7905 - "__ movl(r14, 65536);", // IID7906 - "__ movl(r14, 1048576);", // IID7907 - "__ movl(r14, 16777216);", // IID7908 - "__ movl(r14, 268435456);", // IID7909 - "__ movl(r15, 1);", // IID7910 - "__ movl(r15, 16);", // IID7911 - "__ movl(r15, 256);", // IID7912 - "__ movl(r15, 4096);", // IID7913 - "__ movl(r15, 65536);", // IID7914 - "__ movl(r15, 1048576);", // IID7915 - "__ movl(r15, 16777216);", // IID7916 - "__ movl(r15, 268435456);", // IID7917 - "__ movl(r16, 1);", // IID7918 - "__ movl(r16, 16);", // IID7919 - "__ movl(r16, 256);", // IID7920 - "__ movl(r16, 4096);", // IID7921 - "__ movl(r16, 65536);", // IID7922 - "__ movl(r16, 1048576);", // IID7923 - "__ movl(r16, 16777216);", // IID7924 - "__ movl(r16, 268435456);", // IID7925 - "__ movl(r17, 1);", // IID7926 - "__ movl(r17, 16);", // IID7927 - "__ movl(r17, 256);", // IID7928 - "__ movl(r17, 4096);", // IID7929 - "__ movl(r17, 65536);", // IID7930 - "__ movl(r17, 1048576);", // IID7931 - "__ movl(r17, 16777216);", // IID7932 - "__ movl(r17, 268435456);", // IID7933 - "__ movl(r18, 1);", // IID7934 - "__ movl(r18, 16);", // IID7935 - "__ movl(r18, 256);", // IID7936 - "__ movl(r18, 4096);", // IID7937 - "__ movl(r18, 65536);", // IID7938 - "__ movl(r18, 1048576);", // IID7939 - "__ movl(r18, 16777216);", // IID7940 - "__ movl(r18, 268435456);", // IID7941 - "__ movl(r19, 1);", // IID7942 - "__ movl(r19, 16);", // IID7943 - "__ movl(r19, 256);", // IID7944 - "__ movl(r19, 4096);", // IID7945 - "__ movl(r19, 65536);", // IID7946 - "__ movl(r19, 1048576);", // IID7947 - "__ movl(r19, 16777216);", // IID7948 - "__ movl(r19, 268435456);", // IID7949 - "__ movl(r20, 1);", // IID7950 - "__ movl(r20, 16);", // IID7951 - "__ movl(r20, 256);", // IID7952 - "__ movl(r20, 4096);", // IID7953 - "__ movl(r20, 65536);", // IID7954 - "__ movl(r20, 1048576);", // IID7955 - "__ movl(r20, 16777216);", // IID7956 - "__ movl(r20, 268435456);", // IID7957 - "__ movl(r21, 1);", // IID7958 - "__ movl(r21, 16);", // IID7959 - "__ movl(r21, 256);", // IID7960 - "__ movl(r21, 4096);", // IID7961 - "__ movl(r21, 65536);", // IID7962 - "__ movl(r21, 1048576);", // IID7963 - "__ movl(r21, 16777216);", // IID7964 - "__ movl(r21, 268435456);", // IID7965 - "__ movl(r22, 1);", // IID7966 - "__ movl(r22, 16);", // IID7967 - "__ movl(r22, 256);", // IID7968 - "__ movl(r22, 4096);", // IID7969 - "__ movl(r22, 65536);", // IID7970 - "__ movl(r22, 1048576);", // IID7971 - "__ movl(r22, 16777216);", // IID7972 - "__ movl(r22, 268435456);", // IID7973 - "__ movl(r23, 1);", // IID7974 - "__ movl(r23, 16);", // IID7975 - "__ movl(r23, 256);", // IID7976 - "__ movl(r23, 4096);", // IID7977 - "__ movl(r23, 65536);", // IID7978 - "__ movl(r23, 1048576);", // IID7979 - "__ movl(r23, 16777216);", // IID7980 - "__ movl(r23, 268435456);", // IID7981 - "__ movl(r24, 1);", // IID7982 - "__ movl(r24, 16);", // IID7983 - "__ movl(r24, 256);", // IID7984 - "__ movl(r24, 4096);", // IID7985 - "__ movl(r24, 65536);", // IID7986 - "__ movl(r24, 1048576);", // IID7987 - "__ movl(r24, 16777216);", // IID7988 - "__ movl(r24, 268435456);", // IID7989 - "__ movl(r25, 1);", // IID7990 - "__ movl(r25, 16);", // IID7991 - "__ movl(r25, 256);", // IID7992 - "__ movl(r25, 4096);", // IID7993 - "__ movl(r25, 65536);", // IID7994 - "__ movl(r25, 1048576);", // IID7995 - "__ movl(r25, 16777216);", // IID7996 - "__ movl(r25, 268435456);", // IID7997 - "__ movl(r26, 1);", // IID7998 - "__ movl(r26, 16);", // IID7999 - "__ movl(r26, 256);", // IID8000 - "__ movl(r26, 4096);", // IID8001 - "__ movl(r26, 65536);", // IID8002 - "__ movl(r26, 1048576);", // IID8003 - "__ movl(r26, 16777216);", // IID8004 - "__ movl(r26, 268435456);", // IID8005 - "__ movl(r27, 1);", // IID8006 - "__ movl(r27, 16);", // IID8007 - "__ movl(r27, 256);", // IID8008 - "__ movl(r27, 4096);", // IID8009 - "__ movl(r27, 65536);", // IID8010 - "__ movl(r27, 1048576);", // IID8011 - "__ movl(r27, 16777216);", // IID8012 - "__ movl(r27, 268435456);", // IID8013 - "__ movl(r28, 1);", // IID8014 - "__ movl(r28, 16);", // IID8015 - "__ movl(r28, 256);", // IID8016 - "__ movl(r28, 4096);", // IID8017 - "__ movl(r28, 65536);", // IID8018 - "__ movl(r28, 1048576);", // IID8019 - "__ movl(r28, 16777216);", // IID8020 - "__ movl(r28, 268435456);", // IID8021 - "__ movl(r29, 1);", // IID8022 - "__ movl(r29, 16);", // IID8023 - "__ movl(r29, 256);", // IID8024 - "__ movl(r29, 4096);", // IID8025 - "__ movl(r29, 65536);", // IID8026 - "__ movl(r29, 1048576);", // IID8027 - "__ movl(r29, 16777216);", // IID8028 - "__ movl(r29, 268435456);", // IID8029 - "__ movl(r30, 1);", // IID8030 - "__ movl(r30, 16);", // IID8031 - "__ movl(r30, 256);", // IID8032 - "__ movl(r30, 4096);", // IID8033 - "__ movl(r30, 65536);", // IID8034 - "__ movl(r30, 1048576);", // IID8035 - "__ movl(r30, 16777216);", // IID8036 - "__ movl(r30, 268435456);", // IID8037 - "__ movl(r31, 1);", // IID8038 - "__ movl(r31, 16);", // IID8039 - "__ movl(r31, 256);", // IID8040 - "__ movl(r31, 4096);", // IID8041 - "__ movl(r31, 65536);", // IID8042 - "__ movl(r31, 1048576);", // IID8043 - "__ movl(r31, 16777216);", // IID8044 - "__ movl(r31, 268435456);", // IID8045 -#endif // _LP64 - "__ testb(rcx, 1);", // IID8046 - "__ testb(rcx, 4);", // IID8047 - "__ testb(rcx, 16);", // IID8048 - "__ testb(rcx, 64);", // IID8049 - "__ testb(rdx, 1);", // IID8050 - "__ testb(rdx, 4);", // IID8051 - "__ testb(rdx, 16);", // IID8052 - "__ testb(rdx, 64);", // IID8053 - "__ testb(rbx, 1);", // IID8054 - "__ testb(rbx, 4);", // IID8055 - "__ testb(rbx, 16);", // IID8056 - "__ testb(rbx, 64);", // IID8057 -#ifdef _LP64 - "__ testb(r8, 1);", // IID8058 - "__ testb(r8, 4);", // IID8059 - "__ testb(r8, 16);", // IID8060 - "__ testb(r8, 64);", // IID8061 - "__ testb(r9, 1);", // IID8062 - "__ testb(r9, 4);", // IID8063 - "__ testb(r9, 16);", // IID8064 - "__ testb(r9, 64);", // IID8065 - "__ testb(r10, 1);", // IID8066 - "__ testb(r10, 4);", // IID8067 - "__ testb(r10, 16);", // IID8068 - "__ testb(r10, 64);", // IID8069 - "__ testb(r11, 1);", // IID8070 - "__ testb(r11, 4);", // IID8071 - "__ testb(r11, 16);", // IID8072 - "__ testb(r11, 64);", // IID8073 - "__ testb(r12, 1);", // IID8074 - "__ testb(r12, 4);", // IID8075 - "__ testb(r12, 16);", // IID8076 - "__ testb(r12, 64);", // IID8077 - "__ testb(r13, 1);", // IID8078 - "__ testb(r13, 4);", // IID8079 - "__ testb(r13, 16);", // IID8080 - "__ testb(r13, 64);", // IID8081 - "__ testb(r14, 1);", // IID8082 - "__ testb(r14, 4);", // IID8083 - "__ testb(r14, 16);", // IID8084 - "__ testb(r14, 64);", // IID8085 - "__ testb(r15, 1);", // IID8086 - "__ testb(r15, 4);", // IID8087 - "__ testb(r15, 16);", // IID8088 - "__ testb(r15, 64);", // IID8089 - "__ testb(r16, 1);", // IID8090 - "__ testb(r16, 4);", // IID8091 - "__ testb(r16, 16);", // IID8092 - "__ testb(r16, 64);", // IID8093 - "__ testb(r17, 1);", // IID8094 - "__ testb(r17, 4);", // IID8095 - "__ testb(r17, 16);", // IID8096 - "__ testb(r17, 64);", // IID8097 - "__ testb(r18, 1);", // IID8098 - "__ testb(r18, 4);", // IID8099 - "__ testb(r18, 16);", // IID8100 - "__ testb(r18, 64);", // IID8101 - "__ testb(r19, 1);", // IID8102 - "__ testb(r19, 4);", // IID8103 - "__ testb(r19, 16);", // IID8104 - "__ testb(r19, 64);", // IID8105 - "__ testb(r20, 1);", // IID8106 - "__ testb(r20, 4);", // IID8107 - "__ testb(r20, 16);", // IID8108 - "__ testb(r20, 64);", // IID8109 - "__ testb(r21, 1);", // IID8110 - "__ testb(r21, 4);", // IID8111 - "__ testb(r21, 16);", // IID8112 - "__ testb(r21, 64);", // IID8113 - "__ testb(r22, 1);", // IID8114 - "__ testb(r22, 4);", // IID8115 - "__ testb(r22, 16);", // IID8116 - "__ testb(r22, 64);", // IID8117 - "__ testb(r23, 1);", // IID8118 - "__ testb(r23, 4);", // IID8119 - "__ testb(r23, 16);", // IID8120 - "__ testb(r23, 64);", // IID8121 - "__ testb(r24, 1);", // IID8122 - "__ testb(r24, 4);", // IID8123 - "__ testb(r24, 16);", // IID8124 - "__ testb(r24, 64);", // IID8125 - "__ testb(r25, 1);", // IID8126 - "__ testb(r25, 4);", // IID8127 - "__ testb(r25, 16);", // IID8128 - "__ testb(r25, 64);", // IID8129 - "__ testb(r26, 1);", // IID8130 - "__ testb(r26, 4);", // IID8131 - "__ testb(r26, 16);", // IID8132 - "__ testb(r26, 64);", // IID8133 - "__ testb(r27, 1);", // IID8134 - "__ testb(r27, 4);", // IID8135 - "__ testb(r27, 16);", // IID8136 - "__ testb(r27, 64);", // IID8137 - "__ testb(r28, 1);", // IID8138 - "__ testb(r28, 4);", // IID8139 - "__ testb(r28, 16);", // IID8140 - "__ testb(r28, 64);", // IID8141 - "__ testb(r29, 1);", // IID8142 - "__ testb(r29, 4);", // IID8143 - "__ testb(r29, 16);", // IID8144 - "__ testb(r29, 64);", // IID8145 - "__ testb(r30, 1);", // IID8146 - "__ testb(r30, 4);", // IID8147 - "__ testb(r30, 16);", // IID8148 - "__ testb(r30, 64);", // IID8149 - "__ testb(r31, 1);", // IID8150 - "__ testb(r31, 4);", // IID8151 - "__ testb(r31, 16);", // IID8152 - "__ testb(r31, 64);", // IID8153 -#endif // _LP64 - "__ testl(rcx, 65536);", // IID8154 - "__ testl(rcx, 262144);", // IID8155 - "__ testl(rcx, 1048576);", // IID8156 - "__ testl(rcx, 4194304);", // IID8157 - "__ testl(rcx, 16777216);", // IID8158 - "__ testl(rcx, 67108864);", // IID8159 - "__ testl(rcx, 268435456);", // IID8160 - "__ testl(rcx, 1073741824);", // IID8161 - "__ testl(rdx, 65536);", // IID8162 - "__ testl(rdx, 262144);", // IID8163 - "__ testl(rdx, 1048576);", // IID8164 - "__ testl(rdx, 4194304);", // IID8165 - "__ testl(rdx, 16777216);", // IID8166 - "__ testl(rdx, 67108864);", // IID8167 - "__ testl(rdx, 268435456);", // IID8168 - "__ testl(rdx, 1073741824);", // IID8169 - "__ testl(rbx, 65536);", // IID8170 - "__ testl(rbx, 262144);", // IID8171 - "__ testl(rbx, 1048576);", // IID8172 - "__ testl(rbx, 4194304);", // IID8173 - "__ testl(rbx, 16777216);", // IID8174 - "__ testl(rbx, 67108864);", // IID8175 - "__ testl(rbx, 268435456);", // IID8176 - "__ testl(rbx, 1073741824);", // IID8177 -#ifdef _LP64 - "__ testl(r8, 65536);", // IID8178 - "__ testl(r8, 262144);", // IID8179 - "__ testl(r8, 1048576);", // IID8180 - "__ testl(r8, 4194304);", // IID8181 - "__ testl(r8, 16777216);", // IID8182 - "__ testl(r8, 67108864);", // IID8183 - "__ testl(r8, 268435456);", // IID8184 - "__ testl(r8, 1073741824);", // IID8185 - "__ testl(r9, 65536);", // IID8186 - "__ testl(r9, 262144);", // IID8187 - "__ testl(r9, 1048576);", // IID8188 - "__ testl(r9, 4194304);", // IID8189 - "__ testl(r9, 16777216);", // IID8190 - "__ testl(r9, 67108864);", // IID8191 - "__ testl(r9, 268435456);", // IID8192 - "__ testl(r9, 1073741824);", // IID8193 - "__ testl(r10, 65536);", // IID8194 - "__ testl(r10, 262144);", // IID8195 - "__ testl(r10, 1048576);", // IID8196 - "__ testl(r10, 4194304);", // IID8197 - "__ testl(r10, 16777216);", // IID8198 - "__ testl(r10, 67108864);", // IID8199 - "__ testl(r10, 268435456);", // IID8200 - "__ testl(r10, 1073741824);", // IID8201 - "__ testl(r11, 65536);", // IID8202 - "__ testl(r11, 262144);", // IID8203 - "__ testl(r11, 1048576);", // IID8204 - "__ testl(r11, 4194304);", // IID8205 - "__ testl(r11, 16777216);", // IID8206 - "__ testl(r11, 67108864);", // IID8207 - "__ testl(r11, 268435456);", // IID8208 - "__ testl(r11, 1073741824);", // IID8209 - "__ testl(r12, 65536);", // IID8210 - "__ testl(r12, 262144);", // IID8211 - "__ testl(r12, 1048576);", // IID8212 - "__ testl(r12, 4194304);", // IID8213 - "__ testl(r12, 16777216);", // IID8214 - "__ testl(r12, 67108864);", // IID8215 - "__ testl(r12, 268435456);", // IID8216 - "__ testl(r12, 1073741824);", // IID8217 - "__ testl(r13, 65536);", // IID8218 - "__ testl(r13, 262144);", // IID8219 - "__ testl(r13, 1048576);", // IID8220 - "__ testl(r13, 4194304);", // IID8221 - "__ testl(r13, 16777216);", // IID8222 - "__ testl(r13, 67108864);", // IID8223 - "__ testl(r13, 268435456);", // IID8224 - "__ testl(r13, 1073741824);", // IID8225 - "__ testl(r14, 65536);", // IID8226 - "__ testl(r14, 262144);", // IID8227 - "__ testl(r14, 1048576);", // IID8228 - "__ testl(r14, 4194304);", // IID8229 - "__ testl(r14, 16777216);", // IID8230 - "__ testl(r14, 67108864);", // IID8231 - "__ testl(r14, 268435456);", // IID8232 - "__ testl(r14, 1073741824);", // IID8233 - "__ testl(r15, 65536);", // IID8234 - "__ testl(r15, 262144);", // IID8235 - "__ testl(r15, 1048576);", // IID8236 - "__ testl(r15, 4194304);", // IID8237 - "__ testl(r15, 16777216);", // IID8238 - "__ testl(r15, 67108864);", // IID8239 - "__ testl(r15, 268435456);", // IID8240 - "__ testl(r15, 1073741824);", // IID8241 - "__ testl(r16, 65536);", // IID8242 - "__ testl(r16, 262144);", // IID8243 - "__ testl(r16, 1048576);", // IID8244 - "__ testl(r16, 4194304);", // IID8245 - "__ testl(r16, 16777216);", // IID8246 - "__ testl(r16, 67108864);", // IID8247 - "__ testl(r16, 268435456);", // IID8248 - "__ testl(r16, 1073741824);", // IID8249 - "__ testl(r17, 65536);", // IID8250 - "__ testl(r17, 262144);", // IID8251 - "__ testl(r17, 1048576);", // IID8252 - "__ testl(r17, 4194304);", // IID8253 - "__ testl(r17, 16777216);", // IID8254 - "__ testl(r17, 67108864);", // IID8255 - "__ testl(r17, 268435456);", // IID8256 - "__ testl(r17, 1073741824);", // IID8257 - "__ testl(r18, 65536);", // IID8258 - "__ testl(r18, 262144);", // IID8259 - "__ testl(r18, 1048576);", // IID8260 - "__ testl(r18, 4194304);", // IID8261 - "__ testl(r18, 16777216);", // IID8262 - "__ testl(r18, 67108864);", // IID8263 - "__ testl(r18, 268435456);", // IID8264 - "__ testl(r18, 1073741824);", // IID8265 - "__ testl(r19, 65536);", // IID8266 - "__ testl(r19, 262144);", // IID8267 - "__ testl(r19, 1048576);", // IID8268 - "__ testl(r19, 4194304);", // IID8269 - "__ testl(r19, 16777216);", // IID8270 - "__ testl(r19, 67108864);", // IID8271 - "__ testl(r19, 268435456);", // IID8272 - "__ testl(r19, 1073741824);", // IID8273 - "__ testl(r20, 65536);", // IID8274 - "__ testl(r20, 262144);", // IID8275 - "__ testl(r20, 1048576);", // IID8276 - "__ testl(r20, 4194304);", // IID8277 - "__ testl(r20, 16777216);", // IID8278 - "__ testl(r20, 67108864);", // IID8279 - "__ testl(r20, 268435456);", // IID8280 - "__ testl(r20, 1073741824);", // IID8281 - "__ testl(r21, 65536);", // IID8282 - "__ testl(r21, 262144);", // IID8283 - "__ testl(r21, 1048576);", // IID8284 - "__ testl(r21, 4194304);", // IID8285 - "__ testl(r21, 16777216);", // IID8286 - "__ testl(r21, 67108864);", // IID8287 - "__ testl(r21, 268435456);", // IID8288 - "__ testl(r21, 1073741824);", // IID8289 - "__ testl(r22, 65536);", // IID8290 - "__ testl(r22, 262144);", // IID8291 - "__ testl(r22, 1048576);", // IID8292 - "__ testl(r22, 4194304);", // IID8293 - "__ testl(r22, 16777216);", // IID8294 - "__ testl(r22, 67108864);", // IID8295 - "__ testl(r22, 268435456);", // IID8296 - "__ testl(r22, 1073741824);", // IID8297 - "__ testl(r23, 65536);", // IID8298 - "__ testl(r23, 262144);", // IID8299 - "__ testl(r23, 1048576);", // IID8300 - "__ testl(r23, 4194304);", // IID8301 - "__ testl(r23, 16777216);", // IID8302 - "__ testl(r23, 67108864);", // IID8303 - "__ testl(r23, 268435456);", // IID8304 - "__ testl(r23, 1073741824);", // IID8305 - "__ testl(r24, 65536);", // IID8306 - "__ testl(r24, 262144);", // IID8307 - "__ testl(r24, 1048576);", // IID8308 - "__ testl(r24, 4194304);", // IID8309 - "__ testl(r24, 16777216);", // IID8310 - "__ testl(r24, 67108864);", // IID8311 - "__ testl(r24, 268435456);", // IID8312 - "__ testl(r24, 1073741824);", // IID8313 - "__ testl(r25, 65536);", // IID8314 - "__ testl(r25, 262144);", // IID8315 - "__ testl(r25, 1048576);", // IID8316 - "__ testl(r25, 4194304);", // IID8317 - "__ testl(r25, 16777216);", // IID8318 - "__ testl(r25, 67108864);", // IID8319 - "__ testl(r25, 268435456);", // IID8320 - "__ testl(r25, 1073741824);", // IID8321 - "__ testl(r26, 65536);", // IID8322 - "__ testl(r26, 262144);", // IID8323 - "__ testl(r26, 1048576);", // IID8324 - "__ testl(r26, 4194304);", // IID8325 - "__ testl(r26, 16777216);", // IID8326 - "__ testl(r26, 67108864);", // IID8327 - "__ testl(r26, 268435456);", // IID8328 - "__ testl(r26, 1073741824);", // IID8329 - "__ testl(r27, 65536);", // IID8330 - "__ testl(r27, 262144);", // IID8331 - "__ testl(r27, 1048576);", // IID8332 - "__ testl(r27, 4194304);", // IID8333 - "__ testl(r27, 16777216);", // IID8334 - "__ testl(r27, 67108864);", // IID8335 - "__ testl(r27, 268435456);", // IID8336 - "__ testl(r27, 1073741824);", // IID8337 - "__ testl(r28, 65536);", // IID8338 - "__ testl(r28, 262144);", // IID8339 - "__ testl(r28, 1048576);", // IID8340 - "__ testl(r28, 4194304);", // IID8341 - "__ testl(r28, 16777216);", // IID8342 - "__ testl(r28, 67108864);", // IID8343 - "__ testl(r28, 268435456);", // IID8344 - "__ testl(r28, 1073741824);", // IID8345 - "__ testl(r29, 65536);", // IID8346 - "__ testl(r29, 262144);", // IID8347 - "__ testl(r29, 1048576);", // IID8348 - "__ testl(r29, 4194304);", // IID8349 - "__ testl(r29, 16777216);", // IID8350 - "__ testl(r29, 67108864);", // IID8351 - "__ testl(r29, 268435456);", // IID8352 - "__ testl(r29, 1073741824);", // IID8353 - "__ testl(r30, 65536);", // IID8354 - "__ testl(r30, 262144);", // IID8355 - "__ testl(r30, 1048576);", // IID8356 - "__ testl(r30, 4194304);", // IID8357 - "__ testl(r30, 16777216);", // IID8358 - "__ testl(r30, 67108864);", // IID8359 - "__ testl(r30, 268435456);", // IID8360 - "__ testl(r30, 1073741824);", // IID8361 - "__ testl(r31, 65536);", // IID8362 - "__ testl(r31, 262144);", // IID8363 - "__ testl(r31, 1048576);", // IID8364 - "__ testl(r31, 4194304);", // IID8365 - "__ testl(r31, 16777216);", // IID8366 - "__ testl(r31, 67108864);", // IID8367 - "__ testl(r31, 268435456);", // IID8368 - "__ testl(r31, 1073741824);", // IID8369 -#endif // _LP64 - "__ subl_imm32(rcx, 65536);", // IID8370 - "__ subl_imm32(rcx, 262144);", // IID8371 - "__ subl_imm32(rcx, 1048576);", // IID8372 - "__ subl_imm32(rcx, 4194304);", // IID8373 - "__ subl_imm32(rcx, 16777216);", // IID8374 - "__ subl_imm32(rcx, 67108864);", // IID8375 - "__ subl_imm32(rcx, 268435456);", // IID8376 - "__ subl_imm32(rcx, 1073741824);", // IID8377 - "__ subl_imm32(rdx, 65536);", // IID8378 - "__ subl_imm32(rdx, 262144);", // IID8379 - "__ subl_imm32(rdx, 1048576);", // IID8380 - "__ subl_imm32(rdx, 4194304);", // IID8381 - "__ subl_imm32(rdx, 16777216);", // IID8382 - "__ subl_imm32(rdx, 67108864);", // IID8383 - "__ subl_imm32(rdx, 268435456);", // IID8384 - "__ subl_imm32(rdx, 1073741824);", // IID8385 - "__ subl_imm32(rbx, 65536);", // IID8386 - "__ subl_imm32(rbx, 262144);", // IID8387 - "__ subl_imm32(rbx, 1048576);", // IID8388 - "__ subl_imm32(rbx, 4194304);", // IID8389 - "__ subl_imm32(rbx, 16777216);", // IID8390 - "__ subl_imm32(rbx, 67108864);", // IID8391 - "__ subl_imm32(rbx, 268435456);", // IID8392 - "__ subl_imm32(rbx, 1073741824);", // IID8393 -#ifdef _LP64 - "__ subl_imm32(r8, 65536);", // IID8394 - "__ subl_imm32(r8, 262144);", // IID8395 - "__ subl_imm32(r8, 1048576);", // IID8396 - "__ subl_imm32(r8, 4194304);", // IID8397 - "__ subl_imm32(r8, 16777216);", // IID8398 - "__ subl_imm32(r8, 67108864);", // IID8399 - "__ subl_imm32(r8, 268435456);", // IID8400 - "__ subl_imm32(r8, 1073741824);", // IID8401 - "__ subl_imm32(r9, 65536);", // IID8402 - "__ subl_imm32(r9, 262144);", // IID8403 - "__ subl_imm32(r9, 1048576);", // IID8404 - "__ subl_imm32(r9, 4194304);", // IID8405 - "__ subl_imm32(r9, 16777216);", // IID8406 - "__ subl_imm32(r9, 67108864);", // IID8407 - "__ subl_imm32(r9, 268435456);", // IID8408 - "__ subl_imm32(r9, 1073741824);", // IID8409 - "__ subl_imm32(r10, 65536);", // IID8410 - "__ subl_imm32(r10, 262144);", // IID8411 - "__ subl_imm32(r10, 1048576);", // IID8412 - "__ subl_imm32(r10, 4194304);", // IID8413 - "__ subl_imm32(r10, 16777216);", // IID8414 - "__ subl_imm32(r10, 67108864);", // IID8415 - "__ subl_imm32(r10, 268435456);", // IID8416 - "__ subl_imm32(r10, 1073741824);", // IID8417 - "__ subl_imm32(r11, 65536);", // IID8418 - "__ subl_imm32(r11, 262144);", // IID8419 - "__ subl_imm32(r11, 1048576);", // IID8420 - "__ subl_imm32(r11, 4194304);", // IID8421 - "__ subl_imm32(r11, 16777216);", // IID8422 - "__ subl_imm32(r11, 67108864);", // IID8423 - "__ subl_imm32(r11, 268435456);", // IID8424 - "__ subl_imm32(r11, 1073741824);", // IID8425 - "__ subl_imm32(r12, 65536);", // IID8426 - "__ subl_imm32(r12, 262144);", // IID8427 - "__ subl_imm32(r12, 1048576);", // IID8428 - "__ subl_imm32(r12, 4194304);", // IID8429 - "__ subl_imm32(r12, 16777216);", // IID8430 - "__ subl_imm32(r12, 67108864);", // IID8431 - "__ subl_imm32(r12, 268435456);", // IID8432 - "__ subl_imm32(r12, 1073741824);", // IID8433 - "__ subl_imm32(r13, 65536);", // IID8434 - "__ subl_imm32(r13, 262144);", // IID8435 - "__ subl_imm32(r13, 1048576);", // IID8436 - "__ subl_imm32(r13, 4194304);", // IID8437 - "__ subl_imm32(r13, 16777216);", // IID8438 - "__ subl_imm32(r13, 67108864);", // IID8439 - "__ subl_imm32(r13, 268435456);", // IID8440 - "__ subl_imm32(r13, 1073741824);", // IID8441 - "__ subl_imm32(r14, 65536);", // IID8442 - "__ subl_imm32(r14, 262144);", // IID8443 - "__ subl_imm32(r14, 1048576);", // IID8444 - "__ subl_imm32(r14, 4194304);", // IID8445 - "__ subl_imm32(r14, 16777216);", // IID8446 - "__ subl_imm32(r14, 67108864);", // IID8447 - "__ subl_imm32(r14, 268435456);", // IID8448 - "__ subl_imm32(r14, 1073741824);", // IID8449 - "__ subl_imm32(r15, 65536);", // IID8450 - "__ subl_imm32(r15, 262144);", // IID8451 - "__ subl_imm32(r15, 1048576);", // IID8452 - "__ subl_imm32(r15, 4194304);", // IID8453 - "__ subl_imm32(r15, 16777216);", // IID8454 - "__ subl_imm32(r15, 67108864);", // IID8455 - "__ subl_imm32(r15, 268435456);", // IID8456 - "__ subl_imm32(r15, 1073741824);", // IID8457 - "__ subl_imm32(r16, 65536);", // IID8458 - "__ subl_imm32(r16, 262144);", // IID8459 - "__ subl_imm32(r16, 1048576);", // IID8460 - "__ subl_imm32(r16, 4194304);", // IID8461 - "__ subl_imm32(r16, 16777216);", // IID8462 - "__ subl_imm32(r16, 67108864);", // IID8463 - "__ subl_imm32(r16, 268435456);", // IID8464 - "__ subl_imm32(r16, 1073741824);", // IID8465 - "__ subl_imm32(r17, 65536);", // IID8466 - "__ subl_imm32(r17, 262144);", // IID8467 - "__ subl_imm32(r17, 1048576);", // IID8468 - "__ subl_imm32(r17, 4194304);", // IID8469 - "__ subl_imm32(r17, 16777216);", // IID8470 - "__ subl_imm32(r17, 67108864);", // IID8471 - "__ subl_imm32(r17, 268435456);", // IID8472 - "__ subl_imm32(r17, 1073741824);", // IID8473 - "__ subl_imm32(r18, 65536);", // IID8474 - "__ subl_imm32(r18, 262144);", // IID8475 - "__ subl_imm32(r18, 1048576);", // IID8476 - "__ subl_imm32(r18, 4194304);", // IID8477 - "__ subl_imm32(r18, 16777216);", // IID8478 - "__ subl_imm32(r18, 67108864);", // IID8479 - "__ subl_imm32(r18, 268435456);", // IID8480 - "__ subl_imm32(r18, 1073741824);", // IID8481 - "__ subl_imm32(r19, 65536);", // IID8482 - "__ subl_imm32(r19, 262144);", // IID8483 - "__ subl_imm32(r19, 1048576);", // IID8484 - "__ subl_imm32(r19, 4194304);", // IID8485 - "__ subl_imm32(r19, 16777216);", // IID8486 - "__ subl_imm32(r19, 67108864);", // IID8487 - "__ subl_imm32(r19, 268435456);", // IID8488 - "__ subl_imm32(r19, 1073741824);", // IID8489 - "__ subl_imm32(r20, 65536);", // IID8490 - "__ subl_imm32(r20, 262144);", // IID8491 - "__ subl_imm32(r20, 1048576);", // IID8492 - "__ subl_imm32(r20, 4194304);", // IID8493 - "__ subl_imm32(r20, 16777216);", // IID8494 - "__ subl_imm32(r20, 67108864);", // IID8495 - "__ subl_imm32(r20, 268435456);", // IID8496 - "__ subl_imm32(r20, 1073741824);", // IID8497 - "__ subl_imm32(r21, 65536);", // IID8498 - "__ subl_imm32(r21, 262144);", // IID8499 - "__ subl_imm32(r21, 1048576);", // IID8500 - "__ subl_imm32(r21, 4194304);", // IID8501 - "__ subl_imm32(r21, 16777216);", // IID8502 - "__ subl_imm32(r21, 67108864);", // IID8503 - "__ subl_imm32(r21, 268435456);", // IID8504 - "__ subl_imm32(r21, 1073741824);", // IID8505 - "__ subl_imm32(r22, 65536);", // IID8506 - "__ subl_imm32(r22, 262144);", // IID8507 - "__ subl_imm32(r22, 1048576);", // IID8508 - "__ subl_imm32(r22, 4194304);", // IID8509 - "__ subl_imm32(r22, 16777216);", // IID8510 - "__ subl_imm32(r22, 67108864);", // IID8511 - "__ subl_imm32(r22, 268435456);", // IID8512 - "__ subl_imm32(r22, 1073741824);", // IID8513 - "__ subl_imm32(r23, 65536);", // IID8514 - "__ subl_imm32(r23, 262144);", // IID8515 - "__ subl_imm32(r23, 1048576);", // IID8516 - "__ subl_imm32(r23, 4194304);", // IID8517 - "__ subl_imm32(r23, 16777216);", // IID8518 - "__ subl_imm32(r23, 67108864);", // IID8519 - "__ subl_imm32(r23, 268435456);", // IID8520 - "__ subl_imm32(r23, 1073741824);", // IID8521 - "__ subl_imm32(r24, 65536);", // IID8522 - "__ subl_imm32(r24, 262144);", // IID8523 - "__ subl_imm32(r24, 1048576);", // IID8524 - "__ subl_imm32(r24, 4194304);", // IID8525 - "__ subl_imm32(r24, 16777216);", // IID8526 - "__ subl_imm32(r24, 67108864);", // IID8527 - "__ subl_imm32(r24, 268435456);", // IID8528 - "__ subl_imm32(r24, 1073741824);", // IID8529 - "__ subl_imm32(r25, 65536);", // IID8530 - "__ subl_imm32(r25, 262144);", // IID8531 - "__ subl_imm32(r25, 1048576);", // IID8532 - "__ subl_imm32(r25, 4194304);", // IID8533 - "__ subl_imm32(r25, 16777216);", // IID8534 - "__ subl_imm32(r25, 67108864);", // IID8535 - "__ subl_imm32(r25, 268435456);", // IID8536 - "__ subl_imm32(r25, 1073741824);", // IID8537 - "__ subl_imm32(r26, 65536);", // IID8538 - "__ subl_imm32(r26, 262144);", // IID8539 - "__ subl_imm32(r26, 1048576);", // IID8540 - "__ subl_imm32(r26, 4194304);", // IID8541 - "__ subl_imm32(r26, 16777216);", // IID8542 - "__ subl_imm32(r26, 67108864);", // IID8543 - "__ subl_imm32(r26, 268435456);", // IID8544 - "__ subl_imm32(r26, 1073741824);", // IID8545 - "__ subl_imm32(r27, 65536);", // IID8546 - "__ subl_imm32(r27, 262144);", // IID8547 - "__ subl_imm32(r27, 1048576);", // IID8548 - "__ subl_imm32(r27, 4194304);", // IID8549 - "__ subl_imm32(r27, 16777216);", // IID8550 - "__ subl_imm32(r27, 67108864);", // IID8551 - "__ subl_imm32(r27, 268435456);", // IID8552 - "__ subl_imm32(r27, 1073741824);", // IID8553 - "__ subl_imm32(r28, 65536);", // IID8554 - "__ subl_imm32(r28, 262144);", // IID8555 - "__ subl_imm32(r28, 1048576);", // IID8556 - "__ subl_imm32(r28, 4194304);", // IID8557 - "__ subl_imm32(r28, 16777216);", // IID8558 - "__ subl_imm32(r28, 67108864);", // IID8559 - "__ subl_imm32(r28, 268435456);", // IID8560 - "__ subl_imm32(r28, 1073741824);", // IID8561 - "__ subl_imm32(r29, 65536);", // IID8562 - "__ subl_imm32(r29, 262144);", // IID8563 - "__ subl_imm32(r29, 1048576);", // IID8564 - "__ subl_imm32(r29, 4194304);", // IID8565 - "__ subl_imm32(r29, 16777216);", // IID8566 - "__ subl_imm32(r29, 67108864);", // IID8567 - "__ subl_imm32(r29, 268435456);", // IID8568 - "__ subl_imm32(r29, 1073741824);", // IID8569 - "__ subl_imm32(r30, 65536);", // IID8570 - "__ subl_imm32(r30, 262144);", // IID8571 - "__ subl_imm32(r30, 1048576);", // IID8572 - "__ subl_imm32(r30, 4194304);", // IID8573 - "__ subl_imm32(r30, 16777216);", // IID8574 - "__ subl_imm32(r30, 67108864);", // IID8575 - "__ subl_imm32(r30, 268435456);", // IID8576 - "__ subl_imm32(r30, 1073741824);", // IID8577 - "__ subl_imm32(r31, 65536);", // IID8578 - "__ subl_imm32(r31, 262144);", // IID8579 - "__ subl_imm32(r31, 1048576);", // IID8580 - "__ subl_imm32(r31, 4194304);", // IID8581 - "__ subl_imm32(r31, 16777216);", // IID8582 - "__ subl_imm32(r31, 67108864);", // IID8583 - "__ subl_imm32(r31, 268435456);", // IID8584 - "__ subl_imm32(r31, 1073741824);", // IID8585 -#endif // _LP64 - "__ cmovl(Assembler::Condition::overflow, rcx, Address(rdx, rbx, (Address::ScaleFactor)0, -0x14bc2866));", // IID8586 -#ifdef _LP64 - "__ cmovl(Assembler::Condition::overflow, rdx, Address(rbx, -0x4de64e75));", // IID8587 - "__ cmovl(Assembler::Condition::overflow, rbx, Address(r8, r9, (Address::ScaleFactor)1, -0x534822fe));", // IID8588 - "__ cmovl(Assembler::Condition::overflow, r8, Address(r9, r10, (Address::ScaleFactor)3, -0x6fb9ace2));", // IID8589 - "__ cmovl(Assembler::Condition::overflow, r9, Address(r10, r11, (Address::ScaleFactor)1, +0x69903526));", // IID8590 - "__ cmovl(Assembler::Condition::overflow, r10, Address(r11, r12, (Address::ScaleFactor)0, -0x79430fd5));", // IID8591 - "__ cmovl(Assembler::Condition::overflow, r11, Address(r12, r13, (Address::ScaleFactor)1, +0x7e7f3fab));", // IID8592 - "__ cmovl(Assembler::Condition::overflow, r12, Address(r13, r14, (Address::ScaleFactor)1, +0x1798e627));", // IID8593 - "__ cmovl(Assembler::Condition::overflow, r13, Address(r14, r15, (Address::ScaleFactor)0, -0xed0c3c8));", // IID8594 - "__ cmovl(Assembler::Condition::overflow, r14, Address(r15, r16, (Address::ScaleFactor)2, -0x30ba4b64));", // IID8595 - "__ cmovl(Assembler::Condition::overflow, r15, Address(r16, -0x5294174));", // IID8596 - "__ cmovl(Assembler::Condition::overflow, r16, Address(r17, r18, (Address::ScaleFactor)1, +0x260a8767));", // IID8597 - "__ cmovl(Assembler::Condition::overflow, r17, Address(r18, r19, (Address::ScaleFactor)0, +0x671fd6e3));", // IID8598 - "__ cmovl(Assembler::Condition::overflow, r18, Address(r19, r20, (Address::ScaleFactor)2, +0x544db203));", // IID8599 - "__ cmovl(Assembler::Condition::overflow, r19, Address(r20, +0x6fcd061f));", // IID8600 - "__ cmovl(Assembler::Condition::overflow, r20, Address(r21, +0x4f599a1b));", // IID8601 - "__ cmovl(Assembler::Condition::overflow, r21, Address(r22, -0x66b5b5b3));", // IID8602 - "__ cmovl(Assembler::Condition::overflow, r22, Address(r23, r24, (Address::ScaleFactor)2, -0x3f387682));", // IID8603 - "__ cmovl(Assembler::Condition::overflow, r23, Address(r24, r25, (Address::ScaleFactor)1, +0x390fd238));", // IID8604 - "__ cmovl(Assembler::Condition::overflow, r24, Address(r25, +0x620cb58a));", // IID8605 - "__ cmovl(Assembler::Condition::overflow, r25, Address(r26, r27, (Address::ScaleFactor)0, -0xad6211e));", // IID8606 - "__ cmovl(Assembler::Condition::overflow, r26, Address(r27, -0x593efc61));", // IID8607 - "__ cmovl(Assembler::Condition::overflow, r27, Address(r28, r29, (Address::ScaleFactor)3, +0x46a67b59));", // IID8608 - "__ cmovl(Assembler::Condition::overflow, r28, Address(r29, r30, (Address::ScaleFactor)3, -0x63eae8d7));", // IID8609 - "__ cmovl(Assembler::Condition::overflow, r29, Address(r30, r31, (Address::ScaleFactor)1, +0x785542a1));", // IID8610 - "__ cmovl(Assembler::Condition::overflow, r30, Address(r31, rcx, (Address::ScaleFactor)0, +0x40a1974b));", // IID8611 - "__ cmovl(Assembler::Condition::overflow, r31, Address(rcx, rdx, (Address::ScaleFactor)2, -0x4046e7df));", // IID8612 -#endif // _LP64 - "__ cmovl(Assembler::Condition::noOverflow, rcx, Address(rdx, rbx, (Address::ScaleFactor)1, -0x43329a93));", // IID8613 -#ifdef _LP64 - "__ cmovl(Assembler::Condition::noOverflow, rdx, Address(rbx, +0x40abd8ef));", // IID8614 - "__ cmovl(Assembler::Condition::noOverflow, rbx, Address(r8, r9, (Address::ScaleFactor)1, -0x64df993d));", // IID8615 - "__ cmovl(Assembler::Condition::noOverflow, r8, Address(r9, -0x3752060a));", // IID8616 - "__ cmovl(Assembler::Condition::noOverflow, r9, Address(r10, r11, (Address::ScaleFactor)2, +0x6cf99c02));", // IID8617 - "__ cmovl(Assembler::Condition::noOverflow, r10, Address(r11, r12, (Address::ScaleFactor)0, -0x749254c));", // IID8618 - "__ cmovl(Assembler::Condition::noOverflow, r11, Address(r12, -0x399c0fb8));", // IID8619 - "__ cmovl(Assembler::Condition::noOverflow, r12, Address(r13, -0x2d414852));", // IID8620 - "__ cmovl(Assembler::Condition::noOverflow, r13, Address(r14, r15, (Address::ScaleFactor)0, -0x369d363e));", // IID8621 - "__ cmovl(Assembler::Condition::noOverflow, r14, Address(r15, r16, (Address::ScaleFactor)2, -0x3824f27d));", // IID8622 - "__ cmovl(Assembler::Condition::noOverflow, r15, Address(r16, r17, (Address::ScaleFactor)2, +0x26029538));", // IID8623 - "__ cmovl(Assembler::Condition::noOverflow, r16, Address(r17, r18, (Address::ScaleFactor)3, +0x22dc5ce9));", // IID8624 - "__ cmovl(Assembler::Condition::noOverflow, r17, Address(r18, r19, (Address::ScaleFactor)1, +0x2f9f1d0b));", // IID8625 - "__ cmovl(Assembler::Condition::noOverflow, r18, Address(r19, -0x60bfac36));", // IID8626 - "__ cmovl(Assembler::Condition::noOverflow, r19, Address(r20, r21, (Address::ScaleFactor)2, +0x34177b9f));", // IID8627 - "__ cmovl(Assembler::Condition::noOverflow, r20, Address(r21, r22, (Address::ScaleFactor)2, -0x79374d67));", // IID8628 - "__ cmovl(Assembler::Condition::noOverflow, r21, Address(r22, r23, (Address::ScaleFactor)0, +0x18cdea37));", // IID8629 - "__ cmovl(Assembler::Condition::noOverflow, r22, Address(r23, r24, (Address::ScaleFactor)2, -0x67839b96));", // IID8630 - "__ cmovl(Assembler::Condition::noOverflow, r23, Address(r24, r25, (Address::ScaleFactor)2, +0x26215549));", // IID8631 - "__ cmovl(Assembler::Condition::noOverflow, r24, Address(r25, r26, (Address::ScaleFactor)3, -0x6d52e828));", // IID8632 - "__ cmovl(Assembler::Condition::noOverflow, r25, Address(r26, r27, (Address::ScaleFactor)2, +0x7e2c6f79));", // IID8633 - "__ cmovl(Assembler::Condition::noOverflow, r26, Address(r27, r28, (Address::ScaleFactor)3, +0x6bbc7565));", // IID8634 - "__ cmovl(Assembler::Condition::noOverflow, r27, Address(r28, r29, (Address::ScaleFactor)3, -0x4bfa8e84));", // IID8635 - "__ cmovl(Assembler::Condition::noOverflow, r28, Address(r29, -0x2458e3e7));", // IID8636 - "__ cmovl(Assembler::Condition::noOverflow, r29, Address(r30, r31, (Address::ScaleFactor)1, -0x37a36166));", // IID8637 - "__ cmovl(Assembler::Condition::noOverflow, r30, Address(r31, rcx, (Address::ScaleFactor)3, -0x36c70b56));", // IID8638 - "__ cmovl(Assembler::Condition::noOverflow, r31, Address(rcx, +0x23c497f8));", // IID8639 -#endif // _LP64 - "__ cmovl(Assembler::Condition::below, rcx, Address(rdx, rbx, (Address::ScaleFactor)0, +0xe9f53b5));", // IID8640 -#ifdef _LP64 - "__ cmovl(Assembler::Condition::below, rdx, Address(rbx, r8, (Address::ScaleFactor)0, -0x1756f698));", // IID8641 - "__ cmovl(Assembler::Condition::below, rbx, Address(r8, +0x52c7ac7b));", // IID8642 - "__ cmovl(Assembler::Condition::below, r8, Address(r9, r10, (Address::ScaleFactor)2, +0x767ab031));", // IID8643 - "__ cmovl(Assembler::Condition::below, r9, Address(r10, -0x19fcc85e));", // IID8644 - "__ cmovl(Assembler::Condition::below, r10, Address(r11, +0xb98b8e2));", // IID8645 - "__ cmovl(Assembler::Condition::below, r11, Address(r12, r13, (Address::ScaleFactor)1, -0x55c8caae));", // IID8646 - "__ cmovl(Assembler::Condition::below, r12, Address(r13, r14, (Address::ScaleFactor)2, +0x48d592ab));", // IID8647 - "__ cmovl(Assembler::Condition::below, r13, Address(r14, r15, (Address::ScaleFactor)3, +0x5bfb68f4));", // IID8648 - "__ cmovl(Assembler::Condition::below, r14, Address(r15, r16, (Address::ScaleFactor)1, +0x3f58af9d));", // IID8649 - "__ cmovl(Assembler::Condition::below, r15, Address(r16, r17, (Address::ScaleFactor)1, +0x616778a1));", // IID8650 - "__ cmovl(Assembler::Condition::below, r16, Address(r17, r18, (Address::ScaleFactor)2, +0x34e970d0));", // IID8651 - "__ cmovl(Assembler::Condition::below, r17, Address(r18, -0x3f5ab5be));", // IID8652 - "__ cmovl(Assembler::Condition::below, r18, Address(r19, r20, (Address::ScaleFactor)3, +0x519efe4f));", // IID8653 - "__ cmovl(Assembler::Condition::below, r19, Address(r20, +0x6ff7b6e2));", // IID8654 - "__ cmovl(Assembler::Condition::below, r20, Address(r21, r22, (Address::ScaleFactor)2, +0x507df524));", // IID8655 - "__ cmovl(Assembler::Condition::below, r21, Address(r22, r23, (Address::ScaleFactor)1, -0x2a2e6b38));", // IID8656 - "__ cmovl(Assembler::Condition::below, r22, Address(r23, r24, (Address::ScaleFactor)2, -0x26066f56));", // IID8657 - "__ cmovl(Assembler::Condition::below, r23, Address(r24, r25, (Address::ScaleFactor)0, -0x2ef64a8c));", // IID8658 - "__ cmovl(Assembler::Condition::below, r24, Address(r25, r26, (Address::ScaleFactor)2, +0x5c56c4ec));", // IID8659 - "__ cmovl(Assembler::Condition::below, r25, Address(r26, +0x66f85eb3));", // IID8660 - "__ cmovl(Assembler::Condition::below, r26, Address(r27, r28, (Address::ScaleFactor)2, +0x65ecc08a));", // IID8661 - "__ cmovl(Assembler::Condition::below, r27, Address(r28, r29, (Address::ScaleFactor)3, -0x58911160));", // IID8662 - "__ cmovl(Assembler::Condition::below, r28, Address(r29, r30, (Address::ScaleFactor)1, -0x3afb0d17));", // IID8663 - "__ cmovl(Assembler::Condition::below, r29, Address(r30, r31, (Address::ScaleFactor)1, -0x51e40385));", // IID8664 - "__ cmovl(Assembler::Condition::below, r30, Address(r31, rcx, (Address::ScaleFactor)2, +0x2665a665));", // IID8665 - "__ cmovl(Assembler::Condition::below, r31, Address(rcx, rdx, (Address::ScaleFactor)0, -0x4851292c));", // IID8666 -#endif // _LP64 - "__ cmovl(Assembler::Condition::aboveEqual, rcx, Address(rdx, rbx, (Address::ScaleFactor)0, +0x6ccb2a99));", // IID8667 -#ifdef _LP64 - "__ cmovl(Assembler::Condition::aboveEqual, rdx, Address(rbx, +0xd2d844e));", // IID8668 - "__ cmovl(Assembler::Condition::aboveEqual, rbx, Address(r8, r9, (Address::ScaleFactor)0, +0x78614f4));", // IID8669 - "__ cmovl(Assembler::Condition::aboveEqual, r8, Address(r9, r10, (Address::ScaleFactor)2, +0x7f3462fa));", // IID8670 - "__ cmovl(Assembler::Condition::aboveEqual, r9, Address(r10, r11, (Address::ScaleFactor)2, +0x214b4935));", // IID8671 - "__ cmovl(Assembler::Condition::aboveEqual, r10, Address(r11, r12, (Address::ScaleFactor)2, +0x67c0dc39));", // IID8672 - "__ cmovl(Assembler::Condition::aboveEqual, r11, Address(r12, r13, (Address::ScaleFactor)1, +0x1496a4b));", // IID8673 - "__ cmovl(Assembler::Condition::aboveEqual, r12, Address(r13, r14, (Address::ScaleFactor)1, -0x5f5ee139));", // IID8674 - "__ cmovl(Assembler::Condition::aboveEqual, r13, Address(r14, -0x5bcbdeac));", // IID8675 - "__ cmovl(Assembler::Condition::aboveEqual, r14, Address(r15, r16, (Address::ScaleFactor)2, +0x23fae6f0));", // IID8676 - "__ cmovl(Assembler::Condition::aboveEqual, r15, Address(r16, r17, (Address::ScaleFactor)1, +0x4dab12d9));", // IID8677 - "__ cmovl(Assembler::Condition::aboveEqual, r16, Address(r17, r18, (Address::ScaleFactor)2, +0xf12a06a));", // IID8678 - "__ cmovl(Assembler::Condition::aboveEqual, r17, Address(r18, r19, (Address::ScaleFactor)1, -0xd651849));", // IID8679 - "__ cmovl(Assembler::Condition::aboveEqual, r18, Address(r19, r20, (Address::ScaleFactor)0, -0x1f072ceb));", // IID8680 - "__ cmovl(Assembler::Condition::aboveEqual, r19, Address(r20, +0x481d7b31));", // IID8681 - "__ cmovl(Assembler::Condition::aboveEqual, r20, Address(r21, r22, (Address::ScaleFactor)1, +0x1fcdaa2c));", // IID8682 - "__ cmovl(Assembler::Condition::aboveEqual, r21, Address(r22, -0x624eb14e));", // IID8683 - "__ cmovl(Assembler::Condition::aboveEqual, r22, Address(r23, r24, (Address::ScaleFactor)2, -0x578a088b));", // IID8684 - "__ cmovl(Assembler::Condition::aboveEqual, r23, Address(r24, -0x4d05173d));", // IID8685 - "__ cmovl(Assembler::Condition::aboveEqual, r24, Address(r25, r26, (Address::ScaleFactor)3, -0x1dd417f7));", // IID8686 - "__ cmovl(Assembler::Condition::aboveEqual, r25, Address(r26, +0x48671375));", // IID8687 - "__ cmovl(Assembler::Condition::aboveEqual, r26, Address(r27, r28, (Address::ScaleFactor)0, +0x4a50afac));", // IID8688 - "__ cmovl(Assembler::Condition::aboveEqual, r27, Address(r28, r29, (Address::ScaleFactor)2, +0x29f9624e));", // IID8689 - "__ cmovl(Assembler::Condition::aboveEqual, r28, Address(r29, r30, (Address::ScaleFactor)0, -0x31d288a6));", // IID8690 - "__ cmovl(Assembler::Condition::aboveEqual, r29, Address(r30, +0x225e822e));", // IID8691 - "__ cmovl(Assembler::Condition::aboveEqual, r30, Address(r31, rcx, (Address::ScaleFactor)2, -0x15efb994));", // IID8692 - "__ cmovl(Assembler::Condition::aboveEqual, r31, Address(rcx, rdx, (Address::ScaleFactor)0, +0x73e62e88));", // IID8693 -#endif // _LP64 - "__ cmovl(Assembler::Condition::zero, rcx, Address(rdx, rbx, (Address::ScaleFactor)0, -0x3e160577));", // IID8694 -#ifdef _LP64 - "__ cmovl(Assembler::Condition::zero, rdx, Address(rbx, r8, (Address::ScaleFactor)2, -0x1decbcfb));", // IID8695 - "__ cmovl(Assembler::Condition::zero, rbx, Address(r8, r9, (Address::ScaleFactor)2, +0x6553f9d0));", // IID8696 - "__ cmovl(Assembler::Condition::zero, r8, Address(r9, r10, (Address::ScaleFactor)0, +0x66c3596f));", // IID8697 - "__ cmovl(Assembler::Condition::zero, r9, Address(r10, r11, (Address::ScaleFactor)2, -0xdaab405));", // IID8698 - "__ cmovl(Assembler::Condition::zero, r10, Address(r11, r12, (Address::ScaleFactor)0, +0x74c4b01c));", // IID8699 - "__ cmovl(Assembler::Condition::zero, r11, Address(r12, -0x4821d0c0));", // IID8700 - "__ cmovl(Assembler::Condition::zero, r12, Address(r13, -0x5ad8bbf8));", // IID8701 - "__ cmovl(Assembler::Condition::zero, r13, Address(r14, r15, (Address::ScaleFactor)1, -0x65508547));", // IID8702 - "__ cmovl(Assembler::Condition::zero, r14, Address(r15, r16, (Address::ScaleFactor)2, -0x4c751d5a));", // IID8703 - "__ cmovl(Assembler::Condition::zero, r15, Address(r16, r17, (Address::ScaleFactor)3, -0x535d6a65));", // IID8704 - "__ cmovl(Assembler::Condition::zero, r16, Address(r17, r18, (Address::ScaleFactor)2, +0x70a76eb9));", // IID8705 - "__ cmovl(Assembler::Condition::zero, r17, Address(r18, r19, (Address::ScaleFactor)0, -0x59f3df69));", // IID8706 - "__ cmovl(Assembler::Condition::zero, r18, Address(r19, r20, (Address::ScaleFactor)1, +0x3b49ee38));", // IID8707 - "__ cmovl(Assembler::Condition::zero, r19, Address(r20, -0x26f68461));", // IID8708 - "__ cmovl(Assembler::Condition::zero, r20, Address(r21, +0x4a7b9206));", // IID8709 - "__ cmovl(Assembler::Condition::zero, r21, Address(r22, r23, (Address::ScaleFactor)2, +0x60fcb960));", // IID8710 - "__ cmovl(Assembler::Condition::zero, r22, Address(r23, r24, (Address::ScaleFactor)1, +0x63655114));", // IID8711 - "__ cmovl(Assembler::Condition::zero, r23, Address(r24, r25, (Address::ScaleFactor)0, +0x2831011c));", // IID8712 - "__ cmovl(Assembler::Condition::zero, r24, Address(r25, r26, (Address::ScaleFactor)1, +0x258a395f));", // IID8713 - "__ cmovl(Assembler::Condition::zero, r25, Address(r26, r27, (Address::ScaleFactor)3, -0x3e758efb));", // IID8714 - "__ cmovl(Assembler::Condition::zero, r26, Address(r27, +0x2406e7a0));", // IID8715 - "__ cmovl(Assembler::Condition::zero, r27, Address(r28, +0x8542946));", // IID8716 - "__ cmovl(Assembler::Condition::zero, r28, Address(r29, r30, (Address::ScaleFactor)3, +0x75785b63));", // IID8717 - "__ cmovl(Assembler::Condition::zero, r29, Address(r30, r31, (Address::ScaleFactor)2, +0xa713948));", // IID8718 - "__ cmovl(Assembler::Condition::zero, r30, Address(r31, rcx, (Address::ScaleFactor)0, -0x41e78095));", // IID8719 - "__ cmovl(Assembler::Condition::zero, r31, Address(rcx, rdx, (Address::ScaleFactor)2, -0x255b04fe));", // IID8720 -#endif // _LP64 - "__ cmovl(Assembler::Condition::notZero, rcx, Address(rdx, rbx, (Address::ScaleFactor)2, +0xcc9f76d));", // IID8721 -#ifdef _LP64 - "__ cmovl(Assembler::Condition::notZero, rdx, Address(rbx, -0x75574ff7));", // IID8722 - "__ cmovl(Assembler::Condition::notZero, rbx, Address(r8, -0x54eee7bb));", // IID8723 - "__ cmovl(Assembler::Condition::notZero, r8, Address(r9, r10, (Address::ScaleFactor)2, -0x35e41c99));", // IID8724 - "__ cmovl(Assembler::Condition::notZero, r9, Address(r10, +0x1a2de2d2));", // IID8725 - "__ cmovl(Assembler::Condition::notZero, r10, Address(r11, r12, (Address::ScaleFactor)3, +0x7f0564f2));", // IID8726 - "__ cmovl(Assembler::Condition::notZero, r11, Address(r12, r13, (Address::ScaleFactor)0, -0x6ebfb7d6));", // IID8727 - "__ cmovl(Assembler::Condition::notZero, r12, Address(r13, r14, (Address::ScaleFactor)3, -0x4500a2e7));", // IID8728 - "__ cmovl(Assembler::Condition::notZero, r13, Address(r14, +0x79260bd8));", // IID8729 - "__ cmovl(Assembler::Condition::notZero, r14, Address(r15, -0x131927da));", // IID8730 - "__ cmovl(Assembler::Condition::notZero, r15, Address(r16, r17, (Address::ScaleFactor)3, +0xa7ab2fe));", // IID8731 - "__ cmovl(Assembler::Condition::notZero, r16, Address(r17, r18, (Address::ScaleFactor)0, -0x2f393ff9));", // IID8732 - "__ cmovl(Assembler::Condition::notZero, r17, Address(r18, r19, (Address::ScaleFactor)0, -0x37adcc82));", // IID8733 - "__ cmovl(Assembler::Condition::notZero, r18, Address(r19, -0x2618f87));", // IID8734 - "__ cmovl(Assembler::Condition::notZero, r19, Address(r20, r21, (Address::ScaleFactor)0, -0x39b925ce));", // IID8735 - "__ cmovl(Assembler::Condition::notZero, r20, Address(r21, r22, (Address::ScaleFactor)3, -0x26447447));", // IID8736 - "__ cmovl(Assembler::Condition::notZero, r21, Address(r22, r23, (Address::ScaleFactor)0, -0x35205411));", // IID8737 - "__ cmovl(Assembler::Condition::notZero, r22, Address(r23, r24, (Address::ScaleFactor)0, +0x18f02066));", // IID8738 - "__ cmovl(Assembler::Condition::notZero, r23, Address(r24, r25, (Address::ScaleFactor)1, +0x4a1adfca));", // IID8739 - "__ cmovl(Assembler::Condition::notZero, r24, Address(r25, r26, (Address::ScaleFactor)3, +0x1979adf1));", // IID8740 - "__ cmovl(Assembler::Condition::notZero, r25, Address(r26, r27, (Address::ScaleFactor)1, -0x56adf688));", // IID8741 - "__ cmovl(Assembler::Condition::notZero, r26, Address(r27, +0x34bb128d));", // IID8742 - "__ cmovl(Assembler::Condition::notZero, r27, Address(r28, r29, (Address::ScaleFactor)2, +0x64ff2bce));", // IID8743 - "__ cmovl(Assembler::Condition::notZero, r28, Address(r29, r30, (Address::ScaleFactor)2, +0x7d9b6ee6));", // IID8744 - "__ cmovl(Assembler::Condition::notZero, r29, Address(r30, r31, (Address::ScaleFactor)3, -0x12a9a9d9));", // IID8745 - "__ cmovl(Assembler::Condition::notZero, r30, Address(r31, rcx, (Address::ScaleFactor)0, -0x2c44b7a));", // IID8746 - "__ cmovl(Assembler::Condition::notZero, r31, Address(rcx, rdx, (Address::ScaleFactor)3, -0x59dcde2b));", // IID8747 -#endif // _LP64 - "__ cmovl(Assembler::Condition::belowEqual, rcx, Address(rdx, rbx, (Address::ScaleFactor)1, +0x712be4b1));", // IID8748 -#ifdef _LP64 - "__ cmovl(Assembler::Condition::belowEqual, rdx, Address(rbx, +0x1b2e7054));", // IID8749 - "__ cmovl(Assembler::Condition::belowEqual, rbx, Address(r8, r9, (Address::ScaleFactor)1, -0x25223354));", // IID8750 - "__ cmovl(Assembler::Condition::belowEqual, r8, Address(r9, r10, (Address::ScaleFactor)1, +0x66574f5d));", // IID8751 - "__ cmovl(Assembler::Condition::belowEqual, r9, Address(r10, +0x346e204d));", // IID8752 - "__ cmovl(Assembler::Condition::belowEqual, r10, Address(r11, r12, (Address::ScaleFactor)3, -0x5d2638e6));", // IID8753 - "__ cmovl(Assembler::Condition::belowEqual, r11, Address(r12, +0x2efeafd4));", // IID8754 - "__ cmovl(Assembler::Condition::belowEqual, r12, Address(r13, r14, (Address::ScaleFactor)2, -0x39fe261a));", // IID8755 - "__ cmovl(Assembler::Condition::belowEqual, r13, Address(r14, r15, (Address::ScaleFactor)2, +0x230901f0));", // IID8756 - "__ cmovl(Assembler::Condition::belowEqual, r14, Address(r15, r16, (Address::ScaleFactor)0, -0x35a3443f));", // IID8757 - "__ cmovl(Assembler::Condition::belowEqual, r15, Address(r16, r17, (Address::ScaleFactor)1, +0x6eceae5b));", // IID8758 - "__ cmovl(Assembler::Condition::belowEqual, r16, Address(r17, -0x21931869));", // IID8759 - "__ cmovl(Assembler::Condition::belowEqual, r17, Address(r18, r19, (Address::ScaleFactor)1, +0x2759c92));", // IID8760 - "__ cmovl(Assembler::Condition::belowEqual, r18, Address(r19, r20, (Address::ScaleFactor)2, -0x6a11f6d4));", // IID8761 - "__ cmovl(Assembler::Condition::belowEqual, r19, Address(r20, r21, (Address::ScaleFactor)3, +0x14cdd711));", // IID8762 - "__ cmovl(Assembler::Condition::belowEqual, r20, Address(r21, r22, (Address::ScaleFactor)0, +0x7c8dcdac));", // IID8763 - "__ cmovl(Assembler::Condition::belowEqual, r21, Address(r22, r23, (Address::ScaleFactor)3, -0x5ca0c59));", // IID8764 - "__ cmovl(Assembler::Condition::belowEqual, r22, Address(r23, r24, (Address::ScaleFactor)2, -0x14e3b1d5));", // IID8765 - "__ cmovl(Assembler::Condition::belowEqual, r23, Address(r24, r25, (Address::ScaleFactor)2, -0x3a3728bb));", // IID8766 - "__ cmovl(Assembler::Condition::belowEqual, r24, Address(r25, r26, (Address::ScaleFactor)2, -0x517b5d2c));", // IID8767 - "__ cmovl(Assembler::Condition::belowEqual, r25, Address(r26, r27, (Address::ScaleFactor)1, +0x4087facc));", // IID8768 - "__ cmovl(Assembler::Condition::belowEqual, r26, Address(r27, r28, (Address::ScaleFactor)1, +0x5e74ac19));", // IID8769 - "__ cmovl(Assembler::Condition::belowEqual, r27, Address(r28, -0x18909a0f));", // IID8770 - "__ cmovl(Assembler::Condition::belowEqual, r28, Address(r29, r30, (Address::ScaleFactor)1, -0x25a92c4f));", // IID8771 - "__ cmovl(Assembler::Condition::belowEqual, r29, Address(r30, r31, (Address::ScaleFactor)0, +0x3c855493));", // IID8772 - "__ cmovl(Assembler::Condition::belowEqual, r30, Address(r31, rcx, (Address::ScaleFactor)3, +0x22e1dd6b));", // IID8773 - "__ cmovl(Assembler::Condition::belowEqual, r31, Address(rcx, rdx, (Address::ScaleFactor)0, +0x74e151de));", // IID8774 -#endif // _LP64 - "__ cmovl(Assembler::Condition::above, rcx, Address(rdx, rbx, (Address::ScaleFactor)0, +0x37fe157e));", // IID8775 -#ifdef _LP64 - "__ cmovl(Assembler::Condition::above, rdx, Address(rbx, r8, (Address::ScaleFactor)1, +0x3ac694d7));", // IID8776 - "__ cmovl(Assembler::Condition::above, rbx, Address(r8, r9, (Address::ScaleFactor)2, +0x34041b9a));", // IID8777 - "__ cmovl(Assembler::Condition::above, r8, Address(r9, r10, (Address::ScaleFactor)2, +0x31e36192));", // IID8778 - "__ cmovl(Assembler::Condition::above, r9, Address(r10, r11, (Address::ScaleFactor)0, +0x309bc25e));", // IID8779 - "__ cmovl(Assembler::Condition::above, r10, Address(r11, r12, (Address::ScaleFactor)0, -0x72ff0321));", // IID8780 - "__ cmovl(Assembler::Condition::above, r11, Address(r12, r13, (Address::ScaleFactor)0, +0x28b6d631));", // IID8781 - "__ cmovl(Assembler::Condition::above, r12, Address(r13, r14, (Address::ScaleFactor)2, +0x241530cc));", // IID8782 - "__ cmovl(Assembler::Condition::above, r13, Address(r14, -0x56c1e7c5));", // IID8783 - "__ cmovl(Assembler::Condition::above, r14, Address(r15, r16, (Address::ScaleFactor)1, +0x696d475d));", // IID8784 - "__ cmovl(Assembler::Condition::above, r15, Address(r16, r17, (Address::ScaleFactor)0, +0x128565f4));", // IID8785 - "__ cmovl(Assembler::Condition::above, r16, Address(r17, r18, (Address::ScaleFactor)3, +0x32914ab2));", // IID8786 - "__ cmovl(Assembler::Condition::above, r17, Address(r18, r19, (Address::ScaleFactor)2, -0x714469d1));", // IID8787 - "__ cmovl(Assembler::Condition::above, r18, Address(r19, -0x16a8c907));", // IID8788 - "__ cmovl(Assembler::Condition::above, r19, Address(r20, r21, (Address::ScaleFactor)1, -0x174c4e10));", // IID8789 - "__ cmovl(Assembler::Condition::above, r20, Address(r21, r22, (Address::ScaleFactor)3, -0x5ec6fbc1));", // IID8790 - "__ cmovl(Assembler::Condition::above, r21, Address(r22, r23, (Address::ScaleFactor)1, -0x22c34e7f));", // IID8791 - "__ cmovl(Assembler::Condition::above, r22, Address(r23, +0x3336d2fb));", // IID8792 - "__ cmovl(Assembler::Condition::above, r23, Address(r24, r25, (Address::ScaleFactor)2, +0x64735195));", // IID8793 - "__ cmovl(Assembler::Condition::above, r24, Address(r25, r26, (Address::ScaleFactor)1, -0x4bcb0133));", // IID8794 - "__ cmovl(Assembler::Condition::above, r25, Address(r26, r27, (Address::ScaleFactor)3, -0x602a5685));", // IID8795 - "__ cmovl(Assembler::Condition::above, r26, Address(r27, r28, (Address::ScaleFactor)0, -0x2ea20283));", // IID8796 - "__ cmovl(Assembler::Condition::above, r27, Address(r28, r29, (Address::ScaleFactor)3, +0x666d39e9));", // IID8797 - "__ cmovl(Assembler::Condition::above, r28, Address(r29, r30, (Address::ScaleFactor)3, +0x6c94a3aa));", // IID8798 - "__ cmovl(Assembler::Condition::above, r29, Address(r30, r31, (Address::ScaleFactor)3, +0x2c2f9009));", // IID8799 - "__ cmovl(Assembler::Condition::above, r30, Address(r31, rcx, (Address::ScaleFactor)0, -0x3941a985));", // IID8800 - "__ cmovl(Assembler::Condition::above, r31, Address(rcx, rdx, (Address::ScaleFactor)1, -0x79404266));", // IID8801 -#endif // _LP64 - "__ cmovl(Assembler::Condition::negative, rcx, Address(rdx, rbx, (Address::ScaleFactor)0, +0x38528938));", // IID8802 -#ifdef _LP64 - "__ cmovl(Assembler::Condition::negative, rdx, Address(rbx, r8, (Address::ScaleFactor)1, +0x197c030c));", // IID8803 - "__ cmovl(Assembler::Condition::negative, rbx, Address(r8, r9, (Address::ScaleFactor)0, +0x23ebafd));", // IID8804 - "__ cmovl(Assembler::Condition::negative, r8, Address(r9, r10, (Address::ScaleFactor)1, +0x11cfa209));", // IID8805 - "__ cmovl(Assembler::Condition::negative, r9, Address(r10, r11, (Address::ScaleFactor)0, +0xa5ec053));", // IID8806 - "__ cmovl(Assembler::Condition::negative, r10, Address(r11, r12, (Address::ScaleFactor)3, -0x50c87f5d));", // IID8807 - "__ cmovl(Assembler::Condition::negative, r11, Address(r12, r13, (Address::ScaleFactor)2, +0x78f6c2c7));", // IID8808 - "__ cmovl(Assembler::Condition::negative, r12, Address(r13, +0x66db19c9));", // IID8809 - "__ cmovl(Assembler::Condition::negative, r13, Address(r14, r15, (Address::ScaleFactor)3, -0x20993405));", // IID8810 - "__ cmovl(Assembler::Condition::negative, r14, Address(r15, r16, (Address::ScaleFactor)0, -0x393bf0b2));", // IID8811 - "__ cmovl(Assembler::Condition::negative, r15, Address(r16, r17, (Address::ScaleFactor)1, +0x5b057d59));", // IID8812 - "__ cmovl(Assembler::Condition::negative, r16, Address(r17, r18, (Address::ScaleFactor)0, -0x5c025816));", // IID8813 - "__ cmovl(Assembler::Condition::negative, r17, Address(r18, r19, (Address::ScaleFactor)3, -0x7117084e));", // IID8814 - "__ cmovl(Assembler::Condition::negative, r18, Address(r19, -0x216464ab));", // IID8815 - "__ cmovl(Assembler::Condition::negative, r19, Address(r20, r21, (Address::ScaleFactor)1, +0x5bbbda84));", // IID8816 - "__ cmovl(Assembler::Condition::negative, r20, Address(r21, +0x1ed32ea1));", // IID8817 - "__ cmovl(Assembler::Condition::negative, r21, Address(r22, r23, (Address::ScaleFactor)2, +0x6544c140));", // IID8818 - "__ cmovl(Assembler::Condition::negative, r22, Address(r23, r24, (Address::ScaleFactor)3, +0x2462b4b));", // IID8819 - "__ cmovl(Assembler::Condition::negative, r23, Address(r24, -0x65566943));", // IID8820 - "__ cmovl(Assembler::Condition::negative, r24, Address(r25, r26, (Address::ScaleFactor)3, -0x61fff459));", // IID8821 - "__ cmovl(Assembler::Condition::negative, r25, Address(r26, +0x461942a7));", // IID8822 - "__ cmovl(Assembler::Condition::negative, r26, Address(r27, r28, (Address::ScaleFactor)0, -0x1cbe4a28));", // IID8823 - "__ cmovl(Assembler::Condition::negative, r27, Address(r28, r29, (Address::ScaleFactor)0, -0x196fbda5));", // IID8824 - "__ cmovl(Assembler::Condition::negative, r28, Address(r29, +0x18d0f771));", // IID8825 - "__ cmovl(Assembler::Condition::negative, r29, Address(r30, r31, (Address::ScaleFactor)3, +0x7ba17468));", // IID8826 - "__ cmovl(Assembler::Condition::negative, r30, Address(r31, rcx, (Address::ScaleFactor)2, -0x26522fb4));", // IID8827 - "__ cmovl(Assembler::Condition::negative, r31, Address(rcx, rdx, (Address::ScaleFactor)0, +0x1f15535b));", // IID8828 -#endif // _LP64 - "__ cmovl(Assembler::Condition::positive, rcx, Address(rdx, +0x652e7c76));", // IID8829 -#ifdef _LP64 - "__ cmovl(Assembler::Condition::positive, rdx, Address(rbx, r8, (Address::ScaleFactor)3, -0x60cb3202));", // IID8830 - "__ cmovl(Assembler::Condition::positive, rbx, Address(r8, r9, (Address::ScaleFactor)2, +0x3d0884a7));", // IID8831 - "__ cmovl(Assembler::Condition::positive, r8, Address(r9, r10, (Address::ScaleFactor)0, +0x6dc633a3));", // IID8832 - "__ cmovl(Assembler::Condition::positive, r9, Address(r10, r11, (Address::ScaleFactor)1, -0x1f4f363c));", // IID8833 - "__ cmovl(Assembler::Condition::positive, r10, Address(r11, r12, (Address::ScaleFactor)2, -0x704e45f8));", // IID8834 - "__ cmovl(Assembler::Condition::positive, r11, Address(r12, r13, (Address::ScaleFactor)0, +0x2c07e69a));", // IID8835 - "__ cmovl(Assembler::Condition::positive, r12, Address(r13, r14, (Address::ScaleFactor)3, -0x2ce0c07));", // IID8836 - "__ cmovl(Assembler::Condition::positive, r13, Address(r14, r15, (Address::ScaleFactor)0, -0x73a15037));", // IID8837 - "__ cmovl(Assembler::Condition::positive, r14, Address(r15, +0x65bde776));", // IID8838 - "__ cmovl(Assembler::Condition::positive, r15, Address(r16, r17, (Address::ScaleFactor)2, -0x5a4a2078));", // IID8839 - "__ cmovl(Assembler::Condition::positive, r16, Address(r17, r18, (Address::ScaleFactor)2, -0x4d1351fe));", // IID8840 - "__ cmovl(Assembler::Condition::positive, r17, Address(r18, r19, (Address::ScaleFactor)1, -0x36ba7b85));", // IID8841 - "__ cmovl(Assembler::Condition::positive, r18, Address(r19, r20, (Address::ScaleFactor)2, +0x394b3eca));", // IID8842 - "__ cmovl(Assembler::Condition::positive, r19, Address(r20, r21, (Address::ScaleFactor)1, -0x38757208));", // IID8843 - "__ cmovl(Assembler::Condition::positive, r20, Address(r21, r22, (Address::ScaleFactor)2, -0x232899a9));", // IID8844 - "__ cmovl(Assembler::Condition::positive, r21, Address(r22, r23, (Address::ScaleFactor)1, -0x646c692c));", // IID8845 - "__ cmovl(Assembler::Condition::positive, r22, Address(r23, r24, (Address::ScaleFactor)3, -0x6fd39b89));", // IID8846 - "__ cmovl(Assembler::Condition::positive, r23, Address(r24, r25, (Address::ScaleFactor)2, +0x54396a24));", // IID8847 - "__ cmovl(Assembler::Condition::positive, r24, Address(r25, r26, (Address::ScaleFactor)2, -0x1f79ea02));", // IID8848 - "__ cmovl(Assembler::Condition::positive, r25, Address(r26, r27, (Address::ScaleFactor)0, -0x331fe56f));", // IID8849 - "__ cmovl(Assembler::Condition::positive, r26, Address(r27, r28, (Address::ScaleFactor)2, -0x2c8d87e));", // IID8850 - "__ cmovl(Assembler::Condition::positive, r27, Address(r28, r29, (Address::ScaleFactor)3, +0x62362415));", // IID8851 - "__ cmovl(Assembler::Condition::positive, r28, Address(r29, r30, (Address::ScaleFactor)1, +0x3ae761ba));", // IID8852 - "__ cmovl(Assembler::Condition::positive, r29, Address(r30, r31, (Address::ScaleFactor)1, -0x52f27258));", // IID8853 - "__ cmovl(Assembler::Condition::positive, r30, Address(r31, rcx, (Address::ScaleFactor)0, -0x6bdc3e47));", // IID8854 - "__ cmovl(Assembler::Condition::positive, r31, Address(rcx, rdx, (Address::ScaleFactor)3, -0x7ff4d2c0));", // IID8855 -#endif // _LP64 - "__ cmovl(Assembler::Condition::parity, rcx, Address(rdx, rbx, (Address::ScaleFactor)2, -0x7fb4686e));", // IID8856 -#ifdef _LP64 - "__ cmovl(Assembler::Condition::parity, rdx, Address(rbx, +0x3ce155cd));", // IID8857 - "__ cmovl(Assembler::Condition::parity, rbx, Address(r8, +0x421f52dc));", // IID8858 - "__ cmovl(Assembler::Condition::parity, r8, Address(r9, -0x2c04302));", // IID8859 - "__ cmovl(Assembler::Condition::parity, r9, Address(r10, r11, (Address::ScaleFactor)2, -0x10087f18));", // IID8860 - "__ cmovl(Assembler::Condition::parity, r10, Address(r11, r12, (Address::ScaleFactor)0, +0x7407d68c));", // IID8861 - "__ cmovl(Assembler::Condition::parity, r11, Address(r12, r13, (Address::ScaleFactor)2, -0x2b571a58));", // IID8862 - "__ cmovl(Assembler::Condition::parity, r12, Address(r13, r14, (Address::ScaleFactor)0, +0x2e238d37));", // IID8863 - "__ cmovl(Assembler::Condition::parity, r13, Address(r14, r15, (Address::ScaleFactor)1, -0x146c228a));", // IID8864 - "__ cmovl(Assembler::Condition::parity, r14, Address(r15, r16, (Address::ScaleFactor)1, -0x4a6c9ec));", // IID8865 - "__ cmovl(Assembler::Condition::parity, r15, Address(r16, r17, (Address::ScaleFactor)3, +0x7191d888));", // IID8866 - "__ cmovl(Assembler::Condition::parity, r16, Address(r17, r18, (Address::ScaleFactor)2, -0x5095d8bd));", // IID8867 - "__ cmovl(Assembler::Condition::parity, r17, Address(r18, r19, (Address::ScaleFactor)1, +0x50323a1f));", // IID8868 - "__ cmovl(Assembler::Condition::parity, r18, Address(r19, r20, (Address::ScaleFactor)3, -0x4c46f7d));", // IID8869 - "__ cmovl(Assembler::Condition::parity, r19, Address(r20, r21, (Address::ScaleFactor)2, +0x1977827f));", // IID8870 - "__ cmovl(Assembler::Condition::parity, r20, Address(r21, r22, (Address::ScaleFactor)1, +0x693f31eb));", // IID8871 - "__ cmovl(Assembler::Condition::parity, r21, Address(r22, r23, (Address::ScaleFactor)3, +0x734dc58));", // IID8872 - "__ cmovl(Assembler::Condition::parity, r22, Address(r23, r24, (Address::ScaleFactor)1, +0x74cced60));", // IID8873 - "__ cmovl(Assembler::Condition::parity, r23, Address(r24, r25, (Address::ScaleFactor)1, -0x3974ba3e));", // IID8874 - "__ cmovl(Assembler::Condition::parity, r24, Address(r25, r26, (Address::ScaleFactor)1, -0x68585eb8));", // IID8875 - "__ cmovl(Assembler::Condition::parity, r25, Address(r26, r27, (Address::ScaleFactor)3, +0x5c7ea3a3));", // IID8876 - "__ cmovl(Assembler::Condition::parity, r26, Address(r27, r28, (Address::ScaleFactor)1, -0x1dc30d55));", // IID8877 - "__ cmovl(Assembler::Condition::parity, r27, Address(r28, r29, (Address::ScaleFactor)1, +0x4d23fff1));", // IID8878 - "__ cmovl(Assembler::Condition::parity, r28, Address(r29, +0x213b9ead));", // IID8879 - "__ cmovl(Assembler::Condition::parity, r29, Address(r30, +0x4caf5aaf));", // IID8880 - "__ cmovl(Assembler::Condition::parity, r30, Address(r31, -0x5a9c0d7a));", // IID8881 - "__ cmovl(Assembler::Condition::parity, r31, Address(rcx, +0x20fe37e4));", // IID8882 -#endif // _LP64 - "__ cmovl(Assembler::Condition::noParity, rcx, Address(rdx, rbx, (Address::ScaleFactor)3, -0x951083d));", // IID8883 -#ifdef _LP64 - "__ cmovl(Assembler::Condition::noParity, rdx, Address(rbx, r8, (Address::ScaleFactor)0, -0x62042b62));", // IID8884 - "__ cmovl(Assembler::Condition::noParity, rbx, Address(r8, r9, (Address::ScaleFactor)2, -0x7aadf46b));", // IID8885 - "__ cmovl(Assembler::Condition::noParity, r8, Address(r9, r10, (Address::ScaleFactor)2, -0x5b4b4e68));", // IID8886 - "__ cmovl(Assembler::Condition::noParity, r9, Address(r10, r11, (Address::ScaleFactor)3, +0x49585386));", // IID8887 - "__ cmovl(Assembler::Condition::noParity, r10, Address(r11, r12, (Address::ScaleFactor)2, +0x2f01024c));", // IID8888 - "__ cmovl(Assembler::Condition::noParity, r11, Address(r12, r13, (Address::ScaleFactor)1, -0x4309c4a7));", // IID8889 - "__ cmovl(Assembler::Condition::noParity, r12, Address(r13, +0x17245b3e));", // IID8890 - "__ cmovl(Assembler::Condition::noParity, r13, Address(r14, r15, (Address::ScaleFactor)3, +0x2b7fcd46));", // IID8891 - "__ cmovl(Assembler::Condition::noParity, r14, Address(r15, r16, (Address::ScaleFactor)3, -0x7e2553a0));", // IID8892 - "__ cmovl(Assembler::Condition::noParity, r15, Address(r16, r17, (Address::ScaleFactor)2, +0x259bb581));", // IID8893 - "__ cmovl(Assembler::Condition::noParity, r16, Address(r17, r18, (Address::ScaleFactor)3, -0x1e0774ff));", // IID8894 - "__ cmovl(Assembler::Condition::noParity, r17, Address(r18, r19, (Address::ScaleFactor)1, -0x772ac640));", // IID8895 - "__ cmovl(Assembler::Condition::noParity, r18, Address(r19, r20, (Address::ScaleFactor)2, +0x6f5cacd));", // IID8896 - "__ cmovl(Assembler::Condition::noParity, r19, Address(r20, -0x7c8be820));", // IID8897 - "__ cmovl(Assembler::Condition::noParity, r20, Address(r21, -0x425baced));", // IID8898 - "__ cmovl(Assembler::Condition::noParity, r21, Address(r22, r23, (Address::ScaleFactor)1, -0x13d08517));", // IID8899 - "__ cmovl(Assembler::Condition::noParity, r22, Address(r23, r24, (Address::ScaleFactor)3, +0x5b5b666f));", // IID8900 - "__ cmovl(Assembler::Condition::noParity, r23, Address(r24, r25, (Address::ScaleFactor)0, +0xa31800e));", // IID8901 - "__ cmovl(Assembler::Condition::noParity, r24, Address(r25, r26, (Address::ScaleFactor)1, +0x45bc2c92));", // IID8902 - "__ cmovl(Assembler::Condition::noParity, r25, Address(r26, r27, (Address::ScaleFactor)2, -0x47fd1ea));", // IID8903 - "__ cmovl(Assembler::Condition::noParity, r26, Address(r27, r28, (Address::ScaleFactor)1, +0x5b0614c2));", // IID8904 - "__ cmovl(Assembler::Condition::noParity, r27, Address(r28, -0x10101821));", // IID8905 - "__ cmovl(Assembler::Condition::noParity, r28, Address(r29, r30, (Address::ScaleFactor)2, -0x7eb00101));", // IID8906 - "__ cmovl(Assembler::Condition::noParity, r29, Address(r30, r31, (Address::ScaleFactor)3, +0x3871f5f0));", // IID8907 - "__ cmovl(Assembler::Condition::noParity, r30, Address(r31, +0x3d183729));", // IID8908 - "__ cmovl(Assembler::Condition::noParity, r31, Address(rcx, rdx, (Address::ScaleFactor)0, +0x332dc729));", // IID8909 -#endif // _LP64 - "__ cmovl(Assembler::Condition::less, rcx, Address(rdx, rbx, (Address::ScaleFactor)2, -0x6702bc0c));", // IID8910 -#ifdef _LP64 - "__ cmovl(Assembler::Condition::less, rdx, Address(rbx, r8, (Address::ScaleFactor)2, -0x26121894));", // IID8911 - "__ cmovl(Assembler::Condition::less, rbx, Address(r8, -0x69b6b483));", // IID8912 - "__ cmovl(Assembler::Condition::less, r8, Address(r9, r10, (Address::ScaleFactor)2, -0x748b6ddb));", // IID8913 - "__ cmovl(Assembler::Condition::less, r9, Address(r10, r11, (Address::ScaleFactor)0, -0x20886359));", // IID8914 - "__ cmovl(Assembler::Condition::less, r10, Address(r11, r12, (Address::ScaleFactor)2, +0x61d9b4e3));", // IID8915 - "__ cmovl(Assembler::Condition::less, r11, Address(r12, -0x3a8a1ce2));", // IID8916 - "__ cmovl(Assembler::Condition::less, r12, Address(r13, r14, (Address::ScaleFactor)2, +0x51a445ea));", // IID8917 - "__ cmovl(Assembler::Condition::less, r13, Address(r14, r15, (Address::ScaleFactor)3, +0xd198136));", // IID8918 - "__ cmovl(Assembler::Condition::less, r14, Address(r15, r16, (Address::ScaleFactor)1, -0x3a8ffcb5));", // IID8919 - "__ cmovl(Assembler::Condition::less, r15, Address(r16, r17, (Address::ScaleFactor)0, -0x61663d34));", // IID8920 - "__ cmovl(Assembler::Condition::less, r16, Address(r17, r18, (Address::ScaleFactor)3, +0x5752f591));", // IID8921 - "__ cmovl(Assembler::Condition::less, r17, Address(r18, r19, (Address::ScaleFactor)1, -0x7f423e99));", // IID8922 - "__ cmovl(Assembler::Condition::less, r18, Address(r19, r20, (Address::ScaleFactor)2, -0x5164db7b));", // IID8923 - "__ cmovl(Assembler::Condition::less, r19, Address(r20, r21, (Address::ScaleFactor)0, +0x87cf177));", // IID8924 - "__ cmovl(Assembler::Condition::less, r20, Address(r21, -0x7983f0d3));", // IID8925 - "__ cmovl(Assembler::Condition::less, r21, Address(r22, r23, (Address::ScaleFactor)1, -0x4958b86a));", // IID8926 - "__ cmovl(Assembler::Condition::less, r22, Address(r23, r24, (Address::ScaleFactor)2, -0x47e6f290));", // IID8927 - "__ cmovl(Assembler::Condition::less, r23, Address(r24, r25, (Address::ScaleFactor)3, +0x1d8412ce));", // IID8928 - "__ cmovl(Assembler::Condition::less, r24, Address(r25, -0x78d3d4f7));", // IID8929 - "__ cmovl(Assembler::Condition::less, r25, Address(r26, r27, (Address::ScaleFactor)0, -0x79b32e0a));", // IID8930 - "__ cmovl(Assembler::Condition::less, r26, Address(r27, r28, (Address::ScaleFactor)0, +0x3b80dca7));", // IID8931 - "__ cmovl(Assembler::Condition::less, r27, Address(r28, +0x73548184));", // IID8932 - "__ cmovl(Assembler::Condition::less, r28, Address(r29, r30, (Address::ScaleFactor)3, -0x6eb08639));", // IID8933 - "__ cmovl(Assembler::Condition::less, r29, Address(r30, r31, (Address::ScaleFactor)1, +0x14c749a0));", // IID8934 - "__ cmovl(Assembler::Condition::less, r30, Address(r31, rcx, (Address::ScaleFactor)0, +0x4e54f4af));", // IID8935 - "__ cmovl(Assembler::Condition::less, r31, Address(rcx, rdx, (Address::ScaleFactor)0, -0x202d3a6f));", // IID8936 -#endif // _LP64 - "__ cmovl(Assembler::Condition::greaterEqual, rcx, Address(rdx, rbx, (Address::ScaleFactor)1, +0xe2d17b4));", // IID8937 -#ifdef _LP64 - "__ cmovl(Assembler::Condition::greaterEqual, rdx, Address(rbx, r8, (Address::ScaleFactor)2, +0x1df5cae7));", // IID8938 - "__ cmovl(Assembler::Condition::greaterEqual, rbx, Address(r8, r9, (Address::ScaleFactor)2, +0x70934d26));", // IID8939 - "__ cmovl(Assembler::Condition::greaterEqual, r8, Address(r9, r10, (Address::ScaleFactor)3, +0x2897108));", // IID8940 - "__ cmovl(Assembler::Condition::greaterEqual, r9, Address(r10, r11, (Address::ScaleFactor)0, +0x1611c310));", // IID8941 - "__ cmovl(Assembler::Condition::greaterEqual, r10, Address(r11, r12, (Address::ScaleFactor)2, -0x4ba0661b));", // IID8942 - "__ cmovl(Assembler::Condition::greaterEqual, r11, Address(r12, +0x4c23f15e));", // IID8943 - "__ cmovl(Assembler::Condition::greaterEqual, r12, Address(r13, r14, (Address::ScaleFactor)1, +0xf917e93));", // IID8944 - "__ cmovl(Assembler::Condition::greaterEqual, r13, Address(r14, r15, (Address::ScaleFactor)2, +0x11734207));", // IID8945 - "__ cmovl(Assembler::Condition::greaterEqual, r14, Address(r15, r16, (Address::ScaleFactor)3, -0x70ffbd7a));", // IID8946 - "__ cmovl(Assembler::Condition::greaterEqual, r15, Address(r16, +0x2f92ad0a));", // IID8947 - "__ cmovl(Assembler::Condition::greaterEqual, r16, Address(r17, r18, (Address::ScaleFactor)2, -0xaf95f0b));", // IID8948 - "__ cmovl(Assembler::Condition::greaterEqual, r17, Address(r18, r19, (Address::ScaleFactor)3, -0x79e09075));", // IID8949 - "__ cmovl(Assembler::Condition::greaterEqual, r18, Address(r19, +0x20e61891));", // IID8950 - "__ cmovl(Assembler::Condition::greaterEqual, r19, Address(r20, r21, (Address::ScaleFactor)3, -0x4c355de1));", // IID8951 - "__ cmovl(Assembler::Condition::greaterEqual, r20, Address(r21, r22, (Address::ScaleFactor)1, +0x664d551c));", // IID8952 - "__ cmovl(Assembler::Condition::greaterEqual, r21, Address(r22, r23, (Address::ScaleFactor)1, +0x4f3ac17c));", // IID8953 - "__ cmovl(Assembler::Condition::greaterEqual, r22, Address(r23, r24, (Address::ScaleFactor)1, -0x66ce13f0));", // IID8954 - "__ cmovl(Assembler::Condition::greaterEqual, r23, Address(r24, +0x76b2d283));", // IID8955 - "__ cmovl(Assembler::Condition::greaterEqual, r24, Address(r25, r26, (Address::ScaleFactor)0, -0x7e4bb69a));", // IID8956 - "__ cmovl(Assembler::Condition::greaterEqual, r25, Address(r26, r27, (Address::ScaleFactor)3, +0x468837b4));", // IID8957 - "__ cmovl(Assembler::Condition::greaterEqual, r26, Address(r27, r28, (Address::ScaleFactor)0, -0x821e70f));", // IID8958 - "__ cmovl(Assembler::Condition::greaterEqual, r27, Address(r28, r29, (Address::ScaleFactor)2, -0x5a786f9e));", // IID8959 - "__ cmovl(Assembler::Condition::greaterEqual, r28, Address(r29, r30, (Address::ScaleFactor)3, -0x637405fc));", // IID8960 - "__ cmovl(Assembler::Condition::greaterEqual, r29, Address(r30, r31, (Address::ScaleFactor)2, +0x7ab4f3a5));", // IID8961 - "__ cmovl(Assembler::Condition::greaterEqual, r30, Address(r31, rcx, (Address::ScaleFactor)3, +0x1cdb833));", // IID8962 - "__ cmovl(Assembler::Condition::greaterEqual, r31, Address(rcx, rdx, (Address::ScaleFactor)0, +0x41b2b19a));", // IID8963 -#endif // _LP64 - "__ cmovl(Assembler::Condition::lessEqual, rcx, Address(rdx, -0x30e552a1));", // IID8964 -#ifdef _LP64 - "__ cmovl(Assembler::Condition::lessEqual, rdx, Address(rbx, r8, (Address::ScaleFactor)2, -0xf8b6d94));", // IID8965 - "__ cmovl(Assembler::Condition::lessEqual, rbx, Address(r8, +0xb934c));", // IID8966 - "__ cmovl(Assembler::Condition::lessEqual, r8, Address(r9, r10, (Address::ScaleFactor)0, +0x546672a5));", // IID8967 - "__ cmovl(Assembler::Condition::lessEqual, r9, Address(r10, r11, (Address::ScaleFactor)0, +0x7c8e6f89));", // IID8968 - "__ cmovl(Assembler::Condition::lessEqual, r10, Address(r11, r12, (Address::ScaleFactor)0, -0x67fedfaa));", // IID8969 - "__ cmovl(Assembler::Condition::lessEqual, r11, Address(r12, r13, (Address::ScaleFactor)2, -0x5515154a));", // IID8970 - "__ cmovl(Assembler::Condition::lessEqual, r12, Address(r13, r14, (Address::ScaleFactor)3, +0x106a8608));", // IID8971 - "__ cmovl(Assembler::Condition::lessEqual, r13, Address(r14, r15, (Address::ScaleFactor)3, +0xc4641f5));", // IID8972 - "__ cmovl(Assembler::Condition::lessEqual, r14, Address(r15, -0x620e7be5));", // IID8973 - "__ cmovl(Assembler::Condition::lessEqual, r15, Address(r16, r17, (Address::ScaleFactor)0, +0x43ff2fec));", // IID8974 - "__ cmovl(Assembler::Condition::lessEqual, r16, Address(r17, r18, (Address::ScaleFactor)0, +0x2e73614));", // IID8975 - "__ cmovl(Assembler::Condition::lessEqual, r17, Address(r18, r19, (Address::ScaleFactor)1, -0x1300788b));", // IID8976 - "__ cmovl(Assembler::Condition::lessEqual, r18, Address(r19, -0x75fe7f8b));", // IID8977 - "__ cmovl(Assembler::Condition::lessEqual, r19, Address(r20, r21, (Address::ScaleFactor)0, -0x7facaf36));", // IID8978 - "__ cmovl(Assembler::Condition::lessEqual, r20, Address(r21, r22, (Address::ScaleFactor)3, -0x27541a71));", // IID8979 - "__ cmovl(Assembler::Condition::lessEqual, r21, Address(r22, r23, (Address::ScaleFactor)2, -0x6a317bee));", // IID8980 - "__ cmovl(Assembler::Condition::lessEqual, r22, Address(r23, r24, (Address::ScaleFactor)1, +0x160db275));", // IID8981 - "__ cmovl(Assembler::Condition::lessEqual, r23, Address(r24, r25, (Address::ScaleFactor)2, +0x50c50ea3));", // IID8982 - "__ cmovl(Assembler::Condition::lessEqual, r24, Address(r25, r26, (Address::ScaleFactor)1, -0x7b6789b9));", // IID8983 - "__ cmovl(Assembler::Condition::lessEqual, r25, Address(r26, r27, (Address::ScaleFactor)0, +0x1bb3967a));", // IID8984 - "__ cmovl(Assembler::Condition::lessEqual, r26, Address(r27, r28, (Address::ScaleFactor)1, -0x5a6dab08));", // IID8985 - "__ cmovl(Assembler::Condition::lessEqual, r27, Address(r28, r29, (Address::ScaleFactor)1, -0x5c7de175));", // IID8986 - "__ cmovl(Assembler::Condition::lessEqual, r28, Address(r29, r30, (Address::ScaleFactor)3, -0x5bc36963));", // IID8987 - "__ cmovl(Assembler::Condition::lessEqual, r29, Address(r30, r31, (Address::ScaleFactor)3, -0x43a258d9));", // IID8988 - "__ cmovl(Assembler::Condition::lessEqual, r30, Address(r31, +0x302333f4));", // IID8989 - "__ cmovl(Assembler::Condition::lessEqual, r31, Address(rcx, rdx, (Address::ScaleFactor)3, -0x3c4cd9d));", // IID8990 -#endif // _LP64 - "__ cmovl(Assembler::Condition::greater, rcx, Address(rdx, rbx, (Address::ScaleFactor)2, -0x5850d0b8));", // IID8991 -#ifdef _LP64 - "__ cmovl(Assembler::Condition::greater, rdx, Address(rbx, r8, (Address::ScaleFactor)1, +0x45d67da2));", // IID8992 - "__ cmovl(Assembler::Condition::greater, rbx, Address(r8, r9, (Address::ScaleFactor)3, -0x1ffce53a));", // IID8993 - "__ cmovl(Assembler::Condition::greater, r8, Address(r9, r10, (Address::ScaleFactor)3, -0x24b7a3e3));", // IID8994 - "__ cmovl(Assembler::Condition::greater, r9, Address(r10, r11, (Address::ScaleFactor)3, +0x2e9cdebf));", // IID8995 - "__ cmovl(Assembler::Condition::greater, r10, Address(r11, r12, (Address::ScaleFactor)0, +0x278f4768));", // IID8996 - "__ cmovl(Assembler::Condition::greater, r11, Address(r12, r13, (Address::ScaleFactor)1, +0x343ea873));", // IID8997 - "__ cmovl(Assembler::Condition::greater, r12, Address(r13, r14, (Address::ScaleFactor)3, -0xc7838de));", // IID8998 - "__ cmovl(Assembler::Condition::greater, r13, Address(r14, r15, (Address::ScaleFactor)0, -0x4cae7e48));", // IID8999 - "__ cmovl(Assembler::Condition::greater, r14, Address(r15, r16, (Address::ScaleFactor)1, +0x6ed25726));", // IID9000 - "__ cmovl(Assembler::Condition::greater, r15, Address(r16, r17, (Address::ScaleFactor)1, +0x1be93412));", // IID9001 - "__ cmovl(Assembler::Condition::greater, r16, Address(r17, r18, (Address::ScaleFactor)3, -0x747c1b4e));", // IID9002 - "__ cmovl(Assembler::Condition::greater, r17, Address(r18, r19, (Address::ScaleFactor)2, +0x7133e00c));", // IID9003 - "__ cmovl(Assembler::Condition::greater, r18, Address(r19, r20, (Address::ScaleFactor)2, -0x3aac2e1c));", // IID9004 - "__ cmovl(Assembler::Condition::greater, r19, Address(r20, r21, (Address::ScaleFactor)0, -0x186e58b7));", // IID9005 - "__ cmovl(Assembler::Condition::greater, r20, Address(r21, r22, (Address::ScaleFactor)0, -0x13f031c4));", // IID9006 - "__ cmovl(Assembler::Condition::greater, r21, Address(r22, r23, (Address::ScaleFactor)1, -0x76bd44e));", // IID9007 - "__ cmovl(Assembler::Condition::greater, r22, Address(r23, r24, (Address::ScaleFactor)1, +0x7f50c1e5));", // IID9008 - "__ cmovl(Assembler::Condition::greater, r23, Address(r24, r25, (Address::ScaleFactor)2, -0xf0a9df));", // IID9009 - "__ cmovl(Assembler::Condition::greater, r24, Address(r25, -0x1249f74c));", // IID9010 - "__ cmovl(Assembler::Condition::greater, r25, Address(r26, +0x6c371ca1));", // IID9011 - "__ cmovl(Assembler::Condition::greater, r26, Address(r27, r28, (Address::ScaleFactor)1, -0x42c8b2ec));", // IID9012 - "__ cmovl(Assembler::Condition::greater, r27, Address(r28, r29, (Address::ScaleFactor)3, +0x54367848));", // IID9013 - "__ cmovl(Assembler::Condition::greater, r28, Address(r29, r30, (Address::ScaleFactor)3, +0x77e8739b));", // IID9014 - "__ cmovl(Assembler::Condition::greater, r29, Address(r30, -0x5986eb23));", // IID9015 - "__ cmovl(Assembler::Condition::greater, r30, Address(r31, +0x56e1b0c7));", // IID9016 - "__ cmovl(Assembler::Condition::greater, r31, Address(rcx, rdx, (Address::ScaleFactor)2, +0x767c9677));", // IID9017 -#endif // _LP64 - "__ setb(Assembler::Condition::overflow, rcx);", // IID9018 - "__ setb(Assembler::Condition::overflow, rdx);", // IID9019 - "__ setb(Assembler::Condition::overflow, rbx);", // IID9020 -#ifdef _LP64 - "__ setb(Assembler::Condition::overflow, r8);", // IID9021 - "__ setb(Assembler::Condition::overflow, r9);", // IID9022 - "__ setb(Assembler::Condition::overflow, r10);", // IID9023 - "__ setb(Assembler::Condition::overflow, r11);", // IID9024 - "__ setb(Assembler::Condition::overflow, r12);", // IID9025 - "__ setb(Assembler::Condition::overflow, r13);", // IID9026 - "__ setb(Assembler::Condition::overflow, r14);", // IID9027 - "__ setb(Assembler::Condition::overflow, r15);", // IID9028 - "__ setb(Assembler::Condition::overflow, r16);", // IID9029 - "__ setb(Assembler::Condition::overflow, r17);", // IID9030 - "__ setb(Assembler::Condition::overflow, r18);", // IID9031 - "__ setb(Assembler::Condition::overflow, r19);", // IID9032 - "__ setb(Assembler::Condition::overflow, r20);", // IID9033 - "__ setb(Assembler::Condition::overflow, r21);", // IID9034 - "__ setb(Assembler::Condition::overflow, r22);", // IID9035 - "__ setb(Assembler::Condition::overflow, r23);", // IID9036 - "__ setb(Assembler::Condition::overflow, r24);", // IID9037 - "__ setb(Assembler::Condition::overflow, r25);", // IID9038 - "__ setb(Assembler::Condition::overflow, r26);", // IID9039 - "__ setb(Assembler::Condition::overflow, r27);", // IID9040 - "__ setb(Assembler::Condition::overflow, r28);", // IID9041 - "__ setb(Assembler::Condition::overflow, r29);", // IID9042 - "__ setb(Assembler::Condition::overflow, r30);", // IID9043 - "__ setb(Assembler::Condition::overflow, r31);", // IID9044 -#endif // _LP64 - "__ setb(Assembler::Condition::noOverflow, rcx);", // IID9045 - "__ setb(Assembler::Condition::noOverflow, rdx);", // IID9046 - "__ setb(Assembler::Condition::noOverflow, rbx);", // IID9047 -#ifdef _LP64 - "__ setb(Assembler::Condition::noOverflow, r8);", // IID9048 - "__ setb(Assembler::Condition::noOverflow, r9);", // IID9049 - "__ setb(Assembler::Condition::noOverflow, r10);", // IID9050 - "__ setb(Assembler::Condition::noOverflow, r11);", // IID9051 - "__ setb(Assembler::Condition::noOverflow, r12);", // IID9052 - "__ setb(Assembler::Condition::noOverflow, r13);", // IID9053 - "__ setb(Assembler::Condition::noOverflow, r14);", // IID9054 - "__ setb(Assembler::Condition::noOverflow, r15);", // IID9055 - "__ setb(Assembler::Condition::noOverflow, r16);", // IID9056 - "__ setb(Assembler::Condition::noOverflow, r17);", // IID9057 - "__ setb(Assembler::Condition::noOverflow, r18);", // IID9058 - "__ setb(Assembler::Condition::noOverflow, r19);", // IID9059 - "__ setb(Assembler::Condition::noOverflow, r20);", // IID9060 - "__ setb(Assembler::Condition::noOverflow, r21);", // IID9061 - "__ setb(Assembler::Condition::noOverflow, r22);", // IID9062 - "__ setb(Assembler::Condition::noOverflow, r23);", // IID9063 - "__ setb(Assembler::Condition::noOverflow, r24);", // IID9064 - "__ setb(Assembler::Condition::noOverflow, r25);", // IID9065 - "__ setb(Assembler::Condition::noOverflow, r26);", // IID9066 - "__ setb(Assembler::Condition::noOverflow, r27);", // IID9067 - "__ setb(Assembler::Condition::noOverflow, r28);", // IID9068 - "__ setb(Assembler::Condition::noOverflow, r29);", // IID9069 - "__ setb(Assembler::Condition::noOverflow, r30);", // IID9070 - "__ setb(Assembler::Condition::noOverflow, r31);", // IID9071 -#endif // _LP64 - "__ setb(Assembler::Condition::below, rcx);", // IID9072 - "__ setb(Assembler::Condition::below, rdx);", // IID9073 - "__ setb(Assembler::Condition::below, rbx);", // IID9074 -#ifdef _LP64 - "__ setb(Assembler::Condition::below, r8);", // IID9075 - "__ setb(Assembler::Condition::below, r9);", // IID9076 - "__ setb(Assembler::Condition::below, r10);", // IID9077 - "__ setb(Assembler::Condition::below, r11);", // IID9078 - "__ setb(Assembler::Condition::below, r12);", // IID9079 - "__ setb(Assembler::Condition::below, r13);", // IID9080 - "__ setb(Assembler::Condition::below, r14);", // IID9081 - "__ setb(Assembler::Condition::below, r15);", // IID9082 - "__ setb(Assembler::Condition::below, r16);", // IID9083 - "__ setb(Assembler::Condition::below, r17);", // IID9084 - "__ setb(Assembler::Condition::below, r18);", // IID9085 - "__ setb(Assembler::Condition::below, r19);", // IID9086 - "__ setb(Assembler::Condition::below, r20);", // IID9087 - "__ setb(Assembler::Condition::below, r21);", // IID9088 - "__ setb(Assembler::Condition::below, r22);", // IID9089 - "__ setb(Assembler::Condition::below, r23);", // IID9090 - "__ setb(Assembler::Condition::below, r24);", // IID9091 - "__ setb(Assembler::Condition::below, r25);", // IID9092 - "__ setb(Assembler::Condition::below, r26);", // IID9093 - "__ setb(Assembler::Condition::below, r27);", // IID9094 - "__ setb(Assembler::Condition::below, r28);", // IID9095 - "__ setb(Assembler::Condition::below, r29);", // IID9096 - "__ setb(Assembler::Condition::below, r30);", // IID9097 - "__ setb(Assembler::Condition::below, r31);", // IID9098 -#endif // _LP64 - "__ setb(Assembler::Condition::aboveEqual, rcx);", // IID9099 - "__ setb(Assembler::Condition::aboveEqual, rdx);", // IID9100 - "__ setb(Assembler::Condition::aboveEqual, rbx);", // IID9101 -#ifdef _LP64 - "__ setb(Assembler::Condition::aboveEqual, r8);", // IID9102 - "__ setb(Assembler::Condition::aboveEqual, r9);", // IID9103 - "__ setb(Assembler::Condition::aboveEqual, r10);", // IID9104 - "__ setb(Assembler::Condition::aboveEqual, r11);", // IID9105 - "__ setb(Assembler::Condition::aboveEqual, r12);", // IID9106 - "__ setb(Assembler::Condition::aboveEqual, r13);", // IID9107 - "__ setb(Assembler::Condition::aboveEqual, r14);", // IID9108 - "__ setb(Assembler::Condition::aboveEqual, r15);", // IID9109 - "__ setb(Assembler::Condition::aboveEqual, r16);", // IID9110 - "__ setb(Assembler::Condition::aboveEqual, r17);", // IID9111 - "__ setb(Assembler::Condition::aboveEqual, r18);", // IID9112 - "__ setb(Assembler::Condition::aboveEqual, r19);", // IID9113 - "__ setb(Assembler::Condition::aboveEqual, r20);", // IID9114 - "__ setb(Assembler::Condition::aboveEqual, r21);", // IID9115 - "__ setb(Assembler::Condition::aboveEqual, r22);", // IID9116 - "__ setb(Assembler::Condition::aboveEqual, r23);", // IID9117 - "__ setb(Assembler::Condition::aboveEqual, r24);", // IID9118 - "__ setb(Assembler::Condition::aboveEqual, r25);", // IID9119 - "__ setb(Assembler::Condition::aboveEqual, r26);", // IID9120 - "__ setb(Assembler::Condition::aboveEqual, r27);", // IID9121 - "__ setb(Assembler::Condition::aboveEqual, r28);", // IID9122 - "__ setb(Assembler::Condition::aboveEqual, r29);", // IID9123 - "__ setb(Assembler::Condition::aboveEqual, r30);", // IID9124 - "__ setb(Assembler::Condition::aboveEqual, r31);", // IID9125 -#endif // _LP64 - "__ setb(Assembler::Condition::zero, rcx);", // IID9126 - "__ setb(Assembler::Condition::zero, rdx);", // IID9127 - "__ setb(Assembler::Condition::zero, rbx);", // IID9128 -#ifdef _LP64 - "__ setb(Assembler::Condition::zero, r8);", // IID9129 - "__ setb(Assembler::Condition::zero, r9);", // IID9130 - "__ setb(Assembler::Condition::zero, r10);", // IID9131 - "__ setb(Assembler::Condition::zero, r11);", // IID9132 - "__ setb(Assembler::Condition::zero, r12);", // IID9133 - "__ setb(Assembler::Condition::zero, r13);", // IID9134 - "__ setb(Assembler::Condition::zero, r14);", // IID9135 - "__ setb(Assembler::Condition::zero, r15);", // IID9136 - "__ setb(Assembler::Condition::zero, r16);", // IID9137 - "__ setb(Assembler::Condition::zero, r17);", // IID9138 - "__ setb(Assembler::Condition::zero, r18);", // IID9139 - "__ setb(Assembler::Condition::zero, r19);", // IID9140 - "__ setb(Assembler::Condition::zero, r20);", // IID9141 - "__ setb(Assembler::Condition::zero, r21);", // IID9142 - "__ setb(Assembler::Condition::zero, r22);", // IID9143 - "__ setb(Assembler::Condition::zero, r23);", // IID9144 - "__ setb(Assembler::Condition::zero, r24);", // IID9145 - "__ setb(Assembler::Condition::zero, r25);", // IID9146 - "__ setb(Assembler::Condition::zero, r26);", // IID9147 - "__ setb(Assembler::Condition::zero, r27);", // IID9148 - "__ setb(Assembler::Condition::zero, r28);", // IID9149 - "__ setb(Assembler::Condition::zero, r29);", // IID9150 - "__ setb(Assembler::Condition::zero, r30);", // IID9151 - "__ setb(Assembler::Condition::zero, r31);", // IID9152 -#endif // _LP64 - "__ setb(Assembler::Condition::notZero, rcx);", // IID9153 - "__ setb(Assembler::Condition::notZero, rdx);", // IID9154 - "__ setb(Assembler::Condition::notZero, rbx);", // IID9155 -#ifdef _LP64 - "__ setb(Assembler::Condition::notZero, r8);", // IID9156 - "__ setb(Assembler::Condition::notZero, r9);", // IID9157 - "__ setb(Assembler::Condition::notZero, r10);", // IID9158 - "__ setb(Assembler::Condition::notZero, r11);", // IID9159 - "__ setb(Assembler::Condition::notZero, r12);", // IID9160 - "__ setb(Assembler::Condition::notZero, r13);", // IID9161 - "__ setb(Assembler::Condition::notZero, r14);", // IID9162 - "__ setb(Assembler::Condition::notZero, r15);", // IID9163 - "__ setb(Assembler::Condition::notZero, r16);", // IID9164 - "__ setb(Assembler::Condition::notZero, r17);", // IID9165 - "__ setb(Assembler::Condition::notZero, r18);", // IID9166 - "__ setb(Assembler::Condition::notZero, r19);", // IID9167 - "__ setb(Assembler::Condition::notZero, r20);", // IID9168 - "__ setb(Assembler::Condition::notZero, r21);", // IID9169 - "__ setb(Assembler::Condition::notZero, r22);", // IID9170 - "__ setb(Assembler::Condition::notZero, r23);", // IID9171 - "__ setb(Assembler::Condition::notZero, r24);", // IID9172 - "__ setb(Assembler::Condition::notZero, r25);", // IID9173 - "__ setb(Assembler::Condition::notZero, r26);", // IID9174 - "__ setb(Assembler::Condition::notZero, r27);", // IID9175 - "__ setb(Assembler::Condition::notZero, r28);", // IID9176 - "__ setb(Assembler::Condition::notZero, r29);", // IID9177 - "__ setb(Assembler::Condition::notZero, r30);", // IID9178 - "__ setb(Assembler::Condition::notZero, r31);", // IID9179 -#endif // _LP64 - "__ setb(Assembler::Condition::belowEqual, rcx);", // IID9180 - "__ setb(Assembler::Condition::belowEqual, rdx);", // IID9181 - "__ setb(Assembler::Condition::belowEqual, rbx);", // IID9182 -#ifdef _LP64 - "__ setb(Assembler::Condition::belowEqual, r8);", // IID9183 - "__ setb(Assembler::Condition::belowEqual, r9);", // IID9184 - "__ setb(Assembler::Condition::belowEqual, r10);", // IID9185 - "__ setb(Assembler::Condition::belowEqual, r11);", // IID9186 - "__ setb(Assembler::Condition::belowEqual, r12);", // IID9187 - "__ setb(Assembler::Condition::belowEqual, r13);", // IID9188 - "__ setb(Assembler::Condition::belowEqual, r14);", // IID9189 - "__ setb(Assembler::Condition::belowEqual, r15);", // IID9190 - "__ setb(Assembler::Condition::belowEqual, r16);", // IID9191 - "__ setb(Assembler::Condition::belowEqual, r17);", // IID9192 - "__ setb(Assembler::Condition::belowEqual, r18);", // IID9193 - "__ setb(Assembler::Condition::belowEqual, r19);", // IID9194 - "__ setb(Assembler::Condition::belowEqual, r20);", // IID9195 - "__ setb(Assembler::Condition::belowEqual, r21);", // IID9196 - "__ setb(Assembler::Condition::belowEqual, r22);", // IID9197 - "__ setb(Assembler::Condition::belowEqual, r23);", // IID9198 - "__ setb(Assembler::Condition::belowEqual, r24);", // IID9199 - "__ setb(Assembler::Condition::belowEqual, r25);", // IID9200 - "__ setb(Assembler::Condition::belowEqual, r26);", // IID9201 - "__ setb(Assembler::Condition::belowEqual, r27);", // IID9202 - "__ setb(Assembler::Condition::belowEqual, r28);", // IID9203 - "__ setb(Assembler::Condition::belowEqual, r29);", // IID9204 - "__ setb(Assembler::Condition::belowEqual, r30);", // IID9205 - "__ setb(Assembler::Condition::belowEqual, r31);", // IID9206 -#endif // _LP64 - "__ setb(Assembler::Condition::above, rcx);", // IID9207 - "__ setb(Assembler::Condition::above, rdx);", // IID9208 - "__ setb(Assembler::Condition::above, rbx);", // IID9209 -#ifdef _LP64 - "__ setb(Assembler::Condition::above, r8);", // IID9210 - "__ setb(Assembler::Condition::above, r9);", // IID9211 - "__ setb(Assembler::Condition::above, r10);", // IID9212 - "__ setb(Assembler::Condition::above, r11);", // IID9213 - "__ setb(Assembler::Condition::above, r12);", // IID9214 - "__ setb(Assembler::Condition::above, r13);", // IID9215 - "__ setb(Assembler::Condition::above, r14);", // IID9216 - "__ setb(Assembler::Condition::above, r15);", // IID9217 - "__ setb(Assembler::Condition::above, r16);", // IID9218 - "__ setb(Assembler::Condition::above, r17);", // IID9219 - "__ setb(Assembler::Condition::above, r18);", // IID9220 - "__ setb(Assembler::Condition::above, r19);", // IID9221 - "__ setb(Assembler::Condition::above, r20);", // IID9222 - "__ setb(Assembler::Condition::above, r21);", // IID9223 - "__ setb(Assembler::Condition::above, r22);", // IID9224 - "__ setb(Assembler::Condition::above, r23);", // IID9225 - "__ setb(Assembler::Condition::above, r24);", // IID9226 - "__ setb(Assembler::Condition::above, r25);", // IID9227 - "__ setb(Assembler::Condition::above, r26);", // IID9228 - "__ setb(Assembler::Condition::above, r27);", // IID9229 - "__ setb(Assembler::Condition::above, r28);", // IID9230 - "__ setb(Assembler::Condition::above, r29);", // IID9231 - "__ setb(Assembler::Condition::above, r30);", // IID9232 - "__ setb(Assembler::Condition::above, r31);", // IID9233 -#endif // _LP64 - "__ setb(Assembler::Condition::negative, rcx);", // IID9234 - "__ setb(Assembler::Condition::negative, rdx);", // IID9235 - "__ setb(Assembler::Condition::negative, rbx);", // IID9236 -#ifdef _LP64 - "__ setb(Assembler::Condition::negative, r8);", // IID9237 - "__ setb(Assembler::Condition::negative, r9);", // IID9238 - "__ setb(Assembler::Condition::negative, r10);", // IID9239 - "__ setb(Assembler::Condition::negative, r11);", // IID9240 - "__ setb(Assembler::Condition::negative, r12);", // IID9241 - "__ setb(Assembler::Condition::negative, r13);", // IID9242 - "__ setb(Assembler::Condition::negative, r14);", // IID9243 - "__ setb(Assembler::Condition::negative, r15);", // IID9244 - "__ setb(Assembler::Condition::negative, r16);", // IID9245 - "__ setb(Assembler::Condition::negative, r17);", // IID9246 - "__ setb(Assembler::Condition::negative, r18);", // IID9247 - "__ setb(Assembler::Condition::negative, r19);", // IID9248 - "__ setb(Assembler::Condition::negative, r20);", // IID9249 - "__ setb(Assembler::Condition::negative, r21);", // IID9250 - "__ setb(Assembler::Condition::negative, r22);", // IID9251 - "__ setb(Assembler::Condition::negative, r23);", // IID9252 - "__ setb(Assembler::Condition::negative, r24);", // IID9253 - "__ setb(Assembler::Condition::negative, r25);", // IID9254 - "__ setb(Assembler::Condition::negative, r26);", // IID9255 - "__ setb(Assembler::Condition::negative, r27);", // IID9256 - "__ setb(Assembler::Condition::negative, r28);", // IID9257 - "__ setb(Assembler::Condition::negative, r29);", // IID9258 - "__ setb(Assembler::Condition::negative, r30);", // IID9259 - "__ setb(Assembler::Condition::negative, r31);", // IID9260 -#endif // _LP64 - "__ setb(Assembler::Condition::positive, rcx);", // IID9261 - "__ setb(Assembler::Condition::positive, rdx);", // IID9262 - "__ setb(Assembler::Condition::positive, rbx);", // IID9263 -#ifdef _LP64 - "__ setb(Assembler::Condition::positive, r8);", // IID9264 - "__ setb(Assembler::Condition::positive, r9);", // IID9265 - "__ setb(Assembler::Condition::positive, r10);", // IID9266 - "__ setb(Assembler::Condition::positive, r11);", // IID9267 - "__ setb(Assembler::Condition::positive, r12);", // IID9268 - "__ setb(Assembler::Condition::positive, r13);", // IID9269 - "__ setb(Assembler::Condition::positive, r14);", // IID9270 - "__ setb(Assembler::Condition::positive, r15);", // IID9271 - "__ setb(Assembler::Condition::positive, r16);", // IID9272 - "__ setb(Assembler::Condition::positive, r17);", // IID9273 - "__ setb(Assembler::Condition::positive, r18);", // IID9274 - "__ setb(Assembler::Condition::positive, r19);", // IID9275 - "__ setb(Assembler::Condition::positive, r20);", // IID9276 - "__ setb(Assembler::Condition::positive, r21);", // IID9277 - "__ setb(Assembler::Condition::positive, r22);", // IID9278 - "__ setb(Assembler::Condition::positive, r23);", // IID9279 - "__ setb(Assembler::Condition::positive, r24);", // IID9280 - "__ setb(Assembler::Condition::positive, r25);", // IID9281 - "__ setb(Assembler::Condition::positive, r26);", // IID9282 - "__ setb(Assembler::Condition::positive, r27);", // IID9283 - "__ setb(Assembler::Condition::positive, r28);", // IID9284 - "__ setb(Assembler::Condition::positive, r29);", // IID9285 - "__ setb(Assembler::Condition::positive, r30);", // IID9286 - "__ setb(Assembler::Condition::positive, r31);", // IID9287 -#endif // _LP64 - "__ setb(Assembler::Condition::parity, rcx);", // IID9288 - "__ setb(Assembler::Condition::parity, rdx);", // IID9289 - "__ setb(Assembler::Condition::parity, rbx);", // IID9290 -#ifdef _LP64 - "__ setb(Assembler::Condition::parity, r8);", // IID9291 - "__ setb(Assembler::Condition::parity, r9);", // IID9292 - "__ setb(Assembler::Condition::parity, r10);", // IID9293 - "__ setb(Assembler::Condition::parity, r11);", // IID9294 - "__ setb(Assembler::Condition::parity, r12);", // IID9295 - "__ setb(Assembler::Condition::parity, r13);", // IID9296 - "__ setb(Assembler::Condition::parity, r14);", // IID9297 - "__ setb(Assembler::Condition::parity, r15);", // IID9298 - "__ setb(Assembler::Condition::parity, r16);", // IID9299 - "__ setb(Assembler::Condition::parity, r17);", // IID9300 - "__ setb(Assembler::Condition::parity, r18);", // IID9301 - "__ setb(Assembler::Condition::parity, r19);", // IID9302 - "__ setb(Assembler::Condition::parity, r20);", // IID9303 - "__ setb(Assembler::Condition::parity, r21);", // IID9304 - "__ setb(Assembler::Condition::parity, r22);", // IID9305 - "__ setb(Assembler::Condition::parity, r23);", // IID9306 - "__ setb(Assembler::Condition::parity, r24);", // IID9307 - "__ setb(Assembler::Condition::parity, r25);", // IID9308 - "__ setb(Assembler::Condition::parity, r26);", // IID9309 - "__ setb(Assembler::Condition::parity, r27);", // IID9310 - "__ setb(Assembler::Condition::parity, r28);", // IID9311 - "__ setb(Assembler::Condition::parity, r29);", // IID9312 - "__ setb(Assembler::Condition::parity, r30);", // IID9313 - "__ setb(Assembler::Condition::parity, r31);", // IID9314 -#endif // _LP64 - "__ setb(Assembler::Condition::noParity, rcx);", // IID9315 - "__ setb(Assembler::Condition::noParity, rdx);", // IID9316 - "__ setb(Assembler::Condition::noParity, rbx);", // IID9317 -#ifdef _LP64 - "__ setb(Assembler::Condition::noParity, r8);", // IID9318 - "__ setb(Assembler::Condition::noParity, r9);", // IID9319 - "__ setb(Assembler::Condition::noParity, r10);", // IID9320 - "__ setb(Assembler::Condition::noParity, r11);", // IID9321 - "__ setb(Assembler::Condition::noParity, r12);", // IID9322 - "__ setb(Assembler::Condition::noParity, r13);", // IID9323 - "__ setb(Assembler::Condition::noParity, r14);", // IID9324 - "__ setb(Assembler::Condition::noParity, r15);", // IID9325 - "__ setb(Assembler::Condition::noParity, r16);", // IID9326 - "__ setb(Assembler::Condition::noParity, r17);", // IID9327 - "__ setb(Assembler::Condition::noParity, r18);", // IID9328 - "__ setb(Assembler::Condition::noParity, r19);", // IID9329 - "__ setb(Assembler::Condition::noParity, r20);", // IID9330 - "__ setb(Assembler::Condition::noParity, r21);", // IID9331 - "__ setb(Assembler::Condition::noParity, r22);", // IID9332 - "__ setb(Assembler::Condition::noParity, r23);", // IID9333 - "__ setb(Assembler::Condition::noParity, r24);", // IID9334 - "__ setb(Assembler::Condition::noParity, r25);", // IID9335 - "__ setb(Assembler::Condition::noParity, r26);", // IID9336 - "__ setb(Assembler::Condition::noParity, r27);", // IID9337 - "__ setb(Assembler::Condition::noParity, r28);", // IID9338 - "__ setb(Assembler::Condition::noParity, r29);", // IID9339 - "__ setb(Assembler::Condition::noParity, r30);", // IID9340 - "__ setb(Assembler::Condition::noParity, r31);", // IID9341 -#endif // _LP64 - "__ setb(Assembler::Condition::less, rcx);", // IID9342 - "__ setb(Assembler::Condition::less, rdx);", // IID9343 - "__ setb(Assembler::Condition::less, rbx);", // IID9344 -#ifdef _LP64 - "__ setb(Assembler::Condition::less, r8);", // IID9345 - "__ setb(Assembler::Condition::less, r9);", // IID9346 - "__ setb(Assembler::Condition::less, r10);", // IID9347 - "__ setb(Assembler::Condition::less, r11);", // IID9348 - "__ setb(Assembler::Condition::less, r12);", // IID9349 - "__ setb(Assembler::Condition::less, r13);", // IID9350 - "__ setb(Assembler::Condition::less, r14);", // IID9351 - "__ setb(Assembler::Condition::less, r15);", // IID9352 - "__ setb(Assembler::Condition::less, r16);", // IID9353 - "__ setb(Assembler::Condition::less, r17);", // IID9354 - "__ setb(Assembler::Condition::less, r18);", // IID9355 - "__ setb(Assembler::Condition::less, r19);", // IID9356 - "__ setb(Assembler::Condition::less, r20);", // IID9357 - "__ setb(Assembler::Condition::less, r21);", // IID9358 - "__ setb(Assembler::Condition::less, r22);", // IID9359 - "__ setb(Assembler::Condition::less, r23);", // IID9360 - "__ setb(Assembler::Condition::less, r24);", // IID9361 - "__ setb(Assembler::Condition::less, r25);", // IID9362 - "__ setb(Assembler::Condition::less, r26);", // IID9363 - "__ setb(Assembler::Condition::less, r27);", // IID9364 - "__ setb(Assembler::Condition::less, r28);", // IID9365 - "__ setb(Assembler::Condition::less, r29);", // IID9366 - "__ setb(Assembler::Condition::less, r30);", // IID9367 - "__ setb(Assembler::Condition::less, r31);", // IID9368 -#endif // _LP64 - "__ setb(Assembler::Condition::greaterEqual, rcx);", // IID9369 - "__ setb(Assembler::Condition::greaterEqual, rdx);", // IID9370 - "__ setb(Assembler::Condition::greaterEqual, rbx);", // IID9371 -#ifdef _LP64 - "__ setb(Assembler::Condition::greaterEqual, r8);", // IID9372 - "__ setb(Assembler::Condition::greaterEqual, r9);", // IID9373 - "__ setb(Assembler::Condition::greaterEqual, r10);", // IID9374 - "__ setb(Assembler::Condition::greaterEqual, r11);", // IID9375 - "__ setb(Assembler::Condition::greaterEqual, r12);", // IID9376 - "__ setb(Assembler::Condition::greaterEqual, r13);", // IID9377 - "__ setb(Assembler::Condition::greaterEqual, r14);", // IID9378 - "__ setb(Assembler::Condition::greaterEqual, r15);", // IID9379 - "__ setb(Assembler::Condition::greaterEqual, r16);", // IID9380 - "__ setb(Assembler::Condition::greaterEqual, r17);", // IID9381 - "__ setb(Assembler::Condition::greaterEqual, r18);", // IID9382 - "__ setb(Assembler::Condition::greaterEqual, r19);", // IID9383 - "__ setb(Assembler::Condition::greaterEqual, r20);", // IID9384 - "__ setb(Assembler::Condition::greaterEqual, r21);", // IID9385 - "__ setb(Assembler::Condition::greaterEqual, r22);", // IID9386 - "__ setb(Assembler::Condition::greaterEqual, r23);", // IID9387 - "__ setb(Assembler::Condition::greaterEqual, r24);", // IID9388 - "__ setb(Assembler::Condition::greaterEqual, r25);", // IID9389 - "__ setb(Assembler::Condition::greaterEqual, r26);", // IID9390 - "__ setb(Assembler::Condition::greaterEqual, r27);", // IID9391 - "__ setb(Assembler::Condition::greaterEqual, r28);", // IID9392 - "__ setb(Assembler::Condition::greaterEqual, r29);", // IID9393 - "__ setb(Assembler::Condition::greaterEqual, r30);", // IID9394 - "__ setb(Assembler::Condition::greaterEqual, r31);", // IID9395 -#endif // _LP64 - "__ setb(Assembler::Condition::lessEqual, rcx);", // IID9396 - "__ setb(Assembler::Condition::lessEqual, rdx);", // IID9397 - "__ setb(Assembler::Condition::lessEqual, rbx);", // IID9398 -#ifdef _LP64 - "__ setb(Assembler::Condition::lessEqual, r8);", // IID9399 - "__ setb(Assembler::Condition::lessEqual, r9);", // IID9400 - "__ setb(Assembler::Condition::lessEqual, r10);", // IID9401 - "__ setb(Assembler::Condition::lessEqual, r11);", // IID9402 - "__ setb(Assembler::Condition::lessEqual, r12);", // IID9403 - "__ setb(Assembler::Condition::lessEqual, r13);", // IID9404 - "__ setb(Assembler::Condition::lessEqual, r14);", // IID9405 - "__ setb(Assembler::Condition::lessEqual, r15);", // IID9406 - "__ setb(Assembler::Condition::lessEqual, r16);", // IID9407 - "__ setb(Assembler::Condition::lessEqual, r17);", // IID9408 - "__ setb(Assembler::Condition::lessEqual, r18);", // IID9409 - "__ setb(Assembler::Condition::lessEqual, r19);", // IID9410 - "__ setb(Assembler::Condition::lessEqual, r20);", // IID9411 - "__ setb(Assembler::Condition::lessEqual, r21);", // IID9412 - "__ setb(Assembler::Condition::lessEqual, r22);", // IID9413 - "__ setb(Assembler::Condition::lessEqual, r23);", // IID9414 - "__ setb(Assembler::Condition::lessEqual, r24);", // IID9415 - "__ setb(Assembler::Condition::lessEqual, r25);", // IID9416 - "__ setb(Assembler::Condition::lessEqual, r26);", // IID9417 - "__ setb(Assembler::Condition::lessEqual, r27);", // IID9418 - "__ setb(Assembler::Condition::lessEqual, r28);", // IID9419 - "__ setb(Assembler::Condition::lessEqual, r29);", // IID9420 - "__ setb(Assembler::Condition::lessEqual, r30);", // IID9421 - "__ setb(Assembler::Condition::lessEqual, r31);", // IID9422 -#endif // _LP64 - "__ setb(Assembler::Condition::greater, rcx);", // IID9423 - "__ setb(Assembler::Condition::greater, rdx);", // IID9424 - "__ setb(Assembler::Condition::greater, rbx);", // IID9425 -#ifdef _LP64 - "__ setb(Assembler::Condition::greater, r8);", // IID9426 - "__ setb(Assembler::Condition::greater, r9);", // IID9427 - "__ setb(Assembler::Condition::greater, r10);", // IID9428 - "__ setb(Assembler::Condition::greater, r11);", // IID9429 - "__ setb(Assembler::Condition::greater, r12);", // IID9430 - "__ setb(Assembler::Condition::greater, r13);", // IID9431 - "__ setb(Assembler::Condition::greater, r14);", // IID9432 - "__ setb(Assembler::Condition::greater, r15);", // IID9433 - "__ setb(Assembler::Condition::greater, r16);", // IID9434 - "__ setb(Assembler::Condition::greater, r17);", // IID9435 - "__ setb(Assembler::Condition::greater, r18);", // IID9436 - "__ setb(Assembler::Condition::greater, r19);", // IID9437 - "__ setb(Assembler::Condition::greater, r20);", // IID9438 - "__ setb(Assembler::Condition::greater, r21);", // IID9439 - "__ setb(Assembler::Condition::greater, r22);", // IID9440 - "__ setb(Assembler::Condition::greater, r23);", // IID9441 - "__ setb(Assembler::Condition::greater, r24);", // IID9442 - "__ setb(Assembler::Condition::greater, r25);", // IID9443 - "__ setb(Assembler::Condition::greater, r26);", // IID9444 - "__ setb(Assembler::Condition::greater, r27);", // IID9445 - "__ setb(Assembler::Condition::greater, r28);", // IID9446 - "__ setb(Assembler::Condition::greater, r29);", // IID9447 - "__ setb(Assembler::Condition::greater, r30);", // IID9448 - "__ setb(Assembler::Condition::greater, r31);", // IID9449 -#endif // _LP64 - "__ divl(rcx);", // IID9450 - "__ divl(rdx);", // IID9451 - "__ divl(rbx);", // IID9452 -#ifdef _LP64 - "__ divl(r8);", // IID9453 - "__ divl(r9);", // IID9454 - "__ divl(r10);", // IID9455 - "__ divl(r11);", // IID9456 - "__ divl(r12);", // IID9457 - "__ divl(r13);", // IID9458 - "__ divl(r14);", // IID9459 - "__ divl(r15);", // IID9460 - "__ divl(r16);", // IID9461 - "__ divl(r17);", // IID9462 - "__ divl(r18);", // IID9463 - "__ divl(r19);", // IID9464 - "__ divl(r20);", // IID9465 - "__ divl(r21);", // IID9466 - "__ divl(r22);", // IID9467 - "__ divl(r23);", // IID9468 - "__ divl(r24);", // IID9469 - "__ divl(r25);", // IID9470 - "__ divl(r26);", // IID9471 - "__ divl(r27);", // IID9472 - "__ divl(r28);", // IID9473 - "__ divl(r29);", // IID9474 - "__ divl(r30);", // IID9475 - "__ divl(r31);", // IID9476 -#endif // _LP64 - "__ idivl(rcx);", // IID9477 - "__ idivl(rdx);", // IID9478 - "__ idivl(rbx);", // IID9479 -#ifdef _LP64 - "__ idivl(r8);", // IID9480 - "__ idivl(r9);", // IID9481 - "__ idivl(r10);", // IID9482 - "__ idivl(r11);", // IID9483 - "__ idivl(r12);", // IID9484 - "__ idivl(r13);", // IID9485 - "__ idivl(r14);", // IID9486 - "__ idivl(r15);", // IID9487 - "__ idivl(r16);", // IID9488 - "__ idivl(r17);", // IID9489 - "__ idivl(r18);", // IID9490 - "__ idivl(r19);", // IID9491 - "__ idivl(r20);", // IID9492 - "__ idivl(r21);", // IID9493 - "__ idivl(r22);", // IID9494 - "__ idivl(r23);", // IID9495 - "__ idivl(r24);", // IID9496 - "__ idivl(r25);", // IID9497 - "__ idivl(r26);", // IID9498 - "__ idivl(r27);", // IID9499 - "__ idivl(r28);", // IID9500 - "__ idivl(r29);", // IID9501 - "__ idivl(r30);", // IID9502 - "__ idivl(r31);", // IID9503 -#endif // _LP64 - "__ imull(rcx);", // IID9504 - "__ imull(rdx);", // IID9505 - "__ imull(rbx);", // IID9506 -#ifdef _LP64 - "__ imull(r8);", // IID9507 - "__ imull(r9);", // IID9508 - "__ imull(r10);", // IID9509 - "__ imull(r11);", // IID9510 - "__ imull(r12);", // IID9511 - "__ imull(r13);", // IID9512 - "__ imull(r14);", // IID9513 - "__ imull(r15);", // IID9514 - "__ imull(r16);", // IID9515 - "__ imull(r17);", // IID9516 - "__ imull(r18);", // IID9517 - "__ imull(r19);", // IID9518 - "__ imull(r20);", // IID9519 - "__ imull(r21);", // IID9520 - "__ imull(r22);", // IID9521 - "__ imull(r23);", // IID9522 - "__ imull(r24);", // IID9523 - "__ imull(r25);", // IID9524 - "__ imull(r26);", // IID9525 - "__ imull(r27);", // IID9526 - "__ imull(r28);", // IID9527 - "__ imull(r29);", // IID9528 - "__ imull(r30);", // IID9529 - "__ imull(r31);", // IID9530 -#endif // _LP64 - "__ mull(rcx);", // IID9531 - "__ mull(rdx);", // IID9532 - "__ mull(rbx);", // IID9533 -#ifdef _LP64 - "__ mull(r8);", // IID9534 - "__ mull(r9);", // IID9535 - "__ mull(r10);", // IID9536 - "__ mull(r11);", // IID9537 - "__ mull(r12);", // IID9538 - "__ mull(r13);", // IID9539 - "__ mull(r14);", // IID9540 - "__ mull(r15);", // IID9541 - "__ mull(r16);", // IID9542 - "__ mull(r17);", // IID9543 - "__ mull(r18);", // IID9544 - "__ mull(r19);", // IID9545 - "__ mull(r20);", // IID9546 - "__ mull(r21);", // IID9547 - "__ mull(r22);", // IID9548 - "__ mull(r23);", // IID9549 - "__ mull(r24);", // IID9550 - "__ mull(r25);", // IID9551 - "__ mull(r26);", // IID9552 - "__ mull(r27);", // IID9553 - "__ mull(r28);", // IID9554 - "__ mull(r29);", // IID9555 - "__ mull(r30);", // IID9556 - "__ mull(r31);", // IID9557 -#endif // _LP64 - "__ negl(rcx);", // IID9558 - "__ negl(rdx);", // IID9559 - "__ negl(rbx);", // IID9560 -#ifdef _LP64 - "__ negl(r8);", // IID9561 - "__ negl(r9);", // IID9562 - "__ negl(r10);", // IID9563 - "__ negl(r11);", // IID9564 - "__ negl(r12);", // IID9565 - "__ negl(r13);", // IID9566 - "__ negl(r14);", // IID9567 - "__ negl(r15);", // IID9568 - "__ negl(r16);", // IID9569 - "__ negl(r17);", // IID9570 - "__ negl(r18);", // IID9571 - "__ negl(r19);", // IID9572 - "__ negl(r20);", // IID9573 - "__ negl(r21);", // IID9574 - "__ negl(r22);", // IID9575 - "__ negl(r23);", // IID9576 - "__ negl(r24);", // IID9577 - "__ negl(r25);", // IID9578 - "__ negl(r26);", // IID9579 - "__ negl(r27);", // IID9580 - "__ negl(r28);", // IID9581 - "__ negl(r29);", // IID9582 - "__ negl(r30);", // IID9583 - "__ negl(r31);", // IID9584 -#endif // _LP64 - "__ notl(rcx);", // IID9585 - "__ notl(rdx);", // IID9586 - "__ notl(rbx);", // IID9587 -#ifdef _LP64 - "__ notl(r8);", // IID9588 - "__ notl(r9);", // IID9589 - "__ notl(r10);", // IID9590 - "__ notl(r11);", // IID9591 - "__ notl(r12);", // IID9592 - "__ notl(r13);", // IID9593 - "__ notl(r14);", // IID9594 - "__ notl(r15);", // IID9595 - "__ notl(r16);", // IID9596 - "__ notl(r17);", // IID9597 - "__ notl(r18);", // IID9598 - "__ notl(r19);", // IID9599 - "__ notl(r20);", // IID9600 - "__ notl(r21);", // IID9601 - "__ notl(r22);", // IID9602 - "__ notl(r23);", // IID9603 - "__ notl(r24);", // IID9604 - "__ notl(r25);", // IID9605 - "__ notl(r26);", // IID9606 - "__ notl(r27);", // IID9607 - "__ notl(r28);", // IID9608 - "__ notl(r29);", // IID9609 - "__ notl(r30);", // IID9610 - "__ notl(r31);", // IID9611 -#endif // _LP64 - "__ roll(rcx);", // IID9612 - "__ roll(rdx);", // IID9613 - "__ roll(rbx);", // IID9614 -#ifdef _LP64 - "__ roll(r8);", // IID9615 - "__ roll(r9);", // IID9616 - "__ roll(r10);", // IID9617 - "__ roll(r11);", // IID9618 - "__ roll(r12);", // IID9619 - "__ roll(r13);", // IID9620 - "__ roll(r14);", // IID9621 - "__ roll(r15);", // IID9622 - "__ roll(r16);", // IID9623 - "__ roll(r17);", // IID9624 - "__ roll(r18);", // IID9625 - "__ roll(r19);", // IID9626 - "__ roll(r20);", // IID9627 - "__ roll(r21);", // IID9628 - "__ roll(r22);", // IID9629 - "__ roll(r23);", // IID9630 - "__ roll(r24);", // IID9631 - "__ roll(r25);", // IID9632 - "__ roll(r26);", // IID9633 - "__ roll(r27);", // IID9634 - "__ roll(r28);", // IID9635 - "__ roll(r29);", // IID9636 - "__ roll(r30);", // IID9637 - "__ roll(r31);", // IID9638 -#endif // _LP64 - "__ rorl(rcx);", // IID9639 - "__ rorl(rdx);", // IID9640 - "__ rorl(rbx);", // IID9641 -#ifdef _LP64 - "__ rorl(r8);", // IID9642 - "__ rorl(r9);", // IID9643 - "__ rorl(r10);", // IID9644 - "__ rorl(r11);", // IID9645 - "__ rorl(r12);", // IID9646 - "__ rorl(r13);", // IID9647 - "__ rorl(r14);", // IID9648 - "__ rorl(r15);", // IID9649 - "__ rorl(r16);", // IID9650 - "__ rorl(r17);", // IID9651 - "__ rorl(r18);", // IID9652 - "__ rorl(r19);", // IID9653 - "__ rorl(r20);", // IID9654 - "__ rorl(r21);", // IID9655 - "__ rorl(r22);", // IID9656 - "__ rorl(r23);", // IID9657 - "__ rorl(r24);", // IID9658 - "__ rorl(r25);", // IID9659 - "__ rorl(r26);", // IID9660 - "__ rorl(r27);", // IID9661 - "__ rorl(r28);", // IID9662 - "__ rorl(r29);", // IID9663 - "__ rorl(r30);", // IID9664 - "__ rorl(r31);", // IID9665 -#endif // _LP64 - "__ sarl(rcx);", // IID9666 - "__ sarl(rdx);", // IID9667 - "__ sarl(rbx);", // IID9668 -#ifdef _LP64 - "__ sarl(r8);", // IID9669 - "__ sarl(r9);", // IID9670 - "__ sarl(r10);", // IID9671 - "__ sarl(r11);", // IID9672 - "__ sarl(r12);", // IID9673 - "__ sarl(r13);", // IID9674 - "__ sarl(r14);", // IID9675 - "__ sarl(r15);", // IID9676 - "__ sarl(r16);", // IID9677 - "__ sarl(r17);", // IID9678 - "__ sarl(r18);", // IID9679 - "__ sarl(r19);", // IID9680 - "__ sarl(r20);", // IID9681 - "__ sarl(r21);", // IID9682 - "__ sarl(r22);", // IID9683 - "__ sarl(r23);", // IID9684 - "__ sarl(r24);", // IID9685 - "__ sarl(r25);", // IID9686 - "__ sarl(r26);", // IID9687 - "__ sarl(r27);", // IID9688 - "__ sarl(r28);", // IID9689 - "__ sarl(r29);", // IID9690 - "__ sarl(r30);", // IID9691 - "__ sarl(r31);", // IID9692 -#endif // _LP64 - "__ sall(rcx);", // IID9693 - "__ sall(rdx);", // IID9694 - "__ sall(rbx);", // IID9695 -#ifdef _LP64 - "__ sall(r8);", // IID9696 - "__ sall(r9);", // IID9697 - "__ sall(r10);", // IID9698 - "__ sall(r11);", // IID9699 - "__ sall(r12);", // IID9700 - "__ sall(r13);", // IID9701 - "__ sall(r14);", // IID9702 - "__ sall(r15);", // IID9703 - "__ sall(r16);", // IID9704 - "__ sall(r17);", // IID9705 - "__ sall(r18);", // IID9706 - "__ sall(r19);", // IID9707 - "__ sall(r20);", // IID9708 - "__ sall(r21);", // IID9709 - "__ sall(r22);", // IID9710 - "__ sall(r23);", // IID9711 - "__ sall(r24);", // IID9712 - "__ sall(r25);", // IID9713 - "__ sall(r26);", // IID9714 - "__ sall(r27);", // IID9715 - "__ sall(r28);", // IID9716 - "__ sall(r29);", // IID9717 - "__ sall(r30);", // IID9718 - "__ sall(r31);", // IID9719 -#endif // _LP64 - "__ shll(rcx);", // IID9720 - "__ shll(rdx);", // IID9721 - "__ shll(rbx);", // IID9722 -#ifdef _LP64 - "__ shll(r8);", // IID9723 - "__ shll(r9);", // IID9724 - "__ shll(r10);", // IID9725 - "__ shll(r11);", // IID9726 - "__ shll(r12);", // IID9727 - "__ shll(r13);", // IID9728 - "__ shll(r14);", // IID9729 - "__ shll(r15);", // IID9730 - "__ shll(r16);", // IID9731 - "__ shll(r17);", // IID9732 - "__ shll(r18);", // IID9733 - "__ shll(r19);", // IID9734 - "__ shll(r20);", // IID9735 - "__ shll(r21);", // IID9736 - "__ shll(r22);", // IID9737 - "__ shll(r23);", // IID9738 - "__ shll(r24);", // IID9739 - "__ shll(r25);", // IID9740 - "__ shll(r26);", // IID9741 - "__ shll(r27);", // IID9742 - "__ shll(r28);", // IID9743 - "__ shll(r29);", // IID9744 - "__ shll(r30);", // IID9745 - "__ shll(r31);", // IID9746 -#endif // _LP64 - "__ shrl(rcx);", // IID9747 - "__ shrl(rdx);", // IID9748 - "__ shrl(rbx);", // IID9749 -#ifdef _LP64 - "__ shrl(r8);", // IID9750 - "__ shrl(r9);", // IID9751 - "__ shrl(r10);", // IID9752 - "__ shrl(r11);", // IID9753 - "__ shrl(r12);", // IID9754 - "__ shrl(r13);", // IID9755 - "__ shrl(r14);", // IID9756 - "__ shrl(r15);", // IID9757 - "__ shrl(r16);", // IID9758 - "__ shrl(r17);", // IID9759 - "__ shrl(r18);", // IID9760 - "__ shrl(r19);", // IID9761 - "__ shrl(r20);", // IID9762 - "__ shrl(r21);", // IID9763 - "__ shrl(r22);", // IID9764 - "__ shrl(r23);", // IID9765 - "__ shrl(r24);", // IID9766 - "__ shrl(r25);", // IID9767 - "__ shrl(r26);", // IID9768 - "__ shrl(r27);", // IID9769 - "__ shrl(r28);", // IID9770 - "__ shrl(r29);", // IID9771 - "__ shrl(r30);", // IID9772 - "__ shrl(r31);", // IID9773 -#endif // _LP64 - "__ incrementl(rcx);", // IID9774 - "__ incrementl(rdx);", // IID9775 - "__ incrementl(rbx);", // IID9776 -#ifdef _LP64 - "__ incrementl(r8);", // IID9777 - "__ incrementl(r9);", // IID9778 - "__ incrementl(r10);", // IID9779 - "__ incrementl(r11);", // IID9780 - "__ incrementl(r12);", // IID9781 - "__ incrementl(r13);", // IID9782 - "__ incrementl(r14);", // IID9783 - "__ incrementl(r15);", // IID9784 - "__ incrementl(r16);", // IID9785 - "__ incrementl(r17);", // IID9786 - "__ incrementl(r18);", // IID9787 - "__ incrementl(r19);", // IID9788 - "__ incrementl(r20);", // IID9789 - "__ incrementl(r21);", // IID9790 - "__ incrementl(r22);", // IID9791 - "__ incrementl(r23);", // IID9792 - "__ incrementl(r24);", // IID9793 - "__ incrementl(r25);", // IID9794 - "__ incrementl(r26);", // IID9795 - "__ incrementl(r27);", // IID9796 - "__ incrementl(r28);", // IID9797 - "__ incrementl(r29);", // IID9798 - "__ incrementl(r30);", // IID9799 - "__ incrementl(r31);", // IID9800 -#endif // _LP64 - "__ decrementl(rcx);", // IID9801 - "__ decrementl(rdx);", // IID9802 - "__ decrementl(rbx);", // IID9803 -#ifdef _LP64 - "__ decrementl(r8);", // IID9804 - "__ decrementl(r9);", // IID9805 - "__ decrementl(r10);", // IID9806 - "__ decrementl(r11);", // IID9807 - "__ decrementl(r12);", // IID9808 - "__ decrementl(r13);", // IID9809 - "__ decrementl(r14);", // IID9810 - "__ decrementl(r15);", // IID9811 - "__ decrementl(r16);", // IID9812 - "__ decrementl(r17);", // IID9813 - "__ decrementl(r18);", // IID9814 - "__ decrementl(r19);", // IID9815 - "__ decrementl(r20);", // IID9816 - "__ decrementl(r21);", // IID9817 - "__ decrementl(r22);", // IID9818 - "__ decrementl(r23);", // IID9819 - "__ decrementl(r24);", // IID9820 - "__ decrementl(r25);", // IID9821 - "__ decrementl(r26);", // IID9822 - "__ decrementl(r27);", // IID9823 - "__ decrementl(r28);", // IID9824 - "__ decrementl(r29);", // IID9825 - "__ decrementl(r30);", // IID9826 - "__ decrementl(r31);", // IID9827 -#endif // _LP64 - "__ mull(Address(rcx, rdx, (Address::ScaleFactor)3, -0x3df2bfc7));", // IID9828 - "__ mull(Address(rdx, rbx, (Address::ScaleFactor)2, -0x5cea8ac));", // IID9829 -#ifdef _LP64 - "__ mull(Address(rbx, +0x347dec3));", // IID9830 - "__ mull(Address(r8, r9, (Address::ScaleFactor)0, -0x68f66a6b));", // IID9831 - "__ mull(Address(r9, r10, (Address::ScaleFactor)2, -0x10b8d5a3));", // IID9832 - "__ mull(Address(r10, +0x6f9fc094));", // IID9833 - "__ mull(Address(r11, r12, (Address::ScaleFactor)0, -0x711dc3ad));", // IID9834 - "__ mull(Address(r12, r13, (Address::ScaleFactor)1, -0x734a56));", // IID9835 - "__ mull(Address(r13, r14, (Address::ScaleFactor)3, -0x5f88dde7));", // IID9836 - "__ mull(Address(r14, r15, (Address::ScaleFactor)3, +0x4722c741));", // IID9837 - "__ mull(Address(r15, r16, (Address::ScaleFactor)3, +0x57e24e00));", // IID9838 - "__ mull(Address(r16, r17, (Address::ScaleFactor)2, -0x6a865b41));", // IID9839 - "__ mull(Address(r17, r18, (Address::ScaleFactor)3, +0x61c7608));", // IID9840 - "__ mull(Address(r18, r19, (Address::ScaleFactor)0, -0x6eb8db8d));", // IID9841 - "__ mull(Address(r19, r20, (Address::ScaleFactor)1, +0x6f50889e));", // IID9842 - "__ mull(Address(r20, r21, (Address::ScaleFactor)0, +0x3de3fcb0));", // IID9843 - "__ mull(Address(r21, r22, (Address::ScaleFactor)0, +0x3ff1f288));", // IID9844 - "__ mull(Address(r22, r23, (Address::ScaleFactor)0, +0x147a7dbc));", // IID9845 - "__ mull(Address(r23, r24, (Address::ScaleFactor)3, -0x320e8d6a));", // IID9846 - "__ mull(Address(r24, r25, (Address::ScaleFactor)0, -0x79876f6b));", // IID9847 - "__ mull(Address(r25, r26, (Address::ScaleFactor)1, -0x2fd29871));", // IID9848 - "__ mull(Address(r26, r27, (Address::ScaleFactor)1, +0x1afb018d));", // IID9849 - "__ mull(Address(r27, r28, (Address::ScaleFactor)2, +0x4d044dfc));", // IID9850 - "__ mull(Address(r28, r29, (Address::ScaleFactor)0, +0x1530f3ad));", // IID9851 - "__ mull(Address(r29, r30, (Address::ScaleFactor)0, +0xeb076f2));", // IID9852 - "__ mull(Address(r30, r31, (Address::ScaleFactor)3, -0x782b0085));", // IID9853 - "__ mull(Address(r31, rcx, (Address::ScaleFactor)2, -0x10c89837));", // IID9854 -#endif // _LP64 - "__ negl(Address(rcx, rdx, (Address::ScaleFactor)3, -0x58ce529e));", // IID9855 - "__ negl(Address(rdx, +0x5ab7f655));", // IID9856 -#ifdef _LP64 - "__ negl(Address(rbx, r8, (Address::ScaleFactor)1, -0x1d07ad5b));", // IID9857 - "__ negl(Address(r8, r9, (Address::ScaleFactor)3, -0x26560885));", // IID9858 - "__ negl(Address(r9, r10, (Address::ScaleFactor)1, +0x3641fdb9));", // IID9859 - "__ negl(Address(r10, r11, (Address::ScaleFactor)1, +0x490749fb));", // IID9860 - "__ negl(Address(r11, r12, (Address::ScaleFactor)1, +0x2df53f96));", // IID9861 - "__ negl(Address(r12, r13, (Address::ScaleFactor)3, -0x26ba64f2));", // IID9862 - "__ negl(Address(r13, r14, (Address::ScaleFactor)3, -0x4b4358ba));", // IID9863 - "__ negl(Address(r14, r15, (Address::ScaleFactor)2, +0x31c6340a));", // IID9864 - "__ negl(Address(r15, r16, (Address::ScaleFactor)3, +0x591014e4));", // IID9865 - "__ negl(Address(r16, -0x2ad92ed1));", // IID9866 - "__ negl(Address(r17, +0x9538e));", // IID9867 - "__ negl(Address(r18, r19, (Address::ScaleFactor)3, -0x4b1a1378));", // IID9868 - "__ negl(Address(r19, r20, (Address::ScaleFactor)2, -0x3f0ceb96));", // IID9869 - "__ negl(Address(r20, r21, (Address::ScaleFactor)1, -0x3228931a));", // IID9870 - "__ negl(Address(r21, r22, (Address::ScaleFactor)3, +0x4f832d6f));", // IID9871 - "__ negl(Address(r22, r23, (Address::ScaleFactor)2, +0x21ba6afb));", // IID9872 - "__ negl(Address(r23, r24, (Address::ScaleFactor)1, +0x31a8215a));", // IID9873 - "__ negl(Address(r24, -0x400e7d1f));", // IID9874 - "__ negl(Address(r25, r26, (Address::ScaleFactor)2, +0x26e75b99));", // IID9875 - "__ negl(Address(r26, r27, (Address::ScaleFactor)1, -0x5798a11d));", // IID9876 - "__ negl(Address(r27, r28, (Address::ScaleFactor)2, -0x74f15e13));", // IID9877 - "__ negl(Address(r28, r29, (Address::ScaleFactor)1, -0x32a2882));", // IID9878 - "__ negl(Address(r29, +0x5033c0c8));", // IID9879 - "__ negl(Address(r30, r31, (Address::ScaleFactor)2, +0x7323649e));", // IID9880 - "__ negl(Address(r31, rcx, (Address::ScaleFactor)2, +0x190f3c36));", // IID9881 -#endif // _LP64 - "__ sarl(Address(rcx, -0x71b58116));", // IID9882 - "__ sarl(Address(rdx, rbx, (Address::ScaleFactor)2, -0x5a6a80d7));", // IID9883 -#ifdef _LP64 - "__ sarl(Address(rbx, r8, (Address::ScaleFactor)0, -0x230c22c3));", // IID9884 - "__ sarl(Address(r8, r9, (Address::ScaleFactor)0, -0x1f32082));", // IID9885 - "__ sarl(Address(r9, -0x5a730724));", // IID9886 - "__ sarl(Address(r10, r11, (Address::ScaleFactor)1, -0x49589fa1));", // IID9887 - "__ sarl(Address(r11, r12, (Address::ScaleFactor)0, +0x42de7e5a));", // IID9888 - "__ sarl(Address(r12, r13, (Address::ScaleFactor)3, +0x56f25420));", // IID9889 - "__ sarl(Address(r13, r14, (Address::ScaleFactor)0, -0x4ab8224));", // IID9890 - "__ sarl(Address(r14, r15, (Address::ScaleFactor)3, +0x10e7949f));", // IID9891 - "__ sarl(Address(r15, r16, (Address::ScaleFactor)1, +0x67be6170));", // IID9892 - "__ sarl(Address(r16, r17, (Address::ScaleFactor)1, -0x7c10b541));", // IID9893 - "__ sarl(Address(r17, r18, (Address::ScaleFactor)0, +0x253afde9));", // IID9894 - "__ sarl(Address(r18, r19, (Address::ScaleFactor)1, -0x62ec1761));", // IID9895 - "__ sarl(Address(r19, r20, (Address::ScaleFactor)3, -0x68fa3500));", // IID9896 - "__ sarl(Address(r20, r21, (Address::ScaleFactor)0, -0x49b416f6));", // IID9897 - "__ sarl(Address(r21, +0x10fea502));", // IID9898 - "__ sarl(Address(r22, +0x16bfc933));", // IID9899 - "__ sarl(Address(r23, r24, (Address::ScaleFactor)1, +0x6617ec3));", // IID9900 - "__ sarl(Address(r24, r25, (Address::ScaleFactor)2, +0x6e02093c));", // IID9901 - "__ sarl(Address(r25, +0x2e0b016));", // IID9902 - "__ sarl(Address(r26, +0x623c5471));", // IID9903 - "__ sarl(Address(r27, r28, (Address::ScaleFactor)2, -0xfd9e447));", // IID9904 - "__ sarl(Address(r28, r29, (Address::ScaleFactor)2, -0x7b056085));", // IID9905 - "__ sarl(Address(r29, r30, (Address::ScaleFactor)2, +0x2f254b28));", // IID9906 - "__ sarl(Address(r30, r31, (Address::ScaleFactor)2, +0x7b0fa4a4));", // IID9907 - "__ sarl(Address(r31, rcx, (Address::ScaleFactor)0, -0x6c989934));", // IID9908 -#endif // _LP64 - "__ sall(Address(rcx, rdx, (Address::ScaleFactor)0, +0x2838adf));", // IID9909 - "__ sall(Address(rdx, -0x47ad0a19));", // IID9910 -#ifdef _LP64 - "__ sall(Address(rbx, r8, (Address::ScaleFactor)2, +0x3d8e5ed3));", // IID9911 - "__ sall(Address(r8, r9, (Address::ScaleFactor)3, +0x2f0bc22d));", // IID9912 - "__ sall(Address(r9, r10, (Address::ScaleFactor)1, +0x14ea0e7));", // IID9913 - "__ sall(Address(r10, r11, (Address::ScaleFactor)0, +0x3ad9c898));", // IID9914 - "__ sall(Address(r11, +0x7b472cc8));", // IID9915 - "__ sall(Address(r12, r13, (Address::ScaleFactor)2, -0x6003a15));", // IID9916 - "__ sall(Address(r13, r14, (Address::ScaleFactor)1, +0x15604014));", // IID9917 - "__ sall(Address(r14, -0x19837bc3));", // IID9918 - "__ sall(Address(r15, -0x15b06804));", // IID9919 - "__ sall(Address(r16, -0x3efd9d36));", // IID9920 - "__ sall(Address(r17, r18, (Address::ScaleFactor)3, -0x148eafef));", // IID9921 - "__ sall(Address(r18, r19, (Address::ScaleFactor)1, +0x28d50261));", // IID9922 - "__ sall(Address(r19, r20, (Address::ScaleFactor)1, -0x295f79ad));", // IID9923 - "__ sall(Address(r20, r21, (Address::ScaleFactor)2, -0x420e0872));", // IID9924 - "__ sall(Address(r21, +0x3b52d1ff));", // IID9925 - "__ sall(Address(r22, r23, (Address::ScaleFactor)0, +0x3c1aaeb2));", // IID9926 - "__ sall(Address(r23, r24, (Address::ScaleFactor)1, -0x7462e507));", // IID9927 - "__ sall(Address(r24, r25, (Address::ScaleFactor)1, +0x5ee2116e));", // IID9928 - "__ sall(Address(r25, r26, (Address::ScaleFactor)0, -0x47316676));", // IID9929 - "__ sall(Address(r26, +0x356024d3));", // IID9930 - "__ sall(Address(r27, r28, (Address::ScaleFactor)3, +0x708bc069));", // IID9931 - "__ sall(Address(r28, r29, (Address::ScaleFactor)2, +0x494d5c5f));", // IID9932 - "__ sall(Address(r29, r30, (Address::ScaleFactor)1, +0x6ddbf905));", // IID9933 - "__ sall(Address(r30, r31, (Address::ScaleFactor)2, +0x4e0c618d));", // IID9934 - "__ sall(Address(r31, rcx, (Address::ScaleFactor)1, +0x4ca33044));", // IID9935 -#endif // _LP64 - "__ shrl(Address(rcx, rdx, (Address::ScaleFactor)3, -0x70f4bafd));", // IID9936 - "__ shrl(Address(rdx, rbx, (Address::ScaleFactor)0, +0x2e2e83e1));", // IID9937 -#ifdef _LP64 - "__ shrl(Address(rbx, r8, (Address::ScaleFactor)3, +0x12b7973b));", // IID9938 - "__ shrl(Address(r8, r9, (Address::ScaleFactor)2, -0x1a0b3ee));", // IID9939 - "__ shrl(Address(r9, -0x5d9befb5));", // IID9940 - "__ shrl(Address(r10, r11, (Address::ScaleFactor)2, -0xb79e1cf));", // IID9941 - "__ shrl(Address(r11, -0x1b042a2a));", // IID9942 - "__ shrl(Address(r12, +0x1cdbfb58));", // IID9943 - "__ shrl(Address(r13, r14, (Address::ScaleFactor)2, -0x3e1ee2ae));", // IID9944 - "__ shrl(Address(r14, r15, (Address::ScaleFactor)2, +0x3136c9ff));", // IID9945 - "__ shrl(Address(r15, r16, (Address::ScaleFactor)0, +0x6c9d9134));", // IID9946 - "__ shrl(Address(r16, r17, (Address::ScaleFactor)0, -0x77348098));", // IID9947 - "__ shrl(Address(r17, r18, (Address::ScaleFactor)0, -0x4471442d));", // IID9948 - "__ shrl(Address(r18, r19, (Address::ScaleFactor)0, +0x310042ee));", // IID9949 - "__ shrl(Address(r19, r20, (Address::ScaleFactor)1, -0x2213480a));", // IID9950 - "__ shrl(Address(r20, r21, (Address::ScaleFactor)1, -0x4140b4c0));", // IID9951 - "__ shrl(Address(r21, r22, (Address::ScaleFactor)2, -0x20c1ef41));", // IID9952 - "__ shrl(Address(r22, r23, (Address::ScaleFactor)2, -0x781e8d46));", // IID9953 - "__ shrl(Address(r23, r24, (Address::ScaleFactor)3, -0x8766308));", // IID9954 - "__ shrl(Address(r24, r25, (Address::ScaleFactor)3, +0x209fe273));", // IID9955 - "__ shrl(Address(r25, r26, (Address::ScaleFactor)1, -0x5ef42e15));", // IID9956 - "__ shrl(Address(r26, r27, (Address::ScaleFactor)0, -0x2191c3e2));", // IID9957 - "__ shrl(Address(r27, r28, (Address::ScaleFactor)3, -0x47b6d9bd));", // IID9958 - "__ shrl(Address(r28, -0x100cda00));", // IID9959 - "__ shrl(Address(r29, r30, (Address::ScaleFactor)3, +0x6f42c1fe));", // IID9960 - "__ shrl(Address(r30, r31, (Address::ScaleFactor)3, -0x597239e7));", // IID9961 - "__ shrl(Address(r31, rcx, (Address::ScaleFactor)2, +0x340bd7d3));", // IID9962 -#endif // _LP64 - "__ incrementl(Address(rcx, rdx, (Address::ScaleFactor)0, +0x1c39c1af));", // IID9963 - "__ incrementl(Address(rdx, rbx, (Address::ScaleFactor)1, +0x12c7331));", // IID9964 -#ifdef _LP64 - "__ incrementl(Address(rbx, r8, (Address::ScaleFactor)3, +0x4e008b11));", // IID9965 - "__ incrementl(Address(r8, -0x2db09cf5));", // IID9966 - "__ incrementl(Address(r9, -0x47c8730c));", // IID9967 - "__ incrementl(Address(r10, r11, (Address::ScaleFactor)1, -0x6d09de86));", // IID9968 - "__ incrementl(Address(r11, r12, (Address::ScaleFactor)0, +0x3783aec));", // IID9969 - "__ incrementl(Address(r12, r13, (Address::ScaleFactor)2, +0x3163e523));", // IID9970 - "__ incrementl(Address(r13, r14, (Address::ScaleFactor)2, +0x7ae2bbb));", // IID9971 - "__ incrementl(Address(r14, r15, (Address::ScaleFactor)3, +0x2e7c672));", // IID9972 - "__ incrementl(Address(r15, +0x7cffca19));", // IID9973 - "__ incrementl(Address(r16, r17, (Address::ScaleFactor)1, +0x72db5fdf));", // IID9974 - "__ incrementl(Address(r17, r18, (Address::ScaleFactor)1, +0x2e535ac8));", // IID9975 - "__ incrementl(Address(r18, r19, (Address::ScaleFactor)1, +0x219eb850));", // IID9976 - "__ incrementl(Address(r19, r20, (Address::ScaleFactor)1, +0x7860d672));", // IID9977 - "__ incrementl(Address(r20, r21, (Address::ScaleFactor)1, +0xbac37cf));", // IID9978 - "__ incrementl(Address(r21, r22, (Address::ScaleFactor)3, +0x65d30418));", // IID9979 - "__ incrementl(Address(r22, r23, (Address::ScaleFactor)3, +0xb0500e4));", // IID9980 - "__ incrementl(Address(r23, r24, (Address::ScaleFactor)3, +0x693141a2));", // IID9981 - "__ incrementl(Address(r24, r25, (Address::ScaleFactor)3, -0x39626ee2));", // IID9982 - "__ incrementl(Address(r25, r26, (Address::ScaleFactor)2, -0x74663728));", // IID9983 - "__ incrementl(Address(r26, r27, (Address::ScaleFactor)0, +0x414843f8));", // IID9984 - "__ incrementl(Address(r27, r28, (Address::ScaleFactor)2, +0x681e786));", // IID9985 - "__ incrementl(Address(r28, +0x2dff5f9c));", // IID9986 - "__ incrementl(Address(r29, -0x71f0f393));", // IID9987 - "__ incrementl(Address(r30, r31, (Address::ScaleFactor)2, +0x1b0f9485));", // IID9988 - "__ incrementl(Address(r31, rcx, (Address::ScaleFactor)3, -0x3138fa16));", // IID9989 -#endif // _LP64 - "__ decrementl(Address(rcx, rdx, (Address::ScaleFactor)1, +0x5540db42));", // IID9990 - "__ decrementl(Address(rdx, rbx, (Address::ScaleFactor)3, -0x337d8925));", // IID9991 -#ifdef _LP64 - "__ decrementl(Address(rbx, r8, (Address::ScaleFactor)2, +0x141f5af0));", // IID9992 - "__ decrementl(Address(r8, r9, (Address::ScaleFactor)2, +0x645d46b));", // IID9993 - "__ decrementl(Address(r9, r10, (Address::ScaleFactor)1, +0x3054db2d));", // IID9994 - "__ decrementl(Address(r10, r11, (Address::ScaleFactor)2, +0x323644e5));", // IID9995 - "__ decrementl(Address(r11, +0x6d3be720));", // IID9996 - "__ decrementl(Address(r12, r13, (Address::ScaleFactor)2, -0x31cdb612));", // IID9997 - "__ decrementl(Address(r13, r14, (Address::ScaleFactor)3, -0x31fdc892));", // IID9998 - "__ decrementl(Address(r14, r15, (Address::ScaleFactor)3, +0x611ce9ac));", // IID9999 - "__ decrementl(Address(r15, r16, (Address::ScaleFactor)2, +0x3ca81445));", // IID10000 - "__ decrementl(Address(r16, r17, (Address::ScaleFactor)1, -0x747674f4));", // IID10001 - "__ decrementl(Address(r17, r18, (Address::ScaleFactor)1, -0x9163f72));", // IID10002 - "__ decrementl(Address(r18, r19, (Address::ScaleFactor)2, +0x20c69711));", // IID10003 - "__ decrementl(Address(r19, r20, (Address::ScaleFactor)2, +0x640cdf2d));", // IID10004 - "__ decrementl(Address(r20, r21, (Address::ScaleFactor)0, +0x767843d6));", // IID10005 - "__ decrementl(Address(r21, r22, (Address::ScaleFactor)2, +0x7f5d10a0));", // IID10006 - "__ decrementl(Address(r22, r23, (Address::ScaleFactor)2, -0x481fba5c));", // IID10007 - "__ decrementl(Address(r23, r24, (Address::ScaleFactor)0, -0xaa809c2));", // IID10008 - "__ decrementl(Address(r24, r25, (Address::ScaleFactor)3, -0x58ace864));", // IID10009 - "__ decrementl(Address(r25, r26, (Address::ScaleFactor)2, +0x69ad2593));", // IID10010 - "__ decrementl(Address(r26, r27, (Address::ScaleFactor)0, +0xcd048eb));", // IID10011 - "__ decrementl(Address(r27, r28, (Address::ScaleFactor)1, +0x7ae5857));", // IID10012 - "__ decrementl(Address(r28, -0x2cdc3147));", // IID10013 - "__ decrementl(Address(r29, r30, (Address::ScaleFactor)1, -0x302627a9));", // IID10014 - "__ decrementl(Address(r30, r31, (Address::ScaleFactor)3, -0x2f388b4b));", // IID10015 - "__ decrementl(Address(r31, rcx, (Address::ScaleFactor)1, -0x31a65b2c));", // IID10016 -#endif // _LP64 - "__ imull(rcx, Address(rdx, -0x3cbfb97c), 1);", // IID10017 - "__ imull(rcx, Address(rdx, rbx, (Address::ScaleFactor)0, -0x646821ca), 16);", // IID10018 - "__ imull(rcx, Address(rdx, rbx, (Address::ScaleFactor)2, +0xff4d71c), 256);", // IID10019 - "__ imull(rcx, Address(rdx, rbx, (Address::ScaleFactor)2, -0x476b5e83), 4096);", // IID10020 - "__ imull(rcx, Address(rdx, rbx, (Address::ScaleFactor)3, -0x4e616667), 65536);", // IID10021 - "__ imull(rcx, Address(rdx, +0x5c1561e9), 1048576);", // IID10022 - "__ imull(rcx, Address(rdx, rbx, (Address::ScaleFactor)3, -0x3f953b5d), 16777216);", // IID10023 - "__ imull(rcx, Address(rdx, rbx, (Address::ScaleFactor)3, +0x4950b5a1), 268435456);", // IID10024 -#ifdef _LP64 - "__ imull(rdx, Address(rbx, r8, (Address::ScaleFactor)0, -0x371fd018), 1);", // IID10025 - "__ imull(rdx, Address(rbx, r8, (Address::ScaleFactor)1, -0xdd29e87), 16);", // IID10026 - "__ imull(rdx, Address(rbx, +0x27f00dc4), 256);", // IID10027 - "__ imull(rdx, Address(rbx, r8, (Address::ScaleFactor)2, -0x30364768), 4096);", // IID10028 - "__ imull(rdx, Address(rbx, r8, (Address::ScaleFactor)2, -0x2078b022), 65536);", // IID10029 - "__ imull(rdx, Address(rbx, r8, (Address::ScaleFactor)1, +0x75118d59), 1048576);", // IID10030 - "__ imull(rdx, Address(rbx, r8, (Address::ScaleFactor)1, -0x4b6e0407), 16777216);", // IID10031 - "__ imull(rdx, Address(rbx, r8, (Address::ScaleFactor)2, -0x27ed9a1b), 268435456);", // IID10032 - "__ imull(rbx, Address(r8, +0x3420d00c), 1);", // IID10033 - "__ imull(rbx, Address(r8, r9, (Address::ScaleFactor)2, +0x7ca06729), 16);", // IID10034 - "__ imull(rbx, Address(r8, r9, (Address::ScaleFactor)2, -0x243fae51), 256);", // IID10035 - "__ imull(rbx, Address(r8, r9, (Address::ScaleFactor)2, +0x6101c559), 4096);", // IID10036 - "__ imull(rbx, Address(r8, -0x4f0ea639), 65536);", // IID10037 - "__ imull(rbx, Address(r8, r9, (Address::ScaleFactor)0, -0x4ad30996), 1048576);", // IID10038 - "__ imull(rbx, Address(r8, r9, (Address::ScaleFactor)1, +0x39c5a2bf), 16777216);", // IID10039 - "__ imull(rbx, Address(r8, r9, (Address::ScaleFactor)3, +0x6c844b56), 268435456);", // IID10040 - "__ imull(r8, Address(r9, r10, (Address::ScaleFactor)0, +0x9ec95ec), 1);", // IID10041 - "__ imull(r8, Address(r9, r10, (Address::ScaleFactor)2, -0x4f1b10d7), 16);", // IID10042 - "__ imull(r8, Address(r9, r10, (Address::ScaleFactor)1, +0x555726f4), 256);", // IID10043 - "__ imull(r8, Address(r9, r10, (Address::ScaleFactor)0, +0x77e8212b), 4096);", // IID10044 - "__ imull(r8, Address(r9, r10, (Address::ScaleFactor)1, +0x1cf9ee6e), 65536);", // IID10045 - "__ imull(r8, Address(r9, r10, (Address::ScaleFactor)0, -0x7e611c0), 1048576);", // IID10046 - "__ imull(r8, Address(r9, r10, (Address::ScaleFactor)3, -0x23cb680a), 16777216);", // IID10047 - "__ imull(r8, Address(r9, r10, (Address::ScaleFactor)3, +0x739f40f7), 268435456);", // IID10048 - "__ imull(r9, Address(r10, r11, (Address::ScaleFactor)0, -0x7f07479a), 1);", // IID10049 - "__ imull(r9, Address(r10, +0x5e7ef755), 16);", // IID10050 - "__ imull(r9, Address(r10, r11, (Address::ScaleFactor)2, -0xccfc49c), 256);", // IID10051 - "__ imull(r9, Address(r10, +0x2b368a1), 4096);", // IID10052 - "__ imull(r9, Address(r10, r11, (Address::ScaleFactor)2, -0x6dfacf76), 65536);", // IID10053 - "__ imull(r9, Address(r10, r11, (Address::ScaleFactor)3, -0x4f531cd8), 1048576);", // IID10054 - "__ imull(r9, Address(r10, r11, (Address::ScaleFactor)1, +0x27cacb22), 16777216);", // IID10055 - "__ imull(r9, Address(r10, r11, (Address::ScaleFactor)1, -0x3fdcfab3), 268435456);", // IID10056 - "__ imull(r10, Address(r11, r12, (Address::ScaleFactor)3, -0x35709534), 1);", // IID10057 - "__ imull(r10, Address(r11, r12, (Address::ScaleFactor)0, +0x18119a6c), 16);", // IID10058 - "__ imull(r10, Address(r11, r12, (Address::ScaleFactor)0, +0x753d90b), 256);", // IID10059 - "__ imull(r10, Address(r11, r12, (Address::ScaleFactor)1, +0x7428e841), 4096);", // IID10060 - "__ imull(r10, Address(r11, r12, (Address::ScaleFactor)3, +0x1441f3b4), 65536);", // IID10061 - "__ imull(r10, Address(r11, r12, (Address::ScaleFactor)2, -0x306e7edb), 1048576);", // IID10062 - "__ imull(r10, Address(r11, r12, (Address::ScaleFactor)0, +0x6db33b76), 16777216);", // IID10063 - "__ imull(r10, Address(r11, r12, (Address::ScaleFactor)2, +0x59b8a9fe), 268435456);", // IID10064 - "__ imull(r11, Address(r12, r13, (Address::ScaleFactor)0, -0xcd75378), 1);", // IID10065 - "__ imull(r11, Address(r12, r13, (Address::ScaleFactor)3, +0x468a6ff), 16);", // IID10066 - "__ imull(r11, Address(r12, r13, (Address::ScaleFactor)3, +0x71bf6b50), 256);", // IID10067 - "__ imull(r11, Address(r12, r13, (Address::ScaleFactor)1, +0x3ab283d8), 4096);", // IID10068 - "__ imull(r11, Address(r12, r13, (Address::ScaleFactor)0, -0x7b9f9b14), 65536);", // IID10069 - "__ imull(r11, Address(r12, r13, (Address::ScaleFactor)2, -0x67c25ea8), 1048576);", // IID10070 - "__ imull(r11, Address(r12, -0x7e543fe5), 16777216);", // IID10071 - "__ imull(r11, Address(r12, r13, (Address::ScaleFactor)1, -0x96d4855), 268435456);", // IID10072 - "__ imull(r12, Address(r13, r14, (Address::ScaleFactor)0, -0x9d1d1dd), 1);", // IID10073 - "__ imull(r12, Address(r13, -0x24f979a0), 16);", // IID10074 - "__ imull(r12, Address(r13, +0x1d67678b), 256);", // IID10075 - "__ imull(r12, Address(r13, r14, (Address::ScaleFactor)1, +0x61f468e0), 4096);", // IID10076 - "__ imull(r12, Address(r13, r14, (Address::ScaleFactor)1, +0x6ac1deb2), 65536);", // IID10077 - "__ imull(r12, Address(r13, r14, (Address::ScaleFactor)2, +0x43bc66bf), 1048576);", // IID10078 - "__ imull(r12, Address(r13, r14, (Address::ScaleFactor)2, -0x4a4a84f3), 16777216);", // IID10079 - "__ imull(r12, Address(r13, r14, (Address::ScaleFactor)2, -0x81504c7), 268435456);", // IID10080 - "__ imull(r13, Address(r14, r15, (Address::ScaleFactor)3, -0x658852e1), 1);", // IID10081 - "__ imull(r13, Address(r14, r15, (Address::ScaleFactor)1, +0x6ea030e), 16);", // IID10082 - "__ imull(r13, Address(r14, r15, (Address::ScaleFactor)0, +0x61c93ae5), 256);", // IID10083 - "__ imull(r13, Address(r14, r15, (Address::ScaleFactor)3, +0x4724cb6a), 4096);", // IID10084 - "__ imull(r13, Address(r14, +0x45221639), 65536);", // IID10085 - "__ imull(r13, Address(r14, r15, (Address::ScaleFactor)0, -0x3efc5201), 1048576);", // IID10086 - "__ imull(r13, Address(r14, r15, (Address::ScaleFactor)1, +0x77931ad3), 16777216);", // IID10087 - "__ imull(r13, Address(r14, +0x7fdf9b2c), 268435456);", // IID10088 - "__ imull(r14, Address(r15, r16, (Address::ScaleFactor)0, +0x121f3160), 1);", // IID10089 - "__ imull(r14, Address(r15, r16, (Address::ScaleFactor)3, +0x30fcf97c), 16);", // IID10090 - "__ imull(r14, Address(r15, r16, (Address::ScaleFactor)0, +0x134bd01c), 256);", // IID10091 - "__ imull(r14, Address(r15, +0x76ea59ff), 4096);", // IID10092 - "__ imull(r14, Address(r15, r16, (Address::ScaleFactor)1, -0x563d3b2e), 65536);", // IID10093 - "__ imull(r14, Address(r15, +0x12ebee43), 1048576);", // IID10094 - "__ imull(r14, Address(r15, r16, (Address::ScaleFactor)3, +0x21952df5), 16777216);", // IID10095 - "__ imull(r14, Address(r15, r16, (Address::ScaleFactor)3, +0x41394731), 268435456);", // IID10096 - "__ imull(r15, Address(r16, r17, (Address::ScaleFactor)0, +0x4ba5ec56), 1);", // IID10097 - "__ imull(r15, Address(r16, r17, (Address::ScaleFactor)3, +0x7576c27e), 16);", // IID10098 - "__ imull(r15, Address(r16, r17, (Address::ScaleFactor)3, -0x5b2ec2f), 256);", // IID10099 - "__ imull(r15, Address(r16, +0x6a0dd6df), 4096);", // IID10100 - "__ imull(r15, Address(r16, r17, (Address::ScaleFactor)0, -0x2c687a3e), 65536);", // IID10101 - "__ imull(r15, Address(r16, r17, (Address::ScaleFactor)3, -0x46b5d088), 1048576);", // IID10102 - "__ imull(r15, Address(r16, r17, (Address::ScaleFactor)0, +0x5cb0f0c1), 16777216);", // IID10103 - "__ imull(r15, Address(r16, r17, (Address::ScaleFactor)1, -0x3c7a42f7), 268435456);", // IID10104 - "__ imull(r16, Address(r17, r18, (Address::ScaleFactor)0, +0x1f350b99), 1);", // IID10105 - "__ imull(r16, Address(r17, r18, (Address::ScaleFactor)0, +0x76b7811b), 16);", // IID10106 - "__ imull(r16, Address(r17, r18, (Address::ScaleFactor)3, -0x15aa77ae), 256);", // IID10107 - "__ imull(r16, Address(r17, +0x7729b692), 4096);", // IID10108 - "__ imull(r16, Address(r17, r18, (Address::ScaleFactor)2, -0xc9f5f6e), 65536);", // IID10109 - "__ imull(r16, Address(r17, r18, (Address::ScaleFactor)1, -0x296b66e1), 1048576);", // IID10110 - "__ imull(r16, Address(r17, r18, (Address::ScaleFactor)0, -0x634128fa), 16777216);", // IID10111 - "__ imull(r16, Address(r17, r18, (Address::ScaleFactor)2, -0x53de79a5), 268435456);", // IID10112 - "__ imull(r17, Address(r18, r19, (Address::ScaleFactor)3, -0x33576d31), 1);", // IID10113 - "__ imull(r17, Address(r18, r19, (Address::ScaleFactor)1, +0x503ebbf0), 16);", // IID10114 - "__ imull(r17, Address(r18, r19, (Address::ScaleFactor)1, +0x3ed70a81), 256);", // IID10115 - "__ imull(r17, Address(r18, +0x7015bfd4), 4096);", // IID10116 - "__ imull(r17, Address(r18, r19, (Address::ScaleFactor)2, -0x2bafb67), 65536);", // IID10117 - "__ imull(r17, Address(r18, -0x71165dcb), 1048576);", // IID10118 - "__ imull(r17, Address(r18, r19, (Address::ScaleFactor)0, +0x32d61baa), 16777216);", // IID10119 - "__ imull(r17, Address(r18, r19, (Address::ScaleFactor)1, -0x18d1645e), 268435456);", // IID10120 - "__ imull(r18, Address(r19, r20, (Address::ScaleFactor)0, -0x446b524b), 1);", // IID10121 - "__ imull(r18, Address(r19, r20, (Address::ScaleFactor)3, -0xdf1191d), 16);", // IID10122 - "__ imull(r18, Address(r19, r20, (Address::ScaleFactor)3, +0x1b68d186), 256);", // IID10123 - "__ imull(r18, Address(r19, r20, (Address::ScaleFactor)3, -0x63a92654), 4096);", // IID10124 - "__ imull(r18, Address(r19, +0x39e62158), 65536);", // IID10125 - "__ imull(r18, Address(r19, r20, (Address::ScaleFactor)1, -0x1b6bd72a), 1048576);", // IID10126 - "__ imull(r18, Address(r19, r20, (Address::ScaleFactor)3, +0x58c27b8), 16777216);", // IID10127 - "__ imull(r18, Address(r19, +0x11f7d67f), 268435456);", // IID10128 - "__ imull(r19, Address(r20, r21, (Address::ScaleFactor)1, +0x203af541), 1);", // IID10129 - "__ imull(r19, Address(r20, -0x37eee72d), 16);", // IID10130 - "__ imull(r19, Address(r20, r21, (Address::ScaleFactor)1, -0x60644495), 256);", // IID10131 - "__ imull(r19, Address(r20, -0x596c3ea3), 4096);", // IID10132 - "__ imull(r19, Address(r20, r21, (Address::ScaleFactor)0, -0x1ed40215), 65536);", // IID10133 - "__ imull(r19, Address(r20, r21, (Address::ScaleFactor)3, +0x5c0cb478), 1048576);", // IID10134 - "__ imull(r19, Address(r20, r21, (Address::ScaleFactor)0, +0x892d5f5), 16777216);", // IID10135 - "__ imull(r19, Address(r20, +0x6db0d8bb), 268435456);", // IID10136 - "__ imull(r20, Address(r21, r22, (Address::ScaleFactor)2, -0x582b52dc), 1);", // IID10137 - "__ imull(r20, Address(r21, r22, (Address::ScaleFactor)2, +0x21f85665), 16);", // IID10138 - "__ imull(r20, Address(r21, r22, (Address::ScaleFactor)0, +0x4c97e309), 256);", // IID10139 - "__ imull(r20, Address(r21, r22, (Address::ScaleFactor)3, +0x7c9b9111), 4096);", // IID10140 - "__ imull(r20, Address(r21, r22, (Address::ScaleFactor)1, +0x5ca231a7), 65536);", // IID10141 - "__ imull(r20, Address(r21, r22, (Address::ScaleFactor)1, -0x77c4a59e), 1048576);", // IID10142 - "__ imull(r20, Address(r21, r22, (Address::ScaleFactor)2, +0x3c0b638b), 16777216);", // IID10143 - "__ imull(r20, Address(r21, r22, (Address::ScaleFactor)2, -0x4634180), 268435456);", // IID10144 - "__ imull(r21, Address(r22, r23, (Address::ScaleFactor)2, +0x6473e649), 1);", // IID10145 - "__ imull(r21, Address(r22, r23, (Address::ScaleFactor)0, -0x7d23bfe4), 16);", // IID10146 - "__ imull(r21, Address(r22, r23, (Address::ScaleFactor)3, -0x4bfdee6a), 256);", // IID10147 - "__ imull(r21, Address(r22, r23, (Address::ScaleFactor)2, +0x7f085570), 4096);", // IID10148 - "__ imull(r21, Address(r22, -0x7abe6d5), 65536);", // IID10149 - "__ imull(r21, Address(r22, r23, (Address::ScaleFactor)3, -0x409845bb), 1048576);", // IID10150 - "__ imull(r21, Address(r22, r23, (Address::ScaleFactor)1, -0x475b9ca6), 16777216);", // IID10151 - "__ imull(r21, Address(r22, r23, (Address::ScaleFactor)1, -0x5e6cae5a), 268435456);", // IID10152 - "__ imull(r22, Address(r23, r24, (Address::ScaleFactor)3, -0x79d3262d), 1);", // IID10153 - "__ imull(r22, Address(r23, r24, (Address::ScaleFactor)1, +0x1a74fb5), 16);", // IID10154 - "__ imull(r22, Address(r23, r24, (Address::ScaleFactor)2, -0x7fbbea03), 256);", // IID10155 - "__ imull(r22, Address(r23, r24, (Address::ScaleFactor)0, +0x6f2cb0bc), 4096);", // IID10156 - "__ imull(r22, Address(r23, r24, (Address::ScaleFactor)2, +0x6a4cd1c4), 65536);", // IID10157 - "__ imull(r22, Address(r23, r24, (Address::ScaleFactor)3, -0x2091be4d), 1048576);", // IID10158 - "__ imull(r22, Address(r23, r24, (Address::ScaleFactor)2, +0x6bd96959), 16777216);", // IID10159 - "__ imull(r22, Address(r23, r24, (Address::ScaleFactor)2, -0x3f51acdc), 268435456);", // IID10160 - "__ imull(r23, Address(r24, r25, (Address::ScaleFactor)2, +0x71e1ef59), 1);", // IID10161 - "__ imull(r23, Address(r24, r25, (Address::ScaleFactor)1, +0x460c1cb4), 16);", // IID10162 - "__ imull(r23, Address(r24, r25, (Address::ScaleFactor)3, +0x507af11d), 256);", // IID10163 - "__ imull(r23, Address(r24, r25, (Address::ScaleFactor)3, -0x29b9d1ca), 4096);", // IID10164 - "__ imull(r23, Address(r24, r25, (Address::ScaleFactor)3, -0x7e1c6f32), 65536);", // IID10165 - "__ imull(r23, Address(r24, r25, (Address::ScaleFactor)3, -0x1b06dcc4), 1048576);", // IID10166 - "__ imull(r23, Address(r24, r25, (Address::ScaleFactor)0, -0x6e58f902), 16777216);", // IID10167 - "__ imull(r23, Address(r24, r25, (Address::ScaleFactor)2, +0x4171b76d), 268435456);", // IID10168 - "__ imull(r24, Address(r25, +0x2d63c25), 1);", // IID10169 - "__ imull(r24, Address(r25, r26, (Address::ScaleFactor)2, +0x575a381a), 16);", // IID10170 - "__ imull(r24, Address(r25, r26, (Address::ScaleFactor)2, -0x630d0127), 256);", // IID10171 - "__ imull(r24, Address(r25, r26, (Address::ScaleFactor)1, +0x408a48ab), 4096);", // IID10172 - "__ imull(r24, Address(r25, r26, (Address::ScaleFactor)1, +0x161402e8), 65536);", // IID10173 - "__ imull(r24, Address(r25, r26, (Address::ScaleFactor)3, -0x18e2e82), 1048576);", // IID10174 - "__ imull(r24, Address(r25, r26, (Address::ScaleFactor)2, -0xa6237df), 16777216);", // IID10175 - "__ imull(r24, Address(r25, r26, (Address::ScaleFactor)2, +0x268f1afb), 268435456);", // IID10176 - "__ imull(r25, Address(r26, r27, (Address::ScaleFactor)1, +0x33f7472f), 1);", // IID10177 - "__ imull(r25, Address(r26, -0x27eeeed2), 16);", // IID10178 - "__ imull(r25, Address(r26, r27, (Address::ScaleFactor)1, +0x468bf57f), 256);", // IID10179 - "__ imull(r25, Address(r26, r27, (Address::ScaleFactor)3, +0x36d3fca4), 4096);", // IID10180 - "__ imull(r25, Address(r26, r27, (Address::ScaleFactor)1, +0x768aa18), 65536);", // IID10181 - "__ imull(r25, Address(r26, +0x155bab60), 1048576);", // IID10182 - "__ imull(r25, Address(r26, r27, (Address::ScaleFactor)3, -0x4c53f18c), 16777216);", // IID10183 - "__ imull(r25, Address(r26, -0x71acac2c), 268435456);", // IID10184 - "__ imull(r26, Address(r27, r28, (Address::ScaleFactor)0, +0x82e812c), 1);", // IID10185 - "__ imull(r26, Address(r27, r28, (Address::ScaleFactor)1, +0x40f856d9), 16);", // IID10186 - "__ imull(r26, Address(r27, r28, (Address::ScaleFactor)3, +0xa0c6f40), 256);", // IID10187 - "__ imull(r26, Address(r27, r28, (Address::ScaleFactor)1, +0x4280440c), 4096);", // IID10188 - "__ imull(r26, Address(r27, r28, (Address::ScaleFactor)0, +0x633c4faa), 65536);", // IID10189 - "__ imull(r26, Address(r27, r28, (Address::ScaleFactor)2, -0x37d5cd90), 1048576);", // IID10190 - "__ imull(r26, Address(r27, r28, (Address::ScaleFactor)1, -0x77e45992), 16777216);", // IID10191 - "__ imull(r26, Address(r27, +0x491cd629), 268435456);", // IID10192 - "__ imull(r27, Address(r28, r29, (Address::ScaleFactor)3, -0x740984bc), 1);", // IID10193 - "__ imull(r27, Address(r28, r29, (Address::ScaleFactor)0, +0x3ac9a585), 16);", // IID10194 - "__ imull(r27, Address(r28, r29, (Address::ScaleFactor)0, +0x7a86cdd6), 256);", // IID10195 - "__ imull(r27, Address(r28, r29, (Address::ScaleFactor)1, +0x609cb1f6), 4096);", // IID10196 - "__ imull(r27, Address(r28, r29, (Address::ScaleFactor)3, -0x6c465e9e), 65536);", // IID10197 - "__ imull(r27, Address(r28, -0x25ed1465), 1048576);", // IID10198 - "__ imull(r27, Address(r28, r29, (Address::ScaleFactor)0, +0x79ad56db), 16777216);", // IID10199 - "__ imull(r27, Address(r28, r29, (Address::ScaleFactor)0, -0x65636d75), 268435456);", // IID10200 - "__ imull(r28, Address(r29, r30, (Address::ScaleFactor)3, +0x399e1bb8), 1);", // IID10201 - "__ imull(r28, Address(r29, r30, (Address::ScaleFactor)3, +0x7420881d), 16);", // IID10202 - "__ imull(r28, Address(r29, r30, (Address::ScaleFactor)1, +0xf69bdd), 256);", // IID10203 - "__ imull(r28, Address(r29, r30, (Address::ScaleFactor)1, +0x491b510b), 4096);", // IID10204 - "__ imull(r28, Address(r29, r30, (Address::ScaleFactor)0, -0x2e84ba), 65536);", // IID10205 - "__ imull(r28, Address(r29, r30, (Address::ScaleFactor)3, +0x144dc455), 1048576);", // IID10206 - "__ imull(r28, Address(r29, r30, (Address::ScaleFactor)1, +0x27f4f21d), 16777216);", // IID10207 - "__ imull(r28, Address(r29, r30, (Address::ScaleFactor)3, +0x73cab5c2), 268435456);", // IID10208 - "__ imull(r29, Address(r30, r31, (Address::ScaleFactor)3, +0x12eb4482), 1);", // IID10209 - "__ imull(r29, Address(r30, r31, (Address::ScaleFactor)0, +0x2234d736), 16);", // IID10210 - "__ imull(r29, Address(r30, +0x2c3b0f0d), 256);", // IID10211 - "__ imull(r29, Address(r30, r31, (Address::ScaleFactor)3, +0x14bf706e), 4096);", // IID10212 - "__ imull(r29, Address(r30, r31, (Address::ScaleFactor)2, -0x489e5b25), 65536);", // IID10213 - "__ imull(r29, Address(r30, r31, (Address::ScaleFactor)3, +0x208d1043), 1048576);", // IID10214 - "__ imull(r29, Address(r30, r31, (Address::ScaleFactor)3, +0x183b6955), 16777216);", // IID10215 - "__ imull(r29, Address(r30, r31, (Address::ScaleFactor)2, -0x3734c3f), 268435456);", // IID10216 - "__ imull(r30, Address(r31, rcx, (Address::ScaleFactor)2, -0xbba7abc), 1);", // IID10217 - "__ imull(r30, Address(r31, rcx, (Address::ScaleFactor)0, -0x6397b3fb), 16);", // IID10218 - "__ imull(r30, Address(r31, +0x48ea8377), 256);", // IID10219 - "__ imull(r30, Address(r31, -0x58f83517), 4096);", // IID10220 - "__ imull(r30, Address(r31, +0x19ac56a5), 65536);", // IID10221 - "__ imull(r30, Address(r31, rcx, (Address::ScaleFactor)0, -0xc28c9b7), 1048576);", // IID10222 - "__ imull(r30, Address(r31, rcx, (Address::ScaleFactor)2, -0x2f04421b), 16777216);", // IID10223 - "__ imull(r30, Address(r31, rcx, (Address::ScaleFactor)3, -0x120f366b), 268435456);", // IID10224 - "__ imull(r31, Address(rcx, -0x3a33e762), 1);", // IID10225 - "__ imull(r31, Address(rcx, rdx, (Address::ScaleFactor)1, -0x44810815), 16);", // IID10226 - "__ imull(r31, Address(rcx, +0x65c75f68), 256);", // IID10227 - "__ imull(r31, Address(rcx, rdx, (Address::ScaleFactor)2, -0x754ec985), 4096);", // IID10228 - "__ imull(r31, Address(rcx, -0x70612a8e), 65536);", // IID10229 - "__ imull(r31, Address(rcx, rdx, (Address::ScaleFactor)3, +0x45afa65b), 1048576);", // IID10230 - "__ imull(r31, Address(rcx, rdx, (Address::ScaleFactor)0, +0x3021d14c), 16777216);", // IID10231 - "__ imull(r31, Address(rcx, rdx, (Address::ScaleFactor)3, -0x503c517d), 268435456);", // IID10232 -#endif // _LP64 - "__ imull(rcx, rdx, 1);", // IID10233 - "__ imull(rcx, rdx, 16);", // IID10234 - "__ imull(rcx, rdx, 256);", // IID10235 - "__ imull(rcx, rdx, 4096);", // IID10236 - "__ imull(rcx, rdx, 65536);", // IID10237 - "__ imull(rcx, rdx, 1048576);", // IID10238 - "__ imull(rcx, rdx, 16777216);", // IID10239 - "__ imull(rcx, rdx, 268435456);", // IID10240 - "__ imull(rdx, rbx, 1);", // IID10241 - "__ imull(rdx, rbx, 16);", // IID10242 - "__ imull(rdx, rbx, 256);", // IID10243 - "__ imull(rdx, rbx, 4096);", // IID10244 - "__ imull(rdx, rbx, 65536);", // IID10245 - "__ imull(rdx, rbx, 1048576);", // IID10246 - "__ imull(rdx, rbx, 16777216);", // IID10247 - "__ imull(rdx, rbx, 268435456);", // IID10248 -#ifdef _LP64 - "__ imull(rbx, r8, 1);", // IID10249 - "__ imull(rbx, r8, 16);", // IID10250 - "__ imull(rbx, r8, 256);", // IID10251 - "__ imull(rbx, r8, 4096);", // IID10252 - "__ imull(rbx, r8, 65536);", // IID10253 - "__ imull(rbx, r8, 1048576);", // IID10254 - "__ imull(rbx, r8, 16777216);", // IID10255 - "__ imull(rbx, r8, 268435456);", // IID10256 - "__ imull(r8, r9, 1);", // IID10257 - "__ imull(r8, r9, 16);", // IID10258 - "__ imull(r8, r9, 256);", // IID10259 - "__ imull(r8, r9, 4096);", // IID10260 - "__ imull(r8, r9, 65536);", // IID10261 - "__ imull(r8, r9, 1048576);", // IID10262 - "__ imull(r8, r9, 16777216);", // IID10263 - "__ imull(r8, r9, 268435456);", // IID10264 - "__ imull(r9, r10, 1);", // IID10265 - "__ imull(r9, r10, 16);", // IID10266 - "__ imull(r9, r10, 256);", // IID10267 - "__ imull(r9, r10, 4096);", // IID10268 - "__ imull(r9, r10, 65536);", // IID10269 - "__ imull(r9, r10, 1048576);", // IID10270 - "__ imull(r9, r10, 16777216);", // IID10271 - "__ imull(r9, r10, 268435456);", // IID10272 - "__ imull(r10, r11, 1);", // IID10273 - "__ imull(r10, r11, 16);", // IID10274 - "__ imull(r10, r11, 256);", // IID10275 - "__ imull(r10, r11, 4096);", // IID10276 - "__ imull(r10, r11, 65536);", // IID10277 - "__ imull(r10, r11, 1048576);", // IID10278 - "__ imull(r10, r11, 16777216);", // IID10279 - "__ imull(r10, r11, 268435456);", // IID10280 - "__ imull(r11, r12, 1);", // IID10281 - "__ imull(r11, r12, 16);", // IID10282 - "__ imull(r11, r12, 256);", // IID10283 - "__ imull(r11, r12, 4096);", // IID10284 - "__ imull(r11, r12, 65536);", // IID10285 - "__ imull(r11, r12, 1048576);", // IID10286 - "__ imull(r11, r12, 16777216);", // IID10287 - "__ imull(r11, r12, 268435456);", // IID10288 - "__ imull(r12, r13, 1);", // IID10289 - "__ imull(r12, r13, 16);", // IID10290 - "__ imull(r12, r13, 256);", // IID10291 - "__ imull(r12, r13, 4096);", // IID10292 - "__ imull(r12, r13, 65536);", // IID10293 - "__ imull(r12, r13, 1048576);", // IID10294 - "__ imull(r12, r13, 16777216);", // IID10295 - "__ imull(r12, r13, 268435456);", // IID10296 - "__ imull(r13, r14, 1);", // IID10297 - "__ imull(r13, r14, 16);", // IID10298 - "__ imull(r13, r14, 256);", // IID10299 - "__ imull(r13, r14, 4096);", // IID10300 - "__ imull(r13, r14, 65536);", // IID10301 - "__ imull(r13, r14, 1048576);", // IID10302 - "__ imull(r13, r14, 16777216);", // IID10303 - "__ imull(r13, r14, 268435456);", // IID10304 - "__ imull(r14, r15, 1);", // IID10305 - "__ imull(r14, r15, 16);", // IID10306 - "__ imull(r14, r15, 256);", // IID10307 - "__ imull(r14, r15, 4096);", // IID10308 - "__ imull(r14, r15, 65536);", // IID10309 - "__ imull(r14, r15, 1048576);", // IID10310 - "__ imull(r14, r15, 16777216);", // IID10311 - "__ imull(r14, r15, 268435456);", // IID10312 - "__ imull(r15, r16, 1);", // IID10313 - "__ imull(r15, r16, 16);", // IID10314 - "__ imull(r15, r16, 256);", // IID10315 - "__ imull(r15, r16, 4096);", // IID10316 - "__ imull(r15, r16, 65536);", // IID10317 - "__ imull(r15, r16, 1048576);", // IID10318 - "__ imull(r15, r16, 16777216);", // IID10319 - "__ imull(r15, r16, 268435456);", // IID10320 - "__ imull(r16, r17, 1);", // IID10321 - "__ imull(r16, r17, 16);", // IID10322 - "__ imull(r16, r17, 256);", // IID10323 - "__ imull(r16, r17, 4096);", // IID10324 - "__ imull(r16, r17, 65536);", // IID10325 - "__ imull(r16, r17, 1048576);", // IID10326 - "__ imull(r16, r17, 16777216);", // IID10327 - "__ imull(r16, r17, 268435456);", // IID10328 - "__ imull(r17, r18, 1);", // IID10329 - "__ imull(r17, r18, 16);", // IID10330 - "__ imull(r17, r18, 256);", // IID10331 - "__ imull(r17, r18, 4096);", // IID10332 - "__ imull(r17, r18, 65536);", // IID10333 - "__ imull(r17, r18, 1048576);", // IID10334 - "__ imull(r17, r18, 16777216);", // IID10335 - "__ imull(r17, r18, 268435456);", // IID10336 - "__ imull(r18, r19, 1);", // IID10337 - "__ imull(r18, r19, 16);", // IID10338 - "__ imull(r18, r19, 256);", // IID10339 - "__ imull(r18, r19, 4096);", // IID10340 - "__ imull(r18, r19, 65536);", // IID10341 - "__ imull(r18, r19, 1048576);", // IID10342 - "__ imull(r18, r19, 16777216);", // IID10343 - "__ imull(r18, r19, 268435456);", // IID10344 - "__ imull(r19, r20, 1);", // IID10345 - "__ imull(r19, r20, 16);", // IID10346 - "__ imull(r19, r20, 256);", // IID10347 - "__ imull(r19, r20, 4096);", // IID10348 - "__ imull(r19, r20, 65536);", // IID10349 - "__ imull(r19, r20, 1048576);", // IID10350 - "__ imull(r19, r20, 16777216);", // IID10351 - "__ imull(r19, r20, 268435456);", // IID10352 - "__ imull(r20, r21, 1);", // IID10353 - "__ imull(r20, r21, 16);", // IID10354 - "__ imull(r20, r21, 256);", // IID10355 - "__ imull(r20, r21, 4096);", // IID10356 - "__ imull(r20, r21, 65536);", // IID10357 - "__ imull(r20, r21, 1048576);", // IID10358 - "__ imull(r20, r21, 16777216);", // IID10359 - "__ imull(r20, r21, 268435456);", // IID10360 - "__ imull(r21, r22, 1);", // IID10361 - "__ imull(r21, r22, 16);", // IID10362 - "__ imull(r21, r22, 256);", // IID10363 - "__ imull(r21, r22, 4096);", // IID10364 - "__ imull(r21, r22, 65536);", // IID10365 - "__ imull(r21, r22, 1048576);", // IID10366 - "__ imull(r21, r22, 16777216);", // IID10367 - "__ imull(r21, r22, 268435456);", // IID10368 - "__ imull(r22, r23, 1);", // IID10369 - "__ imull(r22, r23, 16);", // IID10370 - "__ imull(r22, r23, 256);", // IID10371 - "__ imull(r22, r23, 4096);", // IID10372 - "__ imull(r22, r23, 65536);", // IID10373 - "__ imull(r22, r23, 1048576);", // IID10374 - "__ imull(r22, r23, 16777216);", // IID10375 - "__ imull(r22, r23, 268435456);", // IID10376 - "__ imull(r23, r24, 1);", // IID10377 - "__ imull(r23, r24, 16);", // IID10378 - "__ imull(r23, r24, 256);", // IID10379 - "__ imull(r23, r24, 4096);", // IID10380 - "__ imull(r23, r24, 65536);", // IID10381 - "__ imull(r23, r24, 1048576);", // IID10382 - "__ imull(r23, r24, 16777216);", // IID10383 - "__ imull(r23, r24, 268435456);", // IID10384 - "__ imull(r24, r25, 1);", // IID10385 - "__ imull(r24, r25, 16);", // IID10386 - "__ imull(r24, r25, 256);", // IID10387 - "__ imull(r24, r25, 4096);", // IID10388 - "__ imull(r24, r25, 65536);", // IID10389 - "__ imull(r24, r25, 1048576);", // IID10390 - "__ imull(r24, r25, 16777216);", // IID10391 - "__ imull(r24, r25, 268435456);", // IID10392 - "__ imull(r25, r26, 1);", // IID10393 - "__ imull(r25, r26, 16);", // IID10394 - "__ imull(r25, r26, 256);", // IID10395 - "__ imull(r25, r26, 4096);", // IID10396 - "__ imull(r25, r26, 65536);", // IID10397 - "__ imull(r25, r26, 1048576);", // IID10398 - "__ imull(r25, r26, 16777216);", // IID10399 - "__ imull(r25, r26, 268435456);", // IID10400 - "__ imull(r26, r27, 1);", // IID10401 - "__ imull(r26, r27, 16);", // IID10402 - "__ imull(r26, r27, 256);", // IID10403 - "__ imull(r26, r27, 4096);", // IID10404 - "__ imull(r26, r27, 65536);", // IID10405 - "__ imull(r26, r27, 1048576);", // IID10406 - "__ imull(r26, r27, 16777216);", // IID10407 - "__ imull(r26, r27, 268435456);", // IID10408 - "__ imull(r27, r28, 1);", // IID10409 - "__ imull(r27, r28, 16);", // IID10410 - "__ imull(r27, r28, 256);", // IID10411 - "__ imull(r27, r28, 4096);", // IID10412 - "__ imull(r27, r28, 65536);", // IID10413 - "__ imull(r27, r28, 1048576);", // IID10414 - "__ imull(r27, r28, 16777216);", // IID10415 - "__ imull(r27, r28, 268435456);", // IID10416 - "__ imull(r28, r29, 1);", // IID10417 - "__ imull(r28, r29, 16);", // IID10418 - "__ imull(r28, r29, 256);", // IID10419 - "__ imull(r28, r29, 4096);", // IID10420 - "__ imull(r28, r29, 65536);", // IID10421 - "__ imull(r28, r29, 1048576);", // IID10422 - "__ imull(r28, r29, 16777216);", // IID10423 - "__ imull(r28, r29, 268435456);", // IID10424 - "__ imull(r29, r30, 1);", // IID10425 - "__ imull(r29, r30, 16);", // IID10426 - "__ imull(r29, r30, 256);", // IID10427 - "__ imull(r29, r30, 4096);", // IID10428 - "__ imull(r29, r30, 65536);", // IID10429 - "__ imull(r29, r30, 1048576);", // IID10430 - "__ imull(r29, r30, 16777216);", // IID10431 - "__ imull(r29, r30, 268435456);", // IID10432 - "__ imull(r30, r31, 1);", // IID10433 - "__ imull(r30, r31, 16);", // IID10434 - "__ imull(r30, r31, 256);", // IID10435 - "__ imull(r30, r31, 4096);", // IID10436 - "__ imull(r30, r31, 65536);", // IID10437 - "__ imull(r30, r31, 1048576);", // IID10438 - "__ imull(r30, r31, 16777216);", // IID10439 - "__ imull(r30, r31, 268435456);", // IID10440 - "__ imull(r31, rcx, 1);", // IID10441 - "__ imull(r31, rcx, 16);", // IID10442 - "__ imull(r31, rcx, 256);", // IID10443 - "__ imull(r31, rcx, 4096);", // IID10444 - "__ imull(r31, rcx, 65536);", // IID10445 - "__ imull(r31, rcx, 1048576);", // IID10446 - "__ imull(r31, rcx, 16777216);", // IID10447 - "__ imull(r31, rcx, 268435456);", // IID10448 -#endif // _LP64 - "__ shldl(rcx, rdx, 1);", // IID10449 - "__ shldl(rcx, rdx, 2);", // IID10450 - "__ shldl(rcx, rdx, 4);", // IID10451 - "__ shldl(rcx, rdx, 8);", // IID10452 - "__ shldl(rcx, rdx, 16);", // IID10453 - "__ shldl(rdx, rbx, 1);", // IID10454 - "__ shldl(rdx, rbx, 2);", // IID10455 - "__ shldl(rdx, rbx, 4);", // IID10456 - "__ shldl(rdx, rbx, 8);", // IID10457 - "__ shldl(rdx, rbx, 16);", // IID10458 -#ifdef _LP64 - "__ shldl(rbx, r8, 1);", // IID10459 - "__ shldl(rbx, r8, 2);", // IID10460 - "__ shldl(rbx, r8, 4);", // IID10461 - "__ shldl(rbx, r8, 8);", // IID10462 - "__ shldl(rbx, r8, 16);", // IID10463 - "__ shldl(r8, r9, 1);", // IID10464 - "__ shldl(r8, r9, 2);", // IID10465 - "__ shldl(r8, r9, 4);", // IID10466 - "__ shldl(r8, r9, 8);", // IID10467 - "__ shldl(r8, r9, 16);", // IID10468 - "__ shldl(r9, r10, 1);", // IID10469 - "__ shldl(r9, r10, 2);", // IID10470 - "__ shldl(r9, r10, 4);", // IID10471 - "__ shldl(r9, r10, 8);", // IID10472 - "__ shldl(r9, r10, 16);", // IID10473 - "__ shldl(r10, r11, 1);", // IID10474 - "__ shldl(r10, r11, 2);", // IID10475 - "__ shldl(r10, r11, 4);", // IID10476 - "__ shldl(r10, r11, 8);", // IID10477 - "__ shldl(r10, r11, 16);", // IID10478 - "__ shldl(r11, r12, 1);", // IID10479 - "__ shldl(r11, r12, 2);", // IID10480 - "__ shldl(r11, r12, 4);", // IID10481 - "__ shldl(r11, r12, 8);", // IID10482 - "__ shldl(r11, r12, 16);", // IID10483 - "__ shldl(r12, r13, 1);", // IID10484 - "__ shldl(r12, r13, 2);", // IID10485 - "__ shldl(r12, r13, 4);", // IID10486 - "__ shldl(r12, r13, 8);", // IID10487 - "__ shldl(r12, r13, 16);", // IID10488 - "__ shldl(r13, r14, 1);", // IID10489 - "__ shldl(r13, r14, 2);", // IID10490 - "__ shldl(r13, r14, 4);", // IID10491 - "__ shldl(r13, r14, 8);", // IID10492 - "__ shldl(r13, r14, 16);", // IID10493 - "__ shldl(r14, r15, 1);", // IID10494 - "__ shldl(r14, r15, 2);", // IID10495 - "__ shldl(r14, r15, 4);", // IID10496 - "__ shldl(r14, r15, 8);", // IID10497 - "__ shldl(r14, r15, 16);", // IID10498 - "__ shldl(r15, r16, 1);", // IID10499 - "__ shldl(r15, r16, 2);", // IID10500 - "__ shldl(r15, r16, 4);", // IID10501 - "__ shldl(r15, r16, 8);", // IID10502 - "__ shldl(r15, r16, 16);", // IID10503 - "__ shldl(r16, r17, 1);", // IID10504 - "__ shldl(r16, r17, 2);", // IID10505 - "__ shldl(r16, r17, 4);", // IID10506 - "__ shldl(r16, r17, 8);", // IID10507 - "__ shldl(r16, r17, 16);", // IID10508 - "__ shldl(r17, r18, 1);", // IID10509 - "__ shldl(r17, r18, 2);", // IID10510 - "__ shldl(r17, r18, 4);", // IID10511 - "__ shldl(r17, r18, 8);", // IID10512 - "__ shldl(r17, r18, 16);", // IID10513 - "__ shldl(r18, r19, 1);", // IID10514 - "__ shldl(r18, r19, 2);", // IID10515 - "__ shldl(r18, r19, 4);", // IID10516 - "__ shldl(r18, r19, 8);", // IID10517 - "__ shldl(r18, r19, 16);", // IID10518 - "__ shldl(r19, r20, 1);", // IID10519 - "__ shldl(r19, r20, 2);", // IID10520 - "__ shldl(r19, r20, 4);", // IID10521 - "__ shldl(r19, r20, 8);", // IID10522 - "__ shldl(r19, r20, 16);", // IID10523 - "__ shldl(r20, r21, 1);", // IID10524 - "__ shldl(r20, r21, 2);", // IID10525 - "__ shldl(r20, r21, 4);", // IID10526 - "__ shldl(r20, r21, 8);", // IID10527 - "__ shldl(r20, r21, 16);", // IID10528 - "__ shldl(r21, r22, 1);", // IID10529 - "__ shldl(r21, r22, 2);", // IID10530 - "__ shldl(r21, r22, 4);", // IID10531 - "__ shldl(r21, r22, 8);", // IID10532 - "__ shldl(r21, r22, 16);", // IID10533 - "__ shldl(r22, r23, 1);", // IID10534 - "__ shldl(r22, r23, 2);", // IID10535 - "__ shldl(r22, r23, 4);", // IID10536 - "__ shldl(r22, r23, 8);", // IID10537 - "__ shldl(r22, r23, 16);", // IID10538 - "__ shldl(r23, r24, 1);", // IID10539 - "__ shldl(r23, r24, 2);", // IID10540 - "__ shldl(r23, r24, 4);", // IID10541 - "__ shldl(r23, r24, 8);", // IID10542 - "__ shldl(r23, r24, 16);", // IID10543 - "__ shldl(r24, r25, 1);", // IID10544 - "__ shldl(r24, r25, 2);", // IID10545 - "__ shldl(r24, r25, 4);", // IID10546 - "__ shldl(r24, r25, 8);", // IID10547 - "__ shldl(r24, r25, 16);", // IID10548 - "__ shldl(r25, r26, 1);", // IID10549 - "__ shldl(r25, r26, 2);", // IID10550 - "__ shldl(r25, r26, 4);", // IID10551 - "__ shldl(r25, r26, 8);", // IID10552 - "__ shldl(r25, r26, 16);", // IID10553 - "__ shldl(r26, r27, 1);", // IID10554 - "__ shldl(r26, r27, 2);", // IID10555 - "__ shldl(r26, r27, 4);", // IID10556 - "__ shldl(r26, r27, 8);", // IID10557 - "__ shldl(r26, r27, 16);", // IID10558 - "__ shldl(r27, r28, 1);", // IID10559 - "__ shldl(r27, r28, 2);", // IID10560 - "__ shldl(r27, r28, 4);", // IID10561 - "__ shldl(r27, r28, 8);", // IID10562 - "__ shldl(r27, r28, 16);", // IID10563 - "__ shldl(r28, r29, 1);", // IID10564 - "__ shldl(r28, r29, 2);", // IID10565 - "__ shldl(r28, r29, 4);", // IID10566 - "__ shldl(r28, r29, 8);", // IID10567 - "__ shldl(r28, r29, 16);", // IID10568 - "__ shldl(r29, r30, 1);", // IID10569 - "__ shldl(r29, r30, 2);", // IID10570 - "__ shldl(r29, r30, 4);", // IID10571 - "__ shldl(r29, r30, 8);", // IID10572 - "__ shldl(r29, r30, 16);", // IID10573 - "__ shldl(r30, r31, 1);", // IID10574 - "__ shldl(r30, r31, 2);", // IID10575 - "__ shldl(r30, r31, 4);", // IID10576 - "__ shldl(r30, r31, 8);", // IID10577 - "__ shldl(r30, r31, 16);", // IID10578 - "__ shldl(r31, rcx, 1);", // IID10579 - "__ shldl(r31, rcx, 2);", // IID10580 - "__ shldl(r31, rcx, 4);", // IID10581 - "__ shldl(r31, rcx, 8);", // IID10582 - "__ shldl(r31, rcx, 16);", // IID10583 -#endif // _LP64 - "__ shrdl(rcx, rdx, 1);", // IID10584 - "__ shrdl(rcx, rdx, 2);", // IID10585 - "__ shrdl(rcx, rdx, 4);", // IID10586 - "__ shrdl(rcx, rdx, 8);", // IID10587 - "__ shrdl(rcx, rdx, 16);", // IID10588 - "__ shrdl(rdx, rbx, 1);", // IID10589 - "__ shrdl(rdx, rbx, 2);", // IID10590 - "__ shrdl(rdx, rbx, 4);", // IID10591 - "__ shrdl(rdx, rbx, 8);", // IID10592 - "__ shrdl(rdx, rbx, 16);", // IID10593 -#ifdef _LP64 - "__ shrdl(rbx, r8, 1);", // IID10594 - "__ shrdl(rbx, r8, 2);", // IID10595 - "__ shrdl(rbx, r8, 4);", // IID10596 - "__ shrdl(rbx, r8, 8);", // IID10597 - "__ shrdl(rbx, r8, 16);", // IID10598 - "__ shrdl(r8, r9, 1);", // IID10599 - "__ shrdl(r8, r9, 2);", // IID10600 - "__ shrdl(r8, r9, 4);", // IID10601 - "__ shrdl(r8, r9, 8);", // IID10602 - "__ shrdl(r8, r9, 16);", // IID10603 - "__ shrdl(r9, r10, 1);", // IID10604 - "__ shrdl(r9, r10, 2);", // IID10605 - "__ shrdl(r9, r10, 4);", // IID10606 - "__ shrdl(r9, r10, 8);", // IID10607 - "__ shrdl(r9, r10, 16);", // IID10608 - "__ shrdl(r10, r11, 1);", // IID10609 - "__ shrdl(r10, r11, 2);", // IID10610 - "__ shrdl(r10, r11, 4);", // IID10611 - "__ shrdl(r10, r11, 8);", // IID10612 - "__ shrdl(r10, r11, 16);", // IID10613 - "__ shrdl(r11, r12, 1);", // IID10614 - "__ shrdl(r11, r12, 2);", // IID10615 - "__ shrdl(r11, r12, 4);", // IID10616 - "__ shrdl(r11, r12, 8);", // IID10617 - "__ shrdl(r11, r12, 16);", // IID10618 - "__ shrdl(r12, r13, 1);", // IID10619 - "__ shrdl(r12, r13, 2);", // IID10620 - "__ shrdl(r12, r13, 4);", // IID10621 - "__ shrdl(r12, r13, 8);", // IID10622 - "__ shrdl(r12, r13, 16);", // IID10623 - "__ shrdl(r13, r14, 1);", // IID10624 - "__ shrdl(r13, r14, 2);", // IID10625 - "__ shrdl(r13, r14, 4);", // IID10626 - "__ shrdl(r13, r14, 8);", // IID10627 - "__ shrdl(r13, r14, 16);", // IID10628 - "__ shrdl(r14, r15, 1);", // IID10629 - "__ shrdl(r14, r15, 2);", // IID10630 - "__ shrdl(r14, r15, 4);", // IID10631 - "__ shrdl(r14, r15, 8);", // IID10632 - "__ shrdl(r14, r15, 16);", // IID10633 - "__ shrdl(r15, r16, 1);", // IID10634 - "__ shrdl(r15, r16, 2);", // IID10635 - "__ shrdl(r15, r16, 4);", // IID10636 - "__ shrdl(r15, r16, 8);", // IID10637 - "__ shrdl(r15, r16, 16);", // IID10638 - "__ shrdl(r16, r17, 1);", // IID10639 - "__ shrdl(r16, r17, 2);", // IID10640 - "__ shrdl(r16, r17, 4);", // IID10641 - "__ shrdl(r16, r17, 8);", // IID10642 - "__ shrdl(r16, r17, 16);", // IID10643 - "__ shrdl(r17, r18, 1);", // IID10644 - "__ shrdl(r17, r18, 2);", // IID10645 - "__ shrdl(r17, r18, 4);", // IID10646 - "__ shrdl(r17, r18, 8);", // IID10647 - "__ shrdl(r17, r18, 16);", // IID10648 - "__ shrdl(r18, r19, 1);", // IID10649 - "__ shrdl(r18, r19, 2);", // IID10650 - "__ shrdl(r18, r19, 4);", // IID10651 - "__ shrdl(r18, r19, 8);", // IID10652 - "__ shrdl(r18, r19, 16);", // IID10653 - "__ shrdl(r19, r20, 1);", // IID10654 - "__ shrdl(r19, r20, 2);", // IID10655 - "__ shrdl(r19, r20, 4);", // IID10656 - "__ shrdl(r19, r20, 8);", // IID10657 - "__ shrdl(r19, r20, 16);", // IID10658 - "__ shrdl(r20, r21, 1);", // IID10659 - "__ shrdl(r20, r21, 2);", // IID10660 - "__ shrdl(r20, r21, 4);", // IID10661 - "__ shrdl(r20, r21, 8);", // IID10662 - "__ shrdl(r20, r21, 16);", // IID10663 - "__ shrdl(r21, r22, 1);", // IID10664 - "__ shrdl(r21, r22, 2);", // IID10665 - "__ shrdl(r21, r22, 4);", // IID10666 - "__ shrdl(r21, r22, 8);", // IID10667 - "__ shrdl(r21, r22, 16);", // IID10668 - "__ shrdl(r22, r23, 1);", // IID10669 - "__ shrdl(r22, r23, 2);", // IID10670 - "__ shrdl(r22, r23, 4);", // IID10671 - "__ shrdl(r22, r23, 8);", // IID10672 - "__ shrdl(r22, r23, 16);", // IID10673 - "__ shrdl(r23, r24, 1);", // IID10674 - "__ shrdl(r23, r24, 2);", // IID10675 - "__ shrdl(r23, r24, 4);", // IID10676 - "__ shrdl(r23, r24, 8);", // IID10677 - "__ shrdl(r23, r24, 16);", // IID10678 - "__ shrdl(r24, r25, 1);", // IID10679 - "__ shrdl(r24, r25, 2);", // IID10680 - "__ shrdl(r24, r25, 4);", // IID10681 - "__ shrdl(r24, r25, 8);", // IID10682 - "__ shrdl(r24, r25, 16);", // IID10683 - "__ shrdl(r25, r26, 1);", // IID10684 - "__ shrdl(r25, r26, 2);", // IID10685 - "__ shrdl(r25, r26, 4);", // IID10686 - "__ shrdl(r25, r26, 8);", // IID10687 - "__ shrdl(r25, r26, 16);", // IID10688 - "__ shrdl(r26, r27, 1);", // IID10689 - "__ shrdl(r26, r27, 2);", // IID10690 - "__ shrdl(r26, r27, 4);", // IID10691 - "__ shrdl(r26, r27, 8);", // IID10692 - "__ shrdl(r26, r27, 16);", // IID10693 - "__ shrdl(r27, r28, 1);", // IID10694 - "__ shrdl(r27, r28, 2);", // IID10695 - "__ shrdl(r27, r28, 4);", // IID10696 - "__ shrdl(r27, r28, 8);", // IID10697 - "__ shrdl(r27, r28, 16);", // IID10698 - "__ shrdl(r28, r29, 1);", // IID10699 - "__ shrdl(r28, r29, 2);", // IID10700 - "__ shrdl(r28, r29, 4);", // IID10701 - "__ shrdl(r28, r29, 8);", // IID10702 - "__ shrdl(r28, r29, 16);", // IID10703 - "__ shrdl(r29, r30, 1);", // IID10704 - "__ shrdl(r29, r30, 2);", // IID10705 - "__ shrdl(r29, r30, 4);", // IID10706 - "__ shrdl(r29, r30, 8);", // IID10707 - "__ shrdl(r29, r30, 16);", // IID10708 - "__ shrdl(r30, r31, 1);", // IID10709 - "__ shrdl(r30, r31, 2);", // IID10710 - "__ shrdl(r30, r31, 4);", // IID10711 - "__ shrdl(r30, r31, 8);", // IID10712 - "__ shrdl(r30, r31, 16);", // IID10713 - "__ shrdl(r31, rcx, 1);", // IID10714 - "__ shrdl(r31, rcx, 2);", // IID10715 - "__ shrdl(r31, rcx, 4);", // IID10716 - "__ shrdl(r31, rcx, 8);", // IID10717 - "__ shrdl(r31, rcx, 16);", // IID10718 -#endif // _LP64 - "__ movzbl(rcx, Address(rdx, -0x68e4e799));", // IID10719 -#ifdef _LP64 - "__ movzbl(rdx, Address(rbx, r8, (Address::ScaleFactor)1, -0x366b23d0));", // IID10720 - "__ movzbl(rbx, Address(r8, r9, (Address::ScaleFactor)2, +0x33181dab));", // IID10721 - "__ movzbl(r8, Address(r9, r10, (Address::ScaleFactor)2, -0x4fbc60f));", // IID10722 - "__ movzbl(r9, Address(r10, r11, (Address::ScaleFactor)2, -0x6b8b981e));", // IID10723 - "__ movzbl(r10, Address(r11, r12, (Address::ScaleFactor)3, -0x6c9cd939));", // IID10724 - "__ movzbl(r11, Address(r12, r13, (Address::ScaleFactor)2, -0x38b03e29));", // IID10725 - "__ movzbl(r12, Address(r13, r14, (Address::ScaleFactor)3, +0x4f037a4b));", // IID10726 - "__ movzbl(r13, Address(r14, r15, (Address::ScaleFactor)3, -0x7c19b8eb));", // IID10727 - "__ movzbl(r14, Address(r15, +0x44ceebf4));", // IID10728 - "__ movzbl(r15, Address(r16, +0x4124db1e));", // IID10729 - "__ movzbl(r16, Address(r17, r18, (Address::ScaleFactor)1, -0x5775053e));", // IID10730 - "__ movzbl(r17, Address(r18, +0x6e739861));", // IID10731 - "__ movzbl(r18, Address(r19, r20, (Address::ScaleFactor)2, +0x7edac3df));", // IID10732 - "__ movzbl(r19, Address(r20, r21, (Address::ScaleFactor)1, +0xa1c6a82));", // IID10733 - "__ movzbl(r20, Address(r21, r22, (Address::ScaleFactor)1, -0x274a28a4));", // IID10734 - "__ movzbl(r21, Address(r22, r23, (Address::ScaleFactor)2, +0x35d36669));", // IID10735 - "__ movzbl(r22, Address(r23, r24, (Address::ScaleFactor)0, +0x159e45a2));", // IID10736 - "__ movzbl(r23, Address(r24, r25, (Address::ScaleFactor)3, -0x42263d56));", // IID10737 - "__ movzbl(r24, Address(r25, r26, (Address::ScaleFactor)0, -0x2b575438));", // IID10738 - "__ movzbl(r25, Address(r26, -0x5e14329f));", // IID10739 - "__ movzbl(r26, Address(r27, -0x2cbfb25f));", // IID10740 - "__ movzbl(r27, Address(r28, r29, (Address::ScaleFactor)0, -0x4aef7951));", // IID10741 - "__ movzbl(r28, Address(r29, r30, (Address::ScaleFactor)3, -0x48431159));", // IID10742 - "__ movzbl(r29, Address(r30, r31, (Address::ScaleFactor)1, +0x44fb629));", // IID10743 - "__ movzbl(r30, Address(r31, rcx, (Address::ScaleFactor)2, -0x8608a93));", // IID10744 - "__ movzbl(r31, Address(rcx, rdx, (Address::ScaleFactor)1, -0x4898dbc8));", // IID10745 -#endif // _LP64 - "__ movzwl(rcx, Address(rdx, rbx, (Address::ScaleFactor)1, -0x337cb340));", // IID10746 -#ifdef _LP64 - "__ movzwl(rdx, Address(rbx, +0x44d22f71));", // IID10747 - "__ movzwl(rbx, Address(r8, r9, (Address::ScaleFactor)2, -0x26181bec));", // IID10748 - "__ movzwl(r8, Address(r9, +0x3d732d0f));", // IID10749 - "__ movzwl(r9, Address(r10, r11, (Address::ScaleFactor)3, +0x152688b3));", // IID10750 - "__ movzwl(r10, Address(r11, r12, (Address::ScaleFactor)2, +0x45e2e87e));", // IID10751 - "__ movzwl(r11, Address(r12, r13, (Address::ScaleFactor)3, -0x35019e74));", // IID10752 - "__ movzwl(r12, Address(r13, r14, (Address::ScaleFactor)3, +0x51dcea8));", // IID10753 - "__ movzwl(r13, Address(r14, +0x6190f3d5));", // IID10754 - "__ movzwl(r14, Address(r15, r16, (Address::ScaleFactor)2, +0x365a8783));", // IID10755 - "__ movzwl(r15, Address(r16, -0x7c4cea6b));", // IID10756 - "__ movzwl(r16, Address(r17, r18, (Address::ScaleFactor)0, -0x5804ca3));", // IID10757 - "__ movzwl(r17, Address(r18, r19, (Address::ScaleFactor)0, -0x34747bd3));", // IID10758 - "__ movzwl(r18, Address(r19, +0x1998c84f));", // IID10759 - "__ movzwl(r19, Address(r20, r21, (Address::ScaleFactor)2, +0x4f9a5ed));", // IID10760 - "__ movzwl(r20, Address(r21, r22, (Address::ScaleFactor)3, +0x2c5e835c));", // IID10761 - "__ movzwl(r21, Address(r22, r23, (Address::ScaleFactor)2, +0x7fcba5d2));", // IID10762 - "__ movzwl(r22, Address(r23, r24, (Address::ScaleFactor)0, +0x49e484dc));", // IID10763 - "__ movzwl(r23, Address(r24, r25, (Address::ScaleFactor)2, -0x7529ceed));", // IID10764 - "__ movzwl(r24, Address(r25, -0x792cc0f8));", // IID10765 - "__ movzwl(r25, Address(r26, +0x1ab8bb4f));", // IID10766 - "__ movzwl(r26, Address(r27, r28, (Address::ScaleFactor)2, +0x7caf446e));", // IID10767 - "__ movzwl(r27, Address(r28, r29, (Address::ScaleFactor)2, -0x5a3d5b42));", // IID10768 - "__ movzwl(r28, Address(r29, r30, (Address::ScaleFactor)3, -0x4b03ff4a));", // IID10769 - "__ movzwl(r29, Address(r30, r31, (Address::ScaleFactor)1, -0x5d2cf94c));", // IID10770 - "__ movzwl(r30, Address(r31, rcx, (Address::ScaleFactor)2, -0x6dfa6c11));", // IID10771 - "__ movzwl(r31, Address(rcx, rdx, (Address::ScaleFactor)1, +0x18d9debd));", // IID10772 -#endif // _LP64 - "__ movsbl(rcx, Address(rdx, rbx, (Address::ScaleFactor)2, +0x16009c60));", // IID10773 -#ifdef _LP64 - "__ movsbl(rdx, Address(rbx, r8, (Address::ScaleFactor)2, +0x31e09b78));", // IID10774 - "__ movsbl(rbx, Address(r8, +0x2cf3a8aa));", // IID10775 - "__ movsbl(r8, Address(r9, r10, (Address::ScaleFactor)3, +0x64d2e26d));", // IID10776 - "__ movsbl(r9, Address(r10, +0x7b9bc497));", // IID10777 - "__ movsbl(r10, Address(r11, r12, (Address::ScaleFactor)0, +0x21c94b8a));", // IID10778 - "__ movsbl(r11, Address(r12, r13, (Address::ScaleFactor)0, -0x7d13f584));", // IID10779 - "__ movsbl(r12, Address(r13, r14, (Address::ScaleFactor)0, +0x5c16ec27));", // IID10780 - "__ movsbl(r13, Address(r14, r15, (Address::ScaleFactor)2, +0x4361a1b0));", // IID10781 - "__ movsbl(r14, Address(r15, r16, (Address::ScaleFactor)2, -0x882166b));", // IID10782 - "__ movsbl(r15, Address(r16, r17, (Address::ScaleFactor)1, -0x4a349cb0));", // IID10783 - "__ movsbl(r16, Address(r17, r18, (Address::ScaleFactor)3, +0x4fde8d5d));", // IID10784 - "__ movsbl(r17, Address(r18, r19, (Address::ScaleFactor)2, +0x7118d208));", // IID10785 - "__ movsbl(r18, Address(r19, r20, (Address::ScaleFactor)0, -0x5de0a978));", // IID10786 - "__ movsbl(r19, Address(r20, -0x513c222a));", // IID10787 - "__ movsbl(r20, Address(r21, r22, (Address::ScaleFactor)3, -0x45e1b2fd));", // IID10788 - "__ movsbl(r21, Address(r22, r23, (Address::ScaleFactor)0, +0x42626ccb));", // IID10789 - "__ movsbl(r22, Address(r23, r24, (Address::ScaleFactor)0, +0x1502ca25));", // IID10790 - "__ movsbl(r23, Address(r24, r25, (Address::ScaleFactor)3, +0x7485eda8));", // IID10791 - "__ movsbl(r24, Address(r25, r26, (Address::ScaleFactor)3, +0x28a9749e));", // IID10792 - "__ movsbl(r25, Address(r26, r27, (Address::ScaleFactor)2, +0xf286398));", // IID10793 - "__ movsbl(r26, Address(r27, r28, (Address::ScaleFactor)1, +0x1467db0e));", // IID10794 - "__ movsbl(r27, Address(r28, r29, (Address::ScaleFactor)3, -0x61b52f42));", // IID10795 - "__ movsbl(r28, Address(r29, r30, (Address::ScaleFactor)2, -0x3660257f));", // IID10796 - "__ movsbl(r29, Address(r30, r31, (Address::ScaleFactor)0, -0x1cd86438));", // IID10797 - "__ movsbl(r30, Address(r31, rcx, (Address::ScaleFactor)3, +0x71035193));", // IID10798 - "__ movsbl(r31, Address(rcx, rdx, (Address::ScaleFactor)0, +0x66c8ba71));", // IID10799 -#endif // _LP64 - "__ movswl(rcx, Address(rdx, rbx, (Address::ScaleFactor)0, +0x39de01ff));", // IID10800 -#ifdef _LP64 - "__ movswl(rdx, Address(rbx, r8, (Address::ScaleFactor)2, +0x16f2bdd4));", // IID10801 - "__ movswl(rbx, Address(r8, +0x7870b962));", // IID10802 - "__ movswl(r8, Address(r9, r10, (Address::ScaleFactor)0, -0x68e57d24));", // IID10803 - "__ movswl(r9, Address(r10, r11, (Address::ScaleFactor)1, -0x1d5f8e24));", // IID10804 - "__ movswl(r10, Address(r11, r12, (Address::ScaleFactor)1, -0x70e4c19e));", // IID10805 - "__ movswl(r11, Address(r12, -0x4e3023f2));", // IID10806 - "__ movswl(r12, Address(r13, r14, (Address::ScaleFactor)0, -0x1adfcbde));", // IID10807 - "__ movswl(r13, Address(r14, r15, (Address::ScaleFactor)3, -0x41f424b5));", // IID10808 - "__ movswl(r14, Address(r15, r16, (Address::ScaleFactor)0, +0x71edb6fa));", // IID10809 - "__ movswl(r15, Address(r16, r17, (Address::ScaleFactor)0, -0xd982224));", // IID10810 - "__ movswl(r16, Address(r17, r18, (Address::ScaleFactor)1, -0x3300abcf));", // IID10811 - "__ movswl(r17, Address(r18, r19, (Address::ScaleFactor)3, -0x2c0807c6));", // IID10812 - "__ movswl(r18, Address(r19, r20, (Address::ScaleFactor)0, -0x78b3ef97));", // IID10813 - "__ movswl(r19, Address(r20, -0x2ecc56c));", // IID10814 - "__ movswl(r20, Address(r21, r22, (Address::ScaleFactor)1, +0x6a25c838));", // IID10815 - "__ movswl(r21, Address(r22, r23, (Address::ScaleFactor)2, +0x7884c026));", // IID10816 - "__ movswl(r22, Address(r23, r24, (Address::ScaleFactor)2, +0xfc157bc));", // IID10817 - "__ movswl(r23, Address(r24, r25, (Address::ScaleFactor)0, +0x5e7e87b6));", // IID10818 - "__ movswl(r24, Address(r25, r26, (Address::ScaleFactor)0, +0x35a3e720));", // IID10819 - "__ movswl(r25, Address(r26, +0x4049d42f));", // IID10820 - "__ movswl(r26, Address(r27, r28, (Address::ScaleFactor)2, +0x47487709));", // IID10821 - "__ movswl(r27, Address(r28, r29, (Address::ScaleFactor)0, +0x113ba6d4));", // IID10822 - "__ movswl(r28, Address(r29, r30, (Address::ScaleFactor)1, +0x7bb5f58e));", // IID10823 - "__ movswl(r29, Address(r30, r31, (Address::ScaleFactor)2, +0x271967d4));", // IID10824 - "__ movswl(r30, Address(r31, rcx, (Address::ScaleFactor)2, +0xe0b64c5));", // IID10825 - "__ movswl(r31, Address(rcx, -0x66686f74));", // IID10826 -#endif // _LP64 - "__ movzbl(rcx, rdx);", // IID10827 - "__ movzbl(rdx, rbx);", // IID10828 -#ifdef _LP64 - "__ movzbl(rbx, r8);", // IID10829 - "__ movzbl(r8, r9);", // IID10830 - "__ movzbl(r9, r10);", // IID10831 - "__ movzbl(r10, r11);", // IID10832 - "__ movzbl(r11, r12);", // IID10833 - "__ movzbl(r12, r13);", // IID10834 - "__ movzbl(r13, r14);", // IID10835 - "__ movzbl(r14, r15);", // IID10836 - "__ movzbl(r15, r16);", // IID10837 - "__ movzbl(r16, r17);", // IID10838 - "__ movzbl(r17, r18);", // IID10839 - "__ movzbl(r18, r19);", // IID10840 - "__ movzbl(r19, r20);", // IID10841 - "__ movzbl(r20, r21);", // IID10842 - "__ movzbl(r21, r22);", // IID10843 - "__ movzbl(r22, r23);", // IID10844 - "__ movzbl(r23, r24);", // IID10845 - "__ movzbl(r24, r25);", // IID10846 - "__ movzbl(r25, r26);", // IID10847 - "__ movzbl(r26, r27);", // IID10848 - "__ movzbl(r27, r28);", // IID10849 - "__ movzbl(r28, r29);", // IID10850 - "__ movzbl(r29, r30);", // IID10851 - "__ movzbl(r30, r31);", // IID10852 - "__ movzbl(r31, rcx);", // IID10853 -#endif // _LP64 - "__ movzwl(rcx, rdx);", // IID10854 - "__ movzwl(rdx, rbx);", // IID10855 + + static const uint8_t insns[] = + { #ifdef _LP64 - "__ movzwl(rbx, r8);", // IID10856 - "__ movzwl(r8, r9);", // IID10857 - "__ movzwl(r9, r10);", // IID10858 - "__ movzwl(r10, r11);", // IID10859 - "__ movzwl(r11, r12);", // IID10860 - "__ movzwl(r12, r13);", // IID10861 - "__ movzwl(r13, r14);", // IID10862 - "__ movzwl(r14, r15);", // IID10863 - "__ movzwl(r15, r16);", // IID10864 - "__ movzwl(r16, r17);", // IID10865 - "__ movzwl(r17, r18);", // IID10866 - "__ movzwl(r18, r19);", // IID10867 - "__ movzwl(r19, r20);", // IID10868 - "__ movzwl(r20, r21);", // IID10869 - "__ movzwl(r21, r22);", // IID10870 - "__ movzwl(r22, r23);", // IID10871 - "__ movzwl(r23, r24);", // IID10872 - "__ movzwl(r24, r25);", // IID10873 - "__ movzwl(r25, r26);", // IID10874 - "__ movzwl(r26, r27);", // IID10875 - "__ movzwl(r27, r28);", // IID10876 - "__ movzwl(r28, r29);", // IID10877 - "__ movzwl(r29, r30);", // IID10878 - "__ movzwl(r30, r31);", // IID10879 - "__ movzwl(r31, rcx);", // IID10880 + 0xd5, 0x94, 0xa5, 0xf6, // IID0 +#endif // _LP64 + 0x0f, 0xad, 0xd9, // IID1 +#ifdef _LP64 + 0xd5, 0x54, 0x13, 0xc2, // IID2 + 0xd5, 0x14, 0x3b, 0xc3, // IID3 + 0xd5, 0xd4, 0xaf, 0xcb, // IID4 + 0xf3, 0xd5, 0xc1, 0xb8, 0xdf, // IID5 + 0xd5, 0x50, 0x1b, 0xeb, // IID6 + 0xd5, 0x51, 0x2b, 0xcd, // IID7 + 0xf3, 0xd5, 0xc0, 0xbc, 0xea, // IID8 + 0xf3, 0xd5, 0x90, 0xbd, 0xcf, // IID9 + 0x45, 0x03, 0xd3, // IID10 + 0xd5, 0x41, 0x23, 0xee, // IID11 + 0xd5, 0x15, 0x0b, 0xe6, // IID12 + 0xd5, 0x51, 0x33, 0xde, // IID13 + 0xd5, 0x45, 0x8b, 0xdb, // IID14 + 0x45, 0x0f, 0xbc, 0xd4, // IID15 + 0xd5, 0xc1, 0xbd, 0xc2, // IID16 + 0xd5, 0x51, 0x87, 0xc4, // IID17 + 0xd5, 0x54, 0x85, 0xc8, // IID18 + 0xd5, 0x11, 0x00, 0x8c, 0x53, 0x23, 0x47, 0x30, 0x6f, // IID19 + 0x66, 0xd5, 0x50, 0x01, 0x8c, 0x8b, 0x57, 0x4c, 0x24, 0x17, // IID20 + 0xd5, 0x70, 0x01, 0x9c, 0x47, 0x19, 0xf4, 0x8d, 0x13, // IID21 + 0x43, 0x11, 0x8c, 0xd8, 0x8d, 0x85, 0xb0, 0xe9, // IID22 + 0xd5, 0x60, 0x20, 0xb4, 0xca, 0x81, 0xf1, 0xf7, 0x4d, // IID23 + 0xd5, 0x41, 0x21, 0xbf, 0x97, 0xb8, 0x77, 0xbe, // IID24 + 0xd5, 0x34, 0x38, 0x84, 0x14, 0x78, 0x8a, 0x7d, 0xe4, // IID25 + 0x66, 0xd5, 0x65, 0x39, 0xbc, 0xf1, 0x70, 0xad, 0x4e, 0x56, // IID26 + 0xd5, 0x23, 0x39, 0x8c, 0x82, 0xec, 0xff, 0x08, 0x0f, // IID27 + 0xd5, 0x53, 0x08, 0x9c, 0x3b, 0xc7, 0xea, 0x18, 0x0f, // IID28 + 0xd5, 0x36, 0x09, 0xa4, 0xb8, 0x90, 0x27, 0x45, 0x3a, // IID29 + 0xd5, 0x16, 0x30, 0x94, 0x2c, 0xb7, 0xe6, 0xdd, 0x61, // IID30 + 0xd5, 0x11, 0x31, 0x9b, 0x9d, 0x6b, 0x56, 0x88, // IID31 + 0x47, 0x29, 0x94, 0x19, 0x45, 0xf1, 0x20, 0x4e, // IID32 + 0xd5, 0x34, 0x88, 0x94, 0x3f, 0x89, 0xe4, 0x0a, 0xfc, // IID33 + 0xd5, 0x75, 0x89, 0xb4, 0x37, 0x66, 0x54, 0xac, 0x0f, // IID34 + 0xd5, 0xc4, 0xc0, 0xbb, 0x6f, 0xa6, 0xfd, 0x8f, // IID35 + 0x66, 0xd5, 0xf6, 0xc1, 0xac, 0x51, 0xdf, 0xfd, 0xf3, 0xac, // IID36 + 0xd5, 0xe1, 0xc1, 0x8c, 0x29, 0x41, 0xc9, 0x8c, 0x84, // IID37 + 0xd5, 0x13, 0x81, 0x94, 0xa0, 0xe5, 0x07, 0x1b, 0x69, 0x00, 0x00, 0x01, 0x00, // IID38 + 0x43, 0x83, 0xa4, 0x0e, 0xa9, 0xa6, 0xa2, 0xee, 0x10, // IID39 + 0xd5, 0x10, 0x80, 0x85, 0x53, 0x7c, 0xc1, 0xe2, 0x40, // IID40 + 0x66, 0x41, 0x81, 0x84, 0x24, 0x9a, 0xcf, 0x7a, 0x3a, 0x00, 0x10, // IID41 + 0xd5, 0x13, 0x81, 0x84, 0x76, 0xea, 0x12, 0x8c, 0xdf, 0x00, 0x01, 0x00, 0x00, // IID42 + 0xd5, 0x31, 0x80, 0xbc, 0x14, 0xd5, 0x26, 0xd3, 0x6f, 0x10, // IID43 + 0x66, 0x43, 0x81, 0xbc, 0x74, 0x8f, 0x56, 0xe6, 0x2a, 0x00, 0x01, // IID44 + 0xd5, 0x33, 0x81, 0xbc, 0xf0, 0x54, 0x51, 0x46, 0xee, 0x00, 0x00, 0x10, 0x00, // IID45 + 0xd5, 0x32, 0xd1, 0xbc, 0xb6, 0x15, 0x91, 0xcb, 0x60, // IID46 + 0xd5, 0x13, 0xc1, 0xa4, 0x47, 0xb9, 0x8a, 0x6d, 0x23, 0x10, // IID47 + 0xd5, 0x12, 0x81, 0x9c, 0x65, 0xe8, 0x60, 0x64, 0x82, 0x00, 0x00, 0x00, 0x01, // IID48 + 0xd5, 0x31, 0xc1, 0xac, 0x0d, 0xea, 0x0d, 0xab, 0x83, 0x08, // IID49 + 0xd5, 0x23, 0x83, 0xac, 0x98, 0x3a, 0x1d, 0x6f, 0xee, 0x10, // IID50 + 0x81, 0xb2, 0x96, 0x33, 0xdd, 0x50, 0x00, 0x00, 0x10, 0x00, // IID51 + 0xd5, 0x10, 0x80, 0x8c, 0x24, 0xec, 0x09, 0x2e, 0x82, 0x40, // IID52 + 0xd5, 0x10, 0x83, 0x8a, 0x9f, 0x2a, 0x85, 0x6f, 0x10, // IID53 + 0xd5, 0x12, 0xc6, 0x84, 0x84, 0xaa, 0xe2, 0x36, 0x04, 0x01, // IID54 + 0x42, 0xc7, 0x84, 0x71, 0x84, 0xdf, 0x83, 0x08, 0x10, 0x00, 0x00, 0x00, // IID55 + 0x43, 0xf6, 0x84, 0x53, 0x65, 0xfc, 0x3d, 0xe0, 0x10, // IID56 + 0xd5, 0x11, 0xf7, 0x85, 0x03, 0xf0, 0xb9, 0x73, 0x00, 0x00, 0x00, 0x04, // IID57 + 0xd5, 0x11, 0x81, 0xbc, 0x8d, 0x92, 0xb0, 0xa2, 0x4c, 0x00, 0x00, 0x40, 0x00, // IID58 + 0xd5, 0x26, 0x03, 0x84, 0x82, 0x24, 0xdb, 0xea, 0xe1, // IID59 + 0xd5, 0x70, 0x23, 0x9c, 0x64, 0x92, 0x68, 0x28, 0x06, // IID60 + 0x45, 0x3a, 0x9d, 0x62, 0x40, 0x1f, 0xbd, // IID61 + 0xd5, 0x62, 0x3b, 0xa4, 0xf3, 0xcb, 0x88, 0xb6, 0xcf, // IID62 + 0xf3, 0x46, 0x0f, 0xbd, 0x84, 0x4a, 0x9e, 0xe9, 0xe2, 0x00, // IID63 + 0xd5, 0x37, 0x0b, 0x8c, 0x4d, 0x63, 0x9f, 0x16, 0x50, // IID64 + 0xd5, 0x71, 0x13, 0x8c, 0xef, 0x70, 0xd1, 0xef, 0x79, // IID65 + 0xd5, 0xc1, 0xaf, 0xb8, 0x8d, 0xe0, 0xad, 0xf5, // IID66 + 0xf3, 0xd5, 0xc5, 0xb8, 0xb2, 0x01, 0x29, 0x35, 0x44, // IID67 + 0xd5, 0x52, 0x1b, 0x84, 0x72, 0x76, 0xd8, 0x57, 0xf2, // IID68 + 0xd5, 0x50, 0x2b, 0x8e, 0xb3, 0xaa, 0x63, 0x2d, // IID69 + 0xf3, 0xd5, 0xd2, 0xbc, 0xbc, 0x1d, 0x97, 0x8b, 0x43, 0xe7, // IID70 + 0xd5, 0x14, 0x32, 0x8c, 0x13, 0x13, 0xf8, 0x9d, 0xa0, // IID71 + 0x66, 0xd5, 0x16, 0x33, 0x9c, 0x95, 0xd5, 0x60, 0x38, 0x9c, // IID72 + 0xd5, 0x55, 0x33, 0xac, 0xcf, 0x0f, 0x3c, 0xd9, 0x34, // IID73 + 0xd5, 0x61, 0x8a, 0x8c, 0x90, 0x29, 0xc5, 0x00, 0xc7, // IID74 + 0xd5, 0x56, 0x8b, 0xbc, 0x9c, 0xf4, 0xb8, 0xdc, 0xe2, // IID75 + 0xd5, 0x46, 0x8d, 0xbc, 0xa3, 0xeb, 0xbd, 0xb5, 0xc4, // IID76 + 0xd5, 0x73, 0x86, 0xa4, 0x06, 0x44, 0x7d, 0xb1, 0xa3, // IID77 + 0x66, 0xd5, 0x25, 0x87, 0xac, 0xea, 0x03, 0x4a, 0xbd, 0x19, // IID78 + 0xd5, 0x52, 0x87, 0xbc, 0xa8, 0x2a, 0x6c, 0xfd, 0x95, // IID79 + 0x45, 0x85, 0xa9, 0x61, 0xff, 0xa6, 0x34, // IID80 + 0xd5, 0x10, 0x80, 0xc7, 0x04, // IID81 + 0xd5, 0x11, 0x81, 0xc4, 0x00, 0x00, 0x01, 0x00, // IID82 +#endif // _LP64 + 0x81, 0xe2, 0x00, 0x00, 0x01, 0x00, // IID83 +#ifdef _LP64 + 0xd5, 0x11, 0x81, 0xd3, 0x00, 0x00, 0x10, 0x00, // IID84 + 0x41, 0x80, 0xfd, 0x04, // IID85 + 0xd5, 0x11, 0x81, 0xfd, 0x00, 0x00, 0x00, 0x10, // IID86 + 0xd5, 0x10, 0xc1, 0xd4, 0x10, // IID87 + 0xd5, 0x11, 0xc1, 0xc1, 0x02, // IID88 +#endif // _LP64 + 0xc1, 0xca, 0x04, // IID89 + 0xd1, 0xf9, // IID90 +#ifdef _LP64 + 0xd5, 0x10, 0xc1, 0xe3, 0x10, // IID91 + 0x41, 0x83, 0xd9, 0x01, // IID92 + 0xd5, 0x10, 0xc1, 0xe4, 0x08, // IID93 +#endif // _LP64 + 0xd1, 0xe9, // IID94 +#ifdef _LP64 + 0xd5, 0x10, 0x81, 0xeb, 0x00, 0x00, 0x00, 0x01, // IID95 + 0xd5, 0x10, 0x81, 0xf0, 0x00, 0x10, 0x00, 0x00, // IID96 + 0xd5, 0x11, 0xb8, 0x00, 0x00, 0x01, 0x00, // IID97 + 0xd5, 0x10, 0xf6, 0xc4, 0x40, // IID98 + 0xd5, 0x11, 0xf7, 0xc4, 0x00, 0x00, 0x00, 0x01, // IID99 + 0xd5, 0x11, 0x81, 0xed, 0x00, 0x00, 0x04, 0x00, // IID100 + 0xd5, 0xb7, 0x40, 0x84, 0x62, 0x6d, 0xf0, 0x10, 0x02, // IID101 + 0xd5, 0x90, 0x41, 0x9c, 0x1a, 0xd6, 0x31, 0xb0, 0xd9, // IID102 + 0xd5, 0xf6, 0x42, 0xac, 0x01, 0xcb, 0x6a, 0xc0, 0x46, // IID103 + 0xd5, 0xd3, 0x43, 0x8c, 0xd9, 0xab, 0x0b, 0xde, 0xc4, // IID104 + 0xd5, 0xf2, 0x44, 0xbc, 0x3c, 0x85, 0xce, 0xfc, 0xa5, // IID105 + 0xd5, 0xd7, 0x45, 0xbc, 0xbf, 0x9b, 0xd1, 0x03, 0xac, // IID106 + 0xd5, 0xc4, 0x46, 0xa4, 0xca, 0x61, 0xdd, 0x36, 0xc4, // IID107 + 0xd5, 0xe4, 0x47, 0xbc, 0xda, 0x1c, 0x76, 0xf1, 0x7b, // IID108 + 0xd5, 0xb0, 0x48, 0x94, 0x11, 0xfd, 0x03, 0x5d, 0xe2, // IID109 + 0xd5, 0xb4, 0x49, 0x8c, 0xbd, 0xb6, 0xba, 0x66, 0xd8, // IID110 + 0xd5, 0xc5, 0x4a, 0x9d, 0x64, 0xdb, 0xb3, 0x9a, // IID111 + 0xd5, 0x93, 0x4b, 0x94, 0xd0, 0xb2, 0xbe, 0x96, 0x6c, // IID112 + 0x46, 0x0f, 0x4c, 0x8c, 0xc1, 0x92, 0x18, 0x3e, 0x57, // IID113 + 0xd5, 0xd7, 0x4d, 0xbc, 0xb2, 0xb1, 0x10, 0x71, 0x71, // IID114 + 0xd5, 0xd6, 0x4e, 0x84, 0xb3, 0xd7, 0xaa, 0x9f, 0x11, // IID115 + 0x47, 0x0f, 0x4f, 0xa4, 0x25, 0x05, 0x78, 0x53, 0x0d, // IID116 + 0x41, 0x0f, 0x90, 0xc2, // IID117 +#endif // _LP64 + 0x0f, 0x91, 0xc3, // IID118 +#ifdef _LP64 + 0x41, 0x0f, 0x92, 0xc5, // IID119 + 0xd5, 0x90, 0x93, 0xc7, // IID120 + 0xd5, 0x91, 0x94, 0xc0, // IID121 + 0x41, 0x0f, 0x95, 0xc7, // IID122 + 0xd5, 0x90, 0x96, 0xc5, // IID123 + 0xd5, 0x90, 0x97, 0xc1, // IID124 + 0x41, 0x0f, 0x98, 0xc2, // IID125 + 0xd5, 0x91, 0x99, 0xc0, // IID126 + 0xd5, 0x90, 0x9a, 0xc0, // IID127 + 0xd5, 0x91, 0x9b, 0xc4, // IID128 + 0x41, 0x0f, 0x9c, 0xc3, // IID129 + 0xd5, 0x91, 0x9d, 0xc1, // IID130 + 0xd5, 0x90, 0x9e, 0xc2, // IID131 + 0x41, 0x0f, 0x9f, 0xc6, // IID132 + 0xd5, 0x11, 0xf7, 0xf6, // IID133 + 0xd5, 0x10, 0xf7, 0xff, // IID134 + 0xd5, 0x11, 0xf7, 0xec, // IID135 + 0xd5, 0x11, 0xf7, 0xe7, // IID136 + 0xd5, 0x11, 0xf7, 0xdb, // IID137 + 0xd5, 0x10, 0xf7, 0xd0, // IID138 +#endif // _LP64 + 0xd3, 0xc2, // IID139 +#ifdef _LP64 + 0x41, 0xd3, 0xcc, // IID140 + 0x41, 0xd3, 0xfe, // IID141 + 0xd5, 0x10, 0xd3, 0xe3, // IID142 + 0x41, 0xd3, 0xe2, // IID143 + 0xd5, 0x10, 0xd3, 0xec, // IID144 +#endif // _LP64 + 0xff, 0xc3, // IID145 +#ifdef _LP64 + 0x41, 0xff, 0xce, // IID146 + 0x41, 0xf7, 0xa4, 0x24, 0xa2, 0x05, 0x5b, 0xa8, // IID147 + 0xf7, 0x9b, 0x39, 0x30, 0x4b, 0xc2, // IID148 + 0xd5, 0x10, 0xd3, 0xbd, 0xd0, 0x52, 0x8f, 0x81, // IID149 + 0xd5, 0x32, 0xd3, 0xa4, 0xe5, 0x37, 0x94, 0xba, 0xdc, // IID150 + 0x43, 0xd3, 0xac, 0x6b, 0xbc, 0x03, 0xff, 0xf1, // IID151 + 0xd5, 0x10, 0xff, 0x83, 0x96, 0x2a, 0x95, 0xa1, // IID152 + 0xd5, 0x20, 0xff, 0x8c, 0x21, 0x3c, 0x46, 0xcf, 0xda, // IID153 + 0xd5, 0x63, 0x69, 0x8c, 0x40, 0x26, 0xcf, 0xfe, 0x2e, 0x00, 0x00, 0x10, 0x00, // IID154 + 0x45, 0x69, 0xc8, 0x00, 0x00, 0x00, 0x10, // IID155 + 0x45, 0x0f, 0xa4, 0xfa, 0x08, // IID156 + 0xd5, 0xd1, 0xac, 0xf5, 0x02, // IID157 + 0xd5, 0x94, 0xb6, 0xb3, 0x7c, 0xca, 0x3c, 0xf9, // IID158 + 0xd5, 0xe7, 0xb7, 0x8c, 0x1c, 0x44, 0xfa, 0x05, 0x2d, // IID159 + 0xd5, 0x97, 0xbe, 0xa4, 0x3e, 0xc1, 0xca, 0xbc, 0x65, // IID160 + 0xd5, 0xe7, 0xbf, 0x94, 0x02, 0x59, 0x74, 0x70, 0x1d, // IID161 + 0xd5, 0xc1, 0xb6, 0xd0, // IID162 + 0xd5, 0xc5, 0xb7, 0xf9, // IID163 + 0xd5, 0x94, 0xbe, 0xfe, // IID164 + 0xd5, 0xd5, 0xbf, 0xc0, // IID165 + 0xd5, 0xe3, 0xb0, 0x94, 0x64, 0xa1, 0x59, 0xaa, 0xb7, // IID166 + 0x66, 0xd5, 0xc6, 0xb1, 0xa4, 0xf2, 0x58, 0xa5, 0xf5, 0x16, // IID167 + 0xd5, 0x90, 0xb1, 0x94, 0x52, 0x9c, 0x8d, 0x25, 0x50, // IID168 + 0x4c, 0x13, 0xcb, // IID169 + 0xd5, 0x5d, 0x3b, 0xd0, // IID170 + 0x4c, 0x0f, 0xaf, 0xf2, // IID171 + 0xf3, 0xd5, 0xdd, 0xb8, 0xce, // IID172 + 0xd5, 0x5c, 0x1b, 0xc3, // IID173 + 0x4d, 0x2b, 0xfb, // IID174 + 0xf3, 0xd5, 0xd8, 0xbc, 0xd5, // IID175 + 0xf3, 0xd5, 0x9d, 0xbd, 0xfb, // IID176 + 0xd5, 0x58, 0x03, 0xec, // IID177 + 0xd5, 0x1d, 0x23, 0xda, // IID178 + 0xd5, 0x4d, 0x0b, 0xef, // IID179 + 0xd5, 0x5c, 0x33, 0xc5, // IID180 + 0x4d, 0x8b, 0xf5, // IID181 + 0xd5, 0x9c, 0xbc, 0xde, // IID182 + 0xd5, 0x9c, 0xbd, 0xf7, // IID183 + 0xd5, 0x98, 0xa3, 0xce, // IID184 + 0xd5, 0x5d, 0x87, 0xcd, // IID185 + 0x4d, 0x85, 0xf8, // IID186 + 0xd5, 0x4b, 0x01, 0x84, 0xd6, 0xfe, 0x05, 0x19, 0xc9, // IID187 + 0xd5, 0x4a, 0x21, 0x94, 0xc3, 0x48, 0xde, 0x65, 0xd8, // IID188 + 0xd5, 0x1d, 0x39, 0xa8, 0xef, 0xc9, 0xc3, 0x62, // IID189 + 0xd5, 0x2d, 0x09, 0x9c, 0xb3, 0x78, 0xb3, 0x9f, 0x41, // IID190 + 0xd5, 0x1f, 0x31, 0xac, 0xb1, 0x23, 0xb6, 0x4b, 0xcd, // IID191 + 0xd5, 0x7b, 0x29, 0x9c, 0xfc, 0x61, 0xd3, 0xe1, 0x6c, // IID192 + 0xd5, 0x3f, 0x89, 0x9c, 0x89, 0x84, 0x89, 0x0a, 0xfc, // IID193 + 0xd5, 0xf8, 0xc1, 0xa4, 0xcb, 0x6c, 0xf0, 0xeb, 0x1f, // IID194 + 0xd5, 0x39, 0x81, 0xa4, 0x4a, 0xfb, 0xa0, 0x79, 0x94, 0x00, 0x00, 0x01, 0x00, // IID195 + 0xd5, 0x19, 0x81, 0x83, 0x79, 0xa2, 0x36, 0x91, 0x00, 0x00, 0x01, 0x00, // IID196 + 0xd5, 0x2a, 0x81, 0xbc, 0x93, 0x5c, 0x41, 0x15, 0xfe, 0x00, 0x00, 0x10, 0x00, // IID197 + 0xd5, 0x28, 0xc1, 0xbc, 0x1b, 0xe8, 0x3d, 0x3c, 0x3c, 0x08, // IID198 + 0xd5, 0x38, 0xc1, 0xa4, 0x7c, 0x6d, 0x9b, 0x51, 0x68, 0x08, // IID199 + 0xd5, 0x39, 0x83, 0x9c, 0x37, 0x7b, 0xe1, 0xc2, 0x84, 0x10, // IID200 + 0xd5, 0x29, 0xc1, 0xac, 0xd7, 0x24, 0xd8, 0xd9, 0x04, 0x04, // IID201 + 0xd5, 0x2a, 0x83, 0xac, 0xaa, 0x85, 0xea, 0x4a, 0x7e, 0x01, // IID202 + 0xd5, 0x1a, 0x81, 0xb4, 0x57, 0x20, 0xc6, 0x95, 0x28, 0x00, 0x00, 0x00, 0x01, // IID203 + 0x4b, 0x83, 0x8c, 0x2e, 0x65, 0xc6, 0xe4, 0x88, 0x01, // IID204 + 0xd5, 0x18, 0xc7, 0x86, 0xa6, 0x64, 0xba, 0x9c, 0x00, 0x01, 0x00, 0x00, // IID205 + 0x49, 0xf7, 0x85, 0x3b, 0x6e, 0x69, 0xf4, 0xff, 0xff, 0xff, 0xff, // IID206 + 0xd5, 0x49, 0x03, 0x8f, 0xf3, 0xb4, 0x49, 0xae, // IID207 + 0xd5, 0x18, 0x23, 0x8c, 0xc8, 0xac, 0xb4, 0x71, 0xe3, // IID208 + 0xd5, 0x58, 0x3b, 0xbc, 0xc9, 0xa0, 0xaa, 0x8f, 0xbb, // IID209 + 0xf3, 0xd5, 0xd8, 0xbd, 0x9b, 0x92, 0xe7, 0x7f, 0x48, // IID210 + 0xd5, 0x1c, 0x0b, 0x99, 0xd7, 0xbc, 0x21, 0x9a, // IID211 + 0xd5, 0x4d, 0x13, 0xa9, 0xfd, 0x23, 0x6d, 0x8f, // IID212 + 0xd5, 0xbf, 0xaf, 0x8c, 0xd2, 0x09, 0x78, 0x7d, 0xee, // IID213 + 0xf3, 0xd5, 0xe9, 0xb8, 0x9c, 0x5f, 0x6b, 0x10, 0xce, 0x91, // IID214 + 0xd5, 0x5c, 0x1b, 0xb7, 0xa2, 0xa3, 0xab, 0xb9, // IID215 + 0xd5, 0x79, 0x2b, 0xbc, 0xd7, 0xd8, 0x37, 0x3c, 0x66, // IID216 + 0xf3, 0xd5, 0xff, 0xbc, 0x84, 0xc8, 0x0f, 0x87, 0xa5, 0xb9, // IID217 + 0xd5, 0x2d, 0x33, 0xb4, 0x5f, 0xfa, 0xaf, 0x96, 0x41, // IID218 + 0xd5, 0x3b, 0x8b, 0x94, 0x69, 0x57, 0x61, 0x5a, 0x11, // IID219 + 0xd5, 0x7b, 0x8d, 0x9c, 0xbc, 0x33, 0xf9, 0x82, 0x6b, // IID220 + 0xf2, 0xd5, 0xb9, 0x2c, 0x8c, 0xe8, 0x15, 0x66, 0x23, 0xc6, // IID221 + 0xd5, 0x7e, 0x87, 0xac, 0xc1, 0x1d, 0xf0, 0x02, 0x59, // IID222 + 0xd5, 0x3f, 0x85, 0xa4, 0xa8, 0xfc, 0x5b, 0x86, 0x08, // IID223 + 0x49, 0x83, 0xc2, 0x10, // IID224 + 0xd5, 0x19, 0x81, 0xe2, 0x00, 0x01, 0x00, 0x00, // IID225 + 0x48, 0x83, 0xd1, 0x01, // IID226 + 0xd5, 0x18, 0x81, 0xfd, 0x00, 0x00, 0x01, 0x00, // IID227 + 0xd5, 0x19, 0xc1, 0xd4, 0x04, // IID228 + 0xd5, 0x19, 0xc1, 0xdc, 0x10, // IID229 + 0xd5, 0x18, 0xd1, 0xc2, // IID230 + 0xd5, 0x19, 0xc1, 0xca, 0x02, // IID231 + 0xd5, 0x18, 0xc1, 0xfb, 0x02, // IID232 + 0x49, 0xc1, 0xe6, 0x08, // IID233 + 0x49, 0x81, 0xda, 0x00, 0x00, 0x01, 0x00, // IID234 + 0xd5, 0x19, 0xd1, 0xe6, // IID235 + 0x49, 0xc1, 0xef, 0x08, // IID236 + 0xd5, 0x18, 0x81, 0xed, 0x00, 0x00, 0x10, 0x00, // IID237 + 0x48, 0x81, 0xf3, 0x00, 0x00, 0x00, 0x10, // IID238 + 0xd5, 0x18, 0xc7, 0xc3, 0x10, 0x00, 0x00, 0x00, // IID239 + 0xd5, 0x18, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, // IID240 + 0xd5, 0x98, 0xba, 0xe5, 0x01, // IID241 + 0x49, 0xf7, 0xc7, 0x00, 0x00, 0xff, 0xff, // IID242 + 0xd5, 0x18, 0x81, 0xcd, 0x00, 0x00, 0x00, 0x40, // IID243 + 0xd5, 0x18, 0x81, 0xeb, 0x00, 0x00, 0x01, 0x00, // IID244 + 0xd5, 0x9d, 0x40, 0xbd, 0x66, 0xde, 0x67, 0xa3, // IID245 + 0xd5, 0x98, 0x41, 0x8d, 0x81, 0xc5, 0x2c, 0x02, // IID246 + 0xd5, 0x9f, 0x42, 0xbc, 0xad, 0x47, 0x70, 0x69, 0xa1, // IID247 + 0xd5, 0xdd, 0x43, 0x90, 0x94, 0x68, 0x0c, 0x44, // IID248 + 0xd5, 0xfa, 0x44, 0x8c, 0xd7, 0x4e, 0x8b, 0x55, 0x23, // IID249 + 0xd5, 0xbe, 0x45, 0x8c, 0xe8, 0x37, 0x5c, 0x76, 0xed, // IID250 + 0x4d, 0x0f, 0x46, 0x83, 0x34, 0xcb, 0x1e, 0xb6, // IID251 + 0xd5, 0xed, 0x47, 0x94, 0x63, 0x86, 0xfa, 0x06, 0xc1, // IID252 + 0xd5, 0x9f, 0x48, 0x9c, 0xaa, 0x9f, 0x8f, 0xd1, 0x4b, // IID253 + 0x4f, 0x0f, 0x49, 0x84, 0xd9, 0x28, 0xa5, 0x42, 0x4b, // IID254 + 0xd5, 0x9e, 0x4a, 0xa4, 0x4b, 0x1c, 0x9a, 0x55, 0x68, // IID255 + 0xd5, 0xf8, 0x4b, 0xb4, 0x4a, 0x80, 0x8e, 0x4d, 0x2c, // IID256 + 0xd5, 0xfe, 0x4c, 0x94, 0x32, 0x92, 0x76, 0x17, 0xd5, // IID257 + 0xd5, 0xc9, 0x4d, 0xb3, 0x22, 0xa6, 0xef, 0x4f, // IID258 + 0xd5, 0xfe, 0x4e, 0xa4, 0x5a, 0x34, 0x8c, 0x7a, 0x6b, // IID259 + 0xd5, 0xf8, 0x4f, 0xa4, 0x27, 0x3b, 0xda, 0x18, 0xed, // IID260 + 0x41, 0xff, 0xd1, // IID261 + 0xd5, 0x18, 0xf7, 0xf6, // IID262 + 0xd5, 0x19, 0xf7, 0xfd, // IID263 + 0x48, 0xf7, 0xeb, // IID264 + 0xd5, 0x19, 0xf7, 0xe3, // IID265 + 0x48, 0xf7, 0xdb, // IID266 + 0xd5, 0x18, 0xf7, 0xd1, // IID267 + 0xd5, 0x19, 0xd3, 0xc1, // IID268 + 0x48, 0xd3, 0xcb, // IID269 + 0xd5, 0x18, 0xd3, 0xf9, // IID270 + 0xd5, 0x19, 0xd3, 0xe4, // IID271 + 0xd5, 0x19, 0xd3, 0xe4, // IID272 + 0xd5, 0x19, 0xd3, 0xee, // IID273 + 0xd5, 0x19, 0xff, 0xc3, // IID274 + 0x48, 0xff, 0xca, // IID275 + 0xd5, 0x19, 0x53, // IID276 + 0xd5, 0x09, 0x5a, // IID277 + 0xd5, 0x11, 0xff, 0x93, 0xfb, 0x78, 0x24, 0xdd, // IID278 + 0xd5, 0x39, 0xf7, 0xa4, 0x2b, 0x64, 0x00, 0xa6, 0xe0, // IID279 + 0xd5, 0x18, 0xf7, 0x9c, 0xcb, 0x12, 0xb8, 0x47, 0x7a, // IID280 + 0xd5, 0x38, 0xd3, 0xbc, 0x6a, 0xba, 0x85, 0x7a, 0xb7, // IID281 + 0xd5, 0x19, 0xd3, 0xa0, 0xd4, 0x25, 0xd4, 0x85, // IID282 + 0xd5, 0x19, 0xd3, 0xa8, 0x2f, 0xd9, 0xab, 0x01, // IID283 + 0x4b, 0xff, 0x84, 0xc9, 0x20, 0x25, 0xa9, 0x31, // IID284 + 0x4b, 0xff, 0x8c, 0x01, 0xbd, 0xb4, 0x14, 0x7f, // IID285 + 0xd5, 0x1f, 0x69, 0xb4, 0x7d, 0x9c, 0xcf, 0x81, 0x52, 0x00, 0x01, 0x00, 0x00, // IID286 + 0xd5, 0x59, 0x69, 0xc4, 0x00, 0x00, 0x10, 0x00, // IID287 + 0xd5, 0xdc, 0xa4, 0xc1, 0x02, // IID288 + 0xd5, 0x9c, 0xac, 0xd8, 0x02, // IID289 + 0x62, 0xd4, 0x24, 0x18, 0x8f, 0xc2, // IID290 + 0x62, 0xd4, 0xbc, 0x10, 0x8f, 0xc7, // IID291 + 0x62, 0xdc, 0x24, 0x18, 0xff, 0xf4, // IID292 + 0x62, 0xd4, 0x84, 0x10, 0xff, 0xf4, // IID293 + 0xd5, 0xfc, 0xb6, 0x84, 0x06, 0x37, 0xe8, 0x1b, 0x51, // IID294 + 0xd5, 0xaf, 0xb7, 0xbc, 0x97, 0x12, 0x6b, 0x78, 0xfc, // IID295 + 0xd5, 0xbd, 0xbe, 0xbc, 0xc1, 0xbf, 0xd8, 0xf6, 0x85, // IID296 + 0xd5, 0xb9, 0xbf, 0x94, 0x9c, 0x6a, 0xda, 0x79, 0x00, // IID297 + 0xd5, 0xcd, 0xb6, 0xd9, // IID298 + 0xd5, 0xdc, 0xb7, 0xcd, // IID299 + 0x4d, 0x0f, 0xbe, 0xf4, // IID300 + 0xd5, 0xc9, 0xbf, 0xfb, // IID301 + 0xd5, 0xcd, 0xb1, 0xb4, 0x24, 0x21, 0x8b, 0x56, 0x9a, // IID302 #endif // _LP64 - "__ movsbl(rcx, rdx);", // IID10881 - "__ movsbl(rdx, rbx);", // IID10882 + }; + + static const unsigned int insns_lens[] = + { #ifdef _LP64 - "__ movsbl(rbx, r8);", // IID10883 - "__ movsbl(r8, r9);", // IID10884 - "__ movsbl(r9, r10);", // IID10885 - "__ movsbl(r10, r11);", // IID10886 - "__ movsbl(r11, r12);", // IID10887 - "__ movsbl(r12, r13);", // IID10888 - "__ movsbl(r13, r14);", // IID10889 - "__ movsbl(r14, r15);", // IID10890 - "__ movsbl(r15, r16);", // IID10891 - "__ movsbl(r16, r17);", // IID10892 - "__ movsbl(r17, r18);", // IID10893 - "__ movsbl(r18, r19);", // IID10894 - "__ movsbl(r19, r20);", // IID10895 - "__ movsbl(r20, r21);", // IID10896 - "__ movsbl(r21, r22);", // IID10897 - "__ movsbl(r22, r23);", // IID10898 - "__ movsbl(r23, r24);", // IID10899 - "__ movsbl(r24, r25);", // IID10900 - "__ movsbl(r25, r26);", // IID10901 - "__ movsbl(r26, r27);", // IID10902 - "__ movsbl(r27, r28);", // IID10903 - "__ movsbl(r28, r29);", // IID10904 - "__ movsbl(r29, r30);", // IID10905 - "__ movsbl(r30, r31);", // IID10906 - "__ movsbl(r31, rcx);", // IID10907 + 4, // IID0 #endif // _LP64 - "__ movswl(rcx, rdx);", // IID10908 - "__ movswl(rdx, rbx);", // IID10909 + 3, // IID1 #ifdef _LP64 - "__ movswl(rbx, r8);", // IID10910 - "__ movswl(r8, r9);", // IID10911 - "__ movswl(r9, r10);", // IID10912 - "__ movswl(r10, r11);", // IID10913 - "__ movswl(r11, r12);", // IID10914 - "__ movswl(r12, r13);", // IID10915 - "__ movswl(r13, r14);", // IID10916 - "__ movswl(r14, r15);", // IID10917 - "__ movswl(r15, r16);", // IID10918 - "__ movswl(r16, r17);", // IID10919 - "__ movswl(r17, r18);", // IID10920 - "__ movswl(r18, r19);", // IID10921 - "__ movswl(r19, r20);", // IID10922 - "__ movswl(r20, r21);", // IID10923 - "__ movswl(r21, r22);", // IID10924 - "__ movswl(r22, r23);", // IID10925 - "__ movswl(r23, r24);", // IID10926 - "__ movswl(r24, r25);", // IID10927 - "__ movswl(r25, r26);", // IID10928 - "__ movswl(r26, r27);", // IID10929 - "__ movswl(r27, r28);", // IID10930 - "__ movswl(r28, r29);", // IID10931 - "__ movswl(r29, r30);", // IID10932 - "__ movswl(r30, r31);", // IID10933 - "__ movswl(r31, rcx);", // IID10934 + 4, // IID2 + 4, // IID3 + 4, // IID4 + 5, // IID5 + 4, // IID6 + 4, // IID7 + 5, // IID8 + 5, // IID9 + 3, // IID10 + 4, // IID11 + 4, // IID12 + 4, // IID13 + 4, // IID14 + 4, // IID15 + 4, // IID16 + 4, // IID17 + 4, // IID18 + 9, // IID19 + 10, // IID20 + 9, // IID21 + 8, // IID22 + 9, // IID23 + 8, // IID24 + 9, // IID25 + 10, // IID26 + 9, // IID27 + 9, // IID28 + 9, // IID29 + 9, // IID30 + 8, // IID31 + 8, // IID32 + 9, // IID33 + 9, // IID34 + 8, // IID35 + 10, // IID36 + 9, // IID37 + 13, // IID38 + 9, // IID39 + 9, // IID40 + 11, // IID41 + 13, // IID42 + 10, // IID43 + 11, // IID44 + 13, // IID45 + 9, // IID46 + 10, // IID47 + 13, // IID48 + 10, // IID49 + 10, // IID50 + 10, // IID51 + 10, // IID52 + 9, // IID53 + 10, // IID54 + 12, // IID55 + 9, // IID56 + 12, // IID57 + 13, // IID58 + 9, // IID59 + 9, // IID60 + 7, // IID61 + 9, // IID62 + 10, // IID63 + 9, // IID64 + 9, // IID65 + 8, // IID66 + 9, // IID67 + 9, // IID68 + 8, // IID69 + 10, // IID70 + 9, // IID71 + 10, // IID72 + 9, // IID73 + 9, // IID74 + 9, // IID75 + 9, // IID76 + 9, // IID77 + 10, // IID78 + 9, // IID79 + 7, // IID80 + 5, // IID81 + 8, // IID82 +#endif // _LP64 + 6, // IID83 +#ifdef _LP64 + 8, // IID84 + 4, // IID85 + 8, // IID86 + 5, // IID87 + 5, // IID88 #endif // _LP64 - "__ cmpxchgb(rcx, Address(rdx, rbx, (Address::ScaleFactor)3, +0x51b8d2e4));", // IID10935 + 3, // IID89 + 2, // IID90 #ifdef _LP64 - "__ cmpxchgb(rdx, Address(rbx, +0x2ac908bc));", // IID10936 - "__ cmpxchgb(rbx, Address(r8, +0x7cf9b5cc));", // IID10937 - "__ cmpxchgb(r8, Address(r9, r10, (Address::ScaleFactor)3, +0x5d6e2310));", // IID10938 - "__ cmpxchgb(r9, Address(r10, r11, (Address::ScaleFactor)1, -0x5d008840));", // IID10939 - "__ cmpxchgb(r10, Address(r11, r12, (Address::ScaleFactor)1, +0xdcc3afb));", // IID10940 - "__ cmpxchgb(r11, Address(r12, r13, (Address::ScaleFactor)1, -0x3a642be6));", // IID10941 - "__ cmpxchgb(r12, Address(r13, r14, (Address::ScaleFactor)2, +0x764a4522));", // IID10942 - "__ cmpxchgb(r13, Address(r14, r15, (Address::ScaleFactor)0, -0x3e62f3b3));", // IID10943 - "__ cmpxchgb(r14, Address(r15, r16, (Address::ScaleFactor)2, -0x41b29e1b));", // IID10944 - "__ cmpxchgb(r15, Address(r16, r17, (Address::ScaleFactor)1, +0x1bc358bd));", // IID10945 - "__ cmpxchgb(r16, Address(r17, r18, (Address::ScaleFactor)1, -0x6fbbb1e6));", // IID10946 - "__ cmpxchgb(r17, Address(r18, r19, (Address::ScaleFactor)0, +0x6c5368b6));", // IID10947 - "__ cmpxchgb(r18, Address(r19, -0x203fe70b));", // IID10948 - "__ cmpxchgb(r19, Address(r20, r21, (Address::ScaleFactor)3, +0x44d8437e));", // IID10949 - "__ cmpxchgb(r20, Address(r21, r22, (Address::ScaleFactor)2, +0x14c6de41));", // IID10950 - "__ cmpxchgb(r21, Address(r22, r23, (Address::ScaleFactor)0, -0x76a8bde0));", // IID10951 - "__ cmpxchgb(r22, Address(r23, r24, (Address::ScaleFactor)1, -0x115b297f));", // IID10952 - "__ cmpxchgb(r23, Address(r24, r25, (Address::ScaleFactor)0, +0x2fa53e4f));", // IID10953 - "__ cmpxchgb(r24, Address(r25, r26, (Address::ScaleFactor)3, +0x2be61aca));", // IID10954 - "__ cmpxchgb(r25, Address(r26, -0x20cd1eaf));", // IID10955 - "__ cmpxchgb(r26, Address(r27, r28, (Address::ScaleFactor)1, -0x4683fd79));", // IID10956 - "__ cmpxchgb(r27, Address(r28, -0x6dca93cb));", // IID10957 - "__ cmpxchgb(r28, Address(r29, r30, (Address::ScaleFactor)0, +0x3fd41297));", // IID10958 - "__ cmpxchgb(r29, Address(r30, +0x62ebe77e));", // IID10959 - "__ cmpxchgb(r30, Address(r31, rcx, (Address::ScaleFactor)0, +0x7d4a66de));", // IID10960 - "__ cmpxchgb(r31, Address(rcx, +0x5e94ba2b));", // IID10961 + 5, // IID91 + 4, // IID92 + 5, // IID93 +#endif // _LP64 + 2, // IID94 +#ifdef _LP64 + 8, // IID95 + 8, // IID96 + 7, // IID97 + 5, // IID98 + 8, // IID99 + 8, // IID100 + 9, // IID101 + 9, // IID102 + 9, // IID103 + 9, // IID104 + 9, // IID105 + 9, // IID106 + 9, // IID107 + 9, // IID108 + 9, // IID109 + 9, // IID110 + 8, // IID111 + 9, // IID112 + 9, // IID113 + 9, // IID114 + 9, // IID115 + 9, // IID116 + 4, // IID117 #endif // _LP64 - "__ cmpxchgw(rcx, Address(rdx, rbx, (Address::ScaleFactor)0, -0x32b0a601));", // IID10962 + 3, // IID118 #ifdef _LP64 - "__ cmpxchgw(rdx, Address(rbx, r8, (Address::ScaleFactor)3, +0x7a448d));", // IID10963 - "__ cmpxchgw(rbx, Address(r8, r9, (Address::ScaleFactor)2, +0x465556e));", // IID10964 - "__ cmpxchgw(r8, Address(r9, r10, (Address::ScaleFactor)3, +0x11e82150));", // IID10965 - "__ cmpxchgw(r9, Address(r10, r11, (Address::ScaleFactor)3, -0x8f95f21));", // IID10966 - "__ cmpxchgw(r10, Address(r11, r12, (Address::ScaleFactor)1, +0x22c46643));", // IID10967 - "__ cmpxchgw(r11, Address(r12, r13, (Address::ScaleFactor)3, +0x4f3d4330));", // IID10968 - "__ cmpxchgw(r12, Address(r13, r14, (Address::ScaleFactor)2, +0x5f15a67));", // IID10969 - "__ cmpxchgw(r13, Address(r14, r15, (Address::ScaleFactor)2, -0x5181857e));", // IID10970 - "__ cmpxchgw(r14, Address(r15, r16, (Address::ScaleFactor)0, -0x8cd2866));", // IID10971 - "__ cmpxchgw(r15, Address(r16, r17, (Address::ScaleFactor)2, -0x7512f9da));", // IID10972 - "__ cmpxchgw(r16, Address(r17, +0x7edb9e76));", // IID10973 - "__ cmpxchgw(r17, Address(r18, r19, (Address::ScaleFactor)3, +0x10a69728));", // IID10974 - "__ cmpxchgw(r18, Address(r19, r20, (Address::ScaleFactor)2, +0x7df98267));", // IID10975 - "__ cmpxchgw(r19, Address(r20, r21, (Address::ScaleFactor)1, +0x325f92ba));", // IID10976 - "__ cmpxchgw(r20, Address(r21, r22, (Address::ScaleFactor)3, -0x6c9db161));", // IID10977 - "__ cmpxchgw(r21, Address(r22, r23, (Address::ScaleFactor)3, -0x51087858));", // IID10978 - "__ cmpxchgw(r22, Address(r23, r24, (Address::ScaleFactor)0, -0x1d1b3093));", // IID10979 - "__ cmpxchgw(r23, Address(r24, r25, (Address::ScaleFactor)2, -0x742e0e6f));", // IID10980 - "__ cmpxchgw(r24, Address(r25, r26, (Address::ScaleFactor)3, -0x6c46d5f5));", // IID10981 - "__ cmpxchgw(r25, Address(r26, r27, (Address::ScaleFactor)3, -0x29c2519f));", // IID10982 - "__ cmpxchgw(r26, Address(r27, r28, (Address::ScaleFactor)0, -0x57fb6fa8));", // IID10983 - "__ cmpxchgw(r27, Address(r28, r29, (Address::ScaleFactor)1, -0x7d041b06));", // IID10984 - "__ cmpxchgw(r28, Address(r29, r30, (Address::ScaleFactor)0, +0x1aa384de));", // IID10985 - "__ cmpxchgw(r29, Address(r30, +0x5b0b3c3));", // IID10986 - "__ cmpxchgw(r30, Address(r31, rcx, (Address::ScaleFactor)3, +0x307e8bb));", // IID10987 - "__ cmpxchgw(r31, Address(rcx, rdx, (Address::ScaleFactor)0, -0x2bdd89a9));", // IID10988 + 4, // IID119 + 4, // IID120 + 4, // IID121 + 4, // IID122 + 4, // IID123 + 4, // IID124 + 4, // IID125 + 4, // IID126 + 4, // IID127 + 4, // IID128 + 4, // IID129 + 4, // IID130 + 4, // IID131 + 4, // IID132 + 4, // IID133 + 4, // IID134 + 4, // IID135 + 4, // IID136 + 4, // IID137 + 4, // IID138 +#endif // _LP64 + 2, // IID139 +#ifdef _LP64 + 3, // IID140 + 3, // IID141 + 4, // IID142 + 3, // IID143 + 4, // IID144 +#endif // _LP64 + 2, // IID145 +#ifdef _LP64 + 3, // IID146 + 8, // IID147 + 6, // IID148 + 8, // IID149 + 9, // IID150 + 8, // IID151 + 8, // IID152 + 9, // IID153 + 13, // IID154 + 7, // IID155 + 5, // IID156 + 5, // IID157 + 8, // IID158 + 9, // IID159 + 9, // IID160 + 9, // IID161 + 4, // IID162 + 4, // IID163 + 4, // IID164 + 4, // IID165 + 9, // IID166 + 10, // IID167 + 9, // IID168 + 3, // IID169 + 4, // IID170 + 4, // IID171 + 5, // IID172 + 4, // IID173 + 3, // IID174 + 5, // IID175 + 5, // IID176 + 4, // IID177 + 4, // IID178 + 4, // IID179 + 4, // IID180 + 3, // IID181 + 4, // IID182 + 4, // IID183 + 4, // IID184 + 4, // IID185 + 3, // IID186 + 9, // IID187 + 9, // IID188 + 8, // IID189 + 9, // IID190 + 9, // IID191 + 9, // IID192 + 9, // IID193 + 9, // IID194 + 13, // IID195 + 12, // IID196 + 13, // IID197 + 10, // IID198 + 10, // IID199 + 10, // IID200 + 10, // IID201 + 10, // IID202 + 13, // IID203 + 9, // IID204 + 12, // IID205 + 11, // IID206 + 8, // IID207 + 9, // IID208 + 9, // IID209 + 9, // IID210 + 8, // IID211 + 8, // IID212 + 9, // IID213 + 10, // IID214 + 8, // IID215 + 9, // IID216 + 10, // IID217 + 9, // IID218 + 9, // IID219 + 9, // IID220 + 10, // IID221 + 9, // IID222 + 9, // IID223 + 4, // IID224 + 8, // IID225 + 4, // IID226 + 8, // IID227 + 5, // IID228 + 5, // IID229 + 4, // IID230 + 5, // IID231 + 5, // IID232 + 4, // IID233 + 7, // IID234 + 4, // IID235 + 4, // IID236 + 8, // IID237 + 7, // IID238 + 8, // IID239 + 11, // IID240 + 5, // IID241 + 7, // IID242 + 8, // IID243 + 8, // IID244 + 8, // IID245 + 8, // IID246 + 9, // IID247 + 8, // IID248 + 9, // IID249 + 9, // IID250 + 8, // IID251 + 9, // IID252 + 9, // IID253 + 9, // IID254 + 9, // IID255 + 9, // IID256 + 9, // IID257 + 8, // IID258 + 9, // IID259 + 9, // IID260 + 3, // IID261 + 4, // IID262 + 4, // IID263 + 3, // IID264 + 4, // IID265 + 3, // IID266 + 4, // IID267 + 4, // IID268 + 3, // IID269 + 4, // IID270 + 4, // IID271 + 4, // IID272 + 4, // IID273 + 4, // IID274 + 3, // IID275 + 3, // IID276 + 3, // IID277 + 8, // IID278 + 9, // IID279 + 9, // IID280 + 9, // IID281 + 8, // IID282 + 8, // IID283 + 8, // IID284 + 8, // IID285 + 13, // IID286 + 8, // IID287 + 5, // IID288 + 5, // IID289 + 6, // IID290 + 6, // IID291 + 6, // IID292 + 6, // IID293 + 9, // IID294 + 9, // IID295 + 9, // IID296 + 9, // IID297 + 4, // IID298 + 4, // IID299 + 4, // IID300 + 4, // IID301 + 9, // IID302 #endif // _LP64 - "__ cmpxchgl(rcx, Address(rdx, rbx, (Address::ScaleFactor)1, +0x2c2bb444));", // IID10989 + }; + + static const char* insns_strs[] = + { #ifdef _LP64 - "__ cmpxchgl(rdx, Address(rbx, r8, (Address::ScaleFactor)0, +0x6328abe));", // IID10990 - "__ cmpxchgl(rbx, Address(r8, r9, (Address::ScaleFactor)2, +0x1e5ac7d6));", // IID10991 - "__ cmpxchgl(r8, Address(r9, r10, (Address::ScaleFactor)1, -0x433ac08a));", // IID10992 - "__ cmpxchgl(r9, Address(r10, r11, (Address::ScaleFactor)1, -0x73fb3972));", // IID10993 - "__ cmpxchgl(r10, Address(r11, r12, (Address::ScaleFactor)0, +0x5c31cfb1));", // IID10994 - "__ cmpxchgl(r11, Address(r12, r13, (Address::ScaleFactor)1, +0x69736505));", // IID10995 - "__ cmpxchgl(r12, Address(r13, r14, (Address::ScaleFactor)1, +0x646c42ad));", // IID10996 - "__ cmpxchgl(r13, Address(r14, r15, (Address::ScaleFactor)3, -0x6d94751a));", // IID10997 - "__ cmpxchgl(r14, Address(r15, r16, (Address::ScaleFactor)2, +0x6cff52d4));", // IID10998 - "__ cmpxchgl(r15, Address(r16, -0x57e43d5b));", // IID10999 - "__ cmpxchgl(r16, Address(r17, r18, (Address::ScaleFactor)0, +0x68557fba));", // IID11000 - "__ cmpxchgl(r17, Address(r18, r19, (Address::ScaleFactor)0, +0x3d6f913));", // IID11001 - "__ cmpxchgl(r18, Address(r19, -0x7cdca8a2));", // IID11002 - "__ cmpxchgl(r19, Address(r20, +0x273958c0));", // IID11003 - "__ cmpxchgl(r20, Address(r21, r22, (Address::ScaleFactor)3, +0x200bac2d));", // IID11004 - "__ cmpxchgl(r21, Address(r22, r23, (Address::ScaleFactor)0, +0x7257be67));", // IID11005 - "__ cmpxchgl(r22, Address(r23, r24, (Address::ScaleFactor)1, +0x7466d177));", // IID11006 - "__ cmpxchgl(r23, Address(r24, r25, (Address::ScaleFactor)3, +0x86208b0));", // IID11007 - "__ cmpxchgl(r24, Address(r25, r26, (Address::ScaleFactor)2, +0x59909df4));", // IID11008 - "__ cmpxchgl(r25, Address(r26, r27, (Address::ScaleFactor)1, +0x7966f9d9));", // IID11009 - "__ cmpxchgl(r26, Address(r27, +0x6befdf70));", // IID11010 - "__ cmpxchgl(r27, Address(r28, r29, (Address::ScaleFactor)3, -0x51a0e58a));", // IID11011 - "__ cmpxchgl(r28, Address(r29, r30, (Address::ScaleFactor)3, +0x7ef9f40f));", // IID11012 - "__ cmpxchgl(r29, Address(r30, +0x78987bff));", // IID11013 - "__ cmpxchgl(r30, Address(r31, rcx, (Address::ScaleFactor)2, +0x5d4426be));", // IID11014 - "__ cmpxchgl(r31, Address(rcx, rdx, (Address::ScaleFactor)0, +0x6274242));", // IID11015 - "__ adcq(rcx, rdx);", // IID11016 - "__ adcq(rdx, rbx);", // IID11017 - "__ adcq(rbx, r8);", // IID11018 - "__ adcq(r8, r9);", // IID11019 - "__ adcq(r9, r10);", // IID11020 - "__ adcq(r10, r11);", // IID11021 - "__ adcq(r11, r12);", // IID11022 - "__ adcq(r12, r13);", // IID11023 - "__ adcq(r13, r14);", // IID11024 - "__ adcq(r14, r15);", // IID11025 - "__ adcq(r15, r16);", // IID11026 - "__ adcq(r16, r17);", // IID11027 - "__ adcq(r17, r18);", // IID11028 - "__ adcq(r18, r19);", // IID11029 - "__ adcq(r19, r20);", // IID11030 - "__ adcq(r20, r21);", // IID11031 - "__ adcq(r21, r22);", // IID11032 - "__ adcq(r22, r23);", // IID11033 - "__ adcq(r23, r24);", // IID11034 - "__ adcq(r24, r25);", // IID11035 - "__ adcq(r25, r26);", // IID11036 - "__ adcq(r26, r27);", // IID11037 - "__ adcq(r27, r28);", // IID11038 - "__ adcq(r28, r29);", // IID11039 - "__ adcq(r29, r30);", // IID11040 - "__ adcq(r30, r31);", // IID11041 - "__ adcq(r31, rcx);", // IID11042 - "__ cmpq(rcx, rdx);", // IID11043 - "__ cmpq(rdx, rbx);", // IID11044 - "__ cmpq(rbx, r8);", // IID11045 - "__ cmpq(r8, r9);", // IID11046 - "__ cmpq(r9, r10);", // IID11047 - "__ cmpq(r10, r11);", // IID11048 - "__ cmpq(r11, r12);", // IID11049 - "__ cmpq(r12, r13);", // IID11050 - "__ cmpq(r13, r14);", // IID11051 - "__ cmpq(r14, r15);", // IID11052 - "__ cmpq(r15, r16);", // IID11053 - "__ cmpq(r16, r17);", // IID11054 - "__ cmpq(r17, r18);", // IID11055 - "__ cmpq(r18, r19);", // IID11056 - "__ cmpq(r19, r20);", // IID11057 - "__ cmpq(r20, r21);", // IID11058 - "__ cmpq(r21, r22);", // IID11059 - "__ cmpq(r22, r23);", // IID11060 - "__ cmpq(r23, r24);", // IID11061 - "__ cmpq(r24, r25);", // IID11062 - "__ cmpq(r25, r26);", // IID11063 - "__ cmpq(r26, r27);", // IID11064 - "__ cmpq(r27, r28);", // IID11065 - "__ cmpq(r28, r29);", // IID11066 - "__ cmpq(r29, r30);", // IID11067 - "__ cmpq(r30, r31);", // IID11068 - "__ cmpq(r31, rcx);", // IID11069 - "__ imulq(rcx, rdx);", // IID11070 - "__ imulq(rdx, rbx);", // IID11071 - "__ imulq(rbx, r8);", // IID11072 - "__ imulq(r8, r9);", // IID11073 - "__ imulq(r9, r10);", // IID11074 - "__ imulq(r10, r11);", // IID11075 - "__ imulq(r11, r12);", // IID11076 - "__ imulq(r12, r13);", // IID11077 - "__ imulq(r13, r14);", // IID11078 - "__ imulq(r14, r15);", // IID11079 - "__ imulq(r15, r16);", // IID11080 - "__ imulq(r16, r17);", // IID11081 - "__ imulq(r17, r18);", // IID11082 - "__ imulq(r18, r19);", // IID11083 - "__ imulq(r19, r20);", // IID11084 - "__ imulq(r20, r21);", // IID11085 - "__ imulq(r21, r22);", // IID11086 - "__ imulq(r22, r23);", // IID11087 - "__ imulq(r23, r24);", // IID11088 - "__ imulq(r24, r25);", // IID11089 - "__ imulq(r25, r26);", // IID11090 - "__ imulq(r26, r27);", // IID11091 - "__ imulq(r27, r28);", // IID11092 - "__ imulq(r28, r29);", // IID11093 - "__ imulq(r29, r30);", // IID11094 - "__ imulq(r30, r31);", // IID11095 - "__ imulq(r31, rcx);", // IID11096 - "__ popcntq(rcx, rdx);", // IID11097 - "__ popcntq(rdx, rbx);", // IID11098 - "__ popcntq(rbx, r8);", // IID11099 - "__ popcntq(r8, r9);", // IID11100 - "__ popcntq(r9, r10);", // IID11101 - "__ popcntq(r10, r11);", // IID11102 - "__ popcntq(r11, r12);", // IID11103 - "__ popcntq(r12, r13);", // IID11104 - "__ popcntq(r13, r14);", // IID11105 - "__ popcntq(r14, r15);", // IID11106 - "__ popcntq(r15, r16);", // IID11107 - "__ popcntq(r16, r17);", // IID11108 - "__ popcntq(r17, r18);", // IID11109 - "__ popcntq(r18, r19);", // IID11110 - "__ popcntq(r19, r20);", // IID11111 - "__ popcntq(r20, r21);", // IID11112 - "__ popcntq(r21, r22);", // IID11113 - "__ popcntq(r22, r23);", // IID11114 - "__ popcntq(r23, r24);", // IID11115 - "__ popcntq(r24, r25);", // IID11116 - "__ popcntq(r25, r26);", // IID11117 - "__ popcntq(r26, r27);", // IID11118 - "__ popcntq(r27, r28);", // IID11119 - "__ popcntq(r28, r29);", // IID11120 - "__ popcntq(r29, r30);", // IID11121 - "__ popcntq(r30, r31);", // IID11122 - "__ popcntq(r31, rcx);", // IID11123 - "__ sbbq(rcx, rdx);", // IID11124 - "__ sbbq(rdx, rbx);", // IID11125 - "__ sbbq(rbx, r8);", // IID11126 - "__ sbbq(r8, r9);", // IID11127 - "__ sbbq(r9, r10);", // IID11128 - "__ sbbq(r10, r11);", // IID11129 - "__ sbbq(r11, r12);", // IID11130 - "__ sbbq(r12, r13);", // IID11131 - "__ sbbq(r13, r14);", // IID11132 - "__ sbbq(r14, r15);", // IID11133 - "__ sbbq(r15, r16);", // IID11134 - "__ sbbq(r16, r17);", // IID11135 - "__ sbbq(r17, r18);", // IID11136 - "__ sbbq(r18, r19);", // IID11137 - "__ sbbq(r19, r20);", // IID11138 - "__ sbbq(r20, r21);", // IID11139 - "__ sbbq(r21, r22);", // IID11140 - "__ sbbq(r22, r23);", // IID11141 - "__ sbbq(r23, r24);", // IID11142 - "__ sbbq(r24, r25);", // IID11143 - "__ sbbq(r25, r26);", // IID11144 - "__ sbbq(r26, r27);", // IID11145 - "__ sbbq(r27, r28);", // IID11146 - "__ sbbq(r28, r29);", // IID11147 - "__ sbbq(r29, r30);", // IID11148 - "__ sbbq(r30, r31);", // IID11149 - "__ sbbq(r31, rcx);", // IID11150 - "__ subq(rcx, rdx);", // IID11151 - "__ subq(rdx, rbx);", // IID11152 - "__ subq(rbx, r8);", // IID11153 - "__ subq(r8, r9);", // IID11154 - "__ subq(r9, r10);", // IID11155 - "__ subq(r10, r11);", // IID11156 - "__ subq(r11, r12);", // IID11157 - "__ subq(r12, r13);", // IID11158 - "__ subq(r13, r14);", // IID11159 - "__ subq(r14, r15);", // IID11160 - "__ subq(r15, r16);", // IID11161 - "__ subq(r16, r17);", // IID11162 - "__ subq(r17, r18);", // IID11163 - "__ subq(r18, r19);", // IID11164 - "__ subq(r19, r20);", // IID11165 - "__ subq(r20, r21);", // IID11166 - "__ subq(r21, r22);", // IID11167 - "__ subq(r22, r23);", // IID11168 - "__ subq(r23, r24);", // IID11169 - "__ subq(r24, r25);", // IID11170 - "__ subq(r25, r26);", // IID11171 - "__ subq(r26, r27);", // IID11172 - "__ subq(r27, r28);", // IID11173 - "__ subq(r28, r29);", // IID11174 - "__ subq(r29, r30);", // IID11175 - "__ subq(r30, r31);", // IID11176 - "__ subq(r31, rcx);", // IID11177 - "__ tzcntq(rcx, rdx);", // IID11178 - "__ tzcntq(rdx, rbx);", // IID11179 - "__ tzcntq(rbx, r8);", // IID11180 - "__ tzcntq(r8, r9);", // IID11181 - "__ tzcntq(r9, r10);", // IID11182 - "__ tzcntq(r10, r11);", // IID11183 - "__ tzcntq(r11, r12);", // IID11184 - "__ tzcntq(r12, r13);", // IID11185 - "__ tzcntq(r13, r14);", // IID11186 - "__ tzcntq(r14, r15);", // IID11187 - "__ tzcntq(r15, r16);", // IID11188 - "__ tzcntq(r16, r17);", // IID11189 - "__ tzcntq(r17, r18);", // IID11190 - "__ tzcntq(r18, r19);", // IID11191 - "__ tzcntq(r19, r20);", // IID11192 - "__ tzcntq(r20, r21);", // IID11193 - "__ tzcntq(r21, r22);", // IID11194 - "__ tzcntq(r22, r23);", // IID11195 - "__ tzcntq(r23, r24);", // IID11196 - "__ tzcntq(r24, r25);", // IID11197 - "__ tzcntq(r25, r26);", // IID11198 - "__ tzcntq(r26, r27);", // IID11199 - "__ tzcntq(r27, r28);", // IID11200 - "__ tzcntq(r28, r29);", // IID11201 - "__ tzcntq(r29, r30);", // IID11202 - "__ tzcntq(r30, r31);", // IID11203 - "__ tzcntq(r31, rcx);", // IID11204 - "__ lzcntq(rcx, rdx);", // IID11205 - "__ lzcntq(rdx, rbx);", // IID11206 - "__ lzcntq(rbx, r8);", // IID11207 - "__ lzcntq(r8, r9);", // IID11208 - "__ lzcntq(r9, r10);", // IID11209 - "__ lzcntq(r10, r11);", // IID11210 - "__ lzcntq(r11, r12);", // IID11211 - "__ lzcntq(r12, r13);", // IID11212 - "__ lzcntq(r13, r14);", // IID11213 - "__ lzcntq(r14, r15);", // IID11214 - "__ lzcntq(r15, r16);", // IID11215 - "__ lzcntq(r16, r17);", // IID11216 - "__ lzcntq(r17, r18);", // IID11217 - "__ lzcntq(r18, r19);", // IID11218 - "__ lzcntq(r19, r20);", // IID11219 - "__ lzcntq(r20, r21);", // IID11220 - "__ lzcntq(r21, r22);", // IID11221 - "__ lzcntq(r22, r23);", // IID11222 - "__ lzcntq(r23, r24);", // IID11223 - "__ lzcntq(r24, r25);", // IID11224 - "__ lzcntq(r25, r26);", // IID11225 - "__ lzcntq(r26, r27);", // IID11226 - "__ lzcntq(r27, r28);", // IID11227 - "__ lzcntq(r28, r29);", // IID11228 - "__ lzcntq(r29, r30);", // IID11229 - "__ lzcntq(r30, r31);", // IID11230 - "__ lzcntq(r31, rcx);", // IID11231 - "__ addq(rcx, rdx);", // IID11232 - "__ addq(rdx, rbx);", // IID11233 - "__ addq(rbx, r8);", // IID11234 - "__ addq(r8, r9);", // IID11235 - "__ addq(r9, r10);", // IID11236 - "__ addq(r10, r11);", // IID11237 - "__ addq(r11, r12);", // IID11238 - "__ addq(r12, r13);", // IID11239 - "__ addq(r13, r14);", // IID11240 - "__ addq(r14, r15);", // IID11241 - "__ addq(r15, r16);", // IID11242 - "__ addq(r16, r17);", // IID11243 - "__ addq(r17, r18);", // IID11244 - "__ addq(r18, r19);", // IID11245 - "__ addq(r19, r20);", // IID11246 - "__ addq(r20, r21);", // IID11247 - "__ addq(r21, r22);", // IID11248 - "__ addq(r22, r23);", // IID11249 - "__ addq(r23, r24);", // IID11250 - "__ addq(r24, r25);", // IID11251 - "__ addq(r25, r26);", // IID11252 - "__ addq(r26, r27);", // IID11253 - "__ addq(r27, r28);", // IID11254 - "__ addq(r28, r29);", // IID11255 - "__ addq(r29, r30);", // IID11256 - "__ addq(r30, r31);", // IID11257 - "__ addq(r31, rcx);", // IID11258 - "__ andq(rcx, rdx);", // IID11259 - "__ andq(rdx, rbx);", // IID11260 - "__ andq(rbx, r8);", // IID11261 - "__ andq(r8, r9);", // IID11262 - "__ andq(r9, r10);", // IID11263 - "__ andq(r10, r11);", // IID11264 - "__ andq(r11, r12);", // IID11265 - "__ andq(r12, r13);", // IID11266 - "__ andq(r13, r14);", // IID11267 - "__ andq(r14, r15);", // IID11268 - "__ andq(r15, r16);", // IID11269 - "__ andq(r16, r17);", // IID11270 - "__ andq(r17, r18);", // IID11271 - "__ andq(r18, r19);", // IID11272 - "__ andq(r19, r20);", // IID11273 - "__ andq(r20, r21);", // IID11274 - "__ andq(r21, r22);", // IID11275 - "__ andq(r22, r23);", // IID11276 - "__ andq(r23, r24);", // IID11277 - "__ andq(r24, r25);", // IID11278 - "__ andq(r25, r26);", // IID11279 - "__ andq(r26, r27);", // IID11280 - "__ andq(r27, r28);", // IID11281 - "__ andq(r28, r29);", // IID11282 - "__ andq(r29, r30);", // IID11283 - "__ andq(r30, r31);", // IID11284 - "__ andq(r31, rcx);", // IID11285 - "__ orq(rcx, rdx);", // IID11286 - "__ orq(rdx, rbx);", // IID11287 - "__ orq(rbx, r8);", // IID11288 - "__ orq(r8, r9);", // IID11289 - "__ orq(r9, r10);", // IID11290 - "__ orq(r10, r11);", // IID11291 - "__ orq(r11, r12);", // IID11292 - "__ orq(r12, r13);", // IID11293 - "__ orq(r13, r14);", // IID11294 - "__ orq(r14, r15);", // IID11295 - "__ orq(r15, r16);", // IID11296 - "__ orq(r16, r17);", // IID11297 - "__ orq(r17, r18);", // IID11298 - "__ orq(r18, r19);", // IID11299 - "__ orq(r19, r20);", // IID11300 - "__ orq(r20, r21);", // IID11301 - "__ orq(r21, r22);", // IID11302 - "__ orq(r22, r23);", // IID11303 - "__ orq(r23, r24);", // IID11304 - "__ orq(r24, r25);", // IID11305 - "__ orq(r25, r26);", // IID11306 - "__ orq(r26, r27);", // IID11307 - "__ orq(r27, r28);", // IID11308 - "__ orq(r28, r29);", // IID11309 - "__ orq(r29, r30);", // IID11310 - "__ orq(r30, r31);", // IID11311 - "__ orq(r31, rcx);", // IID11312 - "__ xorq(rcx, rdx);", // IID11313 - "__ xorq(rdx, rbx);", // IID11314 - "__ xorq(rbx, r8);", // IID11315 - "__ xorq(r8, r9);", // IID11316 - "__ xorq(r9, r10);", // IID11317 - "__ xorq(r10, r11);", // IID11318 - "__ xorq(r11, r12);", // IID11319 - "__ xorq(r12, r13);", // IID11320 - "__ xorq(r13, r14);", // IID11321 - "__ xorq(r14, r15);", // IID11322 - "__ xorq(r15, r16);", // IID11323 - "__ xorq(r16, r17);", // IID11324 - "__ xorq(r17, r18);", // IID11325 - "__ xorq(r18, r19);", // IID11326 - "__ xorq(r19, r20);", // IID11327 - "__ xorq(r20, r21);", // IID11328 - "__ xorq(r21, r22);", // IID11329 - "__ xorq(r22, r23);", // IID11330 - "__ xorq(r23, r24);", // IID11331 - "__ xorq(r24, r25);", // IID11332 - "__ xorq(r25, r26);", // IID11333 - "__ xorq(r26, r27);", // IID11334 - "__ xorq(r27, r28);", // IID11335 - "__ xorq(r28, r29);", // IID11336 - "__ xorq(r29, r30);", // IID11337 - "__ xorq(r30, r31);", // IID11338 - "__ xorq(r31, rcx);", // IID11339 - "__ movq(rcx, rdx);", // IID11340 - "__ movq(rdx, rbx);", // IID11341 - "__ movq(rbx, r8);", // IID11342 - "__ movq(r8, r9);", // IID11343 - "__ movq(r9, r10);", // IID11344 - "__ movq(r10, r11);", // IID11345 - "__ movq(r11, r12);", // IID11346 - "__ movq(r12, r13);", // IID11347 - "__ movq(r13, r14);", // IID11348 - "__ movq(r14, r15);", // IID11349 - "__ movq(r15, r16);", // IID11350 - "__ movq(r16, r17);", // IID11351 - "__ movq(r17, r18);", // IID11352 - "__ movq(r18, r19);", // IID11353 - "__ movq(r19, r20);", // IID11354 - "__ movq(r20, r21);", // IID11355 - "__ movq(r21, r22);", // IID11356 - "__ movq(r22, r23);", // IID11357 - "__ movq(r23, r24);", // IID11358 - "__ movq(r24, r25);", // IID11359 - "__ movq(r25, r26);", // IID11360 - "__ movq(r26, r27);", // IID11361 - "__ movq(r27, r28);", // IID11362 - "__ movq(r28, r29);", // IID11363 - "__ movq(r29, r30);", // IID11364 - "__ movq(r30, r31);", // IID11365 - "__ movq(r31, rcx);", // IID11366 - "__ bsfq(rcx, rdx);", // IID11367 - "__ bsfq(rdx, rbx);", // IID11368 - "__ bsfq(rbx, r8);", // IID11369 - "__ bsfq(r8, r9);", // IID11370 - "__ bsfq(r9, r10);", // IID11371 - "__ bsfq(r10, r11);", // IID11372 - "__ bsfq(r11, r12);", // IID11373 - "__ bsfq(r12, r13);", // IID11374 - "__ bsfq(r13, r14);", // IID11375 - "__ bsfq(r14, r15);", // IID11376 - "__ bsfq(r15, r16);", // IID11377 - "__ bsfq(r16, r17);", // IID11378 - "__ bsfq(r17, r18);", // IID11379 - "__ bsfq(r18, r19);", // IID11380 - "__ bsfq(r19, r20);", // IID11381 - "__ bsfq(r20, r21);", // IID11382 - "__ bsfq(r21, r22);", // IID11383 - "__ bsfq(r22, r23);", // IID11384 - "__ bsfq(r23, r24);", // IID11385 - "__ bsfq(r24, r25);", // IID11386 - "__ bsfq(r25, r26);", // IID11387 - "__ bsfq(r26, r27);", // IID11388 - "__ bsfq(r27, r28);", // IID11389 - "__ bsfq(r28, r29);", // IID11390 - "__ bsfq(r29, r30);", // IID11391 - "__ bsfq(r30, r31);", // IID11392 - "__ bsfq(r31, rcx);", // IID11393 - "__ bsrq(rcx, rdx);", // IID11394 - "__ bsrq(rdx, rbx);", // IID11395 - "__ bsrq(rbx, r8);", // IID11396 - "__ bsrq(r8, r9);", // IID11397 - "__ bsrq(r9, r10);", // IID11398 - "__ bsrq(r10, r11);", // IID11399 - "__ bsrq(r11, r12);", // IID11400 - "__ bsrq(r12, r13);", // IID11401 - "__ bsrq(r13, r14);", // IID11402 - "__ bsrq(r14, r15);", // IID11403 - "__ bsrq(r15, r16);", // IID11404 - "__ bsrq(r16, r17);", // IID11405 - "__ bsrq(r17, r18);", // IID11406 - "__ bsrq(r18, r19);", // IID11407 - "__ bsrq(r19, r20);", // IID11408 - "__ bsrq(r20, r21);", // IID11409 - "__ bsrq(r21, r22);", // IID11410 - "__ bsrq(r22, r23);", // IID11411 - "__ bsrq(r23, r24);", // IID11412 - "__ bsrq(r24, r25);", // IID11413 - "__ bsrq(r25, r26);", // IID11414 - "__ bsrq(r26, r27);", // IID11415 - "__ bsrq(r27, r28);", // IID11416 - "__ bsrq(r28, r29);", // IID11417 - "__ bsrq(r29, r30);", // IID11418 - "__ bsrq(r30, r31);", // IID11419 - "__ bsrq(r31, rcx);", // IID11420 - "__ btq(rcx, rdx);", // IID11421 - "__ btq(rdx, rbx);", // IID11422 - "__ btq(rbx, r8);", // IID11423 - "__ btq(r8, r9);", // IID11424 - "__ btq(r9, r10);", // IID11425 - "__ btq(r10, r11);", // IID11426 - "__ btq(r11, r12);", // IID11427 - "__ btq(r12, r13);", // IID11428 - "__ btq(r13, r14);", // IID11429 - "__ btq(r14, r15);", // IID11430 - "__ btq(r15, r16);", // IID11431 - "__ btq(r16, r17);", // IID11432 - "__ btq(r17, r18);", // IID11433 - "__ btq(r18, r19);", // IID11434 - "__ btq(r19, r20);", // IID11435 - "__ btq(r20, r21);", // IID11436 - "__ btq(r21, r22);", // IID11437 - "__ btq(r22, r23);", // IID11438 - "__ btq(r23, r24);", // IID11439 - "__ btq(r24, r25);", // IID11440 - "__ btq(r25, r26);", // IID11441 - "__ btq(r26, r27);", // IID11442 - "__ btq(r27, r28);", // IID11443 - "__ btq(r28, r29);", // IID11444 - "__ btq(r29, r30);", // IID11445 - "__ btq(r30, r31);", // IID11446 - "__ btq(r31, rcx);", // IID11447 - "__ xchgq(rcx, rdx);", // IID11448 - "__ xchgq(rdx, rbx);", // IID11449 - "__ xchgq(rbx, r8);", // IID11450 - "__ xchgq(r8, r9);", // IID11451 - "__ xchgq(r9, r10);", // IID11452 - "__ xchgq(r10, r11);", // IID11453 - "__ xchgq(r11, r12);", // IID11454 - "__ xchgq(r12, r13);", // IID11455 - "__ xchgq(r13, r14);", // IID11456 - "__ xchgq(r14, r15);", // IID11457 - "__ xchgq(r15, r16);", // IID11458 - "__ xchgq(r16, r17);", // IID11459 - "__ xchgq(r17, r18);", // IID11460 - "__ xchgq(r18, r19);", // IID11461 - "__ xchgq(r19, r20);", // IID11462 - "__ xchgq(r20, r21);", // IID11463 - "__ xchgq(r21, r22);", // IID11464 - "__ xchgq(r22, r23);", // IID11465 - "__ xchgq(r23, r24);", // IID11466 - "__ xchgq(r24, r25);", // IID11467 - "__ xchgq(r25, r26);", // IID11468 - "__ xchgq(r26, r27);", // IID11469 - "__ xchgq(r27, r28);", // IID11470 - "__ xchgq(r28, r29);", // IID11471 - "__ xchgq(r29, r30);", // IID11472 - "__ xchgq(r30, r31);", // IID11473 - "__ xchgq(r31, rcx);", // IID11474 - "__ testq(rcx, rdx);", // IID11475 - "__ testq(rdx, rbx);", // IID11476 - "__ testq(rbx, r8);", // IID11477 - "__ testq(r8, r9);", // IID11478 - "__ testq(r9, r10);", // IID11479 - "__ testq(r10, r11);", // IID11480 - "__ testq(r11, r12);", // IID11481 - "__ testq(r12, r13);", // IID11482 - "__ testq(r13, r14);", // IID11483 - "__ testq(r14, r15);", // IID11484 - "__ testq(r15, r16);", // IID11485 - "__ testq(r16, r17);", // IID11486 - "__ testq(r17, r18);", // IID11487 - "__ testq(r18, r19);", // IID11488 - "__ testq(r19, r20);", // IID11489 - "__ testq(r20, r21);", // IID11490 - "__ testq(r21, r22);", // IID11491 - "__ testq(r22, r23);", // IID11492 - "__ testq(r23, r24);", // IID11493 - "__ testq(r24, r25);", // IID11494 - "__ testq(r25, r26);", // IID11495 - "__ testq(r26, r27);", // IID11496 - "__ testq(r27, r28);", // IID11497 - "__ testq(r28, r29);", // IID11498 - "__ testq(r29, r30);", // IID11499 - "__ testq(r30, r31);", // IID11500 - "__ testq(r31, rcx);", // IID11501 - "__ addq(Address(rdx, -0x5cde7710), rcx);", // IID11502 - "__ addq(Address(rbx, r8, (Address::ScaleFactor)1, -0x6714f82c), rdx);", // IID11503 - "__ addq(Address(r8, r9, (Address::ScaleFactor)1, -0x74241536), rbx);", // IID11504 - "__ addq(Address(r9, r10, (Address::ScaleFactor)3, -0x35d3c2f5), r8);", // IID11505 - "__ addq(Address(r10, r11, (Address::ScaleFactor)2, -0x5e102834), r9);", // IID11506 - "__ addq(Address(r11, r12, (Address::ScaleFactor)1, +0x47bd0184), r10);", // IID11507 - "__ addq(Address(r12, r13, (Address::ScaleFactor)3, +0x44b73746), r11);", // IID11508 - "__ addq(Address(r13, r14, (Address::ScaleFactor)3, +0x79d0179c), r12);", // IID11509 - "__ addq(Address(r14, r15, (Address::ScaleFactor)3, -0x18cb48ae), r13);", // IID11510 - "__ addq(Address(r15, r16, (Address::ScaleFactor)2, +0x748bafe1), r14);", // IID11511 - "__ addq(Address(r16, r17, (Address::ScaleFactor)2, -0x6530f482), r15);", // IID11512 - "__ addq(Address(r17, r18, (Address::ScaleFactor)2, -0x3a2c07ba), r16);", // IID11513 - "__ addq(Address(r18, r19, (Address::ScaleFactor)1, -0x297f883c), r17);", // IID11514 - "__ addq(Address(r19, r20, (Address::ScaleFactor)0, -0x762e5685), r18);", // IID11515 - "__ addq(Address(r20, r21, (Address::ScaleFactor)1, -0x25d828ed), r19);", // IID11516 - "__ addq(Address(r21, r22, (Address::ScaleFactor)1, -0x2748feed), r20);", // IID11517 - "__ addq(Address(r22, r23, (Address::ScaleFactor)0, +0x6efe06df), r21);", // IID11518 - "__ addq(Address(r23, r24, (Address::ScaleFactor)3, -0x640299c9), r22);", // IID11519 - "__ addq(Address(r24, r25, (Address::ScaleFactor)2, +0x76e165c4), r23);", // IID11520 - "__ addq(Address(r25, r26, (Address::ScaleFactor)1, +0x6309f57e), r24);", // IID11521 - "__ addq(Address(r26, r27, (Address::ScaleFactor)1, +0x28148b99), r25);", // IID11522 - "__ addq(Address(r27, r28, (Address::ScaleFactor)1, -0x678f0980), r26);", // IID11523 - "__ addq(Address(r28, +0x9eecda6), r27);", // IID11524 - "__ addq(Address(r29, r30, (Address::ScaleFactor)3, +0x8924122), r28);", // IID11525 - "__ addq(Address(r30, r31, (Address::ScaleFactor)3, +0x4c459e49), r29);", // IID11526 - "__ addq(Address(r31, rcx, (Address::ScaleFactor)3, +0x5388c24c), r30);", // IID11527 - "__ addq(Address(rcx, +0x35458883), r31);", // IID11528 - "__ andq(Address(rdx, +0x554cace5), rcx);", // IID11529 - "__ andq(Address(rbx, r8, (Address::ScaleFactor)1, -0x3048470f), rdx);", // IID11530 - "__ andq(Address(r8, r9, (Address::ScaleFactor)3, +0x49c48a49), rbx);", // IID11531 - "__ andq(Address(r9, r10, (Address::ScaleFactor)3, -0x6c62ca2b), r8);", // IID11532 - "__ andq(Address(r10, r11, (Address::ScaleFactor)2, +0x2a64d27a), r9);", // IID11533 - "__ andq(Address(r11, r12, (Address::ScaleFactor)1, -0x3b66cc3), r10);", // IID11534 - "__ andq(Address(r12, r13, (Address::ScaleFactor)0, +0x516792a9), r11);", // IID11535 - "__ andq(Address(r13, r14, (Address::ScaleFactor)0, -0x642a893b), r12);", // IID11536 - "__ andq(Address(r14, r15, (Address::ScaleFactor)2, -0x11f619d6), r13);", // IID11537 - "__ andq(Address(r15, r16, (Address::ScaleFactor)3, +0x6a604564), r14);", // IID11538 - "__ andq(Address(r16, r17, (Address::ScaleFactor)0, -0x6cec0d75), r15);", // IID11539 - "__ andq(Address(r17, r18, (Address::ScaleFactor)0, +0x538b3581), r16);", // IID11540 - "__ andq(Address(r18, r19, (Address::ScaleFactor)3, +0x2470a887), r17);", // IID11541 - "__ andq(Address(r19, r20, (Address::ScaleFactor)3, +0x2d76badb), r18);", // IID11542 - "__ andq(Address(r20, -0x4b55c083), r19);", // IID11543 - "__ andq(Address(r21, r22, (Address::ScaleFactor)3, -0x40a2cd45), r20);", // IID11544 - "__ andq(Address(r22, r23, (Address::ScaleFactor)1, -0x536018a3), r21);", // IID11545 - "__ andq(Address(r23, r24, (Address::ScaleFactor)1, +0x726fe858), r22);", // IID11546 - "__ andq(Address(r24, r25, (Address::ScaleFactor)2, -0x162cacde), r23);", // IID11547 - "__ andq(Address(r25, r26, (Address::ScaleFactor)2, +0x32f91117), r24);", // IID11548 - "__ andq(Address(r26, r27, (Address::ScaleFactor)3, +0x71e03ca0), r25);", // IID11549 - "__ andq(Address(r27, r28, (Address::ScaleFactor)0, +0x233e0104), r26);", // IID11550 - "__ andq(Address(r28, r29, (Address::ScaleFactor)2, +0x1c2866c5), r27);", // IID11551 - "__ andq(Address(r29, -0x73d37210), r28);", // IID11552 - "__ andq(Address(r30, r31, (Address::ScaleFactor)0, -0x5020875c), r29);", // IID11553 - "__ andq(Address(r31, rcx, (Address::ScaleFactor)2, +0x36dd3746), r30);", // IID11554 - "__ andq(Address(rcx, rdx, (Address::ScaleFactor)2, -0x67375ec), r31);", // IID11555 - "__ cmpq(Address(rdx, -0x16f20d66), rcx);", // IID11556 - "__ cmpq(Address(rbx, r8, (Address::ScaleFactor)3, -0x6dc6b851), rdx);", // IID11557 - "__ cmpq(Address(r8, +0x2a9507aa), rbx);", // IID11558 - "__ cmpq(Address(r9, r10, (Address::ScaleFactor)1, +0x3706834f), r8);", // IID11559 - "__ cmpq(Address(r10, r11, (Address::ScaleFactor)3, -0x423ece5a), r9);", // IID11560 - "__ cmpq(Address(r11, r12, (Address::ScaleFactor)1, +0x4dd8d032), r10);", // IID11561 - "__ cmpq(Address(r12, r13, (Address::ScaleFactor)3, +0x27886fcc), r11);", // IID11562 - "__ cmpq(Address(r13, r14, (Address::ScaleFactor)0, +0x7eec11b5), r12);", // IID11563 - "__ cmpq(Address(r14, r15, (Address::ScaleFactor)0, -0x4d6451e2), r13);", // IID11564 - "__ cmpq(Address(r15, -0x691bee73), r14);", // IID11565 - "__ cmpq(Address(r16, r17, (Address::ScaleFactor)0, +0x13a1e6cd), r15);", // IID11566 - "__ cmpq(Address(r17, r18, (Address::ScaleFactor)1, -0x1373e361), r16);", // IID11567 - "__ cmpq(Address(r18, r19, (Address::ScaleFactor)1, -0x5d7406a0), r17);", // IID11568 - "__ cmpq(Address(r19, r20, (Address::ScaleFactor)3, -0x32eb7b3d), r18);", // IID11569 - "__ cmpq(Address(r20, r21, (Address::ScaleFactor)3, +0x75d7831e), r19);", // IID11570 - "__ cmpq(Address(r21, +0x6b612091), r20);", // IID11571 - "__ cmpq(Address(r22, r23, (Address::ScaleFactor)2, +0x4662fff5), r21);", // IID11572 - "__ cmpq(Address(r23, r24, (Address::ScaleFactor)2, -0x2de1ae8a), r22);", // IID11573 - "__ cmpq(Address(r24, r25, (Address::ScaleFactor)0, -0xe3ffe7e), r23);", // IID11574 - "__ cmpq(Address(r25, r26, (Address::ScaleFactor)3, +0x1e08ad66), r24);", // IID11575 - "__ cmpq(Address(r26, r27, (Address::ScaleFactor)3, -0x28025271), r25);", // IID11576 - "__ cmpq(Address(r27, +0xc8bab11), r26);", // IID11577 - "__ cmpq(Address(r28, r29, (Address::ScaleFactor)0, +0x42bfd84f), r27);", // IID11578 - "__ cmpq(Address(r29, r30, (Address::ScaleFactor)2, +0x3134571b), r28);", // IID11579 - "__ cmpq(Address(r30, r31, (Address::ScaleFactor)1, -0x4082922e), r29);", // IID11580 - "__ cmpq(Address(r31, rcx, (Address::ScaleFactor)1, +0x23c8fc1a), r30);", // IID11581 - "__ cmpq(Address(rcx, rdx, (Address::ScaleFactor)2, +0x6b34e4a2), r31);", // IID11582 - "__ orq(Address(rdx, rbx, (Address::ScaleFactor)2, +0x6bda9143), rcx);", // IID11583 - "__ orq(Address(rbx, r8, (Address::ScaleFactor)2, -0x10b62b4c), rdx);", // IID11584 - "__ orq(Address(r8, r9, (Address::ScaleFactor)2, -0x49fbe85f), rbx);", // IID11585 - "__ orq(Address(r9, -0x1c888bbc), r8);", // IID11586 - "__ orq(Address(r10, r11, (Address::ScaleFactor)2, +0x3675ff95), r9);", // IID11587 - "__ orq(Address(r11, r12, (Address::ScaleFactor)0, +0xb9f0570), r10);", // IID11588 - "__ orq(Address(r12, -0x7e2802f8), r11);", // IID11589 - "__ orq(Address(r13, r14, (Address::ScaleFactor)2, -0x7e69786e), r12);", // IID11590 - "__ orq(Address(r14, r15, (Address::ScaleFactor)0, -0x2fb507f6), r13);", // IID11591 - "__ orq(Address(r15, r16, (Address::ScaleFactor)3, +0x368e5811), r14);", // IID11592 - "__ orq(Address(r16, +0x5a4061ca), r15);", // IID11593 - "__ orq(Address(r17, r18, (Address::ScaleFactor)1, +0x421ef7b0), r16);", // IID11594 - "__ orq(Address(r18, r19, (Address::ScaleFactor)0, +0x2a522e5), r17);", // IID11595 - "__ orq(Address(r19, r20, (Address::ScaleFactor)0, -0x29828e64), r18);", // IID11596 - "__ orq(Address(r20, +0x5c73e7cb), r19);", // IID11597 - "__ orq(Address(r21, -0x6f6e98cb), r20);", // IID11598 - "__ orq(Address(r22, +0x6db6bab6), r21);", // IID11599 - "__ orq(Address(r23, r24, (Address::ScaleFactor)3, -0x6d3987fc), r22);", // IID11600 - "__ orq(Address(r24, -0x190e93fa), r23);", // IID11601 - "__ orq(Address(r25, r26, (Address::ScaleFactor)2, -0x140edeee), r24);", // IID11602 - "__ orq(Address(r26, r27, (Address::ScaleFactor)2, -0x3ed03668), r25);", // IID11603 - "__ orq(Address(r27, -0x4c0b2c0e), r26);", // IID11604 - "__ orq(Address(r28, r29, (Address::ScaleFactor)0, -0x3c0434), r27);", // IID11605 - "__ orq(Address(r29, r30, (Address::ScaleFactor)2, -0x292e29a3), r28);", // IID11606 - "__ orq(Address(r30, -0x261a4bed), r29);", // IID11607 - "__ orq(Address(r31, rcx, (Address::ScaleFactor)0, +0x4d72df1b), r30);", // IID11608 - "__ orq(Address(rcx, rdx, (Address::ScaleFactor)3, +0x3f1cc21), r31);", // IID11609 - "__ xorq(Address(rdx, rbx, (Address::ScaleFactor)0, -0x14c991d5), rcx);", // IID11610 - "__ xorq(Address(rbx, r8, (Address::ScaleFactor)1, -0x6b44a83c), rdx);", // IID11611 - "__ xorq(Address(r8, r9, (Address::ScaleFactor)1, +0x4a5d6c15), rbx);", // IID11612 - "__ xorq(Address(r9, r10, (Address::ScaleFactor)1, +0x75606921), r8);", // IID11613 - "__ xorq(Address(r10, r11, (Address::ScaleFactor)3, +0x13565fad), r9);", // IID11614 - "__ xorq(Address(r11, +0x17d59b51), r10);", // IID11615 - "__ xorq(Address(r12, r13, (Address::ScaleFactor)2, -0x576a5f72), r11);", // IID11616 - "__ xorq(Address(r13, r14, (Address::ScaleFactor)1, +0xb08fb5f), r12);", // IID11617 - "__ xorq(Address(r14, r15, (Address::ScaleFactor)0, +0x22245917), r13);", // IID11618 - "__ xorq(Address(r15, -0x238353d3), r14);", // IID11619 - "__ xorq(Address(r16, r17, (Address::ScaleFactor)0, +0x316f97d3), r15);", // IID11620 - "__ xorq(Address(r17, -0x15b3b716), r16);", // IID11621 - "__ xorq(Address(r18, +0x1081020c), r17);", // IID11622 - "__ xorq(Address(r19, +0x376d7d1a), r18);", // IID11623 - "__ xorq(Address(r20, r21, (Address::ScaleFactor)0, -0x71ce1e8), r19);", // IID11624 - "__ xorq(Address(r21, -0x692514b4), r20);", // IID11625 - "__ xorq(Address(r22, r23, (Address::ScaleFactor)3, -0x36a26967), r21);", // IID11626 - "__ xorq(Address(r23, r24, (Address::ScaleFactor)2, +0x3934aa2c), r22);", // IID11627 - "__ xorq(Address(r24, r25, (Address::ScaleFactor)1, -0x1c1c92c0), r23);", // IID11628 - "__ xorq(Address(r25, +0x12346a81), r24);", // IID11629 - "__ xorq(Address(r26, +0x10cc244c), r25);", // IID11630 - "__ xorq(Address(r27, -0x373bf7a), r26);", // IID11631 - "__ xorq(Address(r28, r29, (Address::ScaleFactor)1, +0x7a8d52fc), r27);", // IID11632 - "__ xorq(Address(r29, -0x3bcb840b), r28);", // IID11633 - "__ xorq(Address(r30, r31, (Address::ScaleFactor)3, -0x27c6650f), r29);", // IID11634 - "__ xorq(Address(r31, rcx, (Address::ScaleFactor)3, +0x56bbb025), r30);", // IID11635 - "__ xorq(Address(rcx, rdx, (Address::ScaleFactor)3, -0x56b58e44), r31);", // IID11636 - "__ subq(Address(rdx, rbx, (Address::ScaleFactor)3, -0x26d77115), rcx);", // IID11637 - "__ subq(Address(rbx, r8, (Address::ScaleFactor)2, -0x2f74fc6d), rdx);", // IID11638 - "__ subq(Address(r8, r9, (Address::ScaleFactor)1, +0x4f7b672), rbx);", // IID11639 - "__ subq(Address(r9, r10, (Address::ScaleFactor)2, +0x4e96aa0f), r8);", // IID11640 - "__ subq(Address(r10, r11, (Address::ScaleFactor)0, +0x19b2c36b), r9);", // IID11641 - "__ subq(Address(r11, r12, (Address::ScaleFactor)0, -0x5badc733), r10);", // IID11642 - "__ subq(Address(r12, r13, (Address::ScaleFactor)1, -0x7d517a48), r11);", // IID11643 - "__ subq(Address(r13, r14, (Address::ScaleFactor)1, +0x381c99b3), r12);", // IID11644 - "__ subq(Address(r14, r15, (Address::ScaleFactor)3, +0x22f9f6c3), r13);", // IID11645 - "__ subq(Address(r15, r16, (Address::ScaleFactor)1, +0x7633284a), r14);", // IID11646 - "__ subq(Address(r16, r17, (Address::ScaleFactor)0, +0x4f082136), r15);", // IID11647 - "__ subq(Address(r17, r18, (Address::ScaleFactor)2, -0x682e93d0), r16);", // IID11648 - "__ subq(Address(r18, r19, (Address::ScaleFactor)2, +0x1a997cae), r17);", // IID11649 - "__ subq(Address(r19, +0x1abfedd8), r18);", // IID11650 - "__ subq(Address(r20, r21, (Address::ScaleFactor)0, +0x52bf3e5d), r19);", // IID11651 - "__ subq(Address(r21, r22, (Address::ScaleFactor)2, -0x6bc928de), r20);", // IID11652 - "__ subq(Address(r22, +0x547c4f8c), r21);", // IID11653 - "__ subq(Address(r23, -0x6f3749c), r22);", // IID11654 - "__ subq(Address(r24, r25, (Address::ScaleFactor)1, +0x59480a35), r23);", // IID11655 - "__ subq(Address(r25, r26, (Address::ScaleFactor)3, +0x76f98873), r24);", // IID11656 - "__ subq(Address(r26, +0x24a859ea), r25);", // IID11657 - "__ subq(Address(r27, r28, (Address::ScaleFactor)0, +0x2913f4ea), r26);", // IID11658 - "__ subq(Address(r28, r29, (Address::ScaleFactor)2, +0x6cf168ed), r27);", // IID11659 - "__ subq(Address(r29, r30, (Address::ScaleFactor)1, +0x61bc7d3a), r28);", // IID11660 - "__ subq(Address(r30, r31, (Address::ScaleFactor)1, -0x7a4c71e7), r29);", // IID11661 - "__ subq(Address(r31, rcx, (Address::ScaleFactor)2, -0x474648aa), r30);", // IID11662 - "__ subq(Address(rcx, rdx, (Address::ScaleFactor)2, -0x712a6bf5), r31);", // IID11663 - "__ movq(Address(rdx, -0x571e9028), rcx);", // IID11664 - "__ movq(Address(rbx, r8, (Address::ScaleFactor)2, -0x7ddd66c2), rdx);", // IID11665 - "__ movq(Address(r8, r9, (Address::ScaleFactor)3, -0x1e9088e0), rbx);", // IID11666 - "__ movq(Address(r9, r10, (Address::ScaleFactor)2, -0x152c0b22), r8);", // IID11667 - "__ movq(Address(r10, -0x5f755018), r9);", // IID11668 - "__ movq(Address(r11, r12, (Address::ScaleFactor)1, -0x689a806), r10);", // IID11669 - "__ movq(Address(r12, r13, (Address::ScaleFactor)1, -0x4f48fc9), r11);", // IID11670 - "__ movq(Address(r13, r14, (Address::ScaleFactor)1, -0x21abab3c), r12);", // IID11671 - "__ movq(Address(r14, r15, (Address::ScaleFactor)2, +0x6f4988dc), r13);", // IID11672 - "__ movq(Address(r15, r16, (Address::ScaleFactor)3, -0x37226117), r14);", // IID11673 - "__ movq(Address(r16, r17, (Address::ScaleFactor)1, +0x1d419cd6), r15);", // IID11674 - "__ movq(Address(r17, r18, (Address::ScaleFactor)1, -0x7505489f), r16);", // IID11675 - "__ movq(Address(r18, r19, (Address::ScaleFactor)1, +0x6923f4e6), r17);", // IID11676 - "__ movq(Address(r19, -0x5cc7a52c), r18);", // IID11677 - "__ movq(Address(r20, r21, (Address::ScaleFactor)1, -0x1d1b8be), r19);", // IID11678 - "__ movq(Address(r21, r22, (Address::ScaleFactor)3, -0x76a8d810), r20);", // IID11679 - "__ movq(Address(r22, r23, (Address::ScaleFactor)2, +0x63c8a0fa), r21);", // IID11680 - "__ movq(Address(r23, -0x287494f3), r22);", // IID11681 - "__ movq(Address(r24, r25, (Address::ScaleFactor)1, +0x19458e84), r23);", // IID11682 - "__ movq(Address(r25, r26, (Address::ScaleFactor)0, +0xc048d24), r24);", // IID11683 - "__ movq(Address(r26, r27, (Address::ScaleFactor)0, +0x16e4ff9f), r25);", // IID11684 - "__ movq(Address(r27, r28, (Address::ScaleFactor)2, +0x58378ad6), r26);", // IID11685 - "__ movq(Address(r28, r29, (Address::ScaleFactor)1, -0xf63e7d8), r27);", // IID11686 - "__ movq(Address(r29, r30, (Address::ScaleFactor)2, +0x2032075d), r28);", // IID11687 - "__ movq(Address(r30, r31, (Address::ScaleFactor)1, -0x48fdbf05), r29);", // IID11688 - "__ movq(Address(r31, rcx, (Address::ScaleFactor)3, +0x2e991b95), r30);", // IID11689 - "__ movq(Address(rcx, rdx, (Address::ScaleFactor)0, +0x568e786a), r31);", // IID11690 - "__ xaddq(Address(rdx, rbx, (Address::ScaleFactor)3, -0x3a07751a), rcx);", // IID11691 - "__ xaddq(Address(rbx, -0x2d8323c9), rdx);", // IID11692 - "__ xaddq(Address(r8, r9, (Address::ScaleFactor)0, +0x4c79b459), rbx);", // IID11693 - "__ xaddq(Address(r9, -0x46211222), r8);", // IID11694 - "__ xaddq(Address(r10, r11, (Address::ScaleFactor)2, +0x3ebd3702), r9);", // IID11695 - "__ xaddq(Address(r11, +0x20727fa1), r10);", // IID11696 - "__ xaddq(Address(r12, r13, (Address::ScaleFactor)2, +0x729e10ea), r11);", // IID11697 - "__ xaddq(Address(r13, r14, (Address::ScaleFactor)0, -0x56487e8), r12);", // IID11698 - "__ xaddq(Address(r14, -0x4a3b387a), r13);", // IID11699 - "__ xaddq(Address(r15, r16, (Address::ScaleFactor)0, -0x7c11474d), r14);", // IID11700 - "__ xaddq(Address(r16, r17, (Address::ScaleFactor)0, -0x38d0defc), r15);", // IID11701 - "__ xaddq(Address(r17, r18, (Address::ScaleFactor)3, -0x77975b1a), r16);", // IID11702 - "__ xaddq(Address(r18, r19, (Address::ScaleFactor)0, -0x601b2375), r17);", // IID11703 - "__ xaddq(Address(r19, r20, (Address::ScaleFactor)1, +0x4743d965), r18);", // IID11704 - "__ xaddq(Address(r20, r21, (Address::ScaleFactor)1, +0x2bfff99f), r19);", // IID11705 - "__ xaddq(Address(r21, r22, (Address::ScaleFactor)0, -0x3191d1aa), r20);", // IID11706 - "__ xaddq(Address(r22, r23, (Address::ScaleFactor)0, -0xb669a75), r21);", // IID11707 - "__ xaddq(Address(r23, -0x321d7002), r22);", // IID11708 - "__ xaddq(Address(r24, r25, (Address::ScaleFactor)1, -0x31cfa1c7), r23);", // IID11709 - "__ xaddq(Address(r25, r26, (Address::ScaleFactor)1, -0x47151527), r24);", // IID11710 - "__ xaddq(Address(r26, r27, (Address::ScaleFactor)1, +0x502175), r25);", // IID11711 - "__ xaddq(Address(r27, r28, (Address::ScaleFactor)3, +0x2b6dc375), r26);", // IID11712 - "__ xaddq(Address(r28, r29, (Address::ScaleFactor)3, +0x7c793ed6), r27);", // IID11713 - "__ xaddq(Address(r29, r30, (Address::ScaleFactor)2, +0xbe047c1), r28);", // IID11714 - "__ xaddq(Address(r30, +0x4cd70ee9), r29);", // IID11715 - "__ xaddq(Address(r31, -0x2252b35a), r30);", // IID11716 - "__ xaddq(Address(rcx, +0x7b599d45), r31);", // IID11717 - "__ andq(Address(rcx, rdx, (Address::ScaleFactor)2, -0x4e426426), 1);", // IID11718 - "__ andq(Address(rdx, rbx, (Address::ScaleFactor)0, -0x788ddd72), 1);", // IID11719 - "__ andq(Address(rbx, r8, (Address::ScaleFactor)0, -0x187ca42b), 1);", // IID11720 - "__ andq(Address(r8, r9, (Address::ScaleFactor)1, +0x2f218aa7), 1);", // IID11721 - "__ andq(Address(r9, -0x7da3378e), 1);", // IID11722 - "__ andq(Address(r10, r11, (Address::ScaleFactor)2, +0x41a6ecc8), 1);", // IID11723 - "__ andq(Address(r11, r12, (Address::ScaleFactor)2, +0x25064713), 1);", // IID11724 - "__ andq(Address(r12, r13, (Address::ScaleFactor)3, +0x745ebcde), 1);", // IID11725 - "__ andq(Address(r13, r14, (Address::ScaleFactor)2, -0x79d3ea28), 1);", // IID11726 - "__ andq(Address(r14, r15, (Address::ScaleFactor)3, -0x3c44ede0), 1);", // IID11727 - "__ andq(Address(r15, r16, (Address::ScaleFactor)2, -0x50becd45), 1);", // IID11728 - "__ andq(Address(r16, r17, (Address::ScaleFactor)1, +0x17c1575b), 1);", // IID11729 - "__ andq(Address(r17, r18, (Address::ScaleFactor)2, +0x53808949), 1);", // IID11730 - "__ andq(Address(r18, r19, (Address::ScaleFactor)2, -0x2fd5be99), 1);", // IID11731 - "__ andq(Address(r19, r20, (Address::ScaleFactor)0, -0x58039a3a), 1);", // IID11732 - "__ andq(Address(r20, r21, (Address::ScaleFactor)0, +0x634e6a1d), 1);", // IID11733 - "__ andq(Address(r21, r22, (Address::ScaleFactor)1, -0x3e448d20), 1);", // IID11734 - "__ andq(Address(r22, +0x9351646), 1);", // IID11735 - "__ andq(Address(r23, r24, (Address::ScaleFactor)3, -0x68593392), 1);", // IID11736 - "__ andq(Address(r24, +0x42872748), 1);", // IID11737 - "__ andq(Address(r25, r26, (Address::ScaleFactor)3, -0x3dde9069), 1);", // IID11738 - "__ andq(Address(r26, r27, (Address::ScaleFactor)3, +0x210423d2), 1);", // IID11739 - "__ andq(Address(r27, r28, (Address::ScaleFactor)3, -0x2e242dc4), 1);", // IID11740 - "__ andq(Address(r28, r29, (Address::ScaleFactor)0, +0x7571c1d), 1);", // IID11741 - "__ andq(Address(r29, -0x753ad1bf), 1);", // IID11742 - "__ andq(Address(r30, -0x6d1c8dcd), 1);", // IID11743 - "__ andq(Address(r31, rcx, (Address::ScaleFactor)2, +0x78241aaa), 1);", // IID11744 - "__ andq(Address(rcx, rdx, (Address::ScaleFactor)3, -0x440facb), 16);", // IID11745 - "__ andq(Address(rdx, rbx, (Address::ScaleFactor)0, -0x7e7524f7), 16);", // IID11746 - "__ andq(Address(rbx, r8, (Address::ScaleFactor)1, -0x799c816f), 16);", // IID11747 - "__ andq(Address(r8, r9, (Address::ScaleFactor)3, +0x4d397671), 16);", // IID11748 - "__ andq(Address(r9, r10, (Address::ScaleFactor)3, -0x9a23e6f), 16);", // IID11749 - "__ andq(Address(r10, +0x658b6d0e), 16);", // IID11750 - "__ andq(Address(r11, r12, (Address::ScaleFactor)3, -0x3b229b38), 16);", // IID11751 - "__ andq(Address(r12, r13, (Address::ScaleFactor)1, +0x31b7e768), 16);", // IID11752 - "__ andq(Address(r13, r14, (Address::ScaleFactor)1, +0x6f5d3a0a), 16);", // IID11753 - "__ andq(Address(r14, r15, (Address::ScaleFactor)2, -0x50fa57bc), 16);", // IID11754 - "__ andq(Address(r15, r16, (Address::ScaleFactor)3, +0x101e935d), 16);", // IID11755 - "__ andq(Address(r16, r17, (Address::ScaleFactor)3, -0x7a600a8), 16);", // IID11756 - "__ andq(Address(r17, r18, (Address::ScaleFactor)3, +0x2ad751bd), 16);", // IID11757 - "__ andq(Address(r18, -0x6cc1bb1b), 16);", // IID11758 - "__ andq(Address(r19, r20, (Address::ScaleFactor)3, +0x43d7c735), 16);", // IID11759 - "__ andq(Address(r20, r21, (Address::ScaleFactor)1, +0x2bea74b5), 16);", // IID11760 - "__ andq(Address(r21, r22, (Address::ScaleFactor)0, -0x5e40cd7b), 16);", // IID11761 - "__ andq(Address(r22, r23, (Address::ScaleFactor)1, +0x5f4a7583), 16);", // IID11762 - "__ andq(Address(r23, r24, (Address::ScaleFactor)2, -0x6a10e5a4), 16);", // IID11763 - "__ andq(Address(r24, r25, (Address::ScaleFactor)2, +0x235bd93c), 16);", // IID11764 - "__ andq(Address(r25, r26, (Address::ScaleFactor)1, +0x6adc7821), 16);", // IID11765 - "__ andq(Address(r26, r27, (Address::ScaleFactor)2, -0x415d55f4), 16);", // IID11766 - "__ andq(Address(r27, r28, (Address::ScaleFactor)0, -0x4ba23bef), 16);", // IID11767 - "__ andq(Address(r28, r29, (Address::ScaleFactor)3, +0x4e9ca541), 16);", // IID11768 - "__ andq(Address(r29, -0x7350e8e), 16);", // IID11769 - "__ andq(Address(r30, r31, (Address::ScaleFactor)1, -0x11729dbf), 16);", // IID11770 - "__ andq(Address(r31, rcx, (Address::ScaleFactor)3, -0xd1a1b95), 16);", // IID11771 - "__ andq(Address(rcx, rdx, (Address::ScaleFactor)1, -0x253e72b8), 256);", // IID11772 - "__ andq(Address(rdx, rbx, (Address::ScaleFactor)1, +0x5f2098ba), 256);", // IID11773 - "__ andq(Address(rbx, r8, (Address::ScaleFactor)1, -0x76888b97), 256);", // IID11774 - "__ andq(Address(r8, -0x7b4e732a), 256);", // IID11775 - "__ andq(Address(r9, r10, (Address::ScaleFactor)0, -0x6efe92b), 256);", // IID11776 - "__ andq(Address(r10, r11, (Address::ScaleFactor)2, -0x5f69b789), 256);", // IID11777 - "__ andq(Address(r11, r12, (Address::ScaleFactor)1, -0xde15bff), 256);", // IID11778 - "__ andq(Address(r12, r13, (Address::ScaleFactor)1, -0x2918c3c2), 256);", // IID11779 - "__ andq(Address(r13, -0x7eea005b), 256);", // IID11780 - "__ andq(Address(r14, r15, (Address::ScaleFactor)0, -0x390588a0), 256);", // IID11781 - "__ andq(Address(r15, r16, (Address::ScaleFactor)3, +0x7c803e4d), 256);", // IID11782 - "__ andq(Address(r16, r17, (Address::ScaleFactor)0, -0x5a3a310a), 256);", // IID11783 - "__ andq(Address(r17, +0x77648b35), 256);", // IID11784 - "__ andq(Address(r18, r19, (Address::ScaleFactor)1, -0x49a5f813), 256);", // IID11785 - "__ andq(Address(r19, r20, (Address::ScaleFactor)1, -0x81ac910), 256);", // IID11786 - "__ andq(Address(r20, -0x320e9a07), 256);", // IID11787 - "__ andq(Address(r21, r22, (Address::ScaleFactor)1, -0x7fee7c68), 256);", // IID11788 - "__ andq(Address(r22, r23, (Address::ScaleFactor)0, +0xbe461f1), 256);", // IID11789 - "__ andq(Address(r23, r24, (Address::ScaleFactor)3, +0x367d7b55), 256);", // IID11790 - "__ andq(Address(r24, +0x2071ca85), 256);", // IID11791 - "__ andq(Address(r25, r26, (Address::ScaleFactor)0, +0x415d16b6), 256);", // IID11792 - "__ andq(Address(r26, r27, (Address::ScaleFactor)1, +0x1fd378e4), 256);", // IID11793 - "__ andq(Address(r27, r28, (Address::ScaleFactor)3, +0x9112a69), 256);", // IID11794 - "__ andq(Address(r28, r29, (Address::ScaleFactor)0, +0x710c818c), 256);", // IID11795 - "__ andq(Address(r29, -0x31c4b9ce), 256);", // IID11796 - "__ andq(Address(r30, -0x57ca06e6), 256);", // IID11797 - "__ andq(Address(r31, -0x72c0ee3e), 256);", // IID11798 - "__ andq(Address(rcx, rdx, (Address::ScaleFactor)0, -0x38f6b45e), 4096);", // IID11799 - "__ andq(Address(rdx, +0x65e12e83), 4096);", // IID11800 - "__ andq(Address(rbx, r8, (Address::ScaleFactor)3, -0x4963bb6), 4096);", // IID11801 - "__ andq(Address(r8, r9, (Address::ScaleFactor)0, -0x7b6d6169), 4096);", // IID11802 - "__ andq(Address(r9, r10, (Address::ScaleFactor)3, -0x7dfdafea), 4096);", // IID11803 - "__ andq(Address(r10, +0x3f959035), 4096);", // IID11804 - "__ andq(Address(r11, r12, (Address::ScaleFactor)2, -0x5d325257), 4096);", // IID11805 - "__ andq(Address(r12, r13, (Address::ScaleFactor)2, +0x2b8da7c3), 4096);", // IID11806 - "__ andq(Address(r13, r14, (Address::ScaleFactor)0, -0x74b03dae), 4096);", // IID11807 - "__ andq(Address(r14, r15, (Address::ScaleFactor)2, -0x63061ba3), 4096);", // IID11808 - "__ andq(Address(r15, r16, (Address::ScaleFactor)1, +0x2caf4e84), 4096);", // IID11809 - "__ andq(Address(r16, r17, (Address::ScaleFactor)2, +0x58c828e6), 4096);", // IID11810 - "__ andq(Address(r17, -0x3d6b5c01), 4096);", // IID11811 - "__ andq(Address(r18, -0x1ee1b1d1), 4096);", // IID11812 - "__ andq(Address(r19, r20, (Address::ScaleFactor)0, -0x13444a28), 4096);", // IID11813 - "__ andq(Address(r20, r21, (Address::ScaleFactor)1, +0x8b25dd8), 4096);", // IID11814 - "__ andq(Address(r21, +0x5efe22a3), 4096);", // IID11815 - "__ andq(Address(r22, r23, (Address::ScaleFactor)2, -0x5e15970c), 4096);", // IID11816 - "__ andq(Address(r23, r24, (Address::ScaleFactor)2, -0x59771fcd), 4096);", // IID11817 - "__ andq(Address(r24, +0x44122521), 4096);", // IID11818 - "__ andq(Address(r25, r26, (Address::ScaleFactor)1, -0x4e70a897), 4096);", // IID11819 - "__ andq(Address(r26, r27, (Address::ScaleFactor)0, +0x6f926b87), 4096);", // IID11820 - "__ andq(Address(r27, -0x343e4e36), 4096);", // IID11821 - "__ andq(Address(r28, r29, (Address::ScaleFactor)3, -0xbfadbb6), 4096);", // IID11822 - "__ andq(Address(r29, r30, (Address::ScaleFactor)1, +0x3a480fa9), 4096);", // IID11823 - "__ andq(Address(r30, r31, (Address::ScaleFactor)3, -0x4d2a600c), 4096);", // IID11824 - "__ andq(Address(r31, rcx, (Address::ScaleFactor)2, +0x62d98af0), 4096);", // IID11825 - "__ andq(Address(rcx, rdx, (Address::ScaleFactor)3, -0x70d7dfa2), 65536);", // IID11826 - "__ andq(Address(rdx, rbx, (Address::ScaleFactor)3, +0x359636f1), 65536);", // IID11827 - "__ andq(Address(rbx, r8, (Address::ScaleFactor)3, +0x7cb25bba), 65536);", // IID11828 - "__ andq(Address(r8, -0x767acdf2), 65536);", // IID11829 - "__ andq(Address(r9, -0x5ec031f4), 65536);", // IID11830 - "__ andq(Address(r10, r11, (Address::ScaleFactor)1, -0x42b97064), 65536);", // IID11831 - "__ andq(Address(r11, r12, (Address::ScaleFactor)2, -0x350cfe52), 65536);", // IID11832 - "__ andq(Address(r12, r13, (Address::ScaleFactor)3, -0x1f61bff), 65536);", // IID11833 - "__ andq(Address(r13, r14, (Address::ScaleFactor)2, +0x53b66de3), 65536);", // IID11834 - "__ andq(Address(r14, -0x7f379b8e), 65536);", // IID11835 - "__ andq(Address(r15, r16, (Address::ScaleFactor)3, +0x4daa5ee9), 65536);", // IID11836 - "__ andq(Address(r16, r17, (Address::ScaleFactor)1, +0x1be6a5f8), 65536);", // IID11837 - "__ andq(Address(r17, r18, (Address::ScaleFactor)1, +0x4422269c), 65536);", // IID11838 - "__ andq(Address(r18, r19, (Address::ScaleFactor)2, +0x45b7bc3f), 65536);", // IID11839 - "__ andq(Address(r19, r20, (Address::ScaleFactor)2, +0x22d851cd), 65536);", // IID11840 - "__ andq(Address(r20, r21, (Address::ScaleFactor)2, -0x797bc79b), 65536);", // IID11841 - "__ andq(Address(r21, r22, (Address::ScaleFactor)2, -0x2ebaa4dc), 65536);", // IID11842 - "__ andq(Address(r22, r23, (Address::ScaleFactor)2, +0x61b1e382), 65536);", // IID11843 - "__ andq(Address(r23, r24, (Address::ScaleFactor)3, -0x4edab0f6), 65536);", // IID11844 - "__ andq(Address(r24, r25, (Address::ScaleFactor)1, -0x2f0a92ca), 65536);", // IID11845 - "__ andq(Address(r25, r26, (Address::ScaleFactor)3, +0x63cea984), 65536);", // IID11846 - "__ andq(Address(r26, r27, (Address::ScaleFactor)1, -0x19a3ced7), 65536);", // IID11847 - "__ andq(Address(r27, -0xd0051f9), 65536);", // IID11848 - "__ andq(Address(r28, r29, (Address::ScaleFactor)0, +0x11164a3a), 65536);", // IID11849 - "__ andq(Address(r29, r30, (Address::ScaleFactor)2, -0x59fb7a1a), 65536);", // IID11850 - "__ andq(Address(r30, r31, (Address::ScaleFactor)0, +0x227bd6cd), 65536);", // IID11851 - "__ andq(Address(r31, rcx, (Address::ScaleFactor)1, -0x48c8540a), 65536);", // IID11852 - "__ andq(Address(rcx, rdx, (Address::ScaleFactor)2, -0x2c39ee08), 1048576);", // IID11853 - "__ andq(Address(rdx, rbx, (Address::ScaleFactor)2, +0x421adf74), 1048576);", // IID11854 - "__ andq(Address(rbx, r8, (Address::ScaleFactor)1, +0x6f32f0cc), 1048576);", // IID11855 - "__ andq(Address(r8, r9, (Address::ScaleFactor)0, -0x67977cab), 1048576);", // IID11856 - "__ andq(Address(r9, r10, (Address::ScaleFactor)0, -0xea09209), 1048576);", // IID11857 - "__ andq(Address(r10, r11, (Address::ScaleFactor)2, +0xfad5756), 1048576);", // IID11858 - "__ andq(Address(r11, r12, (Address::ScaleFactor)3, -0x4b5ae4e6), 1048576);", // IID11859 - "__ andq(Address(r12, r13, (Address::ScaleFactor)3, -0x8b05752), 1048576);", // IID11860 - "__ andq(Address(r13, r14, (Address::ScaleFactor)0, +0x33deb3a5), 1048576);", // IID11861 - "__ andq(Address(r14, +0x17b49bec), 1048576);", // IID11862 - "__ andq(Address(r15, r16, (Address::ScaleFactor)2, +0x1b709d31), 1048576);", // IID11863 - "__ andq(Address(r16, r17, (Address::ScaleFactor)2, +0x78ef64b6), 1048576);", // IID11864 - "__ andq(Address(r17, r18, (Address::ScaleFactor)3, +0x3aea53c), 1048576);", // IID11865 - "__ andq(Address(r18, r19, (Address::ScaleFactor)3, +0x510de7f7), 1048576);", // IID11866 - "__ andq(Address(r19, r20, (Address::ScaleFactor)2, +0x4e129d03), 1048576);", // IID11867 - "__ andq(Address(r20, r21, (Address::ScaleFactor)3, +0x5394a4a3), 1048576);", // IID11868 - "__ andq(Address(r21, r22, (Address::ScaleFactor)2, -0x2ca80707), 1048576);", // IID11869 - "__ andq(Address(r22, r23, (Address::ScaleFactor)0, +0x54b431a4), 1048576);", // IID11870 - "__ andq(Address(r23, r24, (Address::ScaleFactor)0, -0x6cce5411), 1048576);", // IID11871 - "__ andq(Address(r24, +0x109e6ee5), 1048576);", // IID11872 - "__ andq(Address(r25, r26, (Address::ScaleFactor)1, -0x5f2be812), 1048576);", // IID11873 - "__ andq(Address(r26, r27, (Address::ScaleFactor)3, -0x25240d13), 1048576);", // IID11874 - "__ andq(Address(r27, +0x78891088), 1048576);", // IID11875 - "__ andq(Address(r28, r29, (Address::ScaleFactor)2, +0x2085047e), 1048576);", // IID11876 - "__ andq(Address(r29, r30, (Address::ScaleFactor)1, -0x50773c13), 1048576);", // IID11877 - "__ andq(Address(r30, -0x77ff67e8), 1048576);", // IID11878 - "__ andq(Address(r31, -0x33ac7e2e), 1048576);", // IID11879 - "__ andq(Address(rcx, rdx, (Address::ScaleFactor)1, +0x3a656170), 16777216);", // IID11880 - "__ andq(Address(rdx, -0x2b657319), 16777216);", // IID11881 - "__ andq(Address(rbx, r8, (Address::ScaleFactor)0, +0x1ccc0e47), 16777216);", // IID11882 - "__ andq(Address(r8, r9, (Address::ScaleFactor)1, +0x3e5fdb7c), 16777216);", // IID11883 - "__ andq(Address(r9, r10, (Address::ScaleFactor)1, +0x324e317), 16777216);", // IID11884 - "__ andq(Address(r10, r11, (Address::ScaleFactor)1, +0x6f7ddf82), 16777216);", // IID11885 - "__ andq(Address(r11, r12, (Address::ScaleFactor)2, -0x62f6fdbd), 16777216);", // IID11886 - "__ andq(Address(r12, r13, (Address::ScaleFactor)2, -0x47b33d5e), 16777216);", // IID11887 - "__ andq(Address(r13, r14, (Address::ScaleFactor)2, -0x3e7e6245), 16777216);", // IID11888 - "__ andq(Address(r14, r15, (Address::ScaleFactor)2, +0x2452ca38), 16777216);", // IID11889 - "__ andq(Address(r15, -0x2b2fd43e), 16777216);", // IID11890 - "__ andq(Address(r16, r17, (Address::ScaleFactor)3, +0xbe146ec), 16777216);", // IID11891 - "__ andq(Address(r17, r18, (Address::ScaleFactor)0, -0x75d7a6c1), 16777216);", // IID11892 - "__ andq(Address(r18, -0xa56361d), 16777216);", // IID11893 - "__ andq(Address(r19, r20, (Address::ScaleFactor)3, +0x549a87e2), 16777216);", // IID11894 - "__ andq(Address(r20, -0x6ac45091), 16777216);", // IID11895 - "__ andq(Address(r21, r22, (Address::ScaleFactor)0, +0x1f94bb07), 16777216);", // IID11896 - "__ andq(Address(r22, -0x504bbc59), 16777216);", // IID11897 - "__ andq(Address(r23, r24, (Address::ScaleFactor)1, +0x657a9262), 16777216);", // IID11898 - "__ andq(Address(r24, r25, (Address::ScaleFactor)2, -0x1c6a5592), 16777216);", // IID11899 - "__ andq(Address(r25, r26, (Address::ScaleFactor)2, +0x28c98a3a), 16777216);", // IID11900 - "__ andq(Address(r26, r27, (Address::ScaleFactor)2, -0x5d9cd1b7), 16777216);", // IID11901 - "__ andq(Address(r27, r28, (Address::ScaleFactor)2, +0x61494a04), 16777216);", // IID11902 - "__ andq(Address(r28, r29, (Address::ScaleFactor)0, -0x36c22), 16777216);", // IID11903 - "__ andq(Address(r29, r30, (Address::ScaleFactor)3, -0x4588058f), 16777216);", // IID11904 - "__ andq(Address(r30, +0x7bed7091), 16777216);", // IID11905 - "__ andq(Address(r31, rcx, (Address::ScaleFactor)1, -0x2743655e), 16777216);", // IID11906 - "__ andq(Address(rcx, rdx, (Address::ScaleFactor)2, +0x2873c320), 268435456);", // IID11907 - "__ andq(Address(rdx, rbx, (Address::ScaleFactor)0, -0x47ac0b8f), 268435456);", // IID11908 - "__ andq(Address(rbx, r8, (Address::ScaleFactor)0, +0x72b79f34), 268435456);", // IID11909 - "__ andq(Address(r8, r9, (Address::ScaleFactor)2, +0x48b5bf57), 268435456);", // IID11910 - "__ andq(Address(r9, r10, (Address::ScaleFactor)1, +0x31e9ac64), 268435456);", // IID11911 - "__ andq(Address(r10, r11, (Address::ScaleFactor)2, +0x7ea7618b), 268435456);", // IID11912 - "__ andq(Address(r11, r12, (Address::ScaleFactor)2, +0x3a98084), 268435456);", // IID11913 - "__ andq(Address(r12, r13, (Address::ScaleFactor)0, +0x6a7c09dc), 268435456);", // IID11914 - "__ andq(Address(r13, r14, (Address::ScaleFactor)2, -0x6d4d2bdd), 268435456);", // IID11915 - "__ andq(Address(r14, r15, (Address::ScaleFactor)0, -0x2c04c886), 268435456);", // IID11916 - "__ andq(Address(r15, r16, (Address::ScaleFactor)3, -0x7b20d86a), 268435456);", // IID11917 - "__ andq(Address(r16, r17, (Address::ScaleFactor)0, +0x1fa9b130), 268435456);", // IID11918 - "__ andq(Address(r17, r18, (Address::ScaleFactor)2, +0x9bbe1a3), 268435456);", // IID11919 - "__ andq(Address(r18, r19, (Address::ScaleFactor)3, +0x1203831f), 268435456);", // IID11920 - "__ andq(Address(r19, r20, (Address::ScaleFactor)3, +0x55fddcd8), 268435456);", // IID11921 - "__ andq(Address(r20, -0x322997c5), 268435456);", // IID11922 - "__ andq(Address(r21, r22, (Address::ScaleFactor)3, +0x457e7d37), 268435456);", // IID11923 - "__ andq(Address(r22, r23, (Address::ScaleFactor)1, +0x6e42fc02), 268435456);", // IID11924 - "__ andq(Address(r23, r24, (Address::ScaleFactor)1, +0x501bda29), 268435456);", // IID11925 - "__ andq(Address(r24, r25, (Address::ScaleFactor)0, -0x3c6acf2b), 268435456);", // IID11926 - "__ andq(Address(r25, r26, (Address::ScaleFactor)0, +0x7ef77b01), 268435456);", // IID11927 - "__ andq(Address(r26, r27, (Address::ScaleFactor)2, +0x64ce97b7), 268435456);", // IID11928 - "__ andq(Address(r27, r28, (Address::ScaleFactor)2, -0x72718dc1), 268435456);", // IID11929 - "__ andq(Address(r28, +0x6385d19f), 268435456);", // IID11930 - "__ andq(Address(r29, +0x219876b0), 268435456);", // IID11931 - "__ andq(Address(r30, -0xdf83798), 268435456);", // IID11932 - "__ andq(Address(r31, rcx, (Address::ScaleFactor)0, -0x4e1c0f0d), 268435456);", // IID11933 - "__ addq(Address(rcx, rdx, (Address::ScaleFactor)3, +0xad1886), 1);", // IID11934 - "__ addq(Address(rdx, rbx, (Address::ScaleFactor)2, -0x4e085e79), 1);", // IID11935 - "__ addq(Address(rbx, +0x3464661d), 1);", // IID11936 - "__ addq(Address(r8, r9, (Address::ScaleFactor)3, -0x394e7242), 1);", // IID11937 - "__ addq(Address(r9, r10, (Address::ScaleFactor)0, +0x1d28d76e), 1);", // IID11938 - "__ addq(Address(r10, +0x3376bfdc), 1);", // IID11939 - "__ addq(Address(r11, r12, (Address::ScaleFactor)1, +0x27b0e9eb), 1);", // IID11940 - "__ addq(Address(r12, r13, (Address::ScaleFactor)0, -0x26675cd7), 1);", // IID11941 - "__ addq(Address(r13, r14, (Address::ScaleFactor)2, +0x3dd703e4), 1);", // IID11942 - "__ addq(Address(r14, r15, (Address::ScaleFactor)1, -0xbd06b8c), 1);", // IID11943 - "__ addq(Address(r15, r16, (Address::ScaleFactor)3, +0x195fe4e4), 1);", // IID11944 - "__ addq(Address(r16, r17, (Address::ScaleFactor)2, -0x531b0460), 1);", // IID11945 - "__ addq(Address(r17, r18, (Address::ScaleFactor)0, -0x6519234e), 1);", // IID11946 - "__ addq(Address(r18, -0x464c93d2), 1);", // IID11947 - "__ addq(Address(r19, r20, (Address::ScaleFactor)3, -0x600c3f26), 1);", // IID11948 - "__ addq(Address(r20, r21, (Address::ScaleFactor)2, -0x160ace77), 1);", // IID11949 - "__ addq(Address(r21, +0x70b75127), 1);", // IID11950 - "__ addq(Address(r22, r23, (Address::ScaleFactor)1, -0x2010425e), 1);", // IID11951 - "__ addq(Address(r23, r24, (Address::ScaleFactor)1, -0x44098561), 1);", // IID11952 - "__ addq(Address(r24, r25, (Address::ScaleFactor)3, +0x18657f4b), 1);", // IID11953 - "__ addq(Address(r25, r26, (Address::ScaleFactor)1, -0x726aaa07), 1);", // IID11954 - "__ addq(Address(r26, r27, (Address::ScaleFactor)3, +0x6e1cf238), 1);", // IID11955 - "__ addq(Address(r27, r28, (Address::ScaleFactor)0, -0xacb5769), 1);", // IID11956 - "__ addq(Address(r28, r29, (Address::ScaleFactor)2, -0x3c83f7e5), 1);", // IID11957 - "__ addq(Address(r29, r30, (Address::ScaleFactor)3, -0x592ad54c), 1);", // IID11958 - "__ addq(Address(r30, +0x61be9898), 1);", // IID11959 - "__ addq(Address(r31, rcx, (Address::ScaleFactor)3, -0x1ce571af), 1);", // IID11960 - "__ addq(Address(rcx, -0x464479a4), 16);", // IID11961 - "__ addq(Address(rdx, rbx, (Address::ScaleFactor)2, +0x794a747e), 16);", // IID11962 - "__ addq(Address(rbx, -0x6605fb48), 16);", // IID11963 - "__ addq(Address(r8, r9, (Address::ScaleFactor)2, +0x209052ce), 16);", // IID11964 - "__ addq(Address(r9, r10, (Address::ScaleFactor)2, -0x710c3bd5), 16);", // IID11965 - "__ addq(Address(r10, r11, (Address::ScaleFactor)1, +0x7b22078c), 16);", // IID11966 - "__ addq(Address(r11, r12, (Address::ScaleFactor)1, -0x5578071), 16);", // IID11967 - "__ addq(Address(r12, r13, (Address::ScaleFactor)1, -0x315658), 16);", // IID11968 - "__ addq(Address(r13, r14, (Address::ScaleFactor)1, -0x244b394e), 16);", // IID11969 - "__ addq(Address(r14, -0x4bd2bddb), 16);", // IID11970 - "__ addq(Address(r15, r16, (Address::ScaleFactor)3, +0x299613d1), 16);", // IID11971 - "__ addq(Address(r16, r17, (Address::ScaleFactor)3, -0x6a3027fa), 16);", // IID11972 - "__ addq(Address(r17, r18, (Address::ScaleFactor)1, -0x192553ea), 16);", // IID11973 - "__ addq(Address(r18, r19, (Address::ScaleFactor)2, -0x6a48b13c), 16);", // IID11974 - "__ addq(Address(r19, r20, (Address::ScaleFactor)0, +0x8b8e313), 16);", // IID11975 - "__ addq(Address(r20, r21, (Address::ScaleFactor)0, +0x2028f4b8), 16);", // IID11976 - "__ addq(Address(r21, r22, (Address::ScaleFactor)0, -0x43f78f03), 16);", // IID11977 - "__ addq(Address(r22, r23, (Address::ScaleFactor)2, -0x7b34ee5c), 16);", // IID11978 - "__ addq(Address(r23, r24, (Address::ScaleFactor)1, +0x264b7fc4), 16);", // IID11979 - "__ addq(Address(r24, r25, (Address::ScaleFactor)3, -0x6cecfc10), 16);", // IID11980 - "__ addq(Address(r25, r26, (Address::ScaleFactor)3, +0x29b7066e), 16);", // IID11981 - "__ addq(Address(r26, r27, (Address::ScaleFactor)1, +0x3e005e69), 16);", // IID11982 - "__ addq(Address(r27, r28, (Address::ScaleFactor)2, +0x5d85eaf6), 16);", // IID11983 - "__ addq(Address(r28, r29, (Address::ScaleFactor)1, +0x33b7f318), 16);", // IID11984 - "__ addq(Address(r29, -0x161dbbce), 16);", // IID11985 - "__ addq(Address(r30, r31, (Address::ScaleFactor)2, +0x6383e87a), 16);", // IID11986 - "__ addq(Address(r31, rcx, (Address::ScaleFactor)0, -0x6cf977c0), 16);", // IID11987 - "__ addq(Address(rcx, rdx, (Address::ScaleFactor)1, +0x799716da), 256);", // IID11988 - "__ addq(Address(rdx, rbx, (Address::ScaleFactor)2, +0x341c08d8), 256);", // IID11989 - "__ addq(Address(rbx, r8, (Address::ScaleFactor)1, -0x28cc799), 256);", // IID11990 - "__ addq(Address(r8, r9, (Address::ScaleFactor)2, -0x773b2b77), 256);", // IID11991 - "__ addq(Address(r9, r10, (Address::ScaleFactor)1, +0x52448c62), 256);", // IID11992 - "__ addq(Address(r10, r11, (Address::ScaleFactor)2, +0x2c284687), 256);", // IID11993 - "__ addq(Address(r11, r12, (Address::ScaleFactor)2, +0x5d577b80), 256);", // IID11994 - "__ addq(Address(r12, -0x19c871b2), 256);", // IID11995 - "__ addq(Address(r13, -0x79a0a5b2), 256);", // IID11996 - "__ addq(Address(r14, r15, (Address::ScaleFactor)0, -0x4853f12d), 256);", // IID11997 - "__ addq(Address(r15, r16, (Address::ScaleFactor)3, +0x3dfa6995), 256);", // IID11998 - "__ addq(Address(r16, r17, (Address::ScaleFactor)3, -0x1d2f3a41), 256);", // IID11999 - "__ addq(Address(r17, r18, (Address::ScaleFactor)1, +0x72bff29), 256);", // IID12000 - "__ addq(Address(r18, r19, (Address::ScaleFactor)3, -0x37e401dc), 256);", // IID12001 - "__ addq(Address(r19, r20, (Address::ScaleFactor)1, -0x479de958), 256);", // IID12002 - "__ addq(Address(r20, +0x73381d14), 256);", // IID12003 - "__ addq(Address(r21, r22, (Address::ScaleFactor)3, +0x769aa364), 256);", // IID12004 - "__ addq(Address(r22, r23, (Address::ScaleFactor)0, -0x44e95b4a), 256);", // IID12005 - "__ addq(Address(r23, r24, (Address::ScaleFactor)1, -0x1245ac0), 256);", // IID12006 - "__ addq(Address(r24, r25, (Address::ScaleFactor)2, -0x62565c03), 256);", // IID12007 - "__ addq(Address(r25, r26, (Address::ScaleFactor)0, -0x17923ae8), 256);", // IID12008 - "__ addq(Address(r26, r27, (Address::ScaleFactor)0, -0x589e6cc), 256);", // IID12009 - "__ addq(Address(r27, r28, (Address::ScaleFactor)0, -0x6bf8b4d4), 256);", // IID12010 - "__ addq(Address(r28, r29, (Address::ScaleFactor)1, +0x74d8da0a), 256);", // IID12011 - "__ addq(Address(r29, r30, (Address::ScaleFactor)3, -0x402489ee), 256);", // IID12012 - "__ addq(Address(r30, r31, (Address::ScaleFactor)0, +0x267ba8b9), 256);", // IID12013 - "__ addq(Address(r31, +0x213aaccf), 256);", // IID12014 - "__ addq(Address(rcx, rdx, (Address::ScaleFactor)1, +0x6789e0c9), 4096);", // IID12015 - "__ addq(Address(rdx, rbx, (Address::ScaleFactor)1, +0x395c650d), 4096);", // IID12016 - "__ addq(Address(rbx, +0x44b86052), 4096);", // IID12017 - "__ addq(Address(r8, r9, (Address::ScaleFactor)2, -0x28bc9ef2), 4096);", // IID12018 - "__ addq(Address(r9, +0x691a65ae), 4096);", // IID12019 - "__ addq(Address(r10, r11, (Address::ScaleFactor)3, -0x3c01809e), 4096);", // IID12020 - "__ addq(Address(r11, +0xfd2998a), 4096);", // IID12021 - "__ addq(Address(r12, r13, (Address::ScaleFactor)3, -0x3076b5fc), 4096);", // IID12022 - "__ addq(Address(r13, r14, (Address::ScaleFactor)0, -0x8fb3f54), 4096);", // IID12023 - "__ addq(Address(r14, -0x10037b4b), 4096);", // IID12024 - "__ addq(Address(r15, +0x1ba1fa0e), 4096);", // IID12025 - "__ addq(Address(r16, r17, (Address::ScaleFactor)1, +0x6831986a), 4096);", // IID12026 - "__ addq(Address(r17, r18, (Address::ScaleFactor)2, -0x5628f2ed), 4096);", // IID12027 - "__ addq(Address(r18, +0x1c13c175), 4096);", // IID12028 - "__ addq(Address(r19, r20, (Address::ScaleFactor)3, -0x735da744), 4096);", // IID12029 - "__ addq(Address(r20, -0x1f2d1733), 4096);", // IID12030 - "__ addq(Address(r21, r22, (Address::ScaleFactor)2, +0x613f18ef), 4096);", // IID12031 - "__ addq(Address(r22, r23, (Address::ScaleFactor)2, +0x654bf460), 4096);", // IID12032 - "__ addq(Address(r23, r24, (Address::ScaleFactor)0, -0x452229f9), 4096);", // IID12033 - "__ addq(Address(r24, r25, (Address::ScaleFactor)3, -0x43903857), 4096);", // IID12034 - "__ addq(Address(r25, r26, (Address::ScaleFactor)1, -0x55a2c54d), 4096);", // IID12035 - "__ addq(Address(r26, r27, (Address::ScaleFactor)3, -0x3ec0c880), 4096);", // IID12036 - "__ addq(Address(r27, r28, (Address::ScaleFactor)0, -0x39aa836a), 4096);", // IID12037 - "__ addq(Address(r28, r29, (Address::ScaleFactor)0, +0x28149079), 4096);", // IID12038 - "__ addq(Address(r29, r30, (Address::ScaleFactor)3, +0x36b27296), 4096);", // IID12039 - "__ addq(Address(r30, -0x11a67477), 4096);", // IID12040 - "__ addq(Address(r31, rcx, (Address::ScaleFactor)0, -0x401ce91e), 4096);", // IID12041 - "__ addq(Address(rcx, rdx, (Address::ScaleFactor)1, +0x614014b9), 65536);", // IID12042 - "__ addq(Address(rdx, rbx, (Address::ScaleFactor)0, +0x22a17743), 65536);", // IID12043 - "__ addq(Address(rbx, r8, (Address::ScaleFactor)1, -0x5f304d34), 65536);", // IID12044 - "__ addq(Address(r8, -0x5b050865), 65536);", // IID12045 - "__ addq(Address(r9, r10, (Address::ScaleFactor)3, -0x4ea3e56c), 65536);", // IID12046 - "__ addq(Address(r10, +0x2e9959b9), 65536);", // IID12047 - "__ addq(Address(r11, r12, (Address::ScaleFactor)0, +0xf19532b), 65536);", // IID12048 - "__ addq(Address(r12, +0x7a4dc4d2), 65536);", // IID12049 - "__ addq(Address(r13, r14, (Address::ScaleFactor)2, +0x7f81e065), 65536);", // IID12050 - "__ addq(Address(r14, r15, (Address::ScaleFactor)1, -0x4d587d91), 65536);", // IID12051 - "__ addq(Address(r15, r16, (Address::ScaleFactor)3, +0x6c7be73d), 65536);", // IID12052 - "__ addq(Address(r16, r17, (Address::ScaleFactor)1, +0x15b3303c), 65536);", // IID12053 - "__ addq(Address(r17, r18, (Address::ScaleFactor)0, -0x7a2c3449), 65536);", // IID12054 - "__ addq(Address(r18, +0x2d357c4f), 65536);", // IID12055 - "__ addq(Address(r19, r20, (Address::ScaleFactor)2, +0x66b2131f), 65536);", // IID12056 - "__ addq(Address(r20, r21, (Address::ScaleFactor)3, +0x49088cdf), 65536);", // IID12057 - "__ addq(Address(r21, r22, (Address::ScaleFactor)1, +0x66641e2b), 65536);", // IID12058 - "__ addq(Address(r22, r23, (Address::ScaleFactor)0, +0x4dbb7d97), 65536);", // IID12059 - "__ addq(Address(r23, r24, (Address::ScaleFactor)3, -0x24cdacf3), 65536);", // IID12060 - "__ addq(Address(r24, r25, (Address::ScaleFactor)3, +0x507cf51e), 65536);", // IID12061 - "__ addq(Address(r25, -0x19abc381), 65536);", // IID12062 - "__ addq(Address(r26, r27, (Address::ScaleFactor)0, -0x61413205), 65536);", // IID12063 - "__ addq(Address(r27, r28, (Address::ScaleFactor)2, +0x606c08f8), 65536);", // IID12064 - "__ addq(Address(r28, r29, (Address::ScaleFactor)0, -0x4fa81fb9), 65536);", // IID12065 - "__ addq(Address(r29, -0x281baa4d), 65536);", // IID12066 - "__ addq(Address(r30, r31, (Address::ScaleFactor)1, -0x7bdc75ea), 65536);", // IID12067 - "__ addq(Address(r31, rcx, (Address::ScaleFactor)3, +0x368b2d23), 65536);", // IID12068 - "__ addq(Address(rcx, rdx, (Address::ScaleFactor)0, +0x356eb0d6), 1048576);", // IID12069 - "__ addq(Address(rdx, -0x7fe634f0), 1048576);", // IID12070 - "__ addq(Address(rbx, r8, (Address::ScaleFactor)0, -0x56ad27bc), 1048576);", // IID12071 - "__ addq(Address(r8, r9, (Address::ScaleFactor)0, -0x1cc4f799), 1048576);", // IID12072 - "__ addq(Address(r9, r10, (Address::ScaleFactor)0, -0x2aebb2ae), 1048576);", // IID12073 - "__ addq(Address(r10, r11, (Address::ScaleFactor)1, +0x6951202e), 1048576);", // IID12074 - "__ addq(Address(r11, +0x39961358), 1048576);", // IID12075 - "__ addq(Address(r12, r13, (Address::ScaleFactor)0, -0x5c5229b5), 1048576);", // IID12076 - "__ addq(Address(r13, -0x485457d9), 1048576);", // IID12077 - "__ addq(Address(r14, +0xd659a0e), 1048576);", // IID12078 - "__ addq(Address(r15, r16, (Address::ScaleFactor)1, +0x181b4d85), 1048576);", // IID12079 - "__ addq(Address(r16, r17, (Address::ScaleFactor)3, -0x63d42371), 1048576);", // IID12080 - "__ addq(Address(r17, r18, (Address::ScaleFactor)1, +0x625c297b), 1048576);", // IID12081 - "__ addq(Address(r18, r19, (Address::ScaleFactor)1, +0x7bb84230), 1048576);", // IID12082 - "__ addq(Address(r19, r20, (Address::ScaleFactor)1, +0x78184bb6), 1048576);", // IID12083 - "__ addq(Address(r20, +0x6db2dcf9), 1048576);", // IID12084 - "__ addq(Address(r21, -0x13689d38), 1048576);", // IID12085 - "__ addq(Address(r22, r23, (Address::ScaleFactor)1, +0x33736268), 1048576);", // IID12086 - "__ addq(Address(r23, r24, (Address::ScaleFactor)3, +0x16198f0c), 1048576);", // IID12087 - "__ addq(Address(r24, r25, (Address::ScaleFactor)3, +0x65e78a20), 1048576);", // IID12088 - "__ addq(Address(r25, r26, (Address::ScaleFactor)2, +0x4e3bf71), 1048576);", // IID12089 - "__ addq(Address(r26, r27, (Address::ScaleFactor)1, -0x4644299c), 1048576);", // IID12090 - "__ addq(Address(r27, -0x3871a8f0), 1048576);", // IID12091 - "__ addq(Address(r28, r29, (Address::ScaleFactor)3, -0x258f1d64), 1048576);", // IID12092 - "__ addq(Address(r29, r30, (Address::ScaleFactor)3, -0x679c67ad), 1048576);", // IID12093 - "__ addq(Address(r30, r31, (Address::ScaleFactor)1, +0x28bdbac2), 1048576);", // IID12094 - "__ addq(Address(r31, rcx, (Address::ScaleFactor)3, +0x256489fb), 1048576);", // IID12095 - "__ addq(Address(rcx, rdx, (Address::ScaleFactor)0, -0x24b024ba), 16777216);", // IID12096 - "__ addq(Address(rdx, rbx, (Address::ScaleFactor)1, -0x42f2673d), 16777216);", // IID12097 - "__ addq(Address(rbx, r8, (Address::ScaleFactor)1, -0x31ba21a6), 16777216);", // IID12098 - "__ addq(Address(r8, r9, (Address::ScaleFactor)1, +0x6af8ca5b), 16777216);", // IID12099 - "__ addq(Address(r9, r10, (Address::ScaleFactor)0, -0x21429398), 16777216);", // IID12100 - "__ addq(Address(r10, +0x65a19f9c), 16777216);", // IID12101 - "__ addq(Address(r11, r12, (Address::ScaleFactor)2, -0x2f5b15f2), 16777216);", // IID12102 - "__ addq(Address(r12, r13, (Address::ScaleFactor)1, -0x4d36371e), 16777216);", // IID12103 - "__ addq(Address(r13, r14, (Address::ScaleFactor)2, -0x2642736a), 16777216);", // IID12104 - "__ addq(Address(r14, r15, (Address::ScaleFactor)3, +0xa053664), 16777216);", // IID12105 - "__ addq(Address(r15, +0x7f6c3e), 16777216);", // IID12106 - "__ addq(Address(r16, +0x741f487b), 16777216);", // IID12107 - "__ addq(Address(r17, r18, (Address::ScaleFactor)2, +0x38ebc1e3), 16777216);", // IID12108 - "__ addq(Address(r18, r19, (Address::ScaleFactor)2, +0x7cf2953c), 16777216);", // IID12109 - "__ addq(Address(r19, r20, (Address::ScaleFactor)3, +0x3da94320), 16777216);", // IID12110 - "__ addq(Address(r20, -0x20fe80a4), 16777216);", // IID12111 - "__ addq(Address(r21, r22, (Address::ScaleFactor)3, -0x64ca5595), 16777216);", // IID12112 - "__ addq(Address(r22, r23, (Address::ScaleFactor)2, +0x7a80bb91), 16777216);", // IID12113 - "__ addq(Address(r23, r24, (Address::ScaleFactor)1, +0xd77f43f), 16777216);", // IID12114 - "__ addq(Address(r24, r25, (Address::ScaleFactor)3, +0x79c6a5f1), 16777216);", // IID12115 - "__ addq(Address(r25, r26, (Address::ScaleFactor)1, -0x5e72682b), 16777216);", // IID12116 - "__ addq(Address(r26, r27, (Address::ScaleFactor)0, +0x32d81d3d), 16777216);", // IID12117 - "__ addq(Address(r27, -0x11ca0618), 16777216);", // IID12118 - "__ addq(Address(r28, r29, (Address::ScaleFactor)0, -0x4be95a5a), 16777216);", // IID12119 - "__ addq(Address(r29, r30, (Address::ScaleFactor)1, +0x105feb22), 16777216);", // IID12120 - "__ addq(Address(r30, -0x4b8912f1), 16777216);", // IID12121 - "__ addq(Address(r31, rcx, (Address::ScaleFactor)3, -0x71add634), 16777216);", // IID12122 - "__ addq(Address(rcx, rdx, (Address::ScaleFactor)1, -0x76747519), 268435456);", // IID12123 - "__ addq(Address(rdx, rbx, (Address::ScaleFactor)0, +0x346febde), 268435456);", // IID12124 - "__ addq(Address(rbx, -0x2f8e4b61), 268435456);", // IID12125 - "__ addq(Address(r8, r9, (Address::ScaleFactor)3, +0x6d61d68c), 268435456);", // IID12126 - "__ addq(Address(r9, r10, (Address::ScaleFactor)2, +0x18ae9fed), 268435456);", // IID12127 - "__ addq(Address(r10, r11, (Address::ScaleFactor)3, +0x10bbcf88), 268435456);", // IID12128 - "__ addq(Address(r11, r12, (Address::ScaleFactor)3, -0x398b3753), 268435456);", // IID12129 - "__ addq(Address(r12, r13, (Address::ScaleFactor)2, +0x2a94cd77), 268435456);", // IID12130 - "__ addq(Address(r13, -0xd4e3f4e), 268435456);", // IID12131 - "__ addq(Address(r14, r15, (Address::ScaleFactor)2, +0x88cf40c), 268435456);", // IID12132 - "__ addq(Address(r15, -0x66548c48), 268435456);", // IID12133 - "__ addq(Address(r16, r17, (Address::ScaleFactor)2, +0x2dc35ea1), 268435456);", // IID12134 - "__ addq(Address(r17, r18, (Address::ScaleFactor)1, -0x4996528f), 268435456);", // IID12135 - "__ addq(Address(r18, r19, (Address::ScaleFactor)3, +0x5934ada4), 268435456);", // IID12136 - "__ addq(Address(r19, r20, (Address::ScaleFactor)1, +0x7d3d9f0c), 268435456);", // IID12137 - "__ addq(Address(r20, r21, (Address::ScaleFactor)2, -0x5f418b8c), 268435456);", // IID12138 - "__ addq(Address(r21, r22, (Address::ScaleFactor)1, -0x10c7b906), 268435456);", // IID12139 - "__ addq(Address(r22, r23, (Address::ScaleFactor)3, -0x403ab415), 268435456);", // IID12140 - "__ addq(Address(r23, r24, (Address::ScaleFactor)2, +0x42a2d19d), 268435456);", // IID12141 - "__ addq(Address(r24, r25, (Address::ScaleFactor)1, -0xbdf0743), 268435456);", // IID12142 - "__ addq(Address(r25, r26, (Address::ScaleFactor)1, +0x7a9375a9), 268435456);", // IID12143 - "__ addq(Address(r26, +0x619234a4), 268435456);", // IID12144 - "__ addq(Address(r27, r28, (Address::ScaleFactor)1, +0x4eb3432f), 268435456);", // IID12145 - "__ addq(Address(r28, +0x3daa2501), 268435456);", // IID12146 - "__ addq(Address(r29, r30, (Address::ScaleFactor)1, +0x3436131f), 268435456);", // IID12147 - "__ addq(Address(r30, r31, (Address::ScaleFactor)1, +0x266d13aa), 268435456);", // IID12148 - "__ addq(Address(r31, rcx, (Address::ScaleFactor)3, -0x5e157a67), 268435456);", // IID12149 - "__ cmpq(Address(rcx, rdx, (Address::ScaleFactor)1, -0x2c6aa60f), 1);", // IID12150 - "__ cmpq(Address(rdx, rbx, (Address::ScaleFactor)2, +0x267bc9d8), 1);", // IID12151 - "__ cmpq(Address(rbx, -0x3be915c), 1);", // IID12152 - "__ cmpq(Address(r8, r9, (Address::ScaleFactor)3, -0x4d955509), 1);", // IID12153 - "__ cmpq(Address(r9, +0x48caa406), 1);", // IID12154 - "__ cmpq(Address(r10, r11, (Address::ScaleFactor)0, +0x7bd24513), 1);", // IID12155 - "__ cmpq(Address(r11, r12, (Address::ScaleFactor)0, -0x92666c7), 1);", // IID12156 - "__ cmpq(Address(r12, r13, (Address::ScaleFactor)3, +0x3b465339), 1);", // IID12157 - "__ cmpq(Address(r13, r14, (Address::ScaleFactor)0, +0x27fbf12c), 1);", // IID12158 - "__ cmpq(Address(r14, r15, (Address::ScaleFactor)0, +0x170f44f6), 1);", // IID12159 - "__ cmpq(Address(r15, r16, (Address::ScaleFactor)1, -0x557a63ac), 1);", // IID12160 - "__ cmpq(Address(r16, r17, (Address::ScaleFactor)1, +0x7f680f07), 1);", // IID12161 - "__ cmpq(Address(r17, r18, (Address::ScaleFactor)2, -0x25c844cb), 1);", // IID12162 - "__ cmpq(Address(r18, r19, (Address::ScaleFactor)0, +0x51b0432f), 1);", // IID12163 - "__ cmpq(Address(r19, r20, (Address::ScaleFactor)1, +0x1d8ca062), 1);", // IID12164 - "__ cmpq(Address(r20, r21, (Address::ScaleFactor)3, +0x101b5066), 1);", // IID12165 - "__ cmpq(Address(r21, +0x8f212b9), 1);", // IID12166 - "__ cmpq(Address(r22, -0x5cd6fec4), 1);", // IID12167 - "__ cmpq(Address(r23, r24, (Address::ScaleFactor)2, -0x6966fdd9), 1);", // IID12168 - "__ cmpq(Address(r24, r25, (Address::ScaleFactor)3, -0x6041657d), 1);", // IID12169 - "__ cmpq(Address(r25, r26, (Address::ScaleFactor)3, -0x6f23e95f), 1);", // IID12170 - "__ cmpq(Address(r26, r27, (Address::ScaleFactor)2, +0x2f307bf5), 1);", // IID12171 - "__ cmpq(Address(r27, r28, (Address::ScaleFactor)1, +0x78623b07), 1);", // IID12172 - "__ cmpq(Address(r28, r29, (Address::ScaleFactor)2, -0xd860f1d), 1);", // IID12173 - "__ cmpq(Address(r29, r30, (Address::ScaleFactor)2, +0x72bb16dd), 1);", // IID12174 - "__ cmpq(Address(r30, r31, (Address::ScaleFactor)2, -0x66c90c3a), 1);", // IID12175 - "__ cmpq(Address(r31, +0x3b998b4a), 1);", // IID12176 - "__ cmpq(Address(rcx, +0x2e6a4f6c), 16);", // IID12177 - "__ cmpq(Address(rdx, rbx, (Address::ScaleFactor)2, +0x44f773cc), 16);", // IID12178 - "__ cmpq(Address(rbx, r8, (Address::ScaleFactor)2, -0x50f53797), 16);", // IID12179 - "__ cmpq(Address(r8, -0x3092f12d), 16);", // IID12180 - "__ cmpq(Address(r9, r10, (Address::ScaleFactor)2, -0x613f871f), 16);", // IID12181 - "__ cmpq(Address(r10, +0x3a84e443), 16);", // IID12182 - "__ cmpq(Address(r11, r12, (Address::ScaleFactor)2, +0x3b6b248c), 16);", // IID12183 - "__ cmpq(Address(r12, r13, (Address::ScaleFactor)3, -0x485f24d5), 16);", // IID12184 - "__ cmpq(Address(r13, +0x60b28770), 16);", // IID12185 - "__ cmpq(Address(r14, r15, (Address::ScaleFactor)2, -0x3e327a3b), 16);", // IID12186 - "__ cmpq(Address(r15, r16, (Address::ScaleFactor)3, -0x6e1ad6c8), 16);", // IID12187 - "__ cmpq(Address(r16, r17, (Address::ScaleFactor)2, -0x1fdda856), 16);", // IID12188 - "__ cmpq(Address(r17, r18, (Address::ScaleFactor)1, -0x4ec6503), 16);", // IID12189 - "__ cmpq(Address(r18, r19, (Address::ScaleFactor)2, -0xdff53ff), 16);", // IID12190 - "__ cmpq(Address(r19, r20, (Address::ScaleFactor)1, -0x5e62298d), 16);", // IID12191 - "__ cmpq(Address(r20, +0x786bafe9), 16);", // IID12192 - "__ cmpq(Address(r21, r22, (Address::ScaleFactor)0, +0x6cdffc29), 16);", // IID12193 - "__ cmpq(Address(r22, r23, (Address::ScaleFactor)1, +0x1ef55b8e), 16);", // IID12194 - "__ cmpq(Address(r23, r24, (Address::ScaleFactor)0, +0x77e07879), 16);", // IID12195 - "__ cmpq(Address(r24, r25, (Address::ScaleFactor)1, +0x60b1c80c), 16);", // IID12196 - "__ cmpq(Address(r25, r26, (Address::ScaleFactor)1, +0x44c6d8fa), 16);", // IID12197 - "__ cmpq(Address(r26, r27, (Address::ScaleFactor)1, +0x46b698e1), 16);", // IID12198 - "__ cmpq(Address(r27, r28, (Address::ScaleFactor)2, -0x590069d5), 16);", // IID12199 - "__ cmpq(Address(r28, r29, (Address::ScaleFactor)0, -0xd4fc97d), 16);", // IID12200 - "__ cmpq(Address(r29, r30, (Address::ScaleFactor)1, +0x6787db44), 16);", // IID12201 - "__ cmpq(Address(r30, r31, (Address::ScaleFactor)2, -0x51fdb212), 16);", // IID12202 - "__ cmpq(Address(r31, +0x178d76ac), 16);", // IID12203 - "__ cmpq(Address(rcx, rdx, (Address::ScaleFactor)2, -0x152c3deb), 256);", // IID12204 - "__ cmpq(Address(rdx, +0x64fa70f6), 256);", // IID12205 - "__ cmpq(Address(rbx, -0x3400ac02), 256);", // IID12206 - "__ cmpq(Address(r8, -0x38507104), 256);", // IID12207 - "__ cmpq(Address(r9, r10, (Address::ScaleFactor)1, -0x3f21fa76), 256);", // IID12208 - "__ cmpq(Address(r10, r11, (Address::ScaleFactor)0, -0x16552c6e), 256);", // IID12209 - "__ cmpq(Address(r11, r12, (Address::ScaleFactor)0, +0x58d80943), 256);", // IID12210 - "__ cmpq(Address(r12, -0x5766c7da), 256);", // IID12211 - "__ cmpq(Address(r13, r14, (Address::ScaleFactor)0, +0x7681cbfe), 256);", // IID12212 - "__ cmpq(Address(r14, +0x1e36136f), 256);", // IID12213 - "__ cmpq(Address(r15, -0x370a63ff), 256);", // IID12214 - "__ cmpq(Address(r16, -0x68a1b70b), 256);", // IID12215 - "__ cmpq(Address(r17, r18, (Address::ScaleFactor)3, +0x68d629e5), 256);", // IID12216 - "__ cmpq(Address(r18, r19, (Address::ScaleFactor)2, +0x482cc481), 256);", // IID12217 - "__ cmpq(Address(r19, r20, (Address::ScaleFactor)3, -0x298d9511), 256);", // IID12218 - "__ cmpq(Address(r20, r21, (Address::ScaleFactor)3, -0xff013d5), 256);", // IID12219 - "__ cmpq(Address(r21, r22, (Address::ScaleFactor)3, +0xf6e0c3e), 256);", // IID12220 - "__ cmpq(Address(r22, -0x5442eb51), 256);", // IID12221 - "__ cmpq(Address(r23, r24, (Address::ScaleFactor)2, +0x797221f4), 256);", // IID12222 - "__ cmpq(Address(r24, r25, (Address::ScaleFactor)3, -0x41941b9d), 256);", // IID12223 - "__ cmpq(Address(r25, r26, (Address::ScaleFactor)0, -0x655d484f), 256);", // IID12224 - "__ cmpq(Address(r26, r27, (Address::ScaleFactor)2, +0x36d42875), 256);", // IID12225 - "__ cmpq(Address(r27, r28, (Address::ScaleFactor)1, -0x13194307), 256);", // IID12226 - "__ cmpq(Address(r28, +0x349284d6), 256);", // IID12227 - "__ cmpq(Address(r29, r30, (Address::ScaleFactor)1, -0x7bbff408), 256);", // IID12228 - "__ cmpq(Address(r30, r31, (Address::ScaleFactor)3, +0x57bcb1e1), 256);", // IID12229 - "__ cmpq(Address(r31, rcx, (Address::ScaleFactor)2, +0x4488afbb), 256);", // IID12230 - "__ cmpq(Address(rcx, rdx, (Address::ScaleFactor)1, +0xae19290), 4096);", // IID12231 - "__ cmpq(Address(rdx, -0x69bc8cdd), 4096);", // IID12232 - "__ cmpq(Address(rbx, r8, (Address::ScaleFactor)2, +0x1ddb07d4), 4096);", // IID12233 - "__ cmpq(Address(r8, r9, (Address::ScaleFactor)1, +0x100911a9), 4096);", // IID12234 - "__ cmpq(Address(r9, r10, (Address::ScaleFactor)1, -0x2b91466a), 4096);", // IID12235 - "__ cmpq(Address(r10, r11, (Address::ScaleFactor)1, -0x5e3141e7), 4096);", // IID12236 - "__ cmpq(Address(r11, r12, (Address::ScaleFactor)2, -0x711e1f8), 4096);", // IID12237 - "__ cmpq(Address(r12, r13, (Address::ScaleFactor)0, -0x78364d7b), 4096);", // IID12238 - "__ cmpq(Address(r13, r14, (Address::ScaleFactor)3, +0xa6f2821), 4096);", // IID12239 - "__ cmpq(Address(r14, r15, (Address::ScaleFactor)1, +0x3e1fa63b), 4096);", // IID12240 - "__ cmpq(Address(r15, r16, (Address::ScaleFactor)0, -0x3332247), 4096);", // IID12241 - "__ cmpq(Address(r16, r17, (Address::ScaleFactor)3, +0x13c213f0), 4096);", // IID12242 - "__ cmpq(Address(r17, r18, (Address::ScaleFactor)0, -0x2728319a), 4096);", // IID12243 - "__ cmpq(Address(r18, r19, (Address::ScaleFactor)0, -0x6d07a084), 4096);", // IID12244 - "__ cmpq(Address(r19, r20, (Address::ScaleFactor)1, +0x5c7c1c92), 4096);", // IID12245 - "__ cmpq(Address(r20, r21, (Address::ScaleFactor)1, +0x699536fc), 4096);", // IID12246 - "__ cmpq(Address(r21, r22, (Address::ScaleFactor)0, +0x14e1370b), 4096);", // IID12247 - "__ cmpq(Address(r22, r23, (Address::ScaleFactor)0, -0x1caaeeff), 4096);", // IID12248 - "__ cmpq(Address(r23, +0x4091ad72), 4096);", // IID12249 - "__ cmpq(Address(r24, r25, (Address::ScaleFactor)1, +0x1e1ad5bb), 4096);", // IID12250 - "__ cmpq(Address(r25, +0x1b5565b2), 4096);", // IID12251 - "__ cmpq(Address(r26, r27, (Address::ScaleFactor)0, +0x19297f41), 4096);", // IID12252 - "__ cmpq(Address(r27, r28, (Address::ScaleFactor)2, -0x2a4bb202), 4096);", // IID12253 - "__ cmpq(Address(r28, +0x70711a80), 4096);", // IID12254 - "__ cmpq(Address(r29, r30, (Address::ScaleFactor)2, -0x7515631f), 4096);", // IID12255 - "__ cmpq(Address(r30, r31, (Address::ScaleFactor)0, -0x2b38f6f8), 4096);", // IID12256 - "__ cmpq(Address(r31, rcx, (Address::ScaleFactor)0, +0x424f6ff4), 4096);", // IID12257 - "__ cmpq(Address(rcx, -0x52570ea6), 65536);", // IID12258 - "__ cmpq(Address(rdx, rbx, (Address::ScaleFactor)2, +0x10ef7b5a), 65536);", // IID12259 - "__ cmpq(Address(rbx, r8, (Address::ScaleFactor)2, +0x15d157e9), 65536);", // IID12260 - "__ cmpq(Address(r8, r9, (Address::ScaleFactor)2, +0x35cce7cd), 65536);", // IID12261 - "__ cmpq(Address(r9, -0x7f04ed0), 65536);", // IID12262 - "__ cmpq(Address(r10, r11, (Address::ScaleFactor)2, -0x652757a0), 65536);", // IID12263 - "__ cmpq(Address(r11, r12, (Address::ScaleFactor)3, -0x493d1663), 65536);", // IID12264 - "__ cmpq(Address(r12, r13, (Address::ScaleFactor)3, +0x3f22bac), 65536);", // IID12265 - "__ cmpq(Address(r13, r14, (Address::ScaleFactor)2, +0x2e53b57f), 65536);", // IID12266 - "__ cmpq(Address(r14, r15, (Address::ScaleFactor)2, -0x55bf2746), 65536);", // IID12267 - "__ cmpq(Address(r15, r16, (Address::ScaleFactor)2, -0x57a0bd7e), 65536);", // IID12268 - "__ cmpq(Address(r16, r17, (Address::ScaleFactor)1, -0x770ccffc), 65536);", // IID12269 - "__ cmpq(Address(r17, r18, (Address::ScaleFactor)2, +0x3b5d9062), 65536);", // IID12270 - "__ cmpq(Address(r18, r19, (Address::ScaleFactor)2, -0x253affab), 65536);", // IID12271 - "__ cmpq(Address(r19, r20, (Address::ScaleFactor)3, +0x67f08e3e), 65536);", // IID12272 - "__ cmpq(Address(r20, r21, (Address::ScaleFactor)2, -0x2c534c71), 65536);", // IID12273 - "__ cmpq(Address(r21, r22, (Address::ScaleFactor)0, -0x6dbeecd5), 65536);", // IID12274 - "__ cmpq(Address(r22, r23, (Address::ScaleFactor)2, -0x7fedcacf), 65536);", // IID12275 - "__ cmpq(Address(r23, r24, (Address::ScaleFactor)0, -0x24caf164), 65536);", // IID12276 - "__ cmpq(Address(r24, r25, (Address::ScaleFactor)3, -0x7d03b8e8), 65536);", // IID12277 - "__ cmpq(Address(r25, r26, (Address::ScaleFactor)0, -0x54e861fc), 65536);", // IID12278 - "__ cmpq(Address(r26, +0x6b7b757b), 65536);", // IID12279 - "__ cmpq(Address(r27, r28, (Address::ScaleFactor)2, +0x5bd931aa), 65536);", // IID12280 - "__ cmpq(Address(r28, r29, (Address::ScaleFactor)1, -0x39fe0022), 65536);", // IID12281 - "__ cmpq(Address(r29, r30, (Address::ScaleFactor)0, +0x6cc5f738), 65536);", // IID12282 - "__ cmpq(Address(r30, r31, (Address::ScaleFactor)2, +0x5a4aba77), 65536);", // IID12283 - "__ cmpq(Address(r31, rcx, (Address::ScaleFactor)0, -0x64fb16d7), 65536);", // IID12284 - "__ cmpq(Address(rcx, rdx, (Address::ScaleFactor)3, -0x642d641a), 1048576);", // IID12285 - "__ cmpq(Address(rdx, rbx, (Address::ScaleFactor)0, -0x1f6d760e), 1048576);", // IID12286 - "__ cmpq(Address(rbx, -0x33ffa1aa), 1048576);", // IID12287 - "__ cmpq(Address(r8, r9, (Address::ScaleFactor)3, -0x75a79206), 1048576);", // IID12288 - "__ cmpq(Address(r9, r10, (Address::ScaleFactor)2, -0x6b9ff911), 1048576);", // IID12289 - "__ cmpq(Address(r10, r11, (Address::ScaleFactor)2, +0x4676dc92), 1048576);", // IID12290 - "__ cmpq(Address(r11, -0x65b6e768), 1048576);", // IID12291 - "__ cmpq(Address(r12, r13, (Address::ScaleFactor)2, +0x29b3eea3), 1048576);", // IID12292 - "__ cmpq(Address(r13, +0x7b4281db), 1048576);", // IID12293 - "__ cmpq(Address(r14, -0x1ab3ccbe), 1048576);", // IID12294 - "__ cmpq(Address(r15, r16, (Address::ScaleFactor)3, +0x611a6082), 1048576);", // IID12295 - "__ cmpq(Address(r16, r17, (Address::ScaleFactor)2, +0x7396ca81), 1048576);", // IID12296 - "__ cmpq(Address(r17, r18, (Address::ScaleFactor)3, -0x32978ae), 1048576);", // IID12297 - "__ cmpq(Address(r18, r19, (Address::ScaleFactor)0, -0x1248a94d), 1048576);", // IID12298 - "__ cmpq(Address(r19, r20, (Address::ScaleFactor)1, +0x3b7c5ae), 1048576);", // IID12299 - "__ cmpq(Address(r20, r21, (Address::ScaleFactor)1, -0x375e03a6), 1048576);", // IID12300 - "__ cmpq(Address(r21, r22, (Address::ScaleFactor)3, +0x778867e0), 1048576);", // IID12301 - "__ cmpq(Address(r22, r23, (Address::ScaleFactor)3, +0x5f6deabd), 1048576);", // IID12302 - "__ cmpq(Address(r23, r24, (Address::ScaleFactor)1, -0x5c44c81e), 1048576);", // IID12303 - "__ cmpq(Address(r24, r25, (Address::ScaleFactor)3, -0x61af402b), 1048576);", // IID12304 - "__ cmpq(Address(r25, -0x49480ce4), 1048576);", // IID12305 - "__ cmpq(Address(r26, r27, (Address::ScaleFactor)2, +0x64e413c2), 1048576);", // IID12306 - "__ cmpq(Address(r27, r28, (Address::ScaleFactor)0, -0x6b614891), 1048576);", // IID12307 - "__ cmpq(Address(r28, r29, (Address::ScaleFactor)1, +0x2e3d8b68), 1048576);", // IID12308 - "__ cmpq(Address(r29, r30, (Address::ScaleFactor)2, +0x1b791731), 1048576);", // IID12309 - "__ cmpq(Address(r30, r31, (Address::ScaleFactor)0, -0xcd09132), 1048576);", // IID12310 - "__ cmpq(Address(r31, rcx, (Address::ScaleFactor)2, +0x6290c2d3), 1048576);", // IID12311 - "__ cmpq(Address(rcx, rdx, (Address::ScaleFactor)3, +0x33ad972c), 16777216);", // IID12312 - "__ cmpq(Address(rdx, rbx, (Address::ScaleFactor)0, -0x720cc840), 16777216);", // IID12313 - "__ cmpq(Address(rbx, r8, (Address::ScaleFactor)2, +0x47384ef0), 16777216);", // IID12314 - "__ cmpq(Address(r8, r9, (Address::ScaleFactor)1, -0x28bd2634), 16777216);", // IID12315 - "__ cmpq(Address(r9, r10, (Address::ScaleFactor)3, +0x3ca8d1ad), 16777216);", // IID12316 - "__ cmpq(Address(r10, -0x3c48bd26), 16777216);", // IID12317 - "__ cmpq(Address(r11, r12, (Address::ScaleFactor)1, +0x5c6e3e2a), 16777216);", // IID12318 - "__ cmpq(Address(r12, r13, (Address::ScaleFactor)1, -0x3a5a00b9), 16777216);", // IID12319 - "__ cmpq(Address(r13, r14, (Address::ScaleFactor)2, -0x6abf3275), 16777216);", // IID12320 - "__ cmpq(Address(r14, +0x62b0bd6e), 16777216);", // IID12321 - "__ cmpq(Address(r15, r16, (Address::ScaleFactor)2, +0x4a1fb6c0), 16777216);", // IID12322 - "__ cmpq(Address(r16, +0x2f166e11), 16777216);", // IID12323 - "__ cmpq(Address(r17, r18, (Address::ScaleFactor)0, +0x1a43d25a), 16777216);", // IID12324 - "__ cmpq(Address(r18, r19, (Address::ScaleFactor)3, -0x649509d0), 16777216);", // IID12325 - "__ cmpq(Address(r19, r20, (Address::ScaleFactor)1, +0x13ce2d20), 16777216);", // IID12326 - "__ cmpq(Address(r20, r21, (Address::ScaleFactor)1, -0x606298e4), 16777216);", // IID12327 - "__ cmpq(Address(r21, r22, (Address::ScaleFactor)3, -0x32c29622), 16777216);", // IID12328 - "__ cmpq(Address(r22, r23, (Address::ScaleFactor)2, +0x6be2e1a6), 16777216);", // IID12329 - "__ cmpq(Address(r23, -0x10e95db9), 16777216);", // IID12330 - "__ cmpq(Address(r24, r25, (Address::ScaleFactor)2, -0xf43dcb4), 16777216);", // IID12331 - "__ cmpq(Address(r25, r26, (Address::ScaleFactor)3, -0x52d5f89f), 16777216);", // IID12332 - "__ cmpq(Address(r26, r27, (Address::ScaleFactor)1, +0x6a6a714f), 16777216);", // IID12333 - "__ cmpq(Address(r27, r28, (Address::ScaleFactor)2, +0x7dca8e04), 16777216);", // IID12334 - "__ cmpq(Address(r28, r29, (Address::ScaleFactor)2, +0x6cfb17a), 16777216);", // IID12335 - "__ cmpq(Address(r29, r30, (Address::ScaleFactor)0, -0x4caf1da5), 16777216);", // IID12336 - "__ cmpq(Address(r30, r31, (Address::ScaleFactor)2, +0x7ef9b2ae), 16777216);", // IID12337 - "__ cmpq(Address(r31, rcx, (Address::ScaleFactor)0, -0x51ad006c), 16777216);", // IID12338 - "__ cmpq(Address(rcx, rdx, (Address::ScaleFactor)3, +0x1a621e38), 268435456);", // IID12339 - "__ cmpq(Address(rdx, -0x277e5b51), 268435456);", // IID12340 - "__ cmpq(Address(rbx, r8, (Address::ScaleFactor)0, +0x20a2d430), 268435456);", // IID12341 - "__ cmpq(Address(r8, r9, (Address::ScaleFactor)0, +0x3ae4d2f0), 268435456);", // IID12342 - "__ cmpq(Address(r9, r10, (Address::ScaleFactor)3, -0xbb8fa32), 268435456);", // IID12343 - "__ cmpq(Address(r10, r11, (Address::ScaleFactor)1, -0x4466e166), 268435456);", // IID12344 - "__ cmpq(Address(r11, r12, (Address::ScaleFactor)1, +0x40e52dc1), 268435456);", // IID12345 - "__ cmpq(Address(r12, +0x17d62dbb), 268435456);", // IID12346 - "__ cmpq(Address(r13, r14, (Address::ScaleFactor)0, +0x466f15a4), 268435456);", // IID12347 - "__ cmpq(Address(r14, -0x8f29734), 268435456);", // IID12348 - "__ cmpq(Address(r15, r16, (Address::ScaleFactor)1, +0x74836eaa), 268435456);", // IID12349 - "__ cmpq(Address(r16, r17, (Address::ScaleFactor)2, +0x7931605a), 268435456);", // IID12350 - "__ cmpq(Address(r17, r18, (Address::ScaleFactor)0, -0x6565a72e), 268435456);", // IID12351 - "__ cmpq(Address(r18, r19, (Address::ScaleFactor)1, +0x1920876b), 268435456);", // IID12352 - "__ cmpq(Address(r19, +0x506e5cb4), 268435456);", // IID12353 - "__ cmpq(Address(r20, r21, (Address::ScaleFactor)0, -0x55a3722c), 268435456);", // IID12354 - "__ cmpq(Address(r21, r22, (Address::ScaleFactor)2, +0x7486cf41), 268435456);", // IID12355 - "__ cmpq(Address(r22, r23, (Address::ScaleFactor)2, +0x17660000), 268435456);", // IID12356 - "__ cmpq(Address(r23, r24, (Address::ScaleFactor)2, -0x64c81cd8), 268435456);", // IID12357 - "__ cmpq(Address(r24, r25, (Address::ScaleFactor)3, +0x4336369f), 268435456);", // IID12358 - "__ cmpq(Address(r25, r26, (Address::ScaleFactor)0, -0x1b4cac78), 268435456);", // IID12359 - "__ cmpq(Address(r26, +0x1fe50610), 268435456);", // IID12360 - "__ cmpq(Address(r27, r28, (Address::ScaleFactor)3, +0xe23a851), 268435456);", // IID12361 - "__ cmpq(Address(r28, r29, (Address::ScaleFactor)0, -0x358fe46a), 268435456);", // IID12362 - "__ cmpq(Address(r29, r30, (Address::ScaleFactor)1, -0x1c7d272f), 268435456);", // IID12363 - "__ cmpq(Address(r30, r31, (Address::ScaleFactor)0, +0x2c7ce1a), 268435456);", // IID12364 - "__ cmpq(Address(r31, rcx, (Address::ScaleFactor)2, +0x35fec1d9), 268435456);", // IID12365 - "__ sarq(Address(rcx, rdx, (Address::ScaleFactor)2, +0x63fcc143), 1);", // IID12366 - "__ sarq(Address(rdx, +0x494f0cbf), 1);", // IID12367 - "__ sarq(Address(rbx, r8, (Address::ScaleFactor)0, +0x21631719), 1);", // IID12368 - "__ sarq(Address(r8, r9, (Address::ScaleFactor)3, -0x2cbb5867), 1);", // IID12369 - "__ sarq(Address(r9, +0xd9a087d), 1);", // IID12370 - "__ sarq(Address(r10, r11, (Address::ScaleFactor)1, -0x2ea6d1ec), 1);", // IID12371 - "__ sarq(Address(r11, r12, (Address::ScaleFactor)1, +0x4e061046), 1);", // IID12372 - "__ sarq(Address(r12, r13, (Address::ScaleFactor)3, +0x544073c5), 1);", // IID12373 - "__ sarq(Address(r13, -0x4f81965b), 1);", // IID12374 - "__ sarq(Address(r14, +0x142a86e), 1);", // IID12375 - "__ sarq(Address(r15, -0x572852b8), 1);", // IID12376 - "__ sarq(Address(r16, +0x13d4e33b), 1);", // IID12377 - "__ sarq(Address(r17, r18, (Address::ScaleFactor)3, -0x59d3182d), 1);", // IID12378 - "__ sarq(Address(r18, -0x125d591e), 1);", // IID12379 - "__ sarq(Address(r19, r20, (Address::ScaleFactor)2, -0x3a9cc2ba), 1);", // IID12380 - "__ sarq(Address(r20, r21, (Address::ScaleFactor)3, -0x74f3a60c), 1);", // IID12381 - "__ sarq(Address(r21, r22, (Address::ScaleFactor)1, +0x18350433), 1);", // IID12382 - "__ sarq(Address(r22, r23, (Address::ScaleFactor)2, -0x2d9f4d13), 1);", // IID12383 - "__ sarq(Address(r23, +0x7ca93085), 1);", // IID12384 - "__ sarq(Address(r24, r25, (Address::ScaleFactor)2, +0x61751a49), 1);", // IID12385 - "__ sarq(Address(r25, r26, (Address::ScaleFactor)1, +0x42c4182c), 1);", // IID12386 - "__ sarq(Address(r26, r27, (Address::ScaleFactor)3, +0xcee957a), 1);", // IID12387 - "__ sarq(Address(r27, r28, (Address::ScaleFactor)0, -0x5ea156b4), 1);", // IID12388 - "__ sarq(Address(r28, r29, (Address::ScaleFactor)1, +0x1c1d26ec), 1);", // IID12389 - "__ sarq(Address(r29, r30, (Address::ScaleFactor)3, -0x144f15a7), 1);", // IID12390 - "__ sarq(Address(r30, r31, (Address::ScaleFactor)2, +0x7bb4d9f4), 1);", // IID12391 - "__ sarq(Address(r31, -0x6e7a00c9), 1);", // IID12392 - "__ sarq(Address(rcx, rdx, (Address::ScaleFactor)3, -0x3411f1e4), 2);", // IID12393 - "__ sarq(Address(rdx, rbx, (Address::ScaleFactor)0, +0x4d3d3a45), 2);", // IID12394 - "__ sarq(Address(rbx, r8, (Address::ScaleFactor)0, -0x2f1630ba), 2);", // IID12395 - "__ sarq(Address(r8, r9, (Address::ScaleFactor)2, -0x321cc840), 2);", // IID12396 - "__ sarq(Address(r9, -0x71296bb2), 2);", // IID12397 - "__ sarq(Address(r10, r11, (Address::ScaleFactor)1, +0x63278b19), 2);", // IID12398 - "__ sarq(Address(r11, r12, (Address::ScaleFactor)0, +0x70165486), 2);", // IID12399 - "__ sarq(Address(r12, r13, (Address::ScaleFactor)2, -0x60a3f744), 2);", // IID12400 - "__ sarq(Address(r13, +0x7ba25447), 2);", // IID12401 - "__ sarq(Address(r14, r15, (Address::ScaleFactor)0, -0x100a1daf), 2);", // IID12402 - "__ sarq(Address(r15, r16, (Address::ScaleFactor)0, -0x25b665ae), 2);", // IID12403 - "__ sarq(Address(r16, -0x473eb122), 2);", // IID12404 - "__ sarq(Address(r17, r18, (Address::ScaleFactor)2, +0x23465c70), 2);", // IID12405 - "__ sarq(Address(r18, r19, (Address::ScaleFactor)0, +0x2e7ad10d), 2);", // IID12406 - "__ sarq(Address(r19, r20, (Address::ScaleFactor)3, +0x78ec374), 2);", // IID12407 - "__ sarq(Address(r20, r21, (Address::ScaleFactor)1, -0x6ed096ba), 2);", // IID12408 - "__ sarq(Address(r21, r22, (Address::ScaleFactor)1, -0x2e15f72e), 2);", // IID12409 - "__ sarq(Address(r22, r23, (Address::ScaleFactor)0, -0x20c31f58), 2);", // IID12410 - "__ sarq(Address(r23, r24, (Address::ScaleFactor)1, -0x3fd7c905), 2);", // IID12411 - "__ sarq(Address(r24, r25, (Address::ScaleFactor)3, -0x30454d3f), 2);", // IID12412 - "__ sarq(Address(r25, r26, (Address::ScaleFactor)3, -0x1217dd3b), 2);", // IID12413 - "__ sarq(Address(r26, r27, (Address::ScaleFactor)1, -0x2a282444), 2);", // IID12414 - "__ sarq(Address(r27, -0x411c9357), 2);", // IID12415 - "__ sarq(Address(r28, +0x58c39c3), 2);", // IID12416 - "__ sarq(Address(r29, r30, (Address::ScaleFactor)1, +0x33ed4863), 2);", // IID12417 - "__ sarq(Address(r30, r31, (Address::ScaleFactor)2, +0x2fb433ce), 2);", // IID12418 - "__ sarq(Address(r31, rcx, (Address::ScaleFactor)0, +0x757f711c), 2);", // IID12419 - "__ sarq(Address(rcx, +0x3781ffd4), 4);", // IID12420 - "__ sarq(Address(rdx, +0x74fa7436), 4);", // IID12421 - "__ sarq(Address(rbx, r8, (Address::ScaleFactor)0, -0x6f451a3b), 4);", // IID12422 - "__ sarq(Address(r8, r9, (Address::ScaleFactor)0, -0x25098f05), 4);", // IID12423 - "__ sarq(Address(r9, +0x520c8456), 4);", // IID12424 - "__ sarq(Address(r10, +0x4af9eb8), 4);", // IID12425 - "__ sarq(Address(r11, r12, (Address::ScaleFactor)0, +0x3844fc94), 4);", // IID12426 - "__ sarq(Address(r12, +0x1565b21d), 4);", // IID12427 - "__ sarq(Address(r13, r14, (Address::ScaleFactor)3, +0x1c7168a2), 4);", // IID12428 - "__ sarq(Address(r14, r15, (Address::ScaleFactor)3, -0x6bfafe62), 4);", // IID12429 - "__ sarq(Address(r15, r16, (Address::ScaleFactor)0, -0x37f0490), 4);", // IID12430 - "__ sarq(Address(r16, r17, (Address::ScaleFactor)0, +0x8a8e503), 4);", // IID12431 - "__ sarq(Address(r17, r18, (Address::ScaleFactor)1, -0x7ac5f5bf), 4);", // IID12432 - "__ sarq(Address(r18, r19, (Address::ScaleFactor)0, +0x2f191864), 4);", // IID12433 - "__ sarq(Address(r19, r20, (Address::ScaleFactor)2, -0x2ce4860c), 4);", // IID12434 - "__ sarq(Address(r20, r21, (Address::ScaleFactor)3, +0x64686320), 4);", // IID12435 - "__ sarq(Address(r21, r22, (Address::ScaleFactor)1, +0x3b51d5cd), 4);", // IID12436 - "__ sarq(Address(r22, r23, (Address::ScaleFactor)2, +0x23030eeb), 4);", // IID12437 - "__ sarq(Address(r23, r24, (Address::ScaleFactor)2, -0x2e819683), 4);", // IID12438 - "__ sarq(Address(r24, r25, (Address::ScaleFactor)2, +0x23c11170), 4);", // IID12439 - "__ sarq(Address(r25, r26, (Address::ScaleFactor)1, +0x6a213536), 4);", // IID12440 - "__ sarq(Address(r26, r27, (Address::ScaleFactor)3, -0x5764f463), 4);", // IID12441 - "__ sarq(Address(r27, -0x7aa79d41), 4);", // IID12442 - "__ sarq(Address(r28, r29, (Address::ScaleFactor)1, -0x54e28979), 4);", // IID12443 - "__ sarq(Address(r29, r30, (Address::ScaleFactor)1, -0x41092b55), 4);", // IID12444 - "__ sarq(Address(r30, r31, (Address::ScaleFactor)3, -0xca5cc72), 4);", // IID12445 - "__ sarq(Address(r31, -0xf5f7f8c), 4);", // IID12446 - "__ sarq(Address(rcx, rdx, (Address::ScaleFactor)0, +0x4de6eb64), 8);", // IID12447 - "__ sarq(Address(rdx, rbx, (Address::ScaleFactor)2, -0x4664f1ef), 8);", // IID12448 - "__ sarq(Address(rbx, r8, (Address::ScaleFactor)0, -0x62fd0893), 8);", // IID12449 - "__ sarq(Address(r8, r9, (Address::ScaleFactor)0, -0x1fe7c848), 8);", // IID12450 - "__ sarq(Address(r9, r10, (Address::ScaleFactor)2, -0x243ff5a6), 8);", // IID12451 - "__ sarq(Address(r10, +0x39bba7a7), 8);", // IID12452 - "__ sarq(Address(r11, +0xa1876ef), 8);", // IID12453 - "__ sarq(Address(r12, r13, (Address::ScaleFactor)0, -0x248b325f), 8);", // IID12454 - "__ sarq(Address(r13, r14, (Address::ScaleFactor)2, -0x61a98c0f), 8);", // IID12455 - "__ sarq(Address(r14, r15, (Address::ScaleFactor)1, +0x6a6f0b87), 8);", // IID12456 - "__ sarq(Address(r15, r16, (Address::ScaleFactor)1, +0x68d4772c), 8);", // IID12457 - "__ sarq(Address(r16, r17, (Address::ScaleFactor)3, +0x73cea75e), 8);", // IID12458 - "__ sarq(Address(r17, r18, (Address::ScaleFactor)0, +0x412dc295), 8);", // IID12459 - "__ sarq(Address(r18, r19, (Address::ScaleFactor)3, -0x344d51d), 8);", // IID12460 - "__ sarq(Address(r19, r20, (Address::ScaleFactor)0, -0x1b264b40), 8);", // IID12461 - "__ sarq(Address(r20, -0x2c2e2ff6), 8);", // IID12462 - "__ sarq(Address(r21, r22, (Address::ScaleFactor)2, -0x4abeb200), 8);", // IID12463 - "__ sarq(Address(r22, +0x488b5bd9), 8);", // IID12464 - "__ sarq(Address(r23, r24, (Address::ScaleFactor)2, +0x1b31a633), 8);", // IID12465 - "__ sarq(Address(r24, r25, (Address::ScaleFactor)2, -0x5a12fc1d), 8);", // IID12466 - "__ sarq(Address(r25, r26, (Address::ScaleFactor)1, +0x4ffd0257), 8);", // IID12467 - "__ sarq(Address(r26, r27, (Address::ScaleFactor)1, -0x3fd8cadf), 8);", // IID12468 - "__ sarq(Address(r27, r28, (Address::ScaleFactor)3, -0x40ed85c4), 8);", // IID12469 - "__ sarq(Address(r28, -0x45a21cd6), 8);", // IID12470 - "__ sarq(Address(r29, -0x299d3810), 8);", // IID12471 - "__ sarq(Address(r30, -0x564279f3), 8);", // IID12472 - "__ sarq(Address(r31, +0x63bbafa8), 8);", // IID12473 - "__ sarq(Address(rcx, rdx, (Address::ScaleFactor)1, -0x666c1186), 16);", // IID12474 - "__ sarq(Address(rdx, rbx, (Address::ScaleFactor)2, +0x726f50b0), 16);", // IID12475 - "__ sarq(Address(rbx, r8, (Address::ScaleFactor)0, -0x6da662e9), 16);", // IID12476 - "__ sarq(Address(r8, r9, (Address::ScaleFactor)2, -0x351fb98f), 16);", // IID12477 - "__ sarq(Address(r9, r10, (Address::ScaleFactor)0, -0x2c614825), 16);", // IID12478 - "__ sarq(Address(r10, -0x2741291a), 16);", // IID12479 - "__ sarq(Address(r11, -0x1767155b), 16);", // IID12480 - "__ sarq(Address(r12, r13, (Address::ScaleFactor)2, -0x27b5006b), 16);", // IID12481 - "__ sarq(Address(r13, r14, (Address::ScaleFactor)2, +0xdb6afed), 16);", // IID12482 - "__ sarq(Address(r14, r15, (Address::ScaleFactor)3, +0xc458c54), 16);", // IID12483 - "__ sarq(Address(r15, r16, (Address::ScaleFactor)2, -0xf1ffbeb), 16);", // IID12484 - "__ sarq(Address(r16, r17, (Address::ScaleFactor)1, +0x17218e5c), 16);", // IID12485 - "__ sarq(Address(r17, r18, (Address::ScaleFactor)0, +0x185b391b), 16);", // IID12486 - "__ sarq(Address(r18, +0x21e9123d), 16);", // IID12487 - "__ sarq(Address(r19, r20, (Address::ScaleFactor)2, +0x21fac79d), 16);", // IID12488 - "__ sarq(Address(r20, -0x2d1bbb39), 16);", // IID12489 - "__ sarq(Address(r21, r22, (Address::ScaleFactor)0, -0x1186ffae), 16);", // IID12490 - "__ sarq(Address(r22, r23, (Address::ScaleFactor)0, -0x5157ee61), 16);", // IID12491 - "__ sarq(Address(r23, r24, (Address::ScaleFactor)1, -0xcf41252), 16);", // IID12492 - "__ sarq(Address(r24, r25, (Address::ScaleFactor)3, +0x6cc6317), 16);", // IID12493 - "__ sarq(Address(r25, r26, (Address::ScaleFactor)0, +0x36b35169), 16);", // IID12494 - "__ sarq(Address(r26, r27, (Address::ScaleFactor)1, -0x3e9c01d0), 16);", // IID12495 - "__ sarq(Address(r27, r28, (Address::ScaleFactor)1, -0x73f00e83), 16);", // IID12496 - "__ sarq(Address(r28, r29, (Address::ScaleFactor)2, +0x102b571b), 16);", // IID12497 - "__ sarq(Address(r29, -0x1942f416), 16);", // IID12498 - "__ sarq(Address(r30, r31, (Address::ScaleFactor)2, -0x63c6462), 16);", // IID12499 - "__ sarq(Address(r31, rcx, (Address::ScaleFactor)1, -0x7c3b7a9a), 16);", // IID12500 - "__ salq(Address(rcx, rdx, (Address::ScaleFactor)2, +0x6b13ec60), 1);", // IID12501 - "__ salq(Address(rdx, rbx, (Address::ScaleFactor)3, -0x597f65ce), 1);", // IID12502 - "__ salq(Address(rbx, r8, (Address::ScaleFactor)2, +0x2b018e46), 1);", // IID12503 - "__ salq(Address(r8, r9, (Address::ScaleFactor)0, -0x1bc45429), 1);", // IID12504 - "__ salq(Address(r9, -0x183091f7), 1);", // IID12505 - "__ salq(Address(r10, r11, (Address::ScaleFactor)2, -0x19a3d90), 1);", // IID12506 - "__ salq(Address(r11, r12, (Address::ScaleFactor)0, -0x77ae96ed), 1);", // IID12507 - "__ salq(Address(r12, r13, (Address::ScaleFactor)0, +0x7d56cb63), 1);", // IID12508 - "__ salq(Address(r13, r14, (Address::ScaleFactor)2, +0x4af54368), 1);", // IID12509 - "__ salq(Address(r14, r15, (Address::ScaleFactor)3, -0x5d4b2ad6), 1);", // IID12510 - "__ salq(Address(r15, +0x63b5da12), 1);", // IID12511 - "__ salq(Address(r16, r17, (Address::ScaleFactor)3, +0x8e75379), 1);", // IID12512 - "__ salq(Address(r17, -0x6325af2d), 1);", // IID12513 - "__ salq(Address(r18, r19, (Address::ScaleFactor)0, -0x42806bcf), 1);", // IID12514 - "__ salq(Address(r19, -0x4fa2bf32), 1);", // IID12515 - "__ salq(Address(r20, r21, (Address::ScaleFactor)2, -0x6f19d98d), 1);", // IID12516 - "__ salq(Address(r21, r22, (Address::ScaleFactor)2, +0xf816d24), 1);", // IID12517 - "__ salq(Address(r22, r23, (Address::ScaleFactor)1, +0x5ed840f3), 1);", // IID12518 - "__ salq(Address(r23, r24, (Address::ScaleFactor)3, +0x1b7620a), 1);", // IID12519 - "__ salq(Address(r24, r25, (Address::ScaleFactor)3, +0x67a56102), 1);", // IID12520 - "__ salq(Address(r25, r26, (Address::ScaleFactor)3, +0x4b9ac2f2), 1);", // IID12521 - "__ salq(Address(r26, +0x5c4c2620), 1);", // IID12522 - "__ salq(Address(r27, r28, (Address::ScaleFactor)3, -0x3afa441d), 1);", // IID12523 - "__ salq(Address(r28, r29, (Address::ScaleFactor)2, +0x1e75a9db), 1);", // IID12524 - "__ salq(Address(r29, r30, (Address::ScaleFactor)1, +0x4f591aa9), 1);", // IID12525 - "__ salq(Address(r30, -0x72278be2), 1);", // IID12526 - "__ salq(Address(r31, +0x56f3a7b8), 1);", // IID12527 - "__ salq(Address(rcx, rdx, (Address::ScaleFactor)0, -0x206fa86f), 2);", // IID12528 - "__ salq(Address(rdx, +0x249b7142), 2);", // IID12529 - "__ salq(Address(rbx, r8, (Address::ScaleFactor)1, -0x65bb063c), 2);", // IID12530 - "__ salq(Address(r8, r9, (Address::ScaleFactor)0, +0x2dc523a7), 2);", // IID12531 - "__ salq(Address(r9, r10, (Address::ScaleFactor)1, +0x51d9e126), 2);", // IID12532 - "__ salq(Address(r10, +0x72a96f27), 2);", // IID12533 - "__ salq(Address(r11, r12, (Address::ScaleFactor)0, +0x33e98974), 2);", // IID12534 - "__ salq(Address(r12, +0x58379d0d), 2);", // IID12535 - "__ salq(Address(r13, -0x46d9b83c), 2);", // IID12536 - "__ salq(Address(r14, r15, (Address::ScaleFactor)2, +0x383e6730), 2);", // IID12537 - "__ salq(Address(r15, r16, (Address::ScaleFactor)3, +0x595d2ef7), 2);", // IID12538 - "__ salq(Address(r16, r17, (Address::ScaleFactor)1, +0x2643d7b6), 2);", // IID12539 - "__ salq(Address(r17, r18, (Address::ScaleFactor)2, -0x6eb6691d), 2);", // IID12540 - "__ salq(Address(r18, r19, (Address::ScaleFactor)3, +0x4cc8ce9), 2);", // IID12541 - "__ salq(Address(r19, r20, (Address::ScaleFactor)1, -0x31eaa4ac), 2);", // IID12542 - "__ salq(Address(r20, r21, (Address::ScaleFactor)1, -0x226c48f2), 2);", // IID12543 - "__ salq(Address(r21, -0x1c21fd3b), 2);", // IID12544 - "__ salq(Address(r22, r23, (Address::ScaleFactor)3, -0x317bfac0), 2);", // IID12545 - "__ salq(Address(r23, -0x2bf7f745), 2);", // IID12546 - "__ salq(Address(r24, r25, (Address::ScaleFactor)0, -0x385a6ea5), 2);", // IID12547 - "__ salq(Address(r25, r26, (Address::ScaleFactor)2, +0x5ea15b69), 2);", // IID12548 - "__ salq(Address(r26, r27, (Address::ScaleFactor)0, +0x1bb38d25), 2);", // IID12549 - "__ salq(Address(r27, r28, (Address::ScaleFactor)3, +0x7b914159), 2);", // IID12550 - "__ salq(Address(r28, -0xef376b6), 2);", // IID12551 - "__ salq(Address(r29, +0xf6cd4dd), 2);", // IID12552 - "__ salq(Address(r30, r31, (Address::ScaleFactor)0, +0x25e649a6), 2);", // IID12553 - "__ salq(Address(r31, rcx, (Address::ScaleFactor)2, -0x3579041b), 2);", // IID12554 - "__ salq(Address(rcx, rdx, (Address::ScaleFactor)2, -0x1a28f199), 4);", // IID12555 - "__ salq(Address(rdx, rbx, (Address::ScaleFactor)0, +0x51daa40d), 4);", // IID12556 - "__ salq(Address(rbx, -0x7cfedb12), 4);", // IID12557 - "__ salq(Address(r8, r9, (Address::ScaleFactor)2, -0x7374d4cf), 4);", // IID12558 - "__ salq(Address(r9, r10, (Address::ScaleFactor)0, +0x75266f30), 4);", // IID12559 - "__ salq(Address(r10, r11, (Address::ScaleFactor)1, +0xf180369), 4);", // IID12560 - "__ salq(Address(r11, +0x372e7f1), 4);", // IID12561 - "__ salq(Address(r12, -0x151c3611), 4);", // IID12562 - "__ salq(Address(r13, r14, (Address::ScaleFactor)1, +0x684cefce), 4);", // IID12563 - "__ salq(Address(r14, r15, (Address::ScaleFactor)0, -0x5e12207c), 4);", // IID12564 - "__ salq(Address(r15, -0x4b475620), 4);", // IID12565 - "__ salq(Address(r16, r17, (Address::ScaleFactor)3, +0x44c200f2), 4);", // IID12566 - "__ salq(Address(r17, r18, (Address::ScaleFactor)0, -0x1debd00d), 4);", // IID12567 - "__ salq(Address(r18, r19, (Address::ScaleFactor)0, -0x12da48d), 4);", // IID12568 - "__ salq(Address(r19, r20, (Address::ScaleFactor)2, +0x10f3eae6), 4);", // IID12569 - "__ salq(Address(r20, r21, (Address::ScaleFactor)1, +0x4db6394d), 4);", // IID12570 - "__ salq(Address(r21, +0x2cbb7c8e), 4);", // IID12571 - "__ salq(Address(r22, r23, (Address::ScaleFactor)3, +0x1ac9348d), 4);", // IID12572 - "__ salq(Address(r23, r24, (Address::ScaleFactor)0, -0x1c07e334), 4);", // IID12573 - "__ salq(Address(r24, +0x7cdc50c3), 4);", // IID12574 - "__ salq(Address(r25, r26, (Address::ScaleFactor)0, +0x6541c978), 4);", // IID12575 - "__ salq(Address(r26, r27, (Address::ScaleFactor)2, -0x143b696c), 4);", // IID12576 - "__ salq(Address(r27, r28, (Address::ScaleFactor)1, -0x29fa5249), 4);", // IID12577 - "__ salq(Address(r28, -0x2bab85cd), 4);", // IID12578 - "__ salq(Address(r29, r30, (Address::ScaleFactor)1, +0x135475b3), 4);", // IID12579 - "__ salq(Address(r30, r31, (Address::ScaleFactor)1, +0x3307db5a), 4);", // IID12580 - "__ salq(Address(r31, rcx, (Address::ScaleFactor)3, -0x2cabfaf0), 4);", // IID12581 - "__ salq(Address(rcx, rdx, (Address::ScaleFactor)3, +0x3f69a87a), 8);", // IID12582 - "__ salq(Address(rdx, rbx, (Address::ScaleFactor)2, +0x708b4989), 8);", // IID12583 - "__ salq(Address(rbx, +0x12e9fd32), 8);", // IID12584 - "__ salq(Address(r8, r9, (Address::ScaleFactor)2, -0x66bb6921), 8);", // IID12585 - "__ salq(Address(r9, r10, (Address::ScaleFactor)3, -0x145e9d43), 8);", // IID12586 - "__ salq(Address(r10, r11, (Address::ScaleFactor)3, +0x6274d0bb), 8);", // IID12587 - "__ salq(Address(r11, r12, (Address::ScaleFactor)1, -0x1fa82483), 8);", // IID12588 - "__ salq(Address(r12, r13, (Address::ScaleFactor)0, -0x2fbf3b34), 8);", // IID12589 - "__ salq(Address(r13, r14, (Address::ScaleFactor)0, -0x31d84850), 8);", // IID12590 - "__ salq(Address(r14, +0x5c38527e), 8);", // IID12591 - "__ salq(Address(r15, +0x56f85851), 8);", // IID12592 - "__ salq(Address(r16, r17, (Address::ScaleFactor)1, -0x169b0bb4), 8);", // IID12593 - "__ salq(Address(r17, +0x5de6439), 8);", // IID12594 - "__ salq(Address(r18, r19, (Address::ScaleFactor)2, -0x16ba97af), 8);", // IID12595 - "__ salq(Address(r19, r20, (Address::ScaleFactor)1, +0x3d7162b), 8);", // IID12596 - "__ salq(Address(r20, +0x781a3f30), 8);", // IID12597 - "__ salq(Address(r21, r22, (Address::ScaleFactor)2, -0x15741d46), 8);", // IID12598 - "__ salq(Address(r22, -0x2228a7e2), 8);", // IID12599 - "__ salq(Address(r23, -0x7e7b3d0), 8);", // IID12600 - "__ salq(Address(r24, r25, (Address::ScaleFactor)3, -0x7a337b2a), 8);", // IID12601 - "__ salq(Address(r25, r26, (Address::ScaleFactor)1, +0x6b423f8e), 8);", // IID12602 - "__ salq(Address(r26, +0x3e6b23ee), 8);", // IID12603 - "__ salq(Address(r27, r28, (Address::ScaleFactor)2, -0x1b65c91f), 8);", // IID12604 - "__ salq(Address(r28, +0x74fe9f87), 8);", // IID12605 - "__ salq(Address(r29, r30, (Address::ScaleFactor)0, +0x3dc062d0), 8);", // IID12606 - "__ salq(Address(r30, r31, (Address::ScaleFactor)1, -0x6655e11b), 8);", // IID12607 - "__ salq(Address(r31, rcx, (Address::ScaleFactor)2, -0x4f1217ba), 8);", // IID12608 - "__ salq(Address(rcx, rdx, (Address::ScaleFactor)2, +0x739c0086), 16);", // IID12609 - "__ salq(Address(rdx, rbx, (Address::ScaleFactor)2, +0x348f4159), 16);", // IID12610 - "__ salq(Address(rbx, +0xecde664), 16);", // IID12611 - "__ salq(Address(r8, r9, (Address::ScaleFactor)0, +0x6d2c6616), 16);", // IID12612 - "__ salq(Address(r9, +0x6e0a1faa), 16);", // IID12613 - "__ salq(Address(r10, -0x6ae83606), 16);", // IID12614 - "__ salq(Address(r11, r12, (Address::ScaleFactor)1, -0x312c13c0), 16);", // IID12615 - "__ salq(Address(r12, r13, (Address::ScaleFactor)2, +0x5dbd2199), 16);", // IID12616 - "__ salq(Address(r13, r14, (Address::ScaleFactor)2, +0x7996d8ae), 16);", // IID12617 - "__ salq(Address(r14, r15, (Address::ScaleFactor)3, +0xd5ea7cc), 16);", // IID12618 - "__ salq(Address(r15, r16, (Address::ScaleFactor)2, -0x653d12c1), 16);", // IID12619 - "__ salq(Address(r16, r17, (Address::ScaleFactor)3, -0x1372f48f), 16);", // IID12620 - "__ salq(Address(r17, r18, (Address::ScaleFactor)1, +0x65225e90), 16);", // IID12621 - "__ salq(Address(r18, r19, (Address::ScaleFactor)0, +0x1e09007b), 16);", // IID12622 - "__ salq(Address(r19, r20, (Address::ScaleFactor)3, +0x58448e06), 16);", // IID12623 - "__ salq(Address(r20, r21, (Address::ScaleFactor)3, +0x4bc31efa), 16);", // IID12624 - "__ salq(Address(r21, r22, (Address::ScaleFactor)3, -0x4a389fb0), 16);", // IID12625 - "__ salq(Address(r22, r23, (Address::ScaleFactor)2, +0x29619c41), 16);", // IID12626 - "__ salq(Address(r23, r24, (Address::ScaleFactor)1, +0x767dad27), 16);", // IID12627 - "__ salq(Address(r24, -0x2bef9c35), 16);", // IID12628 - "__ salq(Address(r25, r26, (Address::ScaleFactor)1, +0xda0155c), 16);", // IID12629 - "__ salq(Address(r26, r27, (Address::ScaleFactor)1, -0x358eb430), 16);", // IID12630 - "__ salq(Address(r27, r28, (Address::ScaleFactor)0, +0xfd1d4e0), 16);", // IID12631 - "__ salq(Address(r28, r29, (Address::ScaleFactor)3, +0x2c40b59d), 16);", // IID12632 - "__ salq(Address(r29, +0x576f75b6), 16);", // IID12633 - "__ salq(Address(r30, r31, (Address::ScaleFactor)0, -0x67e24c79), 16);", // IID12634 - "__ salq(Address(r31, rcx, (Address::ScaleFactor)1, +0x1244f44c), 16);", // IID12635 - "__ sbbq(Address(rcx, rdx, (Address::ScaleFactor)2, +0x4dc38719), 1);", // IID12636 - "__ sbbq(Address(rdx, rbx, (Address::ScaleFactor)1, -0x6cdff1a9), 1);", // IID12637 - "__ sbbq(Address(rbx, r8, (Address::ScaleFactor)3, -0x56a809cc), 1);", // IID12638 - "__ sbbq(Address(r8, r9, (Address::ScaleFactor)3, -0x46362b66), 1);", // IID12639 - "__ sbbq(Address(r9, r10, (Address::ScaleFactor)1, -0x1749fd96), 1);", // IID12640 - "__ sbbq(Address(r10, r11, (Address::ScaleFactor)3, +0x72fc1a38), 1);", // IID12641 - "__ sbbq(Address(r11, r12, (Address::ScaleFactor)0, -0x17db64c8), 1);", // IID12642 - "__ sbbq(Address(r12, r13, (Address::ScaleFactor)1, -0x68ca2062), 1);", // IID12643 - "__ sbbq(Address(r13, r14, (Address::ScaleFactor)3, +0x136e1a52), 1);", // IID12644 - "__ sbbq(Address(r14, r15, (Address::ScaleFactor)1, -0x3310e353), 1);", // IID12645 - "__ sbbq(Address(r15, r16, (Address::ScaleFactor)2, -0x22e2094f), 1);", // IID12646 - "__ sbbq(Address(r16, r17, (Address::ScaleFactor)3, -0x43ca07a5), 1);", // IID12647 - "__ sbbq(Address(r17, r18, (Address::ScaleFactor)2, +0x33541fff), 1);", // IID12648 - "__ sbbq(Address(r18, r19, (Address::ScaleFactor)1, -0x4602754e), 1);", // IID12649 - "__ sbbq(Address(r19, r20, (Address::ScaleFactor)1, +0x399f7c79), 1);", // IID12650 - "__ sbbq(Address(r20, r21, (Address::ScaleFactor)0, -0x75821b78), 1);", // IID12651 - "__ sbbq(Address(r21, -0x5eebd67), 1);", // IID12652 - "__ sbbq(Address(r22, -0x71ae1aa3), 1);", // IID12653 - "__ sbbq(Address(r23, r24, (Address::ScaleFactor)1, -0x4a6c210f), 1);", // IID12654 - "__ sbbq(Address(r24, r25, (Address::ScaleFactor)1, -0x4e5924c3), 1);", // IID12655 - "__ sbbq(Address(r25, r26, (Address::ScaleFactor)3, -0x4176e9e), 1);", // IID12656 - "__ sbbq(Address(r26, r27, (Address::ScaleFactor)3, -0x58cb7040), 1);", // IID12657 - "__ sbbq(Address(r27, r28, (Address::ScaleFactor)0, -0x3803d926), 1);", // IID12658 - "__ sbbq(Address(r28, r29, (Address::ScaleFactor)3, -0x2ba97f14), 1);", // IID12659 - "__ sbbq(Address(r29, r30, (Address::ScaleFactor)0, -0x63fdc159), 1);", // IID12660 - "__ sbbq(Address(r30, r31, (Address::ScaleFactor)1, +0x3d8925a), 1);", // IID12661 - "__ sbbq(Address(r31, rcx, (Address::ScaleFactor)2, -0x4d40f903), 1);", // IID12662 - "__ sbbq(Address(rcx, rdx, (Address::ScaleFactor)0, +0x18f13f96), 16);", // IID12663 - "__ sbbq(Address(rdx, +0x5f0e98be), 16);", // IID12664 - "__ sbbq(Address(rbx, r8, (Address::ScaleFactor)0, +0x78edfda1), 16);", // IID12665 - "__ sbbq(Address(r8, r9, (Address::ScaleFactor)2, +0x1fdd8ed4), 16);", // IID12666 - "__ sbbq(Address(r9, r10, (Address::ScaleFactor)1, +0x51c00d40), 16);", // IID12667 - "__ sbbq(Address(r10, r11, (Address::ScaleFactor)2, -0x4ac14135), 16);", // IID12668 - "__ sbbq(Address(r11, r12, (Address::ScaleFactor)3, -0x278180a2), 16);", // IID12669 - "__ sbbq(Address(r12, r13, (Address::ScaleFactor)2, -0x19463b0b), 16);", // IID12670 - "__ sbbq(Address(r13, r14, (Address::ScaleFactor)3, +0x165bf58), 16);", // IID12671 - "__ sbbq(Address(r14, r15, (Address::ScaleFactor)3, -0x3da34eba), 16);", // IID12672 - "__ sbbq(Address(r15, -0x770d7f23), 16);", // IID12673 - "__ sbbq(Address(r16, r17, (Address::ScaleFactor)3, +0x280004d8), 16);", // IID12674 - "__ sbbq(Address(r17, r18, (Address::ScaleFactor)2, -0x3ed3ed9), 16);", // IID12675 - "__ sbbq(Address(r18, -0x9317a29), 16);", // IID12676 - "__ sbbq(Address(r19, r20, (Address::ScaleFactor)0, +0xa91954d), 16);", // IID12677 - "__ sbbq(Address(r20, r21, (Address::ScaleFactor)3, +0xc6ffb9e), 16);", // IID12678 - "__ sbbq(Address(r21, r22, (Address::ScaleFactor)0, -0x3f94dad), 16);", // IID12679 - "__ sbbq(Address(r22, r23, (Address::ScaleFactor)2, -0x60085037), 16);", // IID12680 - "__ sbbq(Address(r23, r24, (Address::ScaleFactor)2, +0x7fb549d9), 16);", // IID12681 - "__ sbbq(Address(r24, r25, (Address::ScaleFactor)0, -0x5424879c), 16);", // IID12682 - "__ sbbq(Address(r25, r26, (Address::ScaleFactor)2, +0x19d81826), 16);", // IID12683 - "__ sbbq(Address(r26, r27, (Address::ScaleFactor)3, +0x610b0a6d), 16);", // IID12684 - "__ sbbq(Address(r27, r28, (Address::ScaleFactor)1, +0x4ead8613), 16);", // IID12685 - "__ sbbq(Address(r28, r29, (Address::ScaleFactor)3, +0x4da2b6a3), 16);", // IID12686 - "__ sbbq(Address(r29, r30, (Address::ScaleFactor)2, +0x5eeb8d04), 16);", // IID12687 - "__ sbbq(Address(r30, -0x6c90ba2c), 16);", // IID12688 - "__ sbbq(Address(r31, rcx, (Address::ScaleFactor)3, -0x795f3df6), 16);", // IID12689 - "__ sbbq(Address(rcx, rdx, (Address::ScaleFactor)2, +0x251a832e), 256);", // IID12690 - "__ sbbq(Address(rdx, rbx, (Address::ScaleFactor)0, +0x1181e71d), 256);", // IID12691 - "__ sbbq(Address(rbx, r8, (Address::ScaleFactor)3, -0x7f9ce11a), 256);", // IID12692 - "__ sbbq(Address(r8, r9, (Address::ScaleFactor)0, +0x1d5189d4), 256);", // IID12693 - "__ sbbq(Address(r9, r10, (Address::ScaleFactor)3, +0x3e47daff), 256);", // IID12694 - "__ sbbq(Address(r10, r11, (Address::ScaleFactor)3, -0x4de69d85), 256);", // IID12695 - "__ sbbq(Address(r11, r12, (Address::ScaleFactor)3, -0x24118447), 256);", // IID12696 - "__ sbbq(Address(r12, r13, (Address::ScaleFactor)0, -0x6887a9e7), 256);", // IID12697 - "__ sbbq(Address(r13, r14, (Address::ScaleFactor)0, +0x1e6ab9b3), 256);", // IID12698 - "__ sbbq(Address(r14, +0x12b446ae), 256);", // IID12699 - "__ sbbq(Address(r15, r16, (Address::ScaleFactor)1, -0xe616ac4), 256);", // IID12700 - "__ sbbq(Address(r16, r17, (Address::ScaleFactor)3, +0x1f694ce9), 256);", // IID12701 - "__ sbbq(Address(r17, r18, (Address::ScaleFactor)0, +0x46528924), 256);", // IID12702 - "__ sbbq(Address(r18, r19, (Address::ScaleFactor)0, +0x5add9e3a), 256);", // IID12703 - "__ sbbq(Address(r19, +0x4df285bc), 256);", // IID12704 - "__ sbbq(Address(r20, r21, (Address::ScaleFactor)3, -0x1ace25d9), 256);", // IID12705 - "__ sbbq(Address(r21, r22, (Address::ScaleFactor)2, +0x44f55296), 256);", // IID12706 - "__ sbbq(Address(r22, r23, (Address::ScaleFactor)0, +0x37988994), 256);", // IID12707 - "__ sbbq(Address(r23, r24, (Address::ScaleFactor)2, -0x99375), 256);", // IID12708 - "__ sbbq(Address(r24, r25, (Address::ScaleFactor)2, +0x8a34989), 256);", // IID12709 - "__ sbbq(Address(r25, r26, (Address::ScaleFactor)0, +0x303b546d), 256);", // IID12710 - "__ sbbq(Address(r26, r27, (Address::ScaleFactor)2, -0x393ba88), 256);", // IID12711 - "__ sbbq(Address(r27, r28, (Address::ScaleFactor)3, +0x6b7a8db4), 256);", // IID12712 - "__ sbbq(Address(r28, +0x7c382ba0), 256);", // IID12713 - "__ sbbq(Address(r29, r30, (Address::ScaleFactor)0, -0x5fbffcf8), 256);", // IID12714 - "__ sbbq(Address(r30, r31, (Address::ScaleFactor)0, -0x79144f4d), 256);", // IID12715 - "__ sbbq(Address(r31, rcx, (Address::ScaleFactor)1, -0x14e5d80a), 256);", // IID12716 - "__ sbbq(Address(rcx, rdx, (Address::ScaleFactor)0, -0x6327c10f), 4096);", // IID12717 - "__ sbbq(Address(rdx, rbx, (Address::ScaleFactor)2, -0x55475b3d), 4096);", // IID12718 - "__ sbbq(Address(rbx, r8, (Address::ScaleFactor)2, +0x5264ef31), 4096);", // IID12719 - "__ sbbq(Address(r8, r9, (Address::ScaleFactor)3, -0xf30c9e), 4096);", // IID12720 - "__ sbbq(Address(r9, r10, (Address::ScaleFactor)0, +0x8e5f237), 4096);", // IID12721 - "__ sbbq(Address(r10, r11, (Address::ScaleFactor)2, -0x12f044d0), 4096);", // IID12722 - "__ sbbq(Address(r11, r12, (Address::ScaleFactor)2, +0x7e576cd3), 4096);", // IID12723 - "__ sbbq(Address(r12, +0x31b98d8f), 4096);", // IID12724 - "__ sbbq(Address(r13, r14, (Address::ScaleFactor)3, +0x21e43f56), 4096);", // IID12725 - "__ sbbq(Address(r14, +0x74dac303), 4096);", // IID12726 - "__ sbbq(Address(r15, r16, (Address::ScaleFactor)3, -0x7307c83f), 4096);", // IID12727 - "__ sbbq(Address(r16, r17, (Address::ScaleFactor)2, +0x29a07609), 4096);", // IID12728 - "__ sbbq(Address(r17, r18, (Address::ScaleFactor)0, +0x7de47057), 4096);", // IID12729 - "__ sbbq(Address(r18, r19, (Address::ScaleFactor)2, -0x590c1628), 4096);", // IID12730 - "__ sbbq(Address(r19, r20, (Address::ScaleFactor)2, +0x6dea619c), 4096);", // IID12731 - "__ sbbq(Address(r20, r21, (Address::ScaleFactor)0, +0x61432804), 4096);", // IID12732 - "__ sbbq(Address(r21, r22, (Address::ScaleFactor)3, +0x22e710eb), 4096);", // IID12733 - "__ sbbq(Address(r22, r23, (Address::ScaleFactor)0, +0x57d93bec), 4096);", // IID12734 - "__ sbbq(Address(r23, +0x11298f9), 4096);", // IID12735 - "__ sbbq(Address(r24, r25, (Address::ScaleFactor)0, +0x590bfecd), 4096);", // IID12736 - "__ sbbq(Address(r25, r26, (Address::ScaleFactor)0, -0x40a760b8), 4096);", // IID12737 - "__ sbbq(Address(r26, r27, (Address::ScaleFactor)3, +0x2cffdeb4), 4096);", // IID12738 - "__ sbbq(Address(r27, r28, (Address::ScaleFactor)0, +0x1ee6224a), 4096);", // IID12739 - "__ sbbq(Address(r28, r29, (Address::ScaleFactor)0, +0x3861c109), 4096);", // IID12740 - "__ sbbq(Address(r29, +0x4ae5f94d), 4096);", // IID12741 - "__ sbbq(Address(r30, +0x349de57b), 4096);", // IID12742 - "__ sbbq(Address(r31, rcx, (Address::ScaleFactor)3, -0x17bd71db), 4096);", // IID12743 - "__ sbbq(Address(rcx, rdx, (Address::ScaleFactor)0, -0x64eb0dfd), 65536);", // IID12744 - "__ sbbq(Address(rdx, -0x30af5e6), 65536);", // IID12745 - "__ sbbq(Address(rbx, r8, (Address::ScaleFactor)0, -0x559ab1b3), 65536);", // IID12746 - "__ sbbq(Address(r8, +0x208bb445), 65536);", // IID12747 - "__ sbbq(Address(r9, r10, (Address::ScaleFactor)0, +0x46271099), 65536);", // IID12748 - "__ sbbq(Address(r10, r11, (Address::ScaleFactor)2, -0x1543fde6), 65536);", // IID12749 - "__ sbbq(Address(r11, r12, (Address::ScaleFactor)3, +0x6dddea48), 65536);", // IID12750 - "__ sbbq(Address(r12, r13, (Address::ScaleFactor)2, +0x5e5840f4), 65536);", // IID12751 - "__ sbbq(Address(r13, r14, (Address::ScaleFactor)1, +0x7889090a), 65536);", // IID12752 - "__ sbbq(Address(r14, r15, (Address::ScaleFactor)2, -0x2e3be6ef), 65536);", // IID12753 - "__ sbbq(Address(r15, r16, (Address::ScaleFactor)0, +0x70760f20), 65536);", // IID12754 - "__ sbbq(Address(r16, r17, (Address::ScaleFactor)0, +0x398dab6), 65536);", // IID12755 - "__ sbbq(Address(r17, r18, (Address::ScaleFactor)1, -0x4c120910), 65536);", // IID12756 - "__ sbbq(Address(r18, +0x4dd124b9), 65536);", // IID12757 - "__ sbbq(Address(r19, r20, (Address::ScaleFactor)0, -0x1a1055a1), 65536);", // IID12758 - "__ sbbq(Address(r20, r21, (Address::ScaleFactor)2, -0x4c3d0dec), 65536);", // IID12759 - "__ sbbq(Address(r21, r22, (Address::ScaleFactor)1, +0x286f1110), 65536);", // IID12760 - "__ sbbq(Address(r22, r23, (Address::ScaleFactor)0, -0x5e7e3496), 65536);", // IID12761 - "__ sbbq(Address(r23, r24, (Address::ScaleFactor)1, +0x1c2289cf), 65536);", // IID12762 - "__ sbbq(Address(r24, r25, (Address::ScaleFactor)3, +0x267a65cf), 65536);", // IID12763 - "__ sbbq(Address(r25, r26, (Address::ScaleFactor)0, -0x6a932048), 65536);", // IID12764 - "__ sbbq(Address(r26, r27, (Address::ScaleFactor)1, -0x66dda932), 65536);", // IID12765 - "__ sbbq(Address(r27, r28, (Address::ScaleFactor)2, +0x7ca23dc7), 65536);", // IID12766 - "__ sbbq(Address(r28, r29, (Address::ScaleFactor)3, -0x30a9add6), 65536);", // IID12767 - "__ sbbq(Address(r29, +0x398e3fcc), 65536);", // IID12768 - "__ sbbq(Address(r30, r31, (Address::ScaleFactor)3, +0x66f672b3), 65536);", // IID12769 - "__ sbbq(Address(r31, -0x57b8753), 65536);", // IID12770 - "__ sbbq(Address(rcx, rdx, (Address::ScaleFactor)1, +0x71f00e8c), 1048576);", // IID12771 - "__ sbbq(Address(rdx, rbx, (Address::ScaleFactor)1, +0x2617f0ba), 1048576);", // IID12772 - "__ sbbq(Address(rbx, +0x67720a0a), 1048576);", // IID12773 - "__ sbbq(Address(r8, r9, (Address::ScaleFactor)0, +0x18dc7a4f), 1048576);", // IID12774 - "__ sbbq(Address(r9, +0x128e725c), 1048576);", // IID12775 - "__ sbbq(Address(r10, r11, (Address::ScaleFactor)0, +0x5df3d8f1), 1048576);", // IID12776 - "__ sbbq(Address(r11, r12, (Address::ScaleFactor)0, -0x255014d9), 1048576);", // IID12777 - "__ sbbq(Address(r12, -0x30c990fb), 1048576);", // IID12778 - "__ sbbq(Address(r13, r14, (Address::ScaleFactor)2, +0x2da50ae6), 1048576);", // IID12779 - "__ sbbq(Address(r14, r15, (Address::ScaleFactor)3, -0xf672e5), 1048576);", // IID12780 - "__ sbbq(Address(r15, r16, (Address::ScaleFactor)2, -0x1b6b5dd2), 1048576);", // IID12781 - "__ sbbq(Address(r16, r17, (Address::ScaleFactor)2, +0x7b28b19e), 1048576);", // IID12782 - "__ sbbq(Address(r17, r18, (Address::ScaleFactor)2, -0x4a1fb395), 1048576);", // IID12783 - "__ sbbq(Address(r18, r19, (Address::ScaleFactor)2, -0x51032a4e), 1048576);", // IID12784 - "__ sbbq(Address(r19, r20, (Address::ScaleFactor)2, -0x1eb61a81), 1048576);", // IID12785 - "__ sbbq(Address(r20, r21, (Address::ScaleFactor)0, -0x7129d83c), 1048576);", // IID12786 - "__ sbbq(Address(r21, r22, (Address::ScaleFactor)2, +0x23eb87a4), 1048576);", // IID12787 - "__ sbbq(Address(r22, +0x2dbfd1fe), 1048576);", // IID12788 - "__ sbbq(Address(r23, r24, (Address::ScaleFactor)1, +0x5b3f4e67), 1048576);", // IID12789 - "__ sbbq(Address(r24, +0xef2d1b3), 1048576);", // IID12790 - "__ sbbq(Address(r25, r26, (Address::ScaleFactor)3, +0x49cae15), 1048576);", // IID12791 - "__ sbbq(Address(r26, r27, (Address::ScaleFactor)1, +0x7fb55ead), 1048576);", // IID12792 - "__ sbbq(Address(r27, r28, (Address::ScaleFactor)1, +0x31446f18), 1048576);", // IID12793 - "__ sbbq(Address(r28, r29, (Address::ScaleFactor)0, +0x6d1944af), 1048576);", // IID12794 - "__ sbbq(Address(r29, -0x663085ab), 1048576);", // IID12795 - "__ sbbq(Address(r30, r31, (Address::ScaleFactor)1, -0x4b956920), 1048576);", // IID12796 - "__ sbbq(Address(r31, rcx, (Address::ScaleFactor)2, +0x652853d4), 1048576);", // IID12797 - "__ sbbq(Address(rcx, rdx, (Address::ScaleFactor)0, -0x59ba58), 16777216);", // IID12798 - "__ sbbq(Address(rdx, rbx, (Address::ScaleFactor)0, +0x58961b9c), 16777216);", // IID12799 - "__ sbbq(Address(rbx, r8, (Address::ScaleFactor)0, -0x6f86b9a2), 16777216);", // IID12800 - "__ sbbq(Address(r8, r9, (Address::ScaleFactor)2, -0x1b4bb829), 16777216);", // IID12801 - "__ sbbq(Address(r9, r10, (Address::ScaleFactor)1, -0x461cc065), 16777216);", // IID12802 - "__ sbbq(Address(r10, r11, (Address::ScaleFactor)0, -0x44f9ddda), 16777216);", // IID12803 - "__ sbbq(Address(r11, r12, (Address::ScaleFactor)2, -0x725863b1), 16777216);", // IID12804 - "__ sbbq(Address(r12, r13, (Address::ScaleFactor)0, -0x4a4cf9a4), 16777216);", // IID12805 - "__ sbbq(Address(r13, r14, (Address::ScaleFactor)1, +0x3180921a), 16777216);", // IID12806 - "__ sbbq(Address(r14, r15, (Address::ScaleFactor)3, +0x11f50311), 16777216);", // IID12807 - "__ sbbq(Address(r15, r16, (Address::ScaleFactor)2, -0x7743b38b), 16777216);", // IID12808 - "__ sbbq(Address(r16, +0x389f73e4), 16777216);", // IID12809 - "__ sbbq(Address(r17, r18, (Address::ScaleFactor)1, +0x669e22d4), 16777216);", // IID12810 - "__ sbbq(Address(r18, r19, (Address::ScaleFactor)3, +0x3b1ac887), 16777216);", // IID12811 - "__ sbbq(Address(r19, r20, (Address::ScaleFactor)3, -0x2ff6497a), 16777216);", // IID12812 - "__ sbbq(Address(r20, r21, (Address::ScaleFactor)3, +0x6e572dac), 16777216);", // IID12813 - "__ sbbq(Address(r21, r22, (Address::ScaleFactor)0, -0x354a1e87), 16777216);", // IID12814 - "__ sbbq(Address(r22, r23, (Address::ScaleFactor)2, -0x14ad6d66), 16777216);", // IID12815 - "__ sbbq(Address(r23, r24, (Address::ScaleFactor)0, +0xa53cb24), 16777216);", // IID12816 - "__ sbbq(Address(r24, r25, (Address::ScaleFactor)3, -0x4d577ff9), 16777216);", // IID12817 - "__ sbbq(Address(r25, r26, (Address::ScaleFactor)3, +0x2160ecc7), 16777216);", // IID12818 - "__ sbbq(Address(r26, r27, (Address::ScaleFactor)1, +0x6823f97e), 16777216);", // IID12819 - "__ sbbq(Address(r27, -0x1b1deba0), 16777216);", // IID12820 - "__ sbbq(Address(r28, r29, (Address::ScaleFactor)3, +0x4209a7d5), 16777216);", // IID12821 - "__ sbbq(Address(r29, r30, (Address::ScaleFactor)1, -0x388725a9), 16777216);", // IID12822 - "__ sbbq(Address(r30, r31, (Address::ScaleFactor)1, +0x67aa044f), 16777216);", // IID12823 - "__ sbbq(Address(r31, rcx, (Address::ScaleFactor)0, -0x77d7938e), 16777216);", // IID12824 - "__ sbbq(Address(rcx, -0x5f2ff689), 268435456);", // IID12825 - "__ sbbq(Address(rdx, rbx, (Address::ScaleFactor)1, +0x33a9b12a), 268435456);", // IID12826 - "__ sbbq(Address(rbx, r8, (Address::ScaleFactor)3, -0x420ac009), 268435456);", // IID12827 - "__ sbbq(Address(r8, r9, (Address::ScaleFactor)1, -0x60d59369), 268435456);", // IID12828 - "__ sbbq(Address(r9, -0x5ef123c), 268435456);", // IID12829 - "__ sbbq(Address(r10, r11, (Address::ScaleFactor)0, -0xd007ab9), 268435456);", // IID12830 - "__ sbbq(Address(r11, r12, (Address::ScaleFactor)2, +0x6d604ca3), 268435456);", // IID12831 - "__ sbbq(Address(r12, +0xeb5ebaa), 268435456);", // IID12832 - "__ sbbq(Address(r13, -0x5a1bdf27), 268435456);", // IID12833 - "__ sbbq(Address(r14, r15, (Address::ScaleFactor)1, -0x63c4c04b), 268435456);", // IID12834 - "__ sbbq(Address(r15, r16, (Address::ScaleFactor)2, -0x23077c4b), 268435456);", // IID12835 - "__ sbbq(Address(r16, r17, (Address::ScaleFactor)3, +0x6b774067), 268435456);", // IID12836 - "__ sbbq(Address(r17, r18, (Address::ScaleFactor)0, -0x32030e6d), 268435456);", // IID12837 - "__ sbbq(Address(r18, r19, (Address::ScaleFactor)0, +0x36d7a77d), 268435456);", // IID12838 - "__ sbbq(Address(r19, -0x7d0771fd), 268435456);", // IID12839 - "__ sbbq(Address(r20, r21, (Address::ScaleFactor)1, -0x7a9257ba), 268435456);", // IID12840 - "__ sbbq(Address(r21, r22, (Address::ScaleFactor)1, +0x78576426), 268435456);", // IID12841 - "__ sbbq(Address(r22, r23, (Address::ScaleFactor)3, +0x4d6eef40), 268435456);", // IID12842 - "__ sbbq(Address(r23, +0x40f655c8), 268435456);", // IID12843 - "__ sbbq(Address(r24, +0x7f41cb2b), 268435456);", // IID12844 - "__ sbbq(Address(r25, r26, (Address::ScaleFactor)1, +0x2539c50d), 268435456);", // IID12845 - "__ sbbq(Address(r26, r27, (Address::ScaleFactor)0, +0x1a4a70e9), 268435456);", // IID12846 - "__ sbbq(Address(r27, r28, (Address::ScaleFactor)3, -0xfc70d33), 268435456);", // IID12847 - "__ sbbq(Address(r28, r29, (Address::ScaleFactor)2, +0x4db72d5e), 268435456);", // IID12848 - "__ sbbq(Address(r29, +0x65a7ce34), 268435456);", // IID12849 - "__ sbbq(Address(r30, +0x194ebc90), 268435456);", // IID12850 - "__ sbbq(Address(r31, rcx, (Address::ScaleFactor)3, -0xcf2313d), 268435456);", // IID12851 - "__ shrq(Address(rcx, rdx, (Address::ScaleFactor)0, +0x65ec3e70), 1);", // IID12852 - "__ shrq(Address(rdx, rbx, (Address::ScaleFactor)2, +0x51d482dc), 1);", // IID12853 - "__ shrq(Address(rbx, -0x27cb2e81), 1);", // IID12854 - "__ shrq(Address(r8, +0x6801660d), 1);", // IID12855 - "__ shrq(Address(r9, r10, (Address::ScaleFactor)3, +0x47d599be), 1);", // IID12856 - "__ shrq(Address(r10, r11, (Address::ScaleFactor)3, +0x7ef24d97), 1);", // IID12857 - "__ shrq(Address(r11, r12, (Address::ScaleFactor)0, +0x3eddb768), 1);", // IID12858 - "__ shrq(Address(r12, r13, (Address::ScaleFactor)0, -0x241f4418), 1);", // IID12859 - "__ shrq(Address(r13, +0x46bdd24), 1);", // IID12860 - "__ shrq(Address(r14, r15, (Address::ScaleFactor)2, +0x5ee6a909), 1);", // IID12861 - "__ shrq(Address(r15, r16, (Address::ScaleFactor)0, +0x5f0fd600), 1);", // IID12862 - "__ shrq(Address(r16, +0xdd36f95), 1);", // IID12863 - "__ shrq(Address(r17, r18, (Address::ScaleFactor)1, +0x615b07de), 1);", // IID12864 - "__ shrq(Address(r18, r19, (Address::ScaleFactor)3, +0x2993deb3), 1);", // IID12865 - "__ shrq(Address(r19, r20, (Address::ScaleFactor)2, -0x6290d7b5), 1);", // IID12866 - "__ shrq(Address(r20, r21, (Address::ScaleFactor)2, +0x1eabcc8d), 1);", // IID12867 - "__ shrq(Address(r21, r22, (Address::ScaleFactor)3, -0x4043e234), 1);", // IID12868 - "__ shrq(Address(r22, r23, (Address::ScaleFactor)0, -0x3bb5c556), 1);", // IID12869 - "__ shrq(Address(r23, r24, (Address::ScaleFactor)2, +0x7f907d04), 1);", // IID12870 - "__ shrq(Address(r24, r25, (Address::ScaleFactor)1, +0x6c716522), 1);", // IID12871 - "__ shrq(Address(r25, r26, (Address::ScaleFactor)2, +0x59a4c00e), 1);", // IID12872 - "__ shrq(Address(r26, r27, (Address::ScaleFactor)3, -0x50e2dc0f), 1);", // IID12873 - "__ shrq(Address(r27, -0x23980a87), 1);", // IID12874 - "__ shrq(Address(r28, r29, (Address::ScaleFactor)2, -0x7c93d45a), 1);", // IID12875 - "__ shrq(Address(r29, -0x45c4b0ed), 1);", // IID12876 - "__ shrq(Address(r30, r31, (Address::ScaleFactor)1, +0x446a4cea), 1);", // IID12877 - "__ shrq(Address(r31, rcx, (Address::ScaleFactor)1, -0xb0a8402), 1);", // IID12878 - "__ shrq(Address(rcx, rdx, (Address::ScaleFactor)3, +0x750c4364), 2);", // IID12879 - "__ shrq(Address(rdx, rbx, (Address::ScaleFactor)2, -0x6ab50dfe), 2);", // IID12880 - "__ shrq(Address(rbx, r8, (Address::ScaleFactor)2, -0x15806bc1), 2);", // IID12881 - "__ shrq(Address(r8, r9, (Address::ScaleFactor)3, +0x2c670f3c), 2);", // IID12882 - "__ shrq(Address(r9, r10, (Address::ScaleFactor)1, +0x5cffc9de), 2);", // IID12883 - "__ shrq(Address(r10, -0x1dfa28c4), 2);", // IID12884 - "__ shrq(Address(r11, r12, (Address::ScaleFactor)3, +0x754124d), 2);", // IID12885 - "__ shrq(Address(r12, +0x20865b22), 2);", // IID12886 - "__ shrq(Address(r13, r14, (Address::ScaleFactor)3, -0x448ef0b5), 2);", // IID12887 - "__ shrq(Address(r14, r15, (Address::ScaleFactor)3, -0x1dc1e707), 2);", // IID12888 - "__ shrq(Address(r15, r16, (Address::ScaleFactor)3, +0x21b7a733), 2);", // IID12889 - "__ shrq(Address(r16, r17, (Address::ScaleFactor)1, +0x38f3e87f), 2);", // IID12890 - "__ shrq(Address(r17, -0x34391fc7), 2);", // IID12891 - "__ shrq(Address(r18, r19, (Address::ScaleFactor)0, -0x24e7297a), 2);", // IID12892 - "__ shrq(Address(r19, r20, (Address::ScaleFactor)0, +0x7cabd2e4), 2);", // IID12893 - "__ shrq(Address(r20, r21, (Address::ScaleFactor)3, +0x5237c82d), 2);", // IID12894 - "__ shrq(Address(r21, -0x4a212da4), 2);", // IID12895 - "__ shrq(Address(r22, r23, (Address::ScaleFactor)3, -0x11f17202), 2);", // IID12896 - "__ shrq(Address(r23, r24, (Address::ScaleFactor)3, +0x32561f31), 2);", // IID12897 - "__ shrq(Address(r24, r25, (Address::ScaleFactor)1, -0xa014f86), 2);", // IID12898 - "__ shrq(Address(r25, r26, (Address::ScaleFactor)2, +0x7a0496d0), 2);", // IID12899 - "__ shrq(Address(r26, -0x3fce4bb3), 2);", // IID12900 - "__ shrq(Address(r27, r28, (Address::ScaleFactor)1, -0x19a4684b), 2);", // IID12901 - "__ shrq(Address(r28, -0x59692a4), 2);", // IID12902 - "__ shrq(Address(r29, r30, (Address::ScaleFactor)1, -0x2c1375d3), 2);", // IID12903 - "__ shrq(Address(r30, -0x11459833), 2);", // IID12904 - "__ shrq(Address(r31, rcx, (Address::ScaleFactor)2, +0x1d77799), 2);", // IID12905 - "__ shrq(Address(rcx, +0xf48b7a5), 4);", // IID12906 - "__ shrq(Address(rdx, rbx, (Address::ScaleFactor)1, +0x65736bcf), 4);", // IID12907 - "__ shrq(Address(rbx, r8, (Address::ScaleFactor)2, +0x5ee2c93d), 4);", // IID12908 - "__ shrq(Address(r8, r9, (Address::ScaleFactor)3, -0x6914465b), 4);", // IID12909 - "__ shrq(Address(r9, r10, (Address::ScaleFactor)3, +0x3eb38e27), 4);", // IID12910 - "__ shrq(Address(r10, r11, (Address::ScaleFactor)1, -0x73e13327), 4);", // IID12911 - "__ shrq(Address(r11, r12, (Address::ScaleFactor)0, -0x6dcd52f3), 4);", // IID12912 - "__ shrq(Address(r12, +0x14df3d31), 4);", // IID12913 - "__ shrq(Address(r13, r14, (Address::ScaleFactor)3, -0xac8e977), 4);", // IID12914 - "__ shrq(Address(r14, r15, (Address::ScaleFactor)1, +0x4c903886), 4);", // IID12915 - "__ shrq(Address(r15, r16, (Address::ScaleFactor)3, -0x4c761483), 4);", // IID12916 - "__ shrq(Address(r16, r17, (Address::ScaleFactor)1, +0x69de175f), 4);", // IID12917 - "__ shrq(Address(r17, -0x76a872f1), 4);", // IID12918 - "__ shrq(Address(r18, r19, (Address::ScaleFactor)3, +0x72298917), 4);", // IID12919 - "__ shrq(Address(r19, -0x4d39ac49), 4);", // IID12920 - "__ shrq(Address(r20, r21, (Address::ScaleFactor)1, -0x2867e817), 4);", // IID12921 - "__ shrq(Address(r21, r22, (Address::ScaleFactor)1, -0x609a069d), 4);", // IID12922 - "__ shrq(Address(r22, -0x2d223ec2), 4);", // IID12923 - "__ shrq(Address(r23, r24, (Address::ScaleFactor)2, -0x3b2a5d08), 4);", // IID12924 - "__ shrq(Address(r24, r25, (Address::ScaleFactor)1, -0x555f41a8), 4);", // IID12925 - "__ shrq(Address(r25, r26, (Address::ScaleFactor)0, +0x28dfe773), 4);", // IID12926 - "__ shrq(Address(r26, +0x688d44a6), 4);", // IID12927 - "__ shrq(Address(r27, r28, (Address::ScaleFactor)3, -0x240b3ffb), 4);", // IID12928 - "__ shrq(Address(r28, -0x794d3066), 4);", // IID12929 - "__ shrq(Address(r29, r30, (Address::ScaleFactor)2, -0x5d86af71), 4);", // IID12930 - "__ shrq(Address(r30, +0x599ad28d), 4);", // IID12931 - "__ shrq(Address(r31, rcx, (Address::ScaleFactor)1, +0x2a4d36f0), 4);", // IID12932 - "__ shrq(Address(rcx, rdx, (Address::ScaleFactor)3, +0x4a08b3f0), 8);", // IID12933 - "__ shrq(Address(rdx, rbx, (Address::ScaleFactor)1, +0x4baa4615), 8);", // IID12934 - "__ shrq(Address(rbx, +0xd5c2e66), 8);", // IID12935 - "__ shrq(Address(r8, r9, (Address::ScaleFactor)3, +0x46ddd974), 8);", // IID12936 - "__ shrq(Address(r9, +0x23b9fc7b), 8);", // IID12937 - "__ shrq(Address(r10, r11, (Address::ScaleFactor)1, +0x7659e58d), 8);", // IID12938 - "__ shrq(Address(r11, r12, (Address::ScaleFactor)3, +0x594c1dae), 8);", // IID12939 - "__ shrq(Address(r12, +0x3f175ca2), 8);", // IID12940 - "__ shrq(Address(r13, r14, (Address::ScaleFactor)2, +0x3746b968), 8);", // IID12941 - "__ shrq(Address(r14, r15, (Address::ScaleFactor)2, -0x33827f66), 8);", // IID12942 - "__ shrq(Address(r15, +0x4c485276), 8);", // IID12943 - "__ shrq(Address(r16, r17, (Address::ScaleFactor)1, -0x422294f8), 8);", // IID12944 - "__ shrq(Address(r17, r18, (Address::ScaleFactor)2, -0x26531297), 8);", // IID12945 - "__ shrq(Address(r18, r19, (Address::ScaleFactor)1, +0x1b77d43d), 8);", // IID12946 - "__ shrq(Address(r19, -0x27b5d99a), 8);", // IID12947 - "__ shrq(Address(r20, r21, (Address::ScaleFactor)0, +0x1b347205), 8);", // IID12948 - "__ shrq(Address(r21, r22, (Address::ScaleFactor)0, +0x5f7f100), 8);", // IID12949 - "__ shrq(Address(r22, r23, (Address::ScaleFactor)3, +0x219dfaa0), 8);", // IID12950 - "__ shrq(Address(r23, r24, (Address::ScaleFactor)1, -0x41404906), 8);", // IID12951 - "__ shrq(Address(r24, r25, (Address::ScaleFactor)0, +0x2443670e), 8);", // IID12952 - "__ shrq(Address(r25, r26, (Address::ScaleFactor)1, +0x5e023d4e), 8);", // IID12953 - "__ shrq(Address(r26, -0x6dbc2135), 8);", // IID12954 - "__ shrq(Address(r27, +0x73e59f4b), 8);", // IID12955 - "__ shrq(Address(r28, -0xcdfef12), 8);", // IID12956 - "__ shrq(Address(r29, r30, (Address::ScaleFactor)0, +0x1636e96a), 8);", // IID12957 - "__ shrq(Address(r30, +0x34a5e736), 8);", // IID12958 - "__ shrq(Address(r31, rcx, (Address::ScaleFactor)0, +0x3f200335), 8);", // IID12959 - "__ shrq(Address(rcx, rdx, (Address::ScaleFactor)0, +0x73db2b4c), 16);", // IID12960 - "__ shrq(Address(rdx, rbx, (Address::ScaleFactor)1, -0x4e731d36), 16);", // IID12961 - "__ shrq(Address(rbx, -0x118dc3ac), 16);", // IID12962 - "__ shrq(Address(r8, +0x575dd47a), 16);", // IID12963 - "__ shrq(Address(r9, r10, (Address::ScaleFactor)2, -0x4ded2001), 16);", // IID12964 - "__ shrq(Address(r10, r11, (Address::ScaleFactor)0, -0x28316d95), 16);", // IID12965 - "__ shrq(Address(r11, r12, (Address::ScaleFactor)3, -0x2daacc0d), 16);", // IID12966 - "__ shrq(Address(r12, r13, (Address::ScaleFactor)3, +0x163df53), 16);", // IID12967 - "__ shrq(Address(r13, r14, (Address::ScaleFactor)1, +0x16a63ff6), 16);", // IID12968 - "__ shrq(Address(r14, r15, (Address::ScaleFactor)2, +0x524d0e72), 16);", // IID12969 - "__ shrq(Address(r15, +0x6cb390a2), 16);", // IID12970 - "__ shrq(Address(r16, r17, (Address::ScaleFactor)2, -0x64ee92dc), 16);", // IID12971 - "__ shrq(Address(r17, r18, (Address::ScaleFactor)3, -0x17b3313c), 16);", // IID12972 - "__ shrq(Address(r18, r19, (Address::ScaleFactor)0, +0x34072f0a), 16);", // IID12973 - "__ shrq(Address(r19, r20, (Address::ScaleFactor)0, +0xc496435), 16);", // IID12974 - "__ shrq(Address(r20, r21, (Address::ScaleFactor)0, +0x19e0cde4), 16);", // IID12975 - "__ shrq(Address(r21, r22, (Address::ScaleFactor)0, +0x20e565ff), 16);", // IID12976 - "__ shrq(Address(r22, r23, (Address::ScaleFactor)3, +0x6cc68115), 16);", // IID12977 - "__ shrq(Address(r23, r24, (Address::ScaleFactor)0, -0x67f7164), 16);", // IID12978 - "__ shrq(Address(r24, r25, (Address::ScaleFactor)1, -0x264545dd), 16);", // IID12979 - "__ shrq(Address(r25, r26, (Address::ScaleFactor)1, -0x2ca4bac3), 16);", // IID12980 - "__ shrq(Address(r26, r27, (Address::ScaleFactor)0, +0x4800ba0f), 16);", // IID12981 - "__ shrq(Address(r27, r28, (Address::ScaleFactor)1, -0x721fb360), 16);", // IID12982 - "__ shrq(Address(r28, r29, (Address::ScaleFactor)0, -0x2432fe02), 16);", // IID12983 - "__ shrq(Address(r29, r30, (Address::ScaleFactor)0, -0x37959aae), 16);", // IID12984 - "__ shrq(Address(r30, r31, (Address::ScaleFactor)0, +0x74b1622b), 16);", // IID12985 - "__ shrq(Address(r31, rcx, (Address::ScaleFactor)0, -0x783aabc8), 16);", // IID12986 - "__ subq(Address(rcx, rdx, (Address::ScaleFactor)1, -0x1d8437b8), 1);", // IID12987 - "__ subq(Address(rdx, rbx, (Address::ScaleFactor)2, -0x551100e1), 1);", // IID12988 - "__ subq(Address(rbx, r8, (Address::ScaleFactor)2, +0x6d297c62), 1);", // IID12989 - "__ subq(Address(r8, r9, (Address::ScaleFactor)1, +0x6e92e521), 1);", // IID12990 - "__ subq(Address(r9, r10, (Address::ScaleFactor)3, -0x4d7ed70a), 1);", // IID12991 - "__ subq(Address(r10, +0x6b195363), 1);", // IID12992 - "__ subq(Address(r11, r12, (Address::ScaleFactor)0, +0x2c0e2e91), 1);", // IID12993 - "__ subq(Address(r12, -0x409aee57), 1);", // IID12994 - "__ subq(Address(r13, r14, (Address::ScaleFactor)3, -0x419fc336), 1);", // IID12995 - "__ subq(Address(r14, -0x3ee64401), 1);", // IID12996 - "__ subq(Address(r15, +0x44c9581e), 1);", // IID12997 - "__ subq(Address(r16, r17, (Address::ScaleFactor)2, -0x2c3c8b2b), 1);", // IID12998 - "__ subq(Address(r17, r18, (Address::ScaleFactor)1, -0xff6dff9), 1);", // IID12999 - "__ subq(Address(r18, r19, (Address::ScaleFactor)2, -0x5674b360), 1);", // IID13000 - "__ subq(Address(r19, +0x4a6423e4), 1);", // IID13001 - "__ subq(Address(r20, +0x141d1dfe), 1);", // IID13002 - "__ subq(Address(r21, r22, (Address::ScaleFactor)1, +0x6195e19e), 1);", // IID13003 - "__ subq(Address(r22, +0x526a1581), 1);", // IID13004 - "__ subq(Address(r23, +0x71117587), 1);", // IID13005 - "__ subq(Address(r24, r25, (Address::ScaleFactor)3, +0xa8a7b1a), 1);", // IID13006 - "__ subq(Address(r25, -0x5e90d934), 1);", // IID13007 - "__ subq(Address(r26, r27, (Address::ScaleFactor)1, +0x304ea611), 1);", // IID13008 - "__ subq(Address(r27, +0x4997c699), 1);", // IID13009 - "__ subq(Address(r28, r29, (Address::ScaleFactor)3, +0x34fbbc28), 1);", // IID13010 - "__ subq(Address(r29, r30, (Address::ScaleFactor)1, -0x6c9c84b), 1);", // IID13011 - "__ subq(Address(r30, -0x641e28cb), 1);", // IID13012 - "__ subq(Address(r31, rcx, (Address::ScaleFactor)3, -0x4b229f4d), 1);", // IID13013 - "__ subq(Address(rcx, rdx, (Address::ScaleFactor)0, -0x7ae3c05f), 16);", // IID13014 - "__ subq(Address(rdx, rbx, (Address::ScaleFactor)0, +0x6c753d63), 16);", // IID13015 - "__ subq(Address(rbx, r8, (Address::ScaleFactor)3, +0x61d764ca), 16);", // IID13016 - "__ subq(Address(r8, r9, (Address::ScaleFactor)1, +0x40172688), 16);", // IID13017 - "__ subq(Address(r9, r10, (Address::ScaleFactor)3, +0x1959bc24), 16);", // IID13018 - "__ subq(Address(r10, r11, (Address::ScaleFactor)2, +0x7c4e023e), 16);", // IID13019 - "__ subq(Address(r11, r12, (Address::ScaleFactor)3, +0x6ab50d7d), 16);", // IID13020 - "__ subq(Address(r12, r13, (Address::ScaleFactor)2, +0x2f70adcf), 16);", // IID13021 - "__ subq(Address(r13, r14, (Address::ScaleFactor)2, +0x1fa4a0), 16);", // IID13022 - "__ subq(Address(r14, r15, (Address::ScaleFactor)0, +0x56ea5363), 16);", // IID13023 - "__ subq(Address(r15, r16, (Address::ScaleFactor)2, +0x3b843a9b), 16);", // IID13024 - "__ subq(Address(r16, r17, (Address::ScaleFactor)3, -0x7ff90049), 16);", // IID13025 - "__ subq(Address(r17, r18, (Address::ScaleFactor)0, +0x19fb400f), 16);", // IID13026 - "__ subq(Address(r18, r19, (Address::ScaleFactor)3, -0x4e9ba478), 16);", // IID13027 - "__ subq(Address(r19, r20, (Address::ScaleFactor)0, +0x5278e9eb), 16);", // IID13028 - "__ subq(Address(r20, r21, (Address::ScaleFactor)3, +0x75d5f004), 16);", // IID13029 - "__ subq(Address(r21, r22, (Address::ScaleFactor)0, -0x48d31e80), 16);", // IID13030 - "__ subq(Address(r22, r23, (Address::ScaleFactor)2, -0x1433cd93), 16);", // IID13031 - "__ subq(Address(r23, r24, (Address::ScaleFactor)2, +0x599b7766), 16);", // IID13032 - "__ subq(Address(r24, +0x78cb2760), 16);", // IID13033 - "__ subq(Address(r25, r26, (Address::ScaleFactor)3, -0x7a8cd35e), 16);", // IID13034 - "__ subq(Address(r26, -0x489fee5f), 16);", // IID13035 - "__ subq(Address(r27, r28, (Address::ScaleFactor)2, -0x7894de40), 16);", // IID13036 - "__ subq(Address(r28, r29, (Address::ScaleFactor)0, -0x713d4355), 16);", // IID13037 - "__ subq(Address(r29, r30, (Address::ScaleFactor)1, -0x4eca349f), 16);", // IID13038 - "__ subq(Address(r30, -0x597237c4), 16);", // IID13039 - "__ subq(Address(r31, +0x45e09278), 16);", // IID13040 - "__ subq(Address(rcx, rdx, (Address::ScaleFactor)1, +0x52d83391), 256);", // IID13041 - "__ subq(Address(rdx, rbx, (Address::ScaleFactor)3, +0x72e5f2c8), 256);", // IID13042 - "__ subq(Address(rbx, r8, (Address::ScaleFactor)2, +0x11973222), 256);", // IID13043 - "__ subq(Address(r8, -0x18c11395), 256);", // IID13044 - "__ subq(Address(r9, r10, (Address::ScaleFactor)1, +0x38ab811a), 256);", // IID13045 - "__ subq(Address(r10, r11, (Address::ScaleFactor)3, -0x348178c8), 256);", // IID13046 - "__ subq(Address(r11, r12, (Address::ScaleFactor)2, -0x275de88b), 256);", // IID13047 - "__ subq(Address(r12, -0x60bfb547), 256);", // IID13048 - "__ subq(Address(r13, r14, (Address::ScaleFactor)1, -0x77b70d45), 256);", // IID13049 - "__ subq(Address(r14, r15, (Address::ScaleFactor)1, -0x3a206adc), 256);", // IID13050 - "__ subq(Address(r15, r16, (Address::ScaleFactor)3, -0x4062c506), 256);", // IID13051 - "__ subq(Address(r16, r17, (Address::ScaleFactor)0, +0x147ccd86), 256);", // IID13052 - "__ subq(Address(r17, r18, (Address::ScaleFactor)2, +0x7bb80417), 256);", // IID13053 - "__ subq(Address(r18, +0x678b4b22), 256);", // IID13054 - "__ subq(Address(r19, -0x2649544), 256);", // IID13055 - "__ subq(Address(r20, r21, (Address::ScaleFactor)3, -0x327516fc), 256);", // IID13056 - "__ subq(Address(r21, r22, (Address::ScaleFactor)3, -0x15b82c96), 256);", // IID13057 - "__ subq(Address(r22, r23, (Address::ScaleFactor)3, -0x70129f4f), 256);", // IID13058 - "__ subq(Address(r23, r24, (Address::ScaleFactor)3, -0xd292599), 256);", // IID13059 - "__ subq(Address(r24, +0x4476cced), 256);", // IID13060 - "__ subq(Address(r25, r26, (Address::ScaleFactor)3, -0x36490fc4), 256);", // IID13061 - "__ subq(Address(r26, r27, (Address::ScaleFactor)1, -0x3d7c09fb), 256);", // IID13062 - "__ subq(Address(r27, r28, (Address::ScaleFactor)3, -0x4020857d), 256);", // IID13063 - "__ subq(Address(r28, r29, (Address::ScaleFactor)2, +0x6ebc1f0), 256);", // IID13064 - "__ subq(Address(r29, -0x71132e96), 256);", // IID13065 - "__ subq(Address(r30, r31, (Address::ScaleFactor)2, -0x3204e47b), 256);", // IID13066 - "__ subq(Address(r31, rcx, (Address::ScaleFactor)0, -0x1737bc46), 256);", // IID13067 - "__ subq(Address(rcx, rdx, (Address::ScaleFactor)0, +0x2cb05bec), 4096);", // IID13068 - "__ subq(Address(rdx, -0x4d43b1), 4096);", // IID13069 - "__ subq(Address(rbx, r8, (Address::ScaleFactor)0, -0x37d2afbb), 4096);", // IID13070 - "__ subq(Address(r8, r9, (Address::ScaleFactor)1, -0x1c36718c), 4096);", // IID13071 - "__ subq(Address(r9, +0x48b3e486), 4096);", // IID13072 - "__ subq(Address(r10, r11, (Address::ScaleFactor)2, -0x926f9ee), 4096);", // IID13073 - "__ subq(Address(r11, r12, (Address::ScaleFactor)2, -0x2f96fd3d), 4096);", // IID13074 - "__ subq(Address(r12, r13, (Address::ScaleFactor)2, -0x3fff72a8), 4096);", // IID13075 - "__ subq(Address(r13, r14, (Address::ScaleFactor)0, +0x77351891), 4096);", // IID13076 - "__ subq(Address(r14, r15, (Address::ScaleFactor)3, +0x1276fe9), 4096);", // IID13077 - "__ subq(Address(r15, r16, (Address::ScaleFactor)3, -0x483e14b5), 4096);", // IID13078 - "__ subq(Address(r16, +0x574b3c4d), 4096);", // IID13079 - "__ subq(Address(r17, r18, (Address::ScaleFactor)1, -0x13995713), 4096);", // IID13080 - "__ subq(Address(r18, r19, (Address::ScaleFactor)3, -0x29f7b0cd), 4096);", // IID13081 - "__ subq(Address(r19, r20, (Address::ScaleFactor)0, -0x3bd4451f), 4096);", // IID13082 - "__ subq(Address(r20, -0x48a53d4d), 4096);", // IID13083 - "__ subq(Address(r21, +0x7024a8a2), 4096);", // IID13084 - "__ subq(Address(r22, +0x5463e145), 4096);", // IID13085 - "__ subq(Address(r23, r24, (Address::ScaleFactor)3, +0x6062c46d), 4096);", // IID13086 - "__ subq(Address(r24, -0x159d7844), 4096);", // IID13087 - "__ subq(Address(r25, r26, (Address::ScaleFactor)2, +0x4533d9b6), 4096);", // IID13088 - "__ subq(Address(r26, r27, (Address::ScaleFactor)2, +0x32b40f74), 4096);", // IID13089 - "__ subq(Address(r27, r28, (Address::ScaleFactor)3, +0x1b22a759), 4096);", // IID13090 - "__ subq(Address(r28, r29, (Address::ScaleFactor)3, -0x407bc56d), 4096);", // IID13091 - "__ subq(Address(r29, r30, (Address::ScaleFactor)0, +0x18f2326b), 4096);", // IID13092 - "__ subq(Address(r30, r31, (Address::ScaleFactor)3, -0x5faa90f5), 4096);", // IID13093 - "__ subq(Address(r31, +0x2cac4915), 4096);", // IID13094 - "__ subq(Address(rcx, rdx, (Address::ScaleFactor)0, -0xcf2ed0a), 65536);", // IID13095 - "__ subq(Address(rdx, rbx, (Address::ScaleFactor)1, +0x51893701), 65536);", // IID13096 - "__ subq(Address(rbx, -0xeef309d), 65536);", // IID13097 - "__ subq(Address(r8, r9, (Address::ScaleFactor)1, +0x11efd079), 65536);", // IID13098 - "__ subq(Address(r9, r10, (Address::ScaleFactor)0, -0x2ae7a2f9), 65536);", // IID13099 - "__ subq(Address(r10, r11, (Address::ScaleFactor)0, -0xefa414b), 65536);", // IID13100 - "__ subq(Address(r11, r12, (Address::ScaleFactor)3, +0x414e3d83), 65536);", // IID13101 - "__ subq(Address(r12, +0x41aa0592), 65536);", // IID13102 - "__ subq(Address(r13, r14, (Address::ScaleFactor)1, +0x4f8e7c3c), 65536);", // IID13103 - "__ subq(Address(r14, -0x4818de71), 65536);", // IID13104 - "__ subq(Address(r15, r16, (Address::ScaleFactor)3, -0x75bfe11c), 65536);", // IID13105 - "__ subq(Address(r16, r17, (Address::ScaleFactor)0, +0x6aa673d8), 65536);", // IID13106 - "__ subq(Address(r17, r18, (Address::ScaleFactor)1, -0x34afaaf1), 65536);", // IID13107 - "__ subq(Address(r18, r19, (Address::ScaleFactor)1, -0x48d710ff), 65536);", // IID13108 - "__ subq(Address(r19, r20, (Address::ScaleFactor)3, -0x2816245f), 65536);", // IID13109 - "__ subq(Address(r20, +0x700b7f5b), 65536);", // IID13110 - "__ subq(Address(r21, r22, (Address::ScaleFactor)2, -0x140fd56b), 65536);", // IID13111 - "__ subq(Address(r22, r23, (Address::ScaleFactor)0, +0x305145d4), 65536);", // IID13112 - "__ subq(Address(r23, r24, (Address::ScaleFactor)1, -0x71e066e3), 65536);", // IID13113 - "__ subq(Address(r24, r25, (Address::ScaleFactor)2, +0x2b023e67), 65536);", // IID13114 - "__ subq(Address(r25, r26, (Address::ScaleFactor)2, -0x1b165fcd), 65536);", // IID13115 - "__ subq(Address(r26, r27, (Address::ScaleFactor)2, -0x4c895b1d), 65536);", // IID13116 - "__ subq(Address(r27, r28, (Address::ScaleFactor)1, +0x2ed1d90c), 65536);", // IID13117 - "__ subq(Address(r28, r29, (Address::ScaleFactor)1, +0x5e0e27ce), 65536);", // IID13118 - "__ subq(Address(r29, r30, (Address::ScaleFactor)3, +0x1257dd76), 65536);", // IID13119 - "__ subq(Address(r30, r31, (Address::ScaleFactor)1, -0x1d103c34), 65536);", // IID13120 - "__ subq(Address(r31, rcx, (Address::ScaleFactor)3, +0x6aeea381), 65536);", // IID13121 - "__ subq(Address(rcx, rdx, (Address::ScaleFactor)3, +0x4b9cbe46), 1048576);", // IID13122 - "__ subq(Address(rdx, rbx, (Address::ScaleFactor)2, -0x5d50acf7), 1048576);", // IID13123 - "__ subq(Address(rbx, r8, (Address::ScaleFactor)2, -0x4aa5eb5b), 1048576);", // IID13124 - "__ subq(Address(r8, r9, (Address::ScaleFactor)3, +0x71c96612), 1048576);", // IID13125 - "__ subq(Address(r9, r10, (Address::ScaleFactor)3, +0x2bb1ca8d), 1048576);", // IID13126 - "__ subq(Address(r10, r11, (Address::ScaleFactor)2, -0xadd3625), 1048576);", // IID13127 - "__ subq(Address(r11, r12, (Address::ScaleFactor)2, -0x2ae2becd), 1048576);", // IID13128 - "__ subq(Address(r12, r13, (Address::ScaleFactor)1, +0x3a86d7eb), 1048576);", // IID13129 - "__ subq(Address(r13, r14, (Address::ScaleFactor)1, +0x15dd7df1), 1048576);", // IID13130 - "__ subq(Address(r14, r15, (Address::ScaleFactor)2, -0x29ac3889), 1048576);", // IID13131 - "__ subq(Address(r15, +0x36a80f1), 1048576);", // IID13132 - "__ subq(Address(r16, r17, (Address::ScaleFactor)0, -0x2d271d), 1048576);", // IID13133 - "__ subq(Address(r17, r18, (Address::ScaleFactor)2, +0x2bd896a7), 1048576);", // IID13134 - "__ subq(Address(r18, r19, (Address::ScaleFactor)2, -0x34140665), 1048576);", // IID13135 - "__ subq(Address(r19, r20, (Address::ScaleFactor)1, -0x5d7f86c5), 1048576);", // IID13136 - "__ subq(Address(r20, r21, (Address::ScaleFactor)1, -0x226c2ef), 1048576);", // IID13137 - "__ subq(Address(r21, r22, (Address::ScaleFactor)3, +0x7f91afb7), 1048576);", // IID13138 - "__ subq(Address(r22, r23, (Address::ScaleFactor)1, +0x7706fb43), 1048576);", // IID13139 - "__ subq(Address(r23, -0x4422355c), 1048576);", // IID13140 - "__ subq(Address(r24, r25, (Address::ScaleFactor)1, -0x4b7b2681), 1048576);", // IID13141 - "__ subq(Address(r25, r26, (Address::ScaleFactor)1, +0xf853b6), 1048576);", // IID13142 - "__ subq(Address(r26, r27, (Address::ScaleFactor)0, -0x6772eee9), 1048576);", // IID13143 - "__ subq(Address(r27, r28, (Address::ScaleFactor)2, +0x42554556), 1048576);", // IID13144 - "__ subq(Address(r28, r29, (Address::ScaleFactor)3, -0x5d0ad6e3), 1048576);", // IID13145 - "__ subq(Address(r29, r30, (Address::ScaleFactor)0, +0x4cb3f7e2), 1048576);", // IID13146 - "__ subq(Address(r30, +0x13980cdb), 1048576);", // IID13147 - "__ subq(Address(r31, rcx, (Address::ScaleFactor)0, -0x3ebad48e), 1048576);", // IID13148 - "__ subq(Address(rcx, rdx, (Address::ScaleFactor)1, +0x745e2f12), 16777216);", // IID13149 - "__ subq(Address(rdx, rbx, (Address::ScaleFactor)2, +0x74eca3a0), 16777216);", // IID13150 - "__ subq(Address(rbx, +0x4648a987), 16777216);", // IID13151 - "__ subq(Address(r8, r9, (Address::ScaleFactor)2, -0x4736577f), 16777216);", // IID13152 - "__ subq(Address(r9, r10, (Address::ScaleFactor)3, +0x40b1fc08), 16777216);", // IID13153 - "__ subq(Address(r10, r11, (Address::ScaleFactor)0, +0x15637ea9), 16777216);", // IID13154 - "__ subq(Address(r11, r12, (Address::ScaleFactor)3, +0x5e0eb263), 16777216);", // IID13155 - "__ subq(Address(r12, r13, (Address::ScaleFactor)1, -0x7da39117), 16777216);", // IID13156 - "__ subq(Address(r13, r14, (Address::ScaleFactor)1, -0x3be82b46), 16777216);", // IID13157 - "__ subq(Address(r14, r15, (Address::ScaleFactor)3, +0x3c0098e9), 16777216);", // IID13158 - "__ subq(Address(r15, +0x4f7d71f8), 16777216);", // IID13159 - "__ subq(Address(r16, -0x4c6a2433), 16777216);", // IID13160 - "__ subq(Address(r17, r18, (Address::ScaleFactor)0, -0x2df2f8c2), 16777216);", // IID13161 - "__ subq(Address(r18, r19, (Address::ScaleFactor)0, -0x57c49d63), 16777216);", // IID13162 - "__ subq(Address(r19, r20, (Address::ScaleFactor)3, -0x82e5a7b), 16777216);", // IID13163 - "__ subq(Address(r20, r21, (Address::ScaleFactor)2, -0x2d221b14), 16777216);", // IID13164 - "__ subq(Address(r21, +0x7f2bfec0), 16777216);", // IID13165 - "__ subq(Address(r22, r23, (Address::ScaleFactor)3, -0x63e4b2aa), 16777216);", // IID13166 - "__ subq(Address(r23, r24, (Address::ScaleFactor)1, -0x129bdc9c), 16777216);", // IID13167 - "__ subq(Address(r24, +0x53847019), 16777216);", // IID13168 - "__ subq(Address(r25, r26, (Address::ScaleFactor)0, +0x48552f4a), 16777216);", // IID13169 - "__ subq(Address(r26, r27, (Address::ScaleFactor)2, -0x4c78834e), 16777216);", // IID13170 - "__ subq(Address(r27, -0x27deed6f), 16777216);", // IID13171 - "__ subq(Address(r28, r29, (Address::ScaleFactor)2, -0x1e3a8283), 16777216);", // IID13172 - "__ subq(Address(r29, r30, (Address::ScaleFactor)1, +0x6b04e75b), 16777216);", // IID13173 - "__ subq(Address(r30, +0x10b39311), 16777216);", // IID13174 - "__ subq(Address(r31, rcx, (Address::ScaleFactor)0, -0x2d8b63ca), 16777216);", // IID13175 - "__ subq(Address(rcx, rdx, (Address::ScaleFactor)3, +0x2d76f206), 268435456);", // IID13176 - "__ subq(Address(rdx, +0x7c7abea5), 268435456);", // IID13177 - "__ subq(Address(rbx, r8, (Address::ScaleFactor)1, +0x39a2ff82), 268435456);", // IID13178 - "__ subq(Address(r8, r9, (Address::ScaleFactor)3, +0x6cbd9a2a), 268435456);", // IID13179 - "__ subq(Address(r9, r10, (Address::ScaleFactor)1, +0x548b73e0), 268435456);", // IID13180 - "__ subq(Address(r10, +0x373924ab), 268435456);", // IID13181 - "__ subq(Address(r11, r12, (Address::ScaleFactor)1, -0x52b46e21), 268435456);", // IID13182 - "__ subq(Address(r12, -0x4bb2cff), 268435456);", // IID13183 - "__ subq(Address(r13, r14, (Address::ScaleFactor)3, +0x425c6fda), 268435456);", // IID13184 - "__ subq(Address(r14, r15, (Address::ScaleFactor)3, +0x2349f4f8), 268435456);", // IID13185 - "__ subq(Address(r15, r16, (Address::ScaleFactor)1, +0x54e6ce3c), 268435456);", // IID13186 - "__ subq(Address(r16, r17, (Address::ScaleFactor)2, -0x9f0e2e1), 268435456);", // IID13187 - "__ subq(Address(r17, -0x5cf8b0f2), 268435456);", // IID13188 - "__ subq(Address(r18, -0x5028f036), 268435456);", // IID13189 - "__ subq(Address(r19, r20, (Address::ScaleFactor)0, +0x52f5b5ac), 268435456);", // IID13190 - "__ subq(Address(r20, r21, (Address::ScaleFactor)3, +0x4f547e0e), 268435456);", // IID13191 - "__ subq(Address(r21, r22, (Address::ScaleFactor)1, +0x4eef4d3f), 268435456);", // IID13192 - "__ subq(Address(r22, r23, (Address::ScaleFactor)2, -0x47999e45), 268435456);", // IID13193 - "__ subq(Address(r23, r24, (Address::ScaleFactor)2, -0xb836f0f), 268435456);", // IID13194 - "__ subq(Address(r24, r25, (Address::ScaleFactor)0, -0x227ae846), 268435456);", // IID13195 - "__ subq(Address(r25, r26, (Address::ScaleFactor)2, -0x34e8e2d6), 268435456);", // IID13196 - "__ subq(Address(r26, -0xcda3dce), 268435456);", // IID13197 - "__ subq(Address(r27, r28, (Address::ScaleFactor)3, -0x368b3081), 268435456);", // IID13198 - "__ subq(Address(r28, r29, (Address::ScaleFactor)3, +0x2f21f63e), 268435456);", // IID13199 - "__ subq(Address(r29, r30, (Address::ScaleFactor)3, -0x584301cf), 268435456);", // IID13200 - "__ subq(Address(r30, r31, (Address::ScaleFactor)0, +0x215b0518), 268435456);", // IID13201 - "__ subq(Address(r31, +0x6a10dfe), 268435456);", // IID13202 - "__ xorq(Address(rcx, rdx, (Address::ScaleFactor)2, -0x4da572bf), 1);", // IID13203 - "__ xorq(Address(rdx, rbx, (Address::ScaleFactor)2, -0x7699b6cf), 1);", // IID13204 - "__ xorq(Address(rbx, r8, (Address::ScaleFactor)2, -0x13733376), 1);", // IID13205 - "__ xorq(Address(r8, r9, (Address::ScaleFactor)1, +0x4159d625), 1);", // IID13206 - "__ xorq(Address(r9, r10, (Address::ScaleFactor)2, -0x1aa50a80), 1);", // IID13207 - "__ xorq(Address(r10, +0x17619a66), 1);", // IID13208 - "__ xorq(Address(r11, +0x12015a0e), 1);", // IID13209 - "__ xorq(Address(r12, r13, (Address::ScaleFactor)1, +0x5f0baefe), 1);", // IID13210 - "__ xorq(Address(r13, r14, (Address::ScaleFactor)2, +0x20d485d8), 1);", // IID13211 - "__ xorq(Address(r14, r15, (Address::ScaleFactor)3, +0x10a6c6bb), 1);", // IID13212 - "__ xorq(Address(r15, r16, (Address::ScaleFactor)3, -0x3e458072), 1);", // IID13213 - "__ xorq(Address(r16, r17, (Address::ScaleFactor)2, +0x79763410), 1);", // IID13214 - "__ xorq(Address(r17, +0x3ed6199e), 1);", // IID13215 - "__ xorq(Address(r18, r19, (Address::ScaleFactor)2, +0x2aaf8993), 1);", // IID13216 - "__ xorq(Address(r19, r20, (Address::ScaleFactor)3, +0x7c04fa3), 1);", // IID13217 - "__ xorq(Address(r20, +0x5235660c), 1);", // IID13218 - "__ xorq(Address(r21, -0x12233e23), 1);", // IID13219 - "__ xorq(Address(r22, r23, (Address::ScaleFactor)1, -0x5febe7a2), 1);", // IID13220 - "__ xorq(Address(r23, r24, (Address::ScaleFactor)1, +0x7f3b76b3), 1);", // IID13221 - "__ xorq(Address(r24, r25, (Address::ScaleFactor)2, +0x4e7ef954), 1);", // IID13222 - "__ xorq(Address(r25, r26, (Address::ScaleFactor)2, +0x6f7feb1f), 1);", // IID13223 - "__ xorq(Address(r26, -0x62e23458), 1);", // IID13224 - "__ xorq(Address(r27, r28, (Address::ScaleFactor)0, -0x79a6e23b), 1);", // IID13225 - "__ xorq(Address(r28, r29, (Address::ScaleFactor)0, -0x2204690f), 1);", // IID13226 - "__ xorq(Address(r29, r30, (Address::ScaleFactor)1, -0x44e3ae6e), 1);", // IID13227 - "__ xorq(Address(r30, r31, (Address::ScaleFactor)0, -0x6a0eb19a), 1);", // IID13228 - "__ xorq(Address(r31, rcx, (Address::ScaleFactor)2, +0x39e3613c), 1);", // IID13229 - "__ xorq(Address(rcx, rdx, (Address::ScaleFactor)1, +0x68ab35ca), 16);", // IID13230 - "__ xorq(Address(rdx, rbx, (Address::ScaleFactor)1, +0x6d367bbe), 16);", // IID13231 - "__ xorq(Address(rbx, r8, (Address::ScaleFactor)0, +0x3ab4c7b6), 16);", // IID13232 - "__ xorq(Address(r8, r9, (Address::ScaleFactor)3, -0x4f4b6a0d), 16);", // IID13233 - "__ xorq(Address(r9, r10, (Address::ScaleFactor)2, -0xa95c223), 16);", // IID13234 - "__ xorq(Address(r10, r11, (Address::ScaleFactor)3, -0x72242b26), 16);", // IID13235 - "__ xorq(Address(r11, r12, (Address::ScaleFactor)2, +0x85c0bb), 16);", // IID13236 - "__ xorq(Address(r12, r13, (Address::ScaleFactor)2, -0x301b46e3), 16);", // IID13237 - "__ xorq(Address(r13, r14, (Address::ScaleFactor)3, +0x63bbe98d), 16);", // IID13238 - "__ xorq(Address(r14, r15, (Address::ScaleFactor)3, -0xee670b7), 16);", // IID13239 - "__ xorq(Address(r15, r16, (Address::ScaleFactor)3, +0x55992b6b), 16);", // IID13240 - "__ xorq(Address(r16, r17, (Address::ScaleFactor)0, +0x45a6181e), 16);", // IID13241 - "__ xorq(Address(r17, r18, (Address::ScaleFactor)2, +0xb0336d7), 16);", // IID13242 - "__ xorq(Address(r18, -0x35c2b93e), 16);", // IID13243 - "__ xorq(Address(r19, -0x1cb33898), 16);", // IID13244 - "__ xorq(Address(r20, r21, (Address::ScaleFactor)0, +0x7c936f4b), 16);", // IID13245 - "__ xorq(Address(r21, r22, (Address::ScaleFactor)3, -0x692c699a), 16);", // IID13246 - "__ xorq(Address(r22, r23, (Address::ScaleFactor)3, +0x1ea97a42), 16);", // IID13247 - "__ xorq(Address(r23, +0x3c536823), 16);", // IID13248 - "__ xorq(Address(r24, r25, (Address::ScaleFactor)2, +0x2d2b95a), 16);", // IID13249 - "__ xorq(Address(r25, r26, (Address::ScaleFactor)1, -0x6bb68ef5), 16);", // IID13250 - "__ xorq(Address(r26, r27, (Address::ScaleFactor)3, +0x130d486), 16);", // IID13251 - "__ xorq(Address(r27, r28, (Address::ScaleFactor)3, -0x5b405b37), 16);", // IID13252 - "__ xorq(Address(r28, r29, (Address::ScaleFactor)2, -0x3c0acc09), 16);", // IID13253 - "__ xorq(Address(r29, r30, (Address::ScaleFactor)3, -0x270ed8dc), 16);", // IID13254 - "__ xorq(Address(r30, r31, (Address::ScaleFactor)0, -0x430ab926), 16);", // IID13255 - "__ xorq(Address(r31, rcx, (Address::ScaleFactor)0, -0x27a5d00f), 16);", // IID13256 - "__ xorq(Address(rcx, rdx, (Address::ScaleFactor)0, +0x51c2f2ee), 256);", // IID13257 - "__ xorq(Address(rdx, rbx, (Address::ScaleFactor)2, -0x62d02ce3), 256);", // IID13258 - "__ xorq(Address(rbx, r8, (Address::ScaleFactor)2, -0x1eacdc12), 256);", // IID13259 - "__ xorq(Address(r8, r9, (Address::ScaleFactor)3, +0x728c119d), 256);", // IID13260 - "__ xorq(Address(r9, r10, (Address::ScaleFactor)3, -0x7ff0ca6), 256);", // IID13261 - "__ xorq(Address(r10, r11, (Address::ScaleFactor)2, +0x5fde99d3), 256);", // IID13262 - "__ xorq(Address(r11, +0x5a5cebc9), 256);", // IID13263 - "__ xorq(Address(r12, r13, (Address::ScaleFactor)0, -0x59728608), 256);", // IID13264 - "__ xorq(Address(r13, r14, (Address::ScaleFactor)2, +0x41fe69b3), 256);", // IID13265 - "__ xorq(Address(r14, r15, (Address::ScaleFactor)3, -0x45e743bf), 256);", // IID13266 - "__ xorq(Address(r15, r16, (Address::ScaleFactor)3, +0x5db4e974), 256);", // IID13267 - "__ xorq(Address(r16, r17, (Address::ScaleFactor)0, -0x3eb508b7), 256);", // IID13268 - "__ xorq(Address(r17, r18, (Address::ScaleFactor)1, +0x3c8c8e57), 256);", // IID13269 - "__ xorq(Address(r18, +0x1ec1530a), 256);", // IID13270 - "__ xorq(Address(r19, r20, (Address::ScaleFactor)3, +0x99566b9), 256);", // IID13271 - "__ xorq(Address(r20, r21, (Address::ScaleFactor)2, -0x7bd19351), 256);", // IID13272 - "__ xorq(Address(r21, r22, (Address::ScaleFactor)1, +0x4801c109), 256);", // IID13273 - "__ xorq(Address(r22, +0x5ef43bfb), 256);", // IID13274 - "__ xorq(Address(r23, -0x4ed00c52), 256);", // IID13275 - "__ xorq(Address(r24, +0x1cca9ad9), 256);", // IID13276 - "__ xorq(Address(r25, r26, (Address::ScaleFactor)1, -0x3811f05f), 256);", // IID13277 - "__ xorq(Address(r26, r27, (Address::ScaleFactor)3, +0x11cec378), 256);", // IID13278 - "__ xorq(Address(r27, r28, (Address::ScaleFactor)2, +0xf922e5b), 256);", // IID13279 - "__ xorq(Address(r28, r29, (Address::ScaleFactor)3, -0x76120b81), 256);", // IID13280 - "__ xorq(Address(r29, r30, (Address::ScaleFactor)0, +0x3dfc9d21), 256);", // IID13281 - "__ xorq(Address(r30, r31, (Address::ScaleFactor)2, -0x6028027e), 256);", // IID13282 - "__ xorq(Address(r31, rcx, (Address::ScaleFactor)1, -0xb82f1ca), 256);", // IID13283 - "__ xorq(Address(rcx, rdx, (Address::ScaleFactor)1, -0x41d2aa5d), 4096);", // IID13284 - "__ xorq(Address(rdx, rbx, (Address::ScaleFactor)2, +0xdebe98d), 4096);", // IID13285 - "__ xorq(Address(rbx, r8, (Address::ScaleFactor)1, +0x5cbe5d60), 4096);", // IID13286 - "__ xorq(Address(r8, r9, (Address::ScaleFactor)1, -0x7c1e41ad), 4096);", // IID13287 - "__ xorq(Address(r9, +0x3fdd3623), 4096);", // IID13288 - "__ xorq(Address(r10, r11, (Address::ScaleFactor)2, +0x52a25cb5), 4096);", // IID13289 - "__ xorq(Address(r11, r12, (Address::ScaleFactor)2, +0x4189dace), 4096);", // IID13290 - "__ xorq(Address(r12, r13, (Address::ScaleFactor)1, +0x2985a2e1), 4096);", // IID13291 - "__ xorq(Address(r13, -0x2a24ff4f), 4096);", // IID13292 - "__ xorq(Address(r14, r15, (Address::ScaleFactor)0, -0x5330c522), 4096);", // IID13293 - "__ xorq(Address(r15, +0x12e4567f), 4096);", // IID13294 - "__ xorq(Address(r16, r17, (Address::ScaleFactor)3, -0x4f5b7bd2), 4096);", // IID13295 - "__ xorq(Address(r17, r18, (Address::ScaleFactor)0, -0x7331a862), 4096);", // IID13296 - "__ xorq(Address(r18, r19, (Address::ScaleFactor)0, -0x3fed1090), 4096);", // IID13297 - "__ xorq(Address(r19, r20, (Address::ScaleFactor)2, +0x2d53e02b), 4096);", // IID13298 - "__ xorq(Address(r20, r21, (Address::ScaleFactor)2, -0x48cbfebd), 4096);", // IID13299 - "__ xorq(Address(r21, r22, (Address::ScaleFactor)3, +0x310d99c), 4096);", // IID13300 - "__ xorq(Address(r22, -0x7042c02b), 4096);", // IID13301 - "__ xorq(Address(r23, r24, (Address::ScaleFactor)2, -0x801b515), 4096);", // IID13302 - "__ xorq(Address(r24, r25, (Address::ScaleFactor)1, +0x7977f297), 4096);", // IID13303 - "__ xorq(Address(r25, r26, (Address::ScaleFactor)3, -0x2336efdd), 4096);", // IID13304 - "__ xorq(Address(r26, r27, (Address::ScaleFactor)0, -0x1be53a61), 4096);", // IID13305 - "__ xorq(Address(r27, r28, (Address::ScaleFactor)0, -0x35149e5e), 4096);", // IID13306 - "__ xorq(Address(r28, r29, (Address::ScaleFactor)0, +0x395de3ff), 4096);", // IID13307 - "__ xorq(Address(r29, r30, (Address::ScaleFactor)3, -0x34119f19), 4096);", // IID13308 - "__ xorq(Address(r30, r31, (Address::ScaleFactor)3, +0x3c1f74b3), 4096);", // IID13309 - "__ xorq(Address(r31, rcx, (Address::ScaleFactor)1, -0x352af1b5), 4096);", // IID13310 - "__ xorq(Address(rcx, +0x2f6c14e7), 65536);", // IID13311 - "__ xorq(Address(rdx, rbx, (Address::ScaleFactor)1, +0x6939f8f8), 65536);", // IID13312 - "__ xorq(Address(rbx, r8, (Address::ScaleFactor)3, +0x52245e8e), 65536);", // IID13313 - "__ xorq(Address(r8, r9, (Address::ScaleFactor)2, +0x47877f0d), 65536);", // IID13314 - "__ xorq(Address(r9, r10, (Address::ScaleFactor)0, -0x37b83c51), 65536);", // IID13315 - "__ xorq(Address(r10, r11, (Address::ScaleFactor)2, +0x210f915c), 65536);", // IID13316 - "__ xorq(Address(r11, r12, (Address::ScaleFactor)3, -0x21d676d4), 65536);", // IID13317 - "__ xorq(Address(r12, r13, (Address::ScaleFactor)0, -0xf7039eb), 65536);", // IID13318 - "__ xorq(Address(r13, r14, (Address::ScaleFactor)2, -0x26bbe948), 65536);", // IID13319 - "__ xorq(Address(r14, r15, (Address::ScaleFactor)1, +0x18786797), 65536);", // IID13320 - "__ xorq(Address(r15, r16, (Address::ScaleFactor)3, +0x1e884c59), 65536);", // IID13321 - "__ xorq(Address(r16, r17, (Address::ScaleFactor)3, -0x3779fd03), 65536);", // IID13322 - "__ xorq(Address(r17, r18, (Address::ScaleFactor)0, -0x96be64), 65536);", // IID13323 - "__ xorq(Address(r18, r19, (Address::ScaleFactor)0, -0x252d00c5), 65536);", // IID13324 - "__ xorq(Address(r19, r20, (Address::ScaleFactor)1, +0xa2519ce), 65536);", // IID13325 - "__ xorq(Address(r20, r21, (Address::ScaleFactor)3, -0x82001f7), 65536);", // IID13326 - "__ xorq(Address(r21, r22, (Address::ScaleFactor)3, -0x71b7e6e7), 65536);", // IID13327 - "__ xorq(Address(r22, r23, (Address::ScaleFactor)3, +0x2b2fbc42), 65536);", // IID13328 - "__ xorq(Address(r23, r24, (Address::ScaleFactor)1, +0x567b0a63), 65536);", // IID13329 - "__ xorq(Address(r24, r25, (Address::ScaleFactor)0, +0x7d3c9ee2), 65536);", // IID13330 - "__ xorq(Address(r25, +0x46311324), 65536);", // IID13331 - "__ xorq(Address(r26, r27, (Address::ScaleFactor)0, -0x6f7df0f8), 65536);", // IID13332 - "__ xorq(Address(r27, r28, (Address::ScaleFactor)3, +0x462a7d0a), 65536);", // IID13333 - "__ xorq(Address(r28, r29, (Address::ScaleFactor)2, +0x6e5b954), 65536);", // IID13334 - "__ xorq(Address(r29, +0x1600da79), 65536);", // IID13335 - "__ xorq(Address(r30, +0x467a8f43), 65536);", // IID13336 - "__ xorq(Address(r31, -0x773e8192), 65536);", // IID13337 - "__ xorq(Address(rcx, rdx, (Address::ScaleFactor)2, +0x5db3feee), 1048576);", // IID13338 - "__ xorq(Address(rdx, rbx, (Address::ScaleFactor)2, -0x4e7fdff1), 1048576);", // IID13339 - "__ xorq(Address(rbx, r8, (Address::ScaleFactor)0, -0x527603fd), 1048576);", // IID13340 - "__ xorq(Address(r8, -0x419487a9), 1048576);", // IID13341 - "__ xorq(Address(r9, r10, (Address::ScaleFactor)0, -0x517ed2f5), 1048576);", // IID13342 - "__ xorq(Address(r10, r11, (Address::ScaleFactor)1, -0x7c0b0afc), 1048576);", // IID13343 - "__ xorq(Address(r11, r12, (Address::ScaleFactor)0, +0x1fb7d72b), 1048576);", // IID13344 - "__ xorq(Address(r12, r13, (Address::ScaleFactor)3, +0x29dd89e0), 1048576);", // IID13345 - "__ xorq(Address(r13, -0x57cc4662), 1048576);", // IID13346 - "__ xorq(Address(r14, r15, (Address::ScaleFactor)2, -0x3bd37caa), 1048576);", // IID13347 - "__ xorq(Address(r15, r16, (Address::ScaleFactor)0, +0x1a5b1a74), 1048576);", // IID13348 - "__ xorq(Address(r16, r17, (Address::ScaleFactor)3, +0x62a9fc43), 1048576);", // IID13349 - "__ xorq(Address(r17, +0xdd5bf39), 1048576);", // IID13350 - "__ xorq(Address(r18, r19, (Address::ScaleFactor)0, -0x32d86f19), 1048576);", // IID13351 - "__ xorq(Address(r19, r20, (Address::ScaleFactor)1, -0x633bea04), 1048576);", // IID13352 - "__ xorq(Address(r20, r21, (Address::ScaleFactor)0, -0x61faab32), 1048576);", // IID13353 - "__ xorq(Address(r21, r22, (Address::ScaleFactor)1, +0x52ecc65c), 1048576);", // IID13354 - "__ xorq(Address(r22, r23, (Address::ScaleFactor)1, +0x40085544), 1048576);", // IID13355 - "__ xorq(Address(r23, r24, (Address::ScaleFactor)1, +0x5b32698e), 1048576);", // IID13356 - "__ xorq(Address(r24, r25, (Address::ScaleFactor)3, +0x605f8189), 1048576);", // IID13357 - "__ xorq(Address(r25, r26, (Address::ScaleFactor)2, -0x34d5a3b8), 1048576);", // IID13358 - "__ xorq(Address(r26, -0xc744789), 1048576);", // IID13359 - "__ xorq(Address(r27, r28, (Address::ScaleFactor)2, -0x67594c6c), 1048576);", // IID13360 - "__ xorq(Address(r28, -0x1b77dca8), 1048576);", // IID13361 - "__ xorq(Address(r29, +0x2f1f72aa), 1048576);", // IID13362 - "__ xorq(Address(r30, +0x3c036630), 1048576);", // IID13363 - "__ xorq(Address(r31, rcx, (Address::ScaleFactor)2, +0x1db70a3d), 1048576);", // IID13364 - "__ xorq(Address(rcx, rdx, (Address::ScaleFactor)2, +0x70b571b3), 16777216);", // IID13365 - "__ xorq(Address(rdx, rbx, (Address::ScaleFactor)1, -0x660125e), 16777216);", // IID13366 - "__ xorq(Address(rbx, r8, (Address::ScaleFactor)2, -0x47c228c5), 16777216);", // IID13367 - "__ xorq(Address(r8, r9, (Address::ScaleFactor)0, +0x661d84c7), 16777216);", // IID13368 - "__ xorq(Address(r9, r10, (Address::ScaleFactor)0, -0x1a8c2cdc), 16777216);", // IID13369 - "__ xorq(Address(r10, r11, (Address::ScaleFactor)1, +0x13dc025d), 16777216);", // IID13370 - "__ xorq(Address(r11, r12, (Address::ScaleFactor)0, -0x6a75de3b), 16777216);", // IID13371 - "__ xorq(Address(r12, -0x7d6340bf), 16777216);", // IID13372 - "__ xorq(Address(r13, r14, (Address::ScaleFactor)1, -0x343a9ef1), 16777216);", // IID13373 - "__ xorq(Address(r14, +0x69b5de00), 16777216);", // IID13374 - "__ xorq(Address(r15, r16, (Address::ScaleFactor)3, -0x79b8a0f5), 16777216);", // IID13375 - "__ xorq(Address(r16, r17, (Address::ScaleFactor)2, -0x17b696fc), 16777216);", // IID13376 - "__ xorq(Address(r17, r18, (Address::ScaleFactor)1, -0x6490bb27), 16777216);", // IID13377 - "__ xorq(Address(r18, r19, (Address::ScaleFactor)1, +0x78e82283), 16777216);", // IID13378 - "__ xorq(Address(r19, r20, (Address::ScaleFactor)2, +0x42f0231b), 16777216);", // IID13379 - "__ xorq(Address(r20, r21, (Address::ScaleFactor)2, -0x652c96bf), 16777216);", // IID13380 - "__ xorq(Address(r21, r22, (Address::ScaleFactor)3, +0xc2b3018), 16777216);", // IID13381 - "__ xorq(Address(r22, r23, (Address::ScaleFactor)2, +0x135b45c6), 16777216);", // IID13382 - "__ xorq(Address(r23, r24, (Address::ScaleFactor)0, -0x77310ac3), 16777216);", // IID13383 - "__ xorq(Address(r24, r25, (Address::ScaleFactor)2, +0x32bcba22), 16777216);", // IID13384 - "__ xorq(Address(r25, r26, (Address::ScaleFactor)3, -0x4ffc6ac3), 16777216);", // IID13385 - "__ xorq(Address(r26, -0x3648126a), 16777216);", // IID13386 - "__ xorq(Address(r27, r28, (Address::ScaleFactor)1, +0xaaecfa3), 16777216);", // IID13387 - "__ xorq(Address(r28, -0x7aca1c96), 16777216);", // IID13388 - "__ xorq(Address(r29, r30, (Address::ScaleFactor)0, +0xb7300d6), 16777216);", // IID13389 - "__ xorq(Address(r30, r31, (Address::ScaleFactor)2, -0x6188282e), 16777216);", // IID13390 - "__ xorq(Address(r31, rcx, (Address::ScaleFactor)1, -0x4cc18dc5), 16777216);", // IID13391 - "__ xorq(Address(rcx, rdx, (Address::ScaleFactor)3, +0x4709909b), 268435456);", // IID13392 - "__ xorq(Address(rdx, -0x595b5746), 268435456);", // IID13393 - "__ xorq(Address(rbx, r8, (Address::ScaleFactor)1, -0x4032a6fd), 268435456);", // IID13394 - "__ xorq(Address(r8, r9, (Address::ScaleFactor)2, -0x6fc86588), 268435456);", // IID13395 - "__ xorq(Address(r9, r10, (Address::ScaleFactor)1, +0x601245c6), 268435456);", // IID13396 - "__ xorq(Address(r10, r11, (Address::ScaleFactor)3, -0x2adff9ae), 268435456);", // IID13397 - "__ xorq(Address(r11, r12, (Address::ScaleFactor)1, -0x3bdacab8), 268435456);", // IID13398 - "__ xorq(Address(r12, r13, (Address::ScaleFactor)2, -0x4c18af38), 268435456);", // IID13399 - "__ xorq(Address(r13, +0x2e39284b), 268435456);", // IID13400 - "__ xorq(Address(r14, r15, (Address::ScaleFactor)1, +0x15614d70), 268435456);", // IID13401 - "__ xorq(Address(r15, r16, (Address::ScaleFactor)0, -0x4ea258eb), 268435456);", // IID13402 - "__ xorq(Address(r16, r17, (Address::ScaleFactor)1, -0x3146c87e), 268435456);", // IID13403 - "__ xorq(Address(r17, -0x2e34110c), 268435456);", // IID13404 - "__ xorq(Address(r18, r19, (Address::ScaleFactor)2, -0x736e24d2), 268435456);", // IID13405 - "__ xorq(Address(r19, r20, (Address::ScaleFactor)1, +0xb67fb0f), 268435456);", // IID13406 - "__ xorq(Address(r20, r21, (Address::ScaleFactor)1, +0x1abb490a), 268435456);", // IID13407 - "__ xorq(Address(r21, r22, (Address::ScaleFactor)2, -0xc4615b), 268435456);", // IID13408 - "__ xorq(Address(r22, r23, (Address::ScaleFactor)2, -0x17309af9), 268435456);", // IID13409 - "__ xorq(Address(r23, r24, (Address::ScaleFactor)2, +0x7d7d5773), 268435456);", // IID13410 - "__ xorq(Address(r24, r25, (Address::ScaleFactor)1, -0x6e282f95), 268435456);", // IID13411 - "__ xorq(Address(r25, r26, (Address::ScaleFactor)3, -0x653a24cc), 268435456);", // IID13412 - "__ xorq(Address(r26, r27, (Address::ScaleFactor)1, +0x1f45d191), 268435456);", // IID13413 - "__ xorq(Address(r27, r28, (Address::ScaleFactor)1, -0x5725371a), 268435456);", // IID13414 - "__ xorq(Address(r28, r29, (Address::ScaleFactor)2, +0x3999b113), 268435456);", // IID13415 - "__ xorq(Address(r29, r30, (Address::ScaleFactor)2, +0x3681ad57), 268435456);", // IID13416 - "__ xorq(Address(r30, +0x32bf898e), 268435456);", // IID13417 - "__ xorq(Address(r31, rcx, (Address::ScaleFactor)0, -0x3eaa0c92), 268435456);", // IID13418 - "__ orq(Address(rcx, rdx, (Address::ScaleFactor)2, -0x39bd0c1d), 1);", // IID13419 - "__ orq(Address(rdx, rbx, (Address::ScaleFactor)2, +0x5e212a24), 1);", // IID13420 - "__ orq(Address(rbx, r8, (Address::ScaleFactor)2, +0x11705037), 1);", // IID13421 - "__ orq(Address(r8, r9, (Address::ScaleFactor)1, +0x31d9c620), 1);", // IID13422 - "__ orq(Address(r9, r10, (Address::ScaleFactor)3, -0x712d4eea), 1);", // IID13423 - "__ orq(Address(r10, r11, (Address::ScaleFactor)3, -0x128548cc), 1);", // IID13424 - "__ orq(Address(r11, r12, (Address::ScaleFactor)2, +0x287e72bf), 1);", // IID13425 - "__ orq(Address(r12, r13, (Address::ScaleFactor)3, -0x6398b42a), 1);", // IID13426 - "__ orq(Address(r13, r14, (Address::ScaleFactor)3, +0x31a500b2), 1);", // IID13427 - "__ orq(Address(r14, r15, (Address::ScaleFactor)1, -0x4728b24b), 1);", // IID13428 - "__ orq(Address(r15, r16, (Address::ScaleFactor)2, -0x6f5c7a41), 1);", // IID13429 - "__ orq(Address(r16, +0x3a7487e6), 1);", // IID13430 - "__ orq(Address(r17, r18, (Address::ScaleFactor)2, -0x78d51568), 1);", // IID13431 - "__ orq(Address(r18, r19, (Address::ScaleFactor)2, -0x689590d7), 1);", // IID13432 - "__ orq(Address(r19, -0x42c9cc9f), 1);", // IID13433 - "__ orq(Address(r20, r21, (Address::ScaleFactor)2, +0x19b0f524), 1);", // IID13434 - "__ orq(Address(r21, -0x2a80234f), 1);", // IID13435 - "__ orq(Address(r22, -0x266674ac), 1);", // IID13436 - "__ orq(Address(r23, +0x3996e73e), 1);", // IID13437 - "__ orq(Address(r24, r25, (Address::ScaleFactor)3, -0x4d0c8269), 1);", // IID13438 - "__ orq(Address(r25, r26, (Address::ScaleFactor)1, -0x77d02149), 1);", // IID13439 - "__ orq(Address(r26, r27, (Address::ScaleFactor)1, +0x47a304ef), 1);", // IID13440 - "__ orq(Address(r27, r28, (Address::ScaleFactor)2, -0x32b14790), 1);", // IID13441 - "__ orq(Address(r28, r29, (Address::ScaleFactor)3, +0x3aeb85d8), 1);", // IID13442 - "__ orq(Address(r29, +0x470b1da1), 1);", // IID13443 - "__ orq(Address(r30, r31, (Address::ScaleFactor)1, -0x7c0e55f), 1);", // IID13444 - "__ orq(Address(r31, +0x405ac3f6), 1);", // IID13445 - "__ orq(Address(rcx, rdx, (Address::ScaleFactor)3, +0x7aa190a1), 16);", // IID13446 - "__ orq(Address(rdx, rbx, (Address::ScaleFactor)0, +0x37a42887), 16);", // IID13447 - "__ orq(Address(rbx, r8, (Address::ScaleFactor)2, -0x5fb7d34f), 16);", // IID13448 - "__ orq(Address(r8, r9, (Address::ScaleFactor)0, +0x2d0def8c), 16);", // IID13449 - "__ orq(Address(r9, r10, (Address::ScaleFactor)2, -0x6165241e), 16);", // IID13450 - "__ orq(Address(r10, r11, (Address::ScaleFactor)0, -0x33955b37), 16);", // IID13451 - "__ orq(Address(r11, r12, (Address::ScaleFactor)0, -0x636dd00), 16);", // IID13452 - "__ orq(Address(r12, r13, (Address::ScaleFactor)3, +0x4380c1b0), 16);", // IID13453 - "__ orq(Address(r13, r14, (Address::ScaleFactor)1, -0x70ab272c), 16);", // IID13454 - "__ orq(Address(r14, r15, (Address::ScaleFactor)0, +0x170acc7), 16);", // IID13455 - "__ orq(Address(r15, -0x2e6993f0), 16);", // IID13456 - "__ orq(Address(r16, -0x4b5e98c7), 16);", // IID13457 - "__ orq(Address(r17, r18, (Address::ScaleFactor)2, -0x1391ba53), 16);", // IID13458 - "__ orq(Address(r18, r19, (Address::ScaleFactor)3, +0x33801ad2), 16);", // IID13459 - "__ orq(Address(r19, r20, (Address::ScaleFactor)1, +0x2932a624), 16);", // IID13460 - "__ orq(Address(r20, r21, (Address::ScaleFactor)0, -0x8d6180d), 16);", // IID13461 - "__ orq(Address(r21, -0x3438c497), 16);", // IID13462 - "__ orq(Address(r22, -0x4fd8e38a), 16);", // IID13463 - "__ orq(Address(r23, -0x772749df), 16);", // IID13464 - "__ orq(Address(r24, r25, (Address::ScaleFactor)0, +0xbf5b9c4), 16);", // IID13465 - "__ orq(Address(r25, -0x3a7b764a), 16);", // IID13466 - "__ orq(Address(r26, +0x45895f4), 16);", // IID13467 - "__ orq(Address(r27, r28, (Address::ScaleFactor)2, +0x6d17f5ba), 16);", // IID13468 - "__ orq(Address(r28, -0x2ebbabf1), 16);", // IID13469 - "__ orq(Address(r29, r30, (Address::ScaleFactor)3, -0x84bb755), 16);", // IID13470 - "__ orq(Address(r30, r31, (Address::ScaleFactor)0, +0x5a92fe23), 16);", // IID13471 - "__ orq(Address(r31, rcx, (Address::ScaleFactor)1, -0x7c5ccd56), 16);", // IID13472 - "__ orq(Address(rcx, rdx, (Address::ScaleFactor)3, +0x3bc8670a), 256);", // IID13473 - "__ orq(Address(rdx, +0x1c928dc9), 256);", // IID13474 - "__ orq(Address(rbx, r8, (Address::ScaleFactor)3, +0x7f830346), 256);", // IID13475 - "__ orq(Address(r8, r9, (Address::ScaleFactor)3, +0x5db7b31), 256);", // IID13476 - "__ orq(Address(r9, r10, (Address::ScaleFactor)0, -0x2462a8c4), 256);", // IID13477 - "__ orq(Address(r10, r11, (Address::ScaleFactor)2, -0xd6b4861), 256);", // IID13478 - "__ orq(Address(r11, -0x53afc97c), 256);", // IID13479 - "__ orq(Address(r12, r13, (Address::ScaleFactor)3, -0x124e3995), 256);", // IID13480 - "__ orq(Address(r13, r14, (Address::ScaleFactor)0, +0x1bb0a116), 256);", // IID13481 - "__ orq(Address(r14, r15, (Address::ScaleFactor)1, +0x2462ed0e), 256);", // IID13482 - "__ orq(Address(r15, +0x3b5d5eab), 256);", // IID13483 - "__ orq(Address(r16, +0x4a6f614c), 256);", // IID13484 - "__ orq(Address(r17, r18, (Address::ScaleFactor)2, -0x2fe152f0), 256);", // IID13485 - "__ orq(Address(r18, r19, (Address::ScaleFactor)2, +0x75bc87dc), 256);", // IID13486 - "__ orq(Address(r19, +0x6a2aa3f), 256);", // IID13487 - "__ orq(Address(r20, +0x7a12bbec), 256);", // IID13488 - "__ orq(Address(r21, r22, (Address::ScaleFactor)1, +0x39b19eba), 256);", // IID13489 - "__ orq(Address(r22, r23, (Address::ScaleFactor)3, -0x76f55c06), 256);", // IID13490 - "__ orq(Address(r23, r24, (Address::ScaleFactor)0, +0x134208fc), 256);", // IID13491 - "__ orq(Address(r24, r25, (Address::ScaleFactor)3, -0x121d0844), 256);", // IID13492 - "__ orq(Address(r25, r26, (Address::ScaleFactor)1, -0x649b7d31), 256);", // IID13493 - "__ orq(Address(r26, +0x21a9015c), 256);", // IID13494 - "__ orq(Address(r27, -0x11e23bed), 256);", // IID13495 - "__ orq(Address(r28, -0x1a51d8ff), 256);", // IID13496 - "__ orq(Address(r29, r30, (Address::ScaleFactor)2, -0x21960b16), 256);", // IID13497 - "__ orq(Address(r30, r31, (Address::ScaleFactor)1, +0x458bfeb5), 256);", // IID13498 - "__ orq(Address(r31, +0x11b5dc3), 256);", // IID13499 - "__ orq(Address(rcx, rdx, (Address::ScaleFactor)1, +0x2ebcc8dc), 4096);", // IID13500 - "__ orq(Address(rdx, rbx, (Address::ScaleFactor)1, -0x44530038), 4096);", // IID13501 - "__ orq(Address(rbx, -0x72696808), 4096);", // IID13502 - "__ orq(Address(r8, +0x3dea9016), 4096);", // IID13503 - "__ orq(Address(r9, r10, (Address::ScaleFactor)0, +0xf8fd59b), 4096);", // IID13504 - "__ orq(Address(r10, r11, (Address::ScaleFactor)2, -0x537b067e), 4096);", // IID13505 - "__ orq(Address(r11, r12, (Address::ScaleFactor)0, -0x363f13f9), 4096);", // IID13506 - "__ orq(Address(r12, r13, (Address::ScaleFactor)1, -0x4020ad27), 4096);", // IID13507 - "__ orq(Address(r13, +0x4896efb3), 4096);", // IID13508 - "__ orq(Address(r14, r15, (Address::ScaleFactor)2, -0x9486d84), 4096);", // IID13509 - "__ orq(Address(r15, r16, (Address::ScaleFactor)2, +0x3ef2bedc), 4096);", // IID13510 - "__ orq(Address(r16, r17, (Address::ScaleFactor)0, -0x4683a994), 4096);", // IID13511 - "__ orq(Address(r17, r18, (Address::ScaleFactor)3, -0x33cfd470), 4096);", // IID13512 - "__ orq(Address(r18, r19, (Address::ScaleFactor)1, +0x96f1641), 4096);", // IID13513 - "__ orq(Address(r19, r20, (Address::ScaleFactor)2, +0x23d756ce), 4096);", // IID13514 - "__ orq(Address(r20, r21, (Address::ScaleFactor)0, -0xe6d3dc4), 4096);", // IID13515 - "__ orq(Address(r21, r22, (Address::ScaleFactor)2, +0x14027dd4), 4096);", // IID13516 - "__ orq(Address(r22, r23, (Address::ScaleFactor)0, -0x18c00960), 4096);", // IID13517 - "__ orq(Address(r23, r24, (Address::ScaleFactor)3, +0x6de692ac), 4096);", // IID13518 - "__ orq(Address(r24, r25, (Address::ScaleFactor)1, -0x2c6ac933), 4096);", // IID13519 - "__ orq(Address(r25, r26, (Address::ScaleFactor)0, +0x3dc036b2), 4096);", // IID13520 - "__ orq(Address(r26, r27, (Address::ScaleFactor)3, -0x47761c09), 4096);", // IID13521 - "__ orq(Address(r27, r28, (Address::ScaleFactor)0, +0x4efdd066), 4096);", // IID13522 - "__ orq(Address(r28, -0x5354dadc), 4096);", // IID13523 - "__ orq(Address(r29, r30, (Address::ScaleFactor)3, -0x77f14697), 4096);", // IID13524 - "__ orq(Address(r30, r31, (Address::ScaleFactor)0, +0x731c0b49), 4096);", // IID13525 - "__ orq(Address(r31, rcx, (Address::ScaleFactor)0, +0x5df8485a), 4096);", // IID13526 - "__ orq(Address(rcx, rdx, (Address::ScaleFactor)1, -0x1a47e526), 65536);", // IID13527 - "__ orq(Address(rdx, rbx, (Address::ScaleFactor)2, -0x12078ea9), 65536);", // IID13528 - "__ orq(Address(rbx, +0x5cd6689c), 65536);", // IID13529 - "__ orq(Address(r8, -0x3e451602), 65536);", // IID13530 - "__ orq(Address(r9, -0x11f9f851), 65536);", // IID13531 - "__ orq(Address(r10, r11, (Address::ScaleFactor)2, -0x7457d2d0), 65536);", // IID13532 - "__ orq(Address(r11, r12, (Address::ScaleFactor)2, -0xa476f02), 65536);", // IID13533 - "__ orq(Address(r12, +0x40e7693b), 65536);", // IID13534 - "__ orq(Address(r13, r14, (Address::ScaleFactor)3, +0x26cf75ed), 65536);", // IID13535 - "__ orq(Address(r14, r15, (Address::ScaleFactor)3, -0x7d6b23ce), 65536);", // IID13536 - "__ orq(Address(r15, r16, (Address::ScaleFactor)1, +0x4c5fc6b0), 65536);", // IID13537 - "__ orq(Address(r16, -0x5448b145), 65536);", // IID13538 - "__ orq(Address(r17, r18, (Address::ScaleFactor)0, +0x4e92a429), 65536);", // IID13539 - "__ orq(Address(r18, r19, (Address::ScaleFactor)1, -0x716dff45), 65536);", // IID13540 - "__ orq(Address(r19, r20, (Address::ScaleFactor)3, -0x4026a96), 65536);", // IID13541 - "__ orq(Address(r20, r21, (Address::ScaleFactor)3, +0x106d5928), 65536);", // IID13542 - "__ orq(Address(r21, +0x2e865ab5), 65536);", // IID13543 - "__ orq(Address(r22, r23, (Address::ScaleFactor)0, +0x1e033783), 65536);", // IID13544 - "__ orq(Address(r23, r24, (Address::ScaleFactor)1, -0x56ba1a6), 65536);", // IID13545 - "__ orq(Address(r24, r25, (Address::ScaleFactor)3, -0x37f08722), 65536);", // IID13546 - "__ orq(Address(r25, r26, (Address::ScaleFactor)1, +0x5006d6f0), 65536);", // IID13547 - "__ orq(Address(r26, r27, (Address::ScaleFactor)0, +0x4106fb0a), 65536);", // IID13548 - "__ orq(Address(r27, -0x6a32d5ec), 65536);", // IID13549 - "__ orq(Address(r28, -0x7502bb81), 65536);", // IID13550 - "__ orq(Address(r29, r30, (Address::ScaleFactor)1, +0x478a0a93), 65536);", // IID13551 - "__ orq(Address(r30, r31, (Address::ScaleFactor)3, -0x1aa16747), 65536);", // IID13552 - "__ orq(Address(r31, rcx, (Address::ScaleFactor)1, -0x7a7b2980), 65536);", // IID13553 - "__ orq(Address(rcx, rdx, (Address::ScaleFactor)3, -0x5662c996), 1048576);", // IID13554 - "__ orq(Address(rdx, +0x29d8ca52), 1048576);", // IID13555 - "__ orq(Address(rbx, r8, (Address::ScaleFactor)0, -0x2038f688), 1048576);", // IID13556 - "__ orq(Address(r8, r9, (Address::ScaleFactor)0, -0x6805d628), 1048576);", // IID13557 - "__ orq(Address(r9, r10, (Address::ScaleFactor)1, -0x5f2b74b), 1048576);", // IID13558 - "__ orq(Address(r10, r11, (Address::ScaleFactor)2, +0x7d2d9521), 1048576);", // IID13559 - "__ orq(Address(r11, r12, (Address::ScaleFactor)2, +0x6d9fae2d), 1048576);", // IID13560 - "__ orq(Address(r12, r13, (Address::ScaleFactor)3, +0x1b75535f), 1048576);", // IID13561 - "__ orq(Address(r13, -0xf3e280f), 1048576);", // IID13562 - "__ orq(Address(r14, r15, (Address::ScaleFactor)0, -0x76f975c5), 1048576);", // IID13563 - "__ orq(Address(r15, +0x67b87046), 1048576);", // IID13564 - "__ orq(Address(r16, r17, (Address::ScaleFactor)0, +0x8801129), 1048576);", // IID13565 - "__ orq(Address(r17, r18, (Address::ScaleFactor)2, +0x6b9dff41), 1048576);", // IID13566 - "__ orq(Address(r18, r19, (Address::ScaleFactor)0, -0x7a8d5ae1), 1048576);", // IID13567 - "__ orq(Address(r19, r20, (Address::ScaleFactor)3, +0x7c3b2838), 1048576);", // IID13568 - "__ orq(Address(r20, r21, (Address::ScaleFactor)3, -0x1699c06b), 1048576);", // IID13569 - "__ orq(Address(r21, r22, (Address::ScaleFactor)2, +0x7fb402a8), 1048576);", // IID13570 - "__ orq(Address(r22, r23, (Address::ScaleFactor)0, +0x735df769), 1048576);", // IID13571 - "__ orq(Address(r23, r24, (Address::ScaleFactor)2, -0x61e0fc20), 1048576);", // IID13572 - "__ orq(Address(r24, -0x17706424), 1048576);", // IID13573 - "__ orq(Address(r25, r26, (Address::ScaleFactor)3, -0x1426a41a), 1048576);", // IID13574 - "__ orq(Address(r26, r27, (Address::ScaleFactor)0, +0x1847b03f), 1048576);", // IID13575 - "__ orq(Address(r27, r28, (Address::ScaleFactor)3, -0x20842228), 1048576);", // IID13576 - "__ orq(Address(r28, r29, (Address::ScaleFactor)0, -0x69feda3e), 1048576);", // IID13577 - "__ orq(Address(r29, r30, (Address::ScaleFactor)3, +0x8b2fb94), 1048576);", // IID13578 - "__ orq(Address(r30, r31, (Address::ScaleFactor)0, -0x3dd75918), 1048576);", // IID13579 - "__ orq(Address(r31, rcx, (Address::ScaleFactor)2, +0x5a3695cd), 1048576);", // IID13580 - "__ orq(Address(rcx, rdx, (Address::ScaleFactor)2, -0x41ba757), 16777216);", // IID13581 - "__ orq(Address(rdx, rbx, (Address::ScaleFactor)0, +0x1cffdcf5), 16777216);", // IID13582 - "__ orq(Address(rbx, +0x20472db4), 16777216);", // IID13583 - "__ orq(Address(r8, r9, (Address::ScaleFactor)1, +0x797cb247), 16777216);", // IID13584 - "__ orq(Address(r9, r10, (Address::ScaleFactor)0, -0x4bd58d60), 16777216);", // IID13585 - "__ orq(Address(r10, -0xc32741c), 16777216);", // IID13586 - "__ orq(Address(r11, r12, (Address::ScaleFactor)1, -0x3aa7464e), 16777216);", // IID13587 - "__ orq(Address(r12, r13, (Address::ScaleFactor)1, +0x6dcc8708), 16777216);", // IID13588 - "__ orq(Address(r13, r14, (Address::ScaleFactor)2, -0x3fc8d80), 16777216);", // IID13589 - "__ orq(Address(r14, r15, (Address::ScaleFactor)2, -0x5e26090b), 16777216);", // IID13590 - "__ orq(Address(r15, r16, (Address::ScaleFactor)2, +0x7d60c956), 16777216);", // IID13591 - "__ orq(Address(r16, r17, (Address::ScaleFactor)0, -0x48326b60), 16777216);", // IID13592 - "__ orq(Address(r17, r18, (Address::ScaleFactor)1, -0x55744918), 16777216);", // IID13593 - "__ orq(Address(r18, r19, (Address::ScaleFactor)1, +0x307a7ed6), 16777216);", // IID13594 - "__ orq(Address(r19, r20, (Address::ScaleFactor)0, -0x52a1bb5d), 16777216);", // IID13595 - "__ orq(Address(r20, r21, (Address::ScaleFactor)1, -0x5010c1de), 16777216);", // IID13596 - "__ orq(Address(r21, r22, (Address::ScaleFactor)3, -0x17acb4af), 16777216);", // IID13597 - "__ orq(Address(r22, r23, (Address::ScaleFactor)1, -0x10aca418), 16777216);", // IID13598 - "__ orq(Address(r23, r24, (Address::ScaleFactor)1, +0x465856ed), 16777216);", // IID13599 - "__ orq(Address(r24, r25, (Address::ScaleFactor)0, +0x532394b7), 16777216);", // IID13600 - "__ orq(Address(r25, r26, (Address::ScaleFactor)0, -0x5a3b2457), 16777216);", // IID13601 - "__ orq(Address(r26, r27, (Address::ScaleFactor)3, +0x6c12679b), 16777216);", // IID13602 - "__ orq(Address(r27, -0x49754695), 16777216);", // IID13603 - "__ orq(Address(r28, -0x43cecca5), 16777216);", // IID13604 - "__ orq(Address(r29, r30, (Address::ScaleFactor)2, -0x4866c9df), 16777216);", // IID13605 - "__ orq(Address(r30, +0x7be2dc07), 16777216);", // IID13606 - "__ orq(Address(r31, rcx, (Address::ScaleFactor)3, +0x57d13fe4), 16777216);", // IID13607 - "__ orq(Address(rcx, rdx, (Address::ScaleFactor)3, -0x7d96f9bf), 268435456);", // IID13608 - "__ orq(Address(rdx, rbx, (Address::ScaleFactor)3, +0xd99ad39), 268435456);", // IID13609 - "__ orq(Address(rbx, r8, (Address::ScaleFactor)1, +0x74d63405), 268435456);", // IID13610 - "__ orq(Address(r8, -0x7c608086), 268435456);", // IID13611 - "__ orq(Address(r9, r10, (Address::ScaleFactor)1, +0x7c5e251d), 268435456);", // IID13612 - "__ orq(Address(r10, r11, (Address::ScaleFactor)1, -0x190dbd99), 268435456);", // IID13613 - "__ orq(Address(r11, +0x5f7fe7af), 268435456);", // IID13614 - "__ orq(Address(r12, +0x76dd953a), 268435456);", // IID13615 - "__ orq(Address(r13, r14, (Address::ScaleFactor)2, +0x64b9a2d9), 268435456);", // IID13616 - "__ orq(Address(r14, +0x70e666a8), 268435456);", // IID13617 - "__ orq(Address(r15, -0xbb8f8ae), 268435456);", // IID13618 - "__ orq(Address(r16, +0x3475b79a), 268435456);", // IID13619 - "__ orq(Address(r17, r18, (Address::ScaleFactor)0, -0x2a9d69f5), 268435456);", // IID13620 - "__ orq(Address(r18, r19, (Address::ScaleFactor)0, -0x56007571), 268435456);", // IID13621 - "__ orq(Address(r19, r20, (Address::ScaleFactor)0, -0x2797b796), 268435456);", // IID13622 - "__ orq(Address(r20, r21, (Address::ScaleFactor)2, -0x6100b67a), 268435456);", // IID13623 - "__ orq(Address(r21, r22, (Address::ScaleFactor)3, -0x464d3153), 268435456);", // IID13624 - "__ orq(Address(r22, r23, (Address::ScaleFactor)2, +0x4b480bc9), 268435456);", // IID13625 - "__ orq(Address(r23, -0x18632a2f), 268435456);", // IID13626 - "__ orq(Address(r24, r25, (Address::ScaleFactor)1, +0x6d1fada4), 268435456);", // IID13627 - "__ orq(Address(r25, r26, (Address::ScaleFactor)2, -0xaef749b), 268435456);", // IID13628 - "__ orq(Address(r26, +0x433abaf0), 268435456);", // IID13629 - "__ orq(Address(r27, r28, (Address::ScaleFactor)3, +0x253ae901), 268435456);", // IID13630 - "__ orq(Address(r28, r29, (Address::ScaleFactor)2, -0x1fab955), 268435456);", // IID13631 - "__ orq(Address(r29, r30, (Address::ScaleFactor)1, -0x56f272bb), 268435456);", // IID13632 - "__ orq(Address(r30, r31, (Address::ScaleFactor)0, -0x4d3d5f3b), 268435456);", // IID13633 - "__ orq(Address(r31, rcx, (Address::ScaleFactor)2, +0x1ec6d267), 268435456);", // IID13634 - "__ movq(Address(rcx, rdx, (Address::ScaleFactor)0, -0x68579c5f), 1);", // IID13635 - "__ movq(Address(rdx, rbx, (Address::ScaleFactor)0, +0x774e6938), 1);", // IID13636 - "__ movq(Address(rbx, r8, (Address::ScaleFactor)1, -0x27d4b947), 1);", // IID13637 - "__ movq(Address(r8, +0x34195419), 1);", // IID13638 - "__ movq(Address(r9, r10, (Address::ScaleFactor)2, -0x25b393e4), 1);", // IID13639 - "__ movq(Address(r10, r11, (Address::ScaleFactor)3, -0x5ba97f48), 1);", // IID13640 - "__ movq(Address(r11, r12, (Address::ScaleFactor)0, +0x552d2b04), 1);", // IID13641 - "__ movq(Address(r12, +0x4293dfa2), 1);", // IID13642 - "__ movq(Address(r13, r14, (Address::ScaleFactor)3, -0x5fd6f17a), 1);", // IID13643 - "__ movq(Address(r14, r15, (Address::ScaleFactor)1, +0x3f7102a1), 1);", // IID13644 - "__ movq(Address(r15, r16, (Address::ScaleFactor)1, -0x73c5df15), 1);", // IID13645 - "__ movq(Address(r16, r17, (Address::ScaleFactor)3, +0x743e863b), 1);", // IID13646 - "__ movq(Address(r17, +0x41816eb0), 1);", // IID13647 - "__ movq(Address(r18, r19, (Address::ScaleFactor)2, -0xb01cfe3), 1);", // IID13648 - "__ movq(Address(r19, r20, (Address::ScaleFactor)2, -0x25bbf3dc), 1);", // IID13649 - "__ movq(Address(r20, +0x625ed59d), 1);", // IID13650 - "__ movq(Address(r21, r22, (Address::ScaleFactor)3, +0x9ad3a38), 1);", // IID13651 - "__ movq(Address(r22, r23, (Address::ScaleFactor)1, -0x60c41de9), 1);", // IID13652 - "__ movq(Address(r23, r24, (Address::ScaleFactor)0, -0x7e13359d), 1);", // IID13653 - "__ movq(Address(r24, r25, (Address::ScaleFactor)1, -0x3c7b8bde), 1);", // IID13654 - "__ movq(Address(r25, r26, (Address::ScaleFactor)3, +0xdaee653), 1);", // IID13655 - "__ movq(Address(r26, r27, (Address::ScaleFactor)1, +0x76df13e7), 1);", // IID13656 - "__ movq(Address(r27, +0x5713b86d), 1);", // IID13657 - "__ movq(Address(r28, r29, (Address::ScaleFactor)2, +0x1bbc512a), 1);", // IID13658 - "__ movq(Address(r29, r30, (Address::ScaleFactor)2, +0x6fef29bb), 1);", // IID13659 - "__ movq(Address(r30, r31, (Address::ScaleFactor)3, +0x33e0207b), 1);", // IID13660 - "__ movq(Address(r31, rcx, (Address::ScaleFactor)3, +0x111be963), 1);", // IID13661 - "__ movq(Address(rcx, -0x39d787b8), 16);", // IID13662 - "__ movq(Address(rdx, rbx, (Address::ScaleFactor)3, +0x2d5e4fd), 16);", // IID13663 - "__ movq(Address(rbx, r8, (Address::ScaleFactor)0, -0x60d71d26), 16);", // IID13664 - "__ movq(Address(r8, r9, (Address::ScaleFactor)1, -0x58a5cf27), 16);", // IID13665 - "__ movq(Address(r9, +0x604592ba), 16);", // IID13666 - "__ movq(Address(r10, r11, (Address::ScaleFactor)2, -0x6ce5621), 16);", // IID13667 - "__ movq(Address(r11, r12, (Address::ScaleFactor)1, +0x7903975a), 16);", // IID13668 - "__ movq(Address(r12, r13, (Address::ScaleFactor)0, -0x7897a80a), 16);", // IID13669 - "__ movq(Address(r13, r14, (Address::ScaleFactor)2, +0x423b2d9d), 16);", // IID13670 - "__ movq(Address(r14, r15, (Address::ScaleFactor)3, -0x36c818dd), 16);", // IID13671 - "__ movq(Address(r15, +0x630f9b09), 16);", // IID13672 - "__ movq(Address(r16, r17, (Address::ScaleFactor)3, +0x5985cff6), 16);", // IID13673 - "__ movq(Address(r17, r18, (Address::ScaleFactor)3, +0x638607a9), 16);", // IID13674 - "__ movq(Address(r18, r19, (Address::ScaleFactor)0, +0x7575dad9), 16);", // IID13675 - "__ movq(Address(r19, r20, (Address::ScaleFactor)3, -0x7ea62ad4), 16);", // IID13676 - "__ movq(Address(r20, +0x5fba1f19), 16);", // IID13677 - "__ movq(Address(r21, -0x4f15e869), 16);", // IID13678 - "__ movq(Address(r22, r23, (Address::ScaleFactor)1, +0x6f10a7e9), 16);", // IID13679 - "__ movq(Address(r23, r24, (Address::ScaleFactor)0, +0x63c990f0), 16);", // IID13680 - "__ movq(Address(r24, r25, (Address::ScaleFactor)0, -0x180ee149), 16);", // IID13681 - "__ movq(Address(r25, r26, (Address::ScaleFactor)3, -0x19ae5843), 16);", // IID13682 - "__ movq(Address(r26, r27, (Address::ScaleFactor)3, +0x571f2e31), 16);", // IID13683 - "__ movq(Address(r27, +0x34bdb8fa), 16);", // IID13684 - "__ movq(Address(r28, r29, (Address::ScaleFactor)2, +0x7e31114a), 16);", // IID13685 - "__ movq(Address(r29, -0x372a6eb4), 16);", // IID13686 - "__ movq(Address(r30, r31, (Address::ScaleFactor)2, -0x4328810), 16);", // IID13687 - "__ movq(Address(r31, rcx, (Address::ScaleFactor)0, -0x55f6e9e7), 16);", // IID13688 - "__ movq(Address(rcx, rdx, (Address::ScaleFactor)0, -0x16dbcad), 256);", // IID13689 - "__ movq(Address(rdx, rbx, (Address::ScaleFactor)3, +0x6710ca79), 256);", // IID13690 - "__ movq(Address(rbx, r8, (Address::ScaleFactor)1, +0x6cdcb2f8), 256);", // IID13691 - "__ movq(Address(r8, r9, (Address::ScaleFactor)1, -0x26ef314d), 256);", // IID13692 - "__ movq(Address(r9, r10, (Address::ScaleFactor)2, +0x7293b43f), 256);", // IID13693 - "__ movq(Address(r10, r11, (Address::ScaleFactor)3, -0x7a7ceb55), 256);", // IID13694 - "__ movq(Address(r11, r12, (Address::ScaleFactor)0, -0x5cb99014), 256);", // IID13695 - "__ movq(Address(r12, +0x1a0eb5f1), 256);", // IID13696 - "__ movq(Address(r13, r14, (Address::ScaleFactor)1, -0x47ae92ec), 256);", // IID13697 - "__ movq(Address(r14, r15, (Address::ScaleFactor)0, +0x3c70bd57), 256);", // IID13698 - "__ movq(Address(r15, +0x7f172916), 256);", // IID13699 - "__ movq(Address(r16, r17, (Address::ScaleFactor)1, -0x744532ad), 256);", // IID13700 - "__ movq(Address(r17, r18, (Address::ScaleFactor)2, -0x4d37070e), 256);", // IID13701 - "__ movq(Address(r18, r19, (Address::ScaleFactor)0, +0x1e326b07), 256);", // IID13702 - "__ movq(Address(r19, r20, (Address::ScaleFactor)2, -0x7d27e514), 256);", // IID13703 - "__ movq(Address(r20, r21, (Address::ScaleFactor)1, -0x2ba07460), 256);", // IID13704 - "__ movq(Address(r21, r22, (Address::ScaleFactor)0, +0x441469d8), 256);", // IID13705 - "__ movq(Address(r22, r23, (Address::ScaleFactor)2, +0x336aca18), 256);", // IID13706 - "__ movq(Address(r23, r24, (Address::ScaleFactor)1, +0x1f3a1f95), 256);", // IID13707 - "__ movq(Address(r24, r25, (Address::ScaleFactor)2, -0x64699777), 256);", // IID13708 - "__ movq(Address(r25, r26, (Address::ScaleFactor)2, -0x32b28c4c), 256);", // IID13709 - "__ movq(Address(r26, r27, (Address::ScaleFactor)3, -0x4eed4b32), 256);", // IID13710 - "__ movq(Address(r27, r28, (Address::ScaleFactor)3, +0x3d5cad47), 256);", // IID13711 - "__ movq(Address(r28, r29, (Address::ScaleFactor)1, -0x15bbcca7), 256);", // IID13712 - "__ movq(Address(r29, r30, (Address::ScaleFactor)3, +0x54e643f7), 256);", // IID13713 - "__ movq(Address(r30, r31, (Address::ScaleFactor)3, +0x7454dc0a), 256);", // IID13714 - "__ movq(Address(r31, rcx, (Address::ScaleFactor)3, -0x4b9264d7), 256);", // IID13715 - "__ movq(Address(rcx, rdx, (Address::ScaleFactor)3, +0x4c3ff855), 4096);", // IID13716 - "__ movq(Address(rdx, -0x410bb665), 4096);", // IID13717 - "__ movq(Address(rbx, r8, (Address::ScaleFactor)1, +0x4ca245f), 4096);", // IID13718 - "__ movq(Address(r8, r9, (Address::ScaleFactor)3, +0x7a6dfc4e), 4096);", // IID13719 - "__ movq(Address(r9, r10, (Address::ScaleFactor)3, +0x6c944fd2), 4096);", // IID13720 - "__ movq(Address(r10, +0x4fd7938d), 4096);", // IID13721 - "__ movq(Address(r11, r12, (Address::ScaleFactor)1, -0x296d60e7), 4096);", // IID13722 - "__ movq(Address(r12, +0xc752b90), 4096);", // IID13723 - "__ movq(Address(r13, -0x659fd3a8), 4096);", // IID13724 - "__ movq(Address(r14, r15, (Address::ScaleFactor)3, +0x7c33a6d9), 4096);", // IID13725 - "__ movq(Address(r15, r16, (Address::ScaleFactor)1, -0x2910216), 4096);", // IID13726 - "__ movq(Address(r16, r17, (Address::ScaleFactor)2, -0x71efbb32), 4096);", // IID13727 - "__ movq(Address(r17, -0x1e48f2c), 4096);", // IID13728 - "__ movq(Address(r18, r19, (Address::ScaleFactor)0, -0x216b47a5), 4096);", // IID13729 - "__ movq(Address(r19, r20, (Address::ScaleFactor)3, -0x480408c3), 4096);", // IID13730 - "__ movq(Address(r20, r21, (Address::ScaleFactor)0, -0x10c712d0), 4096);", // IID13731 - "__ movq(Address(r21, +0xb0748e6), 4096);", // IID13732 - "__ movq(Address(r22, r23, (Address::ScaleFactor)1, +0x1912a1cc), 4096);", // IID13733 - "__ movq(Address(r23, r24, (Address::ScaleFactor)0, -0x1799a2ef), 4096);", // IID13734 - "__ movq(Address(r24, r25, (Address::ScaleFactor)0, +0x25b779d5), 4096);", // IID13735 - "__ movq(Address(r25, r26, (Address::ScaleFactor)1, +0x2b98fb01), 4096);", // IID13736 - "__ movq(Address(r26, r27, (Address::ScaleFactor)3, +0x29d8dde7), 4096);", // IID13737 - "__ movq(Address(r27, r28, (Address::ScaleFactor)1, -0x52a32264), 4096);", // IID13738 - "__ movq(Address(r28, +0x6cf50d2), 4096);", // IID13739 - "__ movq(Address(r29, r30, (Address::ScaleFactor)0, -0x52b61568), 4096);", // IID13740 - "__ movq(Address(r30, r31, (Address::ScaleFactor)1, -0x1db07c33), 4096);", // IID13741 - "__ movq(Address(r31, rcx, (Address::ScaleFactor)1, -0x4eb1ec2c), 4096);", // IID13742 - "__ movq(Address(rcx, rdx, (Address::ScaleFactor)3, -0x5b094dfa), 65536);", // IID13743 - "__ movq(Address(rdx, rbx, (Address::ScaleFactor)2, +0x5c760529), 65536);", // IID13744 - "__ movq(Address(rbx, r8, (Address::ScaleFactor)3, -0x4bc71490), 65536);", // IID13745 - "__ movq(Address(r8, +0x3257ddc6), 65536);", // IID13746 - "__ movq(Address(r9, r10, (Address::ScaleFactor)0, -0x5d393ac2), 65536);", // IID13747 - "__ movq(Address(r10, -0x1380c38e), 65536);", // IID13748 - "__ movq(Address(r11, r12, (Address::ScaleFactor)2, -0x149093b1), 65536);", // IID13749 - "__ movq(Address(r12, r13, (Address::ScaleFactor)3, +0x25f64978), 65536);", // IID13750 - "__ movq(Address(r13, r14, (Address::ScaleFactor)0, +0x4bf95d8c), 65536);", // IID13751 - "__ movq(Address(r14, -0x5749d7b1), 65536);", // IID13752 - "__ movq(Address(r15, r16, (Address::ScaleFactor)3, -0x1f5852f3), 65536);", // IID13753 - "__ movq(Address(r16, r17, (Address::ScaleFactor)2, +0x4f2780ca), 65536);", // IID13754 - "__ movq(Address(r17, +0x74db9885), 65536);", // IID13755 - "__ movq(Address(r18, +0x46020a67), 65536);", // IID13756 - "__ movq(Address(r19, r20, (Address::ScaleFactor)3, -0x13d8cef4), 65536);", // IID13757 - "__ movq(Address(r20, r21, (Address::ScaleFactor)3, -0x53b6a7e8), 65536);", // IID13758 - "__ movq(Address(r21, r22, (Address::ScaleFactor)1, -0x39610016), 65536);", // IID13759 - "__ movq(Address(r22, r23, (Address::ScaleFactor)1, -0x7a9ad627), 65536);", // IID13760 - "__ movq(Address(r23, r24, (Address::ScaleFactor)1, -0x3b2ec90), 65536);", // IID13761 - "__ movq(Address(r24, r25, (Address::ScaleFactor)3, +0x3f39ca47), 65536);", // IID13762 - "__ movq(Address(r25, r26, (Address::ScaleFactor)1, +0x58f3f7b7), 65536);", // IID13763 - "__ movq(Address(r26, +0x7abc97ce), 65536);", // IID13764 - "__ movq(Address(r27, r28, (Address::ScaleFactor)0, +0x45f91ecf), 65536);", // IID13765 - "__ movq(Address(r28, +0x6a71fed3), 65536);", // IID13766 - "__ movq(Address(r29, r30, (Address::ScaleFactor)0, +0x13a56b37), 65536);", // IID13767 - "__ movq(Address(r30, r31, (Address::ScaleFactor)0, -0x7ad4e8f4), 65536);", // IID13768 - "__ movq(Address(r31, rcx, (Address::ScaleFactor)1, -0x441b7997), 65536);", // IID13769 - "__ movq(Address(rcx, rdx, (Address::ScaleFactor)2, +0x4aaaa8ef), 1048576);", // IID13770 - "__ movq(Address(rdx, rbx, (Address::ScaleFactor)0, -0x4850b19c), 1048576);", // IID13771 - "__ movq(Address(rbx, r8, (Address::ScaleFactor)1, +0x505910b7), 1048576);", // IID13772 - "__ movq(Address(r8, +0x39d9b520), 1048576);", // IID13773 - "__ movq(Address(r9, r10, (Address::ScaleFactor)1, -0x6aa41362), 1048576);", // IID13774 - "__ movq(Address(r10, r11, (Address::ScaleFactor)1, -0x7505bf0b), 1048576);", // IID13775 - "__ movq(Address(r11, r12, (Address::ScaleFactor)0, -0x6c4a9f34), 1048576);", // IID13776 - "__ movq(Address(r12, r13, (Address::ScaleFactor)1, -0x57c92ce9), 1048576);", // IID13777 - "__ movq(Address(r13, r14, (Address::ScaleFactor)2, -0x78aafc4), 1048576);", // IID13778 - "__ movq(Address(r14, r15, (Address::ScaleFactor)2, -0x96d3f23), 1048576);", // IID13779 - "__ movq(Address(r15, -0x63b6de6e), 1048576);", // IID13780 - "__ movq(Address(r16, r17, (Address::ScaleFactor)3, +0x4a6911b3), 1048576);", // IID13781 - "__ movq(Address(r17, r18, (Address::ScaleFactor)1, +0x2ef7995c), 1048576);", // IID13782 - "__ movq(Address(r18, r19, (Address::ScaleFactor)2, -0x3bfc4f2c), 1048576);", // IID13783 - "__ movq(Address(r19, +0x39a7829d), 1048576);", // IID13784 - "__ movq(Address(r20, r21, (Address::ScaleFactor)2, +0x2c7fdbec), 1048576);", // IID13785 - "__ movq(Address(r21, r22, (Address::ScaleFactor)3, -0xb53addf), 1048576);", // IID13786 - "__ movq(Address(r22, +0x66cc5e10), 1048576);", // IID13787 - "__ movq(Address(r23, r24, (Address::ScaleFactor)2, -0x4468f96c), 1048576);", // IID13788 - "__ movq(Address(r24, r25, (Address::ScaleFactor)1, +0x413cdae0), 1048576);", // IID13789 - "__ movq(Address(r25, +0x5d1587e2), 1048576);", // IID13790 - "__ movq(Address(r26, +0x27073c1b), 1048576);", // IID13791 - "__ movq(Address(r27, -0x4d18f781), 1048576);", // IID13792 - "__ movq(Address(r28, r29, (Address::ScaleFactor)2, +0x691d94c9), 1048576);", // IID13793 - "__ movq(Address(r29, r30, (Address::ScaleFactor)2, -0x7dbf916b), 1048576);", // IID13794 - "__ movq(Address(r30, -0x3031db7c), 1048576);", // IID13795 - "__ movq(Address(r31, rcx, (Address::ScaleFactor)2, +0x694b5f00), 1048576);", // IID13796 - "__ movq(Address(rcx, +0x1564b9f8), 16777216);", // IID13797 - "__ movq(Address(rdx, rbx, (Address::ScaleFactor)2, +0x6dc8150c), 16777216);", // IID13798 - "__ movq(Address(rbx, r8, (Address::ScaleFactor)3, -0x53b6e120), 16777216);", // IID13799 - "__ movq(Address(r8, r9, (Address::ScaleFactor)0, -0x335c74ce), 16777216);", // IID13800 - "__ movq(Address(r9, r10, (Address::ScaleFactor)0, +0x3a7da230), 16777216);", // IID13801 - "__ movq(Address(r10, +0x5ef7fcaf), 16777216);", // IID13802 - "__ movq(Address(r11, r12, (Address::ScaleFactor)3, +0x38fd2027), 16777216);", // IID13803 - "__ movq(Address(r12, r13, (Address::ScaleFactor)0, -0x70e9cbf5), 16777216);", // IID13804 - "__ movq(Address(r13, +0x7204c91), 16777216);", // IID13805 - "__ movq(Address(r14, r15, (Address::ScaleFactor)0, +0x4f0b5cc3), 16777216);", // IID13806 - "__ movq(Address(r15, r16, (Address::ScaleFactor)2, -0x56721513), 16777216);", // IID13807 - "__ movq(Address(r16, r17, (Address::ScaleFactor)1, -0x6f5e667f), 16777216);", // IID13808 - "__ movq(Address(r17, r18, (Address::ScaleFactor)0, +0x329648a9), 16777216);", // IID13809 - "__ movq(Address(r18, r19, (Address::ScaleFactor)3, +0x6b06ae01), 16777216);", // IID13810 - "__ movq(Address(r19, r20, (Address::ScaleFactor)0, +0x19e27c0e), 16777216);", // IID13811 - "__ movq(Address(r20, +0x33a25a55), 16777216);", // IID13812 - "__ movq(Address(r21, r22, (Address::ScaleFactor)2, +0x33d72925), 16777216);", // IID13813 - "__ movq(Address(r22, r23, (Address::ScaleFactor)2, -0x1a81c530), 16777216);", // IID13814 - "__ movq(Address(r23, r24, (Address::ScaleFactor)0, +0x16670b1a), 16777216);", // IID13815 - "__ movq(Address(r24, +0x1edeaa70), 16777216);", // IID13816 - "__ movq(Address(r25, r26, (Address::ScaleFactor)3, +0x4605ef85), 16777216);", // IID13817 - "__ movq(Address(r26, r27, (Address::ScaleFactor)1, +0x4acd055), 16777216);", // IID13818 - "__ movq(Address(r27, r28, (Address::ScaleFactor)2, -0x595e10b2), 16777216);", // IID13819 - "__ movq(Address(r28, -0x299a7f05), 16777216);", // IID13820 - "__ movq(Address(r29, +0x7aa23a85), 16777216);", // IID13821 - "__ movq(Address(r30, r31, (Address::ScaleFactor)1, -0x56714bf8), 16777216);", // IID13822 - "__ movq(Address(r31, rcx, (Address::ScaleFactor)3, +0x19372c92), 16777216);", // IID13823 - "__ movq(Address(rcx, rdx, (Address::ScaleFactor)3, -0x74f5075a), 268435456);", // IID13824 - "__ movq(Address(rdx, rbx, (Address::ScaleFactor)3, +0x1e7445cd), 268435456);", // IID13825 - "__ movq(Address(rbx, r8, (Address::ScaleFactor)2, -0x51ff80e7), 268435456);", // IID13826 - "__ movq(Address(r8, +0x3507622f), 268435456);", // IID13827 - "__ movq(Address(r9, r10, (Address::ScaleFactor)0, -0x880ab9f), 268435456);", // IID13828 - "__ movq(Address(r10, r11, (Address::ScaleFactor)1, -0x2fa8fd9e), 268435456);", // IID13829 - "__ movq(Address(r11, +0x34562e5e), 268435456);", // IID13830 - "__ movq(Address(r12, r13, (Address::ScaleFactor)1, +0x6109811d), 268435456);", // IID13831 - "__ movq(Address(r13, r14, (Address::ScaleFactor)2, +0x2ba10e9e), 268435456);", // IID13832 - "__ movq(Address(r14, r15, (Address::ScaleFactor)3, -0x41bed125), 268435456);", // IID13833 - "__ movq(Address(r15, r16, (Address::ScaleFactor)0, -0x634c5150), 268435456);", // IID13834 - "__ movq(Address(r16, r17, (Address::ScaleFactor)3, -0x2098bdfa), 268435456);", // IID13835 - "__ movq(Address(r17, +0x315e8a76), 268435456);", // IID13836 - "__ movq(Address(r18, r19, (Address::ScaleFactor)3, +0x50e3ec7b), 268435456);", // IID13837 - "__ movq(Address(r19, -0x3369a43e), 268435456);", // IID13838 - "__ movq(Address(r20, r21, (Address::ScaleFactor)0, +0xec01e22), 268435456);", // IID13839 - "__ movq(Address(r21, r22, (Address::ScaleFactor)3, +0x2f8e2fb0), 268435456);", // IID13840 - "__ movq(Address(r22, +0x7b7e8ece), 268435456);", // IID13841 - "__ movq(Address(r23, r24, (Address::ScaleFactor)3, +0x143166), 268435456);", // IID13842 - "__ movq(Address(r24, r25, (Address::ScaleFactor)3, -0x27b33089), 268435456);", // IID13843 - "__ movq(Address(r25, r26, (Address::ScaleFactor)0, -0x78b1bd7f), 268435456);", // IID13844 - "__ movq(Address(r26, r27, (Address::ScaleFactor)0, +0x5b811b78), 268435456);", // IID13845 - "__ movq(Address(r27, r28, (Address::ScaleFactor)3, -0x3ff41850), 268435456);", // IID13846 - "__ movq(Address(r28, r29, (Address::ScaleFactor)3, +0x50fa432d), 268435456);", // IID13847 - "__ movq(Address(r29, r30, (Address::ScaleFactor)0, +0x6193931), 268435456);", // IID13848 - "__ movq(Address(r30, r31, (Address::ScaleFactor)1, -0x362509fb), 268435456);", // IID13849 - "__ movq(Address(r31, rcx, (Address::ScaleFactor)0, +0x9b039d0), 268435456);", // IID13850 - "__ testq(Address(rcx, +0x6fb7fb9d), -1);", // IID13851 - "__ testq(Address(rdx, +0x2aff8769), -1);", // IID13852 - "__ testq(Address(rbx, r8, (Address::ScaleFactor)2, -0x1f18123f), -1);", // IID13853 - "__ testq(Address(r8, r9, (Address::ScaleFactor)0, -0x518f80b6), -1);", // IID13854 - "__ testq(Address(r9, r10, (Address::ScaleFactor)3, -0x7c39244a), -1);", // IID13855 - "__ testq(Address(r10, r11, (Address::ScaleFactor)0, +0x284d8d2c), -1);", // IID13856 - "__ testq(Address(r11, r12, (Address::ScaleFactor)2, -0x62810296), -1);", // IID13857 - "__ testq(Address(r12, +0x51d0987d), -1);", // IID13858 - "__ testq(Address(r13, r14, (Address::ScaleFactor)2, -0x1c8c8a15), -1);", // IID13859 - "__ testq(Address(r14, r15, (Address::ScaleFactor)3, -0x494ff04f), -1);", // IID13860 - "__ testq(Address(r15, -0x7ed07170), -1);", // IID13861 - "__ testq(Address(r16, r17, (Address::ScaleFactor)2, +0x5a99aec2), -1);", // IID13862 - "__ testq(Address(r17, r18, (Address::ScaleFactor)2, -0x16ce8cf8), -1);", // IID13863 - "__ testq(Address(r18, r19, (Address::ScaleFactor)2, +0x7ec92746), -1);", // IID13864 - "__ testq(Address(r19, r20, (Address::ScaleFactor)0, +0x61411950), -1);", // IID13865 - "__ testq(Address(r20, r21, (Address::ScaleFactor)3, +0x44a45fcc), -1);", // IID13866 - "__ testq(Address(r21, -0x72b78625), -1);", // IID13867 - "__ testq(Address(r22, r23, (Address::ScaleFactor)1, +0x579dd54d), -1);", // IID13868 - "__ testq(Address(r23, r24, (Address::ScaleFactor)1, +0x66f9cd3), -1);", // IID13869 - "__ testq(Address(r24, r25, (Address::ScaleFactor)2, -0x50a45adc), -1);", // IID13870 - "__ testq(Address(r25, r26, (Address::ScaleFactor)2, +0x4efe3398), -1);", // IID13871 - "__ testq(Address(r26, r27, (Address::ScaleFactor)2, +0x7c35416f), -1);", // IID13872 - "__ testq(Address(r27, r28, (Address::ScaleFactor)2, +0x43dc780e), -1);", // IID13873 - "__ testq(Address(r28, r29, (Address::ScaleFactor)3, -0x42dffb8f), -1);", // IID13874 - "__ testq(Address(r29, r30, (Address::ScaleFactor)3, +0x26fb7be4), -1);", // IID13875 - "__ testq(Address(r30, r31, (Address::ScaleFactor)0, -0x5a48a3c6), -1);", // IID13876 - "__ testq(Address(r31, rcx, (Address::ScaleFactor)1, +0x5d914566), -1);", // IID13877 - "__ testq(Address(rcx, rdx, (Address::ScaleFactor)2, +0x4b5ce8a6), -16);", // IID13878 - "__ testq(Address(rdx, +0x723cccbf), -16);", // IID13879 - "__ testq(Address(rbx, r8, (Address::ScaleFactor)1, +0x6dd485), -16);", // IID13880 - "__ testq(Address(r8, r9, (Address::ScaleFactor)0, -0x7f425a8d), -16);", // IID13881 - "__ testq(Address(r9, r10, (Address::ScaleFactor)2, -0xbe397ce), -16);", // IID13882 - "__ testq(Address(r10, r11, (Address::ScaleFactor)2, +0x5904667e), -16);", // IID13883 - "__ testq(Address(r11, r12, (Address::ScaleFactor)0, -0x5fe85371), -16);", // IID13884 - "__ testq(Address(r12, r13, (Address::ScaleFactor)0, -0x6328afd1), -16);", // IID13885 - "__ testq(Address(r13, +0x2f78a7e7), -16);", // IID13886 - "__ testq(Address(r14, r15, (Address::ScaleFactor)1, +0x9e0588a), -16);", // IID13887 - "__ testq(Address(r15, -0x741da105), -16);", // IID13888 - "__ testq(Address(r16, r17, (Address::ScaleFactor)2, +0x6b584bf8), -16);", // IID13889 - "__ testq(Address(r17, r18, (Address::ScaleFactor)0, -0x41bc19e5), -16);", // IID13890 - "__ testq(Address(r18, +0x19611014), -16);", // IID13891 - "__ testq(Address(r19, r20, (Address::ScaleFactor)2, -0x471438d0), -16);", // IID13892 - "__ testq(Address(r20, r21, (Address::ScaleFactor)2, -0x4e348ff4), -16);", // IID13893 - "__ testq(Address(r21, r22, (Address::ScaleFactor)0, -0x285d78f5), -16);", // IID13894 - "__ testq(Address(r22, r23, (Address::ScaleFactor)2, -0x5e11a94), -16);", // IID13895 - "__ testq(Address(r23, r24, (Address::ScaleFactor)2, +0x2761d1), -16);", // IID13896 - "__ testq(Address(r24, r25, (Address::ScaleFactor)1, +0x1b621d6d), -16);", // IID13897 - "__ testq(Address(r25, r26, (Address::ScaleFactor)0, -0x6ed4ec56), -16);", // IID13898 - "__ testq(Address(r26, +0x38383365), -16);", // IID13899 - "__ testq(Address(r27, r28, (Address::ScaleFactor)1, +0x6ec2f894), -16);", // IID13900 - "__ testq(Address(r28, r29, (Address::ScaleFactor)1, -0x2d046ea8), -16);", // IID13901 - "__ testq(Address(r29, r30, (Address::ScaleFactor)0, +0x56c78a75), -16);", // IID13902 - "__ testq(Address(r30, r31, (Address::ScaleFactor)0, -0xa75988), -16);", // IID13903 - "__ testq(Address(r31, rcx, (Address::ScaleFactor)1, +0x30a6363a), -16);", // IID13904 - "__ testq(Address(rcx, -0x65f9501d), -256);", // IID13905 - "__ testq(Address(rdx, rbx, (Address::ScaleFactor)1, -0x690ee65e), -256);", // IID13906 - "__ testq(Address(rbx, r8, (Address::ScaleFactor)2, +0x4420c678), -256);", // IID13907 - "__ testq(Address(r8, r9, (Address::ScaleFactor)3, +0x408ed0db), -256);", // IID13908 - "__ testq(Address(r9, r10, (Address::ScaleFactor)2, +0x79556be), -256);", // IID13909 - "__ testq(Address(r10, r11, (Address::ScaleFactor)2, +0x5fdf14cf), -256);", // IID13910 - "__ testq(Address(r11, r12, (Address::ScaleFactor)0, -0x11a2e3df), -256);", // IID13911 - "__ testq(Address(r12, r13, (Address::ScaleFactor)3, +0x47c7412f), -256);", // IID13912 - "__ testq(Address(r13, +0x14002c65), -256);", // IID13913 - "__ testq(Address(r14, r15, (Address::ScaleFactor)0, +0x7de8315f), -256);", // IID13914 - "__ testq(Address(r15, r16, (Address::ScaleFactor)2, +0x14693db8), -256);", // IID13915 - "__ testq(Address(r16, r17, (Address::ScaleFactor)2, +0x4e0b3580), -256);", // IID13916 - "__ testq(Address(r17, r18, (Address::ScaleFactor)2, +0x77258883), -256);", // IID13917 - "__ testq(Address(r18, r19, (Address::ScaleFactor)0, -0x36d10a94), -256);", // IID13918 - "__ testq(Address(r19, r20, (Address::ScaleFactor)3, +0x7eaa97d1), -256);", // IID13919 - "__ testq(Address(r20, +0x6362415f), -256);", // IID13920 - "__ testq(Address(r21, r22, (Address::ScaleFactor)0, +0xdf0deca), -256);", // IID13921 - "__ testq(Address(r22, +0x3c1552ac), -256);", // IID13922 - "__ testq(Address(r23, r24, (Address::ScaleFactor)0, +0x3df3fc78), -256);", // IID13923 - "__ testq(Address(r24, -0x358acb46), -256);", // IID13924 - "__ testq(Address(r25, r26, (Address::ScaleFactor)1, -0x16cb75), -256);", // IID13925 - "__ testq(Address(r26, r27, (Address::ScaleFactor)1, +0x54f2b320), -256);", // IID13926 - "__ testq(Address(r27, r28, (Address::ScaleFactor)3, +0x598bc028), -256);", // IID13927 - "__ testq(Address(r28, r29, (Address::ScaleFactor)0, +0x2c3b8c4c), -256);", // IID13928 - "__ testq(Address(r29, r30, (Address::ScaleFactor)2, +0x6004c95b), -256);", // IID13929 - "__ testq(Address(r30, r31, (Address::ScaleFactor)1, -0x27a1516f), -256);", // IID13930 - "__ testq(Address(r31, rcx, (Address::ScaleFactor)1, +0x5866b775), -256);", // IID13931 - "__ testq(Address(rcx, +0x23e70512), -4096);", // IID13932 - "__ testq(Address(rdx, +0x1b4044d4), -4096);", // IID13933 - "__ testq(Address(rbx, +0x4e0b439c), -4096);", // IID13934 - "__ testq(Address(r8, r9, (Address::ScaleFactor)1, +0x359caf06), -4096);", // IID13935 - "__ testq(Address(r9, r10, (Address::ScaleFactor)1, -0x7c388032), -4096);", // IID13936 - "__ testq(Address(r10, -0x27ed109b), -4096);", // IID13937 - "__ testq(Address(r11, r12, (Address::ScaleFactor)0, -0x788cc030), -4096);", // IID13938 - "__ testq(Address(r12, r13, (Address::ScaleFactor)3, -0x28b86141), -4096);", // IID13939 - "__ testq(Address(r13, -0x7ab6de79), -4096);", // IID13940 - "__ testq(Address(r14, r15, (Address::ScaleFactor)3, -0x1c650099), -4096);", // IID13941 - "__ testq(Address(r15, r16, (Address::ScaleFactor)2, -0xd74fb15), -4096);", // IID13942 - "__ testq(Address(r16, r17, (Address::ScaleFactor)1, -0x5c3bbef8), -4096);", // IID13943 - "__ testq(Address(r17, +0x767f49cf), -4096);", // IID13944 - "__ testq(Address(r18, r19, (Address::ScaleFactor)2, -0x5af39fef), -4096);", // IID13945 - "__ testq(Address(r19, r20, (Address::ScaleFactor)1, -0x3a18dc3d), -4096);", // IID13946 - "__ testq(Address(r20, -0x9abe0d3), -4096);", // IID13947 - "__ testq(Address(r21, r22, (Address::ScaleFactor)3, -0x6eb799b2), -4096);", // IID13948 - "__ testq(Address(r22, +0x51df0269), -4096);", // IID13949 - "__ testq(Address(r23, r24, (Address::ScaleFactor)0, +0x517105a6), -4096);", // IID13950 - "__ testq(Address(r24, r25, (Address::ScaleFactor)1, +0xe0e60db), -4096);", // IID13951 - "__ testq(Address(r25, r26, (Address::ScaleFactor)0, -0x47d3dcb6), -4096);", // IID13952 - "__ testq(Address(r26, r27, (Address::ScaleFactor)2, +0x4d28efe4), -4096);", // IID13953 - "__ testq(Address(r27, +0x30b63358), -4096);", // IID13954 - "__ testq(Address(r28, r29, (Address::ScaleFactor)1, +0x35a0847a), -4096);", // IID13955 - "__ testq(Address(r29, r30, (Address::ScaleFactor)0, -0xebd0969), -4096);", // IID13956 - "__ testq(Address(r30, -0xbb13b57), -4096);", // IID13957 - "__ testq(Address(r31, rcx, (Address::ScaleFactor)3, -0x3591e1ee), -4096);", // IID13958 - "__ testq(Address(rcx, -0x76fe8a1f), -65536);", // IID13959 - "__ testq(Address(rdx, rbx, (Address::ScaleFactor)0, -0x5e88bb98), -65536);", // IID13960 - "__ testq(Address(rbx, r8, (Address::ScaleFactor)0, +0x523ef263), -65536);", // IID13961 - "__ testq(Address(r8, -0x8fbd838), -65536);", // IID13962 - "__ testq(Address(r9, r10, (Address::ScaleFactor)2, +0x2bb96cff), -65536);", // IID13963 - "__ testq(Address(r10, +0x7e42b8c), -65536);", // IID13964 - "__ testq(Address(r11, r12, (Address::ScaleFactor)3, +0x41a7d5d), -65536);", // IID13965 - "__ testq(Address(r12, r13, (Address::ScaleFactor)0, +0x2c7b0d01), -65536);", // IID13966 - "__ testq(Address(r13, r14, (Address::ScaleFactor)1, -0x189a8be8), -65536);", // IID13967 - "__ testq(Address(r14, r15, (Address::ScaleFactor)3, +0x66813a20), -65536);", // IID13968 - "__ testq(Address(r15, r16, (Address::ScaleFactor)0, +0x38506845), -65536);", // IID13969 - "__ testq(Address(r16, r17, (Address::ScaleFactor)2, -0x5822365f), -65536);", // IID13970 - "__ testq(Address(r17, r18, (Address::ScaleFactor)2, +0x793014f0), -65536);", // IID13971 - "__ testq(Address(r18, r19, (Address::ScaleFactor)0, -0x48f43cc3), -65536);", // IID13972 - "__ testq(Address(r19, r20, (Address::ScaleFactor)2, -0x69c4c7ee), -65536);", // IID13973 - "__ testq(Address(r20, r21, (Address::ScaleFactor)0, +0x7a27a034), -65536);", // IID13974 - "__ testq(Address(r21, r22, (Address::ScaleFactor)2, +0x5e3773d8), -65536);", // IID13975 - "__ testq(Address(r22, +0x59ef057b), -65536);", // IID13976 - "__ testq(Address(r23, +0x63230325), -65536);", // IID13977 - "__ testq(Address(r24, r25, (Address::ScaleFactor)1, +0x1f2d789), -65536);", // IID13978 - "__ testq(Address(r25, r26, (Address::ScaleFactor)3, -0x5e1a3b05), -65536);", // IID13979 - "__ testq(Address(r26, r27, (Address::ScaleFactor)1, -0x326e5c3b), -65536);", // IID13980 - "__ testq(Address(r27, r28, (Address::ScaleFactor)1, +0x7c664925), -65536);", // IID13981 - "__ testq(Address(r28, -0x55d9a8eb), -65536);", // IID13982 - "__ testq(Address(r29, r30, (Address::ScaleFactor)2, -0x65b450), -65536);", // IID13983 - "__ testq(Address(r30, -0x1592c48), -65536);", // IID13984 - "__ testq(Address(r31, rcx, (Address::ScaleFactor)0, +0x7dd4de25), -65536);", // IID13985 - "__ testq(Address(rcx, rdx, (Address::ScaleFactor)3, -0x3e416057), -1048576);", // IID13986 - "__ testq(Address(rdx, rbx, (Address::ScaleFactor)0, +0x1b54d299), -1048576);", // IID13987 - "__ testq(Address(rbx, r8, (Address::ScaleFactor)1, +0x1f1df6bb), -1048576);", // IID13988 - "__ testq(Address(r8, r9, (Address::ScaleFactor)2, +0xa1d057c), -1048576);", // IID13989 - "__ testq(Address(r9, r10, (Address::ScaleFactor)1, +0x1b902503), -1048576);", // IID13990 - "__ testq(Address(r10, r11, (Address::ScaleFactor)3, -0x4dbf9d80), -1048576);", // IID13991 - "__ testq(Address(r11, -0x8cc2eb8), -1048576);", // IID13992 - "__ testq(Address(r12, r13, (Address::ScaleFactor)3, -0x28d5ab58), -1048576);", // IID13993 - "__ testq(Address(r13, r14, (Address::ScaleFactor)3, -0x19a8ce7f), -1048576);", // IID13994 - "__ testq(Address(r14, +0x95cfe62), -1048576);", // IID13995 - "__ testq(Address(r15, r16, (Address::ScaleFactor)1, +0x32d790a8), -1048576);", // IID13996 - "__ testq(Address(r16, r17, (Address::ScaleFactor)2, +0x44b5ef81), -1048576);", // IID13997 - "__ testq(Address(r17, r18, (Address::ScaleFactor)0, +0x7c2a140f), -1048576);", // IID13998 - "__ testq(Address(r18, r19, (Address::ScaleFactor)0, +0x200e4399), -1048576);", // IID13999 - "__ testq(Address(r19, -0xbe3b3e0), -1048576);", // IID14000 - "__ testq(Address(r20, r21, (Address::ScaleFactor)0, +0x1f80c7c1), -1048576);", // IID14001 - "__ testq(Address(r21, r22, (Address::ScaleFactor)0, +0x145c10fd), -1048576);", // IID14002 - "__ testq(Address(r22, r23, (Address::ScaleFactor)1, -0x4c6daced), -1048576);", // IID14003 - "__ testq(Address(r23, r24, (Address::ScaleFactor)3, -0x726c63a0), -1048576);", // IID14004 - "__ testq(Address(r24, r25, (Address::ScaleFactor)3, -0x5c668b4a), -1048576);", // IID14005 - "__ testq(Address(r25, r26, (Address::ScaleFactor)2, -0x7d15dc6), -1048576);", // IID14006 - "__ testq(Address(r26, r27, (Address::ScaleFactor)1, -0x4f98736b), -1048576);", // IID14007 - "__ testq(Address(r27, r28, (Address::ScaleFactor)3, +0x5244ff1b), -1048576);", // IID14008 - "__ testq(Address(r28, r29, (Address::ScaleFactor)2, +0x7de59e06), -1048576);", // IID14009 - "__ testq(Address(r29, r30, (Address::ScaleFactor)3, +0x78b1860b), -1048576);", // IID14010 - "__ testq(Address(r30, r31, (Address::ScaleFactor)2, +0x40e9116b), -1048576);", // IID14011 - "__ testq(Address(r31, rcx, (Address::ScaleFactor)1, -0x609cd5e0), -1048576);", // IID14012 - "__ testq(Address(rcx, rdx, (Address::ScaleFactor)1, -0x16cd816f), -16777216);", // IID14013 - "__ testq(Address(rdx, rbx, (Address::ScaleFactor)0, +0x4bf0a139), -16777216);", // IID14014 - "__ testq(Address(rbx, r8, (Address::ScaleFactor)0, -0x48dfbc4a), -16777216);", // IID14015 - "__ testq(Address(r8, r9, (Address::ScaleFactor)3, -0x3419960c), -16777216);", // IID14016 - "__ testq(Address(r9, r10, (Address::ScaleFactor)0, +0x20f0870e), -16777216);", // IID14017 - "__ testq(Address(r10, r11, (Address::ScaleFactor)0, -0x76a923c4), -16777216);", // IID14018 - "__ testq(Address(r11, r12, (Address::ScaleFactor)0, +0x1f52440e), -16777216);", // IID14019 - "__ testq(Address(r12, r13, (Address::ScaleFactor)3, -0xac8991), -16777216);", // IID14020 - "__ testq(Address(r13, r14, (Address::ScaleFactor)1, +0x43805ba1), -16777216);", // IID14021 - "__ testq(Address(r14, +0x43f54206), -16777216);", // IID14022 - "__ testq(Address(r15, r16, (Address::ScaleFactor)1, +0x772b17c), -16777216);", // IID14023 - "__ testq(Address(r16, r17, (Address::ScaleFactor)2, -0x569b56d3), -16777216);", // IID14024 - "__ testq(Address(r17, r18, (Address::ScaleFactor)1, +0x3b2e2759), -16777216);", // IID14025 - "__ testq(Address(r18, r19, (Address::ScaleFactor)2, +0x3f14ef33), -16777216);", // IID14026 - "__ testq(Address(r19, r20, (Address::ScaleFactor)0, -0x23f096ed), -16777216);", // IID14027 - "__ testq(Address(r20, -0x57c63562), -16777216);", // IID14028 - "__ testq(Address(r21, r22, (Address::ScaleFactor)1, +0xffedff9), -16777216);", // IID14029 - "__ testq(Address(r22, r23, (Address::ScaleFactor)0, +0x47d31ee4), -16777216);", // IID14030 - "__ testq(Address(r23, +0x691cacdd), -16777216);", // IID14031 - "__ testq(Address(r24, r25, (Address::ScaleFactor)0, +0x398c246c), -16777216);", // IID14032 - "__ testq(Address(r25, r26, (Address::ScaleFactor)1, +0x40655ff4), -16777216);", // IID14033 - "__ testq(Address(r26, r27, (Address::ScaleFactor)2, +0x6f1c2d2d), -16777216);", // IID14034 - "__ testq(Address(r27, r28, (Address::ScaleFactor)2, +0x7ddf4078), -16777216);", // IID14035 - "__ testq(Address(r28, r29, (Address::ScaleFactor)0, -0x18808f1d), -16777216);", // IID14036 - "__ testq(Address(r29, r30, (Address::ScaleFactor)1, -0x21bc5ba7), -16777216);", // IID14037 - "__ testq(Address(r30, -0x5b4c6838), -16777216);", // IID14038 - "__ testq(Address(r31, rcx, (Address::ScaleFactor)1, -0x242f218d), -16777216);", // IID14039 - "__ testq(Address(rcx, rdx, (Address::ScaleFactor)2, +0x13e77226), -268435456);", // IID14040 - "__ testq(Address(rdx, +0x5ce7e5fe), -268435456);", // IID14041 - "__ testq(Address(rbx, r8, (Address::ScaleFactor)3, +0x1f8aae12), -268435456);", // IID14042 - "__ testq(Address(r8, r9, (Address::ScaleFactor)1, -0xbed6ee3), -268435456);", // IID14043 - "__ testq(Address(r9, r10, (Address::ScaleFactor)1, +0x48761492), -268435456);", // IID14044 - "__ testq(Address(r10, r11, (Address::ScaleFactor)1, -0x497d3a1a), -268435456);", // IID14045 - "__ testq(Address(r11, r12, (Address::ScaleFactor)2, -0x3258a64), -268435456);", // IID14046 - "__ testq(Address(r12, r13, (Address::ScaleFactor)1, -0x4fcc6807), -268435456);", // IID14047 - "__ testq(Address(r13, r14, (Address::ScaleFactor)2, -0x539ee5), -268435456);", // IID14048 - "__ testq(Address(r14, r15, (Address::ScaleFactor)1, +0x672c520a), -268435456);", // IID14049 - "__ testq(Address(r15, +0x4be2df99), -268435456);", // IID14050 - "__ testq(Address(r16, r17, (Address::ScaleFactor)3, -0x1be02850), -268435456);", // IID14051 - "__ testq(Address(r17, r18, (Address::ScaleFactor)3, -0x722b0a24), -268435456);", // IID14052 - "__ testq(Address(r18, r19, (Address::ScaleFactor)2, +0x1968eff4), -268435456);", // IID14053 - "__ testq(Address(r19, r20, (Address::ScaleFactor)3, +0x329fb3b0), -268435456);", // IID14054 - "__ testq(Address(r20, r21, (Address::ScaleFactor)2, -0x5111dde8), -268435456);", // IID14055 - "__ testq(Address(r21, r22, (Address::ScaleFactor)3, +0x2ddbe1c8), -268435456);", // IID14056 - "__ testq(Address(r22, r23, (Address::ScaleFactor)1, +0x28f22716), -268435456);", // IID14057 - "__ testq(Address(r23, r24, (Address::ScaleFactor)2, -0x6f10e870), -268435456);", // IID14058 - "__ testq(Address(r24, r25, (Address::ScaleFactor)0, +0x45fb3890), -268435456);", // IID14059 - "__ testq(Address(r25, r26, (Address::ScaleFactor)1, -0x704270f9), -268435456);", // IID14060 - "__ testq(Address(r26, +0x204e4174), -268435456);", // IID14061 - "__ testq(Address(r27, r28, (Address::ScaleFactor)0, -0x355e8836), -268435456);", // IID14062 - "__ testq(Address(r28, r29, (Address::ScaleFactor)2, -0xf8ac483), -268435456);", // IID14063 - "__ testq(Address(r29, r30, (Address::ScaleFactor)0, -0x76e39043), -268435456);", // IID14064 - "__ testq(Address(r30, r31, (Address::ScaleFactor)1, +0x38d57e6), -268435456);", // IID14065 - "__ testq(Address(r31, rcx, (Address::ScaleFactor)1, -0x227cd97f), -268435456);", // IID14066 - "__ addq(rcx, Address(rdx, rbx, (Address::ScaleFactor)3, +0x452bd2c2));", // IID14067 - "__ addq(rdx, Address(rbx, r8, (Address::ScaleFactor)2, +0x33e1b2cc));", // IID14068 - "__ addq(rbx, Address(r8, r9, (Address::ScaleFactor)2, +0x2883b44b));", // IID14069 - "__ addq(r8, Address(r9, r10, (Address::ScaleFactor)0, +0x5987e8e8));", // IID14070 - "__ addq(r9, Address(r10, r11, (Address::ScaleFactor)2, -0x23760fb2));", // IID14071 - "__ addq(r10, Address(r11, +0x2837174a));", // IID14072 - "__ addq(r11, Address(r12, +0x21a907da));", // IID14073 - "__ addq(r12, Address(r13, r14, (Address::ScaleFactor)1, -0x649fc58a));", // IID14074 - "__ addq(r13, Address(r14, +0x78e18ad0));", // IID14075 - "__ addq(r14, Address(r15, r16, (Address::ScaleFactor)2, -0x2b78cd30));", // IID14076 - "__ addq(r15, Address(r16, r17, (Address::ScaleFactor)2, +0x452d6951));", // IID14077 - "__ addq(r16, Address(r17, r18, (Address::ScaleFactor)3, +0x6a4ed6a8));", // IID14078 - "__ addq(r17, Address(r18, r19, (Address::ScaleFactor)1, +0x3748926c));", // IID14079 - "__ addq(r18, Address(r19, r20, (Address::ScaleFactor)2, -0x686b2f9d));", // IID14080 - "__ addq(r19, Address(r20, r21, (Address::ScaleFactor)2, -0x3f91f6a4));", // IID14081 - "__ addq(r20, Address(r21, r22, (Address::ScaleFactor)3, +0x7730c36c));", // IID14082 - "__ addq(r21, Address(r22, r23, (Address::ScaleFactor)0, +0x67efce7d));", // IID14083 - "__ addq(r22, Address(r23, r24, (Address::ScaleFactor)3, +0x379044f));", // IID14084 - "__ addq(r23, Address(r24, r25, (Address::ScaleFactor)0, -0x726d39a7));", // IID14085 - "__ addq(r24, Address(r25, r26, (Address::ScaleFactor)3, -0x78657db6));", // IID14086 - "__ addq(r25, Address(r26, r27, (Address::ScaleFactor)2, +0x3a6dc6f5));", // IID14087 - "__ addq(r26, Address(r27, r28, (Address::ScaleFactor)0, +0x2f27025f));", // IID14088 - "__ addq(r27, Address(r28, r29, (Address::ScaleFactor)1, -0x2661de8f));", // IID14089 - "__ addq(r28, Address(r29, +0x2e12da7c));", // IID14090 - "__ addq(r29, Address(r30, +0x6938d77d));", // IID14091 - "__ addq(r30, Address(r31, rcx, (Address::ScaleFactor)3, -0x612c73ff));", // IID14092 - "__ addq(r31, Address(rcx, -0x428b8f6e));", // IID14093 - "__ andq(rcx, Address(rdx, rbx, (Address::ScaleFactor)0, -0x6253b645));", // IID14094 - "__ andq(rdx, Address(rbx, r8, (Address::ScaleFactor)2, +0x5e92fd1a));", // IID14095 - "__ andq(rbx, Address(r8, r9, (Address::ScaleFactor)0, +0x2acfe5bf));", // IID14096 - "__ andq(r8, Address(r9, r10, (Address::ScaleFactor)2, -0x1760feec));", // IID14097 - "__ andq(r9, Address(r10, r11, (Address::ScaleFactor)1, -0x1268492b));", // IID14098 - "__ andq(r10, Address(r11, r12, (Address::ScaleFactor)3, -0xb987a74));", // IID14099 - "__ andq(r11, Address(r12, r13, (Address::ScaleFactor)0, +0x1f61006b));", // IID14100 - "__ andq(r12, Address(r13, +0x4c7fc289));", // IID14101 - "__ andq(r13, Address(r14, r15, (Address::ScaleFactor)3, -0x40752a1f));", // IID14102 - "__ andq(r14, Address(r15, r16, (Address::ScaleFactor)2, +0x70a28b49));", // IID14103 - "__ andq(r15, Address(r16, r17, (Address::ScaleFactor)1, +0x236c2adc));", // IID14104 - "__ andq(r16, Address(r17, r18, (Address::ScaleFactor)3, -0x61485050));", // IID14105 - "__ andq(r17, Address(r18, r19, (Address::ScaleFactor)2, -0x321125c2));", // IID14106 - "__ andq(r18, Address(r19, +0x7283ba4e));", // IID14107 - "__ andq(r19, Address(r20, r21, (Address::ScaleFactor)0, +0x406c89de));", // IID14108 - "__ andq(r20, Address(r21, r22, (Address::ScaleFactor)0, +0x5113444));", // IID14109 - "__ andq(r21, Address(r22, r23, (Address::ScaleFactor)1, -0x5bc73b4f));", // IID14110 - "__ andq(r22, Address(r23, r24, (Address::ScaleFactor)0, -0x693f4a24));", // IID14111 - "__ andq(r23, Address(r24, -0x3a932400));", // IID14112 - "__ andq(r24, Address(r25, r26, (Address::ScaleFactor)2, -0x310712de));", // IID14113 - "__ andq(r25, Address(r26, r27, (Address::ScaleFactor)3, +0x6e56ae49));", // IID14114 - "__ andq(r26, Address(r27, r28, (Address::ScaleFactor)3, +0x4050ddbc));", // IID14115 - "__ andq(r27, Address(r28, -0x64f6a1b2));", // IID14116 - "__ andq(r28, Address(r29, r30, (Address::ScaleFactor)2, -0x478b9e13));", // IID14117 - "__ andq(r29, Address(r30, r31, (Address::ScaleFactor)2, -0x6736e659));", // IID14118 - "__ andq(r30, Address(r31, +0x21464732));", // IID14119 - "__ andq(r31, Address(rcx, rdx, (Address::ScaleFactor)2, +0x2638d36f));", // IID14120 - "__ cmpq(rcx, Address(rdx, rbx, (Address::ScaleFactor)3, +0x15b74adf));", // IID14121 - "__ cmpq(rdx, Address(rbx, r8, (Address::ScaleFactor)0, -0x2c12d102));", // IID14122 - "__ cmpq(rbx, Address(r8, r9, (Address::ScaleFactor)0, +0x792481c2));", // IID14123 - "__ cmpq(r8, Address(r9, r10, (Address::ScaleFactor)1, -0x47cccabb));", // IID14124 - "__ cmpq(r9, Address(r10, r11, (Address::ScaleFactor)0, -0x3161a6e1));", // IID14125 - "__ cmpq(r10, Address(r11, r12, (Address::ScaleFactor)3, -0xd1bd7d8));", // IID14126 - "__ cmpq(r11, Address(r12, r13, (Address::ScaleFactor)2, +0x6f3bea8a));", // IID14127 - "__ cmpq(r12, Address(r13, r14, (Address::ScaleFactor)2, +0x2c50d695));", // IID14128 - "__ cmpq(r13, Address(r14, r15, (Address::ScaleFactor)2, +0x1fef1425));", // IID14129 - "__ cmpq(r14, Address(r15, r16, (Address::ScaleFactor)2, -0x16008567));", // IID14130 - "__ cmpq(r15, Address(r16, +0x2163a1e2));", // IID14131 - "__ cmpq(r16, Address(r17, r18, (Address::ScaleFactor)2, +0x337a6178));", // IID14132 - "__ cmpq(r17, Address(r18, +0x77347e6));", // IID14133 - "__ cmpq(r18, Address(r19, r20, (Address::ScaleFactor)3, -0x2465f8b));", // IID14134 - "__ cmpq(r19, Address(r20, +0x63a6ad01));", // IID14135 - "__ cmpq(r20, Address(r21, r22, (Address::ScaleFactor)1, +0x5dee7a7c));", // IID14136 - "__ cmpq(r21, Address(r22, r23, (Address::ScaleFactor)0, +0x38842d08));", // IID14137 - "__ cmpq(r22, Address(r23, r24, (Address::ScaleFactor)2, -0x630a872e));", // IID14138 - "__ cmpq(r23, Address(r24, r25, (Address::ScaleFactor)0, -0x5235587f));", // IID14139 - "__ cmpq(r24, Address(r25, r26, (Address::ScaleFactor)2, -0x2a3d5561));", // IID14140 - "__ cmpq(r25, Address(r26, r27, (Address::ScaleFactor)1, -0x5314a34a));", // IID14141 - "__ cmpq(r26, Address(r27, -0x671fb30f));", // IID14142 - "__ cmpq(r27, Address(r28, r29, (Address::ScaleFactor)3, +0x7f298749));", // IID14143 - "__ cmpq(r28, Address(r29, r30, (Address::ScaleFactor)2, -0x3641ab3c));", // IID14144 - "__ cmpq(r29, Address(r30, r31, (Address::ScaleFactor)1, -0x1d60acf7));", // IID14145 - "__ cmpq(r30, Address(r31, rcx, (Address::ScaleFactor)3, -0xfe63dab));", // IID14146 - "__ cmpq(r31, Address(rcx, rdx, (Address::ScaleFactor)0, -0x75bf234e));", // IID14147 - "__ lzcntq(rcx, Address(rdx, rbx, (Address::ScaleFactor)0, +0x602aa32d));", // IID14148 - "__ lzcntq(rdx, Address(rbx, -0x6cbf6d63));", // IID14149 - "__ lzcntq(rbx, Address(r8, r9, (Address::ScaleFactor)0, -0x455aa377));", // IID14150 - "__ lzcntq(r8, Address(r9, -0x3d01ce3e));", // IID14151 - "__ lzcntq(r9, Address(r10, r11, (Address::ScaleFactor)0, -0x576f8e9a));", // IID14152 - "__ lzcntq(r10, Address(r11, r12, (Address::ScaleFactor)2, -0x4ba54ef4));", // IID14153 - "__ lzcntq(r11, Address(r12, r13, (Address::ScaleFactor)2, +0x1665ebe2));", // IID14154 - "__ lzcntq(r12, Address(r13, r14, (Address::ScaleFactor)2, +0x3bb339d1));", // IID14155 - "__ lzcntq(r13, Address(r14, r15, (Address::ScaleFactor)0, +0x529e6182));", // IID14156 - "__ lzcntq(r14, Address(r15, r16, (Address::ScaleFactor)0, -0x1f0e8f71));", // IID14157 - "__ lzcntq(r15, Address(r16, r17, (Address::ScaleFactor)0, +0x287741a3));", // IID14158 - "__ lzcntq(r16, Address(r17, r18, (Address::ScaleFactor)3, -0x3bae21f2));", // IID14159 - "__ lzcntq(r17, Address(r18, r19, (Address::ScaleFactor)1, -0x7f2e28c3));", // IID14160 - "__ lzcntq(r18, Address(r19, r20, (Address::ScaleFactor)3, -0x47b0db7d));", // IID14161 - "__ lzcntq(r19, Address(r20, r21, (Address::ScaleFactor)1, -0x78a71238));", // IID14162 - "__ lzcntq(r20, Address(r21, r22, (Address::ScaleFactor)3, +0x6a47565b));", // IID14163 - "__ lzcntq(r21, Address(r22, r23, (Address::ScaleFactor)3, -0x40a6ce80));", // IID14164 - "__ lzcntq(r22, Address(r23, -0xf23f54d));", // IID14165 - "__ lzcntq(r23, Address(r24, r25, (Address::ScaleFactor)1, +0x3d7f908c));", // IID14166 - "__ lzcntq(r24, Address(r25, r26, (Address::ScaleFactor)2, +0x11006e65));", // IID14167 - "__ lzcntq(r25, Address(r26, r27, (Address::ScaleFactor)1, +0x7b8b8838));", // IID14168 - "__ lzcntq(r26, Address(r27, r28, (Address::ScaleFactor)1, -0x684b2650));", // IID14169 - "__ lzcntq(r27, Address(r28, r29, (Address::ScaleFactor)2, -0x790d23e6));", // IID14170 - "__ lzcntq(r28, Address(r29, r30, (Address::ScaleFactor)1, -0x6cfcbede));", // IID14171 - "__ lzcntq(r29, Address(r30, r31, (Address::ScaleFactor)1, +0x41af797b));", // IID14172 - "__ lzcntq(r30, Address(r31, +0x3a9841cc));", // IID14173 - "__ lzcntq(r31, Address(rcx, rdx, (Address::ScaleFactor)0, +0x7ec466a0));", // IID14174 - "__ orq(rcx, Address(rdx, rbx, (Address::ScaleFactor)3, -0x20d792ac));", // IID14175 - "__ orq(rdx, Address(rbx, r8, (Address::ScaleFactor)2, +0x6f71c92));", // IID14176 - "__ orq(rbx, Address(r8, r9, (Address::ScaleFactor)2, -0x21ff4429));", // IID14177 - "__ orq(r8, Address(r9, r10, (Address::ScaleFactor)3, +0x520fa94d));", // IID14178 - "__ orq(r9, Address(r10, r11, (Address::ScaleFactor)3, +0x26d156e));", // IID14179 - "__ orq(r10, Address(r11, r12, (Address::ScaleFactor)2, +0x52501f8e));", // IID14180 - "__ orq(r11, Address(r12, -0x403de061));", // IID14181 - "__ orq(r12, Address(r13, r14, (Address::ScaleFactor)2, -0x3d0e87d1));", // IID14182 - "__ orq(r13, Address(r14, r15, (Address::ScaleFactor)2, +0x18f0434b));", // IID14183 - "__ orq(r14, Address(r15, r16, (Address::ScaleFactor)3, -0x154093cf));", // IID14184 - "__ orq(r15, Address(r16, -0x39c5612c));", // IID14185 - "__ orq(r16, Address(r17, r18, (Address::ScaleFactor)3, +0x60fc118f));", // IID14186 - "__ orq(r17, Address(r18, r19, (Address::ScaleFactor)3, +0x15294c64));", // IID14187 - "__ orq(r18, Address(r19, r20, (Address::ScaleFactor)2, -0x360ed9bb));", // IID14188 - "__ orq(r19, Address(r20, r21, (Address::ScaleFactor)2, -0x7b211d0c));", // IID14189 - "__ orq(r20, Address(r21, r22, (Address::ScaleFactor)2, -0x3cc23de));", // IID14190 - "__ orq(r21, Address(r22, r23, (Address::ScaleFactor)2, +0x1e10b87a));", // IID14191 - "__ orq(r22, Address(r23, +0x2b8b8d8f));", // IID14192 - "__ orq(r23, Address(r24, r25, (Address::ScaleFactor)0, +0x16873e29));", // IID14193 - "__ orq(r24, Address(r25, r26, (Address::ScaleFactor)2, +0x6b44fcb9));", // IID14194 - "__ orq(r25, Address(r26, r27, (Address::ScaleFactor)2, +0x6fc6a3f6));", // IID14195 - "__ orq(r26, Address(r27, r28, (Address::ScaleFactor)2, +0x6160471d));", // IID14196 - "__ orq(r27, Address(r28, r29, (Address::ScaleFactor)1, -0x284f5ba5));", // IID14197 - "__ orq(r28, Address(r29, r30, (Address::ScaleFactor)1, -0x638d277));", // IID14198 - "__ orq(r29, Address(r30, r31, (Address::ScaleFactor)2, -0xc2fe9ba));", // IID14199 - "__ orq(r30, Address(r31, rcx, (Address::ScaleFactor)3, -0x7dc07622));", // IID14200 - "__ orq(r31, Address(rcx, rdx, (Address::ScaleFactor)2, -0x488067));", // IID14201 - "__ adcq(rcx, Address(rdx, rbx, (Address::ScaleFactor)1, +0x56808ad2));", // IID14202 - "__ adcq(rdx, Address(rbx, r8, (Address::ScaleFactor)3, -0x7144f8a3));", // IID14203 - "__ adcq(rbx, Address(r8, r9, (Address::ScaleFactor)1, -0x1d3135a6));", // IID14204 - "__ adcq(r8, Address(r9, r10, (Address::ScaleFactor)3, +0x7ef5b10e));", // IID14205 - "__ adcq(r9, Address(r10, +0x1dbb75f3));", // IID14206 - "__ adcq(r10, Address(r11, r12, (Address::ScaleFactor)2, +0x65fe7b52));", // IID14207 - "__ adcq(r11, Address(r12, +0x7c18773a));", // IID14208 - "__ adcq(r12, Address(r13, r14, (Address::ScaleFactor)1, +0x1cdc54f7));", // IID14209 - "__ adcq(r13, Address(r14, r15, (Address::ScaleFactor)1, +0x49f7adf1));", // IID14210 - "__ adcq(r14, Address(r15, +0x7334b7ae));", // IID14211 - "__ adcq(r15, Address(r16, r17, (Address::ScaleFactor)3, -0x67991c0d));", // IID14212 - "__ adcq(r16, Address(r17, r18, (Address::ScaleFactor)2, +0x29f2cd7));", // IID14213 - "__ adcq(r17, Address(r18, r19, (Address::ScaleFactor)3, +0x393222a6));", // IID14214 - "__ adcq(r18, Address(r19, r20, (Address::ScaleFactor)1, -0xae4cbe));", // IID14215 - "__ adcq(r19, Address(r20, r21, (Address::ScaleFactor)0, -0x39d28251));", // IID14216 - "__ adcq(r20, Address(r21, +0x110e48c));", // IID14217 - "__ adcq(r21, Address(r22, r23, (Address::ScaleFactor)1, -0x5aff5e07));", // IID14218 - "__ adcq(r22, Address(r23, +0x4bdbe5b4));", // IID14219 - "__ adcq(r23, Address(r24, r25, (Address::ScaleFactor)2, -0x7a205395));", // IID14220 - "__ adcq(r24, Address(r25, -0x12fca969));", // IID14221 - "__ adcq(r25, Address(r26, r27, (Address::ScaleFactor)1, +0x4cca698d));", // IID14222 - "__ adcq(r26, Address(r27, r28, (Address::ScaleFactor)2, -0x30374a23));", // IID14223 - "__ adcq(r27, Address(r28, r29, (Address::ScaleFactor)1, -0x60f82145));", // IID14224 - "__ adcq(r28, Address(r29, +0x5c8adee9));", // IID14225 - "__ adcq(r29, Address(r30, r31, (Address::ScaleFactor)2, -0x2022c040));", // IID14226 - "__ adcq(r30, Address(r31, rcx, (Address::ScaleFactor)1, -0x6d19fe81));", // IID14227 - "__ adcq(r31, Address(rcx, rdx, (Address::ScaleFactor)2, -0x289569f0));", // IID14228 - "__ imulq(rcx, Address(rdx, rbx, (Address::ScaleFactor)1, -0x3228d015));", // IID14229 - "__ imulq(rdx, Address(rbx, -0x5e439d5f));", // IID14230 - "__ imulq(rbx, Address(r8, r9, (Address::ScaleFactor)3, +0x78d5d033));", // IID14231 - "__ imulq(r8, Address(r9, r10, (Address::ScaleFactor)3, -0x73f9c80c));", // IID14232 - "__ imulq(r9, Address(r10, r11, (Address::ScaleFactor)3, +0x10ed29dd));", // IID14233 - "__ imulq(r10, Address(r11, -0x32d4146a));", // IID14234 - "__ imulq(r11, Address(r12, -0x133b1ac1));", // IID14235 - "__ imulq(r12, Address(r13, r14, (Address::ScaleFactor)1, +0x1bb8cf45));", // IID14236 - "__ imulq(r13, Address(r14, r15, (Address::ScaleFactor)1, -0x23950604));", // IID14237 - "__ imulq(r14, Address(r15, r16, (Address::ScaleFactor)3, +0x23e79272));", // IID14238 - "__ imulq(r15, Address(r16, -0x200316a3));", // IID14239 - "__ imulq(r16, Address(r17, r18, (Address::ScaleFactor)1, -0x654748e6));", // IID14240 - "__ imulq(r17, Address(r18, r19, (Address::ScaleFactor)0, +0x6d26b461));", // IID14241 - "__ imulq(r18, Address(r19, r20, (Address::ScaleFactor)2, -0x4865fef8));", // IID14242 - "__ imulq(r19, Address(r20, +0x642436c2));", // IID14243 - "__ imulq(r20, Address(r21, -0x6dfca0d));", // IID14244 - "__ imulq(r21, Address(r22, r23, (Address::ScaleFactor)0, -0x5a65bd76));", // IID14245 - "__ imulq(r22, Address(r23, r24, (Address::ScaleFactor)1, -0x63ee37a7));", // IID14246 - "__ imulq(r23, Address(r24, r25, (Address::ScaleFactor)2, +0x222053db));", // IID14247 - "__ imulq(r24, Address(r25, r26, (Address::ScaleFactor)0, +0x1e7fb0a5));", // IID14248 - "__ imulq(r25, Address(r26, +0x7bd2add6));", // IID14249 - "__ imulq(r26, Address(r27, r28, (Address::ScaleFactor)1, -0x1d012cb7));", // IID14250 - "__ imulq(r27, Address(r28, +0x7ec3493c));", // IID14251 - "__ imulq(r28, Address(r29, r30, (Address::ScaleFactor)3, -0x34e9422f));", // IID14252 - "__ imulq(r29, Address(r30, r31, (Address::ScaleFactor)2, +0x25479e9c));", // IID14253 - "__ imulq(r30, Address(r31, rcx, (Address::ScaleFactor)3, -0x3f26b853));", // IID14254 - "__ imulq(r31, Address(rcx, rdx, (Address::ScaleFactor)2, -0x505177f8));", // IID14255 - "__ popcntq(rcx, Address(rdx, rbx, (Address::ScaleFactor)1, -0x1d266990));", // IID14256 - "__ popcntq(rdx, Address(rbx, r8, (Address::ScaleFactor)3, +0x1875cd05));", // IID14257 - "__ popcntq(rbx, Address(r8, -0x64f5b50d));", // IID14258 - "__ popcntq(r8, Address(r9, r10, (Address::ScaleFactor)1, -0x70973dc2));", // IID14259 - "__ popcntq(r9, Address(r10, +0xb674bd7));", // IID14260 - "__ popcntq(r10, Address(r11, +0x6dfe4877));", // IID14261 - "__ popcntq(r11, Address(r12, r13, (Address::ScaleFactor)3, +0x721cfb42));", // IID14262 - "__ popcntq(r12, Address(r13, r14, (Address::ScaleFactor)0, +0x784a9e86));", // IID14263 - "__ popcntq(r13, Address(r14, +0x933449c));", // IID14264 - "__ popcntq(r14, Address(r15, r16, (Address::ScaleFactor)1, -0x146e3f85));", // IID14265 - "__ popcntq(r15, Address(r16, r17, (Address::ScaleFactor)2, +0x1fac6b36));", // IID14266 - "__ popcntq(r16, Address(r17, r18, (Address::ScaleFactor)0, +0x6610bde1));", // IID14267 - "__ popcntq(r17, Address(r18, -0x60148f54));", // IID14268 - "__ popcntq(r18, Address(r19, -0x14e5f43a));", // IID14269 - "__ popcntq(r19, Address(r20, +0x523f4123));", // IID14270 - "__ popcntq(r20, Address(r21, r22, (Address::ScaleFactor)0, +0x355c5c5a));", // IID14271 - "__ popcntq(r21, Address(r22, +0x58a8220));", // IID14272 - "__ popcntq(r22, Address(r23, r24, (Address::ScaleFactor)2, -0x77df9c2d));", // IID14273 - "__ popcntq(r23, Address(r24, r25, (Address::ScaleFactor)3, -0x22ee590a));", // IID14274 - "__ popcntq(r24, Address(r25, r26, (Address::ScaleFactor)1, -0x24bf21fd));", // IID14275 - "__ popcntq(r25, Address(r26, r27, (Address::ScaleFactor)3, +0x24e9052e));", // IID14276 - "__ popcntq(r26, Address(r27, +0x6a34f9a));", // IID14277 - "__ popcntq(r27, Address(r28, +0x75b6c7ec));", // IID14278 - "__ popcntq(r28, Address(r29, r30, (Address::ScaleFactor)0, +0x12fbc099));", // IID14279 - "__ popcntq(r29, Address(r30, r31, (Address::ScaleFactor)3, -0x1bf1c037));", // IID14280 - "__ popcntq(r30, Address(r31, rcx, (Address::ScaleFactor)1, +0x183f573f));", // IID14281 - "__ popcntq(r31, Address(rcx, +0x179ec53d));", // IID14282 - "__ sbbq(rcx, Address(rdx, -0x16a4353a));", // IID14283 - "__ sbbq(rdx, Address(rbx, r8, (Address::ScaleFactor)3, +0x2a6e58b1));", // IID14284 - "__ sbbq(rbx, Address(r8, r9, (Address::ScaleFactor)0, +0x5437fdc8));", // IID14285 - "__ sbbq(r8, Address(r9, -0x5582365));", // IID14286 - "__ sbbq(r9, Address(r10, r11, (Address::ScaleFactor)1, -0x296c81bc));", // IID14287 - "__ sbbq(r10, Address(r11, r12, (Address::ScaleFactor)0, +0x49bb533));", // IID14288 - "__ sbbq(r11, Address(r12, r13, (Address::ScaleFactor)0, +0x2d5bec5f));", // IID14289 - "__ sbbq(r12, Address(r13, r14, (Address::ScaleFactor)1, -0x1016d27b));", // IID14290 - "__ sbbq(r13, Address(r14, r15, (Address::ScaleFactor)2, -0x2e9f3a3d));", // IID14291 - "__ sbbq(r14, Address(r15, r16, (Address::ScaleFactor)3, +0x3d8b534e));", // IID14292 - "__ sbbq(r15, Address(r16, r17, (Address::ScaleFactor)1, -0x550d9a2));", // IID14293 - "__ sbbq(r16, Address(r17, r18, (Address::ScaleFactor)2, -0xc969599));", // IID14294 - "__ sbbq(r17, Address(r18, r19, (Address::ScaleFactor)2, +0x6dc45efd));", // IID14295 - "__ sbbq(r18, Address(r19, r20, (Address::ScaleFactor)2, +0x78dca003));", // IID14296 - "__ sbbq(r19, Address(r20, r21, (Address::ScaleFactor)3, +0x5e5f9902));", // IID14297 - "__ sbbq(r20, Address(r21, r22, (Address::ScaleFactor)1, -0x73463beb));", // IID14298 - "__ sbbq(r21, Address(r22, r23, (Address::ScaleFactor)3, -0x23439c3d));", // IID14299 - "__ sbbq(r22, Address(r23, r24, (Address::ScaleFactor)3, -0x58a4a862));", // IID14300 - "__ sbbq(r23, Address(r24, r25, (Address::ScaleFactor)2, -0x27286dd7));", // IID14301 - "__ sbbq(r24, Address(r25, r26, (Address::ScaleFactor)0, -0x29194ede));", // IID14302 - "__ sbbq(r25, Address(r26, -0x2ff621fb));", // IID14303 - "__ sbbq(r26, Address(r27, +0x3bc8803d));", // IID14304 - "__ sbbq(r27, Address(r28, r29, (Address::ScaleFactor)3, -0xee127ae));", // IID14305 - "__ sbbq(r28, Address(r29, r30, (Address::ScaleFactor)0, -0x56555d52));", // IID14306 - "__ sbbq(r29, Address(r30, r31, (Address::ScaleFactor)2, +0x317f38f9));", // IID14307 - "__ sbbq(r30, Address(r31, rcx, (Address::ScaleFactor)3, +0x7d242c6b));", // IID14308 - "__ sbbq(r31, Address(rcx, rdx, (Address::ScaleFactor)1, +0x1624b99));", // IID14309 - "__ subq(rcx, Address(rdx, rbx, (Address::ScaleFactor)2, +0x27c83f1));", // IID14310 - "__ subq(rdx, Address(rbx, r8, (Address::ScaleFactor)2, -0xc86ab6f));", // IID14311 - "__ subq(rbx, Address(r8, r9, (Address::ScaleFactor)0, -0x600684de));", // IID14312 - "__ subq(r8, Address(r9, r10, (Address::ScaleFactor)3, -0x6f2169af));", // IID14313 - "__ subq(r9, Address(r10, r11, (Address::ScaleFactor)2, +0x43c52e99));", // IID14314 - "__ subq(r10, Address(r11, r12, (Address::ScaleFactor)2, -0x500deac4));", // IID14315 - "__ subq(r11, Address(r12, r13, (Address::ScaleFactor)1, +0x2f34d42d));", // IID14316 - "__ subq(r12, Address(r13, r14, (Address::ScaleFactor)1, -0x685c9b80));", // IID14317 - "__ subq(r13, Address(r14, r15, (Address::ScaleFactor)2, +0x56d9acd4));", // IID14318 - "__ subq(r14, Address(r15, r16, (Address::ScaleFactor)2, +0x7c6d4b9f));", // IID14319 - "__ subq(r15, Address(r16, +0x1a4c0882));", // IID14320 - "__ subq(r16, Address(r17, +0x7515d88));", // IID14321 - "__ subq(r17, Address(r18, +0x6548276d));", // IID14322 - "__ subq(r18, Address(r19, r20, (Address::ScaleFactor)1, +0x2d48eeb8));", // IID14323 - "__ subq(r19, Address(r20, r21, (Address::ScaleFactor)3, +0x4ed905d6));", // IID14324 - "__ subq(r20, Address(r21, r22, (Address::ScaleFactor)2, -0x74a11d49));", // IID14325 - "__ subq(r21, Address(r22, r23, (Address::ScaleFactor)3, +0x4720a510));", // IID14326 - "__ subq(r22, Address(r23, r24, (Address::ScaleFactor)3, -0x3a2a9a24));", // IID14327 - "__ subq(r23, Address(r24, r25, (Address::ScaleFactor)3, -0x52ae4459));", // IID14328 - "__ subq(r24, Address(r25, r26, (Address::ScaleFactor)1, -0x65b5c191));", // IID14329 - "__ subq(r25, Address(r26, -0x3708fada));", // IID14330 - "__ subq(r26, Address(r27, -0x20ca4cbb));", // IID14331 - "__ subq(r27, Address(r28, r29, (Address::ScaleFactor)2, +0x63641158));", // IID14332 - "__ subq(r28, Address(r29, r30, (Address::ScaleFactor)3, +0x22b001b8));", // IID14333 - "__ subq(r29, Address(r30, r31, (Address::ScaleFactor)3, -0x218fa621));", // IID14334 - "__ subq(r30, Address(r31, rcx, (Address::ScaleFactor)2, +0x6d824cc));", // IID14335 - "__ subq(r31, Address(rcx, rdx, (Address::ScaleFactor)1, +0x38e8282));", // IID14336 - "__ tzcntq(rcx, Address(rdx, rbx, (Address::ScaleFactor)0, +0xe773e3a));", // IID14337 - "__ tzcntq(rdx, Address(rbx, r8, (Address::ScaleFactor)1, -0x59372c9f));", // IID14338 - "__ tzcntq(rbx, Address(r8, r9, (Address::ScaleFactor)3, +0x7b1d5d01));", // IID14339 - "__ tzcntq(r8, Address(r9, +0x4e440695));", // IID14340 - "__ tzcntq(r9, Address(r10, r11, (Address::ScaleFactor)0, +0x32b21f86));", // IID14341 - "__ tzcntq(r10, Address(r11, r12, (Address::ScaleFactor)0, -0x102cd6ef));", // IID14342 - "__ tzcntq(r11, Address(r12, r13, (Address::ScaleFactor)2, -0x7723fc4b));", // IID14343 - "__ tzcntq(r12, Address(r13, r14, (Address::ScaleFactor)1, -0x3e5b3598));", // IID14344 - "__ tzcntq(r13, Address(r14, r15, (Address::ScaleFactor)0, +0x6bc0b051));", // IID14345 - "__ tzcntq(r14, Address(r15, r16, (Address::ScaleFactor)2, -0x4ac5043a));", // IID14346 - "__ tzcntq(r15, Address(r16, r17, (Address::ScaleFactor)3, +0x29e2a87f));", // IID14347 - "__ tzcntq(r16, Address(r17, r18, (Address::ScaleFactor)1, +0x25e66b7e));", // IID14348 - "__ tzcntq(r17, Address(r18, r19, (Address::ScaleFactor)0, -0x3d15a534));", // IID14349 - "__ tzcntq(r18, Address(r19, r20, (Address::ScaleFactor)1, +0x425a9138));", // IID14350 - "__ tzcntq(r19, Address(r20, r21, (Address::ScaleFactor)2, +0x60757123));", // IID14351 - "__ tzcntq(r20, Address(r21, -0x897c5));", // IID14352 - "__ tzcntq(r21, Address(r22, r23, (Address::ScaleFactor)0, +0x2b3610b6));", // IID14353 - "__ tzcntq(r22, Address(r23, r24, (Address::ScaleFactor)3, +0x64e7cc54));", // IID14354 - "__ tzcntq(r23, Address(r24, +0x6ea718ca));", // IID14355 - "__ tzcntq(r24, Address(r25, -0x3087bc3e));", // IID14356 - "__ tzcntq(r25, Address(r26, r27, (Address::ScaleFactor)1, -0x1175f1f9));", // IID14357 - "__ tzcntq(r26, Address(r27, r28, (Address::ScaleFactor)0, +0x5038e723));", // IID14358 - "__ tzcntq(r27, Address(r28, r29, (Address::ScaleFactor)1, +0x1369f8ec));", // IID14359 - "__ tzcntq(r28, Address(r29, r30, (Address::ScaleFactor)1, -0x54f06706));", // IID14360 - "__ tzcntq(r29, Address(r30, +0x3ffd8a93));", // IID14361 - "__ tzcntq(r30, Address(r31, rcx, (Address::ScaleFactor)1, +0x38d722c9));", // IID14362 - "__ tzcntq(r31, Address(rcx, rdx, (Address::ScaleFactor)3, -0x25583894));", // IID14363 - "__ xorq(rcx, Address(rdx, +0x23b78fe1));", // IID14364 - "__ xorq(rdx, Address(rbx, -0x47018c4c));", // IID14365 - "__ xorq(rbx, Address(r8, r9, (Address::ScaleFactor)0, +0x69b383dc));", // IID14366 - "__ xorq(r8, Address(r9, r10, (Address::ScaleFactor)0, +0x52631132));", // IID14367 - "__ xorq(r9, Address(r10, r11, (Address::ScaleFactor)2, -0x15fcaaf5));", // IID14368 - "__ xorq(r10, Address(r11, r12, (Address::ScaleFactor)0, -0x1eb6f809));", // IID14369 - "__ xorq(r11, Address(r12, r13, (Address::ScaleFactor)1, +0x581f6e4e));", // IID14370 - "__ xorq(r12, Address(r13, r14, (Address::ScaleFactor)3, +0x2ae0c83e));", // IID14371 - "__ xorq(r13, Address(r14, r15, (Address::ScaleFactor)3, +0x8f9d630));", // IID14372 - "__ xorq(r14, Address(r15, r16, (Address::ScaleFactor)1, +0x61de504e));", // IID14373 - "__ xorq(r15, Address(r16, -0x2d2be997));", // IID14374 - "__ xorq(r16, Address(r17, r18, (Address::ScaleFactor)3, +0x3d9b1013));", // IID14375 - "__ xorq(r17, Address(r18, -0x55a3803a));", // IID14376 - "__ xorq(r18, Address(r19, r20, (Address::ScaleFactor)3, +0x56ad04bc));", // IID14377 - "__ xorq(r19, Address(r20, r21, (Address::ScaleFactor)1, +0x1c07edf3));", // IID14378 - "__ xorq(r20, Address(r21, r22, (Address::ScaleFactor)3, +0x715066c5));", // IID14379 - "__ xorq(r21, Address(r22, r23, (Address::ScaleFactor)3, -0xc32cd8b));", // IID14380 - "__ xorq(r22, Address(r23, r24, (Address::ScaleFactor)3, +0x5003eeaf));", // IID14381 - "__ xorq(r23, Address(r24, r25, (Address::ScaleFactor)2, -0x6c63ebc));", // IID14382 - "__ xorq(r24, Address(r25, -0x1f55d180));", // IID14383 - "__ xorq(r25, Address(r26, r27, (Address::ScaleFactor)0, +0x52f5729e));", // IID14384 - "__ xorq(r26, Address(r27, r28, (Address::ScaleFactor)1, +0x1b8f52c6));", // IID14385 - "__ xorq(r27, Address(r28, r29, (Address::ScaleFactor)3, -0x3ba5f896));", // IID14386 - "__ xorq(r28, Address(r29, r30, (Address::ScaleFactor)2, +0x1400a8ea));", // IID14387 - "__ xorq(r29, Address(r30, r31, (Address::ScaleFactor)1, -0x47cddd5));", // IID14388 - "__ xorq(r30, Address(r31, rcx, (Address::ScaleFactor)3, +0xed045ac));", // IID14389 - "__ xorq(r31, Address(rcx, rdx, (Address::ScaleFactor)1, +0x2d284204));", // IID14390 - "__ movq(rcx, Address(rdx, rbx, (Address::ScaleFactor)2, -0x38616efd));", // IID14391 - "__ movq(rdx, Address(rbx, +0x66874a10));", // IID14392 - "__ movq(rbx, Address(r8, r9, (Address::ScaleFactor)2, -0x1ab189ab));", // IID14393 - "__ movq(r8, Address(r9, r10, (Address::ScaleFactor)1, +0x705f4c3e));", // IID14394 - "__ movq(r9, Address(r10, r11, (Address::ScaleFactor)0, -0x2ca2e1be));", // IID14395 - "__ movq(r10, Address(r11, r12, (Address::ScaleFactor)3, +0x4cb675a7));", // IID14396 - "__ movq(r11, Address(r12, -0x48f95d6e));", // IID14397 - "__ movq(r12, Address(r13, r14, (Address::ScaleFactor)2, +0x7b543326));", // IID14398 - "__ movq(r13, Address(r14, r15, (Address::ScaleFactor)2, -0xc0387e));", // IID14399 - "__ movq(r14, Address(r15, r16, (Address::ScaleFactor)1, +0x56840d38));", // IID14400 - "__ movq(r15, Address(r16, r17, (Address::ScaleFactor)2, -0x4be472c8));", // IID14401 - "__ movq(r16, Address(r17, r18, (Address::ScaleFactor)3, +0x6f39c577));", // IID14402 - "__ movq(r17, Address(r18, r19, (Address::ScaleFactor)1, -0x5b245eff));", // IID14403 - "__ movq(r18, Address(r19, r20, (Address::ScaleFactor)3, +0x701f8103));", // IID14404 - "__ movq(r19, Address(r20, +0x2004ec6d));", // IID14405 - "__ movq(r20, Address(r21, -0x64b6917d));", // IID14406 - "__ movq(r21, Address(r22, -0x49031905));", // IID14407 - "__ movq(r22, Address(r23, r24, (Address::ScaleFactor)3, +0xed2a34f));", // IID14408 - "__ movq(r23, Address(r24, r25, (Address::ScaleFactor)0, -0x4ceb2a42));", // IID14409 - "__ movq(r24, Address(r25, +0x110bc6ac));", // IID14410 - "__ movq(r25, Address(r26, -0xf8372a));", // IID14411 - "__ movq(r26, Address(r27, r28, (Address::ScaleFactor)3, +0x1abd529e));", // IID14412 - "__ movq(r27, Address(r28, r29, (Address::ScaleFactor)1, +0xd5e3ca));", // IID14413 - "__ movq(r28, Address(r29, r30, (Address::ScaleFactor)1, +0x283596ee));", // IID14414 - "__ movq(r29, Address(r30, +0x7bd0254));", // IID14415 - "__ movq(r30, Address(r31, rcx, (Address::ScaleFactor)1, +0x205fd4f));", // IID14416 - "__ movq(r31, Address(rcx, rdx, (Address::ScaleFactor)3, +0x739eacfe));", // IID14417 - "__ leaq(rcx, Address(rdx, rbx, (Address::ScaleFactor)2, +0x149d820b));", // IID14418 - "__ leaq(rdx, Address(rbx, r8, (Address::ScaleFactor)1, +0x33e43bf0));", // IID14419 - "__ leaq(rbx, Address(r8, r9, (Address::ScaleFactor)2, -0x7930db8));", // IID14420 - "__ leaq(r8, Address(r9, r10, (Address::ScaleFactor)1, +0x39e36dca));", // IID14421 - "__ leaq(r9, Address(r10, r11, (Address::ScaleFactor)3, -0x129cb344));", // IID14422 - "__ leaq(r10, Address(r11, r12, (Address::ScaleFactor)3, +0x5ba24379));", // IID14423 - "__ leaq(r11, Address(r12, r13, (Address::ScaleFactor)0, -0x7023f310));", // IID14424 - "__ leaq(r12, Address(r13, r14, (Address::ScaleFactor)0, +0x34290834));", // IID14425 - "__ leaq(r13, Address(r14, r15, (Address::ScaleFactor)0, -0x6fe0a0f1));", // IID14426 - "__ leaq(r14, Address(r15, r16, (Address::ScaleFactor)2, -0xa04f8ce));", // IID14427 - "__ leaq(r15, Address(r16, r17, (Address::ScaleFactor)0, -0x4078fa87));", // IID14428 - "__ leaq(r16, Address(r17, r18, (Address::ScaleFactor)2, -0x47707cd));", // IID14429 - "__ leaq(r17, Address(r18, r19, (Address::ScaleFactor)1, +0x7c054a00));", // IID14430 - "__ leaq(r18, Address(r19, r20, (Address::ScaleFactor)0, +0x7d7fdfc1));", // IID14431 - "__ leaq(r19, Address(r20, r21, (Address::ScaleFactor)3, -0xce43699));", // IID14432 - "__ leaq(r20, Address(r21, +0x73811f0f));", // IID14433 - "__ leaq(r21, Address(r22, r23, (Address::ScaleFactor)0, -0x6c1b2eac));", // IID14434 - "__ leaq(r22, Address(r23, r24, (Address::ScaleFactor)3, -0x836e55));", // IID14435 - "__ leaq(r23, Address(r24, r25, (Address::ScaleFactor)3, +0x1296dbc4));", // IID14436 - "__ leaq(r24, Address(r25, +0x2619212a));", // IID14437 - "__ leaq(r25, Address(r26, r27, (Address::ScaleFactor)0, +0x1a0b0b79));", // IID14438 - "__ leaq(r26, Address(r27, r28, (Address::ScaleFactor)2, -0x733c75e8));", // IID14439 - "__ leaq(r27, Address(r28, r29, (Address::ScaleFactor)3, +0x34d348ca));", // IID14440 - "__ leaq(r28, Address(r29, r30, (Address::ScaleFactor)0, +0x6ecdc0d9));", // IID14441 - "__ leaq(r29, Address(r30, r31, (Address::ScaleFactor)2, -0xc5f43cd));", // IID14442 - "__ leaq(r30, Address(r31, rcx, (Address::ScaleFactor)1, -0x789d724d));", // IID14443 - "__ leaq(r31, Address(rcx, -0x21573cbf));", // IID14444 - "__ cvttsd2siq(rcx, Address(rdx, rbx, (Address::ScaleFactor)3, -0x7a50b92f));", // IID14445 - "__ cvttsd2siq(rdx, Address(rbx, +0x5b5bc3c6));", // IID14446 - "__ cvttsd2siq(rbx, Address(r8, r9, (Address::ScaleFactor)2, -0x449c52d3));", // IID14447 - "__ cvttsd2siq(r8, Address(r9, r10, (Address::ScaleFactor)3, -0x65a9d7c7));", // IID14448 - "__ cvttsd2siq(r9, Address(r10, r11, (Address::ScaleFactor)3, +0x445f3eaa));", // IID14449 - "__ cvttsd2siq(r10, Address(r11, r12, (Address::ScaleFactor)0, +0x54664a13));", // IID14450 - "__ cvttsd2siq(r11, Address(r12, r13, (Address::ScaleFactor)2, -0x4a5e2921));", // IID14451 - "__ cvttsd2siq(r12, Address(r13, r14, (Address::ScaleFactor)2, -0x1c6ce0e1));", // IID14452 - "__ cvttsd2siq(r13, Address(r14, r15, (Address::ScaleFactor)2, +0x417a13d6));", // IID14453 - "__ cvttsd2siq(r14, Address(r15, +0xe459d5d));", // IID14454 - "__ cvttsd2siq(r15, Address(r16, r17, (Address::ScaleFactor)3, -0x1f852489));", // IID14455 - "__ cvttsd2siq(r16, Address(r17, r18, (Address::ScaleFactor)2, +0x2fac3f31));", // IID14456 - "__ cvttsd2siq(r17, Address(r18, -0x4e3259e1));", // IID14457 - "__ cvttsd2siq(r18, Address(r19, r20, (Address::ScaleFactor)0, +0x3de712f9));", // IID14458 - "__ cvttsd2siq(r19, Address(r20, r21, (Address::ScaleFactor)0, +0x73afbf4f));", // IID14459 - "__ cvttsd2siq(r20, Address(r21, r22, (Address::ScaleFactor)3, -0x61e92c21));", // IID14460 - "__ cvttsd2siq(r21, Address(r22, r23, (Address::ScaleFactor)0, -0x6df35eeb));", // IID14461 - "__ cvttsd2siq(r22, Address(r23, r24, (Address::ScaleFactor)1, +0x613d3425));", // IID14462 - "__ cvttsd2siq(r23, Address(r24, r25, (Address::ScaleFactor)0, -0x75c45a20));", // IID14463 - "__ cvttsd2siq(r24, Address(r25, r26, (Address::ScaleFactor)0, -0x6a332911));", // IID14464 - "__ cvttsd2siq(r25, Address(r26, r27, (Address::ScaleFactor)1, -0x3b8e6b59));", // IID14465 - "__ cvttsd2siq(r26, Address(r27, r28, (Address::ScaleFactor)3, +0x3c21ddec));", // IID14466 - "__ cvttsd2siq(r27, Address(r28, r29, (Address::ScaleFactor)1, +0x144e39c0));", // IID14467 - "__ cvttsd2siq(r28, Address(r29, r30, (Address::ScaleFactor)1, -0x2589f0fc));", // IID14468 - "__ cvttsd2siq(r29, Address(r30, r31, (Address::ScaleFactor)2, +0x2cee718e));", // IID14469 - "__ cvttsd2siq(r30, Address(r31, rcx, (Address::ScaleFactor)2, -0x5bd3afd7));", // IID14470 - "__ cvttsd2siq(r31, Address(rcx, rdx, (Address::ScaleFactor)2, -0x4a1c4293));", // IID14471 - "__ xchgq(rcx, Address(rdx, rbx, (Address::ScaleFactor)2, -0x65bd7f9e));", // IID14472 - "__ xchgq(rdx, Address(rbx, r8, (Address::ScaleFactor)0, -0x6668bd3c));", // IID14473 - "__ xchgq(rbx, Address(r8, r9, (Address::ScaleFactor)1, -0x2b1d7fcf));", // IID14474 - "__ xchgq(r8, Address(r9, -0x4fe8aa25));", // IID14475 - "__ xchgq(r9, Address(r10, r11, (Address::ScaleFactor)3, +0x7c107bda));", // IID14476 - "__ xchgq(r10, Address(r11, r12, (Address::ScaleFactor)2, -0x53a48049));", // IID14477 - "__ xchgq(r11, Address(r12, +0x2e12fe96));", // IID14478 - "__ xchgq(r12, Address(r13, -0x2c6bebf6));", // IID14479 - "__ xchgq(r13, Address(r14, +0x71388df4));", // IID14480 - "__ xchgq(r14, Address(r15, r16, (Address::ScaleFactor)1, -0x705a81e4));", // IID14481 - "__ xchgq(r15, Address(r16, r17, (Address::ScaleFactor)1, +0xf097ae8));", // IID14482 - "__ xchgq(r16, Address(r17, r18, (Address::ScaleFactor)3, +0x6442431a));", // IID14483 - "__ xchgq(r17, Address(r18, +0x22ed8fd7));", // IID14484 - "__ xchgq(r18, Address(r19, r20, (Address::ScaleFactor)3, +0x440afe6));", // IID14485 - "__ xchgq(r19, Address(r20, r21, (Address::ScaleFactor)3, -0x543c63db));", // IID14486 - "__ xchgq(r20, Address(r21, r22, (Address::ScaleFactor)3, +0x172c685d));", // IID14487 - "__ xchgq(r21, Address(r22, r23, (Address::ScaleFactor)2, -0x61846a6a));", // IID14488 - "__ xchgq(r22, Address(r23, r24, (Address::ScaleFactor)3, -0x568bfd1f));", // IID14489 - "__ xchgq(r23, Address(r24, r25, (Address::ScaleFactor)3, +0x7f4d3ce7));", // IID14490 - "__ xchgq(r24, Address(r25, r26, (Address::ScaleFactor)1, +0x31c3aa0d));", // IID14491 - "__ xchgq(r25, Address(r26, +0x1c021423));", // IID14492 - "__ xchgq(r26, Address(r27, r28, (Address::ScaleFactor)3, -0x3ad7394a));", // IID14493 - "__ xchgq(r27, Address(r28, r29, (Address::ScaleFactor)2, +0xa4453f0));", // IID14494 - "__ xchgq(r28, Address(r29, r30, (Address::ScaleFactor)0, -0x5eea7611));", // IID14495 - "__ xchgq(r29, Address(r30, r31, (Address::ScaleFactor)2, -0x5405ea91));", // IID14496 - "__ xchgq(r30, Address(r31, rcx, (Address::ScaleFactor)0, +0x5cc9d233));", // IID14497 - "__ xchgq(r31, Address(rcx, -0x19234ca0));", // IID14498 - "__ testq(rcx, Address(rdx, rbx, (Address::ScaleFactor)0, -0x461eb421));", // IID14499 - "__ testq(rdx, Address(rbx, +0x3d062fd6));", // IID14500 - "__ testq(rbx, Address(r8, r9, (Address::ScaleFactor)2, +0xdc99aad));", // IID14501 - "__ testq(r8, Address(r9, r10, (Address::ScaleFactor)3, -0x541fdf4c));", // IID14502 - "__ testq(r9, Address(r10, r11, (Address::ScaleFactor)0, -0x5e154600));", // IID14503 - "__ testq(r10, Address(r11, r12, (Address::ScaleFactor)3, -0x61dc9480));", // IID14504 - "__ testq(r11, Address(r12, r13, (Address::ScaleFactor)1, -0xb435309));", // IID14505 - "__ testq(r12, Address(r13, r14, (Address::ScaleFactor)3, -0x3236aefd));", // IID14506 - "__ testq(r13, Address(r14, -0x207cff71));", // IID14507 - "__ testq(r14, Address(r15, r16, (Address::ScaleFactor)2, +0x47e98d79));", // IID14508 - "__ testq(r15, Address(r16, r17, (Address::ScaleFactor)2, -0x3d35d657));", // IID14509 - "__ testq(r16, Address(r17, r18, (Address::ScaleFactor)2, +0x480c9415));", // IID14510 - "__ testq(r17, Address(r18, r19, (Address::ScaleFactor)2, +0x5ac59835));", // IID14511 - "__ testq(r18, Address(r19, r20, (Address::ScaleFactor)3, -0x2940a8d7));", // IID14512 - "__ testq(r19, Address(r20, r21, (Address::ScaleFactor)3, +0x7bc5b2e));", // IID14513 - "__ testq(r20, Address(r21, +0x51bb5cb));", // IID14514 - "__ testq(r21, Address(r22, r23, (Address::ScaleFactor)3, -0x7285113a));", // IID14515 - "__ testq(r22, Address(r23, -0x1ea29ccc));", // IID14516 - "__ testq(r23, Address(r24, r25, (Address::ScaleFactor)2, -0x67d67eaf));", // IID14517 - "__ testq(r24, Address(r25, r26, (Address::ScaleFactor)3, -0x6b49766e));", // IID14518 - "__ testq(r25, Address(r26, r27, (Address::ScaleFactor)1, -0xe6b5164));", // IID14519 - "__ testq(r26, Address(r27, r28, (Address::ScaleFactor)3, -0x24cc3359));", // IID14520 - "__ testq(r27, Address(r28, r29, (Address::ScaleFactor)0, +0x2f67787b));", // IID14521 - "__ testq(r28, Address(r29, +0x667fd420));", // IID14522 - "__ testq(r29, Address(r30, r31, (Address::ScaleFactor)0, -0x75a50f48));", // IID14523 - "__ testq(r30, Address(r31, +0x62404213));", // IID14524 - "__ testq(r31, Address(rcx, rdx, (Address::ScaleFactor)1, +0x3458fb71));", // IID14525 - "__ addq(rcx, 1);", // IID14526 - "__ addq(rcx, 16);", // IID14527 - "__ addq(rcx, 256);", // IID14528 - "__ addq(rcx, 4096);", // IID14529 - "__ addq(rcx, 65536);", // IID14530 - "__ addq(rcx, 1048576);", // IID14531 - "__ addq(rcx, 16777216);", // IID14532 - "__ addq(rcx, 268435456);", // IID14533 - "__ addq(rdx, 1);", // IID14534 - "__ addq(rdx, 16);", // IID14535 - "__ addq(rdx, 256);", // IID14536 - "__ addq(rdx, 4096);", // IID14537 - "__ addq(rdx, 65536);", // IID14538 - "__ addq(rdx, 1048576);", // IID14539 - "__ addq(rdx, 16777216);", // IID14540 - "__ addq(rdx, 268435456);", // IID14541 - "__ addq(rbx, 1);", // IID14542 - "__ addq(rbx, 16);", // IID14543 - "__ addq(rbx, 256);", // IID14544 - "__ addq(rbx, 4096);", // IID14545 - "__ addq(rbx, 65536);", // IID14546 - "__ addq(rbx, 1048576);", // IID14547 - "__ addq(rbx, 16777216);", // IID14548 - "__ addq(rbx, 268435456);", // IID14549 - "__ addq(r8, 1);", // IID14550 - "__ addq(r8, 16);", // IID14551 - "__ addq(r8, 256);", // IID14552 - "__ addq(r8, 4096);", // IID14553 - "__ addq(r8, 65536);", // IID14554 - "__ addq(r8, 1048576);", // IID14555 - "__ addq(r8, 16777216);", // IID14556 - "__ addq(r8, 268435456);", // IID14557 - "__ addq(r9, 1);", // IID14558 - "__ addq(r9, 16);", // IID14559 - "__ addq(r9, 256);", // IID14560 - "__ addq(r9, 4096);", // IID14561 - "__ addq(r9, 65536);", // IID14562 - "__ addq(r9, 1048576);", // IID14563 - "__ addq(r9, 16777216);", // IID14564 - "__ addq(r9, 268435456);", // IID14565 - "__ addq(r10, 1);", // IID14566 - "__ addq(r10, 16);", // IID14567 - "__ addq(r10, 256);", // IID14568 - "__ addq(r10, 4096);", // IID14569 - "__ addq(r10, 65536);", // IID14570 - "__ addq(r10, 1048576);", // IID14571 - "__ addq(r10, 16777216);", // IID14572 - "__ addq(r10, 268435456);", // IID14573 - "__ addq(r11, 1);", // IID14574 - "__ addq(r11, 16);", // IID14575 - "__ addq(r11, 256);", // IID14576 - "__ addq(r11, 4096);", // IID14577 - "__ addq(r11, 65536);", // IID14578 - "__ addq(r11, 1048576);", // IID14579 - "__ addq(r11, 16777216);", // IID14580 - "__ addq(r11, 268435456);", // IID14581 - "__ addq(r12, 1);", // IID14582 - "__ addq(r12, 16);", // IID14583 - "__ addq(r12, 256);", // IID14584 - "__ addq(r12, 4096);", // IID14585 - "__ addq(r12, 65536);", // IID14586 - "__ addq(r12, 1048576);", // IID14587 - "__ addq(r12, 16777216);", // IID14588 - "__ addq(r12, 268435456);", // IID14589 - "__ addq(r13, 1);", // IID14590 - "__ addq(r13, 16);", // IID14591 - "__ addq(r13, 256);", // IID14592 - "__ addq(r13, 4096);", // IID14593 - "__ addq(r13, 65536);", // IID14594 - "__ addq(r13, 1048576);", // IID14595 - "__ addq(r13, 16777216);", // IID14596 - "__ addq(r13, 268435456);", // IID14597 - "__ addq(r14, 1);", // IID14598 - "__ addq(r14, 16);", // IID14599 - "__ addq(r14, 256);", // IID14600 - "__ addq(r14, 4096);", // IID14601 - "__ addq(r14, 65536);", // IID14602 - "__ addq(r14, 1048576);", // IID14603 - "__ addq(r14, 16777216);", // IID14604 - "__ addq(r14, 268435456);", // IID14605 - "__ addq(r15, 1);", // IID14606 - "__ addq(r15, 16);", // IID14607 - "__ addq(r15, 256);", // IID14608 - "__ addq(r15, 4096);", // IID14609 - "__ addq(r15, 65536);", // IID14610 - "__ addq(r15, 1048576);", // IID14611 - "__ addq(r15, 16777216);", // IID14612 - "__ addq(r15, 268435456);", // IID14613 - "__ addq(r16, 1);", // IID14614 - "__ addq(r16, 16);", // IID14615 - "__ addq(r16, 256);", // IID14616 - "__ addq(r16, 4096);", // IID14617 - "__ addq(r16, 65536);", // IID14618 - "__ addq(r16, 1048576);", // IID14619 - "__ addq(r16, 16777216);", // IID14620 - "__ addq(r16, 268435456);", // IID14621 - "__ addq(r17, 1);", // IID14622 - "__ addq(r17, 16);", // IID14623 - "__ addq(r17, 256);", // IID14624 - "__ addq(r17, 4096);", // IID14625 - "__ addq(r17, 65536);", // IID14626 - "__ addq(r17, 1048576);", // IID14627 - "__ addq(r17, 16777216);", // IID14628 - "__ addq(r17, 268435456);", // IID14629 - "__ addq(r18, 1);", // IID14630 - "__ addq(r18, 16);", // IID14631 - "__ addq(r18, 256);", // IID14632 - "__ addq(r18, 4096);", // IID14633 - "__ addq(r18, 65536);", // IID14634 - "__ addq(r18, 1048576);", // IID14635 - "__ addq(r18, 16777216);", // IID14636 - "__ addq(r18, 268435456);", // IID14637 - "__ addq(r19, 1);", // IID14638 - "__ addq(r19, 16);", // IID14639 - "__ addq(r19, 256);", // IID14640 - "__ addq(r19, 4096);", // IID14641 - "__ addq(r19, 65536);", // IID14642 - "__ addq(r19, 1048576);", // IID14643 - "__ addq(r19, 16777216);", // IID14644 - "__ addq(r19, 268435456);", // IID14645 - "__ addq(r20, 1);", // IID14646 - "__ addq(r20, 16);", // IID14647 - "__ addq(r20, 256);", // IID14648 - "__ addq(r20, 4096);", // IID14649 - "__ addq(r20, 65536);", // IID14650 - "__ addq(r20, 1048576);", // IID14651 - "__ addq(r20, 16777216);", // IID14652 - "__ addq(r20, 268435456);", // IID14653 - "__ addq(r21, 1);", // IID14654 - "__ addq(r21, 16);", // IID14655 - "__ addq(r21, 256);", // IID14656 - "__ addq(r21, 4096);", // IID14657 - "__ addq(r21, 65536);", // IID14658 - "__ addq(r21, 1048576);", // IID14659 - "__ addq(r21, 16777216);", // IID14660 - "__ addq(r21, 268435456);", // IID14661 - "__ addq(r22, 1);", // IID14662 - "__ addq(r22, 16);", // IID14663 - "__ addq(r22, 256);", // IID14664 - "__ addq(r22, 4096);", // IID14665 - "__ addq(r22, 65536);", // IID14666 - "__ addq(r22, 1048576);", // IID14667 - "__ addq(r22, 16777216);", // IID14668 - "__ addq(r22, 268435456);", // IID14669 - "__ addq(r23, 1);", // IID14670 - "__ addq(r23, 16);", // IID14671 - "__ addq(r23, 256);", // IID14672 - "__ addq(r23, 4096);", // IID14673 - "__ addq(r23, 65536);", // IID14674 - "__ addq(r23, 1048576);", // IID14675 - "__ addq(r23, 16777216);", // IID14676 - "__ addq(r23, 268435456);", // IID14677 - "__ addq(r24, 1);", // IID14678 - "__ addq(r24, 16);", // IID14679 - "__ addq(r24, 256);", // IID14680 - "__ addq(r24, 4096);", // IID14681 - "__ addq(r24, 65536);", // IID14682 - "__ addq(r24, 1048576);", // IID14683 - "__ addq(r24, 16777216);", // IID14684 - "__ addq(r24, 268435456);", // IID14685 - "__ addq(r25, 1);", // IID14686 - "__ addq(r25, 16);", // IID14687 - "__ addq(r25, 256);", // IID14688 - "__ addq(r25, 4096);", // IID14689 - "__ addq(r25, 65536);", // IID14690 - "__ addq(r25, 1048576);", // IID14691 - "__ addq(r25, 16777216);", // IID14692 - "__ addq(r25, 268435456);", // IID14693 - "__ addq(r26, 1);", // IID14694 - "__ addq(r26, 16);", // IID14695 - "__ addq(r26, 256);", // IID14696 - "__ addq(r26, 4096);", // IID14697 - "__ addq(r26, 65536);", // IID14698 - "__ addq(r26, 1048576);", // IID14699 - "__ addq(r26, 16777216);", // IID14700 - "__ addq(r26, 268435456);", // IID14701 - "__ addq(r27, 1);", // IID14702 - "__ addq(r27, 16);", // IID14703 - "__ addq(r27, 256);", // IID14704 - "__ addq(r27, 4096);", // IID14705 - "__ addq(r27, 65536);", // IID14706 - "__ addq(r27, 1048576);", // IID14707 - "__ addq(r27, 16777216);", // IID14708 - "__ addq(r27, 268435456);", // IID14709 - "__ addq(r28, 1);", // IID14710 - "__ addq(r28, 16);", // IID14711 - "__ addq(r28, 256);", // IID14712 - "__ addq(r28, 4096);", // IID14713 - "__ addq(r28, 65536);", // IID14714 - "__ addq(r28, 1048576);", // IID14715 - "__ addq(r28, 16777216);", // IID14716 - "__ addq(r28, 268435456);", // IID14717 - "__ addq(r29, 1);", // IID14718 - "__ addq(r29, 16);", // IID14719 - "__ addq(r29, 256);", // IID14720 - "__ addq(r29, 4096);", // IID14721 - "__ addq(r29, 65536);", // IID14722 - "__ addq(r29, 1048576);", // IID14723 - "__ addq(r29, 16777216);", // IID14724 - "__ addq(r29, 268435456);", // IID14725 - "__ addq(r30, 1);", // IID14726 - "__ addq(r30, 16);", // IID14727 - "__ addq(r30, 256);", // IID14728 - "__ addq(r30, 4096);", // IID14729 - "__ addq(r30, 65536);", // IID14730 - "__ addq(r30, 1048576);", // IID14731 - "__ addq(r30, 16777216);", // IID14732 - "__ addq(r30, 268435456);", // IID14733 - "__ addq(r31, 1);", // IID14734 - "__ addq(r31, 16);", // IID14735 - "__ addq(r31, 256);", // IID14736 - "__ addq(r31, 4096);", // IID14737 - "__ addq(r31, 65536);", // IID14738 - "__ addq(r31, 1048576);", // IID14739 - "__ addq(r31, 16777216);", // IID14740 - "__ addq(r31, 268435456);", // IID14741 - "__ andq(rcx, 1);", // IID14742 - "__ andq(rcx, 16);", // IID14743 - "__ andq(rcx, 256);", // IID14744 - "__ andq(rcx, 4096);", // IID14745 - "__ andq(rcx, 65536);", // IID14746 - "__ andq(rcx, 1048576);", // IID14747 - "__ andq(rcx, 16777216);", // IID14748 - "__ andq(rcx, 268435456);", // IID14749 - "__ andq(rdx, 1);", // IID14750 - "__ andq(rdx, 16);", // IID14751 - "__ andq(rdx, 256);", // IID14752 - "__ andq(rdx, 4096);", // IID14753 - "__ andq(rdx, 65536);", // IID14754 - "__ andq(rdx, 1048576);", // IID14755 - "__ andq(rdx, 16777216);", // IID14756 - "__ andq(rdx, 268435456);", // IID14757 - "__ andq(rbx, 1);", // IID14758 - "__ andq(rbx, 16);", // IID14759 - "__ andq(rbx, 256);", // IID14760 - "__ andq(rbx, 4096);", // IID14761 - "__ andq(rbx, 65536);", // IID14762 - "__ andq(rbx, 1048576);", // IID14763 - "__ andq(rbx, 16777216);", // IID14764 - "__ andq(rbx, 268435456);", // IID14765 - "__ andq(r8, 1);", // IID14766 - "__ andq(r8, 16);", // IID14767 - "__ andq(r8, 256);", // IID14768 - "__ andq(r8, 4096);", // IID14769 - "__ andq(r8, 65536);", // IID14770 - "__ andq(r8, 1048576);", // IID14771 - "__ andq(r8, 16777216);", // IID14772 - "__ andq(r8, 268435456);", // IID14773 - "__ andq(r9, 1);", // IID14774 - "__ andq(r9, 16);", // IID14775 - "__ andq(r9, 256);", // IID14776 - "__ andq(r9, 4096);", // IID14777 - "__ andq(r9, 65536);", // IID14778 - "__ andq(r9, 1048576);", // IID14779 - "__ andq(r9, 16777216);", // IID14780 - "__ andq(r9, 268435456);", // IID14781 - "__ andq(r10, 1);", // IID14782 - "__ andq(r10, 16);", // IID14783 - "__ andq(r10, 256);", // IID14784 - "__ andq(r10, 4096);", // IID14785 - "__ andq(r10, 65536);", // IID14786 - "__ andq(r10, 1048576);", // IID14787 - "__ andq(r10, 16777216);", // IID14788 - "__ andq(r10, 268435456);", // IID14789 - "__ andq(r11, 1);", // IID14790 - "__ andq(r11, 16);", // IID14791 - "__ andq(r11, 256);", // IID14792 - "__ andq(r11, 4096);", // IID14793 - "__ andq(r11, 65536);", // IID14794 - "__ andq(r11, 1048576);", // IID14795 - "__ andq(r11, 16777216);", // IID14796 - "__ andq(r11, 268435456);", // IID14797 - "__ andq(r12, 1);", // IID14798 - "__ andq(r12, 16);", // IID14799 - "__ andq(r12, 256);", // IID14800 - "__ andq(r12, 4096);", // IID14801 - "__ andq(r12, 65536);", // IID14802 - "__ andq(r12, 1048576);", // IID14803 - "__ andq(r12, 16777216);", // IID14804 - "__ andq(r12, 268435456);", // IID14805 - "__ andq(r13, 1);", // IID14806 - "__ andq(r13, 16);", // IID14807 - "__ andq(r13, 256);", // IID14808 - "__ andq(r13, 4096);", // IID14809 - "__ andq(r13, 65536);", // IID14810 - "__ andq(r13, 1048576);", // IID14811 - "__ andq(r13, 16777216);", // IID14812 - "__ andq(r13, 268435456);", // IID14813 - "__ andq(r14, 1);", // IID14814 - "__ andq(r14, 16);", // IID14815 - "__ andq(r14, 256);", // IID14816 - "__ andq(r14, 4096);", // IID14817 - "__ andq(r14, 65536);", // IID14818 - "__ andq(r14, 1048576);", // IID14819 - "__ andq(r14, 16777216);", // IID14820 - "__ andq(r14, 268435456);", // IID14821 - "__ andq(r15, 1);", // IID14822 - "__ andq(r15, 16);", // IID14823 - "__ andq(r15, 256);", // IID14824 - "__ andq(r15, 4096);", // IID14825 - "__ andq(r15, 65536);", // IID14826 - "__ andq(r15, 1048576);", // IID14827 - "__ andq(r15, 16777216);", // IID14828 - "__ andq(r15, 268435456);", // IID14829 - "__ andq(r16, 1);", // IID14830 - "__ andq(r16, 16);", // IID14831 - "__ andq(r16, 256);", // IID14832 - "__ andq(r16, 4096);", // IID14833 - "__ andq(r16, 65536);", // IID14834 - "__ andq(r16, 1048576);", // IID14835 - "__ andq(r16, 16777216);", // IID14836 - "__ andq(r16, 268435456);", // IID14837 - "__ andq(r17, 1);", // IID14838 - "__ andq(r17, 16);", // IID14839 - "__ andq(r17, 256);", // IID14840 - "__ andq(r17, 4096);", // IID14841 - "__ andq(r17, 65536);", // IID14842 - "__ andq(r17, 1048576);", // IID14843 - "__ andq(r17, 16777216);", // IID14844 - "__ andq(r17, 268435456);", // IID14845 - "__ andq(r18, 1);", // IID14846 - "__ andq(r18, 16);", // IID14847 - "__ andq(r18, 256);", // IID14848 - "__ andq(r18, 4096);", // IID14849 - "__ andq(r18, 65536);", // IID14850 - "__ andq(r18, 1048576);", // IID14851 - "__ andq(r18, 16777216);", // IID14852 - "__ andq(r18, 268435456);", // IID14853 - "__ andq(r19, 1);", // IID14854 - "__ andq(r19, 16);", // IID14855 - "__ andq(r19, 256);", // IID14856 - "__ andq(r19, 4096);", // IID14857 - "__ andq(r19, 65536);", // IID14858 - "__ andq(r19, 1048576);", // IID14859 - "__ andq(r19, 16777216);", // IID14860 - "__ andq(r19, 268435456);", // IID14861 - "__ andq(r20, 1);", // IID14862 - "__ andq(r20, 16);", // IID14863 - "__ andq(r20, 256);", // IID14864 - "__ andq(r20, 4096);", // IID14865 - "__ andq(r20, 65536);", // IID14866 - "__ andq(r20, 1048576);", // IID14867 - "__ andq(r20, 16777216);", // IID14868 - "__ andq(r20, 268435456);", // IID14869 - "__ andq(r21, 1);", // IID14870 - "__ andq(r21, 16);", // IID14871 - "__ andq(r21, 256);", // IID14872 - "__ andq(r21, 4096);", // IID14873 - "__ andq(r21, 65536);", // IID14874 - "__ andq(r21, 1048576);", // IID14875 - "__ andq(r21, 16777216);", // IID14876 - "__ andq(r21, 268435456);", // IID14877 - "__ andq(r22, 1);", // IID14878 - "__ andq(r22, 16);", // IID14879 - "__ andq(r22, 256);", // IID14880 - "__ andq(r22, 4096);", // IID14881 - "__ andq(r22, 65536);", // IID14882 - "__ andq(r22, 1048576);", // IID14883 - "__ andq(r22, 16777216);", // IID14884 - "__ andq(r22, 268435456);", // IID14885 - "__ andq(r23, 1);", // IID14886 - "__ andq(r23, 16);", // IID14887 - "__ andq(r23, 256);", // IID14888 - "__ andq(r23, 4096);", // IID14889 - "__ andq(r23, 65536);", // IID14890 - "__ andq(r23, 1048576);", // IID14891 - "__ andq(r23, 16777216);", // IID14892 - "__ andq(r23, 268435456);", // IID14893 - "__ andq(r24, 1);", // IID14894 - "__ andq(r24, 16);", // IID14895 - "__ andq(r24, 256);", // IID14896 - "__ andq(r24, 4096);", // IID14897 - "__ andq(r24, 65536);", // IID14898 - "__ andq(r24, 1048576);", // IID14899 - "__ andq(r24, 16777216);", // IID14900 - "__ andq(r24, 268435456);", // IID14901 - "__ andq(r25, 1);", // IID14902 - "__ andq(r25, 16);", // IID14903 - "__ andq(r25, 256);", // IID14904 - "__ andq(r25, 4096);", // IID14905 - "__ andq(r25, 65536);", // IID14906 - "__ andq(r25, 1048576);", // IID14907 - "__ andq(r25, 16777216);", // IID14908 - "__ andq(r25, 268435456);", // IID14909 - "__ andq(r26, 1);", // IID14910 - "__ andq(r26, 16);", // IID14911 - "__ andq(r26, 256);", // IID14912 - "__ andq(r26, 4096);", // IID14913 - "__ andq(r26, 65536);", // IID14914 - "__ andq(r26, 1048576);", // IID14915 - "__ andq(r26, 16777216);", // IID14916 - "__ andq(r26, 268435456);", // IID14917 - "__ andq(r27, 1);", // IID14918 - "__ andq(r27, 16);", // IID14919 - "__ andq(r27, 256);", // IID14920 - "__ andq(r27, 4096);", // IID14921 - "__ andq(r27, 65536);", // IID14922 - "__ andq(r27, 1048576);", // IID14923 - "__ andq(r27, 16777216);", // IID14924 - "__ andq(r27, 268435456);", // IID14925 - "__ andq(r28, 1);", // IID14926 - "__ andq(r28, 16);", // IID14927 - "__ andq(r28, 256);", // IID14928 - "__ andq(r28, 4096);", // IID14929 - "__ andq(r28, 65536);", // IID14930 - "__ andq(r28, 1048576);", // IID14931 - "__ andq(r28, 16777216);", // IID14932 - "__ andq(r28, 268435456);", // IID14933 - "__ andq(r29, 1);", // IID14934 - "__ andq(r29, 16);", // IID14935 - "__ andq(r29, 256);", // IID14936 - "__ andq(r29, 4096);", // IID14937 - "__ andq(r29, 65536);", // IID14938 - "__ andq(r29, 1048576);", // IID14939 - "__ andq(r29, 16777216);", // IID14940 - "__ andq(r29, 268435456);", // IID14941 - "__ andq(r30, 1);", // IID14942 - "__ andq(r30, 16);", // IID14943 - "__ andq(r30, 256);", // IID14944 - "__ andq(r30, 4096);", // IID14945 - "__ andq(r30, 65536);", // IID14946 - "__ andq(r30, 1048576);", // IID14947 - "__ andq(r30, 16777216);", // IID14948 - "__ andq(r30, 268435456);", // IID14949 - "__ andq(r31, 1);", // IID14950 - "__ andq(r31, 16);", // IID14951 - "__ andq(r31, 256);", // IID14952 - "__ andq(r31, 4096);", // IID14953 - "__ andq(r31, 65536);", // IID14954 - "__ andq(r31, 1048576);", // IID14955 - "__ andq(r31, 16777216);", // IID14956 - "__ andq(r31, 268435456);", // IID14957 - "__ adcq(rcx, 1);", // IID14958 - "__ adcq(rcx, 16);", // IID14959 - "__ adcq(rcx, 256);", // IID14960 - "__ adcq(rcx, 4096);", // IID14961 - "__ adcq(rcx, 65536);", // IID14962 - "__ adcq(rcx, 1048576);", // IID14963 - "__ adcq(rcx, 16777216);", // IID14964 - "__ adcq(rcx, 268435456);", // IID14965 - "__ adcq(rdx, 1);", // IID14966 - "__ adcq(rdx, 16);", // IID14967 - "__ adcq(rdx, 256);", // IID14968 - "__ adcq(rdx, 4096);", // IID14969 - "__ adcq(rdx, 65536);", // IID14970 - "__ adcq(rdx, 1048576);", // IID14971 - "__ adcq(rdx, 16777216);", // IID14972 - "__ adcq(rdx, 268435456);", // IID14973 - "__ adcq(rbx, 1);", // IID14974 - "__ adcq(rbx, 16);", // IID14975 - "__ adcq(rbx, 256);", // IID14976 - "__ adcq(rbx, 4096);", // IID14977 - "__ adcq(rbx, 65536);", // IID14978 - "__ adcq(rbx, 1048576);", // IID14979 - "__ adcq(rbx, 16777216);", // IID14980 - "__ adcq(rbx, 268435456);", // IID14981 - "__ adcq(r8, 1);", // IID14982 - "__ adcq(r8, 16);", // IID14983 - "__ adcq(r8, 256);", // IID14984 - "__ adcq(r8, 4096);", // IID14985 - "__ adcq(r8, 65536);", // IID14986 - "__ adcq(r8, 1048576);", // IID14987 - "__ adcq(r8, 16777216);", // IID14988 - "__ adcq(r8, 268435456);", // IID14989 - "__ adcq(r9, 1);", // IID14990 - "__ adcq(r9, 16);", // IID14991 - "__ adcq(r9, 256);", // IID14992 - "__ adcq(r9, 4096);", // IID14993 - "__ adcq(r9, 65536);", // IID14994 - "__ adcq(r9, 1048576);", // IID14995 - "__ adcq(r9, 16777216);", // IID14996 - "__ adcq(r9, 268435456);", // IID14997 - "__ adcq(r10, 1);", // IID14998 - "__ adcq(r10, 16);", // IID14999 - "__ adcq(r10, 256);", // IID15000 - "__ adcq(r10, 4096);", // IID15001 - "__ adcq(r10, 65536);", // IID15002 - "__ adcq(r10, 1048576);", // IID15003 - "__ adcq(r10, 16777216);", // IID15004 - "__ adcq(r10, 268435456);", // IID15005 - "__ adcq(r11, 1);", // IID15006 - "__ adcq(r11, 16);", // IID15007 - "__ adcq(r11, 256);", // IID15008 - "__ adcq(r11, 4096);", // IID15009 - "__ adcq(r11, 65536);", // IID15010 - "__ adcq(r11, 1048576);", // IID15011 - "__ adcq(r11, 16777216);", // IID15012 - "__ adcq(r11, 268435456);", // IID15013 - "__ adcq(r12, 1);", // IID15014 - "__ adcq(r12, 16);", // IID15015 - "__ adcq(r12, 256);", // IID15016 - "__ adcq(r12, 4096);", // IID15017 - "__ adcq(r12, 65536);", // IID15018 - "__ adcq(r12, 1048576);", // IID15019 - "__ adcq(r12, 16777216);", // IID15020 - "__ adcq(r12, 268435456);", // IID15021 - "__ adcq(r13, 1);", // IID15022 - "__ adcq(r13, 16);", // IID15023 - "__ adcq(r13, 256);", // IID15024 - "__ adcq(r13, 4096);", // IID15025 - "__ adcq(r13, 65536);", // IID15026 - "__ adcq(r13, 1048576);", // IID15027 - "__ adcq(r13, 16777216);", // IID15028 - "__ adcq(r13, 268435456);", // IID15029 - "__ adcq(r14, 1);", // IID15030 - "__ adcq(r14, 16);", // IID15031 - "__ adcq(r14, 256);", // IID15032 - "__ adcq(r14, 4096);", // IID15033 - "__ adcq(r14, 65536);", // IID15034 - "__ adcq(r14, 1048576);", // IID15035 - "__ adcq(r14, 16777216);", // IID15036 - "__ adcq(r14, 268435456);", // IID15037 - "__ adcq(r15, 1);", // IID15038 - "__ adcq(r15, 16);", // IID15039 - "__ adcq(r15, 256);", // IID15040 - "__ adcq(r15, 4096);", // IID15041 - "__ adcq(r15, 65536);", // IID15042 - "__ adcq(r15, 1048576);", // IID15043 - "__ adcq(r15, 16777216);", // IID15044 - "__ adcq(r15, 268435456);", // IID15045 - "__ adcq(r16, 1);", // IID15046 - "__ adcq(r16, 16);", // IID15047 - "__ adcq(r16, 256);", // IID15048 - "__ adcq(r16, 4096);", // IID15049 - "__ adcq(r16, 65536);", // IID15050 - "__ adcq(r16, 1048576);", // IID15051 - "__ adcq(r16, 16777216);", // IID15052 - "__ adcq(r16, 268435456);", // IID15053 - "__ adcq(r17, 1);", // IID15054 - "__ adcq(r17, 16);", // IID15055 - "__ adcq(r17, 256);", // IID15056 - "__ adcq(r17, 4096);", // IID15057 - "__ adcq(r17, 65536);", // IID15058 - "__ adcq(r17, 1048576);", // IID15059 - "__ adcq(r17, 16777216);", // IID15060 - "__ adcq(r17, 268435456);", // IID15061 - "__ adcq(r18, 1);", // IID15062 - "__ adcq(r18, 16);", // IID15063 - "__ adcq(r18, 256);", // IID15064 - "__ adcq(r18, 4096);", // IID15065 - "__ adcq(r18, 65536);", // IID15066 - "__ adcq(r18, 1048576);", // IID15067 - "__ adcq(r18, 16777216);", // IID15068 - "__ adcq(r18, 268435456);", // IID15069 - "__ adcq(r19, 1);", // IID15070 - "__ adcq(r19, 16);", // IID15071 - "__ adcq(r19, 256);", // IID15072 - "__ adcq(r19, 4096);", // IID15073 - "__ adcq(r19, 65536);", // IID15074 - "__ adcq(r19, 1048576);", // IID15075 - "__ adcq(r19, 16777216);", // IID15076 - "__ adcq(r19, 268435456);", // IID15077 - "__ adcq(r20, 1);", // IID15078 - "__ adcq(r20, 16);", // IID15079 - "__ adcq(r20, 256);", // IID15080 - "__ adcq(r20, 4096);", // IID15081 - "__ adcq(r20, 65536);", // IID15082 - "__ adcq(r20, 1048576);", // IID15083 - "__ adcq(r20, 16777216);", // IID15084 - "__ adcq(r20, 268435456);", // IID15085 - "__ adcq(r21, 1);", // IID15086 - "__ adcq(r21, 16);", // IID15087 - "__ adcq(r21, 256);", // IID15088 - "__ adcq(r21, 4096);", // IID15089 - "__ adcq(r21, 65536);", // IID15090 - "__ adcq(r21, 1048576);", // IID15091 - "__ adcq(r21, 16777216);", // IID15092 - "__ adcq(r21, 268435456);", // IID15093 - "__ adcq(r22, 1);", // IID15094 - "__ adcq(r22, 16);", // IID15095 - "__ adcq(r22, 256);", // IID15096 - "__ adcq(r22, 4096);", // IID15097 - "__ adcq(r22, 65536);", // IID15098 - "__ adcq(r22, 1048576);", // IID15099 - "__ adcq(r22, 16777216);", // IID15100 - "__ adcq(r22, 268435456);", // IID15101 - "__ adcq(r23, 1);", // IID15102 - "__ adcq(r23, 16);", // IID15103 - "__ adcq(r23, 256);", // IID15104 - "__ adcq(r23, 4096);", // IID15105 - "__ adcq(r23, 65536);", // IID15106 - "__ adcq(r23, 1048576);", // IID15107 - "__ adcq(r23, 16777216);", // IID15108 - "__ adcq(r23, 268435456);", // IID15109 - "__ adcq(r24, 1);", // IID15110 - "__ adcq(r24, 16);", // IID15111 - "__ adcq(r24, 256);", // IID15112 - "__ adcq(r24, 4096);", // IID15113 - "__ adcq(r24, 65536);", // IID15114 - "__ adcq(r24, 1048576);", // IID15115 - "__ adcq(r24, 16777216);", // IID15116 - "__ adcq(r24, 268435456);", // IID15117 - "__ adcq(r25, 1);", // IID15118 - "__ adcq(r25, 16);", // IID15119 - "__ adcq(r25, 256);", // IID15120 - "__ adcq(r25, 4096);", // IID15121 - "__ adcq(r25, 65536);", // IID15122 - "__ adcq(r25, 1048576);", // IID15123 - "__ adcq(r25, 16777216);", // IID15124 - "__ adcq(r25, 268435456);", // IID15125 - "__ adcq(r26, 1);", // IID15126 - "__ adcq(r26, 16);", // IID15127 - "__ adcq(r26, 256);", // IID15128 - "__ adcq(r26, 4096);", // IID15129 - "__ adcq(r26, 65536);", // IID15130 - "__ adcq(r26, 1048576);", // IID15131 - "__ adcq(r26, 16777216);", // IID15132 - "__ adcq(r26, 268435456);", // IID15133 - "__ adcq(r27, 1);", // IID15134 - "__ adcq(r27, 16);", // IID15135 - "__ adcq(r27, 256);", // IID15136 - "__ adcq(r27, 4096);", // IID15137 - "__ adcq(r27, 65536);", // IID15138 - "__ adcq(r27, 1048576);", // IID15139 - "__ adcq(r27, 16777216);", // IID15140 - "__ adcq(r27, 268435456);", // IID15141 - "__ adcq(r28, 1);", // IID15142 - "__ adcq(r28, 16);", // IID15143 - "__ adcq(r28, 256);", // IID15144 - "__ adcq(r28, 4096);", // IID15145 - "__ adcq(r28, 65536);", // IID15146 - "__ adcq(r28, 1048576);", // IID15147 - "__ adcq(r28, 16777216);", // IID15148 - "__ adcq(r28, 268435456);", // IID15149 - "__ adcq(r29, 1);", // IID15150 - "__ adcq(r29, 16);", // IID15151 - "__ adcq(r29, 256);", // IID15152 - "__ adcq(r29, 4096);", // IID15153 - "__ adcq(r29, 65536);", // IID15154 - "__ adcq(r29, 1048576);", // IID15155 - "__ adcq(r29, 16777216);", // IID15156 - "__ adcq(r29, 268435456);", // IID15157 - "__ adcq(r30, 1);", // IID15158 - "__ adcq(r30, 16);", // IID15159 - "__ adcq(r30, 256);", // IID15160 - "__ adcq(r30, 4096);", // IID15161 - "__ adcq(r30, 65536);", // IID15162 - "__ adcq(r30, 1048576);", // IID15163 - "__ adcq(r30, 16777216);", // IID15164 - "__ adcq(r30, 268435456);", // IID15165 - "__ adcq(r31, 1);", // IID15166 - "__ adcq(r31, 16);", // IID15167 - "__ adcq(r31, 256);", // IID15168 - "__ adcq(r31, 4096);", // IID15169 - "__ adcq(r31, 65536);", // IID15170 - "__ adcq(r31, 1048576);", // IID15171 - "__ adcq(r31, 16777216);", // IID15172 - "__ adcq(r31, 268435456);", // IID15173 - "__ cmpq(rcx, 1);", // IID15174 - "__ cmpq(rcx, 16);", // IID15175 - "__ cmpq(rcx, 256);", // IID15176 - "__ cmpq(rcx, 4096);", // IID15177 - "__ cmpq(rcx, 65536);", // IID15178 - "__ cmpq(rcx, 1048576);", // IID15179 - "__ cmpq(rcx, 16777216);", // IID15180 - "__ cmpq(rcx, 268435456);", // IID15181 - "__ cmpq(rdx, 1);", // IID15182 - "__ cmpq(rdx, 16);", // IID15183 - "__ cmpq(rdx, 256);", // IID15184 - "__ cmpq(rdx, 4096);", // IID15185 - "__ cmpq(rdx, 65536);", // IID15186 - "__ cmpq(rdx, 1048576);", // IID15187 - "__ cmpq(rdx, 16777216);", // IID15188 - "__ cmpq(rdx, 268435456);", // IID15189 - "__ cmpq(rbx, 1);", // IID15190 - "__ cmpq(rbx, 16);", // IID15191 - "__ cmpq(rbx, 256);", // IID15192 - "__ cmpq(rbx, 4096);", // IID15193 - "__ cmpq(rbx, 65536);", // IID15194 - "__ cmpq(rbx, 1048576);", // IID15195 - "__ cmpq(rbx, 16777216);", // IID15196 - "__ cmpq(rbx, 268435456);", // IID15197 - "__ cmpq(r8, 1);", // IID15198 - "__ cmpq(r8, 16);", // IID15199 - "__ cmpq(r8, 256);", // IID15200 - "__ cmpq(r8, 4096);", // IID15201 - "__ cmpq(r8, 65536);", // IID15202 - "__ cmpq(r8, 1048576);", // IID15203 - "__ cmpq(r8, 16777216);", // IID15204 - "__ cmpq(r8, 268435456);", // IID15205 - "__ cmpq(r9, 1);", // IID15206 - "__ cmpq(r9, 16);", // IID15207 - "__ cmpq(r9, 256);", // IID15208 - "__ cmpq(r9, 4096);", // IID15209 - "__ cmpq(r9, 65536);", // IID15210 - "__ cmpq(r9, 1048576);", // IID15211 - "__ cmpq(r9, 16777216);", // IID15212 - "__ cmpq(r9, 268435456);", // IID15213 - "__ cmpq(r10, 1);", // IID15214 - "__ cmpq(r10, 16);", // IID15215 - "__ cmpq(r10, 256);", // IID15216 - "__ cmpq(r10, 4096);", // IID15217 - "__ cmpq(r10, 65536);", // IID15218 - "__ cmpq(r10, 1048576);", // IID15219 - "__ cmpq(r10, 16777216);", // IID15220 - "__ cmpq(r10, 268435456);", // IID15221 - "__ cmpq(r11, 1);", // IID15222 - "__ cmpq(r11, 16);", // IID15223 - "__ cmpq(r11, 256);", // IID15224 - "__ cmpq(r11, 4096);", // IID15225 - "__ cmpq(r11, 65536);", // IID15226 - "__ cmpq(r11, 1048576);", // IID15227 - "__ cmpq(r11, 16777216);", // IID15228 - "__ cmpq(r11, 268435456);", // IID15229 - "__ cmpq(r12, 1);", // IID15230 - "__ cmpq(r12, 16);", // IID15231 - "__ cmpq(r12, 256);", // IID15232 - "__ cmpq(r12, 4096);", // IID15233 - "__ cmpq(r12, 65536);", // IID15234 - "__ cmpq(r12, 1048576);", // IID15235 - "__ cmpq(r12, 16777216);", // IID15236 - "__ cmpq(r12, 268435456);", // IID15237 - "__ cmpq(r13, 1);", // IID15238 - "__ cmpq(r13, 16);", // IID15239 - "__ cmpq(r13, 256);", // IID15240 - "__ cmpq(r13, 4096);", // IID15241 - "__ cmpq(r13, 65536);", // IID15242 - "__ cmpq(r13, 1048576);", // IID15243 - "__ cmpq(r13, 16777216);", // IID15244 - "__ cmpq(r13, 268435456);", // IID15245 - "__ cmpq(r14, 1);", // IID15246 - "__ cmpq(r14, 16);", // IID15247 - "__ cmpq(r14, 256);", // IID15248 - "__ cmpq(r14, 4096);", // IID15249 - "__ cmpq(r14, 65536);", // IID15250 - "__ cmpq(r14, 1048576);", // IID15251 - "__ cmpq(r14, 16777216);", // IID15252 - "__ cmpq(r14, 268435456);", // IID15253 - "__ cmpq(r15, 1);", // IID15254 - "__ cmpq(r15, 16);", // IID15255 - "__ cmpq(r15, 256);", // IID15256 - "__ cmpq(r15, 4096);", // IID15257 - "__ cmpq(r15, 65536);", // IID15258 - "__ cmpq(r15, 1048576);", // IID15259 - "__ cmpq(r15, 16777216);", // IID15260 - "__ cmpq(r15, 268435456);", // IID15261 - "__ cmpq(r16, 1);", // IID15262 - "__ cmpq(r16, 16);", // IID15263 - "__ cmpq(r16, 256);", // IID15264 - "__ cmpq(r16, 4096);", // IID15265 - "__ cmpq(r16, 65536);", // IID15266 - "__ cmpq(r16, 1048576);", // IID15267 - "__ cmpq(r16, 16777216);", // IID15268 - "__ cmpq(r16, 268435456);", // IID15269 - "__ cmpq(r17, 1);", // IID15270 - "__ cmpq(r17, 16);", // IID15271 - "__ cmpq(r17, 256);", // IID15272 - "__ cmpq(r17, 4096);", // IID15273 - "__ cmpq(r17, 65536);", // IID15274 - "__ cmpq(r17, 1048576);", // IID15275 - "__ cmpq(r17, 16777216);", // IID15276 - "__ cmpq(r17, 268435456);", // IID15277 - "__ cmpq(r18, 1);", // IID15278 - "__ cmpq(r18, 16);", // IID15279 - "__ cmpq(r18, 256);", // IID15280 - "__ cmpq(r18, 4096);", // IID15281 - "__ cmpq(r18, 65536);", // IID15282 - "__ cmpq(r18, 1048576);", // IID15283 - "__ cmpq(r18, 16777216);", // IID15284 - "__ cmpq(r18, 268435456);", // IID15285 - "__ cmpq(r19, 1);", // IID15286 - "__ cmpq(r19, 16);", // IID15287 - "__ cmpq(r19, 256);", // IID15288 - "__ cmpq(r19, 4096);", // IID15289 - "__ cmpq(r19, 65536);", // IID15290 - "__ cmpq(r19, 1048576);", // IID15291 - "__ cmpq(r19, 16777216);", // IID15292 - "__ cmpq(r19, 268435456);", // IID15293 - "__ cmpq(r20, 1);", // IID15294 - "__ cmpq(r20, 16);", // IID15295 - "__ cmpq(r20, 256);", // IID15296 - "__ cmpq(r20, 4096);", // IID15297 - "__ cmpq(r20, 65536);", // IID15298 - "__ cmpq(r20, 1048576);", // IID15299 - "__ cmpq(r20, 16777216);", // IID15300 - "__ cmpq(r20, 268435456);", // IID15301 - "__ cmpq(r21, 1);", // IID15302 - "__ cmpq(r21, 16);", // IID15303 - "__ cmpq(r21, 256);", // IID15304 - "__ cmpq(r21, 4096);", // IID15305 - "__ cmpq(r21, 65536);", // IID15306 - "__ cmpq(r21, 1048576);", // IID15307 - "__ cmpq(r21, 16777216);", // IID15308 - "__ cmpq(r21, 268435456);", // IID15309 - "__ cmpq(r22, 1);", // IID15310 - "__ cmpq(r22, 16);", // IID15311 - "__ cmpq(r22, 256);", // IID15312 - "__ cmpq(r22, 4096);", // IID15313 - "__ cmpq(r22, 65536);", // IID15314 - "__ cmpq(r22, 1048576);", // IID15315 - "__ cmpq(r22, 16777216);", // IID15316 - "__ cmpq(r22, 268435456);", // IID15317 - "__ cmpq(r23, 1);", // IID15318 - "__ cmpq(r23, 16);", // IID15319 - "__ cmpq(r23, 256);", // IID15320 - "__ cmpq(r23, 4096);", // IID15321 - "__ cmpq(r23, 65536);", // IID15322 - "__ cmpq(r23, 1048576);", // IID15323 - "__ cmpq(r23, 16777216);", // IID15324 - "__ cmpq(r23, 268435456);", // IID15325 - "__ cmpq(r24, 1);", // IID15326 - "__ cmpq(r24, 16);", // IID15327 - "__ cmpq(r24, 256);", // IID15328 - "__ cmpq(r24, 4096);", // IID15329 - "__ cmpq(r24, 65536);", // IID15330 - "__ cmpq(r24, 1048576);", // IID15331 - "__ cmpq(r24, 16777216);", // IID15332 - "__ cmpq(r24, 268435456);", // IID15333 - "__ cmpq(r25, 1);", // IID15334 - "__ cmpq(r25, 16);", // IID15335 - "__ cmpq(r25, 256);", // IID15336 - "__ cmpq(r25, 4096);", // IID15337 - "__ cmpq(r25, 65536);", // IID15338 - "__ cmpq(r25, 1048576);", // IID15339 - "__ cmpq(r25, 16777216);", // IID15340 - "__ cmpq(r25, 268435456);", // IID15341 - "__ cmpq(r26, 1);", // IID15342 - "__ cmpq(r26, 16);", // IID15343 - "__ cmpq(r26, 256);", // IID15344 - "__ cmpq(r26, 4096);", // IID15345 - "__ cmpq(r26, 65536);", // IID15346 - "__ cmpq(r26, 1048576);", // IID15347 - "__ cmpq(r26, 16777216);", // IID15348 - "__ cmpq(r26, 268435456);", // IID15349 - "__ cmpq(r27, 1);", // IID15350 - "__ cmpq(r27, 16);", // IID15351 - "__ cmpq(r27, 256);", // IID15352 - "__ cmpq(r27, 4096);", // IID15353 - "__ cmpq(r27, 65536);", // IID15354 - "__ cmpq(r27, 1048576);", // IID15355 - "__ cmpq(r27, 16777216);", // IID15356 - "__ cmpq(r27, 268435456);", // IID15357 - "__ cmpq(r28, 1);", // IID15358 - "__ cmpq(r28, 16);", // IID15359 - "__ cmpq(r28, 256);", // IID15360 - "__ cmpq(r28, 4096);", // IID15361 - "__ cmpq(r28, 65536);", // IID15362 - "__ cmpq(r28, 1048576);", // IID15363 - "__ cmpq(r28, 16777216);", // IID15364 - "__ cmpq(r28, 268435456);", // IID15365 - "__ cmpq(r29, 1);", // IID15366 - "__ cmpq(r29, 16);", // IID15367 - "__ cmpq(r29, 256);", // IID15368 - "__ cmpq(r29, 4096);", // IID15369 - "__ cmpq(r29, 65536);", // IID15370 - "__ cmpq(r29, 1048576);", // IID15371 - "__ cmpq(r29, 16777216);", // IID15372 - "__ cmpq(r29, 268435456);", // IID15373 - "__ cmpq(r30, 1);", // IID15374 - "__ cmpq(r30, 16);", // IID15375 - "__ cmpq(r30, 256);", // IID15376 - "__ cmpq(r30, 4096);", // IID15377 - "__ cmpq(r30, 65536);", // IID15378 - "__ cmpq(r30, 1048576);", // IID15379 - "__ cmpq(r30, 16777216);", // IID15380 - "__ cmpq(r30, 268435456);", // IID15381 - "__ cmpq(r31, 1);", // IID15382 - "__ cmpq(r31, 16);", // IID15383 - "__ cmpq(r31, 256);", // IID15384 - "__ cmpq(r31, 4096);", // IID15385 - "__ cmpq(r31, 65536);", // IID15386 - "__ cmpq(r31, 1048576);", // IID15387 - "__ cmpq(r31, 16777216);", // IID15388 - "__ cmpq(r31, 268435456);", // IID15389 - "__ rclq(rcx, 1);", // IID15390 - "__ rclq(rcx, 2);", // IID15391 - "__ rclq(rcx, 4);", // IID15392 - "__ rclq(rcx, 8);", // IID15393 - "__ rclq(rcx, 16);", // IID15394 - "__ rclq(rdx, 1);", // IID15395 - "__ rclq(rdx, 2);", // IID15396 - "__ rclq(rdx, 4);", // IID15397 - "__ rclq(rdx, 8);", // IID15398 - "__ rclq(rdx, 16);", // IID15399 - "__ rclq(rbx, 1);", // IID15400 - "__ rclq(rbx, 2);", // IID15401 - "__ rclq(rbx, 4);", // IID15402 - "__ rclq(rbx, 8);", // IID15403 - "__ rclq(rbx, 16);", // IID15404 - "__ rclq(r8, 1);", // IID15405 - "__ rclq(r8, 2);", // IID15406 - "__ rclq(r8, 4);", // IID15407 - "__ rclq(r8, 8);", // IID15408 - "__ rclq(r8, 16);", // IID15409 - "__ rclq(r9, 1);", // IID15410 - "__ rclq(r9, 2);", // IID15411 - "__ rclq(r9, 4);", // IID15412 - "__ rclq(r9, 8);", // IID15413 - "__ rclq(r9, 16);", // IID15414 - "__ rclq(r10, 1);", // IID15415 - "__ rclq(r10, 2);", // IID15416 - "__ rclq(r10, 4);", // IID15417 - "__ rclq(r10, 8);", // IID15418 - "__ rclq(r10, 16);", // IID15419 - "__ rclq(r11, 1);", // IID15420 - "__ rclq(r11, 2);", // IID15421 - "__ rclq(r11, 4);", // IID15422 - "__ rclq(r11, 8);", // IID15423 - "__ rclq(r11, 16);", // IID15424 - "__ rclq(r12, 1);", // IID15425 - "__ rclq(r12, 2);", // IID15426 - "__ rclq(r12, 4);", // IID15427 - "__ rclq(r12, 8);", // IID15428 - "__ rclq(r12, 16);", // IID15429 - "__ rclq(r13, 1);", // IID15430 - "__ rclq(r13, 2);", // IID15431 - "__ rclq(r13, 4);", // IID15432 - "__ rclq(r13, 8);", // IID15433 - "__ rclq(r13, 16);", // IID15434 - "__ rclq(r14, 1);", // IID15435 - "__ rclq(r14, 2);", // IID15436 - "__ rclq(r14, 4);", // IID15437 - "__ rclq(r14, 8);", // IID15438 - "__ rclq(r14, 16);", // IID15439 - "__ rclq(r15, 1);", // IID15440 - "__ rclq(r15, 2);", // IID15441 - "__ rclq(r15, 4);", // IID15442 - "__ rclq(r15, 8);", // IID15443 - "__ rclq(r15, 16);", // IID15444 - "__ rclq(r16, 1);", // IID15445 - "__ rclq(r16, 2);", // IID15446 - "__ rclq(r16, 4);", // IID15447 - "__ rclq(r16, 8);", // IID15448 - "__ rclq(r16, 16);", // IID15449 - "__ rclq(r17, 1);", // IID15450 - "__ rclq(r17, 2);", // IID15451 - "__ rclq(r17, 4);", // IID15452 - "__ rclq(r17, 8);", // IID15453 - "__ rclq(r17, 16);", // IID15454 - "__ rclq(r18, 1);", // IID15455 - "__ rclq(r18, 2);", // IID15456 - "__ rclq(r18, 4);", // IID15457 - "__ rclq(r18, 8);", // IID15458 - "__ rclq(r18, 16);", // IID15459 - "__ rclq(r19, 1);", // IID15460 - "__ rclq(r19, 2);", // IID15461 - "__ rclq(r19, 4);", // IID15462 - "__ rclq(r19, 8);", // IID15463 - "__ rclq(r19, 16);", // IID15464 - "__ rclq(r20, 1);", // IID15465 - "__ rclq(r20, 2);", // IID15466 - "__ rclq(r20, 4);", // IID15467 - "__ rclq(r20, 8);", // IID15468 - "__ rclq(r20, 16);", // IID15469 - "__ rclq(r21, 1);", // IID15470 - "__ rclq(r21, 2);", // IID15471 - "__ rclq(r21, 4);", // IID15472 - "__ rclq(r21, 8);", // IID15473 - "__ rclq(r21, 16);", // IID15474 - "__ rclq(r22, 1);", // IID15475 - "__ rclq(r22, 2);", // IID15476 - "__ rclq(r22, 4);", // IID15477 - "__ rclq(r22, 8);", // IID15478 - "__ rclq(r22, 16);", // IID15479 - "__ rclq(r23, 1);", // IID15480 - "__ rclq(r23, 2);", // IID15481 - "__ rclq(r23, 4);", // IID15482 - "__ rclq(r23, 8);", // IID15483 - "__ rclq(r23, 16);", // IID15484 - "__ rclq(r24, 1);", // IID15485 - "__ rclq(r24, 2);", // IID15486 - "__ rclq(r24, 4);", // IID15487 - "__ rclq(r24, 8);", // IID15488 - "__ rclq(r24, 16);", // IID15489 - "__ rclq(r25, 1);", // IID15490 - "__ rclq(r25, 2);", // IID15491 - "__ rclq(r25, 4);", // IID15492 - "__ rclq(r25, 8);", // IID15493 - "__ rclq(r25, 16);", // IID15494 - "__ rclq(r26, 1);", // IID15495 - "__ rclq(r26, 2);", // IID15496 - "__ rclq(r26, 4);", // IID15497 - "__ rclq(r26, 8);", // IID15498 - "__ rclq(r26, 16);", // IID15499 - "__ rclq(r27, 1);", // IID15500 - "__ rclq(r27, 2);", // IID15501 - "__ rclq(r27, 4);", // IID15502 - "__ rclq(r27, 8);", // IID15503 - "__ rclq(r27, 16);", // IID15504 - "__ rclq(r28, 1);", // IID15505 - "__ rclq(r28, 2);", // IID15506 - "__ rclq(r28, 4);", // IID15507 - "__ rclq(r28, 8);", // IID15508 - "__ rclq(r28, 16);", // IID15509 - "__ rclq(r29, 1);", // IID15510 - "__ rclq(r29, 2);", // IID15511 - "__ rclq(r29, 4);", // IID15512 - "__ rclq(r29, 8);", // IID15513 - "__ rclq(r29, 16);", // IID15514 - "__ rclq(r30, 1);", // IID15515 - "__ rclq(r30, 2);", // IID15516 - "__ rclq(r30, 4);", // IID15517 - "__ rclq(r30, 8);", // IID15518 - "__ rclq(r30, 16);", // IID15519 - "__ rclq(r31, 1);", // IID15520 - "__ rclq(r31, 2);", // IID15521 - "__ rclq(r31, 4);", // IID15522 - "__ rclq(r31, 8);", // IID15523 - "__ rclq(r31, 16);", // IID15524 - "__ rcrq(rcx, 1);", // IID15525 - "__ rcrq(rcx, 2);", // IID15526 - "__ rcrq(rcx, 4);", // IID15527 - "__ rcrq(rcx, 8);", // IID15528 - "__ rcrq(rcx, 16);", // IID15529 - "__ rcrq(rdx, 1);", // IID15530 - "__ rcrq(rdx, 2);", // IID15531 - "__ rcrq(rdx, 4);", // IID15532 - "__ rcrq(rdx, 8);", // IID15533 - "__ rcrq(rdx, 16);", // IID15534 - "__ rcrq(rbx, 1);", // IID15535 - "__ rcrq(rbx, 2);", // IID15536 - "__ rcrq(rbx, 4);", // IID15537 - "__ rcrq(rbx, 8);", // IID15538 - "__ rcrq(rbx, 16);", // IID15539 - "__ rcrq(r8, 1);", // IID15540 - "__ rcrq(r8, 2);", // IID15541 - "__ rcrq(r8, 4);", // IID15542 - "__ rcrq(r8, 8);", // IID15543 - "__ rcrq(r8, 16);", // IID15544 - "__ rcrq(r9, 1);", // IID15545 - "__ rcrq(r9, 2);", // IID15546 - "__ rcrq(r9, 4);", // IID15547 - "__ rcrq(r9, 8);", // IID15548 - "__ rcrq(r9, 16);", // IID15549 - "__ rcrq(r10, 1);", // IID15550 - "__ rcrq(r10, 2);", // IID15551 - "__ rcrq(r10, 4);", // IID15552 - "__ rcrq(r10, 8);", // IID15553 - "__ rcrq(r10, 16);", // IID15554 - "__ rcrq(r11, 1);", // IID15555 - "__ rcrq(r11, 2);", // IID15556 - "__ rcrq(r11, 4);", // IID15557 - "__ rcrq(r11, 8);", // IID15558 - "__ rcrq(r11, 16);", // IID15559 - "__ rcrq(r12, 1);", // IID15560 - "__ rcrq(r12, 2);", // IID15561 - "__ rcrq(r12, 4);", // IID15562 - "__ rcrq(r12, 8);", // IID15563 - "__ rcrq(r12, 16);", // IID15564 - "__ rcrq(r13, 1);", // IID15565 - "__ rcrq(r13, 2);", // IID15566 - "__ rcrq(r13, 4);", // IID15567 - "__ rcrq(r13, 8);", // IID15568 - "__ rcrq(r13, 16);", // IID15569 - "__ rcrq(r14, 1);", // IID15570 - "__ rcrq(r14, 2);", // IID15571 - "__ rcrq(r14, 4);", // IID15572 - "__ rcrq(r14, 8);", // IID15573 - "__ rcrq(r14, 16);", // IID15574 - "__ rcrq(r15, 1);", // IID15575 - "__ rcrq(r15, 2);", // IID15576 - "__ rcrq(r15, 4);", // IID15577 - "__ rcrq(r15, 8);", // IID15578 - "__ rcrq(r15, 16);", // IID15579 - "__ rcrq(r16, 1);", // IID15580 - "__ rcrq(r16, 2);", // IID15581 - "__ rcrq(r16, 4);", // IID15582 - "__ rcrq(r16, 8);", // IID15583 - "__ rcrq(r16, 16);", // IID15584 - "__ rcrq(r17, 1);", // IID15585 - "__ rcrq(r17, 2);", // IID15586 - "__ rcrq(r17, 4);", // IID15587 - "__ rcrq(r17, 8);", // IID15588 - "__ rcrq(r17, 16);", // IID15589 - "__ rcrq(r18, 1);", // IID15590 - "__ rcrq(r18, 2);", // IID15591 - "__ rcrq(r18, 4);", // IID15592 - "__ rcrq(r18, 8);", // IID15593 - "__ rcrq(r18, 16);", // IID15594 - "__ rcrq(r19, 1);", // IID15595 - "__ rcrq(r19, 2);", // IID15596 - "__ rcrq(r19, 4);", // IID15597 - "__ rcrq(r19, 8);", // IID15598 - "__ rcrq(r19, 16);", // IID15599 - "__ rcrq(r20, 1);", // IID15600 - "__ rcrq(r20, 2);", // IID15601 - "__ rcrq(r20, 4);", // IID15602 - "__ rcrq(r20, 8);", // IID15603 - "__ rcrq(r20, 16);", // IID15604 - "__ rcrq(r21, 1);", // IID15605 - "__ rcrq(r21, 2);", // IID15606 - "__ rcrq(r21, 4);", // IID15607 - "__ rcrq(r21, 8);", // IID15608 - "__ rcrq(r21, 16);", // IID15609 - "__ rcrq(r22, 1);", // IID15610 - "__ rcrq(r22, 2);", // IID15611 - "__ rcrq(r22, 4);", // IID15612 - "__ rcrq(r22, 8);", // IID15613 - "__ rcrq(r22, 16);", // IID15614 - "__ rcrq(r23, 1);", // IID15615 - "__ rcrq(r23, 2);", // IID15616 - "__ rcrq(r23, 4);", // IID15617 - "__ rcrq(r23, 8);", // IID15618 - "__ rcrq(r23, 16);", // IID15619 - "__ rcrq(r24, 1);", // IID15620 - "__ rcrq(r24, 2);", // IID15621 - "__ rcrq(r24, 4);", // IID15622 - "__ rcrq(r24, 8);", // IID15623 - "__ rcrq(r24, 16);", // IID15624 - "__ rcrq(r25, 1);", // IID15625 - "__ rcrq(r25, 2);", // IID15626 - "__ rcrq(r25, 4);", // IID15627 - "__ rcrq(r25, 8);", // IID15628 - "__ rcrq(r25, 16);", // IID15629 - "__ rcrq(r26, 1);", // IID15630 - "__ rcrq(r26, 2);", // IID15631 - "__ rcrq(r26, 4);", // IID15632 - "__ rcrq(r26, 8);", // IID15633 - "__ rcrq(r26, 16);", // IID15634 - "__ rcrq(r27, 1);", // IID15635 - "__ rcrq(r27, 2);", // IID15636 - "__ rcrq(r27, 4);", // IID15637 - "__ rcrq(r27, 8);", // IID15638 - "__ rcrq(r27, 16);", // IID15639 - "__ rcrq(r28, 1);", // IID15640 - "__ rcrq(r28, 2);", // IID15641 - "__ rcrq(r28, 4);", // IID15642 - "__ rcrq(r28, 8);", // IID15643 - "__ rcrq(r28, 16);", // IID15644 - "__ rcrq(r29, 1);", // IID15645 - "__ rcrq(r29, 2);", // IID15646 - "__ rcrq(r29, 4);", // IID15647 - "__ rcrq(r29, 8);", // IID15648 - "__ rcrq(r29, 16);", // IID15649 - "__ rcrq(r30, 1);", // IID15650 - "__ rcrq(r30, 2);", // IID15651 - "__ rcrq(r30, 4);", // IID15652 - "__ rcrq(r30, 8);", // IID15653 - "__ rcrq(r30, 16);", // IID15654 - "__ rcrq(r31, 1);", // IID15655 - "__ rcrq(r31, 2);", // IID15656 - "__ rcrq(r31, 4);", // IID15657 - "__ rcrq(r31, 8);", // IID15658 - "__ rcrq(r31, 16);", // IID15659 - "__ rolq(rcx, 1);", // IID15660 - "__ rolq(rcx, 2);", // IID15661 - "__ rolq(rcx, 4);", // IID15662 - "__ rolq(rcx, 8);", // IID15663 - "__ rolq(rcx, 16);", // IID15664 - "__ rolq(rdx, 1);", // IID15665 - "__ rolq(rdx, 2);", // IID15666 - "__ rolq(rdx, 4);", // IID15667 - "__ rolq(rdx, 8);", // IID15668 - "__ rolq(rdx, 16);", // IID15669 - "__ rolq(rbx, 1);", // IID15670 - "__ rolq(rbx, 2);", // IID15671 - "__ rolq(rbx, 4);", // IID15672 - "__ rolq(rbx, 8);", // IID15673 - "__ rolq(rbx, 16);", // IID15674 - "__ rolq(r8, 1);", // IID15675 - "__ rolq(r8, 2);", // IID15676 - "__ rolq(r8, 4);", // IID15677 - "__ rolq(r8, 8);", // IID15678 - "__ rolq(r8, 16);", // IID15679 - "__ rolq(r9, 1);", // IID15680 - "__ rolq(r9, 2);", // IID15681 - "__ rolq(r9, 4);", // IID15682 - "__ rolq(r9, 8);", // IID15683 - "__ rolq(r9, 16);", // IID15684 - "__ rolq(r10, 1);", // IID15685 - "__ rolq(r10, 2);", // IID15686 - "__ rolq(r10, 4);", // IID15687 - "__ rolq(r10, 8);", // IID15688 - "__ rolq(r10, 16);", // IID15689 - "__ rolq(r11, 1);", // IID15690 - "__ rolq(r11, 2);", // IID15691 - "__ rolq(r11, 4);", // IID15692 - "__ rolq(r11, 8);", // IID15693 - "__ rolq(r11, 16);", // IID15694 - "__ rolq(r12, 1);", // IID15695 - "__ rolq(r12, 2);", // IID15696 - "__ rolq(r12, 4);", // IID15697 - "__ rolq(r12, 8);", // IID15698 - "__ rolq(r12, 16);", // IID15699 - "__ rolq(r13, 1);", // IID15700 - "__ rolq(r13, 2);", // IID15701 - "__ rolq(r13, 4);", // IID15702 - "__ rolq(r13, 8);", // IID15703 - "__ rolq(r13, 16);", // IID15704 - "__ rolq(r14, 1);", // IID15705 - "__ rolq(r14, 2);", // IID15706 - "__ rolq(r14, 4);", // IID15707 - "__ rolq(r14, 8);", // IID15708 - "__ rolq(r14, 16);", // IID15709 - "__ rolq(r15, 1);", // IID15710 - "__ rolq(r15, 2);", // IID15711 - "__ rolq(r15, 4);", // IID15712 - "__ rolq(r15, 8);", // IID15713 - "__ rolq(r15, 16);", // IID15714 - "__ rolq(r16, 1);", // IID15715 - "__ rolq(r16, 2);", // IID15716 - "__ rolq(r16, 4);", // IID15717 - "__ rolq(r16, 8);", // IID15718 - "__ rolq(r16, 16);", // IID15719 - "__ rolq(r17, 1);", // IID15720 - "__ rolq(r17, 2);", // IID15721 - "__ rolq(r17, 4);", // IID15722 - "__ rolq(r17, 8);", // IID15723 - "__ rolq(r17, 16);", // IID15724 - "__ rolq(r18, 1);", // IID15725 - "__ rolq(r18, 2);", // IID15726 - "__ rolq(r18, 4);", // IID15727 - "__ rolq(r18, 8);", // IID15728 - "__ rolq(r18, 16);", // IID15729 - "__ rolq(r19, 1);", // IID15730 - "__ rolq(r19, 2);", // IID15731 - "__ rolq(r19, 4);", // IID15732 - "__ rolq(r19, 8);", // IID15733 - "__ rolq(r19, 16);", // IID15734 - "__ rolq(r20, 1);", // IID15735 - "__ rolq(r20, 2);", // IID15736 - "__ rolq(r20, 4);", // IID15737 - "__ rolq(r20, 8);", // IID15738 - "__ rolq(r20, 16);", // IID15739 - "__ rolq(r21, 1);", // IID15740 - "__ rolq(r21, 2);", // IID15741 - "__ rolq(r21, 4);", // IID15742 - "__ rolq(r21, 8);", // IID15743 - "__ rolq(r21, 16);", // IID15744 - "__ rolq(r22, 1);", // IID15745 - "__ rolq(r22, 2);", // IID15746 - "__ rolq(r22, 4);", // IID15747 - "__ rolq(r22, 8);", // IID15748 - "__ rolq(r22, 16);", // IID15749 - "__ rolq(r23, 1);", // IID15750 - "__ rolq(r23, 2);", // IID15751 - "__ rolq(r23, 4);", // IID15752 - "__ rolq(r23, 8);", // IID15753 - "__ rolq(r23, 16);", // IID15754 - "__ rolq(r24, 1);", // IID15755 - "__ rolq(r24, 2);", // IID15756 - "__ rolq(r24, 4);", // IID15757 - "__ rolq(r24, 8);", // IID15758 - "__ rolq(r24, 16);", // IID15759 - "__ rolq(r25, 1);", // IID15760 - "__ rolq(r25, 2);", // IID15761 - "__ rolq(r25, 4);", // IID15762 - "__ rolq(r25, 8);", // IID15763 - "__ rolq(r25, 16);", // IID15764 - "__ rolq(r26, 1);", // IID15765 - "__ rolq(r26, 2);", // IID15766 - "__ rolq(r26, 4);", // IID15767 - "__ rolq(r26, 8);", // IID15768 - "__ rolq(r26, 16);", // IID15769 - "__ rolq(r27, 1);", // IID15770 - "__ rolq(r27, 2);", // IID15771 - "__ rolq(r27, 4);", // IID15772 - "__ rolq(r27, 8);", // IID15773 - "__ rolq(r27, 16);", // IID15774 - "__ rolq(r28, 1);", // IID15775 - "__ rolq(r28, 2);", // IID15776 - "__ rolq(r28, 4);", // IID15777 - "__ rolq(r28, 8);", // IID15778 - "__ rolq(r28, 16);", // IID15779 - "__ rolq(r29, 1);", // IID15780 - "__ rolq(r29, 2);", // IID15781 - "__ rolq(r29, 4);", // IID15782 - "__ rolq(r29, 8);", // IID15783 - "__ rolq(r29, 16);", // IID15784 - "__ rolq(r30, 1);", // IID15785 - "__ rolq(r30, 2);", // IID15786 - "__ rolq(r30, 4);", // IID15787 - "__ rolq(r30, 8);", // IID15788 - "__ rolq(r30, 16);", // IID15789 - "__ rolq(r31, 1);", // IID15790 - "__ rolq(r31, 2);", // IID15791 - "__ rolq(r31, 4);", // IID15792 - "__ rolq(r31, 8);", // IID15793 - "__ rolq(r31, 16);", // IID15794 - "__ rorq(rcx, 1);", // IID15795 - "__ rorq(rcx, 2);", // IID15796 - "__ rorq(rcx, 4);", // IID15797 - "__ rorq(rcx, 8);", // IID15798 - "__ rorq(rcx, 16);", // IID15799 - "__ rorq(rdx, 1);", // IID15800 - "__ rorq(rdx, 2);", // IID15801 - "__ rorq(rdx, 4);", // IID15802 - "__ rorq(rdx, 8);", // IID15803 - "__ rorq(rdx, 16);", // IID15804 - "__ rorq(rbx, 1);", // IID15805 - "__ rorq(rbx, 2);", // IID15806 - "__ rorq(rbx, 4);", // IID15807 - "__ rorq(rbx, 8);", // IID15808 - "__ rorq(rbx, 16);", // IID15809 - "__ rorq(r8, 1);", // IID15810 - "__ rorq(r8, 2);", // IID15811 - "__ rorq(r8, 4);", // IID15812 - "__ rorq(r8, 8);", // IID15813 - "__ rorq(r8, 16);", // IID15814 - "__ rorq(r9, 1);", // IID15815 - "__ rorq(r9, 2);", // IID15816 - "__ rorq(r9, 4);", // IID15817 - "__ rorq(r9, 8);", // IID15818 - "__ rorq(r9, 16);", // IID15819 - "__ rorq(r10, 1);", // IID15820 - "__ rorq(r10, 2);", // IID15821 - "__ rorq(r10, 4);", // IID15822 - "__ rorq(r10, 8);", // IID15823 - "__ rorq(r10, 16);", // IID15824 - "__ rorq(r11, 1);", // IID15825 - "__ rorq(r11, 2);", // IID15826 - "__ rorq(r11, 4);", // IID15827 - "__ rorq(r11, 8);", // IID15828 - "__ rorq(r11, 16);", // IID15829 - "__ rorq(r12, 1);", // IID15830 - "__ rorq(r12, 2);", // IID15831 - "__ rorq(r12, 4);", // IID15832 - "__ rorq(r12, 8);", // IID15833 - "__ rorq(r12, 16);", // IID15834 - "__ rorq(r13, 1);", // IID15835 - "__ rorq(r13, 2);", // IID15836 - "__ rorq(r13, 4);", // IID15837 - "__ rorq(r13, 8);", // IID15838 - "__ rorq(r13, 16);", // IID15839 - "__ rorq(r14, 1);", // IID15840 - "__ rorq(r14, 2);", // IID15841 - "__ rorq(r14, 4);", // IID15842 - "__ rorq(r14, 8);", // IID15843 - "__ rorq(r14, 16);", // IID15844 - "__ rorq(r15, 1);", // IID15845 - "__ rorq(r15, 2);", // IID15846 - "__ rorq(r15, 4);", // IID15847 - "__ rorq(r15, 8);", // IID15848 - "__ rorq(r15, 16);", // IID15849 - "__ rorq(r16, 1);", // IID15850 - "__ rorq(r16, 2);", // IID15851 - "__ rorq(r16, 4);", // IID15852 - "__ rorq(r16, 8);", // IID15853 - "__ rorq(r16, 16);", // IID15854 - "__ rorq(r17, 1);", // IID15855 - "__ rorq(r17, 2);", // IID15856 - "__ rorq(r17, 4);", // IID15857 - "__ rorq(r17, 8);", // IID15858 - "__ rorq(r17, 16);", // IID15859 - "__ rorq(r18, 1);", // IID15860 - "__ rorq(r18, 2);", // IID15861 - "__ rorq(r18, 4);", // IID15862 - "__ rorq(r18, 8);", // IID15863 - "__ rorq(r18, 16);", // IID15864 - "__ rorq(r19, 1);", // IID15865 - "__ rorq(r19, 2);", // IID15866 - "__ rorq(r19, 4);", // IID15867 - "__ rorq(r19, 8);", // IID15868 - "__ rorq(r19, 16);", // IID15869 - "__ rorq(r20, 1);", // IID15870 - "__ rorq(r20, 2);", // IID15871 - "__ rorq(r20, 4);", // IID15872 - "__ rorq(r20, 8);", // IID15873 - "__ rorq(r20, 16);", // IID15874 - "__ rorq(r21, 1);", // IID15875 - "__ rorq(r21, 2);", // IID15876 - "__ rorq(r21, 4);", // IID15877 - "__ rorq(r21, 8);", // IID15878 - "__ rorq(r21, 16);", // IID15879 - "__ rorq(r22, 1);", // IID15880 - "__ rorq(r22, 2);", // IID15881 - "__ rorq(r22, 4);", // IID15882 - "__ rorq(r22, 8);", // IID15883 - "__ rorq(r22, 16);", // IID15884 - "__ rorq(r23, 1);", // IID15885 - "__ rorq(r23, 2);", // IID15886 - "__ rorq(r23, 4);", // IID15887 - "__ rorq(r23, 8);", // IID15888 - "__ rorq(r23, 16);", // IID15889 - "__ rorq(r24, 1);", // IID15890 - "__ rorq(r24, 2);", // IID15891 - "__ rorq(r24, 4);", // IID15892 - "__ rorq(r24, 8);", // IID15893 - "__ rorq(r24, 16);", // IID15894 - "__ rorq(r25, 1);", // IID15895 - "__ rorq(r25, 2);", // IID15896 - "__ rorq(r25, 4);", // IID15897 - "__ rorq(r25, 8);", // IID15898 - "__ rorq(r25, 16);", // IID15899 - "__ rorq(r26, 1);", // IID15900 - "__ rorq(r26, 2);", // IID15901 - "__ rorq(r26, 4);", // IID15902 - "__ rorq(r26, 8);", // IID15903 - "__ rorq(r26, 16);", // IID15904 - "__ rorq(r27, 1);", // IID15905 - "__ rorq(r27, 2);", // IID15906 - "__ rorq(r27, 4);", // IID15907 - "__ rorq(r27, 8);", // IID15908 - "__ rorq(r27, 16);", // IID15909 - "__ rorq(r28, 1);", // IID15910 - "__ rorq(r28, 2);", // IID15911 - "__ rorq(r28, 4);", // IID15912 - "__ rorq(r28, 8);", // IID15913 - "__ rorq(r28, 16);", // IID15914 - "__ rorq(r29, 1);", // IID15915 - "__ rorq(r29, 2);", // IID15916 - "__ rorq(r29, 4);", // IID15917 - "__ rorq(r29, 8);", // IID15918 - "__ rorq(r29, 16);", // IID15919 - "__ rorq(r30, 1);", // IID15920 - "__ rorq(r30, 2);", // IID15921 - "__ rorq(r30, 4);", // IID15922 - "__ rorq(r30, 8);", // IID15923 - "__ rorq(r30, 16);", // IID15924 - "__ rorq(r31, 1);", // IID15925 - "__ rorq(r31, 2);", // IID15926 - "__ rorq(r31, 4);", // IID15927 - "__ rorq(r31, 8);", // IID15928 - "__ rorq(r31, 16);", // IID15929 - "__ sarq(rcx, 1);", // IID15930 - "__ sarq(rcx, 2);", // IID15931 - "__ sarq(rcx, 4);", // IID15932 - "__ sarq(rcx, 8);", // IID15933 - "__ sarq(rcx, 16);", // IID15934 - "__ sarq(rdx, 1);", // IID15935 - "__ sarq(rdx, 2);", // IID15936 - "__ sarq(rdx, 4);", // IID15937 - "__ sarq(rdx, 8);", // IID15938 - "__ sarq(rdx, 16);", // IID15939 - "__ sarq(rbx, 1);", // IID15940 - "__ sarq(rbx, 2);", // IID15941 - "__ sarq(rbx, 4);", // IID15942 - "__ sarq(rbx, 8);", // IID15943 - "__ sarq(rbx, 16);", // IID15944 - "__ sarq(r8, 1);", // IID15945 - "__ sarq(r8, 2);", // IID15946 - "__ sarq(r8, 4);", // IID15947 - "__ sarq(r8, 8);", // IID15948 - "__ sarq(r8, 16);", // IID15949 - "__ sarq(r9, 1);", // IID15950 - "__ sarq(r9, 2);", // IID15951 - "__ sarq(r9, 4);", // IID15952 - "__ sarq(r9, 8);", // IID15953 - "__ sarq(r9, 16);", // IID15954 - "__ sarq(r10, 1);", // IID15955 - "__ sarq(r10, 2);", // IID15956 - "__ sarq(r10, 4);", // IID15957 - "__ sarq(r10, 8);", // IID15958 - "__ sarq(r10, 16);", // IID15959 - "__ sarq(r11, 1);", // IID15960 - "__ sarq(r11, 2);", // IID15961 - "__ sarq(r11, 4);", // IID15962 - "__ sarq(r11, 8);", // IID15963 - "__ sarq(r11, 16);", // IID15964 - "__ sarq(r12, 1);", // IID15965 - "__ sarq(r12, 2);", // IID15966 - "__ sarq(r12, 4);", // IID15967 - "__ sarq(r12, 8);", // IID15968 - "__ sarq(r12, 16);", // IID15969 - "__ sarq(r13, 1);", // IID15970 - "__ sarq(r13, 2);", // IID15971 - "__ sarq(r13, 4);", // IID15972 - "__ sarq(r13, 8);", // IID15973 - "__ sarq(r13, 16);", // IID15974 - "__ sarq(r14, 1);", // IID15975 - "__ sarq(r14, 2);", // IID15976 - "__ sarq(r14, 4);", // IID15977 - "__ sarq(r14, 8);", // IID15978 - "__ sarq(r14, 16);", // IID15979 - "__ sarq(r15, 1);", // IID15980 - "__ sarq(r15, 2);", // IID15981 - "__ sarq(r15, 4);", // IID15982 - "__ sarq(r15, 8);", // IID15983 - "__ sarq(r15, 16);", // IID15984 - "__ sarq(r16, 1);", // IID15985 - "__ sarq(r16, 2);", // IID15986 - "__ sarq(r16, 4);", // IID15987 - "__ sarq(r16, 8);", // IID15988 - "__ sarq(r16, 16);", // IID15989 - "__ sarq(r17, 1);", // IID15990 - "__ sarq(r17, 2);", // IID15991 - "__ sarq(r17, 4);", // IID15992 - "__ sarq(r17, 8);", // IID15993 - "__ sarq(r17, 16);", // IID15994 - "__ sarq(r18, 1);", // IID15995 - "__ sarq(r18, 2);", // IID15996 - "__ sarq(r18, 4);", // IID15997 - "__ sarq(r18, 8);", // IID15998 - "__ sarq(r18, 16);", // IID15999 - "__ sarq(r19, 1);", // IID16000 - "__ sarq(r19, 2);", // IID16001 - "__ sarq(r19, 4);", // IID16002 - "__ sarq(r19, 8);", // IID16003 - "__ sarq(r19, 16);", // IID16004 - "__ sarq(r20, 1);", // IID16005 - "__ sarq(r20, 2);", // IID16006 - "__ sarq(r20, 4);", // IID16007 - "__ sarq(r20, 8);", // IID16008 - "__ sarq(r20, 16);", // IID16009 - "__ sarq(r21, 1);", // IID16010 - "__ sarq(r21, 2);", // IID16011 - "__ sarq(r21, 4);", // IID16012 - "__ sarq(r21, 8);", // IID16013 - "__ sarq(r21, 16);", // IID16014 - "__ sarq(r22, 1);", // IID16015 - "__ sarq(r22, 2);", // IID16016 - "__ sarq(r22, 4);", // IID16017 - "__ sarq(r22, 8);", // IID16018 - "__ sarq(r22, 16);", // IID16019 - "__ sarq(r23, 1);", // IID16020 - "__ sarq(r23, 2);", // IID16021 - "__ sarq(r23, 4);", // IID16022 - "__ sarq(r23, 8);", // IID16023 - "__ sarq(r23, 16);", // IID16024 - "__ sarq(r24, 1);", // IID16025 - "__ sarq(r24, 2);", // IID16026 - "__ sarq(r24, 4);", // IID16027 - "__ sarq(r24, 8);", // IID16028 - "__ sarq(r24, 16);", // IID16029 - "__ sarq(r25, 1);", // IID16030 - "__ sarq(r25, 2);", // IID16031 - "__ sarq(r25, 4);", // IID16032 - "__ sarq(r25, 8);", // IID16033 - "__ sarq(r25, 16);", // IID16034 - "__ sarq(r26, 1);", // IID16035 - "__ sarq(r26, 2);", // IID16036 - "__ sarq(r26, 4);", // IID16037 - "__ sarq(r26, 8);", // IID16038 - "__ sarq(r26, 16);", // IID16039 - "__ sarq(r27, 1);", // IID16040 - "__ sarq(r27, 2);", // IID16041 - "__ sarq(r27, 4);", // IID16042 - "__ sarq(r27, 8);", // IID16043 - "__ sarq(r27, 16);", // IID16044 - "__ sarq(r28, 1);", // IID16045 - "__ sarq(r28, 2);", // IID16046 - "__ sarq(r28, 4);", // IID16047 - "__ sarq(r28, 8);", // IID16048 - "__ sarq(r28, 16);", // IID16049 - "__ sarq(r29, 1);", // IID16050 - "__ sarq(r29, 2);", // IID16051 - "__ sarq(r29, 4);", // IID16052 - "__ sarq(r29, 8);", // IID16053 - "__ sarq(r29, 16);", // IID16054 - "__ sarq(r30, 1);", // IID16055 - "__ sarq(r30, 2);", // IID16056 - "__ sarq(r30, 4);", // IID16057 - "__ sarq(r30, 8);", // IID16058 - "__ sarq(r30, 16);", // IID16059 - "__ sarq(r31, 1);", // IID16060 - "__ sarq(r31, 2);", // IID16061 - "__ sarq(r31, 4);", // IID16062 - "__ sarq(r31, 8);", // IID16063 - "__ sarq(r31, 16);", // IID16064 - "__ salq(rcx, 1);", // IID16065 - "__ salq(rcx, 2);", // IID16066 - "__ salq(rcx, 4);", // IID16067 - "__ salq(rcx, 8);", // IID16068 - "__ salq(rcx, 16);", // IID16069 - "__ salq(rdx, 1);", // IID16070 - "__ salq(rdx, 2);", // IID16071 - "__ salq(rdx, 4);", // IID16072 - "__ salq(rdx, 8);", // IID16073 - "__ salq(rdx, 16);", // IID16074 - "__ salq(rbx, 1);", // IID16075 - "__ salq(rbx, 2);", // IID16076 - "__ salq(rbx, 4);", // IID16077 - "__ salq(rbx, 8);", // IID16078 - "__ salq(rbx, 16);", // IID16079 - "__ salq(r8, 1);", // IID16080 - "__ salq(r8, 2);", // IID16081 - "__ salq(r8, 4);", // IID16082 - "__ salq(r8, 8);", // IID16083 - "__ salq(r8, 16);", // IID16084 - "__ salq(r9, 1);", // IID16085 - "__ salq(r9, 2);", // IID16086 - "__ salq(r9, 4);", // IID16087 - "__ salq(r9, 8);", // IID16088 - "__ salq(r9, 16);", // IID16089 - "__ salq(r10, 1);", // IID16090 - "__ salq(r10, 2);", // IID16091 - "__ salq(r10, 4);", // IID16092 - "__ salq(r10, 8);", // IID16093 - "__ salq(r10, 16);", // IID16094 - "__ salq(r11, 1);", // IID16095 - "__ salq(r11, 2);", // IID16096 - "__ salq(r11, 4);", // IID16097 - "__ salq(r11, 8);", // IID16098 - "__ salq(r11, 16);", // IID16099 - "__ salq(r12, 1);", // IID16100 - "__ salq(r12, 2);", // IID16101 - "__ salq(r12, 4);", // IID16102 - "__ salq(r12, 8);", // IID16103 - "__ salq(r12, 16);", // IID16104 - "__ salq(r13, 1);", // IID16105 - "__ salq(r13, 2);", // IID16106 - "__ salq(r13, 4);", // IID16107 - "__ salq(r13, 8);", // IID16108 - "__ salq(r13, 16);", // IID16109 - "__ salq(r14, 1);", // IID16110 - "__ salq(r14, 2);", // IID16111 - "__ salq(r14, 4);", // IID16112 - "__ salq(r14, 8);", // IID16113 - "__ salq(r14, 16);", // IID16114 - "__ salq(r15, 1);", // IID16115 - "__ salq(r15, 2);", // IID16116 - "__ salq(r15, 4);", // IID16117 - "__ salq(r15, 8);", // IID16118 - "__ salq(r15, 16);", // IID16119 - "__ salq(r16, 1);", // IID16120 - "__ salq(r16, 2);", // IID16121 - "__ salq(r16, 4);", // IID16122 - "__ salq(r16, 8);", // IID16123 - "__ salq(r16, 16);", // IID16124 - "__ salq(r17, 1);", // IID16125 - "__ salq(r17, 2);", // IID16126 - "__ salq(r17, 4);", // IID16127 - "__ salq(r17, 8);", // IID16128 - "__ salq(r17, 16);", // IID16129 - "__ salq(r18, 1);", // IID16130 - "__ salq(r18, 2);", // IID16131 - "__ salq(r18, 4);", // IID16132 - "__ salq(r18, 8);", // IID16133 - "__ salq(r18, 16);", // IID16134 - "__ salq(r19, 1);", // IID16135 - "__ salq(r19, 2);", // IID16136 - "__ salq(r19, 4);", // IID16137 - "__ salq(r19, 8);", // IID16138 - "__ salq(r19, 16);", // IID16139 - "__ salq(r20, 1);", // IID16140 - "__ salq(r20, 2);", // IID16141 - "__ salq(r20, 4);", // IID16142 - "__ salq(r20, 8);", // IID16143 - "__ salq(r20, 16);", // IID16144 - "__ salq(r21, 1);", // IID16145 - "__ salq(r21, 2);", // IID16146 - "__ salq(r21, 4);", // IID16147 - "__ salq(r21, 8);", // IID16148 - "__ salq(r21, 16);", // IID16149 - "__ salq(r22, 1);", // IID16150 - "__ salq(r22, 2);", // IID16151 - "__ salq(r22, 4);", // IID16152 - "__ salq(r22, 8);", // IID16153 - "__ salq(r22, 16);", // IID16154 - "__ salq(r23, 1);", // IID16155 - "__ salq(r23, 2);", // IID16156 - "__ salq(r23, 4);", // IID16157 - "__ salq(r23, 8);", // IID16158 - "__ salq(r23, 16);", // IID16159 - "__ salq(r24, 1);", // IID16160 - "__ salq(r24, 2);", // IID16161 - "__ salq(r24, 4);", // IID16162 - "__ salq(r24, 8);", // IID16163 - "__ salq(r24, 16);", // IID16164 - "__ salq(r25, 1);", // IID16165 - "__ salq(r25, 2);", // IID16166 - "__ salq(r25, 4);", // IID16167 - "__ salq(r25, 8);", // IID16168 - "__ salq(r25, 16);", // IID16169 - "__ salq(r26, 1);", // IID16170 - "__ salq(r26, 2);", // IID16171 - "__ salq(r26, 4);", // IID16172 - "__ salq(r26, 8);", // IID16173 - "__ salq(r26, 16);", // IID16174 - "__ salq(r27, 1);", // IID16175 - "__ salq(r27, 2);", // IID16176 - "__ salq(r27, 4);", // IID16177 - "__ salq(r27, 8);", // IID16178 - "__ salq(r27, 16);", // IID16179 - "__ salq(r28, 1);", // IID16180 - "__ salq(r28, 2);", // IID16181 - "__ salq(r28, 4);", // IID16182 - "__ salq(r28, 8);", // IID16183 - "__ salq(r28, 16);", // IID16184 - "__ salq(r29, 1);", // IID16185 - "__ salq(r29, 2);", // IID16186 - "__ salq(r29, 4);", // IID16187 - "__ salq(r29, 8);", // IID16188 - "__ salq(r29, 16);", // IID16189 - "__ salq(r30, 1);", // IID16190 - "__ salq(r30, 2);", // IID16191 - "__ salq(r30, 4);", // IID16192 - "__ salq(r30, 8);", // IID16193 - "__ salq(r30, 16);", // IID16194 - "__ salq(r31, 1);", // IID16195 - "__ salq(r31, 2);", // IID16196 - "__ salq(r31, 4);", // IID16197 - "__ salq(r31, 8);", // IID16198 - "__ salq(r31, 16);", // IID16199 - "__ sbbq(rcx, 1);", // IID16200 - "__ sbbq(rcx, 16);", // IID16201 - "__ sbbq(rcx, 256);", // IID16202 - "__ sbbq(rcx, 4096);", // IID16203 - "__ sbbq(rcx, 65536);", // IID16204 - "__ sbbq(rcx, 1048576);", // IID16205 - "__ sbbq(rcx, 16777216);", // IID16206 - "__ sbbq(rcx, 268435456);", // IID16207 - "__ sbbq(rdx, 1);", // IID16208 - "__ sbbq(rdx, 16);", // IID16209 - "__ sbbq(rdx, 256);", // IID16210 - "__ sbbq(rdx, 4096);", // IID16211 - "__ sbbq(rdx, 65536);", // IID16212 - "__ sbbq(rdx, 1048576);", // IID16213 - "__ sbbq(rdx, 16777216);", // IID16214 - "__ sbbq(rdx, 268435456);", // IID16215 - "__ sbbq(rbx, 1);", // IID16216 - "__ sbbq(rbx, 16);", // IID16217 - "__ sbbq(rbx, 256);", // IID16218 - "__ sbbq(rbx, 4096);", // IID16219 - "__ sbbq(rbx, 65536);", // IID16220 - "__ sbbq(rbx, 1048576);", // IID16221 - "__ sbbq(rbx, 16777216);", // IID16222 - "__ sbbq(rbx, 268435456);", // IID16223 - "__ sbbq(r8, 1);", // IID16224 - "__ sbbq(r8, 16);", // IID16225 - "__ sbbq(r8, 256);", // IID16226 - "__ sbbq(r8, 4096);", // IID16227 - "__ sbbq(r8, 65536);", // IID16228 - "__ sbbq(r8, 1048576);", // IID16229 - "__ sbbq(r8, 16777216);", // IID16230 - "__ sbbq(r8, 268435456);", // IID16231 - "__ sbbq(r9, 1);", // IID16232 - "__ sbbq(r9, 16);", // IID16233 - "__ sbbq(r9, 256);", // IID16234 - "__ sbbq(r9, 4096);", // IID16235 - "__ sbbq(r9, 65536);", // IID16236 - "__ sbbq(r9, 1048576);", // IID16237 - "__ sbbq(r9, 16777216);", // IID16238 - "__ sbbq(r9, 268435456);", // IID16239 - "__ sbbq(r10, 1);", // IID16240 - "__ sbbq(r10, 16);", // IID16241 - "__ sbbq(r10, 256);", // IID16242 - "__ sbbq(r10, 4096);", // IID16243 - "__ sbbq(r10, 65536);", // IID16244 - "__ sbbq(r10, 1048576);", // IID16245 - "__ sbbq(r10, 16777216);", // IID16246 - "__ sbbq(r10, 268435456);", // IID16247 - "__ sbbq(r11, 1);", // IID16248 - "__ sbbq(r11, 16);", // IID16249 - "__ sbbq(r11, 256);", // IID16250 - "__ sbbq(r11, 4096);", // IID16251 - "__ sbbq(r11, 65536);", // IID16252 - "__ sbbq(r11, 1048576);", // IID16253 - "__ sbbq(r11, 16777216);", // IID16254 - "__ sbbq(r11, 268435456);", // IID16255 - "__ sbbq(r12, 1);", // IID16256 - "__ sbbq(r12, 16);", // IID16257 - "__ sbbq(r12, 256);", // IID16258 - "__ sbbq(r12, 4096);", // IID16259 - "__ sbbq(r12, 65536);", // IID16260 - "__ sbbq(r12, 1048576);", // IID16261 - "__ sbbq(r12, 16777216);", // IID16262 - "__ sbbq(r12, 268435456);", // IID16263 - "__ sbbq(r13, 1);", // IID16264 - "__ sbbq(r13, 16);", // IID16265 - "__ sbbq(r13, 256);", // IID16266 - "__ sbbq(r13, 4096);", // IID16267 - "__ sbbq(r13, 65536);", // IID16268 - "__ sbbq(r13, 1048576);", // IID16269 - "__ sbbq(r13, 16777216);", // IID16270 - "__ sbbq(r13, 268435456);", // IID16271 - "__ sbbq(r14, 1);", // IID16272 - "__ sbbq(r14, 16);", // IID16273 - "__ sbbq(r14, 256);", // IID16274 - "__ sbbq(r14, 4096);", // IID16275 - "__ sbbq(r14, 65536);", // IID16276 - "__ sbbq(r14, 1048576);", // IID16277 - "__ sbbq(r14, 16777216);", // IID16278 - "__ sbbq(r14, 268435456);", // IID16279 - "__ sbbq(r15, 1);", // IID16280 - "__ sbbq(r15, 16);", // IID16281 - "__ sbbq(r15, 256);", // IID16282 - "__ sbbq(r15, 4096);", // IID16283 - "__ sbbq(r15, 65536);", // IID16284 - "__ sbbq(r15, 1048576);", // IID16285 - "__ sbbq(r15, 16777216);", // IID16286 - "__ sbbq(r15, 268435456);", // IID16287 - "__ sbbq(r16, 1);", // IID16288 - "__ sbbq(r16, 16);", // IID16289 - "__ sbbq(r16, 256);", // IID16290 - "__ sbbq(r16, 4096);", // IID16291 - "__ sbbq(r16, 65536);", // IID16292 - "__ sbbq(r16, 1048576);", // IID16293 - "__ sbbq(r16, 16777216);", // IID16294 - "__ sbbq(r16, 268435456);", // IID16295 - "__ sbbq(r17, 1);", // IID16296 - "__ sbbq(r17, 16);", // IID16297 - "__ sbbq(r17, 256);", // IID16298 - "__ sbbq(r17, 4096);", // IID16299 - "__ sbbq(r17, 65536);", // IID16300 - "__ sbbq(r17, 1048576);", // IID16301 - "__ sbbq(r17, 16777216);", // IID16302 - "__ sbbq(r17, 268435456);", // IID16303 - "__ sbbq(r18, 1);", // IID16304 - "__ sbbq(r18, 16);", // IID16305 - "__ sbbq(r18, 256);", // IID16306 - "__ sbbq(r18, 4096);", // IID16307 - "__ sbbq(r18, 65536);", // IID16308 - "__ sbbq(r18, 1048576);", // IID16309 - "__ sbbq(r18, 16777216);", // IID16310 - "__ sbbq(r18, 268435456);", // IID16311 - "__ sbbq(r19, 1);", // IID16312 - "__ sbbq(r19, 16);", // IID16313 - "__ sbbq(r19, 256);", // IID16314 - "__ sbbq(r19, 4096);", // IID16315 - "__ sbbq(r19, 65536);", // IID16316 - "__ sbbq(r19, 1048576);", // IID16317 - "__ sbbq(r19, 16777216);", // IID16318 - "__ sbbq(r19, 268435456);", // IID16319 - "__ sbbq(r20, 1);", // IID16320 - "__ sbbq(r20, 16);", // IID16321 - "__ sbbq(r20, 256);", // IID16322 - "__ sbbq(r20, 4096);", // IID16323 - "__ sbbq(r20, 65536);", // IID16324 - "__ sbbq(r20, 1048576);", // IID16325 - "__ sbbq(r20, 16777216);", // IID16326 - "__ sbbq(r20, 268435456);", // IID16327 - "__ sbbq(r21, 1);", // IID16328 - "__ sbbq(r21, 16);", // IID16329 - "__ sbbq(r21, 256);", // IID16330 - "__ sbbq(r21, 4096);", // IID16331 - "__ sbbq(r21, 65536);", // IID16332 - "__ sbbq(r21, 1048576);", // IID16333 - "__ sbbq(r21, 16777216);", // IID16334 - "__ sbbq(r21, 268435456);", // IID16335 - "__ sbbq(r22, 1);", // IID16336 - "__ sbbq(r22, 16);", // IID16337 - "__ sbbq(r22, 256);", // IID16338 - "__ sbbq(r22, 4096);", // IID16339 - "__ sbbq(r22, 65536);", // IID16340 - "__ sbbq(r22, 1048576);", // IID16341 - "__ sbbq(r22, 16777216);", // IID16342 - "__ sbbq(r22, 268435456);", // IID16343 - "__ sbbq(r23, 1);", // IID16344 - "__ sbbq(r23, 16);", // IID16345 - "__ sbbq(r23, 256);", // IID16346 - "__ sbbq(r23, 4096);", // IID16347 - "__ sbbq(r23, 65536);", // IID16348 - "__ sbbq(r23, 1048576);", // IID16349 - "__ sbbq(r23, 16777216);", // IID16350 - "__ sbbq(r23, 268435456);", // IID16351 - "__ sbbq(r24, 1);", // IID16352 - "__ sbbq(r24, 16);", // IID16353 - "__ sbbq(r24, 256);", // IID16354 - "__ sbbq(r24, 4096);", // IID16355 - "__ sbbq(r24, 65536);", // IID16356 - "__ sbbq(r24, 1048576);", // IID16357 - "__ sbbq(r24, 16777216);", // IID16358 - "__ sbbq(r24, 268435456);", // IID16359 - "__ sbbq(r25, 1);", // IID16360 - "__ sbbq(r25, 16);", // IID16361 - "__ sbbq(r25, 256);", // IID16362 - "__ sbbq(r25, 4096);", // IID16363 - "__ sbbq(r25, 65536);", // IID16364 - "__ sbbq(r25, 1048576);", // IID16365 - "__ sbbq(r25, 16777216);", // IID16366 - "__ sbbq(r25, 268435456);", // IID16367 - "__ sbbq(r26, 1);", // IID16368 - "__ sbbq(r26, 16);", // IID16369 - "__ sbbq(r26, 256);", // IID16370 - "__ sbbq(r26, 4096);", // IID16371 - "__ sbbq(r26, 65536);", // IID16372 - "__ sbbq(r26, 1048576);", // IID16373 - "__ sbbq(r26, 16777216);", // IID16374 - "__ sbbq(r26, 268435456);", // IID16375 - "__ sbbq(r27, 1);", // IID16376 - "__ sbbq(r27, 16);", // IID16377 - "__ sbbq(r27, 256);", // IID16378 - "__ sbbq(r27, 4096);", // IID16379 - "__ sbbq(r27, 65536);", // IID16380 - "__ sbbq(r27, 1048576);", // IID16381 - "__ sbbq(r27, 16777216);", // IID16382 - "__ sbbq(r27, 268435456);", // IID16383 - "__ sbbq(r28, 1);", // IID16384 - "__ sbbq(r28, 16);", // IID16385 - "__ sbbq(r28, 256);", // IID16386 - "__ sbbq(r28, 4096);", // IID16387 - "__ sbbq(r28, 65536);", // IID16388 - "__ sbbq(r28, 1048576);", // IID16389 - "__ sbbq(r28, 16777216);", // IID16390 - "__ sbbq(r28, 268435456);", // IID16391 - "__ sbbq(r29, 1);", // IID16392 - "__ sbbq(r29, 16);", // IID16393 - "__ sbbq(r29, 256);", // IID16394 - "__ sbbq(r29, 4096);", // IID16395 - "__ sbbq(r29, 65536);", // IID16396 - "__ sbbq(r29, 1048576);", // IID16397 - "__ sbbq(r29, 16777216);", // IID16398 - "__ sbbq(r29, 268435456);", // IID16399 - "__ sbbq(r30, 1);", // IID16400 - "__ sbbq(r30, 16);", // IID16401 - "__ sbbq(r30, 256);", // IID16402 - "__ sbbq(r30, 4096);", // IID16403 - "__ sbbq(r30, 65536);", // IID16404 - "__ sbbq(r30, 1048576);", // IID16405 - "__ sbbq(r30, 16777216);", // IID16406 - "__ sbbq(r30, 268435456);", // IID16407 - "__ sbbq(r31, 1);", // IID16408 - "__ sbbq(r31, 16);", // IID16409 - "__ sbbq(r31, 256);", // IID16410 - "__ sbbq(r31, 4096);", // IID16411 - "__ sbbq(r31, 65536);", // IID16412 - "__ sbbq(r31, 1048576);", // IID16413 - "__ sbbq(r31, 16777216);", // IID16414 - "__ sbbq(r31, 268435456);", // IID16415 - "__ shlq(rcx, 1);", // IID16416 - "__ shlq(rcx, 2);", // IID16417 - "__ shlq(rcx, 4);", // IID16418 - "__ shlq(rcx, 8);", // IID16419 - "__ shlq(rcx, 16);", // IID16420 - "__ shlq(rdx, 1);", // IID16421 - "__ shlq(rdx, 2);", // IID16422 - "__ shlq(rdx, 4);", // IID16423 - "__ shlq(rdx, 8);", // IID16424 - "__ shlq(rdx, 16);", // IID16425 - "__ shlq(rbx, 1);", // IID16426 - "__ shlq(rbx, 2);", // IID16427 - "__ shlq(rbx, 4);", // IID16428 - "__ shlq(rbx, 8);", // IID16429 - "__ shlq(rbx, 16);", // IID16430 - "__ shlq(r8, 1);", // IID16431 - "__ shlq(r8, 2);", // IID16432 - "__ shlq(r8, 4);", // IID16433 - "__ shlq(r8, 8);", // IID16434 - "__ shlq(r8, 16);", // IID16435 - "__ shlq(r9, 1);", // IID16436 - "__ shlq(r9, 2);", // IID16437 - "__ shlq(r9, 4);", // IID16438 - "__ shlq(r9, 8);", // IID16439 - "__ shlq(r9, 16);", // IID16440 - "__ shlq(r10, 1);", // IID16441 - "__ shlq(r10, 2);", // IID16442 - "__ shlq(r10, 4);", // IID16443 - "__ shlq(r10, 8);", // IID16444 - "__ shlq(r10, 16);", // IID16445 - "__ shlq(r11, 1);", // IID16446 - "__ shlq(r11, 2);", // IID16447 - "__ shlq(r11, 4);", // IID16448 - "__ shlq(r11, 8);", // IID16449 - "__ shlq(r11, 16);", // IID16450 - "__ shlq(r12, 1);", // IID16451 - "__ shlq(r12, 2);", // IID16452 - "__ shlq(r12, 4);", // IID16453 - "__ shlq(r12, 8);", // IID16454 - "__ shlq(r12, 16);", // IID16455 - "__ shlq(r13, 1);", // IID16456 - "__ shlq(r13, 2);", // IID16457 - "__ shlq(r13, 4);", // IID16458 - "__ shlq(r13, 8);", // IID16459 - "__ shlq(r13, 16);", // IID16460 - "__ shlq(r14, 1);", // IID16461 - "__ shlq(r14, 2);", // IID16462 - "__ shlq(r14, 4);", // IID16463 - "__ shlq(r14, 8);", // IID16464 - "__ shlq(r14, 16);", // IID16465 - "__ shlq(r15, 1);", // IID16466 - "__ shlq(r15, 2);", // IID16467 - "__ shlq(r15, 4);", // IID16468 - "__ shlq(r15, 8);", // IID16469 - "__ shlq(r15, 16);", // IID16470 - "__ shlq(r16, 1);", // IID16471 - "__ shlq(r16, 2);", // IID16472 - "__ shlq(r16, 4);", // IID16473 - "__ shlq(r16, 8);", // IID16474 - "__ shlq(r16, 16);", // IID16475 - "__ shlq(r17, 1);", // IID16476 - "__ shlq(r17, 2);", // IID16477 - "__ shlq(r17, 4);", // IID16478 - "__ shlq(r17, 8);", // IID16479 - "__ shlq(r17, 16);", // IID16480 - "__ shlq(r18, 1);", // IID16481 - "__ shlq(r18, 2);", // IID16482 - "__ shlq(r18, 4);", // IID16483 - "__ shlq(r18, 8);", // IID16484 - "__ shlq(r18, 16);", // IID16485 - "__ shlq(r19, 1);", // IID16486 - "__ shlq(r19, 2);", // IID16487 - "__ shlq(r19, 4);", // IID16488 - "__ shlq(r19, 8);", // IID16489 - "__ shlq(r19, 16);", // IID16490 - "__ shlq(r20, 1);", // IID16491 - "__ shlq(r20, 2);", // IID16492 - "__ shlq(r20, 4);", // IID16493 - "__ shlq(r20, 8);", // IID16494 - "__ shlq(r20, 16);", // IID16495 - "__ shlq(r21, 1);", // IID16496 - "__ shlq(r21, 2);", // IID16497 - "__ shlq(r21, 4);", // IID16498 - "__ shlq(r21, 8);", // IID16499 - "__ shlq(r21, 16);", // IID16500 - "__ shlq(r22, 1);", // IID16501 - "__ shlq(r22, 2);", // IID16502 - "__ shlq(r22, 4);", // IID16503 - "__ shlq(r22, 8);", // IID16504 - "__ shlq(r22, 16);", // IID16505 - "__ shlq(r23, 1);", // IID16506 - "__ shlq(r23, 2);", // IID16507 - "__ shlq(r23, 4);", // IID16508 - "__ shlq(r23, 8);", // IID16509 - "__ shlq(r23, 16);", // IID16510 - "__ shlq(r24, 1);", // IID16511 - "__ shlq(r24, 2);", // IID16512 - "__ shlq(r24, 4);", // IID16513 - "__ shlq(r24, 8);", // IID16514 - "__ shlq(r24, 16);", // IID16515 - "__ shlq(r25, 1);", // IID16516 - "__ shlq(r25, 2);", // IID16517 - "__ shlq(r25, 4);", // IID16518 - "__ shlq(r25, 8);", // IID16519 - "__ shlq(r25, 16);", // IID16520 - "__ shlq(r26, 1);", // IID16521 - "__ shlq(r26, 2);", // IID16522 - "__ shlq(r26, 4);", // IID16523 - "__ shlq(r26, 8);", // IID16524 - "__ shlq(r26, 16);", // IID16525 - "__ shlq(r27, 1);", // IID16526 - "__ shlq(r27, 2);", // IID16527 - "__ shlq(r27, 4);", // IID16528 - "__ shlq(r27, 8);", // IID16529 - "__ shlq(r27, 16);", // IID16530 - "__ shlq(r28, 1);", // IID16531 - "__ shlq(r28, 2);", // IID16532 - "__ shlq(r28, 4);", // IID16533 - "__ shlq(r28, 8);", // IID16534 - "__ shlq(r28, 16);", // IID16535 - "__ shlq(r29, 1);", // IID16536 - "__ shlq(r29, 2);", // IID16537 - "__ shlq(r29, 4);", // IID16538 - "__ shlq(r29, 8);", // IID16539 - "__ shlq(r29, 16);", // IID16540 - "__ shlq(r30, 1);", // IID16541 - "__ shlq(r30, 2);", // IID16542 - "__ shlq(r30, 4);", // IID16543 - "__ shlq(r30, 8);", // IID16544 - "__ shlq(r30, 16);", // IID16545 - "__ shlq(r31, 1);", // IID16546 - "__ shlq(r31, 2);", // IID16547 - "__ shlq(r31, 4);", // IID16548 - "__ shlq(r31, 8);", // IID16549 - "__ shlq(r31, 16);", // IID16550 - "__ shrq(rcx, 1);", // IID16551 - "__ shrq(rcx, 2);", // IID16552 - "__ shrq(rcx, 4);", // IID16553 - "__ shrq(rcx, 8);", // IID16554 - "__ shrq(rcx, 16);", // IID16555 - "__ shrq(rdx, 1);", // IID16556 - "__ shrq(rdx, 2);", // IID16557 - "__ shrq(rdx, 4);", // IID16558 - "__ shrq(rdx, 8);", // IID16559 - "__ shrq(rdx, 16);", // IID16560 - "__ shrq(rbx, 1);", // IID16561 - "__ shrq(rbx, 2);", // IID16562 - "__ shrq(rbx, 4);", // IID16563 - "__ shrq(rbx, 8);", // IID16564 - "__ shrq(rbx, 16);", // IID16565 - "__ shrq(r8, 1);", // IID16566 - "__ shrq(r8, 2);", // IID16567 - "__ shrq(r8, 4);", // IID16568 - "__ shrq(r8, 8);", // IID16569 - "__ shrq(r8, 16);", // IID16570 - "__ shrq(r9, 1);", // IID16571 - "__ shrq(r9, 2);", // IID16572 - "__ shrq(r9, 4);", // IID16573 - "__ shrq(r9, 8);", // IID16574 - "__ shrq(r9, 16);", // IID16575 - "__ shrq(r10, 1);", // IID16576 - "__ shrq(r10, 2);", // IID16577 - "__ shrq(r10, 4);", // IID16578 - "__ shrq(r10, 8);", // IID16579 - "__ shrq(r10, 16);", // IID16580 - "__ shrq(r11, 1);", // IID16581 - "__ shrq(r11, 2);", // IID16582 - "__ shrq(r11, 4);", // IID16583 - "__ shrq(r11, 8);", // IID16584 - "__ shrq(r11, 16);", // IID16585 - "__ shrq(r12, 1);", // IID16586 - "__ shrq(r12, 2);", // IID16587 - "__ shrq(r12, 4);", // IID16588 - "__ shrq(r12, 8);", // IID16589 - "__ shrq(r12, 16);", // IID16590 - "__ shrq(r13, 1);", // IID16591 - "__ shrq(r13, 2);", // IID16592 - "__ shrq(r13, 4);", // IID16593 - "__ shrq(r13, 8);", // IID16594 - "__ shrq(r13, 16);", // IID16595 - "__ shrq(r14, 1);", // IID16596 - "__ shrq(r14, 2);", // IID16597 - "__ shrq(r14, 4);", // IID16598 - "__ shrq(r14, 8);", // IID16599 - "__ shrq(r14, 16);", // IID16600 - "__ shrq(r15, 1);", // IID16601 - "__ shrq(r15, 2);", // IID16602 - "__ shrq(r15, 4);", // IID16603 - "__ shrq(r15, 8);", // IID16604 - "__ shrq(r15, 16);", // IID16605 - "__ shrq(r16, 1);", // IID16606 - "__ shrq(r16, 2);", // IID16607 - "__ shrq(r16, 4);", // IID16608 - "__ shrq(r16, 8);", // IID16609 - "__ shrq(r16, 16);", // IID16610 - "__ shrq(r17, 1);", // IID16611 - "__ shrq(r17, 2);", // IID16612 - "__ shrq(r17, 4);", // IID16613 - "__ shrq(r17, 8);", // IID16614 - "__ shrq(r17, 16);", // IID16615 - "__ shrq(r18, 1);", // IID16616 - "__ shrq(r18, 2);", // IID16617 - "__ shrq(r18, 4);", // IID16618 - "__ shrq(r18, 8);", // IID16619 - "__ shrq(r18, 16);", // IID16620 - "__ shrq(r19, 1);", // IID16621 - "__ shrq(r19, 2);", // IID16622 - "__ shrq(r19, 4);", // IID16623 - "__ shrq(r19, 8);", // IID16624 - "__ shrq(r19, 16);", // IID16625 - "__ shrq(r20, 1);", // IID16626 - "__ shrq(r20, 2);", // IID16627 - "__ shrq(r20, 4);", // IID16628 - "__ shrq(r20, 8);", // IID16629 - "__ shrq(r20, 16);", // IID16630 - "__ shrq(r21, 1);", // IID16631 - "__ shrq(r21, 2);", // IID16632 - "__ shrq(r21, 4);", // IID16633 - "__ shrq(r21, 8);", // IID16634 - "__ shrq(r21, 16);", // IID16635 - "__ shrq(r22, 1);", // IID16636 - "__ shrq(r22, 2);", // IID16637 - "__ shrq(r22, 4);", // IID16638 - "__ shrq(r22, 8);", // IID16639 - "__ shrq(r22, 16);", // IID16640 - "__ shrq(r23, 1);", // IID16641 - "__ shrq(r23, 2);", // IID16642 - "__ shrq(r23, 4);", // IID16643 - "__ shrq(r23, 8);", // IID16644 - "__ shrq(r23, 16);", // IID16645 - "__ shrq(r24, 1);", // IID16646 - "__ shrq(r24, 2);", // IID16647 - "__ shrq(r24, 4);", // IID16648 - "__ shrq(r24, 8);", // IID16649 - "__ shrq(r24, 16);", // IID16650 - "__ shrq(r25, 1);", // IID16651 - "__ shrq(r25, 2);", // IID16652 - "__ shrq(r25, 4);", // IID16653 - "__ shrq(r25, 8);", // IID16654 - "__ shrq(r25, 16);", // IID16655 - "__ shrq(r26, 1);", // IID16656 - "__ shrq(r26, 2);", // IID16657 - "__ shrq(r26, 4);", // IID16658 - "__ shrq(r26, 8);", // IID16659 - "__ shrq(r26, 16);", // IID16660 - "__ shrq(r27, 1);", // IID16661 - "__ shrq(r27, 2);", // IID16662 - "__ shrq(r27, 4);", // IID16663 - "__ shrq(r27, 8);", // IID16664 - "__ shrq(r27, 16);", // IID16665 - "__ shrq(r28, 1);", // IID16666 - "__ shrq(r28, 2);", // IID16667 - "__ shrq(r28, 4);", // IID16668 - "__ shrq(r28, 8);", // IID16669 - "__ shrq(r28, 16);", // IID16670 - "__ shrq(r29, 1);", // IID16671 - "__ shrq(r29, 2);", // IID16672 - "__ shrq(r29, 4);", // IID16673 - "__ shrq(r29, 8);", // IID16674 - "__ shrq(r29, 16);", // IID16675 - "__ shrq(r30, 1);", // IID16676 - "__ shrq(r30, 2);", // IID16677 - "__ shrq(r30, 4);", // IID16678 - "__ shrq(r30, 8);", // IID16679 - "__ shrq(r30, 16);", // IID16680 - "__ shrq(r31, 1);", // IID16681 - "__ shrq(r31, 2);", // IID16682 - "__ shrq(r31, 4);", // IID16683 - "__ shrq(r31, 8);", // IID16684 - "__ shrq(r31, 16);", // IID16685 - "__ subq(rcx, 1);", // IID16686 - "__ subq(rcx, 16);", // IID16687 - "__ subq(rcx, 256);", // IID16688 - "__ subq(rcx, 4096);", // IID16689 - "__ subq(rcx, 65536);", // IID16690 - "__ subq(rcx, 1048576);", // IID16691 - "__ subq(rcx, 16777216);", // IID16692 - "__ subq(rcx, 268435456);", // IID16693 - "__ subq(rdx, 1);", // IID16694 - "__ subq(rdx, 16);", // IID16695 - "__ subq(rdx, 256);", // IID16696 - "__ subq(rdx, 4096);", // IID16697 - "__ subq(rdx, 65536);", // IID16698 - "__ subq(rdx, 1048576);", // IID16699 - "__ subq(rdx, 16777216);", // IID16700 - "__ subq(rdx, 268435456);", // IID16701 - "__ subq(rbx, 1);", // IID16702 - "__ subq(rbx, 16);", // IID16703 - "__ subq(rbx, 256);", // IID16704 - "__ subq(rbx, 4096);", // IID16705 - "__ subq(rbx, 65536);", // IID16706 - "__ subq(rbx, 1048576);", // IID16707 - "__ subq(rbx, 16777216);", // IID16708 - "__ subq(rbx, 268435456);", // IID16709 - "__ subq(r8, 1);", // IID16710 - "__ subq(r8, 16);", // IID16711 - "__ subq(r8, 256);", // IID16712 - "__ subq(r8, 4096);", // IID16713 - "__ subq(r8, 65536);", // IID16714 - "__ subq(r8, 1048576);", // IID16715 - "__ subq(r8, 16777216);", // IID16716 - "__ subq(r8, 268435456);", // IID16717 - "__ subq(r9, 1);", // IID16718 - "__ subq(r9, 16);", // IID16719 - "__ subq(r9, 256);", // IID16720 - "__ subq(r9, 4096);", // IID16721 - "__ subq(r9, 65536);", // IID16722 - "__ subq(r9, 1048576);", // IID16723 - "__ subq(r9, 16777216);", // IID16724 - "__ subq(r9, 268435456);", // IID16725 - "__ subq(r10, 1);", // IID16726 - "__ subq(r10, 16);", // IID16727 - "__ subq(r10, 256);", // IID16728 - "__ subq(r10, 4096);", // IID16729 - "__ subq(r10, 65536);", // IID16730 - "__ subq(r10, 1048576);", // IID16731 - "__ subq(r10, 16777216);", // IID16732 - "__ subq(r10, 268435456);", // IID16733 - "__ subq(r11, 1);", // IID16734 - "__ subq(r11, 16);", // IID16735 - "__ subq(r11, 256);", // IID16736 - "__ subq(r11, 4096);", // IID16737 - "__ subq(r11, 65536);", // IID16738 - "__ subq(r11, 1048576);", // IID16739 - "__ subq(r11, 16777216);", // IID16740 - "__ subq(r11, 268435456);", // IID16741 - "__ subq(r12, 1);", // IID16742 - "__ subq(r12, 16);", // IID16743 - "__ subq(r12, 256);", // IID16744 - "__ subq(r12, 4096);", // IID16745 - "__ subq(r12, 65536);", // IID16746 - "__ subq(r12, 1048576);", // IID16747 - "__ subq(r12, 16777216);", // IID16748 - "__ subq(r12, 268435456);", // IID16749 - "__ subq(r13, 1);", // IID16750 - "__ subq(r13, 16);", // IID16751 - "__ subq(r13, 256);", // IID16752 - "__ subq(r13, 4096);", // IID16753 - "__ subq(r13, 65536);", // IID16754 - "__ subq(r13, 1048576);", // IID16755 - "__ subq(r13, 16777216);", // IID16756 - "__ subq(r13, 268435456);", // IID16757 - "__ subq(r14, 1);", // IID16758 - "__ subq(r14, 16);", // IID16759 - "__ subq(r14, 256);", // IID16760 - "__ subq(r14, 4096);", // IID16761 - "__ subq(r14, 65536);", // IID16762 - "__ subq(r14, 1048576);", // IID16763 - "__ subq(r14, 16777216);", // IID16764 - "__ subq(r14, 268435456);", // IID16765 - "__ subq(r15, 1);", // IID16766 - "__ subq(r15, 16);", // IID16767 - "__ subq(r15, 256);", // IID16768 - "__ subq(r15, 4096);", // IID16769 - "__ subq(r15, 65536);", // IID16770 - "__ subq(r15, 1048576);", // IID16771 - "__ subq(r15, 16777216);", // IID16772 - "__ subq(r15, 268435456);", // IID16773 - "__ subq(r16, 1);", // IID16774 - "__ subq(r16, 16);", // IID16775 - "__ subq(r16, 256);", // IID16776 - "__ subq(r16, 4096);", // IID16777 - "__ subq(r16, 65536);", // IID16778 - "__ subq(r16, 1048576);", // IID16779 - "__ subq(r16, 16777216);", // IID16780 - "__ subq(r16, 268435456);", // IID16781 - "__ subq(r17, 1);", // IID16782 - "__ subq(r17, 16);", // IID16783 - "__ subq(r17, 256);", // IID16784 - "__ subq(r17, 4096);", // IID16785 - "__ subq(r17, 65536);", // IID16786 - "__ subq(r17, 1048576);", // IID16787 - "__ subq(r17, 16777216);", // IID16788 - "__ subq(r17, 268435456);", // IID16789 - "__ subq(r18, 1);", // IID16790 - "__ subq(r18, 16);", // IID16791 - "__ subq(r18, 256);", // IID16792 - "__ subq(r18, 4096);", // IID16793 - "__ subq(r18, 65536);", // IID16794 - "__ subq(r18, 1048576);", // IID16795 - "__ subq(r18, 16777216);", // IID16796 - "__ subq(r18, 268435456);", // IID16797 - "__ subq(r19, 1);", // IID16798 - "__ subq(r19, 16);", // IID16799 - "__ subq(r19, 256);", // IID16800 - "__ subq(r19, 4096);", // IID16801 - "__ subq(r19, 65536);", // IID16802 - "__ subq(r19, 1048576);", // IID16803 - "__ subq(r19, 16777216);", // IID16804 - "__ subq(r19, 268435456);", // IID16805 - "__ subq(r20, 1);", // IID16806 - "__ subq(r20, 16);", // IID16807 - "__ subq(r20, 256);", // IID16808 - "__ subq(r20, 4096);", // IID16809 - "__ subq(r20, 65536);", // IID16810 - "__ subq(r20, 1048576);", // IID16811 - "__ subq(r20, 16777216);", // IID16812 - "__ subq(r20, 268435456);", // IID16813 - "__ subq(r21, 1);", // IID16814 - "__ subq(r21, 16);", // IID16815 - "__ subq(r21, 256);", // IID16816 - "__ subq(r21, 4096);", // IID16817 - "__ subq(r21, 65536);", // IID16818 - "__ subq(r21, 1048576);", // IID16819 - "__ subq(r21, 16777216);", // IID16820 - "__ subq(r21, 268435456);", // IID16821 - "__ subq(r22, 1);", // IID16822 - "__ subq(r22, 16);", // IID16823 - "__ subq(r22, 256);", // IID16824 - "__ subq(r22, 4096);", // IID16825 - "__ subq(r22, 65536);", // IID16826 - "__ subq(r22, 1048576);", // IID16827 - "__ subq(r22, 16777216);", // IID16828 - "__ subq(r22, 268435456);", // IID16829 - "__ subq(r23, 1);", // IID16830 - "__ subq(r23, 16);", // IID16831 - "__ subq(r23, 256);", // IID16832 - "__ subq(r23, 4096);", // IID16833 - "__ subq(r23, 65536);", // IID16834 - "__ subq(r23, 1048576);", // IID16835 - "__ subq(r23, 16777216);", // IID16836 - "__ subq(r23, 268435456);", // IID16837 - "__ subq(r24, 1);", // IID16838 - "__ subq(r24, 16);", // IID16839 - "__ subq(r24, 256);", // IID16840 - "__ subq(r24, 4096);", // IID16841 - "__ subq(r24, 65536);", // IID16842 - "__ subq(r24, 1048576);", // IID16843 - "__ subq(r24, 16777216);", // IID16844 - "__ subq(r24, 268435456);", // IID16845 - "__ subq(r25, 1);", // IID16846 - "__ subq(r25, 16);", // IID16847 - "__ subq(r25, 256);", // IID16848 - "__ subq(r25, 4096);", // IID16849 - "__ subq(r25, 65536);", // IID16850 - "__ subq(r25, 1048576);", // IID16851 - "__ subq(r25, 16777216);", // IID16852 - "__ subq(r25, 268435456);", // IID16853 - "__ subq(r26, 1);", // IID16854 - "__ subq(r26, 16);", // IID16855 - "__ subq(r26, 256);", // IID16856 - "__ subq(r26, 4096);", // IID16857 - "__ subq(r26, 65536);", // IID16858 - "__ subq(r26, 1048576);", // IID16859 - "__ subq(r26, 16777216);", // IID16860 - "__ subq(r26, 268435456);", // IID16861 - "__ subq(r27, 1);", // IID16862 - "__ subq(r27, 16);", // IID16863 - "__ subq(r27, 256);", // IID16864 - "__ subq(r27, 4096);", // IID16865 - "__ subq(r27, 65536);", // IID16866 - "__ subq(r27, 1048576);", // IID16867 - "__ subq(r27, 16777216);", // IID16868 - "__ subq(r27, 268435456);", // IID16869 - "__ subq(r28, 1);", // IID16870 - "__ subq(r28, 16);", // IID16871 - "__ subq(r28, 256);", // IID16872 - "__ subq(r28, 4096);", // IID16873 - "__ subq(r28, 65536);", // IID16874 - "__ subq(r28, 1048576);", // IID16875 - "__ subq(r28, 16777216);", // IID16876 - "__ subq(r28, 268435456);", // IID16877 - "__ subq(r29, 1);", // IID16878 - "__ subq(r29, 16);", // IID16879 - "__ subq(r29, 256);", // IID16880 - "__ subq(r29, 4096);", // IID16881 - "__ subq(r29, 65536);", // IID16882 - "__ subq(r29, 1048576);", // IID16883 - "__ subq(r29, 16777216);", // IID16884 - "__ subq(r29, 268435456);", // IID16885 - "__ subq(r30, 1);", // IID16886 - "__ subq(r30, 16);", // IID16887 - "__ subq(r30, 256);", // IID16888 - "__ subq(r30, 4096);", // IID16889 - "__ subq(r30, 65536);", // IID16890 - "__ subq(r30, 1048576);", // IID16891 - "__ subq(r30, 16777216);", // IID16892 - "__ subq(r30, 268435456);", // IID16893 - "__ subq(r31, 1);", // IID16894 - "__ subq(r31, 16);", // IID16895 - "__ subq(r31, 256);", // IID16896 - "__ subq(r31, 4096);", // IID16897 - "__ subq(r31, 65536);", // IID16898 - "__ subq(r31, 1048576);", // IID16899 - "__ subq(r31, 16777216);", // IID16900 - "__ subq(r31, 268435456);", // IID16901 - "__ xorq(rcx, 1);", // IID16902 - "__ xorq(rcx, 16);", // IID16903 - "__ xorq(rcx, 256);", // IID16904 - "__ xorq(rcx, 4096);", // IID16905 - "__ xorq(rcx, 65536);", // IID16906 - "__ xorq(rcx, 1048576);", // IID16907 - "__ xorq(rcx, 16777216);", // IID16908 - "__ xorq(rcx, 268435456);", // IID16909 - "__ xorq(rdx, 1);", // IID16910 - "__ xorq(rdx, 16);", // IID16911 - "__ xorq(rdx, 256);", // IID16912 - "__ xorq(rdx, 4096);", // IID16913 - "__ xorq(rdx, 65536);", // IID16914 - "__ xorq(rdx, 1048576);", // IID16915 - "__ xorq(rdx, 16777216);", // IID16916 - "__ xorq(rdx, 268435456);", // IID16917 - "__ xorq(rbx, 1);", // IID16918 - "__ xorq(rbx, 16);", // IID16919 - "__ xorq(rbx, 256);", // IID16920 - "__ xorq(rbx, 4096);", // IID16921 - "__ xorq(rbx, 65536);", // IID16922 - "__ xorq(rbx, 1048576);", // IID16923 - "__ xorq(rbx, 16777216);", // IID16924 - "__ xorq(rbx, 268435456);", // IID16925 - "__ xorq(r8, 1);", // IID16926 - "__ xorq(r8, 16);", // IID16927 - "__ xorq(r8, 256);", // IID16928 - "__ xorq(r8, 4096);", // IID16929 - "__ xorq(r8, 65536);", // IID16930 - "__ xorq(r8, 1048576);", // IID16931 - "__ xorq(r8, 16777216);", // IID16932 - "__ xorq(r8, 268435456);", // IID16933 - "__ xorq(r9, 1);", // IID16934 - "__ xorq(r9, 16);", // IID16935 - "__ xorq(r9, 256);", // IID16936 - "__ xorq(r9, 4096);", // IID16937 - "__ xorq(r9, 65536);", // IID16938 - "__ xorq(r9, 1048576);", // IID16939 - "__ xorq(r9, 16777216);", // IID16940 - "__ xorq(r9, 268435456);", // IID16941 - "__ xorq(r10, 1);", // IID16942 - "__ xorq(r10, 16);", // IID16943 - "__ xorq(r10, 256);", // IID16944 - "__ xorq(r10, 4096);", // IID16945 - "__ xorq(r10, 65536);", // IID16946 - "__ xorq(r10, 1048576);", // IID16947 - "__ xorq(r10, 16777216);", // IID16948 - "__ xorq(r10, 268435456);", // IID16949 - "__ xorq(r11, 1);", // IID16950 - "__ xorq(r11, 16);", // IID16951 - "__ xorq(r11, 256);", // IID16952 - "__ xorq(r11, 4096);", // IID16953 - "__ xorq(r11, 65536);", // IID16954 - "__ xorq(r11, 1048576);", // IID16955 - "__ xorq(r11, 16777216);", // IID16956 - "__ xorq(r11, 268435456);", // IID16957 - "__ xorq(r12, 1);", // IID16958 - "__ xorq(r12, 16);", // IID16959 - "__ xorq(r12, 256);", // IID16960 - "__ xorq(r12, 4096);", // IID16961 - "__ xorq(r12, 65536);", // IID16962 - "__ xorq(r12, 1048576);", // IID16963 - "__ xorq(r12, 16777216);", // IID16964 - "__ xorq(r12, 268435456);", // IID16965 - "__ xorq(r13, 1);", // IID16966 - "__ xorq(r13, 16);", // IID16967 - "__ xorq(r13, 256);", // IID16968 - "__ xorq(r13, 4096);", // IID16969 - "__ xorq(r13, 65536);", // IID16970 - "__ xorq(r13, 1048576);", // IID16971 - "__ xorq(r13, 16777216);", // IID16972 - "__ xorq(r13, 268435456);", // IID16973 - "__ xorq(r14, 1);", // IID16974 - "__ xorq(r14, 16);", // IID16975 - "__ xorq(r14, 256);", // IID16976 - "__ xorq(r14, 4096);", // IID16977 - "__ xorq(r14, 65536);", // IID16978 - "__ xorq(r14, 1048576);", // IID16979 - "__ xorq(r14, 16777216);", // IID16980 - "__ xorq(r14, 268435456);", // IID16981 - "__ xorq(r15, 1);", // IID16982 - "__ xorq(r15, 16);", // IID16983 - "__ xorq(r15, 256);", // IID16984 - "__ xorq(r15, 4096);", // IID16985 - "__ xorq(r15, 65536);", // IID16986 - "__ xorq(r15, 1048576);", // IID16987 - "__ xorq(r15, 16777216);", // IID16988 - "__ xorq(r15, 268435456);", // IID16989 - "__ xorq(r16, 1);", // IID16990 - "__ xorq(r16, 16);", // IID16991 - "__ xorq(r16, 256);", // IID16992 - "__ xorq(r16, 4096);", // IID16993 - "__ xorq(r16, 65536);", // IID16994 - "__ xorq(r16, 1048576);", // IID16995 - "__ xorq(r16, 16777216);", // IID16996 - "__ xorq(r16, 268435456);", // IID16997 - "__ xorq(r17, 1);", // IID16998 - "__ xorq(r17, 16);", // IID16999 - "__ xorq(r17, 256);", // IID17000 - "__ xorq(r17, 4096);", // IID17001 - "__ xorq(r17, 65536);", // IID17002 - "__ xorq(r17, 1048576);", // IID17003 - "__ xorq(r17, 16777216);", // IID17004 - "__ xorq(r17, 268435456);", // IID17005 - "__ xorq(r18, 1);", // IID17006 - "__ xorq(r18, 16);", // IID17007 - "__ xorq(r18, 256);", // IID17008 - "__ xorq(r18, 4096);", // IID17009 - "__ xorq(r18, 65536);", // IID17010 - "__ xorq(r18, 1048576);", // IID17011 - "__ xorq(r18, 16777216);", // IID17012 - "__ xorq(r18, 268435456);", // IID17013 - "__ xorq(r19, 1);", // IID17014 - "__ xorq(r19, 16);", // IID17015 - "__ xorq(r19, 256);", // IID17016 - "__ xorq(r19, 4096);", // IID17017 - "__ xorq(r19, 65536);", // IID17018 - "__ xorq(r19, 1048576);", // IID17019 - "__ xorq(r19, 16777216);", // IID17020 - "__ xorq(r19, 268435456);", // IID17021 - "__ xorq(r20, 1);", // IID17022 - "__ xorq(r20, 16);", // IID17023 - "__ xorq(r20, 256);", // IID17024 - "__ xorq(r20, 4096);", // IID17025 - "__ xorq(r20, 65536);", // IID17026 - "__ xorq(r20, 1048576);", // IID17027 - "__ xorq(r20, 16777216);", // IID17028 - "__ xorq(r20, 268435456);", // IID17029 - "__ xorq(r21, 1);", // IID17030 - "__ xorq(r21, 16);", // IID17031 - "__ xorq(r21, 256);", // IID17032 - "__ xorq(r21, 4096);", // IID17033 - "__ xorq(r21, 65536);", // IID17034 - "__ xorq(r21, 1048576);", // IID17035 - "__ xorq(r21, 16777216);", // IID17036 - "__ xorq(r21, 268435456);", // IID17037 - "__ xorq(r22, 1);", // IID17038 - "__ xorq(r22, 16);", // IID17039 - "__ xorq(r22, 256);", // IID17040 - "__ xorq(r22, 4096);", // IID17041 - "__ xorq(r22, 65536);", // IID17042 - "__ xorq(r22, 1048576);", // IID17043 - "__ xorq(r22, 16777216);", // IID17044 - "__ xorq(r22, 268435456);", // IID17045 - "__ xorq(r23, 1);", // IID17046 - "__ xorq(r23, 16);", // IID17047 - "__ xorq(r23, 256);", // IID17048 - "__ xorq(r23, 4096);", // IID17049 - "__ xorq(r23, 65536);", // IID17050 - "__ xorq(r23, 1048576);", // IID17051 - "__ xorq(r23, 16777216);", // IID17052 - "__ xorq(r23, 268435456);", // IID17053 - "__ xorq(r24, 1);", // IID17054 - "__ xorq(r24, 16);", // IID17055 - "__ xorq(r24, 256);", // IID17056 - "__ xorq(r24, 4096);", // IID17057 - "__ xorq(r24, 65536);", // IID17058 - "__ xorq(r24, 1048576);", // IID17059 - "__ xorq(r24, 16777216);", // IID17060 - "__ xorq(r24, 268435456);", // IID17061 - "__ xorq(r25, 1);", // IID17062 - "__ xorq(r25, 16);", // IID17063 - "__ xorq(r25, 256);", // IID17064 - "__ xorq(r25, 4096);", // IID17065 - "__ xorq(r25, 65536);", // IID17066 - "__ xorq(r25, 1048576);", // IID17067 - "__ xorq(r25, 16777216);", // IID17068 - "__ xorq(r25, 268435456);", // IID17069 - "__ xorq(r26, 1);", // IID17070 - "__ xorq(r26, 16);", // IID17071 - "__ xorq(r26, 256);", // IID17072 - "__ xorq(r26, 4096);", // IID17073 - "__ xorq(r26, 65536);", // IID17074 - "__ xorq(r26, 1048576);", // IID17075 - "__ xorq(r26, 16777216);", // IID17076 - "__ xorq(r26, 268435456);", // IID17077 - "__ xorq(r27, 1);", // IID17078 - "__ xorq(r27, 16);", // IID17079 - "__ xorq(r27, 256);", // IID17080 - "__ xorq(r27, 4096);", // IID17081 - "__ xorq(r27, 65536);", // IID17082 - "__ xorq(r27, 1048576);", // IID17083 - "__ xorq(r27, 16777216);", // IID17084 - "__ xorq(r27, 268435456);", // IID17085 - "__ xorq(r28, 1);", // IID17086 - "__ xorq(r28, 16);", // IID17087 - "__ xorq(r28, 256);", // IID17088 - "__ xorq(r28, 4096);", // IID17089 - "__ xorq(r28, 65536);", // IID17090 - "__ xorq(r28, 1048576);", // IID17091 - "__ xorq(r28, 16777216);", // IID17092 - "__ xorq(r28, 268435456);", // IID17093 - "__ xorq(r29, 1);", // IID17094 - "__ xorq(r29, 16);", // IID17095 - "__ xorq(r29, 256);", // IID17096 - "__ xorq(r29, 4096);", // IID17097 - "__ xorq(r29, 65536);", // IID17098 - "__ xorq(r29, 1048576);", // IID17099 - "__ xorq(r29, 16777216);", // IID17100 - "__ xorq(r29, 268435456);", // IID17101 - "__ xorq(r30, 1);", // IID17102 - "__ xorq(r30, 16);", // IID17103 - "__ xorq(r30, 256);", // IID17104 - "__ xorq(r30, 4096);", // IID17105 - "__ xorq(r30, 65536);", // IID17106 - "__ xorq(r30, 1048576);", // IID17107 - "__ xorq(r30, 16777216);", // IID17108 - "__ xorq(r30, 268435456);", // IID17109 - "__ xorq(r31, 1);", // IID17110 - "__ xorq(r31, 16);", // IID17111 - "__ xorq(r31, 256);", // IID17112 - "__ xorq(r31, 4096);", // IID17113 - "__ xorq(r31, 65536);", // IID17114 - "__ xorq(r31, 1048576);", // IID17115 - "__ xorq(r31, 16777216);", // IID17116 - "__ xorq(r31, 268435456);", // IID17117 - "__ movq(rcx, 1);", // IID17118 - "__ movq(rcx, 16);", // IID17119 - "__ movq(rcx, 256);", // IID17120 - "__ movq(rcx, 4096);", // IID17121 - "__ movq(rcx, 65536);", // IID17122 - "__ movq(rcx, 1048576);", // IID17123 - "__ movq(rcx, 16777216);", // IID17124 - "__ movq(rcx, 268435456);", // IID17125 - "__ movq(rdx, 1);", // IID17126 - "__ movq(rdx, 16);", // IID17127 - "__ movq(rdx, 256);", // IID17128 - "__ movq(rdx, 4096);", // IID17129 - "__ movq(rdx, 65536);", // IID17130 - "__ movq(rdx, 1048576);", // IID17131 - "__ movq(rdx, 16777216);", // IID17132 - "__ movq(rdx, 268435456);", // IID17133 - "__ movq(rbx, 1);", // IID17134 - "__ movq(rbx, 16);", // IID17135 - "__ movq(rbx, 256);", // IID17136 - "__ movq(rbx, 4096);", // IID17137 - "__ movq(rbx, 65536);", // IID17138 - "__ movq(rbx, 1048576);", // IID17139 - "__ movq(rbx, 16777216);", // IID17140 - "__ movq(rbx, 268435456);", // IID17141 - "__ movq(r8, 1);", // IID17142 - "__ movq(r8, 16);", // IID17143 - "__ movq(r8, 256);", // IID17144 - "__ movq(r8, 4096);", // IID17145 - "__ movq(r8, 65536);", // IID17146 - "__ movq(r8, 1048576);", // IID17147 - "__ movq(r8, 16777216);", // IID17148 - "__ movq(r8, 268435456);", // IID17149 - "__ movq(r9, 1);", // IID17150 - "__ movq(r9, 16);", // IID17151 - "__ movq(r9, 256);", // IID17152 - "__ movq(r9, 4096);", // IID17153 - "__ movq(r9, 65536);", // IID17154 - "__ movq(r9, 1048576);", // IID17155 - "__ movq(r9, 16777216);", // IID17156 - "__ movq(r9, 268435456);", // IID17157 - "__ movq(r10, 1);", // IID17158 - "__ movq(r10, 16);", // IID17159 - "__ movq(r10, 256);", // IID17160 - "__ movq(r10, 4096);", // IID17161 - "__ movq(r10, 65536);", // IID17162 - "__ movq(r10, 1048576);", // IID17163 - "__ movq(r10, 16777216);", // IID17164 - "__ movq(r10, 268435456);", // IID17165 - "__ movq(r11, 1);", // IID17166 - "__ movq(r11, 16);", // IID17167 - "__ movq(r11, 256);", // IID17168 - "__ movq(r11, 4096);", // IID17169 - "__ movq(r11, 65536);", // IID17170 - "__ movq(r11, 1048576);", // IID17171 - "__ movq(r11, 16777216);", // IID17172 - "__ movq(r11, 268435456);", // IID17173 - "__ movq(r12, 1);", // IID17174 - "__ movq(r12, 16);", // IID17175 - "__ movq(r12, 256);", // IID17176 - "__ movq(r12, 4096);", // IID17177 - "__ movq(r12, 65536);", // IID17178 - "__ movq(r12, 1048576);", // IID17179 - "__ movq(r12, 16777216);", // IID17180 - "__ movq(r12, 268435456);", // IID17181 - "__ movq(r13, 1);", // IID17182 - "__ movq(r13, 16);", // IID17183 - "__ movq(r13, 256);", // IID17184 - "__ movq(r13, 4096);", // IID17185 - "__ movq(r13, 65536);", // IID17186 - "__ movq(r13, 1048576);", // IID17187 - "__ movq(r13, 16777216);", // IID17188 - "__ movq(r13, 268435456);", // IID17189 - "__ movq(r14, 1);", // IID17190 - "__ movq(r14, 16);", // IID17191 - "__ movq(r14, 256);", // IID17192 - "__ movq(r14, 4096);", // IID17193 - "__ movq(r14, 65536);", // IID17194 - "__ movq(r14, 1048576);", // IID17195 - "__ movq(r14, 16777216);", // IID17196 - "__ movq(r14, 268435456);", // IID17197 - "__ movq(r15, 1);", // IID17198 - "__ movq(r15, 16);", // IID17199 - "__ movq(r15, 256);", // IID17200 - "__ movq(r15, 4096);", // IID17201 - "__ movq(r15, 65536);", // IID17202 - "__ movq(r15, 1048576);", // IID17203 - "__ movq(r15, 16777216);", // IID17204 - "__ movq(r15, 268435456);", // IID17205 - "__ movq(r16, 1);", // IID17206 - "__ movq(r16, 16);", // IID17207 - "__ movq(r16, 256);", // IID17208 - "__ movq(r16, 4096);", // IID17209 - "__ movq(r16, 65536);", // IID17210 - "__ movq(r16, 1048576);", // IID17211 - "__ movq(r16, 16777216);", // IID17212 - "__ movq(r16, 268435456);", // IID17213 - "__ movq(r17, 1);", // IID17214 - "__ movq(r17, 16);", // IID17215 - "__ movq(r17, 256);", // IID17216 - "__ movq(r17, 4096);", // IID17217 - "__ movq(r17, 65536);", // IID17218 - "__ movq(r17, 1048576);", // IID17219 - "__ movq(r17, 16777216);", // IID17220 - "__ movq(r17, 268435456);", // IID17221 - "__ movq(r18, 1);", // IID17222 - "__ movq(r18, 16);", // IID17223 - "__ movq(r18, 256);", // IID17224 - "__ movq(r18, 4096);", // IID17225 - "__ movq(r18, 65536);", // IID17226 - "__ movq(r18, 1048576);", // IID17227 - "__ movq(r18, 16777216);", // IID17228 - "__ movq(r18, 268435456);", // IID17229 - "__ movq(r19, 1);", // IID17230 - "__ movq(r19, 16);", // IID17231 - "__ movq(r19, 256);", // IID17232 - "__ movq(r19, 4096);", // IID17233 - "__ movq(r19, 65536);", // IID17234 - "__ movq(r19, 1048576);", // IID17235 - "__ movq(r19, 16777216);", // IID17236 - "__ movq(r19, 268435456);", // IID17237 - "__ movq(r20, 1);", // IID17238 - "__ movq(r20, 16);", // IID17239 - "__ movq(r20, 256);", // IID17240 - "__ movq(r20, 4096);", // IID17241 - "__ movq(r20, 65536);", // IID17242 - "__ movq(r20, 1048576);", // IID17243 - "__ movq(r20, 16777216);", // IID17244 - "__ movq(r20, 268435456);", // IID17245 - "__ movq(r21, 1);", // IID17246 - "__ movq(r21, 16);", // IID17247 - "__ movq(r21, 256);", // IID17248 - "__ movq(r21, 4096);", // IID17249 - "__ movq(r21, 65536);", // IID17250 - "__ movq(r21, 1048576);", // IID17251 - "__ movq(r21, 16777216);", // IID17252 - "__ movq(r21, 268435456);", // IID17253 - "__ movq(r22, 1);", // IID17254 - "__ movq(r22, 16);", // IID17255 - "__ movq(r22, 256);", // IID17256 - "__ movq(r22, 4096);", // IID17257 - "__ movq(r22, 65536);", // IID17258 - "__ movq(r22, 1048576);", // IID17259 - "__ movq(r22, 16777216);", // IID17260 - "__ movq(r22, 268435456);", // IID17261 - "__ movq(r23, 1);", // IID17262 - "__ movq(r23, 16);", // IID17263 - "__ movq(r23, 256);", // IID17264 - "__ movq(r23, 4096);", // IID17265 - "__ movq(r23, 65536);", // IID17266 - "__ movq(r23, 1048576);", // IID17267 - "__ movq(r23, 16777216);", // IID17268 - "__ movq(r23, 268435456);", // IID17269 - "__ movq(r24, 1);", // IID17270 - "__ movq(r24, 16);", // IID17271 - "__ movq(r24, 256);", // IID17272 - "__ movq(r24, 4096);", // IID17273 - "__ movq(r24, 65536);", // IID17274 - "__ movq(r24, 1048576);", // IID17275 - "__ movq(r24, 16777216);", // IID17276 - "__ movq(r24, 268435456);", // IID17277 - "__ movq(r25, 1);", // IID17278 - "__ movq(r25, 16);", // IID17279 - "__ movq(r25, 256);", // IID17280 - "__ movq(r25, 4096);", // IID17281 - "__ movq(r25, 65536);", // IID17282 - "__ movq(r25, 1048576);", // IID17283 - "__ movq(r25, 16777216);", // IID17284 - "__ movq(r25, 268435456);", // IID17285 - "__ movq(r26, 1);", // IID17286 - "__ movq(r26, 16);", // IID17287 - "__ movq(r26, 256);", // IID17288 - "__ movq(r26, 4096);", // IID17289 - "__ movq(r26, 65536);", // IID17290 - "__ movq(r26, 1048576);", // IID17291 - "__ movq(r26, 16777216);", // IID17292 - "__ movq(r26, 268435456);", // IID17293 - "__ movq(r27, 1);", // IID17294 - "__ movq(r27, 16);", // IID17295 - "__ movq(r27, 256);", // IID17296 - "__ movq(r27, 4096);", // IID17297 - "__ movq(r27, 65536);", // IID17298 - "__ movq(r27, 1048576);", // IID17299 - "__ movq(r27, 16777216);", // IID17300 - "__ movq(r27, 268435456);", // IID17301 - "__ movq(r28, 1);", // IID17302 - "__ movq(r28, 16);", // IID17303 - "__ movq(r28, 256);", // IID17304 - "__ movq(r28, 4096);", // IID17305 - "__ movq(r28, 65536);", // IID17306 - "__ movq(r28, 1048576);", // IID17307 - "__ movq(r28, 16777216);", // IID17308 - "__ movq(r28, 268435456);", // IID17309 - "__ movq(r29, 1);", // IID17310 - "__ movq(r29, 16);", // IID17311 - "__ movq(r29, 256);", // IID17312 - "__ movq(r29, 4096);", // IID17313 - "__ movq(r29, 65536);", // IID17314 - "__ movq(r29, 1048576);", // IID17315 - "__ movq(r29, 16777216);", // IID17316 - "__ movq(r29, 268435456);", // IID17317 - "__ movq(r30, 1);", // IID17318 - "__ movq(r30, 16);", // IID17319 - "__ movq(r30, 256);", // IID17320 - "__ movq(r30, 4096);", // IID17321 - "__ movq(r30, 65536);", // IID17322 - "__ movq(r30, 1048576);", // IID17323 - "__ movq(r30, 16777216);", // IID17324 - "__ movq(r30, 268435456);", // IID17325 - "__ movq(r31, 1);", // IID17326 - "__ movq(r31, 16);", // IID17327 - "__ movq(r31, 256);", // IID17328 - "__ movq(r31, 4096);", // IID17329 - "__ movq(r31, 65536);", // IID17330 - "__ movq(r31, 1048576);", // IID17331 - "__ movq(r31, 16777216);", // IID17332 - "__ movq(r31, 268435456);", // IID17333 - "__ mov64(rcx, 4294967296);", // IID17334 - "__ mov64(rcx, 17179869184);", // IID17335 - "__ mov64(rcx, 68719476736);", // IID17336 - "__ mov64(rcx, 274877906944);", // IID17337 - "__ mov64(rcx, 1099511627776);", // IID17338 - "__ mov64(rcx, 4398046511104);", // IID17339 - "__ mov64(rcx, 17592186044416);", // IID17340 - "__ mov64(rcx, 70368744177664);", // IID17341 - "__ mov64(rcx, 281474976710656);", // IID17342 - "__ mov64(rcx, 1125899906842624);", // IID17343 - "__ mov64(rcx, 4503599627370496);", // IID17344 - "__ mov64(rcx, 18014398509481984);", // IID17345 - "__ mov64(rcx, 72057594037927936);", // IID17346 - "__ mov64(rcx, 288230376151711744);", // IID17347 - "__ mov64(rcx, 1152921504606846976);", // IID17348 - "__ mov64(rcx, 4611686018427387904);", // IID17349 - "__ mov64(rdx, 4294967296);", // IID17350 - "__ mov64(rdx, 17179869184);", // IID17351 - "__ mov64(rdx, 68719476736);", // IID17352 - "__ mov64(rdx, 274877906944);", // IID17353 - "__ mov64(rdx, 1099511627776);", // IID17354 - "__ mov64(rdx, 4398046511104);", // IID17355 - "__ mov64(rdx, 17592186044416);", // IID17356 - "__ mov64(rdx, 70368744177664);", // IID17357 - "__ mov64(rdx, 281474976710656);", // IID17358 - "__ mov64(rdx, 1125899906842624);", // IID17359 - "__ mov64(rdx, 4503599627370496);", // IID17360 - "__ mov64(rdx, 18014398509481984);", // IID17361 - "__ mov64(rdx, 72057594037927936);", // IID17362 - "__ mov64(rdx, 288230376151711744);", // IID17363 - "__ mov64(rdx, 1152921504606846976);", // IID17364 - "__ mov64(rdx, 4611686018427387904);", // IID17365 - "__ mov64(rbx, 4294967296);", // IID17366 - "__ mov64(rbx, 17179869184);", // IID17367 - "__ mov64(rbx, 68719476736);", // IID17368 - "__ mov64(rbx, 274877906944);", // IID17369 - "__ mov64(rbx, 1099511627776);", // IID17370 - "__ mov64(rbx, 4398046511104);", // IID17371 - "__ mov64(rbx, 17592186044416);", // IID17372 - "__ mov64(rbx, 70368744177664);", // IID17373 - "__ mov64(rbx, 281474976710656);", // IID17374 - "__ mov64(rbx, 1125899906842624);", // IID17375 - "__ mov64(rbx, 4503599627370496);", // IID17376 - "__ mov64(rbx, 18014398509481984);", // IID17377 - "__ mov64(rbx, 72057594037927936);", // IID17378 - "__ mov64(rbx, 288230376151711744);", // IID17379 - "__ mov64(rbx, 1152921504606846976);", // IID17380 - "__ mov64(rbx, 4611686018427387904);", // IID17381 - "__ mov64(r8, 4294967296);", // IID17382 - "__ mov64(r8, 17179869184);", // IID17383 - "__ mov64(r8, 68719476736);", // IID17384 - "__ mov64(r8, 274877906944);", // IID17385 - "__ mov64(r8, 1099511627776);", // IID17386 - "__ mov64(r8, 4398046511104);", // IID17387 - "__ mov64(r8, 17592186044416);", // IID17388 - "__ mov64(r8, 70368744177664);", // IID17389 - "__ mov64(r8, 281474976710656);", // IID17390 - "__ mov64(r8, 1125899906842624);", // IID17391 - "__ mov64(r8, 4503599627370496);", // IID17392 - "__ mov64(r8, 18014398509481984);", // IID17393 - "__ mov64(r8, 72057594037927936);", // IID17394 - "__ mov64(r8, 288230376151711744);", // IID17395 - "__ mov64(r8, 1152921504606846976);", // IID17396 - "__ mov64(r8, 4611686018427387904);", // IID17397 - "__ mov64(r9, 4294967296);", // IID17398 - "__ mov64(r9, 17179869184);", // IID17399 - "__ mov64(r9, 68719476736);", // IID17400 - "__ mov64(r9, 274877906944);", // IID17401 - "__ mov64(r9, 1099511627776);", // IID17402 - "__ mov64(r9, 4398046511104);", // IID17403 - "__ mov64(r9, 17592186044416);", // IID17404 - "__ mov64(r9, 70368744177664);", // IID17405 - "__ mov64(r9, 281474976710656);", // IID17406 - "__ mov64(r9, 1125899906842624);", // IID17407 - "__ mov64(r9, 4503599627370496);", // IID17408 - "__ mov64(r9, 18014398509481984);", // IID17409 - "__ mov64(r9, 72057594037927936);", // IID17410 - "__ mov64(r9, 288230376151711744);", // IID17411 - "__ mov64(r9, 1152921504606846976);", // IID17412 - "__ mov64(r9, 4611686018427387904);", // IID17413 - "__ mov64(r10, 4294967296);", // IID17414 - "__ mov64(r10, 17179869184);", // IID17415 - "__ mov64(r10, 68719476736);", // IID17416 - "__ mov64(r10, 274877906944);", // IID17417 - "__ mov64(r10, 1099511627776);", // IID17418 - "__ mov64(r10, 4398046511104);", // IID17419 - "__ mov64(r10, 17592186044416);", // IID17420 - "__ mov64(r10, 70368744177664);", // IID17421 - "__ mov64(r10, 281474976710656);", // IID17422 - "__ mov64(r10, 1125899906842624);", // IID17423 - "__ mov64(r10, 4503599627370496);", // IID17424 - "__ mov64(r10, 18014398509481984);", // IID17425 - "__ mov64(r10, 72057594037927936);", // IID17426 - "__ mov64(r10, 288230376151711744);", // IID17427 - "__ mov64(r10, 1152921504606846976);", // IID17428 - "__ mov64(r10, 4611686018427387904);", // IID17429 - "__ mov64(r11, 4294967296);", // IID17430 - "__ mov64(r11, 17179869184);", // IID17431 - "__ mov64(r11, 68719476736);", // IID17432 - "__ mov64(r11, 274877906944);", // IID17433 - "__ mov64(r11, 1099511627776);", // IID17434 - "__ mov64(r11, 4398046511104);", // IID17435 - "__ mov64(r11, 17592186044416);", // IID17436 - "__ mov64(r11, 70368744177664);", // IID17437 - "__ mov64(r11, 281474976710656);", // IID17438 - "__ mov64(r11, 1125899906842624);", // IID17439 - "__ mov64(r11, 4503599627370496);", // IID17440 - "__ mov64(r11, 18014398509481984);", // IID17441 - "__ mov64(r11, 72057594037927936);", // IID17442 - "__ mov64(r11, 288230376151711744);", // IID17443 - "__ mov64(r11, 1152921504606846976);", // IID17444 - "__ mov64(r11, 4611686018427387904);", // IID17445 - "__ mov64(r12, 4294967296);", // IID17446 - "__ mov64(r12, 17179869184);", // IID17447 - "__ mov64(r12, 68719476736);", // IID17448 - "__ mov64(r12, 274877906944);", // IID17449 - "__ mov64(r12, 1099511627776);", // IID17450 - "__ mov64(r12, 4398046511104);", // IID17451 - "__ mov64(r12, 17592186044416);", // IID17452 - "__ mov64(r12, 70368744177664);", // IID17453 - "__ mov64(r12, 281474976710656);", // IID17454 - "__ mov64(r12, 1125899906842624);", // IID17455 - "__ mov64(r12, 4503599627370496);", // IID17456 - "__ mov64(r12, 18014398509481984);", // IID17457 - "__ mov64(r12, 72057594037927936);", // IID17458 - "__ mov64(r12, 288230376151711744);", // IID17459 - "__ mov64(r12, 1152921504606846976);", // IID17460 - "__ mov64(r12, 4611686018427387904);", // IID17461 - "__ mov64(r13, 4294967296);", // IID17462 - "__ mov64(r13, 17179869184);", // IID17463 - "__ mov64(r13, 68719476736);", // IID17464 - "__ mov64(r13, 274877906944);", // IID17465 - "__ mov64(r13, 1099511627776);", // IID17466 - "__ mov64(r13, 4398046511104);", // IID17467 - "__ mov64(r13, 17592186044416);", // IID17468 - "__ mov64(r13, 70368744177664);", // IID17469 - "__ mov64(r13, 281474976710656);", // IID17470 - "__ mov64(r13, 1125899906842624);", // IID17471 - "__ mov64(r13, 4503599627370496);", // IID17472 - "__ mov64(r13, 18014398509481984);", // IID17473 - "__ mov64(r13, 72057594037927936);", // IID17474 - "__ mov64(r13, 288230376151711744);", // IID17475 - "__ mov64(r13, 1152921504606846976);", // IID17476 - "__ mov64(r13, 4611686018427387904);", // IID17477 - "__ mov64(r14, 4294967296);", // IID17478 - "__ mov64(r14, 17179869184);", // IID17479 - "__ mov64(r14, 68719476736);", // IID17480 - "__ mov64(r14, 274877906944);", // IID17481 - "__ mov64(r14, 1099511627776);", // IID17482 - "__ mov64(r14, 4398046511104);", // IID17483 - "__ mov64(r14, 17592186044416);", // IID17484 - "__ mov64(r14, 70368744177664);", // IID17485 - "__ mov64(r14, 281474976710656);", // IID17486 - "__ mov64(r14, 1125899906842624);", // IID17487 - "__ mov64(r14, 4503599627370496);", // IID17488 - "__ mov64(r14, 18014398509481984);", // IID17489 - "__ mov64(r14, 72057594037927936);", // IID17490 - "__ mov64(r14, 288230376151711744);", // IID17491 - "__ mov64(r14, 1152921504606846976);", // IID17492 - "__ mov64(r14, 4611686018427387904);", // IID17493 - "__ mov64(r15, 4294967296);", // IID17494 - "__ mov64(r15, 17179869184);", // IID17495 - "__ mov64(r15, 68719476736);", // IID17496 - "__ mov64(r15, 274877906944);", // IID17497 - "__ mov64(r15, 1099511627776);", // IID17498 - "__ mov64(r15, 4398046511104);", // IID17499 - "__ mov64(r15, 17592186044416);", // IID17500 - "__ mov64(r15, 70368744177664);", // IID17501 - "__ mov64(r15, 281474976710656);", // IID17502 - "__ mov64(r15, 1125899906842624);", // IID17503 - "__ mov64(r15, 4503599627370496);", // IID17504 - "__ mov64(r15, 18014398509481984);", // IID17505 - "__ mov64(r15, 72057594037927936);", // IID17506 - "__ mov64(r15, 288230376151711744);", // IID17507 - "__ mov64(r15, 1152921504606846976);", // IID17508 - "__ mov64(r15, 4611686018427387904);", // IID17509 - "__ mov64(r16, 4294967296);", // IID17510 - "__ mov64(r16, 17179869184);", // IID17511 - "__ mov64(r16, 68719476736);", // IID17512 - "__ mov64(r16, 274877906944);", // IID17513 - "__ mov64(r16, 1099511627776);", // IID17514 - "__ mov64(r16, 4398046511104);", // IID17515 - "__ mov64(r16, 17592186044416);", // IID17516 - "__ mov64(r16, 70368744177664);", // IID17517 - "__ mov64(r16, 281474976710656);", // IID17518 - "__ mov64(r16, 1125899906842624);", // IID17519 - "__ mov64(r16, 4503599627370496);", // IID17520 - "__ mov64(r16, 18014398509481984);", // IID17521 - "__ mov64(r16, 72057594037927936);", // IID17522 - "__ mov64(r16, 288230376151711744);", // IID17523 - "__ mov64(r16, 1152921504606846976);", // IID17524 - "__ mov64(r16, 4611686018427387904);", // IID17525 - "__ mov64(r17, 4294967296);", // IID17526 - "__ mov64(r17, 17179869184);", // IID17527 - "__ mov64(r17, 68719476736);", // IID17528 - "__ mov64(r17, 274877906944);", // IID17529 - "__ mov64(r17, 1099511627776);", // IID17530 - "__ mov64(r17, 4398046511104);", // IID17531 - "__ mov64(r17, 17592186044416);", // IID17532 - "__ mov64(r17, 70368744177664);", // IID17533 - "__ mov64(r17, 281474976710656);", // IID17534 - "__ mov64(r17, 1125899906842624);", // IID17535 - "__ mov64(r17, 4503599627370496);", // IID17536 - "__ mov64(r17, 18014398509481984);", // IID17537 - "__ mov64(r17, 72057594037927936);", // IID17538 - "__ mov64(r17, 288230376151711744);", // IID17539 - "__ mov64(r17, 1152921504606846976);", // IID17540 - "__ mov64(r17, 4611686018427387904);", // IID17541 - "__ mov64(r18, 4294967296);", // IID17542 - "__ mov64(r18, 17179869184);", // IID17543 - "__ mov64(r18, 68719476736);", // IID17544 - "__ mov64(r18, 274877906944);", // IID17545 - "__ mov64(r18, 1099511627776);", // IID17546 - "__ mov64(r18, 4398046511104);", // IID17547 - "__ mov64(r18, 17592186044416);", // IID17548 - "__ mov64(r18, 70368744177664);", // IID17549 - "__ mov64(r18, 281474976710656);", // IID17550 - "__ mov64(r18, 1125899906842624);", // IID17551 - "__ mov64(r18, 4503599627370496);", // IID17552 - "__ mov64(r18, 18014398509481984);", // IID17553 - "__ mov64(r18, 72057594037927936);", // IID17554 - "__ mov64(r18, 288230376151711744);", // IID17555 - "__ mov64(r18, 1152921504606846976);", // IID17556 - "__ mov64(r18, 4611686018427387904);", // IID17557 - "__ mov64(r19, 4294967296);", // IID17558 - "__ mov64(r19, 17179869184);", // IID17559 - "__ mov64(r19, 68719476736);", // IID17560 - "__ mov64(r19, 274877906944);", // IID17561 - "__ mov64(r19, 1099511627776);", // IID17562 - "__ mov64(r19, 4398046511104);", // IID17563 - "__ mov64(r19, 17592186044416);", // IID17564 - "__ mov64(r19, 70368744177664);", // IID17565 - "__ mov64(r19, 281474976710656);", // IID17566 - "__ mov64(r19, 1125899906842624);", // IID17567 - "__ mov64(r19, 4503599627370496);", // IID17568 - "__ mov64(r19, 18014398509481984);", // IID17569 - "__ mov64(r19, 72057594037927936);", // IID17570 - "__ mov64(r19, 288230376151711744);", // IID17571 - "__ mov64(r19, 1152921504606846976);", // IID17572 - "__ mov64(r19, 4611686018427387904);", // IID17573 - "__ mov64(r20, 4294967296);", // IID17574 - "__ mov64(r20, 17179869184);", // IID17575 - "__ mov64(r20, 68719476736);", // IID17576 - "__ mov64(r20, 274877906944);", // IID17577 - "__ mov64(r20, 1099511627776);", // IID17578 - "__ mov64(r20, 4398046511104);", // IID17579 - "__ mov64(r20, 17592186044416);", // IID17580 - "__ mov64(r20, 70368744177664);", // IID17581 - "__ mov64(r20, 281474976710656);", // IID17582 - "__ mov64(r20, 1125899906842624);", // IID17583 - "__ mov64(r20, 4503599627370496);", // IID17584 - "__ mov64(r20, 18014398509481984);", // IID17585 - "__ mov64(r20, 72057594037927936);", // IID17586 - "__ mov64(r20, 288230376151711744);", // IID17587 - "__ mov64(r20, 1152921504606846976);", // IID17588 - "__ mov64(r20, 4611686018427387904);", // IID17589 - "__ mov64(r21, 4294967296);", // IID17590 - "__ mov64(r21, 17179869184);", // IID17591 - "__ mov64(r21, 68719476736);", // IID17592 - "__ mov64(r21, 274877906944);", // IID17593 - "__ mov64(r21, 1099511627776);", // IID17594 - "__ mov64(r21, 4398046511104);", // IID17595 - "__ mov64(r21, 17592186044416);", // IID17596 - "__ mov64(r21, 70368744177664);", // IID17597 - "__ mov64(r21, 281474976710656);", // IID17598 - "__ mov64(r21, 1125899906842624);", // IID17599 - "__ mov64(r21, 4503599627370496);", // IID17600 - "__ mov64(r21, 18014398509481984);", // IID17601 - "__ mov64(r21, 72057594037927936);", // IID17602 - "__ mov64(r21, 288230376151711744);", // IID17603 - "__ mov64(r21, 1152921504606846976);", // IID17604 - "__ mov64(r21, 4611686018427387904);", // IID17605 - "__ mov64(r22, 4294967296);", // IID17606 - "__ mov64(r22, 17179869184);", // IID17607 - "__ mov64(r22, 68719476736);", // IID17608 - "__ mov64(r22, 274877906944);", // IID17609 - "__ mov64(r22, 1099511627776);", // IID17610 - "__ mov64(r22, 4398046511104);", // IID17611 - "__ mov64(r22, 17592186044416);", // IID17612 - "__ mov64(r22, 70368744177664);", // IID17613 - "__ mov64(r22, 281474976710656);", // IID17614 - "__ mov64(r22, 1125899906842624);", // IID17615 - "__ mov64(r22, 4503599627370496);", // IID17616 - "__ mov64(r22, 18014398509481984);", // IID17617 - "__ mov64(r22, 72057594037927936);", // IID17618 - "__ mov64(r22, 288230376151711744);", // IID17619 - "__ mov64(r22, 1152921504606846976);", // IID17620 - "__ mov64(r22, 4611686018427387904);", // IID17621 - "__ mov64(r23, 4294967296);", // IID17622 - "__ mov64(r23, 17179869184);", // IID17623 - "__ mov64(r23, 68719476736);", // IID17624 - "__ mov64(r23, 274877906944);", // IID17625 - "__ mov64(r23, 1099511627776);", // IID17626 - "__ mov64(r23, 4398046511104);", // IID17627 - "__ mov64(r23, 17592186044416);", // IID17628 - "__ mov64(r23, 70368744177664);", // IID17629 - "__ mov64(r23, 281474976710656);", // IID17630 - "__ mov64(r23, 1125899906842624);", // IID17631 - "__ mov64(r23, 4503599627370496);", // IID17632 - "__ mov64(r23, 18014398509481984);", // IID17633 - "__ mov64(r23, 72057594037927936);", // IID17634 - "__ mov64(r23, 288230376151711744);", // IID17635 - "__ mov64(r23, 1152921504606846976);", // IID17636 - "__ mov64(r23, 4611686018427387904);", // IID17637 - "__ mov64(r24, 4294967296);", // IID17638 - "__ mov64(r24, 17179869184);", // IID17639 - "__ mov64(r24, 68719476736);", // IID17640 - "__ mov64(r24, 274877906944);", // IID17641 - "__ mov64(r24, 1099511627776);", // IID17642 - "__ mov64(r24, 4398046511104);", // IID17643 - "__ mov64(r24, 17592186044416);", // IID17644 - "__ mov64(r24, 70368744177664);", // IID17645 - "__ mov64(r24, 281474976710656);", // IID17646 - "__ mov64(r24, 1125899906842624);", // IID17647 - "__ mov64(r24, 4503599627370496);", // IID17648 - "__ mov64(r24, 18014398509481984);", // IID17649 - "__ mov64(r24, 72057594037927936);", // IID17650 - "__ mov64(r24, 288230376151711744);", // IID17651 - "__ mov64(r24, 1152921504606846976);", // IID17652 - "__ mov64(r24, 4611686018427387904);", // IID17653 - "__ mov64(r25, 4294967296);", // IID17654 - "__ mov64(r25, 17179869184);", // IID17655 - "__ mov64(r25, 68719476736);", // IID17656 - "__ mov64(r25, 274877906944);", // IID17657 - "__ mov64(r25, 1099511627776);", // IID17658 - "__ mov64(r25, 4398046511104);", // IID17659 - "__ mov64(r25, 17592186044416);", // IID17660 - "__ mov64(r25, 70368744177664);", // IID17661 - "__ mov64(r25, 281474976710656);", // IID17662 - "__ mov64(r25, 1125899906842624);", // IID17663 - "__ mov64(r25, 4503599627370496);", // IID17664 - "__ mov64(r25, 18014398509481984);", // IID17665 - "__ mov64(r25, 72057594037927936);", // IID17666 - "__ mov64(r25, 288230376151711744);", // IID17667 - "__ mov64(r25, 1152921504606846976);", // IID17668 - "__ mov64(r25, 4611686018427387904);", // IID17669 - "__ mov64(r26, 4294967296);", // IID17670 - "__ mov64(r26, 17179869184);", // IID17671 - "__ mov64(r26, 68719476736);", // IID17672 - "__ mov64(r26, 274877906944);", // IID17673 - "__ mov64(r26, 1099511627776);", // IID17674 - "__ mov64(r26, 4398046511104);", // IID17675 - "__ mov64(r26, 17592186044416);", // IID17676 - "__ mov64(r26, 70368744177664);", // IID17677 - "__ mov64(r26, 281474976710656);", // IID17678 - "__ mov64(r26, 1125899906842624);", // IID17679 - "__ mov64(r26, 4503599627370496);", // IID17680 - "__ mov64(r26, 18014398509481984);", // IID17681 - "__ mov64(r26, 72057594037927936);", // IID17682 - "__ mov64(r26, 288230376151711744);", // IID17683 - "__ mov64(r26, 1152921504606846976);", // IID17684 - "__ mov64(r26, 4611686018427387904);", // IID17685 - "__ mov64(r27, 4294967296);", // IID17686 - "__ mov64(r27, 17179869184);", // IID17687 - "__ mov64(r27, 68719476736);", // IID17688 - "__ mov64(r27, 274877906944);", // IID17689 - "__ mov64(r27, 1099511627776);", // IID17690 - "__ mov64(r27, 4398046511104);", // IID17691 - "__ mov64(r27, 17592186044416);", // IID17692 - "__ mov64(r27, 70368744177664);", // IID17693 - "__ mov64(r27, 281474976710656);", // IID17694 - "__ mov64(r27, 1125899906842624);", // IID17695 - "__ mov64(r27, 4503599627370496);", // IID17696 - "__ mov64(r27, 18014398509481984);", // IID17697 - "__ mov64(r27, 72057594037927936);", // IID17698 - "__ mov64(r27, 288230376151711744);", // IID17699 - "__ mov64(r27, 1152921504606846976);", // IID17700 - "__ mov64(r27, 4611686018427387904);", // IID17701 - "__ mov64(r28, 4294967296);", // IID17702 - "__ mov64(r28, 17179869184);", // IID17703 - "__ mov64(r28, 68719476736);", // IID17704 - "__ mov64(r28, 274877906944);", // IID17705 - "__ mov64(r28, 1099511627776);", // IID17706 - "__ mov64(r28, 4398046511104);", // IID17707 - "__ mov64(r28, 17592186044416);", // IID17708 - "__ mov64(r28, 70368744177664);", // IID17709 - "__ mov64(r28, 281474976710656);", // IID17710 - "__ mov64(r28, 1125899906842624);", // IID17711 - "__ mov64(r28, 4503599627370496);", // IID17712 - "__ mov64(r28, 18014398509481984);", // IID17713 - "__ mov64(r28, 72057594037927936);", // IID17714 - "__ mov64(r28, 288230376151711744);", // IID17715 - "__ mov64(r28, 1152921504606846976);", // IID17716 - "__ mov64(r28, 4611686018427387904);", // IID17717 - "__ mov64(r29, 4294967296);", // IID17718 - "__ mov64(r29, 17179869184);", // IID17719 - "__ mov64(r29, 68719476736);", // IID17720 - "__ mov64(r29, 274877906944);", // IID17721 - "__ mov64(r29, 1099511627776);", // IID17722 - "__ mov64(r29, 4398046511104);", // IID17723 - "__ mov64(r29, 17592186044416);", // IID17724 - "__ mov64(r29, 70368744177664);", // IID17725 - "__ mov64(r29, 281474976710656);", // IID17726 - "__ mov64(r29, 1125899906842624);", // IID17727 - "__ mov64(r29, 4503599627370496);", // IID17728 - "__ mov64(r29, 18014398509481984);", // IID17729 - "__ mov64(r29, 72057594037927936);", // IID17730 - "__ mov64(r29, 288230376151711744);", // IID17731 - "__ mov64(r29, 1152921504606846976);", // IID17732 - "__ mov64(r29, 4611686018427387904);", // IID17733 - "__ mov64(r30, 4294967296);", // IID17734 - "__ mov64(r30, 17179869184);", // IID17735 - "__ mov64(r30, 68719476736);", // IID17736 - "__ mov64(r30, 274877906944);", // IID17737 - "__ mov64(r30, 1099511627776);", // IID17738 - "__ mov64(r30, 4398046511104);", // IID17739 - "__ mov64(r30, 17592186044416);", // IID17740 - "__ mov64(r30, 70368744177664);", // IID17741 - "__ mov64(r30, 281474976710656);", // IID17742 - "__ mov64(r30, 1125899906842624);", // IID17743 - "__ mov64(r30, 4503599627370496);", // IID17744 - "__ mov64(r30, 18014398509481984);", // IID17745 - "__ mov64(r30, 72057594037927936);", // IID17746 - "__ mov64(r30, 288230376151711744);", // IID17747 - "__ mov64(r30, 1152921504606846976);", // IID17748 - "__ mov64(r30, 4611686018427387904);", // IID17749 - "__ mov64(r31, 4294967296);", // IID17750 - "__ mov64(r31, 17179869184);", // IID17751 - "__ mov64(r31, 68719476736);", // IID17752 - "__ mov64(r31, 274877906944);", // IID17753 - "__ mov64(r31, 1099511627776);", // IID17754 - "__ mov64(r31, 4398046511104);", // IID17755 - "__ mov64(r31, 17592186044416);", // IID17756 - "__ mov64(r31, 70368744177664);", // IID17757 - "__ mov64(r31, 281474976710656);", // IID17758 - "__ mov64(r31, 1125899906842624);", // IID17759 - "__ mov64(r31, 4503599627370496);", // IID17760 - "__ mov64(r31, 18014398509481984);", // IID17761 - "__ mov64(r31, 72057594037927936);", // IID17762 - "__ mov64(r31, 288230376151711744);", // IID17763 - "__ mov64(r31, 1152921504606846976);", // IID17764 - "__ mov64(r31, 4611686018427387904);", // IID17765 - "__ btq(rcx, 1);", // IID17766 - "__ btq(rcx, 4);", // IID17767 - "__ btq(rcx, 16);", // IID17768 - "__ btq(rcx, 64);", // IID17769 - "__ btq(rdx, 1);", // IID17770 - "__ btq(rdx, 4);", // IID17771 - "__ btq(rdx, 16);", // IID17772 - "__ btq(rdx, 64);", // IID17773 - "__ btq(rbx, 1);", // IID17774 - "__ btq(rbx, 4);", // IID17775 - "__ btq(rbx, 16);", // IID17776 - "__ btq(rbx, 64);", // IID17777 - "__ btq(r8, 1);", // IID17778 - "__ btq(r8, 4);", // IID17779 - "__ btq(r8, 16);", // IID17780 - "__ btq(r8, 64);", // IID17781 - "__ btq(r9, 1);", // IID17782 - "__ btq(r9, 4);", // IID17783 - "__ btq(r9, 16);", // IID17784 - "__ btq(r9, 64);", // IID17785 - "__ btq(r10, 1);", // IID17786 - "__ btq(r10, 4);", // IID17787 - "__ btq(r10, 16);", // IID17788 - "__ btq(r10, 64);", // IID17789 - "__ btq(r11, 1);", // IID17790 - "__ btq(r11, 4);", // IID17791 - "__ btq(r11, 16);", // IID17792 - "__ btq(r11, 64);", // IID17793 - "__ btq(r12, 1);", // IID17794 - "__ btq(r12, 4);", // IID17795 - "__ btq(r12, 16);", // IID17796 - "__ btq(r12, 64);", // IID17797 - "__ btq(r13, 1);", // IID17798 - "__ btq(r13, 4);", // IID17799 - "__ btq(r13, 16);", // IID17800 - "__ btq(r13, 64);", // IID17801 - "__ btq(r14, 1);", // IID17802 - "__ btq(r14, 4);", // IID17803 - "__ btq(r14, 16);", // IID17804 - "__ btq(r14, 64);", // IID17805 - "__ btq(r15, 1);", // IID17806 - "__ btq(r15, 4);", // IID17807 - "__ btq(r15, 16);", // IID17808 - "__ btq(r15, 64);", // IID17809 - "__ btq(r16, 1);", // IID17810 - "__ btq(r16, 4);", // IID17811 - "__ btq(r16, 16);", // IID17812 - "__ btq(r16, 64);", // IID17813 - "__ btq(r17, 1);", // IID17814 - "__ btq(r17, 4);", // IID17815 - "__ btq(r17, 16);", // IID17816 - "__ btq(r17, 64);", // IID17817 - "__ btq(r18, 1);", // IID17818 - "__ btq(r18, 4);", // IID17819 - "__ btq(r18, 16);", // IID17820 - "__ btq(r18, 64);", // IID17821 - "__ btq(r19, 1);", // IID17822 - "__ btq(r19, 4);", // IID17823 - "__ btq(r19, 16);", // IID17824 - "__ btq(r19, 64);", // IID17825 - "__ btq(r20, 1);", // IID17826 - "__ btq(r20, 4);", // IID17827 - "__ btq(r20, 16);", // IID17828 - "__ btq(r20, 64);", // IID17829 - "__ btq(r21, 1);", // IID17830 - "__ btq(r21, 4);", // IID17831 - "__ btq(r21, 16);", // IID17832 - "__ btq(r21, 64);", // IID17833 - "__ btq(r22, 1);", // IID17834 - "__ btq(r22, 4);", // IID17835 - "__ btq(r22, 16);", // IID17836 - "__ btq(r22, 64);", // IID17837 - "__ btq(r23, 1);", // IID17838 - "__ btq(r23, 4);", // IID17839 - "__ btq(r23, 16);", // IID17840 - "__ btq(r23, 64);", // IID17841 - "__ btq(r24, 1);", // IID17842 - "__ btq(r24, 4);", // IID17843 - "__ btq(r24, 16);", // IID17844 - "__ btq(r24, 64);", // IID17845 - "__ btq(r25, 1);", // IID17846 - "__ btq(r25, 4);", // IID17847 - "__ btq(r25, 16);", // IID17848 - "__ btq(r25, 64);", // IID17849 - "__ btq(r26, 1);", // IID17850 - "__ btq(r26, 4);", // IID17851 - "__ btq(r26, 16);", // IID17852 - "__ btq(r26, 64);", // IID17853 - "__ btq(r27, 1);", // IID17854 - "__ btq(r27, 4);", // IID17855 - "__ btq(r27, 16);", // IID17856 - "__ btq(r27, 64);", // IID17857 - "__ btq(r28, 1);", // IID17858 - "__ btq(r28, 4);", // IID17859 - "__ btq(r28, 16);", // IID17860 - "__ btq(r28, 64);", // IID17861 - "__ btq(r29, 1);", // IID17862 - "__ btq(r29, 4);", // IID17863 - "__ btq(r29, 16);", // IID17864 - "__ btq(r29, 64);", // IID17865 - "__ btq(r30, 1);", // IID17866 - "__ btq(r30, 4);", // IID17867 - "__ btq(r30, 16);", // IID17868 - "__ btq(r30, 64);", // IID17869 - "__ btq(r31, 1);", // IID17870 - "__ btq(r31, 4);", // IID17871 - "__ btq(r31, 16);", // IID17872 - "__ btq(r31, 64);", // IID17873 - "__ testq(rcx, -1);", // IID17874 - "__ testq(rcx, -16);", // IID17875 - "__ testq(rcx, -256);", // IID17876 - "__ testq(rcx, -4096);", // IID17877 - "__ testq(rcx, -65536);", // IID17878 - "__ testq(rcx, -1048576);", // IID17879 - "__ testq(rcx, -16777216);", // IID17880 - "__ testq(rcx, -268435456);", // IID17881 - "__ testq(rdx, -1);", // IID17882 - "__ testq(rdx, -16);", // IID17883 - "__ testq(rdx, -256);", // IID17884 - "__ testq(rdx, -4096);", // IID17885 - "__ testq(rdx, -65536);", // IID17886 - "__ testq(rdx, -1048576);", // IID17887 - "__ testq(rdx, -16777216);", // IID17888 - "__ testq(rdx, -268435456);", // IID17889 - "__ testq(rbx, -1);", // IID17890 - "__ testq(rbx, -16);", // IID17891 - "__ testq(rbx, -256);", // IID17892 - "__ testq(rbx, -4096);", // IID17893 - "__ testq(rbx, -65536);", // IID17894 - "__ testq(rbx, -1048576);", // IID17895 - "__ testq(rbx, -16777216);", // IID17896 - "__ testq(rbx, -268435456);", // IID17897 - "__ testq(r8, -1);", // IID17898 - "__ testq(r8, -16);", // IID17899 - "__ testq(r8, -256);", // IID17900 - "__ testq(r8, -4096);", // IID17901 - "__ testq(r8, -65536);", // IID17902 - "__ testq(r8, -1048576);", // IID17903 - "__ testq(r8, -16777216);", // IID17904 - "__ testq(r8, -268435456);", // IID17905 - "__ testq(r9, -1);", // IID17906 - "__ testq(r9, -16);", // IID17907 - "__ testq(r9, -256);", // IID17908 - "__ testq(r9, -4096);", // IID17909 - "__ testq(r9, -65536);", // IID17910 - "__ testq(r9, -1048576);", // IID17911 - "__ testq(r9, -16777216);", // IID17912 - "__ testq(r9, -268435456);", // IID17913 - "__ testq(r10, -1);", // IID17914 - "__ testq(r10, -16);", // IID17915 - "__ testq(r10, -256);", // IID17916 - "__ testq(r10, -4096);", // IID17917 - "__ testq(r10, -65536);", // IID17918 - "__ testq(r10, -1048576);", // IID17919 - "__ testq(r10, -16777216);", // IID17920 - "__ testq(r10, -268435456);", // IID17921 - "__ testq(r11, -1);", // IID17922 - "__ testq(r11, -16);", // IID17923 - "__ testq(r11, -256);", // IID17924 - "__ testq(r11, -4096);", // IID17925 - "__ testq(r11, -65536);", // IID17926 - "__ testq(r11, -1048576);", // IID17927 - "__ testq(r11, -16777216);", // IID17928 - "__ testq(r11, -268435456);", // IID17929 - "__ testq(r12, -1);", // IID17930 - "__ testq(r12, -16);", // IID17931 - "__ testq(r12, -256);", // IID17932 - "__ testq(r12, -4096);", // IID17933 - "__ testq(r12, -65536);", // IID17934 - "__ testq(r12, -1048576);", // IID17935 - "__ testq(r12, -16777216);", // IID17936 - "__ testq(r12, -268435456);", // IID17937 - "__ testq(r13, -1);", // IID17938 - "__ testq(r13, -16);", // IID17939 - "__ testq(r13, -256);", // IID17940 - "__ testq(r13, -4096);", // IID17941 - "__ testq(r13, -65536);", // IID17942 - "__ testq(r13, -1048576);", // IID17943 - "__ testq(r13, -16777216);", // IID17944 - "__ testq(r13, -268435456);", // IID17945 - "__ testq(r14, -1);", // IID17946 - "__ testq(r14, -16);", // IID17947 - "__ testq(r14, -256);", // IID17948 - "__ testq(r14, -4096);", // IID17949 - "__ testq(r14, -65536);", // IID17950 - "__ testq(r14, -1048576);", // IID17951 - "__ testq(r14, -16777216);", // IID17952 - "__ testq(r14, -268435456);", // IID17953 - "__ testq(r15, -1);", // IID17954 - "__ testq(r15, -16);", // IID17955 - "__ testq(r15, -256);", // IID17956 - "__ testq(r15, -4096);", // IID17957 - "__ testq(r15, -65536);", // IID17958 - "__ testq(r15, -1048576);", // IID17959 - "__ testq(r15, -16777216);", // IID17960 - "__ testq(r15, -268435456);", // IID17961 - "__ testq(r16, -1);", // IID17962 - "__ testq(r16, -16);", // IID17963 - "__ testq(r16, -256);", // IID17964 - "__ testq(r16, -4096);", // IID17965 - "__ testq(r16, -65536);", // IID17966 - "__ testq(r16, -1048576);", // IID17967 - "__ testq(r16, -16777216);", // IID17968 - "__ testq(r16, -268435456);", // IID17969 - "__ testq(r17, -1);", // IID17970 - "__ testq(r17, -16);", // IID17971 - "__ testq(r17, -256);", // IID17972 - "__ testq(r17, -4096);", // IID17973 - "__ testq(r17, -65536);", // IID17974 - "__ testq(r17, -1048576);", // IID17975 - "__ testq(r17, -16777216);", // IID17976 - "__ testq(r17, -268435456);", // IID17977 - "__ testq(r18, -1);", // IID17978 - "__ testq(r18, -16);", // IID17979 - "__ testq(r18, -256);", // IID17980 - "__ testq(r18, -4096);", // IID17981 - "__ testq(r18, -65536);", // IID17982 - "__ testq(r18, -1048576);", // IID17983 - "__ testq(r18, -16777216);", // IID17984 - "__ testq(r18, -268435456);", // IID17985 - "__ testq(r19, -1);", // IID17986 - "__ testq(r19, -16);", // IID17987 - "__ testq(r19, -256);", // IID17988 - "__ testq(r19, -4096);", // IID17989 - "__ testq(r19, -65536);", // IID17990 - "__ testq(r19, -1048576);", // IID17991 - "__ testq(r19, -16777216);", // IID17992 - "__ testq(r19, -268435456);", // IID17993 - "__ testq(r20, -1);", // IID17994 - "__ testq(r20, -16);", // IID17995 - "__ testq(r20, -256);", // IID17996 - "__ testq(r20, -4096);", // IID17997 - "__ testq(r20, -65536);", // IID17998 - "__ testq(r20, -1048576);", // IID17999 - "__ testq(r20, -16777216);", // IID18000 - "__ testq(r20, -268435456);", // IID18001 - "__ testq(r21, -1);", // IID18002 - "__ testq(r21, -16);", // IID18003 - "__ testq(r21, -256);", // IID18004 - "__ testq(r21, -4096);", // IID18005 - "__ testq(r21, -65536);", // IID18006 - "__ testq(r21, -1048576);", // IID18007 - "__ testq(r21, -16777216);", // IID18008 - "__ testq(r21, -268435456);", // IID18009 - "__ testq(r22, -1);", // IID18010 - "__ testq(r22, -16);", // IID18011 - "__ testq(r22, -256);", // IID18012 - "__ testq(r22, -4096);", // IID18013 - "__ testq(r22, -65536);", // IID18014 - "__ testq(r22, -1048576);", // IID18015 - "__ testq(r22, -16777216);", // IID18016 - "__ testq(r22, -268435456);", // IID18017 - "__ testq(r23, -1);", // IID18018 - "__ testq(r23, -16);", // IID18019 - "__ testq(r23, -256);", // IID18020 - "__ testq(r23, -4096);", // IID18021 - "__ testq(r23, -65536);", // IID18022 - "__ testq(r23, -1048576);", // IID18023 - "__ testq(r23, -16777216);", // IID18024 - "__ testq(r23, -268435456);", // IID18025 - "__ testq(r24, -1);", // IID18026 - "__ testq(r24, -16);", // IID18027 - "__ testq(r24, -256);", // IID18028 - "__ testq(r24, -4096);", // IID18029 - "__ testq(r24, -65536);", // IID18030 - "__ testq(r24, -1048576);", // IID18031 - "__ testq(r24, -16777216);", // IID18032 - "__ testq(r24, -268435456);", // IID18033 - "__ testq(r25, -1);", // IID18034 - "__ testq(r25, -16);", // IID18035 - "__ testq(r25, -256);", // IID18036 - "__ testq(r25, -4096);", // IID18037 - "__ testq(r25, -65536);", // IID18038 - "__ testq(r25, -1048576);", // IID18039 - "__ testq(r25, -16777216);", // IID18040 - "__ testq(r25, -268435456);", // IID18041 - "__ testq(r26, -1);", // IID18042 - "__ testq(r26, -16);", // IID18043 - "__ testq(r26, -256);", // IID18044 - "__ testq(r26, -4096);", // IID18045 - "__ testq(r26, -65536);", // IID18046 - "__ testq(r26, -1048576);", // IID18047 - "__ testq(r26, -16777216);", // IID18048 - "__ testq(r26, -268435456);", // IID18049 - "__ testq(r27, -1);", // IID18050 - "__ testq(r27, -16);", // IID18051 - "__ testq(r27, -256);", // IID18052 - "__ testq(r27, -4096);", // IID18053 - "__ testq(r27, -65536);", // IID18054 - "__ testq(r27, -1048576);", // IID18055 - "__ testq(r27, -16777216);", // IID18056 - "__ testq(r27, -268435456);", // IID18057 - "__ testq(r28, -1);", // IID18058 - "__ testq(r28, -16);", // IID18059 - "__ testq(r28, -256);", // IID18060 - "__ testq(r28, -4096);", // IID18061 - "__ testq(r28, -65536);", // IID18062 - "__ testq(r28, -1048576);", // IID18063 - "__ testq(r28, -16777216);", // IID18064 - "__ testq(r28, -268435456);", // IID18065 - "__ testq(r29, -1);", // IID18066 - "__ testq(r29, -16);", // IID18067 - "__ testq(r29, -256);", // IID18068 - "__ testq(r29, -4096);", // IID18069 - "__ testq(r29, -65536);", // IID18070 - "__ testq(r29, -1048576);", // IID18071 - "__ testq(r29, -16777216);", // IID18072 - "__ testq(r29, -268435456);", // IID18073 - "__ testq(r30, -1);", // IID18074 - "__ testq(r30, -16);", // IID18075 - "__ testq(r30, -256);", // IID18076 - "__ testq(r30, -4096);", // IID18077 - "__ testq(r30, -65536);", // IID18078 - "__ testq(r30, -1048576);", // IID18079 - "__ testq(r30, -16777216);", // IID18080 - "__ testq(r30, -268435456);", // IID18081 - "__ testq(r31, -1);", // IID18082 - "__ testq(r31, -16);", // IID18083 - "__ testq(r31, -256);", // IID18084 - "__ testq(r31, -4096);", // IID18085 - "__ testq(r31, -65536);", // IID18086 - "__ testq(r31, -1048576);", // IID18087 - "__ testq(r31, -16777216);", // IID18088 - "__ testq(r31, -268435456);", // IID18089 - "__ orq_imm32(rcx, 65536);", // IID18090 - "__ orq_imm32(rcx, 262144);", // IID18091 - "__ orq_imm32(rcx, 1048576);", // IID18092 - "__ orq_imm32(rcx, 4194304);", // IID18093 - "__ orq_imm32(rcx, 16777216);", // IID18094 - "__ orq_imm32(rcx, 67108864);", // IID18095 - "__ orq_imm32(rcx, 268435456);", // IID18096 - "__ orq_imm32(rcx, 1073741824);", // IID18097 - "__ orq_imm32(rdx, 65536);", // IID18098 - "__ orq_imm32(rdx, 262144);", // IID18099 - "__ orq_imm32(rdx, 1048576);", // IID18100 - "__ orq_imm32(rdx, 4194304);", // IID18101 - "__ orq_imm32(rdx, 16777216);", // IID18102 - "__ orq_imm32(rdx, 67108864);", // IID18103 - "__ orq_imm32(rdx, 268435456);", // IID18104 - "__ orq_imm32(rdx, 1073741824);", // IID18105 - "__ orq_imm32(rbx, 65536);", // IID18106 - "__ orq_imm32(rbx, 262144);", // IID18107 - "__ orq_imm32(rbx, 1048576);", // IID18108 - "__ orq_imm32(rbx, 4194304);", // IID18109 - "__ orq_imm32(rbx, 16777216);", // IID18110 - "__ orq_imm32(rbx, 67108864);", // IID18111 - "__ orq_imm32(rbx, 268435456);", // IID18112 - "__ orq_imm32(rbx, 1073741824);", // IID18113 - "__ orq_imm32(r8, 65536);", // IID18114 - "__ orq_imm32(r8, 262144);", // IID18115 - "__ orq_imm32(r8, 1048576);", // IID18116 - "__ orq_imm32(r8, 4194304);", // IID18117 - "__ orq_imm32(r8, 16777216);", // IID18118 - "__ orq_imm32(r8, 67108864);", // IID18119 - "__ orq_imm32(r8, 268435456);", // IID18120 - "__ orq_imm32(r8, 1073741824);", // IID18121 - "__ orq_imm32(r9, 65536);", // IID18122 - "__ orq_imm32(r9, 262144);", // IID18123 - "__ orq_imm32(r9, 1048576);", // IID18124 - "__ orq_imm32(r9, 4194304);", // IID18125 - "__ orq_imm32(r9, 16777216);", // IID18126 - "__ orq_imm32(r9, 67108864);", // IID18127 - "__ orq_imm32(r9, 268435456);", // IID18128 - "__ orq_imm32(r9, 1073741824);", // IID18129 - "__ orq_imm32(r10, 65536);", // IID18130 - "__ orq_imm32(r10, 262144);", // IID18131 - "__ orq_imm32(r10, 1048576);", // IID18132 - "__ orq_imm32(r10, 4194304);", // IID18133 - "__ orq_imm32(r10, 16777216);", // IID18134 - "__ orq_imm32(r10, 67108864);", // IID18135 - "__ orq_imm32(r10, 268435456);", // IID18136 - "__ orq_imm32(r10, 1073741824);", // IID18137 - "__ orq_imm32(r11, 65536);", // IID18138 - "__ orq_imm32(r11, 262144);", // IID18139 - "__ orq_imm32(r11, 1048576);", // IID18140 - "__ orq_imm32(r11, 4194304);", // IID18141 - "__ orq_imm32(r11, 16777216);", // IID18142 - "__ orq_imm32(r11, 67108864);", // IID18143 - "__ orq_imm32(r11, 268435456);", // IID18144 - "__ orq_imm32(r11, 1073741824);", // IID18145 - "__ orq_imm32(r12, 65536);", // IID18146 - "__ orq_imm32(r12, 262144);", // IID18147 - "__ orq_imm32(r12, 1048576);", // IID18148 - "__ orq_imm32(r12, 4194304);", // IID18149 - "__ orq_imm32(r12, 16777216);", // IID18150 - "__ orq_imm32(r12, 67108864);", // IID18151 - "__ orq_imm32(r12, 268435456);", // IID18152 - "__ orq_imm32(r12, 1073741824);", // IID18153 - "__ orq_imm32(r13, 65536);", // IID18154 - "__ orq_imm32(r13, 262144);", // IID18155 - "__ orq_imm32(r13, 1048576);", // IID18156 - "__ orq_imm32(r13, 4194304);", // IID18157 - "__ orq_imm32(r13, 16777216);", // IID18158 - "__ orq_imm32(r13, 67108864);", // IID18159 - "__ orq_imm32(r13, 268435456);", // IID18160 - "__ orq_imm32(r13, 1073741824);", // IID18161 - "__ orq_imm32(r14, 65536);", // IID18162 - "__ orq_imm32(r14, 262144);", // IID18163 - "__ orq_imm32(r14, 1048576);", // IID18164 - "__ orq_imm32(r14, 4194304);", // IID18165 - "__ orq_imm32(r14, 16777216);", // IID18166 - "__ orq_imm32(r14, 67108864);", // IID18167 - "__ orq_imm32(r14, 268435456);", // IID18168 - "__ orq_imm32(r14, 1073741824);", // IID18169 - "__ orq_imm32(r15, 65536);", // IID18170 - "__ orq_imm32(r15, 262144);", // IID18171 - "__ orq_imm32(r15, 1048576);", // IID18172 - "__ orq_imm32(r15, 4194304);", // IID18173 - "__ orq_imm32(r15, 16777216);", // IID18174 - "__ orq_imm32(r15, 67108864);", // IID18175 - "__ orq_imm32(r15, 268435456);", // IID18176 - "__ orq_imm32(r15, 1073741824);", // IID18177 - "__ orq_imm32(r16, 65536);", // IID18178 - "__ orq_imm32(r16, 262144);", // IID18179 - "__ orq_imm32(r16, 1048576);", // IID18180 - "__ orq_imm32(r16, 4194304);", // IID18181 - "__ orq_imm32(r16, 16777216);", // IID18182 - "__ orq_imm32(r16, 67108864);", // IID18183 - "__ orq_imm32(r16, 268435456);", // IID18184 - "__ orq_imm32(r16, 1073741824);", // IID18185 - "__ orq_imm32(r17, 65536);", // IID18186 - "__ orq_imm32(r17, 262144);", // IID18187 - "__ orq_imm32(r17, 1048576);", // IID18188 - "__ orq_imm32(r17, 4194304);", // IID18189 - "__ orq_imm32(r17, 16777216);", // IID18190 - "__ orq_imm32(r17, 67108864);", // IID18191 - "__ orq_imm32(r17, 268435456);", // IID18192 - "__ orq_imm32(r17, 1073741824);", // IID18193 - "__ orq_imm32(r18, 65536);", // IID18194 - "__ orq_imm32(r18, 262144);", // IID18195 - "__ orq_imm32(r18, 1048576);", // IID18196 - "__ orq_imm32(r18, 4194304);", // IID18197 - "__ orq_imm32(r18, 16777216);", // IID18198 - "__ orq_imm32(r18, 67108864);", // IID18199 - "__ orq_imm32(r18, 268435456);", // IID18200 - "__ orq_imm32(r18, 1073741824);", // IID18201 - "__ orq_imm32(r19, 65536);", // IID18202 - "__ orq_imm32(r19, 262144);", // IID18203 - "__ orq_imm32(r19, 1048576);", // IID18204 - "__ orq_imm32(r19, 4194304);", // IID18205 - "__ orq_imm32(r19, 16777216);", // IID18206 - "__ orq_imm32(r19, 67108864);", // IID18207 - "__ orq_imm32(r19, 268435456);", // IID18208 - "__ orq_imm32(r19, 1073741824);", // IID18209 - "__ orq_imm32(r20, 65536);", // IID18210 - "__ orq_imm32(r20, 262144);", // IID18211 - "__ orq_imm32(r20, 1048576);", // IID18212 - "__ orq_imm32(r20, 4194304);", // IID18213 - "__ orq_imm32(r20, 16777216);", // IID18214 - "__ orq_imm32(r20, 67108864);", // IID18215 - "__ orq_imm32(r20, 268435456);", // IID18216 - "__ orq_imm32(r20, 1073741824);", // IID18217 - "__ orq_imm32(r21, 65536);", // IID18218 - "__ orq_imm32(r21, 262144);", // IID18219 - "__ orq_imm32(r21, 1048576);", // IID18220 - "__ orq_imm32(r21, 4194304);", // IID18221 - "__ orq_imm32(r21, 16777216);", // IID18222 - "__ orq_imm32(r21, 67108864);", // IID18223 - "__ orq_imm32(r21, 268435456);", // IID18224 - "__ orq_imm32(r21, 1073741824);", // IID18225 - "__ orq_imm32(r22, 65536);", // IID18226 - "__ orq_imm32(r22, 262144);", // IID18227 - "__ orq_imm32(r22, 1048576);", // IID18228 - "__ orq_imm32(r22, 4194304);", // IID18229 - "__ orq_imm32(r22, 16777216);", // IID18230 - "__ orq_imm32(r22, 67108864);", // IID18231 - "__ orq_imm32(r22, 268435456);", // IID18232 - "__ orq_imm32(r22, 1073741824);", // IID18233 - "__ orq_imm32(r23, 65536);", // IID18234 - "__ orq_imm32(r23, 262144);", // IID18235 - "__ orq_imm32(r23, 1048576);", // IID18236 - "__ orq_imm32(r23, 4194304);", // IID18237 - "__ orq_imm32(r23, 16777216);", // IID18238 - "__ orq_imm32(r23, 67108864);", // IID18239 - "__ orq_imm32(r23, 268435456);", // IID18240 - "__ orq_imm32(r23, 1073741824);", // IID18241 - "__ orq_imm32(r24, 65536);", // IID18242 - "__ orq_imm32(r24, 262144);", // IID18243 - "__ orq_imm32(r24, 1048576);", // IID18244 - "__ orq_imm32(r24, 4194304);", // IID18245 - "__ orq_imm32(r24, 16777216);", // IID18246 - "__ orq_imm32(r24, 67108864);", // IID18247 - "__ orq_imm32(r24, 268435456);", // IID18248 - "__ orq_imm32(r24, 1073741824);", // IID18249 - "__ orq_imm32(r25, 65536);", // IID18250 - "__ orq_imm32(r25, 262144);", // IID18251 - "__ orq_imm32(r25, 1048576);", // IID18252 - "__ orq_imm32(r25, 4194304);", // IID18253 - "__ orq_imm32(r25, 16777216);", // IID18254 - "__ orq_imm32(r25, 67108864);", // IID18255 - "__ orq_imm32(r25, 268435456);", // IID18256 - "__ orq_imm32(r25, 1073741824);", // IID18257 - "__ orq_imm32(r26, 65536);", // IID18258 - "__ orq_imm32(r26, 262144);", // IID18259 - "__ orq_imm32(r26, 1048576);", // IID18260 - "__ orq_imm32(r26, 4194304);", // IID18261 - "__ orq_imm32(r26, 16777216);", // IID18262 - "__ orq_imm32(r26, 67108864);", // IID18263 - "__ orq_imm32(r26, 268435456);", // IID18264 - "__ orq_imm32(r26, 1073741824);", // IID18265 - "__ orq_imm32(r27, 65536);", // IID18266 - "__ orq_imm32(r27, 262144);", // IID18267 - "__ orq_imm32(r27, 1048576);", // IID18268 - "__ orq_imm32(r27, 4194304);", // IID18269 - "__ orq_imm32(r27, 16777216);", // IID18270 - "__ orq_imm32(r27, 67108864);", // IID18271 - "__ orq_imm32(r27, 268435456);", // IID18272 - "__ orq_imm32(r27, 1073741824);", // IID18273 - "__ orq_imm32(r28, 65536);", // IID18274 - "__ orq_imm32(r28, 262144);", // IID18275 - "__ orq_imm32(r28, 1048576);", // IID18276 - "__ orq_imm32(r28, 4194304);", // IID18277 - "__ orq_imm32(r28, 16777216);", // IID18278 - "__ orq_imm32(r28, 67108864);", // IID18279 - "__ orq_imm32(r28, 268435456);", // IID18280 - "__ orq_imm32(r28, 1073741824);", // IID18281 - "__ orq_imm32(r29, 65536);", // IID18282 - "__ orq_imm32(r29, 262144);", // IID18283 - "__ orq_imm32(r29, 1048576);", // IID18284 - "__ orq_imm32(r29, 4194304);", // IID18285 - "__ orq_imm32(r29, 16777216);", // IID18286 - "__ orq_imm32(r29, 67108864);", // IID18287 - "__ orq_imm32(r29, 268435456);", // IID18288 - "__ orq_imm32(r29, 1073741824);", // IID18289 - "__ orq_imm32(r30, 65536);", // IID18290 - "__ orq_imm32(r30, 262144);", // IID18291 - "__ orq_imm32(r30, 1048576);", // IID18292 - "__ orq_imm32(r30, 4194304);", // IID18293 - "__ orq_imm32(r30, 16777216);", // IID18294 - "__ orq_imm32(r30, 67108864);", // IID18295 - "__ orq_imm32(r30, 268435456);", // IID18296 - "__ orq_imm32(r30, 1073741824);", // IID18297 - "__ orq_imm32(r31, 65536);", // IID18298 - "__ orq_imm32(r31, 262144);", // IID18299 - "__ orq_imm32(r31, 1048576);", // IID18300 - "__ orq_imm32(r31, 4194304);", // IID18301 - "__ orq_imm32(r31, 16777216);", // IID18302 - "__ orq_imm32(r31, 67108864);", // IID18303 - "__ orq_imm32(r31, 268435456);", // IID18304 - "__ orq_imm32(r31, 1073741824);", // IID18305 - "__ subq_imm32(rcx, 65536);", // IID18306 - "__ subq_imm32(rcx, 262144);", // IID18307 - "__ subq_imm32(rcx, 1048576);", // IID18308 - "__ subq_imm32(rcx, 4194304);", // IID18309 - "__ subq_imm32(rcx, 16777216);", // IID18310 - "__ subq_imm32(rcx, 67108864);", // IID18311 - "__ subq_imm32(rcx, 268435456);", // IID18312 - "__ subq_imm32(rcx, 1073741824);", // IID18313 - "__ subq_imm32(rdx, 65536);", // IID18314 - "__ subq_imm32(rdx, 262144);", // IID18315 - "__ subq_imm32(rdx, 1048576);", // IID18316 - "__ subq_imm32(rdx, 4194304);", // IID18317 - "__ subq_imm32(rdx, 16777216);", // IID18318 - "__ subq_imm32(rdx, 67108864);", // IID18319 - "__ subq_imm32(rdx, 268435456);", // IID18320 - "__ subq_imm32(rdx, 1073741824);", // IID18321 - "__ subq_imm32(rbx, 65536);", // IID18322 - "__ subq_imm32(rbx, 262144);", // IID18323 - "__ subq_imm32(rbx, 1048576);", // IID18324 - "__ subq_imm32(rbx, 4194304);", // IID18325 - "__ subq_imm32(rbx, 16777216);", // IID18326 - "__ subq_imm32(rbx, 67108864);", // IID18327 - "__ subq_imm32(rbx, 268435456);", // IID18328 - "__ subq_imm32(rbx, 1073741824);", // IID18329 - "__ subq_imm32(r8, 65536);", // IID18330 - "__ subq_imm32(r8, 262144);", // IID18331 - "__ subq_imm32(r8, 1048576);", // IID18332 - "__ subq_imm32(r8, 4194304);", // IID18333 - "__ subq_imm32(r8, 16777216);", // IID18334 - "__ subq_imm32(r8, 67108864);", // IID18335 - "__ subq_imm32(r8, 268435456);", // IID18336 - "__ subq_imm32(r8, 1073741824);", // IID18337 - "__ subq_imm32(r9, 65536);", // IID18338 - "__ subq_imm32(r9, 262144);", // IID18339 - "__ subq_imm32(r9, 1048576);", // IID18340 - "__ subq_imm32(r9, 4194304);", // IID18341 - "__ subq_imm32(r9, 16777216);", // IID18342 - "__ subq_imm32(r9, 67108864);", // IID18343 - "__ subq_imm32(r9, 268435456);", // IID18344 - "__ subq_imm32(r9, 1073741824);", // IID18345 - "__ subq_imm32(r10, 65536);", // IID18346 - "__ subq_imm32(r10, 262144);", // IID18347 - "__ subq_imm32(r10, 1048576);", // IID18348 - "__ subq_imm32(r10, 4194304);", // IID18349 - "__ subq_imm32(r10, 16777216);", // IID18350 - "__ subq_imm32(r10, 67108864);", // IID18351 - "__ subq_imm32(r10, 268435456);", // IID18352 - "__ subq_imm32(r10, 1073741824);", // IID18353 - "__ subq_imm32(r11, 65536);", // IID18354 - "__ subq_imm32(r11, 262144);", // IID18355 - "__ subq_imm32(r11, 1048576);", // IID18356 - "__ subq_imm32(r11, 4194304);", // IID18357 - "__ subq_imm32(r11, 16777216);", // IID18358 - "__ subq_imm32(r11, 67108864);", // IID18359 - "__ subq_imm32(r11, 268435456);", // IID18360 - "__ subq_imm32(r11, 1073741824);", // IID18361 - "__ subq_imm32(r12, 65536);", // IID18362 - "__ subq_imm32(r12, 262144);", // IID18363 - "__ subq_imm32(r12, 1048576);", // IID18364 - "__ subq_imm32(r12, 4194304);", // IID18365 - "__ subq_imm32(r12, 16777216);", // IID18366 - "__ subq_imm32(r12, 67108864);", // IID18367 - "__ subq_imm32(r12, 268435456);", // IID18368 - "__ subq_imm32(r12, 1073741824);", // IID18369 - "__ subq_imm32(r13, 65536);", // IID18370 - "__ subq_imm32(r13, 262144);", // IID18371 - "__ subq_imm32(r13, 1048576);", // IID18372 - "__ subq_imm32(r13, 4194304);", // IID18373 - "__ subq_imm32(r13, 16777216);", // IID18374 - "__ subq_imm32(r13, 67108864);", // IID18375 - "__ subq_imm32(r13, 268435456);", // IID18376 - "__ subq_imm32(r13, 1073741824);", // IID18377 - "__ subq_imm32(r14, 65536);", // IID18378 - "__ subq_imm32(r14, 262144);", // IID18379 - "__ subq_imm32(r14, 1048576);", // IID18380 - "__ subq_imm32(r14, 4194304);", // IID18381 - "__ subq_imm32(r14, 16777216);", // IID18382 - "__ subq_imm32(r14, 67108864);", // IID18383 - "__ subq_imm32(r14, 268435456);", // IID18384 - "__ subq_imm32(r14, 1073741824);", // IID18385 - "__ subq_imm32(r15, 65536);", // IID18386 - "__ subq_imm32(r15, 262144);", // IID18387 - "__ subq_imm32(r15, 1048576);", // IID18388 - "__ subq_imm32(r15, 4194304);", // IID18389 - "__ subq_imm32(r15, 16777216);", // IID18390 - "__ subq_imm32(r15, 67108864);", // IID18391 - "__ subq_imm32(r15, 268435456);", // IID18392 - "__ subq_imm32(r15, 1073741824);", // IID18393 - "__ subq_imm32(r16, 65536);", // IID18394 - "__ subq_imm32(r16, 262144);", // IID18395 - "__ subq_imm32(r16, 1048576);", // IID18396 - "__ subq_imm32(r16, 4194304);", // IID18397 - "__ subq_imm32(r16, 16777216);", // IID18398 - "__ subq_imm32(r16, 67108864);", // IID18399 - "__ subq_imm32(r16, 268435456);", // IID18400 - "__ subq_imm32(r16, 1073741824);", // IID18401 - "__ subq_imm32(r17, 65536);", // IID18402 - "__ subq_imm32(r17, 262144);", // IID18403 - "__ subq_imm32(r17, 1048576);", // IID18404 - "__ subq_imm32(r17, 4194304);", // IID18405 - "__ subq_imm32(r17, 16777216);", // IID18406 - "__ subq_imm32(r17, 67108864);", // IID18407 - "__ subq_imm32(r17, 268435456);", // IID18408 - "__ subq_imm32(r17, 1073741824);", // IID18409 - "__ subq_imm32(r18, 65536);", // IID18410 - "__ subq_imm32(r18, 262144);", // IID18411 - "__ subq_imm32(r18, 1048576);", // IID18412 - "__ subq_imm32(r18, 4194304);", // IID18413 - "__ subq_imm32(r18, 16777216);", // IID18414 - "__ subq_imm32(r18, 67108864);", // IID18415 - "__ subq_imm32(r18, 268435456);", // IID18416 - "__ subq_imm32(r18, 1073741824);", // IID18417 - "__ subq_imm32(r19, 65536);", // IID18418 - "__ subq_imm32(r19, 262144);", // IID18419 - "__ subq_imm32(r19, 1048576);", // IID18420 - "__ subq_imm32(r19, 4194304);", // IID18421 - "__ subq_imm32(r19, 16777216);", // IID18422 - "__ subq_imm32(r19, 67108864);", // IID18423 - "__ subq_imm32(r19, 268435456);", // IID18424 - "__ subq_imm32(r19, 1073741824);", // IID18425 - "__ subq_imm32(r20, 65536);", // IID18426 - "__ subq_imm32(r20, 262144);", // IID18427 - "__ subq_imm32(r20, 1048576);", // IID18428 - "__ subq_imm32(r20, 4194304);", // IID18429 - "__ subq_imm32(r20, 16777216);", // IID18430 - "__ subq_imm32(r20, 67108864);", // IID18431 - "__ subq_imm32(r20, 268435456);", // IID18432 - "__ subq_imm32(r20, 1073741824);", // IID18433 - "__ subq_imm32(r21, 65536);", // IID18434 - "__ subq_imm32(r21, 262144);", // IID18435 - "__ subq_imm32(r21, 1048576);", // IID18436 - "__ subq_imm32(r21, 4194304);", // IID18437 - "__ subq_imm32(r21, 16777216);", // IID18438 - "__ subq_imm32(r21, 67108864);", // IID18439 - "__ subq_imm32(r21, 268435456);", // IID18440 - "__ subq_imm32(r21, 1073741824);", // IID18441 - "__ subq_imm32(r22, 65536);", // IID18442 - "__ subq_imm32(r22, 262144);", // IID18443 - "__ subq_imm32(r22, 1048576);", // IID18444 - "__ subq_imm32(r22, 4194304);", // IID18445 - "__ subq_imm32(r22, 16777216);", // IID18446 - "__ subq_imm32(r22, 67108864);", // IID18447 - "__ subq_imm32(r22, 268435456);", // IID18448 - "__ subq_imm32(r22, 1073741824);", // IID18449 - "__ subq_imm32(r23, 65536);", // IID18450 - "__ subq_imm32(r23, 262144);", // IID18451 - "__ subq_imm32(r23, 1048576);", // IID18452 - "__ subq_imm32(r23, 4194304);", // IID18453 - "__ subq_imm32(r23, 16777216);", // IID18454 - "__ subq_imm32(r23, 67108864);", // IID18455 - "__ subq_imm32(r23, 268435456);", // IID18456 - "__ subq_imm32(r23, 1073741824);", // IID18457 - "__ subq_imm32(r24, 65536);", // IID18458 - "__ subq_imm32(r24, 262144);", // IID18459 - "__ subq_imm32(r24, 1048576);", // IID18460 - "__ subq_imm32(r24, 4194304);", // IID18461 - "__ subq_imm32(r24, 16777216);", // IID18462 - "__ subq_imm32(r24, 67108864);", // IID18463 - "__ subq_imm32(r24, 268435456);", // IID18464 - "__ subq_imm32(r24, 1073741824);", // IID18465 - "__ subq_imm32(r25, 65536);", // IID18466 - "__ subq_imm32(r25, 262144);", // IID18467 - "__ subq_imm32(r25, 1048576);", // IID18468 - "__ subq_imm32(r25, 4194304);", // IID18469 - "__ subq_imm32(r25, 16777216);", // IID18470 - "__ subq_imm32(r25, 67108864);", // IID18471 - "__ subq_imm32(r25, 268435456);", // IID18472 - "__ subq_imm32(r25, 1073741824);", // IID18473 - "__ subq_imm32(r26, 65536);", // IID18474 - "__ subq_imm32(r26, 262144);", // IID18475 - "__ subq_imm32(r26, 1048576);", // IID18476 - "__ subq_imm32(r26, 4194304);", // IID18477 - "__ subq_imm32(r26, 16777216);", // IID18478 - "__ subq_imm32(r26, 67108864);", // IID18479 - "__ subq_imm32(r26, 268435456);", // IID18480 - "__ subq_imm32(r26, 1073741824);", // IID18481 - "__ subq_imm32(r27, 65536);", // IID18482 - "__ subq_imm32(r27, 262144);", // IID18483 - "__ subq_imm32(r27, 1048576);", // IID18484 - "__ subq_imm32(r27, 4194304);", // IID18485 - "__ subq_imm32(r27, 16777216);", // IID18486 - "__ subq_imm32(r27, 67108864);", // IID18487 - "__ subq_imm32(r27, 268435456);", // IID18488 - "__ subq_imm32(r27, 1073741824);", // IID18489 - "__ subq_imm32(r28, 65536);", // IID18490 - "__ subq_imm32(r28, 262144);", // IID18491 - "__ subq_imm32(r28, 1048576);", // IID18492 - "__ subq_imm32(r28, 4194304);", // IID18493 - "__ subq_imm32(r28, 16777216);", // IID18494 - "__ subq_imm32(r28, 67108864);", // IID18495 - "__ subq_imm32(r28, 268435456);", // IID18496 - "__ subq_imm32(r28, 1073741824);", // IID18497 - "__ subq_imm32(r29, 65536);", // IID18498 - "__ subq_imm32(r29, 262144);", // IID18499 - "__ subq_imm32(r29, 1048576);", // IID18500 - "__ subq_imm32(r29, 4194304);", // IID18501 - "__ subq_imm32(r29, 16777216);", // IID18502 - "__ subq_imm32(r29, 67108864);", // IID18503 - "__ subq_imm32(r29, 268435456);", // IID18504 - "__ subq_imm32(r29, 1073741824);", // IID18505 - "__ subq_imm32(r30, 65536);", // IID18506 - "__ subq_imm32(r30, 262144);", // IID18507 - "__ subq_imm32(r30, 1048576);", // IID18508 - "__ subq_imm32(r30, 4194304);", // IID18509 - "__ subq_imm32(r30, 16777216);", // IID18510 - "__ subq_imm32(r30, 67108864);", // IID18511 - "__ subq_imm32(r30, 268435456);", // IID18512 - "__ subq_imm32(r30, 1073741824);", // IID18513 - "__ subq_imm32(r31, 65536);", // IID18514 - "__ subq_imm32(r31, 262144);", // IID18515 - "__ subq_imm32(r31, 1048576);", // IID18516 - "__ subq_imm32(r31, 4194304);", // IID18517 - "__ subq_imm32(r31, 16777216);", // IID18518 - "__ subq_imm32(r31, 67108864);", // IID18519 - "__ subq_imm32(r31, 268435456);", // IID18520 - "__ subq_imm32(r31, 1073741824);", // IID18521 - "__ cmovq(Assembler::Condition::overflow, rcx, Address(rdx, rbx, (Address::ScaleFactor)3, +0x185e9ace));", // IID18522 - "__ cmovq(Assembler::Condition::overflow, rdx, Address(rbx, r8, (Address::ScaleFactor)0, +0x7addd838));", // IID18523 - "__ cmovq(Assembler::Condition::overflow, rbx, Address(r8, r9, (Address::ScaleFactor)2, +0x6f26c33e));", // IID18524 - "__ cmovq(Assembler::Condition::overflow, r8, Address(r9, r10, (Address::ScaleFactor)0, -0xc7f1195));", // IID18525 - "__ cmovq(Assembler::Condition::overflow, r9, Address(r10, r11, (Address::ScaleFactor)2, +0x4e54ea84));", // IID18526 - "__ cmovq(Assembler::Condition::overflow, r10, Address(r11, r12, (Address::ScaleFactor)3, -0x3d18b7a2));", // IID18527 - "__ cmovq(Assembler::Condition::overflow, r11, Address(r12, -0x70414f7f));", // IID18528 - "__ cmovq(Assembler::Condition::overflow, r12, Address(r13, r14, (Address::ScaleFactor)1, -0x4b9adb49));", // IID18529 - "__ cmovq(Assembler::Condition::overflow, r13, Address(r14, r15, (Address::ScaleFactor)1, -0x3b51e791));", // IID18530 - "__ cmovq(Assembler::Condition::overflow, r14, Address(r15, r16, (Address::ScaleFactor)0, +0x333acaad));", // IID18531 - "__ cmovq(Assembler::Condition::overflow, r15, Address(r16, r17, (Address::ScaleFactor)1, +0x28832bc0));", // IID18532 - "__ cmovq(Assembler::Condition::overflow, r16, Address(r17, r18, (Address::ScaleFactor)0, -0xcc08582));", // IID18533 - "__ cmovq(Assembler::Condition::overflow, r17, Address(r18, r19, (Address::ScaleFactor)3, +0x6e93bf56));", // IID18534 - "__ cmovq(Assembler::Condition::overflow, r18, Address(r19, r20, (Address::ScaleFactor)3, -0x6d5579b0));", // IID18535 - "__ cmovq(Assembler::Condition::overflow, r19, Address(r20, r21, (Address::ScaleFactor)1, +0x340caa6c));", // IID18536 - "__ cmovq(Assembler::Condition::overflow, r20, Address(r21, r22, (Address::ScaleFactor)1, -0x79cbc1b8));", // IID18537 - "__ cmovq(Assembler::Condition::overflow, r21, Address(r22, r23, (Address::ScaleFactor)3, +0x505ff460));", // IID18538 - "__ cmovq(Assembler::Condition::overflow, r22, Address(r23, r24, (Address::ScaleFactor)1, +0x33189553));", // IID18539 - "__ cmovq(Assembler::Condition::overflow, r23, Address(r24, r25, (Address::ScaleFactor)0, -0x6a9ffd68));", // IID18540 - "__ cmovq(Assembler::Condition::overflow, r24, Address(r25, r26, (Address::ScaleFactor)3, +0x4c37cd56));", // IID18541 - "__ cmovq(Assembler::Condition::overflow, r25, Address(r26, r27, (Address::ScaleFactor)0, -0x293dc7b2));", // IID18542 - "__ cmovq(Assembler::Condition::overflow, r26, Address(r27, r28, (Address::ScaleFactor)2, -0x3a4b0db0));", // IID18543 - "__ cmovq(Assembler::Condition::overflow, r27, Address(r28, r29, (Address::ScaleFactor)1, -0xddf3fd6));", // IID18544 - "__ cmovq(Assembler::Condition::overflow, r28, Address(r29, r30, (Address::ScaleFactor)2, +0x19b048f7));", // IID18545 - "__ cmovq(Assembler::Condition::overflow, r29, Address(r30, r31, (Address::ScaleFactor)2, +0x614161a3));", // IID18546 - "__ cmovq(Assembler::Condition::overflow, r30, Address(r31, -0x76baa6d));", // IID18547 - "__ cmovq(Assembler::Condition::overflow, r31, Address(rcx, rdx, (Address::ScaleFactor)0, +0x22fa9faa));", // IID18548 - "__ cmovq(Assembler::Condition::noOverflow, rcx, Address(rdx, rbx, (Address::ScaleFactor)2, +0x4db8cd3));", // IID18549 - "__ cmovq(Assembler::Condition::noOverflow, rdx, Address(rbx, r8, (Address::ScaleFactor)3, -0x33bd95bf));", // IID18550 - "__ cmovq(Assembler::Condition::noOverflow, rbx, Address(r8, -0x5abf0fe5));", // IID18551 - "__ cmovq(Assembler::Condition::noOverflow, r8, Address(r9, r10, (Address::ScaleFactor)3, -0x3b26beea));", // IID18552 - "__ cmovq(Assembler::Condition::noOverflow, r9, Address(r10, r11, (Address::ScaleFactor)2, -0x40fec14f));", // IID18553 - "__ cmovq(Assembler::Condition::noOverflow, r10, Address(r11, r12, (Address::ScaleFactor)2, -0x5c01d06d));", // IID18554 - "__ cmovq(Assembler::Condition::noOverflow, r11, Address(r12, r13, (Address::ScaleFactor)0, +0x459c415d));", // IID18555 - "__ cmovq(Assembler::Condition::noOverflow, r12, Address(r13, -0x6021879a));", // IID18556 - "__ cmovq(Assembler::Condition::noOverflow, r13, Address(r14, r15, (Address::ScaleFactor)3, -0x2828e5ab));", // IID18557 - "__ cmovq(Assembler::Condition::noOverflow, r14, Address(r15, r16, (Address::ScaleFactor)1, -0x431c2e7b));", // IID18558 - "__ cmovq(Assembler::Condition::noOverflow, r15, Address(r16, r17, (Address::ScaleFactor)3, -0x47adaecf));", // IID18559 - "__ cmovq(Assembler::Condition::noOverflow, r16, Address(r17, r18, (Address::ScaleFactor)0, +0x6b08ba5e));", // IID18560 - "__ cmovq(Assembler::Condition::noOverflow, r17, Address(r18, r19, (Address::ScaleFactor)2, +0x6cd94113));", // IID18561 - "__ cmovq(Assembler::Condition::noOverflow, r18, Address(r19, r20, (Address::ScaleFactor)0, +0x3a98e6cc));", // IID18562 - "__ cmovq(Assembler::Condition::noOverflow, r19, Address(r20, r21, (Address::ScaleFactor)2, -0x31f98e0f));", // IID18563 - "__ cmovq(Assembler::Condition::noOverflow, r20, Address(r21, r22, (Address::ScaleFactor)1, +0x13f459e4));", // IID18564 - "__ cmovq(Assembler::Condition::noOverflow, r21, Address(r22, +0x2a6f573d));", // IID18565 - "__ cmovq(Assembler::Condition::noOverflow, r22, Address(r23, r24, (Address::ScaleFactor)0, +0x39e06b75));", // IID18566 - "__ cmovq(Assembler::Condition::noOverflow, r23, Address(r24, r25, (Address::ScaleFactor)2, +0x57574c1d));", // IID18567 - "__ cmovq(Assembler::Condition::noOverflow, r24, Address(r25, r26, (Address::ScaleFactor)3, +0x1dcd02a5));", // IID18568 - "__ cmovq(Assembler::Condition::noOverflow, r25, Address(r26, r27, (Address::ScaleFactor)0, -0x5997089));", // IID18569 - "__ cmovq(Assembler::Condition::noOverflow, r26, Address(r27, r28, (Address::ScaleFactor)2, +0x51fc379a));", // IID18570 - "__ cmovq(Assembler::Condition::noOverflow, r27, Address(r28, r29, (Address::ScaleFactor)3, +0x7992583c));", // IID18571 - "__ cmovq(Assembler::Condition::noOverflow, r28, Address(r29, +0x7e6c39ab));", // IID18572 - "__ cmovq(Assembler::Condition::noOverflow, r29, Address(r30, r31, (Address::ScaleFactor)3, -0x625a775a));", // IID18573 - "__ cmovq(Assembler::Condition::noOverflow, r30, Address(r31, rcx, (Address::ScaleFactor)3, -0x39204b66));", // IID18574 - "__ cmovq(Assembler::Condition::noOverflow, r31, Address(rcx, rdx, (Address::ScaleFactor)3, -0x36d6ebab));", // IID18575 - "__ cmovq(Assembler::Condition::below, rcx, Address(rdx, -0x41458b3a));", // IID18576 - "__ cmovq(Assembler::Condition::below, rdx, Address(rbx, r8, (Address::ScaleFactor)0, -0x64e6164d));", // IID18577 - "__ cmovq(Assembler::Condition::below, rbx, Address(r8, +0xae3549b));", // IID18578 - "__ cmovq(Assembler::Condition::below, r8, Address(r9, -0x21bf49ac));", // IID18579 - "__ cmovq(Assembler::Condition::below, r9, Address(r10, r11, (Address::ScaleFactor)2, -0x33aa8e2f));", // IID18580 - "__ cmovq(Assembler::Condition::below, r10, Address(r11, +0x7e113699));", // IID18581 - "__ cmovq(Assembler::Condition::below, r11, Address(r12, r13, (Address::ScaleFactor)3, -0x10f0cc5f));", // IID18582 - "__ cmovq(Assembler::Condition::below, r12, Address(r13, r14, (Address::ScaleFactor)2, +0x7cc97c63));", // IID18583 - "__ cmovq(Assembler::Condition::below, r13, Address(r14, r15, (Address::ScaleFactor)3, -0x43c7a5f5));", // IID18584 - "__ cmovq(Assembler::Condition::below, r14, Address(r15, r16, (Address::ScaleFactor)3, +0x15ccf48e));", // IID18585 - "__ cmovq(Assembler::Condition::below, r15, Address(r16, r17, (Address::ScaleFactor)3, +0x7fd36094));", // IID18586 - "__ cmovq(Assembler::Condition::below, r16, Address(r17, r18, (Address::ScaleFactor)1, +0x69cc03eb));", // IID18587 - "__ cmovq(Assembler::Condition::below, r17, Address(r18, r19, (Address::ScaleFactor)1, -0x2939ec2a));", // IID18588 - "__ cmovq(Assembler::Condition::below, r18, Address(r19, r20, (Address::ScaleFactor)0, +0x59452527));", // IID18589 - "__ cmovq(Assembler::Condition::below, r19, Address(r20, r21, (Address::ScaleFactor)3, +0x26881dcf));", // IID18590 - "__ cmovq(Assembler::Condition::below, r20, Address(r21, +0x34b969fa));", // IID18591 - "__ cmovq(Assembler::Condition::below, r21, Address(r22, +0x7f63edb0));", // IID18592 - "__ cmovq(Assembler::Condition::below, r22, Address(r23, r24, (Address::ScaleFactor)3, +0x6475ef84));", // IID18593 - "__ cmovq(Assembler::Condition::below, r23, Address(r24, r25, (Address::ScaleFactor)3, -0x67f72a73));", // IID18594 - "__ cmovq(Assembler::Condition::below, r24, Address(r25, r26, (Address::ScaleFactor)3, -0x48a0f642));", // IID18595 - "__ cmovq(Assembler::Condition::below, r25, Address(r26, r27, (Address::ScaleFactor)0, +0x8698e9a));", // IID18596 - "__ cmovq(Assembler::Condition::below, r26, Address(r27, r28, (Address::ScaleFactor)0, -0x7a2b377e));", // IID18597 - "__ cmovq(Assembler::Condition::below, r27, Address(r28, r29, (Address::ScaleFactor)3, -0x736e9542));", // IID18598 - "__ cmovq(Assembler::Condition::below, r28, Address(r29, r30, (Address::ScaleFactor)1, +0x5e1709de));", // IID18599 - "__ cmovq(Assembler::Condition::below, r29, Address(r30, r31, (Address::ScaleFactor)3, +0x5a05bde3));", // IID18600 - "__ cmovq(Assembler::Condition::below, r30, Address(r31, rcx, (Address::ScaleFactor)0, -0x7afcf3c5));", // IID18601 - "__ cmovq(Assembler::Condition::below, r31, Address(rcx, +0x6e955c36));", // IID18602 - "__ cmovq(Assembler::Condition::aboveEqual, rcx, Address(rdx, rbx, (Address::ScaleFactor)1, +0x3f567275));", // IID18603 - "__ cmovq(Assembler::Condition::aboveEqual, rdx, Address(rbx, r8, (Address::ScaleFactor)3, +0x564d392));", // IID18604 - "__ cmovq(Assembler::Condition::aboveEqual, rbx, Address(r8, +0x17b50637));", // IID18605 - "__ cmovq(Assembler::Condition::aboveEqual, r8, Address(r9, r10, (Address::ScaleFactor)3, -0x55700eef));", // IID18606 - "__ cmovq(Assembler::Condition::aboveEqual, r9, Address(r10, r11, (Address::ScaleFactor)1, -0x17d40194));", // IID18607 - "__ cmovq(Assembler::Condition::aboveEqual, r10, Address(r11, r12, (Address::ScaleFactor)3, +0x7de209ee));", // IID18608 - "__ cmovq(Assembler::Condition::aboveEqual, r11, Address(r12, r13, (Address::ScaleFactor)1, +0x28d588da));", // IID18609 - "__ cmovq(Assembler::Condition::aboveEqual, r12, Address(r13, +0x502462ce));", // IID18610 - "__ cmovq(Assembler::Condition::aboveEqual, r13, Address(r14, r15, (Address::ScaleFactor)3, -0x47114e8a));", // IID18611 - "__ cmovq(Assembler::Condition::aboveEqual, r14, Address(r15, r16, (Address::ScaleFactor)0, -0xea9a959));", // IID18612 - "__ cmovq(Assembler::Condition::aboveEqual, r15, Address(r16, +0x60e0cc52));", // IID18613 - "__ cmovq(Assembler::Condition::aboveEqual, r16, Address(r17, r18, (Address::ScaleFactor)0, -0x720b0a20));", // IID18614 - "__ cmovq(Assembler::Condition::aboveEqual, r17, Address(r18, r19, (Address::ScaleFactor)3, +0x7d0507d));", // IID18615 - "__ cmovq(Assembler::Condition::aboveEqual, r18, Address(r19, r20, (Address::ScaleFactor)1, -0x5be948a2));", // IID18616 - "__ cmovq(Assembler::Condition::aboveEqual, r19, Address(r20, r21, (Address::ScaleFactor)1, +0x529c776f));", // IID18617 - "__ cmovq(Assembler::Condition::aboveEqual, r20, Address(r21, -0x6d06de0d));", // IID18618 - "__ cmovq(Assembler::Condition::aboveEqual, r21, Address(r22, +0x7d64f3e2));", // IID18619 - "__ cmovq(Assembler::Condition::aboveEqual, r22, Address(r23, r24, (Address::ScaleFactor)2, -0x11c2937d));", // IID18620 - "__ cmovq(Assembler::Condition::aboveEqual, r23, Address(r24, r25, (Address::ScaleFactor)2, +0x16b9bfa3));", // IID18621 - "__ cmovq(Assembler::Condition::aboveEqual, r24, Address(r25, r26, (Address::ScaleFactor)3, +0x65ba5297));", // IID18622 - "__ cmovq(Assembler::Condition::aboveEqual, r25, Address(r26, r27, (Address::ScaleFactor)0, +0x1a905418));", // IID18623 - "__ cmovq(Assembler::Condition::aboveEqual, r26, Address(r27, r28, (Address::ScaleFactor)2, -0x6606b28b));", // IID18624 - "__ cmovq(Assembler::Condition::aboveEqual, r27, Address(r28, r29, (Address::ScaleFactor)3, +0x4de85138));", // IID18625 - "__ cmovq(Assembler::Condition::aboveEqual, r28, Address(r29, +0x3f5a41a3));", // IID18626 - "__ cmovq(Assembler::Condition::aboveEqual, r29, Address(r30, r31, (Address::ScaleFactor)2, -0x3f37ca3d));", // IID18627 - "__ cmovq(Assembler::Condition::aboveEqual, r30, Address(r31, rcx, (Address::ScaleFactor)0, +0x38f2726e));", // IID18628 - "__ cmovq(Assembler::Condition::aboveEqual, r31, Address(rcx, rdx, (Address::ScaleFactor)2, -0x703ae7eb));", // IID18629 - "__ cmovq(Assembler::Condition::zero, rcx, Address(rdx, rbx, (Address::ScaleFactor)3, +0xca14f93));", // IID18630 - "__ cmovq(Assembler::Condition::zero, rdx, Address(rbx, r8, (Address::ScaleFactor)0, -0x258dc55b));", // IID18631 - "__ cmovq(Assembler::Condition::zero, rbx, Address(r8, r9, (Address::ScaleFactor)2, -0x3d779a30));", // IID18632 - "__ cmovq(Assembler::Condition::zero, r8, Address(r9, r10, (Address::ScaleFactor)2, +0x4eaef819));", // IID18633 - "__ cmovq(Assembler::Condition::zero, r9, Address(r10, r11, (Address::ScaleFactor)1, +0x70029386));", // IID18634 - "__ cmovq(Assembler::Condition::zero, r10, Address(r11, r12, (Address::ScaleFactor)1, -0xe65d83e));", // IID18635 - "__ cmovq(Assembler::Condition::zero, r11, Address(r12, r13, (Address::ScaleFactor)1, -0x4579bd08));", // IID18636 - "__ cmovq(Assembler::Condition::zero, r12, Address(r13, r14, (Address::ScaleFactor)3, -0x2efb7cfa));", // IID18637 - "__ cmovq(Assembler::Condition::zero, r13, Address(r14, r15, (Address::ScaleFactor)0, -0x5d40e3aa));", // IID18638 - "__ cmovq(Assembler::Condition::zero, r14, Address(r15, r16, (Address::ScaleFactor)0, -0x45d5ec44));", // IID18639 - "__ cmovq(Assembler::Condition::zero, r15, Address(r16, +0x731d14d6));", // IID18640 - "__ cmovq(Assembler::Condition::zero, r16, Address(r17, r18, (Address::ScaleFactor)2, +0x51db970a));", // IID18641 - "__ cmovq(Assembler::Condition::zero, r17, Address(r18, r19, (Address::ScaleFactor)1, +0x3eb2deda));", // IID18642 - "__ cmovq(Assembler::Condition::zero, r18, Address(r19, +0x1392f69b));", // IID18643 - "__ cmovq(Assembler::Condition::zero, r19, Address(r20, r21, (Address::ScaleFactor)0, +0x470c4b00));", // IID18644 - "__ cmovq(Assembler::Condition::zero, r20, Address(r21, -0x543bf406));", // IID18645 - "__ cmovq(Assembler::Condition::zero, r21, Address(r22, r23, (Address::ScaleFactor)0, -0x27f8a72c));", // IID18646 - "__ cmovq(Assembler::Condition::zero, r22, Address(r23, r24, (Address::ScaleFactor)1, -0x2af7b8c1));", // IID18647 - "__ cmovq(Assembler::Condition::zero, r23, Address(r24, r25, (Address::ScaleFactor)1, -0x58c5f7bc));", // IID18648 - "__ cmovq(Assembler::Condition::zero, r24, Address(r25, r26, (Address::ScaleFactor)2, -0x30e03904));", // IID18649 - "__ cmovq(Assembler::Condition::zero, r25, Address(r26, r27, (Address::ScaleFactor)1, -0x3da76f78));", // IID18650 - "__ cmovq(Assembler::Condition::zero, r26, Address(r27, r28, (Address::ScaleFactor)2, -0x493d77b0));", // IID18651 - "__ cmovq(Assembler::Condition::zero, r27, Address(r28, +0x1d34223));", // IID18652 - "__ cmovq(Assembler::Condition::zero, r28, Address(r29, -0x605c807c));", // IID18653 - "__ cmovq(Assembler::Condition::zero, r29, Address(r30, r31, (Address::ScaleFactor)0, +0x28c38085));", // IID18654 - "__ cmovq(Assembler::Condition::zero, r30, Address(r31, -0x1b9dbd9f));", // IID18655 - "__ cmovq(Assembler::Condition::zero, r31, Address(rcx, -0x3589e62));", // IID18656 - "__ cmovq(Assembler::Condition::notZero, rcx, Address(rdx, rbx, (Address::ScaleFactor)1, +0x42f51ced));", // IID18657 - "__ cmovq(Assembler::Condition::notZero, rdx, Address(rbx, r8, (Address::ScaleFactor)3, +0x32e47e66));", // IID18658 - "__ cmovq(Assembler::Condition::notZero, rbx, Address(r8, r9, (Address::ScaleFactor)0, +0x1978c87e));", // IID18659 - "__ cmovq(Assembler::Condition::notZero, r8, Address(r9, r10, (Address::ScaleFactor)3, +0x3b33c102));", // IID18660 - "__ cmovq(Assembler::Condition::notZero, r9, Address(r10, r11, (Address::ScaleFactor)2, +0x7be9a9b7));", // IID18661 - "__ cmovq(Assembler::Condition::notZero, r10, Address(r11, r12, (Address::ScaleFactor)3, +0x36edea94));", // IID18662 - "__ cmovq(Assembler::Condition::notZero, r11, Address(r12, r13, (Address::ScaleFactor)2, +0x39b127c6));", // IID18663 - "__ cmovq(Assembler::Condition::notZero, r12, Address(r13, -0x384992bd));", // IID18664 - "__ cmovq(Assembler::Condition::notZero, r13, Address(r14, r15, (Address::ScaleFactor)1, +0x4564cc69));", // IID18665 - "__ cmovq(Assembler::Condition::notZero, r14, Address(r15, r16, (Address::ScaleFactor)1, -0x3579e7c6));", // IID18666 - "__ cmovq(Assembler::Condition::notZero, r15, Address(r16, r17, (Address::ScaleFactor)2, -0x57241548));", // IID18667 - "__ cmovq(Assembler::Condition::notZero, r16, Address(r17, r18, (Address::ScaleFactor)1, +0x38655a87));", // IID18668 - "__ cmovq(Assembler::Condition::notZero, r17, Address(r18, r19, (Address::ScaleFactor)0, -0x30875a77));", // IID18669 - "__ cmovq(Assembler::Condition::notZero, r18, Address(r19, -0x5fabe1b5));", // IID18670 - "__ cmovq(Assembler::Condition::notZero, r19, Address(r20, +0x2dd1859d));", // IID18671 - "__ cmovq(Assembler::Condition::notZero, r20, Address(r21, +0x2d8625ce));", // IID18672 - "__ cmovq(Assembler::Condition::notZero, r21, Address(r22, r23, (Address::ScaleFactor)0, -0x3cd3807e));", // IID18673 - "__ cmovq(Assembler::Condition::notZero, r22, Address(r23, +0x6834af6e));", // IID18674 - "__ cmovq(Assembler::Condition::notZero, r23, Address(r24, -0x38e2b1dd));", // IID18675 - "__ cmovq(Assembler::Condition::notZero, r24, Address(r25, r26, (Address::ScaleFactor)1, +0x20ddde4));", // IID18676 - "__ cmovq(Assembler::Condition::notZero, r25, Address(r26, r27, (Address::ScaleFactor)1, -0x7782ded3));", // IID18677 - "__ cmovq(Assembler::Condition::notZero, r26, Address(r27, r28, (Address::ScaleFactor)0, +0x490405b7));", // IID18678 - "__ cmovq(Assembler::Condition::notZero, r27, Address(r28, -0x5fe4fc03));", // IID18679 - "__ cmovq(Assembler::Condition::notZero, r28, Address(r29, r30, (Address::ScaleFactor)0, -0x44871fc4));", // IID18680 - "__ cmovq(Assembler::Condition::notZero, r29, Address(r30, r31, (Address::ScaleFactor)3, +0xf673b1b));", // IID18681 - "__ cmovq(Assembler::Condition::notZero, r30, Address(r31, rcx, (Address::ScaleFactor)2, -0x1f776f10));", // IID18682 - "__ cmovq(Assembler::Condition::notZero, r31, Address(rcx, +0x5726b225));", // IID18683 - "__ cmovq(Assembler::Condition::belowEqual, rcx, Address(rdx, rbx, (Address::ScaleFactor)2, -0xe084920));", // IID18684 - "__ cmovq(Assembler::Condition::belowEqual, rdx, Address(rbx, r8, (Address::ScaleFactor)3, -0x1d00fe27));", // IID18685 - "__ cmovq(Assembler::Condition::belowEqual, rbx, Address(r8, r9, (Address::ScaleFactor)3, +0x61ea2f81));", // IID18686 - "__ cmovq(Assembler::Condition::belowEqual, r8, Address(r9, +0x2660a831));", // IID18687 - "__ cmovq(Assembler::Condition::belowEqual, r9, Address(r10, r11, (Address::ScaleFactor)2, +0x619a081b));", // IID18688 - "__ cmovq(Assembler::Condition::belowEqual, r10, Address(r11, r12, (Address::ScaleFactor)1, +0x715ab4f0));", // IID18689 - "__ cmovq(Assembler::Condition::belowEqual, r11, Address(r12, r13, (Address::ScaleFactor)0, +0x665f4026));", // IID18690 - "__ cmovq(Assembler::Condition::belowEqual, r12, Address(r13, +0x34f95c8e));", // IID18691 - "__ cmovq(Assembler::Condition::belowEqual, r13, Address(r14, r15, (Address::ScaleFactor)1, +0x69513753));", // IID18692 - "__ cmovq(Assembler::Condition::belowEqual, r14, Address(r15, r16, (Address::ScaleFactor)3, +0xd132a62));", // IID18693 - "__ cmovq(Assembler::Condition::belowEqual, r15, Address(r16, r17, (Address::ScaleFactor)0, -0x40e3741f));", // IID18694 - "__ cmovq(Assembler::Condition::belowEqual, r16, Address(r17, +0x4eea700f));", // IID18695 - "__ cmovq(Assembler::Condition::belowEqual, r17, Address(r18, r19, (Address::ScaleFactor)2, +0x52a6089a));", // IID18696 - "__ cmovq(Assembler::Condition::belowEqual, r18, Address(r19, -0x4c0bedc4));", // IID18697 - "__ cmovq(Assembler::Condition::belowEqual, r19, Address(r20, +0x55967669));", // IID18698 - "__ cmovq(Assembler::Condition::belowEqual, r20, Address(r21, r22, (Address::ScaleFactor)3, +0x1f9502c5));", // IID18699 - "__ cmovq(Assembler::Condition::belowEqual, r21, Address(r22, r23, (Address::ScaleFactor)1, +0x648f35e7));", // IID18700 - "__ cmovq(Assembler::Condition::belowEqual, r22, Address(r23, r24, (Address::ScaleFactor)1, +0xedca411));", // IID18701 - "__ cmovq(Assembler::Condition::belowEqual, r23, Address(r24, r25, (Address::ScaleFactor)3, +0x4a30f732));", // IID18702 - "__ cmovq(Assembler::Condition::belowEqual, r24, Address(r25, +0x18dc4bfc));", // IID18703 - "__ cmovq(Assembler::Condition::belowEqual, r25, Address(r26, r27, (Address::ScaleFactor)0, +0x63e5048e));", // IID18704 - "__ cmovq(Assembler::Condition::belowEqual, r26, Address(r27, r28, (Address::ScaleFactor)2, -0x6c11997a));", // IID18705 - "__ cmovq(Assembler::Condition::belowEqual, r27, Address(r28, r29, (Address::ScaleFactor)2, +0x5369de96));", // IID18706 - "__ cmovq(Assembler::Condition::belowEqual, r28, Address(r29, r30, (Address::ScaleFactor)1, +0x35028ea6));", // IID18707 - "__ cmovq(Assembler::Condition::belowEqual, r29, Address(r30, r31, (Address::ScaleFactor)3, -0x121060e8));", // IID18708 - "__ cmovq(Assembler::Condition::belowEqual, r30, Address(r31, rcx, (Address::ScaleFactor)3, +0x3b3bd11b));", // IID18709 - "__ cmovq(Assembler::Condition::belowEqual, r31, Address(rcx, rdx, (Address::ScaleFactor)2, -0x29611e1c));", // IID18710 - "__ cmovq(Assembler::Condition::above, rcx, Address(rdx, rbx, (Address::ScaleFactor)0, -0x2f6af81d));", // IID18711 - "__ cmovq(Assembler::Condition::above, rdx, Address(rbx, r8, (Address::ScaleFactor)3, +0x128115eb));", // IID18712 - "__ cmovq(Assembler::Condition::above, rbx, Address(r8, -0x6b7123c8));", // IID18713 - "__ cmovq(Assembler::Condition::above, r8, Address(r9, r10, (Address::ScaleFactor)2, -0x7dc2b42b));", // IID18714 - "__ cmovq(Assembler::Condition::above, r9, Address(r10, r11, (Address::ScaleFactor)1, +0x17d2e44d));", // IID18715 - "__ cmovq(Assembler::Condition::above, r10, Address(r11, r12, (Address::ScaleFactor)1, -0x20d38d3));", // IID18716 - "__ cmovq(Assembler::Condition::above, r11, Address(r12, r13, (Address::ScaleFactor)3, +0x6ba6d530));", // IID18717 - "__ cmovq(Assembler::Condition::above, r12, Address(r13, -0x23c9acf2));", // IID18718 - "__ cmovq(Assembler::Condition::above, r13, Address(r14, r15, (Address::ScaleFactor)1, +0x527a25aa));", // IID18719 - "__ cmovq(Assembler::Condition::above, r14, Address(r15, -0x87a43db));", // IID18720 - "__ cmovq(Assembler::Condition::above, r15, Address(r16, r17, (Address::ScaleFactor)3, -0x76aefe22));", // IID18721 - "__ cmovq(Assembler::Condition::above, r16, Address(r17, r18, (Address::ScaleFactor)1, +0xdd1d5d0));", // IID18722 - "__ cmovq(Assembler::Condition::above, r17, Address(r18, r19, (Address::ScaleFactor)2, +0x3c5ad51c));", // IID18723 - "__ cmovq(Assembler::Condition::above, r18, Address(r19, -0x58f1be9e));", // IID18724 - "__ cmovq(Assembler::Condition::above, r19, Address(r20, r21, (Address::ScaleFactor)0, +0x48aef290));", // IID18725 - "__ cmovq(Assembler::Condition::above, r20, Address(r21, r22, (Address::ScaleFactor)0, -0x29e5ebb7));", // IID18726 - "__ cmovq(Assembler::Condition::above, r21, Address(r22, r23, (Address::ScaleFactor)3, -0xde1eede));", // IID18727 - "__ cmovq(Assembler::Condition::above, r22, Address(r23, r24, (Address::ScaleFactor)0, +0x299122a3));", // IID18728 - "__ cmovq(Assembler::Condition::above, r23, Address(r24, r25, (Address::ScaleFactor)1, -0x110ee230));", // IID18729 - "__ cmovq(Assembler::Condition::above, r24, Address(r25, +0x4097edfd));", // IID18730 - "__ cmovq(Assembler::Condition::above, r25, Address(r26, r27, (Address::ScaleFactor)2, -0x7f48ffb5));", // IID18731 - "__ cmovq(Assembler::Condition::above, r26, Address(r27, r28, (Address::ScaleFactor)1, -0x2ff6892b));", // IID18732 - "__ cmovq(Assembler::Condition::above, r27, Address(r28, -0x6cf845f5));", // IID18733 - "__ cmovq(Assembler::Condition::above, r28, Address(r29, r30, (Address::ScaleFactor)2, -0x723001a4));", // IID18734 - "__ cmovq(Assembler::Condition::above, r29, Address(r30, r31, (Address::ScaleFactor)0, +0xadf3a83));", // IID18735 - "__ cmovq(Assembler::Condition::above, r30, Address(r31, rcx, (Address::ScaleFactor)3, +0x181aa928));", // IID18736 - "__ cmovq(Assembler::Condition::above, r31, Address(rcx, rdx, (Address::ScaleFactor)3, +0x1084e28f));", // IID18737 - "__ cmovq(Assembler::Condition::negative, rcx, Address(rdx, rbx, (Address::ScaleFactor)1, +0x3a3dc1ea));", // IID18738 - "__ cmovq(Assembler::Condition::negative, rdx, Address(rbx, -0x29bcc5fb));", // IID18739 - "__ cmovq(Assembler::Condition::negative, rbx, Address(r8, -0x7f38b0f4));", // IID18740 - "__ cmovq(Assembler::Condition::negative, r8, Address(r9, r10, (Address::ScaleFactor)1, -0x754d38e9));", // IID18741 - "__ cmovq(Assembler::Condition::negative, r9, Address(r10, r11, (Address::ScaleFactor)3, -0x2f67e2e3));", // IID18742 - "__ cmovq(Assembler::Condition::negative, r10, Address(r11, r12, (Address::ScaleFactor)3, +0x31ba4c78));", // IID18743 - "__ cmovq(Assembler::Condition::negative, r11, Address(r12, r13, (Address::ScaleFactor)0, -0x18b47358));", // IID18744 - "__ cmovq(Assembler::Condition::negative, r12, Address(r13, r14, (Address::ScaleFactor)1, -0x2ac49238));", // IID18745 - "__ cmovq(Assembler::Condition::negative, r13, Address(r14, r15, (Address::ScaleFactor)1, -0x2794873b));", // IID18746 - "__ cmovq(Assembler::Condition::negative, r14, Address(r15, r16, (Address::ScaleFactor)0, +0x3d73db31));", // IID18747 - "__ cmovq(Assembler::Condition::negative, r15, Address(r16, r17, (Address::ScaleFactor)1, -0x1f1821d0));", // IID18748 - "__ cmovq(Assembler::Condition::negative, r16, Address(r17, +0x6d860152));", // IID18749 - "__ cmovq(Assembler::Condition::negative, r17, Address(r18, -0x39caaf44));", // IID18750 - "__ cmovq(Assembler::Condition::negative, r18, Address(r19, r20, (Address::ScaleFactor)3, -0x65327763));", // IID18751 - "__ cmovq(Assembler::Condition::negative, r19, Address(r20, r21, (Address::ScaleFactor)0, -0x4f50de46));", // IID18752 - "__ cmovq(Assembler::Condition::negative, r20, Address(r21, r22, (Address::ScaleFactor)0, +0x26d06a83));", // IID18753 - "__ cmovq(Assembler::Condition::negative, r21, Address(r22, r23, (Address::ScaleFactor)2, +0x5764e075));", // IID18754 - "__ cmovq(Assembler::Condition::negative, r22, Address(r23, r24, (Address::ScaleFactor)3, +0x68ff2a7e));", // IID18755 - "__ cmovq(Assembler::Condition::negative, r23, Address(r24, -0xe1ff82b));", // IID18756 - "__ cmovq(Assembler::Condition::negative, r24, Address(r25, r26, (Address::ScaleFactor)1, +0x33bf6f81));", // IID18757 - "__ cmovq(Assembler::Condition::negative, r25, Address(r26, r27, (Address::ScaleFactor)1, +0x341af6ac));", // IID18758 - "__ cmovq(Assembler::Condition::negative, r26, Address(r27, r28, (Address::ScaleFactor)3, -0x1478e836));", // IID18759 - "__ cmovq(Assembler::Condition::negative, r27, Address(r28, r29, (Address::ScaleFactor)0, -0x50d97ba9));", // IID18760 - "__ cmovq(Assembler::Condition::negative, r28, Address(r29, r30, (Address::ScaleFactor)0, +0xc3dde7d));", // IID18761 - "__ cmovq(Assembler::Condition::negative, r29, Address(r30, -0x21088f26));", // IID18762 - "__ cmovq(Assembler::Condition::negative, r30, Address(r31, rcx, (Address::ScaleFactor)3, +0x556706b2));", // IID18763 - "__ cmovq(Assembler::Condition::negative, r31, Address(rcx, rdx, (Address::ScaleFactor)3, -0x14d2e38f));", // IID18764 - "__ cmovq(Assembler::Condition::positive, rcx, Address(rdx, rbx, (Address::ScaleFactor)2, +0x2385f0d8));", // IID18765 - "__ cmovq(Assembler::Condition::positive, rdx, Address(rbx, r8, (Address::ScaleFactor)2, +0x143cabce));", // IID18766 - "__ cmovq(Assembler::Condition::positive, rbx, Address(r8, r9, (Address::ScaleFactor)2, +0x67dcc80));", // IID18767 - "__ cmovq(Assembler::Condition::positive, r8, Address(r9, -0x48d15e5b));", // IID18768 - "__ cmovq(Assembler::Condition::positive, r9, Address(r10, +0xb6db1d4));", // IID18769 - "__ cmovq(Assembler::Condition::positive, r10, Address(r11, r12, (Address::ScaleFactor)3, -0x3e1e1937));", // IID18770 - "__ cmovq(Assembler::Condition::positive, r11, Address(r12, r13, (Address::ScaleFactor)3, -0x1521fd05));", // IID18771 - "__ cmovq(Assembler::Condition::positive, r12, Address(r13, r14, (Address::ScaleFactor)1, +0x71777026));", // IID18772 - "__ cmovq(Assembler::Condition::positive, r13, Address(r14, r15, (Address::ScaleFactor)1, -0x2a778183));", // IID18773 - "__ cmovq(Assembler::Condition::positive, r14, Address(r15, r16, (Address::ScaleFactor)3, -0x69c81f14));", // IID18774 - "__ cmovq(Assembler::Condition::positive, r15, Address(r16, r17, (Address::ScaleFactor)2, +0x86f9907));", // IID18775 - "__ cmovq(Assembler::Condition::positive, r16, Address(r17, r18, (Address::ScaleFactor)2, +0x15354955));", // IID18776 - "__ cmovq(Assembler::Condition::positive, r17, Address(r18, r19, (Address::ScaleFactor)1, +0x642ab0a5));", // IID18777 - "__ cmovq(Assembler::Condition::positive, r18, Address(r19, r20, (Address::ScaleFactor)3, -0x359982d7));", // IID18778 - "__ cmovq(Assembler::Condition::positive, r19, Address(r20, r21, (Address::ScaleFactor)3, +0x615f8d64));", // IID18779 - "__ cmovq(Assembler::Condition::positive, r20, Address(r21, r22, (Address::ScaleFactor)3, +0x17b85c89));", // IID18780 - "__ cmovq(Assembler::Condition::positive, r21, Address(r22, r23, (Address::ScaleFactor)2, -0xeccef66));", // IID18781 - "__ cmovq(Assembler::Condition::positive, r22, Address(r23, r24, (Address::ScaleFactor)3, +0x10bb4897));", // IID18782 - "__ cmovq(Assembler::Condition::positive, r23, Address(r24, +0x7bd886c5));", // IID18783 - "__ cmovq(Assembler::Condition::positive, r24, Address(r25, r26, (Address::ScaleFactor)0, -0x39ae186e));", // IID18784 - "__ cmovq(Assembler::Condition::positive, r25, Address(r26, r27, (Address::ScaleFactor)2, +0x3cd6086b));", // IID18785 - "__ cmovq(Assembler::Condition::positive, r26, Address(r27, r28, (Address::ScaleFactor)1, +0x3dfa1939));", // IID18786 - "__ cmovq(Assembler::Condition::positive, r27, Address(r28, r29, (Address::ScaleFactor)3, -0x622b5ff1));", // IID18787 - "__ cmovq(Assembler::Condition::positive, r28, Address(r29, r30, (Address::ScaleFactor)0, +0x2fdaa1e));", // IID18788 - "__ cmovq(Assembler::Condition::positive, r29, Address(r30, r31, (Address::ScaleFactor)0, +0x35841dfc));", // IID18789 - "__ cmovq(Assembler::Condition::positive, r30, Address(r31, rcx, (Address::ScaleFactor)1, +0x6ebd2c9e));", // IID18790 - "__ cmovq(Assembler::Condition::positive, r31, Address(rcx, rdx, (Address::ScaleFactor)3, +0x75caf538));", // IID18791 - "__ cmovq(Assembler::Condition::parity, rcx, Address(rdx, +0x2ed1f5a1));", // IID18792 - "__ cmovq(Assembler::Condition::parity, rdx, Address(rbx, r8, (Address::ScaleFactor)2, -0xfc94414));", // IID18793 - "__ cmovq(Assembler::Condition::parity, rbx, Address(r8, r9, (Address::ScaleFactor)1, -0x5280ff));", // IID18794 - "__ cmovq(Assembler::Condition::parity, r8, Address(r9, r10, (Address::ScaleFactor)2, -0x4c30a969));", // IID18795 - "__ cmovq(Assembler::Condition::parity, r9, Address(r10, r11, (Address::ScaleFactor)3, +0x8f0f3ce));", // IID18796 - "__ cmovq(Assembler::Condition::parity, r10, Address(r11, +0x3df6e051));", // IID18797 - "__ cmovq(Assembler::Condition::parity, r11, Address(r12, r13, (Address::ScaleFactor)2, -0x3ed3b69b));", // IID18798 - "__ cmovq(Assembler::Condition::parity, r12, Address(r13, -0x4b0da80e));", // IID18799 - "__ cmovq(Assembler::Condition::parity, r13, Address(r14, r15, (Address::ScaleFactor)2, +0x18174ff));", // IID18800 - "__ cmovq(Assembler::Condition::parity, r14, Address(r15, r16, (Address::ScaleFactor)2, +0x4dbfa432));", // IID18801 - "__ cmovq(Assembler::Condition::parity, r15, Address(r16, -0x22bf4268));", // IID18802 - "__ cmovq(Assembler::Condition::parity, r16, Address(r17, r18, (Address::ScaleFactor)3, -0x30e7bfa7));", // IID18803 - "__ cmovq(Assembler::Condition::parity, r17, Address(r18, r19, (Address::ScaleFactor)3, +0x1d3b9f25));", // IID18804 - "__ cmovq(Assembler::Condition::parity, r18, Address(r19, r20, (Address::ScaleFactor)0, -0x1114a235));", // IID18805 - "__ cmovq(Assembler::Condition::parity, r19, Address(r20, r21, (Address::ScaleFactor)3, -0x22e75619));", // IID18806 - "__ cmovq(Assembler::Condition::parity, r20, Address(r21, r22, (Address::ScaleFactor)1, +0x1d4c1d46));", // IID18807 - "__ cmovq(Assembler::Condition::parity, r21, Address(r22, r23, (Address::ScaleFactor)3, -0x624bdbaf));", // IID18808 - "__ cmovq(Assembler::Condition::parity, r22, Address(r23, r24, (Address::ScaleFactor)1, -0x30d77e32));", // IID18809 - "__ cmovq(Assembler::Condition::parity, r23, Address(r24, r25, (Address::ScaleFactor)1, -0x1aea9a71));", // IID18810 - "__ cmovq(Assembler::Condition::parity, r24, Address(r25, r26, (Address::ScaleFactor)1, +0x697c16d3));", // IID18811 - "__ cmovq(Assembler::Condition::parity, r25, Address(r26, r27, (Address::ScaleFactor)2, -0x58f897bc));", // IID18812 - "__ cmovq(Assembler::Condition::parity, r26, Address(r27, r28, (Address::ScaleFactor)2, +0x67f25d));", // IID18813 - "__ cmovq(Assembler::Condition::parity, r27, Address(r28, r29, (Address::ScaleFactor)2, -0x885638f));", // IID18814 - "__ cmovq(Assembler::Condition::parity, r28, Address(r29, +0x5608a2c4));", // IID18815 - "__ cmovq(Assembler::Condition::parity, r29, Address(r30, r31, (Address::ScaleFactor)1, +0x24804098));", // IID18816 - "__ cmovq(Assembler::Condition::parity, r30, Address(r31, rcx, (Address::ScaleFactor)1, +0x60d65462));", // IID18817 - "__ cmovq(Assembler::Condition::parity, r31, Address(rcx, rdx, (Address::ScaleFactor)3, +0x65e6b4a2));", // IID18818 - "__ cmovq(Assembler::Condition::noParity, rcx, Address(rdx, rbx, (Address::ScaleFactor)1, +0x31ed8076));", // IID18819 - "__ cmovq(Assembler::Condition::noParity, rdx, Address(rbx, -0xefb8d8d));", // IID18820 - "__ cmovq(Assembler::Condition::noParity, rbx, Address(r8, +0x780e1b24));", // IID18821 - "__ cmovq(Assembler::Condition::noParity, r8, Address(r9, r10, (Address::ScaleFactor)3, +0x7184a9ea));", // IID18822 - "__ cmovq(Assembler::Condition::noParity, r9, Address(r10, +0x78962655));", // IID18823 - "__ cmovq(Assembler::Condition::noParity, r10, Address(r11, r12, (Address::ScaleFactor)0, +0x79c8e2eb));", // IID18824 - "__ cmovq(Assembler::Condition::noParity, r11, Address(r12, r13, (Address::ScaleFactor)0, +0x406d36f6));", // IID18825 - "__ cmovq(Assembler::Condition::noParity, r12, Address(r13, r14, (Address::ScaleFactor)0, -0x52a31e3c));", // IID18826 - "__ cmovq(Assembler::Condition::noParity, r13, Address(r14, -0x31440ac5));", // IID18827 - "__ cmovq(Assembler::Condition::noParity, r14, Address(r15, r16, (Address::ScaleFactor)2, -0x5ad2ad1d));", // IID18828 - "__ cmovq(Assembler::Condition::noParity, r15, Address(r16, r17, (Address::ScaleFactor)1, +0x6aab600f));", // IID18829 - "__ cmovq(Assembler::Condition::noParity, r16, Address(r17, r18, (Address::ScaleFactor)0, -0x359dbcf));", // IID18830 - "__ cmovq(Assembler::Condition::noParity, r17, Address(r18, r19, (Address::ScaleFactor)0, +0x15a42144));", // IID18831 - "__ cmovq(Assembler::Condition::noParity, r18, Address(r19, +0x2be4c489));", // IID18832 - "__ cmovq(Assembler::Condition::noParity, r19, Address(r20, r21, (Address::ScaleFactor)2, -0x659b3959));", // IID18833 - "__ cmovq(Assembler::Condition::noParity, r20, Address(r21, -0x5d777dc2));", // IID18834 - "__ cmovq(Assembler::Condition::noParity, r21, Address(r22, r23, (Address::ScaleFactor)3, +0x6137380d));", // IID18835 - "__ cmovq(Assembler::Condition::noParity, r22, Address(r23, r24, (Address::ScaleFactor)0, -0x48ca1079));", // IID18836 - "__ cmovq(Assembler::Condition::noParity, r23, Address(r24, r25, (Address::ScaleFactor)2, +0x359d8db3));", // IID18837 - "__ cmovq(Assembler::Condition::noParity, r24, Address(r25, r26, (Address::ScaleFactor)0, -0x73945e9c));", // IID18838 - "__ cmovq(Assembler::Condition::noParity, r25, Address(r26, r27, (Address::ScaleFactor)2, -0x1cd0c7e4));", // IID18839 - "__ cmovq(Assembler::Condition::noParity, r26, Address(r27, r28, (Address::ScaleFactor)0, -0x5cce04c3));", // IID18840 - "__ cmovq(Assembler::Condition::noParity, r27, Address(r28, r29, (Address::ScaleFactor)3, +0x1ef48dea));", // IID18841 - "__ cmovq(Assembler::Condition::noParity, r28, Address(r29, r30, (Address::ScaleFactor)2, +0x31f43d7));", // IID18842 - "__ cmovq(Assembler::Condition::noParity, r29, Address(r30, r31, (Address::ScaleFactor)1, -0x6f11f8ab));", // IID18843 - "__ cmovq(Assembler::Condition::noParity, r30, Address(r31, rcx, (Address::ScaleFactor)2, +0x5c1ab942));", // IID18844 - "__ cmovq(Assembler::Condition::noParity, r31, Address(rcx, rdx, (Address::ScaleFactor)1, +0x5b148d5d));", // IID18845 - "__ cmovq(Assembler::Condition::less, rcx, Address(rdx, rbx, (Address::ScaleFactor)2, +0x4a9cc5c5));", // IID18846 - "__ cmovq(Assembler::Condition::less, rdx, Address(rbx, r8, (Address::ScaleFactor)2, +0x41ecbef8));", // IID18847 - "__ cmovq(Assembler::Condition::less, rbx, Address(r8, r9, (Address::ScaleFactor)3, +0x4312f84e));", // IID18848 - "__ cmovq(Assembler::Condition::less, r8, Address(r9, r10, (Address::ScaleFactor)3, -0x60d80088));", // IID18849 - "__ cmovq(Assembler::Condition::less, r9, Address(r10, r11, (Address::ScaleFactor)0, +0x19d56eb6));", // IID18850 - "__ cmovq(Assembler::Condition::less, r10, Address(r11, r12, (Address::ScaleFactor)1, -0x5b3590ba));", // IID18851 - "__ cmovq(Assembler::Condition::less, r11, Address(r12, r13, (Address::ScaleFactor)3, +0x6439fd5f));", // IID18852 - "__ cmovq(Assembler::Condition::less, r12, Address(r13, r14, (Address::ScaleFactor)1, -0x102d5f49));", // IID18853 - "__ cmovq(Assembler::Condition::less, r13, Address(r14, +0x7d80112d));", // IID18854 - "__ cmovq(Assembler::Condition::less, r14, Address(r15, r16, (Address::ScaleFactor)0, +0x614df186));", // IID18855 - "__ cmovq(Assembler::Condition::less, r15, Address(r16, r17, (Address::ScaleFactor)2, -0x2b6f8f03));", // IID18856 - "__ cmovq(Assembler::Condition::less, r16, Address(r17, r18, (Address::ScaleFactor)1, -0x336505fb));", // IID18857 - "__ cmovq(Assembler::Condition::less, r17, Address(r18, -0x2fb750b3));", // IID18858 - "__ cmovq(Assembler::Condition::less, r18, Address(r19, r20, (Address::ScaleFactor)3, -0x4c6084da));", // IID18859 - "__ cmovq(Assembler::Condition::less, r19, Address(r20, +0x491c5167));", // IID18860 - "__ cmovq(Assembler::Condition::less, r20, Address(r21, +0x34f667ff));", // IID18861 - "__ cmovq(Assembler::Condition::less, r21, Address(r22, r23, (Address::ScaleFactor)1, -0x40ddabd7));", // IID18862 - "__ cmovq(Assembler::Condition::less, r22, Address(r23, r24, (Address::ScaleFactor)1, -0x30a50d68));", // IID18863 - "__ cmovq(Assembler::Condition::less, r23, Address(r24, +0x1baa764f));", // IID18864 - "__ cmovq(Assembler::Condition::less, r24, Address(r25, -0x36fcd806));", // IID18865 - "__ cmovq(Assembler::Condition::less, r25, Address(r26, r27, (Address::ScaleFactor)2, +0x329dec53));", // IID18866 - "__ cmovq(Assembler::Condition::less, r26, Address(r27, r28, (Address::ScaleFactor)2, -0x7c36e08));", // IID18867 - "__ cmovq(Assembler::Condition::less, r27, Address(r28, -0x1109bd16));", // IID18868 - "__ cmovq(Assembler::Condition::less, r28, Address(r29, r30, (Address::ScaleFactor)2, -0x5323a9d1));", // IID18869 - "__ cmovq(Assembler::Condition::less, r29, Address(r30, -0x45732998));", // IID18870 - "__ cmovq(Assembler::Condition::less, r30, Address(r31, rcx, (Address::ScaleFactor)2, +0x45279fc0));", // IID18871 - "__ cmovq(Assembler::Condition::less, r31, Address(rcx, rdx, (Address::ScaleFactor)0, +0x490cf91f));", // IID18872 - "__ cmovq(Assembler::Condition::greaterEqual, rcx, Address(rdx, rbx, (Address::ScaleFactor)1, -0xdb428f9));", // IID18873 - "__ cmovq(Assembler::Condition::greaterEqual, rdx, Address(rbx, r8, (Address::ScaleFactor)1, +0x18b2783));", // IID18874 - "__ cmovq(Assembler::Condition::greaterEqual, rbx, Address(r8, r9, (Address::ScaleFactor)2, -0x32cd454f));", // IID18875 - "__ cmovq(Assembler::Condition::greaterEqual, r8, Address(r9, r10, (Address::ScaleFactor)1, +0x5cca3764));", // IID18876 - "__ cmovq(Assembler::Condition::greaterEqual, r9, Address(r10, +0x1a7b2c69));", // IID18877 - "__ cmovq(Assembler::Condition::greaterEqual, r10, Address(r11, +0xe90b15b));", // IID18878 - "__ cmovq(Assembler::Condition::greaterEqual, r11, Address(r12, r13, (Address::ScaleFactor)0, -0x6292721d));", // IID18879 - "__ cmovq(Assembler::Condition::greaterEqual, r12, Address(r13, r14, (Address::ScaleFactor)3, +0x2ae9bdb8));", // IID18880 - "__ cmovq(Assembler::Condition::greaterEqual, r13, Address(r14, r15, (Address::ScaleFactor)3, -0x6724e009));", // IID18881 - "__ cmovq(Assembler::Condition::greaterEqual, r14, Address(r15, r16, (Address::ScaleFactor)0, -0x6fae33ae));", // IID18882 - "__ cmovq(Assembler::Condition::greaterEqual, r15, Address(r16, r17, (Address::ScaleFactor)1, -0x7e8213f));", // IID18883 - "__ cmovq(Assembler::Condition::greaterEqual, r16, Address(r17, r18, (Address::ScaleFactor)1, -0x349603d7));", // IID18884 - "__ cmovq(Assembler::Condition::greaterEqual, r17, Address(r18, r19, (Address::ScaleFactor)1, +0x3b8cfe27));", // IID18885 - "__ cmovq(Assembler::Condition::greaterEqual, r18, Address(r19, r20, (Address::ScaleFactor)2, -0x68c5cb73));", // IID18886 - "__ cmovq(Assembler::Condition::greaterEqual, r19, Address(r20, r21, (Address::ScaleFactor)2, +0x3d992010));", // IID18887 - "__ cmovq(Assembler::Condition::greaterEqual, r20, Address(r21, r22, (Address::ScaleFactor)2, +0x29de4703));", // IID18888 - "__ cmovq(Assembler::Condition::greaterEqual, r21, Address(r22, r23, (Address::ScaleFactor)1, +0x8aad553));", // IID18889 - "__ cmovq(Assembler::Condition::greaterEqual, r22, Address(r23, r24, (Address::ScaleFactor)0, +0x63726370));", // IID18890 - "__ cmovq(Assembler::Condition::greaterEqual, r23, Address(r24, r25, (Address::ScaleFactor)1, -0x7202ba33));", // IID18891 - "__ cmovq(Assembler::Condition::greaterEqual, r24, Address(r25, r26, (Address::ScaleFactor)1, +0x6daec18e));", // IID18892 - "__ cmovq(Assembler::Condition::greaterEqual, r25, Address(r26, r27, (Address::ScaleFactor)1, +0x4f98f738));", // IID18893 - "__ cmovq(Assembler::Condition::greaterEqual, r26, Address(r27, r28, (Address::ScaleFactor)0, -0x81ff98a));", // IID18894 - "__ cmovq(Assembler::Condition::greaterEqual, r27, Address(r28, r29, (Address::ScaleFactor)2, -0x28a9d1d3));", // IID18895 - "__ cmovq(Assembler::Condition::greaterEqual, r28, Address(r29, r30, (Address::ScaleFactor)3, +0x17eebf2));", // IID18896 - "__ cmovq(Assembler::Condition::greaterEqual, r29, Address(r30, r31, (Address::ScaleFactor)2, +0x139baa61));", // IID18897 - "__ cmovq(Assembler::Condition::greaterEqual, r30, Address(r31, rcx, (Address::ScaleFactor)1, -0x64e84448));", // IID18898 - "__ cmovq(Assembler::Condition::greaterEqual, r31, Address(rcx, +0x6f3a0043));", // IID18899 - "__ cmovq(Assembler::Condition::lessEqual, rcx, Address(rdx, rbx, (Address::ScaleFactor)1, -0x5c381d12));", // IID18900 - "__ cmovq(Assembler::Condition::lessEqual, rdx, Address(rbx, r8, (Address::ScaleFactor)0, -0x72df8ade));", // IID18901 - "__ cmovq(Assembler::Condition::lessEqual, rbx, Address(r8, +0x295ce63b));", // IID18902 - "__ cmovq(Assembler::Condition::lessEqual, r8, Address(r9, r10, (Address::ScaleFactor)0, +0x3bc8b2b));", // IID18903 - "__ cmovq(Assembler::Condition::lessEqual, r9, Address(r10, r11, (Address::ScaleFactor)1, -0x5030441e));", // IID18904 - "__ cmovq(Assembler::Condition::lessEqual, r10, Address(r11, r12, (Address::ScaleFactor)0, +0xdcc2705));", // IID18905 - "__ cmovq(Assembler::Condition::lessEqual, r11, Address(r12, r13, (Address::ScaleFactor)0, +0x23a9af1d));", // IID18906 - "__ cmovq(Assembler::Condition::lessEqual, r12, Address(r13, r14, (Address::ScaleFactor)3, -0x40b786f1));", // IID18907 - "__ cmovq(Assembler::Condition::lessEqual, r13, Address(r14, r15, (Address::ScaleFactor)2, -0x1fd48620));", // IID18908 - "__ cmovq(Assembler::Condition::lessEqual, r14, Address(r15, r16, (Address::ScaleFactor)3, +0x185691cc));", // IID18909 - "__ cmovq(Assembler::Condition::lessEqual, r15, Address(r16, +0x16518dec));", // IID18910 - "__ cmovq(Assembler::Condition::lessEqual, r16, Address(r17, r18, (Address::ScaleFactor)3, +0x27d0f125));", // IID18911 - "__ cmovq(Assembler::Condition::lessEqual, r17, Address(r18, r19, (Address::ScaleFactor)2, -0x1292ff25));", // IID18912 - "__ cmovq(Assembler::Condition::lessEqual, r18, Address(r19, r20, (Address::ScaleFactor)0, +0x8584a4));", // IID18913 - "__ cmovq(Assembler::Condition::lessEqual, r19, Address(r20, +0x69c6b0dc));", // IID18914 - "__ cmovq(Assembler::Condition::lessEqual, r20, Address(r21, r22, (Address::ScaleFactor)2, -0x721acbcf));", // IID18915 - "__ cmovq(Assembler::Condition::lessEqual, r21, Address(r22, r23, (Address::ScaleFactor)2, -0x71e8efc0));", // IID18916 - "__ cmovq(Assembler::Condition::lessEqual, r22, Address(r23, -0x7af3f244));", // IID18917 - "__ cmovq(Assembler::Condition::lessEqual, r23, Address(r24, +0x333b9d74));", // IID18918 - "__ cmovq(Assembler::Condition::lessEqual, r24, Address(r25, -0x7139ca46));", // IID18919 - "__ cmovq(Assembler::Condition::lessEqual, r25, Address(r26, +0x38b1853b));", // IID18920 - "__ cmovq(Assembler::Condition::lessEqual, r26, Address(r27, r28, (Address::ScaleFactor)0, +0x57b5c742));", // IID18921 - "__ cmovq(Assembler::Condition::lessEqual, r27, Address(r28, r29, (Address::ScaleFactor)3, +0x62c43a84));", // IID18922 - "__ cmovq(Assembler::Condition::lessEqual, r28, Address(r29, r30, (Address::ScaleFactor)2, -0x66f61e7c));", // IID18923 - "__ cmovq(Assembler::Condition::lessEqual, r29, Address(r30, r31, (Address::ScaleFactor)2, +0x2bcb8e6a));", // IID18924 - "__ cmovq(Assembler::Condition::lessEqual, r30, Address(r31, +0x7ad69de7));", // IID18925 - "__ cmovq(Assembler::Condition::lessEqual, r31, Address(rcx, -0x47e7a936));", // IID18926 - "__ cmovq(Assembler::Condition::greater, rcx, Address(rdx, rbx, (Address::ScaleFactor)2, +0x7e6ff70));", // IID18927 - "__ cmovq(Assembler::Condition::greater, rdx, Address(rbx, r8, (Address::ScaleFactor)1, +0x3db34c81));", // IID18928 - "__ cmovq(Assembler::Condition::greater, rbx, Address(r8, r9, (Address::ScaleFactor)1, -0x2ceb32a3));", // IID18929 - "__ cmovq(Assembler::Condition::greater, r8, Address(r9, -0x5096dfbb));", // IID18930 - "__ cmovq(Assembler::Condition::greater, r9, Address(r10, +0x223109fa));", // IID18931 - "__ cmovq(Assembler::Condition::greater, r10, Address(r11, r12, (Address::ScaleFactor)3, -0x79e31197));", // IID18932 - "__ cmovq(Assembler::Condition::greater, r11, Address(r12, r13, (Address::ScaleFactor)2, +0x4808469));", // IID18933 - "__ cmovq(Assembler::Condition::greater, r12, Address(r13, +0x25a22834));", // IID18934 - "__ cmovq(Assembler::Condition::greater, r13, Address(r14, r15, (Address::ScaleFactor)3, +0x7cea462d));", // IID18935 - "__ cmovq(Assembler::Condition::greater, r14, Address(r15, r16, (Address::ScaleFactor)2, +0x3e0f7ad5));", // IID18936 - "__ cmovq(Assembler::Condition::greater, r15, Address(r16, -0x22ee73d3));", // IID18937 - "__ cmovq(Assembler::Condition::greater, r16, Address(r17, r18, (Address::ScaleFactor)3, +0x4293ab80));", // IID18938 - "__ cmovq(Assembler::Condition::greater, r17, Address(r18, r19, (Address::ScaleFactor)2, +0x2ddc9f3f));", // IID18939 - "__ cmovq(Assembler::Condition::greater, r18, Address(r19, r20, (Address::ScaleFactor)3, -0x6d2542c8));", // IID18940 - "__ cmovq(Assembler::Condition::greater, r19, Address(r20, r21, (Address::ScaleFactor)1, +0xe1087d4));", // IID18941 - "__ cmovq(Assembler::Condition::greater, r20, Address(r21, r22, (Address::ScaleFactor)2, -0x4166a92e));", // IID18942 - "__ cmovq(Assembler::Condition::greater, r21, Address(r22, r23, (Address::ScaleFactor)1, +0x75bf6a62));", // IID18943 - "__ cmovq(Assembler::Condition::greater, r22, Address(r23, -0x6d11335d));", // IID18944 - "__ cmovq(Assembler::Condition::greater, r23, Address(r24, r25, (Address::ScaleFactor)0, -0x3751e8c0));", // IID18945 - "__ cmovq(Assembler::Condition::greater, r24, Address(r25, r26, (Address::ScaleFactor)0, +0x60ec36a9));", // IID18946 - "__ cmovq(Assembler::Condition::greater, r25, Address(r26, r27, (Address::ScaleFactor)3, -0x14106edc));", // IID18947 - "__ cmovq(Assembler::Condition::greater, r26, Address(r27, -0x522f46b8));", // IID18948 - "__ cmovq(Assembler::Condition::greater, r27, Address(r28, r29, (Address::ScaleFactor)2, -0x21bf3c12));", // IID18949 - "__ cmovq(Assembler::Condition::greater, r28, Address(r29, r30, (Address::ScaleFactor)3, +0x638aa25));", // IID18950 - "__ cmovq(Assembler::Condition::greater, r29, Address(r30, +0x5b205de3));", // IID18951 - "__ cmovq(Assembler::Condition::greater, r30, Address(r31, rcx, (Address::ScaleFactor)3, +0x4e4670a4));", // IID18952 - "__ cmovq(Assembler::Condition::greater, r31, Address(rcx, rdx, (Address::ScaleFactor)3, +0x413854c));", // IID18953 - "__ call(rcx);", // IID18954 - "__ call(rdx);", // IID18955 - "__ call(rbx);", // IID18956 - "__ call(r8);", // IID18957 - "__ call(r9);", // IID18958 - "__ call(r10);", // IID18959 - "__ call(r11);", // IID18960 - "__ call(r12);", // IID18961 - "__ call(r13);", // IID18962 - "__ call(r14);", // IID18963 - "__ call(r15);", // IID18964 - "__ call(r16);", // IID18965 - "__ call(r17);", // IID18966 - "__ call(r18);", // IID18967 - "__ call(r19);", // IID18968 - "__ call(r20);", // IID18969 - "__ call(r21);", // IID18970 - "__ call(r22);", // IID18971 - "__ call(r23);", // IID18972 - "__ call(r24);", // IID18973 - "__ call(r25);", // IID18974 - "__ call(r26);", // IID18975 - "__ call(r27);", // IID18976 - "__ call(r28);", // IID18977 - "__ call(r29);", // IID18978 - "__ call(r30);", // IID18979 - "__ call(r31);", // IID18980 - "__ divq(rcx);", // IID18981 - "__ divq(rdx);", // IID18982 - "__ divq(rbx);", // IID18983 - "__ divq(r8);", // IID18984 - "__ divq(r9);", // IID18985 - "__ divq(r10);", // IID18986 - "__ divq(r11);", // IID18987 - "__ divq(r12);", // IID18988 - "__ divq(r13);", // IID18989 - "__ divq(r14);", // IID18990 - "__ divq(r15);", // IID18991 - "__ divq(r16);", // IID18992 - "__ divq(r17);", // IID18993 - "__ divq(r18);", // IID18994 - "__ divq(r19);", // IID18995 - "__ divq(r20);", // IID18996 - "__ divq(r21);", // IID18997 - "__ divq(r22);", // IID18998 - "__ divq(r23);", // IID18999 - "__ divq(r24);", // IID19000 - "__ divq(r25);", // IID19001 - "__ divq(r26);", // IID19002 - "__ divq(r27);", // IID19003 - "__ divq(r28);", // IID19004 - "__ divq(r29);", // IID19005 - "__ divq(r30);", // IID19006 - "__ divq(r31);", // IID19007 - "__ idivq(rcx);", // IID19008 - "__ idivq(rdx);", // IID19009 - "__ idivq(rbx);", // IID19010 - "__ idivq(r8);", // IID19011 - "__ idivq(r9);", // IID19012 - "__ idivq(r10);", // IID19013 - "__ idivq(r11);", // IID19014 - "__ idivq(r12);", // IID19015 - "__ idivq(r13);", // IID19016 - "__ idivq(r14);", // IID19017 - "__ idivq(r15);", // IID19018 - "__ idivq(r16);", // IID19019 - "__ idivq(r17);", // IID19020 - "__ idivq(r18);", // IID19021 - "__ idivq(r19);", // IID19022 - "__ idivq(r20);", // IID19023 - "__ idivq(r21);", // IID19024 - "__ idivq(r22);", // IID19025 - "__ idivq(r23);", // IID19026 - "__ idivq(r24);", // IID19027 - "__ idivq(r25);", // IID19028 - "__ idivq(r26);", // IID19029 - "__ idivq(r27);", // IID19030 - "__ idivq(r28);", // IID19031 - "__ idivq(r29);", // IID19032 - "__ idivq(r30);", // IID19033 - "__ idivq(r31);", // IID19034 - "__ imulq(rcx);", // IID19035 - "__ imulq(rdx);", // IID19036 - "__ imulq(rbx);", // IID19037 - "__ imulq(r8);", // IID19038 - "__ imulq(r9);", // IID19039 - "__ imulq(r10);", // IID19040 - "__ imulq(r11);", // IID19041 - "__ imulq(r12);", // IID19042 - "__ imulq(r13);", // IID19043 - "__ imulq(r14);", // IID19044 - "__ imulq(r15);", // IID19045 - "__ imulq(r16);", // IID19046 - "__ imulq(r17);", // IID19047 - "__ imulq(r18);", // IID19048 - "__ imulq(r19);", // IID19049 - "__ imulq(r20);", // IID19050 - "__ imulq(r21);", // IID19051 - "__ imulq(r22);", // IID19052 - "__ imulq(r23);", // IID19053 - "__ imulq(r24);", // IID19054 - "__ imulq(r25);", // IID19055 - "__ imulq(r26);", // IID19056 - "__ imulq(r27);", // IID19057 - "__ imulq(r28);", // IID19058 - "__ imulq(r29);", // IID19059 - "__ imulq(r30);", // IID19060 - "__ imulq(r31);", // IID19061 - "__ mulq(rcx);", // IID19062 - "__ mulq(rdx);", // IID19063 - "__ mulq(rbx);", // IID19064 - "__ mulq(r8);", // IID19065 - "__ mulq(r9);", // IID19066 - "__ mulq(r10);", // IID19067 - "__ mulq(r11);", // IID19068 - "__ mulq(r12);", // IID19069 - "__ mulq(r13);", // IID19070 - "__ mulq(r14);", // IID19071 - "__ mulq(r15);", // IID19072 - "__ mulq(r16);", // IID19073 - "__ mulq(r17);", // IID19074 - "__ mulq(r18);", // IID19075 - "__ mulq(r19);", // IID19076 - "__ mulq(r20);", // IID19077 - "__ mulq(r21);", // IID19078 - "__ mulq(r22);", // IID19079 - "__ mulq(r23);", // IID19080 - "__ mulq(r24);", // IID19081 - "__ mulq(r25);", // IID19082 - "__ mulq(r26);", // IID19083 - "__ mulq(r27);", // IID19084 - "__ mulq(r28);", // IID19085 - "__ mulq(r29);", // IID19086 - "__ mulq(r30);", // IID19087 - "__ mulq(r31);", // IID19088 - "__ negq(rcx);", // IID19089 - "__ negq(rdx);", // IID19090 - "__ negq(rbx);", // IID19091 - "__ negq(r8);", // IID19092 - "__ negq(r9);", // IID19093 - "__ negq(r10);", // IID19094 - "__ negq(r11);", // IID19095 - "__ negq(r12);", // IID19096 - "__ negq(r13);", // IID19097 - "__ negq(r14);", // IID19098 - "__ negq(r15);", // IID19099 - "__ negq(r16);", // IID19100 - "__ negq(r17);", // IID19101 - "__ negq(r18);", // IID19102 - "__ negq(r19);", // IID19103 - "__ negq(r20);", // IID19104 - "__ negq(r21);", // IID19105 - "__ negq(r22);", // IID19106 - "__ negq(r23);", // IID19107 - "__ negq(r24);", // IID19108 - "__ negq(r25);", // IID19109 - "__ negq(r26);", // IID19110 - "__ negq(r27);", // IID19111 - "__ negq(r28);", // IID19112 - "__ negq(r29);", // IID19113 - "__ negq(r30);", // IID19114 - "__ negq(r31);", // IID19115 - "__ notq(rcx);", // IID19116 - "__ notq(rdx);", // IID19117 - "__ notq(rbx);", // IID19118 - "__ notq(r8);", // IID19119 - "__ notq(r9);", // IID19120 - "__ notq(r10);", // IID19121 - "__ notq(r11);", // IID19122 - "__ notq(r12);", // IID19123 - "__ notq(r13);", // IID19124 - "__ notq(r14);", // IID19125 - "__ notq(r15);", // IID19126 - "__ notq(r16);", // IID19127 - "__ notq(r17);", // IID19128 - "__ notq(r18);", // IID19129 - "__ notq(r19);", // IID19130 - "__ notq(r20);", // IID19131 - "__ notq(r21);", // IID19132 - "__ notq(r22);", // IID19133 - "__ notq(r23);", // IID19134 - "__ notq(r24);", // IID19135 - "__ notq(r25);", // IID19136 - "__ notq(r26);", // IID19137 - "__ notq(r27);", // IID19138 - "__ notq(r28);", // IID19139 - "__ notq(r29);", // IID19140 - "__ notq(r30);", // IID19141 - "__ notq(r31);", // IID19142 - "__ rolq(rcx);", // IID19143 - "__ rolq(rdx);", // IID19144 - "__ rolq(rbx);", // IID19145 - "__ rolq(r8);", // IID19146 - "__ rolq(r9);", // IID19147 - "__ rolq(r10);", // IID19148 - "__ rolq(r11);", // IID19149 - "__ rolq(r12);", // IID19150 - "__ rolq(r13);", // IID19151 - "__ rolq(r14);", // IID19152 - "__ rolq(r15);", // IID19153 - "__ rolq(r16);", // IID19154 - "__ rolq(r17);", // IID19155 - "__ rolq(r18);", // IID19156 - "__ rolq(r19);", // IID19157 - "__ rolq(r20);", // IID19158 - "__ rolq(r21);", // IID19159 - "__ rolq(r22);", // IID19160 - "__ rolq(r23);", // IID19161 - "__ rolq(r24);", // IID19162 - "__ rolq(r25);", // IID19163 - "__ rolq(r26);", // IID19164 - "__ rolq(r27);", // IID19165 - "__ rolq(r28);", // IID19166 - "__ rolq(r29);", // IID19167 - "__ rolq(r30);", // IID19168 - "__ rolq(r31);", // IID19169 - "__ rorq(rcx);", // IID19170 - "__ rorq(rdx);", // IID19171 - "__ rorq(rbx);", // IID19172 - "__ rorq(r8);", // IID19173 - "__ rorq(r9);", // IID19174 - "__ rorq(r10);", // IID19175 - "__ rorq(r11);", // IID19176 - "__ rorq(r12);", // IID19177 - "__ rorq(r13);", // IID19178 - "__ rorq(r14);", // IID19179 - "__ rorq(r15);", // IID19180 - "__ rorq(r16);", // IID19181 - "__ rorq(r17);", // IID19182 - "__ rorq(r18);", // IID19183 - "__ rorq(r19);", // IID19184 - "__ rorq(r20);", // IID19185 - "__ rorq(r21);", // IID19186 - "__ rorq(r22);", // IID19187 - "__ rorq(r23);", // IID19188 - "__ rorq(r24);", // IID19189 - "__ rorq(r25);", // IID19190 - "__ rorq(r26);", // IID19191 - "__ rorq(r27);", // IID19192 - "__ rorq(r28);", // IID19193 - "__ rorq(r29);", // IID19194 - "__ rorq(r30);", // IID19195 - "__ rorq(r31);", // IID19196 - "__ sarq(rcx);", // IID19197 - "__ sarq(rdx);", // IID19198 - "__ sarq(rbx);", // IID19199 - "__ sarq(r8);", // IID19200 - "__ sarq(r9);", // IID19201 - "__ sarq(r10);", // IID19202 - "__ sarq(r11);", // IID19203 - "__ sarq(r12);", // IID19204 - "__ sarq(r13);", // IID19205 - "__ sarq(r14);", // IID19206 - "__ sarq(r15);", // IID19207 - "__ sarq(r16);", // IID19208 - "__ sarq(r17);", // IID19209 - "__ sarq(r18);", // IID19210 - "__ sarq(r19);", // IID19211 - "__ sarq(r20);", // IID19212 - "__ sarq(r21);", // IID19213 - "__ sarq(r22);", // IID19214 - "__ sarq(r23);", // IID19215 - "__ sarq(r24);", // IID19216 - "__ sarq(r25);", // IID19217 - "__ sarq(r26);", // IID19218 - "__ sarq(r27);", // IID19219 - "__ sarq(r28);", // IID19220 - "__ sarq(r29);", // IID19221 - "__ sarq(r30);", // IID19222 - "__ sarq(r31);", // IID19223 - "__ salq(rcx);", // IID19224 - "__ salq(rdx);", // IID19225 - "__ salq(rbx);", // IID19226 - "__ salq(r8);", // IID19227 - "__ salq(r9);", // IID19228 - "__ salq(r10);", // IID19229 - "__ salq(r11);", // IID19230 - "__ salq(r12);", // IID19231 - "__ salq(r13);", // IID19232 - "__ salq(r14);", // IID19233 - "__ salq(r15);", // IID19234 - "__ salq(r16);", // IID19235 - "__ salq(r17);", // IID19236 - "__ salq(r18);", // IID19237 - "__ salq(r19);", // IID19238 - "__ salq(r20);", // IID19239 - "__ salq(r21);", // IID19240 - "__ salq(r22);", // IID19241 - "__ salq(r23);", // IID19242 - "__ salq(r24);", // IID19243 - "__ salq(r25);", // IID19244 - "__ salq(r26);", // IID19245 - "__ salq(r27);", // IID19246 - "__ salq(r28);", // IID19247 - "__ salq(r29);", // IID19248 - "__ salq(r30);", // IID19249 - "__ salq(r31);", // IID19250 - "__ shlq(rcx);", // IID19251 - "__ shlq(rdx);", // IID19252 - "__ shlq(rbx);", // IID19253 - "__ shlq(r8);", // IID19254 - "__ shlq(r9);", // IID19255 - "__ shlq(r10);", // IID19256 - "__ shlq(r11);", // IID19257 - "__ shlq(r12);", // IID19258 - "__ shlq(r13);", // IID19259 - "__ shlq(r14);", // IID19260 - "__ shlq(r15);", // IID19261 - "__ shlq(r16);", // IID19262 - "__ shlq(r17);", // IID19263 - "__ shlq(r18);", // IID19264 - "__ shlq(r19);", // IID19265 - "__ shlq(r20);", // IID19266 - "__ shlq(r21);", // IID19267 - "__ shlq(r22);", // IID19268 - "__ shlq(r23);", // IID19269 - "__ shlq(r24);", // IID19270 - "__ shlq(r25);", // IID19271 - "__ shlq(r26);", // IID19272 - "__ shlq(r27);", // IID19273 - "__ shlq(r28);", // IID19274 - "__ shlq(r29);", // IID19275 - "__ shlq(r30);", // IID19276 - "__ shlq(r31);", // IID19277 - "__ shrq(rcx);", // IID19278 - "__ shrq(rdx);", // IID19279 - "__ shrq(rbx);", // IID19280 - "__ shrq(r8);", // IID19281 - "__ shrq(r9);", // IID19282 - "__ shrq(r10);", // IID19283 - "__ shrq(r11);", // IID19284 - "__ shrq(r12);", // IID19285 - "__ shrq(r13);", // IID19286 - "__ shrq(r14);", // IID19287 - "__ shrq(r15);", // IID19288 - "__ shrq(r16);", // IID19289 - "__ shrq(r17);", // IID19290 - "__ shrq(r18);", // IID19291 - "__ shrq(r19);", // IID19292 - "__ shrq(r20);", // IID19293 - "__ shrq(r21);", // IID19294 - "__ shrq(r22);", // IID19295 - "__ shrq(r23);", // IID19296 - "__ shrq(r24);", // IID19297 - "__ shrq(r25);", // IID19298 - "__ shrq(r26);", // IID19299 - "__ shrq(r27);", // IID19300 - "__ shrq(r28);", // IID19301 - "__ shrq(r29);", // IID19302 - "__ shrq(r30);", // IID19303 - "__ shrq(r31);", // IID19304 - "__ incrementq(rcx);", // IID19305 - "__ incrementq(rdx);", // IID19306 - "__ incrementq(rbx);", // IID19307 - "__ incrementq(r8);", // IID19308 - "__ incrementq(r9);", // IID19309 - "__ incrementq(r10);", // IID19310 - "__ incrementq(r11);", // IID19311 - "__ incrementq(r12);", // IID19312 - "__ incrementq(r13);", // IID19313 - "__ incrementq(r14);", // IID19314 - "__ incrementq(r15);", // IID19315 - "__ incrementq(r16);", // IID19316 - "__ incrementq(r17);", // IID19317 - "__ incrementq(r18);", // IID19318 - "__ incrementq(r19);", // IID19319 - "__ incrementq(r20);", // IID19320 - "__ incrementq(r21);", // IID19321 - "__ incrementq(r22);", // IID19322 - "__ incrementq(r23);", // IID19323 - "__ incrementq(r24);", // IID19324 - "__ incrementq(r25);", // IID19325 - "__ incrementq(r26);", // IID19326 - "__ incrementq(r27);", // IID19327 - "__ incrementq(r28);", // IID19328 - "__ incrementq(r29);", // IID19329 - "__ incrementq(r30);", // IID19330 - "__ incrementq(r31);", // IID19331 - "__ decrementq(rcx);", // IID19332 - "__ decrementq(rdx);", // IID19333 - "__ decrementq(rbx);", // IID19334 - "__ decrementq(r8);", // IID19335 - "__ decrementq(r9);", // IID19336 - "__ decrementq(r10);", // IID19337 - "__ decrementq(r11);", // IID19338 - "__ decrementq(r12);", // IID19339 - "__ decrementq(r13);", // IID19340 - "__ decrementq(r14);", // IID19341 - "__ decrementq(r15);", // IID19342 - "__ decrementq(r16);", // IID19343 - "__ decrementq(r17);", // IID19344 - "__ decrementq(r18);", // IID19345 - "__ decrementq(r19);", // IID19346 - "__ decrementq(r20);", // IID19347 - "__ decrementq(r21);", // IID19348 - "__ decrementq(r22);", // IID19349 - "__ decrementq(r23);", // IID19350 - "__ decrementq(r24);", // IID19351 - "__ decrementq(r25);", // IID19352 - "__ decrementq(r26);", // IID19353 - "__ decrementq(r27);", // IID19354 - "__ decrementq(r28);", // IID19355 - "__ decrementq(r29);", // IID19356 - "__ decrementq(r30);", // IID19357 - "__ decrementq(r31);", // IID19358 - "__ pushp(rcx);", // IID19359 - "__ pushp(rdx);", // IID19360 - "__ pushp(rbx);", // IID19361 - "__ pushp(r8);", // IID19362 - "__ pushp(r9);", // IID19363 - "__ pushp(r10);", // IID19364 - "__ pushp(r11);", // IID19365 - "__ pushp(r12);", // IID19366 - "__ pushp(r13);", // IID19367 - "__ pushp(r14);", // IID19368 - "__ pushp(r15);", // IID19369 - "__ pushp(r16);", // IID19370 - "__ pushp(r17);", // IID19371 - "__ pushp(r18);", // IID19372 - "__ pushp(r19);", // IID19373 - "__ pushp(r20);", // IID19374 - "__ pushp(r21);", // IID19375 - "__ pushp(r22);", // IID19376 - "__ pushp(r23);", // IID19377 - "__ pushp(r24);", // IID19378 - "__ pushp(r25);", // IID19379 - "__ pushp(r26);", // IID19380 - "__ pushp(r27);", // IID19381 - "__ pushp(r28);", // IID19382 - "__ pushp(r29);", // IID19383 - "__ pushp(r30);", // IID19384 - "__ pushp(r31);", // IID19385 - "__ popp(rcx);", // IID19386 - "__ popp(rdx);", // IID19387 - "__ popp(rbx);", // IID19388 - "__ popp(r8);", // IID19389 - "__ popp(r9);", // IID19390 - "__ popp(r10);", // IID19391 - "__ popp(r11);", // IID19392 - "__ popp(r12);", // IID19393 - "__ popp(r13);", // IID19394 - "__ popp(r14);", // IID19395 - "__ popp(r15);", // IID19396 - "__ popp(r16);", // IID19397 - "__ popp(r17);", // IID19398 - "__ popp(r18);", // IID19399 - "__ popp(r19);", // IID19400 - "__ popp(r20);", // IID19401 - "__ popp(r21);", // IID19402 - "__ popp(r22);", // IID19403 - "__ popp(r23);", // IID19404 - "__ popp(r24);", // IID19405 - "__ popp(r25);", // IID19406 - "__ popp(r26);", // IID19407 - "__ popp(r27);", // IID19408 - "__ popp(r28);", // IID19409 - "__ popp(r29);", // IID19410 - "__ popp(r30);", // IID19411 - "__ popp(r31);", // IID19412 - "__ call(Address(rcx, +0x73896691));", // IID19413 - "__ call(Address(rdx, rbx, (Address::ScaleFactor)0, +0x3d5e414d));", // IID19414 - "__ call(Address(rbx, r8, (Address::ScaleFactor)1, -0x3e8fdc4a));", // IID19415 - "__ call(Address(r8, r9, (Address::ScaleFactor)3, -0x39ca14ee));", // IID19416 - "__ call(Address(r9, -0x202371bc));", // IID19417 - "__ call(Address(r10, r11, (Address::ScaleFactor)0, +0x20f9c58d));", // IID19418 - "__ call(Address(r11, r12, (Address::ScaleFactor)1, +0x6ff9f913));", // IID19419 - "__ call(Address(r12, r13, (Address::ScaleFactor)1, -0x5cc4c015));", // IID19420 - "__ call(Address(r13, r14, (Address::ScaleFactor)1, -0x5037005a));", // IID19421 - "__ call(Address(r14, r15, (Address::ScaleFactor)0, +0x718d0af7));", // IID19422 - "__ call(Address(r15, r16, (Address::ScaleFactor)3, -0x530d4202));", // IID19423 - "__ call(Address(r16, r17, (Address::ScaleFactor)3, +0x2c99d02c));", // IID19424 - "__ call(Address(r17, -0x66e9c860));", // IID19425 - "__ call(Address(r18, r19, (Address::ScaleFactor)3, -0x1a09dd5f));", // IID19426 - "__ call(Address(r19, r20, (Address::ScaleFactor)1, +0x78fda2f4));", // IID19427 - "__ call(Address(r20, r21, (Address::ScaleFactor)1, -0x3fea9852));", // IID19428 - "__ call(Address(r21, -0x78c57ecb));", // IID19429 - "__ call(Address(r22, -0x1680ab0e));", // IID19430 - "__ call(Address(r23, r24, (Address::ScaleFactor)1, -0xbc465a3));", // IID19431 - "__ call(Address(r24, r25, (Address::ScaleFactor)2, -0x134169be));", // IID19432 - "__ call(Address(r25, r26, (Address::ScaleFactor)1, +0x52f66cf));", // IID19433 - "__ call(Address(r26, r27, (Address::ScaleFactor)3, +0x559548e3));", // IID19434 - "__ call(Address(r27, r28, (Address::ScaleFactor)2, +0x792c674d));", // IID19435 - "__ call(Address(r28, r29, (Address::ScaleFactor)2, +0x56962d6));", // IID19436 - "__ call(Address(r29, r30, (Address::ScaleFactor)2, +0x7eb39991));", // IID19437 - "__ call(Address(r30, r31, (Address::ScaleFactor)3, -0x2353d7bb));", // IID19438 - "__ call(Address(r31, rcx, (Address::ScaleFactor)0, -0x1b4f59ed));", // IID19439 - "__ mulq(Address(rcx, rdx, (Address::ScaleFactor)2, +0x5aba23a3));", // IID19440 - "__ mulq(Address(rdx, +0x2671471e));", // IID19441 - "__ mulq(Address(rbx, r8, (Address::ScaleFactor)1, +0x51cba5ec));", // IID19442 - "__ mulq(Address(r8, r9, (Address::ScaleFactor)3, +0x240db4ad));", // IID19443 - "__ mulq(Address(r9, -0x60ca8573));", // IID19444 - "__ mulq(Address(r10, r11, (Address::ScaleFactor)3, +0x2806341d));", // IID19445 - "__ mulq(Address(r11, r12, (Address::ScaleFactor)0, -0x116b370));", // IID19446 - "__ mulq(Address(r12, r13, (Address::ScaleFactor)3, +0x5500f0e6));", // IID19447 - "__ mulq(Address(r13, r14, (Address::ScaleFactor)1, -0x28cb487a));", // IID19448 - "__ mulq(Address(r14, r15, (Address::ScaleFactor)0, -0x66d34527));", // IID19449 - "__ mulq(Address(r15, +0xa18ebc4));", // IID19450 - "__ mulq(Address(r16, r17, (Address::ScaleFactor)1, -0x46674f5d));", // IID19451 - "__ mulq(Address(r17, r18, (Address::ScaleFactor)0, -0x6bf2e6cf));", // IID19452 - "__ mulq(Address(r18, r19, (Address::ScaleFactor)1, +0xf40c941));", // IID19453 - "__ mulq(Address(r19, +0x157342fe));", // IID19454 - "__ mulq(Address(r20, r21, (Address::ScaleFactor)3, +0x5314d602));", // IID19455 - "__ mulq(Address(r21, +0x614e8c5e));", // IID19456 - "__ mulq(Address(r22, r23, (Address::ScaleFactor)3, -0x7351dc9e));", // IID19457 - "__ mulq(Address(r23, r24, (Address::ScaleFactor)2, -0x693b95b9));", // IID19458 - "__ mulq(Address(r24, r25, (Address::ScaleFactor)1, -0x484e439f));", // IID19459 - "__ mulq(Address(r25, r26, (Address::ScaleFactor)0, -0x7ec4854c));", // IID19460 - "__ mulq(Address(r26, r27, (Address::ScaleFactor)0, -0x69c2d0cc));", // IID19461 - "__ mulq(Address(r27, r28, (Address::ScaleFactor)2, +0x241a59f3));", // IID19462 - "__ mulq(Address(r28, r29, (Address::ScaleFactor)1, -0x62679640));", // IID19463 - "__ mulq(Address(r29, r30, (Address::ScaleFactor)1, +0x50aabae8));", // IID19464 - "__ mulq(Address(r30, r31, (Address::ScaleFactor)1, +0x4d21c6a5));", // IID19465 - "__ mulq(Address(r31, -0x3412509d));", // IID19466 - "__ negq(Address(rcx, rdx, (Address::ScaleFactor)2, +0x45ea310f));", // IID19467 - "__ negq(Address(rdx, rbx, (Address::ScaleFactor)1, +0x42254b77));", // IID19468 - "__ negq(Address(rbx, r8, (Address::ScaleFactor)3, -0x7e4379b8));", // IID19469 - "__ negq(Address(r8, -0x5ea952c7));", // IID19470 - "__ negq(Address(r9, r10, (Address::ScaleFactor)3, +0x44b7e725));", // IID19471 - "__ negq(Address(r10, r11, (Address::ScaleFactor)2, +0x345897e2));", // IID19472 - "__ negq(Address(r11, +0x2f7f8c4b));", // IID19473 - "__ negq(Address(r12, r13, (Address::ScaleFactor)2, -0x47accdfc));", // IID19474 - "__ negq(Address(r13, r14, (Address::ScaleFactor)3, +0x15644f7e));", // IID19475 - "__ negq(Address(r14, +0x24745622));", // IID19476 - "__ negq(Address(r15, +0x2cb05f35));", // IID19477 - "__ negq(Address(r16, r17, (Address::ScaleFactor)1, +0x6733f567));", // IID19478 - "__ negq(Address(r17, r18, (Address::ScaleFactor)2, +0x3ce2d75a));", // IID19479 - "__ negq(Address(r18, r19, (Address::ScaleFactor)3, -0x246a3f41));", // IID19480 - "__ negq(Address(r19, r20, (Address::ScaleFactor)1, -0x166f582f));", // IID19481 - "__ negq(Address(r20, r21, (Address::ScaleFactor)3, -0x572b9b3b));", // IID19482 - "__ negq(Address(r21, r22, (Address::ScaleFactor)1, -0x239088a8));", // IID19483 - "__ negq(Address(r22, +0x404818a2));", // IID19484 - "__ negq(Address(r23, r24, (Address::ScaleFactor)0, +0x329865cb));", // IID19485 - "__ negq(Address(r24, r25, (Address::ScaleFactor)3, -0x5f93433f));", // IID19486 - "__ negq(Address(r25, r26, (Address::ScaleFactor)1, +0x27388e72));", // IID19487 - "__ negq(Address(r26, r27, (Address::ScaleFactor)2, -0x6c2533bd));", // IID19488 - "__ negq(Address(r27, r28, (Address::ScaleFactor)3, +0x778cab60));", // IID19489 - "__ negq(Address(r28, r29, (Address::ScaleFactor)0, -0x7fc215b7));", // IID19490 - "__ negq(Address(r29, r30, (Address::ScaleFactor)3, -0x7f3155a4));", // IID19491 - "__ negq(Address(r30, +0x604e737f));", // IID19492 - "__ negq(Address(r31, +0x68a2beb7));", // IID19493 - "__ sarq(Address(rcx, rdx, (Address::ScaleFactor)0, -0x749dc82f));", // IID19494 - "__ sarq(Address(rdx, rbx, (Address::ScaleFactor)1, -0xdf9f52));", // IID19495 - "__ sarq(Address(rbx, r8, (Address::ScaleFactor)0, -0x7f5677ae));", // IID19496 - "__ sarq(Address(r8, r9, (Address::ScaleFactor)2, -0x15ad096d));", // IID19497 - "__ sarq(Address(r9, r10, (Address::ScaleFactor)1, +0x6cec800b));", // IID19498 - "__ sarq(Address(r10, r11, (Address::ScaleFactor)3, -0x60bedc93));", // IID19499 - "__ sarq(Address(r11, +0x2c37339d));", // IID19500 - "__ sarq(Address(r12, r13, (Address::ScaleFactor)3, -0x70cbed37));", // IID19501 - "__ sarq(Address(r13, r14, (Address::ScaleFactor)3, -0x5e6603e8));", // IID19502 - "__ sarq(Address(r14, r15, (Address::ScaleFactor)3, +0x6e02b1c8));", // IID19503 - "__ sarq(Address(r15, r16, (Address::ScaleFactor)3, +0x530d887e));", // IID19504 - "__ sarq(Address(r16, r17, (Address::ScaleFactor)0, -0x401115e5));", // IID19505 - "__ sarq(Address(r17, r18, (Address::ScaleFactor)3, -0x70e80732));", // IID19506 - "__ sarq(Address(r18, r19, (Address::ScaleFactor)2, -0x5a20a31d));", // IID19507 - "__ sarq(Address(r19, r20, (Address::ScaleFactor)1, -0x450a75a5));", // IID19508 - "__ sarq(Address(r20, r21, (Address::ScaleFactor)0, +0x2f2d27af));", // IID19509 - "__ sarq(Address(r21, r22, (Address::ScaleFactor)2, +0xd4294e5));", // IID19510 - "__ sarq(Address(r22, r23, (Address::ScaleFactor)0, -0xd6dea8e));", // IID19511 - "__ sarq(Address(r23, r24, (Address::ScaleFactor)1, -0xfd2da83));", // IID19512 - "__ sarq(Address(r24, r25, (Address::ScaleFactor)0, -0x32de02c5));", // IID19513 - "__ sarq(Address(r25, r26, (Address::ScaleFactor)2, +0x707a771d));", // IID19514 - "__ sarq(Address(r26, +0x2870a16e));", // IID19515 - "__ sarq(Address(r27, r28, (Address::ScaleFactor)1, +0x6e1fbeb4));", // IID19516 - "__ sarq(Address(r28, r29, (Address::ScaleFactor)3, +0x181280e));", // IID19517 - "__ sarq(Address(r29, r30, (Address::ScaleFactor)1, +0x36ef097e));", // IID19518 - "__ sarq(Address(r30, r31, (Address::ScaleFactor)3, +0x3b736b2c));", // IID19519 - "__ sarq(Address(r31, rcx, (Address::ScaleFactor)1, -0x4708198f));", // IID19520 - "__ salq(Address(rcx, +0x5908cd50));", // IID19521 - "__ salq(Address(rdx, rbx, (Address::ScaleFactor)2, -0x74664c13));", // IID19522 - "__ salq(Address(rbx, +0x1f4bd5d2));", // IID19523 - "__ salq(Address(r8, +0x46e2d2d2));", // IID19524 - "__ salq(Address(r9, r10, (Address::ScaleFactor)3, +0x3681859c));", // IID19525 - "__ salq(Address(r10, +0x35d857db));", // IID19526 - "__ salq(Address(r11, -0x3ef05278));", // IID19527 - "__ salq(Address(r12, r13, (Address::ScaleFactor)3, -0x5cf5916f));", // IID19528 - "__ salq(Address(r13, -0xdc0d796));", // IID19529 - "__ salq(Address(r14, r15, (Address::ScaleFactor)0, +0x6e27129));", // IID19530 - "__ salq(Address(r15, r16, (Address::ScaleFactor)2, -0x560b6ae2));", // IID19531 - "__ salq(Address(r16, r17, (Address::ScaleFactor)3, -0x6e33dd80));", // IID19532 - "__ salq(Address(r17, r18, (Address::ScaleFactor)2, +0x565da795));", // IID19533 - "__ salq(Address(r18, r19, (Address::ScaleFactor)2, +0x5d470492));", // IID19534 - "__ salq(Address(r19, r20, (Address::ScaleFactor)3, +0x77e52989));", // IID19535 - "__ salq(Address(r20, +0x2d4f8dc1));", // IID19536 - "__ salq(Address(r21, r22, (Address::ScaleFactor)2, -0x53a6b803));", // IID19537 - "__ salq(Address(r22, r23, (Address::ScaleFactor)2, -0x36a73298));", // IID19538 - "__ salq(Address(r23, r24, (Address::ScaleFactor)2, +0x5c50f119));", // IID19539 - "__ salq(Address(r24, r25, (Address::ScaleFactor)3, +0x27310ea9));", // IID19540 - "__ salq(Address(r25, r26, (Address::ScaleFactor)3, -0x43fa11e));", // IID19541 - "__ salq(Address(r26, r27, (Address::ScaleFactor)1, +0x41d95fef));", // IID19542 - "__ salq(Address(r27, r28, (Address::ScaleFactor)1, +0x21342ef));", // IID19543 - "__ salq(Address(r28, r29, (Address::ScaleFactor)0, -0x46acfa30));", // IID19544 - "__ salq(Address(r29, r30, (Address::ScaleFactor)1, -0x78c86060));", // IID19545 - "__ salq(Address(r30, r31, (Address::ScaleFactor)3, -0x58294893));", // IID19546 - "__ salq(Address(r31, rcx, (Address::ScaleFactor)0, -0x619db1d6));", // IID19547 - "__ shrq(Address(rcx, rdx, (Address::ScaleFactor)0, -0x3abd3ed));", // IID19548 - "__ shrq(Address(rdx, rbx, (Address::ScaleFactor)2, -0x321c1bb9));", // IID19549 - "__ shrq(Address(rbx, r8, (Address::ScaleFactor)0, +0x34021b28));", // IID19550 - "__ shrq(Address(r8, r9, (Address::ScaleFactor)0, +0x4350545f));", // IID19551 - "__ shrq(Address(r9, -0x23ece501));", // IID19552 - "__ shrq(Address(r10, r11, (Address::ScaleFactor)0, +0x44a3c11e));", // IID19553 - "__ shrq(Address(r11, r12, (Address::ScaleFactor)3, -0x2a04429f));", // IID19554 - "__ shrq(Address(r12, r13, (Address::ScaleFactor)0, +0x78e813d2));", // IID19555 - "__ shrq(Address(r13, r14, (Address::ScaleFactor)0, -0x3999b2f9));", // IID19556 - "__ shrq(Address(r14, +0x57ad0243));", // IID19557 - "__ shrq(Address(r15, r16, (Address::ScaleFactor)1, -0x3e45d896));", // IID19558 - "__ shrq(Address(r16, r17, (Address::ScaleFactor)2, -0x45c07299));", // IID19559 - "__ shrq(Address(r17, +0x6137c185));", // IID19560 - "__ shrq(Address(r18, r19, (Address::ScaleFactor)2, -0x5f44fee8));", // IID19561 - "__ shrq(Address(r19, -0x3be231f7));", // IID19562 - "__ shrq(Address(r20, r21, (Address::ScaleFactor)1, -0x64a1e976));", // IID19563 - "__ shrq(Address(r21, r22, (Address::ScaleFactor)0, -0x92f4db5));", // IID19564 - "__ shrq(Address(r22, r23, (Address::ScaleFactor)2, -0xae713d9));", // IID19565 - "__ shrq(Address(r23, r24, (Address::ScaleFactor)3, -0x787ff7f5));", // IID19566 - "__ shrq(Address(r24, r25, (Address::ScaleFactor)1, -0xa2b7c16));", // IID19567 - "__ shrq(Address(r25, -0x1931cb13));", // IID19568 - "__ shrq(Address(r26, -0x7cbcb3ba));", // IID19569 - "__ shrq(Address(r27, r28, (Address::ScaleFactor)0, -0x50dd3a5));", // IID19570 - "__ shrq(Address(r28, -0x27fecf7f));", // IID19571 - "__ shrq(Address(r29, r30, (Address::ScaleFactor)3, +0x18f7a28));", // IID19572 - "__ shrq(Address(r30, r31, (Address::ScaleFactor)1, -0x34012bf5));", // IID19573 - "__ shrq(Address(r31, -0x6499bec3));", // IID19574 - "__ incrementq(Address(rcx, rdx, (Address::ScaleFactor)0, +0x68a69790));", // IID19575 - "__ incrementq(Address(rdx, +0x70008e86));", // IID19576 - "__ incrementq(Address(rbx, r8, (Address::ScaleFactor)0, -0x60b7c32e));", // IID19577 - "__ incrementq(Address(r8, r9, (Address::ScaleFactor)0, -0x1c534506));", // IID19578 - "__ incrementq(Address(r9, r10, (Address::ScaleFactor)2, +0x6f3dea3));", // IID19579 - "__ incrementq(Address(r10, r11, (Address::ScaleFactor)0, +0x2fd79a19));", // IID19580 - "__ incrementq(Address(r11, r12, (Address::ScaleFactor)0, +0x67e8464a));", // IID19581 - "__ incrementq(Address(r12, r13, (Address::ScaleFactor)2, -0x1c8d22a5));", // IID19582 - "__ incrementq(Address(r13, r14, (Address::ScaleFactor)3, -0x293300ca));", // IID19583 - "__ incrementq(Address(r14, r15, (Address::ScaleFactor)0, +0x2f8db7a6));", // IID19584 - "__ incrementq(Address(r15, r16, (Address::ScaleFactor)2, -0x62dc023d));", // IID19585 - "__ incrementq(Address(r16, r17, (Address::ScaleFactor)3, -0x1dd34c9b));", // IID19586 - "__ incrementq(Address(r17, r18, (Address::ScaleFactor)3, +0x61eec42d));", // IID19587 - "__ incrementq(Address(r18, +0x5eeb1cf));", // IID19588 - "__ incrementq(Address(r19, r20, (Address::ScaleFactor)1, -0x53d8bdbb));", // IID19589 - "__ incrementq(Address(r20, -0x3d8542c4));", // IID19590 - "__ incrementq(Address(r21, -0x543c45fa));", // IID19591 - "__ incrementq(Address(r22, r23, (Address::ScaleFactor)0, -0x512e6b33));", // IID19592 - "__ incrementq(Address(r23, r24, (Address::ScaleFactor)2, -0x8bc8ffa));", // IID19593 - "__ incrementq(Address(r24, r25, (Address::ScaleFactor)3, +0x37b486cb));", // IID19594 - "__ incrementq(Address(r25, r26, (Address::ScaleFactor)3, +0x7c8743b));", // IID19595 - "__ incrementq(Address(r26, +0x1bb33459));", // IID19596 - "__ incrementq(Address(r27, r28, (Address::ScaleFactor)1, -0x59d446a6));", // IID19597 - "__ incrementq(Address(r28, r29, (Address::ScaleFactor)1, -0x690e5b84));", // IID19598 - "__ incrementq(Address(r29, r30, (Address::ScaleFactor)0, -0x4b30e885));", // IID19599 - "__ incrementq(Address(r30, r31, (Address::ScaleFactor)3, -0x2fe2d410));", // IID19600 - "__ incrementq(Address(r31, -0x61d69a91));", // IID19601 - "__ decrementq(Address(rcx, -0x7a281ac7));", // IID19602 - "__ decrementq(Address(rdx, rbx, (Address::ScaleFactor)2, -0x5866e07f));", // IID19603 - "__ decrementq(Address(rbx, +0x4a895937));", // IID19604 - "__ decrementq(Address(r8, -0x2cd5a21));", // IID19605 - "__ decrementq(Address(r9, r10, (Address::ScaleFactor)0, -0xe253bff));", // IID19606 - "__ decrementq(Address(r10, -0x3443a4ba));", // IID19607 - "__ decrementq(Address(r11, r12, (Address::ScaleFactor)1, -0x2a74b7ff));", // IID19608 - "__ decrementq(Address(r12, r13, (Address::ScaleFactor)1, -0x726d885a));", // IID19609 - "__ decrementq(Address(r13, r14, (Address::ScaleFactor)2, +0x34b00f7f));", // IID19610 - "__ decrementq(Address(r14, r15, (Address::ScaleFactor)0, +0x18322b97));", // IID19611 - "__ decrementq(Address(r15, r16, (Address::ScaleFactor)2, -0x1b8fa4f));", // IID19612 - "__ decrementq(Address(r16, r17, (Address::ScaleFactor)2, -0x3b9aad17));", // IID19613 - "__ decrementq(Address(r17, r18, (Address::ScaleFactor)3, -0x6f28cceb));", // IID19614 - "__ decrementq(Address(r18, r19, (Address::ScaleFactor)1, +0x18184771));", // IID19615 - "__ decrementq(Address(r19, -0x21ceb2d3));", // IID19616 - "__ decrementq(Address(r20, -0x43b5b338));", // IID19617 - "__ decrementq(Address(r21, +0x1bf91896));", // IID19618 - "__ decrementq(Address(r22, r23, (Address::ScaleFactor)0, +0x20b0e9f2));", // IID19619 - "__ decrementq(Address(r23, r24, (Address::ScaleFactor)0, -0x4ec01539));", // IID19620 - "__ decrementq(Address(r24, r25, (Address::ScaleFactor)2, -0x58064c04));", // IID19621 - "__ decrementq(Address(r25, r26, (Address::ScaleFactor)3, -0x16c408a0));", // IID19622 - "__ decrementq(Address(r26, r27, (Address::ScaleFactor)0, -0x7d24eac1));", // IID19623 - "__ decrementq(Address(r27, r28, (Address::ScaleFactor)2, +0x6ed65429));", // IID19624 - "__ decrementq(Address(r28, r29, (Address::ScaleFactor)1, -0x7e6a62bc));", // IID19625 - "__ decrementq(Address(r29, r30, (Address::ScaleFactor)1, +0x1d9014f0));", // IID19626 - "__ decrementq(Address(r30, r31, (Address::ScaleFactor)1, -0x55d0be12));", // IID19627 - "__ decrementq(Address(r31, rcx, (Address::ScaleFactor)3, +0x7386e774));", // IID19628 - "__ imulq(rcx, Address(rdx, rbx, (Address::ScaleFactor)2, +0x73e006f0), 1);", // IID19629 - "__ imulq(rcx, Address(rdx, rbx, (Address::ScaleFactor)1, -0x17ea86b8), 16);", // IID19630 - "__ imulq(rcx, Address(rdx, rbx, (Address::ScaleFactor)1, +0x366c0542), 256);", // IID19631 - "__ imulq(rcx, Address(rdx, rbx, (Address::ScaleFactor)0, +0x1e6b6680), 4096);", // IID19632 - "__ imulq(rcx, Address(rdx, rbx, (Address::ScaleFactor)2, -0x6b2cdaca), 65536);", // IID19633 - "__ imulq(rcx, Address(rdx, -0x22bd049f), 1048576);", // IID19634 - "__ imulq(rcx, Address(rdx, rbx, (Address::ScaleFactor)2, -0x414aac15), 16777216);", // IID19635 - "__ imulq(rcx, Address(rdx, rbx, (Address::ScaleFactor)2, +0xbc420cb), 268435456);", // IID19636 - "__ imulq(rdx, Address(rbx, r8, (Address::ScaleFactor)0, +0x100d9aef), 1);", // IID19637 - "__ imulq(rdx, Address(rbx, -0x74ee35d4), 16);", // IID19638 - "__ imulq(rdx, Address(rbx, r8, (Address::ScaleFactor)0, -0x3bf8fc1a), 256);", // IID19639 - "__ imulq(rdx, Address(rbx, r8, (Address::ScaleFactor)2, +0x7947840a), 4096);", // IID19640 - "__ imulq(rdx, Address(rbx, r8, (Address::ScaleFactor)3, -0x2cd86489), 65536);", // IID19641 - "__ imulq(rdx, Address(rbx, r8, (Address::ScaleFactor)0, +0x2ce7ffef), 1048576);", // IID19642 - "__ imulq(rdx, Address(rbx, r8, (Address::ScaleFactor)0, -0x64d9191b), 16777216);", // IID19643 - "__ imulq(rdx, Address(rbx, r8, (Address::ScaleFactor)3, +0x2e82738a), 268435456);", // IID19644 - "__ imulq(rbx, Address(r8, r9, (Address::ScaleFactor)3, +0x2981b09f), 1);", // IID19645 - "__ imulq(rbx, Address(r8, r9, (Address::ScaleFactor)3, +0x369b1e2f), 16);", // IID19646 - "__ imulq(rbx, Address(r8, r9, (Address::ScaleFactor)0, +0x4eb51b3f), 256);", // IID19647 - "__ imulq(rbx, Address(r8, +0x1e5db2a9), 4096);", // IID19648 - "__ imulq(rbx, Address(r8, r9, (Address::ScaleFactor)3, -0x8814dd4), 65536);", // IID19649 - "__ imulq(rbx, Address(r8, r9, (Address::ScaleFactor)2, -0x21b03129), 1048576);", // IID19650 - "__ imulq(rbx, Address(r8, r9, (Address::ScaleFactor)3, +0x684c3dda), 16777216);", // IID19651 - "__ imulq(rbx, Address(r8, r9, (Address::ScaleFactor)1, -0x46bf275d), 268435456);", // IID19652 - "__ imulq(r8, Address(r9, r10, (Address::ScaleFactor)1, +0x27693abf), 1);", // IID19653 - "__ imulq(r8, Address(r9, r10, (Address::ScaleFactor)2, -0x23955cc3), 16);", // IID19654 - "__ imulq(r8, Address(r9, -0x48452e0e), 256);", // IID19655 - "__ imulq(r8, Address(r9, r10, (Address::ScaleFactor)3, +0x4767b82a), 4096);", // IID19656 - "__ imulq(r8, Address(r9, r10, (Address::ScaleFactor)1, -0x7c493183), 65536);", // IID19657 - "__ imulq(r8, Address(r9, r10, (Address::ScaleFactor)2, +0x3859a646), 1048576);", // IID19658 - "__ imulq(r8, Address(r9, r10, (Address::ScaleFactor)1, +0x3a276db4), 16777216);", // IID19659 - "__ imulq(r8, Address(r9, r10, (Address::ScaleFactor)0, +0x47bc53b8), 268435456);", // IID19660 - "__ imulq(r9, Address(r10, +0xb819796), 1);", // IID19661 - "__ imulq(r9, Address(r10, r11, (Address::ScaleFactor)1, -0x44674ac3), 16);", // IID19662 - "__ imulq(r9, Address(r10, r11, (Address::ScaleFactor)2, -0x78484875), 256);", // IID19663 - "__ imulq(r9, Address(r10, r11, (Address::ScaleFactor)3, -0x25373147), 4096);", // IID19664 - "__ imulq(r9, Address(r10, r11, (Address::ScaleFactor)2, +0x5f2f6119), 65536);", // IID19665 - "__ imulq(r9, Address(r10, r11, (Address::ScaleFactor)1, +0x72a2c2a0), 1048576);", // IID19666 - "__ imulq(r9, Address(r10, r11, (Address::ScaleFactor)1, -0x1d6d8bd5), 16777216);", // IID19667 - "__ imulq(r9, Address(r10, r11, (Address::ScaleFactor)3, -0x53861d9a), 268435456);", // IID19668 - "__ imulq(r10, Address(r11, r12, (Address::ScaleFactor)1, +0x67f73b99), 1);", // IID19669 - "__ imulq(r10, Address(r11, r12, (Address::ScaleFactor)0, +0x10b90145), 16);", // IID19670 - "__ imulq(r10, Address(r11, r12, (Address::ScaleFactor)2, -0xd364704), 256);", // IID19671 - "__ imulq(r10, Address(r11, r12, (Address::ScaleFactor)0, +0x18dd82f9), 4096);", // IID19672 - "__ imulq(r10, Address(r11, r12, (Address::ScaleFactor)1, +0x21f1cdf0), 65536);", // IID19673 - "__ imulq(r10, Address(r11, r12, (Address::ScaleFactor)0, +0x2e08db4e), 1048576);", // IID19674 - "__ imulq(r10, Address(r11, r12, (Address::ScaleFactor)3, +0x5956fe33), 16777216);", // IID19675 - "__ imulq(r10, Address(r11, -0x49dca84e), 268435456);", // IID19676 - "__ imulq(r11, Address(r12, r13, (Address::ScaleFactor)2, +0x54933608), 1);", // IID19677 - "__ imulq(r11, Address(r12, r13, (Address::ScaleFactor)3, +0x48bb278a), 16);", // IID19678 - "__ imulq(r11, Address(r12, -0x245692e), 256);", // IID19679 - "__ imulq(r11, Address(r12, -0x4006968a), 4096);", // IID19680 - "__ imulq(r11, Address(r12, r13, (Address::ScaleFactor)1, +0x6cfad214), 65536);", // IID19681 - "__ imulq(r11, Address(r12, r13, (Address::ScaleFactor)3, +0x4512b7a1), 1048576);", // IID19682 - "__ imulq(r11, Address(r12, r13, (Address::ScaleFactor)0, -0x4f6ad229), 16777216);", // IID19683 - "__ imulq(r11, Address(r12, r13, (Address::ScaleFactor)2, -0x706b1d57), 268435456);", // IID19684 - "__ imulq(r12, Address(r13, r14, (Address::ScaleFactor)1, -0x25730a4d), 1);", // IID19685 - "__ imulq(r12, Address(r13, r14, (Address::ScaleFactor)3, +0x2b1ffd9e), 16);", // IID19686 - "__ imulq(r12, Address(r13, r14, (Address::ScaleFactor)2, +0x119ae004), 256);", // IID19687 - "__ imulq(r12, Address(r13, -0xd403831), 4096);", // IID19688 - "__ imulq(r12, Address(r13, r14, (Address::ScaleFactor)3, +0x369b188a), 65536);", // IID19689 - "__ imulq(r12, Address(r13, r14, (Address::ScaleFactor)3, +0x30ca636f), 1048576);", // IID19690 - "__ imulq(r12, Address(r13, r14, (Address::ScaleFactor)1, +0x4f7a5d5), 16777216);", // IID19691 - "__ imulq(r12, Address(r13, r14, (Address::ScaleFactor)3, -0x1c528a90), 268435456);", // IID19692 - "__ imulq(r13, Address(r14, r15, (Address::ScaleFactor)3, -0xf8072b0), 1);", // IID19693 - "__ imulq(r13, Address(r14, r15, (Address::ScaleFactor)0, -0x605dd55c), 16);", // IID19694 - "__ imulq(r13, Address(r14, r15, (Address::ScaleFactor)2, +0x62106fd5), 256);", // IID19695 - "__ imulq(r13, Address(r14, r15, (Address::ScaleFactor)3, +0x441942d0), 4096);", // IID19696 - "__ imulq(r13, Address(r14, r15, (Address::ScaleFactor)3, -0x537e5d5b), 65536);", // IID19697 - "__ imulq(r13, Address(r14, r15, (Address::ScaleFactor)0, -0x3a025f81), 1048576);", // IID19698 - "__ imulq(r13, Address(r14, r15, (Address::ScaleFactor)0, -0x2fa80c45), 16777216);", // IID19699 - "__ imulq(r13, Address(r14, r15, (Address::ScaleFactor)1, +0x4f311e3e), 268435456);", // IID19700 - "__ imulq(r14, Address(r15, +0x3a30dbb6), 1);", // IID19701 - "__ imulq(r14, Address(r15, r16, (Address::ScaleFactor)0, +0x461f22bc), 16);", // IID19702 - "__ imulq(r14, Address(r15, r16, (Address::ScaleFactor)1, +0x3b6862dd), 256);", // IID19703 - "__ imulq(r14, Address(r15, r16, (Address::ScaleFactor)2, +0x7b411aff), 4096);", // IID19704 - "__ imulq(r14, Address(r15, r16, (Address::ScaleFactor)0, +0x4bc5eae7), 65536);", // IID19705 - "__ imulq(r14, Address(r15, r16, (Address::ScaleFactor)2, +0x57b0e91), 1048576);", // IID19706 - "__ imulq(r14, Address(r15, r16, (Address::ScaleFactor)0, +0x7cacd795), 16777216);", // IID19707 - "__ imulq(r14, Address(r15, -0x1aeb7d94), 268435456);", // IID19708 - "__ imulq(r15, Address(r16, r17, (Address::ScaleFactor)3, -0x6a88263a), 1);", // IID19709 - "__ imulq(r15, Address(r16, r17, (Address::ScaleFactor)2, +0x1690d896), 16);", // IID19710 - "__ imulq(r15, Address(r16, r17, (Address::ScaleFactor)3, -0x4fb67afa), 256);", // IID19711 - "__ imulq(r15, Address(r16, r17, (Address::ScaleFactor)3, +0x30ffd274), 4096);", // IID19712 - "__ imulq(r15, Address(r16, r17, (Address::ScaleFactor)1, +0x3575836f), 65536);", // IID19713 - "__ imulq(r15, Address(r16, r17, (Address::ScaleFactor)0, +0x9f09fcd), 1048576);", // IID19714 - "__ imulq(r15, Address(r16, r17, (Address::ScaleFactor)1, -0x1d6201a3), 16777216);", // IID19715 - "__ imulq(r15, Address(r16, r17, (Address::ScaleFactor)3, +0x6fb266f2), 268435456);", // IID19716 - "__ imulq(r16, Address(r17, r18, (Address::ScaleFactor)0, -0x1bf4aac2), 1);", // IID19717 - "__ imulq(r16, Address(r17, r18, (Address::ScaleFactor)2, -0x704c3c5d), 16);", // IID19718 - "__ imulq(r16, Address(r17, r18, (Address::ScaleFactor)0, -0x334fb589), 256);", // IID19719 - "__ imulq(r16, Address(r17, r18, (Address::ScaleFactor)3, +0x5fb1f0bd), 4096);", // IID19720 - "__ imulq(r16, Address(r17, r18, (Address::ScaleFactor)2, -0x37e52c85), 65536);", // IID19721 - "__ imulq(r16, Address(r17, r18, (Address::ScaleFactor)1, +0x70a66cb9), 1048576);", // IID19722 - "__ imulq(r16, Address(r17, r18, (Address::ScaleFactor)0, -0x6a5bf63a), 16777216);", // IID19723 - "__ imulq(r16, Address(r17, r18, (Address::ScaleFactor)0, -0x35f7ed33), 268435456);", // IID19724 - "__ imulq(r17, Address(r18, r19, (Address::ScaleFactor)0, -0x56ed1578), 1);", // IID19725 - "__ imulq(r17, Address(r18, r19, (Address::ScaleFactor)3, +0x2163c04c), 16);", // IID19726 - "__ imulq(r17, Address(r18, r19, (Address::ScaleFactor)1, -0x2da4c145), 256);", // IID19727 - "__ imulq(r17, Address(r18, r19, (Address::ScaleFactor)1, -0x2e6ace26), 4096);", // IID19728 - "__ imulq(r17, Address(r18, r19, (Address::ScaleFactor)3, -0x3aee3474), 65536);", // IID19729 - "__ imulq(r17, Address(r18, r19, (Address::ScaleFactor)3, +0x72233503), 1048576);", // IID19730 - "__ imulq(r17, Address(r18, r19, (Address::ScaleFactor)2, -0x4ada94b7), 16777216);", // IID19731 - "__ imulq(r17, Address(r18, r19, (Address::ScaleFactor)1, -0x3237725f), 268435456);", // IID19732 - "__ imulq(r18, Address(r19, r20, (Address::ScaleFactor)2, +0x41f36fcf), 1);", // IID19733 - "__ imulq(r18, Address(r19, r20, (Address::ScaleFactor)1, +0x3d8addf2), 16);", // IID19734 - "__ imulq(r18, Address(r19, r20, (Address::ScaleFactor)1, +0x5bb711a3), 256);", // IID19735 - "__ imulq(r18, Address(r19, r20, (Address::ScaleFactor)2, +0x4b03a0fb), 4096);", // IID19736 - "__ imulq(r18, Address(r19, r20, (Address::ScaleFactor)2, -0x59d85bcc), 65536);", // IID19737 - "__ imulq(r18, Address(r19, +0xe777d36), 1048576);", // IID19738 - "__ imulq(r18, Address(r19, r20, (Address::ScaleFactor)2, +0x103970b0), 16777216);", // IID19739 - "__ imulq(r18, Address(r19, +0x6a628a83), 268435456);", // IID19740 - "__ imulq(r19, Address(r20, r21, (Address::ScaleFactor)1, -0x69a47cd1), 1);", // IID19741 - "__ imulq(r19, Address(r20, r21, (Address::ScaleFactor)0, +0x32060815), 16);", // IID19742 - "__ imulq(r19, Address(r20, +0x3dff2281), 256);", // IID19743 - "__ imulq(r19, Address(r20, r21, (Address::ScaleFactor)3, -0x3e79f073), 4096);", // IID19744 - "__ imulq(r19, Address(r20, r21, (Address::ScaleFactor)1, +0x138cfd42), 65536);", // IID19745 - "__ imulq(r19, Address(r20, r21, (Address::ScaleFactor)2, +0x630b1bde), 1048576);", // IID19746 - "__ imulq(r19, Address(r20, r21, (Address::ScaleFactor)1, +0x7e9a3a5), 16777216);", // IID19747 - "__ imulq(r19, Address(r20, r21, (Address::ScaleFactor)2, +0x3b6aeacc), 268435456);", // IID19748 - "__ imulq(r20, Address(r21, r22, (Address::ScaleFactor)2, +0x4fd4a65c), 1);", // IID19749 - "__ imulq(r20, Address(r21, r22, (Address::ScaleFactor)0, +0x5c17493), 16);", // IID19750 - "__ imulq(r20, Address(r21, r22, (Address::ScaleFactor)1, +0x296c2263), 256);", // IID19751 - "__ imulq(r20, Address(r21, -0x68ff96a9), 4096);", // IID19752 - "__ imulq(r20, Address(r21, +0x6b8d15a0), 65536);", // IID19753 - "__ imulq(r20, Address(r21, r22, (Address::ScaleFactor)3, +0x7605ec99), 1048576);", // IID19754 - "__ imulq(r20, Address(r21, r22, (Address::ScaleFactor)0, -0x3dbdfa0), 16777216);", // IID19755 - "__ imulq(r20, Address(r21, r22, (Address::ScaleFactor)1, +0x6e19975c), 268435456);", // IID19756 - "__ imulq(r21, Address(r22, r23, (Address::ScaleFactor)1, +0x5f38bb94), 1);", // IID19757 - "__ imulq(r21, Address(r22, r23, (Address::ScaleFactor)1, +0x326d812f), 16);", // IID19758 - "__ imulq(r21, Address(r22, +0x72bdb1d5), 256);", // IID19759 - "__ imulq(r21, Address(r22, r23, (Address::ScaleFactor)1, +0x74475fcc), 4096);", // IID19760 - "__ imulq(r21, Address(r22, -0xd1b65d2), 65536);", // IID19761 - "__ imulq(r21, Address(r22, r23, (Address::ScaleFactor)1, -0x3aa1cdf2), 1048576);", // IID19762 - "__ imulq(r21, Address(r22, r23, (Address::ScaleFactor)0, -0xe70e0bd), 16777216);", // IID19763 - "__ imulq(r21, Address(r22, r23, (Address::ScaleFactor)3, +0xc7bd8eb), 268435456);", // IID19764 - "__ imulq(r22, Address(r23, r24, (Address::ScaleFactor)1, +0x286286c7), 1);", // IID19765 - "__ imulq(r22, Address(r23, r24, (Address::ScaleFactor)0, -0x64050376), 16);", // IID19766 - "__ imulq(r22, Address(r23, r24, (Address::ScaleFactor)0, -0xcc23322), 256);", // IID19767 - "__ imulq(r22, Address(r23, r24, (Address::ScaleFactor)3, +0x23d1a7f0), 4096);", // IID19768 - "__ imulq(r22, Address(r23, r24, (Address::ScaleFactor)0, +0x2b948346), 65536);", // IID19769 - "__ imulq(r22, Address(r23, r24, (Address::ScaleFactor)2, -0x604ee43e), 1048576);", // IID19770 - "__ imulq(r22, Address(r23, -0x3b290aea), 16777216);", // IID19771 - "__ imulq(r22, Address(r23, r24, (Address::ScaleFactor)1, +0xd8b8365), 268435456);", // IID19772 - "__ imulq(r23, Address(r24, -0x6c4a7734), 1);", // IID19773 - "__ imulq(r23, Address(r24, r25, (Address::ScaleFactor)1, +0x18bc0dbb), 16);", // IID19774 - "__ imulq(r23, Address(r24, r25, (Address::ScaleFactor)3, +0x5fa767d5), 256);", // IID19775 - "__ imulq(r23, Address(r24, r25, (Address::ScaleFactor)3, +0x4f8ea15d), 4096);", // IID19776 - "__ imulq(r23, Address(r24, r25, (Address::ScaleFactor)2, -0x4ce36caf), 65536);", // IID19777 - "__ imulq(r23, Address(r24, r25, (Address::ScaleFactor)2, +0x3d930e9), 1048576);", // IID19778 - "__ imulq(r23, Address(r24, r25, (Address::ScaleFactor)0, +0x290b41b4), 16777216);", // IID19779 - "__ imulq(r23, Address(r24, r25, (Address::ScaleFactor)2, +0x246b4b8d), 268435456);", // IID19780 - "__ imulq(r24, Address(r25, r26, (Address::ScaleFactor)0, +0x1da57e50), 1);", // IID19781 - "__ imulq(r24, Address(r25, r26, (Address::ScaleFactor)1, -0x39eaf2b2), 16);", // IID19782 - "__ imulq(r24, Address(r25, r26, (Address::ScaleFactor)3, -0x202f1ae7), 256);", // IID19783 - "__ imulq(r24, Address(r25, r26, (Address::ScaleFactor)0, +0x3839fe3e), 4096);", // IID19784 - "__ imulq(r24, Address(r25, r26, (Address::ScaleFactor)3, -0x20d1c887), 65536);", // IID19785 - "__ imulq(r24, Address(r25, +0x70abc26d), 1048576);", // IID19786 - "__ imulq(r24, Address(r25, -0x2c24df07), 16777216);", // IID19787 - "__ imulq(r24, Address(r25, r26, (Address::ScaleFactor)0, -0x60ef49e6), 268435456);", // IID19788 - "__ imulq(r25, Address(r26, r27, (Address::ScaleFactor)3, +0x2192d57c), 1);", // IID19789 - "__ imulq(r25, Address(r26, r27, (Address::ScaleFactor)3, +0x570cee66), 16);", // IID19790 - "__ imulq(r25, Address(r26, r27, (Address::ScaleFactor)1, +0x5e5ddf5c), 256);", // IID19791 - "__ imulq(r25, Address(r26, r27, (Address::ScaleFactor)2, -0x4848d208), 4096);", // IID19792 - "__ imulq(r25, Address(r26, -0x3f62535a), 65536);", // IID19793 - "__ imulq(r25, Address(r26, r27, (Address::ScaleFactor)2, +0x51275c16), 1048576);", // IID19794 - "__ imulq(r25, Address(r26, r27, (Address::ScaleFactor)3, +0x4ee607c3), 16777216);", // IID19795 - "__ imulq(r25, Address(r26, r27, (Address::ScaleFactor)0, +0x64a59cc9), 268435456);", // IID19796 - "__ imulq(r26, Address(r27, +0x66f0fa41), 1);", // IID19797 - "__ imulq(r26, Address(r27, r28, (Address::ScaleFactor)3, -0x5f494618), 16);", // IID19798 - "__ imulq(r26, Address(r27, -0x7aaa5b67), 256);", // IID19799 - "__ imulq(r26, Address(r27, r28, (Address::ScaleFactor)1, -0x564b593d), 4096);", // IID19800 - "__ imulq(r26, Address(r27, r28, (Address::ScaleFactor)1, +0x6b7aa877), 65536);", // IID19801 - "__ imulq(r26, Address(r27, r28, (Address::ScaleFactor)3, +0x116aa971), 1048576);", // IID19802 - "__ imulq(r26, Address(r27, r28, (Address::ScaleFactor)2, -0x54381dc7), 16777216);", // IID19803 - "__ imulq(r26, Address(r27, r28, (Address::ScaleFactor)2, -0x28b23fa), 268435456);", // IID19804 - "__ imulq(r27, Address(r28, -0x4e7fb611), 1);", // IID19805 - "__ imulq(r27, Address(r28, r29, (Address::ScaleFactor)2, +0x386cae44), 16);", // IID19806 - "__ imulq(r27, Address(r28, -0x255406a9), 256);", // IID19807 - "__ imulq(r27, Address(r28, r29, (Address::ScaleFactor)1, +0xb58fec2), 4096);", // IID19808 - "__ imulq(r27, Address(r28, r29, (Address::ScaleFactor)0, +0xda6df86), 65536);", // IID19809 - "__ imulq(r27, Address(r28, r29, (Address::ScaleFactor)1, +0x448bec94), 1048576);", // IID19810 - "__ imulq(r27, Address(r28, r29, (Address::ScaleFactor)3, -0x74409b3b), 16777216);", // IID19811 - "__ imulq(r27, Address(r28, r29, (Address::ScaleFactor)0, +0x68ef356d), 268435456);", // IID19812 - "__ imulq(r28, Address(r29, r30, (Address::ScaleFactor)2, -0x30566fa8), 1);", // IID19813 - "__ imulq(r28, Address(r29, r30, (Address::ScaleFactor)2, -0x25e8b78d), 16);", // IID19814 - "__ imulq(r28, Address(r29, r30, (Address::ScaleFactor)2, +0x1f4f5858), 256);", // IID19815 - "__ imulq(r28, Address(r29, r30, (Address::ScaleFactor)0, +0x3c3050c2), 4096);", // IID19816 - "__ imulq(r28, Address(r29, +0x1d22cbc3), 65536);", // IID19817 - "__ imulq(r28, Address(r29, r30, (Address::ScaleFactor)2, -0x6e4684fd), 1048576);", // IID19818 - "__ imulq(r28, Address(r29, r30, (Address::ScaleFactor)1, +0xa85a6e4), 16777216);", // IID19819 - "__ imulq(r28, Address(r29, r30, (Address::ScaleFactor)3, -0x5292cbbd), 268435456);", // IID19820 - "__ imulq(r29, Address(r30, r31, (Address::ScaleFactor)2, +0x2532b9f4), 1);", // IID19821 - "__ imulq(r29, Address(r30, r31, (Address::ScaleFactor)2, +0x77c1974c), 16);", // IID19822 - "__ imulq(r29, Address(r30, r31, (Address::ScaleFactor)1, +0x581be5be), 256);", // IID19823 - "__ imulq(r29, Address(r30, -0x6a2b07f3), 4096);", // IID19824 - "__ imulq(r29, Address(r30, r31, (Address::ScaleFactor)1, -0x2015b0ce), 65536);", // IID19825 - "__ imulq(r29, Address(r30, r31, (Address::ScaleFactor)1, -0x42bde77f), 1048576);", // IID19826 - "__ imulq(r29, Address(r30, r31, (Address::ScaleFactor)3, -0x4d332307), 16777216);", // IID19827 - "__ imulq(r29, Address(r30, r31, (Address::ScaleFactor)3, +0x805f1b6), 268435456);", // IID19828 - "__ imulq(r30, Address(r31, rcx, (Address::ScaleFactor)3, +0xb2234c0), 1);", // IID19829 - "__ imulq(r30, Address(r31, +0x30d2aa2f), 16);", // IID19830 - "__ imulq(r30, Address(r31, -0x63cffac4), 256);", // IID19831 - "__ imulq(r30, Address(r31, +0x56270ab3), 4096);", // IID19832 - "__ imulq(r30, Address(r31, rcx, (Address::ScaleFactor)0, -0x176aa195), 65536);", // IID19833 - "__ imulq(r30, Address(r31, rcx, (Address::ScaleFactor)2, -0x6b9bf14e), 1048576);", // IID19834 - "__ imulq(r30, Address(r31, rcx, (Address::ScaleFactor)1, -0x59cdadfe), 16777216);", // IID19835 - "__ imulq(r30, Address(r31, rcx, (Address::ScaleFactor)3, +0x62c710cc), 268435456);", // IID19836 - "__ imulq(r31, Address(rcx, +0x2ba147ee), 1);", // IID19837 - "__ imulq(r31, Address(rcx, rdx, (Address::ScaleFactor)1, -0xafc2246), 16);", // IID19838 - "__ imulq(r31, Address(rcx, rdx, (Address::ScaleFactor)2, -0x7720fbb), 256);", // IID19839 - "__ imulq(r31, Address(rcx, rdx, (Address::ScaleFactor)1, -0x4a758904), 4096);", // IID19840 - "__ imulq(r31, Address(rcx, rdx, (Address::ScaleFactor)3, -0x3ca7b5cd), 65536);", // IID19841 - "__ imulq(r31, Address(rcx, rdx, (Address::ScaleFactor)2, +0x4605ed66), 1048576);", // IID19842 - "__ imulq(r31, Address(rcx, rdx, (Address::ScaleFactor)1, -0x28187b3a), 16777216);", // IID19843 - "__ imulq(r31, Address(rcx, +0x30c0b852), 268435456);", // IID19844 - "__ imulq(rcx, rdx, 1);", // IID19845 - "__ imulq(rcx, rdx, 16);", // IID19846 - "__ imulq(rcx, rdx, 256);", // IID19847 - "__ imulq(rcx, rdx, 4096);", // IID19848 - "__ imulq(rcx, rdx, 65536);", // IID19849 - "__ imulq(rcx, rdx, 1048576);", // IID19850 - "__ imulq(rcx, rdx, 16777216);", // IID19851 - "__ imulq(rcx, rdx, 268435456);", // IID19852 - "__ imulq(rdx, rbx, 1);", // IID19853 - "__ imulq(rdx, rbx, 16);", // IID19854 - "__ imulq(rdx, rbx, 256);", // IID19855 - "__ imulq(rdx, rbx, 4096);", // IID19856 - "__ imulq(rdx, rbx, 65536);", // IID19857 - "__ imulq(rdx, rbx, 1048576);", // IID19858 - "__ imulq(rdx, rbx, 16777216);", // IID19859 - "__ imulq(rdx, rbx, 268435456);", // IID19860 - "__ imulq(rbx, r8, 1);", // IID19861 - "__ imulq(rbx, r8, 16);", // IID19862 - "__ imulq(rbx, r8, 256);", // IID19863 - "__ imulq(rbx, r8, 4096);", // IID19864 - "__ imulq(rbx, r8, 65536);", // IID19865 - "__ imulq(rbx, r8, 1048576);", // IID19866 - "__ imulq(rbx, r8, 16777216);", // IID19867 - "__ imulq(rbx, r8, 268435456);", // IID19868 - "__ imulq(r8, r9, 1);", // IID19869 - "__ imulq(r8, r9, 16);", // IID19870 - "__ imulq(r8, r9, 256);", // IID19871 - "__ imulq(r8, r9, 4096);", // IID19872 - "__ imulq(r8, r9, 65536);", // IID19873 - "__ imulq(r8, r9, 1048576);", // IID19874 - "__ imulq(r8, r9, 16777216);", // IID19875 - "__ imulq(r8, r9, 268435456);", // IID19876 - "__ imulq(r9, r10, 1);", // IID19877 - "__ imulq(r9, r10, 16);", // IID19878 - "__ imulq(r9, r10, 256);", // IID19879 - "__ imulq(r9, r10, 4096);", // IID19880 - "__ imulq(r9, r10, 65536);", // IID19881 - "__ imulq(r9, r10, 1048576);", // IID19882 - "__ imulq(r9, r10, 16777216);", // IID19883 - "__ imulq(r9, r10, 268435456);", // IID19884 - "__ imulq(r10, r11, 1);", // IID19885 - "__ imulq(r10, r11, 16);", // IID19886 - "__ imulq(r10, r11, 256);", // IID19887 - "__ imulq(r10, r11, 4096);", // IID19888 - "__ imulq(r10, r11, 65536);", // IID19889 - "__ imulq(r10, r11, 1048576);", // IID19890 - "__ imulq(r10, r11, 16777216);", // IID19891 - "__ imulq(r10, r11, 268435456);", // IID19892 - "__ imulq(r11, r12, 1);", // IID19893 - "__ imulq(r11, r12, 16);", // IID19894 - "__ imulq(r11, r12, 256);", // IID19895 - "__ imulq(r11, r12, 4096);", // IID19896 - "__ imulq(r11, r12, 65536);", // IID19897 - "__ imulq(r11, r12, 1048576);", // IID19898 - "__ imulq(r11, r12, 16777216);", // IID19899 - "__ imulq(r11, r12, 268435456);", // IID19900 - "__ imulq(r12, r13, 1);", // IID19901 - "__ imulq(r12, r13, 16);", // IID19902 - "__ imulq(r12, r13, 256);", // IID19903 - "__ imulq(r12, r13, 4096);", // IID19904 - "__ imulq(r12, r13, 65536);", // IID19905 - "__ imulq(r12, r13, 1048576);", // IID19906 - "__ imulq(r12, r13, 16777216);", // IID19907 - "__ imulq(r12, r13, 268435456);", // IID19908 - "__ imulq(r13, r14, 1);", // IID19909 - "__ imulq(r13, r14, 16);", // IID19910 - "__ imulq(r13, r14, 256);", // IID19911 - "__ imulq(r13, r14, 4096);", // IID19912 - "__ imulq(r13, r14, 65536);", // IID19913 - "__ imulq(r13, r14, 1048576);", // IID19914 - "__ imulq(r13, r14, 16777216);", // IID19915 - "__ imulq(r13, r14, 268435456);", // IID19916 - "__ imulq(r14, r15, 1);", // IID19917 - "__ imulq(r14, r15, 16);", // IID19918 - "__ imulq(r14, r15, 256);", // IID19919 - "__ imulq(r14, r15, 4096);", // IID19920 - "__ imulq(r14, r15, 65536);", // IID19921 - "__ imulq(r14, r15, 1048576);", // IID19922 - "__ imulq(r14, r15, 16777216);", // IID19923 - "__ imulq(r14, r15, 268435456);", // IID19924 - "__ imulq(r15, r16, 1);", // IID19925 - "__ imulq(r15, r16, 16);", // IID19926 - "__ imulq(r15, r16, 256);", // IID19927 - "__ imulq(r15, r16, 4096);", // IID19928 - "__ imulq(r15, r16, 65536);", // IID19929 - "__ imulq(r15, r16, 1048576);", // IID19930 - "__ imulq(r15, r16, 16777216);", // IID19931 - "__ imulq(r15, r16, 268435456);", // IID19932 - "__ imulq(r16, r17, 1);", // IID19933 - "__ imulq(r16, r17, 16);", // IID19934 - "__ imulq(r16, r17, 256);", // IID19935 - "__ imulq(r16, r17, 4096);", // IID19936 - "__ imulq(r16, r17, 65536);", // IID19937 - "__ imulq(r16, r17, 1048576);", // IID19938 - "__ imulq(r16, r17, 16777216);", // IID19939 - "__ imulq(r16, r17, 268435456);", // IID19940 - "__ imulq(r17, r18, 1);", // IID19941 - "__ imulq(r17, r18, 16);", // IID19942 - "__ imulq(r17, r18, 256);", // IID19943 - "__ imulq(r17, r18, 4096);", // IID19944 - "__ imulq(r17, r18, 65536);", // IID19945 - "__ imulq(r17, r18, 1048576);", // IID19946 - "__ imulq(r17, r18, 16777216);", // IID19947 - "__ imulq(r17, r18, 268435456);", // IID19948 - "__ imulq(r18, r19, 1);", // IID19949 - "__ imulq(r18, r19, 16);", // IID19950 - "__ imulq(r18, r19, 256);", // IID19951 - "__ imulq(r18, r19, 4096);", // IID19952 - "__ imulq(r18, r19, 65536);", // IID19953 - "__ imulq(r18, r19, 1048576);", // IID19954 - "__ imulq(r18, r19, 16777216);", // IID19955 - "__ imulq(r18, r19, 268435456);", // IID19956 - "__ imulq(r19, r20, 1);", // IID19957 - "__ imulq(r19, r20, 16);", // IID19958 - "__ imulq(r19, r20, 256);", // IID19959 - "__ imulq(r19, r20, 4096);", // IID19960 - "__ imulq(r19, r20, 65536);", // IID19961 - "__ imulq(r19, r20, 1048576);", // IID19962 - "__ imulq(r19, r20, 16777216);", // IID19963 - "__ imulq(r19, r20, 268435456);", // IID19964 - "__ imulq(r20, r21, 1);", // IID19965 - "__ imulq(r20, r21, 16);", // IID19966 - "__ imulq(r20, r21, 256);", // IID19967 - "__ imulq(r20, r21, 4096);", // IID19968 - "__ imulq(r20, r21, 65536);", // IID19969 - "__ imulq(r20, r21, 1048576);", // IID19970 - "__ imulq(r20, r21, 16777216);", // IID19971 - "__ imulq(r20, r21, 268435456);", // IID19972 - "__ imulq(r21, r22, 1);", // IID19973 - "__ imulq(r21, r22, 16);", // IID19974 - "__ imulq(r21, r22, 256);", // IID19975 - "__ imulq(r21, r22, 4096);", // IID19976 - "__ imulq(r21, r22, 65536);", // IID19977 - "__ imulq(r21, r22, 1048576);", // IID19978 - "__ imulq(r21, r22, 16777216);", // IID19979 - "__ imulq(r21, r22, 268435456);", // IID19980 - "__ imulq(r22, r23, 1);", // IID19981 - "__ imulq(r22, r23, 16);", // IID19982 - "__ imulq(r22, r23, 256);", // IID19983 - "__ imulq(r22, r23, 4096);", // IID19984 - "__ imulq(r22, r23, 65536);", // IID19985 - "__ imulq(r22, r23, 1048576);", // IID19986 - "__ imulq(r22, r23, 16777216);", // IID19987 - "__ imulq(r22, r23, 268435456);", // IID19988 - "__ imulq(r23, r24, 1);", // IID19989 - "__ imulq(r23, r24, 16);", // IID19990 - "__ imulq(r23, r24, 256);", // IID19991 - "__ imulq(r23, r24, 4096);", // IID19992 - "__ imulq(r23, r24, 65536);", // IID19993 - "__ imulq(r23, r24, 1048576);", // IID19994 - "__ imulq(r23, r24, 16777216);", // IID19995 - "__ imulq(r23, r24, 268435456);", // IID19996 - "__ imulq(r24, r25, 1);", // IID19997 - "__ imulq(r24, r25, 16);", // IID19998 - "__ imulq(r24, r25, 256);", // IID19999 - "__ imulq(r24, r25, 4096);", // IID20000 - "__ imulq(r24, r25, 65536);", // IID20001 - "__ imulq(r24, r25, 1048576);", // IID20002 - "__ imulq(r24, r25, 16777216);", // IID20003 - "__ imulq(r24, r25, 268435456);", // IID20004 - "__ imulq(r25, r26, 1);", // IID20005 - "__ imulq(r25, r26, 16);", // IID20006 - "__ imulq(r25, r26, 256);", // IID20007 - "__ imulq(r25, r26, 4096);", // IID20008 - "__ imulq(r25, r26, 65536);", // IID20009 - "__ imulq(r25, r26, 1048576);", // IID20010 - "__ imulq(r25, r26, 16777216);", // IID20011 - "__ imulq(r25, r26, 268435456);", // IID20012 - "__ imulq(r26, r27, 1);", // IID20013 - "__ imulq(r26, r27, 16);", // IID20014 - "__ imulq(r26, r27, 256);", // IID20015 - "__ imulq(r26, r27, 4096);", // IID20016 - "__ imulq(r26, r27, 65536);", // IID20017 - "__ imulq(r26, r27, 1048576);", // IID20018 - "__ imulq(r26, r27, 16777216);", // IID20019 - "__ imulq(r26, r27, 268435456);", // IID20020 - "__ imulq(r27, r28, 1);", // IID20021 - "__ imulq(r27, r28, 16);", // IID20022 - "__ imulq(r27, r28, 256);", // IID20023 - "__ imulq(r27, r28, 4096);", // IID20024 - "__ imulq(r27, r28, 65536);", // IID20025 - "__ imulq(r27, r28, 1048576);", // IID20026 - "__ imulq(r27, r28, 16777216);", // IID20027 - "__ imulq(r27, r28, 268435456);", // IID20028 - "__ imulq(r28, r29, 1);", // IID20029 - "__ imulq(r28, r29, 16);", // IID20030 - "__ imulq(r28, r29, 256);", // IID20031 - "__ imulq(r28, r29, 4096);", // IID20032 - "__ imulq(r28, r29, 65536);", // IID20033 - "__ imulq(r28, r29, 1048576);", // IID20034 - "__ imulq(r28, r29, 16777216);", // IID20035 - "__ imulq(r28, r29, 268435456);", // IID20036 - "__ imulq(r29, r30, 1);", // IID20037 - "__ imulq(r29, r30, 16);", // IID20038 - "__ imulq(r29, r30, 256);", // IID20039 - "__ imulq(r29, r30, 4096);", // IID20040 - "__ imulq(r29, r30, 65536);", // IID20041 - "__ imulq(r29, r30, 1048576);", // IID20042 - "__ imulq(r29, r30, 16777216);", // IID20043 - "__ imulq(r29, r30, 268435456);", // IID20044 - "__ imulq(r30, r31, 1);", // IID20045 - "__ imulq(r30, r31, 16);", // IID20046 - "__ imulq(r30, r31, 256);", // IID20047 - "__ imulq(r30, r31, 4096);", // IID20048 - "__ imulq(r30, r31, 65536);", // IID20049 - "__ imulq(r30, r31, 1048576);", // IID20050 - "__ imulq(r30, r31, 16777216);", // IID20051 - "__ imulq(r30, r31, 268435456);", // IID20052 - "__ imulq(r31, rcx, 1);", // IID20053 - "__ imulq(r31, rcx, 16);", // IID20054 - "__ imulq(r31, rcx, 256);", // IID20055 - "__ imulq(r31, rcx, 4096);", // IID20056 - "__ imulq(r31, rcx, 65536);", // IID20057 - "__ imulq(r31, rcx, 1048576);", // IID20058 - "__ imulq(r31, rcx, 16777216);", // IID20059 - "__ imulq(r31, rcx, 268435456);", // IID20060 - "__ shldq(rcx, rdx, 1);", // IID20061 - "__ shldq(rcx, rdx, 2);", // IID20062 - "__ shldq(rcx, rdx, 4);", // IID20063 - "__ shldq(rcx, rdx, 8);", // IID20064 - "__ shldq(rcx, rdx, 16);", // IID20065 - "__ shldq(rdx, rbx, 1);", // IID20066 - "__ shldq(rdx, rbx, 2);", // IID20067 - "__ shldq(rdx, rbx, 4);", // IID20068 - "__ shldq(rdx, rbx, 8);", // IID20069 - "__ shldq(rdx, rbx, 16);", // IID20070 - "__ shldq(rbx, r8, 1);", // IID20071 - "__ shldq(rbx, r8, 2);", // IID20072 - "__ shldq(rbx, r8, 4);", // IID20073 - "__ shldq(rbx, r8, 8);", // IID20074 - "__ shldq(rbx, r8, 16);", // IID20075 - "__ shldq(r8, r9, 1);", // IID20076 - "__ shldq(r8, r9, 2);", // IID20077 - "__ shldq(r8, r9, 4);", // IID20078 - "__ shldq(r8, r9, 8);", // IID20079 - "__ shldq(r8, r9, 16);", // IID20080 - "__ shldq(r9, r10, 1);", // IID20081 - "__ shldq(r9, r10, 2);", // IID20082 - "__ shldq(r9, r10, 4);", // IID20083 - "__ shldq(r9, r10, 8);", // IID20084 - "__ shldq(r9, r10, 16);", // IID20085 - "__ shldq(r10, r11, 1);", // IID20086 - "__ shldq(r10, r11, 2);", // IID20087 - "__ shldq(r10, r11, 4);", // IID20088 - "__ shldq(r10, r11, 8);", // IID20089 - "__ shldq(r10, r11, 16);", // IID20090 - "__ shldq(r11, r12, 1);", // IID20091 - "__ shldq(r11, r12, 2);", // IID20092 - "__ shldq(r11, r12, 4);", // IID20093 - "__ shldq(r11, r12, 8);", // IID20094 - "__ shldq(r11, r12, 16);", // IID20095 - "__ shldq(r12, r13, 1);", // IID20096 - "__ shldq(r12, r13, 2);", // IID20097 - "__ shldq(r12, r13, 4);", // IID20098 - "__ shldq(r12, r13, 8);", // IID20099 - "__ shldq(r12, r13, 16);", // IID20100 - "__ shldq(r13, r14, 1);", // IID20101 - "__ shldq(r13, r14, 2);", // IID20102 - "__ shldq(r13, r14, 4);", // IID20103 - "__ shldq(r13, r14, 8);", // IID20104 - "__ shldq(r13, r14, 16);", // IID20105 - "__ shldq(r14, r15, 1);", // IID20106 - "__ shldq(r14, r15, 2);", // IID20107 - "__ shldq(r14, r15, 4);", // IID20108 - "__ shldq(r14, r15, 8);", // IID20109 - "__ shldq(r14, r15, 16);", // IID20110 - "__ shldq(r15, r16, 1);", // IID20111 - "__ shldq(r15, r16, 2);", // IID20112 - "__ shldq(r15, r16, 4);", // IID20113 - "__ shldq(r15, r16, 8);", // IID20114 - "__ shldq(r15, r16, 16);", // IID20115 - "__ shldq(r16, r17, 1);", // IID20116 - "__ shldq(r16, r17, 2);", // IID20117 - "__ shldq(r16, r17, 4);", // IID20118 - "__ shldq(r16, r17, 8);", // IID20119 - "__ shldq(r16, r17, 16);", // IID20120 - "__ shldq(r17, r18, 1);", // IID20121 - "__ shldq(r17, r18, 2);", // IID20122 - "__ shldq(r17, r18, 4);", // IID20123 - "__ shldq(r17, r18, 8);", // IID20124 - "__ shldq(r17, r18, 16);", // IID20125 - "__ shldq(r18, r19, 1);", // IID20126 - "__ shldq(r18, r19, 2);", // IID20127 - "__ shldq(r18, r19, 4);", // IID20128 - "__ shldq(r18, r19, 8);", // IID20129 - "__ shldq(r18, r19, 16);", // IID20130 - "__ shldq(r19, r20, 1);", // IID20131 - "__ shldq(r19, r20, 2);", // IID20132 - "__ shldq(r19, r20, 4);", // IID20133 - "__ shldq(r19, r20, 8);", // IID20134 - "__ shldq(r19, r20, 16);", // IID20135 - "__ shldq(r20, r21, 1);", // IID20136 - "__ shldq(r20, r21, 2);", // IID20137 - "__ shldq(r20, r21, 4);", // IID20138 - "__ shldq(r20, r21, 8);", // IID20139 - "__ shldq(r20, r21, 16);", // IID20140 - "__ shldq(r21, r22, 1);", // IID20141 - "__ shldq(r21, r22, 2);", // IID20142 - "__ shldq(r21, r22, 4);", // IID20143 - "__ shldq(r21, r22, 8);", // IID20144 - "__ shldq(r21, r22, 16);", // IID20145 - "__ shldq(r22, r23, 1);", // IID20146 - "__ shldq(r22, r23, 2);", // IID20147 - "__ shldq(r22, r23, 4);", // IID20148 - "__ shldq(r22, r23, 8);", // IID20149 - "__ shldq(r22, r23, 16);", // IID20150 - "__ shldq(r23, r24, 1);", // IID20151 - "__ shldq(r23, r24, 2);", // IID20152 - "__ shldq(r23, r24, 4);", // IID20153 - "__ shldq(r23, r24, 8);", // IID20154 - "__ shldq(r23, r24, 16);", // IID20155 - "__ shldq(r24, r25, 1);", // IID20156 - "__ shldq(r24, r25, 2);", // IID20157 - "__ shldq(r24, r25, 4);", // IID20158 - "__ shldq(r24, r25, 8);", // IID20159 - "__ shldq(r24, r25, 16);", // IID20160 - "__ shldq(r25, r26, 1);", // IID20161 - "__ shldq(r25, r26, 2);", // IID20162 - "__ shldq(r25, r26, 4);", // IID20163 - "__ shldq(r25, r26, 8);", // IID20164 - "__ shldq(r25, r26, 16);", // IID20165 - "__ shldq(r26, r27, 1);", // IID20166 - "__ shldq(r26, r27, 2);", // IID20167 - "__ shldq(r26, r27, 4);", // IID20168 - "__ shldq(r26, r27, 8);", // IID20169 - "__ shldq(r26, r27, 16);", // IID20170 - "__ shldq(r27, r28, 1);", // IID20171 - "__ shldq(r27, r28, 2);", // IID20172 - "__ shldq(r27, r28, 4);", // IID20173 - "__ shldq(r27, r28, 8);", // IID20174 - "__ shldq(r27, r28, 16);", // IID20175 - "__ shldq(r28, r29, 1);", // IID20176 - "__ shldq(r28, r29, 2);", // IID20177 - "__ shldq(r28, r29, 4);", // IID20178 - "__ shldq(r28, r29, 8);", // IID20179 - "__ shldq(r28, r29, 16);", // IID20180 - "__ shldq(r29, r30, 1);", // IID20181 - "__ shldq(r29, r30, 2);", // IID20182 - "__ shldq(r29, r30, 4);", // IID20183 - "__ shldq(r29, r30, 8);", // IID20184 - "__ shldq(r29, r30, 16);", // IID20185 - "__ shldq(r30, r31, 1);", // IID20186 - "__ shldq(r30, r31, 2);", // IID20187 - "__ shldq(r30, r31, 4);", // IID20188 - "__ shldq(r30, r31, 8);", // IID20189 - "__ shldq(r30, r31, 16);", // IID20190 - "__ shldq(r31, rcx, 1);", // IID20191 - "__ shldq(r31, rcx, 2);", // IID20192 - "__ shldq(r31, rcx, 4);", // IID20193 - "__ shldq(r31, rcx, 8);", // IID20194 - "__ shldq(r31, rcx, 16);", // IID20195 - "__ shrdq(rcx, rdx, 1);", // IID20196 - "__ shrdq(rcx, rdx, 2);", // IID20197 - "__ shrdq(rcx, rdx, 4);", // IID20198 - "__ shrdq(rcx, rdx, 8);", // IID20199 - "__ shrdq(rcx, rdx, 16);", // IID20200 - "__ shrdq(rdx, rbx, 1);", // IID20201 - "__ shrdq(rdx, rbx, 2);", // IID20202 - "__ shrdq(rdx, rbx, 4);", // IID20203 - "__ shrdq(rdx, rbx, 8);", // IID20204 - "__ shrdq(rdx, rbx, 16);", // IID20205 - "__ shrdq(rbx, r8, 1);", // IID20206 - "__ shrdq(rbx, r8, 2);", // IID20207 - "__ shrdq(rbx, r8, 4);", // IID20208 - "__ shrdq(rbx, r8, 8);", // IID20209 - "__ shrdq(rbx, r8, 16);", // IID20210 - "__ shrdq(r8, r9, 1);", // IID20211 - "__ shrdq(r8, r9, 2);", // IID20212 - "__ shrdq(r8, r9, 4);", // IID20213 - "__ shrdq(r8, r9, 8);", // IID20214 - "__ shrdq(r8, r9, 16);", // IID20215 - "__ shrdq(r9, r10, 1);", // IID20216 - "__ shrdq(r9, r10, 2);", // IID20217 - "__ shrdq(r9, r10, 4);", // IID20218 - "__ shrdq(r9, r10, 8);", // IID20219 - "__ shrdq(r9, r10, 16);", // IID20220 - "__ shrdq(r10, r11, 1);", // IID20221 - "__ shrdq(r10, r11, 2);", // IID20222 - "__ shrdq(r10, r11, 4);", // IID20223 - "__ shrdq(r10, r11, 8);", // IID20224 - "__ shrdq(r10, r11, 16);", // IID20225 - "__ shrdq(r11, r12, 1);", // IID20226 - "__ shrdq(r11, r12, 2);", // IID20227 - "__ shrdq(r11, r12, 4);", // IID20228 - "__ shrdq(r11, r12, 8);", // IID20229 - "__ shrdq(r11, r12, 16);", // IID20230 - "__ shrdq(r12, r13, 1);", // IID20231 - "__ shrdq(r12, r13, 2);", // IID20232 - "__ shrdq(r12, r13, 4);", // IID20233 - "__ shrdq(r12, r13, 8);", // IID20234 - "__ shrdq(r12, r13, 16);", // IID20235 - "__ shrdq(r13, r14, 1);", // IID20236 - "__ shrdq(r13, r14, 2);", // IID20237 - "__ shrdq(r13, r14, 4);", // IID20238 - "__ shrdq(r13, r14, 8);", // IID20239 - "__ shrdq(r13, r14, 16);", // IID20240 - "__ shrdq(r14, r15, 1);", // IID20241 - "__ shrdq(r14, r15, 2);", // IID20242 - "__ shrdq(r14, r15, 4);", // IID20243 - "__ shrdq(r14, r15, 8);", // IID20244 - "__ shrdq(r14, r15, 16);", // IID20245 - "__ shrdq(r15, r16, 1);", // IID20246 - "__ shrdq(r15, r16, 2);", // IID20247 - "__ shrdq(r15, r16, 4);", // IID20248 - "__ shrdq(r15, r16, 8);", // IID20249 - "__ shrdq(r15, r16, 16);", // IID20250 - "__ shrdq(r16, r17, 1);", // IID20251 - "__ shrdq(r16, r17, 2);", // IID20252 - "__ shrdq(r16, r17, 4);", // IID20253 - "__ shrdq(r16, r17, 8);", // IID20254 - "__ shrdq(r16, r17, 16);", // IID20255 - "__ shrdq(r17, r18, 1);", // IID20256 - "__ shrdq(r17, r18, 2);", // IID20257 - "__ shrdq(r17, r18, 4);", // IID20258 - "__ shrdq(r17, r18, 8);", // IID20259 - "__ shrdq(r17, r18, 16);", // IID20260 - "__ shrdq(r18, r19, 1);", // IID20261 - "__ shrdq(r18, r19, 2);", // IID20262 - "__ shrdq(r18, r19, 4);", // IID20263 - "__ shrdq(r18, r19, 8);", // IID20264 - "__ shrdq(r18, r19, 16);", // IID20265 - "__ shrdq(r19, r20, 1);", // IID20266 - "__ shrdq(r19, r20, 2);", // IID20267 - "__ shrdq(r19, r20, 4);", // IID20268 - "__ shrdq(r19, r20, 8);", // IID20269 - "__ shrdq(r19, r20, 16);", // IID20270 - "__ shrdq(r20, r21, 1);", // IID20271 - "__ shrdq(r20, r21, 2);", // IID20272 - "__ shrdq(r20, r21, 4);", // IID20273 - "__ shrdq(r20, r21, 8);", // IID20274 - "__ shrdq(r20, r21, 16);", // IID20275 - "__ shrdq(r21, r22, 1);", // IID20276 - "__ shrdq(r21, r22, 2);", // IID20277 - "__ shrdq(r21, r22, 4);", // IID20278 - "__ shrdq(r21, r22, 8);", // IID20279 - "__ shrdq(r21, r22, 16);", // IID20280 - "__ shrdq(r22, r23, 1);", // IID20281 - "__ shrdq(r22, r23, 2);", // IID20282 - "__ shrdq(r22, r23, 4);", // IID20283 - "__ shrdq(r22, r23, 8);", // IID20284 - "__ shrdq(r22, r23, 16);", // IID20285 - "__ shrdq(r23, r24, 1);", // IID20286 - "__ shrdq(r23, r24, 2);", // IID20287 - "__ shrdq(r23, r24, 4);", // IID20288 - "__ shrdq(r23, r24, 8);", // IID20289 - "__ shrdq(r23, r24, 16);", // IID20290 - "__ shrdq(r24, r25, 1);", // IID20291 - "__ shrdq(r24, r25, 2);", // IID20292 - "__ shrdq(r24, r25, 4);", // IID20293 - "__ shrdq(r24, r25, 8);", // IID20294 - "__ shrdq(r24, r25, 16);", // IID20295 - "__ shrdq(r25, r26, 1);", // IID20296 - "__ shrdq(r25, r26, 2);", // IID20297 - "__ shrdq(r25, r26, 4);", // IID20298 - "__ shrdq(r25, r26, 8);", // IID20299 - "__ shrdq(r25, r26, 16);", // IID20300 - "__ shrdq(r26, r27, 1);", // IID20301 - "__ shrdq(r26, r27, 2);", // IID20302 - "__ shrdq(r26, r27, 4);", // IID20303 - "__ shrdq(r26, r27, 8);", // IID20304 - "__ shrdq(r26, r27, 16);", // IID20305 - "__ shrdq(r27, r28, 1);", // IID20306 - "__ shrdq(r27, r28, 2);", // IID20307 - "__ shrdq(r27, r28, 4);", // IID20308 - "__ shrdq(r27, r28, 8);", // IID20309 - "__ shrdq(r27, r28, 16);", // IID20310 - "__ shrdq(r28, r29, 1);", // IID20311 - "__ shrdq(r28, r29, 2);", // IID20312 - "__ shrdq(r28, r29, 4);", // IID20313 - "__ shrdq(r28, r29, 8);", // IID20314 - "__ shrdq(r28, r29, 16);", // IID20315 - "__ shrdq(r29, r30, 1);", // IID20316 - "__ shrdq(r29, r30, 2);", // IID20317 - "__ shrdq(r29, r30, 4);", // IID20318 - "__ shrdq(r29, r30, 8);", // IID20319 - "__ shrdq(r29, r30, 16);", // IID20320 - "__ shrdq(r30, r31, 1);", // IID20321 - "__ shrdq(r30, r31, 2);", // IID20322 - "__ shrdq(r30, r31, 4);", // IID20323 - "__ shrdq(r30, r31, 8);", // IID20324 - "__ shrdq(r30, r31, 16);", // IID20325 - "__ shrdq(r31, rcx, 1);", // IID20326 - "__ shrdq(r31, rcx, 2);", // IID20327 - "__ shrdq(r31, rcx, 4);", // IID20328 - "__ shrdq(r31, rcx, 8);", // IID20329 - "__ shrdq(r31, rcx, 16);", // IID20330 - "__ pop2(rdx, rcx);", // IID20331 - "__ pop2(rbx, rdx);", // IID20332 - "__ pop2(r8, rbx);", // IID20333 - "__ pop2(r9, r8);", // IID20334 - "__ pop2(r10, r9);", // IID20335 - "__ pop2(r11, r10);", // IID20336 - "__ pop2(r12, r11);", // IID20337 - "__ pop2(r13, r12);", // IID20338 - "__ pop2(r14, r13);", // IID20339 - "__ pop2(r15, r14);", // IID20340 - "__ pop2(r16, r15);", // IID20341 - "__ pop2(r17, r16);", // IID20342 - "__ pop2(r18, r17);", // IID20343 - "__ pop2(r19, r18);", // IID20344 - "__ pop2(r20, r19);", // IID20345 - "__ pop2(r21, r20);", // IID20346 - "__ pop2(r22, r21);", // IID20347 - "__ pop2(r23, r22);", // IID20348 - "__ pop2(r24, r23);", // IID20349 - "__ pop2(r25, r24);", // IID20350 - "__ pop2(r26, r25);", // IID20351 - "__ pop2(r27, r26);", // IID20352 - "__ pop2(r28, r27);", // IID20353 - "__ pop2(r29, r28);", // IID20354 - "__ pop2(r30, r29);", // IID20355 - "__ pop2(r31, r30);", // IID20356 - "__ pop2(rcx, r31);", // IID20357 - "__ pop2p(rdx, rcx);", // IID20358 - "__ pop2p(rbx, rdx);", // IID20359 - "__ pop2p(r8, rbx);", // IID20360 - "__ pop2p(r9, r8);", // IID20361 - "__ pop2p(r10, r9);", // IID20362 - "__ pop2p(r11, r10);", // IID20363 - "__ pop2p(r12, r11);", // IID20364 - "__ pop2p(r13, r12);", // IID20365 - "__ pop2p(r14, r13);", // IID20366 - "__ pop2p(r15, r14);", // IID20367 - "__ pop2p(r16, r15);", // IID20368 - "__ pop2p(r17, r16);", // IID20369 - "__ pop2p(r18, r17);", // IID20370 - "__ pop2p(r19, r18);", // IID20371 - "__ pop2p(r20, r19);", // IID20372 - "__ pop2p(r21, r20);", // IID20373 - "__ pop2p(r22, r21);", // IID20374 - "__ pop2p(r23, r22);", // IID20375 - "__ pop2p(r24, r23);", // IID20376 - "__ pop2p(r25, r24);", // IID20377 - "__ pop2p(r26, r25);", // IID20378 - "__ pop2p(r27, r26);", // IID20379 - "__ pop2p(r28, r27);", // IID20380 - "__ pop2p(r29, r28);", // IID20381 - "__ pop2p(r30, r29);", // IID20382 - "__ pop2p(r31, r30);", // IID20383 - "__ pop2p(rcx, r31);", // IID20384 - "__ push2(rdx, rcx);", // IID20385 - "__ push2(rbx, rdx);", // IID20386 - "__ push2(r8, rbx);", // IID20387 - "__ push2(r9, r8);", // IID20388 - "__ push2(r10, r9);", // IID20389 - "__ push2(r11, r10);", // IID20390 - "__ push2(r12, r11);", // IID20391 - "__ push2(r13, r12);", // IID20392 - "__ push2(r14, r13);", // IID20393 - "__ push2(r15, r14);", // IID20394 - "__ push2(r16, r15);", // IID20395 - "__ push2(r17, r16);", // IID20396 - "__ push2(r18, r17);", // IID20397 - "__ push2(r19, r18);", // IID20398 - "__ push2(r20, r19);", // IID20399 - "__ push2(r21, r20);", // IID20400 - "__ push2(r22, r21);", // IID20401 - "__ push2(r23, r22);", // IID20402 - "__ push2(r24, r23);", // IID20403 - "__ push2(r25, r24);", // IID20404 - "__ push2(r26, r25);", // IID20405 - "__ push2(r27, r26);", // IID20406 - "__ push2(r28, r27);", // IID20407 - "__ push2(r29, r28);", // IID20408 - "__ push2(r30, r29);", // IID20409 - "__ push2(r31, r30);", // IID20410 - "__ push2(rcx, r31);", // IID20411 - "__ push2p(rdx, rcx);", // IID20412 - "__ push2p(rbx, rdx);", // IID20413 - "__ push2p(r8, rbx);", // IID20414 - "__ push2p(r9, r8);", // IID20415 - "__ push2p(r10, r9);", // IID20416 - "__ push2p(r11, r10);", // IID20417 - "__ push2p(r12, r11);", // IID20418 - "__ push2p(r13, r12);", // IID20419 - "__ push2p(r14, r13);", // IID20420 - "__ push2p(r15, r14);", // IID20421 - "__ push2p(r16, r15);", // IID20422 - "__ push2p(r17, r16);", // IID20423 - "__ push2p(r18, r17);", // IID20424 - "__ push2p(r19, r18);", // IID20425 - "__ push2p(r20, r19);", // IID20426 - "__ push2p(r21, r20);", // IID20427 - "__ push2p(r22, r21);", // IID20428 - "__ push2p(r23, r22);", // IID20429 - "__ push2p(r24, r23);", // IID20430 - "__ push2p(r25, r24);", // IID20431 - "__ push2p(r26, r25);", // IID20432 - "__ push2p(r27, r26);", // IID20433 - "__ push2p(r28, r27);", // IID20434 - "__ push2p(r29, r28);", // IID20435 - "__ push2p(r30, r29);", // IID20436 - "__ push2p(r31, r30);", // IID20437 - "__ push2p(rcx, r31);", // IID20438 - "__ movzbq(rcx, Address(rdx, rbx, (Address::ScaleFactor)1, +0x6bebbafe));", // IID20439 - "__ movzbq(rdx, Address(rbx, r8, (Address::ScaleFactor)0, -0x37491a02));", // IID20440 - "__ movzbq(rbx, Address(r8, +0x1355726b));", // IID20441 - "__ movzbq(r8, Address(r9, r10, (Address::ScaleFactor)2, +0x28477746));", // IID20442 - "__ movzbq(r9, Address(r10, +0x5c73f494));", // IID20443 - "__ movzbq(r10, Address(r11, r12, (Address::ScaleFactor)0, -0x4d923708));", // IID20444 - "__ movzbq(r11, Address(r12, r13, (Address::ScaleFactor)2, -0xd038dbd));", // IID20445 - "__ movzbq(r12, Address(r13, r14, (Address::ScaleFactor)0, +0x4c42d90));", // IID20446 - "__ movzbq(r13, Address(r14, r15, (Address::ScaleFactor)1, +0x24be9019));", // IID20447 - "__ movzbq(r14, Address(r15, r16, (Address::ScaleFactor)0, -0x1cf02dea));", // IID20448 - "__ movzbq(r15, Address(r16, r17, (Address::ScaleFactor)0, -0x10394f6c));", // IID20449 - "__ movzbq(r16, Address(r17, -0x49ab6ced));", // IID20450 - "__ movzbq(r17, Address(r18, r19, (Address::ScaleFactor)0, +0x70f81015));", // IID20451 - "__ movzbq(r18, Address(r19, r20, (Address::ScaleFactor)3, +0x6ac8da2c));", // IID20452 - "__ movzbq(r19, Address(r20, r21, (Address::ScaleFactor)3, +0x5fef6b37));", // IID20453 - "__ movzbq(r20, Address(r21, r22, (Address::ScaleFactor)0, -0x3489bc3d));", // IID20454 - "__ movzbq(r21, Address(r22, r23, (Address::ScaleFactor)2, +0x249e0432));", // IID20455 - "__ movzbq(r22, Address(r23, r24, (Address::ScaleFactor)3, +0x56d86f09));", // IID20456 - "__ movzbq(r23, Address(r24, r25, (Address::ScaleFactor)2, -0x7d9ef40e));", // IID20457 - "__ movzbq(r24, Address(r25, -0x5f65680c));", // IID20458 - "__ movzbq(r25, Address(r26, r27, (Address::ScaleFactor)0, +0x696864d8));", // IID20459 - "__ movzbq(r26, Address(r27, +0x6b4e7053));", // IID20460 - "__ movzbq(r27, Address(r28, r29, (Address::ScaleFactor)0, -0x3dd5d012));", // IID20461 - "__ movzbq(r28, Address(r29, +0x5420e4b3));", // IID20462 - "__ movzbq(r29, Address(r30, r31, (Address::ScaleFactor)0, +0x380bd8fe));", // IID20463 - "__ movzbq(r30, Address(r31, rcx, (Address::ScaleFactor)0, +0x5ba95873));", // IID20464 - "__ movzbq(r31, Address(rcx, -0x3a4e5896));", // IID20465 - "__ movzwq(rcx, Address(rdx, -0x7659e2a5));", // IID20466 - "__ movzwq(rdx, Address(rbx, -0x3fd7193e));", // IID20467 - "__ movzwq(rbx, Address(r8, r9, (Address::ScaleFactor)2, +0x633ae90f));", // IID20468 - "__ movzwq(r8, Address(r9, r10, (Address::ScaleFactor)2, -0x44fbbaaf));", // IID20469 - "__ movzwq(r9, Address(r10, r11, (Address::ScaleFactor)2, +0x524f0d22));", // IID20470 - "__ movzwq(r10, Address(r11, r12, (Address::ScaleFactor)2, +0x505758b3));", // IID20471 - "__ movzwq(r11, Address(r12, r13, (Address::ScaleFactor)2, +0xb8eb252));", // IID20472 - "__ movzwq(r12, Address(r13, r14, (Address::ScaleFactor)3, -0x1e08de39));", // IID20473 - "__ movzwq(r13, Address(r14, r15, (Address::ScaleFactor)0, -0x392a7be8));", // IID20474 - "__ movzwq(r14, Address(r15, r16, (Address::ScaleFactor)1, +0x54bd701c));", // IID20475 - "__ movzwq(r15, Address(r16, r17, (Address::ScaleFactor)1, +0x78f112ed));", // IID20476 - "__ movzwq(r16, Address(r17, r18, (Address::ScaleFactor)3, +0x614fd152));", // IID20477 - "__ movzwq(r17, Address(r18, r19, (Address::ScaleFactor)0, -0x33b891a2));", // IID20478 - "__ movzwq(r18, Address(r19, r20, (Address::ScaleFactor)3, +0xe272cd7));", // IID20479 - "__ movzwq(r19, Address(r20, r21, (Address::ScaleFactor)1, -0x49257f48));", // IID20480 - "__ movzwq(r20, Address(r21, r22, (Address::ScaleFactor)0, +0x6679f3c2));", // IID20481 - "__ movzwq(r21, Address(r22, r23, (Address::ScaleFactor)0, -0x57f352eb));", // IID20482 - "__ movzwq(r22, Address(r23, r24, (Address::ScaleFactor)3, +0xbde57d3));", // IID20483 - "__ movzwq(r23, Address(r24, r25, (Address::ScaleFactor)3, +0x119108cb));", // IID20484 - "__ movzwq(r24, Address(r25, r26, (Address::ScaleFactor)1, +0x61769418));", // IID20485 - "__ movzwq(r25, Address(r26, r27, (Address::ScaleFactor)1, -0x677a075c));", // IID20486 - "__ movzwq(r26, Address(r27, r28, (Address::ScaleFactor)0, +0x2c1bc0d1));", // IID20487 - "__ movzwq(r27, Address(r28, r29, (Address::ScaleFactor)0, +0x21ed9074));", // IID20488 - "__ movzwq(r28, Address(r29, r30, (Address::ScaleFactor)0, -0x3cac330e));", // IID20489 - "__ movzwq(r29, Address(r30, r31, (Address::ScaleFactor)0, -0xe08f796));", // IID20490 - "__ movzwq(r30, Address(r31, rcx, (Address::ScaleFactor)0, -0x49123d01));", // IID20491 - "__ movzwq(r31, Address(rcx, rdx, (Address::ScaleFactor)3, -0x464ab31e));", // IID20492 - "__ movsbq(rcx, Address(rdx, rbx, (Address::ScaleFactor)3, +0x1582bfee));", // IID20493 - "__ movsbq(rdx, Address(rbx, r8, (Address::ScaleFactor)0, -0xd56ef74));", // IID20494 - "__ movsbq(rbx, Address(r8, +0x240703a9));", // IID20495 - "__ movsbq(r8, Address(r9, r10, (Address::ScaleFactor)1, +0x6dcc0437));", // IID20496 - "__ movsbq(r9, Address(r10, +0x7d731419));", // IID20497 - "__ movsbq(r10, Address(r11, r12, (Address::ScaleFactor)1, +0x1c4c152b));", // IID20498 - "__ movsbq(r11, Address(r12, r13, (Address::ScaleFactor)2, -0x8d4865d));", // IID20499 - "__ movsbq(r12, Address(r13, r14, (Address::ScaleFactor)1, -0x2de1591d));", // IID20500 - "__ movsbq(r13, Address(r14, r15, (Address::ScaleFactor)0, -0x61ecc01d));", // IID20501 - "__ movsbq(r14, Address(r15, r16, (Address::ScaleFactor)0, +0x4706dd48));", // IID20502 - "__ movsbq(r15, Address(r16, r17, (Address::ScaleFactor)0, +0x771794a1));", // IID20503 - "__ movsbq(r16, Address(r17, r18, (Address::ScaleFactor)3, -0x607d2e59));", // IID20504 - "__ movsbq(r17, Address(r18, +0x470d0543));", // IID20505 - "__ movsbq(r18, Address(r19, r20, (Address::ScaleFactor)1, +0x29456f7e));", // IID20506 - "__ movsbq(r19, Address(r20, +0x1e080420));", // IID20507 - "__ movsbq(r20, Address(r21, r22, (Address::ScaleFactor)2, +0x6526eae0));", // IID20508 - "__ movsbq(r21, Address(r22, r23, (Address::ScaleFactor)0, -0x2b218621));", // IID20509 - "__ movsbq(r22, Address(r23, r24, (Address::ScaleFactor)0, +0x7fa42c3a));", // IID20510 - "__ movsbq(r23, Address(r24, -0x4c2b5ded));", // IID20511 - "__ movsbq(r24, Address(r25, r26, (Address::ScaleFactor)0, +0x408a5294));", // IID20512 - "__ movsbq(r25, Address(r26, -0x416c19c4));", // IID20513 - "__ movsbq(r26, Address(r27, r28, (Address::ScaleFactor)0, -0x68d24bea));", // IID20514 - "__ movsbq(r27, Address(r28, r29, (Address::ScaleFactor)0, +0x42506abb));", // IID20515 - "__ movsbq(r28, Address(r29, r30, (Address::ScaleFactor)2, -0xaddf2f8));", // IID20516 - "__ movsbq(r29, Address(r30, -0x22052012));", // IID20517 - "__ movsbq(r30, Address(r31, rcx, (Address::ScaleFactor)3, +0x701bd3e8));", // IID20518 - "__ movsbq(r31, Address(rcx, rdx, (Address::ScaleFactor)0, -0x6b92eec1));", // IID20519 - "__ movswq(rcx, Address(rdx, rbx, (Address::ScaleFactor)1, +0xca88d0d));", // IID20520 - "__ movswq(rdx, Address(rbx, r8, (Address::ScaleFactor)1, -0x3dcee41b));", // IID20521 - "__ movswq(rbx, Address(r8, r9, (Address::ScaleFactor)3, -0x13295db4));", // IID20522 - "__ movswq(r8, Address(r9, r10, (Address::ScaleFactor)0, -0x7f6cfd1b));", // IID20523 - "__ movswq(r9, Address(r10, r11, (Address::ScaleFactor)1, -0x261effca));", // IID20524 - "__ movswq(r10, Address(r11, r12, (Address::ScaleFactor)2, +0x622cd07a));", // IID20525 - "__ movswq(r11, Address(r12, r13, (Address::ScaleFactor)3, -0x7187fc00));", // IID20526 - "__ movswq(r12, Address(r13, r14, (Address::ScaleFactor)2, -0x1fb3a261));", // IID20527 - "__ movswq(r13, Address(r14, -0xa7e4610));", // IID20528 - "__ movswq(r14, Address(r15, r16, (Address::ScaleFactor)0, -0x2c5a7b52));", // IID20529 - "__ movswq(r15, Address(r16, r17, (Address::ScaleFactor)0, +0x3464583f));", // IID20530 - "__ movswq(r16, Address(r17, r18, (Address::ScaleFactor)3, +0x379af4f));", // IID20531 - "__ movswq(r17, Address(r18, r19, (Address::ScaleFactor)2, +0x356dd2bb));", // IID20532 - "__ movswq(r18, Address(r19, -0x55083fc5));", // IID20533 - "__ movswq(r19, Address(r20, r21, (Address::ScaleFactor)3, +0x704b9ae4));", // IID20534 - "__ movswq(r20, Address(r21, r22, (Address::ScaleFactor)2, +0x65cc5291));", // IID20535 - "__ movswq(r21, Address(r22, r23, (Address::ScaleFactor)2, +0x7a646806));", // IID20536 - "__ movswq(r22, Address(r23, r24, (Address::ScaleFactor)3, -0x4391c71a));", // IID20537 - "__ movswq(r23, Address(r24, r25, (Address::ScaleFactor)1, +0x33fd019b));", // IID20538 - "__ movswq(r24, Address(r25, r26, (Address::ScaleFactor)3, -0x6e49a620));", // IID20539 - "__ movswq(r25, Address(r26, r27, (Address::ScaleFactor)0, +0xbd55fa0));", // IID20540 - "__ movswq(r26, Address(r27, r28, (Address::ScaleFactor)2, +0x5bda2e2f));", // IID20541 - "__ movswq(r27, Address(r28, r29, (Address::ScaleFactor)3, -0x659b3d45));", // IID20542 - "__ movswq(r28, Address(r29, r30, (Address::ScaleFactor)1, +0x63db0a3f));", // IID20543 - "__ movswq(r29, Address(r30, -0x78b5876));", // IID20544 - "__ movswq(r30, Address(r31, rcx, (Address::ScaleFactor)0, +0x11d7ba11));", // IID20545 - "__ movswq(r31, Address(rcx, +0x7a2cc1d3));", // IID20546 - "__ movzbq(rcx, rdx);", // IID20547 - "__ movzbq(rdx, rbx);", // IID20548 - "__ movzbq(rbx, r8);", // IID20549 - "__ movzbq(r8, r9);", // IID20550 - "__ movzbq(r9, r10);", // IID20551 - "__ movzbq(r10, r11);", // IID20552 - "__ movzbq(r11, r12);", // IID20553 - "__ movzbq(r12, r13);", // IID20554 - "__ movzbq(r13, r14);", // IID20555 - "__ movzbq(r14, r15);", // IID20556 - "__ movzbq(r15, r16);", // IID20557 - "__ movzbq(r16, r17);", // IID20558 - "__ movzbq(r17, r18);", // IID20559 - "__ movzbq(r18, r19);", // IID20560 - "__ movzbq(r19, r20);", // IID20561 - "__ movzbq(r20, r21);", // IID20562 - "__ movzbq(r21, r22);", // IID20563 - "__ movzbq(r22, r23);", // IID20564 - "__ movzbq(r23, r24);", // IID20565 - "__ movzbq(r24, r25);", // IID20566 - "__ movzbq(r25, r26);", // IID20567 - "__ movzbq(r26, r27);", // IID20568 - "__ movzbq(r27, r28);", // IID20569 - "__ movzbq(r28, r29);", // IID20570 - "__ movzbq(r29, r30);", // IID20571 - "__ movzbq(r30, r31);", // IID20572 - "__ movzbq(r31, rcx);", // IID20573 - "__ movzwq(rcx, rdx);", // IID20574 - "__ movzwq(rdx, rbx);", // IID20575 - "__ movzwq(rbx, r8);", // IID20576 - "__ movzwq(r8, r9);", // IID20577 - "__ movzwq(r9, r10);", // IID20578 - "__ movzwq(r10, r11);", // IID20579 - "__ movzwq(r11, r12);", // IID20580 - "__ movzwq(r12, r13);", // IID20581 - "__ movzwq(r13, r14);", // IID20582 - "__ movzwq(r14, r15);", // IID20583 - "__ movzwq(r15, r16);", // IID20584 - "__ movzwq(r16, r17);", // IID20585 - "__ movzwq(r17, r18);", // IID20586 - "__ movzwq(r18, r19);", // IID20587 - "__ movzwq(r19, r20);", // IID20588 - "__ movzwq(r20, r21);", // IID20589 - "__ movzwq(r21, r22);", // IID20590 - "__ movzwq(r22, r23);", // IID20591 - "__ movzwq(r23, r24);", // IID20592 - "__ movzwq(r24, r25);", // IID20593 - "__ movzwq(r25, r26);", // IID20594 - "__ movzwq(r26, r27);", // IID20595 - "__ movzwq(r27, r28);", // IID20596 - "__ movzwq(r28, r29);", // IID20597 - "__ movzwq(r29, r30);", // IID20598 - "__ movzwq(r30, r31);", // IID20599 - "__ movzwq(r31, rcx);", // IID20600 - "__ movsbq(rcx, rdx);", // IID20601 - "__ movsbq(rdx, rbx);", // IID20602 - "__ movsbq(rbx, r8);", // IID20603 - "__ movsbq(r8, r9);", // IID20604 - "__ movsbq(r9, r10);", // IID20605 - "__ movsbq(r10, r11);", // IID20606 - "__ movsbq(r11, r12);", // IID20607 - "__ movsbq(r12, r13);", // IID20608 - "__ movsbq(r13, r14);", // IID20609 - "__ movsbq(r14, r15);", // IID20610 - "__ movsbq(r15, r16);", // IID20611 - "__ movsbq(r16, r17);", // IID20612 - "__ movsbq(r17, r18);", // IID20613 - "__ movsbq(r18, r19);", // IID20614 - "__ movsbq(r19, r20);", // IID20615 - "__ movsbq(r20, r21);", // IID20616 - "__ movsbq(r21, r22);", // IID20617 - "__ movsbq(r22, r23);", // IID20618 - "__ movsbq(r23, r24);", // IID20619 - "__ movsbq(r24, r25);", // IID20620 - "__ movsbq(r25, r26);", // IID20621 - "__ movsbq(r26, r27);", // IID20622 - "__ movsbq(r27, r28);", // IID20623 - "__ movsbq(r28, r29);", // IID20624 - "__ movsbq(r29, r30);", // IID20625 - "__ movsbq(r30, r31);", // IID20626 - "__ movsbq(r31, rcx);", // IID20627 - "__ movswq(rcx, rdx);", // IID20628 - "__ movswq(rdx, rbx);", // IID20629 - "__ movswq(rbx, r8);", // IID20630 - "__ movswq(r8, r9);", // IID20631 - "__ movswq(r9, r10);", // IID20632 - "__ movswq(r10, r11);", // IID20633 - "__ movswq(r11, r12);", // IID20634 - "__ movswq(r12, r13);", // IID20635 - "__ movswq(r13, r14);", // IID20636 - "__ movswq(r14, r15);", // IID20637 - "__ movswq(r15, r16);", // IID20638 - "__ movswq(r16, r17);", // IID20639 - "__ movswq(r17, r18);", // IID20640 - "__ movswq(r18, r19);", // IID20641 - "__ movswq(r19, r20);", // IID20642 - "__ movswq(r20, r21);", // IID20643 - "__ movswq(r21, r22);", // IID20644 - "__ movswq(r22, r23);", // IID20645 - "__ movswq(r23, r24);", // IID20646 - "__ movswq(r24, r25);", // IID20647 - "__ movswq(r25, r26);", // IID20648 - "__ movswq(r26, r27);", // IID20649 - "__ movswq(r27, r28);", // IID20650 - "__ movswq(r28, r29);", // IID20651 - "__ movswq(r29, r30);", // IID20652 - "__ movswq(r30, r31);", // IID20653 - "__ movswq(r31, rcx);", // IID20654 - "__ cmpxchgq(rcx, Address(rdx, rbx, (Address::ScaleFactor)1, +0x5d31e725));", // IID20655 - "__ cmpxchgq(rdx, Address(rbx, r8, (Address::ScaleFactor)0, -0x70138231));", // IID20656 - "__ cmpxchgq(rbx, Address(r8, r9, (Address::ScaleFactor)0, -0x2a47f447));", // IID20657 - "__ cmpxchgq(r8, Address(r9, -0x50d1b6d3));", // IID20658 - "__ cmpxchgq(r9, Address(r10, r11, (Address::ScaleFactor)1, -0x59c7976e));", // IID20659 - "__ cmpxchgq(r10, Address(r11, r12, (Address::ScaleFactor)0, -0x64831cf3));", // IID20660 - "__ cmpxchgq(r11, Address(r12, r13, (Address::ScaleFactor)1, +0x70d6616));", // IID20661 - "__ cmpxchgq(r12, Address(r13, r14, (Address::ScaleFactor)2, +0x3dcb655));", // IID20662 - "__ cmpxchgq(r13, Address(r14, -0x259dc446));", // IID20663 - "__ cmpxchgq(r14, Address(r15, r16, (Address::ScaleFactor)3, +0x28521ce9));", // IID20664 - "__ cmpxchgq(r15, Address(r16, r17, (Address::ScaleFactor)2, +0xb2fd52a));", // IID20665 - "__ cmpxchgq(r16, Address(r17, -0x3f102d6c));", // IID20666 - "__ cmpxchgq(r17, Address(r18, r19, (Address::ScaleFactor)2, -0x43be5155));", // IID20667 - "__ cmpxchgq(r18, Address(r19, r20, (Address::ScaleFactor)2, +0x3bfafcd3));", // IID20668 - "__ cmpxchgq(r19, Address(r20, r21, (Address::ScaleFactor)2, -0xbbf2fa));", // IID20669 - "__ cmpxchgq(r20, Address(r21, +0x79321232));", // IID20670 - "__ cmpxchgq(r21, Address(r22, +0x57babd15));", // IID20671 - "__ cmpxchgq(r22, Address(r23, r24, (Address::ScaleFactor)0, -0x546ad306));", // IID20672 - "__ cmpxchgq(r23, Address(r24, r25, (Address::ScaleFactor)2, -0x63efec3d));", // IID20673 - "__ cmpxchgq(r24, Address(r25, r26, (Address::ScaleFactor)2, -0x2570164));", // IID20674 - "__ cmpxchgq(r25, Address(r26, r27, (Address::ScaleFactor)0, +0x4b0f9a57));", // IID20675 - "__ cmpxchgq(r26, Address(r27, +0x48db79fc));", // IID20676 - "__ cmpxchgq(r27, Address(r28, r29, (Address::ScaleFactor)1, +0x1fb62fc6));", // IID20677 - "__ cmpxchgq(r28, Address(r29, r30, (Address::ScaleFactor)0, +0xf481314));", // IID20678 - "__ cmpxchgq(r29, Address(r30, r31, (Address::ScaleFactor)2, +0x6bc86fe0));", // IID20679 - "__ cmpxchgq(r30, Address(r31, rcx, (Address::ScaleFactor)3, -0x67a82045));", // IID20680 - "__ cmpxchgq(r31, Address(rcx, rdx, (Address::ScaleFactor)3, -0x7e8a1d6d));", // IID20681 + "__ shldl(r22, r14);", // IID0 +#endif // _LP64 + "__ shrdl(rcx, rbx);", // IID1 +#ifdef _LP64 + "__ adcl(r24, r18);", // IID2 + "__ cmpl(r8, r19);", // IID3 + "__ imull(r25, r19);", // IID4 + "__ popcntl(r19, r15);", // IID5 + "__ sbbl(r21, r19);", // IID6 + "__ subl(r17, r29);", // IID7 + "__ tzcntl(r21, rdx);", // IID8 + "__ lzcntl(rcx, r23);", // IID9 + "__ addl(r10, r11);", // IID10 + "__ andl(r21, r14);", // IID11 + "__ orl(r12, r30);", // IID12 + "__ xorl(r19, r30);", // IID13 + "__ movl(r27, r11);", // IID14 + "__ bsfl(r10, r12);", // IID15 + "__ bsrl(r16, r10);", // IID16 + "__ xchgl(r16, r28);", // IID17 + "__ testl(r25, r16);", // IID18 + "__ addb(Address(r27, rdx, (Address::ScaleFactor)1, +0x6f304723), rcx);", // IID19 + "__ addw(Address(r19, rcx, (Address::ScaleFactor)2, +0x17244c57), r17);", // IID20 + "__ addl(Address(r23, r16, (Address::ScaleFactor)1, +0x138df419), r19);", // IID21 + "__ adcl(Address(r8, r11, (Address::ScaleFactor)3, -0x164f7a73), rcx);", // IID22 + "__ andb(Address(rdx, r17, (Address::ScaleFactor)3, +0x4df7f181), r22);", // IID23 + "__ andl(Address(r15, -0x41884769), r23);", // IID24 + "__ cmpb(Address(r20, r18, (Address::ScaleFactor)0, -0x1b827588), r8);", // IID25 + "__ cmpw(Address(r9, r22, (Address::ScaleFactor)3, +0x564ead70), r31);", // IID26 + "__ cmpl(Address(r10, r24, (Address::ScaleFactor)2, +0xf08ffec), rcx);", // IID27 + "__ orb(Address(r27, r15, (Address::ScaleFactor)0, +0xf18eac7), r19);", // IID28 + "__ orl(Address(r16, r31, (Address::ScaleFactor)2, +0x3a452790), r12);", // IID29 + "__ xorb(Address(r20, r13, (Address::ScaleFactor)0, +0x61dde6b7), r10);", // IID30 + "__ xorl(Address(r27, -0x77a99463), rbx);", // IID31 + "__ subl(Address(r9, r11, (Address::ScaleFactor)0, +0x4e20f145), r10);", // IID32 + "__ movb(Address(r23, r23, (Address::ScaleFactor)0, -0x3f51b77), r10);", // IID33 + "__ movl(Address(r31, r22, (Address::ScaleFactor)0, +0xfac5466), r30);", // IID34 + "__ xaddb(Address(rbx, -0x70025991), r31);", // IID35 + "__ xaddw(Address(r17, r26, (Address::ScaleFactor)1, -0x530c0221), r29);", // IID36 + "__ xaddl(Address(r9, r21, (Address::ScaleFactor)0, -0x7b7336bf), r17);", // IID37 + "__ adcl(Address(r24, r12, (Address::ScaleFactor)2, +0x691b07e5), 65536);", // IID38 + "__ andl(Address(r14, r9, (Address::ScaleFactor)0, -0x115d5957), 16);", // IID39 + "__ addb(Address(r21, -0x1d3e83ad), 64);", // IID40 + "__ addw(Address(r12, +0x3a7acf9a), 4096);", // IID41 + "__ addl(Address(r30, r14, (Address::ScaleFactor)1, -0x2073ed16), 256);", // IID42 + "__ cmpb(Address(r28, r18, (Address::ScaleFactor)0, +0x6fd326d5), 16);", // IID43 + "__ cmpw(Address(r12, r14, (Address::ScaleFactor)1, +0x2ae6568f), 256);", // IID44 + "__ cmpl(Address(r24, r30, (Address::ScaleFactor)3, -0x11b9aeac), 1048576);", // IID45 + "__ sarl(Address(r22, r30, (Address::ScaleFactor)2, +0x60cb9115), 1);", // IID46 + "__ sall(Address(r31, r8, (Address::ScaleFactor)1, +0x236d8ab9), 16);", // IID47 + "__ sbbl(Address(r21, r12, (Address::ScaleFactor)1, -0x7d9b9f18), 16777216);", // IID48 + "__ shrl(Address(r29, r17, (Address::ScaleFactor)0, -0x7c54f216), 8);", // IID49 + "__ subl(Address(r8, r27, (Address::ScaleFactor)2, -0x1190e2c6), 16);", // IID50 + "__ xorl(Address(rdx, +0x50dd3396), 1048576);", // IID51 + "__ orb(Address(r20, -0x7dd1f614), 64);", // IID52 + "__ orl(Address(r18, +0x6f852a9f), 16);", // IID53 + "__ movb(Address(r20, r8, (Address::ScaleFactor)2, +0x436e2aa), 1);", // IID54 + "__ movl(Address(rcx, r14, (Address::ScaleFactor)1, +0x883df84), 16);", // IID55 + "__ testb(Address(r11, r10, (Address::ScaleFactor)1, -0x1fc2039b), 16);", // IID56 + "__ testl(Address(r29, +0x73b9f003), 67108864);", // IID57 + "__ cmpl_imm32(Address(r29, rcx, (Address::ScaleFactor)2, +0x4ca2b092), 4194304);", // IID58 + "__ addl(r8, Address(rdx, r24, (Address::ScaleFactor)2, -0x1e1524dc));", // IID59 + "__ andl(r19, Address(r20, r20, (Address::ScaleFactor)1, +0x6286892));", // IID60 + "__ cmpb(r11, Address(r13, -0x42e0bf9e));", // IID61 + "__ cmpl(r20, Address(rbx, r30, (Address::ScaleFactor)3, -0x30497735));", // IID62 + "__ lzcntl(r8, Address(rdx, r9, (Address::ScaleFactor)1, +0xe2e99e));", // IID63 + "__ orl(r9, Address(r29, r25, (Address::ScaleFactor)1, +0x50169f63));", // IID64 + "__ adcl(r17, Address(r31, r21, (Address::ScaleFactor)3, +0x79efd170));", // IID65 + "__ imull(r23, Address(r8, -0xa521f73));", // IID66 + "__ popcntl(r30, Address(r10, +0x44352901));", // IID67 + "__ sbbl(r16, Address(r18, r14, (Address::ScaleFactor)1, -0xda8278a));", // IID68 + "__ subl(r17, Address(r22, +0x2d63aab3));", // IID69 + "__ tzcntl(r23, Address(r21, r11, (Address::ScaleFactor)0, -0x18bc7469));", // IID70 + "__ xorb(r9, Address(r19, rdx, (Address::ScaleFactor)0, -0x5f6207ed));", // IID71 + "__ xorw(r11, Address(r21, r10, (Address::ScaleFactor)2, -0x63c79f2b));", // IID72 + "__ xorl(r29, Address(r31, rcx, (Address::ScaleFactor)3, +0x34d93c0f));", // IID73 + "__ movb(r17, Address(r8, r18, (Address::ScaleFactor)2, -0x38ff3ad7));", // IID74 + "__ movl(r31, Address(r20, r11, (Address::ScaleFactor)2, -0x1d23470c));", // IID75 + "__ leal(r31, Address(rbx, r12, (Address::ScaleFactor)2, -0x3b4a4215));", // IID76 + "__ xchgb(r20, Address(r30, r24, (Address::ScaleFactor)0, -0x5c4e82bc));", // IID77 + "__ xchgw(r13, Address(r10, r21, (Address::ScaleFactor)3, +0x19bd4a03));", // IID78 + "__ xchgl(r23, Address(r16, r13, (Address::ScaleFactor)2, -0x6a0293d6));", // IID79 + "__ testl(r13, Address(r9, +0x34a6ff61));", // IID80 + "__ addb(r23, 4);", // IID81 + "__ addl(r28, 65536);", // IID82 +#endif // _LP64 + "__ andl(rdx, 65536);", // IID83 +#ifdef _LP64 + "__ adcl(r27, 1048576);", // IID84 + "__ cmpb(r13, 4);", // IID85 + "__ cmpl(r29, 268435456);", // IID86 + "__ rcll(r20, 16);", // IID87 + "__ roll(r25, 2);", // IID88 +#endif // _LP64 + "__ rorl(rdx, 4);", // IID89 + "__ sarl(rcx, 1);", // IID90 +#ifdef _LP64 + "__ sall(r19, 16);", // IID91 + "__ sbbl(r9, 1);", // IID92 + "__ shll(r20, 8);", // IID93 +#endif // _LP64 + "__ shrl(rcx, 1);", // IID94 +#ifdef _LP64 + "__ subl(r19, 16777216);", // IID95 + "__ xorl(r16, 4096);", // IID96 + "__ movl(r24, 65536);", // IID97 + "__ testb(r20, 64);", // IID98 + "__ testl(r28, 16777216);", // IID99 + "__ subl_imm32(r29, 262144);", // IID100 + "__ cmovl(Assembler::Condition::overflow, r8, Address(r26, r28, (Address::ScaleFactor)1, +0x210f06d));", // IID101 + "__ cmovl(Assembler::Condition::noOverflow, rbx, Address(r18, rbx, (Address::ScaleFactor)0, -0x264fce2a));", // IID102 + "__ cmovl(Assembler::Condition::below, r29, Address(r17, r24, (Address::ScaleFactor)0, +0x46c06acb));", // IID103 + "__ cmovl(Assembler::Condition::aboveEqual, r17, Address(r25, r11, (Address::ScaleFactor)3, -0x3b21f455));", // IID104 + "__ cmovl(Assembler::Condition::zero, r23, Address(r20, r31, (Address::ScaleFactor)0, -0x5a03317b));", // IID105 + "__ cmovl(Assembler::Condition::notZero, r31, Address(r31, r15, (Address::ScaleFactor)2, -0x53fc2e65));", // IID106 + "__ cmovl(Assembler::Condition::belowEqual, r28, Address(rdx, rcx, (Address::ScaleFactor)3, -0x3bc9229f));", // IID107 + "__ cmovl(Assembler::Condition::above, r31, Address(rdx, r19, (Address::ScaleFactor)3, +0x7bf1761c));", // IID108 + "__ cmovl(Assembler::Condition::negative, rdx, Address(r17, r18, (Address::ScaleFactor)0, -0x1da2fc03));", // IID109 + "__ cmovl(Assembler::Condition::positive, r9, Address(r21, r23, (Address::ScaleFactor)2, -0x2799454a));", // IID110 + "__ cmovl(Assembler::Condition::parity, r27, Address(r13, -0x654c249c));", // IID111 + "__ cmovl(Assembler::Condition::noParity, rdx, Address(r24, r10, (Address::ScaleFactor)3, +0x6c96beb2));", // IID112 + "__ cmovl(Assembler::Condition::less, r9, Address(rcx, r8, (Address::ScaleFactor)3, +0x573e1892));", // IID113 + "__ cmovl(Assembler::Condition::greaterEqual, r31, Address(r26, r14, (Address::ScaleFactor)2, +0x717110b1));", // IID114 + "__ cmovl(Assembler::Condition::lessEqual, r24, Address(r19, r14, (Address::ScaleFactor)2, +0x119faad7));", // IID115 + "__ cmovl(Assembler::Condition::greater, r12, Address(r13, r12, (Address::ScaleFactor)0, +0xd537805));", // IID116 + "__ setb(Assembler::Condition::overflow, r10);", // IID117 +#endif // _LP64 + "__ setb(Assembler::Condition::noOverflow, rbx);", // IID118 +#ifdef _LP64 + "__ setb(Assembler::Condition::below, r13);", // IID119 + "__ setb(Assembler::Condition::aboveEqual, r23);", // IID120 + "__ setb(Assembler::Condition::zero, r24);", // IID121 + "__ setb(Assembler::Condition::notZero, r15);", // IID122 + "__ setb(Assembler::Condition::belowEqual, r21);", // IID123 + "__ setb(Assembler::Condition::above, r17);", // IID124 + "__ setb(Assembler::Condition::negative, r10);", // IID125 + "__ setb(Assembler::Condition::positive, r24);", // IID126 + "__ setb(Assembler::Condition::parity, r16);", // IID127 + "__ setb(Assembler::Condition::noParity, r28);", // IID128 + "__ setb(Assembler::Condition::less, r11);", // IID129 + "__ setb(Assembler::Condition::greaterEqual, r25);", // IID130 + "__ setb(Assembler::Condition::lessEqual, r18);", // IID131 + "__ setb(Assembler::Condition::greater, r14);", // IID132 + "__ divl(r30);", // IID133 + "__ idivl(r23);", // IID134 + "__ imull(r28);", // IID135 + "__ mull(r31);", // IID136 + "__ negl(r27);", // IID137 + "__ notl(r16);", // IID138 +#endif // _LP64 + "__ roll(rdx);", // IID139 +#ifdef _LP64 + "__ rorl(r12);", // IID140 + "__ sarl(r14);", // IID141 + "__ sall(r19);", // IID142 + "__ shll(r10);", // IID143 + "__ shrl(r20);", // IID144 +#endif // _LP64 + "__ incrementl(rbx);", // IID145 +#ifdef _LP64 + "__ decrementl(r14);", // IID146 + "__ mull(Address(r12, -0x57a4fa5e));", // IID147 + "__ negl(Address(rbx, -0x3db4cfc7));", // IID148 + "__ sarl(Address(r21, -0x7e70ad30));", // IID149 + "__ sall(Address(r21, r28, (Address::ScaleFactor)3, -0x23456bc9));", // IID150 + "__ shrl(Address(r11, r13, (Address::ScaleFactor)1, -0xe00fc44));", // IID151 + "__ incrementl(Address(r19, -0x5e6ad56a));", // IID152 + "__ decrementl(Address(rcx, r20, (Address::ScaleFactor)0, -0x2530b9c4));", // IID153 + "__ imull(r17, Address(r8, r24, (Address::ScaleFactor)1, +0x2efecf26), 1048576);", // IID154 + "__ imull(r9, r8, 268435456);", // IID155 + "__ shldl(r10, r15, 8);", // IID156 + "__ shrdl(r29, r22, 2);", // IID157 + "__ movzbl(r14, Address(r19, -0x6c33584));", // IID158 + "__ movzwl(r25, Address(r12, r27, (Address::ScaleFactor)0, +0x2d05fa44));", // IID159 + "__ movsbl(r12, Address(r30, r15, (Address::ScaleFactor)0, +0x65bccac1));", // IID160 + "__ movswl(r26, Address(r10, r24, (Address::ScaleFactor)0, +0x1d707459));", // IID161 + "__ movzbl(r18, r8);", // IID162 + "__ movzwl(r31, r9);", // IID163 + "__ movsbl(r15, r22);", // IID164 + "__ movswl(r24, r24);", // IID165 + "__ cmpxchgb(r18, Address(r12, r28, (Address::ScaleFactor)1, -0x4855a65f));", // IID166 + "__ cmpxchgw(r28, Address(rdx, r14, (Address::ScaleFactor)3, +0x16f5a558));", // IID167 + "__ cmpxchgl(rdx, Address(r18, rdx, (Address::ScaleFactor)1, +0x50258d9c));", // IID168 + "__ adcq(r9, rbx);", // IID169 + "__ cmpq(r26, r24);", // IID170 + "__ imulq(r14, rdx);", // IID171 + "__ popcntq(r25, r30);", // IID172 + "__ sbbq(r24, r19);", // IID173 + "__ subq(r15, r11);", // IID174 + "__ tzcntq(r18, r21);", // IID175 + "__ lzcntq(r15, r27);", // IID176 + "__ addq(r21, r20);", // IID177 + "__ andq(r11, r26);", // IID178 + "__ orq(r29, r15);", // IID179 + "__ xorq(r24, r21);", // IID180 + "__ movq(r14, r13);", // IID181 + "__ bsfq(r11, r22);", // IID182 + "__ bsrq(r14, r23);", // IID183 + "__ btq(r22, rcx);", // IID184 + "__ xchgq(r25, r29);", // IID185 + "__ testq(r15, r8);", // IID186 + "__ addq(Address(r14, r10, (Address::ScaleFactor)3, -0x36e6fa02), r16);", // IID187 + "__ andq(Address(rbx, r8, (Address::ScaleFactor)3, -0x279a21b8), r18);", // IID188 + "__ cmpq(Address(r24, +0x62c3c9ef), r13);", // IID189 + "__ orq(Address(r11, r22, (Address::ScaleFactor)2, +0x419fb378), r11);", // IID190 + "__ xorq(Address(r25, r14, (Address::ScaleFactor)2, -0x32b449dd), r13);", // IID191 + "__ subq(Address(r28, r31, (Address::ScaleFactor)3, +0x6ce1d361), r19);", // IID192 + "__ movq(Address(r25, r25, (Address::ScaleFactor)2, -0x3f5767c), r11);", // IID193 + "__ xaddq(Address(r19, r17, (Address::ScaleFactor)3, +0x1febf06c), r20);", // IID194 + "__ andq(Address(r26, r17, (Address::ScaleFactor)1, -0x6b865f05), 65536);", // IID195 + "__ addq(Address(r27, -0x6ec95d87), 65536);", // IID196 + "__ cmpq(Address(rbx, r26, (Address::ScaleFactor)2, -0x1eabea4), 1048576);", // IID197 + "__ sarq(Address(rbx, r19, (Address::ScaleFactor)0, +0x3c3c3de8), 8);", // IID198 + "__ salq(Address(r20, r23, (Address::ScaleFactor)1, +0x68519b6d), 8);", // IID199 + "__ sbbq(Address(r31, r22, (Address::ScaleFactor)0, -0x7b3d1e85), 16);", // IID200 + "__ shrq(Address(r15, r18, (Address::ScaleFactor)3, +0x4d9d824), 4);", // IID201 + "__ subq(Address(rdx, r29, (Address::ScaleFactor)2, +0x7e4aea85), 1);", // IID202 + "__ xorq(Address(r23, r10, (Address::ScaleFactor)1, +0x2895c620), 16777216);", // IID203 + "__ orq(Address(r14, r13, (Address::ScaleFactor)0, -0x771b399b), 1);", // IID204 + "__ movq(Address(r22, -0x63459b5a), 256);", // IID205 + "__ testq(Address(r13, -0xb9691c5), -1);", // IID206 + "__ addq(r17, Address(r15, -0x51b64b0d));", // IID207 + "__ andq(rcx, Address(r16, rcx, (Address::ScaleFactor)3, -0x1c8e4b54));", // IID208 + "__ cmpq(r23, Address(r17, rcx, (Address::ScaleFactor)3, -0x44705560));", // IID209 + "__ lzcntq(r19, Address(r19, +0x487fe792));", // IID210 + "__ orq(r11, Address(r17, -0x65de4329));", // IID211 + "__ adcq(r29, Address(r9, -0x7092dc03));", // IID212 + "__ imulq(r9, Address(r26, r26, (Address::ScaleFactor)3, -0x118287f7));", // IID213 + "__ popcntq(r19, Address(r15, r19, (Address::ScaleFactor)1, -0x6e31ef95));", // IID214 + "__ sbbq(r30, Address(r23, -0x46545c5e));", // IID215 + "__ subq(r23, Address(r31, r18, (Address::ScaleFactor)3, +0x663c37d8));", // IID216 + "__ tzcntq(r24, Address(r24, r25, (Address::ScaleFactor)3, -0x465a78f1));", // IID217 + "__ xorq(r14, Address(r15, r19, (Address::ScaleFactor)1, +0x4196affa));", // IID218 + "__ movq(rdx, Address(r25, r29, (Address::ScaleFactor)1, +0x115a6157));", // IID219 + "__ leaq(r19, Address(r28, r31, (Address::ScaleFactor)2, +0x6b82f933));", // IID220 + "__ cvttsd2siq(rcx, Address(r24, r21, (Address::ScaleFactor)3, -0x39dc99eb));", // IID221 + "__ xchgq(r29, Address(r17, r24, (Address::ScaleFactor)3, +0x5902f01d));", // IID222 + "__ testq(r12, Address(r24, r29, (Address::ScaleFactor)2, +0x8865bfc));", // IID223 + "__ addq(r10, 16);", // IID224 + "__ andq(r26, 256);", // IID225 + "__ adcq(rcx, 1);", // IID226 + "__ cmpq(r21, 65536);", // IID227 + "__ rclq(r28, 4);", // IID228 + "__ rcrq(r28, 16);", // IID229 + "__ rolq(r18, 1);", // IID230 + "__ rorq(r26, 2);", // IID231 + "__ sarq(r19, 2);", // IID232 + "__ salq(r14, 8);", // IID233 + "__ sbbq(r10, 65536);", // IID234 + "__ shlq(r30, 1);", // IID235 + "__ shrq(r15, 8);", // IID236 + "__ subq(r21, 1048576);", // IID237 + "__ xorq(rbx, 268435456);", // IID238 + "__ movq(r19, 16);", // IID239 + "__ mov64(r19, 17179869184);", // IID240 + "__ btq(r21, 1);", // IID241 + "__ testq(r15, -65536);", // IID242 + "__ orq_imm32(r21, 1073741824);", // IID243 + "__ subq_imm32(r19, 65536);", // IID244 + "__ cmovq(Assembler::Condition::overflow, r15, Address(r29, -0x5c98219a));", // IID245 + "__ cmovq(Assembler::Condition::noOverflow, rcx, Address(r21, +0x22cc581));", // IID246 + "__ cmovq(Assembler::Condition::below, r15, Address(r29, r13, (Address::ScaleFactor)2, -0x5e968fb9));", // IID247 + "__ cmovq(Assembler::Condition::aboveEqual, r26, Address(r24, +0x440c6894));", // IID248 + "__ cmovq(Assembler::Condition::zero, r17, Address(r23, r26, (Address::ScaleFactor)3, +0x23558b4e));", // IID249 + "__ cmovq(Assembler::Condition::notZero, r9, Address(r16, r29, (Address::ScaleFactor)3, -0x1289a3c9));", // IID250 + "__ cmovq(Assembler::Condition::belowEqual, r8, Address(r11, -0x49e134cc));", // IID251 + "__ cmovq(Assembler::Condition::above, r26, Address(r11, r20, (Address::ScaleFactor)1, -0x3ef9057a));", // IID252 + "__ cmovq(Assembler::Condition::negative, r11, Address(r26, r13, (Address::ScaleFactor)2, +0x4bd18f9f));", // IID253 + "__ cmovq(Assembler::Condition::positive, r8, Address(r9, r11, (Address::ScaleFactor)3, +0x4b42a528));", // IID254 + "__ cmovq(Assembler::Condition::parity, r12, Address(r19, r9, (Address::ScaleFactor)1, +0x68559a1c));", // IID255 + "__ cmovq(Assembler::Condition::noParity, r22, Address(r18, r17, (Address::ScaleFactor)1, +0x2c4d8e80));", // IID256 + "__ cmovq(Assembler::Condition::less, r26, Address(r18, r30, (Address::ScaleFactor)0, -0x2ae8896e));", // IID257 + "__ cmovq(Assembler::Condition::greaterEqual, r22, Address(r11, +0x4fefa622));", // IID258 + "__ cmovq(Assembler::Condition::lessEqual, r28, Address(r18, r27, (Address::ScaleFactor)1, +0x6b7a8c34));", // IID259 + "__ cmovq(Assembler::Condition::greater, r20, Address(r23, r20, (Address::ScaleFactor)0, -0x12e725c5));", // IID260 + "__ call(r9);", // IID261 + "__ divq(r22);", // IID262 + "__ idivq(r29);", // IID263 + "__ imulq(rbx);", // IID264 + "__ mulq(r27);", // IID265 + "__ negq(rbx);", // IID266 + "__ notq(r17);", // IID267 + "__ rolq(r25);", // IID268 + "__ rorq(rbx);", // IID269 + "__ sarq(r17);", // IID270 + "__ salq(r28);", // IID271 + "__ shlq(r28);", // IID272 + "__ shrq(r30);", // IID273 + "__ incrementq(r27);", // IID274 + "__ decrementq(rdx);", // IID275 + "__ pushp(r27);", // IID276 + "__ popp(r10);", // IID277 + "__ call(Address(r27, -0x22db8705));", // IID278 + "__ mulq(Address(r27, r21, (Address::ScaleFactor)0, -0x1f59ff9c));", // IID279 + "__ negq(Address(r19, rcx, (Address::ScaleFactor)3, +0x7a47b812));", // IID280 + "__ sarq(Address(r18, r21, (Address::ScaleFactor)1, -0x48857a46));", // IID281 + "__ salq(Address(r24, -0x7a2bda2c));", // IID282 + "__ shrq(Address(r24, +0x1abd92f));", // IID283 + "__ incrementq(Address(r9, r9, (Address::ScaleFactor)3, +0x31a92520));", // IID284 + "__ decrementq(Address(r9, r8, (Address::ScaleFactor)0, +0x7f14b4bd));", // IID285 + "__ imulq(r14, Address(r29, r15, (Address::ScaleFactor)1, +0x5281cf9c), 256);", // IID286 + "__ imulq(r16, r28, 1048576);", // IID287 + "__ shldq(r17, r24, 2);", // IID288 + "__ shrdq(r16, r11, 2);", // IID289 + "__ pop2(r10, r11);", // IID290 + "__ pop2p(r15, r24);", // IID291 + "__ push2(r28, r11);", // IID292 + "__ push2p(r12, r31);", // IID293 + "__ movzbq(r24, Address(r22, r16, (Address::ScaleFactor)0, +0x511be837));", // IID294 + "__ movzwq(r15, Address(r15, r26, (Address::ScaleFactor)2, -0x38794ee));", // IID295 + "__ movsbq(r15, Address(r25, r16, (Address::ScaleFactor)3, -0x7a092741));", // IID296 + "__ movswq(rdx, Address(r28, r19, (Address::ScaleFactor)2, +0x79da6a));", // IID297 + "__ movzbq(r27, r9);", // IID298 + "__ movzwq(r25, r21);", // IID299 + "__ movsbq(r14, r12);", // IID300 + "__ movswq(r23, r11);", // IID301 + "__ cmpxchgq(r30, Address(r12, -0x65a974df));", // IID302 #endif // _LP64 }; // END Generated code -- do not edit diff --git a/test/hotspot/gtest/x86/test_assemblerx86.cpp b/test/hotspot/gtest/x86/test_assemblerx86.cpp index d8f26f8dc1c..30ecd87793c 100644 --- a/test/hotspot/gtest/x86/test_assemblerx86.cpp +++ b/test/hotspot/gtest/x86/test_assemblerx86.cpp @@ -67,6 +67,9 @@ static void asm_check(const uint8_t *insns, const uint8_t *insns1, const unsigne TEST_VM(AssemblerX86, validate) { FlagSetting flag_change_apx(UseAPX, true); + VM_Version::set_bmi_cpuFeatures(); + VM_Version::set_evex_cpuFeatures(); + VM_Version::set_avx_cpuFeatures(); VM_Version::set_apx_cpuFeatures(); BufferBlob* b = BufferBlob::create("x64Test", 500000); CodeBuffer code(b); @@ -74,7 +77,8 @@ TEST_VM(AssemblerX86, validate) { address entry = __ pc(); // To build asmtest.out.h, ensure you have binutils version 2.34 or higher, then run: - // python3 x86-asmtest.py | expand > asmtest.out.h + // python3 x86-asmtest.py | expand > asmtest.out.h to generate tests with random inputs + // python3 x86-asmtest.py --full | expand > asmtest.out.h to generate tests with all possible inputs #include "asmtest.out.h" asm_check((const uint8_t *)entry, (const uint8_t *)insns, insns_lens, insns_strs, sizeof(insns_lens) / sizeof(insns_lens[0])); diff --git a/test/hotspot/gtest/x86/x86-asmtest.py b/test/hotspot/gtest/x86/x86-asmtest.py index 47fba6b56c4..c09fa80138d 100644 --- a/test/hotspot/gtest/x86/x86-asmtest.py +++ b/test/hotspot/gtest/x86/x86-asmtest.py @@ -20,6 +20,7 @@ # questions. import os +import sys import platform import random import re @@ -305,7 +306,7 @@ def __init__(self, name, aname, width, reg_width, reg1, reg2): } def is_64_reg(reg): - return reg in {'r8', 'r9', 'r10', 'r11', 'r12', 'r13', 'r14', 'r15'} + return reg in {'r8', 'r9', 'r10', 'r11', 'r12', 'r13', 'r14', 'r15', 'r16', 'r17', 'r18', 'r19', 'r20', 'r21', 'r22', 'r23', 'r24', 'r25', 'r26', 'r27', 'r28', 'r29', 'r30', 'r31'} def print_instruction(instr, lp64_flag, print_lp64_flag): cstr = instr.cstr() @@ -315,10 +316,15 @@ def print_instruction(instr, lp64_flag, print_lp64_flag): insns_strs.append(cstr) outfile.write(f" {astr}\n") -def handle_lp64_flag(i, lp64_flag, print_lp64_flag): - if is_64_reg(test_regs[i]) and not lp64_flag and print_lp64_flag: - print("#ifdef _LP64") - return True +def handle_lp64_flag(lp64_flag, print_lp64_flag, *regs): + for reg in regs: + if is_64_reg(reg): + if not lp64_flag and print_lp64_flag: + print("#ifdef _LP64") + return True + if lp64_flag and print_lp64_flag: + print("#endif // _LP64") + return False return lp64_flag def get_immediate_list(op_name, width): @@ -344,91 +350,178 @@ def get_immediate_list(op_name, width): else: return immediate_map[width] -def generate(RegOp, ops, print_lp64_flag=True): +lp64_flag = False +def generate(RegOp, ops, print_lp64_flag=True, full_set=False): + global lp64_flag for op in ops: op_name = op[0] width = op[2] - lp64_flag = False if RegOp in [RegInstruction, CondRegInstruction]: - for i in range(len(test_regs)): - lp64_flag = handle_lp64_flag(i, lp64_flag, print_lp64_flag) - instr = RegOp(*op, reg=test_regs[i]) + if full_set: + for i in range(len(test_regs)): + test_reg = test_regs[i] + lp64_flag = handle_lp64_flag(lp64_flag, print_lp64_flag, test_reg) + instr = RegOp(*op, reg=test_reg) + print_instruction(instr, lp64_flag, print_lp64_flag) + else: + test_reg = random.choice(test_regs) + lp64_flag = handle_lp64_flag(lp64_flag, print_lp64_flag, test_reg) + instr = RegOp(*op, reg=test_reg) print_instruction(instr, lp64_flag, print_lp64_flag) elif RegOp in [TwoRegInstruction, MoveRegRegInstruction]: - for i in range(len(test_regs)): - lp64_flag = handle_lp64_flag((i + 1) % len(test_regs), lp64_flag, print_lp64_flag) - instr = RegOp(*op, reg1=test_regs[i], reg2=test_regs[(i + 1) % len(test_regs)]) + if full_set: + for i in range(len(test_regs)): + test_reg1 = test_regs[i] + test_reg2 = test_regs[(i + 1) % len(test_regs)] + lp64_flag = handle_lp64_flag(lp64_flag, print_lp64_flag, test_reg1, test_reg2) + instr = RegOp(*op, reg1=test_reg1, reg2=test_reg2) + print_instruction(instr, lp64_flag, print_lp64_flag) + else: + test_reg1 = random.choice(test_regs) + test_reg2 = random.choice(test_regs) + lp64_flag = handle_lp64_flag(lp64_flag, print_lp64_flag, test_reg1, test_reg2) + instr = RegOp(*op, reg1=test_reg1, reg2=test_reg2) print_instruction(instr, lp64_flag, print_lp64_flag) elif RegOp in [MemRegInstruction, RegMemInstruction, MoveRegMemInstruction, CmpxchgInstruction, CondRegMemInstruction]: - for i in range(len(test_regs)): - if test_regs[(i + 2) % len(test_regs)] == 'rsp': - continue - lp64_flag = handle_lp64_flag((i + 2) % len(test_regs), lp64_flag, print_lp64_flag) - instr = RegOp(*op, reg=test_regs[i], mem_base=test_regs[(i + 1) % len(test_regs)], mem_idx=test_regs[(i + 2) % len(test_regs)]) + if full_set: + for i in range(len(test_regs)): + test_reg = test_regs[i] + test_mem_base = test_regs[(i + 1) % len(test_regs)] + test_mem_idx = test_regs[(i + 2) % len(test_regs)] + if test_mem_idx == 'rsp': + continue + lp64_flag = handle_lp64_flag(lp64_flag, print_lp64_flag, test_reg, test_mem_base, test_mem_idx) + instr = RegOp(*op, reg=test_reg, mem_base=test_mem_base, mem_idx=test_mem_idx) + print_instruction(instr, lp64_flag, print_lp64_flag) + else: + filtered_regs = [reg for reg in test_regs if reg != 'rsp'] + test_reg = random.choice(test_regs) + test_mem_base = random.choice(test_regs) + test_mem_idx = random.choice(filtered_regs) + lp64_flag = handle_lp64_flag(lp64_flag, print_lp64_flag, test_reg, test_mem_base, test_mem_idx) + instr = RegOp(*op, reg=test_reg, mem_base=test_mem_base, mem_idx=test_mem_idx) print_instruction(instr, lp64_flag, print_lp64_flag) elif RegOp in [RegImmInstruction]: - imm_list = get_immediate_list(op_name, width) - for i in range(len(test_regs)): - lp64_flag = handle_lp64_flag(i, lp64_flag, print_lp64_flag) - for imm in imm_list: - instr = RegOp(*op, reg=test_regs[i], imm=imm) - print_instruction(instr, lp64_flag, print_lp64_flag) + if full_set: + imm_list = get_immediate_list(op_name, width) + for i in range(len(test_regs)): + test_reg = test_regs[i] + lp64_flag = handle_lp64_flag(lp64_flag, print_lp64_flag, test_reg) + for imm in imm_list: + instr = RegOp(*op, reg=test_reg, imm=imm) + print_instruction(instr, lp64_flag, print_lp64_flag) + else: + test_reg = random.choice(test_regs) + imm = random.choice(get_immediate_list(op_name, width)) + lp64_flag = handle_lp64_flag(lp64_flag, print_lp64_flag, test_reg) + instr = RegOp(*op, reg=test_reg, imm=imm) + print_instruction(instr, lp64_flag, print_lp64_flag) elif RegOp in [MemImmInstruction]: - imm_list = get_immediate_list(op_name, width) - for imm in imm_list: + if full_set: + imm_list = get_immediate_list(op_name, width) + for imm in imm_list: + for i in range(len(test_regs)): + test_mem_base = test_regs[i] + test_mem_idx = test_regs[(i + 1) % len(test_regs)] + if test_mem_idx == 'rsp': + continue + lp64_flag = handle_lp64_flag(lp64_flag, print_lp64_flag, test_mem_base, test_mem_idx) + instr = RegOp(*op, imm=imm, mem_base=test_mem_base, mem_idx=test_mem_idx) + print_instruction(instr, lp64_flag, print_lp64_flag) + + else: + filtered_regs = [reg for reg in test_regs if reg != 'rsp'] + imm = random.choice(get_immediate_list(op_name, width)) + test_mem_base = random.choice(test_regs) + test_mem_idx = random.choice(filtered_regs) + lp64_flag = handle_lp64_flag(lp64_flag, print_lp64_flag, test_mem_base, test_mem_idx) + instr = RegOp(*op, imm=imm, mem_base=test_mem_base, mem_idx=test_mem_idx) + print_instruction(instr, lp64_flag, print_lp64_flag) + + elif RegOp in [MemInstruction]: + if full_set: for i in range(len(test_regs)): - if test_regs[(i + 1) % len(test_regs)] == 'rsp': + test_mem_base = test_regs[i] + test_mem_idx = test_regs[(i + 1) % len(test_regs)] + if test_mem_idx == 'rsp': continue - lp64_flag = handle_lp64_flag((i + 1) % len(test_regs), lp64_flag, print_lp64_flag) - instr = RegOp(*op, imm=imm, mem_base=test_regs[i], mem_idx=test_regs[(i + 1) % len(test_regs)]) + lp64_flag = handle_lp64_flag(lp64_flag, print_lp64_flag, test_mem_base, test_mem_idx) + instr = RegOp(*op, mem_base=test_mem_base, mem_idx=test_mem_idx) print_instruction(instr, lp64_flag, print_lp64_flag) - - elif RegOp in [MemInstruction]: - for i in range(len(test_regs)): - if test_regs[(i + 1) % len(test_regs)] == 'rsp': - continue - lp64_flag = handle_lp64_flag((i + 1) % len(test_regs), lp64_flag, print_lp64_flag) - instr = RegOp(*op, mem_base=test_regs[i], mem_idx=test_regs[(i + 1) % len(test_regs)]) + else: + filtered_regs = [reg for reg in test_regs if reg != 'rsp'] + test_mem_base = random.choice(test_regs) + test_mem_idx = random.choice(filtered_regs) + lp64_flag = handle_lp64_flag(lp64_flag, print_lp64_flag, test_mem_base, test_mem_idx) + instr = RegOp(*op, mem_base=test_mem_base, mem_idx=test_mem_idx) print_instruction(instr, lp64_flag, print_lp64_flag) elif RegOp in [RegRegImmInstruction]: - imm_list = get_immediate_list(op_name, width) - for i in range(len(test_regs)): - lp64_flag = handle_lp64_flag((i + 1) % len(test_regs), lp64_flag, print_lp64_flag) - for imm in imm_list: - instr = RegOp(*op, reg1=test_regs[i], reg2=test_regs[(i + 1) % len(test_regs)], imm=imm) - print_instruction(instr, lp64_flag, print_lp64_flag) + if full_set: + imm_list = get_immediate_list(op_name, width) + for i in range(len(test_regs)): + test_reg1 = test_regs[i] + test_reg2 = test_regs[(i + 1) % len(test_regs)] + lp64_flag = handle_lp64_flag(lp64_flag, print_lp64_flag, test_reg1, test_reg2) + for imm in imm_list: + instr = RegOp(*op, reg1=test_reg1, reg2=test_reg2, imm=imm) + print_instruction(instr, lp64_flag, print_lp64_flag) + else: + imm = random.choice(get_immediate_list(op_name, width)) + test_reg1 = random.choice(test_regs) + test_reg2 = random.choice(test_regs) + lp64_flag = handle_lp64_flag(lp64_flag, print_lp64_flag, test_reg1, test_reg2) + instr = RegOp(*op, reg1=test_reg1, reg2=test_reg2, imm=imm) + print_instruction(instr, lp64_flag, print_lp64_flag) elif RegOp in [RegMemImmInstruction]: - imm_list = get_immediate_list(op_name, width) - for i in range(len(test_regs)): - lp64_flag = handle_lp64_flag((i + 2) % len(test_regs), lp64_flag, print_lp64_flag) - for imm in imm_list: - if test_regs[(i + 2) % len(test_regs)] == 'rsp': + if full_set: + imm_list = get_immediate_list(op_name, width) + for i in range(len(test_regs)): + test_reg = test_regs[i] + test_mem_base = test_regs[(i + 1) % len(test_regs)] + test_mem_idx = test_regs[(i + 2) % len(test_regs)] + if test_mem_idx == 'rsp': continue - instr = RegOp(*op, reg=test_regs[i], mem_base=test_regs[(i + 1) % len(test_regs)], mem_idx=test_regs[(i + 2) % len(test_regs)], imm=imm) - print_instruction(instr, lp64_flag, print_lp64_flag) + lp64_flag = handle_lp64_flag(lp64_flag, print_lp64_flag, test_reg, test_mem_base, test_mem_idx) + for imm in imm_list: + instr = RegOp(*op, reg=test_reg, mem_base=test_mem_base, mem_idx=test_mem_idx, imm=imm) + print_instruction(instr, lp64_flag, print_lp64_flag) + else: + imm = random.choice(get_immediate_list(op_name, width)) + filtered_regs = [reg for reg in test_regs if reg != 'rsp'] + test_reg = random.choice(test_regs) + test_mem_base = random.choice(test_regs) + test_mem_idx = random.choice(filtered_regs) + lp64_flag = handle_lp64_flag(lp64_flag, print_lp64_flag, test_reg, test_mem_base, test_mem_idx) + instr = RegOp(*op, reg=test_reg, imm=imm, mem_base=test_mem_base, mem_idx=test_mem_idx) + print_instruction(instr, lp64_flag, print_lp64_flag) elif RegOp in [Push2Instruction, Pop2Instruction]: - for i in range(len(test_regs)): - lp64_flag = handle_lp64_flag((i + 1) % len(test_regs), lp64_flag, print_lp64_flag) - if test_regs[(i + 1) % len(test_regs)] == 'rsp' or test_regs[i] == 'rsp': - continue - instr = RegOp(*op, reg1=test_regs[i], reg2=test_regs[(i + 1) % len(test_regs)]) + if full_set: + for i in range(len(test_regs)): + test_reg1 = test_regs[i] + test_reg2 = test_regs[(i + 1) % len(test_regs)] + lp64_flag = handle_lp64_flag(lp64_flag, print_lp64_flag, test_reg1, test_reg2) + if test_reg1 == 'rsp' or test_reg2 == 'rsp': + continue + instr = RegOp(*op, reg1=test_reg1, reg2=test_reg2) + print_instruction(instr, lp64_flag, print_lp64_flag) + else: + filtered_regs = [reg for reg in test_regs if reg != 'rsp'] + test_reg1, test_reg2 = random.sample(filtered_regs, 2) + lp64_flag = handle_lp64_flag(lp64_flag, print_lp64_flag, test_reg1, test_reg2) + instr = RegOp(*op, reg1=test_reg1, reg2=test_reg2) print_instruction(instr, lp64_flag, print_lp64_flag) else: raise ValueError(f"Unsupported instruction type: {RegOp}") - if lp64_flag and print_lp64_flag: - print("#endif // _LP64") - lp64_flag = False - def print_with_ifdef(ifdef_flags, items, item_formatter, width): under_defined = False iid = 0 @@ -773,6 +866,8 @@ def print_with_ifdef(ifdef_flags, items, item_formatter, width): print("This script only works on Linux") exit(1) + full_set = '--full' in sys.argv + ifdef_flags = [] insns_strs = [] @@ -783,11 +878,15 @@ def print_with_ifdef(ifdef_flags, items, item_formatter, width): outfile.write(".intel_syntax noprefix\n") for RegOp, ops in instruction_set.items(): - generate(RegOp, ops, True) + generate(RegOp, ops, True, full_set) + + if lp64_flag: + lp64_flag = False + print("#endif // _LP64") print("#ifdef _LP64") for RegOp, ops in instruction_set64.items(): - generate(RegOp, ops, False) + generate(RegOp, ops, False, full_set) print("#endif // _LP64") outfile.close() diff --git a/test/hotspot/jtreg/ProblemList-generational-zgc.txt b/test/hotspot/jtreg/ProblemList-generational-zgc.txt deleted file mode 100644 index 801328ec4ae..00000000000 --- a/test/hotspot/jtreg/ProblemList-generational-zgc.txt +++ /dev/null @@ -1,118 +0,0 @@ -# -# Copyright (c) 2019, 2024, Oracle and/or its affiliates. All rights reserved. -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# This code is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License version 2 only, as -# published by the Free Software Foundation. -# -# This code 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 -# version 2 for more details (a copy is included in the LICENSE file that -# accompanied this code). -# -# You should have received a copy of the GNU General Public License version -# 2 along with this work; if not, write to the Free Software Foundation, -# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -# -# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -# or visit www.oracle.com if you need additional information or have any -# questions. -# - -############################################################################# -# -# List of quarantined tests for testing with Generational ZGC. -# -############################################################################# - -# Quiet all SA tests - -resourcehogs/serviceability/sa/TestHeapDumpForLargeArray.java 8307393 generic-all -serviceability/sa/CDSJMapClstats.java 8307393 generic-all -serviceability/sa/ClhsdbAttach.java 8307393 generic-all -serviceability/sa/ClhsdbAttachDifferentJVMs.java 8307393 generic-all -serviceability/sa/ClhsdbCDSCore.java 8307393 generic-all -serviceability/sa/ClhsdbCDSJstackPrintAll.java 8307393 generic-all -serviceability/sa/ClhsdbClasses.java 8307393 generic-all -serviceability/sa/ClhsdbDumpclass.java 8307393 generic-all -serviceability/sa/ClhsdbDumpheap.java 8307393 generic-all -serviceability/sa/ClhsdbField.java 8307393 generic-all -serviceability/sa/ClhsdbFindPC.java#apa 8307393 generic-all -serviceability/sa/ClhsdbFindPC.java#no-xcomp-core 8307393 generic-all -serviceability/sa/ClhsdbFindPC.java#no-xcomp-process 8307393 generic-all -serviceability/sa/ClhsdbFindPC.java#xcomp-core 8307393 generic-all -serviceability/sa/ClhsdbFindPC.java#xcomp-process 8307393 generic-all -serviceability/sa/ClhsdbFlags.java 8307393 generic-all -serviceability/sa/ClhsdbHistory.java 8307393 generic-all -serviceability/sa/ClhsdbInspect.java 8307393 generic-all -serviceability/sa/ClhsdbJdis.java 8307393 generic-all -serviceability/sa/ClhsdbJhisto.java 8307393 generic-all -serviceability/sa/ClhsdbJstack.java#id0 8307393 generic-all -serviceability/sa/ClhsdbJstack.java#id1 8307393 generic-all -serviceability/sa/ClhsdbJstackWithConcurrentLock.java 8307393 generic-all -serviceability/sa/ClhsdbJstackXcompStress.java 8307393 generic-all -serviceability/sa/ClhsdbLauncher.java 8307393 generic-all -serviceability/sa/ClhsdbLongConstant.java 8307393 generic-all -serviceability/sa/ClhsdbPmap.java 8307393 generic-all -serviceability/sa/ClhsdbPmap.java#core 8307393 generic-all -serviceability/sa/ClhsdbPmap.java#process 8307393 generic-all -serviceability/sa/ClhsdbPrintAll.java 8307393 generic-all -serviceability/sa/ClhsdbPrintAs.java 8307393 generic-all -serviceability/sa/ClhsdbPrintStatics.java 8307393 generic-all -serviceability/sa/ClhsdbPstack.java#core 8307393 generic-all -serviceability/sa/ClhsdbPstack.java#process 8307393 generic-all -serviceability/sa/ClhsdbScanOops.java 8307393 generic-all -serviceability/sa/ClhsdbSource.java 8307393 generic-all -serviceability/sa/ClhsdbSymbol.java 8307393 generic-all -serviceability/sa/ClhsdbThread.java 8307393 generic-all -serviceability/sa/ClhsdbThreadContext.java 8307393 generic-all -serviceability/sa/ClhsdbVmStructsDump.java 8307393 generic-all -serviceability/sa/ClhsdbWhere.java 8307393 generic-all -serviceability/sa/DeadlockDetectionTest.java 8307393 generic-all -serviceability/sa/JhsdbThreadInfoTest.java 8307393 generic-all -serviceability/sa/LingeredAppSysProps.java 8307393 generic-all -serviceability/sa/LingeredAppWithDefaultMethods.java 8307393 generic-all -serviceability/sa/LingeredAppWithEnum.java 8307393 generic-all -serviceability/sa/LingeredAppWithInterface.java 8307393 generic-all -serviceability/sa/LingeredAppWithInvokeDynamic.java 8307393 generic-all -serviceability/sa/LingeredAppWithLock.java 8307393 generic-all -serviceability/sa/LingeredAppWithNativeMethod.java 8307393 generic-all -serviceability/sa/LingeredAppWithRecComputation.java 8307393 generic-all -serviceability/sa/TestClassDump.java 8307393 generic-all -serviceability/sa/TestClhsdbJstackLock.java 8307393 generic-all -serviceability/sa/TestCpoolForInvokeDynamic.java 8307393 generic-all -serviceability/sa/TestDefaultMethods.java 8307393 generic-all -serviceability/sa/TestG1HeapRegion.java 8307393 generic-all -serviceability/sa/TestHeapDumpForInvokeDynamic.java 8307393 generic-all -serviceability/sa/TestInstanceKlassSize.java 8307393 generic-all -serviceability/sa/TestInstanceKlassSizeForInterface.java 8307393 generic-all -serviceability/sa/TestIntConstant.java 8307393 generic-all -serviceability/sa/TestJhsdbJstackLineNumbers.java 8307393 generic-all -serviceability/sa/TestJhsdbJstackLock.java 8307393 generic-all -serviceability/sa/TestJhsdbJstackMixed.java 8307393 generic-all -serviceability/sa/TestJhsdbJstackUpcall.java 8307393 generic-all -serviceability/sa/TestJmapCore.java 8307393 generic-all -serviceability/sa/TestJmapCoreMetaspace.java 8307393 generic-all -serviceability/sa/TestObjectAlignment.java 8307393 generic-all -serviceability/sa/TestObjectMonitorIterate.java 8307393 generic-all -serviceability/sa/TestPrintMdo.java 8307393 generic-all -serviceability/sa/TestRevPtrsForInvokeDynamic.java 8307393 generic-all -serviceability/sa/TestSysProps.java 8307393 generic-all -serviceability/sa/TestType.java 8307393 generic-all -serviceability/sa/TestUniverse.java 8307393 generic-all -serviceability/sa/UniqueVtableTest.java 8307393 generic-all -serviceability/sa/jmap-hprof/JMapHProfLargeHeapProc.java 8307393 generic-all -serviceability/sa/jmap-hprof/JMapHProfLargeHeapTest.java 8307393 generic-all -serviceability/sa/sadebugd/ClhsdbAttachToDebugServer.java 8307393 generic-all -serviceability/sa/sadebugd/ClhsdbTestConnectArgument.java 8307393 generic-all -serviceability/sa/ClhsdbTestAllocationMerge.java 8307393 generic-all -serviceability/sa/sadebugd/DebugdConnectTest.java 8307393 generic-all -serviceability/sa/sadebugd/DebugdUtils.java 8307393 generic-all -serviceability/sa/sadebugd/DisableRegistryTest.java 8307393 generic-all -serviceability/sa/sadebugd/PmapOnDebugdTest.java 8307393 generic-all -serviceability/sa/sadebugd/RunCommandOnServerTest.java 8307393 generic-all -serviceability/sa/sadebugd/SADebugDTest.java 8307393 generic-all - -vmTestbase/gc/gctests/MemoryEaterMT/MemoryEaterMT.java 8289582 windows-x64 diff --git a/test/hotspot/jtreg/ProblemList-zgc.txt b/test/hotspot/jtreg/ProblemList-zgc.txt index 1afe56c99f8..7b2978ba491 100644 --- a/test/hotspot/jtreg/ProblemList-zgc.txt +++ b/test/hotspot/jtreg/ProblemList-zgc.txt @@ -27,22 +27,92 @@ # ############################################################################# -resourcehogs/serviceability/sa/TestHeapDumpForLargeArray.java 8276539 generic-all -serviceability/sa/CDSJMapClstats.java 8276539 generic-all -serviceability/sa/ClhsdbJhisto.java 8276539 generic-all -serviceability/sa/ClhsdbJstackWithConcurrentLock.java 8276539 generic-all -serviceability/sa/jmap-hprof/JMapHProfLargeHeapTest.java 8276539 generic-all +# Quiet all SA tests -serviceability/sa/ClhsdbFindPC.java#xcomp-core 8284045 generic-all -serviceability/sa/TestJmapCore.java 8268283,8270202 generic-all -serviceability/sa/TestJmapCoreMetaspace.java 8268636 generic-all - -serviceability/sa/TestJhsdbJstackMixed.java 8248912 generic-all -serviceability/sa/ClhsdbPstack.java#process 8248912 generic-all -serviceability/sa/ClhsdbPstack.java#core 8248912 generic-all - -serviceability/sa/TestSysProps.java 8302055 generic-all - -serviceability/sa/TestHeapDumpForInvokeDynamic.java 8315646 generic-all +resourcehogs/serviceability/sa/TestHeapDumpForLargeArray.java 8307393 generic-all +serviceability/sa/CDSJMapClstats.java 8307393 generic-all +serviceability/sa/ClhsdbAttach.java 8307393 generic-all +serviceability/sa/ClhsdbAttachDifferentJVMs.java 8307393 generic-all +serviceability/sa/ClhsdbCDSCore.java 8307393 generic-all +serviceability/sa/ClhsdbCDSJstackPrintAll.java 8307393 generic-all +serviceability/sa/ClhsdbClasses.java 8307393 generic-all +serviceability/sa/ClhsdbDumpclass.java 8307393 generic-all +serviceability/sa/ClhsdbDumpheap.java 8307393 generic-all +serviceability/sa/ClhsdbField.java 8307393 generic-all +serviceability/sa/ClhsdbFindPC.java#apa 8307393 generic-all +serviceability/sa/ClhsdbFindPC.java#no-xcomp-core 8307393 generic-all +serviceability/sa/ClhsdbFindPC.java#no-xcomp-process 8307393 generic-all +serviceability/sa/ClhsdbFindPC.java#xcomp-core 8307393 generic-all +serviceability/sa/ClhsdbFindPC.java#xcomp-process 8307393 generic-all +serviceability/sa/ClhsdbFlags.java 8307393 generic-all +serviceability/sa/ClhsdbHistory.java 8307393 generic-all +serviceability/sa/ClhsdbInspect.java 8307393 generic-all +serviceability/sa/ClhsdbJdis.java 8307393 generic-all +serviceability/sa/ClhsdbJhisto.java 8307393 generic-all +serviceability/sa/ClhsdbJstack.java#id0 8307393 generic-all +serviceability/sa/ClhsdbJstack.java#id1 8307393 generic-all +serviceability/sa/ClhsdbJstackWithConcurrentLock.java 8307393 generic-all +serviceability/sa/ClhsdbJstackXcompStress.java 8307393 generic-all +serviceability/sa/ClhsdbLauncher.java 8307393 generic-all +serviceability/sa/ClhsdbLongConstant.java 8307393 generic-all +serviceability/sa/ClhsdbPmap.java 8307393 generic-all +serviceability/sa/ClhsdbPmap.java#core 8307393 generic-all +serviceability/sa/ClhsdbPmap.java#process 8307393 generic-all +serviceability/sa/ClhsdbPrintAll.java 8307393 generic-all +serviceability/sa/ClhsdbPrintAs.java 8307393 generic-all +serviceability/sa/ClhsdbPrintStatics.java 8307393 generic-all +serviceability/sa/ClhsdbPstack.java#core 8307393 generic-all +serviceability/sa/ClhsdbPstack.java#process 8307393 generic-all +serviceability/sa/ClhsdbScanOops.java 8307393 generic-all +serviceability/sa/ClhsdbSource.java 8307393 generic-all +serviceability/sa/ClhsdbSymbol.java 8307393 generic-all +serviceability/sa/ClhsdbThread.java 8307393 generic-all +serviceability/sa/ClhsdbThreadContext.java 8307393 generic-all +serviceability/sa/ClhsdbVmStructsDump.java 8307393 generic-all +serviceability/sa/ClhsdbWhere.java 8307393 generic-all +serviceability/sa/DeadlockDetectionTest.java 8307393 generic-all +serviceability/sa/JhsdbThreadInfoTest.java 8307393 generic-all +serviceability/sa/LingeredAppSysProps.java 8307393 generic-all +serviceability/sa/LingeredAppWithDefaultMethods.java 8307393 generic-all +serviceability/sa/LingeredAppWithEnum.java 8307393 generic-all +serviceability/sa/LingeredAppWithInterface.java 8307393 generic-all +serviceability/sa/LingeredAppWithInvokeDynamic.java 8307393 generic-all +serviceability/sa/LingeredAppWithLock.java 8307393 generic-all +serviceability/sa/LingeredAppWithNativeMethod.java 8307393 generic-all +serviceability/sa/LingeredAppWithRecComputation.java 8307393 generic-all +serviceability/sa/TestClassDump.java 8307393 generic-all +serviceability/sa/TestClhsdbJstackLock.java 8307393 generic-all +serviceability/sa/TestCpoolForInvokeDynamic.java 8307393 generic-all +serviceability/sa/TestDefaultMethods.java 8307393 generic-all +serviceability/sa/TestG1HeapRegion.java 8307393 generic-all +serviceability/sa/TestHeapDumpForInvokeDynamic.java 8307393 generic-all +serviceability/sa/TestInstanceKlassSize.java 8307393 generic-all +serviceability/sa/TestInstanceKlassSizeForInterface.java 8307393 generic-all +serviceability/sa/TestIntConstant.java 8307393 generic-all +serviceability/sa/TestJhsdbJstackLineNumbers.java 8307393 generic-all +serviceability/sa/TestJhsdbJstackLock.java 8307393 generic-all +serviceability/sa/TestJhsdbJstackMixed.java 8307393 generic-all +serviceability/sa/TestJhsdbJstackUpcall.java 8307393 generic-all +serviceability/sa/TestJmapCore.java 8307393 generic-all +serviceability/sa/TestJmapCoreMetaspace.java 8307393 generic-all +serviceability/sa/TestObjectAlignment.java 8307393 generic-all +serviceability/sa/TestObjectMonitorIterate.java 8307393 generic-all +serviceability/sa/TestPrintMdo.java 8307393 generic-all +serviceability/sa/TestRevPtrsForInvokeDynamic.java 8307393 generic-all +serviceability/sa/TestSysProps.java 8307393 generic-all +serviceability/sa/TestType.java 8307393 generic-all +serviceability/sa/TestUniverse.java 8307393 generic-all +serviceability/sa/UniqueVtableTest.java 8307393 generic-all +serviceability/sa/jmap-hprof/JMapHProfLargeHeapProc.java 8307393 generic-all +serviceability/sa/jmap-hprof/JMapHProfLargeHeapTest.java 8307393 generic-all +serviceability/sa/sadebugd/ClhsdbAttachToDebugServer.java 8307393 generic-all +serviceability/sa/sadebugd/ClhsdbTestConnectArgument.java 8307393 generic-all +serviceability/sa/ClhsdbTestAllocationMerge.java 8307393 generic-all +serviceability/sa/sadebugd/DebugdConnectTest.java 8307393 generic-all +serviceability/sa/sadebugd/DebugdUtils.java 8307393 generic-all +serviceability/sa/sadebugd/DisableRegistryTest.java 8307393 generic-all +serviceability/sa/sadebugd/PmapOnDebugdTest.java 8307393 generic-all +serviceability/sa/sadebugd/RunCommandOnServerTest.java 8307393 generic-all +serviceability/sa/sadebugd/SADebugDTest.java 8307393 generic-all vmTestbase/gc/gctests/MemoryEaterMT/MemoryEaterMT.java 8289582 windows-x64 diff --git a/test/hotspot/jtreg/ProblemList.txt b/test/hotspot/jtreg/ProblemList.txt index 3ff450dc3ad..ce9e97e1715 100644 --- a/test/hotspot/jtreg/ProblemList.txt +++ b/test/hotspot/jtreg/ProblemList.txt @@ -59,8 +59,7 @@ compiler/codecache/CheckLargePages.java 8332654 linux-x64 compiler/vectorapi/reshape/TestVectorReinterpret.java 8320897 aix-ppc64,linux-ppc64le compiler/vectorapi/VectorLogicalOpIdentityTest.java 8302459 linux-x64,windows-x64 -compiler/vectorapi/VectorRebracket128Test.java#ZSinglegen 8330538 generic-all -compiler/vectorapi/VectorRebracket128Test.java#ZGenerational 8330538 generic-all +compiler/vectorapi/VectorRebracket128Test.java#Z 8330538 generic-all compiler/jvmci/TestUncaughtErrorInCompileMethod.java 8309073 generic-all compiler/jvmci/jdk.vm.ci.code.test/src/jdk/vm/ci/code/test/DataPatchTest.java 8331704 linux-riscv64 @@ -94,8 +93,7 @@ gc/TestAlwaysPreTouchBehavior.java#ParallelCollector 8334513 generic-all gc/TestAlwaysPreTouchBehavior.java#SerialCollector 8334513 generic-all gc/TestAlwaysPreTouchBehavior.java#Shenandoah 8334513 generic-all gc/TestAlwaysPreTouchBehavior.java#G1 8334513 generic-all -gc/TestAlwaysPreTouchBehavior.java#ZGenerational 8334513 generic-all -gc/TestAlwaysPreTouchBehavior.java#ZSinglegen 8334513 generic-all +gc/TestAlwaysPreTouchBehavior.java#Z 8334513 generic-all gc/TestAlwaysPreTouchBehavior.java#Epsilon 8334513 generic-all gc/stress/gclocker/TestExcessGCLockerCollections.java 8229120 generic-all @@ -105,6 +103,7 @@ gc/stress/gclocker/TestExcessGCLockerCollections.java 8229120 generic-all runtime/jni/terminatedThread/TestTerminatedThread.java 8317789 aix-ppc64 runtime/handshake/HandshakeSuspendExitTest.java 8294313 generic-all +runtime/Monitor/SyncOnValueBasedClassTest.java 8340995 linux-s390x runtime/os/TestTracePageSizes.java#no-options 8267460 linux-aarch64 runtime/os/TestTracePageSizes.java#explicit-large-page-size 8267460 linux-aarch64 runtime/os/TestTracePageSizes.java#compiler-options 8267460 linux-aarch64 diff --git a/test/hotspot/jtreg/TEST.ROOT b/test/hotspot/jtreg/TEST.ROOT index 962fc36838c..21c5aebaa71 100644 --- a/test/hotspot/jtreg/TEST.ROOT +++ b/test/hotspot/jtreg/TEST.ROOT @@ -61,8 +61,6 @@ requires.properties= \ vm.gc.Shenandoah \ vm.gc.Epsilon \ vm.gc.Z \ - vm.gc.ZGenerational \ - vm.gc.ZSinglegen \ vm.jvmci \ vm.jvmci.enabled \ vm.emulatedClient \ diff --git a/test/hotspot/jtreg/compiler/arguments/TestManyParameters.java b/test/hotspot/jtreg/compiler/arguments/TestManyParameters.java new file mode 100644 index 00000000000..4828a0feabc --- /dev/null +++ b/test/hotspot/jtreg/compiler/arguments/TestManyParameters.java @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/** + * @test + * @requires os.simpleArch == "x64" + * @bug 8342156 + * @summary Check that C2's restriction on number of method arguments is not too + * restrictive on x64. + * + * @run main/othervm -Xcomp + * -XX:CompileCommand=compileonly,compiler.arguments.TestManyParameters::test + * -XX:+UnlockDiagnosticVMOptions + * -XX:+AbortVMOnCompilationFailure + * compiler.arguments.TestManyParameters + */ + +package compiler.arguments; + +public class TestManyParameters { + + public static void main(String[] args) { + test(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54); + } + + static void test(int i1, int i2, int i3, int i4, int i5, int i6, int i7, int i8, int i9, int i10, int i11, int i12, int i13, int i14, int i15, int i16, int i17, int i18, int i19, int i20, int i21, int i22, int i23, int i24, int i25, int i26, int i27, int i28, int i29, int i30, int i31, int i32, int i33, int i34, int i35, int i36, int i37, int i38, int i39, int i40, int i41, int i42, int i43, int i44, int i45, int i46, int i47, int i48, int i49, int i50, int i51, int i52, int i53, int i54) {} +} diff --git a/test/hotspot/jtreg/compiler/c2/irTests/TestVectorizationMismatchedAccess.java b/test/hotspot/jtreg/compiler/c2/irTests/TestVectorizationMismatchedAccess.java index 2fdbb0816ad..2d17753ba94 100644 --- a/test/hotspot/jtreg/compiler/c2/irTests/TestVectorizationMismatchedAccess.java +++ b/test/hotspot/jtreg/compiler/c2/irTests/TestVectorizationMismatchedAccess.java @@ -50,9 +50,6 @@ public class TestVectorizationMismatchedAccess { private final static WhiteBox wb = WhiteBox.getWhiteBox(); public static void main(String[] args) { - if (ByteOrder.nativeOrder() != ByteOrder.LITTLE_ENDIAN) { - throw new RuntimeException("fix test that was written for a little endian platform"); - } TestFramework.runWithFlags("--add-modules", "java.base", "--add-exports", "java.base/jdk.internal.misc=ALL-UNNAMED"); } @@ -77,6 +74,14 @@ public static void main(String[] args) { } } + // Method to adjust the value for the native byte order + static private long handleByteOrder(long value) { + if (ByteOrder.nativeOrder() != ByteOrder.LITTLE_ENDIAN) { + value = Long.reverseBytes(value); + } + return value; + } + static private void runAndVerify(Runnable test, int offset) { System.arraycopy(verifyLongArray, 0, longArray, 0, longArray.length); Arrays.fill(byteArray, (byte)0); @@ -154,7 +159,7 @@ static private void runAndVerify3(Runnable test, int offset) { // might get fixed with JDK-8325155. public static void testByteLong1a(byte[] dest, long[] src) { for (int i = 0; i < src.length; i++) { - UNSAFE.putLongUnaligned(dest, UNSAFE.ARRAY_BYTE_BASE_OFFSET + 8 * i, src[i]); + UNSAFE.putLongUnaligned(dest, UNSAFE.ARRAY_BYTE_BASE_OFFSET + 8 * i, handleByteOrder(src[i])); } } @@ -165,7 +170,7 @@ public static void testByteLong1a(byte[] dest, long[] src) { // 32-bit: address has ConvL2I for cast of long to address, not supported. public static void testByteLong1b(byte[] dest, long[] src) { for (int i = 0; i < src.length; i++) { - UNSAFE.putLongUnaligned(dest, UNSAFE.ARRAY_BYTE_BASE_OFFSET + 8L * i, src[i]); + UNSAFE.putLongUnaligned(dest, UNSAFE.ARRAY_BYTE_BASE_OFFSET + 8L * i, handleByteOrder(src[i])); } } @@ -175,7 +180,7 @@ public static void testByteLong1b(byte[] dest, long[] src) { public static void testByteLong1c(byte[] dest, long[] src) { long base = 64; // make sure it is big enough and 8 byte aligned (required for 32-bit) for (int i = 0; i < src.length - 8; i++) { - UNSAFE.putLongUnaligned(dest, base + 8 * i, src[i]); + UNSAFE.putLongUnaligned(dest, base + 8 * i, handleByteOrder(src[i])); } } @@ -187,7 +192,7 @@ public static void testByteLong1c(byte[] dest, long[] src) { public static void testByteLong1d(byte[] dest, long[] src) { long base = 64; // make sure it is big enough and 8 byte aligned (required for 32-bit) for (int i = 0; i < src.length - 8; i++) { - UNSAFE.putLongUnaligned(dest, base + 8L * i, src[i]); + UNSAFE.putLongUnaligned(dest, base + 8L * i, handleByteOrder(src[i])); } } @@ -207,7 +212,7 @@ public static void testByteLong1_runner() { // might get fixed with JDK-8325155. public static void testByteLong2a(byte[] dest, long[] src) { for (int i = 1; i < src.length; i++) { - UNSAFE.putLongUnaligned(dest, UNSAFE.ARRAY_BYTE_BASE_OFFSET + 8 * (i - 1), src[i]); + UNSAFE.putLongUnaligned(dest, UNSAFE.ARRAY_BYTE_BASE_OFFSET + 8 * (i - 1), handleByteOrder(src[i])); } } @@ -218,7 +223,7 @@ public static void testByteLong2a(byte[] dest, long[] src) { // 32-bit: address has ConvL2I for cast of long to address, not supported. public static void testByteLong2b(byte[] dest, long[] src) { for (int i = 1; i < src.length; i++) { - UNSAFE.putLongUnaligned(dest, UNSAFE.ARRAY_BYTE_BASE_OFFSET + 8L * (i - 1), src[i]); + UNSAFE.putLongUnaligned(dest, UNSAFE.ARRAY_BYTE_BASE_OFFSET + 8L * (i - 1), handleByteOrder(src[i])); } } @@ -236,7 +241,7 @@ public static void testByteLong2_runner() { // might get fixed with JDK-8325155. public static void testByteLong3a(byte[] dest, long[] src) { for (int i = 0; i < src.length - 1; i++) { - UNSAFE.putLongUnaligned(dest, UNSAFE.ARRAY_BYTE_BASE_OFFSET + 8 * (i + 1), src[i]); + UNSAFE.putLongUnaligned(dest, UNSAFE.ARRAY_BYTE_BASE_OFFSET + 8 * (i + 1), handleByteOrder(src[i])); } } @@ -247,7 +252,7 @@ public static void testByteLong3a(byte[] dest, long[] src) { // 32-bit: address has ConvL2I for cast of long to address, not supported. public static void testByteLong3b(byte[] dest, long[] src) { for (int i = 0; i < src.length - 1; i++) { - UNSAFE.putLongUnaligned(dest, UNSAFE.ARRAY_BYTE_BASE_OFFSET + 8L * (i + 1), src[i]); + UNSAFE.putLongUnaligned(dest, UNSAFE.ARRAY_BYTE_BASE_OFFSET + 8L * (i + 1), handleByteOrder(src[i])); } } @@ -267,7 +272,7 @@ public static void testByteLong3_runner() { // AlignVector cannot guarantee that invar is aligned. public static void testByteLong4a(byte[] dest, long[] src, int start, int stop) { for (int i = start; i < stop; i++) { - UNSAFE.putLongUnaligned(dest, 8 * i + baseOffset, src[i]); + UNSAFE.putLongUnaligned(dest, 8 * i + baseOffset, handleByteOrder(src[i])); } } @@ -280,7 +285,7 @@ public static void testByteLong4a(byte[] dest, long[] src, int start, int stop) // AlignVector cannot guarantee that invar is aligned. public static void testByteLong4b(byte[] dest, long[] src, int start, int stop) { for (int i = start; i < stop; i++) { - UNSAFE.putLongUnaligned(dest, 8L * i + baseOffset, src[i]); + UNSAFE.putLongUnaligned(dest, 8L * i + baseOffset, handleByteOrder(src[i])); } } @@ -299,7 +304,7 @@ public static void testByteLong4_runner() { // might get fixed with JDK-8325155. public static void testByteLong5a(byte[] dest, long[] src, int start, int stop) { for (int i = start; i < stop; i++) { - UNSAFE.putLongUnaligned(dest, UNSAFE.ARRAY_BYTE_BASE_OFFSET + 8 * (i + baseOffset), src[i]); + UNSAFE.putLongUnaligned(dest, UNSAFE.ARRAY_BYTE_BASE_OFFSET + 8 * (i + baseOffset), handleByteOrder(src[i])); } } @@ -310,7 +315,7 @@ public static void testByteLong5a(byte[] dest, long[] src, int start, int stop) // 32-bit: address has ConvL2I for cast of long to address, not supported. public static void testByteLong5b(byte[] dest, long[] src, int start, int stop) { for (int i = start; i < stop; i++) { - UNSAFE.putLongUnaligned(dest, UNSAFE.ARRAY_BYTE_BASE_OFFSET + 8L * (i + baseOffset), src[i]); + UNSAFE.putLongUnaligned(dest, UNSAFE.ARRAY_BYTE_BASE_OFFSET + 8L * (i + baseOffset), handleByteOrder(src[i])); } } @@ -454,7 +459,7 @@ public static void testByteByte5_runner() { // See: JDK-8331576 public static void testOffHeapLong1a(long dest, long[] src) { for (int i = 0; i < src.length; i++) { - UNSAFE.putLongUnaligned(null, dest + 8 * i, src[i]); + UNSAFE.putLongUnaligned(null, dest + 8 * i, handleByteOrder(src[i])); } } @@ -465,7 +470,7 @@ public static void testOffHeapLong1a(long dest, long[] src) { // See: JDK-8331576 public static void testOffHeapLong1b(long dest, long[] src) { for (int i = 0; i < src.length; i++) { - UNSAFE.putLongUnaligned(null, dest + 8L * i, src[i]); + UNSAFE.putLongUnaligned(null, dest + 8L * i, handleByteOrder(src[i])); } } @@ -482,7 +487,7 @@ public static void testOffHeapLong1_runner() { // See: JDK-8331576 public static void testOffHeapLong2a(long dest, long[] src) { for (int i = 1; i < src.length; i++) { - UNSAFE.putLongUnaligned(null, dest + 8 * (i - 1), src[i]); + UNSAFE.putLongUnaligned(null, dest + 8 * (i - 1), handleByteOrder(src[i])); } } @@ -493,7 +498,7 @@ public static void testOffHeapLong2a(long dest, long[] src) { // See: JDK-8331576 public static void testOffHeapLong2b(long dest, long[] src) { for (int i = 1; i < src.length; i++) { - UNSAFE.putLongUnaligned(null, dest + 8L * (i - 1), src[i]); + UNSAFE.putLongUnaligned(null, dest + 8L * (i - 1), handleByteOrder(src[i])); } } @@ -510,7 +515,7 @@ public static void testOffHeapLong2_runner() { // See: JDK-8331576 public static void testOffHeapLong3a(long dest, long[] src) { for (int i = 0; i < src.length - 1; i++) { - UNSAFE.putLongUnaligned(null, dest + 8 * (i + 1), src[i]); + UNSAFE.putLongUnaligned(null, dest + 8 * (i + 1), handleByteOrder(src[i])); } } @@ -521,7 +526,7 @@ public static void testOffHeapLong3a(long dest, long[] src) { // See: JDK-8331576 public static void testOffHeapLong3b(long dest, long[] src) { for (int i = 0; i < src.length - 1; i++) { - UNSAFE.putLongUnaligned(null, dest + 8L * (i + 1), src[i]); + UNSAFE.putLongUnaligned(null, dest + 8L * (i + 1), handleByteOrder(src[i])); } } @@ -540,7 +545,7 @@ public static void testOffHeapLong3_runner() { // AlignVector cannot guarantee that invar is aligned. public static void testOffHeapLong4a(long dest, long[] src, int start, int stop) { for (int i = start; i < stop; i++) { - UNSAFE.putLongUnaligned(null, dest + 8 * i + baseOffset, src[i]); + UNSAFE.putLongUnaligned(null, dest + 8 * i + baseOffset, handleByteOrder(src[i])); } } @@ -553,7 +558,7 @@ public static void testOffHeapLong4a(long dest, long[] src, int start, int stop) // AlignVector cannot guarantee that invar is aligned. public static void testOffHeapLong4b(long dest, long[] src, int start, int stop) { for (int i = start; i < stop; i++) { - UNSAFE.putLongUnaligned(null, dest + 8L * i + baseOffset, src[i]); + UNSAFE.putLongUnaligned(null, dest + 8L * i + baseOffset, handleByteOrder(src[i])); } } diff --git a/test/hotspot/jtreg/compiler/gcbarriers/TestArrayCopyWithLargeObjectAlignment.java b/test/hotspot/jtreg/compiler/gcbarriers/TestArrayCopyWithLargeObjectAlignment.java index dd2d485fb76..494c571450d 100644 --- a/test/hotspot/jtreg/compiler/gcbarriers/TestArrayCopyWithLargeObjectAlignment.java +++ b/test/hotspot/jtreg/compiler/gcbarriers/TestArrayCopyWithLargeObjectAlignment.java @@ -30,11 +30,11 @@ * @summary Test that, when using a larger object alignment, ZGC arraycopy * barriers are only applied to actual OOPs, and not to object * alignment padding words. - * @requires vm.gc.ZGenerational + * @requires vm.gc.Z * @run main/othervm -Xbatch -XX:-TieredCompilation * -XX:CompileOnly=compiler.gcbarriers.TestArrayCopyWithLargeObjectAlignment::* * -XX:ObjectAlignmentInBytes=16 - * -XX:+UseZGC -XX:+ZGenerational + * -XX:+UseZGC * compiler.gcbarriers.TestArrayCopyWithLargeObjectAlignment */ diff --git a/test/hotspot/jtreg/compiler/gcbarriers/TestZGCBarrierElision.java b/test/hotspot/jtreg/compiler/gcbarriers/TestZGCBarrierElision.java index af047dd5457..6f39ba7a8a1 100644 --- a/test/hotspot/jtreg/compiler/gcbarriers/TestZGCBarrierElision.java +++ b/test/hotspot/jtreg/compiler/gcbarriers/TestZGCBarrierElision.java @@ -34,7 +34,7 @@ * necessary barriers. The tests use volatile memory accesses and * blackholes to prevent C2 from simply optimizing them away. * @library /test/lib / - * @requires vm.gc.ZGenerational + * @requires vm.gc.Z * @run driver compiler.gcbarriers.TestZGCBarrierElision test-correctness */ @@ -43,7 +43,7 @@ * @summary Test that the ZGC barrier elision optimization elides unnecessary * barriers following simple allocation and domination rules. * @library /test/lib / - * @requires vm.gc.ZGenerational & (vm.simpleArch == "x64" | vm.simpleArch == "aarch64") + * @requires vm.gc.Z & (vm.simpleArch == "x64" | vm.simpleArch == "aarch64") * @run driver compiler.gcbarriers.TestZGCBarrierElision test-effectiveness */ @@ -99,7 +99,7 @@ public static void main(String[] args) { } String commonName = Common.class.getName(); TestFramework test = new TestFramework(testClass); - test.addFlags("-XX:+UseZGC", "-XX:+ZGenerational", "-XX:+UnlockExperimentalVMOptions", + test.addFlags("-XX:+UseZGC", "-XX:+UnlockExperimentalVMOptions", "-XX:CompileCommand=blackhole," + commonName + "::blackhole", "-XX:CompileCommand=dontinline," + commonName + "::nonInlinedMethod", "-XX:LoopMaxUnroll=0"); diff --git a/test/hotspot/jtreg/compiler/gcbarriers/TestZGCUnrolling.java b/test/hotspot/jtreg/compiler/gcbarriers/TestZGCUnrolling.java index 618b03e4cfb..0c30531285e 100644 --- a/test/hotspot/jtreg/compiler/gcbarriers/TestZGCUnrolling.java +++ b/test/hotspot/jtreg/compiler/gcbarriers/TestZGCUnrolling.java @@ -34,7 +34,7 @@ * The tests use volatile memory accesses to prevent C2 from simply * optimizing them away. * @library /test/lib / - * @requires vm.gc.ZGenerational + * @requires vm.gc.Z * @run driver compiler.gcbarriers.TestZGCUnrolling */ @@ -55,8 +55,7 @@ static class Outer { } public static void main(String[] args) { - TestFramework.runWithFlags("-XX:+UseZGC", "-XX:+ZGenerational", - "-XX:LoopUnrollLimit=24"); + TestFramework.runWithFlags("-XX:+UseZGC", "-XX:LoopUnrollLimit=24"); } @Test diff --git a/test/hotspot/jtreg/compiler/gcbarriers/UnsafeIntrinsicsTest.java b/test/hotspot/jtreg/compiler/gcbarriers/UnsafeIntrinsicsTest.java index 6a511fd60d9..65901f5e656 100644 --- a/test/hotspot/jtreg/compiler/gcbarriers/UnsafeIntrinsicsTest.java +++ b/test/hotspot/jtreg/compiler/gcbarriers/UnsafeIntrinsicsTest.java @@ -22,14 +22,14 @@ */ /* - * @test id=ZSinglegenDebug + * @test id=ZDebug * @key randomness * @bug 8059022 8271855 * @modules java.base/jdk.internal.misc:+open * @summary Validate barriers after Unsafe getReference, CAS and swap (GetAndSet) - * @requires vm.gc.ZSinglegen & vm.debug + * @requires vm.gc.Z & vm.debug * @library /test/lib - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational + * @run main/othervm -XX:+UseZGC * -XX:+UnlockDiagnosticVMOptions * -XX:+ZVerifyOops -XX:ZCollectionInterval=1 * -XX:-CreateCoredumpOnCrash @@ -38,46 +38,14 @@ */ /* - * @test id=ZSinglegen + * @test id=Z * @key randomness * @bug 8059022 8271855 * @modules java.base/jdk.internal.misc:+open * @summary Validate barriers after Unsafe getReference, CAS and swap (GetAndSet) - * @requires vm.gc.ZSinglegen & !vm.debug + * @requires vm.gc.Z & !vm.debug * @library /test/lib - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational - * -XX:+UnlockDiagnosticVMOptions - * -XX:ZCollectionInterval=1 - * -XX:-CreateCoredumpOnCrash - * -XX:CompileCommand=dontinline,*::mergeImpl* - * compiler.gcbarriers.UnsafeIntrinsicsTest - */ - -/* - * @test id=ZGenerationalDebug - * @key randomness - * @bug 8059022 8271855 - * @modules java.base/jdk.internal.misc:+open - * @summary Validate barriers after Unsafe getReference, CAS and swap (GetAndSet) - * @requires vm.gc.ZGenerational & vm.debug - * @library /test/lib - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational - * -XX:+UnlockDiagnosticVMOptions - * -XX:+ZVerifyOops -XX:ZCollectionInterval=1 - * -XX:-CreateCoredumpOnCrash - * -XX:CompileCommand=dontinline,*::mergeImpl* - * compiler.gcbarriers.UnsafeIntrinsicsTest - */ - -/* - * @test id=ZGenerational - * @key randomness - * @bug 8059022 8271855 - * @modules java.base/jdk.internal.misc:+open - * @summary Validate barriers after Unsafe getReference, CAS and swap (GetAndSet) - * @requires vm.gc.ZGenerational & !vm.debug - * @library /test/lib - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational + * @run main/othervm -XX:+UseZGC * -XX:+UnlockDiagnosticVMOptions * -XX:ZCollectionInterval=1 * -XX:-CreateCoredumpOnCrash diff --git a/test/hotspot/jtreg/compiler/loopopts/TestRangeCheckPredicatesControl.java b/test/hotspot/jtreg/compiler/loopopts/TestRangeCheckPredicatesControl.java index a46de67de05..1f64ed28d8a 100644 --- a/test/hotspot/jtreg/compiler/loopopts/TestRangeCheckPredicatesControl.java +++ b/test/hotspot/jtreg/compiler/loopopts/TestRangeCheckPredicatesControl.java @@ -22,25 +22,14 @@ */ /* - * @test id=ZSinglegen + * @test id=Z * @key stress randomness - * @requires vm.gc.ZSinglegen + * @requires vm.gc.Z * @bug 8237859 * @summary A LoadP node has a wrong control input (too early) which results in an out-of-bounds read of an object array with ZGC. * - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational compiler.loopopts.TestRangeCheckPredicatesControl - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -XX:+UnlockDiagnosticVMOptions -XX:+IgnoreUnrecognizedVMOptions -XX:+StressGCM compiler.loopopts.TestRangeCheckPredicatesControl - */ - -/* - * @test id=ZGenerational - * @key stress randomness - * @requires vm.gc.ZGenerational - * @bug 8237859 - * @summary A LoadP node has a wrong control input (too early) which results in an out-of-bounds read of an object array with ZGC. - * - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational compiler.loopopts.TestRangeCheckPredicatesControl - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -XX:+UnlockDiagnosticVMOptions -XX:+IgnoreUnrecognizedVMOptions -XX:+StressGCM compiler.loopopts.TestRangeCheckPredicatesControl + * @run main/othervm -XX:+UseZGC compiler.loopopts.TestRangeCheckPredicatesControl + * @run main/othervm -XX:+UseZGC -XX:+UnlockDiagnosticVMOptions -XX:+IgnoreUnrecognizedVMOptions -XX:+StressGCM compiler.loopopts.TestRangeCheckPredicatesControl */ package compiler.loopopts; diff --git a/test/hotspot/jtreg/compiler/loopopts/superword/TestDependencyOffsets.java b/test/hotspot/jtreg/compiler/loopopts/superword/TestDependencyOffsets.java index 2f0a5809d08..8e5ac88a27d 100644 --- a/test/hotspot/jtreg/compiler/loopopts/superword/TestDependencyOffsets.java +++ b/test/hotspot/jtreg/compiler/loopopts/superword/TestDependencyOffsets.java @@ -21,99 +21,12 @@ * questions. */ -/* - * Summary: - * Test SuperWord vectorization with different access offsets - * and various MaxVectorSize values, and +- AlignVector. - * - * Note: this test is auto-generated. Please modify / generate with script: - * https://bugs.openjdk.org/browse/JDK-8333729 - * - * Types: int, long, short, char, byte, float, double - * Offsets: 0, -1, 1, -2, 2, -3, 3, -4, 4, -7, 7, -8, 8, -14, 14, -16, 16, -18, 18, -20, 20, -31, 31, -32, 32, -63, 63, -64, 64, -65, 65, -128, 128, -129, 129, -192, 192 - * - * Checking if we should vectorize is a bit complicated. It depends on - * Matcher::vector_width_in_bytes, of the respective platforms (eg. x86.ad) - * This vector_width can be further constrained by MaxVectorSize. - * - * With '-XX:-AlignVector', we vectorize if: - * - Vectors have at least 4 bytes: vector_width >= 4 - * - Vectors hold at least 2 elements: vector_width >= 2 * sizeofop(velt_type) - * -> min_vector_width = max(4, 2 * sizeofop(velt_type)) - * -> simplifies to: vector_width >= min_vector_width - * - No cyclic dependency: - * - Access: data[i + offset] = data[i] * fac; - * - byte_offset = offset * sizeofop(type) - * - Cyclic dependency if: 0 < byte_offset < vector_width - * - * Note: sizeofop(type) = sizeof(type), except sizeofop(char) = 2 - * - * Different types can lead to different vector_width. This depends on - * the CPU-features. - * - * Definition: - * MaxVectorSize: limit through flag - * vector_width: limit given by specific CPU feature for a specific velt_type - * actual_vector_width: what is actually vectorized with - * min_vector_width: what is minimally required for vectorization - * - * min_vector_width = max(4, 2 * sizeofop(velt_type)) - * MaxVectorSize >= vector_width >= actual_vector_width >= min_vector_width - * - * In general, we cannot easily specify negative IR rules, that require no - * vectorization to happen. We may improve the SuperWord algorithm later, - * or some additional optimization collapses some Loads, and suddenly cyclic - * dependency disappears, and we can vectorize. - * - * With '-XX:+AlignVector' we do the following: - * - * Must vectorize cleanly if: - * 1) guaranteed no misalignment AND - * 2) guaratneed no cyclic dependency - * - * Must not vectorize at all if: - * 1) guaranteed misalignment AND - * 2) guaranteed no cyclic dependency - * - * We could imagine a case with cyclic dependency, where C2 detects - * that only the first load is needed, and so no vectorization is - * required for it, and hence the store vector can be aligned. - * - * The alignment criteria is - * byte_offset % aw == 0 - * where align width (aw) is - * aw = min(actual_vector_width, ObjectAlignmentInBytes) - * For simplicity, we assume that ObjectAlignmentInBytes == 8, - * which currently can only be changed manually and then no IR - * rule is run. - * This allows us to do the computation statically. - * Further, we define: - * aw_min = min(min_vector_width, ObjectAlignmentInBytes) - * aw_max = min(vector_width, ObjectAlignmentInBytes) - * aw_min <= aw <= aw_max - * - * Again, we have no cyclic dependency, except when: - * byte_offset > 0 and p.vector_width > byte_offset - * Here we must ensure that: - * byte_offset >= MaxVectorSize - * - * Guaranteed no misalignment: - * byte_offset % aw_max == 0 - * implies - * byte_offset % aw == 0 - * - * Guaranteed misalignment: - * byte_offset % aw_min != 0 - * implies - * byte_offset % aw != 0 - * - */ - /* * @test id=vanilla-A * @bug 8298935 8308606 8310308 8312570 8310190 * @summary Test SuperWord: vector size, offsets, dependencies, alignment. * @library /test/lib / + * @compile ../../lib/ir_framework/TestFramework.java * @run driver compiler.loopopts.superword.TestDependencyOffsets vanilla-A */ @@ -122,6 +35,7 @@ * @bug 8298935 8308606 8310308 8312570 8310190 * @summary Test SuperWord: vector size, offsets, dependencies, alignment. * @library /test/lib / + * @compile ../../lib/ir_framework/TestFramework.java * @run driver compiler.loopopts.superword.TestDependencyOffsets vanilla-U */ @@ -133,6 +47,7 @@ * @requires (os.arch=="x86" | os.arch=="i386" | os.arch=="amd64" | os.arch=="x86_64") * @requires vm.cpu.features ~= ".*sse4.*" * @library /test/lib / + * @compile ../../lib/ir_framework/TestFramework.java * @run driver compiler.loopopts.superword.TestDependencyOffsets sse4-v016-A */ @@ -144,6 +59,7 @@ * @requires (os.arch=="x86" | os.arch=="i386" | os.arch=="amd64" | os.arch=="x86_64") * @requires vm.cpu.features ~= ".*sse4.*" * @library /test/lib / + * @compile ../../lib/ir_framework/TestFramework.java * @run driver compiler.loopopts.superword.TestDependencyOffsets sse4-v016-U */ @@ -155,6 +71,7 @@ * @requires (os.arch=="x86" | os.arch=="i386" | os.arch=="amd64" | os.arch=="x86_64") * @requires vm.cpu.features ~= ".*sse4.*" * @library /test/lib / + * @compile ../../lib/ir_framework/TestFramework.java * @run driver compiler.loopopts.superword.TestDependencyOffsets sse4-v008-A */ @@ -166,6 +83,7 @@ * @requires (os.arch=="x86" | os.arch=="i386" | os.arch=="amd64" | os.arch=="x86_64") * @requires vm.cpu.features ~= ".*sse4.*" * @library /test/lib / + * @compile ../../lib/ir_framework/TestFramework.java * @run driver compiler.loopopts.superword.TestDependencyOffsets sse4-v008-U */ @@ -177,6 +95,7 @@ * @requires (os.arch=="x86" | os.arch=="i386" | os.arch=="amd64" | os.arch=="x86_64") * @requires vm.cpu.features ~= ".*sse4.*" * @library /test/lib / + * @compile ../../lib/ir_framework/TestFramework.java * @run driver compiler.loopopts.superword.TestDependencyOffsets sse4-v004-A */ @@ -188,31 +107,10 @@ * @requires (os.arch=="x86" | os.arch=="i386" | os.arch=="amd64" | os.arch=="x86_64") * @requires vm.cpu.features ~= ".*sse4.*" * @library /test/lib / + * @compile ../../lib/ir_framework/TestFramework.java * @run driver compiler.loopopts.superword.TestDependencyOffsets sse4-v004-U */ -/* - * @test id=sse4-v002-A - * @bug 8298935 8308606 8310308 8312570 8310190 - * @summary Test SuperWord: vector size, offsets, dependencies, alignment. - * @requires vm.compiler2.enabled - * @requires (os.arch=="x86" | os.arch=="i386" | os.arch=="amd64" | os.arch=="x86_64") - * @requires vm.cpu.features ~= ".*sse4.*" - * @library /test/lib / - * @run driver compiler.loopopts.superword.TestDependencyOffsets sse4-v002-A - */ - -/* - * @test id=sse4-v002-U - * @bug 8298935 8308606 8310308 8312570 8310190 - * @summary Test SuperWord: vector size, offsets, dependencies, alignment. - * @requires vm.compiler2.enabled - * @requires (os.arch=="x86" | os.arch=="i386" | os.arch=="amd64" | os.arch=="x86_64") - * @requires vm.cpu.features ~= ".*sse4.*" - * @library /test/lib / - * @run driver compiler.loopopts.superword.TestDependencyOffsets sse4-v002-U - */ - /* * @test id=avx1-v032-A * @bug 8298935 8308606 8310308 8312570 8310190 @@ -221,6 +119,7 @@ * @requires (os.arch=="x86" | os.arch=="i386" | os.arch=="amd64" | os.arch=="x86_64") * @requires vm.cpu.features ~= ".*avx.*" * @library /test/lib / + * @compile ../../lib/ir_framework/TestFramework.java * @run driver compiler.loopopts.superword.TestDependencyOffsets avx1-v032-A */ @@ -232,6 +131,7 @@ * @requires (os.arch=="x86" | os.arch=="i386" | os.arch=="amd64" | os.arch=="x86_64") * @requires vm.cpu.features ~= ".*avx.*" * @library /test/lib / + * @compile ../../lib/ir_framework/TestFramework.java * @run driver compiler.loopopts.superword.TestDependencyOffsets avx1-v032-U */ @@ -243,6 +143,7 @@ * @requires (os.arch=="x86" | os.arch=="i386" | os.arch=="amd64" | os.arch=="x86_64") * @requires vm.cpu.features ~= ".*avx.*" * @library /test/lib / + * @compile ../../lib/ir_framework/TestFramework.java * @run driver compiler.loopopts.superword.TestDependencyOffsets avx1-v016-A */ @@ -254,6 +155,7 @@ * @requires (os.arch=="x86" | os.arch=="i386" | os.arch=="amd64" | os.arch=="x86_64") * @requires vm.cpu.features ~= ".*avx.*" * @library /test/lib / + * @compile ../../lib/ir_framework/TestFramework.java * @run driver compiler.loopopts.superword.TestDependencyOffsets avx1-v016-U */ @@ -265,6 +167,7 @@ * @requires (os.arch=="x86" | os.arch=="i386" | os.arch=="amd64" | os.arch=="x86_64") * @requires vm.cpu.features ~= ".*avx2.*" * @library /test/lib / + * @compile ../../lib/ir_framework/TestFramework.java * @run driver compiler.loopopts.superword.TestDependencyOffsets avx2-v032-A */ @@ -276,6 +179,7 @@ * @requires (os.arch=="x86" | os.arch=="i386" | os.arch=="amd64" | os.arch=="x86_64") * @requires vm.cpu.features ~= ".*avx2.*" * @library /test/lib / + * @compile ../../lib/ir_framework/TestFramework.java * @run driver compiler.loopopts.superword.TestDependencyOffsets avx2-v032-U */ @@ -287,6 +191,7 @@ * @requires (os.arch=="x86" | os.arch=="i386" | os.arch=="amd64" | os.arch=="x86_64") * @requires vm.cpu.features ~= ".*avx2.*" * @library /test/lib / + * @compile ../../lib/ir_framework/TestFramework.java * @run driver compiler.loopopts.superword.TestDependencyOffsets avx2-v016-A */ @@ -298,6 +203,7 @@ * @requires (os.arch=="x86" | os.arch=="i386" | os.arch=="amd64" | os.arch=="x86_64") * @requires vm.cpu.features ~= ".*avx2.*" * @library /test/lib / + * @compile ../../lib/ir_framework/TestFramework.java * @run driver compiler.loopopts.superword.TestDependencyOffsets avx2-v016-U */ @@ -309,6 +215,7 @@ * @requires (os.arch=="x86" | os.arch=="i386" | os.arch=="amd64" | os.arch=="x86_64") * @requires vm.cpu.features ~= ".*avx512.*" * @library /test/lib / + * @compile ../../lib/ir_framework/TestFramework.java * @run driver compiler.loopopts.superword.TestDependencyOffsets avx512-v064-A */ @@ -320,6 +227,7 @@ * @requires (os.arch=="x86" | os.arch=="i386" | os.arch=="amd64" | os.arch=="x86_64") * @requires vm.cpu.features ~= ".*avx512.*" * @library /test/lib / + * @compile ../../lib/ir_framework/TestFramework.java * @run driver compiler.loopopts.superword.TestDependencyOffsets avx512-v064-U */ @@ -331,6 +239,7 @@ * @requires (os.arch=="x86" | os.arch=="i386" | os.arch=="amd64" | os.arch=="x86_64") * @requires vm.cpu.features ~= ".*avx512.*" * @library /test/lib / + * @compile ../../lib/ir_framework/TestFramework.java * @run driver compiler.loopopts.superword.TestDependencyOffsets avx512-v032-A */ @@ -342,6 +251,7 @@ * @requires (os.arch=="x86" | os.arch=="i386" | os.arch=="amd64" | os.arch=="x86_64") * @requires vm.cpu.features ~= ".*avx512.*" * @library /test/lib / + * @compile ../../lib/ir_framework/TestFramework.java * @run driver compiler.loopopts.superword.TestDependencyOffsets avx512-v032-U */ @@ -353,6 +263,7 @@ * @requires (os.arch=="x86" | os.arch=="i386" | os.arch=="amd64" | os.arch=="x86_64") * @requires vm.cpu.features ~= ".*avx512bw.*" * @library /test/lib / + * @compile ../../lib/ir_framework/TestFramework.java * @run driver compiler.loopopts.superword.TestDependencyOffsets avx512bw-v064-A */ @@ -364,6 +275,7 @@ * @requires (os.arch=="x86" | os.arch=="i386" | os.arch=="amd64" | os.arch=="x86_64") * @requires vm.cpu.features ~= ".*avx512bw.*" * @library /test/lib / + * @compile ../../lib/ir_framework/TestFramework.java * @run driver compiler.loopopts.superword.TestDependencyOffsets avx512bw-v064-U */ @@ -375,6 +287,7 @@ * @requires (os.arch=="x86" | os.arch=="i386" | os.arch=="amd64" | os.arch=="x86_64") * @requires vm.cpu.features ~= ".*avx512bw.*" * @library /test/lib / + * @compile ../../lib/ir_framework/TestFramework.java * @run driver compiler.loopopts.superword.TestDependencyOffsets avx512bw-v032-A */ @@ -386,6 +299,7 @@ * @requires (os.arch=="x86" | os.arch=="i386" | os.arch=="amd64" | os.arch=="x86_64") * @requires vm.cpu.features ~= ".*avx512bw.*" * @library /test/lib / + * @compile ../../lib/ir_framework/TestFramework.java * @run driver compiler.loopopts.superword.TestDependencyOffsets avx512bw-v032-U */ @@ -396,6 +310,7 @@ * @requires vm.compiler2.enabled * @requires (os.arch!="x86" & os.arch!="i386" & os.arch!="amd64" & os.arch!="x86_64") * @library /test/lib / + * @compile ../../lib/ir_framework/TestFramework.java * @run driver compiler.loopopts.superword.TestDependencyOffsets vec-v064-A */ @@ -406,6 +321,7 @@ * @requires vm.compiler2.enabled * @requires (os.arch!="x86" & os.arch!="i386" & os.arch!="amd64" & os.arch!="x86_64") * @library /test/lib / + * @compile ../../lib/ir_framework/TestFramework.java * @run driver compiler.loopopts.superword.TestDependencyOffsets vec-v064-U */ @@ -416,6 +332,7 @@ * @requires vm.compiler2.enabled * @requires (os.arch!="x86" & os.arch!="i386" & os.arch!="amd64" & os.arch!="x86_64") * @library /test/lib / + * @compile ../../lib/ir_framework/TestFramework.java * @run driver compiler.loopopts.superword.TestDependencyOffsets vec-v032-A */ @@ -426,6 +343,7 @@ * @requires vm.compiler2.enabled * @requires (os.arch!="x86" & os.arch!="i386" & os.arch!="amd64" & os.arch!="x86_64") * @library /test/lib / + * @compile ../../lib/ir_framework/TestFramework.java * @run driver compiler.loopopts.superword.TestDependencyOffsets vec-v032-U */ @@ -436,6 +354,7 @@ * @requires vm.compiler2.enabled * @requires (os.arch!="x86" & os.arch!="i386" & os.arch!="amd64" & os.arch!="x86_64") * @library /test/lib / + * @compile ../../lib/ir_framework/TestFramework.java * @run driver compiler.loopopts.superword.TestDependencyOffsets vec-v016-A */ @@ -446,6 +365,7 @@ * @requires vm.compiler2.enabled * @requires (os.arch!="x86" & os.arch!="i386" & os.arch!="amd64" & os.arch!="x86_64") * @library /test/lib / + * @compile ../../lib/ir_framework/TestFramework.java * @run driver compiler.loopopts.superword.TestDependencyOffsets vec-v016-U */ @@ -456,6 +376,7 @@ * @requires vm.compiler2.enabled * @requires (os.arch!="x86" & os.arch!="i386" & os.arch!="amd64" & os.arch!="x86_64") * @library /test/lib / + * @compile ../../lib/ir_framework/TestFramework.java * @run driver compiler.loopopts.superword.TestDependencyOffsets vec-v008-A */ @@ -466,6 +387,7 @@ * @requires vm.compiler2.enabled * @requires (os.arch!="x86" & os.arch!="i386" & os.arch!="amd64" & os.arch!="x86_64") * @library /test/lib / + * @compile ../../lib/ir_framework/TestFramework.java * @run driver compiler.loopopts.superword.TestDependencyOffsets vec-v008-U */ @@ -476,6 +398,7 @@ * @requires vm.compiler2.enabled * @requires (os.arch!="x86" & os.arch!="i386" & os.arch!="amd64" & os.arch!="x86_64") * @library /test/lib / + * @compile ../../lib/ir_framework/TestFramework.java * @run driver compiler.loopopts.superword.TestDependencyOffsets vec-v004-A */ @@ -486,15418 +409,500 @@ * @requires vm.compiler2.enabled * @requires (os.arch!="x86" & os.arch!="i386" & os.arch!="amd64" & os.arch!="x86_64") * @library /test/lib / + * @compile ../../lib/ir_framework/TestFramework.java * @run driver compiler.loopopts.superword.TestDependencyOffsets vec-v004-U */ package compiler.loopopts.superword; -import compiler.lib.ir_framework.*; -public class TestDependencyOffsets { - static final int RANGE = 512; - - static int[] goldIntP0 = new int[RANGE]; - static int[] goldIntM1 = new int[RANGE]; - static int[] goldIntP1 = new int[RANGE]; - static int[] goldIntM2 = new int[RANGE]; - static int[] goldIntP2 = new int[RANGE]; - static int[] goldIntM3 = new int[RANGE]; - static int[] goldIntP3 = new int[RANGE]; - static int[] goldIntM4 = new int[RANGE]; - static int[] goldIntP4 = new int[RANGE]; - static int[] goldIntM7 = new int[RANGE]; - static int[] goldIntP7 = new int[RANGE]; - static int[] goldIntM8 = new int[RANGE]; - static int[] goldIntP8 = new int[RANGE]; - static int[] goldIntM14 = new int[RANGE]; - static int[] goldIntP14 = new int[RANGE]; - static int[] goldIntM16 = new int[RANGE]; - static int[] goldIntP16 = new int[RANGE]; - static int[] goldIntM18 = new int[RANGE]; - static int[] goldIntP18 = new int[RANGE]; - static int[] goldIntM20 = new int[RANGE]; - static int[] goldIntP20 = new int[RANGE]; - static int[] goldIntM31 = new int[RANGE]; - static int[] goldIntP31 = new int[RANGE]; - static int[] goldIntM32 = new int[RANGE]; - static int[] goldIntP32 = new int[RANGE]; - static int[] goldIntM63 = new int[RANGE]; - static int[] goldIntP63 = new int[RANGE]; - static int[] goldIntM64 = new int[RANGE]; - static int[] goldIntP64 = new int[RANGE]; - static int[] goldIntM65 = new int[RANGE]; - static int[] goldIntP65 = new int[RANGE]; - static int[] goldIntM128 = new int[RANGE]; - static int[] goldIntP128 = new int[RANGE]; - static int[] goldIntM129 = new int[RANGE]; - static int[] goldIntP129 = new int[RANGE]; - static int[] goldIntM192 = new int[RANGE]; - static int[] goldIntP192 = new int[RANGE]; - static long[] goldLongP0 = new long[RANGE]; - static long[] goldLongM1 = new long[RANGE]; - static long[] goldLongP1 = new long[RANGE]; - static long[] goldLongM2 = new long[RANGE]; - static long[] goldLongP2 = new long[RANGE]; - static long[] goldLongM3 = new long[RANGE]; - static long[] goldLongP3 = new long[RANGE]; - static long[] goldLongM4 = new long[RANGE]; - static long[] goldLongP4 = new long[RANGE]; - static long[] goldLongM7 = new long[RANGE]; - static long[] goldLongP7 = new long[RANGE]; - static long[] goldLongM8 = new long[RANGE]; - static long[] goldLongP8 = new long[RANGE]; - static long[] goldLongM14 = new long[RANGE]; - static long[] goldLongP14 = new long[RANGE]; - static long[] goldLongM16 = new long[RANGE]; - static long[] goldLongP16 = new long[RANGE]; - static long[] goldLongM18 = new long[RANGE]; - static long[] goldLongP18 = new long[RANGE]; - static long[] goldLongM20 = new long[RANGE]; - static long[] goldLongP20 = new long[RANGE]; - static long[] goldLongM31 = new long[RANGE]; - static long[] goldLongP31 = new long[RANGE]; - static long[] goldLongM32 = new long[RANGE]; - static long[] goldLongP32 = new long[RANGE]; - static long[] goldLongM63 = new long[RANGE]; - static long[] goldLongP63 = new long[RANGE]; - static long[] goldLongM64 = new long[RANGE]; - static long[] goldLongP64 = new long[RANGE]; - static long[] goldLongM65 = new long[RANGE]; - static long[] goldLongP65 = new long[RANGE]; - static long[] goldLongM128 = new long[RANGE]; - static long[] goldLongP128 = new long[RANGE]; - static long[] goldLongM129 = new long[RANGE]; - static long[] goldLongP129 = new long[RANGE]; - static long[] goldLongM192 = new long[RANGE]; - static long[] goldLongP192 = new long[RANGE]; - static short[] goldShortP0 = new short[RANGE]; - static short[] goldShortM1 = new short[RANGE]; - static short[] goldShortP1 = new short[RANGE]; - static short[] goldShortM2 = new short[RANGE]; - static short[] goldShortP2 = new short[RANGE]; - static short[] goldShortM3 = new short[RANGE]; - static short[] goldShortP3 = new short[RANGE]; - static short[] goldShortM4 = new short[RANGE]; - static short[] goldShortP4 = new short[RANGE]; - static short[] goldShortM7 = new short[RANGE]; - static short[] goldShortP7 = new short[RANGE]; - static short[] goldShortM8 = new short[RANGE]; - static short[] goldShortP8 = new short[RANGE]; - static short[] goldShortM14 = new short[RANGE]; - static short[] goldShortP14 = new short[RANGE]; - static short[] goldShortM16 = new short[RANGE]; - static short[] goldShortP16 = new short[RANGE]; - static short[] goldShortM18 = new short[RANGE]; - static short[] goldShortP18 = new short[RANGE]; - static short[] goldShortM20 = new short[RANGE]; - static short[] goldShortP20 = new short[RANGE]; - static short[] goldShortM31 = new short[RANGE]; - static short[] goldShortP31 = new short[RANGE]; - static short[] goldShortM32 = new short[RANGE]; - static short[] goldShortP32 = new short[RANGE]; - static short[] goldShortM63 = new short[RANGE]; - static short[] goldShortP63 = new short[RANGE]; - static short[] goldShortM64 = new short[RANGE]; - static short[] goldShortP64 = new short[RANGE]; - static short[] goldShortM65 = new short[RANGE]; - static short[] goldShortP65 = new short[RANGE]; - static short[] goldShortM128 = new short[RANGE]; - static short[] goldShortP128 = new short[RANGE]; - static short[] goldShortM129 = new short[RANGE]; - static short[] goldShortP129 = new short[RANGE]; - static short[] goldShortM192 = new short[RANGE]; - static short[] goldShortP192 = new short[RANGE]; - static char[] goldCharP0 = new char[RANGE]; - static char[] goldCharM1 = new char[RANGE]; - static char[] goldCharP1 = new char[RANGE]; - static char[] goldCharM2 = new char[RANGE]; - static char[] goldCharP2 = new char[RANGE]; - static char[] goldCharM3 = new char[RANGE]; - static char[] goldCharP3 = new char[RANGE]; - static char[] goldCharM4 = new char[RANGE]; - static char[] goldCharP4 = new char[RANGE]; - static char[] goldCharM7 = new char[RANGE]; - static char[] goldCharP7 = new char[RANGE]; - static char[] goldCharM8 = new char[RANGE]; - static char[] goldCharP8 = new char[RANGE]; - static char[] goldCharM14 = new char[RANGE]; - static char[] goldCharP14 = new char[RANGE]; - static char[] goldCharM16 = new char[RANGE]; - static char[] goldCharP16 = new char[RANGE]; - static char[] goldCharM18 = new char[RANGE]; - static char[] goldCharP18 = new char[RANGE]; - static char[] goldCharM20 = new char[RANGE]; - static char[] goldCharP20 = new char[RANGE]; - static char[] goldCharM31 = new char[RANGE]; - static char[] goldCharP31 = new char[RANGE]; - static char[] goldCharM32 = new char[RANGE]; - static char[] goldCharP32 = new char[RANGE]; - static char[] goldCharM63 = new char[RANGE]; - static char[] goldCharP63 = new char[RANGE]; - static char[] goldCharM64 = new char[RANGE]; - static char[] goldCharP64 = new char[RANGE]; - static char[] goldCharM65 = new char[RANGE]; - static char[] goldCharP65 = new char[RANGE]; - static char[] goldCharM128 = new char[RANGE]; - static char[] goldCharP128 = new char[RANGE]; - static char[] goldCharM129 = new char[RANGE]; - static char[] goldCharP129 = new char[RANGE]; - static char[] goldCharM192 = new char[RANGE]; - static char[] goldCharP192 = new char[RANGE]; - static byte[] goldByteP0 = new byte[RANGE]; - static byte[] goldByteM1 = new byte[RANGE]; - static byte[] goldByteP1 = new byte[RANGE]; - static byte[] goldByteM2 = new byte[RANGE]; - static byte[] goldByteP2 = new byte[RANGE]; - static byte[] goldByteM3 = new byte[RANGE]; - static byte[] goldByteP3 = new byte[RANGE]; - static byte[] goldByteM4 = new byte[RANGE]; - static byte[] goldByteP4 = new byte[RANGE]; - static byte[] goldByteM7 = new byte[RANGE]; - static byte[] goldByteP7 = new byte[RANGE]; - static byte[] goldByteM8 = new byte[RANGE]; - static byte[] goldByteP8 = new byte[RANGE]; - static byte[] goldByteM14 = new byte[RANGE]; - static byte[] goldByteP14 = new byte[RANGE]; - static byte[] goldByteM16 = new byte[RANGE]; - static byte[] goldByteP16 = new byte[RANGE]; - static byte[] goldByteM18 = new byte[RANGE]; - static byte[] goldByteP18 = new byte[RANGE]; - static byte[] goldByteM20 = new byte[RANGE]; - static byte[] goldByteP20 = new byte[RANGE]; - static byte[] goldByteM31 = new byte[RANGE]; - static byte[] goldByteP31 = new byte[RANGE]; - static byte[] goldByteM32 = new byte[RANGE]; - static byte[] goldByteP32 = new byte[RANGE]; - static byte[] goldByteM63 = new byte[RANGE]; - static byte[] goldByteP63 = new byte[RANGE]; - static byte[] goldByteM64 = new byte[RANGE]; - static byte[] goldByteP64 = new byte[RANGE]; - static byte[] goldByteM65 = new byte[RANGE]; - static byte[] goldByteP65 = new byte[RANGE]; - static byte[] goldByteM128 = new byte[RANGE]; - static byte[] goldByteP128 = new byte[RANGE]; - static byte[] goldByteM129 = new byte[RANGE]; - static byte[] goldByteP129 = new byte[RANGE]; - static byte[] goldByteM192 = new byte[RANGE]; - static byte[] goldByteP192 = new byte[RANGE]; - static float[] goldFloatP0 = new float[RANGE]; - static float[] goldFloatM1 = new float[RANGE]; - static float[] goldFloatP1 = new float[RANGE]; - static float[] goldFloatM2 = new float[RANGE]; - static float[] goldFloatP2 = new float[RANGE]; - static float[] goldFloatM3 = new float[RANGE]; - static float[] goldFloatP3 = new float[RANGE]; - static float[] goldFloatM4 = new float[RANGE]; - static float[] goldFloatP4 = new float[RANGE]; - static float[] goldFloatM7 = new float[RANGE]; - static float[] goldFloatP7 = new float[RANGE]; - static float[] goldFloatM8 = new float[RANGE]; - static float[] goldFloatP8 = new float[RANGE]; - static float[] goldFloatM14 = new float[RANGE]; - static float[] goldFloatP14 = new float[RANGE]; - static float[] goldFloatM16 = new float[RANGE]; - static float[] goldFloatP16 = new float[RANGE]; - static float[] goldFloatM18 = new float[RANGE]; - static float[] goldFloatP18 = new float[RANGE]; - static float[] goldFloatM20 = new float[RANGE]; - static float[] goldFloatP20 = new float[RANGE]; - static float[] goldFloatM31 = new float[RANGE]; - static float[] goldFloatP31 = new float[RANGE]; - static float[] goldFloatM32 = new float[RANGE]; - static float[] goldFloatP32 = new float[RANGE]; - static float[] goldFloatM63 = new float[RANGE]; - static float[] goldFloatP63 = new float[RANGE]; - static float[] goldFloatM64 = new float[RANGE]; - static float[] goldFloatP64 = new float[RANGE]; - static float[] goldFloatM65 = new float[RANGE]; - static float[] goldFloatP65 = new float[RANGE]; - static float[] goldFloatM128 = new float[RANGE]; - static float[] goldFloatP128 = new float[RANGE]; - static float[] goldFloatM129 = new float[RANGE]; - static float[] goldFloatP129 = new float[RANGE]; - static float[] goldFloatM192 = new float[RANGE]; - static float[] goldFloatP192 = new float[RANGE]; - static double[] goldDoubleP0 = new double[RANGE]; - static double[] goldDoubleM1 = new double[RANGE]; - static double[] goldDoubleP1 = new double[RANGE]; - static double[] goldDoubleM2 = new double[RANGE]; - static double[] goldDoubleP2 = new double[RANGE]; - static double[] goldDoubleM3 = new double[RANGE]; - static double[] goldDoubleP3 = new double[RANGE]; - static double[] goldDoubleM4 = new double[RANGE]; - static double[] goldDoubleP4 = new double[RANGE]; - static double[] goldDoubleM7 = new double[RANGE]; - static double[] goldDoubleP7 = new double[RANGE]; - static double[] goldDoubleM8 = new double[RANGE]; - static double[] goldDoubleP8 = new double[RANGE]; - static double[] goldDoubleM14 = new double[RANGE]; - static double[] goldDoubleP14 = new double[RANGE]; - static double[] goldDoubleM16 = new double[RANGE]; - static double[] goldDoubleP16 = new double[RANGE]; - static double[] goldDoubleM18 = new double[RANGE]; - static double[] goldDoubleP18 = new double[RANGE]; - static double[] goldDoubleM20 = new double[RANGE]; - static double[] goldDoubleP20 = new double[RANGE]; - static double[] goldDoubleM31 = new double[RANGE]; - static double[] goldDoubleP31 = new double[RANGE]; - static double[] goldDoubleM32 = new double[RANGE]; - static double[] goldDoubleP32 = new double[RANGE]; - static double[] goldDoubleM63 = new double[RANGE]; - static double[] goldDoubleP63 = new double[RANGE]; - static double[] goldDoubleM64 = new double[RANGE]; - static double[] goldDoubleP64 = new double[RANGE]; - static double[] goldDoubleM65 = new double[RANGE]; - static double[] goldDoubleP65 = new double[RANGE]; - static double[] goldDoubleM128 = new double[RANGE]; - static double[] goldDoubleP128 = new double[RANGE]; - static double[] goldDoubleM129 = new double[RANGE]; - static double[] goldDoubleP129 = new double[RANGE]; - static double[] goldDoubleM192 = new double[RANGE]; - static double[] goldDoubleP192 = new double[RANGE]; - - static { - // compute the gold standard in interpreter mode - init(goldIntP0); - testIntP0(goldIntP0); - init(goldIntM1); - testIntM1(goldIntM1); - init(goldIntP1); - testIntP1(goldIntP1); - init(goldIntM2); - testIntM2(goldIntM2); - init(goldIntP2); - testIntP2(goldIntP2); - init(goldIntM3); - testIntM3(goldIntM3); - init(goldIntP3); - testIntP3(goldIntP3); - init(goldIntM4); - testIntM4(goldIntM4); - init(goldIntP4); - testIntP4(goldIntP4); - init(goldIntM7); - testIntM7(goldIntM7); - init(goldIntP7); - testIntP7(goldIntP7); - init(goldIntM8); - testIntM8(goldIntM8); - init(goldIntP8); - testIntP8(goldIntP8); - init(goldIntM14); - testIntM14(goldIntM14); - init(goldIntP14); - testIntP14(goldIntP14); - init(goldIntM16); - testIntM16(goldIntM16); - init(goldIntP16); - testIntP16(goldIntP16); - init(goldIntM18); - testIntM18(goldIntM18); - init(goldIntP18); - testIntP18(goldIntP18); - init(goldIntM20); - testIntM20(goldIntM20); - init(goldIntP20); - testIntP20(goldIntP20); - init(goldIntM31); - testIntM31(goldIntM31); - init(goldIntP31); - testIntP31(goldIntP31); - init(goldIntM32); - testIntM32(goldIntM32); - init(goldIntP32); - testIntP32(goldIntP32); - init(goldIntM63); - testIntM63(goldIntM63); - init(goldIntP63); - testIntP63(goldIntP63); - init(goldIntM64); - testIntM64(goldIntM64); - init(goldIntP64); - testIntP64(goldIntP64); - init(goldIntM65); - testIntM65(goldIntM65); - init(goldIntP65); - testIntP65(goldIntP65); - init(goldIntM128); - testIntM128(goldIntM128); - init(goldIntP128); - testIntP128(goldIntP128); - init(goldIntM129); - testIntM129(goldIntM129); - init(goldIntP129); - testIntP129(goldIntP129); - init(goldIntM192); - testIntM192(goldIntM192); - init(goldIntP192); - testIntP192(goldIntP192); - init(goldLongP0); - testLongP0(goldLongP0); - init(goldLongM1); - testLongM1(goldLongM1); - init(goldLongP1); - testLongP1(goldLongP1); - init(goldLongM2); - testLongM2(goldLongM2); - init(goldLongP2); - testLongP2(goldLongP2); - init(goldLongM3); - testLongM3(goldLongM3); - init(goldLongP3); - testLongP3(goldLongP3); - init(goldLongM4); - testLongM4(goldLongM4); - init(goldLongP4); - testLongP4(goldLongP4); - init(goldLongM7); - testLongM7(goldLongM7); - init(goldLongP7); - testLongP7(goldLongP7); - init(goldLongM8); - testLongM8(goldLongM8); - init(goldLongP8); - testLongP8(goldLongP8); - init(goldLongM14); - testLongM14(goldLongM14); - init(goldLongP14); - testLongP14(goldLongP14); - init(goldLongM16); - testLongM16(goldLongM16); - init(goldLongP16); - testLongP16(goldLongP16); - init(goldLongM18); - testLongM18(goldLongM18); - init(goldLongP18); - testLongP18(goldLongP18); - init(goldLongM20); - testLongM20(goldLongM20); - init(goldLongP20); - testLongP20(goldLongP20); - init(goldLongM31); - testLongM31(goldLongM31); - init(goldLongP31); - testLongP31(goldLongP31); - init(goldLongM32); - testLongM32(goldLongM32); - init(goldLongP32); - testLongP32(goldLongP32); - init(goldLongM63); - testLongM63(goldLongM63); - init(goldLongP63); - testLongP63(goldLongP63); - init(goldLongM64); - testLongM64(goldLongM64); - init(goldLongP64); - testLongP64(goldLongP64); - init(goldLongM65); - testLongM65(goldLongM65); - init(goldLongP65); - testLongP65(goldLongP65); - init(goldLongM128); - testLongM128(goldLongM128); - init(goldLongP128); - testLongP128(goldLongP128); - init(goldLongM129); - testLongM129(goldLongM129); - init(goldLongP129); - testLongP129(goldLongP129); - init(goldLongM192); - testLongM192(goldLongM192); - init(goldLongP192); - testLongP192(goldLongP192); - init(goldShortP0); - testShortP0(goldShortP0); - init(goldShortM1); - testShortM1(goldShortM1); - init(goldShortP1); - testShortP1(goldShortP1); - init(goldShortM2); - testShortM2(goldShortM2); - init(goldShortP2); - testShortP2(goldShortP2); - init(goldShortM3); - testShortM3(goldShortM3); - init(goldShortP3); - testShortP3(goldShortP3); - init(goldShortM4); - testShortM4(goldShortM4); - init(goldShortP4); - testShortP4(goldShortP4); - init(goldShortM7); - testShortM7(goldShortM7); - init(goldShortP7); - testShortP7(goldShortP7); - init(goldShortM8); - testShortM8(goldShortM8); - init(goldShortP8); - testShortP8(goldShortP8); - init(goldShortM14); - testShortM14(goldShortM14); - init(goldShortP14); - testShortP14(goldShortP14); - init(goldShortM16); - testShortM16(goldShortM16); - init(goldShortP16); - testShortP16(goldShortP16); - init(goldShortM18); - testShortM18(goldShortM18); - init(goldShortP18); - testShortP18(goldShortP18); - init(goldShortM20); - testShortM20(goldShortM20); - init(goldShortP20); - testShortP20(goldShortP20); - init(goldShortM31); - testShortM31(goldShortM31); - init(goldShortP31); - testShortP31(goldShortP31); - init(goldShortM32); - testShortM32(goldShortM32); - init(goldShortP32); - testShortP32(goldShortP32); - init(goldShortM63); - testShortM63(goldShortM63); - init(goldShortP63); - testShortP63(goldShortP63); - init(goldShortM64); - testShortM64(goldShortM64); - init(goldShortP64); - testShortP64(goldShortP64); - init(goldShortM65); - testShortM65(goldShortM65); - init(goldShortP65); - testShortP65(goldShortP65); - init(goldShortM128); - testShortM128(goldShortM128); - init(goldShortP128); - testShortP128(goldShortP128); - init(goldShortM129); - testShortM129(goldShortM129); - init(goldShortP129); - testShortP129(goldShortP129); - init(goldShortM192); - testShortM192(goldShortM192); - init(goldShortP192); - testShortP192(goldShortP192); - init(goldCharP0); - testCharP0(goldCharP0); - init(goldCharM1); - testCharM1(goldCharM1); - init(goldCharP1); - testCharP1(goldCharP1); - init(goldCharM2); - testCharM2(goldCharM2); - init(goldCharP2); - testCharP2(goldCharP2); - init(goldCharM3); - testCharM3(goldCharM3); - init(goldCharP3); - testCharP3(goldCharP3); - init(goldCharM4); - testCharM4(goldCharM4); - init(goldCharP4); - testCharP4(goldCharP4); - init(goldCharM7); - testCharM7(goldCharM7); - init(goldCharP7); - testCharP7(goldCharP7); - init(goldCharM8); - testCharM8(goldCharM8); - init(goldCharP8); - testCharP8(goldCharP8); - init(goldCharM14); - testCharM14(goldCharM14); - init(goldCharP14); - testCharP14(goldCharP14); - init(goldCharM16); - testCharM16(goldCharM16); - init(goldCharP16); - testCharP16(goldCharP16); - init(goldCharM18); - testCharM18(goldCharM18); - init(goldCharP18); - testCharP18(goldCharP18); - init(goldCharM20); - testCharM20(goldCharM20); - init(goldCharP20); - testCharP20(goldCharP20); - init(goldCharM31); - testCharM31(goldCharM31); - init(goldCharP31); - testCharP31(goldCharP31); - init(goldCharM32); - testCharM32(goldCharM32); - init(goldCharP32); - testCharP32(goldCharP32); - init(goldCharM63); - testCharM63(goldCharM63); - init(goldCharP63); - testCharP63(goldCharP63); - init(goldCharM64); - testCharM64(goldCharM64); - init(goldCharP64); - testCharP64(goldCharP64); - init(goldCharM65); - testCharM65(goldCharM65); - init(goldCharP65); - testCharP65(goldCharP65); - init(goldCharM128); - testCharM128(goldCharM128); - init(goldCharP128); - testCharP128(goldCharP128); - init(goldCharM129); - testCharM129(goldCharM129); - init(goldCharP129); - testCharP129(goldCharP129); - init(goldCharM192); - testCharM192(goldCharM192); - init(goldCharP192); - testCharP192(goldCharP192); - init(goldByteP0); - testByteP0(goldByteP0); - init(goldByteM1); - testByteM1(goldByteM1); - init(goldByteP1); - testByteP1(goldByteP1); - init(goldByteM2); - testByteM2(goldByteM2); - init(goldByteP2); - testByteP2(goldByteP2); - init(goldByteM3); - testByteM3(goldByteM3); - init(goldByteP3); - testByteP3(goldByteP3); - init(goldByteM4); - testByteM4(goldByteM4); - init(goldByteP4); - testByteP4(goldByteP4); - init(goldByteM7); - testByteM7(goldByteM7); - init(goldByteP7); - testByteP7(goldByteP7); - init(goldByteM8); - testByteM8(goldByteM8); - init(goldByteP8); - testByteP8(goldByteP8); - init(goldByteM14); - testByteM14(goldByteM14); - init(goldByteP14); - testByteP14(goldByteP14); - init(goldByteM16); - testByteM16(goldByteM16); - init(goldByteP16); - testByteP16(goldByteP16); - init(goldByteM18); - testByteM18(goldByteM18); - init(goldByteP18); - testByteP18(goldByteP18); - init(goldByteM20); - testByteM20(goldByteM20); - init(goldByteP20); - testByteP20(goldByteP20); - init(goldByteM31); - testByteM31(goldByteM31); - init(goldByteP31); - testByteP31(goldByteP31); - init(goldByteM32); - testByteM32(goldByteM32); - init(goldByteP32); - testByteP32(goldByteP32); - init(goldByteM63); - testByteM63(goldByteM63); - init(goldByteP63); - testByteP63(goldByteP63); - init(goldByteM64); - testByteM64(goldByteM64); - init(goldByteP64); - testByteP64(goldByteP64); - init(goldByteM65); - testByteM65(goldByteM65); - init(goldByteP65); - testByteP65(goldByteP65); - init(goldByteM128); - testByteM128(goldByteM128); - init(goldByteP128); - testByteP128(goldByteP128); - init(goldByteM129); - testByteM129(goldByteM129); - init(goldByteP129); - testByteP129(goldByteP129); - init(goldByteM192); - testByteM192(goldByteM192); - init(goldByteP192); - testByteP192(goldByteP192); - init(goldFloatP0); - testFloatP0(goldFloatP0); - init(goldFloatM1); - testFloatM1(goldFloatM1); - init(goldFloatP1); - testFloatP1(goldFloatP1); - init(goldFloatM2); - testFloatM2(goldFloatM2); - init(goldFloatP2); - testFloatP2(goldFloatP2); - init(goldFloatM3); - testFloatM3(goldFloatM3); - init(goldFloatP3); - testFloatP3(goldFloatP3); - init(goldFloatM4); - testFloatM4(goldFloatM4); - init(goldFloatP4); - testFloatP4(goldFloatP4); - init(goldFloatM7); - testFloatM7(goldFloatM7); - init(goldFloatP7); - testFloatP7(goldFloatP7); - init(goldFloatM8); - testFloatM8(goldFloatM8); - init(goldFloatP8); - testFloatP8(goldFloatP8); - init(goldFloatM14); - testFloatM14(goldFloatM14); - init(goldFloatP14); - testFloatP14(goldFloatP14); - init(goldFloatM16); - testFloatM16(goldFloatM16); - init(goldFloatP16); - testFloatP16(goldFloatP16); - init(goldFloatM18); - testFloatM18(goldFloatM18); - init(goldFloatP18); - testFloatP18(goldFloatP18); - init(goldFloatM20); - testFloatM20(goldFloatM20); - init(goldFloatP20); - testFloatP20(goldFloatP20); - init(goldFloatM31); - testFloatM31(goldFloatM31); - init(goldFloatP31); - testFloatP31(goldFloatP31); - init(goldFloatM32); - testFloatM32(goldFloatM32); - init(goldFloatP32); - testFloatP32(goldFloatP32); - init(goldFloatM63); - testFloatM63(goldFloatM63); - init(goldFloatP63); - testFloatP63(goldFloatP63); - init(goldFloatM64); - testFloatM64(goldFloatM64); - init(goldFloatP64); - testFloatP64(goldFloatP64); - init(goldFloatM65); - testFloatM65(goldFloatM65); - init(goldFloatP65); - testFloatP65(goldFloatP65); - init(goldFloatM128); - testFloatM128(goldFloatM128); - init(goldFloatP128); - testFloatP128(goldFloatP128); - init(goldFloatM129); - testFloatM129(goldFloatM129); - init(goldFloatP129); - testFloatP129(goldFloatP129); - init(goldFloatM192); - testFloatM192(goldFloatM192); - init(goldFloatP192); - testFloatP192(goldFloatP192); - init(goldDoubleP0); - testDoubleP0(goldDoubleP0); - init(goldDoubleM1); - testDoubleM1(goldDoubleM1); - init(goldDoubleP1); - testDoubleP1(goldDoubleP1); - init(goldDoubleM2); - testDoubleM2(goldDoubleM2); - init(goldDoubleP2); - testDoubleP2(goldDoubleP2); - init(goldDoubleM3); - testDoubleM3(goldDoubleM3); - init(goldDoubleP3); - testDoubleP3(goldDoubleP3); - init(goldDoubleM4); - testDoubleM4(goldDoubleM4); - init(goldDoubleP4); - testDoubleP4(goldDoubleP4); - init(goldDoubleM7); - testDoubleM7(goldDoubleM7); - init(goldDoubleP7); - testDoubleP7(goldDoubleP7); - init(goldDoubleM8); - testDoubleM8(goldDoubleM8); - init(goldDoubleP8); - testDoubleP8(goldDoubleP8); - init(goldDoubleM14); - testDoubleM14(goldDoubleM14); - init(goldDoubleP14); - testDoubleP14(goldDoubleP14); - init(goldDoubleM16); - testDoubleM16(goldDoubleM16); - init(goldDoubleP16); - testDoubleP16(goldDoubleP16); - init(goldDoubleM18); - testDoubleM18(goldDoubleM18); - init(goldDoubleP18); - testDoubleP18(goldDoubleP18); - init(goldDoubleM20); - testDoubleM20(goldDoubleM20); - init(goldDoubleP20); - testDoubleP20(goldDoubleP20); - init(goldDoubleM31); - testDoubleM31(goldDoubleM31); - init(goldDoubleP31); - testDoubleP31(goldDoubleP31); - init(goldDoubleM32); - testDoubleM32(goldDoubleM32); - init(goldDoubleP32); - testDoubleP32(goldDoubleP32); - init(goldDoubleM63); - testDoubleM63(goldDoubleM63); - init(goldDoubleP63); - testDoubleP63(goldDoubleP63); - init(goldDoubleM64); - testDoubleM64(goldDoubleM64); - init(goldDoubleP64); - testDoubleP64(goldDoubleP64); - init(goldDoubleM65); - testDoubleM65(goldDoubleM65); - init(goldDoubleP65); - testDoubleP65(goldDoubleP65); - init(goldDoubleM128); - testDoubleM128(goldDoubleM128); - init(goldDoubleP128); - testDoubleP128(goldDoubleP128); - init(goldDoubleM129); - testDoubleM129(goldDoubleM129); - init(goldDoubleP129); - testDoubleP129(goldDoubleP129); - init(goldDoubleM192); - testDoubleM192(goldDoubleM192); - init(goldDoubleP192); - testDoubleP192(goldDoubleP192); - } +import compiler.lib.ir_framework.*; +import compiler.lib.compile_framework.*; - public static void main(String args[]) { - TestFramework framework = new TestFramework(TestDependencyOffsets.class); - framework.addFlags("-XX:-TieredCompilation", - "-XX:CompileCommand=compileonly,compiler.loopopts.superword.TestDependencyOffsets::init", - "-XX:CompileCommand=compileonly,compiler.loopopts.superword.TestDependencyOffsets::test*", - "-XX:CompileCommand=compileonly,compiler.loopopts.superword.TestDependencyOffsets::verify", - "-XX:+IgnoreUnrecognizedVMOptions", "-XX:LoopUnrollLimit=250"); +import jdk.test.lib.Utils; +import java.util.Arrays; +import java.util.stream.Collectors; +import java.util.ArrayList; +import java.util.List; +import java.util.HashSet; +import java.util.Set; +import java.util.HashMap; +import java.util.Random; +/* + * We want to test SuperWord / AutoVectorization with different constant offsets (positive and negative): + * for (int i = ...) { a[i + offset] = b[i] * 11; } + * + * To test aliasing, we have 3 modes: single-array, aliasing and non-aliasing. + * We test for various primitive types (int, long, short, char, byte, float, double). + * We run all test under various settings of MaxVectorSize and +-AlignVector. + * Finally, we verify the results and check that vectors of the expected length were created (IR rules). + */ +public class TestDependencyOffsets { + private static final Random RANDOM = Utils.getRandomInstance(); + private static final int SIZE = 5_000 + RANDOM.nextInt(1000); + + /* + * Template for the inner test class. + */ + private static String generate(CompileFramework comp, String[] flags) { + return String.format(""" + import compiler.lib.ir_framework.*; + + public class InnerTest { + private static int SIZE = %s; + + public static void main(String args[]) { + TestFramework framework = new TestFramework(InnerTest.class); + framework.addFlags("-classpath", "%s"); + framework.addFlags(%s); + framework.setDefaultWarmup(0); + framework.start(); + } + + // ------------------------- Init --------------------------- + %s + + // ------------------------- Verify ------------------------- + %s + + // ------------------------- Tests -------------------------- + %s + } + """, + SIZE, + comp.getEscapedClassPathOfCompiledClasses(), + Arrays.stream(flags).map(s -> "\"" + s + "\"").collect(Collectors.joining(", ")), + Arrays.stream(TYPES).map(Type::generateInit).collect(Collectors.joining("\n")), + Arrays.stream(TYPES).map(Type::generateVerify).collect(Collectors.joining("\n")), + getTests().stream().map(TestDefinition::generate).collect(Collectors.joining("\n"))); + } + + public static void main(String[] args) { if (args.length != 1) { throw new RuntimeException("Test requires exactly one argument!"); } - switch (args[0]) { - case "vanilla-A": - framework.addFlags("-XX:+AlignVector"); - break; - case "vanilla-U": - framework.addFlags("-XX:-AlignVector"); - break; - case "sse4-v016-A": - framework.addFlags("-XX:UseSSE=4", "-XX:MaxVectorSize=16", "-XX:+AlignVector"); - break; - case "sse4-v016-U": - framework.addFlags("-XX:UseSSE=4", "-XX:MaxVectorSize=16", "-XX:-AlignVector"); - break; - case "sse4-v008-A": - framework.addFlags("-XX:UseSSE=4", "-XX:MaxVectorSize=8", "-XX:+AlignVector"); - break; - case "sse4-v008-U": - framework.addFlags("-XX:UseSSE=4", "-XX:MaxVectorSize=8", "-XX:-AlignVector"); - break; - case "sse4-v004-A": - framework.addFlags("-XX:UseSSE=4", "-XX:MaxVectorSize=4", "-XX:+AlignVector"); - break; - case "sse4-v004-U": - framework.addFlags("-XX:UseSSE=4", "-XX:MaxVectorSize=4", "-XX:-AlignVector"); - break; - case "sse4-v002-A": - framework.addFlags("-XX:UseSSE=4", "-XX:MaxVectorSize=4", "-XX:+AlignVector"); - break; - case "sse4-v002-U": - framework.addFlags("-XX:UseSSE=4", "-XX:MaxVectorSize=4", "-XX:-AlignVector"); - break; - case "avx1-v032-A": - framework.addFlags("-XX:UseAVX=1", "-XX:MaxVectorSize=32", "-XX:+AlignVector"); - break; - case "avx1-v032-U": - framework.addFlags("-XX:UseAVX=1", "-XX:MaxVectorSize=32", "-XX:-AlignVector"); - break; - case "avx1-v016-A": - framework.addFlags("-XX:UseAVX=1", "-XX:MaxVectorSize=16", "-XX:+AlignVector"); - break; - case "avx1-v016-U": - framework.addFlags("-XX:UseAVX=1", "-XX:MaxVectorSize=16", "-XX:-AlignVector"); - break; - case "avx2-v032-A": - framework.addFlags("-XX:UseAVX=2", "-XX:MaxVectorSize=32", "-XX:+AlignVector"); - break; - case "avx2-v032-U": - framework.addFlags("-XX:UseAVX=2", "-XX:MaxVectorSize=32", "-XX:-AlignVector"); - break; - case "avx2-v016-A": - framework.addFlags("-XX:UseAVX=2", "-XX:MaxVectorSize=16", "-XX:+AlignVector"); - break; - case "avx2-v016-U": - framework.addFlags("-XX:UseAVX=2", "-XX:MaxVectorSize=16", "-XX:-AlignVector"); - break; - case "avx512-v064-A": - framework.addFlags("-XX:UseAVX=3", "-XX:+UseKNLSetting", "-XX:MaxVectorSize=64", "-XX:+AlignVector"); - break; - case "avx512-v064-U": - framework.addFlags("-XX:UseAVX=3", "-XX:+UseKNLSetting", "-XX:MaxVectorSize=64", "-XX:-AlignVector"); - break; - case "avx512-v032-A": - framework.addFlags("-XX:UseAVX=3", "-XX:+UseKNLSetting", "-XX:MaxVectorSize=32", "-XX:+AlignVector"); - break; - case "avx512-v032-U": - framework.addFlags("-XX:UseAVX=3", "-XX:+UseKNLSetting", "-XX:MaxVectorSize=32", "-XX:-AlignVector"); - break; - case "avx512bw-v064-A": - framework.addFlags("-XX:UseAVX=3", "-XX:MaxVectorSize=64", "-XX:+AlignVector"); - break; - case "avx512bw-v064-U": - framework.addFlags("-XX:UseAVX=3", "-XX:MaxVectorSize=64", "-XX:-AlignVector"); - break; - case "avx512bw-v032-A": - framework.addFlags("-XX:UseAVX=3", "-XX:MaxVectorSize=32", "-XX:+AlignVector"); - break; - case "avx512bw-v032-U": - framework.addFlags("-XX:UseAVX=3", "-XX:MaxVectorSize=32", "-XX:-AlignVector"); - break; - case "vec-v064-A": - framework.addFlags("-XX:MaxVectorSize=64", "-XX:+AlignVector"); - break; - case "vec-v064-U": - framework.addFlags("-XX:MaxVectorSize=64", "-XX:-AlignVector"); - break; - case "vec-v032-A": - framework.addFlags("-XX:MaxVectorSize=32", "-XX:+AlignVector"); - break; - case "vec-v032-U": - framework.addFlags("-XX:MaxVectorSize=32", "-XX:-AlignVector"); - break; - case "vec-v016-A": - framework.addFlags("-XX:MaxVectorSize=16", "-XX:+AlignVector"); - break; - case "vec-v016-U": - framework.addFlags("-XX:MaxVectorSize=16", "-XX:-AlignVector"); - break; - case "vec-v008-A": - framework.addFlags("-XX:MaxVectorSize=8", "-XX:+AlignVector"); - break; - case "vec-v008-U": - framework.addFlags("-XX:MaxVectorSize=8", "-XX:-AlignVector"); - break; - case "vec-v004-A": - framework.addFlags("-XX:MaxVectorSize=4", "-XX:+AlignVector"); - break; - case "vec-v004-U": - framework.addFlags("-XX:MaxVectorSize=4", "-XX:-AlignVector"); - break; - default: - throw new RuntimeException("Test argument not recognized: " + args[0]); - } - framework.start(); - } - - // ------------------- Tests ------------------- - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testIntP0(int[] data) { - for (int j = 0; j < RANGE; j++) { - data[j + 0] = (int)(data[j] * (int)-11); - } - } - - @Run(test = "testIntP0") - @Warmup(0) - public static void runIntP0() { - int[] data = new int[RANGE]; - init(data); - testIntP0(data); - verify("testIntP0", data, goldIntP0); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testIntM1(int[] data) { - for (int j = 1; j < RANGE; j++) { - data[j + -1] = (int)(data[j] * (int)-11); - } - } - - @Run(test = "testIntM1") - @Warmup(0) - public static void runIntM1() { - int[] data = new int[RANGE]; - init(data); - testIntM1(data); - verify("testIntM1", data, goldIntM1); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 4 - // positive byte_offset 4 can lead to cyclic dependency - // No positive IR rule: conditions impossible. - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 8 - // positive byte_offset 4 can lead to cyclic dependency - // No positive IR rule: conditions impossible. - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - // positive byte_offset 4 can lead to cyclic dependency - // No positive IR rule: conditions impossible. - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 4"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - // positive byte_offset 4 can lead to cyclic dependency - // No positive IR rule: conditions impossible. - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - // positive byte_offset 4 can lead to cyclic dependency - // No positive IR rule: conditions impossible. - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 4"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testIntP1(int[] data) { - for (int j = 0; j < RANGE - 1; j++) { - data[j + 1] = (int)(data[j] * (int)-11); - } - } - - @Run(test = "testIntP1") - @Warmup(0) - public static void runIntP1() { - int[] data = new int[RANGE]; - init(data); - testIntP1(data); - verify("testIntP1", data, goldIntP1); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testIntM2(int[] data) { - for (int j = 2; j < RANGE; j++) { - data[j + -2] = (int)(data[j] * (int)-11); - } - } - - @Run(test = "testIntM2") - @Warmup(0) - public static void runIntM2() { - int[] data = new int[RANGE]; - init(data); - testIntM2(data); - verify("testIntM2", data, goldIntM2); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 4 - // positive byte_offset 8 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", "8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 8 - // positive byte_offset 8 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", "8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - // positive byte_offset 8 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", "8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "8"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - // positive byte_offset 8 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", "8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - // positive byte_offset 8 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", "8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "8"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testIntP2(int[] data) { - for (int j = 0; j < RANGE - 2; j++) { - data[j + 2] = (int)(data[j] * (int)-11); - } - } - - @Run(test = "testIntP2") - @Warmup(0) - public static void runIntP2() { - int[] data = new int[RANGE]; - init(data); - testIntP2(data); - verify("testIntP2", data, goldIntP2); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testIntM3(int[] data) { - for (int j = 3; j < RANGE; j++) { - data[j + -3] = (int)(data[j] * (int)-11); - } - } - - @Run(test = "testIntM3") - @Warmup(0) - public static void runIntM3() { - int[] data = new int[RANGE]; - init(data); - testIntM3(data); - verify("testIntM3", data, goldIntM3); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 4 - // positive byte_offset 12 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 12"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 12"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 8 - // positive byte_offset 12 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 12"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 12"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - // positive byte_offset 12 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 12"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 12"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - // positive byte_offset 12 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 12"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 12"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - // positive byte_offset 12 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 12"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 12"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testIntP3(int[] data) { - for (int j = 0; j < RANGE - 3; j++) { - data[j + 3] = (int)(data[j] * (int)-11); - } - } - - @Run(test = "testIntP3") - @Warmup(0) - public static void runIntP3() { - int[] data = new int[RANGE]; - init(data); - testIntP3(data); - verify("testIntP3", data, goldIntP3); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testIntM4(int[] data) { - for (int j = 4; j < RANGE; j++) { - data[j + -4] = (int)(data[j] * (int)-11); - } - } - - @Run(test = "testIntM4") - @Warmup(0) - public static void runIntM4() { - int[] data = new int[RANGE]; - init(data); - testIntM4(data); - verify("testIntM4", data, goldIntM4); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 8 - // positive byte_offset 16 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - // positive byte_offset 16 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - // positive byte_offset 16 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testIntP4(int[] data) { - for (int j = 0; j < RANGE - 4; j++) { - data[j + 4] = (int)(data[j] * (int)-11); - } - } - - @Run(test = "testIntP4") - @Warmup(0) - public static void runIntP4() { - int[] data = new int[RANGE]; - init(data); - testIntP4(data); - verify("testIntP4", data, goldIntP4); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testIntM7(int[] data) { - for (int j = 7; j < RANGE; j++) { - data[j + -7] = (int)(data[j] * (int)-11); - } - } - - @Run(test = "testIntM7") - @Warmup(0) - public static void runIntM7() { - int[] data = new int[RANGE]; - init(data); - testIntM7(data); - verify("testIntM7", data, goldIntM7); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 8 - // positive byte_offset 28 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 28"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 28"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - // positive byte_offset 28 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 28"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 28"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - // positive byte_offset 28 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 28"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 28"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testIntP7(int[] data) { - for (int j = 0; j < RANGE - 7; j++) { - data[j + 7] = (int)(data[j] * (int)-11); - } - } - - @Run(test = "testIntP7") - @Warmup(0) - public static void runIntP7() { - int[] data = new int[RANGE]; - init(data); - testIntP7(data); - verify("testIntP7", data, goldIntP7); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testIntM8(int[] data) { - for (int j = 8; j < RANGE; j++) { - data[j + -8] = (int)(data[j] * (int)-11); - } - } - - @Run(test = "testIntM8") - @Warmup(0) - public static void runIntM8() { - int[] data = new int[RANGE]; - init(data); - testIntM8(data); - verify("testIntM8", data, goldIntM8); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - // positive byte_offset 32 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 32"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 32"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - // positive byte_offset 32 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 32"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 32"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testIntP8(int[] data) { - for (int j = 0; j < RANGE - 8; j++) { - data[j + 8] = (int)(data[j] * (int)-11); - } - } - - @Run(test = "testIntP8") - @Warmup(0) - public static void runIntP8() { - int[] data = new int[RANGE]; - init(data); - testIntP8(data); - verify("testIntP8", data, goldIntP8); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testIntM14(int[] data) { - for (int j = 14; j < RANGE; j++) { - data[j + -14] = (int)(data[j] * (int)-11); - } - } - - @Run(test = "testIntM14") - @Warmup(0) - public static void runIntM14() { - int[] data = new int[RANGE]; - init(data); - testIntM14(data); - verify("testIntM14", data, goldIntM14); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - // positive byte_offset 56 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 56"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 56"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - // positive byte_offset 56 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 56"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 56"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testIntP14(int[] data) { - for (int j = 0; j < RANGE - 14; j++) { - data[j + 14] = (int)(data[j] * (int)-11); - } - } - - @Run(test = "testIntP14") - @Warmup(0) - public static void runIntP14() { - int[] data = new int[RANGE]; - init(data); - testIntP14(data); - verify("testIntP14", data, goldIntP14); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testIntM16(int[] data) { - for (int j = 16; j < RANGE; j++) { - data[j + -16] = (int)(data[j] * (int)-11); - } - } - - @Run(test = "testIntM16") - @Warmup(0) - public static void runIntM16() { - int[] data = new int[RANGE]; - init(data); - testIntM16(data); - verify("testIntM16", data, goldIntM16); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - // positive byte_offset 64 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 64"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 64"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testIntP16(int[] data) { - for (int j = 0; j < RANGE - 16; j++) { - data[j + 16] = (int)(data[j] * (int)-11); - } - } - - @Run(test = "testIntP16") - @Warmup(0) - public static void runIntP16() { - int[] data = new int[RANGE]; - init(data); - testIntP16(data); - verify("testIntP16", data, goldIntP16); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testIntM18(int[] data) { - for (int j = 18; j < RANGE; j++) { - data[j + -18] = (int)(data[j] * (int)-11); - } - } - - @Run(test = "testIntM18") - @Warmup(0) - public static void runIntM18() { - int[] data = new int[RANGE]; - init(data); - testIntM18(data); - verify("testIntM18", data, goldIntM18); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - // positive byte_offset 72 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 72"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 72"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testIntP18(int[] data) { - for (int j = 0; j < RANGE - 18; j++) { - data[j + 18] = (int)(data[j] * (int)-11); - } - } - - @Run(test = "testIntP18") - @Warmup(0) - public static void runIntP18() { - int[] data = new int[RANGE]; - init(data); - testIntP18(data); - verify("testIntP18", data, goldIntP18); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testIntM20(int[] data) { - for (int j = 20; j < RANGE; j++) { - data[j + -20] = (int)(data[j] * (int)-11); - } - } - - @Run(test = "testIntM20") - @Warmup(0) - public static void runIntM20() { - int[] data = new int[RANGE]; - init(data); - testIntM20(data); - verify("testIntM20", data, goldIntM20); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - // positive byte_offset 80 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 80"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 80"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testIntP20(int[] data) { - for (int j = 0; j < RANGE - 20; j++) { - data[j + 20] = (int)(data[j] * (int)-11); - } - } - - @Run(test = "testIntP20") - @Warmup(0) - public static void runIntP20() { - int[] data = new int[RANGE]; - init(data); - testIntP20(data); - verify("testIntP20", data, goldIntP20); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testIntM31(int[] data) { - for (int j = 31; j < RANGE; j++) { - data[j + -31] = (int)(data[j] * (int)-11); - } - } - - @Run(test = "testIntM31") - @Warmup(0) - public static void runIntM31() { - int[] data = new int[RANGE]; - init(data); - testIntM31(data); - verify("testIntM31", data, goldIntM31); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - // positive byte_offset 124 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 124"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 124"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testIntP31(int[] data) { - for (int j = 0; j < RANGE - 31; j++) { - data[j + 31] = (int)(data[j] * (int)-11); - } - } - - @Run(test = "testIntP31") - @Warmup(0) - public static void runIntP31() { - int[] data = new int[RANGE]; - init(data); - testIntP31(data); - verify("testIntP31", data, goldIntP31); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testIntM32(int[] data) { - for (int j = 32; j < RANGE; j++) { - data[j + -32] = (int)(data[j] * (int)-11); - } - } - - @Run(test = "testIntM32") - @Warmup(0) - public static void runIntM32() { - int[] data = new int[RANGE]; - init(data); - testIntM32(data); - verify("testIntM32", data, goldIntM32); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - // positive byte_offset 128 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 128"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 128"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testIntP32(int[] data) { - for (int j = 0; j < RANGE - 32; j++) { - data[j + 32] = (int)(data[j] * (int)-11); - } - } - - @Run(test = "testIntP32") - @Warmup(0) - public static void runIntP32() { - int[] data = new int[RANGE]; - init(data); - testIntP32(data); - verify("testIntP32", data, goldIntP32); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testIntM63(int[] data) { - for (int j = 63; j < RANGE; j++) { - data[j + -63] = (int)(data[j] * (int)-11); - } - } - - @Run(test = "testIntM63") - @Warmup(0) - public static void runIntM63() { - int[] data = new int[RANGE]; - init(data); - testIntM63(data); - verify("testIntM63", data, goldIntM63); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - // positive byte_offset 252 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 252"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 252"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testIntP63(int[] data) { - for (int j = 0; j < RANGE - 63; j++) { - data[j + 63] = (int)(data[j] * (int)-11); - } - } - - @Run(test = "testIntP63") - @Warmup(0) - public static void runIntP63() { - int[] data = new int[RANGE]; - init(data); - testIntP63(data); - verify("testIntP63", data, goldIntP63); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testIntM64(int[] data) { - for (int j = 64; j < RANGE; j++) { - data[j + -64] = (int)(data[j] * (int)-11); - } - } - - @Run(test = "testIntM64") - @Warmup(0) - public static void runIntM64() { - int[] data = new int[RANGE]; - init(data); - testIntM64(data); - verify("testIntM64", data, goldIntM64); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testIntP64(int[] data) { - for (int j = 0; j < RANGE - 64; j++) { - data[j + 64] = (int)(data[j] * (int)-11); - } - } - - @Run(test = "testIntP64") - @Warmup(0) - public static void runIntP64() { - int[] data = new int[RANGE]; - init(data); - testIntP64(data); - verify("testIntP64", data, goldIntP64); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testIntM65(int[] data) { - for (int j = 65; j < RANGE; j++) { - data[j + -65] = (int)(data[j] * (int)-11); - } - } - - @Run(test = "testIntM65") - @Warmup(0) - public static void runIntM65() { - int[] data = new int[RANGE]; - init(data); - testIntM65(data); - verify("testIntM65", data, goldIntM65); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testIntP65(int[] data) { - for (int j = 0; j < RANGE - 65; j++) { - data[j + 65] = (int)(data[j] * (int)-11); - } - } - - @Run(test = "testIntP65") - @Warmup(0) - public static void runIntP65() { - int[] data = new int[RANGE]; - init(data); - testIntP65(data); - verify("testIntP65", data, goldIntP65); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testIntM128(int[] data) { - for (int j = 128; j < RANGE; j++) { - data[j + -128] = (int)(data[j] * (int)-11); - } - } - - @Run(test = "testIntM128") - @Warmup(0) - public static void runIntM128() { - int[] data = new int[RANGE]; - init(data); - testIntM128(data); - verify("testIntM128", data, goldIntM128); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testIntP128(int[] data) { - for (int j = 0; j < RANGE - 128; j++) { - data[j + 128] = (int)(data[j] * (int)-11); - } - } - - @Run(test = "testIntP128") - @Warmup(0) - public static void runIntP128() { - int[] data = new int[RANGE]; - init(data); - testIntP128(data); - verify("testIntP128", data, goldIntP128); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testIntM129(int[] data) { - for (int j = 129; j < RANGE; j++) { - data[j + -129] = (int)(data[j] * (int)-11); - } - } - - @Run(test = "testIntM129") - @Warmup(0) - public static void runIntM129() { - int[] data = new int[RANGE]; - init(data); - testIntM129(data); - verify("testIntM129", data, goldIntM129); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_I, IRNode.MUL_VI, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testIntP129(int[] data) { - for (int j = 0; j < RANGE - 129; j++) { - data[j + 129] = (int)(data[j] * (int)-11); - } - } - - @Run(test = "testIntP129") - @Warmup(0) - public static void runIntP129() { - int[] data = new int[RANGE]; - init(data); - testIntP129(data); - verify("testIntP129", data, goldIntP129); - } + String[] flags = switch (args[0]) { + case "vanilla-A" -> new String[] {"-XX:+AlignVector"}; + case "vanilla-U" -> new String[] {"-XX:-AlignVector"}; + case "sse4-v016-A" -> new String[] {"-XX:UseSSE=4", "-XX:MaxVectorSize=16", "-XX:+AlignVector"}; + case "sse4-v016-U" -> new String[] {"-XX:UseSSE=4", "-XX:MaxVectorSize=16", "-XX:-AlignVector"}; + case "sse4-v008-A" -> new String[] {"-XX:UseSSE=4", "-XX:MaxVectorSize=8", "-XX:+AlignVector"}; + case "sse4-v008-U" -> new String[] {"-XX:UseSSE=4", "-XX:MaxVectorSize=8", "-XX:-AlignVector"}; + case "sse4-v004-A" -> new String[] {"-XX:UseSSE=4", "-XX:MaxVectorSize=4", "-XX:+AlignVector"}; + case "sse4-v004-U" -> new String[] {"-XX:UseSSE=4", "-XX:MaxVectorSize=4", "-XX:-AlignVector"}; + case "avx1-v032-A" -> new String[] {"-XX:UseAVX=1", "-XX:MaxVectorSize=32", "-XX:+AlignVector"}; + case "avx1-v032-U" -> new String[] {"-XX:UseAVX=1", "-XX:MaxVectorSize=32", "-XX:-AlignVector"}; + case "avx1-v016-A" -> new String[] {"-XX:UseAVX=1", "-XX:MaxVectorSize=16", "-XX:+AlignVector"}; + case "avx1-v016-U" -> new String[] {"-XX:UseAVX=1", "-XX:MaxVectorSize=16", "-XX:-AlignVector"}; + case "avx2-v032-A" -> new String[] {"-XX:UseAVX=2", "-XX:MaxVectorSize=32", "-XX:+AlignVector"}; + case "avx2-v032-U" -> new String[] {"-XX:UseAVX=2", "-XX:MaxVectorSize=32", "-XX:-AlignVector"}; + case "avx2-v016-A" -> new String[] {"-XX:UseAVX=2", "-XX:MaxVectorSize=16", "-XX:+AlignVector"}; + case "avx2-v016-U" -> new String[] {"-XX:UseAVX=2", "-XX:MaxVectorSize=16", "-XX:-AlignVector"}; + case "avx512-v064-A" -> new String[] {"-XX:UseAVX=3", "-XX:+UseKNLSetting", "-XX:MaxVectorSize=64", "-XX:+AlignVector"}; + case "avx512-v064-U" -> new String[] {"-XX:UseAVX=3", "-XX:+UseKNLSetting", "-XX:MaxVectorSize=64", "-XX:-AlignVector"}; + case "avx512-v032-A" -> new String[] {"-XX:UseAVX=3", "-XX:+UseKNLSetting", "-XX:MaxVectorSize=32", "-XX:+AlignVector"}; + case "avx512-v032-U" -> new String[] {"-XX:UseAVX=3", "-XX:+UseKNLSetting", "-XX:MaxVectorSize=32", "-XX:-AlignVector"}; + case "avx512bw-v064-A" -> new String[] {"-XX:UseAVX=3", "-XX:MaxVectorSize=64", "-XX:+AlignVector"}; + case "avx512bw-v064-U" -> new String[] {"-XX:UseAVX=3", "-XX:MaxVectorSize=64", "-XX:-AlignVector"}; + case "avx512bw-v032-A" -> new String[] {"-XX:UseAVX=3", "-XX:MaxVectorSize=32", "-XX:+AlignVector"}; + case "avx512bw-v032-U" -> new String[] {"-XX:UseAVX=3", "-XX:MaxVectorSize=32", "-XX:-AlignVector"}; + case "vec-v064-A" -> new String[] {"-XX:MaxVectorSize=64", "-XX:+AlignVector"}; + case "vec-v064-U" -> new String[] {"-XX:MaxVectorSize=64", "-XX:-AlignVector"}; + case "vec-v032-A" -> new String[] {"-XX:MaxVectorSize=32", "-XX:+AlignVector"}; + case "vec-v032-U" -> new String[] {"-XX:MaxVectorSize=32", "-XX:-AlignVector"}; + case "vec-v016-A" -> new String[] {"-XX:MaxVectorSize=16", "-XX:+AlignVector"}; + case "vec-v016-U" -> new String[] {"-XX:MaxVectorSize=16", "-XX:-AlignVector"}; + case "vec-v008-A" -> new String[] {"-XX:MaxVectorSize=8", "-XX:+AlignVector"}; + case "vec-v008-U" -> new String[] {"-XX:MaxVectorSize=8", "-XX:-AlignVector"}; + case "vec-v004-A" -> new String[] {"-XX:MaxVectorSize=4", "-XX:+AlignVector"}; + case "vec-v004-U" -> new String[] {"-XX:MaxVectorSize=4", "-XX:-AlignVector"}; + default -> { throw new RuntimeException("Test argument not recognized: " + args[0]); } + }; + + CompileFramework comp = new CompileFramework(); + long time0 = System.currentTimeMillis(); + comp.addJavaSourceCode("InnerTest", generate(comp, flags)); + long time1 = System.currentTimeMillis(); + comp.compile(); + long time2 = System.currentTimeMillis(); + comp.invoke("InnerTest", "main", new Object[] {null}); + long time3 = System.currentTimeMillis(); + System.out.println("Generate: " + (time1 - time0)); + System.out.println("Compile: " + (time2 - time1)); + System.out.println("Run: " + (time3 - time2)); + } + + static record Type (String name, int size, String value, String operator, String irNode) { + String letter() { + return name.substring(0, 1).toUpperCase(); + } + + /* + * Template for init method generation. + */ + String generateInit() { + return String.format(""" + static void init(%s[] a, %s[] b) { + for (int i = 0; i < SIZE; i++) { + a[i] = (%s)(2 * i); + b[i] = (%s)(3 * i); + } + } + """, + name, name, name, name); + } + + /* + * Template for verify method generation. + */ + String generateVerify() { + return String.format(""" + static void verify(String context, %s[] aTest, %s[] bTest, %s[] aGold, %s[] bGold) { + for (int i = 0; i < SIZE; i++) { + if (aTest[i] != aGold[i] || bTest[i] != bGold[i]) { + throw new RuntimeException("Wrong result in " + context + " at i=" + i + ": " + + "aTest=" + aTest[i] + ", aGold=" + aGold[i] + + "bTest=" + bTest[i] + ", bGold=" + bGold[i]); + } + } + } + """, + name, name, name, name); + } + } + + static final Type[] TYPES = new Type[] { + new Type("int", 4, "-11", "*", "MUL_VI"), + new Type("long", 8, "-11", "+", "ADD_VL"), // aarch64 NEON does not support MulVL + new Type("short", 2, "-11", "*", "MUL_VS"), + new Type("char", 2, "-11", "*", "MUL_VS"), // char behaves like short + new Type("byte", 1, "11", "*", "MUL_VB"), + new Type("float", 4, "1.001f", "*", "MUL_VF"), + new Type("double", 8, "1.001", "*", "MUL_VD"), + }; + + /* + * Every CPU can define its own Matcher::min_vector_size. This happens to be different for + * our targeted platforms: x86 / sse4.1 and aarch64 / asimd. + */ + static record CPUMinVectorWidth (String applyIfCPUFeature, int minVectorWidth) {} + + static final String SSE4_ASIMD = " applyIfCPUFeatureOr = {\"sse4.1\", \"true\", \"asimd\", \"true\"})\n"; + static final String SSE4 = " applyIfCPUFeature = {\"sse4.1\", \"true\"})\n"; + static final String ASIMD = " applyIfCPUFeature = {\"asimd\", \"true\"})\n"; + + static CPUMinVectorWidth[] getCPUMinVectorWidth(String typeName) { + return switch (typeName) { + case "byte" -> new CPUMinVectorWidth[]{new CPUMinVectorWidth(SSE4_ASIMD, 4 )}; + case "char" -> new CPUMinVectorWidth[]{new CPUMinVectorWidth(SSE4, 4 ), + new CPUMinVectorWidth(ASIMD, 8 )}; + case "short" -> new CPUMinVectorWidth[]{new CPUMinVectorWidth(SSE4, 4 ), + new CPUMinVectorWidth(ASIMD, 8 )}; + case "int" -> new CPUMinVectorWidth[]{new CPUMinVectorWidth(SSE4_ASIMD, 8 )}; + case "long" -> new CPUMinVectorWidth[]{new CPUMinVectorWidth(SSE4_ASIMD, 16)}; + case "float" -> new CPUMinVectorWidth[]{new CPUMinVectorWidth(SSE4_ASIMD, 8 )}; + case "double" -> new CPUMinVectorWidth[]{new CPUMinVectorWidth(SSE4_ASIMD, 16)}; + default -> { throw new RuntimeException("type not supported: " + typeName); } + }; + } + + static List getOffsets() { + // Some carefully hand-picked values + int[] always = new int[] { + 0, + -1, 1, + -2, 2, // 2^1 + -3, 3, + -4, 4, // 2^2 + -7, 7, + -8, 8, // 2^3 + -14, 14, + -16, 16, // 2^4 + -18, 18, + -20, 20, + -31, 31, + -32, 32, // 2^5 + -63, 63, + -64, 64, // 2^6 + -65, 65, + -128, 128, // 2^7 + -129, 129, + -192, 192, // 3 * 64 + }; + Set set = Arrays.stream(always).boxed().collect(Collectors.toSet()); + + // Sample some random values on an exponential scale + for (int i = 0; i < 10; i++) { + int base = 4 << i; + int offset = base + RANDOM.nextInt(base); + set.add(offset); + set.add(-offset); + } + + return new ArrayList(set); + } + + static record TestDefinition (int id, Type type, int offset) { + + /* + * Template for test generation, together with its static variables, static initialization, + * @IR rules and @Run method (initialization, execution and verification). + */ + String generate() { + int start = offset >= 0 ? 0 : -offset; + String end = offset >= 0 ? "SIZE - " + offset : "SIZE"; + + String aliasingComment; + String secondArgument; + String loadFrom; + switch (RANDOM.nextInt(3)) { + case 0: // a[i + offset] = a[i] + aliasingComment = "single-array"; + secondArgument = "a"; + loadFrom = "a"; + break; + case 1: // a[i + offset] = b[i], but a and b alias, i.e. at runtime a == b. + aliasingComment = "aliasing"; + secondArgument = "a"; + loadFrom = "b"; + break; + case 2: // a[i + offset] = b[i], and a and b do not alias, i.e. at runtime a != b. + aliasingComment = "non-aliasing"; + secondArgument = "b"; + loadFrom = "b"; + break; + default: + throw new RuntimeException("impossible"); + } - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testIntM192(int[] data) { - for (int j = 192; j < RANGE; j++) { - data[j + -192] = (int)(data[j] * (int)-11); + return String.format(""" + // test%d: type=%s, offset=%d, mode=%s + static %s[] aGold%d = new %s[SIZE]; + static %s[] bGold%d = new %s[SIZE]; + static %s[] aTest%d = new %s[SIZE]; + static %s[] bTest%d = new %s[SIZE]; + + static { + init(aGold%d, bGold%d); + test%d(aGold%d, %sGold%d); + } + + @Test + %s + public static void test%d(%s[] a, %s[] b) { + for (int i = %d; i < %s; i++) { + a[i + %d] = (%s)(%s[i] %s %s); + } + } + + @Run(test = "test%s") + public static void run%s() { + init(aTest%d, bTest%d); + test%d(aTest%d, %sTest%d); + verify("test%d", aTest%d, bTest%d, aGold%d, bGold%d); + } + """, + // title + id, type.name, offset, aliasingComment, + // static + type.name, id, type.name, + type.name, id, type.name, + type.name, id, type.name, + type.name, id, type.name, + id, id, id, id, secondArgument, id, + // IR rules + generateIRRules(), + // test + id, type.name, type.name, + start, end, + offset, type.name, loadFrom, type.operator, type.value, + // run + id, id, id, id, id, id, secondArgument, id, id, id, id, id, id); + } + + /* + * We generate a number of IR rules for every TestDefinition. If an what kind of vectorization we + * expect depends on AlignVector and MaxVectorSize, as well as the byteOffset between the load and + * store. + */ + String generateIRRules() { + StringBuilder builder = new StringBuilder(); + + for (CPUMinVectorWidth cm : getCPUMinVectorWidth(type.name)) { + String applyIfCPUFeature = cm.applyIfCPUFeature; + int minVectorWidth = cm.minVectorWidth; + builder.append(" // minVectorWidth = " + minVectorWidth + "\n"); + + int byteOffset = offset * type.size; + builder.append(" // byteOffset = " + byteOffset + " = offset * type.size\n"); + + // In a store-forward case, later iterations load from stores of previous iterations. + // If the offset is too small, that leads to cyclic dependencies in the vectors. Hence, + // we use shorter vectors to avoid cycles and still vectorize. Vector lengths have to + // be powers-of-2, and smaller or equal to the byteOffset. So we round down to the next + // power of two. + int infinity = 256; // No vector size is ever larger than this. + int maxVectorWidth = infinity; // no constraint by default + if (0 < byteOffset && byteOffset < maxVectorWidth) { + int log2 = 31 - Integer.numberOfLeadingZeros(offset); + int floorPow2 = 1 << log2; + maxVectorWidth = Math.min(maxVectorWidth, floorPow2 * type.size); + builder.append(" // Vectors must have at most " + floorPow2 + + " elements: maxVectorWidth = " + maxVectorWidth + + " to avoid cyclic dependency.\n"); + } + + // Rule 1: No strict alignment: -XX:-AlignVector + IRRule r1 = new IRRule(type, type.irNode, applyIfCPUFeature); + r1.addApplyIf("\"AlignVector\", \"false\""); + r1.addApplyIf("\"MaxVectorSize\", \">=" + minVectorWidth + "\""); + + if (maxVectorWidth < minVectorWidth) { + builder.append(" // maxVectorWidth < minVectorWidth -> expect no vectorization.\n"); + r1.setNegative(); + } else if (maxVectorWidth < infinity) { + r1.setSize("min(" + (maxVectorWidth / type.size) + ",max_" + type.name + ")"); + } + r1.generate(builder); + + // Rule 2: strict alignment: -XX:+AlignVector + IRRule r2 = new IRRule(type, type.irNode, applyIfCPUFeature); + r2.addApplyIf("\"AlignVector\", \"true\""); + r2.addApplyIf("\"MaxVectorSize\", \">=" + minVectorWidth + "\""); + + // All vectors must be aligned by some alignment width aw: + // aw = min(actualVectorWidth, ObjectAlignmentInBytes) + // The runtime aw must thus lay between these two values: + // awMin <= aw <= awMax + int awMin = Math.min(minVectorWidth, 8); + int awMax = 8; + + // We must align both the load and the store, thus we must also be able to align + // for the difference of the two, i.e. byteOffset must be a multiple of aw: + // byteOffset % aw == 0 + // We don't know the aw, only awMin and awMax. But: + // byteOffset % awMax == 0 -> byteOffset % aw == 0 + // byteOffset % awMin != 0 -> byteOffset % aw != 0 + builder.append(" // awMin = " + awMin + " = min(minVectorWidth, 8)\n"); + builder.append(" // awMax = " + awMax + "\n"); + + if (byteOffset % awMax == 0) { + builder.append(" // byteOffset % awMax == 0 -> always trivially aligned\n"); + } else if (byteOffset % awMin != 0) { + builder.append(" // byteOffset % awMin != 0 -> can never align -> expect no vectorization.\n"); + r2.setNegative(); + } else { + builder.append(" // Alignment unknown -> disable IR rule.\n"); + r2.disable(); + } + + if (maxVectorWidth < minVectorWidth) { + builder.append(" // Not at least 2 elements or 4 bytes -> expect no vectorization.\n"); + r2.setNegative(); + } else if (maxVectorWidth < infinity) { + r2.setSize("min(" + (maxVectorWidth / type.size) + ",max_" + type.name + ")"); + } + r2.generate(builder); + } + return builder.toString(); } } - @Run(test = "testIntM192") - @Warmup(0) - public static void runIntM192() { - int[] data = new int[RANGE]; - init(data); - testIntM192(data); - verify("testIntM192", data, goldIntM192); - } + static List getTests() { + List tests = new ArrayList<>(); - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0", IRNode.MUL_VI, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testIntP192(int[] data) { - for (int j = 0; j < RANGE - 192; j++) { - data[j + 192] = (int)(data[j] * (int)-11); + // Cross product of all types and offsets. + int id = 0; + for (Type type : TYPES) { + for (int offset : getOffsets()) { + tests.add(new TestDefinition(id++, type, offset)); + } } - } - @Run(test = "testIntP192") - @Warmup(0) - public static void runIntP192() { - int[] data = new int[RANGE]; - init(data); - testIntP192(data); - verify("testIntP192", data, goldIntP192); + return tests; } - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testLongP0(long[] data) { - for (int j = 0; j < RANGE; j++) { - data[j + 0] = (long)(data[j] + (long)-11); - } - } - - @Run(test = "testLongP0") - @Warmup(0) - public static void runLongP0() { - long[] data = new long[RANGE]; - init(data); - testLongP0(data); - verify("testLongP0", data, goldLongP0); - } + static class IRRule { + Type type; + String irNode; + String applyIfCPUFeature; + String size; + boolean isEnabled; + boolean isPositiveRule; + ArrayList applyIf; - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testLongM1(long[] data) { - for (int j = 1; j < RANGE; j++) { - data[j + -1] = (long)(data[j] + (long)-11); + IRRule(Type type, String irNode, String applyIfCPUFeature) { + this.type = type; + this.irNode = irNode; + this.applyIfCPUFeature = applyIfCPUFeature; + this.size = null; + this.isPositiveRule = true; + this.isEnabled = true; + this.applyIf = new ArrayList(); } - } - - @Run(test = "testLongM1") - @Warmup(0) - public static void runLongM1() { - long[] data = new long[RANGE]; - init(data); - testLongM1(data); - verify("testLongM1", data, goldLongM1); - } - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 2 - // positive byte_offset 8 can lead to cyclic dependency - // No positive IR rule: conditions impossible. - // Expect alignment. - // No positive IR rule: conditions impossible. - // CPU: avx2 -> vector_width: 32 -> elements in vector: 4 - // positive byte_offset 8 can lead to cyclic dependency - // No positive IR rule: conditions impossible. - // Expect alignment. - // No positive IR rule: conditions impossible. - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - // positive byte_offset 8 can lead to cyclic dependency - // No positive IR rule: conditions impossible. - // Expect alignment. - // No positive IR rule: conditions impossible. - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - // positive byte_offset 8 can lead to cyclic dependency - // No positive IR rule: conditions impossible. - // Expect alignment. - // No positive IR rule: conditions impossible. - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - // positive byte_offset 8 can lead to cyclic dependency - // No positive IR rule: conditions impossible. - // Expect alignment. - // No positive IR rule: conditions impossible. - public static void testLongP1(long[] data) { - for (int j = 0; j < RANGE - 1; j++) { - data[j + 1] = (long)(data[j] + (long)-11); + void setSize(String size) { + this.size = size; } - } - @Run(test = "testLongP1") - @Warmup(0) - public static void runLongP1() { - long[] data = new long[RANGE]; - init(data); - testLongP1(data); - verify("testLongP1", data, goldLongP1); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testLongM2(long[] data) { - for (int j = 2; j < RANGE; j++) { - data[j + -2] = (long)(data[j] + (long)-11); + void setNegative() { + this.isPositiveRule = false; } - } - - @Run(test = "testLongM2") - @Warmup(0) - public static void runLongM2() { - long[] data = new long[RANGE]; - init(data); - testLongM2(data); - verify("testLongM2", data, goldLongM2); - } - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 4 - // positive byte_offset 16 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", "16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - // positive byte_offset 16 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", "16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - // positive byte_offset 16 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", "16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testLongP2(long[] data) { - for (int j = 0; j < RANGE - 2; j++) { - data[j + 2] = (long)(data[j] + (long)-11); + void disable() { + this.isEnabled = false; } - } - - @Run(test = "testLongP2") - @Warmup(0) - public static void runLongP2() { - long[] data = new long[RANGE]; - init(data); - testLongP2(data); - verify("testLongP2", data, goldLongP2); - } - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testLongM3(long[] data) { - for (int j = 3; j < RANGE; j++) { - data[j + -3] = (long)(data[j] + (long)-11); + void addApplyIf(String constraint) { + this.applyIf.add(constraint); } - } - - @Run(test = "testLongM3") - @Warmup(0) - public static void runLongM3() { - long[] data = new long[RANGE]; - init(data); - testLongM3(data); - verify("testLongM3", data, goldLongM3); - } - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 4 - // positive byte_offset 24 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 24"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 24"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - // positive byte_offset 24 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 24"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 24"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - // positive byte_offset 24 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 24"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 24"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testLongP3(long[] data) { - for (int j = 0; j < RANGE - 3; j++) { - data[j + 3] = (long)(data[j] + (long)-11); - } - } + void generate(StringBuilder builder) { + if (!isEnabled) { + builder.append(" // No IR rule: disabled.\n"); + } else { + builder.append(counts()); - @Run(test = "testLongP3") - @Warmup(0) - public static void runLongP3() { - long[] data = new long[RANGE]; - init(data); - testLongP3(data); - verify("testLongP3", data, goldLongP3); - } + // applyIf + if (!applyIf.isEmpty()) { + builder.append(" applyIf"); + builder.append(applyIf.size() > 1 ? "And" : ""); + builder.append(" = {"); + builder.append(String.join(", ", applyIf)); + builder.append("},\n"); + } - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testLongM4(long[] data) { - for (int j = 4; j < RANGE; j++) { - data[j + -4] = (long)(data[j] + (long)-11); + // CPU features + builder.append(applyIfCPUFeature); + } } - } - @Run(test = "testLongM4") - @Warmup(0) - public static void runLongM4() { - long[] data = new long[RANGE]; - init(data); - testLongM4(data); - verify("testLongM4", data, goldLongM4); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - // positive byte_offset 32 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 32"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 32"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - // positive byte_offset 32 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 32"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 32"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testLongP4(long[] data) { - for (int j = 0; j < RANGE - 4; j++) { - data[j + 4] = (long)(data[j] + (long)-11); - } - } - - @Run(test = "testLongP4") - @Warmup(0) - public static void runLongP4() { - long[] data = new long[RANGE]; - init(data); - testLongP4(data); - verify("testLongP4", data, goldLongP4); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testLongM7(long[] data) { - for (int j = 7; j < RANGE; j++) { - data[j + -7] = (long)(data[j] + (long)-11); - } - } - - @Run(test = "testLongM7") - @Warmup(0) - public static void runLongM7() { - long[] data = new long[RANGE]; - init(data); - testLongM7(data); - verify("testLongM7", data, goldLongM7); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - // positive byte_offset 56 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 56"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 56"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - // positive byte_offset 56 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 56"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 56"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testLongP7(long[] data) { - for (int j = 0; j < RANGE - 7; j++) { - data[j + 7] = (long)(data[j] + (long)-11); - } - } - - @Run(test = "testLongP7") - @Warmup(0) - public static void runLongP7() { - long[] data = new long[RANGE]; - init(data); - testLongP7(data); - verify("testLongP7", data, goldLongP7); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testLongM8(long[] data) { - for (int j = 8; j < RANGE; j++) { - data[j + -8] = (long)(data[j] + (long)-11); - } - } - - @Run(test = "testLongM8") - @Warmup(0) - public static void runLongM8() { - long[] data = new long[RANGE]; - init(data); - testLongM8(data); - verify("testLongM8", data, goldLongM8); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - // positive byte_offset 64 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 64"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 64"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testLongP8(long[] data) { - for (int j = 0; j < RANGE - 8; j++) { - data[j + 8] = (long)(data[j] + (long)-11); - } - } - - @Run(test = "testLongP8") - @Warmup(0) - public static void runLongP8() { - long[] data = new long[RANGE]; - init(data); - testLongP8(data); - verify("testLongP8", data, goldLongP8); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testLongM14(long[] data) { - for (int j = 14; j < RANGE; j++) { - data[j + -14] = (long)(data[j] + (long)-11); - } - } - - @Run(test = "testLongM14") - @Warmup(0) - public static void runLongM14() { - long[] data = new long[RANGE]; - init(data); - testLongM14(data); - verify("testLongM14", data, goldLongM14); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - // positive byte_offset 112 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 112"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 112"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testLongP14(long[] data) { - for (int j = 0; j < RANGE - 14; j++) { - data[j + 14] = (long)(data[j] + (long)-11); - } - } - - @Run(test = "testLongP14") - @Warmup(0) - public static void runLongP14() { - long[] data = new long[RANGE]; - init(data); - testLongP14(data); - verify("testLongP14", data, goldLongP14); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testLongM16(long[] data) { - for (int j = 16; j < RANGE; j++) { - data[j + -16] = (long)(data[j] + (long)-11); - } - } - - @Run(test = "testLongM16") - @Warmup(0) - public static void runLongM16() { - long[] data = new long[RANGE]; - init(data); - testLongM16(data); - verify("testLongM16", data, goldLongM16); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - // positive byte_offset 128 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 128"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 128"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testLongP16(long[] data) { - for (int j = 0; j < RANGE - 16; j++) { - data[j + 16] = (long)(data[j] + (long)-11); - } - } - - @Run(test = "testLongP16") - @Warmup(0) - public static void runLongP16() { - long[] data = new long[RANGE]; - init(data); - testLongP16(data); - verify("testLongP16", data, goldLongP16); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testLongM18(long[] data) { - for (int j = 18; j < RANGE; j++) { - data[j + -18] = (long)(data[j] + (long)-11); - } - } - - @Run(test = "testLongM18") - @Warmup(0) - public static void runLongM18() { - long[] data = new long[RANGE]; - init(data); - testLongM18(data); - verify("testLongM18", data, goldLongM18); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - // positive byte_offset 144 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 144"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 144"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testLongP18(long[] data) { - for (int j = 0; j < RANGE - 18; j++) { - data[j + 18] = (long)(data[j] + (long)-11); - } - } - - @Run(test = "testLongP18") - @Warmup(0) - public static void runLongP18() { - long[] data = new long[RANGE]; - init(data); - testLongP18(data); - verify("testLongP18", data, goldLongP18); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testLongM20(long[] data) { - for (int j = 20; j < RANGE; j++) { - data[j + -20] = (long)(data[j] + (long)-11); - } - } - - @Run(test = "testLongM20") - @Warmup(0) - public static void runLongM20() { - long[] data = new long[RANGE]; - init(data); - testLongM20(data); - verify("testLongM20", data, goldLongM20); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - // positive byte_offset 160 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 160"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 160"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testLongP20(long[] data) { - for (int j = 0; j < RANGE - 20; j++) { - data[j + 20] = (long)(data[j] + (long)-11); - } - } - - @Run(test = "testLongP20") - @Warmup(0) - public static void runLongP20() { - long[] data = new long[RANGE]; - init(data); - testLongP20(data); - verify("testLongP20", data, goldLongP20); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testLongM31(long[] data) { - for (int j = 31; j < RANGE; j++) { - data[j + -31] = (long)(data[j] + (long)-11); - } - } - - @Run(test = "testLongM31") - @Warmup(0) - public static void runLongM31() { - long[] data = new long[RANGE]; - init(data); - testLongM31(data); - verify("testLongM31", data, goldLongM31); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - // positive byte_offset 248 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 248"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 248"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testLongP31(long[] data) { - for (int j = 0; j < RANGE - 31; j++) { - data[j + 31] = (long)(data[j] + (long)-11); - } - } - - @Run(test = "testLongP31") - @Warmup(0) - public static void runLongP31() { - long[] data = new long[RANGE]; - init(data); - testLongP31(data); - verify("testLongP31", data, goldLongP31); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testLongM32(long[] data) { - for (int j = 32; j < RANGE; j++) { - data[j + -32] = (long)(data[j] + (long)-11); - } - } - - @Run(test = "testLongM32") - @Warmup(0) - public static void runLongM32() { - long[] data = new long[RANGE]; - init(data); - testLongM32(data); - verify("testLongM32", data, goldLongM32); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testLongP32(long[] data) { - for (int j = 0; j < RANGE - 32; j++) { - data[j + 32] = (long)(data[j] + (long)-11); - } - } - - @Run(test = "testLongP32") - @Warmup(0) - public static void runLongP32() { - long[] data = new long[RANGE]; - init(data); - testLongP32(data); - verify("testLongP32", data, goldLongP32); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testLongM63(long[] data) { - for (int j = 63; j < RANGE; j++) { - data[j + -63] = (long)(data[j] + (long)-11); - } - } - - @Run(test = "testLongM63") - @Warmup(0) - public static void runLongM63() { - long[] data = new long[RANGE]; - init(data); - testLongM63(data); - verify("testLongM63", data, goldLongM63); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testLongP63(long[] data) { - for (int j = 0; j < RANGE - 63; j++) { - data[j + 63] = (long)(data[j] + (long)-11); - } - } - - @Run(test = "testLongP63") - @Warmup(0) - public static void runLongP63() { - long[] data = new long[RANGE]; - init(data); - testLongP63(data); - verify("testLongP63", data, goldLongP63); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testLongM64(long[] data) { - for (int j = 64; j < RANGE; j++) { - data[j + -64] = (long)(data[j] + (long)-11); - } - } - - @Run(test = "testLongM64") - @Warmup(0) - public static void runLongM64() { - long[] data = new long[RANGE]; - init(data); - testLongM64(data); - verify("testLongM64", data, goldLongM64); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testLongP64(long[] data) { - for (int j = 0; j < RANGE - 64; j++) { - data[j + 64] = (long)(data[j] + (long)-11); - } - } - - @Run(test = "testLongP64") - @Warmup(0) - public static void runLongP64() { - long[] data = new long[RANGE]; - init(data); - testLongP64(data); - verify("testLongP64", data, goldLongP64); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testLongM65(long[] data) { - for (int j = 65; j < RANGE; j++) { - data[j + -65] = (long)(data[j] + (long)-11); - } - } - - @Run(test = "testLongM65") - @Warmup(0) - public static void runLongM65() { - long[] data = new long[RANGE]; - init(data); - testLongM65(data); - verify("testLongM65", data, goldLongM65); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testLongP65(long[] data) { - for (int j = 0; j < RANGE - 65; j++) { - data[j + 65] = (long)(data[j] + (long)-11); - } - } - - @Run(test = "testLongP65") - @Warmup(0) - public static void runLongP65() { - long[] data = new long[RANGE]; - init(data); - testLongP65(data); - verify("testLongP65", data, goldLongP65); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testLongM128(long[] data) { - for (int j = 128; j < RANGE; j++) { - data[j + -128] = (long)(data[j] + (long)-11); - } - } - - @Run(test = "testLongM128") - @Warmup(0) - public static void runLongM128() { - long[] data = new long[RANGE]; - init(data); - testLongM128(data); - verify("testLongM128", data, goldLongM128); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testLongP128(long[] data) { - for (int j = 0; j < RANGE - 128; j++) { - data[j + 128] = (long)(data[j] + (long)-11); - } - } - - @Run(test = "testLongP128") - @Warmup(0) - public static void runLongP128() { - long[] data = new long[RANGE]; - init(data); - testLongP128(data); - verify("testLongP128", data, goldLongP128); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testLongM129(long[] data) { - for (int j = 129; j < RANGE; j++) { - data[j + -129] = (long)(data[j] + (long)-11); - } - } - - @Run(test = "testLongM129") - @Warmup(0) - public static void runLongM129() { - long[] data = new long[RANGE]; - init(data); - testLongM129(data); - verify("testLongM129", data, goldLongM129); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testLongP129(long[] data) { - for (int j = 0; j < RANGE - 129; j++) { - data[j + 129] = (long)(data[j] + (long)-11); - } - } - - @Run(test = "testLongP129") - @Warmup(0) - public static void runLongP129() { - long[] data = new long[RANGE]; - init(data); - testLongP129(data); - verify("testLongP129", data, goldLongP129); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testLongM192(long[] data) { - for (int j = 192; j < RANGE; j++) { - data[j + -192] = (long)(data[j] + (long)-11); - } - } - - @Run(test = "testLongM192") - @Warmup(0) - public static void runLongM192() { - long[] data = new long[RANGE]; - init(data); - testLongM192(data); - verify("testLongM192", data, goldLongM192); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0", IRNode.ADD_VL, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testLongP192(long[] data) { - for (int j = 0; j < RANGE - 192; j++) { - data[j + 192] = (long)(data[j] + (long)-11); - } - } - - @Run(test = "testLongP192") - @Warmup(0) - public static void runLongP192() { - long[] data = new long[RANGE]; - init(data); - testLongP192(data); - verify("testLongP192", data, goldLongP192); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testShortP0(short[] data) { - for (int j = 0; j < RANGE; j++) { - data[j + 0] = (short)(data[j] * (short)-11); - } - } - - @Run(test = "testShortP0") - @Warmup(0) - public static void runShortP0() { - short[] data = new short[RANGE]; - init(data); - testShortP0(data); - verify("testShortP0", data, goldShortP0); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testShortM1(short[] data) { - for (int j = 1; j < RANGE; j++) { - data[j + -1] = (short)(data[j] * (short)-11); - } - } - - @Run(test = "testShortM1") - @Warmup(0) - public static void runShortM1() { - short[] data = new short[RANGE]; - init(data); - testShortM1(data); - verify("testShortM1", data, goldShortM1); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - // positive byte_offset 2 can lead to cyclic dependency - // No positive IR rule: conditions impossible. - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 2"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - // positive byte_offset 2 can lead to cyclic dependency - // No positive IR rule: conditions impossible. - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 2"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - // positive byte_offset 2 can lead to cyclic dependency - // No positive IR rule: conditions impossible. - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 2"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - // positive byte_offset 2 can lead to cyclic dependency - // No positive IR rule: conditions impossible. - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 2"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - // positive byte_offset 2 can lead to cyclic dependency - // No positive IR rule: conditions impossible. - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 2"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testShortP1(short[] data) { - for (int j = 0; j < RANGE - 1; j++) { - data[j + 1] = (short)(data[j] * (short)-11); - } - } - - @Run(test = "testShortP1") - @Warmup(0) - public static void runShortP1() { - short[] data = new short[RANGE]; - init(data); - testShortP1(data); - verify("testShortP1", data, goldShortP1); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - public static void testShortM2(short[] data) { - for (int j = 2; j < RANGE; j++) { - data[j + -2] = (short)(data[j] * (short)-11); - } - } - - @Run(test = "testShortM2") - @Warmup(0) - public static void runShortM2() { - short[] data = new short[RANGE]; - init(data); - testShortM2(data); - verify("testShortM2", data, goldShortM2); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - // positive byte_offset 4 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", "4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - // positive byte_offset 4 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", "4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - // positive byte_offset 4 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", "4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - // positive byte_offset 4 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", "4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - // positive byte_offset 4 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", "4"}, - applyIfCPUFeature = {"sve", "true"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - public static void testShortP2(short[] data) { - for (int j = 0; j < RANGE - 2; j++) { - data[j + 2] = (short)(data[j] * (short)-11); - } - } - - @Run(test = "testShortP2") - @Warmup(0) - public static void runShortP2() { - short[] data = new short[RANGE]; - init(data); - testShortP2(data); - verify("testShortP2", data, goldShortP2); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testShortM3(short[] data) { - for (int j = 3; j < RANGE; j++) { - data[j + -3] = (short)(data[j] * (short)-11); - } - } - - @Run(test = "testShortM3") - @Warmup(0) - public static void runShortM3() { - short[] data = new short[RANGE]; - init(data); - testShortM3(data); - verify("testShortM3", data, goldShortM3); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - // positive byte_offset 6 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 6"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 6"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - // positive byte_offset 6 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 6"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 6"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - // positive byte_offset 6 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 6"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 6"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - // positive byte_offset 6 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 6"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 6"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - // positive byte_offset 6 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 6"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 6"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testShortP3(short[] data) { - for (int j = 0; j < RANGE - 3; j++) { - data[j + 3] = (short)(data[j] * (short)-11); - } - } - - @Run(test = "testShortP3") - @Warmup(0) - public static void runShortP3() { - short[] data = new short[RANGE]; - init(data); - testShortP3(data); - verify("testShortP3", data, goldShortP3); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testShortM4(short[] data) { - for (int j = 4; j < RANGE; j++) { - data[j + -4] = (short)(data[j] * (short)-11); - } - } - - @Run(test = "testShortM4") - @Warmup(0) - public static void runShortM4() { - short[] data = new short[RANGE]; - init(data); - testShortM4(data); - verify("testShortM4", data, goldShortM4); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - // positive byte_offset 8 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - // positive byte_offset 8 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - // positive byte_offset 8 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 8"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 8"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - // positive byte_offset 8 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - // positive byte_offset 8 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 8"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testShortP4(short[] data) { - for (int j = 0; j < RANGE - 4; j++) { - data[j + 4] = (short)(data[j] * (short)-11); - } - } - - @Run(test = "testShortP4") - @Warmup(0) - public static void runShortP4() { - short[] data = new short[RANGE]; - init(data); - testShortP4(data); - verify("testShortP4", data, goldShortP4); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testShortM7(short[] data) { - for (int j = 7; j < RANGE; j++) { - data[j + -7] = (short)(data[j] * (short)-11); - } - } - - @Run(test = "testShortM7") - @Warmup(0) - public static void runShortM7() { - short[] data = new short[RANGE]; - init(data); - testShortM7(data); - verify("testShortM7", data, goldShortM7); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - // positive byte_offset 14 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 14"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 14"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - // positive byte_offset 14 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 14"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 14"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - // positive byte_offset 14 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 14"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 14"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - // positive byte_offset 14 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 14"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 14"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - // positive byte_offset 14 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 14"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 14"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testShortP7(short[] data) { - for (int j = 0; j < RANGE - 7; j++) { - data[j + 7] = (short)(data[j] * (short)-11); - } - } - - @Run(test = "testShortP7") - @Warmup(0) - public static void runShortP7() { - short[] data = new short[RANGE]; - init(data); - testShortP7(data); - verify("testShortP7", data, goldShortP7); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testShortM8(short[] data) { - for (int j = 8; j < RANGE; j++) { - data[j + -8] = (short)(data[j] * (short)-11); - } - } - - @Run(test = "testShortM8") - @Warmup(0) - public static void runShortM8() { - short[] data = new short[RANGE]; - init(data); - testShortM8(data); - verify("testShortM8", data, goldShortM8); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - // positive byte_offset 16 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - // positive byte_offset 16 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 16"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 16"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - // positive byte_offset 16 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testShortP8(short[] data) { - for (int j = 0; j < RANGE - 8; j++) { - data[j + 8] = (short)(data[j] * (short)-11); - } - } - - @Run(test = "testShortP8") - @Warmup(0) - public static void runShortP8() { - short[] data = new short[RANGE]; - init(data); - testShortP8(data); - verify("testShortP8", data, goldShortP8); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - public static void testShortM14(short[] data) { - for (int j = 14; j < RANGE; j++) { - data[j + -14] = (short)(data[j] * (short)-11); - } - } - - @Run(test = "testShortM14") - @Warmup(0) - public static void runShortM14() { - short[] data = new short[RANGE]; - init(data); - testShortM14(data); - verify("testShortM14", data, goldShortM14); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - // positive byte_offset 28 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 28"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - // positive byte_offset 28 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 28"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - // positive byte_offset 28 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 28"}, - applyIfCPUFeature = {"sve", "true"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - public static void testShortP14(short[] data) { - for (int j = 0; j < RANGE - 14; j++) { - data[j + 14] = (short)(data[j] * (short)-11); - } - } - - @Run(test = "testShortP14") - @Warmup(0) - public static void runShortP14() { - short[] data = new short[RANGE]; - init(data); - testShortP14(data); - verify("testShortP14", data, goldShortP14); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testShortM16(short[] data) { - for (int j = 16; j < RANGE; j++) { - data[j + -16] = (short)(data[j] * (short)-11); - } - } - - @Run(test = "testShortM16") - @Warmup(0) - public static void runShortM16() { - short[] data = new short[RANGE]; - init(data); - testShortM16(data); - verify("testShortM16", data, goldShortM16); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - // positive byte_offset 32 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 32"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 32"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - // positive byte_offset 32 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 32"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 32"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testShortP16(short[] data) { - for (int j = 0; j < RANGE - 16; j++) { - data[j + 16] = (short)(data[j] * (short)-11); - } - } - - @Run(test = "testShortP16") - @Warmup(0) - public static void runShortP16() { - short[] data = new short[RANGE]; - init(data); - testShortP16(data); - verify("testShortP16", data, goldShortP16); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - public static void testShortM18(short[] data) { - for (int j = 18; j < RANGE; j++) { - data[j + -18] = (short)(data[j] * (short)-11); - } - } - - @Run(test = "testShortM18") - @Warmup(0) - public static void runShortM18() { - short[] data = new short[RANGE]; - init(data); - testShortM18(data); - verify("testShortM18", data, goldShortM18); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - // positive byte_offset 36 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 36"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - // positive byte_offset 36 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 36"}, - applyIfCPUFeature = {"sve", "true"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - public static void testShortP18(short[] data) { - for (int j = 0; j < RANGE - 18; j++) { - data[j + 18] = (short)(data[j] * (short)-11); - } - } - - @Run(test = "testShortP18") - @Warmup(0) - public static void runShortP18() { - short[] data = new short[RANGE]; - init(data); - testShortP18(data); - verify("testShortP18", data, goldShortP18); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testShortM20(short[] data) { - for (int j = 20; j < RANGE; j++) { - data[j + -20] = (short)(data[j] * (short)-11); - } - } - - @Run(test = "testShortM20") - @Warmup(0) - public static void runShortM20() { - short[] data = new short[RANGE]; - init(data); - testShortM20(data); - verify("testShortM20", data, goldShortM20); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - // positive byte_offset 40 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 40"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 40"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - // positive byte_offset 40 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 40"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 40"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testShortP20(short[] data) { - for (int j = 0; j < RANGE - 20; j++) { - data[j + 20] = (short)(data[j] * (short)-11); - } - } - - @Run(test = "testShortP20") - @Warmup(0) - public static void runShortP20() { - short[] data = new short[RANGE]; - init(data); - testShortP20(data); - verify("testShortP20", data, goldShortP20); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testShortM31(short[] data) { - for (int j = 31; j < RANGE; j++) { - data[j + -31] = (short)(data[j] * (short)-11); - } - } - - @Run(test = "testShortM31") - @Warmup(0) - public static void runShortM31() { - short[] data = new short[RANGE]; - init(data); - testShortM31(data); - verify("testShortM31", data, goldShortM31); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - // positive byte_offset 62 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 62"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 62"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - // positive byte_offset 62 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 62"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 62"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testShortP31(short[] data) { - for (int j = 0; j < RANGE - 31; j++) { - data[j + 31] = (short)(data[j] * (short)-11); - } - } - - @Run(test = "testShortP31") - @Warmup(0) - public static void runShortP31() { - short[] data = new short[RANGE]; - init(data); - testShortP31(data); - verify("testShortP31", data, goldShortP31); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testShortM32(short[] data) { - for (int j = 32; j < RANGE; j++) { - data[j + -32] = (short)(data[j] * (short)-11); - } - } - - @Run(test = "testShortM32") - @Warmup(0) - public static void runShortM32() { - short[] data = new short[RANGE]; - init(data); - testShortM32(data); - verify("testShortM32", data, goldShortM32); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - // positive byte_offset 64 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 64"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 64"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testShortP32(short[] data) { - for (int j = 0; j < RANGE - 32; j++) { - data[j + 32] = (short)(data[j] * (short)-11); - } - } - - @Run(test = "testShortP32") - @Warmup(0) - public static void runShortP32() { - short[] data = new short[RANGE]; - init(data); - testShortP32(data); - verify("testShortP32", data, goldShortP32); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testShortM63(short[] data) { - for (int j = 63; j < RANGE; j++) { - data[j + -63] = (short)(data[j] * (short)-11); - } - } - - @Run(test = "testShortM63") - @Warmup(0) - public static void runShortM63() { - short[] data = new short[RANGE]; - init(data); - testShortM63(data); - verify("testShortM63", data, goldShortM63); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - // positive byte_offset 126 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 126"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 126"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testShortP63(short[] data) { - for (int j = 0; j < RANGE - 63; j++) { - data[j + 63] = (short)(data[j] * (short)-11); - } - } - - @Run(test = "testShortP63") - @Warmup(0) - public static void runShortP63() { - short[] data = new short[RANGE]; - init(data); - testShortP63(data); - verify("testShortP63", data, goldShortP63); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testShortM64(short[] data) { - for (int j = 64; j < RANGE; j++) { - data[j + -64] = (short)(data[j] * (short)-11); - } - } - - @Run(test = "testShortM64") - @Warmup(0) - public static void runShortM64() { - short[] data = new short[RANGE]; - init(data); - testShortM64(data); - verify("testShortM64", data, goldShortM64); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - // positive byte_offset 128 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 128"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 128"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testShortP64(short[] data) { - for (int j = 0; j < RANGE - 64; j++) { - data[j + 64] = (short)(data[j] * (short)-11); - } - } - - @Run(test = "testShortP64") - @Warmup(0) - public static void runShortP64() { - short[] data = new short[RANGE]; - init(data); - testShortP64(data); - verify("testShortP64", data, goldShortP64); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testShortM65(short[] data) { - for (int j = 65; j < RANGE; j++) { - data[j + -65] = (short)(data[j] * (short)-11); - } - } - - @Run(test = "testShortM65") - @Warmup(0) - public static void runShortM65() { - short[] data = new short[RANGE]; - init(data); - testShortM65(data); - verify("testShortM65", data, goldShortM65); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - // positive byte_offset 130 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 130"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 130"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testShortP65(short[] data) { - for (int j = 0; j < RANGE - 65; j++) { - data[j + 65] = (short)(data[j] * (short)-11); - } - } - - @Run(test = "testShortP65") - @Warmup(0) - public static void runShortP65() { - short[] data = new short[RANGE]; - init(data); - testShortP65(data); - verify("testShortP65", data, goldShortP65); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testShortM128(short[] data) { - for (int j = 128; j < RANGE; j++) { - data[j + -128] = (short)(data[j] * (short)-11); - } - } - - @Run(test = "testShortM128") - @Warmup(0) - public static void runShortM128() { - short[] data = new short[RANGE]; - init(data); - testShortM128(data); - verify("testShortM128", data, goldShortM128); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testShortP128(short[] data) { - for (int j = 0; j < RANGE - 128; j++) { - data[j + 128] = (short)(data[j] * (short)-11); - } - } - - @Run(test = "testShortP128") - @Warmup(0) - public static void runShortP128() { - short[] data = new short[RANGE]; - init(data); - testShortP128(data); - verify("testShortP128", data, goldShortP128); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testShortM129(short[] data) { - for (int j = 129; j < RANGE; j++) { - data[j + -129] = (short)(data[j] * (short)-11); - } - } - - @Run(test = "testShortM129") - @Warmup(0) - public static void runShortM129() { - short[] data = new short[RANGE]; - init(data); - testShortM129(data); - verify("testShortM129", data, goldShortM129); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_S, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testShortP129(short[] data) { - for (int j = 0; j < RANGE - 129; j++) { - data[j + 129] = (short)(data[j] * (short)-11); - } - } - - @Run(test = "testShortP129") - @Warmup(0) - public static void runShortP129() { - short[] data = new short[RANGE]; - init(data); - testShortP129(data); - verify("testShortP129", data, goldShortP129); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testShortM192(short[] data) { - for (int j = 192; j < RANGE; j++) { - data[j + -192] = (short)(data[j] * (short)-11); - } - } - - @Run(test = "testShortM192") - @Warmup(0) - public static void runShortM192() { - short[] data = new short[RANGE]; - init(data); - testShortM192(data); - verify("testShortM192", data, goldShortM192); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_S, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testShortP192(short[] data) { - for (int j = 0; j < RANGE - 192; j++) { - data[j + 192] = (short)(data[j] * (short)-11); - } - } - - @Run(test = "testShortP192") - @Warmup(0) - public static void runShortP192() { - short[] data = new short[RANGE]; - init(data); - testShortP192(data); - verify("testShortP192", data, goldShortP192); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testCharP0(char[] data) { - for (int j = 0; j < RANGE; j++) { - data[j + 0] = (char)(data[j] * (char)-11); - } - } - - @Run(test = "testCharP0") - @Warmup(0) - public static void runCharP0() { - char[] data = new char[RANGE]; - init(data); - testCharP0(data); - verify("testCharP0", data, goldCharP0); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testCharM1(char[] data) { - for (int j = 1; j < RANGE; j++) { - data[j + -1] = (char)(data[j] * (char)-11); - } - } - - @Run(test = "testCharM1") - @Warmup(0) - public static void runCharM1() { - char[] data = new char[RANGE]; - init(data); - testCharM1(data); - verify("testCharM1", data, goldCharM1); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - // positive byte_offset 2 can lead to cyclic dependency - // No positive IR rule: conditions impossible. - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 2"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - // positive byte_offset 2 can lead to cyclic dependency - // No positive IR rule: conditions impossible. - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 2"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - // positive byte_offset 2 can lead to cyclic dependency - // No positive IR rule: conditions impossible. - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 2"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - // positive byte_offset 2 can lead to cyclic dependency - // No positive IR rule: conditions impossible. - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 2"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - // positive byte_offset 2 can lead to cyclic dependency - // No positive IR rule: conditions impossible. - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 2"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testCharP1(char[] data) { - for (int j = 0; j < RANGE - 1; j++) { - data[j + 1] = (char)(data[j] * (char)-11); - } - } - - @Run(test = "testCharP1") - @Warmup(0) - public static void runCharP1() { - char[] data = new char[RANGE]; - init(data); - testCharP1(data); - verify("testCharP1", data, goldCharP1); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - public static void testCharM2(char[] data) { - for (int j = 2; j < RANGE; j++) { - data[j + -2] = (char)(data[j] * (char)-11); - } - } - - @Run(test = "testCharM2") - @Warmup(0) - public static void runCharM2() { - char[] data = new char[RANGE]; - init(data); - testCharM2(data); - verify("testCharM2", data, goldCharM2); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - // positive byte_offset 4 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", "4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - // positive byte_offset 4 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", "4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - // positive byte_offset 4 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", "4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - // positive byte_offset 4 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", "4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - // positive byte_offset 4 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", "4"}, - applyIfCPUFeature = {"sve", "true"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - public static void testCharP2(char[] data) { - for (int j = 0; j < RANGE - 2; j++) { - data[j + 2] = (char)(data[j] * (char)-11); - } - } - - @Run(test = "testCharP2") - @Warmup(0) - public static void runCharP2() { - char[] data = new char[RANGE]; - init(data); - testCharP2(data); - verify("testCharP2", data, goldCharP2); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testCharM3(char[] data) { - for (int j = 3; j < RANGE; j++) { - data[j + -3] = (char)(data[j] * (char)-11); - } - } - - @Run(test = "testCharM3") - @Warmup(0) - public static void runCharM3() { - char[] data = new char[RANGE]; - init(data); - testCharM3(data); - verify("testCharM3", data, goldCharM3); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - // positive byte_offset 6 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 6"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 6"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - // positive byte_offset 6 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 6"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 6"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - // positive byte_offset 6 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 6"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 6"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - // positive byte_offset 6 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 6"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 6"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - // positive byte_offset 6 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 6"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 6"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testCharP3(char[] data) { - for (int j = 0; j < RANGE - 3; j++) { - data[j + 3] = (char)(data[j] * (char)-11); - } - } - - @Run(test = "testCharP3") - @Warmup(0) - public static void runCharP3() { - char[] data = new char[RANGE]; - init(data); - testCharP3(data); - verify("testCharP3", data, goldCharP3); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testCharM4(char[] data) { - for (int j = 4; j < RANGE; j++) { - data[j + -4] = (char)(data[j] * (char)-11); - } - } - - @Run(test = "testCharM4") - @Warmup(0) - public static void runCharM4() { - char[] data = new char[RANGE]; - init(data); - testCharM4(data); - verify("testCharM4", data, goldCharM4); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - // positive byte_offset 8 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - // positive byte_offset 8 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - // positive byte_offset 8 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 8"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 8"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - // positive byte_offset 8 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - // positive byte_offset 8 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 8"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testCharP4(char[] data) { - for (int j = 0; j < RANGE - 4; j++) { - data[j + 4] = (char)(data[j] * (char)-11); - } - } - - @Run(test = "testCharP4") - @Warmup(0) - public static void runCharP4() { - char[] data = new char[RANGE]; - init(data); - testCharP4(data); - verify("testCharP4", data, goldCharP4); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testCharM7(char[] data) { - for (int j = 7; j < RANGE; j++) { - data[j + -7] = (char)(data[j] * (char)-11); - } - } - - @Run(test = "testCharM7") - @Warmup(0) - public static void runCharM7() { - char[] data = new char[RANGE]; - init(data); - testCharM7(data); - verify("testCharM7", data, goldCharM7); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - // positive byte_offset 14 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 14"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 14"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - // positive byte_offset 14 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 14"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 14"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - // positive byte_offset 14 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 14"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 14"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - // positive byte_offset 14 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 14"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 14"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - // positive byte_offset 14 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 14"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 14"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testCharP7(char[] data) { - for (int j = 0; j < RANGE - 7; j++) { - data[j + 7] = (char)(data[j] * (char)-11); - } - } - - @Run(test = "testCharP7") - @Warmup(0) - public static void runCharP7() { - char[] data = new char[RANGE]; - init(data); - testCharP7(data); - verify("testCharP7", data, goldCharP7); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testCharM8(char[] data) { - for (int j = 8; j < RANGE; j++) { - data[j + -8] = (char)(data[j] * (char)-11); - } - } - - @Run(test = "testCharM8") - @Warmup(0) - public static void runCharM8() { - char[] data = new char[RANGE]; - init(data); - testCharM8(data); - verify("testCharM8", data, goldCharM8); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - // positive byte_offset 16 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - // positive byte_offset 16 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 16"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 16"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - // positive byte_offset 16 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testCharP8(char[] data) { - for (int j = 0; j < RANGE - 8; j++) { - data[j + 8] = (char)(data[j] * (char)-11); - } - } - - @Run(test = "testCharP8") - @Warmup(0) - public static void runCharP8() { - char[] data = new char[RANGE]; - init(data); - testCharP8(data); - verify("testCharP8", data, goldCharP8); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - public static void testCharM14(char[] data) { - for (int j = 14; j < RANGE; j++) { - data[j + -14] = (char)(data[j] * (char)-11); - } - } - - @Run(test = "testCharM14") - @Warmup(0) - public static void runCharM14() { - char[] data = new char[RANGE]; - init(data); - testCharM14(data); - verify("testCharM14", data, goldCharM14); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - // positive byte_offset 28 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 28"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - // positive byte_offset 28 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 28"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - // positive byte_offset 28 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 28"}, - applyIfCPUFeature = {"sve", "true"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - public static void testCharP14(char[] data) { - for (int j = 0; j < RANGE - 14; j++) { - data[j + 14] = (char)(data[j] * (char)-11); - } - } - - @Run(test = "testCharP14") - @Warmup(0) - public static void runCharP14() { - char[] data = new char[RANGE]; - init(data); - testCharP14(data); - verify("testCharP14", data, goldCharP14); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testCharM16(char[] data) { - for (int j = 16; j < RANGE; j++) { - data[j + -16] = (char)(data[j] * (char)-11); - } - } - - @Run(test = "testCharM16") - @Warmup(0) - public static void runCharM16() { - char[] data = new char[RANGE]; - init(data); - testCharM16(data); - verify("testCharM16", data, goldCharM16); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - // positive byte_offset 32 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 32"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 32"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - // positive byte_offset 32 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 32"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 32"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testCharP16(char[] data) { - for (int j = 0; j < RANGE - 16; j++) { - data[j + 16] = (char)(data[j] * (char)-11); - } - } - - @Run(test = "testCharP16") - @Warmup(0) - public static void runCharP16() { - char[] data = new char[RANGE]; - init(data); - testCharP16(data); - verify("testCharP16", data, goldCharP16); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - public static void testCharM18(char[] data) { - for (int j = 18; j < RANGE; j++) { - data[j + -18] = (char)(data[j] * (char)-11); - } - } - - @Run(test = "testCharM18") - @Warmup(0) - public static void runCharM18() { - char[] data = new char[RANGE]; - init(data); - testCharM18(data); - verify("testCharM18", data, goldCharM18); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - // positive byte_offset 36 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 36"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - // positive byte_offset 36 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 36"}, - applyIfCPUFeature = {"sve", "true"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - public static void testCharP18(char[] data) { - for (int j = 0; j < RANGE - 18; j++) { - data[j + 18] = (char)(data[j] * (char)-11); - } - } - - @Run(test = "testCharP18") - @Warmup(0) - public static void runCharP18() { - char[] data = new char[RANGE]; - init(data); - testCharP18(data); - verify("testCharP18", data, goldCharP18); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testCharM20(char[] data) { - for (int j = 20; j < RANGE; j++) { - data[j + -20] = (char)(data[j] * (char)-11); - } - } - - @Run(test = "testCharM20") - @Warmup(0) - public static void runCharM20() { - char[] data = new char[RANGE]; - init(data); - testCharM20(data); - verify("testCharM20", data, goldCharM20); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - // positive byte_offset 40 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 40"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 40"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - // positive byte_offset 40 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 40"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 40"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testCharP20(char[] data) { - for (int j = 0; j < RANGE - 20; j++) { - data[j + 20] = (char)(data[j] * (char)-11); - } - } - - @Run(test = "testCharP20") - @Warmup(0) - public static void runCharP20() { - char[] data = new char[RANGE]; - init(data); - testCharP20(data); - verify("testCharP20", data, goldCharP20); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testCharM31(char[] data) { - for (int j = 31; j < RANGE; j++) { - data[j + -31] = (char)(data[j] * (char)-11); - } - } - - @Run(test = "testCharM31") - @Warmup(0) - public static void runCharM31() { - char[] data = new char[RANGE]; - init(data); - testCharM31(data); - verify("testCharM31", data, goldCharM31); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - // positive byte_offset 62 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 62"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 62"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - // positive byte_offset 62 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 62"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 62"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testCharP31(char[] data) { - for (int j = 0; j < RANGE - 31; j++) { - data[j + 31] = (char)(data[j] * (char)-11); - } - } - - @Run(test = "testCharP31") - @Warmup(0) - public static void runCharP31() { - char[] data = new char[RANGE]; - init(data); - testCharP31(data); - verify("testCharP31", data, goldCharP31); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testCharM32(char[] data) { - for (int j = 32; j < RANGE; j++) { - data[j + -32] = (char)(data[j] * (char)-11); - } - } - - @Run(test = "testCharM32") - @Warmup(0) - public static void runCharM32() { - char[] data = new char[RANGE]; - init(data); - testCharM32(data); - verify("testCharM32", data, goldCharM32); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - // positive byte_offset 64 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 64"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 64"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testCharP32(char[] data) { - for (int j = 0; j < RANGE - 32; j++) { - data[j + 32] = (char)(data[j] * (char)-11); - } - } - - @Run(test = "testCharP32") - @Warmup(0) - public static void runCharP32() { - char[] data = new char[RANGE]; - init(data); - testCharP32(data); - verify("testCharP32", data, goldCharP32); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testCharM63(char[] data) { - for (int j = 63; j < RANGE; j++) { - data[j + -63] = (char)(data[j] * (char)-11); - } - } - - @Run(test = "testCharM63") - @Warmup(0) - public static void runCharM63() { - char[] data = new char[RANGE]; - init(data); - testCharM63(data); - verify("testCharM63", data, goldCharM63); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - // positive byte_offset 126 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 126"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 126"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testCharP63(char[] data) { - for (int j = 0; j < RANGE - 63; j++) { - data[j + 63] = (char)(data[j] * (char)-11); - } - } - - @Run(test = "testCharP63") - @Warmup(0) - public static void runCharP63() { - char[] data = new char[RANGE]; - init(data); - testCharP63(data); - verify("testCharP63", data, goldCharP63); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testCharM64(char[] data) { - for (int j = 64; j < RANGE; j++) { - data[j + -64] = (char)(data[j] * (char)-11); - } - } - - @Run(test = "testCharM64") - @Warmup(0) - public static void runCharM64() { - char[] data = new char[RANGE]; - init(data); - testCharM64(data); - verify("testCharM64", data, goldCharM64); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - // positive byte_offset 128 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 128"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 128"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testCharP64(char[] data) { - for (int j = 0; j < RANGE - 64; j++) { - data[j + 64] = (char)(data[j] * (char)-11); - } - } - - @Run(test = "testCharP64") - @Warmup(0) - public static void runCharP64() { - char[] data = new char[RANGE]; - init(data); - testCharP64(data); - verify("testCharP64", data, goldCharP64); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testCharM65(char[] data) { - for (int j = 65; j < RANGE; j++) { - data[j + -65] = (char)(data[j] * (char)-11); - } - } - - @Run(test = "testCharM65") - @Warmup(0) - public static void runCharM65() { - char[] data = new char[RANGE]; - init(data); - testCharM65(data); - verify("testCharM65", data, goldCharM65); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - // positive byte_offset 130 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 130"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 130"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testCharP65(char[] data) { - for (int j = 0; j < RANGE - 65; j++) { - data[j + 65] = (char)(data[j] * (char)-11); - } - } - - @Run(test = "testCharP65") - @Warmup(0) - public static void runCharP65() { - char[] data = new char[RANGE]; - init(data); - testCharP65(data); - verify("testCharP65", data, goldCharP65); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testCharM128(char[] data) { - for (int j = 128; j < RANGE; j++) { - data[j + -128] = (char)(data[j] * (char)-11); - } - } - - @Run(test = "testCharM128") - @Warmup(0) - public static void runCharM128() { - char[] data = new char[RANGE]; - init(data); - testCharM128(data); - verify("testCharM128", data, goldCharM128); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testCharP128(char[] data) { - for (int j = 0; j < RANGE - 128; j++) { - data[j + 128] = (char)(data[j] * (char)-11); - } - } - - @Run(test = "testCharP128") - @Warmup(0) - public static void runCharP128() { - char[] data = new char[RANGE]; - init(data); - testCharP128(data); - verify("testCharP128", data, goldCharP128); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testCharM129(char[] data) { - for (int j = 129; j < RANGE; j++) { - data[j + -129] = (char)(data[j] * (char)-11); - } - } - - @Run(test = "testCharM129") - @Warmup(0) - public static void runCharM129() { - char[] data = new char[RANGE]; - init(data); - testCharM129(data); - verify("testCharM129", data, goldCharM129); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_C, IRNode.MUL_VS, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testCharP129(char[] data) { - for (int j = 0; j < RANGE - 129; j++) { - data[j + 129] = (char)(data[j] * (char)-11); - } - } - - @Run(test = "testCharP129") - @Warmup(0) - public static void runCharP129() { - char[] data = new char[RANGE]; - init(data); - testCharP129(data); - verify("testCharP129", data, goldCharP129); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testCharM192(char[] data) { - for (int j = 192; j < RANGE; j++) { - data[j + -192] = (char)(data[j] * (char)-11); - } - } - - @Run(test = "testCharM192") - @Warmup(0) - public static void runCharM192() { - char[] data = new char[RANGE]; - init(data); - testCharM192(data); - verify("testCharM192", data, goldCharM192); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 128 - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_C, "> 0", IRNode.MUL_VS, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testCharP192(char[] data) { - for (int j = 0; j < RANGE - 192; j++) { - data[j + 192] = (char)(data[j] * (char)-11); - } - } - - @Run(test = "testCharP192") - @Warmup(0) - public static void runCharP192() { - char[] data = new char[RANGE]; - init(data); - testCharP192(data); - verify("testCharP192", data, goldCharP192); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 256 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testByteP0(byte[] data) { - for (int j = 0; j < RANGE; j++) { - data[j + 0] = (byte)(data[j] * (byte)11); - } - } - - @Run(test = "testByteP0") - @Warmup(0) - public static void runByteP0() { - byte[] data = new byte[RANGE]; - init(data); - testByteP0(data); - verify("testByteP0", data, goldByteP0); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 256 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testByteM1(byte[] data) { - for (int j = 1; j < RANGE; j++) { - data[j + -1] = (byte)(data[j] * (byte)11); - } - } - - @Run(test = "testByteM1") - @Warmup(0) - public static void runByteM1() { - byte[] data = new byte[RANGE]; - init(data); - testByteM1(data); - verify("testByteM1", data, goldByteM1); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 16 - // positive byte_offset 1 can lead to cyclic dependency - // No positive IR rule: conditions impossible. - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 1"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 32 - // positive byte_offset 1 can lead to cyclic dependency - // No positive IR rule: conditions impossible. - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 1"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 64 - // positive byte_offset 1 can lead to cyclic dependency - // No positive IR rule: conditions impossible. - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 1"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 16 - // positive byte_offset 1 can lead to cyclic dependency - // No positive IR rule: conditions impossible. - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 1"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 256 - // positive byte_offset 1 can lead to cyclic dependency - // No positive IR rule: conditions impossible. - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 1"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testByteP1(byte[] data) { - for (int j = 0; j < RANGE - 1; j++) { - data[j + 1] = (byte)(data[j] * (byte)11); - } - } - - @Run(test = "testByteP1") - @Warmup(0) - public static void runByteP1() { - byte[] data = new byte[RANGE]; - init(data); - testByteP1(data); - verify("testByteP1", data, goldByteP1); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 256 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testByteM2(byte[] data) { - for (int j = 2; j < RANGE; j++) { - data[j + -2] = (byte)(data[j] * (byte)11); - } - } - - @Run(test = "testByteM2") - @Warmup(0) - public static void runByteM2() { - byte[] data = new byte[RANGE]; - init(data); - testByteM2(data); - verify("testByteM2", data, goldByteM2); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 16 - // positive byte_offset 2 can lead to cyclic dependency - // No positive IR rule: conditions impossible. - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 2"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 32 - // positive byte_offset 2 can lead to cyclic dependency - // No positive IR rule: conditions impossible. - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 2"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 64 - // positive byte_offset 2 can lead to cyclic dependency - // No positive IR rule: conditions impossible. - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 2"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 16 - // positive byte_offset 2 can lead to cyclic dependency - // No positive IR rule: conditions impossible. - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 2"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 256 - // positive byte_offset 2 can lead to cyclic dependency - // No positive IR rule: conditions impossible. - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 2"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testByteP2(byte[] data) { - for (int j = 0; j < RANGE - 2; j++) { - data[j + 2] = (byte)(data[j] * (byte)11); - } - } - - @Run(test = "testByteP2") - @Warmup(0) - public static void runByteP2() { - byte[] data = new byte[RANGE]; - init(data); - testByteP2(data); - verify("testByteP2", data, goldByteP2); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 256 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testByteM3(byte[] data) { - for (int j = 3; j < RANGE; j++) { - data[j + -3] = (byte)(data[j] * (byte)11); - } - } - - @Run(test = "testByteM3") - @Warmup(0) - public static void runByteM3() { - byte[] data = new byte[RANGE]; - init(data); - testByteM3(data); - verify("testByteM3", data, goldByteM3); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 16 - // positive byte_offset 3 can lead to cyclic dependency - // No positive IR rule: conditions impossible. - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 3"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 32 - // positive byte_offset 3 can lead to cyclic dependency - // No positive IR rule: conditions impossible. - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 3"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 64 - // positive byte_offset 3 can lead to cyclic dependency - // No positive IR rule: conditions impossible. - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 3"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 16 - // positive byte_offset 3 can lead to cyclic dependency - // No positive IR rule: conditions impossible. - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 3"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 256 - // positive byte_offset 3 can lead to cyclic dependency - // No positive IR rule: conditions impossible. - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 3"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testByteP3(byte[] data) { - for (int j = 0; j < RANGE - 3; j++) { - data[j + 3] = (byte)(data[j] * (byte)11); - } - } - - @Run(test = "testByteP3") - @Warmup(0) - public static void runByteP3() { - byte[] data = new byte[RANGE]; - init(data); - testByteP3(data); - verify("testByteP3", data, goldByteP3); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: asimd -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: sve -> max vector_width: 256 -> max elements in vector: 256 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - public static void testByteM4(byte[] data) { - for (int j = 4; j < RANGE; j++) { - data[j + -4] = (byte)(data[j] * (byte)11); - } - } - - @Run(test = "testByteM4") - @Warmup(0) - public static void runByteM4() { - byte[] data = new byte[RANGE]; - init(data); - testByteM4(data); - verify("testByteM4", data, goldByteM4); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 16 - // positive byte_offset 4 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", "4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 32 - // positive byte_offset 4 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", "4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 64 - // positive byte_offset 4 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", "4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: asimd -> vector_width: 16 -> elements in vector: 16 - // positive byte_offset 4 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", "4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: sve -> max vector_width: 256 -> max elements in vector: 256 - // positive byte_offset 4 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", "4"}, - applyIfCPUFeature = {"sve", "true"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - public static void testByteP4(byte[] data) { - for (int j = 0; j < RANGE - 4; j++) { - data[j + 4] = (byte)(data[j] * (byte)11); - } - } - - @Run(test = "testByteP4") - @Warmup(0) - public static void runByteP4() { - byte[] data = new byte[RANGE]; - init(data); - testByteP4(data); - verify("testByteP4", data, goldByteP4); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 256 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testByteM7(byte[] data) { - for (int j = 7; j < RANGE; j++) { - data[j + -7] = (byte)(data[j] * (byte)11); - } - } - - @Run(test = "testByteM7") - @Warmup(0) - public static void runByteM7() { - byte[] data = new byte[RANGE]; - init(data); - testByteM7(data); - verify("testByteM7", data, goldByteM7); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 16 - // positive byte_offset 7 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 7"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 7"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 32 - // positive byte_offset 7 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 7"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 7"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 64 - // positive byte_offset 7 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 7"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 7"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 16 - // positive byte_offset 7 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 7"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 7"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 256 - // positive byte_offset 7 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 7"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 7"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testByteP7(byte[] data) { - for (int j = 0; j < RANGE - 7; j++) { - data[j + 7] = (byte)(data[j] * (byte)11); - } - } - - @Run(test = "testByteP7") - @Warmup(0) - public static void runByteP7() { - byte[] data = new byte[RANGE]; - init(data); - testByteP7(data); - verify("testByteP7", data, goldByteP7); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 256 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testByteM8(byte[] data) { - for (int j = 8; j < RANGE; j++) { - data[j + -8] = (byte)(data[j] * (byte)11); - } - } - - @Run(test = "testByteM8") - @Warmup(0) - public static void runByteM8() { - byte[] data = new byte[RANGE]; - init(data); - testByteM8(data); - verify("testByteM8", data, goldByteM8); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 16 - // positive byte_offset 8 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 32 - // positive byte_offset 8 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 8"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 64 - // positive byte_offset 8 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 8"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 8"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 16 - // positive byte_offset 8 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 256 - // positive byte_offset 8 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 8"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testByteP8(byte[] data) { - for (int j = 0; j < RANGE - 8; j++) { - data[j + 8] = (byte)(data[j] * (byte)11); - } - } - - @Run(test = "testByteP8") - @Warmup(0) - public static void runByteP8() { - byte[] data = new byte[RANGE]; - init(data); - testByteP8(data); - verify("testByteP8", data, goldByteP8); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 256 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testByteM14(byte[] data) { - for (int j = 14; j < RANGE; j++) { - data[j + -14] = (byte)(data[j] * (byte)11); - } - } - - @Run(test = "testByteM14") - @Warmup(0) - public static void runByteM14() { - byte[] data = new byte[RANGE]; - init(data); - testByteM14(data); - verify("testByteM14", data, goldByteM14); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 16 - // positive byte_offset 14 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 14"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 14"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 32 - // positive byte_offset 14 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 14"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 14"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 64 - // positive byte_offset 14 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 14"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 14"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 16 - // positive byte_offset 14 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 14"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 14"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 256 - // positive byte_offset 14 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 14"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 14"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testByteP14(byte[] data) { - for (int j = 0; j < RANGE - 14; j++) { - data[j + 14] = (byte)(data[j] * (byte)11); - } - } - - @Run(test = "testByteP14") - @Warmup(0) - public static void runByteP14() { - byte[] data = new byte[RANGE]; - init(data); - testByteP14(data); - verify("testByteP14", data, goldByteP14); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 256 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testByteM16(byte[] data) { - for (int j = 16; j < RANGE; j++) { - data[j + -16] = (byte)(data[j] * (byte)11); - } - } - - @Run(test = "testByteM16") - @Warmup(0) - public static void runByteM16() { - byte[] data = new byte[RANGE]; - init(data); - testByteM16(data); - verify("testByteM16", data, goldByteM16); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 32 - // positive byte_offset 16 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 16"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 64 - // positive byte_offset 16 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 16"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 16"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 256 - // positive byte_offset 16 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testByteP16(byte[] data) { - for (int j = 0; j < RANGE - 16; j++) { - data[j + 16] = (byte)(data[j] * (byte)11); - } - } - - @Run(test = "testByteP16") - @Warmup(0) - public static void runByteP16() { - byte[] data = new byte[RANGE]; - init(data); - testByteP16(data); - verify("testByteP16", data, goldByteP16); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 256 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testByteM18(byte[] data) { - for (int j = 18; j < RANGE; j++) { - data[j + -18] = (byte)(data[j] * (byte)11); - } - } - - @Run(test = "testByteM18") - @Warmup(0) - public static void runByteM18() { - byte[] data = new byte[RANGE]; - init(data); - testByteM18(data); - verify("testByteM18", data, goldByteM18); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 32 - // positive byte_offset 18 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 18"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 18"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 64 - // positive byte_offset 18 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 18"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 18"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 256 - // positive byte_offset 18 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 18"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 18"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testByteP18(byte[] data) { - for (int j = 0; j < RANGE - 18; j++) { - data[j + 18] = (byte)(data[j] * (byte)11); - } - } - - @Run(test = "testByteP18") - @Warmup(0) - public static void runByteP18() { - byte[] data = new byte[RANGE]; - init(data); - testByteP18(data); - verify("testByteP18", data, goldByteP18); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: asimd -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: sve -> max vector_width: 256 -> max elements in vector: 256 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - public static void testByteM20(byte[] data) { - for (int j = 20; j < RANGE; j++) { - data[j + -20] = (byte)(data[j] * (byte)11); - } - } - - @Run(test = "testByteM20") - @Warmup(0) - public static void runByteM20() { - byte[] data = new byte[RANGE]; - init(data); - testByteM20(data); - verify("testByteM20", data, goldByteM20); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 32 - // positive byte_offset 20 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 20"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 64 - // positive byte_offset 20 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 20"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: asimd -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - // CPU: sve -> max vector_width: 256 -> max elements in vector: 256 - // positive byte_offset 20 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 20"}, - applyIfCPUFeature = {"sve", "true"}) - // Alignment unclear -> no IR rule for -XX:+AlignVector. - public static void testByteP20(byte[] data) { - for (int j = 0; j < RANGE - 20; j++) { - data[j + 20] = (byte)(data[j] * (byte)11); - } - } - - @Run(test = "testByteP20") - @Warmup(0) - public static void runByteP20() { - byte[] data = new byte[RANGE]; - init(data); - testByteP20(data); - verify("testByteP20", data, goldByteP20); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 256 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testByteM31(byte[] data) { - for (int j = 31; j < RANGE; j++) { - data[j + -31] = (byte)(data[j] * (byte)11); - } - } - - @Run(test = "testByteM31") - @Warmup(0) - public static void runByteM31() { - byte[] data = new byte[RANGE]; - init(data); - testByteM31(data); - verify("testByteM31", data, goldByteM31); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 32 - // positive byte_offset 31 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 31"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 31"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 64 - // positive byte_offset 31 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 31"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 31"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 256 - // positive byte_offset 31 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 31"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 31"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testByteP31(byte[] data) { - for (int j = 0; j < RANGE - 31; j++) { - data[j + 31] = (byte)(data[j] * (byte)11); - } - } - - @Run(test = "testByteP31") - @Warmup(0) - public static void runByteP31() { - byte[] data = new byte[RANGE]; - init(data); - testByteP31(data); - verify("testByteP31", data, goldByteP31); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 256 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testByteM32(byte[] data) { - for (int j = 32; j < RANGE; j++) { - data[j + -32] = (byte)(data[j] * (byte)11); - } - } - - @Run(test = "testByteM32") - @Warmup(0) - public static void runByteM32() { - byte[] data = new byte[RANGE]; - init(data); - testByteM32(data); - verify("testByteM32", data, goldByteM32); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 64 - // positive byte_offset 32 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 32"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 32"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 256 - // positive byte_offset 32 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 32"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 32"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testByteP32(byte[] data) { - for (int j = 0; j < RANGE - 32; j++) { - data[j + 32] = (byte)(data[j] * (byte)11); - } - } - - @Run(test = "testByteP32") - @Warmup(0) - public static void runByteP32() { - byte[] data = new byte[RANGE]; - init(data); - testByteP32(data); - verify("testByteP32", data, goldByteP32); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 256 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testByteM63(byte[] data) { - for (int j = 63; j < RANGE; j++) { - data[j + -63] = (byte)(data[j] * (byte)11); - } - } - - @Run(test = "testByteM63") - @Warmup(0) - public static void runByteM63() { - byte[] data = new byte[RANGE]; - init(data); - testByteM63(data); - verify("testByteM63", data, goldByteM63); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 64 - // positive byte_offset 63 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 63"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 63"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 256 - // positive byte_offset 63 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 63"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 63"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testByteP63(byte[] data) { - for (int j = 0; j < RANGE - 63; j++) { - data[j + 63] = (byte)(data[j] * (byte)11); - } - } - - @Run(test = "testByteP63") - @Warmup(0) - public static void runByteP63() { - byte[] data = new byte[RANGE]; - init(data); - testByteP63(data); - verify("testByteP63", data, goldByteP63); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 256 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testByteM64(byte[] data) { - for (int j = 64; j < RANGE; j++) { - data[j + -64] = (byte)(data[j] * (byte)11); - } - } - - @Run(test = "testByteM64") - @Warmup(0) - public static void runByteM64() { - byte[] data = new byte[RANGE]; - init(data); - testByteM64(data); - verify("testByteM64", data, goldByteM64); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 256 - // positive byte_offset 64 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 64"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 64"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testByteP64(byte[] data) { - for (int j = 0; j < RANGE - 64; j++) { - data[j + 64] = (byte)(data[j] * (byte)11); - } - } - - @Run(test = "testByteP64") - @Warmup(0) - public static void runByteP64() { - byte[] data = new byte[RANGE]; - init(data); - testByteP64(data); - verify("testByteP64", data, goldByteP64); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 256 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testByteM65(byte[] data) { - for (int j = 65; j < RANGE; j++) { - data[j + -65] = (byte)(data[j] * (byte)11); - } - } - - @Run(test = "testByteM65") - @Warmup(0) - public static void runByteM65() { - byte[] data = new byte[RANGE]; - init(data); - testByteM65(data); - verify("testByteM65", data, goldByteM65); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 256 - // positive byte_offset 65 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 65"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 65"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testByteP65(byte[] data) { - for (int j = 0; j < RANGE - 65; j++) { - data[j + 65] = (byte)(data[j] * (byte)11); - } - } - - @Run(test = "testByteP65") - @Warmup(0) - public static void runByteP65() { - byte[] data = new byte[RANGE]; - init(data); - testByteP65(data); - verify("testByteP65", data, goldByteP65); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 256 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testByteM128(byte[] data) { - for (int j = 128; j < RANGE; j++) { - data[j + -128] = (byte)(data[j] * (byte)11); - } - } - - @Run(test = "testByteM128") - @Warmup(0) - public static void runByteM128() { - byte[] data = new byte[RANGE]; - init(data); - testByteM128(data); - verify("testByteM128", data, goldByteM128); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 256 - // positive byte_offset 128 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 128"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 128"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testByteP128(byte[] data) { - for (int j = 0; j < RANGE - 128; j++) { - data[j + 128] = (byte)(data[j] * (byte)11); - } - } - - @Run(test = "testByteP128") - @Warmup(0) - public static void runByteP128() { - byte[] data = new byte[RANGE]; - init(data); - testByteP128(data); - verify("testByteP128", data, goldByteP128); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 256 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testByteM129(byte[] data) { - for (int j = 129; j < RANGE; j++) { - data[j + -129] = (byte)(data[j] * (byte)11); - } - } - - @Run(test = "testByteM129") - @Warmup(0) - public static void runByteM129() { - byte[] data = new byte[RANGE]; - init(data); - testByteM129(data); - verify("testByteM129", data, goldByteM129); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 256 - // positive byte_offset 129 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 129"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_B, IRNode.MUL_VB, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 129"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testByteP129(byte[] data) { - for (int j = 0; j < RANGE - 129; j++) { - data[j + 129] = (byte)(data[j] * (byte)11); - } - } - - @Run(test = "testByteP129") - @Warmup(0) - public static void runByteP129() { - byte[] data = new byte[RANGE]; - init(data); - testByteP129(data); - verify("testByteP129", data, goldByteP129); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 256 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testByteM192(byte[] data) { - for (int j = 192; j < RANGE; j++) { - data[j + -192] = (byte)(data[j] * (byte)11); - } - } - - @Run(test = "testByteM192") - @Warmup(0) - public static void runByteM192() { - byte[] data = new byte[RANGE]; - init(data); - testByteM192(data); - verify("testByteM192", data, goldByteM192); - } - - @Test - // CPU: sse4.1 to avx -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx2", "false"}) - // CPU: avx2 to avx512 without avx512bw -> vector_width: 32 -> elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"avx2", "true", "avx512bw", "false"}) - // CPU: avx512bw -> vector_width: 64 -> elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeature = {"avx512bw", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 256 - // positive byte_offset 192 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 192"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_B, "> 0", IRNode.MUL_VB, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 4", "MaxVectorSize", "<= 192"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testByteP192(byte[] data) { - for (int j = 0; j < RANGE - 192; j++) { - data[j + 192] = (byte)(data[j] * (byte)11); - } - } - - @Run(test = "testByteP192") - @Warmup(0) - public static void runByteP192() { - byte[] data = new byte[RANGE]; - init(data); - testByteP192(data); - verify("testByteP192", data, goldByteP192); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testFloatP0(float[] data) { - for (int j = 0; j < RANGE; j++) { - data[j + 0] = (float)(data[j] * (float)1.001f); - } - } - - @Run(test = "testFloatP0") - @Warmup(0) - public static void runFloatP0() { - float[] data = new float[RANGE]; - init(data); - testFloatP0(data); - verify("testFloatP0", data, goldFloatP0); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testFloatM1(float[] data) { - for (int j = 1; j < RANGE; j++) { - data[j + -1] = (float)(data[j] * (float)1.001f); - } - } - - @Run(test = "testFloatM1") - @Warmup(0) - public static void runFloatM1() { - float[] data = new float[RANGE]; - init(data); - testFloatM1(data); - verify("testFloatM1", data, goldFloatM1); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 4 - // positive byte_offset 4 can lead to cyclic dependency - // No positive IR rule: conditions impossible. - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 4"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 8 - // positive byte_offset 4 can lead to cyclic dependency - // No positive IR rule: conditions impossible. - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 4"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - // positive byte_offset 4 can lead to cyclic dependency - // No positive IR rule: conditions impossible. - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 4"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - // positive byte_offset 4 can lead to cyclic dependency - // No positive IR rule: conditions impossible. - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 4"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - // positive byte_offset 4 can lead to cyclic dependency - // No positive IR rule: conditions impossible. - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 4"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testFloatP1(float[] data) { - for (int j = 0; j < RANGE - 1; j++) { - data[j + 1] = (float)(data[j] * (float)1.001f); - } - } - - @Run(test = "testFloatP1") - @Warmup(0) - public static void runFloatP1() { - float[] data = new float[RANGE]; - init(data); - testFloatP1(data); - verify("testFloatP1", data, goldFloatP1); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testFloatM2(float[] data) { - for (int j = 2; j < RANGE; j++) { - data[j + -2] = (float)(data[j] * (float)1.001f); - } - } - - @Run(test = "testFloatM2") - @Warmup(0) - public static void runFloatM2() { - float[] data = new float[RANGE]; - init(data); - testFloatM2(data); - verify("testFloatM2", data, goldFloatM2); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 4 - // positive byte_offset 8 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", "8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 8 - // positive byte_offset 8 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", "8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - // positive byte_offset 8 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", "8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "8"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - // positive byte_offset 8 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", "8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - // positive byte_offset 8 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", "8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "8"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testFloatP2(float[] data) { - for (int j = 0; j < RANGE - 2; j++) { - data[j + 2] = (float)(data[j] * (float)1.001f); - } - } - - @Run(test = "testFloatP2") - @Warmup(0) - public static void runFloatP2() { - float[] data = new float[RANGE]; - init(data); - testFloatP2(data); - verify("testFloatP2", data, goldFloatP2); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testFloatM3(float[] data) { - for (int j = 3; j < RANGE; j++) { - data[j + -3] = (float)(data[j] * (float)1.001f); - } - } - - @Run(test = "testFloatM3") - @Warmup(0) - public static void runFloatM3() { - float[] data = new float[RANGE]; - init(data); - testFloatM3(data); - verify("testFloatM3", data, goldFloatM3); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 4 - // positive byte_offset 12 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 12"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 12"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 8 - // positive byte_offset 12 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 12"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 12"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - // positive byte_offset 12 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 12"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 12"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - // positive byte_offset 12 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 12"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 12"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - // positive byte_offset 12 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 12"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 12"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testFloatP3(float[] data) { - for (int j = 0; j < RANGE - 3; j++) { - data[j + 3] = (float)(data[j] * (float)1.001f); - } - } - - @Run(test = "testFloatP3") - @Warmup(0) - public static void runFloatP3() { - float[] data = new float[RANGE]; - init(data); - testFloatP3(data); - verify("testFloatP3", data, goldFloatP3); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testFloatM4(float[] data) { - for (int j = 4; j < RANGE; j++) { - data[j + -4] = (float)(data[j] * (float)1.001f); - } - } - - @Run(test = "testFloatM4") - @Warmup(0) - public static void runFloatM4() { - float[] data = new float[RANGE]; - init(data); - testFloatM4(data); - verify("testFloatM4", data, goldFloatM4); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 8 - // positive byte_offset 16 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - // positive byte_offset 16 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - // positive byte_offset 16 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testFloatP4(float[] data) { - for (int j = 0; j < RANGE - 4; j++) { - data[j + 4] = (float)(data[j] * (float)1.001f); - } - } - - @Run(test = "testFloatP4") - @Warmup(0) - public static void runFloatP4() { - float[] data = new float[RANGE]; - init(data); - testFloatP4(data); - verify("testFloatP4", data, goldFloatP4); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testFloatM7(float[] data) { - for (int j = 7; j < RANGE; j++) { - data[j + -7] = (float)(data[j] * (float)1.001f); - } - } - - @Run(test = "testFloatM7") - @Warmup(0) - public static void runFloatM7() { - float[] data = new float[RANGE]; - init(data); - testFloatM7(data); - verify("testFloatM7", data, goldFloatM7); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 8 - // positive byte_offset 28 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 28"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 28"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - // positive byte_offset 28 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 28"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 28"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - // positive byte_offset 28 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 28"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 28"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testFloatP7(float[] data) { - for (int j = 0; j < RANGE - 7; j++) { - data[j + 7] = (float)(data[j] * (float)1.001f); - } - } - - @Run(test = "testFloatP7") - @Warmup(0) - public static void runFloatP7() { - float[] data = new float[RANGE]; - init(data); - testFloatP7(data); - verify("testFloatP7", data, goldFloatP7); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testFloatM8(float[] data) { - for (int j = 8; j < RANGE; j++) { - data[j + -8] = (float)(data[j] * (float)1.001f); - } - } - - @Run(test = "testFloatM8") - @Warmup(0) - public static void runFloatM8() { - float[] data = new float[RANGE]; - init(data); - testFloatM8(data); - verify("testFloatM8", data, goldFloatM8); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - // positive byte_offset 32 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 32"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 32"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - // positive byte_offset 32 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 32"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 32"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testFloatP8(float[] data) { - for (int j = 0; j < RANGE - 8; j++) { - data[j + 8] = (float)(data[j] * (float)1.001f); - } - } - - @Run(test = "testFloatP8") - @Warmup(0) - public static void runFloatP8() { - float[] data = new float[RANGE]; - init(data); - testFloatP8(data); - verify("testFloatP8", data, goldFloatP8); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testFloatM14(float[] data) { - for (int j = 14; j < RANGE; j++) { - data[j + -14] = (float)(data[j] * (float)1.001f); - } - } - - @Run(test = "testFloatM14") - @Warmup(0) - public static void runFloatM14() { - float[] data = new float[RANGE]; - init(data); - testFloatM14(data); - verify("testFloatM14", data, goldFloatM14); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - // positive byte_offset 56 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 56"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 56"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - // positive byte_offset 56 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 56"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 56"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testFloatP14(float[] data) { - for (int j = 0; j < RANGE - 14; j++) { - data[j + 14] = (float)(data[j] * (float)1.001f); - } - } - - @Run(test = "testFloatP14") - @Warmup(0) - public static void runFloatP14() { - float[] data = new float[RANGE]; - init(data); - testFloatP14(data); - verify("testFloatP14", data, goldFloatP14); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testFloatM16(float[] data) { - for (int j = 16; j < RANGE; j++) { - data[j + -16] = (float)(data[j] * (float)1.001f); - } - } - - @Run(test = "testFloatM16") - @Warmup(0) - public static void runFloatM16() { - float[] data = new float[RANGE]; - init(data); - testFloatM16(data); - verify("testFloatM16", data, goldFloatM16); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - // positive byte_offset 64 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 64"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 64"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testFloatP16(float[] data) { - for (int j = 0; j < RANGE - 16; j++) { - data[j + 16] = (float)(data[j] * (float)1.001f); - } - } - - @Run(test = "testFloatP16") - @Warmup(0) - public static void runFloatP16() { - float[] data = new float[RANGE]; - init(data); - testFloatP16(data); - verify("testFloatP16", data, goldFloatP16); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testFloatM18(float[] data) { - for (int j = 18; j < RANGE; j++) { - data[j + -18] = (float)(data[j] * (float)1.001f); - } - } - - @Run(test = "testFloatM18") - @Warmup(0) - public static void runFloatM18() { - float[] data = new float[RANGE]; - init(data); - testFloatM18(data); - verify("testFloatM18", data, goldFloatM18); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - // positive byte_offset 72 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 72"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 72"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testFloatP18(float[] data) { - for (int j = 0; j < RANGE - 18; j++) { - data[j + 18] = (float)(data[j] * (float)1.001f); - } - } - - @Run(test = "testFloatP18") - @Warmup(0) - public static void runFloatP18() { - float[] data = new float[RANGE]; - init(data); - testFloatP18(data); - verify("testFloatP18", data, goldFloatP18); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testFloatM20(float[] data) { - for (int j = 20; j < RANGE; j++) { - data[j + -20] = (float)(data[j] * (float)1.001f); - } - } - - @Run(test = "testFloatM20") - @Warmup(0) - public static void runFloatM20() { - float[] data = new float[RANGE]; - init(data); - testFloatM20(data); - verify("testFloatM20", data, goldFloatM20); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - // positive byte_offset 80 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 80"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 80"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testFloatP20(float[] data) { - for (int j = 0; j < RANGE - 20; j++) { - data[j + 20] = (float)(data[j] * (float)1.001f); - } - } - - @Run(test = "testFloatP20") - @Warmup(0) - public static void runFloatP20() { - float[] data = new float[RANGE]; - init(data); - testFloatP20(data); - verify("testFloatP20", data, goldFloatP20); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testFloatM31(float[] data) { - for (int j = 31; j < RANGE; j++) { - data[j + -31] = (float)(data[j] * (float)1.001f); - } - } - - @Run(test = "testFloatM31") - @Warmup(0) - public static void runFloatM31() { - float[] data = new float[RANGE]; - init(data); - testFloatM31(data); - verify("testFloatM31", data, goldFloatM31); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - // positive byte_offset 124 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 124"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 124"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testFloatP31(float[] data) { - for (int j = 0; j < RANGE - 31; j++) { - data[j + 31] = (float)(data[j] * (float)1.001f); - } - } - - @Run(test = "testFloatP31") - @Warmup(0) - public static void runFloatP31() { - float[] data = new float[RANGE]; - init(data); - testFloatP31(data); - verify("testFloatP31", data, goldFloatP31); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testFloatM32(float[] data) { - for (int j = 32; j < RANGE; j++) { - data[j + -32] = (float)(data[j] * (float)1.001f); - } - } - - @Run(test = "testFloatM32") - @Warmup(0) - public static void runFloatM32() { - float[] data = new float[RANGE]; - init(data); - testFloatM32(data); - verify("testFloatM32", data, goldFloatM32); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - // positive byte_offset 128 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 128"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 128"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testFloatP32(float[] data) { - for (int j = 0; j < RANGE - 32; j++) { - data[j + 32] = (float)(data[j] * (float)1.001f); - } - } - - @Run(test = "testFloatP32") - @Warmup(0) - public static void runFloatP32() { - float[] data = new float[RANGE]; - init(data); - testFloatP32(data); - verify("testFloatP32", data, goldFloatP32); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testFloatM63(float[] data) { - for (int j = 63; j < RANGE; j++) { - data[j + -63] = (float)(data[j] * (float)1.001f); - } - } - - @Run(test = "testFloatM63") - @Warmup(0) - public static void runFloatM63() { - float[] data = new float[RANGE]; - init(data); - testFloatM63(data); - verify("testFloatM63", data, goldFloatM63); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - // positive byte_offset 252 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 252"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "<= 252"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testFloatP63(float[] data) { - for (int j = 0; j < RANGE - 63; j++) { - data[j + 63] = (float)(data[j] * (float)1.001f); - } - } - - @Run(test = "testFloatP63") - @Warmup(0) - public static void runFloatP63() { - float[] data = new float[RANGE]; - init(data); - testFloatP63(data); - verify("testFloatP63", data, goldFloatP63); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testFloatM64(float[] data) { - for (int j = 64; j < RANGE; j++) { - data[j + -64] = (float)(data[j] * (float)1.001f); - } - } - - @Run(test = "testFloatM64") - @Warmup(0) - public static void runFloatM64() { - float[] data = new float[RANGE]; - init(data); - testFloatM64(data); - verify("testFloatM64", data, goldFloatM64); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testFloatP64(float[] data) { - for (int j = 0; j < RANGE - 64; j++) { - data[j + 64] = (float)(data[j] * (float)1.001f); - } - } - - @Run(test = "testFloatP64") - @Warmup(0) - public static void runFloatP64() { - float[] data = new float[RANGE]; - init(data); - testFloatP64(data); - verify("testFloatP64", data, goldFloatP64); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testFloatM65(float[] data) { - for (int j = 65; j < RANGE; j++) { - data[j + -65] = (float)(data[j] * (float)1.001f); - } - } - - @Run(test = "testFloatM65") - @Warmup(0) - public static void runFloatM65() { - float[] data = new float[RANGE]; - init(data); - testFloatM65(data); - verify("testFloatM65", data, goldFloatM65); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testFloatP65(float[] data) { - for (int j = 0; j < RANGE - 65; j++) { - data[j + 65] = (float)(data[j] * (float)1.001f); - } - } - - @Run(test = "testFloatP65") - @Warmup(0) - public static void runFloatP65() { - float[] data = new float[RANGE]; - init(data); - testFloatP65(data); - verify("testFloatP65", data, goldFloatP65); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testFloatM128(float[] data) { - for (int j = 128; j < RANGE; j++) { - data[j + -128] = (float)(data[j] * (float)1.001f); - } - } - - @Run(test = "testFloatM128") - @Warmup(0) - public static void runFloatM128() { - float[] data = new float[RANGE]; - init(data); - testFloatM128(data); - verify("testFloatM128", data, goldFloatM128); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testFloatP128(float[] data) { - for (int j = 0; j < RANGE - 128; j++) { - data[j + 128] = (float)(data[j] * (float)1.001f); - } - } - - @Run(test = "testFloatP128") - @Warmup(0) - public static void runFloatP128() { - float[] data = new float[RANGE]; - init(data); - testFloatP128(data); - verify("testFloatP128", data, goldFloatP128); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testFloatM129(float[] data) { - for (int j = 129; j < RANGE; j++) { - data[j + -129] = (float)(data[j] * (float)1.001f); - } - } - - @Run(test = "testFloatM129") - @Warmup(0) - public static void runFloatM129() { - float[] data = new float[RANGE]; - init(data); - testFloatM129(data); - verify("testFloatM129", data, goldFloatM129); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect misalignment. - @IR(failOn = {IRNode.LOAD_VECTOR_F, IRNode.MUL_VF, IRNode.STORE_VECTOR}, - applyIf = {"AlignVector", "true"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testFloatP129(float[] data) { - for (int j = 0; j < RANGE - 129; j++) { - data[j + 129] = (float)(data[j] * (float)1.001f); - } - } - - @Run(test = "testFloatP129") - @Warmup(0) - public static void runFloatP129() { - float[] data = new float[RANGE]; - init(data); - testFloatP129(data); - verify("testFloatP129", data, goldFloatP129); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testFloatM192(float[] data) { - for (int j = 192; j < RANGE; j++) { - data[j + -192] = (float)(data[j] * (float)1.001f); - } - } - - @Run(test = "testFloatM192") - @Warmup(0) - public static void runFloatM192() { - float[] data = new float[RANGE]; - init(data); - testFloatM192(data); - verify("testFloatM192", data, goldFloatM192); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 16 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 64 - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_F, "> 0", IRNode.MUL_VF, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 8"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testFloatP192(float[] data) { - for (int j = 0; j < RANGE - 192; j++) { - data[j + 192] = (float)(data[j] * (float)1.001f); - } - } - - @Run(test = "testFloatP192") - @Warmup(0) - public static void runFloatP192() { - float[] data = new float[RANGE]; - init(data); - testFloatP192(data); - verify("testFloatP192", data, goldFloatP192); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testDoubleP0(double[] data) { - for (int j = 0; j < RANGE; j++) { - data[j + 0] = (double)(data[j] * (double)1.001); - } - } - - @Run(test = "testDoubleP0") - @Warmup(0) - public static void runDoubleP0() { - double[] data = new double[RANGE]; - init(data); - testDoubleP0(data); - verify("testDoubleP0", data, goldDoubleP0); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testDoubleM1(double[] data) { - for (int j = 1; j < RANGE; j++) { - data[j + -1] = (double)(data[j] * (double)1.001); - } - } - - @Run(test = "testDoubleM1") - @Warmup(0) - public static void runDoubleM1() { - double[] data = new double[RANGE]; - init(data); - testDoubleM1(data); - verify("testDoubleM1", data, goldDoubleM1); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 2 - // positive byte_offset 8 can lead to cyclic dependency - // No positive IR rule: conditions impossible. - // Expect alignment. - // No positive IR rule: conditions impossible. - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 4 - // positive byte_offset 8 can lead to cyclic dependency - // No positive IR rule: conditions impossible. - // Expect alignment. - // No positive IR rule: conditions impossible. - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - // positive byte_offset 8 can lead to cyclic dependency - // No positive IR rule: conditions impossible. - // Expect alignment. - // No positive IR rule: conditions impossible. - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - // positive byte_offset 8 can lead to cyclic dependency - // No positive IR rule: conditions impossible. - // Expect alignment. - // No positive IR rule: conditions impossible. - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - // positive byte_offset 8 can lead to cyclic dependency - // No positive IR rule: conditions impossible. - // Expect alignment. - // No positive IR rule: conditions impossible. - public static void testDoubleP1(double[] data) { - for (int j = 0; j < RANGE - 1; j++) { - data[j + 1] = (double)(data[j] * (double)1.001); - } - } - - @Run(test = "testDoubleP1") - @Warmup(0) - public static void runDoubleP1() { - double[] data = new double[RANGE]; - init(data); - testDoubleP1(data); - verify("testDoubleP1", data, goldDoubleP1); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testDoubleM2(double[] data) { - for (int j = 2; j < RANGE; j++) { - data[j + -2] = (double)(data[j] * (double)1.001); - } - } - - @Run(test = "testDoubleM2") - @Warmup(0) - public static void runDoubleM2() { - double[] data = new double[RANGE]; - init(data); - testDoubleM2(data); - verify("testDoubleM2", data, goldDoubleM2); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 4 - // positive byte_offset 16 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", "16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - // positive byte_offset 16 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", "16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - // positive byte_offset 16 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", "16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", "16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testDoubleP2(double[] data) { - for (int j = 0; j < RANGE - 2; j++) { - data[j + 2] = (double)(data[j] * (double)1.001); - } - } - - @Run(test = "testDoubleP2") - @Warmup(0) - public static void runDoubleP2() { - double[] data = new double[RANGE]; - init(data); - testDoubleP2(data); - verify("testDoubleP2", data, goldDoubleP2); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testDoubleM3(double[] data) { - for (int j = 3; j < RANGE; j++) { - data[j + -3] = (double)(data[j] * (double)1.001); - } - } - - @Run(test = "testDoubleM3") - @Warmup(0) - public static void runDoubleM3() { - double[] data = new double[RANGE]; - init(data); - testDoubleM3(data); - verify("testDoubleM3", data, goldDoubleM3); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 4 - // positive byte_offset 24 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 24"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 24"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - // positive byte_offset 24 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 24"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 24"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - // positive byte_offset 24 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 24"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 24"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testDoubleP3(double[] data) { - for (int j = 0; j < RANGE - 3; j++) { - data[j + 3] = (double)(data[j] * (double)1.001); - } - } - - @Run(test = "testDoubleP3") - @Warmup(0) - public static void runDoubleP3() { - double[] data = new double[RANGE]; - init(data); - testDoubleP3(data); - verify("testDoubleP3", data, goldDoubleP3); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testDoubleM4(double[] data) { - for (int j = 4; j < RANGE; j++) { - data[j + -4] = (double)(data[j] * (double)1.001); - } - } - - @Run(test = "testDoubleM4") - @Warmup(0) - public static void runDoubleM4() { - double[] data = new double[RANGE]; - init(data); - testDoubleM4(data); - verify("testDoubleM4", data, goldDoubleM4); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - // positive byte_offset 32 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 32"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 32"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - // positive byte_offset 32 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 32"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 32"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testDoubleP4(double[] data) { - for (int j = 0; j < RANGE - 4; j++) { - data[j + 4] = (double)(data[j] * (double)1.001); - } - } - - @Run(test = "testDoubleP4") - @Warmup(0) - public static void runDoubleP4() { - double[] data = new double[RANGE]; - init(data); - testDoubleP4(data); - verify("testDoubleP4", data, goldDoubleP4); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testDoubleM7(double[] data) { - for (int j = 7; j < RANGE; j++) { - data[j + -7] = (double)(data[j] * (double)1.001); - } - } - - @Run(test = "testDoubleM7") - @Warmup(0) - public static void runDoubleM7() { - double[] data = new double[RANGE]; - init(data); - testDoubleM7(data); - verify("testDoubleM7", data, goldDoubleM7); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - // positive byte_offset 56 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 56"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 56"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - // positive byte_offset 56 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 56"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 56"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testDoubleP7(double[] data) { - for (int j = 0; j < RANGE - 7; j++) { - data[j + 7] = (double)(data[j] * (double)1.001); - } - } - - @Run(test = "testDoubleP7") - @Warmup(0) - public static void runDoubleP7() { - double[] data = new double[RANGE]; - init(data); - testDoubleP7(data); - verify("testDoubleP7", data, goldDoubleP7); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testDoubleM8(double[] data) { - for (int j = 8; j < RANGE; j++) { - data[j + -8] = (double)(data[j] * (double)1.001); - } - } - - @Run(test = "testDoubleM8") - @Warmup(0) - public static void runDoubleM8() { - double[] data = new double[RANGE]; - init(data); - testDoubleM8(data); - verify("testDoubleM8", data, goldDoubleM8); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - // positive byte_offset 64 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 64"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 64"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testDoubleP8(double[] data) { - for (int j = 0; j < RANGE - 8; j++) { - data[j + 8] = (double)(data[j] * (double)1.001); - } - } - - @Run(test = "testDoubleP8") - @Warmup(0) - public static void runDoubleP8() { - double[] data = new double[RANGE]; - init(data); - testDoubleP8(data); - verify("testDoubleP8", data, goldDoubleP8); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testDoubleM14(double[] data) { - for (int j = 14; j < RANGE; j++) { - data[j + -14] = (double)(data[j] * (double)1.001); - } - } - - @Run(test = "testDoubleM14") - @Warmup(0) - public static void runDoubleM14() { - double[] data = new double[RANGE]; - init(data); - testDoubleM14(data); - verify("testDoubleM14", data, goldDoubleM14); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - // positive byte_offset 112 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 112"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 112"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testDoubleP14(double[] data) { - for (int j = 0; j < RANGE - 14; j++) { - data[j + 14] = (double)(data[j] * (double)1.001); - } - } - - @Run(test = "testDoubleP14") - @Warmup(0) - public static void runDoubleP14() { - double[] data = new double[RANGE]; - init(data); - testDoubleP14(data); - verify("testDoubleP14", data, goldDoubleP14); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testDoubleM16(double[] data) { - for (int j = 16; j < RANGE; j++) { - data[j + -16] = (double)(data[j] * (double)1.001); - } - } - - @Run(test = "testDoubleM16") - @Warmup(0) - public static void runDoubleM16() { - double[] data = new double[RANGE]; - init(data); - testDoubleM16(data); - verify("testDoubleM16", data, goldDoubleM16); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - // positive byte_offset 128 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 128"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 128"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testDoubleP16(double[] data) { - for (int j = 0; j < RANGE - 16; j++) { - data[j + 16] = (double)(data[j] * (double)1.001); - } - } - - @Run(test = "testDoubleP16") - @Warmup(0) - public static void runDoubleP16() { - double[] data = new double[RANGE]; - init(data); - testDoubleP16(data); - verify("testDoubleP16", data, goldDoubleP16); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testDoubleM18(double[] data) { - for (int j = 18; j < RANGE; j++) { - data[j + -18] = (double)(data[j] * (double)1.001); - } - } - - @Run(test = "testDoubleM18") - @Warmup(0) - public static void runDoubleM18() { - double[] data = new double[RANGE]; - init(data); - testDoubleM18(data); - verify("testDoubleM18", data, goldDoubleM18); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - // positive byte_offset 144 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 144"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 144"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testDoubleP18(double[] data) { - for (int j = 0; j < RANGE - 18; j++) { - data[j + 18] = (double)(data[j] * (double)1.001); - } - } - - @Run(test = "testDoubleP18") - @Warmup(0) - public static void runDoubleP18() { - double[] data = new double[RANGE]; - init(data); - testDoubleP18(data); - verify("testDoubleP18", data, goldDoubleP18); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testDoubleM20(double[] data) { - for (int j = 20; j < RANGE; j++) { - data[j + -20] = (double)(data[j] * (double)1.001); - } - } - - @Run(test = "testDoubleM20") - @Warmup(0) - public static void runDoubleM20() { - double[] data = new double[RANGE]; - init(data); - testDoubleM20(data); - verify("testDoubleM20", data, goldDoubleM20); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - // positive byte_offset 160 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 160"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 160"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testDoubleP20(double[] data) { - for (int j = 0; j < RANGE - 20; j++) { - data[j + 20] = (double)(data[j] * (double)1.001); - } - } - - @Run(test = "testDoubleP20") - @Warmup(0) - public static void runDoubleP20() { - double[] data = new double[RANGE]; - init(data); - testDoubleP20(data); - verify("testDoubleP20", data, goldDoubleP20); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testDoubleM31(double[] data) { - for (int j = 31; j < RANGE; j++) { - data[j + -31] = (double)(data[j] * (double)1.001); - } - } - - @Run(test = "testDoubleM31") - @Warmup(0) - public static void runDoubleM31() { - double[] data = new double[RANGE]; - init(data); - testDoubleM31(data); - verify("testDoubleM31", data, goldDoubleM31); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - // positive byte_offset 248 can lead to cyclic dependency - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 248"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16", "MaxVectorSize", "<= 248"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testDoubleP31(double[] data) { - for (int j = 0; j < RANGE - 31; j++) { - data[j + 31] = (double)(data[j] * (double)1.001); - } - } - - @Run(test = "testDoubleP31") - @Warmup(0) - public static void runDoubleP31() { - double[] data = new double[RANGE]; - init(data); - testDoubleP31(data); - verify("testDoubleP31", data, goldDoubleP31); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testDoubleM32(double[] data) { - for (int j = 32; j < RANGE; j++) { - data[j + -32] = (double)(data[j] * (double)1.001); - } - } - - @Run(test = "testDoubleM32") - @Warmup(0) - public static void runDoubleM32() { - double[] data = new double[RANGE]; - init(data); - testDoubleM32(data); - verify("testDoubleM32", data, goldDoubleM32); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testDoubleP32(double[] data) { - for (int j = 0; j < RANGE - 32; j++) { - data[j + 32] = (double)(data[j] * (double)1.001); - } - } - - @Run(test = "testDoubleP32") - @Warmup(0) - public static void runDoubleP32() { - double[] data = new double[RANGE]; - init(data); - testDoubleP32(data); - verify("testDoubleP32", data, goldDoubleP32); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testDoubleM63(double[] data) { - for (int j = 63; j < RANGE; j++) { - data[j + -63] = (double)(data[j] * (double)1.001); - } - } - - @Run(test = "testDoubleM63") - @Warmup(0) - public static void runDoubleM63() { - double[] data = new double[RANGE]; - init(data); - testDoubleM63(data); - verify("testDoubleM63", data, goldDoubleM63); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testDoubleP63(double[] data) { - for (int j = 0; j < RANGE - 63; j++) { - data[j + 63] = (double)(data[j] * (double)1.001); - } - } - - @Run(test = "testDoubleP63") - @Warmup(0) - public static void runDoubleP63() { - double[] data = new double[RANGE]; - init(data); - testDoubleP63(data); - verify("testDoubleP63", data, goldDoubleP63); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testDoubleM64(double[] data) { - for (int j = 64; j < RANGE; j++) { - data[j + -64] = (double)(data[j] * (double)1.001); - } - } - - @Run(test = "testDoubleM64") - @Warmup(0) - public static void runDoubleM64() { - double[] data = new double[RANGE]; - init(data); - testDoubleM64(data); - verify("testDoubleM64", data, goldDoubleM64); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testDoubleP64(double[] data) { - for (int j = 0; j < RANGE - 64; j++) { - data[j + 64] = (double)(data[j] * (double)1.001); - } - } - - @Run(test = "testDoubleP64") - @Warmup(0) - public static void runDoubleP64() { - double[] data = new double[RANGE]; - init(data); - testDoubleP64(data); - verify("testDoubleP64", data, goldDoubleP64); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testDoubleM65(double[] data) { - for (int j = 65; j < RANGE; j++) { - data[j + -65] = (double)(data[j] * (double)1.001); - } - } - - @Run(test = "testDoubleM65") - @Warmup(0) - public static void runDoubleM65() { - double[] data = new double[RANGE]; - init(data); - testDoubleM65(data); - verify("testDoubleM65", data, goldDoubleM65); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testDoubleP65(double[] data) { - for (int j = 0; j < RANGE - 65; j++) { - data[j + 65] = (double)(data[j] * (double)1.001); - } - } - - @Run(test = "testDoubleP65") - @Warmup(0) - public static void runDoubleP65() { - double[] data = new double[RANGE]; - init(data); - testDoubleP65(data); - verify("testDoubleP65", data, goldDoubleP65); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testDoubleM128(double[] data) { - for (int j = 128; j < RANGE; j++) { - data[j + -128] = (double)(data[j] * (double)1.001); - } - } - - @Run(test = "testDoubleM128") - @Warmup(0) - public static void runDoubleM128() { - double[] data = new double[RANGE]; - init(data); - testDoubleM128(data); - verify("testDoubleM128", data, goldDoubleM128); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testDoubleP128(double[] data) { - for (int j = 0; j < RANGE - 128; j++) { - data[j + 128] = (double)(data[j] * (double)1.001); - } - } - - @Run(test = "testDoubleP128") - @Warmup(0) - public static void runDoubleP128() { - double[] data = new double[RANGE]; - init(data); - testDoubleP128(data); - verify("testDoubleP128", data, goldDoubleP128); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testDoubleM129(double[] data) { - for (int j = 129; j < RANGE; j++) { - data[j + -129] = (double)(data[j] * (double)1.001); - } - } - - @Run(test = "testDoubleM129") - @Warmup(0) - public static void runDoubleM129() { - double[] data = new double[RANGE]; - init(data); - testDoubleM129(data); - verify("testDoubleM129", data, goldDoubleM129); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testDoubleP129(double[] data) { - for (int j = 0; j < RANGE - 129; j++) { - data[j + 129] = (double)(data[j] * (double)1.001); - } - } - - @Run(test = "testDoubleP129") - @Warmup(0) - public static void runDoubleP129() { - double[] data = new double[RANGE]; - init(data); - testDoubleP129(data); - verify("testDoubleP129", data, goldDoubleP129); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testDoubleM192(double[] data) { - for (int j = 192; j < RANGE; j++) { - data[j + -192] = (double)(data[j] * (double)1.001); - } - } - - @Run(test = "testDoubleM192") - @Warmup(0) - public static void runDoubleM192() { - double[] data = new double[RANGE]; - init(data); - testDoubleM192(data); - verify("testDoubleM192", data, goldDoubleM192); - } - - @Test - // CPU: sse4.1 -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"sse4.1", "true", "avx", "false"}) - // CPU: avx and avx2 -> vector_width: 32 -> elements in vector: 4 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"avx", "true", "avx512", "false"}) - // CPU: avx512 -> vector_width: 64 -> elements in vector: 8 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"avx512", "true"}) - // CPU: asimd -> vector_width: 16 -> elements in vector: 2 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeatureAnd = {"asimd", "true", "sve", "false"}) - // CPU: sve -> max vector_width: 256 -> max elements in vector: 32 - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - // Expect alignment. - @IR(counts = {IRNode.LOAD_VECTOR_D, "> 0", IRNode.MUL_VD, "> 0", IRNode.STORE_VECTOR, "> 0"}, - applyIfAnd = {"AlignVector", "true", "MaxVectorSize", ">= 16"}, - applyIfCPUFeature = {"sve", "true"}) - public static void testDoubleP192(double[] data) { - for (int j = 0; j < RANGE - 192; j++) { - data[j + 192] = (double)(data[j] * (double)1.001); - } - } - - @Run(test = "testDoubleP192") - @Warmup(0) - public static void runDoubleP192() { - double[] data = new double[RANGE]; - init(data); - testDoubleP192(data); - verify("testDoubleP192", data, goldDoubleP192); - } - - // ------------------- Initialization ------------------- - - static void init(int[] data) { - for (int j = 0; j < RANGE; j++) { - data[j] = (int)j; - } - } - - static void init(long[] data) { - for (int j = 0; j < RANGE; j++) { - data[j] = (long)j; - } - } - - static void init(short[] data) { - for (int j = 0; j < RANGE; j++) { - data[j] = (short)j; - } - } - - static void init(char[] data) { - for (int j = 0; j < RANGE; j++) { - data[j] = (char)j; - } - } - - static void init(byte[] data) { - for (int j = 0; j < RANGE; j++) { - data[j] = (byte)j; - } - } - - static void init(float[] data) { - for (int j = 0; j < RANGE; j++) { - data[j] = (float)j; - } - } - - static void init(double[] data) { - for (int j = 0; j < RANGE; j++) { - data[j] = (double)j; - } - } - - // ------------------- Verification ------------------- - - static void verify(String context, int[] data, int[] gold) { - for (int i = 0; i < RANGE; i++) { - if (data[i] != gold[i]) { - throw new RuntimeException(" Invalid " + context + " result: data[" + i + "]: " + data[i] + " != " + gold[i]); - } - } - } - static void verify(String context, long[] data, long[] gold) { - for (int i = 0; i < RANGE; i++) { - if (data[i] != gold[i]) { - throw new RuntimeException(" Invalid " + context + " result: data[" + i + "]: " + data[i] + " != " + gold[i]); - } - } - } - static void verify(String context, short[] data, short[] gold) { - for (int i = 0; i < RANGE; i++) { - if (data[i] != gold[i]) { - throw new RuntimeException(" Invalid " + context + " result: data[" + i + "]: " + data[i] + " != " + gold[i]); - } - } - } - static void verify(String context, char[] data, char[] gold) { - for (int i = 0; i < RANGE; i++) { - if (data[i] != gold[i]) { - throw new RuntimeException(" Invalid " + context + " result: data[" + i + "]: " + data[i] + " != " + gold[i]); - } - } - } - static void verify(String context, byte[] data, byte[] gold) { - for (int i = 0; i < RANGE; i++) { - if (data[i] != gold[i]) { - throw new RuntimeException(" Invalid " + context + " result: data[" + i + "]: " + data[i] + " != " + gold[i]); - } - } - } - static void verify(String context, float[] data, float[] gold) { - for (int i = 0; i < RANGE; i++) { - if (data[i] != gold[i]) { - throw new RuntimeException(" Invalid " + context + " result: data[" + i + "]: " + data[i] + " != " + gold[i]); - } - } - } - static void verify(String context, double[] data, double[] gold) { - for (int i = 0; i < RANGE; i++) { - if (data[i] != gold[i]) { - throw new RuntimeException(" Invalid " + context + " result: data[" + i + "]: " + data[i] + " != " + gold[i]); + String counts() { + if (!isPositiveRule) { + return String.format(""" + @IR(failOn = {IRNode.LOAD_VECTOR_%s, + IRNode.%s, + IRNode.STORE_VECTOR}, + """, + type.letter(), + irNode); + } else if (size == null) { + return String.format(""" + @IR(counts = {IRNode.LOAD_VECTOR_%s, ">0", + IRNode.%s, ">0", + IRNode.STORE_VECTOR, ">0"}, + """, + type.letter(), + irNode); + } else { + return String.format(""" + @IR(counts = {IRNode.LOAD_VECTOR_%s, IRNode.VECTOR_SIZE + "%s", ">0", + IRNode.%s, IRNode.VECTOR_SIZE + "%s", ">0", + IRNode.STORE_VECTOR, ">0"}, + """, + type.letter(), size, + irNode, size); } } } diff --git a/test/hotspot/jtreg/compiler/loopstripmining/TestNoWarningLoopStripMiningIterSet.java b/test/hotspot/jtreg/compiler/loopstripmining/TestNoWarningLoopStripMiningIterSet.java index c356e4495c2..c7fedf8982e 100644 --- a/test/hotspot/jtreg/compiler/loopstripmining/TestNoWarningLoopStripMiningIterSet.java +++ b/test/hotspot/jtreg/compiler/loopstripmining/TestNoWarningLoopStripMiningIterSet.java @@ -44,25 +44,14 @@ */ /* - * @test id=ZSinglegen + * @test id=Z * @bug 8241486 * @summary G1/Z give warning when using LoopStripMiningIter and turn off LoopStripMiningIter (0) * @requires vm.flagless * @requires vm.flavor == "server" & !vm.graal.enabled - * @requires vm.gc.ZSinglegen + * @requires vm.gc.Z * @library /test/lib - * @run driver TestNoWarningLoopStripMiningIterSet Z -XX:-ZGenerational - */ - -/* - * @test id=ZGenerational - * @bug 8241486 - * @summary G1/Z give warning when using LoopStripMiningIter and turn off LoopStripMiningIter (0) - * @requires vm.flagless - * @requires vm.flavor == "server" & !vm.graal.enabled - * @requires vm.gc.ZGenerational - * @library /test/lib - * @run driver TestNoWarningLoopStripMiningIterSet Z -XX:+ZGenerational + * @run driver TestNoWarningLoopStripMiningIterSet Z */ /* @@ -106,18 +95,9 @@ public static void testWith(Consumer check, String msg, boolean public static void main(String[] args) throws Exception { String gc = "-XX:+Use" + args[0] + "GC"; - if (args.length > 1) { - String extraVMArg = args[1]; - testWith(output -> output.shouldNotContain(CLSOffLSMGreaterZero), "should have CLS and LSM enabled", true, 100, "-XX:LoopStripMiningIter=100", gc, extraVMArg); - testWith(output -> output.shouldContain(CLSOffLSMGreaterZero), "should have CLS and LSM disabled", false, 0, "-XX:-UseCountedLoopSafepoints", "-XX:LoopStripMiningIter=100", gc, extraVMArg); - testWith(output -> output.shouldContain(CLSOnLSMEqualZero), "should have CLS and LSM enabled", true, 1, "-XX:LoopStripMiningIter=0", gc, extraVMArg); - testWith(output -> output.shouldNotContain(CLSOnLSMEqualZero), "should have CLS and LSM disabled", false, 0, "-XX:-UseCountedLoopSafepoints", "-XX:LoopStripMiningIter=0", gc, extraVMArg); - } else { - testWith(output -> output.shouldNotContain(CLSOffLSMGreaterZero), "should have CLS and LSM enabled", true, 100, "-XX:LoopStripMiningIter=100", gc); - testWith(output -> output.shouldContain(CLSOffLSMGreaterZero), "should have CLS and LSM disabled", false, 0, "-XX:-UseCountedLoopSafepoints", "-XX:LoopStripMiningIter=100", gc); - testWith(output -> output.shouldContain(CLSOnLSMEqualZero), "should have CLS and LSM enabled", true, 1, "-XX:LoopStripMiningIter=0", gc); - testWith(output -> output.shouldNotContain(CLSOnLSMEqualZero), "should have CLS and LSM disabled", false, 0, "-XX:-UseCountedLoopSafepoints", "-XX:LoopStripMiningIter=0", gc); - - } + testWith(output -> output.shouldNotContain(CLSOffLSMGreaterZero), "should have CLS and LSM enabled", true, 100, "-XX:LoopStripMiningIter=100", gc); + testWith(output -> output.shouldContain(CLSOffLSMGreaterZero), "should have CLS and LSM disabled", false, 0, "-XX:-UseCountedLoopSafepoints", "-XX:LoopStripMiningIter=100", gc); + testWith(output -> output.shouldContain(CLSOnLSMEqualZero), "should have CLS and LSM enabled", true, 1, "-XX:LoopStripMiningIter=0", gc); + testWith(output -> output.shouldNotContain(CLSOnLSMEqualZero), "should have CLS and LSM disabled", false, 0, "-XX:-UseCountedLoopSafepoints", "-XX:LoopStripMiningIter=0", gc); } } diff --git a/test/hotspot/jtreg/compiler/predicates/TestTopIntoIfTrue.java b/test/hotspot/jtreg/compiler/predicates/TestTopIntoIfTrue.java new file mode 100644 index 00000000000..b0fa8b33c05 --- /dev/null +++ b/test/hotspot/jtreg/compiler/predicates/TestTopIntoIfTrue.java @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +/* + * @test + * @key stress randomness + * @bug 8342809 + * @summary Test that a top input into an IfTrue of an Assertion Predicate is properly handled during IGVN. + * @requires vm.compiler2.enabled + * @run main/othervm -XX:CompileCommand=compileonly,compiler.predicates.TestTopIntoIfTrue::test -XX:-TieredCompilation + * -Xcomp -XX:+UnlockDiagnosticVMOptions -XX:+StressIGVN -XX:StressSeed=1073486978 + * compiler.predicates.TestTopIntoIfTrue + * @run main/othervm -XX:CompileCommand=compileonly,compiler.predicates.TestTopIntoIfTrue::test -XX:-TieredCompilation + * -Xcomp -XX:+UnlockDiagnosticVMOptions -XX:+StressIGVN compiler.predicates.TestTopIntoIfTrue + */ + +package compiler.predicates; + +public class TestTopIntoIfTrue { + static int iFld; + + public static void main(String[] strArr) { + for (int i = 0; i < 100; i++) { + test(); + } + } + + static void test() { + int x = 10; + for (int i = 1; i < 326; ++i) { + x += 12; + if (x != 0) { + Unloaded.trap(); // unloaded trap + } + iFld += 34; + } + } +} + +class Unloaded { + static void trap() {} +} \ No newline at end of file diff --git a/test/hotspot/jtreg/compiler/predicates/TestAssertionPredicateDoesntConstantFold.java b/test/hotspot/jtreg/compiler/predicates/assertion/TestAssertionPredicateDoesntConstantFold.java similarity index 100% rename from test/hotspot/jtreg/compiler/predicates/TestAssertionPredicateDoesntConstantFold.java rename to test/hotspot/jtreg/compiler/predicates/assertion/TestAssertionPredicateDoesntConstantFold.java diff --git a/test/hotspot/jtreg/gc/z/TestDefault.java b/test/hotspot/jtreg/compiler/predicates/assertion/TestMissingSetCtrlForTrueConstant.java similarity index 51% rename from test/hotspot/jtreg/gc/z/TestDefault.java rename to test/hotspot/jtreg/compiler/predicates/assertion/TestMissingSetCtrlForTrueConstant.java index 1f1b7d49408..565069ac75c 100644 --- a/test/hotspot/jtreg/gc/z/TestDefault.java +++ b/test/hotspot/jtreg/compiler/predicates/assertion/TestMissingSetCtrlForTrueConstant.java @@ -19,33 +19,40 @@ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. + * */ -package gc.z; - /* - * @test TestDefault - * @requires vm.gc.ZGenerational - * @summary Test that ZGC Generational Mode is Default - * @library /test/lib - * @run driver gc.z.TestDefault + * @test + * @bug 8343137 + * @requires vm.debug == true & vm.compiler2.enabled + * @summary Test that set_ctrl() is properly set for true constant when folding useless Template Assertion Predicate. + * @run main/othervm -Xcomp -XX:+VerifyLoopOptimizations + * -XX:CompileCommand=compileonly,compiler.predicates.assertion.TestMissingSetCtrlForTrueConstant::test + * compiler.predicates.assertion.TestMissingSetCtrlForTrueConstant */ -import java.util.LinkedList; -import jdk.test.lib.process.ProcessTools; +package compiler.predicates.assertion; -public class TestDefault { - static class Test { - public static void main(String[] args) throws Exception {} +public class TestMissingSetCtrlForTrueConstant { + static long iFld; + static int[] iArrFld = new int[100]; + static double[] dArrFld = new double[100]; + + public static void main(String[] strArr) { + test(); } - public static void main(String[] args) throws Exception { - ProcessTools.executeLimitedTestJava("-XX:+UseZGC", - "-Xlog:gc+init", - Test.class.getName()) - .shouldNotContain("Option ZGenerational was deprecated") - .shouldNotContain("Using deprecated non-generational mode") - .shouldContain("GC Workers for Old Generation") - .shouldContain("GC Workers for Young Generation") - .shouldHaveExitValue(0); + + static void test() { + long l = 34; + for (int i = 78; i > 8; --i) { + switch (i) { + case 24: + l += iFld - 34; + case 25: + iFld = iArrFld[i] += i; + } + dArrFld[i + 1] += i; + } } } diff --git a/test/hotspot/jtreg/compiler/predicates/TestTemplateAssertionPredicateNotRemoved.java b/test/hotspot/jtreg/compiler/predicates/assertion/TestTemplateAssertionPredicateNotRemoved.java similarity index 88% rename from test/hotspot/jtreg/compiler/predicates/TestTemplateAssertionPredicateNotRemoved.java rename to test/hotspot/jtreg/compiler/predicates/assertion/TestTemplateAssertionPredicateNotRemoved.java index 557d9d461bf..6d8588213b5 100644 --- a/test/hotspot/jtreg/compiler/predicates/TestTemplateAssertionPredicateNotRemoved.java +++ b/test/hotspot/jtreg/compiler/predicates/assertion/TestTemplateAssertionPredicateNotRemoved.java @@ -29,14 +29,14 @@ * completely with JDK-8288981 and 8314116 just mitigates the problem. * @requires vm.compiler2.enabled * @run main/othervm -Xbatch -XX:-TieredCompilation - * -XX:CompileCommand=compileonly,compiler.predicates.TestTemplateAssertionPredicateNotRemoved::* - * compiler.predicates.TestTemplateAssertionPredicateNotRemoved + * -XX:CompileCommand=compileonly,compiler.predicates.assertion.TestTemplateAssertionPredicateNotRemoved::* + * compiler.predicates.assertion.TestTemplateAssertionPredicateNotRemoved * @run main/othervm -Xbatch -XX:-TieredCompilation -XX:LoopMaxUnroll=0 - * -XX:CompileCommand=compileonly,compiler.predicates.TestTemplateAssertionPredicateNotRemoved::* - * compiler.predicates.TestTemplateAssertionPredicateNotRemoved + * -XX:CompileCommand=compileonly,compiler.predicates.assertion.TestTemplateAssertionPredicateNotRemoved::* + * compiler.predicates.assertion.TestTemplateAssertionPredicateNotRemoved */ -package compiler.predicates; +package compiler.predicates.assertion; public class TestTemplateAssertionPredicateNotRemoved { static int[] iArrFld = new int[10]; diff --git a/src/hotspot/test/hotspot/jtreg/compiler/predicates/TestTemplateAssertionPredicateWithTwoUCTs.java b/test/hotspot/jtreg/compiler/predicates/assertion/TestTemplateAssertionPredicateWithTwoUCTs.java similarity index 86% rename from src/hotspot/test/hotspot/jtreg/compiler/predicates/TestTemplateAssertionPredicateWithTwoUCTs.java rename to test/hotspot/jtreg/compiler/predicates/assertion/TestTemplateAssertionPredicateWithTwoUCTs.java index 3f7ef093162..7d21f6b5f2d 100644 --- a/src/hotspot/test/hotspot/jtreg/compiler/predicates/TestTemplateAssertionPredicateWithTwoUCTs.java +++ b/test/hotspot/jtreg/compiler/predicates/assertion/TestTemplateAssertionPredicateWithTwoUCTs.java @@ -25,13 +25,13 @@ /* * @test * @bug 8342287 - * @summary Test that a fail path projection of a Template Assertion Predicate is not treated as success path projection + * @summary Test that a fail path projection of a Template Assertion Predicate is not treated as success path projection. * @run main/othervm -XX:-TieredCompilation -Xbatch - * -XX:CompileCommand=compileonly,compiler.predicates.TestTemplateAssertionPredicateWithTwoUCTs::test - * compiler.predicates.TestTemplateAssertionPredicateWithTwoUCTs + * -XX:CompileCommand=compileonly,compiler.predicates.assertion.TestTemplateAssertionPredicateWithTwoUCTs::test + * compiler.predicates.assertion.TestTemplateAssertionPredicateWithTwoUCTs */ -package compiler.predicates; +package compiler.predicates.assertion; public class TestTemplateAssertionPredicateWithTwoUCTs { static int iFld; @@ -43,7 +43,7 @@ public static void main(String[] strArr) { } static void test() { - int lArr[][] = new int[100][1]; + int[][] lArr = new int[100][1]; for (int i14 = 5; i14 < 273; ++i14) { int i16 = 1; while (++i16 < 94) { @@ -58,4 +58,3 @@ static void test() { } } } - diff --git a/test/hotspot/jtreg/compiler/rangechecks/TestSunkRangeFromPreLoopRCE.java b/test/hotspot/jtreg/compiler/rangechecks/TestSunkRangeFromPreLoopRCE.java new file mode 100644 index 00000000000..4e788df035e --- /dev/null +++ b/test/hotspot/jtreg/compiler/rangechecks/TestSunkRangeFromPreLoopRCE.java @@ -0,0 +1,81 @@ +/* + * Copyright (c) 2024, Red Hat, Inc. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/** + * @test + * @bug 8342330 + * @summary C2: "node pinned on loop exit test?" assert failure + * @requires vm.flavor == "server" + * + * @run main/othervm -XX:-BackgroundCompilation -XX:-UseOnStackReplacement -XX:-TieredCompilation + * -XX:-UseLoopPredicate -XX:LoopMaxUnroll=0 TestSunkRangeFromPreLoopRCE + * + */ + + +import java.util.Arrays; + +public class TestSunkRangeFromPreLoopRCE { + private static int[] array = new int[1000]; + private static A objectField = new A(42); + + public static void main(String[] args) { + boolean[] allTrue = new boolean[1000]; + Arrays.fill(allTrue, true); + boolean[] allFalse = new boolean[1000]; + for (int i = 0; i < 20_000; i++) { + test1(array.length/4, allTrue, 1, 0); + test1(array.length/4, allFalse, 1, 0); + } + } + + private static int test1(int stop, boolean[] flags, int otherScale, int x) { + int scale; + for (scale = 0; scale < 4; scale++) { + for (int i = 0; i < 10; i++) { + + } + } + if (array == null) { + } + int v = 0; + for (int i = 0; i < stop; i++) { + v += array[i]; + v += array[scale * i]; + if (i * scale + (objectField.intField + 1) == x) { + } + v += (scale - 4) * (x-objectField.intField); + if (flags[i]) { + return (x-objectField.intField); + } + } + return v; + } + + private static class A { + A(int field) { + intField = field; + } + public int intField; + } +} diff --git a/test/hotspot/jtreg/compiler/testlibrary/sha/predicate/IntrinsicPredicates.java b/test/hotspot/jtreg/compiler/testlibrary/sha/predicate/IntrinsicPredicates.java index 27fe9989247..0c53c36af1d 100644 --- a/test/hotspot/jtreg/compiler/testlibrary/sha/predicate/IntrinsicPredicates.java +++ b/test/hotspot/jtreg/compiler/testlibrary/sha/predicate/IntrinsicPredicates.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -104,8 +104,10 @@ public class IntrinsicPredicates { new CPUSpecificPredicate("x86_64", new String[] { "avx2", "bmi2" }, null)))))))))); public static final BooleanSupplier SHA3_INSTRUCTION_AVAILABLE - // sha3 is only implemented on aarch64 for now - = new CPUSpecificPredicate("aarch64.*", new String[] {"sha3" }, null); + // sha3 is only implemented on aarch64 and avx512 for now + = new OrPredicate(new CPUSpecificPredicate("aarch64.*", new String[] {"sha3" }, null), + new OrPredicate(new CPUSpecificPredicate("amd64.*", new String[] {"avx512f", "avx512bw"}, null), + new CPUSpecificPredicate("x86_64", new String[] {"avx512f", "avx512bw"}, null))); public static final BooleanSupplier ANY_SHA_INSTRUCTION_AVAILABLE = new OrPredicate(IntrinsicPredicates.SHA1_INSTRUCTION_AVAILABLE, diff --git a/test/hotspot/jtreg/compiler/uncommontrap/TestDeoptOOM.java b/test/hotspot/jtreg/compiler/uncommontrap/TestDeoptOOM.java index 6f1f4138435..a0a2aacde3f 100644 --- a/test/hotspot/jtreg/compiler/uncommontrap/TestDeoptOOM.java +++ b/test/hotspot/jtreg/compiler/uncommontrap/TestDeoptOOM.java @@ -34,28 +34,15 @@ */ /* - * @test id=ZSinglegen + * @test id=Z * @bug 8273456 * @summary Test that ttyLock is ranked above StackWatermark_lock - * @requires !vm.graal.enabled & vm.gc.ZSinglegen + * @requires !vm.graal.enabled & vm.gc.Z * @run main/othervm -XX:-BackgroundCompilation -Xmx128M -XX:+IgnoreUnrecognizedVMOptions -XX:+VerifyStack * -XX:CompileCommand=exclude,compiler.uncommontrap.TestDeoptOOM::main * -XX:CompileCommand=exclude,compiler.uncommontrap.TestDeoptOOM::m9_1 * -XX:+UnlockDiagnosticVMOptions - * -XX:+UseZGC -XX:-ZGenerational -XX:+LogCompilation -XX:+PrintDeoptimizationDetails -XX:+TraceDeoptimization -XX:+Verbose - * compiler.uncommontrap.TestDeoptOOM - */ - -/* - * @test id=ZGenerational - * @bug 8273456 - * @summary Test that ttyLock is ranked above StackWatermark_lock - * @requires !vm.graal.enabled & vm.gc.ZGenerational - * @run main/othervm -XX:-BackgroundCompilation -Xmx128M -XX:+IgnoreUnrecognizedVMOptions -XX:+VerifyStack - * -XX:CompileCommand=exclude,compiler.uncommontrap.TestDeoptOOM::main - * -XX:CompileCommand=exclude,compiler.uncommontrap.TestDeoptOOM::m9_1 - * -XX:+UnlockDiagnosticVMOptions - * -XX:+UseZGC -XX:+ZGenerational -XX:+LogCompilation -XX:+PrintDeoptimizationDetails -XX:+TraceDeoptimization -XX:+Verbose + * -XX:+UseZGC -XX:+LogCompilation -XX:+PrintDeoptimizationDetails -XX:+TraceDeoptimization -XX:+Verbose * compiler.uncommontrap.TestDeoptOOM */ diff --git a/test/hotspot/jtreg/compiler/vectorapi/VectorCompareWithImmTest.java b/test/hotspot/jtreg/compiler/vectorapi/VectorCompareWithImmTest.java index b7c192778bd..833ef2b614c 100644 --- a/test/hotspot/jtreg/compiler/vectorapi/VectorCompareWithImmTest.java +++ b/test/hotspot/jtreg/compiler/vectorapi/VectorCompareWithImmTest.java @@ -143,7 +143,7 @@ public static void testByteGTInRange_runner() { @IR(counts = { IRNode.VMASK_CMPU_IMM_I_SVE, ">= 1" }) public static void testByteUnsignedGTInRange() { ByteVector av = ByteVector.fromArray(B_SPECIES, ba, 0); - av.compare(VectorOperators.UNSIGNED_GT, 64).intoArray(br, 0); + av.compare(VectorOperators.UGT, 64).intoArray(br, 0); } @Run(test = "testByteUnsignedGTInRange") @@ -163,7 +163,7 @@ public static void testByteGTOutOfRange() { @IR(failOn = { IRNode.VMASK_CMPU_IMM_I_SVE }) public static void testByteUnsignedGTOutOfRange() { ByteVector av = ByteVector.fromArray(B_SPECIES, ba, 0); - av.compare(VectorOperators.UNSIGNED_GT, -91).intoArray(br, 0); + av.compare(VectorOperators.UGT, -91).intoArray(br, 0); } @Test @@ -183,7 +183,7 @@ public static void testShortGEInRange_runner() { @IR(counts = { IRNode.VMASK_CMPU_IMM_I_SVE, ">= 1" }) public static void testShortUnsignedGEInRange() { ShortVector av = ShortVector.fromArray(S_SPECIES, sa, 0); - av.compare(VectorOperators.UNSIGNED_GE, 56).intoArray(sr, 0); + av.compare(VectorOperators.UGE, 56).intoArray(sr, 0); } @Run(test = "testShortUnsignedGEInRange") @@ -203,7 +203,7 @@ public static void testShortGEOutOfRange() { @IR(failOn = { IRNode.VMASK_CMPU_IMM_I_SVE }) public static void testShortUnsignedGEOutOfRange() { ShortVector av = ShortVector.fromArray(S_SPECIES, sa, 0); - av.compare(VectorOperators.UNSIGNED_GE, -85).intoArray(sr, 0); + av.compare(VectorOperators.UGE, -85).intoArray(sr, 0); } @Test @@ -223,7 +223,7 @@ public static void testIntLTInRange_runner() { @IR(counts = { IRNode.VMASK_CMPU_IMM_I_SVE, ">= 1" }) public static void testIntUnsignedLTInRange() { IntVector av = IntVector.fromArray(I_SPECIES, ia, 0); - av.compare(VectorOperators.UNSIGNED_LT, 101).intoArray(ir, 0); + av.compare(VectorOperators.ULT, 101).intoArray(ir, 0); } @Run(test = "testIntUnsignedLTInRange") @@ -243,7 +243,7 @@ public static void testIntLTOutOfRange() { @IR(failOn = { IRNode.VMASK_CMPU_IMM_I_SVE }) public static void testIntUnsignedLTOutOfRange() { IntVector av = IntVector.fromArray(I_SPECIES, ia, 0); - av.compare(VectorOperators.UNSIGNED_LT, -110).intoArray(ir, 0); + av.compare(VectorOperators.ULT, -110).intoArray(ir, 0); } @Test @@ -263,7 +263,7 @@ public static void testLongLEInRange_runner() { @IR(counts = { IRNode.VMASK_CMPU_IMM_L_SVE, ">= 1" }) public static void testLongUnsignedLEInRange() { LongVector av = LongVector.fromArray(L_SPECIES, la, 0); - av.compare(VectorOperators.UNSIGNED_LE, 95).intoArray(lr, 0); + av.compare(VectorOperators.ULE, 95).intoArray(lr, 0); } @Run(test = "testLongUnsignedLEInRange") @@ -283,7 +283,7 @@ public static void testLongLEOutOfRange() { @IR(failOn = { IRNode.VMASK_CMPU_IMM_L_SVE }) public static void testLongUnsignedLEOutOfRange() { LongVector av = LongVector.fromArray(L_SPECIES, la, 0); - av.compare(VectorOperators.UNSIGNED_LE, -99).intoArray(lr, 0); + av.compare(VectorOperators.ULE, -99).intoArray(lr, 0); } @Test diff --git a/test/hotspot/jtreg/compiler/vectorapi/VectorCompareWithZeroTest.java b/test/hotspot/jtreg/compiler/vectorapi/VectorCompareWithZeroTest.java index 21ad4a524d2..26e159fb768 100644 --- a/test/hotspot/jtreg/compiler/vectorapi/VectorCompareWithZeroTest.java +++ b/test/hotspot/jtreg/compiler/vectorapi/VectorCompareWithZeroTest.java @@ -240,14 +240,14 @@ public static void testDoubleVectorLessThanZero_runner() { @IR(failOn = { IRNode.VMASK_CMP_ZERO_I_NEON }) public static void testIntVectorUnsignedCondition() { IntVector av = IntVector.fromArray(I_SPECIES, ia, 0); - av.compare(VectorOperators.UNSIGNED_GT, 0).intoArray(ir, 0); + av.compare(VectorOperators.UGT, 0).intoArray(ir, 0); } @Test @IR(failOn = { IRNode.VMASK_CMP_ZERO_L_NEON }) public static void testLongVectorUnsignedCondition() { LongVector av = LongVector.fromArray(L_SPECIES, la, 0); - av.compare(VectorOperators.UNSIGNED_GE, 0).intoArray(lr, 0); + av.compare(VectorOperators.UGE, 0).intoArray(lr, 0); } public static void main(String[] args) { @@ -257,4 +257,4 @@ public static void main(String[] args) { .addFlags("-XX:UseSVE=0") .start(); } -} \ No newline at end of file +} diff --git a/test/hotspot/jtreg/compiler/vectorapi/VectorRebracket128Test.java b/test/hotspot/jtreg/compiler/vectorapi/VectorRebracket128Test.java index 239f5256405..4f7f03590dd 100644 --- a/test/hotspot/jtreg/compiler/vectorapi/VectorRebracket128Test.java +++ b/test/hotspot/jtreg/compiler/vectorapi/VectorRebracket128Test.java @@ -35,23 +35,13 @@ import jdk.internal.vm.annotation.ForceInline; /* - * @test id=ZSinglegen + * @test id=Z * @bug 8260473 - * @requires vm.gc.ZSinglegen + * @requires vm.gc.Z * @modules jdk.incubator.vector * @modules java.base/jdk.internal.vm.annotation * @run testng/othervm -XX:CompileCommand=compileonly,jdk/incubator/vector/ByteVector.fromMemorySegment - * -XX:-TieredCompilation -XX:CICompilerCount=1 -XX:+UseZGC -XX:-ZGenerational -Xbatch -Xmx256m VectorRebracket128Test - */ - -/* - * @test id=ZGenerational - * @bug 8260473 - * @requires vm.gc.ZGenerational - * @modules jdk.incubator.vector - * @modules java.base/jdk.internal.vm.annotation - * @run testng/othervm -XX:CompileCommand=compileonly,jdk/incubator/vector/ByteVector.fromMemorySegment - * -XX:-TieredCompilation -XX:CICompilerCount=1 -XX:+UseZGC -XX:+ZGenerational -Xbatch -Xmx256m VectorRebracket128Test + * -XX:-TieredCompilation -XX:CICompilerCount=1 -XX:+UseZGC -Xbatch -Xmx256m VectorRebracket128Test */ @Test diff --git a/test/hotspot/jtreg/compiler/vectorization/TestFloat16VectorConvChain.java b/test/hotspot/jtreg/compiler/vectorization/TestFloat16VectorConvChain.java index 384cc411d3e..a2ff267f937 100644 --- a/test/hotspot/jtreg/compiler/vectorization/TestFloat16VectorConvChain.java +++ b/test/hotspot/jtreg/compiler/vectorization/TestFloat16VectorConvChain.java @@ -25,7 +25,7 @@ * @test * @summary Test Float16 vector conversion chain. * @requires (vm.cpu.features ~= ".*avx512vl.*" | vm.cpu.features ~= ".*f16c.*") | os.arch == "aarch64" -* | (os.arch == "riscv64" & vm.cpu.features ~= ".*zfh.*") +* | (os.arch == "riscv64" & vm.cpu.features ~= ".*zvfh.*") * @library /test/lib / * @run driver compiler.vectorization.TestFloat16VectorConvChain */ @@ -40,7 +40,7 @@ public class TestFloat16VectorConvChain { @Test - @IR(applyIfCPUFeatureOr = {"f16c", "true", "avx512vl", "true"}, counts = {IRNode.VECTOR_CAST_HF2F, IRNode.VECTOR_SIZE_ANY, ">= 1", IRNode.VECTOR_CAST_F2HF, IRNode.VECTOR_SIZE_ANY, " >= 1"}) + @IR(applyIfCPUFeatureOr = {"f16c", "true", "avx512vl", "true", "zvfh", "true"}, counts = {IRNode.VECTOR_CAST_HF2F, IRNode.VECTOR_SIZE_ANY, ">= 1", IRNode.VECTOR_CAST_F2HF, IRNode.VECTOR_SIZE_ANY, " >= 1"}) public static void test(short [] res, short [] src1, short [] src2) { for (int i = 0; i < res.length; i++) { res[i] = (short)Float.float16ToFloat(Float.floatToFloat16(Float.float16ToFloat(src1[i]) + Float.float16ToFloat(src2[i]))); diff --git a/test/hotspot/jtreg/gc/TestAlwaysPreTouchBehavior.java b/test/hotspot/jtreg/gc/TestAlwaysPreTouchBehavior.java index c282c2876ea..9f6c915d1c0 100644 --- a/test/hotspot/jtreg/gc/TestAlwaysPreTouchBehavior.java +++ b/test/hotspot/jtreg/gc/TestAlwaysPreTouchBehavior.java @@ -73,27 +73,15 @@ */ /** - * @test id=ZGenerational + * @test id=Z * @summary tests AlwaysPreTouch - * @requires vm.gc.ZGenerational + * @requires vm.gc.Z * @requires os.maxMemory > 2G * @requires os.family != "aix" * @library /test/lib * @build jdk.test.whitebox.WhiteBox * @run driver jdk.test.lib.helpers.ClassFileInstaller jdk.test.whitebox.WhiteBox - * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:+UseZGC -XX:+ZGenerational -Xmx512m -Xms512m -XX:+AlwaysPreTouch gc.TestAlwaysPreTouchBehavior - */ - -/** - * @test id=ZSinglegen - * @summary tests AlwaysPreTouch - * @requires vm.gc.ZSinglegen - * @requires os.maxMemory > 2G - * @requires os.family != "aix" - * @library /test/lib - * @build jdk.test.whitebox.WhiteBox - * @run driver jdk.test.lib.helpers.ClassFileInstaller jdk.test.whitebox.WhiteBox - * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:+UseZGC -XX:-ZGenerational -Xmx512m -Xms512m -XX:+AlwaysPreTouch gc.TestAlwaysPreTouchBehavior + * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:+UseZGC -Xmx512m -Xms512m -XX:+AlwaysPreTouch gc.TestAlwaysPreTouchBehavior */ /** diff --git a/test/hotspot/jtreg/gc/TestReferenceClearDuringReferenceProcessing.java b/test/hotspot/jtreg/gc/TestReferenceClearDuringReferenceProcessing.java index f66387b4cd7..3be7ba241e7 100644 --- a/test/hotspot/jtreg/gc/TestReferenceClearDuringReferenceProcessing.java +++ b/test/hotspot/jtreg/gc/TestReferenceClearDuringReferenceProcessing.java @@ -36,27 +36,15 @@ * gc.TestReferenceClearDuringReferenceProcessing */ -/* @test id=ZSinglegen +/* @test id=Z * @bug 8256517 - * @requires vm.gc.ZSinglegen + * @requires vm.gc.Z * @library /test/lib * @build jdk.test.whitebox.WhiteBox * @run driver jdk.test.lib.helpers.ClassFileInstaller jdk.test.whitebox.WhiteBox * @run main/othervm * -Xbootclasspath/a:. - * -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:+UseZGC -XX:-ZGenerational - * gc.TestReferenceClearDuringReferenceProcessing - */ - -/* @test id=ZGenerational - * @bug 8256517 - * @requires vm.gc.ZGenerational - * @library /test/lib - * @build jdk.test.whitebox.WhiteBox - * @run driver jdk.test.lib.helpers.ClassFileInstaller jdk.test.whitebox.WhiteBox - * @run main/othervm - * -Xbootclasspath/a:. - * -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:+UseZGC -XX:+ZGenerational + * -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:+UseZGC * gc.TestReferenceClearDuringReferenceProcessing */ diff --git a/test/hotspot/jtreg/gc/TestSystemGC.java b/test/hotspot/jtreg/gc/TestSystemGC.java index c81b98a562f..6d37dc3d44b 100644 --- a/test/hotspot/jtreg/gc/TestSystemGC.java +++ b/test/hotspot/jtreg/gc/TestSystemGC.java @@ -58,21 +58,12 @@ */ /* - * @test id=ZSinglegen - * @requires vm.gc.ZSinglegen + * @test id=Z + * @requires vm.gc.Z * @comment ZGC will not start when LargePages cannot be allocated, therefore * we do not run such configuration. * @summary Runs System.gc() with different flags. - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational gc.TestSystemGC - */ - -/* - * @test id=ZGenerational - * @requires vm.gc.ZGenerational - * @comment ZGC will not start when LargePages cannot be allocated, therefore - * we do not run such configuration. - * @summary Runs System.gc() with different flags. - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational gc.TestSystemGC + * @run main/othervm -XX:+UseZGC gc.TestSystemGC */ public class TestSystemGC { diff --git a/test/hotspot/jtreg/gc/TestVerifySubSet.java b/test/hotspot/jtreg/gc/TestVerifySubSet.java index 08cddc74a00..3dc28549b56 100644 --- a/test/hotspot/jtreg/gc/TestVerifySubSet.java +++ b/test/hotspot/jtreg/gc/TestVerifySubSet.java @@ -26,9 +26,9 @@ /* @test TestVerifySubSet.java * @bug 8072725 * @summary Test VerifySubSet option - * @comment Generational ZGC can't use the generic Universe::verify - * because there's no guarantee that we will ever have - * a stable snapshot where all roots can be verified. + * @comment ZGC can't use the generic Universe::verify because + * there's no guarantee that we will ever have a stable + * snapshot where all roots can be verified. * @requires vm.gc != "Z" * @library /test/lib * @modules java.base/jdk.internal.misc diff --git a/test/hotspot/jtreg/gc/cslocker/TestCSLocker.java b/test/hotspot/jtreg/gc/cslocker/TestCSLocker.java index 2a6e3a1bfd0..bd5b6e28aa8 100644 --- a/test/hotspot/jtreg/gc/cslocker/TestCSLocker.java +++ b/test/hotspot/jtreg/gc/cslocker/TestCSLocker.java @@ -33,11 +33,11 @@ * @summary completely in JNI CS, while other is trying to allocate memory * @summary provoking GC. OOM means FAIL, deadlock means PASS. * - * @comment This test assumes that no allocation happens during the sleep loop, \ - * which is something that we can't guarantee. With Generational ZGC we \ - * see test timeouts because the main thread allocates and waits for the \ - * GC, which waits for the CSLocker, which waits for the main thread. \ - * @requires !vm.opt.final.ZGenerational + * @comment This test assumes that no allocation happens during the sleep loop, + * which is something that we can't guarantee. With ZGC we see test + * timeouts because the main thread allocates and waits for the GC, + * which waits for the CSLocker, which waits for the main thread. + * @requires vm.gc != "Z" * * @run main/native/othervm -Xmx256m gc.cslocker.TestCSLocker */ diff --git a/test/hotspot/jtreg/gc/stress/gcbasher/TestGCBasherWithZ.java b/test/hotspot/jtreg/gc/stress/gcbasher/TestGCBasherWithZ.java index dd54556697d..fb58d5784d4 100644 --- a/test/hotspot/jtreg/gc/stress/gcbasher/TestGCBasherWithZ.java +++ b/test/hotspot/jtreg/gc/stress/gcbasher/TestGCBasherWithZ.java @@ -27,47 +27,27 @@ import java.io.IOException; /* - * @test TestGCBasherWithZGenerational + * @test TestGCBasherWithZ * @key stress * @library / - * @requires vm.gc.ZGenerational + * @requires vm.gc.Z * @requires vm.flavor == "server" & !vm.emulatedClient * @summary Stress ZGC - * @run main/othervm/timeout=200 -Xlog:gc*=info -Xmx384m -server -XX:+UseZGC -XX:+ZGenerational gc.stress.gcbasher.TestGCBasherWithZ 120000 - */ -/* - * @test TestGCBasherWithZSinglegen - * @key stress - * @library / - * @requires vm.gc.ZSinglegen - * @requires vm.flavor == "server" & !vm.emulatedClient - * @summary Stress ZGC - * @run main/othervm/timeout=200 -Xlog:gc*=info -Xmx384m -server -XX:+UseZGC -XX:-ZGenerational gc.stress.gcbasher.TestGCBasherWithZ 120000 + * @run main/othervm/timeout=200 -Xlog:gc*=info -Xmx384m -server -XX:+UseZGC gc.stress.gcbasher.TestGCBasherWithZ 120000 */ /* - * @test TestGCBasherDeoptWithZGenerational + * @test TestGCBasherDeoptWithZ * @key stress * @library / - * @requires vm.gc.ZGenerational + * @requires vm.gc.Z * @requires vm.flavor == "server" & !vm.emulatedClient & vm.opt.ClassUnloading != false * @summary Stress ZGC with nmethod barrier forced deoptimization enabled. - * @run main/othervm/timeout=200 -Xlog:gc*=info,nmethod+barrier=trace -Xmx384m -server -XX:+UseZGC -XX:+ZGenerational + * @run main/othervm/timeout=200 -Xlog:gc*=info,nmethod+barrier=trace -Xmx384m -server -XX:+UseZGC * -XX:+UnlockDiagnosticVMOptions -XX:+DeoptimizeNMethodBarriersALot -XX:-Inline * gc.stress.gcbasher.TestGCBasherWithZ 120000 */ -/* - * @test TestGCBasherDeoptWithZSinglegen - * @key stress - * @library / - * @requires vm.gc.ZSinglegen - * @requires vm.flavor == "server" & !vm.emulatedClient & vm.opt.ClassUnloading != false - * @summary Stress ZGC with nmethod barrier forced deoptimization enabled. - * @run main/othervm/timeout=200 -Xlog:gc*=info,nmethod+barrier=trace -Xmx384m -server -XX:+UseZGC -XX:-ZGenerational - * -XX:+UnlockDiagnosticVMOptions -XX:+DeoptimizeNMethodBarriersALot -XX:-Inline - * gc.stress.gcbasher.TestGCBasherWithZ 120000 - */ public class TestGCBasherWithZ { public static void main(String[] args) throws IOException { TestGCBasher.main(args); diff --git a/test/hotspot/jtreg/gc/stress/gcold/TestGCOldWithZ.java b/test/hotspot/jtreg/gc/stress/gcold/TestGCOldWithZ.java index 0f77a6c286a..0741cf1fba3 100644 --- a/test/hotspot/jtreg/gc/stress/gcold/TestGCOldWithZ.java +++ b/test/hotspot/jtreg/gc/stress/gcold/TestGCOldWithZ.java @@ -25,24 +25,15 @@ package gc.stress.gcold; /* - * @test TestGCOldWithZGenerational + * @test TestGCOldWithZ * @key randomness * @library / /test/lib - * @requires vm.gc.ZGenerational + * @requires vm.gc.Z * @summary Stress the Z - * @run main/othervm -Xmx384M -XX:+UseZGC -XX:+ZGenerational gc.stress.gcold.TestGCOldWithZ 50 1 20 10 10000 - * @run main/othervm -Xmx256m -XX:+UseZGC -XX:+ZGenerational gc.stress.gcold.TestGCOldWithZ 50 5 20 1 5000 + * @run main/othervm -Xmx384M -XX:+UseZGC gc.stress.gcold.TestGCOldWithZ 50 1 20 10 10000 + * @run main/othervm -Xmx256m -XX:+UseZGC gc.stress.gcold.TestGCOldWithZ 50 5 20 1 5000 */ -/* - * @test TestGCOldWithZSinglegen - * @key randomness - * @library / /test/lib - * @requires vm.gc.ZSinglegen - * @summary Stress the Z - * @run main/othervm -Xmx384M -XX:+UseZGC -XX:-ZGenerational gc.stress.gcold.TestGCOldWithZ 50 1 20 10 10000 - * @run main/othervm -Xmx256m -XX:+UseZGC -XX:-ZGenerational gc.stress.gcold.TestGCOldWithZ 50 5 20 1 5000 - */ public class TestGCOldWithZ { public static void main(String[] args) { TestGCOld.main(args); diff --git a/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationAgeThreshold.java b/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationAgeThreshold.java index e70d63cf397..090a49aa80b 100644 --- a/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationAgeThreshold.java +++ b/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationAgeThreshold.java @@ -76,29 +76,16 @@ */ /* - * @test id=ZSinglegen + * @test id=Z * @summary Test string deduplication age threshold * @bug 8029075 - * @requires vm.gc.ZSinglegen + * @requires vm.gc.Z * @library /test/lib * @library / * @modules java.base/jdk.internal.misc:open * @modules java.base/java.lang:open * java.management - * @run driver gc.stringdedup.TestStringDeduplicationAgeThreshold Z -XX:-ZGenerational - */ - -/* - * @test id=ZGenerational - * @summary Test string deduplication age threshold - * @bug 8029075 - * @requires vm.gc.ZGenerational - * @library /test/lib - * @library / - * @modules java.base/jdk.internal.misc:open - * @modules java.base/java.lang:open - * java.management - * @run driver gc.stringdedup.TestStringDeduplicationAgeThreshold Z -XX:+ZGenerational + * @run driver gc.stringdedup.TestStringDeduplicationAgeThreshold Z */ public class TestStringDeduplicationAgeThreshold { diff --git a/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationFullGC.java b/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationFullGC.java index 03793f03b1b..7105be7d478 100644 --- a/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationFullGC.java +++ b/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationFullGC.java @@ -76,29 +76,16 @@ */ /* - * @test id=ZSinglegen + * @test id=Z * @summary Test string deduplication during full GC * @bug 8029075 - * @requires vm.gc.ZSinglegen + * @requires vm.gc.Z * @library /test/lib * @library / * @modules java.base/jdk.internal.misc:open * @modules java.base/java.lang:open * java.management - * @run driver gc.stringdedup.TestStringDeduplicationFullGC Z -XX:-ZGenerational - */ - -/* - * @test id=ZGenerational - * @summary Test string deduplication during full GC - * @bug 8029075 - * @requires vm.gc.ZGenerational - * @library /test/lib - * @library / - * @modules java.base/jdk.internal.misc:open - * @modules java.base/java.lang:open - * java.management - * @run driver gc.stringdedup.TestStringDeduplicationFullGC Z -XX:+ZGenerational + * @run driver gc.stringdedup.TestStringDeduplicationFullGC Z */ public class TestStringDeduplicationFullGC { diff --git a/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationInterned.java b/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationInterned.java index 0981be49aec..124bf9d5cf9 100644 --- a/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationInterned.java +++ b/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationInterned.java @@ -76,29 +76,16 @@ */ /* - * @test id=ZSinglegen + * @test id=Z * @summary Test string deduplication of interned strings * @bug 8029075 - * @requires vm.gc.ZSinglegen + * @requires vm.gc.Z * @library /test/lib * @library / * @modules java.base/jdk.internal.misc:open * @modules java.base/java.lang:open * java.management - * @run driver gc.stringdedup.TestStringDeduplicationInterned Z -XX:-ZGenerational - */ - -/* - * @test id=ZGenerational - * @summary Test string deduplication of interned strings - * @bug 8029075 - * @requires vm.gc.ZGenerational - * @library /test/lib - * @library / - * @modules java.base/jdk.internal.misc:open - * @modules java.base/java.lang:open - * java.management - * @run driver gc.stringdedup.TestStringDeduplicationInterned Z -XX:+ZGenerational + * @run driver gc.stringdedup.TestStringDeduplicationInterned Z */ public class TestStringDeduplicationInterned { diff --git a/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationPrintOptions.java b/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationPrintOptions.java index 265cb1b9dd3..0659bc5aea3 100644 --- a/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationPrintOptions.java +++ b/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationPrintOptions.java @@ -76,29 +76,16 @@ */ /* - * @test id=ZSinglegen + * @test id=Z * @summary Test string deduplication print options * @bug 8029075 - * @requires vm.gc.ZSinglegen + * @requires vm.gc.Z * @library /test/lib * @library / * @modules java.base/jdk.internal.misc:open * @modules java.base/java.lang:open * java.management - * @run driver gc.stringdedup.TestStringDeduplicationPrintOptions Z -XX:-ZGenerational - */ - -/* - * @test id=ZGenerational - * @summary Test string deduplication print options - * @bug 8029075 - * @requires vm.gc.ZGenerational - * @library /test/lib - * @library / - * @modules java.base/jdk.internal.misc:open - * @modules java.base/java.lang:open - * java.management - * @run driver gc.stringdedup.TestStringDeduplicationPrintOptions Z -XX:+ZGenerational + * @run driver gc.stringdedup.TestStringDeduplicationPrintOptions Z */ public class TestStringDeduplicationPrintOptions { diff --git a/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationTableResize.java b/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationTableResize.java index 2c16e9c4c4a..d82244ef07a 100644 --- a/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationTableResize.java +++ b/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationTableResize.java @@ -76,29 +76,16 @@ */ /* - * @test id=ZSinglegen + * @test id=Z * @summary Test string deduplication table resize * @bug 8029075 - * @requires vm.gc.ZSinglegen + * @requires vm.gc.Z * @library /test/lib * @library / * @modules java.base/jdk.internal.misc:open * @modules java.base/java.lang:open * java.management - * @run driver gc.stringdedup.TestStringDeduplicationTableResize Z -XX:-ZGenerational - */ - -/* - * @test id=ZGenerational - * @summary Test string deduplication table resize - * @bug 8029075 - * @requires vm.gc.ZGenerational - * @library /test/lib - * @library / - * @modules java.base/jdk.internal.misc:open - * @modules java.base/java.lang:open - * java.management - * @run driver gc.stringdedup.TestStringDeduplicationTableResize Z -XX:+ZGenerational + * @run driver gc.stringdedup.TestStringDeduplicationTableResize Z */ public class TestStringDeduplicationTableResize { diff --git a/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationTools.java b/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationTools.java index 2a6652eb06e..3dbedd61d12 100644 --- a/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationTools.java +++ b/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationTools.java @@ -57,7 +57,6 @@ class TestStringDeduplicationTools { private static byte[] dummy; private static String selectedGC = null; - private static String selectedGCMode = null; static { try { @@ -74,9 +73,6 @@ class TestStringDeduplicationTools { public static void selectGC(String[] args) { selectedGC = args[0]; - if (args.length > 1) { - selectedGCMode = args[1]; - } } private static Object getValue(String string) { @@ -137,16 +133,10 @@ public void handleNotification(Notification n, Object o) { gcCount++; } } else if (info.getGcName().startsWith("ZGC")) { - // Generational ZGC only triggers string deduplications from major collections + // ZGC only triggers string deduplications from major collections if (info.getGcName().startsWith("ZGC Major") && "end of GC cycle".equals(info.getGcAction())) { gcCount++; } - - // Single-gen ZGC - if (!info.getGcName().startsWith("ZGC Major") && !info.getGcName().startsWith("ZGC Minor") && - "end of GC cycle".equals(info.getGcAction())) { - gcCount++; - } } else if (info.getGcName().startsWith("G1")) { if ("end of minor GC".equals(info.getGcAction())) { gcCount++; @@ -325,9 +315,6 @@ private static OutputAnalyzer runTest(String... extraArgs) throws Exception { ArrayList args = new ArrayList(); args.add("-XX:+Use" + selectedGC + "GC"); - if (selectedGCMode != null) { - args.add(selectedGCMode); - } args.addAll(Arrays.asList(defaultArgs)); args.addAll(Arrays.asList(extraArgs)); diff --git a/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationYoungGC.java b/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationYoungGC.java index d8787cc70ba..053dc0a2862 100644 --- a/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationYoungGC.java +++ b/test/hotspot/jtreg/gc/stringdedup/TestStringDeduplicationYoungGC.java @@ -76,29 +76,16 @@ */ /* - * @test id=ZSinglegen + * @test id=Z * @summary Test string deduplication during young GC * @bug 8029075 - * @requires vm.gc.ZSinglegen + * @requires vm.gc.Z * @library /test/lib * @library / * @modules java.base/jdk.internal.misc:open * @modules java.base/java.lang:open * java.management - * @run driver gc.stringdedup.TestStringDeduplicationYoungGC Z -XX:-ZGenerational - */ - -/* - * @test id=ZGenerational - * @summary Test string deduplication during young GC - * @bug 8029075 - * @requires vm.gc.ZGenerational - * @library /test/lib - * @library / - * @modules java.base/jdk.internal.misc:open - * @modules java.base/java.lang:open - * java.management - * @run driver gc.stringdedup.TestStringDeduplicationYoungGC Z -XX:+ZGenerational + * @run driver gc.stringdedup.TestStringDeduplicationYoungGC Z */ public class TestStringDeduplicationYoungGC { diff --git a/test/hotspot/jtreg/gc/x/TestAllocateHeapAt.java b/test/hotspot/jtreg/gc/x/TestAllocateHeapAt.java deleted file mode 100644 index 6a9768de7e6..00000000000 --- a/test/hotspot/jtreg/gc/x/TestAllocateHeapAt.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package gc.x; - -/* - * @test TestAllocateHeapAt - * @requires vm.gc.ZSinglegen & os.family == "linux" - * @requires !vm.opt.final.UseLargePages - * @summary Test ZGC with -XX:AllocateHeapAt - * @library /test/lib - * @run main/othervm gc.x.TestAllocateHeapAt . true - * @run main/othervm gc.x.TestAllocateHeapAt non-existing-directory false - */ - -import jdk.test.lib.process.ProcessTools; - -public class TestAllocateHeapAt { - public static void main(String[] args) throws Exception { - final String directory = args[0]; - final boolean exists = Boolean.parseBoolean(args[1]); - final String heapBackingFile = "Heap Backing File: " + directory; - final String failedToCreateFile = "Failed to create file " + directory; - - ProcessTools.executeTestJava( - "-XX:+UseZGC", - "-XX:-ZGenerational", - "-Xlog:gc*", - "-Xms32M", - "-Xmx32M", - "-XX:AllocateHeapAt=" + directory, - "-version") - .shouldContain(exists ? heapBackingFile : failedToCreateFile) - .shouldNotContain(exists ? failedToCreateFile : heapBackingFile) - .shouldHaveExitValue(exists ? 0 : 1); - } -} diff --git a/test/hotspot/jtreg/gc/x/TestAlwaysPreTouch.java b/test/hotspot/jtreg/gc/x/TestAlwaysPreTouch.java deleted file mode 100644 index b6ba6bf7a05..00000000000 --- a/test/hotspot/jtreg/gc/x/TestAlwaysPreTouch.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) 2019, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package gc.x; - -/* - * @test TestAlwaysPreTouch - * @requires vm.gc.ZSinglegen - * @summary Test ZGC parallel pre-touch - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -Xlog:gc* -XX:-AlwaysPreTouch -Xms128M -Xmx128M gc.x.TestAlwaysPreTouch - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -Xlog:gc* -XX:+AlwaysPreTouch -XX:ParallelGCThreads=1 -Xms2M -Xmx128M gc.x.TestAlwaysPreTouch - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -Xlog:gc* -XX:+AlwaysPreTouch -XX:ParallelGCThreads=8 -Xms2M -Xmx128M gc.x.TestAlwaysPreTouch - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -Xlog:gc* -XX:+AlwaysPreTouch -XX:ParallelGCThreads=1 -Xms128M -Xmx128M gc.x.TestAlwaysPreTouch - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -Xlog:gc* -XX:+AlwaysPreTouch -XX:ParallelGCThreads=8 -Xms128M -Xmx128M gc.x.TestAlwaysPreTouch - */ - -public class TestAlwaysPreTouch { - public static void main(String[] args) throws Exception { - System.out.println("Success"); - } -} diff --git a/test/hotspot/jtreg/gc/x/TestGarbageCollectorMXBean.java b/test/hotspot/jtreg/gc/x/TestGarbageCollectorMXBean.java deleted file mode 100644 index 193b93ee2d0..00000000000 --- a/test/hotspot/jtreg/gc/x/TestGarbageCollectorMXBean.java +++ /dev/null @@ -1,221 +0,0 @@ -/* - * Copyright (c) 2020, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package gc.x; - -/** - * @test TestGarbageCollectorMXBean - * @requires vm.gc.ZSinglegen - * @summary Test ZGC garbage collector MXBean - * @modules java.management - * @requires vm.compMode != "Xcomp" - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -Xms256M -Xmx512M -Xlog:gc gc.x.TestGarbageCollectorMXBean 256 512 - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -Xms512M -Xmx512M -Xlog:gc gc.x.TestGarbageCollectorMXBean 512 512 - */ - -import java.lang.management.ManagementFactory; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.concurrent.atomic.AtomicLong; -import javax.management.Notification; -import javax.management.NotificationEmitter; -import javax.management.NotificationListener; -import javax.management.openmbean.CompositeData; - -import com.sun.management.GarbageCollectionNotificationInfo; - -public class TestGarbageCollectorMXBean { - private static final long startTime = System.nanoTime(); - - private static void log(String msg) { - final String elapsedSeconds = String.format("%.3fs", (System.nanoTime() - startTime) / 1_000_000_000.0); - System.out.println("[" + elapsedSeconds + "] (" + Thread.currentThread().getName() + ") " + msg); - } - - public static void main(String[] args) throws Exception { - final long M = 1024 * 1024; - final long initialCapacity = Long.parseLong(args[0]) * M; - final long maxCapacity = Long.parseLong(args[1]) * M; - final AtomicInteger cycles = new AtomicInteger(); - final AtomicInteger pauses = new AtomicInteger(); - final AtomicInteger errors = new AtomicInteger(); - - final NotificationListener listener = (Notification notification, Object ignored) -> { - final var type = notification.getType(); - if (!type.equals(GarbageCollectionNotificationInfo.GARBAGE_COLLECTION_NOTIFICATION)) { - // Ignore - return; - } - - final var data = (CompositeData)notification.getUserData(); - final var info = GarbageCollectionNotificationInfo.from(data); - final var name = info.getGcName(); - final var id = info.getGcInfo().getId(); - final var action = info.getGcAction(); - final var cause = info.getGcCause(); - final var startTime = info.getGcInfo().getStartTime(); - final var endTime = info.getGcInfo().getEndTime(); - final var duration = info.getGcInfo().getDuration(); - final var memoryUsageBeforeGC = info.getGcInfo().getMemoryUsageBeforeGc().get("ZHeap"); - final var memoryUsageAfterGC = info.getGcInfo().getMemoryUsageAfterGc().get("ZHeap"); - - log(name + " (" + type + ")"); - log(" Id: " + id); - log(" Action: " + action); - log(" Cause: " + cause); - log(" StartTime: " + startTime); - log(" EndTime: " + endTime); - log(" Duration: " + duration); - log(" MemoryUsageBeforeGC: " + memoryUsageBeforeGC); - log(" MemoryUsageAfterGC: " + memoryUsageAfterGC); - log(""); - - if (name.equals("ZGC Cycles")) { - cycles.incrementAndGet(); - - if (!action.equals("end of GC cycle")) { - log("ERROR: Action"); - errors.incrementAndGet(); - } - - if (memoryUsageBeforeGC.getInit() != initialCapacity) { - log("ERROR: MemoryUsageBeforeGC.init"); - errors.incrementAndGet(); - } - - if (memoryUsageBeforeGC.getUsed() > initialCapacity) { - log("ERROR: MemoryUsageBeforeGC.used"); - errors.incrementAndGet(); - } - - if (memoryUsageBeforeGC.getCommitted() != initialCapacity) { - log("ERROR: MemoryUsageBeforeGC.committed"); - errors.incrementAndGet(); - } - - if (memoryUsageBeforeGC.getMax() != maxCapacity) { - log("ERROR: MemoryUsageBeforeGC.max"); - errors.incrementAndGet(); - } - } else if (name.equals("ZGC Pauses")) { - pauses.incrementAndGet(); - - if (!action.equals("end of GC pause")) { - log("ERROR: Action"); - errors.incrementAndGet(); - } - - if (memoryUsageBeforeGC.getInit() != 0) { - log("ERROR: MemoryUsageBeforeGC.init"); - errors.incrementAndGet(); - } - - if (memoryUsageBeforeGC.getUsed() != 0) { - log("ERROR: MemoryUsageBeforeGC.used"); - errors.incrementAndGet(); - } - - if (memoryUsageBeforeGC.getCommitted() != 0) { - log("ERROR: MemoryUsageBeforeGC.committed"); - errors.incrementAndGet(); - } - - if (memoryUsageBeforeGC.getMax() != 0) { - log("ERROR: MemoryUsageBeforeGC.max"); - errors.incrementAndGet(); - } - } else { - log("ERROR: Name"); - errors.incrementAndGet(); - } - - if (!cause.equals("System.gc()")) { - log("ERROR: Cause"); - errors.incrementAndGet(); - } - - if (startTime > endTime) { - log("ERROR: StartTime"); - errors.incrementAndGet(); - } - - if (endTime - startTime != duration) { - log("ERROR: Duration"); - errors.incrementAndGet(); - } - }; - - // Collect garbage created at startup - System.gc(); - - // Register GC event listener - for (final var collector : ManagementFactory.getGarbageCollectorMXBeans()) { - final NotificationEmitter emitter = (NotificationEmitter)collector; - emitter.addNotificationListener(listener, null, null); - } - - final int minCycles = 5; - final int minPauses = minCycles * 3; - - // Run GCs - for (int i = 0; i < minCycles; i++) { - log("Starting GC " + i); - System.gc(); - } - - // Wait at most 90 seconds - for (int i = 0; i < 90; i++) { - log("Waiting..."); - Thread.sleep(1000); - - if (cycles.get() >= minCycles) { - log("All events received!"); - break; - } - } - - final int actualCycles = cycles.get(); - final int actualPauses = pauses.get(); - final int actualErrors = errors.get(); - - log(" minCycles: " + minCycles); - log(" minPauses: " + minPauses); - log("actualCycles: " + actualCycles); - log("actualPauses: " + actualPauses); - log("actualErrors: " + actualErrors); - - // Verify number of cycle events - if (actualCycles < minCycles) { - throw new Exception("Unexpected cycles"); - } - - // Verify number of pause events - if (actualPauses < minPauses) { - throw new Exception("Unexpected pauses"); - } - - // Verify number of errors - if (actualErrors != 0) { - throw new Exception("Unexpected errors"); - } - } -} diff --git a/test/hotspot/jtreg/gc/x/TestHighUsage.java b/test/hotspot/jtreg/gc/x/TestHighUsage.java deleted file mode 100644 index 32b0af19e4b..00000000000 --- a/test/hotspot/jtreg/gc/x/TestHighUsage.java +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Copyright (c) 2019, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package gc.x; - -/* - * @test TestHighUsage - * @requires vm.gc.ZSinglegen - * @summary Test ZGC "High Usage" rule - * @library /test/lib - * @run main/othervm gc.x.TestHighUsage - */ - -import java.util.LinkedList; -import jdk.test.lib.process.ProcessTools; - -public class TestHighUsage { - static class Test { - private static final int K = 1024; - private static final int M = K * K; - private static final long maxCapacity = Runtime.getRuntime().maxMemory(); - private static final long slowAllocationThreshold = 16 * M; - private static final long highUsageThreshold = maxCapacity / 20; // 5% - private static volatile LinkedList keepAlive; - private static volatile Object dummy; - - public static void main(String[] args) throws Exception { - System.out.println("Max capacity: " + (maxCapacity / M) + "M"); - System.out.println("High usage threshold: " + (highUsageThreshold / M) + "M"); - System.out.println("Allocating live-set"); - - // Allocate live-set - keepAlive = new LinkedList<>(); - while (Runtime.getRuntime().freeMemory() > slowAllocationThreshold) { - while (Runtime.getRuntime().freeMemory() > slowAllocationThreshold) { - keepAlive.add(new byte[128 * K]); - } - - // Compact live-set and let allocation rate settle down - System.gc(); - Thread.sleep(2000); - } - - System.out.println("Allocating garbage slowly"); - - // Allocate garbage slowly, so that the sampled allocation rate on average - // becomes zero MB/s for the last 1 second windows. Once we reach the high - // usage threshold we idle to allow for a "High Usage" GC cycle to happen. - // We need to allocate slowly to avoid an "Allocation Rate" GC cycle. - for (int i = 0; i < 300; i++) { - if (Runtime.getRuntime().freeMemory() > highUsageThreshold) { - // Allocate - dummy = new byte[128 * K]; - System.out.println("Free: " + (Runtime.getRuntime().freeMemory() / M) + "M (Allocating)"); - } else { - // Idle - System.out.println("Free: " + (Runtime.getRuntime().freeMemory() / M) + "M (Idling)"); - } - - Thread.sleep(250); - } - - System.out.println("Done"); - } - } - - public static void main(String[] args) throws Exception { - ProcessTools.executeTestJava("-XX:+UseZGC", - "-XX:-ZGenerational", - "-XX:-ZProactive", - "-Xms128M", - "-Xmx128M", - "-XX:ParallelGCThreads=1", - "-XX:ConcGCThreads=1", - "-Xlog:gc,gc+start", - Test.class.getName()) - .shouldNotContain("Allocation Stall") - .shouldContain("High Usage") - .shouldHaveExitValue(0); - } -} diff --git a/test/hotspot/jtreg/gc/x/TestMemoryMXBean.java b/test/hotspot/jtreg/gc/x/TestMemoryMXBean.java deleted file mode 100644 index fad1febe158..00000000000 --- a/test/hotspot/jtreg/gc/x/TestMemoryMXBean.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright (c) 2020, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package gc.x; - -/** - * @test TestMemoryMXBean - * @requires vm.gc.ZSinglegen - * @summary Test ZGC heap memory MXBean - * @modules java.management - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -Xms128M -Xmx256M -Xlog:gc* gc.x.TestMemoryMXBean 128 256 - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -Xms256M -Xmx256M -Xlog:gc* gc.x.TestMemoryMXBean 256 256 - */ - -import java.lang.management.ManagementFactory; - -public class TestMemoryMXBean { - public static void main(String[] args) throws Exception { - final long M = 1024 * 1024; - final long expectedInitialCapacity = Long.parseLong(args[0]) * M; - final long expectedMaxCapacity = Long.parseLong(args[1]) * M; - final var memoryUsage = ManagementFactory.getMemoryMXBean().getHeapMemoryUsage(); - final long initialCapacity = memoryUsage.getInit(); - final long capacity = memoryUsage.getCommitted(); - final long maxCapacity = memoryUsage.getMax(); - - System.out.println("expectedInitialCapacity: " + expectedInitialCapacity); - System.out.println(" expectedMaxCapacity: " + expectedMaxCapacity); - System.out.println(" initialCapacity: " + initialCapacity); - System.out.println(" capacity: " + capacity); - System.out.println(" maxCapacity: " + maxCapacity); - - if (initialCapacity != expectedInitialCapacity) { - throw new Exception("Unexpected initial capacity"); - } - - if (maxCapacity != expectedMaxCapacity) { - throw new Exception("Unexpected max capacity"); - } - - if (capacity < initialCapacity || capacity > maxCapacity) { - throw new Exception("Unexpected capacity"); - } - } -} diff --git a/test/hotspot/jtreg/gc/x/TestMemoryManagerMXBean.java b/test/hotspot/jtreg/gc/x/TestMemoryManagerMXBean.java deleted file mode 100644 index 70ce6c23b2e..00000000000 --- a/test/hotspot/jtreg/gc/x/TestMemoryManagerMXBean.java +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright (c) 2020, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package gc.x; - -/** - * @test TestMemoryManagerMXBean - * @requires vm.gc.ZSinglegen - * @summary Test ZGC memory manager MXBean - * @modules java.management - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -Xmx128M gc.x.TestMemoryManagerMXBean - */ - -import java.lang.management.ManagementFactory; - -public class TestMemoryManagerMXBean { - private static void checkName(String name) throws Exception { - if (name == null || name.length() == 0) { - throw new Exception("Invalid name"); - } - } - - public static void main(String[] args) throws Exception { - int zgcCyclesMemoryManagers = 0; - int zgcPausesMemoryManagers = 0; - int zgcCyclesMemoryPools = 0; - int zgcPausesMemoryPools = 0; - - for (final var memoryManager : ManagementFactory.getMemoryManagerMXBeans()) { - final var memoryManagerName = memoryManager.getName(); - checkName(memoryManagerName); - - System.out.println("MemoryManager: " + memoryManagerName); - - if (memoryManagerName.equals("ZGC Cycles")) { - zgcCyclesMemoryManagers++; - } else if (memoryManagerName.equals("ZGC Pauses")) { - zgcPausesMemoryManagers++; - } - - for (final var memoryPoolName : memoryManager.getMemoryPoolNames()) { - checkName(memoryPoolName); - - System.out.println(" MemoryPool: " + memoryPoolName); - - if (memoryPoolName.equals("ZHeap")) { - if (memoryManagerName.equals("ZGC Cycles")) { - zgcCyclesMemoryPools++; - } else if (memoryManagerName.equals("ZGC Pauses")) { - zgcPausesMemoryPools++; - } - } - } - } - - if (zgcCyclesMemoryManagers != 1) { - throw new Exception("Unexpected number of cycle MemoryManagers"); - } - - if (zgcPausesMemoryManagers != 1) { - throw new Exception("Unexpected number of pause MemoryManagers"); - } - - if (zgcCyclesMemoryPools != 1) { - throw new Exception("Unexpected number of cycle MemoryPools"); - } - - if (zgcPausesMemoryPools != 1) { - throw new Exception("Unexpected number of pause MemoryPools"); - } - } -} diff --git a/test/hotspot/jtreg/gc/x/TestNoUncommit.java b/test/hotspot/jtreg/gc/x/TestNoUncommit.java deleted file mode 100644 index be5aa950509..00000000000 --- a/test/hotspot/jtreg/gc/x/TestNoUncommit.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package gc.x; - -/* - * @test TestNoUncommit - * @requires vm.gc.ZSinglegen & !vm.graal.enabled - * @summary Test ZGC uncommit unused memory disabled - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -Xlog:gc*,gc+heap=debug,gc+stats=off -Xms512M -Xmx512M -XX:ZUncommitDelay=1 gc.x.TestNoUncommit - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -Xlog:gc*,gc+heap=debug,gc+stats=off -Xms128M -Xmx512M -XX:ZUncommitDelay=1 -XX:-ZUncommit gc.x.TestNoUncommit - */ - -public class TestNoUncommit { - private static final int allocSize = 200 * 1024 * 1024; // 200M - private static volatile Object keepAlive = null; - - private static long capacity() { - return Runtime.getRuntime().totalMemory(); - } - - public static void main(String[] args) throws Exception { - System.out.println("Allocating"); - keepAlive = new byte[allocSize]; - final var afterAlloc = capacity(); - - System.out.println("Reclaiming"); - keepAlive = null; - System.gc(); - - // Wait longer than the uncommit delay (which is 1 second) - Thread.sleep(5 * 1000); - - final var afterDelay = capacity(); - - // Verify - if (afterAlloc > afterDelay) { - throw new Exception("Should not uncommit"); - } - - System.out.println("Success"); - } -} diff --git a/test/hotspot/jtreg/gc/x/TestPageCacheFlush.java b/test/hotspot/jtreg/gc/x/TestPageCacheFlush.java deleted file mode 100644 index a48b6f77e17..00000000000 --- a/test/hotspot/jtreg/gc/x/TestPageCacheFlush.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright (c) 2020, 2023, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package gc.x; - -/* - * @test TestPageCacheFlush - * @requires vm.gc.ZSinglegen - * @summary Test ZGC page cache flushing - * @library /test/lib - * @run driver gc.x.TestPageCacheFlush - */ - -import java.util.LinkedList; -import jdk.test.lib.process.ProcessTools; - -public class TestPageCacheFlush { - static class Test { - private static final int K = 1024; - private static final int M = K * K; - private static volatile LinkedList keepAlive; - - public static void fillPageCache(int size) { - System.out.println("Begin allocate (" + size + ")"); - - keepAlive = new LinkedList<>(); - - try { - for (;;) { - keepAlive.add(new byte[size]); - } - } catch (OutOfMemoryError e) { - keepAlive = null; - System.gc(); - } - - System.out.println("End allocate (" + size + ")"); - } - - public static void main(String[] args) throws Exception { - // Allocate small objects to fill the page cache with small pages - fillPageCache(10 * K); - - // Allocate large objects to provoke page cache flushing to rebuild - // cached small pages into large pages - fillPageCache(10 * M); - } - } - - public static void main(String[] args) throws Exception { - ProcessTools.executeTestJava( - "-XX:+UseZGC", - "-XX:-ZGenerational", - "-Xms128M", - "-Xmx128M", - "-Xlog:gc,gc+init,gc+heap=debug", - Test.class.getName()) - .outputTo(System.out) - .errorTo(System.out) - .shouldContain("Page Cache Flushed:") - .shouldHaveExitValue(0); - } -} diff --git a/test/hotspot/jtreg/gc/x/TestRelocateInPlace.java b/test/hotspot/jtreg/gc/x/TestRelocateInPlace.java deleted file mode 100644 index dba08b23a5d..00000000000 --- a/test/hotspot/jtreg/gc/x/TestRelocateInPlace.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package gc.x; - -/* - * @test TestRelocateInPlace - * @requires vm.gc.ZSinglegen - * @summary Test ZGC in-place relocateion - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -Xlog:gc*,gc+stats=off -Xmx256M -XX:+UnlockDiagnosticVMOptions -XX:+ZStressRelocateInPlace gc.x.TestRelocateInPlace - */ - -import java.util.ArrayList; - -public class TestRelocateInPlace { - private static final int allocSize = 100 * 1024 * 1024; // 100M - private static final int smallObjectSize = 4 * 1024; // 4K - private static final int mediumObjectSize = 2 * 1024 * 1024; // 2M - - private static volatile ArrayList keepAlive; - - private static void allocate(int objectSize) { - keepAlive = new ArrayList<>(); - for (int i = 0; i < allocSize; i+= objectSize) { - keepAlive.add(new byte[objectSize]); - } - } - - private static void fragment() { - // Release every other reference to cause lots of fragmentation - for (int i = 0; i < keepAlive.size(); i += 2) { - keepAlive.set(i, null); - } - } - - private static void test(int objectSize) throws Exception { - System.out.println("Allocating"); - allocate(objectSize); - - System.out.println("Fragmenting"); - fragment(); - - System.out.println("Reclaiming"); - System.gc(); - } - - public static void main(String[] args) throws Exception { - for (int i = 0; i < 10; i++) { - System.out.println("Iteration " + i); - test(smallObjectSize); - test(mediumObjectSize); - } - } -} diff --git a/test/hotspot/jtreg/gc/x/TestSmallHeap.java b/test/hotspot/jtreg/gc/x/TestSmallHeap.java deleted file mode 100644 index a7e8042f924..00000000000 --- a/test/hotspot/jtreg/gc/x/TestSmallHeap.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (c) 2019, 2023, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package gc.x; - -/* - * @test TestSmallHeap - * @requires vm.gc.ZSinglegen - * @summary Test ZGC with small heaps - * @library / /test/lib - * @run driver gc.x.TestSmallHeap 8M 16M 32M 64M 128M 256M 512M 1024M - */ - -import jdk.test.lib.process.ProcessTools; -import static gc.testlibrary.Allocation.blackHole; - -public class TestSmallHeap { - public static class Test { - public static void main(String[] args) throws Exception { - final long maxCapacity = Runtime.getRuntime().maxMemory(); - System.out.println("Max Capacity " + maxCapacity + " bytes"); - - // Allocate byte arrays of increasing length, so that - // all allocation paths (small/medium/large) are tested. - for (int length = 16; length <= maxCapacity / 16; length *= 2) { - System.out.println("Allocating " + length + " bytes"); - blackHole(new byte[length]); - } - - System.out.println("Success"); - } - } - - public static void main(String[] args) throws Exception { - for (var maxCapacity: args) { - ProcessTools.executeTestJava( - "-XX:+UseZGC", - "-XX:-ZGenerational", - "-Xlog:gc,gc+init,gc+reloc,gc+heap", - "-Xmx" + maxCapacity, - Test.class.getName()) - .outputTo(System.out) - .errorTo(System.out) - .shouldContain("Success") - .shouldHaveExitValue(0); - } - } -} diff --git a/test/hotspot/jtreg/gc/x/TestUncommit.java b/test/hotspot/jtreg/gc/x/TestUncommit.java deleted file mode 100644 index febd6b99588..00000000000 --- a/test/hotspot/jtreg/gc/x/TestUncommit.java +++ /dev/null @@ -1,136 +0,0 @@ -/* - * Copyright (c) 2019, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package gc.x; - -/* - * @test TestUncommit - * @requires vm.gc.ZSinglegen - * @summary Test ZGC uncommit unused memory - * @library /test/lib - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -Xlog:gc*,gc+heap=debug,gc+stats=off -Xms128M -Xmx512M -XX:ZUncommitDelay=10 gc.x.TestUncommit - */ - -import java.util.ArrayList; -import jdk.test.lib.Utils; - -public class TestUncommit { - private static final int delay = 10 * 1000; // milliseconds - private static final int allocSize = 200 * 1024 * 1024; // 200M - private static final int smallObjectSize = 4 * 1024; // 4K - private static final int mediumObjectSize = 2 * 1024 * 1024; // 2M - private static final int largeObjectSize = allocSize; - - private static volatile ArrayList keepAlive; - - private static final long startTime = System.nanoTime(); - - private static void log(String msg) { - final String elapsedSeconds = String.format("%.3fs", (System.nanoTime() - startTime) / 1_000_000_000.0); - System.out.println("[" + elapsedSeconds + "] (" + Thread.currentThread().getName() + ") " + msg); - } - - private static long capacity() { - return Runtime.getRuntime().totalMemory(); - } - - private static void allocate(int objectSize) { - keepAlive = new ArrayList<>(); - for (int i = 0; i < allocSize; i+= objectSize) { - keepAlive.add(new byte[objectSize]); - } - } - - private static void reclaim() { - keepAlive = null; - System.gc(); - } - - private static void test(int objectSize) throws Exception { - final var beforeAlloc = capacity(); - final var timeBeforeAlloc = System.nanoTime(); - - // Allocate memory - log("Allocating"); - allocate(objectSize); - - final var afterAlloc = capacity(); - - // Reclaim memory - log("Reclaiming"); - reclaim(); - - log("Waiting for uncommit to start"); - while (capacity() >= afterAlloc) { - Thread.sleep(1000); - } - - log("Uncommit started"); - final var timeUncommitStart = System.nanoTime(); - final var actualDelay = (timeUncommitStart - timeBeforeAlloc) / 1_000_000; - - log("Waiting for uncommit to complete"); - while (capacity() > beforeAlloc) { - Thread.sleep(1000); - } - - log("Uncommit completed"); - final var afterUncommit = capacity(); - - log(" Uncommit Delay: " + delay); - log(" Object Size: " + objectSize); - log(" Alloc Size: " + allocSize); - log(" Before Alloc: " + beforeAlloc); - log(" After Alloc: " + afterAlloc); - log(" After Uncommit: " + afterUncommit); - log(" Actual Uncommit Delay: " + actualDelay); - - // Verify - if (actualDelay < delay) { - throw new Exception("Uncommitted too fast"); - } - - if (actualDelay > delay * 2 * Utils.TIMEOUT_FACTOR) { - throw new Exception("Uncommitted too slow"); - } - - if (afterUncommit < beforeAlloc) { - throw new Exception("Uncommitted too much"); - } - - if (afterUncommit > beforeAlloc) { - throw new Exception("Uncommitted too little"); - } - - log("Success"); - } - - public static void main(String[] args) throws Exception { - for (int i = 0; i < 2; i++) { - log("Iteration " + i); - test(smallObjectSize); - test(mediumObjectSize); - test(largeObjectSize); - } - } -} diff --git a/test/hotspot/jtreg/gc/z/TestAllocateHeapAt.java b/test/hotspot/jtreg/gc/z/TestAllocateHeapAt.java index 2fb040840b4..dbcca704fab 100644 --- a/test/hotspot/jtreg/gc/z/TestAllocateHeapAt.java +++ b/test/hotspot/jtreg/gc/z/TestAllocateHeapAt.java @@ -25,7 +25,7 @@ /* * @test TestAllocateHeapAt - * @requires vm.gc.ZGenerational & os.family == "linux" + * @requires vm.gc.Z & os.family == "linux" * @requires !vm.opt.final.UseLargePages * @summary Test ZGC with -XX:AllocateHeapAt * @library /test/lib @@ -44,7 +44,6 @@ public static void main(String[] args) throws Exception { ProcessTools.executeTestJava( "-XX:+UseZGC", - "-XX:+ZGenerational", "-Xlog:gc*", "-Xms32M", "-Xmx32M", diff --git a/test/hotspot/jtreg/gc/z/TestAllocateHeapAtWithHugeTLBFS.java b/test/hotspot/jtreg/gc/z/TestAllocateHeapAtWithHugeTLBFS.java index ac647bbd013..4134ce838d4 100644 --- a/test/hotspot/jtreg/gc/z/TestAllocateHeapAtWithHugeTLBFS.java +++ b/test/hotspot/jtreg/gc/z/TestAllocateHeapAtWithHugeTLBFS.java @@ -25,7 +25,7 @@ /* * @test TestAllocateHeapAtWithHugeTLBFS - * @requires vm.gc.ZGenerational & os.family == "linux" + * @requires vm.gc.Z & os.family == "linux" * @summary Test ZGC with -XX:AllocateHeapAt and -XX:+UseLargePages * @library /test/lib * @run driver gc.z.TestAllocateHeapAtWithHugeTLBFS true @@ -77,7 +77,6 @@ public static void main(String[] args) throws Exception { ProcessTools.executeTestJava( "-XX:+UseZGC", - "-XX:+ZGenerational", "-Xlog:gc*", "-Xms32M", "-Xmx32M", diff --git a/test/hotspot/jtreg/gc/z/TestAlwaysPreTouch.java b/test/hotspot/jtreg/gc/z/TestAlwaysPreTouch.java index 8020c82c4fd..db0471431d1 100644 --- a/test/hotspot/jtreg/gc/z/TestAlwaysPreTouch.java +++ b/test/hotspot/jtreg/gc/z/TestAlwaysPreTouch.java @@ -25,13 +25,13 @@ /* * @test TestAlwaysPreTouch - * @requires vm.gc.ZGenerational + * @requires vm.gc.Z * @summary Test ZGC parallel pre-touch - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Xlog:gc* -XX:-AlwaysPreTouch -Xms128M -Xmx128M gc.z.TestAlwaysPreTouch - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Xlog:gc* -XX:+AlwaysPreTouch -XX:ParallelGCThreads=1 -Xms2M -Xmx128M gc.z.TestAlwaysPreTouch - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Xlog:gc* -XX:+AlwaysPreTouch -XX:ParallelGCThreads=8 -Xms2M -Xmx128M gc.z.TestAlwaysPreTouch - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Xlog:gc* -XX:+AlwaysPreTouch -XX:ParallelGCThreads=1 -Xms128M -Xmx128M gc.z.TestAlwaysPreTouch - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Xlog:gc* -XX:+AlwaysPreTouch -XX:ParallelGCThreads=8 -Xms128M -Xmx128M gc.z.TestAlwaysPreTouch + * @run main/othervm -XX:+UseZGC -Xlog:gc* -XX:-AlwaysPreTouch -Xms128M -Xmx128M gc.z.TestAlwaysPreTouch + * @run main/othervm -XX:+UseZGC -Xlog:gc* -XX:+AlwaysPreTouch -XX:ParallelGCThreads=1 -Xms2M -Xmx128M gc.z.TestAlwaysPreTouch + * @run main/othervm -XX:+UseZGC -Xlog:gc* -XX:+AlwaysPreTouch -XX:ParallelGCThreads=8 -Xms2M -Xmx128M gc.z.TestAlwaysPreTouch + * @run main/othervm -XX:+UseZGC -Xlog:gc* -XX:+AlwaysPreTouch -XX:ParallelGCThreads=1 -Xms128M -Xmx128M gc.z.TestAlwaysPreTouch + * @run main/othervm -XX:+UseZGC -Xlog:gc* -XX:+AlwaysPreTouch -XX:ParallelGCThreads=8 -Xms128M -Xmx128M gc.z.TestAlwaysPreTouch */ public class TestAlwaysPreTouch { diff --git a/test/hotspot/jtreg/gc/z/TestGarbageCollectorMXBean.java b/test/hotspot/jtreg/gc/z/TestGarbageCollectorMXBean.java index b3ecc28ff65..d3cf46d51e8 100644 --- a/test/hotspot/jtreg/gc/z/TestGarbageCollectorMXBean.java +++ b/test/hotspot/jtreg/gc/z/TestGarbageCollectorMXBean.java @@ -25,12 +25,12 @@ /** * @test TestGarbageCollectorMXBean - * @requires vm.gc.ZGenerational + * @requires vm.gc.Z * @summary Test ZGC garbage collector MXBean * @modules java.management * @requires vm.compMode != "Xcomp" - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Xms256M -Xmx512M -Xlog:gc gc.z.TestGarbageCollectorMXBean 256 512 - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Xms512M -Xmx512M -Xlog:gc gc.z.TestGarbageCollectorMXBean 512 512 + * @run main/othervm -XX:+UseZGC -Xms256M -Xmx512M -Xlog:gc gc.z.TestGarbageCollectorMXBean 256 512 + * @run main/othervm -XX:+UseZGC -Xms512M -Xmx512M -Xlog:gc gc.z.TestGarbageCollectorMXBean 512 512 */ import java.lang.management.ManagementFactory; diff --git a/test/hotspot/jtreg/gc/z/TestMemoryMXBean.java b/test/hotspot/jtreg/gc/z/TestMemoryMXBean.java index 6f4505a64bf..ec1daaa00fb 100644 --- a/test/hotspot/jtreg/gc/z/TestMemoryMXBean.java +++ b/test/hotspot/jtreg/gc/z/TestMemoryMXBean.java @@ -25,11 +25,11 @@ /** * @test TestMemoryMXBean - * @requires vm.gc.ZGenerational + * @requires vm.gc.Z * @summary Test ZGC heap memory MXBean * @modules java.management - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Xms128M -Xmx256M -Xlog:gc* gc.z.TestMemoryMXBean 128 256 - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Xms256M -Xmx256M -Xlog:gc* gc.z.TestMemoryMXBean 256 256 + * @run main/othervm -XX:+UseZGC -Xms128M -Xmx256M -Xlog:gc* gc.z.TestMemoryMXBean 128 256 + * @run main/othervm -XX:+UseZGC -Xms256M -Xmx256M -Xlog:gc* gc.z.TestMemoryMXBean 256 256 */ import java.lang.management.ManagementFactory; diff --git a/test/hotspot/jtreg/gc/z/TestMemoryManagerMXBean.java b/test/hotspot/jtreg/gc/z/TestMemoryManagerMXBean.java index 5a0c481a42f..6540d67e855 100644 --- a/test/hotspot/jtreg/gc/z/TestMemoryManagerMXBean.java +++ b/test/hotspot/jtreg/gc/z/TestMemoryManagerMXBean.java @@ -25,10 +25,10 @@ /** * @test TestMemoryManagerMXBean - * @requires vm.gc.ZGenerational + * @requires vm.gc.Z * @summary Test ZGC memory manager MXBean * @modules java.management - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Xmx128M gc.z.TestMemoryManagerMXBean + * @run main/othervm -XX:+UseZGC -Xmx128M gc.z.TestMemoryManagerMXBean */ import java.lang.management.ManagementFactory; diff --git a/test/hotspot/jtreg/gc/z/TestNoUncommit.java b/test/hotspot/jtreg/gc/z/TestNoUncommit.java index 6115681552e..cd5833f308f 100644 --- a/test/hotspot/jtreg/gc/z/TestNoUncommit.java +++ b/test/hotspot/jtreg/gc/z/TestNoUncommit.java @@ -25,10 +25,10 @@ /* * @test TestNoUncommit - * @requires vm.gc.ZGenerational & !vm.graal.enabled + * @requires vm.gc.Z & !vm.graal.enabled * @summary Test ZGC uncommit unused memory disabled - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Xlog:gc*,gc+heap=debug,gc+stats=off -Xms512M -Xmx512M -XX:ZUncommitDelay=1 gc.z.TestNoUncommit - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Xlog:gc*,gc+heap=debug,gc+stats=off -Xms128M -Xmx512M -XX:ZUncommitDelay=1 -XX:-ZUncommit gc.z.TestNoUncommit + * @run main/othervm -XX:+UseZGC -Xlog:gc*,gc+heap=debug,gc+stats=off -Xms512M -Xmx512M -XX:ZUncommitDelay=1 gc.z.TestNoUncommit + * @run main/othervm -XX:+UseZGC -Xlog:gc*,gc+heap=debug,gc+stats=off -Xms128M -Xmx512M -XX:ZUncommitDelay=1 -XX:-ZUncommit gc.z.TestNoUncommit */ public class TestNoUncommit { diff --git a/test/hotspot/jtreg/gc/z/TestPageCacheFlush.java b/test/hotspot/jtreg/gc/z/TestPageCacheFlush.java index 3b666ddc2c8..847c7b2d117 100644 --- a/test/hotspot/jtreg/gc/z/TestPageCacheFlush.java +++ b/test/hotspot/jtreg/gc/z/TestPageCacheFlush.java @@ -25,7 +25,7 @@ /* * @test TestPageCacheFlush - * @requires vm.gc.ZGenerational + * @requires vm.gc.Z * @summary Test ZGC page cache flushing * @library /test/lib * @run driver gc.z.TestPageCacheFlush @@ -70,7 +70,6 @@ public static void main(String[] args) throws Exception { public static void main(String[] args) throws Exception { ProcessTools.executeTestJava( "-XX:+UseZGC", - "-XX:+ZGenerational", "-Xms128M", "-Xmx128M", "-Xlog:gc,gc+init,gc+heap=debug", diff --git a/test/hotspot/jtreg/gc/z/TestRegistersPushPopAtZGCLoadBarrierStub.java b/test/hotspot/jtreg/gc/z/TestRegistersPushPopAtZGCLoadBarrierStub.java index 71aa634c761..9730fdaafd8 100644 --- a/test/hotspot/jtreg/gc/z/TestRegistersPushPopAtZGCLoadBarrierStub.java +++ b/test/hotspot/jtreg/gc/z/TestRegistersPushPopAtZGCLoadBarrierStub.java @@ -31,7 +31,7 @@ * @library /test/lib / * @modules jdk.incubator.vector * - * @requires vm.gc.ZGenerational & vm.debug + * @requires vm.gc.Z & vm.debug * @requires os.arch=="aarch64" * * @run driver gc.z.TestRegistersPushPopAtZGCLoadBarrierStub @@ -316,7 +316,6 @@ static String launchJavaTestProcess(String test_name) throws Exception { command.add("-XX:-UseOnStackReplacement"); command.add("-XX:-TieredCompilation"); command.add("-XX:+UseZGC"); - command.add("-XX:+ZGenerational"); command.add("--add-modules=jdk.incubator.vector"); command.add("-XX:CompileCommand=print," + Launcher.class.getName() + "::" + test_name); command.add(Launcher.class.getName()); diff --git a/test/hotspot/jtreg/gc/z/TestRelocateInPlace.java b/test/hotspot/jtreg/gc/z/TestRelocateInPlace.java index 5115fe3c965..723a6504c6a 100644 --- a/test/hotspot/jtreg/gc/z/TestRelocateInPlace.java +++ b/test/hotspot/jtreg/gc/z/TestRelocateInPlace.java @@ -25,9 +25,9 @@ /* * @test TestRelocateInPlace - * @requires vm.gc.ZGenerational + * @requires vm.gc.Z * @summary Test ZGC in-place relocateion - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Xlog:gc*,gc+stats=off -Xmx256M -XX:+UnlockDiagnosticVMOptions -XX:+ZStressRelocateInPlace gc.z.TestRelocateInPlace + * @run main/othervm -XX:+UseZGC -Xlog:gc*,gc+stats=off -Xmx256M -XX:+UnlockDiagnosticVMOptions -XX:+ZStressRelocateInPlace gc.z.TestRelocateInPlace */ import java.util.ArrayList; diff --git a/test/hotspot/jtreg/gc/z/TestSmallHeap.java b/test/hotspot/jtreg/gc/z/TestSmallHeap.java index 67d9d33d281..9ac65d05108 100644 --- a/test/hotspot/jtreg/gc/z/TestSmallHeap.java +++ b/test/hotspot/jtreg/gc/z/TestSmallHeap.java @@ -25,7 +25,7 @@ /* * @test TestSmallHeap - * @requires vm.gc.ZGenerational + * @requires vm.gc.Z * @summary Test ZGC with small heaps * @library / /test/lib * @run driver gc.z.TestSmallHeap 16M 32M 64M 128M 256M 512M 1024M @@ -55,7 +55,6 @@ public static void main(String[] args) throws Exception { for (var maxCapacity: args) { ProcessTools.executeTestJava( "-XX:+UseZGC", - "-XX:+ZGenerational", "-Xlog:gc,gc+init,gc+reloc,gc+heap", "-Xmx" + maxCapacity, Test.class.getName()) diff --git a/test/hotspot/jtreg/gc/z/TestUncommit.java b/test/hotspot/jtreg/gc/z/TestUncommit.java index fea0721cce3..e02773e868f 100644 --- a/test/hotspot/jtreg/gc/z/TestUncommit.java +++ b/test/hotspot/jtreg/gc/z/TestUncommit.java @@ -25,10 +25,10 @@ /* * @test TestUncommit - * @requires vm.gc.ZGenerational + * @requires vm.gc.Z * @summary Test ZGC uncommit unused memory * @library /test/lib - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Xlog:gc*,gc+heap=debug,gc+stats=off -Xms128M -Xmx512M -XX:ZUncommitDelay=10 gc.z.TestUncommit + * @run main/othervm -XX:+UseZGC -Xlog:gc*,gc+heap=debug,gc+stats=off -Xms128M -Xmx512M -XX:ZUncommitDelay=10 gc.z.TestUncommit */ import java.util.ArrayList; diff --git a/test/hotspot/jtreg/gc/z/TestZForceDiscontiguousHeapReservations.java b/test/hotspot/jtreg/gc/z/TestZForceDiscontiguousHeapReservations.java index f1a14f0cf90..fa2485073dd 100644 --- a/test/hotspot/jtreg/gc/z/TestZForceDiscontiguousHeapReservations.java +++ b/test/hotspot/jtreg/gc/z/TestZForceDiscontiguousHeapReservations.java @@ -25,7 +25,7 @@ /** * @test TestZForceDiscontiguousHeapReservations - * @requires vm.gc.ZGenerational & vm.debug + * @requires vm.gc.Z & vm.debug * @summary Test the ZForceDiscontiguousHeapReservations development flag * @library /test/lib * @run driver gc.z.TestZForceDiscontiguousHeapReservations @@ -47,7 +47,6 @@ private static void testValue(int n) throws Exception { final int XmsInM = Math.min(16 * XmxInM / (n + 1), XmxInM); OutputAnalyzer oa = ProcessTools.executeTestJava( "-XX:+UseZGC", - "-XX:+ZGenerational", "-Xms" + XmsInM + "M", "-Xmx" + XmxInM + "M", "-Xlog:gc,gc+init", diff --git a/test/hotspot/jtreg/gc/z/TestZNMT.java b/test/hotspot/jtreg/gc/z/TestZNMT.java index 889cc77b0e4..b536f3eab8e 100644 --- a/test/hotspot/jtreg/gc/z/TestZNMT.java +++ b/test/hotspot/jtreg/gc/z/TestZNMT.java @@ -26,8 +26,8 @@ /** * @test TestZNMT * @bug 8310743 - * @requires vm.gc.ZGenerational & vm.debug - * @summary Test NMT and ZGenerational heap reservation / commits interactions. + * @requires vm.gc.Z & vm.debug + * @summary Test NMT and ZGC heap reservation / commits interactions. * @library / /test/lib * @run driver gc.z.TestZNMT */ @@ -70,7 +70,6 @@ private static void testValue(int zForceDiscontiguousHeapReservations) throws Ex final int XmsInM = Math.min(16 * XmxInM / (zForceDiscontiguousHeapReservations + 1), XmxInM); OutputAnalyzer oa = ProcessTools.executeTestJava( "-XX:+UseZGC", - "-XX:+ZGenerational", "-Xms" + XmsInM + "M", "-Xmx" + XmxInM + "M", "-Xlog:gc,gc+init", diff --git a/test/hotspot/jtreg/runtime/CommandLine/VMDeprecatedOptions.java b/test/hotspot/jtreg/runtime/CommandLine/VMDeprecatedOptions.java index 96bc22dfb1d..0ecfbe2c8db 100644 --- a/test/hotspot/jtreg/runtime/CommandLine/VMDeprecatedOptions.java +++ b/test/hotspot/jtreg/runtime/CommandLine/VMDeprecatedOptions.java @@ -57,7 +57,6 @@ public class VMDeprecatedOptions { Arrays.asList(new String[][] { // deprecated non-alias flags: {"AllowRedefinitionToAddDeleteMethods", "true"}, - {"ZGenerational", "false"}, {"LockingMode", "1"}, // deprecated alias flags (see also aliased_jvm_flags): diff --git a/test/hotspot/jtreg/runtime/cds/appcds/TestEpsilonGCWithCDS.java b/test/hotspot/jtreg/runtime/cds/appcds/TestEpsilonGCWithCDS.java index fe7c5a4ae31..132f63ba850 100644 --- a/test/hotspot/jtreg/runtime/cds/appcds/TestEpsilonGCWithCDS.java +++ b/test/hotspot/jtreg/runtime/cds/appcds/TestEpsilonGCWithCDS.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -37,16 +37,41 @@ * @run driver TestEpsilonGCWithCDS */ +// Below is exactly the same as above, except: +// - requires vm.bits == "64" +// - extra argument "false" + +/* + * @test Loading CDS archived heap objects into EpsilonGC + * @bug 8234679 8341371 + * @requires vm.cds + * @requires vm.gc.Epsilon + * @requires vm.gc.G1 + * @requires vm.bits == "64" + * + * @comment don't run this test if any -XX::+Use???GC options are specified, since they will + * interfere with the test. + * @requires vm.gc == null + * + * @library /test/lib /test/hotspot/jtreg/runtime/cds/appcds + * @compile test-classes/Hello.java + * @run driver TestEpsilonGCWithCDS false + */ import jdk.test.lib.Platform; import jdk.test.lib.process.OutputAnalyzer; public class TestEpsilonGCWithCDS { public final static String HELLO = "Hello World"; static String helloJar; + static boolean useCompressedOops = true; public static void main(String... args) throws Exception { helloJar = JarBuilder.build("hello", "Hello"); + if (args.length > 0 && args[0].equals("false")) { + useCompressedOops = false; + } + // Check if we can use EpsilonGC during dump time, or run time, or both. test(false, true); test(true, false); @@ -70,6 +95,8 @@ static void test(boolean dumpWithEpsilon, boolean execWithEpsilon, boolean useSm String execGC = execWithEpsilon ? Epsilon : G1; String small1 = useSmallRegions ? "-Xmx256m" : "-showversion"; String small2 = useSmallRegions ? "-XX:ObjectAlignmentInBytes=64" : "-showversion"; + String errMsg = "Cannot use CDS heap data. Selected GC not compatible -XX:-UseCompressedOops"; + String coops = useCompressedOops ? "-XX:+UseCompressedOops" : "-XX:-UseCompressedOops"; OutputAnalyzer out; System.out.println("0. Dump with " + dumpGC); @@ -79,6 +106,7 @@ static void test(boolean dumpWithEpsilon, boolean execWithEpsilon, boolean useSm dumpGC, small1, small2, + coops, "-Xlog:cds"); out.shouldContain("Dumping shared data to file:"); out.shouldHaveExitValue(0); @@ -89,9 +117,11 @@ static void test(boolean dumpWithEpsilon, boolean execWithEpsilon, boolean useSm execGC, small1, small2, + coops, "-Xlog:cds", "Hello"); out.shouldContain(HELLO); + out.shouldNotContain(errMsg); out.shouldHaveExitValue(0); } } diff --git a/test/hotspot/jtreg/runtime/cds/appcds/TestParallelGCWithCDS.java b/test/hotspot/jtreg/runtime/cds/appcds/TestParallelGCWithCDS.java index 691c87fef36..705df07f841 100644 --- a/test/hotspot/jtreg/runtime/cds/appcds/TestParallelGCWithCDS.java +++ b/test/hotspot/jtreg/runtime/cds/appcds/TestParallelGCWithCDS.java @@ -37,16 +37,41 @@ * @run driver TestParallelGCWithCDS */ +// Below is exactly the same as above, except: +// - requires vm.bits == "64" +// - extra argument "false" + + /* + * @test Loading CDS archived heap objects into ParallelGC + * @bug 8274788 8341371 + * @requires vm.cds + * @requires vm.gc.Parallel + * @requires vm.gc.G1 + * @requires vm.bits == "64" + * + * @comment don't run this test if any -XX::+Use???GC options are specified, since they will + * interfere with the test. + * @requires vm.gc == null + * + * @library /test/lib /test/hotspot/jtreg/runtime/cds/appcds + * @compile test-classes/Hello.java + * @run driver TestParallelGCWithCDS false + */ import jdk.test.lib.Platform; import jdk.test.lib.process.OutputAnalyzer; public class TestParallelGCWithCDS { public final static String HELLO = "Hello World"; static String helloJar; + static boolean useCompressedOops = true; public static void main(String... args) throws Exception { helloJar = JarBuilder.build("hello", "Hello"); + if (args.length > 0 && args[0].equals("false")) { + useCompressedOops = false; + } + // Check if we can use ParallelGC during dump time, or run time, or both. test(false, true); test(true, false); @@ -69,6 +94,8 @@ static void test(boolean dumpWithParallel, boolean execWithParallel, boolean use String execGC = execWithParallel ? Parallel : G1; String small1 = useSmallRegions ? "-Xmx256m" : "-showversion"; String small2 = useSmallRegions ? "-XX:ObjectAlignmentInBytes=64" : "-showversion"; + String errMsg = "Cannot use CDS heap data. Selected GC not compatible -XX:-UseCompressedOops"; + String coops = useCompressedOops ? "-XX:+UseCompressedOops" : "-XX:-UseCompressedOops"; OutputAnalyzer out; System.out.println("0. Dump with " + dumpGC); @@ -77,6 +104,7 @@ static void test(boolean dumpWithParallel, boolean execWithParallel, boolean use dumpGC, small1, small2, + coops, "-Xlog:cds"); out.shouldContain("Dumping shared data to file:"); out.shouldHaveExitValue(0); @@ -86,9 +114,11 @@ static void test(boolean dumpWithParallel, boolean execWithParallel, boolean use execGC, small1, small2, + coops, "-Xlog:cds", "Hello"); out.shouldContain(HELLO); + out.shouldNotContain(errMsg); out.shouldHaveExitValue(0); int n = 2; @@ -109,10 +139,12 @@ static void test(boolean dumpWithParallel, boolean execWithParallel, boolean use small1, small2, xmx, + coops, "-Xlog:cds", "Hello"); if (out.getExitValue() == 0) { out.shouldContain(HELLO); + out.shouldNotContain(errMsg); } else { String pattern = "((Too small maximum heap)" + "|(GC triggered before VM initialization completed)" + diff --git a/test/hotspot/jtreg/runtime/cds/appcds/TestSerialGCWithCDS.java b/test/hotspot/jtreg/runtime/cds/appcds/TestSerialGCWithCDS.java index 8c8cb4d932a..b191b5f395b 100644 --- a/test/hotspot/jtreg/runtime/cds/appcds/TestSerialGCWithCDS.java +++ b/test/hotspot/jtreg/runtime/cds/appcds/TestSerialGCWithCDS.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -98,6 +98,7 @@ static void test(boolean dumpWithSerial, boolean execWithSerial, boolean useSmal String execGC = execWithSerial ? Serial : G1; String small1 = useSmallRegions ? "-Xmx256m" : DUMMY; String small2 = useSmallRegions ? "-XX:ObjectAlignmentInBytes=64" : DUMMY; + String errMsg = "Cannot use CDS heap data. Selected GC not compatible -XX:-UseCompressedOops"; String coops; if (Platform.is64bit()) { coops = useCompressedOops ? "-XX:+UseCompressedOops" : "-XX:-UseCompressedOops"; @@ -125,7 +126,7 @@ static void test(boolean dumpWithSerial, boolean execWithSerial, boolean useSmal coops, "-Xlog:cds", "Hello"); - checkExecOutput(dumpWithSerial, execWithSerial, out); + out.shouldNotContain(errMsg); System.out.println("2. Exec with " + execGC + " and test ArchiveRelocationMode"); out = TestCommon.exec(helloJar, @@ -136,7 +137,7 @@ static void test(boolean dumpWithSerial, boolean execWithSerial, boolean useSmal "-Xlog:cds,cds+heap", "-XX:ArchiveRelocationMode=1", // always relocate shared metadata "Hello"); - checkExecOutput(dumpWithSerial, execWithSerial, out); + out.shouldNotContain(errMsg); int n = 2; if (dumpWithSerial == false && execWithSerial == true) { @@ -160,7 +161,7 @@ static void test(boolean dumpWithSerial, boolean execWithSerial, boolean useSmal "-Xlog:cds", "Hello"); if (out.getExitValue() == 0) { - checkExecOutput(dumpWithSerial, execWithSerial, out); + out.shouldNotContain(errMsg); } else { String output = out.getStdout() + out.getStderr(); String exp1 = "Too small maximum heap"; @@ -173,19 +174,4 @@ static void test(boolean dumpWithSerial, boolean execWithSerial, boolean useSmal } } } - - static void checkExecOutput(boolean dumpWithSerial, boolean execWithSerial, OutputAnalyzer out) { - String errMsg = "Cannot use CDS heap data. UseG1GC is required for -XX:-UseCompressedOops"; - if (Platform.is64bit() && - !Platform.isWindows() && // archive heap not supported on Windows. - !dumpWithSerial && // Dumped with G1, so we have an archived heap - execWithSerial && // Running with serial - !useCompressedOops) { // ArchiveHeapLoader::can_load() always returns false when COOP is disabled - out.shouldContain(errMsg); - } - if (!execWithSerial) { - // We should never see this message with G1 - out.shouldNotContain(errMsg); - } - } } diff --git a/test/hotspot/jtreg/runtime/cds/appcds/TestShenandoahWithCDS.java b/test/hotspot/jtreg/runtime/cds/appcds/TestShenandoahWithCDS.java index 83442c1e159..d8bbfee504b 100644 --- a/test/hotspot/jtreg/runtime/cds/appcds/TestShenandoahWithCDS.java +++ b/test/hotspot/jtreg/runtime/cds/appcds/TestShenandoahWithCDS.java @@ -35,16 +35,38 @@ * @run driver TestShenandoahWithCDS */ +// Below is exactly the same as above, except: +// - requires vm.bits == "64" +// - extra argument "false" + +/* + * @test + * @bug 8293650 8341371 + * @requires vm.cds + * @requires vm.bits == 64 + * @requires vm.gc.Shenandoah + * @requires vm.gc.G1 + * @requires vm.gc == null + * @library /test/lib /test/hotspot/jtreg/runtime/cds/appcds + * @compile test-classes/Hello.java + * @run driver TestShenandoahWithCDS false + */ + import jdk.test.lib.Platform; import jdk.test.lib.process.OutputAnalyzer; public class TestShenandoahWithCDS { public final static String HELLO = "Hello World"; static String helloJar; + static boolean useCompressedOops = true; public static void main(String... args) throws Exception { helloJar = JarBuilder.build("hello", "Hello"); + if (args.length > 0 && args[0].equals("false")) { + useCompressedOops = false; + } + // Run with the variety of region sizes, and combinations // of G1/Shenandoah at dump/exec times. "-1" means to use G1. final int[] regionSizes = { -1, 256, 512, 1024, 2048 }; @@ -62,6 +84,8 @@ static void test(int dumpRegionSize, int execRegionSize) throws Exception { String optExecGC = (execRegionSize != -1) ? "-XX:+UseShenandoahGC" : "-XX:+UseG1GC"; String optDumpRegionSize = (dumpRegionSize != -1) ? "-XX:ShenandoahRegionSize=" + dumpRegionSize + "K" : exp; String optExecRegionSize = (execRegionSize != -1) ? "-XX:ShenandoahRegionSize=" + execRegionSize + "K" : exp; + String errMsg = "Cannot use CDS heap data. Selected GC not compatible -XX:-UseCompressedOops"; + String coops = useCompressedOops ? "-XX:+UseCompressedOops" : "-XX:-UseCompressedOops"; OutputAnalyzer out; System.out.println("0. Dump with " + optDumpGC + " and " + optDumpRegionSize); @@ -71,6 +95,7 @@ static void test(int dumpRegionSize, int execRegionSize) throws Exception { "-Xmx1g", optDumpGC, optDumpRegionSize, + coops, "-Xlog:cds"); out.shouldContain("Dumping shared data to file:"); out.shouldHaveExitValue(0); @@ -81,9 +106,11 @@ static void test(int dumpRegionSize, int execRegionSize) throws Exception { "-Xmx1g", optExecGC, optExecRegionSize, + coops, "-Xlog:cds", "Hello"); out.shouldContain(HELLO); + out.shouldNotContain(errMsg); out.shouldHaveExitValue(0); } } diff --git a/test/hotspot/jtreg/runtime/cds/appcds/TestZGCWithCDS.java b/test/hotspot/jtreg/runtime/cds/appcds/TestZGCWithCDS.java index ea51b198f59..89fc346ffbb 100644 --- a/test/hotspot/jtreg/runtime/cds/appcds/TestZGCWithCDS.java +++ b/test/hotspot/jtreg/runtime/cds/appcds/TestZGCWithCDS.java @@ -22,29 +22,16 @@ */ /* - * @test id=ZSinglegen + * @test * @bug 8232069 * @requires vm.cds * @requires vm.bits == 64 - * @requires vm.gc.ZSinglegen + * @requires vm.gc.Z * @requires vm.gc.Serial * @requires vm.gc == null * @library /test/lib /test/hotspot/jtreg/runtime/cds/appcds * @compile test-classes/Hello.java - * @run driver TestZGCWithCDS -XX:-ZGenerational - */ - -/* - * @test id=ZGenerational - * @bug 8232069 - * @requires vm.cds - * @requires vm.bits == 64 - * @requires vm.gc.ZGenerational - * @requires vm.gc.Serial - * @requires vm.gc == null - * @library /test/lib /test/hotspot/jtreg/runtime/cds/appcds - * @compile test-classes/Hello.java - * @run driver TestZGCWithCDS -XX:+ZGenerational + * @run driver TestZGCWithCDS */ import jdk.test.lib.Platform; @@ -55,14 +42,12 @@ public class TestZGCWithCDS { public final static String UNABLE_TO_USE_ARCHIVE = "Unable to use shared archive."; public final static String ERR_MSG = "The saved state of UseCompressedOops and UseCompressedClassPointers is different from runtime, CDS will be disabled."; public static void main(String... args) throws Exception { - String zGenerational = args[0]; String helloJar = JarBuilder.build("hello", "Hello"); System.out.println("0. Dump with ZGC"); OutputAnalyzer out = TestCommon .dump(helloJar, new String[] {"Hello"}, "-XX:+UseZGC", - zGenerational, "-Xlog:cds"); out.shouldContain("Dumping shared data to file:"); out.shouldHaveExitValue(0); @@ -71,7 +56,6 @@ public static void main(String... args) throws Exception { out = TestCommon .exec(helloJar, "-XX:+UseZGC", - zGenerational, "-Xlog:cds", "Hello"); out.shouldContain(HELLO); @@ -151,7 +135,6 @@ public static void main(String... args) throws Exception { out = TestCommon .exec(helloJar, "-XX:+UseZGC", - zGenerational, "-Xlog:cds", "Hello"); out.shouldContain(HELLO); diff --git a/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/LambdaProxyCallerIsHidden.java b/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/LambdaProxyCallerIsHidden.java index 583f6cf55e2..0c8cad0b3a6 100644 --- a/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/LambdaProxyCallerIsHidden.java +++ b/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/LambdaProxyCallerIsHidden.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -37,7 +37,8 @@ * jdk/test/lib/compiler/InMemoryJavaCompiler * jdk/test/lib/compiler/InMemoryJavaCompiler$FileManagerWrapper$1 * jdk/test/lib/compiler/InMemoryJavaCompiler$FileManagerWrapper - * jdk/test/lib/compiler/InMemoryJavaCompiler$MemoryJavaFileObject + * jdk/test/lib/compiler/InMemoryJavaCompiler$SourceFile + * jdk/test/lib/compiler/InMemoryJavaCompiler$ClassFile * @run driver jdk.test.lib.helpers.ClassFileInstaller jdk.test.whitebox.WhiteBox * @run main/othervm -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -Xbootclasspath/a:. LambdaProxyCallerIsHidden */ diff --git a/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/RedefineCallerClassTest.java b/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/RedefineCallerClassTest.java index 3d681347969..90d403bc380 100644 --- a/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/RedefineCallerClassTest.java +++ b/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/RedefineCallerClassTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -52,7 +52,8 @@ public class RedefineCallerClassTest extends DynamicArchiveTestBase { "jdk/test/lib/compiler/InMemoryJavaCompiler", "jdk/test/lib/compiler/InMemoryJavaCompiler$FileManagerWrapper", "jdk/test/lib/compiler/InMemoryJavaCompiler$FileManagerWrapper$1", - "jdk/test/lib/compiler/InMemoryJavaCompiler$MemoryJavaFileObject" + "jdk/test/lib/compiler/InMemoryJavaCompiler$SourceFile", + "jdk/test/lib/compiler/InMemoryJavaCompiler$ClassFile" }; public static void main(String[] args) throws Exception { diff --git a/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/RegularHiddenClass.java b/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/RegularHiddenClass.java index 3ceec349f5d..957e4cb6479 100644 --- a/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/RegularHiddenClass.java +++ b/test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/RegularHiddenClass.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -35,7 +35,8 @@ * jdk/test/lib/compiler/InMemoryJavaCompiler * jdk/test/lib/compiler/InMemoryJavaCompiler$FileManagerWrapper$1 * jdk/test/lib/compiler/InMemoryJavaCompiler$FileManagerWrapper - * jdk/test/lib/compiler/InMemoryJavaCompiler$MemoryJavaFileObject + * jdk/test/lib/compiler/InMemoryJavaCompiler$SourceFile + * jdk/test/lib/compiler/InMemoryJavaCompiler$ClassFile * @run driver jdk.test.lib.helpers.ClassFileInstaller jdk.test.whitebox.WhiteBox * @run main/othervm -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -Xbootclasspath/a:. RegularHiddenClass */ diff --git a/test/hotspot/jtreg/runtime/cds/appcds/loaderConstraints/DynamicLoaderConstraintsTest.java b/test/hotspot/jtreg/runtime/cds/appcds/loaderConstraints/DynamicLoaderConstraintsTest.java index 6de08da4673..004cc7bb5db 100644 --- a/test/hotspot/jtreg/runtime/cds/appcds/loaderConstraints/DynamicLoaderConstraintsTest.java +++ b/test/hotspot/jtreg/runtime/cds/appcds/loaderConstraints/DynamicLoaderConstraintsTest.java @@ -53,9 +53,9 @@ */ /** - * @test id=custom-cl-zgc-singlegen + * @test id=custom-cl-zgc * @requires vm.cds.custom.loaders - * @requires vm.gc.ZSinglegen + * @requires vm.gc.Z * @summary Test dumptime_table entries are removed with zgc eager class unloading * @bug 8274935 * @library /test/lib @@ -69,23 +69,6 @@ * @run main/othervm/timeout=180 -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -Xbootclasspath/a:. DynamicLoaderConstraintsTest custom-zgc */ -/** - * @test id=custom-cl-zgc-generational - * @requires vm.cds.custom.loaders - * @requires vm.gc.ZGenerational - * @summary Test dumptime_table entries are removed with zgc eager class unloading - * @bug 8274935 - * @library /test/lib - * /test/hotspot/jtreg/runtime/cds/appcds - * /test/hotspot/jtreg/runtime/cds/appcds/test-classes - * /test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive - * @modules java.base/jdk.internal.misc - * jdk.httpserver - * @build jdk.test.whitebox.WhiteBox - * @run driver jdk.test.lib.helpers.ClassFileInstaller jdk.test.whitebox.WhiteBox - * @run main/othervm/timeout=180 -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -Xbootclasspath/a:. DynamicLoaderConstraintsTest custom-zgc-generational - */ - import com.sun.net.httpserver.HttpExchange; import com.sun.net.httpserver.HttpHandler; import jdk.test.lib.Asserts; @@ -118,12 +101,10 @@ public class DynamicLoaderConstraintsTest extends DynamicArchiveTestBase { */ static boolean useCustomLoader; static boolean useZGC; - static boolean useZGenerational; public static void main(String[] args) throws Exception { useCustomLoader = (args.length != 0); - useZGenerational = (args.length != 0 && args[0].equals("custom-zgc-generational")); - useZGC = useZGenerational || (args.length != 0 && args[0].equals("custom-zgc")); + useZGC = (args.length != 0 && args[0].equals("custom-zgc")); runTest(DynamicLoaderConstraintsTest::doTest); } @@ -150,7 +131,7 @@ static void doTest(boolean errorInDump) throws Exception { for (int i = 1; i <= 3; i++) { System.out.println("========================================"); System.out.println("errorInDump: " + errorInDump + ", useCustomLoader: " + useCustomLoader + - ", useZGC: " + useZGC + ", ZGenerational: " + useZGenerational + ", case: " + i); + ", useZGC: " + useZGC + ", case: " + i); System.out.println("========================================"); String topArchiveName = getNewArchiveName(); String testCase = Integer.toString(i); @@ -164,10 +145,9 @@ static void doTest(boolean errorInDump) throws Exception { if (useCustomLoader) { if (useZGC) { - String zGenerational = "-XX:" + (useZGenerational ? "+" : "-") + "ZGenerational"; // Add options to force eager class unloading. cmdLine = TestCommon.concat(cmdLine, "-cp", loaderJar, - "-XX:+UseZGC", zGenerational, "-XX:ZCollectionInterval=0.01", + "-XX:+UseZGC", "-XX:ZCollectionInterval=0.01", loaderMainClass, appJar); setBaseArchiveOptions("-XX:+UseZGC", "-Xlog:cds"); } else { diff --git a/test/hotspot/jtreg/runtime/cds/appcds/redefineClass/RedefineBasicTest.java b/test/hotspot/jtreg/runtime/cds/appcds/redefineClass/RedefineBasicTest.java index 81d6e20321e..acbd0c948be 100644 --- a/test/hotspot/jtreg/runtime/cds/appcds/redefineClass/RedefineBasicTest.java +++ b/test/hotspot/jtreg/runtime/cds/appcds/redefineClass/RedefineBasicTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -47,7 +47,8 @@ public class RedefineBasicTest { "jdk/test/lib/compiler/InMemoryJavaCompiler", "jdk/test/lib/compiler/InMemoryJavaCompiler$FileManagerWrapper", "jdk/test/lib/compiler/InMemoryJavaCompiler$FileManagerWrapper$1", - "jdk/test/lib/compiler/InMemoryJavaCompiler$MemoryJavaFileObject" + "jdk/test/lib/compiler/InMemoryJavaCompiler$SourceFile", + "jdk/test/lib/compiler/InMemoryJavaCompiler$ClassFile" }; public static void main(String[] args) throws Exception { diff --git a/test/hotspot/jtreg/runtime/cds/appcds/redefineClass/RedefineRunningMethods_Shared.java b/test/hotspot/jtreg/runtime/cds/appcds/redefineClass/RedefineRunningMethods_Shared.java index d8459359604..039aaef11cd 100644 --- a/test/hotspot/jtreg/runtime/cds/appcds/redefineClass/RedefineRunningMethods_Shared.java +++ b/test/hotspot/jtreg/runtime/cds/appcds/redefineClass/RedefineRunningMethods_Shared.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -48,7 +48,8 @@ public class RedefineRunningMethods_Shared { "jdk/test/lib/compiler/InMemoryJavaCompiler", "jdk/test/lib/compiler/InMemoryJavaCompiler$FileManagerWrapper", "jdk/test/lib/compiler/InMemoryJavaCompiler$FileManagerWrapper$1", - "jdk/test/lib/compiler/InMemoryJavaCompiler$MemoryJavaFileObject" + "jdk/test/lib/compiler/InMemoryJavaCompiler$SourceFile", + "jdk/test/lib/compiler/InMemoryJavaCompiler$ClassFile" }; public static void main(String[] args) throws Exception { diff --git a/test/hotspot/jtreg/runtime/cds/appcds/sharedStrings/IncompatibleOptions.java b/test/hotspot/jtreg/runtime/cds/appcds/sharedStrings/IncompatibleOptions.java index 2ad257476d0..36914b7de25 100644 --- a/test/hotspot/jtreg/runtime/cds/appcds/sharedStrings/IncompatibleOptions.java +++ b/test/hotspot/jtreg/runtime/cds/appcds/sharedStrings/IncompatibleOptions.java @@ -108,9 +108,12 @@ public static void test(String[] args_ignored) throws Exception { testDump(1, "-XX:+UseZGC", "-XX:-UseCompressedOops", null, false); } - // Dump heap objects with ParallelGC and SerialGC + // Dump heap objects with Parallel, Serial, Shenandoah GC testDump(2, "-XX:+UseParallelGC", "", "", false); testDump(3, "-XX:+UseSerialGC", "", "", false); + if (GC.Shenandoah.isSupported()) { + testDump(4, "-XX:+UseShenandoahGC", "", "", false); + } // Explicitly archive with compressed oops, run without. testDump(5, "-XX:+UseG1GC", "-XX:+UseCompressedOops", null, false); diff --git a/test/hotspot/jtreg/serviceability/attach/AttachAPIv2/CompatTest.java b/test/hotspot/jtreg/serviceability/attach/AttachAPIv2/CompatTest.java new file mode 100644 index 00000000000..444b87bb6ea --- /dev/null +++ b/test/hotspot/jtreg/serviceability/attach/AttachAPIv2/CompatTest.java @@ -0,0 +1,104 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @summary Basic compatibility test for Attach API v2 + * @bug 8219896 + * @library /test/lib + * @modules jdk.attach/sun.tools.attach + * + * @run main/othervm -Xlog:attach=trace CompatTest + * @run main/othervm -Xlog:attach=trace -Djdk.attach.compat=true CompatTest + */ + +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.io.IOException; + +import com.sun.tools.attach.VirtualMachine; +import sun.tools.attach.HotSpotVirtualMachine; + +import jdk.test.lib.apps.LingeredApp; + +public class CompatTest { + + public static void main(String[] args) throws Exception { + // if the test (client part) in the "compat" mode + boolean clientCompat = "true".equals(System.getProperty("jdk.attach.compat")); + System.out.println("Client is in compat mode: " + clientCompat); + LingeredApp app = null; + try { + app = LingeredApp.startApp("-Xlog:attach=trace"); + test(app, clientCompat); + } finally { + LingeredApp.stopApp(app); + } + + try { + app = LingeredApp.startApp("-Xlog:attach=trace", "-Djdk.attach.compat=true"); + // target VM in "compat" mode, always expect failure + test(app, true); + } finally { + LingeredApp.stopApp(app); + } + + } + + // The test uses HotSpotVirtualMachine.setFlag method with long flag value. + // For attach API v1 an exception is expected to be thrown (argument cannot be longer than 1024 characters). + private static String flagName = "HeapDumpPath"; + // long for v1 + private static String flagValue = "X" + "A".repeat(1024) + "X"; + + private static void test(LingeredApp app, boolean expectFailure) throws Exception { + System.out.println("======== Start ========"); + + HotSpotVirtualMachine vm = (HotSpotVirtualMachine)VirtualMachine.attach(String.valueOf(app.getPid())); + + BufferedReader replyReader = null; + try { + replyReader = new BufferedReader(new InputStreamReader( + vm.setFlag(flagName, flagValue))); + + if (expectFailure) { + throw new RuntimeException("No expected exception is thrown"); + } + + String line; + while ((line = replyReader.readLine()) != null) { + System.out.println("setFlag reply: " + line); + } + replyReader.close(); + + } catch (IOException ex) { + System.out.println("OK: setFlag thrown expected exception:"); + ex.printStackTrace(System.out); + } finally { + vm.detach(); + } + + System.out.println("======== End ========"); + System.out.println(); + } +} diff --git a/test/hotspot/jtreg/serviceability/dcmd/gc/HeapDumpCompressedTest.java b/test/hotspot/jtreg/serviceability/dcmd/gc/HeapDumpCompressedTest.java index 1e6d99a5048..3a960cc8c7d 100644 --- a/test/hotspot/jtreg/serviceability/dcmd/gc/HeapDumpCompressedTest.java +++ b/test/hotspot/jtreg/serviceability/dcmd/gc/HeapDumpCompressedTest.java @@ -71,27 +71,15 @@ */ /* - * @test id=ZSinglegen - * @requires vm.gc.ZSinglegen + * @test id=Z + * @requires vm.gc.Z * @summary Test of diagnostic command GC.heap_dump with gzipped output (Z GC) * @library /test/lib * @modules java.base/jdk.internal.misc * java.compiler * java.management * jdk.internal.jvmstat/sun.jvmstat.monitor - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational HeapDumpCompressedTest - */ - -/* - * @test id=ZGenerational - * @requires vm.gc.ZGenerational - * @summary Test of diagnostic command GC.heap_dump with gzipped output (Z GC) - * @library /test/lib - * @modules java.base/jdk.internal.misc - * java.compiler - * java.management - * jdk.internal.jvmstat/sun.jvmstat.monitor - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational HeapDumpCompressedTest + * @run main/othervm -XX:+UseZGC HeapDumpCompressedTest */ /* diff --git a/test/hotspot/jtreg/serviceability/jvmti/events/NotifyFramePopStressTest/NotifyFramePopStressTest.java b/test/hotspot/jtreg/serviceability/jvmti/events/NotifyFramePopStressTest/NotifyFramePopStressTest.java index 9840c9d6367..8240d943cd4 100644 --- a/test/hotspot/jtreg/serviceability/jvmti/events/NotifyFramePopStressTest/NotifyFramePopStressTest.java +++ b/test/hotspot/jtreg/serviceability/jvmti/events/NotifyFramePopStressTest/NotifyFramePopStressTest.java @@ -78,6 +78,13 @@ private static void control(Thread thread) { log("control has started"); while (!done) { suspend(thread); + if (done) { + // Double check after suspending the thread. We don't want to do the notify + // if the main thread thinks it is done. An untimely notify during the + // join() call will result in a deadlock. + resume(thread); + break; + } if (notifyFramePop(thread)) { notifyCount++; log("control incremented notifyCount to " + notifyCount); diff --git a/test/hotspot/jtreg/serviceability/jvmti/thread/GetFrameCount/framecnt01/framecnt01.java b/test/hotspot/jtreg/serviceability/jvmti/thread/GetFrameCount/framecnt01/framecnt01.java index 8a7177ec25d..221363f5621 100644 --- a/test/hotspot/jtreg/serviceability/jvmti/thread/GetFrameCount/framecnt01/framecnt01.java +++ b/test/hotspot/jtreg/serviceability/jvmti/thread/GetFrameCount/framecnt01/framecnt01.java @@ -79,7 +79,7 @@ public static void main(String args[]) throws Exception { } // this is too fragile, implementation can change at any time. - checkFrames(vThread1, false, 13); + checkFrames(vThread1, false, 11); LockSupport.unpark(vThread1); vThread1.join(); diff --git a/test/hotspot/jtreg/gc/x/TestDeprecated.java b/test/hotspot/jtreg/serviceability/jvmti/vthread/CheckHiddenFrames/CheckHiddenFrames.java similarity index 58% rename from test/hotspot/jtreg/gc/x/TestDeprecated.java rename to test/hotspot/jtreg/serviceability/jvmti/vthread/CheckHiddenFrames/CheckHiddenFrames.java index 39b0318d52b..1b6d409e30b 100644 --- a/test/hotspot/jtreg/gc/x/TestDeprecated.java +++ b/test/hotspot/jtreg/serviceability/jvmti/vthread/CheckHiddenFrames/CheckHiddenFrames.java @@ -21,30 +21,36 @@ * questions. */ -package gc.x; - /* - * @test TestDeprecated - * @requires vm.gc.ZSinglegen - * @summary Test ZGenerational Deprecated - * @library /test/lib - * @run driver gc.x.TestDeprecated + * @test + * @bug 8341273 + * @summary Verifies JVMTI properly hides frames which are in VTMS transition + * @run main/othervm/native -agentlib:CheckHiddenFrames CheckHiddenFrames */ -import java.util.LinkedList; -import jdk.test.lib.process.ProcessTools; +public class CheckHiddenFrames { + static native boolean checkHidden(Thread t); -public class TestDeprecated { - static class Test { - public static void main(String[] args) throws Exception {} + static void sleep(long millis) { + try { + Thread.sleep(millis); + } catch (InterruptedException e) { + } } + public static void main(String[] args) throws Exception { - ProcessTools.executeLimitedTestJava("-XX:+UseZGC", - "-XX:-ZGenerational", - "-Xlog:gc+init", - Test.class.getName()) - .shouldContain("Option ZGenerational was deprecated") - .shouldContain("Using deprecated non-generational mode") - .shouldHaveExitValue(0); + Thread thread = Thread.startVirtualThread(CheckHiddenFrames::test); + System.out.println("Started virtual thread: " + thread); + + if (!checkHidden(thread)) { + thread.interrupt(); + throw new RuntimeException("CheckHiddenFrames failed!"); + } + thread.interrupt(); + thread.join(); + } + + static void test() { + sleep(1000000); } } diff --git a/test/hotspot/jtreg/serviceability/jvmti/vthread/CheckHiddenFrames/libCheckHiddenFrames.cpp b/test/hotspot/jtreg/serviceability/jvmti/vthread/CheckHiddenFrames/libCheckHiddenFrames.cpp new file mode 100644 index 00000000000..50f930b5731 --- /dev/null +++ b/test/hotspot/jtreg/serviceability/jvmti/vthread/CheckHiddenFrames/libCheckHiddenFrames.cpp @@ -0,0 +1,123 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +#include +#include "jvmti.h" +#include "jvmti_common.hpp" + +extern "C" { + +const int MAX_COUNT = 50; +static jvmtiEnv *jvmti = nullptr; + +static char* +get_frame_method_name(jvmtiEnv *jvmti, JNIEnv* jni, jthread thread, jint depth) { + jmethodID method = nullptr; + jlocation location = 0; + + jvmtiError err = jvmti->GetFrameLocation(thread, 0, &method, &location); + check_jvmti_status(jni, err, "get_method_name_at_depth: error in JVMTI GetFrameLocation"); + + return get_method_name(jvmti, jni, method); +} + +static bool +method_must_be_hidden(char* mname) { + return strcmp(mname, "yield") == 0 || + strcmp(mname, "yield0") == 0; +} + +static jboolean +check_top_frames_location(jvmtiEnv *jvmti, JNIEnv* jni, jthread thread) { + jboolean status = JNI_TRUE; + + for (int depth = 0; depth < 2; depth++) { + char* mname = get_frame_method_name(jvmti, jni, thread, depth); + + if (method_must_be_hidden(mname)) { + LOG("Failed: GetFrameLocation returned info for frame expected to be hidden: frame[%d]=%s\n", depth, mname); + status = JNI_FALSE; + } + deallocate(jvmti, jni, mname); + } + return status; +} + +static jboolean +check_top_frames_in_stack_trace(jvmtiEnv *jvmti, JNIEnv* jni, jthread thread) { + jboolean status = JNI_TRUE; + jvmtiFrameInfo frameInfo[MAX_COUNT]; + jint count1 = 0; + jint count2 = 0; + + jvmtiError err = jvmti->GetStackTrace(thread, 0, MAX_COUNT, frameInfo, &count1); + check_jvmti_status(jni, err, "check_top_frames_in_stack_trace: error in JVMTI GetStackTrace"); + + for (int depth = 0; depth < 2; depth++) { + char* mname = get_method_name(jvmti, jni, frameInfo[depth].method); + + if (method_must_be_hidden(mname)) { + LOG("Failed: GetStackTrace returned info for frame expected to be hidden: frame[%d]=%s\n", depth, mname); + status = JNI_FALSE; + } + deallocate(jvmti, jni, mname); + } + + err = jvmti->GetFrameCount(thread, &count2); + check_jvmti_status(jni, err, "check_top_frames_in_stack_trace: error in JVMTI GetFrameCount"); + + if (count1 != count2) { + LOG("Failed: frame counts returned by GetStackTrace and GetFrameCount do not match: %d!=%d\n", count1, count2); + status = JNI_FALSE; + } + return status; +} + +JNIEXPORT jboolean JNICALL +Java_CheckHiddenFrames_checkHidden(JNIEnv *jni, jclass clazz, jthread thread) { + jboolean status = JNI_TRUE; + + wait_for_state(jvmti, jni, thread, JVMTI_THREAD_STATE_WAITING_WITH_TIMEOUT); + print_stack_trace(jvmti, jni, thread); + + + if (!check_top_frames_location(jvmti, jni, thread)) { + status = JNI_FALSE; + } + if (!check_top_frames_in_stack_trace(jvmti, jni, thread)) { + status = JNI_FALSE; + } + return status; +} + +extern JNIEXPORT jint JNICALL +Agent_OnLoad(JavaVM *jvm, char *options, void *reserved) { + LOG("Agent_OnLoad started\n"); + if (jvm->GetEnv((void **)(&jvmti), JVMTI_VERSION) != JNI_OK) { + return JNI_ERR; + } + LOG("Agent_OnLoad finished\n"); + return JNI_OK; +} + +} // extern "C" diff --git a/test/hotspot/jtreg/testlibrary_tests/ir_framework/examples/GCBarrierIRExample.java b/test/hotspot/jtreg/testlibrary_tests/ir_framework/examples/GCBarrierIRExample.java index e0287fc39fe..11db83a1b31 100644 --- a/test/hotspot/jtreg/testlibrary_tests/ir_framework/examples/GCBarrierIRExample.java +++ b/test/hotspot/jtreg/testlibrary_tests/ir_framework/examples/GCBarrierIRExample.java @@ -33,7 +33,7 @@ * @summary Example test that illustrates the use of the IR test framework for * verification of late-expanded GC barriers. * @library /test/lib / - * @requires vm.gc.ZGenerational + * @requires vm.gc.Z * @run driver ir_framework.examples.GCBarrierIRExample */ @@ -61,7 +61,7 @@ public static void main(String[] args) { // emission, such as ZGC. Because the collector selection flags are not // whitelisted (see IR framework's README.md file), the user (as opposed // to jtreg) needs to set these flags here. - TestFramework.runWithFlags("-XX:+UseZGC", "-XX:+ZGenerational"); + TestFramework.runWithFlags("-XX:+UseZGC"); } @Test diff --git a/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/bytecode/BytecodeGeneratorFactory.java b/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/bytecode/BytecodeGeneratorFactory.java index cad856f553e..73f74794394 100644 --- a/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/bytecode/BytecodeGeneratorFactory.java +++ b/test/hotspot/jtreg/vmTestbase/gc/g1/unloading/bytecode/BytecodeGeneratorFactory.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -26,7 +26,7 @@ import java.util.Map; import java.util.Random; -import vm.share.InMemoryJavaCompiler; +import jdk.test.lib.compiler.InMemoryJavaCompiler; /** * BytecodeFactory that employs in memory compilation. @@ -44,12 +44,10 @@ public BytecodeGeneratorFactory(long seed) { @Override public Bytecode createBytecode(String className) { - Map sources = new HashMap(); - sources.put(className, sourceGenerator.generateSource(className, + byte[] bytecode = InMemoryJavaCompiler.compile(className, sourceGenerator.generateSource(className, "public static void main() { System.out.println(\"From main method in in-mem-compiled code " + random.nextGaussian() + " + str_bytesToReplace0 str_bytesToReplace1\"); }\n " + "public static int methodForCompilation(Object object) { int i = object.hashCode(); i = i * 2000 / 1994 + 153; return i; }\n")); - byte[] bytecode = InMemoryJavaCompiler.compile(sources).values().iterator().next(); return new Bytecode(className, bytecode); } diff --git a/test/hotspot/jtreg/vmTestbase/metaspace/staticReferences/StaticReferences.java b/test/hotspot/jtreg/vmTestbase/metaspace/staticReferences/StaticReferences.java index ce0dd65c7ee..7ea901abe06 100644 --- a/test/hotspot/jtreg/vmTestbase/metaspace/staticReferences/StaticReferences.java +++ b/test/hotspot/jtreg/vmTestbase/metaspace/staticReferences/StaticReferences.java @@ -60,7 +60,7 @@ import nsk.share.test.Stresser; import nsk.share.test.TestBase; import nsk.share.test.Tests; -import vm.share.InMemoryJavaCompiler; +import jdk.test.lib.compiler.InMemoryJavaCompiler; /** * Test checks that static fields will be initialized in new loaded class. Test performs in loop the following routine: @@ -210,9 +210,7 @@ private void checkStaticFields(Class clazz) { } private byte[] generateAndCompile(int[] fieldQuantities) { - Map sources = new HashMap(); - sources.put("A", generateSource(fieldQuantities)); - return InMemoryJavaCompiler.compile(sources).values().iterator().next(); + return InMemoryJavaCompiler.compile("A", generateSource(fieldQuantities)); } private StringBuffer generateSource(int[] fieldQuantities) { diff --git a/test/hotspot/jtreg/vmTestbase/metaspace/stressDictionary/StressDictionary.java b/test/hotspot/jtreg/vmTestbase/metaspace/stressDictionary/StressDictionary.java index b4c44a9a059..0db2d24fa8f 100644 --- a/test/hotspot/jtreg/vmTestbase/metaspace/stressDictionary/StressDictionary.java +++ b/test/hotspot/jtreg/vmTestbase/metaspace/stressDictionary/StressDictionary.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -43,7 +43,7 @@ import nsk.share.gc.GCTestBase; import nsk.share.test.*; -import vm.share.InMemoryJavaCompiler; +import jdk.test.lib.compiler.InMemoryJavaCompiler; /** * There is a data structure named "dictionary" in class BlockFreelist. It stores @@ -178,10 +178,8 @@ public void run() { } private byte[] generateAndCompile() { - Map sources = new HashMap(); String className = "MyClass" + classesCounter.incrementAndGet(); - sources.put(className, generateSource(className)); - return InMemoryJavaCompiler.compile(sources).values().iterator().next(); + return InMemoryJavaCompiler.compile(className, generateSource(className)); } private CharSequence generateSource(String className) { diff --git a/test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/common/generateHierarchy/GenerateHierarchyHelper.java b/test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/common/generateHierarchy/GenerateHierarchyHelper.java index daccf644393..be6f1ebe85f 100644 --- a/test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/common/generateHierarchy/GenerateHierarchyHelper.java +++ b/test/hotspot/jtreg/vmTestbase/metaspace/stressHierarchy/common/generateHierarchy/GenerateHierarchyHelper.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,7 +24,7 @@ import java.util.*; -import vm.share.InMemoryJavaCompiler; +import jdk.test.lib.compiler.InMemoryJavaCompiler; import jdk.test.lib.Utils; public class GenerateHierarchyHelper { diff --git a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetObjectMonitorUsage/objmonusage001.java b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetObjectMonitorUsage/objmonusage001.java index c3c3cb31ebd..44da4f71eb2 100644 --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetObjectMonitorUsage/objmonusage001.java +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetObjectMonitorUsage/objmonusage001.java @@ -63,7 +63,7 @@ public static int run(String argv[], PrintStream out) { } // Virtual threads are not supported by GetObjectMonitorUsage. // Correct the expected values if the test is executed with - // JTREG_TEST_THREAD_FACTORY=Virtual. + // JTREG="TEST_THREAD_FACTORY=Virtual". Thread expOwner = mainThread.isVirtual() ? null : mainThread; int expEntryCount = mainThread.isVirtual() ? 0 : 1; @@ -157,7 +157,7 @@ public objmonusage001a(Thread mt, int i, Object s) { public void run() { // Virtual threads are not supported by GetObjectMonitorUsage. // Correct the expected values if the test is executed with - // JTREG_TEST_THREAD_FACTORY=Virtual. + // JTREG="TEST_THREAD_FACTORY=Virtual". Thread expOwner = this.isVirtual() ? null : this; Thread expNotifyWaiter = mainThread.isVirtual() ? null : mainThread; int expEntryCount = this.isVirtual() ? 0 : 1; diff --git a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetObjectMonitorUsage/objmonusage004.java b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetObjectMonitorUsage/objmonusage004.java index 8d79a6011f5..172d16445c1 100644 --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetObjectMonitorUsage/objmonusage004.java +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetObjectMonitorUsage/objmonusage004.java @@ -62,7 +62,7 @@ public static int run(String args[], PrintStream out) { synchronized (lockCheck) { // Virtual threads are not supported by GetObjectMonitorUsage. // Correct the expected values if the test is executed with - // JTREG_TEST_THREAD_FACTORY=Virtual. + // JTREG="TEST_THREAD_FACTORY=Virtual". Thread expOwner = currThread.isVirtual() ? null : currThread; int expEntryCount = currThread.isVirtual() ? 0 : 2; diff --git a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/StressRedefine.java b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/StressRedefine.java index 1192de03f88..d581cd5693b 100644 --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/StressRedefine.java +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/StressRedefine.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,7 +21,6 @@ * questions. */ -//package nsk.jvmti.RedefineClasses.StressRedefine; package nsk.jvmti.RedefineClasses; @@ -41,7 +40,7 @@ import nsk.share.test.Stresser; import nsk.share.test.Tests; -import vm.share.InMemoryJavaCompiler; +import jdk.test.lib.compiler.InMemoryJavaCompiler; /** * There is a data structure named "dictionary" in class BlockFreelist. It stores @@ -203,9 +202,7 @@ private static ThreadFactory virtualThreadFactory() { } private static byte[] generateAndCompile() { - Map sources = new HashMap(); - sources.put(GenerateSourceHelper.CLASS_NAME, GenerateSourceHelper.generateSource()); - return InMemoryJavaCompiler.compile(sources).values().iterator().next(); + return InMemoryJavaCompiler.compile(GenerateSourceHelper.CLASS_NAME, GenerateSourceHelper.generateSource()); } // Auxiliary classloader. Used only once at the beginning. diff --git a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP05/sp05t003/TestDescription.java b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP05/sp05t003/TestDescription.java index ecb2cfc59e5..1c8ca451c8e 100644 --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP05/sp05t003/TestDescription.java +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/sampling/SP05/sp05t003/TestDescription.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -50,7 +50,7 @@ * @library /vmTestbase * /test/lib * @run main/othervm/native - * -agentlib:sp05t003=-waittime=5 + * -agentlib:sp05t003=-waittime=5,-verbose * nsk.jvmti.scenarios.sampling.SP05.sp05t003 */ diff --git a/test/hotspot/jtreg/vmTestbase/vm/share/InMemoryJavaCompiler.java b/test/hotspot/jtreg/vmTestbase/vm/share/InMemoryJavaCompiler.java deleted file mode 100644 index 6f5f1c0cbcd..00000000000 --- a/test/hotspot/jtreg/vmTestbase/vm/share/InMemoryJavaCompiler.java +++ /dev/null @@ -1,125 +0,0 @@ -/* - * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ -package vm.share; - -import javax.tools.FileObject; -import javax.tools.ForwardingJavaFileManager; -import javax.tools.JavaCompiler; -import javax.tools.JavaFileManager; -import javax.tools.JavaFileObject; -import javax.tools.SimpleJavaFileObject; -import javax.tools.ToolProvider; -import java.io.ByteArrayOutputStream; -import java.io.StringWriter; -import java.io.Writer; -import java.net.URI; -import java.util.Collection; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.Map; -import java.util.Map.Entry; - - -public class InMemoryJavaCompiler { - - public static Map compile(Map inputMap) { - Collection sourceFiles = new LinkedList(); - for (Entry entry : inputMap.entrySet()) { - sourceFiles.add(new SourceFile(entry.getKey(), entry.getValue())); - } - - JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); - FileManager fileManager = new FileManager(compiler.getStandardFileManager(null, null, null)); - - Writer writer = new StringWriter(); - Boolean exitCode = compiler.getTask(writer, fileManager, null, null, null, sourceFiles).call(); - if (!exitCode) { - System.out.println("*********** javac output begin ***********"); - System.out.println(writer.toString()); - System.out.println("*********** javac output end ***********"); - if (writer.toString().contains("java.lang.OutOfMemoryError")) { - System.out.println("Got OOME while performing in memory compilation. It happens on weak hosts and there is nothing we can do. "); - throw new OutOfMemoryError("Got OOME while performing in memory compilation."); - } - throw new RuntimeException("Test bug: in memory compilation failed."); - } - return fileManager.getByteCode(); - } - - // Wraper for class file - static class ClassFile extends SimpleJavaFileObject { - - private final ByteArrayOutputStream baos = new ByteArrayOutputStream(); - - protected ClassFile(String name) { - super(URI.create("memo:///" + name.replace('.', '/') + Kind.CLASS.extension), Kind.CLASS); - } - - @Override - public ByteArrayOutputStream openOutputStream() { return this.baos; } - - byte[] toByteArray() { return baos.toByteArray(); } - } - - // File manager which spawns ClassFile instances by demand - static class FileManager extends ForwardingJavaFileManager { - - private Map classesMap = new HashMap(); - - protected FileManager(JavaFileManager fileManager) { - super(fileManager); - } - - @Override - public ClassFile getJavaFileForOutput(Location location, String name, JavaFileObject.Kind kind, FileObject source) { - ClassFile classFile = new ClassFile(name); - classesMap.put(name, classFile); - return classFile; - } - - public Map getByteCode() { - Map result = new HashMap(); - for (Entry entry : classesMap.entrySet()) { - result.put(entry.getKey(), entry.getValue().toByteArray()); - } - return result; - } - } - - // Wrapper for source file - static class SourceFile extends SimpleJavaFileObject { - - private CharSequence sourceCode; - - public SourceFile(String name, CharSequence sourceCode) { - super(URI.create("memo:///" + name.replace('.', '/') + Kind.SOURCE.extension), Kind.SOURCE); - this.sourceCode = sourceCode; - } - - @Override - public CharSequence getCharContent(boolean ignore) { - return this.sourceCode; - } - } - -} diff --git a/test/jdk/ProblemList-Xcomp.txt b/test/jdk/ProblemList-Xcomp.txt index 8963ead2bce..02f81b13bad 100644 --- a/test/jdk/ProblemList-Xcomp.txt +++ b/test/jdk/ProblemList-Xcomp.txt @@ -28,5 +28,4 @@ ############################################################################# java/lang/invoke/MethodHandles/CatchExceptionTest.java 8146623 generic-all -java/foreign/TestUpcallStress.java 8341584 generic-all com/sun/jdi/InterruptHangTest.java 8043571 generic-all diff --git a/test/jdk/ProblemList-generational-zgc.txt b/test/jdk/ProblemList-generational-zgc.txt deleted file mode 100644 index 9fa9874d20c..00000000000 --- a/test/jdk/ProblemList-generational-zgc.txt +++ /dev/null @@ -1,40 +0,0 @@ -# -# Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# This code is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License version 2 only, as -# published by the Free Software Foundation. -# -# This code 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 -# version 2 for more details (a copy is included in the LICENSE file that -# accompanied this code). -# -# You should have received a copy of the GNU General Public License version -# 2 along with this work; if not, write to the Free Software Foundation, -# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -# -# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -# or visit www.oracle.com if you need additional information or have any -# questions. -# - -############################################################################# -# -# List of quarantined tests for testing with Generational ZGC. -# -############################################################################# - -# Quiet all SA tests - -sun/tools/jhsdb/HeapDumpTest.java 8307393 generic-all -sun/tools/jhsdb/BasicLauncherTest.java 8307393 generic-all -sun/tools/jhsdb/JStackStressTest.java 8307393 generic-all -sun/tools/jhsdb/JShellHeapDumpTest.java 8307393 generic-all -sun/tools/jhsdb/SAGetoptTest.java 8307393 generic-all -sun/tools/jhsdb/heapconfig/JMapHeapConfigTest.java 8307393 generic-all -sun/tools/jhsdb/HeapDumpTestWithActiveProcess.java 8307393 generic-all - -com/sun/jdi/ThreadMemoryLeakTest.java 8307402 generic-all diff --git a/test/jdk/ProblemList-zgc.txt b/test/jdk/ProblemList-zgc.txt index 9fae070e25d..e81ac813747 100644 --- a/test/jdk/ProblemList-zgc.txt +++ b/test/jdk/ProblemList-zgc.txt @@ -27,5 +27,14 @@ # ############################################################################# -sun/tools/jhsdb/JShellHeapDumpTest.java 8276539 generic-all -sun/tools/jhsdb/HeapDumpTestWithActiveProcess.java 8276539 generic-all +# Quiet all SA tests + +sun/tools/jhsdb/HeapDumpTest.java 8307393 generic-all +sun/tools/jhsdb/BasicLauncherTest.java 8307393 generic-all +sun/tools/jhsdb/JStackStressTest.java 8307393 generic-all +sun/tools/jhsdb/JShellHeapDumpTest.java 8307393 generic-all +sun/tools/jhsdb/SAGetoptTest.java 8307393 generic-all +sun/tools/jhsdb/heapconfig/JMapHeapConfigTest.java 8307393 generic-all +sun/tools/jhsdb/HeapDumpTestWithActiveProcess.java 8307393 generic-all + +com/sun/jdi/ThreadMemoryLeakTest.java 8307402 generic-all diff --git a/test/jdk/ProblemList.txt b/test/jdk/ProblemList.txt index 8aa3fea3fde..b37787b5f7e 100644 --- a/test/jdk/ProblemList.txt +++ b/test/jdk/ProblemList.txt @@ -531,6 +531,7 @@ java/lang/instrument/RetransformBigClass.sh 8065756 generic- # jdk_io java/io/pathNames/GeneralWin32.java 8180264 windows-all +java/io/IO/IO.java 8337935 linux-ppc64le ############################################################################ @@ -585,7 +586,7 @@ java/net/Socket/asyncClose/Race.java 8317801 aix-ppc6 # jdk_nio -java/nio/Buffer/LimitDirectMemory.java 8340728 generic-all +java/nio/Buffer/LimitDirectMemory.java 8342849 generic-all java/nio/channels/AsynchronousSocketChannel/StressLoopback.java 8211851 aix-ppc64 diff --git a/test/jdk/TEST.ROOT b/test/jdk/TEST.ROOT index c8db6b89a71..6276932afbd 100644 --- a/test/jdk/TEST.ROOT +++ b/test/jdk/TEST.ROOT @@ -84,8 +84,6 @@ requires.properties= \ vm.gc.Shenandoah \ vm.gc.Epsilon \ vm.gc.Z \ - vm.gc.ZGenerational \ - vm.gc.ZSinglegen \ vm.graal.enabled \ vm.compiler1.enabled \ vm.compiler2.enabled \ diff --git a/test/jdk/com/sun/crypto/provider/CICO/CICODESFuncTest.java b/test/jdk/com/sun/crypto/provider/CICO/CICODESFuncTest.java index 3164294ecca..440914826bc 100644 --- a/test/jdk/com/sun/crypto/provider/CICO/CICODESFuncTest.java +++ b/test/jdk/com/sun/crypto/provider/CICO/CICODESFuncTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -66,7 +66,8 @@ public class CICODESFuncTest { private static final int IV_LENGTH = 8; public static void main(String[] args) throws Exception { - Provider provider = Security.getProvider("SunJCE"); + Provider provider = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); if (provider == null) { throw new RuntimeException("SunJCE provider does not exist."); } diff --git a/test/jdk/com/sun/crypto/provider/CICO/CICOSkipTest.java b/test/jdk/com/sun/crypto/provider/CICO/CICOSkipTest.java index 0641845d7f9..6ccf4c1eedf 100644 --- a/test/jdk/com/sun/crypto/provider/CICO/CICOSkipTest.java +++ b/test/jdk/com/sun/crypto/provider/CICO/CICOSkipTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -204,9 +204,10 @@ private void initCiphers(String algo, SecretKey key, AlgorithmParameterSpec aps) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, InvalidAlgorithmParameterException { - Provider provider = Security.getProvider("SunJCE"); + String providerName = System.getProperty("test.provider.name", "SunJCE"); + Provider provider = Security.getProvider(providerName); if (provider == null) { - throw new RuntimeException("SunJCE provider does not exist."); + throw new RuntimeException(providerName + " provider does not exist."); } Cipher ci1 = Cipher.getInstance(algo, provider); ci1.init(Cipher.ENCRYPT_MODE, key, aps); diff --git a/test/jdk/com/sun/crypto/provider/CICO/PBEFunc/AESPBEWrapper.java b/test/jdk/com/sun/crypto/provider/CICO/PBEFunc/AESPBEWrapper.java index e6e5c2faa01..3dd15d50058 100644 --- a/test/jdk/com/sun/crypto/provider/CICO/PBEFunc/AESPBEWrapper.java +++ b/test/jdk/com/sun/crypto/provider/CICO/PBEFunc/AESPBEWrapper.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -69,9 +69,10 @@ public AESPBEWrapper(PBEAlgorithm algo, String passwd) */ @Override protected Cipher initCipher(int mode) throws GeneralSecurityException { - Provider provider = Security.getProvider("SunJCE"); + String providerName = System.getProperty("test.provider.name", "SunJCE"); + Provider provider = Security.getProvider(providerName); if (provider == null) { - throw new RuntimeException("SunJCE provider does not exist."); + throw new RuntimeException(providerName + ": provider does not exist."); } // get Cipher instance Cipher ci = Cipher.getInstance(transformation, provider); diff --git a/test/jdk/com/sun/crypto/provider/CICO/PBEFunc/DefaultPBEWrapper.java b/test/jdk/com/sun/crypto/provider/CICO/PBEFunc/DefaultPBEWrapper.java index f68fd85146b..cde094e1f90 100644 --- a/test/jdk/com/sun/crypto/provider/CICO/PBEFunc/DefaultPBEWrapper.java +++ b/test/jdk/com/sun/crypto/provider/CICO/PBEFunc/DefaultPBEWrapper.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -58,9 +58,10 @@ public DefaultPBEWrapper(PBEAlgorithm algo, String passwd) { */ @Override protected Cipher initCipher(int mode) throws GeneralSecurityException { - Provider provider = Security.getProvider("SunJCE"); + String providerName = System.getProperty("test.provider.name", "SunJCE"); + Provider provider = Security.getProvider(providerName); if (provider == null) { - throw new RuntimeException("SunJCE provider does not exist."); + throw new RuntimeException(providerName + ": provider does not exist."); } SecretKey key = SecretKeyFactory.getInstance(baseAlgo) .generateSecret(new PBEKeySpec(password.toCharArray())); diff --git a/test/jdk/com/sun/crypto/provider/CICO/PBEFunc/PBKDF2Wrapper.java b/test/jdk/com/sun/crypto/provider/CICO/PBEFunc/PBKDF2Wrapper.java index fb2d0ac901f..ac7580990f0 100644 --- a/test/jdk/com/sun/crypto/provider/CICO/PBEFunc/PBKDF2Wrapper.java +++ b/test/jdk/com/sun/crypto/provider/CICO/PBEFunc/PBKDF2Wrapper.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -89,9 +89,10 @@ public PBKDF2Wrapper(PBEAlgorithm algo, String passwd) */ @Override protected Cipher initCipher(int mode) throws GeneralSecurityException { - Provider provider = Security.getProvider("SunJCE"); + String providerName = System.getProperty("test.provider.name", "SunJCE"); + Provider provider = Security.getProvider(providerName); if (provider == null) { - throw new RuntimeException("SunJCE provider does not exist."); + throw new RuntimeException(providerName + ": provider does not exist."); } // Generate secret key PBEKeySpec pbeKeySpec = new PBEKeySpec(password.toCharArray(), diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AEAD/Encrypt.java b/test/jdk/com/sun/crypto/provider/Cipher/AEAD/Encrypt.java index 58267c2ffba..78b69c2ea95 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AEAD/Encrypt.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AEAD/Encrypt.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -122,7 +122,8 @@ public Encrypt(Provider provider, String algorithm, String mode, } public static void main(String[] args) throws Exception { - Provider p = Security.getProvider("SunJCE"); + Provider p = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); for (String alg : ALGORITHMS) { for (int keyStrength : KEY_STRENGTHS) { if (keyStrength > Cipher.getMaxAllowedKeyLength(alg)) { diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AEAD/GCMLargeDataKAT.java b/test/jdk/com/sun/crypto/provider/Cipher/AEAD/GCMLargeDataKAT.java index 11efb2d0611..885b5998aa4 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AEAD/GCMLargeDataKAT.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AEAD/GCMLargeDataKAT.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2019, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -102,7 +102,8 @@ public class GCMLargeDataKAT { byte[] encrypt(int inLen) { try { - cipher = Cipher.getInstance("AES/GCM/NoPadding", "SunJCE"); + cipher = Cipher.getInstance("AES/GCM/NoPadding", + System.getProperty("test.provider.name", "SunJCE")); cipher.init(Cipher.ENCRYPT_MODE, key, spec); return cipher.doFinal(plaintext, 0, inLen); } catch (Exception e) { @@ -125,7 +126,8 @@ boolean decrypt(byte[] data) { return false; } try { - cipher = Cipher.getInstance("AES/GCM/NoPadding", "SunJCE"); + cipher = Cipher.getInstance("AES/GCM/NoPadding", + System.getProperty("test.provider.name", "SunJCE")); cipher.init(Cipher.DECRYPT_MODE, key, spec); result = cipher.doFinal(data); } catch (Exception e) { diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AEAD/GCMParameterSpecTest.java b/test/jdk/com/sun/crypto/provider/Cipher/AEAD/GCMParameterSpecTest.java index 7250c4d7f0f..f65a8eed2b9 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AEAD/GCMParameterSpecTest.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AEAD/GCMParameterSpecTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -87,7 +87,8 @@ public GCMParameterSpecTest(int keyLength, int tagLength, int IVlength, AAD = Helper.generateBytes(AADLength); // init a secret key - KeyGenerator kg = KeyGenerator.getInstance("AES", "SunJCE"); + KeyGenerator kg = KeyGenerator.getInstance("AES", + System.getProperty("test.provider.name", "SunJCE")); kg.init(keyLength); key = kg.generateKey(); } @@ -211,7 +212,8 @@ private byte[] recoverCipherText(byte[] cipherText, GCMParameterSpec spec) private Cipher createCipher(int mode, GCMParameterSpec spec) throws Exception { - Cipher cipher = Cipher.getInstance(TRANSFORMATION, "SunJCE"); + Cipher cipher = Cipher.getInstance(TRANSFORMATION, + System.getProperty("test.provider.name", "SunJCE")); cipher.init(mode, key, spec); return cipher; } diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AEAD/KeyWrapper.java b/test/jdk/com/sun/crypto/provider/Cipher/AEAD/KeyWrapper.java index 21f1deec45b..c1a0ae2dfd0 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AEAD/KeyWrapper.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AEAD/KeyWrapper.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -37,7 +37,7 @@ public class KeyWrapper { static final String AES = "AES"; static final String TRANSFORMATION = "AES/GCM/NoPadding"; - static final String PROVIDER = "SunJCE"; + static final String PROVIDER = System.getProperty("test.provider.name", "SunJCE"); static final int KEY_LENGTH = 128; public static void main(String argv[]) throws Exception { diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AEAD/ReadWriteSkip.java b/test/jdk/com/sun/crypto/provider/Cipher/AEAD/ReadWriteSkip.java index f6bd3805ae4..fd7df41c91a 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AEAD/ReadWriteSkip.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AEAD/ReadWriteSkip.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -50,7 +50,7 @@ static enum BufferType { static final int BLOCK = 50; static final int SAVE = 45; static final int DISCARD = BLOCK - SAVE; - static final String PROVIDER = "SunJCE"; + static final String PROVIDER = System.getProperty("test.provider.name", "SunJCE"); static final String AES = "AES"; static final String GCM = "GCM"; static final String PADDING = "NoPadding"; diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AEAD/SameBuffer.java b/test/jdk/com/sun/crypto/provider/Cipher/AEAD/SameBuffer.java index 756fd624223..3e3fa3d77b1 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AEAD/SameBuffer.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AEAD/SameBuffer.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -41,7 +41,7 @@ */ public class SameBuffer { - private static final String PROVIDER = "SunJCE"; + private static final String PROVIDER = System.getProperty("test.provider.name", "SunJCE"); private static final String AES = "AES"; private static final String GCM = "GCM"; private static final String PADDING = "NoPadding"; diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AEAD/SealedObjectTest.java b/test/jdk/com/sun/crypto/provider/Cipher/AEAD/SealedObjectTest.java index 6f5e8200e10..accf38f98b5 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AEAD/SealedObjectTest.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AEAD/SealedObjectTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -37,7 +37,7 @@ public class SealedObjectTest { private static final String AES = "AES"; private static final String TRANSFORMATION = "AES/GCM/NoPadding"; - private static final String PROVIDER = "SunJCE"; + private static final String PROVIDER = System.getProperty("test.provider.name", "SunJCE"); private static final int KEY_LENGTH = 128; public static void main(String[] args) throws Exception { diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AEAD/WrongAAD.java b/test/jdk/com/sun/crypto/provider/Cipher/AEAD/WrongAAD.java index 157a8bb329d..6a35b3f2ce8 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AEAD/WrongAAD.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AEAD/WrongAAD.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -44,7 +44,7 @@ */ public class WrongAAD { - private static final String PROVIDER = "SunJCE"; + private static final String PROVIDER = System.getProperty("test.provider.name", "SunJCE"); private static final String TRANSFORMATION = "AES/GCM/NoPadding"; private static final int TEXT_SIZE = 800; private static final int KEY_SIZE = 128; diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/CICO.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/CICO.java index 1bb9f0d061f..5d6da523f2a 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/CICO.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/CICO.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -52,7 +52,7 @@ public class CICO { "cFB24", "cFB32", "Cfb40", "CFB72", "OfB", "OfB20", "OfB48", "OfB56", "OFB64", "OFB112", "CFB112", "pCbC" }; private static final String[] PADDING = { "noPadding", "pkcs5padding" }; - private static final String PROVIDER = "SunJCE"; + private static final String PROVIDER = System.getProperty("test.provider.name", "SunJCE"); private static final int NREADS = 3; private static final int KEY_LENGTH = 128; diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/CTR.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/CTR.java index d569965bca1..e610e98a27b 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/CTR.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/CTR.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -50,7 +50,8 @@ public class CTR { private static final String ALGORITHM = "AES"; - private static final String PROVIDER = "SunJCE"; + private static final String PROVIDER = + System.getProperty("test.provider.name", "SunJCE"); private static final String[] MODES = {"CTR","CFB24","OFB32","GCM"}; diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/Padding.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/Padding.java index 9598e1743c2..a494d230381 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/Padding.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/Padding.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2019, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -47,7 +47,8 @@ public class Padding { private static final String ALGORITHM = "AES"; - private static final String PROVIDER = "SunJCE"; + private static final String PROVIDER = + System.getProperty("test.provider.name", "SunJCE"); private static final String[] MODES_PKCS5PAD = { "ECb", "CbC", "PCBC", "OFB", "OFB150", "cFB", "CFB7", "cFB8", "cFB16", "cFB24", "cFB32", diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4511676.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4511676.java index ef538f63f90..e8b8c3edf30 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4511676.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4511676.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -41,10 +41,12 @@ public class Test4511676 { public boolean execute() throws Exception { - Cipher ci = Cipher.getInstance(ALGO, "SunJCE"); + Cipher ci = Cipher.getInstance(ALGO, + System.getProperty("test.provider.name", "SunJCE")); // TEST FIX 4511676 - KeyGenerator kg = KeyGenerator.getInstance(ALGO, "SunJCE"); + KeyGenerator kg = KeyGenerator.getInstance(ALGO, + System.getProperty("test.provider.name", "SunJCE")); kg.init(KEYSIZE*8); SecretKey key = kg.generateKey(); try { diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4512524.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4512524.java index b743d6bcefd..c1428fdc033 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4512524.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4512524.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -45,10 +45,12 @@ public class Test4512524 { public void execute(String mode) throws Exception { String transformation = ALGO+"/"+mode+"/"+PADDING; - Cipher ci = Cipher.getInstance(transformation, "SunJCE"); + Cipher ci = Cipher.getInstance(transformation, + System.getProperty("test.provider.name", "SunJCE")); // TEST FIX 4512524 - KeyGenerator kg = KeyGenerator.getInstance(ALGO, "SunJCE"); + KeyGenerator kg = KeyGenerator.getInstance(ALGO, + System.getProperty("test.provider.name", "SunJCE")); kg.init(KEYSIZE*8); SecretKey key = kg.generateKey(); diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4512704.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4512704.java index bf004314392..a33727075d7 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4512704.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4512704.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -45,9 +45,11 @@ public void execute(String mode) throws Exception { AlgorithmParameterSpec aps = null; String transformation = ALGO + "/" + mode + "/"+PADDING; - Cipher ci = Cipher.getInstance(transformation, "SunJCE"); + Cipher ci = Cipher.getInstance(transformation, + System.getProperty("test.provider.name", "SunJCE")); - KeyGenerator kg = KeyGenerator.getInstance(ALGO, "SunJCE"); + KeyGenerator kg = KeyGenerator.getInstance(ALGO, + System.getProperty("test.provider.name", "SunJCE")); kg.init(KEYSIZE*8); SecretKey key = kg.generateKey(); // TEST FIX 4512704 diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4513830.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4513830.java index 856c55a6fbe..80d58dc19c5 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4513830.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4513830.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -52,10 +52,12 @@ public boolean execute() throws Exception { byte[] plainText=new byte[125]; rdm.nextBytes(plainText); - Cipher ci = Cipher.getInstance(ALGO+"/"+MODE+"/"+PADDING, "SunJCE"); + Cipher ci = Cipher.getInstance(ALGO+"/"+MODE+"/"+PADDING, + System.getProperty("test.provider.name", "SunJCE")); // TEST FIX 4513830 - KeyGenerator kg = KeyGenerator.getInstance(ALGO, "SunJCE"); + KeyGenerator kg = KeyGenerator.getInstance(ALGO, + System.getProperty("test.provider.name", "SunJCE")); kg.init(KEYSIZE*8); SecretKey key = kg.generateKey(); diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4517355.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4517355.java index ccab72bf69a..1eed3831f53 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4517355.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4517355.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -48,8 +48,10 @@ public class Test4517355 { public void execute(String mode, String padding) throws Exception { String transformation = ALGO + "/" + mode + "/" + padding; - Cipher ci = Cipher.getInstance(transformation, "SunJCE"); - KeyGenerator kg = KeyGenerator.getInstance(ALGO, "SunJCE"); + Cipher ci = Cipher.getInstance(transformation, + System.getProperty("test.provider.name", "SunJCE")); + KeyGenerator kg = KeyGenerator.getInstance(ALGO, + System.getProperty("test.provider.name", "SunJCE")); kg.init(KEYSIZE*8); SecretKey key = kg.generateKey(); diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4626070.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4626070.java index 86409d3e4cd..e49ef86b384 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4626070.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/Test4626070.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -38,8 +38,10 @@ public class Test4626070 { public void execute(String mode, String padding) throws Exception { String transformation = ALGO + "/" + mode + "/" + padding; - Cipher ci = Cipher.getInstance(transformation, "SunJCE"); - KeyGenerator kg = KeyGenerator.getInstance(ALGO, "SunJCE"); + Cipher ci = Cipher.getInstance(transformation, + System.getProperty("test.provider.name", "SunJCE")); + KeyGenerator kg = KeyGenerator.getInstance(ALGO, + System.getProperty("test.provider.name", "SunJCE")); kg.init(KEYSIZE*8); SecretKey key = kg.generateKey(); diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestAESCipher.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestAESCipher.java index dd0d97101c1..9e2342c7be6 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestAESCipher.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestAESCipher.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -48,7 +48,7 @@ public class TestAESCipher { private static final String ALGORITHM = "AES"; - private static final String PROVIDER = "SunJCE"; + private static final String PROVIDER = System.getProperty("test.provider.name", "SunJCE"); private static final String[] MODES = { "ECb", "CbC", "CTR", "PCBC", "OFB", "OFB150", "cFB", "CFB7", "cFB8", "cFB16", "cFB24", "cFB32", "Cfb40", "cfB48", "cfB56", "cfB64", "cfB72", "cfB80", "cfB88", diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestAESCiphers/Dynamic.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestAESCiphers/Dynamic.java index 91d7426b7f1..65b34507835 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestAESCiphers/Dynamic.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestAESCiphers/Dynamic.java @@ -46,7 +46,7 @@ public class Dynamic { static final String[] PADDING = { "NoPadding", "PKCS5Padding", "ISO10126Padding" }; - static final String SUNJCE = "SunJCE"; + static final String PROVIDER = System.getProperty("test.provider.name", "SunJCE"); Cipher ci = null; byte[] iv = null; @@ -128,8 +128,8 @@ protected boolean runTest(String algo, String mo, String pad) new Random().nextBytes(plainText); String transformation = algo + "/" + mo + "/" + pad; - ci = Cipher.getInstance(transformation, SUNJCE); - KeyGenerator kg = KeyGenerator.getInstance(algo, SUNJCE); + ci = Cipher.getInstance(transformation, PROVIDER); + KeyGenerator kg = KeyGenerator.getInstance(algo, PROVIDER); if (keyStrength > Cipher.getMaxAllowedKeyLength(transformation)) { // skip if this key length is larger than what's // configured in the jce jurisdiction policy files diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestAESCiphers/TestAESWithProviderChange.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestAESCiphers/TestAESWithProviderChange.java index d29a0aa0904..bb9538c70a1 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestAESCiphers/TestAESWithProviderChange.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestAESCiphers/TestAESWithProviderChange.java @@ -33,7 +33,7 @@ public class TestAESWithProviderChange extends Dynamic { public static void main(String argv[]) throws Exception { - Security.removeProvider(SUNJCE); + Security.removeProvider(PROVIDER); Security.addProvider(new com.sun.crypto.provider.SunJCE()); new TestAESWithProviderChange().run(argv); } diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestAESCiphers/TestAESWithRemoveAddProvider.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestAESCiphers/TestAESWithRemoveAddProvider.java index 81761a7ea4b..677f9aa913a 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestAESCiphers/TestAESWithRemoveAddProvider.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestAESCiphers/TestAESWithRemoveAddProvider.java @@ -34,8 +34,8 @@ public class TestAESWithRemoveAddProvider extends Dynamic { public static void main(String argv[]) throws Exception { - Provider pJCE = Security.getProvider(SUNJCE); - Security.removeProvider(SUNJCE); + Provider pJCE = Security.getProvider(PROVIDER); + Security.removeProvider(PROVIDER); Security.addProvider(pJCE); new TestAESWithRemoveAddProvider().run(argv); } diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestAESCiphers/testAES.policy b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestAESCiphers/testAES.policy index 175e9cb86e5..5c6a06beb02 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestAESCiphers/testAES.policy +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestAESCiphers/testAES.policy @@ -1,6 +1,7 @@ grant codeBase "file:${test.classes}/*" { - permission java.security.SecurityPermission "removeProvider.SunJCE"; - permission java.security.SecurityPermission "insertProvider.SunJCE"; + permission java.security.SecurityPermission "removeProvider.*"; + permission java.security.SecurityPermission "insertProvider.*"; permission java.lang.RuntimePermission "accessClassInPackage.com.sun.crypto.provider"; + permission java.util.PropertyPermission "test.provider.name", "read"; }; diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestCICOWithGCM.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestCICOWithGCM.java index c6c7a66c5e4..87d08b2c4a7 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestCICOWithGCM.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestCICOWithGCM.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -43,7 +43,8 @@ public class TestCICOWithGCM { public static void main(String[] args) throws Exception { //init Secret Key - KeyGenerator kg = KeyGenerator.getInstance("AES", "SunJCE"); + KeyGenerator kg = KeyGenerator.getInstance("AES", + System.getProperty("test.provider.name", "SunJCE")); kg.init(128); SecretKey key = kg.generateKey(); @@ -53,9 +54,11 @@ public static void main(String[] args) throws Exception { rdm.nextBytes(plainText); //init ciphers - Cipher encCipher = Cipher.getInstance("AES/GCM/NoPadding", "SunJCE"); + Cipher encCipher = Cipher.getInstance("AES/GCM/NoPadding", + System.getProperty("test.provider.name", "SunJCE")); encCipher.init(Cipher.ENCRYPT_MODE, key); - Cipher decCipher = Cipher.getInstance("AES/GCM/NoPadding", "SunJCE"); + Cipher decCipher = Cipher.getInstance("AES/GCM/NoPadding", + System.getProperty("test.provider.name", "SunJCE")); decCipher.init(Cipher.DECRYPT_MODE, key, encCipher.getParameters()); //init cipher streams diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestCICOWithGCMAndAAD.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestCICOWithGCMAndAAD.java index 80732762297..960dd66567a 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestCICOWithGCMAndAAD.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestCICOWithGCMAndAAD.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -39,7 +39,8 @@ public class TestCICOWithGCMAndAAD { public static void main(String[] args) throws Exception { //init Secret Key - KeyGenerator kg = KeyGenerator.getInstance("AES", "SunJCE"); + KeyGenerator kg = KeyGenerator.getInstance("AES", + System.getProperty("test.provider.name", "SunJCE")); kg.init(128); SecretKey key = kg.generateKey(); @@ -53,10 +54,12 @@ public static void main(String[] args) throws Exception { byte[] aad2 = aad.clone(); aad2[50]++; - Cipher encCipher = Cipher.getInstance("AES/GCM/NoPadding", "SunJCE"); + Cipher encCipher = Cipher.getInstance("AES/GCM/NoPadding", + System.getProperty("test.provider.name", "SunJCE")); encCipher.init(Cipher.ENCRYPT_MODE, key); encCipher.updateAAD(aad); - Cipher decCipher = Cipher.getInstance("AES/GCM/NoPadding", "SunJCE"); + Cipher decCipher = Cipher.getInstance("AES/GCM/NoPadding", + System.getProperty("test.provider.name", "SunJCE")); decCipher.init(Cipher.DECRYPT_MODE, key, encCipher.getParameters()); decCipher.updateAAD(aad); diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestCopySafe.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestCopySafe.java index 697da6750ad..70a9dd5998f 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestCopySafe.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestCopySafe.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -57,7 +57,8 @@ public class TestCopySafe { public static void main(String[] argv) throws Exception { - Provider p = Security.getProvider("SunJCE"); + Provider p = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); AlgorithmParameterSpec params = null; boolean result = true; diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestGCMKeyAndIvCheck.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestGCMKeyAndIvCheck.java index 0777508b36f..d94753e941e 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestGCMKeyAndIvCheck.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestGCMKeyAndIvCheck.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -68,7 +68,8 @@ private static void checkISE(Cipher c) throws Exception { } public void test() throws Exception { - Cipher c = Cipher.getInstance("AES/GCM/NoPadding", "SunJCE"); + Cipher c = Cipher.getInstance("AES/GCM/NoPadding", + System.getProperty("test.provider.name", "SunJCE")); SecretKey key = new SecretKeySpec(new byte[16], "AES"); // First try parameter-less init. diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestISO10126Padding.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestISO10126Padding.java index 9b91e612c35..26b160eaae1 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestISO10126Padding.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestISO10126Padding.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -45,7 +45,8 @@ public class TestISO10126Padding { private TestISO10126Padding() throws Exception { // setup - KeyGenerator kg = KeyGenerator.getInstance(ALGO, "SunJCE"); + KeyGenerator kg = KeyGenerator.getInstance(ALGO, + System.getProperty("test.provider.name", "SunJCE")); kg.init(KEYSIZE*8); key = kg.generateKey(); } @@ -59,7 +60,8 @@ private void runTest(int dataLength) throws Exception { // TEST#1 -- // generate the cipher text using manually-supplied // XML Encryption padding - Cipher ci = Cipher.getInstance(TRANS + "/NoPadding", "SunJCE"); + Cipher ci = Cipher.getInstance(TRANS + "/NoPadding", + System.getProperty("test.provider.name", "SunJCE")); ci.init(Cipher.ENCRYPT_MODE, key); byte[] paddedData = new byte[ci.getBlockSize()]; System.arraycopy(data, 0, paddedData, 0, data.length); @@ -68,7 +70,8 @@ private void runTest(int dataLength) throws Exception { byte[] cipherText = ci.doFinal(paddedData); // decrypt using ISO10126Padding - ci = Cipher.getInstance(TRANS + "/ISO10126Padding", "SunJCE"); + ci = Cipher.getInstance(TRANS + "/ISO10126Padding", + System.getProperty("test.provider.name", "SunJCE")); ci.init(Cipher.DECRYPT_MODE, key); byte[] recovered = ci.doFinal(cipherText); if (!Arrays.equals(data, recovered)) { @@ -76,7 +79,8 @@ private void runTest(int dataLength) throws Exception { } // TEST#2 -- // generate the cipher text using ISO10126Padding - ci = Cipher.getInstance(TRANS + "/ISO10126Padding", "SunJCE"); + ci = Cipher.getInstance(TRANS + "/ISO10126Padding", + System.getProperty("test.provider.name", "SunJCE")); ci.init(Cipher.ENCRYPT_MODE, key); cipherText = ci.doFinal(data); diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestKATForECB_IV.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestKATForECB_IV.java index a9576e7f3eb..71f07d61b13 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestKATForECB_IV.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestKATForECB_IV.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -83,7 +83,8 @@ private static byte[] constructByteArray(String s) { public boolean execute() throws Exception { String transformation = ALGO+"/"+MODE+"/"+PADDING; - Cipher c = Cipher.getInstance(transformation, "SunJCE"); + Cipher c = Cipher.getInstance(transformation, + System.getProperty("test.provider.name", "SunJCE")); for (int i=0; i diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestKATForECB_VK.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestKATForECB_VK.java index 098232b8c4c..623f5f5d281 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestKATForECB_VK.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestKATForECB_VK.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -707,7 +707,8 @@ private static byte[] constructByteArray(String s) { public boolean execute() throws Exception { String transformation = ALGO+"/"+MODE+"/"+PADDING; - Cipher c = Cipher.getInstance(transformation, "SunJCE"); + Cipher c = Cipher.getInstance(transformation, + System.getProperty("test.provider.name", "SunJCE")); for (int i=0; i diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestKATForECB_VT.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestKATForECB_VT.java index b8f83bd7b05..6265ca10281 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestKATForECB_VT.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestKATForECB_VT.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -513,7 +513,8 @@ private static byte[] constructByteArray(String s) { public boolean execute() throws Exception { String transformation = ALGO+"/"+MODE+"/"+PADDING; - Cipher c = Cipher.getInstance(transformation, "SunJCE"); + Cipher c = Cipher.getInstance(transformation, + System.getProperty("test.provider.name", "SunJCE")); for (int i=0; i diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestKATForGCM.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestKATForGCM.java index bdcf465f854..70db7b166e8 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestKATForGCM.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestKATForGCM.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -278,7 +278,8 @@ public String toString() { }; void executeArray(TestVector tv) throws Exception { - Cipher c = Cipher.getInstance("AES/GCM/NoPadding", "SunJCE"); + Cipher c = Cipher.getInstance("AES/GCM/NoPadding", + System.getProperty("test.provider.name", "SunJCE")); try { System.out.println("Test #" + tv.id + ": byte[]."); @@ -320,7 +321,8 @@ void executeArray(TestVector tv) throws Exception { } void executeByteBuffer(TestVector tv, boolean direct, int offset) throws Exception { - Cipher c = Cipher.getInstance("AES/GCM/NoPadding", "SunJCE"); + Cipher c = Cipher.getInstance("AES/GCM/NoPadding", + System.getProperty("test.provider.name", "SunJCE")); ByteBuffer src; ByteBuffer ctdst; diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestNoPaddingModes.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestNoPaddingModes.java index 9747f3bced2..a32f787a72a 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestNoPaddingModes.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestNoPaddingModes.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2019, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -42,7 +42,8 @@ public class TestNoPaddingModes { }; public static void main(String[] args) throws Exception { - Provider p = Security.getProvider("SunJCE"); + Provider p = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); String transformation; for (String mode : MODES) { for (String padding : PADDINGS) { @@ -50,7 +51,8 @@ public static void main(String[] args) throws Exception { System.out.println("Test using " + transformation); try { - Cipher c = Cipher.getInstance(transformation, "SunJCE"); + Cipher c = Cipher.getInstance(transformation, + System.getProperty("test.provider.name", "SunJCE")); throw new RuntimeException("=> Fail, no exception thrown"); } catch (NoSuchAlgorithmException | NoSuchPaddingException ex) { System.out.println("=> Expected ex: " + ex); diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestNonexpanding.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestNonexpanding.java index 3ed865f5a98..140f24d51d1 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestNonexpanding.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestNonexpanding.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -45,7 +45,8 @@ public class TestNonexpanding { private static final String ALGORITHM = "AES"; - private static final String PROVIDER = "SunJCE"; + private static final String PROVIDER = + System.getProperty("test.provider.name", "SunJCE"); private static final String[] MODES = { "ECb", "CbC", "OFB", "OFB150", "cFB", "CFB7", "cFB8", "cFB16", "cFB24", "cFB32", "Cfb40", "cfB48", "cfB56", "cfB64", "cfB72", "cfB80", "cfB88", "cfB96", "cfb104", diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestSameBuffer.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestSameBuffer.java index e158bc54652..cc8c050396e 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestSameBuffer.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestSameBuffer.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -47,7 +47,8 @@ public class TestSameBuffer { private static final String ALGORITHM = "AES"; - private static final String PROVIDER = "SunJCE"; + private static final String PROVIDER = + System.getProperty("test.provider.name", "SunJCE"); private static final String[] MODES = { "ECb", "CbC", "OFB", "CFB150", "cFB", "CFB7", " cFB8", "cFB16", "cFB24", "cFB32", "Cfb40", "cfB48", " cfB56", "cfB64", "cfB72", "cfB80", "cfB88", "cfB96", diff --git a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestShortBuffer.java b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestShortBuffer.java index 52d6c43bdb1..fe1f76c0a04 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/AES/TestShortBuffer.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/AES/TestShortBuffer.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -71,7 +71,7 @@ private static void runTest() throws Exception { for (int i = 0; i < MODES.length; i++) { System.out.println("===== TESTING MODE " + MODES[i] + " ====="); Cipher ci = Cipher.getInstance(ALGO+"/"+MODES[i]+"/PKCS5Padding", - "SunJCE"); + System.getProperty("test.provider.name", "SunJCE")); TestShortBuffer test = null; int stored = 0; AlgorithmParameters params = null; diff --git a/test/jdk/com/sun/crypto/provider/Cipher/CTR/CounterMode.java b/test/jdk/com/sun/crypto/provider/Cipher/CTR/CounterMode.java index 6d985312b6b..1073985c18c 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/CTR/CounterMode.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/CTR/CounterMode.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -162,7 +162,8 @@ public static void main(String[] args) throws Exception { continue; } System.out.println("Running test " + i + " (" + alg + ")"); - Cipher cipher = Cipher.getInstance(alg + "/CTR/NoPadding", "SunJCE"); + Cipher cipher = Cipher.getInstance(alg + "/CTR/NoPadding", + System.getProperty("test.provider.name", "SunJCE")); SecretKeySpec key = new SecretKeySpec(KEYS[i], alg); IvParameterSpec iv = new IvParameterSpec(IVS[i]); byte[] plainText = PLAIN[i]; diff --git a/test/jdk/com/sun/crypto/provider/Cipher/CTS/CTSMode.java b/test/jdk/com/sun/crypto/provider/Cipher/CTS/CTSMode.java index 6dba280899f..6d34fd3d50b 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/CTS/CTSMode.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/CTS/CTSMode.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -156,7 +156,7 @@ private static void test1() throws Exception { } System.out.println("Running test1_" + i + " (" + algo + ")"); Cipher cipher = Cipher.getInstance(algo+ "/CTS/NoPadding", - "SunJCE"); + System.getProperty("test.provider.name", "SunJCE")); byte[] plainText = PLAIN1[i]; byte[] cipherText = CIPHER1[i]; cipher.init(Cipher.ENCRYPT_MODE, KEY1, IV1); @@ -194,7 +194,8 @@ private static void test2() throws Exception { continue; } Cipher cipher = - Cipher.getInstance(algo+"/CTS/NoPadding", "SunJCE"); + Cipher.getInstance(algo+"/CTS/NoPadding", + System.getProperty("test.provider.name", "SunJCE")); int blockSize = cipher.getBlockSize(); SecretKeySpec key = new SecretKeySpec(new byte[keySize], algo); // Make sure encryption works for inputs with valid length @@ -226,7 +227,8 @@ private static void test2() throws Exception { IvParameterSpec iv2 = new IvParameterSpec(IV2_SRC, 0, blockSize); cipher.init(Cipher.ENCRYPT_MODE, key, iv2); Cipher cipher2 = - Cipher.getInstance(algo+"/CBC/NoPadding", "SunJCE"); + Cipher.getInstance(algo+"/CBC/NoPadding", + System.getProperty("test.provider.name", "SunJCE")); cipher2.init(Cipher.ENCRYPT_MODE, key, iv2); byte[] eout = cipher.doFinal(IV2_SRC, 0, blockSize); @@ -294,7 +296,8 @@ private static void test3() throws Exception { continue; } Cipher cipher = - Cipher.getInstance(algo+ "/CTS/NoPadding", "SunJCE"); + Cipher.getInstance(algo+ "/CTS/NoPadding", + System.getProperty("test.provider.name", "SunJCE")); byte[] plainText = PLAIN1[i]; byte[] cipherText = CIPHER1[i]; byte[] enc = new byte[plainText.length]; diff --git a/test/jdk/com/sun/crypto/provider/Cipher/DES/KeyWrapping.java b/test/jdk/com/sun/crypto/provider/Cipher/DES/KeyWrapping.java index c1447eb3e51..a71390b504e 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/DES/KeyWrapping.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/DES/KeyWrapping.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,16 +24,19 @@ /* * @test * @bug 0000000 + * @library /test/lib * @summary KeyWrapping * @author Jan Luehe */ import javax.crypto.*; import java.security.*; +import jdk.test.lib.security.SecurityUtils; public class KeyWrapping { public static void main(String[] args) throws Exception { - Cipher c1 = Cipher.getInstance("DES", "SunJCE"); + Cipher c1 = Cipher.getInstance("DES", + System.getProperty("test.provider.name", "SunJCE")); Cipher c2 = Cipher.getInstance("DES"); KeyGenerator keyGen = KeyGenerator.getInstance("DES"); @@ -70,8 +73,9 @@ public static void main(String[] args) throws Exception { if (!msg.equals(new String(clearText))) throw new Exception("The unwrapped session key is corrupted."); - KeyPairGenerator kpairGen = KeyPairGenerator.getInstance("DSA"); - kpairGen.initialize(1024); + String kpgAlgorithm = "DSA"; + KeyPairGenerator kpairGen = KeyPairGenerator.getInstance(kpgAlgorithm); + kpairGen.initialize(SecurityUtils.getTestKeySize(kpgAlgorithm)); KeyPair kpair = kpairGen.genKeyPair(); diff --git a/test/jdk/com/sun/crypto/provider/Cipher/DES/Sealtest.java b/test/jdk/com/sun/crypto/provider/Cipher/DES/Sealtest.java index abc536f14e2..d4b2173358c 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/DES/Sealtest.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/DES/Sealtest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,20 +24,23 @@ /* * @test * @bug 0000000 7055362 + * @library /test/lib * @summary Sealtest * @author Jan Luehe */ import java.io.*; import java.security.*; import javax.crypto.*; +import jdk.test.lib.security.SecurityUtils; public class Sealtest { public static void main(String[] args) throws Exception { // create DSA keypair - KeyPairGenerator kpgen = KeyPairGenerator.getInstance("DSA"); - kpgen.initialize(512); + String kpgAlgorithm = "DSA"; + KeyPairGenerator kpgen = KeyPairGenerator.getInstance(kpgAlgorithm); + kpgen.initialize(SecurityUtils.getTestKeySize(kpgAlgorithm)); KeyPair kp = kpgen.generateKeyPair(); // create DES key diff --git a/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/NISTWrapKAT.java b/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/NISTWrapKAT.java index 3da7c7072f0..a79f48196d1 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/NISTWrapKAT.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/NISTWrapKAT.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -259,9 +259,12 @@ public void testKeyWrap(String algo, String key, int keyLen, System.out.println("=> skip, exceeds max allowed size " + allowed); return; } - Cipher c1 = Cipher.getInstance(algo, "SunJCE"); - Cipher c2 = Cipher.getInstance(algo, "SunJCE"); - Cipher c3 = Cipher.getInstance(algo, "SunJCE"); + Cipher c1 = Cipher.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); + Cipher c2 = Cipher.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); + Cipher c3 = Cipher.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); byte[] keyVal = toBytes(key, keyLen << 1); byte[] dataVal = toBytes(data, dataLen << 1); @@ -318,9 +321,12 @@ public void testEnc(String algo, String key, int keyLen, String data, int dataLe System.out.println("=> skip, exceeds max allowed size " + allowed); return; } - Cipher c1 = Cipher.getInstance(algo, "SunJCE"); - Cipher c2 = Cipher.getInstance(algo, "SunJCE"); - Cipher c3 = Cipher.getInstance(algo, "SunJCE"); + Cipher c1 = Cipher.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); + Cipher c2 = Cipher.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); + Cipher c3 = Cipher.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); byte[] keyVal = toBytes(key, keyLen << 1); byte[] dataVal = toBytes(data, dataLen << 1); diff --git a/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/TestCipherKeyWrapperTest.java b/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/TestCipherKeyWrapperTest.java index 6a3708bff9e..82794de2582 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/TestCipherKeyWrapperTest.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/TestCipherKeyWrapperTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -50,15 +50,18 @@ import javax.crypto.SecretKeyFactory; import javax.crypto.spec.PBEKeySpec; import javax.crypto.spec.PBEParameterSpec; +import jdk.test.lib.security.SecurityUtils; /* * @test * @bug 8048599 8248268 8288050 + * @library /test/lib * @summary Tests for key wrap and unwrap operations */ public class TestCipherKeyWrapperTest { - private static final String SUN_JCE = "SunJCE"; + private static final String PROVIDER_NAME = + System.getProperty("test.provider.name", "SunJCE"); // Blowfish Variable key length: 32 bits to 448 bits private static final int BLOWFISH_MIN_KEYSIZE = 32; private static final int BLOWFISH_MAX_KEYSIZE = 448; @@ -157,9 +160,9 @@ public static void main(String[] args) throws Exception { // PBE and public wrapper test. String[] publicPrivateAlgos = new String[] { "DiffieHellman", "DSA", "RSA" }; - Provider provider = Security.getProvider(SUN_JCE); + Provider provider = Security.getProvider(PROVIDER_NAME); if (provider == null) { - throw new RuntimeException("SUN_JCE provider not exist"); + throw new RuntimeException(PROVIDER_NAME + " provider not exist"); } test.wrapperPBEKeyTest(provider); @@ -269,7 +272,7 @@ private void wrapperPublicPriviteKeyTest(Provider p, String[] algorithms) System.out.println("Generate key pair (algorithm: " + algo + ", provider: " + p.getName() + ")"); KeyPairGenerator kpg = KeyPairGenerator.getInstance(algo); - kpg.initialize(512); + kpg.initialize(SecurityUtils.getTestKeySize(algo)); KeyPair kp = kpg.genKeyPair(); // key generated String algoWrap = "DES"; diff --git a/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/TestGeneral.java b/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/TestGeneral.java index bdc36b9a35e..66bc6d7f7fa 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/TestGeneral.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/TestGeneral.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -220,7 +220,8 @@ public static void main(String[] argv) throws Exception { SecretKey aes256 = new SecretKeySpec(DATA_32, "AES"); SecretKey any256 = new SecretKeySpec(DATA_32, "ANY"); PrivateKey priv = KeyPairGenerator.getInstance - ("RSA", "SunRsaSign").generateKeyPair().getPrivate(); + ("RSA", System.getProperty("test.provider.name", "SunRsaSign")) + .generateKeyPair().getPrivate(); String[] algos = { "AES/KW/PKCS5Padding", "AES/KW/NoPadding", "AES/KWP/NoPadding" @@ -228,7 +229,8 @@ public static void main(String[] argv) throws Exception { for (String a : algos) { System.out.println("Testing " + a); - Cipher c = Cipher.getInstance(a, "SunJCE"); + Cipher c = Cipher.getInstance(a, + System.getProperty("test.provider.name", "SunJCE")); int blkSize = c.getBlockSize(); diff --git a/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/TestKeySizeCheck.java b/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/TestKeySizeCheck.java index 4732836d6d9..ea8ac397ebb 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/TestKeySizeCheck.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/TestKeySizeCheck.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -61,7 +61,8 @@ public static void test(String algo, int[] invalidKeySizes) throws Exception { System.out.println("Testing " + algo); - Cipher c = Cipher.getInstance(algo, "SunJCE"); + Cipher c = Cipher.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); int[] modes = { Cipher.ENCRYPT_MODE, Cipher.WRAP_MODE }; for (int ks : invalidKeySizes) { diff --git a/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/XMLEncKAT.java b/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/XMLEncKAT.java index 90cfacf36fd..e9d9038ada9 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/XMLEncKAT.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/KeyWrap/XMLEncKAT.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -111,7 +111,8 @@ public static void testKeyWrap(String cAlg, byte[] cKeyVal, String cKeyAlg, String[] base64Wrapped) throws Exception { System.out.println("Testing " + cAlg + " Cipher with " + 8*cKeyVal.length + "-bit key"); - Cipher c = Cipher.getInstance(cAlg, "SunJCE"); + Cipher c = Cipher.getInstance(cAlg, + System.getProperty("test.provider.name", "SunJCE")); SecretKey cKey = new SecretKeySpec(cKeyVal, cKeyAlg); c.init(Cipher.UNWRAP_MODE, cKey); Key[] key = new SecretKey[base64Wrapped.length]; diff --git a/test/jdk/com/sun/crypto/provider/Cipher/PBE/DecryptWithoutParameters.java b/test/jdk/com/sun/crypto/provider/Cipher/PBE/DecryptWithoutParameters.java index 35cb5184441..f8af47d6e6d 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/PBE/DecryptWithoutParameters.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/PBE/DecryptWithoutParameters.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -113,7 +113,8 @@ public static void main(String argv[]) throws Exception { boolean status = true; for (String algo : PBES1ALGOS) { - Cipher cipher = Cipher.getInstance(algo, "SunJCE"); + Cipher cipher = Cipher.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); SecretKey key = new SecretKeySpec(new byte[5], algo); status = status && test(cipher, key, null); } @@ -122,7 +123,8 @@ public static void main(String argv[]) throws Exception { int iterCount = 123456; PBEParameterSpec spec = new PBEParameterSpec(salt, iterCount); for (String algo : PBES2ALGOS) { - Cipher cipher = Cipher.getInstance(algo, "SunJCE"); + Cipher cipher = Cipher.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); SecretKey key = new SecretKeySpec(new byte[5], algo); PBEKey key2 = new MyPBEKey(algo, new PBEKeySpec("phrase".toCharArray(), salt, iterCount)); diff --git a/test/jdk/com/sun/crypto/provider/Cipher/PBE/NegativeLength.java b/test/jdk/com/sun/crypto/provider/Cipher/PBE/NegativeLength.java index 9c4cc3663c1..736e0a9fe64 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/PBE/NegativeLength.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/PBE/NegativeLength.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -38,7 +38,9 @@ public class NegativeLength { public static void main(String[] args) throws Exception { SecretKeyFactory skf = SecretKeyFactory.getInstance( - "PBKDF2WithHmacSHA1", "SunJCE"); + "PBKDF2WithHmacSHA1", + System.getProperty("test.provider.name", "SunJCE")); + // Create a valid PBEKeySpec PBEKeySpec pbeks = new PBEKeySpec( diff --git a/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBEInvalidParamsTest.java b/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBEInvalidParamsTest.java index bb327b24743..cc15ac6dbc7 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBEInvalidParamsTest.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBEInvalidParamsTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -67,7 +67,8 @@ public static void main(String[] args) throws Exception { System.out.println("=>testing " + algo); SecretKeyFactory skf = SecretKeyFactory.getInstance(algo); SecretKey key = skf.generateSecret(ks); - Cipher c = Cipher.getInstance(algo, "SunJCE"); + Cipher c = Cipher.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); try { c.init(Cipher.ENCRYPT_MODE, key, INVALID_PARAMS); throw new Exception("Test Failed: expected IAPE is " + diff --git a/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBEKeyCleanupTest.java b/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBEKeyCleanupTest.java index 03da1d9c9a9..77cf745fb3b 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBEKeyCleanupTest.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBEKeyCleanupTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,6 +23,7 @@ /* * @test + * @library /test/lib * @modules java.base/com.sun.crypto.provider:+open * @run main/othervm PBEKeyCleanupTest * @summary Verify that key storage is cleared @@ -38,6 +39,7 @@ import javax.crypto.SecretKey; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.PBEKeySpec; +import jdk.test.lib.security.SecurityUtils; /** * Test that the array holding the key bytes is cleared when it is @@ -45,7 +47,8 @@ */ public class PBEKeyCleanupTest { - private final static String SunJCEProvider = "SunJCE"; + private final static String PROVIDER_NAME = + System.getProperty("test.provider.name", "SunJCE"); private static final String PASS_PHRASE = "some hidden string"; private static final int ITERATION_COUNT = 1000; @@ -60,19 +63,19 @@ private static void testPBESecret(String algorithm) throws Exception { char[] password = new char[] {'f', 'o', 'o'}; PBEKeySpec pbeKeySpec = new PBEKeySpec(password); SecretKeyFactory keyFac = - SecretKeyFactory.getInstance(algorithm, SunJCEProvider); + SecretKeyFactory.getInstance(algorithm, PROVIDER_NAME); testCleanupSecret(algorithm, keyFac.generateSecret(pbeKeySpec)); } private static void testPBKSecret(String algorithm) throws Exception { - byte[] salt = new byte[8]; + byte[] salt = new byte[SecurityUtils.getTestSaltSize()]; new Random().nextBytes(salt); char[] password = new char[] {'f', 'o', 'o'}; PBEKeySpec pbeKeySpec = new PBEKeySpec(PASS_PHRASE.toCharArray(), salt, ITERATION_COUNT, KEY_SIZE); SecretKeyFactory keyFac = - SecretKeyFactory.getInstance(algorithm, SunJCEProvider); + SecretKeyFactory.getInstance(algorithm, PROVIDER_NAME); testCleanupSecret(algorithm, keyFac.generateSecret(pbeKeySpec)); } diff --git a/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBEKeysAlgorithmNames.java b/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBEKeysAlgorithmNames.java index 9e2debc40f1..2a5a83e45b9 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBEKeysAlgorithmNames.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBEKeysAlgorithmNames.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -59,7 +59,8 @@ public static void main(String[] argv) throws Exception { for (String s : algs) { System.out.println("Testing " + s); - SecretKeyFactory skf = SecretKeyFactory.getInstance(s, "SunJCE"); + SecretKeyFactory skf = SecretKeyFactory.getInstance(s, + System.getProperty("test.provider.name", "SunJCE")); System.out.println(" Checking skf.getAlgorithm()"); if (!skf.getAlgorithm().equalsIgnoreCase(s)) { diff --git a/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBEParametersTest.java b/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBEParametersTest.java index 757a7663d27..f380ad58111 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBEParametersTest.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBEParametersTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -61,7 +61,8 @@ public static void main(String[] args) throws Exception { String algo = PBE_ALGOS[i]; SecretKeyFactory skf = SecretKeyFactory.getInstance(algo); SecretKey key = skf.generateSecret(ks); - Cipher c = Cipher.getInstance(algo, "SunJCE"); + Cipher c = Cipher.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); c.init(Cipher.ENCRYPT_MODE, key); c.doFinal(new byte[10]); // force the generation of parameters AlgorithmParameters params = c.getParameters(); diff --git a/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBESameBuffer/PBESameBuffer.java b/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBESameBuffer/PBESameBuffer.java index 4fe20f8cbac..cba73f325c6 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBESameBuffer/PBESameBuffer.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBESameBuffer/PBESameBuffer.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -81,7 +81,7 @@ public static void main(String[] args) { public boolean test(String[] args, PrintStream out) { boolean result = true; - Provider p = Security.getProvider("SunJCE"); + Provider p = Security.getProvider(System.getProperty("test.provider.name", "SunJCE")); for (int loop : OFFSETS) { OUTPUT_OFFSET = loop; diff --git a/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBESealedObject.java b/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBESealedObject.java index f7b80ea8ecc..fdf06edda1b 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBESealedObject.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/PBE/PBESealedObject.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -80,9 +80,12 @@ public class PBESealedObject { "PBEWithHmacSHA512/256AndAES_256", }; + private static final String PROVIDER_NAME = + System.getProperty("test.provider.name", "SunJCE"); + public static void main(String[] args) { PBESealedObject test = new PBESealedObject(); - Provider sunjce = Security.getProvider("SunJCE"); + Provider sunjce = Security.getProvider(PROVIDER_NAME); if (!test.runAll(sunjce, System.out)) { throw new RuntimeException("One or more tests have failed...."); @@ -163,7 +166,7 @@ public boolean runTest(Provider p, String algo, PrintStream out) return false; } - unsealedKey = (SecretKey) so.getObject(key, "SunJCE"); + unsealedKey = (SecretKey) so.getObject(key, PROVIDER_NAME); return Arrays.equals(unsealedKey.getEncoded(), key.getEncoded()); } catch (InvalidKeyException ex) { if (keyAlgo.endsWith("TRIPLEDES") || keyAlgo.endsWith("AES_256")) { diff --git a/test/jdk/com/sun/crypto/provider/Cipher/PBE/PKCS12Cipher.java b/test/jdk/com/sun/crypto/provider/Cipher/PBE/PKCS12Cipher.java index 9f80b0ae152..d19da00b638 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/PBE/PKCS12Cipher.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/PBE/PKCS12Cipher.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -84,7 +84,8 @@ public static void main(String[] argv) throws Exception { new SecureRandom().nextBytes(input); char[] PASSWD = { 'p','a','s','s','w','o','r','d' }; long start = System.currentTimeMillis(); - Provider p = Security.getProvider("SunJCE"); + Provider p = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); System.out.println("Testing provider " + p.getName() + "..."); runTest("PBEWithSHA1AndDESede", input, PASSWD, p); runTest("PBEWithSHA1AndRC2_40", input, PASSWD, p); diff --git a/test/jdk/com/sun/crypto/provider/Cipher/PBE/PKCS12CipherKAT.java b/test/jdk/com/sun/crypto/provider/Cipher/PBE/PKCS12CipherKAT.java index 7943e8d228f..a5911a91ebf 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/PBE/PKCS12CipherKAT.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/PBE/PKCS12CipherKAT.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -179,7 +179,8 @@ private static Test t(String alg, String plaintext, char[] password, static void runTests(Test[] tests) throws Exception { long start = System.currentTimeMillis(); - Provider p = Security.getProvider("SunJCE"); + Provider p = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); System.out.println("Testing provider " + p.getName() + "..."); Cipher.getInstance("PBEWithSHA1AndRC2_40", p); Cipher.getInstance("PBEWithSHA1AndDESede", p); diff --git a/test/jdk/com/sun/crypto/provider/Cipher/PBE/TestCipherKeyWrapperPBEKey.java b/test/jdk/com/sun/crypto/provider/Cipher/PBE/TestCipherKeyWrapperPBEKey.java index 2f1419a9303..f9e6ca78df0 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/PBE/TestCipherKeyWrapperPBEKey.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/PBE/TestCipherKeyWrapperPBEKey.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -83,7 +83,8 @@ public class TestCipherKeyWrapperPBEKey { public static void main(String[] args) { TestCipherKeyWrapperPBEKey test = new TestCipherKeyWrapperPBEKey(); - Provider sunjce = Security.getProvider("SunJCE"); + Provider sunjce = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); if (!test.runAll(sunjce, System.out)) { throw new RuntimeException("One or more tests have failed...."); diff --git a/test/jdk/com/sun/crypto/provider/Cipher/PBE/TestCipherPBECons.java b/test/jdk/com/sun/crypto/provider/Cipher/PBE/TestCipherPBECons.java index e3167068029..788f27bcb47 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/PBE/TestCipherPBECons.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/PBE/TestCipherPBECons.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -47,7 +47,8 @@ public class TestCipherPBECons { public static void main(String[] args) { TestCipherPBECons test = new TestCipherPBECons(); - Provider sunjce = Security.getProvider("SunJCE"); + Provider sunjce = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); if (!test.runAll(sunjce, System.out)) { throw new RuntimeException("One or more tests have failed...."); diff --git a/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEP.java b/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEP.java index 28d22e22f75..0775336ca26 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEP.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEP.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -47,9 +47,10 @@ public class TestOAEP { public static void main(String[] args) throws Exception { long start = System.currentTimeMillis(); - cp = Security.getProvider("SunJCE"); + cp = Security.getProvider(System.getProperty("test.provider.name", "SunJCE")); System.out.println("Testing provider " + cp.getName() + "..."); - Provider kfp = Security.getProvider("SunRsaSign"); + Provider kfp = Security.getProvider( + System.getProperty("test.provider.name", "SunRsaSign")); KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", kfp); kpg.initialize(768); KeyPair kp = kpg.generateKeyPair(); diff --git a/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEPPadding.java b/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEPPadding.java index fe1ca35fcc4..2a82f2214d4 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEPPadding.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEPPadding.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,6 +24,7 @@ /* * @test * @bug 8020081 8022669 + * @library /test/lib * @summary encryption/decryption test for using OAEPPadding with * OAEPParameterSpec specified and not specified during a Cipher.init(). * @author Anthony Scarpino @@ -43,7 +44,7 @@ import javax.crypto.spec.OAEPParameterSpec; import javax.crypto.IllegalBlockSizeException; import javax.crypto.spec.PSource; - +import jdk.test.lib.security.SecurityUtils; public class TestOAEPPadding { private static RSAPrivateKey privateKey; @@ -52,11 +53,14 @@ public class TestOAEPPadding { static boolean failed = false; public static void main(String args[]) throws Exception { - cp = Security.getProvider("SunJCE"); + cp = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); System.out.println("Testing provider " + cp.getName() + "..."); - Provider kfp = Security.getProvider("SunRsaSign"); - KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", kfp); - kpg.initialize(2048); + Provider kfp = Security.getProvider( + System.getProperty("test.providername", "SunRsaSign")); + String kpgAlgorithm = "RSA"; + KeyPairGenerator kpg = KeyPairGenerator.getInstance(kpgAlgorithm, kfp); + kpg.initialize(SecurityUtils.getTestKeySize(kpgAlgorithm)); KeyPair kp = kpg.generateKeyPair(); privateKey = (RSAPrivateKey)kp.getPrivate(); publicKey = (RSAPublicKey)kp.getPublic(); diff --git a/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEPParameterSpec.java b/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEPParameterSpec.java index 9f17da2a711..8578930dbc1 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEPParameterSpec.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEPParameterSpec.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -44,7 +44,8 @@ private static boolean runTest(String mdName, MGF1ParameterSpec mgfSpec, byte[] p) throws Exception { OAEPParameterSpec spec = new OAEPParameterSpec(mdName, "MGF1", mgfSpec, new PSource.PSpecified(p)); - cp = Security.getProvider("SunJCE"); + cp = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); System.out.println("Testing provider " + cp.getName() + "..."); AlgorithmParameters ap = AlgorithmParameters.getInstance("OAEP", cp); diff --git a/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEPWithParams.java b/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEPWithParams.java index 308171d766e..6cf66178da7 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEPWithParams.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEPWithParams.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,6 +24,7 @@ /* * @test * @bug 4923484 8146293 + * @library /test/lib * @summary encryption/decryption test for using OAEPParameterSpec. * @author Valerie Peng */ @@ -35,6 +36,7 @@ import javax.crypto.*; import javax.crypto.spec.PSource; import javax.crypto.spec.OAEPParameterSpec; +import jdk.test.lib.security.SecurityUtils; public class TestOAEPWithParams { @@ -54,11 +56,14 @@ public class TestOAEPWithParams { }; public static void main(String[] args) throws Exception { long start = System.currentTimeMillis(); - cp = Security.getProvider("SunJCE"); + cp = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); System.out.println("Testing provider " + cp.getName() + "..."); - Provider kfp = Security.getProvider("SunRsaSign"); - KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", kfp); - kpg.initialize(768); + Provider kfp = Security.getProvider( + System.getProperty("test.provider.name", "SunRsaSign")); + String kpgAlgorithm = "RSA"; + KeyPairGenerator kpg = KeyPairGenerator.getInstance(kpgAlgorithm, kfp); + kpg.initialize(SecurityUtils.getTestKeySize(kpgAlgorithm)); KeyPair kp = kpg.generateKeyPair(); privateKey = kp.getPrivate(); publicKey = kp.getPublic(); diff --git a/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEP_KAT.java b/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEP_KAT.java index 6d43ce1a715..3cbbfc3ba3f 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEP_KAT.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestOAEP_KAT.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -57,8 +57,10 @@ public class TestOAEP_KAT { public static void main(String[] args) throws Exception { long start = System.currentTimeMillis(); - Provider provider = Security.getProvider("SunJCE"); - Provider kfProvider = Security.getProvider("SunRsaSign"); + Provider provider = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); + Provider kfProvider = Security.getProvider( + System.getProperty("test.provider.name", "SunRsaSign")); System.out.println("Testing provider " + provider.getName() + "..."); Cipher c = Cipher.getInstance("RSA/ECB/OAEPwithSHA1andMGF1Padding", provider); KeyFactory kf = KeyFactory.getInstance("RSA", kfProvider); diff --git a/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestRSA.java b/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestRSA.java index 1e4c6ed10b1..576fc5fcd60 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestRSA.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/RSA/TestRSA.java @@ -168,7 +168,8 @@ public static void testKat(String alg, int mode, Key key, String in, String out, public static void main(String[] args) throws Exception { long start = System.currentTimeMillis(); - p = Security.getProvider("SunJCE"); + p = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); System.out.println("Testing provider " + p.getName() + "..."); KeyFactory kf; diff --git a/test/jdk/com/sun/crypto/provider/Cipher/TestCipher.java b/test/jdk/com/sun/crypto/provider/Cipher/TestCipher.java index b5e50c842a0..dd3568f2e19 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/TestCipher.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/TestCipher.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -44,7 +44,7 @@ */ public abstract class TestCipher { - private final String SUNJCE = "SunJCE"; + private final String PROVIDER_NAME = System.getProperty("test.provider.name", "SunJCE"); private final String ALGORITHM; private final String[] MODES; private final String[] PADDINGS; @@ -138,8 +138,8 @@ private void runTest(String mo, String pad, int keySize) out.println("Testing: " + TRANSFORMATION); // Initialization - Cipher ci = Cipher.getInstance(TRANSFORMATION, SUNJCE); - KeyGenerator kg = KeyGenerator.getInstance(ALGORITHM, SUNJCE); + Cipher ci = Cipher.getInstance(TRANSFORMATION, PROVIDER_NAME); + KeyGenerator kg = KeyGenerator.getInstance(ALGORITHM, PROVIDER_NAME); if (keySize != 0) { kg.init(keySize); } diff --git a/test/jdk/com/sun/crypto/provider/Cipher/TextLength/SameBufferOverwrite.java b/test/jdk/com/sun/crypto/provider/Cipher/TextLength/SameBufferOverwrite.java index d110c05a339..22da35e7e6b 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/TextLength/SameBufferOverwrite.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/TextLength/SameBufferOverwrite.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -44,9 +44,11 @@ public class SameBufferOverwrite { SameBufferOverwrite(String algo, String transformation) throws Exception { - KeyGenerator kg = KeyGenerator.getInstance(algo, "SunJCE"); + KeyGenerator kg = KeyGenerator.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); skey = kg.generateKey(); - c = Cipher.getInstance(transformation, "SunJCE"); + c = Cipher.getInstance(transformation, + System.getProperty("test.provider.name", "SunJCE")); } /* diff --git a/test/jdk/com/sun/crypto/provider/Cipher/UTIL/StrongOrUnlimited.java b/test/jdk/com/sun/crypto/provider/Cipher/UTIL/StrongOrUnlimited.java index 70908a23746..5c806df25bd 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/UTIL/StrongOrUnlimited.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/UTIL/StrongOrUnlimited.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -38,7 +38,8 @@ public static void main(String[] args) throws Exception { // decide if the installed jurisdiction policy file is the // unlimited version boolean isUnlimited = true; - Cipher c = Cipher.getInstance("AES", "SunJCE"); + Cipher c = Cipher.getInstance("AES", + System.getProperty("test.provider.name", "SunJCE")); try { c.init(Cipher.ENCRYPT_MODE, diff --git a/test/jdk/com/sun/crypto/provider/Cipher/UTIL/SunJCEGetInstance.java b/test/jdk/com/sun/crypto/provider/Cipher/UTIL/SunJCEGetInstance.java index d9bf59b63f0..6ba7f9a0d69 100644 --- a/test/jdk/com/sun/crypto/provider/Cipher/UTIL/SunJCEGetInstance.java +++ b/test/jdk/com/sun/crypto/provider/Cipher/UTIL/SunJCEGetInstance.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -40,9 +40,10 @@ public static void main(String[] args) throws Exception { Cipher jce; try{ + String providerName = System.getProperty("test.provider.name", "SunJCE"); // Remove SunJCE from Provider list - Provider prov = Security.getProvider("SunJCE"); - Security.removeProvider("SunJCE"); + Provider prov = Security.getProvider(providerName); + Security.removeProvider(providerName); // Create our own instance of SunJCE provider. Purposefully not // using SunJCE.getInstance() so we can have our own instance // for the test. diff --git a/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyAgreementPadding.java b/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyAgreementPadding.java index dc963bf6267..c863da6b4b4 100644 --- a/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyAgreementPadding.java +++ b/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyAgreementPadding.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2022, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -34,21 +34,22 @@ import java.security.KeyPairGenerator; import java.util.Arrays; import java.util.HexFormat; +import jdk.test.lib.security.SecurityUtils; public class DHKeyAgreementPadding { public static void main(String[] args) throws Exception { - - byte[] aliceSecret = new byte[80]; - byte[] bobSecret = new byte[80]; - - KeyAgreement alice = KeyAgreement.getInstance("DiffieHellman"); - KeyAgreement bob = KeyAgreement.getInstance("DiffieHellman"); + String kpgAlgorithm = "DiffieHellman"; + KeyAgreement alice = KeyAgreement.getInstance(kpgAlgorithm); + KeyAgreement bob = KeyAgreement.getInstance(kpgAlgorithm); + int keySizeBits = SecurityUtils.getTestKeySize(kpgAlgorithm); + byte[] aliceSecret = new byte[keySizeBits / 8]; + byte[] bobSecret = new byte[keySizeBits / 8]; // The probability of an error is 0.2% or 1/500. Try more times. for (int i = 0; i < 5000; i++) { - KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("DiffieHellman"); - keyPairGen.initialize(512); + KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance(kpgAlgorithm); + keyPairGen.initialize(keySizeBits); KeyPair aliceKeyPair = keyPairGen.generateKeyPair(); KeyPair bobKeyPair = keyPairGen.generateKeyPair(); diff --git a/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyFactory.java b/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyFactory.java index e12f3871ec2..753e7e1e197 100644 --- a/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyFactory.java +++ b/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyFactory.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -62,7 +62,8 @@ private void run() throws Exception { dhSkipParamSpec = new DHParameterSpec(skip1024Modulus, skip1024Base); - KeyPairGenerator kpgen = KeyPairGenerator.getInstance("DH", "SunJCE"); + KeyPairGenerator kpgen = KeyPairGenerator.getInstance("DH", + System.getProperty("test.provider.name", "SunJCE")); kpgen.initialize(dhSkipParamSpec); KeyPair kp = kpgen.generateKeyPair(); @@ -72,7 +73,8 @@ private void run() throws Exception { // get the private key encoding byte[] privKeyEnc = kp.getPrivate().getEncoded(); - KeyFactory kfac = KeyFactory.getInstance("DH", "SunJCE"); + KeyFactory kfac = KeyFactory.getInstance("DH", + System.getProperty("test.provider.name", "SunJCE")); X509EncodedKeySpec x509KeySpec = new X509EncodedKeySpec(pubKeyEnc); PublicKey pubKey = kfac.generatePublic(x509KeySpec); diff --git a/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyGenSpeed.java b/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyGenSpeed.java index b24f0a66fb9..c74161e20e3 100644 --- a/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyGenSpeed.java +++ b/test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyGenSpeed.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -87,7 +87,8 @@ public void run() throws Exception { // generate keyPairs using parameters KeyPairGenerator keyGen = - KeyPairGenerator.getInstance("DH", "SunJCE"); + KeyPairGenerator.getInstance("DH", + System.getProperty("test.provider.name", "SunJCE")); start = System.currentTimeMillis(); keyGen.initialize(spec); KeyPair keys = keyGen.generateKeyPair(); diff --git a/test/jdk/com/sun/crypto/provider/KeyAgreement/SameDHKeyStressTest.java b/test/jdk/com/sun/crypto/provider/KeyAgreement/SameDHKeyStressTest.java index 910104b98c5..9b7eec95d6d 100644 --- a/test/jdk/com/sun/crypto/provider/KeyAgreement/SameDHKeyStressTest.java +++ b/test/jdk/com/sun/crypto/provider/KeyAgreement/SameDHKeyStressTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -78,7 +78,8 @@ public static boolean runTest(String algo, int numParties, String secretAlgo) { Key[] keyArchives = new Key[numParties]; try { // generate AlogirhtmParameterSpec - AlgorithmParameterGenerator apg = AlgorithmParameterGenerator.getInstance("DH","SunJCE"); + AlgorithmParameterGenerator apg = AlgorithmParameterGenerator.getInstance("DH", + System.getProperty("test.provider.name", "SunJCE")); AlgorithmParameterSpec aps = new DHGenParameterSpec(512, 64); apg.init(aps); DHParameterSpec spec = apg.generateParameters(). @@ -139,8 +140,10 @@ class KAParticipant { public KAParticipant(String pName, String algo) throws NoSuchAlgorithmException, NoSuchProviderException { name = pName; algorithm = algo; - keyGen = KeyPairGenerator.getInstance(algo,"SunJCE"); - ka = KeyAgreement.getInstance(algo,"SunJCE"); + keyGen = KeyPairGenerator.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); + ka = KeyAgreement.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); } public void initialize(AlgorithmParameterSpec spec) throws InvalidAlgorithmParameterException, InvalidKeyException { diff --git a/test/jdk/com/sun/crypto/provider/KeyAgreement/SupportedDHKeys.java b/test/jdk/com/sun/crypto/provider/KeyAgreement/SupportedDHKeys.java index 1faaa6783b4..71f383079e0 100644 --- a/test/jdk/com/sun/crypto/provider/KeyAgreement/SupportedDHKeys.java +++ b/test/jdk/com/sun/crypto/provider/KeyAgreement/SupportedDHKeys.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -55,7 +55,8 @@ private enum SupportedKeySize { public static void main(String[] args) throws Exception { for (SupportedKeySize keySize : SupportedKeySize.values()) { System.out.println("Checking " + keySize.primeSize + " ..."); - KeyPairGenerator kpg = KeyPairGenerator.getInstance("DH", "SunJCE"); + KeyPairGenerator kpg = KeyPairGenerator.getInstance("DH", + System.getProperty("test.provider.name", "SunJCE")); kpg.initialize(keySize.primeSize); KeyPair kp = kpg.generateKeyPair(); checkKeyPair(kp, keySize.primeSize); diff --git a/test/jdk/com/sun/crypto/provider/KeyAgreement/SupportedDHParamGens.java b/test/jdk/com/sun/crypto/provider/KeyAgreement/SupportedDHParamGens.java index 27f010dd141..96a5754cfa6 100644 --- a/test/jdk/com/sun/crypto/provider/KeyAgreement/SupportedDHParamGens.java +++ b/test/jdk/com/sun/crypto/provider/KeyAgreement/SupportedDHParamGens.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -49,12 +49,14 @@ public static void main(String[] args) throws Exception { System.out.println("Checking " + primeSize + " ..."); AlgorithmParameterGenerator apg = - AlgorithmParameterGenerator.getInstance("DH", "SunJCE"); + AlgorithmParameterGenerator.getInstance("DH", + System.getProperty("test.provider.name", "SunJCE")); apg.init(primeSize); AlgorithmParameters ap = apg.generateParameters(); DHParameterSpec spec = ap.getParameterSpec(DHParameterSpec.class); - KeyPairGenerator kpg = KeyPairGenerator.getInstance("DH", "SunJCE"); + KeyPairGenerator kpg = KeyPairGenerator.getInstance("DH", + System.getProperty("test.provider.name", "SunJCE")); kpg.initialize(spec); KeyPair kp = kpg.generateKeyPair(); checkKeyPair(kp, primeSize); diff --git a/test/jdk/com/sun/crypto/provider/KeyAgreement/TestExponentSize.java b/test/jdk/com/sun/crypto/provider/KeyAgreement/TestExponentSize.java index 2367c361d57..ade1d1fb6e9 100644 --- a/test/jdk/com/sun/crypto/provider/KeyAgreement/TestExponentSize.java +++ b/test/jdk/com/sun/crypto/provider/KeyAgreement/TestExponentSize.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -81,7 +81,8 @@ BigInteger getBigIntValue() { public static void main(String[] args) throws Exception { KeyPair kp; - KeyPairGenerator kpg = KeyPairGenerator.getInstance("DH", "SunJCE"); + KeyPairGenerator kpg = KeyPairGenerator.getInstance("DH", + System.getProperty("test.provider.name", "SunJCE")); // Sun's default uses a default psize of 3072 and // lsize of (pSize / 2) but at least 384 bits diff --git a/test/jdk/com/sun/crypto/provider/KeyAgreement/UnsupportedDHKeys.java b/test/jdk/com/sun/crypto/provider/KeyAgreement/UnsupportedDHKeys.java index d2ef5fab807..dff10c3d21a 100644 --- a/test/jdk/com/sun/crypto/provider/KeyAgreement/UnsupportedDHKeys.java +++ b/test/jdk/com/sun/crypto/provider/KeyAgreement/UnsupportedDHKeys.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -61,7 +61,8 @@ public static void main(String[] args) throws Exception { try { System.out.println("Checking " + keySize.primeSize + " ..."); KeyPairGenerator kpg = - KeyPairGenerator.getInstance("DH", "SunJCE"); + KeyPairGenerator.getInstance("DH", + System.getProperty("test.provider.name", "SunJCE")); kpg.initialize(keySize.primeSize); throw new Exception("Should not support " + keySize.primeSize); diff --git a/test/jdk/com/sun/crypto/provider/KeyFactory/PBKDF2HmacSHA1FactoryTest.java b/test/jdk/com/sun/crypto/provider/KeyFactory/PBKDF2HmacSHA1FactoryTest.java index 1f2fa128db8..e5c8bb63aa7 100644 --- a/test/jdk/com/sun/crypto/provider/KeyFactory/PBKDF2HmacSHA1FactoryTest.java +++ b/test/jdk/com/sun/crypto/provider/KeyFactory/PBKDF2HmacSHA1FactoryTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -69,7 +69,8 @@ public class PBKDF2HmacSHA1FactoryTest { }; private static void test() throws Exception { - SecretKeyFactory skf = SecretKeyFactory.getInstance(ALGO, "SunJCE"); + SecretKeyFactory skf = SecretKeyFactory.getInstance(ALGO, + System.getProperty("test.provider.name", "SunJCE")); for (int i = 0; i < TEST_VECTORS.length; i++) { System.out.println("=>Testing vector#" + (i+1)); diff --git a/test/jdk/com/sun/crypto/provider/KeyFactory/TestProviderLeak.java b/test/jdk/com/sun/crypto/provider/KeyFactory/TestProviderLeak.java index 650e743baa9..b2122d5691b 100644 --- a/test/jdk/com/sun/crypto/provider/KeyFactory/TestProviderLeak.java +++ b/test/jdk/com/sun/crypto/provider/KeyFactory/TestProviderLeak.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,6 +24,7 @@ /* * @test * @bug 6578538 8027624 + * @library /test/lib * @summary com.sun.crypto.provider.SunJCE instance leak using KRB5 and * LoginContext * @author Brad Wetmore @@ -45,6 +46,7 @@ import java.util.*; import java.util.concurrent.*; +import jdk.test.lib.security.SecurityUtils; public class TestProviderLeak { private static final int MB = 1024 * 1024; @@ -106,9 +108,10 @@ private static void dumpMemoryStats(String s) throws Exception { public static void main(String [] args) throws Exception { // Prepare the test final SecretKeyFactory skf = - SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1", "SunJCE"); + SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1", + System.getProperty("test.provider.name", "SunJCE")); final PBEKeySpec pbeKS = new PBEKeySpec( - "passPhrase".toCharArray(), new byte [] { 0 }, 5, 512); + "passPhrase".toCharArray(), new byte [SecurityUtils.getTestSaltSize()], 1000, 512); ExecutorService executor = Executors.newSingleThreadExecutor(); Callable task = new Callable() { diff --git a/test/jdk/com/sun/crypto/provider/KeyGenerator/Test4628062.java b/test/jdk/com/sun/crypto/provider/KeyGenerator/Test4628062.java index 04ca4944aff..f8502ce2bf1 100644 --- a/test/jdk/com/sun/crypto/provider/KeyGenerator/Test4628062.java +++ b/test/jdk/com/sun/crypto/provider/KeyGenerator/Test4628062.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -44,7 +44,8 @@ public class Test4628062 { private static final int[] HMACSHA512_256_SIZES = { 32 }; public boolean execute(String algo, int[] keySizes) throws Exception { - KeyGenerator kg = KeyGenerator.getInstance(algo, "SunJCE"); + KeyGenerator kg = KeyGenerator.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); // TEST FIX 4628062 Key keyWithDefaultSize = kg.generateKey(); diff --git a/test/jdk/com/sun/crypto/provider/KeyGenerator/Test6227536.java b/test/jdk/com/sun/crypto/provider/KeyGenerator/Test6227536.java index 43de6ead59a..db8f78af835 100644 --- a/test/jdk/com/sun/crypto/provider/KeyGenerator/Test6227536.java +++ b/test/jdk/com/sun/crypto/provider/KeyGenerator/Test6227536.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2022, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -38,7 +38,8 @@ public class Test6227536 { String[] keyGensToTest = new String[]{"HmacSHA1", "HmacMD5"}; public boolean execute(String algo) throws Exception { - KeyGenerator kg = KeyGenerator.getInstance(algo, "SunJCE"); + KeyGenerator kg = KeyGenerator.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); Utils.runAndCheckException(() -> kg.init(0), IllegalArgumentException.class); diff --git a/test/jdk/com/sun/crypto/provider/KeyGenerator/TestExplicitKeyLength.java b/test/jdk/com/sun/crypto/provider/KeyGenerator/TestExplicitKeyLength.java index fd53497a4b4..6a0c2419fcc 100644 --- a/test/jdk/com/sun/crypto/provider/KeyGenerator/TestExplicitKeyLength.java +++ b/test/jdk/com/sun/crypto/provider/KeyGenerator/TestExplicitKeyLength.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -41,7 +41,8 @@ public class TestExplicitKeyLength { { 64, 80 }; // in bits public static void runTest(String algo, int keysize) throws Exception { - KeyGenerator kg = KeyGenerator.getInstance(algo, "SunJCE"); + KeyGenerator kg = KeyGenerator.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); kg.init(keysize); Key generatedKey = kg.generateKey(); int actualSizeInBits = generatedKey.getEncoded().length*8; diff --git a/test/jdk/com/sun/crypto/provider/Mac/DigestCloneabilityTest.java b/test/jdk/com/sun/crypto/provider/Mac/DigestCloneabilityTest.java index 2c54237fac5..5fac9ffc72d 100644 --- a/test/jdk/com/sun/crypto/provider/Mac/DigestCloneabilityTest.java +++ b/test/jdk/com/sun/crypto/provider/Mac/DigestCloneabilityTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -40,7 +40,8 @@ public static void main(String[] args) throws Exception { // make SampleProvider the most preferred, so its digest impl is picked int status = Security.insertProviderAt(p, 1); try { - Mac mac = Mac.getInstance(ALGO, "SunJCE"); + Mac mac = Mac.getInstance(ALGO, + System.getProperty("test.provider.name", "SunJCE")); // do a complete mac generation and check if the supplied // digest is used mac.init(new SecretKeySpec(new byte[512>>3], ALGO)); @@ -72,7 +73,8 @@ public static class CloneableDigest extends MessageDigestSpi public CloneableDigest() throws NoSuchAlgorithmException { try { - md = MessageDigest.getInstance("SHA-512", "SUN"); + md = MessageDigest.getInstance("SHA-512", + System.getProperty("test.provider.name", "SUN")); } catch (NoSuchProviderException nspe) { // should never happen } diff --git a/test/jdk/com/sun/crypto/provider/Mac/EmptyByteBufferTest.java b/test/jdk/com/sun/crypto/provider/Mac/EmptyByteBufferTest.java index 9b1dd1cb373..dafc6023a79 100644 --- a/test/jdk/com/sun/crypto/provider/Mac/EmptyByteBufferTest.java +++ b/test/jdk/com/sun/crypto/provider/Mac/EmptyByteBufferTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -51,7 +51,8 @@ public void doTest(String alg) throws NoSuchAlgorithmException, SecretKey key = Utils.getSecretKeySpec(); // instantiate Mac object and init it with a SecretKey - Mac mac = Mac.getInstance(alg, "SunJCE"); + Mac mac = Mac.getInstance(alg, + System.getProperty("test.provider.name", "SunJCE")); mac.init(key); // prepare buffer diff --git a/test/jdk/com/sun/crypto/provider/Mac/HmacPBESHA1.java b/test/jdk/com/sun/crypto/provider/Mac/HmacPBESHA1.java index 8f72f5b6aae..1222736f6f9 100644 --- a/test/jdk/com/sun/crypto/provider/Mac/HmacPBESHA1.java +++ b/test/jdk/com/sun/crypto/provider/Mac/HmacPBESHA1.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -49,7 +49,8 @@ public class HmacPBESHA1 { }; private static final int[] MAC_LENGTHS = { 20, 20, 28, 32, 48, 64, 28, 32 }; private static final String KEY_ALGO = "PBE"; - private static final String PROVIDER = "SunJCE"; + private static final String PROVIDER = + System.getProperty("test.provider.name", "SunJCE"); private static SecretKey key = null; diff --git a/test/jdk/com/sun/crypto/provider/Mac/HmacSaltLengths.java b/test/jdk/com/sun/crypto/provider/Mac/HmacSaltLengths.java index a7a5a8e0ee9..aa2ef2ae7de 100644 --- a/test/jdk/com/sun/crypto/provider/Mac/HmacSaltLengths.java +++ b/test/jdk/com/sun/crypto/provider/Mac/HmacSaltLengths.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -91,7 +91,8 @@ public static void main(String[] argv) throws Exception { new SecureRandom().nextBytes(input); char[] PASSWD = { 'p','a','s','s','w','o','r','d' }; long start = System.currentTimeMillis(); - Provider p = Security.getProvider("SunJCE"); + Provider p = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); System.out.println("Testing provider " + p.getName() + "..."); for (String algo : ALGOS) { runTest(algo, input, PASSWD, p); diff --git a/test/jdk/com/sun/crypto/provider/Mac/LargeByteBufferTest.java b/test/jdk/com/sun/crypto/provider/Mac/LargeByteBufferTest.java index f294b67743b..4b2f8d8abc7 100644 --- a/test/jdk/com/sun/crypto/provider/Mac/LargeByteBufferTest.java +++ b/test/jdk/com/sun/crypto/provider/Mac/LargeByteBufferTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -53,7 +53,8 @@ public void doTest(String alg) throws NoSuchAlgorithmException, SecretKey key = Utils.getSecretKeySpec(); // instantiate Mac object and init it with a SecretKey - Mac mac = Mac.getInstance(alg, "SunJCE"); + Mac mac = Mac.getInstance(alg, + System.getProperty("test.provider.name", "SunJCE")); mac.init(key); // prepare buffer diff --git a/test/jdk/com/sun/crypto/provider/Mac/MacClone.java b/test/jdk/com/sun/crypto/provider/Mac/MacClone.java index 46e797a189a..e66b71ec1a3 100644 --- a/test/jdk/com/sun/crypto/provider/Mac/MacClone.java +++ b/test/jdk/com/sun/crypto/provider/Mac/MacClone.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -64,7 +64,8 @@ private static void doTest(String algo, SecretKey skey, // // Clone an uninitialized Mac object // - Mac mac = Mac.getInstance(algo, "SunJCE"); + Mac mac = Mac.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); Mac macClone = (Mac)mac.clone(); System.out.println(macClone.getProvider().toString()); System.out.println(macClone.getAlgorithm()); @@ -81,7 +82,8 @@ private static void doTest(String algo, SecretKey skey, // // Clone an initialized Mac object // - mac = Mac.getInstance(algo, "SunJCE"); + mac = Mac.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); mac.init(skey, params); macClone = (Mac)mac.clone(); System.out.println(macClone.getProvider().toString()); diff --git a/test/jdk/com/sun/crypto/provider/Mac/MacKAT.java b/test/jdk/com/sun/crypto/provider/Mac/MacKAT.java index b75359e2ddf..9721668ea91 100644 --- a/test/jdk/com/sun/crypto/provider/Mac/MacKAT.java +++ b/test/jdk/com/sun/crypto/provider/Mac/MacKAT.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -333,7 +333,8 @@ private static Test t(String alg, byte[] input, String macvalue, byte[] key) { static void runTests(Test[] tests) throws Exception { long start = System.currentTimeMillis(); - Provider p = Security.getProvider("SunJCE"); + Provider p = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); System.out.println("Testing provider " + p.getName() + "..."); for (int i = 0; i < tests.length; i++) { Test test = tests[i]; diff --git a/test/jdk/com/sun/crypto/provider/Mac/MacSameTest.java b/test/jdk/com/sun/crypto/provider/Mac/MacSameTest.java index 598ea6a910c..e8b8351c974 100644 --- a/test/jdk/com/sun/crypto/provider/Mac/MacSameTest.java +++ b/test/jdk/com/sun/crypto/provider/Mac/MacSameTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -63,7 +63,8 @@ public void doTest(String algo) throws NoSuchAlgorithmException, NoSuchProviderException, InvalidKeyException { Mac mac; try { - mac = Mac.getInstance(algo, "SunJCE"); + mac = Mac.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); } catch (NoSuchAlgorithmException nsae) { // depending on Solaris configuration, // it can support HMAC or not with Mac diff --git a/test/jdk/com/sun/crypto/provider/Mac/NullByteBufferTest.java b/test/jdk/com/sun/crypto/provider/Mac/NullByteBufferTest.java index d71d4f96317..a4f3e441cb3 100644 --- a/test/jdk/com/sun/crypto/provider/Mac/NullByteBufferTest.java +++ b/test/jdk/com/sun/crypto/provider/Mac/NullByteBufferTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -51,7 +51,8 @@ public void doTest(String alg) throws NoSuchAlgorithmException, SecretKey key = Utils.getSecretKeySpec(); // instantiate Mac object and init it with a SecretKey - Mac mac = Mac.getInstance(alg, "SunJCE"); + Mac mac = Mac.getInstance(alg, + System.getProperty("test.provider.name", "SunJCE")); mac.init(key); try { diff --git a/test/jdk/com/sun/crypto/provider/NSASuiteB/TestAESOids.java b/test/jdk/com/sun/crypto/provider/NSASuiteB/TestAESOids.java index 062c34ceda3..445ccf8c739 100644 --- a/test/jdk/com/sun/crypto/provider/NSASuiteB/TestAESOids.java +++ b/test/jdk/com/sun/crypto/provider/NSASuiteB/TestAESOids.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -51,7 +51,8 @@ */ public class TestAESOids { - private static final String PROVIDER_NAME = "SunJCE"; + private static final String PROVIDER_NAME = + System.getProperty("test.provider.name", "SunJCE"); private static final byte[] INPUT = "1234567890123456".getBytes(); private static final List DATA = Arrays.asList( diff --git a/test/jdk/com/sun/crypto/provider/NSASuiteB/TestAESWrapOids.java b/test/jdk/com/sun/crypto/provider/NSASuiteB/TestAESWrapOids.java index a75694be832..9b99ece8bda 100644 --- a/test/jdk/com/sun/crypto/provider/NSASuiteB/TestAESWrapOids.java +++ b/test/jdk/com/sun/crypto/provider/NSASuiteB/TestAESWrapOids.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -46,7 +46,8 @@ */ public class TestAESWrapOids { - private static final String PROVIDER_NAME = "SunJCE"; + private static final String PROVIDER_NAME = + System.getProperty("test.provider.name", "SunJCE"); private static final List DATA = Arrays.asList( new DataTuple("2.16.840.1.101.3.4.1.5", "AESWrap_128"), diff --git a/test/jdk/com/sun/crypto/provider/NSASuiteB/TestHmacSHAOids.java b/test/jdk/com/sun/crypto/provider/NSASuiteB/TestHmacSHAOids.java index 3ac097fe0ea..30989b94050 100644 --- a/test/jdk/com/sun/crypto/provider/NSASuiteB/TestHmacSHAOids.java +++ b/test/jdk/com/sun/crypto/provider/NSASuiteB/TestHmacSHAOids.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -41,7 +41,8 @@ */ public class TestHmacSHAOids { - private static final String PROVIDER_NAME = "SunJCE"; + private static final String PROVIDER_NAME = + System.getProperty("test.provider.name", "SunJCE"); private static final byte[] INPUT = "1234567890".getBytes(); private static final List DATA = Arrays.asList( diff --git a/test/jdk/com/sun/crypto/provider/TLS/TestKeyMaterial.java b/test/jdk/com/sun/crypto/provider/TLS/TestKeyMaterial.java index 983e8acb4c3..b23390f0e50 100644 --- a/test/jdk/com/sun/crypto/provider/TLS/TestKeyMaterial.java +++ b/test/jdk/com/sun/crypto/provider/TLS/TestKeyMaterial.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -47,7 +47,8 @@ public class TestKeyMaterial extends Utils { private static int PREFIX_LENGTH = "km-master: ".length(); public static void main(String[] args) throws Exception { - Provider provider = Security.getProvider("SunJCE"); + Provider provider = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); InputStream in = new FileInputStream(new File(BASE, "keymatdata.txt")); BufferedReader reader = new BufferedReader(new InputStreamReader(in)); diff --git a/test/jdk/com/sun/crypto/provider/TLS/TestLeadingZeroes.java b/test/jdk/com/sun/crypto/provider/TLS/TestLeadingZeroes.java index bf47477b135..fec6d24c0ef 100644 --- a/test/jdk/com/sun/crypto/provider/TLS/TestLeadingZeroes.java +++ b/test/jdk/com/sun/crypto/provider/TLS/TestLeadingZeroes.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -47,7 +47,8 @@ public class TestLeadingZeroes { - private static final String SUNJCE = "SunJCE"; + private static final String PROVIDER_NAME = + System.getProperty("test.provider.name", "SunJCE"); // Hex formatter to upper case with ":" delimiter private static final HexFormat HEX_FORMATTER = HexFormat.ofDelimiter(":").withUpperCase(); @@ -73,7 +74,7 @@ private void run() throws Exception { kfac.generatePrivate(new PKCS8EncodedKeySpec(bobPrivKeyEnc)); // generate normal shared secret - KeyAgreement aliceKeyAgree = KeyAgreement.getInstance("DH", SUNJCE); + KeyAgreement aliceKeyAgree = KeyAgreement.getInstance("DH", PROVIDER_NAME); aliceKeyAgree.init(alicePrivKey); aliceKeyAgree.doPhase(bobPubKey, true); byte[] sharedSecret = aliceKeyAgree.generateSecret(); diff --git a/test/jdk/com/sun/crypto/provider/TLS/TestMasterSecret.java b/test/jdk/com/sun/crypto/provider/TLS/TestMasterSecret.java index 10f6ddc4019..f34bdff2ef7 100644 --- a/test/jdk/com/sun/crypto/provider/TLS/TestMasterSecret.java +++ b/test/jdk/com/sun/crypto/provider/TLS/TestMasterSecret.java @@ -49,7 +49,8 @@ public class TestMasterSecret extends Utils { private static int PREFIX_LENGTH = "m-premaster: ".length(); public static void main(String[] args) throws Exception { - Provider provider = Security.getProvider("SunJCE"); + Provider provider = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); InputStream in = new FileInputStream(new File(BASE, "masterdata.txt")); BufferedReader reader = new BufferedReader(new InputStreamReader(in)); diff --git a/test/jdk/com/sun/crypto/provider/TLS/TestPRF.java b/test/jdk/com/sun/crypto/provider/TLS/TestPRF.java index 577927ea883..d35232431bf 100644 --- a/test/jdk/com/sun/crypto/provider/TLS/TestPRF.java +++ b/test/jdk/com/sun/crypto/provider/TLS/TestPRF.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -47,7 +47,8 @@ public class TestPRF extends Utils { private static int PREFIX_LENGTH = "prf-output: ".length(); public static void main(String[] args) throws Exception { - Provider provider = Security.getProvider("SunJCE"); + Provider provider = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); InputStream in = new FileInputStream(new File(BASE, "prfdata.txt")); BufferedReader reader = new BufferedReader(new InputStreamReader(in)); diff --git a/test/jdk/com/sun/crypto/provider/TLS/TestPRF12.java b/test/jdk/com/sun/crypto/provider/TLS/TestPRF12.java index dffda070e47..692fc630f9b 100644 --- a/test/jdk/com/sun/crypto/provider/TLS/TestPRF12.java +++ b/test/jdk/com/sun/crypto/provider/TLS/TestPRF12.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -50,7 +50,8 @@ public class TestPRF12 extends Utils { private static int PREFIX_LENGTH = "prf-output: ".length(); public static void main(String[] args) throws Exception { - Provider provider = Security.getProvider("SunJCE"); + Provider provider = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); InputStream in = new FileInputStream(new File(BASE, "prf12data.txt")); BufferedReader reader = new BufferedReader(new InputStreamReader(in)); diff --git a/test/jdk/com/sun/crypto/provider/TLS/TestPremaster.java b/test/jdk/com/sun/crypto/provider/TLS/TestPremaster.java index b95b0855dd0..096af76cfe4 100644 --- a/test/jdk/com/sun/crypto/provider/TLS/TestPremaster.java +++ b/test/jdk/com/sun/crypto/provider/TLS/TestPremaster.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -41,7 +41,8 @@ public class TestPremaster { public static void main(String[] args) throws Exception { - Provider provider = Security.getProvider("SunJCE"); + Provider provider = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); KeyGenerator kg; diff --git a/test/jdk/com/sun/jdi/ClassesByName2Test.java b/test/jdk/com/sun/jdi/ClassesByName2Test.java index acc186e7225..b8f517d0448 100644 --- a/test/jdk/com/sun/jdi/ClassesByName2Test.java +++ b/test/jdk/com/sun/jdi/ClassesByName2Test.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -58,7 +58,8 @@ public static void main(String[] args){ Thread one = DebuggeeWrapper.newThread (() -> { try { java.security.KeyPairGenerator keyGen = - java.security.KeyPairGenerator.getInstance("DSA", "SUN"); + java.security.KeyPairGenerator.getInstance("DSA", + System.getProperty("test.provider.name", "SUN")); } catch (Exception e) { e.printStackTrace(); } diff --git a/test/jdk/com/sun/org/apache/xml/internal/security/SignatureKeyInfo.java b/test/jdk/com/sun/org/apache/xml/internal/security/SignatureKeyInfo.java index d1de2030c24..793232654b6 100644 --- a/test/jdk/com/sun/org/apache/xml/internal/security/SignatureKeyInfo.java +++ b/test/jdk/com/sun/org/apache/xml/internal/security/SignatureKeyInfo.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -62,6 +62,7 @@ import java.io.File; import java.math.BigInteger; import java.security.*; +import jdk.test.lib.security.SecurityUtils; import static jdk.test.lib.Asserts.assertEquals; @@ -160,7 +161,7 @@ private static void addKeyInfoData(KeyInfo keyInfo, String algorithm) throws Exc private static KeyPair getKeyPair(String algorithm) throws NoSuchAlgorithmException { KeyPairGenerator keyGen = KeyPairGenerator.getInstance(algorithm); - keyGen.initialize(2048); + keyGen.initialize(SecurityUtils.getTestKeySize(algorithm)); return keyGen.genKeyPair(); } diff --git a/test/jdk/java/awt/Graphics2D/LargeWindowPaintTest.java b/test/jdk/java/awt/Graphics2D/LargeWindowPaintTest.java index 991c22938b8..2c61a29aacb 100644 --- a/test/jdk/java/awt/Graphics2D/LargeWindowPaintTest.java +++ b/test/jdk/java/awt/Graphics2D/LargeWindowPaintTest.java @@ -33,25 +33,14 @@ */ /* - * @test id=ZSinglegen + * @test id=Z * @bug 8240654 * @summary Test painting a large window works * @key headful * @requires (os.family == "windows") - * @requires vm.gc.ZSinglegen - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -Dsun.java2d.uiScale=1 LargeWindowPaintTest - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -Dsun.java2d.uiScale=1 -Dsun.java2d.d3d=false LargeWindowPaintTest - */ - -/* - * @test id=ZGenerational - * @bug 8240654 - * @summary Test painting a large window works - * @key headful - * @requires (os.family == "windows") - * @requires vm.gc.ZGenerational - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Dsun.java2d.uiScale=1 LargeWindowPaintTest - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Dsun.java2d.uiScale=1 -Dsun.java2d.d3d=false LargeWindowPaintTest + * @requires vm.gc.Z + * @run main/othervm -XX:+UseZGC -Dsun.java2d.uiScale=1 LargeWindowPaintTest + * @run main/othervm -XX:+UseZGC -Dsun.java2d.uiScale=1 -Dsun.java2d.d3d=false LargeWindowPaintTest */ import java.awt.Color; diff --git a/test/jdk/java/awt/a11y/AccessibleJTableTest.java b/test/jdk/java/awt/a11y/AccessibleJTableTest.java index fc62259ca38..0f05dd4e09e 100644 --- a/test/jdk/java/awt/a11y/AccessibleJTableTest.java +++ b/test/jdk/java/awt/a11y/AccessibleJTableTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2024, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2021, JetBrains s.r.o.. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -26,22 +26,22 @@ * @test * @bug 8267388 * @summary Test implementation of NSAccessibilityTable protocol peer - * @author Artem.Semenov@jetbrains.com * @run main/manual AccessibleJTableTest * @requires (os.family == "windows" | os.family == "mac") */ -import javax.swing.*; -import javax.swing.event.TableModelEvent; -import javax.swing.event.TableModelListener; -import javax.swing.table.AbstractTableModel; -import javax.swing.table.TableModel; - -import java.awt.*; +import java.awt.FlowLayout; +import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; +import javax.swing.JButton; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTable; +import javax.swing.SwingUtilities; +import javax.swing.table.AbstractTableModel; public class AccessibleJTableTest extends AccessibleComponentTest { private static final String[] columnNames = {"One", "Two", "Three"}; @@ -67,6 +67,7 @@ public void createUI() { + "If you can hear table cells ctrl+tab further and press PASS, otherwise press FAIL.\n"; JTable table = new JTable(data, columnNames); + table.setPreferredScrollableViewportSize(table.getPreferredSize()); JPanel panel = new JPanel(); panel.setLayout(new FlowLayout()); JScrollPane scrollPane = new JScrollPane(table); @@ -82,12 +83,13 @@ public void createUIDraggable() { + "Turn screen reader on, and Tab to the table.\n" + "Using arrow keys navigate to the last cell in the first row in the table." + "Screen reader should announce it as \"Column 3 row 1\"\n\n" - + "Using mouse drag the header of the last culumn so the last column becomes the first one." + + "Using mouse drag the header of the last column so the last column becomes the first one." + "Wait for the screen reader to finish announcing new position in table.\n\n" + "If new position in table corresponds to the new table layout ctrl+tab further " + "and press PASS, otherwise press FAIL.\n"; JTable table = new JTable(data, columnNames); + table.setPreferredScrollableViewportSize(table.getPreferredSize()); JPanel panel = new JPanel(); panel.setLayout(new FlowLayout()); JScrollPane scrollPane = new JScrollPane(table); @@ -105,7 +107,9 @@ public void createUINamed() { + "If you can hear second table name: \"second table\" - ctrl+tab further and press PASS, otherwise press FAIL.\n"; JTable table = new JTable(data, columnNames); + table.setPreferredScrollableViewportSize(table.getPreferredSize()); JTable secondTable = new JTable(data, columnNames); + secondTable.setPreferredScrollableViewportSize(secondTable.getPreferredSize()); secondTable.getAccessibleContext().setAccessibleName("Second table"); JPanel panel = new JPanel(); panel.setLayout(new FlowLayout()); @@ -126,8 +130,8 @@ public void createUIWithChangingContent() { + "If you hear changes in the table - ctrl+tab further and press PASS, otherwise press FAIL.\n"; JTable table = new JTable(new TestTableModel(3, 3)); - - JPanel panel = new JPanel(); + table.setPreferredScrollableViewportSize(table.getPreferredSize()); + JPanel panel = new JPanel(); panel.setLayout(new FlowLayout()); JScrollPane scrollPane = new JScrollPane(table); panel.add(scrollPane); diff --git a/test/jdk/java/awt/print/PrinterJob/AlphaPrintTest.java b/test/jdk/java/awt/print/PrinterJob/AlphaPrintTest.java index 5214ab11ec5..9a1ff616ee9 100644 --- a/test/jdk/java/awt/print/PrinterJob/AlphaPrintTest.java +++ b/test/jdk/java/awt/print/PrinterJob/AlphaPrintTest.java @@ -22,23 +22,13 @@ */ /* - * @test id=ZSinglegen + * @test id=Z * @bug 8240654 * @summary Test printing alpha colors - banded printing works with ZGC. * @key headful printer * @requires (os.family == "windows") - * @requires vm.gc.ZSinglegen - * @run main/manual/othervm -XX:+UseZGC -XX:-ZGenerational -Dsun.java2d.d3d=false AlphaPrintTest - */ - -/* - * @test id=ZGenerational - * @bug 8240654 - * @summary Test printing alpha colors - banded printing works with ZGC. - * @key headful printer - * @requires (os.family == "windows") - * @requires vm.gc.ZGenerational - * @run main/manual/othervm -XX:+UseZGC -XX:+ZGenerational -Dsun.java2d.d3d=false AlphaPrintTest + * @requires vm.gc.Z + * @run main/manual/othervm -XX:+UseZGC -Dsun.java2d.d3d=false AlphaPrintTest */ import java.awt.Color; diff --git a/test/jdk/java/foreign/TestUpcallStress.java b/test/jdk/java/foreign/TestUpcallStress.java index 40607746856..b7a53dd6c01 100644 --- a/test/jdk/java/foreign/TestUpcallStress.java +++ b/test/jdk/java/foreign/TestUpcallStress.java @@ -26,6 +26,7 @@ * @requires jdk.foreign.linker != "FALLBACK" * @requires (os.arch == "aarch64" | os.arch=="riscv64") & os.name == "Linux" * @requires os.maxMemory > 4G + * @requires vm.compMode != "Xcomp" * @modules java.base/jdk.internal.foreign * @build NativeTestHelper CallGeneratorHelper TestUpcallBase * @bug 8337753 diff --git a/test/jdk/java/foreign/stackwalk/TestAsyncStackWalk.java b/test/jdk/java/foreign/stackwalk/TestAsyncStackWalk.java index c21225575f9..1c234a9c3c6 100644 --- a/test/jdk/java/foreign/stackwalk/TestAsyncStackWalk.java +++ b/test/jdk/java/foreign/stackwalk/TestAsyncStackWalk.java @@ -39,8 +39,8 @@ */ /* - * @test id=ZSinglegen - * @requires vm.gc.ZSinglegen + * @test id=Z + * @requires vm.gc.Z * @library /test/lib * @library ../ * @build jdk.test.whitebox.WhiteBox @@ -52,25 +52,7 @@ * -XX:+WhiteBoxAPI * --enable-native-access=ALL-UNNAMED * -Xbatch - * -XX:+UseZGC -XX:-ZGenerational - * TestAsyncStackWalk - */ - -/* - * @test id=ZGenerational - * @requires vm.gc.ZGenerational - * @library /test/lib - * @library ../ - * @build jdk.test.whitebox.WhiteBox - * @run driver jdk.test.lib.helpers.ClassFileInstaller jdk.test.whitebox.WhiteBox - * - * @run main/othervm - * -Xbootclasspath/a:. - * -XX:+UnlockDiagnosticVMOptions - * -XX:+WhiteBoxAPI - * --enable-native-access=ALL-UNNAMED - * -Xbatch - * -XX:+UseZGC -XX:+ZGenerational + * -XX:+UseZGC * TestAsyncStackWalk */ diff --git a/test/jdk/java/foreign/stackwalk/TestStackWalk.java b/test/jdk/java/foreign/stackwalk/TestStackWalk.java index 5218792658f..193a71affdd 100644 --- a/test/jdk/java/foreign/stackwalk/TestStackWalk.java +++ b/test/jdk/java/foreign/stackwalk/TestStackWalk.java @@ -39,8 +39,8 @@ */ /* - * @test id=ZSinglegen - * @requires vm.gc.ZSinglegen + * @test id=Z + * @requires vm.gc.Z * @library /test/lib * @library ../ * @build jdk.test.whitebox.WhiteBox @@ -52,25 +52,7 @@ * -XX:+WhiteBoxAPI * --enable-native-access=ALL-UNNAMED * -Xbatch - * -XX:+UseZGC -XX:-ZGenerational - * TestStackWalk - */ - -/* - * @test id=ZGenerational - * @requires vm.gc.ZGenerational - * @library /test/lib - * @library ../ - * @build jdk.test.whitebox.WhiteBox - * @run driver jdk.test.lib.helpers.ClassFileInstaller jdk.test.whitebox.WhiteBox - * - * @run main/othervm - * -Xbootclasspath/a:. - * -XX:+UnlockDiagnosticVMOptions - * -XX:+WhiteBoxAPI - * --enable-native-access=ALL-UNNAMED - * -Xbatch - * -XX:+UseZGC -XX:+ZGenerational + * -XX:+UseZGC * TestStackWalk */ diff --git a/test/jdk/java/io/Console/DefaultCharsetTest.java b/test/jdk/java/io/Console/DefaultCharsetTest.java new file mode 100644 index 00000000000..0b17217e109 --- /dev/null +++ b/test/jdk/java/io/Console/DefaultCharsetTest.java @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; + +/** + * @test + * @bug 8341975 + * @summary Tests the default charset. It should honor `stdout.encoding` + * which should be the same as System.out.charset() + * @modules jdk.internal.le + * @run junit/othervm -Dstdout.encoding=UTF-8 DefaultCharsetTest + * @run junit/othervm -Dstdout.encoding=ISO-8859-1 DefaultCharsetTest + * @run junit/othervm -Dstdout.encoding=US-ASCII DefaultCharsetTest + * @run junit/othervm -Dstdout.encoding=foo DefaultCharsetTest + * @run junit/othervm DefaultCharsetTest + */ +public class DefaultCharsetTest { + @Test + public void testDefaultCharset() { + var stdoutEncoding = System.getProperty("stdout.encoding"); + var sysoutCharset = System.out.charset(); + var consoleCharset = System.console().charset(); + System.out.println(""" + stdout.encoding = %s + System.out.charset() = %s + System.console().charset() = %s + """.formatted(stdoutEncoding, sysoutCharset.name(), consoleCharset.name())); + assertEquals(consoleCharset, sysoutCharset, + "Charsets for System.out and Console differ for stdout.encoding: %s".formatted(stdoutEncoding)); + } +} diff --git a/test/jdk/java/io/FileInputStream/PseudoDevice.java b/test/jdk/java/io/FileInputStream/PseudoDevice.java new file mode 100644 index 00000000000..9f581c3ff81 --- /dev/null +++ b/test/jdk/java/io/FileInputStream/PseudoDevice.java @@ -0,0 +1,210 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* @test + * @bug 8341666 + * @summary Test of FileInputStream reading from stdin and a named pipe + * @requires os.family != "windows" + * @library .. /test/lib + * @build jdk.test.lib.Platform + * @run junit/othervm --enable-native-access=ALL-UNNAMED PseudoDevice + */ + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.io.IOException; +import java.lang.foreign.Arena; +import java.lang.foreign.FunctionDescriptor; +import java.lang.foreign.Linker; +import java.lang.foreign.MemorySegment; +import java.lang.foreign.SymbolLookup; +import java.lang.foreign.ValueLayout; +import java.lang.invoke.MethodHandle; +import jdk.test.lib.Platform; + +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.condition.DisabledOnOs; +import org.junit.jupiter.api.condition.OS; +import static org.junit.jupiter.api.Assertions.*; + +public class PseudoDevice { + + private static final String PIPE = "pipe"; + private static final File PIPE_FILE = new File(PIPE); + private static final String SENTENCE = + "Rien n'est permis mais tout est possible"; + + private static class mkfifo { + public static final FunctionDescriptor DESC = FunctionDescriptor.of( + ValueLayout.JAVA_INT, + ValueLayout.ADDRESS, + ValueLayout.JAVA_SHORT + ); + + public static final MemorySegment ADDR; + static { + Linker linker = Linker.nativeLinker(); + SymbolLookup stdlib = linker.defaultLookup(); + ADDR = stdlib.find("mkfifo").orElseThrow(); + } + + public static final MethodHandle HANDLE = + Linker.nativeLinker().downcallHandle(ADDR, DESC); + } + + public static int mkfifo(MemorySegment x0, short x1) { + var mh$ = mkfifo.HANDLE; + try { + return (int)mh$.invokeExact(x0, x1); + } catch (Throwable ex$) { + throw new AssertionError("should not reach here", ex$); + } + } + + private static Thread createWriteThread() { + Thread t = new Thread( + new Runnable() { + public void run() { + try (FileOutputStream fos = new FileOutputStream(PIPE);) { + fos.write(SENTENCE.getBytes()); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + } + ); + t.start(); + return t; + } + + @BeforeAll + static void before() throws InterruptedException, IOException { + if (Platform.isWindows()) + return; + + PIPE_FILE.delete(); + try (var newArena = Arena.ofConfined()) { + var addr = newArena.allocateFrom(PIPE); + short mode = 0666; + assertEquals(0, mkfifo(addr, mode)); + } + if (!PIPE_FILE.exists()) + throw new RuntimeException("Failed to create " + PIPE); + } + + @AfterAll + static void after() throws IOException { + if (Platform.isWindows()) + return; + + PIPE_FILE.delete(); + } + + /** + * Tests that new FileInputStream(File).available() does not throw + */ + @Test + @DisabledOnOs(OS.WINDOWS) + void availableStdin() throws IOException { + File stdin = new File("/dev", "stdin"); + if (stdin.exists()) { + try (InputStream s = new FileInputStream(stdin);) { + s.available(); + } + } + } + + /** + * Tests that new FileInputStream(File).skip(0) does not throw + */ + @Test + @DisabledOnOs(OS.WINDOWS) + void skipStdin() throws IOException { + File stdin = new File("/dev", "stdin"); + if (stdin.exists()) { + try (InputStream s = new FileInputStream(stdin);) { + s.skip(0); + } + } + } + + /** + * Tests new FileInputStream(File).readAllBytes(). + */ + @Test + @DisabledOnOs(OS.WINDOWS) + void readAllBytes() throws InterruptedException, IOException { + Thread t = createWriteThread(); + try (InputStream in = new FileInputStream(PIPE)) { + String s = new String(in.readAllBytes()); + System.out.println(s); + assertEquals(SENTENCE, s); + } finally { + t.join(); + } + } + + /** + * Tests new FileInputStream(File).readNBytes(byte[],int,int). + */ + @Test + @DisabledOnOs(OS.WINDOWS) + void readNBytesNoOverride() throws InterruptedException, IOException { + Thread t = createWriteThread(); + try (InputStream in = new FileInputStream(PIPE)) { + final int offset = 11; + final int length = 17; + assert length <= SENTENCE.length(); + byte[] b = new byte[offset + length]; + int n = in.readNBytes(b, offset, length); + String s = new String(b, offset, length); + System.out.println(s); + assertEquals(SENTENCE.substring(0, length), s); + } finally { + t.join(); + } + } + + /** + * Tests new FileInputStream(File).readNBytes(int). + */ + @Test + @DisabledOnOs(OS.WINDOWS) + void readNBytesOverride() throws InterruptedException, IOException { + Thread t = createWriteThread(); + try (InputStream in = new FileInputStream(PIPE)) { + final int length = 17; + assert length <= SENTENCE.length(); + byte[] b = in.readNBytes(length); + String s = new String(b); + System.out.println(s); + assertEquals(SENTENCE.substring(0, length), s); + } finally { + t.join(); + } + } +} diff --git a/test/jdk/java/io/ObjectStreamClass/ObjectStreamClassCaching.java b/test/jdk/java/io/ObjectStreamClass/ObjectStreamClassCaching.java index 115481243f7..4004cbcf859 100644 --- a/test/jdk/java/io/ObjectStreamClass/ObjectStreamClassCaching.java +++ b/test/jdk/java/io/ObjectStreamClass/ObjectStreamClassCaching.java @@ -49,12 +49,12 @@ */ /* - * @test id=ZGenerational - * @requires vm.gc.ZGenerational + * @test id=Z + * @requires vm.gc.Z * @bug 8277072 8327180 * @library /test/lib/ * @summary ObjectStreamClass caches keep ClassLoaders alive (ZGC) - * @run testng/othervm -Xmx64m -XX:+UseZGC -XX:+ZGenerational ObjectStreamClassCaching + * @run testng/othervm -Xmx64m -XX:+UseZGC ObjectStreamClassCaching */ /* diff --git a/test/jdk/java/io/Reader/Of.java b/test/jdk/java/io/Reader/Of.java new file mode 100644 index 00000000000..491c0499e6b --- /dev/null +++ b/test/jdk/java/io/Reader/Of.java @@ -0,0 +1,217 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +import java.io.Reader; +import java.io.StringReader; +import java.io.IOException; +import java.io.StringWriter; +import java.nio.ByteBuffer; +import java.nio.CharBuffer; +import java.nio.ReadOnlyBufferException; + +import org.testng.annotations.*; + +import static org.testng.Assert.*; + +/* + * @test + * @bug 8341566 + * @summary Check for expected behavior of Reader.of(). + * @run testng Of + */ +public class Of { + final static String CONTENT = "Some Reader Test"; + + /* + * Readers to be tested. + */ + @DataProvider + public static Reader[] readers() { + return new Reader[] { + new StringReader(CONTENT), + Reader.of(CONTENT), + Reader.of(new StringBuffer(CONTENT)), + Reader.of(new StringBuilder(CONTENT)), + Reader.of(ByteBuffer.allocateDirect(CONTENT.length() * 2) + .asCharBuffer().put(CONTENT).flip()), + Reader.of(CharBuffer.wrap(CONTENT.toCharArray())), + Reader.of(new CharSequence() { + @Override + public char charAt(int index) { + return CONTENT.charAt(index); + } + + @Override + public int length() { + return CONTENT.length(); + } + + @Override + public CharSequence subSequence(int start, int end) { + // unused by Reader.Of's result + throw new UnsupportedOperationException(); + } + + @Override + public String toString() { + // Reader.Of's result SHALL NOT convert to String + throw new UnsupportedOperationException(); + } + }) + }; + } + + @Test(dataProvider = "readers") + public void testRead(Reader reader) throws IOException { + String s = ""; + for (int c; (c = reader.read()) != -1; s += (char) c); + assertEquals(s, CONTENT, "read() returned wrong value"); + } + + @Test(dataProvider = "readers") + public void testReadBII(Reader reader) throws IOException { + char[] c = new char[16]; + assertEquals(reader.read(c, 8, 8), 8, + "read(char[],int,int) does not respect given start or end"); + assertEquals(reader.read(c, 0, 16), 8, + "read(char[],int,int) does not respect end of stream"); + assertEquals(new String(c), + CONTENT.substring(8, 16) + CONTENT.substring(0, 8), + "read(char[],int,int) provides wrong content"); + } + + @Test(dataProvider = "readers") + public void testReadBIILenZero(Reader reader) throws IOException { + assertEquals(reader.read(new char[1], 0, 0), 0, + "read(char[],int,int) != 0"); + } + + @Test(dataProvider = "readers") + public void testReadDirectCharBuffer(Reader reader) throws IOException { + CharBuffer charBuffer = ByteBuffer.allocateDirect(32).asCharBuffer(); + charBuffer.position(8); + assertEquals(reader.read(charBuffer), 8, + "read(CharBuffer) does not respect position or limit"); + charBuffer.rewind(); + assertEquals(reader.read(charBuffer), 8, + "read(CharBuffer) does not respect end of stream"); + charBuffer.rewind(); + assertEquals(charBuffer.toString(), + // last part first proofs that copy loops correctly stopped + CONTENT.substring(8, 16) + CONTENT.substring(0, 8), + "read(CharBuffer) provides wrong content"); + } + + @Test(dataProvider = "readers") + public void testReadNonDirectCharBuffer(Reader reader) throws IOException { + CharBuffer charBuffer = CharBuffer.allocate(16); + charBuffer.position(8); + assertEquals(reader.read(charBuffer), 8, + "read(CharBuffer) does not respect position or limit"); + charBuffer.rewind(); + assertEquals(reader.read(charBuffer), 8, + "read(CharBuffer) does not respect end of stream"); + charBuffer.rewind(); + assertEquals(charBuffer.toString(), + CONTENT.substring(8, 16) + CONTENT.substring(0, 8), + "read(CharBuffer) provides wrong content"); + } + + @Test(dataProvider = "readers") + public void testReadCharBufferZeroRemaining(Reader reader) throws IOException { + CharBuffer charBuffer = CharBuffer.allocate(0); + assertEquals(reader.read(charBuffer), 0, "read(CharBuffer) != 0"); + } + + @Test(dataProvider = "readers") + public void testReady(Reader reader) throws IOException { + assertTrue(reader.ready()); + } + + @Test(dataProvider = "readers") + public void testSkip(Reader reader) throws IOException { + assertEquals(reader.skip(8), 8, "skip() does not respect limit"); + assertEquals(reader.skip(9), 8, "skip() does not respect end of stream"); + assertEquals(reader.skip(1), 0, "skip() does not respect empty stream"); + } + + @Test(dataProvider = "readers") + public void testTransferTo(Reader reader) throws IOException { + StringWriter sw = new StringWriter(16); + assertEquals(reader.transferTo(sw), 16, "transferTo() != 16"); + assertEquals(reader.transferTo(sw), 0, + "transferTo() does not respect empty stream"); + assertEquals(sw.toString(), CONTENT, + "transferTo() provides wrong content"); + } + + @Test(dataProvider = "readers") + public void testReadClosed(Reader reader) throws IOException { + reader.close(); + assertThrows(IOException.class, () -> {reader.read();}); + } + + @Test(dataProvider = "readers") + public void testReadBIIClosed(Reader reader) throws IOException { + reader.close(); + assertThrows(IOException.class, () -> reader.read(new char[1], 0, 1)); + } + + @Test(dataProvider = "readers") + public void testReadCharBufferClosed(Reader reader) throws IOException { + CharBuffer charBuffer = CharBuffer.allocate(1); + reader.close(); + assertThrows(IOException.class, () -> reader.read(charBuffer)); + } + + @Test(dataProvider = "readers") + public void testReadCharBufferZeroRemainingClosed(Reader reader) throws IOException { + CharBuffer charBuffer = CharBuffer.allocate(0); + reader.close(); + assertThrows(IOException.class, () -> reader.read(charBuffer)); + } + + @Test(dataProvider = "readers") + public void testReadyClosed(Reader reader) throws IOException { + reader.close(); + assertThrows(IOException.class, () -> reader.ready()); + } + + @Test(dataProvider = "readers") + public void testSkipClosed(Reader reader) throws IOException { + reader.close(); + assertThrows(IOException.class, () -> reader.skip(1)); + } + + @Test(dataProvider = "readers") + public void testTransferToClosed(Reader reader) throws IOException { + reader.close(); + assertThrows(IOException.class, () -> reader.transferTo(new StringWriter(1))); + } + + @Test(dataProvider = "readers") + public void testCloseClosed(Reader reader) throws IOException { + reader.close(); + reader.close(); + } +} diff --git a/test/jdk/java/lang/ProcessBuilder/CloseRace.java b/test/jdk/java/lang/ProcessBuilder/CloseRace.java index e7eab128d60..b0ca352b8ac 100644 --- a/test/jdk/java/lang/ProcessBuilder/CloseRace.java +++ b/test/jdk/java/lang/ProcessBuilder/CloseRace.java @@ -22,24 +22,24 @@ */ /** - * @test + * @test id=Default * @bug 8024521 8315721 * @summary Closing ProcessPipeInputStream at the time the process exits is racy * and leads to data corruption. Run this test manually (as * an ordinary java program) with -Xmx8M to repro bug 8024521. - * @requires !vm.opt.final.ZGenerational + * @requires vm.gc != "Z" * @comment Don't allow -Xcomp, it disturbs the timing * @requires (vm.compMode != "Xcomp") * @run main/othervm -Xmx8M -Dtest.duration=2 CloseRace */ /** - * @test + * @test id=Z * @comment Turn up heap size to lower amount of GCs - * @requires vm.gc.Z & vm.opt.final.ZGenerational + * @requires vm.gc.Z * @comment Don't allow -Xcomp, it disturbs the timing * @requires (vm.compMode != "Xcomp") - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Xmx32M -Dtest.duration=2 CloseRace + * @run main/othervm -XX:+UseZGC -Xmx32M -Dtest.duration=2 CloseRace */ import java.io.*; diff --git a/test/jdk/java/lang/Thread/virtual/stress/Skynet.java b/test/jdk/java/lang/Thread/virtual/stress/Skynet.java index 5b63fe84b1d..562a8dbd5e1 100644 --- a/test/jdk/java/lang/Thread/virtual/stress/Skynet.java +++ b/test/jdk/java/lang/Thread/virtual/stress/Skynet.java @@ -28,22 +28,12 @@ * @requires !vm.debug | vm.gc != "Z" * @run main/othervm/timeout=300 -Xmx1500m Skynet */ - -/* - * @test id=ZSinglegen - * @requires vm.debug == true & vm.continuations - * @requires vm.gc.ZSinglegen - * @run main/othervm/timeout=300 -XX:+UnlockDiagnosticVMOptions - * -XX:+UseZGC -XX:-ZGenerational - * -XX:+ZVerifyOops -XX:ZCollectionInterval=0.01 -Xmx1500m Skynet - */ - /* - * @test id=ZGenerational + * @test id=Z * @requires vm.debug == true & vm.continuations - * @requires vm.gc.ZGenerational + * @requires vm.gc.Z * @run main/othervm/timeout=300 -XX:+UnlockDiagnosticVMOptions - * -XX:+UseZGC -XX:+ZGenerational + * -XX:+UseZGC * -XX:+ZVerifyOops -XX:ZCollectionInterval=0.01 -Xmx1500m Skynet */ diff --git a/test/jdk/java/lang/constant/ClassDescTest.java b/test/jdk/java/lang/constant/ClassDescTest.java index 4d98e1283f0..839de27b178 100644 --- a/test/jdk/java/lang/constant/ClassDescTest.java +++ b/test/jdk/java/lang/constant/ClassDescTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -40,9 +40,9 @@ import static org.testng.Assert.assertTrue; import static org.testng.Assert.fail; -/** +/* * @test - * @bug 8215510 8283075 + * @bug 8215510 8283075 8338544 * @compile ClassDescTest.java * @run testng ClassDescTest * @summary unit tests for java.lang.constant.ClassDesc @@ -68,7 +68,30 @@ private void testClassDesc(ClassDesc r) throws ReflectiveOperationException { assertEquals(r, r.componentType().arrayType()); assertEquals(r, r.resolveConstantDesc(LOOKUP).getComponentType().describeConstable().orElseThrow().arrayType()); assertEquals(r, Array.newInstance(r.componentType().resolveConstantDesc(LOOKUP), 0).getClass().describeConstable().orElseThrow()); + } else { + assertNull(r.componentType()); + } + + if (!r.isClassOrInterface()) { + assertEquals(r.packageName(), ""); + } + } + + private static String classDisplayName(Class c) { + int arrayLevel = 0; + while (c.isArray()) { + arrayLevel++; + c = c.componentType(); + } + String name = c.getName(); + String simpleClassName; + if (c.isPrimitive()) { + simpleClassName = name; + } else { + int lastDot = name.lastIndexOf('.'); + simpleClassName = lastDot == -1 ? name : name.substring(lastDot + 1); } + return simpleClassName + "[]".repeat(arrayLevel); } private void testClassDesc(ClassDesc r, Class c) throws ReflectiveOperationException { @@ -77,6 +100,13 @@ private void testClassDesc(ClassDesc r, Class c) throws ReflectiveOperationEx assertEquals(r.resolveConstantDesc(LOOKUP), c); assertEquals(c.describeConstable().orElseThrow(), r); assertEquals(ClassDesc.ofDescriptor(c.descriptorString()), r); + if (r.isArray()) { + testClassDesc(r.componentType(), c.componentType()); + } + if (r.isClassOrInterface()) { + assertEquals(r.packageName(), c.getPackageName()); + } + assertEquals(r.displayName(), classDisplayName(c)); } public void testSymbolicDescsConstants() throws ReflectiveOperationException { @@ -143,7 +173,8 @@ public void testSimpleClassDesc() throws ReflectiveOperationException { assertFalse(r.isPrimitive()); assertEquals("Ljava/lang/String;", r.descriptorString()); assertEquals("String", r.displayName()); - assertEquals(r.arrayType().resolveConstantDesc(LOOKUP), String[].class); + testClassDesc(r.arrayType(), String[].class); + testClassDesc(r.arrayType(3), String[][][].class); stringClassDescs.forEach(rr -> assertEquals(r, rr)); } diff --git a/test/jdk/java/lang/management/MemoryMXBean/MemoryTest.java b/test/jdk/java/lang/management/MemoryMXBean/MemoryTest.java index 68a6671e77a..f8abba43983 100644 --- a/test/jdk/java/lang/management/MemoryMXBean/MemoryTest.java +++ b/test/jdk/java/lang/management/MemoryMXBean/MemoryTest.java @@ -34,27 +34,15 @@ */ /* - * @test id=ZSinglegen + * @test id=Z * @bug 4530538 * @summary Basic unit test of MemoryMXBean.getMemoryPools() and * MemoryMXBean.getMemoryManager(). - * @requires vm.gc.ZSinglegen + * @requires vm.gc.Z * @author Mandy Chung * * @modules jdk.management - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational MemoryTest 2 1 - */ - -/* - * @test id=ZGenerational - * @bug 4530538 - * @summary Basic unit test of MemoryMXBean.getMemoryPools() and - * MemoryMXBean.getMemoryManager(). - * @requires vm.gc.ZGenerational - * @author Mandy Chung - * - * @modules jdk.management - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational MemoryTest 4 2 + * @run main/othervm -XX:+UseZGC MemoryTest 4 2 */ /* diff --git a/test/jdk/java/net/httpclient/AuthFilter.java b/test/jdk/java/net/httpclient/AuthFilter.java deleted file mode 100644 index 28474bfd830..00000000000 --- a/test/jdk/java/net/httpclient/AuthFilter.java +++ /dev/null @@ -1,188 +0,0 @@ -/* - * Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -import com.sun.net.httpserver.Headers; -import com.sun.net.httpserver.HttpExchange; -import com.sun.net.httpserver.HttpHandler; -import com.sun.net.httpserver.HttpServer; - -import java.io.*; -import java.net.Authenticator; -import java.net.InetSocketAddress; -import java.net.ProxySelector; -import java.net.URI; -import java.net.http.HttpClient; -import java.net.http.HttpRequest; -import java.net.http.HttpResponse; -import java.nio.channels.*; -import java.nio.charset.StandardCharsets; - -import jdk.test.lib.net.IPSupport; - -/** - * @test - * @bug 8263442 - * @summary Potential bug in jdk.internal.net.http.common.Utils.CONTEXT_RESTRICTED - * @library /test/lib - * @run main/othervm AuthFilter - */ - -public class AuthFilter { - static class Auth extends Authenticator { - } - - static HttpServer createServer() throws IOException { - HttpServer server = HttpServer.create(new InetSocketAddress(0), 5); - HttpHandler handler = (HttpExchange e) -> { - InputStream is = e.getRequestBody(); - is.readAllBytes(); - is.close(); - Headers reqh = e.getRequestHeaders(); - if (reqh.containsKey("authorization")) { - e.sendResponseHeaders(500, -1); - } else { - e.sendResponseHeaders(200, -1); - } - }; - server.createContext("/", handler); - return server; - } - - public static void main(String[] args) throws Exception { - test(false); - test(true); - } - - /** - * Fake proxy. Just looks for Proxy-Authorization header - * and returns error if seen. Returns 200 OK if not. - * Does not actually forward the request - */ - static class ProxyServer extends Thread { - - final ServerSocketChannel server; - final int port; - volatile SocketChannel c; - - ProxyServer() throws IOException { - server = ServerSocketChannel.open(); - server.bind(new InetSocketAddress(0)); - if (server.getLocalAddress() instanceof InetSocketAddress isa) { - port = isa.getPort(); - } else { - port = -1; - } - } - - int getPort() { - return port; - } - - static String ok = "HTTP/1.1 200 OK\r\nContent-Length: 0\r\n\r\n"; - static String notok1 = "HTTP/1.1 500 Internal Server Error\r\nContent-Length: 0\r\n\r\n"; - static String notok2 = "HTTP/1.1 501 Not Implemented\r\nContent-Length: 0\r\n\r\n"; - - static void reply(String msg, Writer writer) throws IOException { - writer.write(msg); - writer.flush(); - } - - public void run() { - try { - c = server.accept(); - var cs = StandardCharsets.US_ASCII; - LineNumberReader reader = new LineNumberReader(Channels.newReader(c, cs)); - Writer writer = Channels.newWriter(c, cs); - - String line; - while ((line=reader.readLine()) != null) { - if (line.indexOf("Proxy-Authorization") != -1) { - reply(notok1, writer); - return; - } - if (line.equals("")) { - // end of headers - reply(ok, writer); - return; - } - } - reply(notok2, writer); - } catch (IOException e) { - } - try { - server.close(); - c.close(); - } catch (IOException ee) {} - } - } - - private static InetSocketAddress getLoopback(int port) throws IOException { - if (IPSupport.hasIPv4()) { - return new InetSocketAddress("127.0.0.1", port); - } else { - return new InetSocketAddress("::1", port); - } - } - - public static void test(boolean useProxy) throws Exception { - HttpServer server = createServer(); - int port = server.getAddress().getPort(); - ProxyServer proxy; - - InetSocketAddress proxyAddr; - String authHdr; - if (useProxy) { - proxy = new ProxyServer(); - proxyAddr = getLoopback(proxy.getPort()); - proxy.start(); - authHdr = "Proxy-Authorization"; - } else { - authHdr = "Authorization"; - proxyAddr = null; - } - - server.start(); - - // proxyAddr == null => proxying disabled - HttpClient client = HttpClient - .newBuilder() - .authenticator(new Auth()) - .proxy(ProxySelector.of(proxyAddr)) - .build(); - - - URI uri = new URI("http://127.0.0.1:" + Integer.toString(port)); - - HttpRequest request = HttpRequest.newBuilder(uri) - .header(authHdr, "nonsense") - .GET() - .build(); - - HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString()); - int r = response.statusCode(); - System.out.println(r); - server.stop(0); - if (r != 200) - throw new RuntimeException("Test failed : " + r); - } -} diff --git a/test/jdk/java/net/httpclient/GZIPInputStreamTest.java b/test/jdk/java/net/httpclient/GZIPInputStreamTest.java index e2a382dfc5e..7db41cde5d6 100644 --- a/test/jdk/java/net/httpclient/GZIPInputStreamTest.java +++ b/test/jdk/java/net/httpclient/GZIPInputStreamTest.java @@ -26,7 +26,7 @@ * @bug 8217264 * @summary Tests that you can map an InputStream to a GZIPInputStream * @library /test/lib /test/jdk/java/net/httpclient/lib - * @build jdk.test.lib.net.SimpleSSLContext jdk.httpclient.test.lib.common.HttpServerAdapters + * @build jdk.test.lib.net.SimpleSSLContext jdk.httpclient.test.lib.common.HttpServerAdapters ReferenceTracker * @run testng/othervm GZIPInputStreamTest */ diff --git a/test/jdk/java/net/httpclient/ProxySelectorTest.java b/test/jdk/java/net/httpclient/ProxySelectorTest.java index fd8f85fa6d7..a5407801bcd 100644 --- a/test/jdk/java/net/httpclient/ProxySelectorTest.java +++ b/test/jdk/java/net/httpclient/ProxySelectorTest.java @@ -376,7 +376,7 @@ public void setup() throws Exception { public void teardown() throws Exception { client = null; Thread.sleep(100); - AssertionError fail = TRACKER.check(500); + AssertionError fail = TRACKER.check(1500); try { proxy.stop(); authproxy.stop(); diff --git a/test/jdk/java/net/httpclient/UserAuthWithAuthenticator.java b/test/jdk/java/net/httpclient/UserAuthWithAuthenticator.java new file mode 100644 index 00000000000..97be90f8587 --- /dev/null +++ b/test/jdk/java/net/httpclient/UserAuthWithAuthenticator.java @@ -0,0 +1,524 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/** + * @test + * @bug 8326949 + * @summary Authorization header is removed when a proxy Authenticator is set + * @library /test/lib /test/jdk/java/net/httpclient /test/jdk/java/net/httpclient/lib + * @build jdk.test.lib.net.SimpleSSLContext jdk.httpclient.test.lib.common.HttpServerAdapters + * jdk.httpclient.test.lib.http2.Http2TestServer + * jdk.test.lib.net.IPSupport + * + * @modules java.net.http/jdk.internal.net.http.common + * java.net.http/jdk.internal.net.http.frame + * java.net.http/jdk.internal.net.http.hpack + * java.logging + * java.base/sun.net.www.http + * java.base/sun.net.www + * java.base/sun.net + * + * @run main/othervm UserAuthWithAuthenticator + */ + +import java.io.*; +import java.net.*; +import java.net.http.HttpClient; +import java.net.http.HttpClient.Version; +import java.net.http.HttpRequest; +import java.net.http.HttpRequest.BodyPublishers; +import java.net.http.HttpResponse; +import java.net.http.HttpResponse.BodyHandlers; +import javax.net.ssl.*; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.regex.*; +import java.util.*; +import jdk.test.lib.net.SimpleSSLContext; +import jdk.test.lib.net.URIBuilder; +import jdk.test.lib.net.IPSupport; +import jdk.httpclient.test.lib.common.HttpServerAdapters; +import jdk.httpclient.test.lib.common.HttpServerAdapters.HttpTestHandler; +import jdk.httpclient.test.lib.common.HttpServerAdapters.HttpTestExchange; +import jdk.httpclient.test.lib.common.HttpServerAdapters.HttpTestServer; +import jdk.httpclient.test.lib.http2.Http2TestServer; +import com.sun.net.httpserver.BasicAuthenticator; + +import jdk.test.lib.net.URIBuilder; + +import static java.nio.charset.StandardCharsets.US_ASCII; + +public class UserAuthWithAuthenticator { + private static final String AUTH_PREFIX = "Basic "; + + static class AuthTestHandler implements HttpTestHandler { + volatile String authValue; + final String response = "Hello world"; + + @Override + public void handle(HttpTestExchange t) throws IOException { + try (InputStream is = t.getRequestBody(); + OutputStream os = t.getResponseBody()) { + byte[] bytes = is.readAllBytes(); + authValue = t.getRequestHeaders() + .firstValue("Authorization") + .orElse(AUTH_PREFIX) + .substring(AUTH_PREFIX.length()); + t.sendResponseHeaders(200, response.length()); + os.write(response.getBytes(US_ASCII)); + t.close(); + } + } + + String authValue() {return authValue;} + } + + // if useHeader is true, we expect the Authenticator was not called + // and the user set header used. If false, Authenticator must + // be called and the user set header not used. + + // If rightPassword is true we expect the authentication to succeed and 200 OK + // If false, then an error should be returned. + + static void h2Test(final boolean useHeader, boolean rightPassword) throws Exception { + SSLContext ctx; + HttpTestServer h2s = null; + HttpClient client = null; + ExecutorService ex=null; + try { + ctx = new SimpleSSLContext().get(); + ex = Executors.newCachedThreadPool(); + InetAddress addr = InetAddress.getLoopbackAddress(); + + h2s = HttpTestServer.of(new Http2TestServer(addr, "::1", true, 0, ex, + 10, null, ctx, false)); + AuthTestHandler h = new AuthTestHandler(); + var context = h2s.addHandler(h, "/test1"); + context.setAuthenticator(new BasicAuthenticator("realm") { + public boolean checkCredentials(String username, String password) { + if (useHeader) { + return username.equals("user") && password.equals("pwd"); + } else { + return username.equals("serverUser") && password.equals("serverPwd"); + } + } + }); + h2s.start(); + + int port = h2s.getAddress().getPort(); + ServerAuth sa = new ServerAuth(); + var plainCreds = rightPassword? "user:pwd" : "user:wrongPwd"; + var encoded = java.util.Base64.getEncoder().encodeToString(plainCreds.getBytes(US_ASCII)); + + URI uri = URIBuilder.newBuilder() + .scheme("https") + .host(addr.getHostAddress()) + .port(port) + .path("/test1/foo.txt") + .build(); + + HttpClient.Builder builder = HttpClient.newBuilder() + .sslContext(ctx) + .executor(ex); + + builder.authenticator(sa); + client = builder.build(); + + HttpRequest req = HttpRequest.newBuilder(uri) + .version(HttpClient.Version.HTTP_2) + .header(useHeader ? "Authorization" : "X-Ignore", AUTH_PREFIX + encoded) + .GET() + .build(); + + HttpResponse resp = client.send(req, HttpResponse.BodyHandlers.ofString()); + if (!useHeader) { + assertTrue(resp.statusCode() == 200, "Expected 200 response"); + assertTrue(!h.authValue().equals(encoded), "Expected user set header to not be set"); + assertTrue(h.authValue().equals(sa.authValue()), "Expected auth value from Authenticator"); + assertTrue(sa.wasCalled(), "Expected authenticator to be called"); + System.out.println("h2Test: using authenticator OK"); + } else if (rightPassword) { + assertTrue(resp.statusCode() == 200, "Expected 200 response"); + assertTrue(h.authValue().equals(encoded), "Expected user set header to be set"); + assertTrue(!sa.wasCalled(), "Expected authenticator not to be called"); + System.out.println("h2Test: using user set header OK"); + } else { + assertTrue(resp.statusCode() == 401, "Expected 401 response"); + assertTrue(!sa.wasCalled(), "Expected authenticator not to be called"); + System.out.println("h2Test: using user set header with wrong password OK"); + } + } finally { + if (h2s != null) + h2s.stop(); + if (client != null) + client.close(); + if (ex != null) + ex.shutdown(); + } + } + + static final String data = "0123456789"; + + static final String data1 = "ABCDEFGHIJKL"; + + static final String[] proxyResponses = { + "HTTP/1.1 407 Proxy Authentication Required\r\n"+ + "Content-Length: 0\r\n" + + "Proxy-Authenticate: Basic realm=\"Access to the proxy\"\r\n\r\n" + , + "HTTP/1.1 200 OK\r\n"+ + "Date: Mon, 15 Jan 2001 12:18:21 GMT\r\n" + + "Server: Apache/1.3.14 (Unix)\r\n" + + "Content-Length: " + data.length() + "\r\n\r\n" + data + }; + + static final String[] proxyWithErrorResponses = { + "HTTP/1.1 407 Proxy Authentication Required\r\n"+ + "Content-Length: 0\r\n" + + "Proxy-Authenticate: Basic realm=\"Access to the proxy\"\r\n\r\n" + , + "HTTP/1.1 407 Proxy Authentication Required\r\n"+ + "Content-Length: 0\r\n" + + "Proxy-Authenticate: Basic realm=\"Access to the proxy\"\r\n\r\n" + }; + + static final String[] serverResponses = { + "HTTP/1.1 200 OK\r\n"+ + "Date: Mon, 15 Jan 2001 12:18:21 GMT\r\n" + + "Server: Apache/1.3.14 (Unix)\r\n" + + "Content-Length: " + data1.length() + "\r\n\r\n" + data1 + }; + + static final String[] authenticatorResponses = { + "HTTP/1.1 401 Authentication Required\r\n"+ + "Content-Length: 0\r\n" + + "WWW-Authenticate: Basic realm=\"Access to the server\"\r\n\r\n" + , + "HTTP/1.1 200 OK\r\n"+ + "Date: Mon, 15 Jan 2001 12:18:21 GMT\r\n" + + "Server: Apache/1.3.14 (Unix)\r\n" + + "Content-Length: " + data1.length() + "\r\n\r\n" + data1 + }; + + public static void main(String[] args) throws Exception { + testServerOnly(); + testServerWithProxy(); + testServerWithProxyError(); + testServerOnlyAuthenticator(); + h2Test(true, true); + h2Test(false, true); + h2Test(true, false); + } + + static void testServerWithProxy() throws IOException, InterruptedException { + Mocker proxyMock = new Mocker(proxyResponses); + proxyMock.start(); + ProxyAuth p = new ProxyAuth(); + try (var client = HttpClient.newBuilder() + .version(java.net.http.HttpClient.Version.HTTP_1_1) + .proxy(new ProxySel(proxyMock.getPort())) + .authenticator(p) + .build()) { + + var plainCreds = "user:pwd"; + var encoded = java.util.Base64.getEncoder().encodeToString(plainCreds.getBytes(US_ASCII)); + var request = HttpRequest.newBuilder().uri(URI.create("http://127.0.0.1/some_url")) + .setHeader("User-Agent", "myUserAgent") + .setHeader("Authorization", AUTH_PREFIX + encoded) + .build(); + + var response = client.send(request, HttpResponse.BodyHandlers.ofString()); + + assertEquals(200, response.statusCode()); + assertTrue(p.wasCalled(), "Proxy authenticator was not called"); + assertEquals(data, response.body()); + var proxyStr = proxyMock.getRequest(1); + + assertContains(proxyStr, "/some_url"); + assertPattern(".*^Proxy-Authorization:.*Basic " + encoded + ".*", proxyStr); + assertPattern(".*^User-Agent:.*myUserAgent.*", proxyStr); + assertPattern(".*^Authorization:.*Basic.*", proxyStr); + System.out.println("testServerWithProxy: OK"); + } finally { + proxyMock.stopMocker(); + } + } + + static void testServerWithProxyError() throws IOException, InterruptedException { + Mocker proxyMock = new Mocker(proxyWithErrorResponses); + proxyMock.start(); + ProxyAuth p = new ProxyAuth(); + try (var client = HttpClient.newBuilder() + .version(java.net.http.HttpClient.Version.HTTP_1_1) + .proxy(new ProxySel(proxyMock.getPort())) + .authenticator(p) + .build()) { + + var badCreds = "user:wrong"; + var encoded1 = java.util.Base64.getEncoder().encodeToString(badCreds.getBytes(US_ASCII)); + var request = HttpRequest.newBuilder().uri(URI.create("http://127.0.0.1/some_url")) + .setHeader("User-Agent", "myUserAgent") + .setHeader("Proxy-Authorization", AUTH_PREFIX + encoded1) + .build(); + + var response = client.send(request, HttpResponse.BodyHandlers.ofString()); + + var proxyStr = proxyMock.getRequest(0); + assertEquals(407, response.statusCode()); + assertPattern(".*^Proxy-Authorization:.*Basic " + encoded1 + ".*", proxyStr); + assertTrue(!p.wasCalled(), "Proxy Auth should not have been called"); + System.out.println("testServerWithProxyError: OK"); + } finally { + proxyMock.stopMocker(); + } + } + + static void testServerOnly() throws IOException, InterruptedException { + Mocker serverMock = new Mocker(serverResponses); + serverMock.start(); + try (var client = HttpClient.newBuilder() + .version(java.net.http.HttpClient.Version.HTTP_1_1) + .build()) { + + var plainCreds = "user:pwd"; + var encoded = java.util.Base64.getEncoder().encodeToString(plainCreds.getBytes(US_ASCII)); + var request = HttpRequest.newBuilder().uri(URI.create(serverMock.baseURL() + "/some_serv_url")) + .setHeader("User-Agent", "myUserAgent") + .setHeader("Authorization", AUTH_PREFIX + encoded) + .build(); + + var response = client.send(request, HttpResponse.BodyHandlers.ofString()); + assertEquals(200, response.statusCode()); + assertEquals(data1, response.body()); + + var serverStr = serverMock.getRequest(0); + assertContains(serverStr, "/some_serv_url"); + assertPattern(".*^User-Agent:.*myUserAgent.*", serverStr); + assertPattern(".*^Authorization:.*Basic " + encoded + ".*", serverStr); + System.out.println("testServerOnly: OK"); + } finally { + serverMock.stopMocker(); + } + } + + // This is effectively a regression test for existing behavior + static void testServerOnlyAuthenticator() throws IOException, InterruptedException { + Mocker serverMock = new Mocker(authenticatorResponses); + serverMock.start(); + try (var client = HttpClient.newBuilder() + .version(java.net.http.HttpClient.Version.HTTP_1_1) + .authenticator(new ServerAuth()) + .build()) { + + // credentials set in the server authenticator + var plainCreds = "serverUser:serverPwd"; + var encoded = java.util.Base64.getEncoder().encodeToString(plainCreds.getBytes(US_ASCII)); + var request = HttpRequest.newBuilder().uri(URI.create(serverMock.baseURL() + "/some_serv_url")) + .setHeader("User-Agent", "myUserAgent") + .build(); + + var response = client.send(request, HttpResponse.BodyHandlers.ofString()); + assertEquals(200, response.statusCode()); + assertEquals(data1, response.body()); + + var serverStr = serverMock.getRequest(1); + assertContains(serverStr, "/some_serv_url"); + assertPattern(".*^User-Agent:.*myUserAgent.*", serverStr); + assertPattern(".*^Authorization:.*Basic " + encoded + ".*", serverStr); + System.out.println("testServerOnlyAuthenticator: OK"); + } finally { + serverMock.stopMocker(); + } + } + + static void close(Closeable... clarray) { + for (Closeable c : clarray) { + try { + c.close(); + } catch (Exception e) {} + } + } + + static class Mocker extends Thread { + final ServerSocket ss; + final String[] responses; + volatile List requests; + volatile InputStream in; + volatile OutputStream out; + volatile Socket s = null; + + public Mocker(String[] responses) throws IOException { + this.ss = new ServerSocket(0, 0, InetAddress.getLoopbackAddress()); + this.responses = responses; + this.requests = new LinkedList<>(); + } + + public void stopMocker() { + close(ss, s, in, out); + } + + public int getPort() { + return ss.getLocalPort(); + } + + public String baseURL() { + try { + return URIBuilder.newBuilder() + .scheme("http") + .loopback() + .port(getPort()) + .build() + .toString(); + } catch (URISyntaxException e) { + throw new RuntimeException(e); + } + } + + private String readRequest() throws IOException { + String req = ""; + while (!req.endsWith("\r\n\r\n")) { + int x = in.read(); + if (x == -1) { + s.close(); + s = ss.accept(); + in = s.getInputStream(); + out = s.getOutputStream(); + } + req += (char)x; + } + return req; + } + + public String getRequest(int i) { + return requests.get(i); + } + + public void run() { + try { + int index=0; + s = ss.accept(); + in = s.getInputStream(); + out = s.getOutputStream(); + while (index < responses.length) { + requests.add(readRequest()); + out.write(responses[index++].getBytes(US_ASCII)); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + static class ProxySel extends ProxySelector { + final int port; + + ProxySel(int port) { + this.port = port; + } + @Override + public List select(URI uri) { + return List.of(new Proxy(Proxy.Type.HTTP, new InetSocketAddress( + InetAddress.getLoopbackAddress(), port))); + } + + @Override + public void connectFailed(URI uri, SocketAddress sa, IOException ioe) {} + + } + + static class ProxyAuth extends Authenticator { + private volatile boolean called = false; + + @Override + protected PasswordAuthentication getPasswordAuthentication() { + called = true; + return new PasswordAuthentication("proxyUser", "proxyPwd".toCharArray()); + } + + boolean wasCalled() { + return called; + } + } + + static class ServerAuth extends Authenticator { + private volatile boolean called = false; + + private static String USER = "serverUser"; + private static String PASS = "serverPwd"; + + @Override + protected PasswordAuthentication getPasswordAuthentication() { + called = true; + if (getRequestorType() != RequestorType.SERVER) { + // We only want to handle server authentication here + return null; + } + return new PasswordAuthentication(USER, PASS.toCharArray()); + } + + String authValue() { + var plainCreds = USER + ":" + PASS; + return java.util.Base64.getEncoder().encodeToString(plainCreds.getBytes(US_ASCII)); + } + + boolean wasCalled() { + return called; + } + } + + static void assertTrue(boolean assertion, String failMsg) { + if (!assertion) { + throw new RuntimeException(failMsg); + } + } + + static void assertEquals(int a, int b) { + if (a != b) { + String msg = String.format("Error: expected %d Got %d", a, b); + throw new RuntimeException(msg); + } + } + + static void assertEquals(String s1, String s2) { + if (!s1.equals(s2)) { + String msg = String.format("Error: expected %s Got %s", s1, s2); + throw new RuntimeException(msg); + } + } + + static void assertContains(String container, String containee) { + if (!container.contains(containee)) { + String msg = String.format("Error: expected %s Got %s", container, containee); + throw new RuntimeException(msg); + } + } + + static void assertPattern(String pattern, String candidate) { + Pattern pat = Pattern.compile(pattern, Pattern.DOTALL | Pattern.MULTILINE); + Matcher matcher = pat.matcher(candidate); + if (!matcher.matches()) { + String msg = String.format("Error: expected %s Got %s", pattern, candidate); + throw new RuntimeException(msg); + } + } +} diff --git a/test/jdk/java/net/httpclient/http2/ConnectionFlowControlTest.java b/test/jdk/java/net/httpclient/http2/ConnectionFlowControlTest.java new file mode 100644 index 00000000000..6b0b3727ee2 --- /dev/null +++ b/test/jdk/java/net/httpclient/http2/ConnectionFlowControlTest.java @@ -0,0 +1,365 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 8342075 + * @summary checks connection flow control + * @library /test/lib /test/jdk/java/net/httpclient/lib + * @build jdk.httpclient.test.lib.http2.Http2TestServer jdk.test.lib.net.SimpleSSLContext + * @run testng/othervm -Djdk.internal.httpclient.debug=true + * -Djdk.httpclient.connectionWindowSize=65535 + * -Djdk.httpclient.windowsize=16384 + * ConnectionFlowControlTest + */ + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.ProtocolException; +import java.net.URI; +import java.net.http.HttpClient; +import java.net.http.HttpHeaders; +import java.net.http.HttpRequest; +import java.net.http.HttpRequest.BodyPublishers; +import java.net.http.HttpResponse; +import java.net.http.HttpResponse.BodyHandler; +import java.net.http.HttpResponse.BodyHandlers; +import java.net.http.HttpResponse.BodySubscriber; +import java.net.http.HttpResponse.ResponseInfo; +import java.nio.ByteBuffer; +import java.nio.charset.StandardCharsets; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Map.Entry; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.CompletionStage; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.Flow.Subscription; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.function.BiFunction; +import java.util.function.Consumer; +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLSession; + +import jdk.httpclient.test.lib.common.HttpServerAdapters.HttpTestServer; +import jdk.httpclient.test.lib.http2.BodyOutputStream; +import jdk.httpclient.test.lib.http2.Http2Handler; +import jdk.httpclient.test.lib.http2.Http2TestExchange; +import jdk.httpclient.test.lib.http2.Http2TestExchangeImpl; +import jdk.httpclient.test.lib.http2.Http2TestServer; +import jdk.httpclient.test.lib.http2.Http2TestServerConnection; +import jdk.internal.net.http.common.HttpHeadersBuilder; +import jdk.internal.net.http.frame.ContinuationFrame; +import jdk.internal.net.http.frame.HeaderFrame; +import jdk.internal.net.http.frame.HeadersFrame; +import jdk.internal.net.http.frame.Http2Frame; +import jdk.internal.net.http.frame.SettingsFrame; +import jdk.test.lib.Utils; +import jdk.test.lib.net.SimpleSSLContext; +import org.testng.annotations.AfterTest; +import org.testng.annotations.BeforeTest; +import org.testng.annotations.DataProvider; +import org.testng.annotations.Test; + +import static java.util.List.of; +import static java.util.Map.entry; +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertNotEquals; +import static org.testng.Assert.assertTrue; +import static org.testng.Assert.fail; + +public class ConnectionFlowControlTest { + + SSLContext sslContext; + HttpTestServer http2TestServer; // HTTP/2 ( h2c ) + HttpTestServer https2TestServer; // HTTP/2 ( h2 ) + String http2URI; + String https2URI; + final AtomicInteger reqid = new AtomicInteger(); + + + @DataProvider(name = "variants") + public Object[][] variants() { + return new Object[][] { + { http2URI }, + { https2URI }, + }; + } + + @Test(dataProvider = "variants") + void test(String uri) throws Exception { + System.out.printf("%ntesting %s%n", uri); + ConcurrentHashMap> responseSent = new ConcurrentHashMap<>(); + ConcurrentHashMap> responses = new ConcurrentHashMap<>(); + FCHttp2TestExchange.setResponseSentCB((s) -> responseSent.get(s).complete(s)); + int connectionWindowSize = Math.max(Integer.getInteger( + "jdk.httpclient.connectionWindowSize", 65535), 65535); + int windowSize = Math.max(Integer.getInteger( + "jdk.httpclient.windowsize", 65535), 16384); + int max = connectionWindowSize / windowSize + 2; + System.out.printf("connection window: %s, stream window: %s, will make %s requests%n", + connectionWindowSize, windowSize, max); + + try (HttpClient client = HttpClient.newBuilder().sslContext(sslContext).build()) { + String label = null; + + Throwable t = null; + try { + String[] keys = new String[max]; + for (int i = 0; i < max; i++) { + String query = "reqId=" + reqid.incrementAndGet(); + keys[i] = query; + URI uriWithQuery = URI.create(uri + "?" + query); + CompletableFuture sent = new CompletableFuture<>(); + responseSent.put(query, sent); + HttpRequest request = HttpRequest.newBuilder(uriWithQuery) + .POST(BodyPublishers.ofString("Hello there!")) + .build(); + System.out.println("\nSending request:" + uriWithQuery); + final HttpClient cc = client; + var response = cc.send(request, BodyHandlers.ofInputStream()); + responses.put(query, response); + String ckey = response.headers().firstValue("X-Connection-Key").get(); + if (label == null) label = ckey; + try { + if (i < max - 1) { + // the connection window might be exceeded at i == max - 2, which + // means that the last request could go on a new connection. + assertEquals(ckey, label, "Unexpected key for " + query); + } + } catch (AssertionError ass) { + // since we won't pull all responses, the client + // will not exit unless we ask it to shutdown now. + client.shutdownNow(); + throw ass; + } + } + try { + Thread.sleep(1000); + } catch (InterruptedException ie) { + // ignore + } + CompletableFuture allsent = CompletableFuture.allOf(responseSent.values().stream() + .toArray(CompletableFuture[]::new)); + allsent.get(); + for (int i = 0; i < max; i++) { + try { + String query = keys[i]; + var response = responses.get(keys[i]); + String ckey = response.headers().firstValue("X-Connection-Key").get(); + if (label == null) label = ckey; + assertEquals(ckey, label, "Unexpected key for " + query); + int wait = uri.startsWith("https://") ? 500 : 250; + try (InputStream is = response.body()) { + Thread.sleep(Utils.adjustTimeout(wait)); + is.readAllBytes(); + } + System.out.printf("%s did not fail: %s%n", query, response.statusCode()); + } catch (AssertionError t1) { + // since we won't pull all responses, the client + // will not exit unless we ask it to shutdown now. + client.shutdownNow(); + throw t1; + } catch (Throwable t0) { + System.out.println("Got EXPECTED: " + t0); + if (t0 instanceof ExecutionException) { + t0 = t0.getCause(); + } + t = t0; + try { + assertDetailMessage(t0, i); + } catch (AssertionError e) { + // since we won't pull all responses, the client + // will not exit unless we ask it to shutdown now. + client.shutdownNow(); + throw e; + } + } + } + } catch (Throwable t0) { + System.out.println("Got EXPECTED: " + t0); + if (t0 instanceof ExecutionException) { + t0 = t0.getCause(); + } + t = t0; + } + if (t == null) { + // we could fail here if we haven't waited long enough + fail("Expected exception, got all responses, should sleep time be raised?"); + } else { + assertDetailMessage(t, max); + } + String query = "reqId=" + reqid.incrementAndGet(); + URI uriWithQuery = URI.create(uri + "?" + query); + CompletableFuture sent = new CompletableFuture<>(); + responseSent.put(query, sent); + HttpRequest request = HttpRequest.newBuilder(uriWithQuery) + .POST(BodyPublishers.ofString("Hello there!")) + .build(); + System.out.println("\nSending last request:" + uriWithQuery); + var response = client.send(request, BodyHandlers.ofString()); + if (label != null) { + String ckey = response.headers().firstValue("X-Connection-Key").get(); + assertNotEquals(ckey, label); + System.out.printf("last request %s sent on different connection as expected:" + + "\n\tlast: %s\n\tprevious: %s%n", query, ckey, label); + } + } + } + + // Assertions based on implementation specific detail messages. Keep in + // sync with implementation. + static void assertDetailMessage(Throwable throwable, int iterationIndex) { + try { + Throwable cause = throwable; + while (cause != null) { + if (cause instanceof ProtocolException) { + if (cause.getMessage().contains("connection window exceeded")) { + System.out.println("Found expected exception: " + cause); + return; + } + } + cause = cause.getCause(); + } + throw new AssertionError( + "ProtocolException(\"protocol error: connection window exceeded\") not found", + throwable); + } catch (AssertionError e) { + System.out.println("Exception does not match expectation: " + throwable); + throwable.printStackTrace(System.out); + throw e; + } + } + + @BeforeTest + public void setup() throws Exception { + sslContext = new SimpleSSLContext().get(); + if (sslContext == null) + throw new AssertionError("Unexpected null sslContext"); + + var http2TestServer = new Http2TestServer("localhost", false, 0); + http2TestServer.addHandler(new Http2TestHandler(), "/http2/"); + this.http2TestServer = HttpTestServer.of(http2TestServer); + http2URI = "http://" + this.http2TestServer.serverAuthority() + "/http2/x"; + + var https2TestServer = new Http2TestServer("localhost", true, sslContext); + https2TestServer.addHandler(new Http2TestHandler(), "/https2/"); + this.https2TestServer = HttpTestServer.of(https2TestServer); + https2URI = "https://" + this.https2TestServer.serverAuthority() + "/https2/x"; + + // Override the default exchange supplier with a custom one to enable + // particular test scenarios + http2TestServer.setExchangeSupplier(FCHttp2TestExchange::new); + https2TestServer.setExchangeSupplier(FCHttp2TestExchange::new); + + this.http2TestServer.start(); + this.https2TestServer.start(); + } + + @AfterTest + public void teardown() throws Exception { + http2TestServer.stop(); + https2TestServer.stop(); + } + + static class Http2TestHandler implements Http2Handler { + + @Override + public void handle(Http2TestExchange t) throws IOException { + String query = t.getRequestURI().getRawQuery(); + + try (InputStream is = t.getRequestBody(); + OutputStream os = t.getResponseBody()) { + + byte[] bytes = is.readAllBytes(); + System.out.println("Server " + t.getLocalAddress() + " received:\n" + + t.getRequestURI() + ": " + new String(bytes, StandardCharsets.UTF_8)); + t.getResponseHeaders().setHeader("X-Connection-Key", t.getConnectionKey()); + + if (bytes.length == 0) bytes = "no request body!".getBytes(StandardCharsets.UTF_8); + int window = Math.max(16384, Integer.getInteger("jdk.httpclient.windowsize", 2*16*1024)); + final int maxChunkSize; + if (t instanceof FCHttp2TestExchange fct) { + maxChunkSize = Math.min(window, fct.conn.getMaxFrameSize()); + } else { + maxChunkSize = Math.min(window, SettingsFrame.MAX_FRAME_SIZE); + } + byte[] resp = bytes.length < maxChunkSize + ? bytes + : Arrays.copyOfRange(bytes, 0, maxChunkSize); + int max = (window / resp.length); + // send in chunks + t.sendResponseHeaders(200, 0); + int sent = 0; + for (int i=0; i<=max; i++) { + int len = Math.min(resp.length, window - sent); + if (len <= 0) break; + if (os instanceof BodyOutputStream bos) { + try { + // we don't wait for the stream window, but we want + // to wait for the connection window + bos.waitForStreamWindow(len); + } catch (InterruptedException ie) { + // ignore and continue... + } + } + ((BodyOutputStream) os).writeUncontrolled(resp, 0, len); + sent += len; + } + if (sent != window) fail("should have sent %s, sent %s".formatted(window, sent)); + } + if (t instanceof FCHttp2TestExchange fct) { + fct.responseSent(query); + } else { + fail("Exchange is not %s but %s" + .formatted(FCHttp2TestExchange.class.getName(), t.getClass().getName())); + } + } + } + + // A custom Http2TestExchangeImpl that overrides sendResponseHeaders to + // allow headers to be sent with a number of CONTINUATION frames. + static class FCHttp2TestExchange extends Http2TestExchangeImpl { + static volatile Consumer responseSentCB; + static void setResponseSentCB(Consumer responseSentCB) { + FCHttp2TestExchange.responseSentCB = responseSentCB; + } + + final Http2TestServerConnection conn; + FCHttp2TestExchange(int streamid, String method, HttpHeaders reqheaders, + HttpHeadersBuilder rspheadersBuilder, URI uri, InputStream is, + SSLSession sslSession, BodyOutputStream os, + Http2TestServerConnection conn, boolean pushAllowed) { + super(streamid, method, reqheaders, rspheadersBuilder, uri, is, sslSession, os, conn, pushAllowed); + this.conn = conn; + } + public void responseSent(String query) { + System.out.println("Server: response sent for " + query); + responseSentCB.accept(query); + } + + } +} diff --git a/test/jdk/java/net/httpclient/http2/StreamFlowControlTest.java b/test/jdk/java/net/httpclient/http2/StreamFlowControlTest.java new file mode 100644 index 00000000000..36b727e3a22 --- /dev/null +++ b/test/jdk/java/net/httpclient/http2/StreamFlowControlTest.java @@ -0,0 +1,342 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 8342075 + * @library /test/lib /test/jdk/java/net/httpclient/lib + * @build jdk.httpclient.test.lib.http2.Http2TestServer jdk.test.lib.net.SimpleSSLContext + * @run testng/othervm -Djdk.internal.httpclient.debug=true + * -Djdk.httpclient.connectionWindowSize=65535 + * -Djdk.httpclient.windowsize=16384 + * StreamFlowControlTest + */ + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.ProtocolException; +import java.net.URI; +import java.net.http.HttpClient; +import java.net.http.HttpHeaders; +import java.net.http.HttpRequest; +import java.net.http.HttpRequest.BodyPublishers; +import java.net.http.HttpResponse; +import java.net.http.HttpResponse.BodyHandlers; +import java.nio.charset.StandardCharsets; +import java.util.Arrays; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.function.Consumer; +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLSession; + +import jdk.httpclient.test.lib.common.HttpServerAdapters.HttpTestServer; +import jdk.httpclient.test.lib.http2.BodyOutputStream; +import jdk.httpclient.test.lib.http2.Http2Handler; +import jdk.httpclient.test.lib.http2.Http2TestExchange; +import jdk.httpclient.test.lib.http2.Http2TestExchangeImpl; +import jdk.httpclient.test.lib.http2.Http2TestServer; +import jdk.httpclient.test.lib.http2.Http2TestServerConnection; +import jdk.internal.net.http.common.HttpHeadersBuilder; +import jdk.internal.net.http.frame.SettingsFrame; +import jdk.test.lib.Utils; +import jdk.test.lib.net.SimpleSSLContext; +import org.testng.annotations.AfterTest; +import org.testng.annotations.BeforeTest; +import org.testng.annotations.DataProvider; +import org.testng.annotations.Test; + +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.fail; + +public class StreamFlowControlTest { + + SSLContext sslContext; + HttpTestServer http2TestServer; // HTTP/2 ( h2c ) + HttpTestServer https2TestServer; // HTTP/2 ( h2 ) + String http2URI; + String https2URI; + final AtomicInteger reqid = new AtomicInteger(); + + + @DataProvider(name = "variants") + public Object[][] variants() { + return new Object[][] { + { http2URI, false }, + { https2URI, false }, + { http2URI, true }, + { https2URI, true }, + }; + } + + + @Test(dataProvider = "variants") + void test(String uri, + boolean sameClient) + throws Exception + { + System.out.printf("%ntesting test(%s, %s)%n", uri, sameClient); + ConcurrentHashMap> responseSent = new ConcurrentHashMap<>(); + FCHttp2TestExchange.setResponseSentCB((s) -> responseSent.get(s).complete(s)); + + HttpClient client = null; + try { + int max = sameClient ? 10 : 3; + String label = null; + for (int i = 0; i < max; i++) { + if (!sameClient || client == null) + client = HttpClient.newBuilder().sslContext(sslContext).build(); + + String query = "reqId=" + reqid.incrementAndGet(); + URI uriWithQuery = URI.create(uri + "?" + query); + CompletableFuture sent = new CompletableFuture<>(); + responseSent.put(query, sent); + HttpRequest request = HttpRequest.newBuilder(uriWithQuery) + .POST(BodyPublishers.ofString("Hello there!")) + .build(); + System.out.println("\nSending request:" + uriWithQuery); + final HttpClient cc = client; + try { + HttpResponse response = cc.send(request, BodyHandlers.ofInputStream()); + if (sameClient) { + String key = response.headers().firstValue("X-Connection-Key").get(); + if (label == null) label = key; + assertEquals(key, label, "Unexpected key for " + query); + } + sent.join(); + // we have to pull to get the exception, but slow enough + // so that DataFrames are buffered up to the point that + // the window is exceeded... + int wait = uri.startsWith("https://") ? 500 : 350; + try (InputStream is = response.body()) { + Thread.sleep(Utils.adjustTimeout(wait)); + is.readAllBytes(); + } + // we could fail here if we haven't waited long enough + fail("Expected exception, got :" + response + ", should sleep time be raised?"); + } catch (IOException ioe) { + System.out.println("Got EXPECTED: " + ioe); + assertDetailMessage(ioe, i); + } finally { + if (!sameClient && client != null) { + client.close(); + client = null; + } + } + } + } finally { + if (sameClient && client != null) client.close(); + } + + } + + @Test(dataProvider = "variants") + void testAsync(String uri, + boolean sameClient) + { + System.out.printf("%ntesting testAsync(%s, %s)%n", uri, sameClient); + ConcurrentHashMap> responseSent = new ConcurrentHashMap<>(); + FCHttp2TestExchange.setResponseSentCB((s) -> responseSent.get(s).complete(s)); + + HttpClient client = null; + try { + int max = sameClient ? 5 : 3; + String label = null; + for (int i = 0; i < max; i++) { + if (!sameClient || client == null) + client = HttpClient.newBuilder().sslContext(sslContext).build(); + + String query = "reqId=" + reqid.incrementAndGet(); + URI uriWithQuery = URI.create(uri + "?" + query); + CompletableFuture sent = new CompletableFuture<>(); + responseSent.put(query, sent); + HttpRequest request = HttpRequest.newBuilder(uriWithQuery) + .POST(BodyPublishers.ofString("Hello there!")) + .build(); + System.out.println("\nSending request:" + uriWithQuery); + final HttpClient cc = client; + + Throwable t = null; + try { + HttpResponse response = cc.sendAsync(request, BodyHandlers.ofInputStream()).get(); + if (sameClient) { + String key = response.headers().firstValue("X-Connection-Key").get(); + if (label == null) label = key; + assertEquals(key, label, "Unexpected key for " + query); + } + sent.join(); + int wait = uri.startsWith("https://") ? 600 : 300; + try (InputStream is = response.body()) { + Thread.sleep(Utils.adjustTimeout(wait)); + is.readAllBytes(); + } + // we could fail here if we haven't waited long enough + fail("Expected exception, got :" + response + ", should sleep time be raised?"); + } catch (Throwable t0) { + System.out.println("Got EXPECTED: " + t0); + if (t0 instanceof ExecutionException) { + t0 = t0.getCause(); + } + t = t0; + } finally { + if (!sameClient && client != null) { + client.close(); + client = null; + } + } + assertDetailMessage(t, i); + } + } finally { + if (sameClient && client != null) client.close(); + } + } + + // Assertions based on implementation specific detail messages. Keep in + // sync with implementation. + static void assertDetailMessage(Throwable throwable, int iterationIndex) { + try { + Throwable cause = throwable; + while (cause != null) { + if (cause instanceof ProtocolException) { + if (cause.getMessage().matches("stream [0-9]+ flow control window exceeded")) { + System.out.println("Found expected exception: " + cause); + return; + } + } + cause = cause.getCause(); + } + throw new AssertionError( + "ProtocolException(\"stream X flow control window exceeded\") not found", + throwable); + } catch (AssertionError e) { + System.out.println("Exception does not match expectation: " + throwable); + throwable.printStackTrace(System.out); + throw e; + } + } + + @BeforeTest + public void setup() throws Exception { + sslContext = new SimpleSSLContext().get(); + if (sslContext == null) + throw new AssertionError("Unexpected null sslContext"); + + var http2TestServer = new Http2TestServer("localhost", false, 0); + http2TestServer.addHandler(new Http2TestHandler(), "/http2/"); + this.http2TestServer = HttpTestServer.of(http2TestServer); + http2URI = "http://" + this.http2TestServer.serverAuthority() + "/http2/x"; + + var https2TestServer = new Http2TestServer("localhost", true, sslContext); + https2TestServer.addHandler(new Http2TestHandler(), "/https2/"); + this.https2TestServer = HttpTestServer.of(https2TestServer); + https2URI = "https://" + this.https2TestServer.serverAuthority() + "/https2/x"; + + // Override the default exchange supplier with a custom one to enable + // particular test scenarios + http2TestServer.setExchangeSupplier(FCHttp2TestExchange::new); + https2TestServer.setExchangeSupplier(FCHttp2TestExchange::new); + + this.http2TestServer.start(); + this.https2TestServer.start(); + } + + @AfterTest + public void teardown() throws Exception { + http2TestServer.stop(); + https2TestServer.stop(); + } + + static class Http2TestHandler implements Http2Handler { + + @Override + public void handle(Http2TestExchange t) throws IOException { + String query = t.getRequestURI().getRawQuery(); + + try (InputStream is = t.getRequestBody(); + OutputStream os = t.getResponseBody()) { + + byte[] bytes = is.readAllBytes(); + System.out.println("Server " + t.getLocalAddress() + " received:\n" + + t.getRequestURI() + ": " + new String(bytes, StandardCharsets.UTF_8)); + t.getResponseHeaders().setHeader("X-Connection-Key", t.getConnectionKey()); + + if (bytes.length == 0) bytes = "no request body!".getBytes(StandardCharsets.UTF_8); + int window = Integer.getInteger("jdk.httpclient.windowsize", 2 * 16 * 1024); + final int maxChunkSize; + if (t instanceof FCHttp2TestExchange fct) { + maxChunkSize = Math.min(window, fct.conn.getMaxFrameSize()); + } else { + maxChunkSize = Math.min(window, SettingsFrame.MAX_FRAME_SIZE); + } + byte[] resp = bytes.length <= maxChunkSize + ? bytes + : Arrays.copyOfRange(bytes, 0, maxChunkSize); + int max = (window / resp.length) + 2; + // send in chunks + t.sendResponseHeaders(200, 0); + for (int i = 0; i <= max; i++) { + if (t instanceof FCHttp2TestExchange fct) { + try { + // we don't wait for the stream window, but we want + // to wait for the connection window + fct.conn.obtainConnectionWindow(resp.length); + } catch (InterruptedException ie) { + // ignore and continue... + } + } + ((BodyOutputStream) os).writeUncontrolled(resp, 0, resp.length); + } + } + if (t instanceof FCHttp2TestExchange fct) { + fct.responseSent(query); + } else fail("Exchange is not %s but %s" + .formatted(FCHttp2TestExchange.class.getName(), t.getClass().getName())); + } + } + + // A custom Http2TestExchangeImpl that overrides sendResponseHeaders to + // allow headers to be sent with a number of CONTINUATION frames. + static class FCHttp2TestExchange extends Http2TestExchangeImpl { + static volatile Consumer responseSentCB; + static void setResponseSentCB(Consumer responseSentCB) { + FCHttp2TestExchange.responseSentCB = responseSentCB; + } + + final Http2TestServerConnection conn; + FCHttp2TestExchange(int streamid, String method, HttpHeaders reqheaders, + HttpHeadersBuilder rspheadersBuilder, URI uri, InputStream is, + SSLSession sslSession, BodyOutputStream os, + Http2TestServerConnection conn, boolean pushAllowed) { + super(streamid, method, reqheaders, rspheadersBuilder, uri, is, sslSession, os, conn, pushAllowed); + this.conn = conn; + } + public void responseSent(String query) { + System.out.println("Server: response sent for " + query); + responseSentCB.accept(query); + } + + } +} diff --git a/test/jdk/java/net/httpclient/lib/jdk/httpclient/test/lib/http2/BodyOutputStream.java b/test/jdk/java/net/httpclient/lib/jdk/httpclient/test/lib/http2/BodyOutputStream.java index c091b7ecf9b..db5778ec3d9 100644 --- a/test/jdk/java/net/httpclient/lib/jdk/httpclient/test/lib/http2/BodyOutputStream.java +++ b/test/jdk/java/net/httpclient/lib/jdk/httpclient/test/lib/http2/BodyOutputStream.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -25,6 +25,7 @@ import java.io.*; import java.nio.ByteBuffer; +import java.util.Objects; import jdk.internal.net.http.frame.DataFrame; import jdk.internal.net.http.frame.ResetFrame; @@ -65,6 +66,10 @@ void waitForWindow(int demand) throws InterruptedException { // first wait for the connection window conn.obtainConnectionWindow(demand); // now wait for the stream window + waitForStreamWindow(demand); + } + + public void waitForStreamWindow(int demand) throws InterruptedException { synchronized (this) { while (demand > 0) { int n = Math.min(demand, window); @@ -83,6 +88,7 @@ public void goodToGo() { @Override public void write(byte[] buf, int offset, int len) throws IOException { + Objects.checkFromIndexSize(offset, len, buf.length); if (closed) { throw new IOException("closed"); } @@ -104,6 +110,34 @@ public void write(byte[] buf, int offset, int len) throws IOException { } } + /** + * This method pushes frames onto the stack without checking + * for flow control, allowing the sender to bypass flow + * control for testing purposes + * @param buf data to send + * @param offset offset at which the data starts + * @param len length of the data to send + * @throws IOException if an I/O error occurs + */ + public void writeUncontrolled(byte[] buf, int offset, int len) + throws IOException { + Objects.checkFromIndexSize(offset, len, buf.length); + if (closed) { + throw new IOException("closed"); + } + + if (!goodToGo) { + throw new IllegalStateException("sendResponseHeaders must be called first"); + } + int max = conn.getMaxFrameSize(); + while (len > 0) { + int n = len > max ? max : len; + send(buf, offset, n, 0); + offset += n; + len -= n; + } + } + private void send(byte[] buf, int offset, int len, int flags) throws IOException { ByteBuffer buffer = ByteBuffer.allocate(len); buffer.put(buf, offset, len); diff --git a/test/jdk/java/net/httpclient/lib/jdk/httpclient/test/lib/http2/Http2TestServerConnection.java b/test/jdk/java/net/httpclient/lib/jdk/httpclient/test/lib/http2/Http2TestServerConnection.java index c98e986ca85..068d2a49e57 100644 --- a/test/jdk/java/net/httpclient/lib/jdk/httpclient/test/lib/http2/Http2TestServerConnection.java +++ b/test/jdk/java/net/httpclient/lib/jdk/httpclient/test/lib/http2/Http2TestServerConnection.java @@ -1374,7 +1374,7 @@ void registerStreamWindowUpdater(int streamid, Consumer r) { * * @param amount */ - synchronized void obtainConnectionWindow(int amount) throws InterruptedException { + public synchronized void obtainConnectionWindow(int amount) throws InterruptedException { while (amount > 0) { int n = Math.min(amount, sendWindow); amount -= n; @@ -1384,9 +1384,13 @@ synchronized void obtainConnectionWindow(int amount) throws InterruptedException } } - synchronized void updateConnectionWindow(int amount) { - sendWindow += amount; - notifyAll(); + void updateConnectionWindow(int amount) { + System.out.printf("sendWindow (window=%s, amount=%s) is now: %s%n", + sendWindow, amount, sendWindow + amount); + synchronized (this) { + sendWindow += amount; + notifyAll(); + } } // simplified output headers class. really just a type safe container diff --git a/test/jdk/java/nio/channels/Selector/WakeupNow.java b/test/jdk/java/nio/channels/Selector/WakeupNow.java index 23dc0c30907..a8d1222ba13 100644 --- a/test/jdk/java/nio/channels/Selector/WakeupNow.java +++ b/test/jdk/java/nio/channels/Selector/WakeupNow.java @@ -26,7 +26,9 @@ * @summary Ensure that the wakeup state is cleared by selectNow() */ -import java.nio.channels.*; +import java.nio.channels.Pipe; +import java.nio.channels.SelectionKey; +import java.nio.channels.Selector; public class WakeupNow { @@ -47,14 +49,15 @@ private static void test1() throws Exception { // ensure wakeup is consumed by selectNow Thread.sleep(2000); sel.selectNow(); - long startTime = System.currentTimeMillis(); + long startTime = System.nanoTime(); int n = sel.select(2000); - long endTime = System.currentTimeMillis(); + long endTime = System.nanoTime(); p.source().close(); p.sink().close(); sel.close(); - if (endTime - startTime < 1000) - throw new RuntimeException("test failed"); + long delta = endTime - startTime; + if (delta < 1_000_000_000) + throw new RuntimeException("test failed with delta " + delta); } // Test if selectNow clears wakeup with only the wakeup fd @@ -62,18 +65,17 @@ private static void test1() throws Exception { // This fails before the fix on Solaris private static void test2() throws Exception { Selector sel = Selector.open(); - Pipe p = Pipe.open(); - p.source().configureBlocking(false); sel.wakeup(); // ensure wakeup is consumed by selectNow Thread.sleep(2000); sel.selectNow(); - long startTime = System.currentTimeMillis(); + long startTime = System.nanoTime(); int n = sel.select(2000); - long endTime = System.currentTimeMillis(); + long endTime = System.nanoTime(); sel.close(); - if (endTime - startTime < 1000) - throw new RuntimeException("test failed"); + long delta = endTime - startTime; + if (delta < 1_000_000_000) + throw new RuntimeException("test failed with delta " + delta); } } diff --git a/test/jdk/java/nio/file/DirectoryStream/SecureDS.java b/test/jdk/java/nio/file/DirectoryStream/SecureDS.java index d4f197eb09b..e058d782c52 100644 --- a/test/jdk/java/nio/file/DirectoryStream/SecureDS.java +++ b/test/jdk/java/nio/file/DirectoryStream/SecureDS.java @@ -22,8 +22,9 @@ */ /* @test - * @bug 4313887 6838333 + * @bug 4313887 6838333 8343020 * @summary Unit test for java.nio.file.SecureDirectoryStream + * @requires (os.family == "linux" | os.family == "mac") * @library .. */ @@ -45,11 +46,7 @@ public static void main(String[] args) throws IOException { DirectoryStream stream = newDirectoryStream(dir); stream.close(); if (!(stream instanceof SecureDirectoryStream)) { - if (System.getProperty("os.name").equals("Linux")) - throw new AssertionError( - "SecureDirectoryStream not supported."); - System.out.println("SecureDirectoryStream not supported."); - return; + throw new AssertionError("SecureDirectoryStream not supported."); } supportsSymbolicLinks = TestUtil.supportsSymbolicLinks(dir); diff --git a/test/jdk/java/nio/file/Files/InputStreamTest.java b/test/jdk/java/nio/file/Files/InputStreamTest.java index 8587ee332f2..f6fa7da6ff0 100644 --- a/test/jdk/java/nio/file/Files/InputStreamTest.java +++ b/test/jdk/java/nio/file/Files/InputStreamTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2019, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,37 +22,123 @@ */ /* @test - * @bug 8227609 + * @bug 8227609 8233451 * @summary Test of InputStream and OutputStream created by java.nio.file.Files - * @library .. + * @library .. /test/lib + * @build jdk.test.lib.Platform + * @run junit/othervm --enable-native-access=ALL-UNNAMED InputStreamTest */ +import java.io.FileInputStream; +import java.io.FileOutputStream; import java.io.InputStream; +import java.io.IOException; import java.io.OutputStream; +import java.lang.foreign.Arena; +import java.lang.foreign.FunctionDescriptor; +import java.lang.foreign.Linker; +import java.lang.foreign.MemorySegment; +import java.lang.foreign.SymbolLookup; +import java.lang.foreign.ValueLayout; +import java.lang.invoke.MethodHandle; import java.nio.channels.ClosedChannelException; -import java.nio.file.*; -import static java.nio.file.Files.*; -import static java.nio.file.LinkOption.*; -import java.nio.file.attribute.*; -import java.io.IOException; -import java.util.*; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Arrays; +import jdk.test.lib.Platform; + +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.condition.DisabledOnOs; +import org.junit.jupiter.api.condition.OS; +import static org.junit.jupiter.api.Assertions.*; public class InputStreamTest { - public static void main(String[] args) throws IOException { - Path dir = TestUtil.createTemporaryDirectory(); + private static final String PIPE = "pipe"; + private static final Path PIPE_PATH = Path.of(PIPE); + private static final String SENTENCE = + "Tout est permis mais rien n’est possible"; + + private static Path TMPDIR; + + private static class mkfifo { + public static final FunctionDescriptor DESC = FunctionDescriptor.of( + ValueLayout.JAVA_INT, + ValueLayout.ADDRESS, + ValueLayout.JAVA_SHORT + ); + + public static final MemorySegment ADDR; + static { + Linker linker = Linker.nativeLinker(); + SymbolLookup stdlib = linker.defaultLookup(); + ADDR = stdlib.find("mkfifo").orElseThrow(); + } + + public static final MethodHandle HANDLE = + Linker.nativeLinker().downcallHandle(ADDR, DESC); + } + + public static int mkfifo(MemorySegment x0, short x1) { + var mh$ = mkfifo.HANDLE; try { - testSkip(dir); - } finally { - TestUtil.removeAll(dir); + return (int)mh$.invokeExact(x0, x1); + } catch (Throwable ex$) { + throw new AssertionError("should not reach here", ex$); } } + private static Thread createWriteThread() { + Thread t = new Thread( + new Runnable() { + public void run() { + try (FileOutputStream fos = new FileOutputStream(PIPE);) { + fos.write(SENTENCE.getBytes()); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + } + ); + t.start(); + return t; + } + + @BeforeAll + static void before() throws InterruptedException, IOException { + TMPDIR = TestUtil.createTemporaryDirectory(); + + if (Platform.isWindows()) + return; + + Files.deleteIfExists(PIPE_PATH); + try (var newArena = Arena.ofConfined()) { + var addr = newArena.allocateFrom(PIPE); + short mode = 0666; + assertEquals(0, mkfifo(addr, mode)); + } + if (Files.notExists(PIPE_PATH)) + throw new RuntimeException("Failed to create " + PIPE); + } + + @AfterAll + static void after() throws IOException { + TestUtil.removeAll(TMPDIR); + + if (Platform.isWindows()) + return; + + Files.deleteIfExists(PIPE_PATH); + } + /** * Tests Files.newInputStream(Path).skip(). */ - static void testSkip(Path tmpdir) throws IOException { - Path file = createFile(tmpdir.resolve("foo")); + @Test + void skip() throws IOException { + Path file = Files.createFile(TMPDIR.resolve("foo")); try (OutputStream out = Files.newOutputStream(file)) { final int size = 512; byte[] blah = new byte[size]; @@ -123,8 +209,87 @@ static void testSkip(Path tmpdir) throws IOException { } } - static void assertTrue(boolean okay) { - if (!okay) - throw new RuntimeException("Assertion Failed"); + /** + * Tests that Files.newInputStream(Path).available() does not throw + */ + @Test + @DisabledOnOs(OS.WINDOWS) + void availableStdin() throws IOException { + Path stdin = Path.of("/dev", "stdin"); + if (Files.exists(stdin)) { + try (InputStream s = Files.newInputStream(stdin);) { + s.available(); + } + } + } + + /** + * Tests that Files.newInputStream(Path).skip(0) does not throw + */ + @Test + @DisabledOnOs(OS.WINDOWS) + void skipStdin() throws IOException { + Path stdin = Path.of("/dev", "stdin"); + if (Files.exists(stdin)) { + try (InputStream s = Files.newInputStream(stdin);) { + s.skip(0); + } + } + } + + /** + * Tests Files.newInputStream(Path).readAllBytes(). + */ + @Test + @DisabledOnOs(OS.WINDOWS) + void readAllBytes() throws InterruptedException, IOException { + Thread t = createWriteThread(); + try (InputStream in = Files.newInputStream(Path.of(PIPE))) { + String s = new String(in.readAllBytes()); + System.out.println(s); + assertEquals(SENTENCE, s); + } finally { + t.join(); + } + } + + /** + * Tests Files.newInputStream(Path).readNBytes(byte[],int,int). + */ + @Test + @DisabledOnOs(OS.WINDOWS) + void readNBytesNoOverride() throws InterruptedException, IOException { + Thread t = createWriteThread(); + try (InputStream in = Files.newInputStream(Path.of(PIPE))) { + final int offset = 11; + final int length = 17; + assert length <= SENTENCE.length(); + byte[] b = new byte[offset + length]; + int n = in.readNBytes(b, offset, length); + String s = new String(b, offset, length); + System.out.println(s); + assertEquals(SENTENCE.substring(0, length), s); + } finally { + t.join(); + } + } + + /** + * Tests Files.newInputStream(Path).readNBytes(int). + */ + @Test + @DisabledOnOs(OS.WINDOWS) + void readNBytesOverride() throws InterruptedException, IOException { + Thread t = createWriteThread(); + try (InputStream in = Files.newInputStream(Path.of(PIPE))) { + final int length = 17; + assert length <= SENTENCE.length(); + byte[] b = in.readNBytes(length); + String s = new String(b); + System.out.println(s); + assertEquals(SENTENCE.substring(0, length), s); + } finally { + t.join(); + } } } diff --git a/test/jdk/java/security/KeyAgreement/KeyAgreementTest.java b/test/jdk/java/security/KeyAgreement/KeyAgreementTest.java index 1e16c157fed..1e5eb968030 100644 --- a/test/jdk/java/security/KeyAgreement/KeyAgreementTest.java +++ b/test/jdk/java/security/KeyAgreement/KeyAgreementTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -51,7 +51,7 @@ public static void main(String[] args) throws Exception { String kaAlgo = args[0]; String kpgAlgo = args[1]; - String provider = args[2]; + String provider = System.getProperty("test.provider.name", args[2]); System.out.println("Testing " + kaAlgo); AlgoSpec aSpec = AlgoSpec.valueOf(AlgoSpec.class, kaAlgo); List specs = aSpec.getAlgorithmParameterSpecs(); diff --git a/test/jdk/java/security/KeyAgreement/KeySizeTest.java b/test/jdk/java/security/KeyAgreement/KeySizeTest.java index 5dfb2dc7315..6ac36a5ee86 100644 --- a/test/jdk/java/security/KeyAgreement/KeySizeTest.java +++ b/test/jdk/java/security/KeyAgreement/KeySizeTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -64,7 +64,7 @@ public class KeySizeTest { public static void main(String[] args) throws Exception { String kaAlgo = args[0]; - String provider = args[1]; + String provider = System.getProperty("test.provider.name", args[1]); String kpgAlgo = args[2]; int keySize = Integer.parseInt(args[3]); testKeyAgreement(provider, kaAlgo, kpgAlgo, keySize); diff --git a/test/jdk/java/security/KeyAgreement/KeySpecTest.java b/test/jdk/java/security/KeyAgreement/KeySpecTest.java index 1e8742dd796..f5974738a12 100644 --- a/test/jdk/java/security/KeyAgreement/KeySpecTest.java +++ b/test/jdk/java/security/KeyAgreement/KeySpecTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,6 +24,7 @@ /* * @test * @bug 8184359 + * @library /test/lib * @summary Standard tests on KeySpec, KeyFactory, KeyPairs and Keys. * Arguments order * @run main KeySpecTest DiffieHellman SunJCE DiffieHellman @@ -55,13 +56,14 @@ import javax.crypto.KeyAgreement; import javax.crypto.spec.DHPrivateKeySpec; import javax.crypto.spec.DHPublicKeySpec; +import jdk.test.lib.security.SecurityUtils; public class KeySpecTest { public static void main(String[] args) throws Exception { String kaAlgo = args[0]; - String provider = args[1]; + String provider = System.getProperty("test.provider.name", args[1]); String kpgAlgo = args[2]; KeyPair kp = genKeyPair(provider, kpgAlgo, (args.length > 3) ? args[3] : kpgAlgo); @@ -78,7 +80,7 @@ private static KeyPair genKeyPair(String provider, String kpgAlgo, KeyPairGenerator kpg = KeyPairGenerator.getInstance(kpgAlgo, provider); switch (kpgInit) { case "DiffieHellman": - kpg.initialize(512); + kpg.initialize(SecurityUtils.getTestKeySize(kpgInit)); break; case "EC": kpg.initialize(256); diff --git a/test/jdk/java/security/KeyAgreement/MultiThreadTest.java b/test/jdk/java/security/KeyAgreement/MultiThreadTest.java index f53572a10b5..743e874a7de 100644 --- a/test/jdk/java/security/KeyAgreement/MultiThreadTest.java +++ b/test/jdk/java/security/KeyAgreement/MultiThreadTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,6 +24,7 @@ /* * @test * @bug 8184359 + * @library /test/lib * @summary KeyPairGenerator Test with multiple threads. * Arguments order * @run main MultiThreadTest DiffieHellman SunJCE DiffieHellman @@ -39,6 +40,7 @@ import java.util.concurrent.Executors; import java.util.concurrent.ThreadFactory; import javax.crypto.KeyAgreement; +import jdk.test.lib.security.SecurityUtils; /** * This test targets KeyPairGenerator API related issue in a multi threaded @@ -52,7 +54,7 @@ public class MultiThreadTest { public static void main(String[] args) throws Exception { String kaAlgo = args[0]; - String provider = args[1]; + String provider = System.getProperty("test.provider.name", args[1]); String kpgAlgo = args[2]; KeyPairGenerator kpg = genKeyGenerator(provider, kpgAlgo, (args.length > 3) ? args[3] : kpgAlgo); @@ -68,7 +70,7 @@ private static KeyPairGenerator genKeyGenerator(String provider, KeyPairGenerator kpg = KeyPairGenerator.getInstance(kpgAlgo, provider); switch (kpgInit) { case "DiffieHellman": - kpg.initialize(512); + kpg.initialize(SecurityUtils.getTestKeySize(kpgInit)); break; case "EC": kpg.initialize(256); diff --git a/test/jdk/java/security/KeyAgreement/NegativeTest.java b/test/jdk/java/security/KeyAgreement/NegativeTest.java index 864bf09aeeb..3ccb614ffc3 100644 --- a/test/jdk/java/security/KeyAgreement/NegativeTest.java +++ b/test/jdk/java/security/KeyAgreement/NegativeTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -35,7 +35,7 @@ * Arguments order * * @library /test/lib - * @run main NegativeTest DiffieHellman SunJCE DiffieHellman 1024 + * @run main NegativeTest DiffieHellman SunJCE DiffieHellman 2048 * @run main NegativeTest ECDH SunEC EC 256 * @run main NegativeTest XDH SunEC XDH 255 X25519 * @run main NegativeTest XDH SunEC XDH 448 X448 @@ -59,13 +59,14 @@ import java.util.Arrays; import java.util.HexFormat; import javax.crypto.KeyAgreement; +import jdk.test.lib.security.SecurityUtils; public class NegativeTest { public static void main(String[] args) throws Exception { String kaAlgo = args[0]; - String provider = args[1]; + String provider = System.getProperty("test.provider.name", args[1]); String kpgAlgo = args[2]; int keySize = Integer.parseInt(args[3]); String kpgInit = (args.length > 4) ? args[4] : args[2]; @@ -93,7 +94,7 @@ private static KeyPair genKeyPair(String provider, String kpgAlgo, Security.getProvider(provider)); switch (kpgInit) { case "DiffieHellman": - kpg.initialize(512); + kpg.initialize(SecurityUtils.getTestKeySize(kpgInit)); break; case "EC": kpg.initialize(256); diff --git a/test/jdk/java/security/KeyFactory/Failover.java b/test/jdk/java/security/KeyFactory/Failover.java index 6242758a9cf..7107ef1ad02 100644 --- a/test/jdk/java/security/KeyFactory/Failover.java +++ b/test/jdk/java/security/KeyFactory/Failover.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,7 +24,7 @@ /** * @test * @bug 4894125 7054918 8130181 - * @library ../testlibrary + * @library ../testlibrary /test/lib * @summary test that failover for KeyFactory works * @author Andreas Sterbenz */ @@ -34,6 +34,7 @@ import java.security.*; import java.security.interfaces.*; import java.security.spec.*; +import jdk.test.lib.security.SecurityUtils; public class Failover { @@ -72,8 +73,9 @@ public static void main0(String[] args) throws Exception { // somewhat more real tests using DSA System.out.println("DSA tests..."); - KeyPairGenerator kpg = KeyPairGenerator.getInstance("DSA"); - kpg.initialize(512); + String kpgAlgorithm = "DSA"; + KeyPairGenerator kpg = KeyPairGenerator.getInstance(kpgAlgorithm); + kpg.initialize(SecurityUtils.getTestKeySize(kpgAlgorithm)); KeyPair kp = kpg.generateKeyPair(); kf = KeyFactory.getInstance("DSA"); diff --git a/test/jdk/java/security/KeyFactory/GenerateRSAPrivateCrtKey.java b/test/jdk/java/security/KeyFactory/GenerateRSAPrivateCrtKey.java index de37778b844..1c7cdba2598 100644 --- a/test/jdk/java/security/KeyFactory/GenerateRSAPrivateCrtKey.java +++ b/test/jdk/java/security/KeyFactory/GenerateRSAPrivateCrtKey.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -51,7 +51,8 @@ public static void main(String[] args) throws Exception { new BigInteger(1, coeff)); // Create an RSA private key from the CRT specification - KeyFactory kf = KeyFactory.getInstance("RSA", "SunRsaSign"); + KeyFactory kf = KeyFactory.getInstance("RSA", + System.getProperty("test.provider.name", "SunRsaSign")); RSAPrivateCrtKey rsaPriKey = (RSAPrivateCrtKey) kf.generatePrivate(rsaCrtSpec); diff --git a/test/jdk/java/security/KeyFactory/KeyFactoryGetKeySpecForInvalidSpec.java b/test/jdk/java/security/KeyFactory/KeyFactoryGetKeySpecForInvalidSpec.java index e72d5c8decc..71b05b0c225 100644 --- a/test/jdk/java/security/KeyFactory/KeyFactoryGetKeySpecForInvalidSpec.java +++ b/test/jdk/java/security/KeyFactory/KeyFactoryGetKeySpecForInvalidSpec.java @@ -69,7 +69,8 @@ public BigInteger getModulus() { } public static void main(String[] args) throws Exception { - KeyPairGenerator kg = KeyPairGenerator.getInstance("RSA", "SunRsaSign"); + KeyPairGenerator kg = KeyPairGenerator.getInstance("RSA", + System.getProperty("test.provider.name", "SunRsaSign")); kg.initialize(2048); KeyPair pair = kg.generateKeyPair(); diff --git a/test/jdk/java/security/KeyPairGenerator/GenerateKeypair.java b/test/jdk/java/security/KeyPairGenerator/GenerateKeypair.java index 2c68e5954fa..b2c87b1c38a 100644 --- a/test/jdk/java/security/KeyPairGenerator/GenerateKeypair.java +++ b/test/jdk/java/security/KeyPairGenerator/GenerateKeypair.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,18 +24,21 @@ /* * @test * @bug 4221800 + * @library /test/lib * @summary Test restored generateKeyPair method */ import java.security.KeyPairGenerator; import java.security.KeyPair; +import jdk.test.lib.security.SecurityUtils; public class GenerateKeypair { public static void main(String[] args) throws Exception { - KeyPairGenerator kpg = KeyPairGenerator.getInstance("DSA"); - kpg.initialize(512); + String kpgAlgorithm = "DSA"; + KeyPairGenerator kpg = KeyPairGenerator.getInstance(kpgAlgorithm); + kpg.initialize(SecurityUtils.getTestKeySize(kpgAlgorithm)); // test generateKeyPair KeyPair kpair = kpg.generateKeyPair(); diff --git a/test/jdk/java/security/KeyPairGenerator/GenerateRSAKeyPair.java b/test/jdk/java/security/KeyPairGenerator/GenerateRSAKeyPair.java index eafd06ee3ec..1b9ace546dc 100644 --- a/test/jdk/java/security/KeyPairGenerator/GenerateRSAKeyPair.java +++ b/test/jdk/java/security/KeyPairGenerator/GenerateRSAKeyPair.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,6 +24,7 @@ /* * @test * @bug 4297026 + * @library /test/lib * @summary Make sure that RSA Keypair generation using * java.security.spec.RSAKeyGenParameterSpec passes */ @@ -31,14 +32,18 @@ import java.security.KeyPairGenerator; import java.security.KeyPair; import java.security.spec.RSAKeyGenParameterSpec; +import jdk.test.lib.security.SecurityUtils; public class GenerateRSAKeyPair { public static void main(String[] args) throws Exception { + String kpgAlgorithm = "RSA"; RSAKeyGenParameterSpec rsaSpec = - new RSAKeyGenParameterSpec (1024, RSAKeyGenParameterSpec.F4); - KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", "SunRsaSign"); + new RSAKeyGenParameterSpec (SecurityUtils.getTestKeySize(kpgAlgorithm), + RSAKeyGenParameterSpec.F4); + KeyPairGenerator kpg = KeyPairGenerator.getInstance(kpgAlgorithm, + System.getProperty("test.provider.name", "SunRsaSign")); kpg.initialize(rsaSpec); // test generateKeyPair diff --git a/test/jdk/java/security/KeyRep/Serial.java b/test/jdk/java/security/KeyRep/Serial.java index 413aa10661a..e61de5c2be6 100644 --- a/test/jdk/java/security/KeyRep/Serial.java +++ b/test/jdk/java/security/KeyRep/Serial.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -38,9 +38,9 @@ public class Serial { // providers - private static final String SUN = "SUN"; - private static final String RSA = "SunRsaSign"; - private static final String JCE = "SunJCE"; + private static final String SUN = System.getProperty("test.provider.name", "SUN"); + private static final String RSA = System.getProperty("test.provider.name", "SunRsaSign"); + private static final String JCE = System.getProperty("test.provider.name", "SunJCE"); public static void main(String[] args) throws Exception { diff --git a/test/jdk/java/security/KeyRep/Serial.policy b/test/jdk/java/security/KeyRep/Serial.policy index 0c2c1d0868d..3c529c87a13 100644 --- a/test/jdk/java/security/KeyRep/Serial.policy +++ b/test/jdk/java/security/KeyRep/Serial.policy @@ -1,3 +1,4 @@ grant { + permission java.util.PropertyPermission "test.provider.name", "read"; // XXX note package access is *not* granted to the 'sun' package }; diff --git a/test/jdk/java/security/MessageDigest/ByteBuffers.java b/test/jdk/java/security/MessageDigest/ByteBuffers.java index dd3467d0e67..f21a51e1c10 100644 --- a/test/jdk/java/security/MessageDigest/ByteBuffers.java +++ b/test/jdk/java/security/MessageDigest/ByteBuffers.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -37,7 +37,7 @@ public class ByteBuffers { public static void main(String[] args) throws Exception { - Provider p = Security.getProvider("SUN"); + Provider p = Security.getProvider(System.getProperty("test.provider.name", "SUN")); Random random = new Random(); int n = 10 * 1024; byte[] t = new byte[n]; diff --git a/test/jdk/java/security/MessageDigest/TestCloneable.java b/test/jdk/java/security/MessageDigest/TestCloneable.java index 3a4feb82ff6..48236dbd447 100644 --- a/test/jdk/java/security/MessageDigest/TestCloneable.java +++ b/test/jdk/java/security/MessageDigest/TestCloneable.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -43,14 +43,16 @@ public class TestCloneable { private static final Class CNSE = CloneNotSupportedException.class; + private static String providerName = System.getProperty("test.provider.name", "SUN"); + @DataProvider public Object[][] testData() { return new Object[][] { - { "MD2", "SUN" }, { "MD5", "SUN" }, { "SHA-1", "SUN" }, - { "SHA-224", "SUN" }, { "SHA-256", "SUN" }, - { "SHA-384", "SUN" }, { "SHA-512", "SUN" }, - { "SHA3-224", "SUN" }, { "SHA3-256", "SUN" }, - { "SHA3-384", "SUN" }, { "SHA3-512", "SUN" } + { "MD2", providerName }, { "MD5", providerName }, { "SHA-1", providerName }, + { "SHA-224", providerName }, { "SHA-256", providerName }, + { "SHA-384", providerName }, { "SHA-512", providerName }, + { "SHA3-224", providerName }, { "SHA3-256", providerName }, + { "SHA3-384", providerName }, { "SHA3-512", providerName } }; } diff --git a/test/jdk/java/security/Provider/SupportsParameter.java b/test/jdk/java/security/Provider/SupportsParameter.java index bc3cb031791..039fb3d0797 100644 --- a/test/jdk/java/security/Provider/SupportsParameter.java +++ b/test/jdk/java/security/Provider/SupportsParameter.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,6 +24,7 @@ /** * @test * @bug 4911081 8130181 + * @library /test/lib * @summary verify that Provider.Service.supportsParameter() works * @author Andreas Sterbenz */ @@ -33,12 +34,14 @@ import javax.crypto.*; import javax.crypto.spec.SecretKeySpec; +import jdk.test.lib.security.SecurityUtils; public class SupportsParameter { public static void main(String[] args) throws Exception { - KeyPairGenerator kpg = KeyPairGenerator.getInstance("DSA"); - kpg.initialize(512); + String kpgAlgorithm = "DSA"; + KeyPairGenerator kpg = KeyPairGenerator.getInstance(kpgAlgorithm); + kpg.initialize(SecurityUtils.getTestKeySize(kpgAlgorithm)); KeyPair kp = kpg.generateKeyPair(); PublicKey dsaPublicKey = kp.getPublic(); PrivateKey dsaPrivateKey = kp.getPrivate(); diff --git a/test/jdk/java/security/SecureRandom/DefaultAlgo.java b/test/jdk/java/security/SecureRandom/DefaultAlgo.java index 06027f7162e..8f9e776f246 100644 --- a/test/jdk/java/security/SecureRandom/DefaultAlgo.java +++ b/test/jdk/java/security/SecureRandom/DefaultAlgo.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2019, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -87,8 +87,9 @@ private static void checkDefault(Provider p, String ... algos) { p.remove("SecureRandom." + s); out.println("removed " + s); } - validate(new SecureRandom(), "SUN", - SunEntries.DEF_SECURE_RANDOM_ALGO); + validate(new SecureRandom(), System.getProperty("test.provider.name", "SUN"), + System.getProperty("test.default.secure.random.algorithm.name", + SunEntries.DEF_SECURE_RANDOM_ALGO)); } else { validate(new SecureRandom(), pName, algos[0]); } diff --git a/test/jdk/java/security/SecureRandom/DefaultProvider.java b/test/jdk/java/security/SecureRandom/DefaultProvider.java index c80700b78c9..b9a393bd346 100644 --- a/test/jdk/java/security/SecureRandom/DefaultProvider.java +++ b/test/jdk/java/security/SecureRandom/DefaultProvider.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -42,7 +42,7 @@ public static void main(String[] args) throws NoSuchAlgorithmException { out.println("TEST: Default provider with constructor"); SecureRandom secureRandom = new SecureRandom(); String provider = secureRandom.getProvider().getName(); - if (!provider.equals("SUN")) { + if (!provider.equals(System.getProperty("test.provider.name", "SUN"))) { throw new RuntimeException("Unexpected provider name: " + provider); } @@ -51,7 +51,7 @@ public static void main(String[] args) throws NoSuchAlgorithmException { /* Test default provider with getInstance(String algorithm) */ out.println("TEST: SHA1PRNG supported on all platforms by SUN provider"); String algorithm = "SHA1PRNG"; - provider = "SUN"; + provider = System.getProperty("test.provider.name", "SUN"); SecureRandom instance = SecureRandom.getInstance(algorithm); assertInstance(instance, algorithm, provider); @@ -61,7 +61,7 @@ public static void main(String[] args) throws NoSuchAlgorithmException { out.println("TEST: NativePRNG supported on all platforms" + "(except Windows), by SUN provider"); algorithm = "NativePRNG"; - provider = "SUN"; + provider = System.getProperty("test.provider.name", "SUN"); } else { out.println( "TEST: Windows-PRNG supported on windows by SunMSCAPI provider"); diff --git a/test/jdk/java/security/SecureRandom/GetInstanceTest.java b/test/jdk/java/security/SecureRandom/GetInstanceTest.java index c1fdf133305..e95557a7bcb 100644 --- a/test/jdk/java/security/SecureRandom/GetInstanceTest.java +++ b/test/jdk/java/security/SecureRandom/GetInstanceTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -75,7 +75,8 @@ public static void main(String[] args) throws Exception { + "'securerandom.strongAlgorithms'."); } try { - Security.setProperty(STRONG_ALG_SEC_PROP, "DRBG:SUN"); + Security.setProperty(STRONG_ALG_SEC_PROP, "DRBG:" + + System.getProperty("test.provider.name", SUN_PROVIDER)); sr = matchExc(() -> SecureRandom.getInstanceStrong(), PASS, NoSuchAlgorithmException.class, "PASS - Undefined security Property " @@ -123,7 +124,8 @@ private static void verifyInstance(String mech) throws Exception { // Test for getInstance(algorithm, provider) method. checkAttributes( matchExc(() -> SecureRandom.getInstance(srAlgo, - Security.getProvider(SUN_PROVIDER)), + Security.getProvider( + System.getProperty("test.provider.name", SUN_PROVIDER))), !(nsa(mech)), NoSuchAlgorithmException.class, String.format("PASS - It is expected to fail for" @@ -132,7 +134,8 @@ private static void verifyInstance(String mech) throws Exception { mech); // Test for getInstance(algorithm, providerName) method. checkAttributes( - matchExc(() -> SecureRandom.getInstance(srAlgo, SUN_PROVIDER), + matchExc(() -> SecureRandom.getInstance(srAlgo, + System.getProperty("test.provider.name", SUN_PROVIDER)), !(nsa(mech)), NoSuchAlgorithmException.class, String.format("PASS - It is expected to fail for " + "getInstance(algorithm, providerName) when " @@ -175,7 +178,8 @@ private static void verifyInstance(String mech) throws Exception { // Test for getInstance(algorithm, params, provider) method. checkAttributes( matchExc(() -> SecureRandom.getInstance(srAlgo, param, - Security.getProvider(SUN_PROVIDER)), + Security.getProvider(System.getProperty( + "test.provider.name", SUN_PROVIDER))), (isDRBG(mech)) && (isValidDRBGParam(param)), getExcType(mech, param), String.format("PASS - It is expected to fail " @@ -186,7 +190,7 @@ private static void verifyInstance(String mech) throws Exception { // Test for getInstance(algorithm, params, providerName) method. checkAttributes( matchExc(() -> SecureRandom.getInstance(srAlgo, param, - SUN_PROVIDER), + System.getProperty("test.provider.name", SUN_PROVIDER)), (isDRBG(mech)) && (isValidDRBGParam(param)), getExcType(mech, param), String.format("PASS - It is expected to fail " @@ -306,7 +310,8 @@ private static void checkAttributes(SecureRandom sr, String mech) { return; } Asserts.assertEquals(sr.getAlgorithm(), (isDRBG(mech) ? "DRBG" : mech)); - Asserts.assertEquals(sr.getProvider().getName(), SUN_PROVIDER); + String expectedProviderName = System.getProperty("test.provider.name", SUN_PROVIDER); + Asserts.assertEquals(sr.getProvider().getName(), expectedProviderName); } } diff --git a/test/jdk/java/security/Security/CaseInsensitiveAlgNames.java b/test/jdk/java/security/Security/CaseInsensitiveAlgNames.java index 2267c461e55..f29d368d6d1 100644 --- a/test/jdk/java/security/Security/CaseInsensitiveAlgNames.java +++ b/test/jdk/java/security/Security/CaseInsensitiveAlgNames.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -41,10 +41,14 @@ public static void main(String[] args) md = MessageDigest.getInstance("shA1"); // MessageDigest with provider - md = MessageDigest.getInstance("SHA", "SUN"); - md = MessageDigest.getInstance("sha", "SUN"); - md = MessageDigest.getInstance("Sha-1", "SUN"); - md = MessageDigest.getInstance("shA1", "SUN"); + md = MessageDigest.getInstance("SHA", + System.getProperty("test.provider.name", "SUN")); + md = MessageDigest.getInstance("sha", + System.getProperty("test.provider.name", "SUN")); + md = MessageDigest.getInstance("Sha-1", + System.getProperty("test.provider.name", "SUN")); + md = MessageDigest.getInstance("shA1", + System.getProperty("test.provider.name", "SUN")); // KeyPairGenerator without provider KeyPairGenerator kGen = KeyPairGenerator.getInstance("DSA"); @@ -54,11 +58,15 @@ public static void main(String[] args) kGen = KeyPairGenerator.getInstance("1.2.840.10040.4.1"); // KeyPairGenerator with provider - kGen = KeyPairGenerator.getInstance("DSA", "SUN"); - kGen = KeyPairGenerator.getInstance("dsa", "SUN"); - kGen = KeyPairGenerator.getInstance("dSA", "SUN"); + kGen = KeyPairGenerator.getInstance("DSA", + System.getProperty("test.provider.name", "SUN")); + kGen = KeyPairGenerator.getInstance("dsa", + System.getProperty("test.provider.name", "SUN")); + kGen = KeyPairGenerator.getInstance("dSA", + System.getProperty("test.provider.name", "SUN")); kGen = KeyPairGenerator.getInstance("OId.1.2.840.10040.4.1", - "SUN"); - kGen = KeyPairGenerator.getInstance("1.2.840.10040.4.1", "SUN"); + System.getProperty("test.provider.name", "SUN")); + kGen = KeyPairGenerator.getInstance("1.2.840.10040.4.1", + System.getProperty("test.provider.name", "SUN")); } } diff --git a/test/jdk/java/security/Signature/ByteBuffers.java b/test/jdk/java/security/Signature/ByteBuffers.java index 937c9842c3b..d9866204244 100644 --- a/test/jdk/java/security/Signature/ByteBuffers.java +++ b/test/jdk/java/security/Signature/ByteBuffers.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -37,7 +37,8 @@ public class ByteBuffers { public static void main(String[] args) throws Exception { - Provider p = Security.getProvider("SUN"); + Provider p = Security.getProvider( + System.getProperty("test.provider.name", "SUN")); Random random = new Random(); int n = 10 * 1024; byte[] t = new byte[n]; diff --git a/test/jdk/java/security/Signature/NONEwithRSA.java b/test/jdk/java/security/Signature/NONEwithRSA.java index 6d18c7ac96f..c7b08528e7e 100644 --- a/test/jdk/java/security/Signature/NONEwithRSA.java +++ b/test/jdk/java/security/Signature/NONEwithRSA.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,6 +24,7 @@ /** * @test * @bug 4955844 + * @library /test/lib * @summary ensure that the NONEwithRSA adapter works correctly * @author Andreas Sterbenz * @key randomness @@ -34,17 +35,19 @@ import java.security.*; import javax.crypto.*; +import jdk.test.lib.security.SecurityUtils; public class NONEwithRSA { public static void main(String[] args) throws Exception { -// showProvider(Security.getProvider("SUN")); +// showProvider(Security.getProvider(System.getProperty("test.provider.name", "SUN"))); Random random = new Random(); byte[] b = new byte[16]; random.nextBytes(b); - KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA"); - kpg.initialize(512); + String kpgAlgorithm = "RSA"; + KeyPairGenerator kpg = KeyPairGenerator.getInstance(kpgAlgorithm); + kpg.initialize(SecurityUtils.getTestKeySize(kpgAlgorithm)); KeyPair kp = kpg.generateKeyPair(); Signature sig = Signature.getInstance("NONEwithRSA"); @@ -66,9 +69,11 @@ public static void main(String[] args) throws Exception { throw new Exception("decryption failed"); } - sig = Signature.getInstance("NONEwithRSA", "SunJCE"); + sig = Signature.getInstance("NONEwithRSA", + System.getProperty("test.provider.name", "SunJCE")); sig.initSign(kp.getPrivate()); - sig = Signature.getInstance("NONEwithRSA", Security.getProvider("SunJCE")); + sig = Signature.getInstance("NONEwithRSA", Security.getProvider( + System.getProperty("test.provider.name", "SunJCE"))); sig.initSign(kp.getPrivate()); try { diff --git a/test/jdk/java/security/Signature/ResetAfterException.java b/test/jdk/java/security/Signature/ResetAfterException.java index 62d5c190bec..39c766ac63d 100644 --- a/test/jdk/java/security/Signature/ResetAfterException.java +++ b/test/jdk/java/security/Signature/ResetAfterException.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,10 +24,12 @@ /** * @test * @bug 8149802 + * @library /test/lib * @summary Ensure that Signature objects are reset after verification errored out. */ import java.util.Arrays; import java.security.*; +import jdk.test.lib.security.SecurityUtils; public class ResetAfterException { @@ -51,18 +53,19 @@ public static void main(String[] args) throws Exception { boolean res = true; System.out.println("Testing Provider: " + p.getName()); KeyPairGenerator keyGen = null; + String kpgAlgorithm = "RSA"; try { // It's possible that some provider, e.g. SunMSCAPI, // doesn't work well with keys from other providers // so we use the same provider to generate key first - keyGen = KeyPairGenerator.getInstance("RSA", p); + keyGen = KeyPairGenerator.getInstance(kpgAlgorithm, p); } catch (NoSuchAlgorithmException nsae) { - keyGen = KeyPairGenerator.getInstance("RSA"); + keyGen = KeyPairGenerator.getInstance(kpgAlgorithm); } if (keyGen == null) { throw new RuntimeException("Error: No support for RSA KeyPairGenerator"); } - keyGen.initialize(1024); + keyGen.initialize(SecurityUtils.getTestKeySize(kpgAlgorithm)); KeyPair keyPair = keyGen.generateKeyPair(); sig.initSign(keyPair.getPrivate()); diff --git a/test/jdk/java/security/Signature/SignatureGetInstance.java b/test/jdk/java/security/Signature/SignatureGetInstance.java index c246773f83a..e36d253dbc8 100644 --- a/test/jdk/java/security/Signature/SignatureGetInstance.java +++ b/test/jdk/java/security/Signature/SignatureGetInstance.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2019, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -50,7 +50,8 @@ public static void main(String[] args) throws Exception { MyPubKey testPub = new MyPubKey(); testDblInit(testPriv, testPub, true, "TestProvider"); - testDblInit(kp.getPrivate(), kp.getPublic(), true, "SunRsaSign"); + testDblInit(kp.getPrivate(), kp.getPublic(), true, + System.getProperty("test.provider.name", "SunRsaSign")); testDblInit(testPriv, kp.getPublic(), false, null); testDblInit(kp.getPrivate(), testPub, false, null); @@ -59,7 +60,7 @@ public static void main(String[] args) throws Exception { testSetAndInit(null, kp.getPrivate(), true); testSetAndInit(null, kp.getPublic(), true); - String provName = "SunRsaSign"; + String provName = System.getProperty("test.provider.name", "SunRsaSign"); testSetAndInit(provName, testPriv, false); testSetAndInit(provName, testPub, false); testSetAndInit(provName, kp.getPrivate(), true); diff --git a/test/jdk/java/security/Signature/TestCloneable.java b/test/jdk/java/security/Signature/TestCloneable.java index 33e2383cfa4..97f69a8725b 100644 --- a/test/jdk/java/security/Signature/TestCloneable.java +++ b/test/jdk/java/security/Signature/TestCloneable.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -42,21 +42,25 @@ public class TestCloneable { @DataProvider public Object[][] testData() { + String dsaProviderName = System.getProperty("test.provider.name", "SUN"); + String ecProviderName = System.getProperty("test.provider.name", "SunEC"); + String rsaProviderName = System.getProperty("test.provider.name", "SunRsaSign"); + return new Object[][] { - { "SHA1withDSA", "SUN" }, { "NONEwithDSA", "SUN" }, - { "SHA224withDSA", "SUN" }, { "SHA256withDSA", "SUN" }, - { "EdDSA", "SunEC" }, { "Ed25519", "SunEC" }, { "Ed448", "SunEC" }, - { "SHA1withECDSA", "SunEC" }, { "SHA224withECDSA", "SunEC" }, - { "SHA256withECDSA", "SunEC" }, { "SHA384withECDSA", "SunEC" }, - { "SHA512withECDSA", "SunEC" }, { "NONEwithECDSA", "SunEC" }, - { "MD2withRSA", "SunRsaSign" }, { "MD5withRSA", "SunRsaSign" }, - { "SHA1withRSA", "SunRsaSign" }, { "SHA224withRSA", "SunRsaSign" }, - { "SHA256withRSA", "SunRsaSign" }, - { "SHA384withRSA", "SunRsaSign" }, - { "SHA512withRSA", "SunRsaSign" }, - { "SHA512/224withRSA", "SunRsaSign" }, - { "SHA512/256withRSA", "SunRsaSign" }, - { "RSASSA-PSS", "SunRsaSign" }, + { "SHA1withDSA", dsaProviderName }, { "NONEwithDSA", dsaProviderName }, + { "SHA224withDSA", dsaProviderName }, { "SHA256withDSA", dsaProviderName }, + { "EdDSA", ecProviderName }, { "Ed25519", ecProviderName }, { "Ed448", ecProviderName }, + { "SHA1withECDSA", ecProviderName }, { "SHA224withECDSA", ecProviderName }, + { "SHA256withECDSA", ecProviderName }, { "SHA384withECDSA", ecProviderName }, + { "SHA512withECDSA", ecProviderName }, { "NONEwithECDSA", ecProviderName }, + { "MD2withRSA", rsaProviderName }, { "MD5withRSA", rsaProviderName }, + { "SHA1withRSA", rsaProviderName }, { "SHA224withRSA", rsaProviderName }, + { "SHA256withRSA", rsaProviderName }, + { "SHA384withRSA", rsaProviderName }, + { "SHA512withRSA", rsaProviderName }, + { "SHA512/224withRSA", rsaProviderName }, + { "SHA512/256withRSA", rsaProviderName }, + { "RSASSA-PSS", rsaProviderName }, { "NONEwithRSA", "SunMSCAPI" }, { "SHA1withRSA", "SunMSCAPI" }, { "SHA256withRSA", "SunMSCAPI" }, { "SHA384withRSA", "SunMSCAPI" }, { "SHA512withRSA", "SunMSCAPI" }, diff --git a/test/jdk/java/security/Signature/TestInitSignWithMyOwnRandom.java b/test/jdk/java/security/Signature/TestInitSignWithMyOwnRandom.java index 0d2d7fd35a4..a59ea9a9355 100644 --- a/test/jdk/java/security/Signature/TestInitSignWithMyOwnRandom.java +++ b/test/jdk/java/security/Signature/TestInitSignWithMyOwnRandom.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -34,7 +34,8 @@ public class TestInitSignWithMyOwnRandom { public static void main(String[] argv) throws Exception { // any signature implementation will do as long as // it needs a random source - Provider p = Security.getProvider("SUN"); + Provider p = Security.getProvider( + System.getProperty("test.provider.name", "SUN")); KeyPairGenerator kpg = KeyPairGenerator.getInstance("DSA", p); kpg.initialize(512); KeyPair kp = kpg.generateKeyPair(); diff --git a/test/jdk/java/security/Signature/VerifyRangeCheckOverflow.java b/test/jdk/java/security/Signature/VerifyRangeCheckOverflow.java index b68d8ca9be7..5cf939d05db 100644 --- a/test/jdk/java/security/Signature/VerifyRangeCheckOverflow.java +++ b/test/jdk/java/security/Signature/VerifyRangeCheckOverflow.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -27,6 +27,7 @@ /* @test * @bug 7172149 + * @library /test/lib * @summary AIOOBE from Signature.verify after integer overflow * @author Jonathan Lu */ @@ -35,12 +36,14 @@ import java.security.KeyPairGenerator; import java.security.PublicKey; import java.security.Signature; +import jdk.test.lib.security.SecurityUtils; public class VerifyRangeCheckOverflow { public static void main(String[] args) throws Exception { - KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("DSA"); - keyPairGenerator.initialize(1024); + String kpgAlgorithm = "DSA"; + KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance(kpgAlgorithm); + keyPairGenerator.initialize(SecurityUtils.getTestKeySize(kpgAlgorithm)); KeyPair keys = keyPairGenerator.generateKeyPair(); PublicKey publicKey = keys.getPublic(); byte[] sigBytes = new byte[100]; diff --git a/test/jdk/java/security/SignedObject/Chain.java b/test/jdk/java/security/SignedObject/Chain.java index b4a5ea794e6..0fb5cf3c53f 100644 --- a/test/jdk/java/security/SignedObject/Chain.java +++ b/test/jdk/java/security/SignedObject/Chain.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -55,7 +55,10 @@ static enum Provider { Sun("SUN"), SunEC("SunEC"), SunJSSE("SunJSSE"), - SunMSCAPI("SunMSCAPI"); + SunMSCAPI("SunMSCAPI"), + TestProvider_or_SunRsaSign(System.getProperty("test.provider.name", "SunRsaSign")), + TestProvider_or_Sun(System.getProperty("test.provider.name", "SUN")), + TestProvider_or_SunEC(System.getProperty("test.provider.name", "SunEC")); final String name; @@ -166,9 +169,9 @@ public String toString() { new Test(SigAlg.SHA3_256withRSA, KeyAlg.RSA, Provider.Default), new Test(SigAlg.SHA3_384withRSA, KeyAlg.RSA, Provider.Default), new Test(SigAlg.SHA3_512withRSA, KeyAlg.RSA, Provider.Default), - new Test(SigAlg.SHA1withDSA, KeyAlg.DSA, Provider.Sun, 1024), - new Test(SigAlg.SHA224withDSA, KeyAlg.DSA, Provider.Sun, 2048), - new Test(SigAlg.SHA256withDSA, KeyAlg.DSA, Provider.Sun, 2048), + new Test(SigAlg.SHA1withDSA, KeyAlg.DSA, Provider.TestProvider_or_Sun, 1024), + new Test(SigAlg.SHA224withDSA, KeyAlg.DSA, Provider.TestProvider_or_Sun, 2048), + new Test(SigAlg.SHA256withDSA, KeyAlg.DSA, Provider.TestProvider_or_Sun, 2048), }; private static final String str = "to-be-signed"; @@ -190,7 +193,7 @@ private static boolean runTestPSS(int keysize) { Iterator mdAlgs = SigTestUtil.getDigestAlgorithms (SignatureType.RSASSA_PSS, keysize).iterator(); while (mdAlgs.hasNext()) { - result &= runTest(new Test(pss, KeyAlg.RSA, Provider.SunRsaSign, + result &= runTest(new Test(pss, KeyAlg.RSA, Provider.TestProvider_or_SunRsaSign, keysize, SigTestUtil.generateDefaultParameter (SignatureType.RSASSA_PSS, mdAlgs.next()))); } diff --git a/test/jdk/java/security/SignedObject/Copy.java b/test/jdk/java/security/SignedObject/Copy.java index b6edfc031fc..16267ee534d 100644 --- a/test/jdk/java/security/SignedObject/Copy.java +++ b/test/jdk/java/security/SignedObject/Copy.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -49,7 +49,7 @@ public static void main(String args[]) throws Exception { signature); System.out.println("Signature algorithm: " + so.getAlgorithm()); - signature = Signature.getInstance(DSA, "SUN"); + signature = Signature.getInstance(DSA, System.getProperty("test.provider.name", "SUN")); if (!so.verify(kp.getPublic(), signature)) { throw new RuntimeException("Verification failed"); } diff --git a/test/jdk/java/security/cert/X509Certificate/GetSigAlgParams.java b/test/jdk/java/security/cert/X509Certificate/GetSigAlgParams.java index 6d7a8345617..4867058c4c2 100644 --- a/test/jdk/java/security/cert/X509Certificate/GetSigAlgParams.java +++ b/test/jdk/java/security/cert/X509Certificate/GetSigAlgParams.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,12 +24,14 @@ /* * @test * @bug 8259428 + * @library /test/lib * @summary Verify X509Certificate.getSigAlgParams() returns new array each * time it is called * @modules java.base/sun.security.tools.keytool java.base/sun.security.x509 */ import java.security.cert.X509Certificate; +import jdk.test.lib.security.SecurityUtils; import sun.security.tools.keytool.CertAndKeyGen; import sun.security.x509.X500Name; @@ -38,7 +40,7 @@ public class GetSigAlgParams { public static void main(String[] args) throws Exception { CertAndKeyGen cakg = new CertAndKeyGen("RSASSA-PSS", "RSASSA-PSS"); - cakg.generate(1024); + cakg.generate(SecurityUtils.getTestKeySize("RSA")); X509Certificate c = cakg.getSelfCertificate(new X500Name("CN=Me"), 100); if (c.getSigAlgParams() == c.getSigAlgParams()) { throw new Exception("Encoded params are the same byte array"); diff --git a/test/jdk/java/security/misc/GetInstanceNullsEmpties.java b/test/jdk/java/security/misc/GetInstanceNullsEmpties.java index 75089208fa8..9fb1d43e6ed 100644 --- a/test/jdk/java/security/misc/GetInstanceNullsEmpties.java +++ b/test/jdk/java/security/misc/GetInstanceNullsEmpties.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -44,7 +44,8 @@ */ public class GetInstanceNullsEmpties { - private static final Provider SUN = Security.getProvider("SUN"); + private static final String providerName = System.getProperty("test.provider.name", "SUN"); + private static final Provider provider = Security.getProvider(providerName); /* * See if there are more than "expected" number of getInstance() methods, @@ -168,14 +169,14 @@ private static void testAlgorithmParameterGenerator() throws Exception { run(m, NoSuchAlgorithmException.class, ""); m = getInstance(clazz, STRING, STRING); - run(m, NullPointerException.class, null, "SUN"); - run(m, NoSuchAlgorithmException.class, "", "SUN"); + run(m, NullPointerException.class, null, providerName); + run(m, NoSuchAlgorithmException.class, "", providerName); run(m, IllegalArgumentException.class, "FOO", null); run(m, IllegalArgumentException.class, "FOO", ""); m = getInstance(clazz, STRING, PROVIDER); - run(m, NullPointerException.class, null, SUN); - run(m, NoSuchAlgorithmException.class, "", SUN); + run(m, NullPointerException.class, null, provider); + run(m, NoSuchAlgorithmException.class, "", provider); run(m, IllegalArgumentException.class, "FOO", null); } @@ -190,14 +191,14 @@ private static void testAlgorithmParameters() throws Exception { run(m, NoSuchAlgorithmException.class, ""); m = getInstance(clazz, STRING, STRING); - run(m, NullPointerException.class, null, "SUN"); - run(m, NoSuchAlgorithmException.class, "", "SUN"); + run(m, NullPointerException.class, null, providerName); + run(m, NoSuchAlgorithmException.class, "", providerName); run(m, IllegalArgumentException.class, "FOO", null); run(m, IllegalArgumentException.class, "FOO", ""); m = getInstance(clazz, STRING, PROVIDER); - run(m, NullPointerException.class, null, SUN); - run(m, NoSuchAlgorithmException.class, "", SUN); + run(m, NullPointerException.class, null, provider); + run(m, NoSuchAlgorithmException.class, "", provider); run(m, IllegalArgumentException.class, "FOO", null); } @@ -212,14 +213,14 @@ private static void testCertPathBuilder() throws Exception { run(m, NoSuchAlgorithmException.class, ""); m = getInstance(clazz, STRING, STRING); - run(m, NullPointerException.class, null, "SUN"); - run(m, NoSuchAlgorithmException.class, "", "SUN"); + run(m, NullPointerException.class, null, providerName); + run(m, NoSuchAlgorithmException.class, "", providerName); run(m, IllegalArgumentException.class, "FOO", null); run(m, IllegalArgumentException.class, "FOO", ""); m = getInstance(clazz, STRING, PROVIDER); - run(m, NullPointerException.class, null, SUN); - run(m, NoSuchAlgorithmException.class, "", SUN); + run(m, NullPointerException.class, null, provider); + run(m, NoSuchAlgorithmException.class, "", provider); run(m, IllegalArgumentException.class, "FOO", null); } @@ -234,14 +235,14 @@ private static void testCertPathValidator() throws Exception { run(m, NoSuchAlgorithmException.class, ""); m = getInstance(clazz, STRING, STRING); - run(m, NullPointerException.class, null, "SUN"); - run(m, NoSuchAlgorithmException.class, "", "SUN"); + run(m, NullPointerException.class, null, providerName); + run(m, NoSuchAlgorithmException.class, "", providerName); run(m, IllegalArgumentException.class, "FOO", null); run(m, IllegalArgumentException.class, "FOO", ""); m = getInstance(clazz, STRING, PROVIDER); - run(m, NullPointerException.class, null, SUN); - run(m, NoSuchAlgorithmException.class, "", SUN); + run(m, NullPointerException.class, null, provider); + run(m, NoSuchAlgorithmException.class, "", provider); run(m, IllegalArgumentException.class, "FOO", null); } @@ -257,14 +258,14 @@ private static void testCertStore() throws Exception { run(m, NoSuchAlgorithmException.class, "", csp); m = getInstance(clazz, STRING, CertStoreParameters.class, STRING); - run(m, NullPointerException.class, null, csp, "SUN"); - run(m, NoSuchAlgorithmException.class, "", csp, "SUN"); + run(m, NullPointerException.class, null, csp, providerName); + run(m, NoSuchAlgorithmException.class, "", csp, providerName); run(m, IllegalArgumentException.class, "FOO", csp, null); run(m, IllegalArgumentException.class, "FOO", csp, ""); m = getInstance(clazz, STRING, CertStoreParameters.class, PROVIDER); - run(m, NullPointerException.class, null, csp, SUN); - run(m, NoSuchAlgorithmException.class, "", csp, SUN); + run(m, NullPointerException.class, null, csp, provider); + run(m, NoSuchAlgorithmException.class, "", csp, provider); run(m, IllegalArgumentException.class, "FOO", csp, null); } @@ -279,14 +280,14 @@ private static void testCertificateFactory() throws Exception { run(m, CertificateException.class, ""); m = getInstance(clazz, STRING, STRING); - run(m, NullPointerException.class, null, "SUN"); - run(m, CertificateException.class, "", "SUN"); + run(m, NullPointerException.class, null, providerName); + run(m, CertificateException.class, "", providerName); run(m, IllegalArgumentException.class, "FOO", null); run(m, IllegalArgumentException.class, "FOO", ""); m = getInstance(clazz, STRING, PROVIDER); - run(m, NullPointerException.class, null, SUN); - run(m, CertificateException.class, "", SUN); + run(m, NullPointerException.class, null, provider); + run(m, CertificateException.class, "", provider); run(m, IllegalArgumentException.class, "FOO", null); } @@ -305,14 +306,14 @@ private static void testCipher() throws Exception { run(m, NoSuchAlgorithmException.class, ""); m = getInstance(clazz, STRING, STRING); - run(m, NoSuchAlgorithmException.class, null, "SUN"); - run(m, NoSuchAlgorithmException.class, "", "SUN"); + run(m, NoSuchAlgorithmException.class, null, providerName); + run(m, NoSuchAlgorithmException.class, "", providerName); run(m, IllegalArgumentException.class, "FOO", null); run(m, IllegalArgumentException.class, "FOO", ""); m = getInstance(clazz, STRING, PROVIDER); - run(m, NoSuchAlgorithmException.class, null, SUN); - run(m, NoSuchAlgorithmException.class, "", SUN); + run(m, NoSuchAlgorithmException.class, null, provider); + run(m, NoSuchAlgorithmException.class, "", provider); run(m, IllegalArgumentException.class, "FOO", null); } @@ -329,15 +330,15 @@ private static void testConfiguration() throws Exception { run(m, NoSuchAlgorithmException.class, "", cp); m = getInstance(clazz, STRING, Configuration.Parameters.class, STRING); - run(m, NullPointerException.class, null, cp, "SUN"); - run(m, NoSuchAlgorithmException.class, "", cp, "SUN"); + run(m, NullPointerException.class, null, cp, providerName); + run(m, NoSuchAlgorithmException.class, "", cp, providerName); run(m, IllegalArgumentException.class, "FOO", cp, null); run(m, IllegalArgumentException.class, "FOO", cp, ""); m = getInstance(clazz, STRING, Configuration.Parameters.class, PROVIDER); - run(m, NullPointerException.class, null, cp, SUN); - run(m, NoSuchAlgorithmException.class, "", cp, SUN); + run(m, NullPointerException.class, null, cp, provider); + run(m, NoSuchAlgorithmException.class, "", cp, provider); run(m, IllegalArgumentException.class, "FOO", cp, null); } @@ -352,14 +353,14 @@ private static void testExemptionMechanism() throws Exception { run(m, NoSuchAlgorithmException.class, ""); m = getInstance(clazz, STRING, STRING); - run(m, NullPointerException.class, null, "SUN"); - run(m, NoSuchAlgorithmException.class, "", "SUN"); + run(m, NullPointerException.class, null, providerName); + run(m, NoSuchAlgorithmException.class, "", providerName); run(m, IllegalArgumentException.class, "FOO", null); run(m, IllegalArgumentException.class, "FOO", ""); m = getInstance(clazz, STRING, PROVIDER); - run(m, NullPointerException.class, null, SUN); - run(m, NoSuchAlgorithmException.class, "", SUN); + run(m, NullPointerException.class, null, provider); + run(m, NoSuchAlgorithmException.class, "", provider); run(m, IllegalArgumentException.class, "FOO", null); } @@ -374,14 +375,14 @@ private static void testKeyAgreement() throws Exception { run(m, NoSuchAlgorithmException.class, ""); m = getInstance(clazz, STRING, STRING); - run(m, NullPointerException.class, null, "SUN"); - run(m, NoSuchAlgorithmException.class, "", "SUN"); + run(m, NullPointerException.class, null, providerName); + run(m, NoSuchAlgorithmException.class, "", providerName); run(m, IllegalArgumentException.class, "FOO", null); run(m, IllegalArgumentException.class, "FOO", ""); m = getInstance(clazz, STRING, PROVIDER); - run(m, NullPointerException.class, null, SUN); - run(m, NoSuchAlgorithmException.class, "", SUN); + run(m, NullPointerException.class, null, provider); + run(m, NoSuchAlgorithmException.class, "", provider); run(m, IllegalArgumentException.class, "FOO", null); } @@ -396,14 +397,14 @@ private static void testKeyFactory() throws Exception { run(m, NoSuchAlgorithmException.class, ""); m = getInstance(clazz, STRING, STRING); - run(m, NullPointerException.class, null, "SUN"); - run(m, NoSuchAlgorithmException.class, "", "SUN"); + run(m, NullPointerException.class, null, providerName); + run(m, NoSuchAlgorithmException.class, "", providerName); run(m, IllegalArgumentException.class, "FOO", null); run(m, IllegalArgumentException.class, "FOO", ""); m = getInstance(clazz, STRING, PROVIDER); - run(m, NullPointerException.class, null, SUN); - run(m, NoSuchAlgorithmException.class, "", SUN); + run(m, NullPointerException.class, null, provider); + run(m, NoSuchAlgorithmException.class, "", provider); run(m, IllegalArgumentException.class, "FOO", null); } @@ -418,14 +419,14 @@ private static void testKeyGenerator() throws Exception { run(m, NoSuchAlgorithmException.class, ""); m = getInstance(clazz, STRING, STRING); - run(m, NullPointerException.class, null, "SUN"); - run(m, NoSuchAlgorithmException.class, "", "SUN"); + run(m, NullPointerException.class, null, providerName); + run(m, NoSuchAlgorithmException.class, "", providerName); run(m, IllegalArgumentException.class, "FOO", null); run(m, IllegalArgumentException.class, "FOO", ""); m = getInstance(clazz, STRING, PROVIDER); - run(m, NullPointerException.class, null, SUN); - run(m, NoSuchAlgorithmException.class, "", SUN); + run(m, NullPointerException.class, null, provider); + run(m, NoSuchAlgorithmException.class, "", provider); run(m, IllegalArgumentException.class, "FOO", null); } @@ -440,14 +441,14 @@ private static void testKeyManagerFactory() throws Exception { run(m, NoSuchAlgorithmException.class, ""); m = getInstance(clazz, STRING, STRING); - run(m, NullPointerException.class, null, "SUN"); - run(m, NoSuchAlgorithmException.class, "", "SUN"); + run(m, NullPointerException.class, null, providerName); + run(m, NoSuchAlgorithmException.class, "", providerName); run(m, IllegalArgumentException.class, "FOO", null); run(m, IllegalArgumentException.class, "FOO", ""); m = getInstance(clazz, STRING, PROVIDER); - run(m, NullPointerException.class, null, SUN); - run(m, NoSuchAlgorithmException.class, "", SUN); + run(m, NullPointerException.class, null, provider); + run(m, NoSuchAlgorithmException.class, "", provider); run(m, IllegalArgumentException.class, "FOO", null); } @@ -462,14 +463,14 @@ private static void testKeyPairGenerator() throws Exception { run(m, NoSuchAlgorithmException.class, ""); m = getInstance(clazz, STRING, STRING); - run(m, NullPointerException.class, null, "SUN"); - run(m, NoSuchAlgorithmException.class, "", "SUN"); + run(m, NullPointerException.class, null, providerName); + run(m, NoSuchAlgorithmException.class, "", providerName); run(m, IllegalArgumentException.class, "FOO", null); run(m, IllegalArgumentException.class, "FOO", ""); m = getInstance(clazz, STRING, PROVIDER); - run(m, NullPointerException.class, null, SUN); - run(m, NoSuchAlgorithmException.class, "", SUN); + run(m, NullPointerException.class, null, provider); + run(m, NoSuchAlgorithmException.class, "", provider); run(m, IllegalArgumentException.class, "FOO", null); } @@ -488,14 +489,14 @@ private static void testKeyStore() throws Exception { run(m, KeyStoreException.class, ""); m = getInstance(clazz, STRING, STRING); - run(m, NullPointerException.class, null, "SUN"); - run(m, KeyStoreException.class, "", "SUN"); + run(m, NullPointerException.class, null, providerName); + run(m, KeyStoreException.class, "", providerName); run(m, IllegalArgumentException.class, "FOO", null); run(m, IllegalArgumentException.class, "FOO", ""); m = getInstance(clazz, STRING, PROVIDER); - run(m, NullPointerException.class, null, SUN); - run(m, KeyStoreException.class, "", SUN); + run(m, NullPointerException.class, null, provider); + run(m, KeyStoreException.class, "", provider); run(m, IllegalArgumentException.class, "FOO", null); } @@ -510,14 +511,14 @@ private static void testMac() throws Exception { run(m, NoSuchAlgorithmException.class, ""); m = getInstance(clazz, STRING, STRING); - run(m, NullPointerException.class, null, "SUN"); - run(m, NoSuchAlgorithmException.class, "", "SUN"); + run(m, NullPointerException.class, null, providerName); + run(m, NoSuchAlgorithmException.class, "", providerName); run(m, IllegalArgumentException.class, "FOO", null); run(m, IllegalArgumentException.class, "FOO", ""); m = getInstance(clazz, STRING, PROVIDER); - run(m, NullPointerException.class, null, SUN); - run(m, NoSuchAlgorithmException.class, "", SUN); + run(m, NullPointerException.class, null, provider); + run(m, NoSuchAlgorithmException.class, "", provider); run(m, IllegalArgumentException.class, "FOO", null); } @@ -532,14 +533,14 @@ private static void testMessageDigest() throws Exception { run(m, NoSuchAlgorithmException.class, ""); m = getInstance(clazz, STRING, STRING); - run(m, NullPointerException.class, null, "SUN"); - run(m, NoSuchAlgorithmException.class, "", "SUN"); + run(m, NullPointerException.class, null, providerName); + run(m, NoSuchAlgorithmException.class, "", providerName); run(m, IllegalArgumentException.class, "FOO", null); run(m, IllegalArgumentException.class, "FOO", ""); m = getInstance(clazz, STRING, PROVIDER); - run(m, NullPointerException.class, null, SUN); - run(m, NoSuchAlgorithmException.class, "", SUN); + run(m, NullPointerException.class, null, provider); + run(m, NoSuchAlgorithmException.class, "", provider); run(m, IllegalArgumentException.class, "FOO", null); } @@ -556,14 +557,14 @@ private static void testPolicy() throws Exception { run(m, NoSuchAlgorithmException.class, "", pp); m = getInstance(clazz, STRING, Policy.Parameters.class, STRING); - run(m, NullPointerException.class, null, pp, "SUN"); - run(m, NoSuchAlgorithmException.class, "", pp, "SUN"); + run(m, NullPointerException.class, null, pp, providerName); + run(m, NoSuchAlgorithmException.class, "", pp, providerName); run(m, IllegalArgumentException.class, "FOO", pp, null); run(m, IllegalArgumentException.class, "FOO", pp, ""); m = getInstance(clazz, STRING, Policy.Parameters.class, PROVIDER); - run(m, NullPointerException.class, null, pp, SUN); - run(m, NoSuchAlgorithmException.class, "", pp, SUN); + run(m, NullPointerException.class, null, pp, provider); + run(m, NoSuchAlgorithmException.class, "", pp, provider); run(m, IllegalArgumentException.class, "FOO", pp, null); } @@ -578,14 +579,14 @@ private static void testSSLContext() throws Exception { run(m, NoSuchAlgorithmException.class, ""); m = getInstance(clazz, STRING, STRING); - run(m, NullPointerException.class, null, "SUN"); - run(m, NoSuchAlgorithmException.class, "", "SUN"); + run(m, NullPointerException.class, null, providerName); + run(m, NoSuchAlgorithmException.class, "", providerName); run(m, IllegalArgumentException.class, "FOO", null); run(m, IllegalArgumentException.class, "FOO", ""); m = getInstance(clazz, STRING, PROVIDER); - run(m, NullPointerException.class, null, SUN); - run(m, NoSuchAlgorithmException.class, "", SUN); + run(m, NullPointerException.class, null, provider); + run(m, NoSuchAlgorithmException.class, "", provider); run(m, IllegalArgumentException.class, "FOO", null); } @@ -600,14 +601,14 @@ private static void testSecretKeyFactory() throws Exception { run(m, NoSuchAlgorithmException.class, ""); m = getInstance(clazz, STRING, STRING); - run(m, NullPointerException.class, null, "SUN"); - run(m, NoSuchAlgorithmException.class, "", "SUN"); + run(m, NullPointerException.class, null, providerName); + run(m, NoSuchAlgorithmException.class, "", providerName); run(m, IllegalArgumentException.class, "FOO", null); run(m, IllegalArgumentException.class, "FOO", ""); m = getInstance(clazz, STRING, PROVIDER); - run(m, NullPointerException.class, null, SUN); - run(m, NoSuchAlgorithmException.class, "", SUN); + run(m, NullPointerException.class, null, provider); + run(m, NoSuchAlgorithmException.class, "", provider); run(m, IllegalArgumentException.class, "FOO", null); } @@ -624,14 +625,14 @@ private static void testSecureRandom() throws Exception { run(m, NoSuchAlgorithmException.class, ""); m = getInstance(clazz, STRING, STRING); - run(m, NullPointerException.class, null, "SUN"); - run(m, NoSuchAlgorithmException.class, "", "SUN"); + run(m, NullPointerException.class, null, providerName); + run(m, NoSuchAlgorithmException.class, "", providerName); run(m, IllegalArgumentException.class, "FOO", null); run(m, IllegalArgumentException.class, "FOO", ""); m = getInstance(clazz, STRING, PROVIDER); - run(m, NullPointerException.class, null, SUN); - run(m, NoSuchAlgorithmException.class, "", SUN); + run(m, NullPointerException.class, null, provider); + run(m, NoSuchAlgorithmException.class, "", provider); run(m, IllegalArgumentException.class, "FOO", null); m = getInstance(clazz, STRING, SecureRandomParameters.class); @@ -639,14 +640,14 @@ private static void testSecureRandom() throws Exception { run(m, NoSuchAlgorithmException.class, "", srp); m = getInstance(clazz, STRING, SecureRandomParameters.class, STRING); - run(m, NullPointerException.class, null, srp, "SUN"); - run(m, NoSuchAlgorithmException.class, "", srp, "SUN"); + run(m, NullPointerException.class, null, srp, providerName); + run(m, NoSuchAlgorithmException.class, "", srp, providerName); run(m, IllegalArgumentException.class, "FOO", srp, null); run(m, IllegalArgumentException.class, "FOO", srp, ""); m = getInstance(clazz, STRING, SecureRandomParameters.class, PROVIDER); - run(m, NullPointerException.class, null, srp, SUN); - run(m, NoSuchAlgorithmException.class, "", srp, SUN); + run(m, NullPointerException.class, null, srp, provider); + run(m, NoSuchAlgorithmException.class, "", srp, provider); run(m, IllegalArgumentException.class, "FOO", srp, null); } @@ -661,14 +662,14 @@ private static void testSignature() throws Exception { run(m, NoSuchAlgorithmException.class, ""); m = getInstance(clazz, STRING, STRING); - run(m, NullPointerException.class, null, "SUN"); - run(m, NoSuchAlgorithmException.class, "", "SUN"); + run(m, NullPointerException.class, null, providerName); + run(m, NoSuchAlgorithmException.class, "", providerName); run(m, IllegalArgumentException.class, "FOO", null); run(m, IllegalArgumentException.class, "FOO", ""); m = getInstance(clazz, STRING, PROVIDER); - run(m, NullPointerException.class, null, SUN); - run(m, NoSuchAlgorithmException.class, "", SUN); + run(m, NullPointerException.class, null, provider); + run(m, NoSuchAlgorithmException.class, "", provider); run(m, IllegalArgumentException.class, "FOO", null); } @@ -683,14 +684,14 @@ private static void testTrustManagerFactory() throws Exception { run(m, NoSuchAlgorithmException.class, ""); m = getInstance(clazz, STRING, STRING); - run(m, NullPointerException.class, null, "SUN"); - run(m, NoSuchAlgorithmException.class, "", "SUN"); + run(m, NullPointerException.class, null, providerName); + run(m, NoSuchAlgorithmException.class, "", providerName); run(m, IllegalArgumentException.class, "FOO", null); run(m, IllegalArgumentException.class, "FOO", ""); m = getInstance(clazz, STRING, PROVIDER); - run(m, NullPointerException.class, null, SUN); - run(m, NoSuchAlgorithmException.class, "", SUN); + run(m, NullPointerException.class, null, provider); + run(m, NoSuchAlgorithmException.class, "", provider); run(m, IllegalArgumentException.class, "FOO", null); } } diff --git a/test/jdk/java/text/Format/DecimalFormat/SettersShouldThrowNPETest.java b/test/jdk/java/text/Format/DecimalFormat/SettersShouldThrowNPETest.java new file mode 100644 index 00000000000..b09c9102833 --- /dev/null +++ b/test/jdk/java/text/Format/DecimalFormat/SettersShouldThrowNPETest.java @@ -0,0 +1,109 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 8341445 + * @summary DFS setters should throw NPE. This ensures that NPE is not thrown + * by equals(). + * @run junit SettersShouldThrowNPETest + */ + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; + +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.lang.reflect.Modifier; +import java.text.DecimalFormatSymbols; +import java.util.Arrays; +import java.util.Currency; +import java.util.List; +import java.util.Locale; +import java.util.stream.Stream; + +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertThrows; + +public class SettersShouldThrowNPETest { + + // The public setter methods that should throw NPE + private static final List NPE_SETTERS = + Arrays.stream(DecimalFormatSymbols.class.getDeclaredMethods()) + .filter(m -> Modifier.isPublic(m.getModifiers()) + && m.getName().startsWith("set") + && Stream.of(m.getParameterTypes()).noneMatch(Class::isPrimitive)) + .toList(); + + // Non-primitive setters should throw NPE + @ParameterizedTest + @MethodSource("setters") + public void settersThrowNPETest(Method m) { + var dfs = new DecimalFormatSymbols(); + InvocationTargetException e = + assertThrows(InvocationTargetException.class, () -> m.invoke(dfs, (Object) null)); + if (!(e.getCause() instanceof NullPointerException)) { + throw new RuntimeException(e.getCause() + " was thrown instead of NPE by : " + m); + } + } + + // Currency fields are lazy and can be null + // Ensure when exposed to users, they are never null + @ParameterizedTest + @MethodSource("locales") + public void lazyCurrencyFieldsTest(Locale locale) { + var dfs = new DecimalFormatSymbols(locale); + assertDoesNotThrow(() -> dfs.equals(new DecimalFormatSymbols())); + assertNotNull(dfs.getCurrency()); + assertNotNull(dfs.getInternationalCurrencySymbol()); + assertNotNull(dfs.getCurrencySymbol()); + } + + // Prior to 8341445, if the international currency symbol was invalid, + // the currency attribute was set to null. However, we should not have null + // currency fields post initializeCurrency() call. Ensure invalid code + // does not update the other fields. + @Test + public void setInternationalCurrencySymbolFallbackTest() { + var code = "fooBarBazQux"; + // initialize() should provide null for all currency related fields + var dfs = new DecimalFormatSymbols(Locale.ROOT); + // Load the fallbacks via initCurrency() since the loc is Locale.ROOT + dfs.setInternationalCurrencySymbol(code); // set invalid code + // Ensure our values are the expected fallbacks, minus the updated intl code + assertEquals(Currency.getInstance("XXX"), dfs.getCurrency()); + assertEquals("\u00A4", dfs.getCurrencySymbol()); + assertEquals("fooBarBazQux", dfs.getInternationalCurrencySymbol()); + } + + private static List setters() { + return NPE_SETTERS; + } + + private static List locales() { + return List.of(Locale.ROOT, Locale.US, Locale.forLanguageTag("XXX")); + } +} diff --git a/test/jdk/java/text/Format/MessageFormat/SerializationTest.java b/test/jdk/java/text/Format/MessageFormat/SerializationTest.java index 9191c5caef3..ac5fd4d56a7 100644 --- a/test/jdk/java/text/Format/MessageFormat/SerializationTest.java +++ b/test/jdk/java/text/Format/MessageFormat/SerializationTest.java @@ -23,7 +23,7 @@ /* * @test - * @bug 8331446 + * @bug 8331446 8340554 * @summary Check correctness of deserialization * @run junit SerializationTest */ @@ -70,7 +70,13 @@ private static Stream serializationRoundTrip() { // With null locale. (NPE not thrown, if no format defined) new MessageFormat("{1} {0} foo", null), // With formats - new MessageFormat("{0,number,short} {0} {1,date,long} foo") + new MessageFormat("{0,number,short} {0} {1,date,long} foo"), + // Offset equal to pattern length (0) + new MessageFormat("{0}"), + // Offset equal to pattern length (1) + new MessageFormat("X{0}"), + // Offset 1 under pattern length + new MessageFormat("X{0}X") ); } diff --git a/test/jdk/java/util/Locale/UserRegionTest.java b/test/jdk/java/util/Locale/UserRegionTest.java new file mode 100644 index 00000000000..72a7106b267 --- /dev/null +++ b/test/jdk/java/util/Locale/UserRegionTest.java @@ -0,0 +1,74 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 8342582 + * @summary Test if "user.region" system property successfully overrides + * other locale related system properties at startup + * @modules jdk.localedata + * @run junit/othervm + * -Duser.region=DE + * -Duser.language=en + * -Duser.script=Latn + * -Duser.country=US + * -Duser.variant=FOO UserRegionTest + * @run junit/othervm + * -Duser.region=DE_POSIX + * -Duser.language=en + * -Duser.script=Latn + * -Duser.country=US + * -Duser.variant=FOO UserRegionTest + * @run junit/othervm + * -Duser.region=_POSIX + * -Duser.language=en + * -Duser.script=Latn + * -Duser.country=US + * -Duser.variant=FOO UserRegionTest + */ + +import java.util.Locale; + +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class UserRegionTest { + @Test + public void testDefaultLocale() { + var region = System.getProperty("user.region").split("_"); + var expected = Locale.of(System.getProperty("user.language"), + region[0], region.length > 1 ? region[1] : ""); + assertEquals(expected, Locale.getDefault()); + assertEquals(expected, Locale.getDefault(Locale.Category.FORMAT)); + assertEquals(expected, Locale.getDefault(Locale.Category.DISPLAY)); + } + + @Test + public void testNumberFormat() { + if (System.getProperty("user.region").startsWith("DE")) { + assertEquals("0,50000", String.format("%.5f", 0.5f)); + } else { + assertEquals("0.50000", String.format("%.5f", 0.5f)); + } + } +} diff --git a/test/jdk/javax/crypto/Cipher/ByteBuffers.java b/test/jdk/javax/crypto/Cipher/ByteBuffers.java index 233e62fb83a..141f1c10781 100644 --- a/test/jdk/javax/crypto/Cipher/ByteBuffers.java +++ b/test/jdk/javax/crypto/Cipher/ByteBuffers.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -40,7 +40,8 @@ public class ByteBuffers { public static void main(String[] args) throws Exception { - Provider p = Security.getProvider("SunJCE"); + Provider p = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); Random random = new Random(); int n = 10 * 1024; byte[] t = new byte[n]; diff --git a/test/jdk/javax/crypto/Cipher/CipherInputStreamExceptions.java b/test/jdk/javax/crypto/Cipher/CipherInputStreamExceptions.java index 15cacec707f..8ffbb6f6a26 100644 --- a/test/jdk/javax/crypto/Cipher/CipherInputStreamExceptions.java +++ b/test/jdk/javax/crypto/Cipher/CipherInputStreamExceptions.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -357,10 +357,12 @@ static byte[] encryptedText(String mode, int length) throws Exception{ static byte[] encryptedText(String mode, byte[] pt) throws Exception{ Cipher c; if (mode.compareTo("GCM") == 0) { - c = Cipher.getInstance("AES/GCM/NoPadding", "SunJCE"); + c = Cipher.getInstance("AES/GCM/NoPadding", + System.getProperty("test.provider.name", "SunJCE")); c.init(Cipher.ENCRYPT_MODE, key, gcmspec); } else if (mode.compareTo("CBC") == 0) { - c = Cipher.getInstance("AES/CBC/PKCS5Padding", "SunJCE"); + c = Cipher.getInstance("AES/CBC/PKCS5Padding", + System.getProperty("test.provider.name", "SunJCE")); c.init(Cipher.ENCRYPT_MODE, key, iv); } else { return null; @@ -380,10 +382,12 @@ static CipherInputStream getStream(String mode, byte[] ct, int length) Cipher c; if (mode.compareTo("GCM") == 0) { - c = Cipher.getInstance("AES/GCM/NoPadding", "SunJCE"); + c = Cipher.getInstance("AES/GCM/NoPadding", + System.getProperty("test.provider.name", "SunJCE")); c.init(Cipher.DECRYPT_MODE, key, gcmspec); } else if (mode.compareTo("CBC") == 0) { - c = Cipher.getInstance("AES/CBC/PKCS5Padding", "SunJCE"); + c = Cipher.getInstance("AES/CBC/PKCS5Padding", + System.getProperty("test.provider.name", "SunJCE")); c.init(Cipher.DECRYPT_MODE, key, iv); } else { return null; diff --git a/test/jdk/javax/crypto/Cipher/GetMaxAllowed.java b/test/jdk/javax/crypto/Cipher/GetMaxAllowed.java index 7ef6f439aac..ee0b9c487a6 100644 --- a/test/jdk/javax/crypto/Cipher/GetMaxAllowed.java +++ b/test/jdk/javax/crypto/Cipher/GetMaxAllowed.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -96,7 +96,8 @@ public static void main(String[] args) throws Exception { // decide if the installed jurisdiction policy file is the // unlimited version boolean isUnlimited = true; - Cipher c = Cipher.getInstance("AES", "SunJCE"); + Cipher c = Cipher.getInstance("AES", + System.getProperty("test.provider.name", "SunJCE")); try { c.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(new byte[24], "AES")); } catch (InvalidKeyException ike) { diff --git a/test/jdk/javax/crypto/Cipher/TestCipherMode.java b/test/jdk/javax/crypto/Cipher/TestCipherMode.java index 19e854bca34..83ea6340871 100644 --- a/test/jdk/javax/crypto/Cipher/TestCipherMode.java +++ b/test/jdk/javax/crypto/Cipher/TestCipherMode.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -103,7 +103,9 @@ private static Key getKey(String t, CipherMode m) public static void main(String[] argv) throws Exception { - TestCipherMode test = new TestCipherMode("SunJCE", TRANSFORMATIONS); + TestCipherMode test = new TestCipherMode( + System.getProperty("test.provider.name", "SunJCE"), + TRANSFORMATIONS); System.out.println("All Tests Passed"); } diff --git a/test/jdk/javax/crypto/Cipher/TestGetInstance.java b/test/jdk/javax/crypto/Cipher/TestGetInstance.java index 01d60f63a84..07ad131c736 100644 --- a/test/jdk/javax/crypto/Cipher/TestGetInstance.java +++ b/test/jdk/javax/crypto/Cipher/TestGetInstance.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -42,16 +42,19 @@ private static void same(Provider p1, Provider p2) throws Exception { } public static void main(String[] args) throws Exception { - Provider p = Security.getProvider("SunJCE"); + Provider p = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); Cipher c; c = Cipher.getInstance("PBEWithMD5AndTripleDES"); same(p, c.getProvider()); - c = Cipher.getInstance("des", "SunJCE"); + c = Cipher.getInstance("des", + System.getProperty("test.provider.name", "SunJCE")); same(p, c.getProvider()); - c = Cipher.getInstance("des/cbc/pkcs5padding", "SunJCE"); + c = Cipher.getInstance("des/cbc/pkcs5padding", + System.getProperty("test.provider.name", "SunJCE")); same(p, c.getProvider()); c = Cipher.getInstance("des", p); @@ -66,7 +69,8 @@ public static void main(String[] args) throws Exception { System.out.println(e); } try { - c = Cipher.getInstance("DES/XYZ/PKCS5Padding", "SunJCE"); + c = Cipher.getInstance("DES/XYZ/PKCS5Padding", + System.getProperty("test.provider.name", "SunJCE")); throw new AssertionError(); } catch (NoSuchAlgorithmException e) { System.out.println(e); @@ -85,7 +89,8 @@ public static void main(String[] args) throws Exception { System.out.println(e); } try { - c = Cipher.getInstance("DES/CBC/XYZPadding", "SunJCE"); + c = Cipher.getInstance("DES/CBC/XYZPadding", + System.getProperty("test.provider.name", "SunJCE")); throw new AssertionError(); } catch (NoSuchPaddingException e) { System.out.println(e); @@ -104,7 +109,8 @@ public static void main(String[] args) throws Exception { System.out.println(e); } try { - c = Cipher.getInstance("foo", "SunJCE"); + c = Cipher.getInstance("foo", + System.getProperty("test.provider.name", "SunJCE")); throw new AssertionError(); } catch (NoSuchAlgorithmException e) { System.out.println(e); @@ -117,13 +123,15 @@ public static void main(String[] args) throws Exception { } try { - c = Cipher.getInstance("foo", "SUN"); + c = Cipher.getInstance("foo", + System.getProperty("test.provider.name", "SUN")); throw new AssertionError(); } catch (NoSuchAlgorithmException e) { System.out.println(e); } try { - c = Cipher.getInstance("foo", Security.getProvider("SUN")); + c = Cipher.getInstance("foo", Security.getProvider( + System.getProperty("test.provider.name", "SUN"))); throw new AssertionError(); } catch (NoSuchAlgorithmException e) { System.out.println(e); diff --git a/test/jdk/javax/crypto/CipherSpi/DirectBBRemaining.java b/test/jdk/javax/crypto/CipherSpi/DirectBBRemaining.java index 9e03c908660..5a383ded6dc 100644 --- a/test/jdk/javax/crypto/CipherSpi/DirectBBRemaining.java +++ b/test/jdk/javax/crypto/CipherSpi/DirectBBRemaining.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -57,7 +57,8 @@ public static void main(String args[]) throws Exception { random.nextBytes(keyBytes); SecretKey key = new SecretKeySpec(keyBytes, "DES"); - Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding", "SunJCE"); + Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding", + System.getProperty("test.provider.name", "SunJCE")); cipher.init(Cipher.ENCRYPT_MODE, key); /* diff --git a/test/jdk/javax/crypto/CryptoPermission/AllPermCheck.java b/test/jdk/javax/crypto/CryptoPermission/AllPermCheck.java index d7a1ad40e39..ea0ae4ab925 100644 --- a/test/jdk/javax/crypto/CryptoPermission/AllPermCheck.java +++ b/test/jdk/javax/crypto/CryptoPermission/AllPermCheck.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -84,7 +84,7 @@ public static void runTest(Cipher c, Key key) throws Exception { } public static void main(String[] args) throws Exception { - Provider p = Security.getProvider("SunJCE"); + Provider p = Security.getProvider(System.getProperty("test.provider.name", "SunJCE")); System.out.println("Testing provider " + p.getName() + "..."); if (Cipher.getMaxAllowedKeyLength("DES") == Integer.MAX_VALUE) { // skip this test for unlimited jurisdiction policy files diff --git a/test/jdk/javax/crypto/CryptoPermission/LowercasePermCheck.java b/test/jdk/javax/crypto/CryptoPermission/LowercasePermCheck.java index c358cb10844..a8eca5f6830 100644 --- a/test/jdk/javax/crypto/CryptoPermission/LowercasePermCheck.java +++ b/test/jdk/javax/crypto/CryptoPermission/LowercasePermCheck.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -46,7 +46,7 @@ public class LowercasePermCheck { }; public static void main(String[] args) throws Exception { - Provider p = Security.getProvider("SunJCE"); + Provider p = Security.getProvider(System.getProperty("test.provider.name", "SunJCE")); System.out.println("Testing provider " + p.getName() + "..."); if (Cipher.getMaxAllowedKeyLength("DES") == Integer.MAX_VALUE) { // skip this test for unlimited jurisdiction policy files diff --git a/test/jdk/javax/crypto/CryptoPermission/RSANoLimit.java b/test/jdk/javax/crypto/CryptoPermission/RSANoLimit.java index 4f54ff8ce3e..54ba18b98e1 100644 --- a/test/jdk/javax/crypto/CryptoPermission/RSANoLimit.java +++ b/test/jdk/javax/crypto/CryptoPermission/RSANoLimit.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -135,7 +135,7 @@ public class RSANoLimit { }; public static void main(String[] args) throws Exception { boolean result = true; - Provider p = Security.getProvider("SunJCE"); + Provider p = Security.getProvider(System.getProperty("test.provider.name", "SunJCE")); System.out.println("Testing provider " + p.getName() + "..."); // Test#1: make sure Cipher.getMaxAllowedKeyLength returns the // correct value diff --git a/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetAlgName.java b/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetAlgName.java index 33b624e4a28..3b89257323b 100644 --- a/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetAlgName.java +++ b/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetAlgName.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -47,9 +47,11 @@ public static void main(String[] argv) throws Exception { String algo = ALGOS[i]; // generate AlgorithmParameters object SecretKeyFactory skf = - SecretKeyFactory.getInstance(algo, "SunJCE"); + SecretKeyFactory.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); SecretKey key = skf.generateSecret(ks); - Cipher c = Cipher.getInstance(algo, "SunJCE"); + Cipher c = Cipher.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); c.init(Cipher.ENCRYPT_MODE, key); c.doFinal(BYTES); // force the parameter generation if not already diff --git a/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpec.java b/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpec.java index 314742cbf8d..6be4ef9bbdf 100644 --- a/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpec.java +++ b/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpec.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -46,7 +46,7 @@ public class GetKeySpec { PBEParameterSpec goodParamSpec = new PBEParameterSpec(new byte[8], 1024); GOOD_PARAMS = AlgorithmParameters.getInstance - (cipherAlg, "SunJCE"); + (cipherAlg, System.getProperty("test.provider.name", "SunJCE")); GOOD_PARAMS.init(goodParamSpec); } catch (Exception ex) { // should never happen @@ -102,7 +102,7 @@ public static void main(String[] argv) throws Exception { byte[] encryptedData = parse(encryptedPKCS8); boolean result = true; - Provider p = Security.getProvider("SunJCE"); + Provider p = Security.getProvider(System.getProperty("test.provider.name", "SunJCE")); // generate encrypted data and EncryptedPrivateKeyInfo object EncryptedPrivateKeyInfo epki = diff --git a/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecException.java b/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecException.java index e3ecb33d91c..7be1023aafe 100644 --- a/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecException.java +++ b/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecException.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -50,7 +50,7 @@ public class GetKeySpecException { static { try { - sunjce = Security.getProvider("SunJCE"); + sunjce = Security.getProvider(System.getProperty("test.provider.name", "SunJCE")); PBEParameterSpec badParamSpec = new PBEParameterSpec(new byte[10], 10); BAD_PARAMS = AlgorithmParameters.getInstance(cipherAlg, sunjce); @@ -61,7 +61,7 @@ public class GetKeySpecException { GOOD_PARAMS.init(goodParamSpec); PBEKeySpec keySpec = new PBEKeySpec(passwd); SecretKeyFactory skf = - SecretKeyFactory.getInstance(cipherAlg, "SunJCE"); + SecretKeyFactory.getInstance(cipherAlg, System.getProperty("test.provider.name", "SunJCE")); cipherKey = skf.generateSecret(keySpec); } catch (Exception ex) { // should never happen @@ -164,7 +164,7 @@ public static void main0(String[] args) throws Exception { // TEST#3: getKeySpec(Key, String) System.out.println("Testing getKeySpec(Key, String)..."); try { - pkcs8Spec = epki.getKeySpec(null, "SunJCE"); + pkcs8Spec = epki.getKeySpec(null, System.getProperty("test.provider.name", "SunJCE")); throwException("Should throw NPE for null Key!"); } catch (NullPointerException npe) { System.out.println("Expected NPE thrown"); @@ -176,13 +176,13 @@ public static void main0(String[] args) throws Exception { System.out.println("Expected NPE thrown"); } try { - pkcs8Spec = epki.getKeySpec(INVALID_KEY, "SunJCE"); + pkcs8Spec = epki.getKeySpec(INVALID_KEY, System.getProperty("test.provider.name", "SunJCE")); throwException("Should throw IKE for invalid Key!"); } catch (InvalidKeyException ikse) { System.out.println("Expected IKE thrown"); } try { - pkcs8Spec = epkiBad.getKeySpec(cipherKey, "SunJCE"); + pkcs8Spec = epkiBad.getKeySpec(cipherKey, System.getProperty("test.provider.name", "SunJCE")); throwException("Should throw IKE for corrupted epki!"); } catch (InvalidKeyException ike) { System.out.println("Expected IKE thrown"); @@ -195,8 +195,9 @@ public static void main0(String[] args) throws Exception { System.out.println("Expected NSAE thrown"); } try { - Security.removeProvider("SunJCE"); - pkcs8Spec = epki.getKeySpec(cipherKey, "SunJCE"); + Security.removeProvider(System.getProperty("test.provider.name", "SunJCE")); + pkcs8Spec = epki.getKeySpec(cipherKey, + System.getProperty("test.provider.name", "SunJCE")); throwException("Should throw NSPE for unconfigured provider!"); } catch (NoSuchProviderException nspe) { System.out.println("Expected NSPE thrown"); diff --git a/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecException2.java b/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecException2.java index a3f983d0ea4..ef2d6acdef7 100644 --- a/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecException2.java +++ b/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecException2.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -54,7 +54,8 @@ public static void main(String[] argv) throws Exception { // TEST#1: getKeySpec(Cipher) with Cipher in an illegal state, // i.e. WRAP_MODE, UNWRAP_MODE. System.out.println("Testing getKeySpec(Cipher) with WRAP_MODE..."); - Cipher c = Cipher.getInstance(cipherAlg, "SunJCE"); + Cipher c = Cipher.getInstance(cipherAlg, + System.getProperty("test.provider.name", "SunJCE")); MyPBEKey key = new MyPBEKey(passwd); c.init(Cipher.WRAP_MODE, key); try { diff --git a/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecInvalidEncoding.java b/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecInvalidEncoding.java index fcc51332488..a6aa3c86222 100644 --- a/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecInvalidEncoding.java +++ b/test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecInvalidEncoding.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -48,7 +48,7 @@ public class GetKeySpecInvalidEncoding { PBEParameterSpec goodParamSpec = new PBEParameterSpec(new byte[8], 6); GOOD_PARAMS = AlgorithmParameters.getInstance - (cipherAlg, "SunJCE"); + (cipherAlg, System.getProperty("test.provider.name", "SunJCE")); GOOD_PARAMS.init(goodParamSpec); } catch (Exception ex) { // should never happen @@ -101,7 +101,7 @@ public static void main(String[] argv) throws Exception { } byte[] encryptedData = parse(encryptedPKCS8); - Provider p = Security.getProvider("SunJCE"); + Provider p = Security.getProvider(System.getProperty("test.provider.name", "SunJCE")); // generate encrypted data and EncryptedPrivateKeyInfo object EncryptedPrivateKeyInfo epki = diff --git a/test/jdk/javax/crypto/KeyGenerator/TestGetInstance.java b/test/jdk/javax/crypto/KeyGenerator/TestGetInstance.java index 53c766874ed..3863fc98154 100644 --- a/test/jdk/javax/crypto/KeyGenerator/TestGetInstance.java +++ b/test/jdk/javax/crypto/KeyGenerator/TestGetInstance.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -43,13 +43,14 @@ private static void same(Object o1, Object o2) throws Exception { public static void main(String[] args) throws Exception { long start = System.currentTimeMillis(); - Provider p = Security.getProvider("SunJCE"); + Provider p = Security.getProvider(System.getProperty("test.provider.name", "SunJCE")); KeyGenerator kg; kg = KeyGenerator.getInstance("des"); System.out.println("Default: " + kg.getProvider().getName()); - kg = KeyGenerator.getInstance("des", "SunJCE"); + kg = KeyGenerator.getInstance("des", + System.getProperty("test.provider.name", "SunJCE")); same(p, kg.getProvider()); kg = KeyGenerator.getInstance("des", p); same(p, kg.getProvider()); @@ -61,7 +62,8 @@ public static void main(String[] args) throws Exception { System.out.println(e); } try { - kg = KeyGenerator.getInstance("foo", "SunJCE"); + kg = KeyGenerator.getInstance("foo", + System.getProperty("test.provider.name", "SunJCE")); throw new AssertionError(); } catch (NoSuchAlgorithmException e) { System.out.println(e); @@ -74,13 +76,15 @@ public static void main(String[] args) throws Exception { } try { - kg = KeyGenerator.getInstance("foo", "SUN"); + kg = KeyGenerator.getInstance("foo", + System.getProperty("test.provider.name", "SUN")); throw new AssertionError(); } catch (NoSuchAlgorithmException e) { System.out.println(e); } try { - kg = KeyGenerator.getInstance("foo", Security.getProvider("SUN")); + kg = KeyGenerator.getInstance("foo", + Security.getProvider(System.getProperty("test.provider.name", "SUN"))); throw new AssertionError(); } catch (NoSuchAlgorithmException e) { System.out.println(e); diff --git a/test/jdk/javax/crypto/KeyGenerator/TestKGParity.java b/test/jdk/javax/crypto/KeyGenerator/TestKGParity.java index efaefb06199..65e9b062de7 100644 --- a/test/jdk/javax/crypto/KeyGenerator/TestKGParity.java +++ b/test/jdk/javax/crypto/KeyGenerator/TestKGParity.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -54,8 +54,10 @@ private void run() throws Exception { Provider[] providers = Security.getProviders(); for (Provider p : providers) { String prvName = p.getName(); - if (prvName.startsWith("SunJCE") - || prvName.startsWith("SunPKCS11-")) { + if ((System.getProperty("test.provider.name") != null && + prvName.equals(System.getProperty("test.provider.name"))) || + (System.getProperty("test.provider.name") == null && + (prvName.startsWith("SunJCE") || prvName.startsWith("SunPKCS11-")))) { for (String algorithm : ALGORITHM_ARR) { if (!runTest(p, algorithm)) { throw new RuntimeException( diff --git a/test/jdk/javax/crypto/Mac/ByteBuffers.java b/test/jdk/javax/crypto/Mac/ByteBuffers.java index a00e5a43cd6..39efee91798 100644 --- a/test/jdk/javax/crypto/Mac/ByteBuffers.java +++ b/test/jdk/javax/crypto/Mac/ByteBuffers.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -40,7 +40,7 @@ public class ByteBuffers { public static void main(String[] args) throws Exception { - Provider p = Security.getProvider("SunJCE"); + Provider p = Security.getProvider(System.getProperty("test.provider.name", "SunJCE")); Random random = new Random(); int n = 10 * 1024; byte[] t = new byte[n]; diff --git a/test/jdk/javax/crypto/Mac/TestGetInstance.java b/test/jdk/javax/crypto/Mac/TestGetInstance.java index 30d055423db..0361bc0b8d0 100644 --- a/test/jdk/javax/crypto/Mac/TestGetInstance.java +++ b/test/jdk/javax/crypto/Mac/TestGetInstance.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -43,13 +43,13 @@ private static void same(Object o1, Object o2) throws Exception { public static void main(String[] args) throws Exception { long start = System.currentTimeMillis(); - Provider p = Security.getProvider("SunJCE"); + Provider p = Security.getProvider(System.getProperty("test.provider.name", "SunJCE")); Mac mac; mac = Mac.getInstance("hmacmd5"); System.out.println("Default: " + mac.getProvider().getName()); - mac = Mac.getInstance("hmacmd5", "SunJCE"); + mac = Mac.getInstance("hmacmd5", System.getProperty("test.provider.name", "SunJCE")); same(p, mac.getProvider()); mac = Mac.getInstance("hmacmd5", p); same(p, mac.getProvider()); @@ -61,7 +61,7 @@ public static void main(String[] args) throws Exception { System.out.println(e); } try { - mac = Mac.getInstance("foo", "SunJCE"); + mac = Mac.getInstance("foo", System.getProperty("test.provider.name", "SunJCE")); throw new AssertionError(); } catch (NoSuchAlgorithmException e) { System.out.println(e); @@ -74,13 +74,14 @@ public static void main(String[] args) throws Exception { } try { - mac = Mac.getInstance("foo", "SUN"); + mac = Mac.getInstance("foo", System.getProperty("test.provider.name", "SUN")); throw new AssertionError(); } catch (NoSuchAlgorithmException e) { System.out.println(e); } try { - mac = Mac.getInstance("foo", Security.getProvider("SUN")); + mac = Mac.getInstance("foo", Security.getProvider( + System.getProperty("test.provider.name", "SUN"))); throw new AssertionError(); } catch (NoSuchAlgorithmException e) { System.out.println(e); diff --git a/test/jdk/javax/crypto/SecretKeyFactory/SecKFTranslateTest.java b/test/jdk/javax/crypto/SecretKeyFactory/SecKFTranslateTest.java index f1b5c825798..398cf12a97e 100644 --- a/test/jdk/javax/crypto/SecretKeyFactory/SecKFTranslateTest.java +++ b/test/jdk/javax/crypto/SecretKeyFactory/SecKFTranslateTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -50,7 +50,8 @@ */ public class SecKFTranslateTest { - private static final String SUN_JCE = "SunJCE"; + private static final String PROVIDER_NAME = + System.getProperty("test.provider.name", "SunJCE"); public static void main(String[] args) throws Exception { @@ -77,10 +78,10 @@ private void runTest(Algorithm algo) throws NoSuchAlgorithmException, Random random = new Random(); // Initialization SecretKeyFactory skf = SecretKeyFactory.getInstance(algo.toString(), - SUN_JCE); + PROVIDER_NAME); random.nextBytes(plainText); - Cipher ci = Cipher.getInstance(algo.toString(), SUN_JCE); + Cipher ci = Cipher.getInstance(algo.toString(), PROVIDER_NAME); // Encryption ci.init(Cipher.ENCRYPT_MODE, key1, aps[0]); byte[] cipherText = new byte[ci.getOutputSize(plainText.length)]; diff --git a/test/jdk/javax/crypto/SecretKeyFactory/SecKeyFacSunJCEPrf.java b/test/jdk/javax/crypto/SecretKeyFactory/SecKeyFacSunJCEPrf.java index c5080ba33c5..8501f888e0f 100644 --- a/test/jdk/javax/crypto/SecretKeyFactory/SecKeyFacSunJCEPrf.java +++ b/test/jdk/javax/crypto/SecretKeyFactory/SecKeyFacSunJCEPrf.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2019, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -42,11 +42,11 @@ public class SecKeyFacSunJCEPrf { // One of the PBKDF2 HMAC-SHA1 test vectors from RFC 6070 - private static final byte[] SALT = "salt".getBytes(); + private static final byte[] SALT = "16-byte salt val".getBytes(); private static final char[] PASS = "password".toCharArray(); private static final int ITER = 4096; private static final byte[] EXP_OUT = - HexFormat.of().parseHex("4B007901B765489ABEAD49D926F721D065A429C1"); + HexFormat.of().parseHex("D2CACD3F1D44AF293C704F0B1005338D903C688C"); public static void main(String[] args) throws Exception { // Instantiate the Evil Provider and insert it in the @@ -56,7 +56,8 @@ public static void main(String[] args) throws Exception { Security.insertProviderAt(evilProv, 1); SecretKeyFactory pbkdf2 = - SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1", "SunJCE"); + SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1", + System.getProperty("test.provider.name", "SunJCE")); PBEKeySpec pbks = new PBEKeySpec(PASS, SALT, ITER, 160); SecretKey secKey1 = pbkdf2.generateSecret(pbks); diff --git a/test/jdk/javax/crypto/SecretKeyFactory/evilprov/com/evilprovider/EvilHmacSHA1.java b/test/jdk/javax/crypto/SecretKeyFactory/evilprov/com/evilprovider/EvilHmacSHA1.java index 2617928ff16..06310056274 100644 --- a/test/jdk/javax/crypto/SecretKeyFactory/evilprov/com/evilprovider/EvilHmacSHA1.java +++ b/test/jdk/javax/crypto/SecretKeyFactory/evilprov/com/evilprovider/EvilHmacSHA1.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2019, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -33,7 +33,8 @@ public final class EvilHmacSHA1 extends MacSpi { private final Mac internalMac; public EvilHmacSHA1() throws GeneralSecurityException { - internalMac = Mac.getInstance("HmacSHA1", "SunJCE"); + internalMac = Mac.getInstance("HmacSHA1", + System.getProperty("test.provider.name", "SunJCE")); } @Override diff --git a/test/jdk/javax/imageio/plugins/wbmp/WBMPStreamTruncateTest.java b/test/jdk/javax/imageio/plugins/wbmp/WBMPStreamTruncateTest.java index 36b8d4a72e0..0d38869634e 100644 --- a/test/jdk/javax/imageio/plugins/wbmp/WBMPStreamTruncateTest.java +++ b/test/jdk/javax/imageio/plugins/wbmp/WBMPStreamTruncateTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -46,9 +46,6 @@ public class WBMPStreamTruncateTest static final int height = 100; public static void main(String[] args) throws IOException { - String sep = System.getProperty("file.separator"); - String dir = System.getProperty("test.src", "."); - String filePath = dir+sep; BufferedImage srcImage = new BufferedImage(width, height, BufferedImage.TYPE_BYTE_BINARY); Graphics2D g = (Graphics2D) srcImage.getGraphics(); @@ -57,7 +54,7 @@ public static void main(String[] args) throws IOException g.dispose(); // create WBMP image File imageFile = File. - createTempFile("test", ".wbmp", new File(filePath)); + createTempFile("test", ".wbmp", new File("./")); imageFile.deleteOnExit(); ImageIO.write(srcImage, "wbmp", imageFile); BufferedImage testImg = diff --git a/test/jdk/javax/management/security/HashedPasswordFileTest.java b/test/jdk/javax/management/security/HashedPasswordFileTest.java index 195a9cd3449..f84e00abd4e 100644 --- a/test/jdk/javax/management/security/HashedPasswordFileTest.java +++ b/test/jdk/javax/management/security/HashedPasswordFileTest.java @@ -110,9 +110,7 @@ private String[] getHash(String algorithm, String password) { } private String getPasswordFilePath() { - String testDir = System.getProperty("test.src"); - String testFileName = "jmxremote.password"; - return testDir + File.separator + testFileName; + return "jmxremote.password"; } private File createNewPasswordFile() throws IOException { diff --git a/test/jdk/javax/security/auth/Destroyable/KeyDestructionTest.java b/test/jdk/javax/security/auth/Destroyable/KeyDestructionTest.java index 71570807e4a..6a664cebf7e 100644 --- a/test/jdk/javax/security/auth/Destroyable/KeyDestructionTest.java +++ b/test/jdk/javax/security/auth/Destroyable/KeyDestructionTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,6 +24,7 @@ /* * @test * @bug 6263419 + * @library /test/lib * @summary No way to clean the memory for a java.security.Key */ @@ -32,10 +33,12 @@ import javax.crypto.*; import javax.security.auth.Destroyable; import javax.security.auth.DestroyFailedException; +import jdk.test.lib.security.SecurityUtils; public class KeyDestructionTest { public static void main(String[] args) throws Exception { - KeyPair keypair = generateKeyPair("RSA", 1024); + String kpgAlgorithm = "RSA"; + KeyPair keypair = generateKeyPair(kpgAlgorithm, SecurityUtils.getTestKeySize(kpgAlgorithm)); // Check keys that support and have implemented key destruction testKeyDestruction(new MyDestroyableSecretKey()); diff --git a/test/jdk/javax/security/auth/login/Configuration/GetInstance.java b/test/jdk/javax/security/auth/login/Configuration/GetInstance.java index 4be056bd26c..41820c90743 100644 --- a/test/jdk/javax/security/auth/login/Configuration/GetInstance.java +++ b/test/jdk/javax/security/auth/login/Configuration/GetInstance.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -84,12 +84,14 @@ private int testDefault(int testnum) throws Exception { private int testStringProvider(int testnum) throws Exception { // get an instance of JavaLoginConfig from SUN - Configuration c = Configuration.getInstance(JAVA_CONFIG, null, "SUN"); + Configuration c = Configuration.getInstance(JAVA_CONFIG, null, + System.getProperty("test.provider.name", "SUN")); doTest(c, testnum++); // get an instance of JavaLoginConfig from SunRsaSign try { - c = Configuration.getInstance(JAVA_CONFIG, null, "SunRsaSign"); + c = Configuration.getInstance(JAVA_CONFIG, null, + System.getProperty("test.provider.name", "SunRsaSign")); throw new SecurityException("test " + testnum++ + " failed"); } catch (NoSuchAlgorithmException nsae) { // good @@ -112,14 +114,16 @@ private int testProvider(int testnum) throws Exception { // get an instance of JavaLoginConfig from SUN Configuration c = Configuration.getInstance(JAVA_CONFIG, null, - Security.getProvider("SUN")); + Security.getProvider( + System.getProperty("test.provider.name", "SUN"))); doTest(c, testnum++); // get an instance of JavaLoginConfig from SunRsaSign try { c = Configuration.getInstance(JAVA_CONFIG, null, - Security.getProvider("SunRsaSign")); + Security.getProvider( + System.getProperty("test.provider.name","SunRsaSign"))); throw new SecurityException("test " + testnum++ + " failed"); } catch (NoSuchAlgorithmException nsae) { // good @@ -186,7 +190,7 @@ private int testException(int testnum) throws Exception { try { Configuration c = Configuration.getInstance(JAVA_CONFIG, new BadParam(), - "SUN"); + System.getProperty("test.provider.name","SUN")); throw new SecurityException("test " + testnum++ + " failed"); } catch (IllegalArgumentException iae) { // good @@ -196,7 +200,7 @@ private int testException(int testnum) throws Exception { try { Configuration c = Configuration.getInstance(JAVA_CONFIG, new BadParam(), - Security.getProvider("SUN")); + Security.getProvider(System.getProperty("test.provider.name","SUN"))); throw new SecurityException("test " + testnum++ + " failed"); } catch (IllegalArgumentException iae) { // good @@ -285,7 +289,7 @@ private void doTest(Configuration c, int testnum) throws Exception { testnum = doCommon(c, testnum); // test getProvider - if ("SUN".equals(c.getProvider().getName())) { + if (System.getProperty("test.provider.name","SUN").equals(c.getProvider().getName())) { System.out.println("test " + testnum + " (getProvider) passed"); } else { throw new SecurityException("test " + testnum + @@ -325,7 +329,7 @@ private void doTestURI(Configuration c, } // test getProvider - if ("SUN".equals(c.getProvider().getName())) { + if (System.getProperty("test.provider.name","SUN").equals(c.getProvider().getName())) { System.out.println("test " + testnum + " (getProvider) passed"); } else { throw new SecurityException("test " + testnum + diff --git a/test/jdk/javax/security/auth/login/Configuration/GetInstanceSecurity.grantedPolicy b/test/jdk/javax/security/auth/login/Configuration/GetInstanceSecurity.grantedPolicy index bcb47b245a7..f92b9fa63ad 100644 --- a/test/jdk/javax/security/auth/login/Configuration/GetInstanceSecurity.grantedPolicy +++ b/test/jdk/javax/security/auth/login/Configuration/GetInstanceSecurity.grantedPolicy @@ -1,4 +1,5 @@ grant { + permission java.util.PropertyPermission "test.provider.name", "read"; permission java.util.PropertyPermission "test.src", "read"; permission java.io.FilePermission "${test.src}${/}*", "read"; diff --git a/test/jdk/javax/security/auth/login/Configuration/GetInstanceSecurity.java b/test/jdk/javax/security/auth/login/Configuration/GetInstanceSecurity.java index fc2bec08221..68417a34bd9 100644 --- a/test/jdk/javax/security/auth/login/Configuration/GetInstanceSecurity.java +++ b/test/jdk/javax/security/auth/login/Configuration/GetInstanceSecurity.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -51,7 +51,7 @@ public static void main(String[] args) throws Exception { try { Configuration c = Configuration.getInstance - (JAVA_CONFIG, null, "SUN"); + (JAVA_CONFIG, null, System.getProperty("test.provider.name","SUN")); throw new RuntimeException("did not catch security exception"); } catch (SecurityException se) { // good @@ -59,7 +59,8 @@ public static void main(String[] args) throws Exception { try { Configuration c = Configuration.getInstance - (JAVA_CONFIG, null, Security.getProvider("SUN")); + (JAVA_CONFIG, null, Security.getProvider( + System.getProperty("test.provider.name","SUN"))); throw new RuntimeException("did not catch security exception"); } catch (SecurityException se) { // good @@ -71,7 +72,8 @@ public static void main(String[] args) throws Exception { "GetInstanceSecurity.grantedPolicy"); URI uri = file.toURI(); URIParameter param = new URIParameter(uri); - Policy p = Policy.getInstance("JavaPolicy", param, "SUN"); + Policy p = Policy.getInstance("JavaPolicy", param, + System.getProperty("test.provider.name","SUN")); Policy.setPolicy(p); // retry operations @@ -88,7 +90,7 @@ public static void main(String[] args) throws Exception { try { Configuration c = Configuration.getInstance - (JAVA_CONFIG, uriParam, "SUN"); + (JAVA_CONFIG, uriParam, System.getProperty("test.provider.name","SUN")); // good } catch (SecurityException se) { throw new RuntimeException("unexpected SecurityException"); @@ -96,7 +98,8 @@ public static void main(String[] args) throws Exception { try { Configuration c = Configuration.getInstance - (JAVA_CONFIG, uriParam, Security.getProvider("SUN")); + (JAVA_CONFIG, uriParam, Security.getProvider( + System.getProperty("test.provider.name","SUN"))); // good } catch (SecurityException se) { throw new RuntimeException("unexpected SecurityException"); diff --git a/test/jdk/javax/security/auth/login/Configuration/GetInstanceSecurity.policy b/test/jdk/javax/security/auth/login/Configuration/GetInstanceSecurity.policy index 4c0f7acfc88..162168a3ffd 100644 --- a/test/jdk/javax/security/auth/login/Configuration/GetInstanceSecurity.policy +++ b/test/jdk/javax/security/auth/login/Configuration/GetInstanceSecurity.policy @@ -1,6 +1,6 @@ grant { - + permission java.util.PropertyPermission "test.provider.name", "read"; permission java.util.PropertyPermission "test.src", "read"; permission java.lang.RuntimePermission "accessClassInPackage.sun.net.www"; permission java.io.FilePermission diff --git a/test/jdk/javax/swing/JFileChooser/FileSystemView/WindowsDefaultIconSizeTest.java b/test/jdk/javax/swing/JFileChooser/FileSystemView/WindowsDefaultIconSizeTest.java index 081277ca2d4..dcdc7ca7b96 100644 --- a/test/jdk/javax/swing/JFileChooser/FileSystemView/WindowsDefaultIconSizeTest.java +++ b/test/jdk/javax/swing/JFileChooser/FileSystemView/WindowsDefaultIconSizeTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2022, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -44,18 +44,16 @@ public static void main(String[] args) { } public void test() { - String sep = System.getProperty("file.separator"); - String dir = System.getProperty("test.src", "."); String filename = "test.not"; - File testFile = new File(dir + sep + filename); + File testFile = new File(filename); try { if (!testFile.exists()) { testFile.createNewFile(); testFile.deleteOnExit(); } FileSystemView fsv = FileSystemView.getFileSystemView(); - Icon icon = fsv.getSystemIcon(new File(dir + sep + filename)); + Icon icon = fsv.getSystemIcon(new File(filename)); if (icon instanceof ImageIcon) { Image image = ((ImageIcon) icon).getImage(); if (image instanceof MultiResolutionImage) { diff --git a/test/jdk/jdk/dynalink/TypeConverterFactoryMemoryLeakTest.java b/test/jdk/jdk/dynalink/TypeConverterFactoryMemoryLeakTest.java index 7e907781e9d..4735bb4a08f 100644 --- a/test/jdk/jdk/dynalink/TypeConverterFactoryMemoryLeakTest.java +++ b/test/jdk/jdk/dynalink/TypeConverterFactoryMemoryLeakTest.java @@ -46,19 +46,11 @@ */ /* - * @test id=with_ZGC_Singlegen - * @requires vm.gc.ZSinglegen + * @test id=with_ZGC + * @requires vm.gc.Z * @bug 8198540 * @summary Test TypeConverterFactory is not leaking method handles (Z GC) - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational TypeConverterFactoryMemoryLeakTest - */ - -/* - * @test id=with_ZGC_Generational - * @requires vm.gc.ZGenerational - * @bug 8198540 - * @summary Test TypeConverterFactory is not leaking method handles (Z GC) - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational TypeConverterFactoryMemoryLeakTest + * @run main/othervm -XX:+UseZGC TypeConverterFactoryMemoryLeakTest */ /* diff --git a/test/jdk/jdk/dynalink/TypeConverterFactoryRetentionTests.java b/test/jdk/jdk/dynalink/TypeConverterFactoryRetentionTests.java index bdfd33eff48..8ad972d4502 100644 --- a/test/jdk/jdk/dynalink/TypeConverterFactoryRetentionTests.java +++ b/test/jdk/jdk/dynalink/TypeConverterFactoryRetentionTests.java @@ -46,19 +46,11 @@ */ /* - * @test id=with_ZGC_Singlegen - * @requires vm.gc.ZSinglegen + * @test id=with_ZGC + * @requires vm.gc.Z * @bug 8198540 * @summary Test TypeConverterFactory is not leaking class loaders (Z GC) - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational TypeConverterFactoryRetentionTests - */ - -/* - * @test id=with_ZGC_Generational - * @requires vm.gc.ZGenerational - * @bug 8198540 - * @summary Test TypeConverterFactory is not leaking class loaders (Z GC) - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational TypeConverterFactoryRetentionTests + * @run main/othervm -XX:+UseZGC TypeConverterFactoryRetentionTests */ /* diff --git a/test/jdk/jdk/incubator/vector/Byte128VectorTests.java b/test/jdk/jdk/incubator/vector/Byte128VectorTests.java index eda803b3f35..36a140c474a 100644 --- a/test/jdk/jdk/incubator/vector/Byte128VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Byte128VectorTests.java @@ -38,6 +38,7 @@ import jdk.incubator.vector.VectorMask; import jdk.incubator.vector.VectorOperators; import jdk.incubator.vector.Vector; +import jdk.incubator.vector.VectorMath; import jdk.incubator.vector.ByteVector; @@ -962,6 +963,33 @@ static byte bits(byte e) { }) ); + static final List> BYTE_SATURATING_GENERATORS = List.of( + withToString("byte[Byte.MIN_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(Byte.MIN_VALUE)); + }), + withToString("byte[Byte.MAX_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(Byte.MAX_VALUE)); + }), + withToString("byte[Byte.MAX_VALUE - 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(Byte.MAX_VALUE - 100)); + }), + withToString("byte[Byte.MIN_VALUE + 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(Byte.MIN_VALUE + 100)); + }), + withToString("byte[-i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(-i * 5)); + }), + withToString("byte[i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(i * 5)); + }) + ); + // Create combinations of pairs // @@@ Might be sensitive to order e.g. div by 0 static final List>> BYTE_GENERATOR_PAIRS = @@ -969,6 +997,11 @@ static byte bits(byte e) { flatMap(fa -> BYTE_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). collect(Collectors.toList()); + static final List>> BYTE_SATURATING_GENERATOR_PAIRS = + Stream.of(BYTE_GENERATORS.get(0)). + flatMap(fa -> BYTE_SATURATING_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). + collect(Collectors.toList()); + @DataProvider public Object[][] boolUnaryOpProvider() { return BOOL_ARRAY_GENERATORS.stream(). @@ -999,12 +1032,27 @@ public Object[][] byteBinaryOpProvider() { toArray(Object[][]::new); } + @DataProvider + public Object[][] byteSaturatingBinaryOpProvider() { + return BYTE_SATURATING_GENERATOR_PAIRS.stream().map(List::toArray). + toArray(Object[][]::new); + } + @DataProvider public Object[][] byteIndexedOpProvider() { return BYTE_GENERATOR_PAIRS.stream().map(List::toArray). toArray(Object[][]::new); } + @DataProvider + public Object[][] byteSaturatingBinaryOpMaskProvider() { + return BOOLEAN_MASK_GENERATORS.stream(). + flatMap(fm -> BYTE_SATURATING_GENERATOR_PAIRS.stream().map(lfa -> { + return Stream.concat(lfa.stream(), Stream.of(fm)).toArray(); + })). + toArray(Object[][]::new); + } + @DataProvider public Object[][] byteBinaryOpMaskProvider() { return BOOLEAN_MASK_GENERATORS.stream(). @@ -2939,6 +2987,252 @@ static void maxByte128VectorTests(IntFunction fa, IntFunction fb assertArraysEquals(r, a, b, Byte128VectorTests::max); } + static byte UMIN(byte a, byte b) { + return (byte)(VectorMath.minUnsigned(a, b)); + } + + @Test(dataProvider = "byteBinaryOpProvider") + static void UMINByte128VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte128VectorTests::UMIN); + } + + @Test(dataProvider = "byteBinaryOpMaskProvider") + static void UMINByte128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte128VectorTests::UMIN); + } + + static byte UMAX(byte a, byte b) { + return (byte)(VectorMath.maxUnsigned(a, b)); + } + + @Test(dataProvider = "byteBinaryOpProvider") + static void UMAXByte128VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte128VectorTests::UMAX); + } + + @Test(dataProvider = "byteBinaryOpMaskProvider") + static void UMAXByte128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte128VectorTests::UMAX); + } + + static byte SADD(byte a, byte b) { + return (byte)(VectorMath.addSaturating(a, b)); + } + + @Test(dataProvider = "byteSaturatingBinaryOpProvider") + static void SADDByte128VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte128VectorTests::SADD); + } + + @Test(dataProvider = "byteSaturatingBinaryOpMaskProvider") + static void SADDByte128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte128VectorTests::SADD); + } + + static byte SSUB(byte a, byte b) { + return (byte)(VectorMath.subSaturating(a, b)); + } + + @Test(dataProvider = "byteSaturatingBinaryOpProvider") + static void SSUBByte128VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte128VectorTests::SSUB); + } + + @Test(dataProvider = "byteSaturatingBinaryOpMaskProvider") + static void SSUBByte128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte128VectorTests::SSUB); + } + + static byte SUADD(byte a, byte b) { + return (byte)(VectorMath.addSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "byteSaturatingBinaryOpProvider") + static void SUADDByte128VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte128VectorTests::SUADD); + } + + @Test(dataProvider = "byteSaturatingBinaryOpMaskProvider") + static void SUADDByte128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte128VectorTests::SUADD); + } + + static byte SUSUB(byte a, byte b) { + return (byte)(VectorMath.subSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "byteSaturatingBinaryOpProvider") + static void SUSUBByte128VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte128VectorTests::SUSUB); + } + + @Test(dataProvider = "byteSaturatingBinaryOpMaskProvider") + static void SUSUBByte128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte128VectorTests::SUSUB); + } + @Test(dataProvider = "byteBinaryOpProvider") static void MINByte128VectorTestsBroadcastSmokeTest(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); @@ -4147,7 +4441,7 @@ static void GEByte128VectorTestsMasked(IntFunction fa, IntFunction fa, IntFunction fb) { + static void ULTByte128VectorTests(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4155,7 +4449,7 @@ static void UNSIGNED_LTByte128VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LT, bv); + VectorMask mv = av.compare(VectorOperators.ULT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4166,7 +4460,7 @@ static void UNSIGNED_LTByte128VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULTByte128VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4178,7 +4472,7 @@ static void UNSIGNED_LTByte128VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); ByteVector bv = ByteVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4189,7 +4483,7 @@ static void UNSIGNED_LTByte128VectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "byteCompareOpProvider") - static void UNSIGNED_GTByte128VectorTests(IntFunction fa, IntFunction fb) { + static void UGTByte128VectorTests(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4197,7 +4491,7 @@ static void UNSIGNED_GTByte128VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GT, bv); + VectorMask mv = av.compare(VectorOperators.UGT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4208,7 +4502,7 @@ static void UNSIGNED_GTByte128VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGTByte128VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4220,7 +4514,7 @@ static void UNSIGNED_GTByte128VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); ByteVector bv = ByteVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4231,7 +4525,7 @@ static void UNSIGNED_GTByte128VectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "byteCompareOpProvider") - static void UNSIGNED_LEByte128VectorTests(IntFunction fa, IntFunction fb) { + static void ULEByte128VectorTests(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4239,7 +4533,7 @@ static void UNSIGNED_LEByte128VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LE, bv); + VectorMask mv = av.compare(VectorOperators.ULE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4250,7 +4544,7 @@ static void UNSIGNED_LEByte128VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULEByte128VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4262,7 +4556,7 @@ static void UNSIGNED_LEByte128VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); ByteVector bv = ByteVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4273,7 +4567,7 @@ static void UNSIGNED_LEByte128VectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "byteCompareOpProvider") - static void UNSIGNED_GEByte128VectorTests(IntFunction fa, IntFunction fb) { + static void UGEByte128VectorTests(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4281,7 +4575,7 @@ static void UNSIGNED_GEByte128VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GE, bv); + VectorMask mv = av.compare(VectorOperators.UGE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4292,7 +4586,7 @@ static void UNSIGNED_GEByte128VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGEByte128VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4304,7 +4598,7 @@ static void UNSIGNED_GEByte128VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); ByteVector bv = ByteVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { diff --git a/test/jdk/jdk/incubator/vector/Byte256VectorTests.java b/test/jdk/jdk/incubator/vector/Byte256VectorTests.java index 06cc13c0b12..0ad567b5ee4 100644 --- a/test/jdk/jdk/incubator/vector/Byte256VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Byte256VectorTests.java @@ -38,6 +38,7 @@ import jdk.incubator.vector.VectorMask; import jdk.incubator.vector.VectorOperators; import jdk.incubator.vector.Vector; +import jdk.incubator.vector.VectorMath; import jdk.incubator.vector.ByteVector; @@ -962,6 +963,33 @@ static byte bits(byte e) { }) ); + static final List> BYTE_SATURATING_GENERATORS = List.of( + withToString("byte[Byte.MIN_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(Byte.MIN_VALUE)); + }), + withToString("byte[Byte.MAX_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(Byte.MAX_VALUE)); + }), + withToString("byte[Byte.MAX_VALUE - 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(Byte.MAX_VALUE - 100)); + }), + withToString("byte[Byte.MIN_VALUE + 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(Byte.MIN_VALUE + 100)); + }), + withToString("byte[-i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(-i * 5)); + }), + withToString("byte[i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(i * 5)); + }) + ); + // Create combinations of pairs // @@@ Might be sensitive to order e.g. div by 0 static final List>> BYTE_GENERATOR_PAIRS = @@ -969,6 +997,11 @@ static byte bits(byte e) { flatMap(fa -> BYTE_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). collect(Collectors.toList()); + static final List>> BYTE_SATURATING_GENERATOR_PAIRS = + Stream.of(BYTE_GENERATORS.get(0)). + flatMap(fa -> BYTE_SATURATING_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). + collect(Collectors.toList()); + @DataProvider public Object[][] boolUnaryOpProvider() { return BOOL_ARRAY_GENERATORS.stream(). @@ -999,12 +1032,27 @@ public Object[][] byteBinaryOpProvider() { toArray(Object[][]::new); } + @DataProvider + public Object[][] byteSaturatingBinaryOpProvider() { + return BYTE_SATURATING_GENERATOR_PAIRS.stream().map(List::toArray). + toArray(Object[][]::new); + } + @DataProvider public Object[][] byteIndexedOpProvider() { return BYTE_GENERATOR_PAIRS.stream().map(List::toArray). toArray(Object[][]::new); } + @DataProvider + public Object[][] byteSaturatingBinaryOpMaskProvider() { + return BOOLEAN_MASK_GENERATORS.stream(). + flatMap(fm -> BYTE_SATURATING_GENERATOR_PAIRS.stream().map(lfa -> { + return Stream.concat(lfa.stream(), Stream.of(fm)).toArray(); + })). + toArray(Object[][]::new); + } + @DataProvider public Object[][] byteBinaryOpMaskProvider() { return BOOLEAN_MASK_GENERATORS.stream(). @@ -2939,6 +2987,252 @@ static void maxByte256VectorTests(IntFunction fa, IntFunction fb assertArraysEquals(r, a, b, Byte256VectorTests::max); } + static byte UMIN(byte a, byte b) { + return (byte)(VectorMath.minUnsigned(a, b)); + } + + @Test(dataProvider = "byteBinaryOpProvider") + static void UMINByte256VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte256VectorTests::UMIN); + } + + @Test(dataProvider = "byteBinaryOpMaskProvider") + static void UMINByte256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte256VectorTests::UMIN); + } + + static byte UMAX(byte a, byte b) { + return (byte)(VectorMath.maxUnsigned(a, b)); + } + + @Test(dataProvider = "byteBinaryOpProvider") + static void UMAXByte256VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte256VectorTests::UMAX); + } + + @Test(dataProvider = "byteBinaryOpMaskProvider") + static void UMAXByte256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte256VectorTests::UMAX); + } + + static byte SADD(byte a, byte b) { + return (byte)(VectorMath.addSaturating(a, b)); + } + + @Test(dataProvider = "byteSaturatingBinaryOpProvider") + static void SADDByte256VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte256VectorTests::SADD); + } + + @Test(dataProvider = "byteSaturatingBinaryOpMaskProvider") + static void SADDByte256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte256VectorTests::SADD); + } + + static byte SSUB(byte a, byte b) { + return (byte)(VectorMath.subSaturating(a, b)); + } + + @Test(dataProvider = "byteSaturatingBinaryOpProvider") + static void SSUBByte256VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte256VectorTests::SSUB); + } + + @Test(dataProvider = "byteSaturatingBinaryOpMaskProvider") + static void SSUBByte256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte256VectorTests::SSUB); + } + + static byte SUADD(byte a, byte b) { + return (byte)(VectorMath.addSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "byteSaturatingBinaryOpProvider") + static void SUADDByte256VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte256VectorTests::SUADD); + } + + @Test(dataProvider = "byteSaturatingBinaryOpMaskProvider") + static void SUADDByte256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte256VectorTests::SUADD); + } + + static byte SUSUB(byte a, byte b) { + return (byte)(VectorMath.subSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "byteSaturatingBinaryOpProvider") + static void SUSUBByte256VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte256VectorTests::SUSUB); + } + + @Test(dataProvider = "byteSaturatingBinaryOpMaskProvider") + static void SUSUBByte256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte256VectorTests::SUSUB); + } + @Test(dataProvider = "byteBinaryOpProvider") static void MINByte256VectorTestsBroadcastSmokeTest(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); @@ -4147,7 +4441,7 @@ static void GEByte256VectorTestsMasked(IntFunction fa, IntFunction fa, IntFunction fb) { + static void ULTByte256VectorTests(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4155,7 +4449,7 @@ static void UNSIGNED_LTByte256VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LT, bv); + VectorMask mv = av.compare(VectorOperators.ULT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4166,7 +4460,7 @@ static void UNSIGNED_LTByte256VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULTByte256VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4178,7 +4472,7 @@ static void UNSIGNED_LTByte256VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); ByteVector bv = ByteVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4189,7 +4483,7 @@ static void UNSIGNED_LTByte256VectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "byteCompareOpProvider") - static void UNSIGNED_GTByte256VectorTests(IntFunction fa, IntFunction fb) { + static void UGTByte256VectorTests(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4197,7 +4491,7 @@ static void UNSIGNED_GTByte256VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GT, bv); + VectorMask mv = av.compare(VectorOperators.UGT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4208,7 +4502,7 @@ static void UNSIGNED_GTByte256VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGTByte256VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4220,7 +4514,7 @@ static void UNSIGNED_GTByte256VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); ByteVector bv = ByteVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4231,7 +4525,7 @@ static void UNSIGNED_GTByte256VectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "byteCompareOpProvider") - static void UNSIGNED_LEByte256VectorTests(IntFunction fa, IntFunction fb) { + static void ULEByte256VectorTests(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4239,7 +4533,7 @@ static void UNSIGNED_LEByte256VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LE, bv); + VectorMask mv = av.compare(VectorOperators.ULE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4250,7 +4544,7 @@ static void UNSIGNED_LEByte256VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULEByte256VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4262,7 +4556,7 @@ static void UNSIGNED_LEByte256VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); ByteVector bv = ByteVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4273,7 +4567,7 @@ static void UNSIGNED_LEByte256VectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "byteCompareOpProvider") - static void UNSIGNED_GEByte256VectorTests(IntFunction fa, IntFunction fb) { + static void UGEByte256VectorTests(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4281,7 +4575,7 @@ static void UNSIGNED_GEByte256VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GE, bv); + VectorMask mv = av.compare(VectorOperators.UGE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4292,7 +4586,7 @@ static void UNSIGNED_GEByte256VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGEByte256VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4304,7 +4598,7 @@ static void UNSIGNED_GEByte256VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); ByteVector bv = ByteVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { diff --git a/test/jdk/jdk/incubator/vector/Byte512VectorTests.java b/test/jdk/jdk/incubator/vector/Byte512VectorTests.java index a75aa42ef20..0edc66dfccc 100644 --- a/test/jdk/jdk/incubator/vector/Byte512VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Byte512VectorTests.java @@ -38,6 +38,7 @@ import jdk.incubator.vector.VectorMask; import jdk.incubator.vector.VectorOperators; import jdk.incubator.vector.Vector; +import jdk.incubator.vector.VectorMath; import jdk.incubator.vector.ByteVector; @@ -962,6 +963,33 @@ static byte bits(byte e) { }) ); + static final List> BYTE_SATURATING_GENERATORS = List.of( + withToString("byte[Byte.MIN_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(Byte.MIN_VALUE)); + }), + withToString("byte[Byte.MAX_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(Byte.MAX_VALUE)); + }), + withToString("byte[Byte.MAX_VALUE - 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(Byte.MAX_VALUE - 100)); + }), + withToString("byte[Byte.MIN_VALUE + 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(Byte.MIN_VALUE + 100)); + }), + withToString("byte[-i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(-i * 5)); + }), + withToString("byte[i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(i * 5)); + }) + ); + // Create combinations of pairs // @@@ Might be sensitive to order e.g. div by 0 static final List>> BYTE_GENERATOR_PAIRS = @@ -969,6 +997,11 @@ static byte bits(byte e) { flatMap(fa -> BYTE_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). collect(Collectors.toList()); + static final List>> BYTE_SATURATING_GENERATOR_PAIRS = + Stream.of(BYTE_GENERATORS.get(0)). + flatMap(fa -> BYTE_SATURATING_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). + collect(Collectors.toList()); + @DataProvider public Object[][] boolUnaryOpProvider() { return BOOL_ARRAY_GENERATORS.stream(). @@ -999,12 +1032,27 @@ public Object[][] byteBinaryOpProvider() { toArray(Object[][]::new); } + @DataProvider + public Object[][] byteSaturatingBinaryOpProvider() { + return BYTE_SATURATING_GENERATOR_PAIRS.stream().map(List::toArray). + toArray(Object[][]::new); + } + @DataProvider public Object[][] byteIndexedOpProvider() { return BYTE_GENERATOR_PAIRS.stream().map(List::toArray). toArray(Object[][]::new); } + @DataProvider + public Object[][] byteSaturatingBinaryOpMaskProvider() { + return BOOLEAN_MASK_GENERATORS.stream(). + flatMap(fm -> BYTE_SATURATING_GENERATOR_PAIRS.stream().map(lfa -> { + return Stream.concat(lfa.stream(), Stream.of(fm)).toArray(); + })). + toArray(Object[][]::new); + } + @DataProvider public Object[][] byteBinaryOpMaskProvider() { return BOOLEAN_MASK_GENERATORS.stream(). @@ -2939,6 +2987,252 @@ static void maxByte512VectorTests(IntFunction fa, IntFunction fb assertArraysEquals(r, a, b, Byte512VectorTests::max); } + static byte UMIN(byte a, byte b) { + return (byte)(VectorMath.minUnsigned(a, b)); + } + + @Test(dataProvider = "byteBinaryOpProvider") + static void UMINByte512VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte512VectorTests::UMIN); + } + + @Test(dataProvider = "byteBinaryOpMaskProvider") + static void UMINByte512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte512VectorTests::UMIN); + } + + static byte UMAX(byte a, byte b) { + return (byte)(VectorMath.maxUnsigned(a, b)); + } + + @Test(dataProvider = "byteBinaryOpProvider") + static void UMAXByte512VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte512VectorTests::UMAX); + } + + @Test(dataProvider = "byteBinaryOpMaskProvider") + static void UMAXByte512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte512VectorTests::UMAX); + } + + static byte SADD(byte a, byte b) { + return (byte)(VectorMath.addSaturating(a, b)); + } + + @Test(dataProvider = "byteSaturatingBinaryOpProvider") + static void SADDByte512VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte512VectorTests::SADD); + } + + @Test(dataProvider = "byteSaturatingBinaryOpMaskProvider") + static void SADDByte512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte512VectorTests::SADD); + } + + static byte SSUB(byte a, byte b) { + return (byte)(VectorMath.subSaturating(a, b)); + } + + @Test(dataProvider = "byteSaturatingBinaryOpProvider") + static void SSUBByte512VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte512VectorTests::SSUB); + } + + @Test(dataProvider = "byteSaturatingBinaryOpMaskProvider") + static void SSUBByte512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte512VectorTests::SSUB); + } + + static byte SUADD(byte a, byte b) { + return (byte)(VectorMath.addSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "byteSaturatingBinaryOpProvider") + static void SUADDByte512VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte512VectorTests::SUADD); + } + + @Test(dataProvider = "byteSaturatingBinaryOpMaskProvider") + static void SUADDByte512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte512VectorTests::SUADD); + } + + static byte SUSUB(byte a, byte b) { + return (byte)(VectorMath.subSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "byteSaturatingBinaryOpProvider") + static void SUSUBByte512VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte512VectorTests::SUSUB); + } + + @Test(dataProvider = "byteSaturatingBinaryOpMaskProvider") + static void SUSUBByte512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte512VectorTests::SUSUB); + } + @Test(dataProvider = "byteBinaryOpProvider") static void MINByte512VectorTestsBroadcastSmokeTest(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); @@ -4147,7 +4441,7 @@ static void GEByte512VectorTestsMasked(IntFunction fa, IntFunction fa, IntFunction fb) { + static void ULTByte512VectorTests(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4155,7 +4449,7 @@ static void UNSIGNED_LTByte512VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LT, bv); + VectorMask mv = av.compare(VectorOperators.ULT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4166,7 +4460,7 @@ static void UNSIGNED_LTByte512VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULTByte512VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4178,7 +4472,7 @@ static void UNSIGNED_LTByte512VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); ByteVector bv = ByteVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4189,7 +4483,7 @@ static void UNSIGNED_LTByte512VectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "byteCompareOpProvider") - static void UNSIGNED_GTByte512VectorTests(IntFunction fa, IntFunction fb) { + static void UGTByte512VectorTests(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4197,7 +4491,7 @@ static void UNSIGNED_GTByte512VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GT, bv); + VectorMask mv = av.compare(VectorOperators.UGT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4208,7 +4502,7 @@ static void UNSIGNED_GTByte512VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGTByte512VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4220,7 +4514,7 @@ static void UNSIGNED_GTByte512VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); ByteVector bv = ByteVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4231,7 +4525,7 @@ static void UNSIGNED_GTByte512VectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "byteCompareOpProvider") - static void UNSIGNED_LEByte512VectorTests(IntFunction fa, IntFunction fb) { + static void ULEByte512VectorTests(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4239,7 +4533,7 @@ static void UNSIGNED_LEByte512VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LE, bv); + VectorMask mv = av.compare(VectorOperators.ULE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4250,7 +4544,7 @@ static void UNSIGNED_LEByte512VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULEByte512VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4262,7 +4556,7 @@ static void UNSIGNED_LEByte512VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); ByteVector bv = ByteVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4273,7 +4567,7 @@ static void UNSIGNED_LEByte512VectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "byteCompareOpProvider") - static void UNSIGNED_GEByte512VectorTests(IntFunction fa, IntFunction fb) { + static void UGEByte512VectorTests(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4281,7 +4575,7 @@ static void UNSIGNED_GEByte512VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GE, bv); + VectorMask mv = av.compare(VectorOperators.UGE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4292,7 +4586,7 @@ static void UNSIGNED_GEByte512VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGEByte512VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4304,7 +4598,7 @@ static void UNSIGNED_GEByte512VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); ByteVector bv = ByteVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { diff --git a/test/jdk/jdk/incubator/vector/Byte64VectorTests.java b/test/jdk/jdk/incubator/vector/Byte64VectorTests.java index b621c28a779..98c8382c526 100644 --- a/test/jdk/jdk/incubator/vector/Byte64VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Byte64VectorTests.java @@ -38,6 +38,7 @@ import jdk.incubator.vector.VectorMask; import jdk.incubator.vector.VectorOperators; import jdk.incubator.vector.Vector; +import jdk.incubator.vector.VectorMath; import jdk.incubator.vector.ByteVector; @@ -962,6 +963,33 @@ static byte bits(byte e) { }) ); + static final List> BYTE_SATURATING_GENERATORS = List.of( + withToString("byte[Byte.MIN_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(Byte.MIN_VALUE)); + }), + withToString("byte[Byte.MAX_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(Byte.MAX_VALUE)); + }), + withToString("byte[Byte.MAX_VALUE - 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(Byte.MAX_VALUE - 100)); + }), + withToString("byte[Byte.MIN_VALUE + 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(Byte.MIN_VALUE + 100)); + }), + withToString("byte[-i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(-i * 5)); + }), + withToString("byte[i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(i * 5)); + }) + ); + // Create combinations of pairs // @@@ Might be sensitive to order e.g. div by 0 static final List>> BYTE_GENERATOR_PAIRS = @@ -969,6 +997,11 @@ static byte bits(byte e) { flatMap(fa -> BYTE_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). collect(Collectors.toList()); + static final List>> BYTE_SATURATING_GENERATOR_PAIRS = + Stream.of(BYTE_GENERATORS.get(0)). + flatMap(fa -> BYTE_SATURATING_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). + collect(Collectors.toList()); + @DataProvider public Object[][] boolUnaryOpProvider() { return BOOL_ARRAY_GENERATORS.stream(). @@ -999,12 +1032,27 @@ public Object[][] byteBinaryOpProvider() { toArray(Object[][]::new); } + @DataProvider + public Object[][] byteSaturatingBinaryOpProvider() { + return BYTE_SATURATING_GENERATOR_PAIRS.stream().map(List::toArray). + toArray(Object[][]::new); + } + @DataProvider public Object[][] byteIndexedOpProvider() { return BYTE_GENERATOR_PAIRS.stream().map(List::toArray). toArray(Object[][]::new); } + @DataProvider + public Object[][] byteSaturatingBinaryOpMaskProvider() { + return BOOLEAN_MASK_GENERATORS.stream(). + flatMap(fm -> BYTE_SATURATING_GENERATOR_PAIRS.stream().map(lfa -> { + return Stream.concat(lfa.stream(), Stream.of(fm)).toArray(); + })). + toArray(Object[][]::new); + } + @DataProvider public Object[][] byteBinaryOpMaskProvider() { return BOOLEAN_MASK_GENERATORS.stream(). @@ -2939,6 +2987,252 @@ static void maxByte64VectorTests(IntFunction fa, IntFunction fb) assertArraysEquals(r, a, b, Byte64VectorTests::max); } + static byte UMIN(byte a, byte b) { + return (byte)(VectorMath.minUnsigned(a, b)); + } + + @Test(dataProvider = "byteBinaryOpProvider") + static void UMINByte64VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte64VectorTests::UMIN); + } + + @Test(dataProvider = "byteBinaryOpMaskProvider") + static void UMINByte64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte64VectorTests::UMIN); + } + + static byte UMAX(byte a, byte b) { + return (byte)(VectorMath.maxUnsigned(a, b)); + } + + @Test(dataProvider = "byteBinaryOpProvider") + static void UMAXByte64VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte64VectorTests::UMAX); + } + + @Test(dataProvider = "byteBinaryOpMaskProvider") + static void UMAXByte64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte64VectorTests::UMAX); + } + + static byte SADD(byte a, byte b) { + return (byte)(VectorMath.addSaturating(a, b)); + } + + @Test(dataProvider = "byteSaturatingBinaryOpProvider") + static void SADDByte64VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte64VectorTests::SADD); + } + + @Test(dataProvider = "byteSaturatingBinaryOpMaskProvider") + static void SADDByte64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte64VectorTests::SADD); + } + + static byte SSUB(byte a, byte b) { + return (byte)(VectorMath.subSaturating(a, b)); + } + + @Test(dataProvider = "byteSaturatingBinaryOpProvider") + static void SSUBByte64VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte64VectorTests::SSUB); + } + + @Test(dataProvider = "byteSaturatingBinaryOpMaskProvider") + static void SSUBByte64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte64VectorTests::SSUB); + } + + static byte SUADD(byte a, byte b) { + return (byte)(VectorMath.addSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "byteSaturatingBinaryOpProvider") + static void SUADDByte64VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte64VectorTests::SUADD); + } + + @Test(dataProvider = "byteSaturatingBinaryOpMaskProvider") + static void SUADDByte64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte64VectorTests::SUADD); + } + + static byte SUSUB(byte a, byte b) { + return (byte)(VectorMath.subSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "byteSaturatingBinaryOpProvider") + static void SUSUBByte64VectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Byte64VectorTests::SUSUB); + } + + @Test(dataProvider = "byteSaturatingBinaryOpMaskProvider") + static void SUSUBByte64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Byte64VectorTests::SUSUB); + } + @Test(dataProvider = "byteBinaryOpProvider") static void MINByte64VectorTestsBroadcastSmokeTest(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); @@ -4147,7 +4441,7 @@ static void GEByte64VectorTestsMasked(IntFunction fa, IntFunction fa, IntFunction fb) { + static void ULTByte64VectorTests(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4155,7 +4449,7 @@ static void UNSIGNED_LTByte64VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LT, bv); + VectorMask mv = av.compare(VectorOperators.ULT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4166,7 +4460,7 @@ static void UNSIGNED_LTByte64VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULTByte64VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4178,7 +4472,7 @@ static void UNSIGNED_LTByte64VectorTestsMasked(IntFunction fa, IntFuncti for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); ByteVector bv = ByteVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4189,7 +4483,7 @@ static void UNSIGNED_LTByte64VectorTestsMasked(IntFunction fa, IntFuncti } @Test(dataProvider = "byteCompareOpProvider") - static void UNSIGNED_GTByte64VectorTests(IntFunction fa, IntFunction fb) { + static void UGTByte64VectorTests(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4197,7 +4491,7 @@ static void UNSIGNED_GTByte64VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GT, bv); + VectorMask mv = av.compare(VectorOperators.UGT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4208,7 +4502,7 @@ static void UNSIGNED_GTByte64VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGTByte64VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4220,7 +4514,7 @@ static void UNSIGNED_GTByte64VectorTestsMasked(IntFunction fa, IntFuncti for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); ByteVector bv = ByteVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4231,7 +4525,7 @@ static void UNSIGNED_GTByte64VectorTestsMasked(IntFunction fa, IntFuncti } @Test(dataProvider = "byteCompareOpProvider") - static void UNSIGNED_LEByte64VectorTests(IntFunction fa, IntFunction fb) { + static void ULEByte64VectorTests(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4239,7 +4533,7 @@ static void UNSIGNED_LEByte64VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LE, bv); + VectorMask mv = av.compare(VectorOperators.ULE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4250,7 +4544,7 @@ static void UNSIGNED_LEByte64VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULEByte64VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4262,7 +4556,7 @@ static void UNSIGNED_LEByte64VectorTestsMasked(IntFunction fa, IntFuncti for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); ByteVector bv = ByteVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4273,7 +4567,7 @@ static void UNSIGNED_LEByte64VectorTestsMasked(IntFunction fa, IntFuncti } @Test(dataProvider = "byteCompareOpProvider") - static void UNSIGNED_GEByte64VectorTests(IntFunction fa, IntFunction fb) { + static void UGEByte64VectorTests(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4281,7 +4575,7 @@ static void UNSIGNED_GEByte64VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GE, bv); + VectorMask mv = av.compare(VectorOperators.UGE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4292,7 +4586,7 @@ static void UNSIGNED_GEByte64VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGEByte64VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4304,7 +4598,7 @@ static void UNSIGNED_GEByte64VectorTestsMasked(IntFunction fa, IntFuncti for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); ByteVector bv = ByteVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { diff --git a/test/jdk/jdk/incubator/vector/ByteMaxVectorTests.java b/test/jdk/jdk/incubator/vector/ByteMaxVectorTests.java index bbd354c958a..2d9d49f32ad 100644 --- a/test/jdk/jdk/incubator/vector/ByteMaxVectorTests.java +++ b/test/jdk/jdk/incubator/vector/ByteMaxVectorTests.java @@ -38,6 +38,7 @@ import jdk.incubator.vector.VectorMask; import jdk.incubator.vector.VectorOperators; import jdk.incubator.vector.Vector; +import jdk.incubator.vector.VectorMath; import jdk.incubator.vector.ByteVector; @@ -967,6 +968,33 @@ static byte bits(byte e) { }) ); + static final List> BYTE_SATURATING_GENERATORS = List.of( + withToString("byte[Byte.MIN_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(Byte.MIN_VALUE)); + }), + withToString("byte[Byte.MAX_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(Byte.MAX_VALUE)); + }), + withToString("byte[Byte.MAX_VALUE - 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(Byte.MAX_VALUE - 100)); + }), + withToString("byte[Byte.MIN_VALUE + 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(Byte.MIN_VALUE + 100)); + }), + withToString("byte[-i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(-i * 5)); + }), + withToString("byte[i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (byte)(i * 5)); + }) + ); + // Create combinations of pairs // @@@ Might be sensitive to order e.g. div by 0 static final List>> BYTE_GENERATOR_PAIRS = @@ -974,6 +1002,11 @@ static byte bits(byte e) { flatMap(fa -> BYTE_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). collect(Collectors.toList()); + static final List>> BYTE_SATURATING_GENERATOR_PAIRS = + Stream.of(BYTE_GENERATORS.get(0)). + flatMap(fa -> BYTE_SATURATING_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). + collect(Collectors.toList()); + @DataProvider public Object[][] boolUnaryOpProvider() { return BOOL_ARRAY_GENERATORS.stream(). @@ -1004,12 +1037,27 @@ public Object[][] byteBinaryOpProvider() { toArray(Object[][]::new); } + @DataProvider + public Object[][] byteSaturatingBinaryOpProvider() { + return BYTE_SATURATING_GENERATOR_PAIRS.stream().map(List::toArray). + toArray(Object[][]::new); + } + @DataProvider public Object[][] byteIndexedOpProvider() { return BYTE_GENERATOR_PAIRS.stream().map(List::toArray). toArray(Object[][]::new); } + @DataProvider + public Object[][] byteSaturatingBinaryOpMaskProvider() { + return BOOLEAN_MASK_GENERATORS.stream(). + flatMap(fm -> BYTE_SATURATING_GENERATOR_PAIRS.stream().map(lfa -> { + return Stream.concat(lfa.stream(), Stream.of(fm)).toArray(); + })). + toArray(Object[][]::new); + } + @DataProvider public Object[][] byteBinaryOpMaskProvider() { return BOOLEAN_MASK_GENERATORS.stream(). @@ -2944,6 +2992,252 @@ static void maxByteMaxVectorTests(IntFunction fa, IntFunction fb assertArraysEquals(r, a, b, ByteMaxVectorTests::max); } + static byte UMIN(byte a, byte b) { + return (byte)(VectorMath.minUnsigned(a, b)); + } + + @Test(dataProvider = "byteBinaryOpProvider") + static void UMINByteMaxVectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, ByteMaxVectorTests::UMIN); + } + + @Test(dataProvider = "byteBinaryOpMaskProvider") + static void UMINByteMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, ByteMaxVectorTests::UMIN); + } + + static byte UMAX(byte a, byte b) { + return (byte)(VectorMath.maxUnsigned(a, b)); + } + + @Test(dataProvider = "byteBinaryOpProvider") + static void UMAXByteMaxVectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, ByteMaxVectorTests::UMAX); + } + + @Test(dataProvider = "byteBinaryOpMaskProvider") + static void UMAXByteMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, ByteMaxVectorTests::UMAX); + } + + static byte SADD(byte a, byte b) { + return (byte)(VectorMath.addSaturating(a, b)); + } + + @Test(dataProvider = "byteSaturatingBinaryOpProvider") + static void SADDByteMaxVectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, ByteMaxVectorTests::SADD); + } + + @Test(dataProvider = "byteSaturatingBinaryOpMaskProvider") + static void SADDByteMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, ByteMaxVectorTests::SADD); + } + + static byte SSUB(byte a, byte b) { + return (byte)(VectorMath.subSaturating(a, b)); + } + + @Test(dataProvider = "byteSaturatingBinaryOpProvider") + static void SSUBByteMaxVectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, ByteMaxVectorTests::SSUB); + } + + @Test(dataProvider = "byteSaturatingBinaryOpMaskProvider") + static void SSUBByteMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, ByteMaxVectorTests::SSUB); + } + + static byte SUADD(byte a, byte b) { + return (byte)(VectorMath.addSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "byteSaturatingBinaryOpProvider") + static void SUADDByteMaxVectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, ByteMaxVectorTests::SUADD); + } + + @Test(dataProvider = "byteSaturatingBinaryOpMaskProvider") + static void SUADDByteMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, ByteMaxVectorTests::SUADD); + } + + static byte SUSUB(byte a, byte b) { + return (byte)(VectorMath.subSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "byteSaturatingBinaryOpProvider") + static void SUSUBByteMaxVectorTests(IntFunction fa, IntFunction fb) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, ByteMaxVectorTests::SUSUB); + } + + @Test(dataProvider = "byteSaturatingBinaryOpMaskProvider") + static void SUSUBByteMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, ByteMaxVectorTests::SUSUB); + } + @Test(dataProvider = "byteBinaryOpProvider") static void MINByteMaxVectorTestsBroadcastSmokeTest(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); @@ -4152,7 +4446,7 @@ static void GEByteMaxVectorTestsMasked(IntFunction fa, IntFunction fa, IntFunction fb) { + static void ULTByteMaxVectorTests(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4160,7 +4454,7 @@ static void UNSIGNED_LTByteMaxVectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LT, bv); + VectorMask mv = av.compare(VectorOperators.ULT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4171,7 +4465,7 @@ static void UNSIGNED_LTByteMaxVectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULTByteMaxVectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4183,7 +4477,7 @@ static void UNSIGNED_LTByteMaxVectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); ByteVector bv = ByteVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4194,7 +4488,7 @@ static void UNSIGNED_LTByteMaxVectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "byteCompareOpProvider") - static void UNSIGNED_GTByteMaxVectorTests(IntFunction fa, IntFunction fb) { + static void UGTByteMaxVectorTests(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4202,7 +4496,7 @@ static void UNSIGNED_GTByteMaxVectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GT, bv); + VectorMask mv = av.compare(VectorOperators.UGT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4213,7 +4507,7 @@ static void UNSIGNED_GTByteMaxVectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGTByteMaxVectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4225,7 +4519,7 @@ static void UNSIGNED_GTByteMaxVectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); ByteVector bv = ByteVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4236,7 +4530,7 @@ static void UNSIGNED_GTByteMaxVectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "byteCompareOpProvider") - static void UNSIGNED_LEByteMaxVectorTests(IntFunction fa, IntFunction fb) { + static void ULEByteMaxVectorTests(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4244,7 +4538,7 @@ static void UNSIGNED_LEByteMaxVectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LE, bv); + VectorMask mv = av.compare(VectorOperators.ULE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4255,7 +4549,7 @@ static void UNSIGNED_LEByteMaxVectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULEByteMaxVectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4267,7 +4561,7 @@ static void UNSIGNED_LEByteMaxVectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); ByteVector bv = ByteVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4278,7 +4572,7 @@ static void UNSIGNED_LEByteMaxVectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "byteCompareOpProvider") - static void UNSIGNED_GEByteMaxVectorTests(IntFunction fa, IntFunction fb) { + static void UGEByteMaxVectorTests(IntFunction fa, IntFunction fb) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4286,7 +4580,7 @@ static void UNSIGNED_GEByteMaxVectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GE, bv); + VectorMask mv = av.compare(VectorOperators.UGE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4297,7 +4591,7 @@ static void UNSIGNED_GEByteMaxVectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGEByteMaxVectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); @@ -4309,7 +4603,7 @@ static void UNSIGNED_GEByteMaxVectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); ByteVector bv = ByteVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { diff --git a/test/jdk/jdk/incubator/vector/Int128VectorTests.java b/test/jdk/jdk/incubator/vector/Int128VectorTests.java index 528d26a952b..028e757e853 100644 --- a/test/jdk/jdk/incubator/vector/Int128VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Int128VectorTests.java @@ -38,6 +38,7 @@ import jdk.incubator.vector.VectorMask; import jdk.incubator.vector.VectorOperators; import jdk.incubator.vector.Vector; +import jdk.incubator.vector.VectorMath; import jdk.incubator.vector.IntVector; @@ -952,6 +953,33 @@ static int bits(int e) { }) ); + static final List> INT_SATURATING_GENERATORS = List.of( + withToString("int[Integer.MIN_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(Integer.MIN_VALUE)); + }), + withToString("int[Integer.MAX_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(Integer.MAX_VALUE)); + }), + withToString("int[Integer.MAX_VALUE - 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(Integer.MAX_VALUE - 100)); + }), + withToString("int[Integer.MIN_VALUE + 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(Integer.MIN_VALUE + 100)); + }), + withToString("int[-i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(-i * 5)); + }), + withToString("int[i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(i * 5)); + }) + ); + // Create combinations of pairs // @@@ Might be sensitive to order e.g. div by 0 static final List>> INT_GENERATOR_PAIRS = @@ -959,6 +987,11 @@ static int bits(int e) { flatMap(fa -> INT_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). collect(Collectors.toList()); + static final List>> INT_SATURATING_GENERATOR_PAIRS = + Stream.of(INT_GENERATORS.get(0)). + flatMap(fa -> INT_SATURATING_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). + collect(Collectors.toList()); + @DataProvider public Object[][] boolUnaryOpProvider() { return BOOL_ARRAY_GENERATORS.stream(). @@ -989,12 +1022,27 @@ public Object[][] intBinaryOpProvider() { toArray(Object[][]::new); } + @DataProvider + public Object[][] intSaturatingBinaryOpProvider() { + return INT_SATURATING_GENERATOR_PAIRS.stream().map(List::toArray). + toArray(Object[][]::new); + } + @DataProvider public Object[][] intIndexedOpProvider() { return INT_GENERATOR_PAIRS.stream().map(List::toArray). toArray(Object[][]::new); } + @DataProvider + public Object[][] intSaturatingBinaryOpMaskProvider() { + return BOOLEAN_MASK_GENERATORS.stream(). + flatMap(fm -> INT_SATURATING_GENERATOR_PAIRS.stream().map(lfa -> { + return Stream.concat(lfa.stream(), Stream.of(fm)).toArray(); + })). + toArray(Object[][]::new); + } + @DataProvider public Object[][] intBinaryOpMaskProvider() { return BOOLEAN_MASK_GENERATORS.stream(). @@ -2983,6 +3031,252 @@ static void maxInt128VectorTests(IntFunction fa, IntFunction fb) { assertArraysEquals(r, a, b, Int128VectorTests::max); } + static int UMIN(int a, int b) { + return (int)(VectorMath.minUnsigned(a, b)); + } + + @Test(dataProvider = "intBinaryOpProvider") + static void UMINInt128VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int128VectorTests::UMIN); + } + + @Test(dataProvider = "intBinaryOpMaskProvider") + static void UMINInt128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int128VectorTests::UMIN); + } + + static int UMAX(int a, int b) { + return (int)(VectorMath.maxUnsigned(a, b)); + } + + @Test(dataProvider = "intBinaryOpProvider") + static void UMAXInt128VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int128VectorTests::UMAX); + } + + @Test(dataProvider = "intBinaryOpMaskProvider") + static void UMAXInt128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int128VectorTests::UMAX); + } + + static int SADD(int a, int b) { + return (int)(VectorMath.addSaturating(a, b)); + } + + @Test(dataProvider = "intSaturatingBinaryOpProvider") + static void SADDInt128VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int128VectorTests::SADD); + } + + @Test(dataProvider = "intSaturatingBinaryOpMaskProvider") + static void SADDInt128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int128VectorTests::SADD); + } + + static int SSUB(int a, int b) { + return (int)(VectorMath.subSaturating(a, b)); + } + + @Test(dataProvider = "intSaturatingBinaryOpProvider") + static void SSUBInt128VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int128VectorTests::SSUB); + } + + @Test(dataProvider = "intSaturatingBinaryOpMaskProvider") + static void SSUBInt128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int128VectorTests::SSUB); + } + + static int SUADD(int a, int b) { + return (int)(VectorMath.addSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "intSaturatingBinaryOpProvider") + static void SUADDInt128VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int128VectorTests::SUADD); + } + + @Test(dataProvider = "intSaturatingBinaryOpMaskProvider") + static void SUADDInt128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int128VectorTests::SUADD); + } + + static int SUSUB(int a, int b) { + return (int)(VectorMath.subSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "intSaturatingBinaryOpProvider") + static void SUSUBInt128VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int128VectorTests::SUSUB); + } + + @Test(dataProvider = "intSaturatingBinaryOpMaskProvider") + static void SUSUBInt128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int128VectorTests::SUSUB); + } + @Test(dataProvider = "intBinaryOpProvider") static void MINInt128VectorTestsBroadcastSmokeTest(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); @@ -4191,7 +4485,7 @@ static void GEInt128VectorTestsMasked(IntFunction fa, IntFunction } @Test(dataProvider = "intCompareOpProvider") - static void UNSIGNED_LTInt128VectorTests(IntFunction fa, IntFunction fb) { + static void ULTInt128VectorTests(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4199,7 +4493,7 @@ static void UNSIGNED_LTInt128VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LT, bv); + VectorMask mv = av.compare(VectorOperators.ULT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4210,7 +4504,7 @@ static void UNSIGNED_LTInt128VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULTInt128VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4222,7 +4516,7 @@ static void UNSIGNED_LTInt128VectorTestsMasked(IntFunction fa, IntFunctio for (int i = 0; i < a.length; i += SPECIES.length()) { IntVector av = IntVector.fromArray(SPECIES, a, i); IntVector bv = IntVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4233,7 +4527,7 @@ static void UNSIGNED_LTInt128VectorTestsMasked(IntFunction fa, IntFunctio } @Test(dataProvider = "intCompareOpProvider") - static void UNSIGNED_GTInt128VectorTests(IntFunction fa, IntFunction fb) { + static void UGTInt128VectorTests(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4241,7 +4535,7 @@ static void UNSIGNED_GTInt128VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GT, bv); + VectorMask mv = av.compare(VectorOperators.UGT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4252,7 +4546,7 @@ static void UNSIGNED_GTInt128VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGTInt128VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4264,7 +4558,7 @@ static void UNSIGNED_GTInt128VectorTestsMasked(IntFunction fa, IntFunctio for (int i = 0; i < a.length; i += SPECIES.length()) { IntVector av = IntVector.fromArray(SPECIES, a, i); IntVector bv = IntVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4275,7 +4569,7 @@ static void UNSIGNED_GTInt128VectorTestsMasked(IntFunction fa, IntFunctio } @Test(dataProvider = "intCompareOpProvider") - static void UNSIGNED_LEInt128VectorTests(IntFunction fa, IntFunction fb) { + static void ULEInt128VectorTests(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4283,7 +4577,7 @@ static void UNSIGNED_LEInt128VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LE, bv); + VectorMask mv = av.compare(VectorOperators.ULE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4294,7 +4588,7 @@ static void UNSIGNED_LEInt128VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULEInt128VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4306,7 +4600,7 @@ static void UNSIGNED_LEInt128VectorTestsMasked(IntFunction fa, IntFunctio for (int i = 0; i < a.length; i += SPECIES.length()) { IntVector av = IntVector.fromArray(SPECIES, a, i); IntVector bv = IntVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4317,7 +4611,7 @@ static void UNSIGNED_LEInt128VectorTestsMasked(IntFunction fa, IntFunctio } @Test(dataProvider = "intCompareOpProvider") - static void UNSIGNED_GEInt128VectorTests(IntFunction fa, IntFunction fb) { + static void UGEInt128VectorTests(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4325,7 +4619,7 @@ static void UNSIGNED_GEInt128VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GE, bv); + VectorMask mv = av.compare(VectorOperators.UGE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4336,7 +4630,7 @@ static void UNSIGNED_GEInt128VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGEInt128VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4348,7 +4642,7 @@ static void UNSIGNED_GEInt128VectorTestsMasked(IntFunction fa, IntFunctio for (int i = 0; i < a.length; i += SPECIES.length()) { IntVector av = IntVector.fromArray(SPECIES, a, i); IntVector bv = IntVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { diff --git a/test/jdk/jdk/incubator/vector/Int256VectorTests.java b/test/jdk/jdk/incubator/vector/Int256VectorTests.java index 09561e0f3c4..6dab8a39873 100644 --- a/test/jdk/jdk/incubator/vector/Int256VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Int256VectorTests.java @@ -38,6 +38,7 @@ import jdk.incubator.vector.VectorMask; import jdk.incubator.vector.VectorOperators; import jdk.incubator.vector.Vector; +import jdk.incubator.vector.VectorMath; import jdk.incubator.vector.IntVector; @@ -952,6 +953,33 @@ static int bits(int e) { }) ); + static final List> INT_SATURATING_GENERATORS = List.of( + withToString("int[Integer.MIN_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(Integer.MIN_VALUE)); + }), + withToString("int[Integer.MAX_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(Integer.MAX_VALUE)); + }), + withToString("int[Integer.MAX_VALUE - 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(Integer.MAX_VALUE - 100)); + }), + withToString("int[Integer.MIN_VALUE + 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(Integer.MIN_VALUE + 100)); + }), + withToString("int[-i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(-i * 5)); + }), + withToString("int[i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(i * 5)); + }) + ); + // Create combinations of pairs // @@@ Might be sensitive to order e.g. div by 0 static final List>> INT_GENERATOR_PAIRS = @@ -959,6 +987,11 @@ static int bits(int e) { flatMap(fa -> INT_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). collect(Collectors.toList()); + static final List>> INT_SATURATING_GENERATOR_PAIRS = + Stream.of(INT_GENERATORS.get(0)). + flatMap(fa -> INT_SATURATING_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). + collect(Collectors.toList()); + @DataProvider public Object[][] boolUnaryOpProvider() { return BOOL_ARRAY_GENERATORS.stream(). @@ -989,12 +1022,27 @@ public Object[][] intBinaryOpProvider() { toArray(Object[][]::new); } + @DataProvider + public Object[][] intSaturatingBinaryOpProvider() { + return INT_SATURATING_GENERATOR_PAIRS.stream().map(List::toArray). + toArray(Object[][]::new); + } + @DataProvider public Object[][] intIndexedOpProvider() { return INT_GENERATOR_PAIRS.stream().map(List::toArray). toArray(Object[][]::new); } + @DataProvider + public Object[][] intSaturatingBinaryOpMaskProvider() { + return BOOLEAN_MASK_GENERATORS.stream(). + flatMap(fm -> INT_SATURATING_GENERATOR_PAIRS.stream().map(lfa -> { + return Stream.concat(lfa.stream(), Stream.of(fm)).toArray(); + })). + toArray(Object[][]::new); + } + @DataProvider public Object[][] intBinaryOpMaskProvider() { return BOOLEAN_MASK_GENERATORS.stream(). @@ -2983,6 +3031,252 @@ static void maxInt256VectorTests(IntFunction fa, IntFunction fb) { assertArraysEquals(r, a, b, Int256VectorTests::max); } + static int UMIN(int a, int b) { + return (int)(VectorMath.minUnsigned(a, b)); + } + + @Test(dataProvider = "intBinaryOpProvider") + static void UMINInt256VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int256VectorTests::UMIN); + } + + @Test(dataProvider = "intBinaryOpMaskProvider") + static void UMINInt256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int256VectorTests::UMIN); + } + + static int UMAX(int a, int b) { + return (int)(VectorMath.maxUnsigned(a, b)); + } + + @Test(dataProvider = "intBinaryOpProvider") + static void UMAXInt256VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int256VectorTests::UMAX); + } + + @Test(dataProvider = "intBinaryOpMaskProvider") + static void UMAXInt256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int256VectorTests::UMAX); + } + + static int SADD(int a, int b) { + return (int)(VectorMath.addSaturating(a, b)); + } + + @Test(dataProvider = "intSaturatingBinaryOpProvider") + static void SADDInt256VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int256VectorTests::SADD); + } + + @Test(dataProvider = "intSaturatingBinaryOpMaskProvider") + static void SADDInt256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int256VectorTests::SADD); + } + + static int SSUB(int a, int b) { + return (int)(VectorMath.subSaturating(a, b)); + } + + @Test(dataProvider = "intSaturatingBinaryOpProvider") + static void SSUBInt256VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int256VectorTests::SSUB); + } + + @Test(dataProvider = "intSaturatingBinaryOpMaskProvider") + static void SSUBInt256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int256VectorTests::SSUB); + } + + static int SUADD(int a, int b) { + return (int)(VectorMath.addSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "intSaturatingBinaryOpProvider") + static void SUADDInt256VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int256VectorTests::SUADD); + } + + @Test(dataProvider = "intSaturatingBinaryOpMaskProvider") + static void SUADDInt256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int256VectorTests::SUADD); + } + + static int SUSUB(int a, int b) { + return (int)(VectorMath.subSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "intSaturatingBinaryOpProvider") + static void SUSUBInt256VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int256VectorTests::SUSUB); + } + + @Test(dataProvider = "intSaturatingBinaryOpMaskProvider") + static void SUSUBInt256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int256VectorTests::SUSUB); + } + @Test(dataProvider = "intBinaryOpProvider") static void MINInt256VectorTestsBroadcastSmokeTest(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); @@ -4191,7 +4485,7 @@ static void GEInt256VectorTestsMasked(IntFunction fa, IntFunction } @Test(dataProvider = "intCompareOpProvider") - static void UNSIGNED_LTInt256VectorTests(IntFunction fa, IntFunction fb) { + static void ULTInt256VectorTests(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4199,7 +4493,7 @@ static void UNSIGNED_LTInt256VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LT, bv); + VectorMask mv = av.compare(VectorOperators.ULT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4210,7 +4504,7 @@ static void UNSIGNED_LTInt256VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULTInt256VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4222,7 +4516,7 @@ static void UNSIGNED_LTInt256VectorTestsMasked(IntFunction fa, IntFunctio for (int i = 0; i < a.length; i += SPECIES.length()) { IntVector av = IntVector.fromArray(SPECIES, a, i); IntVector bv = IntVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4233,7 +4527,7 @@ static void UNSIGNED_LTInt256VectorTestsMasked(IntFunction fa, IntFunctio } @Test(dataProvider = "intCompareOpProvider") - static void UNSIGNED_GTInt256VectorTests(IntFunction fa, IntFunction fb) { + static void UGTInt256VectorTests(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4241,7 +4535,7 @@ static void UNSIGNED_GTInt256VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GT, bv); + VectorMask mv = av.compare(VectorOperators.UGT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4252,7 +4546,7 @@ static void UNSIGNED_GTInt256VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGTInt256VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4264,7 +4558,7 @@ static void UNSIGNED_GTInt256VectorTestsMasked(IntFunction fa, IntFunctio for (int i = 0; i < a.length; i += SPECIES.length()) { IntVector av = IntVector.fromArray(SPECIES, a, i); IntVector bv = IntVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4275,7 +4569,7 @@ static void UNSIGNED_GTInt256VectorTestsMasked(IntFunction fa, IntFunctio } @Test(dataProvider = "intCompareOpProvider") - static void UNSIGNED_LEInt256VectorTests(IntFunction fa, IntFunction fb) { + static void ULEInt256VectorTests(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4283,7 +4577,7 @@ static void UNSIGNED_LEInt256VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LE, bv); + VectorMask mv = av.compare(VectorOperators.ULE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4294,7 +4588,7 @@ static void UNSIGNED_LEInt256VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULEInt256VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4306,7 +4600,7 @@ static void UNSIGNED_LEInt256VectorTestsMasked(IntFunction fa, IntFunctio for (int i = 0; i < a.length; i += SPECIES.length()) { IntVector av = IntVector.fromArray(SPECIES, a, i); IntVector bv = IntVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4317,7 +4611,7 @@ static void UNSIGNED_LEInt256VectorTestsMasked(IntFunction fa, IntFunctio } @Test(dataProvider = "intCompareOpProvider") - static void UNSIGNED_GEInt256VectorTests(IntFunction fa, IntFunction fb) { + static void UGEInt256VectorTests(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4325,7 +4619,7 @@ static void UNSIGNED_GEInt256VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GE, bv); + VectorMask mv = av.compare(VectorOperators.UGE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4336,7 +4630,7 @@ static void UNSIGNED_GEInt256VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGEInt256VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4348,7 +4642,7 @@ static void UNSIGNED_GEInt256VectorTestsMasked(IntFunction fa, IntFunctio for (int i = 0; i < a.length; i += SPECIES.length()) { IntVector av = IntVector.fromArray(SPECIES, a, i); IntVector bv = IntVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { diff --git a/test/jdk/jdk/incubator/vector/Int512VectorTests.java b/test/jdk/jdk/incubator/vector/Int512VectorTests.java index e6d1aa68f56..0c86655ff22 100644 --- a/test/jdk/jdk/incubator/vector/Int512VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Int512VectorTests.java @@ -38,6 +38,7 @@ import jdk.incubator.vector.VectorMask; import jdk.incubator.vector.VectorOperators; import jdk.incubator.vector.Vector; +import jdk.incubator.vector.VectorMath; import jdk.incubator.vector.IntVector; @@ -952,6 +953,33 @@ static int bits(int e) { }) ); + static final List> INT_SATURATING_GENERATORS = List.of( + withToString("int[Integer.MIN_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(Integer.MIN_VALUE)); + }), + withToString("int[Integer.MAX_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(Integer.MAX_VALUE)); + }), + withToString("int[Integer.MAX_VALUE - 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(Integer.MAX_VALUE - 100)); + }), + withToString("int[Integer.MIN_VALUE + 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(Integer.MIN_VALUE + 100)); + }), + withToString("int[-i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(-i * 5)); + }), + withToString("int[i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(i * 5)); + }) + ); + // Create combinations of pairs // @@@ Might be sensitive to order e.g. div by 0 static final List>> INT_GENERATOR_PAIRS = @@ -959,6 +987,11 @@ static int bits(int e) { flatMap(fa -> INT_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). collect(Collectors.toList()); + static final List>> INT_SATURATING_GENERATOR_PAIRS = + Stream.of(INT_GENERATORS.get(0)). + flatMap(fa -> INT_SATURATING_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). + collect(Collectors.toList()); + @DataProvider public Object[][] boolUnaryOpProvider() { return BOOL_ARRAY_GENERATORS.stream(). @@ -989,12 +1022,27 @@ public Object[][] intBinaryOpProvider() { toArray(Object[][]::new); } + @DataProvider + public Object[][] intSaturatingBinaryOpProvider() { + return INT_SATURATING_GENERATOR_PAIRS.stream().map(List::toArray). + toArray(Object[][]::new); + } + @DataProvider public Object[][] intIndexedOpProvider() { return INT_GENERATOR_PAIRS.stream().map(List::toArray). toArray(Object[][]::new); } + @DataProvider + public Object[][] intSaturatingBinaryOpMaskProvider() { + return BOOLEAN_MASK_GENERATORS.stream(). + flatMap(fm -> INT_SATURATING_GENERATOR_PAIRS.stream().map(lfa -> { + return Stream.concat(lfa.stream(), Stream.of(fm)).toArray(); + })). + toArray(Object[][]::new); + } + @DataProvider public Object[][] intBinaryOpMaskProvider() { return BOOLEAN_MASK_GENERATORS.stream(). @@ -2983,6 +3031,252 @@ static void maxInt512VectorTests(IntFunction fa, IntFunction fb) { assertArraysEquals(r, a, b, Int512VectorTests::max); } + static int UMIN(int a, int b) { + return (int)(VectorMath.minUnsigned(a, b)); + } + + @Test(dataProvider = "intBinaryOpProvider") + static void UMINInt512VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int512VectorTests::UMIN); + } + + @Test(dataProvider = "intBinaryOpMaskProvider") + static void UMINInt512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int512VectorTests::UMIN); + } + + static int UMAX(int a, int b) { + return (int)(VectorMath.maxUnsigned(a, b)); + } + + @Test(dataProvider = "intBinaryOpProvider") + static void UMAXInt512VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int512VectorTests::UMAX); + } + + @Test(dataProvider = "intBinaryOpMaskProvider") + static void UMAXInt512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int512VectorTests::UMAX); + } + + static int SADD(int a, int b) { + return (int)(VectorMath.addSaturating(a, b)); + } + + @Test(dataProvider = "intSaturatingBinaryOpProvider") + static void SADDInt512VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int512VectorTests::SADD); + } + + @Test(dataProvider = "intSaturatingBinaryOpMaskProvider") + static void SADDInt512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int512VectorTests::SADD); + } + + static int SSUB(int a, int b) { + return (int)(VectorMath.subSaturating(a, b)); + } + + @Test(dataProvider = "intSaturatingBinaryOpProvider") + static void SSUBInt512VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int512VectorTests::SSUB); + } + + @Test(dataProvider = "intSaturatingBinaryOpMaskProvider") + static void SSUBInt512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int512VectorTests::SSUB); + } + + static int SUADD(int a, int b) { + return (int)(VectorMath.addSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "intSaturatingBinaryOpProvider") + static void SUADDInt512VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int512VectorTests::SUADD); + } + + @Test(dataProvider = "intSaturatingBinaryOpMaskProvider") + static void SUADDInt512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int512VectorTests::SUADD); + } + + static int SUSUB(int a, int b) { + return (int)(VectorMath.subSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "intSaturatingBinaryOpProvider") + static void SUSUBInt512VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int512VectorTests::SUSUB); + } + + @Test(dataProvider = "intSaturatingBinaryOpMaskProvider") + static void SUSUBInt512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int512VectorTests::SUSUB); + } + @Test(dataProvider = "intBinaryOpProvider") static void MINInt512VectorTestsBroadcastSmokeTest(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); @@ -4191,7 +4485,7 @@ static void GEInt512VectorTestsMasked(IntFunction fa, IntFunction } @Test(dataProvider = "intCompareOpProvider") - static void UNSIGNED_LTInt512VectorTests(IntFunction fa, IntFunction fb) { + static void ULTInt512VectorTests(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4199,7 +4493,7 @@ static void UNSIGNED_LTInt512VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LT, bv); + VectorMask mv = av.compare(VectorOperators.ULT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4210,7 +4504,7 @@ static void UNSIGNED_LTInt512VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULTInt512VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4222,7 +4516,7 @@ static void UNSIGNED_LTInt512VectorTestsMasked(IntFunction fa, IntFunctio for (int i = 0; i < a.length; i += SPECIES.length()) { IntVector av = IntVector.fromArray(SPECIES, a, i); IntVector bv = IntVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4233,7 +4527,7 @@ static void UNSIGNED_LTInt512VectorTestsMasked(IntFunction fa, IntFunctio } @Test(dataProvider = "intCompareOpProvider") - static void UNSIGNED_GTInt512VectorTests(IntFunction fa, IntFunction fb) { + static void UGTInt512VectorTests(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4241,7 +4535,7 @@ static void UNSIGNED_GTInt512VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GT, bv); + VectorMask mv = av.compare(VectorOperators.UGT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4252,7 +4546,7 @@ static void UNSIGNED_GTInt512VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGTInt512VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4264,7 +4558,7 @@ static void UNSIGNED_GTInt512VectorTestsMasked(IntFunction fa, IntFunctio for (int i = 0; i < a.length; i += SPECIES.length()) { IntVector av = IntVector.fromArray(SPECIES, a, i); IntVector bv = IntVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4275,7 +4569,7 @@ static void UNSIGNED_GTInt512VectorTestsMasked(IntFunction fa, IntFunctio } @Test(dataProvider = "intCompareOpProvider") - static void UNSIGNED_LEInt512VectorTests(IntFunction fa, IntFunction fb) { + static void ULEInt512VectorTests(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4283,7 +4577,7 @@ static void UNSIGNED_LEInt512VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LE, bv); + VectorMask mv = av.compare(VectorOperators.ULE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4294,7 +4588,7 @@ static void UNSIGNED_LEInt512VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULEInt512VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4306,7 +4600,7 @@ static void UNSIGNED_LEInt512VectorTestsMasked(IntFunction fa, IntFunctio for (int i = 0; i < a.length; i += SPECIES.length()) { IntVector av = IntVector.fromArray(SPECIES, a, i); IntVector bv = IntVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4317,7 +4611,7 @@ static void UNSIGNED_LEInt512VectorTestsMasked(IntFunction fa, IntFunctio } @Test(dataProvider = "intCompareOpProvider") - static void UNSIGNED_GEInt512VectorTests(IntFunction fa, IntFunction fb) { + static void UGEInt512VectorTests(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4325,7 +4619,7 @@ static void UNSIGNED_GEInt512VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GE, bv); + VectorMask mv = av.compare(VectorOperators.UGE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4336,7 +4630,7 @@ static void UNSIGNED_GEInt512VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGEInt512VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4348,7 +4642,7 @@ static void UNSIGNED_GEInt512VectorTestsMasked(IntFunction fa, IntFunctio for (int i = 0; i < a.length; i += SPECIES.length()) { IntVector av = IntVector.fromArray(SPECIES, a, i); IntVector bv = IntVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { diff --git a/test/jdk/jdk/incubator/vector/Int64VectorTests.java b/test/jdk/jdk/incubator/vector/Int64VectorTests.java index 4435d31cd04..b2cb3698f62 100644 --- a/test/jdk/jdk/incubator/vector/Int64VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Int64VectorTests.java @@ -38,6 +38,7 @@ import jdk.incubator.vector.VectorMask; import jdk.incubator.vector.VectorOperators; import jdk.incubator.vector.Vector; +import jdk.incubator.vector.VectorMath; import jdk.incubator.vector.IntVector; @@ -952,6 +953,33 @@ static int bits(int e) { }) ); + static final List> INT_SATURATING_GENERATORS = List.of( + withToString("int[Integer.MIN_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(Integer.MIN_VALUE)); + }), + withToString("int[Integer.MAX_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(Integer.MAX_VALUE)); + }), + withToString("int[Integer.MAX_VALUE - 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(Integer.MAX_VALUE - 100)); + }), + withToString("int[Integer.MIN_VALUE + 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(Integer.MIN_VALUE + 100)); + }), + withToString("int[-i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(-i * 5)); + }), + withToString("int[i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(i * 5)); + }) + ); + // Create combinations of pairs // @@@ Might be sensitive to order e.g. div by 0 static final List>> INT_GENERATOR_PAIRS = @@ -959,6 +987,11 @@ static int bits(int e) { flatMap(fa -> INT_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). collect(Collectors.toList()); + static final List>> INT_SATURATING_GENERATOR_PAIRS = + Stream.of(INT_GENERATORS.get(0)). + flatMap(fa -> INT_SATURATING_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). + collect(Collectors.toList()); + @DataProvider public Object[][] boolUnaryOpProvider() { return BOOL_ARRAY_GENERATORS.stream(). @@ -989,12 +1022,27 @@ public Object[][] intBinaryOpProvider() { toArray(Object[][]::new); } + @DataProvider + public Object[][] intSaturatingBinaryOpProvider() { + return INT_SATURATING_GENERATOR_PAIRS.stream().map(List::toArray). + toArray(Object[][]::new); + } + @DataProvider public Object[][] intIndexedOpProvider() { return INT_GENERATOR_PAIRS.stream().map(List::toArray). toArray(Object[][]::new); } + @DataProvider + public Object[][] intSaturatingBinaryOpMaskProvider() { + return BOOLEAN_MASK_GENERATORS.stream(). + flatMap(fm -> INT_SATURATING_GENERATOR_PAIRS.stream().map(lfa -> { + return Stream.concat(lfa.stream(), Stream.of(fm)).toArray(); + })). + toArray(Object[][]::new); + } + @DataProvider public Object[][] intBinaryOpMaskProvider() { return BOOLEAN_MASK_GENERATORS.stream(). @@ -2983,6 +3031,252 @@ static void maxInt64VectorTests(IntFunction fa, IntFunction fb) { assertArraysEquals(r, a, b, Int64VectorTests::max); } + static int UMIN(int a, int b) { + return (int)(VectorMath.minUnsigned(a, b)); + } + + @Test(dataProvider = "intBinaryOpProvider") + static void UMINInt64VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int64VectorTests::UMIN); + } + + @Test(dataProvider = "intBinaryOpMaskProvider") + static void UMINInt64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int64VectorTests::UMIN); + } + + static int UMAX(int a, int b) { + return (int)(VectorMath.maxUnsigned(a, b)); + } + + @Test(dataProvider = "intBinaryOpProvider") + static void UMAXInt64VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int64VectorTests::UMAX); + } + + @Test(dataProvider = "intBinaryOpMaskProvider") + static void UMAXInt64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int64VectorTests::UMAX); + } + + static int SADD(int a, int b) { + return (int)(VectorMath.addSaturating(a, b)); + } + + @Test(dataProvider = "intSaturatingBinaryOpProvider") + static void SADDInt64VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int64VectorTests::SADD); + } + + @Test(dataProvider = "intSaturatingBinaryOpMaskProvider") + static void SADDInt64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int64VectorTests::SADD); + } + + static int SSUB(int a, int b) { + return (int)(VectorMath.subSaturating(a, b)); + } + + @Test(dataProvider = "intSaturatingBinaryOpProvider") + static void SSUBInt64VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int64VectorTests::SSUB); + } + + @Test(dataProvider = "intSaturatingBinaryOpMaskProvider") + static void SSUBInt64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int64VectorTests::SSUB); + } + + static int SUADD(int a, int b) { + return (int)(VectorMath.addSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "intSaturatingBinaryOpProvider") + static void SUADDInt64VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int64VectorTests::SUADD); + } + + @Test(dataProvider = "intSaturatingBinaryOpMaskProvider") + static void SUADDInt64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int64VectorTests::SUADD); + } + + static int SUSUB(int a, int b) { + return (int)(VectorMath.subSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "intSaturatingBinaryOpProvider") + static void SUSUBInt64VectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Int64VectorTests::SUSUB); + } + + @Test(dataProvider = "intSaturatingBinaryOpMaskProvider") + static void SUSUBInt64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Int64VectorTests::SUSUB); + } + @Test(dataProvider = "intBinaryOpProvider") static void MINInt64VectorTestsBroadcastSmokeTest(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); @@ -4191,7 +4485,7 @@ static void GEInt64VectorTestsMasked(IntFunction fa, IntFunction f } @Test(dataProvider = "intCompareOpProvider") - static void UNSIGNED_LTInt64VectorTests(IntFunction fa, IntFunction fb) { + static void ULTInt64VectorTests(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4199,7 +4493,7 @@ static void UNSIGNED_LTInt64VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LT, bv); + VectorMask mv = av.compare(VectorOperators.ULT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4210,7 +4504,7 @@ static void UNSIGNED_LTInt64VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULTInt64VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4222,7 +4516,7 @@ static void UNSIGNED_LTInt64VectorTestsMasked(IntFunction fa, IntFunction for (int i = 0; i < a.length; i += SPECIES.length()) { IntVector av = IntVector.fromArray(SPECIES, a, i); IntVector bv = IntVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4233,7 +4527,7 @@ static void UNSIGNED_LTInt64VectorTestsMasked(IntFunction fa, IntFunction } @Test(dataProvider = "intCompareOpProvider") - static void UNSIGNED_GTInt64VectorTests(IntFunction fa, IntFunction fb) { + static void UGTInt64VectorTests(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4241,7 +4535,7 @@ static void UNSIGNED_GTInt64VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GT, bv); + VectorMask mv = av.compare(VectorOperators.UGT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4252,7 +4546,7 @@ static void UNSIGNED_GTInt64VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGTInt64VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4264,7 +4558,7 @@ static void UNSIGNED_GTInt64VectorTestsMasked(IntFunction fa, IntFunction for (int i = 0; i < a.length; i += SPECIES.length()) { IntVector av = IntVector.fromArray(SPECIES, a, i); IntVector bv = IntVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4275,7 +4569,7 @@ static void UNSIGNED_GTInt64VectorTestsMasked(IntFunction fa, IntFunction } @Test(dataProvider = "intCompareOpProvider") - static void UNSIGNED_LEInt64VectorTests(IntFunction fa, IntFunction fb) { + static void ULEInt64VectorTests(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4283,7 +4577,7 @@ static void UNSIGNED_LEInt64VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LE, bv); + VectorMask mv = av.compare(VectorOperators.ULE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4294,7 +4588,7 @@ static void UNSIGNED_LEInt64VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULEInt64VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4306,7 +4600,7 @@ static void UNSIGNED_LEInt64VectorTestsMasked(IntFunction fa, IntFunction for (int i = 0; i < a.length; i += SPECIES.length()) { IntVector av = IntVector.fromArray(SPECIES, a, i); IntVector bv = IntVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4317,7 +4611,7 @@ static void UNSIGNED_LEInt64VectorTestsMasked(IntFunction fa, IntFunction } @Test(dataProvider = "intCompareOpProvider") - static void UNSIGNED_GEInt64VectorTests(IntFunction fa, IntFunction fb) { + static void UGEInt64VectorTests(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4325,7 +4619,7 @@ static void UNSIGNED_GEInt64VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GE, bv); + VectorMask mv = av.compare(VectorOperators.UGE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4336,7 +4630,7 @@ static void UNSIGNED_GEInt64VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGEInt64VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4348,7 +4642,7 @@ static void UNSIGNED_GEInt64VectorTestsMasked(IntFunction fa, IntFunction for (int i = 0; i < a.length; i += SPECIES.length()) { IntVector av = IntVector.fromArray(SPECIES, a, i); IntVector bv = IntVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { diff --git a/test/jdk/jdk/incubator/vector/IntMaxVectorTests.java b/test/jdk/jdk/incubator/vector/IntMaxVectorTests.java index 94dce66d951..fc0f6c1c139 100644 --- a/test/jdk/jdk/incubator/vector/IntMaxVectorTests.java +++ b/test/jdk/jdk/incubator/vector/IntMaxVectorTests.java @@ -38,6 +38,7 @@ import jdk.incubator.vector.VectorMask; import jdk.incubator.vector.VectorOperators; import jdk.incubator.vector.Vector; +import jdk.incubator.vector.VectorMath; import jdk.incubator.vector.IntVector; @@ -957,6 +958,33 @@ static int bits(int e) { }) ); + static final List> INT_SATURATING_GENERATORS = List.of( + withToString("int[Integer.MIN_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(Integer.MIN_VALUE)); + }), + withToString("int[Integer.MAX_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(Integer.MAX_VALUE)); + }), + withToString("int[Integer.MAX_VALUE - 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(Integer.MAX_VALUE - 100)); + }), + withToString("int[Integer.MIN_VALUE + 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(Integer.MIN_VALUE + 100)); + }), + withToString("int[-i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(-i * 5)); + }), + withToString("int[i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (int)(i * 5)); + }) + ); + // Create combinations of pairs // @@@ Might be sensitive to order e.g. div by 0 static final List>> INT_GENERATOR_PAIRS = @@ -964,6 +992,11 @@ static int bits(int e) { flatMap(fa -> INT_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). collect(Collectors.toList()); + static final List>> INT_SATURATING_GENERATOR_PAIRS = + Stream.of(INT_GENERATORS.get(0)). + flatMap(fa -> INT_SATURATING_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). + collect(Collectors.toList()); + @DataProvider public Object[][] boolUnaryOpProvider() { return BOOL_ARRAY_GENERATORS.stream(). @@ -994,12 +1027,27 @@ public Object[][] intBinaryOpProvider() { toArray(Object[][]::new); } + @DataProvider + public Object[][] intSaturatingBinaryOpProvider() { + return INT_SATURATING_GENERATOR_PAIRS.stream().map(List::toArray). + toArray(Object[][]::new); + } + @DataProvider public Object[][] intIndexedOpProvider() { return INT_GENERATOR_PAIRS.stream().map(List::toArray). toArray(Object[][]::new); } + @DataProvider + public Object[][] intSaturatingBinaryOpMaskProvider() { + return BOOLEAN_MASK_GENERATORS.stream(). + flatMap(fm -> INT_SATURATING_GENERATOR_PAIRS.stream().map(lfa -> { + return Stream.concat(lfa.stream(), Stream.of(fm)).toArray(); + })). + toArray(Object[][]::new); + } + @DataProvider public Object[][] intBinaryOpMaskProvider() { return BOOLEAN_MASK_GENERATORS.stream(). @@ -2988,6 +3036,252 @@ static void maxIntMaxVectorTests(IntFunction fa, IntFunction fb) { assertArraysEquals(r, a, b, IntMaxVectorTests::max); } + static int UMIN(int a, int b) { + return (int)(VectorMath.minUnsigned(a, b)); + } + + @Test(dataProvider = "intBinaryOpProvider") + static void UMINIntMaxVectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, IntMaxVectorTests::UMIN); + } + + @Test(dataProvider = "intBinaryOpMaskProvider") + static void UMINIntMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, IntMaxVectorTests::UMIN); + } + + static int UMAX(int a, int b) { + return (int)(VectorMath.maxUnsigned(a, b)); + } + + @Test(dataProvider = "intBinaryOpProvider") + static void UMAXIntMaxVectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, IntMaxVectorTests::UMAX); + } + + @Test(dataProvider = "intBinaryOpMaskProvider") + static void UMAXIntMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, IntMaxVectorTests::UMAX); + } + + static int SADD(int a, int b) { + return (int)(VectorMath.addSaturating(a, b)); + } + + @Test(dataProvider = "intSaturatingBinaryOpProvider") + static void SADDIntMaxVectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, IntMaxVectorTests::SADD); + } + + @Test(dataProvider = "intSaturatingBinaryOpMaskProvider") + static void SADDIntMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, IntMaxVectorTests::SADD); + } + + static int SSUB(int a, int b) { + return (int)(VectorMath.subSaturating(a, b)); + } + + @Test(dataProvider = "intSaturatingBinaryOpProvider") + static void SSUBIntMaxVectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, IntMaxVectorTests::SSUB); + } + + @Test(dataProvider = "intSaturatingBinaryOpMaskProvider") + static void SSUBIntMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, IntMaxVectorTests::SSUB); + } + + static int SUADD(int a, int b) { + return (int)(VectorMath.addSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "intSaturatingBinaryOpProvider") + static void SUADDIntMaxVectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, IntMaxVectorTests::SUADD); + } + + @Test(dataProvider = "intSaturatingBinaryOpMaskProvider") + static void SUADDIntMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, IntMaxVectorTests::SUADD); + } + + static int SUSUB(int a, int b) { + return (int)(VectorMath.subSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "intSaturatingBinaryOpProvider") + static void SUSUBIntMaxVectorTests(IntFunction fa, IntFunction fb) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, IntMaxVectorTests::SUSUB); + } + + @Test(dataProvider = "intSaturatingBinaryOpMaskProvider") + static void SUSUBIntMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + int[] a = fa.apply(SPECIES.length()); + int[] b = fb.apply(SPECIES.length()); + int[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + IntVector av = IntVector.fromArray(SPECIES, a, i); + IntVector bv = IntVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, IntMaxVectorTests::SUSUB); + } + @Test(dataProvider = "intBinaryOpProvider") static void MINIntMaxVectorTestsBroadcastSmokeTest(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); @@ -4196,7 +4490,7 @@ static void GEIntMaxVectorTestsMasked(IntFunction fa, IntFunction } @Test(dataProvider = "intCompareOpProvider") - static void UNSIGNED_LTIntMaxVectorTests(IntFunction fa, IntFunction fb) { + static void ULTIntMaxVectorTests(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4204,7 +4498,7 @@ static void UNSIGNED_LTIntMaxVectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LT, bv); + VectorMask mv = av.compare(VectorOperators.ULT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4215,7 +4509,7 @@ static void UNSIGNED_LTIntMaxVectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULTIntMaxVectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4227,7 +4521,7 @@ static void UNSIGNED_LTIntMaxVectorTestsMasked(IntFunction fa, IntFunctio for (int i = 0; i < a.length; i += SPECIES.length()) { IntVector av = IntVector.fromArray(SPECIES, a, i); IntVector bv = IntVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4238,7 +4532,7 @@ static void UNSIGNED_LTIntMaxVectorTestsMasked(IntFunction fa, IntFunctio } @Test(dataProvider = "intCompareOpProvider") - static void UNSIGNED_GTIntMaxVectorTests(IntFunction fa, IntFunction fb) { + static void UGTIntMaxVectorTests(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4246,7 +4540,7 @@ static void UNSIGNED_GTIntMaxVectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GT, bv); + VectorMask mv = av.compare(VectorOperators.UGT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4257,7 +4551,7 @@ static void UNSIGNED_GTIntMaxVectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGTIntMaxVectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4269,7 +4563,7 @@ static void UNSIGNED_GTIntMaxVectorTestsMasked(IntFunction fa, IntFunctio for (int i = 0; i < a.length; i += SPECIES.length()) { IntVector av = IntVector.fromArray(SPECIES, a, i); IntVector bv = IntVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4280,7 +4574,7 @@ static void UNSIGNED_GTIntMaxVectorTestsMasked(IntFunction fa, IntFunctio } @Test(dataProvider = "intCompareOpProvider") - static void UNSIGNED_LEIntMaxVectorTests(IntFunction fa, IntFunction fb) { + static void ULEIntMaxVectorTests(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4288,7 +4582,7 @@ static void UNSIGNED_LEIntMaxVectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LE, bv); + VectorMask mv = av.compare(VectorOperators.ULE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4299,7 +4593,7 @@ static void UNSIGNED_LEIntMaxVectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULEIntMaxVectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4311,7 +4605,7 @@ static void UNSIGNED_LEIntMaxVectorTestsMasked(IntFunction fa, IntFunctio for (int i = 0; i < a.length; i += SPECIES.length()) { IntVector av = IntVector.fromArray(SPECIES, a, i); IntVector bv = IntVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4322,7 +4616,7 @@ static void UNSIGNED_LEIntMaxVectorTestsMasked(IntFunction fa, IntFunctio } @Test(dataProvider = "intCompareOpProvider") - static void UNSIGNED_GEIntMaxVectorTests(IntFunction fa, IntFunction fb) { + static void UGEIntMaxVectorTests(IntFunction fa, IntFunction fb) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4330,7 +4624,7 @@ static void UNSIGNED_GEIntMaxVectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GE, bv); + VectorMask mv = av.compare(VectorOperators.UGE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4341,7 +4635,7 @@ static void UNSIGNED_GEIntMaxVectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGEIntMaxVectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { int[] a = fa.apply(SPECIES.length()); int[] b = fb.apply(SPECIES.length()); @@ -4353,7 +4647,7 @@ static void UNSIGNED_GEIntMaxVectorTestsMasked(IntFunction fa, IntFunctio for (int i = 0; i < a.length; i += SPECIES.length()) { IntVector av = IntVector.fromArray(SPECIES, a, i); IntVector bv = IntVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { diff --git a/test/jdk/jdk/incubator/vector/Long128VectorTests.java b/test/jdk/jdk/incubator/vector/Long128VectorTests.java index 7e6bf6b7b81..3694128877a 100644 --- a/test/jdk/jdk/incubator/vector/Long128VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Long128VectorTests.java @@ -38,6 +38,7 @@ import jdk.incubator.vector.VectorMask; import jdk.incubator.vector.VectorOperators; import jdk.incubator.vector.Vector; +import jdk.incubator.vector.VectorMath; import jdk.incubator.vector.LongVector; @@ -942,6 +943,33 @@ static long bits(long e) { }) ); + static final List> LONG_SATURATING_GENERATORS = List.of( + withToString("long[Long.MIN_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(Long.MIN_VALUE)); + }), + withToString("long[Long.MAX_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(Long.MAX_VALUE)); + }), + withToString("long[Long.MAX_VALUE - 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(Long.MAX_VALUE - 100)); + }), + withToString("long[Long.MIN_VALUE + 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(Long.MIN_VALUE + 100)); + }), + withToString("long[-i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(-i * 5)); + }), + withToString("long[i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(i * 5)); + }) + ); + // Create combinations of pairs // @@@ Might be sensitive to order e.g. div by 0 static final List>> LONG_GENERATOR_PAIRS = @@ -949,6 +977,11 @@ static long bits(long e) { flatMap(fa -> LONG_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). collect(Collectors.toList()); + static final List>> LONG_SATURATING_GENERATOR_PAIRS = + Stream.of(LONG_GENERATORS.get(0)). + flatMap(fa -> LONG_SATURATING_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). + collect(Collectors.toList()); + @DataProvider public Object[][] boolUnaryOpProvider() { return BOOL_ARRAY_GENERATORS.stream(). @@ -979,12 +1012,27 @@ public Object[][] longBinaryOpProvider() { toArray(Object[][]::new); } + @DataProvider + public Object[][] longSaturatingBinaryOpProvider() { + return LONG_SATURATING_GENERATOR_PAIRS.stream().map(List::toArray). + toArray(Object[][]::new); + } + @DataProvider public Object[][] longIndexedOpProvider() { return LONG_GENERATOR_PAIRS.stream().map(List::toArray). toArray(Object[][]::new); } + @DataProvider + public Object[][] longSaturatingBinaryOpMaskProvider() { + return BOOLEAN_MASK_GENERATORS.stream(). + flatMap(fm -> LONG_SATURATING_GENERATOR_PAIRS.stream().map(lfa -> { + return Stream.concat(lfa.stream(), Stream.of(fm)).toArray(); + })). + toArray(Object[][]::new); + } + @DataProvider public Object[][] longBinaryOpMaskProvider() { return BOOLEAN_MASK_GENERATORS.stream(). @@ -3005,6 +3053,252 @@ static void maxLong128VectorTests(IntFunction fa, IntFunction fb assertArraysEquals(r, a, b, Long128VectorTests::max); } + static long UMIN(long a, long b) { + return (long)(VectorMath.minUnsigned(a, b)); + } + + @Test(dataProvider = "longBinaryOpProvider") + static void UMINLong128VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long128VectorTests::UMIN); + } + + @Test(dataProvider = "longBinaryOpMaskProvider") + static void UMINLong128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long128VectorTests::UMIN); + } + + static long UMAX(long a, long b) { + return (long)(VectorMath.maxUnsigned(a, b)); + } + + @Test(dataProvider = "longBinaryOpProvider") + static void UMAXLong128VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long128VectorTests::UMAX); + } + + @Test(dataProvider = "longBinaryOpMaskProvider") + static void UMAXLong128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long128VectorTests::UMAX); + } + + static long SADD(long a, long b) { + return (long)(VectorMath.addSaturating(a, b)); + } + + @Test(dataProvider = "longSaturatingBinaryOpProvider") + static void SADDLong128VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long128VectorTests::SADD); + } + + @Test(dataProvider = "longSaturatingBinaryOpMaskProvider") + static void SADDLong128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long128VectorTests::SADD); + } + + static long SSUB(long a, long b) { + return (long)(VectorMath.subSaturating(a, b)); + } + + @Test(dataProvider = "longSaturatingBinaryOpProvider") + static void SSUBLong128VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long128VectorTests::SSUB); + } + + @Test(dataProvider = "longSaturatingBinaryOpMaskProvider") + static void SSUBLong128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long128VectorTests::SSUB); + } + + static long SUADD(long a, long b) { + return (long)(VectorMath.addSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "longSaturatingBinaryOpProvider") + static void SUADDLong128VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long128VectorTests::SUADD); + } + + @Test(dataProvider = "longSaturatingBinaryOpMaskProvider") + static void SUADDLong128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long128VectorTests::SUADD); + } + + static long SUSUB(long a, long b) { + return (long)(VectorMath.subSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "longSaturatingBinaryOpProvider") + static void SUSUBLong128VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long128VectorTests::SUSUB); + } + + @Test(dataProvider = "longSaturatingBinaryOpMaskProvider") + static void SUSUBLong128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long128VectorTests::SUSUB); + } + @Test(dataProvider = "longBinaryOpProvider") static void MINLong128VectorTestsBroadcastSmokeTest(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); @@ -4213,7 +4507,7 @@ static void GELong128VectorTestsMasked(IntFunction fa, IntFunction fa, IntFunction fb) { + static void ULTLong128VectorTests(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4221,7 +4515,7 @@ static void UNSIGNED_LTLong128VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LT, bv); + VectorMask mv = av.compare(VectorOperators.ULT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4232,7 +4526,7 @@ static void UNSIGNED_LTLong128VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULTLong128VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4244,7 +4538,7 @@ static void UNSIGNED_LTLong128VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { LongVector av = LongVector.fromArray(SPECIES, a, i); LongVector bv = LongVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4255,7 +4549,7 @@ static void UNSIGNED_LTLong128VectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "longCompareOpProvider") - static void UNSIGNED_GTLong128VectorTests(IntFunction fa, IntFunction fb) { + static void UGTLong128VectorTests(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4263,7 +4557,7 @@ static void UNSIGNED_GTLong128VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GT, bv); + VectorMask mv = av.compare(VectorOperators.UGT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4274,7 +4568,7 @@ static void UNSIGNED_GTLong128VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGTLong128VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4286,7 +4580,7 @@ static void UNSIGNED_GTLong128VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { LongVector av = LongVector.fromArray(SPECIES, a, i); LongVector bv = LongVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4297,7 +4591,7 @@ static void UNSIGNED_GTLong128VectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "longCompareOpProvider") - static void UNSIGNED_LELong128VectorTests(IntFunction fa, IntFunction fb) { + static void ULELong128VectorTests(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4305,7 +4599,7 @@ static void UNSIGNED_LELong128VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LE, bv); + VectorMask mv = av.compare(VectorOperators.ULE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4316,7 +4610,7 @@ static void UNSIGNED_LELong128VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULELong128VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4328,7 +4622,7 @@ static void UNSIGNED_LELong128VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { LongVector av = LongVector.fromArray(SPECIES, a, i); LongVector bv = LongVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4339,7 +4633,7 @@ static void UNSIGNED_LELong128VectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "longCompareOpProvider") - static void UNSIGNED_GELong128VectorTests(IntFunction fa, IntFunction fb) { + static void UGELong128VectorTests(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4347,7 +4641,7 @@ static void UNSIGNED_GELong128VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GE, bv); + VectorMask mv = av.compare(VectorOperators.UGE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4358,7 +4652,7 @@ static void UNSIGNED_GELong128VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGELong128VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4370,7 +4664,7 @@ static void UNSIGNED_GELong128VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { LongVector av = LongVector.fromArray(SPECIES, a, i); LongVector bv = LongVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { diff --git a/test/jdk/jdk/incubator/vector/Long256VectorTests.java b/test/jdk/jdk/incubator/vector/Long256VectorTests.java index 299b7007ba5..1fc441680fd 100644 --- a/test/jdk/jdk/incubator/vector/Long256VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Long256VectorTests.java @@ -38,6 +38,7 @@ import jdk.incubator.vector.VectorMask; import jdk.incubator.vector.VectorOperators; import jdk.incubator.vector.Vector; +import jdk.incubator.vector.VectorMath; import jdk.incubator.vector.LongVector; @@ -942,6 +943,33 @@ static long bits(long e) { }) ); + static final List> LONG_SATURATING_GENERATORS = List.of( + withToString("long[Long.MIN_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(Long.MIN_VALUE)); + }), + withToString("long[Long.MAX_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(Long.MAX_VALUE)); + }), + withToString("long[Long.MAX_VALUE - 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(Long.MAX_VALUE - 100)); + }), + withToString("long[Long.MIN_VALUE + 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(Long.MIN_VALUE + 100)); + }), + withToString("long[-i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(-i * 5)); + }), + withToString("long[i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(i * 5)); + }) + ); + // Create combinations of pairs // @@@ Might be sensitive to order e.g. div by 0 static final List>> LONG_GENERATOR_PAIRS = @@ -949,6 +977,11 @@ static long bits(long e) { flatMap(fa -> LONG_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). collect(Collectors.toList()); + static final List>> LONG_SATURATING_GENERATOR_PAIRS = + Stream.of(LONG_GENERATORS.get(0)). + flatMap(fa -> LONG_SATURATING_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). + collect(Collectors.toList()); + @DataProvider public Object[][] boolUnaryOpProvider() { return BOOL_ARRAY_GENERATORS.stream(). @@ -979,12 +1012,27 @@ public Object[][] longBinaryOpProvider() { toArray(Object[][]::new); } + @DataProvider + public Object[][] longSaturatingBinaryOpProvider() { + return LONG_SATURATING_GENERATOR_PAIRS.stream().map(List::toArray). + toArray(Object[][]::new); + } + @DataProvider public Object[][] longIndexedOpProvider() { return LONG_GENERATOR_PAIRS.stream().map(List::toArray). toArray(Object[][]::new); } + @DataProvider + public Object[][] longSaturatingBinaryOpMaskProvider() { + return BOOLEAN_MASK_GENERATORS.stream(). + flatMap(fm -> LONG_SATURATING_GENERATOR_PAIRS.stream().map(lfa -> { + return Stream.concat(lfa.stream(), Stream.of(fm)).toArray(); + })). + toArray(Object[][]::new); + } + @DataProvider public Object[][] longBinaryOpMaskProvider() { return BOOLEAN_MASK_GENERATORS.stream(). @@ -3005,6 +3053,252 @@ static void maxLong256VectorTests(IntFunction fa, IntFunction fb assertArraysEquals(r, a, b, Long256VectorTests::max); } + static long UMIN(long a, long b) { + return (long)(VectorMath.minUnsigned(a, b)); + } + + @Test(dataProvider = "longBinaryOpProvider") + static void UMINLong256VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long256VectorTests::UMIN); + } + + @Test(dataProvider = "longBinaryOpMaskProvider") + static void UMINLong256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long256VectorTests::UMIN); + } + + static long UMAX(long a, long b) { + return (long)(VectorMath.maxUnsigned(a, b)); + } + + @Test(dataProvider = "longBinaryOpProvider") + static void UMAXLong256VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long256VectorTests::UMAX); + } + + @Test(dataProvider = "longBinaryOpMaskProvider") + static void UMAXLong256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long256VectorTests::UMAX); + } + + static long SADD(long a, long b) { + return (long)(VectorMath.addSaturating(a, b)); + } + + @Test(dataProvider = "longSaturatingBinaryOpProvider") + static void SADDLong256VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long256VectorTests::SADD); + } + + @Test(dataProvider = "longSaturatingBinaryOpMaskProvider") + static void SADDLong256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long256VectorTests::SADD); + } + + static long SSUB(long a, long b) { + return (long)(VectorMath.subSaturating(a, b)); + } + + @Test(dataProvider = "longSaturatingBinaryOpProvider") + static void SSUBLong256VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long256VectorTests::SSUB); + } + + @Test(dataProvider = "longSaturatingBinaryOpMaskProvider") + static void SSUBLong256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long256VectorTests::SSUB); + } + + static long SUADD(long a, long b) { + return (long)(VectorMath.addSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "longSaturatingBinaryOpProvider") + static void SUADDLong256VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long256VectorTests::SUADD); + } + + @Test(dataProvider = "longSaturatingBinaryOpMaskProvider") + static void SUADDLong256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long256VectorTests::SUADD); + } + + static long SUSUB(long a, long b) { + return (long)(VectorMath.subSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "longSaturatingBinaryOpProvider") + static void SUSUBLong256VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long256VectorTests::SUSUB); + } + + @Test(dataProvider = "longSaturatingBinaryOpMaskProvider") + static void SUSUBLong256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long256VectorTests::SUSUB); + } + @Test(dataProvider = "longBinaryOpProvider") static void MINLong256VectorTestsBroadcastSmokeTest(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); @@ -4213,7 +4507,7 @@ static void GELong256VectorTestsMasked(IntFunction fa, IntFunction fa, IntFunction fb) { + static void ULTLong256VectorTests(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4221,7 +4515,7 @@ static void UNSIGNED_LTLong256VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LT, bv); + VectorMask mv = av.compare(VectorOperators.ULT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4232,7 +4526,7 @@ static void UNSIGNED_LTLong256VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULTLong256VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4244,7 +4538,7 @@ static void UNSIGNED_LTLong256VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { LongVector av = LongVector.fromArray(SPECIES, a, i); LongVector bv = LongVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4255,7 +4549,7 @@ static void UNSIGNED_LTLong256VectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "longCompareOpProvider") - static void UNSIGNED_GTLong256VectorTests(IntFunction fa, IntFunction fb) { + static void UGTLong256VectorTests(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4263,7 +4557,7 @@ static void UNSIGNED_GTLong256VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GT, bv); + VectorMask mv = av.compare(VectorOperators.UGT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4274,7 +4568,7 @@ static void UNSIGNED_GTLong256VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGTLong256VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4286,7 +4580,7 @@ static void UNSIGNED_GTLong256VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { LongVector av = LongVector.fromArray(SPECIES, a, i); LongVector bv = LongVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4297,7 +4591,7 @@ static void UNSIGNED_GTLong256VectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "longCompareOpProvider") - static void UNSIGNED_LELong256VectorTests(IntFunction fa, IntFunction fb) { + static void ULELong256VectorTests(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4305,7 +4599,7 @@ static void UNSIGNED_LELong256VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LE, bv); + VectorMask mv = av.compare(VectorOperators.ULE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4316,7 +4610,7 @@ static void UNSIGNED_LELong256VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULELong256VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4328,7 +4622,7 @@ static void UNSIGNED_LELong256VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { LongVector av = LongVector.fromArray(SPECIES, a, i); LongVector bv = LongVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4339,7 +4633,7 @@ static void UNSIGNED_LELong256VectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "longCompareOpProvider") - static void UNSIGNED_GELong256VectorTests(IntFunction fa, IntFunction fb) { + static void UGELong256VectorTests(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4347,7 +4641,7 @@ static void UNSIGNED_GELong256VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GE, bv); + VectorMask mv = av.compare(VectorOperators.UGE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4358,7 +4652,7 @@ static void UNSIGNED_GELong256VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGELong256VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4370,7 +4664,7 @@ static void UNSIGNED_GELong256VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { LongVector av = LongVector.fromArray(SPECIES, a, i); LongVector bv = LongVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { diff --git a/test/jdk/jdk/incubator/vector/Long512VectorTests.java b/test/jdk/jdk/incubator/vector/Long512VectorTests.java index e6eafa02ed0..81d538a55c4 100644 --- a/test/jdk/jdk/incubator/vector/Long512VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Long512VectorTests.java @@ -38,6 +38,7 @@ import jdk.incubator.vector.VectorMask; import jdk.incubator.vector.VectorOperators; import jdk.incubator.vector.Vector; +import jdk.incubator.vector.VectorMath; import jdk.incubator.vector.LongVector; @@ -942,6 +943,33 @@ static long bits(long e) { }) ); + static final List> LONG_SATURATING_GENERATORS = List.of( + withToString("long[Long.MIN_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(Long.MIN_VALUE)); + }), + withToString("long[Long.MAX_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(Long.MAX_VALUE)); + }), + withToString("long[Long.MAX_VALUE - 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(Long.MAX_VALUE - 100)); + }), + withToString("long[Long.MIN_VALUE + 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(Long.MIN_VALUE + 100)); + }), + withToString("long[-i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(-i * 5)); + }), + withToString("long[i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(i * 5)); + }) + ); + // Create combinations of pairs // @@@ Might be sensitive to order e.g. div by 0 static final List>> LONG_GENERATOR_PAIRS = @@ -949,6 +977,11 @@ static long bits(long e) { flatMap(fa -> LONG_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). collect(Collectors.toList()); + static final List>> LONG_SATURATING_GENERATOR_PAIRS = + Stream.of(LONG_GENERATORS.get(0)). + flatMap(fa -> LONG_SATURATING_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). + collect(Collectors.toList()); + @DataProvider public Object[][] boolUnaryOpProvider() { return BOOL_ARRAY_GENERATORS.stream(). @@ -979,12 +1012,27 @@ public Object[][] longBinaryOpProvider() { toArray(Object[][]::new); } + @DataProvider + public Object[][] longSaturatingBinaryOpProvider() { + return LONG_SATURATING_GENERATOR_PAIRS.stream().map(List::toArray). + toArray(Object[][]::new); + } + @DataProvider public Object[][] longIndexedOpProvider() { return LONG_GENERATOR_PAIRS.stream().map(List::toArray). toArray(Object[][]::new); } + @DataProvider + public Object[][] longSaturatingBinaryOpMaskProvider() { + return BOOLEAN_MASK_GENERATORS.stream(). + flatMap(fm -> LONG_SATURATING_GENERATOR_PAIRS.stream().map(lfa -> { + return Stream.concat(lfa.stream(), Stream.of(fm)).toArray(); + })). + toArray(Object[][]::new); + } + @DataProvider public Object[][] longBinaryOpMaskProvider() { return BOOLEAN_MASK_GENERATORS.stream(). @@ -3005,6 +3053,252 @@ static void maxLong512VectorTests(IntFunction fa, IntFunction fb assertArraysEquals(r, a, b, Long512VectorTests::max); } + static long UMIN(long a, long b) { + return (long)(VectorMath.minUnsigned(a, b)); + } + + @Test(dataProvider = "longBinaryOpProvider") + static void UMINLong512VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long512VectorTests::UMIN); + } + + @Test(dataProvider = "longBinaryOpMaskProvider") + static void UMINLong512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long512VectorTests::UMIN); + } + + static long UMAX(long a, long b) { + return (long)(VectorMath.maxUnsigned(a, b)); + } + + @Test(dataProvider = "longBinaryOpProvider") + static void UMAXLong512VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long512VectorTests::UMAX); + } + + @Test(dataProvider = "longBinaryOpMaskProvider") + static void UMAXLong512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long512VectorTests::UMAX); + } + + static long SADD(long a, long b) { + return (long)(VectorMath.addSaturating(a, b)); + } + + @Test(dataProvider = "longSaturatingBinaryOpProvider") + static void SADDLong512VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long512VectorTests::SADD); + } + + @Test(dataProvider = "longSaturatingBinaryOpMaskProvider") + static void SADDLong512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long512VectorTests::SADD); + } + + static long SSUB(long a, long b) { + return (long)(VectorMath.subSaturating(a, b)); + } + + @Test(dataProvider = "longSaturatingBinaryOpProvider") + static void SSUBLong512VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long512VectorTests::SSUB); + } + + @Test(dataProvider = "longSaturatingBinaryOpMaskProvider") + static void SSUBLong512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long512VectorTests::SSUB); + } + + static long SUADD(long a, long b) { + return (long)(VectorMath.addSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "longSaturatingBinaryOpProvider") + static void SUADDLong512VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long512VectorTests::SUADD); + } + + @Test(dataProvider = "longSaturatingBinaryOpMaskProvider") + static void SUADDLong512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long512VectorTests::SUADD); + } + + static long SUSUB(long a, long b) { + return (long)(VectorMath.subSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "longSaturatingBinaryOpProvider") + static void SUSUBLong512VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long512VectorTests::SUSUB); + } + + @Test(dataProvider = "longSaturatingBinaryOpMaskProvider") + static void SUSUBLong512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long512VectorTests::SUSUB); + } + @Test(dataProvider = "longBinaryOpProvider") static void MINLong512VectorTestsBroadcastSmokeTest(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); @@ -4213,7 +4507,7 @@ static void GELong512VectorTestsMasked(IntFunction fa, IntFunction fa, IntFunction fb) { + static void ULTLong512VectorTests(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4221,7 +4515,7 @@ static void UNSIGNED_LTLong512VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LT, bv); + VectorMask mv = av.compare(VectorOperators.ULT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4232,7 +4526,7 @@ static void UNSIGNED_LTLong512VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULTLong512VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4244,7 +4538,7 @@ static void UNSIGNED_LTLong512VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { LongVector av = LongVector.fromArray(SPECIES, a, i); LongVector bv = LongVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4255,7 +4549,7 @@ static void UNSIGNED_LTLong512VectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "longCompareOpProvider") - static void UNSIGNED_GTLong512VectorTests(IntFunction fa, IntFunction fb) { + static void UGTLong512VectorTests(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4263,7 +4557,7 @@ static void UNSIGNED_GTLong512VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GT, bv); + VectorMask mv = av.compare(VectorOperators.UGT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4274,7 +4568,7 @@ static void UNSIGNED_GTLong512VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGTLong512VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4286,7 +4580,7 @@ static void UNSIGNED_GTLong512VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { LongVector av = LongVector.fromArray(SPECIES, a, i); LongVector bv = LongVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4297,7 +4591,7 @@ static void UNSIGNED_GTLong512VectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "longCompareOpProvider") - static void UNSIGNED_LELong512VectorTests(IntFunction fa, IntFunction fb) { + static void ULELong512VectorTests(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4305,7 +4599,7 @@ static void UNSIGNED_LELong512VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LE, bv); + VectorMask mv = av.compare(VectorOperators.ULE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4316,7 +4610,7 @@ static void UNSIGNED_LELong512VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULELong512VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4328,7 +4622,7 @@ static void UNSIGNED_LELong512VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { LongVector av = LongVector.fromArray(SPECIES, a, i); LongVector bv = LongVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4339,7 +4633,7 @@ static void UNSIGNED_LELong512VectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "longCompareOpProvider") - static void UNSIGNED_GELong512VectorTests(IntFunction fa, IntFunction fb) { + static void UGELong512VectorTests(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4347,7 +4641,7 @@ static void UNSIGNED_GELong512VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GE, bv); + VectorMask mv = av.compare(VectorOperators.UGE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4358,7 +4652,7 @@ static void UNSIGNED_GELong512VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGELong512VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4370,7 +4664,7 @@ static void UNSIGNED_GELong512VectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { LongVector av = LongVector.fromArray(SPECIES, a, i); LongVector bv = LongVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { diff --git a/test/jdk/jdk/incubator/vector/Long64VectorTests.java b/test/jdk/jdk/incubator/vector/Long64VectorTests.java index 035db048eb8..1d85fc510d9 100644 --- a/test/jdk/jdk/incubator/vector/Long64VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Long64VectorTests.java @@ -38,6 +38,7 @@ import jdk.incubator.vector.VectorMask; import jdk.incubator.vector.VectorOperators; import jdk.incubator.vector.Vector; +import jdk.incubator.vector.VectorMath; import jdk.incubator.vector.LongVector; @@ -942,6 +943,33 @@ static long bits(long e) { }) ); + static final List> LONG_SATURATING_GENERATORS = List.of( + withToString("long[Long.MIN_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(Long.MIN_VALUE)); + }), + withToString("long[Long.MAX_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(Long.MAX_VALUE)); + }), + withToString("long[Long.MAX_VALUE - 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(Long.MAX_VALUE - 100)); + }), + withToString("long[Long.MIN_VALUE + 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(Long.MIN_VALUE + 100)); + }), + withToString("long[-i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(-i * 5)); + }), + withToString("long[i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(i * 5)); + }) + ); + // Create combinations of pairs // @@@ Might be sensitive to order e.g. div by 0 static final List>> LONG_GENERATOR_PAIRS = @@ -949,6 +977,11 @@ static long bits(long e) { flatMap(fa -> LONG_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). collect(Collectors.toList()); + static final List>> LONG_SATURATING_GENERATOR_PAIRS = + Stream.of(LONG_GENERATORS.get(0)). + flatMap(fa -> LONG_SATURATING_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). + collect(Collectors.toList()); + @DataProvider public Object[][] boolUnaryOpProvider() { return BOOL_ARRAY_GENERATORS.stream(). @@ -979,12 +1012,27 @@ public Object[][] longBinaryOpProvider() { toArray(Object[][]::new); } + @DataProvider + public Object[][] longSaturatingBinaryOpProvider() { + return LONG_SATURATING_GENERATOR_PAIRS.stream().map(List::toArray). + toArray(Object[][]::new); + } + @DataProvider public Object[][] longIndexedOpProvider() { return LONG_GENERATOR_PAIRS.stream().map(List::toArray). toArray(Object[][]::new); } + @DataProvider + public Object[][] longSaturatingBinaryOpMaskProvider() { + return BOOLEAN_MASK_GENERATORS.stream(). + flatMap(fm -> LONG_SATURATING_GENERATOR_PAIRS.stream().map(lfa -> { + return Stream.concat(lfa.stream(), Stream.of(fm)).toArray(); + })). + toArray(Object[][]::new); + } + @DataProvider public Object[][] longBinaryOpMaskProvider() { return BOOLEAN_MASK_GENERATORS.stream(). @@ -3005,6 +3053,252 @@ static void maxLong64VectorTests(IntFunction fa, IntFunction fb) assertArraysEquals(r, a, b, Long64VectorTests::max); } + static long UMIN(long a, long b) { + return (long)(VectorMath.minUnsigned(a, b)); + } + + @Test(dataProvider = "longBinaryOpProvider") + static void UMINLong64VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long64VectorTests::UMIN); + } + + @Test(dataProvider = "longBinaryOpMaskProvider") + static void UMINLong64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long64VectorTests::UMIN); + } + + static long UMAX(long a, long b) { + return (long)(VectorMath.maxUnsigned(a, b)); + } + + @Test(dataProvider = "longBinaryOpProvider") + static void UMAXLong64VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long64VectorTests::UMAX); + } + + @Test(dataProvider = "longBinaryOpMaskProvider") + static void UMAXLong64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long64VectorTests::UMAX); + } + + static long SADD(long a, long b) { + return (long)(VectorMath.addSaturating(a, b)); + } + + @Test(dataProvider = "longSaturatingBinaryOpProvider") + static void SADDLong64VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long64VectorTests::SADD); + } + + @Test(dataProvider = "longSaturatingBinaryOpMaskProvider") + static void SADDLong64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long64VectorTests::SADD); + } + + static long SSUB(long a, long b) { + return (long)(VectorMath.subSaturating(a, b)); + } + + @Test(dataProvider = "longSaturatingBinaryOpProvider") + static void SSUBLong64VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long64VectorTests::SSUB); + } + + @Test(dataProvider = "longSaturatingBinaryOpMaskProvider") + static void SSUBLong64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long64VectorTests::SSUB); + } + + static long SUADD(long a, long b) { + return (long)(VectorMath.addSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "longSaturatingBinaryOpProvider") + static void SUADDLong64VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long64VectorTests::SUADD); + } + + @Test(dataProvider = "longSaturatingBinaryOpMaskProvider") + static void SUADDLong64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long64VectorTests::SUADD); + } + + static long SUSUB(long a, long b) { + return (long)(VectorMath.subSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "longSaturatingBinaryOpProvider") + static void SUSUBLong64VectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Long64VectorTests::SUSUB); + } + + @Test(dataProvider = "longSaturatingBinaryOpMaskProvider") + static void SUSUBLong64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Long64VectorTests::SUSUB); + } + @Test(dataProvider = "longBinaryOpProvider") static void MINLong64VectorTestsBroadcastSmokeTest(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); @@ -4213,7 +4507,7 @@ static void GELong64VectorTestsMasked(IntFunction fa, IntFunction fa, IntFunction fb) { + static void ULTLong64VectorTests(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4221,7 +4515,7 @@ static void UNSIGNED_LTLong64VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LT, bv); + VectorMask mv = av.compare(VectorOperators.ULT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4232,7 +4526,7 @@ static void UNSIGNED_LTLong64VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULTLong64VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4244,7 +4538,7 @@ static void UNSIGNED_LTLong64VectorTestsMasked(IntFunction fa, IntFuncti for (int i = 0; i < a.length; i += SPECIES.length()) { LongVector av = LongVector.fromArray(SPECIES, a, i); LongVector bv = LongVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4255,7 +4549,7 @@ static void UNSIGNED_LTLong64VectorTestsMasked(IntFunction fa, IntFuncti } @Test(dataProvider = "longCompareOpProvider") - static void UNSIGNED_GTLong64VectorTests(IntFunction fa, IntFunction fb) { + static void UGTLong64VectorTests(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4263,7 +4557,7 @@ static void UNSIGNED_GTLong64VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GT, bv); + VectorMask mv = av.compare(VectorOperators.UGT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4274,7 +4568,7 @@ static void UNSIGNED_GTLong64VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGTLong64VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4286,7 +4580,7 @@ static void UNSIGNED_GTLong64VectorTestsMasked(IntFunction fa, IntFuncti for (int i = 0; i < a.length; i += SPECIES.length()) { LongVector av = LongVector.fromArray(SPECIES, a, i); LongVector bv = LongVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4297,7 +4591,7 @@ static void UNSIGNED_GTLong64VectorTestsMasked(IntFunction fa, IntFuncti } @Test(dataProvider = "longCompareOpProvider") - static void UNSIGNED_LELong64VectorTests(IntFunction fa, IntFunction fb) { + static void ULELong64VectorTests(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4305,7 +4599,7 @@ static void UNSIGNED_LELong64VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LE, bv); + VectorMask mv = av.compare(VectorOperators.ULE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4316,7 +4610,7 @@ static void UNSIGNED_LELong64VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULELong64VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4328,7 +4622,7 @@ static void UNSIGNED_LELong64VectorTestsMasked(IntFunction fa, IntFuncti for (int i = 0; i < a.length; i += SPECIES.length()) { LongVector av = LongVector.fromArray(SPECIES, a, i); LongVector bv = LongVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4339,7 +4633,7 @@ static void UNSIGNED_LELong64VectorTestsMasked(IntFunction fa, IntFuncti } @Test(dataProvider = "longCompareOpProvider") - static void UNSIGNED_GELong64VectorTests(IntFunction fa, IntFunction fb) { + static void UGELong64VectorTests(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4347,7 +4641,7 @@ static void UNSIGNED_GELong64VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GE, bv); + VectorMask mv = av.compare(VectorOperators.UGE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4358,7 +4652,7 @@ static void UNSIGNED_GELong64VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGELong64VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4370,7 +4664,7 @@ static void UNSIGNED_GELong64VectorTestsMasked(IntFunction fa, IntFuncti for (int i = 0; i < a.length; i += SPECIES.length()) { LongVector av = LongVector.fromArray(SPECIES, a, i); LongVector bv = LongVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { diff --git a/test/jdk/jdk/incubator/vector/LongMaxVectorTests.java b/test/jdk/jdk/incubator/vector/LongMaxVectorTests.java index 68ea78db4f0..bae5b968d79 100644 --- a/test/jdk/jdk/incubator/vector/LongMaxVectorTests.java +++ b/test/jdk/jdk/incubator/vector/LongMaxVectorTests.java @@ -38,6 +38,7 @@ import jdk.incubator.vector.VectorMask; import jdk.incubator.vector.VectorOperators; import jdk.incubator.vector.Vector; +import jdk.incubator.vector.VectorMath; import jdk.incubator.vector.LongVector; @@ -947,6 +948,33 @@ static long bits(long e) { }) ); + static final List> LONG_SATURATING_GENERATORS = List.of( + withToString("long[Long.MIN_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(Long.MIN_VALUE)); + }), + withToString("long[Long.MAX_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(Long.MAX_VALUE)); + }), + withToString("long[Long.MAX_VALUE - 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(Long.MAX_VALUE - 100)); + }), + withToString("long[Long.MIN_VALUE + 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(Long.MIN_VALUE + 100)); + }), + withToString("long[-i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(-i * 5)); + }), + withToString("long[i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (long)(i * 5)); + }) + ); + // Create combinations of pairs // @@@ Might be sensitive to order e.g. div by 0 static final List>> LONG_GENERATOR_PAIRS = @@ -954,6 +982,11 @@ static long bits(long e) { flatMap(fa -> LONG_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). collect(Collectors.toList()); + static final List>> LONG_SATURATING_GENERATOR_PAIRS = + Stream.of(LONG_GENERATORS.get(0)). + flatMap(fa -> LONG_SATURATING_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). + collect(Collectors.toList()); + @DataProvider public Object[][] boolUnaryOpProvider() { return BOOL_ARRAY_GENERATORS.stream(). @@ -984,12 +1017,27 @@ public Object[][] longBinaryOpProvider() { toArray(Object[][]::new); } + @DataProvider + public Object[][] longSaturatingBinaryOpProvider() { + return LONG_SATURATING_GENERATOR_PAIRS.stream().map(List::toArray). + toArray(Object[][]::new); + } + @DataProvider public Object[][] longIndexedOpProvider() { return LONG_GENERATOR_PAIRS.stream().map(List::toArray). toArray(Object[][]::new); } + @DataProvider + public Object[][] longSaturatingBinaryOpMaskProvider() { + return BOOLEAN_MASK_GENERATORS.stream(). + flatMap(fm -> LONG_SATURATING_GENERATOR_PAIRS.stream().map(lfa -> { + return Stream.concat(lfa.stream(), Stream.of(fm)).toArray(); + })). + toArray(Object[][]::new); + } + @DataProvider public Object[][] longBinaryOpMaskProvider() { return BOOLEAN_MASK_GENERATORS.stream(). @@ -3010,6 +3058,252 @@ static void maxLongMaxVectorTests(IntFunction fa, IntFunction fb assertArraysEquals(r, a, b, LongMaxVectorTests::max); } + static long UMIN(long a, long b) { + return (long)(VectorMath.minUnsigned(a, b)); + } + + @Test(dataProvider = "longBinaryOpProvider") + static void UMINLongMaxVectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, LongMaxVectorTests::UMIN); + } + + @Test(dataProvider = "longBinaryOpMaskProvider") + static void UMINLongMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, LongMaxVectorTests::UMIN); + } + + static long UMAX(long a, long b) { + return (long)(VectorMath.maxUnsigned(a, b)); + } + + @Test(dataProvider = "longBinaryOpProvider") + static void UMAXLongMaxVectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, LongMaxVectorTests::UMAX); + } + + @Test(dataProvider = "longBinaryOpMaskProvider") + static void UMAXLongMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, LongMaxVectorTests::UMAX); + } + + static long SADD(long a, long b) { + return (long)(VectorMath.addSaturating(a, b)); + } + + @Test(dataProvider = "longSaturatingBinaryOpProvider") + static void SADDLongMaxVectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, LongMaxVectorTests::SADD); + } + + @Test(dataProvider = "longSaturatingBinaryOpMaskProvider") + static void SADDLongMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, LongMaxVectorTests::SADD); + } + + static long SSUB(long a, long b) { + return (long)(VectorMath.subSaturating(a, b)); + } + + @Test(dataProvider = "longSaturatingBinaryOpProvider") + static void SSUBLongMaxVectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, LongMaxVectorTests::SSUB); + } + + @Test(dataProvider = "longSaturatingBinaryOpMaskProvider") + static void SSUBLongMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, LongMaxVectorTests::SSUB); + } + + static long SUADD(long a, long b) { + return (long)(VectorMath.addSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "longSaturatingBinaryOpProvider") + static void SUADDLongMaxVectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, LongMaxVectorTests::SUADD); + } + + @Test(dataProvider = "longSaturatingBinaryOpMaskProvider") + static void SUADDLongMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, LongMaxVectorTests::SUADD); + } + + static long SUSUB(long a, long b) { + return (long)(VectorMath.subSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "longSaturatingBinaryOpProvider") + static void SUSUBLongMaxVectorTests(IntFunction fa, IntFunction fb) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, LongMaxVectorTests::SUSUB); + } + + @Test(dataProvider = "longSaturatingBinaryOpMaskProvider") + static void SUSUBLongMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + long[] a = fa.apply(SPECIES.length()); + long[] b = fb.apply(SPECIES.length()); + long[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + LongVector av = LongVector.fromArray(SPECIES, a, i); + LongVector bv = LongVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, LongMaxVectorTests::SUSUB); + } + @Test(dataProvider = "longBinaryOpProvider") static void MINLongMaxVectorTestsBroadcastSmokeTest(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); @@ -4218,7 +4512,7 @@ static void GELongMaxVectorTestsMasked(IntFunction fa, IntFunction fa, IntFunction fb) { + static void ULTLongMaxVectorTests(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4226,7 +4520,7 @@ static void UNSIGNED_LTLongMaxVectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LT, bv); + VectorMask mv = av.compare(VectorOperators.ULT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4237,7 +4531,7 @@ static void UNSIGNED_LTLongMaxVectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULTLongMaxVectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4249,7 +4543,7 @@ static void UNSIGNED_LTLongMaxVectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { LongVector av = LongVector.fromArray(SPECIES, a, i); LongVector bv = LongVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4260,7 +4554,7 @@ static void UNSIGNED_LTLongMaxVectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "longCompareOpProvider") - static void UNSIGNED_GTLongMaxVectorTests(IntFunction fa, IntFunction fb) { + static void UGTLongMaxVectorTests(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4268,7 +4562,7 @@ static void UNSIGNED_GTLongMaxVectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GT, bv); + VectorMask mv = av.compare(VectorOperators.UGT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4279,7 +4573,7 @@ static void UNSIGNED_GTLongMaxVectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGTLongMaxVectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4291,7 +4585,7 @@ static void UNSIGNED_GTLongMaxVectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { LongVector av = LongVector.fromArray(SPECIES, a, i); LongVector bv = LongVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4302,7 +4596,7 @@ static void UNSIGNED_GTLongMaxVectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "longCompareOpProvider") - static void UNSIGNED_LELongMaxVectorTests(IntFunction fa, IntFunction fb) { + static void ULELongMaxVectorTests(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4310,7 +4604,7 @@ static void UNSIGNED_LELongMaxVectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LE, bv); + VectorMask mv = av.compare(VectorOperators.ULE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4321,7 +4615,7 @@ static void UNSIGNED_LELongMaxVectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULELongMaxVectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4333,7 +4627,7 @@ static void UNSIGNED_LELongMaxVectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { LongVector av = LongVector.fromArray(SPECIES, a, i); LongVector bv = LongVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4344,7 +4638,7 @@ static void UNSIGNED_LELongMaxVectorTestsMasked(IntFunction fa, IntFunct } @Test(dataProvider = "longCompareOpProvider") - static void UNSIGNED_GELongMaxVectorTests(IntFunction fa, IntFunction fb) { + static void UGELongMaxVectorTests(IntFunction fa, IntFunction fb) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4352,7 +4646,7 @@ static void UNSIGNED_GELongMaxVectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GE, bv); + VectorMask mv = av.compare(VectorOperators.UGE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4363,7 +4657,7 @@ static void UNSIGNED_GELongMaxVectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGELongMaxVectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { long[] a = fa.apply(SPECIES.length()); long[] b = fb.apply(SPECIES.length()); @@ -4375,7 +4669,7 @@ static void UNSIGNED_GELongMaxVectorTestsMasked(IntFunction fa, IntFunct for (int i = 0; i < a.length; i += SPECIES.length()) { LongVector av = LongVector.fromArray(SPECIES, a, i); LongVector bv = LongVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { diff --git a/test/jdk/jdk/incubator/vector/Short128VectorTests.java b/test/jdk/jdk/incubator/vector/Short128VectorTests.java index 2103be0994c..2d6a1fd0a5f 100644 --- a/test/jdk/jdk/incubator/vector/Short128VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Short128VectorTests.java @@ -38,6 +38,7 @@ import jdk.incubator.vector.VectorMask; import jdk.incubator.vector.VectorOperators; import jdk.incubator.vector.Vector; +import jdk.incubator.vector.VectorMath; import jdk.incubator.vector.ShortVector; @@ -952,6 +953,33 @@ static short bits(short e) { }) ); + static final List> SHORT_SATURATING_GENERATORS = List.of( + withToString("short[Short.MIN_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(Short.MIN_VALUE)); + }), + withToString("short[Short.MAX_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(Short.MAX_VALUE)); + }), + withToString("short[Short.MAX_VALUE - 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(Short.MAX_VALUE - 100)); + }), + withToString("short[Short.MIN_VALUE + 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(Short.MIN_VALUE + 100)); + }), + withToString("short[-i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(-i * 5)); + }), + withToString("short[i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(i * 5)); + }) + ); + // Create combinations of pairs // @@@ Might be sensitive to order e.g. div by 0 static final List>> SHORT_GENERATOR_PAIRS = @@ -959,6 +987,11 @@ static short bits(short e) { flatMap(fa -> SHORT_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). collect(Collectors.toList()); + static final List>> SHORT_SATURATING_GENERATOR_PAIRS = + Stream.of(SHORT_GENERATORS.get(0)). + flatMap(fa -> SHORT_SATURATING_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). + collect(Collectors.toList()); + @DataProvider public Object[][] boolUnaryOpProvider() { return BOOL_ARRAY_GENERATORS.stream(). @@ -989,12 +1022,27 @@ public Object[][] shortBinaryOpProvider() { toArray(Object[][]::new); } + @DataProvider + public Object[][] shortSaturatingBinaryOpProvider() { + return SHORT_SATURATING_GENERATOR_PAIRS.stream().map(List::toArray). + toArray(Object[][]::new); + } + @DataProvider public Object[][] shortIndexedOpProvider() { return SHORT_GENERATOR_PAIRS.stream().map(List::toArray). toArray(Object[][]::new); } + @DataProvider + public Object[][] shortSaturatingBinaryOpMaskProvider() { + return BOOLEAN_MASK_GENERATORS.stream(). + flatMap(fm -> SHORT_SATURATING_GENERATOR_PAIRS.stream().map(lfa -> { + return Stream.concat(lfa.stream(), Stream.of(fm)).toArray(); + })). + toArray(Object[][]::new); + } + @DataProvider public Object[][] shortBinaryOpMaskProvider() { return BOOLEAN_MASK_GENERATORS.stream(). @@ -2930,6 +2978,252 @@ static void maxShort128VectorTests(IntFunction fa, IntFunction assertArraysEquals(r, a, b, Short128VectorTests::max); } + static short UMIN(short a, short b) { + return (short)(VectorMath.minUnsigned(a, b)); + } + + @Test(dataProvider = "shortBinaryOpProvider") + static void UMINShort128VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short128VectorTests::UMIN); + } + + @Test(dataProvider = "shortBinaryOpMaskProvider") + static void UMINShort128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short128VectorTests::UMIN); + } + + static short UMAX(short a, short b) { + return (short)(VectorMath.maxUnsigned(a, b)); + } + + @Test(dataProvider = "shortBinaryOpProvider") + static void UMAXShort128VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short128VectorTests::UMAX); + } + + @Test(dataProvider = "shortBinaryOpMaskProvider") + static void UMAXShort128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short128VectorTests::UMAX); + } + + static short SADD(short a, short b) { + return (short)(VectorMath.addSaturating(a, b)); + } + + @Test(dataProvider = "shortSaturatingBinaryOpProvider") + static void SADDShort128VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short128VectorTests::SADD); + } + + @Test(dataProvider = "shortSaturatingBinaryOpMaskProvider") + static void SADDShort128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short128VectorTests::SADD); + } + + static short SSUB(short a, short b) { + return (short)(VectorMath.subSaturating(a, b)); + } + + @Test(dataProvider = "shortSaturatingBinaryOpProvider") + static void SSUBShort128VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short128VectorTests::SSUB); + } + + @Test(dataProvider = "shortSaturatingBinaryOpMaskProvider") + static void SSUBShort128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short128VectorTests::SSUB); + } + + static short SUADD(short a, short b) { + return (short)(VectorMath.addSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "shortSaturatingBinaryOpProvider") + static void SUADDShort128VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short128VectorTests::SUADD); + } + + @Test(dataProvider = "shortSaturatingBinaryOpMaskProvider") + static void SUADDShort128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short128VectorTests::SUADD); + } + + static short SUSUB(short a, short b) { + return (short)(VectorMath.subSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "shortSaturatingBinaryOpProvider") + static void SUSUBShort128VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short128VectorTests::SUSUB); + } + + @Test(dataProvider = "shortSaturatingBinaryOpMaskProvider") + static void SUSUBShort128VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short128VectorTests::SUSUB); + } + @Test(dataProvider = "shortBinaryOpProvider") static void MINShort128VectorTestsBroadcastSmokeTest(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); @@ -4138,7 +4432,7 @@ static void GEShort128VectorTestsMasked(IntFunction fa, IntFunction fa, IntFunction fb) { + static void ULTShort128VectorTests(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4146,7 +4440,7 @@ static void UNSIGNED_LTShort128VectorTests(IntFunction fa, IntFunction< for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv); + VectorMask mv = av.compare(VectorOperators.ULT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4157,7 +4451,7 @@ static void UNSIGNED_LTShort128VectorTests(IntFunction fa, IntFunction< } @Test(dataProvider = "shortCompareOpMaskProvider") - static void UNSIGNED_LTShort128VectorTestsMasked(IntFunction fa, IntFunction fb, + static void ULTShort128VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4169,7 +4463,7 @@ static void UNSIGNED_LTShort128VectorTestsMasked(IntFunction fa, IntFun for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4180,7 +4474,7 @@ static void UNSIGNED_LTShort128VectorTestsMasked(IntFunction fa, IntFun } @Test(dataProvider = "shortCompareOpProvider") - static void UNSIGNED_GTShort128VectorTests(IntFunction fa, IntFunction fb) { + static void UGTShort128VectorTests(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4188,7 +4482,7 @@ static void UNSIGNED_GTShort128VectorTests(IntFunction fa, IntFunction< for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv); + VectorMask mv = av.compare(VectorOperators.UGT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4199,7 +4493,7 @@ static void UNSIGNED_GTShort128VectorTests(IntFunction fa, IntFunction< } @Test(dataProvider = "shortCompareOpMaskProvider") - static void UNSIGNED_GTShort128VectorTestsMasked(IntFunction fa, IntFunction fb, + static void UGTShort128VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4211,7 +4505,7 @@ static void UNSIGNED_GTShort128VectorTestsMasked(IntFunction fa, IntFun for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4222,7 +4516,7 @@ static void UNSIGNED_GTShort128VectorTestsMasked(IntFunction fa, IntFun } @Test(dataProvider = "shortCompareOpProvider") - static void UNSIGNED_LEShort128VectorTests(IntFunction fa, IntFunction fb) { + static void ULEShort128VectorTests(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4230,7 +4524,7 @@ static void UNSIGNED_LEShort128VectorTests(IntFunction fa, IntFunction< for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv); + VectorMask mv = av.compare(VectorOperators.ULE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4241,7 +4535,7 @@ static void UNSIGNED_LEShort128VectorTests(IntFunction fa, IntFunction< } @Test(dataProvider = "shortCompareOpMaskProvider") - static void UNSIGNED_LEShort128VectorTestsMasked(IntFunction fa, IntFunction fb, + static void ULEShort128VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4253,7 +4547,7 @@ static void UNSIGNED_LEShort128VectorTestsMasked(IntFunction fa, IntFun for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4264,7 +4558,7 @@ static void UNSIGNED_LEShort128VectorTestsMasked(IntFunction fa, IntFun } @Test(dataProvider = "shortCompareOpProvider") - static void UNSIGNED_GEShort128VectorTests(IntFunction fa, IntFunction fb) { + static void UGEShort128VectorTests(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4272,7 +4566,7 @@ static void UNSIGNED_GEShort128VectorTests(IntFunction fa, IntFunction< for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv); + VectorMask mv = av.compare(VectorOperators.UGE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4283,7 +4577,7 @@ static void UNSIGNED_GEShort128VectorTests(IntFunction fa, IntFunction< } @Test(dataProvider = "shortCompareOpMaskProvider") - static void UNSIGNED_GEShort128VectorTestsMasked(IntFunction fa, IntFunction fb, + static void UGEShort128VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4295,7 +4589,7 @@ static void UNSIGNED_GEShort128VectorTestsMasked(IntFunction fa, IntFun for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { diff --git a/test/jdk/jdk/incubator/vector/Short256VectorTests.java b/test/jdk/jdk/incubator/vector/Short256VectorTests.java index feed6bbe5f3..fa8ec1f31b6 100644 --- a/test/jdk/jdk/incubator/vector/Short256VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Short256VectorTests.java @@ -38,6 +38,7 @@ import jdk.incubator.vector.VectorMask; import jdk.incubator.vector.VectorOperators; import jdk.incubator.vector.Vector; +import jdk.incubator.vector.VectorMath; import jdk.incubator.vector.ShortVector; @@ -952,6 +953,33 @@ static short bits(short e) { }) ); + static final List> SHORT_SATURATING_GENERATORS = List.of( + withToString("short[Short.MIN_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(Short.MIN_VALUE)); + }), + withToString("short[Short.MAX_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(Short.MAX_VALUE)); + }), + withToString("short[Short.MAX_VALUE - 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(Short.MAX_VALUE - 100)); + }), + withToString("short[Short.MIN_VALUE + 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(Short.MIN_VALUE + 100)); + }), + withToString("short[-i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(-i * 5)); + }), + withToString("short[i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(i * 5)); + }) + ); + // Create combinations of pairs // @@@ Might be sensitive to order e.g. div by 0 static final List>> SHORT_GENERATOR_PAIRS = @@ -959,6 +987,11 @@ static short bits(short e) { flatMap(fa -> SHORT_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). collect(Collectors.toList()); + static final List>> SHORT_SATURATING_GENERATOR_PAIRS = + Stream.of(SHORT_GENERATORS.get(0)). + flatMap(fa -> SHORT_SATURATING_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). + collect(Collectors.toList()); + @DataProvider public Object[][] boolUnaryOpProvider() { return BOOL_ARRAY_GENERATORS.stream(). @@ -989,12 +1022,27 @@ public Object[][] shortBinaryOpProvider() { toArray(Object[][]::new); } + @DataProvider + public Object[][] shortSaturatingBinaryOpProvider() { + return SHORT_SATURATING_GENERATOR_PAIRS.stream().map(List::toArray). + toArray(Object[][]::new); + } + @DataProvider public Object[][] shortIndexedOpProvider() { return SHORT_GENERATOR_PAIRS.stream().map(List::toArray). toArray(Object[][]::new); } + @DataProvider + public Object[][] shortSaturatingBinaryOpMaskProvider() { + return BOOLEAN_MASK_GENERATORS.stream(). + flatMap(fm -> SHORT_SATURATING_GENERATOR_PAIRS.stream().map(lfa -> { + return Stream.concat(lfa.stream(), Stream.of(fm)).toArray(); + })). + toArray(Object[][]::new); + } + @DataProvider public Object[][] shortBinaryOpMaskProvider() { return BOOLEAN_MASK_GENERATORS.stream(). @@ -2930,6 +2978,252 @@ static void maxShort256VectorTests(IntFunction fa, IntFunction assertArraysEquals(r, a, b, Short256VectorTests::max); } + static short UMIN(short a, short b) { + return (short)(VectorMath.minUnsigned(a, b)); + } + + @Test(dataProvider = "shortBinaryOpProvider") + static void UMINShort256VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short256VectorTests::UMIN); + } + + @Test(dataProvider = "shortBinaryOpMaskProvider") + static void UMINShort256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short256VectorTests::UMIN); + } + + static short UMAX(short a, short b) { + return (short)(VectorMath.maxUnsigned(a, b)); + } + + @Test(dataProvider = "shortBinaryOpProvider") + static void UMAXShort256VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short256VectorTests::UMAX); + } + + @Test(dataProvider = "shortBinaryOpMaskProvider") + static void UMAXShort256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short256VectorTests::UMAX); + } + + static short SADD(short a, short b) { + return (short)(VectorMath.addSaturating(a, b)); + } + + @Test(dataProvider = "shortSaturatingBinaryOpProvider") + static void SADDShort256VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short256VectorTests::SADD); + } + + @Test(dataProvider = "shortSaturatingBinaryOpMaskProvider") + static void SADDShort256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short256VectorTests::SADD); + } + + static short SSUB(short a, short b) { + return (short)(VectorMath.subSaturating(a, b)); + } + + @Test(dataProvider = "shortSaturatingBinaryOpProvider") + static void SSUBShort256VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short256VectorTests::SSUB); + } + + @Test(dataProvider = "shortSaturatingBinaryOpMaskProvider") + static void SSUBShort256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short256VectorTests::SSUB); + } + + static short SUADD(short a, short b) { + return (short)(VectorMath.addSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "shortSaturatingBinaryOpProvider") + static void SUADDShort256VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short256VectorTests::SUADD); + } + + @Test(dataProvider = "shortSaturatingBinaryOpMaskProvider") + static void SUADDShort256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short256VectorTests::SUADD); + } + + static short SUSUB(short a, short b) { + return (short)(VectorMath.subSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "shortSaturatingBinaryOpProvider") + static void SUSUBShort256VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short256VectorTests::SUSUB); + } + + @Test(dataProvider = "shortSaturatingBinaryOpMaskProvider") + static void SUSUBShort256VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short256VectorTests::SUSUB); + } + @Test(dataProvider = "shortBinaryOpProvider") static void MINShort256VectorTestsBroadcastSmokeTest(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); @@ -4138,7 +4432,7 @@ static void GEShort256VectorTestsMasked(IntFunction fa, IntFunction fa, IntFunction fb) { + static void ULTShort256VectorTests(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4146,7 +4440,7 @@ static void UNSIGNED_LTShort256VectorTests(IntFunction fa, IntFunction< for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv); + VectorMask mv = av.compare(VectorOperators.ULT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4157,7 +4451,7 @@ static void UNSIGNED_LTShort256VectorTests(IntFunction fa, IntFunction< } @Test(dataProvider = "shortCompareOpMaskProvider") - static void UNSIGNED_LTShort256VectorTestsMasked(IntFunction fa, IntFunction fb, + static void ULTShort256VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4169,7 +4463,7 @@ static void UNSIGNED_LTShort256VectorTestsMasked(IntFunction fa, IntFun for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4180,7 +4474,7 @@ static void UNSIGNED_LTShort256VectorTestsMasked(IntFunction fa, IntFun } @Test(dataProvider = "shortCompareOpProvider") - static void UNSIGNED_GTShort256VectorTests(IntFunction fa, IntFunction fb) { + static void UGTShort256VectorTests(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4188,7 +4482,7 @@ static void UNSIGNED_GTShort256VectorTests(IntFunction fa, IntFunction< for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv); + VectorMask mv = av.compare(VectorOperators.UGT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4199,7 +4493,7 @@ static void UNSIGNED_GTShort256VectorTests(IntFunction fa, IntFunction< } @Test(dataProvider = "shortCompareOpMaskProvider") - static void UNSIGNED_GTShort256VectorTestsMasked(IntFunction fa, IntFunction fb, + static void UGTShort256VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4211,7 +4505,7 @@ static void UNSIGNED_GTShort256VectorTestsMasked(IntFunction fa, IntFun for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4222,7 +4516,7 @@ static void UNSIGNED_GTShort256VectorTestsMasked(IntFunction fa, IntFun } @Test(dataProvider = "shortCompareOpProvider") - static void UNSIGNED_LEShort256VectorTests(IntFunction fa, IntFunction fb) { + static void ULEShort256VectorTests(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4230,7 +4524,7 @@ static void UNSIGNED_LEShort256VectorTests(IntFunction fa, IntFunction< for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv); + VectorMask mv = av.compare(VectorOperators.ULE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4241,7 +4535,7 @@ static void UNSIGNED_LEShort256VectorTests(IntFunction fa, IntFunction< } @Test(dataProvider = "shortCompareOpMaskProvider") - static void UNSIGNED_LEShort256VectorTestsMasked(IntFunction fa, IntFunction fb, + static void ULEShort256VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4253,7 +4547,7 @@ static void UNSIGNED_LEShort256VectorTestsMasked(IntFunction fa, IntFun for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4264,7 +4558,7 @@ static void UNSIGNED_LEShort256VectorTestsMasked(IntFunction fa, IntFun } @Test(dataProvider = "shortCompareOpProvider") - static void UNSIGNED_GEShort256VectorTests(IntFunction fa, IntFunction fb) { + static void UGEShort256VectorTests(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4272,7 +4566,7 @@ static void UNSIGNED_GEShort256VectorTests(IntFunction fa, IntFunction< for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv); + VectorMask mv = av.compare(VectorOperators.UGE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4283,7 +4577,7 @@ static void UNSIGNED_GEShort256VectorTests(IntFunction fa, IntFunction< } @Test(dataProvider = "shortCompareOpMaskProvider") - static void UNSIGNED_GEShort256VectorTestsMasked(IntFunction fa, IntFunction fb, + static void UGEShort256VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4295,7 +4589,7 @@ static void UNSIGNED_GEShort256VectorTestsMasked(IntFunction fa, IntFun for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { diff --git a/test/jdk/jdk/incubator/vector/Short512VectorTests.java b/test/jdk/jdk/incubator/vector/Short512VectorTests.java index a1a1ac6bc37..ba6a7dadebd 100644 --- a/test/jdk/jdk/incubator/vector/Short512VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Short512VectorTests.java @@ -38,6 +38,7 @@ import jdk.incubator.vector.VectorMask; import jdk.incubator.vector.VectorOperators; import jdk.incubator.vector.Vector; +import jdk.incubator.vector.VectorMath; import jdk.incubator.vector.ShortVector; @@ -952,6 +953,33 @@ static short bits(short e) { }) ); + static final List> SHORT_SATURATING_GENERATORS = List.of( + withToString("short[Short.MIN_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(Short.MIN_VALUE)); + }), + withToString("short[Short.MAX_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(Short.MAX_VALUE)); + }), + withToString("short[Short.MAX_VALUE - 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(Short.MAX_VALUE - 100)); + }), + withToString("short[Short.MIN_VALUE + 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(Short.MIN_VALUE + 100)); + }), + withToString("short[-i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(-i * 5)); + }), + withToString("short[i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(i * 5)); + }) + ); + // Create combinations of pairs // @@@ Might be sensitive to order e.g. div by 0 static final List>> SHORT_GENERATOR_PAIRS = @@ -959,6 +987,11 @@ static short bits(short e) { flatMap(fa -> SHORT_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). collect(Collectors.toList()); + static final List>> SHORT_SATURATING_GENERATOR_PAIRS = + Stream.of(SHORT_GENERATORS.get(0)). + flatMap(fa -> SHORT_SATURATING_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). + collect(Collectors.toList()); + @DataProvider public Object[][] boolUnaryOpProvider() { return BOOL_ARRAY_GENERATORS.stream(). @@ -989,12 +1022,27 @@ public Object[][] shortBinaryOpProvider() { toArray(Object[][]::new); } + @DataProvider + public Object[][] shortSaturatingBinaryOpProvider() { + return SHORT_SATURATING_GENERATOR_PAIRS.stream().map(List::toArray). + toArray(Object[][]::new); + } + @DataProvider public Object[][] shortIndexedOpProvider() { return SHORT_GENERATOR_PAIRS.stream().map(List::toArray). toArray(Object[][]::new); } + @DataProvider + public Object[][] shortSaturatingBinaryOpMaskProvider() { + return BOOLEAN_MASK_GENERATORS.stream(). + flatMap(fm -> SHORT_SATURATING_GENERATOR_PAIRS.stream().map(lfa -> { + return Stream.concat(lfa.stream(), Stream.of(fm)).toArray(); + })). + toArray(Object[][]::new); + } + @DataProvider public Object[][] shortBinaryOpMaskProvider() { return BOOLEAN_MASK_GENERATORS.stream(). @@ -2930,6 +2978,252 @@ static void maxShort512VectorTests(IntFunction fa, IntFunction assertArraysEquals(r, a, b, Short512VectorTests::max); } + static short UMIN(short a, short b) { + return (short)(VectorMath.minUnsigned(a, b)); + } + + @Test(dataProvider = "shortBinaryOpProvider") + static void UMINShort512VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short512VectorTests::UMIN); + } + + @Test(dataProvider = "shortBinaryOpMaskProvider") + static void UMINShort512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short512VectorTests::UMIN); + } + + static short UMAX(short a, short b) { + return (short)(VectorMath.maxUnsigned(a, b)); + } + + @Test(dataProvider = "shortBinaryOpProvider") + static void UMAXShort512VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short512VectorTests::UMAX); + } + + @Test(dataProvider = "shortBinaryOpMaskProvider") + static void UMAXShort512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short512VectorTests::UMAX); + } + + static short SADD(short a, short b) { + return (short)(VectorMath.addSaturating(a, b)); + } + + @Test(dataProvider = "shortSaturatingBinaryOpProvider") + static void SADDShort512VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short512VectorTests::SADD); + } + + @Test(dataProvider = "shortSaturatingBinaryOpMaskProvider") + static void SADDShort512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short512VectorTests::SADD); + } + + static short SSUB(short a, short b) { + return (short)(VectorMath.subSaturating(a, b)); + } + + @Test(dataProvider = "shortSaturatingBinaryOpProvider") + static void SSUBShort512VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short512VectorTests::SSUB); + } + + @Test(dataProvider = "shortSaturatingBinaryOpMaskProvider") + static void SSUBShort512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short512VectorTests::SSUB); + } + + static short SUADD(short a, short b) { + return (short)(VectorMath.addSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "shortSaturatingBinaryOpProvider") + static void SUADDShort512VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short512VectorTests::SUADD); + } + + @Test(dataProvider = "shortSaturatingBinaryOpMaskProvider") + static void SUADDShort512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short512VectorTests::SUADD); + } + + static short SUSUB(short a, short b) { + return (short)(VectorMath.subSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "shortSaturatingBinaryOpProvider") + static void SUSUBShort512VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short512VectorTests::SUSUB); + } + + @Test(dataProvider = "shortSaturatingBinaryOpMaskProvider") + static void SUSUBShort512VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short512VectorTests::SUSUB); + } + @Test(dataProvider = "shortBinaryOpProvider") static void MINShort512VectorTestsBroadcastSmokeTest(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); @@ -4138,7 +4432,7 @@ static void GEShort512VectorTestsMasked(IntFunction fa, IntFunction fa, IntFunction fb) { + static void ULTShort512VectorTests(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4146,7 +4440,7 @@ static void UNSIGNED_LTShort512VectorTests(IntFunction fa, IntFunction< for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv); + VectorMask mv = av.compare(VectorOperators.ULT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4157,7 +4451,7 @@ static void UNSIGNED_LTShort512VectorTests(IntFunction fa, IntFunction< } @Test(dataProvider = "shortCompareOpMaskProvider") - static void UNSIGNED_LTShort512VectorTestsMasked(IntFunction fa, IntFunction fb, + static void ULTShort512VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4169,7 +4463,7 @@ static void UNSIGNED_LTShort512VectorTestsMasked(IntFunction fa, IntFun for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4180,7 +4474,7 @@ static void UNSIGNED_LTShort512VectorTestsMasked(IntFunction fa, IntFun } @Test(dataProvider = "shortCompareOpProvider") - static void UNSIGNED_GTShort512VectorTests(IntFunction fa, IntFunction fb) { + static void UGTShort512VectorTests(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4188,7 +4482,7 @@ static void UNSIGNED_GTShort512VectorTests(IntFunction fa, IntFunction< for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv); + VectorMask mv = av.compare(VectorOperators.UGT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4199,7 +4493,7 @@ static void UNSIGNED_GTShort512VectorTests(IntFunction fa, IntFunction< } @Test(dataProvider = "shortCompareOpMaskProvider") - static void UNSIGNED_GTShort512VectorTestsMasked(IntFunction fa, IntFunction fb, + static void UGTShort512VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4211,7 +4505,7 @@ static void UNSIGNED_GTShort512VectorTestsMasked(IntFunction fa, IntFun for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4222,7 +4516,7 @@ static void UNSIGNED_GTShort512VectorTestsMasked(IntFunction fa, IntFun } @Test(dataProvider = "shortCompareOpProvider") - static void UNSIGNED_LEShort512VectorTests(IntFunction fa, IntFunction fb) { + static void ULEShort512VectorTests(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4230,7 +4524,7 @@ static void UNSIGNED_LEShort512VectorTests(IntFunction fa, IntFunction< for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv); + VectorMask mv = av.compare(VectorOperators.ULE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4241,7 +4535,7 @@ static void UNSIGNED_LEShort512VectorTests(IntFunction fa, IntFunction< } @Test(dataProvider = "shortCompareOpMaskProvider") - static void UNSIGNED_LEShort512VectorTestsMasked(IntFunction fa, IntFunction fb, + static void ULEShort512VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4253,7 +4547,7 @@ static void UNSIGNED_LEShort512VectorTestsMasked(IntFunction fa, IntFun for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4264,7 +4558,7 @@ static void UNSIGNED_LEShort512VectorTestsMasked(IntFunction fa, IntFun } @Test(dataProvider = "shortCompareOpProvider") - static void UNSIGNED_GEShort512VectorTests(IntFunction fa, IntFunction fb) { + static void UGEShort512VectorTests(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4272,7 +4566,7 @@ static void UNSIGNED_GEShort512VectorTests(IntFunction fa, IntFunction< for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv); + VectorMask mv = av.compare(VectorOperators.UGE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4283,7 +4577,7 @@ static void UNSIGNED_GEShort512VectorTests(IntFunction fa, IntFunction< } @Test(dataProvider = "shortCompareOpMaskProvider") - static void UNSIGNED_GEShort512VectorTestsMasked(IntFunction fa, IntFunction fb, + static void UGEShort512VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4295,7 +4589,7 @@ static void UNSIGNED_GEShort512VectorTestsMasked(IntFunction fa, IntFun for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { diff --git a/test/jdk/jdk/incubator/vector/Short64VectorTests.java b/test/jdk/jdk/incubator/vector/Short64VectorTests.java index cc14cccd119..939da11d53a 100644 --- a/test/jdk/jdk/incubator/vector/Short64VectorTests.java +++ b/test/jdk/jdk/incubator/vector/Short64VectorTests.java @@ -38,6 +38,7 @@ import jdk.incubator.vector.VectorMask; import jdk.incubator.vector.VectorOperators; import jdk.incubator.vector.Vector; +import jdk.incubator.vector.VectorMath; import jdk.incubator.vector.ShortVector; @@ -952,6 +953,33 @@ static short bits(short e) { }) ); + static final List> SHORT_SATURATING_GENERATORS = List.of( + withToString("short[Short.MIN_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(Short.MIN_VALUE)); + }), + withToString("short[Short.MAX_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(Short.MAX_VALUE)); + }), + withToString("short[Short.MAX_VALUE - 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(Short.MAX_VALUE - 100)); + }), + withToString("short[Short.MIN_VALUE + 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(Short.MIN_VALUE + 100)); + }), + withToString("short[-i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(-i * 5)); + }), + withToString("short[i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(i * 5)); + }) + ); + // Create combinations of pairs // @@@ Might be sensitive to order e.g. div by 0 static final List>> SHORT_GENERATOR_PAIRS = @@ -959,6 +987,11 @@ static short bits(short e) { flatMap(fa -> SHORT_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). collect(Collectors.toList()); + static final List>> SHORT_SATURATING_GENERATOR_PAIRS = + Stream.of(SHORT_GENERATORS.get(0)). + flatMap(fa -> SHORT_SATURATING_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). + collect(Collectors.toList()); + @DataProvider public Object[][] boolUnaryOpProvider() { return BOOL_ARRAY_GENERATORS.stream(). @@ -989,12 +1022,27 @@ public Object[][] shortBinaryOpProvider() { toArray(Object[][]::new); } + @DataProvider + public Object[][] shortSaturatingBinaryOpProvider() { + return SHORT_SATURATING_GENERATOR_PAIRS.stream().map(List::toArray). + toArray(Object[][]::new); + } + @DataProvider public Object[][] shortIndexedOpProvider() { return SHORT_GENERATOR_PAIRS.stream().map(List::toArray). toArray(Object[][]::new); } + @DataProvider + public Object[][] shortSaturatingBinaryOpMaskProvider() { + return BOOLEAN_MASK_GENERATORS.stream(). + flatMap(fm -> SHORT_SATURATING_GENERATOR_PAIRS.stream().map(lfa -> { + return Stream.concat(lfa.stream(), Stream.of(fm)).toArray(); + })). + toArray(Object[][]::new); + } + @DataProvider public Object[][] shortBinaryOpMaskProvider() { return BOOLEAN_MASK_GENERATORS.stream(). @@ -2930,6 +2978,252 @@ static void maxShort64VectorTests(IntFunction fa, IntFunction assertArraysEquals(r, a, b, Short64VectorTests::max); } + static short UMIN(short a, short b) { + return (short)(VectorMath.minUnsigned(a, b)); + } + + @Test(dataProvider = "shortBinaryOpProvider") + static void UMINShort64VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short64VectorTests::UMIN); + } + + @Test(dataProvider = "shortBinaryOpMaskProvider") + static void UMINShort64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short64VectorTests::UMIN); + } + + static short UMAX(short a, short b) { + return (short)(VectorMath.maxUnsigned(a, b)); + } + + @Test(dataProvider = "shortBinaryOpProvider") + static void UMAXShort64VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short64VectorTests::UMAX); + } + + @Test(dataProvider = "shortBinaryOpMaskProvider") + static void UMAXShort64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short64VectorTests::UMAX); + } + + static short SADD(short a, short b) { + return (short)(VectorMath.addSaturating(a, b)); + } + + @Test(dataProvider = "shortSaturatingBinaryOpProvider") + static void SADDShort64VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short64VectorTests::SADD); + } + + @Test(dataProvider = "shortSaturatingBinaryOpMaskProvider") + static void SADDShort64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short64VectorTests::SADD); + } + + static short SSUB(short a, short b) { + return (short)(VectorMath.subSaturating(a, b)); + } + + @Test(dataProvider = "shortSaturatingBinaryOpProvider") + static void SSUBShort64VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short64VectorTests::SSUB); + } + + @Test(dataProvider = "shortSaturatingBinaryOpMaskProvider") + static void SSUBShort64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short64VectorTests::SSUB); + } + + static short SUADD(short a, short b) { + return (short)(VectorMath.addSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "shortSaturatingBinaryOpProvider") + static void SUADDShort64VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short64VectorTests::SUADD); + } + + @Test(dataProvider = "shortSaturatingBinaryOpMaskProvider") + static void SUADDShort64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short64VectorTests::SUADD); + } + + static short SUSUB(short a, short b) { + return (short)(VectorMath.subSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "shortSaturatingBinaryOpProvider") + static void SUSUBShort64VectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, Short64VectorTests::SUSUB); + } + + @Test(dataProvider = "shortSaturatingBinaryOpMaskProvider") + static void SUSUBShort64VectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, Short64VectorTests::SUSUB); + } + @Test(dataProvider = "shortBinaryOpProvider") static void MINShort64VectorTestsBroadcastSmokeTest(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); @@ -4138,7 +4432,7 @@ static void GEShort64VectorTestsMasked(IntFunction fa, IntFunction fa, IntFunction fb) { + static void ULTShort64VectorTests(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4146,7 +4440,7 @@ static void UNSIGNED_LTShort64VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LT, bv); + VectorMask mv = av.compare(VectorOperators.ULT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4157,7 +4451,7 @@ static void UNSIGNED_LTShort64VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULTShort64VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4169,7 +4463,7 @@ static void UNSIGNED_LTShort64VectorTestsMasked(IntFunction fa, IntFunc for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4180,7 +4474,7 @@ static void UNSIGNED_LTShort64VectorTestsMasked(IntFunction fa, IntFunc } @Test(dataProvider = "shortCompareOpProvider") - static void UNSIGNED_GTShort64VectorTests(IntFunction fa, IntFunction fb) { + static void UGTShort64VectorTests(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4188,7 +4482,7 @@ static void UNSIGNED_GTShort64VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GT, bv); + VectorMask mv = av.compare(VectorOperators.UGT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4199,7 +4493,7 @@ static void UNSIGNED_GTShort64VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGTShort64VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4211,7 +4505,7 @@ static void UNSIGNED_GTShort64VectorTestsMasked(IntFunction fa, IntFunc for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4222,7 +4516,7 @@ static void UNSIGNED_GTShort64VectorTestsMasked(IntFunction fa, IntFunc } @Test(dataProvider = "shortCompareOpProvider") - static void UNSIGNED_LEShort64VectorTests(IntFunction fa, IntFunction fb) { + static void ULEShort64VectorTests(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4230,7 +4524,7 @@ static void UNSIGNED_LEShort64VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_LE, bv); + VectorMask mv = av.compare(VectorOperators.ULE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4241,7 +4535,7 @@ static void UNSIGNED_LEShort64VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void ULEShort64VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4253,7 +4547,7 @@ static void UNSIGNED_LEShort64VectorTestsMasked(IntFunction fa, IntFunc for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4264,7 +4558,7 @@ static void UNSIGNED_LEShort64VectorTestsMasked(IntFunction fa, IntFunc } @Test(dataProvider = "shortCompareOpProvider") - static void UNSIGNED_GEShort64VectorTests(IntFunction fa, IntFunction fb) { + static void UGEShort64VectorTests(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4272,7 +4566,7 @@ static void UNSIGNED_GEShort64VectorTests(IntFunction fa, IntFunction mv = av.compare(VectorOperators.UNSIGNED_GE, bv); + VectorMask mv = av.compare(VectorOperators.UGE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4283,7 +4577,7 @@ static void UNSIGNED_GEShort64VectorTests(IntFunction fa, IntFunction fa, IntFunction fb, + static void UGEShort64VectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4295,7 +4589,7 @@ static void UNSIGNED_GEShort64VectorTestsMasked(IntFunction fa, IntFunc for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { diff --git a/test/jdk/jdk/incubator/vector/ShortMaxVectorTests.java b/test/jdk/jdk/incubator/vector/ShortMaxVectorTests.java index a557494f74c..ade78e1f3f5 100644 --- a/test/jdk/jdk/incubator/vector/ShortMaxVectorTests.java +++ b/test/jdk/jdk/incubator/vector/ShortMaxVectorTests.java @@ -38,6 +38,7 @@ import jdk.incubator.vector.VectorMask; import jdk.incubator.vector.VectorOperators; import jdk.incubator.vector.Vector; +import jdk.incubator.vector.VectorMath; import jdk.incubator.vector.ShortVector; @@ -957,6 +958,33 @@ static short bits(short e) { }) ); + static final List> SHORT_SATURATING_GENERATORS = List.of( + withToString("short[Short.MIN_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(Short.MIN_VALUE)); + }), + withToString("short[Short.MAX_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(Short.MAX_VALUE)); + }), + withToString("short[Short.MAX_VALUE - 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(Short.MAX_VALUE - 100)); + }), + withToString("short[Short.MIN_VALUE + 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(Short.MIN_VALUE + 100)); + }), + withToString("short[-i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(-i * 5)); + }), + withToString("short[i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> (short)(i * 5)); + }) + ); + // Create combinations of pairs // @@@ Might be sensitive to order e.g. div by 0 static final List>> SHORT_GENERATOR_PAIRS = @@ -964,6 +992,11 @@ static short bits(short e) { flatMap(fa -> SHORT_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). collect(Collectors.toList()); + static final List>> SHORT_SATURATING_GENERATOR_PAIRS = + Stream.of(SHORT_GENERATORS.get(0)). + flatMap(fa -> SHORT_SATURATING_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). + collect(Collectors.toList()); + @DataProvider public Object[][] boolUnaryOpProvider() { return BOOL_ARRAY_GENERATORS.stream(). @@ -994,12 +1027,27 @@ public Object[][] shortBinaryOpProvider() { toArray(Object[][]::new); } + @DataProvider + public Object[][] shortSaturatingBinaryOpProvider() { + return SHORT_SATURATING_GENERATOR_PAIRS.stream().map(List::toArray). + toArray(Object[][]::new); + } + @DataProvider public Object[][] shortIndexedOpProvider() { return SHORT_GENERATOR_PAIRS.stream().map(List::toArray). toArray(Object[][]::new); } + @DataProvider + public Object[][] shortSaturatingBinaryOpMaskProvider() { + return BOOLEAN_MASK_GENERATORS.stream(). + flatMap(fm -> SHORT_SATURATING_GENERATOR_PAIRS.stream().map(lfa -> { + return Stream.concat(lfa.stream(), Stream.of(fm)).toArray(); + })). + toArray(Object[][]::new); + } + @DataProvider public Object[][] shortBinaryOpMaskProvider() { return BOOLEAN_MASK_GENERATORS.stream(). @@ -2935,6 +2983,252 @@ static void maxShortMaxVectorTests(IntFunction fa, IntFunction assertArraysEquals(r, a, b, ShortMaxVectorTests::max); } + static short UMIN(short a, short b) { + return (short)(VectorMath.minUnsigned(a, b)); + } + + @Test(dataProvider = "shortBinaryOpProvider") + static void UMINShortMaxVectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, ShortMaxVectorTests::UMIN); + } + + @Test(dataProvider = "shortBinaryOpMaskProvider") + static void UMINShortMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMIN, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, ShortMaxVectorTests::UMIN); + } + + static short UMAX(short a, short b) { + return (short)(VectorMath.maxUnsigned(a, b)); + } + + @Test(dataProvider = "shortBinaryOpProvider") + static void UMAXShortMaxVectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, ShortMaxVectorTests::UMAX); + } + + @Test(dataProvider = "shortBinaryOpMaskProvider") + static void UMAXShortMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.UMAX, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, ShortMaxVectorTests::UMAX); + } + + static short SADD(short a, short b) { + return (short)(VectorMath.addSaturating(a, b)); + } + + @Test(dataProvider = "shortSaturatingBinaryOpProvider") + static void SADDShortMaxVectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, ShortMaxVectorTests::SADD); + } + + @Test(dataProvider = "shortSaturatingBinaryOpMaskProvider") + static void SADDShortMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, ShortMaxVectorTests::SADD); + } + + static short SSUB(short a, short b) { + return (short)(VectorMath.subSaturating(a, b)); + } + + @Test(dataProvider = "shortSaturatingBinaryOpProvider") + static void SSUBShortMaxVectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, ShortMaxVectorTests::SSUB); + } + + @Test(dataProvider = "shortSaturatingBinaryOpMaskProvider") + static void SSUBShortMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, ShortMaxVectorTests::SSUB); + } + + static short SUADD(short a, short b) { + return (short)(VectorMath.addSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "shortSaturatingBinaryOpProvider") + static void SUADDShortMaxVectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, ShortMaxVectorTests::SUADD); + } + + @Test(dataProvider = "shortSaturatingBinaryOpMaskProvider") + static void SUADDShortMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUADD, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, ShortMaxVectorTests::SUADD); + } + + static short SUSUB(short a, short b) { + return (short)(VectorMath.subSaturatingUnsigned(a, b)); + } + + @Test(dataProvider = "shortSaturatingBinaryOpProvider") + static void SUSUBShortMaxVectorTests(IntFunction fa, IntFunction fb) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, ShortMaxVectorTests::SUSUB); + } + + @Test(dataProvider = "shortSaturatingBinaryOpMaskProvider") + static void SUSUBShortMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + IntFunction fm) { + short[] a = fa.apply(SPECIES.length()); + short[] b = fb.apply(SPECIES.length()); + short[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ShortVector av = ShortVector.fromArray(SPECIES, a, i); + ShortVector bv = ShortVector.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.SUSUB, bv, vmask).intoArray(r, i); + } + } + + assertArraysEquals(r, a, b, mask, ShortMaxVectorTests::SUSUB); + } + @Test(dataProvider = "shortBinaryOpProvider") static void MINShortMaxVectorTestsBroadcastSmokeTest(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); @@ -4143,7 +4437,7 @@ static void GEShortMaxVectorTestsMasked(IntFunction fa, IntFunction fa, IntFunction fb) { + static void ULTShortMaxVectorTests(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4151,7 +4445,7 @@ static void UNSIGNED_LTShortMaxVectorTests(IntFunction fa, IntFunction< for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv); + VectorMask mv = av.compare(VectorOperators.ULT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4162,7 +4456,7 @@ static void UNSIGNED_LTShortMaxVectorTests(IntFunction fa, IntFunction< } @Test(dataProvider = "shortCompareOpMaskProvider") - static void UNSIGNED_LTShortMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + static void ULTShortMaxVectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4174,7 +4468,7 @@ static void UNSIGNED_LTShortMaxVectorTestsMasked(IntFunction fa, IntFun for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4185,7 +4479,7 @@ static void UNSIGNED_LTShortMaxVectorTestsMasked(IntFunction fa, IntFun } @Test(dataProvider = "shortCompareOpProvider") - static void UNSIGNED_GTShortMaxVectorTests(IntFunction fa, IntFunction fb) { + static void UGTShortMaxVectorTests(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4193,7 +4487,7 @@ static void UNSIGNED_GTShortMaxVectorTests(IntFunction fa, IntFunction< for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv); + VectorMask mv = av.compare(VectorOperators.UGT, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4204,7 +4498,7 @@ static void UNSIGNED_GTShortMaxVectorTests(IntFunction fa, IntFunction< } @Test(dataProvider = "shortCompareOpMaskProvider") - static void UNSIGNED_GTShortMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + static void UGTShortMaxVectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4216,7 +4510,7 @@ static void UNSIGNED_GTShortMaxVectorTestsMasked(IntFunction fa, IntFun for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GT, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGT, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4227,7 +4521,7 @@ static void UNSIGNED_GTShortMaxVectorTestsMasked(IntFunction fa, IntFun } @Test(dataProvider = "shortCompareOpProvider") - static void UNSIGNED_LEShortMaxVectorTests(IntFunction fa, IntFunction fb) { + static void ULEShortMaxVectorTests(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4235,7 +4529,7 @@ static void UNSIGNED_LEShortMaxVectorTests(IntFunction fa, IntFunction< for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv); + VectorMask mv = av.compare(VectorOperators.ULE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4246,7 +4540,7 @@ static void UNSIGNED_LEShortMaxVectorTests(IntFunction fa, IntFunction< } @Test(dataProvider = "shortCompareOpMaskProvider") - static void UNSIGNED_LEShortMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + static void ULEShortMaxVectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4258,7 +4552,7 @@ static void UNSIGNED_LEShortMaxVectorTestsMasked(IntFunction fa, IntFun for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_LE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.ULE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4269,7 +4563,7 @@ static void UNSIGNED_LEShortMaxVectorTestsMasked(IntFunction fa, IntFun } @Test(dataProvider = "shortCompareOpProvider") - static void UNSIGNED_GEShortMaxVectorTests(IntFunction fa, IntFunction fb) { + static void UGEShortMaxVectorTests(IntFunction fa, IntFunction fb) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4277,7 +4571,7 @@ static void UNSIGNED_GEShortMaxVectorTests(IntFunction fa, IntFunction< for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv); + VectorMask mv = av.compare(VectorOperators.UGE, bv); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { @@ -4288,7 +4582,7 @@ static void UNSIGNED_GEShortMaxVectorTests(IntFunction fa, IntFunction< } @Test(dataProvider = "shortCompareOpMaskProvider") - static void UNSIGNED_GEShortMaxVectorTestsMasked(IntFunction fa, IntFunction fb, + static void UGEShortMaxVectorTestsMasked(IntFunction fa, IntFunction fb, IntFunction fm) { short[] a = fa.apply(SPECIES.length()); short[] b = fb.apply(SPECIES.length()); @@ -4300,7 +4594,7 @@ static void UNSIGNED_GEShortMaxVectorTestsMasked(IntFunction fa, IntFun for (int i = 0; i < a.length; i += SPECIES.length()) { ShortVector av = ShortVector.fromArray(SPECIES, a, i); ShortVector bv = ShortVector.fromArray(SPECIES, b, i); - VectorMask mv = av.compare(VectorOperators.UNSIGNED_GE, bv, vmask); + VectorMask mv = av.compare(VectorOperators.UGE, bv, vmask); // Check results as part of computation. for (int j = 0; j < SPECIES.length(); j++) { diff --git a/test/jdk/jdk/incubator/vector/VectorMathTest.java b/test/jdk/jdk/incubator/vector/VectorMathTest.java new file mode 100644 index 00000000000..366b9acde59 --- /dev/null +++ b/test/jdk/jdk/incubator/vector/VectorMathTest.java @@ -0,0 +1,245 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 8338021 + * @summary Test unsigned and saturating scalar operators for use with Vector API + * @modules jdk.incubator.vector + * @run testng VectorMathTest + */ + +import jdk.incubator.vector.VectorMath; +import org.testng.Assert; +import org.testng.annotations.DataProvider; +import org.testng.annotations.Test; + +import java.lang.reflect.Array; +import java.util.function.BinaryOperator; + +public class VectorMathTest { + // @formatter:off + public static final byte ZERO_B = (byte)0; + public static final short ZERO_S = (short)0; + public static final int ZERO_I = 0; + public static final long ZERO_L = 0L; + + public static final byte TEN_B = (byte)10; + public static final int TEN_S = (short)10; + public static final short TEN_I = 10; + public static final long TEN_L = 10L; + + public static final byte FIFTY_B = (byte)50; + public static final int FIFTY_S = (short)50; + public static final short FIFTY_I = 50; + public static final long FIFTY_L = 50L; + + public static final byte SIXTY_B = (byte)60; + public static final int SIXTY_S = (short)60; + public static final short SIXTY_I = 60; + public static final long SIXTY_L = 60L; + + public static final byte UMAX_B = (byte)-1; + public static final short UMAX_S = (short)-1; + public static final int UMAX_I = -1; + public static final long UMAX_L = -1L; + + public static byte[] INPUT_SB = {Byte.MIN_VALUE, (byte)(Byte.MIN_VALUE + TEN_B), ZERO_B, (byte)(Byte.MAX_VALUE - TEN_B), Byte.MAX_VALUE}; + public static short[] INPUT_SS = {Short.MIN_VALUE, (short)(Short.MIN_VALUE + TEN_S), ZERO_S, (short)(Short.MAX_VALUE - TEN_S), Short.MAX_VALUE}; + public static int[] INPUT_SI = {Integer.MIN_VALUE, (Integer.MIN_VALUE + TEN_I), ZERO_I, Integer.MAX_VALUE - TEN_I, Integer.MAX_VALUE}; + public static long[] INPUT_SL = {Long.MIN_VALUE, Long.MIN_VALUE + TEN_L, ZERO_L, Long.MAX_VALUE - TEN_L, Long.MAX_VALUE}; + + public static int[] INPUT_SADD_I = {-FIFTY_I, -FIFTY_I, -FIFTY_I, FIFTY_I, FIFTY_I}; + public static byte[] EXPECTED_SADD_B = {Byte.MIN_VALUE, Byte.MIN_VALUE, -FIFTY_B, Byte.MAX_VALUE, Byte.MAX_VALUE}; + public static short[] EXPECTED_SADD_S = {Short.MIN_VALUE, Short.MIN_VALUE, -FIFTY_S, Short.MAX_VALUE, Short.MAX_VALUE}; + public static int[] EXPECTED_SADD_I = {Integer.MIN_VALUE, Integer.MIN_VALUE, -FIFTY_I, Integer.MAX_VALUE, Integer.MAX_VALUE}; + public static long[] EXPECTED_SADD_L = {Long.MIN_VALUE, Long.MIN_VALUE, -FIFTY_L, Long.MAX_VALUE, Long.MAX_VALUE}; + + public static int[] INPUT_SSUB_I = {FIFTY_I, FIFTY_I, FIFTY_I, -FIFTY_I, -FIFTY_I}; + public static byte[] EXPECTED_SSUB_B = {Byte.MIN_VALUE, Byte.MIN_VALUE, -FIFTY_B, Byte.MAX_VALUE, Byte.MAX_VALUE}; + public static short[] EXPECTED_SSUB_S = {Short.MIN_VALUE, Short.MIN_VALUE, -FIFTY_S, Short.MAX_VALUE, Short.MAX_VALUE}; + public static int[] EXPECTED_SSUB_I = {Integer.MIN_VALUE, Integer.MIN_VALUE, -FIFTY_I, Integer.MAX_VALUE, Integer.MAX_VALUE}; + public static long[] EXPECTED_SSUB_L = {Long.MIN_VALUE, Long.MIN_VALUE, -FIFTY_L, Long.MAX_VALUE, Long.MAX_VALUE}; + + public static byte[] INPUT_UB = {ZERO_B, (byte)(ZERO_B + TEN_B), (byte)(UMAX_B - TEN_B), UMAX_B}; + public static short[] INPUT_US = {ZERO_S, (short)(ZERO_S + TEN_S), (short)(UMAX_S - TEN_S), UMAX_S}; + public static int[] INPUT_UI = {ZERO_I, ZERO_I + TEN_I, UMAX_I - TEN_I, UMAX_I}; + public static long[] INPUT_UL = {ZERO_L, ZERO_L + TEN_L, UMAX_L - TEN_L, UMAX_L}; + + public static int[] INPUT_SUADD_I = {FIFTY_I, FIFTY_I, FIFTY_I, FIFTY_I}; + public static byte[] EXPECTED_SUADD_B = {FIFTY_B, SIXTY_B, UMAX_B, UMAX_B}; + public static short[] EXPECTED_SUADD_S = {FIFTY_S, SIXTY_S, UMAX_S, UMAX_S}; + public static int[] EXPECTED_SUADD_I = {FIFTY_I, SIXTY_I, UMAX_I, UMAX_I}; + public static long[] EXPECTED_SUADD_L = {FIFTY_L, SIXTY_L, UMAX_L, UMAX_L}; + + public static int[] INPUT_SUSUB_I = {FIFTY_I, FIFTY_I, FIFTY_I, FIFTY_I}; + public static byte[] EXPECTED_SUSUB_B = {ZERO_B, ZERO_B, UMAX_B - SIXTY_B, UMAX_B - FIFTY_B}; + public static short[] EXPECTED_SUSUB_S = {ZERO_S, ZERO_S, UMAX_S - SIXTY_S, UMAX_S - FIFTY_S}; + public static int[] EXPECTED_SUSUB_I = {ZERO_I, ZERO_I, UMAX_I - SIXTY_I, UMAX_I - FIFTY_I}; + public static long[] EXPECTED_SUSUB_L = {ZERO_L, ZERO_L, UMAX_L - SIXTY_L, UMAX_L - FIFTY_L}; + + public static byte[] EXPECTED_UMIN_B = {ZERO_B, TEN_B, ZERO_B, Byte.MAX_VALUE - TEN_B}; + public static short[] EXPECTED_UMIN_S = {ZERO_S, TEN_S, ZERO_S, Short.MAX_VALUE - TEN_S}; + public static int[] EXPECTED_UMIN_I = {ZERO_I, TEN_I, ZERO_I, Integer.MAX_VALUE - TEN_I}; + public static long[] EXPECTED_UMIN_L = {ZERO_L, TEN_L, ZERO_L, Long.MAX_VALUE - TEN_L}; + + public static byte[] EXPECTED_UMAX_B = {Byte.MIN_VALUE, (byte)(Byte.MIN_VALUE + TEN_B), (byte)(UMAX_B - TEN_B), UMAX_B}; + public static short[] EXPECTED_UMAX_S = {Short.MIN_VALUE, (short)(Short.MIN_VALUE + TEN_S), (short)(UMAX_S - TEN_S), UMAX_S}; + public static int[] EXPECTED_UMAX_I = {Integer.MIN_VALUE, Integer.MIN_VALUE + TEN_I, (UMAX_I - TEN_I), UMAX_I}; + public static long[] EXPECTED_UMAX_L = {Long.MIN_VALUE, Long.MIN_VALUE + TEN_L, (UMAX_L - TEN_L), UMAX_L}; + // @formatter:on + + static Object conv(Object a, Class ct) { + Object na = Array.newInstance(ct, Array.getLength(a)); + for (int i = 0; i < Array.getLength(a); i++) { + Number number = (Number) Array.get(a, i); + if (ct == byte.class) { + number = number.byteValue(); + } else if (ct == short.class) { + number = number.shortValue(); + } else if (ct == int.class) { + number = number.intValue(); + } else if (ct == long.class) { + number = number.longValue(); + } else { + assert false : "should not reach here"; + } + Array.set(na, i, number); + } + return na; + } + + static BinaryOperator named(String name, BinaryOperator op) { + return new BinaryOperator() { + @Override + public T apply(T a, T b) { + return op.apply(a, b); + } + + public String toString() { + return name; + } + }; + } + + static final BinaryOperator OP_UMIN = named("minUnsigned", + (a, b) -> switch (a) { + case Byte _ -> VectorMath.minUnsigned((byte) a, (byte) b); + case Short _ -> VectorMath.minUnsigned((short) a, (short) b); + case Integer _ -> VectorMath.minUnsigned((int) a, (int) b); + case Long _ -> VectorMath.minUnsigned((long) a, (long) b); + default -> throw new UnsupportedOperationException("should not reach here"); + }); + + static final BinaryOperator OP_UMAX = named("maxUnsigned", + (a, b) -> switch (a) { + case Byte _ -> VectorMath.maxUnsigned((byte) a, (byte) b); + case Short _ -> VectorMath.maxUnsigned((short) a, (short) b); + case Integer _ -> VectorMath.maxUnsigned((int) a, (int) b); + case Long _ -> VectorMath.maxUnsigned((long) a, (long) b); + default -> throw new UnsupportedOperationException("should not reach here"); + }); + + static final BinaryOperator OP_SADD = named("addSaturating", + (a, b) -> switch (a) { + case Byte _ -> VectorMath.addSaturating((byte) a, (byte) b); + case Short _ -> VectorMath.addSaturating((short) a, (short) b); + case Integer _ -> VectorMath.addSaturating((int) a, (int) b); + case Long _ -> VectorMath.addSaturating((long) a, (long) b); + default -> throw new UnsupportedOperationException("should not reach here"); + }); + + static final BinaryOperator OP_SSUB = named("subSaturating", + (a, b) -> switch (a) { + case Byte _ -> VectorMath.subSaturating((byte) a, (byte) b); + case Short _ -> VectorMath.subSaturating((short) a, (short) b); + case Integer _ -> VectorMath.subSaturating((int) a, (int) b); + case Long _ -> VectorMath.subSaturating((long) a, (long) b); + default -> throw new UnsupportedOperationException("should not reach here"); + }); + + static final BinaryOperator OP_SUADD = named("addSaturatingUnsigned", + (a, b) -> switch (a) { + case Byte _ -> VectorMath.addSaturatingUnsigned((byte) a, (byte) b); + case Short _ -> VectorMath.addSaturatingUnsigned((short) a, (short) b); + case Integer _ -> VectorMath.addSaturatingUnsigned((int) a, (int) b); + case Long _ -> VectorMath.addSaturatingUnsigned((long) a, (long) b); + default -> throw new UnsupportedOperationException("should not reach here"); + }); + + static final BinaryOperator OP_SUSUB = named("subSaturatingUnsigned", + (a, b) -> switch (a) { + case Byte _ -> VectorMath.subSaturatingUnsigned((byte) a, (byte) b); + case Short _ -> VectorMath.subSaturatingUnsigned((short) a, (short) b); + case Integer _ -> VectorMath.subSaturatingUnsigned((int) a, (int) b); + case Long _ -> VectorMath.subSaturatingUnsigned((long) a, (long) b); + default -> throw new UnsupportedOperationException("should not reach here"); + }); + + @DataProvider + public static Object[][] opProvider() { + return new Object[][] { + {OP_UMIN, byte.class, INPUT_UB, INPUT_SB, EXPECTED_UMIN_B, }, + {OP_UMIN, short.class, INPUT_US, INPUT_SS, EXPECTED_UMIN_S, }, + {OP_UMIN, int.class, INPUT_UI, INPUT_SI, EXPECTED_UMIN_I, }, + {OP_UMIN, long.class, INPUT_UL, INPUT_SL, EXPECTED_UMIN_L, }, + + {OP_UMAX, byte.class, INPUT_UB, INPUT_SB, EXPECTED_UMAX_B, }, + {OP_UMAX, short.class, INPUT_US, INPUT_SS, EXPECTED_UMAX_S, }, + {OP_UMAX, int.class, INPUT_UI, INPUT_SI, EXPECTED_UMAX_I, }, + {OP_UMAX, long.class, INPUT_UL, INPUT_SL, EXPECTED_UMAX_L, }, + + {OP_SADD, byte.class, INPUT_SB, conv(INPUT_SADD_I, byte.class), EXPECTED_SADD_B, }, + {OP_SADD, short.class, INPUT_SS, conv(INPUT_SADD_I, short.class), EXPECTED_SADD_S, }, + {OP_SADD, int.class, INPUT_SI, INPUT_SADD_I, EXPECTED_SADD_I, }, + {OP_SADD, long.class, INPUT_SL, conv(INPUT_SADD_I, long.class), EXPECTED_SADD_L, }, + + {OP_SSUB, byte.class, INPUT_SB, conv(INPUT_SSUB_I, byte.class), EXPECTED_SSUB_B, }, + {OP_SSUB, short.class, INPUT_SS, conv(INPUT_SSUB_I, short.class), EXPECTED_SSUB_S, }, + {OP_SSUB, int.class, INPUT_SI, INPUT_SSUB_I, EXPECTED_SSUB_I, }, + {OP_SSUB, long.class, INPUT_SL, conv(INPUT_SSUB_I, long.class), EXPECTED_SSUB_L, }, + + {OP_SUADD, byte.class, INPUT_UB, conv(INPUT_SUADD_I, byte.class), EXPECTED_SUADD_B, }, + {OP_SUADD, short.class, INPUT_US, conv(INPUT_SUADD_I, short.class), EXPECTED_SUADD_S, }, + {OP_SUADD, int.class, INPUT_UI, INPUT_SUADD_I, EXPECTED_SUADD_I, }, + {OP_SUADD, long.class, INPUT_UL, conv(INPUT_SUADD_I, long.class), EXPECTED_SUADD_L, }, + + {OP_SUSUB, byte.class, INPUT_UB, conv(INPUT_SUSUB_I, byte.class), EXPECTED_SUSUB_B, }, + {OP_SUSUB, short.class, INPUT_US, conv(INPUT_SUSUB_I, short.class), EXPECTED_SUSUB_S, }, + {OP_SUSUB, int.class, INPUT_UI, INPUT_SUSUB_I, EXPECTED_SUSUB_I, }, + {OP_SUSUB, long.class, INPUT_UL, conv(INPUT_SUSUB_I, long.class), EXPECTED_SUSUB_L, }, + }; + } + + @Test(dataProvider = "opProvider") + public void test(BinaryOperator op, Class type, Object a, Object b, Object expected) { + assert Array.getLength(a) <= Array.getLength(b) && Array.getLength(a) <= Array.getLength(expected); + + Object actual = Array.newInstance(type, Array.getLength(a)); + for (int i = 0; i < Array.getLength(a); i++) { + Object e = op.apply(Array.get(a, i), Array.get(b, i)); + Array.set(actual, i, e); + } + Assert.assertEquals(actual, expected); + } +} diff --git a/test/jdk/jdk/incubator/vector/VectorMaxConversionTests.java b/test/jdk/jdk/incubator/vector/VectorMaxConversionTests.java index 28c5348100a..a8f89f9d705 100644 --- a/test/jdk/jdk/incubator/vector/VectorMaxConversionTests.java +++ b/test/jdk/jdk/incubator/vector/VectorMaxConversionTests.java @@ -41,26 +41,14 @@ */ /* - * @test id=ZSinglegen + * @test id=Z * @bug 8281544 * @summary Test that ZGC and vectorapi with KNL work together. - * @requires vm.gc.ZSinglegen + * @requires vm.gc.Z * @modules jdk.incubator.vector * @modules java.base/jdk.internal.vm.annotation * @run testng/othervm -XX:-TieredCompilation --add-opens jdk.incubator.vector/jdk.incubator.vector=ALL-UNNAMED - * -XX:+UnlockDiagnosticVMOptions -XX:+UseKNLSetting -XX:+UseZGC -XX:-ZGenerational -XX:+IgnoreUnrecognizedVMOptions - * VectorMaxConversionTests - */ - -/* - * @test id=ZGenerational - * @bug 8281544 - * @summary Test that ZGC and vectorapi with KNL work together. - * @requires vm.gc.ZGenerational - * @modules jdk.incubator.vector - * @modules java.base/jdk.internal.vm.annotation - * @run testng/othervm -XX:-TieredCompilation --add-opens jdk.incubator.vector/jdk.incubator.vector=ALL-UNNAMED - * -XX:+UnlockDiagnosticVMOptions -XX:+UseKNLSetting -XX:+UseZGC -XX:+ZGenerational -XX:+IgnoreUnrecognizedVMOptions + * -XX:+UnlockDiagnosticVMOptions -XX:+UseKNLSetting -XX:+UseZGC -XX:+IgnoreUnrecognizedVMOptions * VectorMaxConversionTests */ diff --git a/test/jdk/jdk/incubator/vector/gen-template.sh b/test/jdk/jdk/incubator/vector/gen-template.sh index 375287bef2d..232de04ba7c 100644 --- a/test/jdk/jdk/incubator/vector/gen-template.sh +++ b/test/jdk/jdk/incubator/vector/gen-template.sh @@ -42,6 +42,8 @@ ternary_double_broadcast_masked="Ternary-Double-Broadcast-Masked-op" ternary_scalar="Ternary-Scalar-op" binary="Binary-op" binary_masked="Binary-Masked-op" +saturating_binary="SaturatingBinary-op" +saturating_binary_masked="SaturatingBinary-Masked-op" binary_broadcast="Binary-Broadcast-op" binary_broadcast_masked="Binary-Broadcast-Masked-op" binary_broadcast_long="Binary-Broadcast-Long-op" @@ -310,6 +312,12 @@ function gen_binary_op { gen_op_tmpl $binary_masked "$@" } +function gen_saturating_binary_op { + echo "Generating binary op $1 ($2)..." + gen_op_tmpl $saturating_binary "$@" + gen_op_tmpl $saturating_binary_masked "$@" +} + function gen_binary_op_no_masked { echo "Generating binary op $1 ($2)..." # gen_op_tmpl $binary_scalar "$@" @@ -459,6 +467,12 @@ gen_shift_cst_op "ROL" "ROL_scalar(a, CONST_SHIFT)" "BITWISE" # Masked reductions. gen_binary_op_no_masked "MIN+min" "Math.min(a, b)" gen_binary_op_no_masked "MAX+max" "Math.max(a, b)" +gen_binary_op "UMIN" "VectorMath.minUnsigned(a, b)" "BITWISE" +gen_binary_op "UMAX" "VectorMath.maxUnsigned(a, b)" "BITWISE" +gen_saturating_binary_op "SADD" "VectorMath.addSaturating(a, b)" "BITWISE" +gen_saturating_binary_op "SSUB" "VectorMath.subSaturating(a, b)" "BITWISE" +gen_saturating_binary_op "SUADD" "VectorMath.addSaturatingUnsigned(a, b)" "BITWISE" +gen_saturating_binary_op "SUSUB" "VectorMath.subSaturatingUnsigned(a, b)" "BITWISE" gen_binary_bcst_op_no_masked "MIN+min" "Math.min(a, b)" gen_binary_bcst_op_no_masked "MAX+max" "Math.max(a, b)" @@ -494,10 +508,10 @@ gen_compare_op "NE" "neq" gen_compare_op "LE" "le" gen_compare_op "GE" "ge" -gen_compare_op "UNSIGNED_LT" "ult" "BITWISE" -gen_compare_op "UNSIGNED_GT" "ugt" "BITWISE" -gen_compare_op "UNSIGNED_LE" "ule" "BITWISE" -gen_compare_op "UNSIGNED_GE" "uge" "BITWISE" +gen_compare_op "ULT" "ult" "BITWISE" +gen_compare_op "UGT" "ugt" "BITWISE" +gen_compare_op "ULE" "ule" "BITWISE" +gen_compare_op "UGE" "uge" "BITWISE" gen_compare_bcst_op "LT" "<" diff --git a/test/jdk/jdk/incubator/vector/templates/Kernel-SaturatingBinary-Masked-op.template b/test/jdk/jdk/incubator/vector/templates/Kernel-SaturatingBinary-Masked-op.template new file mode 100644 index 00000000000..495b27b967c --- /dev/null +++ b/test/jdk/jdk/incubator/vector/templates/Kernel-SaturatingBinary-Masked-op.template @@ -0,0 +1,13 @@ + $type$[] a = fa.apply(SPECIES.length()); + $type$[] b = fb.apply(SPECIES.length()); + $type$[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask<$Wideboxtype$> vmask = VectorMask.fromArray(SPECIES, mask, 0); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + $abstractvectortype$ av = $abstractvectortype$.fromArray(SPECIES, a, i); + $abstractvectortype$ bv = $abstractvectortype$.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.[[TEST]], bv, vmask).intoArray(r, i); + } + } diff --git a/test/jdk/jdk/incubator/vector/templates/Kernel-SaturatingBinary-op.template b/test/jdk/jdk/incubator/vector/templates/Kernel-SaturatingBinary-op.template new file mode 100644 index 00000000000..0870991268f --- /dev/null +++ b/test/jdk/jdk/incubator/vector/templates/Kernel-SaturatingBinary-op.template @@ -0,0 +1,11 @@ + $type$[] a = fa.apply(SPECIES.length()); + $type$[] b = fb.apply(SPECIES.length()); + $type$[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + $abstractvectortype$ av = $abstractvectortype$.fromArray(SPECIES, a, i); + $abstractvectortype$ bv = $abstractvectortype$.fromArray(SPECIES, b, i); + av.lanewise(VectorOperators.[[TEST]], bv).intoArray(r, i); + } + } diff --git a/test/jdk/jdk/incubator/vector/templates/Unit-SaturatingBinary-Masked-op.template b/test/jdk/jdk/incubator/vector/templates/Unit-SaturatingBinary-Masked-op.template new file mode 100644 index 00000000000..5597d706b05 --- /dev/null +++ b/test/jdk/jdk/incubator/vector/templates/Unit-SaturatingBinary-Masked-op.template @@ -0,0 +1,7 @@ + + @Test(dataProvider = "$type$SaturatingBinaryOpMaskProvider") + static void [[TEST]]$vectorteststype$Masked(IntFunction<$type$[]> fa, IntFunction<$type$[]> fb, + IntFunction fm) { +[[KERNEL]] + assertArraysEquals(r, a, b, mask, $vectorteststype$::[[TEST]]); + } diff --git a/test/jdk/jdk/incubator/vector/templates/Unit-SaturatingBinary-op.template b/test/jdk/jdk/incubator/vector/templates/Unit-SaturatingBinary-op.template new file mode 100644 index 00000000000..69c53fa6913 --- /dev/null +++ b/test/jdk/jdk/incubator/vector/templates/Unit-SaturatingBinary-op.template @@ -0,0 +1,10 @@ + + static $type$ [[TEST]]($type$ a, $type$ b) { + return ($type$)([[TEST_OP]]); + } + + @Test(dataProvider = "$type$SaturatingBinaryOpProvider") + static void [[TEST]]$vectorteststype$(IntFunction<$type$[]> fa, IntFunction<$type$[]> fb) { +[[KERNEL]] + assertArraysEquals(r, a, b, $vectorteststype$::[[TEST]]); + } diff --git a/test/jdk/jdk/incubator/vector/templates/Unit-header.template b/test/jdk/jdk/incubator/vector/templates/Unit-header.template index 2f33ede458a..991f82cc7cf 100644 --- a/test/jdk/jdk/incubator/vector/templates/Unit-header.template +++ b/test/jdk/jdk/incubator/vector/templates/Unit-header.template @@ -38,6 +38,9 @@ import jdk.incubator.vector.VectorShuffle; import jdk.incubator.vector.VectorMask; import jdk.incubator.vector.VectorOperators; import jdk.incubator.vector.Vector; +#if[!FP] +import jdk.incubator.vector.VectorMath; +#end[!FP] #if[Byte] import jdk.incubator.vector.ByteVector; @@ -1221,6 +1224,35 @@ relativeError)); }) ); +#if[!FP] + static final List> $TYPE$_SATURATING_GENERATORS = List.of( + withToString("$type$[$Boxtype$.MIN_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> ($type$)($Boxtype$.MIN_VALUE)); + }), + withToString("$type$[$Boxtype$.MAX_VALUE]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> ($type$)($Boxtype$.MAX_VALUE)); + }), + withToString("$type$[$Boxtype$.MAX_VALUE - 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> ($type$)($Boxtype$.MAX_VALUE - 100)); + }), + withToString("$type$[$Boxtype$.MIN_VALUE + 100]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> ($type$)($Boxtype$.MIN_VALUE + 100)); + }), + withToString("$type$[-i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> ($type$)(-i * 5)); + }), + withToString("$type$[i * 5]", (int s) -> { + return fill(s * BUFFER_REPS, + i -> ($type$)(i * 5)); + }) + ); + +#end[!FP] // Create combinations of pairs // @@@ Might be sensitive to order e.g. div by 0 static final List>> $TYPE$_GENERATOR_PAIRS = @@ -1228,6 +1260,13 @@ relativeError)); flatMap(fa -> $TYPE$_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). collect(Collectors.toList()); +#if[!FP] + static final List>> $TYPE$_SATURATING_GENERATOR_PAIRS = + Stream.of($TYPE$_GENERATORS.get(0)). + flatMap(fa -> $TYPE$_SATURATING_GENERATORS.stream().skip(1).map(fb -> List.of(fa, fb))). + collect(Collectors.toList()); + +#end[!FP] @DataProvider public Object[][] boolUnaryOpProvider() { return BOOL_ARRAY_GENERATORS.stream(). @@ -1258,12 +1297,31 @@ relativeError)); toArray(Object[][]::new); } +#if[!FP] + @DataProvider + public Object[][] $type$SaturatingBinaryOpProvider() { + return $TYPE$_SATURATING_GENERATOR_PAIRS.stream().map(List::toArray). + toArray(Object[][]::new); + } + +#end[!FP] @DataProvider public Object[][] $type$IndexedOpProvider() { return $TYPE$_GENERATOR_PAIRS.stream().map(List::toArray). toArray(Object[][]::new); } +#if[!FP] + @DataProvider + public Object[][] $type$SaturatingBinaryOpMaskProvider() { + return BOOLEAN_MASK_GENERATORS.stream(). + flatMap(fm -> $TYPE$_SATURATING_GENERATOR_PAIRS.stream().map(lfa -> { + return Stream.concat(lfa.stream(), Stream.of(fm)).toArray(); + })). + toArray(Object[][]::new); + } + +#end[!FP] @DataProvider public Object[][] $type$BinaryOpMaskProvider() { return BOOLEAN_MASK_GENERATORS.stream(). diff --git a/test/jdk/jdk/jfr/event/gc/collection/TestGarbageCollectionEventWithZMajor.java b/test/jdk/jdk/jfr/event/gc/collection/TestGarbageCollectionEventWithZMajor.java index 81e18439b57..3766d9d0d32 100644 --- a/test/jdk/jdk/jfr/event/gc/collection/TestGarbageCollectionEventWithZMajor.java +++ b/test/jdk/jdk/jfr/event/gc/collection/TestGarbageCollectionEventWithZMajor.java @@ -35,10 +35,10 @@ /** * @test - * @requires vm.hasJFR & vm.gc.ZGenerational + * @requires vm.hasJFR & vm.gc.Z * @key jfr * @library /test/lib /test/jdk - * @run main/othervm -Xmx50m -XX:+UseZGC -XX:+ZGenerational -XX:+UnlockExperimentalVMOptions -XX:-UseFastUnorderedTimeStamps -Xlog:gc* jdk.jfr.event.gc.collection.TestGarbageCollectionEventWithZMajor + * @run main/othervm -Xmx50m -XX:+UseZGC -XX:+UnlockExperimentalVMOptions -XX:-UseFastUnorderedTimeStamps -Xlog:gc* jdk.jfr.event.gc.collection.TestGarbageCollectionEventWithZMajor */ public class TestGarbageCollectionEventWithZMajor { diff --git a/test/jdk/jdk/jfr/event/gc/collection/TestGarbageCollectionEventWithZMinor.java b/test/jdk/jdk/jfr/event/gc/collection/TestGarbageCollectionEventWithZMinor.java index e7e94cf9ff0..c8d681594dd 100644 --- a/test/jdk/jdk/jfr/event/gc/collection/TestGarbageCollectionEventWithZMinor.java +++ b/test/jdk/jdk/jfr/event/gc/collection/TestGarbageCollectionEventWithZMinor.java @@ -40,12 +40,12 @@ /** * @test * @key jfr - * @requires vm.hasJFR & vm.gc.ZGenerational + * @requires vm.hasJFR & vm.gc.Z * @key jfr * @library /test/lib /test/jdk * @build jdk.test.whitebox.WhiteBox * @run driver jdk.test.lib.helpers.ClassFileInstaller jdk.test.whitebox.WhiteBox - * @run main/othervm -Xbootclasspath/a:. -XX:+UseZGC -XX:+ZGenerational -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:+UnlockExperimentalVMOptions -XX:-UseFastUnorderedTimeStamps -Xlog:gc* jdk.jfr.event.gc.collection.TestGarbageCollectionEventWithZMinor + * @run main/othervm -Xbootclasspath/a:. -XX:+UseZGC -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:+UnlockExperimentalVMOptions -XX:-UseFastUnorderedTimeStamps -Xlog:gc* jdk.jfr.event.gc.collection.TestGarbageCollectionEventWithZMinor */ public class TestGarbageCollectionEventWithZMinor { diff --git a/test/jdk/jdk/jfr/event/gc/collection/TestZOldGarbageCollectionEvent.java b/test/jdk/jdk/jfr/event/gc/collection/TestZOldGarbageCollectionEvent.java index 0f807f4f6e4..50177ffd16b 100644 --- a/test/jdk/jdk/jfr/event/gc/collection/TestZOldGarbageCollectionEvent.java +++ b/test/jdk/jdk/jfr/event/gc/collection/TestZOldGarbageCollectionEvent.java @@ -35,10 +35,10 @@ /** * @test - * @requires vm.hasJFR & vm.gc.ZGenerational + * @requires vm.hasJFR & vm.gc.Z * @key jfr * @library /test/lib /test/jdk - * @run main/othervm -Xmx50m -XX:+UseZGC -XX:+ZGenerational -XX:+UnlockExperimentalVMOptions -XX:-UseFastUnorderedTimeStamps -Xlog:gc* jdk.jfr.event.gc.collection.TestZOldGarbageCollectionEvent + * @run main/othervm -Xmx50m -XX:+UseZGC -XX:+UnlockExperimentalVMOptions -XX:-UseFastUnorderedTimeStamps -Xlog:gc* jdk.jfr.event.gc.collection.TestZOldGarbageCollectionEvent */ public class TestZOldGarbageCollectionEvent { diff --git a/test/jdk/jdk/jfr/event/gc/collection/TestZYoungGarbageCollectionEvent.java b/test/jdk/jdk/jfr/event/gc/collection/TestZYoungGarbageCollectionEvent.java index c16bdaa5d64..f8e4e8b344b 100644 --- a/test/jdk/jdk/jfr/event/gc/collection/TestZYoungGarbageCollectionEvent.java +++ b/test/jdk/jdk/jfr/event/gc/collection/TestZYoungGarbageCollectionEvent.java @@ -35,10 +35,10 @@ /** * @test - * @requires vm.hasJFR & vm.gc.ZGenerational + * @requires vm.hasJFR & vm.gc.Z * @key jfr * @library /test/lib /test/jdk - * @run main/othervm -Xmx50m -XX:+UseZGC -XX:+ZGenerational -XX:+UnlockExperimentalVMOptions -XX:-UseFastUnorderedTimeStamps -Xlog:gc* jdk.jfr.event.gc.collection.TestZYoungGarbageCollectionEvent + * @run main/othervm -Xmx50m -XX:+UseZGC -XX:+UnlockExperimentalVMOptions -XX:-UseFastUnorderedTimeStamps -Xlog:gc* jdk.jfr.event.gc.collection.TestZYoungGarbageCollectionEvent */ public class TestZYoungGarbageCollectionEvent { diff --git a/test/jdk/jdk/jfr/event/gc/detailed/TestGCPhaseConcurrent.java b/test/jdk/jdk/jfr/event/gc/detailed/TestGCPhaseConcurrent.java index fb048ee6bd7..48e188346f8 100644 --- a/test/jdk/jdk/jfr/event/gc/detailed/TestGCPhaseConcurrent.java +++ b/test/jdk/jdk/jfr/event/gc/detailed/TestGCPhaseConcurrent.java @@ -31,19 +31,11 @@ import jdk.test.lib.jfr.Events; /** - * @test id=ZGenerational + * @test id=Z * @key jfr * @library /test/lib /test/jdk /test/hotspot/jtreg - * @requires vm.hasJFR & vm.gc.ZGenerational - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Xmx32M jdk.jfr.event.gc.detailed.TestGCPhaseConcurrent Z - */ - -/** - * @test id=ZSinglegen - * @key jfr - * @library /test/lib /test/jdk /test/hotspot/jtreg - * @requires vm.hasJFR & vm.gc.ZSinglegen - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -Xmx32M jdk.jfr.event.gc.detailed.TestGCPhaseConcurrent X + * @requires vm.hasJFR & vm.gc.Z + * @run main/othervm -XX:+UseZGC -Xmx32M jdk.jfr.event.gc.detailed.TestGCPhaseConcurrent Z */ /** diff --git a/test/jdk/jdk/jfr/event/gc/detailed/TestZAllocationStallEvent.java b/test/jdk/jdk/jfr/event/gc/detailed/TestZAllocationStallEvent.java index 8977a574a62..1b4ce259784 100644 --- a/test/jdk/jdk/jfr/event/gc/detailed/TestZAllocationStallEvent.java +++ b/test/jdk/jdk/jfr/event/gc/detailed/TestZAllocationStallEvent.java @@ -32,19 +32,11 @@ import jdk.test.lib.jfr.Events; /** - * @test id=ZSinglegen - * @requires vm.hasJFR & vm.gc.ZSinglegen + * @test + * @requires vm.hasJFR & vm.gc.Z * @key jfr * @library /test/lib /test/jdk /test/hotspot/jtreg - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -Xmx32M -Xlog:gc*:gc.log::filecount=0 jdk.jfr.event.gc.detailed.TestZAllocationStallEvent - */ - -/** - * @test id=ZGenerational - * @requires vm.hasJFR & vm.gc.ZGenerational - * @key jfr - * @library /test/lib /test/jdk /test/hotspot/jtreg - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Xmx32M -Xlog:gc*:gc.log::filecount=0 jdk.jfr.event.gc.detailed.TestZAllocationStallEvent + * @run main/othervm -XX:+UseZGC -Xmx32M -Xlog:gc*:gc.log::filecount=0 jdk.jfr.event.gc.detailed.TestZAllocationStallEvent */ public class TestZAllocationStallEvent { diff --git a/test/jdk/jdk/jfr/event/gc/detailed/TestZPageAllocationEvent.java b/test/jdk/jdk/jfr/event/gc/detailed/TestZPageAllocationEvent.java index 182f7b3d509..d672a2654b8 100644 --- a/test/jdk/jdk/jfr/event/gc/detailed/TestZPageAllocationEvent.java +++ b/test/jdk/jdk/jfr/event/gc/detailed/TestZPageAllocationEvent.java @@ -32,19 +32,11 @@ import jdk.test.lib.jfr.Events; /** - * @test id=ZSinglegen - * @requires vm.hasJFR & vm.gc.ZSinglegen + * @test + * @requires vm.hasJFR & vm.gc.Z * @key jfr * @library /test/lib /test/jdk /test/hotspot/jtreg - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -Xmx32M jdk.jfr.event.gc.detailed.TestZPageAllocationEvent - */ - -/** - * @test id=ZGenerational - * @requires vm.hasJFR & vm.gc.ZGenerational - * @key jfr - * @library /test/lib /test/jdk /test/hotspot/jtreg - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Xmx32M jdk.jfr.event.gc.detailed.TestZPageAllocationEvent + * @run main/othervm -XX:+UseZGC -Xmx32M jdk.jfr.event.gc.detailed.TestZPageAllocationEvent */ public class TestZPageAllocationEvent { diff --git a/test/jdk/jdk/jfr/event/gc/detailed/TestZRelocationSetEvent.java b/test/jdk/jdk/jfr/event/gc/detailed/TestZRelocationSetEvent.java index 8f07abeaaef..f14eec97548 100644 --- a/test/jdk/jdk/jfr/event/gc/detailed/TestZRelocationSetEvent.java +++ b/test/jdk/jdk/jfr/event/gc/detailed/TestZRelocationSetEvent.java @@ -32,19 +32,11 @@ import jdk.test.lib.jfr.Events; /** - * @test id=ZSinglegen - * @requires vm.hasJFR & vm.gc.ZSinglegen + * @test + * @requires vm.hasJFR & vm.gc.Z * @key jfr * @library /test/lib /test/jdk /test/hotspot/jtreg - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -Xmx32M jdk.jfr.event.gc.detailed.TestZRelocationSetEvent - */ - -/** - * @test id=ZGenerational - * @requires vm.hasJFR & vm.gc.ZGenerational - * @key jfr - * @library /test/lib /test/jdk /test/hotspot/jtreg - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Xmx32M jdk.jfr.event.gc.detailed.TestZRelocationSetEvent + * @run main/othervm -XX:+UseZGC -Xmx32M jdk.jfr.event.gc.detailed.TestZRelocationSetEvent */ public class TestZRelocationSetEvent { diff --git a/test/jdk/jdk/jfr/event/gc/detailed/TestZRelocationSetGroupEvent.java b/test/jdk/jdk/jfr/event/gc/detailed/TestZRelocationSetGroupEvent.java index b997d173ffb..f00655cf942 100644 --- a/test/jdk/jdk/jfr/event/gc/detailed/TestZRelocationSetGroupEvent.java +++ b/test/jdk/jdk/jfr/event/gc/detailed/TestZRelocationSetGroupEvent.java @@ -32,19 +32,11 @@ import jdk.test.lib.jfr.Events; /** - * @test id=ZSinglegen - * @requires vm.hasJFR & vm.gc.ZSinglegen + * @test + * @requires vm.hasJFR & vm.gc.Z * @key jfr * @library /test/lib /test/jdk /test/hotspot/jtreg - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -Xmx32M jdk.jfr.event.gc.detailed.TestZRelocationSetGroupEvent - */ - -/** - * @test id=ZGenerational - * @requires vm.hasJFR & vm.gc.ZGenerational - * @key jfr - * @library /test/lib /test/jdk /test/hotspot/jtreg - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Xmx32M jdk.jfr.event.gc.detailed.TestZRelocationSetGroupEvent + * @run main/othervm -XX:+UseZGC -Xmx32M jdk.jfr.event.gc.detailed.TestZRelocationSetGroupEvent */ public class TestZRelocationSetGroupEvent { diff --git a/test/jdk/jdk/jfr/event/gc/detailed/TestZUncommitEvent.java b/test/jdk/jdk/jfr/event/gc/detailed/TestZUncommitEvent.java index 06fd9b5a1b8..e7a37e2de55 100644 --- a/test/jdk/jdk/jfr/event/gc/detailed/TestZUncommitEvent.java +++ b/test/jdk/jdk/jfr/event/gc/detailed/TestZUncommitEvent.java @@ -34,19 +34,11 @@ import jdk.test.lib.jfr.Events; /** - * @test id=ZSinglegen - * @requires vm.hasJFR & vm.gc.ZSinglegen + * @test id=Z + * @requires vm.hasJFR & vm.gc.Z * @key jfr * @library /test/lib /test/jdk /test/hotspot/jtreg - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -Xms32M -Xmx128M -Xlog:gc,gc+heap -XX:+ZUncommit -XX:ZUncommitDelay=1 jdk.jfr.event.gc.detailed.TestZUncommitEvent - */ - -/** - * @test id=ZGenerational - * @requires vm.hasJFR & vm.gc.ZGenerational - * @key jfr - * @library /test/lib /test/jdk /test/hotspot/jtreg - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Xms32M -Xmx128M -Xlog:gc,gc+heap -XX:+ZUncommit -XX:ZUncommitDelay=1 jdk.jfr.event.gc.detailed.TestZUncommitEvent + * @run main/othervm -XX:+UseZGC -Xms32M -Xmx128M -Xlog:gc,gc+heap -XX:+ZUncommit -XX:ZUncommitDelay=1 jdk.jfr.event.gc.detailed.TestZUncommitEvent */ public class TestZUncommitEvent { diff --git a/test/jdk/jdk/jfr/event/gc/detailed/TestZUnmapEvent.java b/test/jdk/jdk/jfr/event/gc/detailed/TestZUnmapEvent.java index 94460f8f278..a19e89771c0 100644 --- a/test/jdk/jdk/jfr/event/gc/detailed/TestZUnmapEvent.java +++ b/test/jdk/jdk/jfr/event/gc/detailed/TestZUnmapEvent.java @@ -32,19 +32,11 @@ import jdk.test.lib.jfr.Events; /** - * @test id=ZSinglegen - * @requires vm.hasJFR & vm.gc.ZSinglegen + * @test id=Z + * @requires vm.hasJFR & vm.gc.Z * @key jfr * @library /test/lib /test/jdk /test/hotspot/jtreg - * @run main/othervm -XX:+UseZGC -XX:-ZGenerational -Xmx32M jdk.jfr.event.gc.detailed.TestZUnmapEvent - */ - -/** - * @test id=ZGenerational - * @requires vm.hasJFR & vm.gc.ZGenerational - * @key jfr - * @library /test/lib /test/jdk /test/hotspot/jtreg - * @run main/othervm -XX:+UseZGC -XX:+ZGenerational -Xmx32M jdk.jfr.event.gc.detailed.TestZUnmapEvent + * @run main/othervm -XX:+UseZGC -Xmx32M jdk.jfr.event.gc.detailed.TestZUnmapEvent */ public class TestZUnmapEvent { diff --git a/test/jdk/jdk/jfr/event/oldobject/TestZ.java b/test/jdk/jdk/jfr/event/oldobject/TestZ.java index 224a1237324..99605846382 100644 --- a/test/jdk/jdk/jfr/event/oldobject/TestZ.java +++ b/test/jdk/jdk/jfr/event/oldobject/TestZ.java @@ -33,23 +33,13 @@ import jdk.test.lib.jfr.Events; /** - * @test id=ZSinglegen - * @requires vm.hasJFR & vm.gc.ZSinglegen + * @test + * @requires vm.hasJFR & vm.gc.Z * @key jfr * @summary Test leak profiler with ZGC * @library /test/lib /test/jdk * @modules jdk.jfr/jdk.jfr.internal.test - * @run main/othervm -XX:TLABSize=2k -XX:+UseZGC -XX:-ZGenerational jdk.jfr.event.oldobject.TestZ - */ - -/** - * @test id=ZGenerational - * @requires vm.hasJFR & vm.gc.ZGenerational - * @key jfr - * @summary Test leak profiler with ZGC - * @library /test/lib /test/jdk - * @modules jdk.jfr/jdk.jfr.internal.test - * @run main/othervm -XX:TLABSize=2k -XX:+UseZGC -XX:+ZGenerational jdk.jfr.event.oldobject.TestZ + * @run main/othervm -XX:TLABSize=2k -XX:+UseZGC jdk.jfr.event.oldobject.TestZ */ public class TestZ { diff --git a/test/jdk/jdk/security/jarsigner/Spec.java b/test/jdk/jdk/security/jarsigner/Spec.java index 0e189babb8b..5ca3b11cd96 100644 --- a/test/jdk/jdk/security/jarsigner/Spec.java +++ b/test/jdk/jdk/security/jarsigner/Spec.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -36,6 +36,7 @@ import jdk.security.jarsigner.JarSigner; import jdk.test.lib.util.JarUtils; +import jdk.test.lib.security.SecurityUtils; import sun.security.provider.certpath.X509CertPath; import java.io.File; @@ -175,14 +176,16 @@ public static void main(String[] args) throws Exception { .equals("SHA-384")); // Calculating large DSA and RSA keys are too slow. - KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA"); - kpg.initialize(1024); + String kpgRSA = "RSA"; + String kpgDSA = "DSA"; + KeyPairGenerator kpg = KeyPairGenerator.getInstance(kpgRSA); + kpg.initialize(SecurityUtils.getTestKeySize(kpgRSA)); assertTrue(JarSigner.Builder .getDefaultSignatureAlgorithm(kpg.generateKeyPair().getPrivate()) .equals("SHA384withRSA")); - kpg = KeyPairGenerator.getInstance("DSA"); - kpg.initialize(1024); + kpg = KeyPairGenerator.getInstance(kpgDSA); + kpg.initialize(SecurityUtils.getTestKeySize(kpgDSA)); assertTrue(JarSigner.Builder .getDefaultSignatureAlgorithm(kpg.generateKeyPair().getPrivate()) .equals("SHA256withDSA")); diff --git a/test/jdk/sun/security/ec/ECDSAPrimitive.java b/test/jdk/sun/security/ec/ECDSAPrimitive.java index ba9ed0dec80..71e2e30044b 100644 --- a/test/jdk/sun/security/ec/ECDSAPrimitive.java +++ b/test/jdk/sun/security/ec/ECDSAPrimitive.java @@ -93,7 +93,8 @@ public static void main(String[] args) throws Exception { digestAlg = null; } else { AlgorithmParameters params = - AlgorithmParameters.getInstance("EC", "SunEC"); + AlgorithmParameters.getInstance("EC", + System.getProperty("test.provider.name", "SunEC")); params.init(new ECGenParameterSpec(curveName)); ecParams = params.getParameterSpec( ECParameterSpec.class); diff --git a/test/jdk/sun/security/ec/ECDSAPrvGreaterThanOrder.java b/test/jdk/sun/security/ec/ECDSAPrvGreaterThanOrder.java index 40f52d534a7..f5a02971dbf 100644 --- a/test/jdk/sun/security/ec/ECDSAPrvGreaterThanOrder.java +++ b/test/jdk/sun/security/ec/ECDSAPrvGreaterThanOrder.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -52,7 +52,7 @@ public static void main(String[] args) throws Exception { KeyAgreement ka = null; try { sig = Signature.getInstance("SHA256withECDSA", - "SunEC"); + System.getProperty("test.provider.name", "SunEC")); sig.initSign(ecPrivKey); throw new RuntimeException("Expected exception for " + "ECDSA/" + sig.getAlgorithm() + "/" + curveName + @@ -66,7 +66,8 @@ public static void main(String[] args) throws Exception { // Next, try starting a ECDH operation try { - ka = KeyAgreement.getInstance("ECDH", "SunEC"); + ka = KeyAgreement.getInstance("ECDH", + System.getProperty("test.provider.name", "SunEC")); ka.init(ecPrivKey); throw new RuntimeException("Expected exception for ECDH/" + curveName + " not thrown."); @@ -83,7 +84,7 @@ private static ECPrivateKey makePrivateKey(String curveName) { System.out.println("Creating private key for curve " + curveName); AlgorithmParameters params = AlgorithmParameters.getInstance( - "EC", "SunEC"); + "EC", System.getProperty("test.provider.name", "SunEC")); params.init(new ECGenParameterSpec(curveName)); ECParameterSpec ecParameters = params.getParameterSpec( ECParameterSpec.class); @@ -96,7 +97,8 @@ private static ECPrivateKey makePrivateKey(String curveName) { System.out.println("Modified d Value is: " + dVal); // Create the private key - KeyFactory kf = KeyFactory.getInstance("EC", "SunEC"); + KeyFactory kf = KeyFactory.getInstance("EC", + System.getProperty("test.provider.name", "SunEC")); return (ECPrivateKey)kf.generatePrivate( new ECPrivateKeySpec(dVal, ecParameters)); } catch (GeneralSecurityException gse) { diff --git a/test/jdk/sun/security/ec/InvalidCurve.java b/test/jdk/sun/security/ec/InvalidCurve.java index 4c696970b84..76d3b6b79e6 100644 --- a/test/jdk/sun/security/ec/InvalidCurve.java +++ b/test/jdk/sun/security/ec/InvalidCurve.java @@ -38,7 +38,8 @@ public static void main(String[] args) { KeyPairGenerator keyGen; try { - keyGen = KeyPairGenerator.getInstance("EC", "SunEC"); + keyGen = KeyPairGenerator.getInstance("EC", + System.getProperty("test.provider.name", "SunEC")); ECGenParameterSpec brainpoolSpec = new ECGenParameterSpec("brainpoolP160r1"); keyGen.initialize(brainpoolSpec); diff --git a/test/jdk/sun/security/ec/NSASuiteB/TestSHAwithECDSASignatureOids.java b/test/jdk/sun/security/ec/NSASuiteB/TestSHAwithECDSASignatureOids.java index cca4e77befb..ba209d7e429 100644 --- a/test/jdk/sun/security/ec/NSASuiteB/TestSHAwithECDSASignatureOids.java +++ b/test/jdk/sun/security/ec/NSASuiteB/TestSHAwithECDSASignatureOids.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -45,7 +45,7 @@ public class TestSHAwithECDSASignatureOids { public static void main(String[] args) throws Exception { TestSignatureOidHelper helper = new TestSignatureOidHelper("EC", - "SunEC", 256, DATA); + System.getProperty("test.provider.name", "SunEC"), 256, DATA); helper.execute(); } } diff --git a/test/jdk/sun/security/ec/OidInstance.java b/test/jdk/sun/security/ec/OidInstance.java index 972c8e1026a..590ddce305e 100644 --- a/test/jdk/sun/security/ec/OidInstance.java +++ b/test/jdk/sun/security/ec/OidInstance.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2022, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -38,8 +38,8 @@ public class OidInstance { public static void main(String[] args) throws Exception { String oid = KnownOIDs.EC.value(); - KeyFactory.getInstance(oid, "SunEC"); - KeyPairGenerator.getInstance(oid, "SunEC"); - AlgorithmParameters.getInstance(oid, "SunEC"); + KeyFactory.getInstance(oid, System.getProperty("test.provider.name", "SunEC")); + KeyPairGenerator.getInstance(oid, System.getProperty("test.provider.name", "SunEC")); + AlgorithmParameters.getInstance(oid, System.getProperty("test.provider.name", "SunEC")); } } diff --git a/test/jdk/sun/security/ec/SignatureDigestTruncate.java b/test/jdk/sun/security/ec/SignatureDigestTruncate.java index 47f0123a491..99048f85137 100644 --- a/test/jdk/sun/security/ec/SignatureDigestTruncate.java +++ b/test/jdk/sun/security/ec/SignatureDigestTruncate.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2019, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -96,17 +96,20 @@ private static void runTest(String alg, String curveName, byte[] expectedSig = hex.parseHex(sigStr); AlgorithmParameters params = - AlgorithmParameters.getInstance("EC", "SunEC"); + AlgorithmParameters.getInstance("EC", + System.getProperty("test.provider.name", "SunEC")); params.init(new ECGenParameterSpec(curveName)); ECParameterSpec ecParams = params.getParameterSpec(ECParameterSpec.class); - KeyFactory kf = KeyFactory.getInstance("EC", "SunEC"); + KeyFactory kf = KeyFactory.getInstance("EC", + System.getProperty("test.provider.name", "SunEC")); BigInteger s = new BigInteger(1, privateKey); ECPrivateKeySpec privKeySpec = new ECPrivateKeySpec(s, ecParams); PrivateKey privKey = kf.generatePrivate(privKeySpec); - Signature sig = Signature.getInstance(alg, "SunEC"); + Signature sig = Signature.getInstance(alg, + System.getProperty("test.provider.name", "SunEC")); sig.initSign(privKey, new FixedRandom(k)); sig.update(msg); byte[] computedSig = sig.sign(); diff --git a/test/jdk/sun/security/ec/SignatureKAT.java b/test/jdk/sun/security/ec/SignatureKAT.java index 542d90d6ca5..802c74f3b69 100644 --- a/test/jdk/sun/security/ec/SignatureKAT.java +++ b/test/jdk/sun/security/ec/SignatureKAT.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -132,16 +132,19 @@ private static void runTest(TestData td) throws Exception { System.out.println("Testing " + td.sigName + " with " + td.cd.name); AlgorithmParameters params = - AlgorithmParameters.getInstance("EC", "SunEC"); + AlgorithmParameters.getInstance("EC", + System.getProperty("test.provider.name", "SunEC")); params.init(new ECGenParameterSpec(td.cd.name)); ECParameterSpec ecParams = params.getParameterSpec(ECParameterSpec.class); - KeyFactory kf = KeyFactory.getInstance("EC", "SunEC"); + KeyFactory kf = KeyFactory.getInstance("EC", + System.getProperty("test.provider.name", "SunEC")); PrivateKey privKey = kf.generatePrivate (new ECPrivateKeySpec(td.cd.priv, ecParams)); - Signature sig = Signature.getInstance(td.sigName, "SunEC"); + Signature sig = Signature.getInstance(td.sigName, + System.getProperty("test.provider.name", "SunEC")); sig.initSign(privKey); sig.update(td.cd.msgBytes); // NOTE: there is no way to set the nonce value into current SunEC diff --git a/test/jdk/sun/security/ec/SignedObjectChain.java b/test/jdk/sun/security/ec/SignedObjectChain.java index cfeff8c1ad5..e245a6caa2d 100644 --- a/test/jdk/sun/security/ec/SignedObjectChain.java +++ b/test/jdk/sun/security/ec/SignedObjectChain.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -35,7 +35,7 @@ public class SignedObjectChain { private static class Test extends Chain.Test { public Test(Chain.SigAlg sigAlg) { - super(sigAlg, Chain.KeyAlg.EC, Chain.Provider.SunEC); + super(sigAlg, Chain.KeyAlg.EC, Chain.Provider.TestProvider_or_SunEC); } } diff --git a/test/jdk/sun/security/ec/TestEC.java b/test/jdk/sun/security/ec/TestEC.java index de4f47ca5ed..dacb67ce892 100644 --- a/test/jdk/sun/security/ec/TestEC.java +++ b/test/jdk/sun/security/ec/TestEC.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2009, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -85,7 +85,7 @@ public static void main(String[] args) throws Exception { } public static void main0(String[] args) throws Exception { - Provider p = Security.getProvider("SunEC"); + Provider p = Security.getProvider(System.getProperty("test.provider.name", "SunEC")); if (p == null) { throw new NoSuchProviderException("Can't get SunEC provider"); diff --git a/test/jdk/sun/security/ec/ed/EdCRLSign.java b/test/jdk/sun/security/ec/ed/EdCRLSign.java index 4ed512b8f20..10a801f4f5f 100644 --- a/test/jdk/sun/security/ec/ed/EdCRLSign.java +++ b/test/jdk/sun/security/ec/ed/EdCRLSign.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -44,7 +44,7 @@ public class EdCRLSign { private static final String OID25519 = "OID.1.3.101.112"; private static final String OIDN448 = "1.3.101.113"; private static final String OID448 = "OID.1.3.101.113"; - private static final String PROVIDER = "SunEC"; + private static final String PROVIDER = System.getProperty("test.provider.name", "SunEC"); private static final SecureRandom S_RND = new SecureRandom(new byte[]{0x1}); public static void main(String[] args) throws Exception { diff --git a/test/jdk/sun/security/ec/ed/EdDSAKeyCompatibility.java b/test/jdk/sun/security/ec/ed/EdDSAKeyCompatibility.java index 4240ec53477..f3796073b71 100644 --- a/test/jdk/sun/security/ec/ed/EdDSAKeyCompatibility.java +++ b/test/jdk/sun/security/ec/ed/EdDSAKeyCompatibility.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -54,7 +54,7 @@ public class EdDSAKeyCompatibility { private static final String EDDSA = "EdDSA"; private static final String ED25519 = "Ed25519"; private static final String ED448 = "Ed448"; - private static final String PROVIDER = "SunEC"; + private static final String PROVIDER = System.getProperty("test.provider.name", "SunEC"); public static void main(String[] args) throws Exception { diff --git a/test/jdk/sun/security/ec/ed/EdDSAKeySize.java b/test/jdk/sun/security/ec/ed/EdDSAKeySize.java index d5a6bec6f5a..8cb207c8fe2 100644 --- a/test/jdk/sun/security/ec/ed/EdDSAKeySize.java +++ b/test/jdk/sun/security/ec/ed/EdDSAKeySize.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -60,7 +60,7 @@ public class EdDSAKeySize { private static final String OID25519 = "OID.1.3.101.112"; private static final String OIDN448 = "1.3.101.113"; private static final String OID448 = "OID.1.3.101.113"; - private static final String PROVIDER = "SunEC"; + private static final String PROVIDER = System.getProperty("test.provider.name", "SunEC"); private static final SecureRandom RND = new SecureRandom(new byte[]{0x1}); public static void main(String[] args) throws Exception { diff --git a/test/jdk/sun/security/ec/ed/EdDSANegativeTest.java b/test/jdk/sun/security/ec/ed/EdDSANegativeTest.java index c03249e8553..ba45be67575 100644 --- a/test/jdk/sun/security/ec/ed/EdDSANegativeTest.java +++ b/test/jdk/sun/security/ec/ed/EdDSANegativeTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -48,7 +48,7 @@ public class EdDSANegativeTest { private static final String EDDSA = "EdDSA"; private static final String ED25519 = "Ed25519"; private static final String ED448 = "Ed448"; - private static final String PROVIDER = "SunEC"; + private static final String PROVIDER = System.getProperty("test.provider.name", "SunEC"); private static final String OTHER = "other"; private static final byte[] MSG = "TEST".getBytes(); diff --git a/test/jdk/sun/security/ec/ed/EdDSAParamSpec.java b/test/jdk/sun/security/ec/ed/EdDSAParamSpec.java index 046134f220d..b13f51a74a7 100644 --- a/test/jdk/sun/security/ec/ed/EdDSAParamSpec.java +++ b/test/jdk/sun/security/ec/ed/EdDSAParamSpec.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -43,7 +43,7 @@ public class EdDSAParamSpec { private static final String EDDSA = "EdDSA"; private static final String ED25519 = "Ed25519"; private static final String ED448 = "Ed448"; - private static final String PROVIDER = "SunEC"; + private static final String PROVIDER = System.getProperty("test.provider.name", "SunEC"); private static final byte[] MSG = "TEST".getBytes(); private static final SecureRandom RND = new SecureRandom(new byte[]{0x1}); diff --git a/test/jdk/sun/security/ec/ed/EdDSAReuseTest.java b/test/jdk/sun/security/ec/ed/EdDSAReuseTest.java index bebabb8539f..9e40b572513 100644 --- a/test/jdk/sun/security/ec/ed/EdDSAReuseTest.java +++ b/test/jdk/sun/security/ec/ed/EdDSAReuseTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -42,7 +42,7 @@ public class EdDSAReuseTest { private static final String EDDSA = "EdDSA"; private static final String ED25519 = "Ed25519"; private static final String ED448 = "Ed448"; - private static final String PROVIDER = "SunEC"; + private static final String PROVIDER = System.getProperty("test.provider.name", "SunEC"); private static final String MSG = "TEST"; private static final int REUSE = 20; private static final int ONCE = 1; diff --git a/test/jdk/sun/security/ec/ed/EdDSATest.java b/test/jdk/sun/security/ec/ed/EdDSATest.java index 5ba06b8970a..c154bca4252 100644 --- a/test/jdk/sun/security/ec/ed/EdDSATest.java +++ b/test/jdk/sun/security/ec/ed/EdDSATest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -68,7 +68,7 @@ public class EdDSATest { private static final String OID25519 = "OID.1.3.101.112"; private static final String OIDN448 = "1.3.101.113"; private static final String OID448 = "OID.1.3.101.113"; - private static final String PROVIDER = "SunEC"; + private static final String PROVIDER = System.getProperty("test.provider.name", "SunEC"); private static final byte[] MSG = "TEST".getBytes(); private static final SecureRandom S_RND = new SecureRandom(new byte[]{0x1}); diff --git a/test/jdk/sun/security/ec/ed/TestEdDSA.java b/test/jdk/sun/security/ec/ed/TestEdDSA.java index 511d92ab997..1990638496f 100644 --- a/test/jdk/sun/security/ec/ed/TestEdDSA.java +++ b/test/jdk/sun/security/ec/ed/TestEdDSA.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -462,10 +462,14 @@ private static void runBasicTest(String name, Object param) * when the algorithm ID for a specific curve is specified. */ private static void runCurveMixTest() throws Exception { - runCurveMixTest("SunEC", "Ed25519", 448); - runCurveMixTest("SunEC", "Ed25519", "Ed448"); - runCurveMixTest("SunEC", "Ed448", 255); - runCurveMixTest("SunEC", "Ed448", "Ed25519"); + runCurveMixTest(System.getProperty("test.provider.name", "SunEC"), + "Ed25519", 448); + runCurveMixTest(System.getProperty("test.provider.name", "SunEC"), + "Ed25519", "Ed448"); + runCurveMixTest(System.getProperty("test.provider.name", "SunEC"), + "Ed448", 255); + runCurveMixTest(System.getProperty("test.provider.name", "SunEC"), + "Ed448", "Ed25519"); } private static void runCurveMixTest(String providerName, String name, diff --git a/test/jdk/sun/security/jca/PreferredProviderNegativeTest.java b/test/jdk/sun/security/jca/PreferredProviderNegativeTest.java index 58bcbe91153..cd74b5164d3 100644 --- a/test/jdk/sun/security/jca/PreferredProviderNegativeTest.java +++ b/test/jdk/sun/security/jca/PreferredProviderNegativeTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -107,7 +107,7 @@ public static void main(String[] args) String expected; String value = args[1]; - expected = "SunJCE"; + expected = System.getProperty("test.provider.name", "SunJCE"); if (args.length >= 2) { switch (args[0]) { diff --git a/test/jdk/sun/security/mscapi/InteropWithSunRsaSign.java b/test/jdk/sun/security/mscapi/InteropWithSunRsaSign.java index cc01caca17c..1494c175c7a 100644 --- a/test/jdk/sun/security/mscapi/InteropWithSunRsaSign.java +++ b/test/jdk/sun/security/mscapi/InteropWithSunRsaSign.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -103,11 +103,13 @@ static void matrix(PSSParameterSpec pss) throws Exception { "-------", "----------------", "------", "--------", "------"); // KeyPairGenerator chooses SPI when getInstance() is called. - String[] provsForKPG = {"SunRsaSign", "SunMSCAPI"}; + String[] provsForKPG = {System.getProperty("test.provider.name", "SunRsaSign"), + "SunMSCAPI"}; // "-" means no preferred provider. In this case, SPI is chosen // when initSign/initVerify is called. Worth testing. - String[] provsForSignature = {"SunRsaSign", "SunMSCAPI", "-"}; + String[] provsForSignature = {System.getProperty("test.provider.name", "SunRsaSign"), + "SunMSCAPI", "-"}; int pos = 0; for (String pg : provsForKPG) { diff --git a/test/jdk/sun/security/pkcs/pkcs8/TestLeadingZeros.java b/test/jdk/sun/security/pkcs/pkcs8/TestLeadingZeros.java index 92a20450157..4291f4e25c1 100644 --- a/test/jdk/sun/security/pkcs/pkcs8/TestLeadingZeros.java +++ b/test/jdk/sun/security/pkcs/pkcs8/TestLeadingZeros.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -50,7 +50,8 @@ public class TestLeadingZeros { }; public static void main(String[] argv) throws Exception { - KeyFactory factory = KeyFactory.getInstance("DSA", "SUN"); + KeyFactory factory = KeyFactory.getInstance("DSA", + System.getProperty("test.provider.name", "SUN")); for (String encodings : PKCS8_ENCODINGS) { byte[] encodingBytes = hexToBytes(encodings); diff --git a/test/jdk/sun/security/pkcs11/Cipher/EncryptionPadding.java b/test/jdk/sun/security/pkcs11/Cipher/EncryptionPadding.java index 8757c0bab7a..7e1f0561f6c 100644 --- a/test/jdk/sun/security/pkcs11/Cipher/EncryptionPadding.java +++ b/test/jdk/sun/security/pkcs11/Cipher/EncryptionPadding.java @@ -93,9 +93,10 @@ private static void testWithInputSize(Provider p, int inputSize, sunPKCS11cipher.doFinal(ByteBuffer.allocate(0), cipherText); } - Cipher sunJCECipher = Cipher.getInstance(transformation, "SunJCE"); - sunJCECipher.init(Cipher.DECRYPT_MODE, key); - byte[] sunJCEPlain = sunJCECipher.doFinal(cipherText.array()); + Cipher providerCipher = Cipher.getInstance(transformation, + System.getProperty("test.provider.name", "SunJCE")); + providerCipher.init(Cipher.DECRYPT_MODE, key); + byte[] sunJCEPlain = providerCipher.doFinal(cipherText.array()); if (!Arrays.equals(plainText, sunJCEPlain)) { throw new Exception("Cross-provider cipher test failed."); diff --git a/test/jdk/sun/security/pkcs11/Cipher/KeyWrap/NISTWrapKAT.java b/test/jdk/sun/security/pkcs11/Cipher/KeyWrap/NISTWrapKAT.java index e6724d38321..e1f32ea8076 100644 --- a/test/jdk/sun/security/pkcs11/Cipher/KeyWrap/NISTWrapKAT.java +++ b/test/jdk/sun/security/pkcs11/Cipher/KeyWrap/NISTWrapKAT.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -259,9 +259,12 @@ public void testKeyWrap(String algo, String key, int keyLen, System.out.println("=> skip, exceeds max allowed size " + allowed); return; } - Cipher c1 = Cipher.getInstance(algo, "SunJCE"); - Cipher c2 = Cipher.getInstance(algo, "SunJCE"); - Cipher c3 = Cipher.getInstance(algo, "SunJCE"); + Cipher c1 = Cipher.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); + Cipher c2 = Cipher.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); + Cipher c3 = Cipher.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); byte[] keyVal = toBytes(key, keyLen << 1); byte[] dataVal = toBytes(data, dataLen << 1); @@ -319,9 +322,12 @@ public void testEnc(String algo, String key, int keyLen, String data, System.out.println("=> skip, exceeds max allowed size " + allowed); return; } - Cipher c1 = Cipher.getInstance(algo, "SunJCE"); - Cipher c2 = Cipher.getInstance(algo, "SunJCE"); - Cipher c3 = Cipher.getInstance(algo, "SunJCE"); + Cipher c1 = Cipher.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); + Cipher c2 = Cipher.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); + Cipher c3 = Cipher.getInstance(algo, + System.getProperty("test.provider.name", "SunJCE")); byte[] keyVal = toBytes(key, keyLen << 1); byte[] dataVal = toBytes(data, dataLen << 1); diff --git a/test/jdk/sun/security/pkcs11/Cipher/KeyWrap/TestGeneral.java b/test/jdk/sun/security/pkcs11/Cipher/KeyWrap/TestGeneral.java index 7ff5ec6563b..0cfb4557572 100644 --- a/test/jdk/sun/security/pkcs11/Cipher/KeyWrap/TestGeneral.java +++ b/test/jdk/sun/security/pkcs11/Cipher/KeyWrap/TestGeneral.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -245,7 +245,8 @@ public void main(Provider p) throws Exception { SecretKey aes256 = new SecretKeySpec(DATA_32, "AES"); SecretKey any256 = new SecretKeySpec(DATA_32, "ANY"); PrivateKey priv = KeyPairGenerator.getInstance - ("RSA", "SunRsaSign").generateKeyPair().getPrivate(); + ("RSA", System.getProperty("test.provider.name","SunRsaSign")) + .generateKeyPair().getPrivate(); String[] algos = { "AES/KW/PKCS5Padding", "AES/KW/NoPadding", "AES/KWP/NoPadding" diff --git a/test/jdk/sun/security/pkcs11/Cipher/PBECipher.java b/test/jdk/sun/security/pkcs11/Cipher/PBECipher.java index 04e9adf9663..242d09f6e9b 100644 --- a/test/jdk/sun/security/pkcs11/Cipher/PBECipher.java +++ b/test/jdk/sun/security/pkcs11/Cipher/PBECipher.java @@ -75,7 +75,8 @@ private enum Configuration { AnonymousPBEKey, } - private static Provider sunJCE = Security.getProvider("SunJCE"); + private static Provider sunJCE = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); private record AssertionData(String pbeCipherAlgo, String cipherAlgo, BigInteger expectedCiphertext) {} diff --git a/test/jdk/sun/security/pkcs11/Cipher/TestPKCS5PaddingError.java b/test/jdk/sun/security/pkcs11/Cipher/TestPKCS5PaddingError.java index d192526bf4b..cf8e000fce7 100644 --- a/test/jdk/sun/security/pkcs11/Cipher/TestPKCS5PaddingError.java +++ b/test/jdk/sun/security/pkcs11/Cipher/TestPKCS5PaddingError.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -78,7 +78,7 @@ public void main(Provider p) throws Exception { KeyGenerator.getInstance(currTest.keyAlgo, p); SecretKey key = kg.generateKey(); Cipher c1 = Cipher.getInstance(currTest.transformation, - "SunJCE"); + System.getProperty("test.provider.name", "SunJCE")); c1.init(Cipher.ENCRYPT_MODE, key); byte[] cipherText = c1.doFinal(plainText); AlgorithmParameters params = c1.getParameters(); diff --git a/test/jdk/sun/security/pkcs11/Cipher/TestRSACipher.java b/test/jdk/sun/security/pkcs11/Cipher/TestRSACipher.java index 233cb4e623e..6799b19d3e7 100644 --- a/test/jdk/sun/security/pkcs11/Cipher/TestRSACipher.java +++ b/test/jdk/sun/security/pkcs11/Cipher/TestRSACipher.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -44,6 +44,7 @@ import javax.crypto.BadPaddingException; import javax.crypto.Cipher; import javax.crypto.IllegalBlockSizeException; +import jdk.test.lib.security.SecurityUtils; public class TestRSACipher extends PKCS11Test { @@ -58,8 +59,10 @@ public void main(Provider p) throws Exception { System.out.println("Not supported by provider, skipping"); return; } - KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", p); - kpg.initialize(1024); + String kpgAlgorithm = "RSA"; + int keySize = SecurityUtils.getTestKeySize(kpgAlgorithm); + KeyPairGenerator kpg = KeyPairGenerator.getInstance(kpgAlgorithm, p); + kpg.initialize(keySize); KeyPair kp = kpg.generateKeyPair(); PublicKey publicKey = kp.getPublic(); PrivateKey privateKey = kp.getPrivate(); @@ -70,7 +73,8 @@ public void main(Provider p) throws Exception { for (String rsaAlgo: RSA_ALGOS) { Cipher c1 = Cipher.getInstance(rsaAlgo, p); - Cipher c2 = Cipher.getInstance(rsaAlgo, "SunJCE"); + Cipher c2 = Cipher.getInstance(rsaAlgo, + System.getProperty("test.provider.name", "SunJCE")); c1.init(Cipher.ENCRYPT_MODE, publicKey); e = c1.doFinal(b); @@ -112,7 +116,8 @@ public void main(Provider p) throws Exception { c1.update(b); e = c1.doFinal(); - c1.update(new byte[256]); + // Longer buffer size to verify IllegalBlockSizeException is thrown + c1.update(new byte[keySize / 4]); try { e = c1.doFinal(); throw new Exception("completed call"); diff --git a/test/jdk/sun/security/pkcs11/Cipher/TestRSACipherWrap.java b/test/jdk/sun/security/pkcs11/Cipher/TestRSACipherWrap.java index 7191d5baac5..0be916ebf9e 100644 --- a/test/jdk/sun/security/pkcs11/Cipher/TestRSACipherWrap.java +++ b/test/jdk/sun/security/pkcs11/Cipher/TestRSACipherWrap.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2008, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -43,6 +43,7 @@ import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec; +import jdk.test.lib.security.SecurityUtils; public class TestRSACipherWrap extends PKCS11Test { @@ -57,13 +58,15 @@ public void main(Provider p) throws Exception { System.out.println(RSA_ALGOS[0] + " unsupported, skipping"); return; } - KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", p); - kpg.initialize(1024); + String kpgAlgorithm = "RSA"; + KeyPairGenerator kpg = KeyPairGenerator.getInstance(kpgAlgorithm, p); + kpg.initialize(SecurityUtils.getTestKeySize(kpgAlgorithm)); KeyPair kp = kpg.generateKeyPair(); for (String rsaAlgo: RSA_ALGOS) { Cipher cipherPKCS11 = Cipher.getInstance(rsaAlgo, p); - Cipher cipherJce = Cipher.getInstance(rsaAlgo, "SunJCE"); + Cipher cipherJce = Cipher.getInstance(rsaAlgo, + System.getProperty("test.provider.name", "SunJCE")); String algos[] = {"AES", "RC2", "Blowfish"}; int keySizes[] = {128, 256}; diff --git a/test/jdk/sun/security/pkcs11/Cipher/TestRawRSACipher.java b/test/jdk/sun/security/pkcs11/Cipher/TestRawRSACipher.java index 9eceea3a394..fe6433d096e 100644 --- a/test/jdk/sun/security/pkcs11/Cipher/TestRawRSACipher.java +++ b/test/jdk/sun/security/pkcs11/Cipher/TestRawRSACipher.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -41,6 +41,7 @@ import java.util.HexFormat; import java.util.Random; import javax.crypto.Cipher; +import jdk.test.lib.security.SecurityUtils; public class TestRawRSACipher extends PKCS11Test { @@ -53,8 +54,9 @@ public void main(Provider p) throws Exception { return; } - final int KEY_LEN = 1024; - KeyPairGenerator kpGen = KeyPairGenerator.getInstance("RSA", p); + String kpgAlgorithm = "RSA"; + final int KEY_LEN = SecurityUtils.getTestKeySize(kpgAlgorithm); + KeyPairGenerator kpGen = KeyPairGenerator.getInstance(kpgAlgorithm, p); kpGen.initialize(KEY_LEN); KeyPair kp = kpGen.generateKeyPair(); Random random = new Random(); @@ -64,7 +66,8 @@ public void main(Provider p) throws Exception { plainText[0] = 0; // to ensure that it's less than modulus Cipher c1 = Cipher.getInstance("RSA/ECB/NoPadding", p); - Cipher c2 = Cipher.getInstance("RSA/ECB/NoPadding", "SunJCE"); + Cipher c2 = Cipher.getInstance("RSA/ECB/NoPadding", + System.getProperty("test.provider.name", "SunJCE")); c1.init(Cipher.ENCRYPT_MODE, kp.getPublic()); c2.init(Cipher.DECRYPT_MODE, kp.getPrivate()); diff --git a/test/jdk/sun/security/pkcs11/Cipher/TestSymmCiphers.java b/test/jdk/sun/security/pkcs11/Cipher/TestSymmCiphers.java index e0a7d53e1c1..2395b329dd6 100644 --- a/test/jdk/sun/security/pkcs11/Cipher/TestSymmCiphers.java +++ b/test/jdk/sun/security/pkcs11/Cipher/TestSymmCiphers.java @@ -103,7 +103,7 @@ public void main(Provider p) throws Exception { SecretKey key = kg.generateKey(); Cipher c1 = Cipher.getInstance(currTest.transformation, p); Cipher c2 = Cipher.getInstance(currTest.transformation, - "SunJCE"); + System.getProperty("test.provider.name", "SunJCE")); byte[] plainTxt = new byte[currTest.dataSize]; random.nextBytes(plainTxt); diff --git a/test/jdk/sun/security/pkcs11/Cipher/TestSymmCiphersNoPad.java b/test/jdk/sun/security/pkcs11/Cipher/TestSymmCiphersNoPad.java index 2288a5699fb..7505c21a1ab 100644 --- a/test/jdk/sun/security/pkcs11/Cipher/TestSymmCiphersNoPad.java +++ b/test/jdk/sun/security/pkcs11/Cipher/TestSymmCiphersNoPad.java @@ -89,7 +89,7 @@ public void main(Provider p) throws Exception { SecretKey key = kg.generateKey(); Cipher c1 = Cipher.getInstance(currTest.transformation, p); Cipher c2 = Cipher.getInstance(currTest.transformation, - "SunJCE"); + System.getProperty("test.provider.name", "SunJCE")); byte[] plainTxt = new byte[currTest.dataSize]; random.nextBytes(plainTxt); diff --git a/test/jdk/sun/security/pkcs11/KeyAgreement/TestDH.java b/test/jdk/sun/security/pkcs11/KeyAgreement/TestDH.java index d5569f0f3cd..13b09d16dcf 100644 --- a/test/jdk/sun/security/pkcs11/KeyAgreement/TestDH.java +++ b/test/jdk/sun/security/pkcs11/KeyAgreement/TestDH.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -38,6 +38,7 @@ import java.util.Arrays; import javax.crypto.KeyAgreement; import javax.crypto.SecretKey; +import jdk.test.lib.security.SecurityUtils; public class TestDH extends PKCS11Test { @@ -47,8 +48,9 @@ public void main(Provider p) throws Exception { System.out.println("DH not supported, skipping"); return; } - KeyPairGenerator kpg = KeyPairGenerator.getInstance("DH", p); - kpg.initialize(512); + String kpgAlgorithm = "DH"; + KeyPairGenerator kpg = KeyPairGenerator.getInstance(kpgAlgorithm, p); + kpg.initialize(SecurityUtils.getTestKeySize(kpgAlgorithm)); KeyPair kp1 = kpg.generateKeyPair(); KeyPair kp2 = kpg.generateKeyPair(); @@ -68,7 +70,8 @@ public void main(Provider p) throws Exception { throw new Exception("Secrets (1,2) do not match"); } - ka2 = KeyAgreement.getInstance("DH", "SunJCE"); + ka2 = KeyAgreement.getInstance("DH", + System.getProperty("test.provider.name", "SunJCE")); ka2.init(kp1.getPrivate()); ka2.doPhase(kp2.getPublic(), true); System.out.println("Derive 3..."); @@ -101,7 +104,8 @@ private static void testAlgorithm(KeyAgreement ka1, KeyPair kp1, ka1.init(kp1.getPrivate()); ka1.doPhase(kp2.getPublic(), true); - System.out.println("Derive " + algorithm + " using SunJCE..."); + System.out.println("Derive " + algorithm + " using " + + System.getProperty("test.provider.name", "SunJCE") + "..."); key1 = ka1.generateSecret(algorithm); ka2.init(kp1.getPrivate()); diff --git a/test/jdk/sun/security/pkcs11/KeyAgreement/TestInterop.java b/test/jdk/sun/security/pkcs11/KeyAgreement/TestInterop.java index 146a6505423..9172b2a4941 100644 --- a/test/jdk/sun/security/pkcs11/KeyAgreement/TestInterop.java +++ b/test/jdk/sun/security/pkcs11/KeyAgreement/TestInterop.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -90,7 +90,8 @@ public void main(Provider prov) throws Exception { DHPrivateKeySpec privateSpec; KeyFactory kf = KeyFactory.getInstance("DH"); KeyAgreement ka = KeyAgreement.getInstance("DH", prov); - KeyAgreement kbSunJCE = KeyAgreement.getInstance("DH", "SunJCE"); + KeyAgreement kbSunJCE = KeyAgreement.getInstance("DH", + System.getProperty("test.provider.name", "SunJCE")); DHPrivateKeySpec privSpecA = new DHPrivateKeySpec(xa, p, g); DHPublicKeySpec pubSpecA = new DHPublicKeySpec(ya, p, g); PrivateKey privA = kf.generatePrivate(privSpecA); diff --git a/test/jdk/sun/security/pkcs11/KeyStore/Basic.java b/test/jdk/sun/security/pkcs11/KeyStore/Basic.java index 0ac7f37d59c..b6c7af91b57 100644 --- a/test/jdk/sun/security/pkcs11/KeyStore/Basic.java +++ b/test/jdk/sun/security/pkcs11/KeyStore/Basic.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -142,7 +142,8 @@ public void main(Provider p) throws Exception { // get private keys KeyFactory kf = KeyFactory.getInstance("RSA"); - KeyFactory dsaKf = KeyFactory.getInstance("DSA", "SUN"); + KeyFactory dsaKf = KeyFactory.getInstance("DSA", + System.getProperty("test.provider.name", "SUN")); ObjectInputStream ois1 = new ObjectInputStream (new FileInputStream(new File(DIR, "pk1.key"))); diff --git a/test/jdk/sun/security/pkcs11/Mac/PBAMac.java b/test/jdk/sun/security/pkcs11/Mac/PBAMac.java index d0b3312c52b..c9b5e2c3e7b 100644 --- a/test/jdk/sun/security/pkcs11/Mac/PBAMac.java +++ b/test/jdk/sun/security/pkcs11/Mac/PBAMac.java @@ -66,7 +66,8 @@ private enum Configuration { AnonymousPBEKey, } - private static Provider sunJCE = Security.getProvider("SunJCE"); + private static Provider sunJCE = Security.getProvider( + System.getProperty("test.provider.name", "SunJCE")); private record AssertionData(String pbeHmacAlgo, String hmacAlgo, BigInteger expectedMac) {} diff --git a/test/jdk/sun/security/pkcs11/MessageDigest/ReinitDigest.java b/test/jdk/sun/security/pkcs11/MessageDigest/ReinitDigest.java index 132ba84f679..90ed49b42f5 100644 --- a/test/jdk/sun/security/pkcs11/MessageDigest/ReinitDigest.java +++ b/test/jdk/sun/security/pkcs11/MessageDigest/ReinitDigest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -73,7 +73,8 @@ public void main(Provider p) throws Exception { private void doTest(String alg, Provider p, byte[] data1, byte[] data2) throws Exception { System.out.println("Testing " + alg); - MessageDigest md1 = MessageDigest.getInstance(alg, "SUN"); + MessageDigest md1 = MessageDigest.getInstance(alg, + System.getProperty("test.provider.name", "SUN")); byte[] d1 = md1.digest(data1); MessageDigest md2 = MessageDigest.getInstance(alg, p); checkInstances(md1, md2); diff --git a/test/jdk/sun/security/pkcs11/Signature/SigInteropPSS.java b/test/jdk/sun/security/pkcs11/Signature/SigInteropPSS.java index 11147022771..d5b22400bff 100644 --- a/test/jdk/sun/security/pkcs11/Signature/SigInteropPSS.java +++ b/test/jdk/sun/security/pkcs11/Signature/SigInteropPSS.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2019, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -59,7 +59,8 @@ public void main(Provider p) throws Exception { } Signature sigSunRsaSign = - Signature.getInstance("RSASSA-PSS", "SunRsaSign"); + Signature.getInstance("RSASSA-PSS", + System.getProperty("test.provider.name", "SunRsaSign")); KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", p); kpg.initialize(3072); diff --git a/test/jdk/sun/security/pkcs11/Signature/SigInteropPSS2.java b/test/jdk/sun/security/pkcs11/Signature/SigInteropPSS2.java index c15f10aab3e..dfe56167848 100644 --- a/test/jdk/sun/security/pkcs11/Signature/SigInteropPSS2.java +++ b/test/jdk/sun/security/pkcs11/Signature/SigInteropPSS2.java @@ -51,8 +51,9 @@ public static void main(String[] args) throws Exception { @Override public void main(Provider p) throws Exception { - Provider sunRsaSign = Security.getProvider("SunRsaSign"); - Security.removeProvider("SunRsaSign"); + String providerName = System.getProperty("test.provider.name", "SunRsaSign"); + Provider sunRsaSign = Security.getProvider(providerName); + Security.removeProvider(providerName); Signature sigPkcs11; Signature sigSunRsaSign = diff --git a/test/jdk/sun/security/pkcs11/Signature/TestDSAKeyLength.java b/test/jdk/sun/security/pkcs11/Signature/TestDSAKeyLength.java index b2ab96c90c6..d2515fa0f5a 100644 --- a/test/jdk/sun/security/pkcs11/Signature/TestDSAKeyLength.java +++ b/test/jdk/sun/security/pkcs11/Signature/TestDSAKeyLength.java @@ -62,7 +62,8 @@ protected boolean skipTest(Provider provider) { @Override public void main(Provider provider) throws Exception { - KeyPairGenerator kpg = KeyPairGenerator.getInstance("DSA", "SUN"); + KeyPairGenerator kpg = KeyPairGenerator.getInstance("DSA", + System.getProperty("test.provider.name", "SUN")); kpg.initialize(2048, new SecureRandom()); KeyPair pair = kpg.generateKeyPair(); diff --git a/test/jdk/sun/security/pkcs11/policy b/test/jdk/sun/security/pkcs11/policy index 54281a78179..d5a78b6ba82 100644 --- a/test/jdk/sun/security/pkcs11/policy +++ b/test/jdk/sun/security/pkcs11/policy @@ -1,3 +1,4 @@ grant { permission java.lang.RuntimePermission "setSecurityManager"; -}; \ No newline at end of file + permission java.util.PropertyPermission "test.provider.name", "read"; +}; diff --git a/test/jdk/sun/security/pkcs11/rsa/GenKeyStore.java b/test/jdk/sun/security/pkcs11/rsa/GenKeyStore.java index 629a504a040..26178e9a576 100644 --- a/test/jdk/sun/security/pkcs11/rsa/GenKeyStore.java +++ b/test/jdk/sun/security/pkcs11/rsa/GenKeyStore.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -74,7 +74,8 @@ private static void addToKeyStore(KeyStore ks, KeyPair kp, String name) throws E private static void generateKeyPair(KeyStore ks, int keyLength, String alias) throws Exception { System.out.println("Generating " + keyLength + " keypair " + alias + "..."); - KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", "SunRsaSign"); + KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", + System.getProperty("test.provider.name", "SunRsaSign")); kpg.initialize(keyLength); KeyPair kp = kpg.generateKeyPair(); addToKeyStore(ks, kp, alias); diff --git a/test/jdk/sun/security/pkcs11/rsa/rsakeys.ks.policy b/test/jdk/sun/security/pkcs11/rsa/rsakeys.ks.policy index 4a0b0d2c46d..6cc9a8f0248 100644 --- a/test/jdk/sun/security/pkcs11/rsa/rsakeys.ks.policy +++ b/test/jdk/sun/security/pkcs11/rsa/rsakeys.ks.policy @@ -1,4 +1,5 @@ grant { permission java.lang.RuntimePermission "setSecurityManager"; permission java.io.FilePermission "${test.src}/rsakeys.ks", "read"; -}; \ No newline at end of file + permission java.util.PropertyPermission "test.provider.name", "read"; +}; diff --git a/test/jdk/sun/security/provider/DSA/SupportedDSAParamGen.java b/test/jdk/sun/security/provider/DSA/SupportedDSAParamGen.java index 52a97b34a3e..5dcd86e2474 100644 --- a/test/jdk/sun/security/provider/DSA/SupportedDSAParamGen.java +++ b/test/jdk/sun/security/provider/DSA/SupportedDSAParamGen.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -40,7 +40,8 @@ public class SupportedDSAParamGen { public static void main(String[] args) throws Exception { AlgorithmParameterGenerator apg = - AlgorithmParameterGenerator.getInstance("DSA", "SUN"); + AlgorithmParameterGenerator.getInstance("DSA", + System.getProperty("test.provider.name", "SUN")); DSAGenParameterSpec spec = new DSAGenParameterSpec( Integer.valueOf(args[0]).intValue(), diff --git a/test/jdk/sun/security/provider/DSA/TestAlgParameterGenerator.java b/test/jdk/sun/security/provider/DSA/TestAlgParameterGenerator.java index cf39a5bab5e..2eac80d91bb 100644 --- a/test/jdk/sun/security/provider/DSA/TestAlgParameterGenerator.java +++ b/test/jdk/sun/security/provider/DSA/TestAlgParameterGenerator.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -73,7 +73,8 @@ private static void checkParamStrength(AlgorithmParameters param, public static void main(String[] args) throws Exception { AlgorithmParameterGenerator apg - = AlgorithmParameterGenerator.getInstance("DSA", "SUN"); + = AlgorithmParameterGenerator.getInstance("DSA", + System.getProperty("test.provider.name", "SUN")); long start, stop; // make sure no-init still works diff --git a/test/jdk/sun/security/provider/DSA/TestDSA.java b/test/jdk/sun/security/provider/DSA/TestDSA.java index 5d3228949f5..918f18ed081 100644 --- a/test/jdk/sun/security/provider/DSA/TestDSA.java +++ b/test/jdk/sun/security/provider/DSA/TestDSA.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -108,7 +108,7 @@ private static void verify(Provider provider, String alg, PublicKey key, byte[] public static void main(String[] args) throws Exception { long start = System.currentTimeMillis(); - Provider provider = Security.getProvider("SUN"); + Provider provider = Security.getProvider(System.getProperty("test.provider.name", "SUN")); System.out.println("Testing provider " + provider + "..."); KeyFactory kf = KeyFactory.getInstance("DSA", provider); diff --git a/test/jdk/sun/security/provider/DSA/TestDSA2.java b/test/jdk/sun/security/provider/DSA/TestDSA2.java index 320acce4880..ed3111695f1 100644 --- a/test/jdk/sun/security/provider/DSA/TestDSA2.java +++ b/test/jdk/sun/security/provider/DSA/TestDSA2.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -39,7 +39,8 @@ public class TestDSA2 { // NOTE: need to explictly specify provider since the more // preferred provider SunPKCS11 provider only supports up // 1024 bits. - private static final String PROV = "SUN"; + private static final String PROV = + System.getProperty("test.provider.name", "SUN"); private static final String[] SIG_ALGOS = { "NONEwithDSA", diff --git a/test/jdk/sun/security/provider/DSA/TestKeyPairGenerator.java b/test/jdk/sun/security/provider/DSA/TestKeyPairGenerator.java index 105c50015da..f2ddcec9d8d 100644 --- a/test/jdk/sun/security/provider/DSA/TestKeyPairGenerator.java +++ b/test/jdk/sun/security/provider/DSA/TestKeyPairGenerator.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -57,10 +57,12 @@ public static void main(String[] args) throws Exception { // problem was when not calling initialize() // do that twice to artifically inflate the time // on JDKs that do not have the fix - kpg = KeyPairGenerator.getInstance("DSA", "SUN"); + kpg = KeyPairGenerator.getInstance("DSA", + System.getProperty("test.provider.name", "SUN")); kp = kpg.generateKeyPair(); - kpg = KeyPairGenerator.getInstance("DSA", "SUN"); + kpg = KeyPairGenerator.getInstance("DSA", + System.getProperty("test.provider.name", "SUN")); kp = kpg.generateKeyPair(); // some other basic tests diff --git a/test/jdk/sun/security/provider/KeyStore/CaseSensitiveAliases.java b/test/jdk/sun/security/provider/KeyStore/CaseSensitiveAliases.java index e11a8ac87dc..fd47d0ac60f 100644 --- a/test/jdk/sun/security/provider/KeyStore/CaseSensitiveAliases.java +++ b/test/jdk/sun/security/provider/KeyStore/CaseSensitiveAliases.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,6 +24,7 @@ /* * @test * @bug 5091374 5100603 + * @library /test/lib * @summary make sure the JKS case sensitivity works correctly * @author Andreas Sterbenz */ @@ -34,6 +35,7 @@ import java.security.*; import java.security.cert.*; import java.security.cert.Certificate; +import jdk.test.lib.security.SecurityUtils; public class CaseSensitiveAliases { @@ -90,8 +92,9 @@ private static void main(String jks, boolean caseInsensitive) throws Exception { X509Certificate[] a1 = {c1}; X509Certificate[] a2 = {c2}; - KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA"); - kpg.initialize(512); + String kpgAlgorithm = "RSA"; + KeyPairGenerator kpg = KeyPairGenerator.getInstance(kpgAlgorithm); + kpg.initialize(SecurityUtils.getTestKeySize(kpgAlgorithm)); PrivateKey p1 = kpg.generateKeyPair().getPrivate(); PrivateKey p2 = kpg.generateKeyPair().getPrivate(); diff --git a/test/jdk/sun/security/provider/MessageDigest/DigestKAT.java b/test/jdk/sun/security/provider/MessageDigest/DigestKAT.java index 1f797330c48..ce3c9b3c7a9 100644 --- a/test/jdk/sun/security/provider/MessageDigest/DigestKAT.java +++ b/test/jdk/sun/security/provider/MessageDigest/DigestKAT.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -177,7 +177,7 @@ private static Test t(String alg, byte[] data, String digest) { static void runTests(Test[] tests) throws Exception { long start = System.currentTimeMillis(); - Provider p = Security.getProvider("SUN"); + Provider p = Security.getProvider(System.getProperty("test.provider.name","SUN")); System.out.println("Testing provider " + p.getName() + "..."); for (int i = 0; i < tests.length; i++) { Test test = tests[i]; diff --git a/test/jdk/sun/security/provider/MessageDigest/Offsets.java b/test/jdk/sun/security/provider/MessageDigest/Offsets.java index 44850c2970d..2c800fcb854 100644 --- a/test/jdk/sun/security/provider/MessageDigest/Offsets.java +++ b/test/jdk/sun/security/provider/MessageDigest/Offsets.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -47,7 +47,8 @@ private static void outOfBounds(MessageDigest md, int arrayLen, int ofs, int len private static void test(String algorithm, int minOfs, int maxOfs, int minLen, int maxLen) throws Exception { Random random = new Random(); - MessageDigest md = MessageDigest.getInstance(algorithm, "SUN"); + MessageDigest md = MessageDigest.getInstance(algorithm, + System.getProperty("test.provider.name", "SUN")); System.out.println("Testing " + algorithm + "..."); outOfBounds(md, 16, 0, 32); outOfBounds(md, 16, -8, 16); diff --git a/test/jdk/sun/security/provider/MessageDigest/TestSHAClone.java b/test/jdk/sun/security/provider/MessageDigest/TestSHAClone.java index ac809153b39..28c2dd6fb77 100644 --- a/test/jdk/sun/security/provider/MessageDigest/TestSHAClone.java +++ b/test/jdk/sun/security/provider/MessageDigest/TestSHAClone.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -75,7 +75,8 @@ private void run() throws Exception { public static void main(String[] argv) throws Exception { - Provider p = Security.getProvider("SUN"); + Provider p = Security.getProvider( + System.getProperty("test.provider.name", "SUN")); for (int i=0; i DATA = Arrays.asList( diff --git a/test/jdk/sun/security/provider/NSASuiteB/TestSHAwithDSASignatureOids.java b/test/jdk/sun/security/provider/NSASuiteB/TestSHAwithDSASignatureOids.java index dad84ccfd7e..c7f1ce75ca4 100644 --- a/test/jdk/sun/security/provider/NSASuiteB/TestSHAwithDSASignatureOids.java +++ b/test/jdk/sun/security/provider/NSASuiteB/TestSHAwithDSASignatureOids.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,10 +23,12 @@ import java.util.Arrays; import java.util.List; +import jdk.test.lib.security.SecurityUtils; /* * @test * @bug 8075286 + * @library /test/lib * @summary Test the SHAwithDSA signature algorithm OIDs in JDK. * OID and algorithm transformation string should match. * Both could be able to be used to generate the algorithm instance. @@ -40,8 +42,10 @@ public class TestSHAwithDSASignatureOids { new OidAlgorithmPair("2.16.840.1.101.3.4.3.2", "SHA256withDSA")); public static void main(String[] args) throws Exception { - TestSignatureOidHelper helper = new TestSignatureOidHelper("DSA", - "SUN", 1024, DATA); + String kpgAlgorithm = "DSA"; + TestSignatureOidHelper helper = new TestSignatureOidHelper(kpgAlgorithm, + System.getProperty("test.provider.name", "SUN"), + SecurityUtils.getTestKeySize(kpgAlgorithm), DATA); helper.execute(); } } diff --git a/test/jdk/sun/security/rsa/BrokenRSAPrivateCrtKey.java b/test/jdk/sun/security/rsa/BrokenRSAPrivateCrtKey.java index 0f03cdde6fc..aef92647396 100644 --- a/test/jdk/sun/security/rsa/BrokenRSAPrivateCrtKey.java +++ b/test/jdk/sun/security/rsa/BrokenRSAPrivateCrtKey.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2019, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,6 +24,7 @@ /* * @test * @bug 4503229 8220016 + * @library /test/lib * @summary default RSA KeyFactory can return broken RSAPrivateCrtKey objects * This test was taken directly from the bug report, which * was fixed in the crippled JSAFE provider, and needed @@ -35,12 +36,15 @@ import java.security.interfaces.*; import java.security.spec.*; import java.math.BigInteger; +import jdk.test.lib.security.SecurityUtils; public class BrokenRSAPrivateCrtKey { public static void main(String[] args) throws Exception { + String kpgAlgorithm = "RSA"; KeyPairGenerator generator = - KeyPairGenerator.getInstance("RSA", "SunRsaSign"); - generator.initialize(512); + KeyPairGenerator.getInstance(kpgAlgorithm, + System.getProperty("test.provider.name", "SunRsaSign")); + generator.initialize(SecurityUtils.getTestKeySize(kpgAlgorithm)); KeyPair pair = generator.generateKeyPair(); @@ -55,7 +59,8 @@ public static void main(String[] args) throws Exception { privatekey.getPrimeExponentQ(), privatekey.getCrtCoefficient()); - KeyFactory factory = KeyFactory.getInstance("RSA", "SunRsaSign"); + KeyFactory factory = KeyFactory.getInstance("RSA", + System.getProperty("test.provider.name", "SunRsaSign")); PrivateKey privatekey2 = factory.generatePrivate(spec); diff --git a/test/jdk/sun/security/rsa/GenKeyStore.java b/test/jdk/sun/security/rsa/GenKeyStore.java index 629a504a040..26178e9a576 100644 --- a/test/jdk/sun/security/rsa/GenKeyStore.java +++ b/test/jdk/sun/security/rsa/GenKeyStore.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -74,7 +74,8 @@ private static void addToKeyStore(KeyStore ks, KeyPair kp, String name) throws E private static void generateKeyPair(KeyStore ks, int keyLength, String alias) throws Exception { System.out.println("Generating " + keyLength + " keypair " + alias + "..."); - KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", "SunRsaSign"); + KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", + System.getProperty("test.provider.name", "SunRsaSign")); kpg.initialize(keyLength); KeyPair kp = kpg.generateKeyPair(); addToKeyStore(ks, kp, alias); diff --git a/test/jdk/sun/security/rsa/KeySizeTest.java b/test/jdk/sun/security/rsa/KeySizeTest.java index 35f9902b8c3..129a3539b51 100644 --- a/test/jdk/sun/security/rsa/KeySizeTest.java +++ b/test/jdk/sun/security/rsa/KeySizeTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -53,7 +53,8 @@ public class KeySizeTest { /** * JDK default RSA Provider. */ - private static final String PROVIDER_NAME = "SunRsaSign"; + private static final String PROVIDER_NAME = + System.getProperty("test.provider.name", "SunRsaSign"); public static void main(String[] args) throws Exception { int iKeyPairSize = Integer.parseInt(args[0]); diff --git a/test/jdk/sun/security/rsa/PrivateKeyEqualityTest.java b/test/jdk/sun/security/rsa/PrivateKeyEqualityTest.java index 1a3a6df756a..3ed4aae37b0 100644 --- a/test/jdk/sun/security/rsa/PrivateKeyEqualityTest.java +++ b/test/jdk/sun/security/rsa/PrivateKeyEqualityTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -46,7 +46,8 @@ public class PrivateKeyEqualityTest { /** * JDK default RSA Provider. */ - private static final String PROVIDER_NAME = "SunRsaSign"; + private static final String PROVIDER_NAME = + System.getProperty("test.provider.name", "SunRsaSign"); public static void main(String[] args) throws NoSuchAlgorithmException, NoSuchProviderException, InvalidKeySpecException { diff --git a/test/jdk/sun/security/rsa/SignatureTest.java b/test/jdk/sun/security/rsa/SignatureTest.java index 15df96354b3..d48d7ca481b 100644 --- a/test/jdk/sun/security/rsa/SignatureTest.java +++ b/test/jdk/sun/security/rsa/SignatureTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -61,7 +61,8 @@ public class SignatureTest { /** * JDK default RSA Provider. */ - private static final String PROVIDER = "SunRsaSign"; + private static final String PROVIDER = + System.getProperty("test.provider.name", "SunRsaSign"); /** * How much times signature updated. diff --git a/test/jdk/sun/security/rsa/SpecTest.java b/test/jdk/sun/security/rsa/SpecTest.java index 43ccf3ca718..8cc0bca9898 100644 --- a/test/jdk/sun/security/rsa/SpecTest.java +++ b/test/jdk/sun/security/rsa/SpecTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -53,7 +53,8 @@ public class SpecTest { /** * JDK default RSA Provider. */ - private static final String PROVIDER = "SunRsaSign"; + private static final String PROVIDER = + System.getProperty("test.provider.name", "SunRsaSign"); /** * diff --git a/test/jdk/sun/security/rsa/TestCACerts.java b/test/jdk/sun/security/rsa/TestCACerts.java index 14ed4229472..2d8a1246e5e 100644 --- a/test/jdk/sun/security/rsa/TestCACerts.java +++ b/test/jdk/sun/security/rsa/TestCACerts.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -38,7 +38,8 @@ public class TestCACerts { - private final static String PROVIDER = "SunRsaSign"; + private final static String PROVIDER = + System.getProperty("test.provider.name", "SunRsaSign"); private final static char SEP = File.separatorChar; diff --git a/test/jdk/sun/security/rsa/TestKeyFactory.java b/test/jdk/sun/security/rsa/TestKeyFactory.java index 8a4f4b7f47f..8be2037a833 100644 --- a/test/jdk/sun/security/rsa/TestKeyFactory.java +++ b/test/jdk/sun/security/rsa/TestKeyFactory.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -228,7 +228,8 @@ private static void test(KeyFactory kf, Key key) throws Exception { public static void main(String[] args) throws Exception { long start = System.currentTimeMillis(); KeyStore ks = getKeyStore(); - KeyFactory kf = KeyFactory.getInstance("RSA", "SunRsaSign"); + KeyFactory kf = KeyFactory.getInstance("RSA", + System.getProperty("test.provider.name", "SunRsaSign")); for (Enumeration e = ks.aliases(); e.hasMoreElements(); ) { String alias = (String)e.nextElement(); Key key = null; diff --git a/test/jdk/sun/security/rsa/TestKeyPairGenerator.java b/test/jdk/sun/security/rsa/TestKeyPairGenerator.java index 72ab7e73acf..ea4d92fd6a3 100644 --- a/test/jdk/sun/security/rsa/TestKeyPairGenerator.java +++ b/test/jdk/sun/security/rsa/TestKeyPairGenerator.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -40,6 +40,7 @@ import java.security.interfaces.*; import java.security.spec.*; +import jdk.test.lib.security.SecurityUtils; import jdk.test.lib.SigTestUtil; import static jdk.test.lib.SigTestUtil.SignatureType; @@ -111,14 +112,16 @@ private static void testInvalidSignature(KeyPair kp1, KeyPair kp2) throws Except public static void main(String[] args) throws Exception { long start = System.currentTimeMillis(); - provider = Security.getProvider("SunRsaSign"); + provider = Security.getProvider( + System.getProperty("test.provider.name", "SunRsaSign")); data = new byte[2048]; - // keypair generation is very slow, test only a few short keys - int[] keyLengths = {512, 512, 1024}; + String kpgAlgorithm = "RSA"; + int keySize = SecurityUtils.getTestKeySize(kpgAlgorithm); + int[] keyLengths = {keySize, keySize, keySize + 1024}; BigInteger[] pubExps = {null, BigInteger.valueOf(3), null}; KeyPair[] keyPairs = new KeyPair[3]; new Random().nextBytes(data); - KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", provider); + KeyPairGenerator kpg = KeyPairGenerator.getInstance(kpgAlgorithm, provider); for (int i = 0; i < keyLengths.length; i++) { int len = keyLengths[i]; BigInteger exp = pubExps[i]; diff --git a/test/jdk/sun/security/rsa/TestKeyPairGeneratorExponent.java b/test/jdk/sun/security/rsa/TestKeyPairGeneratorExponent.java index 7f17ed7bc48..2c60d66664e 100644 --- a/test/jdk/sun/security/rsa/TestKeyPairGeneratorExponent.java +++ b/test/jdk/sun/security/rsa/TestKeyPairGeneratorExponent.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,6 +24,7 @@ /** * @test * @bug 8216012 + * @library /test/lib * @summary Tests the RSA public key exponent for KeyPairGenerator * @run main/timeout=60 TestKeyPairGeneratorExponent */ @@ -33,14 +34,16 @@ import java.security.*; import java.security.interfaces.*; import java.security.spec.*; +import jdk.test.lib.security.SecurityUtils; public class TestKeyPairGeneratorExponent { - private static int keyLen = 512; + private static final String KPG_ALGORITHM = "RSA"; + private static final int KEY_LENGTH = SecurityUtils.getTestKeySize(KPG_ALGORITHM); private static BigInteger[] validExponents = new BigInteger[] { RSAKeyGenParameterSpec.F0, RSAKeyGenParameterSpec.F4, - BigInteger.ONE.shiftLeft(keyLen - 1).subtract(BigInteger.ONE) + BigInteger.ONE.shiftLeft(KEY_LENGTH - 1).subtract(BigInteger.ONE) }; private static BigInteger[] invalidExponents = new BigInteger[] { @@ -55,7 +58,7 @@ public static void testValidExponents(KeyPairGenerator kpg, BigInteger exponent) { System.out.println("Testing exponent = " + exponent.toString(16)); try { - kpg.initialize(new RSAKeyGenParameterSpec(keyLen, exponent)); + kpg.initialize(new RSAKeyGenParameterSpec(KEY_LENGTH, exponent)); kpg.generateKeyPair(); System.out.println("OK, key pair generated"); } catch(InvalidAlgorithmParameterException iape){ @@ -67,7 +70,7 @@ public static void testInvalidExponents(KeyPairGenerator kpg, BigInteger exponent) { System.out.println("Testing exponent = " + exponent.toString(16)); try { - kpg.initialize(new RSAKeyGenParameterSpec(keyLen, exponent)); + kpg.initialize(new RSAKeyGenParameterSpec(KEY_LENGTH, exponent)); kpg.generateKeyPair(); throw new RuntimeException("Error: Expected IAPE not thrown."); } catch(InvalidAlgorithmParameterException iape){ @@ -81,7 +84,8 @@ public static void testInvalidExponents(KeyPairGenerator kpg, public static void main(String[] args) throws Exception { KeyPairGenerator kpg = - KeyPairGenerator.getInstance("RSA", "SunRsaSign"); + KeyPairGenerator.getInstance(KPG_ALGORITHM, + System.getProperty("test.provider.name", "SunRsaSign")); for(BigInteger validExponent : validExponents) { testValidExponents(kpg, validExponent); diff --git a/test/jdk/sun/security/rsa/TestKeyPairGeneratorInit.java b/test/jdk/sun/security/rsa/TestKeyPairGeneratorInit.java index e87d5a5b6a4..7d85c56e684 100644 --- a/test/jdk/sun/security/rsa/TestKeyPairGeneratorInit.java +++ b/test/jdk/sun/security/rsa/TestKeyPairGeneratorInit.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,11 +24,13 @@ /** * @test * @bug 8211049 + * @library /test/lib * @summary make sure the supplied SecureRandom object is used */ import java.security.*; import java.security.interfaces.*; +import jdk.test.lib.security.SecurityUtils; public class TestKeyPairGeneratorInit { @@ -45,10 +47,12 @@ public void nextBytes(byte[] bytes) { } public static void main(String[] args) throws Exception { + String kpgAlgorithm = "RSA"; KeyPairGenerator kpg = - KeyPairGenerator.getInstance("RSA", "SunRsaSign"); + KeyPairGenerator.getInstance(kpgAlgorithm, + System.getProperty("test.provider.name", "SunRsaSign")); MySecureRandom rnd = new MySecureRandom(); - kpg.initialize(2048, rnd); + kpg.initialize(SecurityUtils.getTestKeySize(kpgAlgorithm), rnd); System.out.println("Generate keypair then check"); KeyPair kp = kpg.generateKeyPair(); if (!rnd.isUsed) { diff --git a/test/jdk/sun/security/rsa/TestKeyPairGeneratorLength.java b/test/jdk/sun/security/rsa/TestKeyPairGeneratorLength.java index 8959ede5f30..765ca485bbc 100644 --- a/test/jdk/sun/security/rsa/TestKeyPairGeneratorLength.java +++ b/test/jdk/sun/security/rsa/TestKeyPairGeneratorLength.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,23 +24,28 @@ /** * @test * @bug 5078280 + * @library /test/lib * @summary make sure generated key pairs are exactly the requested length * @author Andreas Sterbenz */ import java.security.*; import java.security.interfaces.*; +import jdk.test.lib.security.SecurityUtils; public class TestKeyPairGeneratorLength { + private static final String KPG_ALGORITHM = "RSA"; + private static final int KEY_LENGTH = SecurityUtils.getTestKeySize(KPG_ALGORITHM); public static void main(String[] args) throws Exception { - test(512); - test(513); + test(KEY_LENGTH); + test(KEY_LENGTH + 1); System.out.println("Done."); } private static void test(int len) throws Exception { - KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", "SunRsaSign"); + KeyPairGenerator kpg = KeyPairGenerator.getInstance(KPG_ALGORITHM, + System.getProperty("test.provider.name", "SunRsaSign")); kpg.initialize(len); for (int i = 0; i < 6; i++) { System.out.println("Generating keypair " + len + " bit keypair " + (i + 1) + "..."); diff --git a/test/jdk/sun/security/rsa/TestRSAOidSupport.java b/test/jdk/sun/security/rsa/TestRSAOidSupport.java index 2cd06258609..551fa33cd8a 100644 --- a/test/jdk/sun/security/rsa/TestRSAOidSupport.java +++ b/test/jdk/sun/security/rsa/TestRSAOidSupport.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -59,14 +59,16 @@ public static void main(String[] args) throws Exception { X509EncodedKeySpec x509Spec = new X509EncodedKeySpec (toByteArray(DER_BYTES)); String keyAlgo = "RSA"; - KeyFactory kf = KeyFactory.getInstance(keyAlgo, "SunRsaSign"); + KeyFactory kf = KeyFactory.getInstance(keyAlgo, + System.getProperty("test.provider.name", "SunRsaSign")); RSAPublicKey rsaKey = (RSAPublicKey) kf.generatePublic(x509Spec); if (rsaKey.getAlgorithm() != keyAlgo) { throw new RuntimeException("Key algo should be " + keyAlgo + ", but got " + rsaKey.getAlgorithm()); } - kf = KeyFactory.getInstance("RSASSA-PSS", "SunRsaSign"); + kf = KeyFactory.getInstance("RSASSA-PSS", + System.getProperty("test.provider.name", "SunRsaSign")); try { kf.generatePublic(x509Spec); throw new RuntimeException("Should throw IKSE"); diff --git a/test/jdk/sun/security/rsa/TestSigGen15.java b/test/jdk/sun/security/rsa/TestSigGen15.java index 12cc028b072..480ed8d878c 100644 --- a/test/jdk/sun/security/rsa/TestSigGen15.java +++ b/test/jdk/sun/security/rsa/TestSigGen15.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -71,7 +71,8 @@ public static void main(String[] args) throws Exception { static boolean runTest(List records) throws Exception { boolean success = true; //for (Provider provider : Security.getProviders()) { - Provider p = Security.getProvider("SunRsaSign"); + Provider p = Security.getProvider( + System.getProperty("test.provider.name","SunRsaSign")); KeyFactory kf = KeyFactory.getInstance("RSA", p); for (SigRecord sr : records) { System.out.println("==Testing Record : " + sr + "=="); diff --git a/test/jdk/sun/security/rsa/TestSignatures.java b/test/jdk/sun/security/rsa/TestSignatures.java index 3a6a086b7db..0296ac21d64 100644 --- a/test/jdk/sun/security/rsa/TestSignatures.java +++ b/test/jdk/sun/security/rsa/TestSignatures.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -111,7 +111,8 @@ private static void test(PrivateKey privateKey, PublicKey publicKey) public static void main(String[] args) throws Exception { long start = System.currentTimeMillis(); - provider = Security.getProvider("SunRsaSign"); + provider = Security.getProvider( + System.getProperty("test.provider.name", "SunRsaSign")); data = new byte[2048]; new Random().nextBytes(data); KeyStore ks = getKeyStore(); diff --git a/test/jdk/sun/security/rsa/WithoutNULL.java b/test/jdk/sun/security/rsa/WithoutNULL.java index 64cf831099d..39daca6d304 100644 --- a/test/jdk/sun/security/rsa/WithoutNULL.java +++ b/test/jdk/sun/security/rsa/WithoutNULL.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2023, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -48,7 +48,8 @@ public static void main(String[] args) throws Exception { b8oaWkxk069jDTM1RhllPJZkAjeQRbw4gkg4N6wKZz9B/jdSRMNJg/b9QdRYZOHOBxsEHMbUREPV DoCOLaxB8eIXX0EWkiE="""); - Signature s = Signature.getInstance("SHA1withRSA", "SunRsaSign"); + Signature s = Signature.getInstance("SHA1withRSA", + System.getProperty("test.provider.name", "SunRsaSign")); s.initVerify(KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(key))); if (!s.verify(sig)) { throw new RuntimeException("Does not verify"); diff --git a/test/jdk/sun/security/rsa/pss/DefaultParamSpec.java b/test/jdk/sun/security/rsa/pss/DefaultParamSpec.java index 6f121c75fd2..782fbe510b7 100644 --- a/test/jdk/sun/security/rsa/pss/DefaultParamSpec.java +++ b/test/jdk/sun/security/rsa/pss/DefaultParamSpec.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -30,10 +30,12 @@ import java.security.spec.PSSParameterSpec; import java.security.spec.RSAKeyGenParameterSpec; import java.util.Date; +import jdk.test.lib.security.SecurityUtils; /** * @test * @bug 8242811 + * @library /test/lib * @modules java.base/sun.security.x509 * @summary AlgorithmId::getDefaultAlgorithmParameterSpec returns incompatible * PSSParameterSpec for an RSASSA-PSS key @@ -42,7 +44,7 @@ public class DefaultParamSpec { public static void main(String[] args) throws Exception { KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSASSA-PSS"); KeyFactory kf = KeyFactory.getInstance("RSASSA-PSS"); - kpg.initialize(new RSAKeyGenParameterSpec(2048, + kpg.initialize(new RSAKeyGenParameterSpec(SecurityUtils.getTestKeySize("RSA"), RSAKeyGenParameterSpec.F4, new PSSParameterSpec( "SHA-384", "MGF1", diff --git a/test/jdk/sun/security/rsa/pss/InitAgain.java b/test/jdk/sun/security/rsa/pss/InitAgain.java index 209d5f46178..9b1963c2ee0 100644 --- a/test/jdk/sun/security/rsa/pss/InitAgain.java +++ b/test/jdk/sun/security/rsa/pss/InitAgain.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,10 +22,12 @@ */ import java.security.*; import java.security.spec.*; +import jdk.test.lib.security.SecurityUtils; /** * @test * @bug 8205445 + * @library /test/lib * @summary Make sure old state is cleared when init is called again */ public class InitAgain { @@ -40,8 +42,9 @@ public static void main(String[] args) throws Exception { s1.setParameter(PSSParameterSpec.DEFAULT); s2.setParameter(PSSParameterSpec.DEFAULT); - KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA"); - kpg.initialize(1024); + String kpgAlgorithm = "RSA"; + KeyPairGenerator kpg = KeyPairGenerator.getInstance(kpgAlgorithm); + kpg.initialize(SecurityUtils.getTestKeySize(kpgAlgorithm)); KeyPair kp = kpg.generateKeyPair(); s1.initSign(kp.getPrivate()); diff --git a/test/jdk/sun/security/rsa/pss/PSSKeyCompatibility.java b/test/jdk/sun/security/rsa/pss/PSSKeyCompatibility.java index 4961a2a2ad8..5515e770c26 100644 --- a/test/jdk/sun/security/rsa/pss/PSSKeyCompatibility.java +++ b/test/jdk/sun/security/rsa/pss/PSSKeyCompatibility.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -51,7 +51,8 @@ public class PSSKeyCompatibility { private static final String ALGO = "RSASSA-PSS"; private static final String OID = "1.2.840.113549.1.1.10"; - private static final String PROVIDER = "SunRsaSign"; + private static final String PROVIDER = + System.getProperty("test.provider.name", "SunRsaSign"); public static void main(String[] args) { diff --git a/test/jdk/sun/security/rsa/pss/PSSParametersTest.java b/test/jdk/sun/security/rsa/pss/PSSParametersTest.java index c71e5bb34a4..a489b3273ad 100644 --- a/test/jdk/sun/security/rsa/pss/PSSParametersTest.java +++ b/test/jdk/sun/security/rsa/pss/PSSParametersTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -39,7 +39,8 @@ public class PSSParametersTest { /** * JDK default RSA Provider. */ - private static final String PROVIDER = "SunRsaSign"; + private static final String PROVIDER = + System.getProperty("test.provider.name", "SunRsaSign"); private static final String PSS_ALGO = "RSASSA-PSS"; private static final String PSS_OID = "1.2.840.113549.1.1.10"; diff --git a/test/jdk/sun/security/rsa/pss/SerializedPSSKey.java b/test/jdk/sun/security/rsa/pss/SerializedPSSKey.java index eb0bd1dde7a..f946427092c 100644 --- a/test/jdk/sun/security/rsa/pss/SerializedPSSKey.java +++ b/test/jdk/sun/security/rsa/pss/SerializedPSSKey.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -50,9 +50,11 @@ import java.security.spec.RSAPublicKeySpec; import java.security.spec.X509EncodedKeySpec; import java.util.Arrays; +import jdk.test.lib.security.SecurityUtils; /** * @test @bug 8242335 + * @library /test/lib * @summary Test RSASSA-PSS serialized keys * @run main SerializedPSSKey */ @@ -60,8 +62,9 @@ public class SerializedPSSKey { private static final String ALGO = "RSASSA-PSS"; private static final String OID = "1.2.840.113549.1.1.10"; - private static final String PROVIDER = "SunRsaSign"; - private static final int KEY_SIZE = 2048; + private static final String PROVIDER = + System.getProperty("test.provider.name", "SunRsaSign"); + private static final int KEY_SIZE = SecurityUtils.getTestKeySize("RSA"); private static final byte[] DATA = "Test".getBytes(); /** * Digest algorithms to test w/ RSASSA-PSS signature algorithms diff --git a/test/jdk/sun/security/rsa/pss/SignatureTest2.java b/test/jdk/sun/security/rsa/pss/SignatureTest2.java index ea548d04dad..7d3d76ef0ae 100644 --- a/test/jdk/sun/security/rsa/pss/SignatureTest2.java +++ b/test/jdk/sun/security/rsa/pss/SignatureTest2.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -51,7 +51,8 @@ public class SignatureTest2 { /** * JDK default RSA Provider. */ - private static final String PROVIDER = "SunRsaSign"; + private static final String PROVIDER = + System.getProperty("test.provider.name", "SunRsaSign"); /** * How much times signature updated. diff --git a/test/jdk/sun/security/rsa/pss/SignatureTestPSS.java b/test/jdk/sun/security/rsa/pss/SignatureTestPSS.java index daa0fc51d8a..82580b0c354 100644 --- a/test/jdk/sun/security/rsa/pss/SignatureTestPSS.java +++ b/test/jdk/sun/security/rsa/pss/SignatureTestPSS.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -57,7 +57,8 @@ public class SignatureTestPSS { /** * JDK default RSA Provider. */ - private static final String PROVIDER = "SunRsaSign"; + private static final String PROVIDER = + System.getProperty("test.provider.name", "SunRsaSign"); /** * How much times signature updated. diff --git a/test/jdk/sun/security/rsa/pss/TestPSSKeySupport.java b/test/jdk/sun/security/rsa/pss/TestPSSKeySupport.java index 5e8c48a178a..44d1324b00e 100644 --- a/test/jdk/sun/security/rsa/pss/TestPSSKeySupport.java +++ b/test/jdk/sun/security/rsa/pss/TestPSSKeySupport.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,6 +24,7 @@ /** * @test * @bug 8146293 8242556 8172366 8254717 + * @library /test/lib * @summary Test RSASSA-PSS Key related support such as KeyPairGenerator * and KeyFactory of the SunRsaSign provider */ @@ -35,6 +36,7 @@ import java.security.*; import java.security.interfaces.*; import java.security.spec.*; +import jdk.test.lib.security.SecurityUtils; public class TestPSSKeySupport { @@ -130,11 +132,13 @@ private static void checkKeyPair(KeyPair kp) throws Exception { } public static void main(String[] args) throws Exception { + int keySize = SecurityUtils.getTestKeySize("RSA"); KeyPairGenerator kpg = - KeyPairGenerator.getInstance(ALGO, "SunRsaSign"); + KeyPairGenerator.getInstance(ALGO, + System.getProperty("test.provider.name", "SunRsaSign")); // Algorithm-Independent Initialization - kpg.initialize(2048); + kpg.initialize(keySize); KeyPair kp = kpg.generateKeyPair(); checkKeyPair(kp); BigInteger pubExp = ((RSAPublicKey)kp.getPublic()).getPublicExponent(); @@ -142,17 +146,18 @@ public static void main(String[] args) throws Exception { // Algorithm-specific Initialization PSSParameterSpec params = new PSSParameterSpec("SHA-256", "MGF1", MGF1ParameterSpec.SHA256, 32, 1); - kpg.initialize(new RSAKeyGenParameterSpec(2048, pubExp, params)); + kpg.initialize(new RSAKeyGenParameterSpec(keySize, pubExp, params)); KeyPair kp2 = kpg.generateKeyPair(); checkKeyPair(kp2); params = new PSSParameterSpec("SHA3-256", "MGF1", new MGF1ParameterSpec("SHA3-256"), 32, 1); - kpg.initialize(new RSAKeyGenParameterSpec(2048, pubExp, params)); + kpg.initialize(new RSAKeyGenParameterSpec(keySize, pubExp, params)); KeyPair kp3 = kpg.generateKeyPair(); checkKeyPair(kp3); - KeyFactory kf = KeyFactory.getInstance(ALGO, "SunRsaSign"); + KeyFactory kf = KeyFactory.getInstance(ALGO, + System.getProperty("test.provider.name", "SunRsaSign")); test(kf, kp.getPublic()); test(kf, kp.getPrivate()); test(kf, kp2.getPublic()); diff --git a/test/jdk/sun/security/rsa/pss/TestSigGenPSS.java b/test/jdk/sun/security/rsa/pss/TestSigGenPSS.java index dfadef03f04..cbda2b1df93 100644 --- a/test/jdk/sun/security/rsa/pss/TestSigGenPSS.java +++ b/test/jdk/sun/security/rsa/pss/TestSigGenPSS.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -62,7 +62,8 @@ public void nextBytes(byte[] bytes) { public static void main(String[] args) throws Exception { //for (Provider provider : Security.getProviders()) { - Provider p = Security.getProvider("SunRsaSign"); + Provider p = Security.getProvider( + System.getProperty("test.provider.name", "SunRsaSign")); Signature sig; try { sig = Signature.getInstance("RSASSA-PSS", p); diff --git a/test/jdk/sun/security/ssl/HandshakeHash/DigestBase.java b/test/jdk/sun/security/ssl/HandshakeHash/DigestBase.java index a92de6fff6e..437973049a8 100644 --- a/test/jdk/sun/security/ssl/HandshakeHash/DigestBase.java +++ b/test/jdk/sun/security/ssl/HandshakeHash/DigestBase.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -59,13 +59,13 @@ public MD5() throws Exception { public static final class SHA extends DigestBase { public SHA() throws Exception { - super("SHA", "SUN"); + super("SHA", System.getProperty("test.provider.name", "SUN")); } } public static final class SHA256 extends DigestBase { public SHA256() throws Exception { - super("SHA-256", "SUN"); + super("SHA-256", System.getProperty("test.provider.name", "SUN")); } } } diff --git a/test/jdk/sun/security/x509/AlgorithmId/NonStandardNames.java b/test/jdk/sun/security/x509/AlgorithmId/NonStandardNames.java index a8098561d4e..f12e5717682 100644 --- a/test/jdk/sun/security/x509/AlgorithmId/NonStandardNames.java +++ b/test/jdk/sun/security/x509/AlgorithmId/NonStandardNames.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,6 +24,7 @@ /* * @test * @bug 7180907 8277224 + * @library /test/lib * @summary Jarsigner -verify fails if rsa file used sha-256 with authenticated attributes * @modules java.base/sun.security.pkcs * java.base/sun.security.tools.keytool @@ -36,6 +37,7 @@ import java.security.MessageDigest; import java.security.Signature; import java.security.cert.X509Certificate; +import jdk.test.lib.security.SecurityUtils; import sun.security.pkcs.ContentInfo; import sun.security.pkcs.PKCS7; import sun.security.pkcs.PKCS9Attribute; @@ -52,8 +54,9 @@ public static void main(String[] args) throws Exception { byte[] data = "Hello".getBytes(); X500Name n = new X500Name("cn=Me"); - CertAndKeyGen cakg = new CertAndKeyGen("RSA", "SHA256withRSA"); - cakg.generate(1024); + String kpgAlgorithm = "RSA"; + CertAndKeyGen cakg = new CertAndKeyGen(kpgAlgorithm, "SHA256withRSA"); + cakg.generate(SecurityUtils.getTestKeySize(kpgAlgorithm)); X509Certificate cert = cakg.getSelfCertificate(n, 1000); MessageDigest md = MessageDigest.getInstance("SHA-256"); diff --git a/test/jdk/sun/security/x509/X509CRLImpl/UnexpectedCCE.java b/test/jdk/sun/security/x509/X509CRLImpl/UnexpectedCCE.java new file mode 100644 index 00000000000..85acf520b43 --- /dev/null +++ b/test/jdk/sun/security/x509/X509CRLImpl/UnexpectedCCE.java @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 8336665 + * @summary Verify that generateCRLs method does not throw ClassCastException. + * It should throw CRLException instead. + * @library /test/lib + */ +import java.security.NoSuchProviderException; +import java.security.cert.*; +import java.io.ByteArrayInputStream; +import java.util.Base64; + +import jdk.test.lib.Utils; + +public class UnexpectedCCE { + static CertificateFactory cf = null; + + public static void main(String[] av ) throws CertificateException, + NoSuchProviderException { + + // Fuzzed data input stream looks like an x509.OIDName + // in the CertificateIssuerExtension. A CRLException is thrown + // because an X500Name is expected. + byte[] encoded_1 = Base64.getDecoder().decode(""" + MIIBljCCAVMCAQEwCwYHKoZIzjgEAwUAMC0xEzARBgoJkiaJk/IsZAEZEwNjb20xFjA\ + UBgoJkiaJjvIsZAEZEwZ0ZXN0Q0EXDTAzMDcxNTE2MjAwNVoXDTAzMDcyMDE2MjAwNV\ + owgdIwUwIBBBcNMDMwNzE1MTYyMDAzWjA/MD0GA1UdHQEB/wQzMDGILzETMBEGCgmSJ\ + omT8ixkARkMA2NvbTEYMBYGCgmSJomT8ixkARkTCGNlcnRzUlVTMBICAQMXDTAzMDcx\ + NTE2MjAwNFowUwIBAhcNMDMwNzE1MTYyMDA0WjA/MD0GA1UdIQEB/wQzMDEwGAYDVQQ\ + DExEwDyqGMDEUMgAwgDAuRQA1MRYGCgmSJomT8ixkARkTCG15VGVzdENBMBICAQEXDT\ + AzMDcxNTE2MjAwNFqgHzAdMA8GA1UdHAEB/wQFMAOEAf8wCgYDVR0UAwACAQIwCwYHK\ + oZIzjgEAwUAAzAAMC0CFBaZDryEEOr8Cw7sOAAAAKaDgtHcAhUAkUenJpwYZgS6IPjy\ + AjZG+RfHdO4="""); + + // Fuzzed data input stream looks like an x509.X400Address + // in the CertificateIssuerExtension. A CRLException is thrown + // because an X500Name is expected. + byte[] encoded_2 = Base64.getDecoder().decode(""" + MIIBljCCAVMCAQEwCwYHKoZIzjgEAwUAMC0xEzARBgoJkiaJk/IsZAEZEwNjb20xFjA\ + UBgoJkiaJk/IsZAEZEwZ0ZXN0J0EXDTAzMDcxNTE2MjAwNVoXDTAzMDcyMDE2MjAwNV\ + owgdIwUwIBBBcNMDMwNzE1MTYyMDA0WjA/MD0GA1UdHQEB/wQzMDGkLzETMBEGCgmSJ\ + omT8ixkARkTA2NvbTEYMBYGCgmSJomT8ixkARkTCGNlcnRzUlVTMBICAQMXDTAzMDcx\ + NTE2MjAwNFowUwIBAhcNMDMwNzE1MTYyMDA0WjA/MD0GA1UdHQEB/wQzMDGjLzETMBE\ + GCgmSJomT8ixkARkTA2NvGG0wMRYGCgmSJomT8ixkARkTCG15VGVzdENBMBICAQEXDT\ + AzMDcxNTE2MjAwNVqgHzAdMGAGA1UdHAEB/wQFMAOEAf8wCgYDVR0UBAMCAQIwCwYHK\ + oZIzjgEAwUAAzAAMC0CFBaZDryEEOr8Cw7sJa07gqaDgtHcAhUAkUenJpwYZgS6IPjy\ + AjZG+RfHdO4="""); + + cf = CertificateFactory.getInstance("X.509", "SUN"); + + run(encoded_1); + run(encoded_2); + } + + private static void run(byte[] buf) { + Utils.runAndCheckException( + () -> cf.generateCRLs(new ByteArrayInputStream(buf)), + CRLException.class); + } +} diff --git a/test/jdk/sun/security/x509/X509CRLImpl/Verify.java b/test/jdk/sun/security/x509/X509CRLImpl/Verify.java index ed92b6548ec..6a77224fab4 100644 --- a/test/jdk/sun/security/x509/X509CRLImpl/Verify.java +++ b/test/jdk/sun/security/x509/X509CRLImpl/Verify.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -87,7 +87,8 @@ public static void main(String[] args) throws Exception { * Verify CRL with its own public key. * Should pass. */ - verifyCRL(crlIssuerCertPubKey, "SunRsaSign"); + verifyCRL(crlIssuerCertPubKey, + System.getProperty("test.provider.name", "SunRsaSign")); /* * Try to verify CRL with a provider that does not have a Signature @@ -107,7 +108,8 @@ public static void main(String[] args) throws Exception { * Should fail with NoSuchAlgorithmException. */ try { - verifyCRL(crlIssuerCertPubKey, "SUN"); + verifyCRL(crlIssuerCertPubKey, + System.getProperty("test.provider.name", "SUN")); throw new RuntimeException("Didn't catch the exception properly"); } catch (NoSuchAlgorithmException e) { System.out.println("Caught the correct exception."); @@ -118,7 +120,8 @@ public static void main(String[] args) throws Exception { * Should fail with SignatureException. */ try { - verifyCRL(selfSignedCertPubKey, "SunRsaSign"); + verifyCRL(selfSignedCertPubKey, + System.getProperty("test.provider.name","SunRsaSign")); throw new RuntimeException("Didn't catch the exception properly"); } catch (SignatureException e) { System.out.println("Caught the correct exception."); @@ -148,6 +151,7 @@ private static void verifyCRL(PublicKey key, String providerName) throws CRLException, NoSuchAlgorithmException, InvalidKeyException, SignatureException { Provider provider = Security.getProvider(providerName); + System.out.println("Provider = " + provider.getName()); if (provider == null) { throw new RuntimeException("Provider " + providerName + " not found."); diff --git a/test/jdk/sun/security/x509/X509CertImpl/Verify.java b/test/jdk/sun/security/x509/X509CertImpl/Verify.java index cffee273e6f..0fc94bc2802 100644 --- a/test/jdk/sun/security/x509/X509CertImpl/Verify.java +++ b/test/jdk/sun/security/x509/X509CertImpl/Verify.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -78,7 +78,8 @@ public static void main(String[] args) throws Exception { * Verify certificate with its own public key. * Should pass. */ - verifyCert(selfSignedCertPubKey,"SunRsaSign"); + verifyCert(selfSignedCertPubKey, + System.getProperty("test.provider.name", "SunRsaSign")); /* * Try to verify certificate with a provider that does not have a @@ -86,7 +87,8 @@ public static void main(String[] args) throws Exception { * Should fail with NoSuchAlgorithmException. */ try { - verifyCert(selfSignedCertPubKey, "SunJCE"); + verifyCert(selfSignedCertPubKey, + System.getProperty("test.provider.name", "SunJCE")); throw new RuntimeException("Didn't catch the exception properly"); } catch (NoSuchAlgorithmException e) { System.out.println("Caught the correct exception."); @@ -98,7 +100,8 @@ public static void main(String[] args) throws Exception { * Should fail with NoSuchAlgorithmException. */ try { - verifyCert(selfSignedCertPubKey, "SUN"); + verifyCert(selfSignedCertPubKey, + System.getProperty("test.provider.name", "SUN")); throw new RuntimeException("Didn't catch the exception properly"); } catch (NoSuchAlgorithmException e) { System.out.println("Caught the correct exception."); @@ -109,7 +112,8 @@ public static void main(String[] args) throws Exception { * Should fail with SignatureException. */ try { - verifyCert(crlIssuerCertPubKey, "SunRsaSign"); + verifyCert(crlIssuerCertPubKey, + System.getProperty("test.provider.name", "SunRsaSign")); throw new RuntimeException("Didn't catch the exception properly"); } catch (SignatureException e) { System.out.println("Caught the correct exception."); diff --git a/test/jdk/sun/tools/jmap/BasicJMapTest.java b/test/jdk/sun/tools/jmap/BasicJMapTest.java index d8a24ef05fa..991648b96c2 100644 --- a/test/jdk/sun/tools/jmap/BasicJMapTest.java +++ b/test/jdk/sun/tools/jmap/BasicJMapTest.java @@ -87,8 +87,8 @@ */ /* - * @test id=ZSinglegen - * @requires vm.gc.ZSinglegen + * @test id=Z + * @requires vm.gc.Z * @summary Unit test for jmap utility (Z GC) * @key intermittent * @library /test/lib @@ -96,20 +96,7 @@ * @build jdk.test.lib.hprof.model.* * @build jdk.test.lib.hprof.parser.* * @build jdk.test.lib.hprof.util.* - * @run main/othervm/timeout=240 -XX:+UseZGC -XX:-ZGenerational BasicJMapTest - */ - -/* - * @test id=ZGenerational - * @requires vm.gc.ZGenerational - * @summary Unit test for jmap utility (Z GC) - * @key intermittent - * @library /test/lib - * @build jdk.test.lib.hprof.* - * @build jdk.test.lib.hprof.model.* - * @build jdk.test.lib.hprof.parser.* - * @build jdk.test.lib.hprof.util.* - * @run main/othervm/timeout=240 -XX:+UseZGC -XX:+ZGenerational BasicJMapTest + * @run main/othervm/timeout=240 -XX:+UseZGC BasicJMapTest */ public class BasicJMapTest { diff --git a/test/jdk/tools/jar/ExtractFilesTest.java b/test/jdk/tools/jar/ExtractFilesTest.java new file mode 100644 index 00000000000..26e0d103d51 --- /dev/null +++ b/test/jdk/tools/jar/ExtractFilesTest.java @@ -0,0 +1,269 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 8335912 + * @summary test extract jar files overwrite existing files behavior + * @library /test/lib + * @modules jdk.jartool + * @build jdk.test.lib.Platform + * jdk.test.lib.util.FileUtils + * @run junit/othervm ExtractFilesTest + */ + +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; +import org.junit.jupiter.api.TestInstance.Lifecycle; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.PrintStream; +import java.io.UncheckedIOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Arrays; +import java.util.spi.ToolProvider; +import java.util.stream.Stream; + +import jdk.test.lib.util.FileUtils; + + @TestInstance(Lifecycle.PER_CLASS) + public class ExtractFilesTest { + private static final ToolProvider JAR_TOOL = ToolProvider.findFirst("jar") + .orElseThrow(() -> + new RuntimeException("jar tool not found") + ); + + private final String nl = System.lineSeparator(); + private final ByteArrayOutputStream baos = new ByteArrayOutputStream(); + private final PrintStream out = new PrintStream(baos); + + @BeforeAll + public void setupJar() throws IOException { + mkdir("test1 test2"); + echo("testfile1", "test1/testfile1"); + echo("testfile2", "test2/testfile2"); + jar("cf test.jar -C test1 . -C test2 ."); + rm("test1 test2"); + } + + @AfterAll + public void cleanup() { + rm("test.jar"); + } + + /** + * Regular clean extract with expected output. + */ + @Test + public void testExtract() throws IOException { + jar("xvf test.jar"); + println(); + String output = " created: META-INF/" + nl + + " inflated: META-INF/MANIFEST.MF" + nl + + " inflated: testfile1" + nl + + " inflated: testfile2" + nl; + rm("META-INF testfile1 testfile2"); + assertOutputContains(output); + } + + /** + * Extract should overwrite existing file as default behavior. + */ + @Test + public void testOverwrite() throws IOException { + touch("testfile1"); + jar("xvf test.jar"); + println(); + String output = " created: META-INF/" + nl + + " inflated: META-INF/MANIFEST.MF" + nl + + " inflated: testfile1" + nl + + " inflated: testfile2" + nl; + Assertions.assertEquals("testfile1", cat("testfile1")); + rm("META-INF testfile1 testfile2"); + assertOutputContains(output); + } + + /** + * Extract with legacy style option `k` should preserve existing files. + */ + @Test + public void testKeptOldFile() throws IOException { + touch("testfile1"); + jar("xkvf test.jar"); + println(); + String output = " created: META-INF/" + nl + + " inflated: META-INF/MANIFEST.MF" + nl + + " skipped: testfile1 exists" + nl + + " inflated: testfile2" + nl; + Assertions.assertEquals("", cat("testfile1")); + Assertions.assertEquals("testfile2", cat("testfile2")); + rm("META-INF testfile1 testfile2"); + assertOutputContains(output); + } + + /** + * Extract with gnu style -k should preserve existing files. + */ + @Test + public void testGnuOptionsKeptOldFile() throws IOException { + touch("testfile1 testfile2"); + jar("-x -k -v -f test.jar"); + println(); + String output = " created: META-INF/" + nl + + " inflated: META-INF/MANIFEST.MF" + nl + + " skipped: testfile1 exists" + nl + + " skipped: testfile2 exists" + nl; + Assertions.assertEquals("", cat("testfile1")); + Assertions.assertEquals("", cat("testfile2")); + rm("META-INF testfile1 testfile2"); + assertOutputContains(output); + } + + /** + * Extract with gnu style long option --keep-old-files should preserve existing files. + */ + @Test + public void testGnuLongOptionsKeptOldFile() throws IOException { + touch("testfile2"); + jar("-x --keep-old-files -v -f test.jar"); + println(); + String output = " created: META-INF/" + nl + + " inflated: META-INF/MANIFEST.MF" + nl + + " inflated: testfile1" + nl + + " skipped: testfile2 exists" + nl; + Assertions.assertEquals("testfile1", cat("testfile1")); + Assertions.assertEquals("", cat("testfile2")); + rm("META-INF testfile1 testfile2"); + assertOutputContains(output); + } + + /** + * Test jar will issue warning when use keep option in non-extraction mode. + */ + @Test + public void testWarningOnInvalidKeepOption() throws IOException { + var err = jar("tkf test.jar"); + println(); + + String output = "META-INF/" + nl + + "META-INF/MANIFEST.MF" + nl + + "testfile1" + nl + + "testfile2" + nl; + + assertOutputContains(output); + Assertions.assertEquals("Warning: The --keep-old-files/-k/k option is not valid with current usage, will be ignored." + nl, err); + } + + private void assertOutputContains(String expected) { + Assertions.assertTrue(baos.toString().contains(expected)); + } + + private Stream mkpath(String... args) { + return Arrays.stream(args).map(d -> Path.of(".", d.split("/"))); + } + + private void mkdir(String cmdline) { + System.out.println("mkdir -p " + cmdline); + mkpath(cmdline.split(" +")).forEach(p -> { + try { + Files.createDirectories(p); + } catch (IOException x) { + throw new UncheckedIOException(x); + } + }); + } + + private void touch(String cmdline) { + System.out.println("touch " + cmdline); + mkpath(cmdline.split(" +")).forEach(p -> { + try { + Files.createFile(p); + } catch (IOException x) { + throw new UncheckedIOException(x); + } + }); + } + + private void echo(String text, String path) { + System.out.println("echo '" + text + "' > " + path); + try { + var p = Path.of(".", path.split("/")); + Files.writeString(p, text); + } catch (IOException x) { + throw new UncheckedIOException(x); + } + } + + private String cat(String path) { + System.out.println("cat " + path); + try { + return Files.readString(Path.of(path)); + } catch (IOException x) { + throw new UncheckedIOException(x); + } + } + + private void rm(String cmdline) { + System.out.println("rm -rf " + cmdline); + mkpath(cmdline.split(" +")).forEach(p -> { + try { + if (Files.isDirectory(p)) { + FileUtils.deleteFileTreeWithRetry(p); + } else { + FileUtils.deleteFileIfExistsWithRetry(p); + } + } catch (IOException x) { + throw new UncheckedIOException(x); + } + }); + } + + private String jar(String cmdline) throws IOException { + System.out.println("jar " + cmdline); + baos.reset(); + + // the run method catches IOExceptions, we need to expose them + ByteArrayOutputStream baes = new ByteArrayOutputStream(); + PrintStream err = new PrintStream(baes); + PrintStream saveErr = System.err; + System.setErr(err); + try { + int rc = JAR_TOOL.run(out, err, cmdline.split(" +")); + if (rc != 0) { + throw new IOException(baes.toString()); + } + } finally { + System.setErr(saveErr); + } + return baes.toString(); + } + + private void println() throws IOException { + System.out.println(new String(baos.toByteArray())); + } +} diff --git a/test/jdk/tools/jar/MultipleManifestTest.java b/test/jdk/tools/jar/MultipleManifestTest.java new file mode 100644 index 00000000000..231f6ba1ec6 --- /dev/null +++ b/test/jdk/tools/jar/MultipleManifestTest.java @@ -0,0 +1,228 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 8335912 + * @summary test extract jar with multpile manifest files + * @library /test/lib + * @modules jdk.jartool + * @build jdk.test.lib.Platform + * jdk.test.lib.util.FileUtils + * @run junit/othervm MultipleManifestTest + */ + +import java.io.ByteArrayOutputStream; + +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; +import org.junit.jupiter.api.TestInstance.Lifecycle; + +import java.io.IOException; +import java.io.PrintStream; +import java.io.UncheckedIOException; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Arrays; +import java.util.jar.Attributes; +import java.util.jar.JarFile; +import java.util.jar.Manifest; +import java.util.spi.ToolProvider; +import java.util.stream.Stream; +import java.util.zip.ZipEntry; +import java.util.zip.ZipOutputStream; + +import jdk.test.lib.util.FileUtils; + +@TestInstance(Lifecycle.PER_CLASS) +class MultipleManifestTest { + private static final ToolProvider JAR_TOOL = ToolProvider.findFirst("jar") + .orElseThrow(() -> + new RuntimeException("jar tool not found") + ); + + private final String nl = System.lineSeparator(); + private final ByteArrayOutputStream baos = new ByteArrayOutputStream(); + private final PrintStream jarOut = new PrintStream(baos); + + static final Path zip = Path.of("MultipleManifestTest.jar"); + static final String jdkVendor = System.getProperty("java.vendor"); + static final String jdkVersion = System.getProperty("java.version"); + static final String MANIFEST1 = "Manifest-Version: 1.0" + + System.lineSeparator() + + "Created-By: " + jdkVersion + " (" + jdkVendor + ")"; + static final String MANIFEST2 = "Manifest-Version: 2.0" + + System.lineSeparator() + + "Created-By: " + jdkVersion + " (" + jdkVendor + ")"; + static final String MANIFEST3 = "Manifest-Version: 3.0" + + System.lineSeparator() + + "Created-By: " + jdkVersion + " (" + jdkVendor + ")"; + private static final String META_INF = "META-INF/"; + + /** + * Delete the ZIP file produced by this test + * + * @throws IOException if an unexpected IOException occurs + */ + @AfterAll + public void cleanup() throws IOException { + Files.deleteIfExists(zip); + } + + /** + * Create a JAR with the Manifest as the 1st, 2nd and 4th entry + * + * @throws IOException if an error occurs + */ + @BeforeAll + public void writeManifestAsFirstSecondAndFourthEntry() throws IOException { + int locPosA, locPosB, cenPos; + System.out.printf("%n%n*****Creating Jar with the Manifest as the 1st, 2nd and 4th entry*****%n%n"); + var out = new ByteArrayOutputStream(1024); + try (var zos = new ZipOutputStream(out)) { + zos.putNextEntry(new ZipEntry(JarFile.MANIFEST_NAME)); + zos.write(MANIFEST1.getBytes(StandardCharsets.UTF_8)); + zos.closeEntry(); + locPosA = out.size(); + zos.putNextEntry(new ZipEntry(META_INF + "AANIFEST.MF")); + zos.write(MANIFEST2.getBytes(StandardCharsets.UTF_8)); + zos.putNextEntry(new ZipEntry("entry1.txt")); + zos.write("entry1".getBytes(StandardCharsets.UTF_8)); + zos.closeEntry(); + locPosB = out.size(); + zos.putNextEntry(new ZipEntry(META_INF + "BANIFEST.MF")); + zos.write(MANIFEST3.getBytes(StandardCharsets.UTF_8)); + zos.putNextEntry(new ZipEntry("entry2.txt")); + zos.write("hello entry2".getBytes(StandardCharsets.UTF_8)); + zos.flush(); + cenPos = out.size(); + } + var template = out.toByteArray(); + // ISO_8859_1 to keep the 8-bit value + var s = new String(template, StandardCharsets.ISO_8859_1); + // change META-INF/AANIFEST.MF to META-INF/MANIFEST.MF + var loc = s.indexOf("AANIFEST.MF", locPosA); + var cen = s.indexOf("AANIFEST.MF", cenPos); + template[loc] = template[cen] = (byte) 'M'; + // change META-INF/BANIFEST.MF to META-INF/MANIFEST.MF + loc = s.indexOf("BANIFEST.MF", locPosB); + cen = s.indexOf("BANIFEST.MF", cenPos); + template[loc] = template[cen] = (byte) 'M'; + Files.write(zip, template); + } + + @AfterEach + public void removeExtractedFiles() { + rm("META-INF entry1.txt entry2.txt"); + } + + /** + * Extract by default should have the last manifest. + */ + @Test + public void testOverwrite() throws IOException { + jar("xvf " + zip.toString()); + println(); + Assertions.assertEquals("3.0", getManifestVersion()); + String output = " inflated: META-INF/MANIFEST.MF" + nl + + " inflated: META-INF/MANIFEST.MF" + nl + + " inflated: entry1.txt" + nl + + " inflated: META-INF/MANIFEST.MF" + nl + + " inflated: entry2.txt" + nl; + assertOutputContains(output); + } + + /** + * Extract with k option should have first manifest. + */ + @Test + public void testKeptOldFile() throws IOException { + jar("xkvf " + zip.toString()); + println(); + Assertions.assertEquals("1.0", getManifestVersion()); + String output = " inflated: META-INF/MANIFEST.MF" + nl + + " skipped: META-INF/MANIFEST.MF exists" + nl + + " inflated: entry1.txt" + nl + + " skipped: META-INF/MANIFEST.MF exists" + nl + + " inflated: entry2.txt" + nl; + assertOutputContains(output); + } + + private String getManifestVersion() throws IOException { + try (var is = Files.newInputStream(Path.of(JarFile.MANIFEST_NAME))) { + var manifest = new Manifest(is); + return manifest.getMainAttributes().getValue(Attributes.Name.MANIFEST_VERSION); + } + } + + private void jar(String cmdline) throws IOException { + System.out.println("jar " + cmdline); + baos.reset(); + + // the run method catches IOExceptions, we need to expose them + ByteArrayOutputStream baes = new ByteArrayOutputStream(); + PrintStream err = new PrintStream(baes); + PrintStream saveErr = System.err; + System.setErr(err); + try { + int rc = JAR_TOOL.run(jarOut, err, cmdline.split(" +")); + if (rc != 0) { + throw new IOException(baes.toString()); + } + } finally { + System.setErr(saveErr); + } + } + + private void assertOutputContains(String expected) { + Assertions.assertTrue(baos.toString().contains(expected)); + } + + private void println() throws IOException { + System.out.println(new String(baos.toByteArray())); + } + + private Stream mkpath(String... args) { + return Arrays.stream(args).map(d -> Path.of(".", d.split("/"))); + } + + private void rm(String cmdline) { + System.out.println("rm -rf " + cmdline); + mkpath(cmdline.split(" +")).forEach(p -> { + try { + if (Files.isDirectory(p)) { + FileUtils.deleteFileTreeWithRetry(p); + } else { + FileUtils.deleteFileIfExistsWithRetry(p); + } + } catch (IOException x) { + throw new UncheckedIOException(x); + } + }); + } +} \ No newline at end of file diff --git a/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/TKit.java b/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/TKit.java index cd32f32f63d..1466714f8dd 100644 --- a/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/TKit.java +++ b/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/TKit.java @@ -296,7 +296,9 @@ private static Path createUniqueFileName(String defaultName) { if (!path.toFile().exists()) { return path; } - nameComponents[0] = String.format("%s.%d", baseName, i); + // Don't use period (.) as a separator. OSX codesign fails to sign folders + // with subfolders with names like "input.0". + nameComponents[0] = String.format("%s-%d", baseName, i); } throw new IllegalStateException(String.format( "Failed to create unique file name from [%s] basename after %d attempts", @@ -673,26 +675,40 @@ public static void assertPathExists(Path path, boolean exists) { assertTrue(path.toFile().exists(), String.format( "Check [%s] path exists", path)); } else { - assertFalse(path.toFile().exists(), String.format( + assertTrue(!path.toFile().exists(), String.format( "Check [%s] path doesn't exist", path)); } } - public static void assertPathNotEmptyDirectory(Path path) { - if (Files.isDirectory(path)) { + public static void assertDirectoryNotEmpty(Path path) { + assertDirectoryExists(path, Optional.of(false)); + } + + public static void assertDirectoryEmpty(Path path) { + assertDirectoryExists(path, Optional.of(true)); + } + + public static void assertDirectoryExists(Path path, Optional isEmptyCheck) { + assertPathExists(path, true); + boolean isDirectory = Files.isDirectory(path); + if (isEmptyCheck.isEmpty() || !isDirectory) { + assertTrue(isDirectory, String.format("Check [%s] is a directory", path)); + } else { ThrowingRunnable.toRunnable(() -> { try (var files = Files.list(path)) { - TKit.assertFalse(files.findFirst().isEmpty(), String.format - ("Check [%s] is not an empty directory", path)); + boolean actualIsEmpty = files.findFirst().isEmpty(); + if (isEmptyCheck.get()) { + TKit.assertTrue(actualIsEmpty, String.format("Check [%s] is not an empty directory", path)); + } else { + TKit.assertTrue(!actualIsEmpty, String.format("Check [%s] is an empty directory", path)); + } } }).run(); - } + } } public static void assertDirectoryExists(Path path) { - assertPathExists(path, true); - assertTrue(path.toFile().isDirectory(), String.format( - "Check [%s] is a directory", path)); + assertDirectoryExists(path, Optional.empty()); } public static void assertSymbolicLinkExists(Path path) { diff --git a/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/TestBuilder.java b/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/TestBuilder.java index 27da5a0a28c..bb699ba3b9c 100644 --- a/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/TestBuilder.java +++ b/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/TestBuilder.java @@ -392,6 +392,9 @@ private static Stream toMethodCalls(Object[] ctorArgs, Method method } private static Object fromString(String value, Class toType) { + if (toType.isEnum()) { + return Enum.valueOf(toType, value); + } Function converter = conv.get(toType); if (converter == null) { throw new RuntimeException(String.format( diff --git a/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/WindowsHelper.java b/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/WindowsHelper.java index 1a4dbd22897..b7fd904325d 100644 --- a/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/WindowsHelper.java +++ b/test/jdk/tools/jpackage/helpers/jdk/jpackage/test/WindowsHelper.java @@ -322,7 +322,7 @@ private void verifyStartMenuShortcut(Path shortcutsRoot, boolean exists) { Path shortcutPath = shortcutsRoot.resolve(startMenuShortcutPath); verifyShortcut(shortcutPath, exists); if (!exists) { - TKit.assertPathNotEmptyDirectory(shortcutPath.getParent()); + TKit.assertDirectoryNotEmpty(shortcutPath.getParent()); } } diff --git a/test/jdk/tools/jpackage/macosx/SigningOptionsTest.java b/test/jdk/tools/jpackage/macosx/SigningOptionsTest.java index fee874da2e8..9d6cd6472ba 100644 --- a/test/jdk/tools/jpackage/macosx/SigningOptionsTest.java +++ b/test/jdk/tools/jpackage/macosx/SigningOptionsTest.java @@ -32,6 +32,11 @@ * @test * @summary Test jpackage signing options errors * @library ../helpers + * @library /test/lib + * @library base + * @build SigningBase + * @build SigningCheck + * @build jtreg.SkippedException * @build SigningOptionsTest * @modules jdk.jpackage/jdk.jpackage.internal * @requires (os.family == "mac") @@ -44,6 +49,11 @@ * @test * @summary Test jpackage signing options errors * @library ../helpers + * @library /test/lib + * @library base + * @build SigningBase + * @build SigningCheck + * @build jtreg.SkippedException * @build SigningOptionsTest * @modules jdk.jpackage/jdk.jpackage.internal * @requires (os.family == "mac") @@ -69,27 +79,31 @@ public static Collection input() { "--mac-signing-key-user-name", "test-key", "--mac-app-image-sign-identity", "test-identity"}, null, - "Mutually exclusive options"}, + "Mutually exclusive options", + Boolean.FALSE}, // --mac-signing-key-user-name and --mac-installer-sign-identity {"Hello", new String[]{"--mac-sign", "--mac-signing-key-user-name", "test-key", "--mac-installer-sign-identity", "test-identity"}, null, - "Mutually exclusive options"}, + "Mutually exclusive options", + Boolean.FALSE}, // --mac-installer-sign-identity and --type app-image {"Hello", new String[]{"--mac-sign", "--mac-installer-sign-identity", "test-identity"}, null, - "Option [--mac-installer-sign-identity] is not valid with type"}, + "Option [--mac-installer-sign-identity] is not valid with type", + Boolean.FALSE}, // --mac-installer-sign-identity and --type dmg {"Hello", new String[]{"--type", "dmg", "--mac-sign", "--mac-installer-sign-identity", "test-identity"}, new String[]{"--type"}, - "Option [--mac-installer-sign-identity] is not valid with type"}, + "Option [--mac-installer-sign-identity] is not valid with type", + Boolean.FALSE}, // --app-content and --type app-image // JDK-8340802: "codesign" may or may not fail if additional // content is specified based on macOS version. For example on @@ -104,14 +118,20 @@ public static Collection input() { "--mac-app-image-sign-identity", "test-identity"}, null, "\"codesign\" failed and additional application content" + - " was supplied via the \"--app-content\" parameter."}, + " was supplied via the \"--app-content\" parameter.", + Boolean.TRUE}, }); } public SigningOptionsTest(String javaAppDesc, String[] jpackageArgs, - String[] removeArgs, String expectedError) { + String[] removeArgs, String expectedError, + Boolean checkRequirements) { this.expectedError = expectedError; + if (checkRequirements) { + SigningCheck.isXcodeDevToolsInstalled(); + } + cmd = JPackageCommand.helloAppImage(javaAppDesc) .saveConsoleOutput(true).dumpOutput(true); if (jpackageArgs != null) { diff --git a/test/jdk/tools/jpackage/macosx/base/SigningCheck.java b/test/jdk/tools/jpackage/macosx/base/SigningCheck.java index fc8a274caf8..4ba2763804f 100644 --- a/test/jdk/tools/jpackage/macosx/base/SigningCheck.java +++ b/test/jdk/tools/jpackage/macosx/base/SigningCheck.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2019, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -25,6 +25,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; +import java.io.IOException; import jdk.jpackage.test.TKit; import jdk.jpackage.test.Executor; @@ -89,4 +90,12 @@ private static void validateCertificateTrust(String name) { .apply(result.stream()); } + public static void isXcodeDevToolsInstalled() { + int code = Executor.of("/usr/bin/xcrun", "--help") + .executeWithoutExitCodeCheck().getExitCode(); + if (code != 0) { + TKit.throwSkippedException("Missing Xcode with command line developer tools"); + } + } + } diff --git a/test/jdk/tools/jpackage/share/AppContentTest.java b/test/jdk/tools/jpackage/share/AppContentTest.java index a343e20d8a7..94362530751 100644 --- a/test/jdk/tools/jpackage/share/AppContentTest.java +++ b/test/jdk/tools/jpackage/share/AppContentTest.java @@ -21,23 +21,25 @@ * questions. */ -import java.nio.file.Path; +import java.io.IOException; import java.nio.file.Files; -import jdk.jpackage.internal.ApplicationLayout; +import java.nio.file.Path; import jdk.jpackage.test.PackageTest; -import jdk.jpackage.test.PackageType; import jdk.jpackage.test.TKit; import jdk.jpackage.test.Annotations.Test; -import jdk.jpackage.test.Annotations.Parameter; import jdk.jpackage.test.Annotations.Parameters; import java.util.Arrays; import java.util.Collection; import java.util.List; +import static java.util.stream.Collectors.joining; +import java.util.stream.Stream; +import jdk.jpackage.internal.IOUtils; +import jdk.jpackage.test.Functional.ThrowingFunction; +import jdk.jpackage.test.JPackageCommand; -import jdk.internal.util.OSVersion; /** - * Tests generation of packages with input folder containing empty folders. + * Tests generation of packages with additional content in app image. */ /* @@ -55,14 +57,18 @@ */ public class AppContentTest { - private static final String TEST_JAVA = TKit.TEST_SRC_ROOT.resolve( - "apps/PrintEnv.java").toString(); - private static final String TEST_DUKE = TKit.TEST_SRC_ROOT.resolve( - "apps/dukeplug.png").toString(); - private static final String TEST_DIR = TKit.TEST_SRC_ROOT.resolve( - "apps").toString(); - private static final String TEST_BAD = TKit.TEST_SRC_ROOT.resolve( - "non-existant").toString(); + private static final String TEST_JAVA = "apps/PrintEnv.java"; + private static final String TEST_DUKE = "apps/dukeplug.png"; + private static final String TEST_DIR = "apps"; + private static final String TEST_BAD = "non-existant"; + + // On OSX `--app-content` paths will be copied into the "Contents" folder + // of the output app image. + // "codesign" imposes restrictions on the directory structure of "Contents" folder. + // In particular, random files should be placed in "Contents/Resources" folder + // otherwise "codesign" will fail to sign. + // Need to prepare arguments for `--app-content` accordingly. + private final static boolean copyInResources = TKit.isOSX(); private final List testPathArgs; @@ -82,37 +88,90 @@ public AppContentTest(String... testPathArgs) { @Test public void test() throws Exception { - - // On macOS signing may or may not work for modified app bundles. - // It works on macOS 15 and up, but fails on macOS below 15. final int expectedJPackageExitCode; - final boolean isMacOS15 = (OSVersion.current().compareTo( - new OSVersion(15, 0, 0)) > 0); - if (testPathArgs.contains(TEST_BAD) || (TKit.isOSX() && !isMacOS15)) { + if (testPathArgs.contains(TEST_BAD)) { expectedJPackageExitCode = 1; } else { expectedJPackageExitCode = 0; } + var appContentInitializer = new AppContentInitializer(testPathArgs); + new PackageTest().configureHelloApp() - .addInitializer(cmd -> { - for (String arg : testPathArgs) { - cmd.addArguments("--app-content", arg); - } - }) + .addRunOnceInitializer(appContentInitializer::initAppContent) + .addInitializer(appContentInitializer::applyTo) .addInstallVerifier(cmd -> { - ApplicationLayout appLayout = cmd.appLayout(); - Path contentDir = appLayout.contentDirectory(); + Path baseDir = getAppContentRoot(cmd); for (String arg : testPathArgs) { List paths = Arrays.asList(arg.split(",")); for (String p : paths) { Path name = Path.of(p).getFileName(); - TKit.assertPathExists(contentDir.resolve(name), true); + TKit.assertPathExists(baseDir.resolve(name), true); } } }) .setExpectedExitCode(expectedJPackageExitCode) .run(); + } + + private static Path getAppContentRoot(JPackageCommand cmd) { + Path contentDir = cmd.appLayout().contentDirectory(); + if (copyInResources) { + return contentDir.resolve("Resources"); + } else { + return contentDir; } + } + + private static final class AppContentInitializer { + AppContentInitializer(List appContentArgs) { + appContentPathGroups = appContentArgs.stream().map(arg -> { + return Stream.of(arg.split(",")).map(Path::of).toList(); + }).toList(); + } + + void initAppContent() { + jpackageArgs = appContentPathGroups.stream() + .map(AppContentInitializer::initAppContentPaths) + .mapMulti((appContentPaths, consumer) -> { + consumer.accept("--app-content"); + consumer.accept( + appContentPaths.stream().map(Path::toString).collect( + joining(","))); + }).toList(); + } + + void applyTo(JPackageCommand cmd) { + cmd.addArguments(jpackageArgs); + } + + private static Path copyAppContentPath(Path appContentPath) throws IOException { + var appContentArg = TKit.createTempDirectory("app-content").resolve("Resources"); + var srcPath = TKit.TEST_SRC_ROOT.resolve(appContentPath); + var dstPath = appContentArg.resolve(srcPath.getFileName()); + Files.createDirectories(dstPath.getParent()); + IOUtils.copyRecursive(srcPath, dstPath); + return appContentArg; + } + + private static List initAppContentPaths(List appContentPaths) { + if (copyInResources) { + return appContentPaths.stream().map(appContentPath -> { + if (appContentPath.endsWith(TEST_BAD)) { + return appContentPath; + } else { + return ThrowingFunction.toFunction( + AppContentInitializer::copyAppContentPath).apply( + appContentPath); + } + }).toList(); + } else { + return appContentPaths.stream().map(TKit.TEST_SRC_ROOT::resolve).toList(); + } + } + + private List jpackageArgs; + private final List> appContentPathGroups; + } } diff --git a/test/jdk/tools/jpackage/share/EmptyFolderBase.java b/test/jdk/tools/jpackage/share/EmptyFolderBase.java deleted file mode 100644 index 092996ad039..00000000000 --- a/test/jdk/tools/jpackage/share/EmptyFolderBase.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -import java.io.File; -import java.io.IOException; -import java.nio.file.Path; -import jdk.jpackage.test.TKit; - -public class EmptyFolderBase { - - // Note: To specify file use ".txt" extension. - // Note: createDirStrcture() will call mkdir() or createNewFile() for paths defined - // in dirStruct, so make sure paths are defined in order. - - // folder-empty - // folder-not-empty - // folder-not-empty/folder-empty - // folder-not-empty/another-folder-empty - // folder-not-empty/folder-non-empty2 - // folder-not-empty/folder-non-empty2/file.txt - private static final String [] DIR_STRUCT = { - "folder-empty", - "folder-not-empty", - "folder-not-empty" + File.separator + "folder-empty", - "folder-not-empty" + File.separator + "another-folder-empty", - "folder-not-empty" + File.separator + "folder-non-empty2", - "folder-not-empty" + File.separator + "folder-non-empty2" + File.separator + - "file.txt" - }; - - // See dirStruct - public static void createDirStrcture(Path inputPath) throws IOException { - File input = new File(inputPath.toString()); - input.mkdir(); - - for (String p : DIR_STRUCT) { - File f = new File(input, p); - if (p.endsWith(".txt")) { - f.createNewFile(); - } else { - f.mkdir(); - } - } - } - - public static void validateDirStrcture(Path appDirPath) { - for (String p : DIR_STRUCT) { - Path path = appDirPath.resolve(p); - TKit.assertPathExists(path, true); - } - } -} diff --git a/test/jdk/tools/jpackage/share/EmptyFolderPackageTest.java b/test/jdk/tools/jpackage/share/EmptyFolderPackageTest.java deleted file mode 100644 index c7af050c685..00000000000 --- a/test/jdk/tools/jpackage/share/EmptyFolderPackageTest.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (c) 2020, 2021, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code 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 - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -import java.nio.file.Path; -import jdk.jpackage.internal.ApplicationLayout; -import jdk.jpackage.test.PackageTest; -import jdk.jpackage.test.PackageType; -import jdk.jpackage.test.Annotations.Test; - -/** - * Tests generation of packages with input folder containing empty folders. - */ - -/* - * @test - * @summary jpackage with input containing empty folders - * @library ../helpers - * @library /test/lib - * @key jpackagePlatformPackage - * @build EmptyFolderBase - * @build jdk.jpackage.test.* - * @build EmptyFolderPackageTest - * @modules jdk.jpackage/jdk.jpackage.internal - * @run main/othervm/timeout=720 -Xmx512m jdk.jpackage.test.Main - * --jpt-run=EmptyFolderPackageTest - */ -public class EmptyFolderPackageTest { - - @Test - public static void test() throws Exception { - new PackageTest().configureHelloApp() - .addInitializer(cmd -> { - Path input = cmd.inputDir(); - EmptyFolderBase.createDirStrcture(input); - }) - .addInstallVerifier(cmd -> { - if (cmd.packageType() == PackageType.WIN_MSI) { - if (cmd.isPackageUnpacked("Not running file " - + "structure check for empty folders")) { - return; - } - } - - ApplicationLayout appLayout = cmd.appLayout(); - Path appDir = appLayout.appDirectory(); - EmptyFolderBase.validateDirStrcture(appDir); - }) - .run(); - } -} diff --git a/test/jdk/tools/jpackage/share/EmptyFolderTest.java b/test/jdk/tools/jpackage/share/EmptyFolderTest.java index a41c4a66702..230d8a039ea 100644 --- a/test/jdk/tools/jpackage/share/EmptyFolderTest.java +++ b/test/jdk/tools/jpackage/share/EmptyFolderTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,44 +21,113 @@ * questions. */ +import java.io.IOException; +import java.nio.file.Files; import java.nio.file.Path; -import jdk.jpackage.test.JPackageCommand; +import jdk.jpackage.test.PackageTest; import jdk.jpackage.test.Annotations.Test; -import jdk.jpackage.internal.ApplicationLayout; +import jdk.jpackage.test.JPackageCommand; +import jdk.jpackage.test.PackageType; +import jdk.jpackage.test.TKit; /** - * Tests generation of app image with input folder containing empty folders. + * Tests generation of packages and app image with input folder containing empty folders. + */ + +/* + * @test + * @summary jpackage for package with input containing empty folders + * @library ../helpers + * @library /test/lib + * @key jpackagePlatformPackage + * @build jdk.jpackage.test.* + * @build EmptyFolderTest + * @modules jdk.jpackage/jdk.jpackage.internal + * @run main/othervm/timeout=720 -Xmx512m jdk.jpackage.test.Main + * --jpt-run=EmptyFolderTest.testPackage */ /* * @test - * @summary jpackage with input containing empty folders + * @summary jpackage for app image with input containing empty folders * @library ../helpers * @library /test/lib - * @build EmptyFolderBase * @build jdk.jpackage.test.* * @build EmptyFolderTest * @modules jdk.jpackage/jdk.jpackage.internal * @run main/othervm -Xmx512m jdk.jpackage.test.Main - * --jpt-run=EmptyFolderTest + * --jpt-run=EmptyFolderTest.testAppImage */ + public class EmptyFolderTest { @Test - public static void test() throws Exception { - JPackageCommand cmd = JPackageCommand.helloAppImage(); + public static void testPackage() { + new PackageTest() + .configureHelloApp() + .addInitializer(EmptyFolderTest::createDirTree) + .addInitializer(cmd -> { + cmd.setArgumentValue("--name", "EmptyFolderPackageTest"); + }) + .addInstallVerifier(EmptyFolderTest::validateDirTree) + .run(); + } + + @Test + public static void testAppImage() throws IOException { + var cmd = JPackageCommand.helloAppImage(); // Add more files into input folder - Path input = cmd.inputDir(); - EmptyFolderBase.createDirStrcture(input); + createDirTree(cmd); // Create app image cmd.executeAndAssertHelloAppImageCreated(); - // Verify directory strcture - ApplicationLayout appLayout = cmd.appLayout(); - Path appDir = appLayout.appDirectory(); - EmptyFolderBase.validateDirStrcture(appDir); + // Verify directory structure + validateDirTree(cmd); + } + + private static void createDirTree(JPackageCommand cmd) throws IOException { + var baseDir = cmd.inputDir(); + for (var path : DIR_STRUCT) { + path = baseDir.resolve(path); + if (isFile(path)) { + Files.createDirectories(path.getParent()); + Files.write(path, new byte[0]); + } else { + Files.createDirectories(path); + } + } + } + + private static void validateDirTree(JPackageCommand cmd) { + var outputBaseDir = cmd.appLayout().appDirectory(); + var inputBaseDir = cmd.inputDir(); + for (var path : DIR_STRUCT) { + Path outputPath = outputBaseDir.resolve(path); + if (isFile(outputPath)) { + TKit.assertFileExists(outputPath); + } else if (!PackageType.WINDOWS.contains(cmd.packageType())) { + TKit.assertDirectoryExists(outputPath); + } else if (inputBaseDir.resolve(path).toFile().list().length == 0) { + // MSI packages don't support empty folders + TKit.assertPathExists(outputPath, false); + } else { + TKit.assertDirectoryNotEmpty(outputPath); + } + } + } + + private static boolean isFile(Path path) { + return path.getFileName().toString().endsWith(".txt"); } + // Note: To specify file use ".txt" extension. + private static final Path [] DIR_STRUCT = { + Path.of("folder-empty"), + Path.of("folder-not-empty"), + Path.of("folder-not-empty", "folder-empty"), + Path.of("folder-not-empty", "another-folder-empty"), + Path.of("folder-not-empty", "folder-non-empty2", "file.txt") + }; } diff --git a/test/jdk/tools/jpackage/share/RuntimeImageTest.java b/test/jdk/tools/jpackage/share/RuntimeImageTest.java index 44088778589..64908b6ac99 100644 --- a/test/jdk/tools/jpackage/share/RuntimeImageTest.java +++ b/test/jdk/tools/jpackage/share/RuntimeImageTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -25,7 +25,6 @@ import java.nio.file.Path; import jdk.jpackage.test.TKit; import jdk.jpackage.test.Annotations.Test; -import jdk.jpackage.test.Annotations.Parameter; import jdk.jpackage.test.JPackageCommand; import jdk.jpackage.test.JavaTool; import jdk.jpackage.test.Executor; @@ -45,10 +44,7 @@ public class RuntimeImageTest { @Test - @Parameter("0") - @Parameter("1") - @Parameter("2") - public static void test(String compression) throws Exception { + public static void test() throws Exception { final Path workDir = TKit.createTempDirectory("runtime").resolve("data"); final Path jlinkOutputDir = workDir.resolve("temp.runtime"); Files.createDirectories(jlinkOutputDir.getParent()); @@ -58,7 +54,6 @@ public static void test(String compression) throws Exception { .dumpOutput() .addArguments( "--output", jlinkOutputDir.toString(), - "--compress=" + compression, "--add-modules", "ALL-MODULE-PATH", "--strip-debug", "--no-header-files", diff --git a/test/jdk/tools/jpackage/share/RuntimePackageTest.java b/test/jdk/tools/jpackage/share/RuntimePackageTest.java index 12edff1cea5..da58ed3a73c 100644 --- a/test/jdk/tools/jpackage/share/RuntimePackageTest.java +++ b/test/jdk/tools/jpackage/share/RuntimePackageTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -113,7 +113,6 @@ private static PackageTest init(Set types) { .dumpOutput() .addArguments( "--output", runtimeImageDir.toString(), - "--compress=0", "--add-modules", "ALL-MODULE-PATH", "--strip-debug", "--no-header-files", diff --git a/test/jdk/tools/jpackage/share/jdk/jpackage/tests/BasicTest.java b/test/jdk/tools/jpackage/share/jdk/jpackage/tests/BasicTest.java index 7603264c437..72550fd365b 100644 --- a/test/jdk/tools/jpackage/share/jdk/jpackage/tests/BasicTest.java +++ b/test/jdk/tools/jpackage/share/jdk/jpackage/tests/BasicTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2019, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -30,7 +30,6 @@ import java.util.ArrayList; import java.util.function.Function; import java.util.function.Predicate; -import java.util.function.Supplier; import java.util.regex.Pattern; import java.util.stream.Stream; import jdk.jpackage.test.TKit; @@ -265,49 +264,64 @@ public void testAddModules(String... addModulesArg) { cmd.executeAndAssertHelloAppImageCreated(); } + public static enum TestTempType { + TEMPDIR_EMPTY, + TEMPDIR_NOT_EMPTY, + TEMPDIR_NOT_EXIST, + } + /** * Test --temp option. Doesn't make much sense for app image as temporary * directory is used only on Windows. Test it in packaging mode. - * @throws IOException */ @Test - @Parameter("true") - @Parameter("false") - public void testTemp(boolean withExistingTempDir) throws IOException { + @Parameter("TEMPDIR_EMPTY") + @Parameter("TEMPDIR_NOT_EMPTY") + @Parameter("TEMPDIR_NOT_EXIST") + public void testTemp(TestTempType type) throws IOException { final Path tempRoot = TKit.createTempDirectory("tmp"); - Supplier createTest = () -> { - return new PackageTest() - .configureHelloApp() - // Force save of package bundle in test work directory. - .addInitializer(JPackageCommand::setDefaultInputOutput) - .addInitializer(cmd -> { - Path tempDir = getTempDirectory(cmd, tempRoot); - if (withExistingTempDir) { - Files.createDirectories(tempDir); - } else { - Files.createDirectories(tempDir.getParent()); + var pkgTest = new PackageTest() + .configureHelloApp() + // Force save of package bundle in test work directory. + .addInitializer(JPackageCommand::setDefaultInputOutput) + .addInitializer(cmd -> { + Path tempDir = getTempDirectory(cmd, tempRoot); + switch (type) { + case TEMPDIR_EMPTY -> Files.createDirectories(tempDir); + case TEMPDIR_NOT_EXIST -> Files.createDirectories(tempDir.getParent()); + case TEMPDIR_NOT_EMPTY -> { + Files.createDirectories(tempDir); + TKit.createTextFile(tempDir.resolve("foo.txt"), List.of( + "Hello Duke!")); + } } cmd.addArguments("--temp", tempDir); + } + ); + + if (TestTempType.TEMPDIR_NOT_EMPTY.equals(type)) { + pkgTest.setExpectedExitCode(1).addBundleVerifier(cmd -> { + // Check jpackage didn't use the supplied directory. + Path tempDir = getTempDirectory(cmd, tempRoot); + String[] tempDirContents = tempDir.toFile().list(); + TKit.assertStringListEquals(List.of("foo.txt"), List.of( + tempDirContents), String.format( + "Check the contents of the supplied temporary directory [%s]", + tempDir)); + TKit.assertStringListEquals(List.of("Hello Duke!"), + Files.readAllLines(tempDir.resolve(tempDirContents[0])), + "Check the contents of the file in the supplied temporary directory"); }); - }; + } else { + pkgTest.addBundleVerifier(cmd -> { + // Check jpackage used the supplied directory. + Path tempDir = getTempDirectory(cmd, tempRoot); + TKit.assertDirectoryNotEmpty(tempDir); + }); + } - createTest.get() - .addBundleVerifier(cmd -> { - // Check jpackage actually used the supplied directory. - Path tempDir = getTempDirectory(cmd, tempRoot); - TKit.assertNotEquals(0, tempDir.toFile().list().length, - String.format( - "Check jpackage wrote some data in the supplied temporary directory [%s]", - tempDir)); - }) - .run(PackageTest.Action.CREATE); - - createTest.get() - // Temporary directory should not be empty, - // jpackage should exit with error. - .setExpectedExitCode(1) - .run(PackageTest.Action.CREATE); + pkgTest.run(PackageTest.Action.CREATE); } @Test diff --git a/test/jtreg-ext/requires/VMProps.java b/test/jtreg-ext/requires/VMProps.java index 465c641d442..4f00846116c 100644 --- a/test/jtreg-ext/requires/VMProps.java +++ b/test/jtreg-ext/requires/VMProps.java @@ -323,17 +323,6 @@ protected void vmGC(SafeMap map) { for (GC gc: GC.values()) { map.put("vm.gc." + gc.name(), () -> "" + vmGCProperty.test(gc)); } - - // Special handling for ZGC modes - var vmGCZ = vmGCProperty.test(GC.Z); - var genZ = WB.getBooleanVMFlag("ZGenerational"); - var genZIsDefault = WB.isDefaultVMFlag("ZGenerational"); - // vm.gc.ZGenerational=true means: - // vm.gc.Z is true and ZGenerational is either explicitly true, or default - map.put("vm.gc.ZGenerational", () -> "" + (vmGCZ && (genZ || genZIsDefault))); - // vm.gc.ZSinglegen=true means: - // vm.gc.Z is true and ZGenerational is either explicitly false, or default - map.put("vm.gc.ZSinglegen", () -> "" + (vmGCZ && (!genZ || genZIsDefault))); } /** @@ -388,7 +377,6 @@ protected void vmOptFinalFlags(SafeMap map) { vmOptFinalFlag(map, "UseCompressedOops"); vmOptFinalFlag(map, "UseLargePages"); vmOptFinalFlag(map, "UseVectorizedMismatchIntrinsic"); - vmOptFinalFlag(map, "ZGenerational"); } /** diff --git a/test/langtools/tools/javac/inference_non_determinism/NonDeterminismTest.java b/test/langtools/tools/javac/inference_non_determinism/NonDeterminismTest.java new file mode 100644 index 00000000000..2f245d4f877 --- /dev/null +++ b/test/langtools/tools/javac/inference_non_determinism/NonDeterminismTest.java @@ -0,0 +1,74 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 8342090 8288590 + * @summary Infer::IncorporationBinaryOp::equals can produce side-effects + * @compile NonDeterminismTest.java + * @compile -J-XX:+UnlockExperimentalVMOptions -J-XX:hashCode=2 NonDeterminismTest.java + */ + +import java.util.*; +import java.lang.foreign.*; +import static java.lang.foreign.ValueLayout.*; + +import static java.util.Arrays.asList; + +class NonDeterminismTest { + void test1() { + Map CANONICAL_LAYOUTS = Map.ofEntries( + // specified canonical layouts + Map.entry("bool", JAVA_BOOLEAN), + Map.entry("char", JAVA_BYTE), + Map.entry("float", JAVA_FLOAT), + Map.entry("long long", JAVA_LONG), + Map.entry("double", JAVA_DOUBLE), + Map.entry("void*", ADDRESS), + // JNI types + Map.entry("jboolean", JAVA_BOOLEAN), + Map.entry("jchar", JAVA_CHAR), + Map.entry("jbyte", JAVA_BYTE), + Map.entry("jshort", JAVA_SHORT), + Map.entry("jint", JAVA_INT), + Map.entry("jlong", JAVA_LONG), + Map.entry("jfloat", JAVA_FLOAT), + Map.entry("jdouble", JAVA_DOUBLE) + ); + } + + class Test2 { + interface I1 {} + interface I2 {} + + record R1(List T1) implements I1 {} + record R2(List T1, List T2) implements I2 {} + + I1 m1(T1 T1) { + return new R1<>(asList(T1)); + } + I2 m2(T1 T1, T2 T2) { + return new R2<>(asList(T1), asList(T2)); + } + } +} diff --git a/test/langtools/tools/javac/patterns/Switches.java b/test/langtools/tools/javac/patterns/Switches.java index 9adf3cded40..7d7cb83e02f 100644 --- a/test/langtools/tools/javac/patterns/Switches.java +++ b/test/langtools/tools/javac/patterns/Switches.java @@ -28,7 +28,7 @@ /* * @test - * @bug 8262891 8268333 8268896 8269802 8269808 8270151 8269113 8277864 8290709 + * @bug 8262891 8268333 8268896 8269802 8269808 8270151 8269113 8277864 8290709 8339296 * @summary Check behavior of pattern switches. */ public class Switches { @@ -117,6 +117,9 @@ void run() { assertEquals(0, constantAndPatternGuardEnum(E.B, true)); assertEquals(1, constantAndPatternGuardEnum(E.B, false)); assertEquals(2, constantAndPatternGuardEnum(E.A, false)); + assertEquals(0, nestedSwitchesInArgumentPosition(1)); + assertEquals(1, nestedSwitchesInArgumentPosition(new R(1))); + assertEquals(5, nestedSwitchesInArgumentPosition(new R(new R("hello")))); } void run(Function mapper) { @@ -749,6 +752,24 @@ int constantAndPatternGuardEnum(E e, boolean g) { }; } + int nestedSwitchesInArgumentPosition(Object o1) { + return id(switch (o1) { + case R(var o2) -> switch (o2) { + case R(String s) -> s; + default -> "n"; + }; + default -> ""; + }); + } + + int id(String s) { + return s.length(); + } + + int id(int i) { + return i; + } + //verify that for cases like: //case ConstantClassClash -> //ConstantClassClash is interpreted as a field, not as a class diff --git a/test/langtools/tools/javac/processing/model/type/AnnotatedTypeToString/AnnotatedTypeToString.java b/test/langtools/tools/javac/processing/model/type/AnnotatedTypeToString/AnnotatedTypeToString.java index 54538e44346..6967f271dcd 100644 --- a/test/langtools/tools/javac/processing/model/type/AnnotatedTypeToString/AnnotatedTypeToString.java +++ b/test/langtools/tools/javac/processing/model/type/AnnotatedTypeToString/AnnotatedTypeToString.java @@ -23,7 +23,7 @@ /* * @test - * @bug 8284220 + * @bug 8284220 8342934 * @summary Tests DeclaredType.toString with type annotations present, for example that '@A * Map.Entry' is printed as 'java.util.@A Map.Entry' (and not '@A java.util.Map.Entry' or * 'java.util.@A Entry'). diff --git a/test/langtools/tools/javac/processing/model/type/AnnotatedTypeToString/Test.java b/test/langtools/tools/javac/processing/model/type/AnnotatedTypeToString/Test.java index 570407a363a..8311344ea9d 100644 --- a/test/langtools/tools/javac/processing/model/type/AnnotatedTypeToString/Test.java +++ b/test/langtools/tools/javac/processing/model/type/AnnotatedTypeToString/Test.java @@ -32,6 +32,10 @@ @Target(ElementType.TYPE_USE) @interface A {} +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.TYPE_USE) +@interface B {} + public class Test { static class StaticNested { static class InnerMostStaticNested {} @@ -41,8 +45,8 @@ class Inner { class InnerMost {} } - @ExpectedToString("p.Test.@p.A StaticNested") - @A StaticNested i; + @ExpectedToString("p.Test.@p.A @p.B StaticNested") + @A @B StaticNested i; @ExpectedToString("p.Test.StaticNested.@p.A InnerMostStaticNested") StaticNested.@A InnerMostStaticNested j; diff --git a/test/langtools/tools/javac/types/UnknownTypeTest.java b/test/langtools/tools/javac/types/UnknownTypeTest.java new file mode 100644 index 00000000000..edb4ab3a9be --- /dev/null +++ b/test/langtools/tools/javac/types/UnknownTypeTest.java @@ -0,0 +1,129 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 8339296 + * @summary Verify that the UnknownType behaves as an erroneous type + * @library /tools/lib/types + * @modules jdk.compiler/com.sun.tools.javac.code + * jdk.compiler/com.sun.tools.javac.comp + * jdk.compiler/com.sun.tools.javac.file + * jdk.compiler/com.sun.tools.javac.util + * jdk.compiler/com.sun.tools.javac.main + * jdk.compiler/com.sun.tools.javac.tree + * @build TypeHarness + * @run main UnknownTypeTest + */ + +import com.sun.tools.javac.code.Type; +import com.sun.tools.javac.code.Symtab; +import com.sun.tools.javac.code.Type.TypeVar; +import com.sun.tools.javac.code.Type.UnionClassType; +import com.sun.tools.javac.util.List; +import java.util.Objects; + +public class UnknownTypeTest extends TypeHarness { + + private final Type error; + private final Type unknown; + private final Type[] testTypes; + private final Operation[] testOperations; + + UnknownTypeTest() { + Symtab syms = Symtab.instance(context); + error = syms.errType; + unknown = syms.unknownType; + testTypes = new Type[] { + syms.objectType, + syms.errType, + syms.unknownType, + new TypeVar(syms.unknownSymbol, syms.objectType, syms.objectType), + types.makeIntersectionType(List.of(syms.annotationType, syms.stringType)), + new UnionClassType((Type.ClassType) syms.annotationType, List.of(syms.stringType)), + syms.intType, + types.makeArrayType(syms.stringType) + }; + testOperations = new Operation[] { + types::containedBy, + types::containsType, + types::isAssignable, + types::isCastable, + types::isConvertible, + types::isSameType, + types::isSubtype, + types::isSuperType, + types::isUnconditionallyExact, + (t1, _) -> types.isArray(t1), + (t1, _) -> types.isDerivedRaw(t1), + (t1, _) -> types.isReifiable(t1), + (t1, _) -> types.isUnbounded(t1), + (t1, _) -> types.boxedTypeOrType(t1), + (t1, _) -> types.unboxedType(t1), + (t1, _) -> types.unboxedTypeOrType(t1), + }; + } + + void test(Type[] testTypes, Operation[] testOperations) { + for (int typeIndex = 0; typeIndex < testTypes.length ; typeIndex++) { + for (int operationIndex = 0; operationIndex < testOperations.length ; operationIndex++) { + Object expected; + Object actual; + expected = testOperations[operationIndex].run(error, testTypes[typeIndex]); + actual = testOperations[operationIndex].run(unknown, testTypes[typeIndex]); + checkEquals("Type index: " + typeIndex + ", operationIndex: " + operationIndex + ", unknown in the first position", expected, actual); + expected = testOperations[operationIndex].run(testTypes[typeIndex], error); + actual = testOperations[operationIndex].run(testTypes[typeIndex], unknown); + checkEquals("Type index: " + typeIndex + ", operationIndex: " + operationIndex + ", unknown in the second position", expected, actual); + } + } + } + + void checkEquals(String message, Object expected, Object actual) { + boolean matches; + + if (expected instanceof Type t1 && actual instanceof Type t2) { + matches = types.isSameType(t1, t2); + } else { + matches = Objects.equals(expected, actual); + } + + if (!matches) { + throw new AssertionError("Unexpected outcome: " + actual + + ", expected: " + expected + + ", for test: " + message); + } + } + + void runTests() { + test(testTypes, testOperations); + } + + public static void main(String[] args) { + new UnknownTypeTest().runTests(); + } + + interface Operation { + public Object run(Type t1, Type t2); + } +} diff --git a/test/langtools/tools/javap/ClassWriterCodeIndentTest.java b/test/langtools/tools/javap/ClassWriterCodeIndentTest.java new file mode 100644 index 00000000000..993c0a4364a --- /dev/null +++ b/test/langtools/tools/javap/ClassWriterCodeIndentTest.java @@ -0,0 +1,113 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 8034066 + * @summary javap incorrect indentation when CodeWriter called via ClassWriter + * @run main ClassWriterCodeIndentTest + * @modules jdk.jdeps/com.sun.tools.javap + */ + +import java.io.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class ClassWriterCodeIndentTest { + public static void main(String[] args) { + new ClassWriterCodeIndentTest().run(); + } + + public void run() { + /* + * Partial expected output within a larger file. There exists another "Code: " section above, and thus we + * select the second occurrence in `findNthMatchPrecedingSpaces(output, "Code:", 1);` + * ... + * Code: + * 0: iconst_0 + * 1: istore_1 + * StackMap locals: this int + * StackMap stack: + * ... + */ + String output = javap(); + + int codeHeaderIndent = findNthMatchPrecedingSpaces(output, "Code:", 1); + int detailIndent = findNthMatchPrecedingSpaces(output, "StackMap ", 0); + int bytecodeIndent = findNthMatchPrecedingSpaces(output, "0: iconst_0", 0); + + if (detailIndent - codeHeaderIndent != 2) { + error("Details are not indented correctly with respect to code header."); + } + + if (bytecodeIndent - codeHeaderIndent != 5) { + error("Bytecode is not indented correctly with respect to code header."); + } + + if (errors > 0) { + throw new Error(errors + " found."); + } + } + + String javap() { + StringWriter sw = new StringWriter(); + PrintWriter out = new PrintWriter(sw); + int rc = com.sun.tools.javap.Main.run(new String[]{"-c", "-XDdetails:stackMaps", + System.getProperty("test.classes") + "/EmptyLoop.class"}, out); + if (rc != 0) + throw new Error("javap failed. rc=" + rc); + out.close(); + System.out.println(sw.toString()); + return sw.toString(); + } + + public static int findNthMatchPrecedingSpaces(String inputString, String searchString, int occurrence) { + String regex = "^(\\s*)" + Pattern.quote(searchString); + Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE); + Matcher matcher = pattern.matcher(inputString); + + int count = 0; + while (matcher.find()) { + if (count == occurrence) { + return matcher.group(1).length(); + } + count++; + } + + throw new Error("Could not find " + searchString + " in " + inputString); + } + + void error(String msg) { + System.err.println(msg); + errors++; + } + + int errors; +} + +class EmptyLoop { + public void emptyLoop() { + for (int i = 0; i < 10; i++) { + } + } +} \ No newline at end of file diff --git a/test/lib/jdk/test/lib/compiler/InMemoryJavaCompiler.java b/test/lib/jdk/test/lib/compiler/InMemoryJavaCompiler.java index 6016e48bf4e..4722ef3b67a 100644 --- a/test/lib/jdk/test/lib/compiler/InMemoryJavaCompiler.java +++ b/test/lib/jdk/test/lib/compiler/InMemoryJavaCompiler.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -26,11 +26,18 @@ import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.OutputStream; +import java.io.StringWriter; +import java.io.Writer; import java.net.URI; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collection; +import java.util.HashMap; +import java.util.LinkedList; import java.util.List; +import java.util.Map; +import java.util.Map.Entry; import javax.tools.FileObject; import javax.tools.ForwardingJavaFileManager; @@ -76,36 +83,6 @@ * */ public class InMemoryJavaCompiler { - private static class MemoryJavaFileObject extends SimpleJavaFileObject { - private final String className; - private final CharSequence sourceCode; - private final ByteArrayOutputStream byteCode; - - public MemoryJavaFileObject(String className, CharSequence sourceCode) { - super(URI.create("string:///" + className.replace('.','/') + Kind.SOURCE.extension), Kind.SOURCE); - this.className = className; - this.sourceCode = sourceCode; - this.byteCode = new ByteArrayOutputStream(); - } - - @Override - public CharSequence getCharContent(boolean ignoreEncodingErrors) { - return sourceCode; - } - - @Override - public OutputStream openOutputStream() throws IOException { - return byteCode; - } - - public byte[] getByteCode() { - return byteCode.toByteArray(); - } - - public String getClassName() { - return className; - } - } private static class FileManagerWrapper extends ForwardingJavaFileManager { private static final Location PATCH_LOCATION = new Location() { @@ -119,12 +96,13 @@ public boolean isOutputLocation() { return false; } }; - private final MemoryJavaFileObject file; + private final SourceFile srcFile; + private ClassFile clsFile; private final String moduleOverride; - public FileManagerWrapper(MemoryJavaFileObject file, String moduleOverride) { + public FileManagerWrapper(SourceFile file, String moduleOverride) { super(getCompiler().getStandardFileManager(null, null, null)); - this.file = file; + this.srcFile = file; this.moduleOverride = moduleOverride; } @@ -132,16 +110,17 @@ public FileManagerWrapper(MemoryJavaFileObject file, String moduleOverride) { public JavaFileObject getJavaFileForOutput(Location location, String className, Kind kind, FileObject sibling) throws IOException { - if (!file.getClassName().equals(className)) { - throw new IOException("Expected class with name " + file.getClassName() + + if (!srcFile.getClassName().equals(className)) { + throw new IOException("Expected class with name " + srcFile.getClassName() + ", but got " + className); } - return file; + clsFile = new ClassFile(className); + return clsFile; } @Override public Location getLocationForModule(Location location, JavaFileObject fo) throws IOException { - if (fo == file && moduleOverride != null) { + if (fo == srcFile && moduleOverride != null) { return PATCH_LOCATION; } return super.getLocationForModule(location, fo); @@ -160,6 +139,100 @@ public boolean hasLocation(Location location) { return super.hasLocation(location) || location == StandardLocation.PATCH_MODULE_PATH; } + public byte[] getByteCode() { + return clsFile.toByteArray(); + } + + } + + // Wraper for class file + static class ClassFile extends SimpleJavaFileObject { + + private final ByteArrayOutputStream baos = new ByteArrayOutputStream(); + + protected ClassFile(String name) { + super(URI.create("memo:///" + name.replace('.', '/') + Kind.CLASS.extension), Kind.CLASS); + } + + @Override + public ByteArrayOutputStream openOutputStream() { return this.baos; } + + byte[] toByteArray() { return baos.toByteArray(); } + } + + // File manager which spawns ClassFile instances by demand + static class FileManager extends ForwardingJavaFileManager { + + private Map classesMap = new HashMap(); + + protected FileManager(JavaFileManager fileManager) { + super(fileManager); + } + + @Override + public ClassFile getJavaFileForOutput(Location location, String name, JavaFileObject.Kind kind, FileObject source) { + ClassFile classFile = new ClassFile(name); + classesMap.put(name, classFile); + return classFile; + } + + public Map getByteCode() { + Map result = new HashMap(); + for (Entry entry : classesMap.entrySet()) { + result.put(entry.getKey(), entry.getValue().toByteArray()); + } + return result; + } + } + + // Wrapper for source file + static class SourceFile extends SimpleJavaFileObject { + + private CharSequence sourceCode; + private String className; + + public SourceFile(String name, CharSequence sourceCode) { + super(URI.create("memo:///" + name.replace('.', '/') + Kind.SOURCE.extension), Kind.SOURCE); + this.sourceCode = sourceCode; + this.className = name; + } + + @Override + public CharSequence getCharContent(boolean ignore) { + return this.sourceCode; + } + + public String getClassName() { + return this.className; + } + } + + /** + * Compiles the list of classes with the given map of name and source code. + * This overloaded version of compile is useful for batch compile use cases. + * + * @param inputMap The map containing the name of the class and corresponding source code + * @throws RuntimeException if the compilation did not succeed + * @return The resulting byte code from the compilation + */ + public static Map compile(Map inputMap) { + Collection sourceFiles = new LinkedList(); + for (Entry entry : inputMap.entrySet()) { + sourceFiles.add(new SourceFile(entry.getKey(), entry.getValue())); + } + + JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); + FileManager fileManager = new FileManager(compiler.getStandardFileManager(null, null, null)); + + Writer writer = new StringWriter(); + Boolean exitCode = compiler.getTask(writer, fileManager, null, null, null, sourceFiles).call(); + if (!exitCode) { + System.out.println("*********** javac output begin ***********"); + System.out.println(writer.toString()); + System.out.println("*********** javac output end ***********"); + throw new RuntimeException("Test bug: in memory compilation failed."); + } + return fileManager.getByteCode(); } /** @@ -173,7 +246,7 @@ public boolean hasLocation(Location location) { * @return The resulting byte code from the compilation */ public static byte[] compile(String className, CharSequence sourceCode, String... options) { - MemoryJavaFileObject file = new MemoryJavaFileObject(className, sourceCode); + SourceFile file = new SourceFile(className, sourceCode); List opts = new ArrayList<>(); String moduleOverride = null; for (String opt : options) { @@ -183,13 +256,13 @@ public static byte[] compile(String className, CharSequence sourceCode, String.. opts.add(opt); } } - try (JavaFileManager fileManager = new FileManagerWrapper(file, moduleOverride)) { + try (FileManagerWrapper fileManager = new FileManagerWrapper(file, moduleOverride)) { CompilationTask task = getCompiler().getTask(null, fileManager, null, opts, null, Arrays.asList(file)); if (!task.call()) { throw new RuntimeException("Could not compile " + className + " with source code " + sourceCode); } - return file.getByteCode(); + return fileManager.getByteCode(); } catch (IOException ioe) { throw new RuntimeException(ioe); } diff --git a/test/lib/jdk/test/lib/security/SecurityUtils.java b/test/lib/jdk/test/lib/security/SecurityUtils.java index 319416a466c..e5a36223eb4 100644 --- a/test/lib/jdk/test/lib/security/SecurityUtils.java +++ b/test/lib/jdk/test/lib/security/SecurityUtils.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -36,6 +36,27 @@ */ public final class SecurityUtils { + /* + * Key Sizes for various algorithms. + */ + private enum KeySize{ + RSA(2048), + DSA(2048), + DH(2048); + + private final int keySize; + KeySize(int keySize) { + this.keySize = keySize; + } + + @Override + public String toString() { + return String.valueOf(keySize); + } + } + + private final static int DEFAULT_SALTSIZE = 16; + private static String getCacerts() { String sep = File.separator; return System.getProperty("java.home") + sep @@ -107,6 +128,25 @@ public static void removeAlgsFromDSigPolicy(String... algs) { removeFromDSigPolicy("disallowAlg", List.of(algs)); } + /** + * Returns a salt size for tests + */ + public static int getTestSaltSize() { + return DEFAULT_SALTSIZE; + } + + /** + * Returns a key size in bits for tests, depending on the specified algorithm + */ + public static int getTestKeySize(String algo) { + return switch (algo) { + case "RSA" -> KeySize.RSA.keySize; + case "DSA" -> KeySize.DSA.keySize; + case "DH", "DiffieHellman" -> KeySize.DH.keySize; + default -> throw new RuntimeException("Test key size not defined for " + algo); + }; + } + private static void removeFromDSigPolicy(String rule, List algs) { String value = Security.getProperty("jdk.xml.dsig.secureValidationPolicy"); value = Arrays.stream(value.split(",")) diff --git a/test/micro/org/openjdk/bench/java/lang/CallerClassBench.java b/test/micro/org/openjdk/bench/java/lang/CallerClassBench.java index 01399c7c270..742c1c29b7a 100644 --- a/test/micro/org/openjdk/bench/java/lang/CallerClassBench.java +++ b/test/micro/org/openjdk/bench/java/lang/CallerClassBench.java @@ -36,7 +36,7 @@ @Warmup(iterations = 5, time = 1) @Measurement(iterations = 5, time = 1) -@Fork(value = 3, jvmArgsAppend = {"-Xmx1g", "-Xms1g"}) +@Fork(value = 3, jvmArgs = {"-Xmx1g", "-Xms1g"}) @State(Scope.Benchmark) @BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.MICROSECONDS) diff --git a/test/micro/org/openjdk/bench/java/lang/ObjectHashCode.java b/test/micro/org/openjdk/bench/java/lang/ObjectHashCode.java index 9b89f6d1b5a..3cc836cd59e 100644 --- a/test/micro/org/openjdk/bench/java/lang/ObjectHashCode.java +++ b/test/micro/org/openjdk/bench/java/lang/ObjectHashCode.java @@ -50,37 +50,37 @@ public int mode_default() { // Experimental hashCode generation schemes. See synchronizer.cpp get_next_hash /* @Benchmark - @Fork(jvmArgsPrepend = {"-XX:+UnlockExperimentalVMOptions", "-XX:hashCode=0"}) + @Fork(jvmArgs = {"-XX:+UnlockExperimentalVMOptions", "-XX:hashCode=0"}) public int mode_0() { return System.identityHashCode(new Object()); } @Benchmark - @Fork(jvmArgsPrepend = {"-XX:+UnlockExperimentalVMOptions", "-XX:hashCode=1"}) + @Fork(jvmArgs = {"-XX:+UnlockExperimentalVMOptions", "-XX:hashCode=1"}) public int mode_1() { return System.identityHashCode(new Object()); } @Benchmark - @Fork(jvmArgsPrepend = {"-XX:+UnlockExperimentalVMOptions", "-XX:hashCode=2"}) + @Fork(jvmArgs = {"-XX:+UnlockExperimentalVMOptions", "-XX:hashCode=2"}) public int mode_2() { return System.identityHashCode(new Object()); } @Benchmark - @Fork(jvmArgsPrepend = {"-XX:+UnlockExperimentalVMOptions", "-XX:hashCode=3"}) + @Fork(jvmArgs = {"-XX:+UnlockExperimentalVMOptions", "-XX:hashCode=3"}) public int mode_3() { return System.identityHashCode(new Object()); } @Benchmark - @Fork(jvmArgsPrepend = {"-XX:+UnlockExperimentalVMOptions", "-XX:hashCode=4"}) + @Fork(jvmArgs = {"-XX:+UnlockExperimentalVMOptions", "-XX:hashCode=4"}) public int mode_4() { return System.identityHashCode(new Object()); } @Benchmark - @Fork(jvmArgsPrepend = {"-XX:+UnlockExperimentalVMOptions", "-XX:hashCode=5"}) + @Fork(jvmArgs = {"-XX:+UnlockExperimentalVMOptions", "-XX:hashCode=5"}) public int mode_5() { return System.identityHashCode(new Object()); } diff --git a/test/micro/org/openjdk/bench/java/lang/ScopedValues.java b/test/micro/org/openjdk/bench/java/lang/ScopedValues.java index f11bc805b7f..70c97d57551 100644 --- a/test/micro/org/openjdk/bench/java/lang/ScopedValues.java +++ b/test/micro/org/openjdk/bench/java/lang/ScopedValues.java @@ -40,7 +40,7 @@ @Measurement(iterations=10, time=1) @Threads(1) @Fork(value = 1, - jvmArgsPrepend = {"-Djmh.executor.class=org.openjdk.bench.java.lang.ScopedValuesExecutorService", + jvmArgs = {"-Djmh.executor.class=org.openjdk.bench.java.lang.ScopedValuesExecutorService", "-Djmh.executor=CUSTOM", "-Djmh.blackhole.mode=COMPILER", "--enable-preview"}) diff --git a/test/micro/org/openjdk/bench/java/lang/StringHashCode.java b/test/micro/org/openjdk/bench/java/lang/StringHashCode.java index 20735a3bf76..5578712f0f9 100644 --- a/test/micro/org/openjdk/bench/java/lang/StringHashCode.java +++ b/test/micro/org/openjdk/bench/java/lang/StringHashCode.java @@ -96,7 +96,7 @@ public int empty() { @State(Scope.Thread) @Warmup(iterations = 5, time = 1) @Measurement(iterations = 5, time = 1) - @Fork(value = 3, jvmArgsAppend = {"--add-exports", "java.base/java.lang=ALL-UNNAMED", "--add-opens", "java.base/java.lang=ALL-UNNAMED"}) + @Fork(value = 3, jvmArgs = {"--add-exports", "java.base/java.lang=ALL-UNNAMED", "--add-opens", "java.base/java.lang=ALL-UNNAMED"}) public static class Algorithm { private final static String alphabet = "abcdefghijklmnopqrstuvwxyz"; diff --git a/test/micro/org/openjdk/bench/java/lang/classfile/TypeKindBench.java b/test/micro/org/openjdk/bench/java/lang/classfile/TypeKindBench.java index c8d9ad85d54..43d94f0385a 100644 --- a/test/micro/org/openjdk/bench/java/lang/classfile/TypeKindBench.java +++ b/test/micro/org/openjdk/bench/java/lang/classfile/TypeKindBench.java @@ -50,7 +50,7 @@ @OutputTimeUnit(TimeUnit.NANOSECONDS) @Warmup(iterations = 3, time = 2) @Measurement(iterations = 6, time = 1) -@Fork(jvmArgsAppend = "--enable-preview", value = 1) +@Fork(jvmArgs = "--enable-preview", value = 1) @State(Scope.Thread) public class TypeKindBench { diff --git a/test/micro/org/openjdk/bench/java/lang/classfile/Utf8EntryWriteTo.java b/test/micro/org/openjdk/bench/java/lang/classfile/Utf8EntryWriteTo.java index a124b079268..db27d318699 100644 --- a/test/micro/org/openjdk/bench/java/lang/classfile/Utf8EntryWriteTo.java +++ b/test/micro/org/openjdk/bench/java/lang/classfile/Utf8EntryWriteTo.java @@ -56,7 +56,7 @@ @OutputTimeUnit(TimeUnit.NANOSECONDS) @Warmup(iterations = 1, time = 2) @Measurement(iterations = 3, time = 1) -@Fork(jvmArgsAppend = "--enable-preview", value = 3) +@Fork(jvmArgs = "--enable-preview", value = 3) @State(Scope.Thread) public class Utf8EntryWriteTo { static final ClassDesc STRING_BUILDER = ClassDesc.ofDescriptor("Ljava/lang/StringBuilder;"); diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/AllocFromSliceTest.java b/test/micro/org/openjdk/bench/java/lang/foreign/AllocFromSliceTest.java index 390add8801c..16a915af2ed 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/AllocFromSliceTest.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/AllocFromSliceTest.java @@ -45,7 +45,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED" }) +@Fork(value = 3, jvmArgs = { "--enable-native-access=ALL-UNNAMED" }) public class AllocFromSliceTest extends CLayouts { @Param({"5", "20", "100", "500", "1000"}) diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/AllocFromTest.java b/test/micro/org/openjdk/bench/java/lang/foreign/AllocFromTest.java index fcd79870ca0..520c1ad5a9b 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/AllocFromTest.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/AllocFromTest.java @@ -48,7 +48,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED" }) +@Fork(value = 3, jvmArgs = { "--enable-native-access=ALL-UNNAMED" }) public class AllocFromTest extends CLayouts { Arena arena = Arena.ofConfined(); diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/AllocTest.java b/test/micro/org/openjdk/bench/java/lang/foreign/AllocTest.java index 4ae2c0364dc..d9b268a1846 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/AllocTest.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/AllocTest.java @@ -50,7 +50,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED" }) +@Fork(value = 3, jvmArgs = { "--enable-native-access=ALL-UNNAMED" }) public class AllocTest extends CLayouts { Arena arena = Arena.ofConfined(); diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/CallByRefHighArity.java b/test/micro/org/openjdk/bench/java/lang/foreign/CallByRefHighArity.java new file mode 100644 index 00000000000..417a7c39c1a --- /dev/null +++ b/test/micro/org/openjdk/bench/java/lang/foreign/CallByRefHighArity.java @@ -0,0 +1,247 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package org.openjdk.bench.java.lang.foreign; + +import org.openjdk.jmh.annotations.*; + +import java.lang.foreign.*; +import java.lang.invoke.*; +import java.util.concurrent.TimeUnit; +import java.util.function.Supplier; + +@BenchmarkMode(Mode.AverageTime) +@Warmup(iterations = 5, time = 500, timeUnit = TimeUnit.MILLISECONDS) +@Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) +@State(org.openjdk.jmh.annotations.Scope.Thread) +@OutputTimeUnit(TimeUnit.NANOSECONDS) +@Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) +public class CallByRefHighArity { + + static { + System.loadLibrary("CallByRefHighArity"); + } + + @Param + SegmentKind kind; + + public enum SegmentKind { + CONFINED, + SHARED, + GLOBAL, + HEAP + } + + Supplier segmentSupplier; + Arena arena; + + @Setup + public void setup() { + if (kind == SegmentKind.CONFINED) { + arena = Arena.ofConfined(); + MemorySegment segment = arena.allocateFrom(ValueLayout.JAVA_INT, 0); + segmentSupplier = () -> segment; + } else if (kind == SegmentKind.SHARED) { + arena = Arena.ofShared(); + MemorySegment segment = arena.allocateFrom(ValueLayout.JAVA_INT, 0); + segmentSupplier = () -> segment; + } else if (kind == SegmentKind.HEAP) { + byte[] array = new byte[8]; + MemorySegment segment = MemorySegment.ofArray(array); + segmentSupplier = () -> segment; + } else { // global + segmentSupplier = () -> MemorySegment.ofAddress(0); + } + } + + @TearDown + public void tearDown() { + if (arena != null) { + arena.close(); + } + } + + // A shared library that exports the functions below + private static final SymbolLookup LOOKUP = SymbolLookup.loaderLookup(); + + // void noop_params0() {} + private static final MethodHandle MH_NOOP_PARAMS0 = Linker.nativeLinker() + .downcallHandle(FunctionDescriptor.ofVoid(), Linker.Option.critical(true)) + .bindTo(LOOKUP.find("noop_params0").orElseThrow()); + + // void noop_params1(void *param0) {} + private static final MethodHandle MH_NOOP_PARAMS1 = Linker.nativeLinker() + .downcallHandle(FunctionDescriptor.ofVoid( + ValueLayout.ADDRESS + ), Linker.Option.critical(true)) + .bindTo(LOOKUP.find("noop_params1").orElseThrow()); + + // void noop_params2(void *param0, void *param1) {} + private static final MethodHandle MH_NOOP_PARAMS2 = Linker.nativeLinker() + .downcallHandle(FunctionDescriptor.ofVoid( + ValueLayout.ADDRESS, + ValueLayout.ADDRESS + ), Linker.Option.critical(true)) + .bindTo(LOOKUP.find("noop_params2").orElseThrow()); + + // void noop_params3(void *param0, void *param1, void *param2) {} + private static final MethodHandle MH_NOOP_PARAMS3 = Linker.nativeLinker() + .downcallHandle(FunctionDescriptor.ofVoid( + ValueLayout.ADDRESS, + ValueLayout.ADDRESS, + ValueLayout.ADDRESS + ), Linker.Option.critical(true)) + .bindTo(LOOKUP.find("noop_params3").orElseThrow()); + + // void noop_params4(void *param0, void *param1, void *param2, void *param3) {} + private static final MethodHandle MH_NOOP_PARAMS4 = Linker.nativeLinker() + .downcallHandle(FunctionDescriptor.ofVoid( + ValueLayout.ADDRESS, + ValueLayout.ADDRESS, + ValueLayout.ADDRESS, + ValueLayout.ADDRESS + ), Linker.Option.critical(true)) + .bindTo(LOOKUP.find("noop_params4").orElseThrow()); + + // void noop_params5(int param0, int param1, void *param2, void *param3, void *param4) {} + private static final MethodHandle MH_NOOP_PARAMS5 = Linker.nativeLinker() + .downcallHandle(FunctionDescriptor.ofVoid( + ValueLayout.ADDRESS, + ValueLayout.ADDRESS, + ValueLayout.ADDRESS, + ValueLayout.ADDRESS, + ValueLayout.ADDRESS + ), Linker.Option.critical(true)) + .bindTo(LOOKUP.find("noop_params5").orElseThrow()); + + // void noop_params10(void *param0, void *param1, void *param2, void *param3, void *param4, + // void *param5, void *param6, void *param7, void *param8, void *param9) {} + private static final MethodHandle MH_NOOP_PARAMS10 = Linker.nativeLinker() + .downcallHandle(FunctionDescriptor.ofVoid( + ValueLayout.ADDRESS, + ValueLayout.ADDRESS, + ValueLayout.ADDRESS, + ValueLayout.ADDRESS, + ValueLayout.ADDRESS, + ValueLayout.ADDRESS, + ValueLayout.ADDRESS, + ValueLayout.ADDRESS, + ValueLayout.ADDRESS, + ValueLayout.ADDRESS + ), Linker.Option.critical(true)) + .bindTo(LOOKUP.find("noop_params10").orElseThrow()); + + @Benchmark + public void noop_params0() { + try { + MH_NOOP_PARAMS0.invokeExact(); + } catch (Throwable t) { + throw new AssertionError(t); + } + } + + @Benchmark + public void noop_params1() { + try { + MH_NOOP_PARAMS1.invokeExact( + segmentSupplier.get() + ); + } catch (Throwable t) { + throw new AssertionError(t); + } + } + + @Benchmark + public void noop_params2() { + try { + MH_NOOP_PARAMS2.invokeExact( + segmentSupplier.get(), + segmentSupplier.get() + ); + } catch (Throwable t) { + throw new AssertionError(t); + } + } + + @Benchmark + public void noop_params3() { + try { + MH_NOOP_PARAMS3.invokeExact( + segmentSupplier.get(), + segmentSupplier.get(), + segmentSupplier.get() + ); + } catch (Throwable t) { + throw new AssertionError(t); + } + } + + @Benchmark + public void noop_params4() { + try { + MH_NOOP_PARAMS4.invokeExact( + segmentSupplier.get(), + segmentSupplier.get(), + segmentSupplier.get(), + segmentSupplier.get() + ); + } catch (Throwable t) { + throw new AssertionError(t); + } + } + + @Benchmark + public void noop_params5() { + try { + MH_NOOP_PARAMS5.invokeExact( + segmentSupplier.get(), + segmentSupplier.get(), + segmentSupplier.get(), + segmentSupplier.get(), + segmentSupplier.get() + ); + } catch (Throwable t) { + throw new AssertionError(t); + } + } + + @Benchmark + public void noop_params10() { + try { + MH_NOOP_PARAMS10.invokeExact( + segmentSupplier.get(), + segmentSupplier.get(), + segmentSupplier.get(), + segmentSupplier.get(), + segmentSupplier.get(), + segmentSupplier.get(), + segmentSupplier.get(), + segmentSupplier.get(), + segmentSupplier.get(), + segmentSupplier.get() + ); + } catch (Throwable t) { + throw new AssertionError(t); + } + } +} diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/CallOverheadConstant.java b/test/micro/org/openjdk/bench/java/lang/foreign/CallOverheadConstant.java index 7f20d094b8e..8e618da44ad 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/CallOverheadConstant.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/CallOverheadConstant.java @@ -41,7 +41,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) +@Fork(value = 3, jvmArgs = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) public class CallOverheadConstant { @Benchmark diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/CallOverheadVirtual.java b/test/micro/org/openjdk/bench/java/lang/foreign/CallOverheadVirtual.java index d6b7028d287..274c11a87cf 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/CallOverheadVirtual.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/CallOverheadVirtual.java @@ -41,7 +41,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) +@Fork(value = 3, jvmArgs = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) public class CallOverheadVirtual { @Benchmark diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/CriticalCalls.java b/test/micro/org/openjdk/bench/java/lang/foreign/CriticalCalls.java index 0f384f81685..1b62d2c7264 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/CriticalCalls.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/CriticalCalls.java @@ -51,7 +51,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) +@Fork(value = 3, jvmArgs = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) public class CriticalCalls { static final MethodHandle PINNED; diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/InternalStrLen.java b/test/micro/org/openjdk/bench/java/lang/foreign/InternalStrLen.java index 81ed675c7d9..2db15bfe265 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/InternalStrLen.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/InternalStrLen.java @@ -50,7 +50,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(Scope.Benchmark) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 3, jvmArgsAppend = {"--add-exports=java.base/jdk.internal.foreign=ALL-UNNAMED", "--enable-native-access=ALL-UNNAMED", "--enable-preview"}) +@Fork(value = 3, jvmArgs = {"--add-exports=java.base/jdk.internal.foreign=ALL-UNNAMED", "--enable-native-access=ALL-UNNAMED", "--enable-preview"}) public class InternalStrLen { private MemorySegment singleByteSegment; diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/LinkUpcall.java b/test/micro/org/openjdk/bench/java/lang/foreign/LinkUpcall.java index 57c8bd029ba..bf1d35801d2 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/LinkUpcall.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/LinkUpcall.java @@ -47,7 +47,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(Scope.Benchmark) @OutputTimeUnit(TimeUnit.MICROSECONDS) -@Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED" }) +@Fork(value = 3, jvmArgs = { "--enable-native-access=ALL-UNNAMED" }) public class LinkUpcall extends CLayouts { static final Linker LINKER = Linker.nativeLinker(); diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/LoopOverNonConstantAsType.java b/test/micro/org/openjdk/bench/java/lang/foreign/LoopOverNonConstantAsType.java index 1fbe431b2f2..834d051cff0 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/LoopOverNonConstantAsType.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/LoopOverNonConstantAsType.java @@ -54,7 +54,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.MILLISECONDS) -@Fork(value = 3, jvmArgsAppend = { "-XX:-TieredCompilation" }) +@Fork(value = 3, jvmArgs = { "-XX:-TieredCompilation" }) public class LoopOverNonConstantAsType extends JavaLayouts { static final Unsafe unsafe = Utils.unsafe; diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/LoopOverOfAddress.java b/test/micro/org/openjdk/bench/java/lang/foreign/LoopOverOfAddress.java index 740d8a2c783..91f2c9e4579 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/LoopOverOfAddress.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/LoopOverOfAddress.java @@ -43,7 +43,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.MILLISECONDS) -@Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED" }) +@Fork(value = 3, jvmArgs = { "--enable-native-access=ALL-UNNAMED" }) public class LoopOverOfAddress extends JavaLayouts { static final int ITERATIONS = 1_000_000; diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/MemorySegmentCopyUnsafe.java b/test/micro/org/openjdk/bench/java/lang/foreign/MemorySegmentCopyUnsafe.java index 4b6db5f9618..c5cdd26016d 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/MemorySegmentCopyUnsafe.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/MemorySegmentCopyUnsafe.java @@ -45,7 +45,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 3, jvmArgsAppend = {"--enable-native-access=ALL-UNNAMED"}) +@Fork(value = 3, jvmArgs = {"--enable-native-access=ALL-UNNAMED"}) public class MemorySegmentCopyUnsafe { static final Unsafe UNSAFE = Utils.unsafe; diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/MemorySegmentGetUnsafe.java b/test/micro/org/openjdk/bench/java/lang/foreign/MemorySegmentGetUnsafe.java index 233c9672935..31303e51141 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/MemorySegmentGetUnsafe.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/MemorySegmentGetUnsafe.java @@ -50,7 +50,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 3, jvmArgsAppend = {"--enable-native-access=ALL-UNNAMED"}) +@Fork(value = 3, jvmArgs = {"--enable-native-access=ALL-UNNAMED"}) public class MemorySegmentGetUnsafe { static final Unsafe UNSAFE = Utils.unsafe; diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/MemorySegmentZeroUnsafe.java b/test/micro/org/openjdk/bench/java/lang/foreign/MemorySegmentZeroUnsafe.java index ba705e2ecd4..6a52ed3fc5b 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/MemorySegmentZeroUnsafe.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/MemorySegmentZeroUnsafe.java @@ -44,7 +44,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 3, jvmArgsAppend = {"--enable-native-access=ALL-UNNAMED"}) +@Fork(value = 3, jvmArgs = {"--enable-native-access=ALL-UNNAMED"}) public class MemorySegmentZeroUnsafe { static final Unsafe UNSAFE = Utils.unsafe; diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/PointerInvoke.java b/test/micro/org/openjdk/bench/java/lang/foreign/PointerInvoke.java index ab77ae630c1..63975e47c7d 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/PointerInvoke.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/PointerInvoke.java @@ -43,7 +43,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) +@Fork(value = 3, jvmArgs = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) public class PointerInvoke extends CLayouts { Arena arena = Arena.ofConfined(); diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/QSort.java b/test/micro/org/openjdk/bench/java/lang/foreign/QSort.java index 76298ae0739..b21e812c503 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/QSort.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/QSort.java @@ -46,7 +46,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) +@Fork(value = 3, jvmArgs = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) public class QSort extends CLayouts { static final Linker abi = Linker.nativeLinker(); diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/SegmentBulkCopy.java b/test/micro/org/openjdk/bench/java/lang/foreign/SegmentBulkCopy.java index 22ef139aac0..ca6f21d20e9 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/SegmentBulkCopy.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/SegmentBulkCopy.java @@ -84,25 +84,25 @@ public void bufferCopy() { dstBuffer.put(srcBuffer); } - @Fork(value = 3, jvmArgsAppend = {"-Djava.lang.foreign.native.threshold.power.copy=31"}) + @Fork(value = 3, jvmArgs = {"-Djava.lang.foreign.native.threshold.power.copy=31"}) @Benchmark public void heapSegmentCopyJava() { MemorySegment.copy(heapSrcSegment, 0, heapDstSegment, 0, ELEM_SIZE); } - @Fork(value = 3, jvmArgsAppend = {"-Djava.lang.foreign.native.threshold.power.copy=0"}) + @Fork(value = 3, jvmArgs = {"-Djava.lang.foreign.native.threshold.power.copy=0"}) @Benchmark public void heapSegmentCopyUnsafe() { MemorySegment.copy(heapSrcSegment, 0, heapDstSegment, 0, ELEM_SIZE); } - @Fork(value = 3, jvmArgsAppend = {"-Djava.lang.foreign.native.threshold.power.copy=31"}) + @Fork(value = 3, jvmArgs = {"-Djava.lang.foreign.native.threshold.power.copy=31"}) @Benchmark public void nativeSegmentCopyJava() { MemorySegment.copy(nativeSrcSegment, 0, nativeDstSegment, 0, ELEM_SIZE); } - @Fork(value = 3, jvmArgsAppend = {"-Djava.lang.foreign.native.threshold.power.copy=0"}) + @Fork(value = 3, jvmArgs = {"-Djava.lang.foreign.native.threshold.power.copy=0"}) @Benchmark public void nativeSegmentCopyUnsafe() { MemorySegment.copy(nativeSrcSegment, 0, nativeDstSegment, 0, ELEM_SIZE); diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/SegmentBulkFill.java b/test/micro/org/openjdk/bench/java/lang/foreign/SegmentBulkFill.java index 95ca7228969..eb19fc56ac2 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/SegmentBulkFill.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/SegmentBulkFill.java @@ -74,37 +74,37 @@ public void arraysFill() { Arrays.fill(array, (byte) 0); } - @Fork(value = 3, jvmArgsAppend = {"-Djava.lang.foreign.native.threshold.power.fill=31"}) + @Fork(value = 3, jvmArgs = {"-Djava.lang.foreign.native.threshold.power.fill=31"}) @Benchmark public void heapSegmentFillJava() { heapSegment.fill((byte) 0); } - @Fork(value = 3, jvmArgsAppend = {"-Djava.lang.foreign.native.threshold.power.fill=0"}) + @Fork(value = 3, jvmArgs = {"-Djava.lang.foreign.native.threshold.power.fill=0"}) @Benchmark public void heapSegmentFillUnsafe() { heapSegment.fill((byte) 0); } - @Fork(value = 3, jvmArgsAppend = {"-Djava.lang.foreign.native.threshold.power.fill=31"}) + @Fork(value = 3, jvmArgs = {"-Djava.lang.foreign.native.threshold.power.fill=31"}) @Benchmark public void nativeSegmentFillJava() { nativeSegment.fill((byte) 0); } - @Fork(value = 3, jvmArgsAppend = {"-Djava.lang.foreign.native.threshold.power.fill=0"}) + @Fork(value = 3, jvmArgs = {"-Djava.lang.foreign.native.threshold.power.fill=0"}) @Benchmark public void nativeSegmentFillUnsafe() { nativeSegment.fill((byte) 0); } - @Fork(value = 3, jvmArgsAppend = {"-Djava.lang.foreign.native.threshold.power.fill=31"}) + @Fork(value = 3, jvmArgs = {"-Djava.lang.foreign.native.threshold.power.fill=31"}) @Benchmark public void unalignedSegmentFillJava() { unalignedSegment.fill((byte) 0); } - @Fork(value = 3, jvmArgsAppend = {"-Djava.lang.foreign.native.threshold.power.fill=0"}) + @Fork(value = 3, jvmArgs = {"-Djava.lang.foreign.native.threshold.power.fill=0"}) @Benchmark public void unalignedSegmentFillUnsafe() { unalignedSegment.fill((byte) 0); diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/SegmentBulkMismatch.java b/test/micro/org/openjdk/bench/java/lang/foreign/SegmentBulkMismatch.java index 5656b2f6b9f..61ceb7b956e 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/SegmentBulkMismatch.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/SegmentBulkMismatch.java @@ -79,25 +79,25 @@ public void setup() { dstHeap = MemorySegment.ofArray(dstArray); } - @Fork(value = 3, jvmArgsAppend = {"-Djava.lang.foreign.native.threshold.power.mismatch=31"}) + @Fork(value = 3, jvmArgs = {"-Djava.lang.foreign.native.threshold.power.mismatch=31"}) @Benchmark public long nativeSegmentJava() { return srcNative.mismatch(dstNative); } - @Fork(value = 3, jvmArgsAppend = {"-Djava.lang.foreign.native.threshold.power.mismatch=31"}) + @Fork(value = 3, jvmArgs = {"-Djava.lang.foreign.native.threshold.power.mismatch=31"}) @Benchmark public long heapSegmentJava() { return srcHeap.mismatch(dstHeap); } - @Fork(value = 3, jvmArgsAppend = {"-Djava.lang.foreign.native.threshold.power.mismatch=0"}) + @Fork(value = 3, jvmArgs = {"-Djava.lang.foreign.native.threshold.power.mismatch=0"}) @Benchmark public long nativeSegmentUnsafe() { return srcNative.mismatch(dstNative); } - @Fork(value = 3, jvmArgsAppend = {"-Djava.lang.foreign.native.threshold.power.mismatch=0"}) + @Fork(value = 3, jvmArgs = {"-Djava.lang.foreign.native.threshold.power.mismatch=0"}) @Benchmark public long heapSegmentUnsafe() { return srcHeap.mismatch(dstHeap); diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/StrLenTest.java b/test/micro/org/openjdk/bench/java/lang/foreign/StrLenTest.java index 2ad723eadf3..04562e0ec00 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/StrLenTest.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/StrLenTest.java @@ -48,7 +48,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) +@Fork(value = 3, jvmArgs = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) public class StrLenTest extends CLayouts { Arena arena = Arena.ofConfined(); diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/ToCStringTest.java b/test/micro/org/openjdk/bench/java/lang/foreign/ToCStringTest.java index 7ba9384958e..41d7deb2ebe 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/ToCStringTest.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/ToCStringTest.java @@ -51,7 +51,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) +@Fork(value = 3, jvmArgs = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) public class ToCStringTest extends CLayouts { @Param({"5", "20", "100", "200"}) diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/ToJavaStringTest.java b/test/micro/org/openjdk/bench/java/lang/foreign/ToJavaStringTest.java index f6f26f72a6a..02b1a47d03f 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/ToJavaStringTest.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/ToJavaStringTest.java @@ -43,7 +43,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(Scope.Benchmark) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED", "--enable-preview", "-Djava.library.path=micro/native" }) +@Fork(value = 3, jvmArgs = { "--enable-native-access=ALL-UNNAMED", "--enable-preview", "-Djava.library.path=micro/native" }) public class ToJavaStringTest { private MemorySegment strSegment; diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/UnrolledAccess.java b/test/micro/org/openjdk/bench/java/lang/foreign/UnrolledAccess.java index 6888f82e529..36c2ba32887 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/UnrolledAccess.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/UnrolledAccess.java @@ -40,7 +40,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.MICROSECONDS) -@Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED" }) +@Fork(value = 3, jvmArgs = { "--enable-native-access=ALL-UNNAMED" }) public class UnrolledAccess extends JavaLayouts { static final Unsafe U = Utils.unsafe; diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/Upcalls.java b/test/micro/org/openjdk/bench/java/lang/foreign/Upcalls.java index 1b852e6ff9d..9b6ec3fe058 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/Upcalls.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/Upcalls.java @@ -45,7 +45,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) +@Fork(value = 3, jvmArgs = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) public class Upcalls extends CLayouts { static final Linker abi = Linker.nativeLinker(); diff --git a/src/hotspot/os/bsd/gc/x/xLargePages_bsd.cpp b/test/micro/org/openjdk/bench/java/lang/foreign/libCallByRefHighArity.c similarity index 60% rename from src/hotspot/os/bsd/gc/x/xLargePages_bsd.cpp rename to test/micro/org/openjdk/bench/java/lang/foreign/libCallByRefHighArity.c index 1c82e831208..02eedb79f02 100644 --- a/src/hotspot/os/bsd/gc/x/xLargePages_bsd.cpp +++ b/test/micro/org/openjdk/bench/java/lang/foreign/libCallByRefHighArity.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,14 +21,13 @@ * questions. */ -#include "precompiled.hpp" -#include "gc/x/xLargePages.hpp" -#include "runtime/globals.hpp" +#include "export.h" -void XLargePages::pd_initialize() { - if (UseLargePages) { - _state = Explicit; - } else { - _state = Disabled; - } -} +EXPORT void noop_params0() {} +EXPORT void noop_params1(void *param0) {} +EXPORT void noop_params2(void *param0, void *param1) {} +EXPORT void noop_params3(void *param0, void *param1, void *param2) {} +EXPORT void noop_params4(void *param0, void *param1, void *param2, void *param3) {} +EXPORT void noop_params5(void *param0, void *param1, void *param2, void *param3, void *param4) {} +EXPORT void noop_params10(void *param0, void *param1, void *param2, void *param3, void *param4, + void *param5, void *param6, void *param7, void *param8, void *param9) {} diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/pointers/PointerBench.java b/test/micro/org/openjdk/bench/java/lang/foreign/pointers/PointerBench.java index 9eabd7d0e78..b93b613f8c6 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/pointers/PointerBench.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/pointers/PointerBench.java @@ -46,7 +46,7 @@ @Warmup(iterations = 3, time = 500, timeUnit = TimeUnit.MILLISECONDS) @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @OutputTimeUnit(TimeUnit.MILLISECONDS) -@Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED" }) +@Fork(value = 3, jvmArgs = { "--enable-native-access=ALL-UNNAMED" }) @State(Scope.Benchmark) public class PointerBench { diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/points/PointsAccess.java b/test/micro/org/openjdk/bench/java/lang/foreign/points/PointsAccess.java index e649468fc97..eeedf18c771 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/points/PointsAccess.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/points/PointsAccess.java @@ -43,7 +43,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) +@Fork(value = 3, jvmArgs = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) public class PointsAccess { BBPoint BBPoint; diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/points/PointsAlloc.java b/test/micro/org/openjdk/bench/java/lang/foreign/points/PointsAlloc.java index f9d254ed975..a210e459c21 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/points/PointsAlloc.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/points/PointsAlloc.java @@ -41,7 +41,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) +@Fork(value = 3, jvmArgs = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) public class PointsAlloc { @Benchmark diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/points/PointsDistance.java b/test/micro/org/openjdk/bench/java/lang/foreign/points/PointsDistance.java index fa86137ff02..a42b8ac0947 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/points/PointsDistance.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/points/PointsDistance.java @@ -43,7 +43,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) +@Fork(value = 3, jvmArgs = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) public class PointsDistance { BBPoint jniP1; diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/points/PointsFree.java b/test/micro/org/openjdk/bench/java/lang/foreign/points/PointsFree.java index 51bd7738eda..bb41de670d8 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/points/PointsFree.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/points/PointsFree.java @@ -42,7 +42,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) +@Fork(value = 3, jvmArgs = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) public class PointsFree { JNIPoint jniPoint; diff --git a/test/micro/org/openjdk/bench/java/lang/foreign/xor/XorTest.java b/test/micro/org/openjdk/bench/java/lang/foreign/xor/XorTest.java index 8ff8a4d1816..40ae114e8fa 100644 --- a/test/micro/org/openjdk/bench/java/lang/foreign/xor/XorTest.java +++ b/test/micro/org/openjdk/bench/java/lang/foreign/xor/XorTest.java @@ -19,7 +19,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.MILLISECONDS) -@Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) +@Fork(value = 3, jvmArgs = { "--enable-native-access=ALL-UNNAMED", "-Djava.library.path=micro/native" }) public class XorTest { diff --git a/test/micro/org/openjdk/bench/java/lang/invoke/LazyStaticColdStart.java b/test/micro/org/openjdk/bench/java/lang/invoke/LazyStaticColdStart.java index fb73901adf4..49a77d9539e 100644 --- a/test/micro/org/openjdk/bench/java/lang/invoke/LazyStaticColdStart.java +++ b/test/micro/org/openjdk/bench/java/lang/invoke/LazyStaticColdStart.java @@ -52,7 +52,7 @@ @BenchmarkMode(Mode.SingleShotTime) @OutputTimeUnit(TimeUnit.MICROSECONDS) @State(Scope.Thread) -@Fork(value = 10, warmups = 5, jvmArgsAppend = { +@Fork(value = 10, warmups = 5, jvmArgs = { "--enable-preview" }) public class LazyStaticColdStart { diff --git a/test/micro/org/openjdk/bench/java/lang/invoke/Wrappers.java b/test/micro/org/openjdk/bench/java/lang/invoke/Wrappers.java index 61aea6b6dcf..c1725487529 100644 --- a/test/micro/org/openjdk/bench/java/lang/invoke/Wrappers.java +++ b/test/micro/org/openjdk/bench/java/lang/invoke/Wrappers.java @@ -45,7 +45,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @OutputTimeUnit(TimeUnit.NANOSECONDS) @State(Scope.Thread) -@Fork(value = 3, jvmArgsAppend = "--add-exports=java.base/sun.invoke.util=ALL-UNNAMED") +@Fork(value = 3, jvmArgs = "--add-exports=java.base/sun.invoke.util=ALL-UNNAMED") public class Wrappers { public static Class[] PRIM_CLASSES = { diff --git a/test/micro/org/openjdk/bench/java/lang/reflect/proxy/ProxyGeneratorBench.java b/test/micro/org/openjdk/bench/java/lang/reflect/proxy/ProxyGeneratorBench.java index 33934317300..6963a040b65 100644 --- a/test/micro/org/openjdk/bench/java/lang/reflect/proxy/ProxyGeneratorBench.java +++ b/test/micro/org/openjdk/bench/java/lang/reflect/proxy/ProxyGeneratorBench.java @@ -45,7 +45,7 @@ */ @Warmup(iterations = 5, time = 2) @Measurement(iterations = 5, time = 2) -@Fork(value = 1, jvmArgsPrepend = "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED") +@Fork(value = 1, jvmArgs = "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED") @BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.NANOSECONDS) @State(Scope.Thread) diff --git a/test/micro/org/openjdk/bench/java/net/NetworkInterfaceLookup.java b/test/micro/org/openjdk/bench/java/net/NetworkInterfaceLookup.java index 2a77e6a16ec..4b1a5bc439a 100644 --- a/test/micro/org/openjdk/bench/java/net/NetworkInterfaceLookup.java +++ b/test/micro/org/openjdk/bench/java/net/NetworkInterfaceLookup.java @@ -45,7 +45,7 @@ @BenchmarkMode(Mode.Throughput) @OutputTimeUnit(TimeUnit.SECONDS) @State(Scope.Thread) -@Fork(value = 2, jvmArgsAppend = "--add-opens=java.base/java.net=ALL-UNNAMED") +@Fork(value = 2, jvmArgs = "--add-opens=java.base/java.net=ALL-UNNAMED") @Warmup(iterations = 5, time = 1) @Measurement(iterations = 5, time = 1) public class NetworkInterfaceLookup { diff --git a/test/micro/org/openjdk/bench/java/net/SocketChannelConnectionSetup.java b/test/micro/org/openjdk/bench/java/net/SocketChannelConnectionSetup.java index c4100568161..704cca94af0 100644 --- a/test/micro/org/openjdk/bench/java/net/SocketChannelConnectionSetup.java +++ b/test/micro/org/openjdk/bench/java/net/SocketChannelConnectionSetup.java @@ -125,7 +125,7 @@ public static void main(String[] args) throws RunnerException { opt = new OptionsBuilder() .include(org.openjdk.bench.java.net.SocketChannelConnectionSetup.class.getSimpleName()) - .jvmArgsPrepend("-Djdk.net.useFastTcpLoopback=true") + .jvmArgs("-Djdk.net.useFastTcpLoopback=true") .warmupForks(1) .forks(2) .build(); diff --git a/test/micro/org/openjdk/bench/java/net/SocketEventOverhead.java b/test/micro/org/openjdk/bench/java/net/SocketEventOverhead.java index a898aff5283..f386fb1620d 100644 --- a/test/micro/org/openjdk/bench/java/net/SocketEventOverhead.java +++ b/test/micro/org/openjdk/bench/java/net/SocketEventOverhead.java @@ -45,7 +45,7 @@ @State(Scope.Thread) public class SocketEventOverhead { - @Fork(value = 1, jvmArgsAppend = { + @Fork(value = 1, jvmArgs = { "--add-exports", "java.base/jdk.internal.event=ALL-UNNAMED" }) @Benchmark @@ -53,7 +53,7 @@ public int socketWriteJFRDisabled(SkeletonFixture fixture) { return fixture.write(); } - @Fork(value = 1, jvmArgsAppend = { + @Fork(value = 1, jvmArgs = { "--add-exports", "java.base/jdk.internal.event=ALL-UNNAMED", "-XX:StartFlightRecording:jdk.SocketWrite#enabled=false"}) @@ -62,7 +62,7 @@ public int socketWriteJFREnabledEventDisabled(SkeletonFixture fixture) { return fixture.write(); } - @Fork(value = 1, jvmArgsAppend = { + @Fork(value = 1, jvmArgs = { "--add-exports", "java.base/jdk.internal.event=ALL-UNNAMED", "-XX:StartFlightRecording:jdk.SocketWrite#enabled=true,jdk.SocketWrite#threshold=1s"}) @@ -71,7 +71,7 @@ public int socketWriteJFREnabledEventNotEmitted(SkeletonFixture fixture) { return fixture.write(); } - @Fork(value = 1, jvmArgsAppend = { + @Fork(value = 1, jvmArgs = { "--add-exports","java.base/jdk.internal.event=ALL-UNNAMED", "-XX:StartFlightRecording:jdk.SocketWrite#enabled=true,jdk.SocketWrite#threshold=0ms,disk=false,jdk.SocketWrite#stackTrace=false"}) @Benchmark @@ -79,7 +79,7 @@ public int socketWriteJFREnabledEventEmitted(SkeletonFixture fixture) { return fixture.write(); } - @Fork(value = 1, jvmArgsAppend = { + @Fork(value = 1, jvmArgs = { "--add-exports", "java.base/jdk.internal.event=ALL-UNNAMED" }) @Benchmark @@ -87,7 +87,7 @@ public int socketReadJFRDisabled(SkeletonFixture fixture) { return fixture.read(); } - @Fork(value = 1, jvmArgsAppend = { + @Fork(value = 1, jvmArgs = { "--add-exports", "java.base/jdk.internal.event=ALL-UNNAMED", "-XX:StartFlightRecording:jdk.SocketRead#enabled=false"}) @@ -96,7 +96,7 @@ public int socketReadJFREnabledEventDisabled(SkeletonFixture fixture) { return fixture.read(); } - @Fork(value = 1, jvmArgsAppend = { + @Fork(value = 1, jvmArgs = { "--add-exports", "java.base/jdk.internal.event=ALL-UNNAMED", "-XX:StartFlightRecording:jdk.SocketRead#enabled=true,jdk.SocketRead#threshold=1s"}) @@ -105,7 +105,7 @@ public int socketReadJFREnabledEventNotEmitted(SkeletonFixture fixture) { return fixture.read(); } - @Fork(value = 1, jvmArgsAppend = { + @Fork(value = 1, jvmArgs = { "--add-exports","java.base/jdk.internal.event=ALL-UNNAMED", "-XX:StartFlightRecording:jdk.SocketRead#enabled=true,jdk.SocketRead#threshold=0ms,disk=false,jdk.SocketRead#stackTrace=false"}) @Benchmark diff --git a/test/micro/org/openjdk/bench/java/net/ThreadLocalParseUtil.java b/test/micro/org/openjdk/bench/java/net/ThreadLocalParseUtil.java index 93af26379a7..180de650ede 100644 --- a/test/micro/org/openjdk/bench/java/net/ThreadLocalParseUtil.java +++ b/test/micro/org/openjdk/bench/java/net/ThreadLocalParseUtil.java @@ -48,7 +48,7 @@ @State(Scope.Thread) @Warmup(iterations = 5, time = 1) @Measurement(iterations = 5, time = 1) -@Fork(value = 1, jvmArgsAppend = "--add-exports=java.base/sun.net.www=ALL-UNNAMED") +@Fork(value = 1, jvmArgs = "--add-exports=java.base/sun.net.www=ALL-UNNAMED") public class ThreadLocalParseUtil { private static final MethodHandle MH_DECODE; diff --git a/test/micro/org/openjdk/bench/java/security/AlgorithmConstraintsPermits.java b/test/micro/org/openjdk/bench/java/security/AlgorithmConstraintsPermits.java index 46e68ea627f..683d069bc7e 100644 --- a/test/micro/org/openjdk/bench/java/security/AlgorithmConstraintsPermits.java +++ b/test/micro/org/openjdk/bench/java/security/AlgorithmConstraintsPermits.java @@ -45,7 +45,7 @@ @BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 3, jvmArgsAppend = {"--add-exports", "java.base/sun.security.util=ALL-UNNAMED"}) +@Fork(value = 3, jvmArgs = {"--add-exports", "java.base/sun.security.util=ALL-UNNAMED"}) @State(Scope.Thread) @Warmup(iterations = 5, time = 1) @Measurement(iterations = 5, time = 1) diff --git a/test/micro/org/openjdk/bench/java/security/CacheBench.java b/test/micro/org/openjdk/bench/java/security/CacheBench.java index 9b7c39a3cf2..7366a18c020 100644 --- a/test/micro/org/openjdk/bench/java/security/CacheBench.java +++ b/test/micro/org/openjdk/bench/java/security/CacheBench.java @@ -44,7 +44,7 @@ @BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 3, jvmArgsAppend = {"--add-exports", "java.base/sun.security.util=ALL-UNNAMED"}) +@Fork(value = 3, jvmArgs = {"--add-exports", "java.base/sun.security.util=ALL-UNNAMED"}) @Warmup(iterations = 5, time = 1) @Measurement(iterations = 5, time = 1) public class CacheBench { diff --git a/test/micro/org/openjdk/bench/java/security/CipherSuiteBench.java b/test/micro/org/openjdk/bench/java/security/CipherSuiteBench.java index dcda7c252f0..c78fbb5dbb1 100644 --- a/test/micro/org/openjdk/bench/java/security/CipherSuiteBench.java +++ b/test/micro/org/openjdk/bench/java/security/CipherSuiteBench.java @@ -30,7 +30,7 @@ import java.util.concurrent.TimeUnit; -@Fork(value = 3, jvmArgsAppend = {"--add-exports", "java.base/sun.security.ssl=ALL-UNNAMED", "--add-opens", "java.base/sun.security.ssl=ALL-UNNAMED"}) +@Fork(value = 3, jvmArgs = {"--add-exports", "java.base/sun.security.ssl=ALL-UNNAMED", "--add-opens", "java.base/sun.security.ssl=ALL-UNNAMED"}) @State(Scope.Thread) @OutputTimeUnit(TimeUnit.MICROSECONDS) @BenchmarkMode(Mode.Throughput) diff --git a/test/micro/org/openjdk/bench/java/security/HSS.java b/test/micro/org/openjdk/bench/java/security/HSS.java index d89147406dc..c2f746d2449 100644 --- a/test/micro/org/openjdk/bench/java/security/HSS.java +++ b/test/micro/org/openjdk/bench/java/security/HSS.java @@ -55,7 +55,7 @@ @OutputTimeUnit(TimeUnit.MICROSECONDS) @Warmup(iterations = 5, time = 1) @Measurement(iterations = 5, time = 1) -@Fork(value = 3, jvmArgsAppend = {"--add-exports", "java.base/sun.security.util=ALL-UNNAMED"}) +@Fork(value = 3, jvmArgs = {"--add-exports", "java.base/sun.security.util=ALL-UNNAMED"}) // Tests 1-2 are from RFC 8554, Appendix F. diff --git a/test/micro/org/openjdk/bench/java/security/MessageDigests.java b/test/micro/org/openjdk/bench/java/security/MessageDigests.java index a3ab483c39c..2a4e3933d31 100644 --- a/test/micro/org/openjdk/bench/java/security/MessageDigests.java +++ b/test/micro/org/openjdk/bench/java/security/MessageDigests.java @@ -47,7 +47,7 @@ @OutputTimeUnit(TimeUnit.MILLISECONDS) @Warmup(iterations = 5, time = 1) @Measurement(iterations = 5, time = 1) -@Fork(jvmArgsAppend = {"-Xms1024m", "-Xmx1024m", "-Xmn768m", "-XX:+UseParallelGC"}, value = 3) +@Fork(jvmArgs = {"-Xms1024m", "-Xmx1024m", "-Xmn768m", "-XX:+UseParallelGC"}, value = 3) public class MessageDigests { @Param({"64", "16384"}) diff --git a/test/micro/org/openjdk/bench/java/security/PKCS12KeyStores.java b/test/micro/org/openjdk/bench/java/security/PKCS12KeyStores.java index f68b4503ef5..065bd96c4bf 100644 --- a/test/micro/org/openjdk/bench/java/security/PKCS12KeyStores.java +++ b/test/micro/org/openjdk/bench/java/security/PKCS12KeyStores.java @@ -41,7 +41,7 @@ @Warmup(iterations = 5, time = 1) @Measurement(iterations = 5, time = 1) @BenchmarkMode(Mode.AverageTime) -@Fork(jvmArgsAppend = {"-Xms1024m", "-Xmx1024m", "-Xmn768m", "-XX:+UseParallelGC"}, value = 3) +@Fork(jvmArgs = {"-Xms1024m", "-Xmx1024m", "-Xmn768m", "-XX:+UseParallelGC"}, value = 3) public class PKCS12KeyStores { private static final char[] PASS = "changeit".toCharArray(); diff --git a/test/micro/org/openjdk/bench/java/security/ProtectionDomainBench.java b/test/micro/org/openjdk/bench/java/security/ProtectionDomainBench.java index ec85e09634f..cf302d83e9b 100644 --- a/test/micro/org/openjdk/bench/java/security/ProtectionDomainBench.java +++ b/test/micro/org/openjdk/bench/java/security/ProtectionDomainBench.java @@ -123,7 +123,7 @@ void work() throws ClassNotFoundException { } @Benchmark - @Fork(value = 3, jvmArgsPrepend={"-Djava.security.manager=allow"}) + @Fork(value = 3, jvmArgs={"-Djava.security.manager=allow"}) public void withSecurityManager() throws ClassNotFoundException { work(); } diff --git a/test/micro/org/openjdk/bench/java/security/Signatures.java b/test/micro/org/openjdk/bench/java/security/Signatures.java index 7a14cb24b88..1bd72334343 100644 --- a/test/micro/org/openjdk/bench/java/security/Signatures.java +++ b/test/micro/org/openjdk/bench/java/security/Signatures.java @@ -34,7 +34,7 @@ @State(Scope.Thread) @Warmup(iterations = 5, time = 1) @Measurement(iterations = 5, time = 1) -@Fork(jvmArgsAppend = {"-Xms1024m", "-Xmx1024m", "-Xmn768m", "-XX:+UseParallelGC"}, value = 3) +@Fork(jvmArgs = {"-Xms1024m", "-Xmx1024m", "-Xmn768m", "-XX:+UseParallelGC"}, value = 3) public class Signatures { private static Signature signer; diff --git a/test/micro/org/openjdk/bench/java/util/ArraysSort.java b/test/micro/org/openjdk/bench/java/util/ArraysSort.java index 4cd45d79412..d32bfa7fd2d 100644 --- a/test/micro/org/openjdk/bench/java/util/ArraysSort.java +++ b/test/micro/org/openjdk/bench/java/util/ArraysSort.java @@ -47,7 +47,7 @@ /** * Performance test of Arrays.sort() methods */ -@Fork(value=1, jvmArgsAppend={"-XX:CompileThreshold=1", "-XX:-TieredCompilation"}) +@Fork(value=1, jvmArgs={"-XX:CompileThreshold=1", "-XX:-TieredCompilation"}) @BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.MICROSECONDS) @State(Scope.Thread) diff --git a/test/micro/org/openjdk/bench/java/util/ListArgs.java b/test/micro/org/openjdk/bench/java/util/ListArgs.java index 073214ce2a1..d44d8b604ef 100644 --- a/test/micro/org/openjdk/bench/java/util/ListArgs.java +++ b/test/micro/org/openjdk/bench/java/util/ListArgs.java @@ -36,7 +36,7 @@ */ @State(Scope.Thread) @OutputTimeUnit(TimeUnit.MILLISECONDS) -@Fork(value = 3, jvmArgsAppend = { "-verbose:gc", "-XX:+UseParallelGC", "-Xms4g", "-Xmx4g", "-Xint" }) +@Fork(value = 3, jvmArgs = { "-verbose:gc", "-XX:+UseParallelGC", "-Xms4g", "-Xmx4g", "-Xint" }) @Warmup(iterations = 5, time = 1, timeUnit = TimeUnit.SECONDS) @Measurement(iterations = 5, time = 2, timeUnit = TimeUnit.SECONDS) public class ListArgs { diff --git a/test/micro/org/openjdk/bench/java/util/StringJoinerBenchmark.java b/test/micro/org/openjdk/bench/java/util/StringJoinerBenchmark.java index 6df0045ef32..38b6389db54 100644 --- a/test/micro/org/openjdk/bench/java/util/StringJoinerBenchmark.java +++ b/test/micro/org/openjdk/bench/java/util/StringJoinerBenchmark.java @@ -45,7 +45,7 @@ @OutputTimeUnit(TimeUnit.NANOSECONDS) @Warmup(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) -@Fork(value = 3, jvmArgsAppend = {"-Xms1g", "-Xmx1g"}) +@Fork(value = 3, jvmArgs = {"-Xms1g", "-Xmx1g"}) public class StringJoinerBenchmark { @Benchmark diff --git a/test/micro/org/openjdk/bench/java/util/jar/JarFileGetEntry.java b/test/micro/org/openjdk/bench/java/util/jar/JarFileGetEntry.java index bc2182e00b4..a0c3938e8eb 100644 --- a/test/micro/org/openjdk/bench/java/util/jar/JarFileGetEntry.java +++ b/test/micro/org/openjdk/bench/java/util/jar/JarFileGetEntry.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -31,9 +31,12 @@ import java.nio.file.Files; import java.util.Random; import java.util.concurrent.TimeUnit; +import java.util.jar.Attributes; import java.util.jar.JarFile; import java.util.jar.JarOutputStream; +import java.util.jar.Manifest; import java.util.zip.ZipEntry; +import java.util.zip.ZipFile; /** * Simple benchmark measuring cost of looking up entries in a jar file. @@ -71,6 +74,9 @@ public class JarFileGetEntry { @Param({"512", "1024"}) private int size; + @Param({"false", "true"}) + private boolean mr; + public JarFile jarFile; public String[] entryNames; public String[] missingEntryNames; @@ -91,9 +97,20 @@ public void beforeRun() throws IOException { entryNames = new String[size]; missingEntryNames = new String[size]; + Manifest man = new Manifest(); + man.getMainAttributes().put(Attributes.Name.MANIFEST_VERSION, "1.0"); + if (mr) { + man.getMainAttributes().put(Attributes.Name.MULTI_RELEASE, "true"); + } try (FileOutputStream fos = new FileOutputStream(tempFile); - JarOutputStream jos = new JarOutputStream(fos)) { + JarOutputStream jos = new JarOutputStream(fos, man)) { + if (mr) { + // Add a few versioned entries + jos.putNextEntry(new ZipEntry("META-INF/versions/9/module-info.class")); + jos.putNextEntry(new ZipEntry("META-INF/versions/17/foo/library/Library.class")); + jos.putNextEntry(new ZipEntry("META-INF/versions/21/foo/library/Library.class")); + } Random random = new Random(4711); for (int i = 0; i < size; i++) { String ename = "entry-" + (random.nextInt(90000) + 10000) + "-" + i; @@ -107,7 +124,7 @@ public void beforeRun() throws IOException { } } - jarFile = new JarFile(tempFile); + jarFile = new JarFile(tempFile, true, ZipFile.OPEN_READ, mr ? JarFile.runtimeVersion() : JarFile.baseVersion()); } @Benchmark diff --git a/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherFMRPar.java b/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherFMRPar.java index 476299df76e..cd83ab86034 100644 --- a/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherFMRPar.java +++ b/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherFMRPar.java @@ -49,7 +49,7 @@ @BenchmarkMode(Mode.Throughput) @Warmup(iterations = 4, time = 5, timeUnit = TimeUnit.SECONDS) @Measurement(iterations = 7, time = 5, timeUnit = TimeUnit.SECONDS) -@Fork(jvmArgsAppend = "--enable-preview", value = 1) +@Fork(jvmArgs = "--enable-preview", value = 1) @OutputTimeUnit(TimeUnit.SECONDS) @State(Scope.Thread) public class GatherFMRPar { diff --git a/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherFMRSeq.java b/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherFMRSeq.java index 05e48e16d07..a1973a45831 100644 --- a/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherFMRSeq.java +++ b/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherFMRSeq.java @@ -49,7 +49,7 @@ @BenchmarkMode(Mode.Throughput) @Warmup(iterations = 4, time = 5, timeUnit = TimeUnit.SECONDS) @Measurement(iterations = 7, time = 5, timeUnit = TimeUnit.SECONDS) -@Fork(jvmArgsAppend = "--enable-preview", value = 1) +@Fork(jvmArgs = "--enable-preview", value = 1) @OutputTimeUnit(TimeUnit.SECONDS) @State(Scope.Thread) public class GatherFMRSeq { diff --git a/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherFlatMapInfinitySeq.java b/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherFlatMapInfinitySeq.java index 09c38f83484..2b804551dbf 100644 --- a/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherFlatMapInfinitySeq.java +++ b/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherFlatMapInfinitySeq.java @@ -48,7 +48,7 @@ @BenchmarkMode(Mode.Throughput) @Warmup(iterations = 4, time = 5, timeUnit = TimeUnit.SECONDS) @Measurement(iterations = 7, time = 5, timeUnit = TimeUnit.SECONDS) -@Fork(jvmArgsAppend = "--enable-preview", value = 1) +@Fork(jvmArgs = "--enable-preview", value = 1) @OutputTimeUnit(TimeUnit.SECONDS) @State(Scope.Thread) public class GatherFlatMapInfinitySeq { diff --git a/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherFlatMapSeq.java b/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherFlatMapSeq.java index a13ee01a851..31c1f047c12 100644 --- a/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherFlatMapSeq.java +++ b/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherFlatMapSeq.java @@ -48,7 +48,7 @@ @BenchmarkMode(Mode.Throughput) @Warmup(iterations = 4, time = 5, timeUnit = TimeUnit.SECONDS) @Measurement(iterations = 7, time = 5, timeUnit = TimeUnit.SECONDS) -@Fork(jvmArgsAppend = "--enable-preview", value = 1) +@Fork(jvmArgs = "--enable-preview", value = 1) @OutputTimeUnit(TimeUnit.SECONDS) @State(Scope.Thread) public class GatherFlatMapSeq { diff --git a/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherMapPar.java b/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherMapPar.java index 62c2d03b1b1..b7c60af6cdd 100644 --- a/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherMapPar.java +++ b/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherMapPar.java @@ -48,7 +48,7 @@ @BenchmarkMode(Mode.Throughput) @Warmup(iterations = 4, time = 5, timeUnit = TimeUnit.SECONDS) @Measurement(iterations = 7, time = 5, timeUnit = TimeUnit.SECONDS) -@Fork(jvmArgsAppend = "--enable-preview", value = 1) +@Fork(jvmArgs = "--enable-preview", value = 1) @OutputTimeUnit(TimeUnit.SECONDS) @State(Scope.Thread) public class GatherMapPar { diff --git a/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherMapSeq.java b/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherMapSeq.java index 1e842c0c09e..1dbbbd05009 100644 --- a/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherMapSeq.java +++ b/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherMapSeq.java @@ -48,7 +48,7 @@ @BenchmarkMode(Mode.Throughput) @Warmup(iterations = 4, time = 5, timeUnit = TimeUnit.SECONDS) @Measurement(iterations = 7, time = 5, timeUnit = TimeUnit.SECONDS) -@Fork(jvmArgsAppend = "--enable-preview", value = 1) +@Fork(jvmArgs = "--enable-preview", value = 1) @OutputTimeUnit(TimeUnit.SECONDS) @State(Scope.Thread) public class GatherMapSeq { diff --git a/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherMiscPar.java b/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherMiscPar.java index 578e470ec5c..12f5c98702b 100644 --- a/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherMiscPar.java +++ b/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherMiscPar.java @@ -49,7 +49,7 @@ @BenchmarkMode(Mode.Throughput) @Warmup(iterations = 4, time = 5, timeUnit = TimeUnit.SECONDS) @Measurement(iterations = 7, time = 5, timeUnit = TimeUnit.SECONDS) -@Fork(jvmArgsAppend = "--enable-preview", value = 1) +@Fork(jvmArgs = "--enable-preview", value = 1) @OutputTimeUnit(TimeUnit.SECONDS) @State(Scope.Thread) public class GatherMiscPar { diff --git a/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherMiscSeq.java b/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherMiscSeq.java index 0d7d9bdef9f..a60d02af7b6 100644 --- a/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherMiscSeq.java +++ b/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherMiscSeq.java @@ -51,7 +51,7 @@ @BenchmarkMode(Mode.Throughput) @Warmup(iterations = 4, time = 5, timeUnit = TimeUnit.SECONDS) @Measurement(iterations = 7, time = 5, timeUnit = TimeUnit.SECONDS) -@Fork(jvmArgsAppend = "--enable-preview", value = 1) +@Fork(jvmArgs = "--enable-preview", value = 1) @OutputTimeUnit(TimeUnit.SECONDS) @State(Scope.Thread) public class GatherMiscSeq { diff --git a/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherReducePar.java b/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherReducePar.java index 2f2d0b06bd7..6742ee98590 100644 --- a/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherReducePar.java +++ b/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherReducePar.java @@ -49,7 +49,7 @@ @BenchmarkMode(Mode.Throughput) @Warmup(iterations = 4, time = 5, timeUnit = TimeUnit.SECONDS) @Measurement(iterations = 7, time = 5, timeUnit = TimeUnit.SECONDS) -@Fork(jvmArgsAppend = "--enable-preview", value = 1) +@Fork(jvmArgs = "--enable-preview", value = 1) @OutputTimeUnit(TimeUnit.SECONDS) @State(Scope.Thread) public class GatherReducePar { diff --git a/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherReduceSeq.java b/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherReduceSeq.java index 7d8540d0ed4..7356fdb979b 100644 --- a/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherReduceSeq.java +++ b/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherReduceSeq.java @@ -51,7 +51,7 @@ @BenchmarkMode(Mode.Throughput) @Warmup(iterations = 4, time = 5, timeUnit = TimeUnit.SECONDS) @Measurement(iterations = 7, time = 5, timeUnit = TimeUnit.SECONDS) -@Fork(jvmArgsAppend = "--enable-preview", value = 1) +@Fork(jvmArgs = "--enable-preview", value = 1) @OutputTimeUnit(TimeUnit.SECONDS) @State(Scope.Thread) public class GatherReduceSeq { diff --git a/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherWhileOrdered.java b/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherWhileOrdered.java index 6e9e5fec1fa..f0b3fef4438 100644 --- a/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherWhileOrdered.java +++ b/test/micro/org/openjdk/bench/java/util/stream/ops/ref/GatherWhileOrdered.java @@ -49,7 +49,7 @@ @BenchmarkMode(Mode.Throughput) @Warmup(iterations = 4, time = 5, timeUnit = TimeUnit.SECONDS) @Measurement(iterations = 7, time = 5, timeUnit = TimeUnit.SECONDS) -@Fork(jvmArgsAppend = "--enable-preview", value = 1) +@Fork(jvmArgs = "--enable-preview", value = 1) @OutputTimeUnit(TimeUnit.SECONDS) @State(Scope.Thread) public class GatherWhileOrdered { diff --git a/test/micro/org/openjdk/bench/javax/crypto/AES.java b/test/micro/org/openjdk/bench/javax/crypto/AES.java index 23ecdb33f94..8bd4a6ff9b3 100644 --- a/test/micro/org/openjdk/bench/javax/crypto/AES.java +++ b/test/micro/org/openjdk/bench/javax/crypto/AES.java @@ -59,19 +59,19 @@ public void setup() throws Exception { } @Benchmark - @Fork(jvmArgsAppend = {"-XX:+UnlockDiagnosticVMOptions", "-XX:-UseAES", "-XX:-UseAESIntrinsics"}) + @Fork(jvmArgs = {"-XX:+UnlockDiagnosticVMOptions", "-XX:-UseAES", "-XX:-UseAESIntrinsics"}) public byte[] testBaseline() throws Exception { return cipher.doFinal(src); } @Benchmark - @Fork(jvmArgsAppend = {"-XX:+UnlockDiagnosticVMOptions", "-XX:+UseAES", "-XX:-UseAESIntrinsics"}) + @Fork(jvmArgs = {"-XX:+UnlockDiagnosticVMOptions", "-XX:+UseAES", "-XX:-UseAESIntrinsics"}) public byte[] testUseAes() throws Exception { return cipher.doFinal(src); } @Benchmark - @Fork(jvmArgsAppend = {"-XX:+UnlockDiagnosticVMOptions", "-XX:+UseAES", "-XX:+UseAESIntrinsics"}) + @Fork(jvmArgs = {"-XX:+UnlockDiagnosticVMOptions", "-XX:+UseAES", "-XX:+UseAESIntrinsics"}) public byte[] testUseAesIntrinsics() throws Exception { return cipher.doFinal(src); } diff --git a/test/micro/org/openjdk/bench/javax/crypto/AESReinit.java b/test/micro/org/openjdk/bench/javax/crypto/AESReinit.java index 16f8b930633..b2378576f2c 100644 --- a/test/micro/org/openjdk/bench/javax/crypto/AESReinit.java +++ b/test/micro/org/openjdk/bench/javax/crypto/AESReinit.java @@ -32,7 +32,7 @@ @Warmup(iterations = 5, time = 1, timeUnit = TimeUnit.SECONDS) @Measurement(iterations = 5, time = 1, timeUnit = TimeUnit.SECONDS) -@Fork(value = 3, jvmArgsAppend = {"-Xms1g", "-Xmx1g"}) +@Fork(value = 3, jvmArgs = {"-Xms1g", "-Xmx1g"}) @BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.NANOSECONDS) @State(Scope.Thread) diff --git a/test/micro/org/openjdk/bench/javax/crypto/Crypto.java b/test/micro/org/openjdk/bench/javax/crypto/Crypto.java index 6a9a49bd84e..38e88d0171e 100644 --- a/test/micro/org/openjdk/bench/javax/crypto/Crypto.java +++ b/test/micro/org/openjdk/bench/javax/crypto/Crypto.java @@ -51,7 +51,7 @@ @OutputTimeUnit(TimeUnit.MILLISECONDS) @Warmup(iterations = 5) @Measurement(iterations = 10) -@Fork(jvmArgsAppend = {"-Xms1024m", "-Xmx1024m", "-Xmn768m", "-XX:+UseParallelGC"}, value = 5) +@Fork(jvmArgs = {"-Xms1024m", "-Xmx1024m", "-Xmn768m", "-XX:+UseParallelGC"}, value = 5) public class Crypto { @Param({"64", "1024", "16384"}) diff --git a/test/micro/org/openjdk/bench/javax/crypto/full/CryptoBase.java b/test/micro/org/openjdk/bench/javax/crypto/full/CryptoBase.java index c0fbcdcaa01..b2d08204d7b 100644 --- a/test/micro/org/openjdk/bench/javax/crypto/full/CryptoBase.java +++ b/test/micro/org/openjdk/bench/javax/crypto/full/CryptoBase.java @@ -45,7 +45,7 @@ import java.util.concurrent.TimeUnit; -@Fork(jvmArgsAppend = {"-XX:+AlwaysPreTouch"}, value = 5) +@Fork(jvmArgs = {"-XX:+AlwaysPreTouch"}, value = 5) @Warmup(iterations = 3, time = 3) @Measurement(iterations = 8, time = 2) @OutputTimeUnit(TimeUnit.SECONDS) diff --git a/test/micro/org/openjdk/bench/javax/crypto/full/Poly1305DigestBench.java b/test/micro/org/openjdk/bench/javax/crypto/full/Poly1305DigestBench.java index 529ce9a2b32..bff0918b7a8 100644 --- a/test/micro/org/openjdk/bench/javax/crypto/full/Poly1305DigestBench.java +++ b/test/micro/org/openjdk/bench/javax/crypto/full/Poly1305DigestBench.java @@ -41,7 +41,7 @@ @Measurement(iterations = 3, time = 10) @Warmup(iterations = 3, time = 10) -@Fork(value = 1, jvmArgsAppend = {"--add-opens", "java.base/com.sun.crypto.provider=ALL-UNNAMED"}) +@Fork(value = 1, jvmArgs = {"--add-opens", "java.base/com.sun.crypto.provider=ALL-UNNAMED"}) public class Poly1305DigestBench extends CryptoBase { public static final int SET_SIZE = 128; diff --git a/test/micro/org/openjdk/bench/javax/crypto/full/PolynomialP256Bench.java b/test/micro/org/openjdk/bench/javax/crypto/full/PolynomialP256Bench.java index 94c247c9080..34a6bd761ff 100644 --- a/test/micro/org/openjdk/bench/javax/crypto/full/PolynomialP256Bench.java +++ b/test/micro/org/openjdk/bench/javax/crypto/full/PolynomialP256Bench.java @@ -40,7 +40,7 @@ import sun.security.util.math.MutableIntegerModuloP; import sun.security.util.math.ImmutableIntegerModuloP; -@Fork(jvmArgsAppend = {"-XX:+AlwaysPreTouch", +@Fork(jvmArgs = {"-XX:+AlwaysPreTouch", "--add-exports", "java.base/sun.security.util.math.intpoly=ALL-UNNAMED", "--add-exports", "java.base/sun.security.util.math=ALL-UNNAMED"}, value = 1) @Warmup(iterations = 3, time = 3) diff --git a/test/micro/org/openjdk/bench/javax/tools/JavacNameTable.java b/test/micro/org/openjdk/bench/javax/tools/JavacNameTable.java new file mode 100644 index 00000000000..a98dcb0a89c --- /dev/null +++ b/test/micro/org/openjdk/bench/javax/tools/JavacNameTable.java @@ -0,0 +1,145 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package org.openjdk.bench.javax.tools; + +import org.openjdk.jmh.annotations.Benchmark; +import org.openjdk.jmh.annotations.BenchmarkMode; +import org.openjdk.jmh.annotations.Fork; +import org.openjdk.jmh.annotations.Measurement; +import org.openjdk.jmh.annotations.Mode; +import org.openjdk.jmh.annotations.OutputTimeUnit; +import org.openjdk.jmh.annotations.Scope; +import org.openjdk.jmh.annotations.Setup; +import org.openjdk.jmh.annotations.State; +import org.openjdk.jmh.annotations.TearDown; +import org.openjdk.jmh.annotations.Warmup; + +import javax.tools.JavaCompiler; +import javax.tools.SimpleJavaFileObject; +import javax.tools.StandardJavaFileManager; +import javax.tools.StandardLocation; +import javax.tools.ToolProvider; +import java.io.IOException; +import java.io.File; +import java.net.URI; +import java.nio.file.Files; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.concurrent.TimeUnit; + +@BenchmarkMode(Mode.AverageTime) +@OutputTimeUnit(TimeUnit.MILLISECONDS) +@State(Scope.Thread) +@Warmup(iterations = 5, time = 3, timeUnit = TimeUnit.SECONDS) +@Measurement(iterations = 5, time = 5, timeUnit = TimeUnit.SECONDS) +@Fork(value = 2, jvmArgs = "-Xmx1g") +public class JavacNameTable { + + private List compilationUnits; + private JavaCompiler compiler; + private StandardJavaFileManager fileManager; + private File classDir; + + @Setup + public void prepare() throws IOException { + + // Create a source file with lots of names + StringBuilder buf = new StringBuilder(); + buf.append("class BigSource {\n"); + for (int i = 0; i < 20000; i++) { + buf.append(String.format( + //"final String name%05d = \"some text #%5d\";\n", i, i)); + "String name%05d;\n", i, i)); + } + buf.append("}\n"); + String bigSource = buf.toString(); + + compiler = ToolProvider.getSystemJavaCompiler(); + + fileManager = compiler.getStandardFileManager(null, null, null); + classDir = Files.createTempDirectory( + JavacNameTable.class.getName()).toFile(); + fileManager.setLocation(StandardLocation.CLASS_OUTPUT, + Collections.singleton(classDir)); + + compilationUnits = new ArrayList<>(); + compilationUnits.add(new JavaSourceFromString("BigSource", bigSource)); + } + + @TearDown + public void tearDown() { + for (File f : classDir.listFiles()) { + if (f.isFile()) { + f.delete(); + } else { + throw new IllegalStateException("Unexpected non-file: " + f); + } + } + classDir.delete(); + } + + @Benchmark + public Boolean testSharedTable() throws Exception { + return testCompile(null); + } + + @Benchmark + public Boolean testUnsharedTable() throws Exception { + return testCompile("-XDuseUnsharedTable=true"); + } + + @Benchmark + public Boolean testStringTable() throws Exception { + return testCompile("-XDuseStringTable=true"); + } + + @Benchmark + public Boolean testInternStringTable() throws Exception { + return testCompile("-XDinternStringTable=true"); + } + + public Boolean testCompile(String flag) throws Exception { + final List options = flag != null ? + Collections.singletonList(flag) : null; + JavaCompiler.CompilationTask task = compiler.getTask(null, fileManager, + null, options, null, compilationUnits); + return task.call(); + } + + private static class JavaSourceFromString extends SimpleJavaFileObject { + + private final String code; + + JavaSourceFromString(String name, String code) { + super(URI.create("string:///" + + name.replace('.', '/') + Kind.SOURCE.extension), Kind.SOURCE); + this.code = code; + } + + @Override + public CharSequence getCharContent(boolean ignoreEncodingErrors) { + return code; + } + } +} diff --git a/test/micro/org/openjdk/bench/jdk/classfile/AbstractCorpusBenchmark.java b/test/micro/org/openjdk/bench/jdk/classfile/AbstractCorpusBenchmark.java index b714f1c5ff9..5f64e114877 100644 --- a/test/micro/org/openjdk/bench/jdk/classfile/AbstractCorpusBenchmark.java +++ b/test/micro/org/openjdk/bench/jdk/classfile/AbstractCorpusBenchmark.java @@ -43,7 +43,7 @@ */ @Warmup(iterations = 2) @Measurement(iterations = 4) -@Fork(value = 1, jvmArgsAppend = { +@Fork(value = 1, jvmArgs = { "--add-exports", "java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED", "--add-exports", "java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED", "--enable-preview", diff --git a/test/micro/org/openjdk/bench/jdk/classfile/ClassfileBenchmark.java b/test/micro/org/openjdk/bench/jdk/classfile/ClassfileBenchmark.java index c07eff075c9..ecd671feaac 100644 --- a/test/micro/org/openjdk/bench/jdk/classfile/ClassfileBenchmark.java +++ b/test/micro/org/openjdk/bench/jdk/classfile/ClassfileBenchmark.java @@ -50,7 +50,7 @@ */ @Warmup(iterations = 3) @Measurement(iterations = 5) -@Fork(value = 1, jvmArgsAppend = { +@Fork(value = 1, jvmArgs = { "--enable-preview"}) @State(Scope.Benchmark) diff --git a/test/micro/org/openjdk/bench/jdk/classfile/CodeAttributeTools.java b/test/micro/org/openjdk/bench/jdk/classfile/CodeAttributeTools.java index 4239f70504b..877a36e3864 100644 --- a/test/micro/org/openjdk/bench/jdk/classfile/CodeAttributeTools.java +++ b/test/micro/org/openjdk/bench/jdk/classfile/CodeAttributeTools.java @@ -55,7 +55,7 @@ @BenchmarkMode(Mode.Throughput) @State(Scope.Benchmark) -@Fork(value = 1, jvmArgsAppend = { +@Fork(value = 1, jvmArgs = { "--enable-preview", "--add-exports", "java.base/jdk.internal.classfile.impl=ALL-UNNAMED"}) @Warmup(iterations = 2) diff --git a/test/micro/org/openjdk/bench/jdk/classfile/ConstantPoolBuildingClassEntry.java b/test/micro/org/openjdk/bench/jdk/classfile/ConstantPoolBuildingClassEntry.java index 0f8bf0449af..afb586dabe7 100644 --- a/test/micro/org/openjdk/bench/jdk/classfile/ConstantPoolBuildingClassEntry.java +++ b/test/micro/org/openjdk/bench/jdk/classfile/ConstantPoolBuildingClassEntry.java @@ -43,7 +43,7 @@ @Measurement(iterations = 5) @OutputTimeUnit(TimeUnit.MILLISECONDS) @BenchmarkMode(Mode.Throughput) -@Fork(value = 1, jvmArgsAppend = {"--enable-preview"}) +@Fork(value = 1, jvmArgs = {"--enable-preview"}) @State(Scope.Benchmark) public class ConstantPoolBuildingClassEntry { // JDK-8338546 diff --git a/test/micro/org/openjdk/bench/jdk/classfile/RebuildMethodBodies.java b/test/micro/org/openjdk/bench/jdk/classfile/RebuildMethodBodies.java index 07deec0ae48..f6542983e13 100644 --- a/test/micro/org/openjdk/bench/jdk/classfile/RebuildMethodBodies.java +++ b/test/micro/org/openjdk/bench/jdk/classfile/RebuildMethodBodies.java @@ -37,7 +37,7 @@ @BenchmarkMode(Mode.Throughput) @State(Scope.Benchmark) -@Fork(value = 1, jvmArgsAppend = { +@Fork(value = 1, jvmArgs = { "--enable-preview"}) @Warmup(iterations = 2) @Measurement(iterations = 4) diff --git a/test/micro/org/openjdk/bench/jdk/classfile/RepeatedModelTraversal.java b/test/micro/org/openjdk/bench/jdk/classfile/RepeatedModelTraversal.java index 45fcbe0f5a5..b9c9082625c 100644 --- a/test/micro/org/openjdk/bench/jdk/classfile/RepeatedModelTraversal.java +++ b/test/micro/org/openjdk/bench/jdk/classfile/RepeatedModelTraversal.java @@ -36,7 +36,7 @@ @BenchmarkMode(Mode.Throughput) @State(Scope.Benchmark) -@Fork(value = 1, jvmArgsAppend = { +@Fork(value = 1, jvmArgs = { "--enable-preview"}) @Warmup(iterations = 3) @Measurement(iterations = 4) diff --git a/test/micro/org/openjdk/bench/jdk/classfile/Write.java b/test/micro/org/openjdk/bench/jdk/classfile/Write.java index 6e041cf6436..19dfabbdce8 100644 --- a/test/micro/org/openjdk/bench/jdk/classfile/Write.java +++ b/test/micro/org/openjdk/bench/jdk/classfile/Write.java @@ -56,7 +56,7 @@ */ @Warmup(iterations = 3) @Measurement(iterations = 5) -@Fork(value = 1, jvmArgsAppend = { +@Fork(value = 1, jvmArgs = { "--add-exports", "java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED", "--add-exports", "java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED", "--enable-preview", diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/ArrayMismatchBenchmark.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/ArrayMismatchBenchmark.java index c6c34e890fa..8d0cce89f98 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/ArrayMismatchBenchmark.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/ArrayMismatchBenchmark.java @@ -47,7 +47,7 @@ @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Thread) -@Fork(jvmArgsPrepend = {"--add-modules=jdk.incubator.vector"}) +@Fork(jvmArgs = {"--add-modules=jdk.incubator.vector"}) public class ArrayMismatchBenchmark { @Param({"9", "257", "100000"}) diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/BlackScholes.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/BlackScholes.java index f58821b6697..5db2c6b7d07 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/BlackScholes.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/BlackScholes.java @@ -39,7 +39,7 @@ @State(Scope.Thread) @Warmup(iterations = 3, time = 5) @Measurement(iterations = 3, time = 5) -@Fork(jvmArgsPrepend = {"--add-modules=jdk.incubator.vector"}) +@Fork(jvmArgs = {"--add-modules=jdk.incubator.vector"}) public class BlackScholes { @Param("1024") diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/ColumnFilterBenchmark.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/ColumnFilterBenchmark.java index d41d5404250..e78bd2172a0 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/ColumnFilterBenchmark.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/ColumnFilterBenchmark.java @@ -32,7 +32,7 @@ @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Thread) -@Fork(jvmArgsPrepend = {"--add-modules=jdk.incubator.vector", "-XX:UseAVX=2"}) +@Fork(jvmArgs = {"--add-modules=jdk.incubator.vector", "-XX:UseAVX=2"}) public class ColumnFilterBenchmark { @Param({"1024", "2047", "4096"}) int size; diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/EqualsIgnoreCaseBenchmark.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/EqualsIgnoreCaseBenchmark.java index 888029f3c11..20d7646586d 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/EqualsIgnoreCaseBenchmark.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/EqualsIgnoreCaseBenchmark.java @@ -46,7 +46,7 @@ @State(Scope.Benchmark) @Warmup(iterations = 5, time = 1) @Measurement(iterations = 5, time = 1) -@Fork(value = 3, jvmArgsPrepend = {"--add-modules=jdk.incubator.vector"}) +@Fork(value = 3, jvmArgs = {"--add-modules=jdk.incubator.vector"}) public class EqualsIgnoreCaseBenchmark { static final VectorSpecies SPECIES = ByteVector.SPECIES_PREFERRED; private byte[] a; diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/GatherOperationsBenchmark.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/GatherOperationsBenchmark.java index 7a7578fcf84..09c467cea5b 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/GatherOperationsBenchmark.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/GatherOperationsBenchmark.java @@ -32,7 +32,7 @@ @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Thread) -@Fork(jvmArgsPrepend = {"--add-modules=jdk.incubator.vector"}) +@Fork(jvmArgs = {"--add-modules=jdk.incubator.vector"}) public class GatherOperationsBenchmark { @Param({"64", "256", "1024", "4096"}) int SIZE; diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/IndexInRangeBenchmark.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/IndexInRangeBenchmark.java index 66a9b3fc522..1875ea00feb 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/IndexInRangeBenchmark.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/IndexInRangeBenchmark.java @@ -32,7 +32,7 @@ @State(Scope.Thread) @Warmup(iterations = 3, time = 1) @Measurement(iterations = 5, time = 1) -@Fork(value = 1, jvmArgsPrepend = {"--add-modules=jdk.incubator.vector"}) +@Fork(value = 1, jvmArgs = {"--add-modules=jdk.incubator.vector"}) public class IndexInRangeBenchmark { @Param({"7", "256", "259", "512"}) private int size; diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/IndexVectorBenchmark.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/IndexVectorBenchmark.java index 120ae94bd06..584e73c4886 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/IndexVectorBenchmark.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/IndexVectorBenchmark.java @@ -32,7 +32,7 @@ @State(Scope.Thread) @Warmup(iterations = 3, time = 1) @Measurement(iterations = 5, time = 1) -@Fork(value = 1, jvmArgsPrepend = {"--add-modules=jdk.incubator.vector"}) +@Fork(value = 1, jvmArgs = {"--add-modules=jdk.incubator.vector"}) public class IndexVectorBenchmark { @Param({"1024"}) private int size; diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/LoadMaskedIOOBEBenchmark.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/LoadMaskedIOOBEBenchmark.java index 869c98ef29f..52e64d8e096 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/LoadMaskedIOOBEBenchmark.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/LoadMaskedIOOBEBenchmark.java @@ -32,7 +32,7 @@ @State(Scope.Thread) @Warmup(iterations = 3, time = 1) @Measurement(iterations = 5, time = 1) -@Fork(value = 1, jvmArgsPrepend = {"--add-modules=jdk.incubator.vector"}) +@Fork(value = 1, jvmArgs = {"--add-modules=jdk.incubator.vector"}) public class LoadMaskedIOOBEBenchmark { @Param({"1026"}) private int inSize; diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/MaskCastOperationsBenchmark.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/MaskCastOperationsBenchmark.java index 93871392f26..e277fd9114f 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/MaskCastOperationsBenchmark.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/MaskCastOperationsBenchmark.java @@ -30,7 +30,7 @@ @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Thread) -@Fork(jvmArgsPrepend = {"--add-modules=jdk.incubator.vector"}) +@Fork(jvmArgs = {"--add-modules=jdk.incubator.vector"}) public class MaskCastOperationsBenchmark { VectorMask bmask64; VectorMask bmask128; diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/MaskFromLongBenchmark.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/MaskFromLongBenchmark.java index a7c73ea6460..ee0fadd6db8 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/MaskFromLongBenchmark.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/MaskFromLongBenchmark.java @@ -29,7 +29,7 @@ @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Thread) -@Fork(jvmArgsPrepend = {"--add-modules=jdk.incubator.vector"}) +@Fork(jvmArgs = {"--add-modules=jdk.incubator.vector"}) public class MaskFromLongBenchmark { private static final int ITERATION = 20000; diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/MaskQueryOperationsBenchmark.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/MaskQueryOperationsBenchmark.java index 373bd5017cc..20537fe74f6 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/MaskQueryOperationsBenchmark.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/MaskQueryOperationsBenchmark.java @@ -31,7 +31,7 @@ @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Thread) -@Fork(jvmArgsPrepend = {"--add-modules=jdk.incubator.vector"}) +@Fork(jvmArgs = {"--add-modules=jdk.incubator.vector"}) public class MaskQueryOperationsBenchmark { @Param({"128","256","512"}) int bits; diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/MaskedLogicOpts.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/MaskedLogicOpts.java index 97922c2f9ee..eb08aa38b8f 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/MaskedLogicOpts.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/MaskedLogicOpts.java @@ -32,7 +32,7 @@ @BenchmarkMode(Mode.Throughput) @OutputTimeUnit(TimeUnit.SECONDS) @State(Scope.Thread) -@Fork(jvmArgsPrepend = {"--add-modules=jdk.incubator.vector"}) +@Fork(jvmArgs = {"--add-modules=jdk.incubator.vector"}) public class MaskedLogicOpts { @Param({"256","512","1024"}) private int ARRAYLEN; diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/MemorySegmentVectorAccess.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/MemorySegmentVectorAccess.java index 55248290f0e..a85ba440dce 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/MemorySegmentVectorAccess.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/MemorySegmentVectorAccess.java @@ -48,7 +48,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 1, jvmArgsAppend = { +@Fork(value = 1, jvmArgs = { "--add-modules=jdk.incubator.vector", "--enable-native-access", "ALL-UNNAMED"}) public class MemorySegmentVectorAccess { diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/RearrangeBytesBenchmark.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/RearrangeBytesBenchmark.java index daa15d41067..375ae9a0395 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/RearrangeBytesBenchmark.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/RearrangeBytesBenchmark.java @@ -32,7 +32,7 @@ @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Thread) -@Fork(jvmArgsPrepend = {"--add-modules=jdk.incubator.vector"}) +@Fork(jvmArgs = {"--add-modules=jdk.incubator.vector"}) public class RearrangeBytesBenchmark { @Param({"256", "512", "1024"}) int size; diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/RotateBenchmark.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/RotateBenchmark.java index 3628479342a..0ebf844e94b 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/RotateBenchmark.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/RotateBenchmark.java @@ -32,7 +32,7 @@ @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Thread) -@Fork(jvmArgsPrepend = {"--add-modules=jdk.incubator.vector"}) +@Fork(jvmArgs = {"--add-modules=jdk.incubator.vector"}) public class RotateBenchmark { @Param({"256","512"}) int size; diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/SelectFromBenchmark.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/SelectFromBenchmark.java index 18614617e6c..1a370596c08 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/SelectFromBenchmark.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/SelectFromBenchmark.java @@ -33,7 +33,7 @@ @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Thread) -@Fork(jvmArgsPrepend = {"--add-modules=jdk.incubator.vector"}) +@Fork(jvmArgs = {"--add-modules=jdk.incubator.vector"}) public class SelectFromBenchmark { @Param({"1024","2048"}) int size; diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/StoreMaskTrueCount.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/StoreMaskTrueCount.java index 372edd0cfb5..db9f7cf1028 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/StoreMaskTrueCount.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/StoreMaskTrueCount.java @@ -30,7 +30,7 @@ @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Thread) -@Fork(jvmArgsPrepend = {"--add-modules=jdk.incubator.vector"}) +@Fork(jvmArgs = {"--add-modules=jdk.incubator.vector"}) public class StoreMaskTrueCount { private static final VectorSpecies S_SPECIES = ShortVector.SPECIES_PREFERRED; private static final VectorSpecies I_SPECIES = IntVector.SPECIES_PREFERRED; diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/StoreMaskedBenchmark.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/StoreMaskedBenchmark.java index e5c21527e4a..626de9b898c 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/StoreMaskedBenchmark.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/StoreMaskedBenchmark.java @@ -32,7 +32,7 @@ @State(Scope.Thread) @Warmup(iterations = 3, time = 1) @Measurement(iterations = 5, time = 1) -@Fork(value = 1, jvmArgsPrepend = {"--add-modules=jdk.incubator.vector"}) +@Fork(value = 1, jvmArgs = {"--add-modules=jdk.incubator.vector"}) public class StoreMaskedBenchmark { @Param({"1024"}) private int size; diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/StoreMaskedIOOBEBenchmark.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/StoreMaskedIOOBEBenchmark.java index 1855338552e..241bd081d3a 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/StoreMaskedIOOBEBenchmark.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/StoreMaskedIOOBEBenchmark.java @@ -31,7 +31,7 @@ @State(Scope.Thread) @Warmup(iterations = 3, time = 1) @Measurement(iterations = 5, time = 1) -@Fork(value = 1, jvmArgsPrepend = {"--add-modules=jdk.incubator.vector"}) +@Fork(value = 1, jvmArgs = {"--add-modules=jdk.incubator.vector"}) public class StoreMaskedIOOBEBenchmark { @Param({"1024"}) private int inSize; diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/TestLoadSegmentVarious.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/TestLoadSegmentVarious.java index 5ec17c26ca5..53564edab2d 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/TestLoadSegmentVarious.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/TestLoadSegmentVarious.java @@ -46,7 +46,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 1, jvmArgsAppend = { +@Fork(value = 1, jvmArgs = { "--add-modules=jdk.incubator.vector", "--enable-native-access", "ALL-UNNAMED"}) public class TestLoadSegmentVarious { diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/TestLoadStoreBytes.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/TestLoadStoreBytes.java index 3ea1943e703..feac109230a 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/TestLoadStoreBytes.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/TestLoadStoreBytes.java @@ -47,7 +47,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 1, jvmArgsAppend = { +@Fork(value = 1, jvmArgs = { "--add-modules=jdk.incubator.vector", "--enable-native-access", "ALL-UNNAMED", "-Djdk.incubator.vector.VECTOR_ACCESS_OOB_CHECK=1"}) diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/TestLoadStoreShorts.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/TestLoadStoreShorts.java index d6c6531d3f8..842313357bd 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/TestLoadStoreShorts.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/TestLoadStoreShorts.java @@ -50,7 +50,7 @@ @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @State(org.openjdk.jmh.annotations.Scope.Thread) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 1, jvmArgsAppend = { +@Fork(value = 1, jvmArgs = { "--add-modules=jdk.incubator.vector", "--enable-native-access", "ALL-UNNAMED"}) public class TestLoadStoreShorts { diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/VectorExtractBenchmark.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/VectorExtractBenchmark.java index 4715cdb08ba..6358cb0a5d4 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/VectorExtractBenchmark.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/VectorExtractBenchmark.java @@ -28,7 +28,7 @@ @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Thread) -@Fork(jvmArgsPrepend = {"--add-modules=jdk.incubator.vector"}) +@Fork(jvmArgs = {"--add-modules=jdk.incubator.vector"}) public class VectorExtractBenchmark { private int idx = 0; private boolean[] res = new boolean[8]; diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/VectorFPtoIntCastOperations.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/VectorFPtoIntCastOperations.java index b66fc9646a0..35069af60f6 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/VectorFPtoIntCastOperations.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/VectorFPtoIntCastOperations.java @@ -31,7 +31,7 @@ @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Thread) -@Fork(jvmArgsPrepend = {"--add-modules=jdk.incubator.vector"}) +@Fork(jvmArgs = {"--add-modules=jdk.incubator.vector"}) public class VectorFPtoIntCastOperations { @Param({"512", "1024"}) static int SIZE; diff --git a/test/micro/org/openjdk/bench/jdk/incubator/vector/VectorZeroExtend.java b/test/micro/org/openjdk/bench/jdk/incubator/vector/VectorZeroExtend.java index 503d80356da..e250ddd9008 100644 --- a/test/micro/org/openjdk/bench/jdk/incubator/vector/VectorZeroExtend.java +++ b/test/micro/org/openjdk/bench/jdk/incubator/vector/VectorZeroExtend.java @@ -32,7 +32,7 @@ @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Thread) -@Fork(jvmArgsPrepend = {"--add-modules=jdk.incubator.vector"}) +@Fork(jvmArgs = {"--add-modules=jdk.incubator.vector"}) public class VectorZeroExtend { private static final VectorSpecies B_SPECIES = ByteVector.SPECIES_PREFERRED; private static final VectorSpecies S_SPECIES = ShortVector.SPECIES_PREFERRED; diff --git a/test/micro/org/openjdk/bench/jdk/preview/patterns/Exactness.java b/test/micro/org/openjdk/bench/jdk/preview/patterns/Exactness.java index 675f5bda398..34971ccf93a 100644 --- a/test/micro/org/openjdk/bench/jdk/preview/patterns/Exactness.java +++ b/test/micro/org/openjdk/bench/jdk/preview/patterns/Exactness.java @@ -35,7 +35,7 @@ @Measurement(iterations=5, time=1) @Threads(2) @Fork(value = 1, - jvmArgsPrepend = {"-Djmh.blackhole.mode=COMPILER", + jvmArgs = {"-Djmh.blackhole.mode=COMPILER", "--enable-preview"}) @State(Scope.Thread) @SuppressWarnings("preview") diff --git a/test/micro/org/openjdk/bench/vm/compiler/AllocationMerges.java b/test/micro/org/openjdk/bench/vm/compiler/AllocationMerges.java index 84c6c5c6483..b4b833cd95a 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/AllocationMerges.java +++ b/test/micro/org/openjdk/bench/vm/compiler/AllocationMerges.java @@ -1194,7 +1194,7 @@ public void testString_two_caller(Blackhole bh) { // ------------------ Utility for Benchmarking ------------------- // - @Fork(value = 3, jvmArgsPrepend = { + @Fork(value = 3, jvmArgs = { "-XX:+UnlockDiagnosticVMOptions", "-XX:+UseTLAB", "-XX:-ReduceAllocationMerges", @@ -1202,7 +1202,7 @@ public void testString_two_caller(Blackhole bh) { public static class NopRAM extends AllocationMerges { } - @Fork(value = 3, jvmArgsPrepend = { + @Fork(value = 3, jvmArgs = { "-XX:+UnlockDiagnosticVMOptions", "-XX:+ReduceAllocationMerges", }) diff --git a/test/micro/org/openjdk/bench/vm/compiler/ClearMemory.java b/test/micro/org/openjdk/bench/vm/compiler/ClearMemory.java index f70b4aa734a..434805875c1 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/ClearMemory.java +++ b/test/micro/org/openjdk/bench/vm/compiler/ClearMemory.java @@ -38,7 +38,7 @@ import java.util.concurrent.TimeUnit; -@Fork(value = 3, jvmArgsPrepend = {"-XX:-EliminateAllocations", "-XX:-DoEscapeAnalysis"}) +@Fork(value = 3, jvmArgs = {"-XX:-EliminateAllocations", "-XX:-DoEscapeAnalysis"}) @BenchmarkMode(Mode.Throughput) @OutputTimeUnit(TimeUnit.SECONDS) @State(Scope.Thread) diff --git a/test/micro/org/openjdk/bench/vm/compiler/ConstructorBarriers.java b/test/micro/org/openjdk/bench/vm/compiler/ConstructorBarriers.java index 7adbbe0e1a7..83dc38552fa 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/ConstructorBarriers.java +++ b/test/micro/org/openjdk/bench/vm/compiler/ConstructorBarriers.java @@ -41,7 +41,7 @@ @State(Scope.Thread) @Warmup(iterations = 3, time = 1, timeUnit = TimeUnit.SECONDS) @Measurement(iterations = 3, time = 1, timeUnit = TimeUnit.SECONDS) -@Fork(value = 3, jvmArgsAppend = {"-Xms512m", "-Xmx512m", "-XX:+AlwaysPreTouch", "-XX:+UseParallelGC"}) +@Fork(value = 3, jvmArgs = {"-Xms512m", "-Xmx512m", "-XX:+AlwaysPreTouch", "-XX:+UseParallelGC"}) public class ConstructorBarriers { // Checks the barrier coalescing/optimization around field initializations. diff --git a/test/micro/org/openjdk/bench/vm/compiler/InterfacePrivateCalls.java b/test/micro/org/openjdk/bench/vm/compiler/InterfacePrivateCalls.java index 7ccc91901de..7e8800a3fbe 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/InterfacePrivateCalls.java +++ b/test/micro/org/openjdk/bench/vm/compiler/InterfacePrivateCalls.java @@ -64,7 +64,7 @@ public void setupTrial() { @Benchmark @BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.NANOSECONDS) - @Fork(value=3, jvmArgsAppend={"-XX:TieredStopAtLevel=1"}) + @Fork(value=3, jvmArgs={"-XX:TieredStopAtLevel=1"}) public void invokePrivateInterfaceMethodC1() { for (int i = 0; i < objs.length; ++i) { objs[i].foo(); diff --git a/test/micro/org/openjdk/bench/vm/compiler/MergeStoreBench.java b/test/micro/org/openjdk/bench/vm/compiler/MergeStoreBench.java index 26c8287c4de..870422de256 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/MergeStoreBench.java +++ b/test/micro/org/openjdk/bench/vm/compiler/MergeStoreBench.java @@ -43,7 +43,7 @@ @State(Scope.Thread) @Warmup(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @Measurement(iterations = 5, time = 1000, timeUnit = TimeUnit.MILLISECONDS) -@Fork(value = 3, jvmArgsAppend = {"--add-exports", "java.base/jdk.internal.misc=ALL-UNNAMED"}) +@Fork(value = 3, jvmArgs = {"--add-exports", "java.base/jdk.internal.misc=ALL-UNNAMED"}) public class MergeStoreBench { private static final Unsafe UNSAFE = Unsafe.getUnsafe(); diff --git a/test/micro/org/openjdk/bench/vm/compiler/MergeStores.java b/test/micro/org/openjdk/bench/vm/compiler/MergeStores.java index 84017573c07..93d98116ecc 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/MergeStores.java +++ b/test/micro/org/openjdk/bench/vm/compiler/MergeStores.java @@ -43,7 +43,7 @@ @OutputTimeUnit(TimeUnit.NANOSECONDS) @Warmup(iterations = 3, time = 3) @Measurement(iterations = 3, time = 3) -@Fork(value = 3, jvmArgsAppend = { +@Fork(value = 3, jvmArgs = { "--add-exports", "java.base/jdk.internal.misc=ALL-UNNAMED", "--add-exports", "java.base/jdk.internal.util=ALL-UNNAMED"}) @State(Scope.Benchmark) diff --git a/test/micro/org/openjdk/bench/vm/compiler/SecondarySuperCacheHits.java b/test/micro/org/openjdk/bench/vm/compiler/SecondarySuperCacheHits.java index aaaf0edb258..69eaf875363 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/SecondarySuperCacheHits.java +++ b/test/micro/org/openjdk/bench/vm/compiler/SecondarySuperCacheHits.java @@ -30,7 +30,7 @@ @Warmup(iterations = 5, time = 300, timeUnit = TimeUnit.MILLISECONDS) @Measurement(iterations = 5, time = 300, timeUnit = TimeUnit.MILLISECONDS) -@Fork(value = 3, jvmArgsAppend = {"-XX:+TieredCompilation", "-XX:TieredStopAtLevel=1"}) +@Fork(value = 3, jvmArgs = {"-XX:+TieredCompilation", "-XX:TieredStopAtLevel=1"}) @BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.NANOSECONDS) @Threads(1) diff --git a/test/micro/org/openjdk/bench/vm/compiler/SecondarySuperCacheInterContention.java b/test/micro/org/openjdk/bench/vm/compiler/SecondarySuperCacheInterContention.java index 3cafa582c09..03c6d75607b 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/SecondarySuperCacheInterContention.java +++ b/test/micro/org/openjdk/bench/vm/compiler/SecondarySuperCacheInterContention.java @@ -30,7 +30,7 @@ @Warmup(iterations = 5, time = 300, timeUnit = TimeUnit.MILLISECONDS) @Measurement(iterations = 5, time = 300, timeUnit = TimeUnit.MILLISECONDS) -@Fork(value = 3, jvmArgsAppend = {"-XX:+TieredCompilation", "-XX:TieredStopAtLevel=1"}) +@Fork(value = 3, jvmArgs = {"-XX:+TieredCompilation", "-XX:TieredStopAtLevel=1"}) @BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.NANOSECONDS) @Threads(Threads.MAX) diff --git a/test/micro/org/openjdk/bench/vm/compiler/SecondarySuperCacheIntraContention.java b/test/micro/org/openjdk/bench/vm/compiler/SecondarySuperCacheIntraContention.java index b97d49e2e60..3c30c69a864 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/SecondarySuperCacheIntraContention.java +++ b/test/micro/org/openjdk/bench/vm/compiler/SecondarySuperCacheIntraContention.java @@ -30,7 +30,7 @@ @Warmup(iterations = 5, time = 300, timeUnit = TimeUnit.MILLISECONDS) @Measurement(iterations = 5, time = 300, timeUnit = TimeUnit.MILLISECONDS) -@Fork(value = 3, jvmArgsAppend = {"-XX:+TieredCompilation", "-XX:TieredStopAtLevel=1"}) +@Fork(value = 3, jvmArgs = {"-XX:+TieredCompilation", "-XX:TieredStopAtLevel=1"}) @BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.NANOSECONDS) @Threads(Threads.MAX) diff --git a/test/micro/org/openjdk/bench/vm/compiler/SubIdealC0Minus_YPlusC1_.java b/test/micro/org/openjdk/bench/vm/compiler/SubIdealC0Minus_YPlusC1_.java index 17728f6bc25..5ac4e58dce6 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/SubIdealC0Minus_YPlusC1_.java +++ b/test/micro/org/openjdk/bench/vm/compiler/SubIdealC0Minus_YPlusC1_.java @@ -47,7 +47,7 @@ @State(Scope.Thread) @Warmup(iterations = 5, time = 1, timeUnit = TimeUnit.SECONDS) @Measurement(iterations = 5, time = 1, timeUnit = TimeUnit.SECONDS) -@Fork(value = 3 , jvmArgsAppend = {"-XX:-TieredCompilation", "-Xbatch", "-Xcomp"}) +@Fork(value = 3 , jvmArgs = {"-XX:-TieredCompilation", "-Xbatch", "-Xcomp"}) public class SubIdealC0Minus_YPlusC1_ { private static final int I_C0 = 1234567; diff --git a/test/micro/org/openjdk/bench/vm/compiler/TypeVectorOperations.java b/test/micro/org/openjdk/bench/vm/compiler/TypeVectorOperations.java index a3e4445664c..c39107fdd00 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/TypeVectorOperations.java +++ b/test/micro/org/openjdk/bench/vm/compiler/TypeVectorOperations.java @@ -382,7 +382,7 @@ public void andZ() { } @Benchmark - @Fork(jvmArgsPrepend = {"-XX:+UseCMoveUnconditionally", "-XX:+UseVectorCmov"}) + @Fork(jvmArgs = {"-XX:+UseCMoveUnconditionally", "-XX:+UseVectorCmov"}) public void cmoveD() { for (int i = 0; i < COUNT; i++) { resD[i] = resD[i] < doubles[i] ? resD[i] : doubles[i]; @@ -390,21 +390,21 @@ public void cmoveD() { } @Benchmark - @Fork(jvmArgsPrepend = {"-XX:+UseCMoveUnconditionally", "-XX:+UseVectorCmov"}) + @Fork(jvmArgs = {"-XX:+UseCMoveUnconditionally", "-XX:+UseVectorCmov"}) public void cmoveF() { for (int i = 0; i < COUNT; i++) { resF[i] = resF[i] < floats[i] ? resF[i] : floats[i]; } } - @Fork(value = 2, jvmArgsPrepend = { + @Fork(value = 2, jvmArgs = { "-XX:+UseSuperWord" }) public static class TypeVectorOperationsSuperWord extends TypeVectorOperations { } - @Fork(value = 2, jvmArgsPrepend = { + @Fork(value = 2, jvmArgs = { "-XX:-UseSuperWord" }) public static class TypeVectorOperationsNonSuperWord extends TypeVectorOperations { diff --git a/test/micro/org/openjdk/bench/vm/compiler/VectorAlignment.java b/test/micro/org/openjdk/bench/vm/compiler/VectorAlignment.java index 7fff4952c8e..1d684260d89 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/VectorAlignment.java +++ b/test/micro/org/openjdk/bench/vm/compiler/VectorAlignment.java @@ -293,22 +293,22 @@ public void bench401_hand_unrolled_misaligned() { } } - @Fork(value = 1, jvmArgsPrepend = { + @Fork(value = 1, jvmArgs = { "-XX:+UseSuperWord", "-XX:CompileCommand=Option,*::*,Vectorize" }) public static class VectorAlignmentSuperWordWithVectorize extends VectorAlignment {} - @Fork(value = 1, jvmArgsPrepend = { + @Fork(value = 1, jvmArgs = { "-XX:+UseSuperWord", "-XX:+AlignVector" }) public static class VectorAlignmentSuperWordAlignVector extends VectorAlignment {} - @Fork(value = 1, jvmArgsPrepend = { + @Fork(value = 1, jvmArgs = { "-XX:+UseSuperWord" }) public static class VectorAlignmentSuperWord extends VectorAlignment {} - @Fork(value = 1, jvmArgsPrepend = { + @Fork(value = 1, jvmArgs = { "-XX:-UseSuperWord" }) public static class VectorAlignmentNoSuperWord extends VectorAlignment {} diff --git a/test/micro/org/openjdk/bench/vm/compiler/VectorBitCount.java b/test/micro/org/openjdk/bench/vm/compiler/VectorBitCount.java index 49b644a64f1..cfb37b71caf 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/VectorBitCount.java +++ b/test/micro/org/openjdk/bench/vm/compiler/VectorBitCount.java @@ -72,14 +72,14 @@ public int[] longBitCount() { } - @Fork(value = 2, jvmArgsPrepend = { + @Fork(value = 2, jvmArgs = { "-XX:+UseSuperWord" }) public static class WithSuperword extends VectorBitCount { } - @Fork(value = 2, jvmArgsPrepend = { + @Fork(value = 2, jvmArgs = { "-XX:-UseSuperWord" }) public static class NoSuperword extends VectorBitCount { diff --git a/test/micro/org/openjdk/bench/vm/compiler/VectorLoadToStoreForwarding.java b/test/micro/org/openjdk/bench/vm/compiler/VectorLoadToStoreForwarding.java index efbf99c6ce5..1aed0fc3321 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/VectorLoadToStoreForwarding.java +++ b/test/micro/org/openjdk/bench/vm/compiler/VectorLoadToStoreForwarding.java @@ -200,12 +200,12 @@ public void benchmark_20() { } } - @Fork(value = 1, jvmArgsPrepend = { + @Fork(value = 1, jvmArgs = { "-XX:+UseSuperWord" }) public static class VectorLoadToStoreForwardingSuperWord extends VectorLoadToStoreForwarding {} - @Fork(value = 1, jvmArgsPrepend = { + @Fork(value = 1, jvmArgs = { "-XX:-UseSuperWord" }) public static class VectorLoadToStoreForwardingNoSuperWord extends VectorLoadToStoreForwarding {} diff --git a/test/micro/org/openjdk/bench/vm/compiler/VectorReduction.java b/test/micro/org/openjdk/bench/vm/compiler/VectorReduction.java index 9b293b6b7e5..1507dd211e6 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/VectorReduction.java +++ b/test/micro/org/openjdk/bench/vm/compiler/VectorReduction.java @@ -176,14 +176,14 @@ public void andRedIOnGlobalAccumulator() { } } - @Fork(value = 2, jvmArgsPrepend = { + @Fork(value = 2, jvmArgs = { "-XX:+UseSuperWord" }) public static class WithSuperword extends VectorReduction { } - @Fork(value = 2, jvmArgsPrepend = { + @Fork(value = 2, jvmArgs = { "-XX:-UseSuperWord" }) public static class NoSuperword extends VectorReduction { diff --git a/test/micro/org/openjdk/bench/vm/compiler/VectorReduction2.java b/test/micro/org/openjdk/bench/vm/compiler/VectorReduction2.java index 5ec34a0423f..ec614cb324b 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/VectorReduction2.java +++ b/test/micro/org/openjdk/bench/vm/compiler/VectorReduction2.java @@ -1445,10 +1445,10 @@ public void doubleMaxBig(Blackhole bh) { bh.consume(acc); } - @Fork(value = 1, jvmArgsPrepend = {"-XX:+UseSuperWord"}) + @Fork(value = 1, jvmArgs = {"-XX:+UseSuperWord"}) public static class WithSuperword extends VectorReduction2 {} - @Fork(value = 1, jvmArgsPrepend = {"-XX:-UseSuperWord"}) + @Fork(value = 1, jvmArgs = {"-XX:-UseSuperWord"}) public static class NoSuperword extends VectorReduction2 {} } diff --git a/test/micro/org/openjdk/bench/vm/compiler/VectorReductionFloatingMinMax.java b/test/micro/org/openjdk/bench/vm/compiler/VectorReductionFloatingMinMax.java index d25d22f12b1..870164b8050 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/VectorReductionFloatingMinMax.java +++ b/test/micro/org/openjdk/bench/vm/compiler/VectorReductionFloatingMinMax.java @@ -69,7 +69,7 @@ public void init() { } @Benchmark - @Fork(jvmArgsPrepend = {"-XX:-SuperWordLoopUnrollAnalysis"}) + @Fork(jvmArgs = {"-XX:-SuperWordLoopUnrollAnalysis"}) public void maxRedF(Blackhole bh) { float max = 0.0f; for (int i = 0; i < COUNT_FLOAT; i++) { @@ -79,7 +79,7 @@ public void maxRedF(Blackhole bh) { } @Benchmark - @Fork(jvmArgsPrepend = {"-XX:-SuperWordLoopUnrollAnalysis"}) + @Fork(jvmArgs = {"-XX:-SuperWordLoopUnrollAnalysis"}) public void minRedF(Blackhole bh) { float min = 0.0f; for (int i = 0; i < COUNT_FLOAT; i++) { diff --git a/test/micro/org/openjdk/bench/vm/compiler/overhead/SimpleRepeatCompilation.java b/test/micro/org/openjdk/bench/vm/compiler/overhead/SimpleRepeatCompilation.java index 0605050ed2a..9538e13df2d 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/overhead/SimpleRepeatCompilation.java +++ b/test/micro/org/openjdk/bench/vm/compiler/overhead/SimpleRepeatCompilation.java @@ -52,25 +52,25 @@ public class SimpleRepeatCompilation { = "-XX:CompileCommand=option,org/openjdk/bench/vm/compiler/overhead/SimpleRepeatCompilation.mixHashCode,intx,RepeatCompilation,500"; @Benchmark - @Fork(jvmArgsAppend={"-Xbatch", MIXHASH_METHOD}) + @Fork(jvmArgs={"-Xbatch", MIXHASH_METHOD}) public int mixHashCode_repeat() { return loop_hashCode(); } @Benchmark - @Fork(jvmArgsAppend={"-Xbatch", "-XX:-TieredCompilation", MIXHASH_METHOD}) + @Fork(jvmArgs={"-Xbatch", "-XX:-TieredCompilation", MIXHASH_METHOD}) public int mixHashCode_repeat_c2() { return loop_hashCode(); } @Benchmark - @Fork(jvmArgsAppend={"-Xbatch", "-XX:TieredStopAtLevel=1", MIXHASH_METHOD}) + @Fork(jvmArgs={"-Xbatch", "-XX:TieredStopAtLevel=1", MIXHASH_METHOD}) public int mixHashCode_repeat_c1() { return loop_hashCode(); } @Benchmark - @Fork(jvmArgsAppend={"-Xbatch"}) + @Fork(jvmArgs={"-Xbatch"}) public int mixHashCode_baseline() { return loop_hashCode(); } @@ -95,25 +95,25 @@ public int mixHashCode(String value) { = "-XX:CompileCommand=option,org/openjdk/bench/vm/compiler/overhead/SimpleRepeatCompilation.trivialMath,intx,RepeatCompilation,2000"; @Benchmark - @Fork(jvmArgsAppend={"-Xbatch",TRIVIAL_MATH_METHOD}) + @Fork(jvmArgs={"-Xbatch",TRIVIAL_MATH_METHOD}) public int trivialMath_repeat() { return loop_trivialMath(); } @Benchmark - @Fork(jvmArgsAppend={"-Xbatch", "-XX:-TieredCompilation", TRIVIAL_MATH_METHOD}) + @Fork(jvmArgs={"-Xbatch", "-XX:-TieredCompilation", TRIVIAL_MATH_METHOD}) public int trivialMath_repeat_c2() { return loop_trivialMath(); } @Benchmark - @Fork(jvmArgsAppend={"-Xbatch", "-XX:TieredStopAtLevel=1", TRIVIAL_MATH_METHOD}) + @Fork(jvmArgs={"-Xbatch", "-XX:TieredStopAtLevel=1", TRIVIAL_MATH_METHOD}) public int trivialMath_repeat_c1() { return loop_trivialMath(); } @Benchmark - @Fork(jvmArgsAppend={"-Xbatch"}) + @Fork(jvmArgs={"-Xbatch"}) public int trivialMath_baseline() { return loop_trivialMath(); } @@ -135,25 +135,25 @@ public int trivialMath(int a, int b) { = "-XX:CompileCommand=option,org/openjdk/bench/vm/compiler/overhead/SimpleRepeatCompilation.largeMethod,intx,RepeatCompilation,100"; @Benchmark - @Fork(jvmArgsAppend={"-Xbatch",LARGE_METHOD}) + @Fork(jvmArgs={"-Xbatch",LARGE_METHOD}) public int largeMethod_repeat() { return loop_largeMethod(); } @Benchmark - @Fork(jvmArgsAppend={"-Xbatch", "-XX:-TieredCompilation", LARGE_METHOD}) + @Fork(jvmArgs={"-Xbatch", "-XX:-TieredCompilation", LARGE_METHOD}) public int largeMethod_repeat_c2() { return loop_largeMethod(); } @Benchmark - @Fork(jvmArgsAppend={"-Xbatch", "-XX:TieredStopAtLevel=1", LARGE_METHOD}) + @Fork(jvmArgs={"-Xbatch", "-XX:TieredStopAtLevel=1", LARGE_METHOD}) public int largeMethod_repeat_c1() { return loop_largeMethod(); } @Benchmark - @Fork(jvmArgsAppend={"-Xbatch"}) + @Fork(jvmArgs={"-Xbatch"}) public int largeMethod_baseline() { return loop_largeMethod(); } diff --git a/test/micro/org/openjdk/bench/vm/compiler/x86/BasicRules.java b/test/micro/org/openjdk/bench/vm/compiler/x86/BasicRules.java index 4b04e168f16..fa13fae42cc 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/x86/BasicRules.java +++ b/test/micro/org/openjdk/bench/vm/compiler/x86/BasicRules.java @@ -31,7 +31,7 @@ @BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.NANOSECONDS) @State(Scope.Thread) -@Fork(value = 3, jvmArgsAppend = "-XX:-UseSuperWord") +@Fork(value = 3, jvmArgs = "-XX:-UseSuperWord") @Warmup(time = 1, timeUnit = TimeUnit.SECONDS) @Measurement(time = 1, timeUnit = TimeUnit.SECONDS) public class BasicRules { diff --git a/test/micro/org/openjdk/bench/vm/compiler/x86/ConvertF2I.java b/test/micro/org/openjdk/bench/vm/compiler/x86/ConvertF2I.java index 406da5f65e5..dd807532e72 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/x86/ConvertF2I.java +++ b/test/micro/org/openjdk/bench/vm/compiler/x86/ConvertF2I.java @@ -31,7 +31,7 @@ @State(Scope.Thread) @Warmup(iterations = 5, time = 1) @Measurement(iterations = 5, time = 1) -@Fork(value = 1, jvmArgsAppend = {"-XX:-UseSuperWord"}) +@Fork(value = 1, jvmArgs = {"-XX:-UseSuperWord"}) public class ConvertF2I { static final int LENGTH = 1000; int[] intArray = new int[LENGTH]; diff --git a/test/micro/org/openjdk/bench/vm/compiler/x86/LeaInstruction.java b/test/micro/org/openjdk/bench/vm/compiler/x86/LeaInstruction.java index f4cd27a5dd4..fb4be3ec454 100644 --- a/test/micro/org/openjdk/bench/vm/compiler/x86/LeaInstruction.java +++ b/test/micro/org/openjdk/bench/vm/compiler/x86/LeaInstruction.java @@ -29,7 +29,7 @@ @BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.NANOSECONDS) -@Fork(value = 2, jvmArgsAppend = {"-XX:LoopUnrollLimit=1"}) +@Fork(value = 2, jvmArgs = {"-XX:LoopUnrollLimit=1"}) @Warmup(iterations = 4, time = 2, timeUnit = TimeUnit.SECONDS) @Measurement(iterations = 4, time = 2, timeUnit = TimeUnit.SECONDS) @State(Scope.Thread) diff --git a/test/micro/org/openjdk/bench/vm/fences/SafePublishing.java b/test/micro/org/openjdk/bench/vm/fences/SafePublishing.java index e18564c4c3a..d5b1ae24872 100644 --- a/test/micro/org/openjdk/bench/vm/fences/SafePublishing.java +++ b/test/micro/org/openjdk/bench/vm/fences/SafePublishing.java @@ -30,7 +30,7 @@ @Warmup(iterations = 3, time = 1, timeUnit = TimeUnit.SECONDS) @Measurement(iterations = 3, time = 1, timeUnit = TimeUnit.SECONDS) -@Fork(value = 3, jvmArgsAppend = {"-XX:+UseParallelGC", "-Xmx128m"}) +@Fork(value = 3, jvmArgs = {"-XX:+UseParallelGC", "-Xmx128m"}) @BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.NANOSECONDS) @State(Scope.Thread) diff --git a/test/micro/org/openjdk/bench/vm/gc/MicroLargePages.java b/test/micro/org/openjdk/bench/vm/gc/MicroLargePages.java index 67702cfe607..66044f8249d 100644 --- a/test/micro/org/openjdk/bench/vm/gc/MicroLargePages.java +++ b/test/micro/org/openjdk/bench/vm/gc/MicroLargePages.java @@ -29,7 +29,7 @@ @OutputTimeUnit(TimeUnit.MINUTES) @State(Scope.Thread) -@Fork(jvmArgsAppend = {"-Xmx256m", "-XX:+UseLargePages", "-XX:LargePageSizeInBytes=1g", "-Xlog:pagesize"}, value = 5) +@Fork(jvmArgs = {"-Xmx256m", "-XX:+UseLargePages", "-XX:LargePageSizeInBytes=1g", "-Xlog:pagesize"}, value = 5) public class MicroLargePages { diff --git a/test/micro/org/openjdk/bench/vm/gc/RawAllocationRate.java b/test/micro/org/openjdk/bench/vm/gc/RawAllocationRate.java index 4faf3e19535..a0987ddd8d8 100644 --- a/test/micro/org/openjdk/bench/vm/gc/RawAllocationRate.java +++ b/test/micro/org/openjdk/bench/vm/gc/RawAllocationRate.java @@ -80,7 +80,7 @@ public Object[] arrayTest() { } @Benchmark - @Fork(jvmArgsAppend={"-XX:TieredStopAtLevel=1"}) + @Fork(jvmArgs={"-XX:TieredStopAtLevel=1"}) public Object[] arrayTest_C1() { return arrayTest(); } @@ -106,7 +106,7 @@ public Object[] instanceTest() { } @Benchmark - @Fork(jvmArgsAppend={"-XX:TieredStopAtLevel=1"}) + @Fork(jvmArgs={"-XX:TieredStopAtLevel=1"}) public Object[] instanceTest_C1() { return instanceTest(); } diff --git a/test/micro/org/openjdk/bench/vm/gc/systemgc/AllDead.java b/test/micro/org/openjdk/bench/vm/gc/systemgc/AllDead.java index 12e1ff25454..6e41ec0610e 100644 --- a/test/micro/org/openjdk/bench/vm/gc/systemgc/AllDead.java +++ b/test/micro/org/openjdk/bench/vm/gc/systemgc/AllDead.java @@ -36,7 +36,7 @@ import java.util.concurrent.TimeUnit; @BenchmarkMode(Mode.SingleShotTime) -@Fork(value=25, jvmArgsAppend={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) +@Fork(value=25, jvmArgs={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Benchmark) public class AllDead { diff --git a/test/micro/org/openjdk/bench/vm/gc/systemgc/AllLive.java b/test/micro/org/openjdk/bench/vm/gc/systemgc/AllLive.java index ddd9f56cf60..2a2bf060833 100644 --- a/test/micro/org/openjdk/bench/vm/gc/systemgc/AllLive.java +++ b/test/micro/org/openjdk/bench/vm/gc/systemgc/AllLive.java @@ -36,7 +36,7 @@ import java.util.concurrent.TimeUnit; @BenchmarkMode(Mode.SingleShotTime) -@Fork(value=25, jvmArgsAppend={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) +@Fork(value=25, jvmArgs={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Benchmark) public class AllLive { diff --git a/test/micro/org/openjdk/bench/vm/gc/systemgc/DifferentObjectSizesArray.java b/test/micro/org/openjdk/bench/vm/gc/systemgc/DifferentObjectSizesArray.java index a4dcfdaaeb5..4de7c4a8f84 100644 --- a/test/micro/org/openjdk/bench/vm/gc/systemgc/DifferentObjectSizesArray.java +++ b/test/micro/org/openjdk/bench/vm/gc/systemgc/DifferentObjectSizesArray.java @@ -35,7 +35,7 @@ import java.util.concurrent.TimeUnit; @BenchmarkMode(Mode.SingleShotTime) -@Fork(value=25, jvmArgsAppend={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) +@Fork(value=25, jvmArgs={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Benchmark) public class DifferentObjectSizesArray { diff --git a/test/micro/org/openjdk/bench/vm/gc/systemgc/DifferentObjectSizesHashMap.java b/test/micro/org/openjdk/bench/vm/gc/systemgc/DifferentObjectSizesHashMap.java index 83914725161..960223f5035 100644 --- a/test/micro/org/openjdk/bench/vm/gc/systemgc/DifferentObjectSizesHashMap.java +++ b/test/micro/org/openjdk/bench/vm/gc/systemgc/DifferentObjectSizesHashMap.java @@ -36,7 +36,7 @@ import java.util.concurrent.TimeUnit; @BenchmarkMode(Mode.SingleShotTime) -@Fork(value=25, jvmArgsAppend={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) +@Fork(value=25, jvmArgs={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Benchmark) public class DifferentObjectSizesHashMap { diff --git a/test/micro/org/openjdk/bench/vm/gc/systemgc/DifferentObjectSizesTreeMap.java b/test/micro/org/openjdk/bench/vm/gc/systemgc/DifferentObjectSizesTreeMap.java index 66aaffff693..d1fea505ac0 100644 --- a/test/micro/org/openjdk/bench/vm/gc/systemgc/DifferentObjectSizesTreeMap.java +++ b/test/micro/org/openjdk/bench/vm/gc/systemgc/DifferentObjectSizesTreeMap.java @@ -36,7 +36,7 @@ import java.util.concurrent.TimeUnit; @BenchmarkMode(Mode.SingleShotTime) -@Fork(value=25, jvmArgsAppend={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) +@Fork(value=25, jvmArgs={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Benchmark) public class DifferentObjectSizesTreeMap { diff --git a/test/micro/org/openjdk/bench/vm/gc/systemgc/HalfDeadFirstPart.java b/test/micro/org/openjdk/bench/vm/gc/systemgc/HalfDeadFirstPart.java index 80cefbfe10f..339e31d7032 100644 --- a/test/micro/org/openjdk/bench/vm/gc/systemgc/HalfDeadFirstPart.java +++ b/test/micro/org/openjdk/bench/vm/gc/systemgc/HalfDeadFirstPart.java @@ -36,7 +36,7 @@ import java.util.concurrent.TimeUnit; @BenchmarkMode(Mode.SingleShotTime) -@Fork(value=25, jvmArgsAppend={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) +@Fork(value=25, jvmArgs={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Benchmark) public class HalfDeadFirstPart { diff --git a/test/micro/org/openjdk/bench/vm/gc/systemgc/HalfDeadInterleaved.java b/test/micro/org/openjdk/bench/vm/gc/systemgc/HalfDeadInterleaved.java index bda9ccfa213..07eda82f2c9 100644 --- a/test/micro/org/openjdk/bench/vm/gc/systemgc/HalfDeadInterleaved.java +++ b/test/micro/org/openjdk/bench/vm/gc/systemgc/HalfDeadInterleaved.java @@ -36,7 +36,7 @@ import java.util.concurrent.TimeUnit; @BenchmarkMode(Mode.SingleShotTime) -@Fork(value=25, jvmArgsAppend={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) +@Fork(value=25, jvmArgs={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Benchmark) public class HalfDeadInterleaved { diff --git a/test/micro/org/openjdk/bench/vm/gc/systemgc/HalfDeadInterleavedChunks.java b/test/micro/org/openjdk/bench/vm/gc/systemgc/HalfDeadInterleavedChunks.java index 06955381f5c..a5d6dce91a9 100644 --- a/test/micro/org/openjdk/bench/vm/gc/systemgc/HalfDeadInterleavedChunks.java +++ b/test/micro/org/openjdk/bench/vm/gc/systemgc/HalfDeadInterleavedChunks.java @@ -36,7 +36,7 @@ import java.util.concurrent.TimeUnit; @BenchmarkMode(Mode.SingleShotTime) -@Fork(value=25, jvmArgsAppend={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) +@Fork(value=25, jvmArgs={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Benchmark) public class HalfDeadInterleavedChunks { diff --git a/test/micro/org/openjdk/bench/vm/gc/systemgc/HalfDeadSecondPart.java b/test/micro/org/openjdk/bench/vm/gc/systemgc/HalfDeadSecondPart.java index 89606f5a07a..838aeb4820b 100644 --- a/test/micro/org/openjdk/bench/vm/gc/systemgc/HalfDeadSecondPart.java +++ b/test/micro/org/openjdk/bench/vm/gc/systemgc/HalfDeadSecondPart.java @@ -36,7 +36,7 @@ import java.util.concurrent.TimeUnit; @BenchmarkMode(Mode.SingleShotTime) -@Fork(value=25, jvmArgsAppend={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) +@Fork(value=25, jvmArgs={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Benchmark) public class HalfDeadSecondPart { diff --git a/test/micro/org/openjdk/bench/vm/gc/systemgc/HalfHashedHalfDead.java b/test/micro/org/openjdk/bench/vm/gc/systemgc/HalfHashedHalfDead.java index 6692e02a135..eaba46e04e9 100644 --- a/test/micro/org/openjdk/bench/vm/gc/systemgc/HalfHashedHalfDead.java +++ b/test/micro/org/openjdk/bench/vm/gc/systemgc/HalfHashedHalfDead.java @@ -36,7 +36,7 @@ import java.util.concurrent.TimeUnit; @BenchmarkMode(Mode.SingleShotTime) -@Fork(value=25, jvmArgsAppend={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) +@Fork(value=25, jvmArgs={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Benchmark) public class HalfHashedHalfDead { diff --git a/test/micro/org/openjdk/bench/vm/gc/systemgc/NoObjects.java b/test/micro/org/openjdk/bench/vm/gc/systemgc/NoObjects.java index a2e35e55061..96461c8106c 100644 --- a/test/micro/org/openjdk/bench/vm/gc/systemgc/NoObjects.java +++ b/test/micro/org/openjdk/bench/vm/gc/systemgc/NoObjects.java @@ -31,7 +31,7 @@ import java.util.concurrent.TimeUnit; @BenchmarkMode(Mode.SingleShotTime) -@Fork(value=25, jvmArgsAppend={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) +@Fork(value=25, jvmArgs={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) @OutputTimeUnit(TimeUnit.MILLISECONDS) public class NoObjects { diff --git a/test/micro/org/openjdk/bench/vm/gc/systemgc/OneBigObject.java b/test/micro/org/openjdk/bench/vm/gc/systemgc/OneBigObject.java index 5601abdcb70..ef2c436efd7 100644 --- a/test/micro/org/openjdk/bench/vm/gc/systemgc/OneBigObject.java +++ b/test/micro/org/openjdk/bench/vm/gc/systemgc/OneBigObject.java @@ -35,7 +35,7 @@ import java.util.concurrent.TimeUnit; @BenchmarkMode(Mode.SingleShotTime) -@Fork(value=25, jvmArgsAppend={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) +@Fork(value=25, jvmArgs={"-Xmx5g", "-Xms5g", "-Xmn3g", "-XX:+AlwaysPreTouch"}) @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Benchmark) public class OneBigObject { diff --git a/test/micro/org/openjdk/bench/vm/lang/TypePollution.java b/test/micro/org/openjdk/bench/vm/lang/TypePollution.java index aa1a0207587..4994bcf9c2d 100644 --- a/test/micro/org/openjdk/bench/vm/lang/TypePollution.java +++ b/test/micro/org/openjdk/bench/vm/lang/TypePollution.java @@ -105,28 +105,28 @@ public void setup() { int probe = 99; @Benchmark - @Fork(jvmArgsAppend={"-XX:+UnlockDiagnosticVMOptions", "-XX:-UseSecondarySupersTable", "-XX:-UseSecondarySupersCache"}) + @Fork(jvmArgs={"-XX:+UnlockDiagnosticVMOptions", "-XX:-UseSecondarySupersTable", "-XX:-UseSecondarySupersCache"}) @OutputTimeUnit(TimeUnit.MILLISECONDS) public long parallelInstanceOfInterfaceSwitchLinearNoSCC() { return parallelInstanceOfInterfaceSwitch(); } @Benchmark - @Fork(jvmArgsAppend={"-XX:+UnlockDiagnosticVMOptions", "-XX:-UseSecondarySupersTable", "-XX:+UseSecondarySupersCache"}) + @Fork(jvmArgs={"-XX:+UnlockDiagnosticVMOptions", "-XX:-UseSecondarySupersTable", "-XX:+UseSecondarySupersCache"}) @OutputTimeUnit(TimeUnit.MILLISECONDS) public long parallelInstanceOfInterfaceSwitchLinearSCC() { return parallelInstanceOfInterfaceSwitch(); } @Benchmark - @Fork(jvmArgsAppend={"-XX:+UnlockDiagnosticVMOptions", "-XX:+UseSecondarySupersTable", "-XX:-UseSecondarySupersCache"}) + @Fork(jvmArgs={"-XX:+UnlockDiagnosticVMOptions", "-XX:+UseSecondarySupersTable", "-XX:-UseSecondarySupersCache"}) @OutputTimeUnit(TimeUnit.MILLISECONDS) public long parallelInstanceOfInterfaceSwitchTableNoSCC() { return parallelInstanceOfInterfaceSwitch(); } @Benchmark - @Fork(jvmArgsAppend={"-XX:+UnlockDiagnosticVMOptions", "-XX:+UseSecondarySupersTable", "-XX:+UseSecondarySupersCache"}) + @Fork(jvmArgs={"-XX:+UnlockDiagnosticVMOptions", "-XX:+UseSecondarySupersTable", "-XX:+UseSecondarySupersCache"}) @OutputTimeUnit(TimeUnit.MILLISECONDS) public long parallelInstanceOfInterfaceSwitchTableSCC() { return parallelInstanceOfInterfaceSwitch(); @@ -149,25 +149,25 @@ long parallelInstanceOfInterfaceSwitch() { } @Benchmark - @Fork(jvmArgsAppend={"-XX:+UnlockDiagnosticVMOptions", "-XX:-UseSecondarySupersTable", "-XX:-UseSecondarySupersCache"}) + @Fork(jvmArgs={"-XX:+UnlockDiagnosticVMOptions", "-XX:-UseSecondarySupersTable", "-XX:-UseSecondarySupersCache"}) public int instanceOfInterfaceSwitchLinearNoSCC() { return instanceOfInterfaceSwitch(); } @Benchmark - @Fork(jvmArgsAppend={"-XX:+UnlockDiagnosticVMOptions", "-XX:-UseSecondarySupersTable", "-XX:+UseSecondarySupersCache"}) + @Fork(jvmArgs={"-XX:+UnlockDiagnosticVMOptions", "-XX:-UseSecondarySupersTable", "-XX:+UseSecondarySupersCache"}) public int instanceOfInterfaceSwitchLinearSCC() { return instanceOfInterfaceSwitch(); } @Benchmark - @Fork(jvmArgsAppend={"-XX:+UnlockDiagnosticVMOptions", "-XX:+UseSecondarySupersTable", "-XX:-UseSecondarySupersCache"}) + @Fork(jvmArgs={"-XX:+UnlockDiagnosticVMOptions", "-XX:+UseSecondarySupersTable", "-XX:-UseSecondarySupersCache"}) public int instanceOfInterfaceSwitchTableNoSCC() { return instanceOfInterfaceSwitch(); } @Benchmark - @Fork(jvmArgsAppend={"-XX:+UnlockDiagnosticVMOptions", "-XX:+UseSecondarySupersTable", "-XX:+UseSecondarySupersCache"}) + @Fork(jvmArgs={"-XX:+UnlockDiagnosticVMOptions", "-XX:+UseSecondarySupersTable", "-XX:+UseSecondarySupersCache"}) public int instanceOfInterfaceSwitchTableSCC() { return instanceOfInterfaceSwitch(); } diff --git a/test/micro/org/openjdk/bench/vm/runtime/NMTBenchmark.java b/test/micro/org/openjdk/bench/vm/runtime/NMTBenchmark.java index 8d05d37792c..d88c66bd15f 100644 --- a/test/micro/org/openjdk/bench/vm/runtime/NMTBenchmark.java +++ b/test/micro/org/openjdk/bench/vm/runtime/NMTBenchmark.java @@ -243,12 +243,12 @@ public void mixAllocateReallocateMemory() throws InterruptedException { public static final String ADD_EXPORTS = "--add-exports"; public static final String MISC_PACKAGE = "java.base/jdk.internal.misc=ALL-UNNAMED"; // used for Unsafe API - @Fork(value = 2, jvmArgsPrepend = { "-XX:NativeMemoryTracking=off", ADD_EXPORTS, MISC_PACKAGE}) + @Fork(value = 2, jvmArgs = { "-XX:NativeMemoryTracking=off", ADD_EXPORTS, MISC_PACKAGE}) public static class NMTOff extends NMTBenchmark { } - @Fork(value = 2, jvmArgsPrepend = { "-XX:NativeMemoryTracking=summary", ADD_EXPORTS, MISC_PACKAGE}) + @Fork(value = 2, jvmArgs = { "-XX:NativeMemoryTracking=summary", ADD_EXPORTS, MISC_PACKAGE}) public static class NMTSummary extends NMTBenchmark { } - @Fork(value = 2, jvmArgsPrepend = { "-XX:NativeMemoryTracking=detail", ADD_EXPORTS, MISC_PACKAGE}) + @Fork(value = 2, jvmArgs = { "-XX:NativeMemoryTracking=detail", ADD_EXPORTS, MISC_PACKAGE}) public static class NMTDetail extends NMTBenchmark { } } diff --git a/test/micro/org/openjdk/bench/vm/runtime/NMTBenchmark_wb.java b/test/micro/org/openjdk/bench/vm/runtime/NMTBenchmark_wb.java index 12e7a1140c8..059fff9f2ee 100644 --- a/test/micro/org/openjdk/bench/vm/runtime/NMTBenchmark_wb.java +++ b/test/micro/org/openjdk/bench/vm/runtime/NMTBenchmark_wb.java @@ -137,13 +137,13 @@ public void virtualMemoryTests() { public static final String WB_JAR_APPEND = "-Xbootclasspath/a:lib-test/wb.jar"; - @Fork(value = 2, jvmArgsPrepend = { WB_JAR_APPEND, WB_UNLOCK_OPTION, WB_API, ADD_EXPORTS, MISC_PACKAGE, "-XX:NativeMemoryTracking=off"}) + @Fork(value = 2, jvmArgs = { WB_JAR_APPEND, WB_UNLOCK_OPTION, WB_API, ADD_EXPORTS, MISC_PACKAGE, "-XX:NativeMemoryTracking=off"}) public static class NMTOff extends NMTBenchmark_wb { } - @Fork(value = 2, jvmArgsPrepend = { WB_JAR_APPEND, WB_UNLOCK_OPTION, WB_API, ADD_EXPORTS, MISC_PACKAGE, "-XX:NativeMemoryTracking=summary"}) + @Fork(value = 2, jvmArgs = { WB_JAR_APPEND, WB_UNLOCK_OPTION, WB_API, ADD_EXPORTS, MISC_PACKAGE, "-XX:NativeMemoryTracking=summary"}) public static class NMTSummary extends NMTBenchmark_wb { } - // @Fork(value = 2, jvmArgsPrepend = { WB_JAR_APPEND, WB_UNLOCK_OPTION, WB_API, ADD_EXPORTS, MISC_PACKAGE, "-XX:NativeMemoryTracking=detail"}) + // @Fork(value = 2, jvmArgs = { WB_JAR_APPEND, WB_UNLOCK_OPTION, WB_API, ADD_EXPORTS, MISC_PACKAGE, "-XX:NativeMemoryTracking=detail"}) // public static class NMTDetail extends NMTBenchmark_wb { } } \ No newline at end of file